--- linux-5.19.0.orig/.clang-format +++ linux-5.19.0/.clang-format @@ -534,6 +534,7 @@ - 'perf_hpp_list__for_each_sort_list_safe' - 'perf_pmu__for_each_hybrid_pmu' - 'ping_portaddr_for_each_entry' + - 'ping_portaddr_for_each_entry_rcu' - 'plist_for_each' - 'plist_for_each_continue' - 'plist_for_each_entry' --- linux-5.19.0.orig/Documentation/ABI/testing/ima_policy +++ linux-5.19.0/Documentation/ABI/testing/ima_policy @@ -26,7 +26,7 @@ [uid=] [euid=] [gid=] [egid=] [fowner=] [fgroup=]] lsm: [[subj_user=] [subj_role=] [subj_type=] - [obj_user=] [obj_role=] [obj_type=]] + [obj_user=] [obj_role=] [obj_type=] [lsm=]] option: [digest_type=] [template=] [permit_directio] [appraise_type=] [appraise_flag=] [appraise_algos=] [keyrings=] @@ -138,6 +138,12 @@ measure subj_user=_ func=FILE_CHECK mask=MAY_READ + It is possible to explicitly specify which security + module a rule applies to using lsm=. If the security + module specified is not active on the system the rule + will be rejected. If lsm= is not specified the first + security module registered on the system will be assumed. + Example of measure rules using alternate PCRs:: measure func=KEXEC_KERNEL_CHECK pcr=4 --- linux-5.19.0.orig/Documentation/ABI/testing/procfs-attr-lsm_display +++ linux-5.19.0/Documentation/ABI/testing/procfs-attr-lsm_display @@ -0,0 +1,22 @@ +What: /proc/*/attr/lsm_display +Contact: linux-security-module@vger.kernel.org, +Description: The name of the Linux security module (LSM) that will + provide information in the /proc/*/attr/current, + /proc/*/attr/prev and /proc/*/attr/exec interfaces. + The details of permissions required to read from + this interface are dependent on the LSMs active on the + system. + A process cannot write to this interface unless it + refers to itself. + The other details of permissions required to write to + this interface are dependent on the LSMs active on the + system. + The format of the data used by this interface is a + text string identifying the name of an LSM. The values + accepted are: + selinux - the SELinux LSM + smack - the Smack LSM + apparmor - The AppArmor LSM + By convention the LSM names are lower case and do not + contain special characters. +Users: LSM user-space --- linux-5.19.0.orig/Documentation/ABI/testing/sysfs-bus-iio +++ linux-5.19.0/Documentation/ABI/testing/sysfs-bus-iio @@ -188,7 +188,7 @@ Raw capacitance measurement from channel Y. Units after application of scale and offset are nanofarads. -What: /sys/.../iio:deviceX/in_capacitanceY-in_capacitanceZ_raw +What: /sys/.../iio:deviceX/in_capacitanceY-capacitanceZ_raw KernelVersion: 3.2 Contact: linux-iio@vger.kernel.org Description: --- linux-5.19.0.orig/Documentation/ABI/testing/sysfs-bus-spi-devices-spi-nor +++ linux-5.19.0/Documentation/ABI/testing/sysfs-bus-spi-devices-spi-nor @@ -5,6 +5,9 @@ Description: (RO) The JEDEC ID of the SPI NOR flash as reported by the flash device. + The attribute is not present if the flash doesn't support + the "Read JEDEC ID" command (9Fh). This is the case for + non-JEDEC compliant flashes. What: /sys/bus/spi/devices/.../spi-nor/manufacturer Date: April 2021 --- linux-5.19.0.orig/Documentation/ABI/testing/sysfs-devices-system-cpu +++ linux-5.19.0/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -527,6 +527,7 @@ /sys/devices/system/cpu/vulnerabilities/tsx_async_abort /sys/devices/system/cpu/vulnerabilities/itlb_multihit /sys/devices/system/cpu/vulnerabilities/mmio_stale_data + /sys/devices/system/cpu/vulnerabilities/retbleed Date: January 2018 Contact: Linux kernel mailing list Description: Information about CPU vulnerabilities --- linux-5.19.0.orig/Documentation/ABI/testing/sysfs-driver-xen-blkback +++ linux-5.19.0/Documentation/ABI/testing/sysfs-driver-xen-blkback @@ -42,5 +42,5 @@ Contact: Maximilian Heyne Description: Whether to enable the persistent grants feature or not. Note - that this option only takes effect on newly created backends. + that this option only takes effect on newly connected backends. The default is Y (enable). --- linux-5.19.0.orig/Documentation/ABI/testing/sysfs-driver-xen-blkfront +++ linux-5.19.0/Documentation/ABI/testing/sysfs-driver-xen-blkfront @@ -15,5 +15,5 @@ Contact: Maximilian Heyne Description: Whether to enable the persistent grants feature or not. Note - that this option only takes effect on newly created frontends. + that this option only takes effect on newly connected frontends. The default is Y (enable). --- linux-5.19.0.orig/Documentation/Makefile +++ linux-5.19.0/Documentation/Makefile @@ -92,7 +92,7 @@ fi htmldocs: - @$(srctree)/scripts/sphinx-pre-install --version-check + @$(srctree)/scripts/sphinx-pre-install --version-check --no-virtualenv @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var))) linkcheckdocs: --- linux-5.19.0.orig/Documentation/admin-guide/device-mapper/writecache.rst +++ linux-5.19.0/Documentation/admin-guide/device-mapper/writecache.rst @@ -78,16 +78,16 @@ 2. the number of blocks 3. the number of free blocks 4. the number of blocks under writeback -5. the number of read requests -6. the number of read requests that hit the cache -7. the number of write requests -8. the number of write requests that hit uncommitted block -9. the number of write requests that hit committed block -10. the number of write requests that bypass the cache -11. the number of write requests that are allocated in the cache +5. the number of read blocks +6. the number of read blocks that hit the cache +7. the number of write blocks +8. the number of write blocks that hit uncommitted block +9. the number of write blocks that hit committed block +10. the number of write blocks that bypass the cache +11. the number of write blocks that are allocated in the cache 12. the number of write requests that are blocked on the freelist 13. the number of flush requests -14. the number of discard requests +14. the number of discarded blocks Messages: flush --- linux-5.19.0.orig/Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst +++ linux-5.19.0/Documentation/admin-guide/hw-vuln/processor_mmio_stale_data.rst @@ -230,6 +230,20 @@ * - 'Mitigation: Clear CPU buffers' - The processor is vulnerable and the CPU buffer clearing mitigation is enabled. + * - 'Unknown: No mitigations' + - The processor vulnerability status is unknown because it is + out of Servicing period. Mitigation is not attempted. + +Definitions: +------------ + +Servicing period: The process of providing functional and security updates to +Intel processors or platforms, utilizing the Intel Platform Update (IPU) +process or other similar mechanisms. + +End of Servicing Updates (ESU): ESU is the date at which Intel will no +longer provide Servicing, such as through IPU or other similar update +processes. ESU dates will typically be aligned to end of quarter. If the processor is vulnerable then the following information is appended to the above information: --- linux-5.19.0.orig/Documentation/admin-guide/hw-vuln/spectre.rst +++ linux-5.19.0/Documentation/admin-guide/hw-vuln/spectre.rst @@ -422,6 +422,14 @@ 'RSB filling' Protection of RSB on context switch enabled ============= =========================================== + - EIBRS Post-barrier Return Stack Buffer (PBRSB) protection status: + + =========================== ======================================================= + 'PBRSB-eIBRS: SW sequence' CPU is affected and protection of RSB on VMEXIT enabled + 'PBRSB-eIBRS: Vulnerable' CPU is vulnerable + 'PBRSB-eIBRS: Not affected' CPU is not affected by PBRSB + =========================== ======================================================= + Full mitigation might require a microcode update from the CPU vendor. When the necessary microcode is not available, the kernel will report vulnerability. --- linux-5.19.0.orig/Documentation/admin-guide/kernel-parameters.txt +++ linux-5.19.0/Documentation/admin-guide/kernel-parameters.txt @@ -789,6 +789,10 @@ If the dependencies are under your control, you can turn on cpu0_hotplug. + 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 @@ -3765,6 +3769,10 @@ nox2apic [X86-64,APIC] Do not enable x2APIC mode. + NOTE: this parameter will be ignored on systems with the + LEGACY_XAPIC_DISABLED bit set in the + IA32_XAPIC_DISABLE_STATUS MSR. + nps_mtm_hs_ctr= [KNL,ARC] This parameter sets the maximum duration, in cycles, each HW thread of the CTOP can run @@ -4084,6 +4092,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. @@ -5203,20 +5217,33 @@ Speculative Code Execution with Return Instructions) vulnerability. + AMD-based UNRET and IBPB mitigations alone do not stop + sibling threads from influencing the predictions of other + sibling threads. For that reason, STIBP is used on pro- + cessors that support it, and mitigate SMT on processors + that don't. + off - no mitigation auto - automatically select a migitation auto,nosmt - automatically select a mitigation, disabling SMT if necessary for the full mitigation (only on Zen1 and older without STIBP). - ibpb - mitigate short speculation windows on - basic block boundaries too. Safe, highest - perf impact. - unret - force enable untrained return thunks, - only effective on AMD f15h-f17h - based systems. - unret,nosmt - like unret, will disable SMT when STIBP - is not available. + ibpb - On AMD, mitigate short speculation + windows on basic block boundaries too. + Safe, highest perf impact. It also + enables STIBP if present. Not suitable + on Intel. + ibpb,nosmt - Like "ibpb" above but will disable SMT + when STIBP is not available. This is + the alternative for systems which do not + have STIBP. + unret - Force enable untrained return thunks, + only effective on AMD f15h-f17h based + systems. + unret,nosmt - Like unret, but will disable SMT when STIBP + is not available. This is the alternative for + systems which do not have STIBP. Selecting 'auto' will choose a mitigation method at run time according to the CPU. @@ -5247,6 +5274,8 @@ rodata= [KNL] on Mark read-only kernel memory as read-only (default). off Leave read-only kernel memory writable for debugging. + full Mark read-only kernel memory and aliases as read-only + [arm64] rockchip.usb_uart Enable the uart passthrough on the designated usb port @@ -6849,3 +6878,14 @@ memory, and other data can't be written using xmon commands. off xmon is disabled. + + amd_pstate= [X86] + disable + Do not enable amd_pstate as the default + scaling driver for the supported processors + passive + Use amd_pstate as a scaling driver, driver requests a + desired performance on this abstract scale and the power + management firmware translates the requests into actual + hardware states (core frequency, data fabric and memory + clocks etc.) --- linux-5.19.0.orig/Documentation/admin-guide/pm/amd-pstate.rst +++ linux-5.19.0/Documentation/admin-guide/pm/amd-pstate.rst @@ -182,6 +182,7 @@ Then, ``amd-pstate`` updates the desired performance according to the CPU scheduler assigned. +.. _processor_support: Processor Support ======================= @@ -282,21 +283,19 @@ Kernel Module Options for ``amd-pstate`` ========================================= -``shared_mem`` -Use a module param (shared_mem) to enable related processors manually with -**amd_pstate.shared_mem=1**. -Due to the performance issue on the processors with `Shared Memory Support -`_, we disable it presently and will re-enable this by default -once we address performance issue with this solution. +Passive Mode +------------ -To check whether the current processor is using `Full MSR Support `_ -or `Shared Memory Support `_ : :: +``amd_pstate=passive`` - ray@hr-test1:~$ lscpu | grep cppc - Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd cppc arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm - -If the CPU flags have ``cppc``, then this processor supports `Full MSR Support -`_. Otherwise, it supports `Shared Memory Support `_. +It will be enabled if the ``amd_pstate=passive`` is passed to the kernel in the command line. +In this mode, ``amd_pstate`` driver software specifies a desired QoS target in the CPPC +performance scale as a relative number. This can be expressed as percentage of nominal +performance (infrastructure max). Below the nominal sustained performance level, +desired performance expresses the average performance level of the processor subject +to the Performance Reduction Tolerance register. Above the nominal performance level, +processor must provide at least nominal performance requested and go higher if current +operating conditions allow. ``cpupower`` tool support for ``amd-pstate`` @@ -393,6 +392,76 @@ CPU_005 712 116384 39 49 166 0.7565 9645075 2214891 38431470 25.1 11.646 469 2.496 kworker/5:0-40 CPU_006 712 116408 39 49 166 0.6769 8950227 1839034 37192089 24.06 11.272 470 2.496 kworker/6:0-1264 +Unit Tests for amd-pstate +------------------------- + +``amd-pstate-ut`` is a test module for testing the ``amd-pstate`` driver. + + * It can help all users to verify their processor support (SBIOS/Firmware or Hardware). + + * Kernel can have a basic function test to avoid the kernel regression during the update. + + * We can introduce more functional or performance tests to align the result together, it will benefit power and performance scale optimization. + +1. Test case decriptions + + +---------+--------------------------------+------------------------------------------------------------------------------------+ + | Index | Functions | Description | + +=========+================================+====================================================================================+ + | 0 | amd_pstate_ut_acpi_cpc_valid || Check whether the _CPC object is present in SBIOS. | + | | || | + | | || The detail refer to `Processor Support `_. | + +---------+--------------------------------+------------------------------------------------------------------------------------+ + | 1 | amd_pstate_ut_check_enabled || Check whether AMD P-State is enabled. | + | | || | + | | || AMD P-States and ACPI hardware P-States always can be supported in one processor. | + | | | But AMD P-States has the higher priority and if it is enabled with | + | | | :c:macro:`MSR_AMD_CPPC_ENABLE` or ``cppc_set_enable``, it will respond to the | + | | | request from AMD P-States. | + +---------+--------------------------------+------------------------------------------------------------------------------------+ + | 2 | amd_pstate_ut_check_perf || Check if the each performance values are reasonable. | + | | || highest_perf >= nominal_perf > lowest_nonlinear_perf > lowest_perf > 0. | + +---------+--------------------------------+------------------------------------------------------------------------------------+ + | 3 | amd_pstate_ut_check_freq || Check if the each frequency values and max freq when set support boost mode | + | | | are reasonable. | + | | || max_freq >= nominal_freq > lowest_nonlinear_freq > min_freq > 0 | + | | || If boost is not active but supported, this maximum frequency will be larger than | + | | | the one in ``cpuinfo``. | + +---------+--------------------------------+------------------------------------------------------------------------------------+ + +#. How to execute the tests + + We use test module in the kselftest frameworks to implement it. + We create amd-pstate-ut module and tie it into kselftest.(for + details refer to Linux Kernel Selftests [4]_). + + 1. Build + + + open the :c:macro:`CONFIG_X86_AMD_PSTATE` configuration option. + + set the :c:macro:`CONFIG_X86_AMD_PSTATE_UT` configuration option to M. + + make project + + make selftest :: + + $ cd linux + $ make -C tools/testing/selftests + + #. Installation & Steps :: + + $ make -C tools/testing/selftests install INSTALL_PATH=~/kselftest + $ sudo ./kselftest/run_kselftest.sh -c amd-pstate + TAP version 13 + 1..1 + # selftests: amd-pstate: amd-pstate-ut.sh + # amd-pstate-ut: ok + ok 1 selftests: amd-pstate: amd-pstate-ut.sh + + #. Results :: + + $ dmesg | grep "amd_pstate_ut" | tee log.txt + [12977.570663] amd_pstate_ut: 1 amd_pstate_ut_acpi_cpc_valid success! + [12977.570673] amd_pstate_ut: 2 amd_pstate_ut_check_enabled success! + [12977.571207] amd_pstate_ut: 3 amd_pstate_ut_check_perf success! + [12977.571212] amd_pstate_ut: 4 amd_pstate_ut_check_freq success! Reference =========== @@ -405,3 +474,6 @@ .. [3] Processor Programming Reference (PPR) for AMD Family 19h Model 51h, Revision A1 Processors https://www.amd.com/system/files/TechDocs/56569-A1-PUB.zip + +.. [4] Linux Kernel Selftests, + https://www.kernel.org/doc/html/latest/dev-tools/kselftest.html --- linux-5.19.0.orig/Documentation/admin-guide/pm/cpuidle.rst +++ linux-5.19.0/Documentation/admin-guide/pm/cpuidle.rst @@ -612,8 +612,8 @@ by default this way, for example. The other kernel command line parameters controlling CPU idle time management -described below are only relevant for the *x86* architecture and some of -them affect Intel processors only. +described below are only relevant for the *x86* architecture and references +to ``intel_idle`` affect Intel processors only. The *x86* architecture support code recognizes three kernel command line options related to CPU idle time management: ``idle=poll``, ``idle=halt``, @@ -635,10 +635,13 @@ energy-efficiency. Thus using it for performance reasons may not be a good idea at all.] -The ``idle=nomwait`` option disables the ``intel_idle`` driver and causes -``acpi_idle`` to be used (as long as all of the information needed by it is -there in the system's ACPI tables), but it is not allowed to use the -``MWAIT`` instruction of the CPUs to ask the hardware to enter idle states. +The ``idle=nomwait`` option prevents the use of ``MWAIT`` instruction of +the CPU to enter idle states. When this option is used, the ``acpi_idle`` +driver will use the ``HLT`` instruction instead of ``MWAIT``. On systems +running Intel processors, this option disables the ``intel_idle`` driver +and forces the use of the ``acpi_idle`` driver instead. Note that in either +case, ``acpi_idle`` driver will function only if all the information needed +by it is in the system's ACPI tables. In addition to the architecture-level kernel command line options affecting CPU idle time management, there are parameters affecting individual ``CPUIdle`` --- linux-5.19.0.orig/Documentation/admin-guide/sysctl/kernel.rst +++ linux-5.19.0/Documentation/admin-guide/sysctl/kernel.rst @@ -592,6 +592,18 @@ Documentation/admin-guide/kernel-parameters.rst). +nmi_wd_lpm_factor (PPC only) +============================ + +Factor to apply to the NMI watchdog timeout (only when ``nmi_watchdog`` is +set to 1). This factor represents the percentage added to +``watchdog_thresh`` when calculating the NMI watchdog timeout during an +LPM. The soft lockup timeout is not impacted. + +A value of 0 means no change. The default value is 200 meaning the NMI +watchdog is set to 30s (based on ``watchdog_thresh`` equal to 10). + + numa_balancing ============== @@ -1286,6 +1298,29 @@ watchdog — if enabled — can detect a hard lockup condition. +split_lock_mitigate (x86 only) +============================== + +On x86, each "split lock" imposes a system-wide performance penalty. On larger +systems, large numbers of split locks from unprivileged users can result in +denials of service to well-behaved and potentially more important users. + +The kernel mitigates these bad users by detecting split locks and imposing +penalties: forcing them to wait and only allowing one core to execute split +locks at a time. + +These mitigations can make those bad applications unbearably slow. Setting +split_lock_mitigate=0 may restore some application performance, but will also +increase system exposure to denial of service attacks from split lock users. + += =================================================================== +0 Disable the mitigation mode - just warns the split lock on kernel log + and exposes the system to denials of service from the split lockers. +1 Enable the mitigation mode (this is the default) - penalizes the split + lockers with intentional performance degradation. += =================================================================== + + stack_erasing ============= --- linux-5.19.0.orig/Documentation/admin-guide/sysctl/net.rst +++ linux-5.19.0/Documentation/admin-guide/sysctl/net.rst @@ -271,7 +271,7 @@ netdev_max_backlog ------------------ -Maximum number of packets, queued on the INPUT side, when the interface +Maximum number of packets, queued on the INPUT side, when the interface receives packets faster than kernel can process them. netdev_rss_key --- linux-5.19.0.orig/Documentation/arm64/silicon-errata.rst +++ linux-5.19.0/Documentation/arm64/silicon-errata.rst @@ -52,6 +52,8 @@ | Allwinner | A64/R18 | UNKNOWN1 | SUN50I_ERRATUM_UNKNOWN1 | +----------------+-----------------+-----------------+-----------------------------+ +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A510 | #2457168 | ARM64_ERRATUM_2457168 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A510 | #2064142 | ARM64_ERRATUM_2064142 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A510 | #2038923 | ARM64_ERRATUM_2038923 | @@ -74,6 +76,8 @@ +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A55 | #1530923 | ARM64_ERRATUM_1530923 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A55 | #2441007 | ARM64_ERRATUM_2441007 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A57 | #852523 | N/A | @@ -82,10 +86,14 @@ +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A72 | #853709 | N/A | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 | @@ -102,6 +110,8 @@ +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A510 | #2077057 | ARM64_ERRATUM_2077057 | +----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A510 | #2441009 | ARM64_ERRATUM_2441009 | ++----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #2119858 | ARM64_ERRATUM_2119858 | +----------------+-----------------+-----------------+-----------------------------+ | ARM | Cortex-A710 | #2054223 | ARM64_ERRATUM_2054223 | --- linux-5.19.0.orig/Documentation/atomic_bitops.txt +++ linux-5.19.0/Documentation/atomic_bitops.txt @@ -59,7 +59,7 @@ - RMW operations that have a return value are fully ordered. - RMW operations that are conditional are unordered on FAILURE, - otherwise the above rules apply. In the case of test_and_{}_bit() operations, + otherwise the above rules apply. In the case of test_and_set_bit_lock(), if the bit in memory is unchanged by the operation then it is deemed to have failed. --- linux-5.19.0.orig/Documentation/cgroups/namespace.txt +++ linux-5.19.0/Documentation/cgroups/namespace.txt @@ -0,0 +1,142 @@ + CGroup Namespaces + +CGroup Namespace provides a mechanism to virtualize the view of the +/proc//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//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//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//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//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//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//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-5.19.0.orig/Documentation/devicetree/bindings/arm/qcom.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/arm/qcom.yaml @@ -153,28 +153,34 @@ - const: qcom,msm8974 - items: - - enum: - - alcatel,idol347 - - const: qcom,msm8916-mtp/1 - const: qcom,msm8916-mtp + - const: qcom,msm8916-mtp/1 - const: qcom,msm8916 - items: - enum: - - longcheer,l8150 + - alcatel,idol347 - samsung,a3u-eur - samsung,a5u-eur - const: qcom,msm8916 - items: + - const: longcheer,l8150 + - const: qcom,msm8916-v1-qrd/9-v1 + - const: qcom,msm8916 + + - items: - enum: - sony,karin_windy + - const: qcom,apq8094 + + - items: + - enum: - sony,karin-row - sony,satsuki-row - sony,sumire-row - sony,suzuran-row - - qcom,msm8994 - - const: qcom,apq8094 + - const: qcom,msm8994 - items: - enum: --- linux-5.19.0.orig/Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml @@ -22,16 +22,32 @@ const: qcom,gcc-msm8996 clocks: + minItems: 3 items: - description: XO source - description: Second XO source - description: Sleep clock source + - description: PCIe 0 PIPE clock (optional) + - description: PCIe 1 PIPE clock (optional) + - description: PCIe 2 PIPE clock (optional) + - description: USB3 PIPE clock (optional) + - description: UFS RX symbol 0 clock (optional) + - description: UFS RX symbol 1 clock (optional) + - description: UFS TX symbol 0 clock (optional) clock-names: + minItems: 3 items: - const: cxo - const: cxo2 - const: sleep_clk + - const: pcie_0_pipe_clk_src + - const: pcie_1_pipe_clk_src + - const: pcie_2_pipe_clk_src + - const: usb3_phy_pipe_clk_src + - const: ufs_rx_symbol_0_clk_src + - const: ufs_rx_symbol_1_clk_src + - const: ufs_tx_symbol_0_clk_src '#clock-cells': const: 1 --- linux-5.19.0.orig/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/clock/qcom,sc7280-lpasscorecc.yaml @@ -22,6 +22,8 @@ clock-names: true + reg: true + compatible: enum: - qcom,sc7280-lpassaoncc @@ -38,8 +40,8 @@ '#power-domain-cells': const: 1 - reg: - maxItems: 1 + '#reset-cells': + const: 1 required: - compatible @@ -69,6 +71,11 @@ items: - const: bi_tcxo - const: lpass_aon_cc_main_rcg_clk_src + + reg: + items: + - description: lpass core cc register + - description: lpass audio csr register - if: properties: compatible: @@ -90,6 +97,8 @@ - const: bi_tcxo_ao - const: iface + reg: + maxItems: 1 - if: properties: compatible: @@ -108,6 +117,8 @@ items: - const: bi_tcxo + reg: + maxItems: 1 examples: - | #include @@ -116,13 +127,15 @@ #include lpass_audiocc: clock-controller@3300000 { compatible = "qcom,sc7280-lpassaudiocc"; - reg = <0x3300000 0x30000>; + reg = <0x3300000 0x30000>, + <0x32a9000 0x1000>; clocks = <&rpmhcc RPMH_CXO_CLK>, <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>; clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src"; power-domains = <&lpass_aon LPASS_AON_CC_LPASS_AUDIO_HM_GDSC>; #clock-cells = <1>; #power-domain-cells = <1>; + #reset-cells = <1>; }; - | --- linux-5.19.0.orig/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml @@ -233,6 +233,7 @@ - allwinner,sun8i-a83t-tcon-lcd - allwinner,sun8i-v3s-tcon - allwinner,sun9i-a80-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: properties: @@ -252,6 +253,7 @@ - allwinner,sun8i-a83t-tcon-tv - allwinner,sun8i-r40-tcon-tv - allwinner,sun9i-a80-tcon-tv + - allwinner,sun20i-d1-tcon-tv then: properties: @@ -278,6 +280,7 @@ - allwinner,sun9i-a80-tcon-lcd - allwinner,sun4i-a10-tcon - allwinner,sun8i-a83t-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: required: @@ -294,6 +297,7 @@ - allwinner,sun8i-a23-tcon - allwinner,sun8i-a33-tcon - allwinner,sun8i-a83t-tcon-lcd + - allwinner,sun20i-d1-tcon-lcd then: properties: --- linux-5.19.0.orig/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/display/bridge/fsl,ldb.yaml @@ -24,6 +24,15 @@ clock-names: const: ldb + reg: + minItems: 2 + maxItems: 2 + + reg-names: + items: + - const: ldb + - const: lvds + ports: $ref: /schemas/graph.yaml#/properties/ports @@ -56,10 +65,15 @@ #include blk-ctrl { - bridge { + #address-cells = <1>; + #size-cells = <1>; + + bridge@5c { compatible = "fsl,imx8mp-ldb"; clocks = <&clk IMX8MP_CLK_MEDIA_LDB>; clock-names = "ldb"; + reg = <0x5c 0x4>, <0x128 0x4>; + reg-names = "ldb", "lvds"; ports { #address-cells = <1>; --- linux-5.19.0.orig/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt +++ linux-5.19.0/Documentation/devicetree/bindings/dma/moxa,moxart-dma.txt @@ -34,8 +34,8 @@ Use specific request line passing from dma For example, MMC request line is 5 - sdhci: sdhci@98e00000 { - compatible = "moxa,moxart-sdhci"; + mmc: mmc@98e00000 { + compatible = "moxa,moxart-mmc"; reg = <0x98e00000 0x5C>; interrupts = <5 0>; clocks = <&clk_apb>; --- linux-5.19.0.orig/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/gpio/gpio-zynq.yaml @@ -11,7 +11,11 @@ properties: compatible: - const: xlnx,zynq-gpio-1.0 + enum: + - xlnx,zynq-gpio-1.0 + - xlnx,zynqmp-gpio-1.0 + - xlnx,versal-gpio-1.0 + - xlnx,pmc-gpio-1.0 reg: maxItems: 1 --- linux-5.19.0.orig/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/iio/adc/aspeed,ast2600-adc.yaml @@ -62,13 +62,6 @@ description: Inform the driver that last channel will be used to sensor battery. - aspeed,trim-data-valid: - type: boolean - description: | - The ADC reference voltage can be calibrated to obtain the trimming - data which will be stored in otp. This property informs the driver that - the data store in the otp is valid. - required: - compatible - reg --- linux-5.19.0.orig/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/iio/gyroscope/bosch,bmg160.yaml @@ -24,8 +24,10 @@ interrupts: minItems: 1 + maxItems: 2 description: Should be configured with type IRQ_TYPE_EDGE_RISING. + If two interrupts are provided, expected order is INT1 and INT2. required: - compatible --- linux-5.19.0.orig/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/input/azoteq,iqs7222.yaml @@ -37,10 +37,6 @@ device is temporarily held in hardware reset prior to initialization if this property is present. - azoteq,rf-filt-enable: - type: boolean - description: Enables the device's internal RF filter. - azoteq,max-counts: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1, 2, 3] @@ -481,9 +477,6 @@ Specifies whether the event is to be interpreted as a key (1) or a switch (5). - required: - - linux,code - additionalProperties: false dependencies: @@ -509,7 +502,7 @@ azoteq,slider-size: $ref: /schemas/types.yaml#/definitions/uint32 - minimum: 0 + minimum: 1 maximum: 65535 description: Specifies the slider's one-dimensional resolution, equal to the @@ -537,9 +530,8 @@ azoteq,bottom-speed: $ref: /schemas/types.yaml#/definitions/uint32 - multipleOf: 4 minimum: 0 - maximum: 1020 + maximum: 255 description: Specifies the speed of movement after which coordinate filtering is linearly reduced. @@ -585,9 +577,9 @@ description: Numeric key code associated with the event. azoteq,gesture-max-ms: - multipleOf: 4 + multipleOf: 16 minimum: 0 - maximum: 1020 + maximum: 4080 description: Specifies the length of time (in ms) within which a tap, swipe or flick gesture must be completed in order to be acknowledged @@ -595,9 +587,9 @@ gesture applies to all remaining swipe or flick gestures. azoteq,gesture-min-ms: - multipleOf: 4 + multipleOf: 16 minimum: 0 - maximum: 124 + maximum: 496 description: Specifies the length of time (in ms) for which a tap gesture must be held in order to be acknowledged by the device. @@ -616,24 +608,20 @@ azoteq,gpio-select: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 - maxItems: 1 + maxItems: 3 items: minimum: 0 - maximum: 0 + maximum: 2 description: | - Specifies an individual GPIO mapped to a tap, swipe or flick - gesture as follows: + Specifies one or more GPIO mapped to the event as follows: 0: GPIO0 - 1: GPIO3 (reserved) - 2: GPIO4 (reserved) + 1: GPIO3 (IQS7222C only) + 2: GPIO4 (IQS7222C only) Note that although multiple events can be mapped to a single GPIO, they must all be of the same type (proximity, touch or slider gesture). - required: - - linux,code - additionalProperties: false required: @@ -704,12 +692,21 @@ properties: azoteq,slider-size: multipleOf: 16 + minimum: 16 maximum: 4080 azoteq,top-speed: multipleOf: 4 maximum: 1020 + patternProperties: + "^event-(press|tap|(swipe|flick)-(pos|neg))$": + properties: + azoteq,gpio-select: + maxItems: 1 + items: + maximum: 0 + else: patternProperties: "^channel-([0-9]|1[0-9])$": @@ -726,8 +723,6 @@ azoteq,gesture-dist: false - azoteq,gpio-select: false - required: - compatible - reg @@ -940,14 +935,14 @@ event-tap { linux,code = ; - azoteq,gesture-max-ms = <600>; - azoteq,gesture-min-ms = <24>; + azoteq,gesture-max-ms = <400>; + azoteq,gesture-min-ms = <32>; }; event-flick-pos { linux,code = ; - azoteq,gesture-max-ms = <600>; - azoteq,gesture-dist = <816>; + azoteq,gesture-max-ms = <800>; + azoteq,gesture-dist = <800>; }; event-flick-neg { --- linux-5.19.0.orig/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/interrupt-controller/apple,aic.yaml @@ -96,7 +96,7 @@ Documentation/devicetree/bindings/arm/cpus.yaml). required: - - fiq-index + - apple,fiq-index - cpus required: --- linux-5.19.0.orig/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/leds/leds-pwm-multicolor.yaml @@ -33,6 +33,10 @@ pwm-names: true + active-low: + description: For PWMs where the LED is wired to supply rather than ground. + type: boolean + color: true required: --- linux-5.19.0.orig/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/mmc/sdhci-msm.yaml @@ -17,6 +17,9 @@ properties: compatible: oneOf: + - enum: + - qcom,sdhci-msm-v4 + deprecated: true - items: - enum: - qcom,apq8084-sdhci @@ -27,6 +30,9 @@ - qcom,msm8992-sdhci - qcom,msm8994-sdhci - qcom,msm8996-sdhci + - const: qcom,sdhci-msm-v4 # for sdcc versions less than 5.0 + - items: + - enum: - qcom,qcs404-sdhci - qcom,sc7180-sdhci - qcom,sc7280-sdhci @@ -38,12 +44,7 @@ - qcom,sm6350-sdhci - qcom,sm8150-sdhci - qcom,sm8250-sdhci - - enum: - - qcom,sdhci-msm-v4 # for sdcc versions less than 5.0 - - qcom,sdhci-msm-v5 # for sdcc version 5.0 - - items: - - const: qcom,sdhci-msm-v4 # Deprecated (only for backward compatibility) - # for sdcc versions less than 5.0 + - const: qcom,sdhci-msm-v5 # for sdcc version 5.0 reg: minItems: 1 @@ -53,6 +54,28 @@ - description: CQE register map - description: Inline Crypto Engine register map + reg-names: + minItems: 1 + maxItems: 4 + oneOf: + - items: + - const: hc_mem + - items: + - const: hc_mem + - const: core_mem + - items: + - const: hc_mem + - const: cqe_mem + - items: + - const: hc_mem + - const: cqe_mem + - const: ice_mem + - items: + - const: hc_mem + - const: core_mem + - const: cqe_mem + - const: ice_mem + clocks: minItems: 3 items: @@ -121,6 +144,16 @@ description: A phandle to sdhci power domain node maxItems: 1 + mmc-ddr-1_8v: true + + mmc-hs200-1_8v: true + + mmc-hs400-1_8v: true + + bus-width: true + + max-frequency: true + patternProperties: '^opp-table(-[a-z0-9]+)?$': if: @@ -140,7 +173,10 @@ - clock-names - interrupts -additionalProperties: true +allOf: + - $ref: mmc-controller.yaml# + +unevaluatedProperties: false examples: - | @@ -149,7 +185,7 @@ #include #include - sdhc_2: sdhci@8804000 { + sdhc_2: mmc@8804000 { compatible = "qcom,sm8250-sdhci", "qcom,sdhci-msm-v5"; reg = <0 0x08804000 0 0x1000>; --- linux-5.19.0.orig/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml @@ -23,6 +23,7 @@ - brcm,bcm4345c5 - brcm,bcm43540-bt - brcm,bcm4335a0 + - brcm,bcm4349-bt shutdown-gpios: maxItems: 1 --- linux-5.19.0.orig/Documentation/devicetree/bindings/net/engleder,tsnep.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/net/engleder,tsnep.yaml @@ -28,7 +28,7 @@ nvmem-cells: true - nvmem-cells-names: true + nvmem-cell-names: true phy-connection-type: enum: --- linux-5.19.0.orig/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/opp/opp-v2-kryo-cpu.yaml @@ -98,6 +98,8 @@ capacity-dmips-mhz = <1024>; clocks = <&kryocc 0>; operating-points-v2 = <&cluster0_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_0>; L2_0: l2-cache { @@ -115,6 +117,8 @@ capacity-dmips-mhz = <1024>; clocks = <&kryocc 0>; operating-points-v2 = <&cluster0_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_0>; }; @@ -128,6 +132,8 @@ capacity-dmips-mhz = <1024>; clocks = <&kryocc 1>; operating-points-v2 = <&cluster1_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_1>; L2_1: l2-cache { @@ -145,6 +151,8 @@ capacity-dmips-mhz = <1024>; clocks = <&kryocc 1>; operating-points-v2 = <&cluster1_opp>; + power-domains = <&cpr>; + power-domain-names = "cpr"; #cooling-cells = <2>; next-level-cache = <&L2_1>; }; @@ -182,18 +190,21 @@ opp-microvolt = <905000 905000 1140000>; opp-supported-hw = <0x7>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp1>; }; opp-1401600000 { opp-hz = /bits/ 64 <1401600000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x5>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp2>; }; opp-1593600000 { opp-hz = /bits/ 64 <1593600000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x1>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp3>; }; }; @@ -207,24 +218,28 @@ opp-microvolt = <905000 905000 1140000>; opp-supported-hw = <0x7>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp1>; }; opp-1804800000 { opp-hz = /bits/ 64 <1804800000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x6>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp4>; }; opp-1900800000 { opp-hz = /bits/ 64 <1900800000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x4>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp5>; }; opp-2150400000 { opp-hz = /bits/ 64 <2150400000>; opp-microvolt = <1140000 905000 1140000>; opp-supported-hw = <0x1>; clock-latency-ns = <200000>; + required-opps = <&cpr_opp6>; }; }; --- linux-5.19.0.orig/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml @@ -14,9 +14,6 @@ This PCIe host controller is based on the Synopsys DesignWare PCIe IP and thus inherits all the common properties defined in snps,dw-pcie.yaml. -allOf: - - $ref: /schemas/pci/snps,dw-pcie.yaml# - properties: compatible: enum: @@ -61,7 +58,7 @@ - const: pcie - const: pcie_bus - const: pcie_phy - - const: pcie_inbound_axi for imx6sx-pcie, pcie_aux for imx8mq-pcie + - enum: [ pcie_inbound_axi, pcie_aux ] num-lanes: const: 1 @@ -174,6 +171,47 @@ - clocks - clock-names +allOf: + - $ref: /schemas/pci/snps,dw-pcie.yaml# + - if: + properties: + compatible: + contains: + const: fsl,imx6sx-pcie + then: + properties: + clock-names: + items: + - {} + - {} + - {} + - const: pcie_inbound_axi + - if: + properties: + compatible: + contains: + const: fsl,imx8mq-pcie + then: + properties: + clock-names: + items: + - {} + - {} + - {} + - const: pcie_aux + - if: + properties: + compatible: + not: + contains: + enum: + - fsl,imx6sx-pcie + - fsl,imx8mq-pcie + then: + properties: + clock-names: + maxItems: 3 + unevaluatedProperties: false examples: --- linux-5.19.0.orig/Documentation/devicetree/bindings/pci/qcom,pcie.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pci/qcom,pcie.yaml @@ -614,7 +614,7 @@ - if: not: properties: - compatibles: + compatible: contains: enum: - qcom,pcie-msm8996 --- linux-5.19.0.orig/Documentation/devicetree/bindings/pci/toshiba,visconti-pcie.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pci/toshiba,visconti-pcie.yaml @@ -36,7 +36,7 @@ - const: mpu interrupts: - maxItems: 1 + maxItems: 2 clocks: items: @@ -94,8 +94,9 @@ #interrupt-cells = <1>; ranges = <0x81000000 0 0x40000000 0 0x40000000 0 0x00010000>, <0x82000000 0 0x50000000 0 0x50000000 0 0x20000000>; - interrupts = ; - interrupt-names = "intr"; + interrupts = , + ; + interrupt-names = "msi", "intr"; interrupt-map-mask = <0 0 0 7>; interrupt-map = <0 0 0 1 &gic GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH --- linux-5.19.0.orig/Documentation/devicetree/bindings/pinctrl/mediatek,mt7986-pinctrl.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pinctrl/mediatek,mt7986-pinctrl.yaml @@ -87,6 +87,8 @@ "wifi_led" "led" 1, 2 "i2c" "i2c" 3, 4 "uart1_0" "uart" 7, 8, 9, 10 + "uart1_rx_tx" "uart" 42, 43 + "uart1_cts_rts" "uart" 44, 45 "pcie_clk" "pcie" 9 "pcie_wake" "pcie" 10 "spi1_0" "spi" 11, 12, 13, 14 @@ -98,9 +100,11 @@ "emmc_45" "emmc" 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 "spi1_1" "spi" 23, 24, 25, 26 - "uart1_2" "uart" 29, 30, 31, 32 + "uart1_2_rx_tx" "uart" 29, 30 + "uart1_2_cts_rts" "uart" 31, 32 "uart1_1" "uart" 23, 24, 25, 26 - "uart2_0" "uart" 29, 30, 31, 32 + "uart2_0_rx_tx" "uart" 29, 30 + "uart2_0_cts_rts" "uart" 31, 32 "spi0" "spi" 33, 34, 35, 36 "spi0_wp_hold" "spi" 37, 38 "uart1_3_rx_tx" "uart" 35, 36 @@ -153,7 +157,7 @@ then: properties: groups: - enum: [emmc, emmc_rst] + enum: [emmc_45, emmc_51] - if: properties: function: @@ -217,8 +221,12 @@ then: properties: groups: - enum: [uart1_0, uart1_1, uart1_2, uart1_3_rx_tx, - uart1_3_cts_rts, uart2_0, uart2_1, uart0, uart1, uart2] + items: + enum: [uart1_0, uart1_rx_tx, uart1_cts_rts, uart1_1, + uart1_2_rx_tx, uart1_2_cts_rts, uart1_3_rx_tx, + uart1_3_cts_rts, uart2_0_rx_tx, uart2_0_cts_rts, + uart2_1, uart0, uart1, uart2] + maxItems: 2 - if: properties: function: @@ -348,6 +356,27 @@ interrupt-parent = <&gic>; #interrupt-cells = <2>; + pcie_pins: pcie-pins { + mux { + function = "pcie"; + groups = "pcie_clk", "pcie_wake", "pcie_pereset"; + }; + }; + + pwm_pins: pwm-pins { + mux { + function = "pwm"; + groups = "pwm0", "pwm1_0"; + }; + }; + + spi0_pins: spi0-pins { + mux { + function = "spi"; + groups = "spi0", "spi0_wp_hold"; + }; + }; + uart1_pins: uart1-pins { mux { function = "uart"; @@ -355,6 +384,13 @@ }; }; + uart1_3_pins: uart1-3-pins { + mux { + function = "uart"; + groups = "uart1_3_rx_tx", "uart1_3_cts_rts"; + }; + }; + uart2_pins: uart2-pins { mux { function = "uart"; --- linux-5.19.0.orig/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8186.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8186.yaml @@ -105,31 +105,8 @@ drive-strength: enum: [2, 4, 6, 8, 10, 12, 14, 16] - mediatek,drive-strength-adv: - description: | - Describe the specific driving setup property. - For I2C pins, the existing generic driving setup can only support - 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they - can support 0.125/0.25/0.5/1mA adjustment. If we enable specific - driving setup, the existing generic setup will be disabled. - The specific driving setup is controlled by E1E0EN. - When E1=0/E0=0, the strength is 0.125mA. - When E1=0/E0=1, the strength is 0.25mA. - When E1=1/E0=0, the strength is 0.5mA. - When E1=1/E0=1, the strength is 1mA. - EN is used to enable or disable the specific driving setup. - Valid arguments are described as below: - 0: (E1, E0, EN) = (0, 0, 0) - 1: (E1, E0, EN) = (0, 0, 1) - 2: (E1, E0, EN) = (0, 1, 0) - 3: (E1, E0, EN) = (0, 1, 1) - 4: (E1, E0, EN) = (1, 0, 0) - 5: (E1, E0, EN) = (1, 0, 1) - 6: (E1, E0, EN) = (1, 1, 0) - 7: (E1, E0, EN) = (1, 1, 1) - So the valid arguments are from 0 to 7. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4, 5, 6, 7] + drive-strength-microamp: + enum: [125, 250, 500, 1000] bias-pull-down: oneOf: @@ -291,7 +268,7 @@ pinmux = , ; bias-pull-up = ; - mediatek,drive-strength-adv = <7>; + drive-strength-microamp = <1000>; }; }; }; --- linux-5.19.0.orig/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8192.yaml @@ -80,46 +80,24 @@ dt-bindings/pinctrl/mt65xx.h. It can only support 2/4/6/8/10/12/14/16mA in mt8192. enum: [2, 4, 6, 8, 10, 12, 14, 16] - mediatek,drive-strength-adv: - description: | - Describe the specific driving setup property. - For I2C pins, the existing generic driving setup can only support - 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they - can support 0.125/0.25/0.5/1mA adjustment. If we enable specific - driving setup, the existing generic setup will be disabled. - The specific driving setup is controlled by E1E0EN. - When E1=0/E0=0, the strength is 0.125mA. - When E1=0/E0=1, the strength is 0.25mA. - When E1=1/E0=0, the strength is 0.5mA. - When E1=1/E0=1, the strength is 1mA. - EN is used to enable or disable the specific driving setup. - Valid arguments are described as below: - 0: (E1, E0, EN) = (0, 0, 0) - 1: (E1, E0, EN) = (0, 0, 1) - 2: (E1, E0, EN) = (0, 1, 0) - 3: (E1, E0, EN) = (0, 1, 1) - 4: (E1, E0, EN) = (1, 0, 0) - 5: (E1, E0, EN) = (1, 0, 1) - 6: (E1, E0, EN) = (1, 1, 0) - 7: (E1, E0, EN) = (1, 1, 1) - So the valid arguments are from 0 to 7. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4, 5, 6, 7] + drive-strength-microamp: + enum: [125, 250, 500, 1000] - mediatek,pull-up-adv: - description: | - Pull up settings for 2 pull resistors, R0 and R1. User can - configure those special pins. Valid arguments are described as below: - 0: (R1, R0) = (0, 0) which means R1 disabled and R0 disabled. - 1: (R1, R0) = (0, 1) which means R1 disabled and R0 enabled. - 2: (R1, R0) = (1, 0) which means R1 enabled and R0 disabled. - 3: (R1, R0) = (1, 1) which means R1 enabled and R0 enabled. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3] - - bias-pull-down: true - - bias-pull-up: true + bias-pull-down: + oneOf: + - type: boolean + description: normal pull down. + - enum: [100, 101, 102, 103] + description: PUPD/R1/R0 pull down type. See MTK_PUPD_SET_R1R0_ + defines in dt-bindings/pinctrl/mt65xx.h. + + bias-pull-up: + oneOf: + - type: boolean + description: normal pull up. + - enum: [100, 101, 102, 103] + description: PUPD/R1/R0 pull up type. See MTK_PUPD_SET_R1R0_ + defines in dt-bindings/pinctrl/mt65xx.h. bias-disable: true --- linux-5.19.0.orig/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8195.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pinctrl/pinctrl-mt8195.yaml @@ -49,7 +49,7 @@ description: The interrupt outputs to sysirq. maxItems: 1 - mediatek,rsel_resistance_in_si_unit: + mediatek,rsel-resistance-in-si-unit: type: boolean description: | Identifying i2c pins pull up/down type which is RSEL. It can support @@ -98,31 +98,8 @@ drive-strength: enum: [2, 4, 6, 8, 10, 12, 14, 16] - mediatek,drive-strength-adv: - description: | - Describe the specific driving setup property. - For I2C pins, the existing generic driving setup can only support - 2/4/6/8/10/12/14/16mA driving. But in specific driving setup, they - can support 0.125/0.25/0.5/1mA adjustment. If we enable specific - driving setup, the existing generic setup will be disabled. - The specific driving setup is controlled by E1E0EN. - When E1=0/E0=0, the strength is 0.125mA. - When E1=0/E0=1, the strength is 0.25mA. - When E1=1/E0=0, the strength is 0.5mA. - When E1=1/E0=1, the strength is 1mA. - EN is used to enable or disable the specific driving setup. - Valid arguments are described as below: - 0: (E1, E0, EN) = (0, 0, 0) - 1: (E1, E0, EN) = (0, 0, 1) - 2: (E1, E0, EN) = (0, 1, 0) - 3: (E1, E0, EN) = (0, 1, 1) - 4: (E1, E0, EN) = (1, 0, 0) - 5: (E1, E0, EN) = (1, 0, 1) - 6: (E1, E0, EN) = (1, 1, 0) - 7: (E1, E0, EN) = (1, 1, 1) - So the valid arguments are from 0 to 7. - $ref: /schemas/types.yaml#/definitions/uint32 - enum: [0, 1, 2, 3, 4, 5, 6, 7] + drive-strength-microamp: + enum: [125, 250, 500, 1000] bias-pull-down: oneOf: @@ -142,7 +119,7 @@ "MTK_PUPD_SET_R1R0_11" define in mt8195. For pull down type is RSEL, it can add RSEL define & resistance value(ohm) to set different resistance by identifying property - "mediatek,rsel_resistance_in_si_unit". + "mediatek,rsel-resistance-in-si-unit". It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001" & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011" & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101" @@ -161,7 +138,7 @@ }; An example of using si unit resistance value(ohm): &pio { - mediatek,rsel_resistance_in_si_unit; + mediatek,rsel-resistance-in-si-unit; } pincontroller { i2c0_pin { @@ -190,7 +167,7 @@ "MTK_PUPD_SET_R1R0_11" define in mt8195. For pull up type is RSEL, it can add RSEL define & resistance value(ohm) to set different resistance by identifying property - "mediatek,rsel_resistance_in_si_unit". + "mediatek,rsel-resistance-in-si-unit". It can support "MTK_PULL_SET_RSEL_000" & "MTK_PULL_SET_RSEL_001" & "MTK_PULL_SET_RSEL_010" & "MTK_PULL_SET_RSEL_011" & "MTK_PULL_SET_RSEL_100" & "MTK_PULL_SET_RSEL_101" @@ -209,7 +186,7 @@ }; An example of using si unit resistance value(ohm): &pio { - mediatek,rsel_resistance_in_si_unit; + mediatek,rsel-resistance-in-si-unit; } pincontroller { i2c0-pins { --- linux-5.19.0.orig/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/pwm/microchip,corepwm.yaml @@ -30,7 +30,9 @@ maxItems: 1 "#pwm-cells": - const: 2 + enum: [2, 3] + description: + The only flag supported by the controller is PWM_POLARITY_INVERTED. microchip,sync-update-mask: description: | --- linux-5.19.0.orig/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml @@ -47,12 +47,6 @@ description: Properties for single LDO regulator. - properties: - regulator-name: - pattern: "^LDO[1-5]$" - description: - should be "LDO1", ..., "LDO5" - unevaluatedProperties: false "^BUCK[1-6]$": @@ -62,11 +56,6 @@ Properties for single BUCK regulator. properties: - regulator-name: - pattern: "^BUCK[1-6]$" - description: - should be "BUCK1", ..., "BUCK6" - nxp,dvs-run-voltage: $ref: "/schemas/types.yaml#/definitions/uint32" minimum: 600000 --- linux-5.19.0.orig/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/riscv/sifive-l2-cache.yaml @@ -46,7 +46,7 @@ const: 2 cache-sets: - const: 1024 + enum: [1024, 2048] cache-size: const: 2097152 @@ -84,6 +84,8 @@ description: | Must contain entries for DirError, DataError and DataFail signals. maxItems: 3 + cache-sets: + const: 1024 else: properties: @@ -91,6 +93,8 @@ description: | Must contain entries for DirError, DataError, DataFail, DirFail signals. minItems: 4 + cache-sets: + const: 2048 additionalProperties: false --- linux-5.19.0.orig/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt +++ linux-5.19.0/Documentation/devicetree/bindings/sound/qcom,wcd9335.txt @@ -109,7 +109,7 @@ reg = <1 0>; interrupts = <&msmgpio 54 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "intr2" - reset-gpios = <&msmgpio 64 0>; + reset-gpios = <&msmgpio 64 GPIO_ACTIVE_LOW>; slim-ifc-dev = <&wc9335_ifd>; clock-names = "mclk", "native"; clocks = <&rpmcc RPM_SMD_DIV_CLK1>, --- linux-5.19.0.orig/Documentation/devicetree/bindings/sound/rt5682.txt +++ linux-5.19.0/Documentation/devicetree/bindings/sound/rt5682.txt @@ -46,7 +46,7 @@ - realtek,dmic-clk-driving-high : Set the high driving of the DMIC clock out. -- #sound-dai-cells: Should be set to '<0>'. +- #sound-dai-cells: Should be set to '<1>'. Pins on the device (for linking into audio routes) for RT5682: --- linux-5.19.0.orig/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/spi/qcom,spi-geni-qcom.yaml @@ -45,12 +45,15 @@ - const: rx interconnects: - maxItems: 2 + minItems: 2 + maxItems: 3 interconnect-names: + minItems: 2 items: - const: qup-core - const: qup-config + - const: qup-memory interrupts: maxItems: 1 --- linux-5.19.0.orig/Documentation/devicetree/bindings/spi/spi-cadence.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/spi/spi-cadence.yaml @@ -49,6 +49,13 @@ enum: [ 0, 1 ] default: 0 +required: + - compatible + - reg + - interrupts + - clock-names + - clocks + unevaluatedProperties: false examples: --- linux-5.19.0.orig/Documentation/devicetree/bindings/spi/spi-zynqmp-qspi.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/spi/spi-zynqmp-qspi.yaml @@ -30,6 +30,13 @@ clocks: maxItems: 2 +required: + - compatible + - reg + - interrupts + - clock-names + - clocks + unevaluatedProperties: false examples: --- linux-5.19.0.orig/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml +++ linux-5.19.0/Documentation/devicetree/bindings/usb/mediatek,mtk-xhci.yaml @@ -57,6 +57,7 @@ - description: optional, wakeup interrupt used to support runtime PM interrupt-names: + minItems: 1 items: - const: host - const: wakeup --- linux-5.19.0.orig/Documentation/driver-api/spi.rst +++ linux-5.19.0/Documentation/driver-api/spi.rst @@ -25,8 +25,8 @@ a pair of FIFOs connected to dual DMA engines on the other side of the SPI shift register (maximizing throughput). Such drivers bridge between whatever bus they sit on (often the platform bus) and SPI, and expose -the SPI side of their device as a :c:type:`struct spi_master -`. SPI devices are children of that master, +the SPI side of their device as a :c:type:`struct spi_controller +`. SPI devices are children of that master, represented as a :c:type:`struct spi_device ` and manufactured from :c:type:`struct spi_board_info ` descriptors which are usually provided by --- linux-5.19.0.orig/Documentation/fault-injection/fault-injection.rst +++ linux-5.19.0/Documentation/fault-injection/fault-injection.rst @@ -83,9 +83,7 @@ - /sys/kernel/debug/fail*/times: specifies how many times failures may happen at most. A value of -1 - means "no limit". Note, though, that this file only accepts unsigned - values. So, if you want to specify -1, you better use 'printf' instead - of 'echo', e.g.: $ printf %#x -1 > times + means "no limit". - /sys/kernel/debug/fail*/space: @@ -277,7 +275,7 @@ echo Y > /sys/kernel/debug/$FAILTYPE/task-filter echo 10 > /sys/kernel/debug/$FAILTYPE/probability echo 100 > /sys/kernel/debug/$FAILTYPE/interval - printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times + echo -1 > /sys/kernel/debug/$FAILTYPE/times echo 0 > /sys/kernel/debug/$FAILTYPE/space echo 2 > /sys/kernel/debug/$FAILTYPE/verbose echo Y > /sys/kernel/debug/$FAILTYPE/ignore-gfp-wait @@ -331,7 +329,7 @@ echo N > /sys/kernel/debug/$FAILTYPE/task-filter echo 10 > /sys/kernel/debug/$FAILTYPE/probability echo 100 > /sys/kernel/debug/$FAILTYPE/interval - printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times + echo -1 > /sys/kernel/debug/$FAILTYPE/times echo 0 > /sys/kernel/debug/$FAILTYPE/space echo 2 > /sys/kernel/debug/$FAILTYPE/verbose echo Y > /sys/kernel/debug/$FAILTYPE/ignore-gfp-wait @@ -362,7 +360,7 @@ echo N > /sys/kernel/debug/$FAILTYPE/task-filter echo 100 > /sys/kernel/debug/$FAILTYPE/probability echo 0 > /sys/kernel/debug/$FAILTYPE/interval - printf %#x -1 > /sys/kernel/debug/$FAILTYPE/times + echo -1 > /sys/kernel/debug/$FAILTYPE/times echo 0 > /sys/kernel/debug/$FAILTYPE/space echo 1 > /sys/kernel/debug/$FAILTYPE/verbose --- linux-5.19.0.orig/Documentation/filesystems/ext4/blockmap.rst +++ linux-5.19.0/Documentation/filesystems/ext4/blockmap.rst @@ -1,7 +1,7 @@ .. SPDX-License-Identifier: GPL-2.0 +---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| i.i_block Offset | Where It Points | +| i.i_block Offset | Where It Points | +=====================+==============================================================================================================================================================================================================================+ | 0 to 11 | Direct map to file blocks 0 to 11. | +---------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ --- linux-5.19.0.orig/Documentation/filesystems/vfs.rst +++ linux-5.19.0/Documentation/filesystems/vfs.rst @@ -274,6 +274,9 @@ This is specifically for the inode itself being marked dirty, not its data. If the update needs to be persisted by fdatasync(), then I_DIRTY_DATASYNC will be set in the flags argument. + I_DIRTY_TIME will be set in the flags in case lazytime is enabled + and struct inode has times updated since the last ->dirty_inode + call. ``write_inode`` this method is called when the VFS needs to write an inode to --- linux-5.19.0.orig/Documentation/firmware-guide/acpi/apei/einj.rst +++ linux-5.19.0/Documentation/firmware-guide/acpi/apei/einj.rst @@ -168,7 +168,7 @@ 0x00000008 Memory Correctable 0x00000010 Memory Uncorrectable non-fatal # echo 0x12345000 > param1 # Set memory address for injection - # echo $((-1 << 12)) > param2 # Mask 0xfffffffffffff000 - anywhere in this page + # echo 0xfffffffffffff000 > param2 # Mask - anywhere in this page # echo 0x8 > error_type # Choose correctable memory error # echo 1 > error_inject # Inject now --- linux-5.19.0.orig/Documentation/hwmon/asus_ec_sensors.rst +++ linux-5.19.0/Documentation/hwmon/asus_ec_sensors.rst @@ -13,12 +13,16 @@ * ROG CROSSHAIR VIII FORMULA * ROG CROSSHAIR VIII HERO * ROG CROSSHAIR VIII IMPACT + * ROG MAXIMUS XI HERO + * ROG MAXIMUS XI HERO (WI-FI) * ROG STRIX B550-E GAMING * ROG STRIX B550-I GAMING * ROG STRIX X570-E GAMING * ROG STRIX X570-E GAMING WIFI II * ROG STRIX X570-F GAMING * ROG STRIX X570-I GAMING + * ROG STRIX Z690-A GAMING WIFI D4 + * ROG ZENITH II EXTREME Authors: - Eugene Shalygin --- linux-5.19.0.orig/Documentation/input/joydev/joystick.rst +++ linux-5.19.0/Documentation/input/joydev/joystick.rst @@ -517,6 +517,7 @@ * AVB Mag Turbo Force * AVB Top Shot Pegasus * AVB Top Shot Force Feedback Racing Wheel +* Boeder Force Feedback Wheel * Logitech WingMan Force * Logitech WingMan Force Wheel * Guillemot Race Leader Force Feedback --- linux-5.19.0.orig/Documentation/process/code-of-conduct-interpretation.rst +++ linux-5.19.0/Documentation/process/code-of-conduct-interpretation.rst @@ -51,7 +51,7 @@ uncertain how to handle situations that come up. It will not be considered a violation report unless you want it to be. If you are uncertain about approaching the TAB or any other maintainers, please -reach out to our conflict mediator, Mishi Choudhary . +reach out to our conflict mediator, Joanna Lee . In the end, "be kind to each other" is really what the end goal is for everybody. We know everyone is human and we all fail at times, but the --- linux-5.19.0.orig/Documentation/process/howto.rst +++ linux-5.19.0/Documentation/process/howto.rst @@ -36,7 +36,7 @@ - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] The kernel is written using GNU C and the GNU toolchain. While it -adheres to the ISO C89 standard, it uses a number of extensions that are +adheres to the ISO C11 standard, it uses a number of extensions that are not featured in the standard. The kernel is a freestanding C environment, with no reliance on the standard C library, so some portions of the C standard are not supported. Arbitrary long long --- linux-5.19.0.orig/Documentation/s390/vfio-ap-locking.rst +++ linux-5.19.0/Documentation/s390/vfio-ap-locking.rst @@ -0,0 +1,105 @@ +.. SPDX-License-Identifier: GPL-2.0 + +====================== +VFIO AP Locks Overview +====================== +This document describes the locks that are pertinent to the secure operation +of the vfio_ap device driver. Throughout this document, the following variables +will be used to denote instances of the structures herein described: + +struct ap_matrix_dev *matrix_dev; +struct ap_matrix_mdev *matrix_mdev; +struct kvm *kvm; + +The Matrix Devices Lock (drivers/s390/crypto/vfio_ap_private.h) +-------------------------------------------------------------- + +struct ap_matrix_dev { + ... + struct list_head mdev_list; + struct mutex mdevs_lock; + ... +} + +The Matrix Devices Lock (matrix_dev->mdevs_lock) is implemented as a global +mutex contained within the single object of struct ap_matrix_dev. This lock +controls access to all fields contained within each matrix_mdev +(matrix_dev->mdev_list). This lock must be held while reading from, writing to +or using the data from a field contained within a matrix_mdev instance +representing one of the vfio_ap device driver's mediated devices. + +The KVM Lock (include/linux/kvm_host.h) +--------------------------------------- + +struct kvm { + ... + struct mutex lock; + ... +} + +The KVM Lock (kvm->lock) controls access to the state data for a KVM guest. This +lock must be held by the vfio_ap device driver while one or more AP adapters, +domains or control domains are being plugged into or unplugged from the guest. + +The KVM pointer is stored in the in the matrix_mdev instance +(matrix_mdev->kvm = kvm) containing the state of the mediated device that has +been attached to the KVM guest. + +The Guests Lock (drivers/s390/crypto/vfio_ap_private.h) +----------------------------------------------------------- + +struct ap_matrix_dev { + ... + struct list_head mdev_list; + struct mutex guests_lock; + ... +} + +The Guests Lock (matrix_dev->guests_lock) controls access to the +matrix_mdev instances (matrix_dev->mdev_list) that represent mediated devices +that hold the state for the mediated devices that have been attached to a +KVM guest. This lock must be held: + +1. To control access to the KVM pointer (matrix_mdev->kvm) while the vfio_ap + device driver is using it to plug/unplug AP devices passed through to the KVM + guest. + +2. To add matrix_mdev instances to or remove them from matrix_dev->mdev_list. + This is necessary to ensure the proper locking order when the list is perused + to find an ap_matrix_mdev instance for the purpose of plugging/unplugging + AP devices passed through to a KVM guest. + + For example, when a queue device is removed from the vfio_ap device driver, + if the adapter is passed through to a KVM guest, it will have to be + unplugged. In order to figure out whether the adapter is passed through, + the matrix_mdev object to which the queue is assigned will have to be + found. The KVM pointer (matrix_mdev->kvm) can then be used to determine if + the mediated device is passed through (matrix_mdev->kvm != NULL) and if so, + to unplug the adapter. + +It is not necessary to take the Guests Lock to access the KVM pointer if the +pointer is not used to plug/unplug devices passed through to the KVM guest; +however, in this case, the Matrix Devices Lock (matrix_dev->mdevs_lock) must be +held in order to access the KVM pointer since it is set and cleared under the +protection of the Matrix Devices Lock. A case in point is the function that +handles interception of the PQAP(AQIC) instruction sub-function. This handler +needs to access the KVM pointer only for the purposes of setting or clearing IRQ +resources, so only the matrix_dev->mdevs_lock needs to be held. + +The PQAP Hook Lock (arch/s390/include/asm/kvm_host.h) +----------------------------------------------------- + +typedef int (*crypto_hook)(struct kvm_vcpu *vcpu); + +struct kvm_s390_crypto { + ... + struct rw_semaphore pqap_hook_rwsem; + crypto_hook *pqap_hook; + ... +}; + +The PQAP Hook Lock is a r/w semaphore that controls access to the function +pointer of the handler (*kvm->arch.crypto.pqap_hook) to invoke when the +PQAP(AQIC) instruction sub-function is intercepted by the host. The lock must be +held in write mode when pqap_hook value is set, and in read mode when the +pqap_hook function is called. --- linux-5.19.0.orig/Documentation/s390/vfio-ap.rst +++ linux-5.19.0/Documentation/s390/vfio-ap.rst @@ -123,27 +123,24 @@ by the hardware. A satellite control block called the Crypto Control Block (CRYCB) is attached to -our main hardware virtualization control block. The CRYCB contains three fields -to identify the adapters, usage domains and control domains assigned to the KVM -guest: +our main hardware virtualization control block. The CRYCB contains an AP Control +Block (APCB) that has three fields to identify the adapters, usage domains and +control domains assigned to the KVM guest: * The AP Mask (APM) field is a bit mask that identifies the AP adapters assigned - to the KVM guest. Each bit in the mask, from left to right (i.e. from most - significant to least significant bit in big endian order), corresponds to + to the KVM guest. Each bit in the mask, from left to right, corresponds to an APID from 0-255. If a bit is set, the corresponding adapter is valid for use by the KVM guest. * The AP Queue Mask (AQM) field is a bit mask identifying the AP usage domains - assigned to the KVM guest. Each bit in the mask, from left to right (i.e. from - most significant to least significant bit in big endian order), corresponds to - an AP queue index (APQI) from 0-255. If a bit is set, the corresponding queue - is valid for use by the KVM guest. + assigned to the KVM guest. Each bit in the mask, from left to right, + corresponds to an AP queue index (APQI) from 0-255. If a bit is set, the + corresponding queue is valid for use by the KVM guest. * The AP Domain Mask field is a bit mask that identifies the AP control domains assigned to the KVM guest. The ADM bit mask controls which domains can be changed by an AP command-request message sent to a usage domain from the - guest. Each bit in the mask, from left to right (i.e. from most significant to - least significant bit in big endian order), corresponds to a domain from + guest. Each bit in the mask, from left to right, corresponds to a domain from 0-255. If a bit is set, the corresponding domain can be modified by an AP command-request message sent to a usage domain. @@ -151,10 +148,10 @@ an APQN to identify the AP queue to which an AP command-request message is to be sent (NQAP and PQAP instructions), or from which a command-reply message is to be received (DQAP instruction). The validity of an APQN is defined by the matrix -calculated from the APM and AQM; it is the cross product of all assigned adapter -numbers (APM) with all assigned queue indexes (AQM). For example, if adapters 1 -and 2 and usage domains 5 and 6 are assigned to a guest, the APQNs (1,5), (1,6), -(2,5) and (2,6) will be valid for the guest. +calculated from the APM and AQM; it is the Cartesian product of all assigned +adapter numbers (APM) with all assigned queue indexes (AQM). For example, if +adapters 1 and 2 and usage domains 5 and 6 are assigned to a guest, the APQNs +(1,5), (1,6), (2,5) and (2,6) will be valid for the guest. The APQNs can provide secure key functionality - i.e., a private key is stored on the adapter card for each of its domains - so each APQN must be assigned to @@ -192,7 +189,7 @@ 1. AP matrix device 2. VFIO AP device driver (vfio_ap.ko) -3. VFIO AP mediated matrix pass-through device +3. VFIO AP mediated pass-through device The VFIO AP device driver ------------------------- @@ -200,12 +197,13 @@ 1. Provides the interfaces to secure APQNs for exclusive use of KVM guests. -2. Sets up the VFIO mediated device interfaces to manage a mediated matrix +2. Sets up the VFIO mediated device interfaces to manage a vfio_ap mediated device and creates the sysfs interfaces for assigning adapters, usage domains, and control domains comprising the matrix for a KVM guest. -3. Configures the APM, AQM and ADM in the CRYCB referenced by a KVM guest's - SIE state description to grant the guest access to a matrix of AP devices +3. Configures the APM, AQM and ADM in the APCB contained in the CRYCB referenced + by a KVM guest's SIE state description to grant the guest access to a matrix + of AP devices Reserve APQNs for exclusive use of KVM guests --------------------------------------------- @@ -235,10 +233,10 @@ | | 8 probe | | +--------^---------+ +--^--^------------+ 6 edit | | | - apmask | +-----------------------------+ | 9 mdev create + apmask | +-----------------------------+ | 11 mdev create aqmask | | 1 modprobe | +--------+-----+---+ +----------------+-+ +----------------+ - | | | |8 create | mediated | + | | | |10 create| mediated | | admin | | VFIO device core |---------> matrix | | + | | | device | +------+-+---------+ +--------^---------+ +--------^-------+ @@ -246,14 +244,14 @@ | | 9 create vfio_ap-passthrough | | | +------------------------------+ | +-------------------------------------------------------------+ - 10 assign adapter/domain/control domain + 12 assign adapter/domain/control domain The process for reserving an AP queue for use by a KVM guest is: 1. The administrator loads the vfio_ap device driver 2. The vfio-ap driver during its initialization will register a single 'matrix' device with the device core. This will serve as the parent device for - all mediated matrix devices used to configure an AP matrix for a guest. + all vfio_ap mediated devices used to configure an AP matrix for a guest. 3. The /sys/devices/vfio_ap/matrix device is created by the device core 4. The vfio_ap device driver will register with the AP bus for AP queue devices of type 10 and higher (CEX4 and newer). The driver will provide the vfio_ap @@ -269,24 +267,24 @@ default zcrypt cex4queue driver. 8. The AP bus probes the vfio_ap device driver to bind the queues reserved for it. -9. The administrator creates a passthrough type mediated matrix device to be +9. The administrator creates a passthrough type vfio_ap mediated device to be used by a guest 10. The administrator assigns the adapters, usage domains and control domains to be exclusively used by a guest. Set up the VFIO mediated device interfaces ------------------------------------------ -The VFIO AP device driver utilizes the common interface of the VFIO mediated +The VFIO AP device driver utilizes the common interfaces of the VFIO mediated device core driver to: -* Register an AP mediated bus driver to add a mediated matrix device to and +* Register an AP mediated bus driver to add a vfio_ap mediated device to and remove it from a VFIO group. -* Create and destroy a mediated matrix device -* Add a mediated matrix device to and remove it from the AP mediated bus driver -* Add a mediated matrix device to and remove it from an IOMMU group +* Create and destroy a vfio_ap mediated device +* Add a vfio_ap mediated device to and remove it from the AP mediated bus driver +* Add a vfio_ap mediated device to and remove it from an IOMMU group The following high-level block diagram shows the main components and interfaces -of the VFIO AP mediated matrix device driver:: +of the VFIO AP mediated device driver:: +-------------+ | | @@ -343,7 +341,7 @@ * device_api: the mediated device type's API * available_instances: - the number of mediated matrix passthrough devices + the number of vfio_ap mediated passthrough devices that can be created * device_api: specifies the VFIO API @@ -351,29 +349,37 @@ This attribute group identifies the user-defined sysfs attributes of the mediated device. When a device is registered with the VFIO mediated device framework, the sysfs attribute files identified in the 'mdev_attr_groups' - structure will be created in the mediated matrix device's directory. The - sysfs attributes for a mediated matrix device are: + structure will be created in the vfio_ap mediated device's directory. The + sysfs attributes for a vfio_ap mediated device are: assign_adapter / unassign_adapter: Write-only attributes for assigning/unassigning an AP adapter to/from the - mediated matrix device. To assign/unassign an adapter, the APID of the - adapter is echoed to the respective attribute file. + vfio_ap mediated device. To assign/unassign an adapter, the APID of the + adapter is echoed into the respective attribute file. assign_domain / unassign_domain: Write-only attributes for assigning/unassigning an AP usage domain to/from - the mediated matrix device. To assign/unassign a domain, the domain - number of the usage domain is echoed to the respective attribute + the vfio_ap mediated device. To assign/unassign a domain, the domain + number of the usage domain is echoed into the respective attribute file. matrix: - A read-only file for displaying the APQNs derived from the cross product - of the adapter and domain numbers assigned to the mediated matrix device. + A read-only file for displaying the APQNs derived from the Cartesian + product of the adapter and domain numbers assigned to the vfio_ap mediated + device. + guest_matrix: + A read-only file for displaying the APQNs derived from the Cartesian + product of the adapter and domain numbers assigned to the APM and AQM + fields respectively of the KVM guest's CRYCB. This may differ from the + the APQNs assigned to the vfio_ap mediated device if any APQN does not + reference a queue device bound to the vfio_ap device driver (i.e., the + queue is not in the host's AP configuration). assign_control_domain / unassign_control_domain: Write-only attributes for assigning/unassigning an AP control domain - to/from the mediated matrix device. To assign/unassign a control domain, - the ID of the domain to be assigned/unassigned is echoed to the respective - attribute file. + to/from the vfio_ap mediated device. To assign/unassign a control domain, + the ID of the domain to be assigned/unassigned is echoed into the + respective attribute file. control_domains: A read-only file for displaying the control domain numbers assigned to the - mediated matrix device. + vfio_ap mediated device. * functions: @@ -383,45 +389,75 @@ * Store the reference to the KVM structure for the guest using the mdev * Store the AP matrix configuration for the adapters, domains, and control domains assigned via the corresponding sysfs attributes files + * Store the AP matrix configuration for the adapters, domains and control + domains available to a guest. A guest may not be provided access to APQNs + referencing queue devices that do not exist, or are not bound to the + vfio_ap device driver. remove: - deallocates the mediated matrix device's ap_matrix_mdev structure. This will - be allowed only if a running guest is not using the mdev. + deallocates the vfio_ap mediated device's ap_matrix_mdev structure. + This will be allowed only if a running guest is not using the mdev. * callback interfaces - open: + open_device: The vfio_ap driver uses this callback to register a - VFIO_GROUP_NOTIFY_SET_KVM notifier callback function for the mdev matrix - device. The open is invoked when QEMU connects the VFIO iommu group - for the mdev matrix device to the MDEV bus. Access to the KVM structure used - to configure the KVM guest is provided via this callback. The KVM structure, - is used to configure the guest's access to the AP matrix defined via the - mediated matrix device's sysfs attribute files. - release: + VFIO_GROUP_NOTIFY_SET_KVM notifier callback function for the matrix mdev + devices. The open_device callback is invoked by userspace to connect the + VFIO iommu group for the matrix mdev device to the MDEV bus. Access to the + KVM structure used to configure the KVM guest is provided via this callback. + The KVM structure, is used to configure the guest's access to the AP matrix + defined via the vfio_ap mediated device's sysfs attribute files. + + close_device: unregisters the VFIO_GROUP_NOTIFY_SET_KVM notifier callback function for the - mdev matrix device and deconfigures the guest's AP matrix. + matrix mdev device and deconfigures the guest's AP matrix. + + ioctl: + this callback handles the VFIO_DEVICE_GET_INFO and VFIO_DEVICE_RESET ioctls + defined by the vfio framework. -Configure the APM, AQM and ADM in the CRYCB -------------------------------------------- -Configuring the AP matrix for a KVM guest will be performed when the +Configure the guest's AP resources +---------------------------------- +Configuring the AP resources for a KVM guest will be performed when the VFIO_GROUP_NOTIFY_SET_KVM notifier callback is invoked. The notifier -function is called when QEMU connects to KVM. The guest's AP matrix is -configured via it's CRYCB by: +function is called when userspace connects to KVM. The guest's AP resources are +configured via it's APCB by: * Setting the bits in the APM corresponding to the APIDs assigned to the - mediated matrix device via its 'assign_adapter' interface. + vfio_ap mediated device via its 'assign_adapter' interface. * Setting the bits in the AQM corresponding to the domains assigned to the - mediated matrix device via its 'assign_domain' interface. + vfio_ap mediated device via its 'assign_domain' interface. * Setting the bits in the ADM corresponding to the domain dIDs assigned to the - mediated matrix device via its 'assign_control_domains' interface. + vfio_ap mediated device via its 'assign_control_domains' interface. + +The linux device model precludes passing a device through to a KVM guest that +is not bound to the device driver facilitating its pass-through. Consequently, +an APQN that does not reference a queue device bound to the vfio_ap device +driver will not be assigned to a KVM guest's matrix. The AP architecture, +however, does not provide a means to filter individual APQNs from the guest's +matrix, so the adapters, domains and control domains assigned to vfio_ap +mediated device via its sysfs 'assign_adapter', 'assign_domain' and +'assign_control_domain' interfaces will be filtered before providing the AP +configuration to a guest: + +* The APIDs of the adapters, the APQIs of the domains and the domain numbers of + the control domains assigned to the matrix mdev that are not also assigned to + the host's AP configuration will be filtered. + +* Each APQN derived from the Cartesian product of the APIDs and APQIs assigned + to the vfio_ap mdev is examined and if any one of them does not reference a + queue device bound to the vfio_ap device driver, the adapter will not be + plugged into the guest (i.e., the bit corresponding to its APID will not be + set in the APM of the guest's APCB). The CPU model features for AP ----------------------------- -The AP stack relies on the presence of the AP instructions as well as two -facilities: The AP Facilities Test (APFT) facility; and the AP Query -Configuration Information (QCI) facility. These features/facilities are made -available to a KVM guest via the following CPU model features: +The AP stack relies on the presence of the AP instructions as well as three +facilities: The AP Facilities Test (APFT) facility; the AP Query +Configuration Information (QCI) facility; and the AP Queue Interruption Control +facility. These features/facilities are made available to a KVM guest via the +following CPU model features: 1. ap: Indicates whether the AP instructions are installed on the guest. This feature will be enabled by KVM only if the AP instructions are installed @@ -435,24 +471,28 @@ can be made available to the guest only if it is available on the host (i.e., facility bit 12 is set). +4. apqi: Indicates AP Queue Interruption Control faclity is available on the + guest. This facility can be made available to the guest only if it is + available on the host (i.e., facility bit 65 is set). + Note: If the user chooses to specify a CPU model different than the 'host' model to QEMU, the CPU model features and facilities need to be turned on explicitly; for example:: - /usr/bin/qemu-system-s390x ... -cpu z13,ap=on,apqci=on,apft=on + /usr/bin/qemu-system-s390x ... -cpu z13,ap=on,apqci=on,apft=on,apqi=on A guest can be precluded from using AP features/facilities by turning them off explicitly; for example:: - /usr/bin/qemu-system-s390x ... -cpu host,ap=off,apqci=off,apft=off + /usr/bin/qemu-system-s390x ... -cpu host,ap=off,apqci=off,apft=off,apqi=off Note: If the APFT facility is turned off (apft=off) for the guest, the guest -will not see any AP devices. The zcrypt device drivers that register for type 10 -and newer AP devices - i.e., the cex4card and cex4queue device drivers - need -the APFT facility to ascertain the facilities installed on a given AP device. If -the APFT facility is not installed on the guest, then the probe of device -drivers will fail since only type 10 and newer devices can be configured for -guest use. +will not see any AP devices. The zcrypt device drivers on the guest that +register for type 10 and newer AP devices - i.e., the cex4card and cex4queue +device drivers - need the APFT facility to ascertain the facilities installed on +a given AP device. If the APFT facility is not installed on the guest, then no +adapter or domain devices will get created by the AP bus running on the +guest because only type 10 and newer devices can be configured for guest use. Example ======= @@ -471,7 +511,7 @@ 05.00ab CEX5C CCA-Coproc 06 CEX5A Accelerator 06.0004 CEX5A Accelerator -06.00ab CEX5C CCA-Coproc +06.00ab CEX5A Accelerator =========== ===== ============ Guest2 @@ -479,9 +519,9 @@ =========== ===== ============ CARD.DOMAIN TYPE MODE =========== ===== ============ -05 CEX5A Accelerator -05.0047 CEX5A Accelerator -05.00ff CEX5A Accelerator +05 CEX5C CCA-Coproc +05.0047 CEX5C CCA-Coproc +05.00ff CEX5C CCA-Coproc =========== ===== ============ Guest3 @@ -529,40 +569,56 @@ 2. Secure the AP queues to be used by the three guests so that the host can not access them. To secure them, there are two sysfs files that specify - bitmasks marking a subset of the APQN range as 'usable by the default AP - queue device drivers' or 'not usable by the default device drivers' and thus - available for use by the vfio_ap device driver'. The location of the sysfs - files containing the masks are:: + bitmasks marking a subset of the APQN range as usable only by the default AP + queue device drivers. All remaining APQNs are available for use by + any other device driver. The vfio_ap device driver is currently the only + non-default device driver. The location of the sysfs files containing the + masks are:: /sys/bus/ap/apmask /sys/bus/ap/aqmask The 'apmask' is a 256-bit mask that identifies a set of AP adapter IDs - (APID). Each bit in the mask, from left to right (i.e., from most significant - to least significant bit in big endian order), corresponds to an APID from - 0-255. If a bit is set, the APID is marked as usable only by the default AP - queue device drivers; otherwise, the APID is usable by the vfio_ap - device driver. + (APID). Each bit in the mask, from left to right, corresponds to an APID from + 0-255. If a bit is set, the APID belongs to the subset of APQNs marked as + available only to the default AP queue device drivers. The 'aqmask' is a 256-bit mask that identifies a set of AP queue indexes - (APQI). Each bit in the mask, from left to right (i.e., from most significant - to least significant bit in big endian order), corresponds to an APQI from - 0-255. If a bit is set, the APQI is marked as usable only by the default AP - queue device drivers; otherwise, the APQI is usable by the vfio_ap device - driver. + (APQI). Each bit in the mask, from left to right, corresponds to an APQI from + 0-255. If a bit is set, the APQI belongs to the subset of APQNs marked as + available only to the default AP queue device drivers. + + The Cartesian product of the APIDs corresponding to the bits set in the + apmask and the APQIs corresponding to the bits set in the aqmask comprise + the subset of APQNs that can be used only by the host default device drivers. + All other APQNs are available to the non-default device drivers such as the + vfio_ap driver. - Take, for example, the following mask:: + Take, for example, the following masks:: - 0x7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + apmask: + 0x7d00000000000000000000000000000000000000000000000000000000000000 - It indicates: + aqmask: + 0x8000000000000000000000000000000000000000000000000000000000000000 - 1, 2, 3, 4, 5, and 7-255 belong to the default drivers' pool, and 0 and 6 - belong to the vfio_ap device driver's pool. + The masks indicate: + + * Adapters 1, 2, 3, 4, 5, and 7 are available for use by the host default + device drivers. + + * Domain 0 is available for use by the host default device drivers + + * The subset of APQNs available for use only by the default host device + drivers are: + + (1,0), (2,0), (3,0), (4.0), (5,0) and (7,0) + + * All other APQNs are available for use by the non-default device drivers. The APQN of each AP queue device assigned to the linux host is checked by the - AP bus against the set of APQNs derived from the cross product of APIDs - and APQIs marked as usable only by the default AP queue device drivers. If a + AP bus against the set of APQNs derived from the Cartesian product of APIDs + and APQIs marked as available to the default AP queue device drivers. If a match is detected, only the default AP queue device drivers will be probed; otherwise, the vfio_ap device driver will be probed. @@ -579,8 +635,7 @@ 0x4100000000000000000000000000000000000000000000000000000000000000 - Keep in mind that the mask reads from left to right (i.e., most - significant to least significant bit in big endian order), so the mask + Keep in mind that the mask reads from left to right, so the mask above identifies device numbers 1 and 7 (01000001). If the string is longer than the mask, the operation is terminated with @@ -626,11 +681,22 @@ default drivers pool: adapter 0-15, domain 1 alternate drivers pool: adapter 16-255, domains 0, 2-255 + Note ***: + Changing a mask such that one or more APQNs will be taken from a vfio_ap + mediated device (see below) will fail with an error (EBUSY). A message + is logged to the kernel ring buffer which can be viewed with the 'dmesg' + command. The output identifies each APQN flagged as 'in use' and identifies + the vfio_ap mediated device to which it is assigned; for example: + + Userspace may not re-assign queue 05.0054 already assigned to 62177883-f1bb-47f0-914d-32a22e3a8804 + Userspace may not re-assign queue 04.0054 already assigned to cef03c3c-903d-4ecc-9a83-40694cb8aee4 + Securing the APQNs for our example ---------------------------------- To secure the AP queues 05.0004, 05.0047, 05.00ab, 05.00ff, 06.0004, 06.0047, 06.00ab, and 06.00ff for use by the vfio_ap device driver, the corresponding - APQNs can either be removed from the default masks:: + APQNs can be removed from the default masks using either of the following + commands:: echo -5,-6 > /sys/bus/ap/apmask @@ -683,7 +749,7 @@ /sys/devices/vfio_ap/matrix/ --- [mdev_supported_types] - ------ [vfio_ap-passthrough] (passthrough mediated matrix device type) + ------ [vfio_ap-passthrough] (passthrough vfio_ap mediated device type) --------- create --------- [devices] @@ -734,6 +800,9 @@ ----------------unassign_control_domain ----------------unassign_domain + Note *****: The vfio_ap mdevs do not persist across reboots unless the + mdevctl tool is used to create and persist them. + 4. The administrator now needs to configure the matrixes for the mediated devices $uuid1 (for Guest1), $uuid2 (for Guest2) and $uuid3 (for Guest3). @@ -755,6 +824,10 @@ cat matrix + To display the matrix that is or will be assigned to Guest1:: + + cat guest_matrix + This is how the matrix is configured for Guest2:: echo 5 > assign_adapter @@ -774,17 +847,24 @@ higher than the maximum is specified, the operation will terminate with an error (ENODEV). - * All APQNs that can be derived from the adapter ID and the IDs of - the previously assigned domains must be bound to the vfio_ap device - driver. If no domains have yet been assigned, then there must be at least - one APQN with the specified APID bound to the vfio_ap driver. If no such - APQNs are bound to the driver, the operation will terminate with an - error (EADDRNOTAVAIL). - - No APQN that can be derived from the adapter ID and the IDs of the - previously assigned domains can be assigned to another mediated matrix - device. If an APQN is assigned to another mediated matrix device, the - operation will terminate with an error (EADDRINUSE). + Note: The maximum adapter number can be obtained via the sysfs + /sys/bus/ap/ap_max_adapter_id attribute file. + + * Each APQN derived from the Cartesian product of the APID of the adapter + being assigned and the APQIs of the domains previously assigned: + + - Must only be available to the vfio_ap device driver as specified in the + sysfs /sys/bus/ap/apmask and /sys/bus/ap/aqmask attribute files. If even + one APQN is reserved for use by the host device driver, the operation + will terminate with an error (EADDRNOTAVAIL). + + - Must NOT be assigned to another vfio_ap mediated device. If even one APQN + is assigned to another vfio_ap mediated device, the operation will + terminate with an error (EBUSY). + + - Must NOT be assigned while the sysfs /sys/bus/ap/apmask and + sys/bus/ap/aqmask attribute files are being edited or the operation may + terminate with an error (EBUSY). In order to successfully assign a domain: @@ -793,41 +873,50 @@ higher than the maximum is specified, the operation will terminate with an error (ENODEV). - * All APQNs that can be derived from the domain ID and the IDs of - the previously assigned adapters must be bound to the vfio_ap device - driver. If no domains have yet been assigned, then there must be at least - one APQN with the specified APQI bound to the vfio_ap driver. If no such - APQNs are bound to the driver, the operation will terminate with an - error (EADDRNOTAVAIL). - - No APQN that can be derived from the domain ID and the IDs of the - previously assigned adapters can be assigned to another mediated matrix - device. If an APQN is assigned to another mediated matrix device, the - operation will terminate with an error (EADDRINUSE). - - In order to successfully assign a control domain, the domain number - specified must represent a value from 0 up to the maximum domain number - configured for the system. If a control domain number higher than the maximum - is specified, the operation will terminate with an error (ENODEV). + Note: The maximum domain number can be obtained via the sysfs + /sys/bus/ap/ap_max_domain_id attribute file. + + * Each APQN derived from the Cartesian product of the APQI of the domain + being assigned and the APIDs of the adapters previously assigned: + + - Must only be available to the vfio_ap device driver as specified in the + sysfs /sys/bus/ap/apmask and /sys/bus/ap/aqmask attribute files. If even + one APQN is reserved for use by the host device driver, the operation + will terminate with an error (EADDRNOTAVAIL). + + - Must NOT be assigned to another vfio_ap mediated device. If even one APQN + is assigned to another vfio_ap mediated device, the operation will + terminate with an error (EBUSY). + + - Must NOT be assigned while the sysfs /sys/bus/ap/apmask and + sys/bus/ap/aqmask attribute files are being edited or the operation may + terminate with an error (EBUSY). + + In order to successfully assign a control domain: + + * The domain number specified must represent a value from 0 up to the maximum + domain number configured for the system. If a control domain number higher + than the maximum is specified, the operation will terminate with an + error (ENODEV). 5. Start Guest1:: - /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on \ + /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on,apqi=on \ -device vfio-ap,sysfsdev=/sys/devices/vfio_ap/matrix/$uuid1 ... 7. Start Guest2:: - /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on \ + /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on,apqi=on \ -device vfio-ap,sysfsdev=/sys/devices/vfio_ap/matrix/$uuid2 ... 7. Start Guest3:: - /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on \ + /usr/bin/qemu-system-s390x ... -cpu host,ap=on,apqci=on,apft=on,apqi=on \ -device vfio-ap,sysfsdev=/sys/devices/vfio_ap/matrix/$uuid3 ... -When the guest is shut down, the mediated matrix devices may be removed. +When the guest is shut down, the vfio_ap mediated devices may be removed. -Using our example again, to remove the mediated matrix device $uuid1:: +Using our example again, to remove the vfio_ap mediated device $uuid1:: /sys/devices/vfio_ap/matrix/ --- [mdev_supported_types] @@ -840,26 +929,137 @@ echo 1 > remove -This will remove all of the mdev matrix device's sysfs structures including -the mdev device itself. To recreate and reconfigure the mdev matrix device, +This will remove all of the matrix mdev device's sysfs structures including +the mdev device itself. To recreate and reconfigure the matrix mdev device, all of the steps starting with step 3 will have to be performed again. Note -that the remove will fail if a guest using the mdev is still running. +that the remove will fail if a guest using the vfio_ap mdev is still running. -It is not necessary to remove an mdev matrix device, but one may want to +It is not necessary to remove a vfio_ap mdev, but one may want to remove it if no guest will use it during the remaining lifetime of the linux -host. If the mdev matrix device is removed, one may want to also reconfigure +host. If the vfio_ap mdev is removed, one may want to also reconfigure the pool of adapters and queues reserved for use by the default drivers. +Hot plug/unplug support: +================ +An adapter, domain or control domain may be hot plugged into a running KVM +guest by assigning it to the vfio_ap mediated device being used by the guest if +the following conditions are met: + +* The adapter, domain or control domain must also be assigned to the host's + AP configuration. + +* Each APQN derived from the Cartesian product comprised of the APID of the + adapter being assigned and the APQIs of the domains assigned must reference a + queue device bound to the vfio_ap device driver. + +* To hot plug a domain, each APQN derived from the Cartesian product + comprised of the APQI of the domain being assigned and the APIDs of the + adapters assigned must reference a queue device bound to the vfio_ap device + driver. + +An adapter, domain or control domain may be hot unplugged from a running KVM +guest by unassigning it from the vfio_ap mediated device being used by the +guest. + +Over-provisioning of AP queues for a KVM guest: +============================================== +Over-provisioning is defined herein as the assignment of adapters or domains to +a vfio_ap mediated device that do not reference AP devices in the host's AP +configuration. The idea here is that when the adapter or domain becomes +available, it will be automatically hot-plugged into the KVM guest using +the vfio_ap mediated device to which it is assigned as long as each new APQN +resulting from plugging it in references a queue device bound to the vfio_ap +device driver. + Limitations =========== -* The KVM/kernel interfaces do not provide a way to prevent restoring an APQN - to the default drivers pool of a queue that is still assigned to a mediated - device in use by a guest. It is incumbent upon the administrator to - ensure there is no mediated device in use by a guest to which the APQN is - assigned lest the host be given access to the private data of the AP queue - device such as a private key configured specifically for the guest. +Live guest migration is not supported for guests using AP devices without +intervention by a system administrator. Before a KVM guest can be migrated, +the vfio_ap mediated device must be removed. Unfortunately, it can not be +removed manually (i.e., echo 1 > /sys/devices/vfio_ap/matrix/$UUID/remove) while +the mdev is in use by a KVM guest. If the guest is being emulated by QEMU, +its mdev can be hot unplugged from the guest in one of two ways: + +1. If the KVM guest was started with libvirt, you can hot unplug the mdev via + the following commands: + + virsh detach-device + + For example, to hot unplug mdev 62177883-f1bb-47f0-914d-32a22e3a8804 from + the guest named 'my-guest': + + virsh detach-device my-guest ~/config/my-guest-hostdev.xml + + The contents of my-guest-hostdev.xml: + + + +
+ + + + + virsh qemu-monitor-command --hmp "device-del " + + For example, to hot unplug the vfio_ap mediated device identified on the + qemu command line with 'id=hostdev0' from the guest named 'my-guest': + + virsh qemu-monitor-command my-guest --hmp "device_del hostdev0" + +2. A vfio_ap mediated device can be hot unplugged by attaching the qemu monitor + to the guest and using the following qemu monitor command: + + (QEMU) device-del id= + + For example, to hot unplug the vfio_ap mediated device that was specified + on the qemu command line with 'id=hostdev0' when the guest was started: + + (QEMU) device-del id=hostdev0 + +After live migration of the KVM guest completes, an AP configuration can be +restored to the KVM guest by hot plugging a vfio_ap mediated device on the target +system into the guest in one of two ways: + +1. If the KVM guest was started with libvirt, you can hot plug a matrix mediated + device into the guest via the following virsh commands: + + virsh attach-device + + For example, to hot plug mdev 62177883-f1bb-47f0-914d-32a22e3a8804 into + the guest named 'my-guest': + + virsh attach-device my-guest ~/config/my-guest-hostdev.xml + + The contents of my-guest-hostdev.xml: + + + +
+ + + + + virsh qemu-monitor-command --hmp \ + "device_add vfio-ap,sysfsdev=,id=" + + For example, to hot plug the vfio_ap mediated device + 62177883-f1bb-47f0-914d-32a22e3a8804 into the guest named 'my-guest' with + device-id hostdev0: + + virsh qemu-monitor-command my-guest --hmp \ + "device_add vfio-ap,\ + sysfsdev=/sys/devices/vfio_ap/matrix/62177883-f1bb-47f0-914d-32a22e3a8804,\ + id=hostdev0" + +2. A vfio_ap mediated device can be hot plugged by attaching the qemu monitor + to the guest and using the following qemu monitor command: + + (qemu) device_add "vfio-ap,sysfsdev=,id=" -* Dynamically modifying the AP matrix for a running guest (which would amount to - hot(un)plug of AP devices for the guest) is currently not supported + For example, to plug the vfio_ap mediated device + 62177883-f1bb-47f0-914d-32a22e3a8804 into the guest with the device-id + hostdev0: -* Live guest migration is not supported for guests using AP devices. + (QEMU) device-add "vfio-ap,\ + sysfsdev=/sys/devices/vfio_ap/matrix/62177883-f1bb-47f0-914d-32a22e3a8804,\ + id=hostdev0" --- linux-5.19.0.orig/Documentation/security/keys/trusted-encrypted.rst +++ linux-5.19.0/Documentation/security/keys/trusted-encrypted.rst @@ -350,7 +350,8 @@ Instantiate an encrypted key "evm" using user-provided decrypted data:: - $ keyctl add encrypted evm "new default user:kmk 32 `cat evm_decrypted_data.blob`" @u + $ evmkey=$(dd if=/dev/urandom bs=1 count=32 | xxd -c32 -p) + $ keyctl add encrypted evm "new default user:kmk 32 $evmkey" @u 794890253 $ keyctl print 794890253 --- linux-5.19.0.orig/Documentation/security/lsm.rst +++ linux-5.19.0/Documentation/security/lsm.rst @@ -129,3 +129,31 @@ The capabilities security module does not use the general security blobs, unlike other modules. The reasons are historical and are based on overhead, complexity and performance concerns. + +LSM External Interfaces +======================= + +The LSM infrastructure does not generally provide external interfaces. +The individual security modules provide what external interfaces they +require. + +The file ``/sys/kernel/security/lsm`` provides a comma +separated list of the active security modules. + +The file ``/proc/pid/attr/interface_lsm`` contains the name of the security +module for which the ``/proc/pid/attr/current`` interface will +apply. This interface can be written to. + +The infrastructure does provide an interface for the special +case where multiple security modules provide a process context. +This is provided in compound context format. + +- `lsm\0value\0lsm\0value\0` + +The `lsm` and `value` fields are NUL-terminated bytestrings. +Each field may contain whitespace or non-printable characters. +The NUL bytes are included in the size of a compound context. +The context ``Bell\0Secret\0Biba\0Loose\0`` has a size of 23. + +The file ``/proc/pid/attr/context`` provides the security +context of the identified process. --- linux-5.19.0.orig/Documentation/sphinx/cdomain.py +++ linux-5.19.0/Documentation/sphinx/cdomain.py @@ -37,12 +37,29 @@ import sphinx from sphinx import addnodes -from sphinx.domains.c import c_funcptr_sig_re, c_sig_re from sphinx.domains.c import CObject as Base_CObject from sphinx.domains.c import CDomain as Base_CDomain from itertools import chain import re +# fixes https://github.com/sphinx-doc/sphinx/commit/0f49e30c51b5cc5055cda5b4b294c2dd9d1df573#r38750737 + +# pylint: disable=invalid-name +c_sig_re = re.compile( + r'''^([^(]*?) # return type + ([\w:.]+) \s* # thing name (colon allowed for C++) + (?: \((.*)\) )? # optionally arguments + (\s+const)? $ # const specifier + ''', re.VERBOSE) + +c_funcptr_sig_re = re.compile( + r'''^([^(]+?) # return type + (\( [^()]+ \)) \s* # name in parentheses + \( (.*) \) # arguments + (\s+const)? $ # const specifier + ''', re.VERBOSE) +# pylint: enable=invalid-name + __version__ = '1.1' # Get Sphinx version --- linux-5.19.0.orig/Documentation/sphinx/kerneldoc-preamble.sty +++ linux-5.19.0/Documentation/sphinx/kerneldoc-preamble.sty @@ -70,8 +70,16 @@ % Translations have Asian (CJK) characters which are only displayed if % xeCJK is used +\usepackage{ifthen} +\newboolean{enablecjk} +\setboolean{enablecjk}{false} \IfFontExistsTF{Noto Sans CJK SC}{ - % Load xeCJK when CJK font is available + \IfFileExists{xeCJK.sty}{ + \setboolean{enablecjk}{true} + }{} +}{} +\ifthenelse{\boolean{enablecjk}}{ + % Load xeCJK when both the Noto Sans CJK font and xeCJK.sty are available. \usepackage{xeCJK} % Noto CJK fonts don't provide slant shape. [AutoFakeSlant] permits % its emulation. @@ -196,7 +204,7 @@ % Inactivate CJK after tableofcontents \apptocmd{\sphinxtableofcontents}{\kerneldocCJKoff}{}{} \xeCJKsetup{CJKspace = true}% For inter-phrase space of Korean TOC -}{ % No CJK font found +}{ % Don't enable CJK % Custom macros to on/off CJK and switch CJK fonts (Dummy) \newcommand{\kerneldocCJKon}{} \newcommand{\kerneldocCJKoff}{} @@ -204,14 +212,16 @@ %% and ignore the argument (#1) in their definitions, whole contents of %% CJK chapters can be ignored. \newcommand{\kerneldocBeginSC}[1]{% - %% Put a note on missing CJK fonts in place of zh_CN translation. - \begin{sphinxadmonition}{note}{Note on missing fonts:} + %% Put a note on missing CJK fonts or the xecjk package in place of + %% zh_CN translation. + \begin{sphinxadmonition}{note}{Note on missing fonts and a package:} Translations of Simplified Chinese (zh\_CN), Traditional Chinese (zh\_TW), Korean (ko\_KR), and Japanese (ja\_JP) were skipped - due to the lack of suitable font families. + due to the lack of suitable font families and/or the texlive-xecjk + package. If you want them, please install ``Noto Sans CJK'' font families - by following instructions from + along with the texlive-xecjk package by following instructions from \sphinxcode{./scripts/sphinx-pre-install}. Having optional ``Noto Serif CJK'' font families will improve the looks of those translations. --- linux-5.19.0.orig/Documentation/tools/rtla/rtla-timerlat-hist.rst +++ linux-5.19.0/Documentation/tools/rtla/rtla-timerlat-hist.rst @@ -33,7 +33,7 @@ ======= In the example below, **rtla timerlat hist** is set to run for *10* minutes, in the cpus *0-4*, *skipping zero* only lines. Moreover, **rtla timerlat -hist** will change the priority of the *timelat* threads to run under +hist** will change the priority of the *timerlat* threads to run under *SCHED_DEADLINE* priority, with a *10us* runtime every *1ms* period. The *1ms* period is also passed to the *timerlat* tracer:: --- linux-5.19.0.orig/Documentation/trace/histogram.rst +++ linux-5.19.0/Documentation/trace/histogram.rst @@ -39,7 +39,7 @@ will use the event's kernel stacktrace as the key. The keywords 'keys' or 'key' can be used to specify keys, and the keywords 'values', 'vals', or 'val' can be used to specify values. Compound - keys consisting of up to two fields can be specified by the 'keys' + keys consisting of up to three fields can be specified by the 'keys' keyword. Hashing a compound key produces a unique entry in the table for each unique combination of component keys, and can be useful for providing more fine-grained summaries of event data. --- linux-5.19.0.orig/Documentation/translations/it_IT/process/howto.rst +++ linux-5.19.0/Documentation/translations/it_IT/process/howto.rst @@ -44,7 +44,7 @@ - "C: A Reference Manual" di Harbison and Steele [Prentice Hall] Il kernel è stato scritto usando GNU C e la toolchain GNU. -Sebbene si attenga allo standard ISO C89, esso utilizza una serie di +Sebbene si attenga allo standard ISO C11, esso utilizza una serie di estensioni che non sono previste in questo standard. Il kernel è un ambiente C indipendente, che non ha alcuna dipendenza dalle librerie C standard, così alcune parti del C standard non sono supportate. --- linux-5.19.0.orig/Documentation/translations/ja_JP/howto.rst +++ linux-5.19.0/Documentation/translations/ja_JP/howto.rst @@ -65,7 +65,7 @@ - 『新・詳説 C 言語 H&S リファレンス』 (サミュエル P ハービソン/ガイ L スティール共著 斉藤 信男監訳)[ソフトバンク] カーネルは GNU C と GNU ツールチェインを使って書かれています。カーネル -は ISO C89 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って +は ISO C11 仕様に準拠して書く一方で、標準には無い言語拡張を多く使って います。カーネルは標準 C ライブラリに依存しない、C 言語非依存環境です。 そのため、C の標準の中で使えないものもあります。特に任意の long long の除算や浮動小数点は使えません。カーネルがツールチェインや C 言語拡張 --- linux-5.19.0.orig/Documentation/translations/ko_KR/howto.rst +++ linux-5.19.0/Documentation/translations/ko_KR/howto.rst @@ -62,7 +62,7 @@ - "Practical C Programming" by Steve Oualline [O'Reilly] - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] -커널은 GNU C와 GNU 툴체인을 사용하여 작성되었다. 이 툴들은 ISO C89 표준을 +커널은 GNU C와 GNU 툴체인을 사용하여 작성되었다. 이 툴들은 ISO C11 표준을 따르는 반면 표준에 있지 않은 많은 확장기능도 가지고 있다. 커널은 표준 C 라이브러리와는 관계없이 freestanding C 환경이어서 C 표준의 일부는 지원되지 않는다. 임의의 long long 나누기나 floating point는 지원되지 않는다. --- linux-5.19.0.orig/Documentation/translations/zh_CN/process/howto.rst +++ linux-5.19.0/Documentation/translations/zh_CN/process/howto.rst @@ -45,7 +45,7 @@ - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] 《C语言参考手册(原书第5版)》(邱仲潘 等译)[机械工业出版社] -Linux内核使用GNU C和GNU工具链开发。虽然它遵循ISO C89标准,但也用到了一些 +Linux内核使用GNU C和GNU工具链开发。虽然它遵循ISO C11标准,但也用到了一些 标准中没有定义的扩展。内核是自给自足的C环境,不依赖于标准C库的支持,所以 并不支持C标准中的部分定义。比如long long类型的大数除法和浮点运算就不允许 使用。有时候确实很难弄清楚内核对工具链的要求和它所使用的扩展,不幸的是目 --- linux-5.19.0.orig/Documentation/translations/zh_TW/process/howto.rst +++ linux-5.19.0/Documentation/translations/zh_TW/process/howto.rst @@ -48,7 +48,7 @@ - "C: A Reference Manual" by Harbison and Steele [Prentice Hall] 《C語言參考手冊(原書第5版)》(邱仲潘 等譯)[機械工業出版社] -Linux內核使用GNU C和GNU工具鏈開發。雖然它遵循ISO C89標準,但也用到了一些 +Linux內核使用GNU C和GNU工具鏈開發。雖然它遵循ISO C11標準,但也用到了一些 標準中沒有定義的擴展。內核是自給自足的C環境,不依賴於標準C庫的支持,所以 並不支持C標準中的部分定義。比如long long類型的大數除法和浮點運算就不允許 使用。有時候確實很難弄清楚內核對工具鏈的要求和它所使用的擴展,不幸的是目 --- linux-5.19.0.orig/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst +++ linux-5.19.0/Documentation/userspace-api/media/v4l/ext-ctrls-codec.rst @@ -2997,7 +2997,7 @@ * - __u8 - ``colour_plane_id`` - - * - __u16 + * - __s32 - ``slice_pic_order_cnt`` - * - __u8 --- linux-5.19.0.orig/Documentation/virt/coco/tdx-guest.rst +++ linux-5.19.0/Documentation/virt/coco/tdx-guest.rst @@ -0,0 +1,52 @@ +.. SPDX-License-Identifier: GPL-2.0 + +=================================================================== +TDX Guest API Documentation +=================================================================== + +1. General description +====================== + +The TDX guest driver exposes IOCTL interfaces via the /dev/tdx-guest misc +device to allow userspace to get certain TDX guest-specific details. + +2. API description +================== + +In this section, for each supported IOCTL, the following information is +provided along with a generic description. + +:Input parameters: Parameters passed to the IOCTL and related details. +:Output: Details about output data and return value (with details about + the non common error values). + +2.1 TDX_CMD_GET_REPORT0 +----------------------- + +:Input parameters: struct tdx_report_req +:Output: Upon successful execution, TDREPORT data is copied to + tdx_report_req.tdreport and return 0. Return -EINVAL for invalid + operands, -EIO on TDCALL failure or standard error number on other + common failures. + +The TDX_CMD_GET_REPORT0 IOCTL can be used by the attestation software to get +the TDREPORT0 (a.k.a. TDREPORT subtype 0) from the TDX module using +TDCALL[TDG.MR.REPORT]. + +A subtype index is added at the end of this IOCTL CMD to uniquely identify the +subtype-specific TDREPORT request. Although the subtype option is mentioned in +the TDX Module v1.0 specification, section titled "TDG.MR.REPORT", it is not +currently used, and it expects this value to be 0. So to keep the IOCTL +implementation simple, the subtype option was not included as part of the input +ABI. However, in the future, if the TDX Module supports more than one subtype, +a new IOCTL CMD will be created to handle it. To keep the IOCTL naming +consistent, a subtype index is added as part of the IOCTL CMD. + +Reference +--------- + +TDX reference material is collected here: + +https://www.intel.com/content/www/us/en/developer/articles/technical/intel-trust-domain-extensions.html + +The driver is based on TDX module specification v1.0 and TDX GHCI specification v1.0. --- linux-5.19.0.orig/Documentation/virt/index.rst +++ linux-5.19.0/Documentation/virt/index.rst @@ -14,6 +14,7 @@ ne_overview acrn/index coco/sev-guest + coco/tdx-guest .. only:: html and subproject --- linux-5.19.0.orig/Documentation/virt/kvm/api.rst +++ linux-5.19.0/Documentation/virt/kvm/api.rst @@ -5127,7 +5127,15 @@ __u32 reserved[3]; }; -cmd values: +**Ultravisor return codes** +The Ultravisor return (reason) codes are provided by the kernel if a +Ultravisor call has been executed to achieve the results expected by +the command. Therefore they are independent of the IOCTL return +code. If KVM changes `rc`, its value will always be greater than 0 +hence setting it to 0 before issuing a PV command is advised to be +able to detect a change of `rc`. + +**cmd values:** KVM_PV_ENABLE Allocate memory and register the VM with the Ultravisor, thereby @@ -5143,7 +5151,6 @@ ===== ============================= 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 @@ -5160,6 +5167,117 @@ Verify the integrity of the unpacked image. Only if this succeeds, KVM is allowed to start protected VCPUs. +KVM_PV_INFO + :Capability: KVM_CAP_S390_PROTECTED_DUMP + + Presents an API that provides Ultravisor related data to userspace + via subcommands. len_max is the size of the user space buffer, + len_written is KVM's indication of how much bytes of that buffer + were actually written to. len_written can be used to determine the + valid fields if more response fields are added in the future. + + :: + + enum pv_cmd_info_id { + KVM_PV_INFO_VM, + KVM_PV_INFO_DUMP, + }; + + struct kvm_s390_pv_info_header { + __u32 id; + __u32 len_max; + __u32 len_written; + __u32 reserved; + }; + + struct kvm_s390_pv_info { + struct kvm_s390_pv_info_header header; + struct kvm_s390_pv_info_dump dump; + struct kvm_s390_pv_info_vm vm; + }; + +**subcommands:** + + KVM_PV_INFO_VM + This subcommand provides basic Ultravisor information for PV + hosts. These values are likely also exported as files in the sysfs + firmware UV query interface but they are more easily available to + programs in this API. + + The installed calls and feature_indication members provide the + installed UV calls and the UV's other feature indications. + + The max_* members provide information about the maximum number of PV + vcpus, PV guests and PV guest memory size. + + :: + + struct kvm_s390_pv_info_vm { + __u64 inst_calls_list[4]; + __u64 max_cpus; + __u64 max_guests; + __u64 max_guest_addr; + __u64 feature_indication; + }; + + + KVM_PV_INFO_DUMP + This subcommand provides information related to dumping PV guests. + + :: + + struct kvm_s390_pv_info_dump { + __u64 dump_cpu_buffer_len; + __u64 dump_config_mem_buffer_per_1m; + __u64 dump_config_finalize_len; + }; + +KVM_PV_DUMP + :Capability: KVM_CAP_S390_PROTECTED_DUMP + + Presents an API that provides calls which facilitate dumping a + protected VM. + + :: + + struct kvm_s390_pv_dmp { + __u64 subcmd; + __u64 buff_addr; + __u64 buff_len; + __u64 gaddr; /* For dump storage state */ + }; + + **subcommands:** + + KVM_PV_DUMP_INIT + Initializes the dump process of a protected VM. If this call does + not succeed all other subcommands will fail with -EINVAL. This + subcommand will return -EINVAL if a dump process has not yet been + completed. + + Not all PV vms can be dumped, the owner needs to set `dump + allowed` PCF bit 34 in the SE header to allow dumping. + + KVM_PV_DUMP_CONFIG_STOR_STATE + Stores `buff_len` bytes of tweak component values starting with + the 1MB block specified by the absolute guest address + (`gaddr`). `buff_len` needs to be `conf_dump_storage_state_len` + aligned and at least >= the `conf_dump_storage_state_len` value + provided by the dump uv_info data. buff_user might be written to + even if an error rc is returned. For instance if we encounter a + fault after writing the first page of data. + + KVM_PV_DUMP_COMPLETE + If the subcommand succeeds it completes the dump process and lets + KVM_PV_DUMP_INIT be called again. + + On success `conf_dump_finalize_len` bytes of completion data will be + stored to the `buff_addr`. The completion data contains a key + derivation seed, IV, tweak nonce and encryption keys as well as an + authentication tag all of which are needed to decrypt the dump at a + later time. + + 4.126 KVM_X86_SET_MSR_FILTER ---------------------------- @@ -5811,6 +5929,79 @@ This ioctl injects an event channel interrupt directly to the guest vCPU. +4.136 KVM_S390_PV_CPU_COMMAND +----------------------------- + +:Capability: KVM_CAP_S390_PROTECTED_DUMP +:Architectures: s390 +:Type: vcpu ioctl +:Parameters: none +:Returns: 0 on success, < 0 on error + +This ioctl closely mirrors `KVM_S390_PV_COMMAND` but handles requests +for vcpus. It re-uses the kvm_s390_pv_dmp struct and hence also shares +the command ids. + +**command:** + +KVM_PV_DUMP + Presents an API that provides calls which facilitate dumping a vcpu + of a protected VM. + +**subcommand:** + +KVM_PV_DUMP_CPU + Provides encrypted dump data like register values. + The length of the returned data is provided by uv_info.guest_cpu_stor_len. + +4.137 KVM_S390_ZPCI_OP +---------------------- + +:Capability: KVM_CAP_S390_ZPCI_OP +:Architectures: s390 +:Type: vm ioctl +:Parameters: struct kvm_s390_zpci_op (in) +:Returns: 0 on success, <0 on error + +Used to manage hardware-assisted virtualization features for zPCI devices. + +Parameters are specified via the following structure:: + + struct kvm_s390_zpci_op { + /* in */ + __u32 fh; /* target device */ + __u8 op; /* operation to perform */ + __u8 pad[3]; + union { + /* for KVM_S390_ZPCIOP_REG_AEN */ + struct { + __u64 ibv; /* Guest addr of interrupt bit vector */ + __u64 sb; /* Guest addr of summary bit */ + __u32 flags; + __u32 noi; /* Number of interrupts */ + __u8 isc; /* Guest interrupt subclass */ + __u8 sbo; /* Offset of guest summary bit vector */ + __u16 pad; + } reg_aen; + __u64 reserved[8]; + } u; + }; + +The type of operation is specified in the "op" field. +KVM_S390_ZPCIOP_REG_AEN is used to register the VM for adapter event +notification interpretation, which will allow firmware delivery of adapter +events directly to the vm, with KVM providing a backup delivery mechanism; +KVM_S390_ZPCIOP_DEREG_AEN is used to subsequently disable interpretation of +adapter event notifications. + +The target zPCI function must also be specified via the "fh" field. For the +KVM_S390_ZPCIOP_REG_AEN operation, additional information to establish firmware +delivery must be provided via the "reg_aen" struct. + +The "pad" and "reserved" fields may be used for future extensions and should be +set to 0s by userspace. + + 5. The kvm_run structure ======================== @@ -7965,6 +8156,20 @@ When enabled, KVM will exit to userspace with KVM_EXIT_SYSTEM_EVENT of type KVM_SYSTEM_EVENT_SUSPEND to process the guest suspend request. +8.37 KVM_CAP_S390_PROTECTED_DUMP +-------------------------------- + +:Capability: KVM_CAP_S390_PROTECTED_DUMP +:Architectures: s390 +:Type: vm + +This capability indicates that KVM and the Ultravisor support dumping +PV guests. The `KVM_PV_DUMP` command is available for the +`KVM_S390_PV_COMMAND` ioctl and the `KVM_PV_INFO` command provides +dump related UV data. Also the vcpu ioctl `KVM_S390_PV_CPU_COMMAND` is +available and supports the `KVM_PV_DUMP_CPU` subcommand. + + 9. Known KVM API problems ========================= --- linux-5.19.0.orig/Documentation/virt/kvm/devices/vm.rst +++ linux-5.19.0/Documentation/virt/kvm/devices/vm.rst @@ -215,6 +215,7 @@ :Parameters: address of a buffer in user space to store the data (u8) to :Returns: -EFAULT if the given address is not accessible from kernel space; -EINVAL if setting the TOD clock extension to != 0 is not supported + -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor) 3.2. ATTRIBUTE: KVM_S390_VM_TOD_LOW ----------------------------------- @@ -224,6 +225,7 @@ :Parameters: address of a buffer in user space to store the data (u64) to :Returns: -EFAULT if the given address is not accessible from kernel space + -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor) 3.3. ATTRIBUTE: KVM_S390_VM_TOD_EXT ----------------------------------- @@ -237,6 +239,7 @@ (kvm_s390_vm_tod_clock) to :Returns: -EFAULT if the given address is not accessible from kernel space; -EINVAL if setting the TOD clock extension to != 0 is not supported + -EOPNOTSUPP for a PV guest (TOD managed by the ultravisor) 4. GROUP: KVM_S390_VM_CRYPTO ============================ --- linux-5.19.0.orig/Documentation/virt/kvm/s390/index.rst +++ linux-5.19.0/Documentation/virt/kvm/s390/index.rst @@ -10,3 +10,4 @@ s390-diag s390-pv s390-pv-boot + s390-pv-dump --- linux-5.19.0.orig/Documentation/virt/kvm/s390/s390-pv-dump.rst +++ linux-5.19.0/Documentation/virt/kvm/s390/s390-pv-dump.rst @@ -0,0 +1,64 @@ +.. SPDX-License-Identifier: GPL-2.0 + +=========================================== +s390 (IBM Z) Protected Virtualization dumps +=========================================== + +Summary +------- + +Dumping a VM is an essential tool for debugging problems inside +it. This is especially true when a protected VM runs into trouble as +there's no way to access its memory and registers from the outside +while it's running. + +However when dumping a protected VM we need to maintain its +confidentiality until the dump is in the hands of the VM owner who +should be the only one capable of analysing it. + +The confidentiality of the VM dump is ensured by the Ultravisor who +provides an interface to KVM over which encrypted CPU and memory data +can be requested. The encryption is based on the Customer +Communication Key which is the key that's used to encrypt VM data in a +way that the customer is able to decrypt. + + +Dump process +------------ + +A dump is done in 3 steps: + +**Initiation** + +This step initializes the dump process, generates cryptographic seeds +and extracts dump keys with which the VM dump data will be encrypted. + +**Data gathering** + +Currently there are two types of data that can be gathered from a VM: +the memory and the vcpu state. + +The vcpu state contains all the important registers, general, floating +point, vector, control and tod/timers of a vcpu. The vcpu dump can +contain incomplete data if a vcpu is dumped while an instruction is +emulated with help of the hypervisor. This is indicated by a flag bit +in the dump data. For the same reason it is very important to not only +write out the encrypted vcpu state, but also the unencrypted state +from the hypervisor. + +The memory state is further divided into the encrypted memory and its +metadata comprised of the encryption tweaks and status flags. The +encrypted memory can simply be read once it has been exported. The +time of the export does not matter as no re-encryption is +needed. Memory that has been swapped out and hence was exported can be +read from the swap and written to the dump target without need for any +special actions. + +The tweaks / status flags for the exported pages need to be requested +from the Ultravisor. + +**Finalization** + +The finalization step will provide the data needed to be able to +decrypt the vcpu and memory data and end the dump process. When this +step completes successfully a new dump initiation can be started. --- linux-5.19.0.orig/Documentation/x86/tdx.rst +++ linux-5.19.0/Documentation/x86/tdx.rst @@ -210,6 +210,49 @@ For coherent DMA allocation, the DMA buffer gets converted on the allocation. Check force_dma_unencrypted() for details. +Attestation +=========== + +Attestation is used to verify the TDX guest trustworthiness to other +entities before provisioning secrets to the guest. For example, a key +server may want to use attestation to verify that the guest is the +desired one before releasing the encryption keys to mount the encrypted +rootfs or a secondary drive. + +The TDX module records the state of the TDX guest in various stages of +the guest boot process using the build time measurement register (MRTD) +and runtime measurement registers (RTMR). Measurements related to the +guest initial configuration and firmware image are recorded in the MRTD +register. Measurements related to initial state, kernel image, firmware +image, command line options, initrd, ACPI tables, etc are recorded in +RTMR registers. For more details, as an example, please refer to TDX +Virtual Firmware design specification, section titled "TD Measurement". +At TDX guest runtime, the attestation process is used to attest to these +measurements. + +The attestation process consists of two steps: TDREPORT generation and +Quote generation. + +TDX guest uses TDCALL[TDG.MR.REPORT] to get the TDREPORT (TDREPORT_STRUCT) +from the TDX module. TDREPORT is a fixed-size data structure generated by +the TDX module which contains guest-specific information (such as build +and boot measurements), platform security version, and the MAC to protect +the integrity of the TDREPORT. A user-provided 64-Byte REPORTDATA is used +as input and included in the TDREPORT. Typically it can be some nonce +provided by attestation service so the TDREPORT can be verified uniquely. +More details about the TDREPORT can be found in Intel TDX Module +specification, section titled "TDG.MR.REPORT Leaf". + +After getting the TDREPORT, the second step of the attestation process +is to send it to the Quoting Enclave (QE) to generate the Quote. TDREPORT +by design can only be verified on the local platform as the MAC key is +bound to the platform. To support remote verification of the TDREPORT, +TDX leverages Intel SGX Quoting Enclave to verify the TDREPORT locally +and convert it to a remotely verifiable Quote. Method of sending TDREPORT +to QE is implementation specific. Attestation software can choose +whatever communication channel available (i.e. vsock or TCP/IP) to +send the TDREPORT to QE and receive the Quote. + References ========== --- linux-5.19.0.orig/Kconfig +++ linux-5.19.0/Kconfig @@ -19,6 +19,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "security/Kconfig" --- linux-5.19.0.orig/MAINTAINERS +++ linux-5.19.0/MAINTAINERS @@ -260,6 +260,18 @@ F: Documentation/scsi/aacraid.rst F: drivers/scsi/aacraid/ +AAEON DEVICE DRIVER WITH WMI INTERFACE +M: Edward Lin +M: Kunyang Fan +M: Frank Hsieh +M: Jacob Wu +S: Supported +F: drivers/gpio/gpio-aaeon.c +F: drivers/hwmon/hwmon-aaeon.c +F: drivers/leds/leds-aaeon.c +F: drivers/mfd/mfd-aaeon.c +F: drivers/watchdog/wdt_aaeon.c + ABI/API L: linux-api@vger.kernel.org F: include/linux/syscalls.h @@ -4845,6 +4857,7 @@ F: Documentation/devicetree/bindings/sound/cirrus,cs* F: include/dt-bindings/sound/cs* F: sound/pci/hda/cs* +F: sound/pci/hda/hda_cs_dsp_ctl.* F: sound/soc/codecs/cs* CIRRUS LOGIC DSP FIRMWARE DRIVER @@ -7773,9 +7786,6 @@ F: include/linux/fs_types.h F: include/uapi/linux/fs.h F: include/uapi/linux/openat2.h -X: fs/io-wq.c -X: fs/io-wq.h -X: fs/io_uring.c FINTEK F75375S HARDWARE MONITOR AND FAN CONTROLLER DRIVER M: Riku Voipio @@ -10476,9 +10486,7 @@ S: Maintained T: git git://git.kernel.dk/linux-block T: git git://git.kernel.dk/liburing -F: fs/io-wq.c -F: fs/io-wq.h -F: fs/io_uring.c +F: io_uring/ F: include/linux/io_uring.h F: include/uapi/linux/io_uring.h F: tools/io_uring/ @@ -17574,7 +17582,7 @@ L: linux-s390@vger.kernel.org S: Supported W: http://www.ibm.com/developerworks/linux/linux390/ -F: Documentation/s390/vfio-ap.rst +F: Documentation/s390/vfio-ap* F: drivers/s390/crypto/vfio_ap* S390 VFIO-CCW DRIVER @@ -17594,6 +17602,7 @@ L: linux-s390@vger.kernel.org L: kvm@vger.kernel.org S: Supported +F: arch/s390/kvm/pci* F: drivers/vfio/pci/vfio_pci_zdev.c F: include/uapi/linux/vfio_zdev.h --- linux-5.19.0.orig/Makefile +++ linux-5.19.0/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 19 -SUBLEVEL = 0 +SUBLEVEL = 17 EXTRAVERSION = NAME = Superb Owl @@ -519,6 +519,9 @@ -I$(objtree)/include \ $(USERINCLUDE) +# UBUNTU: Include our third party driver stuff too +LINUXINCLUDE += -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 \ @@ -674,7 +677,7 @@ ifeq ($(KBUILD_EXTMOD),) # Objects we will link into vmlinux / subdirs we need to visit core-y := init/ usr/ arch/$(SRCARCH)/ -drivers-y := drivers/ sound/ +drivers-y := drivers/ sound/ ubuntu/ drivers-$(CONFIG_SAMPLES) += samples/ drivers-$(CONFIG_NET) += net/ drivers-y += virt/ @@ -830,8 +833,8 @@ # Initialize all stack variables with a zero value. ifdef CONFIG_INIT_STACK_ALL_ZERO KBUILD_CFLAGS += -ftrivial-auto-var-init=zero -ifdef CONFIG_CC_IS_CLANG -# https://bugs.llvm.org/show_bug.cgi?id=45497 +ifdef CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER +# https://github.com/llvm/llvm-project/issues/44842 KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang endif endif @@ -1033,6 +1036,11 @@ KBUILD_LDFLAGS_MODULE += --build-id=sha1 LDFLAGS_vmlinux += --build-id=sha1 +KBUILD_LDFLAGS += -z noexecstack +ifeq ($(CONFIG_LD_IS_BFD),y) +KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments) +endif + ifeq ($(CONFIG_STRIP_ASM_SYMS),y) LDFLAGS_vmlinux += $(call ld-option, -X,) endif @@ -1097,6 +1105,7 @@ ifeq ($(KBUILD_EXTMOD),) core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ core-$(CONFIG_BLOCK) += block/ +core-$(CONFIG_IO_URING) += io_uring/ vmlinux-dirs := $(patsubst %/,%,$(filter %/, \ $(core-y) $(core-m) $(drivers-y) $(drivers-m) \ @@ -1106,13 +1115,11 @@ $(patsubst %/,%,$(filter %/, $(core-) \ $(drivers-) $(libs-)))) -subdir-modorder := $(addsuffix modules.order,$(filter %/, \ - $(core-y) $(core-m) $(libs-y) $(libs-m) \ - $(drivers-y) $(drivers-m))) - build-dirs := $(vmlinux-dirs) clean-dirs := $(vmlinux-alldirs) +subdir-modorder := $(addsuffix /modules.order, $(build-dirs)) + # Externally visible symbols (used by link-vmlinux.sh) KBUILD_VMLINUX_OBJS := $(head-y) $(patsubst %/,%/built-in.a, $(core-y)) KBUILD_VMLINUX_OBJS += $(addsuffix built-in.a, $(filter %/, $(libs-y))) @@ -1282,10 +1289,10 @@ PHONY += headers headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts - $(if $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \ - $(error Headers not exportable for the $(SRCARCH) architecture)) + $(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(SRCARCH)/include/uapi + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= ifdef CONFIG_HEADERS_INSTALL prepare: headers --- linux-5.19.0.orig/Ubuntu.md +++ linux-5.19.0/Ubuntu.md @@ -0,0 +1,8 @@ +Name: linux-unstable +Version: 5.17.0 +Series: 22.04 (jammy) +Description: + This is the source code for the Ubuntu linux kernel for the 22.04 series. This + source tree is used to produce the flavours: generic, generic-64k, generic-lpae. + This kernel is configured to support the widest range of desktop, laptop and + server configurations. --- linux-5.19.0.orig/arch/Kconfig +++ linux-5.19.0/arch/Kconfig @@ -223,6 +223,9 @@ config TRACE_IRQFLAGS_SUPPORT bool +config TRACE_IRQFLAGS_NMI_SUPPORT + bool + # # An arch should select this if it provides all these things: # @@ -627,7 +630,7 @@ config SHADOW_CALL_STACK bool "Shadow Call Stack" depends on ARCH_SUPPORTS_SHADOW_CALL_STACK - depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER + depends on DYNAMIC_FTRACE_WITH_ARGS || DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER help This option enables the compiler's Shadow Call Stack, which uses a shadow stack to protect function return addresses from --- linux-5.19.0.orig/arch/alpha/include/asm/thread_info.h +++ linux-5.19.0/arch/alpha/include/asm/thread_info.h @@ -75,7 +75,7 @@ /* Work to do on interrupt/exception return. */ #define _TIF_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ - _TIF_NOTIFY_RESUME) + _TIF_NOTIFY_RESUME | _TIF_NOTIFY_SIGNAL) /* Work to do on any return to userspace. */ #define _TIF_ALLWORK_MASK (_TIF_WORK_MASK \ --- linux-5.19.0.orig/arch/alpha/kernel/entry.S +++ linux-5.19.0/arch/alpha/kernel/entry.S @@ -469,8 +469,10 @@ #ifdef CONFIG_AUDITSYSCALL lda $6, _TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT and $3, $6, $3 -#endif bne $3, strace +#else + blbs $3, strace /* check for SYSCALL_TRACE in disguise */ +#endif beq $4, 1f ldq $27, 0($5) 1: jsr $26, ($27), sys_ni_syscall --- linux-5.19.0.orig/arch/arc/include/asm/io.h +++ linux-5.19.0/arch/arc/include/asm/io.h @@ -32,7 +32,7 @@ { } -extern void iounmap(const void __iomem *addr); +extern void iounmap(const volatile void __iomem *addr); /* * io{read,write}{16,32}be() macros --- linux-5.19.0.orig/arch/arc/include/asm/pgtable-levels.h +++ linux-5.19.0/arch/arc/include/asm/pgtable-levels.h @@ -161,7 +161,7 @@ #define pmd_pfn(pmd) ((pmd_val(pmd) & PAGE_MASK) >> PAGE_SHIFT) #define pmd_page(pmd) virt_to_page(pmd_page_vaddr(pmd)) #define set_pmd(pmdp, pmd) (*(pmdp) = pmd) -#define pmd_pgtable(pmd) ((pgtable_t) pmd_page_vaddr(pmd)) +#define pmd_pgtable(pmd) ((pgtable_t) pmd_page(pmd)) /* * 4th level paging: pte --- linux-5.19.0.orig/arch/arc/mm/ioremap.c +++ linux-5.19.0/arch/arc/mm/ioremap.c @@ -94,7 +94,7 @@ EXPORT_SYMBOL(ioremap_prot); -void iounmap(const void __iomem *addr) +void iounmap(const volatile void __iomem *addr) { /* weird double cast to handle phys_addr_t > 32 bits */ if (arc_uncached_addr_space((phys_addr_t)(u32)addr)) --- linux-5.19.0.orig/arch/arm/Kconfig +++ linux-5.19.0/arch/arm/Kconfig @@ -1653,7 +1653,6 @@ choice prompt "Kernel command line type" if CMDLINE != "" default CMDLINE_FROM_BOOTLOADER - depends on ATAGS config CMDLINE_FROM_BOOTLOADER bool "Use bootloader kernel arguments if available" --- linux-5.19.0.orig/arch/arm/Makefile +++ linux-5.19.0/arch/arm/Makefile @@ -56,6 +56,9 @@ # KBUILD_CFLAGS += $(call cc-option,-fno-ipa-sra) +# Need -msoft-float for gcc 11 for the below instruction set selection +KBUILD_CFLAGS += -msoft-float + # This selects which instruction set is used. # Note that GCC does not numerically define an architecture version # macro, but instead defines a whole series of macros which makes @@ -129,7 +132,7 @@ endif # Need -Uarm for gcc < 3.x -KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -msoft-float -Uarm +KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) $(arch-y) $(tune-y) $(call cc-option,-mshort-load-bytes,$(call cc-option,-malignment-traps,)) -Uarm KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) $(arch-y) $(tune-y) -include asm/unified.h -msoft-float CHECKFLAGS += -D__arm__ --- linux-5.19.0.orig/arch/arm/boot/compressed/misc.c +++ linux-5.19.0/arch/arm/boot/compressed/misc.c @@ -23,7 +23,9 @@ #include #include #include "misc.h" +#ifdef CONFIG_ARCH_EP93XX #include "misc-ep93xx.h" +#endif static void putstr(const char *ptr); --- linux-5.19.0.orig/arch/arm/boot/compressed/vmlinux.lds.S +++ linux-5.19.0/arch/arm/boot/compressed/vmlinux.lds.S @@ -23,6 +23,7 @@ *(.ARM.extab*) *(.note.*) *(.rel.*) + *(.printk_index) /* * Discard any r/w data - this produces a link error if we have any, * which is required for PIC decompression. Local data generates @@ -57,6 +58,7 @@ *(.rodata) *(.rodata.*) *(.data.rel.ro) + *(.data.rel.ro.*) } .piggydata : { *(.piggydata) --- linux-5.19.0.orig/arch/arm/boot/dts/Makefile +++ linux-5.19.0/arch/arm/boot/dts/Makefile @@ -135,6 +135,7 @@ bcm47094-luxul-xwr-3150-v1.dtb \ bcm47094-netgear-r8500.dtb \ bcm47094-phicomm-k3.dtb \ + bcm53015-meraki-mr26.dtb \ bcm53016-meraki-mr32.dtb \ bcm94708.dtb \ bcm94709.dtb \ --- linux-5.19.0.orig/arch/arm/boot/dts/am335x-pcm-953.dtsi +++ linux-5.19.0/arch/arm/boot/dts/am335x-pcm-953.dtsi @@ -12,22 +12,20 @@ compatible = "phytec,am335x-pcm-953", "phytec,am335x-phycore-som", "ti,am33xx"; /* Power */ - regulators { - vcc3v3: fixedregulator@1 { - compatible = "regulator-fixed"; - regulator-name = "vcc3v3"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-boot-on; - }; + vcc3v3: fixedregulator1 { + compatible = "regulator-fixed"; + regulator-name = "vcc3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + }; - vcc1v8: fixedregulator@2 { - compatible = "regulator-fixed"; - regulator-name = "vcc1v8"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-boot-on; - }; + vcc1v8: fixedregulator2 { + compatible = "regulator-fixed"; + regulator-name = "vcc1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-boot-on; }; /* User IO */ --- linux-5.19.0.orig/arch/arm/boot/dts/am33xx-l4.dtsi +++ linux-5.19.0/arch/arm/boot/dts/am33xx-l4.dtsi @@ -1502,8 +1502,7 @@ mmc1: mmc@0 { compatible = "ti,am335-sdhci"; ti,needs-special-reset; - dmas = <&edma_xbar 24 0 0 - &edma_xbar 25 0 0>; + dmas = <&edma 24 0>, <&edma 25 0>; dma-names = "tx", "rx"; interrupts = <64>; reg = <0x0 0x1000>; --- linux-5.19.0.orig/arch/arm/boot/dts/am5748.dtsi +++ linux-5.19.0/arch/arm/boot/dts/am5748.dtsi @@ -25,6 +25,10 @@ status = "disabled"; }; +&usb4_tm { + status = "disabled"; +}; + &atl_tm { status = "disabled"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-370.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-370.dtsi @@ -74,7 +74,7 @@ pcie2: pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x80000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-375.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-375.dtsi @@ -582,7 +582,7 @@ pcie1: pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-380.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-380.dtsi @@ -79,7 +79,7 @@ /* x1 port */ pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x40000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -98,7 +98,7 @@ /* x1 port */ pcie@3,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001800 0 0x44000 0 0x2000>; reg = <0x1800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-385-turris-omnia.dts +++ linux-5.19.0/arch/arm/boot/dts/armada-385-turris-omnia.dts @@ -23,6 +23,12 @@ stdout-path = &uart0; }; + aliases { + ethernet0 = ð0; + ethernet1 = ð1; + ethernet2 = ð2; + }; + memory { device_type = "memory"; reg = <0x00000000 0x40000000>; /* 1024 MB */ @@ -457,7 +463,17 @@ }; }; - /* port 6 is connected to eth0 */ + ports@6 { + reg = <6>; + label = "cpu"; + ethernet = <ð0>; + phy-mode = "rgmii-id"; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; }; }; }; @@ -478,7 +494,7 @@ marvell,function = "spi0"; }; - spi0cs1_pins: spi0cs1-pins { + spi0cs2_pins: spi0cs2-pins { marvell,pins = "mpp26"; marvell,function = "spi0"; }; @@ -513,7 +529,7 @@ }; }; - /* MISO, MOSI, SCLK and CS1 are routed to pin header CN11 */ + /* MISO, MOSI, SCLK and CS2 are routed to pin header CN11 */ }; &uart0 { --- linux-5.19.0.orig/arch/arm/boot/dts/armada-385.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-385.dtsi @@ -93,7 +93,7 @@ /* x1 port */ pcie2: pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x40000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -121,7 +121,7 @@ /* x1 port */ pcie3: pcie@3,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001800 0 0x44000 0 0x2000>; reg = <0x1800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -152,7 +152,7 @@ */ pcie4: pcie@4,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; + assigned-addresses = <0x82002000 0 0x48000 0 0x2000>; reg = <0x2000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-39x.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-39x.dtsi @@ -453,7 +453,7 @@ /* x1 port */ pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x40000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -472,7 +472,7 @@ /* x1 port */ pcie@3,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001800 0 0x44000 0 0x2000>; reg = <0x1800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -494,7 +494,7 @@ */ pcie@4,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; + assigned-addresses = <0x82002000 0 0x48000 0 0x2000>; reg = <0x2000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-xp-mv78230.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-xp-mv78230.dtsi @@ -97,7 +97,7 @@ pcie2: pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -115,7 +115,7 @@ pcie3: pcie@3,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; + assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; reg = <0x1800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -133,7 +133,7 @@ pcie4: pcie@4,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; + assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; reg = <0x2000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -151,7 +151,7 @@ pcie5: pcie@5,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; + assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; reg = <0x2800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/armada-xp-mv78260.dtsi +++ linux-5.19.0/arch/arm/boot/dts/armada-xp-mv78260.dtsi @@ -112,7 +112,7 @@ pcie2: pcie@2,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x44000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x44000 0 0x2000>; reg = <0x1000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -130,7 +130,7 @@ pcie3: pcie@3,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x48000 0 0x2000>; + assigned-addresses = <0x82001800 0 0x48000 0 0x2000>; reg = <0x1800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -148,7 +148,7 @@ pcie4: pcie@4,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x4c000 0 0x2000>; + assigned-addresses = <0x82002000 0 0x4c000 0 0x2000>; reg = <0x2000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -166,7 +166,7 @@ pcie5: pcie@5,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x80000 0 0x2000>; + assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; reg = <0x2800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -184,7 +184,7 @@ pcie6: pcie@6,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x84000 0 0x2000>; + assigned-addresses = <0x82003000 0 0x84000 0 0x2000>; reg = <0x3000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -202,7 +202,7 @@ pcie7: pcie@7,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x88000 0 0x2000>; + assigned-addresses = <0x82003800 0 0x88000 0 0x2000>; reg = <0x3800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -220,7 +220,7 @@ pcie8: pcie@8,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x8c000 0 0x2000>; + assigned-addresses = <0x82004000 0 0x8c000 0 0x2000>; reg = <0x4000 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; @@ -238,7 +238,7 @@ pcie9: pcie@9,0 { device_type = "pci"; - assigned-addresses = <0x82000800 0 0x42000 0 0x2000>; + assigned-addresses = <0x82004800 0 0x42000 0 0x2000>; reg = <0x4800 0 0 0 0>; #address-cells = <3>; #size-cells = <2>; --- linux-5.19.0.orig/arch/arm/boot/dts/aspeed-ast2500-evb.dts +++ linux-5.19.0/arch/arm/boot/dts/aspeed-ast2500-evb.dts @@ -5,7 +5,7 @@ / { model = "AST2500 EVB"; - compatible = "aspeed,ast2500"; + compatible = "aspeed,ast2500-evb", "aspeed,ast2500"; aliases { serial4 = &uart5; --- linux-5.19.0.orig/arch/arm/boot/dts/aspeed-ast2600-evb-a1.dts +++ linux-5.19.0/arch/arm/boot/dts/aspeed-ast2600-evb-a1.dts @@ -5,6 +5,7 @@ / { model = "AST2600 A1 EVB"; + compatible = "aspeed,ast2600-evb-a1", "aspeed,ast2600"; /delete-node/regulator-vcc-sdhci0; /delete-node/regulator-vcc-sdhci1; --- linux-5.19.0.orig/arch/arm/boot/dts/aspeed-ast2600-evb.dts +++ linux-5.19.0/arch/arm/boot/dts/aspeed-ast2600-evb.dts @@ -8,7 +8,7 @@ / { model = "AST2600 EVB"; - compatible = "aspeed,ast2600"; + compatible = "aspeed,ast2600-evb-a1", "aspeed,ast2600"; aliases { serial4 = &uart5; --- linux-5.19.0.orig/arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi +++ linux-5.19.0/arch/arm/boot/dts/at91-sama5d27_wlsom1.dtsi @@ -76,8 +76,8 @@ regulators { vdd_3v3: VDD_IO { regulator-name = "VDD_IO"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -95,8 +95,8 @@ vddio_ddr: VDD_DDR { regulator-name = "VDD_DDR"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <1850000>; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -118,8 +118,8 @@ vdd_core: VDD_CORE { regulator-name = "VDD_CORE"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <1850000>; + regulator-min-microvolt = <1250000>; + regulator-max-microvolt = <1250000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -160,8 +160,8 @@ LDO1 { regulator-name = "LDO1"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-always-on; regulator-state-standby { @@ -175,9 +175,8 @@ LDO2 { regulator-name = "LDO2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; - regulator-always-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; regulator-state-standby { regulator-on-in-suspend; --- linux-5.19.0.orig/arch/arm/boot/dts/at91-sama5d2_icp.dts +++ linux-5.19.0/arch/arm/boot/dts/at91-sama5d2_icp.dts @@ -197,8 +197,8 @@ regulators { vdd_io_reg: VDD_IO { regulator-name = "VDD_IO"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -216,8 +216,8 @@ VDD_DDR { regulator-name = "VDD_DDR"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <1850000>; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -235,8 +235,8 @@ VDD_CORE { regulator-name = "VDD_CORE"; - regulator-min-microvolt = <600000>; - regulator-max-microvolt = <1850000>; + regulator-min-microvolt = <1250000>; + regulator-max-microvolt = <1250000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -258,7 +258,6 @@ regulator-max-microvolt = <1850000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; - regulator-always-on; regulator-state-standby { regulator-on-in-suspend; @@ -273,8 +272,8 @@ LDO1 { regulator-name = "LDO1"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <2500000>; + regulator-max-microvolt = <2500000>; regulator-always-on; regulator-state-standby { @@ -288,8 +287,8 @@ LDO2 { regulator-name = "LDO2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-always-on; regulator-state-standby { --- linux-5.19.0.orig/arch/arm/boot/dts/at91-sama7g5ek.dts +++ linux-5.19.0/arch/arm/boot/dts/at91-sama7g5ek.dts @@ -244,8 +244,8 @@ regulators { vdd_3v3: VDD_IO { regulator-name = "VDD_IO"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -264,8 +264,8 @@ vddioddr: VDD_DDR { regulator-name = "VDD_DDR"; - regulator-min-microvolt = <1300000>; - regulator-max-microvolt = <1450000>; + regulator-min-microvolt = <1350000>; + regulator-max-microvolt = <1350000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -285,8 +285,8 @@ vddcore: VDD_CORE { regulator-name = "VDD_CORE"; - regulator-min-microvolt = <1100000>; - regulator-max-microvolt = <1850000>; + regulator-min-microvolt = <1150000>; + regulator-max-microvolt = <1150000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-always-on; @@ -306,7 +306,7 @@ vddcpu: VDD_OTHER { regulator-name = "VDD_OTHER"; regulator-min-microvolt = <1050000>; - regulator-max-microvolt = <1850000>; + regulator-max-microvolt = <1250000>; regulator-initial-mode = <2>; regulator-allowed-modes = <2>, <4>; regulator-ramp-delay = <3125>; @@ -326,8 +326,8 @@ vldo1: LDO1 { regulator-name = "LDO1"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3700000>; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; regulator-always-on; regulator-state-standby { --- linux-5.19.0.orig/arch/arm/boot/dts/at91rm9200.dtsi +++ linux-5.19.0/arch/arm/boot/dts/at91rm9200.dtsi @@ -660,7 +660,7 @@ compatible = "atmel,at91rm9200-udc"; reg = <0xfffb0000 0x4000>; interrupts = <11 IRQ_TYPE_LEVEL_HIGH 2>; - clocks = <&pmc PMC_TYPE_PERIPHERAL 11>, <&pmc PMC_TYPE_SYSTEM 2>; + clocks = <&pmc PMC_TYPE_PERIPHERAL 11>, <&pmc PMC_TYPE_SYSTEM 1>; clock-names = "pclk", "hclk"; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/at91sam9g20ek_common.dtsi +++ linux-5.19.0/arch/arm/boot/dts/at91sam9g20ek_common.dtsi @@ -39,6 +39,13 @@ }; + usb1 { + pinctrl_usb1_vbus_gpio: usb1_vbus_gpio { + atmel,pins = + ; /* PC5 GPIO */ + }; + }; + mmc0_slot1 { pinctrl_board_mmc0_slot1: mmc0_slot1-board { atmel,pins = @@ -84,6 +91,8 @@ }; usb1: gadget@fffa4000 { + pinctrl-0 = <&pinctrl_usb1_vbus_gpio>; + pinctrl-names = "default"; atmel,vbus-gpio = <&pioC 5 GPIO_ACTIVE_HIGH>; status = "okay"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/bcm53015-meraki-mr26.dts +++ linux-5.19.0/arch/arm/boot/dts/bcm53015-meraki-mr26.dts @@ -0,0 +1,166 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Broadcom BCM470X / BCM5301X ARM platform code. + * DTS for Meraki MR26 / Codename: Venom + * + * Copyright (C) 2022 Christian Lamparter + */ + +/dts-v1/; + +#include "bcm4708.dtsi" +#include "bcm5301x-nand-cs0-bch8.dtsi" +#include + +/ { + compatible = "meraki,mr26", "brcm,bcm53015", "brcm,bcm4708"; + model = "Meraki MR26"; + + memory@0 { + reg = <0x00000000 0x08000000>; + device_type = "memory"; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + function = LED_FUNCTION_FAULT; + color = ; + gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>; + panic-indicator; + }; + led-1 { + function = LED_FUNCTION_INDICATOR; + color = ; + gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>; + }; + }; + + keys { + compatible = "gpio-keys"; + #address-cells = <1>; + #size-cells = <0>; + + key-restart { + label = "Reset"; + linux,code = ; + gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&uart0 { + clock-frequency = <50000000>; + /delete-property/ clocks; +}; + +&uart1 { + status = "disabled"; +}; + +&gmac0 { + status = "okay"; +}; + +&gmac1 { + status = "disabled"; +}; +&gmac2 { + status = "disabled"; +}; +&gmac3 { + status = "disabled"; +}; + +&nandcs { + nand-ecc-algo = "hw"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <0x1>; + #size-cells = <0x1>; + + partition@0 { + label = "u-boot"; + reg = <0x0 0x200000>; + read-only; + }; + + partition@200000 { + label = "u-boot-env"; + reg = <0x200000 0x200000>; + /* empty */ + }; + + partition@400000 { + label = "u-boot-backup"; + reg = <0x400000 0x200000>; + /* empty */ + }; + + partition@600000 { + label = "u-boot-env-backup"; + reg = <0x600000 0x200000>; + /* empty */ + }; + + partition@800000 { + label = "ubi"; + reg = <0x800000 0x7780000>; + }; + }; +}; + +&srab { + status = "okay"; + + ports { + port@0 { + reg = <0>; + label = "poe"; + }; + + port@5 { + reg = <5>; + label = "cpu"; + ethernet = <&gmac0>; + + fixed-link { + speed = <1000>; + duplex-full; + }; + }; + }; +}; + +&i2c0 { + status = "okay"; + + pinctrl-names = "default"; + pinctrl-0 = <&pinmux_i2c>; + + clock-frequency = <100000>; + + ina219@40 { + compatible = "ti,ina219"; /* PoE power */ + reg = <0x40>; + shunt-resistor = <60000>; /* = 60 mOhms */ + }; + + eeprom@56 { + compatible = "atmel,24c64"; + reg = <0x56>; + pagesize = <32>; + read-only; + #address-cells = <1>; + #size-cells = <1>; + + /* it's empty */ + }; +}; + +&thermal { + status = "disabled"; + /* does not work, reads 418 degree Celsius */ +}; --- linux-5.19.0.orig/arch/arm/boot/dts/dove.dtsi +++ linux-5.19.0/arch/arm/boot/dts/dove.dtsi @@ -129,7 +129,7 @@ pcie1: pcie@2 { device_type = "pci"; status = "disabled"; - assigned-addresses = <0x82002800 0 0x80000 0 0x2000>; + assigned-addresses = <0x82001000 0 0x80000 0 0x2000>; reg = <0x1000 0 0 0 0>; clocks = <&gate_clk 5>; marvell,pcie-port = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/exynos4412-midas.dtsi +++ linux-5.19.0/arch/arm/boot/dts/exynos4412-midas.dtsi @@ -585,7 +585,7 @@ clocks = <&camera 1>; clock-names = "extclk"; samsung,camclk-out = <1>; - gpios = <&gpm1 6 GPIO_ACTIVE_HIGH>; + gpios = <&gpm1 6 GPIO_ACTIVE_LOW>; port { is_s5k6a3_ep: endpoint { --- linux-5.19.0.orig/arch/arm/boot/dts/exynos4412-origen.dts +++ linux-5.19.0/arch/arm/boot/dts/exynos4412-origen.dts @@ -95,7 +95,7 @@ }; &ehci { - samsung,vbus-gpio = <&gpx3 5 1>; + samsung,vbus-gpio = <&gpx3 5 GPIO_ACTIVE_HIGH>; status = "okay"; phys = <&exynos_usbphy 2>, <&exynos_usbphy 3>; phy-names = "hsic0", "hsic1"; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6dl-riotboard.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6dl-riotboard.dts @@ -90,6 +90,7 @@ pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii-id"; phy-handle = <&rgmii_phy>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6dl.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6dl.dtsi @@ -84,6 +84,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6QDL_CLK_OCRAM>; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q-arm2.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6q-arm2.dts @@ -178,6 +178,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii"; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q-evi.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6q-evi.dts @@ -146,6 +146,7 @@ pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii"; phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q-mccmon6.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6q-mccmon6.dts @@ -100,6 +100,7 @@ pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii"; phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; status = "okay"; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q-prti6q.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6q-prti6q.dts @@ -364,8 +364,8 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_wifi>; interrupts-extended = <&gpio1 30 IRQ_TYPE_LEVEL_HIGH>; - ref-clock-frequency = "38400000"; - tcxo-clock-frequency = "19200000"; + ref-clock-frequency = <38400000>; + tcxo-clock-frequency = <19200000>; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q-yapp4-crux.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6q-yapp4-crux.dts @@ -33,6 +33,10 @@ status = "okay"; }; +®_pu { + regulator-always-on; +}; + ®_usb_h1_vbus { status = "okay"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6q.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6q.dtsi @@ -163,6 +163,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x40000>; + ranges = <0 0x00900000 0x40000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6QDL_CLK_OCRAM>; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-apalis.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-apalis.dtsi @@ -315,7 +315,7 @@ /* ADC conversion time: 80 clocks */ st,sample-time = <4>; - stmpe_touchscreen: stmpe-touchscreen { + stmpe_touchscreen: stmpe_touchscreen { compatible = "st,stmpe-ts"; /* 8 sample average control */ st,ave-ctrl = <3>; @@ -332,7 +332,7 @@ st,touch-det-delay = <5>; }; - stmpe_adc: stmpe-adc { + stmpe_adc: stmpe_adc { compatible = "st,stmpe-adc"; /* forbid to use ADC channels 3-0 (touch) */ st,norequest-mask = <0x0F>; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-gw5910.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-gw5910.dtsi @@ -29,7 +29,7 @@ user-pb { label = "user_pb"; - gpios = <&gsc_gpio 0 GPIO_ACTIVE_LOW>; + gpios = <&gsc_gpio 2 GPIO_ACTIVE_LOW>; linux,code = ; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-gw5913.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-gw5913.dtsi @@ -26,7 +26,7 @@ user-pb { label = "user_pb"; - gpios = <&gsc_gpio 0 GPIO_ACTIVE_LOW>; + gpios = <&gsc_gpio 2 GPIO_ACTIVE_LOW>; linux,code = ; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-kontron-samx6i.dtsi @@ -51,16 +51,6 @@ vin-supply = <®_3p3v_s5>; }; - reg_3p3v_s0: regulator-3p3v-s0 { - compatible = "regulator-fixed"; - regulator-name = "V_3V3_S0"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-always-on; - regulator-boot-on; - vin-supply = <®_3p3v_s5>; - }; - reg_3p3v_s5: regulator-3p3v-s5 { compatible = "regulator-fixed"; regulator-name = "V_3V3_S5"; @@ -259,7 +249,7 @@ /* default boot source: workaround #1 for errata ERR006282 */ smarc_flash: flash@0 { - compatible = "winbond,w25q16dw", "jedec,spi-nor"; + compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <20000000>; }; @@ -273,6 +263,10 @@ phy-reset-gpios = <&gpio1 25 GPIO_ACTIVE_LOW>; }; +&hdmi { + ddc-i2c-bus = <&i2c2>; +}; + &i2c_intern { pmic@8 { compatible = "fsl,pfuze100"; @@ -397,7 +391,7 @@ /* HDMI_CTRL */ &i2c2 { - clock-frequency = <375000>; + clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c2>; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-nit6xlite.dtsi @@ -192,6 +192,7 @@ phy-mode = "rgmii"; phy-handle = <ðphy>; phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-nitrogen6_max.dtsi @@ -334,6 +334,7 @@ phy-mode = "rgmii"; phy-handle = <ðphy>; phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-nitrogen6_som2.dtsi @@ -263,6 +263,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii"; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-nitrogen6x.dtsi @@ -267,6 +267,7 @@ phy-mode = "rgmii"; phy-handle = <ðphy>; phy-reset-gpios = <&gpio1 27 GPIO_ACTIVE_LOW>; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-sabreauto.dtsi @@ -295,6 +295,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii-id"; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-tqma6a.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-tqma6a.dtsi @@ -7,6 +7,7 @@ #include &fec { + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-ts7970.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-ts7970.dtsi @@ -192,6 +192,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet>; phy-mode = "rgmii"; + /delete-property/ interrupts; interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_HIGH>, <&intc 0 119 IRQ_TYPE_LEVEL_HIGH>; fsl,err006687-workaround-present; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qdl-vicut1.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qdl-vicut1.dtsi @@ -28,7 +28,7 @@ enable-gpios = <&gpio4 28 GPIO_ACTIVE_HIGH>; }; - backlight_led: backlight_led { + backlight_led: backlight-led { compatible = "pwm-backlight"; pwms = <&pwm3 0 5000000 0>; brightness-levels = <0 16 64 255>; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qp-yapp4-crux-plus.dts +++ linux-5.19.0/arch/arm/boot/dts/imx6qp-yapp4-crux-plus.dts @@ -33,6 +33,10 @@ status = "okay"; }; +®_pu { + regulator-always-on; +}; + ®_usb_h1_vbus { status = "okay"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6qp.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6qp.dtsi @@ -9,12 +9,18 @@ ocram2: sram@940000 { compatible = "mmio-sram"; reg = <0x00940000 0x20000>; + ranges = <0 0x00940000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6QDL_CLK_OCRAM>; }; ocram3: sram@960000 { compatible = "mmio-sram"; reg = <0x00960000 0x20000>; + ranges = <0 0x00960000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6QDL_CLK_OCRAM>; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6sl.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6sl.dtsi @@ -61,10 +61,10 @@ <792000 1175000>, <396000 975000>; fsl,soc-operating-points = - /* ARM kHz SOC-PU uV */ - <996000 1225000>, - <792000 1175000>, - <396000 1175000>; + /* ARM kHz SOC-PU uV */ + <996000 1225000>, + <792000 1175000>, + <396000 1175000>; clock-latency = <61036>; /* two CLK32 periods */ #cooling-cells = <2>; clocks = <&clks IMX6SL_CLK_ARM>, <&clks IMX6SL_CLK_PLL2_PFD2>, @@ -115,6 +115,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6SL_CLK_OCRAM>; }; @@ -222,7 +225,7 @@ uart5: serial@2018000 { compatible = "fsl,imx6sl-uart", - "fsl,imx6q-uart", "fsl,imx21-uart"; + "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02018000 0x4000>; interrupts = <0 30 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6SL_CLK_UART>, @@ -235,7 +238,7 @@ uart1: serial@2020000 { compatible = "fsl,imx6sl-uart", - "fsl,imx6q-uart", "fsl,imx21-uart"; + "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02020000 0x4000>; interrupts = <0 26 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6SL_CLK_UART>, @@ -248,7 +251,7 @@ uart2: serial@2024000 { compatible = "fsl,imx6sl-uart", - "fsl,imx6q-uart", "fsl,imx21-uart"; + "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02024000 0x4000>; interrupts = <0 27 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6SL_CLK_UART>, @@ -309,7 +312,7 @@ uart3: serial@2034000 { compatible = "fsl,imx6sl-uart", - "fsl,imx6q-uart", "fsl,imx21-uart"; + "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02034000 0x4000>; interrupts = <0 28 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6SL_CLK_UART>, @@ -322,7 +325,7 @@ uart4: serial@2038000 { compatible = "fsl,imx6sl-uart", - "fsl,imx6q-uart", "fsl,imx21-uart"; + "fsl,imx6q-uart", "fsl,imx21-uart"; reg = <0x02038000 0x4000>; interrupts = <0 29 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clks IMX6SL_CLK_UART>, @@ -711,7 +714,7 @@ #power-domain-cells = <0>; power-supply = <®_pu>; clocks = <&clks IMX6SL_CLK_GPU2D_OVG>, - <&clks IMX6SL_CLK_GPU2D_PODF>; + <&clks IMX6SL_CLK_GPU2D_PODF>; }; pd_disp: power-domain@2 { --- linux-5.19.0.orig/arch/arm/boot/dts/imx6sll.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6sll.dtsi @@ -115,6 +115,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; intc: interrupt-controller@a01000 { --- linux-5.19.0.orig/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi @@ -226,7 +226,7 @@ &iomuxc { pinctrl_bt_reg: btreggrp { fsl,pins = - ; + ; }; pinctrl_enet1: enet1grp { @@ -306,7 +306,6 @@ >; }; - pinctrl_uart1: uart1grp { fsl,pins = , @@ -347,24 +346,23 @@ pinctrl_otg1_reg: otg1grp { fsl,pins = - ; + ; }; - pinctrl_otg2_reg: otg2grp { fsl,pins = - ; + ; }; pinctrl_usb_otg1: usbotg1grp { fsl,pins = - , - ; + , + ; }; pinctrl_usb_otg2: usbot2ggrp { fsl,pins = - ; + ; }; pinctrl_usdhc2: usdhc2grp { --- linux-5.19.0.orig/arch/arm/boot/dts/imx6sx.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6sx.dtsi @@ -164,12 +164,18 @@ ocram_s: sram@8f8000 { compatible = "mmio-sram"; reg = <0x008f8000 0x4000>; + ranges = <0 0x008f8000 0x4000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6SX_CLK_OCRAM_S>; }; ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; clocks = <&clks IMX6SX_CLK_OCRAM>; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx6ul.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx6ul.dtsi @@ -64,20 +64,18 @@ clock-frequency = <696000000>; clock-latency = <61036>; /* two CLK32 periods */ #cooling-cells = <2>; - operating-points = < + operating-points = /* kHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1025000 - 198000 950000 - >; - fsl,soc-operating-points = < + <696000 1275000>, + <528000 1175000>, + <396000 1025000>, + <198000 950000>; + fsl,soc-operating-points = /* KHz uV */ - 696000 1275000 - 528000 1175000 - 396000 1175000 - 198000 1175000 - >; + <696000 1275000>, + <528000 1175000>, + <396000 1175000>, + <198000 1175000>; clocks = <&clks IMX6UL_CLK_ARM>, <&clks IMX6UL_CLK_PLL2_BUS>, <&clks IMX6UL_CLK_PLL2_PFD2>, @@ -149,6 +147,9 @@ ocram: sram@900000 { compatible = "mmio-sram"; reg = <0x00900000 0x20000>; + ranges = <0 0x00900000 0x20000>; + #address-cells = <1>; + #size-cells = <1>; }; intc: interrupt-controller@a01000 { @@ -543,7 +544,7 @@ }; kpp: keypad@20b8000 { - compatible = "fsl,imx6ul-kpp", "fsl,imx6q-kpp", "fsl,imx21-kpp"; + compatible = "fsl,imx6ul-kpp", "fsl,imx21-kpp"; reg = <0x020b8000 0x4000>; interrupts = ; clocks = <&clks IMX6UL_CLK_KPP>; @@ -998,7 +999,7 @@ }; csi: csi@21c4000 { - compatible = "fsl,imx6ul-csi", "fsl,imx7-csi"; + compatible = "fsl,imx6ul-csi"; reg = <0x021c4000 0x4000>; interrupts = ; clocks = <&clks IMX6UL_CLK_CSI>; @@ -1007,7 +1008,7 @@ }; lcdif: lcdif@21c8000 { - compatible = "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; + compatible = "fsl,imx6ul-lcdif", "fsl,imx6sx-lcdif"; reg = <0x021c8000 0x4000>; interrupts = ; clocks = <&clks IMX6UL_CLK_LCDIF_PIX>, @@ -1028,7 +1029,7 @@ qspi: spi@21e0000 { #address-cells = <1>; #size-cells = <0>; - compatible = "fsl,imx6ul-qspi", "fsl,imx6sx-qspi"; + compatible = "fsl,imx6ul-qspi"; reg = <0x021e0000 0x4000>, <0x60000000 0x10000000>; reg-names = "QuadSPI", "QuadSPI-memory"; interrupts = ; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7-colibri-aster.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx7-colibri-aster.dtsi @@ -4,41 +4,7 @@ * */ - -#include -#include - / { - chosen { - stdout-path = "serial0:115200n8"; - }; - - gpio-keys { - compatible = "gpio-keys"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpiokeys>; - - power { - label = "Wake-Up"; - gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; - linux,code = ; - debounce-interval = <10>; - wakeup-source; - }; - }; - - panel: panel { - compatible = "edt,et057090dhu"; - backlight = <&bl>; - power-supply = <®_3v3>; - - port { - panel_in: endpoint { - remote-endpoint = <&lcdif_out>; - }; - }; - }; - reg_3v3: regulator-3v3 { compatible = "regulator-fixed"; regulator-name = "3.3V"; @@ -77,13 +43,6 @@ status = "disabled"; }; -&bl { - brightness-levels = <0 4 8 16 32 64 128 255>; - default-brightness-level = <6>; - power-supply = <®_3v3>; - status = "okay"; -}; - &fec1 { status = "okay"; }; @@ -91,17 +50,6 @@ &i2c4 { status = "okay"; - /* Microchip/Atmel maxtouch controller */ - touchscreen@4a { - compatible = "atmel,maxtouch"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpiotouch>; - reg = <0x4a>; - interrupt-parent = <&gpio2>; - interrupts = <15 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 */ - reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* SODIMM 106 */ - }; - /* M41T0M6 real time clock on carrier board */ rtc: rtc@68 { compatible = "st,m41t0"; @@ -109,25 +57,6 @@ }; }; -&iomuxc { - pinctrl_gpiotouch: touchgpios { - fsl,pins = < - MX7D_PAD_EPDC_DATA15__GPIO2_IO15 0x74 - MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 - >; - }; -}; - -&lcdif { - status = "okay"; - - port { - lcdif_out: endpoint { - remote-endpoint = <&panel_in>; - }; - }; -}; - &pwm1 { status = "okay"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx7-colibri-eval-v3.dtsi @@ -4,48 +4,13 @@ */ / { - aliases { - rtc0 = &rtc; - rtc1 = &snvs_rtc; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - - /* fixed crystal dedicated to mpc258x */ + /* Fixed crystal dedicated to MCP2515. */ clk16m: clk16m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <16000000>; }; - gpio-keys { - compatible = "gpio-keys"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpiokeys>; - - power { - label = "Wake-Up"; - gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; - linux,code = ; - debounce-interval = <10>; - wakeup-source; - }; - }; - - panel: panel { - compatible = "edt,et057090dhu"; - backlight = <&bl>; - power-supply = <®_3v3>; - - port { - panel_in: endpoint { - remote-endpoint = <&lcdif_out>; - }; - }; - }; - reg_3v3: regulator-3v3 { compatible = "regulator-fixed"; regulator-name = "3.3V"; @@ -72,14 +37,6 @@ }; }; -&bl { - brightness-levels = <0 4 8 16 32 64 128 255>; - default-brightness-level = <6>; - power-supply = <®_3v3>; - - status = "okay"; -}; - &adc1 { status = "okay"; }; @@ -88,6 +45,18 @@ status = "okay"; }; +/* + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM, PWM, aka pwm2, pwm3. + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. + */ +&atmel_mxt_ts { + interrupt-parent = <&gpio1>; + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 / INT */ + pinctrl-0 = <&pinctrl_atmel_adapter>; + reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 / RST */ + status = "disabled"; +}; + &ecspi3 { status = "okay"; @@ -113,21 +82,6 @@ &i2c4 { status = "okay"; - /* - * Touchscreen is using SODIMM 28/30, also used for PWM, PWM, - * aka pwm2, pwm3. so if you enable touchscreen, disable the pwms - */ - touchscreen@4a { - compatible = "atmel,maxtouch"; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpiotouch>; - reg = <0x4a>; - interrupt-parent = <&gpio1>; - interrupts = <9 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 28 */ - reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>; /* SODIMM 30 */ - status = "disabled"; - }; - /* M41T0M6 real time clock on carrier board */ rtc: rtc@68 { compatible = "st,m41t0"; @@ -135,16 +89,6 @@ }; }; -&lcdif { - status = "okay"; - - port { - lcdif_out: endpoint { - remote-endpoint = <&panel_in>; - }; - }; -}; - &pwm1 { status = "okay"; }; @@ -183,12 +127,3 @@ vmmc-supply = <®_3v3>; status = "okay"; }; - -&iomuxc { - pinctrl_gpiotouch: touchgpios { - fsl,pins = < - MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x74 - MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x14 - >; - }; -}; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7-colibri.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx7-colibri.dtsi @@ -3,13 +3,63 @@ * Copyright 2016-2020 Toradex */ +#include + / { - bl: backlight { + aliases { + rtc0 = &rtc; + rtc1 = &snvs_rtc; + }; + + backlight: backlight { + brightness-levels = <0 45 63 88 119 158 203 255>; compatible = "pwm-backlight"; + default-brightness-level = <4>; + enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gpio_bl_on>; - pwms = <&pwm1 0 5000000 0>; - enable-gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>; + power-supply = <®_module_3v3>; + pwms = <&pwm1 0 6666667 PWM_POLARITY_INVERTED>; + status = "disabled"; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + extcon_usbc_det: usbc-det { + compatible = "linux,extcon-usb-gpio"; + debounce = <25>; + id-gpio = <&gpio7 14 GPIO_ACTIVE_HIGH>; /* SODIMM 137 / USBC_DET */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_usbc_det>; + }; + + gpio-keys { + compatible = "gpio-keys"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_gpiokeys>; + + wakeup { + debounce-interval = <10>; + gpios = <&gpio1 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; /* SODIMM 45 */ + label = "Wake-Up"; + linux,code = ; + wakeup-source; + }; + }; + + panel_dpi: panel-dpi { + backlight = <&backlight>; + compatible = "edt,et057090dhu"; + power-supply = <®_3v3>; + status = "disabled"; + + port { + lcd_panel_in: endpoint { + remote-endpoint = <&lcdif_out>; + }; + }; }; reg_module_3v3: regulator-module-3v3 { @@ -301,18 +351,19 @@ VDDD-supply = <®_DCDC3>; }; - ad7879@2c { + ad7879_ts: touchscreen@2c { + adi,acquisition-time = /bits/ 8 <1>; + adi,averaging = /bits/ 8 <1>; + adi,conversion-interval = /bits/ 8 <255>; + adi,first-conversion-delay = /bits/ 8 <3>; + adi,median-filter-size = /bits/ 8 <2>; + adi,resistance-plate-x = <120>; compatible = "adi,ad7879-1"; - reg = <0x2c>; interrupt-parent = <&gpio1>; interrupts = <13 IRQ_TYPE_EDGE_FALLING>; + reg = <0x2c>; touchscreen-max-pressure = <4096>; - adi,resistance-plate-x = <120>; - adi,first-conversion-delay = /bits/ 8 <3>; - adi,acquisition-time = /bits/ 8 <1>; - adi,median-filter-size = /bits/ 8 <2>; - adi,averaging = /bits/ 8 <1>; - adi,conversion-interval = /bits/ 8 <255>; + status = "disabled"; }; pmic@33 { @@ -392,12 +443,32 @@ pinctrl-1 = <&pinctrl_i2c4_recovery>; scl-gpios = <&gpio7 8 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; sda-gpios = <&gpio7 9 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; + status = "disabled"; + + /* Atmel maxtouch controller */ + atmel_mxt_ts: touchscreen@4a { + compatible = "atmel,maxtouch"; + interrupt-parent = <&gpio2>; + interrupts = <15 IRQ_TYPE_EDGE_FALLING>; /* SODIMM 107 / INT */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_atmel_connector>; + reg = <0x4a>; + reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* SODIMM 106 / RST */ + status = "disabled"; + }; }; &lcdif { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_lcdif_dat &pinctrl_lcdif_ctrl>; + status = "disabled"; + + port { + lcdif_out: endpoint { + remote-endpoint = <&lcd_panel_in>; + }; + }; }; &pwm1 { @@ -457,7 +528,8 @@ }; &usbotg1 { - dr_mode = "host"; + dr_mode = "otg"; + extcon = <0>, <&extcon_usbc_det>; }; &usdhc1 { @@ -485,8 +557,27 @@ &iomuxc { pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4 - &pinctrl_gpio7 &pinctrl_usbc_det>; + pinctrl-0 = <&pinctrl_gpio1 &pinctrl_gpio2 &pinctrl_gpio3 &pinctrl_gpio4>; + + /* + * Atmel MXT touchsceen + Capacitive Touch Adapter + * NOTE: This pin group conflicts with pin groups pinctrl_pwm2/pinctrl_pwm3. + * Don't use them simultaneously. + */ + pinctrl_atmel_adapter: atmelconnectorgrp { + fsl,pins = < + MX7D_PAD_GPIO1_IO09__GPIO1_IO9 0x74 /* SODIMM 28 / INT */ + MX7D_PAD_GPIO1_IO10__GPIO1_IO10 0x14 /* SODIMM 30 / RST */ + >; + }; + + /* Atmel MXT touchsceen + boards with built-in Capacitive Touch Connector */ + pinctrl_atmel_connector: atmeladaptergrp { + fsl,pins = < + MX7D_PAD_EPDC_BDR0__GPIO2_IO28 0x14 /* SODIMM 106 / RST */ + MX7D_PAD_EPDC_DATA15__GPIO2_IO15 0x74 /* SODIMM 107 / INT */ + >; + }; pinctrl_gpio1: gpio1-grp { fsl,pins = < @@ -494,8 +585,6 @@ MX7D_PAD_EPDC_DATA09__GPIO2_IO9 0x14 /* SODIMM 89 */ MX7D_PAD_EPDC_DATA08__GPIO2_IO8 0x74 /* SODIMM 91 */ MX7D_PAD_LCD_RESET__GPIO3_IO4 0x14 /* SODIMM 93 */ - MX7D_PAD_EPDC_DATA13__GPIO2_IO13 0x14 /* SODIMM 95 */ - MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11 0x14 /* SODIMM 99 */ MX7D_PAD_EPDC_DATA10__GPIO2_IO10 0x74 /* SODIMM 105 */ MX7D_PAD_EPDC_DATA00__GPIO2_IO0 0x14 /* SODIMM 111 */ MX7D_PAD_EPDC_DATA01__GPIO2_IO1 0x14 /* SODIMM 113 */ @@ -729,6 +818,15 @@ >; }; + pinctrl_lvds_transceiver: lvdstx { + fsl,pins = < + MX7D_PAD_ENET1_RGMII_RD2__GPIO7_IO2 0x14 /* SODIMM 63 */ + MX7D_PAD_ENET1_RGMII_RD3__GPIO7_IO3 0x74 /* SODIMM 55 */ + MX7D_PAD_ENET1_RGMII_TXC__GPIO7_IO11 0x14 /* SODIMM 99 */ + MX7D_PAD_EPDC_DATA13__GPIO2_IO13 0x14 /* SODIMM 95 */ + >; + }; + pinctrl_pwm1: pwm1-grp { fsl,pins = < MX7D_PAD_GPIO1_IO08__PWM1_OUT 0x79 --- linux-5.19.0.orig/arch/arm/boot/dts/imx7d-colibri-aster.dts +++ linux-5.19.0/arch/arm/boot/dts/imx7d-colibri-aster.dts @@ -14,6 +14,26 @@ "fsl,imx7d"; }; +&ad7879_ts { + status = "okay"; +}; + +&atmel_mxt_ts { + status = "okay"; +}; + +&backlight { + status = "okay"; +}; + +&lcdif { + status = "okay"; +}; + +&panel_dpi { + status = "okay"; +}; + &usbotg2 { vbus-supply = <®_usbh_vbus>; status = "okay"; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7d-colibri-emmc.dtsi +++ linux-5.19.0/arch/arm/boot/dts/imx7d-colibri-emmc.dtsi @@ -13,6 +13,10 @@ }; }; +&cpu1 { + cpu-supply = <®_DCDC2>; +}; + &gpio6 { gpio-line-names = "", "", --- linux-5.19.0.orig/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts +++ linux-5.19.0/arch/arm/boot/dts/imx7d-colibri-eval-v3.dts @@ -13,6 +13,38 @@ "fsl,imx7d"; }; +&ad7879_ts { + status = "okay"; +}; + +/* + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM, PWM, aka pwm2, pwm3. + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. + */ +&atmel_mxt_ts { + status = "disabled"; +}; + +&backlight { + status = "okay"; +}; + +&lcdif { + status = "okay"; +}; + +&panel_dpi { + status = "okay"; +}; + +&pwm2 { + status = "okay"; +}; + +&pwm3 { + status = "okay"; +}; + &usbotg2 { vbus-supply = <®_usbh_vbus>; status = "okay"; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7d-sdb.dts +++ linux-5.19.0/arch/arm/boot/dts/imx7d-sdb.dts @@ -206,12 +206,7 @@ interrupt-parent = <&gpio2>; interrupts = <29 0>; pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>; - ti,x-min = /bits/ 16 <0>; - ti,x-max = /bits/ 16 <0>; - ti,y-min = /bits/ 16 <0>; - ti,y-max = /bits/ 16 <0>; - ti,pressure-max = /bits/ 16 <0>; - ti,x-plate-ohms = /bits/ 16 <400>; + touchscreen-max-pressure = <255>; wakeup-source; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7s-colibri-aster.dts +++ linux-5.19.0/arch/arm/boot/dts/imx7s-colibri-aster.dts @@ -13,3 +13,23 @@ compatible = "toradex,colibri-imx7s-aster", "toradex,colibri-imx7s", "fsl,imx7s"; }; + +&ad7879_ts { + status = "okay"; +}; + +&atmel_mxt_ts { + status = "okay"; +}; + +&backlight { + status = "okay"; +}; + +&lcdif { + status = "okay"; +}; + +&panel_dpi { + status = "okay"; +}; --- linux-5.19.0.orig/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts +++ linux-5.19.0/arch/arm/boot/dts/imx7s-colibri-eval-v3.dts @@ -12,3 +12,35 @@ compatible = "toradex,colibri-imx7s-eval-v3", "toradex,colibri-imx7s", "fsl,imx7s"; }; + +&ad7879_ts { + status = "okay"; +}; + +/* + * The Atmel maxtouch controller uses SODIMM 28/30, also used for PWM, PWM, aka pwm2, pwm3. + * So if you enable following capacitive touch controller, disable pwm2/pwm3 first. + */ +&atmel_mxt_ts { + status = "disabled"; +}; + +&backlight { + status = "okay"; +}; + +&lcdif { + status = "okay"; +}; + +&panel_dpi { + status = "okay"; +}; + +&pwm2 { + status = "okay"; +}; + +&pwm3 { + status = "okay"; +}; --- linux-5.19.0.orig/arch/arm/boot/dts/integratorap.dts +++ linux-5.19.0/arch/arm/boot/dts/integratorap.dts @@ -160,6 +160,7 @@ pci: pciv3@62000000 { compatible = "arm,integrator-ap-pci", "v3,v360epc-pci"; + device_type = "pci"; #interrupt-cells = <1>; #size-cells = <2>; #address-cells = <3>; --- linux-5.19.0.orig/arch/arm/boot/dts/kirkwood-lsxl.dtsi +++ linux-5.19.0/arch/arm/boot/dts/kirkwood-lsxl.dtsi @@ -10,6 +10,11 @@ ocp@f1000000 { pinctrl: pin-controller@10000 { + /* Non-default UART pins */ + pmx_uart0: pmx-uart0 { + marvell,pins = "mpp4", "mpp5"; + }; + pmx_power_hdd: pmx-power-hdd { marvell,pins = "mpp10"; marvell,function = "gpo"; @@ -213,22 +218,11 @@ &mdio { status = "okay"; - ethphy0: ethernet-phy@0 { - reg = <0>; - }; - ethphy1: ethernet-phy@8 { reg = <8>; }; }; -ð0 { - status = "okay"; - ethernet0-port@0 { - phy-handle = <ðphy0>; - }; -}; - ð1 { status = "okay"; ethernet1-port@0 { --- linux-5.19.0.orig/arch/arm/boot/dts/lan966x.dtsi +++ linux-5.19.0/arch/arm/boot/dts/lan966x.dtsi @@ -515,13 +515,13 @@ phy0: ethernet-phy@1 { reg = <1>; - interrupts = ; + interrupts = ; status = "disabled"; }; phy1: ethernet-phy@2 { reg = <2>; - interrupts = ; + interrupts = ; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/moxart-uc7112lx.dts +++ linux-5.19.0/arch/arm/boot/dts/moxart-uc7112lx.dts @@ -79,7 +79,7 @@ clocks = <&ref12>; }; -&sdhci { +&mmc { status = "okay"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/moxart.dtsi +++ linux-5.19.0/arch/arm/boot/dts/moxart.dtsi @@ -93,8 +93,8 @@ clock-names = "PCLK"; }; - sdhci: sdhci@98e00000 { - compatible = "moxa,moxart-sdhci"; + mmc: mmc@98e00000 { + compatible = "moxa,moxart-mmc"; reg = <0x98e00000 0x5C>; interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk_apb>; --- linux-5.19.0.orig/arch/arm/boot/dts/nuvoton-npcm730-gbs.dts +++ linux-5.19.0/arch/arm/boot/dts/nuvoton-npcm730-gbs.dts @@ -366,7 +366,7 @@ spi-max-frequency = <20000000>; spi-rx-bus-width = <2>; label = "bmc"; - partitions@80000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/nuvoton-npcm730-gsj.dts +++ linux-5.19.0/arch/arm/boot/dts/nuvoton-npcm730-gsj.dts @@ -142,7 +142,7 @@ reg = <0>; spi-rx-bus-width = <2>; - partitions@80000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts +++ linux-5.19.0/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts @@ -388,7 +388,7 @@ spi-max-frequency = <5000000>; spi-rx-bus-width = <2>; label = "bmc"; - partitions@80000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; @@ -422,7 +422,7 @@ reg = <1>; spi-max-frequency = <5000000>; spi-rx-bus-width = <2>; - partitions@88000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; @@ -447,7 +447,7 @@ reg = <0>; spi-max-frequency = <5000000>; spi-rx-bus-width = <2>; - partitions@A0000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/nuvoton-npcm750-evb.dts +++ linux-5.19.0/arch/arm/boot/dts/nuvoton-npcm750-evb.dts @@ -74,7 +74,7 @@ spi-rx-bus-width = <2>; reg = <0>; spi-max-frequency = <5000000>; - partitions@80000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; @@ -135,7 +135,7 @@ spi-rx-bus-width = <2>; reg = <0>; spi-max-frequency = <5000000>; - partitions@A0000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts +++ linux-5.19.0/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts @@ -107,7 +107,7 @@ reg = <0>; spi-rx-bus-width = <2>; - partitions@80000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; @@ -146,7 +146,7 @@ reg = <1>; npcm,fiu-rx-bus-width = <2>; - partitions@88000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; @@ -173,7 +173,7 @@ reg = <0>; spi-rx-bus-width = <2>; - partitions@A0000000 { + partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-apq8064.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-apq8064.dtsi @@ -1567,7 +1567,7 @@ }; etb@1a01000 { - compatible = "coresight-etb10", "arm,primecell"; + compatible = "arm,coresight-etb10", "arm,primecell"; reg = <0x1a01000 0x1000>; clocks = <&rpmcc RPM_QDSS_CLK>; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-ipq8064.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-ipq8064.dtsi @@ -784,7 +784,7 @@ l2cc: clock-controller@2011000 { compatible = "qcom,kpss-gcc", "syscon"; reg = <0x2011000 0x1000>; - clocks = <&gcc PLL8_VOTE>, <&gcc PXO_SRC>; + clocks = <&gcc PLL8_VOTE>, <&pxo_board>; clock-names = "pll8_vote", "pxo"; clock-output-names = "acpu_l2_aux"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-mdm9615.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-mdm9615.dtsi @@ -321,6 +321,7 @@ pmicgpio: gpio@150 { compatible = "qcom,pm8018-gpio", "qcom,ssbi-gpio"; + reg = <0x150>; interrupt-controller; #interrupt-cells = <2>; gpio-controller; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-msm8974.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-msm8974.dtsi @@ -580,7 +580,7 @@ blsp2_uart1: serial@f995d000 { compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; reg = <0xf995d000 0x1000>; - interrupts = ; + interrupts = ; clocks = <&gcc GCC_BLSP2_UART1_APPS_CLK>, <&gcc GCC_BLSP2_AHB_CLK>; clock-names = "core", "iface"; pinctrl-names = "default", "sleep"; @@ -1182,6 +1182,8 @@ qcom,smem-states = <&modem_smp2p_out 0>; qcom,smem-state-names = "stop"; + status = "disabled"; + mba { memory-region = <&mba_region>; }; @@ -1630,6 +1632,7 @@ reg = <0xfdd00000 0x2000>, <0xfec00000 0x180000>; reg-names = "ctrl", "mem"; + ranges = <0 0xfec00000 0x180000>; clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>, <&mmcc OCMEMCX_OCMEMNOC_CLK>; clock-names = "core", "iface"; @@ -1661,6 +1664,8 @@ qcom,smem-states = <&adsp_smp2p_out 0>; qcom,smem-state-names = "stop"; + status = "disabled"; + smd-edge { interrupts = ; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts +++ linux-5.19.0/arch/arm/boot/dts/qcom-msm8974pro-fairphone-fp2.dts @@ -147,10 +147,12 @@ }; &remoteproc_adsp { + status = "okay"; cx-supply = <&pm8841_s2>; }; &remoteproc_mss { + status = "okay"; cx-supply = <&pm8841_s2>; mss-supply = <&pm8841_s3>; mx-supply = <&pm8841_s1>; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts +++ linux-5.19.0/arch/arm/boot/dts/qcom-msm8974pro-samsung-klte.dts @@ -457,10 +457,12 @@ }; &remoteproc_adsp { + status = "okay"; cx-supply = <&pma8084_s2>; }; &remoteproc_mss { + status = "okay"; cx-supply = <&pma8084_s2>; mss-supply = <&pma8084_s6>; mx-supply = <&pma8084_s1>; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-pm8841.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-pm8841.dtsi @@ -24,6 +24,7 @@ compatible = "qcom,spmi-temp-alarm"; reg = <0x2400>; interrupts = <4 0x24 0 IRQ_TYPE_EDGE_RISING>; + #thermal-sensor-cells = <0>; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/qcom-sdx55.dtsi +++ linux-5.19.0/arch/arm/boot/dts/qcom-sdx55.dtsi @@ -206,7 +206,7 @@ blsp1_uart3: serial@831000 { compatible = "qcom,msm-uartdm-v1.4", "qcom,msm-uartdm"; reg = <0x00831000 0x200>; - interrupts = ; + interrupts = ; clocks = <&gcc 30>, <&gcc 9>; clock-names = "core", "iface"; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3036-evb.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3036-evb.dts @@ -31,11 +31,10 @@ &i2c1 { status = "okay"; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; - clock-frequency = <32768>; clock-output-names = "xin32k"; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3066a-mk808.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3066a-mk808.dts @@ -32,7 +32,7 @@ keyup-threshold-microvolt = <2500000>; poll-interval = <100>; - recovery { + button-recovery { label = "recovery"; linux,code = ; press-threshold-microvolt = <0>; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3188-radxarock.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3188-radxarock.dts @@ -71,7 +71,7 @@ #sound-dai-cells = <0>; }; - ir_recv: gpio-ir-receiver { + ir_recv: ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio0 RK_PB2 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3188.dtsi +++ linux-5.19.0/arch/arm/boot/dts/rk3188.dtsi @@ -379,7 +379,7 @@ rockchip,pins = <2 RK_PD3 1 &pcfg_pull_none>; }; - lcdc1_rgb24: ldcd1-rgb24 { + lcdc1_rgb24: lcdc1-rgb24 { rockchip,pins = <2 RK_PA0 1 &pcfg_pull_none>, <2 RK_PA1 1 &pcfg_pull_none>, <2 RK_PA2 1 &pcfg_pull_none>, @@ -607,7 +607,6 @@ &global_timer { interrupts = ; - status = "disabled"; }; &local_timer { --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-evb-act8846.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3288-evb-act8846.dts @@ -54,7 +54,7 @@ vin-supply = <&vcc_sys>; }; - hym8563@51 { + rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-evb.dtsi +++ linux-5.19.0/arch/arm/boot/dts/rk3288-evb.dtsi @@ -28,19 +28,19 @@ press-threshold-microvolt = <300000>; }; - menu { + button-menu { label = "Menu"; linux,code = ; press-threshold-microvolt = <640000>; }; - esc { + button-esc { label = "Esc"; linux,code = ; press-threshold-microvolt = <1000000>; }; - home { + button-home { label = "Home"; linux,code = ; press-threshold-microvolt = <1300000>; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-firefly.dtsi +++ linux-5.19.0/arch/arm/boot/dts/rk3288-firefly.dtsi @@ -233,11 +233,10 @@ vin-supply = <&vcc_sys>; }; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; - clock-frequency = <32768>; clock-output-names = "xin32k"; interrupt-parent = <&gpio7>; interrupts = ; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-miqi.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3288-miqi.dts @@ -162,11 +162,10 @@ vin-supply = <&vcc_sys>; }; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; - clock-frequency = <32768>; clock-output-names = "xin32k"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-rock2-square.dts +++ linux-5.19.0/arch/arm/boot/dts/rk3288-rock2-square.dts @@ -165,11 +165,10 @@ }; &i2c0 { - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; - clock-frequency = <32768>; clock-output-names = "xin32k"; interrupt-parent = <&gpio0>; interrupts = ; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3288-vmarc-som.dtsi +++ linux-5.19.0/arch/arm/boot/dts/rk3288-vmarc-som.dtsi @@ -241,7 +241,6 @@ interrupt-parent = <&gpio5>; interrupts = ; #clock-cells = <0>; - clock-frequency = <32768>; clock-output-names = "hym8563"; pinctrl-names = "default"; pinctrl-0 = <&hym8563_int>; --- linux-5.19.0.orig/arch/arm/boot/dts/rk3xxx.dtsi +++ linux-5.19.0/arch/arm/boot/dts/rk3xxx.dtsi @@ -76,6 +76,13 @@ reg = <0x1013c200 0x20>; interrupts = ; clocks = <&cru CORE_PERI>; + status = "disabled"; + /* The clock source and the sched_clock provided by the arm_global_timer + * on Rockchip rk3066a/rk3188 are quite unstable because their rates + * depend on the CPU frequency. + * Keep the arm_global_timer disabled in order to have the + * DW_APB_TIMER (rk3066a) or ROCKCHIP_TIMER (rk3188) selected by default. + */ }; local_timer: local-timer@1013c600 { --- linux-5.19.0.orig/arch/arm/boot/dts/sama7g5-pinfunc.h +++ linux-5.19.0/arch/arm/boot/dts/sama7g5-pinfunc.h @@ -261,7 +261,7 @@ #define PIN_PB2__FLEXCOM6_IO0 PINMUX_PIN(PIN_PB2, 2, 1) #define PIN_PB2__ADTRG PINMUX_PIN(PIN_PB2, 3, 1) #define PIN_PB2__A20 PINMUX_PIN(PIN_PB2, 4, 1) -#define PIN_PB2__FLEXCOM11_IO0 PINMUX_PIN(PIN_PB2, 6, 3) +#define PIN_PB2__FLEXCOM11_IO1 PINMUX_PIN(PIN_PB2, 6, 3) #define PIN_PB3 35 #define PIN_PB3__GPIO PINMUX_PIN(PIN_PB3, 0, 0) #define PIN_PB3__RF1 PINMUX_PIN(PIN_PB3, 1, 1) --- linux-5.19.0.orig/arch/arm/boot/dts/spear600.dtsi +++ linux-5.19.0/arch/arm/boot/dts/spear600.dtsi @@ -47,7 +47,7 @@ compatible = "arm,pl110", "arm,primecell"; reg = <0xfc200000 0x1000>; interrupt-parent = <&vic1>; - interrupts = <12>; + interrupts = <13>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm/boot/dts/ste-ux500-samsung-codina.dts +++ linux-5.19.0/arch/arm/boot/dts/ste-ux500-samsung-codina.dts @@ -598,8 +598,8 @@ reg = <0x19>; vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V - mount-matrix = "0", "-1", "0", - "1", "0", "0", + mount-matrix = "0", "1", "0", + "-1", "0", "0", "0", "0", "1"; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts +++ linux-5.19.0/arch/arm/boot/dts/ste-ux500-samsung-gavini.dts @@ -527,8 +527,8 @@ accelerometer@18 { compatible = "bosch,bma222e"; reg = <0x18>; - mount-matrix = "0", "1", "0", - "-1", "0", "0", + mount-matrix = "0", "-1", "0", + "1", "0", "0", "0", "0", "1"; vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V --- linux-5.19.0.orig/arch/arm/boot/dts/ste-ux500-samsung-janice.dts +++ linux-5.19.0/arch/arm/boot/dts/ste-ux500-samsung-janice.dts @@ -633,8 +633,8 @@ accelerometer@8 { compatible = "bosch,bma222"; reg = <0x08>; - mount-matrix = "0", "1", "0", - "-1", "0", "0", + mount-matrix = "0", "-1", "0", + "1", "0", "0", "0", "0", "1"; vddio-supply = <&ab8500_ldo_aux2_reg>; // 1.8V vdd-supply = <&ab8500_ldo_aux1_reg>; // 3V --- linux-5.19.0.orig/arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts +++ linux-5.19.0/arch/arm/boot/dts/stm32mp157a-dhcor-avenger96.dts @@ -13,7 +13,6 @@ /dts-v1/; #include "stm32mp157.dtsi" -#include "stm32mp15xc.dtsi" #include "stm32mp15xx-dhcor-som.dtsi" #include "stm32mp15xx-dhcor-avenger96.dtsi" --- linux-5.19.0.orig/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi +++ linux-5.19.0/arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi @@ -100,7 +100,7 @@ regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; - gpios = <&gpioz 3 GPIO_ACTIVE_HIGH>; + gpio = <&gpioz 3 GPIO_ACTIVE_HIGH>; enable-active-high; }; }; --- linux-5.19.0.orig/arch/arm/boot/dts/uniphier-pxs2.dtsi +++ linux-5.19.0/arch/arm/boot/dts/uniphier-pxs2.dtsi @@ -597,8 +597,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend"; @@ -693,8 +693,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend"; --- linux-5.19.0.orig/arch/arm/crypto/Kconfig +++ linux-5.19.0/arch/arm/crypto/Kconfig @@ -63,7 +63,7 @@ using optimized ARM assembler and NEON, when available. config CRYPTO_BLAKE2S_ARM - tristate "BLAKE2s digest algorithm (ARM)" + bool "BLAKE2s digest algorithm (ARM)" select CRYPTO_ARCH_HAVE_LIB_BLAKE2S help BLAKE2s digest algorithm optimized with ARM scalar instructions. This --- linux-5.19.0.orig/arch/arm/crypto/Makefile +++ linux-5.19.0/arch/arm/crypto/Makefile @@ -9,8 +9,7 @@ obj-$(CONFIG_CRYPTO_SHA1_ARM_NEON) += sha1-arm-neon.o obj-$(CONFIG_CRYPTO_SHA256_ARM) += sha256-arm.o obj-$(CONFIG_CRYPTO_SHA512_ARM) += sha512-arm.o -obj-$(CONFIG_CRYPTO_BLAKE2S_ARM) += blake2s-arm.o -obj-$(if $(CONFIG_CRYPTO_BLAKE2S_ARM),y) += libblake2s-arm.o +obj-$(CONFIG_CRYPTO_BLAKE2S_ARM) += libblake2s-arm.o obj-$(CONFIG_CRYPTO_BLAKE2B_NEON) += blake2b-neon.o obj-$(CONFIG_CRYPTO_CHACHA20_NEON) += chacha-neon.o obj-$(CONFIG_CRYPTO_POLY1305_ARM) += poly1305-arm.o @@ -32,7 +31,6 @@ sha256-arm-y := sha256-core.o sha256_glue.o $(sha256-arm-neon-y) sha512-arm-neon-$(CONFIG_KERNEL_MODE_NEON) := sha512-neon-glue.o sha512-arm-y := sha512-core.o sha512-glue.o $(sha512-arm-neon-y) -blake2s-arm-y := blake2s-shash.o libblake2s-arm-y:= blake2s-core.o blake2s-glue.o blake2b-neon-y := blake2b-neon-core.o blake2b-neon-glue.o sha1-arm-ce-y := sha1-ce-core.o sha1-ce-glue.o --- linux-5.19.0.orig/arch/arm/include/asm/perf_event.h +++ linux-5.19.0/arch/arm/include/asm/perf_event.h @@ -17,7 +17,7 @@ #define perf_arch_fetch_caller_regs(regs, __ip) { \ (regs)->ARM_pc = (__ip); \ - (regs)->ARM_fp = (unsigned long) __builtin_frame_address(0); \ + frame_pointer((regs)) = (unsigned long) __builtin_frame_address(0); \ (regs)->ARM_sp = current_stack_pointer; \ (regs)->ARM_cpsr = SVC_MODE; \ } --- linux-5.19.0.orig/arch/arm/include/asm/pgtable-nommu.h +++ linux-5.19.0/arch/arm/include/asm/pgtable-nommu.h @@ -45,12 +45,6 @@ typedef pte_t *pte_addr_t; /* - * ZERO_PAGE is a global shared page that is always zero: used - * for zero-mapped memory areas etc.. - */ -#define ZERO_PAGE(vaddr) (virt_to_page(0)) - -/* * Mark the prot value as uncacheable and unbufferable. */ #define pgprot_noncached(prot) (prot) --- linux-5.19.0.orig/arch/arm/include/asm/pgtable.h +++ linux-5.19.0/arch/arm/include/asm/pgtable.h @@ -10,6 +10,15 @@ #include #include +#ifndef __ASSEMBLY__ +/* + * ZERO_PAGE is a global shared page that is always zero: used + * for zero-mapped memory areas etc.. + */ +extern struct page *empty_zero_page; +#define ZERO_PAGE(vaddr) (empty_zero_page) +#endif + #ifndef CONFIG_MMU #include @@ -156,13 +165,6 @@ #define __S111 __PAGE_SHARED_EXEC #ifndef __ASSEMBLY__ -/* - * ZERO_PAGE is a global shared page that is always zero: used - * for zero-mapped memory areas etc.. - */ -extern struct page *empty_zero_page; -#define ZERO_PAGE(vaddr) (empty_zero_page) - extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; --- linux-5.19.0.orig/arch/arm/include/asm/stacktrace.h +++ linux-5.19.0/arch/arm/include/asm/stacktrace.h @@ -21,6 +21,9 @@ struct llist_node *kr_cur; struct task_struct *tsk; #endif +#ifdef CONFIG_UNWINDER_FRAME_POINTER + bool ex_frame; +#endif }; static __always_inline @@ -34,6 +37,9 @@ frame->kr_cur = NULL; frame->tsk = current; #endif +#ifdef CONFIG_UNWINDER_FRAME_POINTER + frame->ex_frame = in_entry_text(frame->pc); +#endif } extern int unwind_frame(struct stackframe *frame); --- linux-5.19.0.orig/arch/arm/kernel/return_address.c +++ linux-5.19.0/arch/arm/kernel/return_address.c @@ -47,6 +47,7 @@ frame.kr_cur = NULL; frame.tsk = current; #endif + frame.ex_frame = false; walk_stackframe(&frame, save_return_addr, &data); --- linux-5.19.0.orig/arch/arm/kernel/stacktrace.c +++ linux-5.19.0/arch/arm/kernel/stacktrace.c @@ -9,6 +9,8 @@ #include #include +#include "reboot.h" + #if defined(CONFIG_FRAME_POINTER) && !defined(CONFIG_ARM_UNWIND) /* * Unwind the current stack frame and store the new register values in the @@ -39,29 +41,74 @@ * 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. */ -int notrace unwind_frame(struct stackframe *frame) + +extern unsigned long call_with_stack_end; + +static int frame_pointer_check(struct stackframe *frame) { unsigned long high, low; unsigned long fp = frame->fp; + unsigned long pc = frame->pc; + + /* + * call_with_stack() is the only place we allow SP to jump from one + * stack to another, with FP and SP pointing to different stacks, + * skipping the FP boundary check at this point. + */ + if (pc >= (unsigned long)&call_with_stack && + pc < (unsigned long)&call_with_stack_end) + return 0; /* only go to a higher address on the stack */ low = frame->sp; high = ALIGN(low, THREAD_SIZE); -#ifdef CONFIG_CC_IS_CLANG /* check current frame pointer is within bounds */ +#ifdef CONFIG_CC_IS_CLANG if (fp < low + 4 || fp > high - 4) return -EINVAL; - - frame->sp = frame->fp; - frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp)); - frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 4)); #else - /* check current frame pointer is within bounds */ if (fp < low + 12 || fp > high - 4) return -EINVAL; +#endif + + return 0; +} + +int notrace unwind_frame(struct stackframe *frame) +{ + unsigned long fp = frame->fp; + + if (frame_pointer_check(frame)) + return -EINVAL; + + /* + * When we unwind through an exception stack, include the saved PC + * value into the stack trace. + */ + if (frame->ex_frame) { + struct pt_regs *regs = (struct pt_regs *)frame->sp; + + /* + * We check that 'regs + sizeof(struct pt_regs)' (that is, + * ®s[1]) does not exceed the bottom of the stack to avoid + * accessing data outside the task's stack. This may happen + * when frame->ex_frame is a false positive. + */ + if ((unsigned long)®s[1] > ALIGN(frame->sp, THREAD_SIZE)) + return -EINVAL; + + frame->pc = regs->ARM_pc; + frame->ex_frame = false; + return 0; + } /* restore the registers from the stack frame */ +#ifdef CONFIG_CC_IS_CLANG + frame->sp = frame->fp; + frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp)); + frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 4)); +#else frame->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 12)); frame->sp = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 8)); frame->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp - 4)); @@ -72,6 +119,9 @@ (void *)frame->fp, &frame->kr_cur); #endif + if (in_entry_text(frame->pc)) + frame->ex_frame = true; + return 0; } #endif @@ -102,7 +152,6 @@ { struct stack_trace_data *data = d; struct stack_trace *trace = data->trace; - struct pt_regs *regs; unsigned long addr = frame->pc; if (data->no_sched_functions && in_sched_functions(addr)) @@ -113,19 +162,6 @@ } trace->entries[trace->nr_entries++] = addr; - - if (trace->nr_entries >= trace->max_entries) - return 1; - - if (!in_entry_text(frame->pc)) - return 0; - - regs = (struct pt_regs *)frame->sp; - if ((unsigned long)®s[1] > ALIGN(frame->sp, THREAD_SIZE)) - return 0; - - trace->entries[trace->nr_entries++] = regs->ARM_pc; - return trace->nr_entries >= trace->max_entries; } @@ -167,6 +203,9 @@ frame.kr_cur = NULL; frame.tsk = tsk; #endif +#ifdef CONFIG_UNWINDER_FRAME_POINTER + frame.ex_frame = false; +#endif walk_stackframe(&frame, save_trace, &data); } @@ -188,6 +227,9 @@ frame.kr_cur = NULL; frame.tsk = current; #endif +#ifdef CONFIG_UNWINDER_FRAME_POINTER + frame.ex_frame = in_entry_text(frame.pc); +#endif walk_stackframe(&frame, save_trace, &data); } --- linux-5.19.0.orig/arch/arm/lib/call_with_stack.S +++ linux-5.19.0/arch/arm/lib/call_with_stack.S @@ -46,4 +46,6 @@ pop {fpreg, pc} UNWIND( .fnend ) #endif + .globl call_with_stack_end +call_with_stack_end: ENDPROC(call_with_stack) --- linux-5.19.0.orig/arch/arm/mach-at91/pm.c +++ linux-5.19.0/arch/arm/mach-at91/pm.c @@ -541,10 +541,42 @@ static int at91_suspend_finish(unsigned long val) { + unsigned char modified_gray_code[] = { + 0x00, 0x01, 0x02, 0x03, 0x06, 0x07, 0x04, 0x05, 0x0c, 0x0d, + 0x0e, 0x0f, 0x0a, 0x0b, 0x08, 0x09, 0x18, 0x19, 0x1a, 0x1b, + 0x1e, 0x1f, 0x1c, 0x1d, 0x14, 0x15, 0x16, 0x17, 0x12, 0x13, + 0x10, 0x11, + }; + unsigned int tmp, index; int i; if (soc_pm.data.mode == AT91_PM_BACKUP && soc_pm.data.ramc_phy) { /* + * Bootloader will perform DDR recalibration and will try to + * restore the ZQ0SR0 with the value saved here. But the + * calibration is buggy and restoring some values from ZQ0SR0 + * is forbidden and risky thus we need to provide processed + * values for these (modified gray code values). + */ + tmp = readl(soc_pm.data.ramc_phy + DDR3PHY_ZQ0SR0); + + /* Store pull-down output impedance select. */ + index = (tmp >> DDR3PHY_ZQ0SR0_PDO_OFF) & 0x1f; + soc_pm.bu->ddr_phy_calibration[0] = modified_gray_code[index]; + + /* Store pull-up output impedance select. */ + index = (tmp >> DDR3PHY_ZQ0SR0_PUO_OFF) & 0x1f; + soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index]; + + /* Store pull-down on-die termination impedance select. */ + index = (tmp >> DDR3PHY_ZQ0SR0_PDODT_OFF) & 0x1f; + soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index]; + + /* Store pull-up on-die termination impedance select. */ + index = (tmp >> DDR3PHY_ZQ0SRO_PUODT_OFF) & 0x1f; + soc_pm.bu->ddr_phy_calibration[0] |= modified_gray_code[index]; + + /* * The 1st 8 words of memory might get corrupted in the process * of DDR PHY recalibration; it is saved here in securam and it * will be restored later, after recalibration, by bootloader @@ -1066,10 +1098,6 @@ of_scan_flat_dt(at91_pm_backup_scan_memcs, &located); if (!located) goto securam_fail; - - /* DDR3PHY_ZQ0SR0 */ - soc_pm.bu->ddr_phy_calibration[0] = readl(soc_pm.data.ramc_phy + - 0x188); } return 0; --- linux-5.19.0.orig/arch/arm/mach-at91/pm_suspend.S +++ linux-5.19.0/arch/arm/mach-at91/pm_suspend.S @@ -169,12 +169,23 @@ cmp tmp1, #UDDRC_STAT_SELFREF_TYPE_SW bne sr_ena_2 - /* Put DDR PHY's DLL in bypass mode for non-backup modes. */ + /* Disable DX DLLs for non-backup modes. */ cmp r7, #AT91_PM_BACKUP beq sr_ena_3 - ldr tmp1, [r3, #DDR3PHY_PIR] - orr tmp1, tmp1, #DDR3PHY_PIR_DLLBYP - str tmp1, [r3, #DDR3PHY_PIR] + + /* Do not soft reset the AC DLL. */ + ldr tmp1, [r3, DDR3PHY_ACDLLCR] + bic tmp1, tmp1, DDR3PHY_ACDLLCR_DLLSRST + str tmp1, [r3, DDR3PHY_ACDLLCR] + + /* Disable DX DLLs. */ + ldr tmp1, [r3, #DDR3PHY_DX0DLLCR] + orr tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS + str tmp1, [r3, #DDR3PHY_DX0DLLCR] + + ldr tmp1, [r3, #DDR3PHY_DX1DLLCR] + orr tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS + str tmp1, [r3, #DDR3PHY_DX1DLLCR] sr_ena_3: /* Power down DDR PHY data receivers. */ @@ -221,10 +232,14 @@ bic tmp1, tmp1, #DDR3PHY_DSGCR_ODTPDD_ODT0 str tmp1, [r3, #DDR3PHY_DSGCR] - /* Take DDR PHY's DLL out of bypass mode. */ - ldr tmp1, [r3, #DDR3PHY_PIR] - bic tmp1, tmp1, #DDR3PHY_PIR_DLLBYP - str tmp1, [r3, #DDR3PHY_PIR] + /* Enable DX DLLs. */ + ldr tmp1, [r3, #DDR3PHY_DX0DLLCR] + bic tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS + str tmp1, [r3, #DDR3PHY_DX0DLLCR] + + ldr tmp1, [r3, #DDR3PHY_DX1DLLCR] + bic tmp1, tmp1, #DDR3PHY_DXDLLCR_DLLDIS + str tmp1, [r3, #DDR3PHY_DX1DLLCR] /* Enable quasi-dynamic programming. */ mov tmp1, #0 --- linux-5.19.0.orig/arch/arm/mach-bcm/bcm_kona_smc.c +++ linux-5.19.0/arch/arm/mach-bcm/bcm_kona_smc.c @@ -52,6 +52,7 @@ return -ENODEV; prop_val = of_get_address(node, 0, &prop_size, NULL); + of_node_put(node); if (!prop_val) return -EINVAL; --- linux-5.19.0.orig/arch/arm/mach-dove/Kconfig +++ linux-5.19.0/arch/arm/mach-dove/Kconfig @@ -8,6 +8,7 @@ select PINCTRL_DOVE select PLAT_ORION_LEGACY select PM_GENERIC_DOMAINS if PM + select PCI_QUIRKS if PCI help Support for the Marvell Dove SoC 88AP510 --- linux-5.19.0.orig/arch/arm/mach-dove/pcie.c +++ linux-5.19.0/arch/arm/mach-dove/pcie.c @@ -136,14 +136,19 @@ .write = pcie_wr_conf, }; +/* + * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it + * is operating as a root complex this needs to be switched to + * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on + * the device. Decoding setup is handled by the orion code. + */ static void rc_pci_fixup(struct pci_dev *dev) { - /* - * Prevent enumeration of root complex. - */ if (dev->bus->parent == NULL && dev->devfn == 0) { int i; + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { dev->resource[i].start = 0; dev->resource[i].end = 0; --- linux-5.19.0.orig/arch/arm/mach-mmp/time.c +++ linux-5.19.0/arch/arm/mach-mmp/time.c @@ -43,18 +43,21 @@ static void __iomem *mmp_timer_base = TIMERS_VIRT_BASE; /* - * FIXME: the timer needs some delay to stablize the counter capture + * Read the timer through the CVWR register. Delay is required after requesting + * a read. The CR register cannot be directly read due to metastability issues + * documented in the PXA168 software manual. */ static inline uint32_t timer_read(void) { - int delay = 100; + uint32_t val; + int delay = 3; __raw_writel(1, mmp_timer_base + TMR_CVWR(1)); while (delay--) - cpu_relax(); + val = __raw_readl(mmp_timer_base + TMR_CVWR(1)); - return __raw_readl(mmp_timer_base + TMR_CVWR(1)); + return val; } static u64 notrace mmp_read_sched_clock(void) --- linux-5.19.0.orig/arch/arm/mach-mv78xx0/pcie.c +++ linux-5.19.0/arch/arm/mach-mv78xx0/pcie.c @@ -180,14 +180,19 @@ .write = pcie_wr_conf, }; +/* + * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it + * is operating as a root complex this needs to be switched to + * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on + * the device. Decoding setup is handled by the orion code. + */ static void rc_pci_fixup(struct pci_dev *dev) { - /* - * Prevent enumeration of root complex. - */ if (dev->bus->parent == NULL && dev->devfn == 0) { int i; + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { dev->resource[i].start = 0; dev->resource[i].end = 0; --- linux-5.19.0.orig/arch/arm/mach-mxs/mach-mxs.c +++ linux-5.19.0/arch/arm/mach-mxs/mach-mxs.c @@ -393,8 +393,10 @@ root = of_find_node_by_path("/"); ret = of_property_read_string(root, "model", &soc_dev_attr->machine); - if (ret) + if (ret) { + kfree(soc_dev_attr); return; + } soc_dev_attr->family = "Freescale MXS Family"; soc_dev_attr->soc_id = mxs_get_soc_id(); --- linux-5.19.0.orig/arch/arm/mach-omap2/display.c +++ linux-5.19.0/arch/arm/mach-omap2/display.c @@ -211,6 +211,7 @@ node = of_find_node_by_name(NULL, "omap4_padconf_global"); if (node) omap4_dsi_mux_syscon = syscon_node_to_regmap(node); + of_node_put(node); return 0; } @@ -259,11 +260,13 @@ if (!pdev) { pr_err("Unable to find DSS platform device\n"); + of_node_put(node); return -ENODEV; } r = of_platform_populate(node, NULL, NULL, &pdev->dev); put_device(&pdev->dev); + of_node_put(node); if (r) { pr_err("Unable to populate DSS submodule devices\n"); return r; --- linux-5.19.0.orig/arch/arm/mach-omap2/pdata-quirks.c +++ linux-5.19.0/arch/arm/mach-omap2/pdata-quirks.c @@ -540,6 +540,8 @@ of_platform_populate(np, omap_dt_match_table, omap_auxdata_lookup, NULL); + + of_node_put(np); } } --- linux-5.19.0.orig/arch/arm/mach-omap2/prm3xxx.c +++ linux-5.19.0/arch/arm/mach-omap2/prm3xxx.c @@ -708,6 +708,7 @@ } irq_num = of_irq_get(np, 0); + of_node_put(np); if (irq_num == -EPROBE_DEFER) return irq_num; --- linux-5.19.0.orig/arch/arm/mach-orion5x/Kconfig +++ linux-5.19.0/arch/arm/mach-orion5x/Kconfig @@ -7,6 +7,7 @@ select GPIOLIB select MVEBU_MBUS select FORCE_PCI + select PCI_QUIRKS select PHYLIB if NETDEVICES select PLAT_ORION_LEGACY help --- linux-5.19.0.orig/arch/arm/mach-orion5x/pci.c +++ linux-5.19.0/arch/arm/mach-orion5x/pci.c @@ -515,14 +515,20 @@ /***************************************************************************** * General PCIe + PCI ****************************************************************************/ + +/* + * The root complex has a hardwired class of PCI_CLASS_MEMORY_OTHER, when it + * is operating as a root complex this needs to be switched to + * PCI_CLASS_BRIDGE_HOST or Linux will errantly try to process the BAR's on + * the device. Decoding setup is handled by the orion code. + */ static void rc_pci_fixup(struct pci_dev *dev) { - /* - * Prevent enumeration of root complex. - */ if (dev->bus->parent == NULL && dev->devfn == 0) { int i; + dev->class &= 0xff; + dev->class |= PCI_CLASS_BRIDGE_HOST << 8; for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) { dev->resource[i].start = 0; dev->resource[i].end = 0; --- linux-5.19.0.orig/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c +++ linux-5.19.0/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c @@ -125,6 +125,7 @@ list_for_each_entry_safe(pos, tmp, &quirk_list, list) { list_del(&pos->list); + of_node_put(pos->np); kfree(pos); } @@ -174,11 +175,12 @@ memcpy(&quirk->i2c_msg, id->data, sizeof(quirk->i2c_msg)); quirk->id = id; - quirk->np = np; + quirk->np = of_node_get(np); quirk->i2c_msg.addr = addr; ret = of_irq_parse_one(np, 0, argsa); if (ret) { /* Skip invalid entry and continue */ + of_node_put(np); kfree(quirk); continue; } @@ -225,6 +227,7 @@ err_mem: list_for_each_entry_safe(pos, tmp, &quirk_list, list) { list_del(&pos->list); + of_node_put(pos->np); kfree(pos); } --- linux-5.19.0.orig/arch/arm/mach-zynq/common.c +++ linux-5.19.0/arch/arm/mach-zynq/common.c @@ -77,6 +77,7 @@ } zynq_devcfg_base = of_iomap(np, 0); + of_node_put(np); if (!zynq_devcfg_base) { pr_err("%s: Unable to map I/O memory\n", __func__); return -1; --- linux-5.19.0.orig/arch/arm/mm/dump.c +++ linux-5.19.0/arch/arm/mm/dump.c @@ -346,7 +346,7 @@ addr = start + i * PMD_SIZE; domain = get_domain_name(pmd); if (pmd_none(*pmd) || pmd_large(*pmd) || !pmd_present(*pmd)) - note_page(st, addr, 3, pmd_val(*pmd), domain); + note_page(st, addr, 4, pmd_val(*pmd), domain); else walk_pte(st, pmd, addr, domain); --- linux-5.19.0.orig/arch/arm/mm/fault.c +++ linux-5.19.0/arch/arm/mm/fault.c @@ -105,6 +105,19 @@ return (fsr & FSR_WRITE) && !(fsr & FSR_CM); } +static inline bool is_translation_fault(unsigned int fsr) +{ + int fs = fsr_fs(fsr); +#ifdef CONFIG_ARM_LPAE + if ((fs & FS_MMU_NOLL_MASK) == FS_TRANS_NOLL) + return true; +#else + if (fs == FS_L1_TRANS || fs == FS_L2_TRANS) + return true; +#endif + return false; +} + static void die_kernel_fault(const char *msg, struct mm_struct *mm, unsigned long addr, unsigned int fsr, struct pt_regs *regs) @@ -140,7 +153,8 @@ if (addr < PAGE_SIZE) { msg = "NULL pointer dereference"; } else { - if (kfence_handle_page_fault(addr, is_write_fault(fsr), regs)) + if (is_translation_fault(fsr) && + kfence_handle_page_fault(addr, is_write_fault(fsr), regs)) return; msg = "paging request"; @@ -208,7 +222,7 @@ { int fs = fsr_fs(fsr); #ifdef CONFIG_ARM_LPAE - if ((fs & FS_PERM_NOLL_MASK) == FS_PERM_NOLL) + if ((fs & FS_MMU_NOLL_MASK) == FS_PERM_NOLL) return true; #else if (fs == FS_L1_PERM || fs == FS_L2_PERM) --- linux-5.19.0.orig/arch/arm/mm/fault.h +++ linux-5.19.0/arch/arm/mm/fault.h @@ -14,8 +14,9 @@ #ifdef CONFIG_ARM_LPAE #define FSR_FS_AEA 17 +#define FS_TRANS_NOLL 0x4 #define FS_PERM_NOLL 0xC -#define FS_PERM_NOLL_MASK 0x3C +#define FS_MMU_NOLL_MASK 0x3C static inline int fsr_fs(unsigned int fsr) { @@ -23,8 +24,10 @@ } #else #define FSR_FS_AEA 22 -#define FS_L1_PERM 0xD -#define FS_L2_PERM 0xF +#define FS_L1_TRANS 0x5 +#define FS_L2_TRANS 0x7 +#define FS_L1_PERM 0xD +#define FS_L2_PERM 0xF static inline int fsr_fs(unsigned int fsr) { --- linux-5.19.0.orig/arch/arm/mm/kasan_init.c +++ linux-5.19.0/arch/arm/mm/kasan_init.c @@ -264,12 +264,17 @@ /* * 1. The module global variables are in MODULES_VADDR ~ MODULES_END, - * so we need to map this area. + * so we need to map this area if CONFIG_KASAN_VMALLOC=n. With + * VMALLOC support KASAN will manage this region dynamically, + * refer to kasan_populate_vmalloc() and ARM's implementation of + * module_alloc(). * 2. PKMAP_BASE ~ PKMAP_BASE+PMD_SIZE's shadow and MODULES_VADDR * ~ MODULES_END's shadow is in the same PMD_SIZE, so we can't * use kasan_populate_zero_shadow. */ - create_mapping((void *)MODULES_VADDR, (void *)(PKMAP_BASE + PMD_SIZE)); + if (!IS_ENABLED(CONFIG_KASAN_VMALLOC) && IS_ENABLED(CONFIG_MODULES)) + create_mapping((void *)MODULES_VADDR, (void *)(MODULES_END)); + create_mapping((void *)PKMAP_BASE, (void *)(PKMAP_BASE + PMD_SIZE)); /* * KAsan may reuse the contents of kasan_early_shadow_pte directly, so --- linux-5.19.0.orig/arch/arm/mm/mmu.c +++ linux-5.19.0/arch/arm/mm/mmu.c @@ -300,7 +300,11 @@ .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY | L_PTE_XN | L_PTE_RDONLY, .prot_l1 = PMD_TYPE_TABLE, +#ifdef CONFIG_ARM_LPAE + .prot_sect = PMD_TYPE_SECT | L_PMD_SECT_RDONLY | PMD_SECT_AP2, +#else .prot_sect = PMD_TYPE_SECT, +#endif .domain = DOMAIN_KERNEL, }, [MT_ROM] = { --- linux-5.19.0.orig/arch/arm/mm/nommu.c +++ linux-5.19.0/arch/arm/mm/nommu.c @@ -26,6 +26,13 @@ unsigned long vectors_base; +/* + * empty_zero_page is a special page that is used for + * zero-initialized data and COW. + */ +struct page *empty_zero_page; +EXPORT_SYMBOL(empty_zero_page); + #ifdef CONFIG_ARM_MPU struct mpu_rgn_info mpu_rgn_info; #endif @@ -148,9 +155,21 @@ */ void __init paging_init(const struct machine_desc *mdesc) { + void *zero_page; + early_trap_init((void *)vectors_base); mpu_setup(); + + /* allocate the zero page. */ + zero_page = memblock_alloc(PAGE_SIZE, PAGE_SIZE); + if (!zero_page) + panic("%s: Failed to allocate %lu bytes align=0x%lx\n", + __func__, PAGE_SIZE, PAGE_SIZE); + bootmem_init(); + + empty_zero_page = virt_to_page(zero_page); + flush_dcache_page(empty_zero_page); } /* --- linux-5.19.0.orig/arch/arm/plat-orion/Makefile +++ linux-5.19.0/arch/arm/plat-orion/Makefile @@ -2,7 +2,7 @@ # # Makefile for the linux kernel. # -ccflags-$(CONFIG_ARCH_MULTIPLATFORM) := -I$(srctree)/$(src)/include +ccflags-y := -I$(srctree)/$(src)/include orion-gpio-$(CONFIG_GPIOLIB) += gpio.o obj-$(CONFIG_PLAT_ORION_LEGACY) += irq.o pcie.o time.o common.o mpp.o --- linux-5.19.0.orig/arch/arm/xen/enlighten.c +++ linux-5.19.0/arch/arm/xen/enlighten.c @@ -34,6 +34,7 @@ #include #include #include +#include #include @@ -443,7 +444,8 @@ if (!xen_domain()) return 0; - xen_set_restricted_virtio_memory_access(); + if (IS_ENABLED(CONFIG_XEN_VIRTIO)) + virtio_set_mem_acc_cb(xen_virtio_mem_acc); if (!acpi_disabled) xen_acpi_guest_init(); --- linux-5.19.0.orig/arch/arm64/Kconfig +++ linux-5.19.0/arch/arm64/Kconfig @@ -226,6 +226,7 @@ select THREAD_INFO_IN_TASK select HAVE_ARCH_USERFAULTFD_MINOR if USERFAULTFD select TRACE_IRQFLAGS_SUPPORT + select TRACE_IRQFLAGS_NMI_SUPPORT help ARM 64-bit (AArch64) Linux support. @@ -503,6 +504,22 @@ If unsure, say Y. +config ARM64_ERRATUM_1742098 + bool "Cortex-A57/A72: 1742098: ELR recorded incorrectly on interrupt taken between cryptographic instructions in a sequence" + depends on COMPAT + default y + help + This option removes the AES hwcap for aarch32 user-space to + workaround erratum 1742098 on Cortex-A57 and Cortex-A72. + + Affected parts may corrupt the AES state if an interrupt is + taken between a pair of AES instructions. These instructions + are only present if the cryptography extensions are present. + All software should have a fallback implementation for CPUs + that don't implement the cryptography extensions. + + If unsure, say Y. + config ARM64_ERRATUM_845719 bool "Cortex-A53: 845719: a load might read incorrect data" depends on COMPAT @@ -612,6 +629,23 @@ config ARM64_WORKAROUND_REPEAT_TLBI bool +config ARM64_ERRATUM_2441007 + bool "Cortex-A55: Completion of affected memory accesses might not be guaranteed by completion of a TLBI" + default y + select ARM64_WORKAROUND_REPEAT_TLBI + help + This option adds a workaround for ARM Cortex-A55 erratum #2441007. + + Under very rare circumstances, affected Cortex-A55 CPUs + may not handle a race between a break-before-make sequence on one + CPU, and another CPU accessing the same page. This could allow a + store to a page that has been unmapped. + + Work around this by adding the affected CPUs to the list that needs + TLB sequences to be done twice. + + If unsure, say Y. + config ARM64_ERRATUM_1286807 bool "Cortex-A76: Modification of the translation table for a virtual address might lead to read-after-read ordering violation" default y @@ -821,6 +855,23 @@ If unsure, say Y. +config ARM64_ERRATUM_2441009 + bool "Cortex-A510: Completion of affected memory accesses might not be guaranteed by completion of a TLBI" + default y + select ARM64_WORKAROUND_REPEAT_TLBI + help + This option adds a workaround for ARM Cortex-A510 erratum #2441009. + + Under very rare circumstances, affected Cortex-A510 CPUs + may not handle a race between a break-before-make sequence on one + CPU, and another CPU accessing the same page. This could allow a + store to a page that has been unmapped. + + Work around this by adding the affected CPUs to the list that needs + TLB sequences to be done twice. + + If unsure, say Y. + config ARM64_ERRATUM_2064142 bool "Cortex-A510: 2064142: workaround TRBE register writes while disabled" depends on CORESIGHT_TRBE @@ -880,6 +931,23 @@ If unsure, say Y. +config ARM64_ERRATUM_2457168 + bool "Cortex-A510: 2457168: workaround for AMEVCNTR01 incrementing incorrectly" + depends on ARM64_AMU_EXTN + default y + help + This option adds the workaround for ARM Cortex-A510 erratum 2457168. + + The AMU counter AMEVCNTR01 (constant counter) should increment at the same rate + as the system counter. On affected Cortex-A510 cores AMEVCNTR01 increments + incorrectly giving a significantly higher output value. + + Work around this problem by returning 0 when reading the affected counter in + key locations that results in disabling all users of this counter. This effect + is the same to firmware disabling affected counters. + + If unsure, say Y. + config CAVIUM_ERRATUM_22375 bool "Cavium erratum 22375, 24313" default y @@ -1367,6 +1435,7 @@ config FORCE_MAX_ZONEORDER int default "14" if ARM64_64K_PAGES + default "13" if (ARCH_THUNDER && ARM64_4K_PAGES) default "12" if ARM64_16K_PAGES default "11" help @@ -1833,6 +1902,8 @@ depends on CC_HAS_BRANCH_PROT_PAC_RET_BTI # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94697 depends on !CC_IS_GCC || GCC_VERSION >= 100100 + # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671 + depends on !CC_IS_GCC # https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9 depends on !CC_IS_CLANG || CLANG_VERSION >= 120000 depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_REGS) --- linux-5.19.0.orig/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts +++ linux-5.19.0/arch/arm64/boot/dts/allwinner/sun50i-a64-orangepi-win.dts @@ -40,7 +40,7 @@ leds { compatible = "gpio-leds"; - status { + led-0 { label = "orangepi:green:status"; gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ }; --- linux-5.19.0.orig/arch/arm64/boot/dts/apple/t8103.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/apple/t8103.dtsi @@ -378,7 +378,7 @@ ; }; - pcie0_dart_0: dart@681008000 { + pcie0_dart_0: iommu@681008000 { compatible = "apple,t8103-dart"; reg = <0x6 0x81008000 0x0 0x4000>; #iommu-cells = <1>; @@ -387,7 +387,7 @@ power-domains = <&ps_apcie_gp>; }; - pcie0_dart_1: dart@682008000 { + pcie0_dart_1: iommu@682008000 { compatible = "apple,t8103-dart"; reg = <0x6 0x82008000 0x0 0x4000>; #iommu-cells = <1>; @@ -396,7 +396,7 @@ power-domains = <&ps_apcie_gp>; }; - pcie0_dart_2: dart@683008000 { + pcie0_dart_2: iommu@683008000 { compatible = "apple,t8103-dart"; reg = <0x6 0x83008000 0x0 0x4000>; #iommu-cells = <1>; --- linux-5.19.0.orig/arch/arm64/boot/dts/arm/juno-base.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/arm/juno-base.dtsi @@ -750,12 +750,26 @@ polling-delay = <1000>; polling-delay-passive = <100>; thermal-sensors = <&scpi_sensors0 0>; + trips { + pmic_crit0: trip0 { + temperature = <90000>; + hysteresis = <2000>; + type = "critical"; + }; + }; }; soc { polling-delay = <1000>; polling-delay-passive = <100>; thermal-sensors = <&scpi_sensors0 3>; + trips { + soc_crit0: trip0 { + temperature = <80000>; + hysteresis = <2000>; + type = "critical"; + }; + }; }; big_cluster_thermal_zone: big-cluster { --- linux-5.19.0.orig/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi @@ -795,7 +795,7 @@ reg = <0x27>; interrupt-parent = <&gpa1>; interrupts = <3 IRQ_TYPE_EDGE_RISING>; - en-gpios = <&gpf1 4 GPIO_ACTIVE_HIGH>; + en-gpios = <&gpf1 4 GPIO_ACTIVE_LOW>; wake-gpios = <&gpj0 2 GPIO_ACTIVE_HIGH>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/exynos/exynosautov9-pinctrl.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/exynos/exynosautov9-pinctrl.dtsi @@ -1089,21 +1089,21 @@ /* PERIC1 USI11_SPI */ spi11_bus: spi11-pins { - samsung,pins = "gpp3-6", "gpp3-5", "gpp3-4"; + samsung,pins = "gpp5-6", "gpp5-5", "gpp5-4"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; spi11_cs: spi11-cs-pins { - samsung,pins = "gpp3-7"; + samsung,pins = "gpp5-7"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; }; spi11_cs_func: spi11-cs-func-pins { - samsung,pins = "gpp3-7"; + samsung,pins = "gpp5-7"; samsung,pin-function = ; samsung,pin-pud = ; samsung,pin-drv = ; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/fsl-ls1028a-qds-65bb.dts @@ -25,7 +25,6 @@ &enetc_port0 { phy-handle = <&slot1_sgmii>; phy-mode = "2500base-x"; - managed = "in-band-status"; status = "okay"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/fsl-ls1088a.dtsi @@ -771,6 +771,9 @@ little-endian; #address-cells = <1>; #size-cells = <0>; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(1)>; status = "disabled"; }; @@ -780,6 +783,9 @@ little-endian; #address-cells = <1>; #size-cells = <0>; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(1)>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi @@ -525,6 +525,9 @@ little-endian; #address-cells = <1>; #size-cells = <0>; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(2)>; status = "disabled"; }; @@ -534,6 +537,9 @@ little-endian; #address-cells = <1>; #size-cells = <0>; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(2)>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/fsl-lx2160a.dtsi @@ -1377,6 +1377,9 @@ #address-cells = <1>; #size-cells = <0>; little-endian; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(2)>; status = "disabled"; }; @@ -1387,6 +1390,9 @@ little-endian; #address-cells = <1>; #size-cells = <0>; + clock-frequency = <2500000>; + clocks = <&clockgen QORIQ_CLK_PLATFORM_PLL + QORIQ_CLK_PLL_DIV(2)>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8-ss-conn.dtsi @@ -38,9 +38,9 @@ interrupts = ; reg = <0x5b010000 0x10000>; clocks = <&sdhc0_lpcg IMX_LPCG_CLK_4>, - <&sdhc0_lpcg IMX_LPCG_CLK_5>, - <&sdhc0_lpcg IMX_LPCG_CLK_0>; - clock-names = "ipg", "per", "ahb"; + <&sdhc0_lpcg IMX_LPCG_CLK_0>, + <&sdhc0_lpcg IMX_LPCG_CLK_5>; + clock-names = "ipg", "ahb", "per"; power-domains = <&pd IMX_SC_R_SDHC_0>; status = "disabled"; }; @@ -49,9 +49,9 @@ interrupts = ; reg = <0x5b020000 0x10000>; clocks = <&sdhc1_lpcg IMX_LPCG_CLK_4>, - <&sdhc1_lpcg IMX_LPCG_CLK_5>, - <&sdhc1_lpcg IMX_LPCG_CLK_0>; - clock-names = "ipg", "per", "ahb"; + <&sdhc1_lpcg IMX_LPCG_CLK_0>, + <&sdhc1_lpcg IMX_LPCG_CLK_5>; + clock-names = "ipg", "ahb", "per"; power-domains = <&pd IMX_SC_R_SDHC_1>; fsl,tuning-start-tap = <20>; fsl,tuning-step= <2>; @@ -62,9 +62,9 @@ interrupts = ; reg = <0x5b030000 0x10000>; clocks = <&sdhc2_lpcg IMX_LPCG_CLK_4>, - <&sdhc2_lpcg IMX_LPCG_CLK_5>, - <&sdhc2_lpcg IMX_LPCG_CLK_0>; - clock-names = "ipg", "per", "ahb"; + <&sdhc2_lpcg IMX_LPCG_CLK_0>, + <&sdhc2_lpcg IMX_LPCG_CLK_5>; + clock-names = "ipg", "ahb", "per"; power-domains = <&pd IMX_SC_R_SDHC_2>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-s.dts @@ -321,6 +321,7 @@ MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d0 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d0 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; @@ -333,6 +334,7 @@ MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d4 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d4 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; @@ -345,6 +347,7 @@ MX8MM_IOMUXC_SD2_DATA2_USDHC2_DATA2 0x1d6 MX8MM_IOMUXC_SD2_DATA3_USDHC2_DATA3 0x1d6 MX8MM_IOMUXC_SD2_CD_B_GPIO2_IO12 0x019 + MX8MM_IOMUXC_GPIO1_IO04_USDHC2_VSELECT 0x1d0 >; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-kontron-n801x-som.dtsi @@ -86,7 +86,6 @@ pinctrl-0 = <&pinctrl_pmic>; interrupt-parent = <&gpio1>; interrupts = <0 IRQ_TYPE_LEVEL_LOW>; - sd-vsel-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; regulators { reg_vdd_soc: BUCK1 { @@ -229,7 +228,6 @@ pinctrl_pmic: pmicgrp { fsl,pins = < MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 - MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x141 >; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-mx8menlo.dts @@ -152,11 +152,11 @@ * CPLD_reset is RESET_SOFT in schematic */ gpio-line-names = - "CPLD_D[1]", "CPLD_int", "CPLD_reset", "", - "", "CPLD_D[0]", "", "", - "", "", "", "CPLD_D[2]", - "CPLD_D[3]", "CPLD_D[4]", "CPLD_D[5]", "CPLD_D[6]", - "CPLD_D[7]", "", "", "", + "CPLD_D[6]", "CPLD_int", "CPLD_reset", "", + "", "CPLD_D[7]", "", "", + "", "", "", "CPLD_D[5]", + "CPLD_D[4]", "CPLD_D[3]", "CPLD_D[2]", "CPLD_D[1]", + "CPLD_D[0]", "", "", "", "", "", "", "", "", "", "", "KBD_intK", "", "", "", ""; @@ -250,21 +250,21 @@ /* SODIMM 96 */ MX8MM_IOMUXC_SAI1_RXD2_GPIO4_IO4 0x1c4 /* CPLD_D[7] */ - MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x1c4 + MX8MM_IOMUXC_SAI1_RXD3_GPIO4_IO5 0x184 /* CPLD_D[6] */ - MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x1c4 + MX8MM_IOMUXC_SAI1_RXFS_GPIO4_IO0 0x184 /* CPLD_D[5] */ - MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x1c4 + MX8MM_IOMUXC_SAI1_TXC_GPIO4_IO11 0x184 /* CPLD_D[4] */ - MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x1c4 + MX8MM_IOMUXC_SAI1_TXD0_GPIO4_IO12 0x184 /* CPLD_D[3] */ - MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x1c4 + MX8MM_IOMUXC_SAI1_TXD1_GPIO4_IO13 0x184 /* CPLD_D[2] */ - MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x1c4 + MX8MM_IOMUXC_SAI1_TXD2_GPIO4_IO14 0x184 /* CPLD_D[1] */ - MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x1c4 + MX8MM_IOMUXC_SAI1_TXD3_GPIO4_IO15 0x184 /* CPLD_D[0] */ - MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x1c4 + MX8MM_IOMUXC_SAI1_TXD4_GPIO4_IO16 0x184 /* KBD_intK */ MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO27 0x1c4 /* DISP_reset */ --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml-mba8mx.dts @@ -5,7 +5,6 @@ /dts-v1/; -#include #include "imx8mm-tqma8mqml.dtsi" #include "mba8mx.dtsi" @@ -35,11 +34,25 @@ off-on-delay-us = <12000>; }; - extcon_usbotg1: extcon-usbotg1 { - compatible = "linux,extcon-usb-gpio"; + connector { + compatible = "gpio-usb-b-connector", "usb-b-connector"; + type = "micro"; + label = "X19"; pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_usb1_extcon>; - id-gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&pinctrl_usb1_connector>; + id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + usb_dr_connector: endpoint { + remote-endpoint = <&usb1_drd_sw>; + }; + }; + }; }; }; @@ -106,13 +119,19 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usbotg1>; dr_mode = "otg"; - extcon = <&extcon_usbotg1>; srp-disable; hnp-disable; adp-disable; power-active-high; over-current-active-low; + usb-role-switch; status = "okay"; + + port { + usb1_drd_sw: endpoint { + remote-endpoint = <&usb_dr_connector>; + }; + }; }; &usbotg2 { @@ -232,7 +251,7 @@ ; }; - pinctrl_usb1_extcon: usb1-extcongrp { + pinctrl_usb1_connector: usb1-connectorgrp { fsl,pins = ; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-tqma8mqml.dtsi @@ -3,6 +3,7 @@ * Copyright 2020-2021 TQ-Systems GmbH */ +#include #include "imx8mm.dtsi" / { --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-venice-gw7901.dts @@ -626,24 +626,28 @@ lan1: port@0 { reg = <0>; label = "lan1"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan2: port@1 { reg = <1>; label = "lan2"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan3: port@2 { reg = <2>; label = "lan3"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan4: port@3 { reg = <3>; label = "lan4"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm-verdin.dtsi @@ -32,10 +32,10 @@ }; /* Fixed clock dedicated to SPI CAN controller */ - clk20m: oscillator { + clk40m: oscillator { compatible = "fixed-clock"; #clock-cells = <0>; - clock-frequency = <20000000>; + clock-frequency = <40000000>; }; gpio-keys { @@ -194,8 +194,8 @@ can1: can@0 { compatible = "microchip,mcp251xfd"; - clocks = <&clk20m>; - interrupts-extended = <&gpio1 6 IRQ_TYPE_EDGE_FALLING>; + clocks = <&clk40m>; + interrupts-extended = <&gpio1 6 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_can1_int>; reg = <0>; @@ -359,8 +359,8 @@ nxp,dvs-standby-voltage = <850000>; regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <950000>; - regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1050000>; + regulator-min-microvolt = <805000>; regulator-name = "On-module +VDD_ARM (BUCK2)"; regulator-ramp-delay = <3125>; }; @@ -368,8 +368,8 @@ reg_vdd_dram: BUCK3 { regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <950000>; - regulator-min-microvolt = <850000>; + regulator-max-microvolt = <1000000>; + regulator-min-microvolt = <805000>; regulator-name = "On-module +VDD_GPU_VPU_DDR (BUCK3)"; }; @@ -408,7 +408,7 @@ reg_vdd_snvs: LDO2 { regulator-always-on; regulator-boot-on; - regulator-max-microvolt = <900000>; + regulator-max-microvolt = <800000>; regulator-min-microvolt = <800000>; regulator-name = "On-module +V0.8_SNVS (LDO2)"; }; @@ -595,7 +595,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; reg = <0x4a>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ - reset-gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio3 23 GPIO_ACTIVE_LOW>; status = "disabled"; }; @@ -737,6 +737,7 @@ }; &usbphynop2 { + power-domains = <&pgc_otg2>; vcc-supply = <®_vdd_3v3>; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mm.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mm.dtsi @@ -276,6 +276,7 @@ assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>; clock-names = "main_clk"; + power-domains = <&pgc_otg1>; }; usbphynop2: usbphynop2 { @@ -285,6 +286,7 @@ assigned-clocks = <&clk IMX8MM_CLK_USB_PHY_REF>; assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_100M>; clock-names = "main_clk"; + power-domains = <&pgc_otg2>; }; soc@0 { @@ -669,13 +671,11 @@ pgc_otg1: power-domain@2 { #power-domain-cells = <0>; reg = ; - power-domains = <&pgc_hsiomix>; }; pgc_otg2: power-domain@3 { #power-domain-cells = <0>; reg = ; - power-domains = <&pgc_hsiomix>; }; pgc_gpumix: power-domain@4 { @@ -1180,7 +1180,7 @@ assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>; phys = <&usbphynop1>; fsl,usbmisc = <&usbmisc1 0>; - power-domains = <&pgc_otg1>; + power-domains = <&pgc_hsiomix>; status = "disabled"; }; @@ -1200,7 +1200,7 @@ assigned-clock-parents = <&clk IMX8MM_SYS_PLL2_500M>; phys = <&usbphynop2>; fsl,usbmisc = <&usbmisc2 0>; - power-domains = <&pgc_otg2>; + power-domains = <&pgc_hsiomix>; status = "disabled"; }; @@ -1238,10 +1238,10 @@ clocks = <&clk IMX8MM_CLK_NAND_USDHC_BUS_RAWNAND_CLK>; }; - gpmi: nand-controller@33002000{ + gpmi: nand-controller@33002000 { compatible = "fsl,imx8mm-gpmi-nand", "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = ; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mn.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mn.dtsi @@ -662,7 +662,6 @@ pgc_otg1: power-domain@1 { #power-domain-cells = <0>; reg = ; - power-domains = <&pgc_hsiomix>; }; pgc_gpumix: power-domain@2 { @@ -672,7 +671,6 @@ <&clk IMX8MN_CLK_GPU_SHADER>, <&clk IMX8MN_CLK_GPU_BUS_ROOT>, <&clk IMX8MN_CLK_GPU_AHB>; - resets = <&src IMX8MQ_RESET_GPU_RESET>; }; pgc_dispmix: power-domain@3 { @@ -1076,7 +1074,7 @@ assigned-clock-parents = <&clk IMX8MN_SYS_PLL2_500M>; phys = <&usbphynop1>; fsl,usbmisc = <&usbmisc1 0>; - power-domains = <&pgc_otg1>; + power-domains = <&pgc_hsiomix>; status = "disabled"; }; @@ -1103,7 +1101,7 @@ gpmi: nand-controller@33002000 { compatible = "fsl,imx8mn-gpmi-nand", "fsl,imx7d-gpmi-nand"; #address-cells = <1>; - #size-cells = <1>; + #size-cells = <0>; reg = <0x33002000 0x2000>, <0x33004000 0x4000>; reg-names = "gpmi-nand", "bch"; interrupts = ; @@ -1175,5 +1173,6 @@ assigned-clocks = <&clk IMX8MN_CLK_USB_PHY_REF>; assigned-clock-parents = <&clk IMX8MN_SYS_PLL1_100M>; clock-names = "main_clk"; + power-domains = <&pgc_otg1>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mp-venice-gw74xx.dts @@ -123,8 +123,7 @@ pinctrl-names = "default"; pinctrl-0 = <&pinctrl_reg_can>; regulator-name = "can2_stby"; - gpio = <&gpio3 19 GPIO_ACTIVE_HIGH>; - enable-active-high; + gpio = <&gpio3 19 GPIO_ACTIVE_LOW>; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; @@ -484,35 +483,40 @@ lan1: port@0 { reg = <0>; label = "lan1"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan2: port@1 { reg = <1>; label = "lan2"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan3: port@2 { reg = <2>; label = "lan3"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan4: port@3 { reg = <3>; label = "lan4"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; lan5: port@4 { reg = <4>; label = "lan5"; + phy-mode = "internal"; local-mac-address = [00 00 00 00 00 00]; }; - port@6 { - reg = <6>; + port@5 { + reg = <5>; label = "cpu"; ethernet = <&fec>; phy-mode = "rgmii-id"; @@ -770,10 +774,10 @@ pinctrl_sai2: sai2grp { fsl,pins = < - MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC - MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 - MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK - MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK + MX8MP_IOMUXC_SAI2_TXFS__AUDIOMIX_SAI2_TX_SYNC 0xd6 + MX8MP_IOMUXC_SAI2_TXD0__AUDIOMIX_SAI2_TX_DATA00 0xd6 + MX8MP_IOMUXC_SAI2_TXC__AUDIOMIX_SAI2_TX_BCLK 0xd6 + MX8MP_IOMUXC_SAI2_MCLK__AUDIOMIX_SAI2_MCLK 0xd6 >; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mp-verdin.dtsi @@ -331,16 +331,6 @@ "SODIMM_82", "SODIMM_70", "SODIMM_72"; - - ctrl-sleep-moci-hog { - gpio-hog; - /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ - gpios = <29 GPIO_ACTIVE_HIGH>; - line-name = "CTRL_SLEEP_MOCI#"; - output-high; - pinctrl-names = "default"; - pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; - }; }; &gpio3 { @@ -409,6 +399,16 @@ "SODIMM_256", "SODIMM_48", "SODIMM_44"; + + ctrl-sleep-moci-hog { + gpio-hog; + /* Verdin CTRL_SLEEP_MOCI# (SODIMM 256) */ + gpios = <29 GPIO_ACTIVE_HIGH>; + line-name = "CTRL_SLEEP_MOCI#"; + output-high; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_ctrl_sleep_moci>; + }; }; /* On-module I2C */ @@ -620,7 +620,7 @@ interrupts = <5 IRQ_TYPE_EDGE_FALLING>; reg = <0x4a>; /* Verdin GPIO_2 (SODIMM 208) */ - reset-gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio1 1 GPIO_ACTIVE_LOW>; status = "disabled"; }; }; @@ -697,7 +697,7 @@ pinctrl-0 = <&pinctrl_gpio_9_dsi>, <&pinctrl_i2s_2_bclk_touch_reset>; reg = <0x4a>; /* Verdin I2S_2_BCLK (TOUCH_RESET#, SODIMM 42) */ - reset-gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>; + reset-gpios = <&gpio5 0 GPIO_ACTIVE_LOW>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mp.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mp.dtsi @@ -1168,7 +1168,7 @@ interrupts = ; phys = <&usb3_phy0>, <&usb3_phy0>; phy-names = "usb2-phy", "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; + snps,gfladj-refclk-lpm-sel-quirk; }; }; @@ -1210,7 +1210,7 @@ interrupts = ; phys = <&usb3_phy1>, <&usb3_phy1>; phy-names = "usb2-phy", "usb3-phy"; - snps,dis-u2-freeclk-exists-quirk; + snps,gfladj-refclk-lpm-sel-quirk; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mq-librem5.dtsi @@ -1077,6 +1077,7 @@ interrupts = <20 IRQ_TYPE_LEVEL_LOW>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_gauge>; + power-supplies = <&bq25895>; maxim,over-heat-temp = <700>; maxim,over-volt = <4500>; maxim,rsns-microohm = <5000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8mq-tqma8mq.dtsi @@ -204,7 +204,6 @@ reg = <0x51>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rtc>; - interrupt-names = "irq"; interrupt-parent = <&gpio1>; interrupts = <1 IRQ_TYPE_EDGE_FALLING>; quartz-load-femtofarads = <7000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/freescale/imx8ulp.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/freescale/imx8ulp.dtsi @@ -172,6 +172,7 @@ compatible = "fsl,imx8ulp-pcc3"; reg = <0x292d0000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; tpm5: tpm@29340000 { @@ -270,6 +271,7 @@ compatible = "fsl,imx8ulp-pcc4"; reg = <0x29800000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; lpi2c6: i2c@29840000 { @@ -414,6 +416,7 @@ compatible = "fsl,imx8ulp-pcc5"; reg = <0x2da70000 0x10000>; #clock-cells = <1>; + #reset-cells = <1>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts +++ linux-5.19.0/arch/arm64/boot/dts/marvell/armada-3720-turris-mox.dts @@ -125,9 +125,12 @@ /delete-property/ mrvl,i2c-fast-mode; status = "okay"; + /* MCP7940MT-I/MNY RTC */ rtc@6f { compatible = "microchip,mcp7940x"; reg = <0x6f>; + interrupt-parent = <&gpiosb>; + interrupts = <5 0>; /* GPIO2_5 */ }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt2712-evb.dts +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt2712-evb.dts @@ -26,14 +26,14 @@ stdout-path = "serial0:921600n8"; }; - cpus_fixed_vproc0: fixedregulator@0 { + cpus_fixed_vproc0: regulator-vproc-buck0 { compatible = "regulator-fixed"; regulator-name = "vproc_buck0"; regulator-min-microvolt = <1000000>; regulator-max-microvolt = <1000000>; }; - cpus_fixed_vproc1: fixedregulator@1 { + cpus_fixed_vproc1: regulator-vproc-buck1 { compatible = "regulator-fixed"; regulator-name = "vproc_buck1"; regulator-min-microvolt = <1000000>; @@ -50,7 +50,7 @@ id-gpio = <&pio 14 GPIO_ACTIVE_HIGH>; }; - usb_p0_vbus: regulator@2 { + usb_p0_vbus: regulator-usb-p0-vbus { compatible = "regulator-fixed"; regulator-name = "p0_vbus"; regulator-min-microvolt = <5000000>; @@ -59,7 +59,7 @@ enable-active-high; }; - usb_p1_vbus: regulator@3 { + usb_p1_vbus: regulator-usb-p1-vbus { compatible = "regulator-fixed"; regulator-name = "p1_vbus"; regulator-min-microvolt = <5000000>; @@ -68,7 +68,7 @@ enable-active-high; }; - usb_p2_vbus: regulator@4 { + usb_p2_vbus: regulator-usb-p2-vbus { compatible = "regulator-fixed"; regulator-name = "p2_vbus"; regulator-min-microvolt = <5000000>; @@ -77,7 +77,7 @@ enable-active-high; }; - usb_p3_vbus: regulator@5 { + usb_p3_vbus: regulator-usb-p3-vbus { compatible = "regulator-fixed"; regulator-name = "p3_vbus"; regulator-min-microvolt = <5000000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt2712e.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt2712e.dtsi @@ -160,70 +160,70 @@ #clock-cells = <0>; }; - clk26m: oscillator@0 { + clk26m: oscillator-26m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <26000000>; clock-output-names = "clk26m"; }; - clk32k: oscillator@1 { + clk32k: oscillator-32k { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32768>; clock-output-names = "clk32k"; }; - clkfpc: oscillator@2 { + clkfpc: oscillator-50m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <50000000>; clock-output-names = "clkfpc"; }; - clkaud_ext_i_0: oscillator@3 { + clkaud_ext_i_0: oscillator-aud0 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <6500000>; clock-output-names = "clkaud_ext_i_0"; }; - clkaud_ext_i_1: oscillator@4 { + clkaud_ext_i_1: oscillator-aud1 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <196608000>; clock-output-names = "clkaud_ext_i_1"; }; - clkaud_ext_i_2: oscillator@5 { + clkaud_ext_i_2: oscillator-aud2 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <180633600>; clock-output-names = "clkaud_ext_i_2"; }; - clki2si0_mck_i: oscillator@6 { + clki2si0_mck_i: oscillator-i2s0 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <30000000>; clock-output-names = "clki2si0_mck_i"; }; - clki2si1_mck_i: oscillator@7 { + clki2si1_mck_i: oscillator-i2s1 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <30000000>; clock-output-names = "clki2si1_mck_i"; }; - clki2si2_mck_i: oscillator@8 { + clki2si2_mck_i: oscillator-i2s2 { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <30000000>; clock-output-names = "clki2si2_mck_i"; }; - clktdmin_mclk_i: oscillator@9 { + clktdmin_mclk_i: oscillator-mclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <30000000>; @@ -266,7 +266,7 @@ reg = <0 0x10005000 0 0x1000>; }; - pio: pinctrl@10005000 { + pio: pinctrl@1000b000 { compatible = "mediatek,mt2712-pinctrl"; reg = <0 0x1000b000 0 0x1000>; mediatek,pctl-regmap = <&syscfg_pctl_a>; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt6779.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt6779.dtsi @@ -88,14 +88,14 @@ interrupts = ; }; - clk26m: oscillator@0 { + clk26m: oscillator-26m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <26000000>; clock-output-names = "clk26m"; }; - clk32k: oscillator@1 { + clk32k: oscillator-32k { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32768>; @@ -117,7 +117,7 @@ compatible = "simple-bus"; ranges; - gic: interrupt-controller@0c000000 { + gic: interrupt-controller@c000000 { compatible = "arm,gic-v3"; #interrupt-cells = <4>; interrupt-parent = <&gic>; @@ -138,7 +138,7 @@ }; - sysirq: intpol-controller@0c53a650 { + sysirq: intpol-controller@c53a650 { compatible = "mediatek,mt6779-sysirq", "mediatek,mt6577-sysirq"; interrupt-controller; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt6797.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt6797.dtsi @@ -95,7 +95,7 @@ }; }; - clk26m: oscillator@0 { + clk26m: oscillator-26m { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <26000000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt7622-bananapi-bpi-r64.dts @@ -49,7 +49,7 @@ wps { label = "wps"; linux,code = ; - gpios = <&pio 102 GPIO_ACTIVE_HIGH>; + gpios = <&pio 102 GPIO_ACTIVE_LOW>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt7986a.dtsi @@ -13,7 +13,7 @@ #address-cells = <2>; #size-cells = <2>; - clk40m: oscillator@0 { + clk40m: oscillator-40m { compatible = "fixed-clock"; clock-frequency = <40000000>; #clock-cells = <0>; @@ -162,7 +162,7 @@ #clock-cells = <1>; }; - trng: trng@1020f000 { + trng: rng@1020f000 { compatible = "mediatek,mt7986-rng", "mediatek,mt7623-rng"; reg = <0 0x1020f000 0 0x100>; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt8183.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt8183.dtsi @@ -1368,7 +1368,7 @@ ; interrupt-names = "job", "mmu", "gpu"; - clocks = <&topckgen CLK_TOP_MFGPLL_CK>; + clocks = <&mfgcfg CLK_MFG_BG3D>; power-domains = <&spm MT8183_POWER_DOMAIN_MFG_CORE0>, --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt8192.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt8192.dtsi @@ -43,7 +43,7 @@ reg = <0x000>; enable-method = "psci"; clock-frequency = <1701000000>; - cpu-idle-states = <&cpuoff_l &clusteroff_l>; + cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>; next-level-cache = <&l2_0>; capacity-dmips-mhz = <530>; }; @@ -54,7 +54,7 @@ reg = <0x100>; enable-method = "psci"; clock-frequency = <1701000000>; - cpu-idle-states = <&cpuoff_l &clusteroff_l>; + cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>; next-level-cache = <&l2_0>; capacity-dmips-mhz = <530>; }; @@ -65,7 +65,7 @@ reg = <0x200>; enable-method = "psci"; clock-frequency = <1701000000>; - cpu-idle-states = <&cpuoff_l &clusteroff_l>; + cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>; next-level-cache = <&l2_0>; capacity-dmips-mhz = <530>; }; @@ -76,7 +76,7 @@ reg = <0x300>; enable-method = "psci"; clock-frequency = <1701000000>; - cpu-idle-states = <&cpuoff_l &clusteroff_l>; + cpu-idle-states = <&cpu_sleep_l &cluster_sleep_l>; next-level-cache = <&l2_0>; capacity-dmips-mhz = <530>; }; @@ -87,7 +87,7 @@ reg = <0x400>; enable-method = "psci"; clock-frequency = <2171000000>; - cpu-idle-states = <&cpuoff_b &clusteroff_b>; + cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>; next-level-cache = <&l2_1>; capacity-dmips-mhz = <1024>; }; @@ -98,7 +98,7 @@ reg = <0x500>; enable-method = "psci"; clock-frequency = <2171000000>; - cpu-idle-states = <&cpuoff_b &clusteroff_b>; + cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>; next-level-cache = <&l2_1>; capacity-dmips-mhz = <1024>; }; @@ -109,7 +109,7 @@ reg = <0x600>; enable-method = "psci"; clock-frequency = <2171000000>; - cpu-idle-states = <&cpuoff_b &clusteroff_b>; + cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>; next-level-cache = <&l2_1>; capacity-dmips-mhz = <1024>; }; @@ -120,7 +120,7 @@ reg = <0x700>; enable-method = "psci"; clock-frequency = <2171000000>; - cpu-idle-states = <&cpuoff_b &clusteroff_b>; + cpu-idle-states = <&cpu_sleep_b &cluster_sleep_b>; next-level-cache = <&l2_1>; capacity-dmips-mhz = <1024>; }; @@ -172,8 +172,8 @@ }; idle-states { - entry-method = "arm,psci"; - cpuoff_l: cpuoff_l { + entry-method = "psci"; + cpu_sleep_l: cpu-sleep-l { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x00010001>; local-timer-stop; @@ -181,7 +181,7 @@ exit-latency-us = <140>; min-residency-us = <780>; }; - cpuoff_b: cpuoff_b { + cpu_sleep_b: cpu-sleep-b { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x00010001>; local-timer-stop; @@ -189,7 +189,7 @@ exit-latency-us = <145>; min-residency-us = <720>; }; - clusteroff_l: clusteroff_l { + cluster_sleep_l: cluster-sleep-l { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x01010002>; local-timer-stop; @@ -197,7 +197,7 @@ exit-latency-us = <155>; min-residency-us = <860>; }; - clusteroff_b: clusteroff_b { + cluster_sleep_b: cluster-sleep-b { compatible = "arm,idle-state"; arm,psci-suspend-param = <0x01010002>; local-timer-stop; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/mt8195.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/mt8195.dtsi @@ -28,7 +28,7 @@ reg = <0x000>; enable-method = "psci"; clock-frequency = <1701000000>; - capacity-dmips-mhz = <578>; + capacity-dmips-mhz = <308>; cpu-idle-states = <&cpu_off_l &cluster_off_l>; next-level-cache = <&l2_0>; #cooling-cells = <2>; @@ -40,7 +40,7 @@ reg = <0x100>; enable-method = "psci"; clock-frequency = <1701000000>; - capacity-dmips-mhz = <578>; + capacity-dmips-mhz = <308>; cpu-idle-states = <&cpu_off_l &cluster_off_l>; next-level-cache = <&l2_0>; #cooling-cells = <2>; @@ -52,7 +52,7 @@ reg = <0x200>; enable-method = "psci"; clock-frequency = <1701000000>; - capacity-dmips-mhz = <578>; + capacity-dmips-mhz = <308>; cpu-idle-states = <&cpu_off_l &cluster_off_l>; next-level-cache = <&l2_0>; #cooling-cells = <2>; @@ -64,7 +64,7 @@ reg = <0x300>; enable-method = "psci"; clock-frequency = <1701000000>; - capacity-dmips-mhz = <578>; + capacity-dmips-mhz = <308>; cpu-idle-states = <&cpu_off_l &cluster_off_l>; next-level-cache = <&l2_0>; #cooling-cells = <2>; --- linux-5.19.0.orig/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/mediatek/pumpkin-common.dtsi @@ -17,7 +17,7 @@ }; firmware { - optee: optee@4fd00000 { + optee: optee { compatible = "linaro,optee-tz"; method = "smc"; }; @@ -209,7 +209,7 @@ }; }; - i2c0_pins_a: i2c0@0 { + i2c0_pins_a: i2c0 { pins1 { pinmux = , ; @@ -217,7 +217,7 @@ }; }; - i2c2_pins_a: i2c2@0 { + i2c2_pins_a: i2c2 { pins1 { pinmux = , ; --- linux-5.19.0.orig/arch/arm64/boot/dts/nvidia/tegra186.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/nvidia/tegra186.dtsi @@ -1820,6 +1820,7 @@ #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x30000000 0x50000>; + no-memory-wc; cpu_bpmp_tx: sram@4e000 { reg = <0x4e000 0x1000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/nvidia/tegra194-p2888.dtsi @@ -75,7 +75,7 @@ /* SDMMC1 (SD/MMC) */ mmc@3400000 { - cd-gpios = <&gpio TEGRA194_MAIN_GPIO(A, 0) GPIO_ACTIVE_LOW>; + cd-gpios = <&gpio TEGRA194_MAIN_GPIO(G, 7) GPIO_ACTIVE_LOW>; }; /* SDMMC4 (eMMC) */ --- linux-5.19.0.orig/arch/arm64/boot/dts/nvidia/tegra194.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/nvidia/tegra194.dtsi @@ -2684,6 +2684,7 @@ #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x40000000 0x50000>; + no-memory-wc; cpu_bpmp_tx: sram@4e000 { reg = <0x4e000 0x1000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/nvidia/tegra234.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/nvidia/tegra234.dtsi @@ -1325,6 +1325,7 @@ #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x40000000 0x80000>; + no-memory-wc; cpu_bpmp_tx: sram@70000 { reg = <0x70000 0x1000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/ipq6018-cp01-c1.dts @@ -37,6 +37,8 @@ &spi_0 { cs-select = <0>; + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; status = "okay"; flash@0 { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/ipq6018.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/ipq6018.dtsi @@ -525,9 +525,9 @@ }; timer@b120000 { - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x10000000>; compatible = "arm,armv7-timer-mem"; reg = <0x0 0x0b120000 0x0 0x1000>; @@ -535,49 +535,49 @@ frame-number = <0>; interrupts = , ; - reg = <0x0 0x0b121000 0x0 0x1000>, - <0x0 0x0b122000 0x0 0x1000>; + reg = <0x0b121000 0x1000>, + <0x0b122000 0x1000>; }; frame@b123000 { frame-number = <1>; interrupts = ; - reg = <0x0 0xb123000 0x0 0x1000>; + reg = <0x0b123000 0x1000>; status = "disabled"; }; frame@b124000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x0b124000 0x0 0x1000>; + reg = <0x0b124000 0x1000>; status = "disabled"; }; frame@b125000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x0b125000 0x0 0x1000>; + reg = <0x0b125000 0x1000>; status = "disabled"; }; frame@b126000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x0b126000 0x0 0x1000>; + reg = <0x0b126000 0x1000>; status = "disabled"; }; frame@b127000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x0b127000 0x0 0x1000>; + reg = <0x0b127000 0x1000>; status = "disabled"; }; frame@b128000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x0b128000 0x0 0x1000>; + reg = <0x0b128000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/ipq8074.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/ipq8074.dtsi @@ -195,7 +195,7 @@ pcie_qmp0: phy@86000 { compatible = "qcom,ipq8074-qmp-pcie-phy"; - reg = <0x00086000 0x1000>; + reg = <0x00086000 0x1c4>; #address-cells = <1>; #size-cells = <1>; ranges; @@ -223,7 +223,7 @@ pcie_qmp1: phy@8e000 { compatible = "qcom,ipq8074-qmp-pcie-phy"; - reg = <0x0008e000 0x1000>; + reg = <0x0008e000 0x1c4>; #address-cells = <1>; #size-cells = <1>; ranges; @@ -534,7 +534,7 @@ status = "disabled"; }; - qpic_nand: nand@79b0000 { + qpic_nand: nand-controller@79b0000 { compatible = "qcom,ipq8074-nand"; reg = <0x079b0000 0x10000>; #address-cells = <1>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/msm8916.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/msm8916.dtsi @@ -1329,7 +1329,7 @@ }; mpss: remoteproc@4080000 { - compatible = "qcom,msm8916-mss-pil", "qcom,q6v5-pil"; + compatible = "qcom,msm8916-mss-pil"; reg = <0x04080000 0x100>, <0x04020000 0x040>; @@ -1788,8 +1788,8 @@ <&rpmpd MSM8916_VDDMX>; power-domain-names = "cx", "mx"; - qcom,state = <&wcnss_smp2p_out 0>; - qcom,state-names = "stop"; + qcom,smem-states = <&wcnss_smp2p_out 0>; + qcom,smem-state-names = "stop"; pinctrl-names = "default"; pinctrl-0 = <&wcnss_pin_a>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/msm8994.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/msm8994.dtsi @@ -1074,6 +1074,7 @@ reg = <0xfdd00000 0x2000>, <0xfec00000 0x200000>; reg-names = "ctrl", "mem"; + ranges = <0 0xfec00000 0x200000>; clocks = <&rpmcc RPM_SMD_OCMEMGX_CLK>, <&mmcc OCMEMCX_OCMEMNOC_CLK>; clock-names = "core", "iface"; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/msm8996.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/msm8996.dtsi @@ -142,82 +142,92 @@ /* Nominal fmax for now */ opp-307200000 { opp-hz = /bits/ 64 <307200000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-422400000 { opp-hz = /bits/ 64 <422400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-480000000 { opp-hz = /bits/ 64 <480000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-556800000 { opp-hz = /bits/ 64 <556800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-652800000 { opp-hz = /bits/ 64 <652800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-729600000 { opp-hz = /bits/ 64 <729600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-844800000 { opp-hz = /bits/ 64 <844800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-960000000 { opp-hz = /bits/ 64 <960000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1036800000 { opp-hz = /bits/ 64 <1036800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1113600000 { opp-hz = /bits/ 64 <1113600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1190400000 { opp-hz = /bits/ 64 <1190400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1228800000 { opp-hz = /bits/ 64 <1228800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1324800000 { opp-hz = /bits/ 64 <1324800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x5>; + clock-latency-ns = <200000>; + }; + opp-1363200000 { + opp-hz = /bits/ 64 <1363200000>; + opp-supported-hw = <0x2>; clock-latency-ns = <200000>; }; opp-1401600000 { opp-hz = /bits/ 64 <1401600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x5>; clock-latency-ns = <200000>; }; opp-1478400000 { opp-hz = /bits/ 64 <1478400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; + clock-latency-ns = <200000>; + }; + opp-1497600000 { + opp-hz = /bits/ 64 <1497600000>; + opp-supported-hw = <0x04>; clock-latency-ns = <200000>; }; opp-1593600000 { opp-hz = /bits/ 64 <1593600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; clock-latency-ns = <200000>; }; }; @@ -230,127 +240,137 @@ /* Nominal fmax for now */ opp-307200000 { opp-hz = /bits/ 64 <307200000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-403200000 { opp-hz = /bits/ 64 <403200000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-480000000 { opp-hz = /bits/ 64 <480000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-556800000 { opp-hz = /bits/ 64 <556800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-652800000 { opp-hz = /bits/ 64 <652800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-729600000 { opp-hz = /bits/ 64 <729600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-806400000 { opp-hz = /bits/ 64 <806400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-883200000 { opp-hz = /bits/ 64 <883200000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-940800000 { opp-hz = /bits/ 64 <940800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1036800000 { opp-hz = /bits/ 64 <1036800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1113600000 { opp-hz = /bits/ 64 <1113600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1190400000 { opp-hz = /bits/ 64 <1190400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1248000000 { opp-hz = /bits/ 64 <1248000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1324800000 { opp-hz = /bits/ 64 <1324800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1401600000 { opp-hz = /bits/ 64 <1401600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1478400000 { opp-hz = /bits/ 64 <1478400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1555200000 { opp-hz = /bits/ 64 <1555200000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1632000000 { opp-hz = /bits/ 64 <1632000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1708800000 { opp-hz = /bits/ 64 <1708800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; clock-latency-ns = <200000>; }; opp-1785600000 { opp-hz = /bits/ 64 <1785600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x7>; + clock-latency-ns = <200000>; + }; + opp-1804800000 { + opp-hz = /bits/ 64 <1804800000>; + opp-supported-hw = <0x6>; clock-latency-ns = <200000>; }; opp-1824000000 { opp-hz = /bits/ 64 <1824000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; + clock-latency-ns = <200000>; + }; + opp-1900800000 { + opp-hz = /bits/ 64 <1900800000>; + opp-supported-hw = <0x4>; clock-latency-ns = <200000>; }; opp-1920000000 { opp-hz = /bits/ 64 <1920000000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; clock-latency-ns = <200000>; }; opp-1996800000 { opp-hz = /bits/ 64 <1996800000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; clock-latency-ns = <200000>; }; opp-2073600000 { opp-hz = /bits/ 64 <2073600000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; clock-latency-ns = <200000>; }; opp-2150400000 { opp-hz = /bits/ 64 <2150400000>; - opp-supported-hw = <0x77>; + opp-supported-hw = <0x1>; clock-latency-ns = <200000>; }; }; @@ -609,7 +629,7 @@ <0x00035400 0x1dc>; #phy-cells = <0>; - #clock-cells = <1>; + #clock-cells = <0>; clock-output-names = "pcie_0_pipe_clk_src"; clocks = <&gcc GCC_PCIE_0_PIPE_CLK>; clock-names = "pipe0"; @@ -623,6 +643,7 @@ <0x00036400 0x1dc>; #phy-cells = <0>; + #clock-cells = <0>; clock-output-names = "pcie_1_pipe_clk_src"; clocks = <&gcc GCC_PCIE_1_PIPE_CLK>; clock-names = "pipe1"; @@ -636,6 +657,7 @@ <0x00037400 0x1dc>; #phy-cells = <0>; + #clock-cells = <0>; clock-output-names = "pcie_2_pipe_clk_src"; clocks = <&gcc GCC_PCIE_2_PIPE_CLK>; clock-names = "pipe2"; @@ -1004,17 +1026,17 @@ compatible ="operating-points-v2"; /* - * 624Mhz and 560Mhz are only available on speed - * bin (1 << 0). All the rest are available on - * all bins of the hardware + * 624Mhz is only available on speed bins 0 and 3. + * 560Mhz is only available on speed bins 0, 2 and 3. + * All the rest are available on all bins of the hardware. */ opp-624000000 { opp-hz = /bits/ 64 <624000000>; - opp-supported-hw = <0x01>; + opp-supported-hw = <0x09>; }; opp-560000000 { opp-hz = /bits/ 64 <560000000>; - opp-supported-hw = <0x01>; + opp-supported-hw = <0x0d>; }; opp-510000000 { opp-hz = /bits/ 64 <510000000>; @@ -2769,7 +2791,7 @@ <0x07410600 0x1a8>; #phy-cells = <0>; - #clock-cells = <1>; + #clock-cells = <0>; clock-output-names = "usb3_phy_pipe_clk_src"; clocks = <&gcc GCC_USB3_PHY_PIPE_CLK>; clock-names = "pipe0"; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/msm8996pro.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/msm8996pro.dtsi @@ -0,0 +1,266 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) 2022, Linaro Limited + */ + +#include "msm8996.dtsi" + +/ { + /delete-node/ opp-table-cluster0; + /delete-node/ opp-table-cluster1; + + /* + * On MSM8996 Pro the cpufreq driver shifts speed bins into the high + * nibble of supported hw, so speed bin 0 becomes 0x10, speed bin 1 + * becomes 0x20, speed 2 becomes 0x40. + */ + + cluster0_opp: opp-table-cluster0 { + compatible = "operating-points-v2-kryo-cpu"; + nvmem-cells = <&speedbin_efuse>; + opp-shared; + + opp-307200000 { + opp-hz = /bits/ 64 <307200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-384000000 { + opp-hz = /bits/ 64 <384000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-460800000 { + opp-hz = /bits/ 64 <460800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-537600000 { + opp-hz = /bits/ 64 <537600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-614400000 { + opp-hz = /bits/ 64 <614400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-691200000 { + opp-hz = /bits/ 64 <691200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-768000000 { + opp-hz = /bits/ 64 <768000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-844800000 { + opp-hz = /bits/ 64 <844800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-902400000 { + opp-hz = /bits/ 64 <902400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-979200000 { + opp-hz = /bits/ 64 <979200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1056000000 { + opp-hz = /bits/ 64 <1056000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1132800000 { + opp-hz = /bits/ 64 <1132800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1209600000 { + opp-hz = /bits/ 64 <1209600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1286400000 { + opp-hz = /bits/ 64 <1286400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1363200000 { + opp-hz = /bits/ 64 <1363200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1440000000 { + opp-hz = /bits/ 64 <1440000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1516800000 { + opp-hz = /bits/ 64 <1516800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1593600000 { + opp-hz = /bits/ 64 <1593600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1996800000 { + opp-hz = /bits/ 64 <1996800000>; + opp-supported-hw = <0x20>; + clock-latency-ns = <200000>; + }; + opp-2188800000 { + opp-hz = /bits/ 64 <2188800000>; + opp-supported-hw = <0x10>; + clock-latency-ns = <200000>; + }; + }; + + cluster1_opp: opp-table-cluster1 { + compatible = "operating-points-v2-kryo-cpu"; + nvmem-cells = <&speedbin_efuse>; + opp-shared; + + opp-307200000 { + opp-hz = /bits/ 64 <307200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-384000000 { + opp-hz = /bits/ 64 <384000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-460800000 { + opp-hz = /bits/ 64 <460800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-537600000 { + opp-hz = /bits/ 64 <537600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-614400000 { + opp-hz = /bits/ 64 <614400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-691200000 { + opp-hz = /bits/ 64 <691200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-748800000 { + opp-hz = /bits/ 64 <748800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-825600000 { + opp-hz = /bits/ 64 <825600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-902400000 { + opp-hz = /bits/ 64 <902400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-979200000 { + opp-hz = /bits/ 64 <979200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1056000000 { + opp-hz = /bits/ 64 <1056000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1132800000 { + opp-hz = /bits/ 64 <1132800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1209600000 { + opp-hz = /bits/ 64 <1209600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1286400000 { + opp-hz = /bits/ 64 <1286400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1363200000 { + opp-hz = /bits/ 64 <1363200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1440000000 { + opp-hz = /bits/ 64 <1440000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1516800000 { + opp-hz = /bits/ 64 <1516800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1593600000 { + opp-hz = /bits/ 64 <1593600000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1670400000 { + opp-hz = /bits/ 64 <1670400000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1747200000 { + opp-hz = /bits/ 64 <1747200000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1824000000 { + opp-hz = /bits/ 64 <1824000000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1900800000 { + opp-hz = /bits/ 64 <1900800000>; + opp-supported-hw = <0x70>; + clock-latency-ns = <200000>; + }; + opp-1977600000 { + opp-hz = /bits/ 64 <1977600000>; + opp-supported-hw = <0x30>; + clock-latency-ns = <200000>; + }; + opp-2054400000 { + opp-hz = /bits/ 64 <2054400000>; + opp-supported-hw = <0x30>; + clock-latency-ns = <200000>; + }; + opp-2150400000 { + opp-hz = /bits/ 64 <2150400000>; + opp-supported-hw = <0x30>; + clock-latency-ns = <200000>; + }; + opp-2246400000 { + opp-hz = /bits/ 64 <2246400000>; + opp-supported-hw = <0x10>; + clock-latency-ns = <200000>; + }; + opp-2342400000 { + opp-hz = /bits/ 64 <2342400000>; + opp-supported-hw = <0x10>; + clock-latency-ns = <200000>; + }; + }; +}; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-poplar.dts @@ -26,11 +26,13 @@ }; &vreg_l18a_2p85 { - regulator-min-microvolt = <2850000>; - regulator-max-microvolt = <2850000>; + /* Note: Round-down from 2850000 to be a multiple of PLDO step-size 8000 */ + regulator-min-microvolt = <2848000>; + regulator-max-microvolt = <2848000>; }; &vreg_l22a_2p85 { - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <2700000>; + /* Note: Round-down from 2700000 to be a multiple of PLDO step-size 8000 */ + regulator-min-microvolt = <2696000>; + regulator-max-microvolt = <2696000>; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/pm6350.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/pm6350.dtsi @@ -3,6 +3,7 @@ * Copyright (c) 2021, Luca Weiss */ +#include #include &spmi_bus { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/pm660.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/pm660.dtsi @@ -163,7 +163,7 @@ qcom,pre-scaling = <1 3>; }; - vcoin: vcoin@83 { + vcoin: vcoin@85 { reg = ; qcom,decimation = <1024>; qcom,pre-scaling = <1 3>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/pm8350c.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/pm8350c.dtsi @@ -30,9 +30,8 @@ #interrupt-cells = <2>; }; - pm8350c_pwm: pwm@e800 { + pm8350c_pwm: pwm { compatible = "qcom,pm8350c-pwm"; - reg = <0xe800>; #pwm-cells = <2>; status = "disabled"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/qcs404.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/qcs404.dtsi @@ -548,7 +548,7 @@ compatible = "snps,dwc3"; reg = <0x07580000 0xcd00>; interrupts = ; - phys = <&usb2_phy_sec>, <&usb3_phy>; + phys = <&usb2_phy_prim>, <&usb3_phy>; phy-names = "usb2-phy", "usb3-phy"; snps,has-lpm-erratum; snps,hird-threshold = /bits/ 8 <0x10>; @@ -577,7 +577,7 @@ compatible = "snps,dwc3"; reg = <0x078c0000 0xcc00>; interrupts = ; - phys = <&usb2_phy_prim>; + phys = <&usb2_phy_sec>; phy-names = "usb2-phy"; snps,has-lpm-erratum; snps,hird-threshold = /bits/ 8 <0x10>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sa8155p-adp.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sa8155p-adp.dts @@ -43,7 +43,6 @@ regulator-always-on; regulator-boot-on; - regulator-allow-set-load; vin-supply = <&vreg_3p3>; }; @@ -137,6 +136,9 @@ regulator-max-microvolt = <880000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l7a_1p8: ldo7 { @@ -152,6 +154,9 @@ regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l11a_0p8: ldo11 { @@ -258,6 +263,9 @@ regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l7c_1p8: ldo7 { @@ -273,6 +281,9 @@ regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l10c_3p3: ldo10 { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7180-trogdor-coachz-r1.dts @@ -24,8 +24,6 @@ }; &pm6150_adc { - status = "disabled"; - /delete-node/ skin-temp-thermistor@4e; /delete-node/ charger-thermistor@4f; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7180-trogdor-homestar.dtsi @@ -188,6 +188,12 @@ pins = "gpio49", "gpio50", "gpio51", "gpio52"; function = "mi2s_1"; }; + + pinconf { + pins = "gpio49", "gpio50", "gpio51", "gpio52"; + drive-strength = <2>; + bias-pull-down; + }; }; &ts_reset_l { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7180-trogdor-lazor.dtsi @@ -54,8 +54,6 @@ }; &pm6150_adc { - status = "disabled"; - /delete-node/ charger-thermistor@4f; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7180-trogdor.dtsi @@ -43,6 +43,7 @@ */ /delete-node/ &hyp_mem; +/delete-node/ &ipa_fw_mem; /delete-node/ &xbl_mem; /delete-node/ &aop_mem; /delete-node/ &sec_apps_mem; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7180.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7180.dtsi @@ -3215,7 +3215,7 @@ }; aoss_qmp: power-controller@c300000 { - compatible = "qcom,sc7180-aoss-qmp"; + compatible = "qcom,sc7180-aoss-qmp", "qcom,aoss-qmp"; reg = <0 0x0c300000 0 0x400>; interrupts = ; mboxes = <&apss_shared 0>; @@ -3384,9 +3384,9 @@ }; timer@17c20000{ - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; compatible = "arm,armv7-timer-mem"; reg = <0 0x17c20000 0 0x1000>; @@ -3394,49 +3394,49 @@ frame-number = <0>; interrupts = , ; - reg = <0 0x17c21000 0 0x1000>, - <0 0x17c22000 0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0 0x17c23000 0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0 0x17c25000 0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0 0x17c27000 0 0x1000>; + reg = <0x17c27000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0 0x17c29000 0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0 0x17c2b000 0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0 0x17c2d000 0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7280-herobrine.dtsi @@ -388,7 +388,7 @@ vdd-supply = <&pp1800_prox>; - label = "proximity-wifi-lte0"; + label = "proximity-wifi_cellular-0"; status = "disabled"; }; @@ -404,7 +404,7 @@ vdd-supply = <&pp1800_prox>; - label = "proximity-wifi-lte1"; + label = "proximity-wifi_cellular-1"; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7280-idp.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7280-idp.dts @@ -78,7 +78,7 @@ }; &pmk8350_vadc { - pmr735a_die_temp { + pmr735a-die-temp@403 { reg = ; label = "pmr735a_die_temp"; qcom,pre-scaling = <1 1>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7280-idp.dtsi @@ -264,7 +264,7 @@ }; &pmk8350_vadc { - pmk8350_die_temp { + pmk8350-die-temp@3 { reg = ; label = "pmk8350_die_temp"; qcom,pre-scaling = <1 1>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -818,7 +818,7 @@ reg = <0 0x00100000 0 0x1f0000>; clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, <&sleep_clk>, - <0>, <&pcie1_lane 0>, + <0>, <&pcie1_lane>, <0>, <0>, <0>, <0>; clock-names = "bi_tcxo", "bi_tcxo_ao", "sleep_clk", "pcie_0_pipe_clk", "pcie_1_pipe_clk", @@ -2035,7 +2035,7 @@ clocks = <&gcc GCC_PCIE_1_PIPE_CLK>, <&gcc GCC_PCIE_1_PIPE_CLK_SRC>, - <&pcie1_lane 0>, + <&pcie1_lane>, <&rpmhcc RPMH_CXO_CLK>, <&gcc GCC_PCIE_1_AUX_CLK>, <&gcc GCC_PCIE_1_CFG_AHB_CLK>, @@ -2110,7 +2110,7 @@ clock-names = "pipe0"; #phy-cells = <0>; - #clock-cells = <1>; + #clock-cells = <0>; clock-output-names = "pcie_1_pipe_clk"; }; }; @@ -2168,9 +2168,8 @@ lpasscc: lpasscc@3000000 { compatible = "qcom,sc7280-lpasscc"; reg = <0 0x03000000 0 0x40>, - <0 0x03c04000 0 0x4>, - <0 0x03389000 0 0x24>; - reg-names = "qdsp6ss", "top_cc", "cc"; + <0 0x03c04000 0 0x4>; + reg-names = "qdsp6ss", "top_cc"; clocks = <&gcc GCC_CFG_NOC_LPASS_CLK>; clock-names = "iface"; #clock-cells = <1>; @@ -2178,7 +2177,8 @@ lpass_audiocc: clock-controller@3300000 { compatible = "qcom,sc7280-lpassaudiocc"; - reg = <0 0x03300000 0 0x30000>; + reg = <0 0x03300000 0 0x30000>, + <0 0x032a9000 0 0x1000>; clocks = <&rpmhcc RPMH_CXO_CLK>, <&lpass_aon LPASS_AON_CC_MAIN_RCG_CLK_SRC>; clock-names = "bi_tcxo", "lpass_aon_cc_main_rcg_clk_src"; @@ -2192,13 +2192,13 @@ reg = <0 0x03380000 0 0x30000>; clocks = <&rpmhcc RPMH_CXO_CLK>, <&rpmhcc RPMH_CXO_CLK_A>, - <&lpasscore LPASS_CORE_CC_CORE_CLK>; + <&lpass_core LPASS_CORE_CC_CORE_CLK>; clock-names = "bi_tcxo", "bi_tcxo_ao", "iface"; #clock-cells = <1>; #power-domain-cells = <1>; }; - lpasscore: clock-controller@3900000 { + lpass_core: clock-controller@3900000 { compatible = "qcom,sc7280-lpasscorecc"; reg = <0 0x03900000 0 0x50000>; clocks = <&rpmhcc RPMH_CXO_CLK>; @@ -3843,7 +3843,7 @@ }; aoss_qmp: power-controller@c300000 { - compatible = "qcom,sc7280-aoss-qmp"; + compatible = "qcom,sc7280-aoss-qmp", "qcom,aoss-qmp"; reg = <0 0x0c300000 0 0x400>; interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP @@ -4771,9 +4771,9 @@ }; timer@17c20000 { - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; compatible = "arm,armv7-timer-mem"; reg = <0 0x17c20000 0 0x1000>; @@ -4781,49 +4781,49 @@ frame-number = <0>; interrupts = , ; - reg = <0 0x17c21000 0 0x1000>, - <0 0x17c22000 0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0 0x17c23000 0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0 0x17c25000 0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0 0x17c27000 0 0x1000>; + reg = <0x17c27000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0 0x17c29000 0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0 0x17c2b000 0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0 0x17c2d000 0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm630.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm630.dtsi @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -772,7 +773,7 @@ pins = "gpio17", "gpio18", "gpio19"; function = "gpio"; drive-strength = <2>; - bias-no-pull; + bias-disable; }; }; @@ -1045,11 +1046,13 @@ nvmem-cells = <&gpu_speed_bin>; nvmem-cell-names = "speed_bin"; - interconnects = <&gnoc 1 &bimc 5>; + interconnects = <&bimc MASTER_OXILI &bimc SLAVE_EBI>; interconnect-names = "gfx-mem"; operating-points-v2 = <&gpu_sdm630_opp_table>; + status = "disabled"; + gpu_sdm630_opp_table: opp-table { compatible = "operating-points-v2"; opp-775000000 { @@ -1264,7 +1267,7 @@ #phy-cells = <0>; clocks = <&gcc GCC_USB_PHY_CFG_AHB2PHY_CLK>, - <&gcc GCC_RX1_USB2_CLKREF_CLK>; + <&gcc GCC_RX0_USB2_CLKREF_CLK>; clock-names = "cfg_ahb", "ref"; resets = <&gcc GCC_QUSB2PHY_PRIM_BCR>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm636-sony-xperia-ganges-mermaid.dts @@ -19,7 +19,7 @@ }; &sdc2_state_on { - pinconf-clk { + clk { drive-strength = <14>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi @@ -1304,7 +1304,7 @@ config { pins = "gpio126"; function = "gpio"; - bias-no-pull; + bias-disable; drive-strength = <2>; output-low; }; @@ -1314,7 +1314,7 @@ config { pins = "gpio126"; function = "gpio"; - bias-no-pull; + bias-disable; drive-strength = <2>; output-high; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm845-mtp.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm845-mtp.dts @@ -536,42 +536,42 @@ reg = ; label = "xo_therm"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; adc-chan@4d { reg = ; label = "msm_therm"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; adc-chan@4f { reg = ; label = "pa_therm1"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; adc-chan@51 { reg = ; label = "quiet_therm"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; adc-chan@83 { reg = ; label = "vph_pwr"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; adc-chan@85 { reg = ; label = "vcoin"; qcom,ratiometric; - qcom,hw-settle-time-us = <200>; + qcom,hw-settle-time = <200>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm845-sony-xperia-tama-akatsuki.dts @@ -19,8 +19,9 @@ }; &vreg_l22a_2p8 { - regulator-min-microvolt = <2700000>; - regulator-max-microvolt = <2700000>; + /* Note: Round-down from 2700000 to be a multiple of PLDO step-size 8000 */ + regulator-min-microvolt = <2696000>; + regulator-max-microvolt = <2696000>; }; &vreg_l28a_2p8 { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -4948,9 +4948,9 @@ }; timer@17c90000 { - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; compatible = "arm,armv7-timer-mem"; reg = <0 0x17c90000 0 0x1000>; @@ -4958,49 +4958,49 @@ frame-number = <0>; interrupts = , ; - reg = <0 0x17ca0000 0 0x1000>, - <0 0x17cb0000 0 0x1000>; + reg = <0x17ca0000 0x1000>, + <0x17cb0000 0x1000>; }; frame@17cc0000 { frame-number = <1>; interrupts = ; - reg = <0 0x17cc0000 0 0x1000>; + reg = <0x17cc0000 0x1000>; status = "disabled"; }; frame@17cd0000 { frame-number = <2>; interrupts = ; - reg = <0 0x17cd0000 0 0x1000>; + reg = <0x17cd0000 0x1000>; status = "disabled"; }; frame@17ce0000 { frame-number = <3>; interrupts = ; - reg = <0 0x17ce0000 0 0x1000>; + reg = <0x17ce0000 0x1000>; status = "disabled"; }; frame@17cf0000 { frame-number = <4>; interrupts = ; - reg = <0 0x17cf0000 0 0x1000>; + reg = <0x17cf0000 0x1000>; status = "disabled"; }; frame@17d00000 { frame-number = <5>; interrupts = ; - reg = <0 0x17d00000 0 0x1000>; + reg = <0x17d00000 0x1000>; status = "disabled"; }; frame@17d10000 { frame-number = <6>; interrupts = ; - reg = <0 0x17d10000 0 0x1000>; + reg = <0x17d10000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm6125-sony-xperia-seine-pdx201.dts @@ -88,11 +88,19 @@ status = "okay"; }; -&sdc2_state_off { +&sdc2_off_state { sd-cd { pins = "gpio98"; + drive-strength = <2>; bias-disable; + }; +}; + +&sdc2_on_state { + sd-cd { + pins = "gpio98"; drive-strength = <2>; + bias-pull-up; }; }; @@ -102,32 +110,6 @@ &tlmm { gpio-reserved-ranges = <22 2>, <28 6>; - - sdc2_state_on: sdc2-on { - clk { - pins = "sdc2_clk"; - bias-disable; - drive-strength = <16>; - }; - - cmd { - pins = "sdc2_cmd"; - bias-pull-up; - drive-strength = <10>; - }; - - data { - pins = "sdc2_data"; - bias-pull-up; - drive-strength = <10>; - }; - - sd-cd { - pins = "gpio98"; - bias-pull-up; - drive-strength = <2>; - }; - }; }; &usb3 { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm6125.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm6125.dtsi @@ -386,23 +386,43 @@ interrupt-controller; #interrupt-cells = <2>; - sdc2_state_off: sdc2-off { + sdc2_off_state: sdc2-off-state { clk { pins = "sdc2_clk"; - bias-disable; drive-strength = <2>; + bias-disable; }; cmd { pins = "sdc2_cmd"; + drive-strength = <2>; bias-pull-up; + }; + + data { + pins = "sdc2_data"; drive-strength = <2>; + bias-pull-up; + }; + }; + + sdc2_on_state: sdc2-on-state { + clk { + pins = "sdc2_clk"; + drive-strength = <16>; + bias-disable; + }; + + cmd { + pins = "sdc2_cmd"; + drive-strength = <10>; + bias-pull-up; }; data { pins = "sdc2_data"; + drive-strength = <10>; bias-pull-up; - drive-strength = <2>; }; }; }; @@ -438,7 +458,7 @@ sdhc_1: sdhci@4744000 { compatible = "qcom,sm6125-sdhci", "qcom,sdhci-msm-v5"; reg = <0x04744000 0x1000>, <0x04745000 0x1000>; - reg-names = "hc", "core"; + reg-names = "hc", "cqhci"; interrupts = , ; @@ -470,8 +490,8 @@ <&xo_board>; clock-names = "iface", "core", "xo"; - pinctrl-0 = <&sdc2_state_on>; - pinctrl-1 = <&sdc2_state_off>; + pinctrl-0 = <&sdc2_on_state>; + pinctrl-1 = <&sdc2_off_state>; pinctrl-names = "default", "sleep"; power-domains = <&rpmpd SM6125_VDDCX>; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm6350.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm6350.dtsi @@ -1005,15 +1005,11 @@ dp_phy: dp-phy@88ea200 { reg = <0 0x088ea200 0 0x200>, <0 0x088ea400 0 0x200>, - <0 0x088eac00 0 0x400>, + <0 0x088eaa00 0 0x200>, <0 0x088ea600 0 0x200>, - <0 0x088ea800 0 0x200>, - <0 0x088eaa00 0 0x100>; + <0 0x088ea800 0 0x200>; #phy-cells = <0>; #clock-cells = <1>; - clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; - clock-names = "pipe0"; - clock-output-names = "usb3_phy_pipe_clk_src"; }; }; @@ -1304,57 +1300,57 @@ compatible = "arm,armv7-timer-mem"; reg = <0x0 0x17c20000 0x0 0x1000>; clock-frequency = <19200000>; - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; frame@17c21000 { frame-number = <0>; interrupts = , ; - reg = <0x0 0x17c21000 0x0 0x1000>, - <0x0 0x17c22000 0x0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0x0 0x17c23000 0x0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x17c25000 0x0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x17c27000 0x0 0x1000>; + reg = <0x17c27000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x17c29000 0x0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x17c2b000 0x0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x17c2d000 0x0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8150-sony-xperia-kumano.dtsi @@ -348,6 +348,9 @@ regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l7c_3p0: ldo7 { @@ -367,6 +370,9 @@ regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l10c_3p3: ldo10 { --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8150.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8150.dtsi @@ -2038,11 +2038,11 @@ status = "disabled"; ufs_mem_phy_lanes: phy@1d87400 { - reg = <0 0x01d87400 0 0x108>, - <0 0x01d87600 0 0x1e0>, - <0 0x01d87c00 0 0x1dc>, - <0 0x01d87800 0 0x108>, - <0 0x01d87a00 0 0x1e0>; + reg = <0 0x01d87400 0 0x16c>, + <0 0x01d87600 0 0x200>, + <0 0x01d87c00 0 0x200>, + <0 0x01d87800 0 0x16c>, + <0 0x01d87a00 0 0x200>; #phy-cells = <0>; }; }; @@ -3718,7 +3718,7 @@ }; aoss_qmp: power-controller@c300000 { - compatible = "qcom,sm8150-aoss-qmp"; + compatible = "qcom,sm8150-aoss-qmp", "qcom,aoss-qmp"; reg = <0x0 0x0c300000 0x0 0x400>; interrupts = ; mboxes = <&apss_shared 0>; @@ -3944,9 +3944,9 @@ }; timer@17c20000 { - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; compatible = "arm,armv7-timer-mem"; reg = <0x0 0x17c20000 0x0 0x1000>; clock-frequency = <19200000>; @@ -3955,49 +3955,49 @@ frame-number = <0>; interrupts = , ; - reg = <0x0 0x17c21000 0x0 0x1000>, - <0x0 0x17c22000 0x0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0x0 0x17c23000 0x0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x17c25000 0x0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x17c26000 0x0 0x1000>; + reg = <0x17c26000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x17c29000 0x0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x17c2b000 0x0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x17c2d000 0x0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo.dtsi @@ -317,6 +317,9 @@ regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l7c_2p85: ldo7 { @@ -339,6 +342,9 @@ regulator-max-microvolt = <2960000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l10c_3p3: ldo10 { @@ -613,7 +619,7 @@ pins = "gpio39"; function = "gpio"; drive-strength = <2>; - bias-disabled; + bias-disable; input-enable; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8250.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8250.dtsi @@ -332,6 +332,7 @@ exit-latency-us = <6562>; min-residency-us = <9987>; local-timer-stop; + status = "disabled"; }; }; }; @@ -1884,6 +1885,8 @@ clock-names = "pipe0"; #phy-cells = <0>; + + #clock-cells = <0>; clock-output-names = "pcie_0_pipe_clk"; }; }; @@ -1990,6 +1993,8 @@ clock-names = "pipe0"; #phy-cells = <0>; + + #clock-cells = <0>; clock-output-names = "pcie_1_pipe_clk"; }; }; @@ -2096,6 +2101,8 @@ clock-names = "pipe0"; #phy-cells = <0>; + + #clock-cells = <0>; clock-output-names = "pcie_2_pipe_clk"; }; }; @@ -2163,11 +2170,11 @@ status = "disabled"; ufs_mem_phy_lanes: phy@1d87400 { - reg = <0 0x01d87400 0 0x108>, - <0 0x01d87600 0 0x1e0>, - <0 0x01d87c00 0 0x1dc>, - <0 0x01d87800 0 0x108>, - <0 0x01d87a00 0 0x1e0>; + reg = <0 0x01d87400 0 0x16c>, + <0 0x01d87600 0 0x200>, + <0 0x01d87c00 0 0x200>, + <0 0x01d87800 0 0x16c>, + <0 0x01d87a00 0 0x200>; #phy-cells = <0>; }; }; @@ -2438,7 +2445,7 @@ pins = "gpio7"; function = "dmic1_data"; drive-strength = <2>; - pull-down; + bias-pull-down; input-enable; }; }; @@ -2875,15 +2882,11 @@ dp_phy: dp-phy@88ea200 { reg = <0 0x088ea200 0 0x200>, <0 0x088ea400 0 0x200>, - <0 0x088eac00 0 0x400>, + <0 0x088eaa00 0 0x200>, <0 0x088ea600 0 0x200>, - <0 0x088ea800 0 0x200>, - <0 0x088eaa00 0 0x100>; + <0 0x088ea800 0 0x200>; #phy-cells = <0>; #clock-cells = <1>; - clocks = <&gcc GCC_USB3_PRIM_PHY_PIPE_CLK>; - clock-names = "pipe0"; - clock-output-names = "usb3_phy_pipe_clk_src"; }; }; @@ -3734,7 +3737,7 @@ }; aoss_qmp: power-controller@c300000 { - compatible = "qcom,sm8250-aoss-qmp"; + compatible = "qcom,sm8250-aoss-qmp", "qcom,aoss-qmp"; reg = <0 0x0c300000 0 0x400>; interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP @@ -4867,9 +4870,9 @@ }; timer@17c20000 { - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; compatible = "arm,armv7-timer-mem"; reg = <0x0 0x17c20000 0x0 0x1000>; clock-frequency = <19200000>; @@ -4878,49 +4881,49 @@ frame-number = <0>; interrupts = , ; - reg = <0x0 0x17c21000 0x0 0x1000>, - <0x0 0x17c22000 0x0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0x0 0x17c23000 0x0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x17c25000 0x0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x17c27000 0x0 0x1000>; + reg = <0x17c27000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x17c29000 0x0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x17c2b000 0x0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x17c2d000 0x0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8350-hdk.dts +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8350-hdk.dts @@ -107,6 +107,9 @@ regulator-max-microvolt = <888000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l6b_1p2: ldo6 { @@ -115,6 +118,9 @@ regulator-max-microvolt = <1208000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l7b_2p96: ldo7 { @@ -123,6 +129,9 @@ regulator-max-microvolt = <2504000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; vreg_l9b_1p2: ldo9 { @@ -131,6 +140,9 @@ regulator-max-microvolt = <1200000>; regulator-initial-mode = ; regulator-allow-set-load; + regulator-allowed-modes = + ; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi @@ -223,7 +223,7 @@ gpio-reserved-ranges = <44 4>; ts_int_default: ts-int-default { - pin = "gpio23"; + pins = "gpio23"; function = "gpio"; drive-strength = <2>; bias-disable; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8350.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8350.dtsi @@ -1718,7 +1718,7 @@ }; aoss_qmp: power-controller@c300000 { - compatible = "qcom,sm8350-aoss-qmp"; + compatible = "qcom,sm8350-aoss-qmp", "qcom,aoss-qmp"; reg = <0 0x0c300000 0 0x400>; interrupts-extended = <&ipcc IPCC_CLIENT_AOP IPCC_MPROC_SIGNAL_GLINK_QMP IRQ_TYPE_EDGE_RISING>; @@ -1933,9 +1933,9 @@ timer@17c20000 { compatible = "arm,armv7-timer-mem"; - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; reg = <0x0 0x17c20000 0x0 0x1000>; clock-frequency = <19200000>; @@ -1943,49 +1943,49 @@ frame-number = <0>; interrupts = , ; - reg = <0x0 0x17c21000 0x0 0x1000>, - <0x0 0x17c22000 0x0 0x1000>; + reg = <0x17c21000 0x1000>, + <0x17c22000 0x1000>; }; frame@17c23000 { frame-number = <1>; interrupts = ; - reg = <0x0 0x17c23000 0x0 0x1000>; + reg = <0x17c23000 0x1000>; status = "disabled"; }; frame@17c25000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x17c25000 0x0 0x1000>; + reg = <0x17c25000 0x1000>; status = "disabled"; }; frame@17c27000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x17c27000 0x0 0x1000>; + reg = <0x17c27000 0x1000>; status = "disabled"; }; frame@17c29000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x17c29000 0x0 0x1000>; + reg = <0x17c29000 0x1000>; status = "disabled"; }; frame@17c2b000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x17c2b000 0x0 0x1000>; + reg = <0x17c2b000 0x1000>; status = "disabled"; }; frame@17c2d000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x17c2d000 0x0 0x1000>; + reg = <0x17c2d000 0x1000>; status = "disabled"; }; }; @@ -2128,7 +2128,7 @@ ufs_mem_phy: phy@1d87000 { compatible = "qcom,sm8350-qmp-ufs-phy"; - reg = <0 0x01d87000 0 0xe10>; + reg = <0 0x01d87000 0 0x1c4>; #address-cells = <2>; #size-cells = <2>; ranges; @@ -2142,11 +2142,11 @@ status = "disabled"; ufs_mem_phy_lanes: phy@1d87400 { - reg = <0 0x01d87400 0 0x108>, - <0 0x01d87600 0 0x1e0>, - <0 0x01d87c00 0 0x1dc>, - <0 0x01d87800 0 0x108>, - <0 0x01d87a00 0 0x1e0>; + reg = <0 0x01d87400 0 0x188>, + <0 0x01d87600 0 0x200>, + <0 0x01d87c00 0 0x200>, + <0 0x01d87800 0 0x188>, + <0 0x01d87a00 0 0x200>; #phy-cells = <0>; #clock-cells = <0>; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/qcom/sm8450.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/qcom/sm8450.dtsi @@ -2867,9 +2867,9 @@ timer@17420000 { compatible = "arm,armv7-timer-mem"; - #address-cells = <2>; - #size-cells = <2>; - ranges; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0x20000000>; reg = <0x0 0x17420000 0x0 0x1000>; clock-frequency = <19200000>; @@ -2877,49 +2877,49 @@ frame-number = <0>; interrupts = , ; - reg = <0x0 0x17421000 0x0 0x1000>, - <0x0 0x17422000 0x0 0x1000>; + reg = <0x17421000 0x1000>, + <0x17422000 0x1000>; }; frame@17423000 { frame-number = <1>; interrupts = ; - reg = <0x0 0x17423000 0x0 0x1000>; + reg = <0x17423000 0x1000>; status = "disabled"; }; frame@17425000 { frame-number = <2>; interrupts = ; - reg = <0x0 0x17425000 0x0 0x1000>; + reg = <0x17425000 0x1000>; status = "disabled"; }; frame@17427000 { frame-number = <3>; interrupts = ; - reg = <0x0 0x17427000 0x0 0x1000>; + reg = <0x17427000 0x1000>; status = "disabled"; }; frame@17429000 { frame-number = <4>; interrupts = ; - reg = <0x0 0x17429000 0x0 0x1000>; + reg = <0x17429000 0x1000>; status = "disabled"; }; frame@1742b000 { frame-number = <5>; interrupts = ; - reg = <0x0 0x1742b000 0x0 0x1000>; + reg = <0x1742b000 0x1000>; status = "disabled"; }; frame@1742d000 { frame-number = <6>; interrupts = ; - reg = <0x0 0x1742d000 0x0 0x1000>; + reg = <0x1742d000 0x1000>; status = "disabled"; }; }; @@ -3082,7 +3082,7 @@ ufs_mem_phy: phy@1d87000 { compatible = "qcom,sm8450-qmp-ufs-phy"; - reg = <0 0x01d87000 0 0xe10>; + reg = <0 0x01d87000 0 0x1c4>; #address-cells = <2>; #size-cells = <2>; ranges; @@ -3096,11 +3096,11 @@ status = "disabled"; ufs_mem_phy_lanes: phy@1d87400 { - reg = <0 0x01d87400 0 0x108>, - <0 0x01d87600 0 0x1e0>, - <0 0x01d87c00 0 0x1dc>, - <0 0x01d87800 0 0x108>, - <0 0x01d87a00 0 0x1e0>; + reg = <0 0x01d87400 0 0x188>, + <0 0x01d87600 0 0x200>, + <0 0x01d87c00 0 0x200>, + <0 0x01d87800 0 0x188>, + <0 0x01d87a00 0 0x200>; #phy-cells = <0>; #clock-cells = <0>; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/beacon-renesom-baseboard.dtsi @@ -146,7 +146,7 @@ }; }; - reg_audio: regulator_audio { + reg_audio: regulator-audio { compatible = "regulator-fixed"; regulator-name = "audio-1.8V"; regulator-min-microvolt = <1800000>; @@ -174,7 +174,7 @@ vin-supply = <®_lcd>; }; - reg_cam0: regulator_camera { + reg_cam0: regulator-cam0 { compatible = "regulator-fixed"; regulator-name = "reg_cam0"; regulator-min-microvolt = <1800000>; @@ -183,7 +183,7 @@ enable-active-high; }; - reg_cam1: regulator_camera { + reg_cam1: regulator-cam1 { compatible = "regulator-fixed"; regulator-name = "reg_cam1"; regulator-min-microvolt = <1800000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r8a774c0.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r8a774c0.dtsi @@ -1952,7 +1952,7 @@ cpu-thermal { polling-delay-passive = <250>; polling-delay = <0>; - thermal-sensors = <&thermal 0>; + thermal-sensors = <&thermal>; sustainable-power = <717>; cooling-maps { --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r8a77990.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r8a77990.dtsi @@ -2129,7 +2129,7 @@ cpu-thermal { polling-delay-passive = <250>; polling-delay = <0>; - thermal-sensors = <&thermal 0>; + thermal-sensors = <&thermal>; sustainable-power = <717>; cooling-maps { --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r8a779g0.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r8a779g0.dtsi @@ -85,9 +85,9 @@ "renesas,rcar-gen4-hscif", "renesas,hscif"; reg = <0 0xe6540000 0 96>; - interrupts = ; + interrupts = ; clocks = <&cpg CPG_MOD 514>, - <&cpg CPG_CORE R8A779G0_CLK_S0D3_PER>, + <&cpg CPG_CORE R8A779G0_CLK_SASYNCPERD1>, <&scif_clk>; clock-names = "fck", "brg_int", "scif_clk"; power-domains = <&sysc R8A779G0_PD_ALWAYS_ON>; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r8a779m8.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r8a779m8.dtsi @@ -10,3 +10,8 @@ / { compatible = "renesas,r8a779m8", "renesas,r8a7795"; }; + +&cluster0_opp { + /delete-node/ opp-1600000000; + /delete-node/ opp-1700000000; +}; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r9a07g043.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r9a07g043.dtsi @@ -334,8 +334,8 @@ compatible = "renesas,r9a07g043-sci", "renesas,sci"; reg = <0 0x1004d000 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G043_SCI0_CLKP>; @@ -349,8 +349,8 @@ compatible = "renesas,r9a07g043-sci", "renesas,sci"; reg = <0 0x1004d400 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G043_SCI1_CLKP>; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r9a07g044.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r9a07g044.dtsi @@ -394,8 +394,8 @@ compatible = "renesas,r9a07g044-sci", "renesas,sci"; reg = <0 0x1004d000 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G044_SCI0_CLKP>; @@ -409,8 +409,8 @@ compatible = "renesas,r9a07g044-sci", "renesas,sci"; reg = <0 0x1004d400 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G044_SCI1_CLKP>; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r9a07g054.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r9a07g054.dtsi @@ -399,8 +399,8 @@ compatible = "renesas,r9a07g054-sci", "renesas,sci"; reg = <0 0x1004d000 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G054_SCI0_CLKP>; @@ -414,8 +414,8 @@ compatible = "renesas,r9a07g054-sci", "renesas,sci"; reg = <0 0x1004d400 0 0x400>; interrupts = , - , - , + , + , ; interrupt-names = "eri", "rxi", "txi", "tei"; clocks = <&cpg CPG_MOD R9A07G054_SCI1_CLKP>; --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r9a07g054l2-smarc.dts @@ -1,6 +1,6 @@ // SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) /* - * Device Tree Source for the RZ/G2L SMARC EVK board + * Device Tree Source for the RZ/V2L SMARC EVK board * * Copyright (C) 2021 Renesas Electronics Corp. */ --- linux-5.19.0.orig/arch/arm64/boot/dts/renesas/r9a09g011.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/renesas/r9a09g011.dtsi @@ -48,7 +48,7 @@ #size-cells = <2>; ranges; - gic: interrupt-controller@82000000 { + gic: interrupt-controller@82010000 { compatible = "arm,gic-400"; #interrupt-cells = <3>; #address-cells = <0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core.dtsi @@ -2,8 +2,8 @@ /* * Copyright (c) 2020 Fuzhou Rockchip Electronics Co., Ltd * Copyright (c) 2020 Engicam srl - * Copyright (c) 2020 Amarula Solutons - * Copyright (c) 2020 Amarula Solutons(India) + * Copyright (c) 2020 Amarula Solutions + * Copyright (c) 2020 Amarula Solutions(India) */ #include --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/px30-evb.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/px30-evb.dts @@ -30,31 +30,31 @@ keyup-threshold-microvolt = <1800000>; poll-interval = <100>; - esc-key { + button-esc { label = "esc"; linux,code = ; press-threshold-microvolt = <1310000>; }; - home-key { + button-home { label = "home"; linux,code = ; press-threshold-microvolt = <624000>; }; - menu-key { + button-menu { label = "menu"; linux,code = ; press-threshold-microvolt = <987000>; }; - vol-down-key { + button-down { label = "volume down"; linux,code = ; press-threshold-microvolt = <300000>; }; - vol-up-key { + button-up { label = "volume up"; linux,code = ; press-threshold-microvolt = <17000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3308-evb.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3308-evb.dts @@ -23,7 +23,7 @@ poll-interval = <100>; keyup-threshold-microvolt = <1800000>; - func-key { + button-func { linux,code = ; label = "function"; press-threshold-microvolt = <18000>; @@ -37,31 +37,31 @@ poll-interval = <100>; keyup-threshold-microvolt = <1800000>; - esc-key { + button-esc { linux,code = ; label = "micmute"; press-threshold-microvolt = <1130000>; }; - home-key { + button-home { linux,code = ; label = "mode"; press-threshold-microvolt = <901000>; }; - menu-key { + button-menu { linux,code = ; label = "play"; press-threshold-microvolt = <624000>; }; - vol-down-key { + button-down { linux,code = ; label = "volume down"; press-threshold-microvolt = <300000>; }; - vol-up-key { + button-up { linux,code = ; label = "volume up"; press-threshold-microvolt = <18000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3308-roc-cc.dts @@ -19,7 +19,7 @@ stdout-path = "serial2:1500000n8"; }; - ir_rx { + ir-receiver { compatible = "gpio-ir-receiver"; gpios = <&gpio0 RK_PC0 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3318-a95x-z2.dts @@ -25,7 +25,7 @@ keyup-threshold-microvolt = <1800000>; poll-interval = <100>; - recovery { + button-recovery { label = "recovery"; linux,code = ; press-threshold-microvolt = <17000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3368-orion-r68-meta.dts @@ -208,7 +208,7 @@ vin-supply = <&vcc_sys>; }; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3368-r88.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3368-r88.dts @@ -192,7 +192,7 @@ vin-supply = <&vcc_sys>; }; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-gru-bob.dts @@ -88,3 +88,8 @@ }; }; }; + +&wlan_host_wake_l { + /* Kevin has an external pull up, but Bob does not. */ + rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>; +}; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-gru-chromebook.dtsi @@ -244,6 +244,14 @@ &edp { status = "okay"; + /* + * eDP PHY/clk don't sync reliably at anything other than 24 MHz. Only + * set this here, because rk3399-gru.dtsi ensures we can generate this + * off GPLL=600MHz, whereas some other RK3399 boards may not. + */ + assigned-clocks = <&cru PCLK_EDP>; + assigned-clock-rates = <24000000>; + ports { edp_out: port@1 { reg = <1>; @@ -578,6 +586,7 @@ }; wlan_host_wake_l: wlan-host-wake-l { + /* Kevin has an external pull up, but Bob does not */ rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi @@ -123,7 +123,7 @@ keyup-threshold-microvolt = <1800000>; poll-interval = <100>; - recovery { + button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <18000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts @@ -39,7 +39,7 @@ keyup-threshold-microvolt = <1800000>; poll-interval = <100>; - recovery { + button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <18000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-nanopi-m4b.dts @@ -19,7 +19,7 @@ keyup-threshold-microvolt = <1500000>; poll-interval = <100>; - recovery { + button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <18000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts @@ -52,13 +52,13 @@ press-threshold-microvolt = <300000>; }; - back { + button-back { label = "Back"; linux,code = ; press-threshold-microvolt = <985000>; }; - menu { + button-menu { label = "Menu"; linux,code = ; press-threshold-microvolt = <1314000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts @@ -207,7 +207,7 @@ cap-sd-highspeed; cd-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_LOW>; disable-wp; - max-frequency = <150000000>; + max-frequency = <40000000>; pinctrl-names = "default"; pinctrl-0 = <&sdmmc_clk &sdmmc_cmd &sdmmc_cd &sdmmc_bus4>; vmmc-supply = <&vcc3v3_baseboard>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi @@ -62,7 +62,6 @@ vcc5v0_host: vcc5v0-host-regulator { compatible = "regulator-fixed"; gpio = <&gpio4 RK_PA3 GPIO_ACTIVE_LOW>; - enable-active-low; pinctrl-names = "default"; pinctrl-0 = <&vcc5v0_host_en>; regulator-name = "vcc5v0_host"; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-roc-pc-plus.dts @@ -98,7 +98,7 @@ }; &i2c0 { - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; interrupt-parent = <&gpio0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-roc-pc.dtsi @@ -41,7 +41,7 @@ keyup-threshold-microvolt = <1500000>; poll-interval = <100>; - recovery { + button-recovery { label = "Recovery"; linux,code = ; press-threshold-microvolt = <18000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-rock-pi-4.dtsi @@ -491,7 +491,6 @@ &i2s1 { rockchip,playback-channels = <2>; rockchip,capture-channels = <2>; - status = "okay"; }; &i2s2 { --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399-sapphire-excavator.dts @@ -33,13 +33,13 @@ press-threshold-microvolt = <300000>; }; - back { + button-back { label = "Back"; linux,code = ; press-threshold-microvolt = <985000>; }; - menu { + button-menu { label = "Menu"; linux,code = ; press-threshold-microvolt = <1314000>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3399pro-vmarc-som.dtsi @@ -297,7 +297,7 @@ clock-frequency = <400000>; status = "okay"; - hym8563: hym8563@51 { + hym8563: rtc@51 { compatible = "haoyu,hym8563"; reg = <0x51>; #clock-cells = <0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3566-pinenote.dtsi @@ -23,7 +23,7 @@ io-channel-names = "buttons"; keyup-threshold-microvolt = <1750000>; - recovery { + button-recovery { label = "recovery"; linux,code = ; press-threshold-microvolt = <0>; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3566-quartz64-a.dts @@ -163,7 +163,6 @@ vcc3v3_sd: vcc3v3_sd { compatible = "regulator-fixed"; - enable-active-low; gpio = <&gpio0 RK_PA5 GPIO_ACTIVE_LOW>; pinctrl-names = "default"; pinctrl-0 = <&vcc_sd_h>; @@ -644,7 +643,7 @@ &uart1 { pinctrl-names = "default"; - pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn>; + pinctrl-0 = <&uart1m0_xfer &uart1m0_ctsn &uart1m0_rtsn>; status = "okay"; uart-has-rtscts; @@ -652,13 +651,14 @@ compatible = "brcm,bcm43438-bt"; clocks = <&rk817 1>; clock-names = "lpo"; - device-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; - host-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; + host-wakeup-gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; + device-wakeup-gpios = <&gpio2 RK_PC0 GPIO_ACTIVE_HIGH>; shutdown-gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; pinctrl-names = "default"; pinctrl-0 = <&bt_host_wake_l &bt_wake_l &bt_enable_h>; vbat-supply = <&vcc_sys>; vddio-supply = <&vcca1v8_pmu>; + max-speed = <3000000>; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3566-quartz64-b.dts @@ -176,7 +176,7 @@ compatible = "rockchip,rk809"; reg = <0x20>; interrupt-parent = <&gpio0>; - interrupts = ; + interrupts = ; clock-output-names = "rk808-clkout1", "rk808-clkout2"; pinctrl-names = "default"; @@ -506,7 +506,7 @@ disable-wp; pinctrl-names = "default"; pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>; - sd-uhs-sdr104; + sd-uhs-sdr50; vmmc-supply = <&vcc3v3_sd>; vqmmc-supply = <&vccio_sd>; status = "okay"; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3566-roc-pc.dts @@ -130,7 +130,7 @@ assigned-clocks = <&cru SCLK_GMAC1_RX_TX>, <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>; assigned-clock-parents = <&cru SCLK_GMAC1_RGMII_SPEED>, <&cru SCLK_GMAC1>, <&gmac1_clkin>; clock_in_out = "input"; - phy-mode = "rgmii-id"; + phy-mode = "rgmii"; phy-supply = <&vcc_3v3>; pinctrl-names = "default"; pinctrl-0 = <&gmac1m0_miim @@ -397,11 +397,7 @@ &i2c3 { pinctrl-names = "default"; - pinctrl-0 = <&i2c3m1_xfer>; - status = "okay"; -}; - -&i2c5 { + pinctrl-0 = <&i2c3m0_xfer>; status = "okay"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3568-bpi-r2-pro.dts @@ -558,7 +558,7 @@ }; &usb_host0_xhci { - extcon = <&usb2phy0>; + dr_mode = "host"; status = "okay"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3568-evb1-v10.dts @@ -618,7 +618,7 @@ }; &usb2phy0_otg { - vbus-supply = <&vcc5v0_usb_otg>; + phy-supply = <&vcc5v0_usb_otg>; status = "okay"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts +++ linux-5.19.0/arch/arm64/boot/dts/rockchip/rk3568-rock-3a.dts @@ -543,7 +543,7 @@ }; &usb2phy0_otg { - vbus-supply = <&vcc5v0_usb_otg>; + phy-supply = <&vcc5v0_usb_otg>; status = "okay"; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi @@ -599,8 +599,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65a00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 134 4>, <0 135 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 134 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>; clock-names = "ref", "bus_early", "suspend"; @@ -701,8 +701,8 @@ compatible = "socionext,uniphier-dwc3", "snps,dwc3"; status = "disabled"; reg = <0x65c00000 0xcd00>; - interrupt-names = "host", "peripheral"; - interrupts = <0 137 4>, <0 138 4>; + interrupt-names = "dwc_usb3"; + interrupts = <0 137 4>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>; clock-names = "ref", "bus_early", "suspend"; --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-am65-main.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-am65-main.dtsi @@ -120,7 +120,6 @@ dmas = <&main_udmap 0xc000>, <&main_udmap 0x4000>, <&main_udmap 0x4001>; dma-names = "tx", "rx1", "rx2"; - dma-coherent; rng: rng@4e10000 { compatible = "inside-secure,safexcel-eip76"; --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-j7200-common-proc-board.dts @@ -134,15 +134,17 @@ >; }; - main_usbss0_pins_default: main-usbss0-pins-default { + vdd_sd_dv_pins_default: vdd-sd-dv-pins-default { pinctrl-single,pins = < - J721E_IOPAD(0x120, PIN_OUTPUT, 0) /* (T4) USB0_DRVVBUS */ + J721E_IOPAD(0xd0, PIN_OUTPUT, 7) /* (T5) SPI0_D1.GPIO0_55 */ >; }; +}; - vdd_sd_dv_pins_default: vdd-sd-dv-pins-default { +&main_pmx1 { + main_usbss0_pins_default: main-usbss0-pins-default { pinctrl-single,pins = < - J721E_IOPAD(0xd0, PIN_OUTPUT, 7) /* (T5) SPI0_D1.GPIO0_55 */ + J721E_IOPAD(0x04, PIN_OUTPUT, 0) /* (T4) USB0_DRVVBUS */ >; }; }; --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-j7200-main.dtsi @@ -295,7 +295,16 @@ main_pmx0: pinctrl@11c000 { compatible = "pinctrl-single"; /* Proxy 0 addressing */ - reg = <0x00 0x11c000 0x00 0x2b4>; + reg = <0x00 0x11c000 0x00 0x10c>; + #pinctrl-cells = <1>; + pinctrl-single,register-width = <32>; + pinctrl-single,function-mask = <0xffffffff>; + }; + + main_pmx1: pinctrl@11c11c { + compatible = "pinctrl-single"; + /* Proxy 0 addressing */ + reg = <0x00 0x11c11c 0x00 0xc>; #pinctrl-cells = <1>; pinctrl-single,register-width = <32>; pinctrl-single,function-mask = <0xffffffff>; --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-j721e-main.dtsi @@ -337,7 +337,6 @@ dmas = <&main_udmap 0xc000>, <&main_udmap 0x4000>, <&main_udmap 0x4001>; dma-names = "tx", "rx1", "rx2"; - dma-coherent; rng: rng@4e10000 { compatible = "inside-secure,safexcel-eip76"; --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-j721s2-main.dtsi @@ -60,7 +60,7 @@ #interrupt-cells = <1>; ti,sci = <&sms>; ti,sci-dev-id = <148>; - ti,interrupt-ranges = <8 360 56>; + ti,interrupt-ranges = <8 392 56>; }; main_pmx0: pinctrl@11c000 { --- linux-5.19.0.orig/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi +++ linux-5.19.0/arch/arm64/boot/dts/ti/k3-j721s2-mcu-wakeup.dtsi @@ -65,7 +65,7 @@ #interrupt-cells = <1>; ti,sci = <&sms>; ti,sci-dev-id = <125>; - ti,interrupt-ranges = <16 928 16>; + ti,interrupt-ranges = <16 960 16>; }; mcu_conf: syscon@40f00000 { --- linux-5.19.0.orig/arch/arm64/crypto/Kconfig +++ linux-5.19.0/arch/arm64/crypto/Kconfig @@ -71,6 +71,7 @@ select CRYPTO_HASH select CRYPTO_GF128MUL select CRYPTO_LIB_AES + select CRYPTO_AEAD config CRYPTO_CRCT10DIF_ARM64_CE tristate "CRCT10DIF digest algorithm using PMULL instructions" --- linux-5.19.0.orig/arch/arm64/crypto/poly1305-glue.c +++ linux-5.19.0/arch/arm64/crypto/poly1305-glue.c @@ -52,7 +52,7 @@ { if (unlikely(!dctx->sset)) { if (!dctx->rset) { - poly1305_init_arch(dctx, src); + poly1305_init_arm64(&dctx->h, src); src += POLY1305_BLOCK_SIZE; len -= POLY1305_BLOCK_SIZE; dctx->rset = 1; --- linux-5.19.0.orig/arch/arm64/include/asm/cputype.h +++ linux-5.19.0/arch/arm64/include/asm/cputype.h @@ -41,7 +41,7 @@ (((midr) & MIDR_IMPLEMENTOR_MASK) >> MIDR_IMPLEMENTOR_SHIFT) #define MIDR_CPU_MODEL(imp, partnum) \ - (((imp) << MIDR_IMPLEMENTOR_SHIFT) | \ + ((_AT(u32, imp) << MIDR_IMPLEMENTOR_SHIFT) | \ (0xf << MIDR_ARCHITECTURE_SHIFT) | \ ((partnum) << MIDR_PARTNUM_SHIFT)) @@ -60,6 +60,7 @@ #define ARM_CPU_IMP_FUJITSU 0x46 #define ARM_CPU_IMP_HISI 0x48 #define ARM_CPU_IMP_APPLE 0x61 +#define ARM_CPU_IMP_AMPERE 0xC0 #define ARM_CPU_PART_AEM_V8 0xD0F #define ARM_CPU_PART_FOUNDATION 0xD00 @@ -123,6 +124,8 @@ #define APPLE_CPU_PART_M1_ICESTORM_MAX 0x028 #define APPLE_CPU_PART_M1_FIRESTORM_MAX 0x029 +#define AMPERE_CPU_PART_AMPERE1 0xAC3 + #define MIDR_CORTEX_A53 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A53) #define MIDR_CORTEX_A57 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A57) #define MIDR_CORTEX_A72 MIDR_CPU_MODEL(ARM_CPU_IMP_ARM, ARM_CPU_PART_CORTEX_A72) @@ -172,6 +175,7 @@ #define MIDR_APPLE_M1_FIRESTORM_PRO MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM_PRO) #define MIDR_APPLE_M1_ICESTORM_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_ICESTORM_MAX) #define MIDR_APPLE_M1_FIRESTORM_MAX MIDR_CPU_MODEL(ARM_CPU_IMP_APPLE, APPLE_CPU_PART_M1_FIRESTORM_MAX) +#define MIDR_AMPERE1 MIDR_CPU_MODEL(ARM_CPU_IMP_AMPERE, AMPERE_CPU_PART_AMPERE1) /* Fujitsu Erratum 010001 affects A64FX 1.0 and 1.1, (v0r0 and v1r0) */ #define MIDR_FUJITSU_ERRATUM_010001 MIDR_FUJITSU_A64FX --- linux-5.19.0.orig/arch/arm64/include/asm/fpsimd.h +++ linux-5.19.0/arch/arm64/include/asm/fpsimd.h @@ -153,7 +153,7 @@ #ifdef CONFIG_ARM64_SVE -extern void sve_alloc(struct task_struct *task); +extern void sve_alloc(struct task_struct *task, bool flush); extern void fpsimd_release_task(struct task_struct *task); extern void fpsimd_sync_to_sve(struct task_struct *task); extern void fpsimd_force_sync_to_sve(struct task_struct *task); @@ -256,7 +256,7 @@ #else /* ! CONFIG_ARM64_SVE */ -static inline void sve_alloc(struct task_struct *task) { } +static inline void sve_alloc(struct task_struct *task, bool flush) { } static inline void fpsimd_release_task(struct task_struct *task) { } static inline void sve_sync_to_fpsimd(struct task_struct *task) { } static inline void sve_sync_from_fpsimd_zeropad(struct task_struct *task) { } --- linux-5.19.0.orig/arch/arm64/include/asm/kernel-pgtable.h +++ linux-5.19.0/arch/arm64/include/asm/kernel-pgtable.h @@ -103,8 +103,8 @@ /* * Initial memory map attributes. */ -#define SWAPPER_PTE_FLAGS (PTE_TYPE_PAGE | PTE_AF | PTE_SHARED) -#define SWAPPER_PMD_FLAGS (PMD_TYPE_SECT | PMD_SECT_AF | PMD_SECT_S) +#define SWAPPER_PTE_FLAGS (PTE_TYPE_PAGE | PTE_AF | PTE_SHARED | PTE_UXN) +#define SWAPPER_PMD_FLAGS (PMD_TYPE_SECT | PMD_SECT_AF | PMD_SECT_S | PMD_SECT_UXN) #if ARM64_KERNEL_USES_PMD_MAPS #define SWAPPER_MM_MMUFLAGS (PMD_ATTRINDX(MT_NORMAL) | SWAPPER_PMD_FLAGS) --- linux-5.19.0.orig/arch/arm64/include/asm/kexec.h +++ linux-5.19.0/arch/arm64/include/asm/kexec.h @@ -115,7 +115,9 @@ struct kimage; -extern int arch_kimage_file_post_load_cleanup(struct kimage *image); +int arch_kimage_file_post_load_cleanup(struct kimage *image); +#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup + extern int load_other_segments(struct kimage *image, unsigned long kernel_load_addr, unsigned long kernel_size, char *initrd, unsigned long initrd_len, --- linux-5.19.0.orig/arch/arm64/include/asm/kvm_host.h +++ linux-5.19.0/arch/arm64/include/asm/kvm_host.h @@ -838,6 +838,10 @@ (system_supports_mte() && \ test_bit(KVM_ARCH_FLAG_MTE_ENABLED, &(kvm)->arch.flags)) +#define kvm_supports_32bit_el0() \ + (system_supports_32bit_el0() && \ + !static_branch_unlikely(&arm64_mismatched_32bit_el0)) + int kvm_trng_call(struct kvm_vcpu *vcpu); #ifdef CONFIG_KVM extern phys_addr_t hyp_mem_base; --- linux-5.19.0.orig/arch/arm64/include/asm/mte.h +++ linux-5.19.0/arch/arm64/include/asm/mte.h @@ -42,7 +42,9 @@ void mte_copy_page_tags(void *kto, const void *kfrom); void mte_thread_init_user(void); void mte_thread_switch(struct task_struct *next); +void mte_cpu_setup(void); void mte_suspend_enter(void); +void mte_suspend_exit(void); long set_mte_ctrl(struct task_struct *task, unsigned long arg); long get_mte_ctrl(struct task_struct *task); int mte_ptrace_copy_tags(struct task_struct *child, long request, @@ -72,6 +74,9 @@ static inline void mte_suspend_enter(void) { } +static inline void mte_suspend_exit(void) +{ +} static inline long set_mte_ctrl(struct task_struct *task, unsigned long arg) { return 0; --- linux-5.19.0.orig/arch/arm64/include/asm/pgtable.h +++ linux-5.19.0/arch/arm64/include/asm/pgtable.h @@ -847,12 +847,12 @@ static inline bool pmd_user_accessible_page(pmd_t pmd) { - return pmd_present(pmd) && (pmd_user(pmd) || pmd_user_exec(pmd)); + return pmd_leaf(pmd) && (pmd_user(pmd) || pmd_user_exec(pmd)); } static inline bool pud_user_accessible_page(pud_t pud) { - return pud_present(pud) && pud_user(pud); + return pud_leaf(pud) && pud_user(pud); } #endif --- linux-5.19.0.orig/arch/arm64/include/asm/processor.h +++ linux-5.19.0/arch/arm64/include/asm/processor.h @@ -272,8 +272,9 @@ static inline void start_thread_common(struct pt_regs *regs, unsigned long pc) { + s32 previous_syscall = regs->syscallno; memset(regs, 0, sizeof(*regs)); - forget_syscall(regs); + regs->syscallno = previous_syscall; regs->pc = pc; if (system_uses_irq_prio_masking()) @@ -307,13 +308,13 @@ } #endif -static inline bool is_ttbr0_addr(unsigned long addr) +static __always_inline bool is_ttbr0_addr(unsigned long addr) { /* entry assembly clears tags for TTBR0 addrs */ return addr < TASK_SIZE; } -static inline bool is_ttbr1_addr(unsigned long addr) +static __always_inline bool is_ttbr1_addr(unsigned long addr) { /* TTBR1 addresses may have a tag if KASAN_SW_TAGS is in use */ return arch_kasan_reset_tag(addr) >= PAGE_OFFSET; --- linux-5.19.0.orig/arch/arm64/include/asm/setup.h +++ linux-5.19.0/arch/arm64/include/asm/setup.h @@ -3,6 +3,8 @@ #ifndef __ARM64_ASM_SETUP_H #define __ARM64_ASM_SETUP_H +#include + #include void *get_early_fdt_ptr(void); @@ -14,4 +16,19 @@ extern phys_addr_t __fdt_pointer __initdata; extern u64 __cacheline_aligned boot_args[4]; +static inline bool arch_parse_debug_rodata(char *arg) +{ + extern bool rodata_enabled; + extern bool rodata_full; + + if (arg && !strcmp(arg, "full")) { + rodata_enabled = true; + rodata_full = true; + return true; + } + + return false; +} +#define arch_parse_debug_rodata arch_parse_debug_rodata + #endif --- linux-5.19.0.orig/arch/arm64/include/asm/syscall_wrapper.h +++ linux-5.19.0/arch/arm64/include/asm/syscall_wrapper.h @@ -8,7 +8,7 @@ #ifndef __ASM_SYSCALL_WRAPPER_H #define __ASM_SYSCALL_WRAPPER_H -struct pt_regs; +#include #define SC_ARM64_REGS_TO_ARGS(x, ...) \ __MAP(x,__SC_ARGS \ --- linux-5.19.0.orig/arch/arm64/kernel/Makefile +++ linux-5.19.0/arch/arm64/kernel/Makefile @@ -14,6 +14,11 @@ CFLAGS_REMOVE_syscall.o = -fstack-protector -fstack-protector-strong CFLAGS_syscall.o += -fno-stack-protector +# When KASAN is enabled, a stack trace is recorded for every alloc/free, which +# can significantly impact performance. Avoid instrumenting the stack trace +# collection code to minimize this impact. +KASAN_SANITIZE_stacktrace.o := n + # It's not safe to invoke KCOV when portions of the kernel environment aren't # available or are out-of-sync with HW state. Since `noinstr` doesn't always # inhibit KCOV instrumentation, disable it for the entire compilation unit. --- linux-5.19.0.orig/arch/arm64/kernel/armv8_deprecated.c +++ linux-5.19.0/arch/arm64/kernel/armv8_deprecated.c @@ -59,6 +59,7 @@ static LIST_HEAD(insn_emulation); static int nr_insn_emulated __initdata; static DEFINE_RAW_SPINLOCK(insn_emulation_lock); +static DEFINE_MUTEX(insn_emulation_mutex); static void register_emulation_hooks(struct insn_emulation_ops *ops) { @@ -207,10 +208,10 @@ loff_t *ppos) { int ret = 0; - struct insn_emulation *insn = (struct insn_emulation *) table->data; + struct insn_emulation *insn = container_of(table->data, struct insn_emulation, current_mode); enum insn_emulation_mode prev_mode = insn->current_mode; - table->data = &insn->current_mode; + mutex_lock(&insn_emulation_mutex); ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos); if (ret || !write || prev_mode == insn->current_mode) @@ -223,7 +224,7 @@ update_insn_emulation_mode(insn, INSN_UNDEF); } ret: - table->data = insn; + mutex_unlock(&insn_emulation_mutex); return ret; } @@ -247,7 +248,7 @@ sysctl->maxlen = sizeof(int); sysctl->procname = insn->ops->name; - sysctl->data = insn; + sysctl->data = &insn->current_mode; sysctl->extra1 = &insn->min; sysctl->extra2 = &insn->max; sysctl->proc_handler = emulation_proc_handler; --- linux-5.19.0.orig/arch/arm64/kernel/cacheinfo.c +++ linux-5.19.0/arch/arm64/kernel/cacheinfo.c @@ -45,7 +45,8 @@ int init_cache_level(unsigned int cpu) { - unsigned int ctype, level, leaves, fw_level; + unsigned int ctype, level, leaves; + int fw_level; struct cpu_cacheinfo *this_cpu_ci = get_cpu_cacheinfo(cpu); for (level = 1, leaves = 0; level <= MAX_CACHE_LEVEL; level++) { @@ -63,6 +64,9 @@ else fw_level = acpi_find_last_cache_level(cpu); + if (fw_level < 0) + return fw_level; + if (level < fw_level) { /* * some external caches not specified in CLIDR_EL1 --- linux-5.19.0.orig/arch/arm64/kernel/cpu_errata.c +++ linux-5.19.0/arch/arm64/kernel/cpu_errata.c @@ -208,10 +208,23 @@ #ifdef CONFIG_ARM64_ERRATUM_1286807 { ERRATA_MIDR_RANGE(MIDR_CORTEX_A76, 0, 0, 3, 0), + }, + { /* Kryo4xx Gold (rcpe to rfpe) => (r0p0 to r3p0) */ ERRATA_MIDR_RANGE(MIDR_QCOM_KRYO_4XX_GOLD, 0xc, 0xe, 0xf, 0xe), }, #endif +#ifdef CONFIG_ARM64_ERRATUM_2441007 + { + ERRATA_MIDR_ALL_VERSIONS(MIDR_CORTEX_A55), + }, +#endif +#ifdef CONFIG_ARM64_ERRATUM_2441009 + { + /* Cortex-A510 r0p0 -> r1p1. Fixed in r1p2 */ + ERRATA_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1), + }, +#endif {}, }; #endif @@ -395,6 +408,14 @@ }; #endif /* CONFIG_ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE */ +#ifdef CONFIG_ARM64_ERRATUM_1742098 +static struct midr_range broken_aarch32_aes[] = { + MIDR_RANGE(MIDR_CORTEX_A57, 0, 1, 0xf, 0xf), + MIDR_ALL_VERSIONS(MIDR_CORTEX_A72), + {}, +}; +#endif /* CONFIG_ARM64_WORKAROUND_TRBE_WRITE_OUT_OF_RANGE */ + const struct arm64_cpu_capabilities arm64_errata[] = { #ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE { @@ -480,7 +501,7 @@ #endif #ifdef CONFIG_ARM64_WORKAROUND_REPEAT_TLBI { - .desc = "Qualcomm erratum 1009, or ARM erratum 1286807", + .desc = "Qualcomm erratum 1009, or ARM erratum 1286807, 2441009", .capability = ARM64_WORKAROUND_REPEAT_TLBI, .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, .matches = cpucap_multi_entry_cap_matches, @@ -640,6 +661,16 @@ ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 2) }, #endif +#ifdef CONFIG_ARM64_ERRATUM_2457168 + { + .desc = "ARM erratum 2457168", + .capability = ARM64_WORKAROUND_2457168, + .type = ARM64_CPUCAP_WEAK_LOCAL_CPU_FEATURE, + + /* Cortex-A510 r0p0-r1p1 */ + CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1) + }, +#endif #ifdef CONFIG_ARM64_ERRATUM_2038923 { .desc = "ARM erratum 2038923", @@ -658,6 +689,14 @@ ERRATA_MIDR_REV_RANGE(MIDR_CORTEX_A510, 0, 0, 1) }, #endif +#ifdef CONFIG_ARM64_ERRATUM_1742098 + { + .desc = "ARM erratum 1742098", + .capability = ARM64_WORKAROUND_1742098, + CAP_MIDR_RANGE_LIST(broken_aarch32_aes), + .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM, + }, +#endif { } }; --- linux-5.19.0.orig/arch/arm64/kernel/cpufeature.c +++ linux-5.19.0/arch/arm64/kernel/cpufeature.c @@ -79,6 +79,7 @@ #include #include #include +#include #include #include #include @@ -561,7 +562,7 @@ static const struct arm64_ftr_bits ftr_id_dfr0[] = { /* [31:28] TraceFilt */ - S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_DFR0_PERFMON_SHIFT, 4, 0xf), + S_ARM64_FTR_BITS(FTR_HIDDEN, FTR_NONSTRICT, FTR_EXACT, ID_DFR0_PERFMON_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_DFR0_MPROFDBG_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_DFR0_MMAPTRC_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_HIDDEN, FTR_STRICT, FTR_LOWER_SAFE, ID_DFR0_COPTRC_SHIFT, 4, 0), @@ -1797,7 +1798,10 @@ pr_info("detected CPU%d: Activity Monitors Unit (AMU)\n", smp_processor_id()); cpumask_set_cpu(smp_processor_id(), &amu_cpus); - update_freq_counters_refs(); + + /* 0 reference values signal broken/disabled counters */ + if (!this_cpu_has_cap(ARM64_WORKAROUND_2457168)) + update_freq_counters_refs(); } } @@ -1958,7 +1962,8 @@ static void cpu_enable_mte(struct arm64_cpu_capabilities const *cap) { sysreg_clear_set(sctlr_el1, 0, SCTLR_ELx_ATA | SCTLR_EL1_ATA0); - isb(); + + mte_cpu_setup(); /* * Clear the tags in the zero page. This needs to be done via the @@ -1971,6 +1976,14 @@ } #endif /* CONFIG_ARM64_MTE */ +static void elf_hwcap_fixup(void) +{ +#ifdef CONFIG_ARM64_ERRATUM_1742098 + if (cpus_have_const_cap(ARM64_WORKAROUND_1742098)) + compat_elf_hwcap2 &= ~COMPAT_HWCAP2_AES; +#endif /* ARM64_ERRATUM_1742098 */ +} + #ifdef CONFIG_KVM static bool is_kvm_protected_mode(const struct arm64_cpu_capabilities *entry, int __unused) { @@ -3143,8 +3156,10 @@ setup_system_capabilities(); setup_elf_hwcaps(arm64_elf_hwcaps); - if (system_supports_32bit_el0()) + if (system_supports_32bit_el0()) { setup_elf_hwcaps(compat_elf_hwcaps); + elf_hwcap_fixup(); + } if (system_uses_ttbr0_pan()) pr_info("emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching\n"); @@ -3197,6 +3212,7 @@ cpu_active_mask); get_cpu_device(lucky_winner)->offline_disabled = true; setup_elf_hwcaps(compat_elf_hwcaps); + elf_hwcap_fixup(); pr_info("Asymmetric 32-bit EL0 support detected on CPU %u; CPU hot-unplug disabled on CPU %u\n", cpu, lucky_winner); return 0; --- linux-5.19.0.orig/arch/arm64/kernel/efi.c +++ linux-5.19.0/arch/arm64/kernel/efi.c @@ -12,6 +12,14 @@ #include +static bool region_is_misaligned(const efi_memory_desc_t *md) +{ + if (PAGE_SIZE == EFI_PAGE_SIZE) + return false; + return !PAGE_ALIGNED(md->phys_addr) || + !PAGE_ALIGNED(md->num_pages << EFI_PAGE_SHIFT); +} + /* * Only regions of type EFI_RUNTIME_SERVICES_CODE need to be * executable, everything else can be mapped with the XN bits @@ -25,14 +33,22 @@ if (type == EFI_MEMORY_MAPPED_IO) return PROT_DEVICE_nGnRE; - if (WARN_ONCE(!PAGE_ALIGNED(md->phys_addr), - "UEFI Runtime regions are not aligned to 64 KB -- buggy firmware?")) + if (region_is_misaligned(md)) { + static bool __initdata code_is_misaligned; + /* - * If the region is not aligned to the page size of the OS, we - * can not use strict permissions, since that would also affect - * the mapping attributes of the adjacent regions. + * Regions that are not aligned to the OS page size cannot be + * mapped with strict permissions, as those might interfere + * with the permissions that are needed by the adjacent + * region's mapping. However, if we haven't encountered any + * misaligned runtime code regions so far, we can safely use + * non-executable permissions for non-code regions. */ - return pgprot_val(PAGE_KERNEL_EXEC); + code_is_misaligned |= (type == EFI_RUNTIME_SERVICES_CODE); + + return code_is_misaligned ? pgprot_val(PAGE_KERNEL_EXEC) + : pgprot_val(PAGE_KERNEL); + } /* R-- */ if ((attr & (EFI_MEMORY_XP | EFI_MEMORY_RO)) == @@ -63,19 +79,16 @@ bool page_mappings_only = (md->type == EFI_RUNTIME_SERVICES_CODE || md->type == EFI_RUNTIME_SERVICES_DATA); - if (!PAGE_ALIGNED(md->phys_addr) || - !PAGE_ALIGNED(md->num_pages << EFI_PAGE_SHIFT)) { - /* - * If the end address of this region is not aligned to page - * size, the mapping is rounded up, and may end up sharing a - * page frame with the next UEFI memory region. If we create - * a block entry now, we may need to split it again when mapping - * the next region, and support for that is going to be removed - * from the MMU routines. So avoid block mappings altogether in - * that case. - */ + /* + * If this region is not aligned to the page size used by the OS, the + * mapping will be rounded outwards, and may end up sharing a page + * frame with an adjacent runtime memory region. Given that the page + * table descriptor covering the shared page will be rewritten when the + * adjacent region gets mapped, we must avoid block mappings here so we + * don't have to worry about splitting them when that happens. + */ + if (region_is_misaligned(md)) page_mappings_only = true; - } create_pgd_mapping(mm, md->phys_addr, md->virt_addr, md->num_pages << EFI_PAGE_SHIFT, @@ -102,6 +115,9 @@ BUG_ON(md->type != EFI_RUNTIME_SERVICES_CODE && md->type != EFI_RUNTIME_SERVICES_DATA); + if (region_is_misaligned(md)) + return 0; + /* * Calling apply_to_page_range() is only safe on regions that are * guaranteed to be mapped down to pages. Since we are only called --- linux-5.19.0.orig/arch/arm64/kernel/entry-common.c +++ linux-5.19.0/arch/arm64/kernel/entry-common.c @@ -329,7 +329,8 @@ __this_cpu_write(__in_cortex_a76_erratum_1463225_wa, 0); } -static bool cortex_a76_erratum_1463225_debug_handler(struct pt_regs *regs) +static __always_inline bool +cortex_a76_erratum_1463225_debug_handler(struct pt_regs *regs) { if (!__this_cpu_read(__in_cortex_a76_erratum_1463225_wa)) return false; --- linux-5.19.0.orig/arch/arm64/kernel/fpsimd.c +++ linux-5.19.0/arch/arm64/kernel/fpsimd.c @@ -716,10 +716,12 @@ * do_sve_acc() case, there is no ABI requirement to hide stale data * written previously be task. */ -void sve_alloc(struct task_struct *task) +void sve_alloc(struct task_struct *task, bool flush) { if (task->thread.sve_state) { - memset(task->thread.sve_state, 0, sve_state_size(task)); + if (flush) + memset(task->thread.sve_state, 0, + sve_state_size(task)); return; } @@ -1389,7 +1391,7 @@ return; } - sve_alloc(current); + sve_alloc(current, true); if (!current->thread.sve_state) { force_sig(SIGKILL); return; @@ -1440,7 +1442,7 @@ return; } - sve_alloc(current); + sve_alloc(current, false); sme_alloc(current); if (!current->thread.sve_state || !current->thread.za_state) { force_sig(SIGKILL); @@ -1461,17 +1463,6 @@ fpsimd_bind_task_to_cpu(); } - /* - * If SVE was not already active initialise the SVE registers, - * any non-shared state between the streaming and regular SVE - * registers is architecturally guaranteed to be zeroed when - * we enter streaming mode. We do not need to initialize ZA - * since ZA must be disabled at this point and enabling ZA is - * architecturally defined to zero ZA. - */ - if (system_supports_sve() && !test_thread_flag(TIF_SVE)) - sve_init_regs(); - put_cpu_fpsimd_context(); } --- linux-5.19.0.orig/arch/arm64/kernel/ftrace.c +++ linux-5.19.0/arch/arm64/kernel/ftrace.c @@ -217,11 +217,26 @@ unsigned long pc = rec->ip; u32 old = 0, new; + new = aarch64_insn_gen_nop(); + + /* + * When using mcount, callsites in modules may have been initalized to + * call an arbitrary module PLT (which redirects to the _mcount stub) + * rather than the ftrace PLT we'll use at runtime (which redirects to + * the ftrace trampoline). We can ignore the old PLT when initializing + * the callsite. + * + * Note: 'mod' is only set at module load time. + */ + if (!IS_ENABLED(CONFIG_DYNAMIC_FTRACE_WITH_REGS) && + IS_ENABLED(CONFIG_ARM64_MODULE_PLTS) && mod) { + return aarch64_insn_patch_text_nosync((void *)pc, new); + } + if (!ftrace_find_callable_addr(rec, mod, &addr)) return -EINVAL; old = aarch64_insn_gen_branch_imm(pc, addr, AARCH64_INSN_BRANCH_LINK); - new = aarch64_insn_gen_nop(); return ftrace_modify_code(pc, old, new, true); } --- linux-5.19.0.orig/arch/arm64/kernel/head.S +++ linux-5.19.0/arch/arm64/kernel/head.S @@ -285,7 +285,7 @@ subs x1, x1, #64 b.ne 1b - mov x7, SWAPPER_MM_MMUFLAGS + mov_q x7, SWAPPER_MM_MMUFLAGS /* * Create the identity mapping. --- linux-5.19.0.orig/arch/arm64/kernel/kexec_image.c +++ linux-5.19.0/arch/arm64/kernel/kexec_image.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -130,18 +129,10 @@ return NULL; } -#ifdef CONFIG_KEXEC_IMAGE_VERIFY_SIG -static int image_verify_sig(const char *kernel, unsigned long kernel_len) -{ - return verify_pefile_signature(kernel, kernel_len, NULL, - VERIFYING_KEXEC_PE_SIGNATURE); -} -#endif - const struct kexec_file_ops kexec_image_ops = { .probe = image_probe, .load = image_load, #ifdef CONFIG_KEXEC_IMAGE_VERIFY_SIG - .verify_sig = image_verify_sig, + .verify_sig = kexec_kernel_verify_pe_sig, #endif }; --- linux-5.19.0.orig/arch/arm64/kernel/machine_kexec_file.c +++ linux-5.19.0/arch/arm64/kernel/machine_kexec_file.c @@ -47,7 +47,7 @@ u64 i; phys_addr_t start, end; - nr_ranges = 1; /* for exclusion of crashkernel region */ + nr_ranges = 2; /* for exclusion of crashkernel region */ for_each_mem_range(i, &start, &end) nr_ranges++; --- linux-5.19.0.orig/arch/arm64/kernel/mte.c +++ linux-5.19.0/arch/arm64/kernel/mte.c @@ -57,7 +57,12 @@ * the new page->flags are visible before the tags were updated. */ smp_wmb(); - mte_clear_page_tags(page_address(page)); + /* + * Test PG_mte_tagged again in case it was racing with another + * set_pte_at(). + */ + if (!test_and_set_bit(PG_mte_tagged, &page->flags)) + mte_clear_page_tags(page_address(page)); } void mte_sync_tags(pte_t old_pte, pte_t pte) @@ -73,7 +78,7 @@ /* if PG_mte_tagged is set, tags have already been initialised */ for (i = 0; i < nr_pages; i++, page++) { - if (!test_and_set_bit(PG_mte_tagged, &page->flags)) + if (!test_bit(PG_mte_tagged, &page->flags)) mte_sync_page_tags(page, old_pte, check_swap, pte_is_tagged); } @@ -294,6 +299,49 @@ mte_check_tfsr_el1(); } +void mte_cpu_setup(void) +{ + u64 rgsr; + + /* + * CnP must be enabled only after the MAIR_EL1 register has been set + * up. Inconsistent MAIR_EL1 between CPUs sharing the same TLB may + * lead to the wrong memory type being used for a brief window during + * CPU power-up. + * + * CnP is not a boot feature so MTE gets enabled before CnP, but let's + * make sure that is the case. + */ + BUG_ON(read_sysreg(ttbr0_el1) & TTBR_CNP_BIT); + BUG_ON(read_sysreg(ttbr1_el1) & TTBR_CNP_BIT); + + /* Normal Tagged memory type at the corresponding MAIR index */ + sysreg_clear_set(mair_el1, + MAIR_ATTRIDX(MAIR_ATTR_MASK, MT_NORMAL_TAGGED), + MAIR_ATTRIDX(MAIR_ATTR_NORMAL_TAGGED, + MT_NORMAL_TAGGED)); + + write_sysreg_s(KERNEL_GCR_EL1, SYS_GCR_EL1); + + /* + * If GCR_EL1.RRND=1 is implemented the same way as RRND=0, then + * RGSR_EL1.SEED must be non-zero for IRG to produce + * pseudorandom numbers. As RGSR_EL1 is UNKNOWN out of reset, we + * must initialize it. + */ + rgsr = (read_sysreg(CNTVCT_EL0) & SYS_RGSR_EL1_SEED_MASK) << + SYS_RGSR_EL1_SEED_SHIFT; + if (rgsr == 0) + rgsr = 1 << SYS_RGSR_EL1_SEED_SHIFT; + write_sysreg_s(rgsr, SYS_RGSR_EL1); + + /* clear any pending tag check faults in TFSR*_EL1 */ + write_sysreg_s(0, SYS_TFSR_EL1); + write_sysreg_s(0, SYS_TFSRE0_EL1); + + local_flush_tlb_all(); +} + void mte_suspend_enter(void) { if (!system_supports_mte()) @@ -310,6 +358,14 @@ mte_check_tfsr_el1(); } +void mte_suspend_exit(void) +{ + if (!system_supports_mte()) + return; + + mte_cpu_setup(); +} + long set_mte_ctrl(struct task_struct *task, unsigned long arg) { u64 mte_ctrl = (~((arg & PR_MTE_TAG_MASK) >> PR_MTE_TAG_SHIFT) & --- linux-5.19.0.orig/arch/arm64/kernel/proton-pack.c +++ linux-5.19.0/arch/arm64/kernel/proton-pack.c @@ -868,6 +868,10 @@ MIDR_ALL_VERSIONS(MIDR_NEOVERSE_N1), {}, }; + static const struct midr_range spectre_bhb_k11_list[] = { + MIDR_ALL_VERSIONS(MIDR_AMPERE1), + {}, + }; static const struct midr_range spectre_bhb_k8_list[] = { MIDR_ALL_VERSIONS(MIDR_CORTEX_A72), MIDR_ALL_VERSIONS(MIDR_CORTEX_A57), @@ -878,6 +882,8 @@ k = 32; else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k24_list)) k = 24; + else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k11_list)) + k = 11; else if (is_midr_in_range_list(read_cpuid_id(), spectre_bhb_k8_list)) k = 8; --- linux-5.19.0.orig/arch/arm64/kernel/ptrace.c +++ linux-5.19.0/arch/arm64/kernel/ptrace.c @@ -882,7 +882,7 @@ * state and ensure there's storage. */ if (target->thread.svcr != old_svcr) - sve_alloc(target); + sve_alloc(target, true); } /* Registers: FPSIMD-only case */ @@ -912,7 +912,7 @@ goto out; } - sve_alloc(target); + sve_alloc(target, true); if (!target->thread.sve_state) { ret = -ENOMEM; clear_tsk_thread_flag(target, TIF_SVE); @@ -1082,7 +1082,7 @@ /* Ensure there is some SVE storage for streaming mode */ if (!target->thread.sve_state) { - sve_alloc(target); + sve_alloc(target, false); if (!target->thread.sve_state) { clear_thread_flag(TIF_SME); ret = -ENOMEM; --- linux-5.19.0.orig/arch/arm64/kernel/signal.c +++ linux-5.19.0/arch/arm64/kernel/signal.c @@ -307,7 +307,7 @@ fpsimd_flush_task_state(current); /* From now, fpsimd_thread_switch() won't touch thread.sve_state */ - sve_alloc(current); + sve_alloc(current, true); if (!current->thread.sve_state) { clear_thread_flag(TIF_SVE); return -ENOMEM; @@ -922,6 +922,16 @@ /* Signal handlers are invoked with ZA and streaming mode disabled */ if (system_supports_sme()) { + /* + * If we were in streaming mode the saved register + * state was SVE but we will exit SM and use the + * FPSIMD register state - flush the saved FPSIMD + * register state in case it gets loaded. + */ + if (current->thread.svcr & SVCR_SM_MASK) + memset(¤t->thread.uw.fpsimd_state, 0, + sizeof(current->thread.uw.fpsimd_state)); + current->thread.svcr &= ~(SVCR_ZA_MASK | SVCR_SM_MASK); sme_smstop(); --- linux-5.19.0.orig/arch/arm64/kernel/stacktrace.c +++ linux-5.19.0/arch/arm64/kernel/stacktrace.c @@ -117,15 +117,15 @@ if (fp <= state->prev_fp) return -EINVAL; } else { - set_bit(state->prev_type, state->stacks_done); + __set_bit(state->prev_type, state->stacks_done); } /* * Record this frame record's values and location. The prev_fp and * prev_type are only meaningful to the next unwind_next() invocation. */ - state->fp = READ_ONCE_NOCHECK(*(unsigned long *)(fp)); - state->pc = READ_ONCE_NOCHECK(*(unsigned long *)(fp + 8)); + state->fp = READ_ONCE(*(unsigned long *)(fp)); + state->pc = READ_ONCE(*(unsigned long *)(fp + 8)); state->prev_fp = fp; state->prev_type = info.type; --- linux-5.19.0.orig/arch/arm64/kernel/suspend.c +++ linux-5.19.0/arch/arm64/kernel/suspend.c @@ -43,6 +43,8 @@ { unsigned int cpu = smp_processor_id(); + mte_suspend_exit(); + /* * We are resuming from reset with the idmap active in TTBR0_EL1. * We must uninstall the idmap and restore the expected MMU --- linux-5.19.0.orig/arch/arm64/kernel/topology.c +++ linux-5.19.0/arch/arm64/kernel/topology.c @@ -22,46 +22,6 @@ #include #include -void store_cpu_topology(unsigned int cpuid) -{ - struct cpu_topology *cpuid_topo = &cpu_topology[cpuid]; - u64 mpidr; - - if (cpuid_topo->package_id != -1) - goto topology_populated; - - mpidr = read_cpuid_mpidr(); - - /* Uniprocessor systems can rely on default topology values */ - if (mpidr & MPIDR_UP_BITMASK) - return; - - /* - * 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, - cpuid_topo->thread_id, mpidr); - -topology_populated: - update_siblings_masks(cpuid); -} - #ifdef CONFIG_ACPI static bool __init acpi_cpu_is_threaded(int cpu) { @@ -251,7 +211,7 @@ for_each_cpu(cpu, cpus) { if (!freq_counters_valid(cpu) || freq_inv_set_max_ratio(cpu, - cpufreq_get_hw_max_freq(cpu) * 1000, + cpufreq_get_hw_max_freq(cpu) * 1000ULL, arch_timer_get_rate())) return; } @@ -310,12 +270,25 @@ static void cpu_read_corecnt(void *val) { + /* + * A value of 0 can be returned if the current CPU does not support AMUs + * or if the counter is disabled for this CPU. A return value of 0 at + * counter read is properly handled as an error case by the users of the + * counter. + */ *(u64 *)val = read_corecnt(); } static void cpu_read_constcnt(void *val) { - *(u64 *)val = read_constcnt(); + /* + * Return 0 if the current CPU is affected by erratum 2457168. A value + * of 0 is also returned if the current CPU does not support AMUs or if + * the counter is disabled. A return value of 0 at counter read is + * properly handled as an error case by the users of the counter. + */ + *(u64 *)val = this_cpu_has_cap(ARM64_WORKAROUND_2457168) ? + 0UL : read_constcnt(); } static inline @@ -342,7 +315,22 @@ */ bool cpc_ffh_supported(void) { - return freq_counters_valid(get_cpu_with_amu_feat()); + int cpu = get_cpu_with_amu_feat(); + + /* + * FFH is considered supported if there is at least one present CPU that + * supports AMUs. Using FFH to read core and reference counters for CPUs + * that do not support AMUs, have counters disabled or that are affected + * by errata, will result in a return value of 0. + * + * This is done to allow any enabled and valid counters to be read + * through FFH, knowing that potentially returning 0 as counter value is + * properly handled by the users of these counters. + */ + if ((cpu >= nr_cpu_ids) || !cpumask_test_cpu(cpu, cpu_present_mask)) + return false; + + return true; } int cpc_read_ffh(int cpu, struct cpc_reg *reg, u64 *val) --- linux-5.19.0.orig/arch/arm64/kvm/arm.c +++ linux-5.19.0/arch/arm64/kvm/arm.c @@ -751,8 +751,7 @@ if (likely(!vcpu_mode_is_32bit(vcpu))) return false; - return !system_supports_32bit_el0() || - static_branch_unlikely(&arm64_mismatched_32bit_el0); + return !kvm_supports_32bit_el0(); } /** @@ -2102,6 +2101,17 @@ * once the host stage 2 is installed. */ static_branch_enable(&kvm_protected_mode_initialized); + + /* + * Fixup the boot mode so that we don't take spurious round + * trips via EL2 on cpu_resume. Flush to the PoC for a good + * measure, so that it can be observed by a CPU coming out of + * suspend with the MMU off. + */ + __boot_cpu_mode[0] = __boot_cpu_mode[1] = BOOT_CPU_MODE_EL1; + dcache_clean_poc((unsigned long)__boot_cpu_mode, + (unsigned long)(__boot_cpu_mode + 2)); + on_each_cpu(_kvm_host_prot_finalize, &ret, 1); return ret; } --- linux-5.19.0.orig/arch/arm64/kvm/guest.c +++ linux-5.19.0/arch/arm64/kvm/guest.c @@ -242,7 +242,7 @@ u64 mode = (*(u64 *)valp) & PSR_AA32_MODE_MASK; switch (mode) { case PSR_AA32_MODE_USR: - if (!system_supports_32bit_el0()) + if (!kvm_supports_32bit_el0()) return -EINVAL; break; case PSR_AA32_MODE_FIQ: --- linux-5.19.0.orig/arch/arm64/kvm/handle_exit.c +++ linux-5.19.0/arch/arm64/kvm/handle_exit.c @@ -347,10 +347,10 @@ kvm_err("nVHE hyp BUG at: %s:%u!\n", file, line); else kvm_err("nVHE hyp BUG at: [<%016llx>] %pB!\n", panic_addr, - (void *)panic_addr); + (void *)(panic_addr + kaslr_offset())); } else { kvm_err("nVHE hyp panic at: [<%016llx>] %pB!\n", panic_addr, - (void *)panic_addr); + (void *)(panic_addr + kaslr_offset())); } /* --- linux-5.19.0.orig/arch/arm64/kvm/hyp/exception.c +++ linux-5.19.0/arch/arm64/kvm/hyp/exception.c @@ -13,6 +13,7 @@ #include #include #include +#include #if !defined (__KVM_NVHE_HYPERVISOR__) && !defined (__KVM_VHE_HYPERVISOR__) #error Hypervisor code only! @@ -115,7 +116,7 @@ new |= (old & PSR_C_BIT); new |= (old & PSR_V_BIT); - if (kvm_has_mte(vcpu->kvm)) + if (kvm_has_mte(kern_hyp_va(vcpu->kvm))) new |= PSR_TCO_BIT; new |= (old & PSR_DIT_BIT); --- linux-5.19.0.orig/arch/arm64/kvm/hyp/include/hyp/switch.h +++ linux-5.19.0/arch/arm64/kvm/hyp/include/hyp/switch.h @@ -99,6 +99,17 @@ vcpu->arch.mdcr_el2_host = read_sysreg(mdcr_el2); write_sysreg(vcpu->arch.mdcr_el2, mdcr_el2); + + if (cpus_have_final_cap(ARM64_SME)) { + sysreg_clear_set_s(SYS_HFGRTR_EL2, + HFGxTR_EL2_nSMPRI_EL1_MASK | + HFGxTR_EL2_nTPIDR2_EL0_MASK, + 0); + sysreg_clear_set_s(SYS_HFGWTR_EL2, + HFGxTR_EL2_nSMPRI_EL1_MASK | + HFGxTR_EL2_nTPIDR2_EL0_MASK, + 0); + } } static inline void __deactivate_traps_common(struct kvm_vcpu *vcpu) @@ -108,6 +119,15 @@ write_sysreg(0, hstr_el2); if (kvm_arm_support_pmu_v3()) write_sysreg(0, pmuserenr_el0); + + if (cpus_have_final_cap(ARM64_SME)) { + sysreg_clear_set_s(SYS_HFGRTR_EL2, 0, + HFGxTR_EL2_nSMPRI_EL1_MASK | + HFGxTR_EL2_nTPIDR2_EL0_MASK); + sysreg_clear_set_s(SYS_HFGWTR_EL2, 0, + HFGxTR_EL2_nSMPRI_EL1_MASK | + HFGxTR_EL2_nTPIDR2_EL0_MASK); + } } static inline void ___activate_traps(struct kvm_vcpu *vcpu) --- linux-5.19.0.orig/arch/arm64/kvm/hyp/nvhe/switch.c +++ linux-5.19.0/arch/arm64/kvm/hyp/nvhe/switch.c @@ -53,18 +53,6 @@ write_sysreg(val, cptr_el2); write_sysreg(__this_cpu_read(kvm_hyp_vector), vbar_el2); - if (cpus_have_final_cap(ARM64_SME)) { - val = read_sysreg_s(SYS_HFGRTR_EL2); - val &= ~(HFGxTR_EL2_nTPIDR2_EL0_MASK | - HFGxTR_EL2_nSMPRI_EL1_MASK); - write_sysreg_s(val, SYS_HFGRTR_EL2); - - val = read_sysreg_s(SYS_HFGWTR_EL2); - val &= ~(HFGxTR_EL2_nTPIDR2_EL0_MASK | - HFGxTR_EL2_nSMPRI_EL1_MASK); - write_sysreg_s(val, SYS_HFGWTR_EL2); - } - if (cpus_have_final_cap(ARM64_WORKAROUND_SPECULATIVE_AT)) { struct kvm_cpu_context *ctxt = &vcpu->arch.ctxt; @@ -108,20 +96,6 @@ write_sysreg(this_cpu_ptr(&kvm_init_params)->hcr_el2, hcr_el2); - if (cpus_have_final_cap(ARM64_SME)) { - u64 val; - - val = read_sysreg_s(SYS_HFGRTR_EL2); - val |= HFGxTR_EL2_nTPIDR2_EL0_MASK | - HFGxTR_EL2_nSMPRI_EL1_MASK; - write_sysreg_s(val, SYS_HFGRTR_EL2); - - val = read_sysreg_s(SYS_HFGWTR_EL2); - val |= HFGxTR_EL2_nTPIDR2_EL0_MASK | - HFGxTR_EL2_nSMPRI_EL1_MASK; - write_sysreg_s(val, SYS_HFGWTR_EL2); - } - cptr = CPTR_EL2_DEFAULT; if (vcpu_has_sve(vcpu) && (vcpu->arch.flags & KVM_ARM64_FP_ENABLED)) cptr |= CPTR_EL2_TZ; @@ -386,5 +360,5 @@ asmlinkage void kvm_unexpected_el2_exception(void) { - return __kvm_unexpected_el2_exception(); + __kvm_unexpected_el2_exception(); } --- linux-5.19.0.orig/arch/arm64/kvm/hyp/vhe/switch.c +++ linux-5.19.0/arch/arm64/kvm/hyp/vhe/switch.c @@ -63,10 +63,6 @@ __activate_traps_fpsimd32(vcpu); } - if (cpus_have_final_cap(ARM64_SME)) - write_sysreg(read_sysreg(sctlr_el2) & ~SCTLR_ELx_ENTP2, - sctlr_el2); - write_sysreg(val, cpacr_el1); write_sysreg(__this_cpu_read(kvm_hyp_vector), vbar_el1); @@ -88,10 +84,6 @@ */ asm(ALTERNATIVE("nop", "isb", ARM64_WORKAROUND_SPECULATIVE_AT)); - if (cpus_have_final_cap(ARM64_SME)) - write_sysreg(read_sysreg(sctlr_el2) | SCTLR_ELx_ENTP2, - sctlr_el2); - write_sysreg(CPACR_EL1_DEFAULT, cpacr_el1); if (!arm64_kernel_unmapped_at_el0()) @@ -249,5 +241,5 @@ asmlinkage void kvm_unexpected_el2_exception(void) { - return __kvm_unexpected_el2_exception(); + __kvm_unexpected_el2_exception(); } --- linux-5.19.0.orig/arch/arm64/kvm/sys_regs.c +++ linux-5.19.0/arch/arm64/kvm/sys_regs.c @@ -692,7 +692,7 @@ */ val = ((pmcr & ~ARMV8_PMU_PMCR_MASK) | (ARMV8_PMU_PMCR_MASK & 0xdecafbad)) & (~ARMV8_PMU_PMCR_E); - if (!system_supports_32bit_el0()) + if (!kvm_supports_32bit_el0()) val |= ARMV8_PMU_PMCR_LC; __vcpu_sys_reg(vcpu, r->reg) = val; } @@ -741,7 +741,7 @@ val = __vcpu_sys_reg(vcpu, PMCR_EL0); val &= ~ARMV8_PMU_PMCR_MASK; val |= p->regval & ARMV8_PMU_PMCR_MASK; - if (!system_supports_32bit_el0()) + if (!kvm_supports_32bit_el0()) val |= ARMV8_PMU_PMCR_LC; __vcpu_sys_reg(vcpu, PMCR_EL0) = val; kvm_pmu_handle_pmcr(vcpu, val); --- linux-5.19.0.orig/arch/arm64/kvm/trace_arm.h +++ linux-5.19.0/arch/arm64/kvm/trace_arm.h @@ -2,6 +2,7 @@ #if !defined(_TRACE_ARM_ARM64_KVM_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_ARM_ARM64_KVM_H +#include #include #include --- linux-5.19.0.orig/arch/arm64/kvm/vgic/vgic-its.c +++ linux-5.19.0/arch/arm64/kvm/vgic/vgic-its.c @@ -2149,7 +2149,7 @@ memset(entry, 0, esz); - while (len > 0) { + while (true) { int next_offset; size_t byte_offset; @@ -2162,6 +2162,9 @@ return next_offset; byte_offset = next_offset * esz; + if (byte_offset >= len) + break; + id += next_offset; gpa += byte_offset; len -= byte_offset; --- linux-5.19.0.orig/arch/arm64/mm/fault.c +++ linux-5.19.0/arch/arm64/mm/fault.c @@ -353,6 +353,11 @@ return false; } +static bool is_translation_fault(unsigned long esr) +{ + return (esr & ESR_ELx_FSC_TYPE) == ESR_ELx_FSC_FAULT; +} + static void __do_kernel_fault(unsigned long addr, unsigned long esr, struct pt_regs *regs) { @@ -385,7 +390,8 @@ } else if (addr < PAGE_SIZE) { msg = "NULL pointer dereference"; } else { - if (kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs)) + if (is_translation_fault(esr) && + kfence_handle_page_fault(addr, esr & ESR_ELx_WNR, regs)) return; msg = "paging request"; --- linux-5.19.0.orig/arch/arm64/mm/mmu.c +++ linux-5.19.0/arch/arm64/mm/mmu.c @@ -516,7 +516,7 @@ */ BUILD_BUG_ON(pgd_index(direct_map_end - 1) == pgd_index(direct_map_end)); - if (can_set_direct_map() || IS_ENABLED(CONFIG_KFENCE)) + if (can_set_direct_map()) flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; /* @@ -625,24 +625,6 @@ vm_area_add_early(vma); } -static int __init parse_rodata(char *arg) -{ - int ret = strtobool(arg, &rodata_enabled); - if (!ret) { - rodata_full = false; - return 0; - } - - /* permit 'full' in addition to boolean options */ - if (strcmp(arg, "full")) - return -EINVAL; - - rodata_enabled = true; - rodata_full = true; - return 0; -} -early_param("rodata", parse_rodata); - #ifdef CONFIG_UNMAP_KERNEL_AT_EL0 static int __init map_entry_trampoline(void) { @@ -1517,11 +1499,7 @@ VM_BUG_ON(!mhp_range_allowed(start, size, true)); - /* - * KFENCE requires linear map to be mapped at page granularity, so that - * it is possible to protect/unprotect single pages in the KFENCE pool. - */ - if (can_set_direct_map() || IS_ENABLED(CONFIG_KFENCE)) + if (can_set_direct_map()) flags |= NO_BLOCK_MAPPINGS | NO_CONT_MAPPINGS; __create_pgd_mapping(swapper_pg_dir, start, __phys_to_virt(start), --- linux-5.19.0.orig/arch/arm64/mm/mteswap.c +++ linux-5.19.0/arch/arm64/mm/mteswap.c @@ -62,7 +62,12 @@ * the new page->flags are visible before the tags were updated. */ smp_wmb(); - mte_restore_page_tags(page_address(page), tags); + /* + * Test PG_mte_tagged again in case it was racing with another + * set_pte_at(). + */ + if (!test_and_set_bit(PG_mte_tagged, &page->flags)) + mte_restore_page_tags(page_address(page), tags); return true; } --- linux-5.19.0.orig/arch/arm64/mm/pageattr.c +++ linux-5.19.0/arch/arm64/mm/pageattr.c @@ -21,7 +21,13 @@ bool can_set_direct_map(void) { - return rodata_full || debug_pagealloc_enabled(); + /* + * rodata_full, DEBUG_PAGEALLOC and KFENCE require linear map to be + * mapped at page granularity, so that it is possible to + * protect/unprotect single pages. + */ + return (rodata_enabled && rodata_full) || debug_pagealloc_enabled() || + IS_ENABLED(CONFIG_KFENCE); } static int change_page_range(pte_t *ptep, unsigned long addr, void *data) @@ -96,7 +102,8 @@ * If we are manipulating read-only permissions, apply the same * change to the linear mapping of the pages that back this VM area. */ - if (rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || + if (rodata_enabled && + rodata_full && (pgprot_val(set_mask) == PTE_RDONLY || pgprot_val(clear_mask) == PTE_RDONLY)) { for (i = 0; i < area->nr_pages; i++) { __change_memory_common((u64)page_address(area->pages[i]), --- linux-5.19.0.orig/arch/arm64/mm/proc.S +++ linux-5.19.0/arch/arm64/mm/proc.S @@ -47,17 +47,19 @@ #ifdef CONFIG_KASAN_HW_TAGS #define TCR_MTE_FLAGS TCR_TCMA1 | TCR_TBI1 | TCR_TBID1 -#else +#elif defined(CONFIG_ARM64_MTE) /* * The mte_zero_clear_page_tags() implementation uses DC GZVA, which relies on * TBI being enabled at EL1. */ #define TCR_MTE_FLAGS TCR_TBI1 | TCR_TBID1 +#else +#define TCR_MTE_FLAGS 0 #endif /* * Default MAIR_EL1. MT_NORMAL_TAGGED is initially mapped as Normal memory and - * changed during __cpu_setup to Normal Tagged if the system supports MTE. + * changed during mte_cpu_setup to Normal Tagged if the system supports MTE. */ #define MAIR_EL1_SET \ (MAIR_ATTRIDX(MAIR_ATTR_DEVICE_nGnRnE, MT_DEVICE_nGnRnE) | \ @@ -421,46 +423,8 @@ mov_q mair, MAIR_EL1_SET mov_q tcr, TCR_TxSZ(VA_BITS) | TCR_CACHE_FLAGS | TCR_SMP_FLAGS | \ TCR_TG_FLAGS | TCR_KASLR_FLAGS | TCR_ASID16 | \ - TCR_TBI0 | TCR_A1 | TCR_KASAN_SW_FLAGS - -#ifdef CONFIG_ARM64_MTE - /* - * Update MAIR_EL1, GCR_EL1 and TFSR*_EL1 if MTE is supported - * (ID_AA64PFR1_EL1[11:8] > 1). - */ - mrs x10, ID_AA64PFR1_EL1 - ubfx x10, x10, #ID_AA64PFR1_MTE_SHIFT, #4 - cmp x10, #ID_AA64PFR1_MTE - b.lt 1f - - /* Normal Tagged memory type at the corresponding MAIR index */ - mov x10, #MAIR_ATTR_NORMAL_TAGGED - bfi mair, x10, #(8 * MT_NORMAL_TAGGED), #8 + TCR_TBI0 | TCR_A1 | TCR_KASAN_SW_FLAGS | TCR_MTE_FLAGS - mov x10, #KERNEL_GCR_EL1 - msr_s SYS_GCR_EL1, x10 - - /* - * If GCR_EL1.RRND=1 is implemented the same way as RRND=0, then - * RGSR_EL1.SEED must be non-zero for IRG to produce - * pseudorandom numbers. As RGSR_EL1 is UNKNOWN out of reset, we - * must initialize it. - */ - mrs x10, CNTVCT_EL0 - ands x10, x10, #SYS_RGSR_EL1_SEED_MASK - csinc x10, x10, xzr, ne - lsl x10, x10, #SYS_RGSR_EL1_SEED_SHIFT - msr_s SYS_RGSR_EL1, x10 - - /* clear any pending tag check faults in TFSR*_EL1 */ - msr_s SYS_TFSR_EL1, xzr - msr_s SYS_TFSRE0_EL1, xzr - - /* set the TCR_EL1 bits */ - mov_q x10, TCR_MTE_FLAGS - orr tcr, tcr, x10 -1: -#endif tcr_clear_errata_bits tcr, x9, x5 #ifdef CONFIG_ARM64_VA_BITS_52 --- linux-5.19.0.orig/arch/arm64/tools/cpucaps +++ linux-5.19.0/arch/arm64/tools/cpucaps @@ -61,10 +61,12 @@ WORKAROUND_1463225 WORKAROUND_1508412 WORKAROUND_1542419 +WORKAROUND_1742098 WORKAROUND_1902691 WORKAROUND_2038923 WORKAROUND_2064142 WORKAROUND_2077057 +WORKAROUND_2457168 WORKAROUND_TRBE_OVERWRITE_FILL_MODE WORKAROUND_TSB_FLUSH_FAILURE WORKAROUND_TRBE_WRITE_OUT_OF_RANGE --- linux-5.19.0.orig/arch/csky/abiv1/inc/abi/string.h +++ linux-5.19.0/arch/csky/abiv1/inc/abi/string.h @@ -6,4 +6,10 @@ #define __HAVE_ARCH_MEMCPY extern void *memcpy(void *, const void *, __kernel_size_t); +#define __HAVE_ARCH_MEMMOVE +extern void *memmove(void *, const void *, __kernel_size_t); + +#define __HAVE_ARCH_MEMSET +extern void *memset(void *, int, __kernel_size_t); + #endif /* __ABI_CSKY_STRING_H */ --- linux-5.19.0.orig/arch/csky/kernel/probes/kprobes.c +++ linux-5.19.0/arch/csky/kernel/probes/kprobes.c @@ -124,6 +124,10 @@ void __kprobes arch_remove_kprobe(struct kprobe *p) { + if (p->ainsn.api.insn) { + free_insn_slot(p->ainsn.api.insn, 0); + p->ainsn.api.insn = NULL; + } } static void __kprobes save_previous_kprobe(struct kprobe_ctlblk *kcb) --- linux-5.19.0.orig/arch/ia64/include/asm/processor.h +++ linux-5.19.0/arch/ia64/include/asm/processor.h @@ -538,7 +538,7 @@ { unsigned int reg = vector / 64; unsigned int bit = vector % 64; - u64 irr; + unsigned long irr; switch (reg) { case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break; --- linux-5.19.0.orig/arch/ia64/mm/numa.c +++ linux-5.19.0/arch/ia64/mm/numa.c @@ -75,5 +75,6 @@ return 0; return nid; } +EXPORT_SYMBOL(memory_add_physaddr_to_nid); #endif #endif --- linux-5.19.0.orig/arch/loongarch/Kconfig +++ linux-5.19.0/arch/loongarch/Kconfig @@ -36,6 +36,7 @@ select ARCH_INLINE_SPIN_UNLOCK_BH if !PREEMPTION select ARCH_INLINE_SPIN_UNLOCK_IRQ if !PREEMPTION select ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE if !PREEMPTION + select ARCH_KEEP_MEMBLOCK select ARCH_MIGHT_HAVE_PC_PARPORT select ARCH_MIGHT_HAVE_PC_SERIO select ARCH_SPARSEMEM_ENABLE --- linux-5.19.0.orig/arch/loongarch/Makefile +++ linux-5.19.0/arch/loongarch/Makefile @@ -66,7 +66,7 @@ ifdef CONFIG_LOONGARCH CHECKFLAGS += $(shell $(CC) $(KBUILD_CFLAGS) -dM -E -x c /dev/null | \ - egrep -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ + grep -E -vw '__GNUC_(MINOR_|PATCHLEVEL_)?_' | \ sed -e "s/^\#define /-D'/" -e "s/ /'='/" -e "s/$$/'/" -e 's/\$$/&&/g') endif --- linux-5.19.0.orig/arch/loongarch/include/asm/acpi.h +++ linux-5.19.0/arch/loongarch/include/asm/acpi.h @@ -15,7 +15,7 @@ extern int acpi_noirq; #define acpi_os_ioremap acpi_os_ioremap -void __init __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size); +void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size); static inline void disable_acpi(void) { --- linux-5.19.0.orig/arch/loongarch/include/asm/pgtable.h +++ linux-5.19.0/arch/loongarch/include/asm/pgtable.h @@ -355,13 +355,17 @@ static inline pte_t pte_mkdirty(pte_t pte) { - pte_val(pte) |= (_PAGE_DIRTY | _PAGE_MODIFIED); + pte_val(pte) |= _PAGE_MODIFIED; + if (pte_val(pte) & _PAGE_WRITE) + pte_val(pte) |= _PAGE_DIRTY; return pte; } static inline pte_t pte_mkwrite(pte_t pte) { - pte_val(pte) |= (_PAGE_WRITE | _PAGE_DIRTY); + pte_val(pte) |= _PAGE_WRITE; + if (pte_val(pte) & _PAGE_MODIFIED) + pte_val(pte) |= _PAGE_DIRTY; return pte; } @@ -458,7 +462,9 @@ static inline pmd_t pmd_mkwrite(pmd_t pmd) { - pmd_val(pmd) |= (_PAGE_WRITE | _PAGE_DIRTY); + pmd_val(pmd) |= _PAGE_WRITE; + if (pmd_val(pmd) & _PAGE_MODIFIED) + pmd_val(pmd) |= _PAGE_DIRTY; return pmd; } @@ -481,7 +487,9 @@ static inline pmd_t pmd_mkdirty(pmd_t pmd) { - pmd_val(pmd) |= (_PAGE_DIRTY | _PAGE_MODIFIED); + pmd_val(pmd) |= _PAGE_MODIFIED; + if (pmd_val(pmd) & _PAGE_WRITE) + pmd_val(pmd) |= _PAGE_DIRTY; return pmd; } --- linux-5.19.0.orig/arch/loongarch/kernel/acpi.c +++ linux-5.19.0/arch/loongarch/kernel/acpi.c @@ -113,7 +113,7 @@ early_memunmap(map, size); } -void __init __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size) +void __iomem *acpi_os_ioremap(acpi_physical_address phys, acpi_size size) { if (!memblock_is_memory(phys)) return ioremap(phys, size); @@ -121,23 +121,6 @@ return ioremap_cache(phys, size); } -void __init acpi_boot_table_init(void) -{ - /* - * If acpi_disabled, bail out - */ - if (acpi_disabled) - return; - - /* - * Initialize the ACPI boot-time table parser. - */ - if (acpi_table_init()) { - disable_acpi(); - return; - } -} - #ifdef CONFIG_SMP static int set_processor_mask(u32 id, u32 flags) { @@ -183,13 +166,21 @@ loongson_sysconf.nr_cpus = num_processors; } -int __init acpi_boot_init(void) +void __init acpi_boot_table_init(void) { /* * If acpi_disabled, bail out */ if (acpi_disabled) - return -1; + return; + + /* + * Initialize the ACPI boot-time table parser. + */ + if (acpi_table_init()) { + disable_acpi(); + return; + } loongson_sysconf.boot_cpu_id = read_csr_cpuid(); @@ -200,8 +191,6 @@ /* Do not enable ACPI SPCR console by default */ acpi_parse_spcr(earlycon_acpi_spcr_enable, false); - - return 0; } #ifdef CONFIG_ACPI_NUMA --- linux-5.19.0.orig/arch/loongarch/kernel/proc.c +++ linux-5.19.0/arch/loongarch/kernel/proc.c @@ -106,7 +106,7 @@ { unsigned long i = *pos; - return i < NR_CPUS ? (void *)(i + 1) : NULL; + return i < nr_cpu_ids ? (void *)(i + 1) : NULL; } static void *c_next(struct seq_file *m, void *v, loff_t *pos) --- linux-5.19.0.orig/arch/loongarch/kernel/process.c +++ linux-5.19.0/arch/loongarch/kernel/process.c @@ -149,7 +149,7 @@ childregs->csr_crmd = p->thread.csr_crmd; childregs->csr_prmd = p->thread.csr_prmd; childregs->csr_ecfg = p->thread.csr_ecfg; - return 0; + goto out; } /* user thread */ @@ -167,14 +167,15 @@ */ childregs->csr_euen = 0; + if (clone_flags & CLONE_SETTLS) + childregs->regs[2] = tls; + +out: clear_tsk_thread_flag(p, TIF_USEDFPU); clear_tsk_thread_flag(p, TIF_USEDSIMD); clear_tsk_thread_flag(p, TIF_LSX_CTX_LIVE); clear_tsk_thread_flag(p, TIF_LASX_CTX_LIVE); - if (clone_flags & CLONE_SETTLS) - childregs->regs[2] = tls; - return 0; } --- linux-5.19.0.orig/arch/loongarch/kernel/setup.c +++ linux-5.19.0/arch/loongarch/kernel/setup.c @@ -203,7 +203,6 @@ #ifdef CONFIG_ACPI acpi_gbl_use_default_register_widths = false; acpi_boot_table_init(); - acpi_boot_init(); #endif #ifdef CONFIG_NUMA --- linux-5.19.0.orig/arch/loongarch/mm/init.c +++ linux-5.19.0/arch/loongarch/mm/init.c @@ -131,18 +131,6 @@ return ret; } -#ifdef CONFIG_NUMA -int memory_add_physaddr_to_nid(u64 start) -{ - int nid; - - nid = pa_to_nid(start); - return nid; -} -EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); -#endif - -#ifdef CONFIG_MEMORY_HOTREMOVE void arch_remove_memory(u64 start, u64 size, struct vmem_altmap *altmap) { unsigned long start_pfn = start >> PAGE_SHIFT; @@ -154,6 +142,16 @@ page += vmem_altmap_offset(altmap); __remove_pages(start_pfn, nr_pages, altmap); } + +#ifdef CONFIG_NUMA +int memory_add_physaddr_to_nid(u64 start) +{ + int nid; + + nid = pa_to_nid(start); + return nid; +} +EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); #endif #endif --- linux-5.19.0.orig/arch/m68k/coldfire/device.c +++ linux-5.19.0/arch/m68k/coldfire/device.c @@ -581,7 +581,7 @@ }; #endif /* MCFSDHC_BASE */ -#if IS_ENABLED(CONFIG_CAN_FLEXCAN) +#ifdef MCFFLEXCAN_SIZE #include @@ -620,7 +620,7 @@ .resource = mcf5441x_flexcan0_resource, .dev.platform_data = &mcf5441x_flexcan_info, }; -#endif /* IS_ENABLED(CONFIG_CAN_FLEXCAN) */ +#endif /* MCFFLEXCAN_SIZE */ static struct platform_device *mcf_devices[] __initdata = { &mcf_uart, @@ -657,7 +657,7 @@ #ifdef MCFSDHC_BASE &mcf_esdhc, #endif -#if IS_ENABLED(CONFIG_CAN_FLEXCAN) +#ifdef MCFFLEXCAN_SIZE &mcf_flexcan0, #endif }; --- linux-5.19.0.orig/arch/m68k/virt/platform.c +++ linux-5.19.0/arch/m68k/virt/platform.c @@ -8,20 +8,15 @@ #define VIRTIO_BUS_NB 128 -static int __init virt_virtio_init(unsigned int id) +static struct platform_device * __init virt_virtio_init(unsigned int id) { const struct resource res[] = { DEFINE_RES_MEM(virt_bi_data.virtio.mmio + id * 0x200, 0x200), DEFINE_RES_IRQ(virt_bi_data.virtio.irq + id), }; - struct platform_device *pdev; - pdev = platform_device_register_simple("virtio-mmio", id, + return platform_device_register_simple("virtio-mmio", id, res, ARRAY_SIZE(res)); - if (IS_ERR(pdev)) - return PTR_ERR(pdev); - - return 0; } static int __init virt_platform_init(void) @@ -35,8 +30,10 @@ DEFINE_RES_MEM(virt_bi_data.rtc.mmio + 0x1000, 0x1000), DEFINE_RES_IRQ(virt_bi_data.rtc.irq + 1), }; - struct platform_device *pdev; + struct platform_device *pdev1, *pdev2; + struct platform_device *pdevs[VIRTIO_BUS_NB]; unsigned int i; + int ret = 0; if (!MACH_IS_VIRT) return -ENODEV; @@ -44,29 +41,40 @@ /* We need this to have DMA'able memory provided to goldfish-tty */ min_low_pfn = 0; - pdev = platform_device_register_simple("goldfish_tty", - PLATFORM_DEVID_NONE, - goldfish_tty_res, - ARRAY_SIZE(goldfish_tty_res)); - if (IS_ERR(pdev)) - return PTR_ERR(pdev); - - pdev = platform_device_register_simple("goldfish_rtc", - PLATFORM_DEVID_NONE, - goldfish_rtc_res, - ARRAY_SIZE(goldfish_rtc_res)); - if (IS_ERR(pdev)) - return PTR_ERR(pdev); + pdev1 = platform_device_register_simple("goldfish_tty", + PLATFORM_DEVID_NONE, + goldfish_tty_res, + ARRAY_SIZE(goldfish_tty_res)); + if (IS_ERR(pdev1)) + return PTR_ERR(pdev1); + + pdev2 = platform_device_register_simple("goldfish_rtc", + PLATFORM_DEVID_NONE, + goldfish_rtc_res, + ARRAY_SIZE(goldfish_rtc_res)); + if (IS_ERR(pdev2)) { + ret = PTR_ERR(pdev2); + goto err_unregister_tty; + } for (i = 0; i < VIRTIO_BUS_NB; i++) { - int err; - - err = virt_virtio_init(i); - if (err) - return err; + pdevs[i] = virt_virtio_init(i); + if (IS_ERR(pdevs[i])) { + ret = PTR_ERR(pdevs[i]); + goto err_unregister_rtc_virtio; + } } return 0; + +err_unregister_rtc_virtio: + while (i > 0) + platform_device_unregister(pdevs[--i]); + platform_device_unregister(pdev2); +err_unregister_tty: + platform_device_unregister(pdev1); + + return ret; } arch_initcall(virt_platform_init); --- linux-5.19.0.orig/arch/mips/bcm47xx/prom.c +++ linux-5.19.0/arch/mips/bcm47xx/prom.c @@ -86,7 +86,7 @@ pr_debug("Assume 128MB RAM\n"); break; } - if (!memcmp(prom_init, prom_init + mem, 32)) + if (!memcmp((void *)prom_init, (void *)prom_init + mem, 32)) break; } lowmem = mem; @@ -159,7 +159,7 @@ off = EXTVBASE + __pa(off); for (extmem = 128 << 20; extmem < 512 << 20; extmem <<= 1) { - if (!memcmp(prom_init, (void *)(off + extmem), 16)) + if (!memcmp((void *)prom_init, (void *)(off + extmem), 16)) break; } extmem -= lowmem; --- linux-5.19.0.orig/arch/mips/bcm63xx/clk.c +++ linux-5.19.0/arch/mips/bcm63xx/clk.c @@ -361,6 +361,8 @@ */ int clk_enable(struct clk *clk) { + if (!clk) + return 0; mutex_lock(&clocks_mutex); clk_enable_unlocked(clk); mutex_unlock(&clocks_mutex); --- linux-5.19.0.orig/arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts +++ linux-5.19.0/arch/mips/boot/dts/ralink/mt7621-gnubee-gb-pc2.dts @@ -83,12 +83,12 @@ &gmac1 { status = "okay"; - phy-handle = <ðphy7>; + phy-handle = <ðphy5>; }; &mdio { - ethphy7: ethernet-phy@7 { - reg = <7>; + ethphy5: ethernet-phy@5 { + reg = <5>; phy-mode = "rgmii-rxid"; }; }; --- linux-5.19.0.orig/arch/mips/cavium-octeon/executive/cvmx-helper-board.c +++ linux-5.19.0/arch/mips/cavium-octeon/executive/cvmx-helper-board.c @@ -211,7 +211,7 @@ { union cvmx_helper_link_info result; - WARN(!octeon_is_simulation(), + WARN_ONCE(!octeon_is_simulation(), "Using deprecated link status - please update your DT"); /* Unless we fix it later, all links are defaulted to down */ --- linux-5.19.0.orig/arch/mips/cavium-octeon/executive/cvmx-helper.c +++ linux-5.19.0/arch/mips/cavium-octeon/executive/cvmx-helper.c @@ -1096,7 +1096,7 @@ if (index == 0) result = __cvmx_helper_rgmii_link_get(ipd_port); else { - WARN(1, "Using deprecated link status - please update your DT"); + WARN_ONCE(1, "Using deprecated link status - please update your DT"); result.s.full_duplex = 1; result.s.link_up = 1; result.s.speed = 1000; --- linux-5.19.0.orig/arch/mips/cavium-octeon/octeon-platform.c +++ linux-5.19.0/arch/mips/cavium-octeon/octeon-platform.c @@ -86,11 +86,12 @@ "refclk-frequency", &clock_rate); if (i) { dev_err(dev, "No UCTL \"refclk-frequency\"\n"); + of_node_put(uctl_node); goto exit; } i = of_property_read_string(uctl_node, "refclk-type", &clock_type); - + of_node_put(uctl_node); if (!i && strcmp("crystal", clock_type) == 0) is_crystal_clock = true; } --- linux-5.19.0.orig/arch/mips/include/asm/fw/fw.h +++ linux-5.19.0/arch/mips/include/asm/fw/fw.h @@ -26,6 +26,6 @@ extern void fw_meminit(void); extern char *fw_getenv(char *name); extern unsigned long fw_getenvl(char *name); -extern void fw_init_early_console(char port); +extern void fw_init_early_console(void); #endif /* __ASM_FW_H_ */ --- linux-5.19.0.orig/arch/mips/include/asm/mach-ralink/mt7621.h +++ linux-5.19.0/arch/mips/include/asm/mach-ralink/mt7621.h @@ -7,10 +7,12 @@ #ifndef _MT7621_REGS_H_ #define _MT7621_REGS_H_ +#define IOMEM(x) ((void __iomem *)(KSEG1ADDR(x))) + #define MT7621_PALMBUS_BASE 0x1C000000 #define MT7621_PALMBUS_SIZE 0x03FFFFFF -#define MT7621_SYSC_BASE 0x1E000000 +#define MT7621_SYSC_BASE IOMEM(0x1E000000) #define SYSC_REG_CHIP_NAME0 0x00 #define SYSC_REG_CHIP_NAME1 0x04 --- linux-5.19.0.orig/arch/mips/kernel/jump_label.c +++ linux-5.19.0/arch/mips/kernel/jump_label.c @@ -56,7 +56,7 @@ * The branch offset must fit in the instruction's 26 * bit field. */ - WARN_ON((offset >= BIT(25)) || + WARN_ON((offset >= (long)BIT(25)) || (offset < -(long)BIT(25))); insn.j_format.opcode = bc6_op; --- linux-5.19.0.orig/arch/mips/kernel/proc.c +++ linux-5.19.0/arch/mips/kernel/proc.c @@ -311,7 +311,7 @@ { unsigned long i = *pos; - return i < NR_CPUS ? (void *) (i + 1) : NULL; + return i < nr_cpu_ids ? (void *) (i + 1) : NULL; } static void *c_next(struct seq_file *m, void *v, loff_t *pos) --- linux-5.19.0.orig/arch/mips/kernel/relocate_kernel.S +++ linux-5.19.0/arch/mips/kernel/relocate_kernel.S @@ -145,8 +145,7 @@ * kexec_args[0..3] are used to prepare register values. */ -kexec_args: - EXPORT(kexec_args) +EXPORT(kexec_args) arg0: PTR_WD 0x0 arg1: PTR_WD 0x0 arg2: PTR_WD 0x0 @@ -159,8 +158,7 @@ * their registers a0-a3. secondary_kexec_args[0..3] are used * to prepare register values. */ -secondary_kexec_args: - EXPORT(secondary_kexec_args) +EXPORT(secondary_kexec_args) s_arg0: PTR_WD 0x0 s_arg1: PTR_WD 0x0 s_arg2: PTR_WD 0x0 @@ -171,19 +169,16 @@ #endif -kexec_start_address: - EXPORT(kexec_start_address) +EXPORT(kexec_start_address) PTR_WD 0x0 .size kexec_start_address, PTRSIZE -kexec_indirection_page: - EXPORT(kexec_indirection_page) +EXPORT(kexec_indirection_page) PTR_WD 0 .size kexec_indirection_page, PTRSIZE relocate_new_kernel_end: -relocate_new_kernel_size: - EXPORT(relocate_new_kernel_size) +EXPORT(relocate_new_kernel_size) PTR_WD relocate_new_kernel_end - relocate_new_kernel .size relocate_new_kernel_size, PTRSIZE --- linux-5.19.0.orig/arch/mips/kernel/vdso.c +++ linux-5.19.0/arch/mips/kernel/vdso.c @@ -159,7 +159,7 @@ /* Map GIC user page. */ if (gic_size) { gic_base = (unsigned long)mips_gic_base + MIPS_GIC_USER_OFS; - gic_pfn = virt_to_phys((void *)gic_base) >> PAGE_SHIFT; + gic_pfn = PFN_DOWN(__pa(gic_base)); ret = io_remap_pfn_range(vma, base, gic_pfn, gic_size, pgprot_noncached(vma->vm_page_prot)); --- linux-5.19.0.orig/arch/mips/kernel/vpe-cmp.c +++ linux-5.19.0/arch/mips/kernel/vpe-cmp.c @@ -75,7 +75,6 @@ static void vpe_device_release(struct device *cd) { - kfree(cd); } static struct class vpe_class = { @@ -157,6 +156,7 @@ device_del(&vpe_device); out_class: + put_device(&vpe_device); class_unregister(&vpe_class); out_chrdev: @@ -169,7 +169,7 @@ { struct vpe *v, *n; - device_del(&vpe_device); + device_unregister(&vpe_device); class_unregister(&vpe_class); unregister_chrdev(major, VPE_MODULE_NAME); --- linux-5.19.0.orig/arch/mips/kernel/vpe-mt.c +++ linux-5.19.0/arch/mips/kernel/vpe-mt.c @@ -313,7 +313,6 @@ static void vpe_device_release(struct device *cd) { - kfree(cd); } static struct class vpe_class = { @@ -497,6 +496,7 @@ device_del(&vpe_device); out_class: + put_device(&vpe_device); class_unregister(&vpe_class); out_chrdev: @@ -509,7 +509,7 @@ { struct vpe *v, *n; - device_del(&vpe_device); + device_unregister(&vpe_device); class_unregister(&vpe_class); unregister_chrdev(major, VPE_MODULE_NAME); --- linux-5.19.0.orig/arch/mips/lantiq/clk.c +++ linux-5.19.0/arch/mips/lantiq/clk.c @@ -50,6 +50,7 @@ { return &cpu_clk_generic[2]; } +EXPORT_SYMBOL_GPL(clk_get_io); struct clk *clk_get_ppe(void) { --- linux-5.19.0.orig/arch/mips/loongson32/common/platform.c +++ linux-5.19.0/arch/mips/loongson32/common/platform.c @@ -98,7 +98,7 @@ if (plat_dat->bus_id) { __raw_writel(__raw_readl(LS1X_MUX_CTRL0) | GMAC1_USE_UART1 | GMAC1_USE_UART0, LS1X_MUX_CTRL0); - switch (plat_dat->interface) { + switch (plat_dat->phy_interface) { case PHY_INTERFACE_MODE_RGMII: val &= ~(GMAC1_USE_TXCLK | GMAC1_USE_PWM23); break; @@ -107,12 +107,12 @@ break; default: pr_err("unsupported mii mode %d\n", - plat_dat->interface); + plat_dat->phy_interface); return -ENOTSUPP; } val &= ~GMAC1_SHUT; } else { - switch (plat_dat->interface) { + switch (plat_dat->phy_interface) { case PHY_INTERFACE_MODE_RGMII: val &= ~(GMAC0_USE_TXCLK | GMAC0_USE_PWM01); break; @@ -121,7 +121,7 @@ break; default: pr_err("unsupported mii mode %d\n", - plat_dat->interface); + plat_dat->phy_interface); return -ENOTSUPP; } val &= ~GMAC0_SHUT; @@ -131,7 +131,7 @@ plat_dat = dev_get_platdata(&pdev->dev); val &= ~PHY_INTF_SELI; - if (plat_dat->interface == PHY_INTERFACE_MODE_RMII) + if (plat_dat->phy_interface == PHY_INTERFACE_MODE_RMII) val |= 0x4 << PHY_INTF_SELI_SHIFT; __raw_writel(val, LS1X_MUX_CTRL1); @@ -146,9 +146,9 @@ .bus_id = 0, .phy_addr = -1, #if defined(CONFIG_LOONGSON1_LS1B) - .interface = PHY_INTERFACE_MODE_MII, + .phy_interface = PHY_INTERFACE_MODE_MII, #elif defined(CONFIG_LOONGSON1_LS1C) - .interface = PHY_INTERFACE_MODE_RMII, + .phy_interface = PHY_INTERFACE_MODE_RMII, #endif .mdio_bus_data = &ls1x_mdio_bus_data, .dma_cfg = &ls1x_eth_dma_cfg, @@ -186,7 +186,7 @@ static struct plat_stmmacenet_data ls1x_eth1_pdata = { .bus_id = 1, .phy_addr = -1, - .interface = PHY_INTERFACE_MODE_MII, + .phy_interface = PHY_INTERFACE_MODE_MII, .mdio_bus_data = &ls1x_mdio_bus_data, .dma_cfg = &ls1x_eth_dma_cfg, .has_gmac = 1, --- linux-5.19.0.orig/arch/mips/loongson32/ls1c/board.c +++ linux-5.19.0/arch/mips/loongson32/ls1c/board.c @@ -15,7 +15,6 @@ static int __init ls1c_platform_init(void) { ls1x_serial_set_uartclk(&ls1x_uart_pdev); - ls1x_rtc_set_extclk(&ls1x_rtc_pdev); return platform_add_devices(ls1c_platform_devices, ARRAY_SIZE(ls1c_platform_devices)); --- linux-5.19.0.orig/arch/mips/loongson64/numa.c +++ linux-5.19.0/arch/mips/loongson64/numa.c @@ -196,7 +196,6 @@ pr_info("CP0_PageGrain: CP0 5.1 (0x%x)\n", read_c0_pagegrain()); prom_meminit(); } -EXPORT_SYMBOL(prom_init_numa_memory); pg_data_t * __init arch_alloc_nodedata(int nid) { --- linux-5.19.0.orig/arch/mips/loongson64/reset.c +++ linux-5.19.0/arch/mips/loongson64/reset.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -159,8 +160,17 @@ #ifdef CONFIG_KEXEC kexec_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); + if (WARN_ON(!kexec_argv)) + return -ENOMEM; + kdump_argv = kmalloc(KEXEC_ARGV_SIZE, GFP_KERNEL); + if (WARN_ON(!kdump_argv)) + return -ENOMEM; + kexec_envp = kmalloc(KEXEC_ENVP_SIZE, GFP_KERNEL); + if (WARN_ON(!kexec_envp)) + return -ENOMEM; + fw_arg1 = KEXEC_ARGV_ADDR; memcpy(kexec_envp, (void *)fw_arg2, KEXEC_ENVP_SIZE); --- linux-5.19.0.orig/arch/mips/mm/physaddr.c +++ linux-5.19.0/arch/mips/mm/physaddr.c @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -12,15 +13,6 @@ static inline bool __debug_virt_addr_valid(unsigned long x) { - /* high_memory does not get immediately defined, and there - * are early callers of __pa() against PAGE_OFFSET - */ - if (!high_memory && x >= PAGE_OFFSET) - return true; - - if (high_memory && x >= PAGE_OFFSET && x < (unsigned long)high_memory) - return true; - /* * MAX_DMA_ADDRESS is a virtual address that may not correspond to an * actual physical address. Enough code relies on @@ -30,7 +22,9 @@ if (x == MAX_DMA_ADDRESS) return true; - return false; + return x >= PAGE_OFFSET && (KSEGX(x) < KSEG2 || + IS_ENABLED(CONFIG_EVA) || + !IS_ENABLED(CONFIG_HIGHMEM)); } phys_addr_t __virt_to_phys(volatile const void *x) --- linux-5.19.0.orig/arch/mips/mm/tlbex.c +++ linux-5.19.0/arch/mips/mm/tlbex.c @@ -626,7 +626,7 @@ return; } - if (cpu_has_rixi && !!_PAGE_NO_EXEC) { + if (cpu_has_rixi && _PAGE_NO_EXEC != 0) { if (fill_includes_sw_bits) { UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL)); } else { @@ -2565,7 +2565,7 @@ unsigned long entry; unsigned pabits, fillbits; - if (!cpu_has_rixi || !_PAGE_NO_EXEC) { + if (!cpu_has_rixi || _PAGE_NO_EXEC == 0) { /* * We'll only be making use of the fact that we can rotate bits * into the fill if the CPU supports RIXI, so don't bother --- linux-5.19.0.orig/arch/mips/pic32/pic32mzda/early_console.c +++ linux-5.19.0/arch/mips/pic32/pic32mzda/early_console.c @@ -27,7 +27,7 @@ #define U_BRG(x) (UART_BASE(x) + 0x40) static void __iomem *uart_base; -static char console_port = -1; +static int console_port = -1; static int __init configure_uart_pins(int port) { @@ -47,7 +47,7 @@ return 0; } -static void __init configure_uart(char port, int baud) +static void __init configure_uart(int port, int baud) { u32 pbclk; @@ -60,7 +60,7 @@ uart_base + PIC32_SET(U_STA(port))); } -static void __init setup_early_console(char port, int baud) +static void __init setup_early_console(int port, int baud) { if (configure_uart_pins(port)) return; @@ -130,16 +130,15 @@ return baud; } -void __init fw_init_early_console(char port) +void __init fw_init_early_console(void) { char *arch_cmdline = pic32_getcmdline(); - int baud = -1; + int baud, port; uart_base = ioremap(PIC32_BASE_UART, 0xc00); baud = get_baud_from_cmdline(arch_cmdline); - if (port == -1) - port = get_port_from_cmdline(arch_cmdline); + port = get_port_from_cmdline(arch_cmdline); if (port == -1) port = EARLY_CONSOLE_PORT; --- linux-5.19.0.orig/arch/mips/pic32/pic32mzda/init.c +++ linux-5.19.0/arch/mips/pic32/pic32mzda/init.c @@ -47,7 +47,7 @@ strlcpy(arcs_cmdline, boot_command_line, COMMAND_LINE_SIZE); #ifdef CONFIG_EARLY_PRINTK - fw_init_early_console(-1); + fw_init_early_console(); #endif pic32_config_init(); } --- linux-5.19.0.orig/arch/mips/ralink/mt7621.c +++ linux-5.19.0/arch/mips/ralink/mt7621.c @@ -25,6 +25,7 @@ #define MT7621_MEM_TEST_PATTERN 0xaa5555aa static u32 detect_magic __initdata; +static struct ralink_soc_info *soc_info_ptr; int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge) { @@ -97,41 +98,83 @@ panic("Failed to remap core resources"); } -static void soc_dev_init(struct ralink_soc_info *soc_info, u32 rev) +static unsigned int __init mt7621_get_soc_name0(void) +{ + return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME0); +} + +static unsigned int __init mt7621_get_soc_name1(void) +{ + return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_NAME1); +} + +static bool __init mt7621_soc_valid(void) +{ + if (mt7621_get_soc_name0() == MT7621_CHIP_NAME0 && + mt7621_get_soc_name1() == MT7621_CHIP_NAME1) + return true; + else + return false; +} + +static const char __init *mt7621_get_soc_id(void) +{ + if (mt7621_soc_valid()) + return "MT7621"; + else + return "invalid"; +} + +static unsigned int __init mt7621_get_soc_rev(void) +{ + return __raw_readl(MT7621_SYSC_BASE + SYSC_REG_CHIP_REV); +} + +static unsigned int __init mt7621_get_soc_ver(void) +{ + return (mt7621_get_soc_rev() >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK; +} + +static unsigned int __init mt7621_get_soc_eco(void) +{ + return (mt7621_get_soc_rev() & CHIP_REV_ECO_MASK); +} + +static const char __init *mt7621_get_soc_revision(void) +{ + if (mt7621_get_soc_rev() == 1 && mt7621_get_soc_eco() == 1) + return "E2"; + else + return "E1"; +} + +static int __init mt7621_soc_dev_init(void) { struct soc_device *soc_dev; struct soc_device_attribute *soc_dev_attr; soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL); if (!soc_dev_attr) - return; + return -ENOMEM; soc_dev_attr->soc_id = "mt7621"; soc_dev_attr->family = "Ralink"; + soc_dev_attr->revision = mt7621_get_soc_revision(); - if (((rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK) == 1 && - (rev & CHIP_REV_ECO_MASK) == 1) - soc_dev_attr->revision = "E2"; - else - soc_dev_attr->revision = "E1"; - - soc_dev_attr->data = soc_info; + soc_dev_attr->data = soc_info_ptr; soc_dev = soc_device_register(soc_dev_attr); if (IS_ERR(soc_dev)) { kfree(soc_dev_attr); - return; + return PTR_ERR(soc_dev); } + + return 0; } +device_initcall(mt7621_soc_dev_init); void __init prom_soc_init(struct ralink_soc_info *soc_info) { - void __iomem *sysc = (void __iomem *) KSEG1ADDR(MT7621_SYSC_BASE); - unsigned char *name = NULL; - u32 n0; - u32 n1; - u32 rev; - /* Early detection of CMP support */ mips_cm_probe(); mips_cpc_probe(); @@ -154,27 +197,23 @@ __sync(); } - n0 = __raw_readl(sysc + SYSC_REG_CHIP_NAME0); - n1 = __raw_readl(sysc + SYSC_REG_CHIP_NAME1); - - if (n0 == MT7621_CHIP_NAME0 && n1 == MT7621_CHIP_NAME1) { - name = "MT7621"; + if (mt7621_soc_valid()) soc_info->compatible = "mediatek,mt7621-soc"; - } else { - panic("mt7621: unknown SoC, n0:%08x n1:%08x\n", n0, n1); - } + else + panic("mt7621: unknown SoC, n0:%08x n1:%08x\n", + mt7621_get_soc_name0(), + mt7621_get_soc_name1()); ralink_soc = MT762X_SOC_MT7621AT; - rev = __raw_readl(sysc + SYSC_REG_CHIP_REV); snprintf(soc_info->sys_type, RAMIPS_SYS_TYPE_LEN, "MediaTek %s ver:%u eco:%u", - name, - (rev >> CHIP_REV_VER_SHIFT) & CHIP_REV_VER_MASK, - (rev & CHIP_REV_ECO_MASK)); + mt7621_get_soc_id(), + mt7621_get_soc_ver(), + mt7621_get_soc_eco()); soc_info->mem_detect = mt7621_memory_detect; - soc_dev_init(soc_info, rev); + soc_info_ptr = soc_info; if (!register_cps_smp_ops()) return; --- linux-5.19.0.orig/arch/mips/ralink/of.c +++ linux-5.19.0/arch/mips/ralink/of.c @@ -21,6 +21,7 @@ #include #include #include +#include #include "common.h" @@ -81,7 +82,8 @@ __dt_register_buses(soc_info.compatible, "palmbus"); /* make sure that the reset controller is setup early */ - ralink_rst_init(); + if (ralink_soc != MT762X_SOC_MT7621AT) + ralink_rst_init(); return 0; } --- linux-5.19.0.orig/arch/mips/sgi-ip27/ip27-xtalk.c +++ linux-5.19.0/arch/mips/sgi-ip27/ip27-xtalk.c @@ -27,15 +27,18 @@ { struct xtalk_bridge_platform_data *bd; struct sgi_w1_platform_data *wd; - struct platform_device *pdev; + struct platform_device *pdev_wd; + struct platform_device *pdev_bd; struct resource w1_res; unsigned long offset; offset = NODE_OFFSET(nasid); wd = kzalloc(sizeof(*wd), GFP_KERNEL); - if (!wd) - goto no_mem; + if (!wd) { + pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget); + return; + } snprintf(wd->dev_id, sizeof(wd->dev_id), "bridge-%012lx", offset + (widget << SWIN_SIZE_BITS)); @@ -46,24 +49,35 @@ w1_res.end = w1_res.start + 3; w1_res.flags = IORESOURCE_MEM; - pdev = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO); - if (!pdev) { - kfree(wd); - goto no_mem; + pdev_wd = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO); + if (!pdev_wd) { + pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget); + goto err_kfree_wd; + } + if (platform_device_add_resources(pdev_wd, &w1_res, 1)) { + pr_warn("xtalk:n%d/%x bridge failed to add platform resources.\n", nasid, widget); + goto err_put_pdev_wd; + } + if (platform_device_add_data(pdev_wd, wd, sizeof(*wd))) { + pr_warn("xtalk:n%d/%x bridge failed to add platform data.\n", nasid, widget); + goto err_put_pdev_wd; + } + if (platform_device_add(pdev_wd)) { + pr_warn("xtalk:n%d/%x bridge failed to add platform device.\n", nasid, widget); + goto err_put_pdev_wd; } - platform_device_add_resources(pdev, &w1_res, 1); - platform_device_add_data(pdev, wd, sizeof(*wd)); /* platform_device_add_data() duplicates the data */ kfree(wd); - platform_device_add(pdev); bd = kzalloc(sizeof(*bd), GFP_KERNEL); - if (!bd) - goto no_mem; - pdev = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO); - if (!pdev) { - kfree(bd); - goto no_mem; + if (!bd) { + pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget); + goto err_unregister_pdev_wd; + } + pdev_bd = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO); + if (!pdev_bd) { + pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget); + goto err_kfree_bd; } @@ -84,15 +98,31 @@ bd->io.flags = IORESOURCE_IO; bd->io_offset = offset; - platform_device_add_data(pdev, bd, sizeof(*bd)); + if (platform_device_add_data(pdev_bd, bd, sizeof(*bd))) { + pr_warn("xtalk:n%d/%x bridge failed to add platform data.\n", nasid, widget); + goto err_put_pdev_bd; + } + if (platform_device_add(pdev_bd)) { + pr_warn("xtalk:n%d/%x bridge failed to add platform device.\n", nasid, widget); + goto err_put_pdev_bd; + } /* platform_device_add_data() duplicates the data */ kfree(bd); - platform_device_add(pdev); pr_info("xtalk:n%d/%x bridge widget\n", nasid, widget); return; -no_mem: - pr_warn("xtalk:n%d/%x bridge create out of memory\n", nasid, widget); +err_put_pdev_bd: + platform_device_put(pdev_bd); +err_kfree_bd: + kfree(bd); +err_unregister_pdev_wd: + platform_device_unregister(pdev_wd); + return; +err_put_pdev_wd: + platform_device_put(pdev_wd); +err_kfree_wd: + kfree(wd); + return; } static int probe_one_port(nasid_t nasid, int widget, int masterwid) --- linux-5.19.0.orig/arch/mips/sgi-ip30/ip30-xtalk.c +++ linux-5.19.0/arch/mips/sgi-ip30/ip30-xtalk.c @@ -40,12 +40,15 @@ { struct xtalk_bridge_platform_data *bd; struct sgi_w1_platform_data *wd; - struct platform_device *pdev; + struct platform_device *pdev_wd; + struct platform_device *pdev_bd; struct resource w1_res; wd = kzalloc(sizeof(*wd), GFP_KERNEL); - if (!wd) - goto no_mem; + if (!wd) { + pr_warn("xtalk:%x bridge create out of memory\n", widget); + return; + } snprintf(wd->dev_id, sizeof(wd->dev_id), "bridge-%012lx", IP30_SWIN_BASE(widget)); @@ -56,24 +59,35 @@ w1_res.end = w1_res.start + 3; w1_res.flags = IORESOURCE_MEM; - pdev = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO); - if (!pdev) { - kfree(wd); - goto no_mem; + pdev_wd = platform_device_alloc("sgi_w1", PLATFORM_DEVID_AUTO); + if (!pdev_wd) { + pr_warn("xtalk:%x bridge create out of memory\n", widget); + goto err_kfree_wd; + } + if (platform_device_add_resources(pdev_wd, &w1_res, 1)) { + pr_warn("xtalk:%x bridge failed to add platform resources.\n", widget); + goto err_put_pdev_wd; + } + if (platform_device_add_data(pdev_wd, wd, sizeof(*wd))) { + pr_warn("xtalk:%x bridge failed to add platform data.\n", widget); + goto err_put_pdev_wd; + } + if (platform_device_add(pdev_wd)) { + pr_warn("xtalk:%x bridge failed to add platform device.\n", widget); + goto err_put_pdev_wd; } - platform_device_add_resources(pdev, &w1_res, 1); - platform_device_add_data(pdev, wd, sizeof(*wd)); /* platform_device_add_data() duplicates the data */ kfree(wd); - platform_device_add(pdev); bd = kzalloc(sizeof(*bd), GFP_KERNEL); - if (!bd) - goto no_mem; - pdev = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO); - if (!pdev) { - kfree(bd); - goto no_mem; + if (!bd) { + pr_warn("xtalk:%x bridge create out of memory\n", widget); + goto err_unregister_pdev_wd; + } + pdev_bd = platform_device_alloc("xtalk-bridge", PLATFORM_DEVID_AUTO); + if (!pdev_bd) { + pr_warn("xtalk:%x bridge create out of memory\n", widget); + goto err_kfree_bd; } bd->bridge_addr = IP30_RAW_SWIN_BASE(widget); @@ -93,15 +107,31 @@ bd->io.flags = IORESOURCE_IO; bd->io_offset = IP30_SWIN_BASE(widget); - platform_device_add_data(pdev, bd, sizeof(*bd)); + if (platform_device_add_data(pdev_bd, bd, sizeof(*bd))) { + pr_warn("xtalk:%x bridge failed to add platform data.\n", widget); + goto err_put_pdev_bd; + } + if (platform_device_add(pdev_bd)) { + pr_warn("xtalk:%x bridge failed to add platform device.\n", widget); + goto err_put_pdev_bd; + } /* platform_device_add_data() duplicates the data */ kfree(bd); - platform_device_add(pdev); pr_info("xtalk:%x bridge widget\n", widget); return; -no_mem: - pr_warn("xtalk:%x bridge create out of memory\n", widget); +err_put_pdev_bd: + platform_device_put(pdev_bd); +err_kfree_bd: + kfree(bd); +err_unregister_pdev_wd: + platform_device_unregister(pdev_wd); + return; +err_put_pdev_wd: + platform_device_put(pdev_wd); +err_kfree_wd: + kfree(wd); + return; } static unsigned int __init xbow_widget_active(s8 wid) --- linux-5.19.0.orig/arch/nios2/boot/Makefile +++ linux-5.19.0/arch/nios2/boot/Makefile @@ -20,7 +20,7 @@ $(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE $(call if_changed,gzip) -$(obj)/vmImage: $(obj)/vmlinux.gz +$(obj)/vmImage: $(obj)/vmlinux.gz FORCE $(call if_changed,uimage) @$(kecho) 'Kernel: $@ is ready' --- linux-5.19.0.orig/arch/nios2/include/asm/entry.h +++ linux-5.19.0/arch/nios2/include/asm/entry.h @@ -50,7 +50,8 @@ stw r13, PT_R13(sp) stw r14, PT_R14(sp) stw r15, PT_R15(sp) - stw r2, PT_ORIG_R2(sp) + movi r24, -1 + stw r24, PT_ORIG_R2(sp) stw r7, PT_ORIG_R7(sp) stw ra, PT_RA(sp) --- linux-5.19.0.orig/arch/nios2/include/asm/ptrace.h +++ linux-5.19.0/arch/nios2/include/asm/ptrace.h @@ -74,6 +74,8 @@ ((struct pt_regs *)((unsigned long)current_thread_info() + THREAD_SIZE)\ - 1) +#define force_successful_syscall_return() (current_pt_regs()->orig_r2 = -1) + int do_syscall_trace_enter(void); void do_syscall_trace_exit(void); #endif /* __ASSEMBLY__ */ --- linux-5.19.0.orig/arch/nios2/kernel/entry.S +++ linux-5.19.0/arch/nios2/kernel/entry.S @@ -185,6 +185,7 @@ ldw r5, PT_R5(sp) local_restart: + stw r2, PT_ORIG_R2(sp) /* Check that the requested system call is within limits */ movui r1, __NR_syscalls bgeu r2, r1, ret_invsyscall @@ -192,7 +193,6 @@ movhi r11, %hiadj(sys_call_table) add r1, r1, r11 ldw r1, %lo(sys_call_table)(r1) - beq r1, r0, ret_invsyscall /* Check if we are being traced */ GET_THREAD_INFO r11 @@ -213,6 +213,9 @@ translate_rc_and_ret: movi r1, 0 bge r2, zero, 3f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 3f sub r2, zero, r2 movi r1, 1 3: @@ -255,9 +258,9 @@ ldw r6, PT_R6(sp) ldw r7, PT_R7(sp) - /* Fetch the syscall function, we don't need to check the boundaries - * since this is already done. - */ + /* Fetch the syscall function. */ + movui r1, __NR_syscalls + bgeu r2, r1, traced_invsyscall slli r1, r2, 2 movhi r11,%hiadj(sys_call_table) add r1, r1, r11 @@ -276,6 +279,9 @@ translate_rc_and_ret2: movi r1, 0 bge r2, zero, 4f + ldw r1, PT_ORIG_R2(sp) + addi r1, r1, 1 + beq r1, zero, 4f sub r2, zero, r2 movi r1, 1 4: @@ -287,6 +293,11 @@ RESTORE_SWITCH_STACK br ret_from_exception + /* If the syscall number was invalid return ENOSYS */ +traced_invsyscall: + movi r2, -ENOSYS + br translate_rc_and_ret2 + Luser_return: GET_THREAD_INFO r11 /* get thread_info pointer */ ldw r10, TI_FLAGS(r11) /* get thread_info->flags */ @@ -336,9 +347,6 @@ /* skip if no interrupt is pending */ beq r12, r0, ret_from_interrupt - movi r24, -1 - stw r24, PT_ORIG_R2(sp) - /* * Process an external hardware interrupt. */ --- linux-5.19.0.orig/arch/nios2/kernel/signal.c +++ linux-5.19.0/arch/nios2/kernel/signal.c @@ -242,7 +242,7 @@ /* * If we were from a system call, check for system call restarting... */ - if (regs->orig_r2 >= 0) { + if (regs->orig_r2 >= 0 && regs->r1) { continue_addr = regs->ea; restart_addr = continue_addr - 4; retval = regs->r2; @@ -264,6 +264,7 @@ regs->ea = restart_addr; break; } + regs->orig_r2 = -1; } if (get_signal(&ksig)) { --- linux-5.19.0.orig/arch/nios2/kernel/syscall_table.c +++ linux-5.19.0/arch/nios2/kernel/syscall_table.c @@ -13,5 +13,6 @@ #define __SYSCALL(nr, call) [nr] = (call), void *sys_call_table[__NR_syscalls] = { + [0 ... __NR_syscalls-1] = sys_ni_syscall, #include }; --- linux-5.19.0.orig/arch/openrisc/include/asm/io.h +++ linux-5.19.0/arch/openrisc/include/asm/io.h @@ -31,7 +31,7 @@ void __iomem *ioremap(phys_addr_t offset, unsigned long size); #define iounmap iounmap -extern void iounmap(void __iomem *addr); +extern void iounmap(volatile void __iomem *addr); #include --- linux-5.19.0.orig/arch/openrisc/mm/ioremap.c +++ linux-5.19.0/arch/openrisc/mm/ioremap.c @@ -77,7 +77,7 @@ } EXPORT_SYMBOL(ioremap); -void iounmap(void __iomem *addr) +void iounmap(volatile void __iomem *addr) { /* If the page is from the fixmap pool then we just clear out * the fixmap mapping. --- linux-5.19.0.orig/arch/parisc/Kconfig +++ linux-5.19.0/arch/parisc/Kconfig @@ -147,10 +147,10 @@ choice prompt "Processor type" - default PA7000 + default PA7000 if "$(ARCH)" = "parisc" config PA7000 - bool "PA7000/PA7100" + bool "PA7000/PA7100" if "$(ARCH)" = "parisc" help This is the processor type of your CPU. This information is used for optimizing purposes. In order to compile a kernel @@ -161,21 +161,21 @@ which is required on some machines. config PA7100LC - bool "PA7100LC" + bool "PA7100LC" if "$(ARCH)" = "parisc" help Select this option for the PCX-L processor, as used in the 712, 715/64, 715/80, 715/100, 715/100XC, 725/100, 743, 748, D200, D210, D300, D310 and E-class config PA7200 - bool "PA7200" + bool "PA7200" if "$(ARCH)" = "parisc" help Select this option for the PCX-T' processor, as used in the C100, C110, J100, J110, J210XC, D250, D260, D350, D360, K100, K200, K210, K220, K400, K410 and K420 config PA7300LC - bool "PA7300LC" + bool "PA7300LC" if "$(ARCH)" = "parisc" help Select this option for the PCX-L2 processor, as used in the 744, A180, B132L, B160L, B180L, C132L, C160L, C180L, @@ -225,7 +225,8 @@ Enabling this option will probably slow down your kernel. config 64BIT - bool "64-bit kernel" + def_bool y if "$(ARCH)" = "parisc64" + bool "64-bit kernel" if "$(ARCH)" = "parisc" depends on PA8X00 help Enable this if you want to support 64bit kernel on PA-RISC platform. --- linux-5.19.0.orig/arch/parisc/include/asm/bitops.h +++ linux-5.19.0/arch/parisc/include/asm/bitops.h @@ -12,14 +12,6 @@ #include #include -/* compiler build environment sanity checks: */ -#if !defined(CONFIG_64BIT) && defined(__LP64__) -#error "Please use 'ARCH=parisc' to build the 32-bit kernel." -#endif -#if defined(CONFIG_64BIT) && !defined(__LP64__) -#error "Please use 'ARCH=parisc64' to build the 64-bit kernel." -#endif - /* See http://marc.theaimsgroup.com/?t=108826637900003 for discussion * on use of volatile and __*_bit() (set/clear/change): * *_bit() want use of volatile. --- linux-5.19.0.orig/arch/parisc/include/asm/hardware.h +++ linux-5.19.0/arch/parisc/include/asm/hardware.h @@ -10,12 +10,12 @@ #define SVERSION_ANY_ID PA_SVERSION_ANY_ID struct hp_hardware { - unsigned short hw_type:5; /* HPHW_xxx */ - unsigned short hversion; - unsigned long sversion:28; - unsigned short opt; - const char name[80]; /* The hardware description */ -}; + unsigned int hw_type:8; /* HPHW_xxx */ + unsigned int hversion:12; + unsigned int sversion:12; + unsigned char opt; + unsigned char name[59]; /* The hardware description */ +} __packed; struct parisc_device; --- linux-5.19.0.orig/arch/parisc/include/asm/pgtable.h +++ linux-5.19.0/arch/parisc/include/asm/pgtable.h @@ -192,6 +192,11 @@ #define _PAGE_PRESENT_BIT 22 /* (0x200) Software: translation valid */ #define _PAGE_HPAGE_BIT 21 /* (0x400) Software: Huge Page */ #define _PAGE_USER_BIT 20 /* (0x800) Software: User accessible page */ +#ifdef CONFIG_HUGETLB_PAGE +#define _PAGE_SPECIAL_BIT _PAGE_DMB_BIT /* DMB feature is currently unused */ +#else +#define _PAGE_SPECIAL_BIT _PAGE_HPAGE_BIT /* use unused HUGE PAGE bit */ +#endif /* N.B. The bits are defined in terms of a 32 bit word above, so the */ /* following macro is ok for both 32 and 64 bit. */ @@ -219,7 +224,7 @@ #define _PAGE_PRESENT (1 << xlate_pabit(_PAGE_PRESENT_BIT)) #define _PAGE_HUGE (1 << xlate_pabit(_PAGE_HPAGE_BIT)) #define _PAGE_USER (1 << xlate_pabit(_PAGE_USER_BIT)) -#define _PAGE_SPECIAL (_PAGE_DMB) +#define _PAGE_SPECIAL (1 << xlate_pabit(_PAGE_SPECIAL_BIT)) #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED) #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_SPECIAL) --- linux-5.19.0.orig/arch/parisc/kernel/cache.c +++ linux-5.19.0/arch/parisc/kernel/cache.c @@ -50,9 +50,6 @@ */ DEFINE_SPINLOCK(pa_tlb_flush_lock); -/* Swapper page setup lock. */ -DEFINE_SPINLOCK(pa_swapper_pg_lock); - #if defined(CONFIG_64BIT) && defined(CONFIG_SMP) int pa_serialize_tlb_flushes __ro_after_init; #endif --- linux-5.19.0.orig/arch/parisc/kernel/drivers.c +++ linux-5.19.0/arch/parisc/kernel/drivers.c @@ -520,7 +520,6 @@ dev->id.hversion_rev = iodc_data[1] & 0x0f; dev->id.sversion = ((iodc_data[4] & 0x0f) << 16) | (iodc_data[5] << 8) | iodc_data[6]; - dev->hpa.name = parisc_pathname(dev); dev->hpa.start = hpa; /* This is awkward. The STI spec says that gfx devices may occupy * 32MB or 64MB. Unfortunately, we don't know how to tell whether @@ -534,10 +533,10 @@ dev->hpa.end = hpa + 0xfff; } dev->hpa.flags = IORESOURCE_MEM; - name = parisc_hardware_description(&dev->id); - if (name) { - strlcpy(dev->name, name, sizeof(dev->name)); - } + dev->hpa.name = dev->name; + name = parisc_hardware_description(&dev->id) ? : "unknown"; + snprintf(dev->name, sizeof(dev->name), "%s [%s]", + name, parisc_pathname(dev)); /* Silently fail things like mouse ports which are subsumed within * the keyboard controller @@ -883,15 +882,13 @@ &root); } -static void print_parisc_device(struct parisc_device *dev) +static __init void print_parisc_device(struct parisc_device *dev) { - char hw_path[64]; - static int count; + static int count __initdata; - print_pa_hwpath(dev, hw_path); - 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); + pr_info("%d. %s at %pap { type:%d, hv:%#x, sv:%#x, rev:%#x }", + ++count, dev->name, &(dev->hpa.start), dev->id.hw_type, + dev->id.hversion, dev->id.sversion, dev->id.hversion_rev); if (dev->num_addrs) { int k; @@ -1080,7 +1077,7 @@ -static int print_one_device(struct device * dev, void * data) +static __init int print_one_device(struct device * dev, void * data) { struct parisc_device * pdev = to_parisc_device(dev); --- linux-5.19.0.orig/arch/parisc/kernel/entry.S +++ linux-5.19.0/arch/parisc/kernel/entry.S @@ -499,6 +499,10 @@ * Finally, _PAGE_READ goes in the top bit of PL1 (so we * trigger an access rights trap in user space if the user * tries to read an unreadable page */ +#if _PAGE_SPECIAL_BIT == _PAGE_DMB_BIT + /* need to drop DMB bit, as it's used as SPECIAL flag */ + depi 0,_PAGE_SPECIAL_BIT,1,\pte +#endif depd \pte,8,7,\prot /* PAGE_USER indicates the page can be read with user privileges, @@ -529,6 +533,10 @@ * makes the tlb entry for the differently formatted pa11 * insertion instructions */ .macro make_insert_tlb_11 spc,pte,prot +#if _PAGE_SPECIAL_BIT == _PAGE_DMB_BIT + /* need to drop DMB bit, as it's used as SPECIAL flag */ + depi 0,_PAGE_SPECIAL_BIT,1,\pte +#endif zdep \spc,30,15,\prot dep \pte,8,7,\prot extru,= \pte,_PAGE_NO_CACHE_BIT,1,%r0 --- linux-5.19.0.orig/arch/parisc/kernel/head.S +++ linux-5.19.0/arch/parisc/kernel/head.S @@ -22,7 +22,7 @@ #include #include - .level PA_ASM_LEVEL + .level 1.1 __INITDATA ENTRY(boot_args) @@ -70,6 +70,47 @@ stw,ma %arg2,4(%r1) stw,ma %arg3,4(%r1) +#if !defined(CONFIG_64BIT) && defined(CONFIG_PA20) + /* This 32-bit kernel was compiled for PA2.0 CPUs. Check current CPU + * and halt kernel if we detect a PA1.x CPU. */ + ldi 32,%r10 + mtctl %r10,%cr11 + .level 2.0 + mfctl,w %cr11,%r10 + .level 1.1 + comib,<>,n 0,%r10,$cpu_ok + + load32 PA(msg1),%arg0 + ldi msg1_end-msg1,%arg1 +$iodc_panic: + copy %arg0, %r10 + copy %arg1, %r11 + load32 PA(init_stack),%sp +#define MEM_CONS 0x3A0 + ldw MEM_CONS+32(%r0),%arg0 // HPA + ldi ENTRY_IO_COUT,%arg1 + ldw MEM_CONS+36(%r0),%arg2 // SPA + ldw MEM_CONS+8(%r0),%arg3 // layers + load32 PA(__bss_start),%r1 + stw %r1,-52(%sp) // arg4 + stw %r0,-56(%sp) // arg5 + stw %r10,-60(%sp) // arg6 = ptr to text + stw %r11,-64(%sp) // arg7 = len + stw %r0,-68(%sp) // arg8 + load32 PA(.iodc_panic_ret), %rp + ldw MEM_CONS+40(%r0),%r1 // ENTRY_IODC + bv,n (%r1) +.iodc_panic_ret: + b . /* wait endless with ... */ + or %r10,%r10,%r10 /* qemu idle sleep */ +msg1: .ascii "Can't boot kernel which was built for PA8x00 CPUs on this machine.\r\n" +msg1_end: + +$cpu_ok: +#endif + + .level PA_ASM_LEVEL + /* Initialize startup VM. Just map first 16/32 MB of memory */ load32 PA(swapper_pg_dir),%r4 mtctl %r4,%cr24 /* Initialize kernel root pointer */ --- linux-5.19.0.orig/arch/parisc/kernel/syscalls/syscall.tbl +++ linux-5.19.0/arch/parisc/kernel/syscalls/syscall.tbl @@ -413,7 +413,7 @@ 412 32 utimensat_time64 sys_utimensat sys_utimensat 413 32 pselect6_time64 sys_pselect6 compat_sys_pselect6_time64 414 32 ppoll_time64 sys_ppoll compat_sys_ppoll_time64 -416 32 io_pgetevents_time64 sys_io_pgetevents sys_io_pgetevents +416 32 io_pgetevents_time64 sys_io_pgetevents compat_sys_io_pgetevents_time64 417 32 recvmmsg_time64 sys_recvmmsg compat_sys_recvmmsg_time64 418 32 mq_timedsend_time64 sys_mq_timedsend sys_mq_timedsend 419 32 mq_timedreceive_time64 sys_mq_timedreceive sys_mq_timedreceive --- linux-5.19.0.orig/arch/parisc/kernel/unaligned.c +++ linux-5.19.0/arch/parisc/kernel/unaligned.c @@ -93,7 +93,7 @@ #define R1(i) (((i)>>21)&0x1f) #define R2(i) (((i)>>16)&0x1f) #define R3(i) ((i)&0x1f) -#define FR3(i) ((((i)<<1)&0x1f)|(((i)>>6)&1)) +#define FR3(i) ((((i)&0x1f)<<1)|(((i)>>6)&1)) #define IM(i,n) (((i)>>1&((1<<(n-1))-1))|((i)&1?((0-1L)<<(n-1)):0)) #define IM5_2(i) IM((i)>>16,5) #define IM5_3(i) IM((i),5) --- linux-5.19.0.orig/arch/powerpc/Kconfig +++ linux-5.19.0/arch/powerpc/Kconfig @@ -283,7 +283,7 @@ # config PPC_LONG_DOUBLE_128 - depends on PPC64 + depends on PPC64 && ALTIVEC def_bool $(success,test "$(shell,echo __LONG_DOUBLE_128__ | $(CC) -E -P -)" = 1) config PPC_BARRIER_NOSPEC @@ -817,7 +817,7 @@ default 24 if STRICT_KERNEL_RWX && PPC64 range 17 28 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC || KFENCE) && PPC_BOOK3S_32 range 19 23 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC || KFENCE) && PPC_8xx - range 20 24 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC || KFENCE) && PPC_FSL_BOOKE + range 20 24 if (STRICT_KERNEL_RWX || DEBUG_PAGEALLOC || KFENCE) && FSL_BOOKE default 22 if STRICT_KERNEL_RWX && PPC_BOOK3S_32 default 18 if (DEBUG_PAGEALLOC || KFENCE) && PPC_BOOK3S_32 default 23 if STRICT_KERNEL_RWX && PPC_8xx --- linux-5.19.0.orig/arch/powerpc/Makefile +++ linux-5.19.0/arch/powerpc/Makefile @@ -15,23 +15,6 @@ # Set default 32 bits cross compilers for vdso and boot wrapper CROSS32_COMPILE ?= -ifeq ($(HAS_BIARCH),y) -ifeq ($(CROSS32_COMPILE),) -ifdef CONFIG_PPC32 -# These options will be overridden by any -mcpu option that the CPU -# or platform code sets later on the command line, but they are needed -# to set a sane 32-bit cpu target for the 64-bit cross compiler which -# may default to the wrong ISA. -KBUILD_CFLAGS += -mcpu=powerpc -KBUILD_AFLAGS += -mcpu=powerpc -endif -endif -endif - -ifdef CONFIG_PPC_BOOK3S_32 -KBUILD_CFLAGS += -mcpu=powerpc -endif - # If we're on a ppc/ppc64/ppc64le machine use that defconfig, otherwise just use # ppc64_defconfig because we have nothing better to go on. uname := $(shell uname -m) @@ -169,7 +152,7 @@ CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power9,-mtune=power8) else CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,$(call cc-option,-mtune=power5)) -CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mcpu=power5,-mcpu=power4) +CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=power4 endif else ifdef CONFIG_PPC_BOOK3E_64 CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64 @@ -183,6 +166,7 @@ endif CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) +AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += $(call cc-option,-mcpu=$(CONFIG_TARGET_CPU)) # Altivec option not allowed with e500mc64 in GCC. ifdef CONFIG_ALTIVEC @@ -193,14 +177,6 @@ CFLAGS-$(CONFIG_E5500_CPU) += $(E5500_CPU) CFLAGS-$(CONFIG_E6500_CPU) += $(call cc-option,-mcpu=e6500,$(E5500_CPU)) -ifdef CONFIG_PPC32 -ifdef CONFIG_PPC_E500MC -CFLAGS-y += $(call cc-option,-mcpu=e500mc,-mcpu=powerpc) -else -CFLAGS-$(CONFIG_E500) += $(call cc-option,-mcpu=8540 -msoft-float,-mcpu=powerpc) -endif -endif - asinstr := $(call as-instr,lis 9$(comma)foo@high,-DHAVE_AS_ATHIGH=1) KBUILD_CPPFLAGS += -I $(srctree)/arch/$(ARCH) $(asinstr) @@ -272,7 +248,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-5.19.0.orig/arch/powerpc/boot/Makefile +++ linux-5.19.0/arch/powerpc/boot/Makefile @@ -34,6 +34,7 @@ BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -O2 -msoft-float -mno-altivec -mno-vsx \ + $(call cc-option,-mno-spe) $(call cc-option,-mspe=no) \ -pipe -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \ $(LINUXINCLUDE) --- linux-5.19.0.orig/arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi +++ linux-5.19.0/arch/powerpc/boot/dts/fsl/e500v1_power_isa.dtsi @@ -0,0 +1,51 @@ +/* + * e500v1 Power ISA Device Tree Source (include) + * + * Copyright 2012 Freescale Semiconductor Inc. + * + * 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. + * * Neither the name of Freescale Semiconductor nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * + * ALTERNATIVELY, this software may be distributed under the terms of the + * GNU General Public License ("GPL") as published by the Free Software + * Foundation, either version 2 of that License or (at your option) any + * later version. + * + * THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/ { + cpus { + power-isa-version = "2.03"; + power-isa-b; // Base + power-isa-e; // Embedded + power-isa-atb; // Alternate Time Base + power-isa-cs; // Cache Specification + power-isa-e.le; // Embedded.Little-Endian + power-isa-e.pm; // Embedded.Performance Monitor + power-isa-ecl; // Embedded Cache Locking + power-isa-mmc; // Memory Coherence + power-isa-sp; // Signal Processing Engine + power-isa-sp.fs; // SPE.Embedded Float Scalar Single + power-isa-sp.fv; // SPE.Embedded Float Vector + mmu-type = "power-embedded"; + }; +}; --- linux-5.19.0.orig/arch/powerpc/boot/dts/fsl/mpc8540ads.dts +++ linux-5.19.0/arch/powerpc/boot/dts/fsl/mpc8540ads.dts @@ -7,7 +7,7 @@ /dts-v1/; -/include/ "e500v2_power_isa.dtsi" +/include/ "e500v1_power_isa.dtsi" / { model = "MPC8540ADS"; --- linux-5.19.0.orig/arch/powerpc/boot/dts/fsl/mpc8541cds.dts +++ linux-5.19.0/arch/powerpc/boot/dts/fsl/mpc8541cds.dts @@ -7,7 +7,7 @@ /dts-v1/; -/include/ "e500v2_power_isa.dtsi" +/include/ "e500v1_power_isa.dtsi" / { model = "MPC8541CDS"; --- linux-5.19.0.orig/arch/powerpc/boot/dts/fsl/mpc8555cds.dts +++ linux-5.19.0/arch/powerpc/boot/dts/fsl/mpc8555cds.dts @@ -7,7 +7,7 @@ /dts-v1/; -/include/ "e500v2_power_isa.dtsi" +/include/ "e500v1_power_isa.dtsi" / { model = "MPC8555CDS"; --- linux-5.19.0.orig/arch/powerpc/boot/dts/fsl/mpc8560ads.dts +++ linux-5.19.0/arch/powerpc/boot/dts/fsl/mpc8560ads.dts @@ -7,7 +7,7 @@ /dts-v1/; -/include/ "e500v2_power_isa.dtsi" +/include/ "e500v1_power_isa.dtsi" / { model = "MPC8560ADS"; --- linux-5.19.0.orig/arch/powerpc/configs/44x/akebono_defconfig +++ linux-5.19.0/arch/powerpc/configs/44x/akebono_defconfig @@ -118,7 +118,7 @@ CONFIG_NLS_DEFAULT="n" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_XMON=y --- linux-5.19.0.orig/arch/powerpc/configs/44x/currituck_defconfig +++ linux-5.19.0/arch/powerpc/configs/44x/currituck_defconfig @@ -73,7 +73,7 @@ CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_NLS_DEFAULT="n" -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_XMON=y --- linux-5.19.0.orig/arch/powerpc/configs/44x/fsp2_defconfig +++ linux-5.19.0/arch/powerpc/configs/44x/fsp2_defconfig @@ -110,7 +110,7 @@ CONFIG_PRINTK_TIME=y CONFIG_MESSAGE_LOGLEVEL_DEFAULT=3 CONFIG_DYNAMIC_DEBUG=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_CRYPTO_CBC=y --- linux-5.19.0.orig/arch/powerpc/configs/44x/iss476-smp_defconfig +++ linux-5.19.0/arch/powerpc/configs/44x/iss476-smp_defconfig @@ -56,7 +56,7 @@ CONFIG_TMPFS=y CONFIG_CRAMFS=y # CONFIG_NETWORK_FILESYSTEMS is not set -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_PPC_EARLY_DEBUG=y --- linux-5.19.0.orig/arch/powerpc/configs/44x/warp_defconfig +++ linux-5.19.0/arch/powerpc/configs/44x/warp_defconfig @@ -88,7 +88,7 @@ CONFIG_CRC_CCITT=y CONFIG_CRC_T10DIF=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/configs/52xx/lite5200b_defconfig +++ linux-5.19.0/arch/powerpc/configs/52xx/lite5200b_defconfig @@ -58,6 +58,6 @@ CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set --- linux-5.19.0.orig/arch/powerpc/configs/52xx/motionpro_defconfig +++ linux-5.19.0/arch/powerpc/configs/52xx/motionpro_defconfig @@ -84,7 +84,7 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_CRYPTO_ECB=y --- linux-5.19.0.orig/arch/powerpc/configs/52xx/tqm5200_defconfig +++ linux-5.19.0/arch/powerpc/configs/52xx/tqm5200_defconfig @@ -85,7 +85,7 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_DEBUG_BUGVERBOSE is not set CONFIG_CRYPTO_ECB=y --- linux-5.19.0.orig/arch/powerpc/configs/adder875_defconfig +++ linux-5.19.0/arch/powerpc/configs/adder875_defconfig @@ -45,7 +45,7 @@ CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y CONFIG_CRC32_SLICEBY4=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/configs/ep8248e_defconfig +++ linux-5.19.0/arch/powerpc/configs/ep8248e_defconfig @@ -59,7 +59,7 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y # CONFIG_SCHED_DEBUG is not set CONFIG_BDI_SWITCH=y --- linux-5.19.0.orig/arch/powerpc/configs/ep88xc_defconfig +++ linux-5.19.0/arch/powerpc/configs/ep88xc_defconfig @@ -48,6 +48,6 @@ CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y CONFIG_CRC32_SLICEBY4=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/configs/fsl-emb-nonhw.config +++ linux-5.19.0/arch/powerpc/configs/fsl-emb-nonhw.config @@ -24,7 +24,7 @@ CONFIG_CRYPTO_SHA256=y CONFIG_CRYPTO_SHA512=y CONFIG_DEBUG_FS=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_KERNEL=y CONFIG_DEBUG_SHIRQ=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/configs/mgcoge_defconfig +++ linux-5.19.0/arch/powerpc/configs/mgcoge_defconfig @@ -73,7 +73,7 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_FS=y CONFIG_MAGIC_SYSRQ=y # CONFIG_SCHED_DEBUG is not set --- linux-5.19.0.orig/arch/powerpc/configs/mpc5200_defconfig +++ linux-5.19.0/arch/powerpc/configs/mpc5200_defconfig @@ -122,6 +122,6 @@ CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y CONFIG_PRINTK_TIME=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_DEBUG_KERNEL=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/configs/mpc8272_ads_defconfig +++ linux-5.19.0/arch/powerpc/configs/mpc8272_ads_defconfig @@ -67,7 +67,7 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y CONFIG_BDI_SWITCH=y --- linux-5.19.0.orig/arch/powerpc/configs/mpc885_ads_defconfig +++ linux-5.19.0/arch/powerpc/configs/mpc885_ads_defconfig @@ -71,7 +71,7 @@ CONFIG_CRYPTO=y CONFIG_CRYPTO_DEV_TALITOS=y CONFIG_CRC32_SLICEBY4=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_FS=y CONFIG_DEBUG_VM_PGTABLE=y --- linux-5.19.0.orig/arch/powerpc/configs/ppc6xx_defconfig +++ linux-5.19.0/arch/powerpc/configs/ppc6xx_defconfig @@ -1065,7 +1065,7 @@ CONFIG_NLS_ISO8859_15=m CONFIG_NLS_KOI8_R=m CONFIG_NLS_KOI8_U=m -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_HEADERS_INSTALL=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_KERNEL=y --- linux-5.19.0.orig/arch/powerpc/configs/pq2fads_defconfig +++ linux-5.19.0/arch/powerpc/configs/pq2fads_defconfig @@ -68,7 +68,7 @@ CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y CONFIG_NLS_UTF8=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y # CONFIG_SCHED_DEBUG is not set --- linux-5.19.0.orig/arch/powerpc/configs/ps3_defconfig +++ linux-5.19.0/arch/powerpc/configs/ps3_defconfig @@ -153,7 +153,7 @@ CONFIG_NLS_ISO8859_1=y CONFIG_CRC_CCITT=m CONFIG_CRC_T10DIF=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DEBUG_MEMORY_INIT=y CONFIG_DEBUG_STACKOVERFLOW=y --- linux-5.19.0.orig/arch/powerpc/configs/pseries_defconfig +++ linux-5.19.0/arch/powerpc/configs/pseries_defconfig @@ -40,6 +40,7 @@ CONFIG_DTL=y CONFIG_PPC_SMLPAR=y CONFIG_IBMEBUS=y +CONFIG_LIBNVDIMM=m CONFIG_PAPR_SCM=m CONFIG_PPC_SVM=y # CONFIG_PPC_PMAC is not set --- linux-5.19.0.orig/arch/powerpc/configs/tqm8xx_defconfig +++ linux-5.19.0/arch/powerpc/configs/tqm8xx_defconfig @@ -55,6 +55,6 @@ CONFIG_NFS_FS=y CONFIG_ROOT_NFS=y CONFIG_CRC32_SLICEBY4=y -CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_MAGIC_SYSRQ=y CONFIG_DETECT_HUNG_TASK=y --- linux-5.19.0.orig/arch/powerpc/include/asm/archrandom.h +++ linux-5.19.0/arch/powerpc/include/asm/archrandom.h @@ -38,12 +38,7 @@ #endif /* CONFIG_ARCH_RANDOM */ #ifdef CONFIG_PPC_POWERNV -int powernv_hwrng_present(void); int powernv_get_random_long(unsigned long *v); -int powernv_get_random_real_mode(unsigned long *v); -#else -static inline int powernv_hwrng_present(void) { return 0; } -static inline int powernv_get_random_real_mode(unsigned long *v) { return 0; } #endif #endif /* _ASM_POWERPC_ARCHRANDOM_H */ --- linux-5.19.0.orig/arch/powerpc/include/asm/cputhreads.h +++ linux-5.19.0/arch/powerpc/include/asm/cputhreads.h @@ -3,6 +3,7 @@ #define _ASM_POWERPC_CPUTHREADS_H #ifndef __ASSEMBLY__ +#include #include #include --- linux-5.19.0.orig/arch/powerpc/include/asm/firmware.h +++ linux-5.19.0/arch/powerpc/include/asm/firmware.h @@ -82,6 +82,8 @@ FW_FEATURE_POWERNV_ALWAYS = 0, FW_FEATURE_PS3_POSSIBLE = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1, FW_FEATURE_PS3_ALWAYS = FW_FEATURE_LPAR | FW_FEATURE_PS3_LV1, + FW_FEATURE_NATIVE_POSSIBLE = 0, + FW_FEATURE_NATIVE_ALWAYS = 0, FW_FEATURE_POSSIBLE = #ifdef CONFIG_PPC_PSERIES FW_FEATURE_PSERIES_POSSIBLE | @@ -92,6 +94,9 @@ #ifdef CONFIG_PPC_PS3 FW_FEATURE_PS3_POSSIBLE | #endif +#ifdef CONFIG_PPC_HASH_MMU_NATIVE + FW_FEATURE_NATIVE_ALWAYS | +#endif 0, FW_FEATURE_ALWAYS = #ifdef CONFIG_PPC_PSERIES @@ -103,6 +108,9 @@ #ifdef CONFIG_PPC_PS3 FW_FEATURE_PS3_ALWAYS & #endif +#ifdef CONFIG_PPC_HASH_MMU_NATIVE + FW_FEATURE_NATIVE_ALWAYS & +#endif FW_FEATURE_POSSIBLE, #else /* CONFIG_PPC64 */ --- linux-5.19.0.orig/arch/powerpc/include/asm/kexec.h +++ linux-5.19.0/arch/powerpc/include/asm/kexec.h @@ -120,6 +120,15 @@ #ifdef CONFIG_PPC64 struct kexec_buf; +int arch_kexec_kernel_image_probe(struct kimage *image, void *buf, unsigned long buf_len); +#define arch_kexec_kernel_image_probe arch_kexec_kernel_image_probe + +int arch_kimage_file_post_load_cleanup(struct kimage *image); +#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup + +int arch_kexec_locate_mem_hole(struct kexec_buf *kbuf); +#define arch_kexec_locate_mem_hole arch_kexec_locate_mem_hole + int load_crashdump_segments_ppc64(struct kimage *image, struct kexec_buf *kbuf); int setup_purgatory_ppc64(struct kimage *image, const void *slave_code, --- linux-5.19.0.orig/arch/powerpc/include/asm/nmi.h +++ linux-5.19.0/arch/powerpc/include/asm/nmi.h @@ -5,8 +5,10 @@ #ifdef CONFIG_PPC_WATCHDOG extern void arch_touch_nmi_watchdog(void); long soft_nmi_interrupt(struct pt_regs *regs); +void watchdog_nmi_set_timeout_pct(u64 pct); #else static inline void arch_touch_nmi_watchdog(void) {} +static inline void watchdog_nmi_set_timeout_pct(u64 pct) {} #endif #ifdef CONFIG_NMI_IPI --- linux-5.19.0.orig/arch/powerpc/include/asm/paca.h +++ linux-5.19.0/arch/powerpc/include/asm/paca.h @@ -263,7 +263,6 @@ u64 l1d_flush_size; #endif #ifdef CONFIG_PPC_PSERIES - struct rtas_args *rtas_args_reentrant; u8 *mce_data_buf; /* buffer to hold per cpu rtas errlog */ #endif /* CONFIG_PPC_PSERIES */ --- linux-5.19.0.orig/arch/powerpc/include/asm/rtas.h +++ linux-5.19.0/arch/powerpc/include/asm/rtas.h @@ -240,7 +240,6 @@ extern int rtas_token(const char *service); extern int rtas_service_present(const char *service); extern int rtas_call(int token, int, int, int *, ...); -int rtas_call_reentrant(int token, int nargs, int nret, int *outputs, ...); void rtas_call_unlocked(struct rtas_args *args, int token, int nargs, int nret, ...); extern void __noreturn rtas_restart(char *cmd); --- linux-5.19.0.orig/arch/powerpc/include/asm/simple_spinlock.h +++ linux-5.19.0/arch/powerpc/include/asm/simple_spinlock.h @@ -48,10 +48,11 @@ static inline unsigned long __arch_spin_trylock(arch_spinlock_t *lock) { unsigned long tmp, token; + unsigned int eh = IS_ENABLED(CONFIG_PPC64); token = LOCK_TOKEN; __asm__ __volatile__( -"1: lwarx %0,0,%2,1\n\ +"1: lwarx %0,0,%2,%[eh]\n\ cmpwi 0,%0,0\n\ bne- 2f\n\ stwcx. %1,0,%2\n\ @@ -59,7 +60,7 @@ PPC_ACQUIRE_BARRIER "2:" : "=&r" (tmp) - : "r" (token), "r" (&lock->slock) + : "r" (token), "r" (&lock->slock), [eh] "n" (eh) : "cr0", "memory"); return tmp; @@ -156,9 +157,10 @@ static inline long __arch_read_trylock(arch_rwlock_t *rw) { long tmp; + unsigned int eh = IS_ENABLED(CONFIG_PPC64); __asm__ __volatile__( -"1: lwarx %0,0,%1,1\n" +"1: lwarx %0,0,%1,%[eh]\n" __DO_SIGN_EXTEND " addic. %0,%0,1\n\ ble- 2f\n" @@ -166,7 +168,7 @@ bne- 1b\n" PPC_ACQUIRE_BARRIER "2:" : "=&r" (tmp) - : "r" (&rw->lock) + : "r" (&rw->lock), [eh] "n" (eh) : "cr0", "xer", "memory"); return tmp; @@ -179,17 +181,18 @@ static inline long __arch_write_trylock(arch_rwlock_t *rw) { long tmp, token; + unsigned int eh = IS_ENABLED(CONFIG_PPC64); token = WRLOCK_TOKEN; __asm__ __volatile__( -"1: lwarx %0,0,%2,1\n\ +"1: lwarx %0,0,%2,%[eh]\n\ cmpwi 0,%0,0\n\ bne- 2f\n" " stwcx. %1,0,%2\n\ bne- 1b\n" PPC_ACQUIRE_BARRIER "2:" : "=&r" (tmp) - : "r" (token), "r" (&rw->lock) + : "r" (token), "r" (&rw->lock), [eh] "n" (eh) : "cr0", "memory"); return tmp; --- linux-5.19.0.orig/arch/powerpc/include/asm/syscalls.h +++ linux-5.19.0/arch/powerpc/include/asm/syscalls.h @@ -8,6 +8,18 @@ #include #include +/* + * long long munging: + * The 32 bit ABI passes long longs in an odd even register pair. + * High and low parts are swapped depending on endian mode, + * so define a macro (similar to mips linux32) to handle that. + */ +#ifdef __LITTLE_ENDIAN__ +#define merge_64(low, high) (((u64)high << 32) | low) +#else +#define merge_64(high, low) (((u64)high << 32) | low) +#endif + struct rtas_args; asmlinkage long sys_mmap(unsigned long addr, size_t len, --- linux-5.19.0.orig/arch/powerpc/kernel/head_book3s_32.S +++ linux-5.19.0/arch/powerpc/kernel/head_book3s_32.S @@ -418,14 +418,14 @@ */ /* Get PTE (linux-style) and check access */ mfspr r3,SPRN_IMISS -#if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE) +#ifdef CONFIG_MODULES lis r1, TASK_SIZE@h /* check if kernel address */ cmplw 0,r1,r3 #endif mfspr r2, SPRN_SDR1 li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC | _PAGE_USER rlwinm r2, r2, 28, 0xfffff000 -#if defined(CONFIG_MODULES) || defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KFENCE) +#ifdef CONFIG_MODULES bgt- 112f lis r2, (swapper_pg_dir - PAGE_OFFSET)@ha /* if kernel address, use */ li r1,_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_EXEC --- linux-5.19.0.orig/arch/powerpc/kernel/interrupt.c +++ linux-5.19.0/arch/powerpc/kernel/interrupt.c @@ -592,16 +592,6 @@ if (unlikely(stack_store)) __hard_EE_RI_disable(); - /* - * Returning to a kernel context with local irqs disabled. - * Here, if EE was enabled in the interrupted context, enable - * it on return as well. A problem exists here where a soft - * masked interrupt may have cleared MSR[EE] and set HARD_DIS - * here, and it will still exist on return to the caller. This - * will be resolved by the masked interrupt firing again. - */ - if (regs->msr & MSR_EE) - local_paca->irq_happened &= ~PACA_IRQ_HARD_DIS; #endif /* CONFIG_PPC64 */ } --- linux-5.19.0.orig/arch/powerpc/kernel/interrupt_64.S +++ linux-5.19.0/arch/powerpc/kernel/interrupt_64.S @@ -559,15 +559,63 @@ ld r11,SOFTE(r1) cmpwi r11,IRQS_ENABLED stb r11,PACAIRQSOFTMASK(r13) - bne 1f + beq .Linterrupt_return_\srr\()_soft_enabled + + /* + * Returning to soft-disabled context. + * Check if a MUST_HARD_MASK interrupt has become pending, in which + * case we need to disable MSR[EE] in the return context. + * + * The MSR[EE] check catches among other things the short incoherency + * in hard_irq_disable() between clearing MSR[EE] and setting + * PACA_IRQ_HARD_DIS. + */ + ld r12,_MSR(r1) + andi. r10,r12,MSR_EE + beq .Lfast_kernel_interrupt_return_\srr\() // EE already disabled + lbz r11,PACAIRQHAPPENED(r13) + andi. r10,r11,PACA_IRQ_MUST_HARD_MASK + bne 1f // HARD_MASK is pending + // No HARD_MASK pending, clear possible HARD_DIS set by interrupt + andi. r11,r11,(~PACA_IRQ_HARD_DIS)@l + stb r11,PACAIRQHAPPENED(r13) + b .Lfast_kernel_interrupt_return_\srr\() + + +1: /* Must clear MSR_EE from _MSR */ +#ifdef CONFIG_PPC_BOOK3S + li r10,0 + /* Clear valid before changing _MSR */ + .ifc \srr,srr + stb r10,PACASRR_VALID(r13) + .else + stb r10,PACAHSRR_VALID(r13) + .endif +#endif + xori r12,r12,MSR_EE + std r12,_MSR(r1) + b .Lfast_kernel_interrupt_return_\srr\() + +.Linterrupt_return_\srr\()_soft_enabled: + /* + * In the soft-enabled case, need to double-check that we have no + * pending interrupts that might have come in before we reached the + * restart section of code, and restart the exit so those can be + * handled. + * + * If there are none, it is be possible that the interrupt still + * has PACA_IRQ_HARD_DIS set, which needs to be cleared for the + * interrupted context. This clear will not clobber a new pending + * interrupt coming in, because we're in the restart section, so + * such would return to the restart location. + */ #ifdef CONFIG_PPC_BOOK3S lbz r11,PACAIRQHAPPENED(r13) andi. r11,r11,(~PACA_IRQ_HARD_DIS)@l bne- interrupt_return_\srr\()_kernel_restart #endif li r11,0 - stb r11,PACAIRQHAPPENED(r13) # clear out possible HARD_DIS -1: + stb r11,PACAIRQHAPPENED(r13) // clear the possible HARD_DIS .Lfast_kernel_interrupt_return_\srr\(): cmpdi cr1,r3,0 --- linux-5.19.0.orig/arch/powerpc/kernel/iommu.c +++ linux-5.19.0/arch/powerpc/kernel/iommu.c @@ -775,6 +775,11 @@ /* ignore reserved bit0 */ if (tbl->it_offset == 0) start = 1; + + /* Simple case with no reserved MMIO32 region */ + if (!tbl->it_reserved_start && !tbl->it_reserved_end) + return find_next_bit(tbl->it_map, tbl->it_size, start) != tbl->it_size; + end = tbl->it_reserved_start - tbl->it_offset; if (find_next_bit(tbl->it_map, end, start) != end) return true; --- linux-5.19.0.orig/arch/powerpc/kernel/kprobes.c +++ linux-5.19.0/arch/powerpc/kernel/kprobes.c @@ -161,7 +161,13 @@ preempt_disable(); prev = get_kprobe(p->addr - 1); preempt_enable_no_resched(); - if (prev && ppc_inst_prefixed(ppc_inst_read(prev->ainsn.insn))) { + + /* + * When prev is a ftrace-based kprobe, we don't have an insn, and it + * doesn't probe for prefixed instruction. + */ + if (prev && !kprobe_ftrace(prev) && + ppc_inst_prefixed(ppc_inst_read(prev->ainsn.insn))) { printk("Cannot register a kprobe on the second word of prefixed instruction\n"); ret = -EINVAL; } --- linux-5.19.0.orig/arch/powerpc/kernel/paca.c +++ linux-5.19.0/arch/powerpc/kernel/paca.c @@ -16,7 +16,6 @@ #include #include #include -#include #include "setup.h" @@ -170,30 +169,6 @@ } #endif /* CONFIG_PPC_64S_HASH_MMU */ -#ifdef CONFIG_PPC_PSERIES -/** - * new_rtas_args() - Allocates rtas args - * @cpu: CPU number - * @limit: Memory limit for this allocation - * - * Allocates a struct rtas_args and return it's pointer, - * if not in Hypervisor mode - * - * Return: Pointer to allocated rtas_args - * NULL if CPU in Hypervisor Mode - */ -static struct rtas_args * __init new_rtas_args(int cpu, unsigned long limit) -{ - limit = min_t(unsigned long, limit, RTAS_INSTANTIATE_MAX); - - if (early_cpu_has_feature(CPU_FTR_HVMODE)) - return NULL; - - return alloc_paca_data(sizeof(struct rtas_args), L1_CACHE_BYTES, - limit, cpu); -} -#endif /* CONFIG_PPC_PSERIES */ - /* The Paca is an array with one entry per processor. Each contains an * lppaca, which contains the information shared between the * hypervisor and Linux. @@ -232,10 +207,6 @@ /* For now -- if we have threads this will be adjusted later */ new_paca->tcd_ptr = &new_paca->tcd; #endif - -#ifdef CONFIG_PPC_PSERIES - new_paca->rtas_args_reentrant = NULL; -#endif } /* Put the paca pointer into r13 and SPRG_PACA */ @@ -308,9 +279,6 @@ #ifdef CONFIG_PPC_64S_HASH_MMU paca->slb_shadow_ptr = new_slb_shadow(cpu, limit); #endif -#ifdef CONFIG_PPC_PSERIES - paca->rtas_args_reentrant = new_rtas_args(cpu, limit); -#endif paca_struct_size += sizeof(struct paca_struct); } --- linux-5.19.0.orig/arch/powerpc/kernel/pci-common.c +++ linux-5.19.0/arch/powerpc/kernel/pci-common.c @@ -67,23 +67,35 @@ pci_dma_ops = dma_ops; } -/* - * This function should run under locking protection, specifically - * hose_spinlock. - */ static int get_phb_number(struct device_node *dn) { int ret, phb_id = -1; - u32 prop_32; u64 prop; /* * Try fixed PHB numbering first, by checking archs and reading - * the respective device-tree properties. Firstly, try powernv by - * reading "ibm,opal-phbid", only present in OPAL environment. + * the respective device-tree properties. Firstly, try reading + * standard "linux,pci-domain", then try reading "ibm,opal-phbid" + * (only present in powernv OPAL environment), then try device-tree + * alias and as the last try to use lower bits of "reg" property. */ - ret = of_property_read_u64(dn, "ibm,opal-phbid", &prop); + ret = of_get_pci_domain_nr(dn); + if (ret >= 0) { + prop = ret; + ret = 0; + } + if (ret) + ret = of_property_read_u64(dn, "ibm,opal-phbid", &prop); + if (ret) { + ret = of_alias_get_id(dn, "pci"); + if (ret >= 0) { + prop = ret; + ret = 0; + } + } + if (ret) { + u32 prop_32; ret = of_property_read_u32_index(dn, "reg", 1, &prop_32); prop = prop_32; } @@ -91,18 +103,20 @@ if (!ret) phb_id = (int)(prop & (MAX_PHBS - 1)); + spin_lock(&hose_spinlock); + /* We need to be sure to not use the same PHB number twice. */ if ((phb_id >= 0) && !test_and_set_bit(phb_id, phb_bitmap)) - return phb_id; + goto out_unlock; - /* - * If not pseries nor powernv, or if fixed PHB numbering tried to add - * the same PHB number twice, then fallback to dynamic PHB numbering. - */ + /* If everything fails then fallback to dynamic PHB numbering. */ phb_id = find_first_zero_bit(phb_bitmap, MAX_PHBS); BUG_ON(phb_id >= MAX_PHBS); set_bit(phb_id, phb_bitmap); +out_unlock: + spin_unlock(&hose_spinlock); + return phb_id; } @@ -113,10 +127,13 @@ phb = zalloc_maybe_bootmem(sizeof(struct pci_controller), GFP_KERNEL); if (phb == NULL) return NULL; - spin_lock(&hose_spinlock); + phb->global_number = get_phb_number(dev); + + spin_lock(&hose_spinlock); list_add_tail(&phb->list_node, &hose_list); spin_unlock(&hose_spinlock); + phb->dn = dev; phb->is_dynamic = slab_is_available(); #ifdef CONFIG_PPC64 @@ -342,6 +359,7 @@ } return NULL; } +EXPORT_SYMBOL(pci_find_hose_for_OF_device); struct pci_controller *pci_find_controller_for_domain(int domain_nr) { @@ -1613,6 +1631,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) { --- linux-5.19.0.orig/arch/powerpc/kernel/pci_dn.c +++ linux-5.19.0/arch/powerpc/kernel/pci_dn.c @@ -330,6 +330,7 @@ INIT_LIST_HEAD(&pdn->list); parent = of_get_parent(dn); pdn->parent = parent ? PCI_DN(parent) : NULL; + of_node_put(parent); if (pdn->parent) list_add_tail(&pdn->list, &pdn->parent->child_list); --- linux-5.19.0.orig/arch/powerpc/kernel/prom.c +++ linux-5.19.0/arch/powerpc/kernel/prom.c @@ -751,6 +751,13 @@ early_init_dt_scan_root(); early_init_dt_scan_memory_ppc(); + /* + * As generic code authors expect to be able to use static keys + * in early_param() handlers, we initialize the static keys just + * before parsing early params (it's fine to call jump_label_init() + * more than once). + */ + jump_label_init(); parse_early_param(); /* make sure we've parsed cmdline for mem= before this */ --- linux-5.19.0.orig/arch/powerpc/kernel/rtas.c +++ linux-5.19.0/arch/powerpc/kernel/rtas.c @@ -43,7 +43,6 @@ #include #include #include -#include /* This is here deliberately so it's only used in this file */ void enter_rtas(unsigned long); @@ -932,59 +931,6 @@ pr_err("ibm,activate-firmware failed (%i)\n", fwrc); } -#ifdef CONFIG_PPC_PSERIES -/** - * rtas_call_reentrant() - Used for reentrant rtas calls - * @token: Token for desired reentrant RTAS call - * @nargs: Number of Input Parameters - * @nret: Number of Output Parameters - * @outputs: Array of outputs - * @...: Inputs for desired RTAS call - * - * According to LoPAR documentation, only "ibm,int-on", "ibm,int-off", - * "ibm,get-xive" and "ibm,set-xive" are currently reentrant. - * Reentrant calls need their own rtas_args buffer, so not using rtas.args, but - * PACA one instead. - * - * Return: -1 on error, - * First output value of RTAS call if (nret > 0), - * 0 otherwise, - */ -int rtas_call_reentrant(int token, int nargs, int nret, int *outputs, ...) -{ - va_list list; - struct rtas_args *args; - unsigned long flags; - int i, ret = 0; - - if (!rtas.entry || token == RTAS_UNKNOWN_SERVICE) - return -1; - - local_irq_save(flags); - preempt_disable(); - - /* We use the per-cpu (PACA) rtas args buffer */ - args = local_paca->rtas_args_reentrant; - - va_start(list, outputs); - va_rtas_call_unlocked(args, token, nargs, nret, list); - va_end(list); - - if (nret > 1 && outputs) - for (i = 0; i < nret - 1; ++i) - outputs[i] = be32_to_cpu(args->rets[i + 1]); - - if (nret > 0) - ret = be32_to_cpu(args->rets[0]); - - local_irq_restore(flags); - preempt_enable(); - - return ret; -} - -#endif /* CONFIG_PPC_PSERIES */ - /** * get_pseries_errorlog() - Find a specific pseries error log in an RTAS * extended event log. --- linux-5.19.0.orig/arch/powerpc/kernel/rtas_entry.S +++ linux-5.19.0/arch/powerpc/kernel/rtas_entry.S @@ -109,8 +109,12 @@ * its critical regions (as specified in PAPR+ section 7.2.1). MSR[S] * is not impacted by RFI_TO_KERNEL (only urfid can unset it). So if * MSR[S] is set, it will remain when entering RTAS. + * If we're in HV mode, RTAS must also run in HV mode, so extract MSR_HV + * from the saved MSR value and insert into the value RTAS will use. */ + extrdi r0, r6, 1, 63 - MSR_HV_LG LOAD_REG_IMMEDIATE(r6, MSR_ME | MSR_RI) + insrdi r6, r0, 1, 63 - MSR_HV_LG li r0,0 mtmsrd r0,1 /* disable RI before using SRR0/1 */ --- linux-5.19.0.orig/arch/powerpc/kernel/setup-common.c +++ linux-5.19.0/arch/powerpc/kernel/setup-common.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -65,6 +66,7 @@ #include #include #include +#include #include "setup.h" @@ -882,6 +884,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(); --- linux-5.19.0.orig/arch/powerpc/kernel/setup_64.c +++ linux-5.19.0/arch/powerpc/kernel/setup_64.c @@ -183,8 +183,10 @@ get_paca()->cpu_start = 1; /* Allow percpu accesses to work until we setup percpu data */ get_paca()->data_offset = 0; - /* Mark interrupts disabled in PACA */ + /* Mark interrupts soft and hard disabled in PACA */ irq_soft_mask_set(IRQS_DISABLED); + get_paca()->irq_happened = PACA_IRQ_HARD_DIS; + WARN_ON(mfmsr() & MSR_EE); } static void __init configure_exceptions(void) --- linux-5.19.0.orig/arch/powerpc/kernel/sys_ppc32.c +++ linux-5.19.0/arch/powerpc/kernel/sys_ppc32.c @@ -56,18 +56,6 @@ return sys_mmap(addr, len, prot, flags, fd, pgoff << 12); } -/* - * long long munging: - * The 32 bit ABI passes long longs in an odd even register pair. - * High and low parts are swapped depending on endian mode, - * so define a macro (similar to mips linux32) to handle that. - */ -#ifdef __LITTLE_ENDIAN__ -#define merge_64(low, high) ((u64)high << 32) | low -#else -#define merge_64(high, low) ((u64)high << 32) | low -#endif - compat_ssize_t compat_sys_pread64(unsigned int fd, char __user *ubuf, compat_size_t count, u32 reg6, u32 pos1, u32 pos2) { @@ -94,7 +82,7 @@ asmlinkage long compat_sys_fallocate(int fd, int mode, u32 offset1, u32 offset2, u32 len1, u32 len2) { - return ksys_fallocate(fd, mode, ((loff_t)offset1 << 32) | offset2, + return ksys_fallocate(fd, mode, merge_64(offset1, offset2), merge_64(len1, len2)); } --- linux-5.19.0.orig/arch/powerpc/kernel/syscalls.c +++ linux-5.19.0/arch/powerpc/kernel/syscalls.c @@ -98,8 +98,8 @@ long ppc_fadvise64_64(int fd, int advice, u32 offset_high, u32 offset_low, u32 len_high, u32 len_low) { - return ksys_fadvise64_64(fd, (u64)offset_high << 32 | offset_low, - (u64)len_high << 32 | len_low, advice); + return ksys_fadvise64_64(fd, merge_64(offset_high, offset_low), + merge_64(len_high, len_low), advice); } SYSCALL_DEFINE0(switch_endian) --- linux-5.19.0.orig/arch/powerpc/kernel/systbl.S +++ linux-5.19.0/arch/powerpc/kernel/systbl.S @@ -18,6 +18,7 @@ .p2align 3 #define __SYSCALL(nr, entry) .8byte entry #else + .p2align 2 #define __SYSCALL(nr, entry) .long entry #endif --- linux-5.19.0.orig/arch/powerpc/kernel/trace/ftrace.c +++ linux-5.19.0/arch/powerpc/kernel/trace/ftrace.c @@ -392,11 +392,11 @@ */ static bool expected_nop_sequence(void *ip, ppc_inst_t op0, ppc_inst_t op1) { - if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V1)) + if (IS_ENABLED(CONFIG_DYNAMIC_FTRACE_WITH_REGS)) + return ppc_inst_equal(op0, ppc_inst(PPC_RAW_NOP())); + else return ppc_inst_equal(op0, ppc_inst(PPC_RAW_BRANCH(8))) && ppc_inst_equal(op1, ppc_inst(PPC_INST_LD_TOC)); - else - return ppc_inst_equal(op0, ppc_inst(PPC_RAW_NOP())); } static int @@ -411,7 +411,7 @@ if (copy_inst_from_kernel_nofault(op, ip)) return -EFAULT; - if (IS_ENABLED(CONFIG_PPC64_ELF_ABI_V1) && + if (!IS_ENABLED(CONFIG_DYNAMIC_FTRACE_WITH_REGS) && copy_inst_from_kernel_nofault(op + 1, ip + 4)) return -EFAULT; --- linux-5.19.0.orig/arch/powerpc/kernel/watchdog.c +++ linux-5.19.0/arch/powerpc/kernel/watchdog.c @@ -91,6 +91,10 @@ static cpumask_t wd_smp_cpus_stuck; static u64 wd_smp_last_reset_tb; +#ifdef CONFIG_PPC_PSERIES +static u64 wd_timeout_pct; +#endif + /* * Try to take the exclusive watchdog action / NMI IPI / printing lock. * wd_smp_lock must be held. If this fails, we should return and wait @@ -527,7 +531,13 @@ static void watchdog_calc_timeouts(void) { - wd_panic_timeout_tb = watchdog_thresh * ppc_tb_freq; + u64 threshold = watchdog_thresh; + +#ifdef CONFIG_PPC_PSERIES + threshold += (READ_ONCE(wd_timeout_pct) * threshold) / 100; +#endif + + wd_panic_timeout_tb = threshold * ppc_tb_freq; /* Have the SMP detector trigger a bit later */ wd_smp_panic_timeout_tb = wd_panic_timeout_tb * 3 / 2; @@ -570,3 +580,12 @@ } return 0; } + +#ifdef CONFIG_PPC_PSERIES +void watchdog_nmi_set_timeout_pct(u64 pct) +{ + pr_info("Set the NMI watchdog timeout factor to %llu%%\n", pct); + WRITE_ONCE(wd_timeout_pct, pct); + lockup_detector_reconfigure(); +} +#endif --- linux-5.19.0.orig/arch/powerpc/kexec/file_load_64.c +++ linux-5.19.0/arch/powerpc/kexec/file_load_64.c @@ -23,6 +23,7 @@ #include #include #include +#include #include #include @@ -1038,6 +1039,48 @@ return ret; } +static int copy_property(void *fdt, int node_offset, const struct device_node *dn, + const char *propname) +{ + const void *prop, *fdtprop; + int len = 0, fdtlen = 0; + + prop = of_get_property(dn, propname, &len); + fdtprop = fdt_getprop(fdt, node_offset, propname, &fdtlen); + + if (fdtprop && !prop) + return fdt_delprop(fdt, node_offset, propname); + else if (prop) + return fdt_setprop(fdt, node_offset, propname, prop, len); + else + return -FDT_ERR_NOTFOUND; +} + +static int update_pci_dma_nodes(void *fdt, const char *dmapropname) +{ + struct device_node *dn; + int pci_offset, root_offset, ret = 0; + + if (!firmware_has_feature(FW_FEATURE_LPAR)) + return 0; + + root_offset = fdt_path_offset(fdt, "/"); + for_each_node_with_property(dn, dmapropname) { + pci_offset = fdt_subnode_offset(fdt, root_offset, of_node_full_name(dn)); + if (pci_offset < 0) + continue; + + ret = copy_property(fdt, pci_offset, dn, "ibm,dma-window"); + if (ret < 0) + break; + ret = copy_property(fdt, pci_offset, dn, dmapropname); + if (ret < 0) + break; + } + + return ret; +} + /** * setup_new_fdt_ppc64 - Update the flattend device-tree of the kernel * being loaded. @@ -1099,6 +1142,18 @@ if (ret < 0) goto out; +#define DIRECT64_PROPNAME "linux,direct64-ddr-window-info" +#define DMA64_PROPNAME "linux,dma64-ddr-window-info" + ret = update_pci_dma_nodes(fdt, DIRECT64_PROPNAME); + if (ret < 0) + goto out; + + ret = update_pci_dma_nodes(fdt, DMA64_PROPNAME); + if (ret < 0) + goto out; +#undef DMA64_PROPNAME +#undef DIRECT64_PROPNAME + /* Update memory reserve map */ ret = get_reserved_memory_ranges(&rmem); if (ret) --- linux-5.19.0.orig/arch/powerpc/kvm/book3s_hv_builtin.c +++ linux-5.19.0/arch/powerpc/kvm/book3s_hv_builtin.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include #include #include #include @@ -176,13 +176,14 @@ int kvmppc_hwrng_present(void) { - return powernv_hwrng_present(); + return ppc_md.get_random_seed != NULL; } EXPORT_SYMBOL_GPL(kvmppc_hwrng_present); long kvmppc_rm_h_random(struct kvm_vcpu *vcpu) { - if (powernv_get_random_real_mode(&vcpu->arch.regs.gpr[4])) + if (ppc_md.get_random_seed && + ppc_md.get_random_seed(&vcpu->arch.regs.gpr[4])) return H_SUCCESS; return H_HARDWARE; --- linux-5.19.0.orig/arch/powerpc/kvm/book3s_hv_p9_entry.c +++ linux-5.19.0/arch/powerpc/kvm/book3s_hv_p9_entry.c @@ -438,15 +438,6 @@ EXPORT_SYMBOL_GPL(restore_p9_host_os_sprs); #ifdef CONFIG_KVM_BOOK3S_HV_EXIT_TIMING -static void __start_timing(struct kvm_vcpu *vcpu, struct kvmhv_tb_accumulator *next) -{ - struct kvmppc_vcore *vc = vcpu->arch.vcore; - u64 tb = mftb() - vc->tb_offset_applied; - - vcpu->arch.cur_activity = next; - vcpu->arch.cur_tb_start = tb; -} - static void __accumulate_time(struct kvm_vcpu *vcpu, struct kvmhv_tb_accumulator *next) { struct kvmppc_vcore *vc = vcpu->arch.vcore; @@ -478,8 +469,8 @@ curr->seqcount = seq + 2; } -#define start_timing(vcpu, next) __start_timing(vcpu, next) -#define end_timing(vcpu) __start_timing(vcpu, NULL) +#define start_timing(vcpu, next) __accumulate_time(vcpu, next) +#define end_timing(vcpu) __accumulate_time(vcpu, NULL) #define accumulate_time(vcpu, next) __accumulate_time(vcpu, next) #else #define start_timing(vcpu, next) do {} while (0) --- linux-5.19.0.orig/arch/powerpc/kvm/book3s_xics.h +++ linux-5.19.0/arch/powerpc/kvm/book3s_xics.h @@ -143,6 +143,7 @@ } extern unsigned long xics_rm_h_xirr(struct kvm_vcpu *vcpu); +extern unsigned long xics_rm_h_xirr_x(struct kvm_vcpu *vcpu); extern int xics_rm_h_ipi(struct kvm_vcpu *vcpu, unsigned long server, unsigned long mfrr); extern int xics_rm_h_cppr(struct kvm_vcpu *vcpu, unsigned long cppr); --- linux-5.19.0.orig/arch/powerpc/lib/sstep.c +++ linux-5.19.0/arch/powerpc/lib/sstep.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include --- linux-5.19.0.orig/arch/powerpc/math-emu/math_efp.c +++ linux-5.19.0/arch/powerpc/math-emu/math_efp.c @@ -17,6 +17,7 @@ #include #include +#include #include #include --- linux-5.19.0.orig/arch/powerpc/mm/book3s32/mmu.c +++ linux-5.19.0/arch/powerpc/mm/book3s32/mmu.c @@ -159,7 +159,10 @@ { unsigned long done; unsigned long border = (unsigned long)__init_begin - PAGE_OFFSET; + unsigned long size; + size = roundup_pow_of_two((unsigned long)_einittext - PAGE_OFFSET); + setibat(0, PAGE_OFFSET, 0, size, PAGE_KERNEL_X); if (debug_pagealloc_enabled_or_kfence() || __map_without_bats) { pr_debug_once("Read-Write memory mapped without BATs\n"); @@ -245,10 +248,9 @@ } /* - * Set up one of the I/D BAT (block address translation) register pairs. + * Set up one of the D BAT (block address translation) register pairs. * The parameters are not checked; in particular size must be a power * of 2 between 128k and 256M. - * On 603+, only set IBAT when _PAGE_EXEC is set */ void __init setbat(int index, unsigned long virt, phys_addr_t phys, unsigned int size, pgprot_t prot) @@ -284,10 +286,6 @@ /* G bit must be zero in IBATs */ flags &= ~_PAGE_EXEC; } - if (flags & _PAGE_EXEC) - bat[0] = bat[1]; - else - bat[0].batu = bat[0].batl = 0; bat_addrs[index].start = virt; bat_addrs[index].limit = virt + ((bl + 1) << 17) - 1; --- linux-5.19.0.orig/arch/powerpc/mm/book3s64/radix_pgtable.c +++ linux-5.19.0/arch/powerpc/mm/book3s64/radix_pgtable.c @@ -937,15 +937,6 @@ pmd = *pmdp; pmd_clear(pmdp); - /* - * pmdp collapse_flush need to ensure that there are no parallel gup - * walk after this call. This is needed so that we can have stable - * page ref count when collapsing a page. We don't allow a collapse page - * if we have gup taken on the page. We can ensure that by sending IPI - * because gup walk happens with IRQ disabled. - */ - serialize_against_pte_lookup(vma->vm_mm); - radix__flush_tlb_collapsed_pmd(vma->vm_mm, address); return pmd; --- linux-5.19.0.orig/arch/powerpc/mm/kasan/init_32.c +++ linux-5.19.0/arch/powerpc/mm/kasan/init_32.c @@ -25,7 +25,7 @@ int i; for (i = 0; i < PTRS_PER_PTE; i++, ptep++) - __set_pte_at(&init_mm, va, ptep, pfn_pte(PHYS_PFN(pa), prot), 0); + __set_pte_at(&init_mm, va, ptep, pfn_pte(PHYS_PFN(pa), prot), 1); } int __init kasan_init_shadow_page_tables(unsigned long k_start, unsigned long k_end) --- linux-5.19.0.orig/arch/powerpc/mm/nohash/8xx.c +++ linux-5.19.0/arch/powerpc/mm/nohash/8xx.c @@ -179,8 +179,8 @@ unsigned long boundary = strict_kernel_rwx_enabled() ? sinittext : etext8; unsigned long einittext8 = ALIGN(__pa(_einittext), SZ_8M); - mmu_mapin_ram_chunk(0, boundary, PAGE_KERNEL_TEXT, false); - mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL, false); + if (!debug_pagealloc_enabled_or_kfence()) + mmu_mapin_ram_chunk(boundary, einittext8, PAGE_KERNEL, false); mmu_pin_tlb(block_mapped_ram, false); } --- linux-5.19.0.orig/arch/powerpc/mm/nohash/tlb_low_64e.S +++ linux-5.19.0/arch/powerpc/mm/nohash/tlb_low_64e.S @@ -583,7 +583,7 @@ */ rlwimi r11,r14,32-19,27,27 rlwimi r11,r14,32-16,19,19 - beq normal_tlb_miss + beq normal_tlb_miss_user /* XXX replace the RMW cycles with immediate loads + writes */ 1: mfspr r10,SPRN_MAS1 cmpldi cr0,r15,8 /* Check for vmalloc region */ @@ -626,7 +626,7 @@ cmpldi cr0,r15,0 /* Check for user region */ std r14,EX_TLB_ESR(r12) /* write crazy -1 to frame */ - beq normal_tlb_miss + beq normal_tlb_miss_user li r11,_PAGE_PRESENT|_PAGE_BAP_SX /* Base perm */ oris r11,r11,_PAGE_ACCESSED@h @@ -653,6 +653,12 @@ * r11 = PTE permission mask * r10 = crap (free to use) */ +normal_tlb_miss_user: +#ifdef CONFIG_PPC_KUAP + mfspr r14,SPRN_MAS1 + rlwinm. r14,r14,0,0x3fff0000 + beq- normal_tlb_miss_access_fault /* KUAP fault */ +#endif normal_tlb_miss: /* So we first construct the page table address. We do that by * shifting the bottom of the address (not the region ID) by @@ -683,11 +689,6 @@ /* Check if required permissions are met */ andc. r15,r11,r14 bne- normal_tlb_miss_access_fault -#ifdef CONFIG_PPC_KUAP - mfspr r11,SPRN_MAS1 - rlwinm. r10,r11,0,0x3fff0000 - beq- normal_tlb_miss_access_fault /* KUAP fault */ -#endif /* Now we build the MAS: * @@ -709,9 +710,7 @@ rldicl r10,r14,64-8,64-8 cmpldi cr0,r10,BOOK3E_PAGESZ_4K beq- 1f -#ifndef CONFIG_PPC_KUAP mfspr r11,SPRN_MAS1 -#endif rlwimi r11,r14,31,21,24 rlwinm r11,r11,0,21,19 mtspr SPRN_MAS1,r11 --- linux-5.19.0.orig/arch/powerpc/mm/pgtable_32.c +++ linux-5.19.0/arch/powerpc/mm/pgtable_32.c @@ -135,9 +135,9 @@ unsigned long numpages = PFN_UP((unsigned long)_einittext) - PFN_DOWN((unsigned long)_sinittext); - if (v_block_mapped((unsigned long)_sinittext)) { - mmu_mark_initmem_nx(); - } else { + mmu_mark_initmem_nx(); + + if (!v_block_mapped((unsigned long)_sinittext)) { set_memory_nx((unsigned long)_sinittext, numpages); set_memory_rw((unsigned long)_sinittext, numpages); } --- linux-5.19.0.orig/arch/powerpc/mm/ptdump/shared.c +++ linux-5.19.0/arch/powerpc/mm/ptdump/shared.c @@ -17,9 +17,9 @@ .clear = " ", }, { .mask = _PAGE_RW, - .val = _PAGE_RW, - .set = "rw", - .clear = "r ", + .val = 0, + .set = "r ", + .clear = "rw", }, { .mask = _PAGE_EXEC, .val = _PAGE_EXEC, --- linux-5.19.0.orig/arch/powerpc/net/bpf_jit_comp32.c +++ linux-5.19.0/arch/powerpc/net/bpf_jit_comp32.c @@ -113,23 +113,19 @@ { int i; - /* First arg comes in as a 32 bits pointer. */ - EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_1), _R3)); - EMIT(PPC_RAW_LI(bpf_to_ppc(BPF_REG_1) - 1, 0)); + /* Initialize tail_call_cnt, to be skipped if we do tail calls. */ + EMIT(PPC_RAW_LI(_R4, 0)); + +#define BPF_TAILCALL_PROLOGUE_SIZE 4 + EMIT(PPC_RAW_STWU(_R1, _R1, -BPF_PPC_STACKFRAME(ctx))); - /* - * Initialize tail_call_cnt in stack frame if we do tail calls. - * Otherwise, put in NOPs so that it can be skipped when we are - * invoked through a tail call. - */ if (ctx->seen & SEEN_TAILCALL) - EMIT(PPC_RAW_STW(bpf_to_ppc(BPF_REG_1) - 1, _R1, - bpf_jit_stack_offsetof(ctx, BPF_PPC_TC))); - else - EMIT(PPC_RAW_NOP()); + EMIT(PPC_RAW_STW(_R4, _R1, bpf_jit_stack_offsetof(ctx, BPF_PPC_TC))); -#define BPF_TAILCALL_PROLOGUE_SIZE 16 + /* First arg comes in as a 32 bits pointer. */ + EMIT(PPC_RAW_MR(bpf_to_ppc(BPF_REG_1), _R3)); + EMIT(PPC_RAW_LI(bpf_to_ppc(BPF_REG_1) - 1, 0)); /* * We need a stack frame, but we don't necessarily need to @@ -170,24 +166,24 @@ for (i = BPF_PPC_NVR_MIN; i <= 31; i++) if (bpf_is_seen_register(ctx, i)) EMIT(PPC_RAW_LWZ(i, _R1, bpf_jit_stack_offsetof(ctx, i))); -} - -void bpf_jit_build_epilogue(u32 *image, struct codegen_context *ctx) -{ - EMIT(PPC_RAW_MR(_R3, bpf_to_ppc(BPF_REG_0))); - - bpf_jit_emit_common_epilogue(image, ctx); - - /* Tear down our stack frame */ if (ctx->seen & SEEN_FUNC) EMIT(PPC_RAW_LWZ(_R0, _R1, BPF_PPC_STACKFRAME(ctx) + PPC_LR_STKOFF)); + /* Tear down our stack frame */ EMIT(PPC_RAW_ADDI(_R1, _R1, BPF_PPC_STACKFRAME(ctx))); if (ctx->seen & SEEN_FUNC) EMIT(PPC_RAW_MTLR(_R0)); +} + +void bpf_jit_build_epilogue(u32 *image, struct codegen_context *ctx) +{ + EMIT(PPC_RAW_MR(_R3, bpf_to_ppc(BPF_REG_0))); + + bpf_jit_emit_common_epilogue(image, ctx); + EMIT(PPC_RAW_BLR()); } @@ -244,7 +240,6 @@ EMIT(PPC_RAW_RLWINM(_R3, b2p_index, 2, 0, 29)); EMIT(PPC_RAW_ADD(_R3, _R3, b2p_bpf_array)); EMIT(PPC_RAW_LWZ(_R3, _R3, offsetof(struct bpf_array, ptrs))); - EMIT(PPC_RAW_STW(_R0, _R1, bpf_jit_stack_offsetof(ctx, BPF_PPC_TC))); /* * if (prog == NULL) @@ -255,19 +250,14 @@ /* goto *(prog->bpf_func + prologue_size); */ EMIT(PPC_RAW_LWZ(_R3, _R3, offsetof(struct bpf_prog, bpf_func))); - - if (ctx->seen & SEEN_FUNC) - EMIT(PPC_RAW_LWZ(_R0, _R1, BPF_PPC_STACKFRAME(ctx) + PPC_LR_STKOFF)); - EMIT(PPC_RAW_ADDIC(_R3, _R3, BPF_TAILCALL_PROLOGUE_SIZE)); - - if (ctx->seen & SEEN_FUNC) - EMIT(PPC_RAW_MTLR(_R0)); - EMIT(PPC_RAW_MTCTR(_R3)); EMIT(PPC_RAW_MR(_R3, bpf_to_ppc(BPF_REG_1))); + /* Put tail_call_cnt in r4 */ + EMIT(PPC_RAW_MR(_R4, _R0)); + /* tear restore NVRs, ... */ bpf_jit_emit_common_epilogue(image, ctx); --- linux-5.19.0.orig/arch/powerpc/net/bpf_jit_comp64.c +++ linux-5.19.0/arch/powerpc/net/bpf_jit_comp64.c @@ -360,6 +360,7 @@ u32 size = BPF_SIZE(code); u32 tmp1_reg = bpf_to_ppc(TMP_REG_1); u32 tmp2_reg = bpf_to_ppc(TMP_REG_2); + u32 save_reg, ret_reg; s16 off = insn[i].off; s32 imm = insn[i].imm; bool func_addr_fixed; @@ -777,42 +778,83 @@ * BPF_STX ATOMIC (atomic ops) */ case BPF_STX | BPF_ATOMIC | BPF_W: - if (imm != BPF_ADD) { - pr_err_ratelimited( - "eBPF filter atomic op code %02x (@%d) unsupported\n", - code, i); - return -ENOTSUPP; - } - - /* *(u32 *)(dst + off) += src */ + case BPF_STX | BPF_ATOMIC | BPF_DW: + save_reg = tmp2_reg; + ret_reg = src_reg; - /* Get EA into TMP_REG_1 */ - EMIT(PPC_RAW_ADDI(tmp1_reg, dst_reg, off)); + /* Get offset into TMP_REG_1 */ + EMIT(PPC_RAW_LI(tmp1_reg, off)); tmp_idx = ctx->idx * 4; /* load value from memory into TMP_REG_2 */ - EMIT(PPC_RAW_LWARX(tmp2_reg, 0, tmp1_reg, 0)); - /* add value from src_reg into this */ - EMIT(PPC_RAW_ADD(tmp2_reg, tmp2_reg, src_reg)); - /* store result back */ - EMIT(PPC_RAW_STWCX(tmp2_reg, 0, tmp1_reg)); - /* we're done if this succeeded */ - PPC_BCC_SHORT(COND_NE, tmp_idx); - break; - case BPF_STX | BPF_ATOMIC | BPF_DW: - if (imm != BPF_ADD) { + if (size == BPF_DW) + EMIT(PPC_RAW_LDARX(tmp2_reg, tmp1_reg, dst_reg, 0)); + else + EMIT(PPC_RAW_LWARX(tmp2_reg, tmp1_reg, dst_reg, 0)); + + /* Save old value in _R0 */ + if (imm & BPF_FETCH) + EMIT(PPC_RAW_MR(_R0, tmp2_reg)); + + switch (imm) { + case BPF_ADD: + case BPF_ADD | BPF_FETCH: + EMIT(PPC_RAW_ADD(tmp2_reg, tmp2_reg, src_reg)); + break; + case BPF_AND: + case BPF_AND | BPF_FETCH: + EMIT(PPC_RAW_AND(tmp2_reg, tmp2_reg, src_reg)); + break; + case BPF_OR: + case BPF_OR | BPF_FETCH: + EMIT(PPC_RAW_OR(tmp2_reg, tmp2_reg, src_reg)); + break; + case BPF_XOR: + case BPF_XOR | BPF_FETCH: + EMIT(PPC_RAW_XOR(tmp2_reg, tmp2_reg, src_reg)); + break; + case BPF_CMPXCHG: + /* + * Return old value in BPF_REG_0 for BPF_CMPXCHG & + * in src_reg for other cases. + */ + ret_reg = bpf_to_ppc(BPF_REG_0); + + /* Compare with old value in BPF_R0 */ + if (size == BPF_DW) + EMIT(PPC_RAW_CMPD(bpf_to_ppc(BPF_REG_0), tmp2_reg)); + else + EMIT(PPC_RAW_CMPW(bpf_to_ppc(BPF_REG_0), tmp2_reg)); + /* Don't set if different from old value */ + PPC_BCC_SHORT(COND_NE, (ctx->idx + 3) * 4); + fallthrough; + case BPF_XCHG: + save_reg = src_reg; + break; + default: pr_err_ratelimited( "eBPF filter atomic op code %02x (@%d) unsupported\n", code, i); - return -ENOTSUPP; + return -EOPNOTSUPP; } - /* *(u64 *)(dst + off) += src */ - EMIT(PPC_RAW_ADDI(tmp1_reg, dst_reg, off)); - tmp_idx = ctx->idx * 4; - EMIT(PPC_RAW_LDARX(tmp2_reg, 0, tmp1_reg, 0)); - EMIT(PPC_RAW_ADD(tmp2_reg, tmp2_reg, src_reg)); - EMIT(PPC_RAW_STDCX(tmp2_reg, 0, tmp1_reg)); + /* store new value */ + if (size == BPF_DW) + EMIT(PPC_RAW_STDCX(save_reg, tmp1_reg, dst_reg)); + else + EMIT(PPC_RAW_STWCX(save_reg, tmp1_reg, dst_reg)); + /* we're done if this succeeded */ PPC_BCC_SHORT(COND_NE, tmp_idx); + + if (imm & BPF_FETCH) { + EMIT(PPC_RAW_MR(ret_reg, _R0)); + /* + * Skip unnecessary zero-extension for 32-bit cmpxchg. + * For context, see commit 39491867ace5. + */ + if (size != BPF_DW && imm == BPF_CMPXCHG && + insn_is_zext(&insn[i + 1])) + addrs[++i] = ctx->idx * 4; + } break; /* --- linux-5.19.0.orig/arch/powerpc/perf/callchain.c +++ linux-5.19.0/arch/powerpc/perf/callchain.c @@ -61,6 +61,7 @@ next_sp = fp[0]; if (next_sp == sp + STACK_INT_FRAME_SIZE && + validate_sp(sp, current, STACK_INT_FRAME_SIZE) && fp[STACK_FRAME_MARKER] == STACK_FRAME_REGS_MARKER) { /* * This looks like an interrupt frame for an --- linux-5.19.0.orig/arch/powerpc/perf/core-book3s.c +++ linux-5.19.0/arch/powerpc/perf/core-book3s.c @@ -1349,27 +1349,22 @@ * a PMI happens during interrupt replay and perf counter * values are cleared by PMU callbacks before replay. * - * If any PMC corresponding to the active PMU events are - * overflown, disable the interrupt by clearing the paca - * bit for PMI since we are disabling the PMU now. - * Otherwise provide a warning if there is PMI pending, but - * no counter is found overflown. + * Disable the interrupt by clearing the paca bit for PMI + * since we are disabling the PMU now. Otherwise provide a + * warning if there is PMI pending, but no counter is found + * overflown. + * + * Since power_pmu_disable runs under local_irq_save, it + * could happen that code hits a PMC overflow without PMI + * pending in paca. Hence only clear PMI pending if it was + * set. + * + * If a PMI is pending, then MSR[EE] must be disabled (because + * the masked PMI handler disabling EE). So it is safe to + * call clear_pmi_irq_pending(). */ - if (any_pmc_overflown(cpuhw)) { - /* - * Since power_pmu_disable runs under local_irq_save, it - * could happen that code hits a PMC overflow without PMI - * pending in paca. Hence only clear PMI pending if it was - * set. - * - * If a PMI is pending, then MSR[EE] must be disabled (because - * the masked PMI handler disabling EE). So it is safe to - * call clear_pmi_irq_pending(). - */ - if (pmi_irq_pending()) - clear_pmi_irq_pending(); - } else - WARN_ON(pmi_irq_pending()); + if (pmi_irq_pending()) + clear_pmi_irq_pending(); val = mmcra = cpuhw->mmcr.mmcra; --- linux-5.19.0.orig/arch/powerpc/perf/hv-gpci-requests.h +++ linux-5.19.0/arch/powerpc/perf/hv-gpci-requests.h @@ -79,6 +79,7 @@ ) #include I(REQUEST_END) +#ifdef ENABLE_EVENTS_COUNTERINFO_V6 /* * Not available for counter_info_version >= 0x8, use * run_instruction_cycles_by_partition(0x100) instead. @@ -92,6 +93,7 @@ __count(0x10, 8, cycles) ) #include I(REQUEST_END) +#endif #define REQUEST_NAME system_performance_capabilities #define REQUEST_NUM 0x40 @@ -103,6 +105,7 @@ ) #include I(REQUEST_END) +#ifdef ENABLE_EVENTS_COUNTERINFO_V6 #define REQUEST_NAME processor_bus_utilization_abc_links #define REQUEST_NUM 0x50 #define REQUEST_IDX_KIND "hw_chip_id=?" @@ -194,6 +197,7 @@ __count(0x28, 8, instructions_completed) ) #include I(REQUEST_END) +#endif /* Processor_core_power_mode (0x95) skipped, no counters */ /* Affinity_domain_information_by_virtual_processor (0xA0) skipped, --- linux-5.19.0.orig/arch/powerpc/perf/hv-gpci.c +++ linux-5.19.0/arch/powerpc/perf/hv-gpci.c @@ -70,9 +70,9 @@ .attrs = format_attrs, }; -static const struct attribute_group event_group = { +static struct attribute_group event_group = { .name = "events", - .attrs = hv_gpci_event_attrs, + /* .attrs is set in init */ }; #define HV_CAPS_ATTR(_name, _format) \ @@ -330,6 +330,7 @@ int r; unsigned long hret; struct hv_perf_caps caps; + struct hv_gpci_request_buffer *arg; hv_gpci_assert_offsets_correct(); @@ -353,6 +354,36 @@ /* sampling not supported */ h_gpci_pmu.capabilities |= PERF_PMU_CAP_NO_INTERRUPT; + arg = (void *)get_cpu_var(hv_gpci_reqb); + memset(arg, 0, HGPCI_REQ_BUFFER_SIZE); + + /* + * hcall H_GET_PERF_COUNTER_INFO populates the output + * counter_info_version value based on the system hypervisor. + * Pass the counter request 0x10 corresponds to request type + * 'Dispatch_timebase_by_processor', to get the supported + * counter_info_version. + */ + arg->params.counter_request = cpu_to_be32(0x10); + + r = plpar_hcall_norets(H_GET_PERF_COUNTER_INFO, + virt_to_phys(arg), HGPCI_REQ_BUFFER_SIZE); + if (r) { + pr_devel("hcall failed, can't get supported counter_info_version: 0x%x\n", r); + arg->params.counter_info_version_out = 0x8; + } + + /* + * Use counter_info_version_out value to assign + * required hv-gpci event list. + */ + if (arg->params.counter_info_version_out >= 0x8) + event_group.attrs = hv_gpci_event_attrs; + else + event_group.attrs = hv_gpci_event_attrs_v6; + + put_cpu_var(hv_gpci_reqb); + r = perf_pmu_register(&h_gpci_pmu, h_gpci_pmu.name, -1); if (r) return r; --- linux-5.19.0.orig/arch/powerpc/perf/hv-gpci.h +++ linux-5.19.0/arch/powerpc/perf/hv-gpci.h @@ -26,6 +26,7 @@ #define REQUEST_FILE "../hv-gpci-requests.h" #define NAME_LOWER hv_gpci #define NAME_UPPER HV_GPCI +#define ENABLE_EVENTS_COUNTERINFO_V6 #include "req-gen/perf.h" #undef REQUEST_FILE #undef NAME_LOWER --- linux-5.19.0.orig/arch/powerpc/perf/req-gen/perf.h +++ linux-5.19.0/arch/powerpc/perf/req-gen/perf.h @@ -139,6 +139,26 @@ #define REQUEST_(r_name, r_value, r_idx_1, r_fields) \ r_fields +/* Generate event list for platforms with counter_info_version 0x6 or below */ +static __maybe_unused struct attribute *hv_gpci_event_attrs_v6[] = { +#include REQUEST_FILE + NULL +}; + +/* + * Based on getPerfCountInfo v1.018 documentation, some of the hv-gpci + * events were deprecated for platform firmware that supports + * counter_info_version 0x8 or above. + * Those deprecated events are still part of platform firmware that + * support counter_info_version 0x6 and below. As per the getPerfCountInfo + * v1.018 documentation there is no counter_info_version 0x7. + * Undefining macro ENABLE_EVENTS_COUNTERINFO_V6, to disable the addition of + * deprecated events in "hv_gpci_event_attrs" attribute group, for platforms + * that supports counter_info_version 0x8 or above. + */ +#undef ENABLE_EVENTS_COUNTERINFO_V6 + +/* Generate event list for platforms with counter_info_version 0x8 or above*/ static __maybe_unused struct attribute *hv_gpci_event_attrs[] = { #include REQUEST_FILE NULL --- linux-5.19.0.orig/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c +++ linux-5.19.0/arch/powerpc/platforms/52xx/mpc52xx_lpbfifo.c @@ -531,6 +531,7 @@ err_bcom_rx_irq: bcom_gen_bd_rx_release(lpbfifo.bcom_rx_task); err_bcom_rx: + free_irq(lpbfifo.irq, &lpbfifo); err_irq: iounmap(lpbfifo.regs); lpbfifo.regs = NULL; --- linux-5.19.0.orig/arch/powerpc/platforms/83xx/mpc832x_rdb.c +++ linux-5.19.0/arch/powerpc/platforms/83xx/mpc832x_rdb.c @@ -107,7 +107,7 @@ goto next; unreg: - platform_device_del(pdev); + platform_device_put(pdev); err: pr_err("%pOF: registration failed\n", np); next: --- linux-5.19.0.orig/arch/powerpc/platforms/Kconfig.cputype +++ linux-5.19.0/arch/powerpc/platforms/Kconfig.cputype @@ -136,9 +136,9 @@ select ARCH_HAS_FAST_MULTIPLIER select PPC_64S_HASH_MMU -config GENERIC_CPU +config POWERPC_CPU bool "Generic 32 bits powerpc" - depends on PPC32 && !PPC_8xx + depends on PPC32 && !PPC_8xx && !PPC_85xx config CELL_CPU bool "Cell Broadband Engine" @@ -174,11 +174,11 @@ config E5500_CPU bool "Freescale e5500" - depends on E500 + depends on PPC64 && E500 config E6500_CPU bool "Freescale e6500" - depends on E500 + depends on PPC64 && E500 config 860_CPU bool "8xx family" @@ -197,11 +197,23 @@ depends on PPC_BOOK3S_32 select ALTIVEC +config E500_CPU + bool "e500 (8540)" + depends on PPC_85xx && !PPC_E500MC + +config E500MC_CPU + bool "e500mc" + depends on PPC_85xx && PPC_E500MC + +config TOOLCHAIN_DEFAULT_CPU + bool "Rely on the toolchain's implicit default CPU" + depends on PPC32 + endchoice config TARGET_CPU_BOOL bool - default !GENERIC_CPU + default !GENERIC_CPU && !TOOLCHAIN_DEFAULT_CPU config TARGET_CPU string @@ -216,6 +228,9 @@ default "e300c2" if E300C2_CPU default "e300c3" if E300C3_CPU default "G4" if G4_CPU + default "8540" if E500_CPU + default "e500mc" if E500MC_CPU + default "powerpc" if POWERPC_CPU config PPC_BOOK3S def_bool y --- linux-5.19.0.orig/arch/powerpc/platforms/cell/axon_msi.c +++ linux-5.19.0/arch/powerpc/platforms/cell/axon_msi.c @@ -223,6 +223,7 @@ if (!prop) { dev_dbg(&dev->dev, "axon_msi: no msi-address-(32|64) properties found\n"); + of_node_put(dn); return -ENOENT; } --- linux-5.19.0.orig/arch/powerpc/platforms/cell/spufs/inode.c +++ linux-5.19.0/arch/powerpc/platforms/cell/spufs/inode.c @@ -660,6 +660,7 @@ return; loader = of_get_property(dn, "loader", &size); + of_node_put(dn); if (!loader) return; --- linux-5.19.0.orig/arch/powerpc/platforms/powernv/opal.c +++ linux-5.19.0/arch/powerpc/platforms/powernv/opal.c @@ -892,6 +892,7 @@ kobj = kobject_create_and_add("exports", opal_kobj); if (!kobj) { pr_warn("kobject_create_and_add() of exports failed\n"); + of_node_put(np); return; } --- linux-5.19.0.orig/arch/powerpc/platforms/powernv/pci-ioda.c +++ linux-5.19.0/arch/powerpc/platforms/powernv/pci-ioda.c @@ -1609,6 +1609,7 @@ tbl->it_ops = &pnv_ioda1_iommu_ops; pe->table_group.tce32_start = tbl->it_offset << tbl->it_page_shift; pe->table_group.tce32_size = tbl->it_size << tbl->it_page_shift; + tbl->it_index = (phb->hose->global_number << 16) | pe->pe_number; if (!iommu_init_table(tbl, phb->hose->node, 0, 0)) panic("Failed to initialize iommu table"); @@ -1779,6 +1780,7 @@ res_end = min(window_size, SZ_4G) >> tbl->it_page_shift; } + tbl->it_index = (pe->phb->hose->global_number << 16) | pe->pe_number; if (iommu_init_table(tbl, pe->phb->hose->node, res_start, res_end)) rc = pnv_pci_ioda2_set_window(&pe->table_group, 0, tbl); else --- linux-5.19.0.orig/arch/powerpc/platforms/powernv/rng.c +++ linux-5.19.0/arch/powerpc/platforms/powernv/rng.c @@ -29,15 +29,6 @@ static DEFINE_PER_CPU(struct powernv_rng *, powernv_rng); -int powernv_hwrng_present(void) -{ - struct powernv_rng *rng; - - rng = get_cpu_var(powernv_rng); - put_cpu_var(rng); - return rng != NULL; -} - static unsigned long rng_whiten(struct powernv_rng *rng, unsigned long val) { unsigned long parity; @@ -58,17 +49,6 @@ return val; } -int powernv_get_random_real_mode(unsigned long *v) -{ - struct powernv_rng *rng; - - rng = raw_cpu_read(powernv_rng); - - *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real)); - - return 1; -} - static int powernv_get_random_darn(unsigned long *v) { unsigned long val; @@ -105,12 +85,14 @@ { struct powernv_rng *rng; - rng = get_cpu_var(powernv_rng); - - *v = rng_whiten(rng, in_be64(rng->regs)); - - put_cpu_var(rng); - + if (mfmsr() & MSR_DR) { + rng = get_cpu_var(powernv_rng); + *v = rng_whiten(rng, in_be64(rng->regs)); + put_cpu_var(rng); + } else { + rng = raw_cpu_read(powernv_rng); + *v = rng_whiten(rng, __raw_rm_readq(rng->regs_real)); + } return 1; } EXPORT_SYMBOL_GPL(powernv_get_random_long); --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/eeh_pseries.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/eeh_pseries.c @@ -848,16 +848,7 @@ } /* Initialize error log size */ - eeh_error_buf_size = rtas_token("rtas-error-log-max"); - if (eeh_error_buf_size == RTAS_UNKNOWN_SERVICE) { - pr_info("%s: unknown EEH error log size\n", - __func__); - eeh_error_buf_size = 1024; - } else if (eeh_error_buf_size > RTAS_ERROR_LOG_MAX) { - pr_info("%s: EEH error log size %d exceeds the maximal %d\n", - __func__, eeh_error_buf_size, RTAS_ERROR_LOG_MAX); - eeh_error_buf_size = RTAS_ERROR_LOG_MAX; - } + eeh_error_buf_size = rtas_get_error_log_max(); /* Set EEH probe mode */ eeh_add_flag(EEH_PROBE_MODE_DEVTREE | EEH_ENABLE_IO_FOR_LOG); --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/iommu.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/iommu.c @@ -700,6 +700,33 @@ .get = tce_get_pSeriesLP }; +/* + * Find nearest ibm,dma-window (default DMA window) or direct DMA window or + * dynamic 64bit DMA window, walking up the device tree. + */ +static struct device_node *pci_dma_find(struct device_node *dn, + const __be32 **dma_window) +{ + const __be32 *dw = NULL; + + for ( ; dn && PCI_DN(dn); dn = dn->parent) { + dw = of_get_property(dn, "ibm,dma-window", NULL); + if (dw) { + if (dma_window) + *dma_window = dw; + return dn; + } + dw = of_get_property(dn, DIRECT64_PROPNAME, NULL); + if (dw) + return dn; + dw = of_get_property(dn, DMA64_PROPNAME, NULL); + if (dw) + return dn; + } + + return NULL; +} + static void pci_dma_bus_setup_pSeriesLP(struct pci_bus *bus) { struct iommu_table *tbl; @@ -712,20 +739,10 @@ pr_debug("pci_dma_bus_setup_pSeriesLP: setting up bus %pOF\n", dn); - /* - * Find nearest ibm,dma-window (default DMA window), walking up the - * device tree - */ - for (pdn = dn; pdn != NULL; pdn = pdn->parent) { - dma_window = of_get_property(pdn, "ibm,dma-window", NULL); - if (dma_window != NULL) - break; - } + pdn = pci_dma_find(dn, &dma_window); - if (dma_window == NULL) { + if (dma_window == NULL) pr_debug(" no ibm,dma-window property !\n"); - return; - } ppci = PCI_DN(pdn); @@ -735,11 +752,13 @@ if (!ppci->table_group) { ppci->table_group = iommu_pseries_alloc_group(ppci->phb->node); tbl = ppci->table_group->tables[0]; - iommu_table_setparms_lpar(ppci->phb, pdn, tbl, - ppci->table_group, dma_window); + if (dma_window) { + iommu_table_setparms_lpar(ppci->phb, pdn, tbl, + ppci->table_group, dma_window); - if (!iommu_init_table(tbl, ppci->phb->node, 0, 0)) - panic("Failed to initialize iommu table"); + if (!iommu_init_table(tbl, ppci->phb->node, 0, 0)) + panic("Failed to initialize iommu table"); + } iommu_register_group(ppci->table_group, pci_domain_nr(bus), 0); pr_debug(" created table: %p\n", ppci->table_group); @@ -1232,7 +1251,7 @@ bool default_win_removed = false, direct_mapping = false; bool pmem_present; struct pci_dn *pci = PCI_DN(pdn); - struct iommu_table *tbl = pci->table_group->tables[0]; + struct property *default_win = NULL; dn = of_find_node_by_type(NULL, "ibm,pmemory"); pmem_present = dn != NULL; @@ -1289,11 +1308,10 @@ * for extensions presence. */ if (query.windows_available == 0) { - struct property *default_win; int reset_win_ext; /* DDW + IOMMU on single window may fail if there is any allocation */ - if (iommu_table_in_use(tbl)) { + if (iommu_table_in_use(pci->table_group->tables[0])) { dev_warn(&dev->dev, "current IOMMU table in use, can't be replaced.\n"); goto out_failed; } @@ -1429,16 +1447,18 @@ pci->table_group->tables[1] = newtbl; - /* Keep default DMA window struct if removed */ - if (default_win_removed) { - tbl->it_size = 0; - vfree(tbl->it_map); - tbl->it_map = NULL; - } - set_iommu_table_base(&dev->dev, newtbl); } + if (default_win_removed) { + iommu_tce_table_put(pci->table_group->tables[0]); + pci->table_group->tables[0] = NULL; + + /* default_win is valid here because default_win_removed == true */ + of_remove_property(pdn, default_win); + dev_info(&dev->dev, "Removed default DMA window for %pOF\n", pdn); + } + spin_lock(&dma_win_list_lock); list_add(&window->list, &dma_win_list); spin_unlock(&dma_win_list_lock); @@ -1503,13 +1523,7 @@ dn = pci_device_to_OF_node(dev); pr_debug(" node is %pOF\n", dn); - for (pdn = dn; pdn && PCI_DN(pdn) && !PCI_DN(pdn)->table_group; - pdn = pdn->parent) { - dma_window = of_get_property(pdn, "ibm,dma-window", NULL); - if (dma_window) - break; - } - + pdn = pci_dma_find(dn, &dma_window); if (!pdn || !PCI_DN(pdn)) { printk(KERN_WARNING "pci_dma_dev_setup_pSeriesLP: " "no DMA window found for pci dev=%s dn=%pOF\n", @@ -1540,7 +1554,6 @@ static bool iommu_bypass_supported_pSeriesLP(struct pci_dev *pdev, u64 dma_mask) { struct device_node *dn = pci_device_to_OF_node(pdev), *pdn; - const __be32 *dma_window = NULL; /* only attempt to use a new window if 64-bit DMA is requested */ if (dma_mask < DMA_BIT_MASK(64)) @@ -1554,13 +1567,7 @@ * search upwards in the tree until we either hit a dma-window * property, OR find a parent with a table already allocated. */ - for (pdn = dn; pdn && PCI_DN(pdn) && !PCI_DN(pdn)->table_group; - pdn = pdn->parent) { - dma_window = of_get_property(pdn, "ibm,dma-window", NULL); - if (dma_window) - break; - } - + pdn = pci_dma_find(dn, NULL); if (pdn && PCI_DN(pdn)) return enable_ddw(pdev, pdn); --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/mobility.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/mobility.c @@ -48,6 +48,39 @@ #define MIGRATION_SCOPE (1) #define PRRN_SCOPE -2 +#ifdef CONFIG_PPC_WATCHDOG +static unsigned int nmi_wd_lpm_factor = 200; + +#ifdef CONFIG_SYSCTL +static struct ctl_table nmi_wd_lpm_factor_ctl_table[] = { + { + .procname = "nmi_wd_lpm_factor", + .data = &nmi_wd_lpm_factor, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_douintvec_minmax, + }, + {} +}; +static struct ctl_table nmi_wd_lpm_factor_sysctl_root[] = { + { + .procname = "kernel", + .mode = 0555, + .child = nmi_wd_lpm_factor_ctl_table, + }, + {} +}; + +static int __init register_nmi_wd_lpm_factor_sysctl(void) +{ + register_sysctl_table(nmi_wd_lpm_factor_sysctl_root); + + return 0; +} +device_initcall(register_nmi_wd_lpm_factor_sysctl); +#endif /* CONFIG_SYSCTL */ +#endif /* CONFIG_PPC_WATCHDOG */ + static int mobility_rtas_call(int token, char *buf, s32 scope) { int rc; @@ -665,19 +698,29 @@ static int pseries_migrate_partition(u64 handle) { int ret; + unsigned int factor = 0; +#ifdef CONFIG_PPC_WATCHDOG + factor = nmi_wd_lpm_factor; +#endif ret = wait_for_vasi_session_suspending(handle); if (ret) return ret; vas_migration_handler(VAS_SUSPEND); + if (factor) + watchdog_nmi_set_timeout_pct(factor); + ret = pseries_suspend(handle); if (ret == 0) post_mobility_fixup(); else pseries_cancel_migration(handle, ret); + if (factor) + watchdog_nmi_set_timeout_pct(0); + vas_migration_handler(VAS_RESUME); return ret; --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/papr_scm.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/papr_scm.c @@ -124,9 +124,6 @@ /* The bits which needs to be overridden */ u64 health_bitmap_inject_mask; - - /* array to have event_code and stat_id mappings */ - u8 *nvdimm_events_map; }; static int papr_scm_pmem_flush(struct nd_region *nd_region, @@ -350,6 +347,25 @@ #ifdef CONFIG_PERF_EVENTS #define to_nvdimm_pmu(_pmu) container_of(_pmu, struct nvdimm_pmu, pmu) +static const char * const nvdimm_events_map[] = { + [1] = "CtlResCt", + [2] = "CtlResTm", + [3] = "PonSecs ", + [4] = "MemLife ", + [5] = "CritRscU", + [6] = "HostLCnt", + [7] = "HostSCnt", + [8] = "HostSDur", + [9] = "HostLDur", + [10] = "MedRCnt ", + [11] = "MedWCnt ", + [12] = "MedRDur ", + [13] = "MedWDur ", + [14] = "CchRHCnt", + [15] = "CchWHCnt", + [16] = "FastWCnt", +}; + static int papr_scm_pmu_get_value(struct perf_event *event, struct device *dev, u64 *count) { struct papr_scm_perf_stat *stat; @@ -357,11 +373,15 @@ struct papr_scm_priv *p = (struct papr_scm_priv *)dev->driver_data; int rc, size; + /* Invalid eventcode */ + if (event->attr.config == 0 || event->attr.config >= ARRAY_SIZE(nvdimm_events_map)) + return -EINVAL; + /* Allocate request buffer enough to hold single performance stat */ size = sizeof(struct papr_scm_perf_stats) + sizeof(struct papr_scm_perf_stat); - if (!p || !p->nvdimm_events_map) + if (!p) return -EINVAL; stats = kzalloc(size, GFP_KERNEL); @@ -370,7 +390,7 @@ stat = &stats->scm_statistic[0]; memcpy(&stat->stat_id, - &p->nvdimm_events_map[event->attr.config * sizeof(stat->stat_id)], + nvdimm_events_map[event->attr.config], sizeof(stat->stat_id)); stat->stat_val = 0; @@ -458,56 +478,6 @@ papr_scm_pmu_read(event); } -static int papr_scm_pmu_check_events(struct papr_scm_priv *p, struct nvdimm_pmu *nd_pmu) -{ - struct papr_scm_perf_stat *stat; - struct papr_scm_perf_stats *stats; - u32 available_events; - int index, rc = 0; - - if (!p->stat_buffer_len) - return -ENOENT; - - available_events = (p->stat_buffer_len - sizeof(struct papr_scm_perf_stats)) - / sizeof(struct papr_scm_perf_stat); - if (available_events == 0) - return -EOPNOTSUPP; - - /* Allocate the buffer for phyp where stats are written */ - stats = kzalloc(p->stat_buffer_len, GFP_KERNEL); - if (!stats) { - rc = -ENOMEM; - return rc; - } - - /* Called to get list of events supported */ - rc = drc_pmem_query_stats(p, stats, 0); - if (rc) - goto out; - - /* - * Allocate memory and populate nvdimm_event_map. - * Allocate an extra element for NULL entry - */ - p->nvdimm_events_map = kcalloc(available_events + 1, - sizeof(stat->stat_id), - GFP_KERNEL); - if (!p->nvdimm_events_map) { - rc = -ENOMEM; - goto out; - } - - /* Copy all stat_ids to event map */ - for (index = 0, stat = stats->scm_statistic; - index < available_events; index++, ++stat) { - memcpy(&p->nvdimm_events_map[index * sizeof(stat->stat_id)], - &stat->stat_id, sizeof(stat->stat_id)); - } -out: - kfree(stats); - return rc; -} - static void papr_scm_pmu_register(struct papr_scm_priv *p) { struct nvdimm_pmu *nd_pmu; @@ -519,9 +489,10 @@ goto pmu_err_print; } - rc = papr_scm_pmu_check_events(p, nd_pmu); - if (rc) + if (!p->stat_buffer_len) { + rc = -ENOENT; goto pmu_check_events_err; + } nd_pmu->pmu.task_ctx_nr = perf_invalid_context; nd_pmu->pmu.name = nvdimm_name(p->nvdimm); @@ -539,7 +510,7 @@ rc = register_nvdimm_pmu(nd_pmu, p->pdev); if (rc) - goto pmu_register_err; + goto pmu_check_events_err; /* * Set archdata.priv value to nvdimm_pmu structure, to handle the @@ -548,8 +519,6 @@ p->pdev->archdata.priv = nd_pmu; return; -pmu_register_err: - kfree(p->nvdimm_events_map); pmu_check_events_err: kfree(nd_pmu); pmu_err_print: @@ -1560,7 +1529,6 @@ unregister_nvdimm_pmu(pdev->archdata.priv); pdev->archdata.priv = NULL; - kfree(p->nvdimm_events_map); kfree(p->bus_desc.provider_name); kfree(p); --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/vas.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/vas.c @@ -332,7 +332,7 @@ * So no unpacking needs to be done. */ rc = plpar_hcall9(H_HOME_NODE_ASSOCIATIVITY, domain, - VPHN_FLAG_VCPU, smp_processor_id()); + VPHN_FLAG_VCPU, hard_smp_processor_id()); if (rc != H_SUCCESS) { pr_err("H_HOME_NODE_ASSOCIATIVITY error: %d\n", rc); goto out; --- linux-5.19.0.orig/arch/powerpc/platforms/pseries/vio.c +++ linux-5.19.0/arch/powerpc/platforms/pseries/vio.c @@ -39,7 +39,6 @@ .name = "vio", .type = "", .dev.init_name = "vio", - .dev.bus = &vio_bus_type, }; #ifdef CONFIG_PPC_SMLPAR --- linux-5.19.0.orig/arch/powerpc/sysdev/fsl_msi.c +++ linux-5.19.0/arch/powerpc/sysdev/fsl_msi.c @@ -209,8 +209,10 @@ dev_err(&pdev->dev, "node %pOF has an invalid fsl,msi phandle %u\n", hose->dn, np->phandle); + of_node_put(np); return -EINVAL; } + of_node_put(np); } msi_for_each_desc(entry, &pdev->dev, MSI_DESC_NOTASSOCIATED) { --- linux-5.19.0.orig/arch/powerpc/sysdev/fsl_pci.c +++ linux-5.19.0/arch/powerpc/sysdev/fsl_pci.c @@ -521,6 +521,7 @@ struct resource rsrc; const int *bus_range; u8 hdr_type, progif; + u32 class_code; struct device_node *dev; struct ccsr_pci __iomem *pci; u16 temp; @@ -594,6 +595,13 @@ PPC_INDIRECT_TYPE_SURPRESS_PRIMARY_BUS; if (fsl_pcie_check_link(hose)) hose->indirect_type |= PPC_INDIRECT_TYPE_NO_PCIE_LINK; + /* Fix Class Code to PCI_CLASS_BRIDGE_PCI_NORMAL for pre-3.0 controller */ + if (in_be32(&pci->block_rev1) < PCIE_IP_REV_3_0) { + early_read_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, &class_code); + class_code &= 0xff; + class_code |= PCI_CLASS_BRIDGE_PCI_NORMAL << 8; + early_write_config_dword(hose, 0, 0, PCIE_FSL_CSR_CLASSCODE, class_code); + } } else { /* * Set PBFR(PCI Bus Function Register)[10] = 1 to --- linux-5.19.0.orig/arch/powerpc/sysdev/fsl_pci.h +++ linux-5.19.0/arch/powerpc/sysdev/fsl_pci.h @@ -18,6 +18,7 @@ #define PCIE_LTSSM 0x0404 /* PCIE Link Training and Status */ #define PCIE_LTSSM_L0 0x16 /* L0 state */ +#define PCIE_FSL_CSR_CLASSCODE 0x474 /* FSL GPEX CSR */ #define PCIE_IP_REV_2_2 0x02080202 /* PCIE IP block version Rev2.2 */ #define PCIE_IP_REV_3_0 0x02080300 /* PCIE IP block version Rev3.0 */ #define PIWAR_EN 0x80000000 /* Enable */ --- linux-5.19.0.orig/arch/powerpc/sysdev/xics/ics-rtas.c +++ linux-5.19.0/arch/powerpc/sysdev/xics/ics-rtas.c @@ -36,8 +36,8 @@ server = xics_get_irq_server(d->irq, irq_data_get_affinity_mask(d), 0); - call_status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL, hw_irq, - server, DEFAULT_PRIORITY); + call_status = rtas_call(ibm_set_xive, 3, 1, NULL, hw_irq, server, + DEFAULT_PRIORITY); if (call_status != 0) { printk(KERN_ERR "%s: ibm_set_xive irq %u server %x returned %d\n", @@ -46,7 +46,7 @@ } /* Now unmask the interrupt (often a no-op) */ - call_status = rtas_call_reentrant(ibm_int_on, 1, 1, NULL, hw_irq); + call_status = rtas_call(ibm_int_on, 1, 1, NULL, hw_irq); if (call_status != 0) { printk(KERN_ERR "%s: ibm_int_on irq=%u returned %d\n", __func__, hw_irq, call_status); @@ -68,7 +68,7 @@ if (hw_irq == XICS_IPI) return; - call_status = rtas_call_reentrant(ibm_int_off, 1, 1, NULL, hw_irq); + call_status = rtas_call(ibm_int_off, 1, 1, NULL, hw_irq); if (call_status != 0) { printk(KERN_ERR "%s: ibm_int_off irq=%u returned %d\n", __func__, hw_irq, call_status); @@ -76,8 +76,8 @@ } /* Have to set XIVE to 0xff to be able to remove a slot */ - call_status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL, hw_irq, - xics_default_server, 0xff); + call_status = rtas_call(ibm_set_xive, 3, 1, NULL, hw_irq, + xics_default_server, 0xff); if (call_status != 0) { printk(KERN_ERR "%s: ibm_set_xive(0xff) irq=%u returned %d\n", __func__, hw_irq, call_status); @@ -108,7 +108,7 @@ if (hw_irq == XICS_IPI || hw_irq == XICS_IRQ_SPURIOUS) return -1; - status = rtas_call_reentrant(ibm_get_xive, 1, 3, xics_status, hw_irq); + status = rtas_call(ibm_get_xive, 1, 3, xics_status, hw_irq); if (status) { printk(KERN_ERR "%s: ibm,get-xive irq=%u returns %d\n", @@ -126,8 +126,8 @@ pr_debug("%s: irq %d [hw 0x%x] server: 0x%x\n", __func__, d->irq, hw_irq, irq_server); - status = rtas_call_reentrant(ibm_set_xive, 3, 1, NULL, - hw_irq, irq_server, xics_status[1]); + status = rtas_call(ibm_set_xive, 3, 1, NULL, + hw_irq, irq_server, xics_status[1]); if (status) { printk(KERN_ERR "%s: ibm,set-xive irq=%u returns %d\n", @@ -158,7 +158,7 @@ return -EINVAL; /* Check if RTAS knows about this interrupt */ - rc = rtas_call_reentrant(ibm_get_xive, 1, 3, status, hw_irq); + rc = rtas_call(ibm_get_xive, 1, 3, status, hw_irq); if (rc) return -ENXIO; @@ -174,7 +174,7 @@ { int rc, status[2]; - rc = rtas_call_reentrant(ibm_get_xive, 1, 3, status, vec); + rc = rtas_call(ibm_get_xive, 1, 3, status, vec); if (rc) return -1; return status[0]; --- linux-5.19.0.orig/arch/powerpc/sysdev/xive/spapr.c +++ linux-5.19.0/arch/powerpc/sysdev/xive/spapr.c @@ -439,6 +439,7 @@ data->trig_mmio = ioremap(data->trig_page, 1u << data->esb_shift); if (!data->trig_mmio) { + iounmap(data->eoi_mmio); pr_err("Failed to map trigger page for irq 0x%x\n", hw_irq); return -ENOMEM; } @@ -718,6 +719,7 @@ } reg = of_get_property(rootdn, "ibm,plat-res-int-priorities", &len); + of_node_put(rootdn); if (!reg) { pr_err("Failed to read 'ibm,plat-res-int-priorities' property\n"); return false; --- linux-5.19.0.orig/arch/powerpc/xmon/xmon.c +++ linux-5.19.0/arch/powerpc/xmon/xmon.c @@ -1525,9 +1525,9 @@ cmd = inchar(); switch (cmd) { - static const char badaddr[] = "Only kernel addresses are permitted for breakpoints\n"; - int mode; - case 'd': /* bd - hardware data breakpoint */ + case 'd': { /* bd - hardware data breakpoint */ + static const char badaddr[] = "Only kernel addresses are permitted for breakpoints\n"; + int mode; if (xmon_is_ro) { printf(xmon_ro_msg); break; @@ -1560,6 +1560,7 @@ force_enable_xmon(); break; + } case 'i': /* bi - hardware instr breakpoint */ if (xmon_is_ro) { --- linux-5.19.0.orig/arch/riscv/Kconfig +++ linux-5.19.0/arch/riscv/Kconfig @@ -52,7 +52,7 @@ select COMMON_CLK select CPU_PM if CPU_IDLE select EDAC_SUPPORT - select GENERIC_ARCH_TOPOLOGY if SMP + select GENERIC_ARCH_TOPOLOGY select GENERIC_ATOMIC64 if !64BIT select GENERIC_CLOCKEVENTS_BROADCAST if SMP select GENERIC_EARLY_IOREMAP @@ -361,6 +361,7 @@ config RISCV_ISA_SVPBMT bool "SVPBMT extension support" depends on 64BIT && MMU + depends on !XIP_KERNEL select RISCV_ALTERNATIVE default y help --- linux-5.19.0.orig/arch/riscv/Kconfig.erratas +++ linux-5.19.0/arch/riscv/Kconfig.erratas @@ -46,7 +46,7 @@ config ERRATA_THEAD_PBMT bool "Apply T-Head memory type errata" - depends on ERRATA_THEAD && 64BIT + depends on ERRATA_THEAD && 64BIT && MMU select RISCV_ALTERNATIVE_EARLY default y help --- linux-5.19.0.orig/arch/riscv/Makefile +++ linux-5.19.0/arch/riscv/Makefile @@ -37,6 +37,7 @@ endif ifeq ($(CONFIG_LD_IS_LLD),y) +ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 150000; echo $$?),0) KBUILD_CFLAGS += -mno-relax KBUILD_AFLAGS += -mno-relax ifndef CONFIG_AS_IS_LLVM @@ -44,6 +45,7 @@ KBUILD_AFLAGS += -Wa,-mno-relax endif endif +endif # ISA string setting riscv-march-$(CONFIG_ARCH_RV32I) := rv32ima --- linux-5.19.0.orig/arch/riscv/boot/dts/canaan/k210.dtsi +++ linux-5.19.0/arch/riscv/boot/dts/canaan/k210.dtsi @@ -65,6 +65,18 @@ compatible = "riscv,cpu-intc"; }; }; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + + core1 { + cpu = <&cpu1>; + }; + }; + }; }; sram: memory@80000000 { --- linux-5.19.0.orig/arch/riscv/boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi +++ linux-5.19.0/arch/riscv/boot/dts/microchip/mpfs-icicle-kit-fabric.dtsi @@ -4,18 +4,18 @@ / { compatible = "microchip,mpfs-icicle-reference-rtlv2203", "microchip,mpfs"; - core_pwm0: pwm@41000000 { + core_pwm0: pwm@40000000 { compatible = "microchip,corepwm-rtl-v4"; - reg = <0x0 0x41000000 0x0 0xF0>; + reg = <0x0 0x40000000 0x0 0xF0>; microchip,sync-update-mask = /bits/ 32 <0>; #pwm-cells = <2>; clocks = <&fabric_clk3>; status = "disabled"; }; - i2c2: i2c@44000000 { + i2c2: i2c@40000200 { compatible = "microchip,corei2c-rtl-v7"; - reg = <0x0 0x44000000 0x0 0x1000>; + reg = <0x0 0x40000200 0x0 0x100>; #address-cells = <1>; #size-cells = <0>; clocks = <&fabric_clk3>; @@ -28,7 +28,7 @@ fabric_clk3: fabric-clk3 { compatible = "fixed-clock"; #clock-cells = <0>; - clock-frequency = <62500000>; + clock-frequency = <50000000>; }; fabric_clk1: fabric-clk1 { --- linux-5.19.0.orig/arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts +++ linux-5.19.0/arch/riscv/boot/dts/microchip/mpfs-icicle-kit.dts @@ -32,15 +32,26 @@ ddrc_cache_lo: memory@80000000 { device_type = "memory"; - reg = <0x0 0x80000000 0x0 0x2e000000>; + reg = <0x0 0x80000000 0x0 0x40000000>; status = "okay"; }; ddrc_cache_hi: memory@1000000000 { device_type = "memory"; - reg = <0x10 0x0 0x0 0x40000000>; + reg = <0x10 0x40000000 0x0 0x40000000>; status = "okay"; }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + hss_payload: region@BFC00000 { + reg = <0x0 0xBFC00000 0x0 0x400000>; + no-map; + }; + }; }; &core_pwm0 { @@ -84,12 +95,10 @@ phy1: ethernet-phy@9 { reg = <9>; - ti,fifo-depth = <0x1>; }; phy0: ethernet-phy@8 { reg = <8>; - ti,fifo-depth = <0x1>; }; }; @@ -102,7 +111,6 @@ disable-wp; cap-sd-highspeed; cap-mmc-highspeed; - card-detect-delay = <200>; mmc-ddr-1_8v; mmc-hs200-1_8v; sd-uhs-sdr12; @@ -128,9 +136,11 @@ status = "okay"; }; +/* UBUNTU: PCIe support is not yet ready, so disable it for now &pcie { status = "okay"; }; +*/ &qspi { status = "okay"; --- linux-5.19.0.orig/arch/riscv/boot/dts/microchip/mpfs-polarberry.dts +++ linux-5.19.0/arch/riscv/boot/dts/microchip/mpfs-polarberry.dts @@ -54,12 +54,10 @@ phy1: ethernet-phy@5 { reg = <5>; - ti,fifo-depth = <0x01>; }; phy0: ethernet-phy@4 { reg = <4>; - ti,fifo-depth = <0x01>; }; }; @@ -72,7 +70,6 @@ disable-wp; cap-sd-highspeed; cap-mmc-highspeed; - card-detect-delay = <200>; mmc-ddr-1_8v; mmc-hs200-1_8v; sd-uhs-sdr12; --- linux-5.19.0.orig/arch/riscv/boot/dts/microchip/mpfs.dtsi +++ linux-5.19.0/arch/riscv/boot/dts/microchip/mpfs.dtsi @@ -161,7 +161,7 @@ ranges; cctrllr: cache-controller@2010000 { - compatible = "sifive,fu540-c000-ccache", "cache"; + compatible = "microchip,mpfs-ccache", "sifive,fu540-c000-ccache", "cache"; reg = <0x0 0x2010000 0x0 0x1000>; cache-block-size = <64>; cache-level = <2>; @@ -169,7 +169,7 @@ cache-size = <2097152>; cache-unified; interrupt-parent = <&plic>; - interrupts = <1>, <2>, <3>; + interrupts = <1>, <3>, <4>, <2>; }; clint: clint@2000000 { @@ -446,9 +446,8 @@ ranges = <0x3000000 0x0 0x8000000 0x20 0x8000000 0x0 0x80000000>; msi-parent = <&pcie>; msi-controller; - microchip,axi-m-atr0 = <0x10 0x0>; status = "disabled"; - pcie_intc: legacy-interrupt-controller { + pcie_intc: interrupt-controller { #address-cells = <0>; #interrupt-cells = <1>; interrupt-controller; --- linux-5.19.0.orig/arch/riscv/boot/dts/sifive/fu740-c000.dtsi +++ linux-5.19.0/arch/riscv/boot/dts/sifive/fu740-c000.dtsi @@ -39,7 +39,7 @@ }; }; cpu1: cpu@1 { - compatible = "sifive,bullet0", "riscv"; + compatible = "sifive,u74-mc", "sifive,bullet0", "riscv"; d-cache-block-size = <64>; d-cache-sets = <64>; d-cache-size = <32768>; @@ -63,7 +63,7 @@ }; }; cpu2: cpu@2 { - compatible = "sifive,bullet0", "riscv"; + compatible = "sifive,u74-mc", "sifive,bullet0", "riscv"; d-cache-block-size = <64>; d-cache-sets = <64>; d-cache-size = <32768>; @@ -87,7 +87,7 @@ }; }; cpu3: cpu@3 { - compatible = "sifive,bullet0", "riscv"; + compatible = "sifive,u74-mc", "sifive,bullet0", "riscv"; d-cache-block-size = <64>; d-cache-sets = <64>; d-cache-size = <32768>; @@ -111,7 +111,7 @@ }; }; cpu4: cpu@4 { - compatible = "sifive,bullet0", "riscv"; + compatible = "sifive,u74-mc", "sifive,bullet0", "riscv"; d-cache-block-size = <64>; d-cache-sets = <64>; d-cache-size = <32768>; @@ -134,6 +134,30 @@ interrupt-controller; }; }; + + cpu-map { + cluster0 { + core0 { + cpu = <&cpu0>; + }; + + core1 { + cpu = <&cpu1>; + }; + + core2 { + cpu = <&cpu2>; + }; + + core3 { + cpu = <&cpu3>; + }; + + core4 { + cpu = <&cpu4>; + }; + }; + }; }; soc { #address-cells = <2>; --- linux-5.19.0.orig/arch/riscv/boot/dts/sifive/hifive-unleashed-a00-microsemi.dts +++ linux-5.19.0/arch/riscv/boot/dts/sifive/hifive-unleashed-a00-microsemi.dts @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) + +#include "hifive-unleashed-a00.dts" + +/ { + soc { + pcie: pcie@2030000000 { + #address-cells = <0x3>; + #interrupt-cells = <0x1>; + #size-cells = <0x2>; + compatible = "microsemi,ms-pf-axi-pcie-host"; + device_type = "pci"; + bus-range = <0x01 0x7f>; + interrupt-map = <0 0 0 1 &ms_pcie_intc 0 0 0 0 2 &ms_pcie_intc 1 0 0 0 3 &ms_pcie_intc 2 0 0 0 4 &ms_pcie_intc 3>; + interrupt-map-mask = <0 0 0 7>; + interrupt-parent = <&plic0>; + interrupts = <32>; + ranges = <0x3000000 0x0 0x40000000 0x0 0x40000000 0x0 0x20000000>; + reg = <0x20 0x30000000 0x0 0x4000000 0x20 0x0 0x0 0x100000>; + reg-names = "control", "apb"; + ms_pcie_intc: interrupt-controller { + #address-cells = <0>; + #interrupt-cells = <1>; + interrupt-controller; + }; + }; + }; +}; --- linux-5.19.0.orig/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts +++ linux-5.19.0/arch/riscv/boot/dts/sifive/hifive-unleashed-a00.dts @@ -3,6 +3,8 @@ #include "fu540-c000.dtsi" #include +#include +#include /* Clock frequency (in Hz) of the PCB crystal for rtcclk */ #define RTCCLK_FREQ 1000000 @@ -42,6 +44,42 @@ compatible = "gpio-restart"; gpios = <&gpio 10 GPIO_ACTIVE_LOW>; }; + + led-controller { + compatible = "pwm-leds"; + + led-d1 { + pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + max-brightness = <255>; + label = "d1"; + }; + + led-d2 { + pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + max-brightness = <255>; + label = "d2"; + }; + + led-d3 { + pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + max-brightness = <255>; + label = "d3"; + }; + + led-d4 { + pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + max-brightness = <255>; + label = "d4"; + }; + }; }; &uart0 { --- linux-5.19.0.orig/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts +++ linux-5.19.0/arch/riscv/boot/dts/sifive/hifive-unmatched-a00.dts @@ -4,6 +4,8 @@ #include "fu740-c000.dtsi" #include #include +#include +#include /* Clock frequency (in Hz) of the PCB crystal for rtcclk */ #define RTCCLK_FREQ 1000000 @@ -44,6 +46,46 @@ compatible = "gpio-poweroff"; gpios = <&gpio 2 GPIO_ACTIVE_LOW>; }; + + led-controller-1 { + compatible = "pwm-leds"; + + led-d12 { + pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + max-brightness = <255>; + label = "d12"; + }; + }; + + led-controller-2 { + compatible = "pwm-leds-multicolor"; + + multi-led { + color = ; + max-brightness = <255>; + label = "d2"; + + led-red { + pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + }; + + led-green { + pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + }; + + led-blue { + pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>; + active-low; + color = ; + }; + }; + }; }; &uart0 { --- linux-5.19.0.orig/arch/riscv/boot/dts/starfive/jh7100.dtsi +++ linux-5.19.0/arch/riscv/boot/dts/starfive/jh7100.dtsi @@ -118,7 +118,7 @@ interrupt-controller; #address-cells = <0>; #interrupt-cells = <1>; - riscv,ndev = <127>; + riscv,ndev = <133>; }; clkgen: clock-controller@11800000 { --- linux-5.19.0.orig/arch/riscv/include/asm/asm.h +++ linux-5.19.0/arch/riscv/include/asm/asm.h @@ -23,6 +23,7 @@ #define REG_L __REG_SEL(ld, lw) #define REG_S __REG_SEL(sd, sw) #define REG_SC __REG_SEL(sc.d, sc.w) +#define REG_AMOSWAP_AQ __REG_SEL(amoswap.d.aq, amoswap.w.aq) #define REG_ASM __REG_SEL(.dword, .word) #define SZREG __REG_SEL(8, 4) #define LGREG __REG_SEL(3, 2) --- linux-5.19.0.orig/arch/riscv/include/asm/cpu_ops.h +++ linux-5.19.0/arch/riscv/include/asm/cpu_ops.h @@ -38,6 +38,7 @@ #endif }; +extern const struct cpu_operations cpu_ops_spinwait; extern const struct cpu_operations *cpu_ops[NR_CPUS]; void __init cpu_set_ops(int cpu); --- linux-5.19.0.orig/arch/riscv/include/asm/efi.h +++ linux-5.19.0/arch/riscv/include/asm/efi.h @@ -10,6 +10,7 @@ #include #include #include +#include #ifdef CONFIG_EFI extern void efi_init(void); @@ -20,7 +21,10 @@ int efi_create_mapping(struct mm_struct *mm, efi_memory_desc_t *md); int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md); -#define arch_efi_call_virt_setup() efi_virtmap_load() +#define arch_efi_call_virt_setup() ({ \ + sync_kernel_mappings(efi_mm.pgd); \ + efi_virtmap_load(); \ + }) #define arch_efi_call_virt_teardown() efi_virtmap_unload() #define arch_efi_call_virt(p, f, args...) p->f(args) --- linux-5.19.0.orig/arch/riscv/include/asm/hugetlb.h +++ linux-5.19.0/arch/riscv/include/asm/hugetlb.h @@ -5,4 +5,10 @@ #include #include +static inline void arch_clear_hugepage_flags(struct page *page) +{ + clear_bit(PG_dcache_clean, &page->flags); +} +#define arch_clear_hugepage_flags arch_clear_hugepage_flags + #endif /* _ASM_RISCV_HUGETLB_H */ --- linux-5.19.0.orig/arch/riscv/include/asm/io.h +++ linux-5.19.0/arch/riscv/include/asm/io.h @@ -101,9 +101,9 @@ __io_reads_ins(ins, u8, b, __io_pbr(), __io_par(addr)) __io_reads_ins(ins, u16, w, __io_pbr(), __io_par(addr)) __io_reads_ins(ins, u32, l, __io_pbr(), __io_par(addr)) -#define insb(addr, buffer, count) __insb((void __iomem *)(long)addr, buffer, count) -#define insw(addr, buffer, count) __insw((void __iomem *)(long)addr, buffer, count) -#define insl(addr, buffer, count) __insl((void __iomem *)(long)addr, buffer, count) +#define insb(addr, buffer, count) __insb(PCI_IOBASE + (addr), buffer, count) +#define insw(addr, buffer, count) __insw(PCI_IOBASE + (addr), buffer, count) +#define insl(addr, buffer, count) __insl(PCI_IOBASE + (addr), buffer, count) __io_writes_outs(writes, u8, b, __io_bw(), __io_aw()) __io_writes_outs(writes, u16, w, __io_bw(), __io_aw()) @@ -115,24 +115,29 @@ __io_writes_outs(outs, u8, b, __io_pbw(), __io_paw()) __io_writes_outs(outs, u16, w, __io_pbw(), __io_paw()) __io_writes_outs(outs, u32, l, __io_pbw(), __io_paw()) -#define outsb(addr, buffer, count) __outsb((void __iomem *)(long)addr, buffer, count) -#define outsw(addr, buffer, count) __outsw((void __iomem *)(long)addr, buffer, count) -#define outsl(addr, buffer, count) __outsl((void __iomem *)(long)addr, buffer, count) +#define outsb(addr, buffer, count) __outsb(PCI_IOBASE + (addr), buffer, count) +#define outsw(addr, buffer, count) __outsw(PCI_IOBASE + (addr), buffer, count) +#define outsl(addr, buffer, count) __outsl(PCI_IOBASE + (addr), buffer, count) #ifdef CONFIG_64BIT __io_reads_ins(reads, u64, q, __io_br(), __io_ar(addr)) #define readsq(addr, buffer, count) __readsq(addr, buffer, count) __io_reads_ins(ins, u64, q, __io_pbr(), __io_par(addr)) -#define insq(addr, buffer, count) __insq((void __iomem *)addr, buffer, count) +#define insq(addr, buffer, count) __insq(PCI_IOBASE + (addr), buffer, count) __io_writes_outs(writes, u64, q, __io_bw(), __io_aw()) #define writesq(addr, buffer, count) __writesq(addr, buffer, count) __io_writes_outs(outs, u64, q, __io_pbr(), __io_paw()) -#define outsq(addr, buffer, count) __outsq((void __iomem *)addr, buffer, count) +#define outsq(addr, buffer, count) __outsq(PCI_IOBASE + (addr), buffer, count) #endif #include +#ifdef CONFIG_MMU +#define arch_memremap_wb(addr, size) \ + ((__force void *)ioremap_prot((addr), (size), _PAGE_KERNEL)) +#endif + #endif /* _ASM_RISCV_IO_H */ --- linux-5.19.0.orig/arch/riscv/include/asm/kvm_vcpu_sbi.h +++ linux-5.19.0/arch/riscv/include/asm/kvm_vcpu_sbi.h @@ -33,4 +33,16 @@ u32 type, u64 flags); const struct kvm_vcpu_sbi_extension *kvm_vcpu_sbi_find_ext(unsigned long extid); +#ifdef CONFIG_RISCV_SBI_V01 +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_v01; +#endif +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_base; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_time; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_ipi; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_rfence; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_srst; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_hsm; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_experimental; +extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_vendor; + #endif /* __RISCV_KVM_VCPU_SBI_H__ */ --- linux-5.19.0.orig/arch/riscv/include/asm/mmu.h +++ linux-5.19.0/arch/riscv/include/asm/mmu.h @@ -16,7 +16,6 @@ atomic_long_t id; #endif void *vdso; - void *vdso_info; #ifdef CONFIG_SMP /* A local icache flush is needed before user execution can resume. */ cpumask_t icache_stale_mask; --- linux-5.19.0.orig/arch/riscv/include/asm/pgalloc.h +++ linux-5.19.0/arch/riscv/include/asm/pgalloc.h @@ -127,6 +127,13 @@ #define __p4d_free_tlb(tlb, p4d, addr) p4d_free((tlb)->mm, p4d) #endif /* __PAGETABLE_PMD_FOLDED */ +static inline void sync_kernel_mappings(pgd_t *pgd) +{ + memcpy(pgd + USER_PTRS_PER_PGD, + init_mm.pgd + USER_PTRS_PER_PGD, + (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); +} + static inline pgd_t *pgd_alloc(struct mm_struct *mm) { pgd_t *pgd; @@ -135,9 +142,7 @@ if (likely(pgd != NULL)) { memset(pgd, 0, USER_PTRS_PER_PGD * sizeof(pgd_t)); /* Copy kernel mappings */ - memcpy(pgd + USER_PTRS_PER_PGD, - init_mm.pgd + USER_PTRS_PER_PGD, - (PTRS_PER_PGD - USER_PTRS_PER_PGD) * sizeof(pgd_t)); + sync_kernel_mappings(pgd); } return pgd; } --- linux-5.19.0.orig/arch/riscv/include/asm/pgtable-64.h +++ linux-5.19.0/arch/riscv/include/asm/pgtable-64.h @@ -25,7 +25,11 @@ #define PGDIR_MASK (~(PGDIR_SIZE - 1)) /* p4d is folded into pgd in case of 4-level page table */ -#define P4D_SHIFT 39 +#define P4D_SHIFT_L3 30 +#define P4D_SHIFT_L4 39 +#define P4D_SHIFT_L5 39 +#define P4D_SHIFT (pgtable_l5_enabled ? P4D_SHIFT_L5 : \ + (pgtable_l4_enabled ? P4D_SHIFT_L4 : P4D_SHIFT_L3)) #define P4D_SIZE (_AC(1, UL) << P4D_SHIFT) #define P4D_MASK (~(P4D_SIZE - 1)) --- linux-5.19.0.orig/arch/riscv/include/asm/signal.h +++ linux-5.19.0/arch/riscv/include/asm/signal.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef __ASM_SIGNAL_H +#define __ASM_SIGNAL_H + +#include +#include + +asmlinkage __visible +void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags); + +#endif --- linux-5.19.0.orig/arch/riscv/include/asm/thread_info.h +++ linux-5.19.0/arch/riscv/include/asm/thread_info.h @@ -42,6 +42,8 @@ #ifndef __ASSEMBLY__ +extern long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE / sizeof(long)]; + #include #include --- linux-5.19.0.orig/arch/riscv/kernel/cpu_ops.c +++ linux-5.19.0/arch/riscv/kernel/cpu_ops.c @@ -15,9 +15,7 @@ const struct cpu_operations *cpu_ops[NR_CPUS] __ro_after_init; extern const struct cpu_operations cpu_ops_sbi; -#ifdef CONFIG_RISCV_BOOT_SPINWAIT -extern const struct cpu_operations cpu_ops_spinwait; -#else +#ifndef CONFIG_RISCV_BOOT_SPINWAIT const struct cpu_operations cpu_ops_spinwait = { .name = "", .cpu_prepare = NULL, --- linux-5.19.0.orig/arch/riscv/kernel/cpu_ops_spinwait.c +++ linux-5.19.0/arch/riscv/kernel/cpu_ops_spinwait.c @@ -11,6 +11,8 @@ #include #include +#include "head.h" + const struct cpu_operations cpu_ops_spinwait; void *__cpu_spinwait_stack_pointer[NR_CPUS] __section(".data"); void *__cpu_spinwait_task_pointer[NR_CPUS] __section(".data"); @@ -18,7 +20,7 @@ static void cpu_update_secondary_bootdata(unsigned int cpuid, struct task_struct *tidle) { - int hartid = cpuid_to_hartid_map(cpuid); + unsigned long hartid = cpuid_to_hartid_map(cpuid); /* * The hartid must be less than NR_CPUS to avoid out-of-bound access @@ -27,7 +29,7 @@ * spinwait booting is not the recommended approach for any platforms * booting Linux in S-mode and can be disabled in the future. */ - if (hartid == INVALID_HARTID || hartid >= NR_CPUS) + if (hartid == INVALID_HARTID || hartid >= (unsigned long) NR_CPUS) return; /* Make sure tidle is updated */ --- linux-5.19.0.orig/arch/riscv/kernel/crash_save_regs.S +++ linux-5.19.0/arch/riscv/kernel/crash_save_regs.S @@ -44,7 +44,7 @@ REG_S t6, PT_T6(a0) /* x31 */ csrr t1, CSR_STATUS - csrr t2, CSR_EPC + auipc t2, 0x0 csrr t3, CSR_TVAL csrr t4, CSR_CAUSE --- linux-5.19.0.orig/arch/riscv/kernel/entry.S +++ linux-5.19.0/arch/riscv/kernel/entry.S @@ -263,12 +263,11 @@ #endif bnez s0, resume_kernel -resume_userspace: /* Interrupts must be disabled here so flags are checked atomically */ REG_L s0, TASK_TI_FLAGS(tp) /* current_thread_info->flags */ andi s1, s0, _TIF_WORK_MASK - bnez s1, work_pending - + bnez s1, resume_userspace_slow +resume_userspace: #ifdef CONFIG_CONTEXT_TRACKING call context_tracking_user_enter #endif @@ -368,19 +367,12 @@ j restore_all #endif -work_pending: +resume_userspace_slow: /* Enter slow path for supplementary processing */ - la ra, ret_from_exception - andi s1, s0, _TIF_NEED_RESCHED - bnez s1, work_resched -work_notifysig: - /* Handle pending signals and notify-resume requests */ - csrs CSR_STATUS, SR_IE /* Enable interrupts for do_notify_resume() */ move a0, sp /* pt_regs */ move a1, s0 /* current_thread_info->flags */ - tail do_notify_resume -work_resched: - tail schedule + call do_work_pending + j resume_userspace /* Slow paths for ptrace. */ handle_syscall_trace_enter: @@ -404,6 +396,19 @@ #ifdef CONFIG_VMAP_STACK handle_kernel_stack_overflow: + /* + * Takes the psuedo-spinlock for the shadow stack, in case multiple + * harts are concurrently overflowing their kernel stacks. We could + * store any value here, but since we're overflowing the kernel stack + * already we only have SP to use as a scratch register. So we just + * swap in the address of the spinlock, as that's definately non-zero. + * + * Pairs with a store_release in handle_bad_stack(). + */ +1: la sp, spin_shadow_stack + REG_AMOSWAP_AQ sp, sp, (sp) + bnez sp, 1b + la sp, shadow_stack addi sp, sp, SHADOW_OVERFLOW_STACK_SIZE --- linux-5.19.0.orig/arch/riscv/kernel/machine_kexec.c +++ linux-5.19.0/arch/riscv/kernel/machine_kexec.c @@ -15,6 +15,8 @@ #include /* For unreachable() */ #include /* For cpu_down() */ #include +#include +#include /* * kexec_image_info - Print received image details @@ -138,19 +140,70 @@ #endif } +/* Override the weak function in kernel/panic.c */ +void crash_smp_send_stop(void) +{ + static int cpus_stopped; + + /* + * This function can be called twice in panic path, but obviously + * we execute this only once. + */ + if (cpus_stopped) + return; + + smp_send_stop(); + cpus_stopped = 1; +} + +static void machine_kexec_mask_interrupts(void) +{ + unsigned int i; + struct irq_desc *desc; + + for_each_irq_desc(i, desc) { + struct irq_chip *chip; + int ret; + + chip = irq_desc_get_chip(desc); + if (!chip) + continue; + + /* + * First try to remove the active state. If this + * fails, try to EOI the interrupt. + */ + ret = irq_set_irqchip_state(i, IRQCHIP_STATE_ACTIVE, false); + + if (ret && irqd_irq_inprogress(&desc->irq_data) && + chip->irq_eoi) + chip->irq_eoi(&desc->irq_data); + + if (chip->irq_mask) + chip->irq_mask(&desc->irq_data); + + if (chip->irq_disable && !irqd_irq_disabled(&desc->irq_data)) + chip->irq_disable(&desc->irq_data); + } +} + /* * machine_crash_shutdown - Prepare to kexec after a kernel crash * * This function is called by crash_kexec just before machine_kexec - * below and its goal is similar to machine_shutdown, but in case of - * a kernel crash. Since we don't handle such cases yet, this function - * is empty. + * and its goal is to shutdown non-crashing cpus and save registers. */ void machine_crash_shutdown(struct pt_regs *regs) { + local_irq_disable(); + + /* shutdown non-crashing cpus */ + crash_smp_send_stop(); + crash_save_cpu(regs, smp_processor_id()); - machine_shutdown(); + machine_kexec_mask_interrupts(); + pr_info("Starting crashdump kernel...\n"); } @@ -171,7 +224,7 @@ struct kimage_arch *internal = &image->arch; unsigned long jump_addr = (unsigned long) image->start; unsigned long first_ind_entry = (unsigned long) &image->head; - unsigned long this_cpu_id = smp_processor_id(); + unsigned long this_cpu_id = __smp_processor_id(); unsigned long this_hart_id = cpuid_to_hartid_map(this_cpu_id); unsigned long fdt_addr = internal->fdt_addr; void *control_code_buffer = page_address(image->control_code_page); --- linux-5.19.0.orig/arch/riscv/kernel/probes/uprobes.c +++ linux-5.19.0/arch/riscv/kernel/probes/uprobes.c @@ -59,8 +59,6 @@ instruction_pointer_set(regs, utask->xol_vaddr); - regs->status &= ~SR_SPIE; - return 0; } @@ -72,8 +70,6 @@ instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); - regs->status |= SR_SPIE; - return 0; } @@ -111,8 +107,6 @@ * address. */ instruction_pointer_set(regs, utask->vaddr); - - regs->status &= ~SR_SPIE; } bool arch_uretprobe_is_alive(struct return_instance *ret, enum rp_check ctx, --- linux-5.19.0.orig/arch/riscv/kernel/process.c +++ linux-5.19.0/arch/riscv/kernel/process.c @@ -164,6 +164,8 @@ unsigned long tls = args->tls; struct pt_regs *childregs = task_pt_regs(p); + memset(&p->thread.s, 0, sizeof(p->thread.s)); + /* p->thread holds context to be restored by __switch_to() */ if (unlikely(args->fn)) { /* Kernel thread */ --- linux-5.19.0.orig/arch/riscv/kernel/setup.c +++ linux-5.19.0/arch/riscv/kernel/setup.c @@ -251,10 +251,10 @@ pr_info("Machine model: %s\n", name); dump_stack_set_arch_desc("%s (DT)", name); } - return; + } else { + pr_err("No DTB passed to the kernel\n"); } - pr_err("No DTB passed to the kernel\n"); #ifdef CONFIG_CMDLINE_FORCE strscpy(boot_command_line, CONFIG_CMDLINE, COMMAND_LINE_SIZE); pr_info("Forcing kernel command line to: %s\n", boot_command_line); @@ -282,6 +282,7 @@ else pr_err("No DTB found in kernel mappings\n"); #endif + early_init_fdt_scan_reserved_mem(); misc_mem_init(); init_resources(); @@ -319,10 +320,11 @@ void free_initmem(void) { - if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)) - set_kernel_memory(lm_alias(__init_begin), lm_alias(__init_end), - IS_ENABLED(CONFIG_64BIT) ? - set_memory_rw : set_memory_rw_nx); + if (IS_ENABLED(CONFIG_STRICT_KERNEL_RWX)) { + set_kernel_memory(lm_alias(__init_begin), lm_alias(__init_end), set_memory_rw_nx); + if (IS_ENABLED(CONFIG_64BIT)) + set_kernel_memory(__init_begin, __init_end, set_memory_nx); + } free_initmem_default(POISON_FREE_INITMEM); } --- linux-5.19.0.orig/arch/riscv/kernel/signal.c +++ linux-5.19.0/arch/riscv/kernel/signal.c @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -123,6 +124,8 @@ if (restore_altstack(&frame->uc.uc_stack)) goto badframe; + regs->cause = -1UL; + return regs->a0; badframe: @@ -310,19 +313,27 @@ } /* - * notification of userspace execution resumption - * - triggered by the _TIF_WORK_MASK flags + * Handle any pending work on the resume-to-userspace path, as indicated by + * _TIF_WORK_MASK. Entered from assembly with IRQs off. */ -asmlinkage __visible void do_notify_resume(struct pt_regs *regs, - unsigned long thread_info_flags) +asmlinkage __visible void do_work_pending(struct pt_regs *regs, + unsigned long thread_info_flags) { - if (thread_info_flags & _TIF_UPROBE) - uprobe_notify_resume(regs); - - /* Handle pending signal delivery */ - if (thread_info_flags & (_TIF_SIGPENDING | _TIF_NOTIFY_SIGNAL)) - do_signal(regs); - - if (thread_info_flags & _TIF_NOTIFY_RESUME) - resume_user_mode_work(regs); + do { + if (thread_info_flags & _TIF_NEED_RESCHED) { + schedule(); + } else { + local_irq_enable(); + if (thread_info_flags & _TIF_UPROBE) + uprobe_notify_resume(regs); + /* Handle pending signal delivery */ + if (thread_info_flags & (_TIF_SIGPENDING | + _TIF_NOTIFY_SIGNAL)) + do_signal(regs); + if (thread_info_flags & _TIF_NOTIFY_RESUME) + resume_user_mode_work(regs); + } + local_irq_disable(); + thread_info_flags = read_thread_flags(); + } while (thread_info_flags & _TIF_WORK_MASK); } --- linux-5.19.0.orig/arch/riscv/kernel/smpboot.c +++ linux-5.19.0/arch/riscv/kernel/smpboot.c @@ -49,6 +49,7 @@ unsigned int curr_cpuid; curr_cpuid = smp_processor_id(); + store_cpu_topology(curr_cpuid); numa_store_cpu_info(curr_cpuid); numa_add_cpu(curr_cpuid); @@ -161,9 +162,9 @@ mmgrab(mm); current->active_mm = mm; + store_cpu_topology(curr_cpuid); notify_cpu_starting(curr_cpuid); numa_add_cpu(curr_cpuid); - update_siblings_masks(curr_cpuid); set_cpu_online(curr_cpuid, 1); /* --- linux-5.19.0.orig/arch/riscv/kernel/traps.c +++ linux-5.19.0/arch/riscv/kernel/traps.c @@ -16,12 +16,14 @@ #include #include #include +#include #include #include +#include #include #include -#include +#include int show_unhandled_signals = 1; @@ -44,6 +46,9 @@ ret = notify_die(DIE_OOPS, str, regs, 0, regs->cause, SIGSEGV); + if (regs && kexec_should_crash(current)) + crash_kexec(regs); + bust_spinlocks(0); add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE); spin_unlock_irq(&die_lock); @@ -206,18 +211,36 @@ * shadow stack, handled_ kernel_ stack_ overflow(in kernel/entry.S) is used * to get per-cpu overflow stack(get_overflow_stack). */ -long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE/sizeof(long)]; +long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE/sizeof(long)] __aligned(16); asmlinkage unsigned long get_overflow_stack(void) { return (unsigned long)this_cpu_ptr(overflow_stack) + OVERFLOW_STACK_SIZE; } +/* + * A pseudo spinlock to protect the shadow stack from being used by multiple + * harts concurrently. This isn't a real spinlock because the lock side must + * be taken without a valid stack and only a single register, it's only taken + * while in the process of panicing anyway so the performance and error + * checking a proper spinlock gives us doesn't matter. + */ +unsigned long spin_shadow_stack; + asmlinkage void handle_bad_stack(struct pt_regs *regs) { unsigned long tsk_stk = (unsigned long)current->stack; unsigned long ovf_stk = (unsigned long)this_cpu_ptr(overflow_stack); + /* + * We're done with the shadow stack by this point, as we're on the + * overflow stack. Tell any other concurrent overflowing harts that + * they can proceed with panicing by releasing the pseudo-spinlock. + * + * This pairs with an amoswap.aq in handle_kernel_stack_overflow. + */ + smp_store_release(&spin_shadow_stack, 0); + console_verbose(); pr_emerg("Insufficient stack space to handle exception!\n"); --- linux-5.19.0.orig/arch/riscv/kernel/vdso.c +++ linux-5.19.0/arch/riscv/kernel/vdso.c @@ -60,6 +60,11 @@ struct vm_special_mapping *cm; }; +static struct __vdso_info vdso_info; +#ifdef CONFIG_COMPAT +static struct __vdso_info compat_vdso_info; +#endif + static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) { @@ -114,15 +119,18 @@ { struct mm_struct *mm = task->mm; struct vm_area_struct *vma; - struct __vdso_info *vdso_info = mm->context.vdso_info; mmap_read_lock(mm); for (vma = mm->mmap; vma; vma = vma->vm_next) { unsigned long size = vma->vm_end - vma->vm_start; - if (vma_is_special_mapping(vma, vdso_info->dm)) + if (vma_is_special_mapping(vma, vdso_info.dm)) zap_page_range(vma, vma->vm_start, size); +#ifdef CONFIG_COMPAT + if (vma_is_special_mapping(vma, compat_vdso_info.dm)) + zap_page_range(vma, vma->vm_start, size); +#endif } mmap_read_unlock(mm); @@ -264,7 +272,6 @@ vdso_base += VVAR_SIZE; mm->context.vdso = (void *)vdso_base; - mm->context.vdso_info = (void *)vdso_info; ret = _install_special_mapping(mm, vdso_base, vdso_text_len, --- linux-5.19.0.orig/arch/riscv/kernel/vdso/Makefile +++ linux-5.19.0/arch/riscv/kernel/vdso/Makefile @@ -17,6 +17,7 @@ obj-vdso = $(patsubst %, %.o, $(vdso-syms)) note.o ccflags-y := -fno-stack-protector +ccflags-y += -DDISABLE_BRANCH_PROFILING ifneq ($(c-gettimeofday-y),) CFLAGS_vgettimeofday.o += -fPIC -include $(c-gettimeofday-y) @@ -28,9 +29,12 @@ obj-y += vdso.o CPPFLAGS_vdso.lds += -P -C -U$(ARCH) +ifneq ($(filter vgettimeofday, $(vdso-syms)),) +CPPFLAGS_vdso.lds += -DHAS_VGETTIMEOFDAY +endif # Disable -pg to prevent insert call site -CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) -Os +CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) # Disable profiling and instrumentation for VDSO code GCOV_PROFILE := n --- linux-5.19.0.orig/arch/riscv/kernel/vdso/vdso.lds.S +++ linux-5.19.0/arch/riscv/kernel/vdso/vdso.lds.S @@ -68,9 +68,11 @@ LINUX_4.15 { global: __vdso_rt_sigreturn; +#ifdef HAS_VGETTIMEOFDAY __vdso_gettimeofday; __vdso_clock_gettime; __vdso_clock_getres; +#endif __vdso_getcpu; __vdso_flush_icache; local: *; --- linux-5.19.0.orig/arch/riscv/kvm/vcpu_sbi.c +++ linux-5.19.0/arch/riscv/kvm/vcpu_sbi.c @@ -32,23 +32,13 @@ }; } -#ifdef CONFIG_RISCV_SBI_V01 -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_v01; -#else +#ifndef CONFIG_RISCV_SBI_V01 static const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_v01 = { .extid_start = -1UL, .extid_end = -1UL, .handler = NULL, }; #endif -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_base; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_time; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_ipi; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_rfence; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_srst; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_hsm; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_experimental; -extern const struct kvm_vcpu_sbi_extension vcpu_sbi_ext_vendor; static const struct kvm_vcpu_sbi_extension *sbi_ext[] = { &vcpu_sbi_ext_v01, --- linux-5.19.0.orig/arch/riscv/lib/uaccess.S +++ linux-5.19.0/arch/riscv/lib/uaccess.S @@ -175,7 +175,7 @@ /* Exception fixup code */ 10: /* Disable access to user memory */ - csrs CSR_STATUS, t6 + csrc CSR_STATUS, t6 mv a0, t5 ret ENDPROC(__asm_copy_to_user) @@ -227,7 +227,7 @@ /* Exception fixup code */ 11: /* Disable access to user memory */ - csrs CSR_STATUS, t6 + csrc CSR_STATUS, t6 mv a0, a1 ret ENDPROC(__clear_user) --- linux-5.19.0.orig/arch/riscv/mm/fault.c +++ linux-5.19.0/arch/riscv/mm/fault.c @@ -184,7 +184,8 @@ } break; case EXC_LOAD_PAGE_FAULT: - if (!(vma->vm_flags & VM_READ)) { + /* Write implies read */ + if (!(vma->vm_flags & (VM_READ | VM_WRITE))) { return true; } break; --- linux-5.19.0.orig/arch/riscv/mm/init.c +++ linux-5.19.0/arch/riscv/mm/init.c @@ -135,6 +135,10 @@ (unsigned long)VMEMMAP_END); print_ml("vmalloc", (unsigned long)VMALLOC_START, (unsigned long)VMALLOC_END); +#ifdef CONFIG_64BIT + print_ml("modules", (unsigned long)MODULES_VADDR, + (unsigned long)MODULES_END); +#endif print_ml("lowmem", (unsigned long)PAGE_OFFSET, (unsigned long)high_memory); if (IS_ENABLED(CONFIG_64BIT)) { @@ -258,7 +262,6 @@ memblock_reserve(dtb_early_pa, fdt_totalsize(dtb_early_va)); } - early_init_fdt_scan_reserved_mem(); dma_contiguous_reserve(dma32_phys_limit); if (IS_ENABLED(CONFIG_64BIT)) hugetlb_cma_reserve(PUD_SHIFT - PAGE_SHIFT); @@ -771,6 +774,10 @@ disable_pgtable_l4(); } + /* UBUNTU: Force disable sv57 and fallback to sv48 */ + if (pgtable_l5_enabled) + disable_pgtable_l5(); + memset(early_pg_dir, 0, PAGE_SIZE); memset(early_p4d, 0, PAGE_SIZE); memset(early_pud, 0, PAGE_SIZE); --- linux-5.19.0.orig/arch/riscv/mm/kasan_init.c +++ linux-5.19.0/arch/riscv/mm/kasan_init.c @@ -113,6 +113,8 @@ base_pud = pt_ops.get_pud_virt(pfn_to_phys(_pgd_pfn(*pgd))); } else if (pgd_none(*pgd)) { base_pud = memblock_alloc(PTRS_PER_PUD * sizeof(pud_t), PAGE_SIZE); + memcpy(base_pud, (void *)kasan_early_shadow_pud, + sizeof(pud_t) * PTRS_PER_PUD); } else { base_pud = (pud_t *)pgd_page_vaddr(*pgd); if (base_pud == lm_alias(kasan_early_shadow_pud)) { @@ -173,8 +175,11 @@ base_p4d = pt_ops.get_p4d_virt(pfn_to_phys(_pgd_pfn(*pgd))); } else { base_p4d = (p4d_t *)pgd_page_vaddr(*pgd); - if (base_p4d == lm_alias(kasan_early_shadow_p4d)) + if (base_p4d == lm_alias(kasan_early_shadow_p4d)) { base_p4d = memblock_alloc(PTRS_PER_PUD * sizeof(p4d_t), PAGE_SIZE); + memcpy(base_p4d, (void *)kasan_early_shadow_p4d, + sizeof(p4d_t) * PTRS_PER_P4D); + } } p4dp = base_p4d + p4d_index(vaddr); --- linux-5.19.0.orig/arch/riscv/mm/pageattr.c +++ linux-5.19.0/arch/riscv/mm/pageattr.c @@ -118,10 +118,10 @@ if (!numpages) return 0; - mmap_read_lock(&init_mm); + mmap_write_lock(&init_mm); ret = walk_page_range_novma(&init_mm, start, end, &pageattr_ops, NULL, &masks); - mmap_read_unlock(&init_mm); + mmap_write_unlock(&init_mm); flush_tlb_kernel_range(start, end); --- linux-5.19.0.orig/arch/riscv/mm/physaddr.c +++ linux-5.19.0/arch/riscv/mm/physaddr.c @@ -22,7 +22,7 @@ phys_addr_t __phys_addr_symbol(unsigned long x) { unsigned long kernel_start = kernel_map.virt_addr; - unsigned long kernel_end = (unsigned long)_end; + unsigned long kernel_end = kernel_start + kernel_map.size; /* * Boundary checking aginst the kernel image mapping. --- linux-5.19.0.orig/arch/riscv/net/bpf_jit_comp64.c +++ linux-5.19.0/arch/riscv/net/bpf_jit_comp64.c @@ -136,6 +136,25 @@ val < ((1L << 31) - (1L << 11)); } +/* Emit fixed-length instructions for address */ +static int emit_addr(u8 rd, u64 addr, bool extra_pass, struct rv_jit_context *ctx) +{ + u64 ip = (u64)(ctx->insns + ctx->ninsns); + s64 off = addr - ip; + s64 upper = (off + (1 << 11)) >> 12; + s64 lower = off & 0xfff; + + if (extra_pass && !in_auipc_jalr_range(off)) { + pr_err("bpf-jit: target offset 0x%llx is out of range\n", off); + return -ERANGE; + } + + emit(rv_auipc(rd, upper), ctx); + emit(rv_addi(rd, rd, lower), ctx); + return 0; +} + +/* Emit variable-length instructions for 32-bit and 64-bit imm */ static void emit_imm(u8 rd, s64 val, struct rv_jit_context *ctx) { /* Note that the immediate from the add is sign-extended, @@ -1050,7 +1069,15 @@ u64 imm64; imm64 = (u64)insn1.imm << 32 | (u32)imm; - emit_imm(rd, imm64, ctx); + if (bpf_pseudo_func(insn)) { + /* fixed-length insns for extra jit pass */ + ret = emit_addr(rd, imm64, extra_pass, ctx); + if (ret) + return ret; + } else { + emit_imm(rd, imm64, ctx); + } + return 1; } --- linux-5.19.0.orig/arch/s390/Kconfig +++ linux-5.19.0/arch/s390/Kconfig @@ -583,8 +583,7 @@ endchoice config RELOCATABLE - bool "Build a relocatable kernel" - default y + def_bool y help This builds a kernel image that retains relocation information so it can be loaded at an arbitrary address. @@ -593,10 +592,11 @@ bootup process. The relocations make the kernel image about 15% larger (compressed 10%), but are discarded at runtime. + Note: this option exists only for documentation purposes, please do + not remove it. config RANDOMIZE_BASE bool "Randomize the address of the kernel image (KASLR)" - depends on RELOCATABLE default y help In support of Kernel Address Space Layout Randomization (KASLR), --- linux-5.19.0.orig/arch/s390/Makefile +++ linux-5.19.0/arch/s390/Makefile @@ -14,10 +14,8 @@ KBUILD_CFLAGS_MODULE += -fPIC KBUILD_AFLAGS += -m64 KBUILD_CFLAGS += -m64 -ifeq ($(CONFIG_RELOCATABLE),y) KBUILD_CFLAGS += -fPIE LDFLAGS_vmlinux := -pie -endif aflags_dwarf := -Wa,-gdwarf-2 KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__ ifndef CONFIG_AS_IS_LLVM --- linux-5.19.0.orig/arch/s390/boot/Makefile +++ linux-5.19.0/arch/s390/boot/Makefile @@ -37,9 +37,8 @@ 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 ipl_data.o +obj-y += version.o pgm_check_info.o ctype.o ipl_data.o machine_kexec_reloc.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 obj-y += $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) info.o obj-$(CONFIG_KERNEL_ZSTD) += clz_ctz.o --- linux-5.19.0.orig/arch/s390/boot/startup.c +++ linux-5.19.0/arch/s390/boot/startup.c @@ -283,8 +283,7 @@ clear_bss_section(); copy_bootdata(); - if (IS_ENABLED(CONFIG_RELOCATABLE)) - handle_relocs(__kaslr_offset); + handle_relocs(__kaslr_offset); if (__kaslr_offset) { /* --- linux-5.19.0.orig/arch/s390/boot/uv.c +++ linux-5.19.0/arch/s390/boot/uv.c @@ -41,6 +41,10 @@ uv_info.max_num_sec_conf = uvcb.max_num_sec_conf; uv_info.max_guest_cpu_id = uvcb.max_guest_cpu_id; uv_info.uv_feature_indications = uvcb.uv_feature_indications; + uv_info.supp_se_hdr_ver = uvcb.supp_se_hdr_versions; + uv_info.supp_se_hdr_pcf = uvcb.supp_se_hdr_pcf; + uv_info.conf_dump_storage_state_len = uvcb.conf_dump_storage_state_len; + uv_info.conf_dump_finalize_len = uvcb.conf_dump_finalize_len; } #ifdef CONFIG_PROTECTED_VIRTUALIZATION_GUEST --- linux-5.19.0.orig/arch/s390/boot/vmlinux.lds.S +++ linux-5.19.0/arch/s390/boot/vmlinux.lds.S @@ -102,8 +102,17 @@ _compressed_start = .; *(.vmlinux.bin.compressed) _compressed_end = .; - FILL(0xff); - . = ALIGN(4096); + } + +#define SB_TRAILER_SIZE 32 + /* Trailer needed for Secure Boot */ + . += SB_TRAILER_SIZE; /* make sure .sb.trailer does not overwrite the previous section */ + . = ALIGN(4096) - SB_TRAILER_SIZE; + .sb.trailer : { + QUAD(0) + QUAD(0) + QUAD(0) + QUAD(0x000000207a49504c) } _end = .; --- linux-5.19.0.orig/arch/s390/hypfs/hypfs_diag.c +++ linux-5.19.0/arch/s390/hypfs/hypfs_diag.c @@ -437,7 +437,7 @@ int rc; if (diag204_probe()) { - pr_err("The hardware system does not support hypfs\n"); + pr_info("The hardware system does not support hypfs\n"); return -ENODATA; } --- linux-5.19.0.orig/arch/s390/hypfs/inode.c +++ linux-5.19.0/arch/s390/hypfs/inode.c @@ -496,9 +496,9 @@ hypfs_vm_exit(); fail_hypfs_diag_exit: hypfs_diag_exit(); + pr_err("Initialization of hypfs failed with rc=%i\n", rc); fail_dbfs_exit: hypfs_dbfs_exit(); - pr_err("Initialization of hypfs failed with rc=%i\n", rc); return rc; } device_initcall(hypfs_init) --- linux-5.19.0.orig/arch/s390/include/asm/airq.h +++ linux-5.19.0/arch/s390/include/asm/airq.h @@ -12,10 +12,11 @@ #include #include +#include struct airq_struct { struct hlist_node list; /* Handler queueing. */ - void (*handler)(struct airq_struct *airq, bool floating); + void (*handler)(struct airq_struct *airq, struct tpi_info *tpi_info); u8 *lsi_ptr; /* Local-Summary-Indicator pointer */ u8 lsi_mask; /* Local-Summary-Indicator mask */ u8 isc; /* Interrupt-subclass */ @@ -46,8 +47,10 @@ #define AIRQ_IV_PTR 4 /* Allocate the ptr array */ #define AIRQ_IV_DATA 8 /* Allocate the data array */ #define AIRQ_IV_CACHELINE 16 /* Cacheline alignment for the vector */ +#define AIRQ_IV_GUESTVEC 32 /* Vector is a pinned guest page */ -struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags); +struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags, + unsigned long *vec); void airq_iv_release(struct airq_iv *iv); unsigned long airq_iv_alloc(struct airq_iv *iv, unsigned long num); void airq_iv_free(struct airq_iv *iv, unsigned long bit, unsigned long num); --- linux-5.19.0.orig/arch/s390/include/asm/futex.h +++ linux-5.19.0/arch/s390/include/asm/futex.h @@ -17,7 +17,8 @@ "3: jl 1b\n" \ " lhi %0,0\n" \ "4: sacf 768\n" \ - EX_TABLE(0b,4b) EX_TABLE(2b,4b) EX_TABLE(3b,4b) \ + EX_TABLE(0b,4b) EX_TABLE(1b,4b) \ + EX_TABLE(2b,4b) EX_TABLE(3b,4b) \ : "=d" (ret), "=&d" (oldval), "=&d" (newval), \ "=m" (*uaddr) \ : "0" (-EFAULT), "d" (oparg), "a" (uaddr), \ --- linux-5.19.0.orig/arch/s390/include/asm/gmap.h +++ linux-5.19.0/arch/s390/include/asm/gmap.h @@ -148,4 +148,6 @@ unsigned long gaddr, unsigned long vmaddr); int gmap_mark_unmergeable(void); void s390_reset_acc(struct mm_struct *mm); +void s390_unlist_old_asce(struct gmap *gmap); +int s390_replace_asce(struct gmap *gmap); #endif /* _ASM_S390_GMAP_H */ --- linux-5.19.0.orig/arch/s390/include/asm/hugetlb.h +++ linux-5.19.0/arch/s390/include/asm/hugetlb.h @@ -28,9 +28,11 @@ static inline int prepare_hugepage_range(struct file *file, unsigned long addr, unsigned long len) { - if (len & ~HPAGE_MASK) + struct hstate *h = hstate_file(file); + + if (len & ~huge_page_mask(h)) return -EINVAL; - if (addr & ~HPAGE_MASK) + if (addr & ~huge_page_mask(h)) return -EINVAL; return 0; } --- linux-5.19.0.orig/arch/s390/include/asm/ipl.h +++ linux-5.19.0/arch/s390/include/asm/ipl.h @@ -128,6 +128,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-5.19.0.orig/arch/s390/include/asm/kexec.h +++ linux-5.19.0/arch/s390/include/asm/kexec.h @@ -92,5 +92,8 @@ const Elf_Shdr *relsec, const Elf_Shdr *symtab); #define arch_kexec_apply_relocations_add arch_kexec_apply_relocations_add + +int arch_kimage_file_post_load_cleanup(struct kimage *image); +#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup #endif #endif /*_S390_KEXEC_H */ --- linux-5.19.0.orig/arch/s390/include/asm/kvm_host.h +++ linux-5.19.0/arch/s390/include/asm/kvm_host.h @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -254,7 +255,10 @@ #define ECB2_IEP 0x20 #define ECB2_PFMFI 0x08 #define ECB2_ESCA 0x04 +#define ECB2_ZPCI_LSI 0x02 __u8 ecb2; /* 0x0062 */ +#define ECB3_AISI 0x20 +#define ECB3_AISII 0x10 #define ECB3_DEA 0x08 #define ECB3_AES 0x04 #define ECB3_RI 0x01 @@ -759,6 +763,7 @@ u64 inject_pfault_done; u64 inject_service_signal; u64 inject_virtio; + u64 aen_forward; }; struct kvm_arch_memory_slot { @@ -923,6 +928,7 @@ u64 guest_len; unsigned long stor_base; void *stor_var; + bool dumping; }; struct kvm_arch{ @@ -939,6 +945,7 @@ int use_cmma; int use_pfmfi; int use_skf; + int use_zpci_interp; int user_cpu_state_ctrl; int user_sigp; int user_stsi; @@ -962,6 +969,8 @@ DECLARE_BITMAP(idle_mask, KVM_MAX_VCPUS); struct kvm_s390_gisa_interrupt gisa_int; struct kvm_s390_pv pv; + struct list_head kzdev_list; + spinlock_t kzdev_list_lock; }; #define KVM_HVA_ERR_BAD (-1UL) @@ -1012,4 +1021,14 @@ static inline void kvm_arch_vcpu_blocking(struct kvm_vcpu *vcpu) {} static inline void kvm_arch_vcpu_unblocking(struct kvm_vcpu *vcpu) {} +#define __KVM_HAVE_ARCH_VM_FREE +void kvm_arch_free_vm(struct kvm *kvm); + +struct zpci_kvm_hook { + int (*kvm_register)(void *opaque, struct kvm *kvm); + void (*kvm_unregister)(void *opaque); +}; + +extern struct zpci_kvm_hook zpci_kvm_hook; + #endif --- linux-5.19.0.orig/arch/s390/include/asm/pci.h +++ linux-5.19.0/arch/s390/include/asm/pci.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #define PCIBIOS_MIN_IO 0x1000 @@ -97,6 +98,7 @@ }; struct s390_domain; +struct kvm_zdev; #define ZPCI_FUNCTIONS_PER_BUS 256 struct zpci_bus { @@ -123,11 +125,14 @@ enum zpci_state state; u32 fid; /* function ID, used by sclp */ u32 fh; /* function handle, used by insn's */ + u32 gisa; /* GISA designation for passthrough */ u16 vfn; /* virtual function number */ u16 pchid; /* physical channel ID */ + u16 maxstbl; /* Maximum store block size */ u8 pfgid; /* function group ID */ u8 pft; /* pci function type */ u8 port; + u8 dtsm; /* Supported DT mask */ u8 rid_available : 1; u8 has_hp_slot : 1; u8 has_resources : 1; @@ -186,7 +191,10 @@ struct dentry *debugfs_dev; + /* IOMMU and passthrough */ struct s390_domain *s390_domain; /* s390 IOMMU domain data */ + struct kvm_zdev *kzdev; + struct mutex kzdev_lock; }; static inline bool zdev_enabled(struct zpci_dev *zdev) @@ -198,6 +206,9 @@ extern unsigned int s390_pci_force_floating __initdata; extern unsigned int s390_pci_no_rid; +extern union zpci_sic_iib *zpci_aipb; +extern struct airq_iv *zpci_aif_sbv; + /* ----------------------------------------------------------------------------- Prototypes ----------------------------------------------------------------------------- */ --- linux-5.19.0.orig/arch/s390/include/asm/pci_clp.h +++ linux-5.19.0/arch/s390/include/asm/pci_clp.h @@ -153,9 +153,11 @@ u8 : 6; u8 frame : 1; u8 refresh : 1; /* TLB refresh mode */ - u16 reserved2; + u16 : 3; + u16 maxstbl : 13; /* Maximum store block size */ u16 mui; - u16 : 16; + u8 dtsm; /* Supported DT mask */ + u8 reserved3; u16 maxfaal; u16 : 4; u16 dnoi : 12; @@ -173,7 +175,8 @@ u16 reserved2; u8 oc; /* operation controls */ u8 ndas; /* number of dma spaces */ - u64 reserved3; + u32 reserved3; + u32 gisa; /* GISA designation */ } __packed; /* Set PCI function response */ --- linux-5.19.0.orig/arch/s390/include/asm/pci_insn.h +++ linux-5.19.0/arch/s390/include/asm/pci_insn.h @@ -98,6 +98,15 @@ u32 gd; } __packed __aligned(8); +/* Set Interruption Controls Operation Controls */ +#define SIC_IRQ_MODE_ALL 0 +#define SIC_IRQ_MODE_SINGLE 1 +#define SIC_SET_AENI_CONTROLS 2 +#define SIC_IRQ_MODE_DIRECT 4 +#define SIC_IRQ_MODE_D_ALL 16 +#define SIC_IRQ_MODE_D_SINGLE 17 +#define SIC_IRQ_MODE_SET_CPU 18 + /* directed interruption information block */ struct zpci_diib { u32 : 1; @@ -119,9 +128,20 @@ u64 : 64; } __packed __aligned(8); +/* adapter interruption parameters block */ +struct zpci_aipb { + u64 faisb; + u64 gait; + u16 : 13; + u16 afi : 3; + u32 : 32; + u16 faal; +} __packed __aligned(8); + union zpci_sic_iib { struct zpci_diib diib; struct zpci_cdiib cdiib; + struct zpci_aipb aipb; }; DECLARE_STATIC_KEY_FALSE(have_mio); @@ -134,13 +154,6 @@ int zpci_store(const volatile void __iomem *addr, u64 data, unsigned long len); int __zpci_store_block(const u64 *data, u64 req, u64 offset); void zpci_barrier(void); -int __zpci_set_irq_ctrl(u16 ctl, u8 isc, union zpci_sic_iib *iib); - -static inline int zpci_set_irq_ctrl(u16 ctl, u8 isc) -{ - union zpci_sic_iib iib = {{0}}; - - return __zpci_set_irq_ctrl(ctl, isc, &iib); -} +int zpci_set_irq_ctrl(u16 ctl, u8 isc, union zpci_sic_iib *iib); #endif --- linux-5.19.0.orig/arch/s390/include/asm/processor.h +++ linux-5.19.0/arch/s390/include/asm/processor.h @@ -202,7 +202,16 @@ /* Has task runtime instrumentation enabled ? */ #define is_ri_task(tsk) (!!(tsk)->thread.ri_cb) -register unsigned long current_stack_pointer asm("r15"); +/* avoid using global register due to gcc bug in versions < 8.4 */ +#define current_stack_pointer (__current_stack_pointer()) + +static __always_inline unsigned long __current_stack_pointer(void) +{ + unsigned long sp; + + asm volatile("lgr %0,15" : "=d" (sp)); + return sp; +} static __always_inline unsigned short stap(void) { --- linux-5.19.0.orig/arch/s390/include/asm/sclp.h +++ linux-5.19.0/arch/s390/include/asm/sclp.h @@ -88,6 +88,10 @@ unsigned char has_sipl : 1; unsigned char has_dirq : 1; unsigned char has_iplcc : 1; + unsigned char has_zpci_lsi : 1; + unsigned char has_aisii : 1; + unsigned char has_aeni : 1; + unsigned char has_aisi : 1; unsigned int ibc; unsigned int mtid; unsigned int mtid_cp; --- linux-5.19.0.orig/arch/s390/include/asm/tpi.h +++ linux-5.19.0/arch/s390/include/asm/tpi.h @@ -19,6 +19,19 @@ u32 :12; } __packed __aligned(4); +/* I/O-Interruption Code as stored by TPI for an Adapter I/O */ +struct tpi_adapter_info { + u32 aism:8; + u32 :22; + u32 error:1; + u32 forward:1; + u32 reserved; + u32 adapter_IO:1; + u32 directed_irq:1; + u32 isc:3; + u32 :27; +} __packed __aligned(4); + #endif /* __ASSEMBLY__ */ #endif /* _ASM_S390_TPI_H */ --- linux-5.19.0.orig/arch/s390/include/asm/unwind.h +++ linux-5.19.0/arch/s390/include/asm/unwind.h @@ -47,7 +47,7 @@ static inline unsigned long unwind_recover_ret_addr(struct unwind_state *state, unsigned long ip) { - ip = ftrace_graph_ret_addr(state->task, &state->graph_idx, ip, NULL); + ip = ftrace_graph_ret_addr(state->task, &state->graph_idx, ip, (void *)state->sp); if (is_kretprobe_trampoline(ip)) ip = kretprobe_find_ret_addr(state->task, (void *)state->sp, &state->kr_cur); return ip; --- linux-5.19.0.orig/arch/s390/include/asm/uv.h +++ linux-5.19.0/arch/s390/include/asm/uv.h @@ -50,6 +50,10 @@ #define UVC_CMD_SET_UNSHARE_ALL 0x0340 #define UVC_CMD_PIN_PAGE_SHARED 0x0341 #define UVC_CMD_UNPIN_PAGE_SHARED 0x0342 +#define UVC_CMD_DUMP_INIT 0x0400 +#define UVC_CMD_DUMP_CONF_STOR_STATE 0x0401 +#define UVC_CMD_DUMP_CPU 0x0402 +#define UVC_CMD_DUMP_COMPLETE 0x0403 #define UVC_CMD_SET_SHARED_ACCESS 0x1000 #define UVC_CMD_REMOVE_SHARED_ACCESS 0x1001 #define UVC_CMD_RETR_ATTEST 0x1020 @@ -77,6 +81,10 @@ BIT_UVC_CMD_UNSHARE_ALL = 20, BIT_UVC_CMD_PIN_PAGE_SHARED = 21, BIT_UVC_CMD_UNPIN_PAGE_SHARED = 22, + BIT_UVC_CMD_DUMP_INIT = 24, + BIT_UVC_CMD_DUMP_CONFIG_STOR_STATE = 25, + BIT_UVC_CMD_DUMP_CPU = 26, + BIT_UVC_CMD_DUMP_COMPLETE = 27, BIT_UVC_CMD_RETR_ATTEST = 28, }; @@ -110,7 +118,13 @@ u8 reserved88[158 - 136]; /* 0x0088 */ u16 max_guest_cpu_id; /* 0x009e */ u64 uv_feature_indications; /* 0x00a0 */ - u8 reserveda8[200 - 168]; /* 0x00a8 */ + u64 reserveda8; /* 0x00a8 */ + u64 supp_se_hdr_versions; /* 0x00b0 */ + u64 supp_se_hdr_pcf; /* 0x00b8 */ + u64 reservedc0; /* 0x00c0 */ + u64 conf_dump_storage_state_len; /* 0x00c8 */ + u64 conf_dump_finalize_len; /* 0x00d0 */ + u8 reservedd8[256 - 216]; /* 0x00d8 */ } __packed __aligned(8); /* Initialize Ultravisor */ @@ -240,6 +254,31 @@ u64 reserved168[4]; /* 0x0168 */ } __packed __aligned(8); +struct uv_cb_dump_cpu { + struct uv_cb_header header; + u64 reserved08[2]; + u64 cpu_handle; + u64 dump_area_origin; + u64 reserved28[5]; +} __packed __aligned(8); + +struct uv_cb_dump_stor_state { + struct uv_cb_header header; + u64 reserved08[2]; + u64 config_handle; + u64 dump_area_origin; + u64 gaddr; + u64 reserved28[4]; +} __packed __aligned(8); + +struct uv_cb_dump_complete { + struct uv_cb_header header; + u64 reserved08[2]; + u64 config_handle; + u64 dump_area_origin; + u64 reserved30[5]; +} __packed __aligned(8); + static inline int __uv_call(unsigned long r1, unsigned long r2) { int cc; @@ -307,6 +346,10 @@ unsigned int max_num_sec_conf; unsigned short max_guest_cpu_id; unsigned long uv_feature_indications; + unsigned long supp_se_hdr_ver; + unsigned long supp_se_hdr_pcf; + unsigned long conf_dump_storage_state_len; + unsigned long conf_dump_finalize_len; }; extern struct uv_info uv_info; --- linux-5.19.0.orig/arch/s390/kernel/crash_dump.c +++ linux-5.19.0/arch/s390/kernel/crash_dump.c @@ -45,7 +45,7 @@ u64 fprs[16]; u32 fpc; u32 prefix; - u64 todpreg; + u32 todpreg; u64 timer; u64 todcmp; u64 vxrs_low[16]; @@ -199,7 +199,7 @@ } else { len = count; } - rc = copy_to_user_real(dst, src, count); + rc = copy_to_user_real(dst, src, len); if (rc) return rc; } --- linux-5.19.0.orig/arch/s390/kernel/ipl.c +++ linux-5.19.0/arch/s390/kernel/ipl.c @@ -2216,3 +2216,8 @@ } #endif + +bool ipl_get_secureboot(void) +{ + return !!ipl_secure_flag; +} --- linux-5.19.0.orig/arch/s390/kernel/machine_kexec_file.c +++ linux-5.19.0/arch/s390/kernel/machine_kexec_file.c @@ -31,6 +31,7 @@ const unsigned long marker_len = sizeof(MODULE_SIG_STRING) - 1; struct module_signature *ms; unsigned long sig_len; + int ret; /* Skip signature verification when not secure IPLed. */ if (!ipl_secure_flag) @@ -65,11 +66,18 @@ return -EBADMSG; } - return verify_pkcs7_signature(kernel, kernel_len, - kernel + kernel_len, sig_len, - VERIFY_USE_PLATFORM_KEYRING, - VERIFYING_MODULE_SIGNATURE, - NULL, NULL); + ret = verify_pkcs7_signature(kernel, kernel_len, + kernel + kernel_len, sig_len, + VERIFY_USE_SECONDARY_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); + if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) + ret = verify_pkcs7_signature(kernel, kernel_len, + kernel + kernel_len, sig_len, + VERIFY_USE_PLATFORM_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); + return ret; } #endif /* CONFIG_KEXEC_SIG */ --- linux-5.19.0.orig/arch/s390/kernel/nmi.c +++ linux-5.19.0/arch/s390/kernel/nmi.c @@ -63,7 +63,7 @@ * structure. The structure is required for machine check happening * early in the boot process. */ -static struct mcesa boot_mcesa __initdata __aligned(MCESA_MAX_SIZE); +static struct mcesa boot_mcesa __aligned(MCESA_MAX_SIZE); void __init nmi_alloc_mcesa_early(u64 *mcesad) { --- linux-5.19.0.orig/arch/s390/kernel/process.c +++ linux-5.19.0/arch/s390/kernel/process.c @@ -91,6 +91,18 @@ memcpy(dst, src, arch_task_struct_size); dst->thread.fpu.regs = dst->thread.fpu.fprs; + + /* + * Don't transfer over the runtime instrumentation or the guarded + * storage control block pointers. These fields are cleared here instead + * of in copy_thread() to avoid premature freeing of associated memory + * on fork() failure. Wait to clear the RI flag because ->stack still + * refers to the source thread. + */ + dst->thread.ri_cb = NULL; + dst->thread.gs_cb = NULL; + dst->thread.gs_bc_cb = NULL; + return 0; } @@ -150,13 +162,11 @@ frame->childregs.flags = 0; if (new_stackp) frame->childregs.gprs[15] = new_stackp; - - /* Don't copy runtime instrumentation info */ - p->thread.ri_cb = NULL; + /* + * Clear the runtime instrumentation flag after the above childregs + * copy. The CB pointer was already cleared in arch_dup_task_struct(). + */ frame->childregs.psw.mask &= ~PSW_MASK_RI; - /* Don't copy guarded storage control block */ - p->thread.gs_cb = NULL; - p->thread.gs_bc_cb = NULL; /* Set a new TLS ? */ if (clone_flags & CLONE_SETTLS) { --- linux-5.19.0.orig/arch/s390/kernel/setup.c +++ linux-5.19.0/arch/s390/kernel/setup.c @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -486,6 +487,7 @@ put_abs_lowcore(restart_data, lc->restart_data); put_abs_lowcore(restart_source, lc->restart_source); put_abs_lowcore(restart_psw, lc->restart_psw); + put_abs_lowcore(mcesad, lc->mcesad); lc->spinlock_lockval = arch_spin_lockval(0); lc->spinlock_index = 0; @@ -970,6 +972,9 @@ log_component_list(); + if (ipl_get_secureboot()) + security_lock_kernel_down("Secure IPL mode", LOCKDOWN_INTEGRITY_MAX); + /* 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; --- linux-5.19.0.orig/arch/s390/kernel/uv.c +++ linux-5.19.0/arch/s390/kernel/uv.c @@ -392,6 +392,54 @@ static struct kobj_attribute uv_query_facilities_attr = __ATTR(facilities, 0444, uv_query_facilities, NULL); +static ssize_t uv_query_supp_se_hdr_ver(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%lx\n", uv_info.supp_se_hdr_ver); +} + +static struct kobj_attribute uv_query_supp_se_hdr_ver_attr = + __ATTR(supp_se_hdr_ver, 0444, uv_query_supp_se_hdr_ver, NULL); + +static ssize_t uv_query_supp_se_hdr_pcf(struct kobject *kobj, + struct kobj_attribute *attr, char *buf) +{ + return sysfs_emit(buf, "%lx\n", uv_info.supp_se_hdr_pcf); +} + +static struct kobj_attribute uv_query_supp_se_hdr_pcf_attr = + __ATTR(supp_se_hdr_pcf, 0444, uv_query_supp_se_hdr_pcf, NULL); + +static ssize_t uv_query_dump_cpu_len(struct kobject *kobj, + struct kobj_attribute *attr, char *page) +{ + return scnprintf(page, PAGE_SIZE, "%lx\n", + uv_info.guest_cpu_stor_len); +} + +static struct kobj_attribute uv_query_dump_cpu_len_attr = + __ATTR(uv_query_dump_cpu_len, 0444, uv_query_dump_cpu_len, NULL); + +static ssize_t uv_query_dump_storage_state_len(struct kobject *kobj, + struct kobj_attribute *attr, char *page) +{ + return scnprintf(page, PAGE_SIZE, "%lx\n", + uv_info.conf_dump_storage_state_len); +} + +static struct kobj_attribute uv_query_dump_storage_state_len_attr = + __ATTR(dump_storage_state_len, 0444, uv_query_dump_storage_state_len, NULL); + +static ssize_t uv_query_dump_finalize_len(struct kobject *kobj, + struct kobj_attribute *attr, char *page) +{ + return scnprintf(page, PAGE_SIZE, "%lx\n", + uv_info.conf_dump_finalize_len); +} + +static struct kobj_attribute uv_query_dump_finalize_len_attr = + __ATTR(dump_finalize_len, 0444, uv_query_dump_finalize_len, NULL); + static ssize_t uv_query_feature_indications(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { @@ -437,6 +485,11 @@ &uv_query_max_guest_cpus_attr.attr, &uv_query_max_guest_vms_attr.attr, &uv_query_max_guest_addr_attr.attr, + &uv_query_supp_se_hdr_ver_attr.attr, + &uv_query_supp_se_hdr_pcf_attr.attr, + &uv_query_dump_storage_state_len_attr.attr, + &uv_query_dump_finalize_len_attr.attr, + &uv_query_dump_cpu_len_attr.attr, NULL, }; --- linux-5.19.0.orig/arch/s390/kernel/vmlinux.lds.S +++ linux-5.19.0/arch/s390/kernel/vmlinux.lds.S @@ -131,6 +131,7 @@ /* * Table with the patch locations to undo expolines */ + . = ALIGN(4); .nospec_call_table : { __nospec_call_start = . ; *(.s390_indirect*) --- linux-5.19.0.orig/arch/s390/kvm/Makefile +++ linux-5.19.0/arch/s390/kvm/Makefile @@ -10,4 +10,5 @@ kvm-y += kvm-s390.o intercept.o interrupt.o priv.o sigp.o kvm-y += diag.o gaccess.o guestdbg.o vsie.o pv.o +kvm-$(CONFIG_VFIO_PCI_ZDEV_KVM) += pci.o obj-$(CONFIG_KVM) += kvm.o --- linux-5.19.0.orig/arch/s390/kvm/gaccess.c +++ linux-5.19.0/arch/s390/kvm/gaccess.c @@ -489,6 +489,8 @@ PROT_TYPE_ALC = 2, PROT_TYPE_DAT = 3, PROT_TYPE_IEP = 4, + /* Dummy value for passing an initialized value when code != PGM_PROTECTION */ + PROT_NONE, }; static int trans_exc_ending(struct kvm_vcpu *vcpu, int code, unsigned long gva, u8 ar, @@ -504,6 +506,10 @@ switch (code) { case PGM_PROTECTION: switch (prot) { + case PROT_NONE: + /* We should never get here, acts like termination */ + WARN_ON_ONCE(1); + break; case PROT_TYPE_IEP: tec->b61 = 1; fallthrough; @@ -968,8 +974,10 @@ return rc; } else { gpa = kvm_s390_real_to_abs(vcpu, ga); - if (kvm_is_error_gpa(vcpu->kvm, gpa)) + if (kvm_is_error_gpa(vcpu->kvm, gpa)) { rc = PGM_ADDRESSING; + prot = PROT_NONE; + } } if (rc) return trans_exc(vcpu, rc, ga, ar, mode, prot); @@ -1112,8 +1120,6 @@ if (rc == PGM_PROTECTION && try_storage_prot_override) rc = access_guest_page_with_key(vcpu->kvm, mode, gpas[idx], data, fragment_len, PAGE_SPO_ACC); - if (rc == PGM_PROTECTION) - prot = PROT_TYPE_KEYC; if (rc) break; len -= fragment_len; @@ -1123,6 +1129,10 @@ if (rc > 0) { bool terminate = (mode == GACC_STORE) && (idx > 0); + if (rc == PGM_PROTECTION) + prot = PROT_TYPE_KEYC; + else + prot = PROT_NONE; rc = trans_exc_ending(vcpu, rc, ga, ar, mode, prot, terminate); } out_unlock: --- linux-5.19.0.orig/arch/s390/kvm/intercept.c +++ linux-5.19.0/arch/s390/kvm/intercept.c @@ -528,12 +528,27 @@ static int handle_pv_notification(struct kvm_vcpu *vcpu) { + int ret; + 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); + if (vcpu->arch.sie_block->ipa >> 8 == 0xae) { + /* + * Besides external call, other SIGP orders also cause a + * 108 (pv notify) intercept. In contrast to external call, + * these orders need to be emulated and hence the appropriate + * place to handle them is in handle_instruction(). + * So first try kvm_s390_handle_sigp_pei() and if that isn't + * successful, go on with handle_instruction(). + */ + ret = kvm_s390_handle_sigp_pei(vcpu); + if (!ret) + return ret; + } return handle_instruction(vcpu); } --- linux-5.19.0.orig/arch/s390/kvm/interrupt.c +++ linux-5.19.0/arch/s390/kvm/interrupt.c @@ -28,9 +28,11 @@ #include #include #include +#include #include "kvm-s390.h" #include "gaccess.h" #include "trace-s390.h" +#include "pci.h" #define PFAULT_INIT 0x0600 #define PFAULT_DONE 0x0680 @@ -3311,10 +3313,87 @@ } EXPORT_SYMBOL_GPL(kvm_s390_gisc_unregister); -static void gib_alert_irq_handler(struct airq_struct *airq, bool floating) +static void aen_host_forward(unsigned long si) { + struct kvm_s390_gisa_interrupt *gi; + struct zpci_gaite *gaite; + struct kvm *kvm; + + gaite = (struct zpci_gaite *)aift->gait + + (si * sizeof(struct zpci_gaite)); + if (gaite->count == 0) + return; + if (gaite->aisb != 0) + set_bit_inv(gaite->aisbo, (unsigned long *)gaite->aisb); + + kvm = kvm_s390_pci_si_to_kvm(aift, si); + if (!kvm) + return; + gi = &kvm->arch.gisa_int; + + if (!(gi->origin->g1.simm & AIS_MODE_MASK(gaite->gisc)) || + !(gi->origin->g1.nimm & AIS_MODE_MASK(gaite->gisc))) { + gisa_set_ipm_gisc(gi->origin, gaite->gisc); + if (hrtimer_active(&gi->timer)) + hrtimer_cancel(&gi->timer); + hrtimer_start(&gi->timer, 0, HRTIMER_MODE_REL); + kvm->stat.aen_forward++; + } +} + +static void aen_process_gait(u8 isc) +{ + bool found = false, first = true; + union zpci_sic_iib iib = {{0}}; + unsigned long si, flags; + + spin_lock_irqsave(&aift->gait_lock, flags); + + if (!aift->gait) { + spin_unlock_irqrestore(&aift->gait_lock, flags); + return; + } + + for (si = 0;;) { + /* Scan adapter summary indicator bit vector */ + si = airq_iv_scan(aift->sbv, si, airq_iv_end(aift->sbv)); + if (si == -1UL) { + if (first || found) { + /* Re-enable interrupts. */ + zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, isc, + &iib); + first = found = false; + } else { + /* Interrupts on and all bits processed */ + break; + } + found = false; + si = 0; + /* Scan again after re-enabling interrupts */ + continue; + } + found = true; + aen_host_forward(si); + } + + spin_unlock_irqrestore(&aift->gait_lock, flags); +} + +static void gib_alert_irq_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) +{ + struct tpi_adapter_info *info = (struct tpi_adapter_info *)tpi_info; + inc_irq_stat(IRQIO_GAL); - process_gib_alert_list(); + + if ((info->forward || info->error) && + IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM)) { + aen_process_gait(info->isc); + if (info->aism != 0) + process_gib_alert_list(); + } else { + process_gib_alert_list(); + } } static struct airq_struct gib_alert_irq = { @@ -3326,6 +3405,11 @@ { if (!gib) return; + if (kvm_s390_pci_interp_allowed() && aift) { + mutex_lock(&aift->aift_lock); + kvm_s390_pci_aen_exit(); + mutex_unlock(&aift->aift_lock); + } chsc_sgib(0); unregister_adapter_interrupt(&gib_alert_irq); free_page((unsigned long)gib); @@ -3363,6 +3447,14 @@ goto out_unreg_gal; } + if (kvm_s390_pci_interp_allowed()) { + if (kvm_s390_pci_aen_init(nisc)) { + pr_err("Initializing AEN for PCI failed\n"); + rc = -EIO; + goto out_unreg_gal; + } + } + KVM_EVENT(3, "gib 0x%pK (nisc=%d) initialized", gib, gib->nisc); goto out; --- linux-5.19.0.orig/arch/s390/kvm/kvm-s390.c +++ linux-5.19.0/arch/s390/kvm/kvm-s390.c @@ -47,6 +47,7 @@ #include #include "kvm-s390.h" #include "gaccess.h" +#include "pci.h" #define CREATE_TRACE_POINTS #include "trace.h" @@ -63,7 +64,8 @@ STATS_DESC_COUNTER(VM, inject_float_mchk), STATS_DESC_COUNTER(VM, inject_pfault_done), STATS_DESC_COUNTER(VM, inject_service_signal), - STATS_DESC_COUNTER(VM, inject_virtio) + STATS_DESC_COUNTER(VM, inject_virtio), + STATS_DESC_COUNTER(VM, aen_forward) }; const struct kvm_stats_header kvm_vm_stats_header = { @@ -502,6 +504,14 @@ goto out; } + if (kvm_s390_pci_interp_allowed()) { + rc = kvm_s390_pci_init(); + if (rc) { + pr_err("Unable to allocate AIFT for PCI\n"); + goto out; + } + } + rc = kvm_s390_gib_init(GAL_ISC); if (rc) goto out; @@ -516,6 +526,8 @@ void kvm_arch_exit(void) { kvm_s390_gib_destroy(); + if (kvm_s390_pci_interp_allowed()) + kvm_s390_pci_exit(); debug_unregister(kvm_s390_dbf); debug_unregister(kvm_s390_dbf_uv); } @@ -606,6 +618,29 @@ case KVM_CAP_S390_PROTECTED: r = is_prot_virt_host(); break; + case KVM_CAP_S390_ZPCI_OP: + r = kvm_s390_pci_interp_allowed(); + break; + case KVM_CAP_S390_PROTECTED_DUMP: { + u64 pv_cmds_dump[] = { + BIT_UVC_CMD_DUMP_INIT, + BIT_UVC_CMD_DUMP_CONFIG_STOR_STATE, + BIT_UVC_CMD_DUMP_CPU, + BIT_UVC_CMD_DUMP_COMPLETE, + }; + int i; + + r = is_prot_virt_host(); + + for (i = 0; i < ARRAY_SIZE(pv_cmds_dump); i++) { + if (!test_bit_inv(pv_cmds_dump[i], + (unsigned long *)&uv_info.inst_calls_list)) { + r = 0; + break; + } + } + break; + } default: r = 0; } @@ -1019,6 +1054,42 @@ return 0; } +static void kvm_s390_vcpu_pci_setup(struct kvm_vcpu *vcpu) +{ + /* Only set the ECB bits after guest requests zPCI interpretation */ + if (!vcpu->kvm->arch.use_zpci_interp) + return; + + vcpu->arch.sie_block->ecb2 |= ECB2_ZPCI_LSI; + vcpu->arch.sie_block->ecb3 |= ECB3_AISII + ECB3_AISI; +} + +void kvm_s390_vcpu_pci_enable_interp(struct kvm *kvm) +{ + struct kvm_vcpu *vcpu; + unsigned long i; + + lockdep_assert_held(&kvm->lock); + + if (!kvm_s390_pci_interp_allowed()) + return; + + /* + * If host is configured for PCI and the necessary facilities are + * available, turn on interpretation for the life of this guest + */ + kvm->arch.use_zpci_interp = 1; + + kvm_s390_vcpu_block_all(kvm); + + kvm_for_each_vcpu(i, vcpu, kvm) { + kvm_s390_vcpu_pci_setup(vcpu); + kvm_s390_sync_request(KVM_REQ_VSIE_RESTART, vcpu); + } + + kvm_s390_vcpu_unblock_all(kvm); +} + static void kvm_s390_sync_request_broadcast(struct kvm *kvm, int req) { unsigned long cx; @@ -1118,6 +1189,8 @@ return 0; } +static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod); + static int kvm_s390_set_tod_ext(struct kvm *kvm, struct kvm_device_attr *attr) { struct kvm_s390_vm_tod_clock gtod; @@ -1127,7 +1200,7 @@ if (!test_kvm_facility(kvm, 139) && gtod.epoch_idx) return -EINVAL; - kvm_s390_set_tod_clock(kvm, >od); + __kvm_s390_set_tod_clock(kvm, >od); VM_EVENT(kvm, 3, "SET: TOD extension: 0x%x, TOD base: 0x%llx", gtod.epoch_idx, gtod.tod); @@ -1158,7 +1231,7 @@ sizeof(gtod.tod))) return -EFAULT; - kvm_s390_set_tod_clock(kvm, >od); + __kvm_s390_set_tod_clock(kvm, >od); VM_EVENT(kvm, 3, "SET: TOD base: 0x%llx", gtod.tod); return 0; } @@ -1170,6 +1243,16 @@ if (attr->flags) return -EINVAL; + mutex_lock(&kvm->lock); + /* + * For protected guests, the TOD is managed by the ultravisor, so trying + * to change it will never bring the expected results. + */ + if (kvm_s390_pv_is_protected(kvm)) { + ret = -EOPNOTSUPP; + goto out_unlock; + } + switch (attr->attr) { case KVM_S390_VM_TOD_EXT: ret = kvm_s390_set_tod_ext(kvm, attr); @@ -1184,6 +1267,9 @@ ret = -ENXIO; break; } + +out_unlock: + mutex_unlock(&kvm->lock); return ret; } @@ -2220,6 +2306,115 @@ return r; } +/* + * Here we provide user space with a direct interface to query UV + * related data like UV maxima and available features as well as + * feature specific data. + * + * To facilitate future extension of the data structures we'll try to + * write data up to the maximum requested length. + */ +static ssize_t kvm_s390_handle_pv_info(struct kvm_s390_pv_info *info) +{ + ssize_t len_min; + + switch (info->header.id) { + case KVM_PV_INFO_VM: { + len_min = sizeof(info->header) + sizeof(info->vm); + + if (info->header.len_max < len_min) + return -EINVAL; + + memcpy(info->vm.inst_calls_list, + uv_info.inst_calls_list, + sizeof(uv_info.inst_calls_list)); + + /* It's max cpuid not max cpus, so it's off by one */ + info->vm.max_cpus = uv_info.max_guest_cpu_id + 1; + info->vm.max_guests = uv_info.max_num_sec_conf; + info->vm.max_guest_addr = uv_info.max_sec_stor_addr; + info->vm.feature_indication = uv_info.uv_feature_indications; + + return len_min; + } + case KVM_PV_INFO_DUMP: { + len_min = sizeof(info->header) + sizeof(info->dump); + + if (info->header.len_max < len_min) + return -EINVAL; + + info->dump.dump_cpu_buffer_len = uv_info.guest_cpu_stor_len; + info->dump.dump_config_mem_buffer_per_1m = uv_info.conf_dump_storage_state_len; + info->dump.dump_config_finalize_len = uv_info.conf_dump_finalize_len; + return len_min; + } + default: + return -EINVAL; + } +} + +static int kvm_s390_pv_dmp(struct kvm *kvm, struct kvm_pv_cmd *cmd, + struct kvm_s390_pv_dmp dmp) +{ + int r = -EINVAL; + void __user *result_buff = (void __user *)dmp.buff_addr; + + switch (dmp.subcmd) { + case KVM_PV_DUMP_INIT: { + if (kvm->arch.pv.dumping) + break; + + /* + * Block SIE entry as concurrent dump UVCs could lead + * to validities. + */ + kvm_s390_vcpu_block_all(kvm); + + r = uv_cmd_nodata(kvm_s390_pv_get_handle(kvm), + UVC_CMD_DUMP_INIT, &cmd->rc, &cmd->rrc); + KVM_UV_EVENT(kvm, 3, "PROTVIRT DUMP INIT: rc %x rrc %x", + cmd->rc, cmd->rrc); + if (!r) { + kvm->arch.pv.dumping = true; + } else { + kvm_s390_vcpu_unblock_all(kvm); + r = -EINVAL; + } + break; + } + case KVM_PV_DUMP_CONFIG_STOR_STATE: { + if (!kvm->arch.pv.dumping) + break; + + /* + * gaddr is an output parameter since we might stop + * early. As dmp will be copied back in our caller, we + * don't need to do it ourselves. + */ + r = kvm_s390_pv_dump_stor_state(kvm, result_buff, &dmp.gaddr, dmp.buff_len, + &cmd->rc, &cmd->rrc); + break; + } + case KVM_PV_DUMP_COMPLETE: { + if (!kvm->arch.pv.dumping) + break; + + r = -EINVAL; + if (dmp.buff_len < uv_info.conf_dump_finalize_len) + break; + + r = kvm_s390_pv_dump_complete(kvm, result_buff, + &cmd->rc, &cmd->rrc); + break; + } + default: + r = -ENOTTY; + break; + } + + return r; +} + static int kvm_s390_handle_pv(struct kvm *kvm, struct kvm_pv_cmd *cmd) { int r = 0; @@ -2356,6 +2551,68 @@ cmd->rc, cmd->rrc); break; } + case KVM_PV_INFO: { + struct kvm_s390_pv_info info = {}; + ssize_t data_len; + + /* + * No need to check the VM protection here. + * + * Maybe user space wants to query some of the data + * when the VM is still unprotected. If we see the + * need to fence a new data command we can still + * return an error in the info handler. + */ + + r = -EFAULT; + if (copy_from_user(&info, argp, sizeof(info.header))) + break; + + r = -EINVAL; + if (info.header.len_max < sizeof(info.header)) + break; + + data_len = kvm_s390_handle_pv_info(&info); + if (data_len < 0) { + r = data_len; + break; + } + /* + * If a data command struct is extended (multiple + * times) this can be used to determine how much of it + * is valid. + */ + info.header.len_written = data_len; + + r = -EFAULT; + if (copy_to_user(argp, &info, data_len)) + break; + + r = 0; + break; + } + case KVM_PV_DUMP: { + struct kvm_s390_pv_dmp dmp; + + r = -EINVAL; + if (!kvm_s390_pv_is_protected(kvm)) + break; + + r = -EFAULT; + if (copy_from_user(&dmp, argp, sizeof(dmp))) + break; + + r = kvm_s390_pv_dmp(kvm, cmd, dmp); + if (r) + break; + + if (copy_to_user(argp, &dmp, sizeof(dmp))) { + r = -EFAULT; + break; + } + + break; + } default: r = -ENOTTY; } @@ -2581,6 +2838,19 @@ r = -EFAULT; break; } + case KVM_S390_ZPCI_OP: { + struct kvm_s390_zpci_op args; + + r = -EINVAL; + if (!IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM)) + break; + if (copy_from_user(&args, argp, sizeof(args))) { + r = -EFAULT; + break; + } + r = kvm_s390_pci_zpci_op(kvm, &args); + break; + } default: r = -ENOTTY; } @@ -2742,6 +3012,14 @@ kvm->arch.sca = NULL; } +void kvm_arch_free_vm(struct kvm *kvm) +{ + if (IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM)) + kvm_s390_pci_clear_list(kvm); + + __kvm_arch_free_vm(kvm); +} + int kvm_arch_init_vm(struct kvm *kvm, unsigned long type) { gfp_t alloc_flags = GFP_KERNEL_ACCOUNT; @@ -2824,6 +3102,13 @@ kvm_s390_crypto_init(kvm); + if (IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM)) { + mutex_lock(&kvm->lock); + kvm_s390_pci_init_list(kvm); + kvm_s390_vcpu_pci_enable_interp(kvm); + mutex_unlock(&kvm->lock); + } + mutex_init(&kvm->arch.float_int.ais_lock); spin_lock_init(&kvm->arch.float_int.lock); for (i = 0; i < FIRQ_LIST_COUNT; i++) @@ -3324,6 +3609,8 @@ kvm_s390_vcpu_crypto_setup(vcpu); + kvm_s390_vcpu_pci_setup(vcpu); + mutex_lock(&vcpu->kvm->lock); if (kvm_s390_pv_is_protected(vcpu->kvm)) { rc = kvm_s390_pv_create_cpu(vcpu, &uvrc, &uvrrc); @@ -3993,13 +4280,6 @@ preempt_enable(); } -void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod) -{ - mutex_lock(&kvm->lock); - __kvm_s390_set_tod_clock(kvm, gtod); - mutex_unlock(&kvm->lock); -} - int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod) { if (!mutex_trylock(&kvm->lock)) @@ -4473,6 +4753,15 @@ struct kvm_run *kvm_run = vcpu->run; int rc; + /* + * Running a VM while dumping always has the potential to + * produce inconsistent dump data. But for PV vcpus a SIE + * entry while dumping could also lead to a fatal validity + * intercept which we absolutely want to avoid. + */ + if (vcpu->kvm->arch.pv.dumping) + return -EINVAL; + if (kvm_run->immediate_exit) return -EINTR; @@ -4912,6 +5201,48 @@ return -ENOIOCTLCMD; } +static int kvm_s390_handle_pv_vcpu_dump(struct kvm_vcpu *vcpu, + struct kvm_pv_cmd *cmd) +{ + struct kvm_s390_pv_dmp dmp; + void *data; + int ret; + + /* Dump initialization is a prerequisite */ + if (!vcpu->kvm->arch.pv.dumping) + return -EINVAL; + + if (copy_from_user(&dmp, (__u8 __user *)cmd->data, sizeof(dmp))) + return -EFAULT; + + /* We only handle this subcmd right now */ + if (dmp.subcmd != KVM_PV_DUMP_CPU) + return -EINVAL; + + /* CPU dump length is the same as create cpu storage donation. */ + if (dmp.buff_len != uv_info.guest_cpu_stor_len) + return -EINVAL; + + data = kvzalloc(uv_info.guest_cpu_stor_len, GFP_KERNEL); + if (!data) + return -ENOMEM; + + ret = kvm_s390_pv_dump_cpu(vcpu, data, &cmd->rc, &cmd->rrc); + + VCPU_EVENT(vcpu, 3, "PROTVIRT DUMP CPU %d rc %x rrc %x", + vcpu->vcpu_id, cmd->rc, cmd->rrc); + + if (ret) + ret = -EINVAL; + + /* On success copy over the dump data */ + if (!ret && copy_to_user((__u8 __user *)dmp.buff_addr, data, uv_info.guest_cpu_stor_len)) + ret = -EFAULT; + + kvfree(data); + return ret; +} + long kvm_arch_vcpu_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg) { @@ -5076,6 +5407,33 @@ irq_state.len); break; } + case KVM_S390_PV_CPU_COMMAND: { + struct kvm_pv_cmd cmd; + + r = -EINVAL; + if (!is_prot_virt_host()) + break; + + r = -EFAULT; + if (copy_from_user(&cmd, argp, sizeof(cmd))) + break; + + r = -EINVAL; + if (cmd.flags) + break; + + /* We only handle this cmd right now */ + if (cmd.cmd != KVM_PV_DUMP) + break; + + r = kvm_s390_handle_pv_vcpu_dump(vcpu, &cmd); + + /* Always copy over UV rc / rrc data */ + if (copy_to_user((__u8 __user *)argp, &cmd.rc, + sizeof(cmd.rc) + sizeof(cmd.rrc))) + r = -EFAULT; + break; + } default: r = -ENOTTY; } --- linux-5.19.0.orig/arch/s390/kvm/kvm-s390.h +++ linux-5.19.0/arch/s390/kvm/kvm-s390.h @@ -250,6 +250,11 @@ 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); +int kvm_s390_pv_dump_cpu(struct kvm_vcpu *vcpu, void *buff, u16 *rc, u16 *rrc); +int kvm_s390_pv_dump_stor_state(struct kvm *kvm, void __user *buff_user, + u64 *gaddr, u64 buff_user_len, u16 *rc, u16 *rrc); +int kvm_s390_pv_dump_complete(struct kvm *kvm, void __user *buff_user, + u16 *rc, u16 *rrc); static inline u64 kvm_s390_pv_get_handle(struct kvm *kvm) { @@ -358,7 +363,6 @@ int kvm_s390_handle_sigp_pei(struct kvm_vcpu *vcpu); /* implemented in kvm-s390.c */ -void kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod); int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod); 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); @@ -508,6 +512,16 @@ void kvm_s390_vcpu_crypto_reset_all(struct kvm *kvm); /** + * kvm_s390_vcpu_pci_enable_interp + * + * Set the associated PCI attributes for each vcpu to allow for zPCI Load/Store + * interpretation as well as adapter interruption forwarding. + * + * @kvm: the KVM guest + */ +void kvm_s390_vcpu_pci_enable_interp(struct kvm *kvm); + +/** * diag9c_forwarding_hz * * Set the maximum number of diag9c forwarding per second --- linux-5.19.0.orig/arch/s390/kvm/pci.c +++ linux-5.19.0/arch/s390/kvm/pci.c @@ -0,0 +1,694 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * s390 kvm PCI passthrough support + * + * Copyright IBM Corp. 2022 + * + * Author(s): Matthew Rosato + */ + +#include +#include +#include +#include +#include +#include +#include "pci.h" +#include "kvm-s390.h" + +struct zpci_aift *aift; + +static inline int __set_irq_noiib(u16 ctl, u8 isc) +{ + union zpci_sic_iib iib = {{0}}; + + return zpci_set_irq_ctrl(ctl, isc, &iib); +} + +void kvm_s390_pci_aen_exit(void) +{ + unsigned long flags; + struct kvm_zdev **gait_kzdev; + + lockdep_assert_held(&aift->aift_lock); + + /* + * Contents of the aipb remain registered for the life of the host + * kernel, the information preserved in zpci_aipb and zpci_aif_sbv + * in case we insert the KVM module again later. Clear the AIFT + * information and free anything not registered with underlying + * firmware. + */ + spin_lock_irqsave(&aift->gait_lock, flags); + gait_kzdev = aift->kzdev; + aift->gait = NULL; + aift->sbv = NULL; + aift->kzdev = NULL; + spin_unlock_irqrestore(&aift->gait_lock, flags); + + kfree(gait_kzdev); +} + +static int zpci_setup_aipb(u8 nisc) +{ + struct page *page; + int size, rc; + + zpci_aipb = kzalloc(sizeof(union zpci_sic_iib), GFP_KERNEL); + if (!zpci_aipb) + return -ENOMEM; + + aift->sbv = airq_iv_create(ZPCI_NR_DEVICES, AIRQ_IV_ALLOC, 0); + if (!aift->sbv) { + rc = -ENOMEM; + goto free_aipb; + } + zpci_aif_sbv = aift->sbv; + size = get_order(PAGE_ALIGN(ZPCI_NR_DEVICES * + sizeof(struct zpci_gaite))); + page = alloc_pages(GFP_KERNEL | __GFP_ZERO, size); + if (!page) { + rc = -ENOMEM; + goto free_sbv; + } + aift->gait = (struct zpci_gaite *)page_to_phys(page); + + zpci_aipb->aipb.faisb = virt_to_phys(aift->sbv->vector); + zpci_aipb->aipb.gait = virt_to_phys(aift->gait); + zpci_aipb->aipb.afi = nisc; + zpci_aipb->aipb.faal = ZPCI_NR_DEVICES; + + /* Setup Adapter Event Notification Interpretation */ + if (zpci_set_irq_ctrl(SIC_SET_AENI_CONTROLS, 0, zpci_aipb)) { + rc = -EIO; + goto free_gait; + } + + return 0; + +free_gait: + free_pages((unsigned long)aift->gait, size); +free_sbv: + airq_iv_release(aift->sbv); + zpci_aif_sbv = NULL; +free_aipb: + kfree(zpci_aipb); + zpci_aipb = NULL; + + return rc; +} + +static int zpci_reset_aipb(u8 nisc) +{ + /* + * AEN registration can only happen once per system boot. If + * an aipb already exists then AEN was already registered and + * we can re-use the aipb contents. This can only happen if + * the KVM module was removed and re-inserted. However, we must + * ensure that the same forwarding ISC is used as this is assigned + * during KVM module load. + */ + if (zpci_aipb->aipb.afi != nisc) + return -EINVAL; + + aift->sbv = zpci_aif_sbv; + aift->gait = (struct zpci_gaite *)zpci_aipb->aipb.gait; + + return 0; +} + +int kvm_s390_pci_aen_init(u8 nisc) +{ + int rc = 0; + + /* If already enabled for AEN, bail out now */ + if (aift->gait || aift->sbv) + return -EPERM; + + mutex_lock(&aift->aift_lock); + aift->kzdev = kcalloc(ZPCI_NR_DEVICES, sizeof(struct kvm_zdev *), + GFP_KERNEL); + if (!aift->kzdev) { + rc = -ENOMEM; + goto unlock; + } + + if (!zpci_aipb) + rc = zpci_setup_aipb(nisc); + else + rc = zpci_reset_aipb(nisc); + if (rc) + goto free_zdev; + + /* Enable floating IRQs */ + if (__set_irq_noiib(SIC_IRQ_MODE_SINGLE, nisc)) { + rc = -EIO; + kvm_s390_pci_aen_exit(); + } + + goto unlock; + +free_zdev: + kfree(aift->kzdev); +unlock: + mutex_unlock(&aift->aift_lock); + return rc; +} + +/* Modify PCI: Register floating adapter interruption forwarding */ +static int kvm_zpci_set_airq(struct zpci_dev *zdev) +{ + u64 req = ZPCI_CREATE_REQ(zdev->fh, 0, ZPCI_MOD_FC_REG_INT); + struct zpci_fib fib = {}; + u8 status; + + fib.fmt0.isc = zdev->kzdev->fib.fmt0.isc; + fib.fmt0.sum = 1; /* enable summary notifications */ + fib.fmt0.noi = airq_iv_end(zdev->aibv); + fib.fmt0.aibv = virt_to_phys(zdev->aibv->vector); + fib.fmt0.aibvo = 0; + fib.fmt0.aisb = virt_to_phys(aift->sbv->vector + (zdev->aisb / 64) * 8); + fib.fmt0.aisbo = zdev->aisb & 63; + fib.gd = zdev->gisa; + + return zpci_mod_fc(req, &fib, &status) ? -EIO : 0; +} + +/* Modify PCI: Unregister floating adapter interruption forwarding */ +static int kvm_zpci_clear_airq(struct zpci_dev *zdev) +{ + u64 req = ZPCI_CREATE_REQ(zdev->fh, 0, ZPCI_MOD_FC_DEREG_INT); + struct zpci_fib fib = {}; + u8 cc, status; + + fib.gd = zdev->gisa; + + cc = zpci_mod_fc(req, &fib, &status); + if (cc == 3 || (cc == 1 && status == 24)) + /* Function already gone or IRQs already deregistered. */ + cc = 0; + + return cc ? -EIO : 0; +} + +static inline void unaccount_mem(unsigned long nr_pages) +{ + struct user_struct *user = get_uid(current_user()); + + if (user) + atomic_long_sub(nr_pages, &user->locked_vm); + if (current->mm) + atomic64_sub(nr_pages, ¤t->mm->pinned_vm); +} + +static inline int account_mem(unsigned long nr_pages) +{ + struct user_struct *user = get_uid(current_user()); + unsigned long page_limit, cur_pages, new_pages; + + page_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT; + + do { + cur_pages = atomic_long_read(&user->locked_vm); + new_pages = cur_pages + nr_pages; + if (new_pages > page_limit) + return -ENOMEM; + } while (atomic_long_cmpxchg(&user->locked_vm, cur_pages, + new_pages) != cur_pages); + + atomic64_add(nr_pages, ¤t->mm->pinned_vm); + + return 0; +} + +static int kvm_s390_pci_aif_enable(struct zpci_dev *zdev, struct zpci_fib *fib, + bool assist) +{ + struct page *pages[1], *aibv_page, *aisb_page = NULL; + unsigned int msi_vecs, idx; + struct zpci_gaite *gaite; + unsigned long hva, bit; + struct kvm *kvm; + phys_addr_t gaddr; + int rc = 0, gisc, npages, pcount = 0; + + /* + * Interrupt forwarding is only applicable if the device is already + * enabled for interpretation + */ + if (zdev->gisa == 0) + return -EINVAL; + + kvm = zdev->kzdev->kvm; + msi_vecs = min_t(unsigned int, fib->fmt0.noi, zdev->max_msi); + + /* Get the associated forwarding ISC - if invalid, return the error */ + gisc = kvm_s390_gisc_register(kvm, fib->fmt0.isc); + if (gisc < 0) + return gisc; + + /* Replace AIBV address */ + idx = srcu_read_lock(&kvm->srcu); + hva = gfn_to_hva(kvm, gpa_to_gfn((gpa_t)fib->fmt0.aibv)); + npages = pin_user_pages_fast(hva, 1, FOLL_WRITE | FOLL_LONGTERM, pages); + srcu_read_unlock(&kvm->srcu, idx); + if (npages < 1) { + rc = -EIO; + goto out; + } + aibv_page = pages[0]; + pcount++; + gaddr = page_to_phys(aibv_page) + (fib->fmt0.aibv & ~PAGE_MASK); + fib->fmt0.aibv = gaddr; + + /* Pin the guest AISB if one was specified */ + if (fib->fmt0.sum == 1) { + idx = srcu_read_lock(&kvm->srcu); + hva = gfn_to_hva(kvm, gpa_to_gfn((gpa_t)fib->fmt0.aisb)); + npages = pin_user_pages_fast(hva, 1, FOLL_WRITE | FOLL_LONGTERM, + pages); + srcu_read_unlock(&kvm->srcu, idx); + if (npages < 1) { + rc = -EIO; + goto unpin1; + } + aisb_page = pages[0]; + pcount++; + } + + /* Account for pinned pages, roll back on failure */ + if (account_mem(pcount)) + goto unpin2; + + /* AISB must be allocated before we can fill in GAITE */ + mutex_lock(&aift->aift_lock); + bit = airq_iv_alloc_bit(aift->sbv); + if (bit == -1UL) + goto unlock; + zdev->aisb = bit; /* store the summary bit number */ + zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA | + AIRQ_IV_BITLOCK | + AIRQ_IV_GUESTVEC, + phys_to_virt(fib->fmt0.aibv)); + + spin_lock_irq(&aift->gait_lock); + gaite = (struct zpci_gaite *)aift->gait + (zdev->aisb * + sizeof(struct zpci_gaite)); + + /* If assist not requested, host will get all alerts */ + if (assist) + gaite->gisa = (u32)virt_to_phys(&kvm->arch.sie_page2->gisa); + else + gaite->gisa = 0; + + gaite->gisc = fib->fmt0.isc; + gaite->count++; + gaite->aisbo = fib->fmt0.aisbo; + gaite->aisb = virt_to_phys(page_address(aisb_page) + (fib->fmt0.aisb & + ~PAGE_MASK)); + aift->kzdev[zdev->aisb] = zdev->kzdev; + spin_unlock_irq(&aift->gait_lock); + + /* Update guest FIB for re-issue */ + fib->fmt0.aisbo = zdev->aisb & 63; + fib->fmt0.aisb = virt_to_phys(aift->sbv->vector + (zdev->aisb / 64) * 8); + fib->fmt0.isc = gisc; + + /* Save some guest fib values in the host for later use */ + zdev->kzdev->fib.fmt0.isc = fib->fmt0.isc; + zdev->kzdev->fib.fmt0.aibv = fib->fmt0.aibv; + mutex_unlock(&aift->aift_lock); + + /* Issue the clp to setup the irq now */ + rc = kvm_zpci_set_airq(zdev); + return rc; + +unlock: + mutex_unlock(&aift->aift_lock); +unpin2: + if (fib->fmt0.sum == 1) + unpin_user_page(aisb_page); +unpin1: + unpin_user_page(aibv_page); +out: + return rc; +} + +static int kvm_s390_pci_aif_disable(struct zpci_dev *zdev, bool force) +{ + struct kvm_zdev *kzdev = zdev->kzdev; + struct zpci_gaite *gaite; + struct page *vpage = NULL, *spage = NULL; + int rc, pcount = 0; + u8 isc; + + if (zdev->gisa == 0) + return -EINVAL; + + mutex_lock(&aift->aift_lock); + + /* + * If the clear fails due to an error, leave now unless we know this + * device is about to go away (force) -- In that case clear the GAITE + * regardless. + */ + rc = kvm_zpci_clear_airq(zdev); + if (rc && !force) + goto out; + + if (zdev->kzdev->fib.fmt0.aibv == 0) + goto out; + spin_lock_irq(&aift->gait_lock); + gaite = (struct zpci_gaite *)aift->gait + (zdev->aisb * + sizeof(struct zpci_gaite)); + isc = gaite->gisc; + gaite->count--; + if (gaite->count == 0) { + /* Release guest AIBV and AISB */ + vpage = phys_to_page(kzdev->fib.fmt0.aibv); + if (gaite->aisb != 0) + spage = phys_to_page(gaite->aisb); + /* Clear the GAIT entry */ + gaite->aisb = 0; + gaite->gisc = 0; + gaite->aisbo = 0; + gaite->gisa = 0; + aift->kzdev[zdev->aisb] = 0; + /* Clear zdev info */ + airq_iv_free_bit(aift->sbv, zdev->aisb); + airq_iv_release(zdev->aibv); + zdev->aisb = 0; + zdev->aibv = NULL; + } + spin_unlock_irq(&aift->gait_lock); + kvm_s390_gisc_unregister(kzdev->kvm, isc); + kzdev->fib.fmt0.isc = 0; + kzdev->fib.fmt0.aibv = 0; + + if (vpage) { + unpin_user_page(vpage); + pcount++; + } + if (spage) { + unpin_user_page(spage); + pcount++; + } + if (pcount > 0) + unaccount_mem(pcount); +out: + mutex_unlock(&aift->aift_lock); + + return rc; +} + +static int kvm_s390_pci_dev_open(struct zpci_dev *zdev) +{ + struct kvm_zdev *kzdev; + + kzdev = kzalloc(sizeof(struct kvm_zdev), GFP_KERNEL); + if (!kzdev) + return -ENOMEM; + + kzdev->zdev = zdev; + zdev->kzdev = kzdev; + + return 0; +} + +static void kvm_s390_pci_dev_release(struct zpci_dev *zdev) +{ + struct kvm_zdev *kzdev; + + kzdev = zdev->kzdev; + WARN_ON(kzdev->zdev != zdev); + zdev->kzdev = NULL; + kfree(kzdev); +} + + +/* + * Register device with the specified KVM. If interpetation facilities are + * available, enable them and let userspace indicate whether or not they will + * be used (specify SHM bit to disable). + */ +static int kvm_s390_pci_register_kvm(void *opaque, struct kvm *kvm) +{ + struct zpci_dev *zdev = opaque; + int rc; + + if (!zdev) + return -EINVAL; + + mutex_lock(&zdev->kzdev_lock); + + if (zdev->kzdev || zdev->gisa != 0 || !kvm) { + mutex_unlock(&zdev->kzdev_lock); + return -EINVAL; + } + + kvm_get_kvm(kvm); + + mutex_lock(&kvm->lock); + + rc = kvm_s390_pci_dev_open(zdev); + if (rc) + goto err; + + /* + * If interpretation facilities aren't available, add the device to + * the kzdev list but don't enable for interpretation. + */ + if (!kvm_s390_pci_interp_allowed()) + goto out; + + /* + * If this is the first request to use an interpreted device, make the + * necessary vcpu changes + */ + if (!kvm->arch.use_zpci_interp) + kvm_s390_vcpu_pci_enable_interp(kvm); + + if (zdev_enabled(zdev)) { + rc = zpci_disable_device(zdev); + if (rc) + goto err; + } + + /* + * Store information about the identity of the kvm guest allowed to + * access this device via interpretation to be used by host CLP + */ + zdev->gisa = (u32)virt_to_phys(&kvm->arch.sie_page2->gisa); + + rc = zpci_enable_device(zdev); + if (rc) + goto clear_gisa; + + /* Re-register the IOMMU that was already created */ + rc = zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma, + virt_to_phys(zdev->dma_table)); + if (rc) + goto clear_gisa; + +out: + zdev->kzdev->kvm = kvm; + + spin_lock(&kvm->arch.kzdev_list_lock); + list_add_tail(&zdev->kzdev->entry, &kvm->arch.kzdev_list); + spin_unlock(&kvm->arch.kzdev_list_lock); + + mutex_unlock(&kvm->lock); + mutex_unlock(&zdev->kzdev_lock); + return 0; + +clear_gisa: + zdev->gisa = 0; +err: + if (zdev->kzdev) + kvm_s390_pci_dev_release(zdev); + mutex_unlock(&kvm->lock); + mutex_unlock(&zdev->kzdev_lock); + kvm_put_kvm(kvm); + return rc; +} + +static void kvm_s390_pci_unregister_kvm(void *opaque) +{ + struct zpci_dev *zdev = opaque; + struct kvm *kvm; + + if (!zdev) + return; + + mutex_lock(&zdev->kzdev_lock); + + if (WARN_ON(!zdev->kzdev)) { + mutex_unlock(&zdev->kzdev_lock); + return; + } + + kvm = zdev->kzdev->kvm; + mutex_lock(&kvm->lock); + + /* + * A 0 gisa means interpretation was never enabled, just remove the + * device from the list. + */ + if (zdev->gisa == 0) + goto out; + + /* Forwarding must be turned off before interpretation */ + if (zdev->kzdev->fib.fmt0.aibv != 0) + kvm_s390_pci_aif_disable(zdev, true); + + /* Remove the host CLP guest designation */ + zdev->gisa = 0; + + if (zdev_enabled(zdev)) { + if (zpci_disable_device(zdev)) + goto out; + } + + if (zpci_enable_device(zdev)) + goto out; + + /* Re-register the IOMMU that was already created */ + zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma, + virt_to_phys(zdev->dma_table)); + +out: + spin_lock(&kvm->arch.kzdev_list_lock); + list_del(&zdev->kzdev->entry); + spin_unlock(&kvm->arch.kzdev_list_lock); + kvm_s390_pci_dev_release(zdev); + + mutex_unlock(&kvm->lock); + mutex_unlock(&zdev->kzdev_lock); + + kvm_put_kvm(kvm); +} + +void kvm_s390_pci_init_list(struct kvm *kvm) +{ + spin_lock_init(&kvm->arch.kzdev_list_lock); + INIT_LIST_HEAD(&kvm->arch.kzdev_list); +} + +void kvm_s390_pci_clear_list(struct kvm *kvm) +{ + /* + * This list should already be empty, either via vfio device closures + * or kvm fd cleanup. + */ + spin_lock(&kvm->arch.kzdev_list_lock); + WARN_ON_ONCE(!list_empty(&kvm->arch.kzdev_list)); + spin_unlock(&kvm->arch.kzdev_list_lock); +} + +static struct zpci_dev *get_zdev_from_kvm_by_fh(struct kvm *kvm, u32 fh) +{ + struct zpci_dev *zdev = NULL; + struct kvm_zdev *kzdev; + + spin_lock(&kvm->arch.kzdev_list_lock); + list_for_each_entry(kzdev, &kvm->arch.kzdev_list, entry) { + if (kzdev->zdev->fh == fh) { + zdev = kzdev->zdev; + break; + } + } + spin_unlock(&kvm->arch.kzdev_list_lock); + + return zdev; +} + +static int kvm_s390_pci_zpci_reg_aen(struct zpci_dev *zdev, + struct kvm_s390_zpci_op *args) +{ + struct zpci_fib fib = {}; + bool hostflag; + + fib.fmt0.aibv = args->u.reg_aen.ibv; + fib.fmt0.isc = args->u.reg_aen.isc; + fib.fmt0.noi = args->u.reg_aen.noi; + if (args->u.reg_aen.sb != 0) { + fib.fmt0.aisb = args->u.reg_aen.sb; + fib.fmt0.aisbo = args->u.reg_aen.sbo; + fib.fmt0.sum = 1; + } else { + fib.fmt0.aisb = 0; + fib.fmt0.aisbo = 0; + fib.fmt0.sum = 0; + } + + hostflag = !(args->u.reg_aen.flags & KVM_S390_ZPCIOP_REGAEN_HOST); + return kvm_s390_pci_aif_enable(zdev, &fib, hostflag); +} + +int kvm_s390_pci_zpci_op(struct kvm *kvm, struct kvm_s390_zpci_op *args) +{ + struct kvm_zdev *kzdev; + struct zpci_dev *zdev; + int r; + + zdev = get_zdev_from_kvm_by_fh(kvm, args->fh); + if (!zdev) + return -ENODEV; + + mutex_lock(&zdev->kzdev_lock); + mutex_lock(&kvm->lock); + + kzdev = zdev->kzdev; + if (!kzdev) { + r = -ENODEV; + goto out; + } + if (kzdev->kvm != kvm) { + r = -EPERM; + goto out; + } + + switch (args->op) { + case KVM_S390_ZPCIOP_REG_AEN: + /* Fail on unknown flags */ + if (args->u.reg_aen.flags & ~KVM_S390_ZPCIOP_REGAEN_HOST) { + r = -EINVAL; + break; + } + r = kvm_s390_pci_zpci_reg_aen(zdev, args); + break; + case KVM_S390_ZPCIOP_DEREG_AEN: + r = kvm_s390_pci_aif_disable(zdev, false); + break; + default: + r = -EINVAL; + } + +out: + mutex_unlock(&kvm->lock); + mutex_unlock(&zdev->kzdev_lock); + return r; +} + +int kvm_s390_pci_init(void) +{ + aift = kzalloc(sizeof(struct zpci_aift), GFP_KERNEL); + if (!aift) + return -ENOMEM; + + spin_lock_init(&aift->gait_lock); + mutex_init(&aift->aift_lock); + zpci_kvm_hook.kvm_register = kvm_s390_pci_register_kvm; + zpci_kvm_hook.kvm_unregister = kvm_s390_pci_unregister_kvm; + + return 0; +} + +void kvm_s390_pci_exit(void) +{ + mutex_destroy(&aift->aift_lock); + zpci_kvm_hook.kvm_register = NULL; + zpci_kvm_hook.kvm_unregister = NULL; + + kfree(aift); +} --- linux-5.19.0.orig/arch/s390/kvm/pci.h +++ linux-5.19.0/arch/s390/kvm/pci.h @@ -0,0 +1,88 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * s390 kvm PCI passthrough support + * + * Copyright IBM Corp. 2022 + * + * Author(s): Matthew Rosato + */ + +#ifndef __KVM_S390_PCI_H +#define __KVM_S390_PCI_H + +#include +#include +#include +#include +#include +#include +#include + +struct kvm_zdev { + struct zpci_dev *zdev; + struct kvm *kvm; + struct zpci_fib fib; + struct list_head entry; +}; + +struct zpci_gaite { + u32 gisa; + u8 gisc; + u8 count; + u8 reserved; + u8 aisbo; + u64 aisb; +}; + +struct zpci_aift { + struct zpci_gaite *gait; + struct airq_iv *sbv; + struct kvm_zdev **kzdev; + spinlock_t gait_lock; /* Protects the gait, used during AEN forward */ + struct mutex aift_lock; /* Protects the other structures in aift */ +}; + +extern struct zpci_aift *aift; + +static inline struct kvm *kvm_s390_pci_si_to_kvm(struct zpci_aift *aift, + unsigned long si) +{ + if (!IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM) || aift->kzdev == 0 || + aift->kzdev[si] == 0) + return 0; + return aift->kzdev[si]->kvm; +}; + +int kvm_s390_pci_aen_init(u8 nisc); +void kvm_s390_pci_aen_exit(void); + +void kvm_s390_pci_init_list(struct kvm *kvm); +void kvm_s390_pci_clear_list(struct kvm *kvm); + +int kvm_s390_pci_zpci_op(struct kvm *kvm, struct kvm_s390_zpci_op *args); + +int kvm_s390_pci_init(void); +void kvm_s390_pci_exit(void); + +static inline bool kvm_s390_pci_interp_allowed(void) +{ + struct cpuid cpu_id; + + get_cpu_id(&cpu_id); + switch (cpu_id.machine) { + case 0x2817: + case 0x2818: + case 0x2827: + case 0x2828: + case 0x2964: + case 0x2965: + /* No SHM on certain machines */ + return false; + default: + return (IS_ENABLED(CONFIG_VFIO_PCI_ZDEV_KVM) && + sclp.has_zpci_lsi && sclp.has_aeni && sclp.has_aisi && + sclp.has_aisii); + } +} + +#endif /* __KVM_S390_PCI_H */ --- linux-5.19.0.orig/arch/s390/kvm/pv.c +++ linux-5.19.0/arch/s390/kvm/pv.c @@ -7,6 +7,7 @@ */ #include #include +#include #include #include #include @@ -161,10 +162,13 @@ 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) + /* Intended memory leak on "impossible" error */ + if (!cc) { kvm_s390_pv_dealloc_vm(kvm); - return cc ? -EIO : 0; + return 0; + } + s390_replace_asce(kvm->arch.gmap); + return -EIO; } int kvm_s390_pv_init_vm(struct kvm *kvm, u16 *rc, u16 *rrc) @@ -298,3 +302,200 @@ return -EINVAL; return 0; } + +int kvm_s390_pv_dump_cpu(struct kvm_vcpu *vcpu, void *buff, u16 *rc, u16 *rrc) +{ + struct uv_cb_dump_cpu uvcb = { + .header.cmd = UVC_CMD_DUMP_CPU, + .header.len = sizeof(uvcb), + .cpu_handle = vcpu->arch.pv.handle, + .dump_area_origin = (u64)buff, + }; + int cc; + + cc = uv_call_sched(0, (u64)&uvcb); + *rc = uvcb.header.rc; + *rrc = uvcb.header.rrc; + return cc; +} + +/* Size of the cache for the storage state dump data. 1MB for now */ +#define DUMP_BUFF_LEN HPAGE_SIZE + +/** + * kvm_s390_pv_dump_stor_state + * + * @kvm: pointer to the guest's KVM struct + * @buff_user: Userspace pointer where we will write the results to + * @gaddr: Starting absolute guest address for which the storage state + * is requested. + * @buff_user_len: Length of the buff_user buffer + * @rc: Pointer to where the uvcb return code is stored + * @rrc: Pointer to where the uvcb return reason code is stored + * + * Stores buff_len bytes of tweak component values to buff_user + * starting with the 1MB block specified by the absolute guest address + * (gaddr). The gaddr pointer will be updated with the last address + * for which data was written when returning to userspace. buff_user + * might be written to even if an error rc is returned. For instance + * if we encounter a fault after writing the first page of data. + * + * Context: kvm->lock needs to be held + * + * Return: + * 0 on success + * -ENOMEM if allocating the cache fails + * -EINVAL if gaddr is not aligned to 1MB + * -EINVAL if buff_user_len is not aligned to uv_info.conf_dump_storage_state_len + * -EINVAL if the UV call fails, rc and rrc will be set in this case + * -EFAULT if copying the result to buff_user failed + */ +int kvm_s390_pv_dump_stor_state(struct kvm *kvm, void __user *buff_user, + u64 *gaddr, u64 buff_user_len, u16 *rc, u16 *rrc) +{ + struct uv_cb_dump_stor_state uvcb = { + .header.cmd = UVC_CMD_DUMP_CONF_STOR_STATE, + .header.len = sizeof(uvcb), + .config_handle = kvm->arch.pv.handle, + .gaddr = *gaddr, + .dump_area_origin = 0, + }; + const u64 increment_len = uv_info.conf_dump_storage_state_len; + size_t buff_kvm_size; + size_t size_done = 0; + u8 *buff_kvm = NULL; + int cc, ret; + + ret = -EINVAL; + /* UV call processes 1MB guest storage chunks at a time */ + if (!IS_ALIGNED(*gaddr, HPAGE_SIZE)) + goto out; + + /* + * We provide the storage state for 1MB chunks of guest + * storage. The buffer will need to be aligned to + * conf_dump_storage_state_len so we don't end on a partial + * chunk. + */ + if (!buff_user_len || + !IS_ALIGNED(buff_user_len, increment_len)) + goto out; + + /* + * Allocate a buffer from which we will later copy to the user + * process. We don't want userspace to dictate our buffer size + * so we limit it to DUMP_BUFF_LEN. + */ + ret = -ENOMEM; + buff_kvm_size = min_t(u64, buff_user_len, DUMP_BUFF_LEN); + buff_kvm = vzalloc(buff_kvm_size); + if (!buff_kvm) + goto out; + + ret = 0; + uvcb.dump_area_origin = (u64)buff_kvm; + /* We will loop until the user buffer is filled or an error occurs */ + do { + /* Get 1MB worth of guest storage state data */ + cc = uv_call_sched(0, (u64)&uvcb); + + /* All or nothing */ + if (cc) { + ret = -EINVAL; + break; + } + + size_done += increment_len; + uvcb.dump_area_origin += increment_len; + buff_user_len -= increment_len; + uvcb.gaddr += HPAGE_SIZE; + + /* KVM Buffer full, time to copy to the process */ + if (!buff_user_len || size_done == DUMP_BUFF_LEN) { + if (copy_to_user(buff_user, buff_kvm, size_done)) { + ret = -EFAULT; + break; + } + + buff_user += size_done; + size_done = 0; + uvcb.dump_area_origin = (u64)buff_kvm; + } + } while (buff_user_len); + + /* Report back where we ended dumping */ + *gaddr = uvcb.gaddr; + + /* Lets only log errors, we don't want to spam */ +out: + if (ret) + KVM_UV_EVENT(kvm, 3, + "PROTVIRT DUMP STORAGE STATE: addr %llx ret %d, uvcb rc %x rrc %x", + uvcb.gaddr, ret, uvcb.header.rc, uvcb.header.rrc); + *rc = uvcb.header.rc; + *rrc = uvcb.header.rrc; + vfree(buff_kvm); + + return ret; +} + +/** + * kvm_s390_pv_dump_complete + * + * @kvm: pointer to the guest's KVM struct + * @buff_user: Userspace pointer where we will write the results to + * @rc: Pointer to where the uvcb return code is stored + * @rrc: Pointer to where the uvcb return reason code is stored + * + * Completes the dumping operation and writes the completion data to + * user space. + * + * Context: kvm->lock needs to be held + * + * Return: + * 0 on success + * -ENOMEM if allocating the completion buffer fails + * -EINVAL if the UV call fails, rc and rrc will be set in this case + * -EFAULT if copying the result to buff_user failed + */ +int kvm_s390_pv_dump_complete(struct kvm *kvm, void __user *buff_user, + u16 *rc, u16 *rrc) +{ + struct uv_cb_dump_complete complete = { + .header.len = sizeof(complete), + .header.cmd = UVC_CMD_DUMP_COMPLETE, + .config_handle = kvm_s390_pv_get_handle(kvm), + }; + u64 *compl_data; + int ret; + + /* Allocate dump area */ + compl_data = vzalloc(uv_info.conf_dump_finalize_len); + if (!compl_data) + return -ENOMEM; + complete.dump_area_origin = (u64)compl_data; + + ret = uv_call_sched(0, (u64)&complete); + *rc = complete.header.rc; + *rrc = complete.header.rrc; + KVM_UV_EVENT(kvm, 3, "PROTVIRT DUMP COMPLETE: rc %x rrc %x", + complete.header.rc, complete.header.rrc); + + if (!ret) { + /* + * kvm_s390_pv_dealloc_vm() will also (mem)set + * this to false on a reboot or other destroy + * operation for this vm. + */ + kvm->arch.pv.dumping = false; + kvm_s390_vcpu_unblock_all(kvm); + ret = copy_to_user(buff_user, compl_data, uv_info.conf_dump_finalize_len); + if (ret) + ret = -EFAULT; + } + vfree(compl_data); + /* If the UVC returned an error, translate it to -EINVAL */ + if (ret > 0) + ret = -EINVAL; + return ret; +} --- linux-5.19.0.orig/arch/s390/kvm/sigp.c +++ linux-5.19.0/arch/s390/kvm/sigp.c @@ -480,9 +480,9 @@ struct kvm_vcpu *dest_vcpu; u8 order_code = kvm_s390_get_base_disp_rs(vcpu, NULL); - trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr); - if (order_code == SIGP_EXTERNAL_CALL) { + trace_kvm_s390_handle_sigp_pei(vcpu, order_code, cpu_addr); + dest_vcpu = kvm_get_vcpu_by_id(vcpu->kvm, cpu_addr); BUG_ON(dest_vcpu == NULL); --- linux-5.19.0.orig/arch/s390/kvm/vsie.c +++ linux-5.19.0/arch/s390/kvm/vsie.c @@ -538,8 +538,10 @@ if (test_kvm_cpu_feat(vcpu->kvm, KVM_S390_VM_CPU_FEAT_CEI)) scb_s->eca |= scb_o->eca & ECA_CEI; /* Epoch Extension */ - if (test_kvm_facility(vcpu->kvm, 139)) + if (test_kvm_facility(vcpu->kvm, 139)) { scb_s->ecd |= scb_o->ecd & ECD_MEF; + scb_s->epdx = scb_o->epdx; + } /* etoken */ if (test_kvm_facility(vcpu->kvm, 156)) --- linux-5.19.0.orig/arch/s390/lib/uaccess.c +++ linux-5.19.0/arch/s390/lib/uaccess.c @@ -156,7 +156,7 @@ asm volatile( " lr 0,%[spec]\n" "0: mvcos 0(%1),0(%4),%0\n" - " jz 4f\n" + "6: jz 4f\n" "1: algr %0,%2\n" " slgr %1,%2\n" " j 0b\n" @@ -166,11 +166,11 @@ " clgr %0,%3\n" /* copy crosses next page boundary? */ " jnh 5f\n" "3: mvcos 0(%1),0(%4),%3\n" - " slgr %0,%3\n" + "7: slgr %0,%3\n" " j 5f\n" "4: slgr %0,%0\n" "5:\n" - EX_TABLE(0b,2b) EX_TABLE(3b,5b) + EX_TABLE(0b,2b) EX_TABLE(6b,2b) EX_TABLE(3b,5b) EX_TABLE(7b,5b) : "+a" (size), "+a" (to), "+a" (tmp1), "=a" (tmp2) : "a" (empty_zero_page), [spec] "d" (spec.val) : "cc", "memory", "0"); --- linux-5.19.0.orig/arch/s390/mm/fault.c +++ linux-5.19.0/arch/s390/mm/fault.c @@ -379,7 +379,9 @@ flags = FAULT_FLAG_DEFAULT; if (user_mode(regs)) flags |= FAULT_FLAG_USER; - if (access == VM_WRITE || is_write) + if (is_write) + access = VM_WRITE; + if (access == VM_WRITE) flags |= FAULT_FLAG_WRITE; mmap_read_lock(mm); --- linux-5.19.0.orig/arch/s390/mm/gmap.c +++ linux-5.19.0/arch/s390/mm/gmap.c @@ -2735,3 +2735,89 @@ mmput(mm); } EXPORT_SYMBOL_GPL(s390_reset_acc); + +/** + * s390_unlist_old_asce - Remove the topmost level of page tables from the + * list of page tables of the gmap. + * @gmap: the gmap whose table is to be removed + * + * On s390x, KVM keeps a list of all pages containing the page tables of the + * gmap (the CRST list). This list is used at tear down time to free all + * pages that are now not needed anymore. + * + * This function removes the topmost page of the tree (the one pointed to by + * the ASCE) from the CRST list. + * + * This means that it will not be freed when the VM is torn down, and needs + * to be handled separately by the caller, unless a leak is actually + * intended. Notice that this function will only remove the page from the + * list, the page will still be used as a top level page table (and ASCE). + */ +void s390_unlist_old_asce(struct gmap *gmap) +{ + struct page *old; + + old = virt_to_page(gmap->table); + spin_lock(&gmap->guest_table_lock); + list_del(&old->lru); + /* + * Sometimes the topmost page might need to be "removed" multiple + * times, for example if the VM is rebooted into secure mode several + * times concurrently, or if s390_replace_asce fails after calling + * s390_remove_old_asce and is attempted again later. In that case + * the old asce has been removed from the list, and therefore it + * will not be freed when the VM terminates, but the ASCE is still + * in use and still pointed to. + * A subsequent call to replace_asce will follow the pointer and try + * to remove the same page from the list again. + * Therefore it's necessary that the page of the ASCE has valid + * pointers, so list_del can work (and do nothing) without + * dereferencing stale or invalid pointers. + */ + INIT_LIST_HEAD(&old->lru); + spin_unlock(&gmap->guest_table_lock); +} +EXPORT_SYMBOL_GPL(s390_unlist_old_asce); + +/** + * s390_replace_asce - Try to replace the current ASCE of a gmap with a copy + * @gmap: the gmap whose ASCE needs to be replaced + * + * If the allocation of the new top level page table fails, the ASCE is not + * replaced. + * In any case, the old ASCE is always removed from the gmap CRST list. + * Therefore the caller has to make sure to save a pointer to it + * beforehand, unless a leak is actually intended. + */ +int s390_replace_asce(struct gmap *gmap) +{ + unsigned long asce; + struct page *page; + void *table; + + s390_unlist_old_asce(gmap); + + page = alloc_pages(GFP_KERNEL_ACCOUNT, CRST_ALLOC_ORDER); + if (!page) + return -ENOMEM; + table = page_to_virt(page); + memcpy(table, gmap->table, 1UL << (CRST_ALLOC_ORDER + PAGE_SHIFT)); + + /* + * The caller has to deal with the old ASCE, but here we make sure + * the new one is properly added to the CRST list, so that + * it will be freed when the VM is torn down. + */ + spin_lock(&gmap->guest_table_lock); + list_add(&page->lru, &gmap->crst_list); + spin_unlock(&gmap->guest_table_lock); + + /* Set new table origin while preserving existing ASCE control bits */ + asce = (gmap->asce & ~_ASCE_ORIGIN) | __pa(table); + WRITE_ONCE(gmap->asce, asce); + WRITE_ONCE(gmap->mm->context.gmap_asce, asce); + WRITE_ONCE(gmap->table, table); + + return 0; +} +EXPORT_SYMBOL_GPL(s390_replace_asce); --- linux-5.19.0.orig/arch/s390/mm/init.c +++ linux-5.19.0/arch/s390/mm/init.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include #include @@ -48,6 +47,7 @@ #include #include #include +#include #include pgd_t swapper_pg_dir[PTRS_PER_PGD] __section(".bss..swapper_pg_dir"); @@ -175,7 +175,7 @@ if (!is_prot_virt_guest()) return; - platform_set(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS); + virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc); /* make sure bounce buffers are shared */ swiotlb_init(true, SWIOTLB_FORCE | SWIOTLB_VERBOSE); --- linux-5.19.0.orig/arch/s390/pci/Makefile +++ linux-5.19.0/arch/s390/pci/Makefile @@ -5,5 +5,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_bus.o + pci_bus.o pci_kvm_hook.o obj-$(CONFIG_PCI_IOV) += pci_iov.o --- linux-5.19.0.orig/arch/s390/pci/pci.c +++ linux-5.19.0/arch/s390/pci/pci.c @@ -61,6 +61,12 @@ static struct kmem_cache *zdev_fmb_cache; +/* AEN structures that must be preserved over KVM module re-insertion */ +union zpci_sic_iib *zpci_aipb; +EXPORT_SYMBOL_GPL(zpci_aipb); +struct airq_iv *zpci_aif_sbv; +EXPORT_SYMBOL_GPL(zpci_aif_sbv); + struct zpci_dev *get_zdev_by_fid(u32 fid) { struct zpci_dev *tmp, *zdev = NULL; @@ -120,11 +126,13 @@ fib.pba = base; fib.pal = limit; fib.iota = iota | ZPCI_IOTA_RTTO_FLAG; + fib.gd = zdev->gisa; cc = zpci_mod_fc(req, &fib, &status); if (cc) zpci_dbg(3, "reg ioat fid:%x, cc:%d, status:%d\n", zdev->fid, cc, status); return cc; } +EXPORT_SYMBOL_GPL(zpci_register_ioat); /* Modify PCI: Unregister I/O address translation parameters */ int zpci_unregister_ioat(struct zpci_dev *zdev, u8 dmaas) @@ -133,6 +141,8 @@ struct zpci_fib fib = {0}; u8 cc, status; + fib.gd = zdev->gisa; + cc = zpci_mod_fc(req, &fib, &status); if (cc) zpci_dbg(3, "unreg ioat fid:%x, cc:%d, status:%d\n", zdev->fid, cc, status); @@ -160,6 +170,7 @@ atomic64_set(&zdev->unmapped_pages, 0); fib.fmb_addr = virt_to_phys(zdev->fmb); + fib.gd = zdev->gisa; cc = zpci_mod_fc(req, &fib, &status); if (cc) { kmem_cache_free(zdev_fmb_cache, zdev->fmb); @@ -178,6 +189,8 @@ if (!zdev->fmb) return -EINVAL; + fib.gd = zdev->gisa; + /* Function measurement is disabled if fmb address is zero */ cc = zpci_mod_fc(req, &fib, &status); if (cc == 3) /* Function already gone. */ @@ -700,6 +713,7 @@ zpci_update_fh(zdev, fh); return rc; } +EXPORT_SYMBOL_GPL(zpci_enable_device); int zpci_disable_device(struct zpci_dev *zdev) { @@ -723,6 +737,7 @@ } return rc; } +EXPORT_SYMBOL_GPL(zpci_disable_device); /** * zpci_hot_reset_device - perform a reset of the given zPCI function @@ -816,6 +831,7 @@ kref_init(&zdev->kref); mutex_init(&zdev->lock); + mutex_init(&zdev->kzdev_lock); rc = zpci_init_iommu(zdev); if (rc) --- linux-5.19.0.orig/arch/s390/pci/pci_bus.c +++ linux-5.19.0/arch/s390/pci/pci_bus.c @@ -145,9 +145,6 @@ struct zpci_dev *zdev; int devfn, rc, ret = 0; - if (!zbus->function[0]) - return 0; - for (devfn = 0; devfn < ZPCI_FUNCTIONS_PER_BUS; devfn++) { zdev = zbus->function[devfn]; if (zdev && zdev->state == ZPCI_FN_STATE_CONFIGURED) { @@ -184,26 +181,26 @@ /* zpci_bus_create_pci_bus - Create the PCI bus associated with this zbus * @zbus: the zbus holding the zdevices - * @f0: function 0 of the bus + * @fr: PCI root function that will determine the bus's domain, and bus speeed * @ops: the pci operations * - * Function zero is taken as a parameter as this is used to determine the - * domain, multifunction property and maximum bus speed of the entire bus. + * The PCI function @fr determines the domain (its UID), multifunction property + * and maximum bus speed of the entire bus. * * Return: 0 on success, an error code otherwise */ -static int zpci_bus_create_pci_bus(struct zpci_bus *zbus, struct zpci_dev *f0, struct pci_ops *ops) +static int zpci_bus_create_pci_bus(struct zpci_bus *zbus, struct zpci_dev *fr, struct pci_ops *ops) { struct pci_bus *bus; int domain; - domain = zpci_alloc_domain((u16)f0->uid); + domain = zpci_alloc_domain((u16)fr->uid); if (domain < 0) return domain; zbus->domain_nr = domain; - zbus->multifunction = f0->rid_available; - zbus->max_bus_speed = f0->max_bus_speed; + zbus->multifunction = fr->rid_available; + zbus->max_bus_speed = fr->max_bus_speed; /* * Note that the zbus->resources are taken over and zbus->resources @@ -303,47 +300,6 @@ } } -/* zpci_bus_create_hotplug_slots - Add hotplug slot(s) for device added to bus - * @zdev: the zPCI device that was newly added - * - * Add the hotplug slot(s) for the newly added PCI function. Normally this is - * simply the slot for the function itself. If however we are adding the - * function 0 on a zbus, it might be that we already registered functions on - * that zbus but could not create their hotplug slots yet so add those now too. - * - * Return: 0 on success, an error code otherwise - */ -static int zpci_bus_create_hotplug_slots(struct zpci_dev *zdev) -{ - struct zpci_bus *zbus = zdev->zbus; - int devfn, rc = 0; - - rc = zpci_init_slot(zdev); - if (rc) - return rc; - zdev->has_hp_slot = 1; - - if (zdev->devfn == 0 && zbus->multifunction) { - /* Now that function 0 is there we can finally create the - * hotplug slots for those functions with devfn != 0 that have - * been parked in zbus->function[] waiting for us to be able to - * create the PCI bus. - */ - for (devfn = 1; devfn < ZPCI_FUNCTIONS_PER_BUS; devfn++) { - zdev = zbus->function[devfn]; - if (zdev && !zdev->has_hp_slot) { - rc = zpci_init_slot(zdev); - if (rc) - return rc; - zdev->has_hp_slot = 1; - } - } - - } - - return rc; -} - static int zpci_bus_add_device(struct zpci_bus *zbus, struct zpci_dev *zdev) { int rc = -EINVAL; @@ -352,21 +308,19 @@ pr_err("devfn %04x is already assigned\n", zdev->devfn); return rc; } + zdev->zbus = zbus; zbus->function[zdev->devfn] = zdev; zpci_nb_devices++; - if (zbus->bus) { - if (zbus->multifunction && !zdev->rid_available) { - WARN_ONCE(1, "rid_available not set for multifunction\n"); - goto error; - } - - zpci_bus_create_hotplug_slots(zdev); - } else { - /* Hotplug slot will be created once function 0 appears */ - zbus->multifunction = 1; + if (zbus->multifunction && !zdev->rid_available) { + WARN_ONCE(1, "rid_available not set for multifunction\n"); + goto error; } + rc = zpci_init_slot(zdev); + if (rc) + goto error; + zdev->has_hp_slot = 1; return 0; @@ -400,7 +354,11 @@ return -ENOMEM; } - if (zdev->devfn == 0) { + if (!zbus->bus) { + /* The UID of the first PCI function registered with a zpci_bus + * is used as the domain number for that bus. Currently there + * is exactly one zpci_bus per domain. + */ rc = zpci_bus_create_pci_bus(zbus, zdev, ops); if (rc) goto error; --- linux-5.19.0.orig/arch/s390/pci/pci_clp.c +++ linux-5.19.0/arch/s390/pci/pci_clp.c @@ -106,6 +106,8 @@ zdev->max_msi = response->noi; zdev->fmb_update = response->mui; zdev->version = response->version; + zdev->maxstbl = response->maxstbl; + zdev->dtsm = response->dtsm; switch (response->version) { case 1: @@ -229,12 +231,16 @@ { struct clp_req_rsp_set_pci *rrb; int rc, retries = 100; + u32 gisa = 0; *fh = 0; rrb = clp_alloc_block(GFP_KERNEL); if (!rrb) return -ENOMEM; + if (command != CLP_SET_DISABLE_PCI_FN) + gisa = zdev->gisa; + do { memset(rrb, 0, sizeof(*rrb)); rrb->request.hdr.len = sizeof(rrb->request); @@ -243,6 +249,7 @@ rrb->request.fh = zdev->fh; rrb->request.oc = command; rrb->request.ndas = nr_dma_as; + rrb->request.gisa = gisa; rc = clp_req(rrb, CLP_LPS_PCI); if (rrb->response.hdr.rsp == CLP_RC_SETPCIFN_BUSY) { --- linux-5.19.0.orig/arch/s390/pci/pci_insn.c +++ linux-5.19.0/arch/s390/pci/pci_insn.c @@ -92,6 +92,7 @@ return cc; } +EXPORT_SYMBOL_GPL(zpci_mod_fc); /* Refresh PCI Translations */ static inline u8 __rpcit(u64 fn, u64 addr, u64 range, u8 *status) @@ -138,7 +139,7 @@ } /* Set Interruption Controls */ -int __zpci_set_irq_ctrl(u16 ctl, u8 isc, union zpci_sic_iib *iib) +int zpci_set_irq_ctrl(u16 ctl, u8 isc, union zpci_sic_iib *iib) { if (!test_facility(72)) return -EIO; @@ -149,6 +150,7 @@ return 0; } +EXPORT_SYMBOL_GPL(zpci_set_irq_ctrl); /* PCI Load */ static inline int ____pcilg(u64 *data, u64 req, u64 offset, u8 *status) --- linux-5.19.0.orig/arch/s390/pci/pci_irq.c +++ linux-5.19.0/arch/s390/pci/pci_irq.c @@ -11,16 +11,10 @@ #include #include +#include static enum {FLOATING, DIRECTED} irq_delivery; -#define SIC_IRQ_MODE_ALL 0 -#define SIC_IRQ_MODE_SINGLE 1 -#define SIC_IRQ_MODE_DIRECT 4 -#define SIC_IRQ_MODE_D_ALL 16 -#define SIC_IRQ_MODE_D_SINGLE 17 -#define SIC_IRQ_MODE_SET_CPU 18 - /* * summary bit vector * FLOATING - summary bit per function @@ -49,6 +43,7 @@ fib.fmt0.aibvo = 0; /* each zdev has its own interrupt vector */ fib.fmt0.aisb = virt_to_phys(zpci_sbv->vector) + (zdev->aisb / 64) * 8; fib.fmt0.aisbo = zdev->aisb & 63; + fib.gd = zdev->gisa; return zpci_mod_fc(req, &fib, &status) ? -EIO : 0; } @@ -60,6 +55,8 @@ struct zpci_fib fib = {0}; u8 cc, status; + fib.gd = zdev->gisa; + cc = zpci_mod_fc(req, &fib, &status); if (cc == 3 || (cc == 1 && status == 24)) /* Function already gone or IRQs already deregistered. */ @@ -78,6 +75,7 @@ fib.fmt = 1; fib.fmt1.noi = zdev->msi_nr_irqs; fib.fmt1.dibvo = zdev->msi_first_bit; + fib.gd = zdev->gisa; return zpci_mod_fc(req, &fib, &status) ? -EIO : 0; } @@ -90,6 +88,7 @@ u8 cc, status; fib.fmt = 1; + fib.gd = zdev->gisa; cc = zpci_mod_fc(req, &fib, &status); if (cc == 3 || (cc == 1 && status == 24)) /* Function already gone or IRQs already deregistered. */ @@ -153,6 +152,7 @@ static void zpci_handle_cpu_local_irq(bool rescan) { struct airq_iv *dibv = zpci_ibv[smp_processor_id()]; + union zpci_sic_iib iib = {{0}}; unsigned long bit; int irqs_on = 0; @@ -164,7 +164,7 @@ /* End of second scan with interrupts on. */ break; /* First scan complete, reenable interrupts. */ - if (zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC)) + if (zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC, &iib)) break; bit = 0; continue; @@ -192,6 +192,7 @@ static void zpci_handle_fallback_irq(void) { struct cpu_irq_data *cpu_data; + union zpci_sic_iib iib = {{0}}; unsigned long cpu; int irqs_on = 0; @@ -202,7 +203,7 @@ /* End of second scan with interrupts on. */ break; /* First scan complete, reenable interrupts. */ - if (zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC)) + if (zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC, &iib)) break; cpu = 0; continue; @@ -216,8 +217,11 @@ } } -static void zpci_directed_irq_handler(struct airq_struct *airq, bool floating) +static void zpci_directed_irq_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) { + bool floating = !tpi_info->directed_irq; + if (floating) { inc_irq_stat(IRQIO_PCF); zpci_handle_fallback_irq(); @@ -227,8 +231,10 @@ } } -static void zpci_floating_irq_handler(struct airq_struct *airq, bool floating) +static void zpci_floating_irq_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) { + union zpci_sic_iib iib = {{0}}; unsigned long si, ai; struct airq_iv *aibv; int irqs_on = 0; @@ -242,7 +248,7 @@ /* End of second scan with interrupts on. */ break; /* First scan complete, reenable interrupts. */ - if (zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC)) + if (zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC, &iib)) break; si = 0; continue; @@ -291,7 +297,7 @@ zdev->aisb = bit; /* Create adapter interrupt vector */ - zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA | AIRQ_IV_BITLOCK); + zdev->aibv = airq_iv_create(msi_vecs, AIRQ_IV_DATA | AIRQ_IV_BITLOCK, NULL); if (!zdev->aibv) return -ENOMEM; @@ -402,11 +408,12 @@ static void __init cpu_enable_directed_irq(void *unused) { union zpci_sic_iib iib = {{0}}; + union zpci_sic_iib ziib = {{0}}; iib.cdiib.dibv_addr = (u64) zpci_ibv[smp_processor_id()]->vector; - __zpci_set_irq_ctrl(SIC_IRQ_MODE_SET_CPU, 0, &iib); - zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC); + zpci_set_irq_ctrl(SIC_IRQ_MODE_SET_CPU, 0, &iib); + zpci_set_irq_ctrl(SIC_IRQ_MODE_D_SINGLE, PCI_ISC, &ziib); } static int __init zpci_directed_irq_init(void) @@ -414,14 +421,14 @@ union zpci_sic_iib iib = {{0}}; unsigned int cpu; - zpci_sbv = airq_iv_create(num_possible_cpus(), 0); + zpci_sbv = airq_iv_create(num_possible_cpus(), 0, NULL); if (!zpci_sbv) return -ENOMEM; iib.diib.isc = PCI_ISC; iib.diib.nr_cpus = num_possible_cpus(); iib.diib.disb_addr = virt_to_phys(zpci_sbv->vector); - __zpci_set_irq_ctrl(SIC_IRQ_MODE_DIRECT, 0, &iib); + zpci_set_irq_ctrl(SIC_IRQ_MODE_DIRECT, 0, &iib); zpci_ibv = kcalloc(num_possible_cpus(), sizeof(*zpci_ibv), GFP_KERNEL); @@ -436,7 +443,7 @@ zpci_ibv[cpu] = airq_iv_create(cache_line_size() * BITS_PER_BYTE, AIRQ_IV_DATA | AIRQ_IV_CACHELINE | - (!cpu ? AIRQ_IV_ALLOC : 0)); + (!cpu ? AIRQ_IV_ALLOC : 0), NULL); if (!zpci_ibv[cpu]) return -ENOMEM; } @@ -453,7 +460,7 @@ if (!zpci_ibv) return -ENOMEM; - zpci_sbv = airq_iv_create(ZPCI_NR_DEVICES, AIRQ_IV_ALLOC); + zpci_sbv = airq_iv_create(ZPCI_NR_DEVICES, AIRQ_IV_ALLOC, NULL); if (!zpci_sbv) goto out_free; @@ -466,6 +473,7 @@ int __init zpci_irq_init(void) { + union zpci_sic_iib iib = {{0}}; int rc; irq_delivery = sclp.has_dirq ? DIRECTED : FLOATING; @@ -497,7 +505,7 @@ * Enable floating IRQs (with suppression after one IRQ). When using * directed IRQs this enables the fallback path. */ - zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC); + zpci_set_irq_ctrl(SIC_IRQ_MODE_SINGLE, PCI_ISC, &iib); return 0; out_airq: --- linux-5.19.0.orig/arch/s390/pci/pci_kvm_hook.c +++ linux-5.19.0/arch/s390/pci/pci_kvm_hook.c @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * VFIO ZPCI devices support + * + * Copyright (C) IBM Corp. 2022. All rights reserved. + * Author(s): Pierre Morel + */ +#include + +struct zpci_kvm_hook zpci_kvm_hook; +EXPORT_SYMBOL_GPL(zpci_kvm_hook); --- linux-5.19.0.orig/arch/s390/pci/pci_mmio.c +++ linux-5.19.0/arch/s390/pci/pci_mmio.c @@ -64,7 +64,7 @@ asm volatile ( " sacf 256\n" "0: llgc %[tmp],0(%[src])\n" - " sllg %[val],%[val],8\n" + "4: sllg %[val],%[val],8\n" " aghi %[src],1\n" " ogr %[val],%[tmp]\n" " brctg %[cnt],0b\n" @@ -72,7 +72,7 @@ "2: ipm %[cc]\n" " srl %[cc],28\n" "3: sacf 768\n" - EX_TABLE(0b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b) + EX_TABLE(0b, 3b) EX_TABLE(4b, 3b) EX_TABLE(1b, 3b) EX_TABLE(2b, 3b) : [src] "+a" (src), [cnt] "+d" (cnt), [val] "+d" (val), [tmp] "=d" (tmp), @@ -215,10 +215,10 @@ "2: ahi %[shift],-8\n" " srlg %[tmp],%[val],0(%[shift])\n" "3: stc %[tmp],0(%[dst])\n" - " aghi %[dst],1\n" + "5: aghi %[dst],1\n" " brctg %[cnt],2b\n" "4: sacf 768\n" - EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) + EX_TABLE(0b, 4b) EX_TABLE(1b, 4b) EX_TABLE(3b, 4b) EX_TABLE(5b, 4b) : [ioaddr_len] "+&d" (ioaddr_len.pair), [cc] "+d" (cc), [val] "=d" (val), --- linux-5.19.0.orig/arch/sh/include/asm/sections.h +++ linux-5.19.0/arch/sh/include/asm/sections.h @@ -4,7 +4,7 @@ #include -extern long __machvec_start, __machvec_end; +extern char __machvec_start[], __machvec_end[]; extern char __uncached_start, __uncached_end; extern char __start_eh_frame[], __stop_eh_frame[]; --- linux-5.19.0.orig/arch/sh/kernel/machvec.c +++ linux-5.19.0/arch/sh/kernel/machvec.c @@ -20,8 +20,8 @@ #define MV_NAME_SIZE 32 #define for_each_mv(mv) \ - for ((mv) = (struct sh_machine_vector *)&__machvec_start; \ - (mv) && (unsigned long)(mv) < (unsigned long)&__machvec_end; \ + for ((mv) = (struct sh_machine_vector *)__machvec_start; \ + (mv) && (unsigned long)(mv) < (unsigned long)__machvec_end; \ (mv)++) static struct sh_machine_vector * __init get_mv_byname(const char *name) @@ -87,8 +87,8 @@ if (!machvec_selected) { unsigned long machvec_size; - machvec_size = ((unsigned long)&__machvec_end - - (unsigned long)&__machvec_start); + machvec_size = ((unsigned long)__machvec_end - + (unsigned long)__machvec_start); /* * Sanity check for machvec section alignment. Ensure @@ -102,7 +102,7 @@ * vector (usually the only one) from .machvec.init. */ if (machvec_size >= sizeof(struct sh_machine_vector)) - sh_mv = *(struct sh_machine_vector *)&__machvec_start; + sh_mv = *(struct sh_machine_vector *)__machvec_start; } pr_notice("Booting machvec: %s\n", get_system_type()); --- linux-5.19.0.orig/arch/sparc/include/asm/smp_32.h +++ linux-5.19.0/arch/sparc/include/asm/smp_32.h @@ -33,9 +33,6 @@ extern cpumask_t smp_commenced_mask; extern struct linux_prom_registers smp_penguin_ctable; -typedef void (*smpfunc_t)(unsigned long, unsigned long, unsigned long, - unsigned long, unsigned long); - void cpu_panic(void); /* @@ -57,7 +54,7 @@ void smp_info(struct seq_file *); struct sparc32_ipi_ops { - void (*cross_call)(smpfunc_t func, cpumask_t mask, unsigned long arg1, + void (*cross_call)(void *func, cpumask_t mask, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4); void (*resched)(int cpu); @@ -66,28 +63,28 @@ }; extern const struct sparc32_ipi_ops *sparc32_ipi_ops; -static inline void xc0(smpfunc_t func) +static inline void xc0(void *func) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask, 0, 0, 0, 0); } -static inline void xc1(smpfunc_t func, unsigned long arg1) +static inline void xc1(void *func, unsigned long arg1) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask, arg1, 0, 0, 0); } -static inline void xc2(smpfunc_t func, unsigned long arg1, unsigned long arg2) +static inline void xc2(void *func, unsigned long arg1, unsigned long arg2) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask, arg1, arg2, 0, 0); } -static inline void xc3(smpfunc_t func, unsigned long arg1, unsigned long arg2, +static inline void xc3(void *func, unsigned long arg1, unsigned long arg2, unsigned long arg3) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask, arg1, arg2, arg3, 0); } -static inline void xc4(smpfunc_t func, unsigned long arg1, unsigned long arg2, +static inline void xc4(void *func, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4) { sparc32_ipi_ops->cross_call(func, *cpu_online_mask, --- linux-5.19.0.orig/arch/sparc/kernel/leon_smp.c +++ linux-5.19.0/arch/sparc/kernel/leon_smp.c @@ -359,7 +359,7 @@ } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3; @@ -372,7 +372,7 @@ static DEFINE_SPINLOCK(cross_call_lock); /* Cross calls must be serialized, at least currently. */ -static void leon_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1, +static void leon_cross_call(void *func, cpumask_t mask, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4) { @@ -384,7 +384,7 @@ { /* If you make changes here, make sure gcc generates proper code... */ - register smpfunc_t f asm("i0") = func; + register void *f asm("i0") = func; register unsigned long a1 asm("i1") = arg1; register unsigned long a2 asm("i2") = arg2; register unsigned long a3 asm("i3") = arg3; @@ -444,11 +444,13 @@ /* Running cross calls. */ void leon_cross_call_irq(void) { + void (*func)(unsigned long, unsigned long, unsigned long, unsigned long, + unsigned long) = ccall_info.func; int i = smp_processor_id(); ccall_info.processors_in[i] = 1; - ccall_info.func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); + func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] = 1; } --- linux-5.19.0.orig/arch/sparc/kernel/sun4d_smp.c +++ linux-5.19.0/arch/sparc/kernel/sun4d_smp.c @@ -268,7 +268,7 @@ } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3; @@ -281,7 +281,7 @@ static DEFINE_SPINLOCK(cross_call_lock); /* Cross calls must be serialized, at least currently. */ -static void sun4d_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1, +static void sun4d_cross_call(void *func, cpumask_t mask, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4) { @@ -296,7 +296,7 @@ * If you make changes here, make sure * gcc generates proper code... */ - register smpfunc_t f asm("i0") = func; + register void *f asm("i0") = func; register unsigned long a1 asm("i1") = arg1; register unsigned long a2 asm("i2") = arg2; register unsigned long a3 asm("i3") = arg3; @@ -353,11 +353,13 @@ /* Running cross calls. */ void smp4d_cross_call_irq(void) { + void (*func)(unsigned long, unsigned long, unsigned long, unsigned long, + unsigned long) = ccall_info.func; int i = hard_smp_processor_id(); ccall_info.processors_in[i] = 1; - ccall_info.func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); + func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] = 1; } --- linux-5.19.0.orig/arch/sparc/kernel/sun4m_smp.c +++ linux-5.19.0/arch/sparc/kernel/sun4m_smp.c @@ -157,7 +157,7 @@ } static struct smp_funcall { - smpfunc_t func; + void *func; unsigned long arg1; unsigned long arg2; unsigned long arg3; @@ -170,7 +170,7 @@ static DEFINE_SPINLOCK(cross_call_lock); /* Cross calls must be serialized, at least currently. */ -static void sun4m_cross_call(smpfunc_t func, cpumask_t mask, unsigned long arg1, +static void sun4m_cross_call(void *func, cpumask_t mask, unsigned long arg1, unsigned long arg2, unsigned long arg3, unsigned long arg4) { @@ -230,11 +230,13 @@ /* Running cross calls. */ void smp4m_cross_call_irq(void) { + void (*func)(unsigned long, unsigned long, unsigned long, unsigned long, + unsigned long) = ccall_info.func; int i = smp_processor_id(); ccall_info.processors_in[i] = 1; - ccall_info.func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, - ccall_info.arg4, ccall_info.arg5); + func(ccall_info.arg1, ccall_info.arg2, ccall_info.arg3, ccall_info.arg4, + ccall_info.arg5); ccall_info.processors_out[i] = 1; } --- linux-5.19.0.orig/arch/sparc/mm/srmmu.c +++ linux-5.19.0/arch/sparc/mm/srmmu.c @@ -1636,19 +1636,19 @@ /* Local cross-calls. */ static void smp_flush_page_for_dma(unsigned long page) { - xc1((smpfunc_t) local_ops->page_for_dma, page); + xc1(local_ops->page_for_dma, page); local_ops->page_for_dma(page); } static void smp_flush_cache_all(void) { - xc0((smpfunc_t) local_ops->cache_all); + xc0(local_ops->cache_all); local_ops->cache_all(); } static void smp_flush_tlb_all(void) { - xc0((smpfunc_t) local_ops->tlb_all); + xc0(local_ops->tlb_all); local_ops->tlb_all(); } @@ -1659,7 +1659,7 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc1((smpfunc_t) local_ops->cache_mm, (unsigned long) mm); + xc1(local_ops->cache_mm, (unsigned long)mm); local_ops->cache_mm(mm); } } @@ -1671,7 +1671,7 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) { - xc1((smpfunc_t) local_ops->tlb_mm, (unsigned long) mm); + xc1(local_ops->tlb_mm, (unsigned long)mm); if (atomic_read(&mm->mm_users) == 1 && current->active_mm == mm) cpumask_copy(mm_cpumask(mm), cpumask_of(smp_processor_id())); @@ -1691,8 +1691,8 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc3((smpfunc_t) local_ops->cache_range, - (unsigned long) vma, start, end); + xc3(local_ops->cache_range, (unsigned long)vma, start, + end); local_ops->cache_range(vma, start, end); } } @@ -1708,8 +1708,8 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc3((smpfunc_t) local_ops->tlb_range, - (unsigned long) vma, start, end); + xc3(local_ops->tlb_range, (unsigned long)vma, start, + end); local_ops->tlb_range(vma, start, end); } } @@ -1723,8 +1723,7 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc2((smpfunc_t) local_ops->cache_page, - (unsigned long) vma, page); + xc2(local_ops->cache_page, (unsigned long)vma, page); local_ops->cache_page(vma, page); } } @@ -1738,8 +1737,7 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc2((smpfunc_t) local_ops->tlb_page, - (unsigned long) vma, page); + xc2(local_ops->tlb_page, (unsigned long)vma, page); local_ops->tlb_page(vma, page); } } @@ -1753,7 +1751,7 @@ * XXX This experiment failed, research further... -DaveM */ #if 1 - xc1((smpfunc_t) local_ops->page_to_ram, page); + xc1(local_ops->page_to_ram, page); #endif local_ops->page_to_ram(page); } @@ -1764,8 +1762,7 @@ cpumask_copy(&cpu_mask, mm_cpumask(mm)); cpumask_clear_cpu(smp_processor_id(), &cpu_mask); if (!cpumask_empty(&cpu_mask)) - xc2((smpfunc_t) local_ops->sig_insns, - (unsigned long) mm, insn_addr); + xc2(local_ops->sig_insns, (unsigned long)mm, insn_addr); local_ops->sig_insns(mm, insn_addr); } --- linux-5.19.0.orig/arch/um/Makefile +++ linux-5.19.0/arch/um/Makefile @@ -132,10 +132,18 @@ # The wrappers will select whether using "malloc" or the kernel allocator. LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc +# Avoid binutils 2.39+ warnings by marking the stack non-executable and +# ignorning warnings for the kallsyms sections. +LDFLAGS_EXECSTACK = -z noexecstack +ifeq ($(CONFIG_LD_IS_BFD),y) +LDFLAGS_EXECSTACK += $(call ld-option,--no-warn-rwx-segments) +endif + LD_FLAGS_CMDLINE = $(foreach opt,$(KBUILD_LDFLAGS),-Wl,$(opt)) # Used by link-vmlinux.sh which has special support for um link export CFLAGS_vmlinux := $(LINK-y) $(LINK_WRAPS) $(LD_FLAGS_CMDLINE) +export LDFLAGS_vmlinux := $(LDFLAGS_EXECSTACK) # When cleaning we don't include .config, so we don't include # TT or skas makefiles and don't clean skas_ptregs.h. --- linux-5.19.0.orig/arch/um/drivers/random.c +++ linux-5.19.0/arch/um/drivers/random.c @@ -28,7 +28,7 @@ * protects against a module being loaded twice at the same time. */ static int random_fd = -1; -static struct hwrng hwrng = { 0, }; +static struct hwrng hwrng; static DECLARE_COMPLETION(have_data); static int rng_dev_read(struct hwrng *rng, void *buf, size_t max, bool block) --- linux-5.19.0.orig/arch/um/include/asm/archrandom.h +++ linux-5.19.0/arch/um/include/asm/archrandom.h @@ -0,0 +1,30 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __ASM_UM_ARCHRANDOM_H__ +#define __ASM_UM_ARCHRANDOM_H__ + +#include + +/* This is from , but better not to #include that in a global header here. */ +ssize_t os_getrandom(void *buf, size_t len, unsigned int flags); + +static inline bool __must_check arch_get_random_long(unsigned long *v) +{ + return os_getrandom(v, sizeof(*v), 0) == sizeof(*v); +} + +static inline bool __must_check arch_get_random_int(unsigned int *v) +{ + return os_getrandom(v, sizeof(*v), 0) == sizeof(*v); +} + +static inline bool __must_check arch_get_random_seed_long(unsigned long *v) +{ + return false; +} + +static inline bool __must_check arch_get_random_seed_int(unsigned int *v) +{ + return false; +} + +#endif --- linux-5.19.0.orig/arch/um/include/asm/xor.h +++ linux-5.19.0/arch/um/include/asm/xor.h @@ -18,7 +18,7 @@ #undef XOR_SELECT_TEMPLATE /* pick an arbitrary one - measuring isn't possible with inf-cpu */ #define XOR_SELECT_TEMPLATE(x) \ - (time_travel_mode == TT_MODE_INFCPU ? TT_CPU_INF_XOR_DEFAULT : x)) + (time_travel_mode == TT_MODE_INFCPU ? TT_CPU_INF_XOR_DEFAULT : x) #endif #endif --- linux-5.19.0.orig/arch/um/include/shared/os.h +++ linux-5.19.0/arch/um/include/shared/os.h @@ -11,6 +11,12 @@ #include #include #include +/* This is to get size_t */ +#ifndef __UM_HOST__ +#include +#else +#include +#endif #define CATCH_EINTR(expr) while ((errno = 0, ((expr) < 0)) && (errno == EINTR)) @@ -243,6 +249,7 @@ extern int raw(int fd); extern void setup_machinename(char *machine_out); extern void setup_hostinfo(char *buf, int len); +extern ssize_t os_getrandom(void *buf, size_t len, unsigned int flags); extern void os_dump_core(void) __attribute__ ((noreturn)); extern void um_early_printk(const char *s, unsigned int n); extern void os_fix_helper_signals(void); --- linux-5.19.0.orig/arch/um/kernel/um_arch.c +++ linux-5.19.0/arch/um/kernel/um_arch.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include @@ -32,7 +33,7 @@ #include "um_arch.h" #define DEFAULT_COMMAND_LINE_ROOT "root=98:0" -#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty" +#define DEFAULT_COMMAND_LINE_CONSOLE "console=tty0" /* Changed in add_arg and setup_arch, which run before SMP is started */ static char __initdata command_line[COMMAND_LINE_SIZE] = { 0 }; @@ -95,7 +96,7 @@ static void *c_start(struct seq_file *m, loff_t *pos) { - return *pos < NR_CPUS ? cpu_data + *pos : NULL; + return *pos < nr_cpu_ids ? cpu_data + *pos : NULL; } static void *c_next(struct seq_file *m, void *v, loff_t *pos) @@ -406,6 +407,8 @@ void __init setup_arch(char **cmdline_p) { + u8 rng_seed[32]; + stack_protections((unsigned long) &init_thread_info); setup_physmem(uml_physmem, uml_reserved, physmem_size, highmem); mem_total_pages(physmem_size, iomem_size, highmem); @@ -416,6 +419,11 @@ strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); *cmdline_p = command_line; setup_hostinfo(host_info, sizeof host_info); + + if (os_getrandom(rng_seed, sizeof(rng_seed), 0) == sizeof(rng_seed)) { + add_bootloader_randomness(rng_seed, sizeof(rng_seed)); + memzero_explicit(rng_seed, sizeof(rng_seed)); + } } void __init check_bugs(void) --- linux-5.19.0.orig/arch/um/os-Linux/skas/process.c +++ linux-5.19.0/arch/um/os-Linux/skas/process.c @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -707,10 +708,24 @@ UML_LONGJMP(&initial_jmpbuf, INIT_JMP_HALT); } +static bool noreboot; + +static int __init noreboot_cmd_param(char *str, int *add) +{ + noreboot = true; + return 0; +} + +__uml_setup("noreboot", noreboot_cmd_param, +"noreboot\n" +" Rather than rebooting, exit always, akin to QEMU's -no-reboot option.\n" +" This is useful if you're using CONFIG_PANIC_TIMEOUT in order to catch\n" +" crashes in CI\n"); + void reboot_skas(void) { block_signals_trace(); - UML_LONGJMP(&initial_jmpbuf, INIT_JMP_REBOOT); + UML_LONGJMP(&initial_jmpbuf, noreboot ? INIT_JMP_HALT : INIT_JMP_REBOOT); } void __switch_mm(struct mm_id *mm_idp) --- linux-5.19.0.orig/arch/um/os-Linux/util.c +++ linux-5.19.0/arch/um/os-Linux/util.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -96,6 +97,11 @@ exit(127); } +ssize_t os_getrandom(void *buf, size_t len, unsigned int flags) +{ + return getrandom(buf, len, flags); +} + /* * UML helper threads must not handle SIGWINCH/INT/TERM */ --- linux-5.19.0.orig/arch/x86/Kconfig +++ linux-5.19.0/arch/x86/Kconfig @@ -278,6 +278,7 @@ select SYSCTL_EXCEPTION_TRACE select THREAD_INFO_IN_TASK select TRACE_IRQFLAGS_SUPPORT + select TRACE_IRQFLAGS_NMI_SUPPORT select USER_STACKTRACE_SUPPORT select VIRT_TO_BUS select HAVE_ARCH_KCSAN if X86_64 @@ -449,6 +450,11 @@ This allows 32-bit apic IDs (so it can support very large systems), and accesses the local apic via MSRs not via mmio. + Some Intel systems circa 2022 and later are locked into x2APIC mode + and can not fall back to the legacy APIC modes if SGX or TDX are + enabled in the BIOS. They will be unable to boot without enabling + this option. + If you don't know what to do here, say N. config X86_MPPARSE @@ -1929,7 +1935,7 @@ config X86_SGX bool "Software Guard eXtensions (SGX)" - depends on X86_64 && CPU_SUP_INTEL + depends on X86_64 && CPU_SUP_INTEL && X86_X2APIC depends on CRYPTO=y depends on CRYPTO_SHA256=y select SRCU @@ -1966,7 +1972,6 @@ config EFI_STUB bool "EFI stub support" depends on EFI - depends on $(cc-option,-mabi=ms) || X86_32 select RELOCATABLE help This kernel feature allows a bzImage to be loaded directly --- linux-5.19.0.orig/arch/x86/Kconfig.debug +++ linux-5.19.0/arch/x86/Kconfig.debug @@ -1,8 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 -config TRACE_IRQFLAGS_NMI_SUPPORT - def_bool y - config EARLY_PRINTK_USB bool --- linux-5.19.0.orig/arch/x86/boot/Makefile +++ linux-5.19.0/arch/x86/boot/Makefile @@ -103,7 +103,7 @@ AFLAGS_header.o += -I$(objtree)/$(obj) $(obj)/header.o: $(obj)/zoffset.h -LDFLAGS_setup.elf := -m elf_i386 -T +LDFLAGS_setup.elf := -m elf_i386 -z noexecstack -T $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE $(call if_changed,ld) --- linux-5.19.0.orig/arch/x86/boot/compressed/Makefile +++ linux-5.19.0/arch/x86/boot/compressed/Makefile @@ -69,6 +69,10 @@ ifdef CONFIG_LD_ORPHAN_WARN LDFLAGS_vmlinux += --orphan-handling=warn endif +LDFLAGS_vmlinux += -z noexecstack +ifeq ($(CONFIG_LD_IS_BFD),y) +LDFLAGS_vmlinux += $(call ld-option,--no-warn-rwx-segments) +endif LDFLAGS_vmlinux += -T hostprogs := mkpiggy --- linux-5.19.0.orig/arch/x86/boot/compressed/misc.h +++ linux-5.19.0/arch/x86/boot/compressed/misc.h @@ -132,7 +132,17 @@ void snp_set_page_shared(unsigned long paddr); void sev_prep_identity_maps(unsigned long top_level_pgt); #else -static inline void sev_enable(struct boot_params *bp) { } +static inline void sev_enable(struct boot_params *bp) +{ + /* + * bp->cc_blob_address should only be set by boot/compressed kernel. + * Initialize it to 0 unconditionally (thus here in this stub too) to + * ensure that uninitialized values from buggy bootloaders aren't + * propagated. + */ + if (bp) + bp->cc_blob_address = 0; +} static inline void sev_es_shutdown_ghcb(void) { } static inline bool sev_es_check_ghcb_fault(unsigned long address) { --- linux-5.19.0.orig/arch/x86/boot/compressed/sev.c +++ linux-5.19.0/arch/x86/boot/compressed/sev.c @@ -277,6 +277,14 @@ bool snp; /* + * bp->cc_blob_address should only be set by boot/compressed kernel. + * Initialize it to 0 to ensure that uninitialized values from + * buggy bootloaders aren't propagated. + */ + if (bp) + bp->cc_blob_address = 0; + + /* * Setup/preliminary detection of SNP. This will be sanity-checked * against CPUID/MSR values later. */ --- linux-5.19.0.orig/arch/x86/boot/video-vga.c +++ linux-5.19.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-5.19.0.orig/arch/x86/coco/tdx/tdx.c +++ linux-5.19.0/arch/x86/coco/tdx/tdx.c @@ -5,6 +5,8 @@ #define pr_fmt(fmt) "tdx: " fmt #include +#include +#include #include #include #include @@ -15,6 +17,7 @@ /* TDX module Call Leaf IDs */ #define TDX_GET_INFO 1 #define TDX_GET_VEINFO 3 +#define TDX_GET_REPORT 4 #define TDX_ACCEPT_PAGE 6 /* TDX hypercall Leaf IDs */ @@ -34,6 +37,14 @@ #define VE_GET_PORT_NUM(e) ((e) >> 16) #define VE_IS_IO_STRING(e) ((e) & BIT(4)) +#define ATTR_SEPT_VE_DISABLE BIT(28) + +/* TDX Module call error codes */ +#define TDCALL_RETURN_CODE(a) ((a) >> 32) +#define TDCALL_INVALID_OPERAND 0xc0000100 + +#define TDREPORT_SUBTYPE_0 0 + /* * Wrapper for standard use of __tdx_hypercall with no output aside from * return code. @@ -98,10 +109,42 @@ panic("TDCALL %lld failed (Buggy TDX module!)\n", fn); } -static u64 get_cc_mask(void) +/** + * tdx_mcall_get_report0() - Wrapper to get TDREPORT0 (a.k.a. TDREPORT + * subtype 0) using TDG.MR.REPORT TDCALL. + * @reportdata: Address of the input buffer which contains user-defined + * REPORTDATA to be included into TDREPORT. + * @tdreport: Address of the output buffer to store TDREPORT. + * + * Refer to section titled "TDG.MR.REPORT leaf" in the TDX Module + * v1.0 specification for more information on TDG.MR.REPORT TDCALL. + * It is used in the TDX guest driver module to get the TDREPORT0. + * + * Return 0 on success, -EINVAL for invalid operands, or -EIO on + * other TDCALL failures. + */ +int tdx_mcall_get_report0(u8 *reportdata, u8 *tdreport) +{ + u64 ret; + + ret = __tdx_module_call(TDX_GET_REPORT, virt_to_phys(tdreport), + virt_to_phys(reportdata), TDREPORT_SUBTYPE_0, + 0, NULL); + if (ret) { + if (TDCALL_RETURN_CODE(ret) == TDCALL_INVALID_OPERAND) + return -EINVAL; + return -EIO; + } + + return 0; +} +EXPORT_SYMBOL_GPL(tdx_mcall_get_report0); + +static void tdx_parse_tdinfo(u64 *cc_mask) { struct tdx_module_output out; unsigned int gpa_width; + u64 td_attr; /* * TDINFO TDX module call is used to get the TD execution environment @@ -109,19 +152,27 @@ * information, etc. More details about the ABI can be found in TDX * Guest-Host-Communication Interface (GHCI), section 2.4.2 TDCALL * [TDG.VP.INFO]. + */ + tdx_module_call(TDX_GET_INFO, 0, 0, 0, 0, &out); + + /* + * The highest bit of a guest physical address is the "sharing" bit. + * Set it for shared pages and clear it for private pages. * * The GPA width that comes out of this call is critical. TDX guests * can not meaningfully run without it. */ - tdx_module_call(TDX_GET_INFO, 0, 0, 0, 0, &out); - gpa_width = out.rcx & GENMASK(5, 0); + *cc_mask = BIT_ULL(gpa_width - 1); /* - * The highest bit of a guest physical address is the "sharing" bit. - * Set it for shared pages and clear it for private pages. + * The kernel can not handle #VE's when accessing normal kernel + * memory. Ensure that no #VE will be delivered for accesses to + * TD-private memory. Only VMM-shared memory (MMIO) will #VE. */ - return BIT_ULL(gpa_width - 1); + td_attr = out.rdx; + if (!(td_attr & ATTR_SEPT_VE_DISABLE)) + panic("TD misconfiguration: SEPT_VE_DISABLE attibute must be set.\n"); } /* @@ -758,7 +809,7 @@ setup_force_cpu_cap(X86_FEATURE_TDX_GUEST); cc_set_vendor(CC_VENDOR_INTEL); - cc_mask = get_cc_mask(); + tdx_parse_tdinfo(&cc_mask); cc_set_mask(cc_mask); /* --- linux-5.19.0.orig/arch/x86/crypto/Makefile +++ linux-5.19.0/arch/x86/crypto/Makefile @@ -61,9 +61,7 @@ obj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o sha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o -obj-$(CONFIG_CRYPTO_BLAKE2S_X86) += blake2s-x86_64.o -blake2s-x86_64-y := blake2s-shash.o -obj-$(if $(CONFIG_CRYPTO_BLAKE2S_X86),y) += libblake2s-x86_64.o +obj-$(CONFIG_CRYPTO_BLAKE2S_X86) += libblake2s-x86_64.o libblake2s-x86_64-y := blake2s-core.o blake2s-glue.o obj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o --- linux-5.19.0.orig/arch/x86/crypto/blake2s-glue.c +++ linux-5.19.0/arch/x86/crypto/blake2s-glue.c @@ -4,7 +4,6 @@ */ #include -#include #include #include @@ -33,7 +32,7 @@ /* SIMD disables preemption, so relax after processing each page. */ BUILD_BUG_ON(SZ_4K / BLAKE2S_BLOCK_SIZE < 8); - if (!static_branch_likely(&blake2s_use_ssse3) || !crypto_simd_usable()) { + if (!static_branch_likely(&blake2s_use_ssse3) || !may_use_simd()) { blake2s_compress_generic(state, block, nblocks, inc); return; } --- linux-5.19.0.orig/arch/x86/entry/Makefile +++ linux-5.19.0/arch/x86/entry/Makefile @@ -11,12 +11,13 @@ CFLAGS_common.o += -fno-stack-protector -obj-y := entry.o entry_$(BITS).o thunk_$(BITS).o syscall_$(BITS).o +obj-y := entry.o entry_$(BITS).o syscall_$(BITS).o obj-y += common.o obj-y += vdso/ obj-y += vsyscall/ +obj-$(CONFIG_PREEMPTION) += thunk_$(BITS).o obj-$(CONFIG_IA32_EMULATION) += entry_64_compat.o syscall_32.o obj-$(CONFIG_X86_X32_ABI) += syscall_x32.o --- linux-5.19.0.orig/arch/x86/entry/entry_64_compat.S +++ linux-5.19.0/arch/x86/entry/entry_64_compat.S @@ -311,7 +311,7 @@ * Interrupts are off on entry. */ ASM_CLAC /* Do this early to minimize exposure */ - SWAPGS + ALTERNATIVE "swapgs", "", X86_FEATURE_XENPV /* * User tracing code (ptrace or signal handlers) might assume that --- linux-5.19.0.orig/arch/x86/entry/thunk_32.S +++ linux-5.19.0/arch/x86/entry/thunk_32.S @@ -29,10 +29,8 @@ SYM_CODE_END(\name) .endm -#ifdef CONFIG_PREEMPTION THUNK preempt_schedule_thunk, preempt_schedule THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace EXPORT_SYMBOL(preempt_schedule_thunk) EXPORT_SYMBOL(preempt_schedule_notrace_thunk) -#endif --- linux-5.19.0.orig/arch/x86/entry/thunk_64.S +++ linux-5.19.0/arch/x86/entry/thunk_64.S @@ -31,14 +31,11 @@ _ASM_NOKPROBE(\name) .endm -#ifdef CONFIG_PREEMPTION THUNK preempt_schedule_thunk, preempt_schedule THUNK preempt_schedule_notrace_thunk, preempt_schedule_notrace EXPORT_SYMBOL(preempt_schedule_thunk) EXPORT_SYMBOL(preempt_schedule_notrace_thunk) -#endif -#ifdef CONFIG_PREEMPTION SYM_CODE_START_LOCAL_NOALIGN(__thunk_restore) popq %r11 popq %r10 @@ -53,4 +50,3 @@ RET _ASM_NOKPROBE(__thunk_restore) SYM_CODE_END(__thunk_restore) -#endif --- linux-5.19.0.orig/arch/x86/entry/vdso/Makefile +++ linux-5.19.0/arch/x86/entry/vdso/Makefile @@ -180,7 +180,7 @@ sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' VDSO_LDFLAGS = -shared --hash-style=both --build-id=sha1 \ - $(call ld-option, --eh-frame-hdr) -Bsymbolic + $(call ld-option, --eh-frame-hdr) -Bsymbolic -z noexecstack GCOV_PROFILE := n quiet_cmd_vdso_and_check = VDSO $@ --- linux-5.19.0.orig/arch/x86/entry/vdso/vdso.lds.S +++ linux-5.19.0/arch/x86/entry/vdso/vdso.lds.S @@ -27,7 +27,9 @@ __vdso_time; clock_getres; __vdso_clock_getres; +#ifdef CONFIG_X86_SGX __vdso_sgx_enter_enclave; +#endif local: *; }; } --- linux-5.19.0.orig/arch/x86/events/amd/core.c +++ linux-5.19.0/arch/x86/events/amd/core.c @@ -896,8 +896,7 @@ pmu_enabled = cpuc->enabled; cpuc->enabled = 0; - /* stop everything (includes BRS) */ - amd_pmu_disable_all(); + amd_brs_disable_all(); /* Drain BRS is in use (could be inactive) */ if (cpuc->lbr_users) @@ -908,7 +907,7 @@ cpuc->enabled = pmu_enabled; if (pmu_enabled) - amd_pmu_enable_all(0); + amd_brs_enable_all(); return amd_pmu_adjust_nmi_window(handled); } --- linux-5.19.0.orig/arch/x86/events/intel/core.c +++ linux-5.19.0/arch/x86/events/intel/core.c @@ -2101,6 +2101,15 @@ EVENT_EXTRA_END }; +EVENT_ATTR_STR(mem-loads, mem_ld_grt, "event=0xd0,umask=0x5,ldlat=3"); +EVENT_ATTR_STR(mem-stores, mem_st_grt, "event=0xd0,umask=0x6"); + +static struct attribute *grt_mem_attrs[] = { + EVENT_PTR(mem_ld_grt), + EVENT_PTR(mem_st_grt), + NULL +}; + static struct extra_reg intel_grt_extra_regs[] __read_mostly = { /* must define OFFCORE_RSP_X first, see intel_fixup_er() */ INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x3fffffffffull, RSP_0), @@ -4141,6 +4150,8 @@ { struct event_constraint *c; + c = intel_get_event_constraints(cpuc, idx, event); + /* * :ppp means to do reduced skid PEBS, * which is available on PMC0 and fixed counter 0. @@ -4153,8 +4164,6 @@ return &counter0_constraint; } - c = intel_get_event_constraints(cpuc, idx, event); - return c; } @@ -4783,6 +4792,7 @@ 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_X, 11, 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), @@ -5874,6 +5884,36 @@ name = "Tremont"; break; + case INTEL_FAM6_ALDERLAKE_N: + x86_pmu.mid_ack = true; + memcpy(hw_cache_event_ids, glp_hw_cache_event_ids, + sizeof(hw_cache_event_ids)); + memcpy(hw_cache_extra_regs, tnt_hw_cache_extra_regs, + sizeof(hw_cache_extra_regs)); + hw_cache_event_ids[C(ITLB)][C(OP_READ)][C(RESULT_ACCESS)] = -1; + + x86_pmu.event_constraints = intel_slm_event_constraints; + x86_pmu.pebs_constraints = intel_grt_pebs_event_constraints; + x86_pmu.extra_regs = intel_grt_extra_regs; + + x86_pmu.pebs_aliases = NULL; + x86_pmu.pebs_prec_dist = true; + x86_pmu.pebs_block = true; + x86_pmu.lbr_pt_coexist = true; + x86_pmu.flags |= PMU_FL_HAS_RSP_1; + x86_pmu.flags |= PMU_FL_INSTR_LATENCY; + + intel_pmu_pebs_data_source_grt(); + x86_pmu.pebs_latency_data = adl_latency_data_small; + x86_pmu.get_event_constraints = tnt_get_event_constraints; + x86_pmu.limit_period = spr_limit_period; + td_attr = tnt_events_attrs; + mem_attr = grt_mem_attrs; + extra_attr = nhm_format_attr; + pr_cont("Gracemont events, "); + name = "gracemont"; + break; + case INTEL_FAM6_WESTMERE: case INTEL_FAM6_WESTMERE_EP: case INTEL_FAM6_WESTMERE_EX: @@ -6216,7 +6256,6 @@ case INTEL_FAM6_ALDERLAKE: case INTEL_FAM6_ALDERLAKE_L: - case INTEL_FAM6_ALDERLAKE_N: case INTEL_FAM6_RAPTORLAKE: case INTEL_FAM6_RAPTORLAKE_P: /* @@ -6241,7 +6280,8 @@ x86_pmu.flags |= PMU_FL_INSTR_LATENCY; x86_pmu.flags |= PMU_FL_MEM_LOADS_AUX; x86_pmu.lbr_pt_coexist = true; - intel_pmu_pebs_data_source_skl(false); + intel_pmu_pebs_data_source_adl(); + x86_pmu.pebs_latency_data = adl_latency_data_small; x86_pmu.num_topdown_events = 8; x86_pmu.update_topdown_event = adl_update_topdown_event; x86_pmu.set_topdown_event_period = adl_set_topdown_event_period; --- linux-5.19.0.orig/arch/x86/events/intel/ds.c +++ linux-5.19.0/arch/x86/events/intel/ds.c @@ -94,15 +94,45 @@ pebs_data_source[0x07] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HITM); } -void __init intel_pmu_pebs_data_source_skl(bool pmem) +static void __init __intel_pmu_pebs_data_source_skl(bool pmem, u64 *data_source) { u64 pmem_or_l4 = pmem ? LEVEL(PMEM) : LEVEL(L4); - pebs_data_source[0x08] = OP_LH | pmem_or_l4 | P(SNOOP, HIT); - pebs_data_source[0x09] = OP_LH | pmem_or_l4 | REM | P(SNOOP, HIT); - pebs_data_source[0x0b] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, NONE); - pebs_data_source[0x0c] = OP_LH | LEVEL(ANY_CACHE) | REM | P(SNOOPX, FWD); - pebs_data_source[0x0d] = OP_LH | LEVEL(ANY_CACHE) | REM | P(SNOOP, HITM); + data_source[0x08] = OP_LH | pmem_or_l4 | P(SNOOP, HIT); + data_source[0x09] = OP_LH | pmem_or_l4 | REM | P(SNOOP, HIT); + data_source[0x0b] = OP_LH | LEVEL(RAM) | REM | P(SNOOP, NONE); + data_source[0x0c] = OP_LH | LEVEL(ANY_CACHE) | REM | P(SNOOPX, FWD); + data_source[0x0d] = OP_LH | LEVEL(ANY_CACHE) | REM | P(SNOOP, HITM); +} + +void __init intel_pmu_pebs_data_source_skl(bool pmem) +{ + __intel_pmu_pebs_data_source_skl(pmem, pebs_data_source); +} + +static void __init __intel_pmu_pebs_data_source_grt(u64 *data_source) +{ + data_source[0x05] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HIT); + data_source[0x06] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOP, HITM); + data_source[0x08] = OP_LH | P(LVL, L3) | LEVEL(L3) | P(SNOOPX, FWD); +} + +void __init intel_pmu_pebs_data_source_grt(void) +{ + __intel_pmu_pebs_data_source_grt(pebs_data_source); +} + +void __init intel_pmu_pebs_data_source_adl(void) +{ + u64 *data_source; + + data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_CORE_IDX].pebs_data_source; + memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); + __intel_pmu_pebs_data_source_skl(false, data_source); + + data_source = x86_pmu.hybrid_pmu[X86_HYBRID_PMU_ATOM_IDX].pebs_data_source; + memcpy(data_source, pebs_data_source, sizeof(pebs_data_source)); + __intel_pmu_pebs_data_source_grt(data_source); } static u64 precise_store_data(u64 status) @@ -171,7 +201,50 @@ return dse.val; } -static u64 load_latency_data(u64 status) +static inline void pebs_set_tlb_lock(u64 *val, bool tlb, bool lock) +{ + /* + * TLB access + * 0 = did not miss 2nd level TLB + * 1 = missed 2nd level TLB + */ + if (tlb) + *val |= P(TLB, MISS) | P(TLB, L2); + else + *val |= P(TLB, HIT) | P(TLB, L1) | P(TLB, L2); + + /* locked prefix */ + if (lock) + *val |= P(LOCK, LOCKED); +} + +/* Retrieve the latency data for e-core of ADL */ +u64 adl_latency_data_small(struct perf_event *event, u64 status) +{ + union intel_x86_pebs_dse dse; + u64 val; + + WARN_ON_ONCE(hybrid_pmu(event->pmu)->cpu_type == hybrid_big); + + dse.val = status; + + val = hybrid_var(event->pmu, pebs_data_source)[dse.ld_dse]; + + /* + * For the atom core on ADL, + * bit 4: lock, bit 5: TLB access. + */ + pebs_set_tlb_lock(&val, dse.ld_locked, dse.ld_stlb_miss); + + if (dse.ld_data_blk) + val |= P(BLK, DATA); + else + val |= P(BLK, NA); + + return val; +} + +static u64 load_latency_data(struct perf_event *event, u64 status) { union intel_x86_pebs_dse dse; u64 val; @@ -181,7 +254,7 @@ /* * use the mapping table for bit 0-3 */ - val = pebs_data_source[dse.ld_dse]; + val = hybrid_var(event->pmu, pebs_data_source)[dse.ld_dse]; /* * Nehalem models do not support TLB, Lock infos @@ -190,21 +263,8 @@ val |= P(TLB, NA) | P(LOCK, NA); return val; } - /* - * bit 4: TLB access - * 0 = did not miss 2nd level TLB - * 1 = missed 2nd level TLB - */ - if (dse.ld_stlb_miss) - val |= P(TLB, MISS) | P(TLB, L2); - else - val |= P(TLB, HIT) | P(TLB, L1) | P(TLB, L2); - /* - * bit 5: locked prefix - */ - if (dse.ld_locked) - val |= P(LOCK, LOCKED); + pebs_set_tlb_lock(&val, dse.ld_stlb_miss, dse.ld_locked); /* * Ice Lake and earlier models do not support block infos. @@ -233,9 +293,10 @@ return val; } -static u64 store_latency_data(u64 status) +static u64 store_latency_data(struct perf_event *event, u64 status) { union intel_x86_pebs_dse dse; + union perf_mem_data_src src; u64 val; dse.val = status; @@ -243,27 +304,20 @@ /* * use the mapping table for bit 0-3 */ - val = pebs_data_source[dse.st_lat_dse]; + val = hybrid_var(event->pmu, pebs_data_source)[dse.st_lat_dse]; - /* - * bit 4: TLB access - * 0 = did not miss 2nd level TLB - * 1 = missed 2nd level TLB - */ - if (dse.st_lat_stlb_miss) - val |= P(TLB, MISS) | P(TLB, L2); - else - val |= P(TLB, HIT) | P(TLB, L1) | P(TLB, L2); + pebs_set_tlb_lock(&val, dse.st_lat_stlb_miss, dse.st_lat_locked); + + val |= P(BLK, NA); /* - * bit 5: locked prefix + * the pebs_data_source table is only for loads + * so override the mem_op to say STORE instead */ - if (dse.st_lat_locked) - val |= P(LOCK, LOCKED); - - val |= P(BLK, NA); + src.val = val; + src.mem_op = P(OP,STORE); - return val; + return src.val; } struct pebs_record_core { @@ -781,8 +835,8 @@ struct event_constraint intel_grt_pebs_event_constraints[] = { /* Allow all events as PEBS with no flags */ - INTEL_PLD_CONSTRAINT(0x5d0, 0xf), - INTEL_PSD_CONSTRAINT(0x6d0, 0xf), + INTEL_HYBRID_LAT_CONSTRAINT(0x5d0, 0x3), + INTEL_HYBRID_LAT_CONSTRAINT(0x6d0, 0xf), EVENT_CONSTRAINT_END }; @@ -928,8 +982,13 @@ INTEL_FLAGS_UEVENT_CONSTRAINT(0x0400, 0x800000000ULL), /* SLOTS */ INTEL_PLD_CONSTRAINT(0x1cd, 0xff), /* MEM_TRANS_RETIRED.LOAD_LATENCY */ - INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x1d0, 0xf), /* MEM_INST_RETIRED.LOAD */ - INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x2d0, 0xf), /* MEM_INST_RETIRED.STORE */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x11d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x12d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_STORES */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x21d0, 0xf), /* MEM_INST_RETIRED.LOCK_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x41d0, 0xf), /* MEM_INST_RETIRED.SPLIT_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x42d0, 0xf), /* MEM_INST_RETIRED.SPLIT_STORES */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x81d0, 0xf), /* MEM_INST_RETIRED.ALL_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x82d0, 0xf), /* MEM_INST_RETIRED.ALL_STORES */ INTEL_FLAGS_EVENT_CONSTRAINT_DATALA_LD_RANGE(0xd1, 0xd4, 0xf), /* MEM_LOAD_*_RETIRED.* */ @@ -950,8 +1009,13 @@ INTEL_FLAGS_EVENT_CONSTRAINT(0xc0, 0xfe), INTEL_PLD_CONSTRAINT(0x1cd, 0xfe), INTEL_PSD_CONSTRAINT(0x2cd, 0x1), - INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x1d0, 0xf), - INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x2d0, 0xf), + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x11d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x12d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_STORES */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x21d0, 0xf), /* MEM_INST_RETIRED.LOCK_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x41d0, 0xf), /* MEM_INST_RETIRED.SPLIT_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x42d0, 0xf), /* MEM_INST_RETIRED.SPLIT_STORES */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x81d0, 0xf), /* MEM_INST_RETIRED.ALL_LOADS */ + INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x82d0, 0xf), /* MEM_INST_RETIRED.ALL_STORES */ INTEL_FLAGS_EVENT_CONSTRAINT_DATALA_LD_RANGE(0xd1, 0xd4, 0xf), @@ -1443,9 +1507,11 @@ bool fst = fl & (PERF_X86_EVENT_PEBS_ST | PERF_X86_EVENT_PEBS_HSW_PREC); if (fl & PERF_X86_EVENT_PEBS_LDLAT) - val = load_latency_data(aux); + val = load_latency_data(event, aux); else if (fl & PERF_X86_EVENT_PEBS_STLAT) - val = store_latency_data(aux); + val = store_latency_data(event, aux); + else if (fl & PERF_X86_EVENT_PEBS_LAT_HYBRID) + val = x86_pmu.pebs_latency_data(event, aux); else if (fst && (fl & PERF_X86_EVENT_PEBS_HSW_PREC)) val = precise_datala_hsw(event, aux); else if (fst) --- linux-5.19.0.orig/arch/x86/events/intel/lbr.c +++ linux-5.19.0/arch/x86/events/intel/lbr.c @@ -1097,6 +1097,14 @@ if (static_cpu_has(X86_FEATURE_ARCH_LBR)) { reg->config = mask; + + /* + * The Arch LBR HW can retrieve the common branch types + * from the LBR_INFO. It doesn't require the high overhead + * SW disassemble. + * Enable the branch type by default for the Arch LBR. + */ + reg->reg |= X86_BR_TYPE_SAVE; return 0; } @@ -1861,7 +1869,7 @@ return; clear_arch_lbr: - clear_cpu_cap(&boot_cpu_data, X86_FEATURE_ARCH_LBR); + setup_clear_cpu_cap(X86_FEATURE_ARCH_LBR); } /** --- linux-5.19.0.orig/arch/x86/events/intel/pt.c +++ linux-5.19.0/arch/x86/events/intel/pt.c @@ -1263,6 +1263,15 @@ if (1 << order != nr_pages) goto out; + /* + * Some processors cannot always support single range for more than + * 4KB - refer errata TGL052, ADL037 and RPL017. Future processors might + * also be affected, so for now rather than trying to keep track of + * which ones, just disable it for all. + */ + if (nr_pages > 1) + goto out; + buf->single = true; buf->nr_pages = nr_pages; ret = 0; --- linux-5.19.0.orig/arch/x86/events/intel/uncore_snb.c +++ linux-5.19.0/arch/x86/events/intel/uncore_snb.c @@ -841,6 +841,22 @@ return 0; } +static u64 snb_uncore_imc_read_counter(struct intel_uncore_box *box, struct perf_event *event) +{ + struct hw_perf_event *hwc = &event->hw; + + /* + * SNB IMC counters are 32-bit and are laid out back to back + * in MMIO space. Therefore we must use a 32-bit accessor function + * using readq() from uncore_mmio_read_counter() causes problems + * because it is reading 64-bit at a time. This is okay for the + * uncore_perf_event_update() function because it drops the upper + * 32-bits but not okay for plain uncore_read_counter() as invoked + * in uncore_pmu_event_start(). + */ + return (u64)readl(box->io_addr + hwc->event_base); +} + static struct pmu snb_uncore_imc_pmu = { .task_ctx_nr = perf_invalid_context, .event_init = snb_uncore_imc_event_init, @@ -860,7 +876,7 @@ .disable_event = snb_uncore_imc_disable_event, .enable_event = snb_uncore_imc_enable_event, .hw_config = snb_uncore_imc_hw_config, - .read_counter = uncore_mmio_read_counter, + .read_counter = snb_uncore_imc_read_counter, }; static struct intel_uncore_type snb_uncore_imc = { @@ -1322,6 +1338,7 @@ /* MCHBAR is disabled */ if (!(mch_bar & BIT(0))) { pr_warn("perf uncore: MCHBAR is disabled. Failed to map IMC free-running counters.\n"); + pci_dev_put(pdev); return; } mch_bar &= ~BIT(0); @@ -1336,6 +1353,8 @@ box->io_addr = ioremap(addr, type->mmio_map_size); if (!box->io_addr) pr_warn("perf uncore: Failed to ioremap for %s.\n", type->name); + + pci_dev_put(pdev); } static void tgl_uncore_imc_freerunning_init_box(struct intel_uncore_box *box) --- linux-5.19.0.orig/arch/x86/events/intel/uncore_snbep.c +++ linux-5.19.0/arch/x86/events/intel/uncore_snbep.c @@ -2891,6 +2891,7 @@ return false; pci_read_config_dword(dev, HSWEP_PCU_CAPID4_OFFET, &capid4); + pci_dev_put(dev); if (!hswep_get_chop(capid4)) return true; @@ -4492,6 +4493,8 @@ type->topology = NULL; } + pci_dev_put(dev); + return ret; } @@ -4857,6 +4860,8 @@ addr += box_ctl; + pci_dev_put(pdev); + box->io_addr = ioremap(addr, type->mmio_map_size); if (!box->io_addr) { pr_warn("perf uncore: Failed to ioremap for %s.\n", type->name); --- linux-5.19.0.orig/arch/x86/events/perf_event.h +++ linux-5.19.0/arch/x86/events/perf_event.h @@ -84,6 +84,7 @@ #define PERF_X86_EVENT_TOPDOWN 0x04000 /* Count Topdown slots/metrics events */ #define PERF_X86_EVENT_PEBS_STLAT 0x08000 /* st+stlat data address sampling */ #define PERF_X86_EVENT_AMD_BRS 0x10000 /* AMD Branch Sampling */ +#define PERF_X86_EVENT_PEBS_LAT_HYBRID 0x20000 /* ld and st lat for hybrid */ static inline bool is_topdown_count(struct perf_event *event) { @@ -460,6 +461,10 @@ __EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK|X86_ALL_EVENT_FLAGS, \ HWEIGHT(n), 0, PERF_X86_EVENT_PEBS_ST) +#define INTEL_HYBRID_LAT_CONSTRAINT(c, n) \ + __EVENT_CONSTRAINT(c, n, INTEL_ARCH_EVENT_MASK|X86_ALL_EVENT_FLAGS, \ + HWEIGHT(n), 0, PERF_X86_EVENT_PEBS_LAT_HYBRID) + /* Event constraint, but match on all event flags too. */ #define INTEL_FLAGS_EVENT_CONSTRAINT(c, n) \ EVENT_CONSTRAINT(c, n, ARCH_PERFMON_EVENTSEL_EVENT|X86_ALL_EVENT_FLAGS) @@ -638,6 +643,8 @@ x86_lbr_exclusive_max, }; +#define PERF_PEBS_DATA_SOURCE_MAX 0x10 + struct x86_hybrid_pmu { struct pmu pmu; const char *name; @@ -665,6 +672,8 @@ unsigned int late_ack :1, mid_ack :1, enabled_ack :1; + + u64 pebs_data_source[PERF_PEBS_DATA_SOURCE_MAX]; }; static __always_inline struct x86_hybrid_pmu *hybrid_pmu(struct pmu *pmu) @@ -825,6 +834,7 @@ void (*drain_pebs)(struct pt_regs *regs, struct perf_sample_data *data); struct event_constraint *pebs_constraints; void (*pebs_aliases)(struct perf_event *event); + u64 (*pebs_latency_data)(struct perf_event *event, u64 status); unsigned long large_pebs_flags; u64 rtm_abort_event; @@ -1392,6 +1402,8 @@ int intel_pmu_drain_bts_buffer(void); +u64 adl_latency_data_small(struct perf_event *event, u64 status); + extern struct event_constraint intel_core2_pebs_event_constraints[]; extern struct event_constraint intel_atom_pebs_event_constraints[]; @@ -1499,6 +1511,10 @@ void intel_pmu_pebs_data_source_skl(bool pmem); +void intel_pmu_pebs_data_source_adl(void); + +void intel_pmu_pebs_data_source_grt(void); + int intel_pmu_setup_lbr_filter(struct perf_event *event); void intel_pt_interrupt(void); --- linux-5.19.0.orig/arch/x86/hyperv/hv_init.c +++ linux-5.19.0/arch/x86/hyperv/hv_init.c @@ -31,6 +31,14 @@ #include #include +#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 + int hyperv_init_cpuhp; u64 hv_current_partition_id = ~0ull; EXPORT_SYMBOL_GPL(hv_current_partition_id); @@ -77,7 +85,7 @@ static int hv_cpu_init(unsigned int cpu) { union hv_vp_assist_msr_contents msr = { 0 }; - struct hv_vp_assist_page **hvp = &hv_vp_assist_page[smp_processor_id()]; + struct hv_vp_assist_page **hvp = &hv_vp_assist_page[cpu]; int ret; ret = hv_common_cpu_init(cpu); @@ -87,34 +95,32 @@ if (!hv_vp_assist_page) return 0; - if (!*hvp) { - if (hv_root_partition) { - /* - * For root partition we get the hypervisor provided VP assist - * page, instead of allocating a new page. - */ - rdmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); - *hvp = memremap(msr.pfn << - HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT, - PAGE_SIZE, MEMREMAP_WB); - } else { - /* - * The VP assist page is an "overlay" page (see Hyper-V TLFS's - * Section 5.2.1 "GPA Overlay Pages"). Here it must be zeroed - * out to make sure we always write the EOI MSR in - * hv_apic_eoi_write() *after* the EOI optimization is disabled - * in hv_cpu_die(), otherwise a CPU may not be stopped in the - * case of CPU offlining and the VM will hang. - */ + if (hv_root_partition) { + /* + * For root partition we get the hypervisor provided VP assist + * page, instead of allocating a new page. + */ + rdmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); + *hvp = memremap(msr.pfn << HV_X64_MSR_VP_ASSIST_PAGE_ADDRESS_SHIFT, + PAGE_SIZE, MEMREMAP_WB); + } else { + /* + * The VP assist page is an "overlay" page (see Hyper-V TLFS's + * Section 5.2.1 "GPA Overlay Pages"). Here it must be zeroed + * out to make sure we always write the EOI MSR in + * hv_apic_eoi_write() *after* the EOI optimization is disabled + * in hv_cpu_die(), otherwise a CPU may not be stopped in the + * case of CPU offlining and the VM will hang. + */ + if (!*hvp) *hvp = __vmalloc(PAGE_SIZE, GFP_KERNEL | __GFP_ZERO); - if (*hvp) - msr.pfn = vmalloc_to_pfn(*hvp); - } - WARN_ON(!(*hvp)); - if (*hvp) { - msr.enable = 1; - wrmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); - } + if (*hvp) + msr.pfn = vmalloc_to_pfn(*hvp); + + } + if (!WARN_ON(!(*hvp))) { + msr.enable = 1; + wrmsrl(HV_X64_MSR_VP_ASSIST_PAGE, msr.as_uint64); } return hyperv_init_ghcb(); @@ -426,7 +432,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); /* Hyper-V requires to write guest os id via ghcb in SNP IVM. */ @@ -538,8 +544,6 @@ { union hv_x64_msr_hypercall_contents hypercall_msr; - unregister_syscore_ops(&hv_syscore_ops); - /* Reset our OS id */ wrmsrl(HV_X64_MSR_GUEST_OS_ID, 0); hv_ghcb_msr_write(HV_X64_MSR_GUEST_OS_ID, 0); --- linux-5.19.0.orig/arch/x86/include/asm/apm.h +++ linux-5.19.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-5.19.0.orig/arch/x86/include/asm/cpu.h +++ linux-5.19.0/arch/x86/include/asm/cpu.h @@ -94,4 +94,6 @@ return p1 & p2; } +extern u64 x86_read_arch_cap_msr(void); + #endif /* _ASM_X86_CPU_H */ --- linux-5.19.0.orig/arch/x86/include/asm/cpufeatures.h +++ linux-5.19.0/arch/x86/include/asm/cpufeatures.h @@ -303,6 +303,10 @@ #define X86_FEATURE_RETHUNK (11*32+14) /* "" Use REturn THUNK */ #define X86_FEATURE_UNRET (11*32+15) /* "" AMD BTB untrain return */ #define X86_FEATURE_USE_IBPB_FW (11*32+16) /* "" Use IBPB during runtime firmware calls */ +#define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17) /* "" Fill RSB on VM exit when EIBRS is enabled */ + + +#define X86_FEATURE_MSR_TSX_CTRL (11*32+20) /* "" MSR IA32_TSX_CTRL (Intel) implemented */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ @@ -455,6 +459,8 @@ #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 */ #define X86_BUG_MMIO_STALE_DATA X86_BUG(25) /* CPU is affected by Processor MMIO Stale Data vulnerabilities */ -#define X86_BUG_RETBLEED X86_BUG(26) /* CPU is affected by RETBleed */ +#define X86_BUG_MMIO_UNKNOWN X86_BUG(26) /* CPU is too old and its MMIO Stale Data status is unknown */ +#define X86_BUG_RETBLEED X86_BUG(27) /* CPU is affected by RETBleed */ +#define X86_BUG_EIBRS_PBRSB X86_BUG(28) /* EIBRS is vulnerable to Post Barrier RSB Predictions */ #endif /* _ASM_X86_CPUFEATURES_H */ --- linux-5.19.0.orig/arch/x86/include/asm/hyperv-tlfs.h +++ linux-5.19.0/arch/x86/include/asm/hyperv-tlfs.h @@ -546,7 +546,7 @@ u64 guest_rip; u32 hv_clean_fields; - u32 hv_padding_32; + u32 padding32_1; u32 hv_synthetic_controls; struct { u32 nested_flush_hypercall:1; @@ -554,7 +554,7 @@ u32 reserved:30; } __packed hv_enlightenments_control; u32 hv_vp_id; - + u32 padding32_2; u64 hv_vm_id; u64 partition_assist_page; u64 padding64_4[4]; --- linux-5.19.0.orig/arch/x86/include/asm/ibt.h +++ linux-5.19.0/arch/x86/include/asm/ibt.h @@ -31,6 +31,16 @@ #define __noendbr __attribute__((nocf_check)) +/* + * Create a dummy function pointer reference to prevent objtool from marking + * the function as needing to be "sealed" (i.e. ENDBR converted to NOP by + * apply_ibt_endbr()). + */ +#define IBT_NOSEAL(fname) \ + ".pushsection .discard.ibt_endbr_noseal\n\t" \ + _ASM_PTR fname "\n\t" \ + ".popsection\n\t" + static inline __attribute_const__ u32 gen_endbr(void) { u32 endbr; @@ -84,6 +94,7 @@ #ifndef __ASSEMBLY__ #define ASM_ENDBR +#define IBT_NOSEAL(name) #define __noendbr --- linux-5.19.0.orig/arch/x86/include/asm/intel-family.h +++ linux-5.19.0/arch/x86/include/asm/intel-family.h @@ -27,6 +27,7 @@ * _X - regular server parts * _D - micro server parts * _N,_P - other mobile parts + * _S - other client parts * * Historical OPTDIFFs: * @@ -106,14 +107,20 @@ #define INTEL_FAM6_SAPPHIRERAPIDS_X 0x8F /* Golden Cove */ +#define INTEL_FAM6_EMERALDRAPIDS_X 0xCF + +#define INTEL_FAM6_GRANITERAPIDS_X 0xAD +#define INTEL_FAM6_GRANITERAPIDS_D 0xAE + #define INTEL_FAM6_ALDERLAKE 0x97 /* Golden Cove / Gracemont */ #define INTEL_FAM6_ALDERLAKE_L 0x9A /* Golden Cove / Gracemont */ #define INTEL_FAM6_ALDERLAKE_N 0xBE #define INTEL_FAM6_RAPTORLAKE 0xB7 #define INTEL_FAM6_RAPTORLAKE_P 0xBA +#define INTEL_FAM6_RAPTORLAKE_S 0xBF -/* "Small Core" Processors (Atom) */ +/* "Small Core" Processors (Atom/E-Core) */ #define INTEL_FAM6_ATOM_BONNELL 0x1C /* Diamondville, Pineview */ #define INTEL_FAM6_ATOM_BONNELL_MID 0x26 /* Silverthorne, Lincroft */ @@ -140,6 +147,10 @@ #define INTEL_FAM6_ATOM_TREMONT 0x96 /* Elkhart Lake */ #define INTEL_FAM6_ATOM_TREMONT_L 0x9C /* Jasper Lake */ +#define INTEL_FAM6_SIERRAFOREST_X 0xAF + +#define INTEL_FAM6_GRANDRIDGE 0xB6 + /* Xeon Phi */ #define INTEL_FAM6_XEON_PHI_KNL 0x57 /* Knights Landing */ --- linux-5.19.0.orig/arch/x86/include/asm/iommu.h +++ linux-5.19.0/arch/x86/include/asm/iommu.h @@ -25,8 +25,10 @@ { u64 start = rmrr->base_address; u64 end = rmrr->end_address + 1; + int entry_type; - if (e820__mapped_all(start, end, E820_TYPE_RESERVED)) + entry_type = e820__get_entry_type(start, end); + if (entry_type == E820_TYPE_RESERVED || entry_type == E820_TYPE_NVS) return 0; pr_err(FW_BUG "No firmware reserved region can cover this RMRR [%#018Lx-%#018Lx], contact BIOS vendor for fixes\n", --- linux-5.19.0.orig/arch/x86/include/asm/kexec.h +++ linux-5.19.0/arch/x86/include/asm/kexec.h @@ -193,6 +193,12 @@ const Elf_Shdr *relsec, const Elf_Shdr *symtab); #define arch_kexec_apply_relocations_add arch_kexec_apply_relocations_add + +void *arch_kexec_kernel_image_load(struct kimage *image); +#define arch_kexec_kernel_image_load arch_kexec_kernel_image_load + +int arch_kimage_file_post_load_cleanup(struct kimage *image); +#define arch_kimage_file_post_load_cleanup arch_kimage_file_post_load_cleanup #endif #endif --- linux-5.19.0.orig/arch/x86/include/asm/kvm_host.h +++ linux-5.19.0/arch/x86/include/asm/kvm_host.h @@ -505,6 +505,7 @@ unsigned nr_arch_fixed_counters; unsigned available_event_types; u64 fixed_ctr_ctrl; + u64 fixed_ctr_ctrl_mask; u64 global_ctrl; u64 global_status; u64 counter_bitmask[2]; @@ -712,6 +713,7 @@ struct fpu_guest guest_fpu; u64 xcr0; + u64 guest_supported_xcr0; struct kvm_pio_request pio; void *pio_data; @@ -1654,7 +1656,7 @@ #define kvm_arch_pmi_in_guest(vcpu) \ ((vcpu) && (vcpu)->arch.handling_intr_from_guest) -void kvm_mmu_x86_module_init(void); +void __init kvm_mmu_x86_module_init(void); int kvm_mmu_vendor_module_init(void); void kvm_mmu_vendor_module_exit(void); --- linux-5.19.0.orig/arch/x86/include/asm/microcode.h +++ linux-5.19.0/arch/x86/include/asm/microcode.h @@ -9,6 +9,7 @@ struct ucode_patch { struct list_head plist; void *data; /* Intel uses only this one */ + unsigned int size; u32 patch_id; u16 equiv_cpu; }; --- linux-5.19.0.orig/arch/x86/include/asm/msr-index.h +++ linux-5.19.0/arch/x86/include/asm/msr-index.h @@ -150,6 +150,15 @@ * are restricted to targets in * kernel. */ +#define ARCH_CAP_PBRSB_NO BIT(24) /* + * Not susceptible to Post-Barrier + * Return Stack Buffer Predictions. + */ + +#define ARCH_CAP_XAPIC_DISABLE BIT(21) /* + * IA32_XAPIC_DISABLE_STATUS MSR + * supported + */ #define MSR_IA32_FLUSH_CMD 0x0000010b #define L1D_FLUSH BIT(0) /* @@ -519,6 +528,11 @@ #define MSR_AMD64_CPUID_FN_1 0xc0011004 #define MSR_AMD64_LS_CFG 0xc0011020 #define MSR_AMD64_DC_CFG 0xc0011022 + +#define MSR_AMD64_DE_CFG 0xc0011029 +#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1 +#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT) + #define MSR_AMD64_BU_CFG2 0xc001102a #define MSR_AMD64_IBSFETCHCTL 0xc0011030 #define MSR_AMD64_IBSFETCHLINAD 0xc0011031 @@ -621,9 +635,6 @@ #define FAM10H_MMIO_CONF_BASE_MASK 0xfffffffULL #define FAM10H_MMIO_CONF_BASE_SHIFT 20 #define MSR_FAM10H_NODE_ID 0xc001100c -#define MSR_F10H_DECFG 0xc0011029 -#define MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT 1 -#define MSR_F10H_DECFG_LFENCE_SERIALIZE BIT_ULL(MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT) /* K8 MSRs */ #define MSR_K8_TOP_MEM1 0xc001001a @@ -1042,4 +1053,12 @@ #define MSR_IA32_HW_FEEDBACK_PTR 0x17d0 #define MSR_IA32_HW_FEEDBACK_CONFIG 0x17d1 +/* x2APIC locked status */ +#define MSR_IA32_XAPIC_DISABLE_STATUS 0xBD +#define LEGACY_XAPIC_DISABLED BIT(0) /* + * x2APIC mode is locked and + * disabling x2APIC will cause + * a #GP + */ + #endif /* _ASM_X86_MSR_INDEX_H */ --- linux-5.19.0.orig/arch/x86/include/asm/nospec-branch.h +++ linux-5.19.0/arch/x86/include/asm/nospec-branch.h @@ -35,32 +35,57 @@ #define RSB_CLEAR_LOOPS 32 /* To forcibly overwrite all entries */ /* + * Common helper for __FILL_RETURN_BUFFER and __FILL_ONE_RETURN. + */ +#define __FILL_RETURN_SLOT \ + ANNOTATE_INTRA_FUNCTION_CALL; \ + call 772f; \ + int3; \ +772: + +/* + * Stuff the entire RSB. + * * Google experimented with loop-unrolling and this turned out to be * the optimal version - two calls, each with their own speculation * trap should their return address end up getting used, in a loop. */ -#define __FILL_RETURN_BUFFER(reg, nr, sp) \ - mov $(nr/2), reg; \ -771: \ - ANNOTATE_INTRA_FUNCTION_CALL; \ - call 772f; \ -773: /* speculation trap */ \ - UNWIND_HINT_EMPTY; \ - pause; \ - lfence; \ - jmp 773b; \ -772: \ - ANNOTATE_INTRA_FUNCTION_CALL; \ - call 774f; \ -775: /* speculation trap */ \ - UNWIND_HINT_EMPTY; \ - pause; \ - lfence; \ - jmp 775b; \ -774: \ - add $(BITS_PER_LONG/8) * 2, sp; \ - dec reg; \ - jnz 771b; +#ifdef CONFIG_X86_64 +#define __FILL_RETURN_BUFFER(reg, nr) \ + mov $(nr/2), reg; \ +771: \ + __FILL_RETURN_SLOT \ + __FILL_RETURN_SLOT \ + add $(BITS_PER_LONG/8) * 2, %_ASM_SP; \ + dec reg; \ + jnz 771b; \ + /* barrier for jnz misprediction */ \ + lfence; +#else +/* + * i386 doesn't unconditionally have LFENCE, as such it can't + * do a loop. + */ +#define __FILL_RETURN_BUFFER(reg, nr) \ + .rept nr; \ + __FILL_RETURN_SLOT; \ + .endr; \ + add $(BITS_PER_LONG/8) * nr, %_ASM_SP; +#endif + +/* + * Stuff a single RSB slot. + * + * To mitigate Post-Barrier RSB speculation, one CALL instruction must be + * forced to retire before letting a RET instruction execute. + * + * On PBRSB-vulnerable CPUs, it is not safe for a RET to be executed + * before this point. + */ +#define __FILL_ONE_RETURN \ + __FILL_RETURN_SLOT \ + add $(BITS_PER_LONG/8), %_ASM_SP; \ + lfence; #ifdef __ASSEMBLY__ @@ -122,9 +147,11 @@ * A simpler FILL_RETURN_BUFFER macro. Don't make people use the CPP * monstrosity above, manually. */ -.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req - ALTERNATIVE "jmp .Lskip_rsb_\@", "", \ftr - __FILL_RETURN_BUFFER(\reg,\nr,%_ASM_SP) +.macro FILL_RETURN_BUFFER reg:req nr:req ftr:req ftr2=ALT_NOT(X86_FEATURE_ALWAYS) + ALTERNATIVE_2 "jmp .Lskip_rsb_\@", \ + __stringify(__FILL_RETURN_BUFFER(\reg,\nr)), \ftr, \ + __stringify(__FILL_ONE_RETURN), \ftr2 + .Lskip_rsb_\@: .endm @@ -282,7 +309,7 @@ /* The Intel SPEC CTRL MSR base value cache */ extern u64 x86_spec_ctrl_base; DECLARE_PER_CPU(u64, x86_spec_ctrl_current); -extern void write_spec_ctrl_current(u64 val, bool force); +extern void update_spec_ctrl_cond(u64 val); extern u64 spec_ctrl_current(void); /* --- linux-5.19.0.orig/arch/x86/include/asm/paravirt_types.h +++ linux-5.19.0/arch/x86/include/asm/paravirt_types.h @@ -414,8 +414,17 @@ "=c" (__ecx) #define PVOP_CALL_CLOBBERS PVOP_VCALL_CLOBBERS, "=a" (__eax) -/* void functions are still allowed [re]ax for scratch */ +/* + * void functions are still allowed [re]ax for scratch. + * + * The ZERO_CALL_USED REGS feature may end up zeroing out callee-saved + * registers. Make sure we model this with the appropriate clobbers. + */ +#ifdef CONFIG_ZERO_CALL_USED_REGS +#define PVOP_VCALLEE_CLOBBERS "=a" (__eax), PVOP_VCALL_CLOBBERS +#else #define PVOP_VCALLEE_CLOBBERS "=a" (__eax) +#endif #define PVOP_CALLEE_CLOBBERS PVOP_VCALLEE_CLOBBERS #define EXTRA_CLOBBERS , "r8", "r9", "r10", "r11" --- linux-5.19.0.orig/arch/x86/include/asm/pci-direct.h +++ linux-5.19.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-5.19.0.orig/arch/x86/include/asm/realmode.h +++ linux-5.19.0/arch/x86/include/asm/realmode.h @@ -91,6 +91,7 @@ void reserve_real_mode(void); void load_trampoline_pgtable(void); +void init_real_mode(void); #endif /* __ASSEMBLY__ */ --- linux-5.19.0.orig/arch/x86/include/asm/sev.h +++ linux-5.19.0/arch/x86/include/asm/sev.h @@ -195,7 +195,7 @@ void snp_set_memory_private(unsigned long vaddr, unsigned int npages); void snp_set_wakeup_secondary_cpu(void); bool snp_init(struct boot_params *bp); -void snp_abort(void); +void __init __noreturn snp_abort(void); int snp_issue_guest_request(u64 exit_code, struct snp_req_data *input, unsigned long *fw_err); #else static inline void sev_es_ist_enter(struct pt_regs *regs) { } --- linux-5.19.0.orig/arch/x86/include/asm/smp.h +++ linux-5.19.0/arch/x86/include/asm/smp.h @@ -21,16 +21,6 @@ DECLARE_PER_CPU_READ_MOSTLY(u16, cpu_l2c_id); DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number); -static inline struct cpumask *cpu_llc_shared_mask(int cpu) -{ - return per_cpu(cpu_llc_shared_map, cpu); -} - -static inline struct cpumask *cpu_l2c_shared_mask(int cpu) -{ - return per_cpu(cpu_l2c_shared_map, cpu); -} - DECLARE_EARLY_PER_CPU_READ_MOSTLY(u16, x86_cpu_to_apicid); DECLARE_EARLY_PER_CPU_READ_MOSTLY(u32, x86_cpu_to_acpiid); DECLARE_EARLY_PER_CPU_READ_MOSTLY(u16, x86_bios_cpu_apicid); @@ -172,6 +162,16 @@ # define safe_smp_processor_id() smp_processor_id() #endif +static inline struct cpumask *cpu_llc_shared_mask(int cpu) +{ + return per_cpu(cpu_llc_shared_map, cpu); +} + +static inline struct cpumask *cpu_l2c_shared_mask(int cpu) +{ + return per_cpu(cpu_l2c_shared_map, cpu); +} + #else /* !CONFIG_SMP */ #define wbinvd_on_cpu(cpu) wbinvd() static inline int wbinvd_on_all_cpus(void) @@ -179,6 +179,11 @@ wbinvd(); return 0; } + +static inline struct cpumask *cpu_llc_shared_mask(int cpu) +{ + return (struct cpumask *)cpumask_of(0); +} #endif /* CONFIG_SMP */ extern unsigned disabled_cpus; --- linux-5.19.0.orig/arch/x86/include/asm/syscall_wrapper.h +++ linux-5.19.0/arch/x86/include/asm/syscall_wrapper.h @@ -6,7 +6,7 @@ #ifndef _ASM_X86_SYSCALL_WRAPPER_H #define _ASM_X86_SYSCALL_WRAPPER_H -struct pt_regs; +#include extern long __x64_sys_ni_syscall(const struct pt_regs *regs); extern long __ia32_sys_ni_syscall(const struct pt_regs *regs); --- linux-5.19.0.orig/arch/x86/include/asm/tdx.h +++ linux-5.19.0/arch/x86/include/asm/tdx.h @@ -67,6 +67,8 @@ bool tdx_early_handle_ve(struct pt_regs *regs); +int tdx_mcall_get_report0(u8 *reportdata, u8 *tdreport); + #else static inline void tdx_early_init(void) { }; --- linux-5.19.0.orig/arch/x86/include/asm/x86_init.h +++ linux-5.19.0/arch/x86/include/asm/x86_init.h @@ -285,6 +285,8 @@ * possible in x86_early_init_platform_quirks() by * only using the current x86_hardware_subarch * semantics. + * @realmode_reserve: reserve memory for realmode trampoline + * @realmode_init: initialize realmode trampoline * @hyper: x86 hypervisor specific runtime callbacks */ struct x86_platform_ops { @@ -301,6 +303,8 @@ void (*apic_post_init)(void); struct x86_legacy_features legacy; void (*set_legacy_features)(void); + void (*realmode_reserve)(void); + void (*realmode_init)(void); struct x86_hyper_runtime hyper; struct x86_guest guest; }; --- linux-5.19.0.orig/arch/x86/kernel/acpi/cstate.c +++ linux-5.19.0/arch/x86/kernel/acpi/cstate.c @@ -94,6 +94,21 @@ */ flags->bm_control = 0; } + if (c->x86_vendor == X86_VENDOR_AMD && c->x86 >= 0x17) { + /* + * For all AMD Zen or newer CPUs that support C3, caches + * should not be flushed by software while entering C3 + * type state. Set bm->check to 1 so that kernel doesn't + * need to execute cache flush operation. + */ + flags->bm_check = 1; + /* + * In current AMD C state implementation ARB_DIS is no longer + * used. So set bm_control to zero to indicate ARB_DIS is not + * required while entering C3 type state. + */ + flags->bm_control = 0; + } } EXPORT_SYMBOL(acpi_processor_power_init_bm_check); --- linux-5.19.0.orig/arch/x86/kernel/acpi/wakeup_32.S +++ linux-5.19.0/arch/x86/kernel/acpi/wakeup_32.S @@ -3,6 +3,7 @@ #include #include #include +#include # Copyright 2003, 2008 Pavel Machek refs)) + if (!arch_atomic_inc_not_zero(&desc->refs)) return NULL; return desc; } -static __always_inline void put_desc(struct bp_patching_desc *desc) +static __always_inline void put_desc(void) { + struct bp_patching_desc *desc = &bp_desc; + smp_mb__before_atomic(); arch_atomic_dec(&desc->refs); } @@ -1367,15 +1368,15 @@ /* * Having observed our INT3 instruction, we now must observe - * bp_desc: + * bp_desc with non-zero refcount: * - * bp_desc = desc INT3 + * bp_desc.refs = 1 INT3 * WMB RMB - * write INT3 if (desc) + * write INT3 if (bp_desc.refs != 0) */ smp_rmb(); - desc = try_get_desc(&bp_desc); + desc = try_get_desc(); if (!desc) return 0; @@ -1429,7 +1430,7 @@ ret = 1; out_put: - put_desc(desc); + put_desc(); return ret; } @@ -1460,18 +1461,20 @@ */ static void text_poke_bp_batch(struct text_poke_loc *tp, unsigned int nr_entries) { - struct bp_patching_desc desc = { - .vec = tp, - .nr_entries = nr_entries, - .refs = ATOMIC_INIT(1), - }; unsigned char int3 = INT3_INSN_OPCODE; unsigned int i; int do_sync; lockdep_assert_held(&text_mutex); - smp_store_release(&bp_desc, &desc); /* rcu_assign_pointer */ + bp_desc.vec = tp; + bp_desc.nr_entries = nr_entries; + + /* + * Corresponds to the implicit memory barrier in try_get_desc() to + * ensure reading a non-zero refcount provides up to date bp_desc data. + */ + atomic_set_release(&bp_desc.refs, 1); /* * Corresponding read barrier in int3 notifier for making sure the @@ -1559,12 +1562,10 @@ text_poke_sync(); /* - * Remove and synchronize_rcu(), except we have a very primitive - * refcount based completion. + * Remove and wait for refs to be zero. */ - WRITE_ONCE(bp_desc, NULL); /* RCU_INIT_POINTER */ - if (!atomic_dec_and_test(&desc.refs)) - atomic_cond_read_acquire(&desc.refs, !VAL); + if (!atomic_dec_and_test(&bp_desc.refs)) + atomic_cond_read_acquire(&bp_desc.refs, !VAL); } static void text_poke_loc_init(struct text_poke_loc *tp, void *addr, --- linux-5.19.0.orig/arch/x86/kernel/aperture_64.c +++ linux-5.19.0/arch/x86/kernel/aperture_64.c @@ -136,32 +136,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) { @@ -250,8 +224,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-5.19.0.orig/arch/x86/kernel/apic/apic.c +++ linux-5.19.0/arch/x86/kernel/apic/apic.c @@ -61,6 +61,7 @@ #include #include #include +#include unsigned int num_processors; @@ -1756,11 +1757,26 @@ enum { X2APIC_OFF, - X2APIC_ON, X2APIC_DISABLED, + /* All states below here have X2APIC enabled */ + X2APIC_ON, + X2APIC_ON_LOCKED }; static int x2apic_state; +static bool x2apic_hw_locked(void) +{ + u64 ia32_cap; + u64 msr; + + ia32_cap = x86_read_arch_cap_msr(); + if (ia32_cap & ARCH_CAP_XAPIC_DISABLE) { + rdmsrl(MSR_IA32_XAPIC_DISABLE_STATUS, msr); + return (msr & LEGACY_XAPIC_DISABLED); + } + return false; +} + static void __x2apic_disable(void) { u64 msr; @@ -1798,6 +1814,10 @@ apicid); return 0; } + if (x2apic_hw_locked()) { + pr_warn("APIC locked in x2apic mode, can't disable\n"); + return 0; + } pr_warn("x2apic already enabled.\n"); __x2apic_disable(); } @@ -1812,10 +1832,18 @@ void x2apic_setup(void) { /* - * If x2apic is not in ON state, disable it if already enabled + * Try to make the AP's APIC state match that of the BSP, but if the + * BSP is unlocked and the AP is locked then there is a state mismatch. + * Warn about the mismatch in case a GP fault occurs due to a locked AP + * trying to be turned off. + */ + if (x2apic_state != X2APIC_ON_LOCKED && x2apic_hw_locked()) + pr_warn("x2apic lock mismatch between BSP and AP.\n"); + /* + * If x2apic is not in ON or LOCKED state, disable it if already enabled * from BIOS. */ - if (x2apic_state != X2APIC_ON) { + if (x2apic_state < X2APIC_ON) { __x2apic_disable(); return; } @@ -1836,6 +1864,11 @@ if (x2apic_id >= 255) panic("Cannot disable x2apic, id: %08x\n", x2apic_id); + if (x2apic_hw_locked()) { + pr_warn("Cannot disable locked x2apic, id: %08x\n", x2apic_id); + return; + } + __x2apic_disable(); register_lapic_address(mp_lapic_addr); } @@ -1894,7 +1927,10 @@ if (x2apic_enabled()) { pr_info("x2apic: enabled by BIOS, switching to x2apic ops\n"); x2apic_mode = 1; - x2apic_state = X2APIC_ON; + if (x2apic_hw_locked()) + x2apic_state = X2APIC_ON_LOCKED; + else + x2apic_state = X2APIC_ON; } else if (!boot_cpu_has(X86_FEATURE_X2APIC)) { x2apic_state = X2APIC_DISABLED; } --- linux-5.19.0.orig/arch/x86/kernel/asm-offsets.c +++ linux-5.19.0/arch/x86/kernel/asm-offsets.c @@ -19,7 +19,6 @@ #include #include #include -#include "../kvm/vmx/vmx.h" #ifdef CONFIG_XEN #include @@ -108,9 +107,4 @@ OFFSET(TSS_sp0, tss_struct, x86_tss.sp0); OFFSET(TSS_sp1, tss_struct, x86_tss.sp1); OFFSET(TSS_sp2, tss_struct, x86_tss.sp2); - - if (IS_ENABLED(CONFIG_KVM_INTEL)) { - BLANK(); - OFFSET(VMX_spec_ctrl, vcpu_vmx, spec_ctrl); - } } --- linux-5.19.0.orig/arch/x86/kernel/cpu/amd.c +++ linux-5.19.0/arch/x86/kernel/cpu/amd.c @@ -770,8 +770,6 @@ set_cpu_bug(c, X86_BUG_AMD_TLB_MMATCH); } -#define MSR_AMD64_DE_CFG 0xC0011029 - static void init_amd_ln(struct cpuinfo_x86 *c) { /* @@ -965,8 +963,8 @@ * msr_set_bit() uses the safe accessors, too, even if the MSR * is not present. */ - msr_set_bit(MSR_F10H_DECFG, - MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT); + msr_set_bit(MSR_AMD64_DE_CFG, + MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT); /* A serializing LFENCE stops RDTSC speculation */ set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC); --- linux-5.19.0.orig/arch/x86/kernel/cpu/bugs.c +++ linux-5.19.0/arch/x86/kernel/cpu/bugs.c @@ -60,11 +60,18 @@ static DEFINE_MUTEX(spec_ctrl_mutex); +/* Update SPEC_CTRL MSR and its cached copy unconditionally */ +static void update_spec_ctrl(u64 val) +{ + this_cpu_write(x86_spec_ctrl_current, val); + wrmsrl(MSR_IA32_SPEC_CTRL, val); +} + /* * Keep track of the SPEC_CTRL MSR value for the current task, which may differ * from x86_spec_ctrl_base due to STIBP/SSB in __speculation_ctrl_update(). */ -void write_spec_ctrl_current(u64 val, bool force) +void update_spec_ctrl_cond(u64 val) { if (this_cpu_read(x86_spec_ctrl_current) == val) return; @@ -75,7 +82,7 @@ * When KERNEL_IBRS this MSR is written on return-to-user, unless * forced the update can be delayed until that time. */ - if (force || !cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS)) + if (!cpu_feature_enabled(X86_FEATURE_KERNEL_IBRS)) wrmsrl(MSR_IA32_SPEC_CTRL, val); } @@ -152,7 +159,7 @@ /* * spectre_v2_user_select_mitigation() relies on the state set by * retbleed_select_mitigation(); specifically the STIBP selection is - * forced for UNRET. + * forced for UNRET or IBPB. */ spectre_v2_user_select_mitigation(); ssb_select_mitigation(); @@ -196,22 +203,15 @@ } /* - * NOTE: This function is *only* called for SVM. VMX spec_ctrl handling is - * done in vmenter.S. + * NOTE: This function is *only* called for SVM, since Intel uses + * MSR_IA32_SPEC_CTRL for SSBD. */ void x86_virt_spec_ctrl(u64 guest_spec_ctrl, u64 guest_virt_spec_ctrl, bool setguest) { - u64 msrval, guestval = guest_spec_ctrl, hostval = spec_ctrl_current(); + u64 guestval, hostval; struct thread_info *ti = current_thread_info(); - if (static_cpu_has(X86_FEATURE_MSR_SPEC_CTRL)) { - if (hostval != guestval) { - msrval = setguest ? guestval : hostval; - wrmsrl(MSR_IA32_SPEC_CTRL, msrval); - } - } - /* * If SSBD is not handled in MSR_SPEC_CTRL on AMD, update * MSR_AMD64_L2_CFG or MSR_VIRT_SPEC_CTRL if supported. @@ -433,7 +433,8 @@ u64 ia32_cap; if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) || - cpu_mitigations_off()) { + boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN) || + cpu_mitigations_off()) { mmio_mitigation = MMIO_MITIGATION_OFF; return; } @@ -538,6 +539,8 @@ pr_info("TAA: %s\n", taa_strings[taa_mitigation]); if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA)) pr_info("MMIO Stale Data: %s\n", mmio_strings[mmio_mitigation]); + else if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) + pr_info("MMIO Stale Data: Unknown: No mitigations\n"); } static void __init md_clear_select_mitigation(void) @@ -1179,7 +1182,8 @@ boot_cpu_has(X86_FEATURE_AMD_STIBP_ALWAYS_ON)) mode = SPECTRE_V2_USER_STRICT_PREFERRED; - if (retbleed_mitigation == RETBLEED_MITIGATION_UNRET) { + if (retbleed_mitigation == RETBLEED_MITIGATION_UNRET || + retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { if (mode != SPECTRE_V2_USER_STRICT && mode != SPECTRE_V2_USER_STRICT_PREFERRED) pr_info("Selecting STIBP always-on mode to complement retbleed mitigation\n"); @@ -1331,10 +1335,57 @@ if (ia32_cap & ARCH_CAP_RRSBA) { x86_spec_ctrl_base |= SPEC_CTRL_RRSBA_DIS_S; - write_spec_ctrl_current(x86_spec_ctrl_base, true); + update_spec_ctrl(x86_spec_ctrl_base); } } +static void __init spectre_v2_determine_rsb_fill_type_at_vmexit(enum spectre_v2_mitigation mode) +{ + /* + * Similar to context switches, there are two types of RSB attacks + * after VM exit: + * + * 1) RSB underflow + * + * 2) Poisoned RSB entry + * + * When retpoline is enabled, both are mitigated by filling/clearing + * the RSB. + * + * When IBRS is enabled, while #1 would be mitigated by the IBRS branch + * prediction isolation protections, RSB still needs to be cleared + * because of #2. Note that SMEP provides no protection here, unlike + * user-space-poisoned RSB entries. + * + * eIBRS should protect against RSB poisoning, but if the EIBRS_PBRSB + * bug is present then a LITE version of RSB protection is required, + * just a single call needs to retire before a RET is executed. + */ + switch (mode) { + case SPECTRE_V2_NONE: + return; + + case SPECTRE_V2_EIBRS_LFENCE: + case SPECTRE_V2_EIBRS: + if (boot_cpu_has_bug(X86_BUG_EIBRS_PBRSB)) { + setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT_LITE); + pr_info("Spectre v2 / PBRSB-eIBRS: Retire a single CALL on VMEXIT\n"); + } + return; + + case SPECTRE_V2_EIBRS_RETPOLINE: + case SPECTRE_V2_RETPOLINE: + case SPECTRE_V2_LFENCE: + case SPECTRE_V2_IBRS: + setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT); + pr_info("Spectre v2 / SpectreRSB : Filling RSB on VMEXIT\n"); + return; + } + + pr_warn_once("Unknown Spectre v2 mode, disabling RSB mitigation at VM exit"); + dump_stack(); +} + static void __init spectre_v2_select_mitigation(void) { enum spectre_v2_mitigation_cmd cmd = spectre_v2_parse_cmdline(); @@ -1406,7 +1457,7 @@ if (spectre_v2_in_ibrs_mode(mode)) { x86_spec_ctrl_base |= SPEC_CTRL_IBRS; - write_spec_ctrl_current(x86_spec_ctrl_base, true); + update_spec_ctrl(x86_spec_ctrl_base); } switch (mode) { @@ -1485,28 +1536,7 @@ setup_force_cpu_cap(X86_FEATURE_RSB_CTXSW); pr_info("Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch\n"); - /* - * Similar to context switches, there are two types of RSB attacks - * after vmexit: - * - * 1) RSB underflow - * - * 2) Poisoned RSB entry - * - * When retpoline is enabled, both are mitigated by filling/clearing - * the RSB. - * - * When IBRS is enabled, while #1 would be mitigated by the IBRS branch - * prediction isolation protections, RSB still needs to be cleared - * because of #2. Note that SMEP provides no protection here, unlike - * user-space-poisoned RSB entries. - * - * eIBRS, on the other hand, has RSB-poisoning protections, so it - * doesn't need RSB clearing after vmexit. - */ - if (boot_cpu_has(X86_FEATURE_RETPOLINE) || - boot_cpu_has(X86_FEATURE_KERNEL_IBRS)) - setup_force_cpu_cap(X86_FEATURE_RSB_VMEXIT); + spectre_v2_determine_rsb_fill_type_at_vmexit(mode); /* * Retpoline protects the kernel, but doesn't protect firmware. IBRS @@ -1541,7 +1571,7 @@ static void update_stibp_msr(void * __unused) { u64 val = spec_ctrl_current() | (x86_spec_ctrl_base & SPEC_CTRL_STIBP); - write_spec_ctrl_current(val, true); + update_spec_ctrl(val); } /* Update x86_spec_ctrl_base in case SMT state changed. */ @@ -1774,7 +1804,7 @@ x86_amd_ssb_disable(); } else { x86_spec_ctrl_base |= SPEC_CTRL_SSBD; - write_spec_ctrl_current(x86_spec_ctrl_base, true); + update_spec_ctrl(x86_spec_ctrl_base); } } @@ -1921,6 +1951,8 @@ if (ctrl == PR_SPEC_FORCE_DISABLE) task_set_spec_ib_force_disable(task); task_update_spec_tif(task); + if (task == current) + indirect_branch_prediction_barrier(); break; default: return -ERANGE; @@ -2025,7 +2057,7 @@ void x86_spec_ctrl_setup_ap(void) { if (boot_cpu_has(X86_FEATURE_MSR_SPEC_CTRL)) - write_spec_ctrl_current(x86_spec_ctrl_base, true); + update_spec_ctrl(x86_spec_ctrl_base); if (ssb_mode == SPEC_STORE_BYPASS_DISABLE) x86_amd_ssb_disable(); @@ -2248,6 +2280,9 @@ static ssize_t mmio_stale_data_show_state(char *buf) { + if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) + return sysfs_emit(buf, "Unknown: No mitigations\n"); + if (mmio_mitigation == MMIO_MITIGATION_OFF) return sysfs_emit(buf, "%s\n", mmio_strings[mmio_mitigation]); @@ -2292,6 +2327,19 @@ return ""; } +static char *pbrsb_eibrs_state(void) +{ + if (boot_cpu_has_bug(X86_BUG_EIBRS_PBRSB)) { + if (boot_cpu_has(X86_FEATURE_RSB_VMEXIT_LITE) || + boot_cpu_has(X86_FEATURE_RSB_VMEXIT)) + return ", PBRSB-eIBRS: SW sequence"; + else + return ", PBRSB-eIBRS: Vulnerable"; + } else { + return ", PBRSB-eIBRS: Not affected"; + } +} + static ssize_t spectre_v2_show_state(char *buf) { if (spectre_v2_enabled == SPECTRE_V2_LFENCE) @@ -2304,12 +2352,13 @@ spectre_v2_enabled == SPECTRE_V2_EIBRS_LFENCE) return sprintf(buf, "Vulnerable: eIBRS+LFENCE with unprivileged eBPF and SMT\n"); - return sprintf(buf, "%s%s%s%s%s%s\n", + return sprintf(buf, "%s%s%s%s%s%s%s\n", spectre_v2_strings[spectre_v2_enabled], ibpb_state(), boot_cpu_has(X86_FEATURE_USE_IBRS_FW) ? ", IBRS_FW" : "", stibp_state(), boot_cpu_has(X86_FEATURE_RSB_CTXSW) ? ", RSB filling" : "", + pbrsb_eibrs_state(), spectre_v2_module_string()); } @@ -2320,10 +2369,11 @@ static ssize_t retbleed_show_state(char *buf) { - if (retbleed_mitigation == RETBLEED_MITIGATION_UNRET) { + if (retbleed_mitigation == RETBLEED_MITIGATION_UNRET || + retbleed_mitigation == RETBLEED_MITIGATION_IBPB) { if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD && boot_cpu_data.x86_vendor != X86_VENDOR_HYGON) - return sprintf(buf, "Vulnerable: untrained return thunk on non-Zen uarch\n"); + return sprintf(buf, "Vulnerable: untrained return thunk / IBPB on non-AMD based uarch\n"); return sprintf(buf, "%s; SMT %s\n", retbleed_strings[retbleed_mitigation], @@ -2379,6 +2429,7 @@ return srbds_show_state(buf); case X86_BUG_MMIO_STALE_DATA: + case X86_BUG_MMIO_UNKNOWN: return mmio_stale_data_show_state(buf); case X86_BUG_RETBLEED: @@ -2438,7 +2489,10 @@ ssize_t cpu_show_mmio_stale_data(struct device *dev, struct device_attribute *attr, char *buf) { - return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_STALE_DATA); + if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) + return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_UNKNOWN); + else + return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_STALE_DATA); } ssize_t cpu_show_retbleed(struct device *dev, struct device_attribute *attr, char *buf) --- linux-5.19.0.orig/arch/x86/kernel/cpu/common.c +++ linux-5.19.0/arch/x86/kernel/cpu/common.c @@ -1135,6 +1135,8 @@ #define NO_SWAPGS BIT(6) #define NO_ITLB_MULTIHIT BIT(7) #define NO_SPECTRE_V2 BIT(8) +#define NO_MMIO BIT(9) +#define NO_EIBRS_PBRSB BIT(10) #define VULNWL(vendor, family, model, whitelist) \ X86_MATCH_VENDOR_FAM_MODEL(vendor, family, model, whitelist) @@ -1157,6 +1159,11 @@ VULNWL(VORTEX, 6, X86_MODEL_ANY, NO_SPECULATION), /* Intel Family 6 */ + VULNWL_INTEL(TIGERLAKE, NO_MMIO), + VULNWL_INTEL(TIGERLAKE_L, NO_MMIO), + VULNWL_INTEL(ALDERLAKE, NO_MMIO), + VULNWL_INTEL(ALDERLAKE_L, NO_MMIO), + VULNWL_INTEL(ATOM_SALTWELL, NO_SPECULATION | NO_ITLB_MULTIHIT), VULNWL_INTEL(ATOM_SALTWELL_TABLET, NO_SPECULATION | NO_ITLB_MULTIHIT), VULNWL_INTEL(ATOM_SALTWELL_MID, NO_SPECULATION | NO_ITLB_MULTIHIT), @@ -1175,9 +1182,9 @@ VULNWL_INTEL(ATOM_AIRMONT_MID, NO_L1TF | MSBDS_ONLY | NO_SWAPGS | NO_ITLB_MULTIHIT), VULNWL_INTEL(ATOM_AIRMONT_NP, NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_INTEL(ATOM_GOLDMONT, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_INTEL(ATOM_GOLDMONT_D, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_INTEL(ATOM_GOLDMONT_PLUS, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT), + VULNWL_INTEL(ATOM_GOLDMONT, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_INTEL(ATOM_GOLDMONT_D, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_INTEL(ATOM_GOLDMONT_PLUS, NO_MDS | NO_L1TF | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO | NO_EIBRS_PBRSB), /* * Technically, swapgs isn't serializing on AMD (despite it previously @@ -1187,21 +1194,23 @@ * good enough for our purposes. */ - VULNWL_INTEL(ATOM_TREMONT_D, NO_ITLB_MULTIHIT), + VULNWL_INTEL(ATOM_TREMONT, NO_EIBRS_PBRSB), + VULNWL_INTEL(ATOM_TREMONT_L, NO_EIBRS_PBRSB), + VULNWL_INTEL(ATOM_TREMONT_D, NO_ITLB_MULTIHIT | NO_EIBRS_PBRSB), /* AMD Family 0xf - 0x12 */ - VULNWL_AMD(0x0f, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_AMD(0x10, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_AMD(0x11, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT), - VULNWL_AMD(0x12, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT), + VULNWL_AMD(0x0f, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_AMD(0x10, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_AMD(0x11, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_AMD(0x12, NO_MELTDOWN | NO_SSB | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), /* 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), + VULNWL_AMD(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), + VULNWL_HYGON(X86_FAMILY_ANY, NO_MELTDOWN | NO_L1TF | NO_MDS | NO_SWAPGS | NO_ITLB_MULTIHIT | NO_MMIO), /* Zhaoxin Family 7 */ - VULNWL(CENTAUR, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_SWAPGS), - VULNWL(ZHAOXIN, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_SWAPGS), + VULNWL(CENTAUR, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_SWAPGS | NO_MMIO), + VULNWL(ZHAOXIN, 7, X86_MODEL_ANY, NO_SPECTRE_V2 | NO_SWAPGS | NO_MMIO), {} }; @@ -1355,16 +1364,27 @@ * Affected CPU list is generally enough to enumerate the vulnerability, * but for virtualization case check for ARCH_CAP MSR bits also, VMM may * not want the guest to enumerate the bug. + * + * Set X86_BUG_MMIO_UNKNOWN for CPUs that are neither in the blacklist, + * nor in the whitelist and also don't enumerate MSR ARCH_CAP MMIO bits. */ - if (cpu_matches(cpu_vuln_blacklist, MMIO) && - !arch_cap_mmio_immune(ia32_cap)) - setup_force_cpu_bug(X86_BUG_MMIO_STALE_DATA); + if (!arch_cap_mmio_immune(ia32_cap)) { + if (cpu_matches(cpu_vuln_blacklist, MMIO)) + setup_force_cpu_bug(X86_BUG_MMIO_STALE_DATA); + else if (!cpu_matches(cpu_vuln_whitelist, NO_MMIO)) + setup_force_cpu_bug(X86_BUG_MMIO_UNKNOWN); + } if (!cpu_has(c, X86_FEATURE_BTC_NO)) { if (cpu_matches(cpu_vuln_blacklist, RETBLEED) || (ia32_cap & ARCH_CAP_RSBA)) setup_force_cpu_bug(X86_BUG_RETBLEED); } + if (cpu_has(c, X86_FEATURE_IBRS_ENHANCED) && + !cpu_matches(cpu_vuln_whitelist, NO_EIBRS_PBRSB) && + !(ia32_cap & ARCH_CAP_PBRSB_NO)) + setup_force_cpu_bug(X86_BUG_EIBRS_PBRSB); + if (cpu_matches(cpu_vuln_whitelist, NO_MELTDOWN)) return; --- linux-5.19.0.orig/arch/x86/kernel/cpu/feat_ctl.c +++ linux-5.19.0/arch/x86/kernel/cpu/feat_ctl.c @@ -1,11 +1,11 @@ // SPDX-License-Identifier: GPL-2.0 #include +#include #include #include #include #include -#include "cpu.h" #undef pr_fmt #define pr_fmt(fmt) "x86/cpu: " fmt --- linux-5.19.0.orig/arch/x86/kernel/cpu/hygon.c +++ linux-5.19.0/arch/x86/kernel/cpu/hygon.c @@ -326,8 +326,8 @@ * msr_set_bit() uses the safe accessors, too, even if the MSR * is not present. */ - msr_set_bit(MSR_F10H_DECFG, - MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT); + msr_set_bit(MSR_AMD64_DE_CFG, + MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT); /* A serializing LFENCE stops RDTSC speculation */ set_cpu_cap(c, X86_FEATURE_LFENCE_RDTSC); --- linux-5.19.0.orig/arch/x86/kernel/cpu/intel.c +++ linux-5.19.0/arch/x86/kernel/cpu/intel.c @@ -1034,8 +1034,32 @@ static struct ratelimit_state bld_ratelimit; +static unsigned int sysctl_sld_mitigate = 1; static DEFINE_SEMAPHORE(buslock_sem); +#ifdef CONFIG_PROC_SYSCTL +static struct ctl_table sld_sysctls[] = { + { + .procname = "split_lock_mitigate", + .data = &sysctl_sld_mitigate, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_douintvec_minmax, + .extra1 = SYSCTL_ZERO, + .extra2 = SYSCTL_ONE, + }, + {} +}; + +static int __init sld_mitigate_sysctl_init(void) +{ + register_sysctl_init("kernel", sld_sysctls); + return 0; +} + +late_initcall(sld_mitigate_sysctl_init); +#endif + static inline bool match_option(const char *arg, int arglen, const char *opt) { int len = strlen(opt), ratelimit; @@ -1146,12 +1170,20 @@ split_lock_verify_msr(sld_state != sld_off); } -static void __split_lock_reenable(struct work_struct *work) +static void __split_lock_reenable_unlock(struct work_struct *work) { sld_update_msr(true); up(&buslock_sem); } +static DECLARE_DELAYED_WORK(sl_reenable_unlock, __split_lock_reenable_unlock); + +static void __split_lock_reenable(struct work_struct *work) +{ + sld_update_msr(true); +} +static DECLARE_DELAYED_WORK(sl_reenable, __split_lock_reenable); + /* * If a CPU goes offline with pending delayed work to re-enable split lock * detection then the delayed work will be executed on some other CPU. That @@ -1169,10 +1201,9 @@ return 0; } -static DECLARE_DELAYED_WORK(split_lock_reenable, __split_lock_reenable); - static void split_lock_warn(unsigned long ip) { + struct delayed_work *work; int cpu; if (!current->reported_split_lock) @@ -1180,14 +1211,26 @@ current->comm, current->pid, ip); current->reported_split_lock = 1; - /* misery factor #1, sleep 10ms before trying to execute split lock */ - if (msleep_interruptible(10) > 0) - return; - /* Misery factor #2, only allow one buslocked disabled core at a time */ - if (down_interruptible(&buslock_sem) == -EINTR) - return; + if (sysctl_sld_mitigate) { + /* + * misery factor #1: + * sleep 10ms before trying to execute split lock. + */ + if (msleep_interruptible(10) > 0) + return; + /* + * Misery factor #2: + * only allow one buslocked disabled core at a time. + */ + if (down_interruptible(&buslock_sem) == -EINTR) + return; + work = &sl_reenable_unlock; + } else { + work = &sl_reenable; + } + cpu = get_cpu(); - schedule_delayed_work_on(cpu, &split_lock_reenable, 2); + schedule_delayed_work_on(cpu, work, 2); /* Disable split lock detection on this CPU to make progress */ sld_update_msr(false); @@ -1216,22 +1259,23 @@ { u64 val; - /* - * Warn and fatal are handled by #AC for split lock if #AC for - * split lock is supported. - */ - if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT) || - (boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) && - (sld_state == sld_warn || sld_state == sld_fatal)) || - sld_state == sld_off) + if (!boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT)) return; - /* - * Enable #DB for bus lock. All bus locks are handled in #DB except - * split locks are handled in #AC in the fatal case. - */ rdmsrl(MSR_IA32_DEBUGCTLMSR, val); - val |= DEBUGCTLMSR_BUS_LOCK_DETECT; + + if ((boot_cpu_has(X86_FEATURE_SPLIT_LOCK_DETECT) && + (sld_state == sld_warn || sld_state == sld_fatal)) || + sld_state == sld_off) { + /* + * Warn and fatal are handled by #AC for split lock if #AC for + * split lock is supported. + */ + val &= ~DEBUGCTLMSR_BUS_LOCK_DETECT; + } else { + val |= DEBUGCTLMSR_BUS_LOCK_DETECT; + } + wrmsrl(MSR_IA32_DEBUGCTLMSR, val); } --- linux-5.19.0.orig/arch/x86/kernel/cpu/mce/apei.c +++ linux-5.19.0/arch/x86/kernel/cpu/mce/apei.c @@ -29,15 +29,26 @@ void apei_mce_report_mem_error(int severity, struct cper_sec_mem_err *mem_err) { struct mce m; + int lsb; if (!(mem_err->validation_bits & CPER_MEM_VALID_PA)) return; + /* + * Even if the ->validation_bits are set for address mask, + * to be extra safe, check and reject an error radius '0', + * and fall back to the default page size. + */ + if (mem_err->validation_bits & CPER_MEM_VALID_PA_MASK) + lsb = find_first_bit((void *)&mem_err->physical_addr_mask, PAGE_SHIFT); + else + lsb = PAGE_SHIFT; + mce_setup(&m); m.bank = -1; /* Fake a memory read error with unknown channel */ m.status = MCI_STATUS_VAL | MCI_STATUS_EN | MCI_STATUS_ADDRV | MCI_STATUS_MISCV | 0x9f; - m.misc = (MCI_MISC_ADDR_PHYS << 6) | PAGE_SHIFT; + m.misc = (MCI_MISC_ADDR_PHYS << 6) | lsb; if (severity >= GHES_SEV_RECOVERABLE) m.status |= MCI_STATUS_UC; --- linux-5.19.0.orig/arch/x86/kernel/cpu/microcode/amd.c +++ linux-5.19.0/arch/x86/kernel/cpu/microcode/amd.c @@ -440,7 +440,13 @@ return ret; native_rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy); - if (rev >= mc->hdr.patch_id) + + /* + * Allow application of the same revision to pick up SMT-specific + * changes even if the revision of the other SMT thread is already + * up-to-date. + */ + if (rev > mc->hdr.patch_id) return ret; if (!__apply_microcode_amd(mc)) { @@ -528,8 +534,12 @@ native_rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy); - /* Check whether we have saved a new patch already: */ - if (*new_rev && rev < mc->hdr.patch_id) { + /* + * Check whether a new patch has been saved already. Also, allow application of + * the same revision in order to pick up SMT-thread-specific configuration even + * if the sibling SMT thread already has an up-to-date revision. + */ + if (*new_rev && rev <= mc->hdr.patch_id) { if (!__apply_microcode_amd(mc)) { *new_rev = mc->hdr.patch_id; return; @@ -788,6 +798,7 @@ kfree(patch); return -EINVAL; } + patch->size = *patch_size; mc_hdr = (struct microcode_header_amd *)(fw + SECTION_HDR_SIZE); proc_id = mc_hdr->processor_rev_id; @@ -869,7 +880,7 @@ return ret; memset(amd_ucode_patch, 0, PATCH_MAX_SIZE); - memcpy(amd_ucode_patch, p->data, min_t(u32, ksize(p->data), PATCH_MAX_SIZE)); + memcpy(amd_ucode_patch, p->data, min_t(u32, p->size, PATCH_MAX_SIZE)); return ret; } --- linux-5.19.0.orig/arch/x86/kernel/cpu/resctrl/core.c +++ linux-5.19.0/arch/x86/kernel/cpu/resctrl/core.c @@ -66,9 +66,6 @@ .rid = RDT_RESOURCE_L3, .name = "L3", .cache_level = 3, - .cache = { - .min_cbm_bits = 1, - }, .domains = domain_init(RDT_RESOURCE_L3), .parse_ctrlval = parse_cbm, .format_str = "%d=%0*x", @@ -83,9 +80,6 @@ .rid = RDT_RESOURCE_L2, .name = "L2", .cache_level = 2, - .cache = { - .min_cbm_bits = 1, - }, .domains = domain_init(RDT_RESOURCE_L2), .parse_ctrlval = parse_cbm, .format_str = "%d=%0*x", @@ -877,6 +871,7 @@ r->cache.arch_has_sparse_bitmaps = false; r->cache.arch_has_empty_bitmaps = false; r->cache.arch_has_per_cpu_cfg = false; + r->cache.min_cbm_bits = 1; } else if (r->rid == RDT_RESOURCE_MBA) { hw_res->msr_base = MSR_IA32_MBA_THRTL_BASE; hw_res->msr_update = mba_wrmsr_intel; @@ -897,6 +892,7 @@ r->cache.arch_has_sparse_bitmaps = true; r->cache.arch_has_empty_bitmaps = true; r->cache.arch_has_per_cpu_cfg = true; + r->cache.min_cbm_bits = 0; } else if (r->rid == RDT_RESOURCE_MBA) { hw_res->msr_base = MSR_IA32_MBA_BW_BASE; hw_res->msr_update = mba_wrmsr_amd; --- linux-5.19.0.orig/arch/x86/kernel/cpu/resctrl/pseudo_lock.c +++ linux-5.19.0/arch/x86/kernel/cpu/resctrl/pseudo_lock.c @@ -420,6 +420,7 @@ struct pseudo_lock_region *plr = rdtgrp->plr; u32 rmid_p, closid_p; unsigned long i; + u64 saved_msr; #ifdef CONFIG_KASAN /* * The registers used for local register variables are also used @@ -463,6 +464,7 @@ * the buffer and evict pseudo-locked memory read earlier from the * cache. */ + saved_msr = __rdmsr(MSR_MISC_FEATURE_CONTROL); __wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0); closid_p = this_cpu_read(pqr_state.cur_closid); rmid_p = this_cpu_read(pqr_state.cur_rmid); @@ -514,7 +516,7 @@ __wrmsr(IA32_PQR_ASSOC, rmid_p, closid_p); /* Re-enable the hardware prefetcher(s) */ - wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0); + wrmsrl(MSR_MISC_FEATURE_CONTROL, saved_msr); local_irq_enable(); plr->thread_done = 1; @@ -871,6 +873,7 @@ static int measure_cycles_lat_fn(void *_plr) { struct pseudo_lock_region *plr = _plr; + u32 saved_low, saved_high; unsigned long i; u64 start, end; void *mem_r; @@ -879,6 +882,7 @@ /* * Disable hardware prefetchers. */ + rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high); wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0); mem_r = READ_ONCE(plr->kmem); /* @@ -895,7 +899,7 @@ end = rdtsc_ordered(); trace_pseudo_lock_mem_latency((u32)(end - start)); } - wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0); + wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high); local_irq_enable(); plr->thread_done = 1; wake_up_interruptible(&plr->lock_thread_wq); @@ -940,6 +944,7 @@ u64 hits_before = 0, hits_after = 0, miss_before = 0, miss_after = 0; struct perf_event *miss_event, *hit_event; int hit_pmcnum, miss_pmcnum; + u32 saved_low, saved_high; unsigned int line_size; unsigned int size; unsigned long i; @@ -973,6 +978,7 @@ /* * Disable hardware prefetchers. */ + rdmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high); wrmsr(MSR_MISC_FEATURE_CONTROL, prefetch_disable_bits, 0x0); /* Initialize rest of local variables */ @@ -1031,7 +1037,7 @@ */ rmb(); /* Re-enable hardware prefetchers */ - wrmsr(MSR_MISC_FEATURE_CONTROL, 0x0, 0x0); + wrmsr(MSR_MISC_FEATURE_CONTROL, saved_low, saved_high); local_irq_enable(); out_hit: perf_event_release_kernel(hit_event); --- linux-5.19.0.orig/arch/x86/kernel/cpu/sgx/encl.c +++ linux-5.19.0/arch/x86/kernel/cpu/sgx/encl.c @@ -533,11 +533,15 @@ void sgx_encl_release(struct kref *ref) { struct sgx_encl *encl = container_of(ref, struct sgx_encl, refcount); + unsigned long max_page_index = PFN_DOWN(encl->base + encl->size - 1); struct sgx_va_page *va_page; struct sgx_encl_page *entry; - unsigned long index; + unsigned long count = 0; - xa_for_each(&encl->page_array, index, entry) { + XA_STATE(xas, &encl->page_array, PFN_DOWN(encl->base)); + + xas_lock(&xas); + xas_for_each(&xas, entry, max_page_index) { if (entry->epc_page) { /* * The page and its radix tree entry cannot be freed @@ -552,9 +556,20 @@ } kfree(entry); - /* Invoke scheduler to prevent soft lockups. */ - cond_resched(); + /* + * Invoke scheduler on every XA_CHECK_SCHED iteration + * to prevent soft lockups. + */ + if (!(++count % XA_CHECK_SCHED)) { + xas_pause(&xas); + xas_unlock(&xas); + + cond_resched(); + + xas_lock(&xas); + } } + xas_unlock(&xas); xa_destroy(&encl->page_array); --- linux-5.19.0.orig/arch/x86/kernel/cpu/sgx/ioctl.c +++ linux-5.19.0/arch/x86/kernel/cpu/sgx/ioctl.c @@ -372,6 +372,29 @@ return ret; } +/* + * Ensure user provided offset and length values are valid for + * an enclave. + */ +static int sgx_validate_offset_length(struct sgx_encl *encl, + unsigned long offset, + unsigned long length) +{ + if (!IS_ALIGNED(offset, PAGE_SIZE)) + return -EINVAL; + + if (!length || !IS_ALIGNED(length, PAGE_SIZE)) + return -EINVAL; + + if (offset + length < offset) + return -EINVAL; + + if (offset + length - PAGE_SIZE >= encl->size) + return -EINVAL; + + return 0; +} + /** * sgx_ioc_enclave_add_pages() - The handler for %SGX_IOC_ENCLAVE_ADD_PAGES * @encl: an enclave pointer @@ -425,14 +448,10 @@ if (copy_from_user(&add_arg, arg, sizeof(add_arg))) return -EFAULT; - if (!IS_ALIGNED(add_arg.offset, PAGE_SIZE) || - !IS_ALIGNED(add_arg.src, PAGE_SIZE)) - return -EINVAL; - - if (!add_arg.length || add_arg.length & (PAGE_SIZE - 1)) + if (!IS_ALIGNED(add_arg.src, PAGE_SIZE)) return -EINVAL; - if (add_arg.offset + add_arg.length - PAGE_SIZE >= encl->size) + if (sgx_validate_offset_length(encl, add_arg.offset, add_arg.length)) return -EINVAL; if (copy_from_user(&secinfo, (void __user *)add_arg.secinfo, --- linux-5.19.0.orig/arch/x86/kernel/cpu/sgx/main.c +++ linux-5.19.0/arch/x86/kernel/cpu/sgx/main.c @@ -49,9 +49,13 @@ * Reset post-kexec EPC pages to the uninitialized state. The pages are removed * from the input list, and made available for the page allocator. SECS pages * prepending their children in the input list are left intact. + * + * Return 0 when sanitization was successful or kthread was stopped, and the + * number of unsanitized pages otherwise. */ -static void __sgx_sanitize_pages(struct list_head *dirty_page_list) +static unsigned long __sgx_sanitize_pages(struct list_head *dirty_page_list) { + unsigned long left_dirty = 0; struct sgx_epc_page *page; LIST_HEAD(dirty); int ret; @@ -59,7 +63,7 @@ /* dirty_page_list is thread-local, no need for a lock: */ while (!list_empty(dirty_page_list)) { if (kthread_should_stop()) - return; + return 0; page = list_first_entry(dirty_page_list, struct sgx_epc_page, list); @@ -92,12 +96,14 @@ } else { /* The page is not yet clean - move to the dirty list. */ list_move_tail(&page->list, &dirty); + left_dirty++; } cond_resched(); } list_splice(&dirty, dirty_page_list); + return left_dirty; } static bool sgx_reclaimer_age(struct sgx_epc_page *epc_page) @@ -440,10 +446,7 @@ * required for SECS pages, whose child pages blocked EREMOVE. */ __sgx_sanitize_pages(&sgx_dirty_page_list); - __sgx_sanitize_pages(&sgx_dirty_page_list); - - /* sanity check: */ - WARN_ON(!list_empty(&sgx_dirty_page_list)); + WARN_ON(__sgx_sanitize_pages(&sgx_dirty_page_list)); while (!kthread_should_stop()) { if (try_to_freeze()) --- linux-5.19.0.orig/arch/x86/kernel/cpu/topology.c +++ linux-5.19.0/arch/x86/kernel/cpu/topology.c @@ -96,6 +96,7 @@ unsigned int ht_mask_width, core_plus_mask_width, die_plus_mask_width; unsigned int core_select_mask, core_level_siblings; unsigned int die_select_mask, die_level_siblings; + unsigned int pkg_mask_width; bool die_level_present = false; int leaf; @@ -111,10 +112,10 @@ core_level_siblings = smp_num_siblings = LEVEL_MAX_SIBLINGS(ebx); core_plus_mask_width = ht_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); die_level_siblings = LEVEL_MAX_SIBLINGS(ebx); - die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); + pkg_mask_width = die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); sub_index = 1; - do { + while (true) { cpuid_count(leaf, sub_index, &eax, &ebx, &ecx, &edx); /* @@ -132,10 +133,15 @@ die_plus_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); } + if (LEAFB_SUBTYPE(ecx) != INVALID_TYPE) + pkg_mask_width = BITS_SHIFT_NEXT_LEVEL(eax); + else + break; + sub_index++; - } while (LEAFB_SUBTYPE(ecx) != INVALID_TYPE); + } - core_select_mask = (~(-1 << core_plus_mask_width)) >> ht_mask_width; + core_select_mask = (~(-1 << pkg_mask_width)) >> ht_mask_width; die_select_mask = (~(-1 << die_plus_mask_width)) >> core_plus_mask_width; @@ -148,7 +154,7 @@ } c->phys_proc_id = apic->phys_pkg_id(c->initial_apicid, - die_plus_mask_width); + pkg_mask_width); /* * Reinit the apicid, now that we have extended initial_apicid. */ --- linux-5.19.0.orig/arch/x86/kernel/cpu/tsx.c +++ linux-5.19.0/arch/x86/kernel/cpu/tsx.c @@ -58,24 +58,6 @@ wrmsrl(MSR_IA32_TSX_CTRL, tsx); } -static bool tsx_ctrl_is_supported(void) -{ - u64 ia32_cap = x86_read_arch_cap_msr(); - - /* - * TSX is controlled via MSR_IA32_TSX_CTRL. However, support for this - * MSR is enumerated by ARCH_CAP_TSX_MSR bit in MSR_IA32_ARCH_CAPABILITIES. - * - * TSX control (aka MSR_IA32_TSX_CTRL) is only available after a - * microcode update on CPUs that have their MSR_IA32_ARCH_CAPABILITIES - * bit MDS_NO=1. CPUs with MDS_NO=0 are not planned to get - * MSR_IA32_TSX_CTRL support even after a microcode update. Thus, - * tsx= cmdline requests will do nothing on CPUs without - * MSR_IA32_TSX_CTRL support. - */ - return !!(ia32_cap & ARCH_CAP_TSX_CTRL_MSR); -} - static enum tsx_ctrl_states x86_get_tsx_auto_mode(void) { if (boot_cpu_has_bug(X86_BUG_TAA)) @@ -135,7 +117,7 @@ rdmsrl(MSR_TSX_FORCE_ABORT, msr); msr |= MSR_TFA_TSX_CPUID_CLEAR; wrmsrl(MSR_TSX_FORCE_ABORT, msr); - } else if (tsx_ctrl_is_supported()) { + } else if (cpu_feature_enabled(X86_FEATURE_MSR_TSX_CTRL)) { rdmsrl(MSR_IA32_TSX_CTRL, msr); msr |= TSX_CTRL_CPUID_CLEAR; wrmsrl(MSR_IA32_TSX_CTRL, msr); @@ -158,7 +140,8 @@ u64 mcu_opt_ctrl; /* Check if RTM_ALLOW exists */ - if (!boot_cpu_has_bug(X86_BUG_TAA) || !tsx_ctrl_is_supported() || + if (!boot_cpu_has_bug(X86_BUG_TAA) || + !cpu_feature_enabled(X86_FEATURE_MSR_TSX_CTRL) || !cpu_feature_enabled(X86_FEATURE_SRBDS_CTRL)) return; @@ -191,7 +174,20 @@ return; } - if (!tsx_ctrl_is_supported()) { + /* + * TSX is controlled via MSR_IA32_TSX_CTRL. However, support for this + * MSR is enumerated by ARCH_CAP_TSX_MSR bit in MSR_IA32_ARCH_CAPABILITIES. + * + * TSX control (aka MSR_IA32_TSX_CTRL) is only available after a + * microcode update on CPUs that have their MSR_IA32_ARCH_CAPABILITIES + * bit MDS_NO=1. CPUs with MDS_NO=0 are not planned to get + * MSR_IA32_TSX_CTRL support even after a microcode update. Thus, + * tsx= cmdline requests will do nothing on CPUs without + * MSR_IA32_TSX_CTRL support. + */ + if (x86_read_arch_cap_msr() & ARCH_CAP_TSX_CTRL_MSR) { + setup_force_cpu_cap(X86_FEATURE_MSR_TSX_CTRL); + } else { tsx_ctrl_state = TSX_CTRL_NOT_SUPPORTED; return; } --- linux-5.19.0.orig/arch/x86/kernel/early-quirks.c +++ linux-5.19.0/arch/x86/kernel/early-quirks.c @@ -29,6 +29,37 @@ #include #include +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; @@ -728,6 +759,7 @@ 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}, {} }; @@ -780,6 +812,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); @@ -806,8 +842,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-5.19.0.orig/arch/x86/kernel/fpu/core.c +++ linux-5.19.0/arch/x86/kernel/fpu/core.c @@ -605,9 +605,9 @@ if (test_thread_flag(TIF_NEED_FPU_LOAD)) fpregs_restore_userregs(); save_fpregs_to_fpstate(dst_fpu); + fpregs_unlock(); if (!(clone_flags & CLONE_THREAD)) fpu_inherit_perms(dst_fpu); - fpregs_unlock(); /* * Children never inherit PASID state. --- linux-5.19.0.orig/arch/x86/kernel/fpu/init.c +++ linux-5.19.0/arch/x86/kernel/fpu/init.c @@ -210,13 +210,6 @@ fpstate_reset(¤t->thread.fpu); } -static void __init fpu__init_init_fpstate(void) -{ - /* Bring init_fpstate size and features up to date */ - init_fpstate.size = fpu_kernel_cfg.max_size; - init_fpstate.xfeatures = fpu_kernel_cfg.max_features; -} - /* * Called on the boot CPU once per system bootup, to set up the initial * FPU state that is later cloned into all processes: @@ -236,5 +229,4 @@ fpu__init_system_xstate_size_legacy(); fpu__init_system_xstate(fpu_kernel_cfg.max_size); fpu__init_task_struct_size(); - fpu__init_init_fpstate(); } --- linux-5.19.0.orig/arch/x86/kernel/fpu/xstate.c +++ linux-5.19.0/arch/x86/kernel/fpu/xstate.c @@ -360,7 +360,7 @@ print_xstate_features(); - xstate_init_xcomp_bv(&init_fpstate.regs.xsave, fpu_kernel_cfg.max_features); + xstate_init_xcomp_bv(&init_fpstate.regs.xsave, init_fpstate.xfeatures); /* * Init all the features state with header.xfeatures being 0x0 @@ -678,20 +678,6 @@ return ebx; } -/* - * Will the runtime-enumerated 'xstate_size' fit in the init - * task's statically-allocated buffer? - */ -static bool __init is_supported_xstate_size(unsigned int test_xstate_size) -{ - if (test_xstate_size <= sizeof(init_fpstate.regs)) - return true; - - pr_warn("x86/fpu: xstate buffer too small (%zu < %d), disabling xsave\n", - sizeof(init_fpstate.regs), test_xstate_size); - return false; -} - static int __init init_xstate_size(void) { /* Recompute the context size for enabled features: */ @@ -717,10 +703,6 @@ kernel_default_size = xstate_calculate_size(fpu_kernel_cfg.default_features, compacted); - /* Ensure we have the space to store all default enabled features. */ - if (!is_supported_xstate_size(kernel_default_size)) - return -EINVAL; - if (!paranoid_xstate_size_valid(kernel_size)) return -EINVAL; @@ -875,6 +857,19 @@ update_regset_xstate_info(fpu_user_cfg.max_size, fpu_user_cfg.max_features); + /* + * init_fpstate excludes dynamic states as they are large but init + * state is zero. + */ + init_fpstate.size = fpu_kernel_cfg.default_size; + init_fpstate.xfeatures = fpu_kernel_cfg.default_features; + + if (init_fpstate.size > sizeof(init_fpstate.regs)) { + pr_warn("x86/fpu: init_fpstate buffer too small (%zu < %d), disabling XSAVE\n", + sizeof(init_fpstate.regs), init_fpstate.size); + goto out_disable; + } + setup_init_fpu_buf(); /* @@ -1130,6 +1125,15 @@ */ mask = fpstate->user_xfeatures; + /* + * Dynamic features are not present in init_fpstate. When they are + * in an all zeros init state, remove those from 'mask' to zero + * those features in the user buffer instead of retrieving them + * from init_fpstate. + */ + if (fpu_state_size_dynamic()) + mask &= (header.xfeatures | xinit->header.xcomp_bv); + for_each_extended_xfeature(i, mask) { /* * If there was a feature or alignment gap, zero the space --- linux-5.19.0.orig/arch/x86/kernel/ftrace.c +++ linux-5.19.0/arch/x86/kernel/ftrace.c @@ -91,6 +91,7 @@ /* Make sure it is what we expect it to be */ if (memcmp(cur_code, old_code, MCOUNT_INSN_SIZE) != 0) { + ftrace_expected = old_code; WARN_ON(1); return -EINVAL; } --- linux-5.19.0.orig/arch/x86/kernel/head_32.S +++ linux-5.19.0/arch/x86/kernel/head_32.S @@ -27,6 +27,7 @@ #include #include #include +#include /* Physical address */ #define pa(X) ((X) - __PAGE_OFFSET) @@ -267,6 +268,7 @@ movl setup_once_ref,%eax andl %eax,%eax jz 1f # Did we do this already? + ANNOTATE_RETPOLINE_SAFE call *%eax 1: --- linux-5.19.0.orig/arch/x86/kernel/kexec-bzimage64.c +++ linux-5.19.0/arch/x86/kernel/kexec-bzimage64.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include @@ -528,28 +527,11 @@ return 0; } -#ifdef CONFIG_KEXEC_BZIMAGE_VERIFY_SIG -static int bzImage64_verify_sig(const char *kernel, unsigned long kernel_len) -{ - int ret; - - ret = verify_pefile_signature(kernel, kernel_len, - VERIFY_USE_SECONDARY_KEYRING, - VERIFYING_KEXEC_PE_SIGNATURE); - if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { - ret = verify_pefile_signature(kernel, kernel_len, - VERIFY_USE_PLATFORM_KEYRING, - VERIFYING_KEXEC_PE_SIGNATURE); - } - return ret; -} -#endif - const struct kexec_file_ops kexec_bzImage64_ops = { .probe = bzImage64_probe, .load = bzImage64_load, .cleanup = bzImage64_cleanup, #ifdef CONFIG_KEXEC_BZIMAGE_VERIFY_SIG - .verify_sig = bzImage64_verify_sig, + .verify_sig = kexec_kernel_verify_pe_sig, #endif }; --- linux-5.19.0.orig/arch/x86/kernel/kprobes/core.c +++ linux-5.19.0/arch/x86/kernel/kprobes/core.c @@ -505,7 +505,7 @@ match = ((regs->flags & X86_EFLAGS_SF) >> X86_EFLAGS_SF_BIT) ^ ((regs->flags & X86_EFLAGS_OF) >> X86_EFLAGS_OF_BIT); if (p->ainsn.jcc.type >= 0xe) - match = match && (regs->flags & X86_EFLAGS_ZF); + match = match || (regs->flags & X86_EFLAGS_ZF); } __kprobe_emulate_jmp(p, regs, (match && !invert) || (!match && invert)); } @@ -814,16 +814,20 @@ static void kprobe_post_process(struct kprobe *cur, struct pt_regs *regs, struct kprobe_ctlblk *kcb) { - if ((kcb->kprobe_status != KPROBE_REENTER) && cur->post_handler) { - kcb->kprobe_status = KPROBE_HIT_SSDONE; - cur->post_handler(cur, regs, 0); - } - /* Restore back the original saved kprobes variables and continue. */ - if (kcb->kprobe_status == KPROBE_REENTER) + if (kcb->kprobe_status == KPROBE_REENTER) { + /* This will restore both kcb and current_kprobe */ restore_previous_kprobe(kcb); - else + } else { + /* + * Always update the kcb status because + * reset_curent_kprobe() doesn't update kcb. + */ + kcb->kprobe_status = KPROBE_HIT_SSDONE; + if (cur->post_handler) + cur->post_handler(cur, regs, 0); reset_current_kprobe(); + } } NOKPROBE_SYMBOL(kprobe_post_process); --- linux-5.19.0.orig/arch/x86/kernel/pmem.c +++ linux-5.19.0/arch/x86/kernel/pmem.c @@ -27,6 +27,11 @@ * simply here to trigger the module to load on demand. */ pdev = platform_device_alloc("e820_pmem", -1); - return platform_device_add(pdev); + + rc = platform_device_add(pdev); + if (rc) + platform_device_put(pdev); + + return rc; } device_initcall(register_e820_pmem); --- linux-5.19.0.orig/arch/x86/kernel/process.c +++ linux-5.19.0/arch/x86/kernel/process.c @@ -600,7 +600,7 @@ } if (updmsr) - write_spec_ctrl_current(msr, false); + update_spec_ctrl_cond(msr); } static unsigned long speculation_ctrl_update_tif(struct task_struct *tsk) @@ -821,6 +821,10 @@ */ static int prefer_mwait_c1_over_halt(const struct cpuinfo_x86 *c) { + /* User has disallowed the use of MWAIT. Fallback to HALT */ + if (boot_option_idle_override == IDLE_NOMWAIT) + return 0; + if (c->x86_vendor != X86_VENDOR_INTEL) return 0; @@ -932,9 +936,8 @@ } else if (!strcmp(str, "nomwait")) { /* * If the boot option of "idle=nomwait" is added, - * it means that mwait will be disabled for CPU C2/C3 - * states. In such case it won't touch the variable - * of boot_option_idle_override. + * it means that mwait will be disabled for CPU C1/C2/C3 + * states. */ boot_option_idle_override = IDLE_NOMWAIT; } else --- linux-5.19.0.orig/arch/x86/kernel/reboot.c +++ linux-5.19.0/arch/x86/kernel/reboot.c @@ -32,6 +32,7 @@ #include #include #include +#include /* * Power off function, if any @@ -488,7 +489,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"), + }, + }, { } }; --- linux-5.19.0.orig/arch/x86/kernel/relocate_kernel_32.S +++ linux-5.19.0/arch/x86/kernel/relocate_kernel_32.S @@ -9,6 +9,7 @@ #include #include #include +#include /* * Must be relocatable PIC code callable as a C function, in particular --- linux-5.19.0.orig/arch/x86/kernel/setup.c +++ linux-5.19.0/arch/x86/kernel/setup.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -963,6 +964,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(); /* @@ -1102,7 +1110,7 @@ * Moreover, on machines with SandyBridge graphics or in setups that use * crashkernel the entire 1M is reserved anyway. */ - reserve_real_mode(); + x86_platform.realmode_reserve(); init_mem_mapping(); @@ -1132,19 +1140,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-5.19.0.orig/arch/x86/kernel/sev.c +++ linux-5.19.0/arch/x86/kernel/sev.c @@ -701,7 +701,13 @@ void __init early_snp_set_memory_private(unsigned long vaddr, unsigned long paddr, unsigned int npages) { - if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) + /* + * This can be invoked in early boot while running identity mapped, so + * use an open coded check for SNP instead of using cc_platform_has(). + * This eliminates worries about jump tables or checking boot_cpu_data + * in the cc_platform_has() function. + */ + if (!(sev_status & MSR_AMD64_SEV_SNP_ENABLED)) return; /* @@ -717,7 +723,13 @@ void __init early_snp_set_memory_shared(unsigned long vaddr, unsigned long paddr, unsigned int npages) { - if (!cc_platform_has(CC_ATTR_GUEST_SEV_SNP)) + /* + * This can be invoked in early boot while running identity mapped, so + * use an open coded check for SNP instead of using cc_platform_has(). + * This eliminates worries about jump tables or checking boot_cpu_data + * in the cc_platform_has() function. + */ + if (!(sev_status & MSR_AMD64_SEV_SNP_ENABLED)) return; /* Invalidate the memory pages before they are marked shared in the RMP table. */ @@ -2100,7 +2112,7 @@ return true; } -void __init snp_abort(void) +void __init __noreturn snp_abort(void) { sev_es_terminate(SEV_TERM_SET_GEN, GHCB_SNP_UNSUPPORTED); } --- linux-5.19.0.orig/arch/x86/kernel/unwind_orc.c +++ linux-5.19.0/arch/x86/kernel/unwind_orc.c @@ -93,22 +93,27 @@ static struct orc_entry *orc_ftrace_find(unsigned long ip) { struct ftrace_ops *ops; - unsigned long caller; + unsigned long tramp_addr, offset; ops = ftrace_ops_trampoline(ip); if (!ops) return NULL; + /* Set tramp_addr to the start of the code copied by the trampoline */ if (ops->flags & FTRACE_OPS_FL_SAVE_REGS) - caller = (unsigned long)ftrace_regs_call; + tramp_addr = (unsigned long)ftrace_regs_caller; else - caller = (unsigned long)ftrace_call; + tramp_addr = (unsigned long)ftrace_caller; + + /* Now place tramp_addr to the location within the trampoline ip is at */ + offset = ip - ops->trampoline; + tramp_addr += offset; /* Prevent unlikely recursion */ - if (ip == caller) + if (ip == tramp_addr) return NULL; - return orc_find(caller); + return orc_find(tramp_addr); } #else static struct orc_entry *orc_ftrace_find(unsigned long ip) @@ -708,7 +713,7 @@ /* 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; --- linux-5.19.0.orig/arch/x86/kernel/uprobes.c +++ linux-5.19.0/arch/x86/kernel/uprobes.c @@ -722,8 +722,9 @@ switch (opc1) { case 0xeb: /* jmp 8 */ case 0xe9: /* jmp 32 */ - case 0x90: /* prefix* + nop; same as jmp with .offs = 0 */ break; + case 0x90: /* prefix* + nop; same as jmp with .offs = 0 */ + goto setup; case 0xe8: /* call relative */ branch_clear_offset(auprobe, insn); @@ -753,6 +754,7 @@ return -ENOTSUPP; } +setup: auprobe->branch.opc1 = opc1; auprobe->branch.ilen = insn->length; auprobe->branch.offs = insn->immediate.value; --- linux-5.19.0.orig/arch/x86/kernel/x86_init.c +++ linux-5.19.0/arch/x86/kernel/x86_init.c @@ -25,6 +25,7 @@ #include #include #include +#include void x86_init_noop(void) { } void __init x86_init_uint_noop(unsigned int unused) { } @@ -145,6 +146,8 @@ .get_nmi_reason = default_get_nmi_reason, .save_sched_clock_state = tsc_save_sched_clock_state, .restore_sched_clock_state = tsc_restore_sched_clock_state, + .realmode_reserve = reserve_real_mode, + .realmode_init = init_real_mode, .hyper.pin_vcpu = x86_op_int_noop, .guest = { --- linux-5.19.0.orig/arch/x86/kvm/Makefile +++ linux-5.19.0/arch/x86/kvm/Makefile @@ -34,3 +34,15 @@ obj-$(CONFIG_KVM) += kvm.o obj-$(CONFIG_KVM_INTEL) += kvm-intel.o obj-$(CONFIG_KVM_AMD) += kvm-amd.o + +AFLAGS_svm/vmenter.o := -iquote $(obj) +$(obj)/svm/vmenter.o: $(obj)/kvm-asm-offsets.h + +AFLAGS_vmx/vmenter.o := -iquote $(obj) +$(obj)/vmx/vmenter.o: $(obj)/kvm-asm-offsets.h + +$(obj)/kvm-asm-offsets.h: $(obj)/kvm-asm-offsets.s FORCE + $(call filechk,offsets,__KVM_ASM_OFFSETS_H__) + +targets += kvm-asm-offsets.s +clean-files += kvm-asm-offsets.h --- linux-5.19.0.orig/arch/x86/kvm/cpuid.c +++ linux-5.19.0/arch/x86/kvm/cpuid.c @@ -283,7 +283,6 @@ { struct kvm_lapic *apic = vcpu->arch.apic; struct kvm_cpuid_entry2 *best; - u64 guest_supported_xcr0; best = kvm_find_cpuid_entry(vcpu, 1, 0); if (best && apic) { @@ -295,10 +294,16 @@ kvm_apic_set_version(vcpu); } - guest_supported_xcr0 = + vcpu->arch.guest_supported_xcr0 = cpuid_get_supported_xcr0(vcpu->arch.cpuid_entries, vcpu->arch.cpuid_nent); - vcpu->arch.guest_fpu.fpstate->user_xfeatures = guest_supported_xcr0; + /* + * FP+SSE can always be saved/restored via KVM_{G,S}ET_XSAVE, even if + * XSAVE/XCRO are not exposed to the guest, and even if XSAVE isn't + * supported by the host. + */ + vcpu->arch.guest_fpu.fpstate->user_xfeatures = vcpu->arch.guest_supported_xcr0 | + XFEATURE_MASK_FPSSE; kvm_update_pv_runtime(vcpu); @@ -865,8 +870,6 @@ entry->edx = 0; } break; - case 9: - break; case 0xa: { /* Architectural Performance Monitoring */ struct x86_pmu_capability cap; union cpuid10_eax eax; @@ -1093,11 +1096,13 @@ entry->eax = max(entry->eax, 0x80000021); break; case 0x80000001: + entry->ebx &= ~GENMASK(27, 16); cpuid_entry_override(entry, CPUID_8000_0001_EDX); cpuid_entry_override(entry, CPUID_8000_0001_ECX); break; case 0x80000006: - /* L2 cache and TLB: pass through host info. */ + /* Drop reserved bits, pass host L2 cache and TLB info. */ + entry->edx &= ~GENMASK(17, 16); break; case 0x80000007: /* Advanced power management */ /* invariant TSC is CPUID.80000007H:EDX[8] */ @@ -1127,6 +1132,7 @@ g_phys_as = phys_as; entry->eax = g_phys_as | (virt_as << 8); + entry->ecx &= ~(GENMASK(31, 16) | GENMASK(11, 8)); entry->edx = 0; cpuid_entry_override(entry, CPUID_8000_0008_EBX); break; @@ -1146,6 +1152,9 @@ entry->ecx = entry->edx = 0; break; case 0x8000001a: + entry->eax &= GENMASK(2, 0); + entry->ebx = entry->ecx = entry->edx = 0; + break; case 0x8000001e: break; case 0x8000001F: @@ -1153,7 +1162,8 @@ entry->eax = entry->ebx = entry->ecx = entry->edx = 0; } else { cpuid_entry_override(entry, CPUID_8000_001F_EAX); - + /* Clear NumVMPL since KVM does not support VMPL. */ + entry->ebx &= ~GENMASK(31, 12); /* * Enumerate '0' for "PA bits reduction", the adjusted * MAXPHYADDR is enumerated directly (see 0x80000008). --- linux-5.19.0.orig/arch/x86/kvm/emulate.c +++ linux-5.19.0/arch/x86/kvm/emulate.c @@ -316,7 +316,8 @@ ".align " __stringify(FASTOP_SIZE) " \n\t" \ ".type " name ", @function \n\t" \ name ":\n\t" \ - ASM_ENDBR + ASM_ENDBR \ + IBT_NOSEAL(name) #define FOP_FUNC(name) \ __FOP_FUNC(#name) @@ -793,8 +794,7 @@ ctxt->mode, linear); } -static inline int assign_eip(struct x86_emulate_ctxt *ctxt, ulong dst, - enum x86emul_mode mode) +static inline int assign_eip(struct x86_emulate_ctxt *ctxt, ulong dst) { ulong linear; int rc; @@ -804,41 +804,71 @@ if (ctxt->op_bytes != sizeof(unsigned long)) addr.ea = dst & ((1UL << (ctxt->op_bytes << 3)) - 1); - rc = __linearize(ctxt, addr, &max_size, 1, false, true, mode, &linear); + rc = __linearize(ctxt, addr, &max_size, 1, false, true, ctxt->mode, &linear); if (rc == X86EMUL_CONTINUE) ctxt->_eip = addr.ea; return rc; } +static inline int emulator_recalc_and_set_mode(struct x86_emulate_ctxt *ctxt) +{ + u64 efer; + struct desc_struct cs; + u16 selector; + u32 base3; + + ctxt->ops->get_msr(ctxt, MSR_EFER, &efer); + + if (!(ctxt->ops->get_cr(ctxt, 0) & X86_CR0_PE)) { + /* Real mode. cpu must not have long mode active */ + if (efer & EFER_LMA) + return X86EMUL_UNHANDLEABLE; + ctxt->mode = X86EMUL_MODE_REAL; + return X86EMUL_CONTINUE; + } + + if (ctxt->eflags & X86_EFLAGS_VM) { + /* Protected/VM86 mode. cpu must not have long mode active */ + if (efer & EFER_LMA) + return X86EMUL_UNHANDLEABLE; + ctxt->mode = X86EMUL_MODE_VM86; + return X86EMUL_CONTINUE; + } + + if (!ctxt->ops->get_segment(ctxt, &selector, &cs, &base3, VCPU_SREG_CS)) + return X86EMUL_UNHANDLEABLE; + + if (efer & EFER_LMA) { + if (cs.l) { + /* Proper long mode */ + ctxt->mode = X86EMUL_MODE_PROT64; + } else if (cs.d) { + /* 32 bit compatibility mode*/ + ctxt->mode = X86EMUL_MODE_PROT32; + } else { + ctxt->mode = X86EMUL_MODE_PROT16; + } + } else { + /* Legacy 32 bit / 16 bit mode */ + ctxt->mode = cs.d ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16; + } + + return X86EMUL_CONTINUE; +} + static inline int assign_eip_near(struct x86_emulate_ctxt *ctxt, ulong dst) { - return assign_eip(ctxt, dst, ctxt->mode); + return assign_eip(ctxt, dst); } -static int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst, - const struct desc_struct *cs_desc) +static int assign_eip_far(struct x86_emulate_ctxt *ctxt, ulong dst) { - enum x86emul_mode mode = ctxt->mode; - int rc; + int rc = emulator_recalc_and_set_mode(ctxt); -#ifdef CONFIG_X86_64 - if (ctxt->mode >= X86EMUL_MODE_PROT16) { - if (cs_desc->l) { - u64 efer = 0; + if (rc != X86EMUL_CONTINUE) + return rc; - ctxt->ops->get_msr(ctxt, MSR_EFER, &efer); - if (efer & EFER_LMA) - mode = X86EMUL_MODE_PROT64; - } else - mode = X86EMUL_MODE_PROT32; /* temporary value */ - } -#endif - if (mode == X86EMUL_MODE_PROT16 || mode == X86EMUL_MODE_PROT32) - mode = cs_desc->d ? X86EMUL_MODE_PROT32 : X86EMUL_MODE_PROT16; - rc = assign_eip(ctxt, dst, mode); - if (rc == X86EMUL_CONTINUE) - ctxt->mode = mode; - return rc; + return assign_eip(ctxt, dst); } static inline int jmp_rel(struct x86_emulate_ctxt *ctxt, int rel) @@ -1687,16 +1717,6 @@ case VCPU_SREG_TR: if (seg_desc.s || (seg_desc.type != 1 && seg_desc.type != 9)) goto exception; - if (!seg_desc.p) { - err_vec = NP_VECTOR; - goto exception; - } - old_desc = seg_desc; - seg_desc.type |= 2; /* busy */ - ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc, - sizeof(seg_desc), &ctxt->exception); - if (ret != X86EMUL_CONTINUE) - return ret; break; case VCPU_SREG_LDTR: if (seg_desc.s || seg_desc.type != 2) @@ -1734,8 +1754,17 @@ if (ret != X86EMUL_CONTINUE) return ret; if (emul_is_noncanonical_address(get_desc_base(&seg_desc) | - ((u64)base3 << 32), ctxt)) - return emulate_gp(ctxt, 0); + ((u64)base3 << 32), ctxt)) + return emulate_gp(ctxt, err_code); + } + + if (seg == VCPU_SREG_TR) { + old_desc = seg_desc; + seg_desc.type |= 2; /* busy */ + ret = ctxt->ops->cmpxchg_emulated(ctxt, desc_addr, &old_desc, &seg_desc, + sizeof(seg_desc), &ctxt->exception); + if (ret != X86EMUL_CONTINUE) + return ret; } load: ctxt->ops->set_segment(ctxt, selector, &seg_desc, base3, seg); @@ -1955,7 +1984,7 @@ if (rc != X86EMUL_CONTINUE) return rc; - if (ctxt->modrm_reg == VCPU_SREG_SS) + if (seg == VCPU_SREG_SS) ctxt->interruptibility = KVM_X86_SHADOW_INT_MOV_SS; if (ctxt->op_bytes > 2) rsp_increment(ctxt, ctxt->op_bytes - 2); @@ -2172,7 +2201,7 @@ if (rc != X86EMUL_CONTINUE) return rc; - rc = assign_eip_far(ctxt, ctxt->src.val, &new_desc); + rc = assign_eip_far(ctxt, ctxt->src.val); /* Error handling is not implemented. */ if (rc != X86EMUL_CONTINUE) return X86EMUL_UNHANDLEABLE; @@ -2250,7 +2279,7 @@ &new_desc); if (rc != X86EMUL_CONTINUE) return rc; - rc = assign_eip_far(ctxt, eip, &new_desc); + rc = assign_eip_far(ctxt, eip); /* Error handling is not implemented. */ if (rc != X86EMUL_CONTINUE) return X86EMUL_UNHANDLEABLE; @@ -2633,7 +2662,7 @@ * those side effects need to be explicitly handled for both success * and shutdown. */ - return X86EMUL_CONTINUE; + return emulator_recalc_and_set_mode(ctxt); emulate_shutdown: ctxt->ops->triple_fault(ctxt); @@ -2876,6 +2905,7 @@ ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS); ctxt->_eip = rdx; + ctxt->mode = usermode; *reg_write(ctxt, VCPU_REGS_RSP) = rcx; return X86EMUL_CONTINUE; @@ -3469,7 +3499,7 @@ if (rc != X86EMUL_CONTINUE) return rc; - rc = assign_eip_far(ctxt, ctxt->src.val, &new_desc); + rc = assign_eip_far(ctxt, ctxt->src.val); if (rc != X86EMUL_CONTINUE) goto fail; @@ -3611,11 +3641,25 @@ static int em_cr_write(struct x86_emulate_ctxt *ctxt) { - if (ctxt->ops->set_cr(ctxt, ctxt->modrm_reg, ctxt->src.val)) + int cr_num = ctxt->modrm_reg; + int r; + + if (ctxt->ops->set_cr(ctxt, cr_num, ctxt->src.val)) return emulate_gp(ctxt, 0); /* Disable writeback. */ ctxt->dst.type = OP_NONE; + + if (cr_num == 0) { + /* + * CR0 write might have updated CR0.PE and/or CR0.PG + * which can affect the cpu's execution mode. + */ + r = emulator_recalc_and_set_mode(ctxt); + if (r != X86EMUL_CONTINUE) + return r; + } + return X86EMUL_CONTINUE; } @@ -4134,6 +4178,9 @@ { u32 eax, ecx, edx; + if (!(ctxt->ops->get_cr(ctxt, 4) & X86_CR4_OSXSAVE)) + return emulate_ud(ctxt); + eax = reg_read(ctxt, VCPU_REGS_RAX); edx = reg_read(ctxt, VCPU_REGS_RDX); ecx = reg_read(ctxt, VCPU_REGS_RCX); --- linux-5.19.0.orig/arch/x86/kvm/kvm-asm-offsets.c +++ linux-5.19.0/arch/x86/kvm/kvm-asm-offsets.c @@ -0,0 +1,29 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Generate definitions needed by assembly language modules. + * This code generates raw asm output which is post-processed to extract + * and format the required data. + */ +#define COMPILE_OFFSETS + +#include +#include "vmx/vmx.h" +#include "svm/svm.h" + +static void __used common(void) +{ + if (IS_ENABLED(CONFIG_KVM_AMD)) { + BLANK(); + OFFSET(SVM_vcpu_arch_regs, vcpu_svm, vcpu.arch.regs); + OFFSET(SVM_current_vmcb, vcpu_svm, current_vmcb); + OFFSET(SVM_spec_ctrl, vcpu_svm, spec_ctrl); + OFFSET(SVM_vmcb01, vcpu_svm, vmcb01); + OFFSET(KVM_VMCB_pa, kvm_vmcb_info, pa); + OFFSET(SD_save_area_pa, svm_cpu_data, save_area_pa); + } + + if (IS_ENABLED(CONFIG_KVM_INTEL)) { + BLANK(); + OFFSET(VMX_spec_ctrl, vcpu_vmx, spec_ctrl); + } +} --- linux-5.19.0.orig/arch/x86/kvm/mmu.h +++ linux-5.19.0/arch/x86/kvm/mmu.h @@ -11,6 +11,8 @@ #define PT32_PT_BITS 10 #define PT32_ENT_PER_PAGE (1 << PT32_PT_BITS) +extern bool __read_mostly enable_mmio_caching; + #define PT_WRITABLE_SHIFT 1 #define PT_USER_SHIFT 2 --- linux-5.19.0.orig/arch/x86/kvm/mmu/mmu.c +++ linux-5.19.0/arch/x86/kvm/mmu/mmu.c @@ -2309,6 +2309,7 @@ { bool list_unstable, zapped_root = false; + lockdep_assert_held_write(&kvm->mmu_lock); trace_kvm_mmu_prepare_zap_page(sp); ++kvm->stat.mmu_shadow_zapped; *nr_zapped = mmu_zap_unsync_children(kvm, sp, invalid_list); @@ -4092,14 +4093,14 @@ if (is_page_fault_stale(vcpu, fault, mmu_seq)) goto out_unlock; - r = make_mmu_pages_available(vcpu); - if (r) - goto out_unlock; - - if (is_tdp_mmu_fault) + if (is_tdp_mmu_fault) { r = kvm_tdp_mmu_map(vcpu, fault); - else + } else { + r = make_mmu_pages_available(vcpu); + if (r) + goto out_unlock; r = __direct_map(vcpu, fault); + } out_unlock: if (is_tdp_mmu_fault) @@ -4567,7 +4568,7 @@ if (boot_cpu_is_amd()) __reset_rsvds_bits_mask(shadow_zero_check, reserved_hpa_bits(), - context->root_role.level, false, + context->root_role.level, true, boot_cpu_has(X86_FEATURE_GBPAGES), false, true); else @@ -5907,47 +5908,18 @@ const struct kvm_memory_slot *memslot, int start_level) { - bool flush = false; - if (kvm_memslots_have_rmaps(kvm)) { write_lock(&kvm->mmu_lock); - flush = slot_handle_level(kvm, memslot, slot_rmap_write_protect, - start_level, KVM_MAX_HUGEPAGE_LEVEL, - false); + slot_handle_level(kvm, memslot, slot_rmap_write_protect, + start_level, KVM_MAX_HUGEPAGE_LEVEL, false); write_unlock(&kvm->mmu_lock); } if (is_tdp_mmu_enabled(kvm)) { read_lock(&kvm->mmu_lock); - flush |= kvm_tdp_mmu_wrprot_slot(kvm, memslot, start_level); + kvm_tdp_mmu_wrprot_slot(kvm, memslot, start_level); read_unlock(&kvm->mmu_lock); } - - /* - * Flush TLBs if any SPTEs had to be write-protected to ensure that - * guest writes are reflected in the dirty bitmap before the memslot - * update completes, i.e. before enabling dirty logging is visible to - * userspace. - * - * Perform the TLB flush outside the mmu_lock to reduce the amount of - * time the lock is held. However, this does mean that another CPU can - * now grab mmu_lock and encounter a write-protected SPTE while CPUs - * still have a writable mapping for the associated GFN in their TLB. - * - * This is safe but requires KVM to be careful when making decisions - * based on the write-protection status of an SPTE. Specifically, KVM - * also write-protects SPTEs to monitor changes to guest page tables - * during shadow paging, and must guarantee no CPUs can write to those - * page before the lock is dropped. As mentioned in the previous - * paragraph, a write-protected SPTE is no guarantee that CPU cannot - * perform writes. So to determine if a TLB flush is truly required, KVM - * will clear a separate software-only bit (MMU-writable) and skip the - * flush if-and-only-if this bit was already clear. - * - * See is_writable_pte() for more details. - */ - if (flush) - kvm_arch_flush_remote_tlbs_memslot(kvm, memslot); } /* Must be called with the mmu_lock held in write-mode. */ @@ -6070,32 +6042,30 @@ void kvm_mmu_slot_leaf_clear_dirty(struct kvm *kvm, const struct kvm_memory_slot *memslot) { - bool flush = false; - if (kvm_memslots_have_rmaps(kvm)) { write_lock(&kvm->mmu_lock); /* * Clear dirty bits only on 4k SPTEs since the legacy MMU only * support dirty logging at a 4k granularity. */ - flush = slot_handle_level_4k(kvm, memslot, __rmap_clear_dirty, false); + slot_handle_level_4k(kvm, memslot, __rmap_clear_dirty, false); write_unlock(&kvm->mmu_lock); } if (is_tdp_mmu_enabled(kvm)) { read_lock(&kvm->mmu_lock); - flush |= kvm_tdp_mmu_clear_dirty_slot(kvm, memslot); + kvm_tdp_mmu_clear_dirty_slot(kvm, memslot); read_unlock(&kvm->mmu_lock); } /* + * The caller will flush the TLBs after this function returns. + * * It's also safe to flush TLBs out of mmu lock here as currently this * function is only used for dirty logging, in which case flushing TLB * out of mmu lock also guarantees no dirty pages will be lost in * dirty_bitmap. */ - if (flush) - kvm_arch_flush_remote_tlbs_memslot(kvm, memslot); } void kvm_mmu_zap_all(struct kvm *kvm) @@ -6274,11 +6244,15 @@ /* * nx_huge_pages needs to be resolved to true/false when kvm.ko is loaded, as * its default value of -1 is technically undefined behavior for a boolean. + * Forward the module init call to SPTE code so that it too can handle module + * params that need to be resolved/snapshot. */ -void kvm_mmu_x86_module_init(void) +void __init kvm_mmu_x86_module_init(void) { if (nx_huge_pages == -1) __set_nx_huge_pages(get_nx_auto_mode()); + + kvm_mmu_spte_module_init(); } /* --- linux-5.19.0.orig/arch/x86/kvm/mmu/paging_tmpl.h +++ linux-5.19.0/arch/x86/kvm/mmu/paging_tmpl.h @@ -1053,7 +1053,14 @@ if (sync_mmio_spte(vcpu, &sp->spt[i], gfn, pte_access)) continue; - if (gfn != sp->gfns[i]) { + /* + * Drop the SPTE if the new protections would result in a RWX=0 + * SPTE or if the gfn is changing. The RWX=0 case only affects + * EPT with execute-only support, i.e. EPT without an effective + * "present" bit, as all other paging modes will create a + * read-only SPTE if pte_access is zero. + */ + if ((!pte_access && !shadow_present_mask) || gfn != sp->gfns[i]) { drop_spte(vcpu->kvm, &sp->spt[i]); flush = true; continue; --- linux-5.19.0.orig/arch/x86/kvm/mmu/spte.c +++ linux-5.19.0/arch/x86/kvm/mmu/spte.c @@ -20,7 +20,9 @@ #include bool __read_mostly enable_mmio_caching = true; +static bool __ro_after_init allow_mmio_caching; module_param_named(mmio_caching, enable_mmio_caching, bool, 0444); +EXPORT_SYMBOL_GPL(enable_mmio_caching); u64 __read_mostly shadow_host_writable_mask; u64 __read_mostly shadow_mmu_writable_mask; @@ -42,6 +44,18 @@ u8 __read_mostly shadow_phys_bits; +void __init kvm_mmu_spte_module_init(void) +{ + /* + * Snapshot userspace's desire to allow MMIO caching. Whether or not + * KVM can actually enable MMIO caching depends on vendor-specific + * hardware capabilities and other module params that can't be resolved + * until the vendor module is loaded, i.e. enable_mmio_caching can and + * will change when the vendor module is (re)loaded. + */ + allow_mmio_caching = enable_mmio_caching; +} + static u64 generation_mmio_spte_mask(u64 gen) { u64 mask; @@ -129,6 +143,8 @@ u64 spte = SPTE_MMU_PRESENT_MASK; bool wrprot = false; + WARN_ON_ONCE(!pte_access && !shadow_present_mask); + if (sp->role.ad_disabled) spte |= SPTE_TDP_AD_DISABLED_MASK; else if (kvm_mmu_page_ad_need_write_protect(sp)) @@ -337,6 +353,12 @@ BUG_ON((u64)(unsigned)access_mask != access_mask); WARN_ON(mmio_value & shadow_nonpresent_or_rsvd_lower_gfn_mask); + /* + * Reset to the original module param value to honor userspace's desire + * to (dis)allow MMIO caching. Update the param itself so that + * userspace can see whether or not KVM is actually using MMIO caching. + */ + enable_mmio_caching = allow_mmio_caching; if (!enable_mmio_caching) mmio_value = 0; --- linux-5.19.0.orig/arch/x86/kvm/mmu/spte.h +++ linux-5.19.0/arch/x86/kvm/mmu/spte.h @@ -5,8 +5,6 @@ #include "mmu_internal.h" -extern bool __read_mostly enable_mmio_caching; - /* * A MMU present SPTE is backed by actual memory and may or may not be present * in hardware. E.g. MMIO SPTEs are not considered present. Use bit 11, as it @@ -328,7 +326,7 @@ } /* - * An shadow-present leaf SPTE may be non-writable for 3 possible reasons: + * A shadow-present leaf SPTE may be non-writable for 4 possible reasons: * * 1. To intercept writes for dirty logging. KVM write-protects huge pages * so that they can be split be split down into the dirty logging @@ -346,8 +344,13 @@ * read-only memslot or guest memory backed by a read-only VMA. Writes to * such pages are disallowed entirely. * - * To keep track of why a given SPTE is write-protected, KVM uses 2 - * software-only bits in the SPTE: + * 4. To emulate the Accessed bit for SPTEs without A/D bits. Note, in this + * case, the SPTE is access-protected, not just write-protected! + * + * For cases #1 and #4, KVM can safely make such SPTEs writable without taking + * mmu_lock as capturing the Accessed/Dirty state doesn't require taking it. + * To differentiate #1 and #4 from #2 and #3, KVM uses two software-only bits + * in the SPTE: * * shadow_mmu_writable_mask, aka MMU-writable - * Cleared on SPTEs that KVM is currently write-protecting for shadow paging @@ -376,7 +379,8 @@ * shadow page tables between vCPUs. Write-protecting an SPTE for dirty logging * (which does not clear the MMU-writable bit), does not flush TLBs before * dropping the lock, as it only needs to synchronize guest writes with the - * dirty bitmap. + * dirty bitmap. Similarly, making the SPTE inaccessible (and non-writable) for + * access-tracking via the clear_young() MMU notifier also does not flush TLBs. * * So, there is the problem: clearing the MMU-writable bit can encounter a * write-protected SPTE while CPUs still have writable mappings for that SPTE @@ -446,6 +450,7 @@ u64 kvm_mmu_changed_pte_notifier_make_spte(u64 old_spte, kvm_pfn_t new_pfn); +void __init kvm_mmu_spte_module_init(void); void kvm_mmu_reset_all_pte_masks(void); #endif --- linux-5.19.0.orig/arch/x86/kvm/svm/nested.c +++ linux-5.19.0/arch/x86/kvm/svm/nested.c @@ -320,7 +320,8 @@ return false; } - if (CC(!kvm_is_valid_cr4(vcpu, save->cr4))) + /* Note, SVM doesn't have any additional restrictions on CR4. */ + if (CC(!__kvm_is_valid_cr4(vcpu, save->cr4))) return false; if (CC(!kvm_valid_efer(vcpu, save->efer))) @@ -1084,6 +1085,9 @@ if (!svm->nested.initialized) return; + if (WARN_ON_ONCE(svm->vmcb != svm->vmcb01.ptr)) + svm_switch_vmcb(svm, &svm->vmcb01); + svm_vcpu_free_msrpm(svm->nested.msrpm); svm->nested.msrpm = NULL; @@ -1102,9 +1106,6 @@ svm->nested.initialized = false; } -/* - * Forcibly leave nested mode in order to be able to reset the VCPU later on. - */ void svm_leave_nested(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); --- linux-5.19.0.orig/arch/x86/kvm/svm/sev.c +++ linux-5.19.0/arch/x86/kvm/svm/sev.c @@ -22,6 +22,7 @@ #include #include +#include "mmu.h" #include "x86.h" #include "svm.h" #include "svm_ops.h" @@ -195,7 +196,7 @@ __set_bit(sev->asid, sev_reclaim_asid_bitmap); for_each_possible_cpu(cpu) { - sd = per_cpu(svm_data, cpu); + sd = per_cpu_ptr(&svm_data, cpu); sd->sev_vmcbs[sev->asid] = NULL; } @@ -2221,6 +2222,15 @@ if (!sev_es_enabled) goto out; + /* + * SEV-ES requires MMIO caching as KVM doesn't have access to the guest + * instruction stream, i.e. can't emulate in response to a #NPF and + * instead relies on #NPF(RSVD) being reflected into the guest as #VC + * (the guest can then do a #VMGEXIT to request MMIO emulation). + */ + if (!enable_mmio_caching) + goto out; + /* Does the CPU support SEV-ES? */ if (!boot_cpu_has(X86_FEATURE_SEV_ES)) goto out; @@ -2590,7 +2600,7 @@ void pre_sev_run(struct vcpu_svm *svm, int cpu) { - struct svm_cpu_data *sd = per_cpu(svm_data, cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, cpu); int asid = sev_get_asid(svm->vcpu.kvm); /* Assign the asid allocated with this SEV guest */ --- linux-5.19.0.orig/arch/x86/kvm/svm/svm.c +++ linux-5.19.0/arch/x86/kvm/svm/svm.c @@ -214,7 +214,7 @@ u32 zero1; } __attribute__((packed)); -DEFINE_PER_CPU(struct svm_cpu_data *, svm_data); +DEFINE_PER_CPU(struct svm_cpu_data, svm_data); /* * Only MSR_TSC_AUX is switched via the user return hook. EFER is switched via @@ -315,12 +315,6 @@ return 0; } -static int is_external_interrupt(u32 info) -{ - info &= SVM_EVTINJ_TYPE_MASK | SVM_EVTINJ_VALID; - return info == (SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR); -} - static u32 svm_get_interrupt_shadow(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); @@ -392,6 +386,10 @@ */ (void)svm_skip_emulated_instruction(vcpu); rip = kvm_rip_read(vcpu); + + if (boot_cpu_has(X86_FEATURE_NRIPS)) + svm->vmcb->control.next_rip = rip; + svm->int3_rip = rip + svm->vmcb->save.cs.base; svm->int3_injected = rip - old_rip; } @@ -505,12 +503,7 @@ pr_err("%s: err EOPNOTSUPP on %d\n", __func__, me); return -EINVAL; } - sd = per_cpu(svm_data, me); - if (!sd) { - pr_err("%s: svm_data is NULL on %d\n", __func__, me); - return -EINVAL; - } - + sd = per_cpu_ptr(&svm_data, me); sd->asid_generation = 1; sd->max_asid = cpuid_ebx(SVM_CPUID_FUNC) - 1; sd->next_asid = sd->max_asid + 1; @@ -521,7 +514,7 @@ wrmsrl(MSR_EFER, efer | EFER_SVME); - wrmsrl(MSR_VM_HSAVE_PA, __sme_page_pa(sd->save_area)); + wrmsrl(MSR_VM_HSAVE_PA, sd->save_area_pa); if (static_cpu_has(X86_FEATURE_TSCRATEMSR)) { /* @@ -570,42 +563,37 @@ static void svm_cpu_uninit(int cpu) { - struct svm_cpu_data *sd = per_cpu(svm_data, cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, cpu); - if (!sd) + if (!sd->save_area) return; - per_cpu(svm_data, cpu) = NULL; kfree(sd->sev_vmcbs); __free_page(sd->save_area); - kfree(sd); + sd->save_area_pa = 0; + sd->save_area = NULL; } static int svm_cpu_init(int cpu) { - struct svm_cpu_data *sd; + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, cpu); int ret = -ENOMEM; - sd = kzalloc(sizeof(struct svm_cpu_data), GFP_KERNEL); - if (!sd) - return ret; - sd->cpu = cpu; + memset(sd, 0, sizeof(struct svm_cpu_data)); sd->save_area = alloc_page(GFP_KERNEL | __GFP_ZERO); if (!sd->save_area) - goto free_cpu_data; + return ret; ret = sev_cpu_init(sd); if (ret) goto free_save_area; - per_cpu(svm_data, cpu) = sd; - + sd->save_area_pa = __sme_page_pa(sd->save_area); return 0; free_save_area: __free_page(sd->save_area); -free_cpu_data: - kfree(sd); + sd->save_area = NULL; return ret; } @@ -654,6 +642,15 @@ u32 offset; u32 *msrpm; + /* + * For non-nested case: + * If the L01 MSR bitmap does not intercept the MSR, then we need to + * save it. + * + * For nested case: + * If the L02 MSR bitmap does not intercept the MSR, then we need to + * save it. + */ msrpm = is_guest_mode(vcpu) ? to_svm(vcpu)->nested.msrpm: to_svm(vcpu)->msrpm; @@ -1324,7 +1321,7 @@ int i; for_each_online_cpu(i) - cmpxchg(&per_cpu(svm_data, i)->current_vmcb, vmcb, NULL); + cmpxchg(per_cpu_ptr(&svm_data.current_vmcb, i), vmcb, NULL); } static void svm_vcpu_free(struct kvm_vcpu *vcpu) @@ -1338,6 +1335,7 @@ */ svm_clear_current_vmcb(svm->vmcb); + svm_leave_nested(vcpu); svm_free_nested(svm); sev_free_vcpu(vcpu); @@ -1349,7 +1347,7 @@ static void svm_prepare_switch_to_guest(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); - struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, vcpu->cpu); if (sev_es_guest(vcpu->kvm)) sev_es_unmap_ghcb(svm); @@ -1361,7 +1359,7 @@ * Save additional host state that will be restored on VMEXIT (sev-es) * or subsequent vmload of host save area. */ - vmsave(__sme_page_pa(sd->save_area)); + vmsave(sd->save_area_pa); if (sev_es_guest(vcpu->kvm)) { struct sev_es_save_area *hostsa; hostsa = (struct sev_es_save_area *)(page_address(sd->save_area) + 0x400); @@ -1386,7 +1384,7 @@ static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu) { struct vcpu_svm *svm = to_svm(vcpu); - struct svm_cpu_data *sd = per_cpu(svm_data, cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, cpu); if (sd->current_vmcb != svm->vmcb) { sd->current_vmcb = svm->vmcb; @@ -2607,9 +2605,9 @@ msr->data = 0; switch (msr->index) { - case MSR_F10H_DECFG: - if (boot_cpu_has(X86_FEATURE_LFENCE_RDTSC)) - msr->data |= MSR_F10H_DECFG_LFENCE_SERIALIZE; + case MSR_AMD64_DE_CFG: + if (cpu_feature_enabled(X86_FEATURE_LFENCE_RDTSC)) + msr->data |= MSR_AMD64_DE_CFG_LFENCE_SERIALIZE; break; case MSR_IA32_PERF_CAPABILITIES: return 0; @@ -2710,7 +2708,7 @@ msr_info->data = 0x1E; } break; - case MSR_F10H_DECFG: + case MSR_AMD64_DE_CFG: msr_info->data = svm->msr_decfg; break; default: @@ -2939,7 +2937,7 @@ case MSR_VM_IGNNE: vcpu_unimpl(vcpu, "unimplemented wrmsr: 0x%x data 0x%llx\n", ecx, data); break; - case MSR_F10H_DECFG: { + case MSR_AMD64_DE_CFG: { struct kvm_msr_entry msr_entry; msr_entry.index = msr->index; @@ -3323,15 +3321,6 @@ return 0; } - if (is_external_interrupt(svm->vmcb->control.exit_int_info) && - exit_code != SVM_EXIT_EXCP_BASE + PF_VECTOR && - exit_code != SVM_EXIT_NPF && exit_code != SVM_EXIT_TASK_SWITCH && - exit_code != SVM_EXIT_INTR && exit_code != SVM_EXIT_NMI) - printk(KERN_ERR "%s: unexpected exit_int_info 0x%x " - "exit_code 0x%x\n", - __func__, svm->vmcb->control.exit_int_info, - exit_code); - if (exit_fastpath != EXIT_FASTPATH_NONE) return 1; @@ -3340,7 +3329,7 @@ static void reload_tss(struct kvm_vcpu *vcpu) { - struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, vcpu->cpu); sd->tss_desc->type = 9; /* available 32/64-bit TSS */ load_TR_desc(); @@ -3348,7 +3337,7 @@ static void pre_svm_run(struct kvm_vcpu *vcpu) { - struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu); + struct svm_cpu_data *sd = per_cpu_ptr(&svm_data, vcpu->cpu); struct vcpu_svm *svm = to_svm(vcpu); /* @@ -3385,8 +3374,6 @@ { struct vcpu_svm *svm = to_svm(vcpu); - BUG_ON(!(gif_set(svm))); - trace_kvm_inj_virq(vcpu->arch.interrupt.nr); ++vcpu->stat.irq_injections; @@ -3701,6 +3688,18 @@ vector = exitintinfo & SVM_EXITINTINFO_VEC_MASK; type = exitintinfo & SVM_EXITINTINFO_TYPE_MASK; + /* + * If NextRIP isn't enabled, KVM must manually advance RIP prior to + * injecting the soft exception/interrupt. That advancement needs to + * be unwound if vectoring didn't complete. Note, the new event may + * not be the injected event, e.g. if KVM injected an INTn, the INTn + * hit a #NP in the guest, and the #NP encountered a #PF, the #NP will + * be the reported vectored event, but RIP still needs to be unwound. + */ + if (int3_injected && type == SVM_EXITINTINFO_TYPE_EXEPT && + kvm_is_linear_rip(vcpu, svm->int3_rip)) + kvm_rip_write(vcpu, kvm_rip_read(vcpu) - int3_injected); + switch (type) { case SVM_EXITINTINFO_TYPE_NMI: vcpu->arch.nmi_injected = true; @@ -3714,16 +3713,11 @@ /* * In case of software exceptions, do not reinject the vector, - * but re-execute the instruction instead. Rewind RIP first - * if we emulated INT3 before. + * but re-execute the instruction instead. */ - if (kvm_exception_is_soft(vector)) { - if (vector == BP_VECTOR && int3_injected && - kvm_is_linear_rip(vcpu, svm->int3_rip)) - kvm_rip_write(vcpu, - kvm_rip_read(vcpu) - int3_injected); + if (kvm_exception_is_soft(vector)) break; - } + if (exitintinfo & SVM_EXITINTINFO_VALID_ERR) { u32 err = svm->vmcb->control.exit_int_info_err; kvm_requeue_exception_e(vcpu, vector, err); @@ -3764,30 +3758,16 @@ return EXIT_FASTPATH_NONE; } -static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu) +static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu, bool spec_ctrl_intercepted) { struct vcpu_svm *svm = to_svm(vcpu); - unsigned long vmcb_pa = svm->current_vmcb->pa; guest_state_enter_irqoff(); - if (sev_es_guest(vcpu->kvm)) { - __svm_sev_es_vcpu_run(vmcb_pa); - } else { - struct svm_cpu_data *sd = per_cpu(svm_data, vcpu->cpu); - - /* - * Use a single vmcb (vmcb01 because it's always valid) for - * context switching guest state via VMLOAD/VMSAVE, that way - * the state doesn't need to be copied between vmcb01 and - * vmcb02 when switching vmcbs for nested virtualization. - */ - vmload(svm->vmcb01.pa); - __svm_vcpu_run(vmcb_pa, (unsigned long *)&vcpu->arch.regs); - vmsave(svm->vmcb01.pa); - - vmload(__sme_page_pa(sd->save_area)); - } + if (sev_es_guest(vcpu->kvm)) + __svm_sev_es_vcpu_run(svm, spec_ctrl_intercepted); + else + __svm_vcpu_run(svm, spec_ctrl_intercepted); guest_state_exit_irqoff(); } @@ -3795,6 +3775,7 @@ static __no_kcsan fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu) { struct vcpu_svm *svm = to_svm(vcpu); + bool spec_ctrl_intercepted = msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL); trace_kvm_entry(vcpu); @@ -3853,26 +3834,7 @@ if (!static_cpu_has(X86_FEATURE_V_SPEC_CTRL)) x86_spec_ctrl_set_guest(svm->spec_ctrl, svm->virt_spec_ctrl); - svm_vcpu_enter_exit(vcpu); - - /* - * We do not use IBRS in the kernel. If this vCPU has used the - * SPEC_CTRL MSR it may have left it on; save the value and - * turn it off. This is much more efficient than blindly adding - * it to the atomic save/restore list. Especially as the former - * (Saving guest MSRs on vmexit) doesn't even exist in KVM. - * - * For non-nested case: - * If the L01 MSR bitmap does not intercept the MSR, then we need to - * save it. - * - * For nested case: - * If the L02 MSR bitmap does not intercept the MSR, then we need to - * save it. - */ - if (!static_cpu_has(X86_FEATURE_V_SPEC_CTRL) && - unlikely(!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL))) - svm->spec_ctrl = native_read_msr(MSR_IA32_SPEC_CTRL); + svm_vcpu_enter_exit(vcpu, spec_ctrl_intercepted); if (!sev_es_guest(vcpu->kvm)) reload_tss(vcpu); @@ -4899,13 +4861,16 @@ /* Setup shadow_me_value and shadow_me_mask */ kvm_mmu_set_me_spte_mask(sme_me_mask, sme_me_mask); - /* Note, SEV setup consumes npt_enabled. */ + svm_adjust_mmio_mask(); + + /* + * Note, SEV setup consumes npt_enabled and enable_mmio_caching (which + * may be modified by svm_adjust_mmio_mask()). + */ sev_hardware_setup(); svm_hv_hardware_setup(); - svm_adjust_mmio_mask(); - for_each_possible_cpu(cpu) { r = svm_cpu_init(cpu); if (r) --- linux-5.19.0.orig/arch/x86/kvm/svm/svm.h +++ linux-5.19.0/arch/x86/kvm/svm/svm.h @@ -267,8 +267,6 @@ }; struct svm_cpu_data { - int cpu; - u64 asid_generation; u32 max_asid; u32 next_asid; @@ -276,13 +274,15 @@ struct kvm_ldttss_desc *tss_desc; struct page *save_area; + unsigned long save_area_pa; + struct vmcb *current_vmcb; /* index = sev_asid, value = vmcb pointer */ struct vmcb **sev_vmcbs; }; -DECLARE_PER_CPU(struct svm_cpu_data *, svm_data); +DECLARE_PER_CPU(struct svm_cpu_data, svm_data); void recalc_intercepts(struct vcpu_svm *svm); @@ -660,7 +660,7 @@ /* vmenter.S */ -void __svm_sev_es_vcpu_run(unsigned long vmcb_pa); -void __svm_vcpu_run(unsigned long vmcb_pa, unsigned long *regs); +void __svm_sev_es_vcpu_run(struct vcpu_svm *svm, bool spec_ctrl_intercepted); +void __svm_vcpu_run(struct vcpu_svm *svm, bool spec_ctrl_intercepted); #endif --- linux-5.19.0.orig/arch/x86/kvm/svm/svm_ops.h +++ linux-5.19.0/arch/x86/kvm/svm/svm_ops.h @@ -61,9 +61,4 @@ svm_asm1(vmsave, "a" (pa), "memory"); } -static __always_inline void vmload(unsigned long pa) -{ - svm_asm1(vmload, "a" (pa), "memory"); -} - #endif /* __KVM_X86_SVM_OPS_H */ --- linux-5.19.0.orig/arch/x86/kvm/svm/vmenter.S +++ linux-5.19.0/arch/x86/kvm/svm/vmenter.S @@ -4,35 +4,97 @@ #include #include #include +#include "kvm-asm-offsets.h" #define WORD_SIZE (BITS_PER_LONG / 8) /* Intentionally omit RAX as it's context switched by hardware */ -#define VCPU_RCX __VCPU_REGS_RCX * WORD_SIZE -#define VCPU_RDX __VCPU_REGS_RDX * WORD_SIZE -#define VCPU_RBX __VCPU_REGS_RBX * WORD_SIZE +#define VCPU_RCX (SVM_vcpu_arch_regs + __VCPU_REGS_RCX * WORD_SIZE) +#define VCPU_RDX (SVM_vcpu_arch_regs + __VCPU_REGS_RDX * WORD_SIZE) +#define VCPU_RBX (SVM_vcpu_arch_regs + __VCPU_REGS_RBX * WORD_SIZE) /* Intentionally omit RSP as it's context switched by hardware */ -#define VCPU_RBP __VCPU_REGS_RBP * WORD_SIZE -#define VCPU_RSI __VCPU_REGS_RSI * WORD_SIZE -#define VCPU_RDI __VCPU_REGS_RDI * WORD_SIZE +#define VCPU_RBP (SVM_vcpu_arch_regs + __VCPU_REGS_RBP * WORD_SIZE) +#define VCPU_RSI (SVM_vcpu_arch_regs + __VCPU_REGS_RSI * WORD_SIZE) +#define VCPU_RDI (SVM_vcpu_arch_regs + __VCPU_REGS_RDI * WORD_SIZE) #ifdef CONFIG_X86_64 -#define VCPU_R8 __VCPU_REGS_R8 * WORD_SIZE -#define VCPU_R9 __VCPU_REGS_R9 * WORD_SIZE -#define VCPU_R10 __VCPU_REGS_R10 * WORD_SIZE -#define VCPU_R11 __VCPU_REGS_R11 * WORD_SIZE -#define VCPU_R12 __VCPU_REGS_R12 * WORD_SIZE -#define VCPU_R13 __VCPU_REGS_R13 * WORD_SIZE -#define VCPU_R14 __VCPU_REGS_R14 * WORD_SIZE -#define VCPU_R15 __VCPU_REGS_R15 * WORD_SIZE +#define VCPU_R8 (SVM_vcpu_arch_regs + __VCPU_REGS_R8 * WORD_SIZE) +#define VCPU_R9 (SVM_vcpu_arch_regs + __VCPU_REGS_R9 * WORD_SIZE) +#define VCPU_R10 (SVM_vcpu_arch_regs + __VCPU_REGS_R10 * WORD_SIZE) +#define VCPU_R11 (SVM_vcpu_arch_regs + __VCPU_REGS_R11 * WORD_SIZE) +#define VCPU_R12 (SVM_vcpu_arch_regs + __VCPU_REGS_R12 * WORD_SIZE) +#define VCPU_R13 (SVM_vcpu_arch_regs + __VCPU_REGS_R13 * WORD_SIZE) +#define VCPU_R14 (SVM_vcpu_arch_regs + __VCPU_REGS_R14 * WORD_SIZE) +#define VCPU_R15 (SVM_vcpu_arch_regs + __VCPU_REGS_R15 * WORD_SIZE) #endif +#define SVM_vmcb01_pa (SVM_vmcb01 + KVM_VMCB_pa) + .section .noinstr.text, "ax" +.macro RESTORE_GUEST_SPEC_CTRL + /* No need to do anything if SPEC_CTRL is unset or V_SPEC_CTRL is set */ + ALTERNATIVE_2 "", \ + "jmp 800f", X86_FEATURE_MSR_SPEC_CTRL, \ + "", X86_FEATURE_V_SPEC_CTRL +801: +.endm +.macro RESTORE_GUEST_SPEC_CTRL_BODY +800: + /* + * SPEC_CTRL handling: if the guest's SPEC_CTRL value differs from the + * host's, write the MSR. This is kept out-of-line so that the common + * case does not have to jump. + * + * IMPORTANT: To avoid RSB underflow attacks and any other nastiness, + * there must not be any returns or indirect branches between this code + * and vmentry. + */ + movl SVM_spec_ctrl(%_ASM_DI), %eax + cmp PER_CPU_VAR(x86_spec_ctrl_current), %eax + je 801b + mov $MSR_IA32_SPEC_CTRL, %ecx + xor %edx, %edx + wrmsr + jmp 801b +.endm + +.macro RESTORE_HOST_SPEC_CTRL + /* No need to do anything if SPEC_CTRL is unset or V_SPEC_CTRL is set */ + ALTERNATIVE_2 "", \ + "jmp 900f", X86_FEATURE_MSR_SPEC_CTRL, \ + "", X86_FEATURE_V_SPEC_CTRL +901: +.endm +.macro RESTORE_HOST_SPEC_CTRL_BODY +900: + /* Same for after vmexit. */ + mov $MSR_IA32_SPEC_CTRL, %ecx + + /* + * Load the value that the guest had written into MSR_IA32_SPEC_CTRL, + * if it was not intercepted during guest execution. + */ + cmpb $0, (%_ASM_SP) + jnz 998f + rdmsr + movl %eax, SVM_spec_ctrl(%_ASM_DI) +998: + + /* Now restore the host value of the MSR if different from the guest's. */ + movl PER_CPU_VAR(x86_spec_ctrl_current), %eax + cmp SVM_spec_ctrl(%_ASM_DI), %eax + je 901b + xor %edx, %edx + wrmsr + jmp 901b +.endm + + /** * __svm_vcpu_run - Run a vCPU via a transition to SVM guest mode - * @vmcb_pa: unsigned long - * @regs: unsigned long * (to guest registers) + * @svm: struct vcpu_svm * + * @spec_ctrl_intercepted: bool */ SYM_FUNC_START(__svm_vcpu_run) push %_ASM_BP @@ -47,49 +109,71 @@ #endif push %_ASM_BX - /* Save @regs. */ + /* + * Save variables needed after vmexit on the stack, in inverse + * order compared to when they are needed. + */ + + /* Accessed directly from the stack in RESTORE_HOST_SPEC_CTRL. */ push %_ASM_ARG2 - /* Save @vmcb. */ + /* Needed to restore access to percpu variables. */ + __ASM_SIZE(push) PER_CPU_VAR(svm_data + SD_save_area_pa) + + /* Finally save @svm. */ push %_ASM_ARG1 - /* Move @regs to RAX. */ - mov %_ASM_ARG2, %_ASM_AX +.ifnc _ASM_ARG1, _ASM_DI + /* + * Stash @svm in RDI early. On 32-bit, arguments are in RAX, RCX + * and RDX which are clobbered by RESTORE_GUEST_SPEC_CTRL. + */ + mov %_ASM_ARG1, %_ASM_DI +.endif + + /* Clobbers RAX, RCX, RDX. */ + RESTORE_GUEST_SPEC_CTRL + + /* + * Use a single vmcb (vmcb01 because it's always valid) for + * context switching guest state via VMLOAD/VMSAVE, that way + * the state doesn't need to be copied between vmcb01 and + * vmcb02 when switching vmcbs for nested virtualization. + */ + mov SVM_vmcb01_pa(%_ASM_DI), %_ASM_AX +1: vmload %_ASM_AX +2: + + /* Get svm->current_vmcb->pa into RAX. */ + mov SVM_current_vmcb(%_ASM_DI), %_ASM_AX + mov KVM_VMCB_pa(%_ASM_AX), %_ASM_AX /* Load guest registers. */ - mov VCPU_RCX(%_ASM_AX), %_ASM_CX - mov VCPU_RDX(%_ASM_AX), %_ASM_DX - mov VCPU_RBX(%_ASM_AX), %_ASM_BX - mov VCPU_RBP(%_ASM_AX), %_ASM_BP - mov VCPU_RSI(%_ASM_AX), %_ASM_SI - mov VCPU_RDI(%_ASM_AX), %_ASM_DI -#ifdef CONFIG_X86_64 - mov VCPU_R8 (%_ASM_AX), %r8 - mov VCPU_R9 (%_ASM_AX), %r9 - mov VCPU_R10(%_ASM_AX), %r10 - mov VCPU_R11(%_ASM_AX), %r11 - mov VCPU_R12(%_ASM_AX), %r12 - mov VCPU_R13(%_ASM_AX), %r13 - mov VCPU_R14(%_ASM_AX), %r14 - mov VCPU_R15(%_ASM_AX), %r15 + mov VCPU_RCX(%_ASM_DI), %_ASM_CX + mov VCPU_RDX(%_ASM_DI), %_ASM_DX + mov VCPU_RBX(%_ASM_DI), %_ASM_BX + mov VCPU_RBP(%_ASM_DI), %_ASM_BP + mov VCPU_RSI(%_ASM_DI), %_ASM_SI +#ifdef CONFIG_X86_64 + mov VCPU_R8 (%_ASM_DI), %r8 + mov VCPU_R9 (%_ASM_DI), %r9 + mov VCPU_R10(%_ASM_DI), %r10 + mov VCPU_R11(%_ASM_DI), %r11 + mov VCPU_R12(%_ASM_DI), %r12 + mov VCPU_R13(%_ASM_DI), %r13 + mov VCPU_R14(%_ASM_DI), %r14 + mov VCPU_R15(%_ASM_DI), %r15 #endif - - /* "POP" @vmcb to RAX. */ - pop %_ASM_AX + mov VCPU_RDI(%_ASM_DI), %_ASM_DI /* Enter guest mode */ sti -1: vmrun %_ASM_AX - -2: cli - -#ifdef CONFIG_RETPOLINE - /* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */ - FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE -#endif +3: vmrun %_ASM_AX +4: + cli - /* "POP" @regs to RAX. */ + /* Pop @svm to RAX while it's the only available register. */ pop %_ASM_AX /* Save all guest registers. */ @@ -110,6 +194,26 @@ mov %r15, VCPU_R15(%_ASM_AX) #endif + /* @svm can stay in RDI from now on. */ + mov %_ASM_AX, %_ASM_DI + + mov SVM_vmcb01_pa(%_ASM_DI), %_ASM_AX +5: vmsave %_ASM_AX +6: + + /* Restores GSBASE among other things, allowing access to percpu data. */ + pop %_ASM_AX +7: vmload %_ASM_AX +8: + +#ifdef CONFIG_RETPOLINE + /* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */ + FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE +#endif + + /* Clobbers RAX, RCX, RDX. */ + RESTORE_HOST_SPEC_CTRL + /* * Mitigate RETBleed for AMD/Hygon Zen uarch. RET should be * untrained as soon as we exit the VM and are back to the @@ -145,6 +249,9 @@ xor %r15d, %r15d #endif + /* "Pop" @spec_ctrl_intercepted. */ + pop %_ASM_BX + pop %_ASM_BX #ifdef CONFIG_X86_64 @@ -159,17 +266,33 @@ pop %_ASM_BP RET -3: cmpb $0, kvm_rebooting + RESTORE_GUEST_SPEC_CTRL_BODY + RESTORE_HOST_SPEC_CTRL_BODY + +10: cmpb $0, kvm_rebooting jne 2b ud2 +30: cmpb $0, kvm_rebooting + jne 4b + ud2 +50: cmpb $0, kvm_rebooting + jne 6b + ud2 +70: cmpb $0, kvm_rebooting + jne 8b + ud2 - _ASM_EXTABLE(1b, 3b) + _ASM_EXTABLE(1b, 10b) + _ASM_EXTABLE(3b, 30b) + _ASM_EXTABLE(5b, 50b) + _ASM_EXTABLE(7b, 70b) SYM_FUNC_END(__svm_vcpu_run) /** * __svm_sev_es_vcpu_run - Run a SEV-ES vCPU via a transition to SVM guest mode - * @vmcb_pa: unsigned long + * @svm: struct vcpu_svm * + * @spec_ctrl_intercepted: bool */ SYM_FUNC_START(__svm_sev_es_vcpu_run) push %_ASM_BP @@ -184,8 +307,31 @@ #endif push %_ASM_BX - /* Move @vmcb to RAX. */ - mov %_ASM_ARG1, %_ASM_AX + /* + * Save variables needed after vmexit on the stack, in inverse + * order compared to when they are needed. + */ + + /* Accessed directly from the stack in RESTORE_HOST_SPEC_CTRL. */ + push %_ASM_ARG2 + + /* Save @svm. */ + push %_ASM_ARG1 + +.ifnc _ASM_ARG1, _ASM_DI + /* + * Stash @svm in RDI early. On 32-bit, arguments are in RAX, RCX + * and RDX which are clobbered by RESTORE_GUEST_SPEC_CTRL. + */ + mov %_ASM_ARG1, %_ASM_DI +.endif + + /* Clobbers RAX, RCX, RDX. */ + RESTORE_GUEST_SPEC_CTRL + + /* Get svm->current_vmcb->pa into RAX. */ + mov SVM_current_vmcb(%_ASM_DI), %_ASM_AX + mov KVM_VMCB_pa(%_ASM_AX), %_ASM_AX /* Enter guest mode */ sti @@ -194,11 +340,17 @@ 2: cli + /* Pop @svm to RDI, guest registers have been saved already. */ + pop %_ASM_DI + #ifdef CONFIG_RETPOLINE /* IMPORTANT: Stuff the RSB immediately after VM-Exit, before RET! */ FILL_RETURN_BUFFER %_ASM_AX, RSB_CLEAR_LOOPS, X86_FEATURE_RETPOLINE #endif + /* Clobbers RAX, RCX, RDX. */ + RESTORE_HOST_SPEC_CTRL + /* * Mitigate RETBleed for AMD/Hygon Zen uarch. RET should be * untrained as soon as we exit the VM and are back to the @@ -208,6 +360,9 @@ */ UNTRAIN_RET + /* "Pop" @spec_ctrl_intercepted. */ + pop %_ASM_BX + pop %_ASM_BX #ifdef CONFIG_X86_64 @@ -222,6 +377,9 @@ pop %_ASM_BP RET + RESTORE_GUEST_SPEC_CTRL_BODY + RESTORE_HOST_SPEC_CTRL_BODY + 3: cmpb $0, kvm_rebooting jne 2b ud2 --- linux-5.19.0.orig/arch/x86/kvm/trace.h +++ linux-5.19.0/arch/x86/kvm/trace.h @@ -358,25 +358,29 @@ * Tracepoint for kvm interrupt injection: */ TRACE_EVENT(kvm_inj_exception, - TP_PROTO(unsigned exception, bool has_error, unsigned error_code), - TP_ARGS(exception, has_error, error_code), + TP_PROTO(unsigned exception, bool has_error, unsigned error_code, + bool reinjected), + TP_ARGS(exception, has_error, error_code, reinjected), TP_STRUCT__entry( __field( u8, exception ) __field( u8, has_error ) __field( u32, error_code ) + __field( bool, reinjected ) ), TP_fast_assign( __entry->exception = exception; __entry->has_error = has_error; __entry->error_code = error_code; + __entry->reinjected = reinjected; ), - TP_printk("%s (0x%x)", + TP_printk("%s (0x%x)%s", __print_symbolic(__entry->exception, kvm_trace_sym_exc), /* FIXME: don't print error_code if not present */ - __entry->has_error ? __entry->error_code : 0) + __entry->has_error ? __entry->error_code : 0, + __entry->reinjected ? " [reinjected]" : "") ); /* --- linux-5.19.0.orig/arch/x86/kvm/vmx/capabilities.h +++ linux-5.19.0/arch/x86/kvm/vmx/capabilities.h @@ -21,8 +21,6 @@ #define PMU_CAP_FW_WRITES (1ULL << 13) #define PMU_CAP_LBR_FMT 0x3f -#define DEBUGCTLMSR_LBR_MASK (DEBUGCTLMSR_LBR | DEBUGCTLMSR_FREEZE_LBRS_ON_PMI) - struct nested_vmx_msrs { /* * We only store the "true" versions of the VMX capability MSRs. We @@ -404,17 +402,4 @@ return PMU_CAP_FW_WRITES | perf_cap; } -static inline u64 vmx_supported_debugctl(void) -{ - u64 debugctl = 0; - - if (boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT)) - debugctl |= DEBUGCTLMSR_BUS_LOCK_DETECT; - - if (vmx_get_perf_capabilities() & PMU_CAP_LBR_FMT) - debugctl |= DEBUGCTLMSR_LBR_MASK; - - return debugctl; -} - #endif /* __KVM_X86_VMX_CAPS_H */ --- linux-5.19.0.orig/arch/x86/kvm/vmx/nested.c +++ linux-5.19.0/arch/x86/kvm/vmx/nested.c @@ -1223,7 +1223,7 @@ BIT_ULL(49) | BIT_ULL(54) | BIT_ULL(55) | /* reserved */ BIT_ULL(31) | GENMASK_ULL(47, 45) | GENMASK_ULL(63, 56); - u64 vmx_basic = vmx->nested.msrs.basic; + u64 vmx_basic = vmcs_config.nested.basic; if (!is_bitwise_subset(vmx_basic, data, feature_and_reserved)) return -EINVAL; @@ -1246,36 +1246,42 @@ return 0; } -static int -vmx_restore_control_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data) +static void vmx_get_control_msr(struct nested_vmx_msrs *msrs, u32 msr_index, + u32 **low, u32 **high) { - u64 supported; - u32 *lowp, *highp; - switch (msr_index) { case MSR_IA32_VMX_TRUE_PINBASED_CTLS: - lowp = &vmx->nested.msrs.pinbased_ctls_low; - highp = &vmx->nested.msrs.pinbased_ctls_high; + *low = &msrs->pinbased_ctls_low; + *high = &msrs->pinbased_ctls_high; break; case MSR_IA32_VMX_TRUE_PROCBASED_CTLS: - lowp = &vmx->nested.msrs.procbased_ctls_low; - highp = &vmx->nested.msrs.procbased_ctls_high; + *low = &msrs->procbased_ctls_low; + *high = &msrs->procbased_ctls_high; break; case MSR_IA32_VMX_TRUE_EXIT_CTLS: - lowp = &vmx->nested.msrs.exit_ctls_low; - highp = &vmx->nested.msrs.exit_ctls_high; + *low = &msrs->exit_ctls_low; + *high = &msrs->exit_ctls_high; break; case MSR_IA32_VMX_TRUE_ENTRY_CTLS: - lowp = &vmx->nested.msrs.entry_ctls_low; - highp = &vmx->nested.msrs.entry_ctls_high; + *low = &msrs->entry_ctls_low; + *high = &msrs->entry_ctls_high; break; case MSR_IA32_VMX_PROCBASED_CTLS2: - lowp = &vmx->nested.msrs.secondary_ctls_low; - highp = &vmx->nested.msrs.secondary_ctls_high; + *low = &msrs->secondary_ctls_low; + *high = &msrs->secondary_ctls_high; break; default: BUG(); } +} + +static int +vmx_restore_control_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data) +{ + u32 *lowp, *highp; + u64 supported; + + vmx_get_control_msr(&vmcs_config.nested, msr_index, &lowp, &highp); supported = vmx_control_msr(*lowp, *highp); @@ -1287,6 +1293,7 @@ if (!is_bitwise_subset(supported, data, GENMASK_ULL(63, 32))) return -EINVAL; + vmx_get_control_msr(&vmx->nested.msrs, msr_index, &lowp, &highp); *lowp = data; *highp = data >> 32; return 0; @@ -1300,10 +1307,8 @@ BIT_ULL(28) | BIT_ULL(29) | BIT_ULL(30) | /* reserved */ GENMASK_ULL(13, 9) | BIT_ULL(31); - u64 vmx_misc; - - vmx_misc = vmx_control_msr(vmx->nested.msrs.misc_low, - vmx->nested.msrs.misc_high); + u64 vmx_misc = vmx_control_msr(vmcs_config.nested.misc_low, + vmcs_config.nested.misc_high); if (!is_bitwise_subset(vmx_misc, data, feature_and_reserved_bits)) return -EINVAL; @@ -1331,10 +1336,8 @@ static int vmx_restore_vmx_ept_vpid_cap(struct vcpu_vmx *vmx, u64 data) { - u64 vmx_ept_vpid_cap; - - vmx_ept_vpid_cap = vmx_control_msr(vmx->nested.msrs.ept_caps, - vmx->nested.msrs.vpid_caps); + u64 vmx_ept_vpid_cap = vmx_control_msr(vmcs_config.nested.ept_caps, + vmcs_config.nested.vpid_caps); /* Every bit is either reserved or a feature bit. */ if (!is_bitwise_subset(vmx_ept_vpid_cap, data, -1ULL)) @@ -1345,20 +1348,21 @@ return 0; } -static int vmx_restore_fixed0_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data) +static u64 *vmx_get_fixed0_msr(struct nested_vmx_msrs *msrs, u32 msr_index) { - u64 *msr; - switch (msr_index) { case MSR_IA32_VMX_CR0_FIXED0: - msr = &vmx->nested.msrs.cr0_fixed0; - break; + return &msrs->cr0_fixed0; case MSR_IA32_VMX_CR4_FIXED0: - msr = &vmx->nested.msrs.cr4_fixed0; - break; + return &msrs->cr4_fixed0; default: BUG(); } +} + +static int vmx_restore_fixed0_msr(struct vcpu_vmx *vmx, u32 msr_index, u64 data) +{ + const u64 *msr = vmx_get_fixed0_msr(&vmcs_config.nested, msr_index); /* * 1 bits (which indicates bits which "must-be-1" during VMX operation) @@ -1367,7 +1371,7 @@ if (!is_bitwise_subset(data, *msr, -1ULL)) return -EINVAL; - *msr = data; + *vmx_get_fixed0_msr(&vmx->nested.msrs, msr_index) = data; return 0; } @@ -1428,7 +1432,7 @@ vmx->nested.msrs.vmcs_enum = data; return 0; case MSR_IA32_VMX_VMFUNC: - if (data & ~vmx->nested.msrs.vmfunc_controls) + if (data & ~vmcs_config.nested.vmfunc_controls) return -EINVAL; vmx->nested.msrs.vmfunc_controls = data; return 0; @@ -2318,9 +2322,14 @@ * are emulated by vmx_set_efer() in prepare_vmcs02(), but speculate * on the related bits (if supported by the CPU) in the hope that * we can avoid VMWrites during vmx_set_efer(). + * + * Similarly, take vmcs01's PERF_GLOBAL_CTRL in the hope that if KVM is + * loading PERF_GLOBAL_CTRL via the VMCS for L1, then KVM will want to + * do the same for L2. */ exec_control = __vm_entry_controls_get(vmcs01); - exec_control |= vmcs12->vm_entry_controls; + exec_control |= (vmcs12->vm_entry_controls & + ~VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL); exec_control &= ~(VM_ENTRY_IA32E_MODE | VM_ENTRY_LOAD_IA32_EFER); if (cpu_has_load_ia32_efer()) { if (guest_efer & EFER_LMA) @@ -2613,6 +2622,7 @@ } if ((vmcs12->vm_entry_controls & VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL) && + intel_pmu_has_perf_global_ctrl(vcpu_to_pmu(vcpu)) && WARN_ON_ONCE(kvm_set_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL, vmcs12->guest_ia32_perf_global_ctrl))) { *entry_failure_code = ENTRY_FAIL_DEFAULT; @@ -3373,10 +3383,12 @@ if (likely(!evaluate_pending_interrupts) && kvm_vcpu_apicv_active(vcpu)) evaluate_pending_interrupts |= vmx_has_apicv_interrupt(vcpu); - if (!(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS)) + if (!vmx->nested.nested_run_pending || + !(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_DEBUG_CONTROLS)) vmx->nested.vmcs01_debugctl = vmcs_read64(GUEST_IA32_DEBUGCTL); if (kvm_mpx_supported() && - !(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_BNDCFGS)) + (!vmx->nested.nested_run_pending || + !(vmcs12->vm_entry_controls & VM_ENTRY_LOAD_BNDCFGS))) vmx->nested.vmcs01_guest_bndcfgs = vmcs_read64(GUEST_BNDCFGS); /* @@ -3827,7 +3839,16 @@ u32 intr_info = nr | INTR_INFO_VALID_MASK; if (vcpu->arch.exception.has_error_code) { - vmcs12->vm_exit_intr_error_code = vcpu->arch.exception.error_code; + /* + * Intel CPUs do not generate error codes with bits 31:16 set, + * and more importantly VMX disallows setting bits 31:16 in the + * injected error code for VM-Entry. Drop the bits to mimic + * hardware and avoid inducing failure on nested VM-Entry if L1 + * chooses to inject the exception back to L2. AMD CPUs _do_ + * generate "full" 32-bit error codes, so KVM allows userspace + * to inject exception error codes with bits 31:16 set. + */ + vmcs12->vm_exit_intr_error_code = (u16)vcpu->arch.exception.error_code; intr_info |= INTR_INFO_DELIVER_CODE_MASK; } @@ -4257,14 +4278,6 @@ nested_vmx_abort(vcpu, VMX_ABORT_SAVE_GUEST_MSR_FAIL); } - - /* - * Drop what we picked up for L2 via vmx_complete_interrupts. It is - * preserved above and would only end up incorrectly in L1. - */ - vcpu->arch.nmi_injected = false; - kvm_clear_exception_queue(vcpu); - kvm_clear_interrupt_queue(vcpu); } /* @@ -4336,7 +4349,8 @@ vmcs_write64(GUEST_IA32_PAT, vmcs12->host_ia32_pat); vcpu->arch.pat = vmcs12->host_ia32_pat; } - if (vmcs12->vm_exit_controls & VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL) + if ((vmcs12->vm_exit_controls & VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL) && + intel_pmu_has_perf_global_ctrl(vcpu_to_pmu(vcpu))) WARN_ON_ONCE(kvm_set_msr(vcpu, MSR_CORE_PERF_GLOBAL_CTRL, vmcs12->host_ia32_perf_global_ctrl)); @@ -4603,8 +4617,30 @@ WARN_ON_ONCE(nested_early_check); } + /* + * Drop events/exceptions that were queued for re-injection to L2 + * (picked up via vmx_complete_interrupts()), as well as exceptions + * that were pending for L2. Note, this must NOT be hoisted above + * prepare_vmcs12(), events/exceptions queued for re-injection need to + * be captured in vmcs12 (see vmcs12_save_pending_event()). + */ + vcpu->arch.nmi_injected = false; + kvm_clear_exception_queue(vcpu); + kvm_clear_interrupt_queue(vcpu); + vmx_switch_vmcs(vcpu, &vmx->vmcs01); + /* + * If IBRS is advertised to the vCPU, KVM must flush the indirect + * branch predictors when transitioning from L2 to L1, as L1 expects + * hardware (KVM in this case) to provide separate predictor modes. + * Bare metal isolates VMX root (host) from VMX non-root (guest), but + * doesn't isolate different VMCSs, i.e. in this case, doesn't provide + * separate modes for L2 vs L1. + */ + if (guest_cpuid_has(vcpu, X86_FEATURE_SPEC_CTRL)) + indirect_branch_prediction_barrier(); + /* Update any VMCS fields that might have changed while L2 ran */ vmcs_write32(VM_EXIT_MSR_LOAD_COUNT, vmx->msr_autoload.host.nr); vmcs_write32(VM_ENTRY_MSR_LOAD_COUNT, vmx->msr_autoload.guest.nr); @@ -4962,20 +4998,25 @@ | FEAT_CTL_VMX_ENABLED_OUTSIDE_SMX; /* - * The Intel VMX Instruction Reference lists a bunch of bits that are - * prerequisite to running VMXON, most notably cr4.VMXE must be set to - * 1 (see vmx_is_valid_cr4() for when we allow the guest to set this). - * Otherwise, we should fail with #UD. But most faulting conditions - * have already been checked by hardware, prior to the VM-exit for - * VMXON. We do test guest cr4.VMXE because processor CR4 always has - * that bit set to 1 in non-root mode. + * Note, KVM cannot rely on hardware to perform the CR0/CR4 #UD checks + * that have higher priority than VM-Exit (see Intel SDM's pseudocode + * for VMXON), as KVM must load valid CR0/CR4 values into hardware while + * running the guest, i.e. KVM needs to check the _guest_ values. + * + * Rely on hardware for the other two pre-VM-Exit checks, !VM86 and + * !COMPATIBILITY modes. KVM may run the guest in VM86 to emulate Real + * Mode, but KVM will never take the guest out of those modes. */ - if (!kvm_read_cr4_bits(vcpu, X86_CR4_VMXE)) { + if (!nested_host_cr0_valid(vcpu, kvm_read_cr0(vcpu)) || + !nested_host_cr4_valid(vcpu, kvm_read_cr4(vcpu))) { kvm_queue_exception(vcpu, UD_VECTOR); return 1; } - /* CPL=0 must be checked manually. */ + /* + * CPL=0 and all other checks that are lower priority than VM-Exit must + * be checked manually. + */ if (vmx_get_cpl(vcpu)) { kvm_inject_gp(vcpu, 0); return 1; @@ -6295,9 +6336,6 @@ return kvm_state.size; } -/* - * Forcibly leave nested mode in order to be able to reset the VCPU later on. - */ void vmx_leave_nested(struct kvm_vcpu *vcpu) { if (is_guest_mode(vcpu)) { @@ -6775,6 +6813,9 @@ rdmsrl(MSR_IA32_VMX_CR0_FIXED1, msrs->cr0_fixed1); rdmsrl(MSR_IA32_VMX_CR4_FIXED1, msrs->cr4_fixed1); + if (vmx_umip_emulated()) + msrs->cr4_fixed1 |= X86_CR4_UMIP; + msrs->vmcs_enum = nested_vmx_calc_vmcs_enum_msr(); } --- linux-5.19.0.orig/arch/x86/kvm/vmx/nested.h +++ linux-5.19.0/arch/x86/kvm/vmx/nested.h @@ -281,7 +281,8 @@ u64 fixed0 = to_vmx(vcpu)->nested.msrs.cr4_fixed0; u64 fixed1 = to_vmx(vcpu)->nested.msrs.cr4_fixed1; - return fixed_bits_valid(val, fixed0, fixed1); + return fixed_bits_valid(val, fixed0, fixed1) && + __kvm_is_valid_cr4(vcpu, val); } /* No difference in the restrictions on guest and host CR4 in VMX operation. */ --- linux-5.19.0.orig/arch/x86/kvm/vmx/pmu_intel.c +++ linux-5.19.0/arch/x86/kvm/vmx/pmu_intel.c @@ -98,6 +98,9 @@ { struct kvm_pmu *pmu = pmc_to_pmu(pmc); + if (!intel_pmu_has_perf_global_ctrl(pmu)) + return true; + return test_bit(pmc->idx, (unsigned long *)&pmu->global_ctrl); } @@ -212,7 +215,7 @@ case MSR_CORE_PERF_GLOBAL_STATUS: case MSR_CORE_PERF_GLOBAL_CTRL: case MSR_CORE_PERF_GLOBAL_OVF_CTRL: - ret = pmu->version > 1; + return intel_pmu_has_perf_global_ctrl(pmu); break; default: ret = get_gp_pmc(pmu, msr, MSR_IA32_PERFCTR0) || @@ -395,7 +398,7 @@ case MSR_CORE_PERF_FIXED_CTR_CTRL: if (pmu->fixed_ctr_ctrl == data) return 0; - if (!(data & 0xfffffffffffff444ull)) { + if (!(data & pmu->fixed_ctr_ctrl_mask)) { reprogram_fixed_counters(pmu, data); return 0; } @@ -479,6 +482,7 @@ struct kvm_cpuid_entry2 *entry; union cpuid10_eax eax; union cpuid10_edx edx; + int i; pmu->nr_arch_gp_counters = 0; pmu->nr_arch_fixed_counters = 0; @@ -487,6 +491,9 @@ pmu->version = 0; pmu->reserved_bits = 0xffffffff00200000ull; pmu->raw_event_mask = X86_RAW_EVENT_MASK; + pmu->global_ctrl_mask = ~0ull; + pmu->global_ovf_ctrl_mask = ~0ull; + pmu->fixed_ctr_ctrl_mask = ~0ull; entry = kvm_find_cpuid_entry(vcpu, 0xa, 0); if (!entry || !vcpu->kvm->arch.enable_pmu) @@ -522,6 +529,8 @@ setup_fixed_pmc_eventsel(pmu); } + for (i = 0; i < pmu->nr_arch_fixed_counters; i++) + pmu->fixed_ctr_ctrl_mask &= ~(0xbull << (i * 4)); pmu->global_ctrl = ((1ull << pmu->nr_arch_gp_counters) - 1) | (((1ull << pmu->nr_arch_fixed_counters) - 1) << INTEL_PMC_IDX_FIXED); pmu->global_ctrl_mask = ~pmu->global_ctrl; --- linux-5.19.0.orig/arch/x86/kvm/vmx/vmenter.S +++ linux-5.19.0/arch/x86/kvm/vmx/vmenter.S @@ -1,12 +1,12 @@ /* SPDX-License-Identifier: GPL-2.0 */ #include #include -#include #include #include #include #include #include +#include "kvm-asm-offsets.h" #include "run_flags.h" #define WORD_SIZE (BITS_PER_LONG / 8) @@ -227,11 +227,13 @@ * entries and (in some cases) RSB underflow. * * eIBRS has its own protection against poisoned RSB, so it doesn't - * need the RSB filling sequence. But it does need to be enabled - * before the first unbalanced RET. + * need the RSB filling sequence. But it does need to be enabled, and a + * single call to retire, before the first unbalanced RET. */ - FILL_RETURN_BUFFER %_ASM_CX, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT + FILL_RETURN_BUFFER %_ASM_CX, RSB_CLEAR_LOOPS, X86_FEATURE_RSB_VMEXIT,\ + X86_FEATURE_RSB_VMEXIT_LITE + pop %_ASM_ARG2 /* @flags */ pop %_ASM_ARG1 /* @vmx */ --- linux-5.19.0.orig/arch/x86/kvm/vmx/vmx.c +++ linux-5.19.0/arch/x86/kvm/vmx/vmx.c @@ -835,8 +835,7 @@ if (!(exec_controls_get(vmx) & CPU_BASED_USE_MSR_BITMAPS)) return true; - return vmx_test_msr_bitmap_write(vmx->loaded_vmcs->msr_bitmap, - MSR_IA32_SPEC_CTRL); + return vmx_test_msr_bitmap_write(vmx->loaded_vmcs->msr_bitmap, msr); } unsigned int __vmx_vcpu_run_flags(struct vcpu_vmx *vmx) @@ -1341,8 +1340,10 @@ /* * 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. + * the active VMCS within a vCPU, unless IBRS is advertised to + * the vCPU. To minimize the number of IBPBs executed, KVM + * performs IBPB on nested VM-Exit (a single nested transition + * may switch the active VMCS multiple times). */ if (!buddy || WARN_ON_ONCE(buddy->vmcs != prev)) indirect_branch_prediction_barrier(); @@ -1688,7 +1689,17 @@ kvm_deliver_exception_payload(vcpu); if (has_error_code) { - vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, error_code); + /* + * Despite the error code being architecturally defined as 32 + * bits, and the VMCS field being 32 bits, Intel CPUs and thus + * VMX don't actually supporting setting bits 31:16. Hardware + * will (should) never provide a bogus error code, but AMD CPUs + * do generate error codes with bits 31:16 set, and so KVM's + * ABI lets userspace shove in arbitrary 32-bit values. Drop + * the upper bits to avoid VM-Fail, losing information that + * does't really exist is preferable to killing the VM. + */ + vmcs_write32(VM_ENTRY_EXCEPTION_ERROR_CODE, (u16)error_code); intr_info |= INTR_INFO_DELIVER_CODE_MASK; } @@ -1999,15 +2010,17 @@ return (unsigned long)data; } -static u64 vcpu_supported_debugctl(struct kvm_vcpu *vcpu) +static u64 vmx_get_supported_debugctl(struct kvm_vcpu *vcpu, bool host_initiated) { - u64 debugctl = vmx_supported_debugctl(); + u64 debugctl = 0; - if (!intel_pmu_lbr_is_enabled(vcpu)) - debugctl &= ~DEBUGCTLMSR_LBR_MASK; + if (boot_cpu_has(X86_FEATURE_BUS_LOCK_DETECT) && + (host_initiated || guest_cpuid_has(vcpu, X86_FEATURE_BUS_LOCK_DETECT))) + debugctl |= DEBUGCTLMSR_BUS_LOCK_DETECT; - if (!guest_cpuid_has(vcpu, X86_FEATURE_BUS_LOCK_DETECT)) - debugctl &= ~DEBUGCTLMSR_BUS_LOCK_DETECT; + if ((vmx_get_perf_capabilities() & PMU_CAP_LBR_FMT) && + (host_initiated || intel_pmu_lbr_is_enabled(vcpu))) + debugctl |= DEBUGCTLMSR_LBR | DEBUGCTLMSR_FREEZE_LBRS_ON_PMI; return debugctl; } @@ -2081,7 +2094,9 @@ vmcs_writel(GUEST_SYSENTER_ESP, data); break; case MSR_IA32_DEBUGCTLMSR: { - u64 invalid = data & ~vcpu_supported_debugctl(vcpu); + u64 invalid; + + invalid = data & ~vmx_get_supported_debugctl(vcpu, msr_info->host_initiated); if (invalid & (DEBUGCTLMSR_BTF|DEBUGCTLMSR_LBR)) { if (report_ignored_msrs) vcpu_unimpl(vcpu, "%s: BTF|LBR in IA32_DEBUGCTLMSR 0x%llx, nop\n", @@ -3230,8 +3245,8 @@ { /* * We operate under the default treatment of SMM, so VMX cannot be - * enabled under SMM. Note, whether or not VMXE is allowed at all is - * handled by kvm_is_valid_cr4(). + * enabled under SMM. Note, whether or not VMXE is allowed at all, + * i.e. is a reserved bit, is handled by common x86 code. */ if ((cr4 & X86_CR4_VMXE) && is_smm(vcpu)) return false; @@ -8058,6 +8073,11 @@ if (!cpu_has_virtual_nmis()) enable_vnmi = 0; +#ifdef CONFIG_X86_SGX_KVM + if (!cpu_has_vmx_encls_vmexit()) + enable_sgx = false; +#endif + /* * set_apic_access_page_addr() is used to reload apic access * page upon invalidation. No need to do anything if not --- linux-5.19.0.orig/arch/x86/kvm/vmx/vmx.h +++ linux-5.19.0/arch/x86/kvm/vmx/vmx.h @@ -92,6 +92,18 @@ u32 full; }; +static inline bool intel_pmu_has_perf_global_ctrl(struct kvm_pmu *pmu) +{ + /* + * Architecturally, Intel's SDM states that IA32_PERF_GLOBAL_CTRL is + * supported if "CPUID.0AH: EAX[7:0] > 0", i.e. if the PMU version is + * greater than zero. However, KVM only exposes and emulates the MSR + * to/for the guest if the guest PMU supports at least "Architectural + * Performance Monitoring Version 2". + */ + return pmu->version > 1; +} + #define vcpu_to_lbr_desc(vcpu) (&to_vmx(vcpu)->lbr_desc) #define vcpu_to_lbr_records(vcpu) (&to_vmx(vcpu)->lbr_desc.records) --- linux-5.19.0.orig/arch/x86/kvm/x86.c +++ linux-5.19.0/arch/x86/kvm/x86.c @@ -542,6 +542,7 @@ #define EXCPT_TRAP 1 #define EXCPT_ABORT 2 #define EXCPT_INTERRUPT 3 +#define EXCPT_DB 4 static int exception_type(int vector) { @@ -552,8 +553,14 @@ mask = 1 << vector; - /* #DB is trap, as instruction watchpoints are handled elsewhere */ - if (mask & ((1 << DB_VECTOR) | (1 << BP_VECTOR) | (1 << OF_VECTOR))) + /* + * #DBs can be trap-like or fault-like, the caller must check other CPU + * state, e.g. DR6, to determine whether a #DB is a trap or fault. + */ + if (mask & (1 << DB_VECTOR)) + return EXCPT_DB; + + if (mask & ((1 << BP_VECTOR) | (1 << OF_VECTOR))) return EXCPT_TRAP; if (mask & ((1 << DF_VECTOR) | (1 << MC_VECTOR))) @@ -618,6 +625,12 @@ } EXPORT_SYMBOL_GPL(kvm_deliver_exception_payload); +/* Forcibly leave the nested mode in cases like a vCPU reset */ +static void kvm_leave_nested(struct kvm_vcpu *vcpu) +{ + kvm_x86_ops.nested_ops->leave_nested(vcpu); +} + static void kvm_multiple_exception(struct kvm_vcpu *vcpu, unsigned nr, bool has_error, u32 error_code, bool has_payload, unsigned long payload, bool reinject) @@ -1025,15 +1038,10 @@ } EXPORT_SYMBOL_GPL(kvm_load_host_xsave_state); -static inline u64 kvm_guest_supported_xcr0(struct kvm_vcpu *vcpu) -{ - return vcpu->arch.guest_fpu.fpstate->user_xfeatures; -} - #ifdef CONFIG_X86_64 static inline u64 kvm_guest_supported_xfd(struct kvm_vcpu *vcpu) { - return kvm_guest_supported_xcr0(vcpu) & XFEATURE_MASK_USER_DYNAMIC; + return vcpu->arch.guest_supported_xcr0 & XFEATURE_MASK_USER_DYNAMIC; } #endif @@ -1056,7 +1064,7 @@ * saving. However, xcr0 bit 0 is always set, even if the * emulated CPU does not support XSAVE (see kvm_vcpu_reset()). */ - valid_bits = kvm_guest_supported_xcr0(vcpu) | XFEATURE_MASK_FP; + valid_bits = vcpu->arch.guest_supported_xcr0 | XFEATURE_MASK_FP; if (xcr0 & ~valid_bits) return 1; @@ -1084,6 +1092,7 @@ int kvm_emulate_xsetbv(struct kvm_vcpu *vcpu) { + /* Note, #UD due to CR4.OSXSAVE=0 has priority over the intercept. */ if (static_call(kvm_x86_get_cpl)(vcpu) != 0 || __kvm_set_xcr(vcpu, kvm_rcx_read(vcpu), kvm_read_edx_eax(vcpu))) { kvm_inject_gp(vcpu, 0); @@ -1094,7 +1103,7 @@ } EXPORT_SYMBOL_GPL(kvm_emulate_xsetbv); -bool kvm_is_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) +bool __kvm_is_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) { if (cr4 & cr4_reserved_bits) return false; @@ -1102,9 +1111,15 @@ if (cr4 & vcpu->arch.cr4_guest_rsvd_bits) return false; - return static_call(kvm_x86_is_valid_cr4)(vcpu, cr4); + return true; +} +EXPORT_SYMBOL_GPL(__kvm_is_valid_cr4); + +static bool kvm_is_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4) +{ + return __kvm_is_valid_cr4(vcpu, cr4) && + static_call(kvm_x86_is_valid_cr4)(vcpu, cr4); } -EXPORT_SYMBOL_GPL(kvm_is_valid_cr4); void kvm_post_set_cr4(struct kvm_vcpu *vcpu, unsigned long old_cr4, unsigned long cr4) { @@ -1436,20 +1451,10 @@ MSR_ARCH_PERFMON_PERFCTR0 + 2, MSR_ARCH_PERFMON_PERFCTR0 + 3, MSR_ARCH_PERFMON_PERFCTR0 + 4, MSR_ARCH_PERFMON_PERFCTR0 + 5, MSR_ARCH_PERFMON_PERFCTR0 + 6, MSR_ARCH_PERFMON_PERFCTR0 + 7, - MSR_ARCH_PERFMON_PERFCTR0 + 8, MSR_ARCH_PERFMON_PERFCTR0 + 9, - MSR_ARCH_PERFMON_PERFCTR0 + 10, MSR_ARCH_PERFMON_PERFCTR0 + 11, - MSR_ARCH_PERFMON_PERFCTR0 + 12, MSR_ARCH_PERFMON_PERFCTR0 + 13, - MSR_ARCH_PERFMON_PERFCTR0 + 14, MSR_ARCH_PERFMON_PERFCTR0 + 15, - MSR_ARCH_PERFMON_PERFCTR0 + 16, MSR_ARCH_PERFMON_PERFCTR0 + 17, MSR_ARCH_PERFMON_EVENTSEL0, MSR_ARCH_PERFMON_EVENTSEL1, MSR_ARCH_PERFMON_EVENTSEL0 + 2, MSR_ARCH_PERFMON_EVENTSEL0 + 3, MSR_ARCH_PERFMON_EVENTSEL0 + 4, MSR_ARCH_PERFMON_EVENTSEL0 + 5, MSR_ARCH_PERFMON_EVENTSEL0 + 6, MSR_ARCH_PERFMON_EVENTSEL0 + 7, - MSR_ARCH_PERFMON_EVENTSEL0 + 8, MSR_ARCH_PERFMON_EVENTSEL0 + 9, - MSR_ARCH_PERFMON_EVENTSEL0 + 10, MSR_ARCH_PERFMON_EVENTSEL0 + 11, - MSR_ARCH_PERFMON_EVENTSEL0 + 12, MSR_ARCH_PERFMON_EVENTSEL0 + 13, - MSR_ARCH_PERFMON_EVENTSEL0 + 14, MSR_ARCH_PERFMON_EVENTSEL0 + 15, - MSR_ARCH_PERFMON_EVENTSEL0 + 16, MSR_ARCH_PERFMON_EVENTSEL0 + 17, MSR_K7_EVNTSEL0, MSR_K7_EVNTSEL1, MSR_K7_EVNTSEL2, MSR_K7_EVNTSEL3, MSR_K7_PERFCTR0, MSR_K7_PERFCTR1, MSR_K7_PERFCTR2, MSR_K7_PERFCTR3, @@ -1555,7 +1560,7 @@ MSR_IA32_VMX_EPT_VPID_CAP, MSR_IA32_VMX_VMFUNC, - MSR_F10H_DECFG, + MSR_AMD64_DE_CFG, MSR_IA32_UCODE_REV, MSR_IA32_ARCH_CAPABILITIES, MSR_IA32_PERF_CAPABILITIES, @@ -1564,12 +1569,32 @@ static u32 msr_based_features[ARRAY_SIZE(msr_based_features_all)]; static unsigned int num_msr_based_features; +/* + * Some IA32_ARCH_CAPABILITIES bits have dependencies on MSRs that KVM + * does not yet virtualize. These include: + * 10 - MISC_PACKAGE_CTRLS + * 11 - ENERGY_FILTERING_CTL + * 12 - DOITM + * 18 - FB_CLEAR_CTRL + * 21 - XAPIC_DISABLE_STATUS + * 23 - OVERCLOCKING_STATUS + */ + +#define KVM_SUPPORTED_ARCH_CAP \ + (ARCH_CAP_RDCL_NO | ARCH_CAP_IBRS_ALL | ARCH_CAP_RSBA | \ + ARCH_CAP_SKIP_VMENTRY_L1DFLUSH | ARCH_CAP_SSB_NO | ARCH_CAP_MDS_NO | \ + ARCH_CAP_PSCHANGE_MC_NO | ARCH_CAP_TSX_CTRL_MSR | ARCH_CAP_TAA_NO | \ + ARCH_CAP_SBDR_SSDP_NO | ARCH_CAP_FBSDP_NO | ARCH_CAP_PSDP_NO | \ + ARCH_CAP_FB_CLEAR | ARCH_CAP_RRSBA | ARCH_CAP_PBRSB_NO) + static u64 kvm_get_arch_capabilities(void) { u64 data = 0; - if (boot_cpu_has(X86_FEATURE_ARCH_CAPABILITIES)) + if (boot_cpu_has(X86_FEATURE_ARCH_CAPABILITIES)) { rdmsrl(MSR_IA32_ARCH_CAPABILITIES, data); + data &= KVM_SUPPORTED_ARCH_CAP; + } /* * If nx_huge_pages is enabled, KVM's shadow paging will ensure that @@ -1617,9 +1642,6 @@ */ } - /* Guests don't need to know "Fill buffer clear control" exists */ - data &= ~ARCH_CAP_FB_CLEAR_CTRL; - return data; } @@ -2283,11 +2305,11 @@ /* we verify if the enable bit is set... */ if (system_time & 1) { - kvm_gfn_to_pfn_cache_init(vcpu->kvm, &vcpu->arch.pv_time, vcpu, - KVM_HOST_USES_PFN, system_time & ~1ULL, - sizeof(struct pvclock_vcpu_time_info)); + kvm_gpc_activate(vcpu->kvm, &vcpu->arch.pv_time, vcpu, + KVM_HOST_USES_PFN, system_time & ~1ULL, + sizeof(struct pvclock_vcpu_time_info)); } else { - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, &vcpu->arch.pv_time); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.pv_time); } return; @@ -3239,17 +3261,20 @@ /* 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 - * this to avoid an uncatched #GP in the guest + * this to avoid an uncatched #GP in the guest. + * + * UNIXWARE clears bit 0 of MC1_CTL to ignore + * correctable, single-bit ECC data errors. */ if ((offset & 0x3) == 0 && - data != 0 && (data | (1 << 10)) != ~(u64)0) - return -1; + data != 0 && (data | (1 << 10) | 1) != ~(u64)0) + return 1; /* MCi_STATUS */ if (!msr_info->host_initiated && (offset & 0x3) == 1 && data != 0) { if (!can_set_mci_status(vcpu)) - return -1; + return 1; } vcpu->arch.mce_banks[offset] = data; @@ -3324,7 +3349,7 @@ static void kvmclock_reset(struct kvm_vcpu *vcpu) { - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, &vcpu->arch.pv_time); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.pv_time); vcpu->arch.time = 0; } @@ -3380,6 +3405,7 @@ struct gfn_to_hva_cache *ghc = &vcpu->arch.st.cache; struct kvm_steal_time __user *st; struct kvm_memslots *slots; + gpa_t gpa = vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS; u64 steal; u32 version; @@ -3397,13 +3423,12 @@ slots = kvm_memslots(vcpu->kvm); if (unlikely(slots->generation != ghc->generation || + gpa != ghc->gpa || kvm_is_error_hva(ghc->hva) || !ghc->memslot)) { - gfn_t gfn = vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS; - /* We rely on the fact that it fits in a single page. */ BUILD_BUG_ON((sizeof(*st) - 1) & KVM_STEAL_VALID_BITS); - if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gfn, sizeof(*st)) || + if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gpa, sizeof(*st)) || kvm_is_error_hva(ghc->hva) || !ghc->memslot) return; } @@ -4392,10 +4417,10 @@ if (r < sizeof(struct kvm_xsave)) r = sizeof(struct kvm_xsave); break; + } case KVM_CAP_PMU_CAPABILITY: r = enable_pmu ? KVM_CAP_PMU_VALID_MASK : 0; break; - } case KVM_CAP_DISABLE_QUIRKS2: r = KVM_X86_VALID_QUIRKS; break; @@ -4629,6 +4654,7 @@ struct kvm_steal_time __user *st; struct kvm_memslots *slots; static const u8 preempted = KVM_VCPU_PREEMPTED; + gpa_t gpa = vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS; /* * The vCPU can be marked preempted if and only if the VM-Exit was on @@ -4656,6 +4682,7 @@ slots = kvm_memslots(vcpu->kvm); if (unlikely(slots->generation != ghc->generation || + gpa != ghc->gpa || kvm_is_error_hva(ghc->hva) || !ghc->memslot)) return; @@ -5006,7 +5033,7 @@ if (events->flags & KVM_VCPUEVENT_VALID_SMM) { if (!!(vcpu->arch.hflags & HF_SMM_MASK) != events->smi.smm) { - kvm_x86_ops.nested_ops->leave_nested(vcpu); + kvm_leave_nested(vcpu); kvm_smm_changed(vcpu, events->smi.smm); } @@ -6175,26 +6202,22 @@ return 0; } -static int kvm_vm_ioctl_set_msr_filter(struct kvm *kvm, void __user *argp) +static int kvm_vm_ioctl_set_msr_filter(struct kvm *kvm, + struct kvm_msr_filter *filter) { - struct kvm_msr_filter __user *user_msr_filter = argp; struct kvm_x86_msr_filter *new_filter, *old_filter; - struct kvm_msr_filter filter; bool default_allow; bool empty = true; int r = 0; u32 i; - if (copy_from_user(&filter, user_msr_filter, sizeof(filter))) - return -EFAULT; - - if (filter.flags & ~KVM_MSR_FILTER_DEFAULT_DENY) + if (filter->flags & ~KVM_MSR_FILTER_DEFAULT_DENY) return -EINVAL; - for (i = 0; i < ARRAY_SIZE(filter.ranges); i++) - empty &= !filter.ranges[i].nmsrs; + for (i = 0; i < ARRAY_SIZE(filter->ranges); i++) + empty &= !filter->ranges[i].nmsrs; - default_allow = !(filter.flags & KVM_MSR_FILTER_DEFAULT_DENY); + default_allow = !(filter->flags & KVM_MSR_FILTER_DEFAULT_DENY); if (empty && !default_allow) return -EINVAL; @@ -6202,8 +6225,8 @@ if (!new_filter) return -ENOMEM; - for (i = 0; i < ARRAY_SIZE(filter.ranges); i++) { - r = kvm_add_msr_filter(new_filter, &filter.ranges[i]); + for (i = 0; i < ARRAY_SIZE(filter->ranges); i++) { + r = kvm_add_msr_filter(new_filter, &filter->ranges[i]); if (r) { kvm_free_msr_filter(new_filter); return r; @@ -6226,6 +6249,62 @@ return 0; } +#ifdef CONFIG_KVM_COMPAT +/* for KVM_X86_SET_MSR_FILTER */ +struct kvm_msr_filter_range_compat { + __u32 flags; + __u32 nmsrs; + __u32 base; + __u32 bitmap; +}; + +struct kvm_msr_filter_compat { + __u32 flags; + struct kvm_msr_filter_range_compat ranges[KVM_MSR_FILTER_MAX_RANGES]; +}; + +#define KVM_X86_SET_MSR_FILTER_COMPAT _IOW(KVMIO, 0xc6, struct kvm_msr_filter_compat) + +long kvm_arch_vm_compat_ioctl(struct file *filp, unsigned int ioctl, + unsigned long arg) +{ + void __user *argp = (void __user *)arg; + struct kvm *kvm = filp->private_data; + long r = -ENOTTY; + + switch (ioctl) { + case KVM_X86_SET_MSR_FILTER_COMPAT: { + struct kvm_msr_filter __user *user_msr_filter = argp; + struct kvm_msr_filter_compat filter_compat; + struct kvm_msr_filter filter; + int i; + + if (copy_from_user(&filter_compat, user_msr_filter, + sizeof(filter_compat))) + return -EFAULT; + + filter.flags = filter_compat.flags; + for (i = 0; i < ARRAY_SIZE(filter.ranges); i++) { + struct kvm_msr_filter_range_compat *cr; + + cr = &filter_compat.ranges[i]; + filter.ranges[i] = (struct kvm_msr_filter_range) { + .flags = cr->flags, + .nmsrs = cr->nmsrs, + .base = cr->base, + .bitmap = (__u8 *)(ulong)cr->bitmap, + }; + } + + r = kvm_vm_ioctl_set_msr_filter(kvm, &filter); + break; + } + } + + return r; +} +#endif + #ifdef CONFIG_HAVE_KVM_PM_NOTIFIER static int kvm_arch_suspend_notifier(struct kvm *kvm) { @@ -6648,9 +6727,16 @@ case KVM_SET_PMU_EVENT_FILTER: r = kvm_vm_ioctl_set_pmu_event_filter(kvm, argp); break; - case KVM_X86_SET_MSR_FILTER: - r = kvm_vm_ioctl_set_msr_filter(kvm, argp); + case KVM_X86_SET_MSR_FILTER: { + struct kvm_msr_filter __user *user_msr_filter = argp; + struct kvm_msr_filter filter; + + if (copy_from_user(&filter, user_msr_filter, sizeof(filter))) + return -EFAULT; + + r = kvm_vm_ioctl_set_msr_filter(kvm, &filter); break; + } default: r = -ENOTTY; } @@ -6718,12 +6804,12 @@ intel_pt_validate_hw_cap(PT_CAP_num_address_ranges) * 2) continue; break; - case MSR_ARCH_PERFMON_PERFCTR0 ... MSR_ARCH_PERFMON_PERFCTR0 + 17: + case MSR_ARCH_PERFMON_PERFCTR0 ... MSR_ARCH_PERFMON_PERFCTR0 + 7: if (msrs_to_save_all[i] - MSR_ARCH_PERFMON_PERFCTR0 >= min(INTEL_PMC_MAX_GENERIC, x86_pmu.num_counters_gp)) continue; break; - case MSR_ARCH_PERFMON_EVENTSEL0 ... MSR_ARCH_PERFMON_EVENTSEL0 + 17: + case MSR_ARCH_PERFMON_EVENTSEL0 ... MSR_ARCH_PERFMON_EVENTSEL0 + 7: if (msrs_to_save_all[i] - MSR_ARCH_PERFMON_EVENTSEL0 >= min(INTEL_PMC_MAX_GENERIC, x86_pmu.num_counters_gp)) continue; @@ -8577,6 +8663,12 @@ unsigned long rflags = static_call(kvm_x86_get_rflags)(vcpu); toggle_interruptibility(vcpu, ctxt->interruptibility); vcpu->arch.emulate_regs_need_sync_to_vcpu = false; + + /* + * Note, EXCPT_DB is assumed to be fault-like as the emulator + * only supports code breakpoints and general detect #DB, both + * of which are fault-like. + */ if (!ctxt->have_exception || exception_type(ctxt->exception.vector) == EXCPT_TRAP) { kvm_pmu_trigger_event(vcpu, PERF_COUNT_HW_INSTRUCTIONS); @@ -8967,7 +9059,7 @@ goto out; } if (ops->disabled_by_bios()) { - pr_err_ratelimited("kvm: support for '%s' disabled by bios\n", + pr_warn_ratelimited("kvm: support for '%s' disabled by bios\n", ops->runtime_ops->name); r = -EOPNOTSUPP; goto out; @@ -9435,6 +9527,11 @@ static void kvm_inject_exception(struct kvm_vcpu *vcpu) { + trace_kvm_inj_exception(vcpu->arch.exception.nr, + vcpu->arch.exception.has_error_code, + vcpu->arch.exception.error_code, + vcpu->arch.exception.injected); + if (vcpu->arch.exception.error_code && !is_protmode(vcpu)) vcpu->arch.exception.error_code = false; static_call(kvm_x86_queue_exception)(vcpu); @@ -9492,13 +9589,16 @@ /* try to inject new event if pending */ if (vcpu->arch.exception.pending) { - trace_kvm_inj_exception(vcpu->arch.exception.nr, - vcpu->arch.exception.has_error_code, - vcpu->arch.exception.error_code); - - vcpu->arch.exception.pending = false; - vcpu->arch.exception.injected = true; - + /* + * Fault-class exceptions, except #DBs, set RF=1 in the RFLAGS + * value pushed on the stack. Trap-like exception and all #DBs + * leave RF as-is (KVM follows Intel's behavior in this regard; + * AMD states that code breakpoint #DBs excplitly clear RF=0). + * + * Note, most versions of Intel's SDM and AMD's APM incorrectly + * describe the behavior of General Detect #DBs, which are + * fault-like. They do _not_ set RF, a la code breakpoints. + */ if (exception_type(vcpu->arch.exception.nr) == EXCPT_FAULT) __kvm_set_rflags(vcpu, kvm_get_rflags(vcpu) | X86_EFLAGS_RF); @@ -9512,6 +9612,10 @@ } kvm_inject_exception(vcpu); + + vcpu->arch.exception.pending = false; + vcpu->arch.exception.injected = true; + can_inject = false; } @@ -11292,6 +11396,8 @@ vcpu->arch.regs_avail = ~0; vcpu->arch.regs_dirty = ~0; + kvm_gpc_init(&vcpu->arch.pv_time); + if (!irqchip_in_kernel(vcpu->kvm) || kvm_vcpu_is_reset_bsp(vcpu)) vcpu->arch.mp_state = KVM_MP_STATE_RUNNABLE; else @@ -11457,8 +11563,18 @@ WARN_ON_ONCE(!init_event && (old_cr0 || kvm_read_cr3(vcpu) || kvm_read_cr4(vcpu))); + /* + * SVM doesn't unconditionally VM-Exit on INIT and SHUTDOWN, thus it's + * possible to INIT the vCPU while L2 is active. Force the vCPU back + * into L1 as EFER.SVME is cleared on INIT (along with all other EFER + * bits), i.e. virtualization is disabled. + */ + if (is_guest_mode(vcpu)) + kvm_leave_nested(vcpu); + kvm_lapic_reset(vcpu, init_event); + WARN_ON_ONCE(is_guest_mode(vcpu) || is_smm(vcpu)); vcpu->arch.hflags = 0; vcpu->arch.smi_pending = 0; @@ -12237,6 +12353,50 @@ } else { kvm_mmu_slot_remove_write_access(kvm, new, PG_LEVEL_4K); } + + /* + * Unconditionally flush the TLBs after enabling dirty logging. + * A flush is almost always going to be necessary (see below), + * and unconditionally flushing allows the helpers to omit + * the subtly complex checks when removing write access. + * + * Do the flush outside of mmu_lock to reduce the amount of + * time mmu_lock is held. Flushing after dropping mmu_lock is + * safe as KVM only needs to guarantee the slot is fully + * write-protected before returning to userspace, i.e. before + * userspace can consume the dirty status. + * + * Flushing outside of mmu_lock requires KVM to be careful when + * making decisions based on writable status of an SPTE, e.g. a + * !writable SPTE doesn't guarantee a CPU can't perform writes. + * + * Specifically, KVM also write-protects guest page tables to + * monitor changes when using shadow paging, and must guarantee + * no CPUs can write to those page before mmu_lock is dropped. + * Because CPUs may have stale TLB entries at this point, a + * !writable SPTE doesn't guarantee CPUs can't perform writes. + * + * KVM also allows making SPTES writable outside of mmu_lock, + * e.g. to allow dirty logging without taking mmu_lock. + * + * To handle these scenarios, KVM uses a separate software-only + * bit (MMU-writable) to track if a SPTE is !writable due to + * a guest page table being write-protected (KVM clears the + * MMU-writable flag when write-protecting for shadow paging). + * + * The use of MMU-writable is also the primary motivation for + * the unconditional flush. Because KVM must guarantee that a + * CPU doesn't contain stale, writable TLB entries for a + * !MMU-writable SPTE, KVM must flush if it encounters any + * MMU-writable SPTE regardless of whether the actual hardware + * writable bit was set. I.e. KVM is almost guaranteed to need + * to flush, while unconditionally flushing allows the "remove + * write access" helpers to ignore MMU-writable entirely. + * + * See is_writable_pte() for more details (the case involving + * access-tracked SPTEs is particularly relevant). + */ + kvm_arch_flush_remote_tlbs_memslot(kvm, new); } } --- linux-5.19.0.orig/arch/x86/kvm/x86.h +++ linux-5.19.0/arch/x86/kvm/x86.h @@ -407,7 +407,7 @@ void kvm_load_guest_xsave_state(struct kvm_vcpu *vcpu); void kvm_load_host_xsave_state(struct kvm_vcpu *vcpu); int kvm_spec_ctrl_test_value(u64 value); -bool kvm_is_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4); +bool __kvm_is_valid_cr4(struct kvm_vcpu *vcpu, unsigned long cr4); int kvm_handle_memory_failure(struct kvm_vcpu *vcpu, int r, struct x86_exception *e); int kvm_handle_invpcid(struct kvm_vcpu *vcpu, unsigned long type, gva_t gva); --- linux-5.19.0.orig/arch/x86/kvm/xen.c +++ linux-5.19.0/arch/x86/kvm/xen.c @@ -42,13 +42,13 @@ int idx = srcu_read_lock(&kvm->srcu); if (gfn == GPA_INVALID) { - kvm_gfn_to_pfn_cache_destroy(kvm, gpc); + kvm_gpc_deactivate(kvm, gpc); goto out; } do { - ret = kvm_gfn_to_pfn_cache_init(kvm, gpc, NULL, KVM_HOST_USES_PFN, - gpa, PAGE_SIZE); + ret = kvm_gpc_activate(kvm, gpc, NULL, KVM_HOST_USES_PFN, gpa, + PAGE_SIZE); if (ret) goto out; @@ -554,15 +554,15 @@ offsetof(struct compat_vcpu_info, time)); if (data->u.gpa == GPA_INVALID) { - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, &vcpu->arch.xen.vcpu_info_cache); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.xen.vcpu_info_cache); r = 0; break; } - r = kvm_gfn_to_pfn_cache_init(vcpu->kvm, - &vcpu->arch.xen.vcpu_info_cache, - NULL, KVM_HOST_USES_PFN, data->u.gpa, - sizeof(struct vcpu_info)); + r = kvm_gpc_activate(vcpu->kvm, + &vcpu->arch.xen.vcpu_info_cache, NULL, + KVM_HOST_USES_PFN, data->u.gpa, + sizeof(struct vcpu_info)); if (!r) kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); @@ -570,16 +570,16 @@ case KVM_XEN_VCPU_ATTR_TYPE_VCPU_TIME_INFO: if (data->u.gpa == GPA_INVALID) { - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, - &vcpu->arch.xen.vcpu_time_info_cache); + kvm_gpc_deactivate(vcpu->kvm, + &vcpu->arch.xen.vcpu_time_info_cache); r = 0; break; } - r = kvm_gfn_to_pfn_cache_init(vcpu->kvm, - &vcpu->arch.xen.vcpu_time_info_cache, - NULL, KVM_HOST_USES_PFN, data->u.gpa, - sizeof(struct pvclock_vcpu_time_info)); + r = kvm_gpc_activate(vcpu->kvm, + &vcpu->arch.xen.vcpu_time_info_cache, + NULL, KVM_HOST_USES_PFN, data->u.gpa, + sizeof(struct pvclock_vcpu_time_info)); if (!r) kvm_make_request(KVM_REQ_CLOCK_UPDATE, vcpu); break; @@ -590,16 +590,15 @@ break; } if (data->u.gpa == GPA_INVALID) { - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, - &vcpu->arch.xen.runstate_cache); + kvm_gpc_deactivate(vcpu->kvm, + &vcpu->arch.xen.runstate_cache); r = 0; break; } - r = kvm_gfn_to_pfn_cache_init(vcpu->kvm, - &vcpu->arch.xen.runstate_cache, - NULL, KVM_HOST_USES_PFN, data->u.gpa, - sizeof(struct vcpu_runstate_info)); + r = kvm_gpc_activate(vcpu->kvm, &vcpu->arch.xen.runstate_cache, + NULL, KVM_HOST_USES_PFN, data->u.gpa, + sizeof(struct vcpu_runstate_info)); break; case KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_CURRENT: @@ -707,23 +706,24 @@ break; case KVM_XEN_VCPU_ATTR_TYPE_TIMER: - if (data->u.timer.port) { - if (data->u.timer.priority != KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL) { - r = -EINVAL; - break; - } - vcpu->arch.xen.timer_virq = data->u.timer.port; + if (data->u.timer.port && + data->u.timer.priority != KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL) { + r = -EINVAL; + break; + } + + if (!vcpu->arch.xen.timer.function) kvm_xen_init_timer(vcpu); - /* Restart the timer if it's set */ - if (data->u.timer.expires_ns) - kvm_xen_start_timer(vcpu, data->u.timer.expires_ns, - data->u.timer.expires_ns - - get_kvmclock_ns(vcpu->kvm)); - } else if (kvm_xen_timer_enabled(vcpu)) { - kvm_xen_stop_timer(vcpu); - vcpu->arch.xen.timer_virq = 0; - } + /* Stop the timer (if it's running) before changing the vector */ + kvm_xen_stop_timer(vcpu); + vcpu->arch.xen.timer_virq = data->u.timer.port; + + /* Start the timer if the new value has a valid vector+expiry. */ + if (data->u.timer.port && data->u.timer.expires_ns) + kvm_xen_start_timer(vcpu, data->u.timer.expires_ns, + data->u.timer.expires_ns - + get_kvmclock_ns(vcpu->kvm)); r = 0; break; @@ -954,6 +954,14 @@ return kvm_xen_hypercall_set_result(vcpu, run->xen.u.hcall.result); } +static inline int max_evtchn_port(struct kvm *kvm) +{ + if (IS_ENABLED(CONFIG_64BIT) && kvm->arch.xen.long_mode) + return EVTCHN_2L_NR_CHANNELS; + else + return COMPAT_EVTCHN_2L_NR_CHANNELS; +} + static bool wait_pending_event(struct kvm_vcpu *vcpu, int nr_ports, evtchn_port_t *ports) { @@ -1042,6 +1050,10 @@ *r = -EFAULT; goto out; } + if (ports[i] >= max_evtchn_port(vcpu->kvm)) { + *r = -EINVAL; + goto out; + } } if (sched_poll.nr_ports == 1) @@ -1216,6 +1228,7 @@ bool longmode; u64 input, params[6], r = -ENOSYS; bool handled = false; + u8 cpl; input = (u64)kvm_register_read(vcpu, VCPU_REGS_RAX); @@ -1243,9 +1256,17 @@ params[5] = (u64)kvm_r9_read(vcpu); } #endif + cpl = static_call(kvm_x86_get_cpl)(vcpu); trace_kvm_xen_hypercall(input, params[0], params[1], params[2], params[3], params[4], params[5]); + /* + * Only allow hypercall acceleration for CPL0. The rare hypercalls that + * are permitted in guest userspace can be handled by the VMM. + */ + if (unlikely(cpl > 0)) + goto handle_in_userspace; + switch (input) { case __HYPERVISOR_xen_version: if (params[0] == XENVER_version && vcpu->kvm->arch.xen.xen_version) { @@ -1280,10 +1301,11 @@ if (handled) return kvm_xen_hypercall_set_result(vcpu, r); +handle_in_userspace: vcpu->run->exit_reason = KVM_EXIT_XEN; vcpu->run->xen.type = KVM_EXIT_XEN_HCALL; vcpu->run->xen.u.hcall.longmode = longmode; - vcpu->run->xen.u.hcall.cpl = static_call(kvm_x86_get_cpl)(vcpu); + vcpu->run->xen.u.hcall.cpl = cpl; vcpu->run->xen.u.hcall.input = input; vcpu->run->xen.u.hcall.params[0] = params[0]; vcpu->run->xen.u.hcall.params[1] = params[1]; @@ -1298,14 +1320,6 @@ return 0; } -static inline int max_evtchn_port(struct kvm *kvm) -{ - if (IS_ENABLED(CONFIG_64BIT) && kvm->arch.xen.long_mode) - return EVTCHN_2L_NR_CHANNELS; - else - return COMPAT_EVTCHN_2L_NR_CHANNELS; -} - static void kvm_xen_check_poller(struct kvm_vcpu *vcpu, int port) { int poll_evtchn = vcpu->arch.xen.poll_evtchn; @@ -1667,18 +1681,18 @@ case EVTCHNSTAT_ipi: /* IPI must map back to the same port# */ if (data->u.evtchn.deliver.port.port != data->u.evtchn.send_port) - goto out; /* -EINVAL */ + goto out_noeventfd; /* -EINVAL */ break; case EVTCHNSTAT_interdomain: if (data->u.evtchn.deliver.port.port) { if (data->u.evtchn.deliver.port.port >= max_evtchn_port(kvm)) - goto out; /* -EINVAL */ + goto out_noeventfd; /* -EINVAL */ } else { eventfd = eventfd_ctx_fdget(data->u.evtchn.deliver.eventfd.fd); if (IS_ERR(eventfd)) { ret = PTR_ERR(eventfd); - goto out; + goto out_noeventfd; } } break; @@ -1718,6 +1732,7 @@ out: if (eventfd) eventfd_ctx_put(eventfd); +out_noeventfd: kfree(evtchnfd); return ret; } @@ -1816,7 +1831,12 @@ { vcpu->arch.xen.vcpu_id = vcpu->vcpu_idx; vcpu->arch.xen.poll_evtchn = 0; + timer_setup(&vcpu->arch.xen.poll_timer, cancel_evtchn_poll, 0); + + kvm_gpc_init(&vcpu->arch.xen.runstate_cache); + kvm_gpc_init(&vcpu->arch.xen.vcpu_info_cache); + kvm_gpc_init(&vcpu->arch.xen.vcpu_time_info_cache); } void kvm_xen_destroy_vcpu(struct kvm_vcpu *vcpu) @@ -1824,18 +1844,17 @@ if (kvm_xen_timer_enabled(vcpu)) kvm_xen_stop_timer(vcpu); - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, - &vcpu->arch.xen.runstate_cache); - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, - &vcpu->arch.xen.vcpu_info_cache); - kvm_gfn_to_pfn_cache_destroy(vcpu->kvm, - &vcpu->arch.xen.vcpu_time_info_cache); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.xen.runstate_cache); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.xen.vcpu_info_cache); + kvm_gpc_deactivate(vcpu->kvm, &vcpu->arch.xen.vcpu_time_info_cache); + del_timer_sync(&vcpu->arch.xen.poll_timer); } void kvm_xen_init_vm(struct kvm *kvm) { idr_init(&kvm->arch.xen.evtchn_ports); + kvm_gpc_init(&kvm->arch.xen.shinfo_cache); } void kvm_xen_destroy_vm(struct kvm *kvm) @@ -1843,7 +1862,7 @@ struct evtchnfd *evtchnfd; int i; - kvm_gfn_to_pfn_cache_destroy(kvm, &kvm->arch.xen.shinfo_cache); + kvm_gpc_deactivate(kvm, &kvm->arch.xen.shinfo_cache); idr_for_each_entry(&kvm->arch.xen.evtchn_ports, evtchnfd, i) { if (!evtchnfd->deliver.port.port) --- linux-5.19.0.orig/arch/x86/lib/usercopy.c +++ linux-5.19.0/arch/x86/lib/usercopy.c @@ -44,7 +44,7 @@ * called from other contexts. */ pagefault_disable(); - ret = __copy_from_user_inatomic(to, from, n); + ret = raw_copy_from_user(to, from, n); pagefault_enable(); return ret; --- linux-5.19.0.orig/arch/x86/mm/extable.c +++ linux-5.19.0/arch/x86/mm/extable.c @@ -94,16 +94,18 @@ static bool ex_handler_msr(const struct exception_table_entry *fixup, struct pt_regs *regs, bool wrmsr, bool safe, int reg) { - if (!safe && wrmsr && - pr_warn_once("unchecked 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)) + if (__ONCE_LITE_IF(!safe && wrmsr)) { + pr_warn("unchecked 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); + } - if (!safe && !wrmsr && - pr_warn_once("unchecked MSR access error: RDMSR from 0x%x at rIP: 0x%lx (%pS)\n", - (unsigned int)regs->cx, regs->ip, (void *)regs->ip)) + if (__ONCE_LITE_IF(!safe && !wrmsr)) { + pr_warn("unchecked 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); + } if (!wrmsr) { /* Pretend that the read succeeded and returned 0. */ --- linux-5.19.0.orig/arch/x86/mm/init_64.c +++ linux-5.19.0/arch/x86/mm/init_64.c @@ -645,7 +645,7 @@ pages++; spin_lock(&init_mm.page_table_lock); - prot = __pgprot(pgprot_val(prot) | __PAGE_KERNEL_LARGE); + prot = __pgprot(pgprot_val(prot) | _PAGE_PSE); set_pte_init((pte_t *)pud, pfn_pte((paddr & PUD_MASK) >> PAGE_SHIFT, --- linux-5.19.0.orig/arch/x86/mm/ioremap.c +++ linux-5.19.0/arch/x86/mm/ioremap.c @@ -216,9 +216,15 @@ * Mappings have to be page-aligned */ offset = phys_addr & ~PAGE_MASK; - phys_addr &= PHYSICAL_PAGE_MASK; + phys_addr &= PAGE_MASK; size = PAGE_ALIGN(last_addr+1) - phys_addr; + /* + * Mask out any bits not part of the actual physical + * address, like memory encryption bits. + */ + phys_addr &= PHYSICAL_PAGE_MASK; + retval = memtype_reserve(phys_addr, (u64)phys_addr + size, pcm, &new_pcm); if (retval) { --- linux-5.19.0.orig/arch/x86/mm/mem_encrypt_amd.c +++ linux-5.19.0/arch/x86/mm/mem_encrypt_amd.c @@ -20,8 +20,8 @@ #include #include #include +#include #include -#include #include #include @@ -245,7 +245,7 @@ swiotlb_adjust_size(size); /* Set restricted memory access for virtio. */ - platform_set(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS); + virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc); } static unsigned long pg_level_to_pfn(int level, pte_t *kpte, pgprot_t *ret_prot) --- linux-5.19.0.orig/arch/x86/mm/numa.c +++ linux-5.19.0/arch/x86/mm/numa.c @@ -867,7 +867,7 @@ return; } mask = node_to_cpumask_map[node]; - if (!mask) { + if (!cpumask_available(mask)) { pr_err("node_to_cpumask_map[%i] NULL\n", node); dump_stack(); return; @@ -913,7 +913,7 @@ dump_stack(); return cpu_none_mask; } - if (node_to_cpumask_map[node] == NULL) { + if (!cpumask_available(node_to_cpumask_map[node])) { printk(KERN_WARNING "cpumask_of_node(%d): no node_to_cpumask_map!\n", node); --- linux-5.19.0.orig/arch/x86/mm/pat/memtype.c +++ linux-5.19.0/arch/x86/mm/pat/memtype.c @@ -62,6 +62,7 @@ static bool __read_mostly pat_bp_initialized; static bool __read_mostly pat_disabled = !IS_ENABLED(CONFIG_X86_PAT); +static bool __initdata pat_force_disabled = !IS_ENABLED(CONFIG_X86_PAT); static bool __read_mostly pat_bp_enabled; static bool __read_mostly pat_cm_initialized; @@ -86,6 +87,7 @@ static int __init nopat(char *str) { pat_disable("PAT support disabled via boot option."); + pat_force_disabled = true; return 0; } early_param("nopat", nopat); @@ -272,7 +274,7 @@ wrmsrl(MSR_IA32_CR_PAT, pat); } -void init_cache_modes(void) +void __init init_cache_modes(void) { u64 pat = 0; @@ -313,6 +315,12 @@ */ pat = PAT(0, WB) | PAT(1, WT) | PAT(2, UC_MINUS) | PAT(3, UC) | PAT(4, WB) | PAT(5, WT) | PAT(6, UC_MINUS) | PAT(7, UC); + } else if (!pat_force_disabled && cpu_feature_enabled(X86_FEATURE_HYPERVISOR)) { + /* + * Clearly PAT is enabled underneath. Allow pat_enabled() to + * reflect this. + */ + pat_bp_enabled = true; } __init_cache_modes(pat); --- linux-5.19.0.orig/arch/x86/net/bpf_jit_comp.c +++ linux-5.19.0/arch/x86/net/bpf_jit_comp.c @@ -2216,7 +2216,7 @@ return ret; } -static int emit_bpf_dispatcher(u8 **pprog, int a, int b, s64 *progs) +static int emit_bpf_dispatcher(u8 **pprog, int a, int b, s64 *progs, u8 *image, u8 *buf) { u8 *jg_reloc, *prog = *pprog; int pivot, err, jg_bytes = 1; @@ -2232,12 +2232,12 @@ EMIT2_off32(0x81, add_1reg(0xF8, BPF_REG_3), progs[a]); err = emit_cond_near_jump(&prog, /* je func */ - (void *)progs[a], prog, + (void *)progs[a], image + (prog - buf), X86_JE); if (err) return err; - emit_indirect_jump(&prog, 2 /* rdx */, prog); + emit_indirect_jump(&prog, 2 /* rdx */, image + (prog - buf)); *pprog = prog; return 0; @@ -2262,7 +2262,7 @@ jg_reloc = prog; err = emit_bpf_dispatcher(&prog, a, a + pivot, /* emit lower_part */ - progs); + progs, image, buf); if (err) return err; @@ -2276,7 +2276,7 @@ emit_code(jg_reloc - jg_bytes, jg_offset, jg_bytes); err = emit_bpf_dispatcher(&prog, a + pivot + 1, /* emit upper_part */ - b, progs); + b, progs, image, buf); if (err) return err; @@ -2296,12 +2296,12 @@ return 0; } -int arch_prepare_bpf_dispatcher(void *image, s64 *funcs, int num_funcs) +int arch_prepare_bpf_dispatcher(void *image, void *buf, s64 *funcs, int num_funcs) { - u8 *prog = image; + u8 *prog = buf; sort(funcs, num_funcs, sizeof(funcs[0]), cmp_ips, NULL); - return emit_bpf_dispatcher(&prog, 0, num_funcs - 1, funcs); + return emit_bpf_dispatcher(&prog, 0, num_funcs - 1, funcs, image, buf); } struct x64_jit_data { @@ -2506,3 +2506,34 @@ return ERR_PTR(-EINVAL); return dst; } + +/* Indicate the JIT backend supports mixing bpf2bpf and tailcalls. */ +bool bpf_jit_supports_subprog_tailcalls(void) +{ + return true; +} + +void bpf_jit_free(struct bpf_prog *prog) +{ + if (prog->jited) { + struct x64_jit_data *jit_data = prog->aux->jit_data; + struct bpf_binary_header *hdr; + + /* + * If we fail the final pass of JIT (from jit_subprogs), + * the program may not be finalized yet. Call finalize here + * before freeing it. + */ + if (jit_data) { + bpf_jit_binary_pack_finalize(prog, jit_data->header, + jit_data->rw_header); + kvfree(jit_data->addrs); + kfree(jit_data); + } + hdr = bpf_jit_binary_pack_hdr(prog); + bpf_jit_binary_pack_free(hdr, NULL); + WARN_ON_ONCE(!bpf_prog_kallsyms_verify_off(prog)); + } + + bpf_prog_unlock_free(prog); +} --- linux-5.19.0.orig/arch/x86/pci/common.c +++ linux-5.19.0/arch/x86/pci/common.c @@ -34,6 +34,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; @@ -614,6 +615,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-5.19.0.orig/arch/x86/pci/early.c +++ linux-5.19.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-5.19.0.orig/arch/x86/platform/olpc/olpc-xo1-sci.c +++ linux-5.19.0/arch/x86/platform/olpc/olpc-xo1-sci.c @@ -80,7 +80,7 @@ return; } - if (!!test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == state) + if (test_bit(SW_TABLET_MODE, ebook_switch_idev->sw) == !!state) return; /* Nothing new to report. */ input_report_switch(ebook_switch_idev, SW_TABLET_MODE, state); --- linux-5.19.0.orig/arch/x86/power/cpu.c +++ linux-5.19.0/arch/x86/power/cpu.c @@ -513,15 +513,23 @@ static void pm_save_spec_msr(void) { - u32 spec_msr_id[] = { - MSR_IA32_SPEC_CTRL, - MSR_IA32_TSX_CTRL, - MSR_TSX_FORCE_ABORT, - MSR_IA32_MCU_OPT_CTRL, - MSR_AMD64_LS_CFG, + struct msr_enumeration { + u32 msr_no; + u32 feature; + } msr_enum[] = { + { MSR_IA32_SPEC_CTRL, X86_FEATURE_MSR_SPEC_CTRL }, + { MSR_IA32_TSX_CTRL, X86_FEATURE_MSR_TSX_CTRL }, + { MSR_TSX_FORCE_ABORT, X86_FEATURE_TSX_FORCE_ABORT }, + { MSR_IA32_MCU_OPT_CTRL, X86_FEATURE_SRBDS_CTRL }, + { MSR_AMD64_LS_CFG, X86_FEATURE_LS_CFG_SSBD }, + { MSR_AMD64_DE_CFG, X86_FEATURE_LFENCE_RDTSC }, }; + int i; - msr_build_context(spec_msr_id, ARRAY_SIZE(spec_msr_id)); + for (i = 0; i < ARRAY_SIZE(msr_enum); i++) { + if (boot_cpu_has(msr_enum[i].feature)) + msr_build_context(&msr_enum[i].msr_no, 1); + } } static int pm_check_save_msr(void) --- linux-5.19.0.orig/arch/x86/realmode/init.c +++ linux-5.19.0/arch/x86/realmode/init.c @@ -200,14 +200,18 @@ set_memory_x((unsigned long) text_start, text_size >> PAGE_SHIFT); } -static int __init init_real_mode(void) +void __init init_real_mode(void) { if (!real_mode_header) panic("Real mode trampoline was not allocated"); setup_real_mode(); set_real_mode_permissions(); +} +static int __init do_init_real_mode(void) +{ + x86_platform.realmode_init(); return 0; } -early_initcall(init_real_mode); +early_initcall(do_init_real_mode); --- linux-5.19.0.orig/arch/x86/realmode/rm/trampoline_32.S +++ linux-5.19.0/arch/x86/realmode/rm/trampoline_32.S @@ -23,6 +23,7 @@ #include #include #include +#include #include "realmode.h" .text @@ -59,6 +60,7 @@ .section ".text32","ax" .code32 SYM_CODE_START(startup_32) # note: also used from wakeup_asm.S + ANNOTATE_RETPOLINE_SAFE jmp *%eax SYM_CODE_END(startup_32) --- linux-5.19.0.orig/arch/x86/um/Makefile +++ linux-5.19.0/arch/x86/um/Makefile @@ -28,7 +28,8 @@ obj-y += syscalls_64.o vdso/ -subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o ../entry/thunk_64.o +subarch-y = ../lib/csum-partial_64.o ../lib/memcpy_64.o +subarch-$(CONFIG_PREEMPTION) += ../entry/thunk_64.o endif --- linux-5.19.0.orig/arch/x86/um/shared/sysdep/syscalls_32.h +++ linux-5.19.0/arch/x86/um/shared/sysdep/syscalls_32.h @@ -6,10 +6,9 @@ #include #include -typedef long syscall_handler_t(struct pt_regs); +typedef long syscall_handler_t(struct syscall_args); extern syscall_handler_t *sys_call_table[]; #define EXECUTE_SYSCALL(syscall, regs) \ - ((long (*)(struct syscall_args)) \ - (*sys_call_table[syscall]))(SYSCALL_ARGS(®s->regs)) + ((*sys_call_table[syscall]))(SYSCALL_ARGS(®s->regs)) --- linux-5.19.0.orig/arch/x86/um/tls_32.c +++ linux-5.19.0/arch/x86/um/tls_32.c @@ -65,9 +65,6 @@ struct thread_struct *t = &task->thread; int idx; - if (!t->arch.tls_array) - return GDT_ENTRY_TLS_MIN; - for (idx = 0; idx < GDT_ENTRY_TLS_ENTRIES; idx++) if (!t->arch.tls_array[idx].present) return idx + GDT_ENTRY_TLS_MIN; @@ -240,9 +237,6 @@ { struct thread_struct *t = &task->thread; - if (!t->arch.tls_array) - goto clear; - if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX) return -EINVAL; --- linux-5.19.0.orig/arch/x86/um/vdso/Makefile +++ linux-5.19.0/arch/x86/um/vdso/Makefile @@ -62,7 +62,7 @@ -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \ sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@' -VDSO_LDFLAGS = -fPIC -shared -Wl,--hash-style=sysv +VDSO_LDFLAGS = -fPIC -shared -Wl,--hash-style=sysv -z noexecstack GCOV_PROFILE := n # --- linux-5.19.0.orig/arch/x86/xen/enlighten_hvm.c +++ linux-5.19.0/arch/x86/xen/enlighten_hvm.c @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -195,7 +196,8 @@ if (xen_pv_domain()) return; - xen_set_restricted_virtio_memory_access(); + if (IS_ENABLED(CONFIG_XEN_VIRTIO_FORCE_GRANT)) + virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc); init_hvm_pv_info(); --- linux-5.19.0.orig/arch/x86/xen/enlighten_pv.c +++ linux-5.19.0/arch/x86/xen/enlighten_pv.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -109,7 +110,9 @@ static void __init xen_pv_init_platform(void) { - xen_set_restricted_virtio_memory_access(); + /* PV guests can't operate virtio devices without grants. */ + if (IS_ENABLED(CONFIG_XEN_VIRTIO)) + virtio_set_mem_acc_cb(virtio_require_restricted_mem_acc); populate_extra_pte(fix_to_virt(FIX_PARAVIRT_BOOTMAP)); @@ -762,6 +765,7 @@ { static DEFINE_SPINLOCK(lock); static struct trap_info traps[257]; + static const struct trap_info zero = { }; unsigned out; trace_xen_cpu_load_idt(desc); @@ -771,7 +775,7 @@ memcpy(this_cpu_ptr(&idt_desc), desc, sizeof(idt_desc)); out = xen_convert_trap_info(desc, traps, false); - memset(&traps[out], 0, sizeof(traps[0])); + traps[out] = zero; xen_mc_flush(); if (HYPERVISOR_set_trap_table(traps)) @@ -1220,6 +1224,8 @@ xen_vcpu_info_reset(0); x86_platform.get_nmi_reason = xen_get_nmi_reason; + x86_platform.realmode_reserve = x86_init_noop; + x86_platform.realmode_init = x86_init_noop; x86_init.resources.memory_setup = xen_memory_setup; x86_init.irqs.intr_mode_select = x86_init_noop; --- linux-5.19.0.orig/arch/x86/xen/smp.c +++ linux-5.19.0/arch/x86/xen/smp.c @@ -32,30 +32,30 @@ void xen_smp_intr_free(unsigned int cpu) { + kfree(per_cpu(xen_resched_irq, cpu).name); + per_cpu(xen_resched_irq, cpu).name = NULL; if (per_cpu(xen_resched_irq, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_resched_irq, cpu).irq, NULL); per_cpu(xen_resched_irq, cpu).irq = -1; - kfree(per_cpu(xen_resched_irq, cpu).name); - per_cpu(xen_resched_irq, cpu).name = NULL; } + kfree(per_cpu(xen_callfunc_irq, cpu).name); + per_cpu(xen_callfunc_irq, cpu).name = NULL; if (per_cpu(xen_callfunc_irq, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu).irq, NULL); per_cpu(xen_callfunc_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfunc_irq, cpu).name); - per_cpu(xen_callfunc_irq, cpu).name = NULL; } + kfree(per_cpu(xen_debug_irq, cpu).name); + per_cpu(xen_debug_irq, cpu).name = NULL; if (per_cpu(xen_debug_irq, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu).irq, NULL); per_cpu(xen_debug_irq, cpu).irq = -1; - kfree(per_cpu(xen_debug_irq, cpu).name); - per_cpu(xen_debug_irq, cpu).name = NULL; } + kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); + per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; if (per_cpu(xen_callfuncsingle_irq, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu).irq, NULL); per_cpu(xen_callfuncsingle_irq, cpu).irq = -1; - kfree(per_cpu(xen_callfuncsingle_irq, cpu).name); - per_cpu(xen_callfuncsingle_irq, cpu).name = NULL; } } @@ -65,6 +65,7 @@ char *resched_name, *callfunc_name, *debug_name; resched_name = kasprintf(GFP_KERNEL, "resched%d", cpu); + per_cpu(xen_resched_irq, cpu).name = resched_name; rc = bind_ipi_to_irqhandler(XEN_RESCHEDULE_VECTOR, cpu, xen_reschedule_interrupt, @@ -74,9 +75,9 @@ if (rc < 0) goto fail; per_cpu(xen_resched_irq, cpu).irq = rc; - per_cpu(xen_resched_irq, cpu).name = resched_name; callfunc_name = kasprintf(GFP_KERNEL, "callfunc%d", cpu); + per_cpu(xen_callfunc_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_VECTOR, cpu, xen_call_function_interrupt, @@ -86,10 +87,10 @@ if (rc < 0) goto fail; per_cpu(xen_callfunc_irq, cpu).irq = rc; - per_cpu(xen_callfunc_irq, cpu).name = callfunc_name; if (!xen_fifo_events) { debug_name = kasprintf(GFP_KERNEL, "debug%d", cpu); + per_cpu(xen_debug_irq, cpu).name = debug_name; rc = bind_virq_to_irqhandler(VIRQ_DEBUG, cpu, xen_debug_interrupt, IRQF_PERCPU | IRQF_NOBALANCING, @@ -97,10 +98,10 @@ if (rc < 0) goto fail; per_cpu(xen_debug_irq, cpu).irq = rc; - per_cpu(xen_debug_irq, cpu).name = debug_name; } callfunc_name = kasprintf(GFP_KERNEL, "callfuncsingle%d", cpu); + per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_CALL_FUNCTION_SINGLE_VECTOR, cpu, xen_call_function_single_interrupt, @@ -110,7 +111,6 @@ if (rc < 0) goto fail; per_cpu(xen_callfuncsingle_irq, cpu).irq = rc; - per_cpu(xen_callfuncsingle_irq, cpu).name = callfunc_name; return 0; --- linux-5.19.0.orig/arch/x86/xen/smp_pv.c +++ linux-5.19.0/arch/x86/xen/smp_pv.c @@ -97,18 +97,18 @@ void xen_smp_intr_free_pv(unsigned int cpu) { + kfree(per_cpu(xen_irq_work, cpu).name); + per_cpu(xen_irq_work, cpu).name = NULL; if (per_cpu(xen_irq_work, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_irq_work, cpu).irq, NULL); per_cpu(xen_irq_work, cpu).irq = -1; - kfree(per_cpu(xen_irq_work, cpu).name); - per_cpu(xen_irq_work, cpu).name = NULL; } + kfree(per_cpu(xen_pmu_irq, cpu).name); + per_cpu(xen_pmu_irq, cpu).name = NULL; if (per_cpu(xen_pmu_irq, cpu).irq >= 0) { unbind_from_irqhandler(per_cpu(xen_pmu_irq, cpu).irq, NULL); per_cpu(xen_pmu_irq, cpu).irq = -1; - kfree(per_cpu(xen_pmu_irq, cpu).name); - per_cpu(xen_pmu_irq, cpu).name = NULL; } } @@ -118,6 +118,7 @@ char *callfunc_name, *pmu_name; callfunc_name = kasprintf(GFP_KERNEL, "irqwork%d", cpu); + per_cpu(xen_irq_work, cpu).name = callfunc_name; rc = bind_ipi_to_irqhandler(XEN_IRQ_WORK_VECTOR, cpu, xen_irq_work_interrupt, @@ -127,10 +128,10 @@ if (rc < 0) goto fail; per_cpu(xen_irq_work, cpu).irq = rc; - per_cpu(xen_irq_work, cpu).name = callfunc_name; if (is_xen_pmu) { pmu_name = kasprintf(GFP_KERNEL, "pmu%d", cpu); + per_cpu(xen_pmu_irq, cpu).name = pmu_name; rc = bind_virq_to_irqhandler(VIRQ_XENPMU, cpu, xen_pmu_irq_handler, IRQF_PERCPU|IRQF_NOBALANCING, @@ -138,7 +139,6 @@ if (rc < 0) goto fail; per_cpu(xen_pmu_irq, cpu).irq = rc; - per_cpu(xen_pmu_irq, cpu).name = pmu_name; } return 0; --- linux-5.19.0.orig/arch/x86/xen/spinlock.c +++ linux-5.19.0/arch/x86/xen/spinlock.c @@ -75,6 +75,7 @@ cpu, per_cpu(lock_kicker_irq, cpu)); name = kasprintf(GFP_KERNEL, "spinlock%d", cpu); + per_cpu(irq_name, cpu) = name; irq = bind_ipi_to_irqhandler(XEN_SPIN_UNLOCK_VECTOR, cpu, dummy_handler, @@ -85,7 +86,6 @@ if (irq >= 0) { disable_irq(irq); /* make sure it's never delivered */ per_cpu(lock_kicker_irq, cpu) = irq; - per_cpu(irq_name, cpu) = name; } printk("cpu %d spinlock event irq %d\n", cpu, irq); @@ -98,6 +98,8 @@ if (!xen_pvspin) return; + kfree(per_cpu(irq_name, cpu)); + per_cpu(irq_name, cpu) = NULL; /* * When booting the kernel with 'mitigations=auto,nosmt', the secondary * CPUs are not activated, and lock_kicker_irq is not initialized. @@ -108,8 +110,6 @@ unbind_from_irqhandler(irq, NULL); per_cpu(lock_kicker_irq, cpu) = -1; - kfree(per_cpu(irq_name, cpu)); - per_cpu(irq_name, cpu) = NULL; } PV_CALLEE_SAVE_REGS_THUNK(xen_vcpu_stolen); --- linux-5.19.0.orig/arch/xtensa/platforms/iss/network.c +++ linux-5.19.0/arch/xtensa/platforms/iss/network.c @@ -472,16 +472,24 @@ .ndo_set_rx_mode = iss_net_set_multicast_list, }; -static int iss_net_configure(int index, char *init) +static void iss_net_pdev_release(struct device *dev) +{ + struct platform_device *pdev = to_platform_device(dev); + struct iss_net_private *lp = + container_of(pdev, struct iss_net_private, pdev); + + free_netdev(lp->dev); +} + +static void iss_net_configure(int index, char *init) { struct net_device *dev; struct iss_net_private *lp; - int err; dev = alloc_etherdev(sizeof(*lp)); if (dev == NULL) { pr_err("eth_configure: failed to allocate device\n"); - return 1; + return; } /* Initialize private element. */ @@ -509,7 +517,7 @@ if (!tuntap_probe(lp, index, init)) { pr_err("%s: invalid arguments. Skipping device!\n", dev->name); - goto errout; + goto err_free_netdev; } pr_info("Netdevice %d (%pM)\n", index, dev->dev_addr); @@ -517,7 +525,8 @@ /* sysfs register */ if (!driver_registered) { - platform_driver_register(&iss_net_driver); + if (platform_driver_register(&iss_net_driver)) + goto err_free_netdev; driver_registered = 1; } @@ -527,7 +536,9 @@ lp->pdev.id = index; lp->pdev.name = DRIVER_NAME; - platform_device_register(&lp->pdev); + lp->pdev.dev.release = iss_net_pdev_release; + if (platform_device_register(&lp->pdev)) + goto err_free_netdev; SET_NETDEV_DEV(dev, &lp->pdev.dev); dev->netdev_ops = &iss_netdev_ops; @@ -536,23 +547,20 @@ dev->irq = -1; rtnl_lock(); - err = register_netdevice(dev); - rtnl_unlock(); - - if (err) { + if (register_netdevice(dev)) { + rtnl_unlock(); pr_err("%s: error registering net device!\n", dev->name); - /* XXX: should we call ->remove() here? */ - free_netdev(dev); - return 1; + platform_device_unregister(&lp->pdev); + return; } + rtnl_unlock(); timer_setup(&lp->tl, iss_net_user_timer_expire, 0); - return 0; + return; -errout: - /* FIXME: unregister; free, etc.. */ - return -EIO; +err_free_netdev: + free_netdev(dev); } /* ------------------------------------------------------------------------- */ --- linux-5.19.0.orig/block/bfq-cgroup.c +++ linux-5.19.0/block/bfq-cgroup.c @@ -615,6 +615,10 @@ struct bfq_group *bfqg; while (blkg) { + if (!blkg->online) { + blkg = blkg->parent; + continue; + } bfqg = blkg_to_bfqg(blkg); if (bfqg->online) { bio_associate_blkg_from_css(bio, &blkg->blkcg->css); --- linux-5.19.0.orig/block/bfq-iosched.c +++ linux-5.19.0/block/bfq-iosched.c @@ -386,6 +386,12 @@ void bic_set_bfqq(struct bfq_io_cq *bic, struct bfq_queue *bfqq, bool is_sync) { + struct bfq_queue *old_bfqq = bic->bfqq[is_sync]; + + /* Clear bic pointer if bfqq is detached from this bic */ + if (old_bfqq && old_bfqq->bic == bic) + old_bfqq->bic = NULL; + /* * If bfqq != NULL, then a non-stable queue merge between * bic->bfqq and bfqq is happening here. This causes troubles @@ -5379,7 +5385,6 @@ unsigned long flags; spin_lock_irqsave(&bfqd->lock, flags); - bfqq->bic = NULL; bfq_exit_bfqq(bfqd, bfqq); bic_set_bfqq(bic, NULL, is_sync); spin_unlock_irqrestore(&bfqd->lock, flags); @@ -6786,6 +6791,12 @@ bfqq = bfq_get_bfqq_handle_split(bfqd, bic, bio, true, is_sync, NULL); + if (unlikely(bfqq == &bfqd->oom_bfqq)) + bfqq_already_existing = true; + } else + bfqq_already_existing = true; + + if (!bfqq_already_existing) { bfqq->waker_bfqq = old_bfqq->waker_bfqq; bfqq->tentative_waker_bfqq = NULL; @@ -6799,8 +6810,7 @@ if (bfqq->waker_bfqq) hlist_add_head(&bfqq->woken_list_node, &bfqq->waker_bfqq->woken_list); - } else - bfqq_already_existing = true; + } } } --- linux-5.19.0.orig/block/bio.c +++ linux-5.19.0/block/bio.c @@ -741,7 +741,7 @@ return; } - if (bio->bi_opf & REQ_ALLOC_CACHE) { + if ((bio->bi_opf & REQ_ALLOC_CACHE) && !WARN_ON_ONCE(in_interrupt())) { struct bio_alloc_cache *cache; bio_uninit(bio); @@ -760,8 +760,6 @@ static int __bio_clone(struct bio *bio, struct bio *bio_src, gfp_t gfp) { bio_set_flag(bio, BIO_CLONED); - if (bio_flagged(bio_src, BIO_THROTTLED)) - bio_set_flag(bio, BIO_THROTTLED); bio->bi_ioprio = bio_src->bi_ioprio; bio->bi_iter = bio_src->bi_iter; @@ -1159,6 +1157,37 @@ put_page(pages[i]); } +static int bio_iov_add_page(struct bio *bio, struct page *page, + unsigned int len, unsigned int offset) +{ + bool same_page = false; + + if (!__bio_try_merge_page(bio, page, len, offset, &same_page)) { + if (WARN_ON_ONCE(bio_full(bio, len))) + return -EINVAL; + __bio_add_page(bio, page, len, offset); + return 0; + } + + if (same_page) + put_page(page); + return 0; +} + +static int bio_iov_add_zone_append_page(struct bio *bio, struct page *page, + unsigned int len, unsigned int offset) +{ + struct request_queue *q = bdev_get_queue(bio->bi_bdev); + bool same_page = false; + + if (bio_add_hw_page(q, bio, page, len, offset, + queue_max_zone_append_sectors(q), &same_page) != len) + return -EINVAL; + if (same_page) + put_page(page); + return 0; +} + #define PAGE_PTRS_PER_BVEC (sizeof(struct bio_vec) / sizeof(struct page *)) /** @@ -1177,61 +1206,11 @@ unsigned short entries_left = bio->bi_max_vecs - bio->bi_vcnt; struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; struct page **pages = (struct page **)bv; - bool same_page = false; - ssize_t size, left; - unsigned len, i; - size_t offset; - - /* - * Move page array up in the allocated memory for the bio vecs as far as - * possible so that we can start filling biovecs from the beginning - * without overwriting the temporary page array. - */ - BUILD_BUG_ON(PAGE_PTRS_PER_BVEC < 2); - pages += entries_left * (PAGE_PTRS_PER_BVEC - 1); - - size = iov_iter_get_pages(iter, pages, LONG_MAX, nr_pages, &offset); - if (unlikely(size <= 0)) - return size ? size : -EFAULT; - - for (left = size, i = 0; left > 0; left -= len, i++) { - struct page *page = pages[i]; - - len = min_t(size_t, PAGE_SIZE - offset, left); - - if (__bio_try_merge_page(bio, page, len, offset, &same_page)) { - if (same_page) - put_page(page); - } else { - if (WARN_ON_ONCE(bio_full(bio, len))) { - bio_put_pages(pages + i, left, offset); - return -EINVAL; - } - __bio_add_page(bio, page, len, offset); - } - offset = 0; - } - - iov_iter_advance(iter, size); - return 0; -} - -static int __bio_iov_append_get_pages(struct bio *bio, struct iov_iter *iter) -{ - unsigned short nr_pages = bio->bi_max_vecs - bio->bi_vcnt; - unsigned short entries_left = bio->bi_max_vecs - bio->bi_vcnt; - struct request_queue *q = bdev_get_queue(bio->bi_bdev); - unsigned int max_append_sectors = queue_max_zone_append_sectors(q); - struct bio_vec *bv = bio->bi_io_vec + bio->bi_vcnt; - struct page **pages = (struct page **)bv; ssize_t size, left; unsigned len, i; size_t offset; int ret = 0; - if (WARN_ON_ONCE(!max_append_sectors)) - return 0; - /* * Move page array up in the allocated memory for the bio vecs as far as * possible so that we can start filling biovecs from the beginning @@ -1246,17 +1225,18 @@ for (left = size, i = 0; left > 0; left -= len, i++) { struct page *page = pages[i]; - bool same_page = false; len = min_t(size_t, PAGE_SIZE - offset, left); - if (bio_add_hw_page(q, bio, page, len, offset, - max_append_sectors, &same_page) != len) { + if (bio_op(bio) == REQ_OP_ZONE_APPEND) + ret = bio_iov_add_zone_append_page(bio, page, len, + offset); + else + ret = bio_iov_add_page(bio, page, len, offset); + + if (ret) { bio_put_pages(pages + i, left, offset); - ret = -EINVAL; break; } - if (same_page) - put_page(page); offset = 0; } @@ -1298,10 +1278,7 @@ } do { - if (bio_op(bio) == REQ_OP_ZONE_APPEND) - ret = __bio_iov_append_get_pages(bio, iter); - else - ret = __bio_iov_iter_get_pages(bio, iter); + ret = __bio_iov_iter_get_pages(bio, iter); } while (!ret && iov_iter_count(iter) && !bio_full(bio, 0)); /* don't account direct I/O as memory stall */ --- linux-5.19.0.orig/block/blk-cgroup.c +++ linux-5.19.0/block/blk-cgroup.c @@ -1248,7 +1248,7 @@ * parent so that offline always happens towards the root. */ if (parent) - blkcg_pin_online(css); + blkcg_pin_online(&parent->css); return 0; } --- linux-5.19.0.orig/block/blk-core.c +++ linux-5.19.0/block/blk-core.c @@ -285,49 +285,6 @@ } /** - * blk_cleanup_queue - shutdown a request queue - * @q: request queue to shutdown - * - * Mark @q DYING, drain all pending requests, mark @q DEAD, destroy and - * put it. All future requests will be failed immediately with -ENODEV. - * - * Context: can sleep - */ -void blk_cleanup_queue(struct request_queue *q) -{ - /* cannot be called from atomic context */ - might_sleep(); - - WARN_ON_ONCE(blk_queue_registered(q)); - - /* mark @q DYING, no new request or merges will be allowed afterwards */ - blk_queue_flag_set(QUEUE_FLAG_DYING, q); - blk_queue_start_drain(q); - - blk_queue_flag_set(QUEUE_FLAG_NOMERGES, q); - blk_queue_flag_set(QUEUE_FLAG_NOXMERGES, q); - - /* - * Drain all requests queued before DYING marking. Set DEAD flag to - * prevent that blk_mq_run_hw_queues() accesses the hardware queues - * after draining finished. - */ - blk_freeze_queue(q); - - blk_queue_flag_set(QUEUE_FLAG_DEAD, q); - - blk_sync_queue(q); - if (queue_is_mq(q)) { - blk_mq_cancel_work_sync(q); - blk_mq_exit_queue(q); - } - - /* @q is and will stay empty, shutdown and put */ - blk_put_queue(q); -} -EXPORT_SYMBOL(blk_cleanup_queue); - -/** * blk_queue_enter() - try to increase q->q_usage_counter * @q: request queue pointer * @flags: BLK_MQ_REQ_NOWAIT and/or BLK_MQ_REQ_PM @@ -338,7 +295,7 @@ while (!blk_try_enter_queue(q, pm)) { if (flags & BLK_MQ_REQ_NOWAIT) - return -EBUSY; + return -EAGAIN; /* * read pair of barrier in blk_freeze_queue_start(), we need to @@ -368,7 +325,7 @@ if (test_bit(GD_DEAD, &disk->state)) goto dead; bio_wouldblock_error(bio); - return -EBUSY; + return -EAGAIN; } /* --- linux-5.19.0.orig/block/blk-ioc.c +++ linux-5.19.0/block/blk-ioc.c @@ -247,6 +247,8 @@ INIT_HLIST_HEAD(&ioc->icq_list); INIT_WORK(&ioc->release_work, ioc_release_fn); #endif + ioc->ioprio = IOPRIO_DEFAULT; + return ioc; } --- linux-5.19.0.orig/block/blk-iocost.c +++ linux-5.19.0/block/blk-iocost.c @@ -2886,15 +2886,21 @@ * called before policy activation completion, can't assume that the * target bio has an iocg associated and need to test for NULL iocg. */ - rq_qos_add(q, rqos); + ret = rq_qos_add(q, rqos); + if (ret) + goto err_free_ioc; + ret = blkcg_activate_policy(q, &blkcg_policy_iocost); - if (ret) { - rq_qos_del(q, rqos); - free_percpu(ioc->pcpu_stat); - kfree(ioc); - return ret; - } + if (ret) + goto err_del_qos; return 0; + +err_del_qos: + rq_qos_del(q, rqos); +err_free_ioc: + free_percpu(ioc->pcpu_stat); + kfree(ioc); + return ret; } static struct blkcg_policy_data *ioc_cpd_alloc(gfp_t gfp) --- linux-5.19.0.orig/block/blk-iolatency.c +++ linux-5.19.0/block/blk-iolatency.c @@ -773,19 +773,23 @@ rqos->ops = &blkcg_iolatency_ops; rqos->q = q; - rq_qos_add(q, rqos); - + ret = rq_qos_add(q, rqos); + if (ret) + goto err_free; ret = blkcg_activate_policy(q, &blkcg_policy_iolatency); - if (ret) { - rq_qos_del(q, rqos); - kfree(blkiolat); - return ret; - } + if (ret) + goto err_qos_del; timer_setup(&blkiolat->timer, blkiolatency_timer_fn, 0); INIT_WORK(&blkiolat->enable_work, blkiolatency_enable_work_fn); return 0; + +err_qos_del: + rq_qos_del(q, rqos); +err_free: + kfree(blkiolat); + return ret; } static void iolatency_set_min_lat_nsec(struct blkcg_gq *blkg, u64 val) --- linux-5.19.0.orig/block/blk-lib.c +++ linux-5.19.0/block/blk-lib.c @@ -311,6 +311,11 @@ struct blk_plug plug; int ret = 0; + /* make sure that "len << SECTOR_SHIFT" doesn't overflow */ + if (max_sectors > UINT_MAX >> SECTOR_SHIFT) + max_sectors = UINT_MAX >> SECTOR_SHIFT; + max_sectors &= ~bs_mask; + if (max_sectors == 0) return -EOPNOTSUPP; if ((sector | nr_sects) & bs_mask) @@ -324,10 +329,10 @@ bio = blk_next_bio(bio, bdev, 0, REQ_OP_SECURE_ERASE, gfp); bio->bi_iter.bi_sector = sector; - bio->bi_iter.bi_size = len; + bio->bi_iter.bi_size = len << SECTOR_SHIFT; - sector += len << SECTOR_SHIFT; - nr_sects -= len << SECTOR_SHIFT; + sector += len; + nr_sects -= len; if (!nr_sects) { ret = submit_bio_wait(bio); bio_put(bio); --- linux-5.19.0.orig/block/blk-mq-debugfs.c +++ linux-5.19.0/block/blk-mq-debugfs.c @@ -116,7 +116,6 @@ QUEUE_FLAG_NAME(NOXMERGES), QUEUE_FLAG_NAME(ADD_RANDOM), QUEUE_FLAG_NAME(SAME_FORCE), - QUEUE_FLAG_NAME(DEAD), QUEUE_FLAG_NAME(INIT_DONE), QUEUE_FLAG_NAME(STABLE_WRITES), QUEUE_FLAG_NAME(POLL), @@ -151,11 +150,10 @@ char opbuf[16] = { }, *op; /* - * The "state" attribute is removed after blk_cleanup_queue() has called - * blk_mq_free_queue(). Return if QUEUE_FLAG_DEAD has been set to avoid - * triggering a use-after-free. + * The "state" attribute is removed when the queue is removed. Don't + * allow setting the state on a dying queue to avoid a use-after-free. */ - if (blk_queue_dead(q)) + if (blk_queue_dying(q)) return -ENOENT; if (count >= sizeof(opbuf)) { @@ -730,6 +728,9 @@ char name[20]; int i; + if (!q->debugfs_dir) + return; + snprintf(name, sizeof(name), "hctx%u", hctx->queue_num); hctx->debugfs_dir = debugfs_create_dir(name, q->debugfs_dir); --- linux-5.19.0.orig/block/blk-mq-sysfs.c +++ linux-5.19.0/block/blk-mq-sysfs.c @@ -185,7 +185,7 @@ { struct request_queue *q = hctx->queue; struct blk_mq_ctx *ctx; - int i, ret; + int i, j, ret; if (!hctx->nr_ctx) return 0; @@ -197,9 +197,16 @@ hctx_for_each_ctx(hctx, ctx, i) { ret = kobject_add(&ctx->kobj, &hctx->kobj, "cpu%u", ctx->cpu); if (ret) - break; + goto out; } + return 0; +out: + hctx_for_each_ctx(hctx, ctx, j) { + if (j < i) + kobject_del(&ctx->kobj); + } + kobject_del(&hctx->kobj); return ret; } --- linux-5.19.0.orig/block/blk-mq.c +++ linux-5.19.0/block/blk-mq.c @@ -1176,6 +1176,7 @@ (!blk_queue_nomerges(rq->q) && blk_rq_bytes(last) >= BLK_PLUG_FLUSH_SIZE)) { blk_mq_flush_plug_list(plug, false); + last = NULL; trace_block_plug(rq->q); } @@ -1925,7 +1926,8 @@ /* If we didn't flush the entire list, we could have told the driver * there was more coming, but that turned out to be a lie. */ - if ((!list_empty(list) || errors) && q->mq_ops->commit_rqs && queued) + if ((!list_empty(list) || errors || needs_resource || + ret == BLK_STS_DEV_RESOURCE) && q->mq_ops->commit_rqs && queued) q->mq_ops->commit_rqs(hctx); /* * Any items that need requeuing? Stuff them into hctx->dispatch, @@ -2568,7 +2570,7 @@ break; case BLK_STS_RESOURCE: case BLK_STS_DEV_RESOURCE: - blk_mq_request_bypass_insert(rq, false, last); + blk_mq_request_bypass_insert(rq, false, true); blk_mq_commit_rqs(hctx, &queued, from_schedule); return; default: @@ -2678,6 +2680,7 @@ list_del_init(&rq->queuelist); ret = blk_mq_request_issue_directly(rq, list_empty(list)); if (ret != BLK_STS_OK) { + errors++; if (ret == BLK_STS_RESOURCE || ret == BLK_STS_DEV_RESOURCE) { blk_mq_request_bypass_insert(rq, false, @@ -2685,7 +2688,6 @@ break; } blk_mq_end_request(rq, ret); - errors++; } else queued++; } @@ -3035,8 +3037,11 @@ struct page *page; unsigned long flags; - /* There is no need to clear a driver tags own mapping */ - if (drv_tags == tags) + /* + * There is no need to clear mapping if driver tags is not initialized + * or the mapping belongs to the driver tags. + */ + if (!drv_tags || drv_tags == tags) return; list_for_each_entry(page, &tags->page_list, lru) { @@ -3895,7 +3900,7 @@ q->queuedata = queuedata; ret = blk_mq_init_allocated_queue(set, q); if (ret) { - blk_cleanup_queue(q); + blk_put_queue(q); return ERR_PTR(ret); } return q; @@ -3907,6 +3912,35 @@ } EXPORT_SYMBOL(blk_mq_init_queue); +/** + * blk_mq_destroy_queue - shutdown a request queue + * @q: request queue to shutdown + * + * This shuts down a request queue allocated by blk_mq_init_queue() and drops + * the initial reference. All future requests will failed with -ENODEV. + * + * Context: can sleep + */ +void blk_mq_destroy_queue(struct request_queue *q) +{ + WARN_ON_ONCE(!queue_is_mq(q)); + WARN_ON_ONCE(blk_queue_registered(q)); + + might_sleep(); + + blk_queue_flag_set(QUEUE_FLAG_DYING, q); + blk_queue_start_drain(q); + blk_freeze_queue(q); + + blk_sync_queue(q); + blk_mq_cancel_work_sync(q); + blk_mq_exit_queue(q); + + /* @q is and will stay empty, shutdown and put */ + blk_put_queue(q); +} +EXPORT_SYMBOL(blk_mq_destroy_queue); + struct gendisk *__blk_mq_alloc_disk(struct blk_mq_tag_set *set, void *queuedata, struct lock_class_key *lkclass) { @@ -3919,13 +3953,28 @@ disk = __alloc_disk_node(q, set->numa_node, lkclass); if (!disk) { - blk_cleanup_queue(q); + blk_mq_destroy_queue(q); return ERR_PTR(-ENOMEM); } + set_bit(GD_OWNS_QUEUE, &disk->state); return disk; } EXPORT_SYMBOL(__blk_mq_alloc_disk); +struct gendisk *blk_mq_alloc_disk_for_queue(struct request_queue *q, + struct lock_class_key *lkclass) +{ + struct gendisk *disk; + + if (!blk_get_queue(q)) + return NULL; + disk = __alloc_disk_node(q, NUMA_NO_NODE, lkclass); + if (!disk) + blk_put_queue(q); + return disk; +} +EXPORT_SYMBOL(blk_mq_alloc_disk_for_queue); + static struct blk_mq_hw_ctx *blk_mq_alloc_and_init_hctx( struct blk_mq_tag_set *set, struct request_queue *q, int hctx_idx, int node) @@ -4069,9 +4118,7 @@ return 0; err_hctxs: - xa_destroy(&q->hctx_table); - q->nr_hw_queues = 0; - blk_mq_sysfs_deinit(q); + blk_mq_release(q); err_poll: blk_stat_free_callback(q->poll_cb); q->poll_cb = NULL; @@ -4441,14 +4488,14 @@ list_add(&qe->node, head); /* - * After elevator_switch_mq, the previous elevator_queue will be + * After elevator_switch, the previous elevator_queue will be * released by elevator_release. The reference of the io scheduler * module get by elevator_get will also be put. So we need to get * a reference of the io scheduler module here to prevent it to be * removed. */ __module_get(qe->type->elevator_owner); - elevator_switch_mq(q, NULL); + elevator_switch(q, NULL); mutex_unlock(&q->sysfs_lock); return true; @@ -4480,7 +4527,7 @@ kfree(qe); mutex_lock(&q->sysfs_lock); - elevator_switch_mq(q, t); + elevator_switch(q, t); mutex_unlock(&q->sysfs_lock); } --- linux-5.19.0.orig/block/blk-rq-qos.h +++ linux-5.19.0/block/blk-rq-qos.h @@ -86,7 +86,7 @@ init_waitqueue_head(&rq_wait->wait); } -static inline void rq_qos_add(struct request_queue *q, struct rq_qos *rqos) +static inline int rq_qos_add(struct request_queue *q, struct rq_qos *rqos) { /* * No IO can be in-flight when adding rqos, so freeze queue, which @@ -98,6 +98,8 @@ blk_mq_freeze_queue(q); spin_lock_irq(&q->queue_lock); + if (rq_qos_id(q, rqos->id)) + goto ebusy; rqos->next = q->rq_qos; q->rq_qos = rqos; spin_unlock_irq(&q->queue_lock); @@ -109,6 +111,13 @@ blk_mq_debugfs_register_rqos(rqos); mutex_unlock(&q->debugfs_mutex); } + + return 0; +ebusy: + spin_unlock_irq(&q->queue_lock); + blk_mq_unfreeze_queue(q); + return -EBUSY; + } static inline void rq_qos_del(struct request_queue *q, struct rq_qos *rqos) --- linux-5.19.0.orig/block/blk-settings.c +++ linux-5.19.0/block/blk-settings.c @@ -58,7 +58,6 @@ lim->zoned = BLK_ZONED_NONE; lim->zone_write_granularity = 0; } -EXPORT_SYMBOL(blk_set_default_limits); /** * blk_set_stacking_limits - set default limits for stacking devices --- linux-5.19.0.orig/block/blk-sysfs.c +++ linux-5.19.0/block/blk-sysfs.c @@ -748,11 +748,6 @@ * decremented with blk_put_queue(). Once the refcount reaches 0 this function * is called. * - * For drivers that have a request_queue on a gendisk and added with - * __device_add_disk() the refcount to request_queue will reach 0 with - * the last put_disk() called by the driver. For drivers which don't use - * __device_add_disk() this happens with blk_cleanup_queue(). - * * Drivers exist which depend on the release of the request_queue to be * synchronous, it should not be deferred. * --- linux-5.19.0.orig/block/blk-throttle.c +++ linux-5.19.0/block/blk-throttle.c @@ -806,12 +806,12 @@ u64 bps_limit, unsigned long *wait) { bool rw = bio_data_dir(bio); - u64 bytes_allowed, extra_bytes, tmp; + u64 bytes_allowed, extra_bytes; unsigned long jiffy_elapsed, jiffy_wait, jiffy_elapsed_rnd; unsigned int bio_size = throtl_bio_data_size(bio); /* no need to throttle if this bio's bytes have been accounted */ - if (bps_limit == U64_MAX || bio_flagged(bio, BIO_THROTTLED)) { + if (bps_limit == U64_MAX || bio_flagged(bio, BIO_BPS_THROTTLED)) { if (wait) *wait = 0; return true; @@ -824,10 +824,8 @@ jiffy_elapsed_rnd = tg->td->throtl_slice; jiffy_elapsed_rnd = roundup(jiffy_elapsed_rnd, tg->td->throtl_slice); - - tmp = bps_limit * jiffy_elapsed_rnd; - do_div(tmp, HZ); - bytes_allowed = tmp; + bytes_allowed = mul_u64_u64_div_u64(bps_limit, (u64)jiffy_elapsed_rnd, + (u64)HZ); if (tg->bytes_disp[rw] + bio_size <= bytes_allowed) { if (wait) @@ -921,22 +919,13 @@ unsigned int bio_size = throtl_bio_data_size(bio); /* Charge the bio to the group */ - if (!bio_flagged(bio, BIO_THROTTLED)) { + if (!bio_flagged(bio, BIO_BPS_THROTTLED)) { tg->bytes_disp[rw] += bio_size; tg->last_bytes_disp[rw] += bio_size; } tg->io_disp[rw]++; tg->last_io_disp[rw]++; - - /* - * BIO_THROTTLED is used to prevent the same bio to be throttled - * more than once as a throttled bio will go through blk-throtl the - * second time when it eventually gets issued. Set it when a bio - * is being charged to a tg. - */ - if (!bio_flagged(bio, BIO_THROTTLED)) - bio_set_flag(bio, BIO_THROTTLED); } /** @@ -1026,6 +1015,7 @@ sq->nr_queued[rw]--; throtl_charge_bio(tg, bio); + bio_set_flag(bio, BIO_BPS_THROTTLED); /* * If our parent is another tg, we just need to transfer @bio to @@ -2159,8 +2149,10 @@ qn = &tg->qnode_on_parent[rw]; sq = sq->parent_sq; tg = sq_to_tg(sq); - if (!tg) + if (!tg) { + bio_set_flag(bio, BIO_BPS_THROTTLED); goto out_unlock; + } } /* out-of-limit, queue to @tg */ @@ -2189,8 +2181,6 @@ } out_unlock: - bio_set_flag(bio, BIO_THROTTLED); - #ifdef CONFIG_BLK_DEV_THROTTLING_LOW if (throttled || !td->track_bio_latency) bio->bi_issue.value |= BIO_ISSUE_THROTL_SKIP_LATENCY; --- linux-5.19.0.orig/block/blk-throttle.h +++ linux-5.19.0/block/blk-throttle.h @@ -175,7 +175,7 @@ struct throtl_grp *tg = blkg_to_tg(bio->bi_blkg); /* no need to throttle bps any more if the bio has been throttled */ - if (bio_flagged(bio, BIO_THROTTLED) && + if (bio_flagged(bio, BIO_BPS_THROTTLED) && !(tg->flags & THROTL_TG_HAS_IOPS_LIMIT)) return false; --- linux-5.19.0.orig/block/blk-wbt.c +++ linux-5.19.0/block/blk-wbt.c @@ -820,6 +820,7 @@ { struct rq_wb *rwb; int i; + int ret; rwb = kzalloc(sizeof(*rwb), GFP_KERNEL); if (!rwb) @@ -840,19 +841,26 @@ rwb->last_comp = rwb->last_issue = jiffies; rwb->win_nsec = RWB_WINDOW_NSEC; rwb->enable_state = WBT_STATE_ON_DEFAULT; - rwb->wc = 1; + rwb->wc = test_bit(QUEUE_FLAG_WC, &q->queue_flags); rwb->rq_depth.default_depth = RWB_DEF_DEPTH; + rwb->min_lat_nsec = wbt_default_latency_nsec(q); + + wbt_queue_depth_changed(&rwb->rqos); /* * Assign rwb and add the stats callback. */ - rq_qos_add(q, &rwb->rqos); + ret = rq_qos_add(q, &rwb->rqos); + if (ret) + goto err_free; + blk_stat_add_callback(q, rwb->cb); - rwb->min_lat_nsec = wbt_default_latency_nsec(q); + return 0; - wbt_queue_depth_changed(&rwb->rqos); - wbt_set_write_cache(q, test_bit(QUEUE_FLAG_WC, &q->queue_flags)); +err_free: + blk_stat_free_callback(rwb->cb); + kfree(rwb); + return ret; - return 0; } --- linux-5.19.0.orig/block/blk.h +++ linux-5.19.0/block/blk.h @@ -260,8 +260,7 @@ void blk_insert_flush(struct request *rq); -int elevator_switch_mq(struct request_queue *q, - struct elevator_type *new_e); +int elevator_switch(struct request_queue *q, struct elevator_type *new_e); void elevator_exit(struct request_queue *q); int elv_register_queue(struct request_queue *q, bool uevent); void elv_unregister_queue(struct request_queue *q); @@ -314,6 +313,7 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio); enum elv_merge blk_try_merge(struct request *rq, struct bio *bio); +void blk_set_default_limits(struct queue_limits *lim); int blk_dev_init(void); /* @@ -411,6 +411,9 @@ sector_t length); void blk_drop_partitions(struct gendisk *disk); +struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id, + struct lock_class_key *lkclass); + int bio_add_hw_page(struct request_queue *q, struct bio *bio, struct page *page, unsigned int len, unsigned int offset, unsigned int max_sectors, bool *same_page); --- linux-5.19.0.orig/block/bsg-lib.c +++ linux-5.19.0/block/bsg-lib.c @@ -324,7 +324,7 @@ container_of(q->tag_set, struct bsg_set, tag_set); bsg_unregister_queue(bset->bd); - blk_cleanup_queue(q); + blk_mq_destroy_queue(q); blk_mq_free_tag_set(&bset->tag_set); kfree(bset); } @@ -399,7 +399,7 @@ return q; out_cleanup_queue: - blk_cleanup_queue(q); + blk_mq_destroy_queue(q); out_queue: blk_mq_free_tag_set(set); out_tag_set: --- linux-5.19.0.orig/block/elevator.c +++ linux-5.19.0/block/elevator.c @@ -588,7 +588,7 @@ } EXPORT_SYMBOL_GPL(elv_unregister); -int elevator_switch_mq(struct request_queue *q, +static int elevator_switch_mq(struct request_queue *q, struct elevator_type *new_e) { int ret; @@ -723,7 +723,7 @@ * need for the new one. this way we have a chance of going back to the old * one, if the new one fails init for some reason. */ -static int elevator_switch(struct request_queue *q, struct elevator_type *new_e) +int elevator_switch(struct request_queue *q, struct elevator_type *new_e) { int err; --- linux-5.19.0.orig/block/genhd.c +++ linux-5.19.0/block/genhd.c @@ -542,8 +542,10 @@ bdi_unregister(disk->bdi); out_unregister_queue: blk_unregister_queue(disk); + rq_qos_exit(disk->queue); out_put_slave_dir: kobject_put(disk->slave_dir); + disk->slave_dir = NULL; out_put_holder_dir: kobject_put(disk->part0->bd_holder_dir); out_del_integrity: @@ -617,13 +619,14 @@ * Fail any new I/O. */ set_bit(GD_DEAD, &disk->state); + if (test_bit(GD_OWNS_QUEUE, &disk->state)) + blk_queue_flag_set(QUEUE_FLAG_DYING, q); set_capacity(disk, 0); /* * Prevent new I/O from crossing bio_queue_enter(). */ blk_queue_start_drain(q); - blk_mq_freeze_queue_wait(q); if (!(disk->flags & GENHD_FL_HIDDEN)) { sysfs_remove_link(&disk_to_dev(disk)->kobj, "bdi"); @@ -639,6 +642,7 @@ kobject_put(disk->part0->bd_holder_dir); kobject_put(disk->slave_dir); + disk->slave_dir = NULL; part_stat_set_all(disk->part0, 0); disk->part0->bd_stamp = 0; @@ -647,6 +651,8 @@ pm_runtime_set_memalloc_noio(disk_to_dev(disk), false); device_del(disk_to_dev(disk)); + blk_mq_freeze_queue_wait(q); + blk_throtl_cancel_bios(disk->queue); blk_sync_queue(q); @@ -663,11 +669,16 @@ blk_mq_unquiesce_queue(q); /* - * Allow using passthrough request again after the queue is torn down. + * If the disk does not own the queue, allow using passthrough requests + * again. Else leave the queue frozen to fail all I/O. */ - blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q); - __blk_mq_unfreeze_queue(q, true); - + if (!test_bit(GD_OWNS_QUEUE, &disk->state)) { + blk_queue_flag_clear(QUEUE_FLAG_INIT_DONE, q); + __blk_mq_unfreeze_queue(q, true); + } else { + if (queue_is_mq(q)) + blk_mq_exit_queue(q); + } } EXPORT_SYMBOL(del_gendisk); @@ -1151,6 +1162,18 @@ might_sleep(); WARN_ON_ONCE(disk_live(disk)); + /* + * To undo the all initialization from blk_mq_init_allocated_queue in + * case of a probe failure where add_disk is never called we have to + * call blk_mq_exit_queue here. We can't do this for the more common + * teardown case (yet) as the tagset can be gone by the time the disk + * is released once it was added. + */ + if (queue_is_mq(disk->queue) && + test_bit(GD_OWNS_QUEUE, &disk->state) && + !test_bit(GD_ADDED, &disk->state)) + blk_mq_exit_queue(disk->queue); + blkcg_exit_queue(disk->queue); disk_release_events(disk); @@ -1338,12 +1361,9 @@ { struct gendisk *disk; - if (!blk_get_queue(q)) - return NULL; - disk = kzalloc_node(sizeof(struct gendisk), GFP_KERNEL, node_id); if (!disk) - goto out_put_queue; + return NULL; disk->bdi = bdi_alloc(node_id); if (!disk->bdi) @@ -1387,11 +1407,8 @@ bdi_put(disk->bdi); out_free_disk: kfree(disk); -out_put_queue: - blk_put_queue(q); return NULL; } -EXPORT_SYMBOL(__alloc_disk_node); struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass) { @@ -1404,9 +1421,10 @@ disk = __alloc_disk_node(q, node, lkclass); if (!disk) { - blk_cleanup_queue(q); + blk_put_queue(q); return NULL; } + set_bit(GD_OWNS_QUEUE, &disk->state); return disk; } EXPORT_SYMBOL(__blk_alloc_disk); @@ -1418,6 +1436,9 @@ * This decrements the refcount for the struct gendisk. When this reaches 0 * we'll have disk_release() called. * + * Note: for blk-mq disk put_disk must be called before freeing the tag_set + * when handling probe errors (that is before add_disk() is called). + * * Context: Any context, but the last reference must not be dropped from * atomic context. */ @@ -1439,7 +1460,6 @@ */ void blk_cleanup_disk(struct gendisk *disk) { - blk_cleanup_queue(disk->queue); put_disk(disk); } EXPORT_SYMBOL(blk_cleanup_disk); --- linux-5.19.0.orig/block/ioprio.c +++ linux-5.19.0/block/ioprio.c @@ -157,9 +157,9 @@ int ioprio_best(unsigned short aprio, unsigned short bprio) { if (!ioprio_valid(aprio)) - aprio = IOPRIO_DEFAULT; + aprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_BE_NORM); if (!ioprio_valid(bprio)) - bprio = IOPRIO_DEFAULT; + bprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_BE_NORM); return min(aprio, bprio); } --- linux-5.19.0.orig/block/partitions/core.c +++ linux-5.19.0/block/partitions/core.c @@ -597,6 +597,9 @@ if (disk->flags & GENHD_FL_NO_PART) return 0; + if (test_bit(GD_SUPPRESS_PART_SCAN, &disk->state)) + return 0; + state = check_partition(disk); if (!state) return 0; --- linux-5.19.0.orig/block/sed-opal.c +++ linux-5.19.0/block/sed-opal.c @@ -88,8 +88,8 @@ u64 lowest_lba; size_t pos; - u8 cmd[IO_BUFFER_LENGTH]; - u8 resp[IO_BUFFER_LENGTH]; + u8 *cmd; + u8 *resp; struct parsed_resp parsed; size_t prev_d_len; @@ -2134,6 +2134,8 @@ return; clean_opal_dev(dev); + kfree(dev->resp); + kfree(dev->cmd); kfree(dev); } EXPORT_SYMBOL(free_opal_dev); @@ -2146,17 +2148,39 @@ if (!dev) return NULL; + /* + * Presumably DMA-able buffers must be cache-aligned. Kmalloc makes + * sure the allocated buffer is DMA-safe in that regard. + */ + dev->cmd = kmalloc(IO_BUFFER_LENGTH, GFP_KERNEL); + if (!dev->cmd) + goto err_free_dev; + + dev->resp = kmalloc(IO_BUFFER_LENGTH, GFP_KERNEL); + if (!dev->resp) + goto err_free_cmd; + INIT_LIST_HEAD(&dev->unlk_lst); mutex_init(&dev->dev_lock); dev->data = data; dev->send_recv = send_recv; if (check_opal_support(dev) != 0) { pr_debug("Opal is not supported on this device\n"); - kfree(dev); - return NULL; + goto err_free_resp; } return dev; + +err_free_resp: + kfree(dev->resp); + +err_free_cmd: + kfree(dev->cmd); + +err_free_dev: + kfree(dev); + + return NULL; } EXPORT_SYMBOL(init_opal_dev); --- linux-5.19.0.orig/certs/Kconfig +++ linux-5.19.0/certs/Kconfig @@ -43,7 +43,7 @@ bool "Provide system-wide ring of trusted keys" depends on KEYS depends on ASYMMETRIC_KEY_TYPE - depends on X509_CERTIFICATE_PARSER + depends on X509_CERTIFICATE_PARSER = y help Provide a system keyring to which trusted keys can be added. Keys in the keyring are considered to be trusted. Keys may be added at will --- linux-5.19.0.orig/certs/blacklist.c +++ linux-5.19.0/certs/blacklist.c @@ -273,6 +273,9 @@ if (IS_ERR(key)) { pr_err("Problem with revocation key (%ld)\n", PTR_ERR(key)); return PTR_ERR(key); + } else { + pr_notice("Revoked X.509 cert '%s'\n", + key_ref_to_ptr(key)->description); } return 0; --- linux-5.19.0.orig/crypto/Kconfig +++ linux-5.19.0/crypto/Kconfig @@ -704,26 +704,8 @@ See https://blake2.net for further information. -config CRYPTO_BLAKE2S - tristate "BLAKE2s digest algorithm" - select CRYPTO_LIB_BLAKE2S_GENERIC - select CRYPTO_HASH - help - Implementation of cryptographic hash function BLAKE2s - optimized for 8-32bit platforms and can produce digests of any size - between 1 to 32. The keyed hash is also implemented. - - This module provides the following algorithms: - - - blake2s-128 - - blake2s-160 - - blake2s-224 - - blake2s-256 - - See https://blake2.net for further information. - config CRYPTO_BLAKE2S_X86 - tristate "BLAKE2s digest algorithm (x86 accelerated version)" + bool "BLAKE2s digest algorithm (x86 accelerated version)" depends on X86 && 64BIT select CRYPTO_LIB_BLAKE2S_GENERIC select CRYPTO_ARCH_HAVE_LIB_BLAKE2S --- linux-5.19.0.orig/crypto/Makefile +++ linux-5.19.0/crypto/Makefile @@ -84,7 +84,6 @@ obj-$(CONFIG_CRYPTO_WP512) += wp512.o CFLAGS_wp512.o := $(call cc-option,-fno-schedule-insns) # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79149 obj-$(CONFIG_CRYPTO_BLAKE2B) += blake2b_generic.o -obj-$(CONFIG_CRYPTO_BLAKE2S) += blake2s_generic.o obj-$(CONFIG_CRYPTO_GF128MUL) += gf128mul.o obj-$(CONFIG_CRYPTO_ECB) += ecb.o obj-$(CONFIG_CRYPTO_CBC) += cbc.o --- linux-5.19.0.orig/crypto/aegis128-neon-inner.c +++ linux-5.19.0/crypto/aegis128-neon-inner.c @@ -147,8 +147,8 @@ kiv, vld1q_u8(const1), vld1q_u8(const0), - k ^ vld1q_u8(const0), - k ^ vld1q_u8(const1), + (uint8x16_t) (k ^ vld1q_u8(const0)), + (uint8x16_t) (k ^ vld1q_u8(const1)), }}; int i; --- linux-5.19.0.orig/crypto/akcipher.c +++ linux-5.19.0/crypto/akcipher.c @@ -120,6 +120,12 @@ return -ENOSYS; } +static int akcipher_default_set_key(struct crypto_akcipher *tfm, + const void *key, unsigned int keylen) +{ + return -ENOSYS; +} + int crypto_register_akcipher(struct akcipher_alg *alg) { struct crypto_alg *base = &alg->base; @@ -132,6 +138,8 @@ alg->encrypt = akcipher_default_op; if (!alg->decrypt) alg->decrypt = akcipher_default_op; + if (!alg->set_priv_key) + alg->set_priv_key = akcipher_default_set_key; akcipher_prepare_alg(alg); return crypto_register_alg(base); --- linux-5.19.0.orig/crypto/asymmetric_keys/public_key.c +++ linux-5.19.0/crypto/asymmetric_keys/public_key.c @@ -304,6 +304,10 @@ BUG_ON(!sig->data); + /* SM2 signatures always use the SM3 hash algorithm */ + if (!sig->hash_algo || strcmp(sig->hash_algo, "sm3") != 0) + return -EINVAL; + ret = sm2_compute_z_digest(tfm_pkey, SM2_DEFAULT_USERID, SM2_DEFAULT_USERID_LEN, dgst); if (ret) @@ -414,8 +418,7 @@ if (ret) goto error_free_key; - if (sig->pkey_algo && strcmp(sig->pkey_algo, "sm2") == 0 && - sig->data_size) { + if (strcmp(pkey->pkey_algo, "sm2") == 0 && sig->data_size) { ret = cert_sig_digest_update(sig, tfm); if (ret) goto error_free_key; --- linux-5.19.0.orig/crypto/asymmetric_keys/x509_loader.c +++ linux-5.19.0/crypto/asymmetric_keys/x509_loader.c @@ -41,6 +41,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-5.19.0.orig/crypto/cryptd.c +++ linux-5.19.0/crypto/cryptd.c @@ -68,11 +68,12 @@ struct cryptd_skcipher_ctx { refcount_t refcnt; - struct crypto_sync_skcipher *child; + struct crypto_skcipher *child; }; struct cryptd_skcipher_request_ctx { crypto_completion_t complete; + struct skcipher_request req; }; struct cryptd_hash_ctx { @@ -227,13 +228,13 @@ const u8 *key, unsigned int keylen) { struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(parent); - struct crypto_sync_skcipher *child = ctx->child; + struct crypto_skcipher *child = ctx->child; - crypto_sync_skcipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); - crypto_sync_skcipher_set_flags(child, - crypto_skcipher_get_flags(parent) & - CRYPTO_TFM_REQ_MASK); - return crypto_sync_skcipher_setkey(child, key, keylen); + crypto_skcipher_clear_flags(child, CRYPTO_TFM_REQ_MASK); + crypto_skcipher_set_flags(child, + crypto_skcipher_get_flags(parent) & + CRYPTO_TFM_REQ_MASK); + return crypto_skcipher_setkey(child, key, keylen); } static void cryptd_skcipher_complete(struct skcipher_request *req, int err) @@ -258,13 +259,13 @@ struct cryptd_skcipher_request_ctx *rctx = skcipher_request_ctx(req); struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); - struct crypto_sync_skcipher *child = ctx->child; - SYNC_SKCIPHER_REQUEST_ON_STACK(subreq, child); + struct skcipher_request *subreq = &rctx->req; + struct crypto_skcipher *child = ctx->child; if (unlikely(err == -EINPROGRESS)) goto out; - skcipher_request_set_sync_tfm(subreq, child); + skcipher_request_set_tfm(subreq, child); skcipher_request_set_callback(subreq, CRYPTO_TFM_REQ_MAY_SLEEP, NULL, NULL); skcipher_request_set_crypt(subreq, req->src, req->dst, req->cryptlen, @@ -286,13 +287,13 @@ struct cryptd_skcipher_request_ctx *rctx = skcipher_request_ctx(req); struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); - struct crypto_sync_skcipher *child = ctx->child; - SYNC_SKCIPHER_REQUEST_ON_STACK(subreq, child); + struct skcipher_request *subreq = &rctx->req; + struct crypto_skcipher *child = ctx->child; if (unlikely(err == -EINPROGRESS)) goto out; - skcipher_request_set_sync_tfm(subreq, child); + skcipher_request_set_tfm(subreq, child); skcipher_request_set_callback(subreq, CRYPTO_TFM_REQ_MAY_SLEEP, NULL, NULL); skcipher_request_set_crypt(subreq, req->src, req->dst, req->cryptlen, @@ -343,9 +344,10 @@ if (IS_ERR(cipher)) return PTR_ERR(cipher); - ctx->child = (struct crypto_sync_skcipher *)cipher; + ctx->child = cipher; crypto_skcipher_set_reqsize( - tfm, sizeof(struct cryptd_skcipher_request_ctx)); + tfm, sizeof(struct cryptd_skcipher_request_ctx) + + crypto_skcipher_reqsize(cipher)); return 0; } @@ -353,7 +355,7 @@ { struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(tfm); - crypto_free_sync_skcipher(ctx->child); + crypto_free_skcipher(ctx->child); } static void cryptd_skcipher_free(struct skcipher_instance *inst) @@ -931,7 +933,7 @@ { struct cryptd_skcipher_ctx *ctx = crypto_skcipher_ctx(&tfm->base); - return &ctx->child->base; + return ctx->child; } EXPORT_SYMBOL_GPL(cryptd_skcipher_child); --- linux-5.19.0.orig/crypto/tcrypt.c +++ linux-5.19.0/crypto/tcrypt.c @@ -1101,15 +1101,6 @@ goto out_free_tfm; } - - for (i = 0; i < num_mb; ++i) - if (testmgr_alloc_buf(data[i].xbuf)) { - while (i--) - testmgr_free_buf(data[i].xbuf); - goto out_free_tfm; - } - - for (i = 0; i < num_mb; ++i) { data[i].req = skcipher_request_alloc(tfm, GFP_KERNEL); if (!data[i].req) { @@ -1669,10 +1660,6 @@ ret += tcrypt_test("rmd160"); break; - case 41: - ret += tcrypt_test("blake2s-256"); - break; - case 42: ret += tcrypt_test("blake2b-512"); break; @@ -2240,10 +2227,6 @@ test_hash_speed("rmd160", sec, generic_hash_speed_template); if (mode > 300 && mode < 400) break; fallthrough; - case 316: - test_hash_speed("blake2s-256", sec, generic_hash_speed_template); - if (mode > 300 && mode < 400) break; - fallthrough; case 317: test_hash_speed("blake2b-512", sec, generic_hash_speed_template); if (mode > 300 && mode < 400) break; @@ -2352,10 +2335,6 @@ test_ahash_speed("rmd160", sec, generic_hash_speed_template); if (mode > 400 && mode < 500) break; fallthrough; - case 416: - test_ahash_speed("blake2s-256", sec, generic_hash_speed_template); - if (mode > 400 && mode < 500) break; - fallthrough; case 417: test_ahash_speed("blake2b-512", sec, generic_hash_speed_template); if (mode > 400 && mode < 500) break; --- linux-5.19.0.orig/crypto/testmgr.c +++ linux-5.19.0/crypto/testmgr.c @@ -4376,30 +4376,6 @@ .hash = __VECS(blake2b_512_tv_template) } }, { - .alg = "blake2s-128", - .test = alg_test_hash, - .suite = { - .hash = __VECS(blakes2s_128_tv_template) - } - }, { - .alg = "blake2s-160", - .test = alg_test_hash, - .suite = { - .hash = __VECS(blakes2s_160_tv_template) - } - }, { - .alg = "blake2s-224", - .test = alg_test_hash, - .suite = { - .hash = __VECS(blakes2s_224_tv_template) - } - }, { - .alg = "blake2s-256", - .test = alg_test_hash, - .suite = { - .hash = __VECS(blakes2s_256_tv_template) - } - }, { .alg = "cbc(aes)", .test = alg_test_skcipher, .fips_allowed = 1, --- linux-5.19.0.orig/crypto/testmgr.h +++ linux-5.19.0/crypto/testmgr.h @@ -34034,221 +34034,4 @@ 0xae, 0x15, 0x81, 0x15, 0xd0, 0x88, 0xa0, 0x3c, }, }}; -static const struct hash_testvec blakes2s_128_tv_template[] = {{ - .digest = (u8[]){ 0x64, 0x55, 0x0d, 0x6f, 0xfe, 0x2c, 0x0a, 0x01, - 0xa1, 0x4a, 0xba, 0x1e, 0xad, 0xe0, 0x20, 0x0c, }, -}, { - .plaintext = blake2_ordered_sequence, - .psize = 64, - .digest = (u8[]){ 0xdc, 0x66, 0xca, 0x8f, 0x03, 0x86, 0x58, 0x01, - 0xb0, 0xff, 0xe0, 0x6e, 0xd8, 0xa1, 0xa9, 0x0e, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 1, - .digest = (u8[]){ 0x88, 0x1e, 0x42, 0xe7, 0xbb, 0x35, 0x80, 0x82, - 0x63, 0x7c, 0x0a, 0x0f, 0xd7, 0xec, 0x6c, 0x2f, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 7, - .digest = (u8[]){ 0xcf, 0x9e, 0x07, 0x2a, 0xd5, 0x22, 0xf2, 0xcd, - 0xa2, 0xd8, 0x25, 0x21, 0x80, 0x86, 0x73, 0x1c, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 15, - .digest = (u8[]){ 0xf6, 0x33, 0x5a, 0x2c, 0x22, 0xa0, 0x64, 0xb2, - 0xb6, 0x3f, 0xeb, 0xbc, 0xd1, 0xc3, 0xe5, 0xb2, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 247, - .digest = (u8[]){ 0x72, 0x66, 0x49, 0x60, 0xf9, 0x4a, 0xea, 0xbe, - 0x1f, 0xf4, 0x60, 0xce, 0xb7, 0x81, 0xcb, 0x09, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 256, - .digest = (u8[]){ 0xd5, 0xa4, 0x0e, 0xc3, 0x16, 0xc7, 0x51, 0xa6, - 0x3c, 0xd0, 0xd9, 0x11, 0x57, 0xfa, 0x1e, 0xbb, }, -}}; - -static const struct hash_testvec blakes2s_160_tv_template[] = {{ - .plaintext = blake2_ordered_sequence, - .psize = 7, - .digest = (u8[]){ 0xb4, 0xf2, 0x03, 0x49, 0x37, 0xed, 0xb1, 0x3e, - 0x5b, 0x2a, 0xca, 0x64, 0x82, 0x74, 0xf6, 0x62, - 0xe3, 0xf2, 0x84, 0xff, }, -}, { - .plaintext = blake2_ordered_sequence, - .psize = 256, - .digest = (u8[]){ 0xaa, 0x56, 0x9b, 0xdc, 0x98, 0x17, 0x75, 0xf2, - 0xb3, 0x68, 0x83, 0xb7, 0x9b, 0x8d, 0x48, 0xb1, - 0x9b, 0x2d, 0x35, 0x05, }, -}, { - .ksize = 1, - .key = "B", - .digest = (u8[]){ 0x50, 0x16, 0xe7, 0x0c, 0x01, 0xd0, 0xd3, 0xc3, - 0xf4, 0x3e, 0xb1, 0x6e, 0x97, 0xa9, 0x4e, 0xd1, - 0x79, 0x65, 0x32, 0x93, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 1, - .digest = (u8[]){ 0x1c, 0x2b, 0xcd, 0x9a, 0x68, 0xca, 0x8c, 0x71, - 0x90, 0x29, 0x6c, 0x54, 0xfa, 0x56, 0x4a, 0xef, - 0xa2, 0x3a, 0x56, 0x9c, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 15, - .digest = (u8[]){ 0x36, 0xc3, 0x5f, 0x9a, 0xdc, 0x7e, 0xbf, 0x19, - 0x68, 0xaa, 0xca, 0xd8, 0x81, 0xbf, 0x09, 0x34, - 0x83, 0x39, 0x0f, 0x30, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 64, - .digest = (u8[]){ 0x86, 0x80, 0x78, 0xa4, 0x14, 0xec, 0x03, 0xe5, - 0xb6, 0x9a, 0x52, 0x0e, 0x42, 0xee, 0x39, 0x9d, - 0xac, 0xa6, 0x81, 0x63, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 247, - .digest = (u8[]){ 0x2d, 0xd8, 0xd2, 0x53, 0x66, 0xfa, 0xa9, 0x01, - 0x1c, 0x9c, 0xaf, 0xa3, 0xe2, 0x9d, 0x9b, 0x10, - 0x0a, 0xf6, 0x73, 0xe8, }, -}}; - -static const struct hash_testvec blakes2s_224_tv_template[] = {{ - .plaintext = blake2_ordered_sequence, - .psize = 1, - .digest = (u8[]){ 0x61, 0xb9, 0x4e, 0xc9, 0x46, 0x22, 0xa3, 0x91, - 0xd2, 0xae, 0x42, 0xe6, 0x45, 0x6c, 0x90, 0x12, - 0xd5, 0x80, 0x07, 0x97, 0xb8, 0x86, 0x5a, 0xfc, - 0x48, 0x21, 0x97, 0xbb, }, -}, { - .plaintext = blake2_ordered_sequence, - .psize = 247, - .digest = (u8[]){ 0x9e, 0xda, 0xc7, 0x20, 0x2c, 0xd8, 0x48, 0x2e, - 0x31, 0x94, 0xab, 0x46, 0x6d, 0x94, 0xd8, 0xb4, - 0x69, 0xcd, 0xae, 0x19, 0x6d, 0x9e, 0x41, 0xcc, - 0x2b, 0xa4, 0xd5, 0xf6, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .digest = (u8[]){ 0x32, 0xc0, 0xac, 0xf4, 0x3b, 0xd3, 0x07, 0x9f, - 0xbe, 0xfb, 0xfa, 0x4d, 0x6b, 0x4e, 0x56, 0xb3, - 0xaa, 0xd3, 0x27, 0xf6, 0x14, 0xbf, 0xb9, 0x32, - 0xa7, 0x19, 0xfc, 0xb8, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 7, - .digest = (u8[]){ 0x73, 0xad, 0x5e, 0x6d, 0xb9, 0x02, 0x8e, 0x76, - 0xf2, 0x66, 0x42, 0x4b, 0x4c, 0xfa, 0x1f, 0xe6, - 0x2e, 0x56, 0x40, 0xe5, 0xa2, 0xb0, 0x3c, 0xe8, - 0x7b, 0x45, 0xfe, 0x05, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 15, - .digest = (u8[]){ 0x16, 0x60, 0xfb, 0x92, 0x54, 0xb3, 0x6e, 0x36, - 0x81, 0xf4, 0x16, 0x41, 0xc3, 0x3d, 0xd3, 0x43, - 0x84, 0xed, 0x10, 0x6f, 0x65, 0x80, 0x7a, 0x3e, - 0x25, 0xab, 0xc5, 0x02, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 64, - .digest = (u8[]){ 0xca, 0xaa, 0x39, 0x67, 0x9c, 0xf7, 0x6b, 0xc7, - 0xb6, 0x82, 0xca, 0x0e, 0x65, 0x36, 0x5b, 0x7c, - 0x24, 0x00, 0xfa, 0x5f, 0xda, 0x06, 0x91, 0x93, - 0x6a, 0x31, 0x83, 0xb5, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 256, - .digest = (u8[]){ 0x90, 0x02, 0x26, 0xb5, 0x06, 0x9c, 0x36, 0x86, - 0x94, 0x91, 0x90, 0x1e, 0x7d, 0x2a, 0x71, 0xb2, - 0x48, 0xb5, 0xe8, 0x16, 0xfd, 0x64, 0x33, 0x45, - 0xb3, 0xd7, 0xec, 0xcc, }, -}}; - -static const struct hash_testvec blakes2s_256_tv_template[] = {{ - .plaintext = blake2_ordered_sequence, - .psize = 15, - .digest = (u8[]){ 0xd9, 0x7c, 0x82, 0x8d, 0x81, 0x82, 0xa7, 0x21, - 0x80, 0xa0, 0x6a, 0x78, 0x26, 0x83, 0x30, 0x67, - 0x3f, 0x7c, 0x4e, 0x06, 0x35, 0x94, 0x7c, 0x04, - 0xc0, 0x23, 0x23, 0xfd, 0x45, 0xc0, 0xa5, 0x2d, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .digest = (u8[]){ 0x48, 0xa8, 0x99, 0x7d, 0xa4, 0x07, 0x87, 0x6b, - 0x3d, 0x79, 0xc0, 0xd9, 0x23, 0x25, 0xad, 0x3b, - 0x89, 0xcb, 0xb7, 0x54, 0xd8, 0x6a, 0xb7, 0x1a, - 0xee, 0x04, 0x7a, 0xd3, 0x45, 0xfd, 0x2c, 0x49, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 1, - .digest = (u8[]){ 0x22, 0x27, 0xae, 0xaa, 0x6e, 0x81, 0x56, 0x03, - 0xa7, 0xe3, 0xa1, 0x18, 0xa5, 0x9a, 0x2c, 0x18, - 0xf4, 0x63, 0xbc, 0x16, 0x70, 0xf1, 0xe7, 0x4b, - 0x00, 0x6d, 0x66, 0x16, 0xae, 0x9e, 0x74, 0x4e, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 7, - .digest = (u8[]){ 0x58, 0x5d, 0xa8, 0x60, 0x1c, 0xa4, 0xd8, 0x03, - 0x86, 0x86, 0x84, 0x64, 0xd7, 0xa0, 0x8e, 0x15, - 0x2f, 0x05, 0xa2, 0x1b, 0xbc, 0xef, 0x7a, 0x34, - 0xb3, 0xc5, 0xbc, 0x4b, 0xf0, 0x32, 0xeb, 0x12, }, -}, { - .ksize = 32, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 64, - .digest = (u8[]){ 0x89, 0x75, 0xb0, 0x57, 0x7f, 0xd3, 0x55, 0x66, - 0xd7, 0x50, 0xb3, 0x62, 0xb0, 0x89, 0x7a, 0x26, - 0xc3, 0x99, 0x13, 0x6d, 0xf0, 0x7b, 0xab, 0xab, - 0xbd, 0xe6, 0x20, 0x3f, 0xf2, 0x95, 0x4e, 0xd4, }, -}, { - .ksize = 1, - .key = "B", - .plaintext = blake2_ordered_sequence, - .psize = 247, - .digest = (u8[]){ 0x2e, 0x74, 0x1c, 0x1d, 0x03, 0xf4, 0x9d, 0x84, - 0x6f, 0xfc, 0x86, 0x32, 0x92, 0x49, 0x7e, 0x66, - 0xd7, 0xc3, 0x10, 0x88, 0xfe, 0x28, 0xb3, 0xe0, - 0xbf, 0x50, 0x75, 0xad, 0x8e, 0xa4, 0xe6, 0xb2, }, -}, { - .ksize = 16, - .key = blake2_ordered_sequence, - .plaintext = blake2_ordered_sequence, - .psize = 256, - .digest = (u8[]){ 0xb9, 0xd2, 0x81, 0x0e, 0x3a, 0xb1, 0x62, 0x9b, - 0xad, 0x44, 0x05, 0xf4, 0x92, 0x2e, 0x99, 0xc1, - 0x4a, 0x47, 0xbb, 0x5b, 0x6f, 0xb2, 0x96, 0xed, - 0xd5, 0x06, 0xb5, 0x3a, 0x7c, 0x7a, 0x65, 0x1d, }, -}}; - #endif /* _CRYPTO_TESTMGR_H */ --- linux-5.19.0.orig/debian.master/abi/abiname +++ linux-5.19.0/debian.master/abi/abiname @@ -0,0 +1 @@ +40 --- linux-5.19.0.orig/debian.master/abi/amd64/generic +++ linux-5.19.0/debian.master/abi/amd64/generic @@ -0,0 +1,27076 @@ +ACPI EXPORT_SYMBOL_GPL 0xc331c3c7 acpi_table_parse_cedt vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x1eea8ae7 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x3221b892 crypto_cipher_setkey vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xa3e37815 crypto_cipher_encrypt_one vmlinux +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x05cd2e87 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0a4da2fc devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1dbc9463 cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x20789767 is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x22d7106d cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2547ff27 cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x25debe31 devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x29cce8db to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2b3143a9 cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2c1723d6 devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x334ad9ee cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x3fa350df find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4902fd12 cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x497312ab devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4aed414c cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4cfae129 is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x536ec99d cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5429d0d1 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5afc24da __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5de3fce4 is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x62ad0b9f cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x65dd4166 cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x66d8e2be cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7211655f cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x73044f6e is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x79a44f62 cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7aaf7dd0 cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7f79cd39 to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x81939666 set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x82ffcb77 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x86d690da is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x889ffe23 cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8b9623be devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa121c26f cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa686294b to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa6dc0ce3 devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xab444de5 clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xae1ce7a1 cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xae93fa48 cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xaf386cb9 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbd45a28b devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbdc4106e cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbf73fd9e to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc56f9fc3 devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xccc6dfcb cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd1d20ddb cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd26ba491 cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdc3ffce5 cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdcf44bfc devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdd92e93d cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfe8dd771 is_cxl_memdev drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x00ad6433 dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x08128c8f dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x371c9076 dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x38cc7351 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x48163155 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x488bad77 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x544afd92 dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x56bdcfde dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x74ab4569 dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x814b449d dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x856f8941 dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x93af4fda dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xa39d96e0 dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xab46aaa2 dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xb0134751 dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xb98deb43 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xdd00ddb1 dma_buf_map_attachment vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0xdc94f829 chacha_init_arch +EXPORT_SYMBOL arch/x86/crypto/chacha-x86_64 0xdd8ec6bd hchacha_block_arch +EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0x3c74a43e curve25519_base_arch +EXPORT_SYMBOL arch/x86/crypto/curve25519-x86_64 0xc832c670 curve25519_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0xd9ec23eb poly1305_update_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0xe1df0e1b poly1305_init_arch +EXPORT_SYMBOL arch/x86/crypto/poly1305-x86_64 0xfaeb41b2 poly1305_final_arch +EXPORT_SYMBOL arch/x86/kvm/kvm 0x2468b429 kvm_cpu_has_pending_timer +EXPORT_SYMBOL crypto/blake2b_generic 0x32e24c8a blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x8261eccb ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x8e688192 ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x90cdc197 ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x9263b417 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x92668805 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x932b6ff7 vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x9f6efabd vli_sub +EXPORT_SYMBOL crypto/ecc 0xa76b31a2 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0xb10fc19e ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0xd6315f31 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0xd94c8eb5 ecc_point_is_zero +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 0x4605cf12 crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x5005a47b crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0xcea59375 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0xd8ca70b8 crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0xe5df5ad7 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0xf6a3e957 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/sha3_generic 0x0a473f08 crypto_sha3_init +EXPORT_SYMBOL crypto/sha3_generic 0x27e9b800 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0xd6d07d57 crypto_sha3_update +EXPORT_SYMBOL crypto/sm2_generic 0xaeb7f11b sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0xf4fd3bd2 crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x06848c60 to_nfit_uuid +EXPORT_SYMBOL drivers/acpi/video 0x2fd453d2 acpi_video_get_levels +EXPORT_SYMBOL drivers/acpi/video 0x4c5f83fa 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 0xcb4d18c7 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0xaedc377a bcma_core_irq +EXPORT_SYMBOL drivers/bcma/bcma 0xb99abbd9 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 0x14b36ec8 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x37aad3c5 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x3e54f43b pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x541b6a93 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5ae3d4f6 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x61f4b5ac paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x7c192590 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x7d3caddb pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xb21ba07d pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0xc3129f1f pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xd0552674 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xe8a1cdc3 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xe913bca8 pi_init +EXPORT_SYMBOL drivers/bluetooth/btbcm 0xb21faa71 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x2b93d91c rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x3ea45272 mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3337e9a5 ipmi_smi_watcher_register +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 0x96a6e5e8 ipmi_smi_msg_received +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 0xb40b7820 ipmi_get_smi_info +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 0xe98c507d ipmb_checksum +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xec1c2a90 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee00b22d 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 0xfd8a5fa6 ipmi_smi_watcher_unregister +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 0x62808faf st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x8acde181 st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xa57ed355 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xe3fc732d st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x045f16fa xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x858f0880 xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xe6bff7d0 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x293837c6 xillybus_init_endpoint +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x6ecf0a10 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0xe11c1062 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x4b963438 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 0xc80f14e8 atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xdf4e47d6 atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xf283e995 atmel_i2c_init_random_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xf484008e atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xfaab573f atmel_i2c_init_ecdh_cmd +EXPORT_SYMBOL drivers/crypto/ccp/ccp 0x47d3c97f psp_check_tee_status +EXPORT_SYMBOL drivers/crypto/ccp/ccp 0xaa04056c psp_tee_process_cmd +EXPORT_SYMBOL drivers/firewire/firewire-core 0x075e6946 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0bc6094c fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x12aa813f fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x17e9f215 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1adc59b2 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x25d4a52c fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2ccf9fb2 fw_iso_context_start +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 0x599fd729 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x69be4be0 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dc50487 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7ec2a82c fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9c8aa105 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f2895d5 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa223a0b4 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa515097d fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xacb7a77b fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaedf84ce fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7ca2066 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb8e682e1 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc2772c23 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc560a208 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd2565a32 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe023889b fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe05d7ccc fw_bus_type +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 0xe8bdadb4 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec08dc45 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec273422 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xeebea262 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf5163782 fw_iso_context_stop +EXPORT_SYMBOL drivers/fpga/dfl 0x0654233f dfl_driver_unregister +EXPORT_SYMBOL drivers/fpga/dfl 0xf675113d __dfl_driver_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x02c7d062 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x02e568f0 drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x08abadfc drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0921e467 drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0db475cf drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x10351926 drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x11d1260d drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x12b7cd1c drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x13b7027d drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x15017e50 drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x15702849 drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x18198d65 drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1d7bd62f drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1d9defd9 drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1f302312 drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1f38f162 drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x253a5bd8 drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2b294137 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2d3f835d drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x31bd3a57 drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x350f5bda drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3628e639 drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x364b1821 drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x38ce2776 drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3c47574b drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3ef6d15a drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x406b6eb0 drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x47f46499 drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x48fe65b7 drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4c9650f6 drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4e4b7775 drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x509b33a6 drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x57d78f3d drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d472f5 drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x593273a2 drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5cb28862 drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6036601a drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6089e892 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x60e0b0cc drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x62255762 drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6551bd1c drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x686d8248 drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68a8f2ed drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x69bed340 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6f3bfd75 drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x702a1fe7 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x753d1873 drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7a665aaa drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7c7a0cf7 drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7e1adf58 drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x801eb91b drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x82ac6795 drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x88e41b14 drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8a812260 drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8b81e336 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8c71e2e4 drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ca2d9e4 drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d701329 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8e254416 drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ec2f518 drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x90336211 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x92b9835e drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x93168fd0 drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x988a0c4f drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9bda7c90 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9bfbf499 drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa1fefe6a drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa4f1c869 drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa61b808c drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa6e55b06 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa7287b79 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xacb42540 drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaf267620 drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb0e073ce drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb60590e7 drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb6376053 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbc29da3c drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbdb6a85c drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf2c42c0 drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc020c0c1 drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc371d207 drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc39e6409 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc4dd86ff drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc532e8bc drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5c99a79 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5eb3c0c drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc7388c34 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc79ecffb drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc8b6a8ae drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc942b7d8 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xccf54d5e drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcd6f03a4 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcfea7530 drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd157d74c drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd16e89c6 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd5a95eae drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd7637c54 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd7d98239 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd98f553d drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xda579f0e drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdc24c024 drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdc2590d5 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe1b7fe8a drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe5360b84 drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe559b311 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe8f82730 drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe94b34ca drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe9f2aac3 drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xeaa3b2b7 drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xeabb29f5 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedcf81ce drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xee9a68ea drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3088b5b drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3133569 drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3333d8b drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf34a72b1 drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3680ca8 drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf546adec drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf68741fb drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf689ad25 drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfa396a68 drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb1a7a5a drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfce37df3 drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe12bcb9 drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe2497ab drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00bf4f1d drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01371ad7 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01c2fd2b drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0286b896 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02a96224 drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c63897 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03ce8957 drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x042546ab drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x043bb53e drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04a3e0af drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x050345f1 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x066d2611 drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0797a841 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07b44938 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07fb449a drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x085beffd drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08b274fa drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08f40554 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x098b6b06 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a2c52cf drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b62ed56 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b674258 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c70ea44 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c7296d2 drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0db6035f drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e5ec2ee drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eb7f5eb drm_privacy_screen_lookup_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f38def6 drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f61ccd6 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f6e588a drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +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 0x11213183 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1139d683 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11af0199 drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11ba98df drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x123676f8 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1378e505 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13816586 drm_privacy_screen_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13b6113c drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x141f804a drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14d68921 drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15539c4d drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1800bf3b drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x188bb7ae drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19346944 drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1938ff74 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19c316fc drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b565c23 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ba28fa6 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d7f403e drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ec47055 drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f82b695 drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x201ebff4 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21f68bdb drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x234c0096 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x238b3424 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23a25c24 drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23d1b805 drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cf437a drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25161fbf drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26c28444 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27ddb7f7 drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2813d025 drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x286bdeef drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a2b38a0 drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a4024a8 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aac4b96 drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ad5d5e0 drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b34ab53 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cd4b582 drm_privacy_screen_register_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e4c23ba drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed19d37 drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f3949ec drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f476172 drm_privacy_screen_lookup_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2faf91ec __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fc8a368 drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x308ff4b3 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3098c7c0 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31d555e8 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x329283d6 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33661abf drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33f89f66 drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3402e7d3 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34960db7 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34d918e0 drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3645e2ca drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f4eeee drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36f95daf drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3889c886 drm_privacy_screen_set_sw_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38b97f76 drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38d2e236 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38dd5704 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3976995e drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39978196 drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a31a2d2 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3baf871e drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c0bf15f drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c22a4d8 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c354e16 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d2ac258 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d7c0019 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e071b3d drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e46b4fd drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eace939 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ec7dba5 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f2f1c33 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f2f287a drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fd4ba92 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ff5b058 drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41b40cda drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41c1ae8e drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x434381c8 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45e327d3 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4817eedf drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831da6e drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x491fd113 drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x493189b5 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x496fecbd drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x499b8c2c drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a56d4b0 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b984644 drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d70516b drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4daca6f5 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4db564ce drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dd36bf0 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f11b8e6 drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fa3e2ae drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fa7be05 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50a75be9 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x512cc34a drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x515d26f0 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5195b93b drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51ef6e16 drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52277714 drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52bed758 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5347da6d drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x535f0302 drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5366c88b drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54013767 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5525c1e9 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x552eaebf drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55d7d368 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56561923 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x581cff50 drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x589b79b7 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x589bbb3a drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aeb52ef drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b42e512 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c7b8387 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e11ac4b drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e174810 drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fd41719 __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60ca0df9 drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6340310d drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65de60d0 drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65ff006d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66748698 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6811a685 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x684b72da drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69d60b39 drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a14e90b drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a543bff drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b0daee9 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c74c9ae drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da8c524 drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e24fd03 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6eb87d72 drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fce0033 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70242f44 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0x710d48cd drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x712f74ea devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72220073 drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7276a4eb drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0x729b9432 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x729c0530 drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72d50a85 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7513efcf drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7569928f drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x759d67c8 drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x759effd8 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75e230ab drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76d65cba drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x770d15f1 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77a88ee1 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77bbf7ed drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77c9a709 drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77dc9a77 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7860be0e drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x789f2465 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x792da88a drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79357bbe drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aab042f drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2e2166 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b4f4b9c drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b8e7384 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d1aa7ce drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ff0c907 drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81c22030 drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8438c639 drm_privacy_screen_call_notifier_chain +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84dd07c9 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85308e8b drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85fcc52f drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x870a60aa drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87a02ab6 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89128e95 drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89319a5b drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89c18f9f drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a95cd36 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ca67e16 drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dc6eec6 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8df8f353 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e9beb7a drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ed5c7dc drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f920f1e drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90231ff7 drm_privacy_screen_unregister_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0x905f464a drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91ae3064 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x923b099e drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9424594c drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94b28ef7 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96a6c47d drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96ad010e drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98337141 drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98392c63 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a65b4d8 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cc655e9 drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e505525 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ef8e7b2 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f675bba drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fddc039 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1fb19cf drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2f6c705 drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3badc5b drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa41c2ed0 drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa46efe4d drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa487190d drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4b273e8 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4f83256 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa69b81de drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa764bb33 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa76b7b15 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa87273ae drm_privacy_screen_get_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8c52fe8 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8f02036 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9e29e85 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab4fb97d drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabc92340 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac14d5e1 drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac6032c8 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xace879eb drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad9205d2 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae191154 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaec91083 drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb065506c drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0b05ff5 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb22dfd68 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2482291 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb269d1ac drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb36b23b8 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3a91247 drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3c7eb32 drm_privacy_screen_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6f4b513 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb75d83cd drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb852e09f drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8d8a46b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8d9f096 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaae067c drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbad8d8c6 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaf43ed3 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb542ab9 drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb6703ac drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbb19aac drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc2bb7fd drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc6b3a8b drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcdeb55a drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd06c712 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd9aa489 drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe929fa0 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf6a8230 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a94bd1 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0d108cd drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0e54cc1 drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc21e3b58 drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc22af5b1 drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc26ac9ea drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc367ba49 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc369d349 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc58aa81c drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6ca1eb6 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6cffb40 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6edbb68 drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7910e38 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d04fc5 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc82982eb drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc85dc41f drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8933659 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8fa16e2 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9411299 drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca190085 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac2685d drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb63ce9b drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc427d0c drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc56d178 drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcca85aef drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc59759 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb56e95 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05e21b8 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05fda43 drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0e2f839 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13a70ee drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1ed8fba drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4c5b30f drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd54565b4 __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd568888f drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5992d67 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7d79c7d drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8b32506 drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda2ba6e6 drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb199274 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb2d7b2e drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb668445 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc1c6aaa drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc6b3e97 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcaf4926 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde442a24 drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde63e4b0 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde67018c drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdeb37b7e drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdff0680b drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe040331b drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe048276b drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0f2ff0a drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1508e01 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe45e87ff drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4a9aad0 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe53883da drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8408291 drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a0e334 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a58ca8 drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8ac99f1 drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8f07028 __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea65519c drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea994abf drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebe8539b drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec12af74 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecbdf054 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedfa1887 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeebc1ebb drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefe96c91 drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0d3b10d drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf166d8df drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf214e11a drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2258115 drm_privacy_screen_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf287a168 drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf288e5ba drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf43d23fc drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4e63821 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf50d455c drm_privacy_screen_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf54fac3e drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf594c6a4 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5b7a59c drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf67e219b __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf74f078b drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf85fe080 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf977d3ad drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa19f17b drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaad6524 drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaba9bdb drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfaf63cc3 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbd54c93 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc15fb6c drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfca1acaf drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd5ce9b8 drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdda2a55 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe927864 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb19520 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb34020 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc7ba89 __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffdfb3e3 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x22d53779 drm_buddy_free_list +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x2d9e9583 drm_buddy_print +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x40d76a49 drm_get_buddy +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0x9f44c898 drm_buddy_init +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xabb5a026 drm_buddy_block_trim +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xbd5b3bcc drm_buddy_free_block +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xc30d71cc drm_buddy_block_print +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xfa150882 drm_buddy_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_buddy 0xff748b76 drm_buddy_alloc_blocks +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x12088881 drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0xd5c68914 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0048696e drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00a9e7bd drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00b0e491 drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0114eee2 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03673bab drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x042c6ee7 drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0686db23 drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x089876e4 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09a43d8c drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0d02be1f drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0dbf50c4 __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e5ce8bb drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ef7ae19 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fcefbbd __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x115553a3 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x119889ec drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x127a8c6b drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12f38f8a drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1325b7de drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16f07e20 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x17dad3c5 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18a7ee4c drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18edaf03 drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2076f577 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21d541eb drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x230874f4 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2352d8a7 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2365ce29 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23b2603d drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23ea2556 drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2475d284 drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26f6aff4 drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x272c8419 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27311e8e __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x288aed72 drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2afb436d drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c436cc9 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2dd34765 drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e74de26 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f4b6516 drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2fae1b45 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33145f4d drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3374d9cf __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33ea3f20 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35d7ddb4 drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36876729 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x373414d9 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x388bc219 drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38bd0343 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x391e2397 drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x396af791 __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40eed39c drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x433843da drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x44d9830a drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x49c788b9 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c52744a drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50791841 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x541f5ba1 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5542443b drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x570f534b __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5731e99e drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a308166 drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5cdefe6d drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5eeb110b drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fbee6bb drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x613a80e3 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63f27011 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6833a801 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69336e51 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ac1d67a drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d957329 __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6da58d98 drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6fe9bfe2 drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70c9b286 __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75a8e9b8 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75b68f5e drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76e167bd drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76f249ad drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7711bd7c drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77d5fa1c __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78ab1d6d drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7994fcd0 drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ab9ce29 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ada95ef drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7bd4dfce drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cd60514 drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d0b924c drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7efbab71 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81b83e3e drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x842dd90c drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x856c6f65 drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85a2538d drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86ae94d8 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x877de8de drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88121c15 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c44c847 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d203cde __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8db33e83 drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e156ef2 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94c2953a drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x96397878 drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x96d533e9 drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x996af58f drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99c842f6 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9bb9d455 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9bbed811 drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa287f985 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa53a39a6 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7507c35 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa88c820d __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab3036fa drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xadc77401 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xafa4e4b4 drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb13948fe drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1d44c4b drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb1e6e093 drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb20dfe84 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2101e18 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2b90e87 drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4ca49b2 drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb56a8553 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5b448bc drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb837255c drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb83bbbe3 drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb8807b3a drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xba4fbf54 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbb763492 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdb06e2a drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe2b7c1f drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe47c25f __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc10782c1 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc204fce5 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2bfd998 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3d67999 devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6323239 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6dbb72d drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcd5b54f4 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf8832ab drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcffeb884 drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd21020c2 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd2bae982 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4016fc9 drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd42ab73f drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5448acb drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd63c71b0 drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6851244 drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6a652da drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd7091dea drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda9f00bc __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdbb4d73d drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xde886d34 drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf34bbf7 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf3760f5 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf597e27 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdff718dd drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe00d9fbc drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe10875bd drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe193fba3 drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1c0862e drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe25f89b0 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe35ac67b drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe450e6e5 __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4fbe22e drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6385527 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7581604 drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xedc7791e drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee256da6 __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeeee59b3 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeef6e390 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xefac7b80 drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf0b83a9f drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf16200df drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf173d8f4 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2a20ff3 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf30db916 drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf3894515 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf44666ad drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4553b21 drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf55a41a7 drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf694ddf3 drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf71205c3 drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa4baaf8 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb02529c drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb74c030 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd04f040 drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfdf3502b drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe09f5a9 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe6ff65b drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe72fea2 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x007d57e7 mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x2cc85e54 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x39b8384c mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x489579d7 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x5ede6fec mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x87465307 mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x89450149 mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x933a68dc mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa2931c04 mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa492c5d4 mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa611687d mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xaff58182 mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb75da270 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xbd508583 mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xc30478c1 mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd567af51 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xebeb2063 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4015fb18 drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4c9291e2 drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x54fbd530 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x64cdb375 drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x87482789 drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x8a382bf2 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x8f0d60cb drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x90d772ec drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xdf9b858a drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xe5306aa3 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x5e9a5a94 drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x61604a49 drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x68557686 drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x9080769f drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xa13a3d94 drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4c984426 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4df0230d drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x569a5cf0 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x95b88122 drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x984b9288 drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa17db003 drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa2c33aaa drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa6586918 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xae1893f4 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xbbd96279 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xc64fc621 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xc78df84c drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xcc706c07 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xcfefcd2c drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xea555a15 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xed1c190a drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0c4bd584 drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x120799f8 drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x14e53199 drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x344ef4df drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3d6f52a6 drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x42faed87 drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4d6276aa drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4ee4a3cb to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6017df34 drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x60703228 drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x637d9f56 drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x67c7eb85 drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6cc5b5d7 drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6f67f841 drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x74ff47b8 drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x77fe99ab drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x801b2f49 drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x939f82a5 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x96d2ed8e drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9e41bacb drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9ec7533d drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xa3a35b8d drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xa6021891 drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xb1e4a002 drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xb98c2205 drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xcbc56da3 drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe031852c drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06a11426 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10080728 ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a8e219a ttm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2738703a ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2962b70d ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ba0fcd4 ttm_agp_is_bound +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e6725de ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x338b949c ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3837e7e6 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f604f61 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fe8d73c ttm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42742557 ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42863a77 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4364dd49 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x461da3bd ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4773ce1e ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a2b852f ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4bae213a ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x50ee21ef ttm_agp_destroy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58948bea ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59fc947b ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a7874e4 ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5dbaae75 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5de1e7e4 ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5e1c3254 ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f2b2263 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x616fe823 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x618024ad ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x634ecff2 ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67eb7b89 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x714bfcad ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x79c82b84 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a42b336 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a71e592 ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7adf6497 ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83e15809 ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84456aaa ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85801301 ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85c91632 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x888ec858 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e84522c ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cf38566 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9fe61db5 ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa536980c ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9d25a45 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab7e2055 ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaf9f4f42 ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2668033 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2f7d408 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5d1d6a7 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70993e1 ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbaf2c133 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc1b3340c ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4247c83 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc446ab14 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc66fcd2c ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcfeed7c3 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3478c64 ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdda7e50f ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdfa32709 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe02934d2 ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe937922b ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec09a2f5 ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xecd1366d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf124905a ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb671db3 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/vmwgfx/vmwgfx 0x1984f833 ttm_base_object_noref_lookup +EXPORT_SYMBOL drivers/hid/hid 0x8b143ae2 hid_bus_type +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x03218513 ishtp_set_drvdata +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x09d4febc ishtp_device_init +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x0b29091e ishtp_register_event_cb +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x1455ec47 ish_hw_reset +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x1751447e ishtp_cl_get_tx_free_rings +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x370f8a6b ishtp_get_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x3786bb38 ishtp_cl_rx_get_rb +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x381d2ca9 ishtp_reset_handler +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x392eb209 ishtp_fw_cl_by_uuid +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x3c7d621f ishtp_bus_remove_all_clients +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x3c859e9c ishtp_dev_to_cl_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x4425a7d3 ishtp_set_tx_ring_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x48731611 ishtp_set_rx_ring_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x4c6afbd7 ishtp_set_connection_state +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x53c704eb ishtp_get_drvdata +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x5658d9c0 ishtp_send_suspend +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x5a956f25 ishtp_cl_driver_unregister +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x5b259aa7 ishtp_trace_callback +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x5cbe80a5 ishtp_cl_flush_queues +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x5f9b0501 ishtp_get_fw_client_id +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x6c62e47c ishtp_get_client_data +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x81b65918 ishtp_cl_driver_register +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x850e204f ishtp_cl_tx_empty +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x893e8419 ishtp_set_client_data +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x919df432 ishtp_start +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x9ad2e77b ishtp_send_resume +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0x9f2c830a ishtp_cl_unlink +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xa22257d6 ishtp_cl_connect +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xa369626e ishtp_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xa873c60e ishtp_reset_compl_handler +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xba146a2e ishtp_cl_free +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xc97dc510 ishtp_get_pci_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xd154cac4 ishtp_get_ishtp_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xd69ae7f4 ishtp_fw_cl_get_client +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xd75d20e7 ishtp_put_device +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xe17798de ishtp_cl_get_tx_free_buffer_size +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xe9ffa5e7 ishtp_cl_set_fw_client_id +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xea85643a ishtp_cl_send +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xef4dac74 ishtp_cl_disconnect +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xf16f22c7 ishtp_recv +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xf71a7768 ishtp_cl_link +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xfa8f0d00 ishtp_cl_io_rb_recycle +EXPORT_SYMBOL drivers/hid/intel-ish-hid/intel-ishtp 0xfc0f3022 ishtp_cl_allocate +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xd2d24e3a vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xe082dd91 vmbus_sendpacket_getid +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xfb3d68c6 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 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 0xeb973932 sch56xx_watchdog_register +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xb06ccd35 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf12c2153 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xf5ce77e6 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5ead98e8 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xaa9b7a59 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x1e441d84 amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0xc61e7a34 qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x15ed2cee iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x76f46910 iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x043681ce iio_kfifo_free +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x117560b1 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x2d7dcb93 mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x98140c29 mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0xbf2ffc76 mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0xa6270a11 hts221_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0xb77b44dc hts221_probe +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xa153e713 bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xca19cfae bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x22dd0a80 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xd57b4090 st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xe9774ce3 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/industrialio 0x0ae40bfc __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x1abd13f0 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x2253d730 iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x23c1585f iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x28400266 iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0x28c8e4dc iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x2d76fd99 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x3cf3522f iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x4286ddef iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x44d213f6 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x5140e3ed iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x56eea62b iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x60d0db00 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x659254b5 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x733928a8 iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x87d01131 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x9aa8c089 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xa400331b iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xc1691161 __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xcb840583 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe9644687 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0xfe74fef2 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xfef2e296 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x3a12c167 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x0fdcf197 iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x1462f31c iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x1b451002 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xaa1364a0 iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x35ef8260 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xa1853caf iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xc565e974 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xecd811e2 iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x52284f69 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0xb395d67e iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x5e72b8f5 bmp280_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x7b61a3ab bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x8ffcb07e bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0xb4f46597 bmp180_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0a1c14ce ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1f2a45ee ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2d2dfd86 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4be39121 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x667038ff ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6d70a4a2 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x82398989 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa3b1050d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa5e49118 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaf1e423a ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc225b05f ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc4855fb3 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe949d5b3 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe9c4d62e ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xec547d5f ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x001e2191 rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x003b0111 rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0152cf17 rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0212010d rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x077b7851 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07985f3a ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x092fe84d ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c4fe4bd ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c59fed4 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c86f5cb ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d3354a6 rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d36e7b0 ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ee70785 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x136443b6 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14756225 rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x158f455c ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16f20261 rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16fae03a rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17057bf4 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18299415 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18fdbf93 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1936096c ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c817605 ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d1d0892 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1dce841a rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fb80010 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x217a5d58 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2406b36a rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x258db03c ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x275beb17 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27620c97 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2851a758 ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30006714 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x302bbf2e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31038f3f rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3205dba5 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35393e7e ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b80520c rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3be4ce83 ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bfb26ae rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d173ee4 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3dfe50cc ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e3e8d6e rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ee0c93a __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x404de649 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41f22a40 rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x426c8996 __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x429eff66 rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42c5e2fd ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x439ce33c ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49bacd78 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49c7fe1d ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bb069c8 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ca711a9 ibdev_crit +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 0x4f9073f1 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509cd01b ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5202a864 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5221b94b ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x529ddc3f rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5505e19b ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55b7cb0b ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59a8e63b rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a2eafb7 ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a846c8d rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5aca9208 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bf3d788 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e381a4a ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ebb4b98 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fc1b5e5 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fd9c113 rdma_rw_ctx_post +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 0x63fdd974 ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64d5de98 ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65581f3b rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65e18b4e ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x698adc60 rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b46a9bd ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6bb84443 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d77dc22 roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x731a4fe3 ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74756840 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x758c171f ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d5a72f rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x761c4f55 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78053390 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79a01a87 rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79c44e61 ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7adb8bff rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d909afc ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f164b63 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ff48610 ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81076338 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x812b7998 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81b73c30 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85cb432a rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85d0c084 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86cef180 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87f918ef ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8837ba74 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x893ddce4 ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a1eecf1 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ada019d ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ba75516 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cbaa28c rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e6d4ac2 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7528da __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f40e020 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f5202cc ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fa62939 ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90982651 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 0x937cea9a ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ad32989 ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b498baa ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e9132b2 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1dd6fd1 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1f0cd8d ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa31ecdd0 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3b1a8c4 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa45f478f ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa526bf34 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5f28138 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7f099f7 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa84083f4 ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf40a7aa rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb303663e ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36e4148 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3caee8c ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb48ef1fe ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb70e58c4 rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb77d27fe rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb597400 ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf46eb89 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbfc789d6 ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc04e9fa7 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0653c5f rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1ce2acc ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc29856b8 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3436858 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc39d487b ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc429bbf0 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc44873fb rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7a4582d ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8d38664 rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9e8fd4d ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca850cac ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc8fed31 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd0e5f46 rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcdccb74e ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce46b91d ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xced929e6 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf533486 ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfbc053b ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfc76c2f rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfd74a1d ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcff19cac ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1041fdb ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4331e6e rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4ee1237 rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5ba49a8 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7db8b23 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7f8b6bf rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8712d61 rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9a32dfe ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdac24435 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddd3e009 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe130aa97 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1df43d1 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe27fcaca rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2be5cab ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe54d066c ib_drain_rq +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 0xe6445bcd rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6588240 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b52e5f mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8ea2f00 ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe92f143f ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e799fc ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea5ca3b1 rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeabf3aa2 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xecbb85fb rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedab35a2 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee440c1b ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0292328 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf17bb20c ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf35f5a40 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf42d7243 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf50d3b86 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5127ab2 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5d5efa5 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5dedb30 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6c78ebe ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6ed3334 ib_event_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7252d71 ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8a96a43 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8dd9730 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf95f894d ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa3b767e ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc883003 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdb80157 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff054bfb __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x0e442492 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18ab3747 uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x19df2f12 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 0x24999d6f uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x249a3ae1 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x260ad30f ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x27a67254 ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x313329ee uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x31bb4cbf ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3923a5e5 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x491b8845 _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4fe5f1b5 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x5f0a2a6b uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x65443c06 ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6c03dc6d ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6c528ef9 uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6cec283f ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x70463b75 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x75ef1733 flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7de0902e flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8fd44ba1 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9b670104 uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9d406290 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9e7a7c27 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa2f85428 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa68d9278 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xaaf77235 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbde5c050 ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbeaee3c7 ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc4e00c55 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd5d01c87 ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe15c42e2 _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe2b8092a ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe925e419 ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf1c688fd ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf27cee1e uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf8f65f0c ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfa2a048c ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1deb4557 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3285ff03 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x75dc3613 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x96fafbf4 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb46f5c4d iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd45ffece iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe78becbe iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfa0c342c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05d06007 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0bd595cb rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x111bb170 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x153ff7b5 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1601a80f rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e245dc1 __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e92333c rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x20892182 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x24fbda54 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x41d275fa rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x49d50109 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5198d389 rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c9ea5ec rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x658e3bdd rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x669746cc rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x69ba459e rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7315baf5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7565963e rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x854ed181 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8783773c rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8c2443a6 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8c879df4 rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x91d3279c rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9411e4fc rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x97890d2f rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x98b2ca84 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac63bb70 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb1ae9c9c rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb7cd1661 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc4635810 rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcb4e1c24 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd8fd842f rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb3ac1f1 rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xff013b16 rdma_reject +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x00f47b9e rvt_comm_est +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x015d53f0 rvt_alloc_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x0e385842 ib_rvt_state_ops +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x0e52fb8e rvt_compute_aeth +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x104f5ff7 rvt_check_ah +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x12209896 rvt_restart_sge +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x159012d5 rvt_send_complete +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x165ab4c4 rvt_copy_sge +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x17bc574d rvt_qp_iter_next +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x30ea6566 rvt_unregister_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x40f867ec rvt_add_retry_timer_ext +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x4205521d rvt_get_credit +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x556dcfd6 rvt_error_qp +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x652fc5f0 rvt_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x671d048b rvt_qp_iter_init +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x6d722893 rvt_init_port +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x707ef421 rvt_invalidate_rkey +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x7c152816 rvt_mcast_find +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x93febffa rvt_get_rwqe +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0x9a1bed57 rvt_rkey_ok +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xa66ced6d rvt_register_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xab259f7f rvt_ruc_loopback +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xaedd197b rvt_del_timers_sync +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xb0bd0c59 rvt_stop_rc_timers +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xb7ee98b2 rvt_rc_rnr_retry +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xbf08287b rvt_qp_iter +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xc8be451c rvt_rc_error +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xde9d724e rvt_dealloc_device +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xe9cf3e43 rvt_rnr_tbl_to_usec +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xec64314a rvt_lkey_ok +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xee97157b rvt_add_rnr_timer +EXPORT_SYMBOL drivers/infiniband/sw/rdmavt/rdmavt 0xf13a46a8 rvt_cq_enter +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x059338ba rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x275b35ad rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x784eebfb rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x876b1c5c rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x896c4232 rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xb9a7498a rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xda2aa093 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x242a8646 rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2982bdd3 rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5b01e41d sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x6c88b26a rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x78f774cf rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x887302f3 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x9d7dcc44 rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x0cc94f29 rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x45008f90 rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x69d39380 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x70e1b9a8 rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x79917c65 rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x80aca7c7 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2eab5525 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x36dde258 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3d292797 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x70cbb08f gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7ec86d7e gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaf0f0101 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe461a944 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe7816d35 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xffb9034c gameport_stop_polling +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x1bc334ab iforce_send_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x99df2837 iforce_init_device +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xb66e61e9 iforce_process_packet +EXPORT_SYMBOL drivers/input/matrix-keymap 0x7f940beb matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x40957974 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x697ffab3 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd1710eae 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 0xad7a8e28 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0xd9aa64f1 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x01f26ef0 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4b88c859 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x55ba7bbc sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe020dd0c sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf8ded078 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xc5b82e6d ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xe8d33603 ad7879_pm_ops +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0x3faf4624 amd_iommu_unbind_pasid +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0x53e2db27 amd_iommu_free_device +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0x7e7c3b78 amd_iommu_set_invalid_ppr_cb +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0x82fb61e8 amd_iommu_set_invalidate_ctx_cb +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0xc20138ae amd_iommu_bind_pasid +EXPORT_SYMBOL drivers/iommu/amd/iommu_v2 0xf0beb69d amd_iommu_init_device +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x28049d63 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6579fdfe capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7413676d capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7af5d6a0 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x92e77a47 capi_ctr_handle_message +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 0x3644135e mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x911f99e8 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcb6b8b56 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xedfa4802 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x541b0bff mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd93cc191 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06a7afc6 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x16fb0100 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x20202d28 get_next_dframe +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 0x357fb18b mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4676fa59 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c0247ea 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 0x5aa0cf0e mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6047df40 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6419fe80 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x67997a58 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c826cd5 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x83693e58 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x852f7792 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8f98c67f recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c928457 mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9f8d5ca7 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa3bce63e recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcad1619 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc67e69ee mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc9242167 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc9d58c7 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd1da7a50 recv_Dchannel_skb +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 0xf23f0f0c mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf49ebcb7 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfe9f530c bchannel_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 0x54a12ec4 ti_lmu_common_set_ramp +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x6d47d70a ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xc6b08d34 ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xced72aae ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/md/dm-log 0x421457f9 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x4b4ab70d dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x54e9fb6e dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x72b2d392 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x67c3c55d dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6b143ddb dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xacdcec5e dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xb9353ea0 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbf357c95 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd185c78b dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x8726e53c r5c_journal_mode_set +EXPORT_SYMBOL drivers/md/raid456 0xf9b170f4 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x12f64cbe flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x38923610 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5ff1d7ff flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x645f84eb flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6a69cee0 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x75fe6568 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7bb18aff flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8644ead7 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbd8e8a52 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc5fa864c flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xce3f2492 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd270ca47 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xde3ac6b8 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x20967429 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x4976d3b5 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0x9cb5f432 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xa2ef825f cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdbc5583a cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0xe1fe1432 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x52621b78 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x44427e07 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x5b739029 tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x92295d0f vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc2d9e090 get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc5e5573a frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xdffb744b frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xf250675f vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x1156a81f vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x13815ebd vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x3bb57943 vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x69ddb356 vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7bbaf2ba vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xc1b7972d vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xa21fa765 vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xccd197c7 vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x7a622ac7 vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0015076b dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x051ca5c2 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0e68e810 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x14b7cc9e dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x18acd31f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1a9d8a5d dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1e9bec45 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1eaddc01 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x279990ce dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2d08880a dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2f5cdf80 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x33591623 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3975848f dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3b93d71a dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4f72f1c2 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x54abe4ff dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5eb79342 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f8b5e8c dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6181aec0 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6a9f708a dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x71be3227 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b4105ce dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7b532b02 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8101263d dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x889fc811 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8c54b0f8 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x91a6794b dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9263a063 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x947b1522 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa4235824 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb3352dd2 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb4784f4f dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb7b073e3 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc3f679f9 dvb_ringbuffer_write_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc5c9ba39 dvb_generic_open +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 0xf156d3cc dvb_unregister_adapter +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 0x9312f915 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x5e7f0ff1 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4b275c0d au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x770d72e1 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7a182c95 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x92c8beab au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xb1fb843a au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xbaf21919 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc23fa625 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xf9b6db51 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfdbf09f4 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xe907aac4 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xda20146f bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xa18cf2a7 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x5f504664 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x05826508 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x8a59f840 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xabd029da cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x60665f60 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x2627bb40 cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xf885c62e cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xfe6160d1 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x1d9927d9 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x2ff87adb cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0xef7af4d6 cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x57500293 cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x8759628c dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x91e7ec61 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa34e48cd dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xc77640b6 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xe8f9dea1 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x04ab62cf dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x209bb502 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2aadcc9d dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x37a64a02 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3b28ad1e dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7edefa06 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x85853918 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x89272d63 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8cfdce41 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9155e609 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd66735fb dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdd89b67b dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe30939fa dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe6a4031e dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xebae5761 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xfb8466c8 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1fb22c0b dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x379ff191 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x39dc28c8 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x74c8c574 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x929060ce dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xbdc9cbbf dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x06630274 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x214f4953 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xef42fddd dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xfcaae788 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf61d52d7 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x57d7e59c dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x0f9324c3 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x101de9e6 dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x352532f3 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x371cd151 dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x421c55a0 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x476a5bbd dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x47f858e6 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7e206365 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xae5709c2 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xb61bacb8 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xc863368e dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xe1b69d12 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xf5531fec dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x0d20a606 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xaa70ed3c dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad67b897 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe6a60246 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xf0ce09e4 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x4b190e3c drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x1d2806f1 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x9fa90231 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xc1923695 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x297d58be dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x4df6628a dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x63015b67 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xc8cf7f0f dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x2c48989c ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0xa6057a7d helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0xcb6386ed helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x16910e5d horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0xa947260e isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xaab55d9b isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x24cec087 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xd412990b itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xbecec339 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x4f6a68fd l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x08788878 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xcc53c32c lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x11992ee8 lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x083ce24b lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0xeb2479dd lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0xf76c0a0c lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0xcaf34e60 lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x27a69605 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x34acec7b lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xb9ee1a43 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x37d1bd59 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x0e59edbe m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0xa4a53ebc m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xf60fd691 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x6bc84378 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xaf57ada5 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x2e9c34ae mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x14bff222 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x1e9099c7 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x3baebf94 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xe81c5111 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x9a3c3ebf or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x3ee2db1c s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x5760241c s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x4a9e2dff s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xbaa50440 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0xd9626883 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x653c9fde s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x5e1d1bb4 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0xccd51a9e sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x82585eed stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xc86fb2f5 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x00f37cec stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0xfbe7e790 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x1bbcea6d stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xbaa5a0ba stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x267c0abc stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x81b4ec9b stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xf2c0bffe stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x82ee4674 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xe92f218f stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xa2c90e02 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x24af01ab stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x592c0e2b tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xf125e312 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x8b886d69 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x73498c0d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x872a5a57 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x5147b2b8 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xe55dbe0b tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xbefd2a76 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x8d27a83b tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x5a2b89bd tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x6d73981d ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x6e554790 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x62f89ad3 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0xe78c53c7 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x2eb1f8eb zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0xa0938739 zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x61760ba4 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xda31ac32 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xc6cfd175 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x00ba4195 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x077c87a2 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x15210fef flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x3f2348d9 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x67de63ee flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x73e66a12 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xabc53006 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7c2dcb6a bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x819898d1 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xb06cf718 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xef968418 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x85a12795 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 0xd092639a bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xdcf36143 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0396b8af dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0ec0fc21 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x17f4909b dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x4cbcc646 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x878b1f96 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xbfc49d45 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc136a3de rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd7510942 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xebd2d124 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0xc9a01adc dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x13ee28cc cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7c2a382e cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x868ed7fe cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xab5208d5 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xca04cce4 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x1ab311dc 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 0x00465f89 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x79172098 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x8a4c6430 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xbe4337c0 cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe340a0a4 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9050411 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf0347841 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf582004f cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6bbe1fe1 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xbc66ee17 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x95fca8f7 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa2caf5f4 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xf1c9c61b cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xf4ab8731 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0df1d425 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x6e1cfe7b cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x766710fa cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8219cc6f cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xcf2cfc0c cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe11f6918 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe79fc20b cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x190c8660 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1a48ec70 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2377eb33 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x275bbfb2 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3a7a826f cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x47a34ecd cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x54ef5da6 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5bf80d82 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5e90733d 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 0x6d5f4208 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8943f6e4 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8963cb80 cx88_ir_stop +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 0x969a5ace cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa26e4184 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa7df1f24 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb82e018a cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbb7fcf06 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc25e5d71 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfcfbf0fa cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfe182d2d cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x893b29f4 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2a173543 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4a05f37c ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x71ce60cb ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x731411a6 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8b8fcd2e ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9a9cb466 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9c8f6f93 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa1609bac ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xad1b5dc5 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc83cb5eb ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcd959ab6 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcde08cd0 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xce37d868 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe1c8cbec ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe39bea82 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe9ca6bab ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf8759bbd ivtv_release_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 0x6ad487c6 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x738a6fe7 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7750093a saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8145cc97 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8f1ad46b saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9e705b72 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9f869942 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa069c21a saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc33c4c28 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc58f516c saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf021dafa saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xf555aa0d saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x0eb2335c snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x27da9251 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x635eb362 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x82ca5f8d snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0xa1a652b9 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xb0cb24da snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0xd270f3ee snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2d6e5a4d ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb5516017 ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0xce3696f3 ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/rc/rc-core 0xdd955c3e ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x5c919df8 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0xfd9eac3c fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x2b2dffe8 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x4b9a780a fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xd1ab551a fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/max2165 0x0d21d977 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xb2cb731c mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x980519fd mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x17ca7854 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x69b02d8f mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x5492a9e5 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x441ae8ff qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x4fc023c3 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/xc2028 0x4af5056a xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x14bb7999 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x2232e454 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x453241f9 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xdedff11f cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0049cf1a dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x16e6bf7a dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1ea394b4 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2f7597ef dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2fec069c dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xb1817890 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd753fe00 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe4ef2496 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xff637f2a dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x607cac4d dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x84046050 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8b6f5395 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xae1e90a2 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb78cedc5 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc6634a9b dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe39ca506 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x248d3b03 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1defbb5d dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x47891ab9 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x47c52b69 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x76683fb3 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8f576c02 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93822ecb rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x95ea814d dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x9ec2ea0a dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb2a82c8f dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd03c6d60 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x45b27ca6 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x996ff161 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xceaba172 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xd69d2283 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x0e907c46 go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x162aab5e go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x1b3ff5dc go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x412a49b4 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x65171ef0 go7007_update_board +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x866c2878 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x9f45bd17 go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xa9d05323 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xcaf9407b go7007_alloc +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0eebc8f0 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x54a330de gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x63ef1e4f gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x694e3c4e gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7322a24d gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7a43e7dc gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xaf10be40 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb1640cc0 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x55857ab4 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x752c2e0c tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xdeaf81ee tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xc58dafdd ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xee4aae17 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x08ec5901 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x14293e8b v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x15c40212 v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x8add899a v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x9c474e34 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xe148ad1e v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5566ad9e v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x77fd1460 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x801dccaf v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf626dd03 v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xfaa3ab37 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0a3ac378 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x11fa0eda v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x185d4c5b v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1c478e0d video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1c6f57ff __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x23dd4e44 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x258be914 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 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 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x44cb6617 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4668b57d v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x51495b56 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x515ec2f8 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5ff9fb89 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x62921421 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x63060611 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x63b0977e v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x67468285 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x77386494 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7884acef v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7ec609ed v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f733e07 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x842a3d61 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89e3897d v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ecbeea4 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8efbf5e3 v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x95d0161f v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a17e212 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9b14e2c7 __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9cf8ce4a v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa01be9f5 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa0291110 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa030d78d v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa41c2bf3 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xac06eb96 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xace8420e __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb386830b v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb581b656 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb87f8977 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xba54a810 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbe4eb609 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc0b290c2 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcff74743 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd022f793 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd16d9c01 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdc896c41 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe00d3a68 __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe038a321 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe10c73df v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe15b1b79 __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2626aa7 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe41d4c2c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe87512d9 __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe951d7be video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe999fe65 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeba4654e v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf50fecbc v4l2_ctrl_replace +EXPORT_SYMBOL drivers/memstick/core/memstick 0x191d5a15 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1a588e5b memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x21b0106f memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x46007b27 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4a4e5778 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x76237ecb memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xae50437c memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4771506 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xba00a51d memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xba37c202 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbb4e54c7 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd3f1d8c3 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xed2e6365 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc65acd1 memstick_free_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0054a55a mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00e071f1 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05326b4a mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b298f0b mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2235c523 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2eb673ed mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3287f901 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x395adba3 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x61bf7f1c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6a368847 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6e77455b mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x76c1e671 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x778b4a18 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b77497d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7e5c700b mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8446e30f mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x87dd337f mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88206b4b mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8897f91e mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaebd3db5 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaf6672e0 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6c9f113 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9beb748 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbb785bff mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd8d32eba mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdaa1debb mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde6674dc mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe529d819 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe66258c mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0df1a939 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1013e1ee mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f25672e mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x31c2a14e mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b1a01e5 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b557caf mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4125901f mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x44669097 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4f23ed61 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5855af14 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8d34eaf5 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ec1eec8 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9d11102f mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0ad16fe mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa447e2cd mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa8a867f4 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb75a012a mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc10fcc53 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc69a29b7 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1aab71d mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1aca8cb mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd95b8e8b mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe09d3281 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe22ca798 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2bccb3a mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe7d0cdd5 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xecde7697 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/mfd/axp20x 0x352e7a76 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/axp20x 0x41c35c89 axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/axp20x 0xcde445ab axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/dln2 0x464e23ed dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0xa505b96a dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0xeae83db2 dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x57d8e85f pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc0dbae92 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x387a5b1e mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x42f91175 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x44908235 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x63bbc6ed mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x64febf02 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x73d598a3 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x997afaea mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb393590b mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb4796d2a mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd1fb7874 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xea39c1c3 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 0x20d38fe3 wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0x24676114 wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x306c2bcf wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x893fd8a0 wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x9bf3cba1 wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0xbb056339 wm8958_regmap_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x3131ff75 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6224e705 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x5bafa76e altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x7d92e2ee c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x91cfe2fc c2port_device_register +EXPORT_SYMBOL drivers/misc/mei/mei 0x0bb25295 __SCT__tp_func_mei_reg_write +EXPORT_SYMBOL drivers/misc/mei/mei 0x14dc7949 __SCT__tp_func_mei_pci_cfg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x3999cfd3 __traceiter_mei_reg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x3b0a488d __SCT__tp_func_mei_reg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x3cd94657 __tracepoint_mei_reg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x5237c7d4 __traceiter_mei_pci_cfg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0x7905be8c __traceiter_mei_reg_write +EXPORT_SYMBOL drivers/misc/mei/mei 0x82429603 __SCK__tp_func_mei_reg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0xa493076a __tracepoint_mei_pci_cfg_read +EXPORT_SYMBOL drivers/misc/mei/mei 0xa6763697 __SCK__tp_func_mei_reg_write +EXPORT_SYMBOL drivers/misc/mei/mei 0xcace38aa __tracepoint_mei_reg_write +EXPORT_SYMBOL drivers/misc/mei/mei 0xd31967f5 __SCK__tp_func_mei_pci_cfg_read +EXPORT_SYMBOL drivers/misc/tifm_core 0x000acb37 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x0ffb277f tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x2a362473 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x46f0626c tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x4e7e70a8 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x4f4c9573 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5ca68de6 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x6c705ba1 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x89a09d60 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x9636b125 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x98f0e162 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc3d3b0da tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xfba2f6bf tifm_register_driver +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x16b3a031 cqhci_deactivate +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x2716fc32 cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x423bac59 cqhci_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x4ffc08d9 cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x7801ea4c cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x95bae7f9 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xce4ed99a mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x192ff8d5 cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4384f56c cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x6220d602 cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x639c3250 cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x942546ea cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd855dab2 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xef559703 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xff9fa623 cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x64900770 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9304927b register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x99fc03c9 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe0428346 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xcfa1e782 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1c2b1f6d lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xf22addf9 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x17d1f1aa mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0xc578259a mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x021bb480 nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x0263b1bc nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x04aecc97 of_get_nand_ecc_user_config +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x0f5c0ea7 nand_ecc_prepare_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1180a32f nand_ecc_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1feb32f1 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x495ed2dd nand_ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x6e4124f5 nand_ecc_is_strong_enough +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x71a8ddda nand_ecc_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x7870fc9c nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x7a98725e nand_ecc_finish_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x82bfa5a0 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x88e73dc5 nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x8ba8c869 nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x97e5a002 nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x99dce870 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa0ffb12f nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa75c9355 nand_ecc_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xb5f616c0 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe48e6871 nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe6db989b ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xeb69805a nand_ecc_get_sw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff4351b0 ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff80c279 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x17256882 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xa80ac257 onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x32c8ef6a denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x95ccb4b6 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x06dead18 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x20510390 rawnand_sw_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x3645f54a nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x3c197d91 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x56cf48e1 rawnand_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x7bd1ff9b nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x83137314 rawnand_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8d609b43 nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8ecbb3b8 nand_check_erased_ecc_chunk +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x918a10e4 nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xa06feb81 rawnand_sw_hamming_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xa188ea8f rawnand_sw_bch_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xbb7984fd rawnand_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xc339a32c nand_monolithic_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd1173cc5 nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe3a2ef01 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe7d86a2e nand_monolithic_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xf2b21e1b rawnand_sw_hamming_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x02683fa9 free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x061b676c arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1678d66d arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1902aba4 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x27409ca0 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2a96b739 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x60c9312b arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6f8cd69f arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9c0a0a97 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe9384098 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xeb990ab0 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x57df4a8c com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9d226895 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xb8bca927 com20020_found +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x0a2797a6 ctucan_resume +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x872f8a74 ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x9fa1709a ctucan_suspend +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0488bbfd b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x05c6cfb7 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0ae94ccc b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x16f67965 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1a1721fe b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1beaaa33 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1e2b0551 b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2a7d6ee7 b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3689caef b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x47d7dc15 b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x482ae754 b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x513359af b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x53ba8e0b b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x60beab14 b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6848a63a b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6c493b14 b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6c7fd97f b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7157e858 b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x71a18ed2 b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7ef73d28 b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8a6f67cf b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa18e7ba9 b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa9b7eb3f b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xb228c0bf b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc009ed48 b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc7c65b81 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd260cac0 b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd3948b3e b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe6b20ce5 b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe9e8c040 b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xea5119ed b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf198e406 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf5d93168 b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf6563664 b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf69b7fac b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf6b944f9 b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf8c62f03 b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfa3ebeec b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x350f8a59 b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x511738be b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xcf880e2d b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xd04d93fe b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x0d59bd7d lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x672a60c0 lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x71742a0d lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xada83f40 lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x296a36e8 ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x029fa6c7 ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x4ceb5837 ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7c507044 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x8c9df377 ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x27244ede vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x6e5ef474 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xfa09292e vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x0aab6dff xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x27cd7d1a xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x83b7b667 xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972103a xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972bf7e xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb25facfa xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb89aa5e3 xrs7004e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xf22e8590 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x26bf308f ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4cbf6b7e ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8cad5d10 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9a71dada ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa0d77567 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xbbe61b92 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc45deded ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc9517967 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd4800c61 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xecc06fca ei_poll +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x9b089d76 aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xd893dbfd bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x37b38886 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x09a83a67 cavium_ptp_put +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x9bc108d1 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 0x02faab91 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0cf09661 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1451fd0b t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x197bd840 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x297587f2 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x43be96d7 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x54e90a3a cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5699ca29 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x68012b79 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7262a9d7 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x81abe9fa cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9148d1a3 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaff8f038 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb9132ea0 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xda5869d7 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe80f2f24 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x001e9434 cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0058261a cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x03510c17 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x13bf0f5a cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x173e27f8 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17d3ef6f cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x19db6d49 cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x240564b4 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2d5c4c6a cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x33c67455 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x34567b86 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x37259a37 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3868cf42 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a63e9f7 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4c90acb7 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4eae4e88 cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4ffacc7e cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50e1c414 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x56459b3b cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58bcd08c cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x60db1953 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x61780aed cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x64b7ad8d cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66bbb8a4 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6efc6300 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x70260bd6 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x78d88cf7 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98748b63 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9fbce65a cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb8007c27 cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbdd55576 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbded88b3 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc95a4219 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xca1082ba cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xca3d2060 cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xccb50767 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce79d6dd cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcfbf8c82 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd35ad845 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4381a57 cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4acee15 cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe8cdc1cb cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xea7fd83d cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeba91712 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf7dcc538 cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf8604289 cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x117707dd cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1 cxgbi_tagmask_set +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1ffe83e7 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f cxgb_get_4tuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x62420a28 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc87b133a cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc8c420b8 cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xf6bb372e cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xfd75ed90 cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4baebed7 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x665080e4 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x6b709a70 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7f5ef01d vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb5ee2a3d enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xef5c857d 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 0x4fdb8cfc be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xe577eea2 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x010ec147 fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x89eacc2e fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xdef9decd fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xf50f7134 fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xd049bc7a iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xd194b89a iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x965ff908 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0xbaa35511 ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x3de00c0b prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x7d2bb812 prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a507c93 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f8dcdf9 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15914bf7 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24503344 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29ee3dfc set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c8e2e54 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2cdf4690 mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31eb6948 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x325cec80 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37105bba mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38e6659e mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40de50af mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47d77f71 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49ded471 mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e434226 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53a760eb mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60d567d4 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61a73023 mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f049cc7 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x767c811d mlx4_gen_pkey_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 0x8cb47cf7 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x914f8198 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9f7103c8 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ff2feae mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa07f6d44 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa11c7c7e mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa15ce99c mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2efa3f8 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa427b24e get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae578988 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb875ae08 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc89e75b mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd193fc1 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdb0257d mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc146c1ae mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc50fc574 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc67c82c2 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb16985e mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe13e5d68 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1724074 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe99ff622 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea3bfa62 mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb6ae609 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0b00232 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0241a059 mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02a0a6da __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03bdc091 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05bb3b31 mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05fd0d47 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0620decd mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06d22c16 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x070a903b __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07e4417b mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a1d0b72 mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a21b020 __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a411bf5 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b1e848b mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b965278 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0c6dc080 __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x109792fe mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x110ed145 mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11fb1c3c mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x123ac6b3 mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x158129b7 mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18b84aa0 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1968d9c6 mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1afc8b83 __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b55a08e mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1bc85ac1 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c57c524 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d169b5b mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e09fcfb __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f2f6005 mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f76fdb7 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22c640d0 mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23d61cb9 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x256f4947 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a0f11d4 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2dc95a02 mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31223c0a mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x313394de mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x316d337d mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33ebc62c mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x388a9fd6 mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3956791e __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39f12dea mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e1685a7 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4080e363 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x422935a0 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45620cb8 mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45fa48b3 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48fde48e mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x490e65b5 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ad23876 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e51a8c8 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ef706e2 mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f0eff96 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x537d4dcf mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5660f4d9 mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x56a38f57 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x572bc0d1 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57ddb941 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58f92756 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5aa6c1b3 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b6994df mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c3b8b44 mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c6e2b0d mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d453c10 mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d56d63c mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f08ae55 mlx5_eq_disable +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 0x61e2a75e mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62dc190a __SCT__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64a22815 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65e335b1 mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66e5d1a9 __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67284076 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69311c8e mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74c396e3 __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77d39d61 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77e2e1ba mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b13ca11 __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b82d5c0 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80bdaf5f mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82e1a635 mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86046682 mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8931634c mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b2da1f1 mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x90423595 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x906af193 mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x933eeaa5 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95967844 __SCK__tp_func_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 0x97e25b8d mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x98e34756 mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a98d889 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c661e4d mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d36ddd0 __SCT__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa376089e mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4bb9360 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4df6cc9 mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5b0a49f mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa60a2b21 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7d08cf7 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa8c45f7a mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa9dedd57 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab521f6e __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabdbf74d __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacfe8a18 __SCT__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae1882ca mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae1e27f8 __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaeb41535 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb06c0bfd __SCT__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb12162e6 mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb28dbbe8 mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3e83c40 __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4e976bb __SCT__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba5c2f4f __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd07ce9a mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbeaae20d __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbed1373b mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc05489a4 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc21e7efa mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc69fe64b mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc73e18cb __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9b47670 mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca04ae94 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca745a51 mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcad019c3 __SCT__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc002b85 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc695a50 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcff1666a __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd020dd1f __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd07a5315 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0b4a4bf mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1336184 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd158aac2 mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd2077dd2 __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4dd855b mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd7aa100c __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8c79a8e mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9d666b0 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda10ae2e mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb622108 __SCT__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xddf007c1 mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf0090f2 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfbc08aa __SCT__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe089b2c9 mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe292b7b1 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe30fb2a8 __SCT__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe34ee59a mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3a77a82 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3e868d8 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe464f063 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5ad0cad mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5ea58d2 mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe61f112a mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe698c1a9 mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe94c445f mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeaa31da1 mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3ff871d mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf458c9e7 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4b83feb mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6457860 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf86ba209 mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88ee117 mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf92852dd mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfadcf420 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc525392 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc847019 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd719e33 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xaf1a42d8 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e14d648 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x105d6307 mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858 mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x28c08228 mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3 mlxsw_core_read_frc_h +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x378a22e5 mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e mlxsw_afa_block_terminate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x46b7acd3 mlxsw_core_skb_receive +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 0x484489a4 mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5b18c1e4 mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5bba2d47 mlxsw_env_reset_module +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 0x6403daa1 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4 mlxsw_afk_key_info_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x70fce748 mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8153e7f1 mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 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 0x902c3533 mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x963cfb6a mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97035a9c mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97e62e6e mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x98bfa19b mlxsw_env_set_module_power_mode +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 0x9d27e11f mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494 mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa2f21e61 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7762d31 mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88 mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa8cccf0b mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xac1074a5 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6b40684 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xba05b3b0 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbd2f0b80 mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc96d59f0 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcc89ac4b mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xce36d9cf mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcebb6e2d mlxsw_core_port_eth_set +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 0xd7a93413 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd84eb6b0 mlxsw_afa_block_append_drop +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 0xde4e211f mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeab0691 mlxsw_afk_create +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 0xe16986dd mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5540be5 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeda7a5d0 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf1ea663f mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_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 0x39d5189f mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x68219453 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x09d22b85 mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x6ffbda60 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0367123c ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x05ab30ff ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x06af996d ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x09304b89 ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0c98b31f ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0d63c6b7 ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x159c5187 ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x198460d6 ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1d118ec6 ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2334eb35 ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x26b4f357 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2a5f852e ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x316ee367 ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x324e4cfb ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3d280ce8 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3df0f2f7 ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4011a4e2 ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x436befcb ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a775257 ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4c907f11 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4e125b49 ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4fd75bc4 ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x51d125d6 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x57054423 ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x59314ea1 ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x62a905f5 ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x634e6c96 ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6ba6b8e9 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x72d54ebb ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x742c63f6 ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7bcbe6d4 ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d54df77 ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7feeb698 ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x80a75405 vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x817b0d81 ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8532c269 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x885415de ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8d1b03ad ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x90cbb220 vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9381969d vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x977ac307 ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d17291c ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d442141 vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9e363413 ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa4dc61df ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa50ada35 ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa52a55ce ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa5e9fb5b ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa8413d7e vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa87f7273 ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaa2e4d85 ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xabc0368c ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xac7acb32 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xad7d2c14 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb30c4b92 vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb36b6977 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb55fd17c ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb643aa7e ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb77091aa ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb7b2c906 ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbaeda11d ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbba17367 vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbbe9ebe5 ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbcb4dbe6 ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbed5b02e ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbf48ddc1 vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc266e838 ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc2906c69 ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc371fe4b ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcda537bf ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xceed5e7e vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0ebefd9 ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd1d4cad8 ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd48a7ccb ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd4eff057 ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd687a545 vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd8ba34ff ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdb59340c ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdd4baa69 ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe4cc54ff ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe6ca0e17 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xea1b5ac9 vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xecaa97fb vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf02b254d ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf85f6c18 ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfec13292 ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4f264472 qed_put_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x5c53cfac qed_get_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x6b338138 qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x928432e1 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/qed/qed 0xe15f49d9 qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x4dfd49e9 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x9818b7f0 qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x01f8669d hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x15dcfd79 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x48d24318 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xcda53413 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe756c4c4 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 0xaadfd1af 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/mdio/mdio-bitbang 0x1e387827 alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x6d2bee18 mdiobb_read +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xd42653a8 free_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xd7fc37fa mdiobb_write +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x0df696ef cavium_mdiobus_write +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x695a0632 cavium_mdiobus_read +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x4af972cc mscc_miim_setup +EXPORT_SYMBOL drivers/net/mii 0x1b540776 mii_ethtool_set_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x466c51c0 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x4af41416 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x4dff6b2d mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x6afec749 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x756c2e18 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x7eb77276 mii_ethtool_get_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x7f98c6d0 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xdbb3bfe2 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xfd8bb605 mii_nway_restart +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x0877a857 lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xa22bf5b8 lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xa6bf0e9e lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x7488ed6e bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x1de9a19c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5eea4bf7 pppox_compat_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xcd39aef9 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xfad8b287 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0x924c0160 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x1779b3a0 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x1e01d6c9 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x2928d2c1 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x5595e816 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x8bd3ec23 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x94d8cb4c team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xc8d1defe team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xdfc69a88 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x11cba3b3 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0xcaf093bb usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xebd20544 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x28053d7d hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x502e2570 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x56c44fff register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x697dc30a hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x69f5b77f unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x74c67e1f alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7d6d7d05 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd8f21d10 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfc0eb455 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xff849872 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x05c181c1 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x06edea8e ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3288c9b9 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x414453eb ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4fe1d379 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8158b727 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x950b64fe ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9f7631ce ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa18f224e ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa6f04b67 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb64a5070 ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6588ba6 ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb8873046 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbdf6bb85 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc36451c7 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x09429502 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0c3c3ac1 ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x176d35a4 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x177d6b45 ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x18221a9c ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1d278ae3 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2a951825 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2ecd02d3 ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x34f04b98 ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3aad7313 ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3e8c3bd9 ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3f1540c6 ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3f406ab3 ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x40184d54 ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x404bd251 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4130798c ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x42503897 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x42afd7e7 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4396a882 ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x43b0d0d3 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x45bab136 ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x482a9b20 __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4bbeb5be ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4e4e596c ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x50eb30c0 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x51e4cf4f ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x59d8f981 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5ddc8f50 ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5e48435d ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5ec96df2 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5ffc64f0 ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x618135af ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x627760c0 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x64fbb250 ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x79194ac0 ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8476da0b ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x88d37197 ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x88f11ff5 ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8d758ab4 ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8f5c542d ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8faa80a6 ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x95a04dd5 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9c1d3b42 ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9fbc4551 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa6d86100 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaed151dc ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb026d96d ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbfe48adf ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xcd941e46 ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xcefb9783 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd3781637 ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd68abb70 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd7b15a11 ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe5425e70 ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xec5bc606 ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf1ab0c1e ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf4c15b12 ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x06fae0fd __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x09ed8c25 ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0b8c3442 ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1e0f0d0b ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x24c78ceb ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x259d7415 ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x319f1ebf ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3570a390 ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x443ccced ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4d2a56c4 ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x549706d0 ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x76ce91fa ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7a392984 ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7f2e5c66 ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x805eafa4 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8073f82f ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x82a65f48 ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x82b9ba2b ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x869c2f77 ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x891576e2 ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x893e6756 ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8b9089db ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8c386038 ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8c9061e9 ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x93fda04e ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x97bbc24d ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9c51bcc4 ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xad86ed82 ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb33efa63 ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbc2b2449 ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xc91d6023 ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xcac7a225 ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd2092b9f ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd99e02f4 ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xe51881d9 ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xef6d5e21 ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xefbdee29 ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf0197188 ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf32f9bf6 ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf4e241f8 ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf6bd7a47 ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x24f606e0 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27240460 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 0x36c923e6 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c152500 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5883ed27 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7073da3c ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7525be28 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9194224b 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 0xd87f8fc3 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe0a50497 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfed953a3 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x09f2a9e5 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0daae172 ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x14a5e837 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x17078d4c ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1be3e0f9 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x347e68bd ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3668407c ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x38247b55 ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3d70a726 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41df1511 ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x644a49cf ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6f3a6a9b ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7014133d ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x70b51e87 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x846d6a37 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa443fcd5 ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa4fd8305 ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xae352ed3 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc5720f32 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc624fef0 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf0ee51e4 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf67f47e7 ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfae48c14 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0298ceeb ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08287a3c ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x10477ecc ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x117dd1ab ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12ce501c ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15eebec4 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16e07098 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e3f3181 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e403d27 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f179bd7 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2463f2c3 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27102ede ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29584c7a ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x298797ea ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x315a42ba ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32804e75 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34a1a946 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36a4b105 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ca861e8 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3cd6354b ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4167808a ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x441d3c16 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45ad0b62 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45d81355 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48504ec7 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49e9b2d3 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a04a262 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a7d6c51 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4afd082f ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x516ed0e0 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5714f6d5 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x583db197 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a0ffbca ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x637441ca ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64901ff4 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6a3f902f ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dc260b6 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6df079c0 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ec502ce ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f07b74b ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70662a42 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71e13eca ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7380617b ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x742742ec ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78d50f26 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b287a2b ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d1c986d ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8556d8c1 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85f92c1b ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a5dfb55 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c09c634 ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8cecbe25 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8da748f5 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8dd80642 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90ef1b28 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94e6bd3f ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9583f05a ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97b99af1 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97c3d4c8 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x994a199b ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9972bacf ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99c161b0 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ec07b8e ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa14560fd ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1969e3e ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3f6f18d ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5c763e6 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6829672 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6a74b00 ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6fd63cd ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2021f75 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb811946c ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8f2a6fa ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcfd45aa ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc17a85d8 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc18f36c7 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1ed8495 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5be2703 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc93827c8 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9ba0e88 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca8e7ee8 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb87d876 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1c1765f ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5d65046 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9509c3b ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf1aa6da ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf91142e ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe111be62 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2b35868 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe983b07f ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9c59fc9 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea3d0f6d ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed0fadd8 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee5af8f0 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeee97ca6 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef4175d8 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf18bc1cd ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf268e65b ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf697fd15 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf767a519 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7babd3f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7d8d56d ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf96e0b74 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb3b3227 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbb7cd18 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd0ddb75 ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd6809b1 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x2edf847a atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x6a594a3b init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x786b34d2 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x098e7868 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 0x1a7fca08 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7bf690e6 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7f0244c4 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x832822a5 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x88d2cf12 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9fdf31e0 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 0xbb929b75 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbfd64ba2 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xc7f7debd 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 0xe1e6c84d brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xe33f9a8e brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xec33d115 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x466c6906 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0xaade0f81 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0xd5654e0d reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x13c8b1b0 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x15ea3885 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x17cd10b9 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1be2b92a libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1c2c2656 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x26cd584d libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3ef115da free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x404df41f libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x42f9e082 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x63affac4 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6720ff4c libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7dfb12b6 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x816d67c5 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x9d7b6cdb libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb3a77497 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xce7219ca libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd91c122d libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xe7127531 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xec81e31b libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xef5eda58 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00d63b9f il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x01340fad il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0881087a il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0c18d4ea il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f526b72 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0faaba3a il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x11a028a1 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x184d4ff5 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x192daaee il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1d8e8775 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c3943bb il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x33029264 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x347a8d21 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f88ddb3 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40c2f10b il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40c6cddd il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x41b49d12 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4511c70b il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4528b2ef il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x477d382c il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4806d658 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e4bdcb8 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f82775e il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51580299 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54018afc il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58c9a421 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58eec29d il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5c940809 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5cf070ee il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f03bbf8 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f923438 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64286d0e il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64f1b771 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65474e3a il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65ad5dad il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65d7166e il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x669930da il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6fdcef91 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x704e0768 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x765408ba il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x769050eb il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x76bd6b11 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x770f6b1b il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7cbceddf il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7ec0ee88 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fd5dd49 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x850b21f7 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x854d36e7 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x859cda9d il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x85dd542a il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x889c5868 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x88e0c56f il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8baf56ff il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90045061 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90f153bc il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x939b7a3e il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93f2c9b2 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9b229bce il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9c12f6a9 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9d6f7d1b il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9d92cf02 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9daeb437 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa22bfc6f il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa2bce0bd il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa2cad2ec il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa46760bb il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa5835fb6 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa8e86ed7 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xab00ab6d il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac057f53 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb1cf8aa7 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb66a2d4d _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7dcf644 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbaa4bd78 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc1acc50 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc6cd9fa il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc1b09ba6 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xca988ba4 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb56b177 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcc1d4691 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd37053c0 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd51bbcee il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd68fb93b il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd8dc75dc il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdea8ff76 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe10effb5 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe21a3a60 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe2467e21 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe352e347 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe7bb0211 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeec0e334 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xef89e51a _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf069f08f il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf437e6cf il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbaba796 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfc63291f il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd702711 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd702c2e il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x24d7209f __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x26a72930 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2d108ca6 __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x34de7377 __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x38688d65 __SCT__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3a2a40a5 __SCT__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x516b593e __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb12b550a __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb35b5ca5 __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd81e2f28 __SCT__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xdff791d2 __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xe310a5f1 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x017f956b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0272cbdc hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0ce95b39 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x151075a8 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x16eb9976 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1a275bb4 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1c2df01d prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2470a116 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x251fbb49 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2a83b039 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4925eafb hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4f6f00c8 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5930e87a hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5bc59122 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5f555bb3 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5f9df296 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6d76e4da 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 0x8e84ccff hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8ee120f4 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x916c0a4b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9492c9f7 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x99a961e5 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9e870947 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9ece1b59 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf4294597 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf91c03e2 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0c5e0f0d orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x33161d67 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x44c934f6 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x4cf97828 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x560f39d7 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x5d1dda90 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x74a80db5 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7ae43453 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x82b0a1f9 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x919d25e4 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa74c2dc5 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa7e9be23 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xadb53d41 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xba6a3ed2 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xbc49d914 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xe7d10eac orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0xe3adf0cd mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x3395b5c6 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x022be5c0 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x086d5837 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x147d88ca rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1677950a rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1b324381 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1c4d901b rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1e37666b rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1f838f34 rtl92c_dm_write_dig +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 0x39f64932 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3a755a64 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3e69a39f rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3f449133 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4270d4bf rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x427734ac _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x490595a7 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4d53c2f5 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x50075353 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5c3e2ff2 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x647b13c9 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x65678563 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6af68ac7 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6cde44d4 _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x75cbc85b rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7a8f21ac rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7e99c76e rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x98a65bd6 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9925c6d7 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xaa89848c rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb79b5de0 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb9882d5c rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbc0eda42 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc67753b9 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcbb79cab _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd95cf0a4 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe362f7c1 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe56acc32 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe8e034ab rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xedf78682 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf2fd7093 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfa27a65c rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfacae19f _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x37eb2c4b rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x657c1538 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x9f22d5dd rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xe4e408cb rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x86a7d923 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x9d8ff5cd rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xb7132bea rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xcd0268d0 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x01b491cb rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x106fefe1 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2a6e82d4 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2cf1d933 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x41f5cd51 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x47122540 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4b48a085 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4df29419 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4fd692b1 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x58eeaec7 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5e2885ac rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x700b3dc0 rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7029d8dd rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8b967c66 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ea60059 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9684da33 rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaaa6b6ef efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb6b1de84 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc5ad8d38 rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc62e9b00 rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc78bb280 rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc89b7a65 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xce46c1be rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdea5bccb rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe27e57a8 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe37cdea6 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebedfe5f rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeda14b0b rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf6720705 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf7256f8b efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfe82fc91 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xffc1b582 efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0xba71474a rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x27b130c7 rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x51913df8 rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0xbe5356c6 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x02cdbc65 rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0445235f rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x049ed734 rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0b4605ba rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x13d51d83 rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1bf26a25 rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1c2758fe rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1f111acd rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x20b1bc88 rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x25f566da rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2dc603c9 rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3a27d4cb rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3adf8fd1 rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3bb02265 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3f5b844c rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x42a1b33f rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x469502a5 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x48cc1a72 rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4c139038 rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4e22f2d0 rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4eae0439 __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4f362ce4 rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x579deb3b rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5f628cec rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6364ae6b rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x773cf739 rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7b7db702 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x80f5be81 rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x82e82a07 rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x855bec9b rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8981d626 rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8b4ddc44 rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8c2c2e4d rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8dc96296 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8e777810 rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x93442867 rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x968bd787 rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x986dfacc rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9ff33c9e rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa070ea5e rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa194709a rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa677b525 rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa714e582 rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xac39c7ce rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb493243c rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbbe91b74 rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbf25a45e rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc12d7ff2 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc47c0b3c rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc719836a rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xca9a7b7f check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcdbb1cc2 rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd31fc751 rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd8d7fc94 rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xea04b3d7 rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf223e89b rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf2996ffc rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf8281b16 rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xfdf52966 rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xfef060c3 rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x1011d7d4 rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x61597e65 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x82b0889d rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xa778bac2 rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0x1426eac2 rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0xf81d745d rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0156bf32 rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x02d3258e rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x04922eef rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x07a9a1a6 rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0c0db7c1 rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x10d5746b rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1314416a rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x183ef2dc rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1dbecb1d rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2235ce6a rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2463ac53 rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x26b4c3fb rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2785c8b1 rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2e740cec rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x35904ca9 rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x394f5777 rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x39d545ed rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3fea5503 rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x41eb3b1c rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4a7c738d rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4f4f3f01 rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x50808a09 rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x55bbf5c7 rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x642dfe4d rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x64c698cf rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x69597e5d rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x697db5a5 rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x711714b4 rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x754da384 rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x775ea73d rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7a40aed8 rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7db16478 rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x81c5f70c rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x86ef2e71 rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x92200fad rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x97e32543 rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x985d226d __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9dee2aaf rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa4c1cdf0 rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa52fc160 rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb23b59f5 rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xba585906 rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xbc468c06 rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc24c1290 rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc95534b0 rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcc0963f6 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcfee9f77 rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd1c99b3b rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd382eb8c rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd77e458c rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe036e359 rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3f57b04 rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe4a07ae3 rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf2c60114 rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0a76ecc1 rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0acd76bb rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x103f5e9b rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x16afd2eb rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x1f0c02ac rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2fda0e2b rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x4b9b5ffc rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x578e3181 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x57ca8833 rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x6694d0fc rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x81b452d5 rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x9ce0961b rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xa6e188e6 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xc7a88454 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xd9783753 rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf630d9a9 rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf83280b4 rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0xc9589230 rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x18714bc3 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x57bd3be7 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x5824ee2a wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xde4468d0 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xbdd18905 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xe920c09e fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x7483f870 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xcc791bdd microread_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x255284e9 nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x44995bf1 nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x7c7fd69a nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0xbdbad712 pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xbc286178 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xf0a9d4c6 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x47ae7cab s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x90ad51b3 s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x99484974 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xedb12f10 s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf25c9434 s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf2ab60da s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x0a3dece2 ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x500f7fea st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x5cfd7d8a ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x61744e5c st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x87b372ae ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xb9f1db66 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xc3c4654e ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xccae2e2a st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xcf9169b3 st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xdca8b834 ndlc_send +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x20cec2d0 st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x21794b42 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x22a963a4 st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x2567797c st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5abc3fdc st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5e8a5f01 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6f828b0b st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7614fbb2 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x79490836 st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x83c18553 st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x8dc44693 st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xc78b9736 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xcd82abf2 st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xe2c72689 st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xe649f7b5 st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xeb31037a st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf58f3ae1 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf8597790 st21nfca_hci_se_io +EXPORT_SYMBOL drivers/ntb/ntb 0x43a72876 ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x5783a9f3 ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x57cbe53d ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0x61911be9 ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x6a1ced87 ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x728f3a87 ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x739c9cbd ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x9e5302ff ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x9efc33f0 ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0xa04bf5dc ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0xa0cd8495 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0xa4ec3669 ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0xaf9dccac ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0xbb8bbbbf ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0xbe9c6d7b ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0xc0110779 ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0xc056199e ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0xeb6af48b ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0xf1ba16d2 __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0xf5de76b1 ntb_default_port_number +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x2ea17a37 nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x627709b6 nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/parport/parport 0x050ba391 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x0ec3a706 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x208dd502 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x2c944020 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x30291089 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x36d339d9 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x44725cda parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x4b5b84bd parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x511c9a1d parport_write +EXPORT_SYMBOL drivers/parport/parport 0x53e73949 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x57bc4948 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6264e49b parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x6c935c3f parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x72ada065 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x77cd73aa parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x78082487 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x8066d7de parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x8e2daeb1 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xa047fbd2 __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0xa3b18a4d parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xabb98f47 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xb8d46fc2 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xb9121769 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xc0a2db1a parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xc1b3971a parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xc8985012 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xd056af87 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xd89fd824 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xdec6bcc9 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xef435575 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xfb148133 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport_pc 0x141f4487 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x95e58907 parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x119b6eac pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1401a0b0 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x238d9534 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2aece7ac pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x43090600 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4db8a533 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x56ad5cad pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65d81e6d pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x73d6d795 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x92db36d6 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9de3ff41 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9ec7afc2 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa47e21af pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb866905c pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbb312663 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd1262a11 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd5eae7e2 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe1bf74d0 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xffdbee9b pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x141379e4 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x36e54ef8 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x544b9f5e pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x71601a17 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d098d29 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb4fb6f35 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb9e5c158 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe582e421 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf14f47e8 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf42b68d3 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf942709b pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x50a62a49 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xe701cd51 pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x226e9407 cros_ec_unregister +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x324dcecb cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7148ebf9 cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x8ed7f93e cros_ec_resume +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xf25aacf5 cros_ec_irq_thread +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/dell/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/platform/x86/intel/intel_punit_ipc 0x3a0b563a intel_punit_ipc_simple_command +EXPORT_SYMBOL drivers/platform/x86/simatic-ipc 0x35a48fec simatic_ipc_get_membase0 +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0xd857cac7 sony_pic_camera_command +EXPORT_SYMBOL drivers/platform/x86/wmi 0x8829871b __wmi_driver_register +EXPORT_SYMBOL drivers/platform/x86/wmi 0xe80d05f2 wmi_driver_unregister +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x317f9fb2 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0xe18bc53e rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x0224fa4e rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x29353593 rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x35576246 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3b7e10de rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3c44f5c1 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3d0315a6 rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3d602299 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x51001530 rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x69bd6323 rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x6ce93c83 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x6db35f31 rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x80282f2a rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa8a78e5d rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xaee05bc5 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc27cb5d2 rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc755587f rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xd12f8512 rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xe4a7cc33 rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xef9fd707 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0x910d23c6 rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0xa8082df0 ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x6166991c NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0x89beae65 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x1ac48e03 scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x928a086f scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x9a4ca7f2 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xdee8653a scsi_esp_register +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x038d7b67 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x416b0b4a fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x51c8777e fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6390c81f fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x64e5b6e8 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8d03accb fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd0517965 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd68b886e fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd73b4d80 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xde26de8b fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xee7b3278 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0869ac58 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e745e23 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1197ff70 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x144e6cc0 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d18ea61 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27f2a991 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x289a4e17 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28cc3a0d fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x297bbfc3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2dbb3016 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x354d05b2 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x38f931c8 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x396265a7 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39edee7f fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c5aa0e0 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f7e7980 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40a445c1 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x42be1347 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4826e27f fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x484c7898 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48e5c50a fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5410bf89 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5952eb24 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ceaaca9 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e26be0e fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x615edc08 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6620bf5e fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6968d833 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d1f07ea fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x728ceeb1 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ee1753 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x762ec415 fc_exch_mgr_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 0x81ba2571 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83235da5 fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8700bf67 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d23a263 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96952c85 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d50ed7e fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa0660492 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1bcd198 fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7e09940 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaa40bce5 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaee453b7 fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb34c7ff4 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3f00e2e fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb446d081 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6e5fc5b fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc0af3606 fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1cbdfb1 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc596b286 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc899eac8 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5c14fa2 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdae5ef42 fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf9ae708 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5cf06b5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed2c130f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xedca71ab fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1408e2c fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3545aa6 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf689e662 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf96e4ba3 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x1e916f19 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x78174e61 sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x823ff00c sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x995bca9f sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x0123b1fc 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 0x0a91bd4e qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0badf240 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x29e2f163 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x53f36593 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x548e638c qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x8dd4419c qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc1b83923 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xcf265117 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd414d4e3 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd817e426 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xdae19604 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xed0bdc28 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1a25278a qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x423aef9a qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x43a1b20c qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4fd6c162 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe46c1c29 qlogicfas408_host_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xeb84b5fa qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x6493d5cc raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x9c767769 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe27d83a8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x04ca0825 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1160226d fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x17cfb253 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x191edb5e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3b6d1292 fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4cc36899 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x796113b4 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x98f0e5b6 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9ff7d9d2 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa18c31d1 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa5ed7fe8 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa94f840e scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xaa60efbe fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc5700408 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcb8a2d86 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd3dafa4d fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe553944c fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x02acd4a6 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x05cee965 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1484908d sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1efbcbb3 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1fdf9756 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x24b39167 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2727461c sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b7ca5de sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32d94323 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x400d3bc9 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x41b63303 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c1cef7f sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5a00357e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d51cdcc scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6409439c sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x735c1229 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7c9b8305 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e61f9df sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7f9664b9 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97269493 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xacafa59e sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb1a42fbc sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xca3481d3 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xca78f0d1 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb635a89 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6548d37 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe11711b8 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3ecabe8 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa7355c0 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3d06cb05 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xa28c7479 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb3027110 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xcf06e311 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe848762b spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x11ccd37a srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x14c66baf srp_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x9adc16c9 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x9fa27171 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xfb6bea3f srp_rport_put +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x06065005 qmi_txn_wait +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0ef12cc9 qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x3be3e109 qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x5218db59 qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x68772745 qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x6aa67471 qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7ddb16c1 qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x83ae8140 qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x89037c8f qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x9e84e498 qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xdfb220af qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xf813fefd qmi_handle_init +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x037c07a1 sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x0b3bfeba sdw_bus_prep_clk_stop +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 0x36ec1429 sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3e14dc7e sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x412c4a54 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x52065ea3 sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x54996b34 sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x661b258c sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x67acfeff sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x686266a2 sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7ffe7141 sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x818425bb sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x88c8d6aa sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x905ba763 sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e122d79 sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa9011e70 sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb61d036c sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb831dbb1 sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xba54b904 sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbbec2c2e sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc042b729 sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc508a06a sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd10d652b sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd1d98426 sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda5bce09 sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xdf228bb7 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xece1f30e sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf38cbbd4 sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf509401d sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf53ba0b8 sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xfb361eec sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x06022cb4 cdns_xfer_msg +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x0631a1eb sdw_cdns_pdi_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x3369a886 cdns_xfer_msg_defer +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x340a5acd sdw_cdns_clock_restart +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x34712074 sdw_cdns_irq +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x36c54eba sdw_cdns_check_self_clearing_bits +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x40c60306 sdw_cdns_alloc_pdi +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x413e8d49 sdw_cdns_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x594c6e4a cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x69910118 sdw_cdns_enable_interrupt +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x7a930603 sdw_cdns_is_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x888c54e3 sdw_cdns_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xab7a31ef sdw_cdns_config_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb65277fd sdw_cdns_exit_reset +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xd1ae965e sdw_cdns_probe +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xdc1ae9b4 cdns_reset_page_addr +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xdfbc4f85 cdns_bus_conf +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0xaeed473b sdw_compute_params +EXPORT_SYMBOL drivers/ssb/ssb 0x009d0e20 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x071294ac ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x17276125 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x1aff62de ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x41167f9a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x606fb3e0 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x610be46a ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x68a75c71 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x6a3d4889 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x80542fd4 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x81a5b3cb ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x8725dfdb ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x9741c68a ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xa6d56543 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xaa168922 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xaa34a2b0 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcf0209fd ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xd16a5978 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xdd895702 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xfcd90924 ssb_bus_powerup +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x00fb3136 fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x166b9401 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x280bb312 fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3412ad66 fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x359a1b86 fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3876b9a4 fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x423ec4b9 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x47254215 fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4c351371 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4c5db2e7 fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x58e45b77 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5f9b53d0 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x638baeae fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x64453131 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x685a1b9c fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x68c43060 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x69a06b0f fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x78f0c94e fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x85eede54 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8bbd59ad fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa12835aa fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xba05ebfb fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xc4e5cc4d fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xe5dc36a4 fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf756ac60 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x2d6a971d gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x301e6369 gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x556fa5ba gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x60908b9a adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x55709b93 ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0xaa7a6a5e sp8870_attach +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x041a0e1d rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04b73be6 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04d42767 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b44bdca rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0d1cae7e rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1216dbee rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1bd07503 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1c60161f rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ec98507 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x29b97d5f rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b7f6da4 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x32108f34 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x41bfa8a6 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x45c13d0f rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x47b499a2 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4c66a362 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4d00c80d rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5298f27a rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x59337e74 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x59a594db rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5baaf79b rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x70c7b7e1 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7a4e8ec9 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7b53a136 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7cc260ab rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81df240d rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x87baf506 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8a304e2b rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8e64a372 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8f835e36 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x96bb9711 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9d09b370 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9fce3142 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xaf3669cc HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb2b92ea7 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb97bd8c9 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc75be3e0 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd5617e0d rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xddac4288 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe0daf3d9 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe504fbca rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe7b0e04e rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xeeca4822 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf21bbcee rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf47f46ed rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf6cb5d69 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb4547a2 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfc28b0a2 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfe0f591a rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0784fa81 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ac3e724 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ea8dab2 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0eaf30fa ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14721608 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19e90d24 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d72f4e3 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1dad7b0c ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20c39503 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26b599b2 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x28b4eae5 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c834aa9 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3158d86d to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x33ccc9a9 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b808d38 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x520ab258 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b12010c ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e933fc2 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6bdddf0f ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cfbbb26 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6eac1c87 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ecddb17 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7184aa69 dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74bd3667 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79cdabbe ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7da486fb ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e6ffb16 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7e7f4a53 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x84a2a105 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87d7da28 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9088b822 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b46f82f dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa04a77ef is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa2be9152 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa677192d rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7236a3f ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xad5c9770 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xae875bd8 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8e08586 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xba3c30b5 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbdaaa2a6 dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbfc8823e ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0cebf23 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6e511ce ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc184e28 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcea9555f ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdba857d1 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3ca0d32 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe884a36b ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf58f2bb8 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf72f6e6e ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa7e1d39 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff9c00e8 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0125784a iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0acb7930 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0bb7cec4 iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0d7e2598 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1355716d iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x193d7d0b iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x23e74a00 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3957699c iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3c5ef5a6 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3cb77629 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3e191533 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x40abda60 iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x46766ec3 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x46d4e5ce iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4994e865 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4c034072 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x53050ac1 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x547aea9b iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x56837a74 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5e2c5675 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60cd349b iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x64508725 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x77310ffa iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x77ab38e6 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7f1f7f37 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8138f66a iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x871da108 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x878d098a iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8d927d88 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8e483bdf iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9f6dbded iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa0af448c iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa4e8d252 iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa6eca3c7 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb698cdf1 iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb85700e1 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbfc2491d iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc056011d iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcfba011a iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe97d6b94 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf1756afe iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf34332f0 iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf47d55a8 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf5056c66 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf92f2ea4 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xff437bcb iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/target_core_mod 0x07385873 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ee59ea5 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f7e65fa transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x1032ac50 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x113d7ee7 passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x1369d228 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x1e6cf8db sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x1fd2c930 target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x25b2640b spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x261f2651 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x2945bb28 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3bc186de target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x3d36d90e __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x4090ba1d core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x4163bd28 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x43d03ef5 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x49d1265f target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a76b0de sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x4cc3f192 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f58298f core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x5069599e sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x5117ffb4 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x52904d72 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x5509d459 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e486581 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0x5f9d78a6 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x602e0260 target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x62655593 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x671e8c36 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x6878f7e3 target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f493622 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7130b6ad transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x732f9d05 target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7571b476 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x77179b1a transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x79f543fc transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7ea31af5 target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x82730a97 transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x85e38ea2 target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x88366108 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x8c25bc00 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x8ddbf469 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x9884ad99 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d98220e target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa3ceee07 target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0xa4970d06 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa9b040b target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaeda4508 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0xb10ed359 passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xb8824ddb target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc303d278 __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc3254ffe target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0xc555a73a core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5a92954 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xcadec373 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xceaede61 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0xd361729a target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xd53ed59a transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8c9b8e1 core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd2b0125 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0xde40e9ce target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe019b9e0 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3aa09e5 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xea7ef7ec target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xeca778a3 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf5934e55 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf5de46bc transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xfb21d6bc transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xfb7a5a68 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbbb7eeb target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0xfbdcbc36 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc367d58 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe6c5dc5 target_get_sess_cmd +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 0x9103c585 acpi_parse_art +EXPORT_SYMBOL drivers/thermal/intel/int340x_thermal/acpi_thermal_rel 0xf0f9fe0d acpi_parse_trt +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x0e3c502e ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x3bd583f8 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x46d3d6ee ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x6270371a ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x71275aac ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x95da6f31 ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xb89c8933 ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xcd3ca7f0 ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x79f653a7 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0xd1b1beff tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x4e01895a ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0xfeed323c ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xb2bbcdc3 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xb3b2f0ba usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xfee93060 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x042b1619 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1def618e usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x310f30a7 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x333d438b usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x486a3815 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x497a6fdf usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x655a6df1 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x82b0579b usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8967faaf usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdab778b0 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe044be66 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x1645d7ce usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x70910e6f usb_serial_suspend +EXPORT_SYMBOL drivers/vdpa/vdpa 0x8f8ade20 vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x18758697 mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x1c4f9dee mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x5a9f5ae5 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x63a71e8f mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x8cebba9d mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x96461954 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x9f7030cd mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xcbcd368f mtype_get_type_group_id +EXPORT_SYMBOL drivers/vhost/vhost 0x85096c8d vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vhost 0xc0059dbe vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vringh 0x0c46f5fb vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x18f3ddc2 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x19c24590 vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1fe50c1a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2890c460 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2d2babc9 vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3684d8af vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3ee1955e vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4504adc9 vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x5bd469c0 vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5f586ca2 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x61e3831b vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x660779c8 vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x6a693a25 vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x90e93e3c vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x9b30452e vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa7ce8bd6 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa8efaeb9 vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc0bb1581 vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc87491c8 vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xd465f463 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xe4c21196 vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xeb2ec139 vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xf1e32cc0 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf8605294 vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf9d0dd07 vringh_abandon_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x089538a3 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa0a92e72 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xb2d6361c lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xe9406eb8 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x16d34063 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 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x5f19c9b3 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 0x94985594 svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x9746cd83 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xa2a5b9e3 svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xb0ab2b2e svga_check_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xc881fcca svga_get_caps +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 0xe2268071 svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x0d3c0b48 sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x31bb01d9 sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x06b36ef7 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 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0xec382dcf cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xace04cfb mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x1eb5915f matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x3c18edfe matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x98c0f0b4 g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x4e9e85ad DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x8252c86a matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x9a6bccf2 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xd65f77fc DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0xe784b98e matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x44043c80 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x212c728b matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xaa3cdf59 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xc8a15e6d matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xcfb3273e matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x202942eb matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x9b5a90da matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x52a966fd matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x579f8ea4 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x6a52de06 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xae92ad72 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xf6e4981a matroxfb_vgaHWrestore +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/virt/vboxguest/vboxguest 0x1ac503b5 vbg_put_gdev +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x260590c0 vbg_err +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x569b312f vbg_info +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x68f1cf1a vbg_err_ratelimited +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x70cdcbfd vbg_warn +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x75504d2d vbg_hgcm_connect +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x899778eb vbg_hgcm_disconnect +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x94a0358d vbg_get_gdev +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0x9c072aa8 vbg_status_code_to_errno +EXPORT_SYMBOL drivers/virt/vboxguest/vboxguest 0xcc2baf2b vbg_hgcm_call +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x0d386311 virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x1ecfaf29 virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xb44ac325 is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xf348027e virtio_dma_buf_export +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x4f5fe8ff w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xe42515db w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x66eea32a w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x6836f668 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x4a16f19b w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x612295c8 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x6db9d64a w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xb02ad32b w1_register_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 0x02663a58 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x052d8107 __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x0554fdd5 __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x17843b0f fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x17b1477d __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x27dded62 fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x2f44447f fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x353513a0 __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3c13c8eb fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x3d054df3 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x431c6300 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x48c65b88 __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x532ba625 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x557a775f fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x559df0f2 __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x58e96aca __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x5954d7ac __SCT__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x5c64d8b2 fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x6029af12 fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x674a7cb3 __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6f9626f7 __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x730b26ec fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x7b1b25da __SCT__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7c87e02d __SCT__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x868b2903 __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x8c2d6da7 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x9c1d7e8a fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9d845a99 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x9ecd7452 fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0xad3c6c18 fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb3029d91 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0xb95e092b fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq +EXPORT_SYMBOL fs/fscache/fscache 0xbea4a23f fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0xcd3d15e1 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xdbedd457 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xe585c47f fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0xeae21b2e __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xf46812d1 fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0xfe806d81 __fscache_resize_cookie +EXPORT_SYMBOL fs/netfs/netfs 0x2104e932 netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0x3b5f1d81 netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0x5b135b4f netfs_subreq_terminated +EXPORT_SYMBOL fs/netfs/netfs 0x6fa333c2 netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x824cf623 netfs_readahead +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x281c5357 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x3f062b13 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x59fdcdde qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6fda2768 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xd6707708 qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0xfd0e6788 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 0x9c5d5b94 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/crypto/libchacha 0xcec122d7 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x147c3f2e chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x37b34b92 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x521c7102 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x5b19e187 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xc20134e7 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xce15a526 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0xbcb90cb3 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0xd45b9cf4 poly1305_core_setkey +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 0x15e30dfc lc_seq_printf_stats +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 0x4543c8f5 lc_seq_dump_details +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 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 net/6lowpan/6lowpan 0x021c3cf2 lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0x3cd96a8a lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x457dee00 lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x793b7411 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0xb3472e7f lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0xb3c38186 lowpan_register_netdevice +EXPORT_SYMBOL net/802/p8022 0x116c577d register_8022_client +EXPORT_SYMBOL net/802/p8022 0x6e47aebb unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x31ef7f82 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xe1d57076 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x014da856 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x05dc23b7 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x07bf6756 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x0d2f5ca6 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x0e0f9de4 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x2c2d57e4 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x33bf96b0 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x3597a987 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x394180bc p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41ce9823 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x4c25ba04 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x4db41103 p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x554aeb33 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x5a9673b1 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5eeb0af0 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x64541eb4 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x69e38d8b p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x758bfcd2 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x79eeb144 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x7a87b23c p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7b9e5bca p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x82d6da8b p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x86131181 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x940b6bb2 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x95bd8f96 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x97d23414 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x984c5e73 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x997bcaa1 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x9cdd9ddb p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x9cfbf672 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x9d71e53d p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x9e0f8461 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xa13b152d p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xa6e5b4ba p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xb5f3dd4e p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xb79f25fd p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xc6272aa0 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xc65ad8a4 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcff767b4 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xd772087b p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe0472eff p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xe3fd2caf p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xef056c7e v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xf1a618b1 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xff984f0b v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xffc1307f p9_client_create +EXPORT_SYMBOL net/appletalk/appletalk 0x3b05af07 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xbf9a088b atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xc35e8059 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xfc761d66 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x1247fab3 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x44c6e633 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x4b3bb39c atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x4d697851 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x772ebd53 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x8689ae53 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x977a2855 atm_charge +EXPORT_SYMBOL net/atm/atm 0x9c92097f atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb6f4cf8a atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0xc8f26068 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xcb3f31df atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xcc3d6fce vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xee95f9f5 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf90d6e13 atm_init_aal5 +EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1ea80bc1 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x326210da ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x6fbbba7a ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x763bbfd1 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xaa0be9ee ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc5b9f25b ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd665e7f8 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xee02e420 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0xfe3f1c9c ax25_header_ops +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x07679edf bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x078563c5 __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x082a989a bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x333e52a1 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x363e3121 hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x37077bb2 hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x38ffabb7 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3a625199 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3fad3ff3 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x47eda467 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d641558 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63c76b59 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0x677d8b7c l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x68cc4409 hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6b657d86 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d10f8fc __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x73fa0e67 hci_mgmt_chan_unregister +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 0x7cce4525 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86641acc hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x86af7f42 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8762300c l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x87b3bca6 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88396184 __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a8d3f74 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95aaf23e hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x984611f0 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a8b26f5 hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9cbf3427 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0b1d93c hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa541796b hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9a0ce5d l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb816fbfc bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc18a78ae hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xca7108a0 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcb6c1599 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc2d8fdf hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdf3a1d4 __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcf4f5cdc bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2c910a2 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd6ab6513 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7613212 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd929e1f0 hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb16eb80 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdb7cc961 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddacccf6 bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe23a345e __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe3447352 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9970079 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe9fc4187 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec07ea51 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf41c9586 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6fba7eb l2cap_unregister_user +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x14747126 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x14a6bc03 ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x550aa8ba ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x70f51c59 ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9d0c39eb ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xce719c15 ebt_register_template +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x246cd24b caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x339df5ab caif_enroll_dev +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 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 0xb7f68f52 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xdf0c75a3 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xe199dc5d get_cfcnfg +EXPORT_SYMBOL net/can/can 0x2442523c can_rx_unregister +EXPORT_SYMBOL net/can/can 0x5f531593 can_send +EXPORT_SYMBOL net/can/can 0x704f2078 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x75b4b491 can_rx_register +EXPORT_SYMBOL net/can/can 0x7962564e can_sock_destruct +EXPORT_SYMBOL net/can/can 0xb1a5b66d can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x024b24b0 ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x0362387f osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x04cad6f0 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x08901406 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x08db723b ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x1378aba3 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x142b846e ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x165b1948 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x17c17611 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x18ab7f70 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x1cf70466 ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x1da552d1 ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x1ddfb75e ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x1e7d39ba ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x23b80c65 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0x23e905b8 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x2a5e6d42 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x2a983d26 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x2c4327bc ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x2e6bee76 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2ea0d3ff ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x31a491c9 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x33e00755 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x36baa569 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x371b749e osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x379e4c00 osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x37aff486 ceph_osdc_alloc_messages +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 0x3e5cad12 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x417a9131 ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x43325883 ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x4335b269 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x49a8856a ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0x4a14305f ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x51a88629 ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0x54c93570 ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x551046b8 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x57a3d964 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58703274 osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x5a094d7f osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5bafbfa1 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x5c1bd61b ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x5d5bdc95 ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x635e1255 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x64e5b056 ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x67d771f8 ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6c1c695e ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x6e2f949d osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x6ee3d993 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6f9f6851 ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x6fb30a32 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x72882e01 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x73d6358c osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0x75fc631a ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x775d8b63 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x78c92ab0 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x7a0dfd1f ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0x7e206af8 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x81bbed76 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x83c12784 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x874ca586 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x8a46fb6f ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x8b8569ab ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x8fc3df6a ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x92b7b4ce ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x958b4a60 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x95a0a345 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x98f74540 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x992e0193 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x9a25595a osd_req_op_extent_update +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 0x9d313b99 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x9dc189f3 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x9fbba67f ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9fdbe03e osd_req_op_extent_osd_data_pagelist +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 0xaa114ac7 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xaa4cfa90 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xaf108b8e ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb0252f5b ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xb03a1ca6 ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0xb0ed8ed3 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xb7eca542 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xbb3bcf8d osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0xbb470014 ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0xbd2f79ae ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xbed5cf70 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xc362ec52 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xc366bfa1 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xc6bb6e52 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0xcb77cb6a ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0xcc772d82 ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0xcf50f61c ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xd4c7a25a osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0xd64b6db7 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0xdbe7a54d ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xdcba6446 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xdddea125 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0xde616007 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0xde80bdd5 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 0xe0991a08 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xe0c31262 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xe330ca55 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xe34a59f2 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0xe3fef46f ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0xe56f4c06 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xe76e7226 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0xe99c9af9 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xeb3c8677 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0xecf59801 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xee120c03 ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0xee661844 ceph_auth_add_authorizer_challenge +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 0xf1785306 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xf48f8757 osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0xf87612f7 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xf89016d6 ceph_put_page_vector +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xde5e9611 dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xef53cf2f dccp_req_err +EXPORT_SYMBOL net/hsr/hsr 0x4db4e9ef is_hsr_master +EXPORT_SYMBOL net/hsr/hsr 0xd62e6d60 hsr_get_version +EXPORT_SYMBOL net/ieee802154/ieee802154 0x25d400e2 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2dbd0412 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x70a3408f wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x91c3f615 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x97ec8f56 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe3d00cb9 wpan_phy_find +EXPORT_SYMBOL net/ipv4/fou 0x1757d1a4 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x52a97f95 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xdcf3cc1f __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0xf13914b3 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0x4f7aae0c gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x5c74c060 ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x887e7877 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xda2a3780 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xf6081d25 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1314f24a arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5e8b6bed arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xaea20c60 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xfba4f155 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1d803b79 ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x79b07380 ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa5deb90e ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xd93a9751 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x2f6ec3e1 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x4f56c114 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0xe8604630 udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x2bee72ff ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x2ef1d510 ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x712d43db ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xa3c44200 ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xac57942b ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xad7a8ddb ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb80f5df4 ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xbca81213 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf1042c87 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0cbbdc73 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0db5b4e4 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x705d650b ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9965906b ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/tunnel6 0x9751c70c xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xf7998cf9 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5abf7186 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc9cbacee xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/lapb/lapb 0x0c7ac666 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x2c9ca859 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x3ba85950 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x85d09f59 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x89c5d773 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xa257f22a lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xb03344d9 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0xe07e3e2c lapb_data_received +EXPORT_SYMBOL net/llc/llc 0x12a5b5db llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x52fc1163 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x7c8d108f llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xca4f310c llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xcd391217 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xd3538067 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd58dd10e llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x0178f1e5 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x05b195a3 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x05fa2976 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x062fc59e ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x068cc02b ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x06a77fbd ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x0a26feda ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x0a3966bc ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x120c956a ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x126b22b0 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x12783d58 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x12e22656 ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x132b1d1b ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x15c79f27 ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x18070130 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1b2bab36 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x205dbc40 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x21eae819 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x28366b6b ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x2928049d ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x2aea9ec3 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x2ce1d7ac __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x30c82b25 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x3188817d __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x320a03bd ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x33cfd4ce ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x347b6d7e ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x35e06437 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x372d4bb7 ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x4147cb09 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x41953a22 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x434c3da3 ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x46825e97 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x46b5f05f ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x4aef4a99 ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x4c12f6bc ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x525a1b92 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x5329d5ad ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x54f7dd1b ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x5dc19710 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x606838c0 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x64621bc0 ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x6546a436 ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x66220bb0 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x677f4e9d ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x6c782def ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x6cb75f49 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x70b2d1f4 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x72e5fce8 ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x74397d02 ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x7fc25c67 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x82ea4363 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x83a0df4b ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x85105b59 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x8596cc7d __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x8862b331 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x8bdb5e02 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8f06410e ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x991a0ca0 ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x9a68c7f3 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9a6cd141 ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x9c8b6bf9 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x9e37396d ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x9f2a9c19 ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x9fbca431 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xa067549e ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0xa185bea4 ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0xa1e479c9 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xa32f5e8f ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xa3ecfe45 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xa65e4a2d ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0xa9f1c9a1 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0xacd6b365 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xae6602c7 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xaf9bf248 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xb46acae9 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0xb531aad6 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xb566d792 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0xb7315e55 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb95042ed ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xbd8ecdd9 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xc109f0ce ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0xc293720a ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xc75a51a0 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xc90e043e ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xca37f079 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcc4dfcf3 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xcf1fef79 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xd07858f5 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd493f115 ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xde92de10 ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0xe10ea80f ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0xe18539cc ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xe46d8218 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0xe5752af3 ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0xe8712a64 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xec94000b ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0xedabece7 ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xf0ce4175 ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0xf17a81ea ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xf5f6ff1e ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xfb5be830 ieee80211_stop_queues +EXPORT_SYMBOL net/mac802154/mac802154 0x37f5a237 ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x55db1bb2 ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0x82ec13d8 ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x902b5669 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x96eb1294 ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0xb12d684a ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0xbbebe47e ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0xc882acac ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xdbcaf0a7 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xe8c26a6a ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0xf96c9ee9 ieee802154_unregister_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x000bc13d ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x00a508ba ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0467db85 ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0682c7a0 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0bf797bc ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1697e836 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1e4ec466 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x570f3ddb ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x99502fd6 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa05e22c8 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb7049756 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd448975e unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd4aad5cb unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdc20c585 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe27ac4fa ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5bf278d2 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x00e5f073 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x1ab9cc4b nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x410e33ce __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xbdfced10 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nft_fib 0xb3c36947 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x13514e7a xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x22e087ca xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2f73cd51 xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x3eabaec5 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 0x977fd4bf xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xa25fc115 xt_compat_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xacc1e38b xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xcb3e91cc xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0xcddd26ae xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xd7073694 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd87ae60d xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xdca86d68 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe89d1b9a xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xf9bcc9ab xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset +EXPORT_SYMBOL net/nfc/hci/hci 0x1ea058cb nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x34fb21b6 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x4af7c40a nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x4e2f539c nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x51352eec nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x51a6c5f9 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x6cfb7f58 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x775c4e10 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x7da17562 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x86c313e9 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xaada5103 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xb30acbd0 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0xb3a64908 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xb8149b72 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb88aa28e nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xbbb39cca nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xd0bce380 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0xd3ddd6ce nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0xdd231c55 nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xde2dcb60 nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0xedc022ed nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xeed804ca nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/nci/nci 0x1b34fb19 nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x21046f95 nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x3316de3b nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x483f35c1 nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x484237c3 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x56278cd8 nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x580d89b9 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x65dc0676 nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x6e3774a7 nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x7aac1835 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0x7f5b5687 nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0x82ee6dea nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x8537d8a8 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x8608748d nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x8c14eb53 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x951bf14c nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x9d929d55 nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x9f9cc9e4 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa73ce26b nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0xa7bf813b nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xd60ac63c nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0xd8c5af14 nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0xdf7d0316 nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0xe934fe03 nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0xe9ff3288 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0xedc6c0f3 nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0xf06f0987 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0xf22926de nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xff9bb6d0 nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nfc 0x05d7187a nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x11909032 nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0x1eebd231 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x232ebfbf nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x26c1832e nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x39c11ea2 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x3a047488 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x3c2e0a5c nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x509c60d6 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x55023590 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x569a819d nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0x582603a5 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x665b169e nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x6788940b nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x73256675 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x79bfe755 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x889954aa nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x9215e975 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xa1fd5366 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xa43c0ddd nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xa7b8585e nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xaaccc872 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0xb9f7c964 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xca021ca1 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xd7b9c6d8 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc_digital 0x6398ed73 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x945519b2 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xb149139a nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xcea38164 nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x046456a1 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x4615963a phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x7f6d39de pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x9fa66b05 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xaf04fde2 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xba61b1a5 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xc1355106 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xf0d360ec pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/rxrpc 0x00c82455 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1f20cc71 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x2fa74ddc rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3c321b7d rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3d3d00b3 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3f4833db rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4f4fbd4f rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x52481616 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0x535332be rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x55c41721 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x5cd5d995 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x71fcbcb8 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x8e4d3573 rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0x99760e7c rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0xccbb06bb rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd60cc3f3 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd77e5d6b rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0xdd7255e5 rxrpc_kernel_send_data +EXPORT_SYMBOL net/sctp/sctp 0xba49fe21 sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x031f29eb __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x16417422 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x1e612b77 __SCT__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x3ac4e1c7 __SCT__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x3bcd3bb9 __SCT__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x4de15979 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x6ae3f0d8 __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x87ccd0c7 __SCT__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x88a6d4e3 __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x94e069c3 __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x9b685e66 __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xc0c8733d __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xcac10322 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0xcd4eb4e1 __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xcf404498 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xf3e67113 __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x92d95168 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc132c2a1 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf5e1ddff gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/sunrpc 0x3867022b xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0x61d7f770 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb54cc5aa xdr_truncate_encode +EXPORT_SYMBOL net/tipc/tipc 0x3d2ae76c tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0x81740cb1 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0xc7db4384 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0xe815edaa tipc_dump_start +EXPORT_SYMBOL net/tls/tls 0x9bf2dbd8 tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x003eed38 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x011836a3 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x05709041 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x07a3774e cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x087a28e5 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0a8b7ec3 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x0be3ef1a regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x117aca91 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x12ecf3cf wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x1325b267 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x158b25a3 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x15f6352f cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x181508c1 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x1b5a3a7e cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x1c68ce4a cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x22318ee8 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x247e95b5 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x275269b3 ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x275c97f0 cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x27ff0b7d cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x28ce1a31 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x2b4d61d9 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x318138a4 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x323af2ce cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x33ce9aa4 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x345508d2 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x3633eaed cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x36c073b2 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x39d58ef2 wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0x3d3fa674 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x3deb1688 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x3e8edda7 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x401d6d80 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x41922eaf cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x4db04531 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x529060e4 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x54cc5b8d cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x5840ee6d wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x5972edea cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x59df0d40 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5abceacd cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x5efa094d cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x607e9f8e regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0x615d3644 cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x6187a28f cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x63d43c99 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6571c703 cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0x65ca130d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x687ee9b5 cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x68d76cf0 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x6c26eee6 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x6c47b548 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7591e8d1 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x785d8673 cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x791cd900 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x798c0724 cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7a3a9422 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7af1b051 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7d8865c1 cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7f48d7ae cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x82953bbe cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x887f0ddc get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0x8bd9c92e cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x8c536f46 __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x8cbaf7b5 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x8fa02936 cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x900e1ce9 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x90422aaf __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x9162c5f6 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x97b516c7 ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x9bc10044 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x9bf01ce5 wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x9d6cba30 cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0xa379d374 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xa4884be2 cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0xa5b689fa cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0xa83fdb34 cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0xaa244e2a ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xab131901 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb2995161 ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xb59c2ea1 ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0xb9949dfb wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0xc03fc2ae cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0xc0fd8619 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xc4b4fc27 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0xc97742d6 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xcad7b703 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0xcb964a54 cfg80211_report_wowlan_wakeup +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 0xd810b184 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xd97eaad4 cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdcb7ab16 cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0xde735f45 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xdebe061e cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0xdff859cc cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0xe10e5250 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xe20ff793 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0xe3d80d06 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0xe56f20c3 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xe7a2d2fa cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0xeaad69e5 cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xed7de2aa __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xee564c1b regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0xf3e114b2 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xf40bc2f5 ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0xf494287a cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0xf5596d89 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0xf9e2ea55 cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xf9eb3528 cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0xfa17a949 cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0xfc9ff539 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfda3db08 cfg80211_get_station +EXPORT_SYMBOL net/wireless/lib80211 0x5680eb10 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x754bf3b3 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x8af6c1a7 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x93533ede lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xa66deff2 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xe775fecf lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x9d633fc7 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x2f090bc3 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 0x3a016828 snd_seq_event_port_attach +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 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 0x800b5189 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x970eff8e snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb7681135 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 0xf912f0c8 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 0xc0adfa91 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x00e90496 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x02df593c snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x0706027e snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x076c70d8 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x082161d9 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x095bff28 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x0f927b52 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x12863671 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x15afbd0b snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x17b5cc88 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x18d74de3 snd_ctl_register_ioctl_compat +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 0x1c0ef31b snd_device_register +EXPORT_SYMBOL sound/core/snd 0x202358a7 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x212a6438 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x2172a89b snd_card_new +EXPORT_SYMBOL sound/core/snd 0x22cbee34 snd_ctl_notify_one +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x32b4cfe8 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x340f9055 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3d9eedb7 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x43718570 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4eb6bd7e snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x523663bb snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x5b30a8d2 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x6b03b873 snd_jack_report +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 0x80770ade snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x80fff9d6 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x83b28b0f snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x8cfe3baf snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x95fee8d0 _snd_ctl_add_follower +EXPORT_SYMBOL sound/core/snd 0x9dbf537f snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x9e4e2a50 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xacfa2363 snd_jack_add_new_kctl +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xbe2255db snd_card_free +EXPORT_SYMBOL sound/core/snd 0xc1340bc2 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xc5a6d10b release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xc90f2c33 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xcb590288 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xcc6a729f snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0xd08b42bb snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xda2e0ed5 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xdb047547 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xde476f9b snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xe4c3c760 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xe4fbb0c3 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xe72b3e5e snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe8d93ac1 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xeb00ae82 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xec7d8795 snd_register_device +EXPORT_SYMBOL sound/core/snd 0xf133bd09 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf86d0004 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-compress 0x16c910a3 snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-compress 0x6a8feb9d snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0x1cd563bf 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 0x08f1e653 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x0aa267da snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0x0fc55338 snd_sgbuf_get_page +EXPORT_SYMBOL sound/core/snd-pcm 0x10a1c881 __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0x11eba48e snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL sound/core/snd-pcm 0x132fba4e snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x13a7a407 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x1c3f42e6 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1d4002fc snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x1f01adc3 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x266fd051 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL sound/core/snd-pcm 0x27e6b240 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x289b7aba snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x36ea0765 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x376897a6 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x37d8cde9 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3ec38502 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x407db34e snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0x433690ef snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x46b0752e snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x481ff6c5 snd_pcm_new_stream +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 0x515a9b8d snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x519bb4fa snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x51e3c1f7 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x5298bfbf snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x532a325b snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x594e77d5 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x59672256 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x5c4ca345 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 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69255f54 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x816c7ab6 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x8b7b24a9 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8f3c592a snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x904eb8b0 snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0x9185fea9 snd_dma_buffer_mmap +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x94f8709a snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xa1086805 snd_sgbuf_get_addr +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa92aa3ea snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xac437f7b snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xacf74621 snd_dma_alloc_dir_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xadd74372 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xb32f50a7 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc266223f snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xc9d88009 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xd7b571a4 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xdc92592b snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xdd53cc3e snd_pcm_set_managed_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe40fdc3e snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xee7c6cc4 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0xf3f0025c snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0xf5da5d90 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xf9134bb8 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x02538c79 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06c939ba __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0920d46c snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15aaffa0 __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1c5344c7 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x29bcd3ba snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2b3886ca snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x33b6e1d5 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3496874b snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5968da12 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5def26d4 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x613638e7 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63deca4e snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7073ac33 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7e270361 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x90b5c928 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xad136c28 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd0284c27 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe98bb51a snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf1bf76f3 snd_rawmidi_transmit_peek +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 0x8c308931 snd_seq_device_new +EXPORT_SYMBOL sound/core/snd-timer 0x3191511c snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x3f9ab7b4 snd_timer_instance_new +EXPORT_SYMBOL sound/core/snd-timer 0x43e8a94e snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x4fa8662f snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x57c5463e snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x73a1536c snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x76438b61 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x79e84a64 snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0x8a617516 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x9388610f snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xa90a2f98 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xb819151d snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xbcc1eeda snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xf72429d0 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0xfbcd38b6 snd_timer_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x69bfa19f 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 0x179c9073 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1d523aec snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3e17e107 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x536a1682 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x86530ff4 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9a86d0d2 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa0285466 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd3f3d290 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xea8675d8 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1d3640e6 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x203fe8a8 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 0x3994770f snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x40ffbbfa snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x49267571 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x80c0bf68 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f85bfad snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xed08441d snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfe0bee71 snd_vx_suspend +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2379bcf0 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x23f5e86b amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x308723d0 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x34d4423b amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a7a3f5e cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3e1af574 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4b8324b6 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5147345f cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5b26a39f cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5ea01595 avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x714f98e1 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7d833be8 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7ea12902 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8651e8b0 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x98fc96fe fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9a438f26 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9baf9063 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9f8bb214 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa738c484 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xac6daf28 avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb08c3c6b cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb3ba54da amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb4d25995 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb6702034 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe36600f3 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf0ef6205 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf290d6e8 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf337262b amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf8a14ff1 amdtp_stream_update +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x41a05c36 intel_nhlt_has_endpoint_type +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x66fd6169 intel_nhlt_ssp_endpoint_mask +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x99ed5e34 intel_nhlt_get_endpoint_blob +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x65a47011 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x71e7ef94 snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2bfae893 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4b3ef1c0 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x73553b0b snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8fa969e4 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa32c061f snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbc384c43 snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd9c76784 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xde18303a snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0d662b85 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x4b3554d1 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5396f1a1 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8bf3ecc8 snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbcf3e275 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xff9acdc6 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8ba7459c snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb88134bc snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbb421f65 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd3992eb0 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x8f14252a snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xe82f737f snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3f3e0a38 snd_cs8427_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x43e1e71b snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x695e5ed1 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x766d79f8 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8e8ab173 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfa87fdf4 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x03edd124 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2949df30 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x409968ba snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x45e3c0c2 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x5919b3cf snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x8f50e4d2 snd_i2c_probeaddr +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x06fe280b snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0e4b5ef8 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x45727381 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x565f33f1 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5c85ff85 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x67c70072 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8f8890ae snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9ecb4b71 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc0c06384 snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd7b82a10 snd_sbmixer_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x213b5723 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x269cc0ce snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x356d7851 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3a25602e snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d0c7b25 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x46058fcd snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ac54ea6 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5bc5fbeb snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7169994b snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87d7caa0 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x90da61b9 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9fffe162 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa7bdeed0 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa88bbdb9 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcea9cc4c snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf708ad9 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe2f899d0 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xf785a364 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1706875d snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x36a87e1e snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4948c867 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4a8d1975 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x519cfb6c snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x548105e3 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9d569fdb snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb17cb483 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbb61dea8 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1723ee0e snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x2abf0d09 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5c3b4a23 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1bf20baa oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b9f9329 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x37c8d367 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5043eb07 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58635ec5 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x72025d6c oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa4b25ac4 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa4d69aba oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa52d45c9 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb0336fd0 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb071e24c oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb40eb978 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd222f42a oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd76087ef oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xda269d67 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe409ca44 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe74c2e2f oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe75bb140 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf12e538f oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf408d026 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x008f5e61 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x2411e8b7 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x42a2041d snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8e40c0ee snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xde4b2e74 snd_trident_free_voice +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0xf2cc2cce acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x52f1413b snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xfc734124 snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x78029824 adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0x9bd9e623 wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x875613f3 pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0xffc47504 pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0xed2acb24 hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x1b183878 tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x5739bfb8 tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x7e6717e9 aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0xa3985ab4 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0xd1b82de3 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x34d7e6b9 aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xec4ed64a aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xa5758a49 wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xbbd8092f wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd094df47 wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xdf59587c wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xe2beca26 wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xffd315cb wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/snd-soc-core 0x196f096d snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soc/sof/amd/snd-sof-amd-renoir 0x5f6834e0 sof_renoir_ops +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x032d1f43 snd_sof_device_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x16685b72 sof_set_fw_state +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x18bc75bf snd_sof_dsp_update_bits64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1c767a3d snd_sof_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x27f0c5f0 snd_sof_ipc_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x30cc6567 sof_ipc_tx_message +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x323c8886 snd_sof_device_probe_completed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x368c6727 sof_debug_check_flag +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x41d0a834 snd_sof_load_firmware_memcpy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x44d546d7 snd_sof_device_shutdown +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4d537936 snd_sof_dsp_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x537b992f sof_machine_unregister +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x64cc06d7 sof_io_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6773fd26 sof_mailbox_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x68848271 snd_sof_runtime_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x749817e3 snd_sof_ipc_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x76fd9227 sof_io_write64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x7ea221c1 snd_sof_run_firmware +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x7fea33c3 snd_sof_device_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x800e8697 snd_sof_dsp_panic +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x817d08ad snd_sof_runtime_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x832e5685 sof_ipc_msg_data +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x8705ba2a sof_ipc_tx_message_no_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x884d1953 sof_io_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x890e7e95 snd_sof_dsp_update_bits_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x8c7f3d26 sof_mailbox_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x8fe769e9 snd_sof_complete +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x98161a47 snd_sof_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9a6d2035 sof_io_read64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9b50ec0e snd_sof_load_topology +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9f086b5c sof_stream_pcm_open +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa04ba548 sof_machine_check +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa065464e sof_block_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa376535b snd_sof_fw_unload +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xaca5be5c snd_sof_pcm_period_elapsed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xaca82e8b sof_dai_get_mclk +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xadf63b03 sof_pcm_dai_link_fixup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xb59216ae sof_machine_register +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xb798955d snd_sof_prepare +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xbd4f78c0 sof_set_stream_data_offset +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xbe2ef461 snd_sof_dsp_update_bits64_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xc074012a snd_sof_dsp_dbg_dump +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xc156cdda sof_dai_get_bclk +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xca1c28a3 snd_sof_load_firmware_raw +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xcc823e57 snd_sof_runtime_idle +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xceaa851e snd_sof_dsp_update_bits_forced +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd344e6c5 sof_widget_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe000f165 sof_widget_setup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe50f9e18 sof_print_oops_and_stack +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf057451c sof_stream_pcm_close +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf3eb76ad snd_sof_ipc_get_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf45f65d8 snd_sof_pci_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf4d18138 snd_sof_ipc_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf5641ab9 snd_sof_dsp_only_d0i3_compatible_stream_active +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf96b5c76 sof_block_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xfa947e10 snd_sof_handle_fw_exception +EXPORT_SYMBOL sound/soc/sof/snd-sof-utils 0xb51f7b50 snd_sof_create_page_table +EXPORT_SYMBOL sound/soundcore 0x421e1612 sound_class +EXPORT_SYMBOL sound/soundcore 0x45296e3a register_sound_special +EXPORT_SYMBOL sound/soundcore 0x5c3b4214 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 0xeb998add register_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xfd273c8c register_sound_mixer +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x023e4687 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6c6e3eee snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x779be739 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x98870d82 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9ce7cb76 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xdd6c8fec snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0eda33fa snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2a48197f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6517719f __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x914f3491 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9223e14b snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9adc8c44 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc59655e4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd28dc0da __snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x4d75e969 __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 0x00148653 vsnprintf +EXPORT_SYMBOL vmlinux 0x0027b5bc ip6_frag_next +EXPORT_SYMBOL vmlinux 0x00350790 pci_disable_device +EXPORT_SYMBOL vmlinux 0x004a368a devm_clk_put +EXPORT_SYMBOL vmlinux 0x0097a2e6 get_unmapped_area +EXPORT_SYMBOL vmlinux 0x00a4b044 amd_iommu_deactivate_guest_mode +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00ba154f mdiobus_read +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00e5ac30 ata_print_version +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0100e8b9 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x011bab86 prepare_creds +EXPORT_SYMBOL vmlinux 0x011f2a54 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0123ee9f i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x013f26ae dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x0164e020 set_nlink +EXPORT_SYMBOL vmlinux 0x01717372 scsi_done_direct +EXPORT_SYMBOL vmlinux 0x0171d21f vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device +EXPORT_SYMBOL vmlinux 0x017de3d5 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0x0182f1bc phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x018574a1 mb_cache_entry_delete +EXPORT_SYMBOL vmlinux 0x0188cd88 vme_alloc_consistent +EXPORT_SYMBOL vmlinux 0x018d1866 iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0x018e69da scsi_print_result +EXPORT_SYMBOL vmlinux 0x01950d5c neigh_direct_output +EXPORT_SYMBOL vmlinux 0x01a59837 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x01b59d4b md_finish_reshape +EXPORT_SYMBOL vmlinux 0x01b6865c xa_get_mark +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01dd3378 dma_resv_fini +EXPORT_SYMBOL vmlinux 0x0205b7c8 uart_match_port +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020d29e6 __d_drop +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x021e4e19 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x0228925f iowrite64_hi_lo +EXPORT_SYMBOL vmlinux 0x02293ac3 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x02297dd3 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x0236ad4a sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x023d09c4 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x023d1b90 wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x0248efd3 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x024b4e44 iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02985d7e vc_resize +EXPORT_SYMBOL vmlinux 0x02a7619a super_setup_bdi +EXPORT_SYMBOL vmlinux 0x02b065a1 napi_build_skb +EXPORT_SYMBOL vmlinux 0x02b1a324 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x02b8ab42 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x02c656b6 acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x02d24132 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x02eeec90 file_open_root +EXPORT_SYMBOL vmlinux 0x031b9447 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x031f6ab6 dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x0333512b scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x034a7baa dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x036072e9 key_link +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0362f9a8 __x86_indirect_thunk_r12 +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x0383a68f sock_no_listen +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03af00a1 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x03bd1b11 tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x03bf0e5a acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x03e485c9 touch_buffer +EXPORT_SYMBOL vmlinux 0x03e6b1c2 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x03ed0c12 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x03f5af94 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x03fbaef0 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04153554 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x04408e0f dm_register_target +EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x044a06df security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x045f3105 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x0474edef kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x04767a13 generic_update_time +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x04863e28 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x048dcdb9 devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x04bf61de get_tree_bdev +EXPORT_SYMBOL vmlinux 0x04c62fd7 __memset +EXPORT_SYMBOL vmlinux 0x04ce5cbe dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x04d0fbe3 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04eedfac gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x04f12fcb from_kuid +EXPORT_SYMBOL vmlinux 0x04f1ac9d flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x051d58e8 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x05201853 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x0522843e netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052487ee cfb_fillrect +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x054d54d3 __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x054ef4a8 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x055e77e8 jiffies_64 +EXPORT_SYMBOL vmlinux 0x05712ec5 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x059e1482 __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x059e7c12 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x05aa8932 __serio_register_port +EXPORT_SYMBOL vmlinux 0x05b5686a xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x05dd77ba jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x06052f8d __memmove +EXPORT_SYMBOL vmlinux 0x060ba97c gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0618aaa8 datagram_poll +EXPORT_SYMBOL vmlinux 0x061acf4e dev_mc_sync +EXPORT_SYMBOL vmlinux 0x061ad591 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x061db0a5 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0658134d add_watch_to_object +EXPORT_SYMBOL vmlinux 0x065c12b2 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x06940f22 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0x06962cc6 folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x069a2a10 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x06a86bc1 iowrite16 +EXPORT_SYMBOL vmlinux 0x06a906a2 sget +EXPORT_SYMBOL vmlinux 0x06bd88b5 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x06cd3ae5 __alloc_pages +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06d385d2 rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x06d539df devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x06ef232d mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x06f81260 param_ops_bint +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x0711dfd2 write_inode_now +EXPORT_SYMBOL vmlinux 0x072b2429 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x07371f48 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x0741073e blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x0745a981 xa_erase +EXPORT_SYMBOL vmlinux 0x0749acc5 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x075a40ab kernel_read +EXPORT_SYMBOL vmlinux 0x075ee7ae rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x0789873d thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x07932871 console_stop +EXPORT_SYMBOL vmlinux 0x0799cb75 xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x079a9468 pipe_unlock +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07a93c1a dev_addr_del +EXPORT_SYMBOL vmlinux 0x07adae0b tcp_init_sock +EXPORT_SYMBOL vmlinux 0x07aed0c2 d_genocide +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ceeac9 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x07f1523c irq_set_chip +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x08128e64 tcp_poll +EXPORT_SYMBOL vmlinux 0x08162c74 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x08190aaf __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0838c037 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x084416fd fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x0863dec1 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x0877b157 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x0884ed5e dget_parent +EXPORT_SYMBOL vmlinux 0x089a754e scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x08a578ca clk_add_alias +EXPORT_SYMBOL vmlinux 0x08f49a9b ip_check_defrag +EXPORT_SYMBOL vmlinux 0x09010efa __scsi_add_device +EXPORT_SYMBOL vmlinux 0x0915943a kset_unregister +EXPORT_SYMBOL vmlinux 0x092cf9a2 pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x092e26bf acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x0939a97b vme_lm_request +EXPORT_SYMBOL vmlinux 0x093acf0f pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x09526f7d give_up_console +EXPORT_SYMBOL vmlinux 0x095b5a2a pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x09691ec3 sg_miter_start +EXPORT_SYMBOL vmlinux 0x096a8fff bio_reset +EXPORT_SYMBOL vmlinux 0x096b8e23 iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x096db9a1 xen_alloc_ballooned_pages +EXPORT_SYMBOL vmlinux 0x09737de1 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x097af021 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x098b5f54 sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09902499 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x0998cc3c hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x09a3e731 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x09b84dd2 simple_write_begin +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09da0ba4 xa_set_mark +EXPORT_SYMBOL vmlinux 0x09e1bba3 padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x09ef5db1 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x09f51372 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0x0a0ebc08 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x0a1e2ec4 param_set_bint +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a1f4150 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x0a492cae set_disk_ro +EXPORT_SYMBOL vmlinux 0x0a564ad3 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x0a62e263 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7719a9 ptp_find_pin +EXPORT_SYMBOL vmlinux 0x0a84b15d zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x0a983b7e _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0a9e6cb7 add_to_pipe +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0ab387dd udp_read_sock +EXPORT_SYMBOL vmlinux 0x0abbd7fa serio_interrupt +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ae14e04 sock_no_getname +EXPORT_SYMBOL vmlinux 0x0af521f6 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x0b01e431 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0b18b64e __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x0b19b445 ioread8 +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b26b8c8 acpi_run_osc +EXPORT_SYMBOL vmlinux 0x0b2824ff jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x0b290ada dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x0b637410 cr4_update_irqsoff +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b775bdc udp_gro_complete +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0bb97ccc ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x0bbc8f38 nd_device_unregister +EXPORT_SYMBOL vmlinux 0x0bbfa78c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x0bc216ff jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bed36e0 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x0bfc1d1a check_zeroed_user +EXPORT_SYMBOL vmlinux 0x0c229b0b page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c262b3d mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0x0c2dd64a __netif_rx +EXPORT_SYMBOL vmlinux 0x0c3690fc _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0c3d6889 blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x0c3e0e73 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x0c41ff32 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x0c420ace kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0c45d5bb skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x0c575719 __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x0c5bb657 mmc_free_host +EXPORT_SYMBOL vmlinux 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL vmlinux 0x0c70bc3a devm_ioremap_np +EXPORT_SYMBOL vmlinux 0x0c7ef788 vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x0c7f24c7 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x0ca55ca9 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x0cb235f6 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x0cb3ac1e agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x0cc1cdb8 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x0cc4b4b6 crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x0cc9dc44 skb_dequeue +EXPORT_SYMBOL vmlinux 0x0cd2b001 __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x0cd95865 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0cec8e52 rt_dst_clone +EXPORT_SYMBOL vmlinux 0x0cfde473 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d0ca666 ps2_end_command +EXPORT_SYMBOL vmlinux 0x0d26e9c7 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x0d2a0bc5 crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x0d333b64 zstd_end_stream +EXPORT_SYMBOL vmlinux 0x0d532243 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x0d53c5eb __nd_driver_register +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5c37d9 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x0d729740 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x0d7b002d boot_cpu_data +EXPORT_SYMBOL vmlinux 0x0d88eeaf inet_sendpage +EXPORT_SYMBOL vmlinux 0x0dbb16ca ip_local_deliver +EXPORT_SYMBOL vmlinux 0x0dbfe917 _dev_notice +EXPORT_SYMBOL vmlinux 0x0dcfaaea devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x0dd9c782 tcf_classify +EXPORT_SYMBOL vmlinux 0x0e02395d ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x0e0d06cf sync_blockdev_range +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e1b800b wake_up_process +EXPORT_SYMBOL vmlinux 0x0e23b37f alloc_cpumask_var_node +EXPORT_SYMBOL vmlinux 0x0e251a99 open_exec +EXPORT_SYMBOL vmlinux 0x0e4262c6 __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x0e46876d unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x0e64b43f alloc_pages +EXPORT_SYMBOL vmlinux 0x0e6500f3 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x0e728345 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x0e9e5b7c __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0ea9ed74 devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x0eb3023d block_read_full_folio +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ebfb20e PageMovable +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0ecc4fce napi_gro_receive +EXPORT_SYMBOL vmlinux 0x0ece2c42 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x0ed05d2e set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x0ed38a0c file_update_time +EXPORT_SYMBOL vmlinux 0x0ed816cc tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x0f021ce7 __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x0f032bfe vme_slot_num +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f0b1993 nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x0f14a13e bdi_unregister +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f1ef7f1 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x0f301d0c kmalloc_caches +EXPORT_SYMBOL vmlinux 0x0f34abb8 __module_get +EXPORT_SYMBOL vmlinux 0x0f37ca89 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x0f630261 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x0f72f049 validate_slab_cache +EXPORT_SYMBOL vmlinux 0x0f7f81ed pci_choose_state +EXPORT_SYMBOL vmlinux 0x0f8237ef vme_master_mmap +EXPORT_SYMBOL vmlinux 0x0f843a95 is_nd_dax +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f9cbbed phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0x0fa725a2 update_devfreq +EXPORT_SYMBOL vmlinux 0x0fab1ab0 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fb5734f qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fe341f7 devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x0fe4bdba tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x0fefa14a phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x0ff80f59 zalloc_cpumask_var +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x100e8862 serio_bus +EXPORT_SYMBOL vmlinux 0x1022529e xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x102e4361 xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x102f6313 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x1036d008 dev_activate +EXPORT_SYMBOL vmlinux 0x103c2b2f tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x104ad94d tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0x1052a8c6 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x1055b9b6 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x1057a279 bsearch +EXPORT_SYMBOL vmlinux 0x105dd2a8 module_put +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x106c4175 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x10715d4b block_commit_write +EXPORT_SYMBOL vmlinux 0x1077071f pci_pme_active +EXPORT_SYMBOL vmlinux 0x107be0b0 percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x107c0a09 dev_mc_add +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x1086a6bf __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x10bb0aca __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x10f45869 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x10f57d97 get_user_pages_remote +EXPORT_SYMBOL vmlinux 0x10ff7cfe neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x113744e2 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x114e7d21 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x11554d9d devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x115a5f02 __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0x1163ab65 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x118763cb try_to_release_page +EXPORT_SYMBOL vmlinux 0x11a67b34 read_cache_folio +EXPORT_SYMBOL vmlinux 0x11b5409e __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x1200314d devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x1201b7e0 dump_skip_to +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1221c7e5 path_has_submounts +EXPORT_SYMBOL vmlinux 0x122823c4 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x123198f1 nd_region_release_lane +EXPORT_SYMBOL vmlinux 0x12362d9f cpu_info +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x125675de __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x125893ef reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x12657b71 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x1274b517 do_splice_direct +EXPORT_SYMBOL vmlinux 0x12788ead bio_init +EXPORT_SYMBOL vmlinux 0x129de49b jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x12b9d68f simple_get_link +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12d2884a inet_protos +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x13006eba refresh_frequency_limits +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 0x13331eec fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x1344d7e6 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x1351591c writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x136955bb netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x1380cc40 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x1389619c __max_die_per_package +EXPORT_SYMBOL vmlinux 0x138b2ca1 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x139f2189 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x13a43784 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x13af27ff config_item_get +EXPORT_SYMBOL vmlinux 0x13b60460 register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x13b8b369 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x13c49cc2 _copy_from_user +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d2edcc iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x141271bf acpi_dev_found +EXPORT_SYMBOL vmlinux 0x14195285 kill_litter_super +EXPORT_SYMBOL vmlinux 0x141ff642 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x14253c58 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x14254c74 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x142d1a09 mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x143e376f neigh_update +EXPORT_SYMBOL vmlinux 0x14411e0e padata_free +EXPORT_SYMBOL vmlinux 0x144605b7 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x145d9aee xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x1478ca70 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x1486ded2 dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x14894049 param_ops_byte +EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14cdfb46 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x14db2d4d skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1524a324 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x1536cb94 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x153c9249 __register_nls +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x154eb99b tcp_parse_options +EXPORT_SYMBOL vmlinux 0x155991a1 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x1567c145 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x157230c1 user_path_at_empty +EXPORT_SYMBOL vmlinux 0x158613e0 file_write_and_wait_range +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 0x15edb0cf tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x15f4ae57 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x160d0321 mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0x16286538 iowrite64be_lo_hi +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x16301b34 wrmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x16467f7b simple_lookup +EXPORT_SYMBOL vmlinux 0x1654b46e pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x167c5230 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x169938c1 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x16aeccd8 generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x16cdc340 acpi_get_table +EXPORT_SYMBOL vmlinux 0x16ce2f40 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x16d682f6 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x16dee44d dma_fence_init +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e66e66 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x16f17181 __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x1718b539 dma_pool_create +EXPORT_SYMBOL vmlinux 0x17248a2c mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x17257b93 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x173b8c46 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x17483e52 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x174d8faa sg_miter_next +EXPORT_SYMBOL vmlinux 0x174e785f neigh_xmit +EXPORT_SYMBOL vmlinux 0x175e33fb dma_spin_lock +EXPORT_SYMBOL vmlinux 0x1785146e pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x1793ad5b pci_write_config_word +EXPORT_SYMBOL vmlinux 0x17b21dfb pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x17b5a5c3 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x17be68ca acpi_clear_event +EXPORT_SYMBOL vmlinux 0x17cbdda8 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x17d70d45 init_net +EXPORT_SYMBOL vmlinux 0x17d7deb7 input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0x17eb0220 mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f813a9 __SCT__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0x17f8d63c agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x182220c6 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x184b6242 d_alloc +EXPORT_SYMBOL vmlinux 0x184e5bb3 param_set_ulong +EXPORT_SYMBOL vmlinux 0x18888d00 downgrade_write +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x18953562 __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x189c6c81 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x18a3baa9 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x191a48fa tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x191e29e4 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x192ea14f __SCT__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x1946328f filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x194a8a16 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x1953c958 mempool_create +EXPORT_SYMBOL vmlinux 0x19567d06 vfio_info_cap_shift +EXPORT_SYMBOL vmlinux 0x1956bb58 bioset_init +EXPORT_SYMBOL vmlinux 0x196bd99c devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x199f50aa tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x19a57df2 sk_dst_check +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19d200ec __SCT__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x19df99b9 acpi_finish_gpe +EXPORT_SYMBOL vmlinux 0x19e959ac vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x1a080981 file_ns_capable +EXPORT_SYMBOL vmlinux 0x1a0aa994 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x1a20e091 mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5cd6fa input_close_device +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a765c3b eth_header_parse +EXPORT_SYMBOL vmlinux 0x1a79c8e9 __x86_indirect_thunk_r13 +EXPORT_SYMBOL vmlinux 0x1a7a356a device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x1a869c23 xp_dma_map +EXPORT_SYMBOL vmlinux 0x1a991efd inet_csk_accept +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1aaaa1a4 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x1ac18226 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ac666ea mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b203df6 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x1b597b7a swake_up_all +EXPORT_SYMBOL vmlinux 0x1b5cc9d8 dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b717c3a unlock_new_inode +EXPORT_SYMBOL vmlinux 0x1b741296 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b908d85 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0x1b9f9434 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x1ba1793a bdi_alloc +EXPORT_SYMBOL vmlinux 0x1ba3d7b9 padata_free_shell +EXPORT_SYMBOL vmlinux 0x1ba59527 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bc094fd sock_wmalloc +EXPORT_SYMBOL vmlinux 0x1bc21800 __post_watch_notification +EXPORT_SYMBOL vmlinux 0x1bd59dbe vme_free_consistent +EXPORT_SYMBOL vmlinux 0x1bf8ab38 file_modified +EXPORT_SYMBOL vmlinux 0x1bfe6238 eth_get_headlen +EXPORT_SYMBOL vmlinux 0x1c05c0b7 devm_iounmap +EXPORT_SYMBOL vmlinux 0x1c191e7a jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x1c23b3aa dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x1c589708 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x1c626590 __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0x1c706406 get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x1c7a71bd register_quota_format +EXPORT_SYMBOL vmlinux 0x1ca527fa ioread64be_hi_lo +EXPORT_SYMBOL vmlinux 0x1ca6bf0d netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x1cb11044 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x1cb95fc1 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x1cbe0ac8 vga_switcheroo_lock_ddc +EXPORT_SYMBOL vmlinux 0x1cca930c deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cd2c809 follow_down +EXPORT_SYMBOL vmlinux 0x1cd8438b pxm_to_node +EXPORT_SYMBOL vmlinux 0x1cec0af1 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x1cf726c8 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x1d07e365 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x1d0b6503 simple_getattr +EXPORT_SYMBOL vmlinux 0x1d1002b8 dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x1d173b62 tcp_connect +EXPORT_SYMBOL vmlinux 0x1d19f77b physical_mask +EXPORT_SYMBOL vmlinux 0x1d1abdf0 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x1d24c881 ___ratelimit +EXPORT_SYMBOL vmlinux 0x1d25ca04 __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0x1d3b9de0 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x1d40b6f3 idr_for_each +EXPORT_SYMBOL vmlinux 0x1d4ede43 mpage_writepage +EXPORT_SYMBOL vmlinux 0x1d509809 single_release +EXPORT_SYMBOL vmlinux 0x1d5a74d0 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x1d5c83ee fifo_set_limit +EXPORT_SYMBOL vmlinux 0x1d6c6603 vme_irq_free +EXPORT_SYMBOL vmlinux 0x1d7d4028 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x1d810262 inode_insert5 +EXPORT_SYMBOL vmlinux 0x1d813aa1 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x1d9672bd fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x1d996936 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x1db423a3 ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1dbe4fcb con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1e0ccbd5 mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x1e0cd7fe acpi_detach_data +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e21a4f4 bdi_put +EXPORT_SYMBOL vmlinux 0x1e436164 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x1e44d861 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x1e496378 genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x1e4bb4bb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x1e6adaa0 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e78ffe9 migrate_vma_pages +EXPORT_SYMBOL vmlinux 0x1e9deeeb __SCK__tp_func_write_msr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea6954f scm_detach_fds +EXPORT_SYMBOL vmlinux 0x1ead0716 crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x1eb922a3 IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1edaef11 xen_alloc_unpopulated_pages +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1edc5746 ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x1ee8efd3 generic_write_checks +EXPORT_SYMBOL vmlinux 0x1f1821ae efi +EXPORT_SYMBOL vmlinux 0x1f199d24 copy_user_generic_string +EXPORT_SYMBOL vmlinux 0x1f2b778a xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x1f2f577d sk_capable +EXPORT_SYMBOL vmlinux 0x1f310851 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x1f32dfa3 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x1f35e935 xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x1f3b9e4d iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0x1f3ecff0 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x1f40a04c nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0x1f4bd1e8 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1f557414 gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x1f5953d6 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x1f64ad81 __put_user_ns +EXPORT_SYMBOL vmlinux 0x1f81e953 agp_bridge +EXPORT_SYMBOL vmlinux 0x1f88647e mmc_retune_release +EXPORT_SYMBOL vmlinux 0x1f8cc6af get_thermal_instance +EXPORT_SYMBOL vmlinux 0x1f95591d tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x1fa7fbdb tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x1fbb9298 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fbe6bd8 netdev_crit +EXPORT_SYMBOL vmlinux 0x1fc0cc7c intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0x1fc9f710 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200c7752 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x202941a9 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x20380c6e dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x2040ba77 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x20463df4 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x2050ec53 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x206c82bd iommu_dma_get_resv_regions +EXPORT_SYMBOL vmlinux 0x206d1670 bio_free_pages +EXPORT_SYMBOL vmlinux 0x20871ccb devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x20878a4c mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x20a02825 unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20ba4f3e rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0x20bcbe4f blake2s_compress +EXPORT_SYMBOL vmlinux 0x20cbb30a __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x20f55be4 mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0x211130c1 alloc_cpumask_var +EXPORT_SYMBOL vmlinux 0x21271fd0 copy_user_enhanced_fast_string +EXPORT_SYMBOL vmlinux 0x212afb08 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x213ea176 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x214369bb __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x21451a36 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x214c8611 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x215f2f98 dma_supported +EXPORT_SYMBOL vmlinux 0x2177bd71 acpi_disable_event +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x21967acd request_key_tag +EXPORT_SYMBOL vmlinux 0x21a1be17 netdev_warn +EXPORT_SYMBOL vmlinux 0x21aa74c3 vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21cd22f4 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x21d9443b md_update_sb +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21ede360 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x21ef374c try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x21f91cf7 get_fs_type +EXPORT_SYMBOL vmlinux 0x2204d007 kset_register +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2234b3c0 dec_node_page_state +EXPORT_SYMBOL vmlinux 0x2234ca51 acpi_match_platform_list +EXPORT_SYMBOL vmlinux 0x223f7624 __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x227c662f fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0x2286a9cc ip6_frag_init +EXPORT_SYMBOL vmlinux 0x2289ec98 pci_bus_type +EXPORT_SYMBOL vmlinux 0x228ccdad register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x229f7496 filp_open +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22dd594e pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x22de4931 amd_iommu_register_ga_log_notifier +EXPORT_SYMBOL vmlinux 0x22def2b5 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x22f36246 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x22f6ed91 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x22f7b0ad tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x232bf608 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x232f3767 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x23307cae pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0x23416b8e xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x2353fb62 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x235bb942 pid_task +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x236b7a08 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x237a0b5c __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x238dda41 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x2390bcb1 seq_release_private +EXPORT_SYMBOL vmlinux 0x23a546f3 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c2f56c serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x23cabbb1 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x23d726f0 blkdev_issue_zeroout +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 0x2414c8ef qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x24246a9f tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0x24260047 __sock_create +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2467a44f pci_remove_bus +EXPORT_SYMBOL vmlinux 0x246a7a32 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x2473a1b9 get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x24800a52 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x2497bf9b padata_do_parallel +EXPORT_SYMBOL vmlinux 0x249e2b4d dma_sync_wait +EXPORT_SYMBOL vmlinux 0x24ac35d2 d_lookup +EXPORT_SYMBOL vmlinux 0x24b17966 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x24b5668b generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x24b795b0 unlock_rename +EXPORT_SYMBOL vmlinux 0x24c1ee2e __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x24c7d1b8 d_path +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24f75ee9 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x2505bf18 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x251358da vfio_pin_pages +EXPORT_SYMBOL vmlinux 0x25140027 param_get_bool +EXPORT_SYMBOL vmlinux 0x25188716 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x25193bf0 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x2531a760 seq_lseek +EXPORT_SYMBOL vmlinux 0x25495436 mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x257fd673 blk_queue_split +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258a2c02 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x25974000 wait_for_completion +EXPORT_SYMBOL vmlinux 0x259ebc61 pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x25aed5d0 security_path_mknod +EXPORT_SYMBOL vmlinux 0x25c9f20a dev_set_threaded +EXPORT_SYMBOL vmlinux 0x25d63581 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x25db1577 do_trace_write_msr +EXPORT_SYMBOL vmlinux 0x25db657e wireless_spy_update +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x2609b8fc i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x260dd6ed dm_table_get_md +EXPORT_SYMBOL vmlinux 0x260efc19 proto_unregister +EXPORT_SYMBOL vmlinux 0x262217c9 vfs_get_tree +EXPORT_SYMBOL vmlinux 0x262eb00e request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x2636340f __break_lease +EXPORT_SYMBOL vmlinux 0x263a49e4 rproc_shutdown +EXPORT_SYMBOL vmlinux 0x263bd638 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263c3152 bcmp +EXPORT_SYMBOL vmlinux 0x26498f57 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x265c57c6 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x2664f77c complete_request_key +EXPORT_SYMBOL vmlinux 0x26829850 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x2693f223 sk_wait_data +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26f8f0b8 iowrite16be +EXPORT_SYMBOL vmlinux 0x26fae3e4 set_trace_device +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x27137b1f vfs_statfs +EXPORT_SYMBOL vmlinux 0x27179845 devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272a8933 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x273130e1 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x27440f85 nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x2747d756 key_invalidate +EXPORT_SYMBOL vmlinux 0x274ed081 bmap +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x277043c3 phy_attached_info +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x277660a4 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x277743eb skb_copy_and_hash_datagram_iter +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 0x278b4ed2 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x278edca2 mmc_release_host +EXPORT_SYMBOL vmlinux 0x27946106 pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0x27951563 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x279d57ed nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x27a78834 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x27a9e41b serio_close +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27becd30 fb_blank +EXPORT_SYMBOL vmlinux 0x27c68926 md_flush_request +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27ec6a8d pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x27f52b92 kobject_set_name +EXPORT_SYMBOL vmlinux 0x280566d2 flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281ed079 fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0x2831c71b unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x28395d93 udp_seq_stop +EXPORT_SYMBOL vmlinux 0x28447b99 set_capacity +EXPORT_SYMBOL vmlinux 0x284faa6b __x86_indirect_thunk_r11 +EXPORT_SYMBOL vmlinux 0x2864973e generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x28764294 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x287ee709 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x287f556a rproc_alloc +EXPORT_SYMBOL vmlinux 0x2890ae6f lookup_one_len +EXPORT_SYMBOL vmlinux 0x28a8b103 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x28ad8f3b pci_set_mwi +EXPORT_SYMBOL vmlinux 0x28be7571 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x28d14a93 simple_rename +EXPORT_SYMBOL vmlinux 0x28e09af1 iosf_mbi_available +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x29120220 would_dump +EXPORT_SYMBOL vmlinux 0x29163932 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x2932e6e7 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x29332499 __x86_indirect_thunk_rsi +EXPORT_SYMBOL vmlinux 0x2933a662 tty_port_open +EXPORT_SYMBOL vmlinux 0x294ced7d starget_for_each_device +EXPORT_SYMBOL vmlinux 0x295ed3a8 jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x29682afb ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x29691d4a cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x299f3bef eisa_bus_type +EXPORT_SYMBOL vmlinux 0x29a7b3a6 passthru_features_check +EXPORT_SYMBOL vmlinux 0x29ad8e33 x86_hyper_type +EXPORT_SYMBOL vmlinux 0x29c4f62c xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0x29d9cd71 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x29dc0f99 tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0x29dd54cd default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x29e13508 discard_new_inode +EXPORT_SYMBOL vmlinux 0x29e1e204 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x29f222ca simple_pin_fs +EXPORT_SYMBOL vmlinux 0x2a01c04a kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x2a0d416d neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a5aa8bd ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x2a633913 amd_iommu_device_info +EXPORT_SYMBOL vmlinux 0x2a6fa0d0 __SCT__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x2a78f0fa vlan_vid_del +EXPORT_SYMBOL vmlinux 0x2a8bcfc4 netlink_unicast +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2aa00e26 intel_scu_ipc_dev_update +EXPORT_SYMBOL vmlinux 0x2aa0843e mempool_resize +EXPORT_SYMBOL vmlinux 0x2aabcdc8 vmalloc_array +EXPORT_SYMBOL vmlinux 0x2aca24d1 devm_memremap +EXPORT_SYMBOL vmlinux 0x2add5747 tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0x2b07ceda devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x2b0820f7 ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0x2b2bd95b set_page_dirty +EXPORT_SYMBOL vmlinux 0x2b3482d0 put_fs_context +EXPORT_SYMBOL vmlinux 0x2b3fdd8f seq_putc +EXPORT_SYMBOL vmlinux 0x2b593aa8 gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x2b651796 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x2b67c267 get_task_cred +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b6f0962 __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x2b8ce5dd param_set_hexint +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2b9f98cc nlmsg_notify +EXPORT_SYMBOL vmlinux 0x2bb29041 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x2bb6099e dq_data_lock +EXPORT_SYMBOL vmlinux 0x2bd60ab9 acpi_reset +EXPORT_SYMBOL vmlinux 0x2bfdbce2 fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x2bfe1bb7 proc_symlink +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c47705f md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x2c541e7b radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x2c654162 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2c71fbfb proc_dobool +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c9bd133 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x2c9e4675 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x2ca838af inet_del_offload +EXPORT_SYMBOL vmlinux 0x2cabf2c4 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x2caf63d1 topology_phys_to_logical_die +EXPORT_SYMBOL vmlinux 0x2cc9f9aa pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top +EXPORT_SYMBOL vmlinux 0x2cd73f73 phy_read_paged +EXPORT_SYMBOL vmlinux 0x2cdc2fa1 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x2cdf87a1 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x2ce302f1 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x2ceb2d89 inet6_bind +EXPORT_SYMBOL vmlinux 0x2cf845f0 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x2d0481dd t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d192c70 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x2d2af90e register_key_type +EXPORT_SYMBOL vmlinux 0x2d2f4921 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d339df2 flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d3a2ea1 d_instantiate_new +EXPORT_SYMBOL vmlinux 0x2d429dca security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d671779 sk_common_release +EXPORT_SYMBOL vmlinux 0x2d735aa7 __tracepoint_write_msr +EXPORT_SYMBOL vmlinux 0x2d873da3 dma_fence_describe +EXPORT_SYMBOL vmlinux 0x2d912bca dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2dbb66c6 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df30569 component_match_add_release +EXPORT_SYMBOL vmlinux 0x2e0b1deb dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x2e11d900 skb_copy_header +EXPORT_SYMBOL vmlinux 0x2e1c557f fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e3bcce2 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x2e4235ae bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x2e4a1179 deactivate_super +EXPORT_SYMBOL vmlinux 0x2e587f87 vga_con +EXPORT_SYMBOL vmlinux 0x2e5cf195 genl_register_family +EXPORT_SYMBOL vmlinux 0x2e5fe036 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x2e60e339 nd_device_notify +EXPORT_SYMBOL vmlinux 0x2e7d6666 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x2e7d9f97 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x2e7e8afa serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2ec744aa inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x2ecc3249 truncate_setsize +EXPORT_SYMBOL vmlinux 0x2ecf2b90 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x2ed852ac inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x2ee34e3f key_revoke +EXPORT_SYMBOL vmlinux 0x2ee4c2b1 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x2eeee156 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x2ef9e8d6 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f20e42e tty_write_room +EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f416eda max8998_write_reg +EXPORT_SYMBOL vmlinux 0x2f477ad1 register_netdevice +EXPORT_SYMBOL vmlinux 0x2f4c4e1d blk_finish_plug +EXPORT_SYMBOL vmlinux 0x2f543525 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x2f5e24bb tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x2f6284f6 sync_file_create +EXPORT_SYMBOL vmlinux 0x2f6edff2 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2fa8d305 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x2fce7aea ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0x2fd08c64 may_umount +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ffde1b6 make_kprojid +EXPORT_SYMBOL vmlinux 0x300e613e pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x301145c0 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x301304c2 __get_user_nocheck_8 +EXPORT_SYMBOL vmlinux 0x301d9131 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x30226dee lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x30356fda generic_ro_fops +EXPORT_SYMBOL vmlinux 0x304aa2cd netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x3059f1a7 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x305a916c __x86_indirect_thunk_rdi +EXPORT_SYMBOL vmlinux 0x305f2fb5 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x308dbbb7 pci_request_regions +EXPORT_SYMBOL vmlinux 0x308f7b9c dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x3099b5ae iterate_supers_type +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30a8d120 rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30b4c72d d_invalidate +EXPORT_SYMBOL vmlinux 0x30bf6789 tcp_seq_start +EXPORT_SYMBOL vmlinux 0x30c63bc6 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x30cdd19d inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x30d6ba0b pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x31143431 forget_cached_acl +EXPORT_SYMBOL vmlinux 0x311bbb57 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x313877c6 pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x313a7222 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x31549b2a __x86_indirect_thunk_r10 +EXPORT_SYMBOL vmlinux 0x31698cbf vm_event_states +EXPORT_SYMBOL vmlinux 0x318f0e93 set_anon_super +EXPORT_SYMBOL vmlinux 0x319a2e45 cdrom_release +EXPORT_SYMBOL vmlinux 0x319d493d proc_dostring +EXPORT_SYMBOL vmlinux 0x31c7b927 vfs_unlink +EXPORT_SYMBOL vmlinux 0x31ce2ebf mntget +EXPORT_SYMBOL vmlinux 0x31cf20b4 pps_register_source +EXPORT_SYMBOL vmlinux 0x31e633ac mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x31f3efba skb_eth_pop +EXPORT_SYMBOL vmlinux 0x31f592e8 napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x32011efc ppp_unit_number +EXPORT_SYMBOL vmlinux 0x321086fa filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x3213f038 mutex_unlock +EXPORT_SYMBOL vmlinux 0x32179cb3 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x323be6f0 dm_put_device +EXPORT_SYMBOL vmlinux 0x32523b8e dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x3262ea58 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x32771f1e tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x327aedca timestamp_truncate +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x3297b7ec dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x329d869d xp_can_alloc +EXPORT_SYMBOL vmlinux 0x329ef8dd regset_get_alloc +EXPORT_SYMBOL vmlinux 0x329f23b2 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x32ca8206 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32e6f1a0 acpi_video_backlight_string +EXPORT_SYMBOL vmlinux 0x32e73b5a skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x32e921b8 d_set_fallthru +EXPORT_SYMBOL vmlinux 0x331ead1e tcf_idr_search +EXPORT_SYMBOL vmlinux 0x3324ef3b acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x33295bb6 jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x3332fed4 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x33331578 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x33494223 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x335a9915 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x33718521 lock_rename +EXPORT_SYMBOL vmlinux 0x3371a3cf fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x33723ac4 ptp_clock_register +EXPORT_SYMBOL vmlinux 0x3373356c xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x33736a1d __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x33989c8e cdev_device_add +EXPORT_SYMBOL vmlinux 0x33a9ff4e dev_alloc_name +EXPORT_SYMBOL vmlinux 0x33ad43af pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x33b5481a neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33b997c1 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x33cced84 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x33d076b5 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x33d42d06 param_ops_short +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x33fd9da4 acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x3402dc8b __write_overflow_field +EXPORT_SYMBOL vmlinux 0x34039bb4 posix_lock_file +EXPORT_SYMBOL vmlinux 0x3423b294 __skb_checksum +EXPORT_SYMBOL vmlinux 0x3424daf8 __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x3441445f msrs_free +EXPORT_SYMBOL vmlinux 0x344b8d06 init_special_inode +EXPORT_SYMBOL vmlinux 0x346e8e71 config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x347d0a19 thaw_bdev +EXPORT_SYMBOL vmlinux 0x347e82e4 unpin_user_pages +EXPORT_SYMBOL vmlinux 0x3489859f acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x349b45b2 ipv4_dst_check +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a05340 pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x34a1f7e3 acpi_processor_get_psd +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34d5a4ee handle_edge_irq +EXPORT_SYMBOL vmlinux 0x34d73426 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x34db050b _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x34dbc6f6 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x34e79632 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f89363 acpi_terminate_debugger +EXPORT_SYMBOL vmlinux 0x34fe4430 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x350bdf20 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x350ea558 dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x350ffa2f sk_ns_capable +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3536cb84 iov_iter_revert +EXPORT_SYMBOL vmlinux 0x3536f0ed fasync_helper +EXPORT_SYMBOL vmlinux 0x35386140 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x354b4a1e acpi_ut_trace +EXPORT_SYMBOL vmlinux 0x3553cbb5 netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x355b7339 acpi_dev_get_first_match_dev +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x35658c2b filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x356dd422 simple_fill_super +EXPORT_SYMBOL vmlinux 0x3571ac9f __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x35789eee kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x357924a4 pci_release_region +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35d38a4c seq_path +EXPORT_SYMBOL vmlinux 0x35dc7665 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0x35dec58b set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3611e1de sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x3629368b nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x3642802d bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x364850b1 down_write_killable +EXPORT_SYMBOL vmlinux 0x3649391b agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x364c23ad mutex_is_locked +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x368c2f95 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x36975266 ilookup5 +EXPORT_SYMBOL vmlinux 0x36a9baa2 make_bad_inode +EXPORT_SYMBOL vmlinux 0x36b6ebbf down_killable +EXPORT_SYMBOL vmlinux 0x36c129ed security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x36c872d5 xp_free +EXPORT_SYMBOL vmlinux 0x36c9b71a ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x36ca193e pci_release_regions +EXPORT_SYMBOL vmlinux 0x36ceb8ea devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x36debb35 tty_register_device +EXPORT_SYMBOL vmlinux 0x36e6870a devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x36eae856 inet_add_offload +EXPORT_SYMBOL vmlinux 0x36ef75a8 proc_set_size +EXPORT_SYMBOL vmlinux 0x36f0408b xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x36f08731 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x36f419d1 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x3704f601 generic_write_end +EXPORT_SYMBOL vmlinux 0x370d309c generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x37110088 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x373052d2 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x373acd7d netif_schedule_queue +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x376bb9a3 skb_clone +EXPORT_SYMBOL vmlinux 0x3778c9e4 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x377c44bf rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x377d8004 acpi_error +EXPORT_SYMBOL vmlinux 0x378a9271 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0x378e4224 input_match_device_id +EXPORT_SYMBOL vmlinux 0x379c944f dst_discard_out +EXPORT_SYMBOL vmlinux 0x37b8b39e screen_info +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c75627 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x37c92f48 cdev_alloc +EXPORT_SYMBOL vmlinux 0x37db614b scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x380b7b78 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x381923db scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382c9e5e devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x38421367 rproc_boot +EXPORT_SYMBOL vmlinux 0x38516384 ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x385eca9b ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x386b0d26 pskb_extract +EXPORT_SYMBOL vmlinux 0x38846e5e phy_stop +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388aa3c9 neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x38919d0c vme_master_request +EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x389617b0 LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x389b688d nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38c5f50d tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x38dda5c6 path_put +EXPORT_SYMBOL vmlinux 0x38e46431 mempool_exit +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x38f64f6d seq_dentry +EXPORT_SYMBOL vmlinux 0x38f93f5e serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x39081193 __max_logical_packages +EXPORT_SYMBOL vmlinux 0x391a7956 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x391b3cb7 netdev_alert +EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x392b1fea wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x392d0ca3 device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x39560e3c security_sock_graft +EXPORT_SYMBOL vmlinux 0x3956b648 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x396852bf neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x396f329f free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x399bf5b5 blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x39a38d7f cfb_copyarea +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39bf3dae mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x39d2d147 find_vma +EXPORT_SYMBOL vmlinux 0x39d63eb3 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x39d95ca4 zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x39e3c030 do_trace_read_msr +EXPORT_SYMBOL vmlinux 0x39e5e83d bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a099605 __get_user_nocheck_4 +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a26ba6b input_register_device +EXPORT_SYMBOL vmlinux 0x3a2d1dfa rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x3a2f421c vfs_ioctl +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a48f71a __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a5dee8c blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x3a6c1a89 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x3a7fd720 tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x3a8b26f1 pci_match_id +EXPORT_SYMBOL vmlinux 0x3a92d209 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x3a98dafa tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x3ab0aabe bdi_register +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ab8a07e dma_free_attrs +EXPORT_SYMBOL vmlinux 0x3aba7076 tcp_close +EXPORT_SYMBOL vmlinux 0x3aca0190 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x3ad1b33a __dquot_alloc_space +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 0x3ae34aeb zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x3aef7b0b fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x3aff3200 acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x3b029f48 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x3b1ee809 register_cdrom +EXPORT_SYMBOL vmlinux 0x3b20fb95 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x3b25dc9f inet_bind +EXPORT_SYMBOL vmlinux 0x3b321462 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x3b48cece tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x3b5ac23c nonseekable_open +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b7216da vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x3b72f08d preempt_schedule_notrace_thunk +EXPORT_SYMBOL vmlinux 0x3b83610f cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x3b8c1b3e sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x3b9144c9 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x3b963636 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x3b993176 dquot_commit +EXPORT_SYMBOL vmlinux 0x3bd53c92 nd_pfn_probe +EXPORT_SYMBOL vmlinux 0x3be649ba __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3bfaedd6 kobject_add +EXPORT_SYMBOL vmlinux 0x3c0a8bb1 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c2a7cbf fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x3c30015b sock_no_linger +EXPORT_SYMBOL vmlinux 0x3c35222f mdio_device_free +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c427f67 cpu_die_map +EXPORT_SYMBOL vmlinux 0x3c44efa9 folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x3c5acdeb twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x3c6b05cd inet_addr_type +EXPORT_SYMBOL vmlinux 0x3c783d06 nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x3ca1dcbc ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x3ca80dfa tcp_filter +EXPORT_SYMBOL vmlinux 0x3cac9f41 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3cbb940b zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x3cbbd0e8 genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0x3ccbc577 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x3ccf6170 nd_pfn_validate +EXPORT_SYMBOL vmlinux 0x3ce33c34 mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cef72fe devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0x3cf90a7f genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x3d02cd70 dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x3d032861 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x3d0840c5 bpf_map_get +EXPORT_SYMBOL vmlinux 0x3d14ee3b acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x3d1f936c skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x3d1f9e40 ppp_input_error +EXPORT_SYMBOL vmlinux 0x3d210724 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x3d25a7d8 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x3d350637 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x3d6b54dd scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x3d756983 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x3d926f23 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3da2d2fc generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3dba6d47 netdev_offload_xstats_push_delta +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 0x3deada04 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x3dfb86b9 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x3dfbb9f7 tcp_prot +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2aa14f __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x3e2e998f simple_unlink +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e4aedb6 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x3e548994 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0x3e710238 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x3e717f6b blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x3e788f0d mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x3e903a5a __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0x3e92d703 dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0x3e92ee20 unlock_buffer +EXPORT_SYMBOL vmlinux 0x3e992293 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x3eb6afca cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x3ed5c4de ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x3eeb2322 __wake_up +EXPORT_SYMBOL vmlinux 0x3ef22213 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f01ffd7 security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x3f062664 stop_tty +EXPORT_SYMBOL vmlinux 0x3f0d6e85 task_work_add +EXPORT_SYMBOL vmlinux 0x3f0eabd2 xxh64_update +EXPORT_SYMBOL vmlinux 0x3f0f196c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x3f13f8ed kill_block_super +EXPORT_SYMBOL vmlinux 0x3f1584d8 proc_create +EXPORT_SYMBOL vmlinux 0x3f317a74 block_truncate_page +EXPORT_SYMBOL vmlinux 0x3f34644d zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x3f42280a inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f45c31b md_error +EXPORT_SYMBOL vmlinux 0x3f4bd846 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x3f6934f9 netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0x3f785a23 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3f893d2e configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x3f9cd3d6 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x3fa1adad skb_pull +EXPORT_SYMBOL vmlinux 0x3fafb417 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set +EXPORT_SYMBOL vmlinux 0x3fc25fac flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fda2884 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3feb3350 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x3ffa9c8e amd_iommu_domain_clear_gcr3 +EXPORT_SYMBOL vmlinux 0x40013904 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x40152c6f bio_uninit +EXPORT_SYMBOL vmlinux 0x4018bfbc netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x401a9352 configfs_register_group +EXPORT_SYMBOL vmlinux 0x40235c98 _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x4023a94b mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x402f9c00 __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x404a9c3f bio_split +EXPORT_SYMBOL vmlinux 0x4055a920 acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x405a89dd generic_permission +EXPORT_SYMBOL vmlinux 0x405c9ca9 i2c_transfer +EXPORT_SYMBOL vmlinux 0x4064d126 dump_emit +EXPORT_SYMBOL vmlinux 0x406a5b58 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x407b8c74 fs_param_is_path +EXPORT_SYMBOL vmlinux 0x4093ac9c tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40afd0fd cdev_device_del +EXPORT_SYMBOL vmlinux 0x40c1c3bf copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40cfc7a8 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d0a0fc __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x40d49f47 config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40d82c19 rtc_add_group +EXPORT_SYMBOL vmlinux 0x40f76a86 __vcalloc +EXPORT_SYMBOL vmlinux 0x40ff8a53 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x4109e8de pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x4128a8b2 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x412e2896 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x41354085 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x4140dd43 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414b9a85 md_bitmap_free +EXPORT_SYMBOL vmlinux 0x415170ea _dev_printk +EXPORT_SYMBOL vmlinux 0x41604a44 fb_find_mode +EXPORT_SYMBOL vmlinux 0x417e9ddc blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419de8cc agp_copy_info +EXPORT_SYMBOL vmlinux 0x41aae3b0 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x41c7b992 kernel_listen +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41cdc140 __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x41e4267a __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x41ed3709 get_random_bytes +EXPORT_SYMBOL vmlinux 0x41efdeaf radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x41fd828e pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x422b1bbe vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x422f3870 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x42354e0b tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x42431a3d flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type +EXPORT_SYMBOL vmlinux 0x4263df3a inet_accept +EXPORT_SYMBOL vmlinux 0x4281cc63 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x429e84cd nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0x42a53c19 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x42ad3450 fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x42b30c7d skb_ext_add +EXPORT_SYMBOL vmlinux 0x42bcc3d3 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x42bed8d4 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x42c8563c shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x42d4e1c4 con_is_visible +EXPORT_SYMBOL vmlinux 0x42f04756 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4307893b config_group_find_item +EXPORT_SYMBOL vmlinux 0x43102808 set_cached_acl +EXPORT_SYMBOL vmlinux 0x4311a3f9 migrate_page +EXPORT_SYMBOL vmlinux 0x4315dca9 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0x4318fe30 blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x431f4d5b devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x433439ec __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x4336fcca ucs2_as_utf8 +EXPORT_SYMBOL vmlinux 0x433cabfb acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x4350a85c nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x438098b9 security_sb_remount +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43955f45 nobh_write_end +EXPORT_SYMBOL vmlinux 0x439af369 devm_free_irq +EXPORT_SYMBOL vmlinux 0x43b0c9c3 preempt_schedule +EXPORT_SYMBOL vmlinux 0x43b1850f flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x43b24674 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x43c5404d param_ops_hexint +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43d66bc7 tso_count_descs +EXPORT_SYMBOL vmlinux 0x43db88fd scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x4402801f tcf_block_put +EXPORT_SYMBOL vmlinux 0x4406cb73 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x4413a1f0 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x441ba2f3 submit_bh +EXPORT_SYMBOL vmlinux 0x441e93c4 to_nd_pfn +EXPORT_SYMBOL vmlinux 0x442135d3 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x4424b306 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x444125da unlock_page +EXPORT_SYMBOL vmlinux 0x44414ff2 iosf_mbi_unblock_punit_i2c_access +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x444827f0 d_delete +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x44709647 console_start +EXPORT_SYMBOL vmlinux 0x448423ac fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x44902cff acpi_enable_event +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x44a6848d __block_write_begin +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44b94b70 xen_free_ballooned_pages +EXPORT_SYMBOL vmlinux 0x44ba251d __nlmsg_put +EXPORT_SYMBOL vmlinux 0x44bcb6c9 pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0x44bdfc1c dst_release +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f05be6 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x45006cee default_red +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x450aed17 input_register_handle +EXPORT_SYMBOL vmlinux 0x451d121a devfreq_add_device +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45535485 xxh32_update +EXPORT_SYMBOL vmlinux 0x4556cede input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x455c6bc8 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x456c7d85 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4595b86b sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x459cfe0f vfs_get_fsid +EXPORT_SYMBOL vmlinux 0x459f7efb __devm_release_region +EXPORT_SYMBOL vmlinux 0x45a702d6 vga_switcheroo_init_domain_pm_ops +EXPORT_SYMBOL vmlinux 0x45c0897e max8925_reg_read +EXPORT_SYMBOL vmlinux 0x45cbd6de __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x45d246da node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x45e8d7b5 native_write_cr0 +EXPORT_SYMBOL vmlinux 0x45fb3266 vfs_fadvise +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x4629334c __preempt_count +EXPORT_SYMBOL vmlinux 0x462c2788 unpin_user_page +EXPORT_SYMBOL vmlinux 0x46451cee zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46764577 genlmsg_put +EXPORT_SYMBOL vmlinux 0x467df16d netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x468f4d06 sock_i_ino +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x46b4dd6b is_nd_btt +EXPORT_SYMBOL vmlinux 0x46be0582 finish_no_open +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46cf10eb cachemode2protval +EXPORT_SYMBOL vmlinux 0x46cf956b mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x46dad34b iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x47070171 inode_io_list_del +EXPORT_SYMBOL vmlinux 0x4715a909 acpi_load_table +EXPORT_SYMBOL vmlinux 0x47306ba6 __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x4740b3bc xen_arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x47960bc4 proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x479af251 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47c7a6e2 dma_find_channel +EXPORT_SYMBOL vmlinux 0x47ca8c04 mmc_request_done +EXPORT_SYMBOL vmlinux 0x47cfd825 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x47d3a373 flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x47d8d301 __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x47e25d0f zero_fill_bio +EXPORT_SYMBOL vmlinux 0x47ffb211 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x4800abdd cdev_init +EXPORT_SYMBOL vmlinux 0x48112d76 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x48151f42 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481acd8c folio_write_one +EXPORT_SYMBOL vmlinux 0x481e2062 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x48302eaa pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4841ef9f no_llseek +EXPORT_SYMBOL vmlinux 0x4845641f param_get_byte +EXPORT_SYMBOL vmlinux 0x484620be sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x48476bcb intel_gtt_insert_page +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 0x486e9498 vfs_mknod +EXPORT_SYMBOL vmlinux 0x4871d75d clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x48726dbb devfreq_update_target +EXPORT_SYMBOL vmlinux 0x488b62b6 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x489449b6 pcim_iomap +EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48bedf65 first_ec +EXPORT_SYMBOL vmlinux 0x48c093fb _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x48c49727 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0x48c674e0 component_match_add_typed +EXPORT_SYMBOL vmlinux 0x48cd015e security_path_mkdir +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48d50e79 amd_iommu_register_ppr_notifier +EXPORT_SYMBOL vmlinux 0x48d88a2c __SCT__preempt_schedule +EXPORT_SYMBOL vmlinux 0x48db8cbf dev_trans_start +EXPORT_SYMBOL vmlinux 0x48dd39d7 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x48df499a page_mapping +EXPORT_SYMBOL vmlinux 0x48edc9f9 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x48f9fbf7 input_event +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49069872 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x49076e1e hmm_range_fault +EXPORT_SYMBOL vmlinux 0x4915f49a netdev_notice +EXPORT_SYMBOL vmlinux 0x4916a328 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x492557aa folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x49323817 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x4932e8ed skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x495e378d __pv_queued_spin_lock_slowpath +EXPORT_SYMBOL vmlinux 0x495e59b7 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x4967e79f radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x49720c72 msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x497a32bc folio_add_lru +EXPORT_SYMBOL vmlinux 0x497a7496 __tracepoint_read_msr +EXPORT_SYMBOL vmlinux 0x497bc2f4 agp_put_bridge +EXPORT_SYMBOL vmlinux 0x49990e48 param_set_ushort +EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49b692af inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x49c59499 __SCK__tp_func_rdpmc +EXPORT_SYMBOL vmlinux 0x49e055b5 scsi_device_put +EXPORT_SYMBOL vmlinux 0x49e2d7ed tcp_peek_len +EXPORT_SYMBOL vmlinux 0x49e3fb51 unregister_console +EXPORT_SYMBOL vmlinux 0x49fae8a5 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x4a00c11b generic_delete_inode +EXPORT_SYMBOL vmlinux 0x4a36562d kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x4a3ad70e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x4a453f53 iowrite32 +EXPORT_SYMBOL vmlinux 0x4a49237c kill_pid +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4abb7d10 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x4ad88317 zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x4ae55b14 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x4ae5634f blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x4aea463f crc32_le_shift +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4afb2238 add_wait_queue +EXPORT_SYMBOL vmlinux 0x4b0069f4 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x4b050694 dst_destroy +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b0d951f input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x4b118cd3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x4b2e32e7 update_region +EXPORT_SYMBOL vmlinux 0x4b3a8c01 device_add_disk +EXPORT_SYMBOL vmlinux 0x4b5e3a47 __get_user_nocheck_1 +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6df007 acpi_evaluate_reg +EXPORT_SYMBOL vmlinux 0x4b750f53 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x4b8097f4 input_set_capability +EXPORT_SYMBOL vmlinux 0x4ba9c7c4 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x4bb1349c configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0x4bcc2662 mempool_init_node +EXPORT_SYMBOL vmlinux 0x4bd078c4 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bf57f0e input_set_timestamp +EXPORT_SYMBOL vmlinux 0x4c07a7e0 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x4c236f6f __x86_indirect_thunk_r15 +EXPORT_SYMBOL vmlinux 0x4c2b8794 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x4c30a0c5 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x4c3e69cd scsi_remove_host +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c825562 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x4c9a2ae6 dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x4c9d28b0 phys_base +EXPORT_SYMBOL vmlinux 0x4ca2a179 unregister_key_type +EXPORT_SYMBOL vmlinux 0x4ca547c1 simple_open +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4ccab2fc mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x4ccc5a69 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x4cd5bc5e rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x4cd82952 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x4cf70956 dquot_destroy +EXPORT_SYMBOL vmlinux 0x4cfba04e netlink_capable +EXPORT_SYMBOL vmlinux 0x4d1cfa9d iget5_locked +EXPORT_SYMBOL vmlinux 0x4d2c7133 acpi_info +EXPORT_SYMBOL vmlinux 0x4d378f5f xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0x4d381eb8 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x4d4a6d5e vfio_unpin_pages +EXPORT_SYMBOL vmlinux 0x4d53e614 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4d5ce15b __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x4d924f20 memremap +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4db463be pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x4db7bc0a agp_find_bridge +EXPORT_SYMBOL vmlinux 0x4dca08ee sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x4dd53e07 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x4ddc2f95 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x4de80f2b fc_mount +EXPORT_SYMBOL vmlinux 0x4de995ec gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x4df02057 crc32_be +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4dfa6234 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x4dfa8d4b mutex_lock +EXPORT_SYMBOL vmlinux 0x4dffff92 iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x4e09c077 sget_fc +EXPORT_SYMBOL vmlinux 0x4e0f6fe4 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x4e20bcf8 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x4e332902 nla_append +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e3b2eb3 kernel_bind +EXPORT_SYMBOL vmlinux 0x4e433860 __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x4e4f0f16 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x4e547048 __kmalloc_node_track_caller +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e4b41 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4ea0b0bf blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4ec2c818 napi_disable +EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x4ecb8b59 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x4ed4e3f3 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x4ee94ef3 tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x4ef6e9b6 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x4f066596 phy_write_mmd +EXPORT_SYMBOL vmlinux 0x4f0bda34 inet_put_port +EXPORT_SYMBOL vmlinux 0x4f1758a4 devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f204e5c iterate_fd +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f48f876 key_unlink +EXPORT_SYMBOL vmlinux 0x4f4bad6a __udp_disconnect +EXPORT_SYMBOL vmlinux 0x4f55166f acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x4f57deb6 inet6_offloads +EXPORT_SYMBOL vmlinux 0x4f5f0a95 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x4f62d39a rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x4f709989 security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x4f711f84 intel_scu_ipc_dev_iowrite8 +EXPORT_SYMBOL vmlinux 0x4f8103c2 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0x4f8169e0 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x4f860a68 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x4f8789b3 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x4f8fad99 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x4fa8f1f1 param_ops_int +EXPORT_SYMBOL vmlinux 0x4faa392c param_set_int +EXPORT_SYMBOL vmlinux 0x4fc8c7db remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fecb656 netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x4ffe2bd4 user_path_create +EXPORT_SYMBOL vmlinux 0x50000d20 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x50019eba neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x5001b798 __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x50057b0a tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x5006ce1e pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x50157fcc address_space_init_once +EXPORT_SYMBOL vmlinux 0x501d1beb vfio_register_notifier +EXPORT_SYMBOL vmlinux 0x5021bd81 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5027bde2 acpi_acquire_mutex +EXPORT_SYMBOL vmlinux 0x50344b83 genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x50591365 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x5092e84e __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50a4726b nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50be1442 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50c32f95 skb_trim +EXPORT_SYMBOL vmlinux 0x50cf7585 hex2bin +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50e7ff52 find_inode_rcu +EXPORT_SYMBOL vmlinux 0x50e958b2 follow_pfn +EXPORT_SYMBOL vmlinux 0x50ea87d5 __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x50ebdc0d close_fd_get_file +EXPORT_SYMBOL vmlinux 0x50f91491 __genradix_ptr +EXPORT_SYMBOL vmlinux 0x51001993 __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x5102a30b do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x5119b2fa vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x5132437f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x515083bf acpi_release_mutex +EXPORT_SYMBOL vmlinux 0x51570457 locks_delete_block +EXPORT_SYMBOL vmlinux 0x515dab82 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x5164d5b6 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x519f28e7 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x51a511eb _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x51c8c078 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x51cad0a7 unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51d4038f send_sig_info +EXPORT_SYMBOL vmlinux 0x51f298e0 intel_scu_ipc_dev_ioread8 +EXPORT_SYMBOL vmlinux 0x521d4f20 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x5262b745 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x526eef2c hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5271034d fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x52781f1f nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x5283cdcf devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x52896007 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x529740e5 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x52983a4f vme_master_write +EXPORT_SYMBOL vmlinux 0x529fc9fb tcp_ioctl +EXPORT_SYMBOL vmlinux 0x52a62ea4 d_rehash +EXPORT_SYMBOL vmlinux 0x52a6e605 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x52ab0158 inc_node_page_state +EXPORT_SYMBOL vmlinux 0x52b41938 blk_put_queue +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52dcb85b __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x52df4164 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0x52ecbc75 crc_ccitt +EXPORT_SYMBOL vmlinux 0x53076dd4 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x5307c41c reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530ba382 pci_get_slot +EXPORT_SYMBOL vmlinux 0x53126ecc __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531df3ca security_path_rename +EXPORT_SYMBOL vmlinux 0x53212f2d iov_iter_npages +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x53569707 this_cpu_off +EXPORT_SYMBOL vmlinux 0x536eed0a genphy_loopback +EXPORT_SYMBOL vmlinux 0x536ff799 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x53a28702 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x53a6f462 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x53b954a2 up_read +EXPORT_SYMBOL vmlinux 0x53c65a09 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x53e197a6 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x53e87f33 __do_once_slow_done +EXPORT_SYMBOL vmlinux 0x5414d44c irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x54175c5f acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x541a6db8 module_layout +EXPORT_SYMBOL vmlinux 0x5437d888 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54582380 vma_set_file +EXPORT_SYMBOL vmlinux 0x545d9acd flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x547e3344 acpi_disable +EXPORT_SYMBOL vmlinux 0x54826348 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x548dd6fd xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x54a913ef blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54b22bb1 __SCT__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x54b50c61 __f_setown +EXPORT_SYMBOL vmlinux 0x54b53e37 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x54bf5e50 vm_map_pages +EXPORT_SYMBOL vmlinux 0x54d60297 phy_attach +EXPORT_SYMBOL vmlinux 0x54d7ee2f jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ea6dfe xen_start_flags +EXPORT_SYMBOL vmlinux 0x54f2cb6b audit_log_start +EXPORT_SYMBOL vmlinux 0x54faaa83 input_flush_device +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x55127462 pci_iomap +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551ff948 kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x55385e2e __x86_indirect_thunk_r14 +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x5552ec9f sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x55599ef7 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x556422b3 ioremap_cache +EXPORT_SYMBOL vmlinux 0x5568650e neigh_seq_start +EXPORT_SYMBOL vmlinux 0x556b5d62 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x556c779c __mdiobus_read +EXPORT_SYMBOL vmlinux 0x556cca46 x86_apple_machine +EXPORT_SYMBOL vmlinux 0x55774e5c tcp_seq_next +EXPORT_SYMBOL vmlinux 0x5581496d sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x55818191 udp_set_csum +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x559d2578 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x55a4189a dns_query +EXPORT_SYMBOL vmlinux 0x55a9a584 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55ec7f62 pci_irq_vector +EXPORT_SYMBOL vmlinux 0x55f95e07 ioremap_prot +EXPORT_SYMBOL vmlinux 0x55fba6aa pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0x56045761 __SetPageMovable +EXPORT_SYMBOL vmlinux 0x56078908 misc_register +EXPORT_SYMBOL vmlinux 0x560d0579 nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x56185aab security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x56227711 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x5629375c pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563d0f1d flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x56470118 __warn_printk +EXPORT_SYMBOL vmlinux 0x564e20cf pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x564f7608 acpi_reconfig_notifier_register +EXPORT_SYMBOL vmlinux 0x565fe66f key_alloc +EXPORT_SYMBOL vmlinux 0x5667cb9e xfrm_init_state +EXPORT_SYMBOL vmlinux 0x567b5751 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x56959889 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x56b8048f simple_rmdir +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d286bb sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x56d5af98 __skb_pad +EXPORT_SYMBOL vmlinux 0x56dad71a inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x56fc9504 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x570dd8da cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x571a2357 pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x572db0c4 iget_locked +EXPORT_SYMBOL vmlinux 0x573e210a __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x5752cf2f dentry_open +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x576d7dbf should_remove_suid +EXPORT_SYMBOL vmlinux 0x578110a1 __quota_error +EXPORT_SYMBOL vmlinux 0x578f8e95 bio_init_clone +EXPORT_SYMBOL vmlinux 0x57900416 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x579689f8 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x57a36e18 seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x57bc19d2 down_write +EXPORT_SYMBOL vmlinux 0x57be19db i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x57be8c78 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x57cc7165 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x57db8fd6 utf8_normalize +EXPORT_SYMBOL vmlinux 0x57e54bf7 secpath_set +EXPORT_SYMBOL vmlinux 0x57fcbe09 skb_pull_data +EXPORT_SYMBOL vmlinux 0x58034cb7 processors +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x5823a201 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x58284da1 simple_link +EXPORT_SYMBOL vmlinux 0x582b20a4 nf_log_packet +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583a5985 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x58556c77 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x5858a6b4 tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x5858f877 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x5861c3eb inet_offloads +EXPORT_SYMBOL vmlinux 0x5865d3d2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587f22d7 devmap_managed_key +EXPORT_SYMBOL vmlinux 0x5881132f flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x589031e2 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x58933a78 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x58a4c0ac eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58bdb80d d_exact_alias +EXPORT_SYMBOL vmlinux 0x58c36c14 cdev_add +EXPORT_SYMBOL vmlinux 0x58da21d9 finalize_exec +EXPORT_SYMBOL vmlinux 0x58e2f9a5 dev_get_flags +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58ea3dfa unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x58f82b1f vme_register_bridge +EXPORT_SYMBOL vmlinux 0x590ccc5f dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x591ab1ae tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x5934f8f5 acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x593edc4b cpu_tlbstate_shared +EXPORT_SYMBOL vmlinux 0x594321ba blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x594565bb dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59553883 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x595d8002 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5982325c prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x598f2eba inet_release +EXPORT_SYMBOL vmlinux 0x5994c673 input_free_device +EXPORT_SYMBOL vmlinux 0x599e26f7 netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x599f71ae skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x599fb41c kvmalloc_node +EXPORT_SYMBOL vmlinux 0x59a2f0ee packing +EXPORT_SYMBOL vmlinux 0x59b2be00 generic_fadvise +EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x59c203eb mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0x59cb52d5 tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x59f2e88f inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a137803 qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x5a282358 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x5a290250 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5a42b287 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x5a44f8cb __crypto_memneq +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a51dba6 amd_iommu_complete_ppr +EXPORT_SYMBOL vmlinux 0x5a5a2271 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x5a5a4a9f __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x5a6ea98c dev_uc_add +EXPORT_SYMBOL vmlinux 0x5a71a9f3 udplite_prot +EXPORT_SYMBOL vmlinux 0x5a8f7dae kill_anon_super +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a926877 __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5a99d2ae vfs_link +EXPORT_SYMBOL vmlinux 0x5aac2d7b i2c_verify_client +EXPORT_SYMBOL vmlinux 0x5abb6ed9 seq_puts +EXPORT_SYMBOL vmlinux 0x5ad80385 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5af40754 genphy_read_status +EXPORT_SYMBOL vmlinux 0x5b05a5db get_user_pages +EXPORT_SYMBOL vmlinux 0x5b1006c7 udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x5b2f27fb do_wait_intr +EXPORT_SYMBOL vmlinux 0x5b3e282f xa_store +EXPORT_SYMBOL vmlinux 0x5b452204 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b5b6e0c io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x5b628666 folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x5b641283 arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x5b6737b2 security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x5b74a3c4 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x5b8239ca __x86_return_thunk +EXPORT_SYMBOL vmlinux 0x5b93caf2 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x5ba27f9a tty_check_change +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be0e7d2 register_md_personality +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5bef9c09 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x5bff02d9 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x5c08438a sock_wake_async +EXPORT_SYMBOL vmlinux 0x5c1687df tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0x5c26a53b wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x5c376ac8 vm_map_ram +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c44fd31 netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x5c534ec0 flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x5c65e38b input_unregister_device +EXPORT_SYMBOL vmlinux 0x5c6dbf79 phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x5c6f5b2d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x5c8b8fc1 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x5c910989 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x5c929f02 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x5c978830 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x5cb70595 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x5cbcda32 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x5cda74e8 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cfb26a0 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x5d07b40d proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x5d0b1ffe netif_skb_features +EXPORT_SYMBOL vmlinux 0x5d1d6f6f remove_proc_entry +EXPORT_SYMBOL vmlinux 0x5d2a09db __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x5d32e961 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x5d39cca3 generic_write_checks_count +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d6efd1f pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x5d846224 ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0x5da60988 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x5da7caf0 vfs_iter_write +EXPORT_SYMBOL vmlinux 0x5db188db xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x5dc4996d pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x5dca6913 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x5dd0466b sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x5de78793 kobject_put +EXPORT_SYMBOL vmlinux 0x5dec7b9e __scm_send +EXPORT_SYMBOL vmlinux 0x5e06bc5c refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e0e0562 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x5e1d5eea super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x5e1e7427 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x5e332b52 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e497d10 __alloc_skb +EXPORT_SYMBOL vmlinux 0x5e4e9c41 tso_start +EXPORT_SYMBOL vmlinux 0x5e5f0a38 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0x5e5fdd54 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x5e6a04a9 rtc_add_groups +EXPORT_SYMBOL vmlinux 0x5e72a67d pci_dev_driver +EXPORT_SYMBOL vmlinux 0x5e855e56 gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x5e85d272 devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x5e8a36d3 __ip_options_compile +EXPORT_SYMBOL vmlinux 0x5e8ed4b8 skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9a01ce gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5eaca692 dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ebdf9dd __bio_advance +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5ee00861 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x5eea1571 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x5ef6a672 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x5efde8e6 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f13641a d_move +EXPORT_SYMBOL vmlinux 0x5f246a0e mdio_device_create +EXPORT_SYMBOL vmlinux 0x5f28d603 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f49dfe4 amd_iommu_domain_enable_v2 +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f56663b rdmsrl_on_cpu +EXPORT_SYMBOL vmlinux 0x5f63dd41 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x5f64f36a inet_shutdown +EXPORT_SYMBOL vmlinux 0x5f6b889c rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x5f7efd43 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x5f87a4a5 phy_init_eee +EXPORT_SYMBOL vmlinux 0x5f8e1ec3 tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x5f93525c acpi_extract_package +EXPORT_SYMBOL vmlinux 0x5f99383a ioread64_hi_lo +EXPORT_SYMBOL vmlinux 0x5fb4ccfe vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x5fc67252 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5fc72f0e alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fe13529 __SCT__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x5ff9eb0e lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6008689f kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x601674d9 sg_miter_skip +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6022e045 phy_find_first +EXPORT_SYMBOL vmlinux 0x6024b852 __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x602ef38e inet6_add_offload +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x604c570e phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x6050d9d5 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x605acb66 devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x607653ce udp_poll +EXPORT_SYMBOL vmlinux 0x607d1f59 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x608741b5 __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x608b760f cont_write_begin +EXPORT_SYMBOL vmlinux 0x608d0267 zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x6093f930 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b3071f neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x60bf33ee set_page_writeback +EXPORT_SYMBOL vmlinux 0x60c5d4df cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x60cc20d6 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x60d0b464 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0x60d75e6d scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x60db6e55 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x60e09158 put_watch_queue +EXPORT_SYMBOL vmlinux 0x60efab56 acpi_dev_hid_uid_match +EXPORT_SYMBOL vmlinux 0x61073e4a acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0x610825e4 dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x6124b040 phy_read_mmd +EXPORT_SYMBOL vmlinux 0x6124c239 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6131df02 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x6139d107 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x6142d6f7 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x614b7783 __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x614eaffa write_cache_pages +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x617bdedd input_set_abs_params +EXPORT_SYMBOL vmlinux 0x617c452b queued_read_lock_slowpath +EXPORT_SYMBOL vmlinux 0x6184b304 pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x61858991 mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x6185b747 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x61986b8e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x619dfcdc intel_scu_ipc_dev_readv +EXPORT_SYMBOL vmlinux 0x61ab2038 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x61b6a3c0 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d0853f get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61ebff79 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x61f255a1 posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x62141f0b mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6215c3b1 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x6215f9b1 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x6225e3ab devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x626e6210 vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x62727b22 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6276ec8a invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62851665 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x62855576 _copy_to_iter +EXPORT_SYMBOL vmlinux 0x628eac32 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x629079b3 dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x62949074 acpi_buffer_to_resource +EXPORT_SYMBOL vmlinux 0x62a89b6b simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x62af1038 phy_start +EXPORT_SYMBOL vmlinux 0x62b5b91a phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x62ca91b5 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x62cebee3 seq_open_private +EXPORT_SYMBOL vmlinux 0x62f7e207 down_read_killable +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x631837b1 new_inode +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x6326720e twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x632bbc36 eth_gro_receive +EXPORT_SYMBOL vmlinux 0x633b620e setattr_copy +EXPORT_SYMBOL vmlinux 0x636257f7 get_ibs_caps +EXPORT_SYMBOL vmlinux 0x6363eb1d pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x6372b48a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x63758621 cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0x6383b27c __x86_indirect_thunk_rdx +EXPORT_SYMBOL vmlinux 0x63a54900 __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63b18159 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63e9f23a mpage_read_folio +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ef1698 pci_map_rom +EXPORT_SYMBOL vmlinux 0x63f0498e jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x63f3a1ef skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x63f835ba on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x6415e8f5 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x642eb5c6 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x64485f0d mount_bdev +EXPORT_SYMBOL vmlinux 0x64633203 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x646bb98a __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x648861ab rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0x648a6b44 put_ipc_ns +EXPORT_SYMBOL vmlinux 0x648b3b42 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x648ea945 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x6490a34c vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64abbdc6 current_time +EXPORT_SYMBOL vmlinux 0x64b37983 from_kprojid +EXPORT_SYMBOL vmlinux 0x64ba2ab2 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64c617d1 folio_alloc +EXPORT_SYMBOL vmlinux 0x64d3627f fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x64de735d param_ops_ulong +EXPORT_SYMBOL vmlinux 0x64df672a dev_get_by_index +EXPORT_SYMBOL vmlinux 0x650d0ddb dev_add_pack +EXPORT_SYMBOL vmlinux 0x650d5722 scsi_partsize +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x65237f25 kern_unmount_array +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6542af93 napi_enable +EXPORT_SYMBOL vmlinux 0x65464c16 clkdev_drop +EXPORT_SYMBOL vmlinux 0x6547a0d9 setattr_prepare +EXPORT_SYMBOL vmlinux 0x65487097 __x86_indirect_thunk_rax +EXPORT_SYMBOL vmlinux 0x65526705 thaw_super +EXPORT_SYMBOL vmlinux 0x65572957 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x6565ebf8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x656c1a0e string_escape_mem +EXPORT_SYMBOL vmlinux 0x656db622 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x656e4a6e snprintf +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x6594db83 sock_pfree +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x659f6d47 poll_initwait +EXPORT_SYMBOL vmlinux 0x65a38110 eisa_driver_register +EXPORT_SYMBOL vmlinux 0x65b992ac xen_alloc_p2m_entry +EXPORT_SYMBOL vmlinux 0x65bb42bf dquot_free_inode +EXPORT_SYMBOL vmlinux 0x65bc783d pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x65c96622 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x65d1bab2 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x65d5d319 ppp_channel_index +EXPORT_SYMBOL vmlinux 0x65d6aeca tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65df35ca __put_user_nocheck_2 +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65e4707b padata_alloc +EXPORT_SYMBOL vmlinux 0x65f84745 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x661269a6 param_get_long +EXPORT_SYMBOL vmlinux 0x6622180d ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x6626afca down +EXPORT_SYMBOL vmlinux 0x662c58e6 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x6630b8cc twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x663182c9 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x6638614a rt6_lookup +EXPORT_SYMBOL vmlinux 0x6640b3f2 request_firmware +EXPORT_SYMBOL vmlinux 0x6657e9c6 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x66589d00 xsk_tx_release +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x667a58bf brioctl_set +EXPORT_SYMBOL vmlinux 0x667f5b64 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x66818ac6 dquot_alloc +EXPORT_SYMBOL vmlinux 0x668b19a1 down_read +EXPORT_SYMBOL vmlinux 0x66990c25 skb_queue_head +EXPORT_SYMBOL vmlinux 0x66a1db08 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x66aa3c50 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x66af1fd1 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x66b4cc41 kmemdup +EXPORT_SYMBOL vmlinux 0x66c29827 pipe_lock +EXPORT_SYMBOL vmlinux 0x66cca4f9 __x86_indirect_thunk_rcx +EXPORT_SYMBOL vmlinux 0x66de24db phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x66f8ac49 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x670ecece __x86_indirect_thunk_rbx +EXPORT_SYMBOL vmlinux 0x6720e02f qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x6721fc7c security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x6724736c no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x6726ee33 kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b2bda6 md_reload_sb +EXPORT_SYMBOL vmlinux 0x67b41d36 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c13ea0 acpi_read +EXPORT_SYMBOL vmlinux 0x67cf18f7 sock_efree +EXPORT_SYMBOL vmlinux 0x67d738e1 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x67df1a21 scmd_printk +EXPORT_SYMBOL vmlinux 0x6851664e wrmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688e72e1 __SCT__preempt_schedule_notrace +EXPORT_SYMBOL vmlinux 0x6894141b user_revoke +EXPORT_SYMBOL vmlinux 0x68a42224 napi_complete_done +EXPORT_SYMBOL vmlinux 0x68c4b824 cpumask_any_but +EXPORT_SYMBOL vmlinux 0x68cb03a9 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x68e79558 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x6903fb29 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x69049cd2 radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6926fc6d fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x69286b1f sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x6949bc14 fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0x69585523 __ksize +EXPORT_SYMBOL vmlinux 0x695cc8d6 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x69627ae1 sock_no_mmap +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x69713d52 key_task_permission +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697ed5f0 memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x6980f02e blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x699ea030 seq_read_iter +EXPORT_SYMBOL vmlinux 0x69a83edd scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x69acdf38 memcpy +EXPORT_SYMBOL vmlinux 0x69b49e17 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x69c278dc d_prune_aliases +EXPORT_SYMBOL vmlinux 0x69c69eff input_unregister_handler +EXPORT_SYMBOL vmlinux 0x69d53cbc posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x69d8058d pci_msix_vec_count +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 0x6a261b78 irq_stat +EXPORT_SYMBOL vmlinux 0x6a449c4f register_sysctl_table +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a795fb2 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x6a7d41c0 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x6a85fcef tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x6a920955 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6aa9fb0c take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x6ab7a6b8 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x6ac5ff9c generic_file_llseek +EXPORT_SYMBOL vmlinux 0x6ad2eb8d vme_register_driver +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae415fb get_watch_queue +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6af2eb17 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x6b10bee1 _copy_to_user +EXPORT_SYMBOL vmlinux 0x6b27729b radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x6b27a1fa netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x6b27c335 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b4b83cc __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b695cf1 zen_untrain_ret +EXPORT_SYMBOL vmlinux 0x6b7c952e devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b85d5d7 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x6b88ec6b __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcbb65e gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x6bce40fa try_module_get +EXPORT_SYMBOL vmlinux 0x6bd0e573 down_interruptible +EXPORT_SYMBOL vmlinux 0x6bd62fb0 peernet2id +EXPORT_SYMBOL vmlinux 0x6be1c1f8 acpi_install_method +EXPORT_SYMBOL vmlinux 0x6be45e91 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x6bf39610 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x6bff87e9 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x6c08cfd5 phy_do_ioctl +EXPORT_SYMBOL vmlinux 0x6c0f7a88 get_acl +EXPORT_SYMBOL vmlinux 0x6c224cda gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c283610 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x6c28be5a vfio_info_add_capability +EXPORT_SYMBOL vmlinux 0x6c36e2dd mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6c5b8dd7 page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0x6c5dae23 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c7154f6 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x6c81bf3f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x6c8f465c pnp_register_driver +EXPORT_SYMBOL vmlinux 0x6caca691 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x6cb2f5a1 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cb630e2 dst_release_immediate +EXPORT_SYMBOL vmlinux 0x6cc09945 ioread32_rep +EXPORT_SYMBOL vmlinux 0x6ccaf478 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x6cd1a61e skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x6cd3223e dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x6cdf7803 dev_set_alias +EXPORT_SYMBOL vmlinux 0x6cefc5e7 flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x6cf90d10 agp_bind_memory +EXPORT_SYMBOL vmlinux 0x6cfbeda1 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x6d054837 unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x6d16c104 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x6d1e4446 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x6d1fdf53 qdisc_put +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 0x6d375990 __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0x6d39856e neigh_destroy +EXPORT_SYMBOL vmlinux 0x6d461dc5 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x6d489647 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x6d58f69e agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0x6d5f5b91 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x6d6095f5 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x6d7a637d iov_iter_init +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d7fd0e5 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x6d8c2534 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x6d9f6d59 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x6da575dc phy_device_remove +EXPORT_SYMBOL vmlinux 0x6da92e7b dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x6da96328 netlink_set_err +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +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 0x6dded36f blk_execute_rq +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df806a3 phy_config_aneg +EXPORT_SYMBOL vmlinux 0x6dfe98f9 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x6e05813b prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x6e32e51d __devm_request_region +EXPORT_SYMBOL vmlinux 0x6e3ead5d iov_iter_zero +EXPORT_SYMBOL vmlinux 0x6e48d4c2 gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x6e521d19 vfs_get_link +EXPORT_SYMBOL vmlinux 0x6e5b8651 xz_dec_run +EXPORT_SYMBOL vmlinux 0x6e5e3851 input_allocate_device +EXPORT_SYMBOL vmlinux 0x6e5e40a2 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e83d8cb nobh_writepage +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea7575d acpi_dispatch_gpe +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6eb1e608 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x6ee7ea8b flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x6ee8a32f tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x6eeb7115 skb_append +EXPORT_SYMBOL vmlinux 0x6f026b2c dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x6f07bdac md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x6f148f19 fb_show_logo +EXPORT_SYMBOL vmlinux 0x6f2606d1 fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x6f29df22 logfc +EXPORT_SYMBOL vmlinux 0x6f2b705b nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x6f2f487b dcb_getapp +EXPORT_SYMBOL vmlinux 0x6f41a428 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x6f425036 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x6f4a59e4 sort_r +EXPORT_SYMBOL vmlinux 0x6f51ff2f fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x6f5992d0 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x6f5ab52f acpi_get_local_address +EXPORT_SYMBOL vmlinux 0x6f68538e filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x6f749d91 lease_modify +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f915a45 dqstats +EXPORT_SYMBOL vmlinux 0x6f9ad5b6 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x6fa3791d mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x6fbc6a00 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x6fbdbffd module_refcount +EXPORT_SYMBOL vmlinux 0x6fbfe805 pci_find_resource +EXPORT_SYMBOL vmlinux 0x6fc16f5d stream_open +EXPORT_SYMBOL vmlinux 0x6fcaab12 rtnl_notify +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd1906f pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fef841c jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x6ffca49f inode_set_flags +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x7005f7e1 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x7008a081 register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x700c1460 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen +EXPORT_SYMBOL vmlinux 0x703f0ced vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x7040fff9 rtc_lock +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x705806ca netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x7067bec2 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x706ef4af skb_unlink +EXPORT_SYMBOL vmlinux 0x7075bee6 jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0x70766e5d ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x70ad75fb radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x70cb7dda dev_remove_offload +EXPORT_SYMBOL vmlinux 0x70e7f0e4 inet_frags_init +EXPORT_SYMBOL vmlinux 0x71061512 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x71109d18 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712da75e to_nd_btt +EXPORT_SYMBOL vmlinux 0x71414925 rproc_put +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x716770ba pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71759e58 has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x7180998f input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x7187acde audit_log +EXPORT_SYMBOL vmlinux 0x718a4693 __SCT__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71ae8035 acpi_dev_get_next_match_dev +EXPORT_SYMBOL vmlinux 0x71cbab8b d_make_root +EXPORT_SYMBOL vmlinux 0x71d5b294 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x71dfc095 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x71e87d22 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x71fb182d page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0x720419c5 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x7227675e kernel_param_lock +EXPORT_SYMBOL vmlinux 0x7234c2ff ip6_dst_check +EXPORT_SYMBOL vmlinux 0x723dff33 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x725a31e3 _dev_crit +EXPORT_SYMBOL vmlinux 0x726bc3c7 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x7270eb83 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x72751fef insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x727b656e __napi_schedule +EXPORT_SYMBOL vmlinux 0x727b8fdc reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72d6562f in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x72d79d83 pgdir_shift +EXPORT_SYMBOL vmlinux 0x72de6d52 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f14ff7 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x72f99096 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731c4a9c dma_fence_signal +EXPORT_SYMBOL vmlinux 0x731dc189 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x7320ba47 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x73228cc1 config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x732c7517 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x733333fd phy_attach_direct +EXPORT_SYMBOL vmlinux 0x73437a0b kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x734be30d get_tree_nodev +EXPORT_SYMBOL vmlinux 0x73548a73 amd_iommu_domain_direct_map +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x735e6a81 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x73842d37 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x738d7fe4 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x739f845a twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x73aa3ed3 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73b6a36b tcp_time_wait +EXPORT_SYMBOL vmlinux 0x73bd1172 phy_validate_pause +EXPORT_SYMBOL vmlinux 0x73d86119 ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +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 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x745c46d8 fsync_bdev +EXPORT_SYMBOL vmlinux 0x746c52da seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x749653d9 nf_log_set +EXPORT_SYMBOL vmlinux 0x7496b281 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7499ecab skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x74adacbe tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x74b30374 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x74b34b5c kmem_cache_free +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74bd2887 km_state_expired +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c1c970 md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x74ca3b6a mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f2f9b4 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x7530bb0c __SCT__tp_func_write_msr +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754a9277 ip_do_fragment +EXPORT_SYMBOL vmlinux 0x754d539c strlen +EXPORT_SYMBOL vmlinux 0x755f4ba3 blake2s_compress_generic +EXPORT_SYMBOL vmlinux 0x75718ebb finish_open +EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x75943e25 i8253_lock +EXPORT_SYMBOL vmlinux 0x759e56a5 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x75a1e0a3 fwnode_graph_parse_endpoint +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 0x75fcdc76 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x76006f2b km_state_notify +EXPORT_SYMBOL vmlinux 0x76062cd4 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x761b5d20 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired +EXPORT_SYMBOL vmlinux 0x76438884 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x766b4f1c param_set_byte +EXPORT_SYMBOL vmlinux 0x7674696d pci_set_master +EXPORT_SYMBOL vmlinux 0x767dce4b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x769bdcd4 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x769d42e5 ip_frag_next +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76a52e2c pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x76b0a353 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d57387 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x76fb08a7 amd_iommu_unregister_ppr_notifier +EXPORT_SYMBOL vmlinux 0x771881db md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x771e3640 proc_create_data +EXPORT_SYMBOL vmlinux 0x77214ba3 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7724ef1c misc_deregister +EXPORT_SYMBOL vmlinux 0x77261c66 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource +EXPORT_SYMBOL vmlinux 0x77396456 blkdev_put +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x77457835 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x77467f87 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x775c866a pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x777a47ff override_creds +EXPORT_SYMBOL vmlinux 0x7780ea21 freeze_bdev +EXPORT_SYMBOL vmlinux 0x7786e021 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x7791a0f1 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x77a07848 dquot_file_open +EXPORT_SYMBOL vmlinux 0x77a615ba vm_node_stat +EXPORT_SYMBOL vmlinux 0x77b5970e __block_write_full_page +EXPORT_SYMBOL vmlinux 0x77b6f9c0 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c21423 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x77c303a6 qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x77d8457f filemap_fault +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77ea094d pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x7814e7f6 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x782e1bb9 kernel_accept +EXPORT_SYMBOL vmlinux 0x7835afa8 blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x786df506 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789a7db0 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78bd3d6f inet6_ioctl +EXPORT_SYMBOL vmlinux 0x78db6edf rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f1838e pci_scan_slot +EXPORT_SYMBOL vmlinux 0x78f5c260 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x79027bb4 get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x793b4af7 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x793ccbcd sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x794f41bf d_add +EXPORT_SYMBOL vmlinux 0x795c0aab uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x79605a62 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x7968a0da nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x79708a29 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x79711a60 __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x7993386f phy_get_pause +EXPORT_SYMBOL vmlinux 0x7993e254 param_get_charp +EXPORT_SYMBOL vmlinux 0x79960d37 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x79a33f85 vme_get_size +EXPORT_SYMBOL vmlinux 0x79bd06e5 tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x79c532fe truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x79d9c36d dquot_transfer +EXPORT_SYMBOL vmlinux 0x79df9633 ioremap_encrypted +EXPORT_SYMBOL vmlinux 0x79f87c53 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x7a08e219 pci_iounmap +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a1f6467 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0x7a2af7b4 cpu_number +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a51cd62 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x7a524d13 nd_btt_version +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a5dbc40 unregister_netdev +EXPORT_SYMBOL vmlinux 0x7a5fdc1b pci_save_state +EXPORT_SYMBOL vmlinux 0x7a6aa7e1 d_alloc_name +EXPORT_SYMBOL vmlinux 0x7a6c2377 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x7a826138 serio_rescan +EXPORT_SYMBOL vmlinux 0x7a88da87 iosf_mbi_write +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa219c3 vfs_fsync +EXPORT_SYMBOL vmlinux 0x7aa68b4a devm_release_resource +EXPORT_SYMBOL vmlinux 0x7ab87926 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac9d987 ipv4_specific +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7ae74947 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7af9a763 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x7aff77a3 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x7b13ce6f __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x7b3e47c7 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0x7b405e3b vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x7b4da6ff __init_rwsem +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b5c7c97 arp_tbl +EXPORT_SYMBOL vmlinux 0x7b81f465 netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x7b82b9a1 idr_replace +EXPORT_SYMBOL vmlinux 0x7b87772f jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7bb31ada icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x7bb50b88 acpi_write +EXPORT_SYMBOL vmlinux 0x7bbaf037 skb_seq_read +EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids +EXPORT_SYMBOL vmlinux 0x7bc04c17 skb_vlan_push +EXPORT_SYMBOL vmlinux 0x7bc452e8 convert_art_ns_to_tsc +EXPORT_SYMBOL vmlinux 0x7bcff47b phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x7bd5eb05 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x7bd6fd24 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7bdb331d tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x7be77e0f acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x7bf39db8 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x7bf50a84 __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x7c075601 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x7c1169c2 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c2a125a tty_port_put +EXPORT_SYMBOL vmlinux 0x7c3b6c59 kobject_get +EXPORT_SYMBOL vmlinux 0x7c429d3f dump_skip +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c558893 rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0x7c5a6665 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x7c63f349 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x7c68d7e8 tty_port_init +EXPORT_SYMBOL vmlinux 0x7c8225e5 configfs_depend_item +EXPORT_SYMBOL vmlinux 0x7c839eec sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7c8825f4 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x7c9569a1 arp_create +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7cd8d75e page_offset_base +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce58981 kvrealloc +EXPORT_SYMBOL vmlinux 0x7ce6e6ca mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x7cf35220 vme_master_free +EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x7d0b6dd3 simple_statfs +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 0x7d18065d jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0x7d1dab5c phy_write_paged +EXPORT_SYMBOL vmlinux 0x7d289dba ip_options_compile +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d56cffd free_buffer_head +EXPORT_SYMBOL vmlinux 0x7d5e1008 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x7d628444 memcpy_fromio +EXPORT_SYMBOL vmlinux 0x7d699551 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x7d6ceb4a agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0x7d74d522 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7db9265c submit_bio +EXPORT_SYMBOL vmlinux 0x7dbe2c4c fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dca1480 amd_iommu_flush_tlb +EXPORT_SYMBOL vmlinux 0x7dcf4135 __xa_insert +EXPORT_SYMBOL vmlinux 0x7dd2fbb7 mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df11397 phy_init_hw +EXPORT_SYMBOL vmlinux 0x7df7490b i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x7df8aa74 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x7dfc1363 pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x7e1bdda3 proto_register +EXPORT_SYMBOL vmlinux 0x7e2d339e __pci_register_driver +EXPORT_SYMBOL vmlinux 0x7e2e5a4a dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e33d7d1 path_is_under +EXPORT_SYMBOL vmlinux 0x7e4010f5 mount_subtree +EXPORT_SYMBOL vmlinux 0x7e4ab944 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x7e4fa6af nd_btt_probe +EXPORT_SYMBOL vmlinux 0x7e5d4646 wireless_send_event +EXPORT_SYMBOL vmlinux 0x7e63a9e3 vfs_readlink +EXPORT_SYMBOL vmlinux 0x7e6a3a64 fs_bio_set +EXPORT_SYMBOL vmlinux 0x7e727a12 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0x7e76b892 netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x7e76e194 __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x7e7bcf26 acpi_map_cpu +EXPORT_SYMBOL vmlinux 0x7eba4e6a begin_new_exec +EXPORT_SYMBOL vmlinux 0x7ebd3a58 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x7eccca15 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7ed4d5fd folio_end_writeback +EXPORT_SYMBOL vmlinux 0x7ed9f811 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x7ee0c140 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f07418b __SCT__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7f157f62 proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x7f2003f1 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f35abfb phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x7f39d516 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x7f3d152c of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x7f48b603 config_item_set_name +EXPORT_SYMBOL vmlinux 0x7f52071a net_dim +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f7c0ace sock_rfree +EXPORT_SYMBOL vmlinux 0x7f7c8f15 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7f9fe0f2 dev_mc_init +EXPORT_SYMBOL vmlinux 0x7fac44e2 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x7fc2776e fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe438c1 mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x7ffb3666 vfio_dma_rw +EXPORT_SYMBOL vmlinux 0x7ffe86b9 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x80216936 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x804af87c wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x805b7e14 ip6_output +EXPORT_SYMBOL vmlinux 0x806b21ee blackhole_netdev +EXPORT_SYMBOL vmlinux 0x80738cc9 bio_put +EXPORT_SYMBOL vmlinux 0x807a25a2 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x807a4d98 put_cmsg +EXPORT_SYMBOL vmlinux 0x8087cba3 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x809489b9 jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x809712ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x80a1b054 dev_driver_string +EXPORT_SYMBOL vmlinux 0x80a717a8 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x80bbc0c5 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x80c16aab pci_fixup_device +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80cfce20 bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x80d52beb mmc_can_trim +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d96aee noop_dirty_folio +EXPORT_SYMBOL vmlinux 0x80da4f73 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x80db0964 udp_prot +EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x810bef7e sg_free_append_table +EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x81188c30 match_string +EXPORT_SYMBOL vmlinux 0x812a89bd page_pool_create +EXPORT_SYMBOL vmlinux 0x8131babf skb_tx_error +EXPORT_SYMBOL vmlinux 0x8146be9a tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x8151811b iget_failed +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 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x819208c6 input_reset_device +EXPORT_SYMBOL vmlinux 0x81951c5a __do_once_done +EXPORT_SYMBOL vmlinux 0x819d4aac sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload +EXPORT_SYMBOL vmlinux 0x81a610f3 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x81a92fe4 cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x81ac5e33 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x81bad108 __find_get_block +EXPORT_SYMBOL vmlinux 0x81ce9941 intel_scu_ipc_dev_writev +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e1d9af genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x81e47b56 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81f1a8ce pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x821e7ede fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x82222982 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x823c19ea iosf_mbi_unregister_pmic_bus_access_notifier_unlocked +EXPORT_SYMBOL vmlinux 0x82541164 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x82615b59 serio_reconnect +EXPORT_SYMBOL vmlinux 0x8263a6d9 proc_douintvec +EXPORT_SYMBOL vmlinux 0x826a7984 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x827fbca2 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x8290ea84 xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x829529fd __scm_destroy +EXPORT_SYMBOL vmlinux 0x8296f02e param_set_ullong +EXPORT_SYMBOL vmlinux 0x82a11a62 proc_create_single_data +EXPORT_SYMBOL vmlinux 0x82a4e4ce pci_dev_get +EXPORT_SYMBOL vmlinux 0x82b5b719 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x82b8946f blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x82c15921 mmc_put_card +EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x82d61f5b page_readlink +EXPORT_SYMBOL vmlinux 0x82d7c9f5 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x82ff539b pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x8311da04 ps2_init +EXPORT_SYMBOL vmlinux 0x83187381 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x83278f01 blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x83356de7 kern_path_create +EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x835cee8a dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x8362d36b follow_up +EXPORT_SYMBOL vmlinux 0x837b7b09 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x837fccf1 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x83860c6d set_bh_page +EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x838de657 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x839a87d9 devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0x83cf97a2 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x83db44d9 devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x83faf14a __phy_resume +EXPORT_SYMBOL vmlinux 0x840342c6 sgl_free +EXPORT_SYMBOL vmlinux 0x840b5156 param_set_charp +EXPORT_SYMBOL vmlinux 0x8414dc85 agp_backend_release +EXPORT_SYMBOL vmlinux 0x841b187c configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x8427cc7b _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x842807cc phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x842c8e9d ioread16 +EXPORT_SYMBOL vmlinux 0x84374d5f blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x8449d565 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x8455e3a7 dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x84679cd7 fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x84823cf3 nla_strscpy +EXPORT_SYMBOL vmlinux 0x848d372e iowrite8 +EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x84af1ebd xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x84af2506 phy_device_free +EXPORT_SYMBOL vmlinux 0x84c03e9a rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x84c1ad08 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x84c1c552 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x84c4040c security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x84e937e2 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x84ed8c44 cad_pid +EXPORT_SYMBOL vmlinux 0x84efc895 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x84f3e65d dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x85082f2b mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x85149e0d __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x8518a4a6 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x8522d6bc strncpy_from_user +EXPORT_SYMBOL vmlinux 0x85412148 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x854a4111 reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857f96b2 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x858b3661 thread_group_exited +EXPORT_SYMBOL vmlinux 0x858db142 con_is_bound +EXPORT_SYMBOL vmlinux 0x8591d7d5 ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x85aa5576 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region +EXPORT_SYMBOL vmlinux 0x85bf91a1 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e1afe2 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x85e532a0 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn +EXPORT_SYMBOL vmlinux 0x8612eacf dput +EXPORT_SYMBOL vmlinux 0x8615ddc3 backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0x862610b0 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x86386715 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x863a276a color_table +EXPORT_SYMBOL vmlinux 0x8644506c param_get_uint +EXPORT_SYMBOL vmlinux 0x865b3458 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x866a62b2 gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x86852f87 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8691936c key_validate +EXPORT_SYMBOL vmlinux 0x86954c1e acpi_register_debugger +EXPORT_SYMBOL vmlinux 0x869621e0 tty_do_resize +EXPORT_SYMBOL vmlinux 0x86bb6b5a pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x86c7272b iosf_mbi_read +EXPORT_SYMBOL vmlinux 0x86d180b8 set_blocksize +EXPORT_SYMBOL vmlinux 0x86d1eaff simple_transaction_get +EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86db5ec9 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x86f27420 iosf_mbi_block_punit_i2c_access +EXPORT_SYMBOL vmlinux 0x86fb4536 cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x870246f7 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x87311bf3 phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x873afdb1 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x8740d4f4 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x875a2dc9 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x875c9bd3 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x8761a70d inode_update_time +EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed +EXPORT_SYMBOL vmlinux 0x8769a9a2 arp_xmit +EXPORT_SYMBOL vmlinux 0x87706d4e __put_user_nocheck_8 +EXPORT_SYMBOL vmlinux 0x87761528 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8779d661 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x8798f688 pv_ops +EXPORT_SYMBOL vmlinux 0x87a13722 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x87a21cb3 __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x87b8798d sg_next +EXPORT_SYMBOL vmlinux 0x87d3799c ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x87e4541a __kfree_skb +EXPORT_SYMBOL vmlinux 0x87f3904c netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x87f45924 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit +EXPORT_SYMBOL vmlinux 0x881c4413 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x8828b83e get_tz_trend +EXPORT_SYMBOL vmlinux 0x884b60d3 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x886e61d0 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x887dc451 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x88868746 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x8888f1fe xxh32 +EXPORT_SYMBOL vmlinux 0x888d54d5 bio_add_page +EXPORT_SYMBOL vmlinux 0x889a6c34 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x889b1370 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x88a28cab mmc_erase +EXPORT_SYMBOL vmlinux 0x88a9df6e security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x88bc200a dev_uc_flush +EXPORT_SYMBOL vmlinux 0x88d5bdea scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size +EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free +EXPORT_SYMBOL vmlinux 0x88f4cd80 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x89188669 read_cache_page +EXPORT_SYMBOL vmlinux 0x891e4a56 skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0x892ed037 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x89353d6c from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x893f80c5 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x89434b4b radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x89503068 zap_page_range +EXPORT_SYMBOL vmlinux 0x89699059 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x898b8104 ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x89940875 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x89a542f3 blk_get_queue +EXPORT_SYMBOL vmlinux 0x89d4b5de xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x89d7e6eb tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x89db9929 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x89dda643 register_netdev +EXPORT_SYMBOL vmlinux 0x89de0877 ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0x89de34a7 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x89e0af7c dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x89f0850c unix_attach_fds +EXPORT_SYMBOL vmlinux 0x89f3ffad get_agp_version +EXPORT_SYMBOL vmlinux 0x8a107ae9 eth_header +EXPORT_SYMBOL vmlinux 0x8a1d42e6 drop_super_exclusive +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 0x8a6513dd put_disk +EXPORT_SYMBOL vmlinux 0x8a67c883 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x8a6c7139 acpi_mask_gpe +EXPORT_SYMBOL vmlinux 0x8a6d3dd9 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa40f44 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x8ab7874c nf_reinject +EXPORT_SYMBOL vmlinux 0x8ac3334b net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x8ac743de sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x8ac8ec2a register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x8ad079d6 key_move +EXPORT_SYMBOL vmlinux 0x8ad94d08 d_add_ci +EXPORT_SYMBOL vmlinux 0x8ae21405 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x8af39c96 pci_get_device +EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x8b1636f6 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x8b2bd27a put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x8b3a2cd3 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x8b46f2ea dev_change_flags +EXPORT_SYMBOL vmlinux 0x8b600e46 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x8b6076f0 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6889f3 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x8b71d4f9 tc_setup_cb_reoffload +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 0x8bb5f4fa cros_ec_check_result +EXPORT_SYMBOL vmlinux 0x8bd577d0 acpi_ut_exit +EXPORT_SYMBOL vmlinux 0x8bed4e49 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x8bee73ff cdev_del +EXPORT_SYMBOL vmlinux 0x8c058ec2 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x8c182bf4 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x8c1f570d netif_tx_lock +EXPORT_SYMBOL vmlinux 0x8c2001be devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x8c201299 scsi_host_busy +EXPORT_SYMBOL vmlinux 0x8c2577bc pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x8c26d495 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x8c27d50d lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x8c30bf67 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x8c382daf __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x8c486989 d_obtain_root +EXPORT_SYMBOL vmlinux 0x8c5738c0 dev_get_stats +EXPORT_SYMBOL vmlinux 0x8c5adaaa xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x8c683fcd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8c6c832d vm_mmap +EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8c9e338f acpi_bios_error +EXPORT_SYMBOL vmlinux 0x8ca77193 file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x8ca84afa pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd502df devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cde01a7 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x8ce4a0d6 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x8cedb527 fs_lookup_param +EXPORT_SYMBOL vmlinux 0x8cf1f21a param_set_uint +EXPORT_SYMBOL vmlinux 0x8cfbcaa4 fget_raw +EXPORT_SYMBOL vmlinux 0x8d2a6f74 __brelse +EXPORT_SYMBOL vmlinux 0x8d411705 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x8d4b88d7 clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d60652c __SCT__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x8d6aff89 __put_user_nocheck_4 +EXPORT_SYMBOL vmlinux 0x8d7036ff skb_put +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d9a4526 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x8d9ca0e6 dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x8db22efe acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x8dd50171 seq_write +EXPORT_SYMBOL vmlinux 0x8dd7d374 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8ddedeb3 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x8de2d700 ip_defrag +EXPORT_SYMBOL vmlinux 0x8de79b18 ppp_input +EXPORT_SYMBOL vmlinux 0x8dee722d _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null +EXPORT_SYMBOL vmlinux 0x8e096382 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x8e17b3ae idr_destroy +EXPORT_SYMBOL vmlinux 0x8e21c9a1 dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x8e24744d phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0x8e2640f6 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x8e2c536a scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x8e321858 dcb_setapp +EXPORT_SYMBOL vmlinux 0x8e370618 devm_ioremap +EXPORT_SYMBOL vmlinux 0x8e3e0f7d fault_in_readable +EXPORT_SYMBOL vmlinux 0x8e43356b md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x8e5f80b2 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x8e663d0f zalloc_cpumask_var_node +EXPORT_SYMBOL vmlinux 0x8e752c89 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x8e8b1be0 folio_mark_accessed +EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x8ea13211 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x8eaaf09a jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x8eac47b0 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8ec86432 ping_prot +EXPORT_SYMBOL vmlinux 0x8ed5c97b pci_write_vpd +EXPORT_SYMBOL vmlinux 0x8edcc652 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x8ee4ca13 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x8ee8e8dc show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x8ef3ef23 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x8eff488e rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x8f01afd6 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x8f0a945f path_get +EXPORT_SYMBOL vmlinux 0x8f1c83a9 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x8f1ec76d __folio_alloc +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f2e31b8 sock_no_connect +EXPORT_SYMBOL vmlinux 0x8f2f4c47 dst_init +EXPORT_SYMBOL vmlinux 0x8f39cec1 elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x8f425dfd devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x8f4602d7 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x8f4ed987 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x8f6b56aa sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x8f77e376 ppp_unregister_compressor +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 0x8fb3c4d8 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x8fc142cd blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x8fcd9565 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x8fd66ef6 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x8fd7530d tcp_check_req +EXPORT_SYMBOL vmlinux 0x8fdb0752 abort_creds +EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x8ffa20fd __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x902b190c sk_stream_error +EXPORT_SYMBOL vmlinux 0x902d8722 vme_slave_get +EXPORT_SYMBOL vmlinux 0x9034a696 mempool_destroy +EXPORT_SYMBOL vmlinux 0x903ed205 get_tree_keyed +EXPORT_SYMBOL vmlinux 0x903f1006 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x905695ab sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x90576ec4 vmemdup_user +EXPORT_SYMBOL vmlinux 0x905d8ce4 devm_register_netdev +EXPORT_SYMBOL vmlinux 0x907ea00e set_security_override +EXPORT_SYMBOL vmlinux 0x909eb392 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x90b15b13 mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x90ba912b __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x90e273e2 cred_fscmp +EXPORT_SYMBOL vmlinux 0x90f1419e pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x90fad6bd pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x910a9621 I_BDEV +EXPORT_SYMBOL vmlinux 0x9114b616 __xa_alloc +EXPORT_SYMBOL vmlinux 0x911e3615 mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x914eb2f1 rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0x9155c5bc inode_add_bytes +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue +EXPORT_SYMBOL vmlinux 0x9176145b acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0x9179f6ef __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 +EXPORT_SYMBOL vmlinux 0x919f375a pcie_get_mps +EXPORT_SYMBOL vmlinux 0x91a10c61 intel_scu_ipc_dev_simple_command +EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x91e3f234 __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x91e77b10 proc_mkdir +EXPORT_SYMBOL vmlinux 0x91f2454b mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x91f44510 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x91f4d6a1 security_locked_down +EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x91f8477b inode_init_once +EXPORT_SYMBOL vmlinux 0x91fdd0f1 param_get_int +EXPORT_SYMBOL vmlinux 0x9200a19f input_copy_abs +EXPORT_SYMBOL vmlinux 0x921ae242 udp_seq_next +EXPORT_SYMBOL vmlinux 0x921e60dd ether_setup +EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x923afc9f devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92450df8 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x92540fbf finish_wait +EXPORT_SYMBOL vmlinux 0x92542d7a ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x92564aa9 mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0x9258c776 hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x925f1629 file_path +EXPORT_SYMBOL vmlinux 0x9276bf6c ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x92774cf8 __kfence_pool +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x928cd489 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x9290f41c fb_get_mode +EXPORT_SYMBOL vmlinux 0x92912a21 dev_uc_init +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92997ed8 _printk +EXPORT_SYMBOL vmlinux 0x92a51e56 acpi_debug_print_raw +EXPORT_SYMBOL vmlinux 0x92b5f2bc filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0x92b99a33 acpi_put_table +EXPORT_SYMBOL vmlinux 0x92b9b180 slash_name +EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq +EXPORT_SYMBOL vmlinux 0x92e683f5 down_timeout +EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x92f76fd7 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x92f832fe __bforget +EXPORT_SYMBOL vmlinux 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL vmlinux 0x93022ba6 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93120b94 netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x93222991 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x933c741d vme_irq_handler +EXPORT_SYMBOL vmlinux 0x93528354 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x935658f8 fput +EXPORT_SYMBOL vmlinux 0x9363ef8c sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x9364f25a flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x936fc7f5 pci_clear_master +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x937a4756 tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x93a66d15 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b6c7f4 flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0x93d6dd8c complete_all +EXPORT_SYMBOL vmlinux 0x93f38d0b dquot_operations +EXPORT_SYMBOL vmlinux 0x9404005d fwnode_iomap +EXPORT_SYMBOL vmlinux 0x940de849 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x941d8ae2 xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn +EXPORT_SYMBOL vmlinux 0x943cbc9b genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages +EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked +EXPORT_SYMBOL vmlinux 0x945adc23 scsi_host_put +EXPORT_SYMBOL vmlinux 0x946b036e netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x947583c8 vfs_create_mount +EXPORT_SYMBOL vmlinux 0x947b92d9 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x9487d3e1 ns_capable +EXPORT_SYMBOL vmlinux 0x9493fc86 node_states +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a4a6ad nd_integrity_init +EXPORT_SYMBOL vmlinux 0x94bb7ec3 gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x94c101b5 udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x94c2edb2 vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x94e50ad4 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x94ecf022 migrate_vma_finalize +EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x95263548 can_nice +EXPORT_SYMBOL vmlinux 0x952d5a34 kthread_stop +EXPORT_SYMBOL vmlinux 0x953031a7 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x953d2426 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc +EXPORT_SYMBOL vmlinux 0x954f099c idr_preload +EXPORT_SYMBOL vmlinux 0x9559d96d devm_memunmap +EXPORT_SYMBOL vmlinux 0x95929e01 device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x959609ed tcf_action_exec +EXPORT_SYMBOL vmlinux 0x95a67b07 udp_table +EXPORT_SYMBOL vmlinux 0x95d57c4a ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x95d71e12 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x95e99490 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x960022ca eth_type_trans +EXPORT_SYMBOL vmlinux 0x96019b4f pci_restore_state +EXPORT_SYMBOL vmlinux 0x96050dc8 __next_node_in +EXPORT_SYMBOL vmlinux 0x960dea34 sk_net_capable +EXPORT_SYMBOL vmlinux 0x96169be3 rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x961787ea seq_file_path +EXPORT_SYMBOL vmlinux 0x961eaa22 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x9625695d acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x962c4977 clkdev_add +EXPORT_SYMBOL vmlinux 0x962cdbb6 netdev_info +EXPORT_SYMBOL vmlinux 0x9635337d ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x963618d0 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x963d7f54 dquot_release +EXPORT_SYMBOL vmlinux 0x963d8c4a netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x96504b88 vfs_rename +EXPORT_SYMBOL vmlinux 0x96848186 scnprintf +EXPORT_SYMBOL vmlinux 0x968f85c7 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x969a3f3f flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x969dd342 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x96a1090f crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0x96a7cc80 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x96b28969 jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x96c4f4a2 ll_rw_block +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d7dac8 may_setattr +EXPORT_SYMBOL vmlinux 0x96e5d30f gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x96e9fdda gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x96eab78b iosf_mbi_modify +EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x9704b16d mdio_device_register +EXPORT_SYMBOL vmlinux 0x970ef8ea __fs_parse +EXPORT_SYMBOL vmlinux 0x971142da mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x973698d3 sock_release +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x97651e6c vmemmap_base +EXPORT_SYMBOL vmlinux 0x97670a9e agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x978badae dev_mc_flush +EXPORT_SYMBOL vmlinux 0x978e0f95 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x97934ecf del_timer_sync +EXPORT_SYMBOL vmlinux 0x97a57333 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97b3a164 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x97b9050d km_new_mapping +EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x97e2789a commit_creds +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982e38b6 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x983f30ac dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x9859093d tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x9865f756 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x98801b77 rproc_detach +EXPORT_SYMBOL vmlinux 0x988882c3 devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x98bdf280 copy_string_kernel +EXPORT_SYMBOL vmlinux 0x98c039dc dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98caabb8 kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x98d6d774 devfreq_update_status +EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x98fae2c4 register_qdisc +EXPORT_SYMBOL vmlinux 0x98fee6c0 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x9902a40e tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x99078b39 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x991a4179 pci_free_irq +EXPORT_SYMBOL vmlinux 0x992645a7 generic_file_open +EXPORT_SYMBOL vmlinux 0x9939eba0 backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x99453056 km_policy_notify +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99599bbe mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x9974a647 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x9975dc22 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x998a0352 tty_hangup +EXPORT_SYMBOL vmlinux 0x99907875 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x999387fb scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x9996477b __nla_put +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a1b4e0 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x99aef676 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x99c373de flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x99c6d653 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x99cb03c9 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99e1177e seq_release +EXPORT_SYMBOL vmlinux 0x99eaf29a set_posix_acl +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f7371c refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x9a0c3a18 vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x9a14b795 sock_create_lite +EXPORT_SYMBOL vmlinux 0x9a18f353 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a22391e radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x9a39ae80 udp_pre_connect +EXPORT_SYMBOL vmlinux 0x9a3f5f70 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x9a4d18f9 dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x9a70bb6f ppp_dev_name +EXPORT_SYMBOL vmlinux 0x9a804502 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x9a81d482 mdiobus_free +EXPORT_SYMBOL vmlinux 0x9a96ca79 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x9a994cf7 current_task +EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x9ab2f2b3 udp_disconnect +EXPORT_SYMBOL vmlinux 0x9acd3f6f get_cpu_entry_area +EXPORT_SYMBOL vmlinux 0x9ad7a582 iosf_mbi_assert_punit_acquired +EXPORT_SYMBOL vmlinux 0x9ae27dc3 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit +EXPORT_SYMBOL vmlinux 0x9ae7508d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x9af10f2c i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x9b2091dd blk_start_plug +EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b2ce8a0 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x9b4ba0bf mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0x9b72478f acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x9b7cafbe __register_binfmt +EXPORT_SYMBOL vmlinux 0x9b84f8a3 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x9b9d7626 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x9bb4e317 ioread32be +EXPORT_SYMBOL vmlinux 0x9bb5e53e devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x9bc9749f filemap_release_folio +EXPORT_SYMBOL vmlinux 0x9be04123 __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x9be84c58 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9bf9be9d agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x9c000fa7 tty_devnum +EXPORT_SYMBOL vmlinux 0x9c09dbd1 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x9c0a5fb6 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x9c0bb4ee tty_vhangup +EXPORT_SYMBOL vmlinux 0x9c108c93 mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x9c122bcf mempool_create_node +EXPORT_SYMBOL vmlinux 0x9c12fb50 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x9c1d7e27 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x9c362d33 md_handle_request +EXPORT_SYMBOL vmlinux 0x9c3a3185 mpage_writepages +EXPORT_SYMBOL vmlinux 0x9c3c64fb generic_perform_write +EXPORT_SYMBOL vmlinux 0x9c65b78a csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x9c71590c dm_table_event +EXPORT_SYMBOL vmlinux 0x9c861bd2 mmc_start_request +EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x9c9dcf93 mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0x9c9e8b49 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cabcbc8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x9cac15ca udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x9cb633bd kill_pgrp +EXPORT_SYMBOL vmlinux 0x9cb986f2 vmalloc_base +EXPORT_SYMBOL vmlinux 0x9cc47c88 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0x9ccf7171 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x9cd5a7f6 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x9cd91791 register_sysctl +EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x9ce05a96 uart_register_driver +EXPORT_SYMBOL vmlinux 0x9ceb55f9 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x9ced41ad __SCT__tp_func_read_msr +EXPORT_SYMBOL vmlinux 0x9cf109b7 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x9d0141a4 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0x9d08ccd2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x9d099a39 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d1665a8 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x9d1d2522 dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x9d1ecb8d param_get_short +EXPORT_SYMBOL vmlinux 0x9d26675e zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d335d67 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x9d4a71dd tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x9d61e994 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x9d70541a native_save_fl +EXPORT_SYMBOL vmlinux 0x9d7ad0c8 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x9d881156 devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x9d92f3ad __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9da45299 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x9ddcf33b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9df243bd xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x9e005073 skb_set_owner_w +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 0x9e2cef4a vmf_insert_pfn +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 0x9e9eab95 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap +EXPORT_SYMBOL vmlinux 0x9eacf8a5 kstrndup +EXPORT_SYMBOL vmlinux 0x9eb51e5a devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x9ec0e639 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x9ec25e9d kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x9ed21111 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x9ed978de vme_lm_set +EXPORT_SYMBOL vmlinux 0x9edc82b3 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0x9ee96a08 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x9ef0eee7 __SCT__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x9ef46856 vme_bus_type +EXPORT_SYMBOL vmlinux 0x9f08f177 lru_cache_add +EXPORT_SYMBOL vmlinux 0x9f092e44 param_get_ullong +EXPORT_SYMBOL vmlinux 0x9f14b916 dma_set_mask +EXPORT_SYMBOL vmlinux 0x9f177f13 watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x9f29ceb1 block_write_full_page +EXPORT_SYMBOL vmlinux 0x9f359447 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x9f3849c8 tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x9f424718 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f4bf72f touch_atime +EXPORT_SYMBOL vmlinux 0x9f4f2aa3 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict +EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x9f76baf4 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x9f7d4c97 __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x9f850a5b md_integrity_register +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa5d5ad vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe19a11 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa001b382 blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0xa00315b9 poll_freewait +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa016c9f6 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0xa018218a inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa01f2664 pci_read_config_word +EXPORT_SYMBOL vmlinux 0xa022c739 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xa02aa74a __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa033d747 next_arg +EXPORT_SYMBOL vmlinux 0xa03dd3e4 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04abfd2 param_ops_bool +EXPORT_SYMBOL vmlinux 0xa04c216e __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xa055dd48 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xa057df8f twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0xa069d5d2 import_iovec +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07b3701 d_set_d_op +EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup +EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or +EXPORT_SYMBOL vmlinux 0xa084f79f cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0xa08ec57f vfs_mkdir +EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable +EXPORT_SYMBOL vmlinux 0xa09ce9a4 get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0xa09e0fdf sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xa0a9d239 fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0ae8e65 set_user_nice +EXPORT_SYMBOL vmlinux 0xa0aeb057 inet_getname +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0d26024 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0xa0d87339 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xa0da24ff ipv6_find_hdr +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 0xa0ebd437 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0xa0ee7b39 cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0xa0f29cc5 is_acpi_device_node +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa1058ec1 pci_get_class +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa118933c netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0xa1438342 md_cluster_ops +EXPORT_SYMBOL vmlinux 0xa14e223c vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0xa178b2b3 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xa17feec4 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0xa180ad98 phy_detach +EXPORT_SYMBOL vmlinux 0xa182ca26 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xa187461b noop_fsync +EXPORT_SYMBOL vmlinux 0xa18fa106 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0xa1933a44 _dev_err +EXPORT_SYMBOL vmlinux 0xa1985968 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa1bedd72 amd_iommu_pc_get_max_counters +EXPORT_SYMBOL vmlinux 0xa1bf71e1 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xa1e9e4ea pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0xa1fbf0d4 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0xa2326c49 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort +EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module +EXPORT_SYMBOL vmlinux 0xa2529aad iunique +EXPORT_SYMBOL vmlinux 0xa25b103e bio_endio +EXPORT_SYMBOL vmlinux 0xa26049e8 config_item_put +EXPORT_SYMBOL vmlinux 0xa2614911 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xa2614ac1 fqdir_init +EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0xa27918a7 flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0xa287042b tcp_child_process +EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active +EXPORT_SYMBOL vmlinux 0xa292db75 pci_release_resource +EXPORT_SYMBOL vmlinux 0xa2bf1f98 sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0xa2e3be22 phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0xa2e9ed7e init_task +EXPORT_SYMBOL vmlinux 0xa30dd487 tty_name +EXPORT_SYMBOL vmlinux 0xa31034b0 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0xa320f396 shmem_aops +EXPORT_SYMBOL vmlinux 0xa3391ed5 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xa34e3222 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xa359e74c register_shrinker +EXPORT_SYMBOL vmlinux 0xa3622eb7 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xa365568e pneigh_lookup +EXPORT_SYMBOL vmlinux 0xa36589ab netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xa388c95d pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xa38f21b9 amd_iommu_update_ga +EXPORT_SYMBOL vmlinux 0xa3b084e7 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0xa3b5a16b tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0xa3be8342 __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0xa3cb05e0 __put_page +EXPORT_SYMBOL vmlinux 0xa3cefaa0 blake2s_update +EXPORT_SYMBOL vmlinux 0xa3dbaa8d ptp_clock_index +EXPORT_SYMBOL vmlinux 0xa3e4f871 acpi_initialize_debugger +EXPORT_SYMBOL vmlinux 0xa3ea9a59 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xa3f463ab tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final +EXPORT_SYMBOL vmlinux 0xa3fea1c4 mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0xa4029074 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xa4191c0b memset_io +EXPORT_SYMBOL vmlinux 0xa4470d02 phy_disconnect +EXPORT_SYMBOL vmlinux 0xa46ae8b2 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xa47a31c8 security_binder_transaction +EXPORT_SYMBOL vmlinux 0xa48403b1 build_skb +EXPORT_SYMBOL vmlinux 0xa488e7d5 folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0xa48ebf40 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0xa4940155 neigh_for_each +EXPORT_SYMBOL vmlinux 0xa4955806 jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0xa49814f8 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xa4a6653c pci_request_region +EXPORT_SYMBOL vmlinux 0xa4a77468 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xa4ab120f rtnl_create_link +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d3ddfb __SCK__tp_func_read_msr +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4ed1866 vga_get +EXPORT_SYMBOL vmlinux 0xa4faf62a acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0xa4fec446 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xa507125e acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xa50a3da7 _find_next_bit +EXPORT_SYMBOL vmlinux 0xa50bcff0 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0xa50dfefb jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xa51eec5d netdev_name_in_use +EXPORT_SYMBOL vmlinux 0xa52723b2 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xa52a82bd __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xa52bedf6 xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0xa53c9ca9 iterate_dir +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa57425c5 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xa5754419 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0xa581fbdf kfree_skb_reason +EXPORT_SYMBOL vmlinux 0xa587a5bd tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xa58af0a6 _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0xa5976e4f dev_base_lock +EXPORT_SYMBOL vmlinux 0xa5999b09 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0xa5a2cf93 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xa5c77544 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xa5d10f53 freeze_super +EXPORT_SYMBOL vmlinux 0xa5dba2ca devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0xa5e55057 rdmsrl_safe_on_cpu +EXPORT_SYMBOL vmlinux 0xa602c7dc set_create_files_as +EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0xa6257a2f complete +EXPORT_SYMBOL vmlinux 0xa62d79bb pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0xa630b05c __scsi_print_sense +EXPORT_SYMBOL vmlinux 0xa631b264 free_netdev +EXPORT_SYMBOL vmlinux 0xa648e561 __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0xa66a5a90 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0xa6793866 unload_nls +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68567bf truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xa6893d39 single_open +EXPORT_SYMBOL vmlinux 0xa6a9cdbf __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xa6b3011f __vfs_getxattr +EXPORT_SYMBOL vmlinux 0xa6d0ddf2 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0xa6d41604 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0xa6d649bb xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xa6f04feb xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xa709caaa generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71d2e2c ioread16be +EXPORT_SYMBOL vmlinux 0xa72035f9 xa_get_order +EXPORT_SYMBOL vmlinux 0xa723132a edac_mc_find +EXPORT_SYMBOL vmlinux 0xa72cfb7d ioremap_wt +EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0xa7525785 cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0xa762509d pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xa7720d7f vfs_rmdir +EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0xa78af5f3 ioread32 +EXPORT_SYMBOL vmlinux 0xa796679d __SCT__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xa7c7a62c generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa7ceba92 mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0xa7d46770 mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0xa7d49b83 vc_cons +EXPORT_SYMBOL vmlinux 0xa7d5f92e ida_destroy +EXPORT_SYMBOL vmlinux 0xa7ee1756 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xa7f6d295 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xa805ecfc acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0xa80adb9c blk_rq_init +EXPORT_SYMBOL vmlinux 0xa80e92fa pcie_print_link_status +EXPORT_SYMBOL vmlinux 0xa81012d0 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xa8181adf proc_dointvec +EXPORT_SYMBOL vmlinux 0xa81a4f99 page_pool_destroy +EXPORT_SYMBOL vmlinux 0xa829ef51 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0xa82a7856 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0xa82a8338 netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0xa836ba02 wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xa839e133 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0xa839fc26 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa8460e4f jbd2_complete_transaction +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 0xa878e2b4 bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0xa8809311 make_kuid +EXPORT_SYMBOL vmlinux 0xa88af4d9 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0xa894194e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xa897e3e7 mempool_free +EXPORT_SYMBOL vmlinux 0xa89a1cf1 ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0xa8b28a98 dma_unmap_resource +EXPORT_SYMBOL vmlinux 0xa8caa845 clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0xa8cae211 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0xa8d9fb3f from_kuid_munged +EXPORT_SYMBOL vmlinux 0xa8e6933a qdf2400_e44_present +EXPORT_SYMBOL vmlinux 0xa8e7f5b8 netlink_ack +EXPORT_SYMBOL vmlinux 0xa8e9c0cd __d_lookup_done +EXPORT_SYMBOL vmlinux 0xa8ea4ce6 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xa8fc784f __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0xa90a8b4d clear_inode +EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work +EXPORT_SYMBOL vmlinux 0xa90f2d75 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa924b4aa __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xa92ab6bc ip_fraglist_init +EXPORT_SYMBOL vmlinux 0xa931af8a asm_load_gs_index +EXPORT_SYMBOL vmlinux 0xa940800b rproc_get_by_child +EXPORT_SYMBOL vmlinux 0xa944e0ad skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0xa94a09bb mem_section +EXPORT_SYMBOL vmlinux 0xa9594bd8 vme_dma_request +EXPORT_SYMBOL vmlinux 0xa96453bf scsi_host_get +EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value +EXPORT_SYMBOL vmlinux 0xa96c69a3 genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap +EXPORT_SYMBOL vmlinux 0xa9785b49 cpu_core_map +EXPORT_SYMBOL vmlinux 0xa982cd6d max8925_reg_write +EXPORT_SYMBOL vmlinux 0xa98fd5cd pci_resize_resource +EXPORT_SYMBOL vmlinux 0xa99422b4 pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0xa9a5a45d __scsi_execute +EXPORT_SYMBOL vmlinux 0xa9b5fc22 mmput_async +EXPORT_SYMBOL vmlinux 0xa9b8b202 sk_alloc +EXPORT_SYMBOL vmlinux 0xa9c72303 amd_iommu_pc_get_max_banks +EXPORT_SYMBOL vmlinux 0xa9ddedbc __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xa9e0b322 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0xa9efe2f6 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xa9f425c8 dquot_get_state +EXPORT_SYMBOL vmlinux 0xa9f83253 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xaa00fdc0 ec_transaction +EXPORT_SYMBOL vmlinux 0xaa0c318b vscnprintf +EXPORT_SYMBOL vmlinux 0xaa0ffaec generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol +EXPORT_SYMBOL vmlinux 0xaa2ca00a __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xaa341905 acpi_bios_exception +EXPORT_SYMBOL vmlinux 0xaa429997 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0xaa42eba4 migrate_page_copy +EXPORT_SYMBOL vmlinux 0xaa44a707 cpumask_next +EXPORT_SYMBOL vmlinux 0xaa6143d2 sock_wfree +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa80d9ce ethtool_notify +EXPORT_SYMBOL vmlinux 0xaa9d0bfa tty_lock +EXPORT_SYMBOL vmlinux 0xaa9e60c3 padata_do_serial +EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic +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 0xaadb7dc3 eth_header_cache +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf7be7f zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xaafec0d4 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xab0261b1 cdrom_open +EXPORT_SYMBOL vmlinux 0xab048950 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0xab0680f1 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init +EXPORT_SYMBOL vmlinux 0xab3b75ea vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0xab4c9217 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xab5fb51d sock_kfree_s +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 0xab6d5b3b hex_to_bin +EXPORT_SYMBOL vmlinux 0xab6d60ac i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7e67ec vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xab7f79dc phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xab89432c pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0xab94eacb vga_switcheroo_client_probe_defer +EXPORT_SYMBOL vmlinux 0xab9b0a7d nf_hook_slow +EXPORT_SYMBOL vmlinux 0xaba57894 max8998_update_reg +EXPORT_SYMBOL vmlinux 0xabf2e9ba bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0xac0ce14b pci_iomap_range +EXPORT_SYMBOL vmlinux 0xac11c1e9 inode_to_bdi +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1fa5a0 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac4063a9 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xac41f625 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0xac4e73b9 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xac537ac2 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac713b88 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xac733666 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xac8266d4 mdio_device_reset +EXPORT_SYMBOL vmlinux 0xac8597d5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xac8bb2c9 bio_kmalloc +EXPORT_SYMBOL vmlinux 0xacaa4c72 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacd525b0 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xacddd806 ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0xacea8173 acpi_debug_print +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xacfcd14c __breadahead +EXPORT_SYMBOL vmlinux 0xad0156bb bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad0740a8 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0xad1036a2 amd_iommu_activate_guest_mode +EXPORT_SYMBOL vmlinux 0xad13c932 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xad210c36 locks_init_lock +EXPORT_SYMBOL vmlinux 0xad357133 __traceiter_kmalloc_node +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 0xad883513 __destroy_inode +EXPORT_SYMBOL vmlinux 0xad950b5d __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0xad9901ae bit_waitqueue +EXPORT_SYMBOL vmlinux 0xada31e57 gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0xadadac3a page_pool_release_page +EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final +EXPORT_SYMBOL vmlinux 0xadb99cd1 dquot_disable +EXPORT_SYMBOL vmlinux 0xadbeed61 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0xadc044b7 vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL vmlinux 0xadc1dbc8 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed +EXPORT_SYMBOL vmlinux 0xadd7fbf9 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xadf5185e blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xadfdfcef __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae110a40 vfs_setpos +EXPORT_SYMBOL vmlinux 0xae178e45 __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xae1ba33b inode_nohighmem +EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0xae4a4c1f xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0xae5a04bb acpi_evaluate_dsm +EXPORT_SYMBOL vmlinux 0xae8c752d pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xae8cc35b ip6_mtu +EXPORT_SYMBOL vmlinux 0xaea4a821 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid +EXPORT_SYMBOL vmlinux 0xaeb082ad _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xaeb113de dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xaebd12f0 acpi_get_name +EXPORT_SYMBOL vmlinux 0xaec57881 flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0xaeca11ed nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xaeca1e37 fb_set_var +EXPORT_SYMBOL vmlinux 0xaeca8967 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xaef969ee inode_permission +EXPORT_SYMBOL vmlinux 0xaef9c288 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xaf02bdb5 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xaf0af8a5 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xaf354bbe cpu_tss_rw +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf43c534 rproc_del +EXPORT_SYMBOL vmlinux 0xaf499cde textsearch_unregister +EXPORT_SYMBOL vmlinux 0xaf630259 mdiobus_register_device +EXPORT_SYMBOL vmlinux 0xaf642b56 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0xaf707bea tcp_mmap +EXPORT_SYMBOL vmlinux 0xaf85086a param_set_invbool +EXPORT_SYMBOL vmlinux 0xafb864c1 refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0xafbb5556 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xafc08054 dotdot_name +EXPORT_SYMBOL vmlinux 0xafc6c68e zstd_is_error +EXPORT_SYMBOL vmlinux 0xafcc7a59 blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0xafd5ff2c amd_iommu_v2_supported +EXPORT_SYMBOL vmlinux 0xafd744c6 __x86_indirect_thunk_rbp +EXPORT_SYMBOL vmlinux 0xafdb4d7e udp_gro_receive +EXPORT_SYMBOL vmlinux 0xb00190c6 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xb006fb98 inet6_release +EXPORT_SYMBOL vmlinux 0xb017de79 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xb017fd2d __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb02df2d6 __traceiter_rdpmc +EXPORT_SYMBOL vmlinux 0xb030b833 icmp6_send +EXPORT_SYMBOL vmlinux 0xb036ddc7 mntput +EXPORT_SYMBOL vmlinux 0xb04a43ad __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb0631d7e sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xb0683d59 get_tree_single +EXPORT_SYMBOL vmlinux 0xb08adbb2 nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0xb093ae0b dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0bf2c60 load_nls_default +EXPORT_SYMBOL vmlinux 0xb0c5e247 lockref_put_return +EXPORT_SYMBOL vmlinux 0xb0d34f9b cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e602eb memmove +EXPORT_SYMBOL vmlinux 0xb0ed05a8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0xb0f1b84f xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0xb0f49658 mmc_get_card +EXPORT_SYMBOL vmlinux 0xb10e7df4 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xb1167f37 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12f7f8b iov_iter_advance +EXPORT_SYMBOL vmlinux 0xb1342cdb _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xb1378f5a pnp_device_attach +EXPORT_SYMBOL vmlinux 0xb13d7852 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0xb14b90de freezing_slow_path +EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 +EXPORT_SYMBOL vmlinux 0xb15176ad netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0xb154494e is_subdir +EXPORT_SYMBOL vmlinux 0xb17e8693 kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0xb19a5453 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1ca25cc dev_mc_del +EXPORT_SYMBOL vmlinux 0xb1dbb432 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xb1e5ac16 tcf_em_register +EXPORT_SYMBOL vmlinux 0xb1e9d6df scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xb1f1b25a d_alloc_parallel +EXPORT_SYMBOL vmlinux 0xb209bdb2 dma_resv_init +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb21ff7d4 sync_filesystem +EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xb23027c1 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xb2338d81 __x86_indirect_thunk_rsp +EXPORT_SYMBOL vmlinux 0xb25065f0 unregister_nls +EXPORT_SYMBOL vmlinux 0xb2601486 __SCT__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0xb28a5378 dump_align +EXPORT_SYMBOL vmlinux 0xb2905d33 sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0xb290e120 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xb290e641 memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0xb292cfa4 phy_set_max_speed +EXPORT_SYMBOL vmlinux 0xb29c21dc page_pool_update_nid +EXPORT_SYMBOL vmlinux 0xb2b06728 mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0xb2bcb088 acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0xb2bd9aef elevator_alloc +EXPORT_SYMBOL vmlinux 0xb2e7522a tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0xb2e78801 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xb2eb5ae0 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0xb2eb757f find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0xb2edaf07 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0xb2f35c6a xxh64 +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2f95451 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb3012451 nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0xb3052bb0 nd_dax_probe +EXPORT_SYMBOL vmlinux 0xb3073d51 inode_init_always +EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken +EXPORT_SYMBOL vmlinux 0xb30b9822 vme_master_set +EXPORT_SYMBOL vmlinux 0xb320cc0e sg_init_one +EXPORT_SYMBOL vmlinux 0xb3258f79 __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0xb327792c pci_dev_put +EXPORT_SYMBOL vmlinux 0xb327c387 param_ops_ullong +EXPORT_SYMBOL vmlinux 0xb32a5973 acpi_ut_status_exit +EXPORT_SYMBOL vmlinux 0xb33a8df0 flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0xb350907c param_set_copystring +EXPORT_SYMBOL vmlinux 0xb3546f74 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xb354edf9 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xb368ca14 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0xb3801c3d tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0xb3863a67 acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xb3886dc0 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0xb3a2dfdf nmi_panic +EXPORT_SYMBOL vmlinux 0xb3ab08bd scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xb3cf6dd7 sock_from_file +EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0xb3e53883 iput +EXPORT_SYMBOL vmlinux 0xb3f0de55 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0xb3f49446 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xb3f548ad kmemdup_nul +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3f8e49e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xb40219a4 posix_test_lock +EXPORT_SYMBOL vmlinux 0xb4043948 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0xb404ae2f agp_create_memory +EXPORT_SYMBOL vmlinux 0xb40c6176 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0xb40e34d2 ps2_command +EXPORT_SYMBOL vmlinux 0xb415a402 from_kgid_munged +EXPORT_SYMBOL vmlinux 0xb41a2f78 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0xb4208a74 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb425f429 mod_node_page_state +EXPORT_SYMBOL vmlinux 0xb42bd847 unregister_binfmt +EXPORT_SYMBOL vmlinux 0xb42cd7d7 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0xb449ab43 param_get_ushort +EXPORT_SYMBOL vmlinux 0xb4511efa ___pskb_trim +EXPORT_SYMBOL vmlinux 0xb4577003 acpi_dev_present +EXPORT_SYMBOL vmlinux 0xb461eab4 node_data +EXPORT_SYMBOL vmlinux 0xb4650b31 __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xb46e02cc phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0xb474e725 rproc_da_to_va +EXPORT_SYMBOL vmlinux 0xb47cca30 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0xb47de848 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xb487210c __nla_reserve +EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb490b413 xattr_full_name +EXPORT_SYMBOL vmlinux 0xb49d0847 vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0xb4b19daa param_ops_charp +EXPORT_SYMBOL vmlinux 0xb4bcdd03 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xb4be48a3 km_policy_expired +EXPORT_SYMBOL vmlinux 0xb4c018e6 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0xb4dd578e nf_log_trace +EXPORT_SYMBOL vmlinux 0xb4ebff8b vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xb4f13d2a abort +EXPORT_SYMBOL vmlinux 0xb4f1e67d md_write_end +EXPORT_SYMBOL vmlinux 0xb511c322 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0xb519c921 call_fib_notifiers +EXPORT_SYMBOL vmlinux 0xb51b1e7b import_single_range +EXPORT_SYMBOL vmlinux 0xb525f092 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb5359665 seq_open +EXPORT_SYMBOL vmlinux 0xb53bd6a4 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xb53e5820 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xb53f2810 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb545db10 tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0xb551a2c0 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb55c8b12 generic_copy_file_range +EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb58f7ac9 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a54896 empty_aops +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5aafe63 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xb5ab892d uv_undefined +EXPORT_SYMBOL vmlinux 0xb5b54b34 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0xb5c3cdc5 __seq_open_private +EXPORT_SYMBOL vmlinux 0xb5c93c67 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xb5cba916 lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0xb5e3f50e dquot_quota_off +EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xb5f1fe64 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xb60450de dentry_path_raw +EXPORT_SYMBOL vmlinux 0xb6069aa6 genphy_suspend +EXPORT_SYMBOL vmlinux 0xb61320cd set_pages_uc +EXPORT_SYMBOL vmlinux 0xb61d6fc2 down_read_interruptible +EXPORT_SYMBOL vmlinux 0xb622af78 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xb622d9c8 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0xb62500cf udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable +EXPORT_SYMBOL vmlinux 0xb654ef65 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xb66a84a2 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0xb66ce6b0 input_register_handler +EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb674a534 acpi_unmap_cpu +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67a0943 register_filesystem +EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse +EXPORT_SYMBOL vmlinux 0xb6923df4 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6968105 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0xb6a0e0dc invalidate_disk +EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0xb6c1641d elv_rb_add +EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit +EXPORT_SYMBOL vmlinux 0xb6d7da56 fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0xb6dbb74a genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0xb6ddc347 to_nd_dax +EXPORT_SYMBOL vmlinux 0xb6e3087e input_release_device +EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb6f837fb dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd +EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces +EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0xb7263bed blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0xb737b185 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0xb74f166b _dev_alert +EXPORT_SYMBOL vmlinux 0xb7593ddc iosf_mbi_unregister_pmic_bus_access_notifier +EXPORT_SYMBOL vmlinux 0xb75fd8df current_in_userns +EXPORT_SYMBOL vmlinux 0xb7816e5e kthread_bind +EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0xb78dfb84 flush_signals +EXPORT_SYMBOL vmlinux 0xb797c58c sk_error_report +EXPORT_SYMBOL vmlinux 0xb7bb1380 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xb7c0f443 sort +EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0xb7d65fec unregister_filesystem +EXPORT_SYMBOL vmlinux 0xb7dbd950 bpf_link_put +EXPORT_SYMBOL vmlinux 0xb7e4af32 vga_switcheroo_unlock_ddc +EXPORT_SYMBOL vmlinux 0xb7e978ab mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0xb7fbb9b7 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0xb7ff6aa8 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xb801391e single_open_size +EXPORT_SYMBOL vmlinux 0xb8064ebf tty_unlock +EXPORT_SYMBOL vmlinux 0xb80b4a18 zstd_compress_bound +EXPORT_SYMBOL vmlinux 0xb80e9a9c phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0xb827169e readahead_expand +EXPORT_SYMBOL vmlinux 0xb82adfdc dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0xb841cb54 vfs_get_super +EXPORT_SYMBOL vmlinux 0xb84f856b genphy_soft_reset +EXPORT_SYMBOL vmlinux 0xb850fe92 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xb858d385 dump_page +EXPORT_SYMBOL vmlinux 0xb85d567e submit_bio_noacct +EXPORT_SYMBOL vmlinux 0xb8618868 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xb86523b6 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0xb866ba9e path_is_mountpoint +EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key +EXPORT_SYMBOL vmlinux 0xb86c9187 done_path_create +EXPORT_SYMBOL vmlinux 0xb86f3c83 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xb86f74c5 free_cpumask_var +EXPORT_SYMBOL vmlinux 0xb88fd035 set_groups +EXPORT_SYMBOL vmlinux 0xb894096f inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0xb897b1f0 open_with_fake_path +EXPORT_SYMBOL vmlinux 0xb89a8efc udp6_set_csum +EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb89db67f xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link +EXPORT_SYMBOL vmlinux 0xb8b9f817 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xb8c3fae3 pci_claim_resource +EXPORT_SYMBOL vmlinux 0xb8dc2b11 pnp_is_active +EXPORT_SYMBOL vmlinux 0xb8e1a367 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8edaf20 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xb8fab1ad mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xb9056bb6 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xb90730e7 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb9080cce fddi_type_trans +EXPORT_SYMBOL vmlinux 0xb90b4058 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max +EXPORT_SYMBOL vmlinux 0xb915361f pnp_device_detach +EXPORT_SYMBOL vmlinux 0xb920db49 acpi_tb_install_and_load_table +EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xb9478d90 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0xb9493f03 md_done_sync +EXPORT_SYMBOL vmlinux 0xb957373a sock_setsockopt +EXPORT_SYMBOL vmlinux 0xb9573969 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xb96192ca vfs_iter_read +EXPORT_SYMBOL vmlinux 0xb9668a7e __neigh_event_send +EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context +EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse +EXPORT_SYMBOL vmlinux 0xb97f7045 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xb9af1d0d __xa_clear_mark +EXPORT_SYMBOL vmlinux 0xb9b4a804 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xb9b9f27f skb_vlan_untag +EXPORT_SYMBOL vmlinux 0xb9ddbbdd security_inode_listsecurity +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 0xb9ed8632 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat +EXPORT_SYMBOL vmlinux 0xba087bd6 nla_reserve +EXPORT_SYMBOL vmlinux 0xba1008c8 __crc32c_le +EXPORT_SYMBOL vmlinux 0xba1eb384 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xba3ba8f4 mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba498c1f phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0xba4ac006 elv_rb_find +EXPORT_SYMBOL vmlinux 0xba4c137d folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0xba53adab nla_policy_len +EXPORT_SYMBOL vmlinux 0xba66c437 seq_escape_mem +EXPORT_SYMBOL vmlinux 0xba7471be phy_modify_paged +EXPORT_SYMBOL vmlinux 0xba7d8d68 xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0xba808518 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0xba8fbd64 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xbaa8f5c2 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xbaaa4eda mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0xbae39d1f lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset +EXPORT_SYMBOL vmlinux 0xbb1283f5 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0xbb13595e smp_call_function_many +EXPORT_SYMBOL vmlinux 0xbb1bac24 acpi_unregister_debugger +EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb2ee99b scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xbb43dd23 __tracepoint_rdpmc +EXPORT_SYMBOL vmlinux 0xbb44d218 d_find_alias +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb6fe86a pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xbb7200a6 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xbb8e169a vga_switcheroo_handler_flags +EXPORT_SYMBOL vmlinux 0xbb99ab08 netif_rx +EXPORT_SYMBOL vmlinux 0xbb9e5b4b bio_copy_data +EXPORT_SYMBOL vmlinux 0xbb9ed3bf mutex_trylock +EXPORT_SYMBOL vmlinux 0xbba9d3a0 lookup_one +EXPORT_SYMBOL vmlinux 0xbbcf2fbc dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0xbbe80fdb kmalloc_order +EXPORT_SYMBOL vmlinux 0xbc122fa2 scsi_print_sense +EXPORT_SYMBOL vmlinux 0xbc1251e4 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xbc1caf56 send_sig +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc2cb702 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xbc2dc680 find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0xbc8598a8 hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0xbc8ee1e8 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf +EXPORT_SYMBOL vmlinux 0xbcb36fe4 hugetlb_optimize_vmemmap_key +EXPORT_SYMBOL vmlinux 0xbcc9642a devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0xbce6c07f udp_seq_ops +EXPORT_SYMBOL vmlinux 0xbd393ca3 ioread64be_lo_hi +EXPORT_SYMBOL vmlinux 0xbd4189bd skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd56b119 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0xbd6841d4 crc16 +EXPORT_SYMBOL vmlinux 0xbd6ca9fb sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0xbd6feedb sock_set_priority +EXPORT_SYMBOL vmlinux 0xbd85df6f sk_free +EXPORT_SYMBOL vmlinux 0xbdad857b folio_mark_dirty +EXPORT_SYMBOL vmlinux 0xbdc8ca26 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xbde6ee4e agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0xbdeb8e36 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xbdf6be25 vfs_symlink +EXPORT_SYMBOL vmlinux 0xbdf72fd5 fb_class +EXPORT_SYMBOL vmlinux 0xbdfa8c7a __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0xbdfb6dbb __fentry__ +EXPORT_SYMBOL vmlinux 0xbdfd5fee security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0xbdffad35 rio_query_mport +EXPORT_SYMBOL vmlinux 0xbe0110e7 acpi_set_gpe +EXPORT_SYMBOL vmlinux 0xbe09ece8 ihold +EXPORT_SYMBOL vmlinux 0xbe121b1d __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xbe1552fd ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xbe1d2ce7 sock_register +EXPORT_SYMBOL vmlinux 0xbe31a18e xsk_tx_completed +EXPORT_SYMBOL vmlinux 0xbe49252c acpi_os_write_port +EXPORT_SYMBOL vmlinux 0xbe4eb6ed secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xbe504cff netdev_printk +EXPORT_SYMBOL vmlinux 0xbe5a24e9 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0xbe6a866f __wait_on_bit +EXPORT_SYMBOL vmlinux 0xbe6a8c96 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xbe6acf7d flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0xbe9b1207 __netif_napi_del +EXPORT_SYMBOL vmlinux 0xbea83aad vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xbec47925 tty_port_close +EXPORT_SYMBOL vmlinux 0xbeccb009 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xbeccbe44 param_get_hexint +EXPORT_SYMBOL vmlinux 0xbeced5cb sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0xbee17fa2 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xbee94674 iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef52077 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0xbef92018 amd_iommu_domain_set_gcr3 +EXPORT_SYMBOL vmlinux 0xbefa51a3 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0xbf10d99a sk_mc_loop +EXPORT_SYMBOL vmlinux 0xbf14f2db blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xbf3193ec acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xbf365f00 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xbf57acc0 skb_store_bits +EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfae9e07 utf8_validate +EXPORT_SYMBOL vmlinux 0xbfaec55d skb_vlan_pop +EXPORT_SYMBOL vmlinux 0xbfb04803 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0xbfc0d310 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc3f65c devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0xbfd146cd generic_fillattr +EXPORT_SYMBOL vmlinux 0xbfe03cf9 kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0xbfe84d86 fiemap_prep +EXPORT_SYMBOL vmlinux 0xc00143ee pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xc017e4fd scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc0364007 fault_in_writeable +EXPORT_SYMBOL vmlinux 0xc04a1cb6 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xc05f9eff clear_nlink +EXPORT_SYMBOL vmlinux 0xc0606410 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xc0678389 __pagevec_release +EXPORT_SYMBOL vmlinux 0xc07351b3 __SCT__cond_resched +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc078d22c zstd_init_cstream +EXPORT_SYMBOL vmlinux 0xc078d2d5 md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc0954478 nla_put +EXPORT_SYMBOL vmlinux 0xc0a3a585 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xc0afb5d7 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0xc0dda1cc tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xc0f4ce8f param_ops_ushort +EXPORT_SYMBOL vmlinux 0xc0faf39f remove_arg_zero +EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup +EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor +EXPORT_SYMBOL vmlinux 0xc111ae64 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xc115482a inode_dio_wait +EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0xc120f100 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0xc124dca5 sock_create_kern +EXPORT_SYMBOL vmlinux 0xc1343333 __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xc1352057 __register_chrdev +EXPORT_SYMBOL vmlinux 0xc1365323 acpi_enable_all_wakeup_gpes +EXPORT_SYMBOL vmlinux 0xc13937fa acpi_mdiobus_register +EXPORT_SYMBOL vmlinux 0xc144ee21 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0xc147625e netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xc14dc168 acpi_get_data +EXPORT_SYMBOL vmlinux 0xc14e2be5 param_set_bool +EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc15b7d8b inet_stream_connect +EXPORT_SYMBOL vmlinux 0xc15e028d sk_stop_timer +EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xc180c509 pci_select_bars +EXPORT_SYMBOL vmlinux 0xc1afc193 dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0xc1b3c44d dev_addr_mod +EXPORT_SYMBOL vmlinux 0xc1c782c3 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0xc1d5d504 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xc1d7e0ec serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget +EXPORT_SYMBOL vmlinux 0xc1d8f1b5 gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0xc1e07299 skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0xc1e787c7 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xc1e8e1dc netlink_broadcast +EXPORT_SYMBOL vmlinux 0xc209adb8 compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0xc210ecac tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0xc213bdf6 rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0xc225fd33 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0xc226b040 mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0xc23e0fb8 proc_remove +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc26cabfe skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0xc26cf96b serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xc26f5467 dma_map_resource +EXPORT_SYMBOL vmlinux 0xc270953f agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0xc278c965 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc280c38f skb_free_datagram +EXPORT_SYMBOL vmlinux 0xc289ab46 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2b099cc input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xc2ba28bf request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xc2be0437 fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0xc2cb1ece devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0xc2d4ca2c seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e9e546 folio_account_redirty +EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state +EXPORT_SYMBOL vmlinux 0xc30b195a pci_request_irq +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc318494d mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc31edcf2 phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xc34033d2 scsi_device_get +EXPORT_SYMBOL vmlinux 0xc3457666 mr_dump +EXPORT_SYMBOL vmlinux 0xc36a3bd4 __acpi_handle_debug +EXPORT_SYMBOL vmlinux 0xc36e2218 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xc3762aec mempool_alloc +EXPORT_SYMBOL vmlinux 0xc37b4696 phy_start_cable_test +EXPORT_SYMBOL vmlinux 0xc37f7cbc netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0xc37f9c6e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer +EXPORT_SYMBOL vmlinux 0xc38dfedc default_llseek +EXPORT_SYMBOL vmlinux 0xc3a106b6 generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3bc72ad trace_print_array_seq +EXPORT_SYMBOL vmlinux 0xc3c32a06 is_acpi_data_node +EXPORT_SYMBOL vmlinux 0xc3ca168d mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0xc3f93c4d flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0xc3ff38c2 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc4061bcd serio_open +EXPORT_SYMBOL vmlinux 0xc407a3d5 netdev_change_features +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 0xc44bfae7 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xc452212c utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0xc452b4ca __inet_hash +EXPORT_SYMBOL vmlinux 0xc46753d3 key_payload_reserve +EXPORT_SYMBOL vmlinux 0xc468bf97 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xc4742f2e qdisc_hash_add +EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc49587ac netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xc4a2c5f5 devm_clk_get +EXPORT_SYMBOL vmlinux 0xc4ae915e arch_touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xc4e76369 filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0xc4ee8c70 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc5105b84 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0xc528a49a queued_write_lock_slowpath +EXPORT_SYMBOL vmlinux 0xc52f1957 skb_expand_head +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc56a2c77 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0xc57c48a3 idr_get_next +EXPORT_SYMBOL vmlinux 0xc582798e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xc5856a4e dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0xc58a32f0 registered_fb +EXPORT_SYMBOL vmlinux 0xc58c9e0f agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xc58d5a90 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on +EXPORT_SYMBOL vmlinux 0xc5bf112f scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xc5c80c48 fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0xc5c90074 param_ops_string +EXPORT_SYMBOL vmlinux 0xc5cc77b0 i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0xc5d31b67 skb_split +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource +EXPORT_SYMBOL vmlinux 0xc5f55b9d __ClearPageMovable +EXPORT_SYMBOL vmlinux 0xc5f7e801 sg_last +EXPORT_SYMBOL vmlinux 0xc5fa3c06 sock_bind_add +EXPORT_SYMBOL vmlinux 0xc601e333 follow_down_one +EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus +EXPORT_SYMBOL vmlinux 0xc61ca65e iowrite64be_hi_lo +EXPORT_SYMBOL vmlinux 0xc622556f prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc62cccc3 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc66a8304 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0xc6717546 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0xc67a6ebc __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0xc680cb6b blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0xc688af0b configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0xc6910aa0 do_trace_rdpmc +EXPORT_SYMBOL vmlinux 0xc694e886 mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0xc694f08d skb_clone_sk +EXPORT_SYMBOL vmlinux 0xc6a54bb7 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xc6c3948f neigh_lookup +EXPORT_SYMBOL vmlinux 0xc6c688cd xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xc6c85d94 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6ce80f2 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0xc6d09aa9 release_firmware +EXPORT_SYMBOL vmlinux 0xc6d3160a __getblk_gfp +EXPORT_SYMBOL vmlinux 0xc6d35d18 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc6e550d4 input_inject_event +EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key +EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc73bee29 build_skb_around +EXPORT_SYMBOL vmlinux 0xc73fbeb5 simple_release_fs +EXPORT_SYMBOL vmlinux 0xc74d6cd7 dqput +EXPORT_SYMBOL vmlinux 0xc751cb2d input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0xc77e4fdf keyring_search +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ad0459 phy_print_status +EXPORT_SYMBOL vmlinux 0xc7af0097 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0xc7d094b5 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xc7eda6bc mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0xc8068e45 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xc80ab559 swake_up_one +EXPORT_SYMBOL vmlinux 0xc836e7ca flow_keys_dissector +EXPORT_SYMBOL vmlinux 0xc83b7173 flow_rule_alloc +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc85fa08c xp_raw_get_data +EXPORT_SYMBOL vmlinux 0xc87133ca kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc877dcde drop_nlink +EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals +EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc8a5dde0 devm_rproc_add +EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread +EXPORT_SYMBOL vmlinux 0xc8b5695b jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xc8c3c5c6 folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0xc8c66e17 jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0xc8ca7571 ndisc_ns_create +EXPORT_SYMBOL vmlinux 0xc8cecc12 inet_select_addr +EXPORT_SYMBOL vmlinux 0xc8dcc62a krealloc +EXPORT_SYMBOL vmlinux 0xc9000925 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xc9216a82 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0xc93e8461 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0xc942eefb param_array_ops +EXPORT_SYMBOL vmlinux 0xc944a356 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xc94899b3 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0xc951577a kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xc9549a7c copy_page_to_iter +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc9684246 seq_vprintf +EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc97f29f4 rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0xc9822234 clk_register_clkdev +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b33111 cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0xc9b86873 cros_ec_query_all +EXPORT_SYMBOL vmlinux 0xc9cfd9e6 folio_migrate_copy +EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9e27479 seq_bprintf +EXPORT_SYMBOL vmlinux 0xc9f184ca ram_aops +EXPORT_SYMBOL vmlinux 0xc9f34c1d acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0xc9ff769b vfs_getattr +EXPORT_SYMBOL vmlinux 0xca1648d4 zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0xca19c4e5 udp_ioctl +EXPORT_SYMBOL vmlinux 0xca1dd5df inet6_protos +EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free +EXPORT_SYMBOL vmlinux 0xca2a475d devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0xca2ec9f4 dev_get_iflink +EXPORT_SYMBOL vmlinux 0xca314e99 key_put +EXPORT_SYMBOL vmlinux 0xca328fa9 _dev_emerg +EXPORT_SYMBOL vmlinux 0xca3b9bab __lock_buffer +EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function +EXPORT_SYMBOL vmlinux 0xca5b2387 __vfs_removexattr +EXPORT_SYMBOL vmlinux 0xca6dd3eb inet_stream_ops +EXPORT_SYMBOL vmlinux 0xca8ba85b xfrm_state_free +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca9beaa4 __xa_store +EXPORT_SYMBOL vmlinux 0xcaaf3511 d_instantiate +EXPORT_SYMBOL vmlinux 0xcabcacd6 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0xcad1aca8 acpi_exception +EXPORT_SYMBOL vmlinux 0xcad37692 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb06abcf request_key_rcu +EXPORT_SYMBOL vmlinux 0xcb153970 backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0xcb1c0b2a dev_uc_sync +EXPORT_SYMBOL vmlinux 0xcb2903c9 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0xcb2e165a dev_add_offload +EXPORT_SYMBOL vmlinux 0xcb333cdf dma_ops +EXPORT_SYMBOL vmlinux 0xcb38354c flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xcb4421aa kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0xcb60f542 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xcb6156a9 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xcb63241f generic_file_read_iter +EXPORT_SYMBOL vmlinux 0xcb6d61b0 __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb73e388 consume_skb +EXPORT_SYMBOL vmlinux 0xcb7eba37 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0xcb98c091 uart_resume_port +EXPORT_SYMBOL vmlinux 0xcba9297f reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0xcbb0dab4 hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0xcbb36a5b __sk_dst_check +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbd47ae2 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0xcbd4898c fortify_panic +EXPORT_SYMBOL vmlinux 0xcbfb33e4 init_opal_dev +EXPORT_SYMBOL vmlinux 0xcc0226fd ip_output +EXPORT_SYMBOL vmlinux 0xcc090926 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xcc0c34d9 ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0xcc1b882a idr_get_next_ul +EXPORT_SYMBOL vmlinux 0xcc1f804c nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xcc23002a hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc2c0407 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xcc2e2de3 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0xcc2fc24a unix_get_socket +EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class +EXPORT_SYMBOL vmlinux 0xcc33475e param_set_short +EXPORT_SYMBOL vmlinux 0xcc373853 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xcc411ed1 ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0xcc445ceb __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5c2df4 trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0xcc5d22d9 can_do_mlock +EXPORT_SYMBOL vmlinux 0xcc728f31 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0xcc87cfe8 block_dirty_folio +EXPORT_SYMBOL vmlinux 0xcc899e12 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0xcc8c2c95 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xcc99c062 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xcca2d4b5 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xcca5839d xen_vcpu_id +EXPORT_SYMBOL vmlinux 0xcca90586 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xccad1aa2 fs_param_is_enum +EXPORT_SYMBOL vmlinux 0xccb49e68 mdiobus_write +EXPORT_SYMBOL vmlinux 0xcccc8cd7 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0xccd4c999 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xccd53615 eisa_driver_unregister +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 0xcd1136ab xfrm_state_add +EXPORT_SYMBOL vmlinux 0xcd1949f5 amd_iommu_flush_page +EXPORT_SYMBOL vmlinux 0xcd19d503 mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0xcd256667 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd4c896a __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xcd598789 kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0xcd5fbc63 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0xcd68f286 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xcd6a9998 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xcd78d28a param_get_invbool +EXPORT_SYMBOL vmlinux 0xcd7b50ca blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xcd829baf inode_get_bytes +EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception +EXPORT_SYMBOL vmlinux 0xcd9e50d2 pps_event +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcddae5ae dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0xcddb5086 dev_addr_add +EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev +EXPORT_SYMBOL vmlinux 0xcdfaf8f0 param_get_string +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce31aaf1 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xce343fae migrate_page_states +EXPORT_SYMBOL vmlinux 0xce3bd468 folio_wait_bit +EXPORT_SYMBOL vmlinux 0xce46f354 touchscreen_parse_properties +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 0xce6e26f6 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xce7006f7 sock_init_data +EXPORT_SYMBOL vmlinux 0xce76c257 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xce777e44 __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0xce807a25 up_write +EXPORT_SYMBOL vmlinux 0xce812241 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0xce945823 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xce9bb630 fs_param_is_bool +EXPORT_SYMBOL vmlinux 0xce9d630f vga_put +EXPORT_SYMBOL vmlinux 0xcea381dd x86_match_cpu +EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul +EXPORT_SYMBOL vmlinux 0xceb6218b netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0xcebbaffe dst_alloc +EXPORT_SYMBOL vmlinux 0xced0f4d4 gen_pool_create +EXPORT_SYMBOL vmlinux 0xced83679 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xcee351ea pnp_start_dev +EXPORT_SYMBOL vmlinux 0xcee5bf88 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xceec8abd __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xcef0314b sock_i_uid +EXPORT_SYMBOL vmlinux 0xcef8d830 of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0xcef95711 clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0xcefb0c9f __mutex_init +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcefdcec8 bio_chain +EXPORT_SYMBOL vmlinux 0xceff3d8a dquot_resume +EXPORT_SYMBOL vmlinux 0xcf11a2c7 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xcf293b1b bh_submit_read +EXPORT_SYMBOL vmlinux 0xcf2a6966 up +EXPORT_SYMBOL vmlinux 0xcf387b0a ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xcf4fdd4d _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xcf56e508 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xcf5ac0c5 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0xcf5e19ed cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0xcfa7e913 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xcfb1d8b2 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0xcfc9deaf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xcfd219a0 phy_sfp_probe +EXPORT_SYMBOL vmlinux 0xcfd884a8 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0xcfdd2e7b vfs_llseek +EXPORT_SYMBOL vmlinux 0xcfe1e242 dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0xcfeb12e2 filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0xcff2d502 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0xd00c304d make_kgid +EXPORT_SYMBOL vmlinux 0xd027542d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xd0404127 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xd04058d2 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xd046e63a ps2_sliced_command +EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0xd05d476f fs_param_is_string +EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function +EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive +EXPORT_SYMBOL vmlinux 0xd08adb2b trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0xd08c1765 phy_attached_print +EXPORT_SYMBOL vmlinux 0xd09b53b7 phy_aneg_done +EXPORT_SYMBOL vmlinux 0xd0b74705 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xd0bc001b ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xd0cd6748 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0xd0cf3958 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xd0da656b __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xd0dacf3d dev_close +EXPORT_SYMBOL vmlinux 0xd0f284b8 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0xd0fe8d51 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1077978 copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0xd10ab4a4 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd10be3ca __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0xd11941d7 netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0xd12c49a8 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xd1363cc1 ucs2_strsize +EXPORT_SYMBOL vmlinux 0xd14419bd eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xd1720b67 __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0xd17220f8 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xd18e520d dcache_readdir +EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xd19625ce __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0xd1e0ff07 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xd1f60a89 arch_io_free_memtype_wc +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd200a8c1 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xd21028c1 security_unix_may_send +EXPORT_SYMBOL vmlinux 0xd217c29b __invalidate_device +EXPORT_SYMBOL vmlinux 0xd21c5139 iowrite64_lo_hi +EXPORT_SYMBOL vmlinux 0xd2237016 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0xd2297310 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xd22bf322 fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0xd22d073d seq_pad +EXPORT_SYMBOL vmlinux 0xd24108d4 rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26bd2c5 mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd2926729 generic_writepages +EXPORT_SYMBOL vmlinux 0xd2aab103 __skb_ext_del +EXPORT_SYMBOL vmlinux 0xd2b432f3 register_console +EXPORT_SYMBOL vmlinux 0xd2b6fef3 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xd2bc5c46 __get_user_nocheck_2 +EXPORT_SYMBOL vmlinux 0xd2c99738 __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd2d68a3c mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e2a9d0 hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xd2e97ce5 dev_lstats_read +EXPORT_SYMBOL vmlinux 0xd2ea49b8 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0xd2eace43 notify_change +EXPORT_SYMBOL vmlinux 0xd2eafee6 noop_llseek +EXPORT_SYMBOL vmlinux 0xd2ecac0b __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0xd2f5d8c7 __fput_sync +EXPORT_SYMBOL vmlinux 0xd3080ab1 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0xd309cd45 blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0xd30f0d8d __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0xd3203859 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd3360174 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xd338ea7e __SCT__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xd33bf1ac fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0xd3543063 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xd35cce70 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd362c30a set_pages_wb +EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 +EXPORT_SYMBOL vmlinux 0xd36e3d59 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xd36fccb9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0xd3797fb9 _dev_warn +EXPORT_SYMBOL vmlinux 0xd37cbe97 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0xd37cd970 platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0xd38cd261 __default_kernel_pte_mask +EXPORT_SYMBOL vmlinux 0xd38f4663 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd3b65d87 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0xd3e48ac3 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0xd3e8059d blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xd3ffea82 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd40e2b9e dev_deactivate +EXPORT_SYMBOL vmlinux 0xd4263478 _dev_info +EXPORT_SYMBOL vmlinux 0xd427e993 is_nd_pfn +EXPORT_SYMBOL vmlinux 0xd42d81fc __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xd437867b vlan_for_each +EXPORT_SYMBOL vmlinux 0xd43859f2 param_ops_uint +EXPORT_SYMBOL vmlinux 0xd43cd9b0 __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xd44e305f ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0xd45cc6ca bin2hex +EXPORT_SYMBOL vmlinux 0xd471b10d max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd48a692e nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xd4910dcc tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xd494bc92 pci_enable_device +EXPORT_SYMBOL vmlinux 0xd4abb0d9 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xd4b3d325 xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0xd4b4736a get_phy_device +EXPORT_SYMBOL vmlinux 0xd4bb4a82 inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd4d1983c udplite_table +EXPORT_SYMBOL vmlinux 0xd4f0a0fd agp_generic_enable +EXPORT_SYMBOL vmlinux 0xd4fa5a87 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xd51950b1 seq_read +EXPORT_SYMBOL vmlinux 0xd51b357f md_write_start +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd534123c scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xd5346bfc acpi_get_possible_resources +EXPORT_SYMBOL vmlinux 0xd53de465 netpoll_setup +EXPORT_SYMBOL vmlinux 0xd56a1f11 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xd579a67c __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0xd58c4893 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xd59c2245 release_sock +EXPORT_SYMBOL vmlinux 0xd5a02725 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xd5b3d0d5 xxh64_copy_state +EXPORT_SYMBOL vmlinux 0xd5be1937 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xd5cf3418 sock_no_accept +EXPORT_SYMBOL vmlinux 0xd5d5a9a3 kobject_del +EXPORT_SYMBOL vmlinux 0xd5e21a7d flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0xd5ec1d85 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xd5ef5df1 folio_unlock +EXPORT_SYMBOL vmlinux 0xd5fd90f1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0xd6130ec9 sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0xd61fb23d __ps2_command +EXPORT_SYMBOL vmlinux 0xd62ecd49 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xd66c8184 add_device_randomness +EXPORT_SYMBOL vmlinux 0xd6742002 preempt_schedule_thunk +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource +EXPORT_SYMBOL vmlinux 0xd68ca82b twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xd691c6a9 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd6977d4d flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0xd6a1ce98 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0xd6a91f54 twl_i2c_read +EXPORT_SYMBOL vmlinux 0xd6b2ed5f generate_pm_trace +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6bac031 scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0xd6caa05e ip4_datagram_connect +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 0xd7180375 devm_request_resource +EXPORT_SYMBOL vmlinux 0xd71dc664 file_remove_privs +EXPORT_SYMBOL vmlinux 0xd72e5cf0 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0xd734110a keyring_alloc +EXPORT_SYMBOL vmlinux 0xd73795e1 param_set_long +EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd7482f05 vcalloc +EXPORT_SYMBOL vmlinux 0xd7485f35 eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0xd76b83ff inc_nlink +EXPORT_SYMBOL vmlinux 0xd771ed7b remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xd77a6627 blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0xd77e9b5a dm_io +EXPORT_SYMBOL vmlinux 0xd78c9a4e __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load +EXPORT_SYMBOL vmlinux 0xd79f7f32 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e507f1 tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd8242a5d fb_pan_display +EXPORT_SYMBOL vmlinux 0xd82d45d7 genphy_update_link +EXPORT_SYMBOL vmlinux 0xd83e3efc pmem_sector_size +EXPORT_SYMBOL vmlinux 0xd8409ae9 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xd846c315 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0xd8573a48 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xd87be8f2 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xd88802c2 pci_find_bus +EXPORT_SYMBOL vmlinux 0xd88e7c61 mr_table_dump +EXPORT_SYMBOL vmlinux 0xd89940b4 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a2a345 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font +EXPORT_SYMBOL vmlinux 0xd8cef6e1 clear_user +EXPORT_SYMBOL vmlinux 0xd8d1c943 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0xd8d4f4ca jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xd8dacde3 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xd8df08ac acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xd8ec9f94 jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0xd8eedb8f agp_free_memory +EXPORT_SYMBOL vmlinux 0xd8f6e1fe ip_frag_init +EXPORT_SYMBOL vmlinux 0xd91eec17 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xd91f6ab6 strnlen_user +EXPORT_SYMBOL vmlinux 0xd92deb6b acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xd933f209 __SCT__tp_func_rdpmc +EXPORT_SYMBOL vmlinux 0xd947c7c6 __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0xd9491c14 xa_destroy +EXPORT_SYMBOL vmlinux 0xd94fc513 kobject_init +EXPORT_SYMBOL vmlinux 0xd959cabd phy_resume +EXPORT_SYMBOL vmlinux 0xd970d787 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0xd971c6c4 xen_arch_register_cpu +EXPORT_SYMBOL vmlinux 0xd97b29c9 dm_get_device +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9a5ea54 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xd9b85ef6 lockref_get +EXPORT_SYMBOL vmlinux 0xd9cc3eb1 textsearch_register +EXPORT_SYMBOL vmlinux 0xd9cd3ce8 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0xd9cf4cdf uart_get_divisor +EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler +EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0xd9e9e2aa dcache_dir_close +EXPORT_SYMBOL vmlinux 0xd9f47997 phy_connect +EXPORT_SYMBOL vmlinux 0xd9fbda09 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0xda08d393 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xda1434df kernel_write +EXPORT_SYMBOL vmlinux 0xda1ddef1 acpi_mark_gpe_for_wake +EXPORT_SYMBOL vmlinux 0xda248bc3 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0xda26b8ea __irq_regs +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda86eb61 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0xda95351d vfs_create +EXPORT_SYMBOL vmlinux 0xda9e0bb7 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xdaba88e6 filemap_map_pages +EXPORT_SYMBOL vmlinux 0xdabee450 da903x_query_status +EXPORT_SYMBOL vmlinux 0xdac012d7 netdev_state_change +EXPORT_SYMBOL vmlinux 0xdac355fe skb_dump +EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0xdac60689 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0xdace9773 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xdad13544 ptrs_per_p4d +EXPORT_SYMBOL vmlinux 0xdad1fc3f zstd_flush_stream +EXPORT_SYMBOL vmlinux 0xdaec288d pr_flush +EXPORT_SYMBOL vmlinux 0xdaf3e4a7 key_reject_and_link +EXPORT_SYMBOL vmlinux 0xdaf6a5b1 kthread_create_worker +EXPORT_SYMBOL vmlinux 0xdb16046c jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0xdb16b170 topology_phys_to_logical_pkg +EXPORT_SYMBOL vmlinux 0xdb179cd1 __put_devmap_managed_page_refs +EXPORT_SYMBOL vmlinux 0xdb1a7364 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xdb22a563 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xdb2abde4 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0xdb39a47b vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0xdb4da71d inet_ioctl +EXPORT_SYMBOL vmlinux 0xdb551c8d nf_log_register +EXPORT_SYMBOL vmlinux 0xdb59205d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xdb64bed1 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb84726d pagecache_get_page +EXPORT_SYMBOL vmlinux 0xdb95e185 intel_scu_ipc_dev_command_with_size +EXPORT_SYMBOL vmlinux 0xdb98f02e pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0xdbc94dbf phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0xdbcf041a acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xdbd09e9d skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0xdbd50968 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource +EXPORT_SYMBOL vmlinux 0xdbe25d61 mmc_command_done +EXPORT_SYMBOL vmlinux 0xdbe70af3 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xdbff17a1 fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0xdc0b0683 __check_sticky +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc2120f9 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0xdc2cc389 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xdc455a9e devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0xdc512134 backlight_register_notifier +EXPORT_SYMBOL vmlinux 0xdc514376 igrab +EXPORT_SYMBOL vmlinux 0xdc51bdab pci_read_config_dword +EXPORT_SYMBOL vmlinux 0xdc5736d5 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0xdc6a670b dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0xdc775c5a tcp_add_backlog +EXPORT_SYMBOL vmlinux 0xdca8cd41 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xdcc77a7d blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xdcdc0040 slhc_compress +EXPORT_SYMBOL vmlinux 0xdd00447a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xdd0f5118 vm_insert_page +EXPORT_SYMBOL vmlinux 0xdd152e0f set_binfmt +EXPORT_SYMBOL vmlinux 0xdd160648 generic_setlease +EXPORT_SYMBOL vmlinux 0xdd164a51 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xdd18a993 acpi_check_dsm +EXPORT_SYMBOL vmlinux 0xdd1969be ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xdd26e2c9 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create +EXPORT_SYMBOL vmlinux 0xdd370aea fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0xdd3a2eca scsi_target_resume +EXPORT_SYMBOL vmlinux 0xdd3cc2c7 reuseport_alloc +EXPORT_SYMBOL vmlinux 0xdd4d55b6 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0xdd5e0a0c security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0xdd5e75ea textsearch_prepare +EXPORT_SYMBOL vmlinux 0xdd64e639 strscpy +EXPORT_SYMBOL vmlinux 0xdd78d533 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xdd7cbdf0 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xdd8166a1 dma_fence_free +EXPORT_SYMBOL vmlinux 0xdd81a6fa inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xdda63cce i8042_install_filter +EXPORT_SYMBOL vmlinux 0xdda7385b xp_alloc_batch +EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xddcbe1f3 acpi_ut_value_exit +EXPORT_SYMBOL vmlinux 0xddd59d09 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xddf23a70 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xddf2e8fd tcp_read_sock +EXPORT_SYMBOL vmlinux 0xddf6ad7a completion_done +EXPORT_SYMBOL vmlinux 0xde000b0c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xde012504 do_clone_file_range +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 0xde6aa0b7 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xde80cd09 ioremap +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea9eb4b mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0xdebba72e unix_detach_fds +EXPORT_SYMBOL vmlinux 0xdece6384 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xdedb8184 simple_setattr +EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode +EXPORT_SYMBOL vmlinux 0xdef8d0ae __SCT__tp_func_kfree +EXPORT_SYMBOL vmlinux 0xdefaed40 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xdf0ec1d0 __sk_receive_skb +EXPORT_SYMBOL vmlinux 0xdf256037 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf2ebb87 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xdf36914b xa_find_after +EXPORT_SYMBOL vmlinux 0xdf38c93d convert_art_to_tsc +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf5bc3d3 __mdiobus_register +EXPORT_SYMBOL vmlinux 0xdf6b082f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xdf79aec6 rproc_of_parse_firmware +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 0xdfc10c94 load_nls +EXPORT_SYMBOL vmlinux 0xdfc12ef1 zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0xdfc6a502 keyring_clear +EXPORT_SYMBOL vmlinux 0xdfcc992c current_work +EXPORT_SYMBOL vmlinux 0xdfda3c16 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xdfdc1af4 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0xdfe4a6b6 phy_loopback +EXPORT_SYMBOL vmlinux 0xdff905e5 vme_slave_free +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe0112fc4 __x86_indirect_thunk_r9 +EXPORT_SYMBOL vmlinux 0xe0114b23 vma_alloc_folio +EXPORT_SYMBOL vmlinux 0xe0250534 free_task +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 0xe03a689d dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0xe03d441d dquot_initialize +EXPORT_SYMBOL vmlinux 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe05f929e tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0xe070019a __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0xe07e5f44 acpi_reconfig_notifier_unregister +EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups +EXPORT_SYMBOL vmlinux 0xe082e88d acpi_check_address_range +EXPORT_SYMBOL vmlinux 0xe091c977 list_sort +EXPORT_SYMBOL vmlinux 0xe0a323f6 __do_once_slow_start +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0be62ef ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0xe0bf5bd5 dquot_acquire +EXPORT_SYMBOL vmlinux 0xe0cc2816 fd_install +EXPORT_SYMBOL vmlinux 0xe0ccacb2 phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0xe0dd77da xfrm_input +EXPORT_SYMBOL vmlinux 0xe0e264f5 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0xe0e428fb vfio_unregister_notifier +EXPORT_SYMBOL vmlinux 0xe0ee8eb5 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xe102324d netdev_err +EXPORT_SYMBOL vmlinux 0xe1122ec6 skb_eth_push +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe123aba7 d_hash_and_lookup +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 0xe142bddb qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xe1469b0c iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xe15874e3 scsi_print_command +EXPORT_SYMBOL vmlinux 0xe176a9be rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0xe187ea5d sock_edemux +EXPORT_SYMBOL vmlinux 0xe18e328e inet_listen +EXPORT_SYMBOL vmlinux 0xe192ad39 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xe1b6d25e bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0xe1bee700 __traceiter_read_msr +EXPORT_SYMBOL vmlinux 0xe1ca2cae jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xe1dad85f tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xe1db1101 dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format +EXPORT_SYMBOL vmlinux 0xe1fd8377 rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0xe204ebb7 fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0xe21f18ac __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0xe21f9114 __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0xe230a9e4 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xe2538cd6 from_kgid +EXPORT_SYMBOL vmlinux 0xe273d75d alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0xe27b1336 trace_event_printf +EXPORT_SYMBOL vmlinux 0xe2831e2e security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0xe28d7b77 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0xe2990ee3 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xe299f580 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xe2c17b5d __SCT__might_resched +EXPORT_SYMBOL vmlinux 0xe2ccb111 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d70401 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xe2dcaff5 nd_device_register +EXPORT_SYMBOL vmlinux 0xe2e28fc0 __traceiter_write_msr +EXPORT_SYMBOL vmlinux 0xe2e391ad nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0xe2f1e74f blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xe2f4ee17 nf_log_unset +EXPORT_SYMBOL vmlinux 0xe303f1bd rproc_add +EXPORT_SYMBOL vmlinux 0xe307ff5d input_open_device +EXPORT_SYMBOL vmlinux 0xe30df57f inet6_getname +EXPORT_SYMBOL vmlinux 0xe3138a3e __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xe3157ceb register_framebuffer +EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest +EXPORT_SYMBOL vmlinux 0xe32bb61d pci_biosrom_size +EXPORT_SYMBOL vmlinux 0xe3324ae3 vfs_mkobj +EXPORT_SYMBOL vmlinux 0xe33b77af phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xe33d7559 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0xe35212c0 register_fib_notifier +EXPORT_SYMBOL vmlinux 0xe3565eb2 backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0xe36c9572 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xe37dfdf5 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xe37f86c9 tso_build_data +EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 +EXPORT_SYMBOL vmlinux 0xe3cb1da0 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0xe3d857ea __cpu_active_mask +EXPORT_SYMBOL vmlinux 0xe3e0142f ilookup +EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe404c1d1 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0xe404dafe dev_get_mac_address +EXPORT_SYMBOL vmlinux 0xe40976c0 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0xe40c37ea down_write_trylock +EXPORT_SYMBOL vmlinux 0xe419bc99 iowrite32be +EXPORT_SYMBOL vmlinux 0xe41a6249 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0xe42f221e dquot_drop +EXPORT_SYMBOL vmlinux 0xe431affc kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0xe4329092 __ctzdi2 +EXPORT_SYMBOL vmlinux 0xe4386fec pci_read_config_byte +EXPORT_SYMBOL vmlinux 0xe4433ada devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xe46021ca _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe46221be __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xe466d3b6 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xe473f0aa __i2c_transfer +EXPORT_SYMBOL vmlinux 0xe4948a22 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xe4a5288d sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xe4a6a55d inet_frag_find +EXPORT_SYMBOL vmlinux 0xe4a80605 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xe4bc2c2f hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe4c6f3ce tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0xe4d80bf4 acpi_enable +EXPORT_SYMBOL vmlinux 0xe4e57db9 sock_no_bind +EXPORT_SYMBOL vmlinux 0xe4f49a71 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe50aa447 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe51f4e48 vme_slave_request +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5297f62 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xe52b1058 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0xe52dff04 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xe54ad183 crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0xe5774209 page_get_link +EXPORT_SYMBOL vmlinux 0xe57beaee pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0xe5886434 folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0xe59f441f __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xe5aa8f6d ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xe5adcce3 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xe5c60bd2 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5def077 proc_set_user +EXPORT_SYMBOL vmlinux 0xe6011bb7 tcp_conn_request +EXPORT_SYMBOL vmlinux 0xe613a798 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0xe6262cba md_register_thread +EXPORT_SYMBOL vmlinux 0xe62ea3dc iptun_encaps +EXPORT_SYMBOL vmlinux 0xe6345023 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xe6476ea2 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xe6550092 utf8_casefold +EXPORT_SYMBOL vmlinux 0xe66a75ed blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xe6833b2b dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0xe68d7c67 finish_swait +EXPORT_SYMBOL vmlinux 0xe68efe41 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xe691fd22 phy_device_create +EXPORT_SYMBOL vmlinux 0xe6a341f8 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xe6a8f0f4 inet_sk_set_state +EXPORT_SYMBOL vmlinux 0xe6bbd9e8 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xe6c2c8e6 phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0xe6c49e03 seq_printf +EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0xe6fa06a2 rename_lock +EXPORT_SYMBOL vmlinux 0xe70877d4 acpi_remove_sci_handler +EXPORT_SYMBOL vmlinux 0xe70ee662 reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0xe7257ab8 xa_store_range +EXPORT_SYMBOL vmlinux 0xe72d38d0 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xe738cdbb block_write_begin +EXPORT_SYMBOL vmlinux 0xe73b9ea5 page_symlink +EXPORT_SYMBOL vmlinux 0xe787698f acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xe78a6f59 input_get_timestamp +EXPORT_SYMBOL vmlinux 0xe792c4f2 udp_seq_start +EXPORT_SYMBOL vmlinux 0xe796ecac __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe7a02573 ida_alloc_range +EXPORT_SYMBOL vmlinux 0xe7a48005 md_check_recovery +EXPORT_SYMBOL vmlinux 0xe7ab1ecc _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xe7be89b9 scsi_done +EXPORT_SYMBOL vmlinux 0xe7bff7f2 release_pages +EXPORT_SYMBOL vmlinux 0xe7d2c624 netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7da62ee simple_empty +EXPORT_SYMBOL vmlinux 0xe7e6f480 devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0xe8330a5a call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe83cc2a7 dqget +EXPORT_SYMBOL vmlinux 0xe85e4679 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xe85f2123 acpi_tb_unload_table +EXPORT_SYMBOL vmlinux 0xe86ac918 configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0xe86b15c3 f_setown +EXPORT_SYMBOL vmlinux 0xe873e50c rproc_report_crash +EXPORT_SYMBOL vmlinux 0xe88c2825 kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0xe89277e2 sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0xe8ab5baf scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xe8b913ab neigh_table_init +EXPORT_SYMBOL vmlinux 0xe8bb3fdf param_get_ulong +EXPORT_SYMBOL vmlinux 0xe8bec575 vme_init_bridge +EXPORT_SYMBOL vmlinux 0xe8c6e820 skb_push +EXPORT_SYMBOL vmlinux 0xe8dd3e15 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xe8fbf4fa __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xe901c9c2 unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0xe909997a bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0xe909aa01 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0xe90f55ad mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91f9908 arp_send +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95e3d50 phy_device_register +EXPORT_SYMBOL vmlinux 0xe9850a92 drop_super +EXPORT_SYMBOL vmlinux 0xe9880441 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe9a5e67f intel_graphics_stolen_res +EXPORT_SYMBOL vmlinux 0xe9a7cb34 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xe9af7397 __xa_set_mark +EXPORT_SYMBOL vmlinux 0xe9b63fa4 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xe9b9db6e ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0xe9c55c88 __mdiobus_write +EXPORT_SYMBOL vmlinux 0xe9c669c6 dev_load +EXPORT_SYMBOL vmlinux 0xe9d0f4b5 vme_irq_generate +EXPORT_SYMBOL vmlinux 0xe9dc12a4 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0xe9e8faeb efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0xe9eae268 d_tmpfile +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9ffc063 down_trylock +EXPORT_SYMBOL vmlinux 0xea00c298 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0xea02f574 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0xea1238fa inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xea35492d rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0xea38f411 find_inode_nowait +EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int +EXPORT_SYMBOL vmlinux 0xea528790 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xea55307c folio_mapped +EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0xea778fab sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0xea837fc6 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xea84c39f agp_enable +EXPORT_SYMBOL vmlinux 0xeaa6c25c sock_set_mark +EXPORT_SYMBOL vmlinux 0xeab5240e alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0xeab6f4c4 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xead7972e dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0xeadf0fef xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaebf309 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeb078aee _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xeb0ebd7c tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0xeb100553 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xeb19e5c5 tcf_qevent_init +EXPORT_SYMBOL vmlinux 0xeb233a45 __kmalloc +EXPORT_SYMBOL vmlinux 0xeb30d177 get_cached_acl +EXPORT_SYMBOL vmlinux 0xeb31aee8 acpi_trace_point +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3eb52f md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xeb434a54 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb72c08a xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0xeb79a80e seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices +EXPORT_SYMBOL vmlinux 0xeb81cfff bdevname +EXPORT_SYMBOL vmlinux 0xeb905f14 block_write_end +EXPORT_SYMBOL vmlinux 0xeb9e913d sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint +EXPORT_SYMBOL vmlinux 0xebb2c0cb framebuffer_release +EXPORT_SYMBOL vmlinux 0xebb8a484 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0xebc726f0 mdio_device_remove +EXPORT_SYMBOL vmlinux 0xebdee8ef inode_init_owner +EXPORT_SYMBOL vmlinux 0xebe8b479 register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0xebf5e4c9 ps2_drain +EXPORT_SYMBOL vmlinux 0xebf8b545 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xec049783 netdev_emerg +EXPORT_SYMBOL vmlinux 0xec137035 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xec285906 tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0xec2b8a42 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xec2e1c8f proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xec3166f5 __netif_schedule +EXPORT_SYMBOL vmlinux 0xec35620b xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xec3a0884 genl_notify +EXPORT_SYMBOL vmlinux 0xec49fbfb unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec563a87 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0xec5f871e inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0xec6b482e filemap_alloc_folio +EXPORT_SYMBOL vmlinux 0xec77d42d mdio_driver_register +EXPORT_SYMBOL vmlinux 0xec80ce0c vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xec8cddf6 may_umount_tree +EXPORT_SYMBOL vmlinux 0xec9b2697 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0xecac8407 __memcpy +EXPORT_SYMBOL vmlinux 0xecb0ecb3 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0xecb3aca2 cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0xecb9b27c mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xecdcabd2 copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0xece67b8a is_bad_inode +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf64918 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xecfd68ef acpi_get_node +EXPORT_SYMBOL vmlinux 0xed00c4fb acpi_os_printf +EXPORT_SYMBOL vmlinux 0xed238617 __put_cred +EXPORT_SYMBOL vmlinux 0xed338885 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xed34ebbc acpi_any_gpe_status_set +EXPORT_SYMBOL vmlinux 0xed382e69 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xed3b3c9a clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0xed3d49f3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xed4ed0dd genphy_resume +EXPORT_SYMBOL vmlinux 0xed50350d netif_device_detach +EXPORT_SYMBOL vmlinux 0xed55f929 acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable +EXPORT_SYMBOL vmlinux 0xed7f62f2 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xed84c643 vme_dma_list_add +EXPORT_SYMBOL vmlinux 0xed8f2b5a inet_frag_kill +EXPORT_SYMBOL vmlinux 0xed970d95 vfs_tmpfile +EXPORT_SYMBOL vmlinux 0xeda24356 alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0xeda4730b scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc15ca8 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0xedd03922 input_set_keycode +EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout +EXPORT_SYMBOL vmlinux 0xedef6a04 tcf_register_action +EXPORT_SYMBOL vmlinux 0xedf4d030 vga_client_register +EXPORT_SYMBOL vmlinux 0xee064ba1 tcf_idr_create +EXPORT_SYMBOL vmlinux 0xee0bfdf0 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xee0cb502 mount_single +EXPORT_SYMBOL vmlinux 0xee257729 __folio_lock +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee36b53d inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xee3cb199 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xee52dc65 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xee57c8fa rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee6fc5a3 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xee704fb0 generic_read_dir +EXPORT_SYMBOL vmlinux 0xee7d7deb gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee883b06 __vmalloc_array +EXPORT_SYMBOL vmlinux 0xee88bd4b filemap_flush +EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit +EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9a71fd gro_cells_init +EXPORT_SYMBOL vmlinux 0xee9ef706 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xeea48c77 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0xeea642a3 netif_device_attach +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeed3c484 __free_pages +EXPORT_SYMBOL vmlinux 0xeee0f39d blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xef04611f blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0xef16a3dc skb_copy +EXPORT_SYMBOL vmlinux 0xef31d978 sock_create +EXPORT_SYMBOL vmlinux 0xef38497a pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0xef44642a tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0xef455f32 jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0xef629d57 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0xef6e90ca input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xef88618c get_vm_area +EXPORT_SYMBOL vmlinux 0xef94e882 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xefa82ba8 sync_blockdev +EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work +EXPORT_SYMBOL vmlinux 0xefb26ed2 elv_rb_del +EXPORT_SYMBOL vmlinux 0xefbb2d42 rproc_free +EXPORT_SYMBOL vmlinux 0xefcea2e7 acpi_warning +EXPORT_SYMBOL vmlinux 0xefd9ceeb ipv4_mtu +EXPORT_SYMBOL vmlinux 0xefee932c acpi_get_data_full +EXPORT_SYMBOL vmlinux 0xeffd9169 kill_fasync +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0219534 skb_find_text +EXPORT_SYMBOL vmlinux 0xf022968a xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0xf02aa937 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xf02d26cf mpage_readahead +EXPORT_SYMBOL vmlinux 0xf04c21e4 __icmp_send +EXPORT_SYMBOL vmlinux 0xf054b670 d_alloc_anon +EXPORT_SYMBOL vmlinux 0xf05c32ad rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xf07012cb security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xf075aa6d nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0xf07a5aa6 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xf07f8032 fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0xf083abd5 key_type_keyring +EXPORT_SYMBOL vmlinux 0xf08c6718 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page +EXPORT_SYMBOL vmlinux 0xf0a71b1b revert_creds +EXPORT_SYMBOL vmlinux 0xf0b21f0c lock_sock_nested +EXPORT_SYMBOL vmlinux 0xf0d87251 tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0xf0e2c994 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xf10fed58 phy_error +EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0xf13163e1 generic_listxattr +EXPORT_SYMBOL vmlinux 0xf136af46 neigh_parms_release +EXPORT_SYMBOL vmlinux 0xf14ad073 xp_alloc +EXPORT_SYMBOL vmlinux 0xf14b2512 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xf159530b cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0xf16fe007 phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0xf18185f7 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0xf1848ee2 acpi_install_sci_handler +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xf19d0fb4 iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0xf1a65f7b zstd_reset_dstream +EXPORT_SYMBOL vmlinux 0xf1a68107 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xf1abf6b4 bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0xf1cef9e0 vme_irq_request +EXPORT_SYMBOL vmlinux 0xf1d176e6 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xf1d90ad7 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf1dab50b rw_verify_area +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e1aad3 xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf21150e0 genl_unregister_family +EXPORT_SYMBOL vmlinux 0xf21f4d98 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2441380 simple_recursive_removal +EXPORT_SYMBOL vmlinux 0xf25f9dcc dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0xf2628676 zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0xf27dc428 clocksource_unregister +EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init +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 0xf2aae0c2 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xf2b1c688 legacy_pic +EXPORT_SYMBOL vmlinux 0xf2b3a417 mount_nodev +EXPORT_SYMBOL vmlinux 0xf2b81b64 arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate +EXPORT_SYMBOL vmlinux 0xf2c5528f jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xf2cc8573 gro_cells_receive +EXPORT_SYMBOL vmlinux 0xf2dcf2cc pcim_set_mwi +EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2eda576 mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0xf2eee195 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xf2f44fb7 regset_get +EXPORT_SYMBOL vmlinux 0xf2f53617 memregion_free +EXPORT_SYMBOL vmlinux 0xf2fc89db tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xf303e091 has_capability +EXPORT_SYMBOL vmlinux 0xf306d562 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0xf30965ac iosf_mbi_register_pmic_bus_access_notifier +EXPORT_SYMBOL vmlinux 0xf3107926 sha224_update +EXPORT_SYMBOL vmlinux 0xf31fd2de fget +EXPORT_SYMBOL vmlinux 0xf3340eae md_write_inc +EXPORT_SYMBOL vmlinux 0xf34110a8 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xf341ee35 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xf346125f ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34adb83 xen_free_unpopulated_pages +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf35d2f31 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xf364fe8e blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xf36f42a9 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3a57892 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0xf3a73ff8 d_drop +EXPORT_SYMBOL vmlinux 0xf3b0132c __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf3b9c249 init_pseudo +EXPORT_SYMBOL vmlinux 0xf3bfe485 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xf3d63852 tty_register_driver +EXPORT_SYMBOL vmlinux 0xf3ddd0b0 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xf3decd56 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf3dfebed __neigh_create +EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource +EXPORT_SYMBOL vmlinux 0xf3e65814 mmc_add_host +EXPORT_SYMBOL vmlinux 0xf3f8102d mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0xf3f911f4 vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0xf3fa57b8 tcp_req_err +EXPORT_SYMBOL vmlinux 0xf3fc8a70 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0xf3febd3a softnet_data +EXPORT_SYMBOL vmlinux 0xf42d7be9 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xf43d2caa acpi_remove_interface +EXPORT_SYMBOL vmlinux 0xf442e05f no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier +EXPORT_SYMBOL vmlinux 0xf465d997 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const +EXPORT_SYMBOL vmlinux 0xf47c14ea mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0xf49add4b napi_gro_frags +EXPORT_SYMBOL vmlinux 0xf4a565fd wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b90312 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0xf4c04097 filp_close +EXPORT_SYMBOL vmlinux 0xf4cfcb7e input_get_keycode +EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy +EXPORT_SYMBOL vmlinux 0xf4dd38cd blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf5006bb4 km_query +EXPORT_SYMBOL vmlinux 0xf529ba63 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0xf535e93d fqdir_exit +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf540c10a arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xf56ef0f4 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0xf570b9d4 vga_switcheroo_fini_domain_pm_ops +EXPORT_SYMBOL vmlinux 0xf580c3ee buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xf58b5c9f netif_tx_unlock +EXPORT_SYMBOL vmlinux 0xf591753d nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5a0b6a5 fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0xf5a20ed2 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0xf5a5c84c msrs_alloc +EXPORT_SYMBOL vmlinux 0xf5add0ae ns_capable_setid +EXPORT_SYMBOL vmlinux 0xf5c2f322 dup_iter +EXPORT_SYMBOL vmlinux 0xf5cdabdd mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0xf5ceb869 sock_gettstamp +EXPORT_SYMBOL vmlinux 0xf5dcb02c blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xf5e1ca64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0xf5f588ee to_ndd +EXPORT_SYMBOL vmlinux 0xf60ab926 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xf60db589 sock_alloc +EXPORT_SYMBOL vmlinux 0xf60ec3e2 locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0xf6191af2 rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module +EXPORT_SYMBOL vmlinux 0xf668bc39 iov_iter_discard +EXPORT_SYMBOL vmlinux 0xf66f5bb7 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xf6724520 mr_table_alloc +EXPORT_SYMBOL vmlinux 0xf67d349c zpool_register_driver +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf685d26e vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0xf6945e05 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xf6b47d58 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0xf6c13c09 km_report +EXPORT_SYMBOL vmlinux 0xf6c344d8 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f73355 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free +EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor +EXPORT_SYMBOL vmlinux 0xf704f6b5 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0xf7296d9e tcf_exts_change +EXPORT_SYMBOL vmlinux 0xf72d2b0c sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0xf7362242 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xf7370f56 system_state +EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xf7461f6c ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xf77337a1 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0xf77c972a security_sk_clone +EXPORT_SYMBOL vmlinux 0xf7801dee __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xf79ca3bb acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0xf7ae6bed __phy_write_mmd +EXPORT_SYMBOL vmlinux 0xf7aeca9b skb_checksum +EXPORT_SYMBOL vmlinux 0xf7bdd1ba pci_enable_ptm +EXPORT_SYMBOL vmlinux 0xf7c8a511 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0xf7d31de9 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0xf7da6e6f acpi_unload_table +EXPORT_SYMBOL vmlinux 0xf7e74848 kernel_connect +EXPORT_SYMBOL vmlinux 0xf7e7997d clk_get +EXPORT_SYMBOL vmlinux 0xf7ef9a79 iosf_mbi_punit_release +EXPORT_SYMBOL vmlinux 0xf804a82e tty_unregister_ldisc +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 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83b4842 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0xf847a122 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0xf849ab57 end_page_writeback +EXPORT_SYMBOL vmlinux 0xf84bd6ee bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0xf85923dd blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0xf87b5d1c dm_kobject_release +EXPORT_SYMBOL vmlinux 0xf87d8b0b blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0xf888ca21 sg_init_table +EXPORT_SYMBOL vmlinux 0xf88ccb81 backlight_force_update +EXPORT_SYMBOL vmlinux 0xf8a927aa vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0xf8d2bc2c zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0xf8d71847 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xf8e62d78 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var +EXPORT_SYMBOL vmlinux 0xf904f207 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xf9087982 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0xf90a1e85 __x86_indirect_thunk_r8 +EXPORT_SYMBOL vmlinux 0xf93464a7 napi_get_frags +EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xf9433dda backlight_device_register +EXPORT_SYMBOL vmlinux 0xf9480bf6 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xf94f18ac nf_getsockopt +EXPORT_SYMBOL vmlinux 0xf951221c neigh_app_ns +EXPORT_SYMBOL vmlinux 0xf9593e7a max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xf9697cc2 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf969e188 dma_fence_array_next +EXPORT_SYMBOL vmlinux 0xf9722676 twl_i2c_write +EXPORT_SYMBOL vmlinux 0xf997cd2a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9aa7421 kern_path +EXPORT_SYMBOL vmlinux 0xf9be270f mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9ca2eb4 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xf9d38a6a __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xf9dec368 __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0xf9e8435e setup_new_exec +EXPORT_SYMBOL vmlinux 0xfa042227 gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end +EXPORT_SYMBOL vmlinux 0xfa0ef478 neigh_seq_next +EXPORT_SYMBOL vmlinux 0xfa133f6d dentry_create +EXPORT_SYMBOL vmlinux 0xfa26eb8b pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xfa297415 acpi_map_pxm_to_node +EXPORT_SYMBOL vmlinux 0xfa2e5f32 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0xfa327dc5 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa8b1731 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xfa99a952 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0xfab25447 unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xfab32d03 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xfab6a816 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xfac19588 __clear_user +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfaca0ef8 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0xfad0fbf2 tty_kref_put +EXPORT_SYMBOL vmlinux 0xfad39d60 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xfae2428e dev_open +EXPORT_SYMBOL vmlinux 0xfae9f88a serio_unregister_port +EXPORT_SYMBOL vmlinux 0xfaff0cef input_unregister_handle +EXPORT_SYMBOL vmlinux 0xfb137ec7 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xfb16cec5 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xfb184931 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xfb348fea fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf +EXPORT_SYMBOL vmlinux 0xfb578fc5 memset +EXPORT_SYMBOL vmlinux 0xfb617c33 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb70e986 ip6_xmit +EXPORT_SYMBOL vmlinux 0xfb73e4eb vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0xfb80ece4 phy_suspend +EXPORT_SYMBOL vmlinux 0xfb81a304 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0xfb875636 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xfb8d4f8b vmap +EXPORT_SYMBOL vmlinux 0xfb94b777 nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0xfba7ddd2 match_u64 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbab1bb1 ioread8_rep +EXPORT_SYMBOL vmlinux 0xfbad3cf0 scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0xfbb36fde migrate_vma_setup +EXPORT_SYMBOL vmlinux 0xfbb56390 vme_bus_num +EXPORT_SYMBOL vmlinux 0xfbb8a761 strscpy_pad +EXPORT_SYMBOL vmlinux 0xfbc4f89e io_schedule_timeout +EXPORT_SYMBOL vmlinux 0xfbd88649 dev_uc_del +EXPORT_SYMBOL vmlinux 0xfbe8ee28 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0xfbf04fc3 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0xfbfb4505 qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0xfbfc2491 xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0xfc068eb9 trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xfc121891 folio_mapping +EXPORT_SYMBOL vmlinux 0xfc199662 genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0xfc299a9e qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xfc2a23b9 __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xfc3080de start_tty +EXPORT_SYMBOL vmlinux 0xfc336d2e __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3d53cb __put_user_nocheck_1 +EXPORT_SYMBOL vmlinux 0xfc3f7183 nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read +EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0xfc5faec1 cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0xfc6cfb4a kern_unmount +EXPORT_SYMBOL vmlinux 0xfc6ee657 pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0xfc75cff2 pin_user_pages +EXPORT_SYMBOL vmlinux 0xfc7f7916 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xfc83cfec scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0xfc85c861 d_splice_alias +EXPORT_SYMBOL vmlinux 0xfcca4f6a unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0xfcdf0d32 vm_insert_pages +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf21136 dst_dev_put +EXPORT_SYMBOL vmlinux 0xfcf706e5 d_mark_dontcache +EXPORT_SYMBOL vmlinux 0xfd020264 del_gendisk +EXPORT_SYMBOL vmlinux 0xfd05c873 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0xfd286792 pci_find_capability +EXPORT_SYMBOL vmlinux 0xfd3793fd input_setup_polling +EXPORT_SYMBOL vmlinux 0xfd3e88f5 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xfd4cb24f param_ops_long +EXPORT_SYMBOL vmlinux 0xfd70231d scsi_add_device +EXPORT_SYMBOL vmlinux 0xfd7976d2 mdio_find_bus +EXPORT_SYMBOL vmlinux 0xfd8ce6c3 tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0xfd93ee35 ioremap_wc +EXPORT_SYMBOL vmlinux 0xfdb0e720 mmc_run_bkops +EXPORT_SYMBOL vmlinux 0xfdb6576f acpi_set_debugger_thread_id +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 0xfdd79d43 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0xfdd9c32f configfs_unregister_group +EXPORT_SYMBOL vmlinux 0xfde76c03 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xfded3fc5 vif_device_init +EXPORT_SYMBOL vmlinux 0xfdfb792f amd_iommu_pc_supported +EXPORT_SYMBOL vmlinux 0xfdfef0ed i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe052363 ioread64_lo_hi +EXPORT_SYMBOL vmlinux 0xfe192356 rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0xfe1d2e94 key_create_or_update +EXPORT_SYMBOL vmlinux 0xfe1f4513 __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0xfe2418f4 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xfe35971d redraw_screen +EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe5d63d2 twl6040_power +EXPORT_SYMBOL vmlinux 0xfe7313ba input_grab_device +EXPORT_SYMBOL vmlinux 0xfe8b980d netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xfe8c61f0 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xfe916dc6 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfeaf98e8 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xfeb5d0aa verify_spi_info +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef216eb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xfefcb98e vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0xff0581b8 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0xff0af34f netdev_update_features +EXPORT_SYMBOL vmlinux 0xff0f48e8 bioset_exit +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff282521 rfkill_register +EXPORT_SYMBOL vmlinux 0xff45c254 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xff46021e simple_nosetlease +EXPORT_SYMBOL vmlinux 0xff52848a __SCT__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff70ac18 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xff726cf4 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xff81e346 page_mapped +EXPORT_SYMBOL vmlinux 0xff87cd18 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0xff8ab7d7 locks_free_lock +EXPORT_SYMBOL vmlinux 0xff8d979a devm_of_iomap +EXPORT_SYMBOL vmlinux 0xff9096d2 tcf_block_get +EXPORT_SYMBOL vmlinux 0xff985d22 mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0xffa13a2d do_SAK +EXPORT_SYMBOL vmlinux 0xffa86833 config_group_init +EXPORT_SYMBOL vmlinux 0xffb548f3 netdev_features_change +EXPORT_SYMBOL vmlinux 0xffb7c514 ida_free +EXPORT_SYMBOL vmlinux 0xffc0572d i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xffc30c3a acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0xffc4f200 zstd_compress_stream +EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0xffcd27e9 qdisc_reset +EXPORT_SYMBOL vmlinux 0xffcd7f49 iosf_mbi_punit_acquire +EXPORT_SYMBOL vmlinux 0xffd2ca2c rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0xffd71b48 fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0xffe053e9 __bread_gfp +EXPORT_SYMBOL vmlinux 0xffea3c31 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0xfffa4690 drm_firmware_drivers_only +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x2c8b5dbf camellia_ecb_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x339c33c5 camellia_cbc_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x8b44ee75 camellia_ecb_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x0b901549 camellia_dec_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x69f4ff25 __camellia_enc_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x8d725052 __camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x8d9b761c camellia_decrypt_cbc_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xfe729ed6 __camellia_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xff09bd65 camellia_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x194b2841 serpent_ecb_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x38800636 serpent_cbc_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x4140192a serpent_ecb_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0x29ad6065 sm4_cbc_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0x82e3afcc sm4_cfb_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0x92ea4352 sm4_avx_ctr_crypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0x9d60934b sm4_avx_cbc_decrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0xad0a89a3 sm4_avx_ecb_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0xb2628c1f sm4_avx_cfb_decrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/sm4-aesni-avx-x86_64 0xb9d055bd sm4_avx_ecb_decrypt +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 0x92a51c43 twofish_dec_blk_cbc_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xb4e98a46 twofish_dec_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xe4ae7508 __twofish_enc_blk_3way +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0184bdb9 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x025bef9e __SCK__tp_func_kvm_vmgexit_msr_protocol_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x050c6f64 kvm_queue_exception_p +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x053614ec kvm_set_user_return_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0567e6d6 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x05760e47 handle_ud +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06cdc8d1 kvm_configure_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x089dfc39 kvm_gpc_activate +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x091552ae kvm_can_use_hv_timer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x09859ae9 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b58a11d kvm_nr_uret_msrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0b8a3365 __traceiter_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0be1c3b8 kvm_handle_invalid_op +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ca1219b kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ca8df68 __traceiter_kvm_vmgexit_msr_protocol_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0cff45f4 __SCT__tp_func_kvm_vmgexit_msr_protocol_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d8f4740 kvm_mce_cap_supported +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e1208bd kvm_write_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f0250cd kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f95119b __SCK__tp_func_kvm_avic_ga_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10614bd7 __SCK__tp_func_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x10a7d6eb kvm_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x114eb824 __traceiter_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x122512e2 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1235000a kvm_tsc_scaling_ratio_frac_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1240b59a __SCK__tp_func_kvm_avic_incomplete_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x124f5ddd kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1264a77c kvm_vcpu_update_apicv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x130fd155 supported_xss +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1412f042 __traceiter_kvm_ple_window_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x150aebbe kvm_sev_es_string_io +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x159b8d5e host_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x176ef3d2 kvm_vcpu_map +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x178b7077 kvm_intr_is_single_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x17f9cfe3 __traceiter_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18095bdf kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1964eb3f __SCK__tp_func_kvm_avic_kick_vcpu_slowpath +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19d60223 kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1b64f0f3 kvm_cpuid +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 0x1d1b139a __SCT__tp_func_kvm_avic_ga_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1db1c372 enable_vmware_backdoor +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1dd49e4b kvm_fast_pio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1ef4a1d3 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2010cb88 kvm_hv_get_assist_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x205bcfff kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x23263c0a __traceiter_kvm_nested_vmenter_failed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x24a46513 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2510fc6d __SCT__tp_func_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2522610b kvm_get_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25c07225 __traceiter_kvm_vmgexit_msr_protocol_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2694b5fa kvm_handle_memory_failure +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x26b60e8f kvm_arch_no_poll +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x26d4bb26 kvm_cpu_caps +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2778e1e4 kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28411ed7 kvm_max_tsc_scaling_ratio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x292d6e76 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a4d0b21 reprogram_fixed_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2bc73c28 kvm_apic_update_ppr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c995cdb __tracepoint_kvm_avic_ga_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2d82cc24 kvm_spec_ctrl_test_value +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2dbcfae9 gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2eb8c59b __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2eccb2ed __SCK__tp_func_kvm_apicv_accept_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f4a6d1e __tracepoint_kvm_vmgexit_msr_protocol_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f845b05 __traceiter_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f9ec25b kvm_debugfs_dir +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2faac570 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30a05f73 kvm_update_dr7 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30c3ccad gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33f64505 __SCK__kvm_x86_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34f1ce0e kvm_mmu_gva_to_gpa_read +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x369ae04c __traceiter_kvm_vmgexit_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36dcd67c kvm_set_or_clear_apicv_inhibit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x388e0e10 __SCT__tp_func_kvm_pi_irte_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x38cb59b2 kvm_io_bus_write +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39cdcf7e kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x39fd83db halt_poll_ns_shrink +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ab2794c kvm_find_user_return_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3af38200 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c56912b reprogram_gp_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3c9228e1 kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d180354 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3d93fb92 __traceiter_kvm_apicv_accept_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3dc3d646 __tracepoint_kvm_ple_window_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e1037e0 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f510ff5 kvm_has_noapic_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f6694bf gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3f694749 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406b752f __tracepoint_kvm_avic_unaccelerated_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x43767561 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x449f4dd0 __traceiter_kvm_vmgexit_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45e80fdf __traceiter_kvm_pi_irte_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4733bf8c __traceiter_kvm_avic_kick_vcpu_slowpath +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x476e86ab __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x48644036 __SCT__tp_func_kvm_vmgexit_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4910a10f __tracepoint_kvm_vmgexit_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4934333e kvm_sev_es_mmio_read +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4942be67 __SCT__tp_func_kvm_avic_incomplete_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a1800e2 kvm_inject_emulated_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a1c261b __SCT__tp_func_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b0d2a45 kvm_require_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4bca7ba6 __SCK__tp_func_kvm_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e3fd1b4 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e58f6c6 kvm_emulate_xsetbv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e6e6b0b kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f4cde8a kvm_emulate_ap_reset_hold +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5099f577 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50ba102b kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51847630 __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53d4acff __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53d9f927 __SCT__kvm_x86_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53e46514 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56a37de9 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58478846 __SCK__tp_func_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x587bf795 kvm_gpc_deactivate +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x58fa3740 __traceiter_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59387ba3 __SCT__kvm_x86_cache_reg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59918eca __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59e640c0 halt_poll_ns +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ad0303e kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5bf7cde0 kvm_mmu_set_ept_masks +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c11e105 __traceiter_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c7e9f84 __SCT__tp_func_kvm_apicv_accept_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d61450f kvm_post_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5d996b31 kvm_set_cpu_caps +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e8588fe kvm_lapic_expired_hv_timer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e9fc32d hv_remote_flush_tlb +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f80717e kvm_cpu_get_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f911332 __SCT__tp_func_kvm_avic_kick_vcpu_slowpath +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x616e6c95 __SCT__tp_func_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x61fcb947 kvm_cpu_has_injectable_intr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x621bb063 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6243ac82 __kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6303c089 kvm_calc_nested_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63270977 kvm_default_tsc_scaling_ratio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64cc3d04 __x86_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x65252358 kvm_hv_assist_page_enabled +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x657ca508 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x66060268 kvm_emulate_monitor +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x66e8d89a kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67544a0a gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6756347e __traceiter_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x67aad3ad kvm_read_l1_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6875d414 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6892e3c3 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69367391 kvm_gfn_to_pfn_cache_unmap +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6955db62 kvm_gpc_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69e2e843 kvm_wait_lapic_expire +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a4b228b kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6aa0000f kvm_set_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ac3a5ee kvm_emulate_mwait +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ada8f59 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b11a780 __traceiter_kvm_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6b90d5ea kvm_gfn_to_pfn_cache_refresh +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6becaded __SCT__tp_func_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6c95726c host_xss +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ca3799c kvm_prepare_emulation_failure_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d7a11f6 kvm_apicv_activated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6e86f975 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ec963bf kvm_arch_start_assignment +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6f6fe0e8 __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70288943 __SCT__tp_func_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709b60e0 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7121edc5 kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7135e341 kvm_sev_es_mmio_write +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x715d818f kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7263ae77 __traceiter_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x74453cac kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x752c2b00 __traceiter_kvm_fast_mmio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75ad20d6 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x76422a3e __SCK__tp_func_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x77793359 kvm_mtrr_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x778e30b9 __SCT__tp_func_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x79ae1337 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7afe324e halt_poll_ns_grow +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b1addfb kvm_emulate_invd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b780f96 __SCK__tp_func_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7baf571d kvm_mmu_new_pgd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c94c99a kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7fe19488 kvm_add_user_return_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ff2a104 __SCT__tp_func_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x80142ca6 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x825228a3 kvm_update_cpuid_runtime +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84bfebb7 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84f8c6d7 kvm_apic_match_dest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x853228f0 kvm_slot_page_track_add_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x86219f46 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x864eeab2 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8775e043 kvm_emulate_as_nop +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8862e0c5 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88a4e04e kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88a8a667 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88c18382 kvm_set_msi_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88de01d0 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89c52406 kvm_emulate_wrmsr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a165d07 kvm_vcpu_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a7fe54a __SCT__tp_func_kvm_vmgexit_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8b618aa6 __SCT__tp_func_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8cbb748e kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8db971f2 __SCK__tp_func_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e26cf6d __SCK__tp_func_kvm_vmgexit_msr_protocol_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8e30cfad kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90188e47 kvm_vcpu_reset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x912a9286 __traceiter_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92232b1a kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92c2b2ce mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93a3e40e __SCT__tp_func_kvm_ple_window_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93e2f0d5 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x944882ed kvm_has_bus_lock_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9488e8c9 __kvm_is_valid_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95002633 __SCK__tp_func_kvm_pi_irte_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9538f569 __SCK__kvm_x86_cache_reg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9547e53c __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95990f30 kvm_page_track_unregister_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x959b56cf __tracepoint_kvm_avic_kick_vcpu_slowpath +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95b11988 kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96fcc8ed kvm_mmu_gva_to_gpa_write +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97ead43b kvm_mmu_free_guest_mode_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9867a692 kvm_msr_allowed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9888573e __SCK__tp_func_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a922a8f kvm_lapic_hv_timer_in_use +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9b3b868a load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9c316529 kvm_get_running_vcpu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9c70002d kvm_vcpu_apicv_activated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ce29bbe kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9cf59e7a allow_smaller_maxphyaddr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9d6a919d kvm_vcpu_unmap +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9db682ce __kvm_request_immediate_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9e20b2bc __traceiter_kvm_avic_incomplete_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9eec96d5 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9f68faa3 __traceiter_kvm_avic_unaccelerated_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa081a421 kvm_apic_update_apicv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa08697f5 kvm_apic_clear_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec4634 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1257f5e kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa1c4231f kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa588ef67 __SCT__tp_func_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5a39dcf kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa5eaf540 reprogram_counter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6a50230 __traceiter_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7022320 __traceiter_kvm_avic_ga_log +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa80595a6 __traceiter_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa84a2e73 __SCT__tp_func_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8793582 kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8f2e441 __tracepoint_kvm_apicv_accept_irq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa99377f3 __SCK__tp_func_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9e0e5cd kvm_emulate_instruction_from_buffer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9fbd6b3 __tracepoint_kvm_pi_irte_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab9500cb kvm_init_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xabc30e27 kvm_page_track_register_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad04b07c kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xad9b81f2 handle_fastpath_set_msr_irqoff +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae373ed8 mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xae52f061 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb104f02b __SCK__tp_func_kvm_vmgexit_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2622f5e kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb30ec70b kvm_deliver_exception_payload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb332b817 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb40c8ba4 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb48acf55 hv_remote_flush_tlb_with_range +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4a054d8 kvm_emulate_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4dfd4a4 vcpu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb653fc79 __SCK__tp_func_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb70dbbdc kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb7435495 __SCK__tp_func_kvm_vmgexit_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb82c0987 enable_pmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb96e9aa1 __traceiter_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9ab3b26 kvm_init_shadow_npt_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbab7035b __SCK__tp_func_kvm_fast_mmio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbba58c3c x86_decode_emulated_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc38f7f1 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd44cdfe kvm_handle_invpcid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd9d6dfc kvm_mmu_set_me_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbed3d783 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf9d7e60 __SCK__tp_func_kvm_pml_full +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc071e99f __SCT__tp_func_kvm_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc15a2550 __SCK__tp_func_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc1bc1948 __tracepoint_kvm_vmgexit_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc21fbb90 __SCK__tp_func_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc29a3701 kvm_arch_has_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2b6fdc4 __SCK__tp_func_kvm_nested_vmenter_failed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3345d10 kvm_post_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc57ce631 kvm_slot_page_track_remove_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc5aa2659 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc60d7d0c __traceiter_kvm_pml_full +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc802ce9d kvm_apic_send_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc85ec202 kvm_arch_has_assigned_device +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc96d35f4 report_ignored_msrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xca9f8e1f kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcbf6a3ba __tracepoint_kvm_vmgexit_msr_protocol_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcbf8d8a5 kvm_load_guest_xsave_state +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc34156a kvm_emulate_halt_noskip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcdbb177d __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce2dad27 kvm_init_shadow_ept_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce381485 kvm_mtrr_valid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xce576a13 enable_apicv +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcf9eec92 kvm_emulate_rdmsr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd09da48b __SCT__tp_func_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1893812 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd30e7c1e kvm_get_apic_mode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd3a2812c kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd524df32 kvm_apic_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd6334f6c kvm_arch_end_assignment +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd649b055 vcpu_put +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7075fcb kvm_arch_unregister_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7ba209c __SCK__tp_func_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda2b287a __tracepoint_kvm_nested_vmenter_failed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdaacc366 kvm_vcpu_deliver_sipi_vector +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc7369fe __traceiter_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdd3644fc kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde06c7c3 kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xde2b1d04 __tracepoint_kvm_pml_full +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe06dfa35 kvm_load_host_xsave_state +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0d6ca70 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0e786a7 __SCT__tp_func_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe107d75c __SCK__tp_func_kvm_avic_unaccelerated_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1d25080 kvm_scale_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1e59fe7 kvm_gfn_to_pfn_cache_check +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe22507d3 __SCK__tp_func_kvm_ple_window_update +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe297ed23 kvm_destroy_vcpus +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4431855 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4a4e795 __SCK__tp_func_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4b183e8 __tracepoint_kvm_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe62330c3 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7259abb kvm_handle_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe7d175cd kvm_arch_register_noncoherent_dma +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe808b344 kvm_mmu_free_roots +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe93dfc8c __SCT__tp_func_kvm_nested_vmenter_failed +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9674a16 supported_xcr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea1814cd gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea1a9b33 kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea5cda33 __SCT__tp_func_kvm_fast_mmio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xebbc0909 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeddda508 kvm_service_local_tlb_flush_requests +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef14fd98 kvm_calc_nested_tsc_multiplier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xef42ecee kvm_lapic_find_highest_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefa2f661 __tracepoint_kvm_avic_incomplete_ipi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xefa54cc2 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0091079 __tracepoint_kvm_fast_mmio +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf084b57d __SCT__tp_func_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0fa1c66 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2df48f3 __SCT__tp_func_kvm_pml_full +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf32dff97 __SCT__tp_func_kvm_avic_unaccelerated_access +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf4b1d9a8 __SCK__tp_func_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf54e2886 __SCT__tp_func_kvm_vmgexit_msr_protocol_enter +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf676a0f1 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6b3eaff kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6f8ab24 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf73e7fef __kvm_prepare_emulation_failure_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf842605d kvm_get_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf9056811 kvm_pmu_trigger_event +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfa90a143 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfab33e4c enable_mmio_caching +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfab41d66 kvm_fixup_and_inject_pf_error +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb1457b7 __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb2851ae kvm_vcpu_is_reset_bsp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfb2ef285 file_is_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc12e90d kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc3971bd kvm_get_kvm_safe +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfce8d98a kvm_skip_emulated_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfda5f04a kvm_vcpu_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe12d4b3 hv_track_root_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe6c7377 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xffccfd79 kvm_queue_exception_e +EXPORT_SYMBOL_GPL crypto/af_alg 0x03344600 af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x075dc47c af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x0e78ac44 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x20464180 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x3a951a25 af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x43dbfd9e af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x4655a6f8 af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x4e2833a4 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fb636d4 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0xb2e31b04 af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xc449015f af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xc47ee9c6 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xcbfc019a af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0xd9e1b8f8 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0xec925587 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0xed52ad6e af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xefcf9075 af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0xfb4bf993 af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x9dd676a6 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9c963763 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xe10bec83 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x26ed3d75 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xac8e05c0 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x21f3b0ca async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2d605d8a async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9ddebdbd __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe0fcb404 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x1e430b0f async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7a679e33 async_xor_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x8aaa30e3 async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa117a5ee async_xor +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xd5caaa92 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xe2f9d5e2 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x003b9cce cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 +EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 +EXPORT_SYMBOL_GPL crypto/cryptd 0x21065ecc cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x34b6ca87 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x39c14d51 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x407bc845 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7568cc61 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa5f23322 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb9d2fc57 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xbfecb543 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xca311ca3 cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0xd5acc3ef cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xe61f60fe cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xe925fdf4 cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xe9cae540 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0401c1db crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x18d1fae1 crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x21862ea3 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x22244923 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x2396ea1a crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x2df800ca crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x397dbd89 crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x863d3cfa crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x9afa404b crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xb661ada4 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xbe5e133f crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xd34865fa crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xd47e26ab crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xe6300c89 crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xfdded766 crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x29ecbb87 simd_register_aeads_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x46dd1ec3 simd_unregister_aeads +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x46e0ca63 simd_unregister_skciphers +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x4c2c7aec 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 0xbfd26f15 simd_aead_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0xefe73979 simd_skcipher_free +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x0c733734 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update +EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0xfa81970e sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa5628746 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x070b5c6d synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x3e639956 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x43dfb735 spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4975fa9e spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x5c4df688 spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x6fb20a1b spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7ee7ae55 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x84dad068 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x858ae1fe spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8763fd16 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8c82dfca synth_request_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8fe0db01 synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x99335346 synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaadb0612 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xb734cb9d speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc236d71e spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc319c604 synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6a06d16 spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xcc6f8518 synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd36c10c1 spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd3f440cb spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd786094d spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd8fd86cf synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd93829dd speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe194d0ef synth_printf +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x31524f7f acpi_nfit_ctl +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 0x53b81f77 acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x87589d22 __acpi_nfit_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xe2ad0f54 __acpi_nvdimm_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xe887249b acpi_nfit_init +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0x67927a0d platform_profile_notify +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xbfe36436 platform_profile_remove +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xcac33cd4 platform_profile_register +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 0x0d38c7b7 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1474a3c4 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x175faa61 ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x19a47d60 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x23d3b7d7 ahci_handle_port_intr +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x266f696a ahci_do_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26a5ee19 ahci_shost_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x30a22f13 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3670745c ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3eb51a91 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3efdf104 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4f3e43d8 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5a6fb804 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x62d9e66c ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6cd75ee6 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6d4c56be ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7af8f887 ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7b72aad6 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x88805098 ahci_sdev_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8dc8e88b ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa3fd914b ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd9986759 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf78b5059 ahci_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfe493d96 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x00641974 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x083ecbca ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x1141caf0 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x14651a41 ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x1ce651b6 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x38593cbe ahci_platform_shutdown +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x38b727b0 ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x4a24ade7 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x53119e33 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x624eae0e ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x809d02fe ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x8589109a ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x8daefa33 ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x97e45843 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xa4f4847c ahci_platform_disable_phys +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xbd8b8546 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x9f4cd1de __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 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x8b45326c charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xd3e29970 charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf3304696 charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf883c540 charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8585e5fd hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8d4f3fa4 hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xa22afdaa hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xc369090d hd44780_common_shift_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xf360d788 hd44780_common_fontsize +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/auxdisplay/line-display 0x2fa5089f linedisp_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x68a9c1ac linedisp_unregister +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x6e27c0f8 __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x64842fac __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0xf76e0882 __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0xc2ebc0a3 __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0xd2fd725d __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x13016ad8 __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0xb24d8481 __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x04c00c6f __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xe690a88d __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x0776b2d9 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xac1a3909 __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x1b30b18e __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x5b386814 __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xd78c7a2a __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xeb8459a0 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x92bdd9ff __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0xd9ec9126 __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0464d3b4 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x126319ad bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1cf9a456 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2b078d66 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2ee59d41 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3da1b291 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x58bdb8e4 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x63a1eda3 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6c4f84ad bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6d085cee bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7594304f bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x761cf3f7 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x881b2042 bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9ae485ee bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa40b32d9 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaa122697 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xac156393 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xada2b8f6 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xadd56149 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc8e83a49 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe527d4e0 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xef4bf0bf bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf23f7d58 bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf6d9d880 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x1473e281 btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x28d48739 btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x2d7f3585 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x3f316233 btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x54124931 btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x8aea7163 btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xddabd9da btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xe5920ddc btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x03f7d418 btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x19379efb btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x359b571a btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x365e0049 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x3add52ef btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x41486ca2 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x4c367ad4 btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x6eca95fe btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7aad7cd8 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8b7a0757 btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x952ee80a btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x971e902a btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xa0cc3c5a btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xaf3a3c1e btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb6ddb156 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xbbf70bce btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xeb253130 btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1c226f34 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x253802af btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2b9a85e9 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2bca7286 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x32e67e1e btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x42831fa3 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x520d5f9d btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x72f2e1d2 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8f792d94 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa0735da0 btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe6267aa7 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x41f2695e btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x65a42111 btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xbbae7c75 btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x02ea111e qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x0bddbec6 qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x0cc632f1 qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x20505c06 qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7786b861 qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x210acf87 btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x2cfc9d7e btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x466f7592 btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x48723793 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x615fe9b9 btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x71cceab9 btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xaf78f260 btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x27710b4a hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x8fa63aa0 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xe30c77c8 hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xead51130 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x2350135c mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x277eaa44 mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x283b1d14 mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x321deefa mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x3552a378 mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x362f9ac5 __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xe9605e8a mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xfb214ab9 mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x007a7622 mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0c0f3858 mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1ed600fe mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1f656c0d mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x24e2198b mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x254fb8b7 mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x271cef23 mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x37f00598 mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3dfa10ad mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3e4a85c9 mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x42190d68 mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x461168e4 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x62105a06 mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8867bb53 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x951193d9 mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa3727008 mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa7756131 mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xaebb1e0b mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xbe1aa554 mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xbf55a875 mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc8f7dc4e mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd4775985 mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd545031b mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xdafbb7c7 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe34b90cc mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe4d25c6a mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe65036bd mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xebf1f440 mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf0425d3f __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf6df4220 mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf7931ec9 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x071b753a comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0a0a1e3b comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1f820066 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x25508fb1 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2d961e82 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x337eaf59 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x34e9a48d comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3d6e4993 comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x44c055f3 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x45bf3563 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x58130eae comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x678434a4 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x762f7d0e comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8857ebfc comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x95686a95 comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x97fa3e54 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x9f751baa comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x9fbab766 comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xaf71b2d8 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb3a3974b comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb3d6309a comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb8ca2ec8 comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc4f09dd3 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc7501476 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc8888dd4 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc8aee0a9 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd3617069 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd426690c comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd51fd05b comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd570cf8a comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd671efcd comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdf14349b comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe8c9938d comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf6a874fe comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf9630103 comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xfbb14c23 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x086f449b comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x29ad8500 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x2e33d0b4 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x46596f49 comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x8cc2dae6 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xe63b425f comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xe7ec342f comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xfbbe9300 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x108855f8 comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x164133d7 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x5cdedf44 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x61e6f185 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x9750bd53 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0x97b5708a comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pcmcia 0xc621833a comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x6315b8bc comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x640f6957 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x86b46f56 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x9a62dec9 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xd4e3815c comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xfef97879 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x4e42ad9e addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x21bb62f9 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0xe13b6c4d amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x94975783 amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x0d80c884 comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x22be4336 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x2daaa1d4 comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x362baf5d comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4036319c comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x45825972 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x68e3c902 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x6a06750b comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7be1224c comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x94275538 comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xa2622450 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xa2c920f0 comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xe2415ff0 comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x478ac636 subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x4cb8d52f subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0xfba39665 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x0231abc5 comedi_isadma_free +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x12fba874 comedi_isadma_disable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x29699e7c comedi_isadma_alloc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x4a17474e comedi_isadma_disable_on_sample +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0xca784d4b comedi_isadma_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0xea878430 comedi_isadma_program +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0xf5af7809 comedi_isadma_poll +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x37ddba0a das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x14d0741c mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1d062da7 mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x249df399 mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3a479de7 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4646b689 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x489a44fc mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4e782ca9 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6b4d2559 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6c080c70 mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6c677dbb mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7db1ad21 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x91832086 mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x9e89ac20 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xdb8cd7cf mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xf148970e mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xfd8c28b8 mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x312c6b2f labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x791beadd labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x2010c00e labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x34bb214d labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x3e3e4862 labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x54e99a79 labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x886d5765 labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x85e75c94 ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x863a306d ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8ab47ba4 ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8f0f0901 ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0xb3e302a3 ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x08a941b8 ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x22e20272 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x23ad5831 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x3b8a7f82 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x48636488 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x5693b006 ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x63bc55a5 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x71b2cb28 ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7a5ec847 ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x86fdc3d9 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xa44c8203 ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xa8746fe0 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xed58323c ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xee6aab65 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xf1df06ee ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xfa69aedd ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x53724097 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x5b305aa2 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x6c2a3ebb ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x9d11ddb2 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xd14baf25 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xe01ccf87 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x4a9c1a97 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x790ea92b comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7cdcfc35 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x8c18f9d6 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xdbd815b1 comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xfc59db3c comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xfd0fe938 comedi_open +EXPORT_SYMBOL_GPL drivers/counter/counter 0x323b3b48 devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x95eb9c50 counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0xaa1a370a counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0xb6ab7a70 counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0xbee106c4 counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0xc33fb93e counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0xf844b01e devm_counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0xfafb7ee7 counter_push_event +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 0x55612bf6 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 0xe82f9908 ccp_enqueue_cmd +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x02a2e53b adf_dev_get +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x04245d83 adf_pfvf_comms_disabled +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x04db58c8 adf_reset_flr +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x0b313aac adf_gen4_set_ssm_wdtimer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x12edbb56 adf_vf2pf_notify_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x185be54d adf_gen4_init_pf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x2658c59f adf_dev_stop +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x275a3b51 adf_gen2_get_num_aes +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x2893b366 adf_gen2_enable_error_correction +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x2be4e269 adf_gen2_get_arb_info +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x33a2d0e2 adf_vf_isr_resource_alloc +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x3ac51457 adf_exit_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x3e707f37 adf_gen2_get_admin_info +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x442c8a2e adf_init_arb +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x4470d527 adf_init_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x4c2e5985 adf_dev_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x51475967 adf_gen2_cfg_iov_thds +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x518fc358 adf_cleanup_etr_data +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x55947dd6 adf_err_handler +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x61b8776c adf_disable_pf2vf_interrupts +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x655b5f8e adf_cfg_get_param_value +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x655e7a4b adf_disable_sriov +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x671d26ec adf_gen2_init_pf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x69ae1747 adf_gen4_handle_pm_interrupt +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x6f341573 adf_reset_sbr +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x6f574e80 adf_gen2_init_vf_pfvf_ops +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x6f58f63f adf_cfg_section_add +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x7477f90d adf_gen2_set_ssm_wdtimer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x7c4bc7c1 adf_cfg_add_key_value_param +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x7d151e28 adf_gen2_get_accel_cap +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x9431f53a adf_vf2pf_notify_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x9a532a1e adf_sriov_configure +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x9c2c2de8 adf_disable_aer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0x9c90ccd0 adf_gen4_enable_pm +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xa29bde9e adf_enable_pf2vf_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xa6c71793 adf_cfg_dev_remove +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xac2648b4 adf_devmgr_add_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xadeb1f5c adf_dev_started +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xae11c2c8 adf_init_admin_pm +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb0dcea3c adf_flush_vf_wq +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb1975ef4 adf_enable_vf2pf_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb3553245 adf_isr_resource_alloc +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb529a045 adf_dev_start +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb62de98a adf_send_admin_init +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xb98b7d45 adf_devmgr_pci_to_accel_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xbc2f6ca6 adf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xc394253b adf_gen2_enable_ints +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xc501ac82 adf_gen4_init_hw_csr_ops +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xc7efb48f adf_dev_in_use +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xcab366b6 adf_dev_shutdown +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 0xd41e124b adf_devmgr_update_class_index +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xd5324192 adf_enable_aer +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xd64519f1 adf_gen2_init_hw_csr_ops +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xdc4ce98a adf_gen4_ring_pair_reset +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xdd5afadd adf_gen2_get_num_accels +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xe9054b78 adf_exit_arb +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xebac7162 adf_vf_isr_resource_free +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xefee51a0 adf_devmgr_rm_dev +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xf13aba36 adf_devmgr_in_reset +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xf3933f1a adf_init_admin_comms +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xf890b787 qat_crypto_dev_config +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xff2d8d72 adf_cfg_dev_add +EXPORT_SYMBOL_GPL drivers/crypto/qat/qat_common/intel_qat 0xffe0d699 adf_dev_put +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x17e90094 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x303f2b1d alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5b139e87 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x5c11a0c3 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x66b310a3 register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x85614f48 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0xaa634427 dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac308314 free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xfb562646 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x5e096420 dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0xc2eb5485 dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3cc0234d dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x4fe2e1e8 idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7112cce4 idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7b8f5df6 dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x9aad9db9 dw_dma_acpi_controller_register +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xba966cd1 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xd36e6d18 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe36bbac7 do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf0f25d4a dw_dma_acpi_controller_free +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x4f26f3b7 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x82f5cd2e hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0be1a4d8 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x8592d892 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xa6768751 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xabb5547d fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe86fb5c7 fw_card_release +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x01f304d6 cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x04b434ce cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x04de13ad cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x3ffa7373 cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4bb5ae44 cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x55ac3323 cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x595cff43 cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x59943c62 cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x63acb9ee cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x676ffd43 cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x6b574606 cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7d2f95d7 cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7e6ac459 cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xa3c76221 cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xacb63314 cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xace2c0b5 cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb21da54a cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb83f884b cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbb9127af cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbdf55ca0 cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc102d86e cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc2ae8383 cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xd3acdb00 cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xf89aa093 cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0xd3f2f6c0 alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x05e54337 dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x0b80d296 __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x0e7016e5 dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x196c979a dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x28293202 dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x4843847e dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6aafd0ec dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6ce921dd dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x76a8685f dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x86fd56dd dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x957d4dc0 dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x9c55bf77 dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x9cf8164f dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa141e950 dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa305c796 dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xa5bf8b4e dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xaad572f8 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xb337034a dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xbc14a882 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc808a265 dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xed8fe9d6 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xee811ff7 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xf101954b dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0633c4b9 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x06c3ded5 of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0b2b884c fpga_bridges_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x297e30b8 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x3157f7df fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x36dfce13 fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x44feaa36 fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x824be865 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xc2038520 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xeac4078d fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xf8dfe983 fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x02b81501 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x148b9a93 fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x53d6e976 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x593a7578 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x5fd96a79 devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x6104d59d fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7a743dc5 fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x8fa497e2 fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xa47804e2 devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xa9e45262 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xb15bc2a5 fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xb4bd005d fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd10eb5c4 fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x1aeee702 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x3bcc5028 fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x842a29cf fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x8a59d3bc fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xcb87c9ab fpga_region_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x09a9ccf0 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x382203f8 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x39a7d078 gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xac8f525b gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xf2a0bd16 gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x0c1b2958 gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x0f7fdfa6 gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x5b1325fd gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x6a46b8bd gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x6eb0e904 gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x85fef70b __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xd38316e0 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x1f135feb analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee0dd60 anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x50733bd3 analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7a517e02 analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x9135afd4 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xa57f68e0 analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xbc686b94 analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xc898a6ae analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xfcb86552 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0x9f055a5a drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2dda4404 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2fd54355 drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x328ed29c drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7062d95e drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8aed3b96 drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x95a4e511 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x979cae2c drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa33beb11 drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xaa363d1e drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xad885165 drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd05e2d5a drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd174597b drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd7f55342 drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd9368a29 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfe9f72f3 drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x0cf81de8 drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x112d441f drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x9862815d drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x996cc59e drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x9a525dec drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xa51cdef0 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xa947efdf drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xae0b22fd drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd9a9f026 drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xe56d6053 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xf4999b54 drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xf9407fbd drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1844935e drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x3620c6af drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x366b190e drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x51abe033 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x56805c04 drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x6e5f0115 drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb156c488 drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xc52beb5e drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xf46c4f88 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xfc49b7f3 drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x16665008 drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x227b224e drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x2c6006eb drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x6c91e9d5 drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x82519d21 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xb440d656 drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xcf04ffee drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xf4991147 drm_gem_shmem_mmap +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 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x2373d07a ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0xbf3e2fc2 ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0xc69f65fd ssd130x_remove +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x010a9c72 __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x01b0ef87 gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x01c1ef14 gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x0cb21ace __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x10d1b03e __SCT__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x13a912a2 gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x165f8c6d gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2c1144c0 greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2f0f6828 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3b731ce6 __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3f7d3820 gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4247f379 __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x451dadb6 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4dffbd40 __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x50aea173 gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x56e76c31 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x608a2e78 __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x611a4918 gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x627a3de8 gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x63c1eae0 gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x65e3721b __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x75cb3f2b gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x78ed22f5 gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x78fedb98 __SCT__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7bc55b13 __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x84517c51 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x85004b1e __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x86d1bc46 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x94958f93 __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9a14d190 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9f040e58 gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9f097cc3 gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa2a7e41b __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa8227c3c __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa8c0b8d7 gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xabf6eecb gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xadd7926d __SCT__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xae557b53 __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xae877457 __SCT__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xafb5dddd gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb991cb50 gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbe93d208 gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbfb52284 __SCT__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc0a6f706 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc3df3665 gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc68e6240 gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xcc44a9dc gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xce1bbbe3 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd416a389 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd421c135 gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd4e1f859 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd6b058c2 __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xdb5e9984 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xde8f5e88 __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe03fe359 greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe335abdc gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe6b45fb6 __SCT__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xed16410e gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xef5c8aef __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf32d331f gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf87b3c84 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/hid/hid 0x027b6cae hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x04551cf4 hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x09eea9ae hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x10df1f94 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x26aefca3 hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x27445b16 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c299734 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c5840bf hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ddd2c7d hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2df9d1bb hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2e3c7ff6 hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0x36bd5a1b hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x38fa8360 hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3dee543c hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3e2bb41b hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4927944e hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4e7202bf hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x544caffc hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x54624f75 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x605d2d28 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x64f2c55e hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x678b4cd7 hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x69004ea2 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x723a1258 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b13a8b8 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8eba6320 hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x927c5ebd __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x977b38bf hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa19e0553 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa375a2ea hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4033936 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9165f0a hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9dc3db4 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaed5d199 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xba8d8fe6 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0f0a83e hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc230c4ba hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3398030 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdcff57fa hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd4ea695 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf032e49 hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe512600e hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8371c97 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xec417ff5 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xed5a2e9d hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xefd2e948 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf1460b68 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8adf093 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa355613 hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfc198bd9 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfefc085f hid_dump_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 0x4d1812a6 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x66086a5f roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7520c58a roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb5a37b6f roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb792f2d1 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcf99f3a3 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xd5e9f339 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1d81c1c8 hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x85470185 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa72e09f5 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xbf03c348 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc4b94801 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xceb98f5c sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd5c867f5 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe467e2e6 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xec4f7535 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0xeba3ad36 vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0xf1fcdb86 vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x4a08a57d i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x90521595 i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xa5da631f i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xaaff728d i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xe13de0a5 i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/intel-ish-hid/intel-ishtp 0xe9a563a6 ishtp_wait_resume +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0x1a9c9262 surface_hid_pm_ops +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0x872a498d surface_hid_device_destroy +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0xd5e6b79b surface_hid_device_add +EXPORT_SYMBOL_GPL drivers/hid/uhid 0x7fc1ec47 uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x56b56657 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb7871cb1 usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x12899675 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2c1e9a9a hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x328925b7 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4333d5cd hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4f2ee6c1 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6729f6ec hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x70aa0e0d hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7d8475ac hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7d938a4a hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x916483a7 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9e572c44 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd9388efa hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe7526e98 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xed76905f hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf0e8d3f1 hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf532c7cf hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfd37d98f hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x01866228 vmbus_next_request_id +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x084e089c vmbus_connection +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x1d7ec463 vmbus_setevent +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x27a42aab vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2be03eaa vmbus_connect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2fb2e4fe vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x31e2e77f vmbus_free_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x321055cb vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x41af7f0c vmbus_teardown_gpadl +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 0x579d5730 hv_pkt_iter_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x58017358 vmbus_alloc_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x674e657e hv_ringbuffer_get_debuginfo +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x6e342fc6 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x74c8c13a vmbus_set_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7baada13 vmbus_send_modifychannel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x817d0982 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x88cad39a vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8c192942 hv_pkt_iter_first +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8d4eb143 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9409f40a __vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x95a3ff33 vmbus_allocate_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9964bb98 vmbus_sendpacket_mpb_desc +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa32002f8 vmbus_hvsock_device_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa5e2a93d vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa8868522 vmbus_free_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb10fecad hv_ringbuffer_spinlock_busy +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb3724025 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb53da3ab __hv_pkt_iter_next +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc0dfaf78 vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xda80d03a vmbus_set_chn_rescind_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf9388ef4 vmbus_disconnect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xff0caf23 vmbus_request_addr +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x108f1941 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x911d2838 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xbc54f93e ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xe5169919 ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x022dbb62 nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x09229c58 nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x75e7957a nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xa560f84f nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xc4fb62f3 nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xfe34a418 nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x0e423972 intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x320d87ed intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x447d6a65 intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x4b9a4e91 intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x5b22cf41 intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7321bbaa intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x94728a51 intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xe1d1efe4 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xf41dabce intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x15e8170e intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x49aba3a9 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xd760066a intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x064c517e stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x077d86d1 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x0ddc63dd stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x547579b5 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x583c3ff2 stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xd3dc916b stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xf3d450d9 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xfa8fb90f stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xfe9e6489 stm_source_write +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x269978e7 amd_mp2_find_device +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0x3e4d14ee amd_mp2_bus_enable_set +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0xa173d6a7 amd_mp2_rw +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0xbcd35808 amd_mp2_process_event +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0xc7c8d164 amd_mp2_register_cb +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0xcfd1a654 amd_mp2_rw_timeout +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-amd-mp2-pci 0xe4d039ac amd_mp2_unregister_cb +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x934484be i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xde733d27 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3c0af124 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x4a4ffa28 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbcc9eb19 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xd54e6068 i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x42829dfc i2c_register_spd +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xcd315c10 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x09a51e7d i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1d3ceb47 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x38ef4387 i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3ac8e129 dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3f774dff i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x4658c32d i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x54d405db i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5653b1b7 i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x56753aba i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x64f0170f i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6c8e0e36 i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x749de3c1 i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x85c7d82b i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x86a5968a i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x8cf6e125 i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb839fe92 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xbe6aaa42 i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xc1856b36 i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xc33db2f3 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xcc5f72c6 i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd861e896 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdbd94084 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xddeaa6b2 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xf8eacfcc i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xf9eb02f7 i3c_device_match_id +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 0x9a1e2779 iio_channel_get_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 0xad8244b9 iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xdaf8b074 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x1168680a iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x33a2fee7 iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x39fcdc45 iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x536209d0 iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x5d54af23 iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x75d9d43b iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7a9a7bb2 iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x88a0a3f9 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x91f52d95 iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xa1bf0f55 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xb52ae58e iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xde29c659 iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x3f9480c3 devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x3391543d iio_hw_consumer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 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 0xd33843b7 devm_iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0xe728fb43 iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0xbc050181 devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0x0de480b3 devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x30961b83 sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x153c0024 cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x42e42d56 cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x5d2e43b3 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x65fa7a20 cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7ab07252 cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x827c3629 cros_ec_sensors_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x93ec8982 cros_ec_sensors_core_register +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 0xbc64de0f cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xc7c28a30 cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xcc6fdada cros_ec_sensors_push_data +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xfaa61a0f cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x5cbe0e9d bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x5f922f35 bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xb399df81 bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x3f895c6d fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x7c7bd9dd fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xbe7d5041 fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0xfec7a734 bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x50f372b5 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x130e2123 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xa67e713e inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xc40b0c41 inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x49926751 inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x92f3d74b inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x003f2dc5 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x01cd8313 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0691f9ff iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0a9c024e __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x10484352 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1837beda iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1aa13377 iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1aa7c4d8 iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1da38e70 devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1dae28fd iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2329af6e iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x25a052f8 iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2b04b60d iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x305cb82c iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3b820047 devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x41dc568c iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x44df09c3 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4874dc35 iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dce7dd4 iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x530e0e4e iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5e7d649a iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x618dbf87 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x63fdb749 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6550b99b iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x656e03b5 iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x674861a7 iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6bf7b07f iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6fa9b486 iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x70e572c1 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x79fb41c1 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7b9312a4 devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8227d135 iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8243927d iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x84e98374 devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8dcb2fb8 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8f136fab devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x91f6914b iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9a5b6729 __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa0224b3b iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa4546bb2 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa7fb0597 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa88e3912 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac70eeeb iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xacf77412 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb3d225d6 iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb62bb386 iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc6f8e4a8 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc7fe25d8 iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdfa56fba iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe1c3e708 devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf509ce79 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7298981 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x00ef6983 rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x1cee9b68 rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x1fd26986 rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x27e0abde rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x2ae6e7dc rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x58fbe78c rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x9172f386 rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xbba150ec rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xdaff85d9 rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xec3fd4fa rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xef0d5344 rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xf1590d1f rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xafae6072 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xb8ebea40 matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe2ca296a adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xec511022 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x169d6e80 __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x2a47f7c7 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x35d45ee8 rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x4bd43377 rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x5a766edb rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x808abe83 rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x849c34dd rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x8ce90b5b rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xd440b50b rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xd833cc98 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xdc914378 rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xe3160062 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xfb6e2aac rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xb3038ad6 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc07f4736 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xd479d927 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x5d1b2ce6 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xfa8efa9a cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x2d4c3ce5 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x471e00dc cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x936f188d tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xa716a092 tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xbfac725b tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xc4d58a21 tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2ad7e66f wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3769fb35 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5df1a8cb wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6c3a83e0 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x87ae7cda wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9d2ee4f5 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa0e50899 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc03ed3d0 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcaf5d8a7 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd60cf8f4 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe67de6f1 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf64c49ad wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x012998d4 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1e7e9c28 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3967f602 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x46dfc296 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa5a4bdeb ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xaf67a7e3 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb01c1c27 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xba68f136 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xed5a6355 ipack_get_device +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x0dff56cf led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x2ae38cd4 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x3756b978 led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x55ea6d85 led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x5c08657c devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x6958562b led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x77ef37b8 led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xc45bcd4b devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x301e63e0 devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x54a07686 led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x8a5c18a1 led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x8e52b41d devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xe56359f5 led_classdev_multicolor_register_ext +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/md/bcache/bcache 0x01a4270d __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x033ef57a __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x03cd3cce __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x04bdf89d __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x08f1cafa __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0a0bbabe __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0aabe68d __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1001a468 __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x115ace0b __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x166b6093 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1ce20a72 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1ec1db1f __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x21b87a42 __SCT__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x226d380a __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x23ae7f00 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x24939b94 __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x25043334 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x25cacb14 __SCT__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26f4691d __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x287090dc __SCT__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x297e0da3 __SCT__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a717541 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2f1d05ad __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x300c8ff4 __SCT__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x33dda596 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x346cb332 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x36f317a4 __SCT__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x428d198f __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4543b49b __SCT__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x45f20d19 __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x472a7c81 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4e33f284 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4fd7bcec __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5096a60e __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50d9ba88 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x52133f6b __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x527214e5 __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5803e361 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x58e4ead6 __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x599e5013 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5dd80bd5 __SCT__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5e7e5d4f __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5efa6df5 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x607261c8 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x607ff062 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x629c9180 __SCT__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6677ebf0 __SCT__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x68499ae2 __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6a29971c __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6cb79dde __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6d9584ff __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6ebf4f25 __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x73aaf4c2 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x752f7fa4 __SCT__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x787810b2 __SCT__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7f252e00 __SCT__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x817ad796 __SCT__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x81ead7a1 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x822db771 __SCT__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x82e9ab42 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8976995b __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8abc481c __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8b26df65 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8f95ffa6 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x92d56243 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9353795b __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x972aa384 __SCT__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x983ce2a8 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a3e572a __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9d28d153 __SCT__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9fa936a7 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa15bd7c4 __SCT__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa172e10c __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa41d063c __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa422c8da __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa5dd0626 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa784e073 __SCT__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa83ea6fd __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xac217c84 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb0786b2d __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb71a9d4c __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb7e5379d __SCT__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb8b47483 __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1afa35 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbedf3aba __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc51d249a __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc73e0c99 __SCT__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc9ae5e37 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xcacb2e2d __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xcbacc461 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce451ad8 __SCT__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xcfa378dc __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd1acce6d __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd30206ff __SCT__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd5356677 __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd57fef53 __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd6f49b01 __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd7a376b3 __SCT__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd7a7fbec __SCT__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd7b5e52f __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdb0682eb __SCT__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdb182a8e __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc17447f __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdd29d231 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe048edbb __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe42c68ac __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe8664d87 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed873b62 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xedf90bb3 __SCT__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf0d83b09 __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf266c72d __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf57f81ae __SCT__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf7a5edc7 __SCT__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb767f16 __SCT__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfba360db __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfce76b1e __SCT__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfdbbf263 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2c0094f4 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 0x3ff26cb6 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x68213625 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x753e20b2 dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7c5584ea dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7e5f74b0 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x83faab3c dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8e066e43 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x921390e1 dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xaa19bb75 dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xaba74d10 dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xace9b57b dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb2bae4c6 dm_cell_release +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 0xb7f8054b 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 0xceddaebc dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd99e003d dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe2b6105b dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xef966b72 dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf44b7c78 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xfd013cbe 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 0x24772bfe dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x2e0774dc dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x55b37891 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0xf241a6eb dm_bufio_forget_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0efbca4c btracker_promotion_already_present +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x1dab167f 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 0x8ea90746 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 0xe1bdae47 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb8844849 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xdcaffb26 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 0x0b86a0ae dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2caa3116 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38972f23 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x57e16c3e dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5f4a6e61 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 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 0x951a215c dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9dd1509e dm_rh_dirty_log +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 0xb99cf794 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbb865368 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 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 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x20c84409 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2bc1a8d9 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x3646e38f dm_tm_issue_prefetches +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +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 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x79bdc649 dm_sm_disk_create +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +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 0x88998224 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x88a5c035 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8db6f8f0 dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8f5eefee dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x925f421d dm_array_info_init +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 0x9341b376 dm_bitset_cursor_get_value +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 0x9718cffa dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9955fef4 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9ced228c dm_array_cursor_skip +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 0xa29d4c0c dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2a74861 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa9cf611b dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb3d7482b dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb6879c01 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb720ee73 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0d7c2d1 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0fadb13 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc36559ad dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd237b9fb dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd39c0246 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdf3a4e7d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe781f874 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe8438eb5 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf82dba90 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfce51d79 dm_array_empty +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0097a71b cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0941be65 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1cd6dc33 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1e2385d0 cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2791c97f cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3483fbaa cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3c22a97e cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x4798f4a8 cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6a42e19f cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6ce4f8ef cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7160d503 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x81d3a3b2 cec_pin_changed +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x9579b5b7 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa01fbb6b cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaa6e72d3 cec_pin_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaade7f9f cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaee236c6 cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbae56c14 cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbe4de675 cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc16f2887 cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc23e9617 cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd903a5e0 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xdc2d706f cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe870701e cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xee1199d8 cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf71ce462 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3c4c9c99 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x450e675c saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x515033f4 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x718a5ea7 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7b060e59 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9caad793 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9ffcdcb8 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa80591ce saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xcc704c09 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf871f6a9 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x39fdd077 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x58e612b8 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa9ef6572 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xc6f7dc9b saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdfac0d0e saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf6250302 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xf9261d3f saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0a26f273 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1008482c smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x29889b5e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3f5732c2 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x42e3b3f2 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4aa8c9c9 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4cb69002 smscore_unregister_hotplug +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 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa368b186 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb78942a4 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb9d71b2f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc1bc6bbb smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc399b166 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd8ef485a sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xecfebfb3 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf4e18947 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfa831661 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfea15b9f sms_board_setup +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 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 0xb40fae23 tpg_g_color_order +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 0xf4aef3a4 tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46 tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x02ff82c6 vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x03eda43c vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x17b8ed59 __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x17ddd7d6 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x20862264 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2b5551d5 __SCT__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x329212c1 vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x338b75e1 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x36d3ccea vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3fe1d0e0 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x41fceadd __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4227aed8 vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x437a4ba9 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x44c78931 __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4996b01a vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4ed3fb1b __SCT__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5322a7ce vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x562fb908 __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x59e415fe vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5a06bf68 vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5b8fb0ba vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x654c05fb vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7bd0ead7 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fdc0859 vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x813fd958 __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x82a74e27 vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8d8bcdac __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8ff01e99 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x9691ff4a vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x974f5328 vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa90fd3a6 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa9a41cf5 __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc178466f __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc4ae1dc2 __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc54c863e __SCT__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7920841 __SCT__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xcf39126f vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd708a528 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd883ebf4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe5929430 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xfa6f3dec __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x0395247e vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x67aa00fc vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x76fd03e7 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x0864e5e6 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0886bd62 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0a85cbf8 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1083ef4d vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x14d210db vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x223ed063 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x236ba1d1 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x25c00ce5 vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x293c3e06 vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x32ff5af5 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x354f31a9 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x41b9463f vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x482a1a72 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4b05a5ce vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x57682461 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6009f3b0 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6015ee6d vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6148f3b8 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x675a62ad vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x735c041c vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x83c59744 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x945f0190 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa7312bc9 vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xab4c5733 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb5400f6e vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb788c017 vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xba5cb76f vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xbf3ee77c vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xca328f1c vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcc4e1619 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcf9ee935 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xd823f616 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xe447c61b vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xec90567f vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf912cf55 vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x47c5f0e5 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x12f0b374 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x560ad4b7 dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xc37cba62 dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x64a1c8a5 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xeef2e10f cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0xa34dd896 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0xfc70392c mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x41fc156f stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0xe99b7b0d stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x7a01e80d tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0xd5b8e564 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0xdb0c1ddd ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x020dba85 max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x07f108f0 max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x23b6be1a max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x4e5b7d49 max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7c2ade43 max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7d0c1a16 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x9f61c7f6 max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xa5d0f887 max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xa8c4d123 max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xb3ab444a max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xcce83e95 max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xec6a2887 max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xfde5f3ab max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1059f270 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x13a5a8a2 media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x157fe4b4 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x179d151b media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x18e06354 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1ab08b4e media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1e1a451a media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1fd470f2 media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x31044075 media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x35136f1f __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x369f6b8a media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x37763346 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x45c916a1 __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4b3389c0 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4c5160b3 media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4d99c3f6 media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4f49f080 media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x60fe3c0f media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x64d0e3bf media_request_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x66931c04 media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6d48bb9f media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7646927c media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x79f2a34e media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7b92e5be media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x81c69a63 media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x88452f3c __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8c790fbe media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8fd21d8f media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9189b509 media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9218ea40 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x96d8050b media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9a45742c __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9e86ffb2 media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa04445bb media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa08f3f50 media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa1fa1fbd media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb37bce0e media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xbcc16da4 media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc81991f9 __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xccef7c95 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd4943cc2 __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xda66d092 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xdc5f13f4 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xdc9265e1 media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe0957ca1 media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe5ceecd6 media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf0a9f7f4 media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf5e3e1ce media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xfc781c47 __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x8b184054 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x32cdba54 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x36e711d1 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x381cf41b mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4bfba68a mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5294fc96 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x65692616 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x732513c5 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x74ca3b90 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x855eec97 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x889cb7f5 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8f739fa0 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xaf551d95 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb10de7c7 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb240fcdc mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb5afd489 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc936196a mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc9a5e6a3 mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd7057b30 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xde013537 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x1267edbc saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x161d2df0 saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x16d66ffe saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x20746cd6 saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x34b7c81d saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x67b4fdc9 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x71fd8781 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x75b1ee6f saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7cc19b28 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7febea81 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8867cd5b saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xbd43118e saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xbdd4dc50 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc4d3ed45 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc8dc3081 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd6dba6b9 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd896974f saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdee1143e saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf0001ffe saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x30d73cf3 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x540f9b4b ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5c8b5fd8 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x63c8478b ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7d1eecdb ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x95754e96 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xa16ed27e ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x1c43aa8c mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x512e0198 mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x668e1061 mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7d5a0853 mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xa3e36d03 mccic_irq +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x1b74dbbc radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7617b94e radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x194fed3a si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x542a9231 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7c8cc04a si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xc5927966 si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xd4c032ec si470x_stop +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0a5a293f rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x19ec78a9 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1b248473 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f0542a0 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2e98255b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ed90ced rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4a299c16 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ce1581d ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x51d181c1 devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5a47cfb9 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x65db4006 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x67c89342 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x79b90fb2 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9721b2d9 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9c139dd9 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9c4d5f11 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb960f15c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xda966d12 ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe0515d78 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfbcf4c1c lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfc5d3079 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x1bfbbacf mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x548de534 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x2bd10489 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xaecc0fe2 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xaaea8e10 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x2316b6ae tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xcbfbecef tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xd9dafb81 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x12f38c57 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x34128a98 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xee40a53e tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x486c56e8 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x8106ff08 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x297a8554 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x05cdf45f cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0909397d cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0d2fee27 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x172a1738 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1cee06d4 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x413bab8f cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5d04626d is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x665a73cc cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x73dbef3d cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x75e7690e cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x99784985 cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9e5b1d8c cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbe81eea7 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc931825e cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcb1ead9b cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd2260117 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdb6c63b4 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xdc693823 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf535881c cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf8d776bb cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xc97d8e1c mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xd39ecef6 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x22b68997 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3e54d30a em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4581ddae em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4785b5ba em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4c39f9dc em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x52925f15 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x60b746a5 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x69599100 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x721f7cc7 em28xx_free_device +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x78a24da7 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8e4ecc32 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8e7547d4 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x921d7c65 em28xx_boards +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcb972cc5 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcbf498b8 em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd1f26152 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd403422b em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd9977bfe em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdd3bfabb em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfb51f77a em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1773966b tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2185f57e tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x460a29a2 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xbb1bb0a3 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x02c208bb __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x0784ef3d __v4l2_async_nf_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x15fac052 __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7c2250be v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xd3eb6d8f __v4l2_async_nf_add_fwnode_remote +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 0x1547da5f v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x82f2f2cc v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xd29c8f28 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x050a489b v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x2161c607 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x6f24a159 v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x71ac0312 v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x9ed07048 v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x9f2d39c0 v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xb9433bcc v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xd3adf005 v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xe2bdd90c v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xf0054436 v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x03952198 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x04bcbebc v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x05eb8526 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x146a5a57 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x19f8182e v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x20719348 v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x260bc90a v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x297a6f07 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x34761e6a v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x39daa881 v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3c4b6a23 v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4895c74a v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4b960977 v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4bfa5d7b v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5073a26e v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x57089ccf v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5dc44209 v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6dd03c44 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7170002c v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7a8efd7a v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7b7747e9 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7f07fbca v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x82e39fb6 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8a3c8049 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8b2d6ab4 v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x979e67c0 v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9d21d880 v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9e5654b1 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa3a08690 v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb0ee3efb v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb349c3c5 v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb37c3ba0 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb4e90b08 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb973c911 v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbbdf9f3b v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbcc371a0 v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbf6f1373 v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc3c115c2 v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcddf6554 v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe228b176 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe302576c v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe43bdc4d v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe96f6d4b v4l2_m2m_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 0xf8e7cfde v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0809a2e5 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0a28b8cf videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x16be1e7c videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2357d318 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x49eebac1 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4d144141 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4ebdace6 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x562e590a videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x634234fb videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6d81f0fc __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x76a5c7c4 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x82a0904a videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9b2c2b1c videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa0c5dc13 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa28e1294 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaf9fb636 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbdf0563c videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc5985669 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd964f423 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd9ac01cd videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe6a68edc videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xefc59719 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf8acc2c3 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfd907610 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2ce9e99c videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7897250e videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa750ce85 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xdac0487c videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x2456ff21 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe855bd04 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xee0cb3fc videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0246f5b9 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x02cbb903 __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0450d55a __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x04985cf7 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x04b127c8 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x06950ca8 __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0e05f2a9 __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0f1d7e49 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1419dfa4 v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x144b0889 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1885c1f6 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1e3fd39f __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1fcf046b v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x221e0dcc v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x27d0daed v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2e389290 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x356cf084 v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3b598710 __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3ff6f274 v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4066a5b1 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4668cd75 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x49e70135 __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4c42d7ad v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4fdb5637 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x58a2193f v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5e18dbe6 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x608c9cd9 v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x62b8af25 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6520c186 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x655ef64f v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66a00e4b v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66c11e15 v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66c4abeb v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6d3d6bc6 __SCT__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x71b1b1b0 __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x732c2f78 __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7c058742 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x808fd994 v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x89261bbf v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c34540b v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8d6f7c6e v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8dc67b53 v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8e20019d v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9482c821 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x975a80c4 v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9818c363 __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x995976a3 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9a8a94d9 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9b8d0047 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9f608c70 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9f6b8b53 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fef35ac v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa1893d14 __SCT__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa299440b v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa69b784b v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaa829049 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xac55d9b3 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb2efc820 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb8f00ee0 v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbe2512ac v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc6ba53d8 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc81c5f05 __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc8dd867f __SCT__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcb82059c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc501597 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd4ea19f4 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd541e31a __SCT__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd7e01e17 __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2822320 __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe8035a9f __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe84fdb31 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe94676b2 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 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf6da4eea v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfa7923b5 v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfb514b95 v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfce3c6c4 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfec9aa6f v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x00cdfdd8 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x2d284e14 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x6b980517 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x075b4d63 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x0d34ac3b arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x14af6edb wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1dc7fed5 arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x222d6d1a wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x33dfbbee wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4fb7ed65 arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x530a350d arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x6115ac56 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x8c4a224a wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x9c46f86b wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa6b70564 wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa727bd3b cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa8d8d4fd cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa9a2852a arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xaaf78759 wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xae15b3b9 arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xc81b43ab wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xd9e7af37 arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xdcfce971 wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xdf7e3927 wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xf2c2a89f arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x19dc4ee3 atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xfc717380 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x49d3a18a da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x4f5d5774 da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x5c239f70 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7127627a da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xba686cc8 da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xbb931fcd da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xd6704752 da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x086b5821 intel_lpss_probe +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x1ce8d202 intel_lpss_remove +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x28a2d35f intel_lpss_resume +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x38c2d24c intel_lpss_prepare +EXPORT_SYMBOL_GPL drivers/mfd/intel-lpss 0x84b9847c intel_lpss_suspend +EXPORT_SYMBOL_GPL drivers/mfd/intel_pmc_bxt 0x0f645631 intel_pmc_gcr_update +EXPORT_SYMBOL_GPL drivers/mfd/intel_pmc_bxt 0x1d904a30 intel_pmc_s0ix_counter_read +EXPORT_SYMBOL_GPL drivers/mfd/intel_pmc_bxt 0x254c58a4 intel_pmc_gcr_read64 +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0xa436f4de iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2e60e80a kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2f7c18e0 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2fc7bd49 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7b0a88ac kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd2a31f3c kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xebe64376 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xee63caa6 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xf9f7e476 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x24f745ea lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x3728b2fc lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x84783e70 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x05bf53e9 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x2aa65400 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4e62fe56 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x5388aa5d lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x839f8653 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xb2a19ee3 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc387472e lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x458e259d lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0xa76d95e4 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0xcf0c678b lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0a3725e5 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0a3af9a5 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1711d2d0 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x171c0e90 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1f2d461f cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x256349a8 cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x256e95e8 cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x28cd74f7 madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2fff8bcc cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x32ff81ee cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3db63e18 cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3dbbe258 cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x487fac77 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x490238e9 cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x490fe4a9 cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5424cfdc cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5429139c cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x665654a4 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x665b88e4 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7e832314 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7e8eff54 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x9ee76510 cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x9eeab950 cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xa7b51059 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xa837000f cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xddd2781c cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xdddfa45c cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xe8081156 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xebe384cb madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x392a4db3 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3e176c83 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x6ca2d2cb mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7ead27a3 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xabd16923 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xbc6a8af9 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0ad03cf2 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x61a522f7 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x779a0e71 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9e5a122b pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xaf112cd3 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb4f7ba5d pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc39d9428 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc53ef243 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xcc1538b2 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xeefc633d pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfbc3f4b5 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc66ca1a1 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xfde30cc6 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4a36ca25 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x60b2ca42 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7b2ce9ee pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe95c9468 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xf80aff32 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x43e53ef9 rave_sp_exec +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0xddf2176d 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 0x0bf3d832 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x10800c3e si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x12ec24e6 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1432ff80 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1ad517d6 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x211eb8ed si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x24b8f119 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26279050 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2fc371a5 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x31288d31 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x335003b0 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x355859a6 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x396b1663 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x39e82cc4 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4de54362 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x51315a08 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x52fa2436 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5c11cc05 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69d20380 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6c76f295 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x73a6b8ec si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x860541bc si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x95a4d01c si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xaf88b351 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb7d6d866 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbe57dca0 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd1323c3a si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd7991096 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe62dc3f9 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe891a97d si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xec1d1123 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xed670446 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf10f0a16 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf90b4ca7 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3856ced4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9618b76e sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xed51b7eb sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xee3d908e sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf2b5b67c sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x225008b4 am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xbaa33fb4 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xe3914f72 am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xfa736003 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xa4ec8ac1 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x11d2ee3e alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x1fa4b229 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x57018464 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x8129d302 alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x944eaf5f alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xad808a69 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xb7ebb95b alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x05ba4127 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x0d6c1baf rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x28f7459c rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2b782f22 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x3497c391 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x35610945 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x398d92b4 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x3d9c268a rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x65ebe12c rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x688879aa rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x74d6d95c rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7560bc9b rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x798ac881 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa0fe3db8 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa838a855 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xbd2b0a37 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd0401161 rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd6760166 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd8cda291 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xdb07706d rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe3a7d473 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe87d0600 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xed7ba1a9 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xfd4e9738 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x03f6b886 rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x277c6963 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x358c8ac9 rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x37a523d7 rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x440ab6e5 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x589373e3 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x95b72a6b rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x9f4213a3 rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xb53636d0 rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xc22e3712 rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xe65a090c rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xfb1b5c78 rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xfe79558e rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x3a049699 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x46ee7661 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x90c3314b cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9b335e09 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x0b008db0 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x296a8983 oslec_update +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x3115970d oslec_create +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 0x0b0f0ecc enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1ec98984 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3b5b700a enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x76716fe8 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa81f7d13 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcb8aef65 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd4ff8276 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xdfb30261 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x052ab021 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x0bd2d00f lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x19543eb0 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x20d58997 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x6e9d87d8 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fac4df4 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd8d93bfd lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xed43dc10 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x0091fa6a mei_cldev_disable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x0e0b3380 mei_hbm_pg_resume +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x11f7735e mei_cldev_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x16c16f84 mei_cldev_register_notif_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x173d69f7 mei_cldev_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x25473e0d __mei_cldev_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x307422e7 mei_cldev_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x31e084d6 mei_hbm_pg +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x33db3abc mei_cldev_dma_map +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3833af41 mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3a3e9e51 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3bfc9f6c mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x3c2799ab mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x80f23b9c mei_cldev_enabled +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x90a24af4 mei_fw_status2str +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x90f66ef2 mei_cldev_ver +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa038880f mei_cldev_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa38014cc mei_cldev_register_rx_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb34f7ada mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbb5bf880 mei_cldev_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbb794945 mei_write_is_idle +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbd5444f9 mei_cldev_enable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xbd5471fc mei_cancel_work +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc2b37943 mei_cldev_recv_vtag +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc5949600 mei_cldev_recv_nonblock +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc64395ed mei_cl_all_disconnect +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc94fedac mei_cldev_uuid +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xcd62a897 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xcfdb9d6c mei_cldev_dma_unmap +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xefd1c970 mei_restart +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf42de6e6 mei_cldev_send_vtag +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf89cc693 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfa5f4534 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfa6f1581 mei_cldev_recv_nonblock_vtag +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfc10a9e8 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei-me 0x922c6ae5 mei_me_irq_quick_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei-me 0xb99a6270 mei_me_dev_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei-me 0xcb430034 mei_me_get_cfg +EXPORT_SYMBOL_GPL drivers/misc/mei/mei-me 0xd0eef98f mei_me_irq_thread_handler +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x421b9e26 devm_pvpanic_probe +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 0x8d146cd0 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 0x91401317 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc3503d7f st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x10168f82 uacce_register +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x4a3fc47b uacce_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xd87fc7fe uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x01ac22cd vmci_qpair_enquev +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 0x6099a7f2 vmci_qpair_dequev +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 0x787f0fe8 vmci_register_vsock_callback +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 0xde3abc2e vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdf7a641a vmci_qpair_peekv +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 0x03e29cd1 sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0b7ef5a3 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x115e6cf5 sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x222cc08c sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x25e70d01 sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x27262b71 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2d433992 sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x37aeee53 sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x466e334a sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x47c6b148 sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x534b2e06 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x53ee5150 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x58d4da22 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5992e067 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5fc1cc9a sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x71a1cba3 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x73217d9a sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x744a1571 sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x76e7b7ef sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x78b9dea9 sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x80e05072 sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9125a3c6 sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x94ca5a8e sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9505546f __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9c5368fd sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa10329b0 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa4094205 sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xab6cd1c9 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc1c2e360 sdhci_request_atomic +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc3669674 sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc8752040 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc8af74af sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcedcd7b4 sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd2d60619 sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd65ebacf sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdbe701fd sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdf0ea7af __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdfa2586b sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe298c7ea sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xec4e0b18 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf1bbe7c1 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xffbef5cf sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2766c4e2 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x2ef38b5d sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x45e30f25 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x84757296 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xafc57c62 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc18c6b98 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc6dfb118 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xec56fe5b sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xede7b9d7 sdhci_get_property +EXPORT_SYMBOL_GPL drivers/most/most_core 0x11c88940 most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x21e2df9a most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x274dbb7e most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x4d72f575 most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x4dc8b0fb most_submit_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7c097055 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7d24cf8b most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7db4676b most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa1d0cf63 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa6b0bbca channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xbabe6bb4 most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0xc2a7267b most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xcea54c3a most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0xfb67ef72 most_deregister_component +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2499d180 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd987f416 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe6aed1fe cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x35eaa964 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb8412d32 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xc61366e2 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x57d40065 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3f7bbcc7 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x8efff581 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x99b83603 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0xb69329ad hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0xf1fa7274 hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x001157fe mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x09963669 mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0cb5c8b3 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0e19af20 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f924128 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a44daf6 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1e0cb2eb get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1eab5020 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x20c408b0 mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x23cab18e mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c6b240e mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e5ffe3b kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x36ecda56 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4293e864 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44d186a7 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x50dabc2f mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5578adfe mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55bd99a2 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58fe2eb5 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5d42d2ef mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x601e6bc2 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6168849f mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x64fe547c mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x688db14c mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68e4f557 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68f33036 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6cb989ac register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x798a43e2 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7a47b303 __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7db4adf0 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8d9066cb mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8f90a632 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x90b2e873 mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9249f981 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x98175fa9 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bd7cba9 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xac55ccc3 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7075882 mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7917394 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd100e55e __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd164825e mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd49609c6 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd5bb9ad8 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd5fc81de mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6f45732 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde68f359 mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe042c677 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3126dc8 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe3c72c6b mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe94dc229 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeb293aad get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee6ad53a mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef3c5fc2 mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf6884610 mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfac1a3fa mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x08674f58 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa47067d5 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbd2184cf mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd03243fe register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xef01f6bb deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x06ea3e92 nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x0e25d9a4 nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x0e4677a4 nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x1499f4d4 nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x41972b84 mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x45806120 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x4a16cba2 nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x54446cc1 mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x5ad7ddfa nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x5b6c57d4 nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x7a807223 nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x8aec47f2 nand_ecc_restore_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x8b535b85 nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x8fe0d823 nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x9fea6078 nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa05d6776 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa429f8fe nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb9d106d8 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc2ab6b78 nand_ecc_tweak_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc46a537c nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc60b53f5 nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xc901602b nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd5a96ee3 mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xf6d8d637 nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xf6fdc206 nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xff078ec8 nanddev_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x29683b78 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0xa99c27a2 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x89590447 denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0511ea2b nand_prog_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x097549c7 nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x144729c4 nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x27eadd48 nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x48c25023 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x50b97005 nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x512d5012 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5666d41a nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x58feaa17 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x637866b8 nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x65947d32 nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7344aa1c nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x779941b1 nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x84992d6e nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x8807464f nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x90248bb4 nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x930e6439 nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x9d4506a8 nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xa7188826 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xba5504df nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xcea07dc2 nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd19f88e2 nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd3c672b8 nand_subop_get_data_len +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd41ff2ac nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xdb68060b nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe3eacaf6 nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0xc7d91f9b sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x94adbf6d spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0xc569cee0 spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0d89c94c ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1af4815b ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x39fae057 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x409c0e26 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x477bd0ed ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4b21fb18 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x520dc77c ubi_leb_read_sg +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 0x8939b572 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa38a575e ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa3b82ef3 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc52a9eb6 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe3f69f63 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf812e311 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfe4e2e77 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x07c1ddaf mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x241a9fdd devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x2a7f4fd7 mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x2fe7ec41 devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x517614c1 devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x59027e72 mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x5df3c1d8 mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x66e85c4b mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x6f54beca mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x8b3c21d9 mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x9b37ae47 mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xb12775c4 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xc0df9bd6 mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf0420845 devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfa76e911 mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x170a25df arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x72472fd2 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x0153c36e free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x13aad9a1 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x1ae9521f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x80d29ac7 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8dedea61 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb6edcd81 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x0ba77152 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xa4d7ace7 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xb1084e47 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe1b7680b unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x02fa70ca can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x18928679 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x235e47d6 can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x341c9f24 can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3446902b can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3e5cf61c can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x41c397f0 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5dbe0bf4 can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5faf8dee alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x66fae784 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6773f122 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x71a575ac can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7431a90d close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x771843ec unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x878a0b03 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x93dd5129 alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x94d9f0bc can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa4325995 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa7d37f16 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xaf735138 can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb1bb9108 can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbc2d5a37 can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbcb72e80 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xca786cde can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xcb5ca287 can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd0310521 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd3a16699 can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xdd478677 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xe3c77345 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf12d9387 can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x14ffc95c m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x1eb917d1 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x32cc9911 m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x5e3f25c1 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x6b7ae797 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xcbd3318d m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xd388b787 m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xdf44f337 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x56a76ac0 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x59b5ce0d unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd7741b46 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xff51def5 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x556f9294 lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x08598631 ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x12614d71 ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1858f3d3 ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x189e4aaf ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x21265bb2 ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x311b1257 ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x3e970731 ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x4e90f309 ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x64fead45 ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x650b0d0c ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6f5ca457 ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x756503b7 ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7c34da19 ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x8e976c50 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa5e52b5f ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa832201a ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb142e1cd ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb429a45c ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb9532fe9 ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb96fe6cf ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbdb9ec39 ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xda0468a1 ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xdc1c1a17 ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe165f2d4 ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xf0c1987d ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xfa384259 ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0x31986d84 rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x0b365b50 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x1a768cae rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x1d850dd1 rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x2b93912f rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7b088f79 rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7b495303 rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x85f87ffb rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9791cda1 rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xc1fc348c rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xe1f92059 rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xe45bf4db rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xf130b3c8 rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x178ad334 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x22be9e7f fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x48293dff fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x54d241c9 fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x6adf41d1 fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x76f13fb0 fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x91ea988c fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x96f07470 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xb57d4735 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xc18acb20 fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xc979fd51 fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x490263f2 i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x692ae376 i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x37e564ef ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xcbb38b65 ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xd27f92b2 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xeef8d436 ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xf7d4f101 ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02c9e0b7 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x079cfa26 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0879324c mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0c250994 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dd870e7 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0df0350f mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fe97ebb mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x101fc630 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1096ebc1 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12ef5cc7 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x147b6634 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1591d589 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1a842b10 mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fda5c06 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21a97f95 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22bbe1a1 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x238bf64c mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26a68352 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b800c1f mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c2a02c3 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e1aa565 mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f255ce8 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2fe65c79 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x308350a4 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x316a501e mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31968790 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x319da399 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x32bb5220 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x360487f6 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3721996a mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37c1598f mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x399690d3 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a56f1ae mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e4cc273 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ed77295 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f5d3f7f mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x417d5fd4 mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x428763b6 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43e1dae6 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43e7f26a __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47d10bee mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ac9c7be mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b9a2972 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c791346 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50adaa07 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x579e0d5c mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59acaf1c mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5a456b86 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ca68232 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f776cec mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fed3ea4 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ff417ce mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60ab8f8e mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x628301f7 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62a22f76 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6503410b mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x67c6fb05 mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b76cf71 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f34579f mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7988f517 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bac139a mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7dfb49bb mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ea6d01c mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f570a3b mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f82c7fc mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x810533aa mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81326c0d mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x843c2e91 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x844a2e6d mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85c35671 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86d75a91 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88678d63 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f120b0c mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x951c0b84 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9823614f __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x985a9cbd mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a803924 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9bffe93a mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa11adb9b mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa22d0ea8 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4108a91 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa537ebc8 mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xacda6256 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xae4bb8a1 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaee65caf mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb273237c mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4055a5d mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb53462d0 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb62c605c mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6a1f9f8 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb75ec1db mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba23bb9c __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba7822ea mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbaf0b87c mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbdd6728f mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc069a503 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2e957df mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3f2e138 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc602ee51 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0ecae5d mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd149df8a mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd59cb4ca mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd70d74a6 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd90ad28d mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdcdbeed9 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdce2386a mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe0d42007 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe13cb9ee mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1481918 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7f36d61 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xec3f18b0 mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedbafae4 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefa0f9ee mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefb935dc mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0eeb5cf mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1692118 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf202cffa mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2828c89 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2a46f0e mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6d09407 mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8bba766 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0258b9bc mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06c6c19d mlx5_nic_vport_affiliate_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 0x097c0b3a mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a19700e mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a618f31 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19b651a5 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a92144d mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b7ced85 mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c006642 mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x206024a7 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2207ea9f mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23845066 mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28fafc6b mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bb80ecc mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30790f27 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3150a847 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32378cfd mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3251ea30 mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3312a130 mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x358f732b mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f472e56 mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x496829dd mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cccf3ca mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52a48727 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x572a7663 mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b562893 mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e7303ef mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ef3d90d mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f1f89f8 mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f2a85a6 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x624df762 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6657c637 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6859c91b mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6cb24142 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7180af3c mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7385184d mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x745031f0 mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74d4029e mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74fdd615 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a0a32eb mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a6db285 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c2735ca mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85bbb4b6 mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x886be4e7 mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88ee078a mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d09261c mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x910f399f mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92024e8c mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9251b997 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9bf69616 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9dc53343 mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf303807 mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb09cbbe6 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb37379e5 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb524ef69 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb07cea2 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd8b4ef1 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe3ff5da mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe639109 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf572e61 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde49104a mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde72bf7c mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfc519d2 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4a612df mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb5045ca mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef4cee7d mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa0da00a mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x18f547e0 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x3b27bc34 ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xc0e4a1e8 ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xc6ace911 ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x9b576734 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/mscc/mscc_ocelot_switch_lib 0x0071b3fd ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0334489a ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0d233e0f ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1de2a182 ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1eb4042e ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x20309a27 ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x236f1b74 ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x507a9afa __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x53452fd1 ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x63199e08 ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6e5fb2c3 ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6f539d70 ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x741a55ba ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x76130700 ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7655aba4 __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x78499b66 ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x982c659d ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9b5c63ae ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb970960c ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc23ce148 ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xceb35829 __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd3d867fc ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd3f5d747 ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd7610c3a __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe3afe222 ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe3cd0dec ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe98ecb03 ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf97512f1 ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfceced13 ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfd7513f6 ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x03b60425 stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x4c46037a stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x4e55c4b0 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x51190e50 stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xd0297d7d stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xd78a65b9 stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2e4f3855 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x3dc14eea stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x4f87d60b stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x61d8a6f4 stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x6b58c7e8 stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x0897a4d3 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x364095f4 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x62c73dbb w5100_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xbfa519b1 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/geneve 0xc4d47e10 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x042b3a8b ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x3849392f ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x63c5db9f ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7e3c9af8 ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xd811f6a1 ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/macsec 0x14440267 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x80a6e1b4 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb48b74c2 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd1043c6a macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xfebbecdf macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0xe39aa495 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xb32a8518 net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xdfed82da net_failover_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x064ff9e9 xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x23feefdc xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x36e280d6 xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x82bce66d xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x8947189e xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xc69d2d93 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xcb794255 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0d599119 bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x186d6422 bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x19ede464 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x25324c98 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2cc54fe2 bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x35317f3e bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x381731b5 bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3c1fc638 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x417620c5 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x42eac566 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x575281da bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5eca5a78 bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x61ea4c67 __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6e683847 bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x81c5a5c1 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x82f6e4d7 bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8f37a8af __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x9046f4dc bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x96aca554 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x984ed448 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x99772888 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa8d0856d bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xaf5bfd2f bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc2581cff bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc36d0242 bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xca98d2fa __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xcc052d3d __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd3e4f633 bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe4a43bf3 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xecc4e02c __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf028a411 bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf2e4bbd4 bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf544442d bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf6b55bd6 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x3e476b30 phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x44ab6a1f phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x62104126 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6bf0fd0c phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6fa426d2 phylink_ethtool_nway_reset +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x814ff1f6 phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x825c7340 phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8df9a48e phylink_mii_c22_pcs_decode_state +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 0x9c1fa4b3 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x9c7c63a5 phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xa67f4553 phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb23a8477 phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb384c13e phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc85b7c9f phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc93174f8 phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xcff1abd9 phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xde66f4a7 phylink_mii_ioctl +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 0x08c0ad44 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0x0d81ae9b tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/tap 0x3fdfc348 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x4d745db3 tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x5bc42947 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x792d9447 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x797b7521 tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x9d48c681 tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0xc2f6fe37 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x03bde9ee usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x17459581 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x20c4edff usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7008bbaf usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbb173706 usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd2ca1f1d usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf1a461b8 usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x015c9823 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1de652d7 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4144714c cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4709dc17 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x64b47742 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6eaabc74 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6ee80f78 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x81cb7096 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9bbc0375 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb2f1d49d cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb5f1181c cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0xa208e435 rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x20d421e7 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4c1c81e5 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6544aadb rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x820be073 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8d48b56f rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe412bc9f generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04de3681 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x178d5ffc usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x18544a58 usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x21b80436 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x26f810e0 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3d34755c usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f3e11a0 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4888aaba usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4ba9f3ce usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a6b7d0d usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x618e497f usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6206e6a7 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6dd1cd6c usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x721598e1 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7510ce3f usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8193564c usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x825440d3 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x875c6fda usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x921c486a usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95311f59 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x965cb328 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9752a926 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9a3a4cd5 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2132406 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb59e67ac usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc01cdf0a usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd359b40f usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xde4ebd90 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdff3323c usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1e1a6ac usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf365130b usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf6e22a07 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf910edeb usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc3884b1 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x47f8f7d4 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x62833ac5 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xa3aff7f6 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xdadcc104 vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0xf5e30bd6 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x849d2cee il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8b203e17 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9b547c7f il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaf0a5aca _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcb674e52 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71118edc iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74778a2f iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x214c7508 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x5d7de793 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x62f298e7 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xbfda502b p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xe7744ec3 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xe86cfa07 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xe8a1518c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xf0b3a0f4 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xf8215db2 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1188e964 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x19b3b9b7 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x4492db0e lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x4da50511 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x59e752d9 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5ffedfa5 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x6f647447 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7566073d __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x76e78d05 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x818e2f84 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x83b703bc lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x896fee93 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x906a2128 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xb0fd834d lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd0d7fca3 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf0826fc5 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x0bd40539 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x22c7d183 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x3e211f98 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x71663e30 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xa489d10b __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xa64853d5 lbtf_remove_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 0xd54c2ea4 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xff716310 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0eb2a560 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x17cc9369 mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x24615684 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3537d6e1 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x46971cfb mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x4f7cc7f4 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5a2225e5 mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x69be6271 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x785cb210 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x946cfe05 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9cf68b91 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9e43b594 mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9f910e23 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xaa6e1af9 mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xaae22982 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xac4f4d08 _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xbdbe983c mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4391ac6 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd45102bb mwifiex_remove_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 0xd6477ebe mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xe482b639 mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xe65c20dc mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf46171e4 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf966a46a mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x01c654ef mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x053cd7a1 mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0a4115da mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0a58aa28 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0aaf61e8 __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0cbc0555 mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0f0379ee mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x125c0a3a __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x12af6292 __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1353ef2e mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x212908e6 mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x25ae335e mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2b04fe54 mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x311ff9aa mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x34ccb18e mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x35dabcfc mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x36f9d519 mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3ea3d8e0 mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3f876993 mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4223491d __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x42af4583 mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x47ec1d0f __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d1f7a8f mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d3a7780 mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5925c31c mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5c6d91e7 mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5e70c276 mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x612c9d23 mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6216f314 mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x62560f58 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x659ca3a3 mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x65cd919d __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x66f884df __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x67da6096 mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x681c6528 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x692c8907 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6b5f2409 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x70ca4112 mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x72a37aa6 mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x75ab3bcd mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x75ed2132 mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7ba2b575 mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x80c37d22 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x80f2f739 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x86a663ae mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8affaf4d mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8cbcf579 mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8e6cf850 mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8ed35acb mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x910a58b5 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9969a40a mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x999832ee mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9e5574bc mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9f945a35 mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa2f41caa mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa5002e27 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaaaa0e4c mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xaef69fb3 mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb78ed9e1 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbb31a266 __SCT__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbd118c90 mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbd9b63f8 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbf20aceb mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbf41e9df mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc2015e3c mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6634315 mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xca251e15 mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcab466fe mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcc572024 mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd4f1a83e mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd91616ec mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe40b66ef mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe45628cb __SCT__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe65814f8 mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xea39de23 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xeb8710a7 mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xee17a271 mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xef2574a9 mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf005f637 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf10bee46 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf11de27a mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf421b739 __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf43ca452 __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf459c75d mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf4bc1de1 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf55f3fee __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfeaad647 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x01fcf7dc mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x09663895 mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0a381dfe mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x114970d3 mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1a56396d mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1b6375f6 mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1bae269e mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1e6273de mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2545b15b mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x29adfefd mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2eda3681 mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2fa551ee mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x32e4b40b mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x39d93709 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3d5cb721 mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3e37d3bd mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3e9bdd08 mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x40de3755 mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x44b61c54 mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x450208e9 mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4ea55f51 mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4f324acf mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5296d7ef mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5413e476 mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x55b6e708 mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x592505f1 mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5d291cad mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x60c6aa6e mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x62fe2e29 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x630e6692 mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x655ff49d mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6814cdd6 mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x68319313 mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x68dc1e00 mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6cf0fbe2 mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x71b74467 mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x73c3b9db mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x77dd33b8 mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8ca7d25b __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x908ca40c mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c378134 mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9cedbbf0 mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa5147391 mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa767ab9a mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xac802e39 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xadc33cb3 mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb769567b mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbaeb6e14 mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc0df5e01 mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc34db2c2 mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc4f5a593 mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcc089276 mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcc829433 mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd9e0c8c4 mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe9c36586 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xeedc6f8e mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf10c8998 mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf14fa6bd mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf514780f mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfaf0ca32 mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x2980324f mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x2ce4ce52 mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x34ea0253 mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x46396e1a mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5954f2c9 mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5fec75e3 mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x603f3243 mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x63ea864d mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x66bd4f93 mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x6f179485 mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x8fa9b729 mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xae0de531 mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xafc64a0a mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xb886a570 mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf6810a13 mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xfa8c5130 mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x1978b9ae mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x1bb5602d mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x257f7765 mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x6c95aa40 mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x88c209d6 __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x90a2a16e mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb2daf531 ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xbdedcb7e mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xc4813fec ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xca1caa28 mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xcd2476e2 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xd88d180c mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xe1e94859 mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xfb27a2df __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x0a5ceaae mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x15e2d67f mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2bb72cd3 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2dac1b2f mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x30441263 mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3ab89da6 mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3beabe1d mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x49bee043 mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x59bfd442 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x5ef1ce87 mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x600c214b mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x61739e44 mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x63715e05 mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x65077b43 mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x72cfe81a __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7b8f4ef0 mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7dd2c1ab mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x8b616e09 mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x8e28e0ba mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x907153ba mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9740a00a mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xafe15cce mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb9359630 mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xce6f8f48 mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xeb4e45a6 mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xec780eac mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf0080056 mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xfe3dc676 mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0xc9587c68 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x62ad1e9e mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x6e6c782b mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7d2b8e61 mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xcc84e1c3 mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x12bf6977 mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x30f2fa02 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x9b9532b3 mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x9d81cf64 mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd2cfd564 mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd3fe0a25 mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xe3974f28 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 0x0bc1fc80 mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0c17ede7 mt76x02_init_agc_gain +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 0x0e8fb3e4 mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x117e2216 mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x12d4e66e mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x160fe312 mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a933354 mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1ca4b384 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x292d4011 mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e2d10c5 mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x323ef099 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x327700ff mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x357381e3 mt76x02_phy_adjust_vga_gain +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 0x3cb9ddda mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4d9eb5b1 mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x51be7e66 mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55e23923 mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x57748134 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x582ec4b9 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x59d24d47 mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5ad190a1 mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x60ac7d4e mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x615d7be1 mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x63f42019 mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x66b74886 mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6a24ddd3 mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c79eecd mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6dd45b21 mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6ed6882d mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x701532eb mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7a18c608 mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ff81ff4 mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x84e56458 mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8835b9c0 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x89c2fca3 mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8b271052 mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8eecddc0 mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x90ad4021 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92101e4e mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92597a58 mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9e819b04 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa5137dae mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xad215afd mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xae5df511 mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb466118f mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb6741540 mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb8c3e03d mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb9720c0c mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbdcf9ad9 mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbe4a1c3f mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc76a6acd mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc8643c3a mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc8fd47f2 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd148f2a2 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd38bacfc mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd4d9f552 mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdb102920 mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdce2f139 mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdf70b732 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdfbeaf4d mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe5d384bf mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe68b67b1 mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xee011fe3 mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf75fc5d5 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf9d30d4e mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf9e79f8a mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x0c47c1be mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x118acec2 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x1cc9df35 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x6ca5dd92 mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x8cc1b5cb mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xba553ff1 mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xdd34f7e3 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe28d7302 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3f7bbc92 mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x428c20bd mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4b7278db mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x505a2cb6 mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x61d05b8c mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x66fd6935 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6799999e mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x77f55102 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x82557571 mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8ed8a739 mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8edb65e5 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9e2eb21b mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc01d87cd mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xc91e3e74 mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdc79b5f8 mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe0f15560 mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xeed83695 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf72893a8 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xfca65e14 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xffd316d2 mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x075a3310 mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x07ef5415 mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x277e53d0 mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2e1c862a mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x351334ad __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4a54b152 mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4d8d9f4c mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5ff260e1 mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x66e72013 mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7e5a652d mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x9b7d60d8 mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x9ce62e88 mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xa3e6f2da mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xa6808680 mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xb68d6058 mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xbc4ee581 mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xced2a96e mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xced60629 mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xd2f0d6b7 mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xd43e843a mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xd62beee8 mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xec3c531b mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf14c4324 mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf397d5d3 mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf7c37e35 mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x0432b651 wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x3dce445e chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x4ad6b5b7 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7edae837 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x8e8537fc wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xcd527f74 chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xe8ad90e7 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2480cbbd qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x269f9a8a 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 0x93dcdcf0 qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x9ef0e542 qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xdf29d761 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf6fdf1bb qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b70d2f2 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0caea551 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1239dcc4 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x155ae0fb rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1c8a9d66 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x267493d8 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x288ad7d3 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2ee4188d rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x31975637 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x38d94438 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e035c27 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x46c7380f rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x52a439d5 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x56cbe484 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x58f99448 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6019323c rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x74e41c82 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7e206f7b rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x845fb2ce rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x85791066 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x85f0aa8d rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x86ca4ece rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x89d2c3f5 rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x921afe46 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x955c0290 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9b0ac58b rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9b2a1e87 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9c1a886b rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa22fe51a rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa25c4f98 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa97a0504 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc83e4aa2 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc8b358eb rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd2f73ed5 rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd8551aaa rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd9c3edbf rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe13c9375 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe39e1cc5 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe5d60646 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xea05f9da rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xee0f8211 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf6070638 rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfa3c2cd3 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfddfd8df rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x012ac5ee rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1956def6 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x28388369 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x35cf418b rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3c5ae371 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6bbc2e1b rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x78142886 rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7f826bfd rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8327ff67 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x84177ffb rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x89403bde rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x94fe7e7d rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97e3c029 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9f3c8921 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xacbd5d84 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xae0616a0 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbd6be60a rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xdf16dcdb rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00be2bfe rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x033f2200 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x056abed4 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08ef9bce rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0e19b70d rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x102c473d rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1a80fc34 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x216d8046 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x24105a6a rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x27a4eb92 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x294ea3f0 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2ba0a720 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2db912dc rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x39dd615b rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3ce7c57a rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x415476d1 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x42c1ed2f rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x435a0b7a rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x47d1f2be rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4a1e8ee4 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x50842b79 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x62d6defe rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x631fb26d rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x75fd8a89 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x783104df rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x78394fb4 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7995dd0f rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7cf9515e rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8b9fec2d rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x91501b2d rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9382355c rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x99590afd rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9b9e490c rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xab70f334 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xae5724ce rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaf6fb757 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb0cc57f9 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb7cee855 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbbc1e79c rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc6479934 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc9800e40 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd53cf18a rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe2ad15c3 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe2b7878e rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xed179dea rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xeea6fe42 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf1998cc1 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x043574a6 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x1b880497 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x29639ca4 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x5cf222bf rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xa57648d3 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x19ceba49 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x6fd94ab1 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x9a536d01 rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x083da24f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0f31978b rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2dd2a22a rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x378ddaac rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3c5eddfc rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x42c1a66e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6fedd123 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x768b305c rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7c5fb618 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x91406cef rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9c04c5ca rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9ff8b2ec rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xad6c3196 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xd24e3875 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xefc57b90 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xfd572893 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc9a225b8 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xca4dd609 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf05a2bb8 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfab32bf3 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x02b08677 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x05f48aa8 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x13668542 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x159ba292 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1aadc0da rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2945b449 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2b3612e9 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2d939f0b rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3bfab334 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3e6b45e9 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 0x4c6b2176 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x562c84a2 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x60284d04 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x64fd6615 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x77cae9f8 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 0x9ac2a9ae rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa7ca37f0 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb399eb30 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb7313ad6 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb760ccd5 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xc9367f10 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe43e870f rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf3f99126 rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf4d20808 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf598ac9a rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0a08f5f0 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0e04c34e rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2266f9b6 rtl_lps_enter +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 0x49858aa2 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4d41e514 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x67e5d79f rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x68a5541b rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6a653287 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6b26161c rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db3ba37 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6f21b298 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7a77fb79 rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x90ee0f11 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x92574782 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 0x9eb71679 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa88a2819 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xabc28a8f rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb150d68c rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb80e73e8 rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbbffdf2f rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc1f1d35f rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd05b9675 rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd8433a74 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xee8eabf6 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf07ea4fc rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf18a053f 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 0x25359e07 rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x2b33edca rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x36882889 rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x63c0536f rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xa62db300 rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xcd173710 rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x0ca8c7a6 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x306465f2 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x647f4fe9 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xe504e7c0 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x6d9f0433 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xcc642d2f wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xf1fc6fc1 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06f85b20 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d2c738f wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1f48657a wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x26cb2fb6 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x26f9e939 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2f8ee690 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3ab02230 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3d1190b0 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x43a3f731 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x45171d3d wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4bbabcd3 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5204c8a0 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x60cdc035 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6bb0acab wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6ecb80c1 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6fc65a44 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7561edd8 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x760f7b62 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c05bafb wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x835929c1 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85922600 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x866b804c wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8a48f467 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x911c41c1 wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9224ac5e wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9836e045 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x98959139 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xab5d7784 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xae23e8c5 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb2ecc59b wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb62a6ce4 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc0e2fc6c wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xca4d304d wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcfdd191a wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd703da7f wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdbb8439e wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe6fab3d4 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xeb111f96 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa803995 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfb52be0d wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfd18cefd wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfe479bfa wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfe9115df wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x0dca6777 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x42a3d5d1 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x51eb9fce mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x193c8317 nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xc2bfb469 nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xd3c0701e nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xfaffb21f nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x2f903a09 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x5c410d3f pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x6399c266 pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7665d8c6 pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x8345b7cf pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x8e93e0ff pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xb9eed4be pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xdecfd339 pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x44c8c5cd st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x4fa3ddf6 st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x899b9460 st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x94fd3abd st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x9b3141e4 st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xba7797cf st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xdf2a070c st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf3d9bfd1 st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x9d10dc83 st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x9fc98a20 st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xf7a62e71 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 0x2db7bfbe ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xbf1e25ac 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 0xc8879325 ntb_transport_register_client +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 0xe42901f0 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0xef84bc75 virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x01be3c9f nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0603b2a7 nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0ad449ad nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0cc551b1 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x18defc48 nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1c719a69 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x203f4c9b nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2d40d791 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3013f3b4 __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x30844483 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x34989590 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3bf2393a __SCT__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3c0c7b72 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3c3a5b8d nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x47dec5a6 nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49197e19 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4c1043bd nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x509c27f6 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x637ad62c nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6b422f31 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x71d1ee09 __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7904bcaa nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x88415196 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8a9c70ed nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8d05104d nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8d8aab26 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x941756e1 nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa3ff2097 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa5490d20 nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa55b2065 nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa6d9678b nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa9ac7a5d nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb76de876 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xba884e6d nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc5ce0f1d nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xcb9ce4c0 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xce6adbcf nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd26016c7 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd45434ee admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd45b0dd4 nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd58bbbcb nvme_delete_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd853adcb nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd9171e3a nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xda6c4045 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe1f5b4aa nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf5eb927f nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf9629692 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf97cf586 nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfb4f9785 nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfee416e9 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x14db9f23 nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x18b319c1 nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x51c659eb nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x82bd8abf nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x885bc00d nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x99d00bb7 nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x9b3e24ff nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xae2e7671 nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xc8f325d8 nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xd5854279 nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xedb8a468 nvmf_unregister_transport +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 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x8a9cf5a7 nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xbb0e18a6 nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xd749713f nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e047eda nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x58c48041 nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x714ccb49 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x84c8821b nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x88080d8d nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x934600a8 nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xc9a41af7 nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xcf1888b3 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xdba4c3c7 nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf9b74e88 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xff389929 nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x144bf2dd nvmet_fc_register_targetport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +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 0x750f12b3 switchtec_class +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x84fef8c0 mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xb4855c2f mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xd41f1d28 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x2f577847 cros_ec_sensorhub_register_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0xfa53f285 cros_ec_sensorhub_unregister_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x6b1be500 cros_usbpd_unregister_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x8bda2df3 cros_usbpd_register_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x112134ec wilco_ec_set_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x24eef51f wilco_ec_get_byte_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x75bf4d33 wilco_ec_get_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0x8b8ae425 wilco_ec_set_byte_property +EXPORT_SYMBOL_GPL drivers/platform/chrome/wilco_ec/wilco_ec 0xcc16fe11 wilco_ec_mailbox +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x0732902b ssam_device_remove +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x0c5ac2d1 ssam_bus_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x13add793 ssam_controller_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x190c96d6 ssam_controller_event_enable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x2055d784 __ssam_device_driver_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x318b84f2 ssam_controller_statelock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x31f079b8 ssam_device_get_match_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x421a5e8c ssam_controller_stateunlock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x42a280a3 ssam_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x4529e0fd ssam_device_add +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x48d46c42 ssam_remove_clients +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x56022f47 ssam_controller_put +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x582d0943 ssam_device_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x6bfb0767 ssam_request_sync +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x71493c1c ssam_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x74d994a0 ssam_device_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x87f11279 ssam_request_sync_with_buffer +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x8de66ab4 ssam_get_controller +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x987577b2 ssam_request_sync_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x9f3d5e3b ssam_device_driver_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa5e767cd ssam_request_sync_submit +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa6c0c698 ssh_packet_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa8ce5415 ssam_controller_event_disable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xbef8f61d ssam_request_write_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc1f8f627 ssam_controller_device +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc2bd582d ssam_device_id_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc9cf8d83 ssam_device_get_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xd0b21e3a ssam_request_sync_init +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xdfc04766 ssam_client_bind +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xe9c6a38f ssam_client_link +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xfc0e04e3 ssam_request_sync_free +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xfff3e288 ssh_packet_put +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0x48cf4c48 san_dgpu_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0x495c97c1 san_client_link +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0xd60bd773 san_dgpu_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/x86/amd_hsmp 0xdfd927ba hsmp_send_message +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x57c46ceb asus_wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x9e58efa4 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0xc251c36a asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dcdbas 0xd9146b52 dcdbas_smi_free +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dcdbas 0xf1a06655 dcdbas_smi_alloc +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-rbtn 0x51552fca dell_rbtn_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-rbtn 0xa060fe7d dell_rbtn_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0x1b0b3141 dell_laptop_register_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0x45170471 dell_smbios_call +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0x7fd2ce06 dell_smbios_find_token +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xb9400dbf dell_laptop_call_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xc0405dfc dell_smbios_register_device +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xc2871e79 dell_smbios_error +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xd6c6b12d dell_laptop_unregister_notifier +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xd702948c dell_smbios_unregister_device +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-smbios 0xefc33120 dell_smbios_call_filter +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-wmi 0x9d4b709e dell_privacy_has_mic_mute +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-wmi-descriptor 0x8eef8246 dell_wmi_get_hotfix +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-wmi-descriptor 0x9559234e dell_wmi_get_interface_version +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-wmi-descriptor 0xa167d064 dell_wmi_get_size +EXPORT_SYMBOL_GPL drivers/platform/x86/dell/dell-wmi-descriptor 0xa3dcfa65 dell_wmi_get_descriptor_valid +EXPORT_SYMBOL_GPL drivers/platform/x86/firmware_attributes_class 0x8a00747b fw_attributes_class_get +EXPORT_SYMBOL_GPL drivers/platform/x86/firmware_attributes_class 0xe609be46 fw_attributes_class_put +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/intel_punit_ipc 0x8ee9455e intel_punit_ipc_command +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/pmt/pmt_class 0x377193ce intel_pmt_is_early_client_hw +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/pmt/pmt_class 0x4ca9c171 intel_pmt_dev_destroy +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/pmt/pmt_class 0x8ca88bd0 intel_pmt_dev_create +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 0x0912662c isst_if_get_pci_dev +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 0x974ebed7 isst_if_cdev_register +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/intel_telemetry_core 0x1c7565c2 telemetry_read_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x35db93a6 telemetry_get_trace_verbosity +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x5847f501 telemetry_clear_pltdata +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x5bb8e91a telemetry_raw_read_eventlog +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x665cd407 telemetry_read_eventlog +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x6b892524 telemetry_set_sampling_period +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x82bb2dbe telemetry_get_evtname +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x90551504 telemetry_add_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0x9deec96c telemetry_set_pltdata +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xb75bd1e6 telemetry_raw_read_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xbb9a2726 telemetry_reset_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xd14ffffc telemetry_update_events +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xe1eb4be1 telemetry_set_trace_verbosity +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xe8847f53 telemetry_get_sampling_period +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xf00771b0 telemetry_get_eventconfig +EXPORT_SYMBOL_GPL drivers/platform/x86/intel/telemetry/intel_telemetry_core 0xf9d5ad60 telemetry_get_pltdata +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +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 0x062941d4 wmidev_block_query +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 0x35e882b5 wmidev_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3db629ed set_required_buffer_size +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x6068bedf wmi_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 0x70f656d4 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xb52a72c7 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xb96454a4 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x3b4c8cb2 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x4ffdd87d pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x5e6aaca6 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x120eb753 rapl_remove_package +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x666f6e96 rapl_add_package +EXPORT_SYMBOL_GPL drivers/powercap/intel_rapl_common 0x90565d9a rapl_find_package_domain +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x207ae7d2 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x37e80216 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6ce8f95c mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0ce9352e wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1d9d11d0 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6ed2b88d wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9abe77ec wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa8b5d79b wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xad13d05b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x880ddae6 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x9123f9f0 qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf14f5684 qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xfd2d5a1d qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0475f93a cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04f34e96 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10c652de cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x11e06e2e cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19f66f6e cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x255f445e cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x257b02ff cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x344eb47b cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x377dc7d3 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3872feaf cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ddbaa6d cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x447c1a77 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c8e321e cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4eefe35d cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x516247b3 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5a3540e7 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d9d586c cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68b253ee cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x758b829f cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x76520050 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77b1e597 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a865621 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7daa81a2 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8e0751b2 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x92ca2bd2 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x96b2426c cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa6854511 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa8b7d734 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaf5ea16d cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb2830ca5 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb847d981 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc011af75 cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc3c1464d cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc41b5a96 cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc9f1c7e5 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd24b71bd cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd9aaf1a5 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xde69b83c cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe0d02d9e cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe5a8b281 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 0xf080c027 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf2403bf1 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf4eb0e64 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfc7fc7eb cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfe98d8ea cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x00c6c85e fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1e62412f fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x21469f9e fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x36193658 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4a2d5d8c fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x62178a29 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7f086a53 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fa6d001 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9f7a12c9 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa7ef05ec fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb1efb3e5 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcff41cf9 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd3c67f8d fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea337127 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf7c440f8 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf7ceef51 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x6378e34e fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x75a614a4 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3ead49c7 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x5f81f622 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa24e6f6d iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa3bdf937 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb0c51e52 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xbefa746d iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf8035f2d iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x09279ed6 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x046cb5bd iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x110122fe iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1efa0eb3 iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23222892 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b983a18 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3034763d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x399b0f2b iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c04d2c6 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c2c020f iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c4840ae iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3cdd5c19 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d931363 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3eddcf25 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44790394 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47bc3c80 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4902c524 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51c04345 iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51d45ab4 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51d80e25 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5459fd94 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5f31ba49 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x686a2348 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70426fca iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x784834d1 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7a70ba08 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8453ff16 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x851d01ff iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a3b3f2e __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x907be5b6 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92efa409 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9604be2b __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa02d599a iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadb0dc84 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb091c539 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb93a820 iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcebc5317 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf5b2632 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf9ed1ca iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2cdcff4 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5a148a8 iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6b85ed4 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdfbd0920 iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe154f3d7 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xecad2891 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4907920 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd838775 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x07884ea5 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x167e7c14 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x238d3a9c iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2580b30a iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2848d541 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x48cb77a4 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x48fc561b iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4dc11d05 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x701ef7be iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x84ea3399 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8b398224 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x981d32a4 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa5b01b8a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb03f66c0 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbe361c98 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcbd4fdcc iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe455bb39 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08beb7dd sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x111f8675 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x139bab8c sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x18a6d292 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1fc485af sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25605519 sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x30bb78cd sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x32631c70 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37462a3d sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x48ec57fd sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4c0a31b3 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e2d19ef sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x53213292 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b913fa9 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5eddba7e sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62248e9b sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6ee81e51 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7ef1b4af sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9b346679 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9bbda26a sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e7bca40 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa51881b7 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6dd69ac sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaaf64082 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf73dad5 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaff89449 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb060bec2 sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb13f5af5 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc3df122 sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd13cb00c sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdacd92a0 sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe58de6a9 sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee2bb6fd sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee5371a3 sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf35007fd sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfbb782a7 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc4b5a4e sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0xc26daab1 fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ca52f15 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0fea3bdc iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1256fbcd __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x15dc8bab __SCT__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c415a3d iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f89b7c6 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22c9d826 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2594802c iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a5bafb3 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2de4ed1a iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2f170417 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x333288a4 __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x343b8b44 __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x406b35f3 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43ee7392 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a48c9fb iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x513c59e6 __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x52575134 __SCT__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x52e0a5fc __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57613343 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x599d9826 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bbe83a5 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e77ecbe __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e984cda iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ef725a3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x65d76bab iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x67027009 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x75be78e2 iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b5b5347 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c55cf14 iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x818718de iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81b8b1c2 __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x820af1e8 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8228ada6 __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x82ba345b iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x83319e2b iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a005f1 iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8b7ff0b4 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f934250 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x950acd39 __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa42d23d1 iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa592cd3c iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa8c4b5e1 __SCT__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa96065fb iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa320718 iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xacf0aea3 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb0bc12c4 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8a238a1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8ae8f98 __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc071179 iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbcdb835f __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd61890c __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbfdfbce3 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2cc5627 __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc980a49b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdeefd4ed iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdf515c49 __SCT__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe083cf71 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4a01630 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe71be3e0 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeab41365 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7e749fb __SCT__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfc76d390 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd150534 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xff293f5a iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x154bdd67 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd1ba82e9 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xdd0abd8a sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xec2e54b8 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0779990 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 0x2210311f srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x30703426 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x507f6d76 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5dc70423 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb61b4bed srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdf7d5174 srp_remove_host +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x1620db26 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x4b9631e5 siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x8c2b69ee siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x8f62a1b0 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xbc0fc402 siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xc732a9c9 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x108331a0 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x12aaf321 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x139cafba slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x149a091a slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1aee7975 slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x24a876c0 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2537866c of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x25df2d1f slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x27874343 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2e23c070 slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2e7b9b16 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x30099cf0 slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x30493541 slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x488094bd slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x54d0aa93 slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x56fa4118 slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x789e27bf slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x809e8705 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x823c7b81 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x94f82d10 slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa7e2ab51 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xb277fe58 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd2836ec3 slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xea8085e9 slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xeecea8a4 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf9519051 slim_do_transfer +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x356a8f0a sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x40d2ec1e __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x62a69a40 sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x66b97743 sdw_cdns_debugfs_init +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x7e81c9e5 altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb9edd149 altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1b225078 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1d9d94da spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x73cf1fb4 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9abc3380 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xbbf99cd9 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc3c798b0 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-intel 0x98d7c215 intel_spi_probe +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x24471f92 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x2d1e35e4 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x88f9e1a9 spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x26a10af5 spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x37c7e991 spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x3d267abb spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x4f5304eb spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x53ac7ded spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x6d114e67 spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7b34f790 spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7eefc13c spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7f8fc319 spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x86c2ba6a __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x870402ae spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x9763f7a5 spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x9d3729b9 spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x9e1346fe spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xde889d72 spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe18e7724 spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe63d7a55 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xfef9fee4 spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x81aedfbd ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x04ab5c20 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x5a7f9fff fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x5ba309c8 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x6ee1f9ed fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x0eafe25d gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x3539ed9f gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x35877c49 gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x38b05f81 gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x4292a1be gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x6878b118 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x69f20360 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x73047b92 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x99b3f5de gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa1f40a66 gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xc7235923 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xce32769f gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xedc94985 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x01ac1906 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1ca593ec gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x22773e4f gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2e286ff9 gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x8d9a3c7f gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x972d9012 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x9c2a383d gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb15dab0c gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb282df8e gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xc1d42e13 gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xc8bb47b4 gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xd6ec54d6 gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xeca3bd22 gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x19e9e6b1 gb_audio_manager_remove_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x32e6391e gb_audio_manager_remove +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x4b2376ba gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x5a108b0f gb_audio_manager_add +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x79eef2f8 gb_audio_manager_dump_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xaeac8ca2 gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xdc4ed4ec gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x597f85a7 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xdca2a298 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x885c6769 gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x98099820 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x7b731bd0 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper 0x63ed33ce load_msr_list +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper 0x796066d1 apply_msr_data +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/i2c/atomisp-libmsrlisthelper 0x8f4b5161 release_msr_list +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x03ec9e95 gmin_camera_platform_data +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x0970fafd camera_sensor_csi +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x13d28afc atomisp_register_i2c_module +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x19f39f15 atomisp_gmin_register_vcm_control +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x44222eb0 gmin_get_var_int +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0x5c1ab2cf atomisp_gmin_find_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0xb7708669 atomisp_gmin_remove_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0xbae0e12f atomisp_get_default_camera_caps +EXPORT_SYMBOL_GPL drivers/staging/media/atomisp/pci/atomisp_gmin_platform 0xf0bd40e4 atomisp_get_platform_data +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x1f701cb3 target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x76e48714 target_submit +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x86c546d8 target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x94afd204 target_submit_prep +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0a61dfad tee_client_close_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0de9dd5b tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0f4fe25f tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x19cc5f44 tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x1a0088e8 tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0x1d963da0 tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x22ec71fb tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x29bffe79 teedev_open +EXPORT_SYMBOL_GPL drivers/tee/tee 0x31a12ad3 tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x456727a8 tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x523719ef tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7a28ab6d tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7bc342b0 tee_shm_register_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x8177b889 tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0x85cb26d0 tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x85fd9922 tee_session_calc_client_uuid +EXPORT_SYMBOL_GPL drivers/tee/tee 0x8b3d47c6 tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0x8f05a04d tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x9f9f4d05 tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0xa6839f4e tee_shm_alloc_priv_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0xaaceff6e tee_shm_alloc_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0xc957c8b9 teedev_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0xd8ccad8e tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x1fb3f273 int340x_thermal_zone_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0x5a5f9621 int340x_thermal_zone_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/int340x_thermal_zone 0xce5ce882 int340x_thermal_read_trips +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0x06f6cf72 proc_thermal_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0x36b0e48f proc_thermal_resume +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0x881e5b94 proc_thermal_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0x97b518ed proc_thermal_mmio_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0xe50ba10c proc_thermal_mmio_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_device 0xf188eb09 proc_thermal_suspend +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_mbox 0x6eca6839 proc_thermal_mbox_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_mbox 0xf7a1f393 proc_thermal_mbox_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_rapl 0x098e82d4 proc_thermal_rapl_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_rapl 0xc4d4f89a proc_thermal_rapl_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_rfim 0x2b97ba2f proc_thermal_rfim_add +EXPORT_SYMBOL_GPL drivers/thermal/intel/int340x_thermal/processor_thermal_rfim 0xa3d1cf05 proc_thermal_rfim_remove +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0x5e547628 intel_soc_dts_iosf_interrupt_handler +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0xccc12f6f intel_soc_dts_iosf_add_read_only_critical_trip +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0xd8980aad intel_soc_dts_iosf_exit +EXPORT_SYMBOL_GPL drivers/thermal/intel/intel_soc_dts_iosf 0xd8f83af0 intel_soc_dts_iosf_init +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x00c0a05b tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0e6fed39 tb_xdomain_alloc_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0f2530e9 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0f2eb98a tb_xdomain_alloc_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1ec805f1 tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x23bc3229 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2fc5c55d tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x34a892dd tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4754ab72 tb_ring_poll_complete +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 0x4f01a599 tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x5549a56f tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x5af11fe2 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x5b6316c8 tb_xdomain_response +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 0x73ad2acb tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x785eb82c tb_property_remove +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7ac498ba __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x817fa670 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8b62f95e tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9054fefb tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9a848471 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa3d2b403 tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xada2e83b tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb6ad5177 tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb7c7cdce tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc19a2f68 tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd5f03641 tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xda78c81c tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xdad4d652 tb_xdomain_release_out_hopid +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 0xf9247fec tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x00924c80 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x02a18008 ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1ec9c27b ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2bd02156 ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x37ed555e ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x571b1aa5 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x5e774fab ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6307db4d ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x65ba0b7a ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6a2d27b5 __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x8fc631b3 ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x935b785a ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x95922984 ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xacd3c18a ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xbbc7a0a9 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc029e4a8 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc52ace29 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc692041c ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc9c147d3 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xd0cd5af1 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xeaef23cf ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf7680588 ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xfe60d57f ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x8ff1f3f4 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xcce0872e ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xff85cd6b ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0f58a8e2 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x5f6f3839 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8ca5d3af uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfa25cb2c __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9fc13d58 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc70d6e1b usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x6781563e cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x74ac421a cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x85ff21cc cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x8f577931 cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x9c158994 cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xcf6e2127 cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xd4676e93 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xe8524df5 cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xfc4603a5 cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x0540e627 hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x2e683860 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x4cb62405 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xaf8bc235 ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x1f7d1774 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x32760bf8 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x3a733e42 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x6935e2d7 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7ea85813 ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xd5d002e3 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x0980165d u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x137fee8c u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4779253e u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4d6b7297 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4db472cb u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x508f2a15 g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x564faeaf u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x8d32f90b u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x93089564 u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x962a9f16 u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xc6ed34e1 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xd7f57c40 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xdce61f36 u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xe1627ecd u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xec1d22df g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x0ddb1796 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x12986a83 gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x48394268 gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x51b1f8d8 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x69903349 gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x72740dd0 gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x84153907 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 0x8958a24e gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x95c39b8a gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x9a8327d8 gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xa3ed94c0 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xa8b63965 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xc8bddc10 gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xd74d15e9 gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xdce111ba gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xebab3bc3 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x45a7ea0b gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x4a3df9d0 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60db48f5 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60ea48a0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x83250b79 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb1f94876 gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc0a01527 gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc7dcb092 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xe89dc424 gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x081191b7 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x6c825859 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x9372e273 ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x0ecc5b94 fsg_store_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 0x1ccb58f7 fsg_common_set_num_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x22148b71 fsg_lun_fsync_sub +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x282f8b10 fsg_common_set_cdev +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 0x455b6bac fsg_store_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x4b0cda9a fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x4d6e41b4 fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x55799d27 fsg_store_inquiry_string +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 0x64a1ce41 fsg_store_file +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 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x830b687f fsg_lun_close +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 0x93dd304d fsg_show_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 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 0xa6d26f4c 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 0xaca37456 fsg_show_inquiry_string +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 0xc6e3b642 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 0xdbcf012e fsg_show_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xe5116a9b fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xec7ed655 fsg_store_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xf096e59d 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 0x115eb7da rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x1b4e3919 rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x1f3aec95 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x28c6835b rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2a80e728 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2beedef5 rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2f681f4d rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x33d89a94 rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x45b581de rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x5b61da3b rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x8b8e35ac rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xb15186a2 rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xd9a1c8b9 rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xfd308451 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xfd533ad1 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x061ad7f6 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x068ecdcd usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x06a3adce config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0cb7e477 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1ffb78fb usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x27da9a4c usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x29d0501f usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3b12761a usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3f21fc33 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x429c94d2 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4cd90255 unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x536e7300 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5b4f3973 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7119071f usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x71d1bbb7 usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8abbc38f usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8c600e43 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8df5e508 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9736da0c usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa01e3027 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa5493244 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa58e9630 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa8dd12f9 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xacd08c6a usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb0d71412 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb775db55 alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb7fa2190 config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba6a8829 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc0d4ac46 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcff862d3 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe43dc932 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf7bc4a76 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf998e4c4 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x0731a2a5 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x2047845b gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x444a56d1 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 0x7b97cc6e udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x8d4870a6 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xb9ceb564 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xe37ec995 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf3cd78bc init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf60c0b1b empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x01b12bfb usb_ep_free_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x030727f6 usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0a8c3b4b usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0acfe2e7 usb_ep_set_wedge +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0d90d784 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x15872cfb usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x1dd99c06 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x27cecd6c usb_del_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2b855f08 usb_gadget_udc_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2f2543d8 usb_initialize_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x358459a1 usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49d9f030 usb_ep_fifo_status +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4e950f72 usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x506ab3a9 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x50a6fde7 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 0x5ba20f4b usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5bcdc0a0 usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5fc294ef usb_ep_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x61a76084 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x66447123 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x6b47ed8c usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x72043a08 usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7a41b9f2 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7be89624 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x882077d5 usb_ep_dequeue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x93f27c3a usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x974d38b3 usb_gadget_frame_number +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9cf6c3aa usb_gadget_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9eb52803 usb_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa35937a7 usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa58fe6e4 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa768be03 usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa9e74462 usb_ep_alloc_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaefadae2 usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaf201fa6 usb_ep_enable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xbab3d79d usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc2f84e90 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcf39c72c usb_gadget_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xda65f5ff usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xdbcd0cb5 usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xdf82e5fa usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfcd15158 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0xe73b2c73 renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x20932afd ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xfd5f45eb ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0c3552a0 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x150562c2 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x20d9e32c usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x30e48790 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x681eddb9 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa65c475b usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd1f93cd9 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe095d67e usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe38cfc14 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2734197f musb_readb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x27a78af7 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x3d356812 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x7be65fdc musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x8829d9c0 musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xade3e56c musb_writew +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xd8530860 musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe59efb0e musb_clearb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf0f95e51 musb_readl +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xfca1a895 musb_get_mode +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x23ec5b05 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x3f45670d usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x6f54b928 usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xb100cd1c usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xd7dea299 usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xd943c097 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x9a256445 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x01ed9003 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1130003a usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x13a1c74e usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x16565b20 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x18ca8496 usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x336ea657 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35f63f99 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4bc9f4cf usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d3405d4 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x536e6634 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x660d40e7 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fe92082 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8414fc46 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x99cff41a usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9a86e500 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9abd92a2 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa27a130e usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb688398b usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9391fc2 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd785f05f usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x2c485b43 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x432dbe60 dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xbe111953 tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xc529e32e tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xf881e6ee tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x6912a76f 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/tcpm/tcpm 0xeb779665 tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x03f64503 typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0adfb45b typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0e1fac20 typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x18e2a3ec typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x223df9b4 typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2372c35a typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x280131bc typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2a57fb0a typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2ebfc299 fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x35aa8e58 typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3b29c0d4 typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4acd7fec typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4f85f070 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x51761a58 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5386a35f typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x538ba760 typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x58e00b17 typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x591f970f typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x59c20eb3 fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5a66ec9d typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5db24a6f typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b5159bf typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6d3dda2f typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6fc6b832 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x738c80f5 typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7528c9c4 typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x79cefaee __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7bcc1bf6 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x86521d45 typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8af2fb2f typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8b9f5288 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8bc8403d typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8e4da8df typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9049491e typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x90a149e1 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9285e51a typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9b742173 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9e0291b7 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa254de98 typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb05cd23b typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb07a0662 typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb63bf24a typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbab11922 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbb0f1a27 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc0e5435d typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc13e3b6a typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc352b2f1 typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc41e20a6 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc503de3e typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd2fa1286 typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd5598bab typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd8a5c190 typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xdf008d50 typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe9a3404f typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xea049341 typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeafc1eb8 typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeea4f58f typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1234a8b typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf7a58c95 typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfaa2580b typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc8df340 typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfce2aa1e typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1be63bdf ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1e744d8a ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x3e260656 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x53542193 ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fe793c3 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x8577dbbd ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xbb27fc94 ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xccd46bbb ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xe8de72f3 ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x19391868 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x2060bac6 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x3d8f5270 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x4c730070 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x5bdff562 usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x75428344 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x8a4d4750 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x93bda83e usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x96845908 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xc5204ad7 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xdef10881 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe39cf6b3 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe548e425 usbip_event_add +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x03539986 _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x32d61dd4 __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x364aaa30 vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x520ac72f vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x5fa8b9b2 _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x8b371d8d __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xa276c675 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xc3978162 vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xc6b36168 vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xcc597393 vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xfeb363df vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0x436aa07a vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x5ccd77ba mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x01752a1d vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0c0db985 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x13d8558f vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2076078f vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x20b611ee vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2af4211d vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2beb6ea1 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x349d05cc vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3716fb2c vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x37a72ea0 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3cffb022 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x44498213 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x50345eb8 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x507d5013 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x50e531a4 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5537b823 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5e5b38a1 vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5e670f6b vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x65163bfe vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6764eab6 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x713a5b15 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x79896482 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fdafd87 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x86332214 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x95bac575 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x968150d1 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9abd5090 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9ee184e9 vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xac79ab85 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xacaf185a vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb7505fc4 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcd000869 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdb4a4ef9 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdb56e44f vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe2dfba66 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xea659ba4 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf399f2d0 vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf9b20cd4 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa6ce4a6 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x83be64b9 vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x885512a2 vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x8a7d8ee9 vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/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 0x39055b8c ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x577db2c2 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7678d9dc ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x92a37342 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdb0ca3dd ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xebdc7f67 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf34c8b49 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x7751e254 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0xf60c6b71 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0xf8428ebf fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x380f5a50 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xfbf85218 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 0x25bf4d30 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/w1/wire 0x604d83b4 w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63234d59 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x699b5847 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6f0dd1ef w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8df8335b w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8fc00bcc w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa16388b8 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc9ea6621 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcb59de0f w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd5ab7ca9 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfefab552 w1_read_8 +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x036b917a xen_front_pgdir_shbuf_get_dir_start +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x1eb649bf xen_front_pgdir_shbuf_alloc +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x4415eed6 xen_front_pgdir_shbuf_unmap +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x87a38c6c xen_front_pgdir_shbuf_free +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0xc58123cb xen_front_pgdir_shbuf_map +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x38f58906 xen_privcmd_fops +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xae2e4400 xen_privcmdbuf_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3de28cd1 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 0xcd224e1d dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf1c97a02 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf547fcc5 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x05b67f07 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a6f2251 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2f2de8e5 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x570ccac9 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7c0a489b lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9a40606f nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb270361a lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x064a39f2 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x06fc6937 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b5f4d72 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b7647bc nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ea1a789 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1406f99d nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14147a1f nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x158f2e04 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15a19a9c nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15cc3b39 __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1811ccf9 nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ac4a214 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e77de14 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ff704da nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20113179 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24e6fa6e nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25946817 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a5bdf47 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d8731aa nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ed2e1dd nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31771e50 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3198cdb1 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31c25a8f __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3275331e nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32851d65 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32e1fdd8 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x366ba6ca nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37239e6d __SCT__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37efcd15 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x38982dd7 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3aa74644 nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ae52441 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x402b46ac alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4055217a nfs_try_get_tree +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 0x440f369b nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44d3b707 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45e9913b nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45f6401a nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48a77570 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4912e5c7 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49402fb7 nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b005801 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e7b764b __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f3ac2de nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f6f637c nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51aec56d nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x53f766c4 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55644e91 nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5918fbda nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bafdf9b nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x635bcdf5 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x645ceba3 nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6493ff72 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67863ca9 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68350002 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68a5cff4 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6cd427de nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d516e4f nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6eb6ad1d nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ed430f4 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72093657 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73e2c7b3 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75b4e698 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75edfd04 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x786f5120 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x793ecb98 nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79cdfb80 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fdd5f61 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x802af0f9 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8148e838 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82d738fb nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x838ed9f4 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x83abed75 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85e58107 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8609985a nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8618b117 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86c6f942 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8720f187 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87efd2c3 nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89510304 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89f4efdf nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ac596a0 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b09ce15 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8cf332d9 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d2ee3d8 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ea09d08 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8fb9575b __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9085f627 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x916a4945 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92c6d5cc nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x93efc6b7 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b98fdb0 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9cff8e20 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d00e31a nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d919c44 __SCT__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2eaddc3 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa44cb654 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6311df7 __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa6683bb1 nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa72fb2e4 nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7fcba48 __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8025885 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa98232f1 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaac797eb nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab6a86eb nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xae7b172c nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb142320c nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb19feac9 nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb5920862 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8ef0400 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb9711de5 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba0670dd nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcbccd20 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe6bfcc2 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1b40387 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2e536b4 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc62f86e6 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc761f764 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc844d723 nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8773537 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd63482a nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcecb494f nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2e2ee1a nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd312a97d register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd51b81e0 __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5659e82 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8ccffca nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd96fd495 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9cd6736 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda56ec1d nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdcb5843c nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfe25516 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe00dc811 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe40e7ebc unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4506903 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9c2b5c7 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedc53361 nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee4b90a7 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xefd57ee6 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf3b16b14 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa201c27 nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc12870f nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc3fcab9 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd3c0de6 __SCT__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfeb42418 __SCT__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff62a910 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xffc03dfd nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x283b280d nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x022d59d5 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08e9b965 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09167f84 __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09548224 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x095d68d9 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0a0af042 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x149db6d5 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x14db01e3 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x18e75751 __SCT__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x195cf936 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1987443d nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1a1266a3 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c9dad65 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1db55730 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1e302d85 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2056d71e nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x22f7804b nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x230e4ee2 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26df00ea pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26f3c858 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b16e909 __SCT__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2cc26928 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2efa428d pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2faf2cae __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x368751d8 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3a4b3a69 __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3b6e8fcd __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3bd54032 pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40994d66 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x41678732 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4213c4cb __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x427d0328 __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x44987408 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x499a0e0b nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4de904e3 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4fa6c5c2 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x514770ed nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x52695f09 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5423bfd0 __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5436354e pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x55f99445 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6085edbd nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x630aeac7 __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x63826d35 __SCT__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x665c4a48 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69462964 __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6a5eb444 __SCT__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6a925097 __SCT__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6b7122f2 pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6b9af21c pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6f328e80 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6f8faa6f nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x70921f46 __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x70ad5711 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x73640a2d pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x74149816 __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7503951e nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x75c4f093 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7e42bd3f __SCT__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x80735daf pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8e211c63 __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8e7f891f __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x923d8db9 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x930a94fd __SCT__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x96c4643f __SCT__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x97167362 nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x985f21c7 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x99a1f5f8 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9aa8a660 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ac2f7bb nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa90088cb nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa960e371 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xabed6177 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xace267be pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xadeca730 __SCT__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xae7eae07 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaf144798 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaff0e97c pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb3f06ebe pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb5c75018 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb63fd66f pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbc3dbc00 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbde1c10c nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbe798710 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc1dc349d __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc31fda35 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc361c3c5 __SCT__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3d0b4b8 __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc495501d nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7db4c19 __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc82521be nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc8e1684e nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcc21ce5c __SCT__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xceb12ac2 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf12c833 __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd52b1e76 __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd556e3d9 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd642b328 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd70f6b2f __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd8e74959 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdc33a606 __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdde333ab __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdeb5edce __SCT__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe0fd9b8c pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe10dd3c7 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2e81ff4 nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe33fc971 pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe7a7de75 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xee50c1ec pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xee568904 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef0123a5 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef5ac4fb nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf32fa2b7 __SCT__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf403a327 __traceiter_pnfs_mds_fallback_pg_init_write +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 0xf9f7eb3d pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfa84ceb1 __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfb465de8 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfd5a8e5a pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xff8bf479 __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x191c4dbe locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0xa641bc9d opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0xc5393982 locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x020c3409 nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x21156394 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x88db1312 nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xdfa1ec47 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x783f646b nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0d3c6055 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 0x29e50ced o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x40f1753c o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5105ee64 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2 o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6cc4efb7 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 0x9ff0125b o2hb_unregister_callback +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 0xe95a6c5a o2hb_register_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 0xfe1298f3 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x218ef8bb dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x33f224f3 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x599c21a3 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 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xef57e7d9 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf3d76d84 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf9d2d4d4 dlmlock +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 0x2e979719 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x37de1cab ocfs2_stack_glue_unregister +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 0x91e07559 ocfs2_kset +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 0xeaa20667 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x97e8b455 unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0xa2addf16 register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x0ee3e5b1 unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x79ae0f06 register_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xabd9af6d cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xc4c73891 cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xceecd9e4 cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xdef1096d cifs_md4_update +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 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL lib/bch 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL lib/bch 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL lib/bch 0x860a2eab bch_decode +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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/crypto/libpoly1305 0x4b45fb6e poly1305_init_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x7f376d08 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xfa617389 poly1305_update_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x4a5e61da notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xd7bdafcd notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x804a5b70 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xa32f3d9e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xeb2f825c init_rs_gfp +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xfd581da1 free_rs +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x1f50675d lowpan_header_decompress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0xe0904b2c lowpan_header_compress +EXPORT_SYMBOL_GPL net/802/garp 0x4a64dfe7 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x637df405 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x6f57c62a garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xd7e5ce8e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xe07777e0 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xfd2c4577 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x4c7bddbb mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x622a7d7a mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x7296f174 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xa20c8099 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xc47ffd3b mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xe16330d3 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x11482d50 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x62a28222 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x976526dd p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xc1945039 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 0x79f69864 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 0x3cb9eb3b l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x68094461 l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x6e44ca98 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x99919507 l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xa2d56cc6 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xc18ed04a l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xd9b69307 l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xe3baea6b bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xe6a6632c l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x3fec9d7c hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x079a4b4d br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x09c985ba br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x0ea69be3 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x167d9a8e br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1ab421ee br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1cb450dd br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x280fae55 br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2b560112 br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2cc65981 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x31b7ddd9 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3641f6de br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4f864dc2 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6de4ac29 br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x73f55e21 br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7a277ff3 br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x844c0e77 br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x90206710 br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb5ac9f75 nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0xbdfa78d4 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xc88e0f9f br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd0d08925 br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe5700174 br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0xed97586c br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf6cbb2ed br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xfd8e890d br_multicast_router +EXPORT_SYMBOL_GPL net/core/failover 0x1128b025 failover_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x9cc86c64 failover_register +EXPORT_SYMBOL_GPL net/core/failover 0xa89e2adc failover_slave_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x014a1f33 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x069a2dc7 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e4fac9e dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f3eb94f dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x393181ac dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43e2cd26 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4da4dca5 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ea755fe dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x53386478 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x54e8cc22 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5557fd5d dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x571dae4c dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x575a10d1 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x610fa263 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6634ddbb dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68e28464 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75d7f098 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7cd5a0ab dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85b0afa7 dccp_done +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 0x96484bde dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cb6dd4f dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d7e52f0 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa624f120 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xac5e2a41 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb7f01236 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc00c489b dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0ec0c6d dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd05d4bdf dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7d968a2 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd84096c7 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf014e45 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe76ef081 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2d81187 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1f7d5be1 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2f90470c dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x34c7daec dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x41054552 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9d6f3f62 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb86cb38e dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x03af25c2 dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x1c3b1769 dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x214265ab dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2c5ef7df dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x3ec289d4 dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x501f608a dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x534adc6c dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5a6c91a7 dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x62537503 dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x679a3605 dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x697f83d8 dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x71b80c99 dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x72d15526 dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x76d26a02 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7d7d7ba4 dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x800a36ee dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x82d49d19 dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x8e59e98e dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9432b63f dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e59271d dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa743744a dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb0fdb8f6 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb1aa6cb2 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc23e8d5f dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc420f12c dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce137322 dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd077e855 dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd70fce60 dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xebfe32b4 dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf13e1803 vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf20a66fa dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf3ea7add dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf589ce1c dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfce371a4 dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfd3e2b67 dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfdb993dd dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x873fc928 ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x87e2553b ieee802154_max_payload +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xa34bec34 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xccf8c085 ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xcf0ec54b ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ife/ife 0x5742a9b3 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 0xf8da9570 ife_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x3a1e6e83 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xeba401cf esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xf9ee0bd3 esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5ffb2d6f gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb6668aed gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2a15ea87 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x6c5bdc7a inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x87c951ea inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x88c9f64e inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x92ff2f89 inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc9d73dc4 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcf4fd227 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xeb1da7e4 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf65e7b9a inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x8866902c gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x013c3079 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0a3665af ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2e8b2859 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4298a0d3 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4abf45ef ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6594a267 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6fee43d3 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7196e704 ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7aa6b9ca ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x931ef99b ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x95d0ced2 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9a15fee0 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9f0515a8 ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa1f76278 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa50299be ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xec899456 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfed06767 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x334a30f5 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x568bfbdc ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x0f2148c6 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xfcb50d4d nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x4bd31925 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x0bef60e2 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x3174ecbd nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x5ccafa89 nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7c37bb07 nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7f0f82fb nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xf029ae42 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xf3b7dfd6 nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0xed74e834 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x896ad119 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xd9358f91 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xea9e89e7 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0xe12efaf7 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0xe6ed02f4 nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x048ae191 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fe78e45 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8ce7219e tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xac3ac3dc tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb662846e tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x1e1b2d8f udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x28167424 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x3467af49 setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x55b81f16 udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x5ad5caa4 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x5dd3c0af udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x842a0759 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x87c04738 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x424376cd esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x7410f92c esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xeb362a79 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2aefb118 ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x481c8def ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x506c182f ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x55a8da5d udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x6717e1ed udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x001b03b1 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x0bddbb4a nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x35dc17c2 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xb322e654 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x8589c50c nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x0c7390cb nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x620578bf nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xc261c849 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xd530236d nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xdb4994e8 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xf7017879 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xff18b3b7 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x6a13495d nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x007fd022 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x55b1de15 nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0xdd34e506 nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x58b54697 nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xe29c902d nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x066e0437 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x143c7091 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3a3379f1 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3ac1067e l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4a7e26b6 l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x54ab49c6 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5797d176 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x89acca02 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8bd3e952 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9b93414f l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa26e9842 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa790c6d8 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbfa75276 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce76e0a8 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd6ff0965 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdb12ebd9 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe10319f7 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe1828328 l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe5413a61 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe99ceb00 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfe1bfde1 l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x84392bca l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x81c124ac l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x06763ef8 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1c154433 ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2a21e810 ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x339c999d ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x41e8cbc3 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4db0a196 ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x534f949f ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5c11ff52 ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x69a6650d ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x72d76c59 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7753440a ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7cdec6d8 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x836b9eb5 ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x93bf387a ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9b351846 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1247034 ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa4b2b77e ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb3915cd8 ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbcfe14fb wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd8e09da4 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd95a4215 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xdcfe5f4a ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe31f1665 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xeb098ecd ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf235174e ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x22ef0b34 mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x2d4e1de7 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x42626e7f mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x754ceef4 nla_put_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xa8e33283 mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x09a95dd6 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3c67f94b ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4e5fc5c9 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x50e7a1e3 ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5761e87a ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5a4acc92 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5f6a1064 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6958b818 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7c91e67f ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8c5a8a3a ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9cd619b7 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9f77d97a ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa453ead6 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xae61b220 ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb5b503cb ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbe5fe5a0 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xccc6dfcf ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd6e4888c ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd868853b ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x4813d80d ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8f2b1056 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x9be0d200 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xe498dd66 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x4f6c4a17 nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xb568035c nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xc73b775f nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xded40268 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xe3d9071b nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xeb0c92e0 nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xf2a1dbb9 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01de2fc5 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x052bb759 nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a7e0abd nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c910263 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d502507 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bef247c nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1c164267 nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e0ca460 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e2bdd6a __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e9fbc1e nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x223c6816 nf_ct_l4proto_find +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 0x2b65e746 nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f0994c1 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35edea74 nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36b186fb nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39104e5a nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39191693 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a32b694 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c66a91f nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f9c150f nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x420b3adb nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b82b2ae nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d9aeccf nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5226fc0a nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5247280f nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x557e2b27 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55db5d70 nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c2c1e56 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d45df44 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5dc9aafc nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6056b78c nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6412e74c nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64514945 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x654cd1bf nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67e65f13 nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x67f50dbf nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6965939b __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c1043f4 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x718d58b3 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74edf6f4 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x765df7fe nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78e3ddce nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79eba31a nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a35adb7 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7aef3c52 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ccd8fa1 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d36e49d nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d5fe76b nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82348725 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x844f033f nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x846f59a9 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8608b3db nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b7f1e74 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c0a32e3 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c6efaee __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94931876 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9553edef nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97304d3c nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9adb7399 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c5c2673 nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ea95f53 nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa46048b6 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa786f4a9 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf0847f0 nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafbd6cf5 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0c16799 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc147018d nf_conntrack_in +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 0xc4f52aae nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5591795 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6d417df nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcccacaaa nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd78ad7c nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcfa70fd7 nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd505c3e0 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd52f227b nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5b4cf34 nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdba7326b nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdd6ade57 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0aed48 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2283bba nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe3156d64 nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5390132 nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe694f757 nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec69b740 nf_ct_helper_expectfn_unregister +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 0xfabdbe35 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe731af8 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xb0a6766f nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xcbe06c90 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x389b8909 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x20a46790 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4c22a134 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x51cf6d4e nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6bb6d2e3 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x94c67339 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa669dd2e get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbb67f6a6 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc4ce18aa nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc78d59ed set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd4b3175f nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x01590372 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x39d42db7 nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x06ccf614 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3fb0ba5b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7f69d330 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x99fab642 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb13af61b ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc41dbb86 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb1f416b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x9415faf9 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xdc967812 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x0000dc0d nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x9b1fd40f nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xcae7b312 nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x0419cc07 flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x39dfb578 nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x41aff97b nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x514aa0f0 flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7e16809f flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x911de793 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xa8d060b4 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb04a4a2a nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb65b4a85 nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xc15e186c nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd0174147 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd7b62e7f nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xdee2e77b flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe312763f flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xefca2e6f flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf6e169cb flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xffb725cb nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x22094071 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x22e504df nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x263c94bc nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x2bcfd281 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x359a4a15 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3bc17c49 nf_nat_masquerade_inet_register_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x42d47398 nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x47c5389b nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4bcff17f nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x523479ce nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5f26c00b nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7c767578 nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7d0d18fb nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9a345f69 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd2179968 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 0xf685d686 nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf6b4ddb6 nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1f099794 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x47ca7745 ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x695d7fa4 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7a48edc2 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x93e88b43 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x9e497594 nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xaafcb484 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xc8f73d39 synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xd7f2bf41 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xda534196 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xf2c4343f ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xfafdeeca synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00e92942 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x02274914 nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0b874cce nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0f7b718c nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0f864c7f nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x13ca3806 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x190e4632 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1ef78521 __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x22da3a18 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x35aecdf0 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x37c8e93a nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c5ac4ef nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3e3aeead nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x44d6b37b __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x460ad2bf nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4f52c96a nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5514d5f2 nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5d0f4059 nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5fb53a4c nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6725d983 nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6ebc64dd nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x73300e00 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7830588a nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x83c3843c nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x86bde828 nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x89189fe2 nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8b1f2def nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8eed2ece nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9e2530e8 nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xae47eb8d nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb453546c nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb7d67397 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb87c0d66 nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbd2e2d65 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc0f72df5 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc330bb72 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc81272d3 nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd0b295e1 nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd90c8455 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe1d5d027 nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe8e90e65 nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xee29c477 nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xeea45a76 nft_set_do_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfd642052 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3b2b1db1 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4c0de2d0 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x76686e9d nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x919c9f2d nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbbb0a0fe nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcf13e136 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd017a496 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x4eb30801 nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x768a997d nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xcf5c6818 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x046d40d0 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x9360f178 nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x35784ab2 nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x6ded6aec nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x9ff422c7 nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xb54c62c6 nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xc4e003f7 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x079be07f nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x0f539b0d nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x5867c85e nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +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 0x0676d488 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x155a010b xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a9f04b0 xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1ddc4658 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4fcd9462 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7a27ef5c xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7a9eff72 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bce4603 xt_data_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7d399b8d xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x80f604d7 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x823edea5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8b4fc472 xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c995c69 xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa28441a0 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa4dc3519 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa7c94f1d xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8c90f90 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb8dfdb93 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbc3255c2 xt_find_table_lock +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 0xd20f020e xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2d77e83 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3fcc511 xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd5a0c7ef xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd8689561 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bb821b xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe49550be xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe701e8a7 xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf48a83a1 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfe06a300 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xa953692f xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xe2455906 xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x18d8b31e nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x8e880434 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0xdcdddfb9 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x07a4ffae nci_uart_unregister +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x3c50e8e5 nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x5aeb9b02 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nsh/nsh 0x12e9f168 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x1c821690 nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x2fa6d0be ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x62c23557 ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xb477e6e6 ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xbe5bfe60 __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xc8284f56 ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xd912b6c0 ovs_vport_alloc +EXPORT_SYMBOL_GPL net/psample/psample 0x343fc2e0 psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x44f2a200 psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0x69a58f05 psample_group_take +EXPORT_SYMBOL_GPL net/psample/psample 0xe6777a08 psample_group_put +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x76642deb qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8bcf1409 qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8d25501f qrtr_ns_remove +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xa47e91ba qrtr_ns_init +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xb6e60a73 qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x03dab39b rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x0406fe21 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x121d04ca rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2ebe117a rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x325d9c9b rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x343b3ad2 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x44c5ed9b rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x4ca207a2 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x55c96520 rds_info_deregister_func +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 0x59dc1839 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x59f03808 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x6de0c624 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x7377fbec rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7b399e66 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x8071d1f0 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x815f8b7d rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x85e4e520 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x8c068cb9 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8c90934e rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x8e8ea9af rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x922cca72 rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x9f84bc70 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xa5400a91 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xaddb779c rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xb141b9d1 rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0xbbce7507 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xc1171d40 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xd815abb6 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd9963e14 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xdd5088e0 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfd22dd56 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x41cab8c3 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x9abcec78 pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x5fc3c6ed taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0xa7f08102 taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x094c5f97 sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x1e10e491 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0xcfe41cf0 sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xe19175cd sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/smc/smc 0x0ae7b999 smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x5022630e smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x58920dd8 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x664673ce smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0x6f0a68db smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x82912103 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x9fece416 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xbca5df08 smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0xc1f9671e smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xe49a7ba6 smc_proto6 +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x19941e34 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2ea6615d 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 0xcebf0643 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcfbeef5b gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01bee76e svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0499ff31 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05343ff9 rpc_malloc +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 0x0819fd30 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a925193 xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14c8c250 xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15a3f411 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15f7d6fa rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x167612a3 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18117f05 svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b04ab01 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1be21fef rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c402948 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d14a78c rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e26f02c xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f346d4f xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x211664ea xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x217708e6 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x226a2e16 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24b89129 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2563f6ca xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x278fc1b5 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27c9c00c rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x296dc337 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a276b51 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b29d1fe rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bb96bf8 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c919b87 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30cd2002 svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30f2ce4d rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3244c713 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x327272da rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32b6653e svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33175167 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3366c5fa svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3395244a rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33b8b4bc xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d184de rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3503fe1b rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361474db _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36569a84 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38913fe6 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x393b060d svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x395d6426 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b6d246d xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3be361f6 xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d141115 rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f0673f7 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fc52397 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4186360c sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x456f4934 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46b19170 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46d29ee4 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49033fa6 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49a31804 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b98de45 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4de0eb38 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e093e45 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ee90f59 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f4118c5 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x517a2900 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x525b7ca8 svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52917fda svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5379ae25 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53a12c43 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54abfe7a rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55669921 xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5701df2d rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x572f23b3 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x588286c8 svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59c202b2 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a157337 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b11fca7 svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c3120fb rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c70f530 xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cc5a41e xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5cdc2ac6 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ce87e9c rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fa8c308 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6060490f xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61e411eb rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x629e2767 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631830cc xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64d90442 sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6564e61c rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x665c1787 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66ed2439 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x692415a9 rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a34c286 rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b107772 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e696fd0 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70457d0a xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70a3e332 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71bc40e3 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71cebd94 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x738f458d xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73c6e095 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x747dd5ea xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x748909bd rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x753cc800 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75dcfb37 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x769067e6 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76d2448b rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76e58e92 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a2dbf4c xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c80bbba xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d7c2be4 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7df6b107 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x807423dd cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83548bb6 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84da5b86 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85134cd7 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x852b771f rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x856aa1e5 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8684285d svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x883f119c xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8852c501 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89154ce7 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89cb6a0e auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b53a24b rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b6ae425 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bea4790 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dc584e1 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eeb5d51 rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9234c186 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9362b536 xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9670b5a1 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98470206 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99ae1138 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99aee353 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ab71026 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9afdcdce rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bc2ca42 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d285770 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f90882a rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1af0290 xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa26286f6 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4b9c73e svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa686f9aa svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82a263d cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa854d119 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab472f0c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabb89e2a rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf1759e5 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0174645 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb583cf17 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5f2be0f cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb64db350 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6694d23 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb83256a8 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8e56d12 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9767480 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba04b318 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb7058c3 cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbacad6d rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc068fdb rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcc00cfb sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd55bd67 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe149d76 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe19b4a5 xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf0fc0f8 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc098510d svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2eb4d1d rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc57ed31e write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5991e58 xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc691bdc4 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc851817f svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8bb09e4 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc96efed2 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9766145 svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc97b4511 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc98371d4 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcabefeac svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb4db672 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb75a372 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbfb472e xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc102ad4 xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce21a00c rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0500827 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd10d1d5b rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd11c162c svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd11f831a xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd221fa82 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd24d2199 xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd32cf028 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd45fe414 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd463bd2b svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd691b137 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6ce8e69 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7cc4937 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8764494 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc96bb45 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcfb92ce svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde993392 rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf9c0696 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfb24b81 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe00f191c rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe04cd247 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe055a7e1 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0a0cb78 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe12ed5b3 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1b52718 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1d86ac2 svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4b75330 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe756a71d rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe78b4bf2 __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb190696 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb307167 xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb5114cd xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeba3c07c gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec6254c1 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecd2521a xdr_init_decode +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 0xf0f51d93 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1250ebd rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1dff42c rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2091ee0 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2d8a7f4 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf30da778 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3b477b2 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf59abb71 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf629d685 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf66a30d8 sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf68579b9 rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf716e398 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8678b81 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8af4cc1 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfac92512 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd61f87e xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd706045 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdada4d5 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeb60fd6 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff3441d8 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffc8531b rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/tls/tls 0x619d3b93 tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xa4a8ba69 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0xc803c904 tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xc8681d91 tls_offload_tx_resync_request +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 0x0affeab9 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1391a566 virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1b860d54 virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1d419b9f virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1f9005b2 virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x21a0bb2d virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x245ce776 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x252fef5f virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x29b30130 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2cb03d0f virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2d5e8225 virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3f606a3d virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x42189616 virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x481b7f21 virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54ba364b virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6820a56f virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x74195d62 virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9dfcb4ec virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xabfb54d2 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb630f238 virtio_transport_seqpacket_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 0xbcbb66c3 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc2c79494 virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc45ed7e8 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc97cbe76 virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xce779a44 virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcf3d00e2 virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd455c534 virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd76c45a5 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd9818baa virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdb068c03 virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde5cbd72 virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe065a4fd virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe56708b4 virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe66076b3 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00552cd4 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x1ef6f105 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x23f1dfc6 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x24d70c02 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2abda06a vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2e402ac7 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x356ff350 vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4726852e vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x47b18ecb vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x49a7444f vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6793f802 vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6b4fc1ee vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x77c14317 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7df98c85 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x95c9139b vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9e462eec vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xac8e165c vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb1edd381 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xba110b24 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xba5285b2 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc92f7f50 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd4dcfdf3 vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x45955bee cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x45cf789b cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5d15cab3 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6579ed1d cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x797cbb31 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ff176a5 cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f2307de cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9620ad7b cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x98564d2e cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa64194ac cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8727e66 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc98a1d72 cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe0e5f259 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9507073 cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xed8e2dfa cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5f4ec11 cfg80211_shutdown_all_interfaces +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 0x25e0e832 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5f40e80d ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb9a7d97f ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xff1e6af2 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xe2521b1c xfrma_policy +EXPORT_SYMBOL_GPL sound/ac97_bus 0x35030a2a 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 0x048ca8df snd_power_ref_and_wait +EXPORT_SYMBOL_GPL sound/core/snd 0x213512ed snd_card_rw_proc_new +EXPORT_SYMBOL_GPL sound/core/snd 0x25e5fbbe snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x2ab3a608 snd_device_get_state +EXPORT_SYMBOL_GPL sound/core/snd 0x3a278abc snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x3b90c6ee snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL sound/core/snd 0x4090262c snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x513c138f snd_devm_card_new +EXPORT_SYMBOL_GPL sound/core/snd 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL sound/core/snd 0x5ec472db snd_devm_request_dma +EXPORT_SYMBOL_GPL sound/core/snd 0x6b5c17cb snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd 0x7123b501 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd 0xa9983366 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xad1c0d34 snd_ctl_register_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xb166ac76 snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0xb20c7439 snd_fasync_helper +EXPORT_SYMBOL_GPL sound/core/snd 0xb49c4e62 snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0xcb03ce48 snd_card_free_on_error +EXPORT_SYMBOL_GPL sound/core/snd 0xde363f96 snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0xf1dbf5c3 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xf8f2a4eb snd_kill_fasync +EXPORT_SYMBOL_GPL sound/core/snd 0xfaf598c6 snd_ctl_request_layer +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x288a0a6f snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x324bfb22 snd_compr_stop_error +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 0x18d2140b _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x234b06ac snd_pcm_fill_iec958_consumer +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x34b721b0 snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x3998128f snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x54387f2a snd_dma_buffer_sync +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c407196 snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5dd63049 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5eedcaea snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x649892e8 snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x792f7d8d snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x7ae89ab6 snd_pcm_stream_lock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x8d864069 snd_pcm_rate_range_to_bits +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x96b8797c _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa89942f8 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xab8bc1a2 snd_pcm_rate_mask_intersect +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xb7dac88d snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xda3d30d9 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xeda69588 snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x07e62f4d snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x1939993b snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x232e4a4d snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x2e9f446a snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x5b78220d snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x60e58cca snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xa67c1742 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xd68b4a5a snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xe2f9ace8 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xe7ac76d5 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xf36c7964 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xf83a3c28 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x31af57d0 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x693bcc17 snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1c0075b8 amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1ccf21e3 amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x43bece7c amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x56b4dce9 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x63b835d9 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7a7444ba amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x8df2aebc amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x924dbf41 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x926c4f17 amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x9fdcf69a amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xaea6d647 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xb88db590 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xc222e824 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x12db6979 snd_hdac_ext_bus_ppcap_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x19af8146 snd_hdac_ext_bus_device_remove +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1a054493 snd_hdac_ext_link_stream_clear +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1aca2ab7 snd_hdac_ext_link_stream_setup +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1b773c31 snd_hdac_ext_bus_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x1f057762 snd_hdac_ext_stream_drsm_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x21c16d30 snd_hdac_ext_bus_link_power_down +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x24fff4de snd_hdac_ext_stream_get_spbmaxfifo +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x380dfd3d snd_hdac_ext_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x3c59a116 snd_hdac_ext_stream_set_spib +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x3e3583e1 snd_hdac_stream_free_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x3fd53e76 snd_hdac_ext_stream_decouple +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x5f3471b9 snd_hdac_ext_bus_ppcap_int_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x6b7458dd snd_hdac_ext_bus_link_put +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x6f163b44 snd_hdac_ext_stream_set_lpib +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x6ff7e28f snd_hdac_ext_bus_link_power_up +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7069236e snd_hdac_ext_bus_link_power_up_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x71807d79 snd_hdac_ext_bus_device_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7406d77a snd_hdac_ext_link_stream_start +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7822067a snd_hda_ext_driver_unregister +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x79b41b9f snd_hdac_ext_stream_spbcap_enable +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7a505d49 snd_hdac_ext_link_stream_reset +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7c1e1a34 snd_hdac_ext_bus_exit +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x7f7023fe snd_hda_ext_driver_register +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0x8ab8b88d snd_hdac_link_free_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xa1d46122 snd_hdac_ext_stream_decouple_locked +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xa508064a snd_hdac_ext_bus_get_ml_capabilities +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xb7b7e14a snd_hdac_ext_stream_init_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xc038dc4c snd_hdac_ext_stream_set_dpibr +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xccc644b8 snd_hdac_ext_link_set_stream_id +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xccddcd37 snd_hdac_ext_stream_assign +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xd6cd2452 snd_hdac_ext_bus_device_exit +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xdcd05b39 snd_hdac_ext_bus_link_get +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xdd87cb2f snd_hdac_ext_stream_release +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe07e0292 snd_hdac_ext_bus_link_power_down_all +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xe4500f4a snd_hdac_ext_bus_get_link +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xeeabe30a snd_hdac_ext_stream_init +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xf3dec7d9 snd_hdac_ext_bus_link_at +EXPORT_SYMBOL_GPL sound/hda/ext/snd-hda-ext-core 0xf6f395b3 snd_hdac_ext_link_clear_stream_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x01c6f3a5 snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0587cc95 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x07d03581 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0f7ffe59 snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x15a84744 snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x163f81b6 snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1a480a44 snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1a8a8c66 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x208e4c00 snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2a5f9d33 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x33362efe snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3390af40 snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x33c1dbf0 snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x341ef855 snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3b22b76a snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3ef92463 snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3fa7c676 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x422f724c snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x458c4587 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x46108479 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x47291a86 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4755972b snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c408522 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 0x4ceb7c71 snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4e94ae85 snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5473234a snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x565c94ce snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x56947a9f snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x57fbca5f snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5840a894 hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x589323bd snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x597099b8 snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5b2f33b9 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c174b82 snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6206359a snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6cd62877 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6dfc3049 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6ea9e555 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x707e8447 snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x72f67f2c snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x730a1172 snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7406697b snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x74704cf2 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77679351 snd_hdac_i915_set_bclk +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7dea5d13 snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x80e8976b snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8c3ec8c8 snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8c915334 snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9adb2181 snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9b0eba27 snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9d110ad1 snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9d4dd138 snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa29c8bef snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xaaf6dace snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xad68d16e snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xae5a3b0c snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xaeb521ad snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb0d88336 snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb28d9f11 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb3dc9f01 snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb7f4b496 snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb84c3593 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbd7b2633 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbd7c3310 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe24fe98 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc23283c5 snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc2f4e300 snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc404f144 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc68a95e0 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc6f0b658 snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc88fed93 snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xca8d7eab snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcaf68c4a snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcb2e4317 snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd2204f38 snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd75e45f2 snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd7ceba9c snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdece816d snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe0b0ac67 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe4e07754 snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe894868e snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe911566c snd_hdac_i915_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xea7b9424 snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xebfba9a3 snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf00e984b snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf4f3e006 snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf808a614 snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfdd73182 snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x18036e74 snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x2e6e539f snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x4e859456 intel_nhlt_free +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x67c85783 intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x8b4b2bac intel_nhlt_init +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x02696431 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x49e8071e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa3f19582 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa827a79b snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa8661b3a snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe2c3fa31 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00216d03 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03349e4c snd_hda_jack_bind_keymap +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 0x0906816f snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a772e90 snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b2d5473 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b6c4774 azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bd44025 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f3b35ac snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x154c2979 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x193f3028 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19e89749 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e8ca59f azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20801680 snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20fec487 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27f86afc snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ad210b9 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d58f8ac snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ed1d493 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x305f63e2 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34e99c2c snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35aae804 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39346aaf snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b229a32 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d38a05c snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f4e10a2 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x402f7d4e snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42859694 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43e2d742 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x446a4cc3 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4832cb2a snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x486450bf snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48ba3ab8 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a66813a snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4aaacf4c snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ace266e snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c6501a1 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cc956a1 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f98e78f snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50f79c31 snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5196b7f4 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52655f8d snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5427008f azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x548a7a4b snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x554fbbf1 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x586f6782 snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a4aa84f snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b4dc241 snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cfbc735 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f3fdbbd snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x642cf489 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6618ca96 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67213509 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68202254 azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68360f91 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x689548fe snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a758879 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c7cf367 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ef233bc snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70d6e3db snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71eb9171 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72894363 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7922a2e2 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a77acc1 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e38f553 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81a7b550 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x888006f8 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a69f3de snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a6ec06c __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c21ce40 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8dad354d snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ec3da2b azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90296a16 snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91f6db5d snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x933c775f __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x940b03c4 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95a22aaf snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95eb476e snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x999dadee snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99bcd98c azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ac21b0e snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0d494ad snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa338ad46 hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa386fdda snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa487b646 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa705e5c6 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa76bf3f5 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7a4a677 __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa81b7716 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8a0f929 snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8e420eb snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xade86a7a snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0be39b7 snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb325f647 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3ff7c67 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7c37117 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7d4a4f3 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9927f20 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba605e85 snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb627dfe snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbf9abf0 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc5adf18 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1b79806 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc27a6b56 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4364fb0 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc4707dc3 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc626ba44 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcafc90e6 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcc1e50fa azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xccfd21a9 snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0a5a81a __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd49f53a7 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5b5dd95 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd793f24b snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8c67391 snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb58635e snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf287f7b azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe11439df snd_hda_codec_device_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 0xe1c581bc snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe1dcc69f snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7007637 snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7e14683 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe90c5bb7 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecc4b7b9 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0b4e30b snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3f7127e snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf75ce47f snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf760ace9 snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8dc35ac snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xff2f39c8 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffba8bf9 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x041b359d snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1392939c snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x13fbd772 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x217c6fcb snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2e12f491 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x3f50f9d0 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x41f8541b snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x5a634436 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x66f5bca7 snd_hda_add_new_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 0x781fd8f6 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x84a18986 snd_hda_gen_add_kctl +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 0x8e1f68f9 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x919661a2 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x983282bb snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xa1277bcb snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xaf313939 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xc6e5a6ff snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd2c51c8b snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd475e8a1 snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd9d2436d snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe52e1527 snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0xae620be9 adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0xa9367dd7 adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x76486f37 adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0xc305e4dc adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x0764a280 adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x08d35d92 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x1a3f9ac7 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x1d20dec0 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x483aa247 adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x5077dd70 adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x9b373941 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xabc90db7 adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xc2e2149f adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xea13ed28 adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0xeabe658d adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x05edefea arizona_init_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x0b27de2c arizona_output_anc_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x17732647 arizona_input_analog +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x1b026d1b arizona_out_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x211791a2 arizona_dvfs_down +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x241bb553 arizona_lhpf3_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x2f5c2dc8 arizona_lhpf_coeff_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x33e71542 arizona_set_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x36696813 arizona_isrc_fsh +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x36a0154b arizona_in_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3c0e5b28 arizona_asrc_rate1 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3d1d27fc arizona_in_dmic_osr +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x43da9208 arizona_anc_ng_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x46277216 arizona_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x4d7c23e1 arizona_init_dvfs +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x4eda4049 arizona_anc_input_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x515a5b15 arizona_voice_trigger_switch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x53ce06f4 arizona_jack_set_jack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x5a22a305 arizona_init_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x65ecfea0 arizona_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x6826856b 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 0x6d1bd724 arizona_in_hpf_cut_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x729a5ef3 arizona_mixer_values +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7321955a arizona_init_gpio +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7363acc6 arizona_simple_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x76c6de3b arizona_init_mono +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7ad50cdb arizona_out_vi_ramp +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 0x80df0278 arizona_eq_coeff_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x826cbee7 arizona_lhpf2_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x83ba02c3 arizona_set_output_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x890bade8 arizona_hp_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8ac58b1a arizona_set_fll_refclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x9e6ec0da arizona_init_common +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa5d868cd arizona_in_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa83eec45 arizona_free_spk_irqs +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa9800c27 arizona_init_spk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab4d845c arizona_rate_text +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab525ec0 arizona_init_vol_limit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xadf82a05 arizona_isrc_fsl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xae392a6a arizona_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xb24a3230 arizona_anc_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xb384a47a arizona_lhpf1_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xb3df05c6 arizona_ng_hold +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xbfa7a0a8 arizona_init_spk_irqs +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc40f090d arizona_in_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc4a74c44 arizona_of_get_audio_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc6e085ae arizona_adsp2_rate_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc9c29637 arizona_mixer_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xd5a04864 arizona_jack_codec_dev_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xdfe804b8 arizona_sample_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xe14ab040 arizona_dvfs_up +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xe1bc8bdd arizona_lhpf4_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xe8324dff arizona_jack_codec_dev_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xea192483 arizona_out_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xedd173ce arizona_dvfs_sysclk_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x71cc0bc9 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x7d1e5af2 cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xa952ebf5 cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x0b1beb25 cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x4df9f90f cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x5526315e cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x6887564d cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x962b7fae cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x9d23fbb7 cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x9f238321 cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb68d6b49 cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb72a706b cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb99e671c cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xbea55c7f cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xc2d6c82b cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xded25092 cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xf25c8222 cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x00f8324b cs4271_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x7fd7ebe3 cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x25401321 cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x4457e773 cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x62bbb187 cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7d5324db cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x8b130b69 cs42l51_resume +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 0xa1ec65a2 cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xad88476d cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xb6aac5be cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9 cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x2a0aa46a da7219_aad_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x2c4af0d9 da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x2eacce2e da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0xc668d639 da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x843683b1 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xf20c1197 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hda 0x295fda69 snd_soc_hdac_hda_get_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x5121e990 hdac_hdmi_jack_port_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-hdac-hdmi 0x7995556a hdac_hdmi_jack_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x515061bc lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0xa8450e18 lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xec2bdb65 max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x3f5cd812 soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x4c1a9f39 max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x66cbffd7 max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xee60cf8c soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x409ff1d5 mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x86e47219 mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x94b6241c mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xf16f356e mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0x2182f3e7 nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xa61ae2a4 nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xbf55f96a nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8825 0x3be74f24 nau8825_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x36b67003 pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x7f1f3548 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xa18ef117 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x6bc8d13c pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xa63e5d3f pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x53e8f92f pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0xe61ea211 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x214fda86 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x2ac4b222 pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x809d691a pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xca03456e pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x1193fa96 pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x36b8025a pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7d08ac6a pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x97be0791 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x8d7fa148 rl6231_get_pre_div +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0xdba4502f rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-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 0xe4ab9291 rt286_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt298 0x85077be9 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 0x19116bdd rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x31dc8688 rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x5a50efb9 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x644b8f59 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x8543df85 rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xe2cdf8c0 rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x104d8b2d rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0xd449bf3c rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x8cfa1018 rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x899b0878 rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0x2f5ee4db rt5670_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0xba98ce21 rt5670_jack_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0xc9d19386 rt5670_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0xcb7075e5 rt5670_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5670 0xed771d3c rt5670_jack_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0xa0b5a101 rt5677_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x5fc320ad 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 0xc6695825 rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129 rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x19ee9516 rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x2d598d9c rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x2dab6670 rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x53ebafc6 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59ba4045 rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59d3d967 rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x8783892b rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x956ee9cf rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb1693886 rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb897de56 rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb8dc14c5 rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xef65fb05 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf82e34b9 rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682s 0xb26a377d rt5682s_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x29e9cffb sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x4317c0ab devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x716d1445 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x77ef3b37 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xa86ac958 sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0xeb6d7d6d devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0xc461dfe1 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x0b3c3f04 ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x23dd1ad0 ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0xa0e182fd aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe106b284 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x523f9baf ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x936c1623 wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x56548229 wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x5797bcc3 wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x67459c7a wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xe52908d0 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xfc8a7358 wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x064fbdb4 wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1272af98 wm_adsp_compr_open +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x16d95c49 wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x27757f82 wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x32448c33 wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x330cb2a2 wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3ac5422e wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x421593ee wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x4e99967d wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x5153a8bd wm_adsp_compr_free +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 0x56691085 wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x578b4312 wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x58f19b03 wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x64f86089 wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7011ec84 wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x79cb2bcd wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8ce11ed6 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9a5325b9 wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb11dff5c wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xbb275883 wm_adsp_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xbcece839 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xc62ec519 wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xd11a1039 wm_adsp2_component_remove +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 0xe061ff7f wm_adsp_compr_copy +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 0xf21396bf wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x5a8c8eec wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xc42e727e wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x2adbd225 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x5c693f3a wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x66f3a356 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xb0c48e18 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc223c7e0 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x6deec914 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0xe13cbe6e 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 0x07e55bc9 asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x0b9ae463 asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x119b9607 asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x16cd6354 asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1980cbcf asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1c84b33f asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1d7a50cb asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x267473a8 asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2c7f30ac asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x391f3aa1 asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5b6d4df8 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x6b760965 asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x73a954e0 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7d534310 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x8870626a asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x93cfbef9 asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x9db5c989 asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xbb9f79f4 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xcba54764 asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd53e7ab9 asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xdb2269de asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xf2a772d6 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xf3bafb75 asoc_simple_convert_fixup +EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x4caac39d sst_register_dsp +EXPORT_SYMBOL_GPL sound/soc/intel/atom/snd-soc-sst-atom-hifi2-platform 0x6bbe8771 sst_unregister_dsp +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0x6dfe1b8f intel_sst_pm +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 0x81efe6a8 sst_alloc_drv_context +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0xc213a26b sst_context_init +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0xc2ce1dfc sst_context_cleanup +EXPORT_SYMBOL_GPL sound/soc/intel/atom/sst/snd-intel-sst-core 0xd877f23e sst_configure_runtime_pm +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x13430765 snd_soc_acpi_intel_adl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x1a04997c snd_soc_acpi_intel_cml_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x2a7556da snd_soc_acpi_intel_hda_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x333bbde2 snd_soc_acpi_intel_tgl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x34a14f4e snd_soc_acpi_intel_broadwell_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x3e10d45b snd_soc_acpi_intel_cherrytrail_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x40dfb2c1 snd_soc_acpi_intel_cfl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x462d8968 snd_soc_acpi_intel_cml_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x5a5565e1 snd_soc_acpi_intel_adl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x5c652038 snd_soc_acpi_intel_glk_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x607c51aa snd_soc_acpi_intel_mtl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x63e7540c snd_soc_acpi_intel_ehl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x659eb785 snd_soc_acpi_intel_rpl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x745f1210 snd_soc_acpi_intel_cfl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x7e9d4e97 snd_soc_acpi_intel_baytrail_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x88dd0c65 snd_soc_acpi_intel_haswell_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x8a37e27f snd_soc_acpi_intel_bxt_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x8d98c309 snd_soc_acpi_intel_mtl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x97428ae0 snd_soc_acpi_intel_cnl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0x9af1dd43 snd_soc_acpi_intel_cnl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xac2417e0 snd_soc_acpi_intel_icl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xbd17d594 snd_soc_acpi_intel_jsl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xc484b592 snd_soc_acpi_intel_rpl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xd67016b6 snd_soc_acpi_intel_kbl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xd974c666 snd_soc_acpi_intel_tgl_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xed96d3e5 snd_soc_acpi_intel_icl_sdw_machines +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-acpi-intel-match 0xfa4ace8b snd_soc_acpi_intel_skl_machines +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 0x2fa46639 sst_dsp_shim_update_bits_forced_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x3191387d sst_dsp_outbox_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x50afb31e sst_dsp_outbox_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x61c0f372 sst_dsp_inbox_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0x75a47a4e sst_dsp_inbox_write +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 0xb5188c9e sst_dsp_shim_read_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xc648ae1c sst_dsp_shim_write +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xcef7ed93 sst_dsp_mailbox_init +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xcf7123c2 sst_dsp_shim_write_unlocked +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xd5eeaa5a sst_dsp_shim_update_bits_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 0xdc00d9c1 sst_dsp_shim_update_bits_forced +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xde47faca sst_dsp_shim_read +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-dsp 0xe20a07f5 sst_dsp_shim_update_bits +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 0xf949048e sst_dsp_register_poll +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x01c82c18 sst_ipc_reply_find_msg +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x04a68e75 sst_ipc_fini +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x14b445ec sst_ipc_tx_message_wait +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x1977a549 sst_ipc_tx_message_nowait +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x22820d4f sst_ipc_tx_message_nopm +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0x25068e3d sst_ipc_init +EXPORT_SYMBOL_GPL sound/soc/intel/common/snd-soc-sst-ipc 0xf5a5f327 sst_ipc_tx_msg_reply_complete +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x00446e04 skl_dsp_free +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x0353106a skl_ipc_create_pipeline +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x12cd6e48 bxt_sst_init_fw +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x2b2bf9e1 skl_dsp_put_core +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x2bf0c4be skl_clear_module_cnt +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x2c6aec4b skl_sst_ipc_load_library +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x2c8dd272 skl_sst_dsp_cleanup +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x35114ced skl_ipc_restore_pipeline +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x372357df skl_dsp_set_dma_control +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x3f7d108b skl_ipc_set_large_config +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x526b8a3f skl_dsp_wake +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x52edf28c bxt_sst_dsp_cleanup +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x54d5b7f3 skl_get_pvt_id +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x65838b3b cnl_sst_dsp_init +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x6f86f908 skl_put_pvt_id +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x71c64025 skl_ipc_load_modules +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0x8e9200f5 skl_ipc_set_dx +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xa24972cd skl_ipc_bind_unbind +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xa604eef9 cnl_sst_init_fw +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xafb91a81 cnl_dsp_free +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xc022db61 cnl_sst_dsp_cleanup +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xc1a0b42d skl_ipc_delete_pipeline +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xc719b0a4 skl_ipc_save_pipeline +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xc8bbc4c1 skl_ipc_get_large_config +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xc9ebf2ac is_skl_dsp_running +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xca68c98c skl_sst_init_fw +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xd6c91f3d skl_sst_dsp_init +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xd6f71453 skl_ipc_init_instance +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xddcc134b skl_ipc_set_d0ix +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xde1c9571 skl_dsp_sleep +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xe02764bd skl_get_pvt_instance_id_map +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xe417ada6 skl_ipc_unload_modules +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xe6a4140d skl_ipc_set_pipeline_state +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xf0c21d45 bxt_sst_dsp_init +EXPORT_SYMBOL_GPL sound/soc/intel/skylake/snd-soc-skl 0xf942b958 skl_dsp_get_core +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x3dd9f961 snd_soc_acpi_find_machine +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x5c512782 snd_soc_acpi_find_package_from_hid +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x9b1aadfd snd_soc_acpi_codec_list +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x005c6933 snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x021bfa5c snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03c01e3d snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x064fba95 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08384405 snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0aabb2c2 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b57a344 snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b7e6905 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b89406b snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f6cbd7b snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1018b87e snd_soc_component_compr_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1185bd93 snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12560cbf snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1453941d snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15810a6c snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16e672a4 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1770e0cb snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1843f9cf devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a194c28 snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a4eb24c snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1aea3bb5 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b3848b3 snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ca5088d snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d40c4bc snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1de18ae4 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ee59b6c snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fb7b867 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fc855aa snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2029969f snd_soc_component_read_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x202f6ce8 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2215daed snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23caebda snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23da18aa snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24aefb4b snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24cd5b83 snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27d5f403 snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2818c340 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x288c083d snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x292ddb1e snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2bc63f9f snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c54ffd4 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f3d7245 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31775a04 dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32284dbe snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x327c3241 snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33633da5 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3510ad79 snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x373305b3 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ab43ba8 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bebb933 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bee01d7 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3debcedf snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4012f0d9 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42723f39 snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42ccc611 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45555122 snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x45b264cd snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x464171a3 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46fa3797 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x473afa80 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b614410 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e357754 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fb93105 snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x510324f2 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x511bf75c snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51756c1f dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53f930a9 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54178524 snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x549bc4be snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54e5fbdf snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5503587e dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5524d3ea snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x561df40e snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5826cd27 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59199ea6 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ae9a12f snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bf73566 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bfd33b0 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fb9a242 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fd80335 snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6197598b snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61b63c5b snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63c620ea snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6405ed6c snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64cf78c4 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65864918 snd_soc_dai_active +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65edc747 snd_soc_component_write_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66d4ec78 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6adf4267 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c62f357 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d7cffcd snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e31c4da snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ed911d1 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f25d055 devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70a05ec7 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74bbb302 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74c8ade5 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x757f619f snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75903d91 snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75bd6ed2 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78e6dfaa snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x796e5c44 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79afd440 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a813581 snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c568b70 snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c85d834 snd_soc_component_compr_open +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d0e25e7 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e0f5753 snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f3e7368 snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80c5cb5a snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82db6aea snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8454fec7 snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86d4f78c snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87ef3a33 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8acc856f snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c76a0ab dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d222890 snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d7236f1 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8da4e48f snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8daedf56 snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e7ffef8 snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ed3e82b snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x921f3a15 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92e3a56a snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93184389 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94cfdfa2 snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94fef71e snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x959d20ef snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95fdafd7 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95ff9b16 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96bc5d51 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96ccb42a snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x978cdaf1 snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99d49351 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bfe1f31 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9fb1e080 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa00bb68b snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa23eec39 snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3a9e96a snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa790f2ec snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa85c1ec0 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8a63dd7 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa962227b snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa8b04a4 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaac58748 snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab77faf1 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab89f577 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac16a5ea snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafe77330 snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0312d17 snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1ba3e0e snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb24c08a1 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2de0deb snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb39949b4 snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb408ff4c devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb47a4bcd snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4ae4c21 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4e5a43b snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4ecf806 null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb50b78b9 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6a2b924 snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7757928 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb83e8ff6 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8c8a3f1 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9004a46 snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9ed9797 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba707f73 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbcf95312 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdc3f368 snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbdd8a634 snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc00c7d78 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0976296 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1a93374 snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2e7120e snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2fef547 snd_soc_dai_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc317a15e snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4ed3133 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7665f30 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9184c27 snd_soc_runtime_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc9411bb snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccb28b06 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf0a3061 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcfc18031 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0003a75 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd045e6ca snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd36b5c8f snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4c1d43f snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc908cc6 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdceead31 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd4950b2 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe02fe3b5 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe040c616 snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0e38310 snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1f28362 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5505b0a snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5d75258 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7080244 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe795876e snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7d3da8e snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe85b2c4b snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8bb9717 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea8594d6 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef425cea snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefe5c858 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0dc520e snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6116fa2 snd_soc_component_initialize +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7a9a119 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7b90f2e dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf87efa0a snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9622dd1 snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfac40574 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcb42abf snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe0a5f97 snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe65724b snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff20baef snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x0dc8230b snd_sof_dbg_memory_info_init +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x136e20b1 snd_sof_free_debug +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x18d18886 snd_sof_dbg_init +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x9df26977 snd_sof_debugfs_buf_item +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0xdd815c2f snd_sof_debugfs_add_region_item_iomem +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x0dfa59b6 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x14eaa418 line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x1c38434c 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 0x5daa099d line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7de93b18 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xaf2e4f20 line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xb4c3a2c6 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbe9716ae line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc032a1dc line6_probe +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xcc7cce6a line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xceb08e31 line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xd99d9831 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xdcc9debc line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xef95e0be line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xf4b01184 line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xf8b1ba89 line6_send_sysex_message +EXPORT_SYMBOL_GPL vmlinux 0x00018f06 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x0013539f devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0x00140b93 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x00149531 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x001b074f mce_is_correctable +EXPORT_SYMBOL_GPL vmlinux 0x001b879f crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x00232e31 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x002b666f bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0034f3b6 xen_has_pv_nic_devices +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00565f18 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x005f18a6 add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x0084b2b2 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0x008539f0 klp_shadow_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0089b15d nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0x0091ce2d pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x0098cfa0 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x009bd97e fpu_alloc_guest_fpstate +EXPORT_SYMBOL_GPL vmlinux 0x00a19fb0 clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x00cb8ca5 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00d9e59a usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x00df9837 ioasid_register_allocator +EXPORT_SYMBOL_GPL vmlinux 0x00e3d635 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x00e57c2c iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x00ec8ec8 dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x00f92244 clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x0112599c pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x01191833 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x011c921f xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x012e730e apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0x01468c2b iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x0155a3b2 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0169c1f6 spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x017588b5 __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x017a8a74 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x01936f1d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x019f05eb mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01a0cb78 property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x01c12c32 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x01dfe4ed nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01ee4977 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x01ee5532 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x021c9bd4 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x021e026b __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x02495b8f gnttab_alloc_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0x024cfb5b of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x024d13dd request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x02557f63 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0257019c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x025fa948 virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x0264b9f8 fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x026ce816 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x026fa6a9 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0270cc9d pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x028cd8c2 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x028fab8e dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0x029ee36b ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x02b1c120 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x02b6d199 blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02dca02e fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x02e2cbbc extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x02f85045 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x03035510 crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0322efdb dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x03259ac1 wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x032be250 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x03334b0d serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03553c4b gnttab_page_cache_shrink +EXPORT_SYMBOL_GPL vmlinux 0x0357c281 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x035b74d3 blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x0368cbcd usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x03780b42 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x037d21f3 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x037e8305 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x03877090 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x038d93dc devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x0398b1a1 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x039db423 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x03aaf6b6 inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x03af6489 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x03b257c2 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x03b286f8 i2c_acpi_client_count +EXPORT_SYMBOL_GPL vmlinux 0x03b4b72d i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x03b8b1c1 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x03c1c035 acrn_remove_intr_handler +EXPORT_SYMBOL_GPL vmlinux 0x03c1d717 int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0x03c93417 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x03ce7234 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x03cfd15d fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x03d690ba get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x03de3680 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x03e124ae mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x03e82760 __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x03e9e7f8 pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x03fc9df3 sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x040d11a4 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x042a263f sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x043bb0f5 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x044cc6da init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x044f9076 bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x0457626f devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x0464e0fc crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046dffbd irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x04776022 xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049e5156 gnttab_try_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x04a634db crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x04b5cd51 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x04b65168 perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x04be2025 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c20015 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04dda268 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04f09ca6 dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x04f63c58 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x05061531 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x051a7c96 iopf_queue_add_device +EXPORT_SYMBOL_GPL vmlinux 0x052a5b3a device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x0535c013 mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x0540efcf irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05512479 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x055ce284 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x05605634 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x0563f557 wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0x0564b21b powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x0564e481 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x05691349 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x0575e733 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x057c241b pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x0582ded9 __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x058329ce dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x058a0711 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x058f9366 apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x0599b677 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x05a3a8bc virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x05ae1baf ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x05b38679 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x05bab93c acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x05e6d03e make_device_exclusive_range +EXPORT_SYMBOL_GPL vmlinux 0x060980a7 call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x061336ae blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x06170d0e tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062f369b acpi_cppc_processor_probe +EXPORT_SYMBOL_GPL vmlinux 0x06381e73 tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x063851ae devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065bf212 __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x06639a43 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0x066bad14 phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0x067e19d0 iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x069bb937 __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x06a9659a clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x06ad2fb7 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x06b3a851 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x06b8718c devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x06babc8c trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x06c1f367 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d1115b blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x06dc7e98 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x070f2763 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x070fa1ca dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x071f389c icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x07200451 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x072082be crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x0723708b spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x072a8158 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x07377b2e class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0737f6b8 perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074f98db synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x076155ca pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x0762217c pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x0764a41d crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x078352cb pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x0785a0fc of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x078a95b2 gnttab_page_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x078dba78 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x07ada23e xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x07b0ba23 switchdev_port_attr_set +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 0x07b92c6b ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07bf2612 gnttab_foreach_grant_in_range +EXPORT_SYMBOL_GPL vmlinux 0x07c13104 __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0x07ed29b2 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x07ee09e7 gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x080286ca wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x08156968 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x0816f9f6 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x082b82f9 poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x08418e5c dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x086b67ce device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x086ca347 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x0894fbe1 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x089502c5 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x0899834e pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x08a24d30 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x08b01d7d driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x08bbc582 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x08c78cf7 offline_and_remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x08d6d901 sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x08daf0c0 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x08e6ea93 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0907d14d blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0925493f clear_page_orig +EXPORT_SYMBOL_GPL vmlinux 0x09264340 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x0929e65b cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x09337cd0 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x093786cf synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x09409947 gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x0958fb5d dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x095c33da serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x09658af6 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x096a7e6f x86_spec_ctrl_base +EXPORT_SYMBOL_GPL vmlinux 0x096e1abb sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x097469b4 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x098722f8 __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x0991f007 nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09bf8399 pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x09caa489 mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x09ee065c ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x09fa167c vfio_uninit_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x0a03844f wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x0a3e7eeb bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x0a47553f tdx_kvm_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x0a502c98 dmar_platform_optin +EXPORT_SYMBOL_GPL vmlinux 0x0a52c511 hv_query_ext_cap +EXPORT_SYMBOL_GPL vmlinux 0x0a6516b6 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0aae7317 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x0ab66215 events_hybrid_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x0ab94685 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x0abdc439 cc_platform_has +EXPORT_SYMBOL_GPL vmlinux 0x0ad137d3 lpit_read_residency_count_address +EXPORT_SYMBOL_GPL vmlinux 0x0ae79598 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x0ae83665 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0af40724 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b1bb9f9 synchronize_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x0b28ad56 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b3cc792 __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x0b47fc70 wp_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x0b520af8 nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b596b15 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x0b5a580e tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x0b771cf4 bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0b982b87 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x0baee061 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x0bb24b25 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc9b2 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x0bbeaeba uv_bios_enum_ports +EXPORT_SYMBOL_GPL vmlinux 0x0bdea0f8 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x0bdf1fa2 devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0x0be6e321 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x0bf0800a crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c081bf8 tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x0c125c28 __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x0c291b77 sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c4a7158 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0c511bc1 serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x0c55aea3 tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0c5bfa4c blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x0c6c35cf fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x0c6c8a62 of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x0c752d9c regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x0c805ea3 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c87a217 edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x0c87d952 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c8ac824 __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x0c94280f spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0caa4d7a gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x0cb6b665 fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x0cbe3ee2 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0cc12ac1 led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0cd502ee regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x0cd8ae8d dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x0cf1d93b devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x0cfa688f platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x0cfe59cb hyperv_fill_flush_guest_mapping_list +EXPORT_SYMBOL_GPL vmlinux 0x0d08e5c4 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0d0e035a tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x0d10f6bf edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x0d3bb6ac i2c_acpi_new_device_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x0d3f6cea __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d4e3f8c iopf_queue_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0d5cecc6 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x0d71059d __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x0d763d4b kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x0d7eedb9 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x0d878e38 switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x0d9118e6 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x0d911c29 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x0da9c6ad dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x0db1e4b3 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x0dcb3ee8 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x0ddadea2 __SCT__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0e007edf xen_evtchn_nr_channels +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e0ed796 pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x0e1194d5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e168aae isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0e1acb6f driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0e1c715e usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e1fc8ef __SCT__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x0e2fc84f ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x0e57de5e nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x0e6df763 component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x0e7f094d pci_pr3_present +EXPORT_SYMBOL_GPL vmlinux 0x0e846809 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x0e863912 vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0x0e8d05c6 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x0ea5cbce xen_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x0ebb03a4 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ebf8490 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x0ec096b0 hv_read_reference_counter +EXPORT_SYMBOL_GPL vmlinux 0x0edbf889 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0eeae3e8 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x0f0b21fe pm_trace_rtc_abused +EXPORT_SYMBOL_GPL vmlinux 0x0f17c342 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f1974ab __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x0f1c071c fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x0f21b39d nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x0f224e18 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x0f261da5 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f36cbd3 dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x0f412747 nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0f427ee9 dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f4b9512 devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x0f5a5b4e xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x0f62cfeb genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0f72ada1 acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x0f7ca236 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x0f9fc04e uv_get_archtype +EXPORT_SYMBOL_GPL vmlinux 0x0fa89425 badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x0fb58951 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x0fbb7344 memremap_compat_align +EXPORT_SYMBOL_GPL vmlinux 0x0fbc0c0e xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x0fc37562 amd_smn_read +EXPORT_SYMBOL_GPL vmlinux 0x0fcad17a kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fd26b47 sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0fd82d9e __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1036e83a i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0x1038b96f adxl_get_component_names +EXPORT_SYMBOL_GPL vmlinux 0x1041674d dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x1044fd24 i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x105616e5 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x1075fa47 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x1088ea76 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x108a0acd bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x10912e0a serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x109b33fe acpi_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x10b45f0d vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL vmlinux 0x10b5a2b1 devm_intel_scu_ipc_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x10c672b6 fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x10d1d742 __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10ddd0cb __SCT__perf_lopwr_cb +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10edfd0e acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x10f0f014 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x11101b69 __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x11133751 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x1124ff79 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x1130cba1 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x1135b3ec srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x114358a5 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x11517a43 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x115cea60 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x116180b5 hv_current_partition_id +EXPORT_SYMBOL_GPL vmlinux 0x117c9cec user_update +EXPORT_SYMBOL_GPL vmlinux 0x119a0915 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x119ac005 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x11cc7b66 bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11e06ee9 badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x11e08f96 trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0x1203d921 bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x12084b1c of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x12189359 __SCT__tp_func_block_unplug +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 0x123c1da2 query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x125c9a95 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x125f63a8 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1267509a cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x127c109b __SCT__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x12866334 nvdimm_setup_pfn +EXPORT_SYMBOL_GPL vmlinux 0x128adfd4 md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x128c7d73 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x1292c81b nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x12a830ed irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x12ac73ce skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x12bb2471 __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x12ce52b0 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x12da05fa of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x12db3a8b kvm_clock +EXPORT_SYMBOL_GPL vmlinux 0x12e2626f trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x12e285ec is_uv_system +EXPORT_SYMBOL_GPL vmlinux 0x12e41e0c dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x12ee1173 memory_group_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12f2570d led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x13090724 add_vmfork_randomness +EXPORT_SYMBOL_GPL vmlinux 0x13130759 linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x13136d64 genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x1316e0b9 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13300673 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x1336d50e extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x134e329f switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x13526fb9 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x136aed4d __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x13739f0f iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x13a474a3 devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x13ad017c fpu_swap_kvm_fpstate +EXPORT_SYMBOL_GPL vmlinux 0x13ca1b05 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13e9724c pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x13ea6b7e power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13ee29e1 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x13f2ea3a virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x13fab921 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x14001643 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x140dfec6 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x14268620 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x14329349 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x1444f4de __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x1450b1f7 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x146eaf85 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x1475d603 xstate_get_guest_group_perm +EXPORT_SYMBOL_GPL vmlinux 0x148a6b13 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x14b9bfd3 vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL vmlinux 0x14c57752 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x14d7362f __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x14ec4fdb evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x14ece46d ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x15021b4a xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x1511e884 trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x1515c927 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x151e8756 exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x152438e0 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x155e9c89 acpi_dev_clear_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x1561ae53 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x1562c7c5 __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x15665203 usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x156e8afe __SCT__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1573098a sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x157db856 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x1585a4c8 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x159206a6 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15a80864 power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15afe377 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x15c12793 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x15d4e63b dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x15ea2648 hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x15f4644e usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x15f6ba64 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x1610d4e5 __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x16144dbe tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x161aed40 devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x1649495a irqd_cfg +EXPORT_SYMBOL_GPL vmlinux 0x16516798 osc_pc_lpi_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x165370c4 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x1653a907 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x1662ca51 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x166db1b5 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x1672d0ab pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x16759af2 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x167828ed skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x167d7113 acpi_bus_register_early_device +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x16949838 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x169b65dd debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dd183a pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x16ea1610 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x16f15139 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x16f68b77 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x170866e6 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x170dd8ba irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x1711c17f __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x1724d9e9 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x17272571 rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x17332c68 acpi_is_pnp_device +EXPORT_SYMBOL_GPL vmlinux 0x173fbee2 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x1741ddee trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x174dea9b led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x175401df wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x176adf76 xenmem_reservation_decrease +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1785ef56 pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x17909a4c ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x17a8c8ae tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0x17add64b gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x17b04210 __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x17b77bbc dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x17c59bc7 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x17d72d3c crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x17da8eca ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x17e01f11 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0x17e226e0 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x17f15836 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x18053210 i2c_acpi_find_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x1826f3ec aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x183a88cb devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x18491ffc pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x185e9df4 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x18615d35 efivar_supports_writes +EXPORT_SYMBOL_GPL vmlinux 0x1865e947 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x187150ab driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1871a224 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x187bf073 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x1896fca3 inet6_compat_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x18a8eff5 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x18a9f348 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x18aa9acc gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x18b2790f uv_bios_obj_count +EXPORT_SYMBOL_GPL vmlinux 0x18b9d950 clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x18bf0441 nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0x18c0395f kill_device +EXPORT_SYMBOL_GPL vmlinux 0x18cb1273 unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x18d61bfe serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x18dd3dbe firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x18e04b9d unregister_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18ed6d7d simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x18f1c94f ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x1902a426 to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x190d33e3 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x19121eda raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x1920d149 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x19270515 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x1935d18c iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19399aff component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x193dfdf6 klp_get_prev_state +EXPORT_SYMBOL_GPL vmlinux 0x1944e39b raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x1945234a pwm_lpss_probe +EXPORT_SYMBOL_GPL vmlinux 0x194f4da1 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x195e6ccf dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x19615b5b mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x198f7ed3 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x199c4833 __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19bb244b nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x19caa916 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x19e0ae50 __SCT__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19edd064 blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x19f92dcd dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x1a0a58c0 spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x1a0cbf3b ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a34e241 __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x1a4217e8 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x1a453296 get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x1a4d7813 __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x1a5fbe8a devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x1a62a054 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a719a95 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x1a826c75 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1a85a936 fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x1abbc69f serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x1aebdcb7 pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1aff3d55 mce_register_injector_chain +EXPORT_SYMBOL_GPL vmlinux 0x1b00bf2e smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x1b0121a1 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x1b03ac06 vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x1b297b1e sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x1b34fa21 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x1b3d5120 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x1b4745d2 icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1b4bda45 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x1b4cf632 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b5750ef __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x1b5df2ad devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x1b5f4377 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x1b617c0b mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x1b67e223 phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0x1b7e9220 acpi_device_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1b9b42b7 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x1ba237b0 default_cpu_present_to_apicid +EXPORT_SYMBOL_GPL vmlinux 0x1bac28d6 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x1bc4eb55 gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bc64087 xas_split +EXPORT_SYMBOL_GPL vmlinux 0x1be850c6 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1c07ccf0 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x1c2f5db5 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x1c316770 dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x1c368a15 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x1c38aa94 __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x1c46116f PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x1c4f43cd cpufreq_freq_attr_scaling_available_freqs +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 0x1c687e57 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x1c68e4d4 mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x1c764526 __SCT__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1c77414e __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ca3aa97 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x1ca8e551 power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x1cb5e128 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x1cb7c983 apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x1cb9a1c8 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0x1cb9c14b dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cd0c4ca __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x1ce6dce3 xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x1ce800ef devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x1cfae8b5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x1cfe4101 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x1cff8eab sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x1d19161c strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d3dfb59 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x1d4ae4a8 gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x1d55a61b yield_to +EXPORT_SYMBOL_GPL vmlinux 0x1d62f375 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d824be5 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x1d8476ef fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x1d84afa1 iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x1d94a218 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x1d9a967c wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x1da415c6 __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x1dc54fd8 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x1dc77ba2 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x1de835dd folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1dfcc64b blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x1e01412f acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e17754b efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x1e17ef97 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1e3bc77c xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x1e424d61 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x1e4e98c0 acpi_dev_filter_resource_type +EXPORT_SYMBOL_GPL vmlinux 0x1e53bbb9 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e5a348c i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1e5a5f22 sn_partition_id +EXPORT_SYMBOL_GPL vmlinux 0x1e607aa1 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e886a72 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e88af6b nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e912415 uv_bios_get_heapsize +EXPORT_SYMBOL_GPL vmlinux 0x1e9bc719 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1e9d9200 __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x1ea082ec wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1ea1bffe gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x1eab9afc sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebdf014 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec2bff7 hv_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x1ee11655 devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0x1ee7e575 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1ef20793 stop_core_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x1f23ff10 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x1f277780 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x1f2df2be eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x1f2f2c19 crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f4006e3 __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f587631 spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x1f5ece97 cond_wakeup_cpu0 +EXPORT_SYMBOL_GPL vmlinux 0x1f6a5c1f iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x1f7116d1 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x1f771f57 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f895fb8 vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x1f8b262f __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fb2085e __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x1fb5f277 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x1fcd5be3 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x1fd4898b fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1fe7e227 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x1ff728eb kick_process +EXPORT_SYMBOL_GPL vmlinux 0x1ff731c2 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x1ffa47bd usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x20069e38 sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x200feceb mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x20112fc4 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x20206016 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x202d4ed6 nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x2037b6bf crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0x2046198b rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x204f2c5c gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x205b9f11 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x2071376a ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x20842342 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x20886016 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x20899467 hv_stimer0_isr +EXPORT_SYMBOL_GPL vmlinux 0x208a23ed ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x20978fb9 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x2098aa2a __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x20b579b7 vfio_pci_core_close_device +EXPORT_SYMBOL_GPL vmlinux 0x20d34a8f bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x20d612a7 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x20ec9516 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x20f846bb open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0x20fc44ac serdev_acpi_get_uart_resource +EXPORT_SYMBOL_GPL vmlinux 0x21278a67 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x214cc4c9 devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2166416c tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x216b36c0 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x216bf830 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x2175270c crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x2176e42a hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x217a074f pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x21845833 clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x21881db4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x2192ec04 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x219af55e xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21ddfd77 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x21e60452 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x21e9d691 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x21f18270 kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0x21f678f2 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x21f7b751 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x21fa45c7 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x2209a705 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x220e6d28 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x221eab6d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x22214634 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x223e4c49 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x2264bba6 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0x226e7575 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x226e7fb5 fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x226f871f iopf_queue_flush_dev +EXPORT_SYMBOL_GPL vmlinux 0x2276dd95 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x22833793 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x228f0a8b bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0x2293fad7 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x22a73018 skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22bfba46 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22ec5205 cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x22f31abb add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x230c4267 fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x23118328 __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x231a44d8 dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0x23245ab9 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x23280bb9 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x232a49b6 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2338570d vfio_register_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x233b19ed __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x234213f0 regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x23461311 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x2363b329 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x2371575c md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x2372a3bc transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2386c0ea __SCT__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x23adecfa gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x23b39c25 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x23b4e0d7 clear_page_rep +EXPORT_SYMBOL_GPL vmlinux 0x23bbc57e kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x23c009f0 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x23e19f87 __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x240170de __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x2410c338 x86_virt_spec_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x24331410 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x24413343 erst_read_record +EXPORT_SYMBOL_GPL vmlinux 0x2464da17 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x2469810f __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2469a4cb dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x247056c7 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x24709b2f trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x2484e789 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2489d3cd __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x248e1473 kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x24a735c6 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x24abc127 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24bb8a8d nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x24bdf54a bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x24cad7ad ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +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 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2502ba97 usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x2507ad25 iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x251b755f vfio_register_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x251f23f5 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x252b31be genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x25301bc6 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x2533e084 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x2536ad06 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x2539e563 device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x255febfd umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x2563b7a4 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x256e9f8e tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x2580b7d4 __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x259ff4ee md_stop +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25c38b72 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x25d2d538 synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x25d43dea vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x25d69b30 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x25da4785 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0x25e21989 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x25e5a039 irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x25ef1551 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x25f02c87 xen_p2m_addr +EXPORT_SYMBOL_GPL vmlinux 0x261796e2 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0x262a7063 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x2636f74c kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x26401330 __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2648ed94 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x264b8bb9 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26536c2d reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x26567dd3 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x265b6e29 hyperv_flush_guest_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x26657c3b blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x2665b666 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x26669fb3 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2670c28e __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x267357b0 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x26779ebe devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x267fef80 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x26848166 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x26934a6c tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x26956328 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x26a24a52 component_del +EXPORT_SYMBOL_GPL vmlinux 0x26a85f09 __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x26a93eb2 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26ba92d1 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26cda94f e820__mapped_raw_any +EXPORT_SYMBOL_GPL vmlinux 0x26d81215 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x26e60f45 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26face3f __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x2714e7b3 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2718e06c device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2726b3d0 tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x273aab74 xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0x273aff5c __SCT__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x273e1002 fpu_sync_guest_vmexit_xfd_state +EXPORT_SYMBOL_GPL vmlinux 0x273fc6af iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x274b2a82 iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x274b6246 regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x276013dc ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x2763ba9c rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x2772153e ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x2773c485 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x277c8b1b icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0x27918c60 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x279abec0 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x27ab7314 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x27cb4c82 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x27d10f5e dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x27d53798 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x27e2bfcd iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x27eea003 fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f96575 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x27fce782 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x2800222e devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x2817f7fd cppc_get_desired_perf +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x282f60b6 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x28310bcd kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x284931a3 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x286198d2 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x2867879f cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x286cea86 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x28730b0d devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x2873cfb6 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x28769922 gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x287702c2 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x287e5136 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28a5bab1 devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x28afbb08 cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x28badd81 devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x28be0cef misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0x28d582c6 dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x28e3f60a iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x28e64c64 xen_has_pv_and_legacy_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0x290191fa pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x290297d3 ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x291c521e balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0x292e8707 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x29366b61 register_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x2936d68f apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x29514689 __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x2951a872 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x297dda08 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x29c9e980 clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x29d483c8 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x29d56dbe blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x29ea1570 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x2a078c3b __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x2a0faa06 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x2a25b8ba regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x2a2aea17 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2a3249d6 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x2a39d666 bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a5c26dd perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x2a5ea9ef rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a5f0cf9 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a716f6d regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2a88e92f auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2aa241f3 ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x2aadad1a efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x2ade1f46 __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x2aed3473 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x2af737cc sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x2afe7aed dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x2aff68f9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x2affdc7a acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x2b0fe000 gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x2b16bf4b serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2b2bd4f6 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x2b392bb9 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x2b3acc3b __SCT__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x2b3e3a09 nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b621031 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2b62a202 devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x2b67b6b7 mds_idle_clear +EXPORT_SYMBOL_GPL vmlinux 0x2b68cee1 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x2b6d960d synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x2b703ec0 devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x2b763d15 devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x2b76646e pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x2b7cf8ff wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2b84c246 tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0x2b952517 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x2b9997fb atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x2bc8f698 debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2be68d4e skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x2bf7504a iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x2c050a64 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x2c0648a3 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x2c08b889 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x2c1dd434 trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x2c2007f9 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2e09e6 vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x2c2f5a09 x86_family +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c356eca acpi_subsys_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x2c3e4247 of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x2c40b0c5 dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0x2c5bec61 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x2c5fe490 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x2c61bb09 uv_bios_get_pci_topology +EXPORT_SYMBOL_GPL vmlinux 0x2c635527 arch_invalidate_pmem +EXPORT_SYMBOL_GPL vmlinux 0x2c65a4db vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c723a4e __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2ca89fe7 snp_issue_guest_request +EXPORT_SYMBOL_GPL vmlinux 0x2cac4aca ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x2cc6726a pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0x2cc9d064 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x2cfbb2b5 __SCT__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x2d0684a9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2d17e2ff acpi_driver_match_device +EXPORT_SYMBOL_GPL vmlinux 0x2d18253e tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1e61c2 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d393f48 intel_soc_pmic_exec_mipi_pmic_seq_element +EXPORT_SYMBOL_GPL vmlinux 0x2d397b68 acpi_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d42e746 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x2d44be3b __SCT__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2d48ce98 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x2d52a287 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d6aa0f0 arch_apei_enable_cmcff +EXPORT_SYMBOL_GPL vmlinux 0x2d6f9978 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x2d77ea8e devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x2d7e6712 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2d82b10f usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x2d89b1ad __SCT__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x2d8a2309 irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0x2d98d801 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x2d9d5126 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x2db45aab tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x2db608ec usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x2db7a5a0 xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0x2dc6777f genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2de49a0f find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x2de8eb5f usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e02cc6a io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x2e08226d badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x2e0c0100 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x2e156b15 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x2e1bcff2 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2b93ff add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0x2e2df7f4 irq_remapping_cap +EXPORT_SYMBOL_GPL vmlinux 0x2e37a09a tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0x2e6eb158 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x2e7a17d4 vmap_pfn +EXPORT_SYMBOL_GPL vmlinux 0x2e7eb35a ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x2e812f0e scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x2e962837 perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x2e98cd85 proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x2e9ec24d free_iova +EXPORT_SYMBOL_GPL vmlinux 0x2ea3d6c4 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x2ea5240e fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x2eae86e3 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2eda4807 is_uv_hubbed +EXPORT_SYMBOL_GPL vmlinux 0x2edbaec8 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x2ee7c52b btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x2ef3142e do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x2f095bf4 devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x2f0d2030 irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1414a8 virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2f482d04 device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f59fdbe sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2f5df808 ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f71dc3a acpi_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x2f804403 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x2f8f54a4 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x2f90ea64 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x2f932181 devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x2f990157 fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x2f9ef5e5 pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x2fa23484 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x2fbb7f74 anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fd6c162 fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x2fe414ed debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x2fea1cfd edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x2ffd111c pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x300663f0 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x30181cd6 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x302eed95 dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x3033f68c fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x305574fc device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x305fc8cf devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3064bef8 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x3068406c cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x3079bc73 gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0x307f262c ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x30800b45 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x3084833d bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x3087bc64 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x30a8112d pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0x30aedda2 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x30b32580 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x30b9dd71 fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x30cf804f slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x30dd0897 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x30e0dbfe badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0x30e1ec25 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x30ee68fa irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x30eee93b tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x30ff291f pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x31128b8e hv_remove_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0x311c6da4 put_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312a0364 devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x3132331e skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x3135e9fa fpu_copy_guest_fpstate_to_uabi +EXPORT_SYMBOL_GPL vmlinux 0x3153816e devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x31592658 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x3165daa3 arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x316d47c1 dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0x31706316 __SCT__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x31754d68 dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x317557bc sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x31839ad3 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x3187ddb5 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0x318835ae irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x318a9a77 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x318f4122 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x31951b48 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x319835f0 lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x3198bd55 __SCT__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x319d25ce iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x31a23ac7 blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x31a865d8 crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31b90c45 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x31bf17e6 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d34278 xas_load +EXPORT_SYMBOL_GPL vmlinux 0x31dca4d8 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x31de30df vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x31e1cc66 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x31fecf40 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x32493f07 scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x32560660 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x325e5cbb screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x326b836f posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x326cefe5 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0x3278416a xen_xlate_unmap_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0x327a2687 bind_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x3286b46b get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x3288b93b __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x328b1d7b sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x328e3354 __memcpy_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x32a3434e pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0x32a35ee2 pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32bba384 badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x32bc0fcf preempt_notifier_dec +EXPORT_SYMBOL_GPL vmlinux 0x32c109ee rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32cd46e4 crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x32ce8971 __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x32df33e7 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x32e2b75f intel_pinctrl_probe_by_uid +EXPORT_SYMBOL_GPL vmlinux 0x32e3b076 mxcsr_feature_mask +EXPORT_SYMBOL_GPL vmlinux 0x32e47447 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0x32e4d1e0 sgx_virt_ecreate +EXPORT_SYMBOL_GPL vmlinux 0x32ec4737 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x33099019 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x331c36ca i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0x3321e8ff __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x3337baa6 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x3341af14 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3348f259 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x335321a9 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x3362b03c xen_p2m_size +EXPORT_SYMBOL_GPL vmlinux 0x339404b3 irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x33a42414 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x33ac443d __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x33b9bd9e regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x33bf4443 acpi_quirk_skip_acpi_ac_and_battery +EXPORT_SYMBOL_GPL vmlinux 0x33d479be mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x33e5be20 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x33f0fdaa fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x33fb8461 __unwind_start +EXPORT_SYMBOL_GPL vmlinux 0x34213837 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x342bf0e0 phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34331f04 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3437d61e dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x3444ea8a xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x344a2c84 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x3466ce63 x86_msi_msg_get_destid +EXPORT_SYMBOL_GPL vmlinux 0x3476ac5b list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x347dcb7c gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x347f8a9a mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x3486bccb get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x348a9eca driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0x34c5b3e3 folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x34d242dc evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x34db2412 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x34e39092 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x34eab46d bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x350ebac9 blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x351ce65f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3522e172 __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x35269b5e rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3535eb5b cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x353a39d6 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x353b6888 nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x353d9ad9 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x353e8d30 handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x3557ae02 device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x355bc89a klist_next +EXPORT_SYMBOL_GPL vmlinux 0x35653997 i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x356d09a1 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3574a7f9 msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0x357eb1d7 crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x358435ac ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35911ba1 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x3595debe powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x359806d2 cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x35b0f4c6 __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x35b6644b __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x35ba3e36 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x35d3dc46 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x35d78afc __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x35eb97c2 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x35ef7543 serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x3604a16e sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x36173c1d phys_to_target_node +EXPORT_SYMBOL_GPL vmlinux 0x3618302c nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x361d1551 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x3623ddf7 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x362aa4f2 icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0x362bb183 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x364768ef xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x364fbeed devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36ac17ab alloc_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x370588b6 dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x370ec78d virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x37169f79 cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x371ffb81 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x372e5edc crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0x372fb81a sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x3750d770 erst_read +EXPORT_SYMBOL_GPL vmlinux 0x37589884 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x376faf2b kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x378c7b92 spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x37914025 xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x37a2fa11 dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x37b9ba20 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x37c0cf4d pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x37c2ed56 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x37cc1291 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x37e58937 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x37e85b85 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x37eb6c0b devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3801776b __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x3811d56a mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x3813b7dd sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x3814709d spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x3837f4bd ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x38400e6e i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x38448177 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x384deb6a __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x38507107 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x3866e217 nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x38708e25 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x38722f80 kernel_fpu_end +EXPORT_SYMBOL_GPL vmlinux 0x38724875 devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x388a7c9a phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x38914fb4 sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38b5eae8 blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0x38b6a890 __SCT__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x38b6feaf clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x38c04995 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x38c05585 vfio_pci_core_enable +EXPORT_SYMBOL_GPL vmlinux 0x38c3ff30 freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x38ca4e24 mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x38cef750 misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x38ea9765 intel_pt_validate_hw_cap +EXPORT_SYMBOL_GPL vmlinux 0x38f59b42 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x39061efc security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x39088fb3 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x39097033 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x3913ebe8 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x39393064 devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x39a1bd64 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x39a6b431 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39ba0924 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x39c9d88c xas_find +EXPORT_SYMBOL_GPL vmlinux 0x39cb2abd acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x39ded14f __SCT__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x3a006c22 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x3a0175c7 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x3a021ec0 input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x3a09f8b0 lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x3a1ff8d3 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2873e1 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x3a3232f6 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a411138 register_pernet_device +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 0x3a57f6fb usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x3a5a2c22 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x3a6ac35c __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a771d2c ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x3a7d80f9 xen_max_p2m_pfn +EXPORT_SYMBOL_GPL vmlinux 0x3a8bbb8e trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x3a9216db __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3aba5d00 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x3ac3feba rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad1c01b bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x3adedfb9 devm_memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x3ae727d5 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x3aef0b51 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x3af578f5 hyperv_report_panic +EXPORT_SYMBOL_GPL vmlinux 0x3afc4a8f sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3b06c4af devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x3b23274e gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x3b36235d wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3b4454bc intel_pinctrl_probe_by_hid +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b512620 memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x3b61f3e8 isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3b78b1ca blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x3b7a7163 __static_call_return0 +EXPORT_SYMBOL_GPL vmlinux 0x3b7d1e15 serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x3b907527 regcache_mark_dirty +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 0x3ba72d9b br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x3bb3e336 blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x3bbaa536 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x3bc3568f usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdedcc3 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x3bee6f79 phy_get +EXPORT_SYMBOL_GPL vmlinux 0x3bef0806 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3c0bcca0 dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0x3c0e8050 hyperv_pcpu_input_arg +EXPORT_SYMBOL_GPL vmlinux 0x3c19c61f led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c1f887a __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3c37407e dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x3c591b4b iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x3c5d543a hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x3c66f2e7 gnttab_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c7f3e86 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x3c85ddb0 pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x3c912496 crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x3c913dfb usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cc07be9 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x3cc30059 devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x3cc4b494 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3ce6939c __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x3cf19c6a vfio_mig_get_next_state +EXPORT_SYMBOL_GPL vmlinux 0x3cff5e9d __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x3d0a8094 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3d294bd8 mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0x3d297335 dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3a47df irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d55813c key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x3d6fe6e2 debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x3d84eeb2 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x3d8baf3b zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x3d992a3b blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3da3f544 platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x3da645ea devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3dd41a07 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x3dd9da28 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x3dde4371 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x3de64289 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x3de733c0 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df82d00 mce_log +EXPORT_SYMBOL_GPL vmlinux 0x3e022a3e __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x3e06eaf0 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x3e0b7499 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x3e1b13f4 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x3e289d52 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x3e3088cf device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3e556a2c serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e64d861 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e85fd78 xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x3e876bdb udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x3e90c17f handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x3e964603 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x3ea40edf gnttab_unmap_refs_sync +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ec93255 hv_get_isolation_type +EXPORT_SYMBOL_GPL vmlinux 0x3ed9250b mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x3ee3a25e put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x3ee936d3 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3efd8231 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x3efeacff gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x3f066ac3 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x3f244fe9 __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x3f349337 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x3f3678c9 pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f4c71f8 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x3f535293 iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x3f72d8be dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x3f74ca11 crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x3f76add3 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x3f78bb76 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3f9bfafc __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x3fa213a1 fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x3fae6ab0 hv_vp_index +EXPORT_SYMBOL_GPL vmlinux 0x3fc976fe dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x3fcc182b security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x3fdc744e irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x3fe1f8fc balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x3fe35aea irq_bypass_unregister_consumer +EXPORT_SYMBOL_GPL vmlinux 0x3fe3b715 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3ff01e4b badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x400f7e24 cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x401175ac clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x401f7720 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x4020d591 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x40267068 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x402e78cd blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0x403c5846 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x403eac60 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x40400767 fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x4043757f init_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x4044f2fd pkcs7_get_content_data +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 0x40783915 fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x407af304 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x40800dff __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x40845c73 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x4097a0ba irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x409a5afa extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x40a00d23 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x40a0aafc __flush_tlb_all +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40b0752e usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x40bb5aa9 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x40bd43a3 edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x40cacdbb tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x40cc4204 __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x40d1b14d crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x40d5de6f pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0x40e2e1c1 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x41039777 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x4105c885 __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x41090490 __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x411eb828 __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x412705b1 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x41285a5a raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x4129f5ee kernel_fpu_begin_mask +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x41379d5e mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x414f9751 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x4188243d pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x418873cc irq_bypass_register_producer +EXPORT_SYMBOL_GPL vmlinux 0x4193068b __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0x4193a27b __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x4194c6dc iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x419da510 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x419ef828 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41bce49a ghes_register_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41c6afce kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x41d011a9 fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x41d07fc4 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x41d9eee1 blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x41dca779 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41ed534f fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x420045ba sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x420f3d01 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4222580c uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0x422e578a __SCT__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x423b2882 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x424bdd43 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x425b6000 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x425b8c4c sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x425ee85c nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x4260f54e debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x4261d252 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x426444d0 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x426452a3 acpi_evaluation_failure_warn +EXPORT_SYMBOL_GPL vmlinux 0x426799e7 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x4270ad7c ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x427aa976 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x427bb219 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42b023e0 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x42b21865 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x42bf8fe1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x42cbcf4e virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x432987ec hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x4335bc0d blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x43474f5c rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4348f09b crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x4357074b fpstate_clear_xstate_component +EXPORT_SYMBOL_GPL vmlinux 0x435976c6 devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x435d88e2 pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x4372e78d fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x437dd34a irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x43a9e9cd regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43be41ad __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x43bee916 disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x43d5dbbd __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x43da68fa crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x43ea5409 __devm_intel_scu_ipc_register +EXPORT_SYMBOL_GPL vmlinux 0x43f5fe5e of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x44016986 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x440527e7 hsu_dma_do_irq +EXPORT_SYMBOL_GPL vmlinux 0x4409a88c vfio_unregister_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x441f2768 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x442ce067 simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x44339182 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4436ea87 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x4438e3d0 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x44581262 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x445a1f32 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x4463daca sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x446f7b4c lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x4481ff9a irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4498bed8 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x449b202f pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x449c1f6f phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x449ebed1 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44e0c8a1 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x44e1e9aa balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x44f2dc1c acpi_quirk_skip_serdev_enumeration +EXPORT_SYMBOL_GPL vmlinux 0x450110e8 perf_assign_events +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x450a6502 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x451b2bd7 call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x4531624f usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x4531ab62 copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x4539bd20 __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x454fee96 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x45652551 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4577c1f4 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x457ce789 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x458e30d0 devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x459e6151 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x45a15b29 register_fprobe +EXPORT_SYMBOL_GPL vmlinux 0x45a25ee5 locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x45af48b6 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x45bdba78 dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d1dae0 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x45dc0969 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x45e3e1a4 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x45fcb1d8 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46030074 __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x46047827 __SCT__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x46098209 icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x460cb241 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x461185be pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x461676a0 policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x4620c0d0 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x462bc315 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x464e1aee mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x464ef4f5 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x4660bb1c vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x4670d00b acpi_storage_d3 +EXPORT_SYMBOL_GPL vmlinux 0x467f313f device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x4684365a devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x468cc183 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x46a4b118 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x46a6c9ef hv_get_tsc_page +EXPORT_SYMBOL_GPL vmlinux 0x46ae8639 dax_layout_busy_page_range +EXPORT_SYMBOL_GPL vmlinux 0x46b6d2d0 udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x46c16eb6 genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x46c5be22 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x46cfdd61 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x46ee1d18 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x46f11ef3 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x46f99210 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x46fa8522 nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4718b51e mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x4719091e tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x471d3be9 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x471e3406 debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x472168a8 dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4725f3fa usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x47346176 crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x473d743f ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x47499c59 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x474c0df5 vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x475e1164 register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x4788f068 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x478b5ca5 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4791cb91 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0x479c2b1a __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47c2469a xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x47d0eea2 acpi_lpat_temp_to_raw +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47df7cc0 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x47e50499 vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x47ebd663 ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0x47f71673 phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x47ff6817 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4802d3c2 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x4803964b dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x4807a4af netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4821be7c rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x48234696 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x48565917 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x48599a67 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4864b33f led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x486c1491 regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0x486dedc3 ghes_unregister_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4878604d __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x487bef2b is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x4896e859 skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x489761c2 events_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48a949f5 dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x48c47b0f __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x48dbbefe sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x4905df5a bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x4915ac29 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x4916b467 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x491e97c5 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x49351f72 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node +EXPORT_SYMBOL_GPL vmlinux 0x495a4221 __SCT__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x4966b834 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x496c3751 rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x4977c966 bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x498299fe usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x49870ba5 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x49883fd9 gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x498b59c4 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a4b68e bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x49b9b4e2 __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x49c1c763 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x49cb26ed hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49dabb92 xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x49e61d05 _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49ed9806 udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x4a031347 fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x4a0d29f7 fpu_free_guest_fpstate +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a2f31ec crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x4a420d09 acpi_bus_detach_private_data +EXPORT_SYMBOL_GPL vmlinux 0x4a454c0e posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x4a725512 __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x4a74d165 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x4a7e17d0 phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x4a947ad6 pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x4a948183 xfrm_register_translator +EXPORT_SYMBOL_GPL vmlinux 0x4a95383b mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x4ab83d78 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x4ac48463 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x4aea86ef dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x4af64d7b pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x4afa0231 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x4afa6a26 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x4b1d52de devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x4b2904a4 __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x4b4d6ddf xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b5485f5 skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x4b555583 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x4b56ce05 xenmem_reservation_increase +EXPORT_SYMBOL_GPL vmlinux 0x4b58cd37 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x4b59da8d devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x4b5acf74 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x4b702da4 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x4b762828 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x4b842e58 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x4b931968 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x4bc8727f xen_balloon_init +EXPORT_SYMBOL_GPL vmlinux 0x4bcfaa34 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4bdff47a __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x4be4c851 pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x4bfd398d hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x4c1d5c34 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x4c1dc12e usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4c290ebc page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x4c2c0ea7 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0x4c364b97 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x4c49f1de hv_clock_per_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c7059c8 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x4c762b5c x86_stepping +EXPORT_SYMBOL_GPL vmlinux 0x4c7a4a4e xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x4c8adfe1 hv_root_partition +EXPORT_SYMBOL_GPL vmlinux 0x4c9477fe usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0x4c9e10c9 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL vmlinux 0x4caee66f clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cc74663 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4cd47a5a elv_register +EXPORT_SYMBOL_GPL vmlinux 0x4cd65682 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x4cde8411 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x4ce42d89 dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x4ceda22a serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4cefa4f7 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL vmlinux 0x4cf7dfa4 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d06edd5 percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x4d07968a regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x4d142d49 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x4d1b0f61 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x4d2d7e89 tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4d3b5bc9 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x4d3cbe84 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d57be71 fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x4d616de5 usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d79863c fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x4d79ef23 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x4d80e702 dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x4d8ca9e0 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x4d9031dd intel_cpu_collect_info +EXPORT_SYMBOL_GPL vmlinux 0x4da96bc1 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4db9b8cf usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df1f8db virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e044d40 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4e0b3467 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x4e124c72 switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x4e144a54 __SCT__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x4e17c613 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4e3009d6 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x4e34cbf6 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x4e364595 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x4e3941dd iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4e3b1135 sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0x4e4317f2 bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x4e4c37e2 freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e75972d gnttab_page_cache_put +EXPORT_SYMBOL_GPL vmlinux 0x4e852b13 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x4e9847d5 clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x4e9a9470 list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4ec81d73 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x4ece3615 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4edc4d16 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f0c5726 iopf_queue_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x4f12d4d7 crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x4f2593f0 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x4f25a27d __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x4f2c996d kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x4f3345c5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x4f4338df devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f4cc4d1 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4f5bd37a pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f675139 skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f8546af cpuidle_poll_state_init +EXPORT_SYMBOL_GPL vmlinux 0x4f90eaca nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0x4f9d8f16 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x4fa63757 xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4fae9d3a report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x4fb64f53 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x4fc7a6ee pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x4fc7e031 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x4fd15429 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdf2bb1 misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fed90a2 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x500c768c apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x5016039e dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x501a8b95 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x50266c7a replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x50303738 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x503ee8ad __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x5040ec0c mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x505c7856 iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x506554cb __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x507876ad sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5086d119 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x508a0d15 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x508a5fe3 led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x508c2c9c __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50954f72 rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0x50956faa __xenmem_reservation_va_mapping_update +EXPORT_SYMBOL_GPL vmlinux 0x509d50a9 efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x509d5f55 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x50a772a4 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x50b03f5d l1tf_vmx_mitigation +EXPORT_SYMBOL_GPL vmlinux 0x50b317c4 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x50b42ba1 entry_ibpb +EXPORT_SYMBOL_GPL vmlinux 0x50cb9c63 led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50df94f5 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f1a936 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fcbc2b bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x5101bd1c dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x510c6399 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x512293d7 __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x5152bd85 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x515a503f inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x515b74e2 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x51661a71 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x51804887 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5187aa2d class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51c3d038 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x51d13875 nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x51fd6f04 blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0x51fdc78a of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x520ec036 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x521a5a06 gnttab_unmap_refs_async +EXPORT_SYMBOL_GPL vmlinux 0x522413e4 cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x523916c4 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x523a455b splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x52431348 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x52434174 nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x525cbaa2 msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x525d0aa3 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x527a2325 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x529851e6 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x52a1fc10 nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52cc0844 __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x52d159dc netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52dc81ca mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x52dec06a get_device +EXPORT_SYMBOL_GPL vmlinux 0x52e5632a trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x52f5ccbc iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x52faea27 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x52ff7dca regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x5310a11c regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x53172ec7 firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x53232069 devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x532b90b5 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x532def30 ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x534327a8 _copy_mc_to_iter +EXPORT_SYMBOL_GPL vmlinux 0x534ff54d rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x535aad5d thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x536e3715 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x538f14b8 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5393323c crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x5395edad usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a2752e __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x53a7d7dd clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0x53abe82b ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x53c089f5 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x53cefd2d alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x53d26e84 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x53d5179b iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x53d5a58a phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53ec0e67 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x53fd99db regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x54039973 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x54127b70 __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5413050c serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x5432139e pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x5435454c divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x544a6624 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x54526e94 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x54651f9b rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x546c9d4d md_start +EXPORT_SYMBOL_GPL vmlinux 0x546cac68 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x54902715 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x5497156c thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x54dd19e3 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x54dfb40f irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x54f4410f tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x54f946ce cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x54fc4e86 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x54fc61df securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x55093f77 cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x550acde1 __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x550ce709 pat_enabled +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x5516e260 acpi_device_update_power +EXPORT_SYMBOL_GPL vmlinux 0x55197dfb blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x552f6a48 __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x55354add sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55462474 fpu_copy_uabi_to_guest_fpstate +EXPORT_SYMBOL_GPL vmlinux 0x554cc4ea pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x554dfec1 samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x55582557 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x556c2804 __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55807d55 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x558491c9 serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x558f1c1a __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x55b62df8 dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55cd9d73 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x55d49cb2 iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0x55e871e3 vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55f3b459 bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x55f60159 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x55faf675 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x55fc581a skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +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 0x563ecb24 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5650c6f4 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x56601f71 rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x567575bd cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x567f66ba pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x568ac86c dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x5690c59b crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0x569167d4 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x56948896 spec_ctrl_current +EXPORT_SYMBOL_GPL vmlinux 0x56988aa4 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x569a41f0 acpi_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x569d9ae4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x569e10d9 rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x56d0ab0b mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x56d1b22e tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x56d8ed26 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x56fba774 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x56fe945b vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0x570bc6cf fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x5731597c dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x57460308 clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x574609c5 apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0x575f8578 page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0x57719632 gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x5772579d unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5784c5cb tty_buffer_unlock_exclusive +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 0x57a06cb0 vmf_insert_pfn_pud_prot +EXPORT_SYMBOL_GPL vmlinux 0x57bc7758 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x57d0828a pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57ecfb21 led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x57ee023a __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x58276f93 cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0x582b104d devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x584eb006 gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x585cebc6 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x586bfc8a alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x587ede89 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x58855412 devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x5891a7d5 extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0x58926cd1 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x58aa6397 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x58af980b fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x58b8f984 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x58d6311d trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58dc4958 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58e16258 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x58ed0e01 proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x58ef6549 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x58f75fb2 devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x59029cce task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x590d8343 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x591b753f ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x5927de60 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x59356ac3 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x593d716a ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5945f126 __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x59486f09 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x59495ced devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0x597656b6 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x597d88da iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x59874788 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x5997478f pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x59a06699 devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x59a7341e crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59ba037a proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x59be2701 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59da6c8a cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x59e778db devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x59ebe6d6 klp_get_state +EXPORT_SYMBOL_GPL vmlinux 0x59f0fe72 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x59f8b7c6 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0x5a02211e regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5a141142 disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x5a191656 usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a42c937 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a5358b0 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x5a5a291f sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x5a628c5b pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x5a686af5 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x5a69f991 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a785855 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8a1537 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x5a8bf2ba mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x5a8dc98a sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x5a9236f7 addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x5aa091b5 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5aa70984 acpi_reduced_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ad98ec5 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5aeb13ce vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x5af8deb3 devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5b112e0e pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0x5b1fdc78 sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b334df2 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x5b3546ca transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b430b18 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x5b46f986 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5b47c31b __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5b4b69d5 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x5b52c911 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x5b6157f4 spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x5b670427 pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x5b692883 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b7ed7e1 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x5b8bd05e ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x5b8cb816 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x5b93283d of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x5b968450 __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x5b9c9a6b scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x5ba2d64f regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x5ba4f8e6 l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x5ba681f2 led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5bad3a81 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5bb78de4 hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x5bbaefb2 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd3ea71 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bdd95ad synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x5be0357e dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5c070f62 cper_mem_err_status_str +EXPORT_SYMBOL_GPL vmlinux 0x5c0c165e __SCT__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x5c0eaf31 acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5c17258b nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x5c1f46a2 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x5c1f7946 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x5c25908b usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c2fd441 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x5c309e65 hibernate_quiet_exec +EXPORT_SYMBOL_GPL vmlinux 0x5c5875c8 gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c6b52f4 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x5c6de681 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x5c910ac9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x5c95dc6f iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x5ca7b24a regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5cab9945 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5cb0a1c7 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x5cc7edcd thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x5cd17fc6 ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cf607d9 dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x5d17148b apei_write +EXPORT_SYMBOL_GPL vmlinux 0x5d1a4812 blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x5d25e79e ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5d2aa5fb rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d473748 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x5d483f04 dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x5d4a0a6c dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x5d69ab74 devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x5d759f93 create_signature +EXPORT_SYMBOL_GPL vmlinux 0x5d82cbb4 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d85992d ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x5d8b0b30 gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x5d9317d7 uv_teardown_irq +EXPORT_SYMBOL_GPL vmlinux 0x5d9b961e eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da2dea6 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5dbcfa4f boot_cpu_physical_apicid +EXPORT_SYMBOL_GPL vmlinux 0x5dbf51cd device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x5dd15017 task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x5dd39aae cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x5dd4fdb6 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x5de88353 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x5dfc2ef6 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x5e065787 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e0c90cb devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e109e88 filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5e17e1cb dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x5e1889f2 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5e27ba33 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5e354085 spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x5e38503e fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e5ff63a bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x5e63e70c __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x5e68e530 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x5e6a2421 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x5e6e3ce2 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x5e7065a8 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb2aa36 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x5eb35972 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x5eb43af3 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x5ec3a5c4 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x5ec58898 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x5ed19d40 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x5eda97e5 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x5ee033f0 xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5ee2aa12 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x5ee4171d acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x5eecdc02 __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x5eeeabb2 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5f051e82 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x5f05afd6 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x5f14fe3f find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x5f1f8735 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f23e9db rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f2fcc83 ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x5f435924 gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x5f49b165 of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x5f540cd3 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f748b29 gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x5f8a9f10 device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x5f8bc4d7 irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5fa17bd0 sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fb76fd4 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x5fb97aed cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x5fba1e7a icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x5fc5e598 pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x5fcf6ae2 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x5fd5b5aa ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x5fde63c7 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x5fdf7b32 smca_get_bank_type +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x5feaa7a9 dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x5ff54fd9 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x600608a3 acpi_pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x6006ab3b crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6014459b dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x603d0d51 acpi_os_map_iomem +EXPORT_SYMBOL_GPL vmlinux 0x6045c9b3 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x605c9a20 __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x60625bed balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x6065375f __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x60653fdf gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x606fd75b __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x6070fd0a rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x60766f99 serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x6078bf31 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x60890253 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x608d25d6 __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0x608e457f irq_create_mapping_affinity +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 0x60a7c2bb pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60c3ad11 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x60c7a822 __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60f99e1b cppc_set_perf +EXPORT_SYMBOL_GPL vmlinux 0x610a20a1 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x6116403c dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x611cfa85 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x61232481 bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x613247cf thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x613f7797 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x61429530 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x614a27ff tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x615d3447 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x616bec3f iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x6175e1ad __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x6186f8d1 pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x61901594 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619d2eca acpi_gpio_get_irq_resource +EXPORT_SYMBOL_GPL vmlinux 0x61a382f8 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x61b443f8 x86_spec_ctrl_current +EXPORT_SYMBOL_GPL vmlinux 0x61b6e9fe mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x61c743b0 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x61c78a6e tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x61d6a754 tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x61dfc5ba devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x61ff17ee rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x62055839 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x622a23bb power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x622ae5fe irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x624d9f23 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6251521c regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6257e227 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x62601a48 tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x626a223e intel_pinctrl_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x6280b4e4 skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x62840c0b inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x62899450 dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x628b86a5 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x6292a6c5 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x6293c1cb usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x62a42688 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62bcda8e usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x62d0482d sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x62d8afc9 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x62dfe465 irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x62e11f01 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x62f761e7 skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x63026490 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6307f43e xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x630d013a tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x63197685 s2idle_wake +EXPORT_SYMBOL_GPL vmlinux 0x633222d8 nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0x63348ba9 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x633ae302 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x6340434e x86_model +EXPORT_SYMBOL_GPL vmlinux 0x636ce2ba devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x637624e1 devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x637af990 pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x637fa335 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x63839734 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x638a9653 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x638aff11 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x638d6691 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x639697f9 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x6396d412 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x639c11aa blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0x63a984aa devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x63acd057 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63ca47f2 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x63db4bb7 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63ea80b3 cper_mem_err_type_str +EXPORT_SYMBOL_GPL vmlinux 0x63f68c54 rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x63f78e87 spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x63ff3673 hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x64089aa4 usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0x6409b766 dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x64129234 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x641f77b3 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x64218ad5 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x643b742d led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x6444cd80 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x645620c0 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x645c6733 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x6469fa63 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0x647499c1 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x647a53a9 pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0x64815ded gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0x648dfc82 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x64a31445 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x64a62e11 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0x64bfc235 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64ec11ba vfio_pci_core_disable +EXPORT_SYMBOL_GPL vmlinux 0x64f36620 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x64f8cb7b fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x64fee719 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6502d9c2 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x6516cced get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x656a12ce __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x65704d22 hv_stimer_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x65930ac6 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x65a814ca xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x65a8d81a __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x65acf90c sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x65cb81df serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d270fa regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x65de1186 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0x660afaa3 pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x660b4695 __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x663568ed __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663725c2 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x663d41b9 extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x66517898 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x66804d6c usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66849e52 vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0x66b26b2b clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x66b467be platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66cbcbc1 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x66ccd522 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x66d670b3 blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66df191a regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x66e38f89 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x66f87bc1 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x66fa2b8f devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x672b96b2 fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x672e2ad0 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0x672f1f7d clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x67448b82 iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x67467c20 nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x674fb95a vfio_file_iommu_group +EXPORT_SYMBOL_GPL vmlinux 0x6759bd00 __SCT__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x677ff88c xas_store +EXPORT_SYMBOL_GPL vmlinux 0x6787e098 dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x6790ebd3 mce_is_memory_error +EXPORT_SYMBOL_GPL vmlinux 0x6791faea attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a4a2a8 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x67a83e63 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x67d314c6 __tracepoint_extlog_mem_event +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67dcd76b uv_setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x67ebb58f pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x67f05acf pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x67f58f8b __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x67f89a78 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x6815afed clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x681afc18 split_page +EXPORT_SYMBOL_GPL vmlinux 0x6825cb2b node_to_amd_nb +EXPORT_SYMBOL_GPL vmlinux 0x682a9a56 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x683a8108 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x6844dcd1 devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x68460527 blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x6849b54c vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x686197d7 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x686f86e5 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x687513cb fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x687a7452 fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0x687ff1d6 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x6895f24f tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x68a2ff51 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x68ab5061 __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x68b1a6de clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x68c3add4 led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0x68d0bba2 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x68d9cc67 __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x68dc9a86 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x68dfb6c6 icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0x68ebef81 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x690e58ed extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x6918a646 acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6929218a debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x69292b00 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0x69308a98 virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x693508ef __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x694a728a fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x69552b4b set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x696340a5 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x696d7e0b l1tf_mitigation +EXPORT_SYMBOL_GPL vmlinux 0x6979c616 iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697c5d50 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x6998a798 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x699ae2c5 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x69c1c215 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d7b3d0 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x69db445f pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x69dbc43e clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69e83605 mc146818_get_time +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a099080 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x6a0dc44a gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x6a14d3af unregister_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a1fbdc2 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x6a36ff74 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x6a3b8197 devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x6a421062 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x6a460dc5 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x6a4f0294 syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0x6a4f623b mmu_notifier_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x6a5264be ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x6a535447 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x6a53721c find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aa2a877 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x6aaaf816 acpi_fetch_acpi_dev +EXPORT_SYMBOL_GPL vmlinux 0x6aad9152 xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x6ab09f07 regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6ab166d5 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6acbdc25 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x6ad226e3 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x6adf1fc5 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x6af5c5dd __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x6b0dc565 xen_set_irq_priority +EXPORT_SYMBOL_GPL vmlinux 0x6b0eaa18 hv_ghcb_msr_read +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x6b35a16b intel_scu_ipc_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b3ae022 acpi_os_unmap_iomem +EXPORT_SYMBOL_GPL vmlinux 0x6b3ddf16 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b46497f skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x6b5b6256 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6b7a4335 hyperv_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6b7bf09f clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b902018 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0x6b90f6b0 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x6b9551f0 devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x6ba36c6a hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bb7728f acpi_bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6bbd8324 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x6bccd9b8 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6bdef35c acpi_ec_mark_gpe_for_wake +EXPORT_SYMBOL_GPL vmlinux 0x6be3a96b hv_remove_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x6bf2e58c phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x6c071cfc apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6c169739 of_css +EXPORT_SYMBOL_GPL vmlinux 0x6c205008 mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x6c2d3b31 phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL_GPL vmlinux 0x6c3899fa dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x6c3e93b3 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6c48272b irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c4e1b24 i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0x6c5888e9 fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c647f9e dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c7b435f mc146818_does_rtc_work +EXPORT_SYMBOL_GPL vmlinux 0x6c8a3833 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c8ebe09 mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cb678ba pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x6cc3c004 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x6cca28e2 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x6cccc616 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6ce6d791 irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x6ceb4088 component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x6cf076ca mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6cf09fbf dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x6cfabcdc sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x6d04891d inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x6d058df4 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d155f91 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x6d15ab26 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x6d1c7b6e follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x6d2092e4 xen_remap_pfn +EXPORT_SYMBOL_GPL vmlinux 0x6d226795 unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x6d2e899d mce_usable_address +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3520a0 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x6d367be5 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x6d56a2cd wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x6d597ca8 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x6d5d7e82 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x6d6bc8a7 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x6d6bddf7 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d702bb8 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x6d72ef5d kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x6d744fad fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7d5d36 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d7ff04b nl_table +EXPORT_SYMBOL_GPL vmlinux 0x6d95ec7f crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x6da200e3 component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x6db65c1a iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dbe4bab wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x6dd28429 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x6dd47928 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6ddb68fa vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x6de08fea sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x6df6061f l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x6e00fcfb modify_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x6e09cdd5 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x6e1b07ae device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x6e24d3e3 cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x6e2fc5f5 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e450b6a wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x6e67d16b __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x6e6d8937 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e7cefcd wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x6e82dbe2 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e8825f6 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ea1834d __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x6eb04f46 register_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec7ba60 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x6ee466d6 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6eea64da fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x6ef0b8fc rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x6ef687ee rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f247bb4 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x6f3eefe9 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x6f4bf58e skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6f57c7a7 device_move +EXPORT_SYMBOL_GPL vmlinux 0x6f583117 pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x6f5ffa95 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x6f6684bb alloc_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x6f69ff62 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f6ba4b6 clocksource_verify_percpu +EXPORT_SYMBOL_GPL vmlinux 0x6f703ecd pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6f73eb23 vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0x6f7e0a5e fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f8cd7fb __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x6f935e35 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6fa7e2e1 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x6fc7bb3b fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fd40609 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x6fdf5197 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6fed58ec skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffab647 crypto_inst_setname +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 0x700d6ab3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x702cd996 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x70478bdf crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x704b7804 hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x7055ab9d fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x70576fee acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0x705d1677 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x70641c11 dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x7070bd9d blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x707a3d1f pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x708734c7 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x70999443 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x70bc0d63 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x70c2c7ea pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x70c370d7 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x70c6d827 mc146818_set_time +EXPORT_SYMBOL_GPL vmlinux 0x70cabc1d strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70cf7ac1 vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0x70d515b3 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x70e3be6a dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x70eacd76 crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x70ee772a xfrm_get_translator +EXPORT_SYMBOL_GPL vmlinux 0x70f6ef4a hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x70fbae4d cppc_allow_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71185e6a fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0x711c4ff4 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x7129a6f4 osc_sb_native_usb4_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x713811bf __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x713d055f iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x715249d4 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x71619c7c spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7167d407 __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x716ad66b of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x7177af67 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7181db30 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a28468 devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x71a502dd sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71b88981 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x71bba374 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x71c059d8 __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x71d57f5e thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x71d91911 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x71dfbc3a debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x71ec25e5 icc_put +EXPORT_SYMBOL_GPL vmlinux 0x71f6912f serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x71f8bf92 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL vmlinux 0x71fa87cc tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x72010bbd crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x72142afa bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x721ff714 pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7226576a gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x7237e950 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x723ea67e usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x726679b5 regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x726818d9 gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x726f04ff fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7287e3c7 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x72ae4d02 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x72d267dc nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x72fcc923 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x730ad8e2 iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x730ee716 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x731183b1 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7327a895 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x732852fe xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0x73311254 auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0x733ec33e __SCT__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x73519886 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x735b38bf ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x735b7dca fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x7361afce find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x7368fd81 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x736af798 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x736bcef8 dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x73714097 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x737b5b8b usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7381287f trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x7386c96e skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x7389d402 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0x738fe32b amd_get_nodes_per_socket +EXPORT_SYMBOL_GPL vmlinux 0x7396643f extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x739cc800 mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a84eba spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73d1d42c md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x73e62a41 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x73e86ead receive_fd +EXPORT_SYMBOL_GPL vmlinux 0x73f5f631 fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x73fc1987 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7417d9ba pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x741e5eb4 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x74263e2a tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x7428575c pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x742872b1 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x74356db2 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x74398626 sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7441bb03 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x7444e1a3 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745607a9 fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x74639b3c fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x7468070b noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x746e2846 security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x74840928 __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x749b7101 devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x74a854cf phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c3be28 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x74c4952d dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x74c7bffa stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x74c829ef thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x74d36933 srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x74e53072 rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x75116923 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x751ab68f kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752b0fa7 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x752de70e __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7539890a spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x75458ece pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x7545b288 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x755101c3 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x75532b7c fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x755852df lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x755bb617 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x756c3715 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x757fdf94 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x75950e80 crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x759922d0 scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x759bfe36 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75a03847 vfio_pci_core_read +EXPORT_SYMBOL_GPL vmlinux 0x75bd0cad __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x75c96e1e xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x75cdec10 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x75e57da2 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75fa4ad6 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x75fe42b4 dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x7608fa76 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x762640ab __SCT__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x7627bbff regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x7640e694 sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x764f292a dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x764ffefa page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x765f8830 __SCT__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x766145de devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7663c323 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7665a95b idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768b90ce __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x768f2783 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x76a6d981 spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x76cde3e3 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x76d680f6 acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x76dc031e asm_exc_nmi_noist +EXPORT_SYMBOL_GPL vmlinux 0x76dce3db hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x76e0b42b dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x76e85b92 gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x76f9e955 devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x771e4eed is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0x77222306 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x77225b06 wwan_port_rx +EXPORT_SYMBOL_GPL vmlinux 0x772696d1 __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x772b0f64 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x7735a1e9 thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x773f2713 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x77522cf6 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x775627d5 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7774b0a5 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x778468d6 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77b639a3 pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x77c0f975 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x77c8d22b dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x77ccdda9 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x77cff084 i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x77d14405 usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0x77d89266 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77ec34ce gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x77f24400 perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x78157a1a clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7824eeff perf_msr_probe +EXPORT_SYMBOL_GPL vmlinux 0x7829277c platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x78312a48 acpi_dev_get_dma_resources +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x7835596d devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x7837644e wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x785fb4b5 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7861ac97 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x7863043d ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x788a9619 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x788d68ac fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x789547eb __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x789ef9bf pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x78a102d0 pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x78a381e8 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x78bab66b irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0x78bbbc9b mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x78c66aaa handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x78c85ef3 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78cda2de vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x78d00890 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0x78d189ae crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x78d89621 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x78ddb76b dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x78df1ec4 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x78e4e84a debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x790be0b9 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x7911d9fe kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x7915cee5 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x791748c8 adxl_decode +EXPORT_SYMBOL_GPL vmlinux 0x7918d817 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x7930ce08 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x7937b21b nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79470a2c TSS_authhmac +EXPORT_SYMBOL_GPL vmlinux 0x7949810c regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x794b7271 orderly_reboot +EXPORT_SYMBOL_GPL vmlinux 0x7967a92d tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7974467a dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x79813015 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x798b7682 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x798f5487 alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x79a4e1c8 acpi_device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x79aef189 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x79bb17f9 dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x79bc842c usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x79c0fd09 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x79c37a53 device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x79d07b7a irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0x79d21841 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x79daf4de __SCT__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79e5120a xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x79e59b40 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79f1aa44 find_iova +EXPORT_SYMBOL_GPL vmlinux 0x79f697e4 lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7a0715c0 __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x7a23d36b uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x7a3a33cf __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x7a40171e l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x7a45620d fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x7a458500 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x7a5211b8 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x7a655f68 acpi_processor_claim_cst_control +EXPORT_SYMBOL_GPL vmlinux 0x7a65bdea of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a9772ce debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x7a98f4b4 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x7a9e072f wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x7a9e4c23 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7a9f532e get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x7ac07b73 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7ac78efb tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7ad2f71e device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7ad52088 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x7ae1453e mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7af05310 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x7af66d46 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7afcb7db __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7b13b505 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b2e0bc0 __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0x7b394f30 fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0x7b420f25 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7b5452b8 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b5c975e __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x7b65350a xenbus_setup_ring +EXPORT_SYMBOL_GPL vmlinux 0x7b6a6311 devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x7b6d9360 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x7b6f9536 acpi_register_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x7b727cd0 __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x7b78028a device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x7b7fb086 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b95498d pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7ba017f2 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bbac1af pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x7bcbd33c inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7bd86836 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7bf636a3 usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7bf65a88 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7c04fdd7 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x7c0c4453 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x7c0e1edb scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0x7c20b6a0 load_direct_gdt +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c3edaa2 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x7c46c075 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7c4b7fec synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x7c5f3711 ioasid_unregister_allocator +EXPORT_SYMBOL_GPL vmlinux 0x7c66cfc8 devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7c6c83be __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7c75e9ec rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x7c8395f1 bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x7c8a559b __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x7c8c9c8b usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7c983a5d dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x7c9a7371 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cab996a init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7cabd27f blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cb4d0c4 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x7cb803de btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7cc1f3eb ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7cd4ef65 devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ceba34a usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x7cf1355f pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x7cfcb4fe vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x7cfdcfcb dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x7d0e1d95 hv_setup_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0x7d18a296 devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x7d1bb1d4 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7d1cd2d7 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x7d357a4b cros_ec_command +EXPORT_SYMBOL_GPL vmlinux 0x7d584d47 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d9753d8 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +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 0x7de8ddc4 mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x7defc870 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x7df6e6c4 __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7df950da debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7e033d12 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x7e2880b1 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7e2d0021 __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7e3417d7 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e3cdb13 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x7e4e2104 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0x7e58fe60 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e622b88 acpi_dev_state_d0 +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e65c129 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x7e6b5729 serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x7e7a47c9 pci_acpi_clear_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x7e7d4a52 serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e8d8619 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x7e943b45 devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x7ea75c24 __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x7eb1c516 devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x7eb359d0 crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ebaa316 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x7ed301b6 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x7ed856ef fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7efb51b7 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f03328d __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x7f09fd18 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x7f1af9ed sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x7f35a299 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x7f5627dc __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x7f5708ee fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7f592b82 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x7f6448e9 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7f6cee89 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f8f6e0e do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x7f9429f5 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x7f9b1879 osc_cpc_flexible_adr_space_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x7fa96509 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x7fafdec9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x7ffd1254 pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x80069562 devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x801022f1 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8014f0d2 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x801cd3b9 __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x802c79ae agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x80731f5b devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x807766ea usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x808a8088 handle_guest_split_lock +EXPORT_SYMBOL_GPL vmlinux 0x808c29fe dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8094b0a6 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x80ae8eb2 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x80b33f90 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x80b45dd1 kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x80b7304d devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80da3326 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x80de0aa2 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x80efc9e9 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x80fb599b pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x810282bb subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x810abb12 acpi_subsys_freeze +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8121e59e __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x81221cad amd_nb_num +EXPORT_SYMBOL_GPL vmlinux 0x812c62c4 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0x813223e1 usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x8133f294 devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x813c6f7b usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x813dddcd blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x8153cdc5 dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x81582aa1 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x816a41ca cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x816e9a67 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x8173414d bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x817ea3a6 set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x8191b1f5 __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x8191e881 intel_pinctrl_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8198d69c usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x819d72cb klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x81a50c2f pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x81b03377 efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x81d04361 icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x81d10485 ioasid_free +EXPORT_SYMBOL_GPL vmlinux 0x81d431a4 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x81fc884c dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x8200c3b7 thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x82018f61 regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x820704fe pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x82092899 badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x820c181b input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x820ebc7a pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8218663f extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x821ec7f1 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x82226c53 pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x822c1bc8 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x823eae06 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x825d368c l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8277765e device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x8278de0a xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x827e61f8 acpi_has_watchdog +EXPORT_SYMBOL_GPL vmlinux 0x82858a50 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x8286da21 inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x82881cf7 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x828e22f4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x829e3f90 __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x82b02994 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e5bbdb usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x82e73997 pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x82f77478 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x82ff4b95 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x831f967b handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x8328673f uv_bios_get_master_nasid +EXPORT_SYMBOL_GPL vmlinux 0x83307d64 __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x8335ca43 __SCT__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x833b3bba usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x8349a895 nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8353dfff acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0x835d717d pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x836a5ece acpi_dev_remove_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x83846f57 pci_msi_prepare +EXPORT_SYMBOL_GPL vmlinux 0x83a176d8 sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x83ab4072 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x83b70d2c edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x83b99c93 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x83ba8f24 elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x83c15f32 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x83c3708a clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x83e049ac devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x83ee7297 ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x83f01731 __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x83f14877 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x83f65f5e metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x841faed6 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x8425b9c3 xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x84265c30 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x842f046d usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x843a0622 dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x844b4947 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x84502a47 blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x8453699c pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x845dbf3b scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x8462cb62 atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x8467b41e tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x84728609 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x847540cc __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x8494b852 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x84a152e3 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x84b268cf sn_coherency_id +EXPORT_SYMBOL_GPL vmlinux 0x84b4c31d ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84dd67b4 cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84e0afab l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x84ef27f5 synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x8506baa8 clk_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x850bb6db devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x850c85ad netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x851e6003 usb_phy_roothub_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x85298b9d __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x85335916 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x85345c3f ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x854160ec devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x85540ebc nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x855b465d vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL vmlinux 0x855fa0ed fpu_update_guest_xfd +EXPORT_SYMBOL_GPL vmlinux 0x856e7690 irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0x85862277 ioasid_find +EXPORT_SYMBOL_GPL vmlinux 0x858812f8 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x858f1999 gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x85935a61 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x859fa720 device_add +EXPORT_SYMBOL_GPL vmlinux 0x85b15444 arch_set_max_freq_ratio +EXPORT_SYMBOL_GPL vmlinux 0x85b690e9 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x85bfc5f9 __SCT__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x85c54b61 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x85c7f98e bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x85cb2c45 xen_has_pv_devices +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e17bf0 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x85ecd87d __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x85eed1be iopf_queue_discard_partial +EXPORT_SYMBOL_GPL vmlinux 0x85f537a8 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x86169f3e amd_smn_write +EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x86204115 umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x86234c54 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x862bb17b linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x863af857 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x86519583 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866a9163 irq_remove_generic_chip +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 0x867b6e9b clean_record_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868972a8 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x868a5880 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x868bab6a iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x868f146c scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x869d8d8b debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x86b06d61 devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x86b13d2a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x86b427ce clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x86b55aba dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x86ba99a0 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x86bdb535 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0x86c43a8c cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x86c97adb __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x86ca3cb4 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x86dda6ef rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x86e33715 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x86e5919a shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f85114 net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x86fc694d platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x8705e166 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x8717205f __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x8727c999 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x872d4f7c __SCT__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x87343ede ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8735ed3d irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x873d3c1f __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x87460e50 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x875cd894 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x875f051c tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x876cffae fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x876dedcc bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x87723f30 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8778b1ac regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x878d2ee1 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x87908767 xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x879c8520 register_fprobe_ips +EXPORT_SYMBOL_GPL vmlinux 0x87a6c6b5 fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x87b1d50c edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x87bed7f2 blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x87c96cf7 iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x87d0f0b9 crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x87d8d8a8 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x87e64181 amd_nb_has_feature +EXPORT_SYMBOL_GPL vmlinux 0x87f34e99 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x88040e28 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x880ad8a6 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x880f60ac irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x8812222d pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x881c29ce devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x8822372d phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x882747b9 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x882aaa50 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x882dc4ef netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x88476f9f devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x884b15d3 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x885a7c11 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x8863a9ef sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x8876940d bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x887aa411 __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x887ed9a0 __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x8886b530 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x888c5be5 irq_bypass_register_consumer +EXPORT_SYMBOL_GPL vmlinux 0x889d3941 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x889d7985 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x889ffdd8 __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x88a4334b vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b3af8a rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x88b76586 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x88c247b5 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x88c86d1b spi_async +EXPORT_SYMBOL_GPL vmlinux 0x88cce6a0 xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x88d45a66 device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x88da1e50 platform_set +EXPORT_SYMBOL_GPL vmlinux 0x88e714c3 switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x88ed50ea platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x89034694 devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0x890f4f97 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x890fa0fa btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x8913bed6 vfio_pci_core_request +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x89234f61 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8924e513 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892f9f04 __SCT__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x8935419f phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x8965b674 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x897ce179 __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x899042c3 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x89912760 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x89912ef8 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x899fa2c9 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x89ae7aa0 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x89b6cb91 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c415c1 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0x89d3bee8 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x89e5fb19 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x8a011958 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x8a1f5cde led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x8a3f84ba linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x8a439a97 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x8a45a555 acpi_unregister_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x8a46cb6c mc146818_avoid_UIP +EXPORT_SYMBOL_GPL vmlinux 0x8a48cc82 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0x8a4ad56d i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0x8a613bf1 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a64bc2e uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x8a72f7b1 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8a838ef6 intel_scu_ipc_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x8aa22883 tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x8aa4d95c mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac7bf80 udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x8ad07892 put_device +EXPORT_SYMBOL_GPL vmlinux 0x8ad28e5c crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8ad5ceb1 __uv_hub_info_list +EXPORT_SYMBOL_GPL vmlinux 0x8ad7370d bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x8ad7e229 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x8ae3d4a4 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x8ae3dabf irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ae5d40c srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x8b149c36 clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x8b15c278 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x8b20912e usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8b340b22 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x8b46ecc7 acpi_cppc_processor_exit +EXPORT_SYMBOL_GPL vmlinux 0x8b47ea1d __SCT__tp_func_extlog_mem_event +EXPORT_SYMBOL_GPL vmlinux 0x8b8127e3 irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8b89f01c hv_ghcb_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x8b8cc689 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x8b8d2b15 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x8b908671 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8b921914 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x8b95e6a2 __SCT__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x8bae53bf hsu_dma_probe +EXPORT_SYMBOL_GPL vmlinux 0x8baf61f6 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x8bb84d9f hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x8bc48ddf gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8bd24218 nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x8bf903cc bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8c0215f2 pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c047a33 devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x8c0782e1 __xenmem_reservation_va_mapping_reset +EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x8c2abb89 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0x8c341c48 current_save_fsgs +EXPORT_SYMBOL_GPL vmlinux 0x8c484409 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x8c4d3f00 __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x8c4fded2 sgx_virt_einit +EXPORT_SYMBOL_GPL vmlinux 0x8c6be760 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x8c6ce549 vfio_file_has_dev +EXPORT_SYMBOL_GPL vmlinux 0x8c743fb6 reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x8c7afd05 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x8c89e3b8 usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x8c97dd1e dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x8c9a649c xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x8c9dd834 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x8c9ed545 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x8ca3b43c sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x8cbe74ef blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x8cc95fdd inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x8ce558e3 devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x8cec8996 __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x8cf0cd43 cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0x8cf2b51d task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x8cf3f707 devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d28c100 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x8d413f7b pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x8d4b2c63 vfio_virqfd_disable +EXPORT_SYMBOL_GPL vmlinux 0x8d522714 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x8d5c2897 __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x8d71c94a devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8d72d055 netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x8d7e3373 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x8d87d502 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x8d884601 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x8d89ab44 cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x8d89fed3 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x8d908ebf power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x8d922725 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x8d9c2a91 uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x8dac6edc usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x8dafdded lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x8db4f63e usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x8db7a70b perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x8dc3152c ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x8dd218b0 icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x8dd50e8f led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8de6817a acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x8dede1d3 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x8df02145 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8df3d859 __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x8dfda639 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x8e0cc652 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x8e13923d __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8e154def device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x8e3434a9 msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x8e37bb8a sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x8e3d911b arch_phys_wc_index +EXPORT_SYMBOL_GPL vmlinux 0x8e42b54f noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x8e447538 spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8e44823a sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e495ecd gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x8e4ec23f devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x8e4f64b7 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x8e59f883 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e5daa64 nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e6fa8b5 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x8e7363dd tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x8e7377a2 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x8e7dff81 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x8e7f2928 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x8e82d0ad srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0x8e8b2d62 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x8e8e2df5 gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8e92f7c4 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x8eaafc46 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x8ead800c user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x8eb452b2 ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x8eb66d15 devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x8ec1514a device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x8ec927c1 msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0x8ed02586 devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x8ed8d52a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x8ede314f strp_process +EXPORT_SYMBOL_GPL vmlinux 0x8eece959 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8ef6260c __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x8ef66e05 virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x8effac30 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x8f0b781d iova_domain_init_rcaches +EXPORT_SYMBOL_GPL vmlinux 0x8f2eb429 kvm_arch_para_hints +EXPORT_SYMBOL_GPL vmlinux 0x8f520beb cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x8f637713 power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0x8f691228 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74d61a xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x8f786bee fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x8f7bd0a6 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x8f8854b2 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x8f8ff554 pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0x8f972cbd cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f98ef0f pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x8f9cdf2e serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x8fa9d9e8 __SCT__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8faa800d acpi_cpc_valid +EXPORT_SYMBOL_GPL vmlinux 0x8fae7491 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x8fc12788 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x8fd0c80a sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x8fd4dec2 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x8fe1e519 led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x8fe60ab6 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x8ff033cf phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x8ff4a682 dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ff7ea2f devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x8ffb1df7 acpi_get_psd_map +EXPORT_SYMBOL_GPL vmlinux 0x900361d3 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x9003b0a2 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x901e0869 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x9024f443 mds_user_clear +EXPORT_SYMBOL_GPL vmlinux 0x90398f5d raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x904400e3 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x9046bd32 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x90688bcd devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x90717699 fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x907203ac ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x907f0386 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x9084b044 clear_page_erms +EXPORT_SYMBOL_GPL vmlinux 0x90891db9 sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x90952172 espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x90a9d8cc hv_is_hyperv_initialized +EXPORT_SYMBOL_GPL vmlinux 0x90ad66b1 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x90c473a4 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x90c8498c apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x90da9af3 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90de72a9 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x90de7a17 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x90e2ff42 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x90e5e499 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x90e6410d gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x90ee1371 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x9100cfc6 badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x9107d224 __SCT__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x910bdf6b trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x911b0b05 __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x91235d04 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x913d6d43 acpi_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x914381ab platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x915325cc nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x915aeb7e __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x915c99ca crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x915cdef7 tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x916ed313 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x91713f85 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x91767c84 ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x917d953b __SCT__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x918a76aa fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x9194e18f xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x919a9927 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x919ff632 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x91a74c92 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x91aa52e7 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x91b0accb regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x91b369ef tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x91b9a4ba e820__mapped_any +EXPORT_SYMBOL_GPL vmlinux 0x91c68097 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91c9313c acpi_gpio_get_io_resource +EXPORT_SYMBOL_GPL vmlinux 0x91cee209 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x91dd8351 fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x92043bec ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x92141343 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x9216d6c7 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x92186691 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x9219ff79 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x92212d22 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x92271252 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x92274fe6 acpi_unregister_lps0_dev +EXPORT_SYMBOL_GPL vmlinux 0x92304596 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0x92324a41 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x923e42aa sysfb_disable +EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x9241eaaf __put_net +EXPORT_SYMBOL_GPL vmlinux 0x92440258 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x924deb24 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x9255a4bf tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x92661301 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x92746924 tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x928aa5f6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x92978f91 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x92ad89a8 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x92b4d60c get_dev_pagemap +EXPORT_SYMBOL_GPL vmlinux 0x92b8c78b hyperv_pcpu_output_arg +EXPORT_SYMBOL_GPL vmlinux 0x92d1f783 dma_get_any_slave_channel +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 0x9313d394 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9316e318 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x9324ddbe mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x932c8d7a linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x933ea9bb devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x933ef3cc devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x933f75e0 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x93471954 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x93477d33 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x9363d44a sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x936b5c32 sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x936e554b devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0x93731687 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x93752388 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x9376e656 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x937bc67a uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x937d2aed rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x9382dd0a pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x93a48606 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x93af0f03 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x93b35fdb device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x93b6dc43 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x93c0e4af power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x93c226e9 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x93c7edeb usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x93c9929d devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x93d1d424 gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x93dc2586 pgprot_writethrough +EXPORT_SYMBOL_GPL vmlinux 0x93de87a3 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x93e567ad bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x93ff0766 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x940a1ff6 xfrm_unregister_translator +EXPORT_SYMBOL_GPL vmlinux 0x941a3d4f clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x941e3afc led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x9424058f arch_haltpoll_disable +EXPORT_SYMBOL_GPL vmlinux 0x9425bb34 nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x9436e405 memory_group_register_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9450cd6d crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x9452eda0 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0028 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x946fe217 raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x947b40c6 cpu_smt_possible +EXPORT_SYMBOL_GPL vmlinux 0x94886e42 xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x948f0047 rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x949af168 is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949c1095 fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a69167 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x94b17bb2 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x94c83274 clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x94d8f7f6 vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94fec2c4 devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x94ffdc52 register_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0x9502d533 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9502de95 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x95188689 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x951bb409 cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x952c1dc9 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x95329d4d component_release_of +EXPORT_SYMBOL_GPL vmlinux 0x95390400 dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x955b31e1 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x955be2e0 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x955e2b66 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x95683849 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x958dc7f4 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x959ec5f5 call_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c29c1e usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x95c89a21 virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x95ef1ccc dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x9615b005 hv_map_ioapic_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x96196f22 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9621d738 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x9625119f dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x9626824d pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x962c8ae1 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x9634a2ad pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x96447042 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965768b0 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x965c1c6d devm_acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x96659123 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96740410 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x96812fa6 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x968a41b6 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x968f9a23 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x969fa61e dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x96a55fda list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x96a939d1 dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x96b0425d fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96b157bf class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x96b89a2c devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0x96ba8d05 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x96dbcd78 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x96dd4773 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x97122673 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x97182dc9 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x9721acfb ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x972db9af acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x9732f8a1 devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9735f6ac watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x9736bad1 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x97390a57 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x973fa68a vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x975139e0 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x977be5c7 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x977d7891 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x977eb743 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x978063a8 platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x978d9ee5 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x979b9b73 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x97abc7a8 vfio_pci_core_match +EXPORT_SYMBOL_GPL vmlinux 0x97ae08f5 spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x97bb9474 cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x97c24766 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x97cf03b6 ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x97ddbdc5 rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e5c450 gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x97edfca2 icc_disable +EXPORT_SYMBOL_GPL vmlinux 0x97f2b8fb genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x980050a2 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x9801e7d8 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9802ca79 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x9816598e cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x98328663 fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98378a1d cc_mkdec +EXPORT_SYMBOL_GPL vmlinux 0x983b88e0 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x9843a0f7 md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x9843f501 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x984b39e9 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985453e1 lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987f8e23 md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0x988873ed regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x988a1a00 sn_region_size +EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x98923a06 acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x98b142fa blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x98e4368a ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x98ecf0ed tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x98f10da0 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x98f4d306 hyperv_flush_guest_mapping +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x990ce4f7 pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0x9916c5ad iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x991a94f7 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x992a001e dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x9930f8a3 uv_bios_change_memprotect +EXPORT_SYMBOL_GPL vmlinux 0x9932e037 crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x993c9d2c device_del +EXPORT_SYMBOL_GPL vmlinux 0x99430ba2 acpi_get_phys_id +EXPORT_SYMBOL_GPL vmlinux 0x994594ef bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x99460469 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x9946fd0b rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x995de09d dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x996d6dd4 led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0x997c550a preempt_model_none +EXPORT_SYMBOL_GPL vmlinux 0x998d79d6 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x99a5b226 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x99a8ce80 vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x99b37814 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0x99c0570d ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x99dd730c page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99e28042 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x99e39009 pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x99e53b25 iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x99e9a4a9 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x99f018c4 nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x99fa64cc blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0x9a0128fc usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a23ea6b alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x9a263ec1 blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x9a2851ef __SCT__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x9a2f4bf3 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x9a371cd2 cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0x9a37f941 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x9a4e725e blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x9a58dd2d trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x9a5dce5c rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x9a6b30f8 __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x9a8196b5 umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x9a81ffba crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x9a8e6f97 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x9a8f3798 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x9aa71c2a efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x9aaac699 dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x9ab78b57 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x9ac0c58e nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ae9a22d tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af49514 icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x9af7a779 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9b35c3ed mmput +EXPORT_SYMBOL_GPL vmlinux 0x9b555c8c pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x9b61624b blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x9b651e51 xenbus_teardown_ring +EXPORT_SYMBOL_GPL vmlinux 0x9b698c42 ioasid_set_data +EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b80d49c pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x9b88dec9 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b9071cb get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x9b928262 pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x9b92d16e pinctrl_gpio_set_config +EXPORT_SYMBOL_GPL vmlinux 0x9b95d5b7 em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x9b99e668 pci_disable_pcie_error_reporting +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 0x9bc60531 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x9bd447c5 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x9bdfab76 mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x9be0abb8 sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x9be30d27 mhp_get_pluggable_range +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf0f147 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x9c0dee72 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9c0e8129 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x9c19cbb7 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x9c1b9dd5 fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x9c311926 sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x9c41a10c thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x9c434c8b gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x9c7ba50c __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x9c803020 usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x9ca480cc clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9cb00afe fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x9cb15ec5 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x9cba5af9 dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9cbf6491 tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd7551a rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x9ce9eaac icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x9ced6d2d devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x9cefe11f clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x9cf37c44 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x9cf86e9b devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9cfed401 clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9d14205c cr4_read_shadow +EXPORT_SYMBOL_GPL vmlinux 0x9d271baa phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0x9d28f138 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x9d2dedcb tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x9d4894c8 x2apic_mode +EXPORT_SYMBOL_GPL vmlinux 0x9d507b50 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x9d5aad7b ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x9d5be493 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x9d5ccd5c ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x9d65d51d ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9d72533e tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0x9d892206 blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x9d9910a1 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x9d9dfe88 register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x9d9edd66 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9da5b5e9 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x9dabde23 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x9daf329b rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x9dc73c87 __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x9ddd7163 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x9de31b2a phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x9e005e6f cppc_get_perf_caps +EXPORT_SYMBOL_GPL vmlinux 0x9e03c31f usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0x9e07d3e7 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x9e0e4df2 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x9e13beb8 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x9e1428f1 blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0x9e1a26bd trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x9e1fed9e dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e4b3228 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x9e6d5de3 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x9e6efa3b serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x9e758ed6 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x9e83d4de regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x9e84dc8c securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x9ebeb4aa gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x9ecf48f2 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9eeb2ebd rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9ef7ad11 crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x9ef7f694 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x9f0746a0 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x9f0acd17 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x9f1c12f1 fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x9f20c42e adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9f22c5b9 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x9f2bedaf irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x9f304f92 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x9f37720c kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x9f428c0c regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x9f4c4aa0 spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x9f5ad238 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x9f5c6dc2 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x9f6bca20 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x9f756d46 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x9f807466 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x9f88b624 kthread_func +EXPORT_SYMBOL_GPL vmlinux 0x9f91c647 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x9f9c7781 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x9fa0c41b folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x9fa2a1d3 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x9fbfebab erst_write +EXPORT_SYMBOL_GPL vmlinux 0x9fc6957a dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fdff220 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x9fe131f1 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x9fe33fca blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x9fe899b7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fea5cde netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x9fec33cc free_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x9fefc3e6 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0xa00b37af __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xa01a8d9b nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0xa0255fb6 serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0xa03332be scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xa04d490a device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xa04dc934 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xa0534d31 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xa05e351d __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xa0696e73 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xa07ccd7d blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0xa0821858 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0xa09291d9 mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xa0accac5 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xa0c0f1d7 __SCT__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xa0c264c7 blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0xa0c2890d xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0xa0d81b76 __SCT__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xa0dabb2f ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xa0e671d8 __SCT__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0xa0f318cf vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0xa0fc9d43 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xa0fcc90f xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0xa1083fa8 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xa1094d0b __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa10db043 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa12e0485 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa12efacd regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0xa1363623 usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa16373f4 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa1686ae8 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0xa16f26c5 free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0xa171c39a irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0xa173d24c perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xa1852e9c xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0xa18b485c devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0xa1992e63 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xa19db5c5 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0xa1a48093 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0xa1a68cc4 tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0xa1c1c006 kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0xa1c3f8a8 __SCT__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xa1ce7387 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0xa1d8004a videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xa1e5429d __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xa1fc0003 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xa206b321 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xa20ef7b7 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xa21f2ce7 clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0xa2383cdc acpi_gpiochip_free_interrupts +EXPORT_SYMBOL_GPL vmlinux 0xa2603063 __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa261599f devlink_net +EXPORT_SYMBOL_GPL vmlinux 0xa26b6db2 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2713e2c sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa284df4d vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0xa28b53bf dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0xa292b644 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xa29d0624 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0xa2aa60fe devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xa2acf088 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xa2af54b3 irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa2b45503 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0xa2b99209 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xa2bb7ef0 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xa2bcd838 fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0xa2c1c151 __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xa2d0b59d mmio_stale_data_clear +EXPORT_SYMBOL_GPL vmlinux 0xa2df1ece xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa2f7487f hv_is_hibernation_supported +EXPORT_SYMBOL_GPL vmlinux 0xa308526c xen_unmap_domain_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0xa30fb913 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa32d3f6d gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xa339faef blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xa33fd46f hv_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xa348467d device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa34b0376 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xa356012a __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa36d34d0 em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0xa36f50fb is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xa38ca43d pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0xa39e2957 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3c03fd3 devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa3c44e1d irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xa3f0e0db __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa4031b7f sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0xa40c7577 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa42fcd2c cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xa438bb07 dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0xa43cab07 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xa44c21fa regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0xa44d40d5 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa4565fef __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa459bb95 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0xa46136fe device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0xa462d5a6 __SCT__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xa46d0c2d tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4863ac3 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa49466b5 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xa4a2b286 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xa4ae0da4 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4b81338 rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0xa4c085f8 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0xa4c8dd80 thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0xa4d9e6e6 klp_enable_patch +EXPORT_SYMBOL_GPL vmlinux 0xa4e1be6c __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xa4e22108 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0xa4e4f66e serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xa4e8fc42 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xa4f493e5 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xa4f50ace sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xa5052a85 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5246925 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0xa531471e clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0xa56147ab skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xa565dd79 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0xa57a69e6 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xa5a0f090 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xa5a1793e unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xa5bda8a1 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0xa5d1f4b8 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0xa5d7c388 pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0xa5d9fc69 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xa5e23977 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xa5e4e606 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa5e56505 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xa5e61c30 iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0xa5ebbef7 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f7da9f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xa5fc5294 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0xa60481a4 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xa606d29b acpi_get_first_physical_node +EXPORT_SYMBOL_GPL vmlinux 0xa60c0f60 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xa61eb34f devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa61f54c5 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xa6307dcf unregister_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0xa6392d60 housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0xa6423d83 devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xa643ce69 md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0xa6450092 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xa66e98f2 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xa676807d thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa6a088b7 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0xa6a96c78 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0xa6b06f65 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6d50c5b nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0xa6d6ac80 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa6d758e7 strp_init +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6fb4db0 pfn_to_online_page +EXPORT_SYMBOL_GPL vmlinux 0xa703eeaf nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa7127da7 mce_unregister_injector_chain +EXPORT_SYMBOL_GPL vmlinux 0xa7146a7f ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xa720a4cf palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0xa7218eba irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0xa731f387 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xa74104a5 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xa741b65f tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0xa74dab43 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xa7636b82 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xa764567d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa77993fa gnttab_dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xa79f54eb hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xa79f774b dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0xa7a578f6 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xa7a82208 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xa7a974de bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7b4bd85 serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0xa7cdd1ca __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa7cf93e7 iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0xa7cfe323 __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xa7e844cf watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0xa7ed39c3 gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xa7f49f4f usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xa81a3510 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0xa82d41ff usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xa82dadce sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xa82e4708 to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa858534b relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xa8760d70 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0xa89c56cd is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0xa8a6364c xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0xa8b94b4a genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xa8be3ba8 apic +EXPORT_SYMBOL_GPL vmlinux 0xa8c4ad6a mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa8d031f2 acpi_dev_get_property +EXPORT_SYMBOL_GPL vmlinux 0xa8d0a34c nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0xa8d54651 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0xa8d69984 hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0xa8ee3f5d ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa8f01891 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa8f48d63 icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0xa8f7d32a regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xa9026566 gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0xa902bf19 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0xa90358ab gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa91bc939 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa92ff321 dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0xa93281ea sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0xa93af83f led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0xa941c56d evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xa9434cd4 bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0xa945d81a __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0xa9471b68 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xa9495442 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xa95b5c77 hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0xa96cc6cc pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa96e8b4e hv_setup_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0xa97ec678 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xa985bd55 kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0xa991e9b7 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xa99ce2a3 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xa9a23d34 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xa9ca4bfc __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xa9ca7a9e xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xa9e295bd tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xa9f9676b usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xaa1ae614 dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0xaa201216 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xaa20b06b crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0xaa29a768 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xaa3db8d7 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xaa428803 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xaa46a27d pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0xaa558444 bind_interdomain_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xaa5aee1c uv_bios_mq_watchlist_alloc +EXPORT_SYMBOL_GPL vmlinux 0xaa60b659 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0xaa6e6d96 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xaa86cfb5 uv_possible_blades +EXPORT_SYMBOL_GPL vmlinux 0xaa924014 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xaa9616d6 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xaa963f90 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xaa971d3a phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0xaa9ee0c4 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0xaa9fd517 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0xaaa7f622 regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaade649 serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xaab5ef3e cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xaabcea7a posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0xaac0f9ef power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xaaccb525 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0xaadd2721 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xaae537d5 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xab05464d sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0xab1e0e93 hv_setup_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0xab36a7df generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0xab3cf9ba cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xab4ee6d3 scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0xab4f5c34 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xab631265 dax_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xab6bd690 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xab7a7ede xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0xab82cc7b security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xab8e60c4 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xab95e128 dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0xab99719b console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xab9ae02e gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0xabb7c7c2 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xabb965be device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xabbeb52b devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xabc298d0 intel_scu_ipc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabce7a64 dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0xabd59467 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xabebc345 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xabf03fc3 __SCT__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0xabfba6b1 cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0xac008140 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xac0cce2e __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0xac13f2af usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xac1aaea4 devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0xac1d70fb pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xac30288f iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xac351a8f disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0xac467391 blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xac4e7b4c __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0xac56040e do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0xac75e712 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xac8106de led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0xac9aa777 kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xac9fe4d0 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xaca43734 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xaca7784b usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xacb00ad8 filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0xacb4d88c clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0xacbb95c6 blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0xacbd957e cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xacc977ac alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xacd4fc09 tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xad14a468 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xad22346d __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xad24c000 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0xad3282e7 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xad395dd9 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad4ea635 devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xad54477c crypto_remove_spawns +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 0xad768c8d fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xad7ffb17 dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0xad83ce29 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0xad905106 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad90b6e6 crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0xada7103d dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xadb3b84f lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xadbca2d8 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xadd13805 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xade5339b hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0xade87624 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0xadecc70c platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xadfdb9c2 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0xae04f3c7 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xae0a348f da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xae0ecf40 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xae20731d vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xae3a3ed9 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0xae42e173 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0xae581fa8 unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6d9468 acpi_dev_gpio_irq_get_by +EXPORT_SYMBOL_GPL vmlinux 0xae765f80 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8ed283 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xae92faa7 crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xae97944a lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0xae9852a0 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0xae9f3483 list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0xaea60854 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xaea7f1ef devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaead9027 crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xaeb6741e gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xaebe6d73 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0xaecc4b11 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0xaed174d5 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xaeda0e40 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xaee657ee __class_create +EXPORT_SYMBOL_GPL vmlinux 0xaef370a9 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xaef4ec55 mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0xaf02f6ed devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0xaf076aec nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0xaf0b6ba7 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0xaf28b2bc file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xaf4014ff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0xaf587d57 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xaf6690b7 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xaf66ca28 genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0xaf6a7591 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xaf793668 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0xaf7e4bf8 regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xaf852873 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xaf8959da usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xaf8ad12e crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0xaf932ddd amd_iommu_is_attach_deferred +EXPORT_SYMBOL_GPL vmlinux 0xafa8385d nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0xafc0cd2c init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xafcf3fdd sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0xafd31e9f regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xafed462c tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xaff40ec9 __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0xb00a0055 wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0xb00a3954 page_endio +EXPORT_SYMBOL_GPL vmlinux 0xb015908c blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb01e30aa powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0xb02077ed xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xb02699ef __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xb0284630 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb03924d2 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0xb049dc9e dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xb04f5641 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xb05078ad rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0xb0526519 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0xb053c4a7 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xb05f8b82 acpi_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0xb077e70a clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xb0856cae adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xb0868ca1 devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xb08df3b1 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xb0a39745 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb0b70d8d __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cf4606 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xb0d0f3f0 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0dd2942 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb0e569b2 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0xb0e8e671 xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xb0ee5377 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xb0fbb722 clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb1024251 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xb11cc43b __SCT__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0xb124eb95 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xb136c138 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xb14ad6fd vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb1511fb3 vfio_file_set_kvm +EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0xb16bfce1 dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xb17253ec device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xb17af304 pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb18a6f23 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xb1b7c959 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c189d6 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xb1d2805f led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1ea1c52 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb1ebde20 desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xb1ef3bd3 iommu_sva_alloc_pasid +EXPORT_SYMBOL_GPL vmlinux 0xb1f5b699 pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0xb1f9a6a2 devm_memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xb202f0d7 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0xb20b4e5e usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0xb21d00c6 hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0xb2496844 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xb24c0598 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0xb26066fe ibft_phys_addr +EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0xb293a20d power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0xb29533ee zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0xb298b863 serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0xb2a62613 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xb2b0d7cd user_read +EXPORT_SYMBOL_GPL vmlinux 0xb2b207aa usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xb2beb24c xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xb2c06b07 dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2c4bbf4 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xb2c512ed zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xb2ca51d9 intel_pinctrl_get_soc_data +EXPORT_SYMBOL_GPL vmlinux 0xb2cfa227 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xb2d88a89 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0xb2de4cf2 clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb30b2bda preempt_model_full +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb337531f fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0xb33e0236 pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0xb37cd2b8 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xb3adba2f iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0xb3beadd0 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0xb3cd320a dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xb3d675ab __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xb3d9f0dd pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0xb3eb3bd7 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3f002e7 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xb406ca7f blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xb4196660 __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xb4238723 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xb43fca68 switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xb4429b64 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb46b1b80 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xb48f0638 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0xb49298f5 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0xb493960d serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0xb494a721 lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xb4978844 __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xb49d8c42 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xb49dbe72 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0xb4a2f428 phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c017ee scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xb4d5f56b nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xb4e0c2fc msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0xb4e468a7 tcp_abort +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 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb520eb79 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb5486f63 mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0xb54d8439 dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xb5569666 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xb5649127 vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0xb569d9cc __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xb5709609 devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0xb57aa344 phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0xb591857f fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0xb5a83e35 gnttab_setup_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xb5a8c226 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb5c05154 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0xb5d1d945 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0xb5e0986d xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb5e2e738 __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xb5f9dd75 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0xb6094004 kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0xb610b5d9 ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0xb61b3af8 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xb61d226e usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb6250dce ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62e0e7d unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xb6357e53 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0xb64c036b devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xb64d2730 acpi_device_fix_up_power +EXPORT_SYMBOL_GPL vmlinux 0xb64f7080 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0xb655f91b pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xb6574b8d account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xb6585fca power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xb665631b dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb666d2d1 dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0xb679544c pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0xb6888188 klp_shadow_get_or_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb68bb323 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xb695db0d device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xb69cdcf3 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0xb69e3e04 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0xb6ae3647 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xb6aec2cf gnttab_pages_set_private +EXPORT_SYMBOL_GPL vmlinux 0xb6c5e614 acpi_processor_evaluate_cst +EXPORT_SYMBOL_GPL vmlinux 0xb6cc4fca spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0xb6e484b2 usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6eabe37 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xb6ee4be8 kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xb6f88dd6 dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0xb70f7839 i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0xb70febdd trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0xb7132179 bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0xb7164dbf regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0xb71cf37b pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xb725a1d4 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0xb7329c06 clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0xb73713d7 nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0xb73e37e3 devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb74c31cd wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0xb75041d1 hv_stimer_legacy_init +EXPORT_SYMBOL_GPL vmlinux 0xb75e2f2f iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xb764c9c9 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0xb767d09f regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0xb7704b1c dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xb779b9fe inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xb77bf9f2 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xb79c30f0 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0xb7b1cd1a irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0xb7b2a306 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xb7b90972 vfio_assign_device_set +EXPORT_SYMBOL_GPL vmlinux 0xb7c14351 pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7d4a02e regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e462a8 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb7e8bb2e tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xb7f990e9 rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xb81fda2e fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0xb8273d0b __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xb82b3c6d phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0xb840ee90 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xb848f5c3 generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0xb84c39a7 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xb85042e5 gnttab_free_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0xb862b8ce phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0xb8681645 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb87ae6a4 hv_ghcb_msr_write +EXPORT_SYMBOL_GPL vmlinux 0xb87ca243 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xb87f40fe cppc_set_enable +EXPORT_SYMBOL_GPL vmlinux 0xb8846e65 pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0xb88bc47e arch_apei_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8c1ebef regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0xb8cf4ea2 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xb8d4955b usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb8e57723 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0xb8e620e5 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL vmlinux 0xb8f0611e device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xb8f11603 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb8f358c5 __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0xb8f8944e xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0xb9175787 devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xb9192e28 vfio_init_group_dev +EXPORT_SYMBOL_GPL vmlinux 0xb939d0a2 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xb93f690f nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0xb940d90d hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0xb94be8e1 devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0xb95f4044 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0xb979940b kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xb97a995c md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xb97bd795 dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0xb980ab5a usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xb9845a8b spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xb9915138 i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xb9a908bc __tracepoint_rpm_resume +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 0xb9ce754b bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d2fd97 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xb9d47074 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xb9e75103 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xba01ec83 hv_stimer_global_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xba03da33 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xba057786 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0xba220db7 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xba2b7f64 cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0xba4c7d2a led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xba602886 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0xba695153 __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0xba76a90d crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xba7e6a9a pcc_mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xba82f246 uv_bios_install_heap +EXPORT_SYMBOL_GPL vmlinux 0xba992c59 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0xbaa057b0 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0xbab59693 vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0xbab9a9f0 maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0xbadc3fb5 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0xbae20364 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xbae88a4e __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xbaf22757 kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0xbaf9d785 __tss_limit_invalid +EXPORT_SYMBOL_GPL vmlinux 0xbafde796 gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0xbb022621 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0xbb071a1b __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0b25d2 register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0xbb14237a __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xbb17da23 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0xbb2605f9 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xbb2a428b regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xbb4aa958 pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0xbb4ca2aa pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbb5598ce get_llc_id +EXPORT_SYMBOL_GPL vmlinux 0xbb55c95e iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xbb6c8538 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xbb6f025a asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0xbb73f3d9 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xbb746fd1 iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0xbb7927e5 __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xbb81d78e device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0xbb83d5a7 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xbb93eec5 ioasid_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbba4fe2a driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xbbad73f8 pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbdcd19d bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xbbe5611b crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0xbbe56404 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0xbbf145cc xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0xbc0ec00f __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbc23b61c blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xbc2616aa xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xbc2806af rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xbc2b9d01 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xbc32e68a vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xbc3e3acb uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xbc4e24bb copy_mc_to_kernel +EXPORT_SYMBOL_GPL vmlinux 0xbc522bc1 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbc600dc9 preempt_model_voluntary +EXPORT_SYMBOL_GPL vmlinux 0xbc60dc37 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc8d223f dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0xbc92596d intel_pt_validate_cap +EXPORT_SYMBOL_GPL vmlinux 0xbc940c84 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbc9b8588 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcbe3339 devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xbccda869 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xbccfa069 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcdecc58 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0xbce0a16e regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xbcfec58d scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0xbd06f3a9 ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0xbd1403e2 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0xbd3154c8 gnttab_dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0xbd3c878f gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0xbd46360d gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0xbd47485b dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0xbd56be8a bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xbd59d3b3 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xbd6e77ea iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xbd7043a6 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xbd715009 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xbd7155e9 __static_call_update +EXPORT_SYMBOL_GPL vmlinux 0xbd7aaaee add_memory +EXPORT_SYMBOL_GPL vmlinux 0xbd8dd64d nf_route +EXPORT_SYMBOL_GPL vmlinux 0xbd920345 udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0xbd98b13a nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xbd99e873 __SCT__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xbd9b9380 dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xbda1c4bd __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0xbdb2217d hv_is_isolation_supported +EXPORT_SYMBOL_GPL vmlinux 0xbdb2dfd5 uv_bios_reserved_page_pa +EXPORT_SYMBOL_GPL vmlinux 0xbdbc439e unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xbdca1e1a bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0xbdcb67f1 devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0xbde17eb8 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xbde3b7d6 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xbded09d1 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0xbdee1658 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbdfe0d76 xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xbe29ff47 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xbe409389 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0xbe4a95d0 alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0xbe5c888b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xbe65e182 max_cswd_read_retries +EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbe744257 efi_get_embedded_fw +EXPORT_SYMBOL_GPL vmlinux 0xbe9a83d5 dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0xbea07393 serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbeb585d5 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0xbeb62dc6 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xbec5dd88 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xbec66c3a __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xbed8e99f pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xbef3f319 ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf165dec __SCT__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbf39097a kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0xbf4670a3 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xbf5ec713 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xbf75ec6b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xbf885822 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xbf8dcb60 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0xbf9f96d8 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfddacfd ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0xbfed2cd9 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0xbff7fc4f inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc0505464 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xc0552560 spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0xc0584e78 vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0xc05c1b64 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc073837d vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL vmlinux 0xc07818a1 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0xc08bbce6 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0xc08d10dc dbs_update +EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0xc096c044 device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0xc099d7c6 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xc09fb751 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0xc0b8fa31 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc0c172c6 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xc0c42068 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc0c75d1c devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc0c7f246 bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0xc0ef98b0 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0xc0f172de fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0xc10fddb8 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xc11045f9 nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0xc110edac iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xc111bea9 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xc1202379 edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0xc1252bd5 nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0xc1269a84 dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xc137e8a4 unwind_next_frame +EXPORT_SYMBOL_GPL vmlinux 0xc1641746 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0xc1728b8d __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xc1743430 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17e9946 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xc18608ae devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xc18796fb pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0xc189bcf5 fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xc18bb3fa filemap_read +EXPORT_SYMBOL_GPL vmlinux 0xc1a26655 pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0xc1cb1ca9 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xc1ef4b62 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xc1f8a2af simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xc2033d9f amd_get_highest_perf +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc232701c crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0xc23601c1 __SCT__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xc23befa3 pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xc23ecb83 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xc25b8971 hv_remove_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0xc2692173 wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc26bbfef tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0xc287d96a kvm_set_posted_intr_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0xc2890439 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xc289e46d cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc2993ad6 icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0xc29d86c2 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xc2a3e570 errata +EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xc2b6964b usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xc2b7128e dax_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc2c3b780 software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xc2d79f69 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc2e3fdfc usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xc2ea6589 __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xc2ecf26f kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xc2f161a5 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0xc2f26a23 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xc2fb483f __SCT__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xc2fe1e0e put_pid +EXPORT_SYMBOL_GPL vmlinux 0xc307629b dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xc3244ecb skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xc3256b7a serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0xc32b8ca6 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc3468c06 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0xc352adb8 devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0xc3580ef8 usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0xc36aab91 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc376856d acpi_dev_ready_for_enumeration +EXPORT_SYMBOL_GPL vmlinux 0xc37cfe97 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0xc38265b9 rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0xc3876c1a hv_isolation_type_snp +EXPORT_SYMBOL_GPL vmlinux 0xc38bdf83 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0xc39da57e exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xc3a0bad5 battery_hook_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3bcda8b __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xc3bd749a genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0xc3cc4300 smca_get_long_name +EXPORT_SYMBOL_GPL vmlinux 0xc3d447e3 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3dec73e __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xc3e1021c __SCT__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0xc3f701df phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc3f9c439 vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0xc4002b31 xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc405234c fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0xc405e2a8 fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0xc41793f8 wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xc4220147 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0xc426c51f klp_shadow_free_all +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43e92b9 trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0xc44992ee devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0xc44e105e mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0xc44eb76f gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xc452341b trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc45905af device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xc45d0d13 injectm +EXPORT_SYMBOL_GPL vmlinux 0xc46324f6 dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0xc46449ec ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0xc465dd30 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0xc466e643 device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xc46fecae uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0xc4711fd5 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc4799f24 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xc47a90b9 bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0xc4850484 alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc48dc346 tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0xc498bdc9 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0xc49b6070 devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc4a72936 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc4a85684 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xc4acd55f dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0xc4c358e9 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xc4c56d1f verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xc4c6542b crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc4d022cb __SCT__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xc4d80d6b dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xc4f58096 i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xc4feab61 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0xc506fa8a regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc50dca33 __SCT__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0xc50ddcfe bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc51cf102 rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0xc52b580e usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc543cf39 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0xc5604800 clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc569d8ce __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xc575250b regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5777fca linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0xc5821ff0 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xc58a3ee6 icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc58d52df efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0xc593b9ca xen_remap_vma_range +EXPORT_SYMBOL_GPL vmlinux 0xc59f303a __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0xc5a0d48c regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xc5a5c678 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0xc5a823cb usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc5d673fc dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0xc5de64f2 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0xc5ea3467 mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0xc5eeb629 extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0xc604ab28 __SCT__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xc60cb30a nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0xc614bc4b bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc6511c50 rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0xc6572a90 xenbus_read_unsigned +EXPORT_SYMBOL_GPL vmlinux 0xc66019cc xen_resume_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc66d5421 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xc673d872 seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xc67fdfa2 genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0xc683a168 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xc683da81 set_memory_decrypted +EXPORT_SYMBOL_GPL vmlinux 0xc6962244 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0xc697b0f7 nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a26479 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xc6a4a872 __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc6a9e34f fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0xc6b54ff1 wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0xc6bb494d virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0xc6d62659 dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xc6dc3bbf skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0xc6def34b gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xc6e5bcf3 linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0xc6e9f7a0 to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0xc6eec8f5 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xc6f82d45 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0xc6ffbe92 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xc70188c6 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc7061ef3 iova_cache_put +EXPORT_SYMBOL_GPL vmlinux 0xc709c05f pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0xc70de4f0 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xc7131d59 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0xc71ade1d folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xc72a4a6e locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xc73c9e28 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0xc742e72d pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xc7444df8 dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0xc7678cd7 blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0xc77f2e72 kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xc7856e74 __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xc785fb2c sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0xc78d6cb7 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xc798fdb7 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc79a0f05 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a7e770 clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xc7bc84ac thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xc7c23ff0 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0xc7cbed20 devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xc7d91e51 auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0xc7e5296f acpi_bus_get_acpi_device +EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0xc7e8dbf3 irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0xc7ec8972 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xc7ed0a80 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0xc80f8e4a devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8126340 clear_mce_nospec +EXPORT_SYMBOL_GPL vmlinux 0xc8195b56 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc821ec35 dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0xc823edcd phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0xc82801da smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xc839c1ce trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0xc8553a4d vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc857b2ed __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0xc8594d3d reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0xc862a09e dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0xc864cd20 __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xc867f405 vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL vmlinux 0xc874d710 hv_unmap_ioapic_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc88df148 blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0xc8a87fbf of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0xc8cf3496 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc8d5448a pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0xc8efa1be subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xc8f16681 spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0xc8fbbdd8 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xc9088765 acpi_subsys_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xc90b010f ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xc91c980a led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0xc91e2163 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0xc91ee1b5 __SCT__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0xc9288936 devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0xc9345c0f digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xc93ee1e7 usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0xc9487318 gnttab_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xc9537c04 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9592ed3 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc96cd955 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xc96e939c devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0xc99f14f5 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xc9a4b416 copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xc9ad8569 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xc9bce966 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9c81693 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0xc9d1c257 gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0xc9dc3c19 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xc9dec427 component_add +EXPORT_SYMBOL_GPL vmlinux 0xc9eb62ea __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecff50 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9fd634a usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0xca1d4420 dax_zero_range +EXPORT_SYMBOL_GPL vmlinux 0xca43527c devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0xca467318 hibernation_set_ops +EXPORT_SYMBOL_GPL vmlinux 0xca4c3bd4 clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0xca5c954a acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0xca5f2eed vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0xca75c257 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xca790e46 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca8c238f genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0xca93559f devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xca9dbc54 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xcaa68533 cpu_has_xfeatures +EXPORT_SYMBOL_GPL vmlinux 0xcab1b30f pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacad70f devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0xcad1285b cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0xcae1fd04 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0xcae39666 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xcaf1d958 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xcb07d7ba irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0xcb119f00 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xcb186931 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0xcb2bfe2b nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcb2da4e6 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xcb2ef10f rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xcb3a73cd mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0xcb559f99 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb55b082 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0xcb5b44ba class_find_device +EXPORT_SYMBOL_GPL vmlinux 0xcb5e17c5 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0xcb778890 icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0xcb7a6352 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0xcb819cb7 __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0xcb84437f devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0xcb85aa7b dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0xcb88d094 udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0xcb8a461c hv_stimer_legacy_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xcb970751 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xcb9bcc48 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xcb9e08b1 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xcba575f1 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xcbab9217 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xcbb46ca0 misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0xcbc3107a acpi_data_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0xcbe0dfd7 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0xcbf4b41f dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0xcbf853ec extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0xcbff43b6 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcc1adc99 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xcc234860 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xcc2dbfd8 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0xcc2e5875 usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0xcc2f3c49 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0xcc312197 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xcc39c03e nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc54237d __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0xcc5ce2bc usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0xcc684c19 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xcc795932 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xcc85573d vfio_pci_core_mmap +EXPORT_SYMBOL_GPL vmlinux 0xcc9268fc hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc94dd3f i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xcc97c343 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xcc9e9f6d free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xccabde6f crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0xcccb786d spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xccf396a3 x86_perf_get_lbr +EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0xcd038431 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xcd1f1867 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xcd200a4c device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0xcd34c352 net_selftest +EXPORT_SYMBOL_GPL vmlinux 0xcd399085 lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0xcd3cdc04 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xcd4d9fcd devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xcd529752 finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0xcd5646bf usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xcd5ce3df param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xcd6c060f serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0xcd779e1f user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcd81a945 switch_fpu_return +EXPORT_SYMBOL_GPL vmlinux 0xcd8e8f82 uv_bios_enum_objs +EXPORT_SYMBOL_GPL vmlinux 0xcd8eacbc sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcdabd366 nf_queue +EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0xcdbd447e rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xcdc811fa dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde26600 cppc_get_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0xcdf8ec93 __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xce0582b6 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xce0a4020 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0xce1578ea securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xce3d5fb7 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xce57ada4 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xce6c67e6 led_put +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce852bf3 device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xce945996 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0xce94a204 fuse_dax_cancel_work +EXPORT_SYMBOL_GPL vmlinux 0xce9d30ae dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0xceac751e __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xceadc1c3 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xceae7f39 pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xceb4423c pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xceb66bec sched_clock_cpu +EXPORT_SYMBOL_GPL vmlinux 0xcec2b172 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xceca97a1 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0xced4b3d9 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xced5b33a tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0xcedda9b1 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xcede2b82 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xcee0ad0c vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef2270d hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xcefcc83d ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0xcf02ab71 __SCT__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xcf08347c da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xcf0aded4 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xcf138d46 __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0xcf16caab regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xcf26e972 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xcf2b93c8 __SCT__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xcf3a1de6 usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0xcf461308 devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0xcf46c5e1 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0xcf540422 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xcf6ec00c bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0xcf83b2a0 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0xcf9f2a82 check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0xcfa0108c fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xcfb4ba47 power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0xcfb6ab6c fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0xcfc33f14 __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0xcfd30d71 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xcfe67af4 iommu_sva_find +EXPORT_SYMBOL_GPL vmlinux 0xcfffdbe8 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0xd01267cb sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0xd0177a65 acrn_setup_intr_handler +EXPORT_SYMBOL_GPL vmlinux 0xd01ce63f blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0xd01fcc8a acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xd029b5a8 _copy_from_iter_flushcache +EXPORT_SYMBOL_GPL vmlinux 0xd02dc2ba pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd04725bd crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0xd04a2de1 unregister_fprobe +EXPORT_SYMBOL_GPL vmlinux 0xd0559180 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0xd0585c8c skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd069c9ac lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xd06b9cc9 power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xd07094c0 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xd07e43f2 pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0xd0884bfe hsu_dma_remove +EXPORT_SYMBOL_GPL vmlinux 0xd08e3482 dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0xd092de93 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0xd0989ee4 regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xd09911a6 acpi_dev_get_irq_type +EXPORT_SYMBOL_GPL vmlinux 0xd09a9d21 perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0xd0a600ab i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0xd0b6d48c percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d156e9 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xd0d3f0a4 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xd0d47ffc acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax +EXPORT_SYMBOL_GPL vmlinux 0xd0dc99f6 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xd0df12ba __SCT__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xd0eaec90 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xd0f626b0 bind_interdomain_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xd0f9ec4c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd0fd7085 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd118a375 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xd126e834 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xd1272032 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0xd138c08a free_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0xd13937d0 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd13a94d1 __SCT__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xd1481637 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0xd1530dce da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xd1586e7b fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xd1731d09 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0xd1783a59 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xd19580f5 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd19f642a vfio_pci_core_write +EXPORT_SYMBOL_GPL vmlinux 0xd1aa393f dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0xd1aa749d regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd1ad2b4c tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xd1cac7bf unregister_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xd1dcc4f0 __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xd1e1162f ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xd1e9b2ad __SCT__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xd1ed6f77 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0xd1f78808 devres_add +EXPORT_SYMBOL_GPL vmlinux 0xd1fb81ce pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xd20c66ab __SCT__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xd20dde55 crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0xd231a2aa sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd2423f76 i2c_acpi_get_i2c_resource +EXPORT_SYMBOL_GPL vmlinux 0xd24e9e8c klist_init +EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xd266d09c acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0xd2689a65 bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0xd26a704c synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0xd26cfa12 __acpi_node_get_property_reference +EXPORT_SYMBOL_GPL vmlinux 0xd270e3b4 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2746af8 blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xd27eeb4b alloc_iova +EXPORT_SYMBOL_GPL vmlinux 0xd27f215d gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xd2802bcd ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0xd2854b18 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0xd2a888f1 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xd2b10a05 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0xd2b88239 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xd2be05fe nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0xd2d6ffcc vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0xd2dc64f0 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xd2f67f69 __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xd2ffe91d vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0xd306c109 blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd311d70e ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd313bc7b xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0xd319fe69 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xd31aef97 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd320ebaf pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xd35d6804 crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0xd36760ef __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd36ba5b0 fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0xd3752c27 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd37f10fc pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0xd398fec2 switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0xd399a32f i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xd3b2e2bf subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd3c16cce __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xd3c39604 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xd3c8e023 crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0xd3e31d95 dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0xd3e3e000 md_run +EXPORT_SYMBOL_GPL vmlinux 0xd3e607ec dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xd3e6d805 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0xd3ec851c __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd3f16ce7 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd3f7b2c8 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xd3f815fc __SCK__tp_func_extlog_mem_event +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd426f649 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd4404350 __SCT__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0xd443ec5a usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xd443fa18 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd447ba38 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd45ba097 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xd46af5ef cppc_get_perf_ctrs +EXPORT_SYMBOL_GPL vmlinux 0xd46fcd9c rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xd479d28b debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xd47c24df nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0xd48297a4 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0xd4927edd phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0xd49762d6 dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xd49b7901 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0xd4ac7664 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xd4b19d46 add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0xd4b709f8 clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0xd4b83ef6 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xd4b9a616 reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xd4bf5247 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c8cd3f crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xd4ca227b perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xd4d929b4 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d7e0 linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0xd4e6e772 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0xd4ea65ab pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xd4ec9eb7 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0xd4ee31e6 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xd4f5bfa5 iommu_queue_iopf +EXPORT_SYMBOL_GPL vmlinux 0xd4f68b34 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd524b58c fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0xd5301b2c linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0xd53c67b3 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xd5407c76 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xd5474690 usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0xd5502e81 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd569f418 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0xd5787987 devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd5a91737 fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0xd5aec1b7 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xd5d75d7a __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xd5eb0d4e acpi_register_lps0_dev +EXPORT_SYMBOL_GPL vmlinux 0xd5ec7b7c device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd5f3bb7b set_memory_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xd64c54ab i2c_dw_acpi_configure +EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0xd65c6068 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xd661cd4f ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xd672aec4 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67b5d7f ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xd67d4ae6 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0xd6a0cccd usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xd6aafb42 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0xd6b27e8a xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0xd6be2dea regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xd6c89f09 icc_enable +EXPORT_SYMBOL_GPL vmlinux 0xd6ccfe2c efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0xd6d7af5c tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0xd6d815d0 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xd6e887a7 pci_acpi_set_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd7004076 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd7031dd7 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xd720f63d sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0xd7211c4b regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xd7269c64 osc_sb_native_usb4_control +EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd72a60c7 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd73e2d04 pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0xd743cab3 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0xd74e400f show_rcu_tasks_classic_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd75b20aa rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0xd75e3c40 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76b0721 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xd774957d mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0xd77a5497 register_fprobe_syms +EXPORT_SYMBOL_GPL vmlinux 0xd77d09bd br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0xd7802298 __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xd78a52d6 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd79d7507 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xd7ac2139 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xd7ada7dd __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xd7adc8f5 ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xd7cea889 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0xd7d7f2a7 devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd7f5bdb4 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xd8188eb5 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd81eb466 fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0xd821122c devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0xd8216530 dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0xd8257156 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xd82814b8 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd82c8714 edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0xd841503f simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xd84d2106 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd84e3e08 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xd85019d4 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xd86fd2dd strp_done +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd882527b pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0xd887df37 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0xd8899f00 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd8afb98c ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd8affed2 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0xd8b710c3 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xd8c92763 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xd8d065dd hv_stimer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd8d68ab1 dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0xd8f0565f ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xd8f2452f tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xd91025c9 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xd9117aae user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0xd92d5222 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd92ea45b xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0xd92f0791 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd9321a10 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0xd93608bb shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0xd9373014 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xd93a5cb1 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0xd94e9181 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd96de2ed ping_err +EXPORT_SYMBOL_GPL vmlinux 0xd98a6a33 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xd9916c3a idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd9992eb4 uv_bios_get_geoinfo +EXPORT_SYMBOL_GPL vmlinux 0xd999c658 bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0xd9b762e1 mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0xd9bb7170 icc_get +EXPORT_SYMBOL_GPL vmlinux 0xd9cc5453 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0xd9cebd8c iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0xd9d0a2af devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xd9f2e15d sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0xd9fbff34 phy_create +EXPORT_SYMBOL_GPL vmlinux 0xd9ff2172 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda17bdf7 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xda17db40 __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xda188f6d pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xda1f78ee clear_hv_tscchange_cb +EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0xda3d8578 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0xda426aac dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0xda44147f sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0xda5573c7 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xda72dea8 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0xda7912d4 freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xda799cf6 usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0xda8369a7 __traceiter_extlog_mem_event +EXPORT_SYMBOL_GPL vmlinux 0xda8df972 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xda8e1302 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0xdaa06dc1 acpi_lpat_raw_to_temp +EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0xdab88c6c crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xdabf1b37 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xdabf1de2 perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0xdacc7289 intel_pmic_install_opregion_handler +EXPORT_SYMBOL_GPL vmlinux 0xdad46e54 devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0xdad8f744 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0xdadc48e3 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xdae1ea7e bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafdc358 __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0xdb04be79 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xdb1aaf9b arch_is_platform_page +EXPORT_SYMBOL_GPL vmlinux 0xdb47bff6 acpi_dev_get_first_consumer_dev +EXPORT_SYMBOL_GPL vmlinux 0xdb50ebaf vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xdb587ee8 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdb62dc67 __SCT__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0xdb63a944 acpi_lpat_get_conversion_table +EXPORT_SYMBOL_GPL vmlinux 0xdb73ddd3 x86_vector_domain +EXPORT_SYMBOL_GPL vmlinux 0xdb78107c regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xdb78e72a xfer_to_guest_mode_handle_work +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1847 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb9c8ab8 serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0xdba0e344 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0xdba5778c devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbdc4fdb led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc02eb39 dmi_available +EXPORT_SYMBOL_GPL vmlinux 0xdc046457 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xdc063ad3 devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xdc120746 msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1620a2 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xdc2f2404 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0xdc323357 gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0xdc381740 led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0xdc3b8285 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xdc45a5db edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0xdc52e592 crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0xdc59f601 __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xdc6596fa irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc70cff5 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xdc719bcd ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0xdc75a198 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc7dca23 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0xdc7df67f apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0xdc7e0ac8 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xdc7ee4fc gnttab_page_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xdc811005 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc82dc7c crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcac16fc blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0xdcaf8957 devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0xdcb96dc5 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdcc58a16 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0xdccfc3ad devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0xdcd6048d __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xdceabc6e skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0xdd08ae48 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xdd217687 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xdd27b2af regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xdd450ef1 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0xdd498258 tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd54eb2e unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd662bc8 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xdd68a17d acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xdd7c4a65 __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xdd825849 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0xdd84820c serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xdd8d1850 phy_put +EXPORT_SYMBOL_GPL vmlinux 0xdd9dd80d xen_pvh +EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0xddccc1b9 __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0xddcd3b2f mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0xddd3d2cb __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xdddb2b18 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0xddde0ade register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xddf32322 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xddfc18fa device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0xde036c03 usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0xde080f91 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xde084aee regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xde0efefc msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0xde124db7 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xde125e77 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xde134bff unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xde310373 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xde418d06 device_register +EXPORT_SYMBOL_GPL vmlinux 0xde4435f1 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xde4f9938 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0xde51c1aa ping_close +EXPORT_SYMBOL_GPL vmlinux 0xde52f786 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0xde70216b wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xde7866c8 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0xde7f02fd class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xde98fd74 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0xde9ab8c7 xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xde9d6665 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xde9dfbb1 generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0xdead2e78 reserve_iova +EXPORT_SYMBOL_GPL vmlinux 0xdeb21b1b max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xdebbdd6f irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0xdef2a630 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xdefc1649 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdeffa0a7 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xdf016f00 irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0xdf0c757f ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0xdf0ca3f4 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf1b5576 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xdf1be5e1 __free_iova +EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdf3751ed key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xdf38cac8 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xdf448d1c fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xdf50a9c2 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdf717d8a regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0xdf74c57a regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdf7faa06 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0xdf81924d uv_bios_mq_watchlist_free +EXPORT_SYMBOL_GPL vmlinux 0xdf861903 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xdf9951eb bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xdf9c6f3e sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xdfcb6c90 mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0xdfd0783d devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xdfd603d3 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdfe0d335 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xdfec04df kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xdfed992a sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0xdfff3de4 __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xe00187c2 memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0xe00ef2c1 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xe00f8876 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe015232b crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0xe0197b79 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xe01e2654 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0xe0251e6f ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xe030a4ae preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xe0313d71 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0xe03ba895 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xe03f4155 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0xe0485069 access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0xe04c78db __SCT__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0xe04f35df vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xe051160d spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe055ffad __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0xe05a296b hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xe05c8eb4 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe06375b8 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xe063ee58 dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0xe071fe18 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xe07540a7 watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0xe07adf79 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08de1f1 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xe0a0305c tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xe0a2cd07 __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xe0b1c103 clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0xe0b721f0 acpi_subsys_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xe0baa3ab edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0xe0bbd0bc devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xe0bc513e tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0xe0bd3a52 __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xe0c4e14d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0d0847c spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0xe0d39f1c sgx_set_attribute +EXPORT_SYMBOL_GPL vmlinux 0xe0da54c2 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe0ed8f88 extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0xe0f6d33f phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0xe0ff46d3 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0xe1000717 pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0xe101ff40 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe1122d8a sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xe1193909 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xe119cefb xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0xe11b7652 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xe125d5b4 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0xe1266cfc pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xe158e181 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xe1600dcb fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0xe16b51e4 blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0xe175a7ca ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1805cdc __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0xe198c9c9 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0xe1a8d7c9 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xe1aa2d62 set_hv_tscchange_cb +EXPORT_SYMBOL_GPL vmlinux 0xe1ab22ee __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0xe1b821e9 debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0xe1d1fa1f __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xe1fb5183 uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0xe213ee71 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe21b4536 usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0xe2265d01 spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe23f43a8 power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0xe25473cb relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xe255fdec ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xe25d23f3 blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0xe26410ba scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0xe271f20c __SCT__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0xe28c5a56 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0xe28d72e8 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2b376bc __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xe2c4813d devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xe2c90e14 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xe2ce2b4d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0xe2d20e68 dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0xe2de02b9 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xe30bdc01 edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe31315a4 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0xe3205873 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xe32927b0 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xe340af9a debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xe349fbf5 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0xe374728b efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0xe37f19c8 ptdump_walk_pgd_level_debugfs +EXPORT_SYMBOL_GPL vmlinux 0xe380bcb1 devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xe389ddce crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xe397caf5 seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0xe39d0794 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0xe3acc735 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0xe3b51be8 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3c8ff72 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xe3cd5fae klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe3cfcdd0 __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xe3d7748d spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3e4e1f9 crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0xe3e88acb __get_current_cr3_fast +EXPORT_SYMBOL_GPL vmlinux 0xe3ef2d4c dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xe3f360bb ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe403f9ae syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xe405f32b perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0xe40bd344 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe41a5ee9 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xe41e5380 dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0xe4248980 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4470876 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xe4518521 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xe4781561 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0xe48611ac trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0xe4896523 xfrm_put_translator +EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0xe4ae19b8 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0xe4c2c66c rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xe4c49d6d dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0xe4cbdfa1 start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe4cf918c watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe4db7d7a attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0xe52da673 acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0xe56990d3 trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0xe57f697e __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58b9994 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xe58ea52f validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0xe5af0d9a fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0xe5c02b64 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe5cc59a5 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xe5ce1a56 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0xe5d28ee5 devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0xe5f0de07 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0xe5f35306 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0xe5f3aa28 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0xe6004665 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe602b755 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe60632a9 edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xe60ba332 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xe60f7037 dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0xe612a7a6 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0xe6210217 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0xe634d170 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xe638dc6a usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xe639e8c2 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe65627b0 __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xe65a8879 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0xe65bd47c genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0xe65c9447 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xe68765c7 get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe6955cd3 nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe699436d xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0xe69c2e41 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0xe69cd288 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe69e00c1 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0xe6a257f1 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0xe6bfb196 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xe6c1062a dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0xe6d29b79 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe6d85f4e dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0xe6dbeac2 inode_dax +EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe6e6f9c1 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0xe6f52443 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xe6f83837 acpi_bus_attach_private_data +EXPORT_SYMBOL_GPL vmlinux 0xe700d767 reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0xe702e1d8 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xe7163b52 dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe734707b ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xe740b58a hv_vp_assist_page +EXPORT_SYMBOL_GPL vmlinux 0xe74a3a16 devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xe74c831f usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0xe74e3c29 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xe75963af tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0xe75bc340 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xe76099cc gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0xe7617810 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0xe7690588 __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0xe79018f6 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xe7915bd7 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xe79bf0c4 klp_shadow_get +EXPORT_SYMBOL_GPL vmlinux 0xe7a077b6 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xe7a9158e phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0xe7b0ff43 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xe7b96be0 tdx_mcall_get_report0 +EXPORT_SYMBOL_GPL vmlinux 0xe7c94941 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xe7e104ad ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0xe80c7394 crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe81cabc1 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xe82c9619 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xe83c2f37 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xe83eba32 itlb_multihit_kvm_mitigation +EXPORT_SYMBOL_GPL vmlinux 0xe8416d07 vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86a4101 hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0xe891509e pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0xe89c6a60 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0xe8a6aab1 dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0xe8c0065d memory_group_register_static +EXPORT_SYMBOL_GPL vmlinux 0xe8c778a8 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0xe8df9c04 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xe8e235c8 arch_static_call_transform +EXPORT_SYMBOL_GPL vmlinux 0xe8ece2c7 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xe8f04ba2 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xe90a5747 device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0xe9135819 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe9221137 fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xe9291baf ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xe9312056 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9559f78 acpi_subsys_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe966610a vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0xe96ca5bd debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xe973fef2 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0xe984ae5c page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0xe9925143 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xe9a2907e device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xe9b8cf0a devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0xe9ce931a kvm_para_available +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d3c623 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0xe9fadf16 __SCT__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea15c9b0 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xea2dfc94 acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xea3a23f3 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0xea49305d mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0xea51c712 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xea682563 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xea7cb56a fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0xea82d546 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xea966220 led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xeab07116 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xead54924 mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xead5c8e5 clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0xeae63ae0 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xeaef0615 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xeaf0a57c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xeaf3cb23 crc64_be +EXPORT_SYMBOL_GPL vmlinux 0xeaf81700 dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xeb0cd942 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0xeb11b784 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xeb16e3bd ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xeb24ba84 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xeb29b342 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xeb2fb853 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0xeb2feda5 addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0xeb3f28e9 uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0xeb52c70c xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0xeb833c22 xen_has_pv_disk_devices +EXPORT_SYMBOL_GPL vmlinux 0xeb8ecc18 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xeb98bcf0 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xeb9903b0 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xebb77657 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xebbf6012 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xebc9a09f lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0xebcd3ac9 __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xebd4cc11 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0xebde80ba platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0xebf23c1a fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xebf91ba8 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0xec055e60 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xec1b7939 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xec271118 dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0xec3152b3 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xec350d1c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xec3b8466 iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0xec40d363 fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0xec478426 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0xec5668f6 dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0xec5ad73b trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0xec774acb cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xec788566 acpi_target_system_state +EXPORT_SYMBOL_GPL vmlinux 0xec83639a component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0xeca4e3c8 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xecb1302d i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0xecba68e3 gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0xecce9973 phy_reset +EXPORT_SYMBOL_GPL vmlinux 0xecd6fb94 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xecd8f23d xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xecdd0cf1 gnttab_pages_clear_private +EXPORT_SYMBOL_GPL vmlinux 0xecec7c9a blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0xed0854ad __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xed1adefc devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xed1d8828 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xed1fd9f7 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0xed297e6a i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xed2c5bcf power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0xed2ddbfa set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xed2e55a0 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xed39b7b8 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0xed43ef40 devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xed57eb4c disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0xed6aa713 sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0xed6db9f6 of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xed7dcfac dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0xed918dde hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0xed9abeac xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xeda296b6 regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0xeda8461e disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0xeda9bf40 devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xedab418b devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xedb3d79e ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0xedbcff36 crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0xedcfd2cf xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xedd092d5 power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0xede2df34 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xede4fc63 tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0xede78d43 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xede9a09a btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0xededa788 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xedf366e7 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0xee0402be __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xee0ae259 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xee13e697 set_personality_ia32 +EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee4c76d8 thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0xee518148 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xee56e655 pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0xee5f12bc proc_get_parent_data +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 0xee8d2ae3 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xee9dd997 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xeea0685b pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0xeeac56b8 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xeeade72c param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xeeae67b4 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0xeecda1d8 extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0xeecf923a balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xeed0cea4 kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0xeee1e191 rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0xeee2021e nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0xeee667d3 fpregs_assert_state_consistent +EXPORT_SYMBOL_GPL vmlinux 0xeef0f10d devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0xef1374d9 modify_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0xef18d2b3 dax_add_host +EXPORT_SYMBOL_GPL vmlinux 0xef1f22f7 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef29fcdd clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xef34bf3e hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0xef5db66d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0xef7275d5 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xef8fc95f kvm_async_pf_task_wait_schedule +EXPORT_SYMBOL_GPL vmlinux 0xef92ef33 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefb31ab7 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0xefc335d3 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xefc5ebd8 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xefd8ef18 clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0xefeafcf1 edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0xefff0132 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xf0021b00 input_class +EXPORT_SYMBOL_GPL vmlinux 0xf02bbfbb fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xf03bd6af cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0xf04429b4 acpi_bus_get_status_handle +EXPORT_SYMBOL_GPL vmlinux 0xf0482bc1 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf0593601 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf05a1426 raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0710d46 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0xf07e7278 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0xf09a90cc sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xf0c3261b reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0c3a3c2 io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf0c5a1e7 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xf0e38abe devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xf1138636 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf11d9290 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xf14317ef devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf15b8f15 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xf15babfa tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf188a662 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0xf1a8c4e5 acpi_get_and_request_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xf1cd8929 kvm_read_and_reset_apf_flags +EXPORT_SYMBOL_GPL vmlinux 0xf1ea3a8d usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0xf1fc2468 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xf1fca057 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf203e043 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xf2045d98 __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf21ef60f fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xf25d1f81 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xf26c8a53 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xf27d0a7b gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf29278b2 regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0xf29b7a5d nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xf2a3ba8f __intel_scu_ipc_register +EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xf2c366e0 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xf2c3a11a clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xf2c53d53 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xf2da6946 iommu_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xf2ea88e8 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xf2f72f5c sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0xf302c4b4 tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0xf30887d9 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xf30a5502 cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0xf311e156 key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0xf31544c4 swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0xf31632e0 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0xf31730db kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xf3189f7e __uv_cpu_info +EXPORT_SYMBOL_GPL vmlinux 0xf3196d04 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xf31ad8ca sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3201b2c ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xf321a7d3 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf33a6517 sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xf33bcf83 pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xf358083e tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xf35a3aef dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0xf367b0a2 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0xf37a3fd3 dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf3967c94 xen_xlate_remap_gfn_array +EXPORT_SYMBOL_GPL vmlinux 0xf39d5b77 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xf39f4c8f pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf3b05a65 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0xf3b16d64 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b736bf transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf3b95d79 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xf3ba621a wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0xf3bb71e6 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf3c2a47c ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xf3d2ffb4 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xf3d532dc acpi_initialize_hp_context +EXPORT_SYMBOL_GPL vmlinux 0xf3d8b111 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xf3e489db device_create +EXPORT_SYMBOL_GPL vmlinux 0xf3ef7b33 __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xf3fe5610 metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0xf41057ca ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xf4423d11 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xf4438ce9 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0xf44e8ac4 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xf466ca5a tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xf467e45b trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf4707cf4 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0xf4a9d03b __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0xf4b439f3 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xf4c28039 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f8f reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0xf4d0bc20 devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xf4dd89bf uv_get_hubless_system +EXPORT_SYMBOL_GPL vmlinux 0xf4df3e96 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf4e309c7 usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0xf4f69d1f clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0xf506aab0 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0xf511b7c3 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf5147cff spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf515821d phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0xf51737cd pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54eb33e netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf552cf03 akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf557286c ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xf55a0b98 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0xf5820762 ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0xf583c44d __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xf58765eb thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf587ccba regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xf58abf2f pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf59633ff usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xf59b4270 bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a25a74 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xf5a3ba99 linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b3f634 serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0xf5f5f961 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xf5f9efa7 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0xf60dcaf0 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xf6111198 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0xf6377243 __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0xf63c0d23 fpu_enable_guest_xfd_features +EXPORT_SYMBOL_GPL vmlinux 0xf64392cd phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0xf64aaa25 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf657136d virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0xf65d46a4 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xf65f59ca sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf663ee2f pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0xf667b78d dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xf674db28 i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0xf677c783 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0xf6995ee6 nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0xf69e6297 spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0xf6a28554 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xf6b46007 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xf6c71a25 cper_severity_str +EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6ca4e79 devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xf6dcbaf0 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xf6e14042 virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0xf6e772c3 irq_bypass_unregister_producer +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6e901b1 acpi_quirk_skip_i2c_client_enumeration +EXPORT_SYMBOL_GPL vmlinux 0xf6ea523b genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0xf6f16c56 rcu_barrier_tasks +EXPORT_SYMBOL_GPL vmlinux 0xf6f4d95c __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0xf707a3fd x86_platform +EXPORT_SYMBOL_GPL vmlinux 0xf70e4a4d preempt_schedule_notrace +EXPORT_SYMBOL_GPL vmlinux 0xf722625f of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0xf7300268 fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0xf735318e ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf744298f hv_unmap_memory +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 0xf7559f63 perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0xf759cd87 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0xf764f40f nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0xf767ca35 fixed_percpu_data +EXPORT_SYMBOL_GPL vmlinux 0xf7698fc8 pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0xf7750b5b battery_hook_register +EXPORT_SYMBOL_GPL vmlinux 0xf7772bde xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0xf77cbcd4 kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0xf7866b4f bind_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xf78ac150 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf7abd49f validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0xf7afb369 btree_init +EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xf7c3f273 xen_resume_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf7cba840 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xf7d961d8 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0xf7e3f1e2 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf7f44ff1 synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0xf7fbf0aa devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf80957b1 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xf813fa3c pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0xf81dce70 thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8417c5f debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0xf84a22ce class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xf8538310 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8540d8c sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0xf85a98f0 i2c_acpi_waive_d0_probe +EXPORT_SYMBOL_GPL vmlinux 0xf8767ab2 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0xf8783b43 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0xf881cecd load_fixmap_gdt +EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf89d814a ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xf8c9bb57 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xf8cb597f mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0xf8d09ba9 of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xf8e6f1b9 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3986 pat_pfn_immune_to_uc_mtrr +EXPORT_SYMBOL_GPL vmlinux 0xf902f7b2 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xf91a2a90 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xf9296cca dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf935f574 proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0xf949dcbb __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0xf955e9c5 bprintf +EXPORT_SYMBOL_GPL vmlinux 0xf95e44df sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xf9629bd9 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xf9652c89 ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0xf96618e0 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xf9696cf0 __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0xf974dd05 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xf9763668 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0xf978c2d6 ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0xf97d1600 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xf9813144 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0xf9889032 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xf99aa7fb __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9acd58a xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf9afb204 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf9b34a0b iopf_queue_free +EXPORT_SYMBOL_GPL vmlinux 0xf9b822a4 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xf9c9f70f scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xf9da1620 __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0xf9e241e5 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xf9e3e3f4 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xf9ee1209 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xf9f5b411 icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0xfa00b78e usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfa11f84e usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1fbc39 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xfa2bda6e pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xfa349688 aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xfa35044a alternatives_patched +EXPORT_SYMBOL_GPL vmlinux 0xfa36dee1 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0xfa3af1f2 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xfa43cefc is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xfa5e58de ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0xfa5f078d static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xfa600b30 generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0xfa82a157 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xfa9f11b3 __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xfaaf8621 power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0xfab00c85 devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0xfab53ed9 pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0xfab6f337 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xfabe1f51 blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0xfac4348a __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0xfae291d9 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0xfaead581 hsu_dma_get_status +EXPORT_SYMBOL_GPL vmlinux 0xfb018242 bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xfb190a5a nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0xfb2d58fe devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb6c6b96 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7c28ab restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xfb86db83 param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0xfb90d9de devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0xfba6a8a6 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0xfbaa4632 metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xfbb2192d uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action +EXPORT_SYMBOL_GPL vmlinux 0xfbd11f99 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xfbd93c73 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xfbeb8298 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xfbf667c5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xfbf74718 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfbfffdb7 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0xfc03a4ca proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc14bb2e dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xfc1f4bfc udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc21a854 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xfc23636e vfio_virqfd_enable +EXPORT_SYMBOL_GPL vmlinux 0xfc254d15 gnttab_free_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xfc29cffb regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xfc2b6473 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xfc3326e2 acpi_spi_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc464ebd netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0xfc4aeb70 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xfc5daced __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xfc702a94 devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0xfc7b5b73 pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0xfc7d31aa crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xfca0f17b blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xfca3d3cf tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0xfca3ea69 fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0xfca7f934 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0xfcbfec70 add_memory_driver_managed +EXPORT_SYMBOL_GPL vmlinux 0xfcc1b5eb crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0xfcc1bc26 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xfcc1edd3 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfcc85887 devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0xfcca5424 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xfcdf6465 l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfce8a188 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfd070696 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0xfd0fef52 syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0xfd102d8e gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xfd1688e3 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xfd1afd72 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xfd22b73e ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xfd2c62ad devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfd3d808a unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xfd43cf57 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xfd48f634 sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0xfd5b1c72 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0xfd60093b scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0xfd612a61 perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0xfd6ff73c fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd7821f8 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xfd88957b debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xfd93be59 pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0xfdac5e95 unwind_get_return_address +EXPORT_SYMBOL_GPL vmlinux 0xfdad35db irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0xfdaf32ab pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfde49b9c debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfdea2d04 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfdf2129c acpi_pm_set_device_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xfdf5ce12 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0xfdffacdc register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xfe048319 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xfe0596d6 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xfe0e7cd3 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0xfe19dc28 vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0xfe245fca devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0xfe31310e regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfe371a0a rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0xfe3a6de3 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfe3ce432 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe5aad0c divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xfe5d8404 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xfe6f5da2 devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe74bb91 ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0xfe825e08 phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0xfe87795b iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xfe88bf12 mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe999c10 gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0xfe9be13c __device_reset +EXPORT_SYMBOL_GPL vmlinux 0xfea446b6 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xfeaf9afb acpi_set_modalias +EXPORT_SYMBOL_GPL vmlinux 0xfeb45def input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed47b8e ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xfed561ff divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xfeeecd05 apei_read +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0e714e folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0xff11cacc pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0xff1666f3 reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0xff1e67b9 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0xff291ecf clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xff302f76 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xff358ca8 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0xff42c374 usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0xff4d066f dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xff4d4a9a __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xff6af778 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xff6e9042 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0xff70c1fe bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xff716d44 __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xff7d1ffe fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0xff86a994 regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0xff88e65f __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xff8e74e2 arch_haltpoll_enable +EXPORT_SYMBOL_GPL vmlinux 0xff8f29ea fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0xff8f5439 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xffa76497 md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xffc86f14 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0xffd19924 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0xffe130c0 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xffef8f10 acpi_spi_count_resources +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x375a83f8 hwmon_device_register_for_thermal vmlinux +I915_GVT EXPORT_SYMBOL_GPL 0x08b358e3 __i915_gem_object_set_pages drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x0e28c82b i915_gem_prime_export drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x1169b176 __px_dma drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x14e6d85a i915_gem_ww_ctx_fini drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x1d012eb0 intel_runtime_pm_put_unchecked drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x1d76111c i915_fence_ops drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x243dcf3d shmem_pin_map drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x24b78b5c intel_gvt_iterate_mmio_table drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x35415bdc i915_gem_object_init drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x38946d51 __intel_context_do_unpin drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x40ef919b intel_runtime_pm_get drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x46fb5803 i915_ppgtt_create drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x4a834593 i915_gem_object_ggtt_pin_ww drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x4b0a0009 intel_context_create drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x500c29a0 intel_gvt_clear_ops drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x61e8d9ad i915_gem_object_create_shmem drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x69c6707a __i915_gem_object_flush_map drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x6c204ceb __intel_context_do_pin drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x6e19e746 i915_gem_ww_ctx_init drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x72d4ddf4 i915_gem_gtt_insert drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x84903a75 i915_request_wait drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x890fc889 i915_vm_release drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x8b0833ba intel_uncore_forcewake_put drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0x8b8c2d5f i915_gem_object_set_to_cpu_domain drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xa53dd596 i915_gem_object_alloc drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xa7d2bf11 i915_gem_ww_ctx_backoff drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xa9dcfa33 shmem_unpin_map drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xad54ee21 _i915_vma_move_to_active drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xaf667db1 intel_uncore_forcewake_for_reg drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xb9855f19 i915_gem_object_pin_map drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xd5fd5631 i915_unreserve_fence drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xdd6f6bc3 i915_request_add drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xe59c4162 i915_request_create drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xed689f39 intel_uncore_forcewake_get drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xf1952dd6 intel_ring_begin drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xfa4f8917 i915_reserve_fence drivers/gpu/drm/i915/i915 +I915_GVT EXPORT_SYMBOL_GPL 0xfffc7491 intel_gvt_set_ops drivers/gpu/drm/i915/i915 +IDXD EXPORT_SYMBOL_GPL 0x1869f035 idxd_dmaengine_drv drivers/dma/idxd/idxd +IDXD EXPORT_SYMBOL_GPL 0x1b2c491c __idxd_driver_register drivers/dma/idxd/idxd_bus +IDXD EXPORT_SYMBOL_GPL 0x2df414dc idxd_driver_unregister drivers/dma/idxd/idxd_bus +IDXD EXPORT_SYMBOL_GPL 0x5e90ffc6 idxd_user_drv drivers/dma/idxd/idxd +IDXD EXPORT_SYMBOL_GPL 0xb2c8df51 idxd_drv drivers/dma/idxd/idxd +IDXD EXPORT_SYMBOL_GPL 0xef2d91a0 dsa_bus_type drivers/dma/idxd/idxd_bus +IIO_AD5592R EXPORT_SYMBOL_GPL 0x9524c30c ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0xd7df45b2 ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0xcd1f1538 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0xe948da46 ad5686_probe drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0xe4bad5aa ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0xfb618e1c ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x5f5e1172 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0x8dc2d97f ad7606_probe drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0x14b3abb0 __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0x4a56ee46 adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x03b8ae50 __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x68a3d4c5 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7ff732ae __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x8b90c5c4 adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x8c81823b adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xa8e15e57 __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xabda0150 adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xac50b0ad __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xeb0c6d65 __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xec3405bc devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x60a373db __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x5dcfba8b adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x8401eedc adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xf6f7b9f3 adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb446fa86 adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xda663f0c adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0xd795e077 adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x19979080 adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0xfa6b354a adxl372_probe drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x00868ee2 ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x25443001 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x4e988534 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x6fc9c6ea ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x83982bcb ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xaa86f087 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xbc5055f4 ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xc85a33a9 ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xcf84516d ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xe4166970 ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0xbf67a3bd bma400_probe drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0xeb3c2c79 bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x2234fa80 bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7d4a16de bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x80c6a7c0 bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xa62d9712 bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x1272195d bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x355824e8 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x5d6488c7 bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xbfcba8b0 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0xbf72bf3a bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0xfdcc5bc7 bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x3d7a0f21 bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xc2ce5926 bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xcbf5409a bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xf4b300c2 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7d8acdee fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x95692bef fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x9dd6cca1 fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xdf54592b fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x00ea097b hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x04d69a08 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x2c672bad hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x2e9f9e3d hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x4e353bd5 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x4f13079f hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x505c1de6 hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x88a567a3 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x88dd1fe4 hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xbb3e1ac3 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xc199a29f hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xcdba8f7e hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x0a650524 hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x2b41de6e hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x41fe9194 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x72018fdc hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x8ece1173 hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xcb63472d hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xd28da9ad hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xe43b922c hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x916d97a6 kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xd6d70a39 kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xea5918ef kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x0c125c94 ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x40d44f04 ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x57ebc158 ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x5986a4be ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x5aeccd89 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x94aa3bf2 ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xaab01180 ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xaff7c16d ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xc095ad79 ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x3dd909cb mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0xfae4ce71 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0xfdf03223 mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x1c503f22 mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x2cf4f3ce mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x4c809578 mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x52ca5cc4 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x569c1502 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5d1ea275 mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5d7ca842 mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5fa70b06 mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7b28bed0 mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x8ec2e893 mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9dade517 mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xadf75942 mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbcd7fe96 mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xc0229d39 mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xdd9d4ed5 mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xedbd808c mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xeee762be mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0x351ad316 mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0x791a7417 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0xe3688a5f ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x230e4c5f rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xaa911f08 rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xcc7209be rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x148b119e scd30_probe drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0x5fa3c767 scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x00d2db21 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x197e5e05 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x3794c842 ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x4e6b919e ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x6baded53 ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x6fc819bf ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x9aae9b6d ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0xba1a0171 ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x0820f2c7 st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x0af8ddc7 st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x0bf4efdc st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x0c9cf789 st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x1bbbe3a5 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x2989db5b st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x3da66220 st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x4fc5efc0 st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x5a19bf60 st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x78faea89 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x8d77c197 st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x9928a452 st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0xa7b8dc29 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xac52a981 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0xb1e6b2d6 st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0xbb30f237 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xbe7e780a st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xbecaabc0 st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xc3845a9a st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xc3b85fc8 st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xcf900dfe st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd2542203 st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xe3ba0812 st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xeff6142d st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xf5a74189 st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0xfb586d5a st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0xd4627f1b st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x0144cd5a st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x0e63e745 st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x2d764d06 zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x40552af3 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x6528abd2 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x6fd9a01e zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x9067da57 zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xcdce02f9 zpa2326_remove drivers/iio/pressure/zpa2326 +INT340X_THERMAL EXPORT_SYMBOL_GPL 0x2b72bad6 processor_thermal_send_mbox_write_cmd drivers/thermal/intel/int340x_thermal/processor_thermal_mbox +INT340X_THERMAL EXPORT_SYMBOL_GPL 0xac156a23 processor_thermal_send_mbox_read_cmd drivers/thermal/intel/int340x_thermal/processor_thermal_mbox +INTEL_UNCORE_FREQUENCY EXPORT_SYMBOL_GPL 0x2c725389 uncore_freq_add_entry drivers/platform/x86/intel/uncore-frequency/intel-uncore-frequency-common +INTEL_UNCORE_FREQUENCY EXPORT_SYMBOL_GPL 0x853d7f1c uncore_freq_common_init drivers/platform/x86/intel/uncore-frequency/intel-uncore-frequency-common +INTEL_UNCORE_FREQUENCY EXPORT_SYMBOL_GPL 0xbf3d935d uncore_freq_common_exit drivers/platform/x86/intel/uncore-frequency/intel-uncore-frequency-common +INTEL_UNCORE_FREQUENCY EXPORT_SYMBOL_GPL 0xf29f5712 uncore_freq_remove_die_entry drivers/platform/x86/intel/uncore-frequency/intel-uncore-frequency-common +IWLWIFI EXPORT_SYMBOL_GPL 0x122783b0 iwl_acpi_get_tas drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1332e4de iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x13b69f6f iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x177e948f iwl_acpi_get_dsm_u8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1843b56f iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x192b9742 iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1af02f13 iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1fbbf941 iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1fc66765 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2087a207 iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x216aafbe __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2710c362 iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x291681d2 iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2b59ec5a iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2ddd6521 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2fd6b5f1 iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3e2a8cf8 iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x405fae96 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x42a5ebd8 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4314f09a iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x453d1abc iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4cd89fd7 iwl_sar_get_wgds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4f94b6f9 iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x56d47437 iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x57888144 __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5887f7ed __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5988395c iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5b70fc8a iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x625c6df8 iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x656a0370 iwl_sar_select_profile drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x689f594a iwl_uefi_get_sgom_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6caffdd7 iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7b99a3ff iwl_acpi_is_ppag_approved drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7d8d12eb iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8079fa53 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x828c6838 iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x84bb50e1 iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x874c77de iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x87b620fc iwl_acpi_get_dsm_u32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8c3f12f9 iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8dbce7e0 iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9038811a iwl_rfi_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x911e7971 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x926b8f0d iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x95d08526 iwl_sar_geo_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9a1c8251 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9b5692f9 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9e09354c iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9e5e9ef7 iwl_sar_get_ewrd_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa4e21fcd iwl_acpi_get_object drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa94d27fd iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa9c70cea __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xab0addce iwl_acpi_get_eckv drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb37b318c iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb40e6f7e iwl_acpi_get_lari_config_bitmap drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb5df6982 iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb649895c iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7d5ffb1 iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7fe1631 iwl_sar_geo_support drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xba08534f iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbafc8994 iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc008bed6 iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc4f0963b iwl_acpi_get_mcc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc86cc27e iwl_read_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xcbecd65c iwl_sar_get_wrds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xce0c6460 iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd0b2948b iwl_acpi_get_pwr_limit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd341e011 iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd45a35ad iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd8ae0832 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd931ea8b iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xdb8047ac iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xdc62c18d _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xde73d05e iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe0eb5838 iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe26e8c01 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe35e58f0 iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe6baa52c iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe75b7e77 iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea035c31 iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea1b26fc iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea5a0947 iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xeb2a9152 iwl_acpi_get_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xeb6d3402 iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xebf4d165 iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xef413d2d iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf29a0006 iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf5e81197 iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf88964e4 iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf8c93ba8 iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfc1e6f41 iwl_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x2c1f0db7 ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0x4879c226 ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x2dce9c5d __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x4e21c685 mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x4ec01b6e mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x6f11dbb6 chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x73853769 mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x83adad9a mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x94265759 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa2c78d7d mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xbe1b437c mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xd8f8eb42 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xd9c7bb50 mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xe1398413 mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xe20a7b48 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xeb2c8905 mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xee4c512e mcb_unregister_driver drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x104a7cdd nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x32b46db5 nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x6dc87e62 nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7056e308 nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xb6684f7b nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xde0fcc80 nvme_passthru_end drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x02569909 peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x04fec07e peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x052189fd peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x09e5a2ad peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x255458f5 peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2583328f peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2a949fe9 peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x3370bf37 peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x39906b9f peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x4157da54 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x427f297a peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x4db20ecc peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6995dcb4 peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6a6f5169 peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6e6f85b3 peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8309ac61 peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x854369d7 __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8e8b4761 peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x92c48b74 peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x9ed938e6 peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xaa320b53 devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb711b6a4 peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xc82bc5e7 peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xcc01fac4 peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xcf3fd08a peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xd0a8abf6 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xdcd2f319 peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf1bf51a7 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf407b520 peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x153630cf peci_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x6d397321 peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x8e9a3f2b peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xb79b10e6 peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xdf4a2aea peci_ep_pci_local_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x0792b4ff pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x09cd1733 pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x0a83abf4 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x0a9d29ae pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x0d778eec pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x16582917 pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3222683c pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3a12eb97 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x41a7758f pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x66e20ab0 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x6dfcb7cb pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x739c1e47 pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7d35843b pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x80dee9fd pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xa4850d3d pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xae748ef7 pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd2206486 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd93b6a4b pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xf085e5b5 pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x378b1978 sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x50ba7dbe sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xc17dc029 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd07d0025 sx_common_events drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd5455358 sx_common_write_event_config drivers/iio/proximity/sx_common +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x0e9b1004 hda_cs_dsp_write_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x2b707546 hda_cs_dsp_fw_ids sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x31b96028 hda_cs_dsp_control_remove sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x37925208 hda_cs_dsp_control_add sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x81b127d6 hda_cs_dsp_read_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x520765c6 cs35l41_hda_pm_ops sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x68909a2c cs35l41_hda_probe sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xdf041adc cs35l41_hda_remove sound/pci/hda/snd-hda-scodec-cs35l41 +SND_INTEL_SOUNDWIRE_ACPI EXPORT_SYMBOL 0xbb4f9d1f sdw_intel_acpi_scan sound/hda/snd-intel-sdw-acpi +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0x49215a78 acp_dmic_dai_ops sound/soc/amd/acp/snd-acp-pdm +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0x5c5d3c74 asoc_acp_i2s_probe sound/soc/amd/acp/snd-acp-i2s +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0x8f4c483c asoc_acp_cpu_dai_ops sound/soc/amd/acp/snd-acp-i2s +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0xa091d83b acp_machine_select sound/soc/amd/acp/snd-acp-pcm +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0xd3827499 acp_platform_register sound/soc/amd/acp/snd-acp-pcm +SND_SOC_ACP_COMMON EXPORT_SYMBOL_GPL 0xe764baaa acp_platform_unregister sound/soc/amd/acp/snd-acp-pcm +SND_SOC_AMD_MACH EXPORT_SYMBOL_GPL 0xcc70095b acp_sofdsp_dai_links_create sound/soc/amd/acp/snd-acp-mach +SND_SOC_AMD_MACH EXPORT_SYMBOL_GPL 0xfd0ecff2 acp_legacy_dai_links_create sound/soc/amd/acp/snd-acp-mach +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x089d3cbc cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x2c205ac5 cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xa503457d cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x4f57ef8e cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x8093e486 cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0xc3ab25ca cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_INTEL_HDA_DSP_COMMON EXPORT_SYMBOL 0x6156255a hda_dsp_hdmi_build_controls sound/soc/intel/boards/snd-soc-intel-hda-dsp-common +SND_SOC_INTEL_SOF_CIRRUS_COMMON EXPORT_SYMBOL 0x7319fd4f cs35l41_set_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-cirrus-common +SND_SOC_INTEL_SOF_CIRRUS_COMMON EXPORT_SYMBOL 0xe9a446dc cs35l41_set_dai_link sound/soc/intel/boards/snd-soc-intel-sof-cirrus-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x03f2767d max_98390_spk_codec_init sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x1187d6b0 max_98390_ops sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x183d162b max_98390_components sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x20ca97fa max_98357a_dai_link sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x37caf42d max_98373_trigger sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x62a59af3 max_98390_set_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x661a2065 max_98373_ops sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x7afe541b max_98373_spk_codec_init sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x80b1b594 max_98360a_dai_link sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x8638b9a8 max_98390_4spk_components sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x87362468 max_98373_set_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0x9c5c8e32 max_98373_dapm_routes sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_MAXIM_COMMON EXPORT_SYMBOL 0xa293dbe5 max_98373_components sound/soc/intel/boards/snd-soc-intel-sof-maxim-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0x12e1b150 sof_rt1011_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0x39bd682e sof_rt1015p_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0x6a8e66e4 sof_rt1015_dai_link sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0x90e06214 sof_rt1019_dai_link sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0x91335664 sof_rt1308_dai_link sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0xbcaa8be2 sof_rt1011_dai_link sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0xc01823b6 sof_rt1015_codec_conf sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_INTEL_SOF_REALTEK_COMMON EXPORT_SYMBOL 0xf2199eb6 sof_rt1015p_dai_link sound/soc/intel/boards/snd-soc-intel-sof-realtek-common +SND_SOC_SOF_ACPI_DEV EXPORT_SYMBOL 0x78518a7e sof_acpi_pm sound/soc/sof/snd-sof-acpi +SND_SOC_SOF_ACPI_DEV EXPORT_SYMBOL 0x7d9fcf89 sof_acpi_probe sound/soc/sof/snd-sof-acpi +SND_SOC_SOF_ACPI_DEV EXPORT_SYMBOL 0x85d9f6ab sof_acpi_remove sound/soc/sof/snd-sof-acpi +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x0d9fa3f3 acp_mailbox_write sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x1adc6b30 acp_dsp_stream_get sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x35fb27dd acp_sof_ipc_irq_thread sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x39fbe5f2 acp_mailbox_read sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x3de5b6e2 acp_dsp_stream_init sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x4119f31a acp_sof_ipc_send_msg sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x411ba479 acp_sof_trace_release sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x471b4a17 acp_dsp_pre_fw_run sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x47995fa3 acp_sof_dsp_run sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x511762d1 acp_dsp_block_read sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x5bebf005 acp_pcm_open sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x719a13d6 acp_get_bar_index sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x7caa431e acp_sof_ipc_get_mailbox_offset sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x7e59da1a acp_dsp_block_write sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0x88b9d2a5 acp_dsp_stream_put sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xaa5239b4 amd_sof_acp_probe sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xc7d17870 amd_sof_acp_remove sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xccb490ea acp_sof_ipc_msg_data sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xe2244fd7 acp_pcm_close sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xf6d149db acp_sof_trace_init sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_AMD_COMMON EXPORT_SYMBOL 0xfcfb4581 acp_pcm_hw_params sound/soc/sof/amd/snd-sof-amd-acp +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x1a751a85 sof_client_get_dma_dev sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x25105fae sof_client_register_fw_state_handler sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x4b129fb0 sof_client_register_ipc_rx_handler sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x52f21852 sof_client_get_ipc_max_payload_size sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x663f9ec5 sof_suspend_clients sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x72410f87 sof_client_dev_register sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0x9ed640ef sof_client_ipc_tx_message sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xa1574c72 sof_client_core_module_get sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xab10b9a0 sof_resume_clients sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xae562dc1 sof_client_get_fw_state sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xbd97d187 sof_client_get_debugfs_root sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xca408e55 sof_client_unregister_fw_state_handler sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xe83ea6b2 sof_client_get_fw_version sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xec9e898f sof_client_get_ipc_type sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xf394d4f8 sof_client_core_module_put sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xf7f5d902 sof_client_dev_unregister sound/soc/sof/snd-sof +SND_SOC_SOF_CLIENT EXPORT_SYMBOL_GPL 0xfe49d77f sof_client_unregister_ipc_rx_handler sound/soc/sof/snd-sof +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x52aedd06 hda_codec_jack_wake_enable sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0x92524644 hda_codec_jack_check sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC EXPORT_SYMBOL 0xe0b20ff9 hda_codec_probe_bus sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x1113c90d hda_codec_i915_init sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x333f6919 hda_codec_i915_exit sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_HDA_AUDIO_CODEC_I915 EXPORT_SYMBOL 0x840a7ec0 hda_codec_i915_display_power sound/soc/sof/intel/snd-sof-intel-hda +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0x1154a516 atom_set_mach_params sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0x3503e0b1 atom_irq_thread sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0x622d55c2 atom_run sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xb1f7adb6 atom_get_mailbox_offset sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xbc94d3fc atom_machine_select sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xc8c72a39 atom_dai sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xc8ed63ce atom_dump sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xcade057c atom_send_msg sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xdf152847 atom_reset sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xe8349f9c atom_get_window_offset sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_ATOM_HIFI_EP EXPORT_SYMBOL 0xefa4a41a atom_irq_handler sound/soc/sof/intel/snd-sof-intel-atom +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x0504a8d4 icl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x14f58e75 tgl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x211a5e74 sof_apl_ops_init sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x38b55a18 mtl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x3f907cf6 apl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x521ed29f sof_mtl_ops_init sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x64d28cbc sof_tgl_ops_init sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x6c89d107 sof_icl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x75e52c40 sof_mtl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x7f78d1ee sof_tgl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x901f1231 cnl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x95c5000e adls_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0x9c9eac0f sof_cnl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xb1600537 sof_icl_ops_init sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xb3f45422 sof_cnl_ops_init sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xc4ae27f9 hda_pci_intel_probe sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xc838865a ehl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xcd622bd5 jsl_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xe3cb4de3 tglh_chip_info sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_INTEL_HDA_COMMON EXPORT_SYMBOL 0xe95a4ce1 sof_apl_ops sound/soc/sof/intel/snd-sof-intel-hda-common +SND_SOC_SOF_PCI_DEV EXPORT_SYMBOL 0x063e2a52 sof_pci_probe sound/soc/sof/snd-sof-pci +SND_SOC_SOF_PCI_DEV EXPORT_SYMBOL 0x85b371b8 sof_pci_remove sound/soc/sof/snd-sof-pci +SND_SOC_SOF_PCI_DEV EXPORT_SYMBOL 0xe4203956 sof_pci_pm sound/soc/sof/snd-sof-pci +SND_SOC_SOF_PCI_DEV EXPORT_SYMBOL 0xe5d5decd sof_pci_shutdown sound/soc/sof/snd-sof-pci +SND_SOC_SOF_XTENSA EXPORT_SYMBOL 0x41bc3311 sof_xtensa_arch_ops sound/soc/sof/xtensa/snd-sof-xtensa-dsp +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x039d8b45 sdw_intel_exit drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x576b08c2 sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x5af438eb sdw_intel_enable_irq drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x6e3247ee sdw_intel_startup drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaa52eba1 sdw_intel_thread drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xe51ca4a6 sdw_intel_probe drivers/soundwire/soundwire-intel +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x02a2f807 dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x24540257 dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x3fc022eb dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x95fc308b dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x99d72512 dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xa00f2d45 dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xa51c6251 dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xdef401e2 dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xe5049eb7 dw_spi_update_config drivers/spi/spi-dw +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x3dce036c firmware_request_builtin vmlinux +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x9d8a8803 efi_embedded_fw_list vmlinux +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x9dd8d0e2 efi_embedded_fw_checked vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x05e3b8e5 usb_stor_access_xfer_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 0x2a807460 usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x307fbff9 usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3367b231 usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5a7c5d85 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5cae52e0 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5cb092b3 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x62b9262e usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x69a37811 usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7102debf usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7b187228 usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7f5ab94e usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x883b8c28 usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x98f56f20 usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc5ddc786 usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc614b4ab usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc8ef8f7f fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc93eaa84 usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd1318650 usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd16b0e92 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd6f2972c usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd87d10d8 usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xdf36b606 usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe0e6f494 usb_stor_bulk_srb drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/amd64/generic.compiler +++ linux-5.19.0/debian.master/abi/amd64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/amd64/generic.modules +++ linux-5.19.0/debian.master/abi/amd64/generic.modules @@ -0,0 +1,6186 @@ +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_pericom +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_fd +9pnet_rdma +9pnet_virtio +9pnet_xen +BusLogic +a100u2w +a3d +a8293 +aacraid +aat2870-regulator +aat2870_bl +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 +acrn +act8865-regulator +act_bpf +act_connmark +act_csum +act_ct +act_ctinfo +act_gact +act_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ada4250 +adc-joystick +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 +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv1014 +admv4420 +admv8818 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv7511-v4l2 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +adv_swbutton +advansys +advantechwdt +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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 +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airo_cs +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +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 +amc6821 +amd +amd-pmc +amd-rng +amd-uncore +amd-xgbe +amd5536udc_pci +amd64_edac +amd76xrom +amd8111e +amd_freq_sensitivity +amd_hsmp +amd_sfh +amdgpu +amdtee +amilo-rfkill +amlogic-gxl-crypto +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc236_common +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci236 +amplc_pci263 +ams-iaq-core +ams369fg06 +amt +analog +analogix-anx78xx +analogix_dp +ansi_cprng +aoe +apanel +apds9300 +apds9802als +apds990x +apds9960 +apple-gmux +apple-mfi-fastcharge +apple_bl +appledisplay +applesmc +applespi +appletalk +appletouch +applicom +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_ps2 +arc_uart +arcfb +arcmsr +arcnet +arcxcnn_bl +arizona +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 +as73211 +asb100 +asc7621 +ascot2e +asix +aspeed-pwm-tacho +aspeed-video +ast +asus-ec-sensors +asus-laptop +asus-nb-wmi +asus-tf103c-dock +asus-wireless +asus-wmi +asus_atk0110 +asus_wmi_sensors +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-sensor +atlas_btns +atm +atmel +atmel-ecc +atmel-i2c +atmel-sha204a +atmel_cs +atmel_mxt_ts +atmel_pci +atmtcp +atomisp +atomisp-gc0310 +atomisp-gc2235 +atomisp-libmsrlisthelper +atomisp-lm3554 +atomisp-mt9m114 +atomisp-ov2680 +atomisp-ov2722 +atomisp-ov5693 +atomisp_gmin_platform +atp +atp870u +atusb +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796b +ax88796c +axi-fan-control +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 +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +b53_common +b53_mdio +b53_mmap +b53_serdes +b53_spi +b53_srab +ba431-rng +barco-p50-gpio +bareudp +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm-phy-lib +bcm-sf2 +bcm203x +bcm3510 +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm7xxx +bcm87xx +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd9571mwv +bd9571mwv-regulator +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b_generic +block2mtd +blocklayoutdriver +blowfish-x86_64 +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bnxt_re +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_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 +btmtk +btmtksdio +btmtkuart +btqca +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c2port-duramar2150 +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +cachefiles +cadence_wdt +cafe_ccic +cafe_nand +caif +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-isotp +can-j1939 +can-raw +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 +ccs +ccs-pll +ccs811 +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-pltfrm +cdns-usb-common +cdns3 +cdns3-pci-wrap +cdnsp-udc-pci +cec +cec-gpio +ceph +cfag12864b +cfag12864bfb +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha-x86_64 +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone_icn8505 +chipreg +chnl_net +chromeos_acpi +chromeos_laptop +chromeos_privacy_screen +chromeos_pstore +chromeos_tbmc +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cio-dac +cirrus +cirrusfb +ck804xrom +classmate-laptop +clip +clk-cdce706 +clk-cs2000-cp +clk-lmk04832 +clk-max9485 +clk-palmas +clk-pwm +clk-si5341 +clk-si5351 +clk-si544 +clk-tps68470 +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_u32 +cm109 +cm32181 +cm3232 +cm3323 +cm3605 +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_example_test +comedi_isadma +comedi_parport +comedi_pci +comedi_pcmcia +comedi_test +comedi_usb +comm +compal-laptop +contec_pci_dio +cordic +core +coretemp +corsair-cpro +corsair-psu +cortina +counter +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpu5wdt +cpuid +cpuidle-haltpoll +cqhci +cr_bllcd +cramfs +crc-itu-t +crc32-pclmul +crc32_generic +crc4 +crc7 +crc8 +crct10dif-pclmul +cros-ec-cec +cros-ec-sensorhub +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_mkbp_proximity +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_ec_typec +cros_kbd_led_backlight +cros_peripheral_charger +cros_usbpd-charger +cros_usbpd_logger +cros_usbpd_notify +crvml +cryptd +crypto_engine +crypto_safexcel +crypto_simd +crypto_user +cs3308 +cs5345 +cs53l32a +cs_dsp +csiostor +ct82c710 +ctucanfd +ctucanfd_pci +curve25519-generic +curve25519-x86_64 +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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_acpi +cxl_core +cxl_mem +cxl_pci +cxl_pmem +cxl_port +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da9030_battery +da9034-ts +da903x-regulator +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_hmem +dax_pmem +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dcdbas +ddbridge +ddbridge-dummy-fe +de2104x +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-wmi-sysman +dell_rbu +delta-ahe50dc-fan +denali +denali_pci +des3_ede-x86_64 +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +diskonchip +dl2k +dlhl60d +dlink-dir685-touchkeys +dlm +dln2 +dln2-adc +dm-bio-prison +dm-bufio +dm-cache +dm-cache-smq +dm-clone +dm-crypt +dm-delay +dm-ebs +dm-era +dm-flakey +dm-historical-service-time +dm-integrity +dm-io-affinity +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 +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dp83td510 +dpot-dac +dps310 +dps920ab +dpt_i2o +dptf_pch_fivr +dptf_power +drbd +drivetemp +drm +drm_buddy +drm_cma_helper +drm_display_helper +drm_kms_helper +drm_mipi_dbi +drm_shmem_helper +drm_ttm_helper +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 +dw-xdata-pcie +dw9714 +dw9768 +dw9807-vcm +dw_dmac +dw_dmac_core +dw_dmac_pci +dw_wdt +dwc-xlgmac +dwc2_pci +dwc3 +dwc3-haps +dwc3-pci +dwmac-generic +dwmac-intel +dwmac-loongson +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 +ecdsa_generic +echainiv +echo +ecrdsa_generic +edac_mce_amd +edt-ft5x06 +ee1004 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efa +efct +efi-pstore +efi_secret +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 +eni_vdpa +enic +epat +epia +epic100 +eql +erofs +esas2r +esb2rom +esd_usb2 +esp4 +esp4_offload +esp6 +esp6_offload +esp_scsi +essiv +et1011c +et131x +et8ek8 +etas_es58x +ethoc +eurotechwdt +evbug +exc3000 +exfat +extcon-adc-jack +extcon-axp288 +extcon-fsa9480 +extcon-gpio +extcon-intel-cht-wc +extcon-intel-int3496 +extcon-intel-mrfld +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 +extcon-usbc-tusb320 +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fam15h_power +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_seps525 +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 +fbtft +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fdomain_pci +fdp +fdp_i2c +fealnx +ff-memless +fieldbus_dev +fintek-cir +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +firmware_attributes_class +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 +fsa4480 +fscache +fschmd +fsia6b +fsl-mph-dr-of +fsl_linflexuart +fsl_lpuart +fsp-3y +ftdi-elan +ftdi_sio +ftl +ftrace-direct +ftrace-direct-modify +ftrace-direct-too +ftsteutates +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +funcore +funeth +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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 +gen_probe +generic +generic-adc-battery +genet +geneve +genwqe_card +gf2k +gfs2 +ghash-clmulni-intel +gigabyte-wmi +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gma500_gfx +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpd-pocket-fan +gpio +gpio-104-dio-48e +gpio-104-idi-48 +gpio-104-idio-16 +gpio-aaeon +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-amd-fch +gpio-amd8111 +gpio-amdpt +gpio-arizona +gpio-bd9571mwv +gpio-beeper +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dln2 +gpio-dwapb +gpio-exar +gpio-f7188x +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-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-rdc321x +gpio-regulator +gpio-sch +gpio-sch311x +gpio-sim +gpio-siox +gpio-tpic2810 +gpio-tps65086 +gpio-tps65912 +gpio-tps68470 +gpio-tqmx86 +gpio-twl4030 +gpio-twl6040 +gpio-ucb1400 +gpio-vibra +gpio-viperboard +gpio-virtio +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_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 +gtp +gud +guillemot +gunze +gve +habanalabs +hackrf +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_nokia +hci_uart +hci_vhci +hd3ss3220 +hd44780 +hd44780_common +hdaps +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +hecubafb +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfi1 +hfs +hfsplus +hgafb +hi311x +hi556 +hi6210-i2s +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +hih6130 +hinic +hisi-spmi-controller +hmc425a +hmc5843_core +hmc5843_i2c +hmc5843_spi +hmc6352 +hopper +horus3a +hostap +hostap_cs +hostap_pci +hostap_plx +hp-wmi +hp03 +hp206c +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hsi +hsi_char +hso +hsr +ht16k33 +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 +hwmon-aaeon +hwmon-vid +hwpoison-inject +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +hyperv-keyboard +hyperv_drm +hyperv_fb +i10nm_edac +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-ccgx-ucsi +i2c-cht-wc +i2c-cp2615 +i2c-cros-ec-tunnel +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-gpio +i2c-hid +i2c-hid-acpi +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mlxcpld +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-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-virtio +i2c-xiic +i3000_edac +i3200_edac +i3c +i3c-master-cdns +i40e +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 +ice +ichxrom +icp +icp10100 +icp_multi +icplus +ics932s401 +ideapad-laptop +ideapad_slidebar +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +idxd +idxd_bus +ie31200_edac +ie6xx_wdt +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +ife +ifi_canfd +iforce +iforce-serio +iforce-usb +igb +igbvf +igc +igen6_edac +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +img-ascii-lcd +img-i2s-in +img-i2s-out +img-parallel-out +img-spdif-in +img-spdif-out +imm +imon +imon_raw +ims-pcu +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx319 +imx355 +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int3400_thermal +int3401_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-m10-bmc +intel-m10-bmc-hwmon +intel-qep +intel-rng +intel-rst +intel-smartconnect +intel-uncore-frequency +intel-uncore-frequency-common +intel-vbtn +intel-wmi-sbl-fw-update +intel-wmi-thunderbolt +intel-xhci-usb-role-switch +intel-xway +intel_atomisp2_led +intel_bxt_pmic_thermal +intel_bxtwc_tmu +intel_chtdc_ti_pwrbtn +intel_chtwc_int33fe +intel_crystal_cove_charger +intel_int0002_vgpio +intel_ips +intel_menlow +intel_mrfld_adc +intel_mrfld_pwrbtn +intel_oaktrail +intel_pch_thermal +intel_pmc_bxt +intel_pmc_mux +intel_powerclamp +intel_punit_ipc +intel_qat +intel_quark_i2c_gpio +intel_rapl_common +intel_rapl_msr +intel_sar +intel_scu_ipcutil +intel_scu_pltdrv +intel_sdsi +intel_skl_int3472_discrete +intel_skl_int3472_tps68470 +intel_soc_dts_iosf +intel_soc_dts_thermal +intel_soc_pmic_bxtwc +intel_soc_pmic_chtdc_ti +intel_soc_pmic_mrfld +intel_tcc_cooling +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 +intel_vsec +intelfb +interact +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io_edgeport +io_ti +ioatdma +iommu_v2 +ionic +iosm +iowarrior +ip5xxx_power +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_twos +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-madera +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdnhdlc +ishtp_eclite +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_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 +kheaders +kl5kusb105 +kmem +kmx61 +kobil_sct +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +leds-88pm860x +leds-aaeon +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-lp50xx +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-menf21bmc +leds-mlxcpld +leds-mlxreg +leds-mt6323 +leds-nic78bx +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pwm +leds-pwm-multicolor +leds-regulator +leds-rt8515 +leds-sgm3140 +leds-ss4200 +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +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-tty +ledtrig-usbport +legousbtower +lenovo-yogabook-wmi +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 +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +line-display +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 +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 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +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_pci +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 +mana +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +marvell +marvell-88x2222 +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +max6621 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77693-haptic +max77693-regulator +max77693_charger +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +max8903_charger +max8907 +max8907-regulator +max8925-regulator +max8925_bl +max8925_onkey +max8925_power +max8952 +max8997-regulator +max8997_charger +max8997_haptic +max8998 +max8998_charger +max9271 +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 +mchp48l640 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-serial +md-cluster +md4 +mdc800 +mdev +mdio +mdio-bcm-unimac +mdio-bitbang +mdio-cavium +mdio-gpio +mdio-i2c +mdio-mscc-miim +mdio-mvusb +mdio-thunder +me4000 +me_daq +mediatek-ge +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-gsc +mei-me +mei-txe +mei_hdcp +mei_phy +mei_pxp +mei_wdt +melfas_mip4 +memory-notifier-error-inject +memstick +men_z135_uart +men_z188_adc +mena21_wdt +menf21bmc +menf21bmc_hwmon +menf21bmc_wdt +menz69_wdt +meraki-mx100 +metro-usb +metronomefb +meye +mf6x4 +mfd-aaeon +mgag200 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip_t1 +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx-platform +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlx_wdt +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxreg-lc +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +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_snd +most_usb +most_video +motorcomm +moxa +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp8859 +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +mscc +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi-laptop +msi-wmi +msi001 +msi2500 +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6397 +mt6397-regulator +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd +mtd_blkdevs +mtd_dataflash +mtdblock +mtdblock_ro +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-pmic-keys +mtk-sd +mtk_t7xx +mtouch +multipath +multiq3 +musb_hdrc +mux-adg792a +mux-adgs1408 +mux-core +mux-gpio +mv88e6060 +mv88e6xxx +mv_u3d_core +mv_udc +mvmdio +mvsas +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxc4005 +mxc6255 +mxic_nand +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxm-wmi +mxser +mxuport +myrb +myri10ge +myrs +n411 +n5pf +n_gsm +n_hdlc +nand +nandcore +nandsim +national +natsemi +nau7802 +navman +nbd +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct6775-core +nct6775-i2c +nct7802 +nct7904 +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +ni_routing +ni_tio +ni_tiocmd +ni_usb6501 +nic7018_wdt +nicpf +nicstar +nicvf +nilfs2 +nitro_enclaves +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_epf +ntb_hw_idt +ntb_hw_intel +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +null_blk +nuvoton-cir +nv_tco +nvidia-wmi-ec-backlight +nvidiafb +nvme +nvme-core +nvme-fabrics +nvme-fc +nvme-loop +nvme-rdma +nvme-tcp +nvmem-rave-sp-eeprom +nvmem-rmem +nvmem_qcom-spmi-sdam +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvram +nvsw-sn2201 +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocrdma +octeon_ep +of_mmc_spi +of_xilinx_wdt +ofb +og01a1b +omfs +omninet +on20 +on26 +onenand +opa_vnic +opencores-kbd +openvswitch +opt3001 +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +oti6858 +otm3225a +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov2740 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9640 +ov9650 +ov9734 +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-mipi-dbi +panel-raspberrypi-touchscreen +panel-widechips-ws2401 +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 +pc300too +pc87360 +pc87413_wdt +pc87427 +pca9450-regulator +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-epf-ntb +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 +pcs-lynx +pcs_xpcs +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pciefd +peak_pcmcia +peak_usb +peaq-wmi +peci +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pfr_telemetry +pfr_update +pg +phantom +phonet +phram +phy-bcm-kona-usb2 +phy-can-transceiver +phy-cpcap-usb +phy-exynos-usb2 +phy-generic +phy-gpio-vbus-usb +phy-intel-lgm-emmc +phy-isp1301 +phy-lgm-usb +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-usb-hs +phy-qcom-usb-hsic +phy-tahvo +phy-tusb1210 +phylink +physmap +pi3usb30532 +pi433 +pim4328 +pinctrl-alderlake +pinctrl-broxton +pinctrl-cannonlake +pinctrl-cedarfork +pinctrl-da9062 +pinctrl-denverton +pinctrl-elkhartlake +pinctrl-emmitsburg +pinctrl-geminilake +pinctrl-icelake +pinctrl-jasperlake +pinctrl-lakefield +pinctrl-lewisburg +pinctrl-lynxpoint +pinctrl-madera +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-sunrisepoint +pinctrl-tigerlake +ping +pistachio-internal-dac +pixcir_i2c_ts +pkcs7_test_key +pkcs8_key_parser +pktcdvd +pktgen +pl2303 +plat-ram +plat_nand +platform_lcd +platform_profile +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pms7003 +pmt_class +pmt_crashlog +pmt_telemetry +pn532_uart +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +processor_thermal_device +processor_thermal_device_pci +processor_thermal_device_pci_legacy +processor_thermal_mbox +processor_thermal_rapl +processor_thermal_rfim +ps2-gpio +ps2mult +psample +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptdma +ptp_clockmatrix +ptp_idt82p33 +ptp_ines +ptp_kvm +ptp_ocp +ptp_vmw +pulse8-cec +pulsedlight-lidar-lite-v2 +punit_atom_debug +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvcalls-front +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-beeper +pwm-cros-ec +pwm-dwc +pwm-iqs620a +pwm-lp3943 +pwm-pca9685 +pwm-regulator +pwm-twl +pwm-twl-led +pwm-vibra +pwm_bl +pxa27x_udc +pxe1610 +pxrc +q54sj108a2 +qat_4xxx +qat_c3xxx +qat_c3xxxvf +qat_c62x +qat_c62xvf +qat_dh895xcc +qat_dh895xccvf +qca8k +qcaux +qcom-emac +qcom-labibb-regulator +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-vadc +qcom-vadc-common +qcom-wled +qcom_glink +qcom_glink_rpm +qcom_spmi-regulator +qcom_usb_vbus-regulator +qcserial +qed +qede +qedf +qedi +qedr +qemu_fw_cfg +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qm1d1b0004 +qm1d1c0042 +qmi_helpers +qmi_wwan +qnx4 +qnx6 +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quatech_daqp_cs +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_rxe +rdma_ucm +rdmavt +rds +rds_rdma +rds_tcp +realtek +redboot +redrat3 +reed_solomon +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rocker +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-rv3032 +rtc-rv8803 +rtc-rx4581 +rtc-rx6110 +rtc-rx8010 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-sd3078 +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +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 +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rx51_battery +rxrpc +s1d13xxxfb +s2250 +s2255drv +s2io +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +s526 +s5c73m3 +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s5k4ecgx +s5k5baf +s5k6a3 +s5k6aa +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 +sample-trace-array +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 +sbp_target +sbrmi +sbs +sbs-battery +sbs-charger +sbs-manager +sbshc +sbtsi_temp +sc1200wdt +sc16is7xx +sc92031 +sca3000 +sca3300 +scb2_flash +scd30_core +scd30_i2c +scd30_serial +scd4x +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_ets +sch_fq +sch_fq_codel +sch_fq_pie +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 +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 +sensehat-joystick +sensorhub +serial-multi-instantiate +serial_cs +serial_ir +serio_raw +sermouse +serpent-avx-x86_64 +serpent-avx2 +serpent-sse2-x86_64 +serpent_generic +serport +ses +sev-guest +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sha1-ssse3 +sha256-ssse3 +sha3_generic +sha512-ssse3 +shark2 +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sil164 +silead +sim710 +simatic-ipc +simatic-ipc-leds +simatic-ipc-wdt +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +sis-agp +sis190 +sis5595 +sis900 +sis_i2c +sisfb +sisusbvga +sit +siw +sja1000 +sja1000_isa +sja1000_platform +sja1105 +skfp +skge +skx_edac +sky2 +sky81452 +sky81452-backlight +sky81452-regulator +sl811-hcd +sl811_cs +slcan +slg51000-regulator +slicoss +slim-qcom-ctrl +slimbus +slip +slram +sm2_generic +sm3 +sm3-avx-x86_64 +sm3_generic +sm4 +sm4-aesni-avx-x86_64 +sm4-aesni-avx2-x86_64 +sm4_generic +sm501 +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc91c92_cs +smc_diag +smipcie +smm665 +smsc +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-acp-config +snd-acp-i2s +snd-acp-legacy-mach +snd-acp-mach +snd-acp-pci +snd-acp-pcm +snd-acp-pdm +snd-acp-renoir +snd-acp-sof-mach +snd-acp3x-i2s +snd-acp3x-pcm-dma +snd-acp3x-pdm-dma +snd-acp3x-rn +snd-acp5x-i2s +snd-acp5x-pcm-dma +snd-acp6x-pdm-dma +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-ctl-led +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-cs8409 +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-cs-dsp-ctls +snd-hda-ext-core +snd-hda-intel +snd-hda-scodec-cs35l41 +snd-hda-scodec-cs35l41-i2c +snd-hda-scodec-cs35l41-spi +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-sdw-acpi +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-pci-acp5x +snd-pci-acp6x +snd-pci-ps +snd-pcm +snd-pcm-dmaengine +snd-pcsp +snd-pcxhr +snd-pdaudiocf +snd-portman2x4 +snd-ps-pdm-dma +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-63xx +snd-soc-ac97 +snd-soc-acp-da7219mx98357-mach +snd-soc-acp-rt5645-mach +snd-soc-acp-rt5682-mach +snd-soc-acp5x-mach +snd-soc-acp6x-mach +snd-soc-acpi +snd-soc-acpi-intel-match +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +snd-soc-ak4458 +snd-soc-ak4554 +snd-soc-ak4613 +snd-soc-ak4642 +snd-soc-ak5386 +snd-soc-ak5558 +snd-soc-alc5623 +snd-soc-arizona +snd-soc-avs +snd-soc-aw8738 +snd-soc-bd28623 +snd-soc-bt-sco +snd-soc-catpt +snd-soc-cml_rt1011_rt5682 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-ehl-rt5660 +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-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-ssi +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdac-hda +snd-soc-hdac-hdmi +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmux +snd-soc-inno-rk3036 +snd-soc-intel-hda-dsp-common +snd-soc-intel-sof-cirrus-common +snd-soc-intel-sof-maxim-common +snd-soc-intel-sof-realtek-common +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-lpass-macro-common +snd-soc-lpass-rx-macro +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +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-mt6660 +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +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-pcm5102a +snd-soc-pcm512x +snd-soc-pcm512x-i2c +snd-soc-pcm512x-spi +snd-soc-ps-mach +snd-soc-rk3328 +snd-soc-rl6231 +snd-soc-rl6347a +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1015p +snd-soc-rt1019 +snd-soc-rt1308 +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +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-rt5659 +snd-soc-rt5660 +snd-soc-rt5663 +snd-soc-rt5670 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt5682-i2c +snd-soc-rt5682-sdw +snd-soc-rt5682s +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-skl +snd-soc-skl-ssp-clk +snd-soc-skl_hda_dsp +snd-soc-skl_nau88l25_ssm4567 +snd-soc-skl_rt286 +snd-soc-sof-sdw +snd-soc-sof-ssp-amp +snd-soc-sof_cs42l42 +snd-soc-sof_da7219_max98373 +snd-soc-sof_es8336 +snd-soc-sof_nau8825 +snd-soc-sof_rt5682 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2305 +snd-soc-ssm2518 +snd-soc-ssm2602 +snd-soc-ssm2602-i2c +snd-soc-ssm2602-spi +snd-soc-ssm4567 +snd-soc-sst-atom-hifi2-platform +snd-soc-sst-bdw-rt5650-mach +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-bytcr-wm5102 +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-glk-rt5682_max98357a +snd-soc-sst-haswell +snd-soc-sst-ipc +snd-soc-sst-sof-pcm512x +snd-soc-sst-sof-wm8804 +snd-soc-sta32x +snd-soc-sta350 +snd-soc-sti-sas +snd-soc-tas2552 +snd-soc-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm5102 +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +snd-sof +snd-sof-acpi +snd-sof-acpi-intel-bdw +snd-sof-acpi-intel-byt +snd-sof-amd-acp +snd-sof-amd-renoir +snd-sof-intel-atom +snd-sof-intel-hda +snd-sof-intel-hda-common +snd-sof-pci +snd-sof-pci-intel-apl +snd-sof-pci-intel-cnl +snd-sof-pci-intel-icl +snd-sof-pci-intel-mtl +snd-sof-pci-intel-tgl +snd-sof-pci-intel-tng +snd-sof-probes +snd-sof-utils +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-generic-allocation +soundwire-intel +soundwire-qcom +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-axi-spi-engine +spi-bitbang +spi-butterfly +spi-cadence +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-gpio +spi-intel +spi-intel-pci +spi-intel-platform +spi-lantiq-ssc +spi-lm70llp +spi-loopback-test +spi-mux +spi-mxic +spi-nor +spi-nxp-fspi +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-rockchip +spi-sc18is602 +spi-sifive +spi-slave-system-control +spi-slave-time +spi-tle62x0 +spi-xcomm +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spl +spmi +sprd_serial +sps30 +sps30_i2c +sps30_serial +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +stx104 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sur40 +surface3-wmi +surface3_power +surface3_spi +surface_acpi_notify +surface_aggregator +surface_aggregator_cdev +surface_aggregator_registry +surface_battery +surface_charger +surface_dtx +surface_gpe +surface_hid +surface_hid_core +surface_hotplug +surface_kbd +surface_platform_profile +surfacepro3_button +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_cs +synclink_gt +syscopyarea +sysfillrect +sysimgblt +system76_acpi +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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_maxim +tcpci_mt6360 +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 +tdx-guest +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 +thermal-generic-adc +think-lmi +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-ads124s08 +ti-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-lmu +ti-tlc4541 +ti-tsc2046 +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +topstar-laptop +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_nsc +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_vtpm_proxy +tps23861 +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 +tps68470-regulator +tqmx86 +tqmx86_wdt +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +typec_wcove +typhoon +u132-hcd +uPD60620 +u_audio +u_ether +u_serial +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_hv_generic +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_wwan +usbatm +usbdux +usbduxfast +usbduxsigma +usbhid +usbip-core +usbip-host +usbip-vudc +usbkbd +usblcd +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usbtest +usbtmc +usbtouchscreen +usbtv +usdhi6rol0 +userio +userspace-consumer +ushc +usnic_verbs +uss720 +uv_mmtimer +uv_sysfs +uvcvideo +uvesafb +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-mem2mem +v4l2-tpg +v4l2loopback +vboxguest +vboxsf +vboxvideo +vcan +vcnl3020 +vcnl4000 +vcnl4035 +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +ves1820 +ves1x93 +veth +vf610_dac +vga16fb +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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 +viperboard +viperboard_adc +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_mem +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +visor +vitesse +vitesse-vsc73xx-core +vitesse-vsc73xx-platform +vitesse-vsc73xx-spi +vivid +vkms +vl53l0x-i2c +vl6180 +vmac +vmd +vme_ca91cx42 +vme_fake +vme_tsi148 +vme_user +vme_vmivme7805 +vmgenid +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 +vp27smpx +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wd719x +wdat_wdt +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +wilco-charger +wilco_ec +wilco_ec_debugfs +wilco_ec_events +wilco_ec_telem +winbond-840 +winbond-cir +winmate-fm07-keys +wire +wireguard +wireless-hotkey +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 +wusb3801 +wwan_hwsim +x25 +x38_edac +x86-android-tablets +x86_pkg_temp_thermal +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xen-blkback +xen-evtchn +xen-fbfront +xen-front-pgdir-shbuf +xen-gntalloc +xen-gntdev +xen-hcd +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_compat +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xgene-hwmon +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xiaomi-wmi +xilinx-pr-decoupler +xilinx-spi +xilinx-xadc +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_sdfec +xillybus_class +xillybus_core +xillybus_pcie +xillyusb +xiphera-trng +xirc2ps_cs +xircom_cb +xlnx_vcu +xor +xp +xpad +xpc +xpnet +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yenta_socket +yurex +z3fold +zaurus +zavl +zcommon +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zfs +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zlua +znvpair +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd +zunicode +zzstd --- linux-5.19.0.orig/debian.master/abi/amd64/generic.retpoline +++ linux-5.19.0/debian.master/abi/amd64/generic.retpoline @@ -0,0 +1 @@ +# retpoline v1.0 --- linux-5.19.0.orig/debian.master/abi/arm64/generic +++ linux-5.19.0/debian.master/abi/arm64/generic @@ -0,0 +1,27396 @@ +ACPI EXPORT_SYMBOL_GPL 0xc331c3c7 acpi_table_parse_cedt vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x3d552cf8 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xb562535e crypto_cipher_encrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xbc428376 crypto_cipher_setkey vmlinux +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x08010eaa cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0d66ef59 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1128692f cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x173b722b is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1c2fd8f3 devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1c77a3b7 cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1e6a3170 devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1f9809ef is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x26277162 cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x26fda156 cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2753ff0d cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2b7d87d1 cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x30eed32e to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x32356ae5 cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x411f6635 to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4b68055a is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x55ac6dc4 devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x56a09a8f to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x59ebc3a6 to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x64fead4d __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6a99de36 set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6e174a2e schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6f137f44 cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7177a863 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x747d22d4 devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x85fac707 is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x96121c51 devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9aab9d1d cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9f59984b cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa30dd2e1 clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa5ac5e88 cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa5e9ba0a devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa97571f4 cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xae613172 devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xafcac3f0 cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbdb108dd cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbe8e3a52 is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbeb6dbbc is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc6fce337 cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcafa9162 cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcba452a5 cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcecd33b0 devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd06d2134 cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd2125bd5 find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd47da762 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd8d28578 cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd9b8bf15 cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xe405e98e cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf7d9eb29 cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfa015d9d devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfd1a4d01 cxl_decoder_autoremove drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x08d5b178 dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x11cb6567 dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x120b6c0c dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x3a54d75c dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x51facd89 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x5f63ad00 dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6553e00b dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6d62d446 dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7191932b dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7c089e58 dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xa580aea9 dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xaf98c3f9 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc0f05dc0 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc1cebd4b dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xd643cebe dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xec6e6eb4 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xf126c99e dma_buf_move_notify vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/arm64/crypto/aes-ce-cipher 0x68f275ad ce_aes_expandkey +EXPORT_SYMBOL arch/arm64/crypto/aes-ce-cipher 0xd71b125d ce_aes_setkey +EXPORT_SYMBOL arch/arm64/crypto/aes-neon-blk 0x52d67a4e neon_aes_cbc_encrypt +EXPORT_SYMBOL arch/arm64/crypto/aes-neon-blk 0xb8c706a6 neon_aes_ctr_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/chacha-neon 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/arm64/crypto/chacha-neon 0xdc94f829 chacha_init_arch +EXPORT_SYMBOL arch/arm64/crypto/chacha-neon 0xdd8ec6bd hchacha_block_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0x1c3e6e5b poly1305_init_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0x6ddf27bc poly1305_update_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0xf39f5240 poly1305_final_arch +EXPORT_SYMBOL arch/arm64/crypto/sha256-arm64 0xb455924d sha256_block_data_order +EXPORT_SYMBOL arch/arm64/crypto/sha512-arm64 0x6402c8df sha512_block_data_order +EXPORT_SYMBOL arch/arm64/lib/xor-neon 0xdb786e41 xor_block_inner_neon +EXPORT_SYMBOL crypto/blake2b_generic 0x32e24c8a blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x8261eccb ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x8e688192 ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x90cdc197 ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x9263b417 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x92668805 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x932b6ff7 vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x9f6efabd vli_sub +EXPORT_SYMBOL crypto/ecc 0xa76b31a2 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0xb10fc19e ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0xd6315f31 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0xd94c8eb5 ecc_point_is_zero +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 0x2a99ce7b crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0x52e902e2 crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x60743524 crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x6f12e342 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0x849ec0ea crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0xcc620c00 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/sha3_generic 0x2d7a1a54 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0x3c328581 crypto_sha3_update +EXPORT_SYMBOL crypto/sha3_generic 0xcb54a791 crypto_sha3_init +EXPORT_SYMBOL crypto/sm2_generic 0x024cdfd4 sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0xf4fd3bd2 crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x06848c60 to_nfit_uuid +EXPORT_SYMBOL drivers/atm/suni 0xc365156b suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x2cc535b6 bcma_core_irq +EXPORT_SYMBOL drivers/bcma/bcma 0x2f4f1082 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 0x0d179e29 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x3b702362 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x50c7b96f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5b98b3c1 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5e345d30 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x75be9b09 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xaff89a8f pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xb21ba07d pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0xb354f611 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc2dc93b2 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xdc6ece1a pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe82256c1 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xee237e9a paride_unregister +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x6e2220f5 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x336207c0 rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x5e5c20c5 mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x00285ca7 ipmi_smi_watcher_unregister +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 0x0d5ff683 ipmi_add_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 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 0x74b11c15 ipmi_get_smi_info +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 0x9478f3fd ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96a6e5e8 ipmi_smi_msg_received +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 0xe98c507d ipmb_checksum +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 0x1f355da7 st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x2328292f st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x89e8ec6f st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xab107eeb st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x330c577b xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7cdec09e xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xad8dcfb4 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x28d15a6d xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x62ed34fb xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x985262d5 xillybus_init_endpoint +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x25c98843 clk_alpha_pll_zonda_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xa03f8920 clk_alpha_pll_postdiv_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xd89a02cf clk_alpha_pll_fixed_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xed46e5cc clk_alpha_pll_lucid_5lpe_ops +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x4a55f547 atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x80a11b1d atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xaffbf95a atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc71ed50c atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc80f14e8 atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xe2c35ed6 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/crypto/caam/caam 0x17572340 caam_congested +EXPORT_SYMBOL drivers/crypto/caam/caam 0x2fa72119 caam_qi_enqueue +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 0x46c3b415 caam_drv_ctx_init +EXPORT_SYMBOL drivers/crypto/caam/caam 0x9dd2c6ad caam_drv_ctx_update +EXPORT_SYMBOL drivers/crypto/caam/caam 0xc0eaa792 qi_cache_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam 0xe464f0ac caam_drv_ctx_rel +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xa4b97e77 split_key_done +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xb01c65c2 caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xe1b9de0a gen_split_key +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xeb31d708 caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0xf70efe7c caam_jr_free +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 0xacb35ca7 dpaa2_caam_enqueue +EXPORT_SYMBOL drivers/crypto/caam/error 0x53d0fc97 caam_ptr_sz +EXPORT_SYMBOL drivers/crypto/caam/error 0x6f433e32 caam_strstatus +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 0xb743b0e4 xilinx_vdma_channel_set_config +EXPORT_SYMBOL drivers/firewire/firewire-core 0x047c164b fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0bc6094c fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1169a5b1 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +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 0x42c405c5 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x464be2fc fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x46c63754 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4de89579 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x526c626f fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5298e61b fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x53441244 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x5f07a565 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a4816bc fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6b4fc74d fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dc50487 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x728b1eb5 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8a41976a fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa5fe17cb fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xabcc0bb4 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaedf84ce fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xafec070c fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb6b5a252 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb7080192 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc5e368cf fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd385fe15 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd91b5263 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdd79f98a fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe3a29043 fw_core_add_address_handler +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 0xfb8d3bab fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfbbfb48d fw_iso_context_destroy +EXPORT_SYMBOL drivers/firmware/broadcom/tee_bnxt_fw 0x57b73b33 tee_bnxt_fw_load +EXPORT_SYMBOL drivers/firmware/broadcom/tee_bnxt_fw 0xdfaff93c tee_bnxt_copy_coredump +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x0b993fd6 imx_dsp_free_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x504a4482 imx_dsp_request_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0xc8c306ea imx_dsp_ring_doorbell +EXPORT_SYMBOL drivers/fpga/dfl 0x029a4332 dfl_driver_unregister +EXPORT_SYMBOL drivers/fpga/dfl 0x2617f9cb __dfl_driver_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x05859428 drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x089b1554 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0ac85e1c drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0c1b9ce4 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x101c7ced drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x187348c5 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b7c22d4 drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1bcdab91 drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x21fa287f drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x241bcc8a drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x259493a0 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x25c32735 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x27d03b83 drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2ad2c758 drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2dcb9fab drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x304237d9 drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x30fd3bc3 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x34d6fdd6 drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3507f80f drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x36fdd60a drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x37847ba0 drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d98d70d drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3ff797bf drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x40311422 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4346fb52 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4594985b drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4e23e9f2 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x507ba60b drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x524ab832 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x55cc7b53 drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x57cbb62d drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58e25020 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5b55d605 drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5b64265d drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x62127aaf drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x640857b3 drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x644e9fbe drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x645f2c47 drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x64e16a81 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6821a578 drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x684e2986 drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6877a5ad drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6879c50b drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a159041 drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6c38e6bd drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6d67ac95 drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6e34cafc drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6f0e8698 drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6fea6491 drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x714a4fb0 drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76e97e72 drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7a09f821 drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7b21f028 drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7e670ce8 drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x806b7318 drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x828c54ac drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x835df49c drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8471c23f drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ca2d9e4 drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d701329 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8fe71a1b drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x92b9835e drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x97c9921e drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9a89e195 drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9dc399ec drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa1fefe6a drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa24e2f53 drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa5918e01 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa88edc80 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaf267620 drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaffabd50 drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb0d6861d drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb5a7224d drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb627b117 drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb899821e drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb979d673 drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbe69e9e0 drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbed39620 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf144a60 drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc020c0c1 drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5c99a79 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc79ecffb drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc8b6a8ae drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc9569de4 drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xccf54d5e drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcdec2641 drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcee6ce4e drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd02ee961 drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd23bbe2d drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd31758af drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd53f6135 drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd5a95eae drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd73ea7c1 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd749fac2 drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd9f4693b drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xda6486d2 drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdb479f00 drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdbdb288b drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdc1eca98 drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdc75680b drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdf64d55b drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xdf900da0 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe11db0a1 drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe2576dd3 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe2bdac7f drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe39eed9f drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe5360b84 drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xebf8d108 drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedcf81ce drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3116a61 drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3ca7241 drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf49cc52b drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf4b50668 drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf4f26de4 drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf5c38902 drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf68741fb drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf689ad25 drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf7d0bf80 drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf9a9a627 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb1a7a5a drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb444275 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfd373013 drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfdaf5ca3 drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe12bcb9 drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xffb4e72c drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0025d92c drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00782f51 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00a6ecd7 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0123c257 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x033d9e92 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c63897 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03fa6ef0 drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04debaaf drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05b09a8a drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07989f79 drm_privacy_screen_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07fb449a drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x084588af drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09d57270 drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a208934 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ba951ca drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c0b5ab4 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c1a2856 drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c59fc33 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c74a04e drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d22d973 drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eb7f5eb drm_privacy_screen_lookup_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ecd3e21 drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +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 0x1090cfe7 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x111643d0 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11bd4a80 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12248afd drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1351bd76 drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13949c31 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13f100b4 drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1415fe48 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142ae209 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142c17bd drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x150c73ea drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1609f268 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x166e6fa2 drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1672b72e drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16caa9de drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16f9ccf6 drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18c716ab drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18fe01a4 drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19e69639 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b7c3244 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c799219 drm_privacy_screen_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e00d4d1 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e48f48b drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f7cbb5f drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21a35205 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2237668b drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22c38f16 __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22fa4176 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2387ce2f drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23ae60e6 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x240178d4 drm_privacy_screen_call_notifier_chain +EXPORT_SYMBOL drivers/gpu/drm/drm 0x244745ab drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cf437a drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24e94405 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25fb8dcd drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26169dd1 drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26cc3956 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27a70977 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x288ab921 drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x293d255e drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x299d5bf8 drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29bf3403 drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a61c186 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bc409ff drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c30084b drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cd96c6f drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d52a3c4 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2df129e2 devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e8d4261 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f476172 drm_privacy_screen_lookup_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x300de424 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30b61762 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31903b0c drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31909a88 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31cc28ec drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33953f20 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33bfe686 drm_privacy_screen_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33fab694 drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3425c78b drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34770598 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34b966d3 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3833244b __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383ca664 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3841a809 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3988d239 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39a4f3ce drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39f52d3a of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ad7dcb3 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b31df63 drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b671b64 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c22a4d8 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cd79725 drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e37937c drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ec68652 drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc0da40 drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40d413f2 drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41829cd4 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x421b09bd drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42d34a53 of_drm_find_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x434c0c0b drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43a77918 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c4f269 drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43c9392d drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4402a9bc drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4418a9b8 drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44e0089d drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x454e2175 drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45539992 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45debc50 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x470677d8 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47ae8403 drm_privacy_screen_unregister_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47e6b9c9 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831da6e drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x484fc491 drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49c171e8 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4afab11e drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b77b10c drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bec4766 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bfe6bf3 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c9314ec drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cf12214 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d91be2a drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4de2951f drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ed77108 drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f1adf57 __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f7a943d drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x503b2029 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5077d823 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51747c1c drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51f44aec drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53310a08 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53863007 drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53b6affd drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53db9e55 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54430ab6 drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54a80afa drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54d7579c drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x556a76de drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f13025 drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x564e2d80 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x577c384f drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57d2f4aa drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x585bc459 drm_privacy_screen_set_sw_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x597bdbbe drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59b28df3 drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59d33be8 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a0f9605 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a7d9edc drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c1d67c7 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d136493 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d1ec8d6 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d845d15 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e0f6b95 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x607eb0dc drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61360345 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x614558dc __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b03cca drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6372ffc3 drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x658a25fe drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x658b11c3 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65cb0d62 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6724e09f drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x692d7324 drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a37848b drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6adfeffd drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b187212 drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c1d9a13 drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c7b059e drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c9012a1 drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c9643d7 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cd4292d drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6da9a12b drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6eb49005 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef74648 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f5f170c drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7078b916 drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71026926 drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71714e94 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71c917ed drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x722915e5 drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72ee206a drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73a55dbf drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74e7c855 drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7666b076 drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76ff07f3 drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x779bc8c0 drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7832765e drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78d8c772 drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a246d06 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a7be3f1 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a93f540 drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2e2166 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb6452a drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bfb46c6 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bfd1050 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bfea3dd drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c2f111b drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c53021e drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f2b7a55 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ffbc4c0 drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8133c9ed drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81a81fda drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x832cec80 drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83728e26 drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84196258 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86806c06 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88038194 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88be0935 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x899b1215 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a0fa980 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b41ca4e drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b7c6fb5 drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c3acbdf drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbab4f5 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e69efcc drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f92ca7c drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fb4df5c drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90cb29c1 drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90e0675c drm_privacy_screen_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x910eecb6 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x918c482f drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91b34553 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92cb6327 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93c63cb2 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94ba1df0 drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x950092ad drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95339e7c drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95586eb4 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96141316 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x963f5cb8 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96901b15 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97384034 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x974b9b9c drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98462563 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98aa0f68 drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99ba8d0c drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a5c4a76 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9aaf2bf1 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ae629d3 drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c0e48bd drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c678277 drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d7b5d02 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dd0f26f drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e0be5d9 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f730f1f drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f90b128 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa007cdba drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa029a3a6 drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa13d8e10 drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2345185 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa2eafcf0 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa36ccab0 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4046251 drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa42313dd drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4504f82 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5174567 drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7567e48 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8d71c1a drm_privacy_screen_get_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9049a67 drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa729aa0 drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa886674 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab227239 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab892da4 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabdf5688 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad888c90 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad957438 drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad98c295 of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb09ab60c drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0b05ff5 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1a336a5 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb226ad7e drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb22dfd68 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3305bb1 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb351def5 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4271f40 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4496ed8 drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4829437 drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6bb79e9 drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6d40909 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb75bc0d1 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb777d8f3 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb82e3c11 drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8d17590 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95fa364 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbabd034e drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaea270e drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaeded82 drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb757390 drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd06c712 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfabb586 drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0397ee2 drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc09606cd drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25c58ff drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3848b12 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5e00f5d drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6326cbc drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7910e38 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d04fc5 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d2ad50 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc82982eb drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca190085 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac2685d drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb3601ed drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc59759 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd5dce1b drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdbd41d6 drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdbfba1f drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdd988c2 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdeb463c drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf8667b4 __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd023d82b drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05fda43 drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1465fd6 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3467741 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ce663d drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4bec889 drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd506258f drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6779934 drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6c55356 drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7109cd0 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd77b9db0 drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda168c47 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda282ebe drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdba81779 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcd99e6e drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd2c8816 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd4e540f drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd67c0a3 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde2f77fa drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde576583 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde85c848 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf16f122 drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf889ed9 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfd06744 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2803280 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2a94f9b drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2b80387 drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2bc1ab2 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3860787 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3b5152e drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4cee2d9 drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5a8d5dc drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5b8ff8a drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bbe3e7 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe62dd453 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe64be078 drm_privacy_screen_register_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a0e334 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8c3d483 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8c8de08 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea4af817 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea5b9320 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebb63e1f drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec12af74 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec2ed457 drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecaca918 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed339e5f drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed87317d drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee0303e7 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefe03954 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0dab6ff drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0e18a05 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0ef5050 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1d6f554 drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf28474a8 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf298ead5 drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3054dab drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3745bd7 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4c76b69 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5294389 drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5c1d5a7 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6aaea98 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf740ad80 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7f208a6 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7fd1e21 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa3226d5 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc630b99 drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd85cabd drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdda2a55 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfded5246 drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe033d9b drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfef2df75 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffd6da37 drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x91c79e5d drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0xde87daa0 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x012c96c9 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x032863b9 drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x052a88ee drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06010ac7 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06a49951 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x073bcfcc drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07fe5ee1 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09702559 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x097039e5 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a22c367 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a90cfc7 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b4e99ea drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c45c65d drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e722272 drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1041c748 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x127a8c6b drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1303f345 drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x173cfd20 drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x175883da drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1ac2bfb1 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1ad13130 drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b8c7254 drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e87279e drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e9de1bd __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1eb9db49 __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21d541eb drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x222b64ad drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26c48227 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26f45c65 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b0fc2fe drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c5f7bb5 drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2dfc3535 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ea5837f drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30d6662e drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30e9954e drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32bc769d drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x336052be drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x356101d6 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35c219fc drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36451632 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36ea8ade drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3786ed71 drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x37c4f7e0 drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3822838f drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x391541d1 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c04de86 drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c98d1e8 __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x415773c7 drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x428ccf91 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x42b3f80b __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43c2eeca drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43c63ffa drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46babd77 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x470a868b drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47e446b9 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a67e1db drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c9bf72a __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4cecb02b drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d55b1b8 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d5ca3b4 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ef0b9c8 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5041e0fe drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50a93ce0 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52027279 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x529ac726 drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52f24f60 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5542443b drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x561a3965 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a00b205 __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bee8497 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ca76684 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e6ff47c drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x601a2703 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x639855c3 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63cb84b5 drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6456d03b drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65a56cc7 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x664b1c1c drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6667cd98 drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66eb50a7 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67467335 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a825d31 __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b89469f drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x705cd15f drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x734b2814 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x751070d4 drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x762b2b24 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76531423 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77db4b84 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c05459d drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c1e15d4 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f4e12d5 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8079d7dd drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83a46f9e drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83b5d624 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83d689f6 drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x842dd90c drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88739f70 drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8905f534 drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8abd726b __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8bc1d98b drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c30479c drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d0c4453 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fce80ac drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fe625b2 drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9039d22b drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x90d04d33 drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91945686 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92ab624a drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x97cbc42a __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x987712b3 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9917f727 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ac4af47 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9e2bea6f drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9e5cac47 drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9f4dd1bd drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3e1d62e drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa46dcba4 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa711607e drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7edd1ed devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa895be07 drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa98dd06e drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae7179e2 drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf35429c drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2fc72e8 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb61bb0e5 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb71430ca drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb976d30f drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbb1b1f9f drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbbd5dc46 drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc13cece drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf791398 drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc080e3c4 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc16a8677 drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc29552f4 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc482ff08 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5aba045 drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5bc118b drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6323239 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6fd4685 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc75b5f07 drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc8712ece __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9015bde drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca4463e4 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca7290b5 devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbbe2408 drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc245f42 drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc8e4c0f drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcd908efc drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcda5117b drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xceeedca9 drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcef3c38f drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf0ec244 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd0c7e096 drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd11d699b drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1de2b46 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd22a8fff __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3647761 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd76bd884 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd92e4c02 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda6e6aa0 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb15772d drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb727954 drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdbd4c3df drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd073997 drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd8c232f drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe2d89533 drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe50b9599 drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe5490dcf drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe656c9e9 drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6609af4 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe8e71652 drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe97ac041 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xea5fda6f drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeb8bfca9 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed027bb7 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf016ef80 drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf062ee4d drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf1fe3289 drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf30db916 drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf61a4e87 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf68c9bd0 drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf695b8d3 drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf6a6d2fd __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb2626b3 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb664127 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfcc8a4bc drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd620d2a drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfea518cf drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xff39ebaa drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x13339dc8 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3889b923 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3db0cb91 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x431065b9 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x4693f46a mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x5e7f0245 mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6b90436f mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x74e36477 mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x79234864 mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x8c501dd6 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa40e55b5 mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb2a641f9 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd4ba701a mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xdab3e5ae mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xdd6fa72f mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xe22351bd mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xf2f5fe83 mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x023148d9 drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x06cda860 drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x974ee64c drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xb4b53f8d drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xbdd7fa4f drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xc06d5b2d drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xcb923203 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xdf166a12 drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xe3724d55 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xe63b7c52 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x4c21612c drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x6be669d9 drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x96b025e3 drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xc8d304f7 drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xfa8bed67 drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x10e674ec drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x1bd505ac drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x3bfb180b drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x56d3dc16 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6f4661f7 drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x76084acd drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8994fe7d drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xc10d5d22 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xd5b6e441 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xd8277da1 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xda5c5ed7 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xdfb61d9e drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xe552d6cf drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xe578efb4 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xe6ba15d1 drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xf0f19a9e drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/rockchip/rockchipdrm 0x8f200fa2 rockchip_drm_wait_vact_end +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x005e890b drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00eb0e3b drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0c59c4d8 drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x13704ade drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x1e9e7b42 drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x28c884ea drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x2a077359 drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3a706287 drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x40c9906d drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x41e43458 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4c004a61 drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x51a5f4a2 drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x55aacef2 drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5a274d88 drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x60e4ebfd drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x67a36eef drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x72784ffe drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x8acb4522 drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x8ed5cc23 drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x94498326 drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9de99939 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9f34869e drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc27c557e drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xcdea6fdb drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xda227bf0 drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xdedad139 drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe0dbbb6a drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x5c01a873 sun4i_frontend_exit +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x88874fce sun4i_frontend_update_buffer +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 0xbf922032 sun4i_frontend_enable +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xbff9dd36 sun4i_frontend_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xe13164ef sun4i_frontend_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xe41dabc1 sun4i_frontend_update_formats +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xea97f882 sun4i_frontend_update_coord +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x0a5c8e45 sun4i_tcon_mode_set +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x48ab972e sun4i_tcon_enable_vblank +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x50537c9f sun4i_rgb_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x6c10c7a7 sun4i_tcon_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xb510b95c sun4i_dclk_create +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xe41accf9 sun4i_dclk_free +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xfd24a0a4 sun4i_lvds_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x350e5dcd sun8i_tcon_top_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x59794620 sun8i_tcon_top_de_config +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x988ee446 sun8i_tcon_top_set_hdmi_src +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x051b8cf8 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06da35fe ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x080103f8 ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0c1e5584 ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0eb364c1 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x179d9855 ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1adb6dea ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x240d5453 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x268af31f ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a09bcb7 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ba0c30b ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3206cfa6 ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x332e710d ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x33d34a53 ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34abbd17 ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3981b69b ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c40a526 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x425959f5 ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x49ed70db ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a59e368 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c0e8fd3 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f348df4 ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x552b0abd ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55c4c993 ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ebd3aec ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6066c7b4 ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ec60eb ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x68fb5ce1 ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6f54be30 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x767a23c8 ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7b0a0838 ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7baacdae ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8023d875 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x843f0858 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85e16c44 ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8759a7a5 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x97d948f2 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b975c87 ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9de3b4e8 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1d8a409 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa68a94a2 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8ee06de ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaf90b7c3 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb2ea2018 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6382597 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb99786b4 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc530bf93 ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc8dbe682 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd3a2ffd ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd05ae6e9 ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd4028061 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7e7ce60 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda5f2b83 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda98457a ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde398885 ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe045f82e ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe399178b ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe50274ca ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5584350 ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe9cf6b5c ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf453f37b ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/vmwgfx/vmwgfx 0x1984f833 ttm_base_object_noref_lookup +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0b024bac host1x_device_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0e05182d host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1036533b host1x_syncpt_incr +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x14374aa0 __host1x_client_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x152c19fb host1x_channel_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1912af23 host1x_syncpt_read_min +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1e14a4c9 host1x_syncpt_read +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1e1a426d host1x_syncpt_release_vblank_reservation +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x207a0676 host1x_driver_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x24464d01 host1x_syncpt_get_by_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x25eabd01 host1x_syncpt_read_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x273e31b5 host1x_job_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x2769e26f host1x_job_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x27a8d5ba host1x_job_submit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x2e51e158 host1x_channel_stop +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x2ef833c8 host1x_job_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x323dfce7 host1x_client_suspend +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x33396199 host1x_syncpt_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x43dddab4 __host1x_client_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x462c9ad3 host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x48a90dde host1x_channel_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4fd3948d host1x_fence_create +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x51de13ce host1x_syncpt_base_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x5814e548 host1x_channel_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x5c4e4cf7 host1x_bo_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x673ed6fc host1x_device_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x6d89aa10 tegra_mipi_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7020899e host1x_driver_register_full +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x72e78e54 tegra_mipi_start_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7f700a7a host1x_job_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x9451a33e tegra_mipi_free +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x94d7e31c host1x_bo_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa1a8fcb5 host1x_job_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa35531e9 host1x_client_resume +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa733ff60 tegra_mipi_disable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa7eb1a5e host1x_syncpt_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa8d8bf3e host1x_syncpt_get_base +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xb5754c10 host1x_job_add_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xbaabe127 host1x_job_add_gather +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xbcbe65a0 tegra_mipi_finish_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xc558ce4b host1x_syncpt_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xcee4cde9 host1x_client_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xd171834c host1x_syncpt_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xd3a4693c host1x_syncpt_get_by_id_noref +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xd557a708 host1x_syncpt_incr_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xe554e4f8 host1x_syncpt_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xf8a79b19 tegra_mipi_enable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xfe787512 host1x_get_dma_mask +EXPORT_SYMBOL drivers/hid/hid 0xf26a1b3f hid_bus_type +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x1800c2cc vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xa74854cf vmbus_sendpacket_getid +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xd8eb908f 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 0x3e0e872f 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 0x272c6f4a i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x925ec1a1 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xe6d00e83 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x451a24bc i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x517e46cf i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x5d1a0f52 amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0xc61e7a34 qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x07441985 iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0xc60dac54 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0xb93018da iio_kfifo_free +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0xf03b658f iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x0136e2ef mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x8ef55b16 mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0xc103ce30 mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x33b40861 hts221_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x570151c2 hts221_probe +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xca19cfae bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xec9d28ff bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0xfeeeb663 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x67c98a70 st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xd93db0b1 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/industrialio 0x02e4be0b iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x07695470 __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x35faacd8 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x3cbf2a61 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x3faa383e iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x45182ea6 __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x535a064d iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0x638bcfd4 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x67f44f09 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0x69a508db iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x7cf7d796 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x85210d8b iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8db9c5fa iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x8f604759 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0x911fecca iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x9a0282bc iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xb889b2e8 iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0xc08af147 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xc904f303 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xd32bdb4d iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0xd35b784d iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0xd6a9e8b4 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xfbeb239e iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x35556896 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x3cc57631 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x56012725 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x8310923a iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xd02accfe iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x2f44f983 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x42a2cfb5 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x4470cc04 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xd3e5742a iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x1f9cac84 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0xd6fbf8e5 iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x1c509f8e bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x2ac49ffd bmp180_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x3d4e7a9e bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0xc042429f bmp280_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x06438f9c ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1fa87703 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x45df42f9 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6bc08c08 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8371faf8 ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x88cf3a1e ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89f0e9a5 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8d92252b ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8ee9883e ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x956602df ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x98531c2e ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb324f8ed ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xccc0db45 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd1dd4b09 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd2970ee0 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x008ab559 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01324b6e ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01e947b5 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03513935 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04d2e254 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08a93187 ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08ec57dd ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c86f5cb ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d3354a6 rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0de1043c rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e4932a1 ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f096019 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1236c069 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x129b617a rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12f909d1 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x132a4800 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x133fe5a3 ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1391624f ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15101968 ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15d2b8db ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15e6941e ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16b88255 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17487dcd ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x180a7560 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a8ad016 ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b4936bd ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b7e656a ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1dbce1a5 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e2b2932 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23543e3d rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23aaba8d __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x264b84fe rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x264c61e3 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26c5a6c7 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29e68d32 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a54aef4 rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a59a07b rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ae7faca ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b2e5a61 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bf2d2b1 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d5f43e0 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f7011c7 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ad6c6f rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x384d1174 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x392c4516 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39cf2f75 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a337168 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ae9446f ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b0832b2 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b64ad3e ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f811d32 ib_rdmacg_try_charge +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 0x439ce33c ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x454cabcc rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46cc1e5f ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x478b9d6c ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4920fc54 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a7799d4 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d10e45f __ib_alloc_cq +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 0x53f299bf rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53f3a108 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x552851c7 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x565894ba ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56813dfb rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a1ba022 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b21c3c1 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bbc1673 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fd112f6 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613b1e2e ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x616297e0 rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6194f2a0 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61d24c52 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62129a8b rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62797777 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x646616aa ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x663e4f36 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6960e5f2 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a428ff7 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ba3e13b ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6dfc4ee8 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3c916c rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70f0d88b ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71e65b3b ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72ca6f4d ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74a5c2b1 ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x759b38ad rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a3900a ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x772dafee rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78e836d2 ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b51c95c rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bbb6850 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dd5be5b ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7eb0b184 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81974569 ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8263cb6a rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83768d66 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84cbe6d6 ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x863bd01e rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86b2b8a5 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86cef180 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x874142bb ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88086a17 rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8902703f ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a2891a1 rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a5085ce rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b6d6320 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8da89fe7 rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7528da __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fa7701e rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e807c7 ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92290603 ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94278bb7 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x944813aa ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96664a36 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97bb6487 ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b387174 rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c42de29 ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c63a2ed rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d53797a rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d7c8166 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e1a97f7 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa168ba11 rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2469edf rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6583709 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8a4a897 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa916226f __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa92a6891 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa0e370c rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae101964 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaec2684a ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf91b18d ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaffc73f4 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36e4148 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36fb480 ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb45cbbc1 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb4fedbc6 ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb679f568 ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb785343e ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb827f45e ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb890b260 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9a97631 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae7b3d0 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbde86279 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdf1016d ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe36b1fb rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbefeb743 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1f8ffdf ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc266b91f rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc58cca05 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5f7b607 ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8c08c47 rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8d38664 rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc95bd61d ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9a9f503 rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca4ccc54 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbde7654 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc4c5d0a rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd41f48b ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd7af5d6 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcdb7f795 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xceeb2eb5 rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcef43da3 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfbc053b ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0c13e38 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd342201c rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd345a3a0 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3840fc7 rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5c1489d roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd704c69e ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd93eb54e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda1176b1 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcbe4ce8 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde1ca61b ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf059ad0 rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0a1b7b2 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe14f1186 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2a36ed5 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe3f72d69 ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe52a16dc ib_drain_sq +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 0xe7b370d7 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b52e5f mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe850fc53 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e799fc ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea3f131a rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec750ae4 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xede0464e rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeec07e9a ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefa9c01b ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0927430 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf095dcb0 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf144f4d6 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2d1a189 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf398df8d ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4746113 ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5dedb30 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf61e22e5 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6ed3334 ib_event_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6fc4209 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf99ea594 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa5786de rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbfb0758 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfec40e0e rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x11bf0284 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x187bb47d ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1b54bd5d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1bf05c77 uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x254e2574 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x272c1a98 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x31adde43 ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36869946 ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36da1849 ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3fc9c399 ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x42a48938 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x550eedf1 ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x56533b65 ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x5729fe5c ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x61021454 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x67448681 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7924ddc8 uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x79bbffbe ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x815a9442 uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x94de0dce ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x96bcba1d _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9a4e1816 uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa5aeb0b1 _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xab2fe1ed ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbde5c050 ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc16aabd7 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc9fd714e ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcad90706 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd747e1af flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd918ffb8 uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xda690ea8 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xde505605 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe3dbf0cf ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xec6292ae ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xedf1e9d0 uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xee98f0e7 uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf7a6ce3a ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfc54918d _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xff1f25b6 ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1044b6d3 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x355a0a61 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x41634814 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x555c7377 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc78c5481 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd0f86131 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd9454011 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf7e7cc62 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x119ff45c rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d0966f1 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x20de595d rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2cdbe626 rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2f146352 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43a8120a rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4566d37e rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x48ffcbfa rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x59f53142 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ae9d85f rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a3f7560 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x70c7b7c8 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x72e31776 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7a96e412 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x83d46ffe rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a7b7ef6 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9074adc2 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9456c92e rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa07d4e3b rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa327c69c rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5a847cb rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa7aa02a8 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa9226d32 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac554b9f rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb32ea66 rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc827590b rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc096997 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce5af423 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd5b9da5a rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd8b4fa72 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd97122b9 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xda116856 __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xea786c11 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xec71a8b2 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x1eeb67b7 rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x45765b57 rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x656c0b79 rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x9a390e29 rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x9af0b19c rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xcbcec468 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xdf99e461 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x242a8646 rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x58bea19c rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5b01e41d sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x887302f3 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x9c7b30a3 rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xc4beb32c rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xe9432c84 rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x23e5c47b rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x247cbfc2 rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x36cc2232 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x87518751 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xbb98b527 rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xe8b53b9d rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/input/gameport/gameport 0x01bdab87 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x18409173 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1db8948d gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2a059507 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2cab6ac4 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x509f8860 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x61d8c0b6 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x95a5142f gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbd7228b0 gameport_set_phys +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x63ecec22 iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xa332eea3 iforce_send_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xb1bbc158 iforce_init_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x0770270d matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4b5b5547 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x814f23ca ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd4752968 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x01eeca31 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 0xcb4038a6 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x28d579e9 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa2133e8b sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcbbe1b0a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd7d1ea03 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd8c51be9 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x09fb0efc ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf04aeb47 ad7879_pm_ops +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0xbf48bd67 qnoc_remove +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0xdc3092ef qnoc_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x21559ce1 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2d786221 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x884089d5 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x97370f7e capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe35713a6 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x1bf4948b mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x35f52eda mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x828112fb mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdea12317 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xbd560b93 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xddefcc20 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06f72536 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1c47eaf5 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 0x3076fdee recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x30d25b0d mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x30d71c21 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x313b1fde mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c09a39e recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c53a876 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3e31abcc bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44d04853 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4bd26ac6 mISDN_freebchannel +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 0x73d0aa7b mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x74702dc2 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x783bd1c8 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8df03d48 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c928457 mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaa0cf510 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbdcf0004 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcb3823d1 dchannel_senddata +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 0xd745019d mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdfa75f2d bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe57c554c get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe6d20bee recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf4e8caba mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf79fba36 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf80da561 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 0xa2952e06 ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xcdd78905 ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xced72aae ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/mailbox/mtk-cmdq-mailbox 0x382698ae cmdq_get_shift_pa +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x75f9b320 omap_mbox_enable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x84aaa615 omap_mbox_disable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xd2feb7c7 omap_mbox_request_channel +EXPORT_SYMBOL drivers/md/dm-log 0x3f674b4e dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x45d6f847 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x474545e5 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x69e6dbae dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x31ec33f3 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3c4955b6 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x59ee9d13 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x800b7e32 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc377c718 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xccbf8882 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x33b672b1 raid5_set_cache_size +EXPORT_SYMBOL drivers/md/raid456 0x560242b1 r5c_journal_mode_set +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x20832890 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2f5099ce flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3bb31b18 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x46281b2a flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x52e6c799 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x89ab505c flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9e45f845 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xae45e16b flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb3ae8368 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc1752f3a flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe2e81f5d flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe7aed272 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf51f0237 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/cx2341x 0x14dcc95f cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x18b853f4 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6cdccf4b cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xbb497d0c cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdbc5583a cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0xe1fe1432 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xfe3862ea cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x827c457d ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x9ec83b68 tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x6d4ddf41 vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xa2bbbcd1 vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc2d9e090 get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc5e5573a frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xdffb744b frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x10f7c130 vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x3dda5845 vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x4771cdaf vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x76fda4d0 vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x90855ffd vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xda536ebb vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xa21fa765 vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xccd197c7 vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0xc14dee45 vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x18acd31f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x242baa0e dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x24f70150 dvb_frontend_reinitialise +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 0x44bc7fc5 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4b1c942b dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x54abe4ff dvb_dmx_init +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 0x6184433a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6a3bc469 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6a9f708a dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7079c67d dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x813172d0 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x89d7bdcf dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8c54b0f8 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x91a6794b dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9263a063 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9f54e02e dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa35d2f90 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa4235824 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa7cee74a dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa90b9968 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xaa77fbd8 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb3352dd2 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb8c88049 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbcee6685 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc3f679f9 dvb_ringbuffer_write_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc90a2527 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcad3caad dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xce4651e0 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcf13a219 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd2c8cfae dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe138ce6b dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe275736e 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 0xf1c8a57c dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfb09f39a dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfb2eea60 dvb_frontend_detach +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 0xffce3e5e ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x5fb26ec1 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x187185e2 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x243449b7 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x251d718f au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x33f86c0d au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x630af7f4 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xc2c2fc4e au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xcce4abd2 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd29afecb au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd5e8ccf8 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xfaf985ee au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xf85c8504 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x073d5b2f cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x8ee04d12 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x1c2d1140 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xcd366bdf cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xf5777e02 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0xc075e083 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x557ff92a cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x1ef2f0c9 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xa2d3942d cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xaf27fe86 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x0e35f6e5 cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0xee9c93b1 cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x117cc8e0 cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0fa254c5 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x5f82d82b dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xbcbac8bb dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xcf9787da dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xde74305b dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x14d4c57d dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x204e9d94 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x402bc87d dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x589894c9 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x60d20001 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x688e9052 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x811ffe15 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9acc6e95 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9b802fbf dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9dab9557 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb202c262 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb65aa239 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc0f039ee dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc22fda8a dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xef68e4dd dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x3da39f6d dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x0264c298 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x3e56db58 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x562eb557 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7e513384 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xb2c925b8 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xe2efa125 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4d5f794d dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x4e8aadde dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x50fca61f dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xad778fb4 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc458f6d9 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x51415618 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x101ab756 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x25a02abe dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x2f921bc1 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x578ffa1f dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x69178269 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x70ac8fb2 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7aefb542 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xae1900b4 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xbb22d282 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xbbc98d31 dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xc85608d6 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xcfe2f578 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xd4463385 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x74d4028f dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x8944e88e dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xca2a2e28 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe3c030fd dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xea8495c1 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x86a1b74b drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xf5fa8b4f drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0xc54e75bd drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x9652ce34 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x350d12d3 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x39b184fb dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x927fa093 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xe7efd45b dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x8b6cf8fa ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x07fa084a helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0xcfd95e1d helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x405c5455 horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0xafa52043 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x346a4aef isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0xc8379ddb isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x17127d7c itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x5175d217 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x9ae496d0 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xccbc9307 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xe86314fc lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x8046f1a4 lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x009889fc lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x5ec547a3 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x4e11216e lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x28071e57 lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0xd069db50 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x71031a16 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xe89a63a0 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x57433a64 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x1781afbe m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0xce680b5e m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xa845e060 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x2da2268d mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x17442f12 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x9ca2f59b mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xd42612cd mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x456e34c3 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x5d51847a nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xa7dd441f or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xf683d2a4 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x9c247476 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x9fe1fcf8 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x162cd903 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xd2c57df8 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x9150d124 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x17660e7e s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x800b8198 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x8202b5a5 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x9f209f6a stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x54c1d24c stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x3bb4a424 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0xc4be0e3b stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x7a5db328 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x20563428 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x09cc0ef1 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x88fef49c stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xb80eeaa6 stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x2d2781f4 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xad9f66f4 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xca08a68e stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x46792923 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xdacbd008 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x3889540a tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x6247d652 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x1e11f46c tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x259ceb18 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xac2ce426 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x602a3ce4 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x683caf69 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0xa01b630d tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x018b167e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x47d5f42f ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xc60de2a8 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0xf8d40439 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x02fb1455 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x13f1c4b9 zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x92724b90 zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x74ae9615 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x6d5041ed zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x736a95c1 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2bfee437 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6a3906eb flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8dd4d597 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9d4350ee flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd3c91a79 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd832ddf2 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf8062447 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x566ed2bc bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x71f1e40a bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7c85f40a bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x8d75382e bt878_start +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 0x262173e2 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x51206725 bttv_sub_register +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 0xbcfe2d7c bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0c09b45b read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x31646ede dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5fb90717 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x60e2c4b5 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8ce54921 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9c002b24 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd4446d28 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd69d9126 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xf61d3991 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x351cb75e dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x5b5296fa cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x88197c20 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa5910d2d cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xc2a463f2 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xf1a110e8 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x1ab311dc 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 0x349ee714 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7ae9e08c cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x92737eec cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9a95d3c7 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9e540363 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xa968ccef cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe5aa6811 cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9050411 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x34797733 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x4803b77b vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x54dfe2bb cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x671d8db0 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x80f4f447 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa71669c1 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x03d97b7d cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0d458ad8 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x655834a2 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x99d589c2 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x9e37c90c cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xbc50efc3 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xf7be45c3 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x12dc903f cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x16bde2be cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1d18711d cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x22eb0f1a cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x25a973c8 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2c643114 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x38d639ff cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3d5465a5 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x42211570 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5b110db1 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 0x6cffa7bb cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x79c94eb8 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x80028e22 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x826bc37d cx88_risc_buffer +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 0x97df17a0 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb6143b3f cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb7a80665 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc466b10c cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc6e588d8 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdad3a9f5 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x42a8a2c7 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x084347e6 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0a9ca484 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4dc01e18 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x548b4021 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x64ea6c5f ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x719e3631 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x968d506b ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa059762f ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa3c4b5ec ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa819d820 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa8723639 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xab3ace39 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xac3c6799 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xad36e0c7 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb3c6af0b ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcb242aaf ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xea7735b6 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x26d6a8d9 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5c9bd2e4 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7267a66b saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8428cdca saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x849df981 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8f1ad46b saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbe8b4f71 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xcd5ca51b saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xce2b6af7 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd2e3ac66 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe0ee531f saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xfe8dc7aa saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/platform/allegro-dvt/allegro 0x2c79d0f2 msg_type_name +EXPORT_SYMBOL drivers/media/radio/tea575x 0x11433e37 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x6125cb68 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x61f04505 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x90fa58e7 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0xee4ad9ab snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf317fa69 snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf32f67f8 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x8b29cbac ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x9b6cd927 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb5516017 ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0xce3696f3 ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x94347c2a fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x63494d85 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x59a7f0bb fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x636d58a7 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xd0f88045 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/max2165 0xb7bce49a max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x083e6c42 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xbd1c66f7 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0xa080f4ff mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0xb143fd65 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xfb798cfc mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x1c55ae61 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x8f2369fc 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/xc2028 0x7556960a xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x15c74513 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x879b583f xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x96f1a3d2 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x9c8ef104 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0e04613e dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1aa5429e dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2750c1b5 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x69b1e348 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x89d4e5c1 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x982578a2 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9d097e69 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xae9bbf02 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf98da9b0 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x17006325 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4db22ae1 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x51b7890a dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x689c33b4 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8b6f5395 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xac00c295 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe9203b06 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x43548b10 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 0x0b6fea42 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x55adeea6 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5dbed630 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93822ecb rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xa3f6e74a dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xabf20cce dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb9a14b47 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcbdee6ad dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xec9f64fb dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf77bb818 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x111f9be7 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x27bd7dbf dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xc75c4484 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xc9b8a755 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x1c99fb08 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x38176e6b go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x70654578 go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7ba2b010 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xa3b8524b go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xa720b0bf go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xc0ead691 go7007_update_board +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xcc9737be go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xe733f4c1 go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x14d29a18 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1dc19464 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x364389a5 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb0290b8e gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xd477d7d2 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xe1caaa11 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf070da01 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf4df37e0 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x6e3f81c6 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x9f05fa5a tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xa0cf4a79 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x4af12304 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x613622ce ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x43d13c39 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x62fe3a7d v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xa441e3dc v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xbf4c3b57 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xc0869129 v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xf063b43a v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x425cec1f 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 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x6eb63ced v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xa215774d v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xb0639362 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf626dd03 v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x01b7e036 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x01fa0fa5 v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x102a8fb7 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x152678ba v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15356862 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16814c72 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1af1df26 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x20e0e873 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2cbb3fb4 video_ioctl2 +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 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f2a726d v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f418e7a v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x485b4292 __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4b50a95f v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4eda7fe0 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5525f755 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x58b74274 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65c775fb video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6faa7478 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x707badb0 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x772702be v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a73e341 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7bf168dc __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x82382462 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x85618ed2 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89e3897d v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b585854 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8dace13a v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x929ad8d9 v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x93b796bb v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97e53fac v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x98618746 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x99ca2927 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a355196 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9c2f1a8e v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9d545107 v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9fd7f2cd __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa0291110 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa3af0d1d v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaaade60c v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xae9fdac2 video_devdata +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 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcf7d3492 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcfc1c3c0 __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd138e316 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd16d9c01 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd1d804fd __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd8147cf2 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xddfef4d8 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe525469b __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe659596c v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6ab1fe7 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xea041021 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xebbc2706 v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf4e2f4b5 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf50fecbc v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf7996ffc v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x29be8e03 rpcif_dirmap_read +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7e9f5bc0 rpcif_manual_xfer +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x94820317 rpcif_prepare +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0xae181ff4 rpcif_hw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0xcfc98a62 rpcif_sw_init +EXPORT_SYMBOL drivers/memstick/core/memstick 0x09c9a58d memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x346cba85 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4a4e5778 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5704d477 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5a9819f9 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b688777 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d91683d memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x62916a59 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x84326b95 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8bfe698f memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa0444b32 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xae50437c memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe5634f6a memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf360f94d memstick_add_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x013b6f0d mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0a989f08 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2b7db948 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2c814f57 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x30a3ada9 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e6b07b1 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4cc47082 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x537e2486 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5fd9b39b mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x76d6ee91 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77d04ef0 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81eba084 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x87fcfc12 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x94a72fab mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x95fd4425 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9c661f0e mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ebbccf1 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa43bc993 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xadd1a457 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb02698d6 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb23152ba mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb46a5a3e mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcfd6413d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd27718f9 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd3b0b2f8 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4a49874 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeaa3bb9d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xebcd1424 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeec602c1 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f892687 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23a54251 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3449d806 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3a53c351 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51283dc4 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5dc7516f mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x66c54665 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x68117b2c mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x700424a7 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7395f8f8 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76be81e5 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76dfa000 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x84d1e86a mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8af7b908 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x946654aa mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x964e903e mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1602737 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa873c582 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacdf5c71 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe2306e6 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc1f5a34d mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc20d43b2 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd955da0f mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe122aa1b mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7119fd6 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8d1c9e7 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb51edb7 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/mfd/axp20x 0xa1acddba axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0xaeb1d279 axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/axp20x 0xc5491bc1 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/dln2 0x5d5a7085 dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0xaf20af79 dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0xe81240a3 dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x33baec2f pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xa859d268 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x140c6f6f mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1a275480 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1b578bfe mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x37d0c64f mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4bbfe8de mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x71ec7acd mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7d327085 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8673336f mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa99d578f mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xae4fdb47 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc17f67eb mc13xxx_get_flags +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 0x4f778d98 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x6c2e3365 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7d4d3601 wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x8856e611 wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0x8b73e977 wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0xd0158fb5 wm1811_regmap_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x46aab480 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x7c2cfa6b ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x5bafa76e altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x63f4a2b3 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xf5188fbf c2port_device_unregister +EXPORT_SYMBOL drivers/misc/tifm_core 0x09835e85 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x0d1c1132 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x0ffb277f tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x1fe3548d tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x2307c05d tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x2dd79606 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x3e5fabc5 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x510fd160 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5b904b5c tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x652cb4cf tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d47fd7a tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x82bc41f6 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xff76ec33 tifm_unmap_sg +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x037ee50f cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x28dd094f cqhci_deactivate +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x73d26036 cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x92b264a8 cqhci_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x9bb6977a cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x9680bf5c dw_mci_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xa8aac3f2 dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xb4dd2fbe dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xd5c2f91b dw_mci_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x4e026400 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x72a65870 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x03dd7d14 cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1f8cf74c cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x70a47493 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x804d46e6 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9c14ba4d cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd1d6edc7 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xf555cd0c cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xff9fa623 cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3a2b915f register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7b1089f1 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9feda431 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb3754a2e unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xd12d9b6e mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x98cf57ad lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xd03be20c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x829fd198 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xbaafb00e mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x102603bc mtk_ecc_get_parity_bits +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5437e775 mtk_ecc_disable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5de55d81 mtk_ecc_get_stats +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x6df58afb mtk_ecc_release +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x750dc7a8 of_mtk_ecc_get +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x76e53683 mtk_ecc_wait_done +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x8dcc87d2 mtk_ecc_enable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0xda64ef4a mtk_ecc_adjust_strength +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0xec8b9207 mtk_ecc_encode +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1f853027 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x20c58f8a nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x32254a96 nand_ecc_finish_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x45e741cb nand_ecc_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x57065109 nand_ecc_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x697b7cc8 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x89a9958c nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x8b4e3c5e nand_ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa49f270c nand_ecc_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xb3c779a9 nand_ecc_prepare_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc6d68811 nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc7371769 of_get_nand_ecc_user_config +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc82996c7 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc971b1c5 nand_ecc_is_strong_enough +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xcbf10913 nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xcd9fbc24 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd4075b2c nand_ecc_get_sw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe0200d31 nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe6db989b ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xea4af81f nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xec89cbbc nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xef5492c7 nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xfbb48d86 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff4351b0 ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xb4a4c90d onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xb6c90d7f flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0xaaf782db denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0xccb4a55f denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x02ac4a76 nand_monolithic_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x0d2e3682 nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x0d7fe2de rawnand_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x207d653f rawnand_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x2b1adcea rawnand_sw_hamming_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x3acdebfe nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x5ec81ae9 rawnand_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x7be97bb2 rawnand_sw_hamming_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8dbe1db9 nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8ecbb3b8 nand_check_erased_ecc_chunk +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x96f66310 nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x9d1e46f3 nand_monolithic_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x9ef097e3 rawnand_sw_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xa2159a6d nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xb26d6779 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd2091ed1 rawnand_sw_bch_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd2f9bdf4 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xfe790f35 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/omap_elm 0x6a39d62c elm_config +EXPORT_SYMBOL drivers/mtd/nand/raw/omap_elm 0x7b685723 elm_decode_bch_error_page +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4fde9768 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5578e199 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x735b941d arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9bed5a56 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xad800d2c arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaff4a2d6 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb1c739a1 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xce44aa56 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd9d9dd8b arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe0673735 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf0832a50 free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x10f55d9a com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2cee5d0e com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xce7a6637 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x69cd3130 ctucan_resume +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x9efd722e ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xff0579ca ctucan_suspend +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x04540df0 b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1cdf073b b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1dff285e b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x218bffd1 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2426f5fb b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x25006f63 b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2f34e84d b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x31e51eb7 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x339bee73 b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x349c9743 b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x372b46f5 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x46da381f b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4d4e12d5 b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x614da0db b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6298012e b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x67a43e38 b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6ca2ca9a b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6f0ae33c b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7b189447 b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x88e84491 b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8a4ad389 b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x93c4e243 b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa2fafd40 b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa42b5e53 b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xb6fef718 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbec57871 b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc01f4ba9 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc7f3f825 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd380febe b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd3f29249 b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xda82b0fb b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe2e9b327 b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe40d7b4c b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe7d6831e b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xec09a966 b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf14f1008 b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf2e10a13 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf9c2fb84 b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x5272275a b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xa0b6bfcb b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xa946ab99 b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xdc899a78 b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x1fa29d09 lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x8907ff26 lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xada83f40 lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xdeadd0e6 lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x800572ca ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0xb3133100 ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x3ba1e22e ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7ae14f44 ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x8e8d00aa ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x2e58ec17 vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xec825fa3 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xf1af6bd2 vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x1e8b38e4 xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x4026e632 xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x41181d36 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x83b7b667 xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x88828e38 xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972bf7e xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb25facfa xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb89aa5e3 xrs7004e_info +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x0a2b6e39 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x272a9eb8 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x68c31ec4 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6b02aee9 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x805b160e NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xba64e86a ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd0b0e4a4 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe8647b0f ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xea08100f ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf7250811 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x9b089d76 aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x987de7c6 bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x1a73da43 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x3f0e89ab cavium_ptp_put +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0xcd5fc320 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 0x012e52be cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x01bffc55 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x19325af6 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2ca46ef7 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x46819164 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x517963b5 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x61a51f88 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x88e6f1e1 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xafb27517 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc309d9aa dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcc687ec2 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd5caf932 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe300510e t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe4383cea cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf0890be0 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xffa0101b t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x01816b35 cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x085807f8 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0cf0df6b cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1460848c cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1e0ebe4c cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x201ad3f5 cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x229b3191 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x23212af0 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3c00cd99 cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3ccf678b cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3cf7d9c8 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57ffd0a8 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b1b6337 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b531c01 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5b9a16e3 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x636d7045 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6b10c101 cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6cb287eb cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x714819cb cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x752427e0 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x763cc364 cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x76be01d3 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x79f2b1e1 cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bedd93c cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8039e3e6 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x88ba06fc cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x894e857b cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8b5ad77d cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x91160132 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x917024c6 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x981bfd83 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98dc7e3e cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x99e13856 cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9cb88a3a cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9e6bf27d cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1d998fe cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa2528e17 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa814eeb5 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa954194c cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb61c4543 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbe8f994f cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc43ecd1a cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xda0dc750 cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdbb801fa cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xeaad9e22 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf5fadcd2 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x06bf6ce4 cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1 cxgbi_tagmask_set +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x2352f174 cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f cxgb_get_4tuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7fa1ced0 cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xbc43526e cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xc372ad94 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcc50d3ca cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xcd890f94 cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x55a038a4 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x5abe2b3e vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x6c6d43fe vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x99f7a508 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xa0d64d4c vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xb05845c9 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x2c1f5e0f be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x3763cfb3 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0x4412391e dpaa2_phc_index +EXPORT_SYMBOL drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0xe5110814 dpaa2_ptp +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb 0x0547125c enetc_ierb_register_pf +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304 enetc_phc_index +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x20f87ebd fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xe266b081 fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xe872c5a0 fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xf7ee0607 fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x62ce46f8 hnae_reinit_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x6830c368 hnae_put_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x75c817fc hnae_ae_register +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x766dc145 hnae_ae_unregister +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 0xf9750616 hnae_get_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x5996a1a8 hns_dsaf_roce_reset +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x0978746f hnae3_register_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x102de693 hnae3_register_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x164a7afa hnae3_set_client_init_flag +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x415a0853 hnae3_unregister_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x46b26512 hnae3_unregister_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xb5fb0dee hnae3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xc7dced84 hnae3_unregister_ae_algo_prepare +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xfa311c93 hnae3_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x2dbb9de1 iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xbe2aa781 iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x965ff908 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0xbaa35511 ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x005209bd otx2_mbox_get_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x070a8eb1 __traceiter_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x1277e44d otx2_mbox_alloc_msg_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x1956bccb __traceiter_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x34bbd8ee __traceiter_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x3526400a otx2_mbox_wait_for_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x364e8761 __SCK__tp_func_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x39b7b9b6 otx2_mbox_check_rsp_msgs +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x487fcb3a otx2_mbox_regions_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x49286d3c __tracepoint_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x4bc56343 otx2_mbox_nonempty +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x4d90631b __tracepoint_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x5848716e otx2_reply_invalid_msg +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x6365a74f __SCK__tp_func_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x6c4f6234 otx2_mbox_reset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x889c249a otx2_mbox_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x8f772a3f otx2_mbox_id2name +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x9e7050bb otx2_mbox_destroy +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xb150b38c __tracepoint_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xb317f3a4 otx2_mbox_busy_poll_for_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xcef3985a __SCK__tp_func_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xf468bf6c __otx2_mbox_reset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xfd863ad7 otx2_mbox_msg_send +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x0503aa87 otx2_detach_resources +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x1180ea43 otx2_config_pause_frm +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x1398230a mbox_handler_npa_lf_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x188cfb4d otx2_shutdown_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x1a0e359d otx2_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x1dca56d7 mbox_handler_nix_txsch_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x212ec696 otx2_stop +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x23aa8e40 otx2_sq_append_skb +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x23df82fb otx2_alloc_mcam_entries +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x3af96a0c otx2_get_mac_from_af +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x4c294b1d otx2_handle_ntuple_tc_features +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x4db1a0f2 otx2_mcam_flow_del +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x516a229b otx2vf_mcam_flow_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x5fffe4fd otx2_config_hwtstamp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x60a9029a otx2_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x71cae4ff otx2_nix_config_bp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x807ef36b otx2_ioctl +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x9142b455 otx2_setup_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xaf7a9143 otx2vf_set_ethtool_ops +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xc531686c otx2_get_stats64 +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xcd1078a4 mbox_handler_msix_offset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xd1750af3 mbox_handler_nix_bp_enable +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xd2d54e39 otx2_attach_npa_nix +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xdac8ace3 mbox_handler_nix_lf_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xdeba02b0 otx2_set_mac_address +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xe7241362 otx2_tc_alloc_ent_bitmap +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xea0ad1ee cn10k_lmtst_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xec77e6f9 otx2_init_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xecc934f3 otx2_set_real_num_queues +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xeffd130b otx2_get_maxflows +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xf84b82fc otx2_mbox_up_handler_cgx_link_event +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xf96d1ceb otx2_open +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x5ead781a prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x9073002e prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01ef986f mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05d1ef6b mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x064f736e set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0be93799 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fe32d4d mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11c0071c mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x130f9909 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1498140b mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d124ef4 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fdc674e mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x249d0eff mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25dae6e6 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ca190b1 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x303ee463 mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35f3ca28 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fea256e mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4a56466e mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e32b725 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50cbf936 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54193b5e mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61ce5b43 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64cdff41 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x751b748c mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d171b05 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ec9e7a1 get_phv_bit +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 0x88fb170f mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa463bf62 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8aac9db mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa987d5e mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xacf479c2 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb16aba57 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb55d0e49 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb89c30bc mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfc1e0aa mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc876d466 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb56e720 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf6c127e mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe18accef mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2570083 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb0d13b3 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf71b9632 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf941dd4c mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf96952df mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9fdb1aa mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0003bdee mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00f4f582 mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x029d9c90 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03becef6 mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07a3e91a mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a21b020 __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f82aa84 mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1137576f mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x124ca000 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1390d8ee mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16129d5e mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x176fab83 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a7150f5 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c57c524 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1cee2c76 mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1dccb176 mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e38486c __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e4b7789 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ed2481f mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22a5edf5 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22bce683 __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25a83b74 mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x265ade08 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d6d6fcc mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f32143a mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f849ee9 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x302356ec mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x313394de mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32fc77d1 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33b4ebe9 mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34f88d7f mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x357f4d0a mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3956791e __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39da9dd3 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x44f22c87 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x473f7e53 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4787e114 mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a19a804 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c22da8a mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e6b3512 mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fadf190 mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x567e8501 mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5950776b mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b0f797d mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b6994df mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c6e2b0d mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f43f598 mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f5d6a60 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ffb9e22 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x604cf52b mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60a03e2c mlx5_cmd_init_async_ctx +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 0x646cfb86 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69ea0316 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c856ec2 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e263bf4 mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71534d06 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72970ed0 mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x737a6797 mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73e7e996 mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x742dba71 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74e73af3 mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7627dd8d mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7aa69b1e mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fd709fe __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83f96851 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85ffa9b2 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x872e7c67 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x889d3123 mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x890faf30 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d972bae mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8e085277 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x908355f2 mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92940596 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9317208c mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95fcd52f mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x962cabb0 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99 mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x998eeafb mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c315449 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c9bef05 mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d6135dc __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f68f1cf mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9f8f2721 mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa07dfb49 mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa20d0ec6 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa376089e mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4a635e1 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa64508db mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6a329ca mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7ad81c7 mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaa13575b mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaad1bef9 mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab521f6e __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xabea6c4a mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad688aac mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae861bde mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaed431e0 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaef5e2c3 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0578b6a mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb23d48d6 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb28dbbe8 mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2d49acf __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb323b406 mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb3f242ac mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb43e9e9c mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4db571c mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb72cffaf __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba5c2f4f __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb475e47 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc2958da mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbde30b92 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbec28306 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf811406 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc033d1af mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0b05210 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc38b04c7 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4f27cf1 mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc5207d22 mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xca4031f9 mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc002b85 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce189e2f mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce8c3424 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd020dd1f __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd08b459c mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0f95ffe mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd147ba8a mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1912f8f mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1b97a28 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3b75f49 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4d9fe8a mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd53e8ea2 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c3be3d __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd71e5ab4 mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb9471bc mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdcbc86f4 mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdd3cfcf7 mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdda25d5c mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xddd78334 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2a5120f mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e09c2b __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4f4e5ff mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5ad0cad mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5f522b2 mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe8857305 mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9060646 mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb9a8bcf __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeca93df4 mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3117cb8 mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4ce24a9 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6218ee6 mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88d57b1 __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc8e744e __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xaf1a42d8 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858 mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x25c9e5ca mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2b837c76 mlxsw_core_port_eth_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 0x2dbfcc8c mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +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 0x484489a4 mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4dfc9f44 mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x6060ccf1 mlxsw_core_rx_listener_unregister +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 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x82359bd6 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x84833b1e mlxsw_core_driver_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 0x902c3533 mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x963cfb6a mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97035a9c mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97e62e6e mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x98bfa19b mlxsw_env_set_module_power_mode +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 0xa7765e88 mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa8cccf0b mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa957f62f mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa6fe67f mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaaaca729 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xac1074a5 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb03f6893 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb04de610 mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb2eec14f mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6b40684 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xba05b3b0 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc504ca0e mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc8bb15ec mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcb0ab57c mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd28256cf mlxsw_afa_block_append_allocated_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd6819d58 mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9 mlxsw_core_schedule_work +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd7a93413 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd84eb6b0 mlxsw_afa_block_append_drop +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 0xde4e211f mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeab0691 mlxsw_afk_create +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 0xdf778b3c mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe16986dd mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5540be5 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeda7a5d0 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25 mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xffe6f0be mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x681468da mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0xdbd37ea8 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x9c638b2f mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xbb59a2e1 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0b7b341c ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0c87d53a ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0e8ef32f ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0ed0e3b9 ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1110e88b ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x198825f6 ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1b416894 ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1d2fe27a ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x23a63710 ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x27e6d357 ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x288b79c9 ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2909c35c ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2a3cd39f ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2a9173c5 ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2af9604d ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2e8e60bd ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2f20030d ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x304a9b0e ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x345ff00b ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3764704d ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3b58ccb9 ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3dd0f581 ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3de5a8cd ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3e54dc2b ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x48af34ac ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4b7b4c0c ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4c5cb988 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4d86ca14 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4e9fef29 ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5290b529 ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x531cae75 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x55adb0a5 ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5b42dec0 ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5d457989 ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x63e0d979 ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x66d830a5 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x68a2be36 ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x76a00be7 ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7ab762ae ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d4a7c8a ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7f00ea76 ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x80a75405 vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x844147ac ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x867c9794 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8695dfb0 ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8ac22f83 ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9053bef8 ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x90591db9 ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x90cbb220 vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9381969d vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x96fe922d ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x97de1020 ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d442141 vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9e3ad1f5 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa1fe5102 ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa60bac44 ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa8413d7e vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xabb62cb7 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb1d3e52e ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb30c4b92 vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb4228416 ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbae81f9b ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbba17367 vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbe7f61b0 ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbe84cc9c ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbf48ddc1 vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc58e5921 ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcb45f47e ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xce8cbe1e ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xceed5e7e vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0662e65 ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0ebefd9 ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd687a545 vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd9e950a3 ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdd49dd29 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xde194bfb ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdea4139e ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdfbee591 ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe126f507 ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xea1b5ac9 vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xecaa97fb vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xefe43aff ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf4f4071d ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf55f8d45 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf90c7e2c ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfb42d4c9 ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4ac05c0c qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4f264472 qed_put_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4fd136ab 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/qed/qed 0xa3afa9ad qed_get_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0xf1580012 qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0xde69bb71 qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0xf8cf2f05 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x11c6bedd hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x432c68e2 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9ae8c466 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb7e5a0a6 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc2e0b996 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 0xaadfd1af 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/mdio/mdio-cavium 0x3ce16c68 cavium_mdiobus_write +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xd5207d2a cavium_mdiobus_read +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x1996c280 mscc_miim_setup +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0x88302777 xgene_enet_phy_register +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0x88416504 xgene_mdio_rgmii_read +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0xa89174a9 xgene_mdio_rgmii_write +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0xd1fcaebd xgene_mdio_rd_mac +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0xd69749ff xgene_mdio_wr_mac +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x69f14b8b lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xa6bf0e9e lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xe22f878b lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x011510a7 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x72df72f6 pppox_compat_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x84dcdc67 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x89910307 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xb05d876c pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xcfadfd32 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x18ea173b team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x1ef27b5a team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x5e5caf22 team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x763b31ff team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x7b82344a team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x9844e655 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x9bd2d1ed team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0xfc93a749 team_mode_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x323462bf usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x917ed33c usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xbe21992b usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x02bdfe27 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x067bbb86 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x270f75ed register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2b97e885 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6040f2f5 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6b617eb2 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7c5c2a8b alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x814d3024 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8902998c hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xfe4eb84f unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b0a8f69 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x153da122 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x38604c39 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3c69f66b ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3f48c553 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x45f68e12 ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x588dd928 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6130cf85 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x755d3c5a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x956f8da9 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa18f224e ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xab6c86cb ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6588ba6 ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xde747ba3 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe5429053 ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x007de4b9 ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0c5711cc ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1e5ac9a2 ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1ee29c42 ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2210e688 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x23048755 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2f51ebcd ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2fd0e560 ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3720c634 ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3ce990a6 ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x414b6c77 ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4400f45c ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x44ab4bdc ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x483fd69d ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x48afce7f ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4ac5d69b ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4c171274 ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4d1810e7 ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4dbd38e2 ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4de3504f ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4dec0825 ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4e007727 ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x502961dc ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x50ec5a73 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x61119589 ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x611650f0 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x61250895 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x63464d1c ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x637b9c17 ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x639463bf ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x662e0a31 ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6af24de1 ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7a40d1e0 ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fb6e099 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x82ac0e09 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8506a4ab ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x88fc4ef3 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x89b5e2c1 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8bfe9a65 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8cc8ecc7 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8dbe7bcb ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8e601957 ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9055c6b0 ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9875c7ac ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9cee8aa8 ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa1e4849a __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa2cf46af ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaa0932a8 ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xad9dd57e ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb6b22c6d ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc0a2dead ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc0a47eb9 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc563e64c ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc7802ab1 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf2fb9fa3 ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf53735d7 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf5877f7b ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x02656e5a ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x02f3d444 ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x03c44a6e ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0da09b3a ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x10d5c3b4 ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x199c214e ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1b0d0e35 ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1d9ce6e2 ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2c436970 ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x37868491 ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4cd01b1b ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5add8074 ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5da3d4a1 ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x606a5b5a __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x61c9016e ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x67b58d79 ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6a6cd1df ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6a7190b0 ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7a5bd50b ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7cff9029 ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x89df461b ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8ecf2d4c ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x94506377 ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9b93e4b8 ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9c51bcc4 ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9e2aec1a ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa327cbb7 ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa625bdb8 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa92d82ba ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb7ef3222 ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbb03acd8 ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbcc56c41 ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbe5dc286 ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbfec44c3 ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xcf334a2e ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd72383dd ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xe503cc38 ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xea7a55b9 ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xeb7a886d ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xee92b6aa ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf0197188 ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0d848f46 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2499c339 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2e0ee711 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x58ea7644 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8d31c4e0 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 0x97487500 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa6a56c37 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 0xe031faa7 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe3418c2b ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xf025fd05 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfc82205b ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x08db106f ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0bb0cfdd ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x14380d3e ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1ae173e6 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x23d0318a ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x251853b2 ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x28cd1bfb ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x29ad0aae ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x352409e6 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x39e9a0a9 ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5a89db2a ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x66d3a532 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6f4d0f45 ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x73545ea5 ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x75ff09a8 ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7771e2e9 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x89dfdee2 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9b822959 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb74eefc3 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbb269b51 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc4582276 ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc6f8d25b ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf0b65b81 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03eb44d9 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x094d6fc0 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0aacf7a4 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b883971 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bf6a3fb ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0eec9fd5 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11218eee ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11400285 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1243c86d ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13f86bc1 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x15c967d0 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x212e9a5a ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2499316a ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2733c72f ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a5310ab ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2aeb8c99 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bfc7ee1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c57f48f ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cfe717c ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dc0e66b ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32f04330 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x358b097e ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f848858 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4752460c ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4dae00ec ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f4d4480 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55b1d475 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5731637a ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e2dc3fe ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f9a31f8 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fd550bf ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63ba520d ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64788210 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66f10fc4 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6865eb17 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6878a6be ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a228e8 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b06c9c5 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b279228 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b44a714 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cadecbc ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cef9d2f ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71dd9fed ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73d0a403 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7669a861 ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x770543ea ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77d4ba09 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78fe61e4 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ca9a7bc ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82dddd49 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83354b8f ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83fd5c07 ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a91c2ca ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f06c0e9 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92bbc2f9 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93678ce0 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97f910f7 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ce0cbd6 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d5948e6 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9db55a18 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f0428a9 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2a88fe3 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa330bbef ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5c32b99 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7296337 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae51ffea ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3caab53 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb402e5a1 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb53444ea ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb576bb2f ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb5a0cdcf ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbba7d50a ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcf21485 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd030610 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe8a235a ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1aa53ba ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc44f9dad ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9ec8160 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce08cb75 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfdc0cd0 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd09a77ae ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd12d1ca5 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd176ac21 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3405d9e ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd403e6ae ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd716c104 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd86fc14f ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9611165 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9c4fe4e ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb9c7611 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbb3ba2b ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdce61f50 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd373ad1 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd5eb59c ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd6bfbbe ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe132f239 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5cda2f3 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6330e38 ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8af588b ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xebee27d4 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec3f1537 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef60aa40 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf24a0ede ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf260b2ad ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2de2d96 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa2de0d3 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfde39091 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x95ce4d32 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x9c097582 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xfea87d8e atmel_open +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0395158b brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0a7f3759 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0cc90a5f brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e brcmu_boardrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1a4ceda5 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2e810708 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x2f3f7fa0 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x333d8433 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3e152ff8 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4aec9753 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x61bf660d brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x9f80f8ab brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd74736c6 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xed357dae brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x06e6d143 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1328e95e libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1a802709 free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x4d31b7a9 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5d5494eb libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5fe6f73d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6d8509a9 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x700e0d13 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x76faba21 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7bc10eab libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x831085ca libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x99c32541 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xa6f48923 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xae758c96 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xafe97c7a libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb28cfab8 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd4a19262 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd779f693 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xeec96ba6 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xef9aa589 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x00171ee7 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03dcd6c5 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x04402ca0 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0605b780 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ad2df28 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f6320d3 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x12a2695d il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x14957e0a il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1534f909 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1545724e il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1d179b73 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f4e20b5 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1fda661b il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x20af6638 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x244391d0 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x25af51a1 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26b9de9d il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x26fd77dc il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2738b01a il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b5be073 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c32f4d1 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x315b8440 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x377bde16 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3832b4bc il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3833399c il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3cd1b405 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3d20d101 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3eef185f il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x40dcd241 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x42d55b1a il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4dc6f072 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f3d44d5 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x522897c4 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x53569f19 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x56652124 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5923f741 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f5b17eb il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62221599 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6278954f il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x649d8596 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64a8b2e4 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x64dbc617 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6b1a8f5c il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6b6d9b5d il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6e2c0e6e il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ed99a0b il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6edce2bd il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f95d1a6 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x735846cc il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x742ee454 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x766a5bed il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x785cb715 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7948f9c1 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b252202 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8a4b77f6 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8d04fb27 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8e11e4cc il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8e2f2d0e il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8fa4ad34 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x98b45ecc il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x99297fc2 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9a282738 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9d8300b3 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9e5a690e il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa23956ee il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa760e7c8 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xac5609fa il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaf5edd06 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb770aad0 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb77d38f8 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb9283f3a il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xba6cdb45 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbc9c4f04 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbca4e881 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdbadec4 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbee9e483 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbeeaf277 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5e7e12b il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc68eb7b6 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc71c98ff il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xcba8a42d il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd49e3dc8 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd57b53c3 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd6800e8c il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xda6909e8 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdc1785a1 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe4e9119a il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe6ce2d60 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee019be0 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeebc0bb8 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeee41d1e il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf088d929 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf4319fc6 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf7d29f73 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf892a9d9 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb78c39d il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfc101de4 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfdea97c5 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1dbcdf35 __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x36a862e9 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3d23c104 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x970bf4ef __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaaafbd3e __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd1130d45 __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd1e69877 __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xf8d4532d __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1653235a hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x191e3f84 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1e5c93ba hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x25b403df hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2fdb6312 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x36efa836 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x37720e20 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x47aea32e hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4d73b874 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4f5c8a56 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x529699d9 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x535100ce hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x53893113 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x569c91f7 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5af1f52e hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6addda1b hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6b0cff3b hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x75934c58 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x76eebbac hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8a0c9850 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x96608ca0 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x99b50931 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xc73c09c5 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe32a6499 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe485de55 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf7f8c162 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf91c03e2 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x06a8af32 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x06f6d6fc orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0a577fd0 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x2303f212 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x3d32bd78 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x454592cd orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x46e81a9d __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x49fbd489 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x6cf5645d orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x6e37d923 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x9cd1fb72 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa4c1e5aa __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa74c2dc5 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xbce1a94a orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xc628f97a orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xf54657d9 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0xe5c506d7 mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x4ffefb2a rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12a81522 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x15cf1b68 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x17ff5ab1 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1c592f1d rtl92c_dm_watchdog +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 0x2c00e20d rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2ee778ec rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x308c52aa _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x31ee8f61 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x353ddc22 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3a1cc2e9 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x41b4e708 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x45b2f830 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x45d70c82 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4ac0e298 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4ad5bc42 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4af61831 _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x57163b05 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5e921217 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x607815ad rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x629e4fbf _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6521b3bc rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x67516e0a rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6b316549 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x724bbf6d rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x85090ff9 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x880fc2a0 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8a3edd2d _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x91f5bb66 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x93452277 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa269ecfc _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa9720d1a rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb712852f rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb85a0078 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbec71f4b rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xc2d90db0 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcce7fccb rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcd63c3fb rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd1bb96a9 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe0f288ec rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe9d1b390 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf59b8381 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x17f8049f rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6af5f95c rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6f26a009 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x83b9f9af rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x51aa96b3 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x918a6e99 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xa1df1093 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xcc6974f2 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x09dee93e rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x14a727f8 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x20564f7d rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x27ddad22 rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3805c760 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x424e0168 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x45b7fcc9 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5bce533f rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5cf59a74 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x758f78ab rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7667159c rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7e9efd85 rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x86608f02 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ea60059 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x971120a4 efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9816afda rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9edb5bab rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9f80da55 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb224f62a rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb7272b5e efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb8bd3213 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbc5178c8 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc0e5e0c6 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc74adaf5 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc9a52cdf rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd0c37fa8 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe19accfc rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe72283c2 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xeac3a2e9 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebedfe5f rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf39a0e8c rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfede2ada rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0x4e8bd5d8 rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0xd34ba255 rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0xa56baf6a rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0x4aa9c454 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x000ef0cc rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x019031b4 rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x02fdd86b rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x05f32b15 rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0c5dedb3 rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0fb9a903 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1175a278 rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x12cb6f95 rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b4e30b6 rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x246dc35f rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3293f1fb rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x34c9a6ba rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x35002d7a rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3bdfbc0b rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3bfba35f rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3c8fd56a rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3ef03892 rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x41bc04cd rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x469c7136 rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x506b1078 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x53f1f6d6 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5ad4e65c rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5d1d4d73 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5ec9b3bf rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x66cb6456 rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6b3385b6 rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6e57d454 __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7c05178b rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fdeef58 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x84ba52dd rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x84d2782f rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x94b51586 rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9a52925a rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9bf1fe0f rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9c187578 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa9f56088 rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xacbb692d rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xaeac1b5b rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb2bd95f8 rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb363a74d rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb8bb169b rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbd4060a3 rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbd815f1e rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbe2cd940 rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcc1ada80 check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcca42dc2 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xccb97e93 rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcfa30983 rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd03e4071 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd10a642c rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd28cfdf6 rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd2ad2655 rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd775e633 rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xde302939 rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe88a91a8 rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xecee95eb rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf055c064 rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf157475a rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf16f7e2c rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xffe790e1 rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x2b074bed rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x4b7bff33 rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x625c03b1 rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xb6f71a34 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0xefd1a3ec rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x03ea3d73 rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x03dce210 rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0e98da49 rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0ef1a925 rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x105ab616 rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1420c371 rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x18826518 rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x216c0d5f rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x237041e6 rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x27f4883b rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2cdf1ec4 rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2ec66903 rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3aa23401 rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3d236e10 rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x48a9ba98 rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5089b93a __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5c49d814 rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x710092cc rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x74443a38 rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x75ca7ad1 rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x771dfb1d rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x776d6f7b rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x795e514b rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x80648580 rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8b9e664d rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8d54621d rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x95f11257 rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa266eb25 rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa278ec46 rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa3f8a962 rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb1302dfa rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb46150f0 rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb5f6b451 rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb6e2fb0e rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb7b99b22 rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc06621c6 rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc42f4e2d rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc908f773 rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc95534b0 rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcc480f93 rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcd0d50e7 rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd1d30314 rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd1dcae52 rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd24e0ada rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd91c794f rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xda3b83fd rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe090c5d6 rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3f57b04 rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe74c9323 rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xea0bec09 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf2b1a85c rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf548bc8a rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf89bda01 rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf8e821cd rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xffcf57e1 rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0b362797 rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x17ee127b rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x231fcaa3 rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2b20c13a rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x3dceaee4 rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x5f2cee43 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x5fab97f7 rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7bd88576 rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x82ae842c rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x82f98bd8 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x9ce0961b rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xc7b7fc18 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xd74480f5 rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xda20f5a7 rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf5ff3142 rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf630d9a9 rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xffd0cc11 rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x2ca1f0f6 rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x4c55f853 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x76340747 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xaba764d6 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xe29934d8 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x3c30baad fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xb3f2e2dc fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x58c9716e microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0x5b7adfde microread_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x2439871b nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x962db25e nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xe5c5946f nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x19e0aff7 pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x0c129ce9 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xbfc8894b pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x3968a6eb s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xc112de73 s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xdbb0b28e s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xedb12f10 s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf2ab60da s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf92ea71b s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x067239a4 ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x0ef14521 ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x30b570e8 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x312da399 ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x634f5b77 ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x73af4049 st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7d291115 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x934a2103 ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xf3bcbfc7 st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xfd6b62dc st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x0fc1db35 st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x3023ca09 st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x380b26ac st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4d100315 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x53b5dd53 st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x56ee4408 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7115513c st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7f90040a st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x8fcf5975 st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x95aa2de2 st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x9b970342 st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa2ec46c7 st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa4fd710b st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa687e200 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xb884bd7c st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xef9819ed st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf14a655a st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xfecd1ef9 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/ntb/ntb 0x05f08185 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x0d607a0f ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x269f77a9 ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x2de60983 ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x3f55bc27 __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0x49d33d4f ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x8429bff9 ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x95b4129e ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x9b8efd9e ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0x9e47e214 ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0xa0a4fa59 ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0xad77d54d ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xc04a6b85 ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xc3f72219 ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0xd54b09f1 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0xdabf1b02 ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0xdf82d6a2 ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0xec2dfd84 ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0xf3dbe321 ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0xfd928366 ntb_msi_peer_addr +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x91e174ec nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0xc5ded204 nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/parport/parport 0x1ccb7948 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x216bbd38 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x21cf1165 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x26e77a77 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x29720989 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2cdce0c8 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x32d7d4aa parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x3fe1ccf8 parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x423a2c2b parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x48d07adb parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e232cdf __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x7079b15b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x81893b72 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x919d3b0f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x9b0a1d41 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x9b75efc4 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xa763e017 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xa84ceeda parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xb24793f4 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0xb309381c parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xb56c5b0e parport_write +EXPORT_SYMBOL drivers/parport/parport 0xbd0f3f9f parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xc642cc59 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xc6946741 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xe447006f parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xe70688b6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xea4e2345 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xecf3e4c4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xf4e84f00 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfb7d3cfe parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfcccb913 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x2f31c114 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x691561ba parport_pc_unregister_port +EXPORT_SYMBOL drivers/pci/controller/pcie-iproc 0x14cf462c iproc_pcie_remove +EXPORT_SYMBOL drivers/pci/controller/pcie-iproc 0xb1a27584 iproc_pcie_setup +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0ed3c4ed pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x12867063 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2ef6825f pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x321dc611 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3d404f77 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4d1e456c pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5196b609 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x651d99ef pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x85f7ce61 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x95958847 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf942709b pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xcf080118 pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x016824ff cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x49585f21 cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xdb044377 cros_ec_unregister +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xdfd2074d cros_ec_resume +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xf25aacf5 cros_ec_irq_thread +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0xf94f3e1f rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x3330a1c8 qcom_smd_unregister_edge +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0xc33611f9 qcom_smd_register_edge +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x461fd813 rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0xf2b4d1c4 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x17011daa rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1dc26fc1 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x21a8ba4e rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2916e2ca rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x31f9e71b rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x38e8e08a rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x55a58b2f rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x65300478 rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x655496b4 rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x709f7e8c rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7f5e457f unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x972f9100 rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa0d54980 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa4ae4cfd rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc791c25d rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xcc7065d2 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xd7c8c3d2 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xf00a25a0 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xf1ae1026 rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0xd50a1bd0 rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x462ab10a ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x2b77ac31 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x8b05c986 scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x93a0e7a8 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xc406273b scsi_esp_register +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1b24264a fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x617dd463 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x62617dd9 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6f668dd5 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9f8261a2 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb56e63e0 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb5951393 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb8a0d458 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbc1b6338 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd72c8bcd fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf5675b84 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00739459 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0a8c47eb fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cd57552 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d32c352 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16a9988b fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ba1db06 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f7cffb4 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x21933692 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x268fefbe fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2d764990 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32e88bd1 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e2ee62 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d16eb79 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4251fc2d fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50faf171 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b925b58 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60577dff fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x686c3651 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a023184 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a33d1fb libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ede8e6a fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71c152dd fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71ed7f27 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75db56f3 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7833f505 fc_frame_alloc_fill +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 0x85736df8 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x890bb09d fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c6f3b09 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9300f16a fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x932b3867 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9559ca2b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96cb8331 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d00e18a fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d50ed7e fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa12b10b0 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1bcd198 fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2dbfcd7 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa2fa5e05 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa40f2c91 fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa55001f5 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xacf22271 fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae516c95 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb26764a3 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5430e97 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb60fe4bc fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb833914f fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb99624e5 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc20d2214 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3071623 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc47afedf fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd36f5bd3 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd77c4b0e fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdb962cf3 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe09057bd fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2746a12 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5bfbecd fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5cf06b5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef345c66 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1eeea09 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf54f2818 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf8b7c6c3 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x142ecc35 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x2354c6e6 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x3e6a2feb sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa9ee7674 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa21fafb9 mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01 mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xe0122ba3 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1b259459 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1f0805aa qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x29f61007 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x536942a9 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x64cfcab6 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xaf98ca5e qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb12d9abd qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xbc20cb4e qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe81e7fd1 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xece2870a qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf0a6225c qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf2777c4d qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/raid_class 0x7d6c8771 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x86ba978c raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xd515a9cc raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0300f53a fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x25af960c fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2bde8915 fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x34d86f5b fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x41a3a865 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x47dada75 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x48fec05e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x593e6308 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f0f2e02 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7b18f69e fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7dc0a552 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9118d6fd fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb8888a64 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc15d377d fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc80411cd fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd2b5aa93 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfccda697 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x095cb941 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0db3f4a6 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13201706 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1926c77a sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39ca62cb sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x450f1e04 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x56a630fa sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5aeb1725 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5c061197 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x694189ca sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d249d13 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x710c9f2e sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x779fda87 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e711a1f scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x906b98ec sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9abe9391 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa54016da sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xabcadf04 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xabcc6eff sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb08993a9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb1af65db sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9b1c7e0 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb9584c1 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd39ead4c sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd4b97ccd sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe21c6a76 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe3a8ee92 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe82b6e1e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe86b3a61 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x34f9faa0 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x43202450 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5ef13e0b spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9747140b spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x9d8e937f spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x4813d4f5 srp_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x6e34b760 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x9b4d4d2e srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xc7d408ce srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xecaed2b3 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x030f2d6c dpaa2_io_service_enqueue_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x21e76a68 dpaa2_io_get_adaptive_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x2bc276ca dpaa2_io_update_net_dim +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x35210a1c dpaa2_io_set_irq_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x3d01f417 dpaa2_io_service_pull_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xb629a241 dpaa2_io_get_irq_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xc4ccef03 dpaa2_io_get_cpu +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xdb008703 dpaa2_io_service_enqueue_multiple_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xe0f67b93 dpaa2_io_service_enqueue_multiple_desc_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xfa0aedff dpaa2_io_set_adaptive_coalescing +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x0f4b7285 cmdq_pkt_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1c91b6c6 cmdq_pkt_poll +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1eb577f5 cmdq_pkt_write_s_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x27f7a778 cmdq_pkt_set_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x3bc70297 cmdq_pkt_write_s_mask_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x3d3c435f cmdq_pkt_jump +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x461737cb cmdq_pkt_read_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x4dd68ea8 cmdq_pkt_wfe +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x62622035 cmdq_pkt_write_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x6482132a cmdq_pkt_poll_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x74b42408 cmdq_pkt_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7b1135bc cmdq_mbox_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x81232e95 cmdq_pkt_assign +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x91e6f300 cmdq_pkt_clear_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x95bc91b9 cmdq_dev_get_client_reg +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xa644a9a6 cmdq_pkt_write +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xab2ec244 cmdq_pkt_flush_async +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xedaf2077 cmdq_mbox_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xf79754da cmdq_pkt_write_s_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xf80937c2 cmdq_pkt_finalize +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xfb55916e cmdq_pkt_write_mask +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x90d9ca3e of_get_ocmem +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0xc53d76b1 ocmem_allocate +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0xf9b05967 ocmem_free +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x1c76ea4d pdr_restart_pd +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x432975e6 pdr_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x47b2ed49 pdr_handle_alloc +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0xf618ca5b pdr_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x0295e2ad geni_se_get_qup_hw_version +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x02da7b8b geni_icc_disable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x0471b88d geni_se_resources_off +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x15f6b953 geni_icc_set_bw +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x22858023 geni_icc_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x4735f0db geni_icc_enable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x5947c108 geni_se_config_packing +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x5ef8b4d5 geni_se_resources_on +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x6303a259 geni_se_tx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x96fb72a3 geni_se_rx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xa969fffc geni_se_clk_freq_match +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xbc34a7d3 geni_se_clk_tbl_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xcdebd6a7 geni_se_rx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xcf5281df geni_se_select_mode +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xd651c88e geni_se_init +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xdae015ab geni_se_tx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xe4a7340c geni_icc_set_tag +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x1b35f92f qmp_get +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x2333aed6 qmp_put +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x9e2aa1df qmp_send +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x073f60c9 qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0ef12cc9 qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x12acdd12 qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x29ca8d5b qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x366f3796 qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x398c648d qmi_handle_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x68772745 qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x88475874 qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xa59b0857 qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xbea250e4 qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xe603d8bb qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xe870c8c2 qmi_txn_wait +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 0x2a9dd0f8 qcom_wcnss_open_channel +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x16d1706b sdw_prepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x184504d7 sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1deee061 sdw_find_row_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2204d095 sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2a6a1c85 sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x372cb612 sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x42ace726 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4bbec532 sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4fb35338 sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x5fd14c06 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6a75c412 sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x78440954 sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7ed2c277 sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x898f80b3 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e122d79 sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa1939ca4 sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa20fe415 sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa6923ea2 sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb1caea61 sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb4a27151 sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xba54b904 sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbbec2c2e sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbd01f98c sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc7830fd3 sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd9e333a2 sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda5bce09 sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xdc95ad2f sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xdcfe501d sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xe0a8547c sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xec9f7b8e sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xed50d508 sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf5187bab sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf53ba0b8 sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x05cc9766 sdw_cdns_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x1025ea40 cdns_xfer_msg +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x211e85f5 sdw_cdns_pdi_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x21c19406 sdw_cdns_alloc_pdi +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x2daabaa3 sdw_cdns_enable_interrupt +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x34712074 sdw_cdns_irq +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x496691a5 sdw_cdns_config_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x5c2a6b95 sdw_cdns_check_self_clearing_bits +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x730945c0 cdns_reset_page_addr +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x771df7c9 sdw_cdns_probe +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x82e1e593 sdw_cdns_clock_restart +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x8a106e3a cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9b0c02f8 cdns_xfer_msg_defer +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb1091ce9 cdns_bus_conf +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb2ae8c00 sdw_cdns_exit_reset +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xbb56a215 sdw_cdns_is_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xfab28a5b sdw_cdns_init +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x8f4f2020 sdw_compute_params +EXPORT_SYMBOL drivers/ssb/ssb 0x0597cf15 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x18abece4 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1ab3212f ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x1c214918 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x23efb7d1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x3b9225d9 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x4b64b8f1 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7cbfe564 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x8fe70c23 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x948a88d2 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x9de5f9e7 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xa6218d8c ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa8098e85 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xa8dcbcb7 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc19c9534 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xc2d29eaa ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xce1a1314 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xd2944423 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xf49f5fcb ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xfc996bbd __ssb_driver_register +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x24a9669f fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x253c8905 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x35cf5d31 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3d3c7790 fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3ff93f9d fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5517f064 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x675a60ba fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x701b85ab fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x70576071 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7507ef1c fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7ff1cb5c fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x82b31020 fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8f57d644 fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8f797760 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x9b4cec05 fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa185d049 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa54f32ec fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xace5cab3 fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xbcf387ed fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xbe103b23 fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xbe80dc81 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xc18446a9 fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xda5cd64c fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xde19ef02 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xe9f39f5f fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x53d758ad gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x580605e5 gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x9fb2599f gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xc69336fe adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x90fc365d ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0x5a39be66 sp8870_attach +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x737eaa8d nvec_write_sync +EXPORT_SYMBOL drivers/staging/nvec/nvec 0xee12b684 nvec_write_async +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x032e5906 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0330c21c rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x079e29c7 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0d4efaac rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1435e482 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ac84cb5 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x226952ed dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x24cc5503 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x25d878a0 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x28374a3b rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b1caa0c rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2bd44e27 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2c56260a rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x30bec246 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x38b48178 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x38d2638f rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3c3733c8 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3c8e83ab HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3ffdeb4f rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4045fd9b rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x48a7ffde rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x581ed727 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x58adbc6c rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6466eaf1 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x660a92c9 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x67782507 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x69b3503c rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6ced05b5 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x78263f13 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x83b4cdda rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8505d43e free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8dc0cbd5 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8dfd0659 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x93370699 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x93cda9ef rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xaec366db rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb0c1cc2f rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbbf6d4bc rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbd0bb683 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbee2ea33 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc3ea485c rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc88f26f7 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd1cddf24 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd256c22a rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe0182adc rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xea3500a2 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf6846a49 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfa802137 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xff921b41 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d12ea5b ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x182f9611 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19add70c ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x211bb9ea ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21532b3e ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x25864d07 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c2e4346 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35144ba2 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36905eb5 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39a717ed ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40238201 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42297f3b dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x48bf6832 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d2ac56e ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4fc9b79e ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5e606d32 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f4b256b ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x648af4bb ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65d334c5 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6691fe95 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67429564 dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f462d08 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71798113 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71dcc68d ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7258d39a ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x761c4d7f ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78adf745 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d6f9ac2 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d954e8b ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80b219d0 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87bbb692 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93e1848e ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x93eb7907 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x955b4dae ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97ab9d34 dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4f36a4f ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa1b0122 to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab0313e1 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb40dab29 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbdfdbed9 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf1841eb ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3ab41a0 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xce893b86 is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd3c2f483 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd421e1ae ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd600bb5f ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9c2ebbd ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec252f07 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee53ae30 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3d959e4 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8308753 rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8af798e ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfac51389 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x02f8c431 vchiq_queue_kernel_message +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x1c60d406 vchiq_get_service_userdata +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x35853b04 vchiq_release_message +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x582ed8ca vchiq_bulk_receive +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x5c054645 vchiq_msg_hold +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x607e5baf vchiq_open_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x70fbdac9 vchiq_msg_queue_push +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x7c419d59 vchiq_shutdown +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x8ff6c2b1 vchiq_get_peer_version +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x92b2feb4 vchiq_bulk_transmit +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x9d6478fe vchiq_use_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xb05b02ae vchiq_release_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xbabe8517 vchiq_connect +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xbca0c1c0 vchiq_add_connected_callback +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xca4ddc26 vchiq_initialise +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xe95e0941 vchiq_close_service +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x03131409 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x16ba0ae2 iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2178012b iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x244371db iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x24eab5ce iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x288aa0db iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x30a36dde iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x31124759 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x313bcf45 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x37ac912e iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x37bde427 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x38340e48 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x43dbf42d iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x45b38806 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x49a7b3f6 iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x511931cd iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60e7685f iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x61adfdab iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x63c29ec4 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x647ecbb7 iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x95e1328c iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9974422f iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa035e500 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7b19562 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa8679a31 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8b14406 iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbb0821da iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbb40bef6 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc8547549 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcb9f9596 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcbfe08e9 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcd8bd3e4 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd7517f12 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xda68da19 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xddebedbb __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe69dc967 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xedacf4a9 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xef03e244 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf04bca5a iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf282897a iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf34332f0 iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf6e77d4e iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfc5682ec iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfcbdd5a7 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfd7c3ec9 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xff6f92ee iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/target_core_mod 0x0070f103 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x02f0402d transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x033bc1ad __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x04d2091f transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x04e01067 target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x05fda051 transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x10c13777 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x1634dbb2 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x168b123b transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1753fc72 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x28241814 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0x28248ee5 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ed5b8a1 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x36fd8b07 core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3cc66cb1 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3f5310fb transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x4163bd28 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x42fe37c3 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x4565963c spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x4580c2fb target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x45be862c target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x45fa364b target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a7c5314 target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b96f09f target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f5505e9 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x4fc45d48 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x5016554d transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x51012e8b target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x51228971 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x52674adc core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x5729ba8a target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a34d660 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x5cbc8075 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a5190bf target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x6da35c93 target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e59bc43 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f424e72 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7d1f74b7 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f5e3992 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x805dd129 transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x81a883ad target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x8952392b target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x89f805cc transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x91aa057b transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x91e252b6 target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x982aeb8a transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9aa2e123 passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xa003a742 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8f4bdab target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0xa98c82dd sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa5da6c1 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xaaa82433 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0xac69da2c transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xada04ba5 target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1c1f54e passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd109785 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xbe79dd87 sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xc1a3bbe7 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc21e4f78 target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xc438d611 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xc44bbb84 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0xca696d1d transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd04a5ee1 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xd075d1b7 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xd16c7897 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0xd20636fc sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb046e26 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe466ba78 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xebbac8a7 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xed26635e core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf18369fc target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf2f34238 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd12f404 target_execute_cmd +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x18f005a3 ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x42547cd6 ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x94d7b348 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xa04acca6 ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xc3bfb0c6 ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xc88233a1 ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xd07953a5 ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xd4de8d4a ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x5a5f8671 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0xc20fda78 tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x45ccb0f9 ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x73781287 ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x2a5190e7 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0xe72ca9d6 usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x19ff5742 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x19776f6b usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1c6c2ac0 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2dfbe62c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x46839ab8 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6e4d1ae8 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x912dfaa0 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x944a05a3 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb2bd4e7f usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb60cf98e usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc2223659 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdce4e892 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x99767ba6 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xffcef6e7 usb_serial_suspend +EXPORT_SYMBOL drivers/vdpa/vdpa 0x910a7584 vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x12d700d1 mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x132a4ae1 mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x40589a41 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x6be9e43a mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x75a6447b mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x838d9e7c mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x8e7c8727 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xdca920df mtype_get_type_group_id +EXPORT_SYMBOL drivers/vfio/vfio 0x19567d06 vfio_info_cap_shift +EXPORT_SYMBOL drivers/vfio/vfio 0x248dfeca vfio_unpin_pages +EXPORT_SYMBOL drivers/vfio/vfio 0x28407375 vfio_unregister_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0x6c28be5a vfio_info_add_capability +EXPORT_SYMBOL drivers/vfio/vfio 0x97a39839 vfio_register_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0x9bc94c4a vfio_dma_rw +EXPORT_SYMBOL drivers/vfio/vfio 0xadc044b7 vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL drivers/vfio/vfio 0xbb7f5303 vfio_pin_pages +EXPORT_SYMBOL drivers/vhost/vhost 0x0767e5dd vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vhost 0xd5f02429 vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vringh 0x0c46f5fb vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x18f3ddc2 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x19c24590 vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1fe50c1a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2890c460 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2d2babc9 vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3684d8af vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3ee1955e vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4504adc9 vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x5bd469c0 vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5f586ca2 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x61e3831b vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x660779c8 vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x6a693a25 vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x90e93e3c vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x9b30452e vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa7ce8bd6 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa8efaeb9 vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc0bb1581 vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc87491c8 vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xd465f463 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xe4c21196 vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xeb2ec139 vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xf1e32cc0 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf8605294 vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf9d0dd07 vringh_abandon_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3520646c lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x41a40070 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7a8036c1 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xbecebe1e devm_lcd_device_unregister +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 0x48f94dfb svga_get_caps +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x6caabc0b 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 0xb5938715 svga_tilecopy +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 0xe7c180b2 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xf0378844 svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xf9b35efc svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xfd50ead0 svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x01438981 sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0xaeca7bc2 sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0xa79e4bd4 sys_imageblit +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x1c10cdc4 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 0xad159b3b mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x376a2be3 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0xb3b6c6d4 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0xcf6d1d09 g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x34c2fbd2 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x7f3d278f DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xab5651cf matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xb5cae1c2 DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0xcabd968a matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x41655591 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x3adecf46 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x5ad5b414 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x5c14f91b matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x6a79f779 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x33ddf61e matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x6c827530 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x288ddb6d matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x4b10b44b matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x79d4efee matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x81661133 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xd29737dc matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0xfe963115 sis_free +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x837bd984 is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xcf570055 virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xd1b4b9bf virtio_dma_buf_export +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xe6c9f621 virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x472c3180 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xe6bbc634 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x551c4311 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x630b102a w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x0614f4d3 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x6cbaf323 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xbe265225 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xeb1f6b51 w1_add_master_device +EXPORT_SYMBOL fs/fscache/fscache 0x09af9f9b fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0x09d877df fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x0f0ff3ff __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x0f73c52d __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x1a25cfa0 __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x208ff69f fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x31576d33 fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x38bf92e1 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x39674879 __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3ac811cb __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x3d8a8aa3 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x3dbc807c fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3e88354d fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x3f7abcb4 __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x41a41b0c __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4fb5cf07 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x5005adc7 fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x5059611e __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x557a775f fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x572791c1 fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x59cdb233 fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5edf8405 __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x5f58eeef fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6c35fb2b fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x6c5e41e7 __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x70445ba8 fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x8c2d6da7 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x969b9be6 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x97a85591 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0xa89e3b5e fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq +EXPORT_SYMBOL fs/fscache/fscache 0xbf1b28fb __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xdfdeb1e9 fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0xe77146d8 fscache_put_cookie +EXPORT_SYMBOL fs/netfs/netfs 0x0ae9b5eb netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0x25dd7555 netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x42fa7c10 netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x77ca5cb8 netfs_subreq_terminated +EXPORT_SYMBOL fs/netfs/netfs 0xd9b874a5 netfs_stats_show +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x02569634 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x1a805cab qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x2d207bfc qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x3d2e7e0d qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x4fc9069a qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xbb53a69a qtree_release_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/crypto/libarc4 0x2bb32ad1 arc4_setkey +EXPORT_SYMBOL lib/crypto/libarc4 0xcd47fcc4 arc4_crypt +EXPORT_SYMBOL lib/crypto/libchacha 0xcec122d7 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x147c3f2e chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x37b34b92 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x521c7102 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x5b19e187 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xc20134e7 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xce15a526 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0xbcb90cb3 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0xd45b9cf4 poly1305_core_setkey +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 0x7ea60afd lc_seq_dump_details +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 0xdc59545c 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 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 net/6lowpan/6lowpan 0x18addff6 lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x1fa91598 lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x9401ca60 lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0xa9032f6f lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0xbd583c04 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0xbfabafc0 lowpan_register_netdev +EXPORT_SYMBOL net/802/p8022 0x42699a9f register_8022_client +EXPORT_SYMBOL net/802/p8022 0xa7abd1d3 unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x72ae877d register_snap_client +EXPORT_SYMBOL net/802/psnap 0x7c3fd1ec unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x01e9f51d p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x064a8f0c p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x0ae3febf p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x140f650d p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x17e2298c p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1d026e21 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x25692ef0 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x25bc650b v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41ce9823 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x464b08d4 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x4778c1f7 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x4a34e5f7 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x4a4719ae p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x51e1d674 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x68c65307 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x6d8e66d7 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x72b75929 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x764d7c6f p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x80e4bde1 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x85110660 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x95bd8f96 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x984c5e73 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x9f6a6d5b p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xa1855c4c p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xa187051d p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xa33a7b75 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xa5d4c9a8 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xa6b563ff p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xaa333cd4 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb6662f86 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xb78d270b p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xb79f25fd p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xc12ec24e p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xcbd1b95c p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xcdb48592 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd24323e5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xd79919d2 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xd894cf9a p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xdb5364bc p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xde7d6688 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe5aa87b6 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xe91975b7 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0xef57cb89 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xf407437f p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xf920b762 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xfb9c39f2 p9_show_client_options +EXPORT_SYMBOL net/appletalk/appletalk 0x3a064d7c atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x4421ce00 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x4dabed1e aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xa26fb574 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x0eee5dd9 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x13aa8793 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x18256e9e atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x192bb6d6 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x1a6a570e atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x219436e7 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x30fd86e7 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x3d689c9d atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x44c6e633 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x6162b488 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x75a5e9e5 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x90846d8f register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x99ead1f8 atm_charge +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb5a47f4b vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x13016538 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 0x26fea328 ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5af8732b ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x7c00b610 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x9ca648f5 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc060a8a7 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc98fba1e ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe22599c2 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xee02e420 ax25_findbyuid +EXPORT_SYMBOL net/bluetooth/bluetooth 0x00e3baac __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0802784f hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x08ad07eb hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fb94f56 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0fe12d9c bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1729c7fa hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26a69115 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x285eb2c4 l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2fc69e7c hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32a5ee21 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x32bdd104 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b756000 __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4167c31c l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x43b17ad0 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x57eb98ac bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5eba0117 __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60f92c2c bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x65e40dc4 hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x675fca73 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x719b6cd9 hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a94d141 bt_accept_unlink +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 0x7be6222b hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7e21fcca bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8879ba8b bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x889490bb bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e55eae7 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x938b0bca __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94d5db74 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x95afd63d bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9fe49e08 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1efa366 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa34a2131 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3dcd026 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xab970639 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb159c029 hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb83ad25b l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb93b90f7 hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc3d368e2 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc8fceabc l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7613212 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddacccf6 bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf676d51 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe3ff01b0 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe784aa6e hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea5e2a65 hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf173dbc1 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf206fce2 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf8b7e2d5 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbca2d71 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfdae0eab hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe1676f5 hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffba61a8 bt_sock_wait_state +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x05688b26 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0845de33 ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x58e3e52a ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x628796ed ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x73e365de ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x80afcecd ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x2d9e1381 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x375971cb caif_connect_client +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 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb31b2161 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xdad63a0c caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xf7a2cf8f caif_enroll_dev +EXPORT_SYMBOL net/can/can 0x0ec4b371 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x1d1ed5aa can_send +EXPORT_SYMBOL net/can/can 0x33ed520f can_sock_destruct +EXPORT_SYMBOL net/can/can 0x4859edd9 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x8ad237bb can_rx_register +EXPORT_SYMBOL net/can/can 0xa4ecace5 can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x04bc3f76 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x04cad6f0 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x069d0514 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x08a1c0a5 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x0983822c ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0x0bda67f2 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x0ed43dc4 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x12195fa5 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x1378aba3 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x1439dd0b ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x1585d969 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x15a03c4e ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x165b1948 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x17c17611 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x18ee16d7 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x1b460c02 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x1de0bcd4 osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x20b55de3 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x25a35784 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x26582fdc ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x278ee3d8 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x2a4e148a ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x2a983d26 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x2e0956cf ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x2ea8baae osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x345dd182 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0x36d61cd9 ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x39c5acc1 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x40ec0258 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x417a9131 ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x43c02830 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4cca6a49 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x540fdf71 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x55c9813f ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5adf376d ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5b2324d9 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x5f5aff96 ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x5f9c246a ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x61a67df9 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x69dc78e6 osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6a90999a ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x6add80c9 osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x6bfb53fa ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x6d226f47 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x761bd309 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x7f5c03e5 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x8176305e ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x8320901a ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x845e036a ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0x8674aa9d ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x87b2ae30 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x88f10a1b osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x8a55d758 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x8af1e287 ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x8dd84f9c ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x8ec84646 ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x90965b9c ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0x92b7b4ce ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x96f41e4e ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options +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 0xa1827ef1 ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0xa4fa13db ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0xa698f998 ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0xa902c070 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xab4ee12b ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xae887f88 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xaea842c2 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xaff54ba6 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xb082bbe9 ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0xb2b9c30b ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xb8db3e1b ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0xb9e96f1f ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xbd2f79ae ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xbef2790f ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xc07ebfb9 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0xc315d97b ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xc366bfa1 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xc45e6f5a ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0xc53a6522 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xc59c5f6d ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0xc67ba612 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0xc6ddf5d3 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0xc7a79e9c osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xc80b5ccc ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xc85c7b92 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0xd5201404 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xd5555310 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xd67a5e42 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd74f5397 ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0xd8d8fd33 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0xd9479e57 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd97eb774 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xdaf2c81e ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xdcf7954f ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xdf6ef4a1 ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0xdf73f426 ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xdfc091f9 ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0xe16762bb ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe203bc95 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xe34a59f2 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0xe76e7226 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0xee120c03 ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0xeeaed5e2 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xeef6cfa3 ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0xef2804af ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xefce3c3b ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xefce991c ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0xf02e388a ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xf03fe862 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0xf1683aea ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xf1fc3ef4 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0xf45462ce osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xf47063eb ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xf573a838 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xf5bc7d5b ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xf5ea531d osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xf8a07fc3 osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0xfa2897b7 ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0xff441e0a ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xffa7d3bf ceph_check_fsid +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x3c0a278b dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x9a107226 dccp_req_err +EXPORT_SYMBOL net/hsr/hsr 0x41d83933 hsr_get_version +EXPORT_SYMBOL net/hsr/hsr 0x82bb0365 is_hsr_master +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8271efc4 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xa8049c08 wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbdbb17d5 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xeb125381 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xec675fa8 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xf5e0149a wpan_phy_free +EXPORT_SYMBOL net/ipv4/fou 0x1757d1a4 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x514f2a24 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xcc6559d7 __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0xf13914b3 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0xef30399f gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x421c9079 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x8811475c ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xd626760f ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xd7773435 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x22571f7a arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x3750e2f7 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x99254076 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xfde1864b arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2466bcb0 ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x58a712d5 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9db694df ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xde88e60a ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x00ddcdfe xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x142f7ec7 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x1606cf01 udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x2085ca29 ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x5f05e956 ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x6eed7f8b ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7494e497 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xc66ec724 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xcd71dfab ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xdd52aba5 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xe547f812 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf61853a4 ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1a352b46 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6aab4a14 ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb589c776 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xdc069b21 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/tunnel6 0x3aa9130a xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x7fbe9fa8 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x1a53744b xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc371e78c xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/lapb/lapb 0x2d317e8a lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x466c0c6f lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x675630e6 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7fbb7878 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x8682e613 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x96204dde lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xc5068877 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe91ab652 lapb_register +EXPORT_SYMBOL net/llc/llc 0x0b429110 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x147c2b7d llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x5216479b llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x7b2dbe1d llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x90812d97 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xa2c5652f llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xc37862b2 llc_sap_close +EXPORT_SYMBOL net/mac80211/mac80211 0x0551d008 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x083e9dc4 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x09f5760d ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1294ea78 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x17e106aa ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1ae558e5 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x1b7e4180 ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x1c491975 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x26c69c77 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x2746d2d5 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x2a2f4bf7 ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x2ab9f75c ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x2f0ce8fb ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0x2f68e1f2 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x2ff8efce ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x3d796aa8 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x401d424e ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x409020f6 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x42623d04 ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x4575d4b7 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0x483892d4 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x4b404492 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x4ece2b22 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x4ed46c1a ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x511cceb4 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x51c02cc3 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x53ba25ee ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x53c91aa8 ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x56cde899 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5783cd38 ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x578694ff ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x584ab9fc ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x59ff0eec ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5c49011e ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x5dbd6451 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x5fe01120 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x632b0048 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x640e63c6 ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x66c41528 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x696efc4f ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x6e09d130 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x71071557 ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x72a223bc ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x7525cb3a ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x7708d833 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x7d49e006 ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x7d5d8117 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x809901ee ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x83c146fa ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x84793dd1 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x8506dda0 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x87abb93b ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x8987ed65 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x8d122ce8 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x90b52169 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x9132a588 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x91439eb1 ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x92cfcd42 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x93326d93 ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x93620f4a ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x991a0ca0 ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x99211ebe ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x9a48f0b6 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x9cbfd97a ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xa1036ce0 ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xa268d4bc ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xa6a1bd95 ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0xa8738967 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xada18bfe ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0xb0ab002f ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb480924c ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0xb4f3a4c8 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0xb6b60d0d ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb6cd8ad8 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0xbe87d80c ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xbe948a3a __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc0e8526b __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc4dbab3b ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0xcaa4a773 ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0xcb64b0eb ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xccb75b87 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xceab17c8 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0xd30de14f ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xdac82156 ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0xdb35f3a2 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xdca31d8a ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xdfb73362 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe1b81133 ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0xe3909ca9 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe3b40609 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xe5752af3 ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0xe780e531 ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0xe9051431 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xea00213f ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0xecafc308 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xef9e05c8 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xf102ec2d ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xf31d4cfb ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xf4cc96b3 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xf512d133 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf6425655 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xfe838029 ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac802154/mac802154 0x0730b013 ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x105f5cec ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x239d3055 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x3feb5a9a ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0x5b3c6f74 ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0x5cd80cd5 ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x6f5764f3 ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x797c4c0b ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0xe725eca3 ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xf3cd0d87 ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xfa005753 ieee802154_free_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0b2aa8af ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0ff00c63 ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1365ed38 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1b754e62 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1dd7f9f0 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x20edc9f3 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x76e232e6 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7bfb5d52 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x854513f4 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x865e8cdd register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8c45ae73 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c713e4a ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9d06e92f ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaec02b5e ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbd629ce9 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6ceda864 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x10721399 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x6fdcc83b nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x8bef365d nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xe32cc86b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nft_fib 0xb3c36947 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x1305beff xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x463bd4cd xt_find_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 0x50c90bd1 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x584c5107 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5fc32988 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7754c7ea xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x7ed638a7 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x8369f338 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x977fd4bf xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xa25fc115 xt_compat_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xa5ac59da xt_register_target +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 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xe3e43810 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset +EXPORT_SYMBOL net/nfc/hci/hci 0x09a2a08e nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x0cbdf253 nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x179a1b8c nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0x1a70b9ed nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x2f685788 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0x32f207b0 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x3c572e1c nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x4f3a4026 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x7ee011eb nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xa8475256 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0xc70327dc nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xc722a918 nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0xcd0a1e62 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xd299f38d nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0xd4b5b34b nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xd736097c nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xd8b46fb6 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0xdd231c55 nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xe111fa56 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xeca3081d nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xfc2fa007 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xffee0b40 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x08eae5a3 nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x11540621 nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x25af7123 nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x27f0af4b nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0x39ff8c82 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x3f9ef495 nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x49e5a41f nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x4a025e6a nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x4aafe48d nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x4b9bee9a nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x4d5ec994 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x65f9e0cc nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x6622d9de nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7453c480 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x85a04a2c nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x8be100e6 nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0x9436e179 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0x95a14004 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x9ff8861b nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0xb040f690 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0xb0b5117e nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0xb17f14ef nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xbac22dac nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0xc804539b nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xcd108e57 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0xcdc3ccde nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0xe8cbc120 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0xf782206f nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0xfc8fb3f8 nci_core_reset +EXPORT_SYMBOL net/nfc/nfc 0x06064543 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x0d872137 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x23aa856c nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x37602aa2 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x3fd90e55 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x406434f6 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x41d89cf1 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x45537aaf nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0x57af8232 nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x6c2e58b0 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x7a3c0767 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x858911eb nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x88e0038a __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0x918f69b7 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x9bd682eb nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xa0aadb67 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0xa5ad4a1b nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xc5717667 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xce4cf8c8 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xd3c16004 nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0xdfc9778a nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xe48a1567 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xf57b87b2 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xfd565179 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0xffcadcd5 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc_digital 0xda5a0e53 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xe6d51b17 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xeab731e3 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0xee62b8c8 nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x0e6a54f4 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x16f21116 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x1a780a0b pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x57bc9ad6 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x5cb4e11b pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xa79ae145 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xaf08bcb5 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xfa9cfd01 pn_skb_send +EXPORT_SYMBOL net/rxrpc/rxrpc 0x095559f4 rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x0b3d505c rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1a4aa42c rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3df80a0f rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4818d4bc rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x6abb7863 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x70b3014c rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7656719c rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x8f1ef5ab rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0x8f481b38 rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0xaa0ba4bb rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0xb771ee18 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0xc870ee6f rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0xc99063c8 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0xcd271440 rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xce05e79e rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0xde71cc97 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xe838f75a rxrpc_kernel_abort_call +EXPORT_SYMBOL net/sctp/sctp 0x9eefbbb9 sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x08c5dea6 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x1b1e06e1 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x4af3e9d7 __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x8989d6ae __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x99bf1b00 __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xb3f2d173 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xc7a97742 __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xcd9701fe __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xe7d4f150 __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0xe7dacb8d __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xfb8cae0f __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2247e6c4 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xaa3c4a00 gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc6e860af gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x115e2835 xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0x38310985 xdr_truncate_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc0d5a4df svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x16be3b35 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0x483c04ef tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0xa39d9bd1 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0xed360c72 tipc_dump_start +EXPORT_SYMBOL net/tls/tls 0xcabca58f tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x020719f9 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x03aa755d cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x0ca69605 cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x117aca91 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x123b0b92 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x131651ce cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x183f9c94 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x192409f3 cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x1b5a3a7e cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x1b95cd04 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x1e3615ab cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x1fe86e69 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x210b2fb8 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x2179d507 wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x23e4ee41 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x2429d06b cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0x275269b3 ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x275c97f0 cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x281a0dd5 regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0x28f796f6 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x29e44385 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x2b240c49 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x2d5df580 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x2fe1f3b5 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x31cc5fbd cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x34358adf ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x35170b95 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x41357a34 wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0x423fb628 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x45d34a2e cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x47162c95 cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0x48045dcb cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x487f01e5 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x4bf340ee cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x5096a33e cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0x50b5920b cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x5131b788 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x548ea92a cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x58ff7e3b cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x5a1e69df cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x5ac393ee cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x5bb265f6 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x5cbd81cf cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x5e271024 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x62f04e7b cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x64efdaaa cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x65d75508 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x67daa1f0 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x727ceb09 cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x76c6470e cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x7940d8a5 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7cdd8f8a cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x82346f20 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x83803143 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x8424b0c3 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x85250ab1 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x876c5cc5 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x8fa02936 cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x8fd718d8 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x90d15d59 __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x94871ddd cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x95519430 __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x9656b635 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x97b4ee6d cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x97b516c7 ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x98ec793d wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x99e2159a cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x9d6cba30 cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0x9dbf5375 cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x9fc50c5a cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xa08ebdc9 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0xa15ec814 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xa8416b19 cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0xaa235ed0 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xaddda3ed regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0xae9504aa cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0xb0b82f69 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xb2415615 ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0xb6d529ab cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xc14edd7c cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xc229c335 wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0xc39a8eda wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xc4b4fc27 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0xc63dd5bd ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0xc76559db cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xcbbe85bb cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0xcc1a7c48 cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0xcf69d292 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0xcff054be cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xd038c064 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0xd401092f cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd4010f4b wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0xd56d55f3 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xd6e2247a cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xd97eaad4 cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xda4b35d6 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdd8a5e67 cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0xe2f9c7c9 cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0xe36fc428 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xe79a06d8 __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xee5a74c7 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xefaa9ba6 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xefcd9b51 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xf0152a32 cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xf40bc2f5 ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0xf4eba5e5 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xf554ac73 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf5596d89 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0xf597b6d8 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xf5ccdba2 get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0xfa082fba cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfb3ff56d cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0xfbabd53d cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0xfe5cb25b cfg80211_scan_done +EXPORT_SYMBOL net/wireless/lib80211 0x48fd0583 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x522436d9 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7b413731 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xbe03feca lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xf81aacc5 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xf92fc27e lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xf7f76491 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x1fd8685b 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 0x43688597 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4fb5be47 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x53603faa snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x684b8667 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 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 0xf912f0c8 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 0xb0a25360 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1c543eaf snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x363d4e94 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3cb3290d snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x3d507da0 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x3e30b235 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x4479a546 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x49494f7d snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4c9e3699 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x4d2ae3f3 snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x59515ce6 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0x5d42d78b snd_card_free +EXPORT_SYMBOL sound/core/snd 0x62766952 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x649c30d7 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x69e22798 snd_jack_add_new_kctl +EXPORT_SYMBOL sound/core/snd 0x6f7a952d snd_info_register +EXPORT_SYMBOL sound/core/snd 0x72dafd4f snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x73076315 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0x80d8934c snd_register_device +EXPORT_SYMBOL sound/core/snd 0x8380a1d9 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x84dac087 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8e282e28 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x944aaf7e snd_ctl_notify_one +EXPORT_SYMBOL sound/core/snd 0x94e5731d snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x94f4742b snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x9867e559 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x98a4fad3 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x998c97ab snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9fe3dc24 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xa9450435 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xae20efc3 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0xb19c7f1e snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb412c1af snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xba113458 _snd_ctl_add_follower +EXPORT_SYMBOL sound/core/snd 0xbfd07127 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xc58d5277 snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xc5a6d10b release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xcc6a729f snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0xd050ab2e snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xd79c311a snd_jack_new +EXPORT_SYMBOL sound/core/snd 0xdb12389a snd_device_register +EXPORT_SYMBOL sound/core/snd 0xdd4ad6c1 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0xe09ccfa2 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xe14d2623 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xe2135d5b snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xe2dc6b5e snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0xe3bdfbd9 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xe68398b0 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xe965c1e7 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xe9b939bd snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xf322d8f2 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xf63e1374 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-compress 0xc4909a42 snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-compress 0xd992c489 snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0x5be313ab 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 0x0782afc1 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x11eba48e snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL sound/core/snd-pcm 0x17de95e3 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1e964b7c snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x22a988ed snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0x2a65987c snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x37a06b07 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x3caa71c0 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x425c3c67 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x4346b448 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x499859d5 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x4a8d95ae snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x4c223b60 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x4ee5045e snd_pcm_lib_ioctl +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 0x59df4513 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x5a7b3556 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5fa5cf58 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x5fbc561f snd_pcm_hw_rule_noresample +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 0x69255f54 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6aaeec66 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x6eb9ad03 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x705aa885 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x74f2cdbb snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x75ff341d snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x82ab0255 snd_sgbuf_get_addr +EXPORT_SYMBOL sound/core/snd-pcm 0x82e4ec28 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x85ccf13a snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0x929006d8 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x930c2c9a snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0xa4799b07 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xa4c9d9e3 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaba25c6e snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xac437f7b snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xb3cbd789 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xb502e1b2 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xb645ab07 snd_pcm_set_managed_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xb6496641 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbb14bf14 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xc03507f9 snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0xc1969eb5 snd_sgbuf_get_page +EXPORT_SYMBOL sound/core/snd-pcm 0xc4195c70 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xc6c44899 snd_dma_alloc_dir_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xca2a6500 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xd18b1dfa snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xd3d12bee snd_dma_buffer_mmap +EXPORT_SYMBOL sound/core/snd-pcm 0xd47d9967 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xd96c7ea4 __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0xdff57b4d snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xe1192737 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe6f7932b snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xf1ae35b2 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06dec00f snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0cf16738 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x16c0f8ee snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1782aec3 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x31c16ed4 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x34d5be1e snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x472d285f snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x537035ec snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x581e990e snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x61051121 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7f5be17b snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x807b13ef snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x82e10d77 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84c8e1df snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x92cee80d snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa8856782 __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1428614 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcd5ebc67 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf59d2153 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfb1124f8 __snd_rawmidi_transmit_peek +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 0x9c22e1cf snd_seq_device_new +EXPORT_SYMBOL sound/core/snd-timer 0x0084b731 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x098f10dd snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x1ecb4172 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2a6455da snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x2fa877d2 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x312b9625 snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0x628fec61 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x702a3bb8 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x7be239e8 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x7f8ac314 snd_timer_instance_new +EXPORT_SYMBOL sound/core/snd-timer 0x807a5885 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xaef354e6 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xb09f371c snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xb322ad2c snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc8118881 snd_timer_close +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xa3e7781f 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 0x490e2d20 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4f3db228 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6c4a6467 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x79e23a7d snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7a9ca1d2 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcb263610 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdfd1ebd2 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe7ba1b78 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe9f24cdf snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x226138b0 snd_vx_threaded_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2a28984d snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x416f422a snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6169168e snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x70e40b6a snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x74a2e78d snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x86f476f5 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8a690974 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xeb2bb493 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfefe7bc6 snd_vx_suspend +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x03dd7954 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x057df5d8 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1f01181b cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x21d255f6 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x249b37c4 amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2cc10fcd cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x48fe0442 avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x55cd8ca3 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x565f7c11 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x61baf440 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x62824ce8 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x67f61147 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x69a53030 avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x69bc388e fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7315a531 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7d4f293e amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x92508c10 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x93bc3f14 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xaa5a4970 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb07eaaf3 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb0dfc373 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb405167b amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc65f0971 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcc06fd05 amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcdcd0140 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe6d42df7 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xea62aaad cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xedcb6b48 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf8b8ef65 snd_fw_transaction +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x0c549b33 intel_nhlt_get_endpoint_blob +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x41a05c36 intel_nhlt_has_endpoint_type +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x66fd6169 intel_nhlt_ssp_endpoint_mask +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x779b6e91 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0xc88d3c01 snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3afa7e7b snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4b9d6ee7 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4bb40e95 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5a2618f2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc5295693 snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc9b606dc snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd3a19e87 snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf12a8e5e snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x10d3b6f8 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x72815f1e snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xeb4b7aca snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xee5cdf15 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xc0651a16 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xc191000f snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0bbe10e8 snd_cs8427_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x31e8b620 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x76fa22ba snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x79c91244 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8cd3728f snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9a40065c snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0299806b snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x251cceb6 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4daee2ea snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc0f65b94 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdfe3468e snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf62ef137 snd_i2c_probeaddr +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0227f1fa snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12451d0e snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x30524a2a snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5037d568 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5a679db2 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x66984f94 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x71ebbe2f snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7abf1133 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x89b19301 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9b64fd96 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa2c00018 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xabcb2d3d snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb300376f snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc203ce5e snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdddc0a6d snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xea3faf7b snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf102069b snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2ad9c24d snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e846e12 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x36461004 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5277b5b6 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x95097968 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa94fed43 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc2800151 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd64cf155 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe8c489d9 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1d551e98 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x29ffd103 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9cf140dd snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x12c8537b oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1d6fc50c oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1dc80806 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2bd26f25 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5c7dea16 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x68d24d9d oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x77afa692 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x89e48509 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x96098d21 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9f1a3392 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa969c3e4 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xae4a5093 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb57a1498 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb61cf7f0 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbca36674 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd596fb5e oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd737a178 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe5e2ebb1 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf4a2209a oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfa100152 oxygen_write32 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1cd57fe7 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6e609f90 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xadd3d84d snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbfcf00f9 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe0249025 snd_trident_free_voice +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0xf2cc2cce acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x0c22a61f snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x3ee0762f snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0xf2db3a1e adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0x88618f6d wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x58bbf6f3 pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0xc414763d pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0xed2acb24 hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0xa44e1d31 tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0xa66abc2c tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x0a222aec aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x52a1849e aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x828fcd97 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x29f7080c aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xd35ec692 aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x39cde174 wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x8913ed16 wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x9e1ff5a3 wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xa5758a49 wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd094df47 wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xe2beca26 wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x01cf1c56 mt8192_afe_gpio_request +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x246886e3 mt8192_afe_gpio_init +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x728730f6 q6afe_unvote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x884554ca q6afe_vote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/snd-soc-qcom-common 0x78ef10b6 qcom_snd_parse_of +EXPORT_SYMBOL sound/soc/snd-soc-core 0x690f9483 snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0x1b742605 imx8_dump +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0x66ef92c3 imx8_enable_clocks +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0x765aec12 imx8_disable_clocks +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0xc1473ce6 imx8_parse_clocks +EXPORT_SYMBOL sound/soc/sof/mediatek/mtk-adsp-common 0x00d4c76a mtk_adsp_dump +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x017a8d51 snd_sof_runtime_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x02a3657a snd_sof_device_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x08c2009f sof_set_fw_state +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x0d366966 sof_widget_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x0f0a7a5a snd_sof_dsp_update_bits64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x0fed7a8c sof_mailbox_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x10d3d5ac snd_sof_load_firmware_memcpy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x15860ea4 snd_sof_device_probe_completed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1663289e sof_ipc_tx_message_no_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x17a9486c sof_block_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1bea6a0a snd_sof_ipc_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1dae58c1 snd_sof_ipc_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1f1f5b5b sof_stream_pcm_open +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x20636e49 snd_sof_load_firmware_raw +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x24ee924b snd_sof_ipc_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x274deeb1 snd_sof_dsp_dbg_dump +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x28efcbd4 snd_sof_dsp_update_bits_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x2fe506e5 snd_sof_dsp_only_d0i3_compatible_stream_active +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x368c6727 sof_debug_check_flag +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4616cb20 snd_sof_dsp_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4cbefd3e snd_sof_pcm_period_elapsed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4e01ccb4 snd_sof_complete +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x50f631f5 sof_print_oops_and_stack +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5a2e15ce sof_machine_register +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5d9d2587 sof_machine_unregister +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5decbe65 sof_dai_get_bclk +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5f76f7be snd_sof_fw_unload +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5fc40a08 snd_sof_runtime_idle +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x7407541e sof_io_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x770b1943 snd_sof_run_firmware +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x8593c4a8 snd_sof_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x878bf1d9 sof_block_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x87a860b3 sof_stream_pcm_close +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x89f89953 sof_io_write64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x8ec6b99b snd_sof_load_topology +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x991cf44d snd_sof_dsp_update_bits_forced +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9dfd612e sof_compressed_ops +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa75588d6 snd_sof_runtime_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa8adb307 snd_sof_device_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xac93cce3 sof_ipc_msg_data +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xad62eaab snd_sof_prepare +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xb38cf77f sof_set_stream_data_offset +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xb45233dc snd_sof_handle_fw_exception +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xb6e51726 snd_sof_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xc795bb8c sof_pcm_dai_link_fixup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xccb8894b snd_sof_pci_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd1c82959 sof_ipc_tx_message +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xdcc59fad snd_sof_dsp_update_bits64_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xdf44e098 sof_io_read64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe1e35712 sof_io_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe36bd3ac sof_machine_check +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe9f18d5e sof_mailbox_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xee222e53 snd_sof_device_shutdown +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xefc48e9a snd_sof_dsp_panic +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xefe36759 snd_sof_ipc_get_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf24f315b sof_widget_setup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf71cee57 sof_dai_get_mclk +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x11a53381 sof_of_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x8dfbb60d sof_of_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x8fd3a491 sof_of_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0xee686287 sof_of_shutdown +EXPORT_SYMBOL sound/soc/sof/snd-sof-utils 0x1bbf67d0 snd_sof_create_page_table +EXPORT_SYMBOL sound/soundcore 0x211b6404 sound_class +EXPORT_SYMBOL sound/soundcore 0x3ec91fcd register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8575c5c9 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xbc92b44f register_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xe36fa1e5 register_sound_dsp +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x16ac4256 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x53c9fc81 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5fb6fd7d snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x608f4b89 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 0xa391d995 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe925e9ef snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0eda33fa snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2a48197f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6517719f __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x914f3491 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9223e14b snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9adc8c44 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc59655e4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd28dc0da __snd_util_mem_alloc +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 sound/usb/snd-usbmidi-lib 0xf795baae __snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x0010d2bd scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x0012fc63 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x00148653 vsnprintf +EXPORT_SYMBOL vmlinux 0x004c6902 nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x0054ff85 genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x00557157 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x005d756b netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x0060a1f6 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x006c37d6 mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x007cc9f6 from_kgid_munged +EXPORT_SYMBOL vmlinux 0x00a012d3 set_cached_acl +EXPORT_SYMBOL vmlinux 0x00a8b0bc fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00c5c10f security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x00cbd267 pmem_sector_size +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00f07379 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x00f9c31a xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x00f9d97f dev_deactivate +EXPORT_SYMBOL vmlinux 0x00fb98a8 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x010fee56 of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x011bab86 prepare_creds +EXPORT_SYMBOL vmlinux 0x0129c4f8 par_io_data_set +EXPORT_SYMBOL vmlinux 0x012d6975 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x012de2ea xudma_rchanrt_read +EXPORT_SYMBOL vmlinux 0x01365ff8 iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x013a72eb devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x013f26ae dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x0143ae91 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x014857ae param_set_ulong +EXPORT_SYMBOL vmlinux 0x01505d85 imx_scu_call_rpc +EXPORT_SYMBOL vmlinux 0x01594184 seq_open_private +EXPORT_SYMBOL vmlinux 0x015a480e blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x015c587d bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x016654f3 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device +EXPORT_SYMBOL vmlinux 0x017de3d5 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0x0184b4e6 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x018574a1 mb_cache_entry_delete +EXPORT_SYMBOL vmlinux 0x0188cd88 vme_alloc_consistent +EXPORT_SYMBOL vmlinux 0x018c6e43 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x018eb036 tegra_dfll_suspend +EXPORT_SYMBOL vmlinux 0x0196fb5d xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x0197e927 udp_pre_connect +EXPORT_SYMBOL vmlinux 0x019f8742 address_space_init_once +EXPORT_SYMBOL vmlinux 0x01ae3319 iommu_dma_get_resv_regions +EXPORT_SYMBOL vmlinux 0x01b6865c xa_get_mark +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01cd3858 ps2_init +EXPORT_SYMBOL vmlinux 0x01fae443 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x01fbb1ac d_alloc +EXPORT_SYMBOL vmlinux 0x01fd2006 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x021cb9dc genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x02286134 thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x02293ac3 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x023c7bb7 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x0240fc5f get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x0247d800 skb_copy +EXPORT_SYMBOL vmlinux 0x0248efd3 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x0272f826 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02836dd5 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02a3f60b dquot_commit +EXPORT_SYMBOL vmlinux 0x02b8ab42 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x02c065f8 ucc_set_qe_mux_mii_mng +EXPORT_SYMBOL vmlinux 0x02eed6eb mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x0314693a __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x031a1e8f pnp_register_driver +EXPORT_SYMBOL vmlinux 0x031c02a4 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x031cb14c gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x0321d067 udp_seq_ops +EXPORT_SYMBOL vmlinux 0x032d75b3 dst_init +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033ef81d try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x0345b929 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x034ae181 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x0356601a devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x035af9dd skb_find_text +EXPORT_SYMBOL vmlinux 0x035f6b27 vme_master_mmap +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0361b539 sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x036411c1 xattr_full_name +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036e56a4 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x0387593a skb_vlan_push +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03998d67 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x03bf0e5a acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x03c2e5a8 mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x03d465ff uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x03fea6f7 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x04360530 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x04673adb qman_ip_rev +EXPORT_SYMBOL vmlinux 0x0467843e kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0x046949f2 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x0474edef kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x04863e28 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x049829ae fman_reset_mac +EXPORT_SYMBOL vmlinux 0x04ae7a69 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x04c728c2 brioctl_set +EXPORT_SYMBOL vmlinux 0x04e99a61 blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04f2178f security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x04fe5cf5 tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x04fea906 set_capacity +EXPORT_SYMBOL vmlinux 0x0503e246 xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x051c6f3c blk_finish_plug +EXPORT_SYMBOL vmlinux 0x051d58e8 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052a7136 lease_modify +EXPORT_SYMBOL vmlinux 0x0533828e __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x0535b508 skb_store_bits +EXPORT_SYMBOL vmlinux 0x05434ec6 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x0548bb3d twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x054fed96 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x05522c55 of_find_node_opts_by_path +EXPORT_SYMBOL vmlinux 0x055b0075 update_devfreq +EXPORT_SYMBOL vmlinux 0x055e77e8 jiffies_64 +EXPORT_SYMBOL vmlinux 0x055fa932 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x056c5326 f_setown +EXPORT_SYMBOL vmlinux 0x05703886 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x0593e84a jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x059e1482 __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x05c39642 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x05d9cab4 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x05f2d5a1 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x06085a11 pci_choose_state +EXPORT_SYMBOL vmlinux 0x060ba97c gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0637a4e5 fman_port_bind +EXPORT_SYMBOL vmlinux 0x06391132 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x06932bec dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x06965be0 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x06b873eb jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x06bd88b5 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x06bf73bc rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x06caf746 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06dab8ef dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x06db75c6 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x06f44d24 unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x0711edc8 xudma_dev_get_tisci_rm +EXPORT_SYMBOL vmlinux 0x07252b68 dcb_setapp +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x0745a981 xa_erase +EXPORT_SYMBOL vmlinux 0x07681371 md_write_end +EXPORT_SYMBOL vmlinux 0x07700197 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x0781ec97 logic_insl +EXPORT_SYMBOL vmlinux 0x078fd18c generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x07905cc6 tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0x0794a5e6 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x07a112eb __ip_dev_find +EXPORT_SYMBOL vmlinux 0x07a26213 tcp_connect +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b1dc92 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x07bcc48d input_register_device +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ceeac9 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x07db17be qman_create_fq +EXPORT_SYMBOL vmlinux 0x07df4401 d_invalidate +EXPORT_SYMBOL vmlinux 0x07ed1e8e bdi_put +EXPORT_SYMBOL vmlinux 0x07f53235 dump_align +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x07f65c6f kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0801becb pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x080c143f redraw_screen +EXPORT_SYMBOL vmlinux 0x08162c74 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x081bec2e mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x0823869f hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x08308af0 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x08356f32 fman_sp_set_buf_pools_in_asc_order_of_buf_sizes +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08403dbc pneigh_lookup +EXPORT_SYMBOL vmlinux 0x08445cbc set_bh_page +EXPORT_SYMBOL vmlinux 0x0849510a get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x0858f35f pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x08629452 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x087ba653 sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x087bae40 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x08967979 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x089ea584 pci_free_irq +EXPORT_SYMBOL vmlinux 0x08c684b0 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x08e09eb3 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x08e26bc8 skb_eth_pop +EXPORT_SYMBOL vmlinux 0x08e39398 cmd_db_read_addr +EXPORT_SYMBOL vmlinux 0x0906074f vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x09109ef2 inet6_getname +EXPORT_SYMBOL vmlinux 0x092e26bf acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x092fbb61 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x09486337 tty_vhangup +EXPORT_SYMBOL vmlinux 0x095b8bf8 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x0979c06c flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x097af021 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x098a5734 __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0998cc3c hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x09b54bdb rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0x09b7433b register_md_personality +EXPORT_SYMBOL vmlinux 0x09bb2206 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x09bd5405 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x09cfc5f9 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09da0ba4 xa_set_mark +EXPORT_SYMBOL vmlinux 0x09dba42a _dev_info +EXPORT_SYMBOL vmlinux 0x09e12ac1 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x09f9b261 xudma_rchan_put +EXPORT_SYMBOL vmlinux 0x0a0ebc08 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x0a118cad devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x0a1b769f dquot_commit_info +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a25f161 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x0a2aa8ad dentry_path_raw +EXPORT_SYMBOL vmlinux 0x0a314502 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x0a43dee0 key_move +EXPORT_SYMBOL vmlinux 0x0a506f4c call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x0a6697ce inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x0a6da17d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7c9569 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x0a84b15d zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aa902f7 get_vm_area +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0abf36dd blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x0ac91d77 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adfb396 tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x0ae54a72 discard_new_inode +EXPORT_SYMBOL vmlinux 0x0ae91ab4 fb_get_mode +EXPORT_SYMBOL vmlinux 0x0aea7579 igrab +EXPORT_SYMBOL vmlinux 0x0aec62f5 __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x0aecad80 xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x0aedd49c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x0af9ad6c xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x0b0462bf pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x0b130b06 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x0b149a3f phy_start_cable_test +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b1e51f9 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x0b26b8c8 acpi_run_osc +EXPORT_SYMBOL vmlinux 0x0b290ada dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x0b432520 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x0b5c8c38 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7f2083 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x0b89fadb tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0b8eb061 param_get_invbool +EXPORT_SYMBOL vmlinux 0x0b8ef201 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x0b9d18d2 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0bbfa78c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bca8bb9 __scm_send +EXPORT_SYMBOL vmlinux 0x0bd5bfad xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x0bdd4c51 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x0bf32642 phy_start +EXPORT_SYMBOL vmlinux 0x0bf9b907 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x0bfc1d1a check_zeroed_user +EXPORT_SYMBOL vmlinux 0x0c021329 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0x0c0b25ac kobject_init +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c2601c7 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0x0c2a8aba blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x0c32171f do_splice_direct +EXPORT_SYMBOL vmlinux 0x0c324fa3 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x0c327091 fd_install +EXPORT_SYMBOL vmlinux 0x0c329f00 inode_io_list_del +EXPORT_SYMBOL vmlinux 0x0c3690fc _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0c3b5e96 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x0c3ccb33 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x0c575719 __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL vmlinux 0x0c70d949 devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x0c74f1c2 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0c7eed9d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0c944632 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x0c971b3e nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x0c99c7a4 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x0cad6afd scm_detach_fds +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cbe116d logfc +EXPORT_SYMBOL vmlinux 0x0cc4b4b6 crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x0cd183e2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0cf0b1a1 cpu_hwcap_keys +EXPORT_SYMBOL vmlinux 0x0d011c97 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x0d0722c0 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d120988 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x0d166a2f fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x0d225c32 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x0d2c7c4b lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x0d2ca20f ucc_fast_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x0d333b64 zstd_end_stream +EXPORT_SYMBOL vmlinux 0x0d357f6c freeze_super +EXPORT_SYMBOL vmlinux 0x0d39d657 d_delete +EXPORT_SYMBOL vmlinux 0x0d3f5c1a fman_get_max_frm +EXPORT_SYMBOL vmlinux 0x0d541b2b phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d583fee xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x0d7104c8 simple_pin_fs +EXPORT_SYMBOL vmlinux 0x0d713345 clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x0d89d515 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x0dce017d page_pool_create +EXPORT_SYMBOL vmlinux 0x0e0b48bb netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e21f2fb open_exec +EXPORT_SYMBOL vmlinux 0x0e21f424 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x0e2692a8 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x0e2e4f8e param_set_bint +EXPORT_SYMBOL vmlinux 0x0e39c754 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x0e4262c6 __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x0e4c5e58 md_write_inc +EXPORT_SYMBOL vmlinux 0x0e52df80 kobject_get +EXPORT_SYMBOL vmlinux 0x0e62e68c irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x0e67344e sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x0e6af7b0 put_disk +EXPORT_SYMBOL vmlinux 0x0e713cf9 mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x0e84a822 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x0e8af191 mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x0e8b4cad generic_perform_write +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0edae577 blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x0ef38b17 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f1f20e2 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x0f37ca89 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x0f606c94 register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x0f630261 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x0f6cc19a input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x0f707c01 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x0f714654 ps2_drain +EXPORT_SYMBOL vmlinux 0x0f71d50b kmem_cache_create +EXPORT_SYMBOL vmlinux 0x0f849d69 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0fa54102 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x0fab1ab0 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fb9677d xfrm_register_km +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fe11960 fget_raw +EXPORT_SYMBOL vmlinux 0x0ff90cbb fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x100e5b66 dns_query +EXPORT_SYMBOL vmlinux 0x1025009a cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x102507e7 migrate_vma_setup +EXPORT_SYMBOL vmlinux 0x102936ec qe_clock_source +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x103913bb try_module_get +EXPORT_SYMBOL vmlinux 0x1054d82e kernel_bind +EXPORT_SYMBOL vmlinux 0x1057a279 bsearch +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x1076784d cont_write_begin +EXPORT_SYMBOL vmlinux 0x107be0b0 percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x10a39673 param_set_bool +EXPORT_SYMBOL vmlinux 0x10a62cab security_path_unlink +EXPORT_SYMBOL vmlinux 0x10b395d2 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x10b78fca block_read_full_folio +EXPORT_SYMBOL vmlinux 0x10cf687a blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x11064d5c invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11327ad2 devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x113b24d5 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x113ce7e2 neigh_lookup +EXPORT_SYMBOL vmlinux 0x11674e9d input_close_device +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117135b5 skb_put +EXPORT_SYMBOL vmlinux 0x11a3d7c3 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x11a59625 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x11ac638e dma_sync_wait +EXPORT_SYMBOL vmlinux 0x11cf0cd3 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x11d189b1 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x11d5229d cdev_device_del +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e25e49 devm_clk_get +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11ff1e96 set_binfmt +EXPORT_SYMBOL vmlinux 0x11ffdfee ucc_slow_stop_tx +EXPORT_SYMBOL vmlinux 0x1205e006 imx_scu_enable_general_irq_channel +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120ff8e1 xudma_get_rflow_ring_offset +EXPORT_SYMBOL vmlinux 0x1214e4d2 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x12205734 page_pool_get_stats +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x12648c79 tty_register_device +EXPORT_SYMBOL vmlinux 0x1283b321 vme_dma_request +EXPORT_SYMBOL vmlinux 0x128e2cf8 get_fs_type +EXPORT_SYMBOL vmlinux 0x12a3030f flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x12a4e128 __arch_copy_from_user +EXPORT_SYMBOL vmlinux 0x12b29465 inet_release +EXPORT_SYMBOL vmlinux 0x12be158b pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12ddd7bb genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x12ddeade devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x12e1d78e nf_setsockopt +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x130afd75 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x130c71e7 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0x13110126 request_resource +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 0x136d40c9 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x13805480 folio_migrate_copy +EXPORT_SYMBOL vmlinux 0x13894fc9 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x138bdd96 cpumask_next +EXPORT_SYMBOL vmlinux 0x13927484 tcp_child_process +EXPORT_SYMBOL vmlinux 0x139d9e0a pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x139f2189 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x13a34af4 __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13dbb346 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x13df45d2 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x140820ef tegra_ivc_read_get_next_frame +EXPORT_SYMBOL vmlinux 0x14105642 neigh_xmit +EXPORT_SYMBOL vmlinux 0x141271bf acpi_dev_found +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x144c5b89 eth_header +EXPORT_SYMBOL vmlinux 0x144e5cfa send_sig +EXPORT_SYMBOL vmlinux 0x145254ac refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x147a5d8d dst_destroy +EXPORT_SYMBOL vmlinux 0x148281b0 of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0x1486ded2 dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x1490faa5 add_to_pipe +EXPORT_SYMBOL vmlinux 0x1498886e netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x14b89635 arm64_const_caps_ready +EXPORT_SYMBOL vmlinux 0x14bc3538 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14d79b3e tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x14e8cd8c jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x14f05d9e grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x14f45fcc bman_free_pool +EXPORT_SYMBOL vmlinux 0x14fa1207 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x15201b8c netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x15325983 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x1532f429 blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x15345dd0 skb_trim +EXPORT_SYMBOL vmlinux 0x15395a9e udp_set_csum +EXPORT_SYMBOL vmlinux 0x1546b49a register_quota_format +EXPORT_SYMBOL vmlinux 0x15478ae0 of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x156755c7 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x15686ab4 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x1573bad5 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x15745076 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x15a25ede blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x15a97bef folio_migrate_mapping +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 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x1615e0c8 phy_write_paged +EXPORT_SYMBOL vmlinux 0x16196c3a udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x163d2417 tegra_io_rail_power_off +EXPORT_SYMBOL vmlinux 0x163e9888 inet6_release +EXPORT_SYMBOL vmlinux 0x164bc152 fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x166b60de d_obtain_root +EXPORT_SYMBOL vmlinux 0x1674e712 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e3a1e backlight_force_update +EXPORT_SYMBOL vmlinux 0x1690e060 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x169938c1 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x16b9714c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x16c5722d vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x16cdc340 acpi_get_table +EXPORT_SYMBOL vmlinux 0x16cfeec9 component_match_add_typed +EXPORT_SYMBOL vmlinux 0x16dee44d dma_fence_init +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e7e2cb cpu_all_bits +EXPORT_SYMBOL vmlinux 0x16edd01c msm_pinctrl_remove +EXPORT_SYMBOL vmlinux 0x16f6327c tcf_idr_search +EXPORT_SYMBOL vmlinux 0x16fa9223 devm_request_resource +EXPORT_SYMBOL vmlinux 0x17038550 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x17047ddf sock_alloc_file +EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x17226a07 inet_del_offload +EXPORT_SYMBOL vmlinux 0x172b305c fqdir_init +EXPORT_SYMBOL vmlinux 0x172f935b devm_memremap +EXPORT_SYMBOL vmlinux 0x17340a99 phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x174980e9 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x174f5413 register_shrinker +EXPORT_SYMBOL vmlinux 0x175a5617 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x176e3d84 pci_dev_put +EXPORT_SYMBOL vmlinux 0x17769b7c dquot_scan_active +EXPORT_SYMBOL vmlinux 0x17784d95 d_rehash +EXPORT_SYMBOL vmlinux 0x17825d3f xudma_rchan_get +EXPORT_SYMBOL vmlinux 0x178c4894 qe_upload_firmware +EXPORT_SYMBOL vmlinux 0x17a8f7c0 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x17b76dc2 fb_show_logo +EXPORT_SYMBOL vmlinux 0x17b9121c watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x17bd3f88 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x17d6ff60 unregister_netdev +EXPORT_SYMBOL vmlinux 0x17dd1618 tegra_dfll_unregister +EXPORT_SYMBOL vmlinux 0x17e797d6 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x1802ebef sock_no_connect +EXPORT_SYMBOL vmlinux 0x180c08b2 cdev_device_add +EXPORT_SYMBOL vmlinux 0x18117ebb misc_register +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x1850ccf9 input_set_keycode +EXPORT_SYMBOL vmlinux 0x185feeff jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x18681ca8 dma_set_mask +EXPORT_SYMBOL vmlinux 0x186eff48 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x1876b2a7 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x187884a8 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x1885ee35 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x18888d00 downgrade_write +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x189411c0 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x18ad9e45 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x18b15104 phy_find_first +EXPORT_SYMBOL vmlinux 0x18b16490 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x18b48e28 __memset_io +EXPORT_SYMBOL vmlinux 0x18c52191 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x18cc9c7d neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x19136003 rproc_free +EXPORT_SYMBOL vmlinux 0x192929e4 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x1939d9d1 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x193cde6f flush_signals +EXPORT_SYMBOL vmlinux 0x194058bb __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1953c958 mempool_create +EXPORT_SYMBOL vmlinux 0x1956739e gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x195d87f1 alloc_pages +EXPORT_SYMBOL vmlinux 0x1980a06c serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x198de5d4 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19aa2387 md_update_sb +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cc6dca qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x19e0c759 fqdir_exit +EXPORT_SYMBOL vmlinux 0x19ec705d mmc_detect_change +EXPORT_SYMBOL vmlinux 0x19ef3c27 __seq_open_private +EXPORT_SYMBOL vmlinux 0x19ff8e01 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1a02b7ac vme_irq_request +EXPORT_SYMBOL vmlinux 0x1a078a08 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x1a0ae560 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x1a359e94 of_find_property +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a6df2f7 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x1a731f0c import_iovec +EXPORT_SYMBOL vmlinux 0x1a90b2c4 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1a93790c rproc_boot +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1ab7a7ac tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0x1abc799e zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x1abcc95a inode_set_flags +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ac72df4 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x1ac9d13f of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x1af20e0f __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x1afe11d9 dev_addr_add +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b16c3dd register_netdev +EXPORT_SYMBOL vmlinux 0x1b22a842 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x1b435db3 module_layout +EXPORT_SYMBOL vmlinux 0x1b5196fc xudma_tchan_put +EXPORT_SYMBOL vmlinux 0x1b597b7a swake_up_all +EXPORT_SYMBOL vmlinux 0x1b5cc9d8 dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x1b6111b3 of_match_device +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6e94ad vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b908d85 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0x1ba59527 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bb86b9a xen_start_info +EXPORT_SYMBOL vmlinux 0x1bb915f8 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x1bc73b3b d_obtain_alias +EXPORT_SYMBOL vmlinux 0x1bd59dbe vme_free_consistent +EXPORT_SYMBOL vmlinux 0x1bd640bf key_validate +EXPORT_SYMBOL vmlinux 0x1bdfb8f6 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x1be8ca2d page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0x1bfc7122 mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x1c29cf2c tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x1c2baa0c neigh_ifdown +EXPORT_SYMBOL vmlinux 0x1c3b6b92 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c893f1c __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x1c8ff517 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x1cb11044 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x1cbaf266 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1cc87265 dst_release +EXPORT_SYMBOL vmlinux 0x1ccea2ca __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cd27174 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0x1cd8438b pxm_to_node +EXPORT_SYMBOL vmlinux 0x1cdd39ba logic_outsl +EXPORT_SYMBOL vmlinux 0x1cf5efa6 xudma_rflow_get_id +EXPORT_SYMBOL vmlinux 0x1d07e365 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x1d1abdf0 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x1d24c881 ___ratelimit +EXPORT_SYMBOL vmlinux 0x1d2e0a72 blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x1d33764d seq_printf +EXPORT_SYMBOL vmlinux 0x1d3a4bed get_task_cred +EXPORT_SYMBOL vmlinux 0x1d40b6f3 idr_for_each +EXPORT_SYMBOL vmlinux 0x1d5cedae __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x1d5fa606 framebuffer_release +EXPORT_SYMBOL vmlinux 0x1d9672bd fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x1da7a83c rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd95a76 clkdev_drop +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1de59c22 qcom_scm_ice_invalidate_key +EXPORT_SYMBOL vmlinux 0x1de67f9b qcom_scm_io_writel +EXPORT_SYMBOL vmlinux 0x1dea9e1e tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x1df33611 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x1dfaa4dd efi +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 0x1e67900a skb_clone +EXPORT_SYMBOL vmlinux 0x1e6adaa0 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e70bfa6 dev_close +EXPORT_SYMBOL vmlinux 0x1e79f3cb netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x1e886f73 dump_page +EXPORT_SYMBOL vmlinux 0x1e9e4925 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1e9fa3cd put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x1ea1d1a6 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x1eb3c8ac gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x1ed738de free_task +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1ee2e73c xen_alloc_unpopulated_pages +EXPORT_SYMBOL vmlinux 0x1ee41a0a flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x1ee47ac0 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x1ef41b7e qcom_scm_iommu_set_pt_format +EXPORT_SYMBOL vmlinux 0x1f02d9e0 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x1f160aca generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x1f16c7a1 d_exact_alias +EXPORT_SYMBOL vmlinux 0x1f335295 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x1f386c5d load_nls +EXPORT_SYMBOL vmlinux 0x1f557414 gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x1f82167d eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x1f88c24c __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x1f8a4edd may_umount_tree +EXPORT_SYMBOL vmlinux 0x1f91be36 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x1fabb94c pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0x1fb2c85d phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x1fb93af0 netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x1fbc08cd inet_bind +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc69732 __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x1fcc4106 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fdc8a9e __register_nls +EXPORT_SYMBOL vmlinux 0x1fec5cdd unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x1fef9a86 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x1ff29737 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200aa88f keyring_clear +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x202f76ae pci_write_config_word +EXPORT_SYMBOL vmlinux 0x204017a9 param_set_hexint +EXPORT_SYMBOL vmlinux 0x20463df4 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x205b80d2 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x205d3ce6 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x206c2c2e tcp_parse_options +EXPORT_SYMBOL vmlinux 0x207f7d8e rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0x208776fd sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a94978 msm_pinctrl_probe +EXPORT_SYMBOL vmlinux 0x20c197ef pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x20c7e638 nd_pfn_validate +EXPORT_SYMBOL vmlinux 0x20cbb30a __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x20d2e85f tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20e08d4e tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x210bae8a inet_getname +EXPORT_SYMBOL vmlinux 0x2125227d invalidate_bdev +EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x215cdf2b scsi_print_sense +EXPORT_SYMBOL vmlinux 0x21767142 of_root +EXPORT_SYMBOL vmlinux 0x2184d920 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x218a20fb inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x218f28e5 fsync_bdev +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21d605ac bioset_init +EXPORT_SYMBOL vmlinux 0x21da9600 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21ec7ec2 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x21ec99de udp_prot +EXPORT_SYMBOL vmlinux 0x21ef374c try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x21f96efd d_set_fallthru +EXPORT_SYMBOL vmlinux 0x21fb959e __block_write_full_page +EXPORT_SYMBOL vmlinux 0x22094a1c param_get_hexint +EXPORT_SYMBOL vmlinux 0x220b1367 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x220c7021 tegra_io_pad_power_disable +EXPORT_SYMBOL vmlinux 0x22201483 ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x22255713 elevator_alloc +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2234ca51 acpi_match_platform_list +EXPORT_SYMBOL vmlinux 0x223a24c3 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x223f1653 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x224292a6 vfs_rename +EXPORT_SYMBOL vmlinux 0x2245cf65 compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x224ce651 xudma_free_gp_rflow_range +EXPORT_SYMBOL vmlinux 0x22a458e9 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x22ab7728 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x22af95cc devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22cf0f89 devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x22cf320c vma_alloc_folio +EXPORT_SYMBOL vmlinux 0x22d1e0fc blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x22d71d50 eth_header_cache +EXPORT_SYMBOL vmlinux 0x22db7ab4 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x22e182d7 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x2318de5d dquot_drop +EXPORT_SYMBOL vmlinux 0x23218ee3 devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x2324e726 ethtool_notify +EXPORT_SYMBOL vmlinux 0x232caa52 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x23318ef9 should_remove_suid +EXPORT_SYMBOL vmlinux 0x2343f0dd twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x23559c51 qman_oos_fq +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x23686ab3 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x237a0b5c __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x2391f725 irq_stat +EXPORT_SYMBOL vmlinux 0x23a28cdd d_splice_alias +EXPORT_SYMBOL vmlinux 0x23a52f67 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x23a9cbe8 unregister_nls +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c128f4 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x23cabbb1 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x23daa989 mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x23dd6cc8 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x23e21bd6 pci_read_config_dword +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23f1d7a6 page_pool_ethtool_stats_get_count +EXPORT_SYMBOL vmlinux 0x23f4ddb8 config_item_put +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23ff04a4 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x23ff71aa file_open_root +EXPORT_SYMBOL vmlinux 0x240ae9ca xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x240bfafb sg_miter_next +EXPORT_SYMBOL vmlinux 0x240e6ff3 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x2418a342 ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x243a51e3 phy_read_mmd +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2444fdbd fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x244b9e48 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x244cf14b __check_sticky +EXPORT_SYMBOL vmlinux 0x245510ab pci_request_irq +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2468e051 ip6_output +EXPORT_SYMBOL vmlinux 0x246bbd67 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x247e548d vm_map_ram +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x24953f38 vfs_readlink +EXPORT_SYMBOL vmlinux 0x249b393b netdev_info +EXPORT_SYMBOL vmlinux 0x249d096c genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x249ee023 tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0x24b223b0 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x24c939e9 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24df5413 set_blocksize +EXPORT_SYMBOL vmlinux 0x24efb3e4 vfs_statfs +EXPORT_SYMBOL vmlinux 0x24ff65a5 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x2505bf18 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x251a9132 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x251fb608 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x25228fa0 nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x2524a17a __scsi_execute +EXPORT_SYMBOL vmlinux 0x252f3806 mdiobus_write +EXPORT_SYMBOL vmlinux 0x25370e23 bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x25399997 tty_port_close +EXPORT_SYMBOL vmlinux 0x254a3555 _dev_printk +EXPORT_SYMBOL vmlinux 0x256006ba nf_log_unregister +EXPORT_SYMBOL vmlinux 0x25640bab unlock_rename +EXPORT_SYMBOL vmlinux 0x25660866 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258a2c02 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x2593a754 vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x25974000 wait_for_completion +EXPORT_SYMBOL vmlinux 0x25b4d607 simple_nosetlease +EXPORT_SYMBOL vmlinux 0x25b7ed6d bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x25bfb2f1 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x25fb8c6a __break_lease +EXPORT_SYMBOL vmlinux 0x26024192 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x26027e61 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x26044b23 arp_send +EXPORT_SYMBOL vmlinux 0x2605c605 dev_driver_string +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x260e52ee dynamic_preempt_schedule_notrace +EXPORT_SYMBOL vmlinux 0x26130909 to_nd_dax +EXPORT_SYMBOL vmlinux 0x2616a57a pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x261a7741 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x262f12a0 follow_down +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263c3152 bcmp +EXPORT_SYMBOL vmlinux 0x263f0d1f qman_portal_set_iperiod +EXPORT_SYMBOL vmlinux 0x266acad7 init_net +EXPORT_SYMBOL vmlinux 0x2678c042 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x2684ad73 netdev_features_change +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x269018d9 phy_device_register +EXPORT_SYMBOL vmlinux 0x269a72b8 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x269ba4ae xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x26a180eb serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x26a61543 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e413a9 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x26eb7c51 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x26ef6cff xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +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 0x275dfee4 ucc_slow_free +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x276523b8 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x27770c07 noop_fsync +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 0x27934683 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x27ad80cd dev_uc_init +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c3c728 qman_release_fqid +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27e0dd0a qcom_scm_pas_init_image +EXPORT_SYMBOL vmlinux 0x27e2a854 unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x27fe3399 d_find_alias +EXPORT_SYMBOL vmlinux 0x28102506 mod_node_page_state +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x28416e27 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x285618e0 folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x287a728e vme_slave_request +EXPORT_SYMBOL vmlinux 0x28993a4c blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x28dc01f3 __alloc_skb +EXPORT_SYMBOL vmlinux 0x28dd6500 tty_devnum +EXPORT_SYMBOL vmlinux 0x28e63dcc icmp6_send +EXPORT_SYMBOL vmlinux 0x28f752ec inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x28f98361 ip6_xmit +EXPORT_SYMBOL vmlinux 0x28fe2858 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x29055b51 finish_no_open +EXPORT_SYMBOL vmlinux 0x2939ea16 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x297b7fc2 vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x29b31cb2 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x29d3f8c3 would_dump +EXPORT_SYMBOL vmlinux 0x29e1e204 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x29e74796 reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x2a003bc2 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a33cffa gro_cells_init +EXPORT_SYMBOL vmlinux 0x2a460286 unload_nls +EXPORT_SYMBOL vmlinux 0x2a4c552d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x2a4ec1fd i2c_verify_client +EXPORT_SYMBOL vmlinux 0x2a52574c add_watch_to_object +EXPORT_SYMBOL vmlinux 0x2a60a7e9 key_unlink +EXPORT_SYMBOL vmlinux 0x2a6adf5a single_open +EXPORT_SYMBOL vmlinux 0x2a79930b neigh_connected_output +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2aa0843e mempool_resize +EXPORT_SYMBOL vmlinux 0x2aabaf9d xudma_tchan_get +EXPORT_SYMBOL vmlinux 0x2aabcdc8 vmalloc_array +EXPORT_SYMBOL vmlinux 0x2ab2ee91 brcmstb_get_product_id +EXPORT_SYMBOL vmlinux 0x2ab999b9 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x2ac21793 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x2acee0ad security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x2ad07894 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2b0b8bc4 poll_initwait +EXPORT_SYMBOL vmlinux 0x2b1abce3 fman_has_errata_a050385 +EXPORT_SYMBOL vmlinux 0x2b25f627 dcache_readdir +EXPORT_SYMBOL vmlinux 0x2b3e4996 genl_register_family +EXPORT_SYMBOL vmlinux 0x2b4018b1 tcp_filter +EXPORT_SYMBOL vmlinux 0x2b4a1ab7 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x2b593aa8 gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b7b32ef fs_lookup_param +EXPORT_SYMBOL vmlinux 0x2b7c7b6b tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x2b7ddddd sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba2e643 tcf_block_put +EXPORT_SYMBOL vmlinux 0x2ba68fba pipe_unlock +EXPORT_SYMBOL vmlinux 0x2bb6099e dq_data_lock +EXPORT_SYMBOL vmlinux 0x2bc261aa regset_get +EXPORT_SYMBOL vmlinux 0x2bc439da pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x2bc51b83 netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x2bd60ab9 acpi_reset +EXPORT_SYMBOL vmlinux 0x2bd6ff9a __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x2bf209ff tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x2bfbab10 __memmove +EXPORT_SYMBOL vmlinux 0x2c0c9af3 nonseekable_open +EXPORT_SYMBOL vmlinux 0x2c1bb65f mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c2ae348 cdev_add +EXPORT_SYMBOL vmlinux 0x2c329e54 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0x2c4b1603 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x2c541e7b radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x2c62fc9a xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x2c6839cd vif_device_init +EXPORT_SYMBOL vmlinux 0x2c71fbfb proc_dobool +EXPORT_SYMBOL vmlinux 0x2c7502c0 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c91e17c vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x2ca82cd6 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top +EXPORT_SYMBOL vmlinux 0x2cdddce1 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0x2cdf87a1 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x2cf5ed17 __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d14e167 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x2d192c70 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d337232 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d74362a fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x2d90e8cd mmc_add_host +EXPORT_SYMBOL vmlinux 0x2d912bca dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2dce2f1c __irq_regs +EXPORT_SYMBOL vmlinux 0x2dda91d3 bio_reset +EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2deef74f tty_port_hangup +EXPORT_SYMBOL vmlinux 0x2df928f0 no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x2e0b1deb dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2c4ddc logic_inw +EXPORT_SYMBOL vmlinux 0x2e3023cc simple_fill_super +EXPORT_SYMBOL vmlinux 0x2e3bcce2 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x2e5b27da xudma_alloc_gp_rflow_range +EXPORT_SYMBOL vmlinux 0x2e5e7baa blk_execute_rq +EXPORT_SYMBOL vmlinux 0x2ea9718e input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x2eac1f1d dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0x2eba9176 xfrm_input +EXPORT_SYMBOL vmlinux 0x2ebef392 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2eda0048 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x2edca536 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x2ee1ddf5 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x2ee4c2b1 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x2ee7fcb3 fput +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f0523db ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x2f09ef90 fb_set_var +EXPORT_SYMBOL vmlinux 0x2f0ec6b0 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x2f1254d1 ucc_tdm_init +EXPORT_SYMBOL vmlinux 0x2f15e975 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x2f2774de __pskb_copy_fclone +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 0x2f40249f __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x2f55372d xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x2f682ea4 nd_dax_probe +EXPORT_SYMBOL vmlinux 0x2f6938a5 seq_pad +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2f7ea615 rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0x2f8b7094 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x2f9d9879 pci_map_rom +EXPORT_SYMBOL vmlinux 0x2fc457a1 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x2fc505ec vm_node_stat +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe5b535 qcom_scm_assign_mem +EXPORT_SYMBOL vmlinux 0x300547a1 sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x30092bfc pci_get_subsys +EXPORT_SYMBOL vmlinux 0x301025b7 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x3016c8d9 mpage_writepages +EXPORT_SYMBOL vmlinux 0x303a1f2d bio_endio +EXPORT_SYMBOL vmlinux 0x303f08da vfs_llseek +EXPORT_SYMBOL vmlinux 0x3069092b dm_register_target +EXPORT_SYMBOL vmlinux 0x308354f4 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30b36a8d tty_unlock +EXPORT_SYMBOL vmlinux 0x30bc2390 elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x30d6d2a2 of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x30dfdfa8 inet_accept +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ed017b pps_event +EXPORT_SYMBOL vmlinux 0x31062ae1 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x310cd8b2 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x31106670 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x31185549 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x3141f251 fman_set_mac_active_pause +EXPORT_SYMBOL vmlinux 0x31459cb2 devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x31674b40 mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x3171cacd scsi_remove_target +EXPORT_SYMBOL vmlinux 0x317eedb7 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x319d493d proc_dostring +EXPORT_SYMBOL vmlinux 0x31a4767f qcom_scm_hdcp_available +EXPORT_SYMBOL vmlinux 0x31a743d8 phy_connect +EXPORT_SYMBOL vmlinux 0x31a89b70 dst_dev_put +EXPORT_SYMBOL vmlinux 0x31b28383 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x31bc0adc pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x31ccfdba filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0x31d36ee3 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x31d4f4bb nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0x31de330a sock_wmalloc +EXPORT_SYMBOL vmlinux 0x31e44552 sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0x320b99d8 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x320e2b28 sk_error_report +EXPORT_SYMBOL vmlinux 0x3213f038 mutex_unlock +EXPORT_SYMBOL vmlinux 0x3216b896 unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x32198d15 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x3225d09e param_ops_ulong +EXPORT_SYMBOL vmlinux 0x32394d4b qe_issue_cmd +EXPORT_SYMBOL vmlinux 0x323f24f0 fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x323f6949 mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x3241598d file_modified +EXPORT_SYMBOL vmlinux 0x32502ad6 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x325e4d5b platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x326cc3fd scsi_done +EXPORT_SYMBOL vmlinux 0x3277fabd tegra_dfll_register +EXPORT_SYMBOL vmlinux 0x32787823 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x328a6597 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x32953e72 generic_permission +EXPORT_SYMBOL vmlinux 0x32965fbf ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x329a0469 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x32bec5de security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x32c011cf vme_register_bridge +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32dd84f8 tegra_ivc_write_advance +EXPORT_SYMBOL vmlinux 0x32e2e942 dm_io +EXPORT_SYMBOL vmlinux 0x32e6f1a0 acpi_video_backlight_string +EXPORT_SYMBOL vmlinux 0x32e73b5a skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x32f6b362 get_acl +EXPORT_SYMBOL vmlinux 0x32fc1be5 nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x32ff2e79 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x33037fd8 logic_outl +EXPORT_SYMBOL vmlinux 0x3345b7fb scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x33542d37 iput +EXPORT_SYMBOL vmlinux 0x33556c57 d_add_ci +EXPORT_SYMBOL vmlinux 0x335e9f20 devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x33736a1d __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x33b37fcf nf_log_set +EXPORT_SYMBOL vmlinux 0x33c5f15a dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x33d061bf dev_get_iflink +EXPORT_SYMBOL vmlinux 0x33e086cc truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x3402dc8b __write_overflow_field +EXPORT_SYMBOL vmlinux 0x34085b73 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x340e91de key_reject_and_link +EXPORT_SYMBOL vmlinux 0x34162fb5 __fput_sync +EXPORT_SYMBOL vmlinux 0x341a9c87 blkdev_put +EXPORT_SYMBOL vmlinux 0x3424daf8 __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x343bd0b6 xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x343f13ea sock_create +EXPORT_SYMBOL vmlinux 0x3442a54e netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x3461db9d sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x3468a9da unix_detach_fds +EXPORT_SYMBOL vmlinux 0x346d48a8 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x349d568f qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x34a1f7e3 acpi_processor_get_psd +EXPORT_SYMBOL vmlinux 0x34b16334 __next_node_in +EXPORT_SYMBOL vmlinux 0x34c24c45 find_vma +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34db050b _raw_spin_lock_irqsave +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 0x35256290 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x353a0f02 input_setup_polling +EXPORT_SYMBOL vmlinux 0x353e962a input_free_device +EXPORT_SYMBOL vmlinux 0x3541f256 simple_write_begin +EXPORT_SYMBOL vmlinux 0x354c9175 cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x3550030e fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x35513055 get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x355979fc inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x35892041 pci_get_class +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35b9c864 fman_get_bmi_max_fifo_size +EXPORT_SYMBOL vmlinux 0x35bf390d freezing_slow_path +EXPORT_SYMBOL vmlinux 0x35f8a778 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b1f16 vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x360ca898 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x360d9ee3 __scm_destroy +EXPORT_SYMBOL vmlinux 0x36182d49 devm_iounmap +EXPORT_SYMBOL vmlinux 0x361cfd3d sock_sendmsg +EXPORT_SYMBOL vmlinux 0x3623ef7b done_path_create +EXPORT_SYMBOL vmlinux 0x36451cc9 dquot_transfer +EXPORT_SYMBOL vmlinux 0x364850b1 down_write_killable +EXPORT_SYMBOL vmlinux 0x364bc9d2 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x364c23ad mutex_is_locked +EXPORT_SYMBOL vmlinux 0x36571c36 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x365a7a2e pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x366f040b gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3687f2a5 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x36b6ebbf down_killable +EXPORT_SYMBOL vmlinux 0x36c4a6de __brelse +EXPORT_SYMBOL vmlinux 0x36cae67b filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x36d51ea2 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x36dc2b2b skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x370a77f5 generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x370e5e1b blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x37110088 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3717f6c6 devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x372c0a9a folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3751392f fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x375be77f simple_open +EXPORT_SYMBOL vmlinux 0x377d8004 acpi_error +EXPORT_SYMBOL vmlinux 0x37a42106 sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x37a9bcf6 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x37b8b39e screen_info +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c0864e mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x37c64e2d to_nd_pfn +EXPORT_SYMBOL vmlinux 0x37d6c1ef iov_iter_npages +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37f81e5e key_payload_reserve +EXPORT_SYMBOL vmlinux 0x3800d8de pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x3814db32 sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0x3819eb4c reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382b44a7 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x383f4aba skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x386eafdd udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x3871628c n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x3877f8f4 eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x387ce400 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x38849c3b kthread_create_worker_on_cpu +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 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x38a5dd30 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38be38df dquot_free_inode +EXPORT_SYMBOL vmlinux 0x38d0c473 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x38de0eef security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x38dfca9e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x38e46431 mempool_exit +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x392b1fea wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x392b6698 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x392e92de cdrom_release +EXPORT_SYMBOL vmlinux 0x3932f3a7 phy_read_paged +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393e38f4 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x39464c47 set_anon_super +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x394b0d95 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x395d164c km_new_mapping +EXPORT_SYMBOL vmlinux 0x396c1b63 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x397130fc __lock_buffer +EXPORT_SYMBOL vmlinux 0x397bb861 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x39822216 fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x399006cf migrate_vma_pages +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39b8d49c cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x39be4b8e qman_volatile_dequeue +EXPORT_SYMBOL vmlinux 0x39c856e4 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x39d95ca4 zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x39db8e1c reuseport_select_sock +EXPORT_SYMBOL vmlinux 0x3a057b1b xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x3a0f5226 folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a52c593 tty_kref_put +EXPORT_SYMBOL vmlinux 0x3a697da6 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x3a74e43f __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x3a79b6fb textsearch_register +EXPORT_SYMBOL vmlinux 0x3a9023db cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ab88536 input_flush_device +EXPORT_SYMBOL vmlinux 0x3abfcbf7 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x3ac43003 kern_path +EXPORT_SYMBOL vmlinux 0x3aca0190 _raw_write_lock_irq +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 0x3ae34aeb zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x3aee2535 security_sb_remount +EXPORT_SYMBOL vmlinux 0x3aff3200 acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x3b04b1bc csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x3b0f23d2 xudma_is_pktdma +EXPORT_SYMBOL vmlinux 0x3b20fb95 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x3b22f536 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x3b254abc pci_match_id +EXPORT_SYMBOL vmlinux 0x3b2627f9 t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x3b321462 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x3b362439 mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0x3b43ec5a scsi_done_direct +EXPORT_SYMBOL vmlinux 0x3b4f2a02 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b707ad5 imx_sc_rm_get_resource_owner +EXPORT_SYMBOL vmlinux 0x3b78efb0 register_netdevice +EXPORT_SYMBOL vmlinux 0x3b8c06af vga_put +EXPORT_SYMBOL vmlinux 0x3b9144c9 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x3ba0abca dm_put_device +EXPORT_SYMBOL vmlinux 0x3ba26a58 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x3bbeb51c pci_resize_resource +EXPORT_SYMBOL vmlinux 0x3bda6c7e nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3bf25801 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x3c0e1620 qcom_scm_pas_metadata_release +EXPORT_SYMBOL vmlinux 0x3c1566e6 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c31d4b8 devm_ioremap +EXPORT_SYMBOL vmlinux 0x3c3215c4 qe_immr +EXPORT_SYMBOL vmlinux 0x3c393ca9 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c41c239 mdio_device_register +EXPORT_SYMBOL vmlinux 0x3c63c862 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x3c9ef47f jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x3cbb940b zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x3cccbec1 blk_start_plug +EXPORT_SYMBOL vmlinux 0x3cd9ed83 logic_insw +EXPORT_SYMBOL vmlinux 0x3ce193d5 __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x3ce44ee9 cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d02cd70 dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x3d166e8d acpi_dev_hid_uid_match +EXPORT_SYMBOL vmlinux 0x3d210724 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x3d5202a8 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x3d70174f phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x3d71251c phy_attached_print +EXPORT_SYMBOL vmlinux 0x3d92360a mmc_run_bkops +EXPORT_SYMBOL vmlinux 0x3d93c7c2 __arm_smccc_sve_check +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3daac30f devm_clk_put +EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3dc619d3 swake_up_locked +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dce05a0 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x3dd3f054 xudma_rchan_get_id +EXPORT_SYMBOL vmlinux 0x3dd6aac2 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x3dd9b230 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3df64c13 dst_alloc +EXPORT_SYMBOL vmlinux 0x3dfb86b9 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dff0408 jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0x3e147fc1 tcp_seq_start +EXPORT_SYMBOL vmlinux 0x3e1cbc00 devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x3e1cf29f ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x3e1e0313 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x3e27e05b tty_port_destroy +EXPORT_SYMBOL vmlinux 0x3e330d3a mii_check_media +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e44d94f input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x3e5cb627 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0x3e671e10 netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x3e78cd94 qman_get_qm_portal_config +EXPORT_SYMBOL vmlinux 0x3e79fb00 arm_smccc_1_2_smc +EXPORT_SYMBOL vmlinux 0x3e98ae57 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x3eb6cbcf ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x3ed77967 skb_push +EXPORT_SYMBOL vmlinux 0x3eeb2322 __wake_up +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f0eabd2 xxh64_update +EXPORT_SYMBOL vmlinux 0x3f34644d zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x3f38fd05 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0x3f3b0456 inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x3f4107d5 devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0x3f42518b dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4bd846 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x3f533401 mmc_put_card +EXPORT_SYMBOL vmlinux 0x3f545cad cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x3f72c23d pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0x3f76e877 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x3f81a462 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3f917752 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x3f98be74 proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x3f9fda3b folio_mapped +EXPORT_SYMBOL vmlinux 0x3fa7f978 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3fa862c9 zpool_register_driver +EXPORT_SYMBOL vmlinux 0x3fb87f04 bio_init +EXPORT_SYMBOL vmlinux 0x3fbdc10b timestamp_truncate +EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set +EXPORT_SYMBOL vmlinux 0x3fc7d361 napi_build_skb +EXPORT_SYMBOL vmlinux 0x3fcae23c simple_dir_operations +EXPORT_SYMBOL vmlinux 0x3fd5086e jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fdc477f skb_ext_add +EXPORT_SYMBOL vmlinux 0x3fdf9ab3 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3fe116d3 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fec4797 sk_free +EXPORT_SYMBOL vmlinux 0x4019366b unix_get_socket +EXPORT_SYMBOL vmlinux 0x40235c98 _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x402f56f7 __d_lookup_done +EXPORT_SYMBOL vmlinux 0x4033d3a5 sock_efree +EXPORT_SYMBOL vmlinux 0x40482bd8 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x406467a7 da903x_query_status +EXPORT_SYMBOL vmlinux 0x4068b8a0 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x4078fa11 drop_nlink +EXPORT_SYMBOL vmlinux 0x4089d618 cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x408a2802 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a32209 genlmsg_put +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bad98e kobject_set_name +EXPORT_SYMBOL vmlinux 0x40c4a7be __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40f32feb dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x40f76a86 __vcalloc +EXPORT_SYMBOL vmlinux 0x4123fd3d vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x412532ca rproc_add +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x4134e0c7 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x413af817 d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414da5e5 qman_enqueue +EXPORT_SYMBOL vmlinux 0x418104c8 dquot_alloc +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419cae2e generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x41a219d2 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x41a70d92 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41ec6e37 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x41ed3709 get_random_bytes +EXPORT_SYMBOL vmlinux 0x41efdeaf radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x41fe28e4 param_ops_hexint +EXPORT_SYMBOL vmlinux 0x41fe83bc get_cached_acl +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x420e9f69 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x42334bae __getblk_gfp +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type +EXPORT_SYMBOL vmlinux 0x4258a33d pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x4259dec1 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x426f3ab6 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x4272448b update_region +EXPORT_SYMBOL vmlinux 0x427f241b fman_unregister_intr +EXPORT_SYMBOL vmlinux 0x428a3131 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x428d304f tcp_poll +EXPORT_SYMBOL vmlinux 0x42a1ebf8 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x42ab2132 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x42afe267 scsi_print_command +EXPORT_SYMBOL vmlinux 0x42b9c76e ip_do_fragment +EXPORT_SYMBOL vmlinux 0x42bed8d4 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x42c56427 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x42cda6c7 key_invalidate +EXPORT_SYMBOL vmlinux 0x42db2d3a tcp_time_wait +EXPORT_SYMBOL vmlinux 0x42ee3459 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x42fc36c1 d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43102f0b config_item_get +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x4326a942 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x43369d8a pci_bus_claim_resources +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 0x435f1c6f skb_copy_bits +EXPORT_SYMBOL vmlinux 0x4375c375 posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x438463c2 scsi_print_result +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x4398a858 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x43b0c9c3 preempt_schedule +EXPORT_SYMBOL vmlinux 0x43b122c4 finish_open +EXPORT_SYMBOL vmlinux 0x43b2060f blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x43b60c3e xp_dma_map +EXPORT_SYMBOL vmlinux 0x43bf278a pci_find_resource +EXPORT_SYMBOL vmlinux 0x43c42e89 tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43eab7d3 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x4403bbd0 imx_sc_misc_set_control +EXPORT_SYMBOL vmlinux 0x44171124 mmc_erase +EXPORT_SYMBOL vmlinux 0x441eb5b8 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x44389efe blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x44605891 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x4467501a of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x446c859b msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x44813635 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44a99ebd ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x44dca2fb from_kprojid +EXPORT_SYMBOL vmlinux 0x44e29732 request_key_rcu +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44fc0eac mdio_driver_register +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 0x451a182a max8925_reg_write +EXPORT_SYMBOL vmlinux 0x452413a1 qman_alloc_pool_range +EXPORT_SYMBOL vmlinux 0x45251b1b mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x452eb769 input_open_device +EXPORT_SYMBOL vmlinux 0x452fcaf2 single_open_size +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453ee029 phy_get_pause +EXPORT_SYMBOL vmlinux 0x454254d5 md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x45535485 xxh32_update +EXPORT_SYMBOL vmlinux 0x45743d5a crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4579c180 is_nd_pfn +EXPORT_SYMBOL vmlinux 0x45833e7f __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x45a7ebe9 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x45ca81b9 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x45d9dc07 flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x45dcb756 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x45f2729f tcf_exts_change +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x462de559 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x46451cee zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x46573dd0 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x465882a7 sock_release +EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467df16d netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x468cb1a7 pci_enable_device +EXPORT_SYMBOL vmlinux 0x4698fe8a bman_release +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46c6d2c4 begin_new_exec +EXPORT_SYMBOL vmlinux 0x46ca6026 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x46d79647 page_mapping +EXPORT_SYMBOL vmlinux 0x46d96e31 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x46dd7bf6 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x46e8e392 pci_iomap +EXPORT_SYMBOL vmlinux 0x46f282a7 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x46f455a6 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x46f8760b input_grab_device +EXPORT_SYMBOL vmlinux 0x46ff7d12 qcom_scm_iommu_secure_ptbl_size +EXPORT_SYMBOL vmlinux 0x46ffd8f7 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x470612dc fman_port_get_qman_channel_id +EXPORT_SYMBOL vmlinux 0x47065c73 cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x4706c1a6 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x4715a909 acpi_load_table +EXPORT_SYMBOL vmlinux 0x47178483 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x471c6c21 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x472b3c7a __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x472bdecd posix_lock_file +EXPORT_SYMBOL vmlinux 0x472d2a4d bdi_alloc +EXPORT_SYMBOL vmlinux 0x473ed8fb napi_disable +EXPORT_SYMBOL vmlinux 0x475d7427 fman_get_rx_extra_headroom +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x4773ac50 sock_bind_add +EXPORT_SYMBOL vmlinux 0x4779e4f9 param_set_ullong +EXPORT_SYMBOL vmlinux 0x477bf964 fasync_helper +EXPORT_SYMBOL vmlinux 0x478c70a3 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x479137ca imx_scu_irq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x47960bc4 proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47c11b92 napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47c99070 dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x47cfd825 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x47d8d301 __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x47dadfd9 node_data +EXPORT_SYMBOL vmlinux 0x4805dc5e i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x48112d76 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x48148b97 module_refcount +EXPORT_SYMBOL vmlinux 0x481590bd devm_ioremap_np +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481f766f vme_lm_request +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x4837bb10 logic_outsb +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x484322e2 pci_release_selected_regions +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 0x4870d839 validate_slab_cache +EXPORT_SYMBOL vmlinux 0x4875b49f km_state_expired +EXPORT_SYMBOL vmlinux 0x4888f690 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x488a636a rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0x488c0fc1 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x48958279 fman_port_get_device +EXPORT_SYMBOL vmlinux 0x489712a9 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x4898f2d0 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x489eda10 memset32 +EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48aead0a sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48bedf65 first_ec +EXPORT_SYMBOL vmlinux 0x48c093fb _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x48c9c7a5 d_move +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48e22a8c dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x48f5b64e vme_irq_handler +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49185358 dev_get_stats +EXPORT_SYMBOL vmlinux 0x491ad6a4 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x491f1c61 tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0x493e93f4 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x494b6104 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x494d9032 of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x494ed3ea block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x4967e79f radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x4974fb41 devm_of_clk_del_provider +EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x49ac38db netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49b7e400 pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x49cf699f __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x49f8fecf d_alloc_name +EXPORT_SYMBOL vmlinux 0x4a2906ff dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x4a3ad70e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x4a53db72 ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x4a59c497 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x4a5bf67c blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x4a65d039 amba_driver_register +EXPORT_SYMBOL vmlinux 0x4a77c71e scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x4a8728f5 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x4a8a1f67 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x4a93576a ucc_fast_free +EXPORT_SYMBOL vmlinux 0x4a94cdcf clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4a9b7f43 of_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x4a9d22cd vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x4aa76eb9 genl_notify +EXPORT_SYMBOL vmlinux 0x4abfd599 dev_set_threaded +EXPORT_SYMBOL vmlinux 0x4ac3047b inet_sendpage +EXPORT_SYMBOL vmlinux 0x4acafe78 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x4aea463f crc32_le_shift +EXPORT_SYMBOL vmlinux 0x4aeb74ba xsk_tx_release +EXPORT_SYMBOL vmlinux 0x4af6a930 block_commit_write +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4af856aa mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x4afb2238 add_wait_queue +EXPORT_SYMBOL vmlinux 0x4b011367 neigh_table_init +EXPORT_SYMBOL vmlinux 0x4b0a3f52 gic_nonsecure_priorities +EXPORT_SYMBOL vmlinux 0x4b0ebfcf cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x4b16eedb devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x4b1820f2 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4b468f33 devm_memunmap +EXPORT_SYMBOL vmlinux 0x4b4a0cfb uart_update_timeout +EXPORT_SYMBOL vmlinux 0x4b5da316 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6df007 acpi_evaluate_reg +EXPORT_SYMBOL vmlinux 0x4b750f53 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x4b855fd0 iterate_fd +EXPORT_SYMBOL vmlinux 0x4bb2c341 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x4bc43a38 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x4bcc2662 mempool_init_node +EXPORT_SYMBOL vmlinux 0x4be080fc pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x4bee39d1 inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bf3ce6f qman_release_cgrid +EXPORT_SYMBOL vmlinux 0x4bf51d96 copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x4c07a7e0 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x4c134348 blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x4c14e782 vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c455bbe jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x4c5f0fb1 phy_modify_paged +EXPORT_SYMBOL vmlinux 0x4c5f66bc register_fib_notifier +EXPORT_SYMBOL vmlinux 0x4c77c323 filp_close +EXPORT_SYMBOL vmlinux 0x4c820620 of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x4c8f42d6 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x4c966f69 unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x4c99e951 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x4cad8022 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x4cb24a7d of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d0fe61e md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x4d123d6e key_type_keyring +EXPORT_SYMBOL vmlinux 0x4d1388d9 iproc_msi_init +EXPORT_SYMBOL vmlinux 0x4d2c7133 acpi_info +EXPORT_SYMBOL vmlinux 0x4d39549e padata_free +EXPORT_SYMBOL vmlinux 0x4d39f7a1 inet_frags_init +EXPORT_SYMBOL vmlinux 0x4d4ca5e1 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x4d65cbd5 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x4d760908 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x4d80a4a4 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x4d8e7163 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x4d924f20 memremap +EXPORT_SYMBOL vmlinux 0x4d958f34 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x4d963c3a netpoll_print_options +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da596e6 qman_retire_fq +EXPORT_SYMBOL vmlinux 0x4dca08ee sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x4de3df9f tcp_sendpage +EXPORT_SYMBOL vmlinux 0x4de446e0 bio_add_page +EXPORT_SYMBOL vmlinux 0x4de995ec gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x4df02057 crc32_be +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4df5a22d _copy_to_iter +EXPORT_SYMBOL vmlinux 0x4dfa8d4b mutex_lock +EXPORT_SYMBOL vmlinux 0x4e099d0f cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x4e0a55f6 seq_release +EXPORT_SYMBOL vmlinux 0x4e118e81 __mdiobus_read +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 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e4b399f simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x4e4f0f16 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x4e547048 __kmalloc_node_track_caller +EXPORT_SYMBOL vmlinux 0x4e57dde6 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6aef8e invalidate_disk +EXPORT_SYMBOL vmlinux 0x4e6e4b41 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e943523 phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x4e9ff255 param_ops_bint +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eaa1096 posix_test_lock +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4eb615de rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x4eb7c4a4 kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x4f073e4f key_link +EXPORT_SYMBOL vmlinux 0x4f18c7ae nd_device_register +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f34895d config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x4f47261d mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0x4f55166f acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x4f664036 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x4f709989 security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x4f7687e0 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4f92ce0d kernel_accept +EXPORT_SYMBOL vmlinux 0x4f9f6bee ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x4fa73d88 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x4fad3dbc mdio_bus_type +EXPORT_SYMBOL vmlinux 0x4fc76f83 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x4fccfe3b devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x4fd136b4 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x4fd4a9b0 pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x4fdda9a5 stop_tty +EXPORT_SYMBOL vmlinux 0x4feade9c __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x5002eefb scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x50094170 flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x5021bd81 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5027bde2 acpi_acquire_mutex +EXPORT_SYMBOL vmlinux 0x5040de04 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x505fd329 jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506b1109 devm_register_netdev +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x50713517 xfrm_state_free +EXPORT_SYMBOL vmlinux 0x507cebc3 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0x507e2c11 devm_release_resource +EXPORT_SYMBOL vmlinux 0x50808342 filemap_map_pages +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x508ff739 __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x5092e84e __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a2665e neigh_seq_next +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50ae3672 locks_free_lock +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50c38015 mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x50c79cf5 iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x50cf7585 hex2bin +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d71d7a regset_get_alloc +EXPORT_SYMBOL vmlinux 0x50e66f69 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x50f85302 __arm_smccc_hvc +EXPORT_SYMBOL vmlinux 0x50f91491 __genradix_ptr +EXPORT_SYMBOL vmlinux 0x5102a30b do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x5107b391 __f_setown +EXPORT_SYMBOL vmlinux 0x5138d5dc fman_get_mem_region +EXPORT_SYMBOL vmlinux 0x515083bf acpi_release_mutex +EXPORT_SYMBOL vmlinux 0x515f520b qman_portal_get_iperiod +EXPORT_SYMBOL vmlinux 0x5162a423 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x518da0d9 __devm_request_region +EXPORT_SYMBOL vmlinux 0x519b1c50 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x51a4ccca is_nd_dax +EXPORT_SYMBOL vmlinux 0x51a511eb _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51ed72a6 xen_free_unpopulated_pages +EXPORT_SYMBOL vmlinux 0x51fff459 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x5203d176 cmd_db_ready +EXPORT_SYMBOL vmlinux 0x52180ffa seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x523175f3 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x52319e1a serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x52342ef2 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x5239b59a fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x5252e0e1 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x525328fd rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0x525c9852 pci_request_region +EXPORT_SYMBOL vmlinux 0x526dbca7 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x526eef2c hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5274b61e dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x5295ce98 sk_capable +EXPORT_SYMBOL vmlinux 0x52960fb4 nd_pfn_probe +EXPORT_SYMBOL vmlinux 0x52983a4f vme_master_write +EXPORT_SYMBOL vmlinux 0x52997b74 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x52a2aedf __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52dcb85b __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x52e7268f netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x52ec889c textsearch_destroy +EXPORT_SYMBOL vmlinux 0x52ecbc75 crc_ccitt +EXPORT_SYMBOL vmlinux 0x52f2850a imx_sc_pm_cpu_start +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530e7e22 tty_name +EXPORT_SYMBOL vmlinux 0x53126ecc __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x531c64af mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x5323797f dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x533d0432 io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x533ee7c8 mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x5352995b ppp_input_error +EXPORT_SYMBOL vmlinux 0x535f531e copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x53626c81 __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0x5368cc8d qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x5370c156 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x53ab92a4 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x53aee915 of_chosen +EXPORT_SYMBOL vmlinux 0x53b8d5cb input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x53b954a2 up_read +EXPORT_SYMBOL vmlinux 0x53bcf0ed devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x53d57a7c mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x53dbb7c3 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x53de46a4 reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x53eed79f __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x53eff192 tegra_ivc_align +EXPORT_SYMBOL vmlinux 0x53f8ced7 page_pool_ethtool_stats_get_strings +EXPORT_SYMBOL vmlinux 0x5402971d iget5_locked +EXPORT_SYMBOL vmlinux 0x5402da9f xudma_navss_psil_pair +EXPORT_SYMBOL vmlinux 0x54071f5b block_write_begin +EXPORT_SYMBOL vmlinux 0x541b7a19 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x541b9f97 simple_get_link +EXPORT_SYMBOL vmlinux 0x542b2a84 xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x5435145a netdev_update_features +EXPORT_SYMBOL vmlinux 0x5438b04e flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x548137ce pci_release_resource +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54c70eb7 dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0x54d39d8f uart_register_driver +EXPORT_SYMBOL vmlinux 0x54ddf05d param_get_ullong +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ea6dfe xen_start_flags +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x5508f28d bman_acquire +EXPORT_SYMBOL vmlinux 0x55187ecb flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5523ab88 twl6040_power +EXPORT_SYMBOL vmlinux 0x55268096 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x552db3aa qman_query_cgr_congested +EXPORT_SYMBOL vmlinux 0x553b1429 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x555168aa sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x5561c843 dev_mc_add +EXPORT_SYMBOL vmlinux 0x5563abb0 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x556b5d62 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x557c72be __SetPageMovable +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x55aaa4dd dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55e61b53 security_unix_may_send +EXPORT_SYMBOL vmlinux 0x56098c5f d_instantiate_new +EXPORT_SYMBOL vmlinux 0x5609e7cb dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x5614f48a qman_dqrr_get_ithresh +EXPORT_SYMBOL vmlinux 0x5621717d iptun_encaps +EXPORT_SYMBOL vmlinux 0x562bef3f ata_print_version +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x564642f9 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x56470118 __warn_printk +EXPORT_SYMBOL vmlinux 0x564a78b9 clear_nlink +EXPORT_SYMBOL vmlinux 0x564f7608 acpi_reconfig_notifier_register +EXPORT_SYMBOL vmlinux 0x565740b2 hmm_range_fault +EXPORT_SYMBOL vmlinux 0x565a38bc pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0x566aab64 vfs_fsync +EXPORT_SYMBOL vmlinux 0x566ce419 submit_bio +EXPORT_SYMBOL vmlinux 0x566f7ccf ps2_end_command +EXPORT_SYMBOL vmlinux 0x56703011 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x5674f710 tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x5675373e padata_free_shell +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x5682511d simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x56ab6b8a fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0x56b5693d acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x56c08a2e secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x56c3db64 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x56c4df3c __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56eddfab vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x56f98ffd sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x572dec74 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x5730aacf put_fs_context +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x5754e00a __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577c5d46 __icmp_send +EXPORT_SYMBOL vmlinux 0x57900416 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x57901542 __quota_error +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x579b21d8 fs_param_is_string +EXPORT_SYMBOL vmlinux 0x57a3243e path_get +EXPORT_SYMBOL vmlinux 0x57a37c2e ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x57b03d40 phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0x57bc19d2 down_write +EXPORT_SYMBOL vmlinux 0x57db8fd6 utf8_normalize +EXPORT_SYMBOL vmlinux 0x57f38cdc qe_get_firmware_info +EXPORT_SYMBOL vmlinux 0x57fc2d6b write_cache_pages +EXPORT_SYMBOL vmlinux 0x58159b63 pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x582606eb xudma_rflow_put +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x585ae877 nmi_panic +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587b892e qe_get_num_of_risc +EXPORT_SYMBOL vmlinux 0x587f22d7 devmap_managed_key +EXPORT_SYMBOL vmlinux 0x588333a9 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x588e0c9b fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b16d5b cdev_alloc +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58b9ef91 __kfree_skb +EXPORT_SYMBOL vmlinux 0x58bb2009 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x58dbfb50 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58e91bb5 input_get_keycode +EXPORT_SYMBOL vmlinux 0x58ea2d20 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x58eae27c in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x58ece113 rproc_shutdown +EXPORT_SYMBOL vmlinux 0x58fa4c40 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x5916f476 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x59250cbe param_set_uint +EXPORT_SYMBOL vmlinux 0x5934b5a9 qman_destroy_fq +EXPORT_SYMBOL vmlinux 0x593a3521 copy_string_kernel +EXPORT_SYMBOL vmlinux 0x5953acc7 cdrom_open +EXPORT_SYMBOL vmlinux 0x595d8002 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x59697829 lock_rename +EXPORT_SYMBOL vmlinux 0x5974c8e1 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x599b4888 qe_setbrg +EXPORT_SYMBOL vmlinux 0x599cf14a request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x599fb41c kvmalloc_node +EXPORT_SYMBOL vmlinux 0x59a2f0ee packing +EXPORT_SYMBOL vmlinux 0x59b0e234 inet_sk_set_state +EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x59bebaa7 phy_config_aneg +EXPORT_SYMBOL vmlinux 0x59c2d56e uart_match_port +EXPORT_SYMBOL vmlinux 0x59c7281f jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x59caad40 vfs_getattr +EXPORT_SYMBOL vmlinux 0x59d6a3a0 pcim_iomap +EXPORT_SYMBOL vmlinux 0x59dfc19b xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x59e96438 file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x59f90cb6 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a164f55 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x5a290250 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5a2b7937 dump_skip +EXPORT_SYMBOL vmlinux 0x5a413dfe jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0x5a44f8cb __crypto_memneq +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a54711f super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x5a60b950 qm_channel_pool1 +EXPORT_SYMBOL vmlinux 0x5a67eaa3 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x5a6ffaab mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5aa03b83 sk_stream_error +EXPORT_SYMBOL vmlinux 0x5aa17b08 md_bitmap_free +EXPORT_SYMBOL vmlinux 0x5aa35508 _dev_notice +EXPORT_SYMBOL vmlinux 0x5ab38f43 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x5ab44e30 finalize_exec +EXPORT_SYMBOL vmlinux 0x5abc163e mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x5ac5c874 ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0x5ac6f387 vfs_setpos +EXPORT_SYMBOL vmlinux 0x5ac8433a configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0x5ad49b5c rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x5ad99771 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5ae7f012 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x5aee1f9f folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x5b085278 kern_path_create +EXPORT_SYMBOL vmlinux 0x5b2f27fb do_wait_intr +EXPORT_SYMBOL vmlinux 0x5b3e282f xa_store +EXPORT_SYMBOL vmlinux 0x5b51425f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x5b54903b qcom_scm_pas_mem_setup +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b5aa19b xfrm_lookup +EXPORT_SYMBOL vmlinux 0x5b6e5c05 keyring_search +EXPORT_SYMBOL vmlinux 0x5b762c07 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x5bcc2e1c hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x5bd16ddb sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5c14b6d4 sk_alloc +EXPORT_SYMBOL vmlinux 0x5c26a53b wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c4eaf2d rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x5c55ad02 generic_write_checks_count +EXPORT_SYMBOL vmlinux 0x5c74c27e nobh_write_end +EXPORT_SYMBOL vmlinux 0x5c78786d eth_mac_addr +EXPORT_SYMBOL vmlinux 0x5c7d8e54 dev_add_pack +EXPORT_SYMBOL vmlinux 0x5c88527a __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x5c8a4e84 request_firmware +EXPORT_SYMBOL vmlinux 0x5cb72019 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x5cbc13e7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x5cc6fb0d vga_client_register +EXPORT_SYMBOL vmlinux 0x5cc88c35 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x5ce7ba89 rw_verify_area +EXPORT_SYMBOL vmlinux 0x5cee97fe nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0x5ceea07c param_ops_byte +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cfb26a0 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x5d08e784 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x5d0a3a23 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0x5d112304 __memcpy_fromio +EXPORT_SYMBOL vmlinux 0x5d1cc24f kernel_getpeername +EXPORT_SYMBOL vmlinux 0x5d24409e dm_kobject_release +EXPORT_SYMBOL vmlinux 0x5d347919 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x5d3a4ef6 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x5d45ae48 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d677f80 path_put +EXPORT_SYMBOL vmlinux 0x5d7e465e tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0x5d7f1648 xudma_get_device +EXPORT_SYMBOL vmlinux 0x5d8b5704 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5d8f2fde phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x5d90e49c of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x5dac4cd6 qman_dqrr_set_ithresh +EXPORT_SYMBOL vmlinux 0x5dc49e41 xp_can_alloc +EXPORT_SYMBOL vmlinux 0x5dd06267 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x5dd0f8db bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x5ddfc62e secpath_set +EXPORT_SYMBOL vmlinux 0x5decfc27 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x5e06bc5c refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e127f4e km_state_notify +EXPORT_SYMBOL vmlinux 0x5e14586b __sock_create +EXPORT_SYMBOL vmlinux 0x5e14eaf1 mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x5e28fbb3 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x5e3240a0 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x5e332b52 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e3ac263 serio_reconnect +EXPORT_SYMBOL vmlinux 0x5e464a1c ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x5e4b3b36 seq_putc +EXPORT_SYMBOL vmlinux 0x5e50f6d3 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5e54a6c5 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x5e61ab45 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x5e6f91f9 tegra_powergate_remove_clamping +EXPORT_SYMBOL vmlinux 0x5e855e56 gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x5e92534f generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9a01ce gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5ea878f1 __pagevec_release +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb27a84 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x5ec01121 phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0x5ec30877 flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ec69aa4 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5ecc279c jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed60c63 of_xudma_dev_get +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5eee52f6 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x5ef6a672 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x5efdd68b __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x5efde8e6 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5eff11ec md_reload_sb +EXPORT_SYMBOL vmlinux 0x5f015a3b phy_validate_pause +EXPORT_SYMBOL vmlinux 0x5f02ff5f locks_init_lock +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0b50be skb_queue_head +EXPORT_SYMBOL vmlinux 0x5f1bad74 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x5f1f58ec pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5f26d39e __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x5f28d4d2 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x5f2a8642 touch_atime +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f6b889c rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x5f7a80d2 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x5f8b424d mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x5f8b7ee2 rpmh_write +EXPORT_SYMBOL vmlinux 0x5f8c245a inode_init_once +EXPORT_SYMBOL vmlinux 0x5f93525c acpi_extract_package +EXPORT_SYMBOL vmlinux 0x5fc72f0e alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fed178c meson_sm_call +EXPORT_SYMBOL vmlinux 0x5ff9eb0e lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x5fff0cf6 seq_bprintf +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6008689f kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60208215 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x605576ea reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x605705f7 iget_failed +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x6086f2df nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x608741b5 __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x60897263 simple_lookup +EXPORT_SYMBOL vmlinux 0x608d0267 zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x6090b209 register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a2579d mmc_get_card +EXPORT_SYMBOL vmlinux 0x60aad041 fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x60aaeb4b qman_p_irqsource_add +EXPORT_SYMBOL vmlinux 0x60b3071f neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x60f6ac8b phy_write_mmd +EXPORT_SYMBOL vmlinux 0x61073e4a acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0x61156d3c xp_free +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614774e5 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x6153ef88 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x6155f5bd inode_insert5 +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x615f839f kset_register +EXPORT_SYMBOL vmlinux 0x616c7fe3 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x61774aa9 jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x617c452b queued_read_lock_slowpath +EXPORT_SYMBOL vmlinux 0x617d3c3b __skb_warn_lro_forwarding +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 0x61acc28b submit_bh +EXPORT_SYMBOL vmlinux 0x61b1131a mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b9edee tcf_classify +EXPORT_SYMBOL vmlinux 0x61c56d02 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x61d8b3b5 flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x61e13eb9 pci_save_state +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61ec262e ppp_input +EXPORT_SYMBOL vmlinux 0x61f763df filemap_check_errors +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621e3660 dev_printk_emit +EXPORT_SYMBOL vmlinux 0x62211362 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x622853a5 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623115ed scsi_scan_host +EXPORT_SYMBOL vmlinux 0x62629717 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627cc53f scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x628487c0 pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x629079b3 dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x62941353 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x62949074 acpi_buffer_to_resource +EXPORT_SYMBOL vmlinux 0x62ac34fd mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x62ba3c50 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x62ca20a5 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x62cc5193 blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x62d96443 qman_dma_portal +EXPORT_SYMBOL vmlinux 0x62e89e02 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0x62f7e207 down_read_killable +EXPORT_SYMBOL vmlinux 0x6313fb86 filemap_flush +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63187844 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x63262e15 tegra_ivc_read_advance +EXPORT_SYMBOL vmlinux 0x633c31d2 __bio_advance +EXPORT_SYMBOL vmlinux 0x634129dd __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63ad16d4 bmap +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63d46510 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x63d71c25 of_node_name_prefix +EXPORT_SYMBOL vmlinux 0x63d74281 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fba2b9 mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x640563e6 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x6415d56b alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x641c4ea6 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x642eb5c6 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x642ef07c flush_dcache_folio +EXPORT_SYMBOL vmlinux 0x6432cde6 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x64380f53 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x64395529 tegra_dfll_runtime_resume +EXPORT_SYMBOL vmlinux 0x643bf1e1 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x643f3068 __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x644780ee fget +EXPORT_SYMBOL vmlinux 0x644be12c qman_affine_cpus +EXPORT_SYMBOL vmlinux 0x6456bf77 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x647642e9 param_get_byte +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x64988255 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64cb110e bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x64cbe4b1 key_put +EXPORT_SYMBOL vmlinux 0x64e0e666 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x64fbf71e vfs_create_mount +EXPORT_SYMBOL vmlinux 0x65024523 vfs_link +EXPORT_SYMBOL vmlinux 0x650b02c7 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x650ea9ea mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x6510c975 mr_dump +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651f4ae7 of_clk_get +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x6527447e input_inject_event +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x652f8ec5 param_ops_short +EXPORT_SYMBOL vmlinux 0x653f2563 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65409818 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x654449c3 memset16 +EXPORT_SYMBOL vmlinux 0x655eb3b1 qman_start_using_portal +EXPORT_SYMBOL vmlinux 0x65626134 sock_from_file +EXPORT_SYMBOL vmlinux 0x656b48c9 pci_read_config_word +EXPORT_SYMBOL vmlinux 0x656c1a0e string_escape_mem +EXPORT_SYMBOL vmlinux 0x656e4a6e snprintf +EXPORT_SYMBOL vmlinux 0x6572e5a4 dev_mc_del +EXPORT_SYMBOL vmlinux 0x6574a7f5 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x6584c3ba of_get_property +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x65a3d62b tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x65cf222e mount_nodev +EXPORT_SYMBOL vmlinux 0x65d1bab2 acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65da6ffb dm_table_get_md +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x66021e72 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x660bd67d jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x661bc244 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6626afca down +EXPORT_SYMBOL vmlinux 0x66284e6c of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x662b59a0 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x66475574 dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x664b1e29 qman_delete_cgr +EXPORT_SYMBOL vmlinux 0x664b9799 seq_release_private +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x666863dc par_io_config_pin +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x6676b8c8 seq_open +EXPORT_SYMBOL vmlinux 0x66826f5a xudma_get_ringacc +EXPORT_SYMBOL vmlinux 0x668b19a1 down_read +EXPORT_SYMBOL vmlinux 0x66983917 migrate_vma_finalize +EXPORT_SYMBOL vmlinux 0x66af1fd1 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x66b38c5e skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x66b4cc41 kmemdup +EXPORT_SYMBOL vmlinux 0x66b5361b register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x66bdd548 inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0x66d85a40 close_fd_get_file +EXPORT_SYMBOL vmlinux 0x66df79fa param_get_bool +EXPORT_SYMBOL vmlinux 0x66ea624f set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x66eb1886 mmc_free_host +EXPORT_SYMBOL vmlinux 0x670353ae iproc_msi_exit +EXPORT_SYMBOL vmlinux 0x670bef7f skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0x6721fc7c security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x67324ebe netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x67412d2f ucc_slow_enable +EXPORT_SYMBOL vmlinux 0x674445eb filemap_release_folio +EXPORT_SYMBOL vmlinux 0x674748f2 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x6754decc neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6769ff5c of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x676bfef7 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x67808294 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x678b9c57 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x6797fa60 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x679db770 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0x67ac3b05 kern_unmount +EXPORT_SYMBOL vmlinux 0x67ac4d4c skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b653d9 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b7b2ab dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0x67bedc7f sock_setsockopt +EXPORT_SYMBOL vmlinux 0x67c13ea0 acpi_read +EXPORT_SYMBOL vmlinux 0x67c2fc4d tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x67da81d4 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x68139201 request_key_tag +EXPORT_SYMBOL vmlinux 0x6814ec41 mmput_async +EXPORT_SYMBOL vmlinux 0x681a6815 nd_device_unregister +EXPORT_SYMBOL vmlinux 0x68275840 sg_miter_skip +EXPORT_SYMBOL vmlinux 0x682c14d5 fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x68338805 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x683f9e6f thaw_bdev +EXPORT_SYMBOL vmlinux 0x68527da1 ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x688eccf7 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x69049cd2 radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x69123a9d __skb_checksum +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6920abe6 pin_user_pages +EXPORT_SYMBOL vmlinux 0x692618dc xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x69585523 __ksize +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x69733160 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x6978de88 tegra_ivc_notified +EXPORT_SYMBOL vmlinux 0x697ed5f0 memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x698ea359 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x698f448d vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x69a74d7d simple_release_fs +EXPORT_SYMBOL vmlinux 0x69b32b01 devm_free_irq +EXPORT_SYMBOL vmlinux 0x69c49b8b inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x69d53cbc posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x69dd3b5b crc32_le +EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window +EXPORT_SYMBOL vmlinux 0x69e1c9b1 mdio_device_free +EXPORT_SYMBOL vmlinux 0x69ff7ec3 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x6a03751f sgl_free_order +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a16ed7d mark_info_dirty +EXPORT_SYMBOL vmlinux 0x6a19d26d find_inode_rcu +EXPORT_SYMBOL vmlinux 0x6a1ab847 fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x6a3766b2 qman_delete_cgr_safe +EXPORT_SYMBOL vmlinux 0x6a41194b skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x6a449c4f register_sysctl_table +EXPORT_SYMBOL vmlinux 0x6a4c594e tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x6a4eeabb dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x6a5af7c8 d_drop +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a641841 devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a6f6537 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x6a76a457 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x6a87c6a1 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x6a8fecfc i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x6a90663a qman_schedule_fq +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ade796f copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x6ae5c9c1 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6b10ac8d simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x6b27729b radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b386f16 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x6b485c3f md_write_start +EXPORT_SYMBOL vmlinux 0x6b4b2933 __ioremap +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b5b79c5 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x6b6cabae __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x6b71e97b kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x6b83b63b skb_seq_read +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6b9925ec rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x6b99e931 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x6bbcd6c0 forget_cached_acl +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcb9e7a generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x6bcce85f kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x6bce8179 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x6bd0e573 down_interruptible +EXPORT_SYMBOL vmlinux 0x6bd20f9f pid_task +EXPORT_SYMBOL vmlinux 0x6be1c1f8 acpi_install_method +EXPORT_SYMBOL vmlinux 0x6be7c3b4 serio_interrupt +EXPORT_SYMBOL vmlinux 0x6bf181c1 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6c0ea0fb tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x6c1bf644 input_release_device +EXPORT_SYMBOL vmlinux 0x6c224cda gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c28a679 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x6c2c7aff mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x6c2d44d9 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x6c2fb83a sock_i_uid +EXPORT_SYMBOL vmlinux 0x6c3014a0 rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x6c408fe7 trace_event_printf +EXPORT_SYMBOL vmlinux 0x6c533db9 tcp_close +EXPORT_SYMBOL vmlinux 0x6c58e173 md_done_sync +EXPORT_SYMBOL vmlinux 0x6c5dae23 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6c60657b of_match_node +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c666cc8 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x6c782d9a mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x6c7a0323 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6c8a4254 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x6c8b098a __mdiobus_write +EXPORT_SYMBOL vmlinux 0x6ca31bb5 scsi_add_device +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cbbfc54 __arch_copy_to_user +EXPORT_SYMBOL vmlinux 0x6cd2480a of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x6cf0d67d qe_get_num_of_snums +EXPORT_SYMBOL vmlinux 0x6d103aef skb_pull_data +EXPORT_SYMBOL vmlinux 0x6d16c104 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x6d1922f6 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x6d2572fb filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2b824f of_get_next_child +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d4da611 is_bad_inode +EXPORT_SYMBOL vmlinux 0x6d4ea871 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x6d5a3ad1 ram_aops +EXPORT_SYMBOL vmlinux 0x6d5f5b91 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x6d6426e9 skb_expand_head +EXPORT_SYMBOL vmlinux 0x6d73c95f logic_outw +EXPORT_SYMBOL vmlinux 0x6d74381c of_translate_address +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d7e9575 of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x6d8f54a4 netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x6da467cb pfn_is_map_memory +EXPORT_SYMBOL vmlinux 0x6db2b803 __udp_disconnect +EXPORT_SYMBOL vmlinux 0x6db36d39 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dbeab3a xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0x6dc35b25 radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0x6dcd1ef8 skb_clone_sk +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6dd17e7b acpi_get_table_header +EXPORT_SYMBOL vmlinux 0x6de61886 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x6dec81df xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x6def638e xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x6df0751f mmc_register_driver +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df67973 fs_bio_set +EXPORT_SYMBOL vmlinux 0x6e0d4cea _dev_warn +EXPORT_SYMBOL vmlinux 0x6e137f5f clear_inode +EXPORT_SYMBOL vmlinux 0x6e481b32 udp_seq_next +EXPORT_SYMBOL vmlinux 0x6e5b8651 xz_dec_run +EXPORT_SYMBOL vmlinux 0x6e6e5ee1 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e846c86 dentry_open +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6eac3eeb ip6_frag_init +EXPORT_SYMBOL vmlinux 0x6ebc16e9 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x6edad010 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x6ef9e82d ip_local_deliver +EXPORT_SYMBOL vmlinux 0x6f2d7e52 netif_skb_features +EXPORT_SYMBOL vmlinux 0x6f3d1d8c ipv4_specific +EXPORT_SYMBOL vmlinux 0x6f41a428 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x6f4a59e4 sort_r +EXPORT_SYMBOL vmlinux 0x6f4c83bd inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x6f4e8fce devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x6f5ab52f acpi_get_local_address +EXPORT_SYMBOL vmlinux 0x6f667aec jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x6f69aec7 devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x6f8337a9 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f915a45 dqstats +EXPORT_SYMBOL vmlinux 0x6f93751a proc_set_user +EXPORT_SYMBOL vmlinux 0x6fa68596 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x6fa86ee4 mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x6fb09239 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x6fbc6a00 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x6fc48021 dynamic_cond_resched +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd55641 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x6fd97863 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fda4caf devfreq_update_status +EXPORT_SYMBOL vmlinux 0x6fe55383 mdiobb_write +EXPORT_SYMBOL vmlinux 0x6ff3a485 dynamic_might_resched +EXPORT_SYMBOL vmlinux 0x6fff261f __arch_clear_user +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x7025db20 dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen +EXPORT_SYMBOL vmlinux 0x703d89e3 setattr_prepare +EXPORT_SYMBOL vmlinux 0x705f61e6 tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x7074d591 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7076b910 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x707d93c4 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x7097bad7 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x70ab7fac vme_irq_generate +EXPORT_SYMBOL vmlinux 0x70ad75fb radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x70cab952 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x70d1a18e qman_release_pool +EXPORT_SYMBOL vmlinux 0x70d4bec8 netdev_warn +EXPORT_SYMBOL vmlinux 0x70d91e3c flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x70da63cd dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x70dfe054 get_tree_keyed +EXPORT_SYMBOL vmlinux 0x70e1ecaf tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x70f7ed30 param_set_byte +EXPORT_SYMBOL vmlinux 0x7124713e free_buffer_head +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7136580d jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7141b88a logic_insb +EXPORT_SYMBOL vmlinux 0x7143717f ip_frag_next +EXPORT_SYMBOL vmlinux 0x7147ec1a tso_count_descs +EXPORT_SYMBOL vmlinux 0x71501c32 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x715bcbbe security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x71694537 tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718cbe12 filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0x71a26ed3 blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x71a48d47 of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71ad8ea1 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x71b226ad mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0x71b89a9a generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x71cc4404 tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x71da8830 devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x71dc3d6d inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x71dc65bb netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x71dfc095 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x71fb5072 __nla_reserve +EXPORT_SYMBOL vmlinux 0x7207520f __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x720ba67c pps_unregister_source +EXPORT_SYMBOL vmlinux 0x7214ff74 phy_device_create +EXPORT_SYMBOL vmlinux 0x721b407c tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x721cc8bd jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0x7225641d netdev_notice +EXPORT_SYMBOL vmlinux 0x722b5838 qdisc_put +EXPORT_SYMBOL vmlinux 0x7245b063 from_kuid +EXPORT_SYMBOL vmlinux 0x724b0457 inet6_offloads +EXPORT_SYMBOL vmlinux 0x725462cb sock_kfree_s +EXPORT_SYMBOL vmlinux 0x725cdb22 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x726bc3c7 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x726e9bf5 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x72812017 I_BDEV +EXPORT_SYMBOL vmlinux 0x7282bf74 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x72920677 tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x72941bd2 inet_ioctl +EXPORT_SYMBOL vmlinux 0x72a50966 ucc_fast_disable +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72bb14e6 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x72bc39a8 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x72cb2c3d mii_link_ok +EXPORT_SYMBOL vmlinux 0x72dd453c __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f14ff7 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x72f28a81 sock_create_lite +EXPORT_SYMBOL vmlinux 0x73016369 start_tty +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 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x7330b6a2 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x73450d57 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0x73493486 tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x735e6a81 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x73998efa cpm_muram_free_addr +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73ac7bf3 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x73ef4d42 devfreq_update_target +EXPORT_SYMBOL vmlinux 0x740c4181 ll_rw_block +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x7410f3eb unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x7412ed5b kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x74130888 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x7417843d napi_enable +EXPORT_SYMBOL vmlinux 0x7418e1a1 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x74217703 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x74304294 sock_gettstamp +EXPORT_SYMBOL vmlinux 0x743f4126 keygen_port_hashing_init +EXPORT_SYMBOL vmlinux 0x74449b3d input_set_abs_params +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x745f0687 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x7469c0c7 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x749f772a vfs_mkobj +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f272e7 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x7506ea72 path_is_under +EXPORT_SYMBOL vmlinux 0x750a00b6 netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x75312779 pci_bus_type +EXPORT_SYMBOL vmlinux 0x754d0b67 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x7551dd7b ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x755b78c6 meson_sm_call_write +EXPORT_SYMBOL vmlinux 0x755f4ba3 blake2s_compress_generic +EXPORT_SYMBOL vmlinux 0x7572efef eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x75abdb3c load_nls_default +EXPORT_SYMBOL vmlinux 0x75b12b06 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x75b15392 rt6_lookup +EXPORT_SYMBOL vmlinux 0x75ba649e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75c94b47 rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x75d08e8f blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x75f68504 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x76094f2f fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired +EXPORT_SYMBOL vmlinux 0x76291a32 flow_rule_alloc +EXPORT_SYMBOL vmlinux 0x7630edc6 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x76346f95 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x76369365 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764dbff0 of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0x7650da19 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x766128e9 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x769dc604 netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76a23f63 mmc_request_done +EXPORT_SYMBOL vmlinux 0x76a72855 tty_do_resize +EXPORT_SYMBOL vmlinux 0x76c7dd09 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x76d07609 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e9d80f devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x76ee86f2 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x76fbe4af free_netdev +EXPORT_SYMBOL vmlinux 0x77172e1e cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +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 0x7753f229 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x777a47ff override_creds +EXPORT_SYMBOL vmlinux 0x777bd6c1 tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x77a3c063 nd_btt_probe +EXPORT_SYMBOL vmlinux 0x77b72473 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bcff3e vme_register_driver +EXPORT_SYMBOL vmlinux 0x77d1fadd kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x77e5a281 sk_net_capable +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77ea5697 serio_open +EXPORT_SYMBOL vmlinux 0x77efc625 proto_unregister +EXPORT_SYMBOL vmlinux 0x77f9b0df netdev_state_change +EXPORT_SYMBOL vmlinux 0x77fc2645 genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x78057110 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x780fb881 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x786ae4f6 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x78732a9e dquot_file_open +EXPORT_SYMBOL vmlinux 0x787439d4 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x7899b26a import_single_range +EXPORT_SYMBOL vmlinux 0x78a15a65 fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78d1b43c dma_async_device_register +EXPORT_SYMBOL vmlinux 0x78dec3c4 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e69307 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x79002bf0 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x79129548 folio_end_writeback +EXPORT_SYMBOL vmlinux 0x791af77b scmd_printk +EXPORT_SYMBOL vmlinux 0x7932efb4 __register_binfmt +EXPORT_SYMBOL vmlinux 0x7936cfef rproc_get_by_child +EXPORT_SYMBOL vmlinux 0x794988bb dmam_pool_create +EXPORT_SYMBOL vmlinux 0x79597950 vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x796e7dd9 of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x797b9ca2 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x799f2cde xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x79a33f85 vme_get_size +EXPORT_SYMBOL vmlinux 0x79b2f19d pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x79e738dc generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x79edee85 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x7a0241e5 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0x7a054d5b jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a1ffbde ether_setup +EXPORT_SYMBOL vmlinux 0x7a2458db inet_frags_fini +EXPORT_SYMBOL vmlinux 0x7a2af7b4 cpu_number +EXPORT_SYMBOL vmlinux 0x7a2d2090 devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a387b39 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x7a477951 file_ns_capable +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a573638 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x7a5d63dc d_prune_aliases +EXPORT_SYMBOL vmlinux 0x7a6347ad register_filesystem +EXPORT_SYMBOL vmlinux 0x7a63e6ec tso_build_data +EXPORT_SYMBOL vmlinux 0x7a68e474 bioset_exit +EXPORT_SYMBOL vmlinux 0x7a715a3b put_cmsg +EXPORT_SYMBOL vmlinux 0x7a948378 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7a968137 ucc_slow_restart_tx +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7abe3cef ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0x7ac8a938 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad601fc wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7ae5d317 qe_get_snum +EXPORT_SYMBOL vmlinux 0x7ae6bfcf audit_log_start +EXPORT_SYMBOL vmlinux 0x7b01f40a dev_activate +EXPORT_SYMBOL vmlinux 0x7b0c2ada netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0x7b0f7d5b inode_init_owner +EXPORT_SYMBOL vmlinux 0x7b3389cf tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x7b3efa64 try_to_release_page +EXPORT_SYMBOL vmlinux 0x7b40b8ac icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x7b4254ce mmc_command_done +EXPORT_SYMBOL vmlinux 0x7b4da6ff __init_rwsem +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b5d64f0 folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7b7a3e5c rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0x7b82b9a1 idr_replace +EXPORT_SYMBOL vmlinux 0x7b9d323d ilookup +EXPORT_SYMBOL vmlinux 0x7ba5a3b4 tegra_powergate_power_off +EXPORT_SYMBOL vmlinux 0x7bb50b88 acpi_write +EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids +EXPORT_SYMBOL vmlinux 0x7bc6d669 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x7bd1f50e mr_table_dump +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c2fb96c configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0x7c459513 nla_append +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c661156 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x7c687a0b tcp_make_synack +EXPORT_SYMBOL vmlinux 0x7c766890 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x7c809bcf pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x7c91b765 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x7c9a513e finish_swait +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7ca10966 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x7cbd12f0 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x7cbebf34 scsi_device_put +EXPORT_SYMBOL vmlinux 0x7cbf660e dqget +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce58981 kvrealloc +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 0x7d157751 __do_once_done +EXPORT_SYMBOL vmlinux 0x7d1e31b9 proc_set_size +EXPORT_SYMBOL vmlinux 0x7d22b0de __nlmsg_put +EXPORT_SYMBOL vmlinux 0x7d319dda mdio_device_create +EXPORT_SYMBOL vmlinux 0x7d34c3b5 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x7d37f842 ip_output +EXPORT_SYMBOL vmlinux 0x7d394d3c seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d518bbc tcf_em_register +EXPORT_SYMBOL vmlinux 0x7d5e1008 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x7d74d522 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7d77f535 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x7d79abfe nd_device_notify +EXPORT_SYMBOL vmlinux 0x7da4e3af fman_bind +EXPORT_SYMBOL vmlinux 0x7da9cead i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dcf4135 __xa_insert +EXPORT_SYMBOL vmlinux 0x7de55347 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x7de55684 zap_page_range +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df478b7 fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x7dfce86a inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x7dfe001b __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x7e057978 xen_alloc_ballooned_pages +EXPORT_SYMBOL vmlinux 0x7e08ac0d security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x7e08d233 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x7e0ed2ea pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x7e2f0875 pci_iounmap +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e36ebaa dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7e3a2ca1 notify_change +EXPORT_SYMBOL vmlinux 0x7e5e37de netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x7e647ef6 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x7e67ad33 flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x7e6ec97c generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x7e77377b genphy_suspend +EXPORT_SYMBOL vmlinux 0x7e7a6e21 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x7e7d5f02 dev_change_flags +EXPORT_SYMBOL vmlinux 0x7e8b830c kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x7e8c8684 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x7e9aab16 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x7e9c3bfa security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x7ebacad3 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x7ec32812 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x7ec51bdf blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x7ed4c764 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x7ed77090 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x7ef005c9 passthru_features_check +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f0b39a7 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x7f14ac8a of_device_unregister +EXPORT_SYMBOL vmlinux 0x7f18d0f8 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f276ba3 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x7f3dd0d2 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x7f3f10cd unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7f401e45 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x7f52071a net_dim +EXPORT_SYMBOL vmlinux 0x7f56407e of_platform_device_create +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f5cd543 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x7f716916 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7f740aa8 nla_reserve +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7fa415ff skb_copy_header +EXPORT_SYMBOL vmlinux 0x7fb50505 jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x7fc30529 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x7fce778e tegra_ivc_total_queue_size +EXPORT_SYMBOL vmlinux 0x7fcf6434 param_set_ushort +EXPORT_SYMBOL vmlinux 0x7fd1a177 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x7fd3fc9f md_finish_reshape +EXPORT_SYMBOL vmlinux 0x7fd4c20e devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fdcae0f end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x7fe105d7 bman_ip_rev +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe6f7ad ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x7ffaea85 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7ffee1e2 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x80066b5a param_get_ulong +EXPORT_SYMBOL vmlinux 0x801485ce ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x8020019e blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x80201215 folio_write_one +EXPORT_SYMBOL vmlinux 0x803d1ae5 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x8040d479 serio_close +EXPORT_SYMBOL vmlinux 0x805d56c0 vm_insert_page +EXPORT_SYMBOL vmlinux 0x806581a6 config_group_find_item +EXPORT_SYMBOL vmlinux 0x806babe4 fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x806d30a6 pci_get_device +EXPORT_SYMBOL vmlinux 0x806ef8ef alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x807248a0 block_write_full_page +EXPORT_SYMBOL vmlinux 0x80754dc0 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x80787f19 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x809712ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x809aee51 inode_to_bdi +EXPORT_SYMBOL vmlinux 0x80a717a8 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x80b9477d prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x80bf857a ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x80c50ba5 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x80c63d00 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x80c81285 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x80c97f3b pagecache_get_page +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d94b10 acpi_dev_get_first_match_dev +EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x80ec0d50 qman_init_fq +EXPORT_SYMBOL vmlinux 0x80ee0082 mdiobus_read +EXPORT_SYMBOL vmlinux 0x80f567cd padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x810bef7e sg_free_append_table +EXPORT_SYMBOL vmlinux 0x810c3b9d set_nlink +EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x81188c30 match_string +EXPORT_SYMBOL vmlinux 0x814f5f8a vfs_ioctl +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x8157a911 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8171eaa1 pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x818cd00d xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x818edf97 cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload +EXPORT_SYMBOL vmlinux 0x81ac5e33 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x81acb61f block_write_end +EXPORT_SYMBOL vmlinux 0x81b20e8b ucc_fast_transmit_on_demand +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dd5e4a tty_check_change +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81e96b64 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x81fc7d38 blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0x81fe5c77 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x82071d48 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x8211bbc6 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x82152ea8 param_set_charp +EXPORT_SYMBOL vmlinux 0x82239240 netdev_emerg +EXPORT_SYMBOL vmlinux 0x8224e4d6 crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x822d4df4 dma_map_resource +EXPORT_SYMBOL vmlinux 0x823d3505 cmxgcr_lock +EXPORT_SYMBOL vmlinux 0x82556ce7 __ip_options_compile +EXPORT_SYMBOL vmlinux 0x825c0e88 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x8263a6d9 proc_douintvec +EXPORT_SYMBOL vmlinux 0x82755240 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x829b11b8 tty_hangup +EXPORT_SYMBOL vmlinux 0x82a088af block_dirty_folio +EXPORT_SYMBOL vmlinux 0x82a89d13 simple_rmdir +EXPORT_SYMBOL vmlinux 0x82b77c91 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x82c46f77 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x82ca6e84 md_handle_request +EXPORT_SYMBOL vmlinux 0x82e82159 ps2_command +EXPORT_SYMBOL vmlinux 0x82f68108 security_path_rename +EXPORT_SYMBOL vmlinux 0x830a4b72 phy_device_remove +EXPORT_SYMBOL vmlinux 0x8313b140 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x833f6d51 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x8343aa37 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x8343b3a0 phy_attached_info +EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x8377aad9 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x837b7b09 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x838de657 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x8391432a dm_table_get_size +EXPORT_SYMBOL vmlinux 0x83fb8201 zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x840342c6 sgl_free +EXPORT_SYMBOL vmlinux 0x8423560b phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x842775fa __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x8427cc7b _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x8428a1db __dquot_free_space +EXPORT_SYMBOL vmlinux 0x842aeff0 seq_dentry +EXPORT_SYMBOL vmlinux 0x843c5c56 mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x8443b1d0 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x844a521e inet6_ioctl +EXPORT_SYMBOL vmlinux 0x844dd870 devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x845008ee pci_write_vpd +EXPORT_SYMBOL vmlinux 0x845034c2 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0x8455e3a7 dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x84789726 __module_get +EXPORT_SYMBOL vmlinux 0x84818f57 tegra_powergate_power_on +EXPORT_SYMBOL vmlinux 0x84823cf3 nla_strscpy +EXPORT_SYMBOL vmlinux 0x848a8c51 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x848d78ea __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x84986591 __breadahead +EXPORT_SYMBOL vmlinux 0x849f69be cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x84c03e9a rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x84c1c552 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x84c4040c security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x84e64b4e neigh_app_ns +EXPORT_SYMBOL vmlinux 0x84f67001 udp_seq_stop +EXPORT_SYMBOL vmlinux 0x84fa015e setup_new_exec +EXPORT_SYMBOL vmlinux 0x85013ffd sock_recvmsg +EXPORT_SYMBOL vmlinux 0x8505159d mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x8508643b pci_disable_device +EXPORT_SYMBOL vmlinux 0x8518a4a6 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x851b9121 xudma_dev_get_psil_base +EXPORT_SYMBOL vmlinux 0x851bd4bc jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x85218804 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x8526af96 mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x852c73c6 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x8532507d dev_get_flags +EXPORT_SYMBOL vmlinux 0x854fec83 tegra_sku_info +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85726013 gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x8575f621 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x857c8472 tcp_mmap +EXPORT_SYMBOL vmlinux 0x8591d7d5 ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x85a82096 tcp_check_req +EXPORT_SYMBOL vmlinux 0x85b10b7a seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region +EXPORT_SYMBOL vmlinux 0x85c69e68 fwnode_iomap +EXPORT_SYMBOL vmlinux 0x85d261d3 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn +EXPORT_SYMBOL vmlinux 0x85f835f6 kern_unmount_array +EXPORT_SYMBOL vmlinux 0x861c0287 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x861f5724 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x86363352 configfs_register_group +EXPORT_SYMBOL vmlinux 0x86399224 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x863a276a color_table +EXPORT_SYMBOL vmlinux 0x865ab120 rpmh_write_async +EXPORT_SYMBOL vmlinux 0x866a62b2 gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x86729f56 processors +EXPORT_SYMBOL vmlinux 0x867d1d25 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869116a7 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x86ab2d25 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x86b92e70 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86d748f6 no_llseek +EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87576a2a folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x875ed33d i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed +EXPORT_SYMBOL vmlinux 0x87761528 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x87774d3e __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x877e34f1 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x8782b24e take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x878c705b md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x87a21cb3 __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x87a301a7 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x87b8798d sg_next +EXPORT_SYMBOL vmlinux 0x87b98260 d_genocide +EXPORT_SYMBOL vmlinux 0x87beb2c6 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x87ce4944 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x87e7d0a1 phy_aneg_done +EXPORT_SYMBOL vmlinux 0x87ea49bf bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x8805bf88 nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit +EXPORT_SYMBOL vmlinux 0x8813bcea pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x881bad5e phy_mipi_dphy_config_validate +EXPORT_SYMBOL vmlinux 0x881c4413 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x881f3208 mntget +EXPORT_SYMBOL vmlinux 0x882b6e15 xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x886343d1 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x88715a4f input_register_handler +EXPORT_SYMBOL vmlinux 0x887324f8 sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x887f3afd get_tree_single +EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x8888f1fe xxh32 +EXPORT_SYMBOL vmlinux 0x889b1370 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x889bb69a of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0x88a6f203 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x88b3d351 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size +EXPORT_SYMBOL vmlinux 0x88de622e fman_get_pause_cfg +EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free +EXPORT_SYMBOL vmlinux 0x89377560 unpin_user_pages +EXPORT_SYMBOL vmlinux 0x893ddd63 vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x89434b4b radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x8943e6a8 cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0x8946ea72 fpsimd_context_busy +EXPORT_SYMBOL vmlinux 0x894b99f0 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x896e63c6 blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0x897d1b4b tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x89857bb9 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x8986c90b dma_resv_init +EXPORT_SYMBOL vmlinux 0x89940875 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x899b3109 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x899b6e8e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x899e207b devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x89a340a6 dquot_get_state +EXPORT_SYMBOL vmlinux 0x89bd0f7e mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x89f71b20 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x89f80af1 may_umount +EXPORT_SYMBOL vmlinux 0x89fa68df flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x8a0f0b7d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x8a1c3e7e scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x8a1cdda7 arp_tbl +EXPORT_SYMBOL vmlinux 0x8a1f31ea vme_bus_num +EXPORT_SYMBOL vmlinux 0x8a21bc3a pci_irq_vector +EXPORT_SYMBOL vmlinux 0x8a424210 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x8a47043d LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a570287 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x8a6139a9 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x8a698202 tcp_prot +EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9f747e netlink_set_err +EXPORT_SYMBOL vmlinux 0x8aa2da35 blk_get_queue +EXPORT_SYMBOL vmlinux 0x8aa98dc5 ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x8ac136ae imx_sc_misc_get_control +EXPORT_SYMBOL vmlinux 0x8ac3334b net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x8ac51c6c kthread_create_worker +EXPORT_SYMBOL vmlinux 0x8ac743de sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x8ad3ae67 qdisc_reset +EXPORT_SYMBOL vmlinux 0x8ad59132 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x8aee6b5f __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x8aef877d cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x8b012fe9 unregister_key_type +EXPORT_SYMBOL vmlinux 0x8b055674 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x8b1393cc dma_resv_fini +EXPORT_SYMBOL vmlinux 0x8b2670bb __d_drop +EXPORT_SYMBOL vmlinux 0x8b2ffd83 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x8b30b596 kernel_write +EXPORT_SYMBOL vmlinux 0x8b3cab56 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x8b5e1975 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b72afda ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x8b8059bd in_group_p +EXPORT_SYMBOL vmlinux 0x8b83ba4e __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x8b910be2 errseq_sample +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bcd0ce7 make_bad_inode +EXPORT_SYMBOL vmlinux 0x8bd34cde setattr_copy +EXPORT_SYMBOL vmlinux 0x8bda219b __alloc_pages +EXPORT_SYMBOL vmlinux 0x8be189ab ucc_slow_disable +EXPORT_SYMBOL vmlinux 0x8be1d7fc sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x8bf8ba4f __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x8c1a78c3 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x8c239a5c ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x8c26d495 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x8c30bf67 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x8c39815b inode_dio_wait +EXPORT_SYMBOL vmlinux 0x8c647630 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x8c683fcd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8c77e350 do_SAK +EXPORT_SYMBOL vmlinux 0x8c80f6d8 dquot_acquire +EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8c899034 configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x8c99400e pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x8c9c8156 __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x8c9d4f97 iov_iter_discard +EXPORT_SYMBOL vmlinux 0x8c9e338f acpi_bios_error +EXPORT_SYMBOL vmlinux 0x8ca4e1b6 xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x8ca6a26b phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x8cb44860 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x8cb729ea new_inode +EXPORT_SYMBOL vmlinux 0x8cc53d20 __par_io_config_pin +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8ce2b1f4 security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x8ce724d7 devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x8cfd6393 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x8d0b12a6 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x8d2db26c of_parse_phandle_with_args_map +EXPORT_SYMBOL vmlinux 0x8d4112df qcom_scm_mem_protect_video_var +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d59bbec __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x8d60ae7c wireless_spy_update +EXPORT_SYMBOL vmlinux 0x8d6ca52c __pci_register_driver +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d8bec6e sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x8d8eeb69 devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x8d9ca0e6 dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x8da14774 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x8da6585d __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x8daedb79 cpumask_any_but +EXPORT_SYMBOL vmlinux 0x8dbc3529 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x8dc048fa ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x8dc24ca1 __devm_release_region +EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8de28d4e tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x8dee722d _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x8df1c80a jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x8df4afd9 qe_put_snum +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8df98e78 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null +EXPORT_SYMBOL vmlinux 0x8e10052c d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x8e17b3ae idr_destroy +EXPORT_SYMBOL vmlinux 0x8e21c9a1 dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x8e26c766 security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x8e2e1898 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x8e355cbe tcf_idr_create +EXPORT_SYMBOL vmlinux 0x8e3e0f7d fault_in_readable +EXPORT_SYMBOL vmlinux 0x8e45bd3b security_sk_clone +EXPORT_SYMBOL vmlinux 0x8e4c60a3 cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x8e5ca8a8 simple_empty +EXPORT_SYMBOL vmlinux 0x8e623188 xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x8e6c860e jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x8e77bf15 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x8e7d4f17 of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0x8e804cd3 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x8e88ef00 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x8e951915 dquot_resume +EXPORT_SYMBOL vmlinux 0x8ee1bec1 generic_update_time +EXPORT_SYMBOL vmlinux 0x8ee8cdd6 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x8efa754f netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x8eff26af __put_devmap_managed_page_refs +EXPORT_SYMBOL vmlinux 0x8f01afd6 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x8f1dceb5 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x8f36f964 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x8f42e11f vga_get +EXPORT_SYMBOL vmlinux 0x8f55e8dc register_qdisc +EXPORT_SYMBOL vmlinux 0x8f7d9ad4 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x8f86cfca bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x8f8fe117 bio_free_pages +EXPORT_SYMBOL vmlinux 0x8f95a071 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x8f996a30 ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x8f9a3a67 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x8fa25c24 xa_find +EXPORT_SYMBOL vmlinux 0x8fc9ea11 fman_port_cfg_buf_prefix_content +EXPORT_SYMBOL vmlinux 0x8fcabf86 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x8fcdc851 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x8fd180e7 kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x8fd1e50f file_update_time +EXPORT_SYMBOL vmlinux 0x8fd5f726 skb_tx_error +EXPORT_SYMBOL vmlinux 0x8fdb0752 abort_creds +EXPORT_SYMBOL vmlinux 0x8fde88c9 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x8fff9f07 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x90061f18 __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x900935c7 rpmh_write_batch +EXPORT_SYMBOL vmlinux 0x902d8722 vme_slave_get +EXPORT_SYMBOL vmlinux 0x902f5199 cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x9034a696 mempool_destroy +EXPORT_SYMBOL vmlinux 0x9051cf6b kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x905695ab sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x90576ec4 vmemdup_user +EXPORT_SYMBOL vmlinux 0x906368c4 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x90685282 register_cdrom +EXPORT_SYMBOL vmlinux 0x907e787b tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x907ea00e set_security_override +EXPORT_SYMBOL vmlinux 0x907ed17c devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x90870546 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x90d196b7 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x90dde7db pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x90e273e2 cred_fscmp +EXPORT_SYMBOL vmlinux 0x90e4e0b0 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x90fc7cbb of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x910758ad xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x9114b616 __xa_alloc +EXPORT_SYMBOL vmlinux 0x9134b9c6 pci_release_region +EXPORT_SYMBOL vmlinux 0x913e13d5 tty_port_put +EXPORT_SYMBOL vmlinux 0x915af26b vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue +EXPORT_SYMBOL vmlinux 0x917f80f2 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x918dc5ed register_console +EXPORT_SYMBOL vmlinux 0x91926074 input_event +EXPORT_SYMBOL vmlinux 0x91934c1d pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 +EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91f44510 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x91f4d6a1 security_locked_down +EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x91fc8b49 input_unregister_device +EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x9248785d d_tmpfile +EXPORT_SYMBOL vmlinux 0x92540fbf finish_wait +EXPORT_SYMBOL vmlinux 0x9258c776 hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x92774cf8 __kfence_pool +EXPORT_SYMBOL vmlinux 0x928cd307 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92997ed8 _printk +EXPORT_SYMBOL vmlinux 0x92b99a33 acpi_put_table +EXPORT_SYMBOL vmlinux 0x92b9b180 slash_name +EXPORT_SYMBOL vmlinux 0x92be8c7d skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x92cb7205 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x92d409c3 md_register_thread +EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq +EXPORT_SYMBOL vmlinux 0x92e683f5 down_timeout +EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x92eed625 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL vmlinux 0x93022ba6 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x930577e4 kthread_bind +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9307b32d scsi_device_get +EXPORT_SYMBOL vmlinux 0x9327537f i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x932fbf80 pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x933ffb3e pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x934bb55c alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x9367fa2c mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x936e1768 scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x936f8a46 dquot_operations +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x938a6c26 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x93984001 rtc_add_group +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a77b29 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x93a78c82 pci_clear_master +EXPORT_SYMBOL vmlinux 0x93a93376 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x93ab5b9d tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93d19f65 dm_get_device +EXPORT_SYMBOL vmlinux 0x93d6dd8c complete_all +EXPORT_SYMBOL vmlinux 0x93e8a98f mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x93eb74ea clk_get +EXPORT_SYMBOL vmlinux 0x93f6c139 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x93f88fc0 misc_deregister +EXPORT_SYMBOL vmlinux 0x93fe6c92 inode_update_time +EXPORT_SYMBOL vmlinux 0x9400ad08 kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x940b3396 bio_split +EXPORT_SYMBOL vmlinux 0x941859c1 phy_loopback +EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn +EXPORT_SYMBOL vmlinux 0x943e0cdf dget_parent +EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages +EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked +EXPORT_SYMBOL vmlinux 0x9455d39e peernet2id +EXPORT_SYMBOL vmlinux 0x945911c3 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x946ed276 filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x9487d3e1 ns_capable +EXPORT_SYMBOL vmlinux 0x94894075 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x948a52be tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949cb974 pci_pme_active +EXPORT_SYMBOL vmlinux 0x94afca05 sock_create_kern +EXPORT_SYMBOL vmlinux 0x94bab2b1 __folio_lock +EXPORT_SYMBOL vmlinux 0x94bb7ec3 gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x94e50ad4 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x94fc8d93 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x950a567c eth_get_headlen +EXPORT_SYMBOL vmlinux 0x953d2426 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc +EXPORT_SYMBOL vmlinux 0x954f099c idr_preload +EXPORT_SYMBOL vmlinux 0x956e7e86 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x95705c99 module_put +EXPORT_SYMBOL vmlinux 0x95732222 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x95795ba8 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x958986fc from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x959c1313 dma_free_attrs +EXPORT_SYMBOL vmlinux 0x959dcb39 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x95a67b07 udp_table +EXPORT_SYMBOL vmlinux 0x95b74898 cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0x95ba7704 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x95cb7bd2 proc_remove +EXPORT_SYMBOL vmlinux 0x95cfee6d netdev_printk +EXPORT_SYMBOL vmlinux 0x95d7f460 devm_rproc_add +EXPORT_SYMBOL vmlinux 0x95d7f968 dump_emit +EXPORT_SYMBOL vmlinux 0x95e611a3 kill_litter_super +EXPORT_SYMBOL vmlinux 0x95eafe9d skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x960adbf4 of_device_register +EXPORT_SYMBOL vmlinux 0x960db662 elv_rb_add +EXPORT_SYMBOL vmlinux 0x96203221 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x96232b32 vfs_unlink +EXPORT_SYMBOL vmlinux 0x964ae742 iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x966247c4 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x9663ee08 dev_trans_start +EXPORT_SYMBOL vmlinux 0x96650262 ip_options_compile +EXPORT_SYMBOL vmlinux 0x967e871a param_set_int +EXPORT_SYMBOL vmlinux 0x967e98a6 device_add_disk +EXPORT_SYMBOL vmlinux 0x967f1c43 elv_rb_find +EXPORT_SYMBOL vmlinux 0x96848186 scnprintf +EXPORT_SYMBOL vmlinux 0x9688de8b memstart_addr +EXPORT_SYMBOL vmlinux 0x968d7b29 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x9699ba85 inet_addr_type +EXPORT_SYMBOL vmlinux 0x96b1e22c blk_sync_queue +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96c07704 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x96c21a4c tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x96c558df dev_disable_lro +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96dad942 unix_attach_fds +EXPORT_SYMBOL vmlinux 0x96e5d30f gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x96f2e40f security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x9719b658 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x9732f522 gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x97602742 inet_select_addr +EXPORT_SYMBOL vmlinux 0x977e2197 flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x978bebc7 sock_register +EXPORT_SYMBOL vmlinux 0x978fd04e migrate_page_states +EXPORT_SYMBOL vmlinux 0x97934ecf del_timer_sync +EXPORT_SYMBOL vmlinux 0x9795b17d bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x97985072 generic_write_checks +EXPORT_SYMBOL vmlinux 0x97a57333 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97b4dc94 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x97c3144b user_path_create +EXPORT_SYMBOL vmlinux 0x97c9ba56 bpf_link_put +EXPORT_SYMBOL vmlinux 0x97e2789a commit_creds +EXPORT_SYMBOL vmlinux 0x97eb5d98 sock_alloc +EXPORT_SYMBOL vmlinux 0x97ed2212 __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x97fe65de nd_btt_version +EXPORT_SYMBOL vmlinux 0x9801a066 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x98053d06 rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x980e7ceb sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982bcde4 __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x98504ccf pci_request_regions +EXPORT_SYMBOL vmlinux 0x986d17c0 __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x98a4f7e5 of_graph_is_present +EXPORT_SYMBOL vmlinux 0x98ab574d phy_init_hw +EXPORT_SYMBOL vmlinux 0x98c039dc dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x98c855c5 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98d56091 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x98e42279 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x98f9be75 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x98fbf793 sk_wait_data +EXPORT_SYMBOL vmlinux 0x99019639 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x99078b39 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x99094fb2 qcom_scm_is_available +EXPORT_SYMBOL vmlinux 0x99183b91 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x99271af3 mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x992d55e2 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x9931f8c9 qcom_scm_lmh_dcvsh_available +EXPORT_SYMBOL vmlinux 0x9939eba0 backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x993e6c63 genphy_resume +EXPORT_SYMBOL vmlinux 0x994a96db devfreq_add_device +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x995e5f78 tegra_ivc_cleanup +EXPORT_SYMBOL vmlinux 0x9965b0d2 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x99723d50 ping_prot +EXPORT_SYMBOL vmlinux 0x9975dc22 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x9984c865 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99ade5ff vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x99b00ea4 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99e87af7 devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x99f3a74c page_mapped +EXPORT_SYMBOL vmlinux 0x99f57542 vme_master_request +EXPORT_SYMBOL vmlinux 0x99f7371c refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x9a0c3a18 vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x9a19a428 vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x9a19ce67 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a22391e radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x9a273c0a vme_slot_num +EXPORT_SYMBOL vmlinux 0x9a3c92da __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x9a3ea4dc __netif_schedule +EXPORT_SYMBOL vmlinux 0x9a44cdd1 ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x9a4a60e1 fiemap_prep +EXPORT_SYMBOL vmlinux 0x9a4c5b02 stream_open +EXPORT_SYMBOL vmlinux 0x9a4fbd07 pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x9a5e1f63 flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x9a69549a security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x9a6a31d0 flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x9a77385c inet_shutdown +EXPORT_SYMBOL vmlinux 0x9a77812b md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x9a7e8f56 param_ops_int +EXPORT_SYMBOL vmlinux 0x9a8d6c4b phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x9a90b186 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x9ac1a7ef unpin_user_page +EXPORT_SYMBOL vmlinux 0x9ad019f6 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x9ad0287d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x9ae36c44 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit +EXPORT_SYMBOL vmlinux 0x9ae79bc7 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x9b128a66 qcom_scm_set_remote_state +EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b302d65 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b40721c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x9b4987ca blk_queue_split +EXPORT_SYMBOL vmlinux 0x9b512058 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0x9b51816b __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x9b549c76 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x9b5ef806 xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x9b5f5777 netlink_unicast +EXPORT_SYMBOL vmlinux 0x9b69f29c padata_do_serial +EXPORT_SYMBOL vmlinux 0x9b6c724e xudma_pktdma_tflow_get_irq +EXPORT_SYMBOL vmlinux 0x9b72478f acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x9b757fa6 pps_register_source +EXPORT_SYMBOL vmlinux 0x9b94497c proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x9bb8162e shmem_aops +EXPORT_SYMBOL vmlinux 0x9bc1c494 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x9be08ef4 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x9bece8b5 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x9bf7ec4f kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x9c00103c dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x9c0306dd param_get_string +EXPORT_SYMBOL vmlinux 0x9c122bcf mempool_create_node +EXPORT_SYMBOL vmlinux 0x9c1e5bf5 queued_spin_lock_slowpath +EXPORT_SYMBOL vmlinux 0x9c2ef58e inet_offloads +EXPORT_SYMBOL vmlinux 0x9c336a6b kernel_connect +EXPORT_SYMBOL vmlinux 0x9c3a21d7 devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0x9c569112 backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0x9c5910d0 dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x9c5a2ada ucc_fast_dump_regs +EXPORT_SYMBOL vmlinux 0x9c5d5b94 crc8 +EXPORT_SYMBOL vmlinux 0x9c5fb9c7 param_ops_uint +EXPORT_SYMBOL vmlinux 0x9c6d980c netpoll_setup +EXPORT_SYMBOL vmlinux 0x9c747594 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x9c89ff72 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x9c9d4220 iov_iter_init +EXPORT_SYMBOL vmlinux 0x9c9f535a set_disk_ro +EXPORT_SYMBOL vmlinux 0x9ca2fa73 vmap +EXPORT_SYMBOL vmlinux 0x9ca38db1 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x9ca948a5 of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cb4d71c cros_ec_query_all +EXPORT_SYMBOL vmlinux 0x9cbb1a6c vma_set_file +EXPORT_SYMBOL vmlinux 0x9ccf0802 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x9ccf7171 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x9cd91791 register_sysctl +EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x9ce45eab ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x9cf21b51 netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x9d04c1c0 generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x9d091409 backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d1a5e3a __memcpy +EXPORT_SYMBOL vmlinux 0x9d26675e zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d5995a3 netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x9d61e994 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x9d74ce05 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x9d7ad0c8 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x9d885742 of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0x9d92f3ad __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9da6ed9e vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x9db83252 of_get_parent +EXPORT_SYMBOL vmlinux 0x9dc112ed folio_alloc +EXPORT_SYMBOL vmlinux 0x9dc84a1f ilookup5 +EXPORT_SYMBOL vmlinux 0x9dccdfbf ptp_clock_event +EXPORT_SYMBOL vmlinux 0x9dd6429b pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x9dda6b65 folio_wait_bit +EXPORT_SYMBOL vmlinux 0x9ddc273e udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x9dea1484 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x9df21d0e qman_affine_channel +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0eef88 sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x9e0fa5ae hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL vmlinux 0x9e24f9db serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x9e2737f0 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0x9e3d4ef0 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x9e42a322 d_add +EXPORT_SYMBOL vmlinux 0x9e4b5874 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e521ae9 arp_create +EXPORT_SYMBOL vmlinux 0x9e5af910 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x9e5b0f8d tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x9e5e750d node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e984266 sock_no_bind +EXPORT_SYMBOL vmlinux 0x9e9eab95 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x9e9f73c9 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap +EXPORT_SYMBOL vmlinux 0x9eaa5e42 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x9eacf8a5 kstrndup +EXPORT_SYMBOL vmlinux 0x9eb187fa xudma_pktdma_rflow_get_irq +EXPORT_SYMBOL vmlinux 0x9ebe840c dev_open +EXPORT_SYMBOL vmlinux 0x9ec0e639 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x9ec3733f textsearch_unregister +EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x9ed00a11 iunique +EXPORT_SYMBOL vmlinux 0x9ed374db device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x9ed7c847 brcmstb_get_family_id +EXPORT_SYMBOL vmlinux 0x9ed978de vme_lm_set +EXPORT_SYMBOL vmlinux 0x9edbc8f1 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x9ee4f6f5 can_nice +EXPORT_SYMBOL vmlinux 0x9ee64020 acpi_dev_get_next_match_dev +EXPORT_SYMBOL vmlinux 0x9f20bac6 of_node_name_eq +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f471fd2 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x9f4f2aa3 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict +EXPORT_SYMBOL vmlinux 0x9f54abf4 read_cache_page +EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x9f5a6030 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x9f76baf4 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x9f7d7dbb logic_outsw +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fa8e549 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x9fb1d09b PageMovable +EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x9fb94d38 param_array_ops +EXPORT_SYMBOL vmlinux 0x9fbf2156 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0x9fc3619b fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x9fd2f287 nf_log_packet +EXPORT_SYMBOL vmlinux 0x9fd47b16 backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fee5213 phy_disconnect +EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa000fcbb blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa01d1194 par_io_of_config +EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa01f9a53 path_has_submounts +EXPORT_SYMBOL vmlinux 0xa022493b page_symlink +EXPORT_SYMBOL vmlinux 0xa022c739 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xa02403a6 simple_setattr +EXPORT_SYMBOL vmlinux 0xa02794ea vfs_mknod +EXPORT_SYMBOL vmlinux 0xa029d351 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa02aa74a __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa031c7ff __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0xa033d747 next_arg +EXPORT_SYMBOL vmlinux 0xa036d691 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa04c7b46 sunxi_sram_claim +EXPORT_SYMBOL vmlinux 0xa04e33da qcom_scm_lmh_dcvsh +EXPORT_SYMBOL vmlinux 0xa057df8f twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0xa06b7a6e dev_lstats_read +EXPORT_SYMBOL vmlinux 0xa06ba043 __netif_rx +EXPORT_SYMBOL vmlinux 0xa077ec85 sock_wake_async +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07b8c4c unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup +EXPORT_SYMBOL vmlinux 0xa081d9e3 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or +EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable +EXPORT_SYMBOL vmlinux 0xa09e29d3 rproc_put +EXPORT_SYMBOL vmlinux 0xa0abc14d sock_kmalloc +EXPORT_SYMBOL vmlinux 0xa0acd6ab create_empty_buffers +EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0d87339 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0dc6c4a unlock_buffer +EXPORT_SYMBOL vmlinux 0xa0e381d8 tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0xa0eae826 smp_call_function +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0ebd437 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa11175bb mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xa1199c43 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xa119de08 mdio_find_bus +EXPORT_SYMBOL vmlinux 0xa1205da8 proto_register +EXPORT_SYMBOL vmlinux 0xa13a7d42 eth_gro_receive +EXPORT_SYMBOL vmlinux 0xa13f51c1 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xa157f76e generic_fadvise +EXPORT_SYMBOL vmlinux 0xa1909b41 set_user_nice +EXPORT_SYMBOL vmlinux 0xa1988b13 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xa1aaf516 phy_detach +EXPORT_SYMBOL vmlinux 0xa1d2a564 crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0xa1f47fec nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0xa1fc29fa __bread_gfp +EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0xa21dab2a __inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa2326c49 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0xa2334828 netif_rx +EXPORT_SYMBOL vmlinux 0xa23f00d7 udp6_seq_ops +EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort +EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module +EXPORT_SYMBOL vmlinux 0xa26216d9 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0xa2660e90 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xa27daf12 phy_driver_register +EXPORT_SYMBOL vmlinux 0xa2813e82 set_create_files_as +EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active +EXPORT_SYMBOL vmlinux 0xa290a172 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xa2a18c13 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xa2ae58aa nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0xa2bd065b kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xa2c55276 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xa2cf3649 qman_fq_fqid +EXPORT_SYMBOL vmlinux 0xa2d4b75e qcom_scm_iommu_set_cp_pool_size +EXPORT_SYMBOL vmlinux 0xa2d7ec8d __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa31b3963 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0xa32bff60 get_user_pages_remote +EXPORT_SYMBOL vmlinux 0xa3343aa5 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xa337119b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xa339e6e5 on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0xa3522df5 qman_query_fq_np +EXPORT_SYMBOL vmlinux 0xa37a97b4 skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0xa3828c21 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xa3a3f229 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xa3baebfd component_match_add_release +EXPORT_SYMBOL vmlinux 0xa3be8342 __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0xa3cefaa0 blake2s_update +EXPORT_SYMBOL vmlinux 0xa3d1205b __scsi_print_sense +EXPORT_SYMBOL vmlinux 0xa3d63135 skb_unlink +EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final +EXPORT_SYMBOL vmlinux 0xa4027772 scsi_host_busy +EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xa4180e02 tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0xa425c5a9 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xa43b9bb5 dquot_disable +EXPORT_SYMBOL vmlinux 0xa444fc2b of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0xa448c653 qcom_scm_ice_set_key +EXPORT_SYMBOL vmlinux 0xa46ef4c9 generic_setlease +EXPORT_SYMBOL vmlinux 0xa47a31c8 security_binder_transaction +EXPORT_SYMBOL vmlinux 0xa48a8968 lookup_one_len +EXPORT_SYMBOL vmlinux 0xa4962736 tty_lock +EXPORT_SYMBOL vmlinux 0xa4999a2a seq_file_path +EXPORT_SYMBOL vmlinux 0xa4a1b871 d_path +EXPORT_SYMBOL vmlinux 0xa4c72b0e phy_attach +EXPORT_SYMBOL vmlinux 0xa4cdc45a user_path_at_empty +EXPORT_SYMBOL vmlinux 0xa4d26156 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xa4efe9ec xen_free_ballooned_pages +EXPORT_SYMBOL vmlinux 0xa4f1aab1 skb_split +EXPORT_SYMBOL vmlinux 0xa4fca045 qcom_scm_ocmem_lock +EXPORT_SYMBOL vmlinux 0xa500b620 nd_region_release_lane +EXPORT_SYMBOL vmlinux 0xa502380f jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xa50a3da7 _find_next_bit +EXPORT_SYMBOL vmlinux 0xa51f7b73 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xa5282e3c kernel_read +EXPORT_SYMBOL vmlinux 0xa52bedf6 xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0xa5346954 kobject_add +EXPORT_SYMBOL vmlinux 0xa538737f bio_put +EXPORT_SYMBOL vmlinux 0xa53be670 __invalidate_device +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa558c16e i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xa55db732 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xa578485a dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0xa57c816b xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0xa58af0a6 _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0xa5976e4f dev_base_lock +EXPORT_SYMBOL vmlinux 0xa5be4d2c sock_wfree +EXPORT_SYMBOL vmlinux 0xa5db938b rproc_of_parse_firmware +EXPORT_SYMBOL vmlinux 0xa5e6fcdf flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0xa5f44cc5 tty_port_open +EXPORT_SYMBOL vmlinux 0xa5f7cf37 __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xa609ba60 task_work_add +EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0xa6257a2f complete +EXPORT_SYMBOL vmlinux 0xa62c8c61 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0xa633e017 set_page_dirty +EXPORT_SYMBOL vmlinux 0xa63d523a page_readlink +EXPORT_SYMBOL vmlinux 0xa63f1912 build_skb_around +EXPORT_SYMBOL vmlinux 0xa648e561 __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0xa65cfe1c mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0xa66a34cb blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0xa677b0ee fb_blank +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa691947b is_acpi_device_node +EXPORT_SYMBOL vmlinux 0xa6b1b5a4 __folio_alloc +EXPORT_SYMBOL vmlinux 0xa6b5c9ce neigh_parms_release +EXPORT_SYMBOL vmlinux 0xa6bc915a folio_add_lru +EXPORT_SYMBOL vmlinux 0xa6c0a176 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xa6c6e05c blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0xa6c85db1 param_get_ushort +EXPORT_SYMBOL vmlinux 0xa6cd8fa7 phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0xa6e5739e xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0xa6ea7ed6 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xa6ec4fdd inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0xa70bc96d qcom_scm_restore_sec_cfg_available +EXPORT_SYMBOL vmlinux 0xa70dec8a devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xa71542f6 generic_writepages +EXPORT_SYMBOL vmlinux 0xa715cf49 inet6_protos +EXPORT_SYMBOL vmlinux 0xa71acc92 fman_port_config +EXPORT_SYMBOL vmlinux 0xa72035f9 xa_get_order +EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0xa74ee42a dentry_create +EXPORT_SYMBOL vmlinux 0xa77720d0 wake_up_process +EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0xa798f4dd scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0xa7b15122 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xa7b334f2 phy_error +EXPORT_SYMBOL vmlinux 0xa7c03de0 dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0xa7d5f92e ida_destroy +EXPORT_SYMBOL vmlinux 0xa7d7909c neigh_update +EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xa7f5f33e eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xa8037c27 _dev_crit +EXPORT_SYMBOL vmlinux 0xa805d335 sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0xa8110850 mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0xa8181adf proc_dointvec +EXPORT_SYMBOL vmlinux 0xa821a297 pcie_print_link_status +EXPORT_SYMBOL vmlinux 0xa832f397 ip6_frag_next +EXPORT_SYMBOL vmlinux 0xa83b5ad8 find_inode_nowait +EXPORT_SYMBOL vmlinux 0xa83f698d param_get_short +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84ce9e0 crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0xa84ed1dc skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0xa853396b xa_extract +EXPORT_SYMBOL vmlinux 0xa8548eae generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xa85a3e6d xa_load +EXPORT_SYMBOL vmlinux 0xa8694ecd kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xa86ada72 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0xa874e4b1 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xa8759059 udp_ioctl +EXPORT_SYMBOL vmlinux 0xa88a55d2 jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0xa897e3e7 mempool_free +EXPORT_SYMBOL vmlinux 0xa89a1cf1 ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0xa8a8110c kernel_neon_end +EXPORT_SYMBOL vmlinux 0xa8aed357 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0xa8c43a24 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xa8c8e18f mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0xa8caa845 clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0xa8dea9da napi_gro_flush +EXPORT_SYMBOL vmlinux 0xa8e571ed configfs_undepend_item +EXPORT_SYMBOL vmlinux 0xa8e6933a qdf2400_e44_present +EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xa906c177 __nla_put_64bit +EXPORT_SYMBOL vmlinux 0xa90a9ddc iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91ea47f input_set_capability +EXPORT_SYMBOL vmlinux 0xa924b4aa __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xa92706f6 tegra_dfll_runtime_suspend +EXPORT_SYMBOL vmlinux 0xa92bb1e0 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xa92cd43a sk_common_release +EXPORT_SYMBOL vmlinux 0xa94a09bb mem_section +EXPORT_SYMBOL vmlinux 0xa952cc27 eth_header_parse +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value +EXPORT_SYMBOL vmlinux 0xa965d8dd vlan_for_each +EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap +EXPORT_SYMBOL vmlinux 0xa9a1843f page_get_link +EXPORT_SYMBOL vmlinux 0xa9b3b26d unregister_shrinker +EXPORT_SYMBOL vmlinux 0xa9b86bfb security_inode_copy_up +EXPORT_SYMBOL vmlinux 0xa9c14864 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xa9ce8b6b bio_kmalloc +EXPORT_SYMBOL vmlinux 0xa9daa953 key_task_permission +EXPORT_SYMBOL vmlinux 0xa9ed62d2 tegra_fuse_readl +EXPORT_SYMBOL vmlinux 0xa9fdcf2c copy_highpage +EXPORT_SYMBOL vmlinux 0xaa00fdc0 ec_transaction +EXPORT_SYMBOL vmlinux 0xaa079343 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xaa0c318b vscnprintf +EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol +EXPORT_SYMBOL vmlinux 0xaa220496 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0xaa341905 acpi_bios_exception +EXPORT_SYMBOL vmlinux 0xaa50a83e mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0xaa50c084 tegra_dfll_resume +EXPORT_SYMBOL vmlinux 0xaa544002 __vfs_getxattr +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa75e102 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xaa8106bc crc8_populate_msb +EXPORT_SYMBOL vmlinux 0xaa872a3a open_with_fake_path +EXPORT_SYMBOL vmlinux 0xaa8c0733 dev_addr_mod +EXPORT_SYMBOL vmlinux 0xaa9675c4 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic +EXPORT_SYMBOL vmlinux 0xaaa50fb2 qcom_scm_lmh_profile_change +EXPORT_SYMBOL vmlinux 0xaaa70f4d generic_read_dir +EXPORT_SYMBOL vmlinux 0xaaa8af84 inet_recvmsg +EXPORT_SYMBOL vmlinux 0xaaaf9c56 vfs_get_super +EXPORT_SYMBOL vmlinux 0xaac43b1d dev_uc_sync +EXPORT_SYMBOL vmlinux 0xaacb59b6 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xaace8f34 sdev_enable_disk_events +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 0xaae38292 crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaedadea pci_select_bars +EXPORT_SYMBOL vmlinux 0xaaf00ebe genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0xaaf2a1f4 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xaaf4a334 qcom_scm_set_cold_boot_addr +EXPORT_SYMBOL vmlinux 0xaaf737ca blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab1408ee xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init +EXPORT_SYMBOL vmlinux 0xab38a992 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0xab3b75ea vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0xab4a4122 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab63baa5 unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xab640f10 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xab67a0ac dql_init +EXPORT_SYMBOL vmlinux 0xab68dc43 super_setup_bdi +EXPORT_SYMBOL vmlinux 0xab6d5b3b hex_to_bin +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7b71c8 __put_user_ns +EXPORT_SYMBOL vmlinux 0xabc7f64d mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0xabdb80f2 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0xabf0d32f rt_dst_alloc +EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1df54e dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac41a6b5 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xac431bea skb_vlan_untag +EXPORT_SYMBOL vmlinux 0xac537ac2 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xac5e748e ip_fraglist_init +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac76d96c amba_release_regions +EXPORT_SYMBOL vmlinux 0xac7bd63b console_start +EXPORT_SYMBOL vmlinux 0xac8597d5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xac9a9d42 get_watch_queue +EXPORT_SYMBOL vmlinux 0xac9fc845 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0xacaa4c72 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb010ba of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0xacba6552 param_get_long +EXPORT_SYMBOL vmlinux 0xacd352af scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xacd35ae6 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xacd36716 crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xacddd806 ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xacfb6de1 tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad128dc1 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0xad1d5caa netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0xad219dda max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xad23cb4d sock_set_priority +EXPORT_SYMBOL vmlinux 0xad2e3a00 md_check_recovery +EXPORT_SYMBOL vmlinux 0xad33ae3b of_get_next_parent +EXPORT_SYMBOL vmlinux 0xad357133 __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0xad3ea04c qman_p_irqsource_remove +EXPORT_SYMBOL vmlinux 0xad546d54 dcb_getapp +EXPORT_SYMBOL vmlinux 0xad682b8f xudma_rchanrt_write +EXPORT_SYMBOL vmlinux 0xad6ba40e radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0xad73041f autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xad7a8ef2 udp_gro_receive +EXPORT_SYMBOL vmlinux 0xad9171e9 dev_set_alias +EXPORT_SYMBOL vmlinux 0xad9901ae bit_waitqueue +EXPORT_SYMBOL vmlinux 0xad9ecfa9 folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0xada31e57 gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final +EXPORT_SYMBOL vmlinux 0xadbeed61 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0xadbf643a skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0xadc77b4b inet_del_protocol +EXPORT_SYMBOL vmlinux 0xadcce7e0 sync_file_create +EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed +EXPORT_SYMBOL vmlinux 0xadf98305 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xadfaa60e inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xadfdfcef __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae21fb5a con_is_bound +EXPORT_SYMBOL vmlinux 0xae2538d0 alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0xae2a9b00 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0xae33c403 xudma_navss_psil_unpair +EXPORT_SYMBOL vmlinux 0xae431423 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xae4804d6 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xae58af90 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xae5a04bb acpi_evaluate_dsm +EXPORT_SYMBOL vmlinux 0xae75cc5d max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xae85c41a pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0xae8a2bb1 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xae904e50 init_task +EXPORT_SYMBOL vmlinux 0xae96fd43 skb_append +EXPORT_SYMBOL vmlinux 0xaea47801 __do_once_slow_done +EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid +EXPORT_SYMBOL vmlinux 0xaeb082ad _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xaebd12f0 acpi_get_name +EXPORT_SYMBOL vmlinux 0xaebd4000 __bforget +EXPORT_SYMBOL vmlinux 0xaec92f61 netif_tx_lock +EXPORT_SYMBOL vmlinux 0xaeca8967 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xaee99abe icmp_ndo_send +EXPORT_SYMBOL vmlinux 0xaefcd4b9 ptp_find_pin +EXPORT_SYMBOL vmlinux 0xaf0ad849 nobh_writepage +EXPORT_SYMBOL vmlinux 0xaf200aa9 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf44ff1d tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0xaf52652d of_get_child_by_name +EXPORT_SYMBOL vmlinux 0xaf56600a arm64_use_ng_mappings +EXPORT_SYMBOL vmlinux 0xaf5a9148 tty_register_driver +EXPORT_SYMBOL vmlinux 0xaf5dd443 param_get_int +EXPORT_SYMBOL vmlinux 0xafb864c1 refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0xafc08054 dotdot_name +EXPORT_SYMBOL vmlinux 0xafc6c68e zstd_is_error +EXPORT_SYMBOL vmlinux 0xb01b4afc simple_rename +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb01ec47b rproc_del +EXPORT_SYMBOL vmlinux 0xb01f22dc tty_unthrottle +EXPORT_SYMBOL vmlinux 0xb02b3691 mount_bdev +EXPORT_SYMBOL vmlinux 0xb032866f consume_skb +EXPORT_SYMBOL vmlinux 0xb03c5658 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0xb04a43ad __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xb04b809b user_revoke +EXPORT_SYMBOL vmlinux 0xb05537ff neigh_for_each +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb063ad8c pps_lookup_dev +EXPORT_SYMBOL vmlinux 0xb06f9694 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xb098ff36 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0a5cd15 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xb0a62ca5 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xb0c5e247 lockref_put_return +EXPORT_SYMBOL vmlinux 0xb0cdc8f9 fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0xb0ce99b7 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0fb16e1 d_set_d_op +EXPORT_SYMBOL vmlinux 0xb10e7df4 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xb11cab2e param_ops_ullong +EXPORT_SYMBOL vmlinux 0xb1210e41 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb123e752 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb1342cdb _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xb1422162 skb_vlan_pop +EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 +EXPORT_SYMBOL vmlinux 0xb17091db flow_rule_match_control +EXPORT_SYMBOL vmlinux 0xb17eea24 build_skb +EXPORT_SYMBOL vmlinux 0xb19ac838 dma_supported +EXPORT_SYMBOL vmlinux 0xb19e418c mount_single +EXPORT_SYMBOL vmlinux 0xb1aafecf netlink_broadcast +EXPORT_SYMBOL vmlinux 0xb1bcb2c0 fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0xb1beacc1 serio_rescan +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c64191 msm_pinctrl_dev_pm_ops +EXPORT_SYMBOL vmlinux 0xb1cd040c single_release +EXPORT_SYMBOL vmlinux 0xb1d512d5 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xb1d51be9 __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0xb1db9a69 fsl_ifc_find +EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xb1df31df scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xb1e7908a mdiobus_register_device +EXPORT_SYMBOL vmlinux 0xb208873b pci_set_master +EXPORT_SYMBOL vmlinux 0xb223d979 get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0xb22df127 dquot_initialize +EXPORT_SYMBOL vmlinux 0xb22e0b25 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xb23027c1 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xb23eb296 rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0xb2505dcb fman_get_qman_channel_id +EXPORT_SYMBOL vmlinux 0xb252f421 neigh_destroy +EXPORT_SYMBOL vmlinux 0xb2560abd mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0xb265a69b cros_ec_check_result +EXPORT_SYMBOL vmlinux 0xb27de904 nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0xb2a2ef73 ucc_of_parse_tdm +EXPORT_SYMBOL vmlinux 0xb2bcb088 acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0xb2c3f69b truncate_pagecache +EXPORT_SYMBOL vmlinux 0xb2db10f2 of_device_alloc +EXPORT_SYMBOL vmlinux 0xb2e016d0 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0xb2ead97c kimage_vaddr +EXPORT_SYMBOL vmlinux 0xb2f35c6a xxh64 +EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken +EXPORT_SYMBOL vmlinux 0xb30b9822 vme_master_set +EXPORT_SYMBOL vmlinux 0xb320cc0e sg_init_one +EXPORT_SYMBOL vmlinux 0xb323e700 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0xb3258f79 __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0xb32728bb qcom_scm_iommu_secure_ptbl_init +EXPORT_SYMBOL vmlinux 0xb32ba4f8 simple_getattr +EXPORT_SYMBOL vmlinux 0xb333a7a9 __dec_node_page_state +EXPORT_SYMBOL vmlinux 0xb34dca1c kryo_l2_get_indirect_reg +EXPORT_SYMBOL vmlinux 0xb361a779 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xb363a499 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xb36891b0 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0xb397981b inet6_bind +EXPORT_SYMBOL vmlinux 0xb39cc038 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xb3a82019 profile_pc +EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0xb3d9e38a memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0xb3e30473 km_policy_expired +EXPORT_SYMBOL vmlinux 0xb3f0de55 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0xb3f313b9 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0xb3f49446 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xb3f548ad kmemdup_nul +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb4043948 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4282c7b mount_subtree +EXPORT_SYMBOL vmlinux 0xb4304faa keyring_alloc +EXPORT_SYMBOL vmlinux 0xb438a2c3 of_node_put +EXPORT_SYMBOL vmlinux 0xb43a47e3 sock_init_data +EXPORT_SYMBOL vmlinux 0xb4441b66 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0xb4544c80 netif_tx_unlock +EXPORT_SYMBOL vmlinux 0xb4577003 acpi_dev_present +EXPORT_SYMBOL vmlinux 0xb461a2da tcf_register_action +EXPORT_SYMBOL vmlinux 0xb4646171 rproc_detach +EXPORT_SYMBOL vmlinux 0xb47fd392 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb493beed nla_put +EXPORT_SYMBOL vmlinux 0xb4b9a494 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0xb4c1bc60 pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0xb4ef9eac nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xb4f13d2a abort +EXPORT_SYMBOL vmlinux 0xb4fbbe8d dma_unmap_resource +EXPORT_SYMBOL vmlinux 0xb50d1879 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xb510e7d6 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0xb51631ca vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0xb51a7df4 fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0xb5203789 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0xb52b527a param_ops_long +EXPORT_SYMBOL vmlinux 0xb53938ab mpage_read_folio +EXPORT_SYMBOL vmlinux 0xb5394f10 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0xb53ec41a ptp_clock_register +EXPORT_SYMBOL vmlinux 0xb53f2810 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb543f911 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xb545ef7e kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0xb5490cdd inet_frag_kill +EXPORT_SYMBOL vmlinux 0xb54e6319 ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0xb57f1e27 fman_port_disable +EXPORT_SYMBOL vmlinux 0xb5815d85 blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b03371 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xb5b54b34 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0xb5d4ece2 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xb5e6b2c3 read_cache_folio +EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xb5ecfa88 locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0xb5f88a3c ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xb6125da3 of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0xb61637f7 napi_get_frags +EXPORT_SYMBOL vmlinux 0xb61d6fc2 down_read_interruptible +EXPORT_SYMBOL vmlinux 0xb62ed063 sock_rfree +EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable +EXPORT_SYMBOL vmlinux 0xb63fcd48 pci_restore_state +EXPORT_SYMBOL vmlinux 0xb654ef65 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xb66c8ac3 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0xb66c9603 blk_rq_init +EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb66f83ae seq_read +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse +EXPORT_SYMBOL vmlinux 0xb6821a6f bdi_register +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0xb6b1331c put_ipc_ns +EXPORT_SYMBOL vmlinux 0xb6b9e217 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xb6bfcb8b input_reset_device +EXPORT_SYMBOL vmlinux 0xb6ca7008 d_alloc_anon +EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit +EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb6f3d190 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd +EXPORT_SYMBOL vmlinux 0xb7009de8 pci_dev_get +EXPORT_SYMBOL vmlinux 0xb705a476 seq_write +EXPORT_SYMBOL vmlinux 0xb70c4f7f pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0xb70eb242 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces +EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0xb737b185 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0xb739ce32 page_pool_update_nid +EXPORT_SYMBOL vmlinux 0xb74ab410 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0xb74ea890 md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xb74f8447 cdev_del +EXPORT_SYMBOL vmlinux 0xb7688155 ucc_slow_init +EXPORT_SYMBOL vmlinux 0xb788fb30 gic_pmr_sync +EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0xb7b7fa6e node_states +EXPORT_SYMBOL vmlinux 0xb7bdc60a pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb7c0f443 sort +EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0xb7d012b3 seq_lseek +EXPORT_SYMBOL vmlinux 0xb7db5002 __netif_napi_del +EXPORT_SYMBOL vmlinux 0xb7fb0554 mii_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xb80714ab mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0xb80b4a18 zstd_compress_bound +EXPORT_SYMBOL vmlinux 0xb814288f nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0xb822a58f flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0xb829f5d0 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xb82e3d63 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xb83aef1d inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xb842716c qcom_scm_ocmem_lock_available +EXPORT_SYMBOL vmlinux 0xb8605d9c qman_p_static_dequeue_add +EXPORT_SYMBOL vmlinux 0xb860c4bc pci_fixup_device +EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key +EXPORT_SYMBOL vmlinux 0xb87eb595 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xb87f3a87 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xb8801ca4 blk_put_queue +EXPORT_SYMBOL vmlinux 0xb88fd035 set_groups +EXPORT_SYMBOL vmlinux 0xb8993079 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb8a19fc1 inet_listen +EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link +EXPORT_SYMBOL vmlinux 0xb8b9f817 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xb8d5b379 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0xb8de3be5 reuseport_alloc +EXPORT_SYMBOL vmlinux 0xb8e50a40 phy_sfp_probe +EXPORT_SYMBOL vmlinux 0xb9056bb6 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max +EXPORT_SYMBOL vmlinux 0xb91eadb2 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xb920db49 acpi_tb_install_and_load_table +EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xb9478d90 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0xb94dbc31 _dev_alert +EXPORT_SYMBOL vmlinux 0xb9557d59 cdev_init +EXPORT_SYMBOL vmlinux 0xb95bd115 kset_unregister +EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context +EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse +EXPORT_SYMBOL vmlinux 0xb987409d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb98e090f devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xb98f96fe qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xb999be7a mr_table_alloc +EXPORT_SYMBOL vmlinux 0xb9af1d0d __xa_clear_mark +EXPORT_SYMBOL vmlinux 0xb9d3371c csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9fc381a qcom_scm_hdcp_req +EXPORT_SYMBOL vmlinux 0xba041ff0 nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat +EXPORT_SYMBOL vmlinux 0xba1008c8 __crc32c_le +EXPORT_SYMBOL vmlinux 0xba138977 genphy_loopback +EXPORT_SYMBOL vmlinux 0xba1455da inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xba3b4b28 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba53adab nla_policy_len +EXPORT_SYMBOL vmlinux 0xba707a78 qe_get_brg_clk +EXPORT_SYMBOL vmlinux 0xba8254e1 mmc_retune_release +EXPORT_SYMBOL vmlinux 0xba8fbd64 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xbaa2a145 thread_group_exited +EXPORT_SYMBOL vmlinux 0xbab0b8b9 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0xbab90a52 device_get_mac_address +EXPORT_SYMBOL vmlinux 0xbaed8d64 filp_open +EXPORT_SYMBOL vmlinux 0xbaeee35e i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xbafdd2fb sget_fc +EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset +EXPORT_SYMBOL vmlinux 0xbb0c6b2f sock_edemux +EXPORT_SYMBOL vmlinux 0xbb109719 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xbb21260e convert_ifc_address +EXPORT_SYMBOL vmlinux 0xbb22ac81 mii_check_link +EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb250cfc jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0xbb294861 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xbb2958c5 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xbb2e3d10 complete_request_key +EXPORT_SYMBOL vmlinux 0xbb420c1d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb53cdbf pci_scan_bus +EXPORT_SYMBOL vmlinux 0xbb687724 bman_new_pool +EXPORT_SYMBOL vmlinux 0xbb77a3ee con_is_visible +EXPORT_SYMBOL vmlinux 0xbb9ea70b pci_get_slot +EXPORT_SYMBOL vmlinux 0xbb9ed3bf mutex_trylock +EXPORT_SYMBOL vmlinux 0xbba7b0ae ihold +EXPORT_SYMBOL vmlinux 0xbbaa75c0 mdio_device_remove +EXPORT_SYMBOL vmlinux 0xbbb84cf1 configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0xbbcb973d of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0xbbe36b47 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xbbe80fdb kmalloc_order +EXPORT_SYMBOL vmlinux 0xbbf941e7 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc3d7086 netdev_reset_tc +EXPORT_SYMBOL vmlinux 0xbc60068b __mdiobus_register +EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf +EXPORT_SYMBOL vmlinux 0xbcb36fe4 hugetlb_optimize_vmemmap_key +EXPORT_SYMBOL vmlinux 0xbcb56ff7 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xbcc29f82 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xbcd79980 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0xbcdf5992 pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0xbcea6116 iov_iter_zero +EXPORT_SYMBOL vmlinux 0xbcfff3dd of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xbd002f8a sock_i_ino +EXPORT_SYMBOL vmlinux 0xbd22ea1a mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0xbd267507 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0xbd3244fe __find_get_block +EXPORT_SYMBOL vmlinux 0xbd332c0e genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xbd3e86ca md_error +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd4ceca0 __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbd628752 __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbd6841d4 crc16 +EXPORT_SYMBOL vmlinux 0xbd88a988 scsi_scan_target +EXPORT_SYMBOL vmlinux 0xbd8f784e dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xbda4a8e0 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xbdb67b00 napi_complete_done +EXPORT_SYMBOL vmlinux 0xbdcce61f write_inode_now +EXPORT_SYMBOL vmlinux 0xbdf09ea9 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xbe118c52 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xbe2616b2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xbe2eabc9 give_up_console +EXPORT_SYMBOL vmlinux 0xbe336bec scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xbe49252c acpi_os_write_port +EXPORT_SYMBOL vmlinux 0xbe4eb6ed secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xbe4f3191 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xbe5a24e9 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0xbe6a866f __wait_on_bit +EXPORT_SYMBOL vmlinux 0xbe6a8c96 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xbe6e0998 tso_start +EXPORT_SYMBOL vmlinux 0xbe98a3a4 xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0xbea01be2 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xbecba594 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xbecd82da input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0xbedc1a8f linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xbeec5f2b eth_type_trans +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefa51a3 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0xbf02a418 netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0xbf07c7fd noop_qdisc +EXPORT_SYMBOL vmlinux 0xbf3fbf53 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xbf40bb3d skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xbf426543 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0xbf5425c7 get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0xbf5895b2 make_kgid +EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init +EXPORT_SYMBOL vmlinux 0xbf69808c xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9f17ea ip_defrag +EXPORT_SYMBOL vmlinux 0xbfa0977d config_group_init +EXPORT_SYMBOL vmlinux 0xbfae9e07 utf8_validate +EXPORT_SYMBOL vmlinux 0xbfaf4b61 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xbfc0d310 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0xbfcbc0d2 stmp_reset_block +EXPORT_SYMBOL vmlinux 0xbfcf57d4 phy_print_status +EXPORT_SYMBOL vmlinux 0xbfd0ed2c md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0xbfdca0f1 udp_seq_start +EXPORT_SYMBOL vmlinux 0xbfe88082 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xc0030c34 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0xc013309a __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xc0162d6b genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0xc0194ed4 security_sock_graft +EXPORT_SYMBOL vmlinux 0xc0214611 clk_add_alias +EXPORT_SYMBOL vmlinux 0xc034cc68 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xc0364007 fault_in_writeable +EXPORT_SYMBOL vmlinux 0xc038ff4c vc_cons +EXPORT_SYMBOL vmlinux 0xc042eaeb pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xc060c3f4 page_pool_ethtool_stats_get +EXPORT_SYMBOL vmlinux 0xc06f467c nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0xc06f53a8 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc078d22c zstd_init_cstream +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc0841441 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xc089d21b pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xc0996599 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xc0aa6d21 dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0xc0afb5d7 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0xc0c15a71 ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0xc0c3492e in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xc0d84215 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xc0ec3b0d tcp_init_sock +EXPORT_SYMBOL vmlinux 0xc0faa22d rt_dst_clone +EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup +EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor +EXPORT_SYMBOL vmlinux 0xc1004bb3 iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0xc117dc22 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0xc1448494 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xc14dc168 acpi_get_data +EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc1579516 fman_port_enable +EXPORT_SYMBOL vmlinux 0xc15950a0 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xc164a51c keygen_init +EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xc1744ff4 follow_up +EXPORT_SYMBOL vmlinux 0xc17757ee twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xc178a6f1 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xc17bd221 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0xc195459c skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xc1960ae0 folio_account_redirty +EXPORT_SYMBOL vmlinux 0xc1993816 inc_nlink +EXPORT_SYMBOL vmlinux 0xc1af2890 folio_mapping +EXPORT_SYMBOL vmlinux 0xc1bace5a skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xc1bad147 of_phy_connect +EXPORT_SYMBOL vmlinux 0xc1c30332 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0xc1d5d504 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget +EXPORT_SYMBOL vmlinux 0xc1e2c742 tegra_io_rail_power_on +EXPORT_SYMBOL vmlinux 0xc1ef1cd1 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xc1f7fc25 get_user_pages +EXPORT_SYMBOL vmlinux 0xc1fcaa51 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xc2050974 fman_port_get_tstamp +EXPORT_SYMBOL vmlinux 0xc205104b skb_checksum +EXPORT_SYMBOL vmlinux 0xc210b48e edac_mc_find +EXPORT_SYMBOL vmlinux 0xc222af04 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc226b040 mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0xc22c834f d_make_root +EXPORT_SYMBOL vmlinux 0xc2310cdc logic_inl +EXPORT_SYMBOL vmlinux 0xc2361101 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xc236ffcb param_set_invbool +EXPORT_SYMBOL vmlinux 0xc23be2af lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0xc23d71a1 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xc241e8f5 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xc243a9b4 pcibus_to_node +EXPORT_SYMBOL vmlinux 0xc24a9e60 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc262c67f dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0xc269a819 __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0xc26f7c47 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc279982e __inet_hash +EXPORT_SYMBOL vmlinux 0xc28809a3 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2a1f42c ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xc2b0c7ef kill_fasync +EXPORT_SYMBOL vmlinux 0xc2bdc515 softnet_data +EXPORT_SYMBOL vmlinux 0xc2c104b4 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0xc2c82277 udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xc2cfa626 param_ops_ushort +EXPORT_SYMBOL vmlinux 0xc2dd80b5 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xc2e11727 file_path +EXPORT_SYMBOL vmlinux 0xc2e168ab caches_clean_inval_pou +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e82ca5 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xc2f11eac meson_sm_call_read +EXPORT_SYMBOL vmlinux 0xc2f52274 __lshrti3 +EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc31265ba xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xc32f0ac4 __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0xc36a3bd4 __acpi_handle_debug +EXPORT_SYMBOL vmlinux 0xc36eb0b5 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xc3762aec mempool_alloc +EXPORT_SYMBOL vmlinux 0xc37f9c6e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer +EXPORT_SYMBOL vmlinux 0xc3a9f743 nf_log_register +EXPORT_SYMBOL vmlinux 0xc3aabba8 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xc3bc72ad trace_print_array_seq +EXPORT_SYMBOL vmlinux 0xc3cd034d crc8_populate_lsb +EXPORT_SYMBOL vmlinux 0xc3d00606 tcf_block_get +EXPORT_SYMBOL vmlinux 0xc3dd05ad pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xc3e527c1 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xc3e567b0 uart_resume_port +EXPORT_SYMBOL vmlinux 0xc3fcbca6 security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0xc3ff38c2 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc3ff6d71 fs_context_for_submount +EXPORT_SYMBOL vmlinux 0xc4058363 cpufreq_get_policy +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 0xc452212c utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0xc4708199 cpm_muram_addr +EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc4892b9d config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0xc48b01a9 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xc4ae1b9d vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0xc4b21d2f qman_get_affine_portal +EXPORT_SYMBOL vmlinux 0xc4cc7e4d mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xc4d10632 always_delete_dentry +EXPORT_SYMBOL vmlinux 0xc4d3f1d5 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xc4d42e57 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc4ec95c1 unix_destruct_scm +EXPORT_SYMBOL vmlinux 0xc5001c1c generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0xc528a49a queued_write_lock_slowpath +EXPORT_SYMBOL vmlinux 0xc5335196 mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0xc551d634 inet_frag_find +EXPORT_SYMBOL vmlinux 0xc56a41e6 vabits_actual +EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0xc57147c8 registered_fb +EXPORT_SYMBOL vmlinux 0xc57c48a3 idr_get_next +EXPORT_SYMBOL vmlinux 0xc57f4ef3 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xc589e0d1 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xc58d5a90 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc59baccd proc_symlink +EXPORT_SYMBOL vmlinux 0xc59f8cfd dev_load +EXPORT_SYMBOL vmlinux 0xc5a3367a __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xc5ae625b fb_pan_display +EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on +EXPORT_SYMBOL vmlinux 0xc5d70719 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xc5de7371 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource +EXPORT_SYMBOL vmlinux 0xc5f57988 ip_frag_init +EXPORT_SYMBOL vmlinux 0xc5f7e801 sg_last +EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus +EXPORT_SYMBOL vmlinux 0xc615d8b6 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xc622556f prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc62f0716 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc636028e ppp_channel_index +EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xc66462d5 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc66a8304 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0xc67e2cfe dev_mc_init +EXPORT_SYMBOL vmlinux 0xc6836869 from_kgid +EXPORT_SYMBOL vmlinux 0xc68bc225 netif_device_detach +EXPORT_SYMBOL vmlinux 0xc68df6ed register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc695b7fd km_policy_notify +EXPORT_SYMBOL vmlinux 0xc69fce52 qcom_scm_qsmmu500_wait_safe_toggle +EXPORT_SYMBOL vmlinux 0xc6a472b7 fman_set_mac_max_frame +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d09aa9 release_firmware +EXPORT_SYMBOL vmlinux 0xc6d11db2 tcf_qevent_init +EXPORT_SYMBOL vmlinux 0xc6dede1b prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0xc6e355d7 dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0xc6ee950f fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key +EXPORT_SYMBOL vmlinux 0xc6f59678 page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0xc70285fd kill_block_super +EXPORT_SYMBOL vmlinux 0xc70851e3 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write +EXPORT_SYMBOL vmlinux 0xc71c9064 devm_of_iomap +EXPORT_SYMBOL vmlinux 0xc71d58fe of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc72bef83 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xc73ea4f4 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xc7411b0e pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xc74fae08 vme_irq_free +EXPORT_SYMBOL vmlinux 0xc766f516 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xc76df1a8 jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0xc77c6092 flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0xc77f844e pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0xc7806ec9 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7840bb9 fb_class +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc787dc5d kernel_param_lock +EXPORT_SYMBOL vmlinux 0xc7895a83 __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0xc79ad577 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7ad98a3 security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0xc7b1834f fddi_type_trans +EXPORT_SYMBOL vmlinux 0xc7c04f68 tcp_req_err +EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0xc7d094b5 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xc7f268dd param_ops_string +EXPORT_SYMBOL vmlinux 0xc80ab559 swake_up_one +EXPORT_SYMBOL vmlinux 0xc814f11c dquot_quota_off +EXPORT_SYMBOL vmlinux 0xc82f88a0 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0xc83009c2 tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0xc836e7ca flow_keys_dissector +EXPORT_SYMBOL vmlinux 0xc838c3f5 __ashrti3 +EXPORT_SYMBOL vmlinux 0xc83fb19b tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8588b00 rpmh_invalidate +EXPORT_SYMBOL vmlinux 0xc86674d1 rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8782468 has_capability +EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals +EXPORT_SYMBOL vmlinux 0xc88b4a88 key_revoke +EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc8937993 tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0xc89846c4 xudma_tchanrt_read +EXPORT_SYMBOL vmlinux 0xc8989fac netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread +EXPORT_SYMBOL vmlinux 0xc8ca7894 may_setattr +EXPORT_SYMBOL vmlinux 0xc8d0b0dc ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xc8d5956f pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xc8da1229 md_cluster_ops +EXPORT_SYMBOL vmlinux 0xc8dcc62a krealloc +EXPORT_SYMBOL vmlinux 0xc8dcd4f7 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xc8e4b340 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xc908801f xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc916dd46 __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0xc9204d7a is_subdir +EXPORT_SYMBOL vmlinux 0xc928497b sock_no_linger +EXPORT_SYMBOL vmlinux 0xc93e8461 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0xc943306c scsi_host_put +EXPORT_SYMBOL vmlinux 0xc957ac1c proc_create +EXPORT_SYMBOL vmlinux 0xc961846c blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc9822234 clk_register_clkdev +EXPORT_SYMBOL vmlinux 0xc9917d3a vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0xc9934978 dquot_destroy +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9c39737 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9e7b84a inode_nohighmem +EXPORT_SYMBOL vmlinux 0xc9eb6ebf input_match_device_id +EXPORT_SYMBOL vmlinux 0xc9ed0401 imx_sc_rm_is_resource_owned +EXPORT_SYMBOL vmlinux 0xc9faa3ba has_capability_noaudit +EXPORT_SYMBOL vmlinux 0xca1648d4 zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0xca1e2135 netdev_change_features +EXPORT_SYMBOL vmlinux 0xca1e436c find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free +EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function +EXPORT_SYMBOL vmlinux 0xca62afaf xudma_rflow_is_gp +EXPORT_SYMBOL vmlinux 0xca658c4d __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xca6b015b devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xca74fb6d tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0xca8a4f38 dcache_dir_open +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca9beaa4 __xa_store +EXPORT_SYMBOL vmlinux 0xcaa27e70 netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0xcaa65c87 sg_miter_start +EXPORT_SYMBOL vmlinux 0xcac413fc skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0xcac925f8 reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0xcacd57fd param_get_uint +EXPORT_SYMBOL vmlinux 0xcad1aca8 acpi_exception +EXPORT_SYMBOL vmlinux 0xcae57bf5 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb221f20 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xcb3307cc device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0xcb382a33 kobject_put +EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xcb58727d dev_uc_flush +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb79278b make_kprojid +EXPORT_SYMBOL vmlinux 0xcb817e38 _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0xcb90b9e0 deactivate_super +EXPORT_SYMBOL vmlinux 0xcb9f119c inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc736ab scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xcbc9d15e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xcbced49a set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xcbd4898c fortify_panic +EXPORT_SYMBOL vmlinux 0xcbe543c2 __destroy_inode +EXPORT_SYMBOL vmlinux 0xcbfb33e4 init_opal_dev +EXPORT_SYMBOL vmlinux 0xcbffb207 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xcc070735 fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0xcc1903d2 vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0xcc1b882a idr_get_next_ul +EXPORT_SYMBOL vmlinux 0xcc1f89c7 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xcc23002a hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class +EXPORT_SYMBOL vmlinux 0xcc411ed1 ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0xcc43542a sk_mc_loop +EXPORT_SYMBOL vmlinux 0xcc445ceb __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0xcc4c9c80 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5c2df4 trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0xcc5d22d9 can_do_mlock +EXPORT_SYMBOL vmlinux 0xcc62d017 dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0xcc642f70 of_graph_get_port_by_id +EXPORT_SYMBOL vmlinux 0xcc7a9781 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xcc8b7a83 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0xcca2fbbd __block_write_begin +EXPORT_SYMBOL vmlinux 0xcca5839d xen_vcpu_id +EXPORT_SYMBOL vmlinux 0xccb12152 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xccc1c393 config_item_set_name +EXPORT_SYMBOL vmlinux 0xccc9b234 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xccd0d33f page_pool_destroy +EXPORT_SYMBOL vmlinux 0xccd4c999 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xcce049d8 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0xccfb8af9 __wait_on_buffer +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 0xcd256667 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0xcd256b45 dev_add_offload +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd2fa3ed current_time +EXPORT_SYMBOL vmlinux 0xcd8281d1 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev +EXPORT_SYMBOL vmlinux 0xce036f24 sg_split +EXPORT_SYMBOL vmlinux 0xce096e12 thaw_super +EXPORT_SYMBOL vmlinux 0xce1954c9 tegra_ivc_init +EXPORT_SYMBOL vmlinux 0xce236993 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2ac5e9 seq_read_iter +EXPORT_SYMBOL vmlinux 0xce4c62c0 xfrm_lookup_with_ifid +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 0xce731b34 ucc_slow_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0xce746205 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xce76c257 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xce807a25 up_write +EXPORT_SYMBOL vmlinux 0xce8a55ef scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xce986535 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xcea2e0a1 _dev_emerg +EXPORT_SYMBOL vmlinux 0xcea6ad99 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul +EXPORT_SYMBOL vmlinux 0xceaeea79 ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0xced0f4d4 gen_pool_create +EXPORT_SYMBOL vmlinux 0xcee9c236 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xceec8abd __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xcef8200c unlock_page +EXPORT_SYMBOL vmlinux 0xcefb0c9f __mutex_init +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0182c6 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xcf026aab jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcf0730a9 of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0xcf08a8e9 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0xcf0e4735 mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0xcf1d9c79 vfs_fadvise +EXPORT_SYMBOL vmlinux 0xcf1e9989 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xcf2a6966 up +EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xcf46c12b rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xcf491223 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0xcf4fdd4d _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xcf5dbe1a devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0xcf6bed9d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xcf78d8bc pci_claim_resource +EXPORT_SYMBOL vmlinux 0xcf8c5a10 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xcf9ae600 pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0xcf9c7f23 of_device_is_available +EXPORT_SYMBOL vmlinux 0xcfa7e913 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xcfc9deaf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xcfce882a param_set_short +EXPORT_SYMBOL vmlinux 0xcfd357ba scsi_partsize +EXPORT_SYMBOL vmlinux 0xcfd5561b fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0xcfd884a8 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0xcfeb98a8 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xd00b73fa rtc_add_groups +EXPORT_SYMBOL vmlinux 0xd0239966 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xd03c6bd4 param_set_long +EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0xd052c90a genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function +EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive +EXPORT_SYMBOL vmlinux 0xd08adb2b trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0xd09476f0 sock_pfree +EXPORT_SYMBOL vmlinux 0xd095e3e8 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0xd0aa5dc1 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0xd0b74705 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xd0c5ca1a pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xd0cb9aba submit_bio_noacct +EXPORT_SYMBOL vmlinux 0xd0ccdd2e seg6_push_hmac +EXPORT_SYMBOL vmlinux 0xd0d2f269 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd0dd81c5 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0xd0fe8d51 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xd10ee979 sunxi_sram_release +EXPORT_SYMBOL vmlinux 0xd111ece4 follow_pfn +EXPORT_SYMBOL vmlinux 0xd1233342 bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0xd129b03a pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0xd12a9ed8 folio_unlock +EXPORT_SYMBOL vmlinux 0xd12ff3f2 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xd133ae6a mntput +EXPORT_SYMBOL vmlinux 0xd1363cc1 ucs2_strsize +EXPORT_SYMBOL vmlinux 0xd1368ca8 trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xd13e89c0 sock_no_accept +EXPORT_SYMBOL vmlinux 0xd14e6b4c mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0xd159346e ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xd15e3557 phy_attach_direct +EXPORT_SYMBOL vmlinux 0xd162fdb0 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0xd172f18d jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0xd1849ff7 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xd198bdf5 gro_cells_receive +EXPORT_SYMBOL vmlinux 0xd19bd52c md_flush_request +EXPORT_SYMBOL vmlinux 0xd19de1e7 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0xd1f32617 mmc_retune_pause +EXPORT_SYMBOL vmlinux 0xd2051916 qcom_scm_cpu_power_down +EXPORT_SYMBOL vmlinux 0xd2237016 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0xd226fe16 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xd235eefe netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0xd23a0001 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0xd240ad4a scsi_ioctl +EXPORT_SYMBOL vmlinux 0xd24108d4 rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0xd2582f8f __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xd25bc5d4 csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26d22b1 rio_query_mport +EXPORT_SYMBOL vmlinux 0xd2708844 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0xd2758cb7 amba_device_register +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd2a83560 vfs_get_tree +EXPORT_SYMBOL vmlinux 0xd2a86e3c devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0xd2b06572 filemap_alloc_folio +EXPORT_SYMBOL vmlinux 0xd2b6b132 pnp_start_dev +EXPORT_SYMBOL vmlinux 0xd2ba4607 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xd2bc13f8 pci_iomap_range +EXPORT_SYMBOL vmlinux 0xd2bc2c4f neigh_direct_output +EXPORT_SYMBOL vmlinux 0xd2c99738 __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd2d4f81c __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2dbacab __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xd2e04b04 tcp_conn_request +EXPORT_SYMBOL vmlinux 0xd2e2a9d0 hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xd2ea49b8 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0xd3100665 backlight_device_register +EXPORT_SYMBOL vmlinux 0xd3137876 dec_node_page_state +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3208f76 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xd322ccf3 of_node_get +EXPORT_SYMBOL vmlinux 0xd33b0848 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xd3543063 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0xd3559ef4 __memset +EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xd35cce70 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 +EXPORT_SYMBOL vmlinux 0xd36e3d59 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xd37b3586 noop_llseek +EXPORT_SYMBOL vmlinux 0xd37cbe97 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0xd3b37507 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xd3c1d41b mpage_readahead +EXPORT_SYMBOL vmlinux 0xd3c29cf4 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0xd3dc46f2 folio_mark_accessed +EXPORT_SYMBOL vmlinux 0xd3dda8fb ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd40c0824 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xd40f1817 bpf_map_get +EXPORT_SYMBOL vmlinux 0xd40f8d55 __free_pages +EXPORT_SYMBOL vmlinux 0xd45cc6ca bin2hex +EXPORT_SYMBOL vmlinux 0xd45f699f xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xd46dca8f mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd487c8c3 inet_put_port +EXPORT_SYMBOL vmlinux 0xd49e93ef __put_page +EXPORT_SYMBOL vmlinux 0xd49eb13d ipv6_sock_mc_drop +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 0xd4e81e6d pipe_lock +EXPORT_SYMBOL vmlinux 0xd4f416b5 __of_get_address +EXPORT_SYMBOL vmlinux 0xd4f609f7 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xd4fa5a87 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xd50f73b0 seq_escape_mem +EXPORT_SYMBOL vmlinux 0xd513c8a8 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5346bfc acpi_get_possible_resources +EXPORT_SYMBOL vmlinux 0xd5725a30 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0xd5b3d0d5 xxh64_copy_state +EXPORT_SYMBOL vmlinux 0xd5b9d68c dev_uc_add +EXPORT_SYMBOL vmlinux 0xd5f75971 pnp_get_resource +EXPORT_SYMBOL vmlinux 0xd5fa66b0 pci_find_capability +EXPORT_SYMBOL vmlinux 0xd5fd90f1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0xd60ce187 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xd62ecd49 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xd635e1d1 sock_no_listen +EXPORT_SYMBOL vmlinux 0xd63db3d4 simple_statfs +EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xd66ba99c ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xd66c8184 add_device_randomness +EXPORT_SYMBOL vmlinux 0xd6742a28 vm_event_states +EXPORT_SYMBOL vmlinux 0xd67c5809 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource +EXPORT_SYMBOL vmlinux 0xd68e06ba tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0xd691c6a9 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd6967263 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xd696e6a6 serio_bus +EXPORT_SYMBOL vmlinux 0xd69982ab drop_super +EXPORT_SYMBOL vmlinux 0xd69f72ea readahead_expand +EXPORT_SYMBOL vmlinux 0xd6a0c163 bio_init_clone +EXPORT_SYMBOL vmlinux 0xd6a91f54 twl_i2c_read +EXPORT_SYMBOL vmlinux 0xd6ae4892 skb_eth_push +EXPORT_SYMBOL vmlinux 0xd6b93e17 fsl_ifc_ctrl_dev +EXPORT_SYMBOL vmlinux 0xd6ba6309 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xd6eaaea1 full_name_hash +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f0a692 __fs_parse +EXPORT_SYMBOL vmlinux 0xd6fde043 is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0xd7002655 kill_pid +EXPORT_SYMBOL vmlinux 0xd70d35a1 gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0xd70d468e security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xd70f62b6 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xd7227f7b clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0xd7331023 skb_pull +EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd7482f05 vcalloc +EXPORT_SYMBOL vmlinux 0xd757c0b8 seq_puts +EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load +EXPORT_SYMBOL vmlinux 0xd7c2c0d8 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete +EXPORT_SYMBOL vmlinux 0xd7d53b42 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xd7d5d4c7 fman_get_revision +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ff1b8a __ashlti3 +EXPORT_SYMBOL vmlinux 0xd806273c padata_alloc +EXPORT_SYMBOL vmlinux 0xd808f64d dup_iter +EXPORT_SYMBOL vmlinux 0xd8131274 qman_alloc_cgrid_range +EXPORT_SYMBOL vmlinux 0xd81fced3 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xd828f063 xudma_tchanrt_write +EXPORT_SYMBOL vmlinux 0xd84cafcc __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0xd8513dd5 rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0xd891994a unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd89e4bae iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font +EXPORT_SYMBOL vmlinux 0xd8b98519 tegra_ivc_write_get_next_frame +EXPORT_SYMBOL vmlinux 0xd8df08ac acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xd8e210bd d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xd8ecf0e1 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xd9041649 param_set_copystring +EXPORT_SYMBOL vmlinux 0xd91c400e clocksource_unregister +EXPORT_SYMBOL vmlinux 0xd91f6ab6 strnlen_user +EXPORT_SYMBOL vmlinux 0xd927e904 flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0xd929ed3d skb_dequeue +EXPORT_SYMBOL vmlinux 0xd92bceba of_mdio_find_device +EXPORT_SYMBOL vmlinux 0xd92deb6b acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xd934940a flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0xd9491c14 xa_destroy +EXPORT_SYMBOL vmlinux 0xd94c34c2 proc_mkdir +EXPORT_SYMBOL vmlinux 0xd959c125 make_kuid +EXPORT_SYMBOL vmlinux 0xd97dec5c tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xd9828144 blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd990c6e5 kill_pgrp +EXPORT_SYMBOL vmlinux 0xd9a1c09d ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0xd9a5ea54 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xd9a8e4a4 release_sock +EXPORT_SYMBOL vmlinux 0xd9ab56fe dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0xd9b85ef6 lockref_get +EXPORT_SYMBOL vmlinux 0xd9b8eaea __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xd9bbff0d vfs_iter_write +EXPORT_SYMBOL vmlinux 0xd9cad3a0 __register_chrdev +EXPORT_SYMBOL vmlinux 0xd9cff770 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd9d2b4a9 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xd9d88e50 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler +EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0xd9e820bf _dev_err +EXPORT_SYMBOL vmlinux 0xda10443c xudma_tchan_get_id +EXPORT_SYMBOL vmlinux 0xda254f56 phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda5bab78 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xda632d56 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xda84c53b tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0xda97985c skb_dump +EXPORT_SYMBOL vmlinux 0xdab056a0 rproc_da_to_va +EXPORT_SYMBOL vmlinux 0xdab2352d sg_miter_stop +EXPORT_SYMBOL vmlinux 0xdab7eaf9 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0xdaca820e dynamic_preempt_schedule +EXPORT_SYMBOL vmlinux 0xdaccb338 nf_log_trace +EXPORT_SYMBOL vmlinux 0xdad1fc3f zstd_flush_stream +EXPORT_SYMBOL vmlinux 0xdaeb2732 nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0xdaec288d pr_flush +EXPORT_SYMBOL vmlinux 0xdaed2f50 udp_read_sock +EXPORT_SYMBOL vmlinux 0xdaee185c tcp_disconnect +EXPORT_SYMBOL vmlinux 0xdb1105e3 of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0xdb20c8d6 bio_chain +EXPORT_SYMBOL vmlinux 0xdb2abde4 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0xdb2f5d31 rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0xdb484e3c __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0xdb4cde7a of_get_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0xdb67ad21 genphy_read_status +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb78a39b dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0xdb8cd3ef bdevname +EXPORT_SYMBOL vmlinux 0xdba2f8ce mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0xdbabcc72 touch_buffer +EXPORT_SYMBOL vmlinux 0xdbaf5bcf mdiobb_read +EXPORT_SYMBOL vmlinux 0xdbb12111 input_register_handle +EXPORT_SYMBOL vmlinux 0xdbc722d5 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xdbcf041a acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xdbd21521 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource +EXPORT_SYMBOL vmlinux 0xdbe409a0 bh_submit_read +EXPORT_SYMBOL vmlinux 0xdbe77df3 datagram_poll +EXPORT_SYMBOL vmlinux 0xdbedd49c __skb_pad +EXPORT_SYMBOL vmlinux 0xdbf2be33 of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1b5cab padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xdc1e188b dquot_release +EXPORT_SYMBOL vmlinux 0xdc21c53c neigh_event_ns +EXPORT_SYMBOL vmlinux 0xdc34158f fman_port_init +EXPORT_SYMBOL vmlinux 0xdc389c84 vme_bus_type +EXPORT_SYMBOL vmlinux 0xdc39d5f4 current_in_userns +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc428b4a kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0xdc43f74e mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0xdc5092d7 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xdc512134 backlight_register_notifier +EXPORT_SYMBOL vmlinux 0xdc5ae7e0 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0xdc71a5e6 qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0xdc8b3601 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xdc90ef3c xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xdc9ca65c phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0xdca8c3d4 logic_outb +EXPORT_SYMBOL vmlinux 0xdca9d11d simple_recursive_removal +EXPORT_SYMBOL vmlinux 0xdcb6c3bd is_nd_btt +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdcdc0040 slhc_compress +EXPORT_SYMBOL vmlinux 0xdcf3fc45 netlink_ack +EXPORT_SYMBOL vmlinux 0xdcf40e25 sock_set_mark +EXPORT_SYMBOL vmlinux 0xdd00447a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xdd18a993 acpi_check_dsm +EXPORT_SYMBOL vmlinux 0xdd1d31dd genl_unregister_family +EXPORT_SYMBOL vmlinux 0xdd203b08 handle_edge_irq +EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create +EXPORT_SYMBOL vmlinux 0xdd2fa625 blackhole_netdev +EXPORT_SYMBOL vmlinux 0xdd440d38 tty_port_init +EXPORT_SYMBOL vmlinux 0xdd4d55b6 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0xdd54bbfb of_io_request_and_map +EXPORT_SYMBOL vmlinux 0xdd605c48 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xdd62fa65 fb_find_mode +EXPORT_SYMBOL vmlinux 0xdd64e639 strscpy +EXPORT_SYMBOL vmlinux 0xdd6bab90 key_alloc +EXPORT_SYMBOL vmlinux 0xdd6cadeb phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0xdd721b52 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0xdd7e3192 qcom_scm_pas_auth_and_reset +EXPORT_SYMBOL vmlinux 0xdd8166a1 dma_fence_free +EXPORT_SYMBOL vmlinux 0xdd83b989 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xdd88e79c prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0xdd89265f vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xdd897652 scm_fp_dup +EXPORT_SYMBOL vmlinux 0xdd8ba07d del_gendisk +EXPORT_SYMBOL vmlinux 0xdda4e1bb pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xddaa9de5 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xddc9efc4 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0xddf6ad7a completion_done +EXPORT_SYMBOL vmlinux 0xde135165 drop_super_exclusive +EXPORT_SYMBOL vmlinux 0xde28d6fc tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xde293f9e add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xde3cf04f inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xde4ad737 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xde4d4ace dim_calc_stats +EXPORT_SYMBOL vmlinux 0xde4f9618 d_lookup +EXPORT_SYMBOL vmlinux 0xde55a992 device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0xde5c6d2a seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0xde5e5c5e __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xde7a78db skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0xde8b5d91 generic_file_open +EXPORT_SYMBOL vmlinux 0xde9950ad devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0xde9f9d94 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0xdea34f94 amba_request_regions +EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xdee914bc i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode +EXPORT_SYMBOL vmlinux 0xdf0e88df param_get_charp +EXPORT_SYMBOL vmlinux 0xdf256037 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf2d718d to_ndd +EXPORT_SYMBOL vmlinux 0xdf2ebb87 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xdf321325 dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0xdf36914b xa_find_after +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf56b0f5 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xdf6b082f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf8f772e audit_log +EXPORT_SYMBOL vmlinux 0xdf9048e2 vm_insert_pages +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf93b9d8 timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0xdfa2eb2d kernel_listen +EXPORT_SYMBOL vmlinux 0xdfa440d5 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xdfc12ef1 zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0xdfcc992c current_work +EXPORT_SYMBOL vmlinux 0xdfe66ea6 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xdff15c40 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0xdff905e5 vme_slave_free +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe002e7f8 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0xe007ba20 __neigh_event_send +EXPORT_SYMBOL vmlinux 0xe00dc31b xfrm_state_lookup +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 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe047b33d sync_blockdev +EXPORT_SYMBOL vmlinux 0xe04c3e15 wireless_send_event +EXPORT_SYMBOL vmlinux 0xe070019a __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0xe07e5f44 acpi_reconfig_notifier_unregister +EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups +EXPORT_SYMBOL vmlinux 0xe082e88d acpi_check_address_range +EXPORT_SYMBOL vmlinux 0xe0896517 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xe08b4f7a iov_iter_revert +EXPORT_SYMBOL vmlinux 0xe091c977 list_sort +EXPORT_SYMBOL vmlinux 0xe0a111bb fb_prepare_logo +EXPORT_SYMBOL vmlinux 0xe0a323f6 __do_once_slow_start +EXPORT_SYMBOL vmlinux 0xe0a75a76 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bbebe4 filemap_fault +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0d644b6 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xe0f87bf2 dst_release_immediate +EXPORT_SYMBOL vmlinux 0xe1042d84 km_report +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe119927a skb_queue_purge +EXPORT_SYMBOL vmlinux 0xe11b168f netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0xe11fa209 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0xe1217dca __neigh_create +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 0xe1395ff9 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe13f1a70 vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xe1457881 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0xe14dc25c pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0xe15697b9 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0xe1636676 udp_disconnect +EXPORT_SYMBOL vmlinux 0xe1760a76 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xe18d9c87 nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0xe190864b netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xe19e9ea6 acpi_mdiobus_register +EXPORT_SYMBOL vmlinux 0xe19f30a7 folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0xe1a32421 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xe1c60676 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format +EXPORT_SYMBOL vmlinux 0xe1e29001 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xe1f132a9 __napi_schedule +EXPORT_SYMBOL vmlinux 0xe1f42d7a file_remove_privs +EXPORT_SYMBOL vmlinux 0xe1fbc577 bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0xe2172e02 cpu_hwcaps +EXPORT_SYMBOL vmlinux 0xe21f18ac __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0xe22c4050 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe24638f3 netlink_capable +EXPORT_SYMBOL vmlinux 0xe24a3e69 param_ops_charp +EXPORT_SYMBOL vmlinux 0xe271128b cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0xe273d75d alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0xe2756e64 vm_map_pages +EXPORT_SYMBOL vmlinux 0xe29f3df7 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xe2cabbf8 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e02847 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0xe2e3aea6 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0xe303c839 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xe30e6210 get_tree_bdev +EXPORT_SYMBOL vmlinux 0xe31c43d6 page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest +EXPORT_SYMBOL vmlinux 0xe354f729 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xe3582b04 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0xe35e4c2d fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0xe3760c09 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xe38a6d1c phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0xe3979de4 phy_init_eee +EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 +EXPORT_SYMBOL vmlinux 0xe39f2dfb phy_do_ioctl +EXPORT_SYMBOL vmlinux 0xe3b711eb configfs_depend_item +EXPORT_SYMBOL vmlinux 0xe3bfc18c vc_resize +EXPORT_SYMBOL vmlinux 0xe3c69e8e tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0xe3d6bca6 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe40976c0 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0xe40c37ea down_write_trylock +EXPORT_SYMBOL vmlinux 0xe424cd13 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xe4329092 __ctzdi2 +EXPORT_SYMBOL vmlinux 0xe43d0958 kill_anon_super +EXPORT_SYMBOL vmlinux 0xe459c0f7 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xe46021ca _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe478fa35 clkdev_add +EXPORT_SYMBOL vmlinux 0xe49fb315 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xe4bbc1dd kimage_voffset +EXPORT_SYMBOL vmlinux 0xe4bc2c2f hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe4cbed4d mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0xe4ce9e3c mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0xe4ea49a9 phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xe4f79499 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xe4fa8203 fs_param_is_path +EXPORT_SYMBOL vmlinux 0xe5067e9c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xe50e5c4f blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5257a75 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0xe5486e13 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xe561bb3f udp_gro_complete +EXPORT_SYMBOL vmlinux 0xe56dae2e blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xe57feefb qcom_scm_ocmem_unlock +EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0xe580d39a blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0xe5881dac tty_port_close_start +EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0xe594b8ab inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0xe598b80c netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0xe5a661d8 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xe5aafb6b dev_uc_del +EXPORT_SYMBOL vmlinux 0xe5ab4db8 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xe5b7ecbf dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0xe5be8d01 netif_schedule_queue +EXPORT_SYMBOL vmlinux 0xe5c60bd2 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cc74a0 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0xe5fbc034 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0xe613a798 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0xe61d5f49 truncate_setsize +EXPORT_SYMBOL vmlinux 0xe6233e32 pci_release_regions +EXPORT_SYMBOL vmlinux 0xe6245a2d vme_dma_list_add +EXPORT_SYMBOL vmlinux 0xe62900c0 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xe62c3a27 fs_param_is_blob +EXPORT_SYMBOL vmlinux 0xe64f92ac mdio_device_reset +EXPORT_SYMBOL vmlinux 0xe6550092 utf8_casefold +EXPORT_SYMBOL vmlinux 0xe65950a8 sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0xe6627993 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xe66d5242 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe67cbb2e dput +EXPORT_SYMBOL vmlinux 0xe68c0c45 noop_dirty_folio +EXPORT_SYMBOL vmlinux 0xe68efe41 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xe6947cbe seq_path +EXPORT_SYMBOL vmlinux 0xe6a74542 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xe6a87f3e of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0xe6fa06a2 rename_lock +EXPORT_SYMBOL vmlinux 0xe702782e xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0xe7053e60 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xe70935c1 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xe7145f8c input_set_timestamp +EXPORT_SYMBOL vmlinux 0xe724132b freeze_bdev +EXPORT_SYMBOL vmlinux 0xe7257ab8 xa_store_range +EXPORT_SYMBOL vmlinux 0xe7414af0 of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0xe74d75c5 vm_mmap +EXPORT_SYMBOL vmlinux 0xe751bab7 security_path_mknod +EXPORT_SYMBOL vmlinux 0xe7698027 ioremap_cache +EXPORT_SYMBOL vmlinux 0xe78da42c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xe7981711 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xe7a02573 ida_alloc_range +EXPORT_SYMBOL vmlinux 0xe7ab1ecc _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xe7b0353b __cpu_active_mask +EXPORT_SYMBOL vmlinux 0xe7b07527 dump_skip_to +EXPORT_SYMBOL vmlinux 0xe7bcd4ff netdev_crit +EXPORT_SYMBOL vmlinux 0xe7c6f416 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xe7cccfbd devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7fba8f4 dma_pool_create +EXPORT_SYMBOL vmlinux 0xe7fee9f8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe82d5fe7 param_ops_bool +EXPORT_SYMBOL vmlinux 0xe8330a5a call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe85deec4 dma_fence_describe +EXPORT_SYMBOL vmlinux 0xe85f2123 acpi_tb_unload_table +EXPORT_SYMBOL vmlinux 0xe877081b read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xe879d5d4 inode_permission +EXPORT_SYMBOL vmlinux 0xe87a5a9e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xe87c7e7e blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0xe88850d0 tty_write_room +EXPORT_SYMBOL vmlinux 0xe8b5c3c3 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xe8bbdee1 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xe8cc4f7d phy_stop +EXPORT_SYMBOL vmlinux 0xe8f8df2e mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xe8fbf4fa __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xe90253f0 xudma_rflow_get +EXPORT_SYMBOL vmlinux 0xe909997a bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91919c4 xp_alloc +EXPORT_SYMBOL vmlinux 0xe91c3485 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0xe928fca4 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0xe92bb26e unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0xe93bfc73 __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95d685f vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xe968285c vfs_get_link +EXPORT_SYMBOL vmlinux 0xe975e5ff tcp_peek_len +EXPORT_SYMBOL vmlinux 0xe9793edd xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0xe97aeb61 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xe97bda63 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0xe987a392 blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0xe98fd494 ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0xe9a5e527 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0xe9ae9c19 pci_find_bus +EXPORT_SYMBOL vmlinux 0xe9af7397 __xa_set_mark +EXPORT_SYMBOL vmlinux 0xe9bfcc5a _copy_from_iter +EXPORT_SYMBOL vmlinux 0xe9c0abc2 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xe9c72296 ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0xe9dc12a4 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0xe9dcd2b4 init_pseudo +EXPORT_SYMBOL vmlinux 0xe9e0b30f bdi_unregister +EXPORT_SYMBOL vmlinux 0xe9e34a0e sync_blockdev_range +EXPORT_SYMBOL vmlinux 0xe9e3ef33 rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0xe9e8faeb efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0xe9f27ebf sget +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9f91ac1 flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0xe9ffc063 down_trylock +EXPORT_SYMBOL vmlinux 0xea0a7d92 nf_reinject +EXPORT_SYMBOL vmlinux 0xea0f3aee input_get_timestamp +EXPORT_SYMBOL vmlinux 0xea1c3e3a arm_smccc_1_2_hvc +EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int +EXPORT_SYMBOL vmlinux 0xea61c3b5 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xea69ef3a cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0xea772c8f netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xea778fab sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0xea83d411 iov_iter_kvec +EXPORT_SYMBOL vmlinux 0xea8c1eac default_llseek +EXPORT_SYMBOL vmlinux 0xea8e5686 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0xeab6f4c4 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xeab8f7f3 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0xeac97975 pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0xead8c400 bman_get_bpid +EXPORT_SYMBOL vmlinux 0xeadfe8f6 generic_write_end +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae78586 sock_no_getname +EXPORT_SYMBOL vmlinux 0xeafb2d22 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeb078aee _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xeb109f6a config_item_init_type_name +EXPORT_SYMBOL vmlinux 0xeb233a45 __kmalloc +EXPORT_SYMBOL vmlinux 0xeb3001e8 udplite_prot +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb4271eb __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb5b8bbd devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0xeb7329a2 qcom_scm_set_warm_boot_addr +EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices +EXPORT_SYMBOL vmlinux 0xeb9e913d sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint +EXPORT_SYMBOL vmlinux 0xeb9fe575 is_acpi_data_node +EXPORT_SYMBOL vmlinux 0xeba9e359 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xebc0fd2c mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xebc1b40f bio_copy_data +EXPORT_SYMBOL vmlinux 0xebc3e259 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xebc52331 set_posix_acl +EXPORT_SYMBOL vmlinux 0xebd13a53 page_pool_release_page +EXPORT_SYMBOL vmlinux 0xebd8d632 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xebda31d5 dev_addr_del +EXPORT_SYMBOL vmlinux 0xebe8b479 register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0xebfcb96f dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xec0d4e94 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xec1973fb tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0xec2117c3 fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0xec22a657 mdiobus_free +EXPORT_SYMBOL vmlinux 0xec24b66b register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0xec2b8a42 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xec2e1c8f proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xec2f2a9d phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0xec33c668 __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xec41716a qman_alloc_fqid_range +EXPORT_SYMBOL vmlinux 0xec4a858a inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec53b636 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xec5dc873 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xec6c20c1 unregister_console +EXPORT_SYMBOL vmlinux 0xec77c5a2 netdev_err +EXPORT_SYMBOL vmlinux 0xec7d4439 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xec92a827 cad_pid +EXPORT_SYMBOL vmlinux 0xec983944 netif_device_attach +EXPORT_SYMBOL vmlinux 0xec990569 phy_start_aneg +EXPORT_SYMBOL vmlinux 0xec9ff4fa file_fdatawait_range +EXPORT_SYMBOL vmlinux 0xecaf24f7 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xece52f50 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf09495 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0xecfd68ef acpi_get_node +EXPORT_SYMBOL vmlinux 0xed00c4fb acpi_os_printf +EXPORT_SYMBOL vmlinux 0xed1379ea vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xed145220 elv_rb_del +EXPORT_SYMBOL vmlinux 0xed218504 send_sig_info +EXPORT_SYMBOL vmlinux 0xed238617 __put_cred +EXPORT_SYMBOL vmlinux 0xed4889a8 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0xed52ecec filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0xed548d4c lookup_one +EXPORT_SYMBOL vmlinux 0xed55f929 acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0xed57b45b scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xed60f77e simple_unlink +EXPORT_SYMBOL vmlinux 0xed652357 kobject_del +EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable +EXPORT_SYMBOL vmlinux 0xed672bc7 migrate_page_copy +EXPORT_SYMBOL vmlinux 0xed7204d0 register_framebuffer +EXPORT_SYMBOL vmlinux 0xed7a9819 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0xed82a414 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xed871d3a skb_checksum_help +EXPORT_SYMBOL vmlinux 0xed8a2d95 memset64 +EXPORT_SYMBOL vmlinux 0xed8ee335 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xed90bdee __nla_put +EXPORT_SYMBOL vmlinux 0xeda47f07 dev_get_mac_address +EXPORT_SYMBOL vmlinux 0xeda819de pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0xedafcf6a sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0xedb72720 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc8c68c ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0xedd01d93 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout +EXPORT_SYMBOL vmlinux 0xedd9e538 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0xeddad1ae blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0xeddafc94 lru_cache_add +EXPORT_SYMBOL vmlinux 0xeddea18e mpage_writepage +EXPORT_SYMBOL vmlinux 0xedee97ca __ClearPageMovable +EXPORT_SYMBOL vmlinux 0xedf7c225 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0xee1014d6 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xee22974a tegra_ivc_reset +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee306042 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xee3269a1 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0xee3be393 flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0xee44220b set_page_writeback +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee7d7deb gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee8178e2 qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0xee883b06 __vmalloc_array +EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit +EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeaf3f2d nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0xeeb44ade reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0xeeb48f60 get_tree_nodev +EXPORT_SYMBOL vmlinux 0xeee75d91 ucc_fast_init +EXPORT_SYMBOL vmlinux 0xeeece23a netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0xeeffcf88 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xef209b19 irq_set_chip +EXPORT_SYMBOL vmlinux 0xef3638e5 ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0xef37ad6d acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xef451a19 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xef4d3967 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xef572379 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xef5ba9dc inet_add_offload +EXPORT_SYMBOL vmlinux 0xef8ac53d qcom_scm_restore_sec_cfg +EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work +EXPORT_SYMBOL vmlinux 0xefb2ac71 bprm_change_interp +EXPORT_SYMBOL vmlinux 0xefb665b0 i2c_transfer +EXPORT_SYMBOL vmlinux 0xefbe4c8b ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xefcd945f ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xefcea2e7 acpi_warning +EXPORT_SYMBOL vmlinux 0xefe22284 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xefee932c acpi_get_data_full +EXPORT_SYMBOL vmlinux 0xefeefc09 __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xeff009a6 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xeff233ea jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xeff8bce2 udp_poll +EXPORT_SYMBOL vmlinux 0xefffd94b devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01018d2 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xf013b7f7 migrate_page +EXPORT_SYMBOL vmlinux 0xf0240ef6 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xf029cc07 d_instantiate +EXPORT_SYMBOL vmlinux 0xf02aa937 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xf02c8ad8 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0xf04ac4ae dst_discard_out +EXPORT_SYMBOL vmlinux 0xf04b729f vme_init_bridge +EXPORT_SYMBOL vmlinux 0xf04c0a85 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xf05e0533 register_key_type +EXPORT_SYMBOL vmlinux 0xf0602806 __phy_resume +EXPORT_SYMBOL vmlinux 0xf096700f block_truncate_page +EXPORT_SYMBOL vmlinux 0xf09748ac release_pages +EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page +EXPORT_SYMBOL vmlinux 0xf0a71b1b revert_creds +EXPORT_SYMBOL vmlinux 0xf0b2419f cmd_db_read_aux_data +EXPORT_SYMBOL vmlinux 0xf0b31eef pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0xf0b925c5 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xf0c82729 __filemap_get_folio +EXPORT_SYMBOL vmlinux 0xf0c9125c pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xf0fb61ce sk_dst_check +EXPORT_SYMBOL vmlinux 0xf1130686 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xf11b2d03 __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0xf1267d10 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf12d0874 fman_register_intr +EXPORT_SYMBOL vmlinux 0xf13a085a jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0xf14fb1d6 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xf15b3a62 find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0xf1694cf6 pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0xf16c0896 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xf17d0b73 phy_suspend +EXPORT_SYMBOL vmlinux 0xf17d63e4 rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0xf181a4de clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0xf18300ad logic_inb +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xf1a65f7b zstd_reset_dstream +EXPORT_SYMBOL vmlinux 0xf1b4e547 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0xf1c9fc4e nf_log_unset +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e0d836 phy_drivers_register +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf21f88fa netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf2628676 zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0xf2669a2c imx_scu_irq_register_notifier +EXPORT_SYMBOL vmlinux 0xf2797626 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0xf27c724d fman_set_port_params +EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf29403e5 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xf29f8515 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xf2b4cc02 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xf2bbd769 netlink_net_capable +EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate +EXPORT_SYMBOL vmlinux 0xf2db5fc9 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2ec3edf pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xf2efdc6a fc_mount +EXPORT_SYMBOL vmlinux 0xf2f430bf md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xf2f53617 memregion_free +EXPORT_SYMBOL vmlinux 0xf3006be5 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xf3106b3e fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0xf3107926 sha224_update +EXPORT_SYMBOL vmlinux 0xf31e15ea mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0xf32ebd93 genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0xf339a62d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xf341ee35 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf36933c4 vfs_symlink +EXPORT_SYMBOL vmlinux 0xf36f42a9 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39981d5 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0xf39f0456 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0xf3a57892 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0xf3aca7e2 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0xf3c22ffc inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource +EXPORT_SYMBOL vmlinux 0xf3e33155 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xf3e59aae pci_scan_slot +EXPORT_SYMBOL vmlinux 0xf3fc8a70 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0xf43d2caa acpi_remove_interface +EXPORT_SYMBOL vmlinux 0xf4452738 of_iomap +EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier +EXPORT_SYMBOL vmlinux 0xf44b0b66 pskb_extract +EXPORT_SYMBOL vmlinux 0xf46cc87a pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xf47309f5 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const +EXPORT_SYMBOL vmlinux 0xf477bf17 fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0xf4a380eb path_is_mountpoint +EXPORT_SYMBOL vmlinux 0xf4a56478 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf4ad5b51 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0xf4af3340 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4b94378 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xf4bb0160 bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy +EXPORT_SYMBOL vmlinux 0xf4dce736 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xf4e5ec6e max8998_update_reg +EXPORT_SYMBOL vmlinux 0xf4e7ff3f iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4fd1919 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xf512f87c put_watch_queue +EXPORT_SYMBOL vmlinux 0xf52a511e kthread_stop +EXPORT_SYMBOL vmlinux 0xf52c2983 inode_init_always +EXPORT_SYMBOL vmlinux 0xf538a05a ipmr_rule_default +EXPORT_SYMBOL vmlinux 0xf53a8aa9 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xf53bb77a ndisc_ns_create +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf542e502 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xf55b0842 generic_listxattr +EXPORT_SYMBOL vmlinux 0xf56e0a93 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xf571377e sync_filesystem +EXPORT_SYMBOL vmlinux 0xf584217b fs_param_is_fd +EXPORT_SYMBOL vmlinux 0xf591753d nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5a20ed2 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0xf5a50d13 __skb_ext_del +EXPORT_SYMBOL vmlinux 0xf5add0ae ns_capable_setid +EXPORT_SYMBOL vmlinux 0xf5b4fdd6 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xf5b7b53d iter_file_splice_write +EXPORT_SYMBOL vmlinux 0xf5b8094f iget_locked +EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0xf5ec0361 __nd_driver_register +EXPORT_SYMBOL vmlinux 0xf6120a75 dqput +EXPORT_SYMBOL vmlinux 0xf61a2436 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xf61b8aee lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0xf62c39fe ucc_slow_graceful_stop_tx +EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module +EXPORT_SYMBOL vmlinux 0xf673fcd9 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf6949c4e dcache_dir_close +EXPORT_SYMBOL vmlinux 0xf69c9bbf phy_resume +EXPORT_SYMBOL vmlinux 0xf6bb5fb7 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xf6ccce9c __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xf6dbaba1 to_nd_btt +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ef84cd skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free +EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor +EXPORT_SYMBOL vmlinux 0xf7136c8c xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0xf71d8ea3 remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0xf7209114 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0xf7370f56 system_state +EXPORT_SYMBOL vmlinux 0xf738b60b __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xf740c872 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xf75e9758 inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0xf76001bb unlock_new_inode +EXPORT_SYMBOL vmlinux 0xf761b3fa tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0xf76843b5 qcom_scm_pas_supported +EXPORT_SYMBOL vmlinux 0xf76b1abb jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xf770043b mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0xf77337a1 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0xf77555cd __memcpy_toio +EXPORT_SYMBOL vmlinux 0xf77981c4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf78795ac get_thermal_instance +EXPORT_SYMBOL vmlinux 0xf791d588 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xf7936675 fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0xf79bfb4a bio_uninit +EXPORT_SYMBOL vmlinux 0xf7c48778 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7d31de9 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0xf7da6e6f acpi_unload_table +EXPORT_SYMBOL vmlinux 0xf7de8d92 __ps2_command +EXPORT_SYMBOL vmlinux 0xf7e82058 generic_fillattr +EXPORT_SYMBOL vmlinux 0xf7ea6311 qman_p_poll_dqrr +EXPORT_SYMBOL vmlinux 0xf7f05c17 fman_port_use_kg_hash +EXPORT_SYMBOL vmlinux 0xf7f35006 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xf80cde85 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82bbd90 proc_create_data +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf840e0df vfs_create +EXPORT_SYMBOL vmlinux 0xf84bd6ee bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0xf85133ec pnp_is_active +EXPORT_SYMBOL vmlinux 0xf866b00c tegra_io_pad_power_enable +EXPORT_SYMBOL vmlinux 0xf877106f skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0xf888ca21 sg_init_table +EXPORT_SYMBOL vmlinux 0xf8905542 phy_device_free +EXPORT_SYMBOL vmlinux 0xf8ad8166 mmc_release_host +EXPORT_SYMBOL vmlinux 0xf8ba6aa2 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xf8d04579 km_query +EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0xf8d2bc2c zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0xf8da4e9e __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0xf8ea3aa6 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var +EXPORT_SYMBOL vmlinux 0xf8fd2aff __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xf91b89ab fman_sp_build_buffer_struct +EXPORT_SYMBOL vmlinux 0xf93aae46 __arm_smccc_smc +EXPORT_SYMBOL vmlinux 0xf93acf00 get_tz_trend +EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xf94e9117 mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0xf95c619b acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xf969e188 dma_fence_array_next +EXPORT_SYMBOL vmlinux 0xf9722676 twl_i2c_write +EXPORT_SYMBOL vmlinux 0xf980d89c arp_xmit +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b4e216 vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0xf9b55e65 vfs_iter_read +EXPORT_SYMBOL vmlinux 0xf9ba2e09 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xf9be270f mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c34efd dma_find_channel +EXPORT_SYMBOL vmlinux 0xf9ca2eb4 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xf9e4c3ea dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf9edf5a9 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xf9f1f293 qdisc_hash_del +EXPORT_SYMBOL vmlinux 0xfa042227 gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end +EXPORT_SYMBOL vmlinux 0xfa297415 acpi_map_pxm_to_node +EXPORT_SYMBOL vmlinux 0xfa2c8221 rtnl_notify +EXPORT_SYMBOL vmlinux 0xfa2e5f32 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0xfa487001 dm_table_event +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa760af1 __breadahead_gfp +EXPORT_SYMBOL vmlinux 0xfaa5e6a0 locks_delete_block +EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0xfaba0828 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0xfabbef92 vme_dma_list_free +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfb203aa0 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xfb348fea fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0xfb3553d9 mmc_start_request +EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf +EXPORT_SYMBOL vmlinux 0xfb3dcbb3 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xfb55ba8d i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb715eb4 inc_node_page_state +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 0xfbba78fc cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0xfbc4f89e io_schedule_timeout +EXPORT_SYMBOL vmlinux 0xfbd3d983 max8925_reg_read +EXPORT_SYMBOL vmlinux 0xfbd6ab05 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xfbe16672 empty_aops +EXPORT_SYMBOL vmlinux 0xfbe28c52 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xfbe4b175 qman_create_cgr +EXPORT_SYMBOL vmlinux 0xfbe62dc3 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xfbe8ee28 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0xfbee3c29 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xfbeeb249 seq_vprintf +EXPORT_SYMBOL vmlinux 0xfc0846e2 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xfc0f25b1 do_clone_file_range +EXPORT_SYMBOL vmlinux 0xfc194f6a vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xfc22a2dc pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xfc336d2e __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read +EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0xfc480b21 xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0xfc4a7eee mmc_can_discard +EXPORT_SYMBOL vmlinux 0xfc52abc7 qcom_scm_pas_shutdown +EXPORT_SYMBOL vmlinux 0xfc746174 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xfc881b89 fman_port_get_hash_result_offset +EXPORT_SYMBOL vmlinux 0xfc95d9a4 init_special_inode +EXPORT_SYMBOL vmlinux 0xfc9ed8c3 qcom_scm_ice_available +EXPORT_SYMBOL vmlinux 0xfcba5b63 netdev_alert +EXPORT_SYMBOL vmlinux 0xfcbb9cd1 rproc_alloc +EXPORT_SYMBOL vmlinux 0xfcce2f7d ucc_fast_enable +EXPORT_SYMBOL vmlinux 0xfccf8e15 input_copy_abs +EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0xfcea708c nd_integrity_init +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcedfbd4 iterate_dir +EXPORT_SYMBOL vmlinux 0xfd002eaf phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0xfd07b5c8 pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0xfd3a8d1d inet6_add_offload +EXPORT_SYMBOL vmlinux 0xfd3da390 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xfd3f2860 simple_link +EXPORT_SYMBOL vmlinux 0xfd62e8a9 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xfd649747 genphy_update_link +EXPORT_SYMBOL vmlinux 0xfd744fb0 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xfd7dbc48 vfs_mkdir +EXPORT_SYMBOL vmlinux 0xfd88ad89 inet_protos +EXPORT_SYMBOL vmlinux 0xfda027a7 poll_freewait +EXPORT_SYMBOL vmlinux 0xfda0e41d phy_trigger_machine +EXPORT_SYMBOL vmlinux 0xfda31441 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0xfdcb4ed3 acpi_os_get_line +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfdd79d43 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0xfddb12a2 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xfde12594 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xfde770ec kfree_skb_reason +EXPORT_SYMBOL vmlinux 0xfde99fdd kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe14a560 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0xfe1d2e94 key_create_or_update +EXPORT_SYMBOL vmlinux 0xfe2224b4 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xfe2691fc configfs_register_default_group +EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe80b864 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xfe816fd6 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0xfe8c61f0 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xfe8f7cf6 get_phy_device +EXPORT_SYMBOL vmlinux 0xfe90930a security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xfe916dc6 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0xfe99bbcb end_page_writeback +EXPORT_SYMBOL vmlinux 0xfe9d3e25 unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfeb5d0aa verify_spi_info +EXPORT_SYMBOL vmlinux 0xfec8bd0e scsi_host_get +EXPORT_SYMBOL vmlinux 0xfed5e920 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xfedb4466 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee3149f mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef216eb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xfefcb98e vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0xff039cb2 md_integrity_register +EXPORT_SYMBOL vmlinux 0xff094c25 __post_watch_notification +EXPORT_SYMBOL vmlinux 0xff1658d2 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff201242 mii_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0xff201f34 proc_create_single_data +EXPORT_SYMBOL vmlinux 0xff282521 rfkill_register +EXPORT_SYMBOL vmlinux 0xff28933a dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0xff32e409 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xff5674e8 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0xff57e3ba pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xff5b2fbc console_stop +EXPORT_SYMBOL vmlinux 0xff663e8e ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7e7f8d kryo_l2_set_indirect_reg +EXPORT_SYMBOL vmlinux 0xff87cd18 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0xffb4899c mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0xffb7c514 ida_free +EXPORT_SYMBOL vmlinux 0xffba3bfe clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0xffc4f200 zstd_compress_stream +EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0xffdf0504 follow_down_one +EXPORT_SYMBOL vmlinux 0xffeb588b tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0xfffa4690 drm_firmware_drivers_only +EXPORT_SYMBOL_GPL crypto/af_alg 0x07e2b7bb af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x1227ca4d af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x14b81782 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x19d8aa51 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x3a1c06f0 af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x44680124 af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x46cd2ec3 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x61ce9a1c af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0x6617d410 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x7dca6585 af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7ddc3e5c af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x91908e0d af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0x9eeb305a af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xc292dad5 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0xc3a0161c af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0xd72d8508 af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xdb426aaf af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xf330f67d af_alg_release +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x2e8feab4 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x4eba2423 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xe0fb0d57 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x91743bb2 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xbb7e1758 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0c2fc054 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x77ab2a42 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa275cd10 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfe8f87ba async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2fce4a45 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x375c100a async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x50501015 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x68bed4f6 async_xor_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xfa80f6f6 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x5023f5c0 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x45079b8c cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 +EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0ed83e1d cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x1046b701 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x1c66b1bd cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x20de1251 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x260ef051 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x4faed0cf cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x50aadc5c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x5310c9f6 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x6aa3f633 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x8193e26f cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x94ba286e cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0xb9a32185 cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcc7f31db cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0eae7585 crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x13b848b9 crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x1cb1039a crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x2b3b45ac crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x53bbb7de crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x5a41c909 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x5f24641b crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6159630f crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x69328366 crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x843f4c7e crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x866b4e04 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x89d79b7e crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x91d2d148 crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x97d171e0 crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xf4b11b25 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xdc4ea09a serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update +EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0xfa81970e sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0xadedbd12 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x018a9a5b spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1865e1ce spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x205b6ff9 spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x28016535 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2f930803 spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x43659940 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x568bd1ff synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x5832e1d0 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7cd34c92 spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x84dad068 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x88288eeb spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8c82dfca synth_request_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8fe0db01 synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x9be62281 synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x9dd099c6 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xa302f126 spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaadb0612 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xb734cb9d speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbb9764a5 synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc319c604 synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6a06d16 spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd8fd86cf synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd93829dd speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe194d0ef synth_printf +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xead4097b spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x264b64d0 acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x2d2944b8 acpi_nfit_init +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 0x915d9e71 __acpi_nfit_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xbd4a0ef7 __acpi_nvdimm_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0xe13b036b acpi_nfit_ctl +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0x67927a0d platform_profile_notify +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xbfe36436 platform_profile_remove +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xcac33cd4 platform_profile_register +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xa07382dc __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x809f45e7 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x8b45326c charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xd3e29970 charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf3304696 charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf883c540 charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8585e5fd hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8d4f3fa4 hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xa22afdaa hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xc369090d hd44780_common_shift_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xf360d788 hd44780_common_fontsize +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/auxdisplay/line-display 0x42109eea linedisp_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0xc22e0802 linedisp_register +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x038d9c32 __devm_regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x0ca079ee regmap_ac97_default_volatile +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0xb1ca4fd5 __regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x53a345c8 __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x3d4e2a36 __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x82070604 __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x3b7c2fc1 __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x7c22470a __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x50b52d87 __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x7bbd7af1 __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xaae37bff __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xcbf17e66 __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x69515813 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xf0b76ce5 __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x39497821 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x8ad5b0a8 __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x9638e9ec __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xb8715e70 __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x3bc66259 __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0xb1446233 __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x10273060 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1d06cb5c bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1ed22cd7 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x212e0216 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2bae0562 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x35475923 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3cdf8bf6 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x419d5206 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4304925d bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x555f65e6 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5f38ac1b bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x62fc70f1 bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x71e8857e bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x74f203ab bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x94331f36 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9705c338 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaf1a7cee bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbd36f480 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc88bcff9 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcc1f3672 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdbe434fb bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe7c3d917 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xeb702e3f bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf05def04 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x3cc58634 btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x41232582 btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x46ede63e btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x52f2e650 btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xab045da3 btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xc140c1a9 btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xdf27dee4 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xe2dc5d93 btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x0acf4295 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x25739a4e btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x26f889a5 btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x29ebf204 btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x486659aa btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x4d431814 btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x53a50121 btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x764d64c4 btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8525b2cb btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8a62c95c btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8a93ebb4 btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xa8152b24 btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb99dfefc btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xba77c18c btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xbf65ede7 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xd61ed96d btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xfa9ca3ac btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x07a2ea6d btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x092723ae btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x21b7e09e btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x573d21f9 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5b20cdb9 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7ce2f8bb btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x92dbec93 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa98d0fe1 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcbdfde50 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd2d9c463 btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xde10927c btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7d859907 btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xded1deaa btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xf834a797 btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x3d16a8b6 qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x6f8b43ee qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x9897056f qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xdbd37cab qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xe531193f qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x22fbd3a2 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x41eff9fa btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x8b2574bb btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x8f79c728 btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x9709cb38 btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xaf78f260 btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xb0a5fb65 btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x674ffe80 hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xb30f5572 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xc2cd96e1 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xc41320cd hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x2f0e3df8 mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x4954d94b mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x54607af4 mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x74335f0f __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x74d8d63d mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xc234ebe1 mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xd9d56054 mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xf11f9709 mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0cdbc258 __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x13123aba mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x17dec1de mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1c3062dd mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2ba953f9 mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x329d517f mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3d3e96b9 mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x53634e8e mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x643b6061 mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x64e59575 mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6b3e19a9 mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7296c572 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x75e2436e mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x77156b4c mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x78b6bfc7 mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7df3b68e mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x819ad009 mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8c910307 mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8de141bf mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8e0b94e9 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8e9e198a mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x9049681e mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x9ddb5b6d mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc8d0a423 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd182f580 mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd4b32ba6 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd4fcedd5 mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe29bb14c mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe92a75ca mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfccf177b mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xffa59ce0 mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x3f2f393b moxtet_device_write +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x45b31212 moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x5685ff00 __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xc1c8f37c moxtet_device_read +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0x530b2170 sunxi_rsb_driver_register +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0xdc8be618 __devm_regmap_init_sunxi_rsb +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x2660ecdc meson_clk_triphase_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x6c845129 meson_sclk_ws_inv_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x87091b6d meson_clk_phase_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/sclk-div 0x3c28a952 meson_sclk_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0000139e clk_alpha_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d678ab9 qcom_reset_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e5f8a53 clk_pll_sr2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e98da3d clk_pll_vote_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x17d44071 clk_alpha_pll_hwfsm_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x183be5e6 clk_alpha_pll_agera_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1a142e7c clk_alpha_pll_fixed_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1cbd386f clk_rcg_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x20796d46 clk_trion_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x24a7abf5 clk_zonda_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x272f3204 clk_alpha_pll_fixed_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x29c40ae0 clk_alpha_pll_fixed_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2a9c7452 clk_rcg_lcc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2b0d957d clk_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2cae96b3 clk_regmap_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x30bbf987 clk_rcg2_shared_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x310b6341 clk_regmap_mux_closest_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3747af55 clk_rcg_bypass2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x38db4860 clk_disable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x395868a1 qcom_find_freq_floor +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3dfc2dc5 clk_branch_simple_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x405d394a clk_alpha_pll_postdiv_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x418e9cfd clk_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x4b0ed6da clk_ops_hfpll +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5111f2ad clk_rcg2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x520df3b7 clk_rcg_esc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x57172323 clk_byte_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x578eb1d6 devm_clk_register_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5a6ae327 clk_alpha_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5e6abb22 mux_div_set_src_div +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x615dbb77 clk_branch2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x618644ff qcom_cc_register_rcg_dfs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6302a81c qcom_cc_register_sleep_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x631939a9 clk_branch2_aon_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x63ee9aa4 clk_alpha_pll_fixed_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x66922845 clk_branch_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6af41b8b qcom_pll_set_fsm_mode +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6f2dc4e4 qcom_cc_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7019378d clk_pll_configure_sr_hpm_lp +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x766e9f87 clk_regmap_div_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x787e8234 qcom_find_freq +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x78b81ea0 clk_rcg2_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7a7d500f clk_fabia_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7bab6a0e qcom_cc_register_board_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7e66fd9e clk_regmap_mux_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x818f32fd qcom_find_cfg_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x866d0d4a clk_enable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x8b55eac4 clk_dyn_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x8b8647a8 clk_alpha_pll_postdiv_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x91c41c9f clk_edp_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x97488818 clk_rcg_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x97aee5db clk_is_enabled_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9c8854a1 clk_alpha_pll_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9d909edd clk_gfx3d_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f1bf2e0 clk_alpha_pll_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f241baa clk_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f65d71b qcom_find_src_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xaa403ee8 clk_alpha_pll_huayra_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xac2e73bf clk_alpha_pll_regs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xadc2751b clk_alpha_pll_postdiv_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xba961aa7 clk_dp_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc150d434 clk_alpha_pll_postdiv_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc2e1a6fa qcom_cc_map +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc5bdfa11 clk_byte2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc82bd181 clk_agera_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xcf422970 clk_rcg_bypass_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xd438c1c3 clk_alpha_pll_postdiv_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xd7ab6782 clk_alpha_pll_postdiv_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xe6e14638 clk_alpha_pll_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xe816a036 clk_pll_configure_sr +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xeb3e134f qcom_cc_probe_by_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xee838fe0 qcom_cc_really_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xf9cf8020 gdsc_gx_do_nothing_enable +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x00190c15 sprd_div_helper_round_rate +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x025783bd sprd_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x105dc00c sprd_div_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x1311f6ff sprd_sc_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x18d9f187 sprd_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x30a7b7ff sprd_mux_helper_get_parent +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x57f63ed8 sprd_clk_regmap_init +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x789b85c4 sprd_div_helper_set_rate +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x95664ced sprd_mux_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x9bffc3e8 sprd_mux_helper_set_parent +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xa4346b52 sprd_pll_sc_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xe51e0b87 sprd_clk_probe +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xeb6c8ab6 sprd_comp_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xfb7c9167 sprd_div_helper_recalc_rate +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0c4eb729 comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0c910c02 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x10cd7eae comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1b31434f __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1df435ec comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x258a412b comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2a7f3c12 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4773ccc1 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4a83241f comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4c45cd2c comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x50e4a184 comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5cbabda3 comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x6ddbfb61 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x706baefb comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x819d320f comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x85453001 comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x966eebe6 comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa31a9582 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa78b812f comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa9eb9627 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xae4e2386 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xaf5866d3 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc18615f3 comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc947df6b comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcc6024c6 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcf18b1c2 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcf63ac8f comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd679aa47 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb536ec2 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb8d09ce comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xeaebe617 comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xeefe2ec8 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xef03f255 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf1a74daf comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf266caff comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xff6fd9d5 comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x3b316093 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x8afdc05d comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x8fceee03 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x9676e6f3 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xc517c4f7 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xc61bad64 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xe1f8288b comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xfba5da9c comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x4749cb25 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x4feb5316 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x6a85a04c comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x6f33ff6a comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x88f3879b comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xd448275b comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0xf5a8d902 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x94d38d61 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0xe2298ce8 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0xa5d14114 amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x0094502b comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x378067e0 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x3b56e629 comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x40c34499 comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x45fdf957 comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x610aa7c9 comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x792855ab comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7ac6df86 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xbb870b93 comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xcb905c4d comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xe6f609f1 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xeefc9843 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xff39047c comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x2d12b7fc subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x323a0979 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x3851155c subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0xbfefe7b4 das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x137b60b4 mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x13820131 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x17c32b77 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x32965fc3 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x39b836c9 mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3e06ac6c mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x441a198d mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x47bbb421 mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x542cc364 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x59ebb329 mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xabd62b12 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xb8b2522c mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xc021ce80 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xc4fe36e6 mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xd5130951 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xfcf57b0b mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x55b8c648 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x978388e1 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x85e75c94 ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x863a306d ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8ab47ba4 ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8f0f0901 ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0xb3e302a3 ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x066b46da ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x06f3f51b ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x12f66c33 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x3e48f8d8 ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x593ae9b2 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x5d88e702 ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x6b5acfa1 ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7e5568a5 ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x9a557e46 ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xa2fb7ac3 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xb976c6af ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc1efafef ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc46cef30 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc6a9fc21 ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xd6491b9b ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xd9ce7f19 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x13ac600b ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x79708a17 ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7f42fb2b ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x8ee96971 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x99580333 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xfac9e7ed ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x044e9b97 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x47c6bc8a comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x5a346099 comedi_open +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x74805538 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x870d5b01 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x9eba6b4a comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xd5f8b4e8 comedi_close +EXPORT_SYMBOL_GPL drivers/counter/counter 0x039f26cf counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0x3715b6dc counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x404d96aa devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x42818214 counter_push_event +EXPORT_SYMBOL_GPL drivers/counter/counter 0x6c9ab281 counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x79229383 counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x84d1ec6d counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0xa8066915 devm_counter_add +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x04773b60 ccp_present +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x24d8aabf ccp_enqueue_cmd +EXPORT_SYMBOL_GPL drivers/crypto/ccp/ccp 0x3a1a3979 ccp_version +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x07bee26c hisi_qm_free_qps +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x0f4c469f hisi_qm_suspend +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x17b89d52 hisi_qm_reset_prepare +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x2d96d0d9 hisi_qm_alg_register +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x30c4a50c hisi_qm_start +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4073772d hisi_qm_diff_regs_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4209f37d hisi_qm_debug_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4285cffc hisi_qm_alloc_qps_node +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4bed2ee9 hisi_acc_free_sgl_pool +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4c5b50d6 hisi_qm_dev_slot_reset +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4fd4e3be hisi_qm_start_qp +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x50011399 hisi_qm_wait_task_finish +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x5274b933 hisi_qm_regs_dump +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x590e336a hisi_qm_dev_err_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x6208bfa2 hisi_qm_debug_regs_clear +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x737408e6 hisi_qm_resume +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x82689819 hisi_qm_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x92150b75 hisi_qm_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x95e16752 hisi_acc_sg_buf_unmap +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x9b4c00af hisi_qm_reset_done +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x9bcd05cd hisi_qm_pm_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x9c1f40d0 hisi_qm_mb +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x9cea423b hisi_qm_pm_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xa49c615f hisi_qm_stop +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xa89fb156 hisi_qm_acc_diff_regs_dump +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xaebbd9bc hisi_qm_stop_qp +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xb2163f4f hisi_qm_dev_err_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xbb5dd547 hisi_qm_wait_mb_ready +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc238d1fd hisi_qm_sriov_configure +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc38117c0 hisi_qm_sriov_disable +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc6c6856a hisi_qm_dev_err_detected +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc854d765 hisi_qm_get_dfx_access +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xcbc49179 hisi_qm_dev_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xce52e0da hisi_qp_send +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xd093aea1 hisi_qm_alg_unregister +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xd4fed61a hisi_acc_sg_buf_map_to_hw_sgl +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xda594f15 hisi_acc_create_sgl_pool +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xe4290bf6 hisi_qm_sriov_enable +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xee42aba0 hisi_qm_diff_regs_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xf2f04c87 hisi_qm_put_dfx_access +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hpre/hisi_hpre 0x923158a9 hisi_hpre_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/sec2/hisi_sec2 0xe9a8fd79 hisi_sec_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/zip/hisi_zip 0x395ff9c8 hisi_zip_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/marvell/octeontx/octeontx-cpt 0x32e43048 otx_cpt_uc_supports_eng_type +EXPORT_SYMBOL_GPL drivers/crypto/marvell/octeontx/octeontx-cpt 0xf6a18e5d otx_cpt_eng_grp_has_eng_type +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x9d567c28 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x11128525 dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0xe88a327e dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3f538575 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3f783db7 do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x486d669b dw_dma_acpi_controller_register +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x5daf9754 idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x73a61cd7 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x92e9bd2c do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xb53b687b idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xb5cb723d dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf5cde086 dw_dma_acpi_controller_free +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x29a5c222 dpdmai_get_rx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x54209dc3 dpdmai_reset +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x5aaf2490 dpdmai_get_tx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x5f8e3bf9 dpdmai_close +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x72e94d8a dpdmai_set_rx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x950a0c17 dpdmai_get_attributes +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xb12a0e5e dpdmai_open +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xb931f790 dpdmai_disable +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xd6106a41 dpdmai_enable +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xea8fc294 dpdmai_destroy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x030ea183 fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x13ab23a0 fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x377170bc fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x3e6c1723 fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x45826647 fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x58c19aac fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x748e9594 fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x88070339 fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x8c4a70c0 fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x8de99f9e fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x96ec3804 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x97e37003 fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xafd012ec fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xb5ea44fa fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xcd632ec0 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xd1498b05 fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xda0954a7 fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x9f8240b2 hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0xbc40a9ad hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xabb5547d fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xc0bdec22 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe86fb5c7 fw_card_release +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x2f4a811e ffa_dev_ops_get +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x5e08e110 ffa_driver_register +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x93c175cc ffa_device_unregister +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xbba1e222 ffa_driver_unregister +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xca959507 ffa_bus_type +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xf4793c11 ffa_device_register +EXPORT_SYMBOL_GPL drivers/firmware/arm_scpi 0x2b240ebd get_scpi_ops +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x0c8ae140 cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x0f229ba8 cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x10158d47 cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x1f9dd1e9 cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x21f9b741 cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x24adabf2 cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x3463af91 cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x466b0577 cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x50cb44bc cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x5af37882 cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x971ea60e cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb35361e9 cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb3e44b78 cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb5b17925 cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbffa3563 cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc621175b cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc62cf274 cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xd1bd746c cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xddd993fd cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe0d4d293 cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe4ec2d31 cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe9ad2bfc cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xf11896c4 cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xfe758caa cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/mtk-adsp-ipc 0xa302b11d mtk_adsp_ipc_send +EXPORT_SYMBOL_GPL drivers/firmware/stratix10-svc 0x0c9d1655 stratix10_svc_request_channel_byname +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/fpga/altera-pr-ip-core 0x09db86de alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1128a9a8 dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1557c940 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1856ddbd dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2b36a854 dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x305f44bf dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x50d14b55 dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x571c300b dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x5b5291ef dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x659e4251 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7092900e dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x70d102f9 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x71d2621b dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x92312564 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x9909dd88 dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xb3f33a93 dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc26cceb9 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd0944102 dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd3aa88e1 __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd707e3db dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xda6e7b6c dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xdd01077c dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xe61abfc0 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xfdbdb24c dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0633c4b9 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x07fdefeb fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0b2b884c fpga_bridges_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2a2c10c9 fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x4389dcd1 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x54eb585b fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x5d88d392 of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x6166b7e6 fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7bfd13f8 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xcfebd629 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xf69f6810 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x2a97caf9 fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x2f5aa28c fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x419b4d11 devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x5ff83fa9 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x62ceaf56 fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x91698561 fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x9d9887a0 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xaf0944ba fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd7c96c5a devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xe4e96421 fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xeaac5838 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xf0c2888d fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xf4e178a8 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x2428cc00 fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x646a2bee fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xba35046c fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xc98b4ee3 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xe2e9a0ff fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x13e132d3 fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x1b77543c fsi_driver_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x2cf8ae57 fsi_get_new_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x4e346661 fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x5a57d574 fsi_free_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x701b6350 fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x772dd761 fsi_master_rescan +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x78060f23 fsi_slave_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x9af88bea fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xaddb87be fsi_bus_type +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 0xe610a872 fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xfb2e0d44 fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x183290cd fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x0f00b15c sbefifo_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xf072fcb0 sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x42129f5b gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x4302e04b gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x566a40cc gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x76152f70 gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xe14d97f6 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x49e94e8e gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x4b1513b2 gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x56fe8a63 gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x970fd032 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xf33b09d9 gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x554d8370 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xf64603ff __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x496ce291 gpio_regmap_get_drvdata +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x84f1e4c2 devm_gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xb7066570 gpio_regmap_unregister +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xdf81971b gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x17da7221 analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee0dd60 anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x4f7154c4 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x5c06c92f analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x665cee79 analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7406f15c analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x78e7869d analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x9288389a analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xcfaf02a0 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 0x1461e227 dw_hdmi_set_channel_status +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x2331a12d dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x26d629cd dw_hdmi_phy_gen2_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 0x5665b64f dw_hdmi_set_high_tmds_clock_ratio +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee dw_hdmi_phy_i2c_write +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43 dw_hdmi_set_sample_rate +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9444a354 dw_hdmi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x96f3e250 dw_hdmi_set_sample_width +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b dw_hdmi_phy_gen2_pddq +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xc59f9e6f dw_hdmi_phy_gen1_reset +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 0xdea51b08 dw_hdmi_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xf5922009 dw_hdmi_phy_update_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x0d667204 dw_mipi_dsi_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x3ec7e874 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 0xb0ecaa3d dw_mipi_dsi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0xb1ac73a1 drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x5fb08a9e of_dp_aux_depopulate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x995e871b __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xa9a84a9b dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xc5f58446 of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xfbb17560 devm_of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x17931d06 drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1827c481 drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x18f2e476 drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x24bea95c drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2c9ab27f of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x399e59f7 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x47550518 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x579825d5 drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5802bf81 drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6add2938 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6eef6a22 of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7e3e62c3 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8130a133 drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8a6fd669 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8a9b9356 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9d796846 drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xaa72d600 drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xacc1cb4e drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xad885165 drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xee043955 drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf62e7300 drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfe9f72f3 drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x039285cb drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x3f84f95c drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x463f0d82 drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x58ee9649 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x6a3bf2bb drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x780fbd3a drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7c3fd7d0 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x8883455f drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x971007b5 drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xa14d1cd5 drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xcdf0879d drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd5ca6d7f drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x06655e12 drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x27fc1965 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x2d65281d drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x399b3b81 drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x6d49561e drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xa4698585 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xc21ab098 drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xf36ba39a drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xf7658838 drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xfa4622a8 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x38331d9d drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x49ee2ab8 drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7caff294 drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xb8d46268 drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xcc9f05ab drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xd0ccd53a drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xddc3bdc9 drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xf4e666a0 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x2c73cfcf meson_venc_hdmi_venc_repeat +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x56662100 meson_venc_hdmi_mode_set +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x94a785f8 meson_venc_hdmi_supported_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xab5bee2f meson_venc_hdmi_supported_vic +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xb2dcb6b9 meson_vclk_vic_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xe69f33c0 meson_vclk_dmt_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xf5ee5ea3 meson_vclk_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x90a74ac9 s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0xc565a281 s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/pl111/pl111_drm 0x6e65c79e pl111_versatile_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x5ed38b0d rcar_cmm_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7f545946 rcar_cmm_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0xc35971b5 rcar_cmm_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0xfb526de5 rcar_cmm_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x66446ce4 rcar_lvds_is_connected +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x671c018d rcar_lvds_dual_link +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0xca477d4c rcar_lvds_clk_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0xcfad302e rcar_lvds_clk_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x2f3a9a53 vop_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0xe3db5a42 vop2_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0xf4ff5abc rockchip_rgb_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585 rockchip_rgb_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x062ec2ad ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x09514861 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0xf895ae12 ssd130x_remove +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00016bfa gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x01b6049b gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x02f46d26 __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x05508e1d gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x094e21a7 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1787a8ee __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1a1e506d gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x20488def gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x224f12fe gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2aabf937 gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3025861b gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x37d517e0 gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3a8586c1 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3b98d54a gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3de254d9 gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3e236072 gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x40016b59 gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5035eeab gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5609c00e gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x56e9fc6f gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5ad3f2d7 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5c0a8043 __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5cc0ff92 gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5d99815b gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6213634d __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6c193557 gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d58f29e gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6f0671ca __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x79f589bc __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x80980eb4 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x81e221fb __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x89f514a1 __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9bba5c33 gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa2f3159a gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa416e2da __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xafab16a9 gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb51f2a30 __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbc3364af gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbeb092bb gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc369750a greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc38befbf gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc4bada2e gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc946bb03 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd3e646d9 __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd51ca28d gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd6e1b0c7 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xdf8186cc gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe9703a54 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xeac79e1a __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf107a122 __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf5a8a428 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf8a66c3d greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf8f50276 __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0a38f083 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ba0660d hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0cfae1b8 hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0f0d9d35 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14b2446b hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1742652a hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x23a8d9d4 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x25e3997c hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x310c06ff hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3397c880 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a4d9f60 hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3cf4870d hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3fa6a5e5 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x416ec3d3 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x53c049ff hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x53e7d3f0 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x70511152 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x74515654 __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7b5937d7 hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e8667ae hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83e72188 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x84aa1ad2 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x86c08837 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x88525aa1 hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x889adb3e hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b13a8b8 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ede338d hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8fb67827 hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0x984784b1 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x985f2fc3 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa24e643a hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa49293f7 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4b08b93 hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa57a6396 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8e83dc6 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa2dd995 hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb0663ca7 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb0e9cd28 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb27d3a1c hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc04ffd39 hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3901f28 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc8d99687 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd33ecb96 hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1602bbe hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1e4d4b0 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe755ced8 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf283de67 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf83b72fe hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf840e812 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa355613 hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0xffdd42ff hid_driver_reset_resume +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 0xd0230a9e roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x040ab293 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x065e38f1 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x179bf50e roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x94937cf7 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xd6545337 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xfa965a5c roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1f5f18b4 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x59d1bc52 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x91d6115f hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x96901447 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xabfe88f9 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc31cbbad sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc8dfa4b6 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe4e10f5b sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xeee4f42c sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x6d6cad16 vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0xc41557af vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x03ce6791 i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x2c674196 i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7cc8206c i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xb879bc0a i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xd7ff6dd5 i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0x9a8af1bb surface_hid_pm_ops +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0xafeef286 surface_hid_device_add +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0xb55e029a surface_hid_device_destroy +EXPORT_SYMBOL_GPL drivers/hid/uhid 0xf8c3007c uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2467c26f hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xf5dc75bd usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1b88a727 hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2b83fa30 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x346f2183 hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x36aebc35 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3d1748c0 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x4b5b761e hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5a276422 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6a4196e6 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x84dda42a hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x85fd2bab hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x91ef0db4 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa761113d hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xad18bedb hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb4999561 hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb764ee53 hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbcf3d634 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xc8f85e82 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd0350d9c hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x00d3f507 hv_pkt_iter_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x02599f3d vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x116ffb3b __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x124e1223 hv_pkt_iter_first +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x203e6b71 vmbus_connection +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x31e2e77f vmbus_free_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x321055cb vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x339290b0 vmbus_set_chn_rescind_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 0x4e4a6182 vmbus_hvsock_device_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x53217fb1 vmbus_connect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x674e657e hv_ringbuffer_get_debuginfo +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x6e0d11c5 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x70ef742f __vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x805ff28d vmbus_allocate_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x83a4968e vmbus_request_addr +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8a00d446 vmbus_disconnect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x97300ef6 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa40c584e vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa947b41e vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb8f0fcb5 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc050017a vmbus_alloc_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc3aff4f2 vmbus_next_request_id +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xc43bd91a vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xcf683398 vmbus_free_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd5d6de80 vmbus_send_modifychannel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd775fa0c vmbus_setevent +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd7e660bf vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd9a9b7c6 vmbus_sendpacket_mpb_desc +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xda0ff52b vmbus_set_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe7d08d4a vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xefe14e07 hv_ringbuffer_spinlock_busy +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf322db14 __hv_pkt_iter_next +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x5aa085cc adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6d483309 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x6f319ea7 ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xbc54f93e ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x0f3a9ed1 nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x551e41f6 nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xb20b2c1f nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xb97ef3aa nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xdf08d450 nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xff88ef8b nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x09294fbe intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x0b0f3294 intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x2777f339 intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x40fa7b6f intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x52af9003 intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x6a30cbee intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x839d9c8a intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x911c541a intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xa195c32a intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x5bce0c1e intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xd68c7b03 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xfdb15411 intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x06f68341 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x10941421 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x2f099cb9 stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x3cd71313 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x55fc5695 stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7c3c8bfe stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x96931ca5 stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xbd6aaa02 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xf3f9a957 stm_source_register_device +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x2932145d i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x234f5f29 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3a4db3ed i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbeb9b281 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbf401291 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5f6c3d7a i2c_new_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x615bf635 i2c_free_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb77bd03e i2c_register_spd +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xd5b00623 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x04b0adf4 i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0a2e65e6 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0d6c62f3 i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0ffb7583 i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x23cb66aa i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2a7a375c i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2c73f45a i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x398a5d48 i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x39cdc45c i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3a98206e i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x4487827a i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x490eb973 i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x50dcb612 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x535a9d4c i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x58b810b7 i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6ab92d14 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6dfbb6e4 i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x75f337ee dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x83633714 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x9b245b87 i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb017fe46 i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd33f94f2 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd889b652 i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdc74eeec i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xdf8553d2 i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x65155c39 adi_axi_adc_conv_priv +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0xf955b76f devm_adi_axi_adc_conv_register +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 0x69478664 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 0xbf3424db iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xe0d010a8 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x00b74c46 iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x0a246aa2 iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x15cb3b49 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x3d8e30b3 iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x43e601a1 iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x4cf41eaf iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x4ea5c78d iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x635725a5 iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x85be35be iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x8e5e42b4 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xb5e8b8ec iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xf03f9502 iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x4c6c2bc4 devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x1b4fdaa1 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 0x9671bc15 iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0xa0870bde 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 0x23dc56c0 devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0xde246d3e devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x0b180596 sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x031cbcf8 cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x458ecf51 cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x463af3ec cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x49c4b191 cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x5435cc7c cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6a00662c cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8d750ff7 cros_ec_sensors_push_data +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x981f91d7 cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x98294e06 cros_ec_sensors_pm_ops +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 0xd089f853 cros_ec_sensors_core_register +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xee4df884 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x2293d60b bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x3feb54ae bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xd179e352 bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xcec9133d fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xf128e699 fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xf80d603e fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0xb46aebeb bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x41851b85 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x83b11bce inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x8be4f774 inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xf71d0276 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x35351457 inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xeff22e75 inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0396db0f iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1324cc8f devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x15c2580e iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1ee3bd8b iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2745d0e3 __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2b81589c iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x30ac2c90 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x33f5532c iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x41e200b4 iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x485b8ab3 iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4c841a35 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dce7dd4 iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4f9077d4 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x56feb9e8 iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x58e8ad07 iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5ad007ba iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5c6ca7de iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5d543d1e iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x641edfc2 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6b212e83 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x704a4907 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x73217b14 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x80b83f40 iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x855fe3f7 devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8a8d2dcc iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8b628dff iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8d78dbac iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8e669193 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x99b4233f iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa043d9f7 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa3065df5 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa5e02d99 devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa66417a9 iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa8e455cf iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac5bba58 of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb2316653 iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb7ca0e50 devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbf1cd105 iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc4485037 iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc77dc207 devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcea02191 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcfb08208 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd2d3bf57 iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd5afad95 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd72253bf iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd831d456 iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd8629a58 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xda7b46a2 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf0c71fe3 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf11490b0 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf197997f iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7b9a8ad __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfdbb7e1d iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x0a5e39ad rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x0cc1e6ec rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x2b295cf7 rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3d1f364f rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x4b23c5f1 rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x578663fb rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6c3a29b9 rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7208435f rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x771ceb8c rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xae8b85b5 rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xc71b4fb8 rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xcd01144e rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xb249fa8f input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xc9ce7f15 matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x4591bfaf 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/misc/adxl34x 0xec511022 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x00ac004b rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x074ed284 rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x237b86dc rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x70b70b7e rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7d16877a rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fb4c4e1 rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x86d6352b rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x8fa99e1f rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x92c99941 rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x9ed013e8 __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xa0bf80f0 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xb9988334 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xe7ae26cf rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x7b78e6bd cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x8e1948a7 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc2aa9682 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x1d87099e cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x322e853e cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x6f08070f cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x82e1ca89 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x0641f665 tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x2820a9cc tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xe4dd2d60 tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xf564079b tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3f3eeb2a wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4136e3dc wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4174664d wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x431c3d86 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x59570602 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5ea220dc wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x92082042 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xae676569 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd2b3e63a wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd43374bd wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdc899bfd wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf9ca391b wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x990bf952 imx_icc_register +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0xb2c74f8f imx_icc_unregister +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0253e279 qcom_icc_bcm_voter_add +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0b39b783 qcom_icc_bcm_voter_commit +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x957b64f3 of_bcm_voter_get +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x1906ea70 qcom_icc_bcm_init +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x21df4532 qcom_icc_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x3128264f qcom_icc_rpmh_probe +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7de2454c qcom_icc_set +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x8f4597e8 qcom_icc_rpmh_remove +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0xe6be3e21 qcom_icc_xlate_extended +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0xfe4a2757 qcom_icc_pre_aggregate +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 0x14c41232 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3af7c20c ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x79addb9e ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa9edf678 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xac8dac5e ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xbc82466e ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd2e58288 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe7dc73b4 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xefe9b13b ipack_device_del +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x1f0e8f1d led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x33f6ba5c led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x4d119652 led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x8eec6858 devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xa879b37c led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xc6a71a32 led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xd915a240 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xf4341986 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x39bf5fec led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x793f8c5a devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x85f1bcb7 led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x88d7ea1a devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xc7ce5497 led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x166d2c83 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x18772234 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x721a6a9e lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x79096a53 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x89547009 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8ea77d51 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xade9076f lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb0793067 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd35388d9 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe55c47f3 lp55xx_write +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/md/bcache/bcache 0x051b2215 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0826e917 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0c08ed07 __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x164bc5ed __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x16ea7222 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x191717af __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1934a9a9 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1afc0725 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c71a406 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x284a6bff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2909bc5d __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a0e014e __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a503cbf __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x31d04127 __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3257d343 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x35814470 __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3e842bfb __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3f468c45 __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4014f262 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46bfabee __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x47ca581c __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x53b5e5e3 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5cc8cb86 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x63fc076e __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x689de597 __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x690dd415 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6f82429c __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x72bafbde __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7a3c0ac3 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x80e3881d __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x830df522 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x862dfa21 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8ad20d61 __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8cc5d9cd __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x902cb523 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9865dbc4 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a6f4d9f __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9ce21c84 __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa14fdbcf __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa187023e __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa3651439 __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa64134e4 __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa71f5cb4 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa842a5c8 __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xab2df845 __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb037d656 __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb4675605 __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb912ae0b __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xba843c3f __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc268695 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc0edff56 __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1857470 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc78d7102 __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc8ae4213 __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce48d6f4 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda06fe86 __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe16c06b3 __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe202b8e6 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec92a163 __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed37c90e __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xee55d047 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef7227a7 __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef7eec02 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf2a8cb5b __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf6249e5f __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf865c1a2 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb3d6c67 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd6b5d80 __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfec66570 __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x012f22e8 dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x095b7a13 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x20957f69 dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2451ed26 dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x29276bd0 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2cf1002b dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4e3360fb dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x51c9c1c8 dm_cell_lock_promote_v2 +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 0x7b4ac360 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8f89c949 dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x99755670 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xace9b57b dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xae5564b8 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb2039053 dm_cell_visit_release +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 0xb97b2451 dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xba3f5b8a dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc1ad121e 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 0xf951de86 dm_cell_put_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 0x6334f37f dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0xf241a6eb dm_bufio_forget_buffers +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 0xa2365f44 btracker_issue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa7eadcb5 btracker_complete +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xa9cf04bb dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xadbefda4 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xaf24853e dm_cache_policy_register +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 0x59d7d5a8 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xfceab7ed 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 0x07297936 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2347567e 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 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7ce8d254 dm_rh_dirty_log +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 0x7f14fb02 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa4c3df6c 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 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 0xe7597139 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 0x005a9df7 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2bc1a8d9 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x3646e38f dm_tm_issue_prefetches +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +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 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x79bdc649 dm_sm_disk_create +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +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 0x88998224 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x88a5c035 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8db6f8f0 dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8f5eefee dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x925f421d dm_array_info_init +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 0x9341b376 dm_bitset_cursor_get_value +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 0x9718cffa dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9955fef4 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9ced228c dm_array_cursor_skip +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 0xa29d4c0c dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2a74861 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa9cf611b dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb3d7482b dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb6879c01 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb720ee73 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0d7c2d1 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0fadb13 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc36559ad dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd237b9fb dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd39c0246 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdf3a4e7d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe781f874 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe8438eb5 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf82dba90 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfce51d79 dm_array_empty +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x01db4f23 cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1baf67cf cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2a73bb90 cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2dbc0f88 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x753d427f cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fa3d6ee cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x81e07a61 cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x86ae8cc8 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x9f8b8f43 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa01fbb6b cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa1310019 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xac8fc3ef cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaee236c6 cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xb8fa2461 cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xb96e67f2 cec_pin_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xb9f0d823 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xba059ad1 cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbe4de675 cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc16f2887 cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xdb877557 cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe933edf8 cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xedc5b16a cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf31c0288 cec_pin_changed +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf52ea84f cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf7306509 cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xfd3b2af5 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x05f97343 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1282a5d3 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3d43ca29 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3d98945d saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x48da7e78 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x57624607 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6e70fb45 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x771f7ec0 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xb36882c0 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xefbc9579 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x20529c20 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x26e3b135 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x3457d49a saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x4db2c082 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x60b70029 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xee5a8ae0 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xfcb8473c saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x006a857e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1c5c58a2 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x28928545 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2b484c88 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3911ef75 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x43285d7b smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x460ab14c smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4b0cf552 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x51920209 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5b7f8a9a smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x643fcb79 smscore_unregister_hotplug +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 0x87327ed8 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xab395496 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbc472aed sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc0efb403 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc5da979e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc7507854 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 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 0xb40fae23 tpg_g_color_order +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 0xf4aef3a4 tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46 tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x0a592df6 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x0f06b99a vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x112a0ed8 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x15f5558d __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1bba07b9 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1d4f289c vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x235ec03f vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x24451812 __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2593782f __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x29f41be4 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4000a162 vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x49cdf75b vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5d74fd08 __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x630b24d3 __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x69092a06 vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x6b50fbda vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7e97f13d vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x83dd54d6 vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x939f14ee vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb6f4b031 __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb8163443 vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb9d2df39 __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb9e9002a vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xbe9a457f vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc03703fc vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7b45aa4 __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd07ec08e vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd42f8ef2 vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd80eba1d __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xe27e2579 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xece5008e vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf215be12 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf2fa9d3f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf703a3f9 __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf87f6d87 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xfbab8e4a vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x5584853b vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x56b53b0f vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x4f6897c2 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x78622826 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x01661fc1 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x01c1fcda vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0ce418e9 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x16d11602 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x178cbfb0 vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1da04c53 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x26966a50 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2735a98d vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2bd9ca98 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3979b2cc vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3e2dc7f2 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x433a2f16 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x472415fc vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x47f6056a vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x486d2d83 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4ce1bc00 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x52494c49 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x627cf2f7 vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x63591ec4 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x69f31997 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6cb3800b vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x77381e14 vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x87d7f80c vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa03de702 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa06e5575 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xac5019fe vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb1c67dd6 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcac632d1 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xcf467b53 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xdf6d850e vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xe67d2eaa vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf1155250 vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf3a61e1d _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xffbfd91b vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x0cf8b136 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xabbec2cf dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xf4d44b58 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xfc3ef83c dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0xda14c599 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xd20f7119 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x2e228fd1 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0xcd9f296a mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x99e45fb9 stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0xab99ea5b stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x4e939d73 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x37463d30 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x38c9b897 ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x57c91a40 max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x66cf11bf max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x9c7185c2 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xa22ab090 max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xa4f3e814 max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xab5f8423 max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xaee47553 max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xaf100e28 max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xd3538c8b max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xdfff709f max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xe08b987d max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xf9067791 max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xfc8f5a86 max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0747e372 media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x09a01ba8 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0fd21ab5 media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x11f35514 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x12d9d944 media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x154d1d4e media_request_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x177bd272 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1f159617 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x26a62348 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x283fc6d0 __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2847541f media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x304a2451 __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x384d6763 __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x417c25be __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x48c5d2da media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4a131695 media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4deeb444 media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4e392076 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x58a0b482 __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5aa5fe78 media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5bc67c21 media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x674723d1 media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x68ffa9e9 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6d9d5294 media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6e26b75d media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x73282a19 media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x75f4fdd4 media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x895fe972 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8b1dd403 media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8d08c832 media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8eb2d4bd media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9b0f44a1 media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9b9cbf1d __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9c5ea2cb media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb09e91d3 media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb2fed85e media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc134ce73 media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc6bdb1d0 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc9e8d6f8 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd197eb2c media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe297aa3b media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe5ceecd6 media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xede149f2 media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf2ab9a32 media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf35b15ee media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf6a44112 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xfc781c47 __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xff3348e6 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xffcb4af7 media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xf951bcb9 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x08d0de72 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2b5447c5 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3debf78c mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x41683991 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x421c4b04 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x56099ffb mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x64c2eb1c mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6b5f7d21 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x81e0b27d mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xa0334c1d mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb20b1b7a mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb5da20e7 mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc34433f9 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd75438d0 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdf7eedbb mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf9cb5fdf mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfb19228e mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfc55c333 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfd637c60 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x008fa5f4 saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x390f1d44 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x3c825f7d saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x4e44e427 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x84de9e59 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8943c1da saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8b4499ba saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8c290ef9 saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9927bb9b saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9b391dd1 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xaaf3fd59 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb1fdcdc2 saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xbb7acdb4 saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd681041a saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdb545a21 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe6c9019a saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xef4057d4 saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf5b6a6b4 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf9b6ad48 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x381131cd ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7ee5019f ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x9a9604b1 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xb98ef0ac ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xc4dbf336 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xed053ee6 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xf1d318cf ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x0be325d7 nal_hevc_write_vps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x15e89d55 nal_h264_read_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x168ddb2b nal_hevc_write_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x39b985c6 nal_h264_write_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x3c2d85a6 nal_hevc_read_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x64a9c2ce nal_hevc_read_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x666a7d73 nal_h264_read_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x782a358b nal_h264_write_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x89178443 nal_h264_read_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x8f1fd2e7 nal_h264_write_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xa06fd791 nal_hevc_read_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xc1dd5419 nal_hevc_write_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xc2dc8048 nal_hevc_read_vps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xf18c66c7 nal_hevc_write_sps +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x5dc89999 mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x6902ed60 mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x8fc28d93 mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xbfa12373 mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xf46fff7f mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x133d46cb vpu_get_plat_device +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x15a351b6 vpu_ipi_register +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x3b053fb2 vpu_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x3cd7b4b4 vpu_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x596f1a90 vpu_wdt_reg_handler +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7dd4acfd vpu_load_firmware +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0xb28249a8 vpu_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0xf93edf85 vpu_ipi_send +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x0f1868b4 venus_helper_set_input_resolution +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x165126ce hfi_session_process_buf +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x202dfa09 venus_helper_alloc_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x20cfad93 venus_helper_get_opb_size +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x20dc4900 hfi_session_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x217849e4 venus_helper_release_buf_ref +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x245b13d9 venus_helper_buffers_done +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 0x2d693ecb venus_helper_m2m_job_abort +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x3018f073 hfi_session_deinit +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x365de7b1 venus_helper_set_dyn_bufmode +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x45f968d6 venus_helper_session_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x48c79a1d venus_helper_check_codec +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x491fd401 venus_helper_queue_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x50fe4c09 venus_helper_check_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x5249e7ae hfi_session_continue +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x593bf016 venus_helper_vb2_buf_prepare +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x5ae12f0f venus_helper_get_ts_metadata +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x6263f3af hfi_session_create +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x63019327 venus_helper_set_num_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x64ff28c9 venus_helper_process_initial_out_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x6684bdac venus_helper_set_color_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x6733751e hfi_session_flush +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x6a637422 venus_helper_get_bufreq +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x70371058 venus_helper_vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x722ccc1a venus_helper_set_multistream +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x8346e548 hfi_session_get_property +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x8825d797 venus_helper_set_output_resolution +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x88e665d4 venus_helper_find_buf +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x89537cfb venus_helper_vb2_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x8d32d738 hfi_session_stop +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x8fd793ec venus_helper_get_profile_level +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x912b1e11 venus_helper_set_bufsize +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x9b46c0d2 hfi_session_unload_res +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xa9963742 hfi_session_start +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xab42f0b0 venus_helper_process_initial_cap_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xaee731eb venus_helper_unregister_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xb1c0d865 venus_helper_vb2_buf_queue +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 0xb77cf586 venus_helper_intbufs_realloc +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xba2ff6ec venus_helper_change_dpb_owner +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xbc887707 venus_helper_intbufs_alloc +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcad5683d venus_helper_set_format_constraints +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcb37cfad venus_helper_init_instance +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcb970946 hfi_session_set_property +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcc594ced hfi_session_abort +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcf093838 venus_helper_set_profile_level +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 0xd3ac163f venus_helper_vb2_start_streaming +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xd914299d venus_helper_set_stride +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xdc86fe1b venus_helper_free_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xde4048a8 venus_helper_set_raw_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xdeaa6886 venus_helper_get_out_fmts +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xec02ede1 venus_helper_vb2_buf_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xece3dca1 venus_helper_set_work_mode +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xf371942d venus_helper_intbufs_free +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xf6ed0bad venus_helper_acquire_buf_ref +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xfc2318ff hfi_session_destroy +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x3d858696 rcar_fcp_put +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x4ad5d888 rcar_fcp_enable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x5fe6f6e8 rcar_fcp_disable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x9877c29f rcar_fcp_get +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0xf4d7a123 rcar_fcp_get_device +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x080aabfc vsp1_du_atomic_update +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x68290077 vsp1_du_unmap_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xa201b893 vsp1_du_init +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xe091fe17 vsp1_du_atomic_begin +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xe35c9648 vsp1_du_map_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xef894dd4 vsp1_du_setup_lif +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xf7b03e1a vsp1_du_atomic_flush +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x1031e915 xvip_init_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x43738fab xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x463a251f xvip_of_get_format +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xb67940fb xvip_get_format_by_fourcc +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xba673105 xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xc3f15633 xvip_cleanup_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xc800799b xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xc838d93c xvip_clr_and_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe08e6063 xvip_get_format_by_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xf55cec57 xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x03557dce 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 0xf3aab3f4 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xfd1b3a4e radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x03859317 si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x1ccb5a23 si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x3790d3ee si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x4aa1b578 si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xa493b1fc si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x04e9c7ee rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x05dade16 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x16ff08ec ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x228b82e5 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ed90ced rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3cc7940f lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x605b12fe rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6305b609 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x66105092 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x685e1fbe rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7dd042c6 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x91c446dd rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa2f53855 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb960f15c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd223eec3 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe06be2f2 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe34a0e01 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xec642b1c devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xef437bcd ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf70b1ac1 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfc5d3079 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x56f0ba73 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x1f979aeb microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xa3f7244b mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x7464eb73 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x0ff37ce8 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x4bf8e88e tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x8a8b6aa8 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xc317bb74 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x790b74bc tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x0daefff4 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd0566421 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x69cd5f8b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xb7db8762 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x5cf4a6c8 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0620b8d1 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x066b6006 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0c393ee7 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0e222e17 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x19f959ff cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x231f47ff cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x251f91a3 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2e307d97 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x47c84111 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x490e8099 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4a809efe cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x73638eb3 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7f0c7d52 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x8acca829 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9e64d0a6 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa30c911b cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xaccd5a5a cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbdfcd056 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xce32d276 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd0ff7bbd cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x2f41de44 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x76175726 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0ba4f99c em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x116bfabe em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x253d956a em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x29070633 em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2aeb5b63 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2e8cc0d2 em28xx_setup_xc3028 +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 0x840be309 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x921d7c65 em28xx_boards +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x9ef7248d em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb6bbb07b em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbc9dd04b em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbccc6aca em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcbe87863 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd0891536 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd8775e44 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdcf88f11 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xea4090f4 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xebb7bc07 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xff6209c6 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x608e6c44 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xb5397202 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xba4d22bf tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe08e50c3 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x0092b971 __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x890f9ea4 v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xa03cd74b __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xcf1689a6 __v4l2_async_nf_add_fwnode_remote +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xd76f69c6 __v4l2_async_nf_add_subdev +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 0x4d6329a0 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x75848c84 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x8c763c5f v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x383f75ec v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x767041cc v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fadf99a v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x90b8b16a v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x922501c2 v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x9da9ba31 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xa263cd57 v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xa6837cb6 v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xa7af0fae v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xd38537c6 v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x639ecc68 v4l2_h264_init_reflist_builder +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x6a1429ff v4l2_h264_build_p_ref_list +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0xf568bf81 v4l2_h264_build_b_ref_lists +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x30b5ebc6 v4l2_jpeg_parse_scan_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xcbfdf5cb v4l2_jpeg_parse_frame_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xe8956e3f v4l2_jpeg_parse_huffman_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xe8f40f9e v4l2_jpeg_parse_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xf8ffd565 v4l2_jpeg_parse_quantization_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0314983b v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x03c2780e v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0ced2948 v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x128bf092 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1597a3a1 v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1e9d92ec v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1f644562 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2049d335 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x24bb8100 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3578c1df v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x397c6fef v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3bbef852 v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x44c1c708 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x49ac1dc6 v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4aaab534 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x513ba5ef v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5bc508ed v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5e42f400 v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x647e232c v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6f6bac3c 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 0x75a169cf v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x85d85443 v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8d36cd6e v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x91ae4e89 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9a968762 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9d16a156 v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa71ffeda v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa78be501 v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa88d624f v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xab72222a v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb226491a v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbebcb9d1 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6de3d2c 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 0xcbbbb6b0 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcdccf9e5 v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcfd6880d v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd4149114 v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdc28e2bc v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdcfaefdc v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe3cbbd93 v4l2_m2m_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 0xf9c89776 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfb6f10bb v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfbc48eba v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfde2779b v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x4137d90c v4l2_vp9_adapt_coef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef1a3dd v4l2_vp9_reset_frame_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef25d5d v4l2_vp9_seg_feat_enabled +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x9dec35a2 v4l2_vp9_fw_update_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xb3cf2529 v4l2_vp9_adapt_noncoef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xcf15018a v4l2_vp9_kf_partition_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xdf6586d2 v4l2_vp9_kf_uv_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xf5c55c43 v4l2_vp9_default_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xfbf87a5e v4l2_vp9_kf_y_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x235c1cf8 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x32a51f6f videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3ae40a85 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3ccf82e0 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x45c9a335 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x46126516 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x516fcd7d videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x89051b8b videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x90863ab0 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa2761a43 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa4f2eb2c videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa6773b63 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xad9f853a videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbca45aca videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc2586070 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc787b56e videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd45cfbcc videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd77e5caa videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd7a24254 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd7a8ba55 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe4b066ff videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe84421e4 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf1997a3e videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf85747bd videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x71f09515 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xbc8e2cd1 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd42087fe videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xed533a19 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x3e54cf7a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x86d25922 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x9e0d6190 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x04172ec4 v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x089ed1b2 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0b383eda v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0c0ccbd6 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x15289bd0 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1885c1f6 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1a7ad58d v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x209b9f7d v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2634ea95 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2791fb2b v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x31d34a17 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x331eea4f v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3558f158 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3d17d036 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3e0e0da2 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x43142533 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x452f53b1 __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4578d152 __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x46ac032f __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x47eec7ef v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4901876d v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4c306f51 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4d3aa23f __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4ec266fe v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x506def30 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5383dcc6 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5705cc6f v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5979d44b __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5d2b16c3 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5d5902d5 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5df2ffd4 v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x60c9b042 v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x619ce26f v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x68a4977a v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6a19a2ee v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6a2de036 __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6d7c2f9b v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f8f41e5 v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x71514fac v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x75e81729 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x77bd9dad v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7e4406d7 __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x817f51c5 v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c8b411a v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x902c3d0a v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x96447048 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9788cd41 v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fef35ac v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa07eb304 v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa4d8834b v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa5d6fc14 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa7635488 v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaeb7b099 __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb1b44f99 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb3d63ae6 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb7c00089 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbfe505d3 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2030b63 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc2361e3f v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc56c8f46 v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc742d6e8 __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc501597 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd9924b25 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda4d71f8 __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe1faa317 __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2822320 __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2d16a48 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5a33113 __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xea5a9446 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xec65632c v4l2_pipeline_link_notify +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 0x32ac05c8 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x3d77dd3e pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xecf86344 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x0a9d6f30 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x0d5447d0 arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x16ab8bef cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1c972682 arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x370e95e1 wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4eff21c9 arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x650558f3 arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x658de649 arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x743654ad wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x831e8dfa arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x89650090 wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x971e7db3 arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x9897d664 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa29e47d8 wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa6b70564 wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa727bd3b cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xaaf78759 wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xbfe70351 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xc81b43ab wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xc8a3d13d wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xca5dc1dc wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xf9f8aa8f arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x16caf523 atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xb0685aa2 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x0086690f da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x08c7da84 da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x3b4f3572 da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x923896a9 da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xa70e7800 da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xbac946be da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xcd335d60 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xa142a524 gsc_read +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xb7abd1c4 gsc_write +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0xa436f4de iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0990ccdb kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x58b7a93a kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x72a78628 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7d0c9711 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa3000669 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xcfd8c3f7 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xedf859e2 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xfc1bead2 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x79938ac7 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x80661fd0 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xa07ade68 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1215ac44 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x54b4a2a0 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x84bb6042 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x9e490a49 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xbbef0cb5 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xca66f6af lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf228dc86 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x51de3613 lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x70cfaf54 lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x8e5ac1c4 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x02a3546a cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0cb37010 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0cbeac50 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0da11cb9 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x146607a0 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x146bdbe0 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1e7663d7 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x20a86ef2 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x23e71c5d cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x23eac01d cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3ec1eb68 cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3ecc3728 cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4f866d1c cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4f8bb15c cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x57531aac cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x575ec6ec cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x60d20151 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x60dfdd11 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x661b387e cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7df4f664 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7df92a24 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xa43d6ffe madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xb7375ca8 cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xb73a80e8 cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xcbe73c60 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xd3d6673a cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xebe384cb madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xf40241a4 cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xf40f9de4 cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x2a8d5ffa mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x30616ad6 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x62d4d49e mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x70db21f6 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x8e676ab8 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xbcbe6807 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0xa226dbe8 cpcap_sense_virq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x48f289ca pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x49626799 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4aef6f72 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5feeeabb pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x605a9cdc pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x76141e0e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb05f1a82 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd0859920 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd8fa6d71 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdd1f6156 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfed5021e pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x92d23d39 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xefde0045 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x03d0968a pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5897023d pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9089eae5 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9840496b pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd48e9708 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x2be26e1c 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 0x0cdc8cab si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e6f77b6 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0f86429e si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0fbaa653 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x241f198b si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2b1ace03 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x379826e9 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3bff3b10 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x41ebc8c6 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4524f389 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x49af9bbb si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4b4e9546 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5102f9fb si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5b229499 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5f71a17b si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x68d17462 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d8995ef si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x80f005ff si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82a4d91b si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x84c8897c si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x92843911 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9d7a0f68 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa3457262 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb1ac0036 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc607a1e8 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc9e15b35 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcebc4256 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd908b0a5 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe489c8bb si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xef2e867c si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xef6fa1d1 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf5b6d105 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfa9bd99f si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xff0cec27 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x09c7e1de sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x197cc14b sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x51e0b6fc sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x54a803a4 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xca68fe45 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sprd-sc27xx-spi 0xe89ad39d sprd_pmic_detect_charger_type +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x67097b13 stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xd0153861 stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x22db047f am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x536bc038 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x878ae7f0 am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xf1e0716f am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x4ba88ec5 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x7e5f4a6e tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x84fe1d4e tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xe022265b tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x06e5792f tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x3618c112 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x393a2828 tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xb64c02fc ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x449afdf6 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x4b619554 alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x645125ef alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x73b254b3 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x8b4560d7 alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x9e745e00 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xf6813dad alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x01915a51 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x03ae7e80 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1328ab41 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x409b95d6 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x4347ddf4 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x4f224ab4 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x52056b04 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x5a2ab5ae rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x5b394061 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x667e5738 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x934b1ea3 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x97a1be8a rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x98dc4b10 rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xad1b7159 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xb4f76437 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xbeb11ec7 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xc3a1ae20 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xc90267d9 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xcdcedf5e rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xdb1b7771 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xdcdebcaf rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe156cd53 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf0c2ac11 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf121feb4 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x0435e8c5 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x139328ac rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x18592600 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x2587753b rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x288e4582 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x2ab87647 rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xaed67a4d rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xbc2b148a rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd55fb5a8 rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd9bc8fdb rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xdbb7d552 rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xdedf6f43 rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xf89bd491 rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x21f77eea cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x47814c34 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7ed56e34 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbe2aa2c6 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x0b008db0 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x296a8983 oslec_update +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x3115970d oslec_create +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 0x00c98d24 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2d983c64 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x381cfbfc enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x42ad7c22 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x57001f13 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6c47bfdf enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb692656b enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf3af241c enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x18d2ac65 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x865a021e lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa5705b1b lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xdd222ced lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe1e87a46 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf446fa06 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf9373f63 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xfaf6375e lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x770afe80 devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x8c795269 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xde697c01 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x459b9471 uacce_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x6f293138 uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xae659dc5 uacce_register +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 0x603fe055 vmci_qpair_enquev +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 0x787f0fe8 vmci_register_vsock_callback +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 0xcf218d8c vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xd58e62f8 vmci_qpair_dequev +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/dw_mmc-pltfm 0x928e91f1 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xa29712f6 dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xc766fabb dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x78557e14 mmc_hsq_init +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x8b947bca mmc_hsq_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xa3b94ede mmc_hsq_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xd25e40c1 mmc_hsq_finalize_request +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x908770ce renesas_sdhi_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0xcd4172cb renesas_sdhi_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x007095e8 sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x017c291b sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x04915526 sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x08a89512 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x09fa0559 sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1a4287c6 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1afaf0cf sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1e71c10f sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1ebd60e7 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2372cbfd sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2dfa128c sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x309a8561 sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3376173b sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3a462a46 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3f148aa6 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x46d90f3c sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x47caab20 sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x496e47f8 sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x49d4138f sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4eaa8b18 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5696fd5d sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5a6111db sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6d733cd5 sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x863673f6 sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x95c23024 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x97eacd1a __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa1f11291 __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xad04a55f sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xaee68e44 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb199bfcd sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb5efb9b5 sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbcab9967 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc168f8a2 sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc81ecb0f sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc87a5725 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd2eafc0f sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd5ad6aa6 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe22b97b2 sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe7106240 sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf087eef5 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf9e5742a sdhci_request_atomic +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfdd236ee sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x1a3f4935 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x6ad0fa21 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x6c3569a5 sdhci_get_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x9bc137e0 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xabae478a sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xaeb5aeab sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb969657f sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc98f03b0 sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf050a7f2 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x2697214e tmio_mmc_enable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x37d33fc2 tmio_mmc_host_free +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x4c232457 tmio_mmc_disable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x716d6e04 tmio_mmc_host_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x791a3567 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xb6bec88f tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xc74f9efe tmio_mmc_host_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xd35159d0 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xf5079f3d tmio_mmc_do_data_irq +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0736711a most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2d314479 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x698ed6ee most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x6d99bdec most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x6ffef454 most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x77c421ce most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x78caebf1 most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x855061e7 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa5cedbf8 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0xaeb8cfb9 most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xbd707123 most_submit_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xd10f8dbd most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0xebde1726 channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xec4c720d most_start_channel +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x12d6023c cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2dff27d4 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd0e10242 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x326bb520 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x4c39fef0 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xc1927aa6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa3acd3a7 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x129052bd cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xab22623d cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe822abe0 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x2da076eb hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x7d241b58 hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x053c596c mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x05929933 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x082a23ea __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1700e739 mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1b4581f8 mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c651413 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2d1610eb mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e186a88 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2f1b29dc mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3214a109 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x334bd2a1 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x39e09945 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x438ccc7b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4815a3e2 mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4e8d72d9 get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x50dabc2f mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5129ed75 mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5569776b mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55e330f4 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x581e2c38 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5ce7def8 mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x620fdfaf mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x62a9d891 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63dfdf94 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x67da421a mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b6d2fc3 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6b7cec0b mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6c620bc9 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x76aeecb2 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7a5e4a49 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81ecf972 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84d1694c mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x86a68aa2 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x881d1a50 mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c225db6 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x99c62e6e mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa0defce3 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa506af62 mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa7deeaf3 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb532febd mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6d02732 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7075882 mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbf4efcc8 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc2039426 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6cd4550 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd79d5c45 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd9a97836 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf2090fa mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2230060 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe52db13f mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe8d7e453 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeb9511f9 get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xec2d6ac2 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xefe341d4 mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf82709ea mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x111246dd mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xcba48a8e add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd67cc8ef del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe03d36ca register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xed32b56f deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x05a87ff2 nand_ecc_restore_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x071657e7 nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x0cb4c3f4 nanddev_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x14f981f5 nand_ecc_tweak_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x17046262 nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x19e2e815 nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2512b571 nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x278fd2bf nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2b46dc75 nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x402eb5f3 nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x444430be nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x551bcdc7 nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x63bb9cd7 nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x74000162 mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x74c43948 nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x853c3207 nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x89e23993 nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x939f6636 mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x950e073f nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa96ddf61 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb020f0b6 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb7f077d2 mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb958a0ee nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xcac84b4f nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd9bfdd3a nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xf3ad1092 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x09a2b039 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x9ed8404c onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x197b739e brcmnand_remove +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x91ef8d39 brcmnand_probe +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x9fe7216c brcmnand_pm_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0xfe857e7f denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0866a395 nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0a8bd5f7 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0c3c911e nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0e36e95f nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x1b64d9d9 nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x276ef0ce nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2f24e2b8 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x40bc63c8 nand_prog_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x40c733d6 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x4bfb42b0 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x53402f2c nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5a6f8ca8 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5f2bac68 nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x669869f5 nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x6a0ed84e nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x750554fa nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x79dfc30b nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x9440e429 nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x9a01073a nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd2f276dc nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd3c672b8 nand_subop_get_data_len +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd41ff2ac nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xdae00511 nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe4da961c nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf04abe40 nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf291a1a2 nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x375fdf0c sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x8c4a1473 spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0xa126f7be spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x134e3b74 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2fa7c7b9 ubi_get_volume_info +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 0x570e144a ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x577a8a15 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x66011ab6 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6b17ea43 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6e807436 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f281030 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x81779ee4 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85da4e36 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x86c6546c ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8a80e236 ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbe9f1dfd ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc64c7e2c ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf22ec8e2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x279fab57 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x336b84a3 devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3571d6be mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3968509d mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3cef36b2 devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x47a1ec4c mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x54e7be6a devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x8716972c mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xa3dfc1ce mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xa408c2da mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xb26064aa mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xd269da84 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xdf9d99e9 mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf0f35f53 devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfa76e911 mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x16ffcdd3 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0xa39fcf2b arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x1db5e7e1 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x4ae0fa7f register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x67948826 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x6ec8c9df alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x95e1292e unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb878c0df free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x35857b6a unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3d494bc0 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x54b9e9c6 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xae830795 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0665ef56 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0b415d5c can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0c167d4e can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x1330071e can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x276aeb4c close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x42ef531b can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x43cb1e47 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x54da90e2 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6d28a270 can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6fe06797 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6fef357d can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7bb4ae4b alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x84443470 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x856617aa can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x9a9a5d05 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb4ee60a2 can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbdc45f14 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbe0f7606 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc2b41287 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd322e595 can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xdda57a3c can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xddab771c can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xde2eff33 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xeb9551f1 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xed34261b register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xee278653 can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf12d9387 can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf2d00c64 can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf338699d can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf4a6a261 of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xfebdc7c9 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x1d5e34c5 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x209d9b5a m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x2feba58e m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x59009a54 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x6410af4c m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xb9f5b5eb m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xd2b2bf35 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xf3aff6e4 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x088059e9 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1bfa82d5 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc217028a unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdea4623b register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x047b62c3 lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0045c303 ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1b6d3486 ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x259a41ce ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x2f934718 ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x37d21b97 ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x53405fe3 ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5b1913a5 ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x626d0dcc ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x634ac79b ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x713f3a72 ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7a17914a ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7b097d15 ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x82a77c2e ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x83c2cbc7 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x9b2b44e6 ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa77dd109 ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xac3e1025 ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb37561a2 ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb6d05368 ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xba38926e ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbdb9ec39 ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xc234d948 ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe0e54758 ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe5afd675 ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe5f17d50 ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xf0080859 ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0xa59c7a5c rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x1729670c rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x51f42604 rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9e0f5644 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9e7e9fc2 rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa6bf1d4a rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xb2439193 rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xbfb9111c rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xc0bf7334 rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xed11ccfe rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xef0c98a1 rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xf10aa432 rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xf87648f1 rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x6b6f1ce5 arc_emac_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0xc6318008 arc_emac_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x473160e1 enetc_mdio_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x92cc6642 enetc_hw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0xd9d61d6f enetc_mdio_lock +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0xdf4aeec6 enetc_mdio_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x0661dda1 fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x140dcbd1 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x18924036 fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x25403333 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x268f2214 fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2d42a0b6 fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x75438342 fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x78b5eec1 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x8bb7da18 fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xb1fc80f7 fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xd38bbeed fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xd68b5a15 i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xf0bf18bf i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x2cdd618e ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xa0fc10a0 ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xb60f3cc1 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xcbcd8ffb ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xfa3a663e ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0x02203583 otx2_ptp_clock_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0x85547758 otx2_ptp_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0x86cf717c otx2_ptp_tstamp2time +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0xbc2b841a otx2_ptp_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00695a4d mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00a32268 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05819fba mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0913a72b mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a88a5e1 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b15010e mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d285590 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d508d30 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fc07a79 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fd8bc6f mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0fe6acf6 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x114b4cce mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12bc6749 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1413f856 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x147362c3 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x162abc34 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x175d0a41 mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1c53199a mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x203b897a mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23098880 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23ab47b0 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x240a91c3 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x275426a5 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28afb5f7 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29138a51 mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b6be56f mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34a89edb mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35ac86e6 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35d0dba9 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3872f581 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3f12a6e3 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4834587e mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48fd2902 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4bd208a1 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cbb706f mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d608c85 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d7e0833 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e88c0da mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ef87fb2 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f041b9b mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f92c8e7 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x524a3394 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55625d3c mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x55976ae4 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57379125 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58635b00 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59971c42 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ea3a671 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f244dfd mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x609811f5 mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62184ef8 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62ad96c0 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64a67eac mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6672d339 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x66e75e12 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x68e86985 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b3d3c7f mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b95a19e mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6ca6555d mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71648d18 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x735f42ad mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x749c7716 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b52dced mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80a253e9 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x80f2f32a mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x853611a7 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x860963a6 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8ef13f83 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x916700ef mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9861ccb3 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9c27893b mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d652616 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d998a25 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e18ed1f mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa04fa765 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa56458e5 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa619624a mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa80e19aa mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8360294 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa84bd218 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad96f5de mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0db61be mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb22ebfc2 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2fe5e59 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb45477fb mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb4a8beb mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe03c519 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc31f81b1 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc32e9213 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc48f3576 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc689262f mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc5a4ff0 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce5534e3 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce8c60c6 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0a57125 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0a5fa8b mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd1053dbc mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8c6a716 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda592f65 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde1659a8 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe24a6144 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe24cf98f mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2edd384 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe470adf4 mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe5371d0c mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe686d524 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6f3d751 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe845045d __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea7f4586 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecd2764f mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed97f582 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xedb35ff7 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefd0875d mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2bef1b6 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3223a24 mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5682662 mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6f7b9fe mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7aee6ce mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8a8df8e mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd4bb536 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdf68772 mlx4_alloc_hwq_res +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 0x0800fb76 mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a2e713b mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ae8433a mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a091f27 mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d71a182 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e70bd0f mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x216bfd2b mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23f090d1 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2aeb3847 mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2aff6706 mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bf01118 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d2bc91f mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d9caaf4 mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2df8fb61 mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x333444d2 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33db4616 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a8539dc mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e8375dc mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x454bfff2 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a5dde39 mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5336729a mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5490868f mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59d9de39 mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c3c3b84 mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d0f8d69 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ffe4aac mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x64e64ffd mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x664e20cd mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70661a8b mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7173e95b mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f5097dc mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8076ed9d mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81131362 mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86128d7b mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x869fe10e mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x880ce49b mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x887a137c mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8aff75c5 mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a5da2c2 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b3655be mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac12dcfc mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xac68a9d4 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf3138b7 mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb418ca53 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb686bb9 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdc003c5 mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe24744a mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe4ab66e mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1186212 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2a53d2c mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc4063980 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc580d4ce mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb7a20ef mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd70edb2b mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd930d064 mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9c70361 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb35ee15 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb5e391d mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0ef6466 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe12be797 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xea9b59c1 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb086d44 mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeef4d886 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef565dff mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf29ef3c8 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf34b597b mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa5aeb38 mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x65fd846e ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x678d6852 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xcfe599de ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xdfd635fd ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x0268492c 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/mscc/mscc_ocelot_switch_lib 0x0730c7ea ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0a1969cf ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0ca8b2b2 ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x100119b7 ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x12f705bf ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x14a832f4 ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x18ab0d3b __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1af5f27d ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x263ecf7b ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ba07e58 ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x34b07980 ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x40ceaf64 ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4769a082 ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a19db95 ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x613fe1dc ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x67f75fa9 ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x78ab75b4 ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d20b916 ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8dc3334e ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x927adac1 __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x99b6c793 ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9a688a8c ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa2d1983f ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaf370d5a ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb035f0b4 ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbc197275 ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbcf1fba3 __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc3b15e7d ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc8e0df11 ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xca6b8da0 __ocelot_bulk_read_ix +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 0x0a085e7b stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x1d8a9874 stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x6925b213 stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x8963b1ad stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xce4e7c21 stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xff723c16 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2a91acd4 stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x382ed542 stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x4ca5d039 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x61cf1de1 stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xb65bf9fe stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x0fb8dbfa am65_cpts_prep_tx_timestamp +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x342a4f83 am65_cpts_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x405b51c2 am65_cpts_ns_gettime +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x91fd3558 am65_cpts_rx_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xa88a46b5 am65_cpts_tx_timestamp +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xb60b988a am65_cpts_estf_disable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xbfc83e4d am65_cpts_estf_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xfca9b9d9 am65_cpts_phc_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x24bbc006 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xc396db61 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xcc1db7f2 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xeba8276d w5100_remove +EXPORT_SYMBOL_GPL drivers/net/geneve 0x15d67e8c geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x067b0cc2 ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x34806a76 ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x5ba9d17a ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x9ee47962 ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xaf278791 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/macsec 0xb8b6fc68 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x28a12841 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9474da95 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd9d29ca6 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xef0ff004 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0x09d19e84 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xa0a92ba0 net_failover_create +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xc633a137 net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7870a1b7 xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x83df82f4 xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x8947189e xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xabc4eed2 xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xb923c8b9 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xb9747896 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xee6e134d xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x07f20fb5 bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0f2682ea bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x10eba24a bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1e9bef6c bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x21a9e876 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2ef9ca3d __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x358358c1 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4a8af407 __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4b925fcc bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x578dc09e bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x57da4c5e bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5e96bd53 __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6c57cb74 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6c5ca793 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6e02b1fb bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x75eb906d bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x79eb2f35 bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x81d4ef9b bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x92b17a71 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x9dffaf79 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa047f0f9 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa1010f01 bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc830cff0 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd16e786f bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd6d1ba00 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xeaad5534 bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xece8c881 bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf3b9408b __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf5954428 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfc6d0307 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfd5cd717 bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfd75a8cc bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xffca6751 bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xffef21f1 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x178c5d0e phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x27e810b4 phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x35c4fc3d phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x3ce060b4 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4aad49eb phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 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 0x8df9a48e phylink_mii_c22_pcs_decode_state +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 0x9be1423b phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb384c13e phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc85b7c9f phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xcff1abd9 phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xd7c68f5c phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xde66f4a7 phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xe91d161f phylink_of_phy_connect +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/phy/phylink 0xfb373bd1 phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/tap 0x043b51b9 tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x1d398ca4 tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x20a9af50 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x2f8de353 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x58e40e94 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0x6b48e739 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x73470346 tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/tap 0xb20b19b4 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0xbc8a549c tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4f254284 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x60a29324 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x6eb19cf2 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x719926bc usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x76cd1fa5 usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7e40e393 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9f370b6e usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x0ec3f2a1 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1ab1589e cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2c115f6e cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3f690925 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5cc121d6 cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x64ec25e8 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x680bd95c cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x73b55e9b cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xd5defe32 cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe6015dfa cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf77e87b1 cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0xa9333a8d rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2695a361 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5506d0c4 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x635bb6cc rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x84910c0f rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9de670a1 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xaab0a1be rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0106337b usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x113e2c30 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x175fbea0 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17c310d8 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x21796de2 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2b4a2ac7 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3e96bc90 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fb7d5ae usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x401ce73a usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x427571c1 usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x49e917c6 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x528c9b86 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54f66076 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5703443a usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x596b38bb usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5cdf3256 usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x68373c02 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x72a88698 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x85b1a89d usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x89a403a6 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x982d7562 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9dacd3d6 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9e651487 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9fffde4c usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa94e9684 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb32a370e usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbbf89c5d usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc97ca65f usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcec76b24 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe94812aa usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xed615ac6 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf5c801a9 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf7d113c0 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfae567ef usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x30812a53 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7a8d239b vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xaca59595 vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xbfcf86e5 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0xa671603f libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8c6d6541 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9302079f il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa51d5cf1 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd6ceaf91 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdc432280 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71118edc iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74778a2f iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x1c7cc965 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x3fb89750 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x4123ed35 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x544528d9 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x5b7e3c1a p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xb88a0eea p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xe31f0d2d p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xfa6a9a08 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xff6d73e8 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x07271ee4 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x25706d19 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x2b5a148f lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x2c3e2f86 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x346cb178 lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x49ff1114 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x4d963785 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x6dc380ae lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7d53878d lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x8aaab593 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x8e77563f lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xb6109ea3 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xc23f41c3 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xed7a039d lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf607d3ef lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xfc946af5 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x5123befe lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7154e428 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9b92ea4b lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x9e4ce1f7 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xac0c49c4 lbtf_remove_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 0xcdedc547 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xed9c8a5f lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf05ec927 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0a66b3b5 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0c175216 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x138b0851 mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x1ec418e7 mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x231c547c mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x26a0860e _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x309eab6a mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3cd73ff7 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x55bdd83d mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x72bffbc1 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x863a4abc mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xa387e036 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xacd92dba mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb0ed5cab mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb487a2ca mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb59d54b7 mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb5d79bb4 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb8d51f2a mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xbdabc1c4 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xc1908113 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd0a1f471 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3 mwifiex_alloc_dma_align_buf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xe312c223 mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xef6fd4d8 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf181d9b5 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x027e7948 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x03976b9e mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x058038e6 __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x081f559a mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0843b31a mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0b48612a mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0b58fe1c mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x12938e9f __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x14bbfbdf mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x159c71c7 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x18bbe153 mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x193d9cb1 mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1f8ac718 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x20f04838 __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x21779b24 mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x22839247 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x28be5305 mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2b0c094b __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x32143c74 mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x338f035a mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x38cb26a1 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x39fe454f mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3ba900f5 mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3bf03c29 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3c060849 __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3e4dd1a9 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3ecd84fe mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x409f804a mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x42cf5d8c mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x46dc53ba mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x48c0f5bf mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5754d51e mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5d1b4e42 __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5f10cc00 mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6315a8b8 __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x65f8464a mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x666e3c79 mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x66c77fb9 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6ba9ac8c mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6c68fc8e mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x76b59b91 mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7aabee4f mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7c1108de mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x801f6130 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x805fc13a __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8334851c mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x838b467b mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x84b47ab3 mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x887cd9fc mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8bd83064 mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8c02bfb6 mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8e311095 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8f99d62a mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8fb7c966 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x90ba6cf9 mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9410c16e mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x94c91ef6 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x94e2ff6a mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9bff55ee mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9dd31c1a mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa5a1cad2 mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb29ab50c mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbc4c824b mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc4efc1ee mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc5e56f84 mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6315d8e __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6634315 mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc9f078ce mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xce35546a mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd13c4f75 mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd13dafe2 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd1565d5c mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd6418589 mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdc2f13c4 mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdff77b7e mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe40b66ef mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe53274ff mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe8da8bc2 mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xea0b0834 mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xed6a7de4 mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xee2b1bc1 mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf103dda8 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf4e9d688 mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfdbd351c __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfff5f2b4 mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0c16580b mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x13cb1e35 mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x16160084 mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x182c0830 mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1b22b18f mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1f52155f mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2093fff9 mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x271ab33c mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2ae1d0bc mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x354eb3ab mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x35b8308f mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x397a2e36 mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3c3923df mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3fb978bf mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x43c56915 mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4720361f mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4a55f384 mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4b979a98 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x561dddfa mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5e2a776f mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x685d900d mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x72703f9c mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7879094e mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x78e1f3ac mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8697d547 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8f18d192 mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8f83e81e mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x908ca40c mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x913384b1 mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9af47caf mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c3cdc34 mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c835bcb mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa0c8e665 mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa29fac6d mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa3522aec __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa4c97ab1 mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa7800842 mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb679923a mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb83c487f mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbe056aa7 mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbe865a58 mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbfbe3d83 mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc366be67 mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc500617b mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcc503ca3 mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcfd1fd88 mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd7585926 mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xdd76cc3f mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xde502c49 mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe38fe14a mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xea2a3a59 mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xeab910e5 mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xec6497f4 mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xee81c95a mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf297b52d mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf3191f23 mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf7de4800 mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfc8691ee mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfe2b328e mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xff58e35f mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x078854da mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x235f292b mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x24f310e0 mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x2609215d mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x4858bc7b mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x4adabfa9 mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x4bf15d9a mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x6334faf3 mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7e1465b1 mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x8883fb11 mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x8d131f41 mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x8d2d11ce mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xc58e5210 mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xe50f5208 mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xebf31e27 mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf56db149 mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x029038c8 __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x10a69652 __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x4d089f2f mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x58779676 mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x5bb7b319 ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x6379471e mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x643ac536 ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x919dcbbb mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb040c03c mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xc1cfb277 mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xe0d927c1 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xecd8e666 mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xf9c781f3 mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xfde909ca mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x05b0d7b5 mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1149d713 mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1673acb5 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1bbf0dc7 mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1fc4050a mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x20b2010b mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x30534e39 mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x430741c7 mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4701e9a3 mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4de39700 mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x50f60ed2 mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x570dc18a mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x5dfed103 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x641d3ec3 mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x693a9e9e mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x6f6eca59 __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x72d62c00 mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x73f59e43 mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x75335751 mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7ab5dd44 mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x826e1a7d mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x82934915 mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x874cd271 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9e4c64eb mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xe08ac8e0 mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xeb4cad4e mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf1ec1588 mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xfcf447d4 mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x215cbc04 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x4a860645 mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x54c1180c mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xcec05dc3 mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xe7130978 mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2cbdae47 mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa1a2e534 mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa38b3b82 mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xc6110233 mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xd767cf81 mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xee82e3e1 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xef3ff0d7 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 0x08f9aec1 mt76x02_configure_filter +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 0x0fd08a5f mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x13451f03 mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x16c6eecd mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x16cf3484 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1766cf37 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1947d9bf mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x19a0a27f mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x19ed5e5a mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1c208e37 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1d61d939 mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1dd0a7a7 mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x284e6874 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2bbddb51 mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2f839c22 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x303efeeb mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x31fe8767 mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x32d6b149 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3540178a mt76x02_mac_reset_counters +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 0x3881d198 mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x39c81a66 mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4084fdee mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x426f59da mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x46c08949 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x47bce8de mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x481ecbfd mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4bf7947e mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x52cf36bf mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5dd08b47 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e9392ec mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x60a55624 mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x61440bea mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x71e4be44 mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7ab9af78 mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7c336584 mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8133b30c mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x897d92be mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e8eb36c mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8f07ed46 mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92e63c05 mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa9f3a203 mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb05aedb7 mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb42365cc mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb5b03753 mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb7bc7505 mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb8491d1e mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbf36420e mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc2953710 mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcf34c65a mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd039a6bc mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd3fff64c mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd4ac5101 mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd4b6d638 mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdae72988 mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xdf307547 mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe04eeefb mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe063eab6 mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xea5f6151 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeb0476ad mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xec4f7602 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xeda81145 mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xefc931cb mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf62ea521 mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf89b0525 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf904657a mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfa226a7a mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x0f4f426d mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x469d42b5 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x535a7457 mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x6a41d160 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x6b902473 mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7dc89670 mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xbdfa7354 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xee7f2fcb mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0c080602 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x100a914e mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x104e84ba mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1e762d46 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1e9b925e mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x284520dd mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2b5eebc5 mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2c0af23c mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2e5cad7d mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5827c842 mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6762fe5d mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x88714b7f mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x932e1341 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa69c3ad4 mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd1a12164 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd68693bd mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe935af5c mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf0734481 mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf5eb1530 mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf6ec9878 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0c46028a mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x15215f4d mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x17779304 mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1aa81471 mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1c70efcd mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x244093a8 mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x247eed28 mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2c8084e2 mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x30bcac68 mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x46c7beda mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4b0e10a2 mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x62083404 mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x63bd0b0a mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x73ad2d09 mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xa652d30f mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc72fbfaf mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xdcce7b02 mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xea602a1f mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xeb055ec9 mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xecab6d0a mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xece3a86e __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xefa11451 mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf1094a7f mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf7850f47 mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xfef1c853 mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x1629deec wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x263854fd chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x44e8c08a host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x4787c015 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x52eab843 chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x5dd63174 wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xf0fedffb host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c qtnf_chipid_to_string +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x856fb801 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x943d4ec6 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x96abe57c qtnf_trans_handle_rx_ctl_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb840799d qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xd364fb24 qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xf2b41a52 qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x05004813 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x07b6da8a rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x08deb01d rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0903d937 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0ccc123b rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x10af0f6a rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x11420596 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1b66a823 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1c37b961 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x202e774e rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x20a5b05e rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2398f2d4 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x26244576 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2c6d159e rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x318293f6 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x382c23fe rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3d4d7c5f rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e2a0410 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3fe57b1a rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x50fa5f85 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x55cdd355 rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5b8bd3db rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5eafdd31 rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x619d884a rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x69cd7a19 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6ee9f80d rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x77f3eb46 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x810204a6 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x84ed29c8 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x93644c00 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa6fcfbc2 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb9a393ec rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb9c439b2 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc3743d16 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc5d16c46 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc89a4511 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xca6730c4 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcae4a068 rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd0292939 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd38804af rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdb5a804c rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xde190781 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdebb9a60 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xed81abf2 rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x06ba39ca rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x40041386 rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4c85491b rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5774a0a7 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x63748771 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6f392064 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7543fb3d rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x75aab541 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x78bfe813 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x8485bc60 rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x86a61b3f rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97e3c029 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9f3c8921 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xacf0dcba rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xbd26cca8 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd3aa431b rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xeedd4190 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xef6560fe rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x02f89a9b rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x043c7bcd rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0f4139d6 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1bc928be rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d8d9433 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2327e942 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x237d1fe5 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x297a5cbd rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x371b9087 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x450c4ab1 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48c8d2a8 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x49977abd rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5040be27 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52da1096 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5577d0af rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x56ccef0f rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x588cdb16 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5d9e72e9 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x63cba8ea rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x65edce15 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x67daefc4 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x692003cd rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6ce8ced1 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x747b5d73 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x74e3ae58 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7553696b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7938423f rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x800bfb0e rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8102d4dc rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8e10c19f rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9274e2a5 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x95398a69 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x98ae7738 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0bda3c3 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa8a96936 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa981d705 rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb09c27f9 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb1f094d8 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb72221d3 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbb121e1f rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd7d80e55 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe0ff9ef0 rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf726e56b rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf7845df0 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfceab007 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfe9f13e4 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfeb4b9d6 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x1a90ba59 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x21e22383 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x277cda46 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7355b605 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x854a01b2 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x14412a5d rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x42a1e8e6 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x6f29de11 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x03452a56 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x13806d8a rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x252a858c rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x31ee3b55 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x44842ba3 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x528bf296 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x56291959 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7c9a25b5 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x80b6de6c rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x868069b7 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xa293ec37 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbabc6072 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbf0e3b7b rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xc4b37be2 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xcbcc9fda rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xfb9ee864 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3f983482 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x855d6120 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa5402536 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd262d26d dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0283cf6d rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x0bfea3e1 rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x272c49b2 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x382e7f33 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3e18b949 rtl8723_save_adda_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 0x47f3b72e rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5dad44f8 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x66c35b30 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x670f15f0 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x73ecb471 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7f249ce5 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x8393d617 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x88cd8925 rtl8723_dm_init_edca_turbo +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 0x8e93aac5 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9dcf50c8 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa86622cd rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xaa207366 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb1ee3dc7 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb3e69e04 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb7358a2d rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xcad89410 rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xda0cd38e rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xebf3f323 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf141afd0 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfde9a989 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0d7e7f6b rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ec4527c rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ee800e5 rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1149144f rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1387b889 rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1417f6ad rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x218ea076 rtl_p2p_info +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 0x3a64b8a0 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3f56e308 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4ea691be rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x560a08b9 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x65265b63 rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db3ba37 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x73909175 rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x81243ec2 rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x841c126f rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x954e8621 rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad29a581 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb63f1f4d rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb85e0651 rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc6b0f47b rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd94fc9fd read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9d62003 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec6a1df9 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xec8e6ded rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf5007d1f rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x4f9ee12d rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x631de7ce rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x85d09f27 rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xcd173710 rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xcf2b67ee rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xdd105502 rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x0b4309de cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x7732ec3e cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xc17747d7 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xd2f8f34c cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x18101f42 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x35f22386 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x881e02a5 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x03e95455 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x08824a6b wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x10213089 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x136c5615 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x14e9c7f7 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x197e2a7b wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1edc684c wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x25a5080b wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2701f70d wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2fa17792 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x328342e0 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x477940a0 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53a3e5ef wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x68408952 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6bdf5785 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x70950919 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x710a8ebe wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x72000235 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7defcaae wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7f6fa076 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x800e608f wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x81b53448 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x84a6cbd2 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x86b86df8 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x904d5a48 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x92bd09c9 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9bdc7cec wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9c5b5af1 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xacaf7c3e wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc1110404 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc615f538 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcd4bcfe7 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5237f8b wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xda2a79d9 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xda84d0e2 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdafca816 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdca4c1d7 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdce95aea wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xddacf474 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe8dcce79 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf305c363 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf9daafb4 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfb09ae87 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x2d6edd23 nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x8bf3726f nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xc5294e5d nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xe728efbb nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x03660097 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x207a6027 pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x48be60b8 pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x48d399ed pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x8d687b82 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xac19d61c pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xdecfd339 pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xf9ba7f85 pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x4b7efadb st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x52cd023b st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x53f59fde st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x672ac1f7 st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x8b39b81f st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xbb24b4be st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xdef4b3cf st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf0199823 st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x272d2282 st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x686b620a st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xba74b224 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 0x1b8226ac ntb_transport_create_queue +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 0x6e064fbd ntb_transport_register_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 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 0xef00cb87 ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf55d6313 ntb_transport_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf9eb813f ntb_transport_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x4cbbf5a3 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0xf086f55f virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0322618a nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x07d62cf7 nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x08831240 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0c6ad50d nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x13c9a07b nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x16d13f4f nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1bb942bd nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2026ed08 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x28c94405 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2ee82d3e __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x43b7cbb1 nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x43d7ba35 nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x48198b94 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49c5c4ec nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5023865e nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x54f87aa5 nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5590eefe nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x690da52c nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6c2da73a nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6c8ad94b nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x74dd9131 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x755056af nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x759ea765 nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7c60e76b nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7f6186f1 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8304d40c nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x843e1f69 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8a9c70ed nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8e7ec2b6 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x95ceb754 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9de5e3cc nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa2cffe92 nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb91b97e8 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc27c3149 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc805f97b nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xca6080b7 __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xce02988e nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd1aae5a8 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd35a1fa3 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd3d323a9 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd45434ee admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd578e263 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd58bbbcb nvme_delete_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd66ced7b nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd77f96d8 nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd9787821 nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xedec457c nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf2927b8b nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x03c59e5a nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x394562ad nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x3abec5bc nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x51c659eb nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7db70b45 nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x9815299b nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xc24fd570 nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xd9d5a3f1 nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xedf3c852 nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xf5c4b9fe nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xf975b84b nvmf_ip_options_match +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 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7670dfbf 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 0xbb0e18a6 nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x22c56641 nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x2cf22f20 nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x971948b6 nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xa5dca353 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xa99bdf55 nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xbd763d46 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xc24612db nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xd18a76f3 nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xeb747754 nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xee8ba3f1 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xf6845395 nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7fa5302a nvmet_fc_rcv_fcp_abort +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x8f2c45f4 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/controller/pcie-iproc 0xa35b268e iproc_pcie_shutdown +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x02cd4ad1 switchtec_class +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x0025cc26 hisi_format_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x01e375eb hisi_uncore_pmu_stop +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x09731ffd hisi_uncore_pmu_event_update +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x13d625a4 hisi_uncore_pmu_set_event_period +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x17250d77 hisi_uncore_pmu_del +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x38b87a47 hisi_cpumask_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x3b2e51ef hisi_event_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x3cde05ef hisi_uncore_pmu_start +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x3ec4fc27 hisi_uncore_pmu_online_cpu +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x4bd38af7 hisi_uncore_pmu_add +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x6c0985b6 hisi_uncore_pmu_enable +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x9f36f07a hisi_uncore_pmu_event_init +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x9facbc3a hisi_uncore_pmu_read +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xa1edca51 hisi_uncore_pmu_disable +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xe3802a54 hisi_uncore_pmu_get_event_idx +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xeb0c03a8 hisi_uncore_pmu_init_irq +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xee44c266 hisi_uncore_pmu_identifier_attr_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xfb6373d1 hisi_uncore_pmu_offline_cpu +EXPORT_SYMBOL_GPL drivers/phy/allwinner/phy-sun4i-usb 0x4d954599 sun4i_usb_phy_set_squelch_detect +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x1b5b2288 tegra_xusb_padctl_remote_wake_detected +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x1bb3b867 tegra_xusb_padctl_disable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x3ffd13c4 tegra194_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x4876a345 tegra_xusb_padctl_enable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x57639f3d tegra_xusb_padctl_put +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x655c6a3c tegra_xusb_padctl_hsic_set_idle +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x697646c5 tegra_xusb_padctl_set_vbus_override +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x6e2432e3 tegra_xusb_padctl_enable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x797fc429 tegra_phy_xusb_utmi_port_reset +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x8e1e4de2 tegra_xusb_padctl_disable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x925d948d tegra210_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x950a88e8 tegra124_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x97fe71c4 tegra_xusb_padctl_usb3_set_lfps_detect +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xacfab9f6 tegra_xusb_padctl_get_usb3_companion +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xafb97277 tegra_xusb_padctl_get +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xedcbf81f tegra186_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xfc5d6376 tegra_xusb_padctl_usb3_save_context +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-usb2 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x90959fa6 mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xa0ee3b49 mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xf9e6fce6 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x895d31e1 lpi_pinctrl_probe +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0xfde49f52 lpi_pinctrl_remove +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x8abf4bd9 cros_ec_sensorhub_unregister_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0xddf370a6 cros_ec_sensorhub_register_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x6b1be500 cros_usbpd_unregister_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x8bda2df3 cros_usbpd_register_notify +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x06232959 ssam_remove_clients +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x065f5f71 ssam_controller_event_enable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x0bca867b ssam_request_write_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x10cf9373 ssam_get_controller +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x29045082 ssam_request_sync_init +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x352b2325 ssam_request_sync +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x3d379dd9 ssam_controller_statelock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x3d598b68 ssam_device_driver_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x3fc90d5b ssh_packet_put +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x48b065c8 ssam_device_get_match_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x4c3793eb ssam_device_remove +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x4cdd6a17 ssam_controller_put +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x50c493b3 __ssam_device_driver_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x5770c11d ssam_client_bind +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x5caf5491 ssam_device_add +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x6ab05921 ssam_controller_event_disable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x6bd48494 ssam_client_link +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x769b2f6f ssam_controller_stateunlock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x9469de4a ssam_controller_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x97adfd77 ssam_device_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa1898c1a ssam_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa2267b71 ssam_request_sync_submit +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xad40c61b ssam_request_sync_free +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xb099bb5b ssam_device_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xbdc03c96 ssh_packet_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc2bd582d ssam_device_id_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc4a23b32 ssam_request_sync_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xda16b6b0 ssam_controller_device +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xeb25b7f8 ssam_device_get_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xf4411299 ssam_bus_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xf85422f4 ssam_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xffcb87a3 ssam_request_sync_with_buffer +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0x48cf4c48 san_dgpu_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0xd60bd773 san_dgpu_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0xd881960a san_client_link +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x329090d8 devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x4d6f0098 reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x71ee5a4f devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0xd8583339 reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x290f2de3 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x61752559 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xec180395 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x36722d77 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x572c5082 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x730407c7 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2eae82b0 ptp_qoriq_isr +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x34109c02 ptp_qoriq_gettime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x3860f271 ptp_qoriq_init +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7219fbc1 extts_clean_up +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xa58c58a5 ptp_qoriq_free +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xc44adecb ptp_qoriq_adjtime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xcae0a690 ptp_qoriq_adjfine +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xe6e25088 ptp_qoriq_settime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xfb650ec4 ptp_qoriq_enable +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x0bef39c5 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x420e9507 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb1097b54 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc6a32b20 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xeef7ff4e mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x372f7d12 rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0c312c9b wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0de25a4e wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x31ac399b wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x45314528 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8d06ec9f wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xfbaa43e3 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x282dbe1d wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x2646dead scp_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x2989f1bd scp_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x3ec0e574 scp_get_rproc +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xba865a86 scp_get_device +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xc7e0a0d7 scp_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xd2074fae scp_get +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xe8989d13 scp_put +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x09313652 scp_memcpy_aligned +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x1fed5f1e scp_ipi_unregister +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x2aa4b3c3 scp_ipi_unlock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0xa01c7905 scp_ipi_lock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0xf567b632 scp_ipi_send +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0xf9f07903 scp_ipi_register +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x0fa538df qcom_register_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x28537867 qcom_add_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x367d952b qcom_minidump +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x53d5f308 qcom_register_dump_segments +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x855ec1e0 qcom_add_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xa00b6288 qcom_remove_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xc0dc6a17 qcom_remove_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xc53e8299 qcom_remove_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xd6cc0cc0 qcom_unregister_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xf4d90629 qcom_add_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_pil_info 0x30e58241 qcom_pil_info_store +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x0ec4756d qcom_q6v5_wait_for_start +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x3169e32f qcom_q6v5_unprepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x3fe5cd31 qcom_q6v5_request_stop +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x5a7a7f9e qcom_q6v5_deinit +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x63689e80 qcom_q6v5_panic +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x760382d8 qcom_q6v5_init +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0xd9bc4400 qcom_q6v5_prepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x1482d168 qcom_sysmon_shutdown_acked +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x8cb862a1 qcom_add_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0xa881c6fc qcom_remove_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x4d1e0928 mtk_rpmsg_create_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x86903274 mtk_rpmsg_destroy_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x6be59b74 qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf14f5684 qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xfd2d5a1d qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x350cb2d4 qcom_glink_smem_register +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x72dd75d9 qcom_glink_smem_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x007bd7de cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0825010f cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0d11781e cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0ff048e6 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x10914476 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x132b75ef cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15a0cb72 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x24529495 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x30181633 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x340faae8 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3788bd14 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x38f31ef7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x43513ca4 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x46be32bf cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4aab13a1 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x53ee8428 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c3317da cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c3f0ad1 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7d3cf900 cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x84700425 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x876affd2 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8f499c4a cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8fc127da cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x95181d20 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x99811fe6 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9fb6b295 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa237a194 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa285a5c0 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa38ce02e cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa59703bc cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xac520492 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb73b5cfc 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 0xc5475387 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc73affe4 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd5e91733 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd6cd1194 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd9afd7af cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe1448617 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe4ef8db3 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xea4deb7f cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xebc93574 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf726fa79 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf747b720 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd49b4ae cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x007c015a fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x2f8507df fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3bbbaeeb fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x513ffb9f fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5f87b1b7 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6175e207 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6f0425ea fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x712cfdfb fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x71c1f173 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x816809aa fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb02e1460 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb7a5b365 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb996d40f __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe22fcaec fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea1856ba fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf33a5bf6 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x54f5f3bf fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x930301a2 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x07488a85 hisi_sas_scan_start +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x0834e576 hisi_sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x1c0053e9 hisi_sas_phy_oob_ready +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x1fa13930 hisi_sas_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x21995768 hisi_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x2d11b7f0 hisi_sas_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x32cd628f hisi_sas_probe +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x40ac648c hisi_sas_get_prog_phy_linkrate_mask +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x4fc22123 hisi_sas_stt +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x4fccb242 hisi_sas_controller_reset_prepare +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x5b5dbbca hisi_sas_controller_reset_done +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x70f128c8 hisi_sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x807eb305 hisi_sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x89486657 hisi_sas_sata_done +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x8cfbec3f hisi_sas_slot_task_free +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xa8cd271c to_hisi_sas_port +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xabdc4109 hisi_sas_get_fw_info +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 0xb37608f7 hisi_sas_phy_down +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xb4b3b1eb hisi_sas_alloc +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xbc9a0552 hisi_sas_release_tasks +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 0xcac7b873 hisi_sas_sync_irqs +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xd281f352 hisi_sas_stop_phys +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xd44bf666 hisi_sas_remove +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xd85849d5 hisi_sas_init_mem +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xe1cb199f hisi_sas_debugfs_dir +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 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 0xf211c219 hisi_sas_free +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x015a92da iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x77bc3fc0 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x78eed944 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8f6e5cd0 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa3d9d0e4 iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xaac8e5fc iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf234fb2c iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x344f6528 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x033090a3 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x053f1196 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b6cbd09 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b808bff iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c515354 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0cd72471 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0dfc2c7f iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b6b68c iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19b7e209 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c85069a iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x261a872f __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b303091 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f5f5014 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31aa7fe1 iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x359a4843 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42f239e2 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x497f5e88 iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d20b677 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e06d815 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x549be44d iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a014eb5 iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bab2f42 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66cbec48 iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69ca6fb8 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x766130e7 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x794ffb24 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7965bde6 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7b082c55 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e510c20 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f120003 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x853f6788 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87c058c7 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8fb4a6d4 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9578eeb4 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f44ba70 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xab557b88 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbb1b0aa3 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc862fc78 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcab15028 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcebe4b88 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd28d0844 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd53efeb4 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdad4e702 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0760686 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6e46ebf iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfee1d5e5 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1249e56e iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2e6fbfa3 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4ed48861 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5a279c0f iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x60320de3 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6a57d864 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8813a16a iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9246acf7 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa55267f4 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xad06edf4 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3100035 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3626053 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcdd312f0 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd61452ac iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6b92d9d iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf42bc43b iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf4aa2345 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0f971726 sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0fa07496 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ffbd106 sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13b83f08 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14673a8e sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x188fca69 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x18eaf915 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1a1f9322 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1ca30386 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x23440795 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ab8f81b sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2bc6014f sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e065d3d sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3f4cf085 sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5af9bdc6 sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6268637e sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x86b83090 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x86fa5eb0 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a1d17de sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90a070af sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9153b205 sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9223a6ad dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9d159ae7 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9dba69cc sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaaae7525 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xabd0ec3a sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb6d6f7f5 sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbe5109dd sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3cb832a sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7f85a4f sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe59652ac sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeabe5698 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec7ff861 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf0d049c8 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf481f223 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf4e87924 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc8fb63f sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0xcd2b0fd0 fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x008c1bae iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x026b9fa6 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0736dd10 __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13767018 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x14159a23 iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16122967 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c5a0a63 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x214949ee __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x219c76f8 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28bc21cb iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29dcc60b iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3225ef28 __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x34f2ba90 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36fd11ac iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3785e561 __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3a4009ec iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x51c72376 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5471787d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5790702e iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a1e86c5 iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bfaa2c3 __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5d17471c iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e3518ac iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ef29c3b iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68aa4785 __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70969fb4 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_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 0x869490e8 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88768c48 __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x89e2de26 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8a645b20 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8cd6d45a iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9cf05bdc iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa976bb3 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab4674c8 __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaed5dbfa __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb060ec40 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb18a66f2 iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb948f223 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc071179 iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbf38d512 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc007cc0a iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0b89333 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc71740dc iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd0ac1057 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4698933 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd47c9762 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4e55f1e __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd6fb497e iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7a37ddb iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdae0760b iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4c79fa6 __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6b21625 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea9a0169 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2247b2e iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf3e15adb iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9fdaa59 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa68c574 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x015be3da sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x38712bbf sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x45eda59c sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc0ddfdb5 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x6da0ac25 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 0x2cdced6b srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x45518644 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x459341b4 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x633a51a7 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9a73442e srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa470280f srp_rport_del +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x1ab41fc2 siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x4e14c824 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x4f570563 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x69401a2e siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x6a568d19 siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xc717413d __siox_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1443e622 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3118de92 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x357cdbce slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4ed6bc8f slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x519cd0aa slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x68372d9a slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6e135377 slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x753a9306 slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x76f0bfc3 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x81b27ef4 of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8260782f slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8dcac571 slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x939e62d6 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9c8e0ff3 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9e1249f3 slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa1890eca slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa5036cb9 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xaad5a8ae slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xc14d2f02 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xcc374e90 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd01cffef slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd0d0d014 slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd19f8060 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd370f440 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xdfe39dd4 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf4187fe6 slim_register_controller +EXPORT_SYMBOL_GPL drivers/soc/amlogic/meson-canvas 0x1990b3e6 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/apple/apple-rtkit 0x04b6bceb apple_rtkit_send_message_wait +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x053a3fb5 apple_rtkit_reinit +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x1aa05cb9 apple_rtkit_quiesce +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x3623848a apple_rtkit_is_running +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x3eea0f74 apple_rtkit_send_message +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x4ccc1562 apple_rtkit_shutdown +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xa1ace67f apple_rtkit_wake +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xb1835bde apple_rtkit_is_crashed +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xefe9a0fd apple_rtkit_start_ep +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xf5a66fb3 apple_rtkit_boot +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xfe320278 devm_apple_rtkit_init +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0x646576dd devm_apple_sart_get +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0xbaec16a4 apple_sart_add_allowed_region +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0xf2253fbc apple_sart_remove_allowed_region +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 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 0x44e62132 dpaa2_io_service_deregister +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 0x9cf0ae64 dpaa2_io_service_register +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 0xc784349c dpaa2_io_store_create +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x001e0af2 gpr_alloc_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x3dd22641 aprbus +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7cfcbf7e __apr_driver_register +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x8d7249d4 gpr_send_port_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xc31a37a8 gpr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xccf28c8a gpr_free_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xec3f2807 apr_driver_unregister +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xf87b35c6 apr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x03c9a66d llcc_get_slice_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x0679b34d llcc_slice_getd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x7e773088 llcc_get_slice_id +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xad3516c4 llcc_slice_activate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xb534ec76 llcc_slice_deactivate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xb68b1300 llcc_slice_putd +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x34c9d0dd qcom_mdt_load_no_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x41c6fe35 qcom_mdt_pas_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xd83477bd qcom_mdt_read_metadata +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xe8a3861c qcom_mdt_get_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xfc124593 qcom_mdt_load +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x81905d5c __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x919bd534 sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xe918836f sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0xbadf95d6 sdw_cdns_debugfs_init +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x3dab51ac altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb9edd149 altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0x64648917 bcm_qspi_remove +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0x75aa8b0d bcm_qspi_pm_ops +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0xba8b310e bcm_qspi_probe +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x290ad28a spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x43b9fe8a spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x52088ddc spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5cf1376a spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x6f34e590 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x99a99c38 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x42f881ab spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x487cbc4d spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xfd8dd0c8 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x2b125df4 spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x3cec59fa spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x3e1e3d0a spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5a9d5709 spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5df1f922 spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7f841aeb spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x87fe5ffe spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x8948dd30 spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x8cb9b3d0 spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x98f78a22 spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xcbc69004 spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xcd579048 spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xd9af2cfb spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xdd8b7dde spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xdd965eca __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xde30d9ee spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf29395db spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf40e0942 spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x4bf8f721 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x1022e88f anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x1b82ca5e anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x1d7b44eb anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x4832b72a anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x52ec6ee2 anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x79e7e698 anybuss_send_ext +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x84d6e158 anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x97b68dcf devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xa7c3032c anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xbe6fed53 anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xc27ec588 anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xd2b7cb6e anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xdd24b8fe anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad anybuss_host_common_remove +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x05ad5408 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x069ba8d4 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x1e5f6f5b fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x2c52691e fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x153a39b3 gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x70c9b0a4 gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7836d221 gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7c331f77 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x961b8fff gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x9774a40e gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x9bb5793c gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa61019c5 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa86421a8 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xb6ac3a37 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xcb1cf257 gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xcf193f01 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xe9af50d1 gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x131c25a6 gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1a9252d4 gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x20548387 gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x49b39892 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x5a11e9cd gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x6085a9f3 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x67dd4c7c gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7afb3eb3 gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x8f2ecac9 gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x968c0ea4 gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xc8ce6dbf gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xe43c1446 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xfde4cdc4 gb_audio_gb_set_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 0x4931d4cf gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x4dbc441d gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x5a108b0f gb_audio_manager_add +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x79eef2f8 gb_audio_manager_dump_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xaeac8ca2 gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x296ea005 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x4ab84dfa gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0xa82c8898 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0xba9fc6df gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x1c74eb86 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x0ecd6afb imx_media_pipeline_pad +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x168b4dbf imx_media_probe_complete +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1707a0fb imx_media_init_cfg +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1c79d8a6 imx_media_pipeline_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3afc4948 imx_media_find_pixel_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3ec39417 imx_media_add_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x534ba9e1 imx_media_find_mbus_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x5f069791 imx_media_capture_device_remove +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x601627ea imx_media_capture_device_next_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x61b30831 imx_media_dev_notifier_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x69d2a7e8 imx_media_find_subdev_by_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x6a846bba imx_media_pipeline_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x78bb3311 imx_media_add_of_subdevs +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7d8b225d imx_media_capture_device_error +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x8bff488e imx_media_free_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x8f59d3c8 imx_media_pipeline_csi2_channel +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x97127e1d imx_media_alloc_dma_buf +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 0xa9e2459f imx_media_enum_mbus_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xb41dff09 imx_media_capture_device_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xb689ac10 imx_media_dev_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xba1c7b7e imx_media_mbus_fmt_to_pix_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xc0e6162e imx_media_init_mbus_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xd4e45b7e imx_media_try_colorimetry +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xdf0afed4 imx_media_of_add_csi +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xe45ef45b imx_media_capture_device_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xe932b00b imx_media_enum_pixel_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xe9d62044 imx_media_get_pad_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xea936913 imx_media_pipeline_set_stream +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xeca4e417 imx_media_find_subdev_by_devname +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xf62c570d imx_media_capture_device_unregister +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x05e8bf95 amvdec_clear_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0aa7b2f8 amvdec_add_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0e6a5a78 amvdec_dst_buf_done_idx +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x115655e9 amvdec_am21c_body_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1cb1e6d9 amvdec_am21c_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x250bfe97 amvdec_write_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x30cb03da amvdec_read_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x3aff4bc6 amvdec_dst_buf_done +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x3d9ac0ff amvdec_dst_buf_done_offset +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x3dd52424 codec_hevc_setup_decode_head +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x4a2d9ad7 amvdec_set_par_from_dar +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x5ff35ee8 amvdec_am21c_head_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x78b86db6 amvdec_abort +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7a6df511 amvdec_write_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7e585a00 codec_hevc_setup_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x929bbfd1 amvdec_read_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xa57a9945 codec_hevc_fill_mmu_map +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xacf21b72 amvdec_remove_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xbedc1229 amvdec_set_canvases +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xc4f29cc3 codec_hevc_free_fbc_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xcb3a0081 codec_hevc_free_mmu_headers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xe75fd0d2 amvdec_src_change +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xeaf20a22 amvdec_write_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xf5783d8b amvdec_get_output_size +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x584a67fd nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0xf7afe6e4 nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0xfbab743d nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x118bed9b vchiq_mmal_port_disable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x194c0bf1 vchiq_mmal_submit_buffer +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x1c73df7b vchiq_mmal_port_set_format +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x47bb3946 mmal_vchi_buffer_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x4bc18dc3 vchiq_mmal_port_parameter_set +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x5e6da8a2 vchiq_mmal_component_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x6192e1a2 vchiq_mmal_version +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x73577d20 vchiq_mmal_finalise +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x77a4f4c1 mmal_vchi_buffer_cleanup +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x7b36b0c8 vchiq_mmal_component_enable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x808e0daf vchiq_mmal_component_disable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xa627536c vchiq_mmal_port_parameter_get +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xaca4dd80 vchiq_mmal_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xae65bd33 vchiq_mmal_port_connect_tunnel +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xbb535bd8 vchiq_mmal_component_finalise +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xea377d26 vchiq_mmal_port_enable +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x056da9a0 target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x0de8a860 target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xa7519ab3 target_submit +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xf1dcc4ca target_submit_prep +EXPORT_SYMBOL_GPL drivers/tee/tee 0x04218a79 tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x18cc444a tee_shm_alloc_priv_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x1e283b17 tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x2597b7c9 tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x29666831 tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x2b95fd41 teedev_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x315be432 tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/tee/tee 0x367cc773 tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x3f92f03d tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0x42fede2b tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x4fe815c5 tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x5604b33d tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x5d18d809 tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x634c1d6a tee_shm_register_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x85fd9922 tee_session_calc_client_uuid +EXPORT_SYMBOL_GPL drivers/tee/tee 0x9fe5ca78 tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0xba883fd3 teedev_open +EXPORT_SYMBOL_GPL drivers/tee/tee 0xbcc16971 tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0xc0a07e8a tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0xc0d0e338 tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0xdfa38f79 tee_shm_alloc_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0xdfe50cad tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0xe7fd2b1d tee_client_close_session +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x03c5cc07 tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1138610d tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x11fb8ded tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1787cf18 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2c86ccc9 tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2ddb9886 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x34174cfb tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x37d4e6dc __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x38d3274b tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +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 0x545ab89d tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x603249ed tb_unregister_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x618afde9 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6537276f tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x658e3d97 tb_property_add_immediate +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x689fbfcc tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x70a16fe8 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x73ad2acb tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x73d9e27e tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x785eb82c tb_property_remove +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7f09b8bd tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8b62f95e tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa3d2b403 tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb618d9a8 tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb7c7cdce tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc073632f tb_xdomain_alloc_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc3abe77b tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd646f8d4 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd68ccd7e tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xda169f9b tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xdbab7414 tb_xdomain_alloc_in_hopid +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 0xfb47ef8c tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x0344724a ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x063b9336 ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x24e3e825 ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2f2fe5b0 ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2f5cac9b ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x33149055 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4a4f6a0d ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x5839967a ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x5e85eda5 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x73ebcd7b __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x76f5e18c ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x79b3ec59 ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x83607ed5 ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x8c028fd6 ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xa9d9ae32 ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xae137209 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xcb4c340e ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xcc305848 ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xdcb03aae ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe54f11b6 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe6690dce ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xfae9d2b5 ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xff3f5a68 ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x2c4023f6 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xf88d203f ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xff85cd6b ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/uio/uio 0x47901aca uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x82cc3886 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xcce60e90 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xf8f325af uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x083ec0c0 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xc9e8445b usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x054ea656 cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x2219a1a5 cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x2eceb10e cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x3c5af98c cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x4782dc1b cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x58269b22 cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xa2eefbef cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xb8e16faa cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xfda80e10 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x0a0782ec ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x3f5df7de hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x671665e7 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xb215d415 ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x437c3525 imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x6587cd0f imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x76b3e32f imx_usbmisc_hsic_set_clk +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x8de825fa imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xae1df6e9 imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xe08d5450 imx_usbmisc_set_wakeup +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x0683637b ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x66f64da9 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x9d5c3df3 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xa62f8c13 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xac90ca58 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xcf89c839 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x0a57c538 u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x1f7eef39 u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x33cc212c u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4cc29e71 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x52c13746 g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x6c579557 g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x6dbf025b u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x8721f884 u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x90f3df12 u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x9b1b14e9 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa3ff6210 u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa7530633 u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xdf579a87 u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xe6c09565 u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xf2e3f576 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x01261a00 gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x16570835 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x20882605 gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x24e5035f gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3cd96329 gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x4151a806 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x43d247b4 gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x627071a3 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x700b5057 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 0x8c0fa548 gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8d5aa982 gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x9f35f1e4 gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xb0bb3b92 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xc5172b66 gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xf08073e9 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xfa5a1d30 gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x31773bc9 gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x4a3df9d0 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60db48f5 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60ea48a0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x940ab138 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x9a0266e5 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc0a01527 gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xd1c404fb gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xe89dc424 gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x4264b4a1 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x6c825859 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0xa516419b 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 0x2933ee1d fsg_ss_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x36c29438 fsg_show_file +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 0x3ecd81b8 fsg_store_cdrom +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 0x4d38ba31 fsg_lun_fsync_sub +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 0x67d13f0a fsg_show_removable +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 0x7e26d4a5 fsg_common_set_sysfs +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x81fb219e fsg_show_inquiry_string +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 0x8abf6a99 fsg_store_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x90e44e1e 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 0x9a0221c7 fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x9b03e031 fsg_show_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xa0d62b2c 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 0xae76cc0d 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 0xc14eedd6 fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xc4e058ec fsg_store_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xc80a9e07 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xc91d0bd6 fsg_store_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xd102bc9c 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 0xdaaf200f fsg_store_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xe984e475 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 0x047b0215 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x090cef61 rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2eb5b39c rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x5bb4b632 rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x65df7027 rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x65e6539a rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x683946fd rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x6c3c2829 rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x765003cd rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fcde950 rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x9abf0e28 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xbbe3e099 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xea30f149 rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xed38e55d rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xfa653d53 rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0182efcd unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0cb7e477 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x10f0932f usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x12d3922b usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x15d384aa usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x17bd5256 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x250832c0 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e83432d usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x41f1f1c2 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x51e634a9 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x568115aa usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5a302f4f usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x61443f50 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x62a067ae usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x63b6b5f7 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x66e9f682 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6c052029 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6fe48bef config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7ceeacbf usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8201943b usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x831a5ece config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x89c7d9dd usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9fb6dc47 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa1172633 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa2e97536 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb30e53e0 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb38bdefc usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb775db55 alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcc9edffd usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd7d151a8 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd981db52 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf891f332 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfb38e403 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x5c802152 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x5d01d078 udc_irq +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x66b66421 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x78038962 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x812cc0e1 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x89984c90 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x926ad8d3 udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xdbe9584c empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf3f54803 udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf518cf5e init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x01b12bfb usb_ep_free_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x01b9585b usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x022f9fa3 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0a8c3b4b usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0aa238f9 usb_gadget_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0acfe2e7 usb_ep_set_wedge +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0d90d784 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x1069001e usb_gadget_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x1d98b685 usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x1ee0913b usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2a066c99 usb_initialize_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2d827aa2 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49d9f030 usb_ep_fifo_status +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49f71475 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4b9c08e9 usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x506ab3a9 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x50b88f41 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x53b8072d usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x54d463dc gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x553588c5 usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x56ee8e6e usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x59d220b6 usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5bb2986c usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5fc294ef usb_ep_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x623537b1 usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x63a5c515 usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7a41b9f2 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7be89624 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x80f98f82 usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x882077d5 usb_ep_dequeue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8aadff73 usb_del_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8c39ca5c usb_gadget_frame_number +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9d9b7ea1 usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9eb52803 usb_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa9e74462 usb_ep_alloc_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaa993d20 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaefabc0d usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaf201fa6 usb_ep_enable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc411e977 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc61835fe usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcda2d8dd usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xee1fbe47 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfbafd011 usb_gadget_udc_reset +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0xad6ca5f0 renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x82b46388 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xbc7d9db4 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x10b55446 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21de52b9 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x296a2010 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2c802059 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x321a849f usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4a8b7a15 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x562903e1 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5cef3ff5 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6f622978 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x216b3ffd musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x26ad17ab musb_get_mode +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2734197f musb_readb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x5678cab3 musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x969ea2be musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x9ee35038 musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xade3e56c musb_writew +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xb8b8d737 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe59efb0e musb_clearb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf0f95e51 musb_readl +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x6445ad89 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x6797a630 usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x71eeaff2 usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x8772f145 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc87e7fe2 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xc306b80d isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x3cf0412a tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x5aa73a76 tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x8fdd45e5 tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0xe67d6f59 tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xe9844012 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0306cef7 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0446160e usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x21d5d875 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x22c44dae usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ac00581 usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5d50a791 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x658dee81 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6aa8e512 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6ef3848c usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6fdd919f usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x797e245b usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b557679 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82dac15a usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x918816e5 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x921f87a7 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb46725fb usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb9bc3bcf usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd6f18b60 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdbe0e136 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe76324ba usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x91971d35 dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0xf6686980 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x896b9cb5 tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xbe111953 tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xc529e32e tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 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 0xdf94fcf0 tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xea220941 tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xeb779665 tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00996e3d typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0d2227c7 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1598f70e typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x15ae0cfd typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x17969caa typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x18b3ef5e fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x20fd5383 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2742c3b0 typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x28500240 typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3531b527 typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x36b0894c typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x390f35d8 typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3a2a5bf6 typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3cac3309 typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3ccdd706 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x402cdf03 typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x418548dd typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4ebaa210 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x502fc34e typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x55ace9ab typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x56e6fb42 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x58833147 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x61027f75 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x611b6af2 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x70ca94cb typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x74f3f5df typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7b0d7db9 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7df8024b typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8480b1b0 typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x86521d45 typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x89e9fc43 typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8fd1ea08 typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9049491e typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x92a3f982 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9c03746b typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9c91c2d7 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9e30a60d typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa254de98 typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa36e3130 typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa6a35642 typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa7adc2c6 typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb9b72159 typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbb9a5dba typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbee9117c typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc111a684 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc157541d typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcaee9704 typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcc1eea51 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd0fdb216 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd2fa1286 typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd3ca17c2 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd57eba20 typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd735801c typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe22a91dc typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe2bfa621 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe64ee622 fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeafc1eb8 typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1234a8b typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf3475dd0 typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf3e2f440 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc8df340 typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfed42ed7 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x2c26bb4d ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x50fd071b ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x6163a9c8 ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x625efd12 ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x70cab18f ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x73a5f6d5 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x8cf8d537 ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x989a0f69 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xb6dbf34a ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x028bf321 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x3bf269a2 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x44239617 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x536038c9 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7628de3e usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x8db90c02 usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x9f740c58 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xb29669a9 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 0xd58159ab usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xd8d5d220 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xdc636c2f usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xddacba0d usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe465b5e5 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x04316082 __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x1d41f398 vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x3064f026 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x350099ad vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x39ef29bb vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x4621b81f vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x8b04e387 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x91c34374 __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xaaaac925 vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xdf06d1ab _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xf936b764 _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0xa789d7f1 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x8f109936 mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0136a3dc vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x30b827fb vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x36a4fb0c vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x6650acaf vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x6c1278a8 vfio_pci_core_mmap +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x79951100 vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x86b1d547 vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x89717bc3 vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x90d77978 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x9ea0bd58 vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x9f6bcc53 vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xa78e3ad8 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xb4a1cf24 vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xc416f7a7 vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xc73f46d9 vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xcfb17dd6 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xdff48620 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xe49801a5 vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xfcce6f3c vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x341b9e92 vfio_platform_probe_common +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x47236104 vfio_platform_remove_common +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x4ae73b19 vfio_platform_unregister_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x6690d401 __vfio_platform_register_reset +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0076350b vfio_file_has_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x22d5c6d1 vfio_file_set_kvm +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x2b16f208 vfio_mig_get_next_state +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x5017ee6b vfio_unregister_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x60a634c4 vfio_info_cap_add +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6cfad355 vfio_init_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x71c007f3 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x83bdc29c vfio_uninit_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x9daf84d9 vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa396093d vfio_register_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa61a4d30 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xacf3191c vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd543730e vfio_assign_device_set +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xffe6da6d vfio_file_iommu_group +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x4aae6200 vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0xf74b6dad vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x014923d9 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x048ced71 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0f7e1463 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x105f95cb vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x14986395 vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x18e8916d vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1defad48 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x27c19a3b vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x33c03d8f vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x39e67b14 vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3f40a1c5 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x405e8f41 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4adc6606 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4c945e08 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x56b50cf8 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x59d1c1de vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6c58ab7a vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6ffae01f vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x89f8b581 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x90318094 vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x90a47861 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x937da702 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x93cf209d vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x975eaa2f vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9c5ca957 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb36d4fe8 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb590cf43 vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbe087705 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc2a11c2d vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7952cd2 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd03ddf98 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd908806a vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe528c07f vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xeff6ef82 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf0fee156 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf565bc73 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf56bea05 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf756cf55 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfdd2befe vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x83be64b9 vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x885512a2 vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x8a7d8ee9 vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x34e80d62 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3a9277a0 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x698d61cf ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa062e3a8 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa3188ad2 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc1d8f182 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfb062074 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0xf5473c73 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x70a7edd0 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0xcc3aef18 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x9769f6ea sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xfc58f604 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x047c350e w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1cc14571 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2c018997 w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x76570f9d w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7de10226 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8ab5357a w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8cba8c82 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9cf1f5be w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc8330e66 w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdefea42b w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf873377d w1_write_block +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x1ac4c605 xen_front_pgdir_shbuf_map +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x1b0e34ae xen_front_pgdir_shbuf_alloc +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x3070d10a xen_front_pgdir_shbuf_free +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x39a7947f xen_front_pgdir_shbuf_get_dir_start +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0xed77a858 xen_front_pgdir_shbuf_unmap +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xa7505943 xen_privcmdbuf_fops +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xc04fc776 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 0x8554b8c6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x85c83bb0 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 0xd14938b9 dlm_posix_get +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x19d8e2ca nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2b5ad73d nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x72d94ffb lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8fa13b64 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9726faf8 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xda7484e1 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xdeeb3dca nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03858e90 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03c641af nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x068ef8b8 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08e9041e nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09666ef2 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09a56150 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b69bc17 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c91bd76 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d7467b3 nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0dbd0105 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ec7c172 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10dfbed4 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1170f410 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11c38029 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11d2aab1 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1668cceb nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1673fe51 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1786cabb nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17ddd72c nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17edb5bc nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1863a21d nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x19a4a490 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b689143 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1cd0c14e nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1cebd9ae nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f869260 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21884015 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x234ee599 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2410dcb6 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24e47c21 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24ee6aa6 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24efa558 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25219ac8 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x255bafbc nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28f548b6 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ba35cc3 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ddbd7d9 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3031fb08 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30496988 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3182d3c6 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3312a611 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34054ed2 nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34e9989f nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36ec01af nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a2301e2 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3c9e34c5 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ee99c61 nfs_file_release +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 0x4231f8f7 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44cc3a41 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4626aeab nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x48a8106f nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ac646f4 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e77ceb8 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4e887469 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f7fb2f4 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5149476e nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55fea200 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x574e4f9f nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x582c131f nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5900feec nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59923eb3 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5aa3ecdf nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ab404db nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x605776bf nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62b5e5dd nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63f692c7 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x64136b81 nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x643fa55c nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6784e83c nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d87d656 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e14cd21 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f498749 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x715b42d2 nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73b15564 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73b49dde nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75009ecd nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7598e4fd nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76e1a053 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x80aaed3f nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8403099d nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x883ad34e nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89f31046 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90e6f9f9 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x912cc7b0 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91992db9 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9342573b nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95007f7e __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98397fc2 nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x987f46a8 nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bb93d56 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa454ee41 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa45722f2 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa68e71a2 __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa745dc13 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa86ccca3 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa89683e8 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9ee3d11 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab33f246 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad32a2e9 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xae2092e8 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb02c3508 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1555669 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb17c83ed nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb22271db nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb26a4534 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb53cf3c7 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb9de70ea nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf239dad nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc0f8246f nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3d3695e nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc527fd4d register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc853110f nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcb9f0d64 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc910657 __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf5dfb13 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0b01dba nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd441f154 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4c0e900 nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd60ef2b8 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7599c2f nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda123b21 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbc8be34 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdcab10d2 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd05a143 __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf823590 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe26644d7 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3fb2b8e nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe49b26ad nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe70507df __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe93b8351 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeaa17976 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xebe5cb57 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedb6fd83 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf15bbf53 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf40428c5 nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf73f91ea nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf96f04c4 __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9bab36d nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa17c9bf nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfba85a9e nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe99a17d nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x5d956c88 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0286914c pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x05e23b5c nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x076ff68e pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x087addcb pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0aebca68 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0c1c27e9 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0cd5c91d pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f01076e __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1261815b __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x181019e9 pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c6b6e56 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f57a7ad pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2523a7e0 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2fa6432f __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x32bb6e05 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34d3586a nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3aa1fe25 nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3ba15830 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3bf77c29 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40f7c96d pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x498b6c88 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x51224b72 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x53fb0eef pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x58c2f4b2 __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x595ae7d7 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a26deb1 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a9d10fe pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ce462a3 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6085edbd nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x60ebbc49 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x61f91e06 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6748fc62 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68d3eed7 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x75d92dc5 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x77f1b716 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x79286bc2 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a9e4959 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ab7bcc6 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81facdce pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x82057b4f __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x82409884 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x87599c66 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8799e799 pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8953690f pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8987d2d9 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8a001aa4 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8b3ccb77 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8bc44e41 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8ec576d9 nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x923e5b0e nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9284e774 pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x95d8be69 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x970158dc nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x974a1614 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x987bbdbb __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x98d967d0 nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a1a74c3 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9dcbb4a6 __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa1bb216c pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa452f25e __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xac899b00 nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb2ca293b __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb4a7a673 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb531ad28 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb72c62d7 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb95885be nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb9ea06e1 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba53a1ef __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc0be8908 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc22ec61d pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc301fe16 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc5010e2d pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7a9d954 __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcc91f363 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf29b95f __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0ecfaad __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdb5577e2 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdd3323aa pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xde1663d7 pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf6991a4 __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe19f5ee0 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2211d69 __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe844769d nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xea373b7f pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xea6a2582 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeae8522f __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec7d7b4d nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xecdbf945 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xede41327 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef4619e2 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xef766706 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf0b0921c pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf55446b7 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7801360 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf849b218 __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf84f0200 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf95a5428 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf999267e pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1192568f locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7b4075ba locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0xc41d8499 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1d9f37b2 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x6661eb15 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xe08a7d94 nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xef1f8398 nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0xbecf7053 nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1247cd11 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a8fb15 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4d028cb7 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 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa1aedc0c o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa88c8941 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xac8cd066 o2nm_get_node_by_num +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 0xe57c11bd o2nm_node_get +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 0xfe1298f3 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2b4398ec dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x47c75c59 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x544e4558 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x67987469 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7f7fba69 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb7f3ebaf 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 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 0x54216dda ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x76f40744 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x80f4d418 ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9507547f ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9aabe49a ocfs2_plock +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 0xdd424ee7 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x381b7562 register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x3c10daaa unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x6f9ba4b7 unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0xaf173319 register_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xabd9af6d cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xc4c73891 cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xceecd9e4 cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xdef1096d cifs_md4_update +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 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL lib/bch 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL lib/bch 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL lib/bch 0x860a2eab bch_decode +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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/crypto/libpoly1305 0x39e8fa4b poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x4a833012 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x8c874435 poly1305_init_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x5a7b7e49 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xb944bc69 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x804a5b70 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xa32f3d9e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xeb2f825c init_rs_gfp +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xfd581da1 free_rs +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0xf3ea2bf7 lowpan_header_compress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0xf4c6da7c lowpan_header_decompress +EXPORT_SYMBOL_GPL net/802/garp 0x370899eb garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x3f330c08 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xb9236f24 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xcbaa4559 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xd7c74bbf garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xf2bffbb2 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x0b8b6bfd mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x11d8dec8 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x142a9599 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x47294a20 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xa8fd138e mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xff6a1eac mrp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x5100a322 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xaadc2639 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8111639a p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xeb8624ae 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 0xea8bb316 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x04eb8d4e l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x38631b1e bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3b326f36 l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5bab6a02 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x61a09c78 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7e3ccdce l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x8afd92ee l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x930b0ae5 l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x9cf02124 l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x89b53e09 hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1e50bd2a br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x253cfaa8 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x34766c2c br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3767b433 br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3edc2740 br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4198a6d7 br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x58e2281e br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6dd3347d br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x714ed9dd br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7dfb741e br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x81502416 br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x888a378e br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0x928e72ed nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0x93e8d964 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x9d1d45bd br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xae8b9dce br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb913d8a4 br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xbfd56ed2 br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd9f44342 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0xdbe6327d br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xdf973aac br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe0f63d4c br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0xeb770c92 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf149d735 br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xfc2260d4 br_mst_get_info +EXPORT_SYMBOL_GPL net/core/failover 0x5b376af4 failover_slave_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x60c5d756 failover_register +EXPORT_SYMBOL_GPL net/core/failover 0x710ad0b4 failover_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x014a1f33 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0d63fbc8 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e4fac9e dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x159ae040 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f9b88ec inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x210e0f17 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x27d8f279 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a7486d5 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d9b2e33 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x43189b0d dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x44bf3d4e dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c2f91d9 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x54326601 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55ba6026 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64819da7 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x73c0af81 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74905bb8 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74ccbc9e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f826393 dccp_create_openreq_child +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 0x8c688c35 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d491de0 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9621186d dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x999ff8fc dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9bbf18e2 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa350d275 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd36e594a dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5670f46 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdab45593 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2253196 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe50aa308 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe8c3f600 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf1da59cd dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf318f0a6 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0bbbe13c dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x13c533a5 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3e449ca1 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c9feadf dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x524b9950 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe899e88b dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0256e679 dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x067270ef dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0894dc03 dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0b9cda5a dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x263ca60d dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x41b35b22 dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x41d15bd1 dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x450456e4 dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x48ecd4d2 dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4fc77abe dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x66508234 dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6cec1703 dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x6d7cb06b dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x75610182 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x79bbeacc dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x93b06253 dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x93cd6d14 dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x93dfb7f8 dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x98843d7d dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9de16bb8 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e59271d dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xaa07227e dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb0ec0935 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb38db2a4 dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb4a4883a dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb8d1e888 dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbd4a6d0e dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc23e8d5f dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc99ddc3d dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce7ac937 dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd077e855 dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xeb6666db dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf13e1803 vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf3f7177b dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf6589381 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfd3e2b67 dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x33b6db97 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x383d0cc3 ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x6017b582 ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7d5e292e ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x87e2553b ieee802154_max_payload +EXPORT_SYMBOL_GPL net/ife/ife 0x1ab95e78 ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x371791f9 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 0xe7888e98 ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x19d556d9 esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x25439dcd esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x2b9d56c3 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3785b655 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa58054e4 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3d8fc7ee inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x4a942bb1 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x74c8392b inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7ed91de7 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9baba8f9 inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa1a1e137 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa2ea71c1 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa4dfecfa inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc82af150 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x85400608 gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0a48a989 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0e7468c6 ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x174475da ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1ad1046b ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1d83c730 ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x41746969 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x469c80ec ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x539befda ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x552a56b0 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x59990d4b ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x76b12400 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x98c32bde ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xcd045ab6 ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xcd784249 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd1908ad3 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd2e32063 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd8d9218b ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x08a1858f arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x41e47b08 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x4b3c00af nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xc235abca nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0xb096c95e nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x337810ee nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x576959c3 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x5974d295 nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x62403b04 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x90d581d2 nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xa47f37f3 nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xfcba6316 nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x85243956 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x5bf05456 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xa479e556 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xfab587c5 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x3a85ea20 nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x985783f8 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5da99940 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x716ab455 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9bc5ab3b tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb088443c tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf893b71b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x05e792e6 udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x0cf0de80 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x46f07252 udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x6a2d428f udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x9000881c udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xa2cefca0 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xcdcea8d6 setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xdb17af4d udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x2f675250 esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xb46339c3 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xb5eccd95 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x10ff04ea ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x3d14c910 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x47a9c4f9 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x53372881 udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0xe9cce951 udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x492830b5 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x5200d72d nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x9b44b927 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xcdf77bb4 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0xff3c6976 nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x2976f07d nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x46f27546 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x47d52ae6 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x4b52a4da nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x6986f411 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x97c8cda9 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xcde45cd8 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x0243983f nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x04043a11 nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x2a79140e nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0xb2f5a0d3 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x3e811f93 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xbe1c8de1 nft_fib6_eval +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0636ced7 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x12730a9d l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x169abb72 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x19712879 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1d04eba6 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3c873f20 l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3dadcec3 l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3f540121 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x482d70d4 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x55ed621e l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8474bb82 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x91217340 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x937b38ee l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xac617ae9 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xadf68012 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb63154f5 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb7e06040 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc8851dc2 l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd9ec79c8 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdd45f0e6 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe9396f27 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0xebe1a15f l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xe0cc1e60 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x08760d15 ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x26407703 ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2c0a63fd ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2d2118e2 wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x35517ff8 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x37ce0991 ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x49331c79 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x591f8780 ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x718ac5d4 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7b56e7d5 ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x85c5495e ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x94c7e1d8 ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x99875984 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1247034 ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa4b2b77e ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb32a5069 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc3abadb0 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc8c4dc72 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd8e09da4 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xeb2404a3 ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xed4022de ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf5973dcd ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf5c3bfbe ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfaa13d39 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfff26655 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x042dcfff mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x529b2df3 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xbedfd9e1 nla_put_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xd2e487ba mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xff02c5ff mpls_output_possible +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0c01ce48 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x18408f4f ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x383be5ae ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3c309f52 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3f2b8c30 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x52deb89e ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5d84850f ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6029c4be ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7de1594d ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7eaa32af ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x80b763f9 ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x83cc5343 ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x866308ca ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8e6ededb ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x96d96dbc 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 0xbd329262 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd59481b0 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd7224fb4 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xefdbed99 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0e4c851f ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x20ec781d register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb9c87bf9 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xcb9291cd unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x55395f81 nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x731aa5d3 nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x9087b393 nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xa1b4f8e0 nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xded40268 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xdef2a2ab nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xf2a1dbb9 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x037bca0a __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04c29bae nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05225cff nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x052bea31 nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f844250 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ff16b57 nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13795040 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x141f5a84 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x151ea549 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1adb4314 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2078f5eb nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22ea8828 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x244d0dff nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27a014df nf_ct_expect_init +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 0x2a820daf nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e39b313 nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3326ddfb nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33333df4 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x351215a1 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37f87a65 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38729b18 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3aafbe19 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x429cda61 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x522055c5 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52a39bfa nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53dd9b7a nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5aff78d5 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5bfb5508 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e0df67c nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e48185b nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6252daf5 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x659e6b7a nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6991cd75 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bab5612 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c452adb nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7064812b nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73f7d33c nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x740d348f nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78726d6f nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a732d55 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e6802c2 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83f578b9 nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89ee7aae nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89f40550 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8eeee06e nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fd24d7f nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x919639d6 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92855ca0 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92ed6817 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93e3740b __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x942fa759 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x98877185 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a1e1fbc nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9adb7399 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa01ac5cb nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa368da5d nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf0847f0 nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafbd6cf5 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb79764f0 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7fa23bd nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc12efee2 nf_l4proto_log_invalid +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 0xcad28089 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xceebfd1d nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf9854c7 nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd24e5e32 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2a623dc nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3c2cb5f nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd505c3e0 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd669009f nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd69fdb54 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd864e05b nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdba7326b nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdebcf2e5 nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0aed48 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe44dd2ce nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7a79db7 nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeae08f6c nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebf3df56 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee3151ff nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee634767 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf424d3fa nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb81222e nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc8e1edb nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfcfe710b nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfd296eba nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe731af8 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xcc5c332e nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xead04e96 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x1e25e7c0 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1c604475 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x22fd8320 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2e35503c nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3dc7e523 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x94cd9f88 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa2c8ecf8 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa515ec37 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa656a164 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbc7361c6 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc94ba5db set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x96faacf5 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x908e2fd5 nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x07c3ec63 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0f3c1118 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x111a17bc ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2c6627e3 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x983d52bf ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x98bde541 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfff49cb6 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x86760753 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xb508789a nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x56790d2d nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x58a204dd nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x59c1393f nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x3ddccf9e flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x5e642385 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x6ca3cb4d nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x71a11b32 nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x868e3280 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x87860ac5 nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xa021eb51 flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xa22de7bc flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xa3777013 nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xaf8c9c2c nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb1e94ff5 flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd07ceb11 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd70b493e flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd9748616 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe49eee51 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe754ed58 nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf73702e3 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0de8f0c5 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x11fd62f4 nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1625936a nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x304f26df 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 0x53db32b0 nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x74824da9 nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7af0d36a nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8823d075 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8d40b725 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8f40c038 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x918cdcfe nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x933bcd53 nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb1259611 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb2cefbbf nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd5752495 nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd9c25654 nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xed9fe84e nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x184f896c nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1af7ae05 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 0x45be0422 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x4d2d104e synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5c798f37 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x620cf0a2 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7de666d6 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xa7268df6 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xc8b6b63b ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xe78458d9 ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xfad700b8 nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06891ad7 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x10ee7834 nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x23fbb1e0 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x23fd54e5 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x288da051 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2a02f60b nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x30430ca3 nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x33923d05 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x341bd7f1 nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3da43f40 nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3f55c430 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x509239d4 __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x515bb0d6 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5d0f4059 nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5fb53a4c nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5fbcd115 nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x75d75cf1 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x76ff89ff nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7b145e19 nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x96ab3add nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x998d1b1b nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9d487b3c nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9e01efec nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9f8f38cd nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa018fd09 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa223067e nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa62de3a2 nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa6e1dec6 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa81570b6 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa9cfab2d nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xae47eb8d nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb015dbab __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb34ac263 nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcc3cb508 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcdc479c4 nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xce7b3608 nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd41f0254 nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd52d94fb nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd9b6b0fe nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdfab7b27 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe0187339 nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe1e9afdc nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xeb0cbc78 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x17182f77 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x320504f8 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3d45530e nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5a699347 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xddf8b6bd nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe29a3fd0 nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe4aa6300 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x493ae254 nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x636d6515 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xa28749b4 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x3a3b8b34 nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x412c47b7 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x4c6e68b7 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x83d4396b nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xa0e6f374 nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xca8b17aa nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xed7c5f3a nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xa1139cde nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xc28ea3b3 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xc9ba6553 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 0x0953a559 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0f5cd7f0 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a17dde7 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a41441f xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x30f8a431 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40ed2168 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x429da42e xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x494a949d xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4987f3ef xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4ed539f9 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x538cecd3 xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5c72ac43 xt_check_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 0x81199370 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x823edea5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x90b4779c xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x93d265fa xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a4999e8 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a9b4d27 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c995c69 xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5999da3 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa7c94f1d xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb7e93bd5 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb9e6c955 xt_match_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 0xd1e246a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3fcc511 xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bb821b xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf502886 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xee5b7125 xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf6bebdc7 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x2f34724e xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x45607525 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x5b922dbb nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x70e6e9a5 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x960216af nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x5e22981b nci_uart_unregister +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xab19b4d2 nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xf8243907 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nsh/nsh 0x689b6c30 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x80f73ca0 nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7dcd6e7f ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x87a8d67d ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xd89653fe ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xe497b1f0 __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xf03f36cb ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xf384cd7c ovs_vport_free +EXPORT_SYMBOL_GPL net/psample/psample 0x28c6410f psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0x621725aa psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0x8f45b756 psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0xb883bb85 psample_group_take +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x22839821 qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x285794b0 qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x2bc46c9e qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8d25501f qrtr_ns_remove +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xa47e91ba qrtr_ns_init +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x011a1104 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x0628f8b1 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x0907ad82 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x0a996bed rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x130f394a rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x35199d96 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x3897d380 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x524e3dbd rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x582fe5cf rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x585f567b rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x58955b56 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x6bf6b9aa rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x725245a4 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x75422660 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7b399e66 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x8184f2cb rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x8506584e rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x85e4e520 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xa03dfa1c rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xa5641000 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xa9f6c684 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xaa92d978 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xb55366eb rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xd3dd29b9 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xd5e5728b rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xd650ef4b rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xdbb554ad rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xdc9fea9b rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0xe518dfc6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe64cc927 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xf47bb3b1 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfb76c207 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xfd22dd56 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x0de62106 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0xaffb6078 pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x5fc3c6ed taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0xa7f08102 taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x0d302ac5 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x5cc1f6c0 sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0xa6b6ddcd sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xc0f583d8 sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/smc/smc 0x16ce7e18 smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x27da9cde smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x600bcb86 smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0x6932e564 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x761e0b52 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x94b85fdd smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0xcb89511a smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xce188782 smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xe938598c smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0xf025643d smcd_register_dev +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x02c8ba2a gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x298a2b3c svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2b34c50f 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 0x7a418c75 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x022fa8ba read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03fa9a48 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x043fa1a6 svc_exit_thread +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 0x07d1dff4 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09e087a7 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a3e5c75 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b2f062c gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c1157f4 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dd60921 xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e67aa6a xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ec6fe00 rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x117130eb xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x118d3c9b rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1281990c rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c85ec2 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13ae33ae rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15902ab3 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x166645c9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b396c90 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c5df3d0 svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d0a3660 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1deae1b8 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e16d1ea rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e2147bc xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20f2ed53 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2181a1e1 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x219230b1 __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x229842fe svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x249c68a3 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28b53925 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ae17b2c svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d9ec045 svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e527b24 svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f7894f0 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3008c40a svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31be0310 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x326642fe svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32bdd8d2 xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32be142e xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33404ec0 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d184de rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d1e20a write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36437802 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3670d71f rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x382d4d14 svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cfe959b rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d50d510 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d5dce62 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e7cb79e rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ed63717 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f00b33a rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f026e84 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fcc6aa2 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40bb39d0 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4124d5e4 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42a601a2 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44a06f2a sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45a0a035 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45f40f02 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46f4c1a3 xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x475c18cb sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47b34487 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49714256 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x497f7d0c xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a9a325e svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c2249bb svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d82237b rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e358a5e rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd2d209 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50663c5a rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x514aeaa7 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53ae6808 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x556e80b3 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55e52afc xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5648c70d xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5726e1d4 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x574e4817 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57887768 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x578e245f svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58484625 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ba83ad9 xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c0464b2 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ca22173 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e00a4d7 xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x608ec027 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63cebb9f xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63f6bf46 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66ed2439 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ad8c5bd rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae5d78c rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6aef4e1e svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b5316ff xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d63c8d4 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da0033d svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f30b806 rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7174fe9a svc_alien_sock +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 0x72964031 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x749a9480 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75b34cf4 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76ca204c rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ba0942f xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c4e11c6 rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c706e44 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c7356cb xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cf6f4e3 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8050b959 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80fcf1f6 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84c63dee rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85f0b137 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8645198e rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86617443 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x868fe583 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8707dcd0 rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x876f36af put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87f311a2 svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89138ecf rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89b8025f svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89ec6121 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b77170c rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ce5e549 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f1a56b8 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f206c65 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fb6b261 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fceb0b7 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91294698 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91920566 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91d0f0c4 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91e42c61 rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92f6fb40 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93a5f97e xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x947a6b79 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95d929ff svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95f531a1 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9670b5a1 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x969d907b rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98668b83 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x989f9203 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b6b69d rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9999eb3c svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99aee353 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99f1d090 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc5da85 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e00ab04 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f0020cf rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f437c42 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ff608ea rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1b34548 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa217634d rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa22ae7d2 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5c9264b svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6246b08 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6780ada rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa96e7d8e csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab6915ef rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac78e20d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacdcc907 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xace513f6 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad473e04 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadd9a9f6 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae6c62c3 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf25b5d5 rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf9c1283 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0112289 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb020d6fe rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1b87491 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4e33efb xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb59ff708 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb69d29c1 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f6b29d svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb75a9a33 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba190ce6 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbafa6256 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe1a0c7 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc09fad6 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc231f17 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf313be5 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfe7ef7a rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2e58f36 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc42e3c4f cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc43ad073 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4934102 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc585e140 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc59a43d3 rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5c3702c rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7087139 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7be9ccf rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8129bfa rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc971f016 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9ac4ef3 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc4425ff svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc6642e4 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc76bf8d rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce24832b rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce79b90b xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf3dc8ec xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd10d1d5b rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd183978a cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2a82e7b rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3498488 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4aeaece rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4b908ed svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5ca2655 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd80d278b auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd83b020c svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9dc57a3 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda5f1aca xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddcbe4fe rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdff221b1 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0704b01 cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe14c791b sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1a8a8f0 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1c2b84e svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2125374 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6edea84 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7a60221 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8a6d988 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea38e56b svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb1398d2 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb8c060a rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebcc66bc xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee35d67e svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee644efa sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef8bd604 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf03e629c sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0b7775d rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2365381 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf41ea36e xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7401348 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8e20721 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9871374 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe8e58a5 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff1b9e09 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffa70999 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/tls/tls 0x0bca7bbb tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x16cbde5e tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x31df4623 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0xbeccd24d tls_offload_tx_resync_request +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 0x0828793d virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1518d68a virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1cee968f virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1f94a7fb virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1fade86b virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x27f3cf8d virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x28b79d44 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x33b25d69 virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3454f4d7 virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x34b63cce virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4a2af5e5 virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4ce4aaa4 virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5aafb657 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x61d52645 virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x72bf595c virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x85c4ba93 virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x87921abf virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x88f7a930 virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8aa8552f virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x97a898b5 virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xab9d7bad virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xadc2df0f virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xadd477c9 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb838bc73 virtio_transport_stream_is_active +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 0xbccf79f3 virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc4ef1591 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd0827dcc virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdba0a280 virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdc19027b virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe76cf1c2 virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf1174ff2 virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf498ebfc virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf6152539 virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xffd93cc2 virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00880841 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x16aa1a0c vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x17184d83 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x278ffb5a vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x33f44740 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3b0a80ef vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x520a8ab2 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5cebd873 vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x77c14317 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7be2b86c vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x828c8683 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x89d43d64 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x8abe6079 vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x8f10f680 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xadc4bb04 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xafa1547d vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbfbd8252 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc92f7f50 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xcba3977a vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xedbec8ee vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf0f13fca vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf3913d5c vsock_remove_connected +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x01cd08c7 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x02fb8417 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1cea9004 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1fac58cc cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x21734a76 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3310f3f6 cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x44b328e6 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x45569da7 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x71cef10d cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x787df94d cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8ed69afc cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x91087421 cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa11ed5d4 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xceb4b870 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdeb1d558 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf910a0ff 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 0x5d8209b4 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x905d0f72 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc7127e48 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xe38fec59 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xe2521b1c xfrma_policy +EXPORT_SYMBOL_GPL sound/ac97_bus 0x7ebad5bb 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 0x1158a878 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x37ace79a snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x3dcae8b4 snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd 0x4c655e8c snd_card_rw_proc_new +EXPORT_SYMBOL_GPL sound/core/snd 0x54c31229 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x55dbc12b snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL sound/core/snd 0x5868d43e snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL sound/core/snd 0x67999fbd snd_ctl_register_layer +EXPORT_SYMBOL_GPL sound/core/snd 0x68b5bbb9 snd_fasync_helper +EXPORT_SYMBOL_GPL sound/core/snd 0x7c03eee6 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL sound/core/snd 0x82ddd8ab snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0xa86ad728 snd_card_free_on_error +EXPORT_SYMBOL_GPL sound/core/snd 0xaa5b7591 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xbcd22b11 snd_devm_card_new +EXPORT_SYMBOL_GPL sound/core/snd 0xbf2916c6 snd_device_get_state +EXPORT_SYMBOL_GPL sound/core/snd 0xe6a68e5a snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0xed685fb7 snd_power_ref_and_wait +EXPORT_SYMBOL_GPL sound/core/snd 0xf8f2a4eb snd_kill_fasync +EXPORT_SYMBOL_GPL sound/core/snd 0xfaf598c6 snd_ctl_request_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xfd24fc71 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x0e73279a snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xe9027363 snd_compr_stop_error +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 0x1ee20c2f snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x478ce687 snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c407196 snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5d983962 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x649892e8 snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x702d7dba snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x8a839ab2 snd_pcm_stream_lock +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 0xb9ab27c7 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc4e297da snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xe4fba2e1 snd_pcm_fill_iec958_consumer +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xe60579d1 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xf27b7ad5 _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xf45697ce snd_dma_buffer_sync +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfb6f4579 snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfd80275a _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xff9a21d6 snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x32f32507 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x335731a6 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x362858bc snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x5f70a65f snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x608925ae snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x673476cf snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x9114f6d8 snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x9ebc37bb snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xa528d4f7 snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xc579807c snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xdf02153c snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xf49b287f snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x8b8ffa20 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0xeaafe267 snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1da0b961 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1f85ff2a amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x226bb848 amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x4157c45b amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x439215ac amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x4929d765 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x5ebef440 amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x69ca1985 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x8b12ba19 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x90ea7756 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xa98f421a amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xca5c9d03 amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xcead54a7 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x03abf7e2 snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x05636f93 snd_hdac_aligned_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x067a0698 snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0816adb3 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x087f10c8 snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1488641f snd_hdac_aligned_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x163eb7ca snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1f68e5a6 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x21f14b70 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x22eaf7cf snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x258995ec snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x26745cbf snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2b7340ad snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2d6d8f7c snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2ebf0fad snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3802db4a snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3854dc0b snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3d6bb6ba snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x40eba1a2 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x42a4803b snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4397f05d snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x47535d6a snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x51393ac8 snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x522a34c6 snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x52a4f458 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x52dca4a3 snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x54814411 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5517037a snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x554c1dd0 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x592331aa snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c15ea01 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x60cd9267 snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x627b2820 snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6a9fe4b2 snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6aa37d82 snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6d6afc5e snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6d7641cc snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x727abae1 snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7401e64f snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x74ef1979 snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x75d9f64c snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x75f6719b snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7a278550 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7be1a8e1 snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7c89d2c5 snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7e729f87 snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x832831b4 snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x84980d18 hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x853a0606 snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x86efc481 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x87127208 snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x891a8955 snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8f7bf8c4 snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x91016baf snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x97646f48 snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x979f3cc8 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x984c5d09 snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x98983e29 snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x98a41363 snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9ae76a9d snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa24235a0 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa7fd6ec0 snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa84a5ce8 snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa89e930c snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xab18cc91 snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xae3bb7c4 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb1f9f4da snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb227f9fc snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb62d2f18 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb88e4e0e snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbddff308 snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc2bc2259 snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc624edeb snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc7516608 snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd65b7484 snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd6d99e36 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd7aca0e1 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdd480883 snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe0a41d6d snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe3e0e862 snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe4e07754 snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe5a3bd04 snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe75d46e3 snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xec05d8bb snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xedd95587 snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf07c70fb snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf7ebb773 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf9e34a74 snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x4b765664 snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x4e859456 intel_nhlt_free +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x5f6b98f1 snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xa4cae706 intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xccaf0bf0 intel_nhlt_init +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1b6cfc4a snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x36b7a8dd snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x3b495e17 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x41686706 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x49a5c605 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe0330384 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00783dd5 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02c5537f snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04c3d2d2 snd_hda_add_imux_item +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 0x0aec3bbe snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e64b7fa snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e8c5cc9 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f0fb11e snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x101d5777 azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14829fa5 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e6d3fe snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b8f9d5e snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1da15afd hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20003e36 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x24c13226 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26cd8490 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x285b910c snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29f2ba1c snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bb6680c snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e6992e3 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30f06376 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d77cfb snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33f10c59 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36756fb6 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x394bd99d snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x395f96b9 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b106244 snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d1bf2ae snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e0f5dd4 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fffae6a snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x402c8d47 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x408b9e78 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x415ebfb6 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41c36fee snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4217ff6d hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4222e4a1 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4258fb2c snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4574f3e7 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46c2b064 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x475cbb30 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4eb2a7c9 snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4efd9700 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51ae3791 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52395dcf snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5356f3c2 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55b81443 snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57e42115 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5820b4ee snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5865110a snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x593ab861 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a8ce6f5 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60a8c387 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60e765a4 snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x644eeeb9 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6afb6a49 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d7e01d8 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f8750ea snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7331e5b7 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75540051 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7564b321 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b0be457 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bfaa739 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c46d928 snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x808d24b7 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80d7c168 __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81cfb89c snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86e5ad0d snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x872f83c8 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87f848ca snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88bc7dc3 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bcb0fa1 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e9ccdc8 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fad0094 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x911310c5 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91e6ee08 __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x947cd4e5 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94d41d8b snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x971d166a snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a72d216 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b57f627 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0dec48c snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2539b10 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaac19ebf snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab1fd6ad snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab8177df snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xabdeaa04 snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaccf3a9d snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf4bdc37 snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0b98dc7 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0c263e5 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0fe261f snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1319f71 azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3757c92 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7421cfb snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7b6f9e2 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba653799 snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbaee7df5 snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbce23b4b snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc187e70d azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6048ea5 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc84f7261 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xccf215f8 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd6aced0 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd8bdefe snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce808671 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd06a808f snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd41adc86 snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd635837f snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7aa18b7 azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdda4bc35 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfdef665 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfdf26da snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe04781c1 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3648db0 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe5312b8f snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8e587b5 azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb11a490 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xebffc879 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecbc755f snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed6144cf snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef1b531e snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0f863c6 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf175f25e snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6b32e74 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7aa1ea6 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8872279 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8dc35ac snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbdb45b7 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcd60d5c snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd5c32e9 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdc1db05 azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x17c3b25d snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1a33894b snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x255907a0 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2c65fa88 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x35b97c7a snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x3734831e snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x3891942e snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x529287b7 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x6b2e0c3e 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 0x81b7abcb snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x83f446fa snd_hda_gen_build_controls +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 0x974425ee snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x9f2efeff snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb3e1128f snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xbc56d886 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xbdbb4732 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xc9d18de6 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xce295cfb snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd142df5e snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf5331aa7 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xf6bcbf00 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/soc/codecs/mt6359-accdet 0xb5bf83bd mt6359_accdet_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0xae620be9 adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0xc693baa4 adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x43a375d0 adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x7c5279e8 adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x0eb4f120 adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x20358421 adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x33b158b1 adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x45ca4ab2 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x460a4541 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x55fbba46 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x59506dfd adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x73cfc8ab adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xd098d96d adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xf8dc1120 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0xea03bda2 adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x8f8e9775 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xb05398f9 cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xf3df0cd8 cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x20e33deb cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x2a980b11 cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x3e3828ee cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x528594b0 cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x6213de9a cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x857085cf cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x886d2e31 cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x8bc631dc cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x8fbc7840 cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x962b7fae cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xa20ef9ba cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xbbe286f9 cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xdd35fc6e cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xea5c9b92 cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x7d05786f cs4271_dt_ids +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x80757f2d cs4271_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0xf3b3fd1b cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x30866858 cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xbdba701c cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xbf2723b3 cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xde60123b cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xe1f11911 cs42l51_remove +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 0x7fdc98a4 cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x99149790 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9 cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xd4a6371a cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x054c7365 da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x3d58ca3a da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x60d77eb6 da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x6bdbc7c4 da7219_aad_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x44f529b2 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xd2fd3555 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x4b86013b lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0xce0eb7a5 lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x852598aa max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x7a22f1a9 soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x8927c29a max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xa4859a1f soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xfedba7ba max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x4f070735 mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x77cf7758 mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x85f0cb10 mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x9fbca0d3 mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x6b2cd35b mt6359_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0xd708a4b2 mt6359_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0xdf8a9386 mt6359_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0xe742e3eb mt6359_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0x9f92d6eb nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x2b1e33ed nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xbf55f96a nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xb43e63c1 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xbdd17de6 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xc23a9eee pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x4f4f3ac3 pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xb38ecfe9 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x246aa579 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0xa0980130 pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x5a933d5f pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x728ef2be pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x9e669463 pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xc75ea743 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x55ca00f9 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x834a30d6 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x9f43394b pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xa6408cbe pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x8d7fa148 rl6231_get_pre_div +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0xdba4502f rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-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 0x3796b68b rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x402f9136 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x676ddb88 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xa2aaf97c rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xd1863868 rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xe73572d6 rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x52278d7d rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x80753a95 rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x1a8997a1 rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0xd04101ec rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x085789c5 rt5677_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x5fc320ad 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 0xc6695825 rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129 rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x00ba7554 rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x0502d970 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x1e0444ef rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x435f6c8a rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59d3d967 rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x71f15181 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x819597fa rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x9d7440c7 rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xa8122a5c rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb897de56 rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xc4fca73b rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xc5f27a14 rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xee356273 rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682s 0x5640cdab rt5682s_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x1f19d778 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x79b378e7 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x9237aec4 devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xc45bba27 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xd9d94635 sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x08966d13 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x0e24ed89 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x366d8806 ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x37790b8a ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0xa5489115 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x10b7b5a5 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x2672ae5c ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x936c1623 wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x2505c629 wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x472e5445 wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xadcebe35 wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xb868f0c6 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xcc8f1b0f wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x00367902 wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0a002d01 wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0c4a41e2 wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x18e38c78 wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1ca1e79b wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x488af0e0 wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x50e27149 wm_adsp_read_ctl +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 0x54e37f55 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x5ab8e706 wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x67d61983 wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x6cd133b7 wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x71fb19bb wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8233bcb5 wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x915b7c2d wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9b6aba92 wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9f87ff49 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa69fb580 wm_adsp_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xac746f55 wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xae5586c9 wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xcb78256c wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xda673906 wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xdc6290cb wm_adsp2_component_remove +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 0xea38ee07 wm_halo_bus_error +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xece9ff17 wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf1f2d501 wm_adsp_compr_open +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf89d22b7 wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3a4096cf wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3b2259e5 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x40f7b433 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 0x74b7548a wm_hubs_add_analogue_routes +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 0x792bd7d8 wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xaee14cd9 wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc3d7e37f wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc5b5b091 wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x22641780 wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xf9744150 wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x0a2af6e7 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x0bc1cd3a wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x3cc64c0e wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xb7dd0a6a wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd9908645 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xd372f3ca wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x845ecf11 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc2bbf946 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/imx-pcm-dma 0x3d395155 imx_pcm_dma_init +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x16ddb9ce fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0x3458387e audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x1fe3e6a6 audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7f42ac2f audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x8c982eec audio_graph2_link_dpcm +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xbabb717c audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x08f42218 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x0b72700c asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2abab50d asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x358de109 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x3f6c9b3f asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x535bc166 asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5e87b7ac asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5ffebc26 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x622f3cf6 asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x90124d64 asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x90a40490 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x98d6cf83 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xac5e069a asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xae70c0af asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xb426ea12 asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xba108850 asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd47b934b asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xe3f4d5ff asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xe6d06f09 asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xe91aa423 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xeb4cfa4e asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xed182811 asoc_simple_parse_tdm_width_map +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 0x02be46b3 mtk_afe_fe_trigger +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x146fc8f7 mtk_memif_set_addr +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x276e499a mtk_afe_pcm_new +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x29dc72d9 mtk_afe_fe_shutdown +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x2e06025b mtk_afe_pcm_platform +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x361e37c6 mtk_afe_fe_hw_params +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x433389cc mtk_memif_set_channel +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x5caccf0d mtk_memif_set_rate_substream +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6231df3f mtk_afe_suspend +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6576f4c1 mtk_afe_fe_prepare +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6b2cabf5 mtk_afe_fe_startup +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7c63b1ed mtk_memif_set_rate +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fa73c24 mtk_dynamic_irq_acquire +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x817b59e1 mtk_afe_resume +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x95a06efd mtk_afe_add_sub_dai_control +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x9a1a7563 mtk_memif_set_disable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xaa11a6a1 mtk_memif_set_enable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xafb4dda8 mtk_memif_set_pbuf_size +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xb8bc1014 mtk_afe_fe_ops +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xcc220126 mtk_afe_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xcfcc3c39 mtk_afe_combine_sub_dai +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xe119a452 mtk_afe_fe_hw_free +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xef4c0f49 mtk_dynamic_irq_release +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xf1216710 mtk_memif_set_format +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x36555879 mt8195_afe_enable_clk +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x97e316d3 mt8195_afe_disable_clk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x33963a5f g12a_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x428a556b axg_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x4e059e7c axg_fifo_pcm_close +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7faf5991 axg_fifo_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x83c011fc axg_fifo_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xc114d4b2 axg_fifo_pcm_trigger +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xd7224262 axg_fifo_pcm_hw_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xe10c3b8c axg_fifo_pcm_open +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xfccd651e axg_fifo_pcm_new +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x4988d1f8 axg_tdm_stream_alloc +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x539c48cc axg_tdm_stream_start +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x55316323 axg_tdm_formatter_set_channel_masks +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x64e0ca85 axg_tdm_stream_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7cf4af8a axg_tdm_formatter_event +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x8f0205a6 axg_tdm_formatter_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xef4a0d56 axg_tdm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x20ef5b20 axg_tdm_set_tdm_slots +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x3330d32c meson_card_set_be_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x3fafa92f meson_card_reallocate_links +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x78c54981 meson_card_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xc825de41 meson_card_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xcdc44ad5 meson_card_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xf6195a0f meson_card_parse_dai +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xf7022db5 meson_card_i2s_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xfc9ebec5 meson_card_set_fe_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x2dcb062f meson_codec_glue_input_dai_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x5c480c31 meson_codec_glue_output_startup +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x665ba990 meson_codec_glue_input_dai_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xe4915cd9 meson_codec_glue_input_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xe7b9d450 meson_codec_glue_input_set_fmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xe9a88e59 meson_codec_glue_input_get_data +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x049cbca0 q6adm_matrix_map +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x28421460 q6adm_get_copp_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0xac5bd3fb q6adm_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0xd6a814d9 q6adm_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x07a54780 q6afe_cdc_dma_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x369b6eeb q6afe_port_put +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 0xda035563 q6afe_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0xe2aef7f7 q6afe_port_get_from_id +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 0x13b7efd9 q6asm_cmd +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x1b6c77fc q6asm_stream_media_format_block_alac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x25bfa476 q6asm_open_write +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x2b693eed q6asm_stream_media_format_block_wma_v9 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x462aa9d0 q6asm_audio_client_alloc +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4afe6f73 q6asm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4fba2f0c q6asm_run_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x68db31e2 q6asm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x6cec4b17 q6asm_stream_remove_trailing_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x856b4fdb q6asm_stream_media_format_block_wma_v10 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x9d0cf85f q6asm_stream_media_format_block_flac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xa7d3a3a6 q6asm_media_format_block_multi_ch_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xb37ed108 q6asm_enc_cfg_blk_pcm_format_support +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc0dd8d67 q6asm_open_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc1347db0 q6asm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc5a116a4 q6asm_get_session_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xcbee5e42 q6asm_stream_remove_initial_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xcc4952e4 q6asm_audio_client_free +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xd2cf1a0f q6asm_run +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xd38aa312 q6asm_cmd_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xea75a5dd q6asm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xf47f4b35 q6asm_stream_media_format_block_ape +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/q6prm 0x9cb945be q6prm_unvote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0xbbb2c0e5 q6prm_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0xbfc00f71 q6prm_vote_lpass_core_hw +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/qdsp6/snd-q6apm 0x11a2be15 q6apm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x12a16ff4 audioreach_alloc_graph_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x145cf8f6 audioreach_alloc_apm_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x2330d52a audioreach_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5543dd66 audioreach_alloc_apm_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6044dda5 q6apm_graph_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x64dc5171 audioreach_alloc_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x65fffa47 q6apm_graph_get_rx_shmem_module_iid +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6bd3186d q6apm_graph_media_format_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7bfe0a29 audioreach_get_container_last_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7f4d39c8 audioreach_alloc_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x8115ff61 audioreach_set_media_format +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x87125115 audioreach_get_container_next_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x933ca6a2 q6apm_graph_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xa4bbb98a q6apm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xa6c2b373 q6apm_graph_stop +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xaac512c6 audioreach_shared_memory_send_eos +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xaf51f47e audioreach_graph_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xc232d980 q6apm_graph_media_format_shmem +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xcaef0416 q6apm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xcd3e9ee8 audioreach_tplg_init +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd04a07a0 audioreach_gain_set_vol_ctrl +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd1635d92 q6apm_graph_flush +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd2acca0c q6apm_graph_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd825ccef q6apm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xe0063a47 audioreach_get_container_first_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xeb3c313e audioreach_graph_free_buf +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xf7801444 q6apm_graph_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xff3dfff1 audioreach_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x17142e58 q6dsp_map_channels +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x4ad40dac q6dsp_audio_ports_set_config +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x7b86a0b2 q6dsp_audio_ports_of_xlate_dai_name +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0xb29db5e3 q6dsp_clock_dev_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cdc-dma 0xc6ac6007 asoc_qcom_lpass_cdc_dma_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x2492e9a3 asoc_qcom_lpass_cpu_dai_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xae34ba80 lpass_cpu_pcm_new +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xb41b62f6 asoc_qcom_lpass_cpu_platform_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xb6ec43fb asoc_qcom_lpass_cpu_platform_shutdown +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xbef41b93 asoc_qcom_lpass_cpu_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xdadbe7db asoc_qcom_lpass_cpu_platform_remove +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-hdmi 0x2618f24c asoc_qcom_lpass_hdmi_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-platform 0xed9d4c15 asoc_qcom_lpass_platform_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x3dd9f961 snd_soc_acpi_find_machine +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x5c512782 snd_soc_acpi_find_package_from_hid +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x9b1aadfd snd_soc_acpi_codec_list +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00a2d6e4 snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00ffc2ea snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03fac3aa snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07a4fc9d snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08553762 snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x097f849c snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bcec2bb snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bd76d54 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d0a955f snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e3139d8 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x144cc5ad snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x165e19c5 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x166cb533 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1808e339 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18a49d81 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19aed078 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bcd4fa9 snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d966089 snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e4b46c7 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f329ffe snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20523a4b snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23358562 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x243720da snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x254af571 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25af02d4 snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2676c4a1 snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a8e49f8 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2aeeada0 snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d11c9aa snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x328042b0 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32e7265d snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35a5cbc7 snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35c838f1 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38486ad3 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38f47144 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39dd138d snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c25910d snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x40df5098 devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41a76535 snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41d0a0b5 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x429cad29 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42dc5e56 snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4330d06b snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43823b41 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44880ef4 snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44edd285 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4584c349 snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46758a01 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49b9252a dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49e76144 snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bec536d snd_soc_component_initialize +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c07b85b snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cc5331b snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cfcdd3c snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d804b02 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e4b93c0 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ef7663a snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f408d57 snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f794a9c snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5292d583 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5388ef16 snd_soc_dai_active +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54f5e001 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55c76af5 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55f0f6e9 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56e15716 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5702fb9b snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bafb18b snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cf8fb21 null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d16646b snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d2c811b snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e82c15c snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ee4773a snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61c302ff snd_soc_component_compr_open +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61f9b1c3 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61fc0585 snd_soc_runtime_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63a78974 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6645c25d snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x668fdffc snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67f199b9 snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68714099 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b4da018 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c618cce snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6eba1100 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x711ba3f6 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x734ec7b1 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73946608 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74246e6a snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74e2a8ef snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75067bd0 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x752be469 snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75494f34 snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x759085ed snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7762f418 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7767b849 snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7796605c snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77ebbb97 snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78df83b0 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a85499a snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ba0311b snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c8da71c snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7d1953f3 snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f6e50d4 snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fcd7354 snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80ce62d4 snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x820582fb snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x828db7cb snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x834cde3c snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x839858d0 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x871366df snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x872bc14b snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87a42405 snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87d41b9d snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a06cbf8 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a99f44f snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8dd25ab6 snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ddc1117 snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e06624c soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e8227f0 snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ea78155 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f708ec7 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92524cb6 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92d0af2a snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9313167b snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x941bdbdb snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9451e40c snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9593ac87 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97fb5d65 snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9958b9e2 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d191026 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9df9790c snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9eda8874 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa038f8ba snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa09cbf22 dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4ba7fef snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa57e5d1b snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8ba0386 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8cf6345 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa94b6531 snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa3f0c3e snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac55eb37 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaccf8f4d snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacec6bbe snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadd60777 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1595e7f snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4ead320 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6ed0d63 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb740633b snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb786a778 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7e4e863 snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb88c6ad0 snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8a57f05 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba71e404 snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba732681 snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbafe02b7 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd58b7ab snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd773da2 snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbde42bd3 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf46c4d9 snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0f25abf devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc317a15e snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3ca24bf snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc49756f7 snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc4d3362b snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5bfe1c7 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6ba70fe snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc75c7db6 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9c07981 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca5e72d3 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca629cd8 snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaaf34b9 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb278204 snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbf2d9a6 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd449404 snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd27ffe2d snd_soc_dai_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd369c475 snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd41de551 snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4387b5e snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4c5fa9a snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd527d1eb snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5cb6c44 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd774eeae snd_soc_component_write_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8000806 snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9666ef5 snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd967fd86 snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc0b6932 snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde74eada snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde8a109c snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xded52c07 dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2b37d4c snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2d9e443 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe30199b4 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3058823 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3f8cd25 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe59db166 snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe610a259 snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe619f3fd snd_soc_component_read_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6a90c27 snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6ca7466 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6dca7db snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6fd2082 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7f178a6 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8317716 dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe914770f snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe95d096a snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec099419 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xecaf4d49 snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeee7e55b snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2c6ef5e snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4844975 snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4fb2dcb snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9622dd1 snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc293614 snd_soc_component_compr_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd0ad9b1 snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd1f278d snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe7429e2 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x6ff4dbc8 snd_sof_debugfs_buf_item +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x7564863a snd_sof_debugfs_add_region_item_iomem +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x8557790a snd_sof_dbg_memory_info_init +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0xaf8fd4b9 snd_sof_free_debug +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0xcc6edc46 snd_sof_dbg_init +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x2c64d423 sprd_mcdt_request_chan +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x5061832c sprd_mcdt_chan_int_disable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x609193c3 sprd_mcdt_chan_write +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x68b4b311 sprd_mcdt_chan_dma_enable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x6c283cec sprd_mcdt_chan_int_enable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xa5fdddd3 sprd_mcdt_chan_read +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xb67dbf49 sprd_mcdt_chan_dma_disable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xdf547b54 sprd_mcdt_free_chan +EXPORT_SYMBOL_GPL sound/soc/sunxi/sun8i-adda-pr-regmap 0x37a3a5c2 sun8i_adda_pr_regmap_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x584239ef tegra_asoc_machine_probe +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x9422ffa8 tegra_asoc_machine_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x0755f48f tegra_pcm_construct +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x276f9cba devm_tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x3e70a669 tegra_pcm_platform_register_with_chan_names +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x427633d7 tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x909c0fe6 tegra_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xd0767d27 tegra_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xd2161705 tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xe6877d9f tegra_pcm_open +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xfbc7fc33 tegra_pcm_close +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 0x0427e3da 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 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 0xd01de23b tegra30_ahub_allocate_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-ti-edma 0x7d0d9bac edma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-sdma 0xd68a0d85 sdma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-udma 0xfeb000b3 udma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x006c4b91 line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x0daf985b line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x202a1b1b line6_midi_id +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3d194a09 line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x4ebb4e86 line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x681bced6 line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x6dfe2bfe line6_probe +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x8e4bdb23 line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x9dda9c6c line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xb4d162a6 line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbbafb981 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbf1cb635 line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xdb83beb5 line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe8756681 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xee36e1c7 line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xf7176c91 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xff53fe3a line6_read_data +EXPORT_SYMBOL_GPL vmlinux 0x001210b4 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x00202fae __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x0034d4c1 thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x0035146e fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x0039f19a of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x004d51a7 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x004f3fa8 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00565f18 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x005f18a6 add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x0067ad38 ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x007c33bf devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0096423f phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x009fe50e ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x00c9572c of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x00cc3535 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x00cd501b class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00d847df dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x00df9837 ioasid_register_allocator +EXPORT_SYMBOL_GPL vmlinux 0x00e44ad0 tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x00f2df50 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x00fbe2ab usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x010173c9 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x01141aae ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x012e730e apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0x014e8186 cpu_scale +EXPORT_SYMBOL_GPL vmlinux 0x0161a2f7 acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x0170bef9 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x0177427b power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x0179ccba topology_update_thermal_pressure +EXPORT_SYMBOL_GPL vmlinux 0x0185ddcf device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0198d867 fsl_mc_object_allocate +EXPORT_SYMBOL_GPL vmlinux 0x019bfeea vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x01a0cb78 property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01d1ac75 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x01da58a0 dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x01dcbf7d gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x01dffea5 debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01efe606 nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x01f2dcef k3_udma_glue_request_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x01fb3d50 device_del +EXPORT_SYMBOL_GPL vmlinux 0x01fd477c __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x02097ea0 device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x020e7bca bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x0212c72b __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x02299d8e kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0x02314863 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x0234456c serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x023c401d __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x02495b8f gnttab_alloc_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0x024aed34 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x024d13dd request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x024f079e pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x024f4f05 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x025154f3 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x02786a09 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x02866f9a acpi_pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x028afd23 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x028e0c88 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x02a37637 gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x02af3464 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x02b2ad16 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x02bc87b7 cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x02bce7be xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x02bfdfbd device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02dac2a0 acpi_cppc_processor_exit +EXPORT_SYMBOL_GPL vmlinux 0x02e16bec kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL vmlinux 0x02e56b26 dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0x02eda1da __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0x02f9a5d4 spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x03027ed7 devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x030843f1 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x03138957 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x032bb752 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03445d51 bgmac_adjust_link +EXPORT_SYMBOL_GPL vmlinux 0x034b8ecf phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x034c8466 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x03701a42 zynqmp_pm_pinctrl_set_function +EXPORT_SYMBOL_GPL vmlinux 0x037289a9 tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0x037d59ff rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x03aed374 divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x03b1805e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x03b62870 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x03ca74b2 virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x03ccce6d led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x03ce7234 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x03dc1446 devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x03ded7a2 __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x03fd8907 devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x03fdf4da serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x0400a2b4 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x040314b2 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x040d11a4 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x0412332f rcar_rst_set_rproc_boot_addr +EXPORT_SYMBOL_GPL vmlinux 0x0422fdfd hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x0429a55e tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x0430444e of_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x04391eed user_update +EXPORT_SYMBOL_GPL vmlinux 0x044429af gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x045b8aba __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x04632318 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0472cf3b register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x0485b4a9 tegra_mc_write_emem_configuration +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049e5156 gnttab_try_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x04a9c5f4 spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x04b0e210 crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c013b0 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x04c173bd __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c50483 meson8_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0x04c5672c fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04df95f1 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x04e4ac0f ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x04eb038c kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x04f27588 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x04f5fadc usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x04f67996 usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x0507cc4c ahci_shost_groups +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x051c4f10 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x05423c07 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055946e0 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x0559532a list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05641313 imx_clk_hw_sscg_pll +EXPORT_SYMBOL_GPL vmlinux 0x05725af9 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x05736076 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x05776e75 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x05899e0f devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x058c6377 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x058f9366 apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x059fd034 devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0x05aed65f nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0x05bf0bb5 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x05c37126 xen_xlate_remap_gfn_array +EXPORT_SYMBOL_GPL vmlinux 0x05c82103 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x05cbb111 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x05d8036d sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x05d9c1d9 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x05daee76 serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x05e85d0a platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x05ed2d93 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x05fe37a9 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x06055a23 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x060d2283 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x061336ae blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x061367d8 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x06167053 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x061a0e28 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x063e9296 rpi_firmware_put +EXPORT_SYMBOL_GPL vmlinux 0x0640dfb2 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x06419f91 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x06633049 report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x066a94db tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x066b6012 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x067e84ff dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x06879c99 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x068e40b1 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x0695e72a led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x06ae517e add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x06b25118 edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x06b6283b transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x06b970a5 zynqmp_pm_ospi_mux_select +EXPORT_SYMBOL_GPL vmlinux 0x06c1cff4 devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x06ca5c55 fsl_mc_bus_dpio_type +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06e4433e sunxi_ccu_set_mmc_timing_mode +EXPORT_SYMBOL_GPL vmlinux 0x06e57855 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x06e7ce6f blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x06ec93a4 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0x07021f41 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x0704e912 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x070f4bb1 dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0x0715f296 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x072eef17 usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x0735f5fe ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074b7ade vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x074f98db synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x0751a31e of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x0763402b evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x077f9c4b ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x078614b8 icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x07868a8e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0799db2e gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x07a4aa28 i2c_acpi_new_device_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x07a9a008 xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x07abaef5 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07b5d958 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x07be045b irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07cfbbd1 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x07daf226 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x07e5f4ef mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x07f6fedf kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL vmlinux 0x0802702a fsl_mc_obj_close +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x082646b3 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x0852bb9e unregister_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x08576175 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x08758dc7 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x0891726c device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x089f0b9c crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x08c78cf7 offline_and_remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x08def8e7 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x08e8a11d __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x08f16e1a scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x08f4eb8e devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0907d14d blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x091c2abf palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x091e1aba scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x091ef1e2 iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x09337cd0 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x0935f1d3 mtk_is_virt_gpio +EXPORT_SYMBOL_GPL vmlinux 0x093786cf synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x09506d3c sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x0951f305 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x09563e04 __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x095a78b9 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x095eecc8 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x09691834 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x0972f3ae kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x097ad3fb component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x097fd353 syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09be3a09 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x09c9ffa2 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x09d27c57 acpi_spi_count_resources +EXPORT_SYMBOL_GPL vmlinux 0x09e77af6 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x09f6393b of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x09fbe004 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x09fe4946 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x0a015310 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x0a0163fa perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x0a05e0d6 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x0a1dc005 mmc_pwrseq_register +EXPORT_SYMBOL_GPL vmlinux 0x0a1f1e9e pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x0a2961f1 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x0a3611e8 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0a3df815 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x0a463293 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x0a4fe05e __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0x0a52c511 hv_query_ext_cap +EXPORT_SYMBOL_GPL vmlinux 0x0a67ee43 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7ceb30 __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x0a7e7830 phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x0a985f4c crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x0abc6be6 k3_ringacc_ring_is_full +EXPORT_SYMBOL_GPL vmlinux 0x0ad06b3d __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x0ad22de8 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x0adff93c spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x0ae8fe41 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0af40724 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x0aff269d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x0b0525a5 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b1bb9f9 synchronize_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x0b24c079 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0b26f553 crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b36d02b edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x0b39671b dax_layout_busy_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0b3a3ed7 zynqmp_pm_fpga_get_status +EXPORT_SYMBOL_GPL vmlinux 0x0b3b28f9 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x0b4949f7 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b54f697 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x0b690f04 k3_udma_glue_tx_get_txcq_id +EXPORT_SYMBOL_GPL vmlinux 0x0b6f2cf5 kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x0b7d7454 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0b829417 dax_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x0b9b2edd __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x0bac92b9 devm_ti_sci_get_of_resource +EXPORT_SYMBOL_GPL vmlinux 0x0bb028d4 hisi_clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x0bb085f4 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc9b2 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfc1314 __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x0bfefa1b dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0x0c08299e devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x0c0ca4c6 devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c3e6241 k3_udma_glue_disable_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x0c404e5b fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x0c50f181 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x0c5285ac ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x0c65f3ae ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x0c6d010d tegra_bpmp_put +EXPORT_SYMBOL_GPL vmlinux 0x0c805ea3 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c8d2bb5 __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x0c970d40 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x0ca5979a __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x0ca5a157 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x0cb24d84 pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0cb875b5 dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x0cba8d11 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x0cbe3ee2 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0cc6f14d fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ccd771f fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0x0ccf5275 zynqmp_pm_pinctrl_get_config +EXPORT_SYMBOL_GPL vmlinux 0x0cd7021f acpi_dev_get_property +EXPORT_SYMBOL_GPL vmlinux 0x0cda8576 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ce1a9f0 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0x0ce3dd73 bman_is_probed +EXPORT_SYMBOL_GPL vmlinux 0x0cea0722 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x0cfcb2be proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x0d0aaa14 net_selftest +EXPORT_SYMBOL_GPL vmlinux 0x0d1733ca ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d4e3f8c iopf_queue_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0d533ce2 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x0d5cecc6 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x0d5ea27d anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d5edf5f pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x0d620d4d pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0d7ab9dc tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x0d8386a8 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x0d937581 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0d9f0ae5 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0dae6818 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x0dbb0857 devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x0dc1976e fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x0dc8fd07 phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x0dcf6d59 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x0dd3b0d6 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0df1b02d fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0x0e007edf xen_evtchn_nr_channels +EXPORT_SYMBOL_GPL vmlinux 0x0e0c035b power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e1194d5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e1c8af5 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x0e21348d switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x0e24057c get_device +EXPORT_SYMBOL_GPL vmlinux 0x0e2cf5f8 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x0e4de966 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x0e567932 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x0e6e081e pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e889e7d vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x0e90d750 xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x0e959f3f usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x0e9ebda3 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x0ea5cbce xen_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x0ebb03a4 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ec096b0 hv_read_reference_counter +EXPORT_SYMBOL_GPL vmlinux 0x0eed785f sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x0ef0aa4d pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x0efdfecc badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x0f0d1c7f pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0f103bc6 mtk_pinconf_adv_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x0f168013 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0f175578 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f1d7120 dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x0f234e36 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x0f236f3b ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x0f2a0571 nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0x0f2b8875 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x0f339b71 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x0f443bb6 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x0f538276 rpi_firmware_get +EXPORT_SYMBOL_GPL vmlinux 0x0f6a22c0 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x0f6d78a4 kvm_vcpu_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x0f72ada1 acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x0f7a688d crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x0f7ca236 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x0f84eb0b mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x0f8524db ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x0f95d0e8 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x0f99aaf2 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x0fa674c6 device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x0fa89368 rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x0faa2c9a __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0fb6d0b3 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x0fb9b486 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x0fbb7344 memremap_compat_align +EXPORT_SYMBOL_GPL vmlinux 0x0fbc0c0e xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x0fd1fdee nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0fd69681 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x0ff0fece __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0x0ff3703b of_mm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0x1011705b rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x101195e2 pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101a4550 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x101d01e3 meson_clk_pll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x101eb62f hv_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x1023432b pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x1033050e subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1037fe97 virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x1043df72 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x1051764a ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x1054f541 of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x10551927 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x105763a8 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0x108a0acd bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x108be265 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x108f0f72 vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x10b4d51a blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x10bf75dc fsl_mc_obj_reset +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10fca617 devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x1114bebd extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x11178367 bgmac_enet_probe +EXPORT_SYMBOL_GPL vmlinux 0x11225b5f ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x1137210a pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x11437381 __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x11538af3 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1162e0c6 dev_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x116f532a powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x117c1213 of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0x1188f50e of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0x119a9a8b acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0x11a8837e ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x11c06eec kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x11c459b7 devm_memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x11d693b1 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x11d7ec5c cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x11dab364 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11e06ee9 badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x11e08f96 trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0x11e28fd5 iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x11e5cbe0 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x11f5ce32 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11f8153f console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x122f4c41 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x1231fe7e i2c_acpi_find_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x12320ef3 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x1234ffa1 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x12377338 regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x123d9838 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x12450e6a clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x12537dae __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x125630c8 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1269a0da static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x127c24c2 fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x129283ef dprc_reset_container +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x129e4b6b handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x12b741b8 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x12bbccab ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0x12c832ed scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x12ca5775 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x12d342bb crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x12e04ac8 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0x12ee1173 memory_group_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12ff9a32 mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x13027eea cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0x13063146 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x13074f48 dpbp_enable +EXPORT_SYMBOL_GPL vmlinux 0x13090724 add_vmfork_randomness +EXPORT_SYMBOL_GPL vmlinux 0x130ed363 devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131b7de3 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132342f4 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x132bfbb7 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x133688c3 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x133a807d platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x134555b5 io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1349736c __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x134cf31c dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x135a3d10 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1363bb89 param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x1363da97 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x1366dcea pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x13742822 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x13a52714 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x13a8d58c pl08x_filter_id +EXPORT_SYMBOL_GPL vmlinux 0x13af8725 spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x13b5ce15 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x13b8fc49 devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x13c0f810 thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13d7555e ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x13d95e0a of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x13db1eb8 k3_udma_glue_rx_cppi5_to_dma_addr +EXPORT_SYMBOL_GPL vmlinux 0x13df0d54 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x13eaad21 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13f7c715 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x13fab921 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x142081d1 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x14366255 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x14446ce9 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x1456762b k3_ringacc_ring_get_free +EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1484631f reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x14863aaa led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x148fd794 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x14942883 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x14a6e017 fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x14b23a4c kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x14c856c1 clk_register_hisi_phase +EXPORT_SYMBOL_GPL vmlinux 0x14ebce9c usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x14ec4fdb evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x14ed86e2 mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x15021b4a xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x15032098 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x150427b6 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x150c7dcd dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x151b1dbb dpcon_open +EXPORT_SYMBOL_GPL vmlinux 0x151cd034 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x1521e16f irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x152529c9 devm_of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x1543e45d devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x154921aa devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x155176f2 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x15525b27 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x1553bb91 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x156046d6 __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x15652005 wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x158024b3 i2c_dw_acpi_configure +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x158e769d xenbus_setup_ring +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15a087c3 mtk_pinconf_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15b9125b tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x15c3d8e5 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x15c60a71 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x15c6a7d6 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x15cf35c9 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x15d4fd22 device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x15d80897 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x15da5b3f i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0x15dc4735 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x15e59973 mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x15ea2648 hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x15ea4142 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x15edcc54 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x15f3fba0 iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x15f56687 crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x16029312 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x160dc33f tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x160e42df dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1617a77a nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x16198cdb ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x161aed40 devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x162596f8 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x162c3c4f trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x16381134 blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0x163b87ae blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x163f87c4 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x1641200f fsl_mc_bus_dpcon_type +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x164b48db sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x164f5337 vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0x16516798 osc_pc_lpi_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x16636fad mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x167d7113 acpi_bus_register_early_device +EXPORT_SYMBOL_GPL vmlinux 0x167ef2b9 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x16818f29 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x16919ddb of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x16a00ab6 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x16a9d299 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x16addf1f dpbp_disable +EXPORT_SYMBOL_GPL vmlinux 0x16c101c5 spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0x16c5f9f5 dev_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x16c6566e uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x16cb0509 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x16cba29e nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x16d32bc1 misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x16d7d445 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x16e705d0 devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x16ed701c thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x16f0de29 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x16f15139 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x16faaf67 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x1709e8f9 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x172826c2 acpi_subsys_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x173ac652 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x173b6e96 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x1741ddee trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x17475e26 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x1749f6f2 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x17591ecd zynqmp_pm_write_ggs +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x177d99ae acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x17823a2d finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x1788c661 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x17980b8e n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x179f82f7 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x17bead8c pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x17c19c53 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x17c44553 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x17c5c908 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x17d0e85a crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x17d2ea51 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x17e01f11 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0x17ec6e7d virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x17fc0dd1 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x181fed53 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x18448037 dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x185a243f _copy_from_iter_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x18615d35 efivar_supports_writes +EXPORT_SYMBOL_GPL vmlinux 0x186db2f4 i2c_detect_slave_mode +EXPORT_SYMBOL_GPL vmlinux 0x18715353 k3_udma_glue_push_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x1874de68 to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x188a659d devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x18a785f3 usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0x18b1551a imx_clk_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x18bd0733 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x18d167f1 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x18d6425b devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x18dc3c2b regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18e8c440 arch_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x18eb281c sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x18ee97ef __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x18f10f38 k3_udma_glue_enable_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x18fd4796 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x1924ac56 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x1926028c zynqmp_pm_reset_assert +EXPORT_SYMBOL_GPL vmlinux 0x192ef385 of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x1944e39b raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x194d9fd6 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x197d7286 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x198028ed tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x19821689 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x199ba1d9 gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x199fbbac ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x19a16428 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a4a8e5 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x19aab6b9 dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x19b4dc7c relay_close +EXPORT_SYMBOL_GPL vmlinux 0x19c0a30a debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19c2aa7c ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19ea3145 ti_sci_inta_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x19edd064 blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x19fea214 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x1a0ad0ca imx_pinctrl_parse_pin_scu +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a12c95b regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a199487 fsl_mc_portal_allocate +EXPORT_SYMBOL_GPL vmlinux 0x1a2792de regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x1a4a2fe3 fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x1a4d401b dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0x1a525af9 rockchip_clk_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1a635dbf debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a7b6706 power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x1a876574 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x1a8c3f41 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x1a9b1a57 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x1a9e38f9 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1aa9e37f fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x1abc1c62 dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x1ad3cfd4 mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x1ad47b2b usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ad8cf37 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x1ae2a18c pinctrl_generic_get_group +EXPORT_SYMBOL_GPL vmlinux 0x1ae6e832 of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x1aed3e76 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x1aeecf86 md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1b006316 genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1b0a37fc fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x1b1e5836 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x1b297b1e sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x1b32eecf crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b5d42bd platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x1b5f4377 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x1b64c4d6 device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x1b7fc4f8 generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x1b857981 iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b8b7d86 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1ba0d5b1 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1bbaf54f of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x1bbdeeb4 hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0x1bc40a8d gpmc_omap_get_nand_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bc64087 xas_split +EXPORT_SYMBOL_GPL vmlinux 0x1bc733d7 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1bc85e1c irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0x1bcb07b6 of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x1be07c9e __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1c119ff9 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x1c11bff4 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1c2842aa sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1c3b9789 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x1c44ef50 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c453e57 of_msi_configure +EXPORT_SYMBOL_GPL vmlinux 0x1c5541bd cpufreq_boost_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5e06bc noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x1c5ff742 clk_get_phase +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c89fb22 zynqmp_pm_clock_setparent +EXPORT_SYMBOL_GPL vmlinux 0x1c9e38a6 ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x1ca3aa97 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x1ca4a930 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x1cab9925 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1cb72eb0 rockchip_pcie_deinit_phys +EXPORT_SYMBOL_GPL vmlinux 0x1cb7c983 apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x1cb9a1c8 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0x1cbc3768 regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cc4d6c4 of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1cd5e9f3 devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x1cd72b69 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x1cf063b4 raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x1cf1d9f3 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x1cf2209c init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x1cfaa4a8 acpi_cppc_processor_probe +EXPORT_SYMBOL_GPL vmlinux 0x1cff8eab sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x1d11e45e acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x1d1a2a1b mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d23cc40 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x1d38f3f6 dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x1d43330f ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x1d5923b5 blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x1d5bcfd3 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x1d5ddb6f psil_set_new_ep_config +EXPORT_SYMBOL_GPL vmlinux 0x1d6696b0 mtk_mutex_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d8b9aff crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x1d8dcd56 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0x1d94a218 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x1d9a5b2b pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x1dd3701d devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x1de887ff zynqmp_pm_bootmode_write +EXPORT_SYMBOL_GPL vmlinux 0x1df6bf4e key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x1df6d79e led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x1df71854 dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1e052630 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e30242b devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x1e33a037 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1e3a38d4 dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0x1e3bc77c xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x1e3d1b7a dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x1e424d61 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x1e4e98c0 acpi_dev_filter_resource_type +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e7b89d3 cros_ec_command +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e80fc01 fsl_mc_populate_irq_pool +EXPORT_SYMBOL_GPL vmlinux 0x1e83fee6 HYPERVISOR_physdev_op +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e9bc719 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1eb07ebd icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0x1eb1f7ad fsl_mc_get_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1eb6847b device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x1eec96c0 k3_udma_glue_rx_flow_init +EXPORT_SYMBOL_GPL vmlinux 0x1ef20793 stop_core_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x1efaa06f __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x1f023136 cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x1f1cc011 zynqmp_pm_get_chipid +EXPORT_SYMBOL_GPL vmlinux 0x1f2f9b4a firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x1f348b01 pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f391f78 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x1f3f9d18 strp_init +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f481245 gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x1f5110c4 bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f62d3e6 gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x1f7ee42c tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8edef5 acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f9a2b53 zynqmp_pm_clock_enable +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fcd7e9f init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x1fe28ef9 mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1fedb624 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0x2006b54c bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x20245fc8 regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x20249cf4 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x202d4ed6 nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x202e53e1 dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x204f2c5c gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x2075ff91 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x207625de usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0x2081fdf9 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x20978fb9 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x209bebc5 fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0x20a5dcdd switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0x20a73f7d meson_pmx_get_funcs_count +EXPORT_SYMBOL_GPL vmlinux 0x20bacca2 rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x20dd646a virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x20e487e2 dpcon_get_attributes +EXPORT_SYMBOL_GPL vmlinux 0x20ed60e8 acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0x20f41976 xen_dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0x20fc44ac serdev_acpi_get_uart_resource +EXPORT_SYMBOL_GPL vmlinux 0x2105cb15 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x210cff3a trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x2124e0cc iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x213f1095 ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x21415236 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x214e4371 trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0x216bf830 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x21722875 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x2176e42a hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21a96ee3 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21bf5d44 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x21cc9fca power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x21cd2371 __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21d69ccb mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x2200061c __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x220a825c perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x220ce70c kvm_arm_hyp_service_available +EXPORT_SYMBOL_GPL vmlinux 0x220ec370 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x221eab6d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x22200ac2 dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x2221badc rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x222418fe blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x2229a7ad pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0x222a5fb1 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x224c74c9 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x224f9c77 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x2256f683 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x22665472 blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x226ad58d regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x227d917d sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x228a3ae3 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x2292e7da acpi_data_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x22960407 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0x22a59a0b pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x22a769d2 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22c7df11 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x22cff839 devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22d9fb76 rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x22ec5205 cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x22ed0a0b register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x22f1112b i2c_acpi_client_count +EXPORT_SYMBOL_GPL vmlinux 0x22f31abb add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x23143f73 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x231b699d handle_fasteoi_ack_irq +EXPORT_SYMBOL_GPL vmlinux 0x2324b407 vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x233b8698 fsl_mc_resource_free +EXPORT_SYMBOL_GPL vmlinux 0x233e91a2 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x234c45e3 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x2357494f fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x23578cf8 xen_dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x236ee5b4 dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x236f5442 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x23780259 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x237a01fb crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x237b029a dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238a9bd5 fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x23bba35b clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x23bffdf2 kvm_vcpu_map +EXPORT_SYMBOL_GPL vmlinux 0x23c009f0 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x23cb0c27 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x23cbb95e pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x23cbefb9 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x23d72fa3 thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x23d9c08e gnttab_page_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x23e87f14 i2c_slave_event +EXPORT_SYMBOL_GPL vmlinux 0x23f1bd3a imx_clk_hw_pfdv2 +EXPORT_SYMBOL_GPL vmlinux 0x23f4de63 kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x24043586 sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x2413d1a9 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x2414e5c8 nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x24173806 clk_regmap_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x2427684e acpi_dev_get_dma_resources +EXPORT_SYMBOL_GPL vmlinux 0x243b09c5 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x24413343 erst_read_record +EXPORT_SYMBOL_GPL vmlinux 0x245b1230 crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x2464da17 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x2469810f __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2469ef35 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x246cded8 kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x24709b2f trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x2484e789 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x248547c2 ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x24860747 tegra_bpmp_mrq_is_supported +EXPORT_SYMBOL_GPL vmlinux 0x2486eb76 dt_init_idle_driver +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x248de177 kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0x248e1473 kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x249d7dce of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x24a19027 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x24a735c6 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24c9031b efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x24df5e97 of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x24e00c4d sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24ec4b5d phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f4d2b8 edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x24f63dcf ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x24fb033d __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2500cdfd efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x25084847 bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x25222904 nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x25267ef1 i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x252c566c udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x25301bc6 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x25391bcb regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x25400b3e bgmac_enet_remove +EXPORT_SYMBOL_GPL vmlinux 0x2552db27 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x2574da11 zynqmp_pm_write_pggs +EXPORT_SYMBOL_GPL vmlinux 0x257d8084 serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x2580e22f clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x25bb6fb0 alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25bc6dfc iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x25d81729 __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x25f1a4c8 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x25f4838b devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x2603a6a2 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x2618a960 devm_tegra_core_dev_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x261a5eb8 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x26336850 pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0x26430d5d __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2672808c nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26779ebe devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2697e5f8 fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x26a213c7 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x26a93eb2 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26e30ad9 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26f063b0 md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x26f23518 clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x2708808f pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2717cb4c unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x271f9a72 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x2729eea1 __acpi_node_get_property_reference +EXPORT_SYMBOL_GPL vmlinux 0x272dcf2e vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x272e9d77 hisi_reset_exit +EXPORT_SYMBOL_GPL vmlinux 0x274340fa net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x275009bd phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x2752930c vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x275507e0 devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x275fb52a ahci_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2772fd92 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x2773c485 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x27741b69 component_add +EXPORT_SYMBOL_GPL vmlinux 0x2777add5 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2786624b ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x27b74502 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x27dc9471 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x27e158a2 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x27eb2608 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x27ec9146 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x27fe4750 mtk_alloc_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x280e2c1a led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x28127511 skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x2817f7fd cppc_get_desired_perf +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x28310bcd kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x2842fa5b sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x2849d4c0 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x285b653f kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL vmlinux 0x286284ae serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x286f17a4 blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x28713f6d elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x28720677 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x2875e232 regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x288caaff attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x28939089 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x289c5930 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x28afbb08 cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x28b030d2 of_overlay_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28b208af sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x28b79c47 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x28d01577 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x28db3d27 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x28f06947 tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x28f5627e pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x28f7c181 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x2904520a regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x29225d4b dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x29261c36 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x29294267 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x29317a7d cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0x2935a319 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x2939dfb9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x293c884e iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x294668c4 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x295b982a hisi_clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x295f57f3 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x2960ddb5 spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x297b99bd __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x298684cc acpi_initialize_hp_context +EXPORT_SYMBOL_GPL vmlinux 0x298b05da fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x2997a34f alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x29c256cc platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x29ce1df2 seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x29d76547 k3_udma_glue_tdown_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29fa8b0a wwan_port_rx +EXPORT_SYMBOL_GPL vmlinux 0x2a0e97dc sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x2a14da2a is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x2a2be53f pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0x2a37ea11 imx_clk_hw_frac_pll +EXPORT_SYMBOL_GPL vmlinux 0x2a4dc3fa follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x2a4f5f15 iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2a57540b ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2a5a8558 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x2a5c2db2 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0x2a5ea9ef rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a5fba32 pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a8f8b72 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2a9b5428 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x2a9bf31e __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2aad81b2 mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x2aadad1a efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x2ab0ae7e udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x2ac03521 of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x2ace24f4 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x2adad996 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x2ae1689e zynqmp_pm_clock_getdivider +EXPORT_SYMBOL_GPL vmlinux 0x2af3bd8b genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x2af7f918 dpbp_close +EXPORT_SYMBOL_GPL vmlinux 0x2afc56b0 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x2b006d7a __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x2b073124 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x2b086ab1 clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x2b099204 acpi_subsys_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x2b0fe000 gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x2b12ea81 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x2b136bba led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x2b1792ff devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2b1cfbdd nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x2b1e1acd cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b43672c __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b4d2a7d led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b5231f2 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x2b5eb041 devm_thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b699297 scmi_protocol_register +EXPORT_SYMBOL_GPL vmlinux 0x2b6d960d synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x2b76646e pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x2b78011e pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x2b780856 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x2b7d15dc dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x2b840281 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x2b850c68 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x2b86f0fd zynqmp_pm_bootmode_read +EXPORT_SYMBOL_GPL vmlinux 0x2b888714 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x2b8b7607 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x2b8d40dc gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x2b91bc46 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x2b952517 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x2b960b66 qman_is_probed +EXPORT_SYMBOL_GPL vmlinux 0x2b971f0c crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x2b9997fb atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x2ba25e52 filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0x2ba53e3d dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0x2ba89ee7 mtk_clk_unregister_factors +EXPORT_SYMBOL_GPL vmlinux 0x2baaacc4 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x2bb42c05 meson_clk_dualdiv_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bba37e7 umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x2bc1c6a6 nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x2bc402f2 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x2bc666f3 stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0x2bc6fdd5 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x2bc768f1 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x2bd5ae91 nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x2bd7d1ae acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2bec5470 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2bf831cd pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x2c0d856c acpi_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2c150916 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x2c18c55e tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x2c1db997 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c36cc85 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x2c39cf9f sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x2c3b1a35 regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2c3df3bc acpi_subsys_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2c45caf5 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2c635527 arch_invalidate_pmem +EXPORT_SYMBOL_GPL vmlinux 0x2c64231d crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x2c6564a2 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c72b348 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL vmlinux 0x2c790d4a __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81a826 imx_1443x_pll +EXPORT_SYMBOL_GPL vmlinux 0x2c88b502 fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c951e9e pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2cbe9e4c irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x2cc495c5 rpi_firmware_property_list +EXPORT_SYMBOL_GPL vmlinux 0x2cc9d064 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x2cd5778a bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x2ce2e954 of_console_check +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2cef03c4 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x2cf776db dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x2cf947b8 dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x2d0684a9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1b111d key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x2d2c902f perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d301f05 blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0x2d338b13 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d37839e ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x2d3b47f6 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d420c31 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x2d430425 devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x2d510748 ahci_platform_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d51f26b mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x2d5ac6a8 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d69c704 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2d6aa0f0 arch_apei_enable_cmcff +EXPORT_SYMBOL_GPL vmlinux 0x2d7d03ea xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0x2d7f7c29 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2d9b2924 crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x2daa251c pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x2db67d4a owl_sps_set_pg +EXPORT_SYMBOL_GPL vmlinux 0x2dc267f5 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x2dced513 dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x2dd8f69b nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2de3c8dd crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x2de428eb regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x2de84eb3 nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0x2debd087 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e08226d badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x2e1a5da4 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2bba97 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x2e334876 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x2e369ce3 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x2e477365 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2e53eb09 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x2e5a01de ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e6b9d4a ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2e6f90e8 cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x2e715677 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x2e76c204 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2e784c0c __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x2e7bf2f9 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x2e86a059 ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x2e88dedb usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0x2e9ec24d free_iova +EXPORT_SYMBOL_GPL vmlinux 0x2ea2fc73 imx_obtain_fixed_clk_hw +EXPORT_SYMBOL_GPL vmlinux 0x2eae62ba bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x2eb99514 acpi_device_fix_up_power +EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecaeb59 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2ecb8489 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2ecbb5b5 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x2ed489ec gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x2ee17fa2 phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x2ee22ce3 i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0x2ee7c52b btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x2eef6d4e put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2efb5ad2 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2f2e08bc bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x2f3e1511 xen_xlate_unmap_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0x2f470293 thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f493adb ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x2f545734 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x2f59d621 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f762601 devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x2f7628b0 pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x2f781b3b cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x2f847a56 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x2f90aede __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x2f99df72 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x2fab7290 __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x2fac3c71 k3_ringacc_request_rings_pair +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fd76c7a kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x2fdfaedf __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x2ff0f673 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x2ff739d1 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x2fff4e45 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x3003d8fa filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x3025eee0 tegra210_clk_emc_dll_update_setting +EXPORT_SYMBOL_GPL vmlinux 0x3032b55f genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x30351294 k3_udma_glue_rx_flow_get_fdq_id +EXPORT_SYMBOL_GPL vmlinux 0x303e98ca yield_to +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3062d25a uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x30745235 regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x30833bd0 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x308baee4 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x30a4d5bb regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0x30ae65bf rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x30b3bdb0 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0x30bb7be3 fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x30d2b523 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x30de6ba2 reset_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x30e1ec25 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x30fe75d2 mtk_clk_register_composites +EXPORT_SYMBOL_GPL vmlinux 0x30ff920a led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x31128b8e hv_remove_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0x31174dc1 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x311c6da4 put_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x311d633f ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x311e5e47 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3128b2ab tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x312f7996 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x31396303 nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0x313c13e1 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x313ea5fd ipi_send_single +EXPORT_SYMBOL_GPL vmlinux 0x314d24e3 handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x31595211 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x315dd956 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0x315f712b class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x315fee57 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x3162ce5f mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x316742e5 md_run +EXPORT_SYMBOL_GPL vmlinux 0x3170973a irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x31793e87 gnttab_pages_set_private +EXPORT_SYMBOL_GPL vmlinux 0x31839ad3 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x3185c3e7 edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x31a127f8 dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x31a9536a __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d34278 xas_load +EXPORT_SYMBOL_GPL vmlinux 0x31dca4d8 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x31dcf932 rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x31dd24ac dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0x31e7603a acpi_dev_remove_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x31e9e8d5 zynqmp_pm_set_suspend_mode +EXPORT_SYMBOL_GPL vmlinux 0x31e9f9a3 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x31f81111 rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x320b2522 phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3214a5a1 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x3222b9e4 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x3246888b __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x324afcee dpbp_reset +EXPORT_SYMBOL_GPL vmlinux 0x324fff45 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x325125d3 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x325888a3 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x32612eb1 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x326cefe5 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0x326df998 of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x327a2687 bind_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x3288b93b __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x328b1d7b sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x3297842c hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x329ae8cc pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32b7b2fe regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x32bc0fcf preempt_notifier_dec +EXPORT_SYMBOL_GPL vmlinux 0x32bcad49 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x32c38dd6 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32df33e7 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x32ec6f83 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x32f37b42 usb_of_has_combined_node +EXPORT_SYMBOL_GPL vmlinux 0x32f4442d sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x330f82b8 of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0x33292af4 dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x332cd0b4 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x3330d0a3 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x3330e895 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x33328b6f irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x333d8b83 crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0x33472145 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x337ccfea sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x337d1f83 strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x33bc2e5b ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x33c5ea2d bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x33c6e1f1 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x33dd5ee0 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x340541d1 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x340aa1a6 spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x341d61ad regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x34331f04 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x343d4fc9 serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x343dced6 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x344a2c84 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x34652bf2 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3466a85d debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x3476ac5b list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x347a30c7 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x347b6f61 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x3495ad5e __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x349ab66b icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0x34a05a00 mtk_pinconf_adv_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34abb4b9 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x34c34ced find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x34cfab56 devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0x34d9f66b to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x34de231e usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x34eab46d bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x34fc4ad3 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x34fdffd1 fsl_mc_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x350cf36a of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x3510fd8b vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x352ed57a sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x353ec939 clk_regmap_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x3543bf7e __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x354508bf dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x3548180e kthread_func +EXPORT_SYMBOL_GPL vmlinux 0x355b2ef2 ti_sci_put_handle +EXPORT_SYMBOL_GPL vmlinux 0x355bc89a klist_next +EXPORT_SYMBOL_GPL vmlinux 0x355e2197 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x3562f983 read_sanitised_ftr_reg +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x356c3bd3 crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x357457c3 psil_get_ep_config +EXPORT_SYMBOL_GPL vmlinux 0x3576115e kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x357638ac acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x357c390f regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x357f9023 acpi_dev_ready_for_enumeration +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35a4f59d zynqmp_pm_clock_setdivider +EXPORT_SYMBOL_GPL vmlinux 0x35a58d5c gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x35b25e3b of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x35b8d96b trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x35c07d8d crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x35c5f938 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x35cd810a pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x35d3dc46 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x35f92407 get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x3616f11d fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x361cb96c srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x3620d1d4 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x36290ccc pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x363991f6 of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x363c335c hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x364153aa fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x3649513b icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x365838f9 irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x365989e5 imx_1416x_pll +EXPORT_SYMBOL_GPL vmlinux 0x365b45d1 __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x365c9276 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x36740699 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x3686b512 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x36875814 ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x36913fb6 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x369944cd pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x369f0b06 fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36ac17ab alloc_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0x36afd08c qcom_smem_state_register +EXPORT_SYMBOL_GPL vmlinux 0x36afd880 phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x36c20980 akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x36ce5463 file_is_kvm +EXPORT_SYMBOL_GPL vmlinux 0x36da32b2 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x36db870b zynqmp_pm_sha_hash +EXPORT_SYMBOL_GPL vmlinux 0x36e4741d devm_memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x36ecff7c dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0x36f5ae50 ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x3708f1f8 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x370be894 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x37169f79 cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x37194dd4 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x371ffb81 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37257c99 gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0x372e60bc component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x3740a1d5 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x3746d7ec irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x374e8eed gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x3750d770 erst_read +EXPORT_SYMBOL_GPL vmlinux 0x375428c5 acpi_device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x375454db regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3775c25b k3_udma_glue_tx_cppi5_to_dma_addr +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x377daa86 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x378053e2 nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x3783558b l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x378adfb7 zynqmp_pm_sd_dll_reset +EXPORT_SYMBOL_GPL vmlinux 0x378b4117 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x378c0b9f dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x37914025 xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x379a64be device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x379c4b5e clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x37a0b5d7 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x37a0c351 pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0x37a1ff21 devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x37ba49a8 fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0x37be27ce __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x37c2393b clk_regmap_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x37c76b93 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x37c84a64 pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x37d44779 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x37eb6c0b devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37f5236f gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x37f95e12 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x3801776b __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x3803f44e serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x380d4682 device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x380ece44 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x381c75ef dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x38201a3f rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3821c27f tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x382f68b8 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x382f85aa tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x383169fd kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x3863fa19 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x3866e217 nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x38708e25 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x387ab789 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x3882d46c pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38b8beae __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x38c3ff30 freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e29754 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x38e30eb5 clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x38ea45ca netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x38feb23a mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x3902b643 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x39063e2d dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x391d3cd3 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x392d0825 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x393582b3 perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3936f400 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x39393064 devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x39404cd4 regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x394184b6 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x3948018c pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x3955c17d ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x3957e1c5 fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x396a7169 spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3973225b blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x3975130f sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x3979c32f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3982b5a1 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x3986b293 devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x3989dab3 kvm_get_kvm_safe +EXPORT_SYMBOL_GPL vmlinux 0x398b13a3 skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x398f0dbf __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x3990b13d dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39c9d88c xas_find +EXPORT_SYMBOL_GPL vmlinux 0x39cc04a0 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x39d34453 sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x39e56224 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x39fd83db halt_poll_ns_shrink +EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect +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 0x3a6e5598 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x3a74e484 __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a750b05 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x3a7f7099 housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x3a810363 pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3a9f46b4 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x3a9f6482 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x3aa5b838 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x3ab8f116 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3ac253a4 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x3ac3feba rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad313f2 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x3ad4ebd8 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x3ae97350 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3aedb873 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x3afb5e43 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x3afc4a8f sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3b013221 cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x3b03918e pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b50eb64 regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x3b610584 __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3b628278 __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0x3b6509e5 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x3b65239b inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x3b6b5701 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0x3b78bf02 sunxi_ccu_get_mmc_timing_mode +EXPORT_SYMBOL_GPL vmlinux 0x3b887c66 dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x3b8a2159 devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x3b96578e preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x3ba01b47 get_compat_sigset +EXPORT_SYMBOL_GPL vmlinux 0x3ba1aaae driver_find +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdc0e0c __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x3becc5d3 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3c0e8050 hyperv_pcpu_input_arg +EXPORT_SYMBOL_GPL vmlinux 0x3c11b9f5 tegra210_put_utmipll_in_iddq +EXPORT_SYMBOL_GPL vmlinux 0x3c15bd99 __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x3c16db8c wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3c1b6470 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c2abc73 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c3ca0be devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x3c3d4f19 irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x3c491aac __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x3c510b85 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x3c56abc3 fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x3c5d543a hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x3c610846 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x3c621421 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3c62681e fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x3c629246 fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x3c64b89d __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x3c652d68 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x3c679d77 page_endio +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c6b37c9 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3c7b9573 gpmc_omap_onenand_set_timings +EXPORT_SYMBOL_GPL vmlinux 0x3c9171b9 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x3c93bf3c ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x3c94bf5b bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3caab769 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x3cad3283 get_dev_pagemap +EXPORT_SYMBOL_GPL vmlinux 0x3cb811a2 fsl_mc_obj_open +EXPORT_SYMBOL_GPL vmlinux 0x3ccd8b46 zynqmp_pm_clock_getparent +EXPORT_SYMBOL_GPL vmlinux 0x3ccf37e4 ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cd6b212 call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x3ce2369e meson_pmx_get_func_name +EXPORT_SYMBOL_GPL vmlinux 0x3ce9c8b4 blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x3ceee133 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3d0e334d fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x3d286c65 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d38ec60 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d544cca kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x3d598e15 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3d5a98cc rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x3d602423 i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x3d61d8c3 rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x3d63e502 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3d69afbb ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x3d6b248a sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d8baf3b zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x3d92f863 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3da5866f serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3db5279f driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x3dc8aeae dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x3dce3119 cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x3de0474d __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3defc216 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3df01a20 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x3df70c99 trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0x3dfa44f7 pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0x3e18ebf0 pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x3e1b89df set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x3e2e93b4 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x3e3b2ee0 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x3e3e33eb blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x3e5f53db nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0x3e66c735 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x3e693a68 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e7317cd br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x3e96cbe2 phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x3e9b31c6 xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x3e9e28f1 tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3eca7922 serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x3edda67a skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x3ee2807b of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ee7fb70 regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3ef12b61 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x3ef12ec8 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x3ef44b67 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x3efd7e1d phy_create +EXPORT_SYMBOL_GPL vmlinux 0x3f0a0831 sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x3f0be32d fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x3f0ec5cc find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3f19d849 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x3f1c2939 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x3f48c339 debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f4a3cb9 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x3f4bba4a stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3f5a6c54 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x3f68ca50 sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x3f69a2fa switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3f97b7bc of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x3f9d0d9d cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0x3fa4f4d7 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x3fae6ab0 hv_vp_index +EXPORT_SYMBOL_GPL vmlinux 0x3fb7d9c0 mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x3fc19448 of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0x3fd7879b set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x3fd8b70b wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x3fdb8634 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x3fe35aea irq_bypass_unregister_consumer +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3fea029c hisi_clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x3fec0fcb mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ff4a778 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x3ff77cd4 ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x401d5aae xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x4020d591 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x40267068 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x403eac60 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4042964a find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x4043757f init_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x4044f2fd pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x4053d872 xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x405f02c5 fat_setattr +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 0x4093d36b ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40bc1340 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x40d29ff4 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x40dbd043 fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x40e0ba52 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x40e914a2 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x4101b63f pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x411e5b99 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x41237f71 cpu_have_feature +EXPORT_SYMBOL_GPL vmlinux 0x41285a5a raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x414449ab pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x414f79c0 mtk_clk_unregister_gates +EXPORT_SYMBOL_GPL vmlinux 0x4151816f regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x41642085 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x418873cc irq_bypass_register_producer +EXPORT_SYMBOL_GPL vmlinux 0x419033cc driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4191c8e5 __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4197003e acpi_bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x419d7c83 zynqmp_pm_pinctrl_set_config +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41bce49a ghes_register_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41d07fc4 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x41e3ecc6 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41f1bca3 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x41fb98fd em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x420f3d01 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4231a3d4 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x425dd9d6 tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x42615840 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x426452a3 acpi_evaluation_failure_warn +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4289f9e2 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4299f987 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x429b4fb8 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42ac7c62 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x42b379d4 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x42bf8fe1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x42d60b13 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x42d9a914 handle_fasteoi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x42e515da phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42f4e3d6 sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x4304d8b0 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x430acac2 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x430fa3ea thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x431c7d4d xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x43267ca4 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x4328d88c __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x43294b33 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x4347d6ef ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x434bd7b0 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x43581cde nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x4358acbc sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x435ddfb0 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x436ccaae acpi_pm_set_device_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x438702ea switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x438983ee inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x4389ef6a icc_get +EXPORT_SYMBOL_GPL vmlinux 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43becbc6 altr_sysmgr_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x43e6fd71 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x43e71a4a lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x43e956b6 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x440c4bb4 iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x44107bed fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x44299160 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4430aa45 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4439914b meson_pmx_get_groups +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4454b4ff generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x44576dc8 bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x44692a5c devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x446a2ba1 pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x44730353 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448ea255 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x449d5a0f ti_sci_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x449ebed1 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x44a793ab HYPERVISOR_grant_table_op +EXPORT_SYMBOL_GPL vmlinux 0x44aef47e hisi_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44c43141 clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44e1e9aa balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x4501f8c4 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x450e987c __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x4514b668 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x4518bb62 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x4519c2c5 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x451db0b2 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x45215ffc pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x452e9532 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x4531624f usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x4531ab62 copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x45332f08 regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x4534e423 dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x453539af devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x453ca65a __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x453f416d misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x454b305e irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0x4551428d dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x4554a70b hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x4561f990 qcom_smem_state_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45695948 fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x456c29d1 wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45832f60 fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x459e1f00 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x459e6151 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x45a25ee5 locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x45a312cd devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x45d95317 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x45db496e edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x45ede692 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x45fb1aec regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46030074 __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x46269814 __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x46352c70 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4657455a mtk_mmsys_ddp_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x46737324 gnttab_dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x4677858b pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x467f6d2c gnttab_page_cache_shrink +EXPORT_SYMBOL_GPL vmlinux 0x468444d4 blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x468875f0 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x468e72bb phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x469ffbc7 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x46a4b118 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x46c5be22 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x46d8450f nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x46e67a71 this_cpu_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x46fb2c40 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x46fd3e84 mtk_pinconf_drive_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x470165e9 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x470ee9b5 nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47231ebe kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x472628d4 dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x472ee1a6 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x474798d7 dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x47516073 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47749af3 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x477ba2ab dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x4781747c xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47a3150f device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b54186 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0x47baca6e devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x47bdeb5c regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x47c87f63 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x47d0eea2 acpi_lpat_temp_to_raw +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47e06efe blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0x47e2b8ce pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x47e525d4 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x47ebad4e wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x4808d34c gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x48096be3 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x4813cf1c clean_record_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x481472ae blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x4815aa79 dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x481c2da3 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4823dee6 fsl_mc_device_add +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x482aa7e7 iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x4843a748 qman_portals_probed +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x48622d79 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x486dedc3 ghes_unregister_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4876b875 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x48795e91 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x4898e0b7 dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48ab15ff iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48c420eb of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0x48c7db8f nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0x48f0e8de ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48f13cd3 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x48f554ee arm64_mm_context_get +EXPORT_SYMBOL_GPL vmlinux 0x490b387a ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x4915e7af __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x4916559a devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node +EXPORT_SYMBOL_GPL vmlinux 0x49406aea regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x494b5a2d power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x495e3d12 of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x496960ac fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x497a84ae mtk_clk_gate_ops_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x4988c438 virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x498e415e of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49a4bac3 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x49a64410 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x49c95f41 free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49d6b0d0 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x49d90e7f i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49ea931c __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x4a07a9d1 dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0x4a0b7214 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a1e9512 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x4a20b9e4 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a2755fe devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x4a31c1b6 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL vmlinux 0x4a3d61f2 pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x4a420d09 acpi_bus_detach_private_data +EXPORT_SYMBOL_GPL vmlinux 0x4a42a4f0 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x4a47e316 power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x4a48e881 irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0x4a59a3a6 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x4a6418b3 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4a6b9bc7 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x4aae1869 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x4aafb7dc regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4ab12f82 to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0x4ab38180 pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x4abb798a acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0x4ac003b1 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4ac30ae1 mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x4acf8b41 splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x4acff27b led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x4aef7e22 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x4af97ae6 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x4b202433 acpi_device_update_power +EXPORT_SYMBOL_GPL vmlinux 0x4b2ad3b6 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x4b3442e7 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x4b376b8b __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4b37edd7 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4b3bf8e9 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x4b3ec17f css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b522775 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x4b572501 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x4b5acf74 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x4b5d56d3 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x4b5d7b7e nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x4b754c55 devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x4b8670ff pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x4b86e24b hisi_reset_init +EXPORT_SYMBOL_GPL vmlinux 0x4b92019b devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x4b9247a8 mtk_pinconf_bias_get_combo +EXPORT_SYMBOL_GPL vmlinux 0x4b931968 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x4b9a82e9 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x4ba2d82b bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x4baf6bc7 scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x4bb23303 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x4bb47cc3 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x4bc783ab rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4bc8727f xen_balloon_init +EXPORT_SYMBOL_GPL vmlinux 0x4bd3f887 crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4be1d25e xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x4bed03a8 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x4bfd398d hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x4c0fc1ad nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x4c2c0ea7 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0x4c2fa036 folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x4c3e67a8 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4c45207e skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x4c4e663d irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c596351 pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x4c817fbe platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4c882c10 dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x4c8adfe1 hv_root_partition +EXPORT_SYMBOL_GPL vmlinux 0x4c9183f8 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4ca5d801 uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4cbb06c0 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x4cebfb6f devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4cee31dc dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x4cef6a47 ti_sci_get_handle +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bb4a clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d036b5e bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x4d1eb281 bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x4d2bf140 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d83c710 k3_udma_glue_tdown_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x4d95d6d1 memcpy_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x4da22e6c of_device_request_module +EXPORT_SYMBOL_GPL vmlinux 0x4daaead2 crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4db0bb5c dax_add_host +EXPORT_SYMBOL_GPL vmlinux 0x4dc645f2 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4dda3181 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de8011b percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x4df2cdfb ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4df4a32c serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e17c613 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4e1facec acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4e359146 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x4e3872c1 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x4e3fd1b4 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x4e3fd354 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4e4557d1 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x4e484278 evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x4e493c78 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x4e4c37e2 freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e515e7a lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e5f8100 fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0x4e61e1c0 dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0x4e67b36e crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x4e69f799 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x4e70d8c9 fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x4e718b14 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x4e74878e __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x4e7b889a devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x4e7d9867 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4e947b44 fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4eaf7e44 devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x4eb39d4e __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x4ece3615 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ed593c2 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x4ed92b6b of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x4eea1fa1 devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x4eeecdc1 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x4ef4ce94 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f16868a udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x4f17ab87 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x4f1cd695 _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4f2593f0 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x4f2c996d kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x4f33405f pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x4f33b0dd PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x4f33b8d6 mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x4f34b84c blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x4f4e7ebd mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x4f688d98 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f6ee268 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f9783fe component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f9c102b clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x4fa32d43 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x4fac51b4 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x4fd419f0 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fed22d1 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x4ff0af13 dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x4ff5fde1 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x4ff720a0 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x500b061c ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x500c768c apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x501c9e52 strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x5023c135 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x5032273a genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x50360ca4 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x50376cd6 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x506364b9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x5069c33a synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x50816401 percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x50851025 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x5085901f device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x50877671 gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x50887469 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x508a76f6 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50a9b423 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x50addbf8 sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x50bc0d4a badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x50c2ae54 rpi_firmware_property +EXPORT_SYMBOL_GPL vmlinux 0x50c6d1eb usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x50c723a9 device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x50d94a34 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x50df94f5 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f498df devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x50f9909a skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510019d1 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5111d75c mtk_clk_unregister_composites +EXPORT_SYMBOL_GPL vmlinux 0x511ad43b skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x511efd2a security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x512cef80 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x512f0632 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x5139fc5a blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x513b1aff __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x514dc781 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x5152bd85 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x515c6cef dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5169344d k3_udma_glue_pop_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518a4601 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x518bcdc6 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x51991b38 mtk_mutex_enable +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51ad07dd tegra210_plle_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0x51bf963b start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x51c40b0d __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x51d13875 nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x51d320de of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x51d5fc00 meson_eeclkc_probe +EXPORT_SYMBOL_GPL vmlinux 0x51da485e ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x51daaecb dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x51ebbed8 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x51f2f16b ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x51faf6bc ping_err +EXPORT_SYMBOL_GPL vmlinux 0x51fc962a regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x51fc9a6d xenmem_reservation_decrease +EXPORT_SYMBOL_GPL vmlinux 0x51fca4db ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5200a09a pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x5206c03d pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x521d95a4 gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x523a304b shake_page +EXPORT_SYMBOL_GPL vmlinux 0x52431348 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x524afbd4 of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x525d0aa3 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x527f980b irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x5281bff8 strp_process +EXPORT_SYMBOL_GPL vmlinux 0x529bbba3 of_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x529d835b component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x52b0d892 dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52b3f45a devm_ti_sci_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x52c1d96c wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52ce2057 hv_setup_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0x52d28b75 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52e15d50 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x52f18a5a genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x52ff71f9 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x53012944 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x53075c22 ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x5308b98a spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x5311a06e zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x5318b4de __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x531def76 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x53237661 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x532b90b5 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x532c9239 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x53319cd9 anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0x5345fa2c dprc_close +EXPORT_SYMBOL_GPL vmlinux 0x534672bc pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x535716ee stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x535a1a87 bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x536e35b7 pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x53738369 dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x5380a903 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x5394a738 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x5399b744 led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x53a5257c set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x53b4e2af bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x53babe1f serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x53c089f5 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x53c45389 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53f00c41 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x53fc42eb acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x5401b2e4 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x54022f24 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x540fe7fb pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5420d1f5 copy_user_highpage +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x542c3d64 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x54366546 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x54462ab7 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x5446e079 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x544b7e8b serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x545d1370 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x54651f9b rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x5472e2a9 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x5483d15c __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a25da2 qcom_smem_state_put +EXPORT_SYMBOL_GPL vmlinux 0x54ace6ca devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x54b53abc mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x54b8bab8 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x54bea8f1 xen_remap_vma_range +EXPORT_SYMBOL_GPL vmlinux 0x54cee684 __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x54e6eca7 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x54e8fc7e led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x54e980e1 fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x54f5a26a meson_clk_dualdiv_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x54fdb036 acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x5503d7aa usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x551552c4 crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x551c8d13 clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x551f5cc9 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x5526ecf0 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x5528543b vmap_pfn +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x5535e635 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x554b01c4 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x5563fc88 devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x55686a26 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x5571dc4b wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x5572fc85 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5583086d uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55c9880c zynqmp_pm_release_node +EXPORT_SYMBOL_GPL vmlinux 0x55d9cf21 crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x55dbbaf2 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x55e577f8 usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x560008bf crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x561b079c power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x56271a60 pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x562b2836 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563af7ef rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x563c90c6 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5657ea5a power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x565a565f phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x566a0623 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x566c0d76 mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x566e2796 page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0x5674cc8c tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x567a945e serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x5682b686 regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0x5684e698 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x5687c07c ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x5689e0a7 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x56990d32 meson8_aobus_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x56a009eb sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x56bba2a0 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x56bf2714 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x56c6c6a0 of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56f4ea08 mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x5719daa1 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x571c7692 set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x571d6a9f device_register +EXPORT_SYMBOL_GPL vmlinux 0x572932a0 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x572e00b5 vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0x57321182 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5733fe9d rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x5735a326 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x573c2969 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x574027b0 sprd_pinctrl_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x574172d4 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x574609c5 apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0x5748d492 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x57719632 gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x577a438a tegra210_clk_emc_detach +EXPORT_SYMBOL_GPL vmlinux 0x578eeb4d hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x5790bd99 debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x5799b7f9 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a17ab9 unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x57a3b933 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x57c663d9 k3_udma_glue_rx_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57d585fe da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x57e0d317 clk_regmap_gate_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x57e7dd21 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x57efd632 devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x57f06eb8 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x57fa824f wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x58159720 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x581fdd82 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x58225354 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x58276f93 cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0x58315632 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x5833a438 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x583ff56f usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x58543bc2 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x586bfc8a alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x58913c6d amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x58966c6f devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x58b57e4d mtk_pinconf_bias_set +EXPORT_SYMBOL_GPL vmlinux 0x58c05a23 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x58c84303 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58db1960 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58e14f15 HYPERVISOR_event_channel_op +EXPORT_SYMBOL_GPL vmlinux 0x5903572f input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59072e8c rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5931f505 dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x594891a8 kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x594b470e inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x596d5a9e mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x596e89f9 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x59814024 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x598208a5 genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x598c03a9 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x59a610a8 __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59d58e54 __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x59db0f7f ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x59e640c0 halt_poll_ns +EXPORT_SYMBOL_GPL vmlinux 0x59ec6a84 pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x59f8b7c6 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0x5a0026d5 rockchip_pcie_parse_dt +EXPORT_SYMBOL_GPL vmlinux 0x5a04f7bc fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x5a07a8dc device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a218e93 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x5a33c311 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x5a3be465 of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0x5a42c937 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x5a47c0b6 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x5a47d01a meson_sm_get +EXPORT_SYMBOL_GPL vmlinux 0x5a47d1ed iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a548039 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x5a55f3ab i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x5a63ae29 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5a6b6ce3 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a6f420a iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x5a705f7d devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a824927 ahci_do_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5a84a6dc __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x5a91fc57 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x5aa70984 acpi_reduced_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5aa8eb92 genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ab5d43c pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x5ac53b48 tegra_xusb_padctl_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x5adfb4c5 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x5ae54f1c kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x5af8deb3 devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5b02e6e3 of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0x5b1001eb rockchip_clk_register_armclk +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b2da962 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x5b39d89b adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5b5ca3e2 do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x5b6a2ef3 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x5b6ac228 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b8a6d46 devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5be03765 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x5bf04a94 nvdimm_setup_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5c04f499 exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x5c070f62 cper_mem_err_status_str +EXPORT_SYMBOL_GPL vmlinux 0x5c0eaf31 acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5c0f77ce HYPERVISOR_platform_op_raw +EXPORT_SYMBOL_GPL vmlinux 0x5c13bf7d cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5c1e864e nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x5c236d97 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c37655a ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c53fa6f of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c60d9e6 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5c63eb40 fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c90b3fd fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x5ca903ad irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x5cab91b2 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x5cab9945 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5ccab241 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x5cd80eee srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5d09f64c of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x5d145f6a cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x5d17148b apei_write +EXPORT_SYMBOL_GPL vmlinux 0x5d2aa5fb rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d2fd889 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d3c97ea iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x5d417d2f pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0x5d48b83c ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x5d4ba67c pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x5d6aa825 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x5d75e549 sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5d829814 device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5d83a3ff regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d8cd632 hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x5d8fd019 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x5d9069ff __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0x5d926802 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x5d9427bf ahci_platform_enable_phys +EXPORT_SYMBOL_GPL vmlinux 0x5d9e6a58 __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da4b5bc pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5dad1327 iommu_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x5db94475 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x5dd7d7b5 usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0x5ddd22c1 udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x5de06c6b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x5de412cd k3_ringacc_ring_push +EXPORT_SYMBOL_GPL vmlinux 0x5df57e04 gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x5df6d9ce md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x5dfc3069 posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x5dfdff2e usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5e19f6ca extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x5e1b8710 pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x5e282924 vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x5e2e7ed5 pci_pr3_present +EXPORT_SYMBOL_GPL vmlinux 0x5e3210f3 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e60589c of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x5e76bb57 k3_ringacc_ring_get_size +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5ea742b0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb18016 devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5ec2319a mtk_mutex_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x5ecdcf90 ti_sci_get_free_resource +EXPORT_SYMBOL_GPL vmlinux 0x5ed037d6 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5ed563ce sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x5ee2aa12 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x5f0815e7 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5f1358cf ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5f17ca27 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5f211e59 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x5f22bdcd dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f2b2ca6 dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x5f2e86a9 __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x5f4528f9 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x5f4fddd8 kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x5f645488 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x5f69774f spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5f6a5921 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f7971f4 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x5f8518e4 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5f85f4d3 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f910e21 devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5f9d9c9d aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5fa410f3 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL vmlinux 0x5fb9ad28 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x5fc3e26f apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x5fc424f1 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x5fdd352d ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5fdeb2e9 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5fdfcd57 __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x5fe53eaf power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x5ffe694a tegra_mc_get_emem_device_count +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x601c37e9 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x60294561 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x60324fc0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x6036ee1b swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6038ccca scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x603b28ce bgmac_alloc +EXPORT_SYMBOL_GPL vmlinux 0x603cf9b0 devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x603d0d51 acpi_os_map_iomem +EXPORT_SYMBOL_GPL vmlinux 0x603ff86d acpi_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x60442822 phys_to_mach +EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x604f5e17 phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x60541309 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x605d5bfa cache_line_size +EXPORT_SYMBOL_GPL vmlinux 0x605f7d64 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x606d57f9 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x60725b55 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x608d25d6 __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x60950a07 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x609a0ef6 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x609da600 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60b1c2fd clk_regmap_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x60c47f46 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x60e04e7f posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60f99e1b cppc_set_perf +EXPORT_SYMBOL_GPL vmlinux 0x60fcad79 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x611cfa85 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x61268e87 mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612a6c70 rockchip_clk_of_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x612bc584 icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x61456810 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all +EXPORT_SYMBOL_GPL vmlinux 0x61500f7c ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x6156a6c3 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x615768fd rockchip_pcie_cfg_configuration_accesses +EXPORT_SYMBOL_GPL vmlinux 0x615d3447 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x616835c9 platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x617a5546 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x617b09e4 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x618ec21b phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619d2eca acpi_gpio_get_irq_resource +EXPORT_SYMBOL_GPL vmlinux 0x619d3fce devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x61a6623b phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x61b9ca06 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x61ba9a2c kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0x61bbaae8 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x61bc4b2d fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61d70e62 bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x61f0594d nl_table +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x621d6407 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6227e8b3 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622ce01f crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6244c5bd usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x6245d1da kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x624bd132 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x6251ac30 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x626335d7 devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6263689c __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x62659106 debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x62757444 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x6280ece1 cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x62837c45 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x628715a7 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x628b89b4 tegra_mc_probe_device +EXPORT_SYMBOL_GPL vmlinux 0x628dfa2c pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x62afc955 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x62b37f12 devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x62ba408f regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62cf9dd6 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x62ebbf53 crypto_aead_encrypt +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 0x631eb712 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x632852dd hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x63389c7f usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x636713db spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x6370aff5 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x63864a25 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x63891865 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x638aff11 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x638c8aa3 __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x63997c45 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x639efc25 usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x63a58d18 spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63d85e36 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63ea7f12 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x63ea80b3 cper_mem_err_type_str +EXPORT_SYMBOL_GPL vmlinux 0x640badc8 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6411a181 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x641cd40b watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x641df849 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x641e3fc5 __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0x6427572b tegra210_clk_emc_dll_enable +EXPORT_SYMBOL_GPL vmlinux 0x64317d51 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x643b06b0 zynqmp_pm_clock_setrate +EXPORT_SYMBOL_GPL vmlinux 0x643f6be7 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x643ff5c8 kvm_arch_ptp_get_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x6457d9b2 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x64609d25 __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x646a1624 clk_hw_register_gate2 +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64786fed usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x648dd324 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x648dfc82 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x649aaaee addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x64a31445 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x64cd49ce ahci_platform_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x64cde396 phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0x64d4f2d4 __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x64da26b0 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64e76361 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x64f36620 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x64f5a765 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x64f74abf __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x64f94172 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x64fea378 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x64ffb9d1 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x6502d9c2 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x650fdee5 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x651537a5 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x65202675 clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x652326d4 usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x65401b6c __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x6545268e __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x655c3d64 dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x657c5f97 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x6582c0eb wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x6599c4a4 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x65ac6e70 dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0x65acf90c sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x65cbe4b2 virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65ce4fe2 i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0x65d5104c virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x65e01af9 __sync_icache_dcache +EXPORT_SYMBOL_GPL vmlinux 0x65ea2659 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x65eb65bc dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x660f9eba gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x6614cbab serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662bc1ae badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x6636ac5d inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x663c8bcd spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x663dbaed blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0x664eb54a k3_ringacc_ring_reset_dma +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669fa302 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x66a3c286 __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x66b0daba pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x66b38e86 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x66b577ff handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66c0451f component_del +EXPORT_SYMBOL_GPL vmlinux 0x66cd247b pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0x66d41ae7 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f85377 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x6708a54b scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x672cf5f5 regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0x673244a2 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x673c7743 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x675163e1 spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0x6751f7a4 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x67534722 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x6758fe4b __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x675ce985 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x675ffc22 pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x676c688f k3_ringacc_ring_free +EXPORT_SYMBOL_GPL vmlinux 0x677842b3 gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x677c9ea9 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x677ff88c xas_store +EXPORT_SYMBOL_GPL vmlinux 0x67822496 xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x678c670e devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x6797fe18 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x679994fb cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x67abf970 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x67af205b tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x67c05f71 dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x67c73f11 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x67ca4207 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67e773e6 dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0x67e9c93b of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0x67ee90fd power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x6804995d pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x6804fe96 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x68249bad __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x682a761b devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x683da7ce rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x68460527 blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x684ca117 zynqmp_pm_get_pll_frac_mode +EXPORT_SYMBOL_GPL vmlinux 0x6851c21b ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x68559c33 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x686f13d6 imx_pinctrl_sc_ipc_init +EXPORT_SYMBOL_GPL vmlinux 0x68716de0 devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x6892e3c3 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x68943930 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x689d2b8f fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x68b6f6ed genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0x68b8a5ef debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x6903b723 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x69185e38 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6918988f clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x691c55b3 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x691f0237 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x692ec868 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0x69478b25 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x69561711 mtk_pctrl_show_one_pin +EXPORT_SYMBOL_GPL vmlinux 0x695c71cb xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x695cd1e3 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x6960868c thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x696340a5 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x69676918 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x6968ff93 rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init +EXPORT_SYMBOL_GPL vmlinux 0x69791562 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x697ab681 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x699a8643 __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x699b60e0 cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x69b5420e ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x69b6fafd kvm_get_running_vcpu +EXPORT_SYMBOL_GPL vmlinux 0x69b8d243 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x69bc8d11 vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69dff8d0 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69e45646 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x69e6439a unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x69f62223 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x69f9966a fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a14d3af unregister_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a16526b xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x6a201a8b acpi_dev_clear_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x6a29f746 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x6a36ff74 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x6a3b41e0 amba_bustype +EXPORT_SYMBOL_GPL vmlinux 0x6a3cb666 dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0x6a3f4416 register_asymmetric_key_parser +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 0x6a68e018 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x6a73522c irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6a824d89 tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a8e61af file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x6a93c9b2 zynqmp_pm_pinctrl_get_function +EXPORT_SYMBOL_GPL vmlinux 0x6a99d1ea nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x6a9f80ce bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x6aa2a877 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x6aa53ad6 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0x6aad9152 xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x6ab166d5 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6ac1ff78 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x6ac2ea04 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x6ac40846 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x6ad16398 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x6ad51dd4 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x6ae0b8bf ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x6ae37d60 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x6ae65376 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x6b0ade80 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x6b0bb0f5 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x6b0dc565 xen_set_irq_priority +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b3ae022 acpi_os_unmap_iomem +EXPORT_SYMBOL_GPL vmlinux 0x6b4045ee zynqmp_pm_get_api_version +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b460948 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x6b47f8a4 hisi_clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x6b57151f of_k3_ringacc_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x6b6f6665 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x6b7489e5 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x6b7a4335 hyperv_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6b80bf07 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b81d478 serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x6b834121 bman_portals_probed +EXPORT_SYMBOL_GPL vmlinux 0x6b9097ec devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x6b935f5a debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x6b9de9d4 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x6b9fb163 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6ba36c6a hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bbb7487 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x6bbd8324 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6bdef35c acpi_ec_mark_gpe_for_wake +EXPORT_SYMBOL_GPL vmlinux 0x6be183c0 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x6be3a96b hv_remove_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x6bff7911 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x6c00c590 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x6c021f78 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x6c0ea3b9 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x6c121b65 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x6c1bd2b3 ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x6c205008 mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x6c20b958 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6c4459ee tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c5052ca __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x6c51a033 folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c5edb43 dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c674453 tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x6c752701 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x6c76fdac xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x6c8485a1 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x6c866f9d divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6ca7eff5 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x6cb0ce87 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x6cb211b7 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x6cb33d2d acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x6cb984e9 alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x6cbb4ca4 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x6cbcf222 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x6cc0fd5a phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x6cd0eeba crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0x6cdaab7d blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6ce10eb0 trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6ce481c1 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x6ce4cda7 irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x6ce6d9f5 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6cf0e53a usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x6cf0eb14 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x6cfa4c13 sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x6cfabcdc sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x6d04891d inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d09eb04 iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d103573 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x6d12899f tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0x6d236f27 meson_aoclkc_probe +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3bbe01 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x6d467b08 arm_smccc_1_1_get_conduit +EXPORT_SYMBOL_GPL vmlinux 0x6d4ab8fb gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x6d53c005 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x6d62b3f8 tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x6d63dcd2 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d713e9c vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7b24ee __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x6d7b3c78 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d836d66 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x6d883704 icc_put +EXPORT_SYMBOL_GPL vmlinux 0x6d95286c iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6d9f1626 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6da1e5f5 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x6da52e60 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x6db19fb7 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dc33c1c ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x6dc3f2f3 vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x6dd309e8 sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x6dd38fb5 dpcon_disable +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6df69824 soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e064673 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e16e908 crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x6e1a3f3c pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6e227a51 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x6e2ce2c0 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e4aa78d k3_udma_glue_rx_flow_enable +EXPORT_SYMBOL_GPL vmlinux 0x6e59bfcc serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x6e59f821 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x6e72e4f6 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e7e175c fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x6e84c94c regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e949503 fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6ea7b016 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0x6eab6b07 usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x6eb04f46 register_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec9bb1f dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x6edb3ea7 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6eefc798 devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x6ef0855c ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6efaedff of_usb_host_tpl_support +EXPORT_SYMBOL_GPL vmlinux 0x6efcd613 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x6f039599 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f1feda8 __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f27d6b0 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x6f3ca7a6 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x6f48f493 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x6f4b5e3f tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x6f4f6985 devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x6f57a4f9 device_add +EXPORT_SYMBOL_GPL vmlinux 0x6f592ec0 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f81a5f4 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x6f8e1d1d bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x6f94093e __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6f9e8e8a fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x6fa3391e __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6fb1bc24 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x6fb3f136 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x6fc66db5 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fd0cd3f fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x6fdf6076 fsl_mc_bus_dpni_type +EXPORT_SYMBOL_GPL vmlinux 0x6ff36aeb uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ffe9af0 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x700fd993 inet6_compat_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x70117019 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x701708b6 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x702cf7e4 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x702e4b46 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x703562f7 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x703d2492 wp_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x70420902 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x70462a22 mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x706874c5 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0x70695605 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x707456fa acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x7087b717 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x708fef69 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x709de360 umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x70a52088 platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x70a5a084 mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x70a5a6c7 pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x70a8e536 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x70aa7e32 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x70b98f39 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x70c2c7ea pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x70c2ded5 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x70c8bfe4 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70fbae4d cppc_allow_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x70ffab9f dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x7100bcde edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7103171c vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7129a6f4 osc_sb_native_usb4_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x712f1734 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x7134aa95 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7139c006 devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x714f0863 crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x7175862e gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x7181db30 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71823ffc clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x71875a15 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x718f4d86 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x71986599 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7198f559 ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x71991850 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a9a3ab mtk_mutex_acquire +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b39d20 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0x71b59308 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71b89291 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x71c059d8 __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x71c72503 dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x71d53bde pci_bridge_emul_conf_read +EXPORT_SYMBOL_GPL vmlinux 0x71d79eac rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x71ea8af5 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x71f6cde9 clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x721a3a28 ahci_platform_suspend +EXPORT_SYMBOL_GPL vmlinux 0x721cb793 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x72370e53 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x7237e950 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x724a36bd dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x725a234b mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7283d849 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7286b984 genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x729161a9 ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0x72978ab6 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72b59194 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x72cb7de1 input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x72d267dc nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x72dff85d rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x72e1e8e5 tegra_bpmp_transfer_atomic +EXPORT_SYMBOL_GPL vmlinux 0x72edf918 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x72efff5c lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x72f7c9b6 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x72f96b4c k3_udma_glue_tx_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x730ac2af of_thermal_get_trip_points +EXPORT_SYMBOL_GPL vmlinux 0x7319d9e7 sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x73239927 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x732852fe xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0x7328f1af devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7337e028 blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x733ddef6 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x734ec9b9 mtk_pinconf_bias_disable_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x73630d30 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x736f4cf5 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x7370e968 dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x73787c42 sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x7381287f trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x73921e7d gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x739e5196 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b1894b ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0x73b25437 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x73b31d3b of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x73ba01b3 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x73bce780 trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73f4c869 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0x73f9883e acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x74006ab9 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x740ede2e usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743b99d8 xenmem_reservation_increase +EXPORT_SYMBOL_GPL vmlinux 0x743d4d41 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x74406292 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744778e9 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x7452fbd9 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7456cccf gnttab_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x74659f17 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x746763ca list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x746d8076 mtk_clk_register_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x747afc81 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x74902a60 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x749613f1 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x74a22bb4 k3_udma_glue_push_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x74a3106b devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x74a31afe led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x74a7858e bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x74a942fe ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c31fe3 __fsl_mc_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x74c7bffa stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x74cd0434 spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x74d1e0a3 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74db1838 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x74df95f6 devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x74ea9816 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x74ebb876 device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x74f6fe8c blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x74f7f216 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x74fcc489 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7540e274 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x75430a75 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x754de231 of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7561a90b irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7567d416 device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x757e5275 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x758a43fe k3_ringacc_get_ring_irq_num +EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only +EXPORT_SYMBOL_GPL vmlinux 0x759bfe36 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75ac04da class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75b9a221 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x75bc707d usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x75c7d356 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove +EXPORT_SYMBOL_GPL vmlinux 0x75ddcf54 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75fb9062 arch_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x760cd1f7 iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x7618736e md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x761a2d3e pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x76255660 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x76257049 dpbp_open +EXPORT_SYMBOL_GPL vmlinux 0x763915f7 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x764d750a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x764ffefa page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x7655b2e2 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x7657e302 dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x76604eb4 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x7663fd83 __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7665a95b idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x766f552f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x769d5372 devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x76ab846d __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x76af84df devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x76b7f6d6 dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x76c80656 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x76d680f6 acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x76e85b92 gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x76e98841 task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x76fb94b2 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x771df857 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x77222306 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x772b0f64 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x773c906d dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x774f16ef __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x77522cf6 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x775aa1d2 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x775c99da mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x77747f22 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x77914ed3 mtk_eint_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77c04d28 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x77d97d69 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x77f24400 perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x77f31a6e ahci_platform_disable_resources +EXPORT_SYMBOL_GPL vmlinux 0x780904ad edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x781244f0 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7820c680 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x7845ec42 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x78500799 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x78573cba usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x785a93ee mtk_hw_set_value +EXPORT_SYMBOL_GPL vmlinux 0x786b2a9f blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x786ecd1e ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x78833f49 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x788963ae serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x788dcce6 pcc_mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x78a3a42a ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x78bdf85c dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x78bfd342 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x78c9eb80 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x78ddb76b dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x79035011 perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x790be0b9 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x7918d817 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x79197c99 tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7924fb62 meson_vid_pll_div_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x792b42d0 sprd_pinctrl_remove +EXPORT_SYMBOL_GPL vmlinux 0x79345cb9 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x7934aa08 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x793a67d7 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x793f98bc __tracepoint_rpm_return_int +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 0x79544dfe __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x795728f3 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x795ccdfb screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x7960eeac blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x7983ba83 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x798b7682 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x79a94a17 acpi_dev_get_first_consumer_dev +EXPORT_SYMBOL_GPL vmlinux 0x79bc3e6a regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x79bc842c usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x79ce61d2 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x79cebf60 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x79dd8cbf dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79edde3f acpi_set_modalias +EXPORT_SYMBOL_GPL vmlinux 0x79f1aa44 find_iova +EXPORT_SYMBOL_GPL vmlinux 0x79f697e4 lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x79fb4fa5 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a00bbea input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7a07b925 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x7a0dbb31 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x7a235201 of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x7a37bc45 fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x7a55302e ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x7a5a5025 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a73f26d fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7a7d1554 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7a8143c1 of_thermal_get_ntrips +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a98f4b4 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x7a9ade4e __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x7a9e4c23 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7aa205a6 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x7aa59a08 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x7aa9be8f devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x7abdbcf4 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x7ac10ad8 icst_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7ad2c64c k3_udma_glue_release_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x7ad3f5eb cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7ad998c8 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7ae9ca5a dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x7aea01b5 trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x7aeb1e24 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x7af52ebb blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x7afade51 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7afcb7db __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7afe324e halt_poll_ns_grow +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b273222 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x7b2b461d disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x7b3469bb device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x7b43c1dd ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7b4b3986 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x7b5452b8 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b64d7e5 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x7b6a6311 devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x7b6f9536 acpi_register_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x7b73bce8 sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x7b7694b1 of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x7b77b8dd efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x7b794233 edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7b803077 __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b8e2f5b pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b95aa92 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7b9e58be imx8ulp_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bc9c9b6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7bdeb563 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7bec5736 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x7c0334d6 dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x7c073fee dax_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x7c1b2223 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x7c282f37 of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c2ca26c usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7c31c270 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7c381461 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c476ef0 ahci_platform_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c5f3711 ioasid_unregister_allocator +EXPORT_SYMBOL_GPL vmlinux 0x7c6f1092 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7c7872a0 fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x7c7acf10 dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x7c7bac48 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x7c80bc07 em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x7c88b37b serial8250_do_set_ldisc +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 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cb803de btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7cbd1dc4 fsl_mc_bus_dpdbg_type +EXPORT_SYMBOL_GPL vmlinux 0x7cc9a4aa gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cfd6f6f subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x7d1bb1d4 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7d25a0aa pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x7d291d2d unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x7d32ffb8 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7d385ebb securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7d471321 zynqmp_pm_pinctrl_release +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d66019d regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x7d7ab44e clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7d7e55fb pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7d828689 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0x7d904f80 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0x7d9564b0 of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7da6fc5e pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7daf1842 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7db0b2e9 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7dcab45d cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x7dd5dda1 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x7dd7bfaa gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +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 0x7deb2be8 led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x7dec0616 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x7dec6bec icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7defc870 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x7e0879bf of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x7e0c44eb skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x7e10c8ba locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x7e1ad563 kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x7e348657 dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7e38ee53 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e3ca84c sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x7e3db21a pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x7e433fda kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e63de98 acpi_irq_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e714fe9 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x7e73f435 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x7e7a47c9 pci_acpi_clear_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e8d8619 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7e943b45 devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x7e96b4e0 bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x7e98ebf6 serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7e9998b9 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x7e9a6568 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7ea75c24 __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x7eac8586 iopf_queue_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7eb1795e __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ebbb5f6 ahci_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x7ec5bda5 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x7ed784bd pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x7edfaf9e usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7efdcc1c blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f035a76 bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x7f0d31fc fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0x7f21c1d8 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x7f38c25f balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7f46c8cc iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x7f4bbfe6 spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x7f5d9679 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x7f6cee89 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7f770786 clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f87c33e fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x7f9b1879 osc_cpc_flexible_adr_space_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x7f9e41aa mtk_pinconf_adv_pull_set +EXPORT_SYMBOL_GPL vmlinux 0x7fa820fe nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fa96509 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x7fc1276d devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7fcaf412 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x7fd07d7d gnttab_foreach_grant_in_range +EXPORT_SYMBOL_GPL vmlinux 0x7fd1a78c k3_ringacc_dmarings_init +EXPORT_SYMBOL_GPL vmlinux 0x7fd2d6d8 of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7fd3812a scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fdc5b83 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7ff087de __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x7ff19c40 zynqmp_pm_set_requirement +EXPORT_SYMBOL_GPL vmlinux 0x7ff5ffb8 mtk_eint_find_irq +EXPORT_SYMBOL_GPL vmlinux 0x80088230 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x800a0207 netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x80135182 k3_ringacc_ring_pop_tail +EXPORT_SYMBOL_GPL vmlinux 0x801acd58 imx_clk_hw_pllv4 +EXPORT_SYMBOL_GPL vmlinux 0x8035bed7 rockchip_clk_protect_critical +EXPORT_SYMBOL_GPL vmlinux 0x804755a6 of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0x80519fdb gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x8058a134 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x806327ea imx_clk_hw_cpu +EXPORT_SYMBOL_GPL vmlinux 0x807766ea usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x807b6fca cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x80852c16 fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80968366 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x80badff4 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80ca83d2 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x80cc7c45 pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0x80cd10df inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80dce25e __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x80dd6971 msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0x80e6b04f spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x80efc606 k3_udma_glue_request_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x811c6e3e raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x811df49e task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x811ffeb5 udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x8133f294 devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x81355fee regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x8147e3b8 devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x815a7159 serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8162761f acpi_fetch_acpi_dev +EXPORT_SYMBOL_GPL vmlinux 0x816347a6 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x816a41ca cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x816bd1ea devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x817927ce pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8179c324 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x81814a92 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x819d72cb klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x81a8330c regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x81a95884 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x81aa78d8 zynqmp_pm_aes_engine +EXPORT_SYMBOL_GPL vmlinux 0x81aff92e crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x81b03377 efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x81d10485 ioasid_free +EXPORT_SYMBOL_GPL vmlinux 0x81d491e9 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81e65ada tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x82039c99 dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x82055cfa pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x820697d1 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x82092899 badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x8220778d sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x8220a38e k3_ringacc_get_ring_id +EXPORT_SYMBOL_GPL vmlinux 0x82226c53 pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x82268231 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x82372b8a pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x823eae06 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8245dd53 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x824b6536 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x8253fb2a sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x82588e53 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x825fe342 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x827e61f8 acpi_has_watchdog +EXPORT_SYMBOL_GPL vmlinux 0x828e22f4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x82948b19 devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82a80545 __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x82aa01bb dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0x82b64230 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x82bbf30b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x82c01d57 trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x82cab4d3 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x82ceeca9 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e3797d crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x82e684e5 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x82f94689 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x83272c63 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x8349a895 nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x8353dfff acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0x835544d7 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x836e4612 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x83750b2e gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x83772f7d access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x837e32ec rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x837f6371 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x839d8a76 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x83a6b4fe ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x83a7b718 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x83ac3c60 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x83bc1dcb crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x83be8fee skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x83c438ba pci_acpi_set_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x83c8de07 dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x83d2bcd9 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x83e4587e platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0x83fa121f tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x84125c39 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x8414a8ca kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x84168be7 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x841ecca7 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x8422af90 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x8425b9c3 xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x842defeb tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x842f046d usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x843f92b9 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x84428ee2 of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0x844fde7b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x84502a47 blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x84584bc6 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x845dbf3b scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x845ffdee serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x84615389 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x8462cb62 atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x8465d7bd fsl_mc_bus_dpaiop_type +EXPORT_SYMBOL_GPL vmlinux 0x8466a6c2 devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x849e3fe8 sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x84a053cb tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x84a8d0eb of_changeset_revert +EXPORT_SYMBOL_GPL vmlinux 0x84c378b2 inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x84d165c1 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x84d7f39b of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0x84e7918c vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x84ef27f5 synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x84f72614 srcu_torture_stats_print +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 0x851fe124 __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x852c8361 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x853d8999 uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x85511ed4 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x85540ebc nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x85564bda crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x85575062 debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x8565626c spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x857729e2 acpi_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x85862277 ioasid_find +EXPORT_SYMBOL_GPL vmlinux 0x858a2ec5 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x858f0a8e scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x85935a61 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x85c54b61 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x85d29fb9 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x85dd0215 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x85e5178e irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x85eb2569 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x85eed1be iopf_queue_discard_partial +EXPORT_SYMBOL_GPL vmlinux 0x85f226df usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x85f27ea9 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x862bb17b linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x862d32d4 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x863c42ab sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x863d99da crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x864f49c3 dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x86527094 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x865ab4f1 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x865b6880 kvm_write_guest_offset_cached +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 0x8683922d watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x868481dc pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x86857e7c dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868ddcbf mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x869182e1 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x869ecb86 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x86a65f93 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x86a6e353 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x86abc743 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x86ad8064 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x86aeca02 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x86b13d2a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x86b1ceb3 tegra210_set_sata_pll_seq_sw +EXPORT_SYMBOL_GPL vmlinux 0x86c02001 ipi_send_mask +EXPORT_SYMBOL_GPL vmlinux 0x86c23445 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x86c43a8c cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x86dda6ef rtm_getroute_parse_ip_proto +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 0x87302024 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x8746b2ab sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x874ed91b metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x87545196 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x875f8b11 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8760cbeb perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x876a96a8 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0x876fb8ac usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x87773010 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x878e38ec usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x87908767 xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x87ab58d2 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x87ac7411 __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x87c607c2 mtk_paris_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x87d38bda led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x87d5dc6a pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x87e506c6 xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x87f655e5 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x880a0991 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x881df5cf __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x88476f9f devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x885c6541 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x8877cb1b devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x88793f44 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x88836573 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x888c5be5 irq_bypass_register_consumer +EXPORT_SYMBOL_GPL vmlinux 0x888ca7a1 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x889b17fd blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x889e7a50 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x88a61674 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x88bc122d rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x88bc6f47 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x88cc1490 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x88cce6a0 xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x88cd7a9a k3_ringacc_ring_get_occ +EXPORT_SYMBOL_GPL vmlinux 0x88da1e50 platform_set +EXPORT_SYMBOL_GPL vmlinux 0x88de309c synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x88edbd4b pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x88f455e3 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x89003e0f acpi_dev_state_d0 +EXPORT_SYMBOL_GPL vmlinux 0x890468f7 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x890f4f97 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x890fa0fa btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x89202c39 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8927bf5b ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x892ae4ca tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x89366f19 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x894609f3 __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x8949970f nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0x8954dc8e __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x8955e52f lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x895e444d scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x8976beb6 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x897ff4f0 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x89802b67 msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x8982a005 pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8996a627 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x899abafb of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x89a306ed pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0x89a4476d HYPERVISOR_multicall +EXPORT_SYMBOL_GPL vmlinux 0x89aae126 of_property_read_variable_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x89ae7aa0 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89bec8b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x89c429e4 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x89cf30df mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x8a083e39 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a086a44 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x8a0be09c crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a1801ed usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8a274a16 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8a39740e crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x8a3c15f5 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x8a3d3539 is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x8a3f84ba linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x8a45a555 acpi_unregister_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x8a521ee9 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x8a554a36 mpc8xxx_spi_strmode +EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a78972b ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x8a891f3e fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x8aa2c72e gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x8aa7211b tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x8ab27e72 pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x8ab6e4da nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac2d08a sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8ad6d1ea __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x8adf05d1 mtk_pinconf_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x8af32cce rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x8b051a4d xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x8b0adc4a crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x8b11f4ec __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8b149c36 clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x8b293861 cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x8b330e7d icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0x8b35a569 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x8b3947df __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x8b515a1a bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x8b582a39 spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0x8b650752 mtk_mutex_release +EXPORT_SYMBOL_GPL vmlinux 0x8b65a9f1 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8b69099e device_move +EXPORT_SYMBOL_GPL vmlinux 0x8b6a5a7c iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8b7a698b __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8b85050d pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x8b89f01c hv_ghcb_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x8ba0eb15 hv_set_vpreg +EXPORT_SYMBOL_GPL vmlinux 0x8ba25edb dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x8ba5afe9 HYPERVISOR_memory_op +EXPORT_SYMBOL_GPL vmlinux 0x8ba63ea7 mtk_pinconf_bias_set_combo +EXPORT_SYMBOL_GPL vmlinux 0x8bbaeefc dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x8bc3e1b5 devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x8bd037e7 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x8bd74aff fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x8be23f1f virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x8be85ec1 fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x8bec5c68 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x8bedd8f5 __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x8bef3ff2 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x8bf2f3a1 irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0x8bf46e54 bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8bf5f379 k3_udma_glue_release_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x8bfeddf7 battery_hook_register +EXPORT_SYMBOL_GPL vmlinux 0x8c012b6c cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x8c0215f2 pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c047a33 devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x8c0afec3 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x8c0dc9e7 task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x8c11fc79 mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x8c1727ec vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x8c2d50f6 dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x8c389f73 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x8c484409 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x8c612a96 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x8c743fb6 reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x8c796a8c mtk_clk_unregister_plls +EXPORT_SYMBOL_GPL vmlinux 0x8c7f6cdc acpi_get_and_request_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x8c89e3b8 usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x8c8d4ecb virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x8c96f69b sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x8cb5a38e k3_udma_glue_rx_flow_disable +EXPORT_SYMBOL_GPL vmlinux 0x8cc56ea8 phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x8cc5ff3a crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x8cd2b5a5 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x8cd2b679 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8cd36bdb of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0x8cd6a885 xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x8ce17289 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x8ce2d446 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x8cf29b1b dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x8d0abf3a __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x8d14c392 pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d30bf1e l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x8d442e8b dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x8d457ef1 tegra210_clk_emc_attach +EXPORT_SYMBOL_GPL vmlinux 0x8d522714 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x8d7bfaea regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x8d7e3373 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x8d7f09c2 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x8d908ebf power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x8d9539d4 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x8dafdded lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x8dbf7aaa privcmd_call +EXPORT_SYMBOL_GPL vmlinux 0x8dc0457b pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x8dc533ce io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x8dcca927 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x8dd218b0 icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x8dd2b4a7 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x8de5c300 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x8de6817a acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x8de7251d pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x8dfcce06 kvm_vcpu_halt +EXPORT_SYMBOL_GPL vmlinux 0x8e16419b trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x8e44823a sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e48b0f9 dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x8e492fe5 mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x8e4b63a6 hisi_clk_register_gate_sep +EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x8e4f64b7 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x8e5d4dc9 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e6fa8b5 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x8e7f0a9c acpi_get_phys_id +EXPORT_SYMBOL_GPL vmlinux 0x8e81e7c6 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x8e822094 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x8e8d507d pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x8e92f7c4 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x8e99f2cb ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8ead800c user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x8eaf6fb8 usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0x8ebc0a5c gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x8ee8adf9 phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x8eec19bd __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x8eec7273 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8ef459e5 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x8efbe115 scmi_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8eff8fe5 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x8f08847d serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x8f0b781d iova_domain_init_rcaches +EXPORT_SYMBOL_GPL vmlinux 0x8f313b3f __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x8f33c92f dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x8f3969e1 zynqmp_pm_clock_getrate +EXPORT_SYMBOL_GPL vmlinux 0x8f3ab2ae trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x8f4658a2 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x8f4ba4ff ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x8f5a4ad6 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x8f5aad8d sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x8f65ccce crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x8f691db4 bind_interdomain_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6d3731 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x8f726e0b wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x8f786bee fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x8f7b1055 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x8f7bd0a6 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x8f96a974 extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x8faa66ac usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8faa800d acpi_cpc_valid +EXPORT_SYMBOL_GPL vmlinux 0x8fb18e76 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x8fb4bf32 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x8fbd3597 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x8fc10cfa fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x8fc12788 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x8fdf926f fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x8ff01cd7 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x8ff2bc5e device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x8ff4a682 dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ff7ea2f devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x8ffe792f tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x90089b23 gnttab_unmap_refs_sync +EXPORT_SYMBOL_GPL vmlinux 0x9017024c ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x902b2460 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9038c205 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x90475241 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x90611bd5 acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x90688bcd devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x9075e7d0 regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x907c7e33 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x907ca5fe pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x907d8497 virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x9093a1c7 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x90968400 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x90a0061e spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x90a9d8cc hv_is_hyperv_initialized +EXPORT_SYMBOL_GPL vmlinux 0x90aadf51 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x90aaeff7 of_css +EXPORT_SYMBOL_GPL vmlinux 0x90ad66b1 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x90b763f1 HYPERVISOR_console_io +EXPORT_SYMBOL_GPL vmlinux 0x90b897f0 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x90c0d88f __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x90c8498c apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x90d937b4 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x90e0aaa8 of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x90e6ff1d of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x90ea3def shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x91072577 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x910bdf6b trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x910c7689 pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0x910e7ae0 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x91245cb1 kvm_vcpu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x912987f9 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x9131febc device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x913de8cb nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x9151061f vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x91616bb9 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x916c814a pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x91866a39 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9190552b ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x919183c6 kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9194e18f xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x919a6abb synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x91a7852b ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x91a9dc85 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x91ae48a2 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x91bbd880 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x91bedbd9 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91c9313c acpi_gpio_get_io_resource +EXPORT_SYMBOL_GPL vmlinux 0x91cedf17 mmput +EXPORT_SYMBOL_GPL vmlinux 0x91dd692b ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x91e30809 HYPERVISOR_vm_assist +EXPORT_SYMBOL_GPL vmlinux 0x91e541fc ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x91f095a7 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x91fd9c4d cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x920a37d8 vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x920e8820 ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x92171c9f security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x92304850 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x923bed22 phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x923de5c7 i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0x923e42aa sysfb_disable +EXPORT_SYMBOL_GPL vmlinux 0x9241b1a1 rockchip_clk_register_branches +EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x9242b86c kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x924988de kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x924a634d xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92513e47 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x925c34dc dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x927487ea zynqmp_pm_read_ggs +EXPORT_SYMBOL_GPL vmlinux 0x9276ad8a espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x927bdb6e bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x927e0705 dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x92853349 uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x92853b37 bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x928a19f1 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x928a331e devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x928ebcd4 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x929e4ff6 xfer_to_guest_mode_handle_work +EXPORT_SYMBOL_GPL vmlinux 0x92a9f2d0 metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x92b8c78b hyperv_pcpu_output_arg +EXPORT_SYMBOL_GPL vmlinux 0x92bdb9e0 irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0x92c18752 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d827f5 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e45b16 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x92e8e9ab fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x92eba824 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x9306f69d fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x930ab533 k3_ringacc_request_ring +EXPORT_SYMBOL_GPL vmlinux 0x9320d349 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x9324e838 fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x932c8d7a linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x93303af1 irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x933f75e0 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x93657caa crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x9366d881 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x93684bfe tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x936e570c regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x937d83a5 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x93801904 nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0x9382301a ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x938915dd regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x9395e506 vcpu_put +EXPORT_SYMBOL_GPL vmlinux 0x93a20521 memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x93aa4ae2 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x93c7edeb usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x93c81469 ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x93cd74bf devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x93cf659f cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x93d1d424 gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x93d2f1f6 xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x93e346cc do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x93ff50de crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x94152b87 netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x94152f73 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x9425bb34 nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x94349711 dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x9436e405 memory_group_register_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x943f9352 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x94565a4d fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0028 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x947344c0 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x94776f3a gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x947fcd96 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x9488a325 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x948cf97a dm_put +EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a2cc9d gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x94bc380a spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x94e453b2 fsl_mc_bus_dpdcei_type +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 0x94f93f19 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x951235cc crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x9516a550 rockchip_pcie_enable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x952032fd tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0x9524b69d ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x953a7af7 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x9557b943 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95613626 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x95630a7e badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x956b123d pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0x957857ad virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x957ecd26 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x95807a0d devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9590728b class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x959adab9 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x959ec5f5 call_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x95a0c3b9 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x95a6725f of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x95bc8ae7 fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c2a4c1 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x95cd53ae devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x95e102ab tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x95e544e3 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x95ef1ccc dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x96133850 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x96163e51 dpbp_get_attributes +EXPORT_SYMBOL_GPL vmlinux 0x9619a6f7 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x9621d738 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x96230bee icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x962c8ae1 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x96430937 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x964b9fc6 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x9653e267 dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9667888d usb_string +EXPORT_SYMBOL_GPL vmlinux 0x966957dd nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x966a3466 pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x96737c87 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x968a53e1 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x968c89ae proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x968f9a23 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x969e16e2 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x969eaf5a raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x96a0a027 acpi_device_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x96a3dca4 mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x96a55fda list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x96aa1a2f fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x96af459e syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x96cfa12e tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x96d2b33d usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x96e4a50a regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x96e52472 cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x96f9a01b __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x9702bd67 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x970e721d usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x9715ab75 create_signature +EXPORT_SYMBOL_GPL vmlinux 0x9716c30e fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x9719bb3c sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x97286734 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x973958f5 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x975b6b50 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x976304ed ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x976b436f pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x976b5d8e arm64_mm_context_put +EXPORT_SYMBOL_GPL vmlinux 0x9776bd61 dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0x977be5c7 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x977db5e5 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x97a7cd7a fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x97b1ad1f pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x97c0a288 of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x97c1b9b3 irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x97c25e96 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x97c4281d mtk_clk_gate_ops_setclr +EXPORT_SYMBOL_GPL vmlinux 0x97c9d99d lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x97ca7695 pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x97d8c505 samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97f033a3 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x97f81d14 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x98143788 pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x9826acda irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x9833ad57 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9843f501 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985453e1 lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9854dfe6 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x9860c4db kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x986b6a09 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x98759da8 dpcon_set_notification +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987b6967 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x988b5016 devm_tegra_memory_controller_get +EXPORT_SYMBOL_GPL vmlinux 0x988e4dce gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x98b142fa blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x98c59274 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x98ccd968 split_page +EXPORT_SYMBOL_GPL vmlinux 0x98d66950 tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x991f0f89 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x99354bc6 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x9955371a usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x997604f2 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x997c550a preempt_model_none +EXPORT_SYMBOL_GPL vmlinux 0x997d2da2 dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x998d79d6 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x99b19460 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x99d53c63 battery_hook_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99dd730c page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99efafeb pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0x99f018c4 nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x99fe2c21 pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x99ff50a6 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9a0c5c7b rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a23ea6b alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x9a2a487c bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x9a44abad uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x9a4cb5b4 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9a58dd2d trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x9a5dce5c rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x9a5f031e of_reserved_mem_device_init_by_idx +EXPORT_SYMBOL_GPL vmlinux 0x9a6bf241 pci_bridge_emul_conf_write +EXPORT_SYMBOL_GPL vmlinux 0x9a751191 hisi_clk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9a97ce98 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x9a9bd88d mtk_mux_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aa72206 __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x9aacf4e0 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac83607 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x9add7100 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x9ade767e da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x9ae12e17 __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9ae800bb sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af35c87 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x9af49514 icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x9b0eaa52 tegra210_xusb_pll_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0x9b164576 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9b19eae9 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x9b26af7c usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x9b4cc513 nf_route +EXPORT_SYMBOL_GPL vmlinux 0x9b4f6881 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x9b555c8c pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x9b557749 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x9b5f74f4 fuse_dax_cancel_work +EXPORT_SYMBOL_GPL vmlinux 0x9b651e51 xenbus_teardown_ring +EXPORT_SYMBOL_GPL vmlinux 0x9b698c42 ioasid_set_data +EXPORT_SYMBOL_GPL vmlinux 0x9b6a9b82 serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b70c6ff tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x9b7dcd85 meson_clk_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x9b9071cb get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x9b92d16e pinctrl_gpio_set_config +EXPORT_SYMBOL_GPL vmlinux 0x9b94d6d1 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x9ba0d7d8 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9ba9584b i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x9bb2d159 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x9bc292c5 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x9bcdae87 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x9bd63ab7 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x9be1d284 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x9be30d27 mhp_get_pluggable_range +EXPORT_SYMBOL_GPL vmlinux 0x9be33ebd relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c0622e7 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x9c146115 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x9c149893 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x9c156dc3 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0x9c19c413 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x9c2151e4 devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x9c2affc1 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x9c311926 sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x9c347728 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x9c43a7c5 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9c448d8d tegra210_put_utmipll_out_iddq +EXPORT_SYMBOL_GPL vmlinux 0x9c4c9926 devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c5c1811 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x9c62e6c7 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x9c6587da dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x9c77748a sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x9c803020 usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x9c985893 linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x9cb0c997 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0x9cb5af34 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9cb9f3cb devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x9cbedc09 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x9cc2b604 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd5b6d5 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x9cd7551a rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x9cddddc8 thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x9cde3175 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9ceb6181 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x9cf37c44 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x9cf5e39b pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x9cfd2a2e regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9d0f90ca devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x9d146418 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x9d18c65f clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x9d217c59 clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x9d2f49ef __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x9d3bbbd8 qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x9d49de1c dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x9d555951 wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x9d5b38fc led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x9d9910a1 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x9d9e686d component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x9da38aba ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x9da86868 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x9dab4c94 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x9db798d7 dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x9dd75b51 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9de31b2a phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x9de88bc8 __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9dedc3e2 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x9e005e6f cppc_get_perf_caps +EXPORT_SYMBOL_GPL vmlinux 0x9e1265a6 bind_interdomain_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x9e167452 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x9e197753 mtk_pinconf_adv_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x9e1a03bb netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x9e1ef6ca skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x9e2198c9 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x9e2d01ae devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x9e38c2fd sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9e3c70fa bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e4dd02f iommu_sva_alloc_pasid +EXPORT_SYMBOL_GPL vmlinux 0x9e6d8f16 md_start +EXPORT_SYMBOL_GPL vmlinux 0x9e739d1d da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x9e7fe5bf gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x9e880054 dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x9e9b913d __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x9e9e407e led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x9eb6e582 of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x9ec51551 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9edb957f elv_register +EXPORT_SYMBOL_GPL vmlinux 0x9ee2e77e regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9f025720 devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x9f0fe903 regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x9f14e36c ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x9f23508c blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x9f2a960d iopf_queue_flush_dev +EXPORT_SYMBOL_GPL vmlinux 0x9f3b5719 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x9f4b4b70 gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x9f4c4aa0 spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x9f511029 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x9f517986 HYPERVISOR_hvm_op +EXPORT_SYMBOL_GPL vmlinux 0x9f517ef3 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9f56c4b9 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x9f594cc1 iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x9f5a1e7b device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x9f5a870a find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x9f5c6dc2 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x9f615d5b clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x9f6aba9a rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x9f6f2cc1 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f7a5ef4 vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x9f80f4b7 fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9f8703ac irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x9f8852b0 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f9c7781 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x9fa8df65 ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x9faeff4b __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9fb1a90d of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x9fb7f0c6 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fbfebab erst_write +EXPORT_SYMBOL_GPL vmlinux 0x9fc5e944 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x9fc72d5f of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd6672b ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x9fda1ccf sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fe131f1 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x9fe6a630 vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x9fe899b7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fec33cc free_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x9fefc3e6 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0x9ffb5d09 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa015a8b0 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xa017e764 msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0xa01a8d9b nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0xa01db28c efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0xa040bad9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xa0455b2d led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0xa047d101 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa04adb61 dprc_get_obj_region +EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xa05219aa devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0xa053923d phy_get +EXPORT_SYMBOL_GPL vmlinux 0xa058abdf crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xa05ac2e8 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xa05b3fa9 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xa071701b sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xa071c0cd tegra210_xusb_pll_hw_control_enable +EXPORT_SYMBOL_GPL vmlinux 0xa07b6af7 mtk_pinconf_bias_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0xa089c6dd acpi_subsys_freeze +EXPORT_SYMBOL_GPL vmlinux 0xa0920053 genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0xa092ac47 __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0xa0c70676 dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0xa0f86be1 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xa0f90cfd platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa0fc9d43 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xa0fef7d9 fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa11d62f8 spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xa12af89e usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0xa12e14ea usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xa1366ac8 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xa142f21e usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0xa14fd5eb crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa16373f4 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa16cbfba addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0xa16ceb80 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xa1745648 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xa18b485c devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0xa18b7ec1 pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0xa18f796f imx_check_clk_hws +EXPORT_SYMBOL_GPL vmlinux 0xa1935971 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0xa1ba5713 clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa1bb6643 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xa1c4231f kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0xa1c46eb2 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xa1c50330 udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0xa1d8004a videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xa1e82373 meson_axg_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0xa1ef7963 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xa20334f0 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0xa205f608 fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xa21f2ce7 clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0xa22df227 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0xa2362b38 sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0xa23897f1 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0xa2448b9b blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0xa24d3dec crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa2500ef6 __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xa268f5c1 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa276914c fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0xa28dab13 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0xa28f40bd __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa29b628a sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xa29caa66 fsl_mc_portal_reset +EXPORT_SYMBOL_GPL vmlinux 0xa2aab67e genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xa2af54b3 irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa2b0820d __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2b99209 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa2f7487f hv_is_hibernation_supported +EXPORT_SYMBOL_GPL vmlinux 0xa2f9fce1 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xa2fc2384 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xa3194ec9 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa32c38fb input_class +EXPORT_SYMBOL_GPL vmlinux 0xa33d69c7 serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0xa33fd46f hv_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xa3415f7e iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0xa346bdef irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0xa36b4b56 usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0xa36f50fb is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xa38c1436 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xa39a627b __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0xa39f6976 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3b1bd36 tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3c206db devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xa3c73d05 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xa3cb51d6 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xa3cff60e fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0xa3d5ea0a __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xa3dcb681 zynqmp_pm_fpga_load +EXPORT_SYMBOL_GPL vmlinux 0xa3e9d678 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa3f53c9a pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0xa4031b7f sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa4278f64 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xa44e9223 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0xa452c462 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0xa45d44fc zynqmp_pm_get_pll_frac_data +EXPORT_SYMBOL_GPL vmlinux 0xa4756daf i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0xa47607cb shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0xa47b0d2a virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48ee962 extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0xa49f7616 tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4b2daff tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0xa4c085f8 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0xa4c916b0 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xa4cf6ed5 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0xa4e22108 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0xa4e3dc18 nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xa4e8b139 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xa4e9e955 usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa4f2a2ed acpi_irq_get +EXPORT_SYMBOL_GPL vmlinux 0xa4f58ebf devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0xa4fd00dc phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0xa505f4f0 fsl8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xa515adee spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0xa5177bcf pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0xa517f884 tegra210_plle_hw_sequence_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa52a54f2 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0xa531471e clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0xa53557c8 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0xa554c011 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xa55af88b __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa56664ef poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xa57285f0 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xa5a0a0e0 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xa5ba80f3 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0xa5bda8a1 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0xa5c5b01d scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xa5cb8f7d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xa5cbbc5a power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0xa5d0d4c5 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0xa5d1f4b8 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0xa5d7c388 pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5fa9934 bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0xa612d643 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xa654c911 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xa65bdc5d power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xa65f3c8c __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa66d4b54 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0xa67a29b9 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xa689e448 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa695be3f blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0xa69dc4e9 devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa6a088b7 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0xa6a0ddfb clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0xa6ad74ec crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0xa6af1e35 __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa6b06f65 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xa6b0f2be rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6b5ee5b __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0xa6b7de35 ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0xa6b9ff16 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xa6c98131 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa6dc0d97 tegra_read_ram_code +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e45e51 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xa6ee15ca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6fed9d8 disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa71ce6d7 devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0xa731f387 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xa73a3a38 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0xa73c3b08 mtk_mutex_remove_comp +EXPORT_SYMBOL_GPL vmlinux 0xa757d849 iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0xa7685969 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xa77ca5ac of_thermal_is_trip_valid +EXPORT_SYMBOL_GPL vmlinux 0xa788700b copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xa7986615 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa7a35e0d bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0xa7a448a9 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xa7a6f3b8 mtk_eint_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xa7a8c843 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7aaeac6 mtk_clk_register_factors +EXPORT_SYMBOL_GPL vmlinux 0xa7b16c29 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa7ba7b78 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0xa7bccfa5 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xa7d8c7d2 nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0xa7ddeab8 rockchip_pcie_get_phys +EXPORT_SYMBOL_GPL vmlinux 0xa7e98c7b debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xa7f10002 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xa8043f17 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xa808cf95 sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0xa81f1757 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xa824aa4f vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0xa83a377e of_get_named_gpio_flags +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa85aa0e3 bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0xa86a9fae gnttab_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0xa882752a __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xa882acb6 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa895a80c pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0xa898d04d host1x_context_device_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0xa8a5db6a regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xa8a6364c xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0xa8a8e266 kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa8b1413d fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xa8b52793 sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0xa8c29f49 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa8d2cee9 dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0xa8dc6c4c dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0xa8f04ecc blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xa8f34f91 __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xa8fdc976 dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0xa905592f xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa9058fa5 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xa917c083 __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xa9194c60 irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0xa92a94b8 kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0xa93291e3 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xa935c6e1 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0xa93c8547 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0xa93faef3 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xa9464009 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xa95b5c77 hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0xa95cd87e get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa9673e78 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xa96e8b4e hv_setup_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9766ccd ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xa97940f0 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xa9970ea6 rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0xa9993377 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0xa99b8e70 __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xa9aaea3a divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xa9c05ac0 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xa9d0139c regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa9f0ebec sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xaa09abfa tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0xaa199ecc i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0xaa1d1e6b xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0xaa4d9ba7 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xaa597e37 skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xaa6949c4 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0xaa6f466d vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xaa7bf54a rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xaa88eb65 extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0xaa891f64 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0xaa8bef8e dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0xaa951697 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0xaa971d3a phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0xaa9a95d2 usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0xaaa2a60e regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaae89d0 __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xaac190f1 devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xaac2e94e regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xaacc5d10 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xaad46729 scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0xaada2e03 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xaade886f fsl_mc_bus_dpmac_type +EXPORT_SYMBOL_GPL vmlinux 0xaade9a6f key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xaadfe7ce xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xaae25962 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xaaed5e4e pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xaaef53e2 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xaafafbff rockchip_pmu_unblock +EXPORT_SYMBOL_GPL vmlinux 0xab060841 zynqmp_pm_query_data +EXPORT_SYMBOL_GPL vmlinux 0xab13e52a meson_clk_mpll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xab1e0e93 hv_setup_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0xab36ddac key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0xab38ac04 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xab3964c7 clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xab435a18 blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0xab46112f nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0xab496bf9 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0xab6ef2dd of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0xab7670b4 dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0xab7c91dc devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0xab7f853d mtk_mutex_prepare +EXPORT_SYMBOL_GPL vmlinux 0xab9a201c __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0xab9ae2a2 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xabaedcdd devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xabb4bbca check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0xabb769c0 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabd45848 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xabdd485d driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xabde870b xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xabe22300 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xabf618da regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xabfe673d pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xac074216 of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xac092fd8 pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0xac0ee1d0 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xac0ef9a2 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0xac3833fb of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xac46f970 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xac508502 rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0xac580f89 usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0xac5e6b76 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xac73cdfa device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xac7ad735 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0xac8113ab pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xac84aaef software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xac8f7c5a i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xac938353 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xaca514f6 shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0xacac6206 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xacaeea59 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xacb4d88c clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0xacc089be da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xacc977ac alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaccf8b66 ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xacd5e622 of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xacdf7e2e preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xace46261 sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0xacf906a3 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0xad053d9d dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0xad08dea1 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xad0ac0e1 tegra_xusb_padctl_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0xad0ca8d7 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xad199908 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xad1e824a iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0xad253039 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0xad25602f __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xad29b68f hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xad30a569 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xad3604d8 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0xad395dd9 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0xad39e69f sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0xad42dff8 __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xad46afca regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad4f8e56 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0xad5737fc efivar_init +EXPORT_SYMBOL_GPL vmlinux 0xad5c294d cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xad645234 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad767fec rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xad76a3f0 __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xad7c9d72 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xad83ce29 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0xad95b91c devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xad96c0b3 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xad9f018e mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0xadca45de edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xade5339b hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0xadf6d7fb bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0xadf9c1b3 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0xae0d9ada query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0xae0db2d6 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xae0ecf40 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xae2f1257 device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xae4d186d irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xae56ae24 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xae581fa8 unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0xae585bf0 mtk_pinconf_drive_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xae64f1dd __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xae66224d dev_pm_opp_of_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae9e1d89 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xaea7f1ef devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaeaf97fa security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xaeb8b601 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xaec4868e clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xaecfa478 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xaed62cc2 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xaee01828 trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0xaee0fe18 mtk_mux_gate_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0xaee30c6f dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0xaef1c287 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xaefb761e xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0xaefbc4e6 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xaf076aec nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0xaf0afd28 blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0xaf0b6ba7 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0xaf1d8d35 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0xaf26fa93 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf3a44e9 __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xaf3e524d get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xaf4014ff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0xaf551ce4 fsl_mc_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0xaf65346d blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0xaf6c1106 bgmac_enet_suspend +EXPORT_SYMBOL_GPL vmlinux 0xaf6c3d4c devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xaf793668 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0xaf80e8a2 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaf852873 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xaf88a71d vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xaf8944ba iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0xaf8dcfaa user_read +EXPORT_SYMBOL_GPL vmlinux 0xaf96ac07 acpi_subsys_suspend +EXPORT_SYMBOL_GPL vmlinux 0xafaf32da lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0xafb07262 __pfn_to_mfn +EXPORT_SYMBOL_GPL vmlinux 0xafc8a645 devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0xafd826f7 __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xafe4766c devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xafeb58c1 __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xb0075655 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xb0099f79 topology_clear_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0xb00e7eaf security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xb02a95d3 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb034b24b efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xb03585d9 skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0xb049a294 __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xb0531ce6 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xb05b68d5 zynqmp_pm_reset_get_status +EXPORT_SYMBOL_GPL vmlinux 0xb05f27b6 perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0xb06cfc68 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0xb077e70a clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xb07a5e83 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0xb08a22a3 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xb097e3b9 acpi_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0xb098b6f3 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0xb0aade9c pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c49802 xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0xb0c5adb4 of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0d73555 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0xb0e022c4 i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0xb0e8e671 xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xb0f9a457 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xb109fbcb ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xb11218c7 mtk_pinconf_adv_pull_get +EXPORT_SYMBOL_GPL vmlinux 0xb11c8fbc __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0xb12f877e blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0xb139d5e7 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0xb1441dc1 validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0xb1673c1e device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb17a8135 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0xb17fa477 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1847cb4 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xb18a0024 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0xb18e2f7e skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0xb1a69354 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb1a6aaf7 ahci_platform_disable_phys +EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1dbebd4 rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1ec4c07 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xb202f0d7 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0xb2047908 pci_bridge_emul_init +EXPORT_SYMBOL_GPL vmlinux 0xb20535e4 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0xb206f969 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xb2176f82 bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xb21d00c6 hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb221dd29 xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0xb230c93c usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0xb268bd2f switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0xb26c7fe5 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xb271c066 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL_GPL vmlinux 0xb27d4c12 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xb27d5444 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb27ecda5 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0xb2832e8d acpi_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb29533ee zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0xb2a62059 blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2ceed29 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xb2d0b2a4 tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0xb2e009b4 crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2e77e65 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0xb2fdfabd tegra_bpmp_transfer +EXPORT_SYMBOL_GPL vmlinux 0xb30083d9 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb30b2bda preempt_model_full +EXPORT_SYMBOL_GPL vmlinux 0xb31811f4 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xb36c9ea8 thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0xb39e90a5 genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0xb3acad14 of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0xb3cad082 devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0xb3cb0a1e xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb3cbf289 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0xb3cc6217 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb3ea88f0 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3effab3 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xb3f1058b cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xb3f59ed8 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xb3f8e3e2 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3ff682a devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xb40d673e zynqmp_pm_pinctrl_request +EXPORT_SYMBOL_GPL vmlinux 0xb41ad62d ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0xb42277f4 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xb42ec303 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb43de801 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xb442811e perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xb4429b64 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xb447a80d init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb4557f50 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0xb45fe2aa pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xb4745a5b regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb48f0638 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0xb48f3499 xlnx_register_event +EXPORT_SYMBOL_GPL vmlinux 0xb494fb4c ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xb4a006d3 extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0xb4b54cb7 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c197b6 ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0xb4c24edc serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xb4c66e72 dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0xb4e8995d bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4eda0da ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0xb4f2f4d2 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0xb501b2df nd_cmd_dimm_desc +EXPORT_SYMBOL_GPL vmlinux 0xb5086458 devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0xb51708f0 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb520eb79 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb52d25d5 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xb5344da2 dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xb547e0ea tcp_done +EXPORT_SYMBOL_GPL vmlinux 0xb54ee647 platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb55de460 HYPERVISOR_dm_op +EXPORT_SYMBOL_GPL vmlinux 0xb5603df2 rockchip_register_restart_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb56202cd irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xb5761af0 xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0xb57758a5 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xb577a2c1 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0xb581fa95 devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0xb58c1bb2 dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0xb5a83e35 gnttab_setup_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xb5a8c226 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb5acf2e7 spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0xb5b0d035 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xb5b3e5a5 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xb5b6fb04 hv_get_vpreg +EXPORT_SYMBOL_GPL vmlinux 0xb5bad81e __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0xb5cb0217 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xb5dd3844 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb5e143d0 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0xb5e1c5c4 kvm_write_guest +EXPORT_SYMBOL_GPL vmlinux 0xb5f570b8 get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0xb5f88314 iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0xb606243d dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0xb6083d17 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb60e8739 extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xb610b5d9 ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0xb6230dfe of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb62d6187 dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xb6357e53 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0xb655f91b pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xb65fadfa cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb65fed4f kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0xb66e022e da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0xb68a7d29 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xb68b8607 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xb6a2a4bf clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xb6c0fca2 devm_acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0xb6d27de6 __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb6dd8aed __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xb6df093a usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6ef4702 debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xb6f9ac23 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xb6fc53d4 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xb702f248 switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xb709a50a icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb729d4a2 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xb72a491e clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0xb7329c06 clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0xb73713d7 nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0xb73776f5 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xb73e37e3 devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb74c31cd wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0xb76896e8 generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0xb76b3abf crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xb782c1a3 hv_get_vpreg_128 +EXPORT_SYMBOL_GPL vmlinux 0xb786bf75 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xb78d7e7d __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xb798899d blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xb79c3725 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0xb7c1624f xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7cc0cff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0xb7d453c4 dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0xb7f37469 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xb7f990e9 rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xb8106ee6 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0xb814a8fe icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0xb81e09f0 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xb82241cb devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0xb825e997 dprc_scan_container +EXPORT_SYMBOL_GPL vmlinux 0xb8273d0b __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xb829193d ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xb83097b5 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xb8367178 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0xb83e17d6 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xb8449bfa metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb85042e5 gnttab_free_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0xb85b38d9 mtk_free_clk_data +EXPORT_SYMBOL_GPL vmlinux 0xb86c83b0 pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xb870c815 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xb878f65b gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0xb87f40fe cppc_set_enable +EXPORT_SYMBOL_GPL vmlinux 0xb886cf84 usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0xb8891c8a blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xb88bc47e arch_apei_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb894835e tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xb8993fac __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb8a93c82 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb8adbcba blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xb8b1141f tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0xb8b8c4f0 ti_sci_release_resource +EXPORT_SYMBOL_GPL vmlinux 0xb8c1f26b serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0xb8d94a1b kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb8dbd6c7 fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0xb8dbdd9b dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0xb8e17a8d wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xb8e31e23 dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xb8e7afd7 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb8f11603 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb8f30059 soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0xb8fb3854 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xb9018c8f fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0xb911e21e sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0xb9175787 devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb932a44f acpi_storage_d3 +EXPORT_SYMBOL_GPL vmlinux 0xb93e6039 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xb940d90d hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0xb94201ff fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xb94b391a edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0xb96d4e26 dprc_remove_devices +EXPORT_SYMBOL_GPL vmlinux 0xb97cce84 l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xb99ac898 genphy_c45_baset1_read_status +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 0xb9cdb4ca rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9ef6ef2 fsl_mc_object_free +EXPORT_SYMBOL_GPL vmlinux 0xb9fbead9 desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xba057786 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0xba067bc1 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0xba141caf mtk_eint_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xba220db7 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xba2b7f64 cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0xba3cad3b blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0xba532773 dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xba5523a4 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xba614974 debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xba762405 dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0xba80de95 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xba878d4f hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xba9ddaa9 mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xbaad0d26 kill_device +EXPORT_SYMBOL_GPL vmlinux 0xbab22764 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xbab9a9f0 maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0xbacf4836 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xbad32277 mtk_clk_unregister_muxes +EXPORT_SYMBOL_GPL vmlinux 0xbadb7ee7 meson_clk_mpll_ops +EXPORT_SYMBOL_GPL vmlinux 0xbaea490c sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0xbaef1d63 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0xbaef513b gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0xbaf22757 kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0xbafcd343 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0xbb0405df crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0xbb058cec ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0xbb098d6e spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0b25d2 register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0xbb16044a fsl_mc_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbb24f372 __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbb36187d mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xbb385fda gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xbb3d37c5 netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0xbb482d5f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xbb62cdbd transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xbb6f025a asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0xbb72afe2 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xbb7a61dd usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xbb7e9690 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xbb93eec5 ioasid_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbb96138c kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0xbb968244 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xbb9f5848 synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0xbbb4ab02 mtk_mutex_put +EXPORT_SYMBOL_GPL vmlinux 0xbbbc5df9 of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0xbbcd3421 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xbbe5611b crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0xbbe56404 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0xbbea9099 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbbf89897 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0xbbf9175a vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xbc08f93d platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xbc1126c4 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL vmlinux 0xbc1357b9 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0xbc1fc9d1 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xbc23a96b watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0xbc307fc8 pci_bridge_emul_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xbc5f39d9 tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0xbc600dc9 preempt_model_voluntary +EXPORT_SYMBOL_GPL vmlinux 0xbc62d48f blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc864f8d irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0xbc8cebf4 mtk_clk_unregister_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0xbc9b8588 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xbca95005 dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0xbcadab16 sprd_pinctrl_core_probe +EXPORT_SYMBOL_GPL vmlinux 0xbcb1f1d0 blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0xbcbe3339 devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xbcca1365 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xbccf3a8b imx_unregister_hw_clocks +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xbcf32e25 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xbcf5d630 blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0xbd02ed57 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xbd06f3a9 ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0xbd072284 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xbd13c6d5 iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0xbd2359f7 efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0xbd5704ec __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xbd5fba6c get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xbd732c66 imx_pinconf_set_scu +EXPORT_SYMBOL_GPL vmlinux 0xbd7aaaee add_memory +EXPORT_SYMBOL_GPL vmlinux 0xbd7f6581 receive_fd +EXPORT_SYMBOL_GPL vmlinux 0xbd8e92bd regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0xbd91820d raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xbd9d4847 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xbda1b759 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xbda2c0d3 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0xbdb2217d hv_is_isolation_supported +EXPORT_SYMBOL_GPL vmlinux 0xbdb72342 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xbdbaddfe scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0xbdda3d7e pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbdea3fa5 clk_regmap_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xbe00bb46 devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0xbe0ccf15 of_platform_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbe137c1e imx_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0xbe144615 mtk_clk_gate_ops_no_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0xbe1da07f pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0xbe220c5d of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xbe245d86 rockchip_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0xbe3a357b call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xbe409389 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0xbe523d45 ahci_platform_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xbe564d6f iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0xbe5c888b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xbe5e3414 k3_udma_glue_reset_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0xbe6425e6 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xbe6675c2 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbe77f866 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xbe7d515c register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xbe8c8366 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xbe932803 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xbe9485c9 of_fwnode_ops +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 0xbec2455f rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0xbec372f2 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xbec66c3a __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xbecbb23e xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0xbecd0941 fsl_mc_bus_dpmcp_type +EXPORT_SYMBOL_GPL vmlinux 0xbed724c5 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0xbed89ddd gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xbeddb824 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0xbef3f86d mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0xbef61e1f hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xbef740f1 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0495f6 regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbf3dc522 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xbf42cb7b crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0xbf4ea143 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xbf5724d0 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0xbf667ceb pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xbf7a5cc0 devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xbf7aab69 dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0xbf80a31f fsl_mc_bus_dpsw_type +EXPORT_SYMBOL_GPL vmlinux 0xbf935bc6 thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0xbf9deb10 genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfbf82b6 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xbfcbb443 dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xbfccb42f platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0xbfd6bca7 mtk_mutex_get +EXPORT_SYMBOL_GPL vmlinux 0xbfddd56d devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0xbfed2cd9 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0xc00910ab bgmac_enet_resume +EXPORT_SYMBOL_GPL vmlinux 0xc019eb97 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0xc01d8ac9 gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc039e273 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xc03bdac4 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0xc0403e00 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL vmlinux 0xc0483cad devm_qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0xc04cb731 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xc05cee80 ipi_get_hwirq +EXPORT_SYMBOL_GPL vmlinux 0xc06f2a56 skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0xc0770c06 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xc07b3767 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xc0908601 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0xc0a3d155 k3_udma_glue_rx_get_flow_id_base +EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0xc0bd5192 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc0cf6ff8 phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc0d2668f perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0xc0e74c63 acpi_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0xc101b281 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0xc10fddb8 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xc121cdcf crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xc135d927 hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xc13801e0 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc1385944 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0xc1543171 __device_reset +EXPORT_SYMBOL_GPL vmlinux 0xc15f36db clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xc1743430 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17e9946 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xc17fefc4 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xc1a553b5 acpi_dev_gpio_irq_get_by +EXPORT_SYMBOL_GPL vmlinux 0xc1ad2e09 led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0xc1bee9d0 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xc1c5d5b8 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0xc1d21f32 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0xc1db684a device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1dce028 k3_udma_glue_reset_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xc1e3ae3e ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xc1e7ebb2 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xc1f39f63 gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0xc2006ab1 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0xc20696d4 lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22c3703 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0xc22f82fb rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xc2367434 i2c_slave_register +EXPORT_SYMBOL_GPL vmlinux 0xc23ac748 i2c_acpi_waive_d0_probe +EXPORT_SYMBOL_GPL vmlinux 0xc242e08f icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0xc2472388 tegra210_clk_emc_update_setting +EXPORT_SYMBOL_GPL vmlinux 0xc24dfde1 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0xc25b8971 hv_remove_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0xc2692173 wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc2722fc0 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0xc275cfc9 dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0xc289e46d cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc29e2171 __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xc2a3e570 errata +EXPORT_SYMBOL_GPL vmlinux 0xc2a707f7 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc2a70ca8 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xc2b52f61 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xc2b7e8ca __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc2b9773a __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc322e278 fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0xc323342b da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc3365cd7 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xc33cf91d devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xc340e246 zynqmp_pm_request_node +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34d8797 devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0xc35332fc vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0xc35ba005 devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc36577cb dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xc36c67e9 rockchip_clk_init +EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc3787a3b dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0xc3807214 inode_dax +EXPORT_SYMBOL_GPL vmlinux 0xc3876c1a hv_isolation_type_snp +EXPORT_SYMBOL_GPL vmlinux 0xc3b07093 ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0xc3c0ef07 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0xc3c5c474 thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3e091d3 dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0xc3e4c4af sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0xc3ffc16f clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc40eeea6 fsl_mc_cleanup_irq_pool +EXPORT_SYMBOL_GPL vmlinux 0xc4222529 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4309be2 xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0xc434bbbb sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xc43e92b9 trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0xc448247b param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xc44987a1 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xc44992ee devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc460fa0a dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc46324f6 dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47a90b9 bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0xc47c304f synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc491d9b6 i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0xc495c76f debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xc498bdc9 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0xc49d44ba devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0xc4a19fd7 ahci_platform_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc4a72936 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc4c38754 iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0xc4d1b3cd devm_thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xc4f599f8 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xc50d4de7 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0xc51076f2 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0xc51450c6 imx_ccm_lock +EXPORT_SYMBOL_GPL vmlinux 0xc52e847c __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0xc539161d usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0xc545a940 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xc54e8346 led_put +EXPORT_SYMBOL_GPL vmlinux 0xc556c81f sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xc55d6370 gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0xc5604800 clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc5604b5d rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0xc569d8ce __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xc571f6d1 dprc_setup +EXPORT_SYMBOL_GPL vmlinux 0xc5725637 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5777fca linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0xc585fdb0 blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0xc58a3ee6 icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc5a5c678 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0xc5ac8218 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xc5ad90b9 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0xc5b352a3 mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0xc5bd87a5 devm_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0xc5c43cc4 msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0xc5cf1e8a kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc5cfced0 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xc5d36437 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xc5d70307 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0xc5e0b38e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xc5e2896c __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xc5f9d5a2 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc62531d2 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xc62d655d efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0xc62dba91 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xc64c4aaa gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0xc6572a90 xenbus_read_unsigned +EXPORT_SYMBOL_GPL vmlinux 0xc66019cc xen_resume_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc662ecda __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc6725209 pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xc6893262 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0xc68c41d6 __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xc69690cd mtk_pinconf_drive_get +EXPORT_SYMBOL_GPL vmlinux 0xc697b0f7 nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a4a872 __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc6ab8c9c nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0xc6af9e5f ahci_platform_init_host +EXPORT_SYMBOL_GPL vmlinux 0xc6d0db3b usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xc6d696cc tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0xc6def34b gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xc6df9f08 pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0xc6e258e3 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0xc6e5bcf3 linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0xc7061ef3 iova_cache_put +EXPORT_SYMBOL_GPL vmlinux 0xc70f0f5e devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc713e96e phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc71518bf dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xc71fe3bf mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0xc72d3c00 mtk_pinconf_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0xc7405fa2 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xc754063d ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc7549c5c phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0xc766ac51 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc766c880 folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xc769260d policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0xc7856e74 __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xc78c9db7 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xc79288fe mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0xc7939dd2 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0xc79a9502 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a636d3 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0xc7a7e770 clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xc7c23ff0 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0xc7de3150 crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0xc7e1dbfd kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0xc7e70a8a disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc7e96358 __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xc7efbc50 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xc7f3882f dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0xc7f79bad tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0xc7fefa4c devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0xc801c1a5 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xc80d26ba fsl_mc_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc80f8e4a devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc812c0b3 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xc81e49cb of_add_property +EXPORT_SYMBOL_GPL vmlinux 0xc823104a mtk_pinconf_bias_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xc82b3a88 __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xc839c1ce trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0xc8594d3d reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0xc8785649 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xc87dd725 k3_udma_glue_pop_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0xc88548be usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xc889dda4 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0xc8a17c38 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xc8a54fe2 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc8c02587 pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0xc8c2dfd9 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc8c99327 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xc8cbf65f pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0xc8e84c1c __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xc90260f3 ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0xc91a05d9 fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0xc92bb962 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xc9345c0f digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xc934aac5 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xc9377098 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc93ee1e7 usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0xc93f1d41 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0xc942ca7a xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc9715630 __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc978b7db ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xc97c1f32 pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0xc989d30f vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0xc99300c5 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xc99b3686 of_gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xc9a9be57 cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0xc9b40347 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0xc9c8fddf regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xc9cf16a4 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xc9cf4b22 blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xc9d598ee dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xc9e1bc23 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xc9e58553 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0xc9e9e6ed vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecff50 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9f933c6 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xc9fb00f7 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0xc9fd634a usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0xca0face8 i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0xca1524e6 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xca18df88 mtk_pinconf_bias_disable_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xca2688bb gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xca2c0d90 usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0xca36ac24 fsl_mc_bus_dpbp_type +EXPORT_SYMBOL_GPL vmlinux 0xca38c049 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xca3ccc94 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xca42057e wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0xca4c60f4 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xca518f7a fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0xca7074c7 mtk_pinconf_bias_get +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85266e pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xca88db5e regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcaa1d3cd vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0xcab9f4c7 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac32dd4 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xcac8aaff irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xcae7ce5d fsl_mc_get_version +EXPORT_SYMBOL_GPL vmlinux 0xcaf19f7a perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0xcaf1d958 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xcb131bfb nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb186931 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0xcb22053b kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0xcb2bfe2b nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcb2c3d7e tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0xcb2dd371 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0xcb32874b inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xcb3fbee9 thermal_zone_of_get_sensor_id +EXPORT_SYMBOL_GPL vmlinux 0xcb4930c5 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xcb4bccdd dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0xcb629094 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb665aab regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xcb698f33 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb6e02c9 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0xcb70573a __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xcb7c4798 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xcb8954b9 imx_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0xcb9281b0 of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0xcba551d9 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0xcba5b0e3 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xcba7f1e2 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xcbcf557e __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xcbd4674c mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0xcbec1d9f phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0xcbf9e89a extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcc00d1ca gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0xcc0fd0a7 k3_ringacc_ring_push_head +EXPORT_SYMBOL_GPL vmlinux 0xcc16727f devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0xcc1895aa pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0xcc2cee45 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xcc2dbfd8 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0xcc39c03e nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc4c184b seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0xcc53cbfd i2c_slave_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc795932 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xcc85e4af genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xcc9268fc hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc973f04 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xcc9a21cd mc_send_command +EXPORT_SYMBOL_GPL vmlinux 0xccabde6f crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd1165b timer_unstable_counter_workaround +EXPORT_SYMBOL_GPL vmlinux 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0xcd0411be of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xcd0e78a2 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0xcd358032 put_device +EXPORT_SYMBOL_GPL vmlinux 0xcd4a63cd sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xcd4e572e irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0xcd5d37d4 devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0xcd759b82 k3_ringacc_ring_reset +EXPORT_SYMBOL_GPL vmlinux 0xcd774524 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xcd7dd7b6 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xcd8fec06 fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0xcd910be7 ti_sci_get_num_resources +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcda2aaba k3_udma_glue_tx_dma_to_cppi5_addr +EXPORT_SYMBOL_GPL vmlinux 0xcdaefc67 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0xcdc09983 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xcdc86b55 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd18689 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xcde26600 cppc_get_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0xcdf0d876 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xce0a4020 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0xce0c4d0a posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0xce316d7e zynqmp_pm_set_sd_tapdelay +EXPORT_SYMBOL_GPL vmlinux 0xce37ade9 __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xce3d78f3 power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0xce4adb29 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0xce548822 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xce598ef2 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xce6211fa rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0xce6a0fe7 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce71d61d fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xce930be0 mtk_mmsys_ddp_connect +EXPORT_SYMBOL_GPL vmlinux 0xce945996 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0xce9e288a invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xce9f7dd1 pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xceac8674 zynqmp_pm_read_pggs +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xced4bd6c pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xcedeb5ec scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee1a352 of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0xcee63cf8 driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0xcee7a97f of_genpd_parse_idle_states +EXPORT_SYMBOL_GPL vmlinux 0xcee88e7a of_overlay_fdt_apply +EXPORT_SYMBOL_GPL vmlinux 0xceed8c16 __set_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xcef2893a gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0xcef30a80 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0xcf0d7b7b l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0xcf180f85 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xcf1952be serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcf2d7d98 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xcf59bad5 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0xcf5c039a devres_get +EXPORT_SYMBOL_GPL vmlinux 0xcf692d52 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0xcf7cb4b3 gnttab_unmap_refs_async +EXPORT_SYMBOL_GPL vmlinux 0xcf7f66f9 imx_dev_clk_hw_pll14xx +EXPORT_SYMBOL_GPL vmlinux 0xcf87bcf8 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xcf8ee784 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0xcf9a8361 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xcfacb3d0 clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xcfaf2647 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xcfb473ff dprc_set_obj_irq +EXPORT_SYMBOL_GPL vmlinux 0xcfbab89f pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0xcfbc74df fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0xcfc7deb0 dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0xcfd17b2b ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xcfd30d71 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xcff53a60 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0xcffd793e hyperv_report_panic +EXPORT_SYMBOL_GPL vmlinux 0xd00368bc stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xd026d518 HYPERVISOR_vcpu_op +EXPORT_SYMBOL_GPL vmlinux 0xd02741dd dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xd035b32b dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd04aedfd __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xd0558463 pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0714887 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd073ba5c meson_a1_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0xd08681f9 int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0xd08b72ba of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xd09094a1 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xd098d953 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xd09911a6 acpi_dev_get_irq_type +EXPORT_SYMBOL_GPL vmlinux 0xd0acaede __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0xd0ad37c4 dprc_open +EXPORT_SYMBOL_GPL vmlinux 0xd0b8701b security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xd0bf7aa8 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c8044a srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0xd0cf62fc sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xd0d156e9 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xd0d3f0a4 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax +EXPORT_SYMBOL_GPL vmlinux 0xd0de0ab8 get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0xd0fd7085 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1214b47 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd122e8d1 simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0xd1243732 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xd126e990 devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0xd1303acd switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0xd130e818 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xd138c08a free_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0xd1395407 __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xd13dd20e led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0xd148142a generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0xd14bbf1b dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0xd153f9ed clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xd15e8887 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xd165a493 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd16a8cef __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd1799899 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0xd17a1c48 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0xd185ccff ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xd186d883 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xd1a92ec5 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xd1a9ca15 __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0xd1af4437 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xd1bfbacc perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xd1cc2dcb dprc_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd1dbff4d __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd1e0c57c iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0xd1ff277e iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0xd2136167 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xd2167883 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21a0922 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0xd21f1d35 __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd22a2297 __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0xd2383a91 bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd23d9ddc smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xd23e3dc8 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xd2423f76 i2c_acpi_get_i2c_resource +EXPORT_SYMBOL_GPL vmlinux 0xd2427af8 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd248a519 rockchip_pmu_block +EXPORT_SYMBOL_GPL vmlinux 0xd24e9e8c klist_init +EXPORT_SYMBOL_GPL vmlinux 0xd2509b66 l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd25a1cca rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xd266dc57 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xd26c28ff register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0xd2714748 pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27eeb4b alloc_iova +EXPORT_SYMBOL_GPL vmlinux 0xd27f215d gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xd27f8b07 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0xd2854a13 dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xd28b21e5 of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xd28e24ec gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0xd2b10a05 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0xd2b635bc fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd2ce29e2 dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0xd2d51682 param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0xd2dc273e ahci_handle_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xd2dd5c71 irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0xd2ee5f7c sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0xd30b1638 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xd313bc7b xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xd31c7210 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd320ebaf pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xd3232d66 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0xd32afe63 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xd330e3ee skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd3551a76 zynqmp_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd36760ef __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd36aaeec regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xd36d880f phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0xd374a3a4 is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0xd3752c27 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd37aa3a9 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd38f4dbf __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xd393dcdf fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0xd3980e38 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xd39f4d76 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xd3a11901 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd3dcceeb bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xd3e8f496 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0xd3ec851c __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd3f0cd42 misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40632bb devm_ti_sci_get_handle +EXPORT_SYMBOL_GPL vmlinux 0xd4090567 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0xd419dd74 wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0xd42465d6 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd430d1d5 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0xd43deefd tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xd43ed322 __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xd4476a27 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd46af5ef cppc_get_perf_ctrs +EXPORT_SYMBOL_GPL vmlinux 0xd47b2941 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0xd48c491c phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xd492492e perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xd4935851 __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xd496aebc device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xd4a0bb4c mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd4a199fc xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0xd4b9a616 reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xd4bf7d05 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cbdbe3 __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xd4d6fb79 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d7e0 linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0xd4e86b87 devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xd4ee8985 nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0xd4f5bfa5 iommu_queue_iopf +EXPORT_SYMBOL_GPL vmlinux 0xd4f93fb3 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0xd507f6ef of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xd51dde9f device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0xd5301b2c linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0xd53b5aed __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xd53c67b3 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xd5474690 usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0xd5511db5 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd55af70e pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0xd567ea1e ahci_platform_enable_resources +EXPORT_SYMBOL_GPL vmlinux 0xd5787987 devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xd5807af3 k3_ringacc_ring_pop +EXPORT_SYMBOL_GPL vmlinux 0xd591567a __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd59ab9b2 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xd5a1dfe8 __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xd5bc8a10 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xd5d1871b ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xd5e699bb tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0xd6092ffa platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xd60e0a35 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd61682c5 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xd6296418 tegra_bpmp_mrq_return +EXPORT_SYMBOL_GPL vmlinux 0xd63afe38 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0xd65c0e0c k3_ringacc_ring_cfg +EXPORT_SYMBOL_GPL vmlinux 0xd667d3c7 of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0xd673476f __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6799491 gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0xd68ef5b5 fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0xd69511ad crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0xd69a7b90 ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0xd6a3c762 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0xd6a8a857 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0xd6aafb42 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0xd6ac4b0f acpi_driver_match_device +EXPORT_SYMBOL_GPL vmlinux 0xd6b27e8a xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0xd6d538d8 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd6d8f6b3 topology_set_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0xd6dc45c2 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xd6e615aa imx93_clk_composite_flags +EXPORT_SYMBOL_GPL vmlinux 0xd6e910b0 usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xd6f404dc genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0xd6f92107 of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0xd6fce78a ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xd7085313 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd71781f7 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0xd720c6c8 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xd7269c64 osc_sb_native_usb4_control +EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd72f3263 devm_otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd7404e09 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0xd7463779 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0xd74e400f show_rcu_tasks_classic_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd75b20aa rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0xd75ebf68 mtk_clk_register_muxes +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76cd352 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd773d1d8 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xd774957d mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0xd7759629 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xd77d0feb ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xd787d1f9 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd78a3d81 usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0xd78cf425 find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0xd7935010 md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0xd7b70d9a fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0xd7baa7ff __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0xd7c0cacf irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xd7c91b63 tegra210_sata_pll_hw_control_enable +EXPORT_SYMBOL_GPL vmlinux 0xd7cea889 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0xd7d7f2a7 devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd7dccd23 __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0xd7e9113f of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xd7f05fcc pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0xd809e7bc clk_register +EXPORT_SYMBOL_GPL vmlinux 0xd81bc6f7 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xd821122c devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0xd828d06e xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd845e5c6 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd84d7d51 usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0xd85465f7 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xd8564b21 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xd8631ff9 iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd86c86da fsl_mc_bus_dpdmai_type +EXPORT_SYMBOL_GPL vmlinux 0xd87e08c4 inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd89e09ad rockchip_register_softrst +EXPORT_SYMBOL_GPL vmlinux 0xd8bbfb01 dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xd8bc4043 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0xd8c1fe0a sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0xd8c3085e ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xd8d5aed7 pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0xd8d68ab1 dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0xd8d74a44 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xd8eb02ee fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0xd8ecb98b regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xd90a93a7 k3_udma_glue_rx_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xd91d991e devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0xd92968b0 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0xd92f0791 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd938024b open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0xd93a5cb1 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0xd9450b56 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xd94b1f68 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xd963cd12 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd96c71c0 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd9703704 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0xd97b9b89 acpi_cpu_get_madt_gicc +EXPORT_SYMBOL_GPL vmlinux 0xd982d51f virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0xd9916c3a idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd9a1a55f sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0xd9c97929 bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0xd9ca4bdf spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xd9d0a2af devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xd9e55df7 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xd9e60513 device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0xd9e6f40e gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xd9f8bde2 ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0xd9faa7a5 zynqmp_pm_set_pll_frac_mode +EXPORT_SYMBOL_GPL vmlinux 0xd9ff2172 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xda004c83 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda142177 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0xda14a1e6 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xda2f877d fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0xda33ae7c sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xda496db4 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xda4ea159 mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0xda506984 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xda7912d4 freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xda7a6bfa regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xda82ce9f ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xda8e1302 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0xda902ff6 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xda926ef3 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0xda9da984 md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0xdaa06dc1 acpi_lpat_raw_to_temp +EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0xdabcb59f devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdabd443a xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0xdae00925 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xdaed87c5 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb1f30eb of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0xdb284b5e crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xdb2e6e65 gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xdb32d105 nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0xdb378b4f ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0xdb3b0f1f dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0xdb3fcc3f nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0xdb4298b6 pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0xdb4f2748 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0xdb598b60 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdb63a944 acpi_lpat_get_conversion_table +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb9e49f3 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xdba98779 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xdbaba591 crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0xdbac03cc uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xdbc42094 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbddb8ec gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbe8d8a0 __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xdbea8201 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xdbeeece6 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc02eb39 dmi_available +EXPORT_SYMBOL_GPL vmlinux 0xdc139c13 k3_udma_glue_tx_get_hdesc_size +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1cf655 syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0xdc230b15 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0xdc296a92 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0xdc2c8829 acpi_spi_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdc3d052f vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xdc42b1c9 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xdc45a5db edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0xdc468044 pci_ecam_create +EXPORT_SYMBOL_GPL vmlinux 0xdc555a18 mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc6178bc dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xdc6596fa irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc7535af spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xdc790b1e sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xdc7c4b82 dpcon_enable +EXPORT_SYMBOL_GPL vmlinux 0xdc7df67f apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcbe8333 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xdcec1054 device_match_name +EXPORT_SYMBOL_GPL vmlinux 0xdd00d585 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0xdd0b9a7c usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdd1f7d01 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd26bea1 dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0xdd34b36f gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xdd373eab mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0xdd3b2189 nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0xdd450ef1 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0xdd452753 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xdd4a8ee8 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xdd531af0 extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd68a17d acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xdd81d8f6 __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xdd85fd1d rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xdd92dc49 tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0xddaefa2c __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xddb0213c kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xddb5ac69 edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0xddb83cba bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0xddb88a1c imx_pinconf_get_scu +EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0xddbf2264 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xddd3576e dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0xdde99d64 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xdde9e738 gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0xddf32520 __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xddfbd289 vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0xde0e6da0 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xde1a0b12 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xde2bc165 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xde41739d extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0xde4d3e8a devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xde6684b4 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0xde74a5d6 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xde778e2b rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xde79e3fe of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xde7c8583 devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xde7e8a87 devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0xde8791ee devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xde9ab8c7 xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xdea26a1f blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xdead2e78 reserve_iova +EXPORT_SYMBOL_GPL vmlinux 0xdebd1334 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0xdecd509b shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xdedfa931 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xdee91d7a dtpm_destroy_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xdeea12cc iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0xdeebcf97 __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xdeee6e30 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xdef4cbd0 dax_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xdeffa0a7 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xdf0c757f ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0xdf0ca3f4 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf13320d lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xdf1be5e1 __free_iova +EXPORT_SYMBOL_GPL vmlinux 0xdf230bdc blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdf448d1c fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xdf7462b1 pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0xdf7544ad pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xdf77cd60 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xdf7c3186 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdf861903 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xdf948ef0 pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0xdf9c6f3e sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xdfa2e9be tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xdfa89244 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xdfbbc262 __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0xdfcb6c90 mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0xdfcc37f6 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xdfe80478 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdfff8bdf scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0xe0095e34 rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe01f4cb0 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0xe0226d67 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xe02abbe8 alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0xe0313d71 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0xe0356a96 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe041a072 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe067dbef attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe069ee1f irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xe0722edc md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0xe0853f6f iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xe092b2a9 nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0xe09b1740 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0xe09c2a8a gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0xe09ecfab usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xe0a43f7f iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0xe0b1c103 clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0xe0bb1b5c fsl_mc_bus_dprc_type +EXPORT_SYMBOL_GPL vmlinux 0xe0c4e14d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xe0cf6918 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0xe0e3147c HYPERVISOR_sched_op +EXPORT_SYMBOL_GPL vmlinux 0xe0f25d88 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe12054e7 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0xe128af5a pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1299eb6 iommu_sva_find +EXPORT_SYMBOL_GPL vmlinux 0xe12b7346 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xe13146bc regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xe1342e71 fsl_mc_bus_dpdmux_type +EXPORT_SYMBOL_GPL vmlinux 0xe145ff86 __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xe14edfec xen_unmap_domain_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0xe1594f06 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0xe15bec18 devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0xe15e8eb4 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0xe16ff4bf kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xe176f22f dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1883088 gnttab_page_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xe188f948 xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0xe192e22e virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0xe1a8d7c9 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xe1a8f092 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xe1b36e64 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0xe1d12e68 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe1e270b1 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe209200c device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xe21e12b7 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe24c6fc9 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0xe25239f9 virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xe25d23f3 blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0xe2932434 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0xe293494a crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2bc3e76 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xe2c58c1a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe2ce2b4d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0xe2d720a2 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0xe2d96f5b zynqmp_pm_feature +EXPORT_SYMBOL_GPL vmlinux 0xe2de8e8d sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xe31315a4 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0xe31a8bf6 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xe32722ac __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xe33566c7 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xe33b6a2f proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xe362babb tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xe397caf5 seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0xe39a28fc bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe39d06e0 pinmux_generic_remove_function +EXPORT_SYMBOL_GPL vmlinux 0xe39d0794 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0xe3a01ebc usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0xe3cd5fae klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe3d1cd2a scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0xe3dc766a watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3e7e391 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0xe40ede40 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe4248980 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xe4286544 of_genpd_add_provider_onecell +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe432ccc6 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xe43c5a98 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe43f519e tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe44aa3f6 __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xe4628da4 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0xe4699a79 fsl_mc_resource_allocate +EXPORT_SYMBOL_GPL vmlinux 0xe46eadbf of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0xe4709fe4 dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0xe4738276 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xe47f77ea led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xe4872c78 usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0xe490e1f9 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe491e700 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe495e33b fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0xe4a8b1f7 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xe4adb85e tegra_bpmp_request_mrq +EXPORT_SYMBOL_GPL vmlinux 0xe4af816f rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0xe4c2c66c rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xe4ceaa89 nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0xe4d45fbf nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xe4e0af28 tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0xe4e2680b paste_selection +EXPORT_SYMBOL_GPL vmlinux 0xe4e3b92e fsl_mc_bus_dpseci_type +EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0xe4e4b71a tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0xe4f55b2e crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xe4fe28c2 acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0xe50067d6 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xe5055d89 fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0xe5270ac4 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0xe527c636 phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0xe52862db pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xe54567c9 acpi_bus_get_acpi_device +EXPORT_SYMBOL_GPL vmlinux 0xe5516728 k3_udma_glue_tx_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5570d72 fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xe568bb21 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0xe587111e user_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe589b035 devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0xe590b45e pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0xe59e730a of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xe5a631ec usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xe5a925d3 zynqmp_pm_init_finalize +EXPORT_SYMBOL_GPL vmlinux 0xe5a9f3ee acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xe5b20bdd evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xe5c02b64 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe5c0ecb9 put_io_context +EXPORT_SYMBOL_GPL vmlinux 0xe5c56797 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe5cb1943 hisi_clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xe5ce1a56 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0xe5d0164f acpi_get_psd_map +EXPORT_SYMBOL_GPL vmlinux 0xe5dde146 kvm_io_bus_write +EXPORT_SYMBOL_GPL vmlinux 0xe5e92b48 tegra_bpmp_free_mrq +EXPORT_SYMBOL_GPL vmlinux 0xe5efb18f pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0xe5f05eb1 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0xe5f27b2b ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe5f7137f tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe5fd3dc3 xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0xe60632a9 edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xe60ea308 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xe6142565 __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xe61868d0 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xe62516ad kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL vmlinux 0xe6255208 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0xe632997d clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0xe660ee67 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0xe6621260 devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0xe66df75d rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xe672bae5 fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0xe675931f ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xe6776850 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe69cf01e nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe6b38b1c sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xe6b9e552 auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6dfbc4a sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0xe6e5dd8a scmi_protocol_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe6e81fa6 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xe6e988c5 k3_ringacc_get_tisci_dev_id +EXPORT_SYMBOL_GPL vmlinux 0xe6f52443 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xe6f83837 acpi_bus_attach_private_data +EXPORT_SYMBOL_GPL vmlinux 0xe6fd9de0 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xe700d767 reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0xe718f787 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xe71acd47 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe729f7be class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xe737b817 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0xe73c97aa meson_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0xe73ecb12 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0xe743325f devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0xe749de14 rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xe7568bc7 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xe7590d46 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe773a4bb __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0xe7936243 zynqmp_pm_clock_getstate +EXPORT_SYMBOL_GPL vmlinux 0xe7cb3b19 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xe7cc8b45 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xe7da0fee device_attach +EXPORT_SYMBOL_GPL vmlinux 0xe7dc8162 dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0xe7e10e79 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xe7e4e860 kobject_move +EXPORT_SYMBOL_GPL vmlinux 0xe80205aa fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0xe8033af1 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0xe80a7b1d rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xe81379ee mtk_clk_gate_ops_no_setclr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe818cdfd crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xe819fd53 bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0xe8377131 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xe84ed34a unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe85be05a iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0xe85ef5a6 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe8649ca3 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0xe87116c5 make_device_exclusive_range +EXPORT_SYMBOL_GPL vmlinux 0xe878c4cc powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0xe87c976b do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0xe87ebb26 gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0xe8864592 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe88b85bd umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0xe88ca50f tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe8b5c23f pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xe8bce60f __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xe8c0065d memory_group_register_static +EXPORT_SYMBOL_GPL vmlinux 0xe8c8b63a __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0xe8d32718 proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0xe8d4def1 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xe8e50d60 wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0xe8e9f172 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe8f6e393 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0xe90c7659 k3_udma_glue_rx_dma_to_cppi5_addr +EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0xe928c014 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0xe929de07 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0xe92bb754 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe9352021 msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9431b92 sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0xe9482bb7 mtk_mutex_add_comp +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe957f280 iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0xe97d5c40 i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0xe9894016 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0xe98f55f2 arm_smccc_get_version +EXPORT_SYMBOL_GPL vmlinux 0xe9a9380f devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0xe9b28fd5 badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d63a0d k3_udma_glue_enable_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0xe9f702db vcpu_load +EXPORT_SYMBOL_GPL vmlinux 0xe9fa609a driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe9fd4083 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea171449 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xea23a0e3 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0xea28182b rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xea3a23f3 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0xea3ab875 pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0xea3e5c03 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea543e62 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xea6aa811 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xea6e5e7f modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xea7d7a60 efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0xea89f288 pci_ecam_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xeaa333fa acpi_get_first_physical_node +EXPORT_SYMBOL_GPL vmlinux 0xeab30da5 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xeab59108 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xeab76ef6 gnttab_pages_clear_private +EXPORT_SYMBOL_GPL vmlinux 0xeabe2911 xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0xeac607f4 ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0xeac6e0ee devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0xeace8287 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xead035ee __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xead54924 mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xead5c8e5 clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0xeae552e1 mtk_build_eint +EXPORT_SYMBOL_GPL vmlinux 0xeaf0a57c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xeaf3cb23 crc64_be +EXPORT_SYMBOL_GPL vmlinux 0xeaf8469d hv_do_fast_hypercall8 +EXPORT_SYMBOL_GPL vmlinux 0xeaf986fd devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeb00ce3c dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0xeb03c675 of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0xeb097ffa of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xeb0e8e89 of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0xeb18bb81 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0xeb19abc5 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xeb20f7fc ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xeb36e50e dprc_get_obj +EXPORT_SYMBOL_GPL vmlinux 0xeb4221e4 trace_clock +EXPORT_SYMBOL_GPL vmlinux 0xeb66aa2e dpcon_close +EXPORT_SYMBOL_GPL vmlinux 0xeb78b1ed unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xeb82ca43 kvm_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xeb85c340 fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0xeba3632c nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xebbee10e mtk_eint_do_init +EXPORT_SYMBOL_GPL vmlinux 0xebc9a09f lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0xebd4cc11 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0xebdb078b pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0xebe05dc8 serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xec14cb73 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xec195261 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xec304739 blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0xec394bfb __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0xec4b6a4b serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0xec5668f6 dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0xec5a4f50 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xec5ad73b trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0xec61acbe iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0xec64a3d3 devm_regmap_init_vexpress_config +EXPORT_SYMBOL_GPL vmlinux 0xec710b35 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xec774acb cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xec8f6aba __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xeca4d425 mtk_hw_get_value +EXPORT_SYMBOL_GPL vmlinux 0xecaaa2dd srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xecb671fc tegra210_sata_pll_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0xecba68e3 gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0xecc77721 msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0xecd7dd7d virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xecd8f23d xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xecd93ce3 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xecebe65d xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0xecf62569 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xed02d6f1 of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0xed111a03 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0xed143290 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xed16a591 scmi_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xed29ad73 spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0xed2c5bcf power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0xed39b7b8 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0xed51a4a4 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0xed6461da sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0xed6780ac acpi_gpiochip_free_interrupts +EXPORT_SYMBOL_GPL vmlinux 0xed6d58b5 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0xed7732a3 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xed892d2d alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0xed918dde hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0xed94ee04 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed96b764 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xed972cc8 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xed9ec2dd gnttab_page_cache_put +EXPORT_SYMBOL_GPL vmlinux 0xeda09cc4 pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0xeda38d99 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xedaa549a __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xedb25c2d blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0xedbf6ad6 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0xedd092d5 power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0xede27723 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0xede4bed8 icc_disable +EXPORT_SYMBOL_GPL vmlinux 0xede9a09a btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0xedfc3a80 fsl_mc_bus_dprtc_type +EXPORT_SYMBOL_GPL vmlinux 0xedfd4c8b mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0xedfdef87 mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL vmlinux 0xee0af752 strp_done +EXPORT_SYMBOL_GPL vmlinux 0xee0f2bbd tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xee1f5126 __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee3a3b96 bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0xee5064b9 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0xee518148 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xee666b94 unix_peer_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 0xee6d1845 vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0xee6f46ae ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xee7a368f l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0xee80d53b skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0xee96fe05 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xeebc394c regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xeed02233 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xeed0cea4 kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0xeed3e86f crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0xeed5e381 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0xeedfa62a zynqmp_pm_is_function_supported +EXPORT_SYMBOL_GPL vmlinux 0xeef0f10d devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0xeef1c247 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xeefc3dfc spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xeefd37e3 devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0xef01bb6c vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0xef064d89 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xef17a7e5 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0xef1a56d0 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef29fcdd clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xef317517 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0xef34bf3e hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0xef5db66d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xef5f8f67 call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0xef72ad31 blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0xef8fc179 blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0xef92ef33 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefb65781 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xefe3d6dc __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xefe98e69 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0xefeafcf1 edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0xf008d348 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf012349d gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0xf039995d fsl_mc_allocate_irqs +EXPORT_SYMBOL_GPL vmlinux 0xf03b0410 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xf04429b4 acpi_bus_get_status_handle +EXPORT_SYMBOL_GPL vmlinux 0xf04ead18 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf07af269 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0xf07c8ae4 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0xf09c6a75 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0xf0a69fb0 iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xf0aa147a crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xf0b7b37a dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0bbb85f __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xf0c92140 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xf0e2b75b shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf0e7d2cc simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xf0e93079 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xf0f7808f __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xf0f823c5 irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xf0fb1ce1 mcore_booted +EXPORT_SYMBOL_GPL vmlinux 0xf108cf44 dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf10cd6a3 mtk_pinconf_adv_drive_set +EXPORT_SYMBOL_GPL vmlinux 0xf11e3d5e skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xf12180fd imx_1443x_dram_pll +EXPORT_SYMBOL_GPL vmlinux 0xf122077c dprc_get_obj_count +EXPORT_SYMBOL_GPL vmlinux 0xf133c726 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xf14317ef devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf148e34b devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0xf14e2102 mtk_pinconf_bias_disable_get +EXPORT_SYMBOL_GPL vmlinux 0xf1576725 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0xf17ffbed crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf188a662 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0xf18c0108 ti_sci_inta_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xf19f81fc class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf1a85a37 phy_validate +EXPORT_SYMBOL_GPL vmlinux 0xf1cb5eb9 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xf1d37571 pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0xf1e4fe9e fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0xf1f92fbb sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xf21361ad icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22651b2 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xf23beba4 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xf24c8314 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf26d2343 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf27d0a7b gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xf2837591 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0xf283ec28 irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf28c4d47 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0xf28dc787 icc_enable +EXPORT_SYMBOL_GPL vmlinux 0xf28f7264 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0xf296c3a7 fsl_mc_portal_free +EXPORT_SYMBOL_GPL vmlinux 0xf297abc3 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xf2a3403c __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2a3e147 bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0xf2a43f3c virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xf2a456e5 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xf2b8c057 xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0xf2c60b18 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf2e9a3d7 gnttab_dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xf2ea1dc7 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0xf2ecb6a9 devm_rpi_firmware_get +EXPORT_SYMBOL_GPL vmlinux 0xf2ed29d7 md_stop +EXPORT_SYMBOL_GPL vmlinux 0xf2f72f5c sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0xf2f7c4b0 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0xf2fc9b13 xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0xf3031b28 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf30a5502 cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0xf30cdd90 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf30d93ca ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xf310a124 ata_std_postreset +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 0xf31dec71 usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0xf32774e0 devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf32e30f6 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xf36c4499 mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0xf3716fdb kvm_destroy_vcpus +EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0xf37aa532 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xf380879f mtk_clk_register_gates +EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf39596d0 pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0xf3a27c46 crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b95d79 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xf3c5ba6f ahci_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xf3d58743 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0xf3dbafd8 dpcon_reset +EXPORT_SYMBOL_GPL vmlinux 0xf3e389c3 ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xf3ebc74a transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xf3f24c3f class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xf3f9ca78 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xf3fcf47c xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xf4002949 kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xf405fcdc bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0xf40c817c ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0xf41f43fe __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0xf4218d26 cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0xf42ddff2 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xf438ef31 tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf4707cf4 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0xf47d4f91 crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0xf48bf68a regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xf48ec0a6 msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0xf4a00349 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xf4a9c703 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xf4ac4c9f __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0xf4bfda49 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f8f reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0xf4da75a7 fsl_mc_bus_dpci_type +EXPORT_SYMBOL_GPL vmlinux 0xf4e4ce8d ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xf4e82beb clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0xf4e9cf99 regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0xf4ec1f7f ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0xf4ef5a80 dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xf5040197 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5075e98 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0xf515821d phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0xf52075c9 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xf530a8d9 mtk_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0xf5406ad5 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54f5e68 meson_clk_cpu_dyndiv_ops +EXPORT_SYMBOL_GPL vmlinux 0xf5532414 usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf560e809 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xf56907c6 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xf58753c0 regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0xf59be90f phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0xf59dfe1f of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a3ba99 linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5c246d2 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0xf5d8d0c3 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf5ea869f kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0xf5ef4d3e strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0xf61c6b74 hv_do_hypercall +EXPORT_SYMBOL_GPL vmlinux 0xf63a6ce1 filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0xf63fe19b of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0xf647af9a elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf6484c95 uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0xf64aaa25 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf663ee2f pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0xf674fada crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0xf6754797 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xf67c8c26 memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0xf6818d32 page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0xf6842400 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xf68918e7 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0xf69118bb __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xf6946df5 __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xf6a28554 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xf6a3e85a rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xf6ac16eb register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0xf6b15f91 add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0xf6beee37 __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xf6c71a25 cper_severity_str +EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6d10539 cpu_device_create +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 0xf705538f crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf70e4a4d preempt_schedule_notrace +EXPORT_SYMBOL_GPL vmlinux 0xf7154688 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0xf730fb4a qcom_smem_state_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xf734ca3d vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0xf743164e lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0xf744298f hv_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xf7455c16 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xf7469878 bgmac_phy_connect_direct +EXPORT_SYMBOL_GPL vmlinux 0xf7482fad pm_genpd_remove +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 0xf75f5ec0 tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7772bde xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0xf77b1e67 mtk_pinconf_bias_disable_set +EXPORT_SYMBOL_GPL vmlinux 0xf77d9889 bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0xf7866b4f bind_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xf791465a virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0xf7aa8b43 clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xf7afb369 btree_init +EXPORT_SYMBOL_GPL vmlinux 0xf7b818eb usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0xf7bc36e0 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xf7c3f273 xen_resume_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf7c6e5fc crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0xf7dd97c5 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0xf7e547fd wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0xf8007afb invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xf808e5fe inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xf80f5fc7 __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xf811aeb7 folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0xf81dce70 thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0xf82e8074 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8377bf0 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0xf8404fc7 rockchip_pcie_init_port +EXPORT_SYMBOL_GPL vmlinux 0xf842036d __imx8m_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0xf84262d2 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0xf852d746 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8540d8c sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0xf8589f56 acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0xf861bd31 rockchip_clk_register_ddrclk +EXPORT_SYMBOL_GPL vmlinux 0xf8675c10 device_create +EXPORT_SYMBOL_GPL vmlinux 0xf8676e53 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf8691543 __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0xf8696a89 skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0xf869dd81 gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0xf86c9d73 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xf86ed535 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0xf8783b43 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0xf87cefd0 devm_ti_sci_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf8943bf9 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0xf897d657 __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0xf8a692d3 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf8aaaaaa usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xf8aef39b firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0xf8c154d5 hisi_clk_register_phase +EXPORT_SYMBOL_GPL vmlinux 0xf8c26e1a usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xf8e86331 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf900c77d zynqmp_pm_clock_disable +EXPORT_SYMBOL_GPL vmlinux 0xf9093f5b __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xf912c46b of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0xf935037d to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0xf955e9c5 bprintf +EXPORT_SYMBOL_GPL vmlinux 0xf956bbb1 iopf_queue_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf95c874a regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf964706c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xf967422b HYPERVISOR_xen_version +EXPORT_SYMBOL_GPL vmlinux 0xf9713e8a crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0xf9778a73 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xf9784b0e fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0xf978750a ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xf98db6c9 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a3180b device_match_any +EXPORT_SYMBOL_GPL vmlinux 0xf9a3c5dc zynqmp_pm_load_pdi +EXPORT_SYMBOL_GPL vmlinux 0xf9af4d54 bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0xf9b34a0b iopf_queue_free +EXPORT_SYMBOL_GPL vmlinux 0xf9b364a0 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xf9b3e88c crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xf9bee96a __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xf9d26ea9 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0xf9dc4ec4 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0xf9e82ea0 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf9ed1858 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xf9eed8c2 alloc_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0xf9f22d94 balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xf9f4ab1f regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xf9f7ac8d crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0xf9fd9ec3 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xfa0d315a regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa23bb5c component_release_of +EXPORT_SYMBOL_GPL vmlinux 0xfa2ccbe0 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfa2f09fd devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0xfa31c198 acpi_is_pnp_device +EXPORT_SYMBOL_GPL vmlinux 0xfa349688 aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xfa349a8a xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xfa40ba2d iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0xfa43cefc is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0xfa72c5a1 blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0xfa73fd04 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfa8bfc41 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0xfaa1e35a bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0xfaa244f1 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xfaaf8621 power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0xfab53ed9 pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0xfac03c66 of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xfac5d36c nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0xfae9a187 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xfaf8927c debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xfafb84d2 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xfb0af345 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xfb12458b regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xfb179adf adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfb23ecdb kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0xfb2c53c6 __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb4aafec adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xfb529929 skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0xfb5a0f01 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xfb6cd9d3 md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb897e36 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0xfb8c249c device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xfb8daab7 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xfb9640d8 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xfb973e84 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0xfba2fe94 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xfba54aa6 tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0xfbaadb28 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xfbb56150 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action +EXPORT_SYMBOL_GPL vmlinux 0xfbd43a39 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0xfbdaaffa devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfbea907f __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfc03a4ca proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc14923a ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xfc14bb2e dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xfc1567a6 get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0xfc19dba3 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xfc1ca3ab of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc254d15 gnttab_free_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xfc27c973 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xfc371802 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfc389218 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xfc3a789e devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4c34 meson_clk_pcie_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc464ebd netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0xfc606ded tegra_bpmp_get +EXPORT_SYMBOL_GPL vmlinux 0xfc7745bd perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xfc9477b5 zynqmp_pm_set_pll_frac_data +EXPORT_SYMBOL_GPL vmlinux 0xfc949015 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xfca7f934 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0xfcbfec70 add_memory_driver_managed +EXPORT_SYMBOL_GPL vmlinux 0xfcc1edd3 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfccccb7c cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfcd8537b regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xfcda7af7 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0xfcf569b3 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfd068326 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xfd06c317 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0xfd13560f gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0xfd195774 k3_udma_glue_disable_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xfd2350d4 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xfd2c62ad devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfd369303 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0xfd40d9c6 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd45b06b gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0xfd5b1c72 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0xfd6555fb xlnx_unregister_event +EXPORT_SYMBOL_GPL vmlinux 0xfd6608b6 pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xfd68baf5 fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0xfd6c436e scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0xfd6cda07 vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd95097e skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0xfd9628f7 folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0xfd99825f pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xfdb8c315 auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdc0c743 vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0xfdd4cf66 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xfdde3c86 regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0xfdea2d04 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfdfa53bf blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0xfe01ab5f iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0xfe02528f ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xfe0e7cd3 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0xfe11efa8 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xfe19dc28 vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0xfe20a2c6 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0xfe279abd xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xfe305917 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xfe375cfb rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0xfe3a6de3 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe4d3c95 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xfe552b72 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xfe745c5c xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0xfe752d5b pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xfe84c7e2 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfe876044 gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0xfe8b19c1 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe8d4318 lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0xfe96ec34 devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe99dad0 dtpm_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xfe9becb9 __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfea175c2 __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0xfea65d30 fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xfeb04cda bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xfec3bf84 icst_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfede9222 __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xfedfb252 mpc8xxx_spi_tx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0xfeee071f fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xfeee6631 icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0xfeeecd05 apei_read +EXPORT_SYMBOL_GPL vmlinux 0xfefcf59c regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0e79c0 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0xff1666f3 reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0xff1f1591 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xff291ecf clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xff354a53 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0xff42c374 usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0xff49ee11 pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0xff776884 dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0xff806398 auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0xff82421b imx_pinctrl_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xff847e34 blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0xff8da7ca debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0xff8db3de pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0xff95a757 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xff9c46e8 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xff9e7350 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xffa42f7a pfn_to_online_page +EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xffbf40ce pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0xffc86f14 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0xffdedca7 __kthread_should_park +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x01a4fea6 hwmon_device_register_for_thermal vmlinux +IIO_AD5592R EXPORT_SYMBOL_GPL 0x0432609b ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x4f91bef8 ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x796006ab ad5686_probe drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0xa0377847 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0x5290ee80 ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0x879b5b27 ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x1bdc62af ad7606_probe drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0xcacd1302 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0xd8731cf1 adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0xfa8bbae0 __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x5c920afb devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x6a08a2e9 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7e04fb8d adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x8db2bb68 adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x9d4a3b78 __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xad08896c __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xb90bbdc9 adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xd8eac1d8 __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xea4b60ac __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xfacbabd1 __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0xaa9fa3e1 __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x8401eedc adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x99b8bf4f adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xf6f7b9f3 adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb446fa86 adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb9960d36 adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0xee7cf786 adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x06dbc186 adxl372_probe drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0xa710e6ea adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x22162d50 ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x329d7e50 ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x780510ec ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x8f1e18ac ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xb05de4d1 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xb41d4bcf devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xbe383297 ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xc17cc0c7 ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xf226e688 ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xfc870204 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x17ad1455 bma400_probe drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0xa6f2e395 bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x18fbd541 bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x1f076f57 bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7b29df2a bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xb916b6e6 bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x1cd821ce bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x6c5e2b1b bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x87a7d826 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x9800ed1b bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0xdbe09cf7 bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0x5f3b0f9f bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x02050355 bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x78b717c3 bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xbc086255 bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xcdbca8a7 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x009837ac fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x0417c9e3 fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x85c7a53a fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xa6c95d26 fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x0705b369 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x196f58d8 hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x35f3aea9 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x42b27527 hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x5fd724a9 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x63e208ad hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x649c17e4 hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x82352dcc hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0xc4c2c7f3 hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xe901ba73 hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xf2b2c850 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xfbf5a6c8 hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x45887d59 hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x562c3f78 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x7736718d hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xd07c82bf hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x07795083 hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7cc9c108 hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x84ab2a0f hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xf9bcdb46 hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x64c37cd9 kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x6548853e kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xd916c280 kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x10301a32 ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x4966f34a ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x4b132dbf ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7a86cc9d ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x9a68c287 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xb2dd7152 ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xbf8de6cd ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xc6470599 ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xca40a42b ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x003893b4 mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x6a6e75be mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x80092b26 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x33db8134 mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x36edc7dd mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x3ee991e6 mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x58109381 mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5eebd650 mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x6cfe9a44 mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7a976fcf mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7e7df7f5 mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x8732f923 mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9411430c mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x98743c33 mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xb86321b1 mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbcd7fe96 mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xc87730f6 mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xd8f7d3dd mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xe8dff0e0 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xff404139 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0x4d886dc1 mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0xb6a564a6 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0xb7c14ce0 ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xa8247011 rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xaa911f08 rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xcc7209be rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x73eb35af scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0xb09432a4 scd30_probe drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x213044b4 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x2c910f64 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x594c8eed ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x5ed1505c ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x834e9e12 ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x85bc02f2 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0xb6814a04 ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0xfb84ae3d ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x06b17b08 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x08347e91 st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x08c903a3 st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x2afbbe2f st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x2fb2d23a st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x36f8ac88 st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x3b0df23d st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x481d3fb6 st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x4960a1d1 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x66f95d06 st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0x68e9309c st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x6c53fc68 st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x6cc9686f st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x72aee1fb st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x74cacbb5 st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x96ff6c9d st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xaa3c5742 st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xab2c9bb0 st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0xacbf0d55 st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xb675840c st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0xb841782d st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0xbec91b3b st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd100436b st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0xd880f74d st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd95d504e st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xfda737c9 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0xe5c44272 st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x52115bcb st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x8b82b70d st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x2f5206c1 zpa2326_remove drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x6da82767 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7de6af38 zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xc9e2546f zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xe532b0e0 zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xee8fc18a zpa2326_probe drivers/iio/pressure/zpa2326 +IWLWIFI EXPORT_SYMBOL_GPL 0x0209816a iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x030eca3f iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x12593b9a iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1332e4de iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1e28f658 iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1fce22f1 iwl_acpi_get_lari_config_bitmap drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2137a584 iwl_sar_get_ewrd_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2659e834 iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2710c362 iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2b6dcdc0 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x32875120 iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x32d50193 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x33b5f1ee iwl_uefi_get_sgom_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x361b3aec iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3afb67cd iwl_sar_select_profile drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3e2f9665 iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3f174a2f iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3f462137 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3fd615ad iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4399e101 iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x447808a5 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x453f7c04 iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4652268b iwl_sar_get_wrds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4cb4203a iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x50aa73c1 iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x515100f0 iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x53ebebd5 iwl_acpi_get_pwr_limit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5889c72f iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5988395c iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5f97ef01 iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x67a08593 iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x68aeee0e iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6af615cb iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6cb9faab iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6ce9edf7 iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x75a83766 iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x77ede5b3 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7c689adb iwl_sar_get_wgds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7e3c67e6 __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x802238a2 _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x80f0fb55 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x828c6838 iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x832c9240 iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x84bb50e1 iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8502da47 iwl_sar_geo_support drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x874c77de iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x884e1bdd iwl_acpi_get_mcc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x890282da iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x895c941a __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8cfea771 iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9038811a iwl_rfi_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9051f151 iwl_acpi_get_dsm_u32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9563cbe9 iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x97e8ec50 __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9b4435a3 iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa1462229 iwl_acpi_get_eckv drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xaeac591d iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb37b318c iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb6d18df7 iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7a762f8 iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7d5ffb1 iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xba6831bd iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbafc8994 iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbc743c9a __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbd71b9d5 iwl_acpi_get_object drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbd7cea48 iwl_acpi_get_tas drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc09490bb iwl_acpi_get_dsm_u8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xcd66527c iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xce0c6460 iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd1a9d556 iwl_acpi_is_ppag_approved drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd4fb50dd iwl_sar_geo_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd5085b63 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd82631cd iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd9538594 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe0eb5838 iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe3e73773 iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe75b7e77 iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe8009a99 iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea1b26fc iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xebcab57e iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xede2ea33 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf127e8c2 iwl_acpi_get_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf2e0c777 iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf7a361ea iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf7b92ea1 iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf88964e4 iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf8efd74f iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfa1a1775 iwl_read_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfc1e6f41 iwl_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xff80d3ab iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xff830f4f iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x85979bdb ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0xb9c3aa30 ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x2665a7c1 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x275383eb mcb_unregister_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3fb150d6 mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3fea8a86 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x47dbec8a mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x48e2f091 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x623a65b7 chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7be61816 mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa0b722cc mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa3d2168b mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa4a12c05 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xc8057552 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xcd011fd7 mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xeb2c8905 mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xed911545 mcb_release_bus drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x1c049c17 nvme_passthru_end drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x2d724bf0 nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x32418f1a nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x3bc9501a nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xa82c2cae nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xc1f5bdac nvme_find_get_ns drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x07ab82c8 peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x0be782bb peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x0e35735c peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x1637163c peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2464b544 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x26528316 peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2885cb2f peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2ce7e210 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x37cfa3f7 peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x4d343001 peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x581d4719 peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x58b57d13 peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x690baeee __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6fe6a14d peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x777f6e9c peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x78c8ce03 peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8fc0b974 peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x93b05a11 peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x9c5524db peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xab1098c0 peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xac92cc2f devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb0bd88d2 peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb162cb5d peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xbfb4b58a peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xd215192f peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xdb40c9c5 peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xdc3e464e peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf08fbc16 peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf54c4b35 peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x4860e1b8 peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x516ec2f9 peci_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7b3db855 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x9039d223 peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xf9fe67d4 peci_ep_pci_local_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x047ada96 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x04f07869 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x066b0233 pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x0e3bb9c6 pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x128aa547 pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x1e73bc57 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x25a27f50 pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x315b9816 pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x41eec63c pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x46ed8227 pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x4f8e0e05 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x770ab98c pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x9974ecfb pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x9c4086c1 pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xb6412218 pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd92ee335 pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xdd65fda2 pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xdd754cec pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xf539851d pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x2fc20aa9 sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x36f4c835 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x470cda21 sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x4d621568 sx_common_write_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd07d0025 sx_common_events drivers/iio/proximity/sx_common +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x1124dc11 hda_cs_dsp_control_add sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x2b707546 hda_cs_dsp_fw_ids sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x6711f81e hda_cs_dsp_read_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x7a4b83a0 hda_cs_dsp_write_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xe75e506d hda_cs_dsp_control_remove sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x503e2efb cs35l41_hda_probe sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xa4528854 cs35l41_hda_remove sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xe01b4ef4 cs35l41_hda_pm_ops sound/pci/hda/snd-hda-scodec-cs35l41 +SND_INTEL_SOUNDWIRE_ACPI EXPORT_SYMBOL 0xbb4f9d1f sdw_intel_acpi_scan sound/hda/snd-intel-sdw-acpi +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x0a2a6b56 cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x98e9bbff cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xd262c679 cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x106c252e cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x5354e462 cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x56383e0c cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_SOF_XTENSA EXPORT_SYMBOL 0xed08d3c0 sof_xtensa_arch_ops sound/soc/sof/xtensa/snd-sof-xtensa-dsp +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x05a694a1 sdw_intel_startup drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x5af438eb sdw_intel_enable_irq drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x9733439f sdw_intel_probe drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaa52eba1 sdw_intel_thread drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaaf44653 sdw_intel_exit drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaefc2faf sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x12f4a734 dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x3e7e98b3 dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x646472f7 dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x6e4236f8 dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x70acad03 dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x8f508424 dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xaad33d36 dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xac66d1a0 dw_spi_update_config drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xd07b01fb dw_spi_dma_setup_generic drivers/spi/spi-dw +SUNXI_CCU EXPORT_SYMBOL_GPL 0x0a9821bf ccu_pll_notifier_register vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x19212eb4 ccu_mux_helper_determine_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x215acb3b ccu_frac_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x33527173 ccu_mux_helper_set_parent vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x34a796c2 ccu_nm_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x376eebe1 ccu_frac_helper_has_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x3cca3c4e ccu_gate_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x5087807a ccu_frac_helper_read_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x553cf6ba ccu_sdm_helper_read_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x60e84cc1 ccu_sdm_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x66ae640a ccu_mux_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x67b4f375 ccu_sdm_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x83c753fd ccu_mux_helper_apply_prediv vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x87fcecc6 ccu_sdm_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x8cdb1752 ccu_nkm_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x8d7438cc ccu_gate_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x98224ec7 ccu_reset_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x9a7239d2 ccu_frac_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x9c8ffe02 ccu_helper_wait_for_lock vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xa0f4dce8 ccu_nkmp_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xba079d1a ccu_mp_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xbb6e851f ccu_mp_mmc_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xbedab8d5 ccu_phase_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xc2378215 ccu_frac_helper_set_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xcdae8a96 ccu_mult_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xd35244af ccu_sdm_helper_has_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xd7ee688c ccu_gate_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xdc3ef86e ccu_mux_helper_get_parent vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xde8a0571 ccu_mux_notifier_register vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xdee13cf4 ccu_frac_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xe2fe75df ccu_nk_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xe395e8eb ccu_div_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xeca4e8ed ccu_gate_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xf1d63af5 ccu_sdm_helper_get_factors vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xf9946999 devm_sunxi_ccu_probe vmlinux +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x3dce036c firmware_request_builtin vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x0b245e29 usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x0ba56afe usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x145a5188 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 0x1c12cd18 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x1d9a96df usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x212d4f0c usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x27ce24e7 usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x30c1c050 fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3bf37622 usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4453c759 usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x47b80716 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4d83079d usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5364ae1b usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5ab4d2f0 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6ad0b559 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x8047cbe4 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x85b52093 usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x876d466b usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9d253ac4 usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9edecfe7 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xb6b66d6f usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc61a85b9 usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xdd061aa4 usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe78aa7e0 usb_stor_Bulk_reset drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/arm64/generic-64k +++ linux-5.19.0/debian.master/abi/arm64/generic-64k @@ -0,0 +1,27392 @@ +ACPI EXPORT_SYMBOL_GPL 0xc331c3c7 acpi_table_parse_cedt vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x3d552cf8 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xb562535e crypto_cipher_encrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xbc428376 crypto_cipher_setkey vmlinux +CXL EXPORT_SYMBOL_GPL 0x021b562c cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x04564818 devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x055272e3 cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x064a529d cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0e19ba81 devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x14397316 cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x14cef634 devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1f095727 to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2293ef3e cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x24826bcd cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2b00a6a2 devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x317bfb5a cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3275e6e1 devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x381fb8e8 to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3c4dd2ec cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x484b40c4 cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x494381f5 cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5f83eb76 devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6210111f cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7024cce6 cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x75f9b5ad cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x776ad93a cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7c39fedb to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x8a51fe23 cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x920488db is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9533b3cc is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x96e28cbe devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x971b8d0e cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9fac2fd8 to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xa6176771 __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xae0ef7ec set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xae254a3b is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xaf426211 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb4e951c6 cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbc41bd70 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc228ba2a is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc5f523a0 cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc9c08502 cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcc4dbf59 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xce990485 cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd8fd2b96 devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd9766395 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdb047ea2 cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xe4b9612c clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xe6212dd8 is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xec3ba3e7 find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf0e4720c devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf3f7e3b6 cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xf9e8c570 cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfdc01126 is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfe88c935 cxl_find_regblock drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x0806b477 dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x0831b9d2 dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x204ad825 dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x2a5c0499 dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x30bb2c95 dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6e81a9fc dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x730fd002 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x798fee93 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x826e280a dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xa6bc24e3 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xbe4ba5c5 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc5341216 dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc5e39dad dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xdbfc0ca4 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xe471a41e dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xe7f9dc3d dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xf64af75e dma_buf_fd vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/arm64/crypto/aes-ce-cipher 0x68f275ad ce_aes_expandkey +EXPORT_SYMBOL arch/arm64/crypto/aes-ce-cipher 0xd71b125d ce_aes_setkey +EXPORT_SYMBOL arch/arm64/crypto/aes-neon-blk 0x52d67a4e neon_aes_cbc_encrypt +EXPORT_SYMBOL arch/arm64/crypto/aes-neon-blk 0xb8c706a6 neon_aes_ctr_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/chacha-neon 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/arm64/crypto/chacha-neon 0xdc94f829 chacha_init_arch +EXPORT_SYMBOL arch/arm64/crypto/chacha-neon 0xdd8ec6bd hchacha_block_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0x1c3e6e5b poly1305_init_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0x6ddf27bc poly1305_update_arch +EXPORT_SYMBOL arch/arm64/crypto/poly1305-neon 0xf39f5240 poly1305_final_arch +EXPORT_SYMBOL arch/arm64/crypto/sha256-arm64 0xb455924d sha256_block_data_order +EXPORT_SYMBOL arch/arm64/crypto/sha512-arm64 0x6402c8df sha512_block_data_order +EXPORT_SYMBOL arch/arm64/lib/xor-neon 0xdb786e41 xor_block_inner_neon +EXPORT_SYMBOL crypto/blake2b_generic 0x32e24c8a blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x8261eccb ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x8e688192 ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x90cdc197 ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x9263b417 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x92668805 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x932b6ff7 vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x9f6efabd vli_sub +EXPORT_SYMBOL crypto/ecc 0xa76b31a2 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0xb10fc19e ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0xd6315f31 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0xd94c8eb5 ecc_point_is_zero +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 0x2a99ce7b crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0x52e902e2 crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x60743524 crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x6f12e342 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0x849ec0ea crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0xcc620c00 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/sha3_generic 0x2d7a1a54 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0x3c328581 crypto_sha3_update +EXPORT_SYMBOL crypto/sha3_generic 0xcb54a791 crypto_sha3_init +EXPORT_SYMBOL crypto/sm2_generic 0xdba7dc5b sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0xf4fd3bd2 crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/nfit/nfit 0x06848c60 to_nfit_uuid +EXPORT_SYMBOL drivers/atm/suni 0x0437f842 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x02825615 bcma_core_dma_translation +EXPORT_SYMBOL drivers/bcma/bcma 0x4703c7b9 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 0x0d179e29 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x3b702362 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x50c7b96f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5b98b3c1 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x5e345d30 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x75be9b09 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xaff89a8f pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xb21ba07d pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0xb354f611 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc2dc93b2 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xdc6ece1a pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xe82256c1 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xee237e9a paride_unregister +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x952677e7 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x07a6606c rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x222482ed mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x138b701b ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x31250d0f ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c2054d7 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e742d2d ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50f65edf ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x61ea3098 ipmi_add_smi +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 0x96a6e5e8 ipmi_smi_msg_received +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 0xe98c507d ipmb_checksum +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 0x302a8ca3 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x422e5fc3 st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x7f1ef962 st33zp24_probe +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x985fd5d3 st33zp24_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x330c577b xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7cdec09e xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xad8dcfb4 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x9601adc8 xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0xabf42a95 xillybus_init_endpoint +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0xd6f668c4 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x25c98843 clk_alpha_pll_zonda_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xa03f8920 clk_alpha_pll_postdiv_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xd89a02cf clk_alpha_pll_fixed_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0xed46e5cc clk_alpha_pll_lucid_5lpe_ops +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x590928f7 atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x80a11b1d atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x8d252bd7 atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc71ed50c atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc80f14e8 atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xdf4b1432 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/crypto/caam/caam 0x17572340 caam_congested +EXPORT_SYMBOL drivers/crypto/caam/caam 0x30df2672 caam_drv_ctx_rel +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 0x5dd4bbba caam_drv_ctx_init +EXPORT_SYMBOL drivers/crypto/caam/caam 0x94a7765c caam_drv_ctx_update +EXPORT_SYMBOL drivers/crypto/caam/caam 0xc0eaa792 qi_cache_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam 0xd06d1768 caam_qi_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x081aaa6f caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x18b15338 split_key_done +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x24d4f592 caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x618010e8 gen_split_key +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x68eae372 caam_jr_free +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 0x658e568e dpaa2_caam_enqueue +EXPORT_SYMBOL drivers/crypto/caam/error 0x53d0fc97 caam_ptr_sz +EXPORT_SYMBOL drivers/crypto/caam/error 0xa15404f5 caam_strstatus +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 0xd419ccfd xilinx_vdma_channel_set_config +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0071ed43 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0bc6094c fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x199fea8d fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x24fd0bd1 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x31a418f7 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37e1076e fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x38e97d51 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 0x3cadee07 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x40f61272 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x42ed1de5 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4722346a fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x63a06228 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6449fd40 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dc50487 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x714f87b5 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7812c9bd fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x853dde3a fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8aae6334 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xad1b526e fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaedf84ce fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb11dd383 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb59240f fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1b7fab7 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc27a1836 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc827a169 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xca30032a fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd0390bfe fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd0556f67 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe3da0747 fw_cancel_transaction +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/firmware/broadcom/tee_bnxt_fw 0x57b73b33 tee_bnxt_fw_load +EXPORT_SYMBOL drivers/firmware/broadcom/tee_bnxt_fw 0xdfaff93c tee_bnxt_copy_coredump +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x0b993fd6 imx_dsp_free_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x504a4482 imx_dsp_request_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0xc8c306ea imx_dsp_ring_doorbell +EXPORT_SYMBOL drivers/fpga/dfl 0x029a4332 dfl_driver_unregister +EXPORT_SYMBOL drivers/fpga/dfl 0x2617f9cb __dfl_driver_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x051a477b drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0627750c drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x096c0fe5 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0a245d0a drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0af27921 drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0b630399 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0ca297ea drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x10902b3a drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1d242a85 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1dce7b86 drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x201c5aa9 drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x21b5d5ef drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x229f4c6e drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x362dffd6 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x38f9a200 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a2a41ce drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a83ba99 drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d52fa3b drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d719d0c drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x45d6bbcf drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4609b210 drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4627537e drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x485be9ab drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x49fe7090 drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4ba5749c drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4c822f27 drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4ef4390d drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4fddb310 drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x507eff45 drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x551d269f drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x56288a63 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5869946e drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5b2d9046 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5f9f2ca8 drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a08970 drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63ef89df drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x656d72ad drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aaa87fc drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6c6fa30a drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6ccc9875 drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6f4109b9 drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x724ce551 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x737a9201 drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73d17221 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7b52385c drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7b7f2793 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7dce5110 drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7de91786 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8294c46a drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x82ee2178 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x84624a04 drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x859c65c5 drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x89035df5 drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8960be70 drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ad96698 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8c970241 drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ca2d9e4 drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d701329 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8f2df2cc drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x90b1a19e drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x92b9835e drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9422c66a drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x95726789 drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x964d0aed drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x970e6120 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x97a89b93 drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x98e36356 drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9a5d45b2 drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9c70c6ab drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa1fefe6a drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa9074129 drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa978401d drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xab212185 drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xadfdad36 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xae975558 drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaf267620 drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xafa4322f drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb226fbdb drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb2d47288 drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb470a50c drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb5577ade drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbbbc19c1 drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc020c0c1 drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc0e2c57e drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc3456033 drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc427a079 drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5c99a79 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc638aa6d drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc79ecffb drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc8b6a8ae drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xca92d801 drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcb5709f6 drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcbb4ba66 drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xccf54d5e drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcdd8a80f drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xcef5dbe5 drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd0e77d97 drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd17a8ef4 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd20a9c0b drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd4b5c5e8 drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd5a95eae drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd72b00cc drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd7c45cd5 drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xded6d65d drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe1279823 drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe3c6242c drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe449c2b9 drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe5360b84 drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe86efb18 drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xebfd04ce drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xec0b611e drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedcf81ce drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xef79d286 drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf002b493 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf2028009 drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf416d201 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf5ae9df5 drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf68741fb drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf689ad25 drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf7f8b7d5 drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf89e8b34 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf9079482 drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb1a7a5a drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe12bcb9 drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xff414610 drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0015a83f drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x018e9f07 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02363b03 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02a419ce drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x036ed034 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03a56749 drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c63897 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03eac2d0 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x042b1e11 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x051db3a8 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0586958d drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0623d237 drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06756d66 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06caabfb drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07fb449a drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x087e56e0 drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x092ee887 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x096d97f0 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a1d5cfc drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a26a0ba drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a69fccf drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bab306b drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cc07e70 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cc9e650 drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0dd16069 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e445069 drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e4d0b13 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eb7f5eb drm_privacy_screen_lookup_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eedc1ab drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +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 0x1078d0c8 drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x118e7d74 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11961bc4 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1238fbde drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12490259 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x124acbfb drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13039971 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1448722e drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1449d740 __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1459a55d drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14cc856d drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14ea7a98 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15a29da8 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1741295b drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1748d0d4 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x175bf1b4 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17b6e91b drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a9e021c drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b9d7cfa drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c1dc747 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c72df8d drm_privacy_screen_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d493aa5 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d64ec62 drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e5196cd drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1efd9aae drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f17a501 drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22382ca6 drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a83dbf drm_privacy_screen_unregister_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22ae6989 drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23035e46 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x23ffa7d6 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2461f397 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24cf437a drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x254cd91f drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x266969af drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26f838e0 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x270867da drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2735fde7 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x274c3d4a drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x278e44c6 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29a634b7 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a102207 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a19dbe2 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a3502c6 drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a6d851b drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ad83c5a drm_privacy_screen_register_notifier +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ca6e583 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f476172 drm_privacy_screen_lookup_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2faf7316 drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x307b46e4 drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30a607cd drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30e938d5 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x330cc43a drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x332e7911 drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x341066c0 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3486d374 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3567dfd6 drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3615888b drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36db76a2 drm_privacy_screen_set_sw_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37b78a70 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38954cbd drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39760c48 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b28cea7 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b88e44f __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b94f6ff drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c22a4d8 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c8f5095 drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ce27325 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d0cde0a drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d3e8d44 drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ed0e762 drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fb44888 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x40d00d70 drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46eb55ac __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831da6e drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x485cd26e drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48c7d119 drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48e58cf6 drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a1f65e8 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ba56e5a drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c3766e1 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d8baf94 drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f01077c drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x502e5f0e drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x515fe46c drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51da5c1f drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51eb5da1 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53291ee6 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x535b3352 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5362c6f7 drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x542e3f36 drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x545e734a drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54799584 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54a0dce9 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x556090fc drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x561dd9ba drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56325df3 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57a521db drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b323b0 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b70979 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58306a20 drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58b932ae drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58efeaa8 drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x598882e4 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b6761e3 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c11c286 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c9c0183 drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5daa343f drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e5102de drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e78f20c drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ec5950f drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60329a9f drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60a7ad65 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61fedfba drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61ff3356 drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6244a6f3 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64303c74 drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6494c585 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64a69bea drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65386e0f drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65ce3a47 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6812d8df drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69990a8a drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c35bd7 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b5997e1 drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b63a95a drm_privacy_screen_call_notifier_chain +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bb8d69e drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cb33b25 drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d0b2af1 drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d6fe6b0 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f1952bb drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7077fa2a drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70e94e98 drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x721ce20d drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x724944bf drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72773a6f drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7277e42b drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7295eb19 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74a8c9c3 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x754df822 of_drm_find_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75ebcf33 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x763133b6 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x764dd0d8 drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76843ebf drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77260325 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x776f8bc2 drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x779b5c4a drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77dfb40a drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a48e9dd drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7abbf857 drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2e2166 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c421eb5 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d87f9c6 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eb97243 drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f5bf63c drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81317648 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x827b17b9 of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x838404aa drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8448ce68 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84614115 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84d4984b drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8561f647 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86199114 drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87a00293 drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x887c4ab1 drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x895db4f9 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a386129 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b3db7cf drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b545d0a drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ba4c3b9 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c70b0df drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cdcf30d drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d99b590 drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e4159b3 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e6f9bfc drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e961db6 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eb6567a drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7cdbbc drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x909ef17f drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91be70ed drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x922aeea4 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92373ca1 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x923ada08 drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9243e75e drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932d667a drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x946d522c drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0x947e68a8 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9629438c drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96729e9f drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97f7da50 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98a504a1 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x999af548 drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99a8f425 drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9abdfce3 drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ae629d3 drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce2dca9 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce5e246 drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d7b5d02 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9db69fe0 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e149396 drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9eafa204 drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ef76540 drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f2621a1 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f2eb30c drm_privacy_screen_get_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f3c4b04 drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fc56639 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa18cb501 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa39e8bcf drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3fdd2f5 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4fc4347 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa57b959c drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa60533af drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa68fabae drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa701e908 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa715ff9c drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa74a6bd4 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8e0b7d8 drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96886dd drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa980e892 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa980fee7 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9ce150c drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa60daff drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaaa647cc drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab50ba31 drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac5c0041 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac9e38c6 drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacc2a8ef drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xacc53ffa drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae8f1a1a drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeca63ba drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf64db57 drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0b05ff5 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb22dfd68 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb365afa6 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb46619db drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb46626e8 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb49a9903 drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6fec3d6 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb760a36c drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7a1d1b5 drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb80fc5d4 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb819faec drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb82ea034 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9c32faa drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9e6e82f drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba7f6607 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba87d9eb drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbafb040 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc13194f drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd06c712 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe6e2488 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0118cce drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3c09492 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3f33a8d drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3f58e07 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4bbf492 drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc75e175b drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7910e38 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d04fc5 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d2ad50 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7fff25e drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc82982eb drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc82ae3ba drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc87c875a drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc88bf61f drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc89353dc drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc91efc96 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc978a1ee drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca0b6f4e drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca190085 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcaa136f5 __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcabe0719 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac2685d drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb2cd365 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb6f2365 drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb911366 drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc59759 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccd0b95a drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce3f4bc3 drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce671953 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xced8189c drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf95d5b4 drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05fda43 drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08aa558 drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1526912 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd15d91fe drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3636900 drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4268580 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6afdfaa drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a3e9b5 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8684a66 __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8da2bd1 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda528285 drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb891ac5 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc511443 of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdca2dc69 drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd2ce755 drm_privacy_screen_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd64d470 drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde04c865 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde547ee2 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf80defe drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdffc4c64 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe26beeec drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2f25d3e drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe360f099 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4793213 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe497c6bd drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4ee481a drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe51855f8 drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe55b56f4 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe617a5fa drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe626b986 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6a177cf drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe804de1e drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe849b63f drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a0e334 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9466d88 drm_privacy_screen_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea69d6a2 drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea701b0d drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeaf010b9 drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb15d632 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb6e643b drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb99d8a0 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec12af74 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec7e70ae devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed5da102 drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed74fc70 drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeee31f20 drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeef820c0 drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeef9d8ee __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef1447b8 drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef615163 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefb9cc18 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefe19b33 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf09a3b5b drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf21b5f98 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3a0b7e4 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42edc41 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4bb4302 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf56a73ad drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5e0feef drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf74a8b7a drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf81e2af5 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8ef55b9 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa9c464f drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfabd59f6 drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb53a926 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd96da4e drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfda637b6 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdda2a55 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdf46df9 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeab5542 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfef2a40d drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff50ab72 drm_privacy_screen_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffdb7e30 drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x2755c3fc drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x700f0172 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00888875 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00dc69d8 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x050a20a7 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x065f705b drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06df940d drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x089f7ea6 __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08e387c7 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x097abcfb drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a2ccdf7 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c45c65d drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e43cbfd drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e4b1fd1 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f65900b __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10222c83 drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1083b504 drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x127a8c6b drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x129a86c8 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12b637d4 __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1303f345 drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1461330d drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x149aa49a drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15799549 drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x159849b8 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16782f3f drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a1693b8 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c5d7bcb drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1d086cfd drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1d7ddcc7 __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e87279e drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x214d1af5 drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2162aeaa drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21d541eb drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2383cccf drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25aa3472 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x26648d3a drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2779b61e drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a1ae0c3 drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ab30fca drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e128d75 __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f5ee5be drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f975ea7 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3145f504 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31e0e177 __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34d5fa5b drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x362dfb68 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x374a7e69 drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x393dbda4 devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b8cad85 drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c2f8ac6 drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ee16513 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f1f9953 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f4576e0 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f617d55 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f7d49b8 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3fe2e8f4 drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x415773c7 drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x41864fd7 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x451ec60f drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4634e63f drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47183d3f drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47ba04fd drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a39730b drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b8ae555 drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4d728e01 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e4f42cd drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e78a56d drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ea923a9 drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ef0b9c8 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50137694 drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x529ac726 drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5361a301 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x543fc10e drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5542443b drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5579d2ef drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57e87834 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59a63456 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5aa1d7bc drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ba4bcef drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e5e9929 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5eabaead drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61ca42fc drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x629367e3 drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x63560a37 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6973bd28 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a808c93 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5a0a23 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6bda0a0c drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71141507 drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7267da4e drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7291ad77 __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75022db3 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x751070d4 drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7625a3f5 drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a8a057e drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ae92cdf drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c1e15d4 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d198ed4 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e2f784a drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f9c698e drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81950868 drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x842dd90c drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x848e3112 __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8492746e drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84b4819d __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x854cef5a drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x85c21447 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86a17533 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8858f242 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88739f70 drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ac33ec1 devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b3aaa8b drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e1e6a4c drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8f28d37c drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fe625b2 drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x900a8acf drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x909299bf drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x90af135e drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92d2903d drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9407d924 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x978f9096 drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x97d3292d drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x98d61564 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9917f727 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x996737a9 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d8d74f4 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9f7159d5 drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0258923 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0561d88 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa4b84f96 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5af52ca drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa89da3c9 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab2b7f03 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xadec136c drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaea7a417 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb2fc5921 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb3238067 drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb36753c8 drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb3dbfe8f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5c70915 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb700517c drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7741bb7 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb78ad393 drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc2f7974 drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbce9099b drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdf0716a drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe4bc396 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbeb7672f drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbfcefa8c drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbfe314fc drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc04c4189 drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc160b23e drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1ff1d86 drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2ca4aba drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2d429c8 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc451705b __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4edb5ab drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5358447 drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc6323239 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc66ad940 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc8673fd4 drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc98504b5 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcbbe2408 drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd2d864d3 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd402b51c drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5e45357 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd8634fef drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9a1478d drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdc2dc99a __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xde7c291c drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf8e66f1 drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe3aa614f drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe9cd6668 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xea2b279e drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xebe4f59b drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xebf081a5 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec938802 drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf1a77be6 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf20a23e3 drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2c30186 __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2ec69e6 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf30db916 drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf3fca390 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4d74ef4 drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf736917a __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7426319 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf82ca734 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa759366 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa88b4af drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfaeba39b devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb2d89e0 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x100f6a3c mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x1f8739b4 mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3a9b40d1 mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3eced984 mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x4ba24a18 mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x5dd8dc07 mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x68d60805 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x764ffe77 mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x77d34a03 mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7ce41ea8 mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa15fbd9e mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xa41f87fa mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb07eba94 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb541766f mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xbac559b1 mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xbe810ae2 mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd22e1e1f mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x02d38c5b drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x471632a2 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x47ed22db drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x494654d3 drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7b2b4c87 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x8f5484cd drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xa3afd797 drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xb3da276a drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xeead1668 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xfb677f02 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x2eccdf94 drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x3045b097 drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x365cb6fd drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x3e7a2431 drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x9a85a7c3 drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x00190073 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x18573ee1 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4a7e5a56 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5657c360 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7b6608ae drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7d3f3efd drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7f6e9505 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x86137099 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8896b682 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x896e87a7 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8eca2974 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xac47afce drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xc68205f7 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xd17a57d9 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xde18d4b4 drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xdef42949 drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/rockchip/rockchipdrm 0xc6cfae98 rockchip_drm_wait_vact_end +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x00eb0e3b drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x1e9e7b42 drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x25693aae drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x27d346d1 drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x35fa1272 drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3a706287 drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x41e43458 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x47855d02 drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x483ac23b drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5a274d88 drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x72784ffe drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x750d4a30 drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x76730380 drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x78ffc01c drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7defe7b2 drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x8d7e76bf drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xb6b1676c drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xb79c0d3a drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc7d0555c drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc98bd7a1 drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xd47021f9 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xda227bf0 drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xdb0ae05a drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe0dbbb6a drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe249c501 drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xede6d959 drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xf1139928 drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x1e2a304e sun4i_frontend_exit +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x280362ab sun4i_frontend_update_coord +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x36c0ae93 sun4i_frontend_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x95c10ecb sun4i_frontend_enable +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x96413fdb sunxi_bt601_yuv2rgb_coef +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0x9d07db96 sun4i_frontend_update_formats +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xa631b179 sun4i_frontend_format_is_supported +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xb0634a90 sun4i_frontend_update_buffer +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-frontend 0xe13164ef sun4i_frontend_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x19eb7276 sun4i_lvds_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x43f975fa sun4i_dclk_free +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x6c10c7a7 sun4i_tcon_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x84a7f125 sun4i_tcon_mode_set +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0x8d3f3d85 sun4i_dclk_create +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xbfb2cd06 sun4i_tcon_enable_vblank +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun4i-tcon 0xec59b65c sun4i_rgb_init +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x350e5dcd sun8i_tcon_top_of_table +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x59794620 sun8i_tcon_top_de_config +EXPORT_SYMBOL drivers/gpu/drm/sun4i/sun8i_tcon_top 0x988ee446 sun8i_tcon_top_set_hdmi_src +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01d0f490 ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06ca5def ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b8d055d ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0fa29f78 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1aa72cc4 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d5e11ea ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22da5df9 ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2379e079 ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23a215d0 ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x26228993 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b332b45 ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2cbf7d8e ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2d4a1037 ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x316877b0 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c757d1e ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43256313 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x438efbe9 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43e15f53 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45612e75 ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47608ac6 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62ec60eb ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6b070f44 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6bb0c014 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6cab82ac ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74f74676 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x753f22c2 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78cf2e20 ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78d0065f ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7ad8b0b1 ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cb91b2a ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7efd0869 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82020da8 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84eea677 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8546133a ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85ae34d1 ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8aed9ee6 ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d1e5653 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8df860c9 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9967f0ff ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b460965 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d4b07b6 ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa80b5dbd ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbf48e901 ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9d680a3 ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcaa90f2f ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0636c79 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd102d75a ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd10c4e7c ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd160fbdd ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd2b8a30c ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9490ca2 ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdbdfc51c ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd67acdf ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xddf96136 ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec9bc5d8 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3358fe2 ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6da9805 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf91636c2 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfab5c59a ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfac8a252 ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff81aa9a ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/vmwgfx/vmwgfx 0x1984f833 ttm_base_object_noref_lookup +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x052af259 host1x_job_submit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0bf965f4 host1x_device_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0c191395 host1x_channel_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1006dd60 host1x_job_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1e0cbe2d host1x_client_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1ef3a509 host1x_get_dma_mask +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x20210654 host1x_device_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x2ca1bae8 host1x_driver_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x2dec7e45 host1x_job_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x33dc7c56 host1x_driver_register_full +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x3b6a53a1 host1x_job_add_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x3ba28c9d host1x_syncpt_read_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x3bfb0b7e host1x_channel_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4128daa5 host1x_syncpt_get_base +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4a15db57 host1x_syncpt_read +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4b183511 host1x_syncpt_incr +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4d9c5afc host1x_syncpt_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4fd3948d host1x_fence_create +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x51de13ce host1x_syncpt_base_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x52c75ff9 host1x_syncpt_release_vblank_reservation +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x63706599 host1x_syncpt_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x6e5e4a47 host1x_job_add_gather +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x72e78e54 tegra_mipi_start_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x77cf4870 host1x_syncpt_get_by_id_noref +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7e96c034 host1x_syncpt_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x805fea18 host1x_syncpt_read_min +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x80ba242d tegra_mipi_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x8a999156 host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x8babc7fc host1x_syncpt_get_by_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x8ed415ce __host1x_client_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x9451a33e tegra_mipi_free +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x9465891e host1x_channel_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa1adc362 host1x_syncpt_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa486f7f0 host1x_job_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xa733ff60 tegra_mipi_disable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xb2f1ec7c host1x_syncpt_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xbcbe65a0 tegra_mipi_finish_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xc1d809e8 host1x_client_suspend +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xc46176a7 host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xcc18dc67 host1x_channel_stop +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xd331c4fc host1x_job_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xe17fa143 host1x_bo_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xe2ba5ad8 __host1x_client_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xef57cdde host1x_client_resume +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xefd4deb6 host1x_job_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xf7d25f08 host1x_syncpt_incr_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xf8a79b19 tegra_mipi_enable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0xfe7679f4 host1x_bo_pin +EXPORT_SYMBOL drivers/hid/hid 0x2cf0e19d hid_bus_type +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xaab22097 vmbus_sendpacket_getid +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xb32f38d9 vmbus_sendpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xeef2772f 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 0x4a3b5094 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 0x6c69cf61 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x98d777fb i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xbbcce409 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x680e7a1b i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x95d745fc i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xd38ab6c6 amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0xc61e7a34 qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x07441985 iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0xc60dac54 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x372d7b11 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0xb8fdd9e6 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x5285f10b mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x83805892 mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0xa9a76d25 mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x7489ac52 hts221_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0xd584428f hts221_probe +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x36e6eaec bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xca19cfae bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x253c6203 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x84442282 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0xd976b40e st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/industrialio 0x02e4be0b iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x07695470 __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x35faacd8 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x3cbf2a61 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x3faa383e iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x45182ea6 __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x500cd7f9 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x535a064d iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0x638bcfd4 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x67f44f09 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0x69a508db iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x7cf7d796 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x85210d8b iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8db9c5fa iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x8f604759 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0x911fecca iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x9a0282bc iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xb889b2e8 iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0xc904f303 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xd32bdb4d iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0xd35b784d iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0xd6a9e8b4 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xfbeb239e iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x35556896 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x3cc57631 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x56012725 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x8310923a iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0xd02accfe iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x2f44f983 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x42a2cfb5 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x4470cc04 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xd3e5742a iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x1f9cac84 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0xd6fbf8e5 iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x0fa67ad1 bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x2ac49ffd bmp180_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x83f144e0 bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0xc042429f bmp280_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0c0a22d0 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e8301dd ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x127e9caa ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1bccd666 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x68eaa190 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x859d0d42 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x900e9e54 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9ee43f4b ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xafd71e5a ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb8d7aa56 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbcaebd55 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc30755cd ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc6e6d9f7 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcf118358 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7946d61 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00d0f438 ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05d12b84 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09bc6319 ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b301726 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b6ad0a4 ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c86f5cb ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cbc1024 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d3354a6 rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10024264 rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11729b4b rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x146cc8c8 ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17a47a8f rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x18d84e5a ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a0670a6 ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b511cf9 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1bad8686 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1f908729 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20882c0e ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x210a8318 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21600f9d ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21960e48 ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x219f46c7 ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x239db85a ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26f8b295 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x272d47fd ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27d424fc ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28a507e0 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28aa94d5 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28edccc0 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x290322d4 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29124432 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29d8f116 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f42445c ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fb46b24 ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2fd41da4 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3083169f ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3116ef8a rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3239eb85 rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x328f4886 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33d0a44f ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x348a1cf3 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x350ea958 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36566161 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x380a9959 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38b1e094 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a0fd0a7 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b298d3b rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bfe331c ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x400fcca8 ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4027ada3 ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40859a69 ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x439ce33c ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x439f9b99 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46ca471e ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46ef2cbf ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a29ac5b rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b34c6b6 ib_port_register_client_groups +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 0x4ee5e481 rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4efd9fc6 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f06ea4f rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5123b888 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51820c8b rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52155af0 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53ee9898 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54084480 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x57a3bdda ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x595f3da6 rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a093373 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a436606 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c2848d2 ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5db02775 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e9dd89f ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f92475c ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fffa6c4 __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x601711d4 ib_get_eth_speed +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 0x635d7be8 rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x637fa1d2 ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63fd47e8 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x646bb341 rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6568cc1a ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65d8621d ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66a898eb ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67b9610d rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69b60f86 ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a63dca8 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d75a72b rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6db541f2 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ef9e03d ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7186875f ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x719ed460 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x729f9b3e ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72e48d66 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7367c0ad rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73946816 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73c56bd8 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75175b81 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x759cdf25 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x783145a2 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e60f90c ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x820a5b64 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82b07692 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x836ba387 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8444e54b ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86cef180 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8740ee6d rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87a16752 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x887adfbb __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8983e781 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7528da __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e864a05 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f58c37d rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f8845b5 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e807c7 ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9133518c ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x913c2115 rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x943370d1 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x978210ca ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98a30ed6 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99c5ec4a rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c3f2c85 rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c57b533 rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa00623f3 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0dbaeb1 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0e674b2 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1d36e26 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7a62150 ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaadb6595 ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac7ed28b rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xacb7b296 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae4e534b rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0e24a18 roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3477850 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36e4148 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb70bab26 ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb80bec3 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb8c4736 ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd65758a ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd7de9c1 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdbb90f9 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe41bad7 ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe444a81 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe6d2591 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe9ce2ba rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0d61252 ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc164dc11 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4476acb rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc60330e7 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc606e255 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc647bb5d ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6865214 rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7bc9533 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7c250c8 ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8a0da77 rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8d38664 rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb0842f2 ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc864fbd ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf8c10f6 rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfbc053b ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2f3cc9f rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3d7f478 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd929464a rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9fca342 rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda3bab84 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbf1ecca ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe02df2b0 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe04450ea ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe09bbf41 ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe55a3f03 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe56b0f3f ib_create_qp_kernel +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 0xe5e1f5a5 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b52e5f mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c81c19 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8cbb626 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8f184be rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e799fc ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea3c7ba9 rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed6fd932 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed9f848f rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedef0c8d ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeec73bfc ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1f7afa2 ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36d21f2 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3c0e501 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5bcb134 rdma_nl_multicast +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 0xf7f920aa ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa015a3b rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa1a18b6 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa87457f rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb03e620 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc058669 rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfce6ac48 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdbf2793 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdd89c3c ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfe2b5d23 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfea43972 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfee2c6e8 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff6d8139 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02c99a80 ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x04476d45 ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x11b582f4 ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1b54bd5d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1d0f8eac ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2d9d313d _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x30e86490 _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3327ac32 ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x362b802b uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3dda804e uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x41d85e95 flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x521f4e70 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 0x64a3a7a8 ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6662f5b9 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x73d6c9a1 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x74b844e2 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7dac94e2 ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x850ba6fa ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8b1c158a ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x9af988e7 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa0051e09 uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xae2e783d uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xafdeafbb _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb6c7e8a1 uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbcd3942f ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbde5c050 ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc011d7a5 ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc028775d ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xc90619ba uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcae1f356 ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcd019652 uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd242a966 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdb1d194e uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdb9c9ad2 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdbc2716a ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe1a0a7f7 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe2c3a0b5 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf2a7ab8f uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfdc95bc1 ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x12f57838 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1770b143 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x32fb6769 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x53a1a773 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x649c8a9c iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6c858ea6 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x934d805d iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf0037923 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x02983f82 rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x055d63c5 rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0a6c591c rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x101f25af rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x226714a8 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35ae021c rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35b2c300 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x401428fa rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x47a827c0 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4fe55859 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x590e69bd rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x655bbf7f rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6afa86e3 rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6db75d91 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x793d83b6 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x79e4c537 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x83f24537 rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x84111868 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x85143247 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9a3be4c0 __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa8971bf6 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb7cf765f rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbccf6695 rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbd18348e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcefb3a29 rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2a6a674 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd563508b rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xda32adb5 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb30fe01 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe12e804b rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe530014c rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe5be9522 rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xee386bd7 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xee46544a rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x43cd8c92 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x5a759fae rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x5ce01442 rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x6dbf360a rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xa377c895 rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xb24d82b5 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xf6b46eed rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x0914dfe8 rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x1f8146bc rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x242a8646 rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5b01e41d sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x887302f3 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x91195d86 rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xeae62e06 rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x2e003afe rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x3619e04c rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x6e2df602 rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x80d8be16 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x9e0c9904 rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xe0c96f38 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/input/gameport/gameport 0x01bdab87 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x18409173 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1db8948d gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2a059507 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2cab6ac4 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x509f8860 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x61d8c0b6 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x95a5142f gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xbd7228b0 gameport_set_phys +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x63ecec22 iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xa332eea3 iforce_send_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0xb1bbc158 iforce_init_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x0770270d matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4b5b5547 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x814f23ca ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xd4752968 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x01eeca31 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 0x72c88f27 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x28d579e9 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xa2133e8b sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xcbbe1b0a sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd7d1ea03 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd8c51be9 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x09fb0efc ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xf04aeb47 ad7879_pm_ops +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0xbf48bd67 qnoc_remove +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0xdc3092ef qnoc_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x037c406b detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x27205ec0 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3473d87f capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x373fce9f capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5621b898 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0xef4ee223 isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb32a1e35 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb5560b26 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc07b6c3f mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xec19b9f5 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6c965046 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x98066cba mISDNisar_init +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1f4c34cf mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x23da479e recv_Bchannel_skb +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 0x36aac183 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x467329bc queue_ch_frame +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 0x5bdfad00 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5f0c9d89 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6047df40 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6b450efc recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6d91c713 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7f5bb792 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x851b2660 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x97c38dfd recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c928457 mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa070a6b7 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa4b35fff mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbaa19726 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbb5a682f dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbbbc86d0 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcd9ad68 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd20dc9a2 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd30f0c8b mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe43e0346 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe7a313ac mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf54c8ec7 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf5eb9e24 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 0xa2952e06 ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xcdd78905 ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xced72aae ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/mailbox/mtk-cmdq-mailbox 0x8bec4974 cmdq_get_shift_pa +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x12b74b53 omap_mbox_request_channel +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xa32fb5cd omap_mbox_disable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xc3e962ac omap_mbox_enable_irq +EXPORT_SYMBOL drivers/md/dm-log 0x02c66738 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x945132b6 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xc7b9ae92 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xda8c8e87 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x10fd6b8b dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x35cc75d5 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3bff693c dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9edaa226 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc7f61563 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xecab9e55 dm_exception_store_create +EXPORT_SYMBOL drivers/md/raid456 0x27ec1743 r5c_journal_mode_set +EXPORT_SYMBOL drivers/md/raid456 0x84461d2e raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x05709b71 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x1f1520d8 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x28895909 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x35afeb14 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x36ee2539 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x467b9cb1 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x57e43ea5 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x725d75c3 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8ffb2958 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x96f6a903 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xadb24d65 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbb657e7c flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe21168bf flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/cx2341x 0x03fda3ae cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x142ddf16 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x27cb3ebb cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0x970ec00b cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdbc5583a cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0xe1fe1432 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xfe3862ea cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0xcae43ec1 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x5c254c71 tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x75a561e8 vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc2d9e090 get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc5e5573a frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xcf2d8b6f vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xdffb744b frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x39dfef2f vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x562142ca vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xb2ce4380 vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xcf29c566 vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xef2b84b7 vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xf0ca3956 vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xa21fa765 vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xccd197c7 vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x315db370 vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x001901e1 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x01961796 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x13d91786 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x140698f9 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x176ca2bb dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x18acd31f dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2f5cdf80 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x30ce0503 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3b93d71a dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x49082898 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4b7d30db dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x54abe4ff dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5deb63da dvb_device_get +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 0x6a9f708a dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6b3355a9 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7c419b81 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x88bdc1df dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8c54b0f8 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8d364c18 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x91a6794b dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9263a063 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9892f496 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x98a50699 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9fc589cc dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa4235824 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa7f24bc8 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb3352dd2 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbfacd086 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc3f679f9 dvb_ringbuffer_write_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcfbadb44 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd478228a dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdba0e2b8 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdf77c99b 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 0xeda20e12 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf0c225f3 dvb_ca_en50221_camchange_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-frontends/ascot2e 0x0d0600b1 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x57104a70 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0fa90a84 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1296117e au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7592304c au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x937651f9 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xab9802ed au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xbb74c45d au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd27c3309 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xde5a82a0 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xeb5d6867 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x56f0f118 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x94e3a089 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x505ea7c6 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x130396cb cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x4b4eeda9 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x81f6bf1e cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xe5dabf67 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x0c7c0f1c cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x2e472311 cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x7e05cf5a cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xc7224660 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xc8fa3631 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x2aad6910 cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0xe441a47e cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x1588961f cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x1a29c62e dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x69105e57 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x6f4d430e dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x8a9b0482 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf04da5e9 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x23ebc9f8 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x46cf922d dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4a1129e1 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x525a0588 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x57a9f4cb dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7aa1608b dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7e6d996d dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9fad4f96 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa087ac86 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xaff1aef8 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbc0024ce dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbecdb108 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe5d38b87 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeb206e74 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xf48011b6 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x77b55ab2 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1f45fb5c dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x2a3500e8 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x5777fa97 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x766758ff dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9778bff1 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xecc79514 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x15ee7763 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x59a73c2f dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x8cf8409b dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb8994ae9 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x951a16e6 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x82ccbd63 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x090bc98a dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x0cfb9277 dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x2614a1b2 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x3fe1b816 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x656a3b30 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x70b656f7 dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x88fa0e2f dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x8c46b781 dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xa78516ea dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xa7eb184d dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xc335a3a2 dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xd3695712 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xfdccac5a dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb9c4829f dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xdf422cb1 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xdfca6321 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe4e89b59 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xef5ca6c0 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x926f74b4 drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x8c514f30 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x23508c73 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xb5f08bd5 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x1ba12b7d dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x3cb8ead3 dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x71c7fcbf dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xda09d8d7 dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x31259fc4 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x4e40e3ec helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0xae87763b helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0xb2946aba horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x996b0645 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x052a6839 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x44804871 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x26be0bf9 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xa9fd5902 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x08f7c31f l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x065e5a03 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x8320281e lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0xad906f22 lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xd8027413 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x09a6bb4a lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0xff302429 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x94081256 lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0xb9e6c0e1 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x408eebbd lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xbc6feabc lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x2f8557aa lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x85588ccc m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x8a975b61 m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xcf72defe m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x68e03b72 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x9e9d6081 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x20adf99a mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x63c2a0fa mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x9e361ad0 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x5481347f nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x7c856a0c or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xd3654cf5 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x56bf4fd7 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xc2d09584 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xcafa8274 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xdc305617 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0xcc61b858 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x4f0c407d s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x1de85a41 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x54b6e8d3 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xc3b52c82 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xb457bf16 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x3ff50918 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x2eca5ca0 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x99ba7602 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xe4dad035 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x4c8e130e stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xcdbce963 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xfd4cf759 stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xe611750f stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xaf2ba9e6 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x4ec69e06 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xb3b7812c stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x9b3038e1 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x5fbe6a94 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0xf35f8034 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x920f4de8 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xa982529c tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x54a46f33 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x7d16d01a tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x3f5f5380 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x0fc8a8f7 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xfcf5e0cb tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xa1cb0de1 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x269b8ff2 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x3d4e8fac ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x8b225bc6 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x5fc473e3 zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0xe21fff20 zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0xab009d60 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x2ed405e7 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x702c0e9a zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x11eff487 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2bb3beef flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2c3c3013 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xa23c652c flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdd0d84fb flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe650d1f4 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe783d6c3 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x01d4e9de bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x279a287c bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x405729e2 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x547fd75a bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x05a27161 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x0c656a4c bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +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 0xcfb4a90e bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x22a28543 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x4b787394 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x54210bea read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x657c9e6f dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8752251c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8cf80ecd dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xa6fa320b rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdad9f79d dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe1fb0f2d write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x30268b3a dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x0bb5d59c cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x5adb4069 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xc6639434 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xe82aa998 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xeecc4493 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x1ab311dc 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 0x34ce02be cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x366555e3 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x42045cc6 cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x549f07a6 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7c3905f2 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xba55c489 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9050411 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf75ff08d cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x7b60c02b vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xba678ef9 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x1abc1d30 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x46b79b23 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc08f3424 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc22890c6 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x21a92460 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x525a295b cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8ebddf19 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x9542484f cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xb465abd5 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xde2ffe5c cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe73d4eaa cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0511da22 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1190fcbf cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x337ecd1c cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x3eacb600 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4213c9f2 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4d893c1f cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x535a7895 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x59e28c36 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5edb7ae5 cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6138e152 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7f9da635 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x82cd0dce cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x85eebc0a cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d88137a cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8de6fea3 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9427628f cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa32061e3 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb5a45f61 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb9d119a8 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbb4b85c0 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc41f41a6 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xe2c31982 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0xd8f5f2e7 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x08910da4 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0d1edf7a ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2ca7318f ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2e6c3518 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6197c2e2 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x61dd4328 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6312457b ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6e2cb80b ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fa3d246 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8590d92f ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x882b13c2 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xaa8f1e12 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb8a68c37 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc2de17f1 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcb6840f6 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd38019c8 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xef8e60a4 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04978aee saa7134_set_dmabits +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 0x2c3d7fde saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x32458361 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3e272806 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x50d13520 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x6932d4a4 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x84e7146c saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8f1ad46b saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x90b60708 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa9e81cb9 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc38e6724 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xdd61bf04 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/platform/allegro-dvt/allegro 0x2c79d0f2 msg_type_name +EXPORT_SYMBOL drivers/media/radio/tea575x 0x02ae41a2 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x0f9f0c98 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x1908d99b snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x1b81d1c2 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x98b88c88 snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0x9daf8ca0 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0xf3f49344 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7f1ac0c0 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb5516017 ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0xce3696f3 ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/rc/rc-core 0xe4c51711 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x4da3dd1e fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x739b574e fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x2ef24886 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xde54cfa2 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xe7a84ec9 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/max2165 0xbdd89703 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x61b177f3 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x80d45ee1 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x9d48cce9 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x9ed6f4d9 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x1d677532 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x33c0a7dd qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x0bed5174 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/xc2028 0xd9d784e3 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x48f62c6f xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x896e73d0 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x0a433de7 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x6dcd45a5 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x08007774 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1635c3a9 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x38aaf295 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4269545d dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x49cd869b dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x63e9bbc7 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xbe8cc7cd dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc9950cf9 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xff84d8d0 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4b213836 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x6839abda dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x878e2df9 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8b6f5395 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x9e3db238 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe1a6bfd3 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xef48bb3b dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x60026f5a 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 0x175be8e2 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x59c5d204 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x65136e63 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x68d1d4ab dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7e274dd3 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fbf40e6 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93822ecb rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xea7491f2 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf55461e0 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf59bbb13 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x5b700aad dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0xc69c5d49 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x3467ea4d em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xff8b620d em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x0a269543 go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x0b065fa3 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x0f32cfc2 go7007_update_board +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x408030f8 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x5a3da39b go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x666b874a go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x77cde2f8 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x893cf1cf go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xe700c207 go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0b7dd640 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x2d0f209c gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x3dc50dca gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7753f3a2 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x88b54330 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9686f832 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xa872999d gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xe5fe1292 gspca_resume +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x3d134c2d tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xca894a93 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xea8f175f tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x50d023be ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x7b172274 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x0b2b4759 v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x0ec95a60 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x23646ab1 v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x4b6d9086 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x519908d8 v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xa6e8e7e3 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x06e779c9 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x180413e3 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 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7f4ceaa3 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x851b6fdb v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf626dd03 v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x012cc56f v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x05a1558f v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0c93f487 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0f923240 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15449ab9 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15c28f08 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x15dd0946 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x178faf31 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x17e8d867 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1838962a v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1ad2e721 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b1b34a5 v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2f996c70 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3077c951 v4l2_ctrl_find +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 0x367ac20d video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x496f9f11 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4e7ca35d __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4fc2ba4c __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x52990b2a __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x58cb1444 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5a7d3b10 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5bafbd3d __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6403cd5b v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6e25f8fd video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x736a8271 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7518a28d v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a24c821 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a29d54c v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fe40df9 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89bfcf4b v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89e3897d v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97701cb3 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x97bee574 v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x98472dca v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa0291110 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa63f9d74 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa70832fb v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb525a14d v4l2_ctrl_g_ctrl +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 0xbc675d71 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc30b3118 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6a843da v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc7d86c13 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc872adf8 v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcbf321d3 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xce4a9961 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd16d9c01 v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3d93abc v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd4209ef8 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe90b7872 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe94971e6 __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xee517891 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf2b4505a __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf50fecbc v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf5653882 v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfedf8f37 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x29be8e03 rpcif_dirmap_read +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7e9f5bc0 rpcif_manual_xfer +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x94820317 rpcif_prepare +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0xae181ff4 rpcif_hw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0xcfc98a62 rpcif_sw_init +EXPORT_SYMBOL drivers/memstick/core/memstick 0x007cec6e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x178e9fd1 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2693ee2c memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2ad78f90 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4a4e5778 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x64bec9a6 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6ee19ec6 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x719d24f1 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x75430662 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x797221c2 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7a870ecb memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xae50437c memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd548e995 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfa2b0069 memstick_new_req +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x007b9a38 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x22b3d4a7 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x24e32670 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2cf17f40 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b92bfaa mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4752723b mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59f183f1 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5b3726d9 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6d7b2acd mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x76127ecf mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x790af4d1 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8a0853eb mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8e2a3cda mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8f9672e3 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x975c44a2 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa9f81ee9 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae8d4845 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xafb31b15 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbbc4fb13 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc4b292d9 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6a58e8c mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc78b0192 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd63a5563 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd70c0214 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdf68f9f2 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe3b9e6f3 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9807916 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf993ddcc mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfc8d986e mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0166ae81 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x03612eeb mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1159018f mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x11912b95 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x143366cd mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x15040aa8 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2270cce2 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x323bcf28 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x47d7ac9e mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b07e882 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4b3496c3 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5563743f mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x670bd045 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7262d3e9 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x741d796b mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x757b6b0f mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x922552bb mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9b79951a mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9fc96ad9 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1199d3a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa140c807 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb5c7d681 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb87d5a7b mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc9619b6c mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9bdc09e mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdb7f4df1 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf23fdedb mptscsih_bios_param +EXPORT_SYMBOL drivers/mfd/axp20x 0x3cbf8c4e axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0x5ac3f5b0 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/axp20x 0xc544792d axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/dln2 0x004f50e2 dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0x398adf25 dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0xedaaa45c dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x33baec2f pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xa859d268 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x140c6f6f mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1a275480 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1b578bfe mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x37d0c64f mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4bbfe8de mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x71ec7acd mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7d327085 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8673336f mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa99d578f mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xae4fdb47 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc17f67eb mc13xxx_get_flags +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 0x4f778d98 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x6c2e3365 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x714e5dde wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0x7d4d3601 wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0xbb1b005b wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0xd0158fb5 wm1811_regmap_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x46aab480 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x7c2cfa6b ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x5bafa76e altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x63f4a2b3 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xf5188fbf c2port_device_unregister +EXPORT_SYMBOL drivers/misc/tifm_core 0x0ffb277f tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x1a1ea9e9 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x275bfd2e tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x27b3e9ef tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x327240de tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x478ac76e tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d08f165 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x99fcac53 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa69b2ec0 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xcba9d319 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xe1551012 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe89c465e tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xfd73c93d tifm_add_adapter +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x0a005aff cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x272279e1 cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x5ac5e47f cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xd4433710 cqhci_deactivate +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xebb2aa15 cqhci_init +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x1f605afe dw_mci_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x32942f70 dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x539b105a dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x847635c7 dw_mci_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x2e966115 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x5d51471f mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x03dd7d14 cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1f8cf74c cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x70a47493 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x804d46e6 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9c14ba4d cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd1d6edc7 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xf555cd0c cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xff9fa623 cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x3a2b915f register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7b1089f1 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9feda431 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb3754a2e unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xd12d9b6e mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x98cf57ad lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xd03be20c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0xc71760c7 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xccb71b78 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x102603bc mtk_ecc_get_parity_bits +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x16049f66 of_mtk_ecc_get +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5437e775 mtk_ecc_disable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5de55d81 mtk_ecc_get_stats +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x6df58afb mtk_ecc_release +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x76e53683 mtk_ecc_wait_done +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x8dcc87d2 mtk_ecc_enable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0xda64ef4a mtk_ecc_adjust_strength +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0xec8b9207 mtk_ecc_encode +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x1f853027 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x20c58f8a nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x32254a96 nand_ecc_finish_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x45e741cb nand_ecc_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x57065109 nand_ecc_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x697b7cc8 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x89a9958c nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x8b4e3c5e nand_ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xa49f270c nand_ecc_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xb3c779a9 nand_ecc_prepare_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc6d68811 nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc7371769 of_get_nand_ecc_user_config +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc82996c7 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc971b1c5 nand_ecc_is_strong_enough +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xcbf10913 nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xcd9fbc24 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd4075b2c nand_ecc_get_sw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe0200d31 nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe6db989b ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xea4af81f nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xec89cbbc nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xef5492c7 nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xfbb48d86 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff4351b0 ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xb4a4c90d onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xb6c90d7f flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x645fb179 denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x6c99f627 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x05c7e35d nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x0d2e3682 nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x1c23255d rawnand_sw_hamming_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x480cef62 rawnand_sw_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x49373c72 nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x83f3fdce rawnand_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x840ed436 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8b5eee50 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8ecbb3b8 nand_check_erased_ecc_chunk +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x9058e098 rawnand_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x96f66310 nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xcc4fab1c nand_monolithic_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd2e9b82c nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xda3bf9b2 nand_monolithic_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe63ce381 rawnand_sw_bch_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe6ddfd44 rawnand_sw_hamming_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xe9ad00d2 rawnand_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xee076657 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/omap_elm 0x6a39d62c elm_config +EXPORT_SYMBOL drivers/mtd/nand/raw/omap_elm 0x7b685723 elm_decode_bch_error_page +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3cb69cec alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3cd32548 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7b5def5b free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x809a4e29 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x935086d8 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x999c1266 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa6326d08 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xad7e6595 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb5d69ba6 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe0d506d7 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfda865ac arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x95957b9c com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa918976c com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc1cf1e8c com20020_netdev_ops +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x461e2343 ctucan_suspend +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x592faf9b ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x715f2a4d ctucan_resume +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0848590b b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x14b7af32 b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x19b3634a b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1b8b6d34 b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x21a1fe8c b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x275f06fb b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2fd1ae65 b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x306e7111 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x37c694ea b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3a041b76 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3a55c434 b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x469cd186 b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x489ea00c b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x516354f8 b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x5359733c b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6436205f b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x64372ccd b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6c21ecfb b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7b3ce73d b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8b84488f b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x93c61169 b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x9e567aab b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa549f23b b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa954471b b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xabcb5b3e b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xad397d53 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xb043f36e b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbbaa1d09 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc95a3dba b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd141515e b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd5f0f89b b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe228fa67 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe9d19b72 b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xec1cc16d b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf1832d73 b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf2a93d8d b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf30d00fd b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf3b3ea13 b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x04b49ecc b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x63ff85b5 b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x9a8ba0b9 b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xc920dd54 b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x002427ba lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x4b62f04d lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x91ea2932 lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xada83f40 lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0xb14dbcec ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x3d165b01 ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0xa75e3eb3 ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0xdbc4a571 ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0xe86a31a6 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x1e95355c vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x41883dd1 vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xa0f51d41 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x61e820a7 xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7ef4b450 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x83b7b667 xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972bf7e xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8fc72a55 xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb25facfa xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb89aa5e3 xrs7004e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xe86af037 xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x24605333 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2c592c4a ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x542d4f01 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x57fce5a9 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7afcf518 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa432b43d NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xb53ce41c ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xcaa11c5c ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xebe8b196 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xfbf7cb7a ei_open +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x9b089d76 aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0xadbc4aa2 bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x8060ef3b cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x5e1b66da cavium_ptp_get +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x5e949721 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 0x07d6f815 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0e7905de cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1b0fb2c6 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x365a3c69 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x443d4068 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x47e118f4 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4dc6b8b1 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x561d5857 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6dfa1c17 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x78f050aa t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x834dcee2 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x91d3d843 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9da9711a t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9f9c19cf cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xaa56b93d cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc65e7805 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06a8a57e cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06cc3ee6 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x09e1fd84 cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0bf8d175 cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0ec0479e cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x214ea52a cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x226a407d cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2381b697 cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x29bbb3c7 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2c2f65d5 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x347b552b cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a772887 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3beb36ab cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x49d51067 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x507e3d74 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51a0aa80 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57df7276 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5d2738e4 cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68e0edd5 cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7db174ca cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x83285369 cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x839be63f cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8474ac07 cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8e95094a cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8fdc07f9 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x97da45f3 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9aeaa1c2 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9aeca7ca cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9d906b72 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa2d409e9 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa8db193f cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaaf25956 cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb28f9d32 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb54b2fd6 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc58d1767 cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc6a352f5 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc92b0d4b cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcbd42722 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xccdd4d47 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xce665657 cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd0014370 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd9a9fea0 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe29ab401 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe5c21b98 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xec637be9 cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf84183b7 cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfd556898 cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x06c9bbc4 cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0a80e56e 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 0x2fdaebe1 cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x49e7a006 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x511be4f0 cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xa2e87515 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xea4236cc cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0f9a2225 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7efe0803 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x83c933e7 enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x8de57e63 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xa6bc988a vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xbb5b7d8f vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xc9b068a8 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xe33d9c7a be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0x27fdc262 dpaa2_ptp +EXPORT_SYMBOL drivers/net/ethernet/freescale/dpaa2/fsl-dpaa2-eth 0x4412391e dpaa2_phc_index +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb 0x3dc4978b enetc_ierb_register_pf +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304 enetc_phc_index +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x474ff2ed fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x5da1d6b1 fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x946c8d2b fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xedd07664 fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x07ded8e1 hnae_get_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x2cbe7af8 hnae_reinit_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x5bad29b3 hnae_ae_register +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x73bc88a3 hnae_put_handle +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 0xe14cd026 hnae_ae_unregister +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x49a299f7 hns_dsaf_roce_reset +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x083eb2f8 hnae3_register_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x0f9ef756 hnae3_unregister_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x76c0c259 hnae3_register_client +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xae2bc4a7 hnae3_register_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xc0c9f3aa hnae3_unregister_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xd775f1a8 hnae3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xed947b02 hnae3_unregister_ae_algo_prepare +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0xf05feb22 hnae3_set_client_init_flag +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x81d69e1f iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xc25612a4 iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x965ff908 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0xbaa35511 ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x0209bf07 otx2_mbox_destroy +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x1122dfa1 otx2_mbox_get_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x19fc7f55 otx2_mbox_msg_send +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x1e940087 otx2_mbox_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x22f94bf4 otx2_mbox_busy_poll_for_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x364e8761 __SCK__tp_func_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x3aa88269 otx2_mbox_check_rsp_msgs +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x3ef531b5 otx2_reply_invalid_msg +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x49286d3c __tracepoint_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x4d90631b __tracepoint_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x6365a74f __SCK__tp_func_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x7cea9ee3 __traceiter_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x825857f3 __traceiter_otx2_msg_interrupt +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x8f772a3f otx2_mbox_id2name +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0x91b134f8 __traceiter_otx2_msg_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xa9a5f460 otx2_mbox_alloc_msg_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xb150b38c __tracepoint_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xb1ff3e7a otx2_mbox_reset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xb5d2d62a otx2_mbox_nonempty +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xcef3985a __SCK__tp_func_otx2_msg_process +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xd0628d6c __otx2_mbox_reset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xecb24fcd otx2_mbox_wait_for_rsp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/af/rvu_mbox 0xf2ffc5a4 otx2_mbox_regions_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x045f05fc otx2_sq_append_skb +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x09fac109 otx2_handle_ntuple_tc_features +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x0e7dc565 otx2vf_set_ethtool_ops +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x191f9c5e otx2_init_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x1e64521a otx2_setup_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x216e240b otx2_set_real_num_queues +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x24a4c1c2 otx2_shutdown_tc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x3ee1a1f0 otx2_tc_alloc_ent_bitmap +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x5745d599 otx2_mcam_flow_del +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x5c099691 otx2_get_mac_from_af +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x660b795d cn10k_lmtst_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x6cf7c84c otx2_open +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x726befd7 otx2_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x767324ea otx2_nix_config_bp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x77236479 otx2_set_mac_address +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x7a530c8d mbox_handler_nix_txsch_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x86c7f71c mbox_handler_npa_lf_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x87c8f0de mbox_handler_nix_bp_enable +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x8bf3302d otx2_detach_resources +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x8fbb2503 mbox_handler_msix_offset +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x90831759 otx2vf_mcam_flow_init +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0x98ba402e otx2_attach_npa_nix +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xb23a797f mbox_handler_nix_lf_alloc +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xb514bde2 otx2_mbox_up_handler_cgx_link_event +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xd3f143b2 otx2_stop +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xdd8100f2 otx2_get_stats64 +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xe7996208 otx2_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xe8ed4e45 otx2_ioctl +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xec095465 otx2_alloc_mcam_entries +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xeffd130b otx2_get_maxflows +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xf2d3865d otx2_config_hwtstamp +EXPORT_SYMBOL drivers/net/ethernet/marvell/octeontx2/nic/rvu_nicpf 0xfcd49fdf otx2_config_pause_frm +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x3ddd3d8f prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x59c3eb33 prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0095ce43 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01195fd0 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05259dbe mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12b958ea mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21e3f7b5 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x224bdc6d mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35d1312f get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38025d7e mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3940cc78 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4254bc02 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x491f58f5 mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57ecef9d mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5aeb6956 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bbf3456 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6138bdd0 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61a7994b mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bd69c05 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c6ab1a7 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f201f19 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x704b769b mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x769b88b4 mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c01a383 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e8abf97 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 0x87674798 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x879789eb mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x885f9393 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88b454c1 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89debdb3 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8f41d55b mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9820acf6 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e742018 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0da5d7c mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac0ac2b2 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb542fbc7 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd43b06d mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf912cfd mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc785b9a0 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd0dc7d8a mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8fe63be mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3386e67 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8125d5a mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe90ed42d mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff091086 mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff2a4854 mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06a2cf8f mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x077351a1 mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0a21b020 __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0d1ff68e mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e03e956 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0e1f2ec6 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ed0f2f4 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10cd5efa mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1137dea3 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11b69312 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x126fbe8b mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x140063b5 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1416b681 mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14bfbfc5 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14c6e861 mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17e1afd0 mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x19959a66 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c2b8d26 mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c57c524 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e38486c __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x206e8b9f mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2190a474 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22bce683 __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x275ffe20 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27a993b4 mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29fbc420 mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b94e478 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2cacbc1e mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ede8ec3 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x313394de mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32e53a72 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32fc77d1 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33203958 mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3545d0b9 mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39356def mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3956791e __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a8379d1 mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cd7a3a1 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d536703 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f8e56a8 mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48cb7c1f mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x498b5a11 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cba5c4d mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cf983d9 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x518fcf8d mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51f27e53 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x533b3fed mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53a8ab7b mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559548ab mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57a61ce2 mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58265fc9 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x58b0d54d mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b065ac0 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5b6994df mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c6e2b0d mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5eeb28dd mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5fe194d7 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6111b2fa mlx5_rl_remove_rate +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 0x626febfc __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6502b5e6 mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6526f86f mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6541a4ed mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66df2fd3 mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67f8843a mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x681a8cad mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b0920de mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ec96d7f mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70b5630b mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x726bc8d2 mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x72bfb0d6 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x749a1a3f mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d52196d mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fd709fe __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8060defe mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80a818e2 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x82bdf1c7 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x872e7c67 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87a46339 mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b0f4753 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b29c2c8 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d7e8156 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93d73556 mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x940555e9 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95c9909e mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95fdaf9f mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99 mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97987677 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x992efc22 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9931fcd8 mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c1dee4e mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d6135dc __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9e355727 mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0c98336 mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa376089e mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6e09306 mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xab521f6e __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb2024316 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb23c86c5 mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb28dbbe8 mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb4c0d20c mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5e53bd6 mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb72cffaf __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xba5c2f4f __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb475e47 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc53853e mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf3307f1 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbfc6ce73 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0755f49 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0cedc97 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1aed691 mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc31393d0 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc62952ac mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc6a13845 mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7efe580 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc862396b mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9e8f3ca mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc002b85 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd5bb0c7 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce20a125 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd020dd1f __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd032aca6 mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd0e3df7e mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd14ef3c2 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1b5bfa0 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1ec8d01 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6a58ba7 mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c3be3d __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd75cae19 mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd821e635 mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd9a853b2 mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb92277b mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf5221dc mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2cc37b1 mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3274aef mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe359c455 mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e09c2b __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5605d5b mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5ad0cad mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe6b7b9d3 mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe91a0c9c mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb9a8bcf __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec467994 mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xecafa6e4 mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef5f8fd4 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xefd22ac4 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf01f00fd mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4a745fe mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf68495b8 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7b03ef4 mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88d57b1 __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9d7a767 mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc8e744e __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xaf1a42d8 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0c410c25 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0cae1c84 mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x100bc429 mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858 mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21ed9af3 mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3 mlxsw_core_read_frc_h +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3179e32e mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x34709ebd mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +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 0x484489a4 mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x65f95751 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x81ac68f0 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 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 0x8ca3d3b6 mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8ce17f2d mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533 mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9192e7b9 mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x963cfb6a mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97035a9c mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97e62e6e mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x98bfa19b mlxsw_env_set_module_power_mode +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 0x9cd64516 mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9e41f494 mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa7765e88 mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa8cccf0b mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xa91377d0 mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xac1074a5 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xad969a8a mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6b40684 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xba05b3b0 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbbd9c80e mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc7297236 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 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 0xd7a93413 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd7f227bb mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd84eb6b0 mlxsw_afa_block_append_drop +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae mlxsw_afa_block_append_mcrouter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc120b7b mlxsw_env_get_module_eeprom +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 0xde4e211f mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeab0691 mlxsw_afk_create +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 0xe16986dd mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5540be5 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe706d85d mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeda7a5d0 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_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 0x0e8b4ea3 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x8d0b8541 mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xee7e96cb mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xf524811d mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x01517b8b ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x141e28ba ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x16023f0a ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x16dbb1b4 ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1a15d188 ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1cecb61a ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1ee07e94 ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1feaaed7 ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x223ce6ac ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2242df09 ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x270def77 ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2bd16f6a ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2e295b07 ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3d45a117 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x481941bf ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x48a8a780 ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x490484b5 ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x493b77f3 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4f322132 ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5282919a ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5b60c53b ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5fb756b7 ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x632d8da7 ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x67d08e87 ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6a51570c ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6e12b388 ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6ebd9c4b ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6edef9c6 ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7236902a ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x75c99b98 ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7620c2f0 ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x765c85a0 ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7758a006 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x78173f20 ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d71ca61 ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x80a75405 vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8587cc65 ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8fb14224 ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x90cbb220 vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9381969d vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x97344dd3 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x98ed5e50 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x996119bf ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9b539017 ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d442141 vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9ebb9c8c ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa56ba785 ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa8413d7e vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xab08dc7d ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xabc83857 ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaf380740 ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb16ce6b2 ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb1ebd9fd ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb30c4b92 vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb604ed7d ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb817ac8c ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb9069016 ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbabd002d ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbba17367 vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbd2eaa6d ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbe65cedb ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbec16584 ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbf48ddc1 vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbf9f7d9a ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc09ded01 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc1b12618 ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc3bfa4e7 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc5d82060 ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xce8e2a00 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xceed5e7e vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcf483e33 ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0ebefd9 ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd253fbb9 ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd687a545 vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdc986e64 ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe1bd3062 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe912f05f ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xea1b5ac9 vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xeab8874e ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xeae37ad6 ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xecaa97fb vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf4a401f2 ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfa035308 ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfdf00429 ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfe025fd7 ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xff2e2302 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x05044b50 qed_get_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x1623f35a qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4f264472 qed_put_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x6756f226 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/qed/qed 0xc0994288 qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x1a2928ea qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x34a99547 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0a717e08 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4ba52fce hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x52bc23a9 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xabd543f7 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfd25ea0a 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 0xaadfd1af 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/mdio/mdio-cavium 0xb4417583 cavium_mdiobus_write +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xd2c646da cavium_mdiobus_read +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x38c865e9 mscc_miim_setup +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0x4ba44b2f xgene_mdio_wr_mac +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0x5e032c6a xgene_mdio_rgmii_read +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0x6ae45d85 xgene_mdio_rd_mac +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0xb3370f1c xgene_mdio_rgmii_write +EXPORT_SYMBOL drivers/net/mdio/mdio-xgene 0xfae3849d xgene_enet_phy_register +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x1a5b054e lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x47c01874 lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xa6bf0e9e lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x4459af24 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5e22a760 pppox_compat_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x67921833 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x74b17002 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe731e118 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0xa85f9a4b sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x293d3ff9 team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x2e8c2b8b team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x374b8779 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x587345ce team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x768dd78e team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x7f157c81 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x8fea624b team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xd28e741a team_options_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x10759bdf usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x1da48429 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xbb35e391 usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x04d9c962 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2637012d hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4a4da6f2 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x61968c85 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x73944b55 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7d4782a1 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x830f3026 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xac2a5d2f hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc3a23dd1 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd1ef8f24 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x12dd5043 ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1fda7da7 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x233a4708 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3e781fe7 ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5ce28959 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6e6f22e7 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x896d6f69 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8ecb5442 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa18f224e ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb2ceccce ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6588ba6 ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xddc82eb4 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe7786245 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf053b3ee ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf7e6265f 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 0x064bd6f2 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0c10bf80 ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x15626b72 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x20aba577 ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x23dcf49f ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x24167aef ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x28087821 ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x38c00cb3 ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x39d02ff4 ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3bbe6e9b ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x414ef3d6 ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x42e88fc5 ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x46383e48 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x47d460de ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x51e3c50c ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x54751c64 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5638eb33 ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x57f01060 ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x582deb1e ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5a435fa6 ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x670a8800 ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x673cd68e ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6a728a23 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6b2b3ada ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x72b3b730 ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x737509dc ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x74047f64 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7639e3b4 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x76a41f93 ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7b6a2dea ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7c6c8d06 ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x87030644 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x88cf0c7b ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8e795a71 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8efa6c5b ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9b845b76 ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9bb22381 ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9f97d87f ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa1e4849a __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa5227868 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaa36615c ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd46deedd ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd6b10026 ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd7a7b6ee ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd7a7d04e ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xdba60adb ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xdd03f347 ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe0b42812 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe623a470 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe895b512 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xea65866f ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xeaf88381 ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf2ee54e7 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf2f0ba43 ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf87ff76c ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf9b645bb ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfb0cd533 ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0308e063 ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x08868c6d ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0ee89cbe ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x127cb384 ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x127cd129 ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x16cf09e4 ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1aaacc80 ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x255dc45c ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2b0b1363 ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x305bdae3 ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x33456fe5 ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x380b5055 ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3b624ed4 ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3f8ab83d ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5722772a ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x57c41030 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x58421596 ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5db3bd45 ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x606a5b5a __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x69058f85 ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7a10c64f ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x856edccc ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x87c94847 ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x88e7c494 ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8973a6d7 ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8a3fa9ba ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x8c7ec203 ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x965575a8 ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9c51bcc4 ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9ebfa178 ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa5ebf83d ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa65900b3 ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb2b56e34 ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xc81144c3 ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xced93d78 ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd164d3c6 ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd3f48ef4 ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xe547fbd1 ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xe5fba64c ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xe968942e ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf0197188 ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1354043d ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x32a1014a ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3502feef ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3bddae3d ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4283d8d8 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x46d8e927 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6e3a2d66 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x70fc7957 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 0x9a26fd45 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x9c18495c 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 0xcd66bcc3 ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfbf0125c ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xfeef7a3d ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x03d7ae5e ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x09c5c5f4 ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x111f4af7 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1b5a5f24 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1c50aec9 ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1f90089d ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2417481d ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x32aed2e6 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x42808de6 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x445be275 ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5dc4bc51 ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x71572ff8 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7d793201 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fb039aa ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x812a359f ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d2a9707 ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xaff84a66 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb06d6f60 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcc18601b ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xcef21410 ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe7cacb90 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xecec91e7 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfe3c1d13 ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08fb0ec0 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a6d241f ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f9b7ade ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1472e622 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x154758c1 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x199f099b ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d1873c5 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d74000e ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2055b32e ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x220b0720 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26a9eef3 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x276d1148 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a0f12dd ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b55b0d8 ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cbc4665 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d9d5909 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f9c03ea ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x314fefac ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33a1a3d1 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35b0e756 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3882c1e4 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38b1992d ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b2acdac ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3eb34cb7 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x410cc984 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43d21ec8 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43ee5bb9 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bd64d85 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x517205ee ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59c54e17 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ac1cd70 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b22b0f6 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6365439b ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66a28057 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66b30109 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66bff2f6 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6835e37c ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6971d37f ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c122e11 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6c5ddae9 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6eaad817 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x725ec0ee ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73946b3e ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74576cf6 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7535d794 ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76e8c68b ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e9ef548 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x802d3222 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8122084b ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x816327ac ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8214fdd1 ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x836661bb ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x849f2133 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x855d8d99 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x880523c8 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a55d0c0 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e4fd2fd ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f13779e ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9062d1e5 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95de27cb ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96f078d4 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x993565e1 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b73c40c ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c5b2f0c ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa17c997c ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2e20bd7 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2eb2d5b ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3028dae ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5d773b0 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7defe2b ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9502e5b ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab813461 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab872773 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad348734 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae49eb27 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafa73b8d ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb39fc03c ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4509895 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb65de62f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6fabd7c ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb94163de ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9b438ac ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb205b22 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbc09b238 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1dd8dc7 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce6f5204 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce9b969b ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf2ea68d ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2a54d69 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd429e4d7 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd50073a6 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd88c22c7 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda523066 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda917131 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb48ca0b ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc41ff4f ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddbfea07 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde856d05 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfbacea4 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2e22909 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3f667ff ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6abfeef ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeb73053c ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0765bf1 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5ed9d1d ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7769815 ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8ad6b55 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x30208a65 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x37bb077d stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xe2a7016b atmel_open +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0bfd09c0 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 0x1bb49897 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x29b4914e brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x328021c9 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x44f873f1 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x92f15e08 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x93126b72 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa5a619e1 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xbe113f33 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xca0ae3f9 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 0xd805de13 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xf9e4c849 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xfd69c8ab brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x0925afdd libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1f2b769e libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x22cacfc0 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x2b43fbfb libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x2d347a6f libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x30d6d34f libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x36d82f26 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3c2290a5 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3edfe38c libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x4cef4883 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x52402b5c libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6cae2c94 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xafd0982a libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb1c6e278 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xb5665dba free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xba4d7492 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd8f447e6 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xee71cc78 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xf1855af7 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xfbf7387d libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x005e8ba4 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x093bf3c7 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0bb9e1da il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0df77940 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0e974d24 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fd29c09 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10bd1210 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1129f64e il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x13e0f5b2 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x16d14b38 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x19dc833c il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1d714803 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1e4be8dc il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x20d07b25 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22576435 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x22835bf2 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x237bad4d il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a2ee7e4 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a35f88d 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 0x2eb711ce il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x30d0c576 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x334cc0cb il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x34aa7adf il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ab6751a il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3b9da96b il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3bc701e9 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ee8fe32 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x41345d09 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x43c797b3 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4d20d308 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x50892f8b il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x588d01d6 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5b8dfc9d il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5cd8a5bf il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5d46a09f il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5dd07f8f il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x671943e4 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x68de1932 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6f687a94 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6febd915 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x702641ef il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7113a343 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7208c6fe _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7478dce2 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x79a0a85c il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7e081b94 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f763d01 il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x80543a5d il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8194ce29 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8588b1d1 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8aecb2b5 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8cb06a8e il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8d6c2838 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x91fd90a7 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x92528d8f il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x93e98e0f il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x96fa2db3 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cd5dd74 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9dc1ddb4 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ede1b5f il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa3ca2b6b il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa48fbc2f il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa51135b5 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa627ccdd il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa6e6b4c7 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa7fb23f5 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xaad58340 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb1138e77 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb32f1779 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb5be9cb4 il_rx_queue_space +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 0xb7dc9e67 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbb48dc79 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbdc6385b il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xbfd5a4cd il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc00a5bcd il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc47ba91a il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc4d6cd31 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc5a2c7c2 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc62f9fcf il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc7ece4c0 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xce9edc72 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd0452e82 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd2d49efc il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd54789d9 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd7185f22 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd868e9b0 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd92048bc il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdc0d52f0 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe87c94c0 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xea99080e il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee012c12 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xee780929 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xefcee412 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf00198c9 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf2f4f14f il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa1e83a4 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfa7ebecd il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfb1562fa il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x02e24df0 __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x2ac2757a __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x36a862e9 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3d23c104 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x9096683b __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x970bf4ef __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaaafbd3e __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd1e69877 __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1ad10103 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2c034dc4 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3215383f hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x35c82306 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x40907a0b hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x464c94a4 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x54c5a1e7 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x676bf911 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x75934c58 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7826eab8 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x794c45fc hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7b2c4521 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x81729b6d hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x91f23dab hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x9a7fe67c hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xa7ebca83 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b5c6cc hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb7756e4b hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xbba7f1f7 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xc4123ca5 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xc452468a hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xcbbacd46 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xcdb3683e hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xddebaf9a hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xedc1ea8d prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf5b71c01 hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf91c03e2 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x10095701 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x2002f5e2 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x242a86f1 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x2e4dd5c0 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x37c70e87 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x4b004ffa free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x592d44d1 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x6fd7a3a8 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x81daeff6 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x8a829701 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x9d072047 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa5011ada orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa74c2dc5 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xbc6b580f alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xddbe428d orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xdf454541 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0xc4f85def mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x51a7e505 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x08146f13 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0ded29bb rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x11d342bf rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1ad2ceb9 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1bae1f49 rtl92c_dm_watchdog +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 0x2652572d _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x270a1ef1 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x28404b52 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2f56fe4d rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x30e7cc78 _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x35551005 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x35627119 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3ad7fc1f rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4305390d rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x444eca08 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x44ab5b23 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x466c23f9 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5a9e6b7d rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5af3e1dc rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x62dc2724 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6dc63748 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6ea42173 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x70d17805 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x72e72ba7 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x755a3d38 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x846cee9f _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8f495135 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x96154f9b rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x9c603cd1 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa910b5a2 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb68ddd55 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb8ff5f97 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbc68312c rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbde4ed8b rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd4027dde rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe10f078d rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe4217f68 _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe9ac9788 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xea155db5 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfe74502d rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xfebc9232 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x6cf1bd3e rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x84d4ed70 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xabf0d81d rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0xc94d2678 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x0d5a0d0c rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xaa703494 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xc54e818c rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xca5e5a03 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x01c113a6 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0960af70 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x124894ce rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x26e61c5d rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2ea735af rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x310c4437 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3346b4e1 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x461ade2a rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x51cbac94 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x555aaed2 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x57382e35 rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5d5a168d rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6040d4e5 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x620dcf99 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x65463266 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6e772f56 rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7599ba13 efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7ab42bd5 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x886adca2 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ea60059 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x93772531 rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x98797785 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9e93463b rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xba41f24a rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcb7d589d rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd18bb365 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd1f6c5c3 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd98ab240 efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe9f8150b rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebedfe5f rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf56924c7 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf9fdf14f rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0x263c734c rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0xbbfc04c1 rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0xcddc09fe rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0x221e62c0 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0292e758 rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0728ba45 rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0aeb9508 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0b15703d rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x118b3cd0 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x126a1821 rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x15d016f0 rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x16af9cef rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x175ac10d rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2224cc89 rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x26fc8f1a rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2e7bc443 rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x31bbab82 rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x37cbbffc rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3b23a323 rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x43f9720f rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4bf4a30b rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x52b14d87 rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x52c628ea rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x54d462e6 rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5ac16776 rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5d9c2541 rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x705a3f4f rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7090025c rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x75e42703 rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x78d5e196 rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7f3b774a rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x82fc8fa9 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x83e0265b __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8943da47 rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8a7c76b7 rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8bd83a59 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x96fe04ef rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9a2874af rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9ca72c75 rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9d131a16 rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9dcd531e rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9f104bd3 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa2df558e rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa2ef5dc0 rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xa7f2cc82 rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xacd656a4 rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbf6e3032 rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc2137671 rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc2e3da6e rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xc382d695 rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xce740a97 rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd1b9a7d1 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd22c946f rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xdf08a5dd rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xdf2e89c2 rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xdf8780a0 rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe2d822dd rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xebc33311 rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xede9b7aa rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf518af89 rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf60c74ff check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf7690d17 rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf8f44f16 rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xfd255dd0 rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x5e29b4c9 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xad859d4b rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xdd4d42b9 rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xdf96824f rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0x1781a217 rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0xfbba3c88 rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x011bc826 rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x01e564e6 rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x02ec06f2 rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0406fd85 rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x04334ddc rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0afe5933 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0f6e4581 rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1439158e rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1a1949ae rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1bd900b9 rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x24b3025b rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2a592e7d rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3bb4a9b6 rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3c834457 rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3e77e7af rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4543aa59 rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4b402059 rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x574cc838 rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5a8d2bf0 rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5c20f913 rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6593cab0 rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x67e3657a rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6fa806c2 rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x704fd163 rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x71160d91 rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x76c0a11b rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7b41efbe rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7bdcc6a5 rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7de236fc rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8207041a rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x85fdfbd8 rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x87f98536 rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x87f98ce3 rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8c7fec2b __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8f9b1ddf rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x94c3f90d rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa3c6b383 rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa864811a rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xa9b7c202 rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xaba3af81 rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xacf152df rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb3798228 rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc8f3b704 rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc95534b0 rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcbb89c99 rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcd3e16f1 rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd396f6f1 rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd4b31d89 rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xdcc0183e rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xde8d1529 rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3f57b04 rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xeab0f92d rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xf1db1db9 rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xfe127254 rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x100676f6 rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x1a15851d rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x22e8e96d rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2afcd6f7 rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x415b4cd7 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x4cd68ed9 rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x69f6ac05 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x6fac35d0 rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7d0a2532 rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x801e1fc7 rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x82833f9b rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x955972f7 rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x9ce0961b rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xaafed2d9 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xb24ba589 rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf630d9a9 rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf90a339b rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0xb7fd67bd rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x40593090 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xa7456ea3 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xb2ca6cbd wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf5a713a0 wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x2daaa113 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xe45c6512 fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xa4cc0749 microread_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0xde091eac microread_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x03972212 nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x5ea99114 nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xf2cc9bd5 nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x721d356a pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x1502da34 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xd70c97e9 pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x288dd209 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x6ac4719b s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x70f98a8c s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xdda416f7 s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xedb12f10 s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf2ab60da s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x1750922e st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x43b022e8 ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x54efabad ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x567de644 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x650706d4 ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x92e6125b ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x95477ecb st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xa51b5c2a ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xbb0dd221 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xca943ee6 st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x24685a32 st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x30313b75 st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x3b37db1e st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4263073e st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5c184675 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x61f35678 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x732dbffb st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x86c865b2 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x917b2339 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x9826abed st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x9d7444cb st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa07a13dc st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xbd9325ac st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd0a378bc st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd8121e51 st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd8f9aa01 st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf732bc60 st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf87afaf9 st21nfca_hci_remove +EXPORT_SYMBOL drivers/ntb/ntb 0x09d8e972 ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x15060a3e ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x1db2dcf9 ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x211b067f ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x22b0ffa5 ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x267e7c63 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0x2d1c240d ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x310fc4cf ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x43d23d09 ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x47a31456 ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x50b4c8af ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0x527032cf ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0x6cdc3239 ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xa1e0a40c ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0xa9feed9d ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0xab13e50c ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0xc600cf84 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0xc8c18530 ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0xd8a8b239 __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0xf3b68330 ntb_default_peer_port_number +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x4450ad3d nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x511f9829 nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/parport/parport 0x1ccb7948 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x216bbd38 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x21cf1165 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x26e77a77 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x29720989 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2cdce0c8 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x32d7d4aa parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x3fe1ccf8 parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x423a2c2b parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x48d07adb parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e232cdf __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x7079b15b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x81893b72 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x919d3b0f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x9b0a1d41 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x9b75efc4 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xa763e017 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xa84ceeda parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xb24793f4 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0xb309381c parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xb56c5b0e parport_write +EXPORT_SYMBOL drivers/parport/parport 0xbd0f3f9f parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xc642cc59 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0xc6946741 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xe447006f parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xe70688b6 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0xea4e2345 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xecf3e4c4 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xf4e84f00 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfb7d3cfe parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfcccb913 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport_pc 0x27e5c850 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xdc814920 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pci/controller/pcie-iproc 0x107bffff iproc_pcie_setup +EXPORT_SYMBOL drivers/pci/controller/pcie-iproc 0x39096472 iproc_pcie_remove +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x122595ea pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3e8e7c1a pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x77e7ccc2 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7a167202 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9146f69f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x91d0308c pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x986e442a pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9b8dc276 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9fc78a64 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf7fc92e0 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf942709b pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xcb54e063 pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x0579cc62 cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x25af6579 cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x3fc6d3f1 cros_ec_resume +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xe6e9377f cros_ec_unregister +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0xf25aacf5 cros_ec_irq_thread +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0x0cd07c86 rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x3330a1c8 qcom_smd_unregister_edge +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0xc33611f9 qcom_smd_register_edge +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x22cc0250 rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x83aa2320 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x17011daa rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x1dc26fc1 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x21a8ba4e rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2916e2ca rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x31f9e71b rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x38e8e08a rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x55a58b2f rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x65300478 rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x655496b4 rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x709f7e8c rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7f5e457f unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x972f9100 rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa0d54980 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa4ae4cfd rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc791c25d rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xcc7065d2 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xd7c8c3d2 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xf00a25a0 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xf1ae1026 rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0xd50a1bd0 rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x462ab10a ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x5f5f340f scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x8a1d35f4 scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xbe16a1f9 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xe4743d1f scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d60537c fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x222ce9a5 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2f27eb57 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3880bab3 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4ea67f9f fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7bdc4c47 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbdab7875 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd111c803 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe27c4dd3 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed6aacbd fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfc1aa793 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x006455ba fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x070efd65 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b332cdb fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0d32c352 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0eb2e5a4 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x10988552 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x139738e8 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1f7cffb4 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x278eb57b fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x290f3dbd fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b71ed18 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32b5135b fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e2ee62 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x37c03e91 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x37fd3462 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d16eb79 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e241cfb fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x406e6e5a fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x424190e6 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x43f5e262 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44f99d6f fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45523517 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b677d12 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4f4991d9 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54856585 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e3c5884 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5eb7f6d4 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64f7bdd5 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66f7b2ae fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x695ff93d fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7833f505 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b0070df fc_exch_mgr_add +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 0x932b3867 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96cb8331 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d50ed7e fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9eb2c172 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9f9bc833 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fbfbb7f fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa12b10b0 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa1bcd198 fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa626f3b7 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab285234 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaead3d6f fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0952f68 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb639fd2 fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5c7d4cc fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xca160b0e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd69bf00b fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd7fe404e fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9508027 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9ca9190 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf4a1f7a fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5cf06b5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe638d38a fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0626c19 fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf91692eb fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9bfebda fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe830e03 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfe9946f3 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xffa6bd7c fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xffc45c94 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x19e245bb sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x26f8e7da sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x5e2ebef9 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc61fd024 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x8fe48b11 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 0x02791f40 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x115c2c11 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1c4eaa24 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x24bdb7db qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3419c88b qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4321290f qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4cb0444d qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x59f52bc7 qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x75ec50b2 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x8c05fb63 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa08b2673 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb2361007 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/raid_class 0x00b056e6 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x1cc197d6 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x1fc0f1fb raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x14977451 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x185c2f87 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x21f410bd fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x273b2367 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2908cc6d fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x51944ecf fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5c151193 fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6a9dcd98 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x78519f06 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x78d195e7 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7c0cb10d fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x800e34ed fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x89a4784b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb4f9e771 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf447b973 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf5a9db8f scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfd989a50 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b4c3688 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e9da848 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b1dcbd2 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1bea9c0b scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x237e1ba2 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4c0a5620 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x51f37bfd sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6288a6d0 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6401a2e0 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7044ff63 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7735e17f sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7e660871 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x937d5544 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9b062401 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa19a0ec6 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa35cdea5 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbccbf4cc sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc453fa58 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb50ea80 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd8a3374d sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd921d438 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd9b58615 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd8beda6 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe28b01da sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe800ba53 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8cf6bcf sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf2cf392c sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf719930f sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8c1fd04 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x02e2d33f spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0e03bb13 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3cf77acc spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x474478e1 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb5650252 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x07f63105 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x1a243452 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x3ce3c246 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x5e433393 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x8c62ec12 srp_timed_out +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x030f2d6c dpaa2_io_service_enqueue_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x21e76a68 dpaa2_io_get_adaptive_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x2bc276ca dpaa2_io_update_net_dim +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x35210a1c dpaa2_io_set_irq_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0x3d01f417 dpaa2_io_service_pull_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xb629a241 dpaa2_io_get_irq_coalescing +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xc4ccef03 dpaa2_io_get_cpu +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xdb008703 dpaa2_io_service_enqueue_multiple_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xe0f67b93 dpaa2_io_service_enqueue_multiple_desc_fq +EXPORT_SYMBOL drivers/soc/fsl/dpio/fsl-mc-dpio 0xfa0aedff dpaa2_io_set_adaptive_coalescing +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x0f4b7285 cmdq_pkt_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1c91b6c6 cmdq_pkt_poll +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1eb577f5 cmdq_pkt_write_s_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x27f7a778 cmdq_pkt_set_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x3bc70297 cmdq_pkt_write_s_mask_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x3d3c435f cmdq_pkt_jump +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x461737cb cmdq_pkt_read_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x4dd68ea8 cmdq_pkt_wfe +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x62622035 cmdq_pkt_write_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x6482132a cmdq_pkt_poll_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x81232e95 cmdq_pkt_assign +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x91e6f300 cmdq_pkt_clear_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xa644a9a6 cmdq_pkt_write +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xab2ec244 cmdq_pkt_flush_async +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xb9f11363 cmdq_dev_get_client_reg +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xbcd8ac39 cmdq_mbox_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xd6dd1c72 cmdq_mbox_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xf79754da cmdq_pkt_write_s_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xf8069d88 cmdq_pkt_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xf80937c2 cmdq_pkt_finalize +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0xfb55916e cmdq_pkt_write_mask +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x90d9ca3e of_get_ocmem +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0xc53d76b1 ocmem_allocate +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0xf9b05967 ocmem_free +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x1c76ea4d pdr_restart_pd +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x432975e6 pdr_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x47b2ed49 pdr_handle_alloc +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0xf618ca5b pdr_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x012a7eaf geni_se_get_qup_hw_version +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x12728710 geni_se_clk_freq_match +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x2e3e57aa geni_icc_disable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x3dfc2ede geni_se_select_mode +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x4488174a geni_se_init +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x4964acfb geni_se_resources_off +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x6b83bfe3 geni_se_rx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x763e9f46 geni_se_tx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x8f8c3f0e geni_icc_enable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x943ca82b geni_icc_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x9cfcc71f geni_se_rx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xa92b13c1 geni_se_resources_on +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xb08eb9f2 geni_se_config_packing +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xcb969e55 geni_icc_set_bw +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xdd993d27 geni_se_clk_tbl_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xdfec16fb geni_se_tx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0xffb8457f geni_icc_set_tag +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x1b35f92f qmp_get +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x2333aed6 qmp_put +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x9e2aa1df qmp_send +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0ef12cc9 qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x2da2271b qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x42bab9c4 qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x68772745 qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x6cef11de qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x8b3f04e6 qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x93e2cfde qmi_txn_wait +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xc26e9711 qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xd295aab6 qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xdc80b59a qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xdf276714 qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xe5717b15 qmi_handle_init +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 0x2a9dd0f8 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 0x2204d095 sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2f0fd1a1 sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x31b0c98a sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3ef1cf2f sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x5430974d sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x55adf2fd sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6be80665 sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7224c0db sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7aa6efe7 sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7d7f780b sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x8082068d sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x8434eedf sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9152af2e sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9b1b3847 sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e122d79 sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e85ca34 sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa1939ca4 sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa72a19c8 sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa9ffd708 sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xba54b904 sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbbec2c2e sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc52e5cef sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xcbd7d403 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd69d938b sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda5bce09 sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xe6e3e168 sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf26714dc sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf4c4a6bb sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf53ba0b8 sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf8cad80a sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xfd550975 sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x08f362d8 sdw_cdns_is_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x0fb70f62 sdw_cdns_probe +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x1dbb8095 sdw_cdns_config_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x2cebefc2 sdw_cdns_exit_reset +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x34712074 sdw_cdns_irq +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x375a376e sdw_cdns_init +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x55decd22 sdw_cdns_clock_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x616252f3 cdns_reset_page_addr +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x64bbabf5 cdns_xfer_msg +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x6843ae30 sdw_cdns_check_self_clearing_bits +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x7c471263 cdns_bus_conf +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x8e326558 sdw_cdns_alloc_pdi +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0x9a016253 cdns_xfer_msg_defer +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xa4ffd30a cdns_set_sdw_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xa5410e28 sdw_cdns_clock_restart +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xb4ad1baf sdw_cdns_enable_interrupt +EXPORT_SYMBOL drivers/soundwire/soundwire-cadence 0xd6f248fa sdw_cdns_pdi_init +EXPORT_SYMBOL drivers/soundwire/soundwire-generic-allocation 0x8f4f2020 sdw_compute_params +EXPORT_SYMBOL drivers/ssb/ssb 0x0bb414bc ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x1ec9abc8 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x25c342d6 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x2bb37a67 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x3db31a27 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x438147a6 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x46a7a239 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x4855e8ff ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x6955e33f ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x6b42d1c6 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x7a1b351f ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x9997b591 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xa74f1124 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xaa983218 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xb1cfee96 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xc1dd0de3 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd614a531 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe1b1cdb8 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xeaa36d69 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xedfc7148 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x06a33105 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0cb46bf2 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x1081ee41 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x1ed4c3c1 fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x3899ad48 fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x48c4e685 fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x51488444 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x53b5fa8d fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x623eedc8 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x69b0e912 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x852f1249 fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8611e125 fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8a12ee09 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x8ee76a20 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x9fc70a4c fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xb2afb1d4 fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xb83d36a6 fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xb8f93b70 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xc2736586 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xdcb6f56f fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xea775a4d fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xeaceefbf fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf26dc012 fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf6239dc8 fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf8f383aa fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x06754bec gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x46151c87 gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x56bfb99a gbaudio_module_update +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x178641da adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x90fc365d ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0x8c8de310 sp8870_attach +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x737eaa8d nvec_write_sync +EXPORT_SYMBOL drivers/staging/nvec/nvec 0xee12b684 nvec_write_async +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0f8a7257 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x10dee31c rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x21f2d080 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x257a2f07 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x27288dca rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b4fdbba rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b6860e9 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x30a2968f rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3d9d730a rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3e05023a rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x47ac79bb rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x49875bd7 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4f87fc5f rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x57a4f93e rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x587b5e7f rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x599bd949 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6597aa9d rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x677915c2 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x68851cbf rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6b3048ba rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6b330a57 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6d0a4cfa alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6df9bd54 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7051d040 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7c2590a2 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7d180984 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7eae1f6c rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x88040cb8 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8ca1e0f5 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8dc809d2 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x90d7de66 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x948aaa33 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9529b595 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xae30139a rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb500b1da rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb751f8f6 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xba06a7da rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbcee77d0 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc5e294e6 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcb4576c1 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcfbecdbb rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd0ec79a2 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd7184a61 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd7b98ad1 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd82d8aa2 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd87568d9 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf518cdc rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe0fce1af free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe1552003 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x019c3b53 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d831727 rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x15fe9aee ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17831266 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17b2951c ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x19d6724d ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d9f72c3 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1dcabd06 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23f4c008 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x253f77d1 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2924717d ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a135675 dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2aba2520 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f62fb07 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3441d72d ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35efb596 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36c36b91 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d86f1b5 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x444208d1 to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b1f18e3 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b308e56 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x52059933 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5cadf97e ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61222007 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71fc3772 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78481335 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7f9a1f48 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87d92452 dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x889998ef ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d825121 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x91aa8e67 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7c78226 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa8045ec9 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa7d0b9e ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac024ef4 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf488e77 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb06feed8 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb078718e ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb205f906 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb44a3cf2 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb9c40435 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbafca9f3 is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0e25703 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc77bf7ca ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcbb8f479 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xce4010d7 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd195ac9c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd59aa57f dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3f08910 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe49dd952 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe65ed386 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xee1bf3a7 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfb569a96 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x02f8c431 vchiq_queue_kernel_message +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x1c60d406 vchiq_get_service_userdata +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x35853b04 vchiq_release_message +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x582ed8ca vchiq_bulk_receive +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x5c054645 vchiq_msg_hold +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x60c1aceb vchiq_open_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x6a0bb736 vchiq_initialise +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x70fbdac9 vchiq_msg_queue_push +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x8ff6c2b1 vchiq_get_peer_version +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x92b2feb4 vchiq_bulk_transmit +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0x9d6478fe vchiq_use_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xb05b02ae vchiq_release_service +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xb34df55e vchiq_shutdown +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xb4d025f7 vchiq_connect +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xbca0c1c0 vchiq_add_connected_callback +EXPORT_SYMBOL drivers/staging/vc04_services/vchiq 0xe95e0941 vchiq_close_service +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0406688e iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0b5198c9 iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1995c051 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x19cbb7fe iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1e65b5da iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x24910791 iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x24ac0838 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2abf84ff iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x32ba948a iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x33c4677b iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x34a38d4c iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x37d57e0f iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x383a4daa iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x41532a09 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4f71e8bc iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x51fca5ef iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x572b37af iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x62220214 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6b619213 iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6cbbc9b2 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6f49102c iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7038ccf7 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x760d4417 iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x76c7b47f iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7a143b95 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7bf67a82 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8e746ecf iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x93cac3e6 iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x96f6a904 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x971bcd6d iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x976c257f iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9b9329e7 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xad597c60 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb53ff1fb iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb939c5bb iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xba353d3d iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xbc434ab8 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc2dd7f40 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe47e8ff1 iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf092497d iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf34332f0 iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf7c2b560 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf9389380 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfceaec36 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfe4fe300 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xffb5a519 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/target_core_mod 0x0399e34e passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x05229539 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0cab63a0 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x10a9438c target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x10c13777 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x157e36e9 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x298fb3cd __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b7683b6 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x30863e52 target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x36216e22 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x37003e61 transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x4163bd28 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x42a3b31b core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x475e2bc6 transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x47d363e7 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x4c8c476e target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x4e5ea1da target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x4eb62df1 target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x52ed663a transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b711a15 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x6028ac69 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6081b8c4 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x67fbad47 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b3ae50c target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x6cd3d48c target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x6ef77358 target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x72c0e1e1 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x743e69c5 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x78dd3dcf core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b744b09 target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x800ac1f1 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x80d1c1d1 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x86e27c2a target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x86e9db4e sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x8f17e635 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x901a02ff core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x932bffb8 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x934c40ba transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x96ba27af transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x972b0a0a target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b36cad4 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0xa0fbb451 transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xa366924a spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8d6dc29 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9ccd54a spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xab803370 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0xad43cca7 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb3f1ca11 sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xb65dc85d sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xbfe5ff81 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xc05cd31a target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5616597 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xca5cb86d transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd830fce target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf202eac target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb47ac11 passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xe1ab6eb9 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe24fcb84 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe29afcd7 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3f29239 target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7d1dde6 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8ab4420 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0xebf2e7be transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xec672457 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0xec8f1bcf target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0435581 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf52845dc core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xf5af802b sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xf7687449 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0xfa72ff80 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe2ba76f target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xfeeb0e7a transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xffe15fcc target_register_template +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x0c1ce2b6 ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x16d859be ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x1fccc18a ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x3041324a ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x921ed328 ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xaa6333a6 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xd6d7cdc1 ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xe4b32354 ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0xa25e9071 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0xdd2c4844 tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x27cfcd3b ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0xc6f271fe ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x26794cd7 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x9d059fd5 usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x19ff5742 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3447ab80 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3f146c43 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4939fb02 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x497de97f usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6eb8769f usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x70db0a76 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa0dcdd12 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdfae6db2 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe6c483ce usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf42be8ac usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf98238da usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc0f44b04 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xfd02bc44 usb_serial_suspend +EXPORT_SYMBOL drivers/vdpa/vdpa 0x1bf3a742 vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x132a4ae1 mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x2870a493 mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x4371bc35 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x6be9e43a mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x75a6447b mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x838d9e7c mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x8e7c8727 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xdca920df mtype_get_type_group_id +EXPORT_SYMBOL drivers/vfio/vfio 0x19567d06 vfio_info_cap_shift +EXPORT_SYMBOL drivers/vfio/vfio 0x2c5d98c1 vfio_unregister_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0x51290533 vfio_pin_pages +EXPORT_SYMBOL drivers/vfio/vfio 0x53841e9b vfio_register_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0x6c28be5a vfio_info_add_capability +EXPORT_SYMBOL drivers/vfio/vfio 0x91c0b58a vfio_unpin_pages +EXPORT_SYMBOL drivers/vfio/vfio 0x9ec04166 vfio_dma_rw +EXPORT_SYMBOL drivers/vfio/vfio 0xadc044b7 vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL drivers/vhost/vhost 0x4ece04a7 vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vhost 0xdb257540 vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vringh 0x0c46f5fb vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x18f3ddc2 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x19c24590 vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1fe50c1a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2890c460 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x2d2babc9 vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3684d8af vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3ee1955e vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4504adc9 vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x5bd469c0 vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5f586ca2 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x61e3831b vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x660779c8 vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x6a693a25 vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x90e93e3c vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x9b30452e vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa7ce8bd6 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xa8efaeb9 vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc0bb1581 vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc87491c8 vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xd465f463 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xe4c21196 vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xeb2ec139 vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xf1e32cc0 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf8605294 vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xf9d0dd07 vringh_abandon_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x0fa71678 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1fc1e8b6 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x670dfb4c devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xfaa5d7ec lcd_device_unregister +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x0ee1b386 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 0x2d65ac7b svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x365867a0 svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4cfd4c3b svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7c104f53 svga_get_caps +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 0xa1c65ea3 svga_tileblit +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 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xe5b4bae5 svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x0b44b7dd sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x36ebf17d sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x82e18e27 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 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0xe78c1a22 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x543a9032 mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x2508ad43 g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x822cc3c8 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x902443d9 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x245e0a37 DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x8e85c55d DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xea6da051 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0xf2d90605 matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x26aa0bd1 matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x2a8a27e0 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x1a41a312 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x30f0fe15 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x31c9301f matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0xfee04d0e matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0xcb4b005c matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0xfc698a67 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x5344de5c matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x64794a87 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7c040341 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x8ef11863 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xc6fd724e matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0xfe963115 sis_free +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x1217329a virtio_dma_buf_export +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x718766ed virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7a254946 virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xa9f22569 is_virtio_dma_buf +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x472c3180 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xe6bbc634 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x551c4311 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x630b102a w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x03f4455e w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x0614f4d3 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x89f3aa4f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xbe265225 w1_register_family +EXPORT_SYMBOL fs/fscache/fscache 0x03afb1e5 __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x048f6423 __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x1a25cfa0 __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x1c0b4d29 fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x20ba0f1f fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x26f3bcab __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x2a1e00de __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x34287488 fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0x373a66aa fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x39674879 __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x5092bb57 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x54a77b79 fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x557a775f fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x5dd02d58 fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6be44210 fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x6c5e41e7 __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x6d92d6f9 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7352a0d5 __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x75a59c47 fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x76128158 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x80f3b2a0 fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x813e9546 __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x87845a0d fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0x89b6f198 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x8c2d6da7 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0xa402ee7f fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc316f307 fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0xc6d62382 __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0xc87768f0 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xe5df038c fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xeb053ceb __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xfa43176e fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xfd58adb1 fscache_add_cache +EXPORT_SYMBOL fs/netfs/netfs 0x41d30c18 netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x49b659a2 netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0x5c082fc4 netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x96f1c4ce netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0xb24a0b02 netfs_subreq_terminated +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x02569634 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x1a805cab qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x2d207bfc qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x3d2e7e0d qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x4fc9069a qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xbb53a69a qtree_release_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/crypto/libarc4 0x2bb32ad1 arc4_setkey +EXPORT_SYMBOL lib/crypto/libarc4 0xcd47fcc4 arc4_crypt +EXPORT_SYMBOL lib/crypto/libchacha 0xcec122d7 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x147c3f2e chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x37b34b92 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x521c7102 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x5b19e187 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xc20134e7 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xce15a526 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0xbcb90cb3 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0xd45b9cf4 poly1305_core_setkey +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 0x7ea60afd lc_seq_dump_details +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 0xdc59545c 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 0x2b4846a1 raid6_empty_zero_page +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 net/6lowpan/6lowpan 0x3b7779dd lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x3cfcb84e lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x8232c22a lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0xa293bcf1 lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0xb8d5880f lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0xd97488de lowpan_register_netdevice +EXPORT_SYMBOL net/802/p8022 0x2df0577e register_8022_client +EXPORT_SYMBOL net/802/p8022 0x92bdf454 unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x5f0b27dd unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xb115fbde register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0386603e p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x03f7358a p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x06a2276c p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x08d3ecc5 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x093798a6 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x14f23a28 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x21a4db2b p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x243e75f8 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x25692ef0 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x25bc650b v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x28ff38c8 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x29a29bb7 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x2cb3a50d p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x3b4e5ae3 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41ce9823 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x67d8ec12 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x683ec43d p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x6f930be0 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x73ed3bb5 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x766e5c6d p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x779db692 p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x7b211b37 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x851b7b9e p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x94973350 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x95bd8f96 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x984c5e73 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x9a88bdef p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xa3c600f9 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xa8484f4d p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb44f4443 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0xb4cb0f72 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xb6662f86 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xb79f25fd p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xbcce5742 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xbdaf54ed p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc0dc2e81 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xc569e5e6 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xd79919d2 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xdbd941fb p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdf794aae p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe308de8a p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xe4afdf10 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xebf695ec p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xec02cae4 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xed4adb41 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xefceee29 p9_release_pages +EXPORT_SYMBOL net/appletalk/appletalk 0x59230581 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x75608510 aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xf3f3b852 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xfd12063d atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x054fe9cb atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x44c6e633 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x4d68cd3c register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x5769c9bb atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x5db3ce47 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x6be71df9 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x76e34177 atm_charge +EXPORT_SYMBOL net/atm/atm 0x7923138f vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x7a19dbbd vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x9462a064 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa7bcbabb deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbb4a0de7 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xd5cda4bd vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xd630db4e atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/ax25/ax25 0x13eb4c97 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2b834b6f ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x47534cee ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x4f38bb74 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x56e7478f ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x5b76c870 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x7b0a85fa ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xb1eae055 ax25_listen_release +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 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x08b6aa8d hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c6eb6ef hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e870d42 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1caceff3 l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e75fa03 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x26516bad hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2b98d196 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ce679b2 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x31f32df3 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x33d3aa7d hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3abff855 hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b71171a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3eb704f8 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ee8b13f hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x467cd2a9 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f2d8f8b l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x536c1ee9 __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a0eff41 hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b73b610 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5d5ac85e hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x62c8c0ca hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a97ff76 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x70abc9e5 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x797413ce hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7a0de585 hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7aad008b bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7aedda36 hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7b5ce5c3 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7b8c32f1 bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8755b3ff __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fc97e2b __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x90621493 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9ad81b23 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa51fd625 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7320520 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa788ed3b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa7c4e5f hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xabf35633 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaccc5092 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xadb7dcde hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb92cf3f4 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbbf9d6b1 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbd3101f6 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcde26008 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd02f6cd6 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1b1802e bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7613212 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xda12e5f3 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddacccf6 bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe0798e6a bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe17420b5 hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe87905e7 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xee368e20 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2d52365 __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7ffc7a5 bt_sock_register +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1bbfd5e6 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x32f39449 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3a8e160b ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x61eed79d ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9a9f7522 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xaa93adb7 ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x1f760367 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x2fccd035 get_cfcnfg +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 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xa8f25991 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xeaefe3c7 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0xf3caa0de cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x0122d4e1 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x59f05fc1 can_send +EXPORT_SYMBOL net/can/can 0x74cf15bc can_proto_register +EXPORT_SYMBOL net/can/can 0x85ba36e0 can_rx_register +EXPORT_SYMBOL net/can/can 0xddb8b8a9 can_proto_unregister +EXPORT_SYMBOL net/can/can 0xfe96cdfb can_sock_destruct +EXPORT_SYMBOL net/ceph/libceph 0x00e14a98 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x014d9940 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x04cad6f0 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x07d7f5c1 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x0a274741 ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x1378aba3 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x147b9c96 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x165b1948 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x17c17611 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x1ecd5a8e 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 0x21dc29c3 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x234fabf6 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x2795f401 osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0x2a3d6cef ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x2a983d26 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x2aaea7ae ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x3105c450 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x3271578c ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x32d2a685 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x33804e65 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x344a0d4a ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x3a2ceb41 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x3a5f0ffb ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0x3be94d2b ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x3c2b7752 ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x3d542ce5 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x3e24fde8 ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x3f37bc43 osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x417a9131 ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x43999021 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x461ee301 ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4888b719 ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x4aedb194 ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4cd108b2 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x4cf38eec ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x4deebfbe ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5ddd90cb ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x60539aa2 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x651ab27b ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x657d0a63 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x67d2f050 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6c6eb724 ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7d3cde17 ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x81ea442c ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x822bfba6 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x8bc185db ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x8cb84f69 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x8d171a29 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x92b7b4ce ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x9665eef2 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x98720cf7 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x98aae850 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x99fcf327 ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9a4263f3 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x9b58b23b 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 0x9ef6a310 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x9fbba67f ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x9fefa3cb ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0xa0814d18 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xa4304240 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xa4996cbe ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xa597f58c ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xa698f998 ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0xa9937413 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xaaa21d88 ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xabea2aa2 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xade05078 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xaea4f0fb osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb106a477 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xb2e08dd9 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb5ba977a __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xba6633f6 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xbc23edc1 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xbd2f79ae ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xbf4470d1 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xc10f2445 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0xc2017283 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xc3397496 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xc366bfa1 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xc46f7996 ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0xc73865ca ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0xc920939e ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0xc9f5cb7b ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0xcaca2290 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xd0e3bc78 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xd161aefe ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0xd3ea5b4b ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0xd70c942b osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0xd75284e9 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdebffde5 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0xdf6ef4a1 ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0xdfbd2b6f osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xdfc091f9 ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0xe1161d90 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xe295f989 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0xe34a59f2 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0xe5f7d4cf ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xe6a0dedc ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0xe6c2f06b ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0xe72e559b ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0xe76e7226 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0xe7767a9c ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0xe8e06d12 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0xea5eaf64 osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0xea85aa9b ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xed7dc772 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xee120c03 ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0xeef6cfa3 ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0xef65d28c ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0xef6cdc53 ceph_cls_assert_locked +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 0xf082744a ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0xf0ef9225 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xf5a97189 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0xf6957c36 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0xf98681cd osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0xfa9ec281 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0xfac1fee0 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xfb410055 osd_req_op_xattr_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x0dab9308 dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x34633755 dccp_req_err +EXPORT_SYMBOL net/hsr/hsr 0x3990c60b is_hsr_master +EXPORT_SYMBOL net/hsr/hsr 0xb8356e51 hsr_get_version +EXPORT_SYMBOL net/ieee802154/ieee802154 0x025b140a wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x63c2cc9e wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x747dba1b wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fcd780a wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x8fce18e1 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc3e6ee08 wpan_phy_free +EXPORT_SYMBOL net/ipv4/fou 0x1757d1a4 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x7017eba5 __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0x8177f09f __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xf13914b3 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0xdb53daeb gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x953c9f0b ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x9af99565 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xabc95394 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xe1ed96da ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x58e114c7 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xaec41c47 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xbfa49a52 arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc2b41108 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0db41232 ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x79adec39 ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa5fd3bc1 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe88bb135 ipt_do_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x2db46454 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x6e46403c xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x90069cbb udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x14ab2df5 ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x49b69483 ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x898f9414 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x90cd775f ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xc60bd96f ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xdfdb9c1f ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xe016263e ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xe7584bf6 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xed85f14a ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x277b6d57 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4b5b7d53 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x71d10a64 ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7d6ead74 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/tunnel6 0x069967c1 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x62543960 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0ffd1d5b xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xca37579e xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/lapb/lapb 0x2b9436e4 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x2ec309a7 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x3c4621c5 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x86683c0d lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x895f3e58 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x8d265e9d lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x91a167a9 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xf4b229a6 lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x1a7a2c31 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x524df927 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x584592a7 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x84540744 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x93e345d5 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x96424b4c llc_sap_find +EXPORT_SYMBOL net/llc/llc 0xb993c26a llc_mac_hdr_init +EXPORT_SYMBOL net/mac80211/mac80211 0x015157f3 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x066122e1 ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x06d56613 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x0952ac5c ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x0efafb0d ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x10f69917 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x137dae7c ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x16d8f2e4 ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x17808b34 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x18dd0f43 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1b05060a ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1fa1154e ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x29203268 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x3060bcb0 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x317137d4 ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x36ff9c34 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x3b8406ab __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x3d3d9a15 ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x46e9051a ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x48372d0c ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4c4d4d5e __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff093ad ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x50165009 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x52a4bfa7 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x531ecfb2 ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x556fd7de ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x56c1b417 ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x57deee10 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x5872b401 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x5a612950 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5bbbe5f3 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x6164eafe ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x668e7384 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x66b3d549 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x66e1c5f4 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x68f64d7c ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x6929b98f ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x6db4ee1b ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x6f23325b __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7148b7e6 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x71699861 ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x74f80354 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7612ebdb ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x775e5f28 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x8060c16b ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x80f33e71 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x8289bf2c ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x8568e492 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x856917b3 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x87566ced ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x87b50db0 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x88b2016b ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x8a5d2fc3 ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x8b249ce5 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x8b9335ae ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x8ccf05e6 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x8cdbf536 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x8cfd2c3e ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x90b8e103 ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x951298e1 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x991a0ca0 ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x9bbd73f9 ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x9e60dcf1 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0xa0499f5f ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0xa234e137 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xa5ad6561 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xa68596bc ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0xa8278843 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0xaa412eb9 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xaadeb08b ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xae87b3ef ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0xb46fe412 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb4ee7572 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xb93883ae __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc2090f29 ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0xc30cb609 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xc5e0f289 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xcd3d3a51 ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0xcdc3f7d3 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xce42aa0c ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xd0d9677a ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0xd19037c1 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xd4322d09 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd5cb546a ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd68f52f0 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xd7bbddfd ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0xd9c54c6e ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0xda9153c0 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0xdc78e4d7 ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0xdd940302 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xddd91756 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xe0adb77c ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0xe1911492 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xe5752af3 ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0xe8756830 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xee6b7a0f ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0xf09dc44b ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xf0df8bec ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xf29432aa ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xf7392341 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf96520a1 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xf96861a2 ieee80211_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x04ba2424 ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x1c1188e5 ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x3610c06c ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x41f526a0 ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0x53b3b904 ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x665418d3 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x84a13739 ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0xa2f7652c ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0xd1b9ac56 ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0xe0678d3c ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xe5f5f88c ieee802154_alloc_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x21591fcb ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x24a20741 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x334ac144 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x58ff827c ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x72a52785 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7404f6fa ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x926dad3d unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xae25630d unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaefd7233 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc6ec3e71 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc86d4c11 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xddce5fdd ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe37221bb ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf9d49f42 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfe851855 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x5b9ee28a nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x77f4d63f nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x7b7fb78b __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xeffa355a nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xf79dbd89 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nft_fib 0xb3c36947 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x0f79ddcd xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x1e846851 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x26114634 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x2ff24fc2 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x32e0de1c xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x384f2fc5 xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x424262e8 xt_unregister_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 0x7ff28513 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x953c75f5 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x977fd4bf xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xa25fc115 xt_compat_check_entry_offsets +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 0xd8e180f6 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset +EXPORT_SYMBOL net/nfc/hci/hci 0x17b9dcd1 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x19ac6868 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x22f06fe8 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x25d006a4 nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0x29327c21 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x3806e629 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x3b7e9d9f nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x46473f67 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x47b11542 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x50d8cd4f nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x5a9f7592 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x5bc9f0f0 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x7ed9ea62 nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x86637812 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xa49953d6 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xc26e5a8c nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xc54bd35f nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xcb77f477 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xccc08e70 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xd381deb4 nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0xd8e4eab9 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0xdd231c55 nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/nci/nci 0x03a4f72c nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x0e69d9e2 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x141ac0d0 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x1a37764b nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x1c098b42 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x213d6b33 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0x2a8ba507 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x3d307a9c nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x49bd4d5b nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x52b70b8b nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x55816e6f nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x6496fbe2 nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x78fcc054 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7a2a190a nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0x86afdc94 nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x906d0739 nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x91bb3ad6 nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x9440ccd0 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xa13a11e9 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0xa8c017c7 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0xaa3bd9f8 nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0xb2ff1e52 nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0xb96c3ea0 nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xba6ef2bb nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0xc864f803 nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0xcfb64a39 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xe80929cf nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0xe810d03a nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0xfdfd69ff nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nfc 0x0e54d2b2 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x22899522 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x299eb55f nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x46bca5af nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x4cba60fb nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x4d75c3e2 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x5c9cebac nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x631e4707 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x7944cc7a nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x7b8f48cb nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x80155cf0 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x81dc68b7 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x8a9d8497 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x8d03fefb nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x959cb392 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x9727707c nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x9a6faa92 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x9e41ca17 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xb0678613 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xb9bd2cb8 nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0xd49fbfde nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0xd7f798f3 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xe51d5d0d nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xe594f102 nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0xfa3b3d57 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc_digital 0x1f146ea1 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x84de28b3 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x8a67f931 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x95f35945 nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x3b64541b pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x88f23bd7 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x8f4ebc33 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x90267b31 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xacb284da phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xe9ca8853 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xfa0374a2 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xff03bf47 pn_sock_hash +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x32d40710 rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4017e3b2 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x565401ba rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x59138e77 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x5ef14685 rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x6f5cc431 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x74552a92 rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7716b117 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7e63dcd6 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x83b40532 rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0x853f210b rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x93a74e17 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x9d84f50d rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0xac5652d8 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0xb386c916 rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0xb5391e79 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd40f7b82 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0xf5d9a2ff rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/sctp/sctp 0x1cc57219 sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x1b1e06e1 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x60c90a3f __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x6419f5d6 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x8989d6ae __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x99bf1b00 __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xa5d1c8b0 __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xb3f2d173 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xb6b790f2 __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xcd9701fe __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xe7dacb8d __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xfb8cae0f __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x4d8149ae gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x6233365f gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x70a1d7ee gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc5eb87bd xdr_truncate_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xd4c7b29a svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0xee9f3c25 xdr_restrict_buflen +EXPORT_SYMBOL net/tipc/tipc 0x47ad01c3 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0x4fe07cf7 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0x587c2fe5 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0xfa4a0fae tipc_dump_start +EXPORT_SYMBOL net/tls/tls 0x7e94daf8 tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x055763cb cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x05cf6f3c freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x063cc011 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x073efae8 cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x084a68de cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x09f57a26 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x0a3a8d03 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x117aca91 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19f8a4e1 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x1b5a3a7e cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x1d604536 cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x1d799d1d cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x201e1986 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x2054fd5e cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x23250ce0 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x2603be51 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x275269b3 ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x275c97f0 cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x27b444a0 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x27f9c59d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x281a2e1a cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x28319543 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x28ce3723 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x2a2e67fb cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0x2c433021 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2e287efb cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x35fb2990 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x3709dd98 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x37214ce3 wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0x3e7d50a8 cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x3ed3b89e ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0x41267e60 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x41dca9fb cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x46aee459 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x47036515 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x474d6ebc __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x47db0689 wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0x498273d7 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x4b2e5261 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x4c72ab30 wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x4e07a816 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x4f3b8bfa cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x51dd0bd5 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x545f4abb cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x555a0616 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x580c16dc cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x5a77626c regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0x5bd1d8ec cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x5fc5ca15 cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0x616a452d cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x659387d3 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x6659bab9 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x66cd8c45 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x69dd1ae4 ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x72da53cd cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x72db1862 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7bd38b7a cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7cb88d48 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x87c8dd3b cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x87d5dafd __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x884be8b2 cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0x8c00170c cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8c54e337 cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x8ce8fba0 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x8fa02936 cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x9288b272 get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0x95aee848 cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x97b516c7 ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x9d6cba30 cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0xa39423b5 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xa6a20130 cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xb4d1b288 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xb7c946e2 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0xb7fb8c49 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0xb9b2655f cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0xbe94c242 cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0xc024f219 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0xc0c68966 __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xc134dc66 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xc4b4fc27 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0xc5bc2949 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xca1fd4fd cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcc1a7c48 cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0xcceb77d3 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xcf717884 wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0xd20803bc cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0xd3575034 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xd56d55f3 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xd8f399a2 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0xd97eaad4 cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xde611f1e cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xdf01c9af cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0xdf1e4267 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xe2ee4120 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xe3c95933 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0xe4fa759d cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xe7d2169e cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xe90b2099 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xe90f4a47 regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0xea18263d cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0xeb0e1eed cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0xeb26b3b6 cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0xeb325d97 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xedd54adc cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xf40bc2f5 ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0xf4578b52 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xf53f0dd8 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf5596d89 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0xf5611c6c cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xf7e768ad cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0xf7e92db2 cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xf91747b3 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xfd81ac97 cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0xffbc0cc4 cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/lib80211 0x190311d3 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d6da4ba lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x8ac2955e lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x96daafe6 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x9ce25032 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xaaf2f106 lib80211_crypt_info_init +EXPORT_SYMBOL sound/ac97_bus 0xeb251479 ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x1fd8685b 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 0x43688597 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4fb5be47 snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x53603faa snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x684b8667 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 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 0xf912f0c8 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 0xb0a25360 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x02d7fa39 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x0c3e6a42 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL sound/core/snd 0x1c543eaf snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x1ddf3538 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x1f10b9ca snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x21d58e12 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x363d4e94 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x374b353d snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3c743056 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x3cb3290d snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x3d507da0 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x5022cf0b snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x50bc65ea snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x5d42d78b snd_card_free +EXPORT_SYMBOL sound/core/snd 0x600b3ae5 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x645e397e snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x70bd5b1e snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x73076315 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0x731ae8e7 snd_jack_add_new_kctl +EXPORT_SYMBOL sound/core/snd 0x80d8934c snd_register_device +EXPORT_SYMBOL sound/core/snd 0x83a6236e snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x84dac087 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x94e5731d snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x95ce98ce snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x98a4fad3 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x998c97ab snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x9d6ce352 snd_ctl_notify_one +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9fe3dc24 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0xaa27e13e snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xae20efc3 snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xba113458 _snd_ctl_add_follower +EXPORT_SYMBOL sound/core/snd 0xbdcfebff snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xbefe6f0d snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xc0ae6f7e snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0xc46eddd2 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xc5a6d10b release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xcc6a729f snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0xcdb449f5 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xcdb77cac snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xdb12389a snd_device_register +EXPORT_SYMBOL sound/core/snd 0xe09ccfa2 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xe14d2623 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xe2135d5b snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xe26ab12c snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xe3bdfbd9 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xe965c1e7 snd_device_new +EXPORT_SYMBOL sound/core/snd 0xe987ff48 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xecae6493 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xf63e1374 snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xf7885e5d snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xf90db244 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-compress 0x22bf047e snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-compress 0xa0a10cd7 snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0x5be313ab 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 0x0e4929df snd_sgbuf_get_addr +EXPORT_SYMBOL sound/core/snd-pcm 0x11330bc8 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0x11eba48e snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL sound/core/snd-pcm 0x1a3df1de snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x1b1c0d74 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x29348b88 snd_dma_alloc_dir_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x2de23e18 __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0x351495dc snd_dma_buffer_mmap +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 0x46631792 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x4c533045 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x4f4cd3f9 snd_pcm_lib_preallocate_pages_for_all +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 0x5529a4db snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5f5fc4f0 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x642d9b51 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x6788a434 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL sound/core/snd-pcm 0x68617ec7 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69255f54 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x717ff135 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x82472f21 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x8610bc60 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x8af65e1f snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x8f28b8d6 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9469b2f9 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0x953fb9ff snd_sgbuf_get_page +EXPORT_SYMBOL sound/core/snd-pcm 0x95e94303 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x967b92d3 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x9ddd8e12 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa8b09ee8 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-pcm 0xa9d3cdf3 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xaa4b4c11 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xac437f7b snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xaf0cf48a snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb209b688 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xb3bb3409 snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc239f305 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xc279b7ff snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0xc34759a0 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xca350b8b snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xcd673679 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0xcf99c41c snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xcf9fe6be snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xd460c216 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xd5140fe7 snd_pcm_set_managed_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xdcee1183 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe62f9582 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xe83eab2b snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf0f8515b _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xf18293c2 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0xf4fb12d0 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0xf9c4a6d0 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xfa7cf81e snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1824a177 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x26752e02 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x289341a6 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x36126154 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3f6fcf71 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x41b8a293 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4d3d2037 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5defcfe9 __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x69dad0b7 __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6c44863a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x77f8f9db snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8e924763 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x98d9af24 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa47cb624 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xaa14c3cc snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbb482994 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbc4441f9 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbd5c369b snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc46b051a snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe92fa359 snd_rawmidi_proceed +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 0x9c22e1cf snd_seq_device_new +EXPORT_SYMBOL sound/core/snd-timer 0x0084b731 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x098f10dd snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0x1ecb4172 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2a6455da snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x2fa877d2 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x312b9625 snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0x628fec61 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x702a3bb8 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x7be239e8 snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x7f8ac314 snd_timer_instance_new +EXPORT_SYMBOL sound/core/snd-timer 0x807a5885 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xaef354e6 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xb09f371c snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xb322ad2c snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc8118881 snd_timer_close +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xa3e7781f 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 0x490e2d20 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4f3db228 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6c4a6467 snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x79e23a7d snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7a9ca1d2 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcb263610 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdfd1ebd2 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe7ba1b78 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe9f24cdf snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x09ee86be snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0d6e547f snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x16ebea6c 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 0x53de963e snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x801336f3 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb2a5f5a0 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdfe50ce7 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe8d34989 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xffa094e8 snd_vx_suspend +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0db7bac4 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1ec0c140 avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x28f6b665 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2a397560 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x34932c92 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a0d2857 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3a1829a7 amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3b14a752 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3fb71329 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4b4d805b fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4ed32f1f amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5209c654 avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5482b414 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x67527669 cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x675f885e fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6f277bc8 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7ee68833 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x855dab3e cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x861a1a14 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8b27f581 amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa321da19 amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa3802006 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb31b3e20 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd9e85508 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe59356c7 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xecfd1c60 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf5d286a4 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf7f706be fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfe00e982 snd_fw_transaction +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x41a05c36 intel_nhlt_has_endpoint_type +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x62a8a512 intel_nhlt_get_endpoint_blob +EXPORT_SYMBOL sound/hda/snd-intel-dspcfg 0x66fd6169 intel_nhlt_ssp_endpoint_mask +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x03963682 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x8140da9c snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x109d8014 snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x30005ba3 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3303cef7 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x560f10ec snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x79a2bdb8 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc14adcf2 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xca5496ee snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcdb63d9f snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x10d3b6f8 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x72815f1e snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xeb4b7aca snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xee5cdf15 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xc0651a16 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xc191000f snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0397bd0b snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x8f7228ba snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x97673995 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc0c71c47 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd65ba08c snd_cs8427_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe8c40137 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x0299806b snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x251cceb6 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4daee2ea snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc0f65b94 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xdfe3468e snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xf62ef137 snd_i2c_probeaddr +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0489b759 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x37787563 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4481357d snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x57da7dde snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5a9f3903 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5dedf310 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6055265e snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6c972854 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74869df0 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7b34552d snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87011d24 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88d32ffe snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c0f4629 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8e4791a7 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad08161d snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd09873b5 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe51ed927 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x121441e1 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x150830c7 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x22e5e5ff snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x524c2160 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6fe14168 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xab6aa5b6 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbde4388a snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc5197151 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdec78a38 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x30a3f79f snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x85af1b24 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9825283c snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x12c8537b oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1d6fc50c oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1dc80806 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x23385388 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2bd26f25 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5c7dea16 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x68d24d9d oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x89e48509 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x99241009 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9f1a3392 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa969c3e4 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xae4a5093 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb61cf7f0 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbca36674 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc17a2f4c oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd596fb5e oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd737a178 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf4a2209a oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfa100152 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfc50f540 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x145654d6 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x16004e31 snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x43597418 snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9e56c355 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xfe2374c4 snd_trident_start_voice +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0xf2cc2cce acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x25b44fc1 snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xea1883b6 snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x29d5ca93 adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0xe3b4588e wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x4d6dc021 pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0xa014e13f pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0xed2acb24 hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x15cb8e8f tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x9afe34c8 tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x30320771 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x54c1a7a9 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x5a9cb4c1 aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x2ed01601 aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0xe5fd3e72 aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3e2c22bf wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x539cc4fa wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xa5758a49 wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xb2f9f275 wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd094df47 wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xe2beca26 wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x5e3eb11c mt8192_afe_gpio_init +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x9f28a630 mt8192_afe_gpio_request +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x5026a446 q6afe_vote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x87c63b4d q6afe_unvote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/snd-soc-qcom-common 0x0bfc07b6 qcom_snd_parse_of +EXPORT_SYMBOL sound/soc/snd-soc-core 0x9a683c89 snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0x28a4c459 imx8_dump +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0x6ba1a715 imx8_disable_clocks +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0xa243b22c imx8_enable_clocks +EXPORT_SYMBOL sound/soc/sof/imx/imx-common 0xf73d23a1 imx8_parse_clocks +EXPORT_SYMBOL sound/soc/sof/mediatek/mtk-adsp-common 0x3794ce17 mtk_adsp_dump +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x0665362d snd_sof_device_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x08ef17a4 snd_sof_ipc_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x11a8f199 snd_sof_ipc_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x16b0615f sof_ipc_tx_message_no_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1750e570 sof_io_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x19155855 snd_sof_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1c1744e8 snd_sof_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x1d8a67b4 snd_sof_run_firmware +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x22661a65 sof_compressed_ops +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x368c6727 sof_debug_check_flag +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x371b5279 snd_sof_load_topology +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x3f55a8c3 snd_sof_runtime_suspend +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x3ff2802f snd_sof_dsp_panic +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x418a47ff sof_ipc_tx_message +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4382862f snd_sof_pci_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4bc7f95f snd_sof_dsp_only_d0i3_compatible_stream_active +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x4d07f3b8 snd_sof_prepare +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x51637f2c snd_sof_dsp_update_bits_forced +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x56921b9f sof_ipc_msg_data +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x57d26ecc sof_mailbox_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x58dae2d8 sof_widget_setup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x5fe0e381 snd_sof_ipc_get_reply +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x68074f82 sof_dai_get_bclk +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6b60c12f snd_sof_dsp_update_bits64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6bab3e95 sof_stream_pcm_open +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6c1a7905 snd_sof_complete +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6c5197b0 sof_stream_pcm_close +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x6f2f0560 sof_set_stream_data_offset +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x84ee1c5c sof_machine_check +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x85d77ed8 snd_sof_runtime_resume +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x897157eb sof_machine_unregister +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x91b6c24a sof_pcm_dai_link_fixup +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x984f0d74 sof_widget_free +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x99683183 snd_sof_ipc_init +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9d47e214 sof_io_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9ed21aa1 snd_sof_device_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9f6486cb sof_machine_register +EXPORT_SYMBOL sound/soc/sof/snd-sof 0x9f80a4b1 sof_set_fw_state +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa187f523 snd_sof_dsp_dbg_dump +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa3673615 snd_sof_handle_fw_exception +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xa5e0cf76 snd_sof_dsp_update_bits +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xaa48be29 snd_sof_dsp_update_bits64_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xae3ab03c snd_sof_device_probe_completed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xbf19a818 snd_sof_load_firmware_raw +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xc115a815 snd_sof_dsp_update_bits_unlocked +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xc2798dab snd_sof_fw_unload +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd036b356 sof_print_oops_and_stack +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd0719f53 sof_dai_get_mclk +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd3f4a490 snd_sof_load_firmware_memcpy +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd537c6e7 sof_mailbox_read +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xd9655602 sof_io_read64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xe81c20d0 snd_sof_pcm_period_elapsed +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xed22e76b sof_block_write +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xedafd222 sof_io_write64 +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xefa354cf snd_sof_runtime_idle +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf271d62b snd_sof_device_shutdown +EXPORT_SYMBOL sound/soc/sof/snd-sof 0xf6abebd7 sof_block_read +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x10ff7029 sof_of_probe +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x3cd2c2f9 sof_of_shutdown +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0x9b1a59d7 sof_of_remove +EXPORT_SYMBOL sound/soc/sof/snd-sof-of 0xf1dc1504 sof_of_pm +EXPORT_SYMBOL sound/soc/sof/snd-sof-utils 0x1bbf67d0 snd_sof_create_page_table +EXPORT_SYMBOL sound/soundcore 0x211b6404 sound_class +EXPORT_SYMBOL sound/soundcore 0x3ec91fcd register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8575c5c9 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xbc92b44f register_sound_special +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xe36fa1e5 register_sound_dsp +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x16ac4256 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x53c9fc81 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5fb6fd7d snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x608f4b89 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 0xa391d995 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe925e9ef snd_emux_register +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0eda33fa snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2a48197f snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6517719f __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x914f3491 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9223e14b snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9adc8c44 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0xc59655e4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd28dc0da __snd_util_mem_alloc +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 sound/usb/snd-usbmidi-lib 0xf795baae __snd_usbmidi_create +EXPORT_SYMBOL vmlinux 0x000aba92 uart_resume_port +EXPORT_SYMBOL vmlinux 0x0012fc63 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x00148653 vsnprintf +EXPORT_SYMBOL vmlinux 0x002072e9 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x002680c0 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x002cab40 fb_class +EXPORT_SYMBOL vmlinux 0x00331554 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x003c48a5 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x003d5538 netdev_warn +EXPORT_SYMBOL vmlinux 0x0047c025 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x004eb40c key_task_permission +EXPORT_SYMBOL vmlinux 0x005b557a ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x0065f407 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x00689955 memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0x0075fa30 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x008bd678 of_get_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x00928200 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x009b4aab inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00c41f6e tcf_idr_create +EXPORT_SYMBOL vmlinux 0x00d2cdc7 flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00e4f22e xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x00f10752 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x00f7c9fb stop_tty +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01020135 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x01039369 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x0105a933 inet_getname +EXPORT_SYMBOL vmlinux 0x010bc802 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x01174704 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x011bab86 prepare_creds +EXPORT_SYMBOL vmlinux 0x011fc6bd tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x0129c4f8 par_io_data_set +EXPORT_SYMBOL vmlinux 0x012de2ea xudma_rchanrt_read +EXPORT_SYMBOL vmlinux 0x0135ef85 vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x013f26ae dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x014e86e4 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x01505d85 imx_scu_call_rpc +EXPORT_SYMBOL vmlinux 0x015b4be1 pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0x016cdbcc skb_find_text +EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device +EXPORT_SYMBOL vmlinux 0x017c921d starget_for_each_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 0x018c2721 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x0197ab1b pipe_unlock +EXPORT_SYMBOL vmlinux 0x01a2ce7c _dev_err +EXPORT_SYMBOL vmlinux 0x01a5abd9 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x01a5d49a current_in_userns +EXPORT_SYMBOL vmlinux 0x01aea818 key_type_keyring +EXPORT_SYMBOL vmlinux 0x01af14a9 __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x01b6865c xa_get_mark +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01cd3858 ps2_init +EXPORT_SYMBOL vmlinux 0x01d687d5 __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x01e25a5f inet6_getname +EXPORT_SYMBOL vmlinux 0x01e8dae3 nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x021660d7 tty_port_open +EXPORT_SYMBOL vmlinux 0x021f232d md_update_sb +EXPORT_SYMBOL vmlinux 0x02293ac3 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x0229a24a scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x0248efd3 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x0256bc30 devm_iounmap +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x028175fb page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0x0295bbce readahead_expand +EXPORT_SYMBOL vmlinux 0x0295beab ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02af491f elevator_alloc +EXPORT_SYMBOL vmlinux 0x02b4cfc4 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x02b8ab42 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x02bf8a9c scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x02c065f8 ucc_set_qe_mux_mii_mng +EXPORT_SYMBOL vmlinux 0x02ed2a40 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x0306d954 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x030e2453 is_nd_btt +EXPORT_SYMBOL vmlinux 0x03151b77 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x031a1e8f pnp_register_driver +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033623e0 flush_signals +EXPORT_SYMBOL vmlinux 0x03454edb from_kprojid +EXPORT_SYMBOL vmlinux 0x034704a2 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0x0356601a devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x035e5648 unregister_netdev +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0361cdfe tegra_ivc_read_get_next_frame +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x0375ac8a of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x03891fbb param_ops_charp +EXPORT_SYMBOL vmlinux 0x038ed019 folio_mark_accessed +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03ac8075 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x03bf0e5a acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x03c99c5e eth_type_trans +EXPORT_SYMBOL vmlinux 0x03dacfb5 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04067fb8 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x04080f09 fget +EXPORT_SYMBOL vmlinux 0x040d4535 qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x04124d33 __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x0417ebae param_get_charp +EXPORT_SYMBOL vmlinux 0x041f8275 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x042d60e2 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x043329a7 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x043b4d48 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x04673adb qman_ip_rev +EXPORT_SYMBOL vmlinux 0x0467cc3b d_drop +EXPORT_SYMBOL vmlinux 0x04716594 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x0474edef kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x0481ac8c ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x0484c6c4 acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x04863e28 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x049829ae fman_reset_mac +EXPORT_SYMBOL vmlinux 0x04d11772 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x04d22590 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04fb04fd devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x050015e4 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x0502bb9d mntput +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 0x0531c56f cdev_init +EXPORT_SYMBOL vmlinux 0x0534b2e1 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x0547631e vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x054fed96 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x05522c55 of_find_node_opts_by_path +EXPORT_SYMBOL vmlinux 0x055b4cb9 kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x055e77e8 jiffies_64 +EXPORT_SYMBOL vmlinux 0x05933113 ipv4_specific +EXPORT_SYMBOL vmlinux 0x059e1482 __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x05a3e6f8 blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x05f4e19a __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x05fb1202 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x05fc64c5 simple_unlink +EXPORT_SYMBOL vmlinux 0x05fd846f md_register_thread +EXPORT_SYMBOL vmlinux 0x060ba97c gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0619fa13 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x062311f0 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0637a4e5 fman_port_bind +EXPORT_SYMBOL vmlinux 0x063820ff dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x06587d88 cdev_device_add +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x066c85b1 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x0676f04a mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x0678fa8a __icmp_send +EXPORT_SYMBOL vmlinux 0x06980d89 skb_clone +EXPORT_SYMBOL vmlinux 0x069f36e9 set_binfmt +EXPORT_SYMBOL vmlinux 0x06a97cb1 __put_page +EXPORT_SYMBOL vmlinux 0x06bd88b5 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06da531a jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x06e1c38f blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x070d6817 f_setown +EXPORT_SYMBOL vmlinux 0x0711edc8 xudma_dev_get_tisci_rm +EXPORT_SYMBOL vmlinux 0x0720c8ef iptun_encaps +EXPORT_SYMBOL vmlinux 0x0728c59b iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x07337978 kernel_accept +EXPORT_SYMBOL vmlinux 0x0745a981 xa_erase +EXPORT_SYMBOL vmlinux 0x0752a3c5 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x075e43c0 folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x0764db68 tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x076c8fd5 vlan_for_each +EXPORT_SYMBOL vmlinux 0x0781ec97 logic_insl +EXPORT_SYMBOL vmlinux 0x078392ee udp_gro_complete +EXPORT_SYMBOL vmlinux 0x0790a619 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x0791235f inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x0794a5e6 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x07968095 fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aebc1a xsk_tx_release +EXPORT_SYMBOL vmlinux 0x07bcc48d input_register_device +EXPORT_SYMBOL vmlinux 0x07c4f87c pci_dev_driver +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07ceeac9 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x07cff801 vga_client_register +EXPORT_SYMBOL vmlinux 0x07db17be qman_create_fq +EXPORT_SYMBOL vmlinux 0x07e14ccb kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x07f9b628 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x07fcc164 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0804d424 dev_mc_del +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x08162c74 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x081bec2e mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x0823869f hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x08257054 sock_common_setsockopt +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 0x083e3036 sock_no_accept +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08809b5a misc_deregister +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x08b2f5d1 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x08c3a529 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x08d20b92 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x08d2cebe xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x08e39398 cmd_db_read_addr +EXPORT_SYMBOL vmlinux 0x08e4ba58 phy_disconnect +EXPORT_SYMBOL vmlinux 0x08ee4524 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x0908b5cb dma_pool_create +EXPORT_SYMBOL vmlinux 0x092e26bf acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x093069a0 fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x093712e5 acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x093d4eaf security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x0949adb3 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x09549244 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x0965db8b folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x097af021 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x097f2aa6 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x0984506d inode_nohighmem +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0991559b acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x0998cc3c hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x09bb2206 pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d673fc xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x09d90238 md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x09da0ba4 xa_set_mark +EXPORT_SYMBOL vmlinux 0x09f9b261 xudma_rchan_put +EXPORT_SYMBOL vmlinux 0x0a0ebc08 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x0a1c941f tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a1ea507 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x0a28ceec register_console +EXPORT_SYMBOL vmlinux 0x0a2b76b9 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x0a35ebdf simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x0a3c3911 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x0a4a6c86 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x0a5cf479 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x0a6da17d of_n_size_cells +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7b6718 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x0a7c6a57 configfs_depend_item +EXPORT_SYMBOL vmlinux 0x0a84b15d zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x0a8d4b9c kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0acab81e mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad0b7ba tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x0ad64b2b seq_read_iter +EXPORT_SYMBOL vmlinux 0x0aded173 dump_page +EXPORT_SYMBOL vmlinux 0x0adf7e0a of_io_request_and_map +EXPORT_SYMBOL vmlinux 0x0aedd49c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x0b040550 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x0b06d5b8 __pci_register_driver +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 0x0b3c29d2 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x0b493f57 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x0b5a6fe7 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x0b73be86 bio_reset +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b90eeea vma_alloc_folio +EXPORT_SYMBOL vmlinux 0x0b9759fa genphy_suspend +EXPORT_SYMBOL vmlinux 0x0b9d18d2 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0bbfa78c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x0bf2bca3 param_set_ulong +EXPORT_SYMBOL vmlinux 0x0bfc1d1a check_zeroed_user +EXPORT_SYMBOL vmlinux 0x0c0b25ac kobject_init +EXPORT_SYMBOL vmlinux 0x0c148ddf pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x0c1f3c1a nobh_write_end +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c3690fc _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x0c48d96c tty_name +EXPORT_SYMBOL vmlinux 0x0c575719 __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x0c5c0053 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL vmlinux 0x0c7f25fb inet_frag_find +EXPORT_SYMBOL vmlinux 0x0c8d449c rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x0c9918f8 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cbde9a9 scsi_device_put +EXPORT_SYMBOL vmlinux 0x0cc4b4b6 crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x0cc6bf2e dma_resv_init +EXPORT_SYMBOL vmlinux 0x0ccdd2ab neigh_lookup +EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x0cda9d73 simple_getattr +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0cdd1709 lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0cf0b1a1 cpu_hwcap_keys +EXPORT_SYMBOL vmlinux 0x0d06c85e cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d0d4d8b dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x0d19bb07 migrate_vma_pages +EXPORT_SYMBOL vmlinux 0x0d1a0179 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0d2ca20f ucc_fast_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x0d2ce582 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x0d333b64 zstd_end_stream +EXPORT_SYMBOL vmlinux 0x0d36072a blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x0d3f5c1a fman_get_max_frm +EXPORT_SYMBOL vmlinux 0x0d3f7766 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x0d48c781 udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d623754 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x0d713345 clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x0d82762a iov_iter_revert +EXPORT_SYMBOL vmlinux 0x0d8c60a3 iunique +EXPORT_SYMBOL vmlinux 0x0dd3df70 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x0ddfcab6 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x0dfe6805 inc_node_page_state +EXPORT_SYMBOL vmlinux 0x0dfe8a10 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e1fcd11 pci_pme_active +EXPORT_SYMBOL vmlinux 0x0e1ff4f8 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x0e3be8ca pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x0e40548b inode_add_bytes +EXPORT_SYMBOL vmlinux 0x0e4262c6 __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x0e52df80 kobject_get +EXPORT_SYMBOL vmlinux 0x0e69303e dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x0e6ba9db scsi_remove_host +EXPORT_SYMBOL vmlinux 0x0e72715f zpool_register_driver +EXPORT_SYMBOL vmlinux 0x0e7a4610 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x0e7d1f10 should_remove_suid +EXPORT_SYMBOL vmlinux 0x0e80d5f3 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x0e9d953d qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eb604ab __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0ecf58e5 proc_create_single_data +EXPORT_SYMBOL vmlinux 0x0edc6eb7 __f_setown +EXPORT_SYMBOL vmlinux 0x0ee7e2b2 vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x0efed681 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f35468c rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0x0f37ca89 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x0f4041b1 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x0f630261 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x0f6cc19a input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x0f6d7ced kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x0f714654 ps2_drain +EXPORT_SYMBOL vmlinux 0x0f7e85f4 xp_dma_map +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f9bff3a phy_connect_direct +EXPORT_SYMBOL vmlinux 0x0f9ecc43 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x0fab1ab0 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0fafcf6e devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fb67c39 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x0fbbb54b phy_config_aneg +EXPORT_SYMBOL vmlinux 0x0fc5111e dev_get_mac_address +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0ff2b707 param_get_short +EXPORT_SYMBOL vmlinux 0x0ff83173 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x100e5b66 dns_query +EXPORT_SYMBOL vmlinux 0x1025009a cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x102936ec qe_clock_source +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x103fab28 get_cached_acl +EXPORT_SYMBOL vmlinux 0x104030ec pci_enable_msi +EXPORT_SYMBOL vmlinux 0x104bd031 dm_table_event +EXPORT_SYMBOL vmlinux 0x104cbcbe pci_get_device +EXPORT_SYMBOL vmlinux 0x10529b64 vme_register_bridge +EXPORT_SYMBOL vmlinux 0x1057a279 bsearch +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x106f496c no_llseek +EXPORT_SYMBOL vmlinux 0x1075d485 rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x107be0b0 percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x1088a342 rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0x10d1808b alloc_fcdev +EXPORT_SYMBOL vmlinux 0x10d82205 generic_fillattr +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11327ad2 devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x1151fac2 find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x11674e9d input_close_device +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1183ab4d posix_test_lock +EXPORT_SYMBOL vmlinux 0x11859bfc bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x1199791b dump_emit +EXPORT_SYMBOL vmlinux 0x11a37ac7 netif_device_attach +EXPORT_SYMBOL vmlinux 0x11d189b1 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e25e49 devm_clk_get +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11ffdfee ucc_slow_stop_tx +EXPORT_SYMBOL vmlinux 0x1208ce1c __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120ff8e1 xudma_get_rflow_ring_offset +EXPORT_SYMBOL vmlinux 0x1221e0f4 fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x1228a135 i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x1235ece4 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x123abd1b tty_check_change +EXPORT_SYMBOL vmlinux 0x12460878 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x126961b4 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x126e40b1 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x12a4e128 __arch_copy_from_user +EXPORT_SYMBOL vmlinux 0x12b8f13d page_pool_destroy +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12ddeade devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x12f6b6ac simple_get_link +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 0x13243d4b wl1251_get_platform_data +EXPORT_SYMBOL vmlinux 0x13315627 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x1337c847 is_subdir +EXPORT_SYMBOL vmlinux 0x13466219 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0x1346fee1 register_cdrom +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x134d4127 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x138bdd96 cpumask_next +EXPORT_SYMBOL vmlinux 0x139d98e2 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x139f2189 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x13a06c6d vc_cons +EXPORT_SYMBOL vmlinux 0x13ac5c98 of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x13af67e5 fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0x13b35697 of_xudma_dev_get +EXPORT_SYMBOL vmlinux 0x13c9b595 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x13cb5034 d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d1817b filp_close +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13dbb346 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x13dfcbd9 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x13e5e700 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x13f5e07e dev_mc_sync +EXPORT_SYMBOL vmlinux 0x13faef16 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x13fe3b78 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x141271bf acpi_dev_found +EXPORT_SYMBOL vmlinux 0x14261870 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x142a121e tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x142c1d61 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x1432a58f pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x143e3f47 ptp_find_pin +EXPORT_SYMBOL vmlinux 0x143f580e ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x144945e7 tegra_ivc_reset +EXPORT_SYMBOL vmlinux 0x144bc585 kill_fasync +EXPORT_SYMBOL vmlinux 0x1459cd3e tegra_ivc_write_get_next_frame +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x14644cd4 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x14703d75 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x1474dc75 mmc_release_host +EXPORT_SYMBOL vmlinux 0x14861b57 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x1486ded2 dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x149d8aa3 sock_edemux +EXPORT_SYMBOL vmlinux 0x149f0f9c xfrm_state_free +EXPORT_SYMBOL vmlinux 0x14b2f916 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x14b89635 arm64_const_caps_ready +EXPORT_SYMBOL vmlinux 0x14b8ca85 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14e14468 register_qdisc +EXPORT_SYMBOL vmlinux 0x14ee081b free_buffer_head +EXPORT_SYMBOL vmlinux 0x14f45fcc bman_free_pool +EXPORT_SYMBOL vmlinux 0x15109942 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x1515722f mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x151c02c5 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x15325983 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x153d8701 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x1543ae33 from_kuid +EXPORT_SYMBOL vmlinux 0x15478ae0 of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1569eb9d devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x156d3449 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x156d78ec napi_enable +EXPORT_SYMBOL vmlinux 0x1583110a is_nd_dax +EXPORT_SYMBOL vmlinux 0x159694ca pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x15aea3e7 ppp_input_error +EXPORT_SYMBOL vmlinux 0x15b19880 of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0x15ba50a6 jiffies +EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x15c09ea2 udp_set_csum +EXPORT_SYMBOL vmlinux 0x15c85de3 mempool_init +EXPORT_SYMBOL vmlinux 0x15d87854 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x15eeddb4 nd_pfn_probe +EXPORT_SYMBOL vmlinux 0x15f10cf0 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x16024fa0 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x16247512 page_get_link +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x163d2417 tegra_io_rail_power_off +EXPORT_SYMBOL vmlinux 0x1655b031 devm_memunmap +EXPORT_SYMBOL vmlinux 0x165ad395 trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x166946d8 jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0x16771438 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x167aaab7 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e52e4 security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x1689c0de d_find_alias +EXPORT_SYMBOL vmlinux 0x169938c1 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x16a09e31 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x16a866b6 tcf_classify +EXPORT_SYMBOL vmlinux 0x16c2cd9e tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x16ca1336 skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x16cdc340 acpi_get_table +EXPORT_SYMBOL vmlinux 0x16cfeec9 component_match_add_typed +EXPORT_SYMBOL vmlinux 0x16dee44d dma_fence_init +EXPORT_SYMBOL vmlinux 0x16e03d7b phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x16e0e617 cad_pid +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e7e2cb cpu_all_bits +EXPORT_SYMBOL vmlinux 0x16edd01c msm_pinctrl_remove +EXPORT_SYMBOL vmlinux 0x16f95cf3 flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x170ddf79 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0x17272bb6 phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x174ee695 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x17784994 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x17825d3f xudma_rchan_get +EXPORT_SYMBOL vmlinux 0x1788e506 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x178c4894 qe_upload_firmware +EXPORT_SYMBOL vmlinux 0x179d4aa5 param_get_uint +EXPORT_SYMBOL vmlinux 0x17a68d2d sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x17b9121c watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x17c54e0d vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x17cc700d PageMovable +EXPORT_SYMBOL vmlinux 0x17d09e20 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x17ddab9f blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x17e2398b xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x17eb29f8 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x17f3840b md_unregister_thread +EXPORT_SYMBOL vmlinux 0x17f9e92d pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x17fcd8a0 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x17fe1571 __bio_advance +EXPORT_SYMBOL vmlinux 0x180778e7 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x180fd707 __breadahead +EXPORT_SYMBOL vmlinux 0x18345a58 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x183b487f ip_frag_next +EXPORT_SYMBOL vmlinux 0x183c2154 lru_cache_add +EXPORT_SYMBOL vmlinux 0x184097a3 skb_push +EXPORT_SYMBOL vmlinux 0x184e5aed mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x1850ccf9 input_set_keycode +EXPORT_SYMBOL vmlinux 0x1852cb78 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x18564894 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0x1867bead has_capability +EXPORT_SYMBOL vmlinux 0x187884a8 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x18888d00 downgrade_write +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x188fab51 kernel_write +EXPORT_SYMBOL vmlinux 0x18afc153 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x18b48e28 __memset_io +EXPORT_SYMBOL vmlinux 0x18c8c3dd phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x18fe0a70 validate_slab_cache +EXPORT_SYMBOL vmlinux 0x193ea62d simple_transaction_get +EXPORT_SYMBOL vmlinux 0x19463e1b inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x1953c958 mempool_create +EXPORT_SYMBOL vmlinux 0x1979e8fe ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x1980110d get_tree_keyed +EXPORT_SYMBOL vmlinux 0x1980a06c serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x19810067 _dev_emerg +EXPORT_SYMBOL vmlinux 0x1981f0dd cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x1989639f inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x198de5d4 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19aeec3e mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x19b8068f scsi_register_interface +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19bf73ec alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x19cecf4f mdio_find_bus +EXPORT_SYMBOL vmlinux 0x19dadaa3 kern_path_create +EXPORT_SYMBOL vmlinux 0x19ed294d fb_pan_display +EXPORT_SYMBOL vmlinux 0x19efd53c devm_memremap +EXPORT_SYMBOL vmlinux 0x19f6032c flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x19f76bd5 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x1a026934 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x1a233bb2 __block_write_begin +EXPORT_SYMBOL vmlinux 0x1a2b9464 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x1a31063f ip_do_fragment +EXPORT_SYMBOL vmlinux 0x1a359e94 of_find_property +EXPORT_SYMBOL vmlinux 0x1a3dbd7f dev_disable_lro +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a5adc62 __break_lease +EXPORT_SYMBOL vmlinux 0x1a7c728c mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x1a867029 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x1a8feeb3 sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x1a903a82 udp_seq_next +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1a9e22d2 kernel_param_lock +EXPORT_SYMBOL vmlinux 0x1aa3aab7 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x1abcb318 mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ac9d13f of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x1aca5eed twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b02337d dm_unregister_target +EXPORT_SYMBOL vmlinux 0x1b059663 nd_integrity_init +EXPORT_SYMBOL vmlinux 0x1b29372e tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x1b34a2f2 do_clone_file_range +EXPORT_SYMBOL vmlinux 0x1b3c1b50 datagram_poll +EXPORT_SYMBOL vmlinux 0x1b412119 read_cache_folio +EXPORT_SYMBOL vmlinux 0x1b44c7cd truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x1b5196fc xudma_tchan_put +EXPORT_SYMBOL vmlinux 0x1b5834f9 key_link +EXPORT_SYMBOL vmlinux 0x1b597b7a swake_up_all +EXPORT_SYMBOL vmlinux 0x1b5cc9d8 dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x1b627dba scsi_dma_map +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b725b68 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b806b54 generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x1b908d85 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0x1b94010d seq_hex_dump +EXPORT_SYMBOL vmlinux 0x1ba59527 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x1ba7727f clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bb86b9a xen_start_info +EXPORT_SYMBOL vmlinux 0x1bbeef44 bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x1bc6157e tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x1bd59dbe vme_free_consistent +EXPORT_SYMBOL vmlinux 0x1be24290 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1beb5efa ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x1c2c041c skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x1c2efd27 dquot_disable +EXPORT_SYMBOL vmlinux 0x1c58427f acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c71b72f blk_put_queue +EXPORT_SYMBOL vmlinux 0x1c9a7b17 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0x1ca94399 __register_chrdev +EXPORT_SYMBOL vmlinux 0x1cb11044 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1cc549f0 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x1ccafe61 dev_get_flags +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cd8438b pxm_to_node +EXPORT_SYMBOL vmlinux 0x1cdb3c03 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x1cdd39ba logic_outsl +EXPORT_SYMBOL vmlinux 0x1ce40077 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x1cf5efa6 xudma_rflow_get_id +EXPORT_SYMBOL vmlinux 0x1d07e365 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x1d1abdf0 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x1d24c881 ___ratelimit +EXPORT_SYMBOL vmlinux 0x1d36caee pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x1d40b6f3 idr_for_each +EXPORT_SYMBOL vmlinux 0x1d474819 security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x1d5bdbf4 dquot_file_open +EXPORT_SYMBOL vmlinux 0x1d5cedae __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x1d754e58 fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x1d9672bd fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x1d98cd59 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x1d9e2f5f mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x1db3eb35 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd94f5f to_ndd +EXPORT_SYMBOL vmlinux 0x1dd95a76 clkdev_drop +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1de59c22 qcom_scm_ice_invalidate_key +EXPORT_SYMBOL vmlinux 0x1de67f9b qcom_scm_io_writel +EXPORT_SYMBOL vmlinux 0x1def5871 security_sock_graft +EXPORT_SYMBOL vmlinux 0x1dfaa4dd efi +EXPORT_SYMBOL vmlinux 0x1e01a39e inet_frags_init +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 0x1e1100a2 ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e30a513 udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x1e52d276 devm_ioremap +EXPORT_SYMBOL vmlinux 0x1e6adaa0 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e78428e ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ed6f279 dev_add_pack +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1eda4e77 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1ef41b7e qcom_scm_iommu_set_pt_format +EXPORT_SYMBOL vmlinux 0x1efc0cef thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x1f305d9f touch_buffer +EXPORT_SYMBOL vmlinux 0x1f386c5d load_nls +EXPORT_SYMBOL vmlinux 0x1f557414 gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x1f55d5b1 register_framebuffer +EXPORT_SYMBOL vmlinux 0x1f574c2b jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0x1f5e375a skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x1f685f46 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x1f7e539f netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x1fa4b57b gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x1fa881a2 bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd469f1 xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0x1fd8b3cb migrate_page +EXPORT_SYMBOL vmlinux 0x1fdc8a9e __register_nls +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x202531f3 invalidate_disk +EXPORT_SYMBOL vmlinux 0x20463df4 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x204d6341 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x20559ca5 netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x206e9316 tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x20858b7f d_splice_alias +EXPORT_SYMBOL vmlinux 0x20919661 tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x209fb2c4 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x20a0adeb dqget +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a94978 msm_pinctrl_probe +EXPORT_SYMBOL vmlinux 0x20bfa242 vme_irq_handler +EXPORT_SYMBOL vmlinux 0x20cbb30a __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x21263b9f skb_append +EXPORT_SYMBOL vmlinux 0x21295dbc seq_puts +EXPORT_SYMBOL vmlinux 0x212cdcfa km_query +EXPORT_SYMBOL vmlinux 0x21321cc8 flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc +EXPORT_SYMBOL vmlinux 0x213b60bf fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x2148a5b1 icmp6_send +EXPORT_SYMBOL vmlinux 0x21767142 of_root +EXPORT_SYMBOL vmlinux 0x218db099 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x219a80d3 dqput +EXPORT_SYMBOL vmlinux 0x21ad7ccd lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0x21af0884 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x21b89a91 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21de1859 uart_match_port +EXPORT_SYMBOL vmlinux 0x21dec29c __ip_dev_find +EXPORT_SYMBOL vmlinux 0x21dff133 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21ef374c try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x21f51848 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x220b1367 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x220c7021 tegra_io_pad_power_disable +EXPORT_SYMBOL vmlinux 0x2213a9cd jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x22222849 kill_block_super +EXPORT_SYMBOL vmlinux 0x222782f9 fb_get_mode +EXPORT_SYMBOL vmlinux 0x222cc8f9 page_mapping +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2234ca51 acpi_match_platform_list +EXPORT_SYMBOL vmlinux 0x223626b8 tso_count_descs +EXPORT_SYMBOL vmlinux 0x223b6147 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x224ce651 xudma_free_gp_rflow_range +EXPORT_SYMBOL vmlinux 0x22523904 phy_device_register +EXPORT_SYMBOL vmlinux 0x225b5b96 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x226177b9 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x2269d4be dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x226c5612 amba_device_unregister +EXPORT_SYMBOL vmlinux 0x2271c79b xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x22912ee7 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x2291e6ca bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ba1731 mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x22be38df ethtool_notify +EXPORT_SYMBOL vmlinux 0x22bf07dc xp_alloc +EXPORT_SYMBOL vmlinux 0x22c09291 sock_set_priority +EXPORT_SYMBOL vmlinux 0x22c6ae8b crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x22ceebae bmap +EXPORT_SYMBOL vmlinux 0x22d4f81f param_get_ulong +EXPORT_SYMBOL vmlinux 0x22dc6f1f setattr_prepare +EXPORT_SYMBOL vmlinux 0x23084906 rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0x2311d506 blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0x2316ea52 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x231b7e95 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x231c1b27 sk_alloc +EXPORT_SYMBOL vmlinux 0x231d8d56 wake_up_process +EXPORT_SYMBOL vmlinux 0x23252d01 make_kuid +EXPORT_SYMBOL vmlinux 0x23265e03 would_dump +EXPORT_SYMBOL vmlinux 0x2331a9c2 mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0x23323196 inet_add_offload +EXPORT_SYMBOL vmlinux 0x233a6098 folio_mapped +EXPORT_SYMBOL vmlinux 0x2349b70c kernel_read +EXPORT_SYMBOL vmlinux 0x2354da7d sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x23559c51 qman_oos_fq +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x237305d6 tcf_qevent_init +EXPORT_SYMBOL vmlinux 0x2377dd10 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x237a0b5c __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x237cb5a7 __neigh_create +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x2391f725 irq_stat +EXPORT_SYMBOL vmlinux 0x239513ea nf_log_trace +EXPORT_SYMBOL vmlinux 0x23a0e4dc vfs_unlink +EXPORT_SYMBOL vmlinux 0x23a441bb pci_remove_bus +EXPORT_SYMBOL vmlinux 0x23a9cbe8 unregister_nls +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23cabbb1 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x23daa989 mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x23db69d3 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x23e18661 unpin_user_page +EXPORT_SYMBOL vmlinux 0x23e1ae3d generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x23ea2df9 noop_qdisc +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23f1d7a6 page_pool_ethtool_stats_get_count +EXPORT_SYMBOL vmlinux 0x23f4ddb8 config_item_put +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240a84fd mount_bdev +EXPORT_SYMBOL vmlinux 0x2424f276 tso_build_data +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2445a422 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245d63cf blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x245e5f8a pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x248610f0 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x249e3c2a mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0x249ee023 tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0x24c5bb89 block_write_begin +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24d5253d d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x24e0a787 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0x24e85313 scsi_partsize +EXPORT_SYMBOL vmlinux 0x24eccda4 mmc_run_bkops +EXPORT_SYMBOL vmlinux 0x24f24477 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x24f331a8 _dev_crit +EXPORT_SYMBOL vmlinux 0x25016a19 devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x2503b14e netdev_printk +EXPORT_SYMBOL vmlinux 0x2505bf18 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x252438f2 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x25392643 mpage_writepages +EXPORT_SYMBOL vmlinux 0x253f7296 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x254bb5d6 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x25565d90 device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x2562b23c shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x256b166b start_tty +EXPORT_SYMBOL vmlinux 0x2571ee08 inet_accept +EXPORT_SYMBOL vmlinux 0x2572793a __napi_schedule +EXPORT_SYMBOL vmlinux 0x2579b384 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258a2c02 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x25916bbf dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x259495ac param_ops_bool +EXPORT_SYMBOL vmlinux 0x25974000 wait_for_completion +EXPORT_SYMBOL vmlinux 0x25a31520 iget_locked +EXPORT_SYMBOL vmlinux 0x25c0d29a proc_set_user +EXPORT_SYMBOL vmlinux 0x25c5b140 devfreq_update_status +EXPORT_SYMBOL vmlinux 0x25c7771e neigh_table_init +EXPORT_SYMBOL vmlinux 0x25cf1e63 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x260e52ee dynamic_preempt_schedule_notrace +EXPORT_SYMBOL vmlinux 0x262a7f61 bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x26330b05 ram_aops +EXPORT_SYMBOL vmlinux 0x263878ec bio_copy_data +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263c3152 bcmp +EXPORT_SYMBOL vmlinux 0x263ec6ab md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x263f0d1f qman_portal_set_iperiod +EXPORT_SYMBOL vmlinux 0x263f8187 kfree_skb_reason +EXPORT_SYMBOL vmlinux 0x2676684f hmm_range_fault +EXPORT_SYMBOL vmlinux 0x267f8b95 qman_start_using_portal +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x269241a9 napi_disable +EXPORT_SYMBOL vmlinux 0x26a87145 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x26d4d9e8 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e6ca7d vc_resize +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x270d373a tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x2716abeb km_report +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x2725b18e nd_pfn_validate +EXPORT_SYMBOL vmlinux 0x272616a8 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x272a8933 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x272e8f95 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x274e2508 dev_add_offload +EXPORT_SYMBOL vmlinux 0x2759ff20 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x275dfee4 ucc_slow_free +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x277c2905 i2c_verify_client +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 0x278b1c3d blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x27a0f623 rproc_shutdown +EXPORT_SYMBOL vmlinux 0x27aa1a29 seq_pad +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27bc5146 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x27bd5a47 trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x27bfc3a0 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x27c3c728 qman_release_fqid +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27d66764 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x27ddb214 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x27e0dd0a qcom_scm_pas_init_image +EXPORT_SYMBOL vmlinux 0x27f0d0a7 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0x27f8a6d4 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x281070b5 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x2817f06d mr_table_dump +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2847c3db kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x288131b2 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x28dcf32c twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x28e4ba66 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x28fb231f __devm_request_region +EXPORT_SYMBOL vmlinux 0x291ad9e7 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x292f40df device_add_disk +EXPORT_SYMBOL vmlinux 0x2942f3ee fddi_type_trans +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x29a859c6 phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x29b1f3d6 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x29b2eae7 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x29c2583d param_ops_hexint +EXPORT_SYMBOL vmlinux 0x29c84941 finish_swait +EXPORT_SYMBOL vmlinux 0x29ca7c5c inet_recvmsg +EXPORT_SYMBOL vmlinux 0x29e1e204 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x29ffd334 rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0x2a107e11 nd_device_notify +EXPORT_SYMBOL vmlinux 0x2a11dae9 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x2a25c531 inet6_protos +EXPORT_SYMBOL vmlinux 0x2a2ae5ad md_handle_request +EXPORT_SYMBOL vmlinux 0x2a2b1f66 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a397f24 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x2a45e79d xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x2a460286 unload_nls +EXPORT_SYMBOL vmlinux 0x2a4f2ebd __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x2a59a11d wireless_spy_update +EXPORT_SYMBOL vmlinux 0x2a7b555d pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0x2a7f9e08 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x2a804eb9 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x2a8a0b96 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2a910d98 discard_new_inode +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2aa0843e mempool_resize +EXPORT_SYMBOL vmlinux 0x2aabaf9d xudma_tchan_get +EXPORT_SYMBOL vmlinux 0x2aabcdc8 vmalloc_array +EXPORT_SYMBOL vmlinux 0x2ab2ee91 brcmstb_get_product_id +EXPORT_SYMBOL vmlinux 0x2ab66d49 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x2ac4ae7d simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2ac7e7a1 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x2ad508f5 pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x2af07e24 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x2af45c48 dm_io +EXPORT_SYMBOL vmlinux 0x2af8e12e tcf_idr_search +EXPORT_SYMBOL vmlinux 0x2afc47b2 skb_copy_header +EXPORT_SYMBOL vmlinux 0x2b0bb87e from_kgid +EXPORT_SYMBOL vmlinux 0x2b1abce3 fman_has_errata_a050385 +EXPORT_SYMBOL vmlinux 0x2b1c1192 set_bh_page +EXPORT_SYMBOL vmlinux 0x2b2137f5 netdev_state_change +EXPORT_SYMBOL vmlinux 0x2b22f3e0 vme_slot_num +EXPORT_SYMBOL vmlinux 0x2b24426b ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x2b49fd90 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x2b5659a8 md_integrity_register +EXPORT_SYMBOL vmlinux 0x2b593aa8 gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b7b7be3 con_is_visible +EXPORT_SYMBOL vmlinux 0x2b983d2e __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2bac897c proc_create_data +EXPORT_SYMBOL vmlinux 0x2bb6099e dq_data_lock +EXPORT_SYMBOL vmlinux 0x2bb95cce __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x2bc261aa regset_get +EXPORT_SYMBOL vmlinux 0x2bcf99b3 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x2bd60ab9 acpi_reset +EXPORT_SYMBOL vmlinux 0x2bdb8340 from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x2bfbab10 __memmove +EXPORT_SYMBOL vmlinux 0x2bfcf921 update_region +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c329e54 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0x2c4e4ba0 dm_register_target +EXPORT_SYMBOL vmlinux 0x2c50d420 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0x2c541e7b radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x2c57fc67 pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0x2c623d7e blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x2c71fbfb proc_dobool +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c8bff0b dup_iter +EXPORT_SYMBOL vmlinux 0x2c91e17c vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x2ca6bafd __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x2cb4e778 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top +EXPORT_SYMBOL vmlinux 0x2cdf87a1 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x2cf6a3a8 skb_vlan_push +EXPORT_SYMBOL vmlinux 0x2d046533 mmput_async +EXPORT_SYMBOL vmlinux 0x2d0d7841 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x2d139b78 phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d192c70 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x2d1a42f0 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x2d1d0c9d __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x2d25b95d is_acpi_device_node +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 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d8d4cf1 clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0x2d912bca dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2d9afd7b pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x2d9faefa inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x2db62530 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x2dbd2771 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x2dce2f1c __irq_regs +EXPORT_SYMBOL vmlinux 0x2dd7d84b proc_mkdir +EXPORT_SYMBOL vmlinux 0x2dff2bc7 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x2e0b1deb dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x2e193a92 tegra_ivc_cleanup +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e20a3e0 mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2c4ddc logic_inw +EXPORT_SYMBOL vmlinux 0x2e3bcce2 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x2e44bdf9 __mdiobus_register +EXPORT_SYMBOL vmlinux 0x2e5b27da xudma_alloc_gp_rflow_range +EXPORT_SYMBOL vmlinux 0x2e5c5cbe of_device_unregister +EXPORT_SYMBOL vmlinux 0x2e73de51 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x2e7caa5e set_anon_super +EXPORT_SYMBOL vmlinux 0x2e99453c __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x2e9aa761 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x2ea9718e input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x2eb28cd5 ping_prot +EXPORT_SYMBOL vmlinux 0x2eb9e69c pci_free_irq +EXPORT_SYMBOL vmlinux 0x2ec04a1e param_set_long +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2ec7d08f noop_fsync +EXPORT_SYMBOL vmlinux 0x2ec8a5a2 rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x2edd4af0 vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x2ee1ddf5 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x2ee4c2b1 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x2eeadd9b dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x2eeeb9dd pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x2f030db2 del_gendisk +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f1254d1 ucc_tdm_init +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 0x2f683e67 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2fafcba0 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x2fc505ec vm_node_stat +EXPORT_SYMBOL vmlinux 0x2fcf4299 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x2fd6dc89 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x2fdc09af ip_local_deliver +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe276e3 mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x2fe5b535 qcom_scm_assign_mem +EXPORT_SYMBOL vmlinux 0x2ff121f8 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x2ffcaf37 block_truncate_page +EXPORT_SYMBOL vmlinux 0x2ffd9fe0 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x301a0e04 netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x302520f5 inet6_release +EXPORT_SYMBOL vmlinux 0x3027776a follow_up +EXPORT_SYMBOL vmlinux 0x3056556e ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x3060f8d0 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30ac1e64 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30b25c6f acpi_dev_hid_uid_match +EXPORT_SYMBOL vmlinux 0x30d2895b dcache_dir_close +EXPORT_SYMBOL vmlinux 0x30d6d2a2 of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x30da48c3 security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ed017b pps_event +EXPORT_SYMBOL vmlinux 0x31197d16 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x3130ae25 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x31365631 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x3146b966 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x31503501 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x31541e2d of_translate_address +EXPORT_SYMBOL vmlinux 0x31674b40 mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x3177dfd9 __destroy_inode +EXPORT_SYMBOL vmlinux 0x319d493d proc_dostring +EXPORT_SYMBOL vmlinux 0x31a068b3 vfs_setpos +EXPORT_SYMBOL vmlinux 0x31a4767f qcom_scm_hdcp_available +EXPORT_SYMBOL vmlinux 0x31bbc8ec rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x31ca37c7 iommu_get_msi_cookie +EXPORT_SYMBOL vmlinux 0x31eef4ec fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x31fd4e74 unix_get_socket +EXPORT_SYMBOL vmlinux 0x3213f038 mutex_unlock +EXPORT_SYMBOL vmlinux 0x321ed8cd genphy_read_status +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x32394d4b qe_issue_cmd +EXPORT_SYMBOL vmlinux 0x323e755d crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x323f6949 mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x3248224d sg_miter_skip +EXPORT_SYMBOL vmlinux 0x326354a7 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x32787823 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x3299ebf6 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x329c15d4 devm_of_iomap +EXPORT_SYMBOL vmlinux 0x32a27fba elv_rb_del +EXPORT_SYMBOL vmlinux 0x32b905e4 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x32bcebc9 fb_find_mode +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32d4abbd __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x32dbb6b1 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x32dc1fb4 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x32e6f1a0 acpi_video_backlight_string +EXPORT_SYMBOL vmlinux 0x32e73b5a skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x33037fd8 logic_outl +EXPORT_SYMBOL vmlinux 0x33042581 sk_error_report +EXPORT_SYMBOL vmlinux 0x33089f42 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x331d3418 param_get_int +EXPORT_SYMBOL vmlinux 0x3336ba99 close_fd_get_file +EXPORT_SYMBOL vmlinux 0x333a2c01 mii_nway_restart +EXPORT_SYMBOL vmlinux 0x336f5549 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x33736a1d __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x33880d71 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x338d244b tcp_peek_len +EXPORT_SYMBOL vmlinux 0x33d8587e fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x3402dc8b __write_overflow_field +EXPORT_SYMBOL vmlinux 0x342059e2 vfs_symlink +EXPORT_SYMBOL vmlinux 0x3424daf8 __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x345f1a9b inode_dio_wait +EXPORT_SYMBOL vmlinux 0x346eb697 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x3471f86a generic_delete_inode +EXPORT_SYMBOL vmlinux 0x348d20f0 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a1f7e3 acpi_processor_get_psd +EXPORT_SYMBOL vmlinux 0x34b16334 __next_node_in +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34db050b _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x34ee390a __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f719b3 user_path_at_empty +EXPORT_SYMBOL vmlinux 0x34fe1a5b max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x350045ce blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x350ea558 dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x35141c22 gro_cells_init +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x3524a15f is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x3529a809 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x353a0f02 input_setup_polling +EXPORT_SYMBOL vmlinux 0x353e962a input_free_device +EXPORT_SYMBOL vmlinux 0x35405020 pnp_possible_config +EXPORT_SYMBOL vmlinux 0x35420a12 nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x354b89bc scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0x354c9175 cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x357f42ec mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x358dd4d4 cdrom_release +EXPORT_SYMBOL vmlinux 0x35973617 tegra_dfll_runtime_suspend +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35b471fb kill_litter_super +EXPORT_SYMBOL vmlinux 0x35b9c864 fman_get_bmi_max_fifo_size +EXPORT_SYMBOL vmlinux 0x35c160ed __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x35c35d70 locks_free_lock +EXPORT_SYMBOL vmlinux 0x35e392d4 tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x35fe5286 devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x360218b5 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x364850b1 down_write_killable +EXPORT_SYMBOL vmlinux 0x364c23ad mutex_is_locked +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x3660305a pci_find_capability +EXPORT_SYMBOL vmlinux 0x366bafad blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x3673b42e skb_copy_bits +EXPORT_SYMBOL vmlinux 0x36814fc9 mod_node_page_state +EXPORT_SYMBOL vmlinux 0x3681e6f3 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x36849a04 fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x369be839 kill_pid +EXPORT_SYMBOL vmlinux 0x36a5c64d init_net +EXPORT_SYMBOL vmlinux 0x36afb750 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x36b2e6c2 vm_map_ram +EXPORT_SYMBOL vmlinux 0x36b6ebbf down_killable +EXPORT_SYMBOL vmlinux 0x36c12aea pci_scan_slot +EXPORT_SYMBOL vmlinux 0x36df2e36 km_state_notify +EXPORT_SYMBOL vmlinux 0x37110088 remove_wait_queue +EXPORT_SYMBOL vmlinux 0x37173112 folio_account_redirty +EXPORT_SYMBOL vmlinux 0x37187ee4 copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x3737458a __register_binfmt +EXPORT_SYMBOL vmlinux 0x3739acdf dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x373ab3ae folio_mapping +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374fea90 cdrom_open +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x377d8004 acpi_error +EXPORT_SYMBOL vmlinux 0x377e5293 __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x377f0f91 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x378d7802 reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x37b8b39e screen_info +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x38048b37 xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x38063a41 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x380c7727 ndisc_ns_create +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38236326 fqdir_exit +EXPORT_SYMBOL vmlinux 0x38291446 inet_sendpage +EXPORT_SYMBOL vmlinux 0x383a1fb8 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x383e7cbe netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x3848d08c register_filesystem +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x3855b2bd may_umount_tree +EXPORT_SYMBOL vmlinux 0x3862747f mdio_device_remove +EXPORT_SYMBOL vmlinux 0x386320b4 get_vm_area +EXPORT_SYMBOL vmlinux 0x386a4dcb pci_clear_master +EXPORT_SYMBOL vmlinux 0x386e9ffa blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x38711391 __mdiobus_write +EXPORT_SYMBOL vmlinux 0x3878eb7e sock_dequeue_err_skb +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 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x38a68273 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38c2aaa0 d_add_ci +EXPORT_SYMBOL vmlinux 0x38d8772b dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x38e46431 mempool_exit +EXPORT_SYMBOL vmlinux 0x38e99d3a inet6_add_offload +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x38fb70e1 vfs_readlink +EXPORT_SYMBOL vmlinux 0x39170b17 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x391895cd inet_put_port +EXPORT_SYMBOL vmlinux 0x391c2e52 pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x392b1fea wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x394100d7 rio_query_mport +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x395e131f passthru_features_check +EXPORT_SYMBOL vmlinux 0x395f353d pci_enable_wake +EXPORT_SYMBOL vmlinux 0x3978ebf6 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x397de3a8 mdiobus_read +EXPORT_SYMBOL vmlinux 0x3981bbfd peernet2id +EXPORT_SYMBOL vmlinux 0x39857f78 seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x39947e67 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x399b56aa sock_i_ino +EXPORT_SYMBOL vmlinux 0x39a2dc0d __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x39a8966e ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39b8d49c cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x39be4b8e qman_volatile_dequeue +EXPORT_SYMBOL vmlinux 0x39c0de56 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x39d95ca4 zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x39e1cf5d netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x39fc7ee7 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x39fcd368 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x39fe9d4e mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x3a023fdd generic_read_dir +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a179f03 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x3a2ae003 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a50fdd6 register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x3a64c504 __scm_send +EXPORT_SYMBOL vmlinux 0x3a6b4458 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x3a6e582b uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x3a79b6fb textsearch_register +EXPORT_SYMBOL vmlinux 0x3a8dbdef tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ab88536 input_flush_device +EXPORT_SYMBOL vmlinux 0x3ac9ad2c ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x3aca0190 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x3acbc527 vme_dma_request +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 0x3ae34aeb zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x3ae5e436 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x3afce985 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x3aff3200 acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x3b0f23d2 xudma_is_pktdma +EXPORT_SYMBOL vmlinux 0x3b18bcbb ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x3b20fb95 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x3b26f5ed vme_master_mmap +EXPORT_SYMBOL vmlinux 0x3b321462 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x3b381a43 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x3b39df81 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x3b3d868b pci_dev_put +EXPORT_SYMBOL vmlinux 0x3b5e39b6 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x3b60e253 end_page_writeback +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b707ad5 imx_sc_rm_get_resource_owner +EXPORT_SYMBOL vmlinux 0x3b816be1 simple_lookup +EXPORT_SYMBOL vmlinux 0x3b9144c9 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x3b97e789 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3bf7c8f6 __fput_sync +EXPORT_SYMBOL vmlinux 0x3bfc3bae __ip_options_compile +EXPORT_SYMBOL vmlinux 0x3c0e1620 qcom_scm_pas_metadata_release +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c203fdc fb_set_var +EXPORT_SYMBOL vmlinux 0x3c3215c4 qe_immr +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c64e52c kmem_cache_free +EXPORT_SYMBOL vmlinux 0x3c8ee253 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x3ca15800 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x3ca9e69e __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x3cbb940b zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x3cd9ed83 logic_insw +EXPORT_SYMBOL vmlinux 0x3ce44ee9 cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf6eaa7 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x3cf7be24 phy_attach +EXPORT_SYMBOL vmlinux 0x3d02cd70 dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x3d210724 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x3d411001 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x3d4113c1 fc_mount +EXPORT_SYMBOL vmlinux 0x3d52e42b jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x3d5bfd41 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x3d5e999b vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x3d68f262 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x3d931b9b __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x3d93c7c2 __arm_smccc_sve_check +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3daac30f devm_clk_put +EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3db4a603 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x3db612a2 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x3dc057ef bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x3dc619d3 swake_up_locked +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd3f054 xudma_rchan_get_id +EXPORT_SYMBOL vmlinux 0x3dd9b230 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x3de95f93 get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x3df1966a generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x3dfb86b9 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dfc9bff kmem_cache_create +EXPORT_SYMBOL vmlinux 0x3e074093 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x3e1c167b netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x3e2a2baf inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e3d7630 pci_find_bus +EXPORT_SYMBOL vmlinux 0x3e44d94f input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x3e79fb00 arm_smccc_1_2_smc +EXPORT_SYMBOL vmlinux 0x3e814e9c dev_mc_init +EXPORT_SYMBOL vmlinux 0x3e8f9d1c pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x3e9542b4 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x3e98fb29 __SetPageMovable +EXPORT_SYMBOL vmlinux 0x3eb6eaf8 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x3ec223ca inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x3ee1a040 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x3eeb2322 __wake_up +EXPORT_SYMBOL vmlinux 0x3eed2b5b param_set_ushort +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f0eabd2 xxh64_update +EXPORT_SYMBOL vmlinux 0x3f114dff pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x3f1bbb12 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x3f34644d zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x3f40a632 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4bd846 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x3f4e6b60 skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x3f4fcfa6 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x3f52f7d6 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x3f545cad cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x3f548bf8 inet_shutdown +EXPORT_SYMBOL vmlinux 0x3f68f0c2 kern_unmount +EXPORT_SYMBOL vmlinux 0x3f7b9382 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3fa7f978 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x3fae21fd set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x3fafd7db generic_update_time +EXPORT_SYMBOL vmlinux 0x3fb43f52 rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fe3745f put_cmsg +EXPORT_SYMBOL vmlinux 0x3ffacd8f __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x400ef63a kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x401e68f2 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x40235c98 _raw_write_unlock +EXPORT_SYMBOL vmlinux 0x40683591 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x406b6aab md_flush_request +EXPORT_SYMBOL vmlinux 0x408c14ab sk_stop_timer +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b15f3d __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x40bad98e kobject_set_name +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40cec027 xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40e2c48e ether_setup +EXPORT_SYMBOL vmlinux 0x40e42768 migrate_page_copy +EXPORT_SYMBOL vmlinux 0x40f76a86 __vcalloc +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414cf6e3 pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x414da5e5 qman_enqueue +EXPORT_SYMBOL vmlinux 0x416bb26f elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x4173cc63 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x41834054 tty_hangup +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41939cc9 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4197973c sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x41a219d2 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x41a4f3f8 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x41a53549 simple_statfs +EXPORT_SYMBOL vmlinux 0x41c63398 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41d36f04 cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0x41ed3709 get_random_bytes +EXPORT_SYMBOL vmlinux 0x41efdeaf radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x422337eb tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x422fd23f simple_transaction_release +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x424de804 remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0x4254b43f send_sig_info +EXPORT_SYMBOL vmlinux 0x42578e80 acpi_get_type +EXPORT_SYMBOL vmlinux 0x427f241b fman_unregister_intr +EXPORT_SYMBOL vmlinux 0x4281fece blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x428640fb unregister_binfmt +EXPORT_SYMBOL vmlinux 0x428a8f3d __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x4296a2f0 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x4297fd2e uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x42bed8d4 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x42c39082 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x42ea48b0 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x43102f0b config_item_get +EXPORT_SYMBOL vmlinux 0x4314d332 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x432ad271 timestamp_truncate +EXPORT_SYMBOL vmlinux 0x433538a0 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x4336fcca ucs2_as_utf8 +EXPORT_SYMBOL vmlinux 0x433cabfb acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x43445b28 flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x4347590d of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x434838ab neigh_ifdown +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x439345f7 pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x439fb365 vfs_fadvise +EXPORT_SYMBOL vmlinux 0x43b0c9c3 preempt_schedule +EXPORT_SYMBOL vmlinux 0x43c8c50c lookup_one_len +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x4403bbd0 imx_sc_misc_set_control +EXPORT_SYMBOL vmlinux 0x441fb78e phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0x442c4667 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x44372a60 dev_addr_add +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x444846c6 dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x44512cfc dm_get_device +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x4467501a of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x44786c5c skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x44884446 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x44945cd7 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x449eef6d flush_dcache_folio +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44b071ad max8925_reg_read +EXPORT_SYMBOL vmlinux 0x44bc1d3a d_path +EXPORT_SYMBOL vmlinux 0x44da00dc vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x44e07156 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44e9c663 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x44f4af2f con_copy_unimap +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 0x4513825f dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0x451cd0a0 noop_llseek +EXPORT_SYMBOL vmlinux 0x45227732 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x452413a1 qman_alloc_pool_range +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x452eb769 input_open_device +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x455146fb inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x45535485 xxh32_update +EXPORT_SYMBOL vmlinux 0x455c1d0d tcp_read_sock +EXPORT_SYMBOL vmlinux 0x4575b4d9 set_nlink +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45dcb756 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x45e3bf8b dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x4601d8fc pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x4618fbf8 qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x4636ec2e devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x46399ddb kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x46451cee zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x4648d7b1 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467df16d netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x46926049 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x4694bb01 vme_init_bridge +EXPORT_SYMBOL vmlinux 0x4698fe8a bman_release +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x469ed9fd security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x46a056a6 tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0x46a1cd9d nd_btt_probe +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46d6a992 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x46ea8940 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x46f23935 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x46f405d3 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0x46f66a77 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x46f8760b input_grab_device +EXPORT_SYMBOL vmlinux 0x46ff7d12 qcom_scm_iommu_secure_ptbl_size +EXPORT_SYMBOL vmlinux 0x46ffd8f7 pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x470343dd register_key_type +EXPORT_SYMBOL vmlinux 0x470612dc fman_port_get_qman_channel_id +EXPORT_SYMBOL vmlinux 0x47065c73 cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x47113a80 skb_eth_push +EXPORT_SYMBOL vmlinux 0x4715a909 acpi_load_table +EXPORT_SYMBOL vmlinux 0x4726b1df __sock_create +EXPORT_SYMBOL vmlinux 0x47296d97 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x47381f53 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x475d7427 fman_get_rx_extra_headroom +EXPORT_SYMBOL vmlinux 0x475e9a86 pci_request_regions +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x47798dc8 reuseport_alloc +EXPORT_SYMBOL vmlinux 0x4779e66b blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x479137ca imx_scu_irq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x4795097b from_kuid_munged +EXPORT_SYMBOL vmlinux 0x47960bc4 proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47b0cb01 softnet_data +EXPORT_SYMBOL vmlinux 0x47b82866 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c3ce84 xen_alloc_ballooned_pages +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47c6c8d2 ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0x47c99070 dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x47cfd825 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x47d8d301 __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x47df47d8 tegra_dfll_runtime_resume +EXPORT_SYMBOL vmlinux 0x47e5c7e2 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x47ec140d backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x47ee6743 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x47eea225 security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x48041be2 backlight_force_update +EXPORT_SYMBOL vmlinux 0x48112d76 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481d4677 mdiobb_read +EXPORT_SYMBOL vmlinux 0x482300fb migrate_vma_setup +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x4837bb10 logic_outsb +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4843c20c generic_cont_expand_simple +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 0x486eec96 phy_attached_print +EXPORT_SYMBOL vmlinux 0x488d5261 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x48914f43 vme_dma_list_add +EXPORT_SYMBOL vmlinux 0x4893957c scsi_remove_target +EXPORT_SYMBOL vmlinux 0x48958279 fman_port_get_device +EXPORT_SYMBOL vmlinux 0x48981ca2 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x489eda10 memset32 +EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48b7b23e nf_setsockopt +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48bedf65 first_ec +EXPORT_SYMBOL vmlinux 0x48c093fb _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x48cb43ce path_has_submounts +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48d521e3 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0x48d5da97 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x48e757f4 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x48f6cbd5 import_iovec +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49161e87 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x492b104f iov_iter_zero +EXPORT_SYMBOL vmlinux 0x492f9266 vfs_statfs +EXPORT_SYMBOL vmlinux 0x49427d9b skb_unlink +EXPORT_SYMBOL vmlinux 0x494c21d0 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x494d9032 of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x4967e79f radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x4984c548 mdio_device_free +EXPORT_SYMBOL vmlinux 0x4989edee console_start +EXPORT_SYMBOL vmlinux 0x498bafe8 vme_irq_free +EXPORT_SYMBOL vmlinux 0x49939e8c __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x49a95f8b of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49b4ee73 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x49ba13db neigh_destroy +EXPORT_SYMBOL vmlinux 0x49cd6d8f phy_error +EXPORT_SYMBOL vmlinux 0x49ddff62 udp_seq_ops +EXPORT_SYMBOL vmlinux 0x49e0d49c dma_sync_wait +EXPORT_SYMBOL vmlinux 0x49e872ba rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0x49ebddcb blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x49f0bb2d __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x4a090bfd sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4a176504 mdio_device_create +EXPORT_SYMBOL vmlinux 0x4a23a833 key_put +EXPORT_SYMBOL vmlinux 0x4a24220e page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0x4a3ad70e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x4a41aba3 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x4a72d3da netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x4a792ed0 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x4a7bd4f7 __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x4a7f1143 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0x4a8e43b3 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x4a923a8c skb_pull_data +EXPORT_SYMBOL vmlinux 0x4a93576a ucc_fast_free +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4aa9a5c7 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x4aad1ab2 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x4abe9dbb dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4ac19e10 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x4acca241 elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x4ad9d433 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x4aea463f crc32_le_shift +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4afb2238 add_wait_queue +EXPORT_SYMBOL vmlinux 0x4afbf274 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x4b0a3f52 gic_nonsecure_priorities +EXPORT_SYMBOL vmlinux 0x4b4682f2 folio_add_lru +EXPORT_SYMBOL vmlinux 0x4b531bcd pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x4b533101 fd_install +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b696d47 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x4b6df007 acpi_evaluate_reg +EXPORT_SYMBOL vmlinux 0x4b750f53 _raw_spin_unlock_irq +EXPORT_SYMBOL vmlinux 0x4b7ac577 unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x4b814579 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x4b8336af phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x4b8ab1aa jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x4b9d80f2 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x4babed8d icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x4bcc2662 mempool_init_node +EXPORT_SYMBOL vmlinux 0x4bd34eb2 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x4bd9ed28 param_get_hexint +EXPORT_SYMBOL vmlinux 0x4beec1c6 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bf3ce6f qman_release_cgrid +EXPORT_SYMBOL vmlinux 0x4c07a7e0 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x4c1771c6 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x4c23b2b4 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c5b9cb1 dst_release +EXPORT_SYMBOL vmlinux 0x4c6e8b7c truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x4c99f3cf qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x4ca31648 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x4ca740af udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x4ca9f101 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0x4cb649dc security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4cc86eed mmc_get_card +EXPORT_SYMBOL vmlinux 0x4ceae342 amba_device_register +EXPORT_SYMBOL vmlinux 0x4cf2899e iov_iter_discard +EXPORT_SYMBOL vmlinux 0x4cf4036e d_set_d_op +EXPORT_SYMBOL vmlinux 0x4d02ec03 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d19d3d4 new_inode +EXPORT_SYMBOL vmlinux 0x4d2c7133 acpi_info +EXPORT_SYMBOL vmlinux 0x4d36a8c6 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x4d39549e padata_free +EXPORT_SYMBOL vmlinux 0x4d65cbd5 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x4d924f20 memremap +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da596e6 qman_retire_fq +EXPORT_SYMBOL vmlinux 0x4dc3526a dev_change_flags +EXPORT_SYMBOL vmlinux 0x4dca08ee sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x4dd4d6a5 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x4de8c4f8 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x4de995ec gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x4dede1ce __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x4df02057 crc32_be +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4df944e9 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x4dfa8d4b mutex_lock +EXPORT_SYMBOL vmlinux 0x4e14cd00 vfs_create +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 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e46a646 pci_release_resource +EXPORT_SYMBOL vmlinux 0x4e4ed7e6 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x4e4f0f16 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x4e547048 __kmalloc_node_track_caller +EXPORT_SYMBOL vmlinux 0x4e640cce __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6b7417 eth_header_cache +EXPORT_SYMBOL vmlinux 0x4e6e4b41 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e987d74 tegra_dfll_suspend +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4eaf67cb __skb_get_hash +EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x4ece7411 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x4ef538dd lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x4eff6b9e pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x4f171250 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x4f1a16cf i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f1f7932 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x4f1fc537 ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f24b29d wireless_send_event +EXPORT_SYMBOL vmlinux 0x4f34895d config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x4f47261d mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0x4f55166f acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x4f658480 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x4f709989 security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x4f739841 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x4f830334 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4f940702 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x4fb9fa0e xfrm_input +EXPORT_SYMBOL vmlinux 0x4fddfe10 pci_choose_state +EXPORT_SYMBOL vmlinux 0x4fec4814 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x4ff067bc key_invalidate +EXPORT_SYMBOL vmlinux 0x4ff1b481 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x4ff3ab32 filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x4ff3de10 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x500f73ae kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5011c03f dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x50151453 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x5021bd81 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x5027bde2 acpi_acquire_mutex +EXPORT_SYMBOL vmlinux 0x50286652 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x503eb686 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x505338e6 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x507aecac rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x5092e84e __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x509b64ea acpi_has_method +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50a5a367 qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x50b40610 nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50cf7585 hex2bin +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d71d7a regset_get_alloc +EXPORT_SYMBOL vmlinux 0x50dc7652 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x50de2631 md_cluster_ops +EXPORT_SYMBOL vmlinux 0x50f85302 __arm_smccc_hvc +EXPORT_SYMBOL vmlinux 0x50f91491 __genradix_ptr +EXPORT_SYMBOL vmlinux 0x5102a30b do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x510809d0 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x511dea4c of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x512bdaab iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x5138d5dc fman_get_mem_region +EXPORT_SYMBOL vmlinux 0x5148a6cb pcie_capability_read_dword +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 0x51799e54 cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x51865c38 page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0x5188f3bc vfs_llseek +EXPORT_SYMBOL vmlinux 0x5199596b __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x51a511eb _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x51b40718 trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0x51d0c23f sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51e6738c param_ops_uint +EXPORT_SYMBOL vmlinux 0x51f6e2a9 devm_of_clk_del_provider +EXPORT_SYMBOL vmlinux 0x5203d176 cmd_db_ready +EXPORT_SYMBOL vmlinux 0x52177359 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x5220d16c __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x52227be1 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x522fcebc skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x52319e1a serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x5263c793 kernel_listen +EXPORT_SYMBOL vmlinux 0x526d0e96 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x526eef2c hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x528edce3 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x52983a4f vme_master_write +EXPORT_SYMBOL vmlinux 0x529930f0 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x52a2aedf __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x52a3609b mmc_register_driver +EXPORT_SYMBOL vmlinux 0x52b4814b inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x52b55365 udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x52bb4ebf phy_drivers_register +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52dcb85b __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x52ec889c textsearch_destroy +EXPORT_SYMBOL vmlinux 0x52ecbc75 crc_ccitt +EXPORT_SYMBOL vmlinux 0x52ee13df skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0x52f2850a imx_sc_pm_cpu_start +EXPORT_SYMBOL vmlinux 0x52f6e90f unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530df419 security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x53126ecc __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x53343ef0 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x5336da3d pci_enable_device +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x533c2667 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x533ee7c8 mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x5344f4b1 pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x53730516 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x5377f995 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x538ca59a netdev_alert +EXPORT_SYMBOL vmlinux 0x538f8ed2 inc_nlink +EXPORT_SYMBOL vmlinux 0x53933d5a ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x539546a0 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x53aee915 of_chosen +EXPORT_SYMBOL vmlinux 0x53b48fe1 folio_wait_bit +EXPORT_SYMBOL vmlinux 0x53b8d5cb input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x53b954a2 up_read +EXPORT_SYMBOL vmlinux 0x53c0b54a blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0x53c15372 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x53cf191a rproc_detach +EXPORT_SYMBOL vmlinux 0x53d4e9f0 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x53ea3854 devm_rproc_add +EXPORT_SYMBOL vmlinux 0x53eed79f __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x53eff192 tegra_ivc_align +EXPORT_SYMBOL vmlinux 0x53f173d0 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x53f8ced7 page_pool_ethtool_stats_get_strings +EXPORT_SYMBOL vmlinux 0x5402da9f xudma_navss_psil_pair +EXPORT_SYMBOL vmlinux 0x541592c9 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x54221107 submit_bh +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5449ea3b xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x54669441 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x54777ba3 phy_driver_register +EXPORT_SYMBOL vmlinux 0x54b09cab qdisc_put +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54b5b297 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x54ba1028 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x54bc0bc1 edac_mc_find +EXPORT_SYMBOL vmlinux 0x54cd7a03 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x54e2bb62 of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ea6dfe xen_start_flags +EXPORT_SYMBOL vmlinux 0x54fbf45e jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x5508f28d bman_acquire +EXPORT_SYMBOL vmlinux 0x5514adcd xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5527bf4c dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x552db3aa qman_query_cgr_congested +EXPORT_SYMBOL vmlinux 0x554727ef of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x554a577a rproc_put +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x556b5d62 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x55735653 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x558ad1c2 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x55a6c066 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x55c9f7c0 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x55d61d37 tty_do_resize +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x5601b648 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x5609e7cb dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x5614f48a qman_dqrr_get_ithresh +EXPORT_SYMBOL vmlinux 0x56317494 dma_set_mask +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x564642f9 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x56470118 __warn_printk +EXPORT_SYMBOL vmlinux 0x564aa188 netif_skb_features +EXPORT_SYMBOL vmlinux 0x564f7608 acpi_reconfig_notifier_register +EXPORT_SYMBOL vmlinux 0x5668f8d2 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x5669e6b1 __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x566f7ccf ps2_end_command +EXPORT_SYMBOL vmlinux 0x567238dd kmalloc_caches +EXPORT_SYMBOL vmlinux 0x5675373e padata_free_shell +EXPORT_SYMBOL vmlinux 0x5677ccd0 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x56a555ff dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0x56a757b2 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x56ac10b1 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x56aed6f7 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x56c28c01 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x56c296cf get_tree_nodev +EXPORT_SYMBOL vmlinux 0x56c3db64 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56c98a49 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x56f8041d dst_release_immediate +EXPORT_SYMBOL vmlinux 0x5707e5f8 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x570f6eab sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x5746bf36 simple_empty +EXPORT_SYMBOL vmlinux 0x57474f62 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x575048d3 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575ca1e5 keyring_alloc +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577b7779 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x577e93ea scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x5782c847 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x57900416 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x5791ed62 prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x5794f2a8 rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x57bc19d2 down_write +EXPORT_SYMBOL vmlinux 0x57c38095 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x57c68e40 truncate_setsize +EXPORT_SYMBOL vmlinux 0x57d192ad writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x57db8fd6 utf8_normalize +EXPORT_SYMBOL vmlinux 0x57e2f507 md_done_sync +EXPORT_SYMBOL vmlinux 0x57f38cdc qe_get_firmware_info +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x5820a471 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x582606eb xudma_rflow_put +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584266ce tegra_ivc_read_advance +EXPORT_SYMBOL vmlinux 0x58462c32 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x5849fa50 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x585ae877 nmi_panic +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587b892e qe_get_num_of_risc +EXPORT_SYMBOL vmlinux 0x587f22d7 devmap_managed_key +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58ca579e skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x58cf732d mdiobus_scan +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58e91bb5 input_get_keycode +EXPORT_SYMBOL vmlinux 0x590aecae kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x590af301 xattr_full_name +EXPORT_SYMBOL vmlinux 0x5913a317 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x5927937b page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x59310d95 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x5931a56c skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x5934b5a9 qman_destroy_fq +EXPORT_SYMBOL vmlinux 0x593afc6c gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x595ba05f fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x595d8002 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5962df0c mmc_command_done +EXPORT_SYMBOL vmlinux 0x596a0cf6 fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x596e7300 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x598f90b2 devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x599b4888 qe_setbrg +EXPORT_SYMBOL vmlinux 0x599fb41c kvmalloc_node +EXPORT_SYMBOL vmlinux 0x59a2f0ee packing +EXPORT_SYMBOL vmlinux 0x59b1683c uart_get_divisor +EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x59d3d619 iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a107cce page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x5a15213c setup_arg_pages +EXPORT_SYMBOL vmlinux 0x5a24b286 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x5a290250 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5a2b1cc0 dev_deactivate +EXPORT_SYMBOL vmlinux 0x5a44f8cb __crypto_memneq +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a5328d5 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0x5a5f6261 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x5a5fe1a4 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x5a60b950 qm_channel_pool1 +EXPORT_SYMBOL vmlinux 0x5a648b1d pci_release_region +EXPORT_SYMBOL vmlinux 0x5a8b42c7 netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0x5a8d8686 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a956b5b empty_zero_page +EXPORT_SYMBOL vmlinux 0x5a993f45 dst_destroy +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5aa37e70 pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x5aab5adf genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0x5abc870d unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x5ace359a ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x5ad49b5c rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x5ad4b8cd dev_uc_flush +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5ae7f012 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x5aeda869 __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x5b22a5cd netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x5b2a34ae pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x5b2f27fb do_wait_intr +EXPORT_SYMBOL vmlinux 0x5b3e282f xa_store +EXPORT_SYMBOL vmlinux 0x5b4b4b63 skb_checksum +EXPORT_SYMBOL vmlinux 0x5b54903b qcom_scm_pas_mem_setup +EXPORT_SYMBOL vmlinux 0x5b55fa5d inet_frag_kill +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b90e487 netlink_set_err +EXPORT_SYMBOL vmlinux 0x5ba6d7d4 blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0x5bd039d8 __skb_pad +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5beeaa37 tegra_ivc_init +EXPORT_SYMBOL vmlinux 0x5c23cb36 dentry_create +EXPORT_SYMBOL vmlinux 0x5c26a53b wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c3d5484 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x5c82dd62 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x5c99ffe3 dquot_alloc +EXPORT_SYMBOL vmlinux 0x5cbc13e7 input_allocate_device +EXPORT_SYMBOL vmlinux 0x5cbfb95d pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x5cc198e7 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x5cd9d7be get_acl +EXPORT_SYMBOL vmlinux 0x5cf13c77 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cfb26a0 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0x5d112304 __memcpy_fromio +EXPORT_SYMBOL vmlinux 0x5d252a0c __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x5d38ecae unregister_cdrom +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d6a6214 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x5d75e090 km_state_expired +EXPORT_SYMBOL vmlinux 0x5d830e26 seq_release +EXPORT_SYMBOL vmlinux 0x5d8a8576 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x5d9d5eb9 shmem_aops +EXPORT_SYMBOL vmlinux 0x5dac106e dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5dac4cd6 qman_dqrr_set_ithresh +EXPORT_SYMBOL vmlinux 0x5dc7b620 sock_no_listen +EXPORT_SYMBOL vmlinux 0x5dca6ce9 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x5de4fbd6 dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0x5e06bc5c refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e12a49e ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x5e14eaf1 mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x5e1777cf get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x5e1f4a83 inet_listen +EXPORT_SYMBOL vmlinux 0x5e298dea phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x5e3240a0 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x5e332b52 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e3ac263 serio_reconnect +EXPORT_SYMBOL vmlinux 0x5e58f244 give_up_console +EXPORT_SYMBOL vmlinux 0x5e6abc81 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x5e6c36b4 inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x5e6f91f9 tegra_powergate_remove_clamping +EXPORT_SYMBOL vmlinux 0x5e77e833 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5e855e56 gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9a01ce gen_new_estimator +EXPORT_SYMBOL vmlinux 0x5eab5f2d security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ec69aa4 __serio_register_port +EXPORT_SYMBOL vmlinux 0x5ece0952 dev_driver_string +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed756c2 path_is_under +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5edab352 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x5edf4c8c nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5ef6a672 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x5ef80e15 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x5efdd68b __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x5efde8e6 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0f02a0 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x5f1ebde2 dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f5061f1 d_lookup +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f54732e security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x5f65a9ec iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x5f6b889c rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x5f8b424d mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x5f8b7ee2 rpmh_write +EXPORT_SYMBOL vmlinux 0x5f8d7600 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x5f93525c acpi_extract_package +EXPORT_SYMBOL vmlinux 0x5f936c86 sync_blockdev_range +EXPORT_SYMBOL vmlinux 0x5faa1a3e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x5fc72f0e alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fd2542b copy_highpage +EXPORT_SYMBOL vmlinux 0x5fe0e7fa path_get +EXPORT_SYMBOL vmlinux 0x5fe30204 simple_setattr +EXPORT_SYMBOL vmlinux 0x5fe6d1cb ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x5ff9eb0e lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x60042476 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6006ca65 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x6008689f kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x600d76b7 blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x603f0d62 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x604d3e40 crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x605705f7 iget_failed +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x60744f56 param_get_invbool +EXPORT_SYMBOL vmlinux 0x608741b5 __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x608d0267 zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60aaeb4b qman_p_irqsource_add +EXPORT_SYMBOL vmlinux 0x60b3071f neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x61073e4a acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0x6118988d security_path_mkdir +EXPORT_SYMBOL vmlinux 0x612529a3 pcie_get_mps +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x6141b3ed param_set_hexint +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x615f839f kset_register +EXPORT_SYMBOL vmlinux 0x6169f1fd msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x616eb335 has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x6175d8fc irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x617c452b queued_read_lock_slowpath +EXPORT_SYMBOL vmlinux 0x61852cd8 simple_fill_super +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 0x61a39d0e udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x61b1131a mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c4857f __quota_error +EXPORT_SYMBOL vmlinux 0x61c5cba5 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61e8d7da tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61fa1b22 to_nd_btt +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x624aa681 trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x624aace6 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x62502dac splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x62584970 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x625fc662 mount_single +EXPORT_SYMBOL vmlinux 0x62629717 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x626e6893 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628e90d3 ilookup5 +EXPORT_SYMBOL vmlinux 0x629079b3 dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x62949074 acpi_buffer_to_resource +EXPORT_SYMBOL vmlinux 0x62bb5a22 filp_open +EXPORT_SYMBOL vmlinux 0x62c2533d bio_endio +EXPORT_SYMBOL vmlinux 0x62c6f22b scmd_printk +EXPORT_SYMBOL vmlinux 0x62d96443 qman_dma_portal +EXPORT_SYMBOL vmlinux 0x62f7e207 down_read_killable +EXPORT_SYMBOL vmlinux 0x62f8205f submit_bio +EXPORT_SYMBOL vmlinux 0x62fa057f qdisc_reset +EXPORT_SYMBOL vmlinux 0x6314a7b5 rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x631d33f3 jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x6322a850 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x632799ec dev_get_stats +EXPORT_SYMBOL vmlinux 0x6337165b mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x6348cb37 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x634da694 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x63514598 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x635598c2 iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x6390bd17 phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a588e3 nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63b316c8 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63d06665 nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0x63d30aa4 path_put +EXPORT_SYMBOL vmlinux 0x63d71c25 of_node_name_prefix +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ec8577 vfs_getattr +EXPORT_SYMBOL vmlinux 0x63eede78 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x63f24db6 __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x63f5216c proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x63fba2b9 mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x63ff9b37 vme_irq_generate +EXPORT_SYMBOL vmlinux 0x6400cda7 nf_reinject +EXPORT_SYMBOL vmlinux 0x6411ff45 tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x642060b0 netif_rx +EXPORT_SYMBOL vmlinux 0x642eb5c6 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x643f3068 __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x644780bc acpi_mdiobus_register +EXPORT_SYMBOL vmlinux 0x644be12c qman_affine_cpus +EXPORT_SYMBOL vmlinux 0x6456bf77 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x646a8ae0 folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x6473566e __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x6479c126 tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x647ee6c8 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x64841681 blk_rq_init +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x649583b5 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64b1efc3 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64cd60d5 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x64d81723 vm_map_pages +EXPORT_SYMBOL vmlinux 0x64f9bb46 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x64fb6f04 put_watch_queue +EXPORT_SYMBOL vmlinux 0x650212b5 fs_param_is_string +EXPORT_SYMBOL vmlinux 0x6507bb78 dump_align +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x6527447e input_inject_event +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65316e8a skb_dump +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6543d443 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x654449c3 memset16 +EXPORT_SYMBOL vmlinux 0x6550a025 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x6566c21b __netif_schedule +EXPORT_SYMBOL vmlinux 0x656c1a0e string_escape_mem +EXPORT_SYMBOL vmlinux 0x656e4a6e snprintf +EXPORT_SYMBOL vmlinux 0x6572505e fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x6574d83e phy_stop +EXPORT_SYMBOL vmlinux 0x6584c3ba of_get_property +EXPORT_SYMBOL vmlinux 0x658bc9a1 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x6598dfc3 zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x65cf30ec acpi_notifier_call_chain +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 0x65f4e024 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x65f64f2d folio_migrate_copy +EXPORT_SYMBOL vmlinux 0x65f73650 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x6607d2af scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x661e841d i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x6626afca down +EXPORT_SYMBOL vmlinux 0x66284e6c of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x664b1e29 qman_delete_cgr +EXPORT_SYMBOL vmlinux 0x66583fe4 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x666863dc par_io_config_pin +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x66826f5a xudma_get_ringacc +EXPORT_SYMBOL vmlinux 0x668b19a1 down_read +EXPORT_SYMBOL vmlinux 0x668ebffd __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x66979670 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x66a0899e key_alloc +EXPORT_SYMBOL vmlinux 0x66af1fd1 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x66b4cc41 kmemdup +EXPORT_SYMBOL vmlinux 0x66cbbe4b try_to_release_page +EXPORT_SYMBOL vmlinux 0x66d9ef4d flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x66f2a754 md_reload_sb +EXPORT_SYMBOL vmlinux 0x6721fc7c security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x672fac77 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x6730d09d pci_select_bars +EXPORT_SYMBOL vmlinux 0x6733b453 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x67412d2f ucc_slow_enable +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x675fb2b5 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x6769ff5c of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x676bfef7 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x67ab61db nf_log_set +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c13ea0 acpi_read +EXPORT_SYMBOL vmlinux 0x67c17e69 tegra_ivc_write_advance +EXPORT_SYMBOL vmlinux 0x67c35860 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x67d621fa dquot_commit_info +EXPORT_SYMBOL vmlinux 0x6810961f blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x6821cb1e napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x68315043 scsi_print_command +EXPORT_SYMBOL vmlinux 0x684f8b8a ip6_xmit +EXPORT_SYMBOL vmlinux 0x684f9a38 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x6852d5ed jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x685d3955 __folio_alloc +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687dd2b4 dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x687e3555 jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x688902e2 filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0x689c5e83 phy_modify_paged +EXPORT_SYMBOL vmlinux 0x68c4a255 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x68ccd9b8 do_SAK +EXPORT_SYMBOL vmlinux 0x68d88a3e kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x68ef7a93 __netif_napi_del +EXPORT_SYMBOL vmlinux 0x68f6d449 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x69049cd2 radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x690ce7e3 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x691b9eaf pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x6926a60b ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x694688d4 compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x695724bc vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x69585523 __ksize +EXPORT_SYMBOL vmlinux 0x696322ac dma_find_channel +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x69684391 rproc_free +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6974f90c set_blocksize +EXPORT_SYMBOL vmlinux 0x697ed5f0 memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x697feb1d pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x6993fd36 vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x69a664ae drop_super_exclusive +EXPORT_SYMBOL vmlinux 0x69addced platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x69b32b01 devm_free_irq +EXPORT_SYMBOL vmlinux 0x69c72434 pcim_enable_device +EXPORT_SYMBOL vmlinux 0x69cc175b sync_blockdev +EXPORT_SYMBOL vmlinux 0x69d0fdf9 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x69d53cbc posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x69dd3b5b crc32_le +EXPORT_SYMBOL vmlinux 0x69de3f25 udp_prot +EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window +EXPORT_SYMBOL vmlinux 0x6a034d04 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0x6a03751f sgl_free_order +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a08aab8 dcb_getapp +EXPORT_SYMBOL vmlinux 0x6a1c7b4f __skb_checksum +EXPORT_SYMBOL vmlinux 0x6a1e0f53 _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x6a2f3db5 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x6a312154 simple_release_fs +EXPORT_SYMBOL vmlinux 0x6a36a869 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x6a373074 dev_uc_del +EXPORT_SYMBOL vmlinux 0x6a3766b2 qman_delete_cgr_safe +EXPORT_SYMBOL vmlinux 0x6a449c4f register_sysctl_table +EXPORT_SYMBOL vmlinux 0x6a5a0722 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a641841 devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x6a691b5d blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a77b877 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x6a8a7c2a mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x6a90663a qman_schedule_fq +EXPORT_SYMBOL vmlinux 0x6a9e049a fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6aa91f80 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x6ab6e6e5 nd_device_register +EXPORT_SYMBOL vmlinux 0x6acedfcf netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ade6c12 skb_eth_pop +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6af84064 ip6_frag_next +EXPORT_SYMBOL vmlinux 0x6b1457e4 tty_register_device +EXPORT_SYMBOL vmlinux 0x6b14cdd9 dma_resv_fini +EXPORT_SYMBOL vmlinux 0x6b1b8f6c sock_wfree +EXPORT_SYMBOL vmlinux 0x6b27729b radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x6b2c6a8d tty_port_close +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3223e2 netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x6b407e1a folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x6b4727f7 gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x6b494608 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x6b4b2933 __ioremap +EXPORT_SYMBOL vmlinux 0x6b531574 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b649a19 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x6b6f236f sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x6b82e8d9 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b880f92 fsync_bdev +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6ba62f80 phy_write_paged +EXPORT_SYMBOL vmlinux 0x6bb48182 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x6bbb7062 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc45c96 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x6bc8efc9 __mdiobus_read +EXPORT_SYMBOL vmlinux 0x6bd0e573 down_interruptible +EXPORT_SYMBOL vmlinux 0x6bd1a5d8 phy_init_hw +EXPORT_SYMBOL vmlinux 0x6be1c1f8 acpi_install_method +EXPORT_SYMBOL vmlinux 0x6be7c3b4 serio_interrupt +EXPORT_SYMBOL vmlinux 0x6bf05b1d pcim_iomap +EXPORT_SYMBOL vmlinux 0x6bf181c1 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6c18ec35 pipe_lock +EXPORT_SYMBOL vmlinux 0x6c1bf644 input_release_device +EXPORT_SYMBOL vmlinux 0x6c224cda gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c4a70f2 genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x6c4b6d6b skb_store_bits +EXPORT_SYMBOL vmlinux 0x6c4cd639 address_space_init_once +EXPORT_SYMBOL vmlinux 0x6c4ec2d7 __alloc_skb +EXPORT_SYMBOL vmlinux 0x6c4feca3 iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0x6c5dae23 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6c60657b of_match_node +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c75b1ff phy_register_fixup +EXPORT_SYMBOL vmlinux 0x6c782d9a mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x6c7a0323 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6c7ba33c nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x6c9534ba mmc_add_host +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cb63949 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x6cbbfc54 __arch_copy_to_user +EXPORT_SYMBOL vmlinux 0x6cc0b531 rproc_of_parse_firmware +EXPORT_SYMBOL vmlinux 0x6ccc1437 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x6cf0d67d qe_get_num_of_snums +EXPORT_SYMBOL vmlinux 0x6d06dc84 xen_free_unpopulated_pages +EXPORT_SYMBOL vmlinux 0x6d116375 folio_end_writeback +EXPORT_SYMBOL vmlinux 0x6d13e48e framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x6d16c104 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2b824f of_get_next_child +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3415bd dev_set_mtu +EXPORT_SYMBOL vmlinux 0x6d48b19c sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x6d4da611 is_bad_inode +EXPORT_SYMBOL vmlinux 0x6d596083 pci_get_slot +EXPORT_SYMBOL vmlinux 0x6d5f5b91 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x6d73c95f logic_outw +EXPORT_SYMBOL vmlinux 0x6d77df0b mr_dump +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d7e94a8 seq_open +EXPORT_SYMBOL vmlinux 0x6d7e9575 of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x6d7f96b0 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x6d9ccdab phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x6d9d2d7a skb_trim +EXPORT_SYMBOL vmlinux 0x6da467cb pfn_is_map_memory +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dc35b25 radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6dd131df drop_nlink +EXPORT_SYMBOL vmlinux 0x6dd17e7b acpi_get_table_header +EXPORT_SYMBOL vmlinux 0x6dd60fbf param_set_byte +EXPORT_SYMBOL vmlinux 0x6debf08d xen_free_ballooned_pages +EXPORT_SYMBOL vmlinux 0x6dec9ba7 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df41eb3 sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x6e0d457c devm_release_resource +EXPORT_SYMBOL vmlinux 0x6e223f14 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x6e4295f1 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x6e5b8651 xz_dec_run +EXPORT_SYMBOL vmlinux 0x6e6e5d02 iterate_fd +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e811678 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x6e8c7e58 jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x6e93d89d unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6ebedb53 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x6ec3dffa folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x6ec79474 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x6ed0c130 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x6ee9b199 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x6efbd792 block_write_end +EXPORT_SYMBOL vmlinux 0x6f229fe6 migrate_vma_finalize +EXPORT_SYMBOL vmlinux 0x6f22dbe5 seq_vprintf +EXPORT_SYMBOL vmlinux 0x6f2f1db8 eth_header_parse +EXPORT_SYMBOL vmlinux 0x6f41a428 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x6f45513f dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6f45bfda mii_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x6f4a59e4 sort_r +EXPORT_SYMBOL vmlinux 0x6f5ab52f acpi_get_local_address +EXPORT_SYMBOL vmlinux 0x6f69aec7 devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f915a45 dqstats +EXPORT_SYMBOL vmlinux 0x6fa646a1 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x6fabe6f4 tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x6fba8598 blkdev_put +EXPORT_SYMBOL vmlinux 0x6fbc6a00 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x6fc48021 dynamic_cond_resched +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd0cce7 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fdb296f vma_set_file +EXPORT_SYMBOL vmlinux 0x6ff3a485 dynamic_might_resched +EXPORT_SYMBOL vmlinux 0x6ffdf944 inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x6fff261f __arch_clear_user +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x70098c85 seq_lseek +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen +EXPORT_SYMBOL vmlinux 0x70595c75 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x705ef5a9 seq_open_private +EXPORT_SYMBOL vmlinux 0x7063c301 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x706aa773 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0x709619c1 page_pool_release_page +EXPORT_SYMBOL vmlinux 0x70ad75fb radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x70be0753 phy_print_status +EXPORT_SYMBOL vmlinux 0x70c849fb set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x70d1a18e qman_release_pool +EXPORT_SYMBOL vmlinux 0x70e0217d request_firmware +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712d7736 of_clk_get +EXPORT_SYMBOL vmlinux 0x7141b88a logic_insb +EXPORT_SYMBOL vmlinux 0x7145582d request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7199dfe1 cdev_alloc +EXPORT_SYMBOL vmlinux 0x71a1edc7 thaw_bdev +EXPORT_SYMBOL vmlinux 0x71a48d47 of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a73bd0 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x71a98bf3 vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x71c5399e ip6_output +EXPORT_SYMBOL vmlinux 0x71cfa7aa __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x71dfc095 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x71ece5c8 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x71fb5072 __nla_reserve +EXPORT_SYMBOL vmlinux 0x7205b66d pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x720ba67c pps_unregister_source +EXPORT_SYMBOL vmlinux 0x7215f4c5 __put_devmap_managed_page_refs +EXPORT_SYMBOL vmlinux 0x726bc3c7 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x726cba24 fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x727de424 mem_section +EXPORT_SYMBOL vmlinux 0x7280c117 to_nd_dax +EXPORT_SYMBOL vmlinux 0x729624bb page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x72a50966 ucc_fast_disable +EXPORT_SYMBOL vmlinux 0x72a95be3 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x72af951e nf_log_unset +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72bc3749 mount_nodev +EXPORT_SYMBOL vmlinux 0x72bc39a8 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x72db2583 fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x72db6aad dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x72e395a8 file_ns_capable +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f14ff7 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x72f398d6 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x72fea210 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x730baac9 get_user_pages +EXPORT_SYMBOL vmlinux 0x730f2407 md_finish_reshape +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 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x7334c9a4 xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x7346609a read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x7352015b __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x735e6a81 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x735ede46 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0x736fe1c1 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x7379bcbe simple_pin_fs +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x7383ab71 reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x73889b21 tty_port_init +EXPORT_SYMBOL vmlinux 0x73998efa cpm_muram_free_addr +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73d57186 seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x73f2f1e1 skb_tx_error +EXPORT_SYMBOL vmlinux 0x7409389f __nd_driver_register +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x7412ed5b kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x741ba8d3 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x74390752 tcf_block_put +EXPORT_SYMBOL vmlinux 0x743a49e1 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0x743c776a seq_escape_mem +EXPORT_SYMBOL vmlinux 0x743f4126 keygen_port_hashing_init +EXPORT_SYMBOL vmlinux 0x74449b3d input_set_abs_params +EXPORT_SYMBOL vmlinux 0x7453a24d thread_group_exited +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x745bf0c9 lookup_one +EXPORT_SYMBOL vmlinux 0x746a3813 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x74754435 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x74a265a2 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x74a454ae tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x74b47895 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74dfb6b6 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x74e3d200 pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x752adeaa register_fib_notifier +EXPORT_SYMBOL vmlinux 0x752d5e7b __udp_disconnect +EXPORT_SYMBOL vmlinux 0x752f2af7 __bforget +EXPORT_SYMBOL vmlinux 0x753afa90 consume_skb +EXPORT_SYMBOL vmlinux 0x753e39fe of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0x755f4ba3 blake2s_compress_generic +EXPORT_SYMBOL vmlinux 0x7564bfe5 lease_modify +EXPORT_SYMBOL vmlinux 0x758309b6 dev_get_iflink +EXPORT_SYMBOL vmlinux 0x75871f5e acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x7589a13c security_sk_clone +EXPORT_SYMBOL vmlinux 0x759fd2f0 dump_skip +EXPORT_SYMBOL vmlinux 0x75ab406b inode_update_time +EXPORT_SYMBOL vmlinux 0x75abdb3c load_nls_default +EXPORT_SYMBOL vmlinux 0x75b4a8b1 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75c625d1 tegra_ivc_notified +EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x75d4239f vfs_fsync +EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x75e3f43f __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x760680d1 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired +EXPORT_SYMBOL vmlinux 0x76334dbf tcp_shutdown +EXPORT_SYMBOL vmlinux 0x76346f95 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x763e0546 acpi_device_hid +EXPORT_SYMBOL vmlinux 0x7645dd2e vme_slave_request +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764dbff0 of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x766128e9 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x76627056 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x769fc958 flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0x76a04b52 unlock_page +EXPORT_SYMBOL vmlinux 0x76aa6f81 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x76b6697d poll_freewait +EXPORT_SYMBOL vmlinux 0x76c1cf9d neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x76cce2cb set_cached_acl +EXPORT_SYMBOL vmlinux 0x76cdd957 d_invalidate +EXPORT_SYMBOL vmlinux 0x76d315db register_netdev +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76e99e10 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x76ec4ccc flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x76efb150 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x76efd2a4 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x7711ce60 get_tree_single +EXPORT_SYMBOL vmlinux 0x77175dcc devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x77212bff pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource +EXPORT_SYMBOL vmlinux 0x7739f399 sock_from_file +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77447ffc _dev_notice +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x77462fee may_umount +EXPORT_SYMBOL vmlinux 0x77483dc4 __find_get_block +EXPORT_SYMBOL vmlinux 0x774cc4d7 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x7777e78d proc_remove +EXPORT_SYMBOL vmlinux 0x777a47ff override_creds +EXPORT_SYMBOL vmlinux 0x77806940 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x77809462 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77ea5697 serio_open +EXPORT_SYMBOL vmlinux 0x77eb32e4 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x780a1a95 processors +EXPORT_SYMBOL vmlinux 0x7810b0e3 dev_addr_del +EXPORT_SYMBOL vmlinux 0x78176983 udp_seq_stop +EXPORT_SYMBOL vmlinux 0x781823e7 param_set_copystring +EXPORT_SYMBOL vmlinux 0x78190a80 fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x781f417e inet_stream_ops +EXPORT_SYMBOL vmlinux 0x783876d1 udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x78410ccd __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x784277d3 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x785ee869 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788a8a32 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x78929831 param_ops_long +EXPORT_SYMBOL vmlinux 0x789e4af5 proc_symlink +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78ad2f58 vmap +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78ba5c63 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e17428 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x78f543da pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x790008e9 vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x79002bf0 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x790f8615 iproc_msi_init +EXPORT_SYMBOL vmlinux 0x7910824b pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x791ab4a2 vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x7925ffc1 sock_release +EXPORT_SYMBOL vmlinux 0x792d3be6 bdi_alloc +EXPORT_SYMBOL vmlinux 0x793d7c85 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x795ad5f4 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x795f9383 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x79714170 nobh_writepage +EXPORT_SYMBOL vmlinux 0x79787d15 generic_file_fsync +EXPORT_SYMBOL vmlinux 0x797ecb44 __fs_parse +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x79a33f85 vme_get_size +EXPORT_SYMBOL vmlinux 0x79b7cbaf fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0x79be9eaa sock_set_mark +EXPORT_SYMBOL vmlinux 0x79fed463 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a2af7b4 cpu_number +EXPORT_SYMBOL vmlinux 0x7a2d2090 devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a4022b1 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x7a51c748 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x7a535647 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a5fd970 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x7a65ec91 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0x7a8291cd get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7a968137 ucc_slow_restart_tx +EXPORT_SYMBOL vmlinux 0x7a9ade21 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab0f58f free_task +EXPORT_SYMBOL vmlinux 0x7ab693f1 pci_save_state +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac5aa92 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x7ac5bb9a sync_filesystem +EXPORT_SYMBOL vmlinux 0x7ac82b52 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad6f352 __scm_destroy +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7ae5d317 qe_get_snum +EXPORT_SYMBOL vmlinux 0x7b011af0 md_error +EXPORT_SYMBOL vmlinux 0x7b09fb95 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x7b0ae4e2 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0x7b0fdf7a xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x7b1588ee n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x7b1ac35d security_path_rename +EXPORT_SYMBOL vmlinux 0x7b1b4e9b __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x7b2ef27d vm_insert_page +EXPORT_SYMBOL vmlinux 0x7b3697e5 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x7b4da6ff __init_rwsem +EXPORT_SYMBOL vmlinux 0x7b55a56a __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b71f8e2 kmem_cache_size +EXPORT_SYMBOL vmlinux 0x7b82b9a1 idr_replace +EXPORT_SYMBOL vmlinux 0x7b8d26d1 _dev_info +EXPORT_SYMBOL vmlinux 0x7ba5a3b4 tegra_powergate_power_off +EXPORT_SYMBOL vmlinux 0x7bb50b88 acpi_write +EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids +EXPORT_SYMBOL vmlinux 0x7bbf10d3 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x7bc0763d jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0x7bc984ae elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x7bce5c86 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x7bd3c60b bio_add_page +EXPORT_SYMBOL vmlinux 0x7beefa14 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x7bf7ce87 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x7c05d08b sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x7c151f8d acpi_dev_get_first_match_dev +EXPORT_SYMBOL vmlinux 0x7c1589ba rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c1e4fe5 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x7c3d6548 ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x7c459513 nla_append +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c4889b2 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x7c65606f blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x7c770ee7 filemap_release_folio +EXPORT_SYMBOL vmlinux 0x7c8707db sock_no_getname +EXPORT_SYMBOL vmlinux 0x7c9c9831 default_llseek +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7cbba1e7 dcache_readdir +EXPORT_SYMBOL vmlinux 0x7cc98289 phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0x7cd21e26 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x7cd2481e configfs_register_group +EXPORT_SYMBOL vmlinux 0x7cd8374b tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce58981 kvrealloc +EXPORT_SYMBOL vmlinux 0x7ce818ff inet_del_offload +EXPORT_SYMBOL vmlinux 0x7cf1a077 __put_user_ns +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 0x7d0e0e67 scsi_device_get +EXPORT_SYMBOL vmlinux 0x7d12d76d acpi_get_parent +EXPORT_SYMBOL vmlinux 0x7d157751 __do_once_done +EXPORT_SYMBOL vmlinux 0x7d2bad44 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x7d319f4f inet_addr_type +EXPORT_SYMBOL vmlinux 0x7d36b149 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x7d38a4b8 filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d5e1008 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x7d6e29e1 key_validate +EXPORT_SYMBOL vmlinux 0x7d74d522 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7da4e3af fman_bind +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7db09873 cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x7dbb0d34 seq_printf +EXPORT_SYMBOL vmlinux 0x7dbb6b13 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x7dc3b004 dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x7dc4d9a8 genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dcf4135 __xa_insert +EXPORT_SYMBOL vmlinux 0x7dd4d0f3 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x7dda7909 mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e09923f call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x7e0e8aa8 xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x7e113706 nf_log_packet +EXPORT_SYMBOL vmlinux 0x7e165f10 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x7e1bcaaf iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e58828a fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x7e58f5d8 tcp_time_wait +EXPORT_SYMBOL vmlinux 0x7e7a6cea param_array_ops +EXPORT_SYMBOL vmlinux 0x7e8b830c kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x7e8c8684 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x7ee48468 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x7eecdc53 cdev_add +EXPORT_SYMBOL vmlinux 0x7ef1752c blk_queue_split +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f043df7 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x7f096988 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x7f0b39a7 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2f1ca2 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x7f52071a net_dim +EXPORT_SYMBOL vmlinux 0x7f54e335 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f6aac55 scsi_add_device +EXPORT_SYMBOL vmlinux 0x7f6e7a5f jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x7f740aa8 nla_reserve +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f7d8a64 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7fb6db6f netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x7fbbe5cd ptp_clock_index +EXPORT_SYMBOL vmlinux 0x7fc30529 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0x7fc3acad lock_rename +EXPORT_SYMBOL vmlinux 0x7fce778e tegra_ivc_total_queue_size +EXPORT_SYMBOL vmlinux 0x7fd0dc23 register_netdevice +EXPORT_SYMBOL vmlinux 0x7fdc51ac mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x7fdd6f0f xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x7fe105d7 bman_ip_rev +EXPORT_SYMBOL vmlinux 0x7fe16451 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7ffa0fcd napi_complete_done +EXPORT_SYMBOL vmlinux 0x802a73fd rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x8039a4e2 d_alloc +EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x8040d479 serio_close +EXPORT_SYMBOL vmlinux 0x804b7028 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x80519fcc ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x806581a6 config_group_find_item +EXPORT_SYMBOL vmlinux 0x80662e13 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x80787f19 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x8084d550 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x808bfddc scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x8092dde9 jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x80949aa8 udp_gro_receive +EXPORT_SYMBOL vmlinux 0x809712ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x80a36cd9 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x80a68462 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x80a717a8 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x80aa35f3 sock_init_data +EXPORT_SYMBOL vmlinux 0x80aa7a23 locks_delete_block +EXPORT_SYMBOL vmlinux 0x80ac7394 __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x80bae3f0 tcp_filter +EXPORT_SYMBOL vmlinux 0x80bf857a ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x80c095a8 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x80c3d4fa mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x80c45c0f __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x80c6bfab nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x80c79722 _copy_to_iter +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d4847d ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80e5977e ppp_channel_index +EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x80ec0d50 qman_init_fq +EXPORT_SYMBOL vmlinux 0x80f567cd padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x80f85e0e generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x80fff807 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x8101b119 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x810bef7e sg_free_append_table +EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x8115d86d unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x81188c30 match_string +EXPORT_SYMBOL vmlinux 0x8118f903 uart_register_driver +EXPORT_SYMBOL vmlinux 0x81427b7d I_BDEV +EXPORT_SYMBOL vmlinux 0x81456814 always_delete_dentry +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x8155f39c dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x81582568 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x8159eb46 notify_change +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816bde11 xp_can_alloc +EXPORT_SYMBOL vmlinux 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x818790e6 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x818edf97 cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x819364bd phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x81a0bbe3 param_get_bool +EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload +EXPORT_SYMBOL vmlinux 0x81b20e8b ucc_fast_transmit_on_demand +EXPORT_SYMBOL vmlinux 0x81c53e81 vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x8212f8dc sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x822b0cc4 inode_permission +EXPORT_SYMBOL vmlinux 0x822daa49 pci_release_regions +EXPORT_SYMBOL vmlinux 0x82311124 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0x823d3505 cmxgcr_lock +EXPORT_SYMBOL vmlinux 0x8244755d dev_remove_offload +EXPORT_SYMBOL vmlinux 0x8255ebe9 d_delete +EXPORT_SYMBOL vmlinux 0x8263a6d9 proc_douintvec +EXPORT_SYMBOL vmlinux 0x8267dc9f sk_stream_error +EXPORT_SYMBOL vmlinux 0x826ffbbf register_shrinker +EXPORT_SYMBOL vmlinux 0x827f3be5 seq_read +EXPORT_SYMBOL vmlinux 0x828d2f5f __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x8296d93c pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x829a6860 udp_seq_start +EXPORT_SYMBOL vmlinux 0x829caf3d param_set_bool +EXPORT_SYMBOL vmlinux 0x82a01c9b xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x82aad0dd mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x82cdeeeb netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x82e6ce94 pci_iounmap +EXPORT_SYMBOL vmlinux 0x82e82159 ps2_command +EXPORT_SYMBOL vmlinux 0x82f98e7f mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x82fa2fea genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0x83071730 bdi_unregister +EXPORT_SYMBOL vmlinux 0x831832fd cont_write_begin +EXPORT_SYMBOL vmlinux 0x8326381e param_ops_bint +EXPORT_SYMBOL vmlinux 0x833aeae7 is_acpi_data_node +EXPORT_SYMBOL vmlinux 0x8357de5c netif_device_detach +EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x83657c40 tty_devnum +EXPORT_SYMBOL vmlinux 0x8369a458 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x836c3bfb netdev_change_features +EXPORT_SYMBOL vmlinux 0x837b7b09 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x8380df39 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x83888cfb twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x838de657 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x83ed11a1 tcp_conn_request +EXPORT_SYMBOL vmlinux 0x83f4e26a pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x840342c6 sgl_free +EXPORT_SYMBOL vmlinux 0x84165817 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x8423bd43 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x8423d5cb kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x8427cc7b _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x84314128 release_pages +EXPORT_SYMBOL vmlinux 0x843f8d85 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x84433b15 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x8455e3a7 dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x845c42bd tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x846dd634 filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0x847126c2 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x847262ad tcf_register_action +EXPORT_SYMBOL vmlinux 0x84818f57 tegra_powergate_power_on +EXPORT_SYMBOL vmlinux 0x84823cf3 nla_strscpy +EXPORT_SYMBOL vmlinux 0x8497acf7 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x849f69be cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x84bf9a5c pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x84c03e9a rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x84c1c552 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x84c4040c security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x84dd3bef skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x84ecaf17 param_ops_short +EXPORT_SYMBOL vmlinux 0x84efb91c block_read_full_folio +EXPORT_SYMBOL vmlinux 0x850f7fc5 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0x8516899e balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x8518a4a6 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x851b9121 xudma_dev_get_psil_base +EXPORT_SYMBOL vmlinux 0x853dd332 dev_set_threaded +EXPORT_SYMBOL vmlinux 0x85410ea0 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x854fd520 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x854fec83 tegra_sku_info +EXPORT_SYMBOL vmlinux 0x8550ffab key_unlink +EXPORT_SYMBOL vmlinux 0x856615b6 key_revoke +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857c89e0 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x857dc2f5 sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0x8591d7d5 ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x859255de locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0x8592ea5e pci_read_config_word +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region +EXPORT_SYMBOL vmlinux 0x85d7cc4f seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x85df5e4a security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn +EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x863a276a color_table +EXPORT_SYMBOL vmlinux 0x86494f64 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x865ab120 rpmh_write_async +EXPORT_SYMBOL vmlinux 0x865ff948 sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x866a62b2 gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x866b739a block_write_full_page +EXPORT_SYMBOL vmlinux 0x867f27cb unix_attach_fds +EXPORT_SYMBOL vmlinux 0x86855acd netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a1374b filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x86ab2d25 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x86ad69ec devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x86be5c15 param_set_ullong +EXPORT_SYMBOL vmlinux 0x86bed4b0 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x86cd5d62 inet_bind +EXPORT_SYMBOL vmlinux 0x86d02276 devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x86e9575b phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8720eb48 single_release +EXPORT_SYMBOL vmlinux 0x8727af7e of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0x872a9719 pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed +EXPORT_SYMBOL vmlinux 0x87692b98 phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x876e1db4 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x87761528 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x87794a8f seq_path +EXPORT_SYMBOL vmlinux 0x878ba7d0 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x8790c56e pskb_expand_head +EXPORT_SYMBOL vmlinux 0x87a21cb3 __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x87a5c816 pci_disable_device +EXPORT_SYMBOL vmlinux 0x87a8878f skb_copy +EXPORT_SYMBOL vmlinux 0x87b8798d sg_next +EXPORT_SYMBOL vmlinux 0x87dc3e7c inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit +EXPORT_SYMBOL vmlinux 0x881772b2 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x881bad5e phy_mipi_dphy_config_validate +EXPORT_SYMBOL vmlinux 0x881c4413 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x8832c62d param_set_int +EXPORT_SYMBOL vmlinux 0x885a9549 devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x885c216a fs_bio_set +EXPORT_SYMBOL vmlinux 0x88607c13 elv_rb_add +EXPORT_SYMBOL vmlinux 0x88715a4f input_register_handler +EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x8888f1fe xxh32 +EXPORT_SYMBOL vmlinux 0x88912485 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x889b1370 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x889b9e78 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x88b37b77 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size +EXPORT_SYMBOL vmlinux 0x88e02a48 kill_pgrp +EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free +EXPORT_SYMBOL vmlinux 0x89148e65 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x89257316 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x8925ae02 param_get_ullong +EXPORT_SYMBOL vmlinux 0x8936a41e flush_dcache_page +EXPORT_SYMBOL vmlinux 0x8941f74e tcp_connect +EXPORT_SYMBOL vmlinux 0x89434b4b radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x8943e6a8 cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0x8946ea72 fpsimd_context_busy +EXPORT_SYMBOL vmlinux 0x894fb0e1 generic_file_open +EXPORT_SYMBOL vmlinux 0x8958881c sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x896c4cd4 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x89732086 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x89822e36 inet_protos +EXPORT_SYMBOL vmlinux 0x898575b1 add_watch_to_object +EXPORT_SYMBOL vmlinux 0x89940875 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x89ad78a3 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x89b33043 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x89b7a5ec devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x89b81009 skb_ext_add +EXPORT_SYMBOL vmlinux 0x89bd0f7e mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x89d7eb2b sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x89dbff85 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x89e693b4 unlock_buffer +EXPORT_SYMBOL vmlinux 0x89e865c2 __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x89fa85dd vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x8a0943f8 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x8a09f0af devm_ioremap_np +EXPORT_SYMBOL vmlinux 0x8a154d2e netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x8a18c9eb dcb_setapp +EXPORT_SYMBOL vmlinux 0x8a1b78bc dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x8a34c824 sock_efree +EXPORT_SYMBOL vmlinux 0x8a47043d LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a61b477 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x8a68f289 sk_net_capable +EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags +EXPORT_SYMBOL vmlinux 0x8a743f04 phy_detach +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a936dac devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aaa7d0d ll_rw_block +EXPORT_SYMBOL vmlinux 0x8ac05958 phy_write_mmd +EXPORT_SYMBOL vmlinux 0x8ac136ae imx_sc_misc_get_control +EXPORT_SYMBOL vmlinux 0x8ac3334b net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x8ac743de sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x8ae4e93a xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x8b055674 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x8b18d69c param_set_short +EXPORT_SYMBOL vmlinux 0x8b195cdf tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x8b2e32a8 sock_gettstamp +EXPORT_SYMBOL vmlinux 0x8b2f8255 __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x8b2ffd83 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x8b30eb3b __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x8b4148a3 generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x8b4ec559 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x8b50e32d remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b7b7e3f skb_seq_read +EXPORT_SYMBOL vmlinux 0x8b8059bd in_group_p +EXPORT_SYMBOL vmlinux 0x8b910be2 errseq_sample +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bbdb6b7 zap_page_range +EXPORT_SYMBOL vmlinux 0x8bcd0ce7 make_bad_inode +EXPORT_SYMBOL vmlinux 0x8be189ab ucc_slow_disable +EXPORT_SYMBOL vmlinux 0x8bec06ee alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x8bf56428 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x8c032e20 phy_loopback +EXPORT_SYMBOL vmlinux 0x8c1a78c3 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x8c239a5c ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x8c26d495 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x8c30bf67 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x8c40fee4 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x8c63ad6e security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x8c683fcd posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8c88cd03 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x8c9e338f acpi_bios_error +EXPORT_SYMBOL vmlinux 0x8ca7bfeb dev_activate +EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x8cb3c470 bpf_link_put +EXPORT_SYMBOL vmlinux 0x8cb44860 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x8cbb94f9 flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x8cbee1f6 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x8cc053fe fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x8cc53d20 __par_io_config_pin +EXPORT_SYMBOL vmlinux 0x8cd52ee7 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8ce328a3 take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x8cf1f384 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0x8cf33b8d pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x8cfc917c skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x8d01b0b3 __invalidate_device +EXPORT_SYMBOL vmlinux 0x8d0b12a6 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x8d29305e md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x8d2db26c of_parse_phandle_with_args_map +EXPORT_SYMBOL vmlinux 0x8d4112df qcom_scm_mem_protect_video_var +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d9441db __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0x8d9ca0e6 dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x8da6585d __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x8daedb79 cpumask_any_but +EXPORT_SYMBOL vmlinux 0x8dbc3529 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x8dc07320 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8de9ee24 mii_link_ok +EXPORT_SYMBOL vmlinux 0x8decfc4e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x8dedb8cc jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x8dee722d _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x8df4afd9 qe_put_snum +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null +EXPORT_SYMBOL vmlinux 0x8dfa9d2a scsi_ioctl +EXPORT_SYMBOL vmlinux 0x8e00d0da iov_iter_advance +EXPORT_SYMBOL vmlinux 0x8e155979 vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x8e17b3ae idr_destroy +EXPORT_SYMBOL vmlinux 0x8e21c9a1 dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x8e27bf4d single_open_size +EXPORT_SYMBOL vmlinux 0x8e3e0f7d fault_in_readable +EXPORT_SYMBOL vmlinux 0x8e4243ba netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x8e4c60a3 cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x8e4f2915 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0x8e6c5930 tcf_block_get +EXPORT_SYMBOL vmlinux 0x8e6e3ff6 tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x8e74e889 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x8e8ccb89 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x8e8cd322 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x8ea7e315 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x8eac073a blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x8ebd5627 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x8ed43b32 vm_mmap +EXPORT_SYMBOL vmlinux 0x8ed65d37 dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x8ee6d468 complete_request_key +EXPORT_SYMBOL vmlinux 0x8eeca78e sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x8ef36923 d_exact_alias +EXPORT_SYMBOL vmlinux 0x8f01afd6 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x8f087fed dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x8f10dc24 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x8f311253 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x8f396282 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x8f4d39a4 napi_get_frags +EXPORT_SYMBOL vmlinux 0x8f4e0f63 devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x8f609d53 __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x8f86af72 mntget +EXPORT_SYMBOL vmlinux 0x8f996a30 ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x8fa25c24 xa_find +EXPORT_SYMBOL vmlinux 0x8fa6b229 igrab +EXPORT_SYMBOL vmlinux 0x8fc31f85 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x8fc9ea11 fman_port_cfg_buf_prefix_content +EXPORT_SYMBOL vmlinux 0x8fd180e7 kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x8fd3103b tegra_dfll_unregister +EXPORT_SYMBOL vmlinux 0x8fd45592 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x8fdb0752 abort_creds +EXPORT_SYMBOL vmlinux 0x8fe0df99 t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x8ff56f3e unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x900935c7 rpmh_write_batch +EXPORT_SYMBOL vmlinux 0x90158c58 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x9020f1db cdev_del +EXPORT_SYMBOL vmlinux 0x902541c0 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x902b1a4c dst_discard_out +EXPORT_SYMBOL vmlinux 0x902d8722 vme_slave_get +EXPORT_SYMBOL vmlinux 0x902f5199 cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x9034a696 mempool_destroy +EXPORT_SYMBOL vmlinux 0x903ad4a4 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x905695ab sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x90576ec4 vmemdup_user +EXPORT_SYMBOL vmlinux 0x907603af request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x907ea00e set_security_override +EXPORT_SYMBOL vmlinux 0x90a4c103 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x90a94ae5 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x90d1a515 bio_init +EXPORT_SYMBOL vmlinux 0x90e273e2 cred_fscmp +EXPORT_SYMBOL vmlinux 0x90f64488 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x90fc7cbb of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x90ffdc8c tcp_ioctl +EXPORT_SYMBOL vmlinux 0x9102d484 tcp_seq_start +EXPORT_SYMBOL vmlinux 0x9114b616 __xa_alloc +EXPORT_SYMBOL vmlinux 0x91576a37 param_ops_byte +EXPORT_SYMBOL vmlinux 0x915958fb dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue +EXPORT_SYMBOL vmlinux 0x916a0d75 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x916df586 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x91729450 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x917a7d8e ___pskb_trim +EXPORT_SYMBOL vmlinux 0x917e57ed sk_common_release +EXPORT_SYMBOL vmlinux 0x91926074 input_event +EXPORT_SYMBOL vmlinux 0x91988166 __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 +EXPORT_SYMBOL vmlinux 0x91a1a122 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x91b94cd9 mount_subtree +EXPORT_SYMBOL vmlinux 0x91bc0dad jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x91bdb8d4 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91c903c7 netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x91d5e543 mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x91da9f76 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x91dae60b mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x91f18f2b skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x91f319ea skb_dequeue +EXPORT_SYMBOL vmlinux 0x91f44510 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x91f4d6a1 security_locked_down +EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x91fc3a33 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x91fc8b49 input_unregister_device +EXPORT_SYMBOL vmlinux 0x920e11b4 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x92385dc3 inode_to_bdi +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x924a7094 alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x924ef2e6 d_instantiate +EXPORT_SYMBOL vmlinux 0x92540fbf finish_wait +EXPORT_SYMBOL vmlinux 0x9258c776 hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x925db09a xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x92774cf8 __kfence_pool +EXPORT_SYMBOL vmlinux 0x92907ccc qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92997ed8 _printk +EXPORT_SYMBOL vmlinux 0x92b99a33 acpi_put_table +EXPORT_SYMBOL vmlinux 0x92b9b180 slash_name +EXPORT_SYMBOL vmlinux 0x92bf3871 iov_iter_npages +EXPORT_SYMBOL vmlinux 0x92cb7205 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x92cfc16a iput +EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq +EXPORT_SYMBOL vmlinux 0x92e683f5 down_timeout +EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x92f17338 set_page_writeback +EXPORT_SYMBOL vmlinux 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL vmlinux 0x93022ba6 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93177657 da903x_query_status +EXPORT_SYMBOL vmlinux 0x93177bfd d_genocide +EXPORT_SYMBOL vmlinux 0x931ea07d eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x9333325c bio_uninit +EXPORT_SYMBOL vmlinux 0x93368be7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0x9367fa2c mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x936de5ea ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93984001 rtc_add_group +EXPORT_SYMBOL vmlinux 0x93a436b3 tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b1dfde dquot_operations +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93cbcc41 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x93d6dd8c complete_all +EXPORT_SYMBOL vmlinux 0x93dc1391 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0x93e8a98f mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x93eb74ea clk_get +EXPORT_SYMBOL vmlinux 0x93fe3d5f pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x940c4a4b mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn +EXPORT_SYMBOL vmlinux 0x94427686 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages +EXPORT_SYMBOL vmlinux 0x94468c89 devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked +EXPORT_SYMBOL vmlinux 0x94508c3f clear_inode +EXPORT_SYMBOL vmlinux 0x946a8a9c md_write_inc +EXPORT_SYMBOL vmlinux 0x946dc4ee phy_resume +EXPORT_SYMBOL vmlinux 0x94730ece fget_raw +EXPORT_SYMBOL vmlinux 0x947b3500 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x947d8e0a scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x9487d3e1 ns_capable +EXPORT_SYMBOL vmlinux 0x949560c5 __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94964f11 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x949d87f2 genl_notify +EXPORT_SYMBOL vmlinux 0x94a24b63 __phy_resume +EXPORT_SYMBOL vmlinux 0x94bb7ec3 gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x94cee8ff inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0x94da30d5 __d_drop +EXPORT_SYMBOL vmlinux 0x94e50ad4 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x94f0aa46 netdev_emerg +EXPORT_SYMBOL vmlinux 0x94f367b1 xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x94fc8d93 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x94fd58b5 vme_lm_request +EXPORT_SYMBOL vmlinux 0x94feca84 finalize_exec +EXPORT_SYMBOL vmlinux 0x94ff81a1 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x950f6af2 pcie_set_mps +EXPORT_SYMBOL vmlinux 0x9511a024 init_task +EXPORT_SYMBOL vmlinux 0x953d2426 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x953f414a rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x954779a4 folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc +EXPORT_SYMBOL vmlinux 0x954f099c idr_preload +EXPORT_SYMBOL vmlinux 0x95531808 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x95549af0 reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x9562de9f phy_device_remove +EXPORT_SYMBOL vmlinux 0x958091c1 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x958c2d8c device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x959c6926 devm_register_netdev +EXPORT_SYMBOL vmlinux 0x95a67b07 udp_table +EXPORT_SYMBOL vmlinux 0x95b143da netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x95c41cea pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x95eea2de vm_insert_pages +EXPORT_SYMBOL vmlinux 0x95f840c9 phy_read_mmd +EXPORT_SYMBOL vmlinux 0x961cd749 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x963f737b netlink_capable +EXPORT_SYMBOL vmlinux 0x96848186 scnprintf +EXPORT_SYMBOL vmlinux 0x9688de8b memstart_addr +EXPORT_SYMBOL vmlinux 0x96949d01 d_alloc_name +EXPORT_SYMBOL vmlinux 0x96959f2c mdio_device_reset +EXPORT_SYMBOL vmlinux 0x9695e0f0 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x96ac9ebe to_nd_pfn +EXPORT_SYMBOL vmlinux 0x96adedaa bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x96af7e91 dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96df56cb fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0x96e5d30f gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x96eb65b2 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x9720b750 param_get_long +EXPORT_SYMBOL vmlinux 0x9722ff7a set_page_dirty +EXPORT_SYMBOL vmlinux 0x973c0c03 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x9769946f file_open_root +EXPORT_SYMBOL vmlinux 0x97866932 mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x9792de27 flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x97934ecf del_timer_sync +EXPORT_SYMBOL vmlinux 0x97a4b270 sock_wake_async +EXPORT_SYMBOL vmlinux 0x97a57333 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x97ac65fc pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x97c9a934 tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x97e2789a commit_creds +EXPORT_SYMBOL vmlinux 0x97e3cbf3 nd_device_unregister +EXPORT_SYMBOL vmlinux 0x97ed2212 __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x97f722ae freeze_bdev +EXPORT_SYMBOL vmlinux 0x97feab3d param_get_string +EXPORT_SYMBOL vmlinux 0x980d20f8 pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x981bce69 vfs_rename +EXPORT_SYMBOL vmlinux 0x98209739 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982bcde4 __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x982d8a2b jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x983314bc flow_rule_alloc +EXPORT_SYMBOL vmlinux 0x984247ba neigh_update +EXPORT_SYMBOL vmlinux 0x984bd249 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x984f63eb of_phy_find_device +EXPORT_SYMBOL vmlinux 0x9853e7b6 write_cache_pages +EXPORT_SYMBOL vmlinux 0x986b53d1 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0x9870cb82 filemap_alloc_folio +EXPORT_SYMBOL vmlinux 0x98a4f7e5 of_graph_is_present +EXPORT_SYMBOL vmlinux 0x98b012b7 mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x98c01036 netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x98c039dc dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x98c855c5 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98e1773e dump_skip_to +EXPORT_SYMBOL vmlinux 0x98e42279 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x98f9da84 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0x99094fb2 qcom_scm_is_available +EXPORT_SYMBOL vmlinux 0x99271af3 mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x992d407d __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x9931f8c9 qcom_scm_lmh_dcvsh_available +EXPORT_SYMBOL vmlinux 0x9939eba0 backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x994823d1 keyring_clear +EXPORT_SYMBOL vmlinux 0x994cdce8 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x9969291f __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x9975dc22 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x99817866 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x99841579 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x9987632a phy_start_aneg +EXPORT_SYMBOL vmlinux 0x9998331d inode_set_flags +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99c14fd2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x99c26543 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x99cdbe4b copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x99ceb47b of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x99d72906 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99e87af7 devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x99f7371c refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x99f836ad vme_register_driver +EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x9a0136a5 bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x9a0c3a18 vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x9a0ce487 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x9a19ce67 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a22391e radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x9a2a2bdf locks_init_lock +EXPORT_SYMBOL vmlinux 0x9a2da40a sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x9a46f73e misc_register +EXPORT_SYMBOL vmlinux 0x9a54ac2d module_layout +EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x9a80bfca fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x9a869557 nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0x9aa000fb generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x9ab11c17 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x9ab5a1d2 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x9ac83b01 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9ad1897a pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit +EXPORT_SYMBOL vmlinux 0x9af25d84 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x9b0a5e46 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x9b0b76a1 pci_get_subsys +EXPORT_SYMBOL vmlinux 0x9b128a66 qcom_scm_set_remote_state +EXPORT_SYMBOL vmlinux 0x9b131078 dev_uc_add +EXPORT_SYMBOL vmlinux 0x9b207b2f ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b346844 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x9b35c7e7 __check_sticky +EXPORT_SYMBOL vmlinux 0x9b37e69e netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x9b4a1b13 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x9b635820 __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x9b69f29c padata_do_serial +EXPORT_SYMBOL vmlinux 0x9b6c724e xudma_pktdma_tflow_get_irq +EXPORT_SYMBOL vmlinux 0x9b72478f acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x9b757fa6 pps_register_source +EXPORT_SYMBOL vmlinux 0x9b83b0bc d_set_fallthru +EXPORT_SYMBOL vmlinux 0x9bcce198 reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x9bddedd8 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x9be84537 fman_get_pause_cfg +EXPORT_SYMBOL vmlinux 0x9bebbd0b twl6040_power +EXPORT_SYMBOL vmlinux 0x9beeb96e tty_write_room +EXPORT_SYMBOL vmlinux 0x9bf9ebdb km_policy_expired +EXPORT_SYMBOL vmlinux 0x9c122bcf mempool_create_node +EXPORT_SYMBOL vmlinux 0x9c1e5bf5 queued_spin_lock_slowpath +EXPORT_SYMBOL vmlinux 0x9c499a80 posix_lock_file +EXPORT_SYMBOL vmlinux 0x9c4c17c3 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x9c5a2ada ucc_fast_dump_regs +EXPORT_SYMBOL vmlinux 0x9c5c62d1 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x9c5d5b94 crc8 +EXPORT_SYMBOL vmlinux 0x9c77b567 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x9c859ae1 eth_get_headlen +EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x9c9c519a genphy_update_link +EXPORT_SYMBOL vmlinux 0x9ca24c8d of_match_device +EXPORT_SYMBOL vmlinux 0x9ca586d2 device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x9ca62307 dev_lstats_read +EXPORT_SYMBOL vmlinux 0x9ca948a5 of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cb4d71c cros_ec_query_all +EXPORT_SYMBOL vmlinux 0x9cc3339e dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x9ccf7171 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x9cd873eb devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x9cd91791 register_sysctl +EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x9ce977f4 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d0db3bf super_setup_bdi +EXPORT_SYMBOL vmlinux 0x9d11ca94 genlmsg_put +EXPORT_SYMBOL vmlinux 0x9d153a65 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x9d1a5e3a __memcpy +EXPORT_SYMBOL vmlinux 0x9d1f9a87 kthread_bind +EXPORT_SYMBOL vmlinux 0x9d214b52 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x9d26675e zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d3b9dc2 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0x9d447bab devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x9d61e994 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x9d6a1757 d_instantiate_new +EXPORT_SYMBOL vmlinux 0x9d73ddc3 open_with_fake_path +EXPORT_SYMBOL vmlinux 0x9d757eb0 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x9d7ad0c8 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x9d7de432 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x9d820775 io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x9d885742 of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0x9d88d2f5 scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x9d92f3ad __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x9db83252 of_get_parent +EXPORT_SYMBOL vmlinux 0x9dbe670b devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x9df18d82 mii_check_media +EXPORT_SYMBOL vmlinux 0x9df21d0e qman_affine_channel +EXPORT_SYMBOL vmlinux 0x9dfa2939 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x9e09efd1 nf_log_register +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0fa5ae hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL vmlinux 0x9e181dc7 vme_bus_num +EXPORT_SYMBOL vmlinux 0x9e2737f0 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0x9e423be9 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5cbe73 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x9e5e750d node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9eab95 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap +EXPORT_SYMBOL vmlinux 0x9eacf8a5 kstrndup +EXPORT_SYMBOL vmlinux 0x9eb187fa xudma_pktdma_rflow_get_irq +EXPORT_SYMBOL vmlinux 0x9eb503db dev_remove_pack +EXPORT_SYMBOL vmlinux 0x9ec0e639 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x9ec1e77b register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x9ec2fd81 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x9ec3733f textsearch_unregister +EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x9ed7c847 brcmstb_get_family_id +EXPORT_SYMBOL vmlinux 0x9ed978de vme_lm_set +EXPORT_SYMBOL vmlinux 0x9ef5fd88 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x9f15fe05 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0x9f20bac6 of_node_name_eq +EXPORT_SYMBOL vmlinux 0x9f338376 scsi_done +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f49a35b xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x9f4f2aa3 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict +EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x9f5b5948 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x9f76baf4 _raw_write_unlock_irq +EXPORT_SYMBOL vmlinux 0x9f7d7dbb logic_outsw +EXPORT_SYMBOL vmlinux 0x9f8fbb94 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9ef2c2 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x9fa2adce free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fa9613a iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x9fbf2156 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0x9fc5ce5f sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce +EXPORT_SYMBOL vmlinux 0x9ff01b03 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa004db8f sock_create_kern +EXPORT_SYMBOL vmlinux 0xa005a73e tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa00d6bcf gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xa01304a5 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xa01d1194 par_io_of_config +EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa022c739 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xa027f5bd mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0xa02aa74a __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xa033d747 next_arg +EXPORT_SYMBOL vmlinux 0xa0353613 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa046476f jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0xa04c7b46 sunxi_sram_claim +EXPORT_SYMBOL vmlinux 0xa04e33da qcom_scm_lmh_dcvsh +EXPORT_SYMBOL vmlinux 0xa057df8f twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0xa05e645b vfs_get_link +EXPORT_SYMBOL vmlinux 0xa0645e2b sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup +EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or +EXPORT_SYMBOL vmlinux 0xa08ae9f0 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable +EXPORT_SYMBOL vmlinux 0xa09dc4d8 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xa0a27c4c set_posix_acl +EXPORT_SYMBOL vmlinux 0xa0a96c1a kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0xa0ad26d3 dquot_transfer +EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c49f43 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xa0d87339 qdisc_get_rtab +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 0xa0ebd437 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0xa0f5893d unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0xa0f95712 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10e9418 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0xa11911d3 of_mdio_find_device +EXPORT_SYMBOL vmlinux 0xa1199c43 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xa11c357c vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xa14063c2 con_is_bound +EXPORT_SYMBOL vmlinux 0xa160192f register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0xa164d2ee __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xa188643c neigh_parms_release +EXPORT_SYMBOL vmlinux 0xa1cce978 make_kprojid +EXPORT_SYMBOL vmlinux 0xa1d7efef napi_build_skb +EXPORT_SYMBOL vmlinux 0xa1f47fec nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0xa1f65e66 netdev_info +EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0xa20f4e6c __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xa21967f4 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xa2249058 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xa226455d inode_insert5 +EXPORT_SYMBOL vmlinux 0xa22ead45 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xa2326c49 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0xa23dcce7 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xa23e3c8a gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort +EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module +EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0xa2647430 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xa2660e90 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xa2751241 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xa27e5d5a i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0xa282e911 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active +EXPORT_SYMBOL vmlinux 0xa29e12e2 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0xa2aaa326 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0xa2c2ac85 mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0xa2cf3649 qman_fq_fqid +EXPORT_SYMBOL vmlinux 0xa2d4b75e qcom_scm_iommu_set_cp_pool_size +EXPORT_SYMBOL vmlinux 0xa2d4f961 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xa2d7ec8d __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa2eea2cb md_bitmap_free +EXPORT_SYMBOL vmlinux 0xa2f43ab7 tty_vhangup +EXPORT_SYMBOL vmlinux 0xa30bdced deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xa30c0a5d devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0xa3106d17 generic_fadvise +EXPORT_SYMBOL vmlinux 0xa327a2e1 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xa339e6e5 on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0xa33b6b7c dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0xa33f3def try_module_get +EXPORT_SYMBOL vmlinux 0xa340ce51 phy_aneg_done +EXPORT_SYMBOL vmlinux 0xa3522df5 qman_query_fq_np +EXPORT_SYMBOL vmlinux 0xa37143f2 file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xa399f636 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xa3a3f229 cpumask_next_and +EXPORT_SYMBOL vmlinux 0xa3aac592 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xa3baebfd component_match_add_release +EXPORT_SYMBOL vmlinux 0xa3be8342 __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0xa3cefaa0 blake2s_update +EXPORT_SYMBOL vmlinux 0xa3d6f167 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xa3d8109b tcp_init_sock +EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final +EXPORT_SYMBOL vmlinux 0xa40ff01b acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xa4121041 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xa444fc2b of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0xa448c653 qcom_scm_ice_set_key +EXPORT_SYMBOL vmlinux 0xa44f4f32 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xa47a31c8 security_binder_transaction +EXPORT_SYMBOL vmlinux 0xa47b7c94 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0xa484e322 netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0xa495af34 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xa497faff fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0xa4a483fb i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xa4a95413 simple_recursive_removal +EXPORT_SYMBOL vmlinux 0xa4b0fd2d kern_unmount_array +EXPORT_SYMBOL vmlinux 0xa4e4cb3f mpage_read_folio +EXPORT_SYMBOL vmlinux 0xa4e7c827 fs_lookup_param +EXPORT_SYMBOL vmlinux 0xa4fbe439 phy_suspend +EXPORT_SYMBOL vmlinux 0xa4fca045 qcom_scm_ocmem_lock +EXPORT_SYMBOL vmlinux 0xa4fefe1d phy_init_eee +EXPORT_SYMBOL vmlinux 0xa50a3da7 _find_next_bit +EXPORT_SYMBOL vmlinux 0xa51a8b24 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xa51cea9b param_set_charp +EXPORT_SYMBOL vmlinux 0xa52bedf6 xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0xa52e74ad rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0xa5346954 kobject_add +EXPORT_SYMBOL vmlinux 0xa53f0fe1 napi_consume_skb +EXPORT_SYMBOL vmlinux 0xa549ff98 dget_parent +EXPORT_SYMBOL vmlinux 0xa54c8175 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xa54e74be pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5621aea path_is_mountpoint +EXPORT_SYMBOL vmlinux 0xa56bcc88 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xa58af0a6 _raw_read_unlock_irq +EXPORT_SYMBOL vmlinux 0xa591571c scsi_scan_host +EXPORT_SYMBOL vmlinux 0xa5976e4f dev_base_lock +EXPORT_SYMBOL vmlinux 0xa59fc382 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xa5ab1ceb __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xa5adac35 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xa5b9d1b0 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0xa5c07b5f seq_file_path +EXPORT_SYMBOL vmlinux 0xa5ccea67 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa5f7cf37 __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0xa61d15cc of_phy_connect +EXPORT_SYMBOL vmlinux 0xa6257a2f complete +EXPORT_SYMBOL vmlinux 0xa645c07c vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xa648e561 __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0xa64a42c7 xp_free +EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0xa654f1d5 __alloc_pages +EXPORT_SYMBOL vmlinux 0xa65cfe1c mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0xa662238b crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0xa6694037 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6889b0c amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xa6910785 skb_put +EXPORT_SYMBOL vmlinux 0xa6987b56 rproc_da_to_va +EXPORT_SYMBOL vmlinux 0xa6a52ff2 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0xa6abb0d4 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0xa6b54665 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xa6e3698f nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0xa70bc96d qcom_scm_restore_sec_cfg_available +EXPORT_SYMBOL vmlinux 0xa71acc92 fman_port_config +EXPORT_SYMBOL vmlinux 0xa72035f9 xa_get_order +EXPORT_SYMBOL vmlinux 0xa72525b5 dev_set_alias +EXPORT_SYMBOL vmlinux 0xa7258375 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0xa7300254 netdev_update_features +EXPORT_SYMBOL vmlinux 0xa748cf96 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0xa74ea01c init_pseudo +EXPORT_SYMBOL vmlinux 0xa779d224 vfs_iter_write +EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0xa7a0d674 phy_device_free +EXPORT_SYMBOL vmlinux 0xa7a5f7f5 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xa7adf2d0 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0xa7d232ba netif_receive_skb +EXPORT_SYMBOL vmlinux 0xa7d5f92e ida_destroy +EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xa7fcbc33 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xa8110850 mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0xa8181adf proc_dointvec +EXPORT_SYMBOL vmlinux 0xa82a0326 registered_fb +EXPORT_SYMBOL vmlinux 0xa830ac94 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xa838d60d qdisc_hash_add +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 0xa85b54de bdi_put +EXPORT_SYMBOL vmlinux 0xa8694ecd kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xa86ada72 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0xa8714a74 skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0xa87cfaa0 file_update_time +EXPORT_SYMBOL vmlinux 0xa88a15a5 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xa897e3e7 mempool_free +EXPORT_SYMBOL vmlinux 0xa89a1cf1 ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0xa89fbcd3 devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0xa8a02c21 d_find_any_alias +EXPORT_SYMBOL vmlinux 0xa8a8110c kernel_neon_end +EXPORT_SYMBOL vmlinux 0xa8ba8bfd phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0xa8caa845 clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0xa8e37518 acpi_dev_get_next_match_dev +EXPORT_SYMBOL vmlinux 0xa8e6933a qdf2400_e44_present +EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xa9007fbf tty_port_put +EXPORT_SYMBOL vmlinux 0xa906c177 __nla_put_64bit +EXPORT_SYMBOL vmlinux 0xa9083843 vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work +EXPORT_SYMBOL vmlinux 0xa916aa79 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91ea47f input_set_capability +EXPORT_SYMBOL vmlinux 0xa924b4aa __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xa937ddc9 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0xa950e802 xp_dma_unmap +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa9653f92 proto_register +EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value +EXPORT_SYMBOL vmlinux 0xa967db1f of_iomap +EXPORT_SYMBOL vmlinux 0xa9748c05 tty_register_driver +EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap +EXPORT_SYMBOL vmlinux 0xa982c74e bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xa98418f2 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xa98cc452 skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0xa99bc574 vlan_vid_del +EXPORT_SYMBOL vmlinux 0xa9bf1214 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xa9c69616 netdev_err +EXPORT_SYMBOL vmlinux 0xa9ed62d2 tegra_fuse_readl +EXPORT_SYMBOL vmlinux 0xa9f87637 begin_new_exec +EXPORT_SYMBOL vmlinux 0xaa00fdc0 ec_transaction +EXPORT_SYMBOL vmlinux 0xaa054c0f phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0xaa0c318b vscnprintf +EXPORT_SYMBOL vmlinux 0xaa12ef03 ip_fraglist_init +EXPORT_SYMBOL vmlinux 0xaa145048 xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0xaa17be7b xudma_get_device +EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol +EXPORT_SYMBOL vmlinux 0xaa341905 acpi_bios_exception +EXPORT_SYMBOL vmlinux 0xaa42da41 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0xaa44342b lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0xaa50a83e mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0xaa560543 netlink_ack +EXPORT_SYMBOL vmlinux 0xaa5688b0 phy_get_pause +EXPORT_SYMBOL vmlinux 0xaa58d0d0 rproc_del +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa8106bc crc8_populate_msb +EXPORT_SYMBOL vmlinux 0xaa8e5fee devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xaaa09d3e trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic +EXPORT_SYMBOL vmlinux 0xaaa50fb2 qcom_scm_lmh_profile_change +EXPORT_SYMBOL vmlinux 0xaaa86ddd md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xaab0b486 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xaabadae4 tcp_close +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 0xaae38292 crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaaf3d6ff param_ops_ushort +EXPORT_SYMBOL vmlinux 0xaaf4a334 qcom_scm_set_cold_boot_addr +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab04f6ff tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xab094f7d tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0xab1469c2 mdiobus_register_device +EXPORT_SYMBOL vmlinux 0xab18ed13 seq_bprintf +EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init +EXPORT_SYMBOL vmlinux 0xab3b75ea vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0xab5c46da import_single_range +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab6059d4 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xab63baa5 unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xab67a0ac dql_init +EXPORT_SYMBOL vmlinux 0xab6d5b3b hex_to_bin +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab95b8fe acpi_device_set_power +EXPORT_SYMBOL vmlinux 0xab992841 filemap_map_pages +EXPORT_SYMBOL vmlinux 0xabb5168b generic_file_llseek +EXPORT_SYMBOL vmlinux 0xabb88663 pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0xabf6df73 block_commit_write +EXPORT_SYMBOL vmlinux 0xac02ac6c udp_pre_connect +EXPORT_SYMBOL vmlinux 0xac087c91 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0xac15e82f blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1c04a8 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac33673c sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xac3ff243 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xac4af03a tcp_prot +EXPORT_SYMBOL vmlinux 0xac537ac2 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xac596f97 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac6cac62 dev_trans_start +EXPORT_SYMBOL vmlinux 0xac70a7e1 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xac752723 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0xac8597d5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xac86adc2 tcf_em_register +EXPORT_SYMBOL vmlinux 0xac8ea605 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0xac94baea nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0xaca7991c block_dirty_folio +EXPORT_SYMBOL vmlinux 0xacaa4c72 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb010ba of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0xacd36716 crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xacddd806 ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0xace22b26 bh_submit_read +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xacf6be74 skb_expand_head +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad128dc1 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0xad2286ac sock_create +EXPORT_SYMBOL vmlinux 0xad33ae3b of_get_next_parent +EXPORT_SYMBOL vmlinux 0xad357133 __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0xad3ea04c qman_p_irqsource_remove +EXPORT_SYMBOL vmlinux 0xad47c067 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0xad682b8f xudma_rchanrt_write +EXPORT_SYMBOL vmlinux 0xad6ba40e radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0xad73041f autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xad7305a0 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0xad7382df generic_writepages +EXPORT_SYMBOL vmlinux 0xad76f0cb pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0xad96baeb sock_register +EXPORT_SYMBOL vmlinux 0xad9901ae bit_waitqueue +EXPORT_SYMBOL vmlinux 0xada31e57 gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0xadac1293 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final +EXPORT_SYMBOL vmlinux 0xadb35d44 request_key_tag +EXPORT_SYMBOL vmlinux 0xadb49603 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xadbeed61 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0xadc877c3 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0xadcce7e0 sync_file_create +EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed +EXPORT_SYMBOL vmlinux 0xade22122 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xadfdfcef __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xae00c184 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xae01e8f4 flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae05019c tso_build_hdr +EXPORT_SYMBOL vmlinux 0xae2e86c1 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0xae33c403 xudma_navss_psil_unpair +EXPORT_SYMBOL vmlinux 0xae3ac51a pci_iomap +EXPORT_SYMBOL vmlinux 0xae502ccd ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0xae51b5f6 build_skb +EXPORT_SYMBOL vmlinux 0xae54f1d4 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xae5a04bb acpi_evaluate_dsm +EXPORT_SYMBOL vmlinux 0xae6b09eb blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0xae6e0512 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xae87a3b3 send_sig +EXPORT_SYMBOL vmlinux 0xae9aaa84 fasync_helper +EXPORT_SYMBOL vmlinux 0xaea47801 __do_once_slow_done +EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid +EXPORT_SYMBOL vmlinux 0xaeaef2bf pcim_iounmap +EXPORT_SYMBOL vmlinux 0xaeb082ad _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xaebd12f0 acpi_get_name +EXPORT_SYMBOL vmlinux 0xaec8af85 rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0xaeca8967 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xaee87529 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xaefabf0f prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xaf00e670 console_stop +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf52652d of_get_child_by_name +EXPORT_SYMBOL vmlinux 0xaf56600a arm64_use_ng_mappings +EXPORT_SYMBOL vmlinux 0xaf5d4761 __block_write_full_page +EXPORT_SYMBOL vmlinux 0xaf99e6d9 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xafa25af6 read_cache_page +EXPORT_SYMBOL vmlinux 0xafb588c5 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0xafb864c1 refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0xafc08054 dotdot_name +EXPORT_SYMBOL vmlinux 0xafc6c68e zstd_is_error +EXPORT_SYMBOL vmlinux 0xafce1804 param_ops_string +EXPORT_SYMBOL vmlinux 0xafcf1a59 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xafddf85f fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0xafed4c5a tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xaff8654a mmc_free_host +EXPORT_SYMBOL vmlinux 0xb00c9882 phy_device_create +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb0370338 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0xb04a43ad __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb063ad8c pps_lookup_dev +EXPORT_SYMBOL vmlinux 0xb076a0fb pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0xb0811c96 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0xb0824ac9 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0xb084dfb5 __netif_rx +EXPORT_SYMBOL vmlinux 0xb087c071 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xb0887c96 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0xb093e360 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b9ca00 dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0xb0c5e247 lockref_put_return +EXPORT_SYMBOL vmlinux 0xb0c771e6 dm_put_device +EXPORT_SYMBOL vmlinux 0xb0d5ad6a phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb104ad6f mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0xb10ab171 file_modified +EXPORT_SYMBOL vmlinux 0xb10e7df4 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xb1118707 vme_bus_type +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12ac2fa xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12cd0eb blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0xb12d7a91 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xb1342cdb _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0xb14db700 blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0xb14ea47b sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 +EXPORT_SYMBOL vmlinux 0xb192be92 keyring_search +EXPORT_SYMBOL vmlinux 0xb1b462c0 folio_mark_dirty +EXPORT_SYMBOL vmlinux 0xb1b81baf __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0xb1b81c05 proc_set_size +EXPORT_SYMBOL vmlinux 0xb1beacc1 serio_rescan +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c42b5d pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0xb1c64191 msm_pinctrl_dev_pm_ops +EXPORT_SYMBOL vmlinux 0xb1c7d84a ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0xb1c8e61f skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0xb1cf55d2 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xb1cfee65 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb1d3fc4b skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xb1d512d5 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xb1db9a69 fsl_ifc_find +EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xb2095bd4 of_get_ethdev_address +EXPORT_SYMBOL vmlinux 0xb2109e68 dma_fence_describe +EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xb23027c1 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xb232b8b7 dput +EXPORT_SYMBOL vmlinux 0xb2439144 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb24ad4b9 zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xb2502a17 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xb2505dcb fman_get_qman_channel_id +EXPORT_SYMBOL vmlinux 0xb2613d57 phy_connect +EXPORT_SYMBOL vmlinux 0xb265a69b cros_ec_check_result +EXPORT_SYMBOL vmlinux 0xb28ff5c8 netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0xb2a2ef73 ucc_of_parse_tdm +EXPORT_SYMBOL vmlinux 0xb2a9f787 __of_get_address +EXPORT_SYMBOL vmlinux 0xb2b8794a jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0xb2bcb088 acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0xb2c1c082 can_nice +EXPORT_SYMBOL vmlinux 0xb2c24aec locks_copy_lock +EXPORT_SYMBOL vmlinux 0xb2cfbba0 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb2ea1aff flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0xb2ead97c kimage_vaddr +EXPORT_SYMBOL vmlinux 0xb2f35c6a xxh64 +EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken +EXPORT_SYMBOL vmlinux 0xb30b9822 vme_master_set +EXPORT_SYMBOL vmlinux 0xb320cc0e sg_init_one +EXPORT_SYMBOL vmlinux 0xb3258f79 __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0xb32728bb qcom_scm_iommu_secure_ptbl_init +EXPORT_SYMBOL vmlinux 0xb32c0486 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xb34542b8 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0xb34dca1c kryo_l2_get_indirect_reg +EXPORT_SYMBOL vmlinux 0xb357a486 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0xb35dbd3f ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0xb360e101 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xb36c4438 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0xb3a82019 profile_pc +EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0xb3f0de55 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0xb3f49446 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xb3f548ad kmemdup_nul +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3fb536a rt_dst_clone +EXPORT_SYMBOL vmlinux 0xb4043948 acpi_execute_simple_method +EXPORT_SYMBOL vmlinux 0xb41356e0 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0xb41ab1ea generic_write_checks_count +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb424bd45 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xb433e789 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xb438a2c3 of_node_put +EXPORT_SYMBOL vmlinux 0xb4397880 folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0xb45098ce pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0xb4577003 acpi_dev_present +EXPORT_SYMBOL vmlinux 0xb46268bb tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xb464a57f sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xb4706299 may_setattr +EXPORT_SYMBOL vmlinux 0xb48b0cf6 netif_tx_lock +EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb493beed nla_put +EXPORT_SYMBOL vmlinux 0xb4a13a74 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xb4aa0030 ip_options_compile +EXPORT_SYMBOL vmlinux 0xb4af3523 nonseekable_open +EXPORT_SYMBOL vmlinux 0xb4b94249 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xb4bebe88 tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0xb4c987f2 genphy_loopback +EXPORT_SYMBOL vmlinux 0xb4ce14f9 __folio_lock +EXPORT_SYMBOL vmlinux 0xb4d51267 iov_iter_init +EXPORT_SYMBOL vmlinux 0xb4ec0261 __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xb4edb6f9 blk_start_plug +EXPORT_SYMBOL vmlinux 0xb4f13d2a abort +EXPORT_SYMBOL vmlinux 0xb4f4573b dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb5187a95 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xb5290f72 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0xb5362814 finish_open +EXPORT_SYMBOL vmlinux 0xb53f2810 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xb5453b17 eth_header +EXPORT_SYMBOL vmlinux 0xb5576d7a pcim_pin_device +EXPORT_SYMBOL vmlinux 0xb5595357 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb57add2d pin_user_pages +EXPORT_SYMBOL vmlinux 0xb57f1e27 fman_port_disable +EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb59354ea vme_unregister_driver +EXPORT_SYMBOL vmlinux 0xb5937922 pci_restore_state +EXPORT_SYMBOL vmlinux 0xb5947220 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b54b34 _raw_spin_unlock +EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0xb5bc2d4f end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xb602a454 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0xb61d6fc2 down_read_interruptible +EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable +EXPORT_SYMBOL vmlinux 0xb63b1563 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0xb647dc2d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xb654ef65 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xb662e837 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb66c8ac3 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse +EXPORT_SYMBOL vmlinux 0xb68507d1 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb695d3a7 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0xb69948cd page_mapped +EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0xb6b1331c put_ipc_ns +EXPORT_SYMBOL vmlinux 0xb6b9ade6 dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0xb6bfcb8b input_reset_device +EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit +EXPORT_SYMBOL vmlinux 0xb6d00401 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb6ee1b6e kernel_connect +EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd +EXPORT_SYMBOL vmlinux 0xb6fe2552 scsi_print_result +EXPORT_SYMBOL vmlinux 0xb70cf288 tcp_check_req +EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces +EXPORT_SYMBOL vmlinux 0xb716e9c6 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0xb737b185 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0xb7688155 ucc_slow_init +EXPORT_SYMBOL vmlinux 0xb76c55e9 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0xb7730469 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xb774acff tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0xb788fb30 gic_pmr_sync +EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0xb79b528b mmc_of_parse +EXPORT_SYMBOL vmlinux 0xb7b2e589 ip_output +EXPORT_SYMBOL vmlinux 0xb7b7fa6e node_states +EXPORT_SYMBOL vmlinux 0xb7c0f443 sort +EXPORT_SYMBOL vmlinux 0xb7c68209 tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0xb7cd6a65 proc_create +EXPORT_SYMBOL vmlinux 0xb7fb5e96 sg_miter_start +EXPORT_SYMBOL vmlinux 0xb80b4a18 zstd_compress_bound +EXPORT_SYMBOL vmlinux 0xb80df309 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xb8197f4a __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xb825df53 trace_event_printf +EXPORT_SYMBOL vmlinux 0xb82aaec5 sget +EXPORT_SYMBOL vmlinux 0xb842716c qcom_scm_ocmem_lock_available +EXPORT_SYMBOL vmlinux 0xb8466ed9 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xb84fc0e3 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xb8605d9c qman_p_static_dequeue_add +EXPORT_SYMBOL vmlinux 0xb86619be task_work_add +EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key +EXPORT_SYMBOL vmlinux 0xb8887a6b generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xb88fd035 set_groups +EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link +EXPORT_SYMBOL vmlinux 0xb8b59417 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xb8b9f817 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xb8bd7c32 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xb8ca5ce6 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xb8d8dca2 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xb8e64eea scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xb8eab3e0 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xb9056bb6 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max +EXPORT_SYMBOL vmlinux 0xb920db49 acpi_tb_install_and_load_table +EXPORT_SYMBOL vmlinux 0xb921f304 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xb923b788 bioset_init +EXPORT_SYMBOL vmlinux 0xb929e1ae fb_set_cmap +EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xb9478d90 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0xb948f8b8 rproc_alloc +EXPORT_SYMBOL vmlinux 0xb94ea6b3 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0xb95bd115 kset_unregister +EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context +EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse +EXPORT_SYMBOL vmlinux 0xb9964c78 bio_chain +EXPORT_SYMBOL vmlinux 0xb9af1d0d __xa_clear_mark +EXPORT_SYMBOL vmlinux 0xb9c3316e alloc_pages +EXPORT_SYMBOL vmlinux 0xb9e0279c tcp_mmap +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xb9fc381a qcom_scm_hdcp_req +EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat +EXPORT_SYMBOL vmlinux 0xba1008c8 __crc32c_le +EXPORT_SYMBOL vmlinux 0xba3a6c8b clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba53adab nla_policy_len +EXPORT_SYMBOL vmlinux 0xba57acab devm_request_resource +EXPORT_SYMBOL vmlinux 0xba656cbb __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xba707a78 qe_get_brg_clk +EXPORT_SYMBOL vmlinux 0xba787c97 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xba7a2a14 dma_supported +EXPORT_SYMBOL vmlinux 0xba8024f3 tty_lock +EXPORT_SYMBOL vmlinux 0xba8fbd64 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xba93376d unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xbaa28541 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xbaaeb9fd folio_alloc +EXPORT_SYMBOL vmlinux 0xbad1f24c fiemap_prep +EXPORT_SYMBOL vmlinux 0xbae48224 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xbaf506f6 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xbaf9a84f qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset +EXPORT_SYMBOL vmlinux 0xbb21260e convert_ifc_address +EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb30401d phy_sfp_probe +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb532cb1 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xbb536c8b ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xbb547c45 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xbb5faade dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xbb687724 bman_new_pool +EXPORT_SYMBOL vmlinux 0xbb9ed3bf mutex_trylock +EXPORT_SYMBOL vmlinux 0xbba83927 __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0xbbcb973d of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0xbbd2f5da __scsi_execute +EXPORT_SYMBOL vmlinux 0xbbe80fdb kmalloc_order +EXPORT_SYMBOL vmlinux 0xbbec56e4 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xbbf13796 neigh_xmit +EXPORT_SYMBOL vmlinux 0xbbf941e7 serio_unregister_port +EXPORT_SYMBOL vmlinux 0xbc137b3d page_readlink +EXPORT_SYMBOL vmlinux 0xbc156af5 put_fs_context +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc3e69a2 unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0xbc508913 set_create_files_as +EXPORT_SYMBOL vmlinux 0xbc531a6e scsi_host_get +EXPORT_SYMBOL vmlinux 0xbca93cd1 scsi_host_put +EXPORT_SYMBOL vmlinux 0xbca9547b security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xbca9a1c6 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf +EXPORT_SYMBOL vmlinux 0xbcb36fe4 hugetlb_optimize_vmemmap_key +EXPORT_SYMBOL vmlinux 0xbcdd3fb7 dquot_commit +EXPORT_SYMBOL vmlinux 0xbcf78908 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xbcfff3dd of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xbd03f331 bpf_map_get +EXPORT_SYMBOL vmlinux 0xbd21959a alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0xbd2e97fb tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0xbd36b056 vme_irq_request +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd5854ba mdiobus_free +EXPORT_SYMBOL vmlinux 0xbd628752 __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbd6435c4 filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0xbd6841d4 crc16 +EXPORT_SYMBOL vmlinux 0xbd6cec1a md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xbdab4808 iommu_dma_get_resv_regions +EXPORT_SYMBOL vmlinux 0xbdd8768c fs_param_is_blob +EXPORT_SYMBOL vmlinux 0xbde214f5 reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0xbe0bc12c skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xbe118c52 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xbe12fe86 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xbe25f973 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0xbe2616b2 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xbe2c7d2e neigh_app_ns +EXPORT_SYMBOL vmlinux 0xbe2cc2b3 sk_free +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 0xbe640054 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0xbe6a866f __wait_on_bit +EXPORT_SYMBOL vmlinux 0xbe6a8c96 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xbe8349b5 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0xbe8f1ad3 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xbe9afec6 get_fs_type +EXPORT_SYMBOL vmlinux 0xbe9f2c24 scsi_host_busy +EXPORT_SYMBOL vmlinux 0xbeb59aaf skb_clone_sk +EXPORT_SYMBOL vmlinux 0xbecd82da input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0xbee588a5 mdiobb_write +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefa51a3 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0xbf0ecea8 fs_param_is_path +EXPORT_SYMBOL vmlinux 0xbf14daf9 page_symlink +EXPORT_SYMBOL vmlinux 0xbf47776e security_path_unlink +EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init +EXPORT_SYMBOL vmlinux 0xbf6e7b52 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xbf810559 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbf858f32 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa0977d config_group_init +EXPORT_SYMBOL vmlinux 0xbfae9e07 utf8_validate +EXPORT_SYMBOL vmlinux 0xbfc0d310 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0xbfcbc0d2 stmp_reset_block +EXPORT_SYMBOL vmlinux 0xbfcfa09f secpath_set +EXPORT_SYMBOL vmlinux 0xbfcfd354 qman_get_qm_portal_config +EXPORT_SYMBOL vmlinux 0xbfd490d7 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xbfd9c240 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0xbfdb29a2 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0xbfde0fde is_nd_pfn +EXPORT_SYMBOL vmlinux 0xbff579fb vga_get +EXPORT_SYMBOL vmlinux 0xc00e551c mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xc0167fbc refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0xc0214611 clk_add_alias +EXPORT_SYMBOL vmlinux 0xc0364007 fault_in_writeable +EXPORT_SYMBOL vmlinux 0xc047d70f prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0xc04fbfe3 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xc05ba33b nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0xc060c3f4 page_pool_ethtool_stats_get +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc078d22c zstd_init_cstream +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc08807cd submit_bio_noacct +EXPORT_SYMBOL vmlinux 0xc0afb5d7 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0xc0dbcbae phy_start +EXPORT_SYMBOL vmlinux 0xc0e78822 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xc0f0f2d5 sock_no_bind +EXPORT_SYMBOL vmlinux 0xc0f8d027 param_set_invbool +EXPORT_SYMBOL vmlinux 0xc0f97815 phy_start_cable_test +EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup +EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor +EXPORT_SYMBOL vmlinux 0xc1015d92 phy_read_paged +EXPORT_SYMBOL vmlinux 0xc1071e86 nd_region_release_lane +EXPORT_SYMBOL vmlinux 0xc118ebb8 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0xc145051a set_disk_ro +EXPORT_SYMBOL vmlinux 0xc1459dbf audit_log_start +EXPORT_SYMBOL vmlinux 0xc14dc168 acpi_get_data +EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc1571030 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xc1579516 fman_port_enable +EXPORT_SYMBOL vmlinux 0xc164a51c keygen_init +EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xc1a42b84 ppp_input +EXPORT_SYMBOL vmlinux 0xc1ae16cb single_open +EXPORT_SYMBOL vmlinux 0xc1cafd83 genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0xc1d5d504 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget +EXPORT_SYMBOL vmlinux 0xc1dbdadd fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0xc1e2c742 tegra_io_rail_power_on +EXPORT_SYMBOL vmlinux 0xc1e6a840 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc2045345 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xc2050974 fman_port_get_tstamp +EXPORT_SYMBOL vmlinux 0xc20781c4 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc20c4aa2 pci_match_id +EXPORT_SYMBOL vmlinux 0xc20d76ce tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc2225076 vme_master_request +EXPORT_SYMBOL vmlinux 0xc226b040 mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0xc2287e92 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0xc22f8db1 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xc2310cdc logic_inl +EXPORT_SYMBOL vmlinux 0xc23d71a1 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0xc24a9e60 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xc24b986e get_user_pages_remote +EXPORT_SYMBOL vmlinux 0xc28f26b2 open_exec +EXPORT_SYMBOL vmlinux 0xc29bc412 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2b55923 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0xc2bfa13e km_new_mapping +EXPORT_SYMBOL vmlinux 0xc2dca64e bio_put +EXPORT_SYMBOL vmlinux 0xc2df3b49 nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0xc2e168ab caches_clean_inval_pou +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e90704 dev_open +EXPORT_SYMBOL vmlinux 0xc2f52274 __lshrti3 +EXPORT_SYMBOL vmlinux 0xc2f79532 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc311f476 blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0xc315f231 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xc3484c64 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xc34ea2cf fput +EXPORT_SYMBOL vmlinux 0xc353e60d netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0xc35c2edf phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xc36a3bd4 __acpi_handle_debug +EXPORT_SYMBOL vmlinux 0xc36a4262 udp_ioctl +EXPORT_SYMBOL vmlinux 0xc36f6f6d netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0xc3762aec mempool_alloc +EXPORT_SYMBOL vmlinux 0xc37f9c6e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer +EXPORT_SYMBOL vmlinux 0xc393d3d6 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xc396514a nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0xc39f89ba request_key_rcu +EXPORT_SYMBOL vmlinux 0xc3acf96f ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0xc3cd034d crc8_populate_lsb +EXPORT_SYMBOL vmlinux 0xc3d081df proc_create_mount_point +EXPORT_SYMBOL vmlinux 0xc3dd1626 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xc3f23c0a jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xc3ff38c2 down_read_trylock +EXPORT_SYMBOL vmlinux 0xc4190834 phy_attach_direct +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 0xc43d78a6 mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0xc4486e3a kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0xc44985bc param_set_bint +EXPORT_SYMBOL vmlinux 0xc452212c utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0xc4708199 cpm_muram_addr +EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc47e9bd5 remove_arg_zero +EXPORT_SYMBOL vmlinux 0xc481b2f9 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xc4892b9d config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0xc4a1eebd xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0xc4aa5fe1 __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0xc4ac9d6c qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0xc4adf331 get_tree_bdev +EXPORT_SYMBOL vmlinux 0xc4b21d2f qman_get_affine_portal +EXPORT_SYMBOL vmlinux 0xc4d155fe jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xc4dd7ab8 jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0xc4eb8744 vga_put +EXPORT_SYMBOL vmlinux 0xc4f14a2c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xc4ff7707 pci_dev_get +EXPORT_SYMBOL vmlinux 0xc528a49a queued_write_lock_slowpath +EXPORT_SYMBOL vmlinux 0xc52f4dcf kthread_stop +EXPORT_SYMBOL vmlinux 0xc5460caf flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0xc5699b67 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xc56a41e6 vabits_actual +EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0xc57c48a3 idr_get_next +EXPORT_SYMBOL vmlinux 0xc581d472 __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0xc58d5a90 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc5a19432 inet6_offloads +EXPORT_SYMBOL vmlinux 0xc5a3367a __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xc5a7d8fc hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on +EXPORT_SYMBOL vmlinux 0xc5c418bf pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xc5d0074d vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc5e4e52b set_capacity +EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource +EXPORT_SYMBOL vmlinux 0xc5f7e801 sg_last +EXPORT_SYMBOL vmlinux 0xc5fcbb43 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xc60bcc87 setattr_copy +EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus +EXPORT_SYMBOL vmlinux 0xc6117f5b __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xc622556f prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc624b282 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xc62d13eb __bread_gfp +EXPORT_SYMBOL vmlinux 0xc62f376c nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc6524521 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc658f26d sock_no_mmap +EXPORT_SYMBOL vmlinux 0xc6596ef4 param_ops_invbool +EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xc65eedeb kthread_create_worker +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc66a8304 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0xc6716414 fb_show_logo +EXPORT_SYMBOL vmlinux 0xc69fce52 qcom_scm_qsmmu500_wait_safe_toggle +EXPORT_SYMBOL vmlinux 0xc6a472b7 fman_set_mac_max_frame +EXPORT_SYMBOL vmlinux 0xc6a524ba cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0xc6b14bf8 fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d09aa9 release_firmware +EXPORT_SYMBOL vmlinux 0xc6d2ba32 mpage_writepage +EXPORT_SYMBOL vmlinux 0xc6d6f2b3 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key +EXPORT_SYMBOL vmlinux 0xc705eb96 dst_init +EXPORT_SYMBOL vmlinux 0xc70851e3 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xc708f1fe ec_write +EXPORT_SYMBOL vmlinux 0xc713a698 arp_tbl +EXPORT_SYMBOL vmlinux 0xc71d58fe of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc728c16f ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0xc72b7d5e phy_do_ioctl +EXPORT_SYMBOL vmlinux 0xc754cd6e tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0xc7806ec9 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc785217e page_pool_update_nid +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79e3b33 pid_task +EXPORT_SYMBOL vmlinux 0xc7a2cac4 mpage_readahead +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0xc7c8be2a phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0xc7d094b5 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xc7d940d8 put_disk +EXPORT_SYMBOL vmlinux 0xc8051a31 fman_set_mac_active_pause +EXPORT_SYMBOL vmlinux 0xc80a7c3b i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc80ab559 swake_up_one +EXPORT_SYMBOL vmlinux 0xc812bb99 rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0xc8158618 _dev_printk +EXPORT_SYMBOL vmlinux 0xc82bbd1f netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xc836e7ca flow_keys_dissector +EXPORT_SYMBOL vmlinux 0xc838c3f5 __ashrti3 +EXPORT_SYMBOL vmlinux 0xc83d227e blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84d3150 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0xc8588b00 rpmh_invalidate +EXPORT_SYMBOL vmlinux 0xc85b37e8 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xc8647e57 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals +EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc89695d4 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0xc89846c4 xudma_tchanrt_read +EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread +EXPORT_SYMBOL vmlinux 0xc8c050f7 of_device_register +EXPORT_SYMBOL vmlinux 0xc8c17ff2 dentry_path_raw +EXPORT_SYMBOL vmlinux 0xc8c19085 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xc8c8613b xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0xc8d69aa0 simple_rmdir +EXPORT_SYMBOL vmlinux 0xc8dcc62a krealloc +EXPORT_SYMBOL vmlinux 0xc904314e skb_set_owner_w +EXPORT_SYMBOL vmlinux 0xc905c5f9 sg_miter_next +EXPORT_SYMBOL vmlinux 0xc915f916 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0xc916dd46 __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0xc9297445 tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0xc9306607 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xc93e8461 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0xc94181d2 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96385a5 kern_path +EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc9822234 clk_register_clkdev +EXPORT_SYMBOL vmlinux 0xc983ee7b dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xc99783f4 dma_unmap_resource +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b68030 devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xc9c8c489 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xc9d86696 flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9df9fd5 fwnode_iomap +EXPORT_SYMBOL vmlinux 0xc9eb6ebf input_match_device_id +EXPORT_SYMBOL vmlinux 0xc9ed0401 imx_sc_rm_is_resource_owned +EXPORT_SYMBOL vmlinux 0xc9ff7db1 phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0xca0f3868 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xca13bb96 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xca1648d4 zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0xca1a4c4b seq_dentry +EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free +EXPORT_SYMBOL vmlinux 0xca372a12 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function +EXPORT_SYMBOL vmlinux 0xca4b390d vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0xca62afaf xudma_rflow_is_gp +EXPORT_SYMBOL vmlinux 0xca6ab5ef setup_new_exec +EXPORT_SYMBOL vmlinux 0xca8d35ff xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xca8dfb0d inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca9beaa4 __xa_store +EXPORT_SYMBOL vmlinux 0xcaa056da ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xcaa15766 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xcac132ed sock_bindtoindex +EXPORT_SYMBOL vmlinux 0xcacf9d35 mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0xcad1aca8 acpi_exception +EXPORT_SYMBOL vmlinux 0xcae2b61b generic_write_end +EXPORT_SYMBOL vmlinux 0xcaebbe82 tcp_req_err +EXPORT_SYMBOL vmlinux 0xcaf1880a ilookup +EXPORT_SYMBOL vmlinux 0xcafbdf5e generic_listxattr +EXPORT_SYMBOL vmlinux 0xcafc0d57 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb047da9 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xcb34e6de make_kgid +EXPORT_SYMBOL vmlinux 0xcb382a33 kobject_put +EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xcb4937ae __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xcb607412 sock_bind_add +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb8077fc configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0xcb8f4d82 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc62449 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0xcbd2756d neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xcbd4898c fortify_panic +EXPORT_SYMBOL vmlinux 0xcbe17352 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xcbe2abf0 inet_offloads +EXPORT_SYMBOL vmlinux 0xcbe7d604 sk_wait_data +EXPORT_SYMBOL vmlinux 0xcbfb1fc2 folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0xcbfb33e4 init_opal_dev +EXPORT_SYMBOL vmlinux 0xcc1b882a idr_get_next_ul +EXPORT_SYMBOL vmlinux 0xcc23002a hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class +EXPORT_SYMBOL vmlinux 0xcc336c1f rt6_lookup +EXPORT_SYMBOL vmlinux 0xcc38d836 bio_init_clone +EXPORT_SYMBOL vmlinux 0xcc411ed1 ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0xcc445ceb __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0xcc4b1c37 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0xcc4c9c80 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc5a1895 free_netdev +EXPORT_SYMBOL vmlinux 0xcc5d22d9 can_do_mlock +EXPORT_SYMBOL vmlinux 0xcc642f70 of_graph_get_port_by_id +EXPORT_SYMBOL vmlinux 0xcc683329 vfs_link +EXPORT_SYMBOL vmlinux 0xcc6f9c6f tcp_splice_read +EXPORT_SYMBOL vmlinux 0xcc7cf4f8 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xcca5839d xen_vcpu_id +EXPORT_SYMBOL vmlinux 0xccc1c393 config_item_set_name +EXPORT_SYMBOL vmlinux 0xccc9b0cd xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0xcccb5235 __pagevec_release +EXPORT_SYMBOL vmlinux 0xccd4c999 __sg_page_iter_start +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 0xcd23e500 dquot_destroy +EXPORT_SYMBOL vmlinux 0xcd256667 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd406ad2 kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0xcd5ade53 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xcd69ea90 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0xcd7d8bd3 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xcd8281d1 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0xcd8ce890 acpi_format_exception +EXPORT_SYMBOL vmlinux 0xcda003ba inet_select_addr +EXPORT_SYMBOL vmlinux 0xcda6cd97 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xcdb3bab5 dquot_release +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc68b1e flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0xcdde7291 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev +EXPORT_SYMBOL vmlinux 0xce036f24 sg_split +EXPORT_SYMBOL vmlinux 0xce201771 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0xce267b87 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2f24c3 posix_acl_update_mode +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 0xce5af486 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0xce5b0ce7 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xce7025d5 pskb_extract +EXPORT_SYMBOL vmlinux 0xce731b34 ucc_slow_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0xce76c257 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xce807a25 up_write +EXPORT_SYMBOL vmlinux 0xce86ffd1 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xce92e461 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul +EXPORT_SYMBOL vmlinux 0xcec8e67c dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0xced0f4d4 gen_pool_create +EXPORT_SYMBOL vmlinux 0xceec8abd __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xcef0ff24 dev_uc_init +EXPORT_SYMBOL vmlinux 0xcef9f4f5 set_user_nice +EXPORT_SYMBOL vmlinux 0xcefb0c9f __mutex_init +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0730a9 of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0xcf273081 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xcf2a6966 up +EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xcf44c3a8 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0xcf491223 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0xcf4fdd4d _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xcf6eaadf md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xcf8b144c nobh_write_begin +EXPORT_SYMBOL vmlinux 0xcf8c4b34 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xcf8c5a10 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xcf8f198f netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xcf915856 find_inode_rcu +EXPORT_SYMBOL vmlinux 0xcf9734a4 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0xcf9c7f23 of_device_is_available +EXPORT_SYMBOL vmlinux 0xcfa2e874 mmc_request_done +EXPORT_SYMBOL vmlinux 0xcfa7e913 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xcfc9deaf atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xcfcf37dc dst_alloc +EXPORT_SYMBOL vmlinux 0xcfd884a8 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0xcfda3e44 d_prune_aliases +EXPORT_SYMBOL vmlinux 0xcfeb98a8 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xcffd042e vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xd00b73fa rtc_add_groups +EXPORT_SYMBOL vmlinux 0xd00f1c74 rw_verify_area +EXPORT_SYMBOL vmlinux 0xd03bbe00 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function +EXPORT_SYMBOL vmlinux 0xd070b5ce follow_pfn +EXPORT_SYMBOL vmlinux 0xd073988e phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive +EXPORT_SYMBOL vmlinux 0xd085e64b blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xd08a6e66 register_quota_format +EXPORT_SYMBOL vmlinux 0xd09bcb9a iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xd0b74705 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xd0bc5276 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd0cb6c58 kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0xd0f248c4 empty_aops +EXPORT_SYMBOL vmlinux 0xd0fe8d51 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xd10ee979 sunxi_sram_release +EXPORT_SYMBOL vmlinux 0xd1105d7f elv_rb_find +EXPORT_SYMBOL vmlinux 0xd12d465b mii_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xd1363cc1 ucs2_strsize +EXPORT_SYMBOL vmlinux 0xd1379daf tcp_sendpage +EXPORT_SYMBOL vmlinux 0xd1681ace sock_rfree +EXPORT_SYMBOL vmlinux 0xd1849ff7 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xd18924fe con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xd194ddf9 acpi_gpe_count +EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0xd1e0dd17 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xd1e2a8f4 generic_perform_write +EXPORT_SYMBOL vmlinux 0xd2051916 qcom_scm_cpu_power_down +EXPORT_SYMBOL vmlinux 0xd220b3d2 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xd2237016 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0xd22ddec8 iterate_dir +EXPORT_SYMBOL vmlinux 0xd24108d4 rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0xd2473503 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xd2582f8f __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xd25bc5d4 csum_tcpudp_nofold +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd26179ac dst_dev_put +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd283a9b4 dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0xd29eec3e qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xd2a86e3c devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0xd2b6b132 pnp_start_dev +EXPORT_SYMBOL vmlinux 0xd2c99738 __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd2d4f81c __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e2a9d0 hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xd2ea49b8 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0xd2f00894 inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0xd2f96450 dma_map_resource +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd322ccf3 of_node_get +EXPORT_SYMBOL vmlinux 0xd3543063 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0xd3559ef4 __memset +EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xd35cce70 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd364b857 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xd36abb69 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 +EXPORT_SYMBOL vmlinux 0xd36e3d59 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xd375ded2 audit_log +EXPORT_SYMBOL vmlinux 0xd37cbe97 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0xd382f9cd bio_split +EXPORT_SYMBOL vmlinux 0xd385ce5e security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xd3940da3 thaw_super +EXPORT_SYMBOL vmlinux 0xd3e6f14c param_ops_ulong +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd40ba615 xfrm_register_type +EXPORT_SYMBOL vmlinux 0xd41969ac configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0xd41f1e23 noop_dirty_folio +EXPORT_SYMBOL vmlinux 0xd422489a rt_dst_alloc +EXPORT_SYMBOL vmlinux 0xd431b852 nd_btt_version +EXPORT_SYMBOL vmlinux 0xd45c4dda seq_write +EXPORT_SYMBOL vmlinux 0xd45cc6ca bin2hex +EXPORT_SYMBOL vmlinux 0xd460a9bb debugfs_create_automount +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd4a26f38 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0xd4a69d20 qm_channel_caam +EXPORT_SYMBOL vmlinux 0xd4a6bc19 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xd4bb4a82 inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd4d1983c udplite_table +EXPORT_SYMBOL vmlinux 0xd4d5e998 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xd4e39ace generic_ro_fops +EXPORT_SYMBOL vmlinux 0xd4f9f2c9 udp_read_sock +EXPORT_SYMBOL vmlinux 0xd4fa5a87 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xd501f18e writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xd50c7937 mmc_can_discard +EXPORT_SYMBOL vmlinux 0xd50d7f1f find_vma +EXPORT_SYMBOL vmlinux 0xd5119c90 user_path_create +EXPORT_SYMBOL vmlinux 0xd516db9f param_set_uint +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd52f542c write_inode_now +EXPORT_SYMBOL vmlinux 0xd5346bfc acpi_get_possible_resources +EXPORT_SYMBOL vmlinux 0xd53a37c0 __sk_receive_skb +EXPORT_SYMBOL vmlinux 0xd584639e pmem_sector_size +EXPORT_SYMBOL vmlinux 0xd5b047ac tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xd5b3d0d5 xxh64_copy_state +EXPORT_SYMBOL vmlinux 0xd5d65e5a inet_sk_set_state +EXPORT_SYMBOL vmlinux 0xd5de6485 netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0xd5df780c netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0xd5fd90f1 prepare_to_wait +EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0xd62b1e45 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0xd62c6f18 dec_node_page_state +EXPORT_SYMBOL vmlinux 0xd62ecd49 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xd63403d1 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xd634e2f0 fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0xd63cec94 pci_get_class +EXPORT_SYMBOL vmlinux 0xd643239a acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xd6453e81 tcp_poll +EXPORT_SYMBOL vmlinux 0xd66494d5 xen_alloc_unpopulated_pages +EXPORT_SYMBOL vmlinux 0xd6658f20 blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0xd665ea25 __seq_open_private +EXPORT_SYMBOL vmlinux 0xd66c8184 add_device_randomness +EXPORT_SYMBOL vmlinux 0xd6742a28 vm_event_states +EXPORT_SYMBOL vmlinux 0xd676c8e7 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource +EXPORT_SYMBOL vmlinux 0xd68fa193 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xd691c6a9 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xd696e6a6 serio_bus +EXPORT_SYMBOL vmlinux 0xd6a4b761 framebuffer_release +EXPORT_SYMBOL vmlinux 0xd6a76bb4 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xd6a91f54 twl_i2c_read +EXPORT_SYMBOL vmlinux 0xd6b809b1 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0xd6b93e17 fsl_ifc_ctrl_dev +EXPORT_SYMBOL vmlinux 0xd6d183fb pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xd6eaaea1 full_name_hash +EXPORT_SYMBOL vmlinux 0xd6eb71d5 __lock_buffer +EXPORT_SYMBOL vmlinux 0xd6eb8a50 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fde043 is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0xd70a2250 brioctl_set +EXPORT_SYMBOL vmlinux 0xd70ba17f inode_init_owner +EXPORT_SYMBOL vmlinux 0xd70d35a1 gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0xd70f3fb4 pci_disable_msi +EXPORT_SYMBOL vmlinux 0xd70f62b6 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xd7282c74 rtnl_notify +EXPORT_SYMBOL vmlinux 0xd7318119 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd7482f05 vcalloc +EXPORT_SYMBOL vmlinux 0xd7515525 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xd76b9c9a dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xd7899d78 tty_kref_put +EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load +EXPORT_SYMBOL vmlinux 0xd7b024df sget_fc +EXPORT_SYMBOL vmlinux 0xd7c44cdc iget5_locked +EXPORT_SYMBOL vmlinux 0xd7c9966b amba_request_regions +EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete +EXPORT_SYMBOL vmlinux 0xd7d5d4c7 fman_get_revision +EXPORT_SYMBOL vmlinux 0xd7de4037 inode_init_once +EXPORT_SYMBOL vmlinux 0xd7e38e87 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e6ed28 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ff1b8a __ashlti3 +EXPORT_SYMBOL vmlinux 0xd806273c padata_alloc +EXPORT_SYMBOL vmlinux 0xd8131274 qman_alloc_cgrid_range +EXPORT_SYMBOL vmlinux 0xd8158084 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xd828f063 xudma_tchanrt_write +EXPORT_SYMBOL vmlinux 0xd85aa811 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0xd871b23b neigh_direct_output +EXPORT_SYMBOL vmlinux 0xd89a1e40 mmc_put_card +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a7f1ec folio_unlock +EXPORT_SYMBOL vmlinux 0xd8a7fa93 ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font +EXPORT_SYMBOL vmlinux 0xd8cfba35 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0xd8df08ac acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xd91c400e clocksource_unregister +EXPORT_SYMBOL vmlinux 0xd91f6ab6 strnlen_user +EXPORT_SYMBOL vmlinux 0xd920dbf7 param_ops_ullong +EXPORT_SYMBOL vmlinux 0xd92deb6b acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xd93cf296 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xd93e02ab bdi_register +EXPORT_SYMBOL vmlinux 0xd9491c14 xa_destroy +EXPORT_SYMBOL vmlinux 0xd964ca99 generic_write_checks +EXPORT_SYMBOL vmlinux 0xd97f03d0 key_reject_and_link +EXPORT_SYMBOL vmlinux 0xd985b5ed d_tmpfile +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd987bcd9 ata_print_version +EXPORT_SYMBOL vmlinux 0xd9a58608 __vfs_getxattr +EXPORT_SYMBOL vmlinux 0xd9a5ea54 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xd9a6088b blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0xd9aed6b2 __skb_ext_del +EXPORT_SYMBOL vmlinux 0xd9b85ef6 lockref_get +EXPORT_SYMBOL vmlinux 0xd9b8eaea __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xd9c493c8 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xd9d88e50 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler +EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0xd9df5b2b fs_context_for_mount +EXPORT_SYMBOL vmlinux 0xd9e0eb6e pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xd9e49379 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0xd9f789bb dev_close +EXPORT_SYMBOL vmlinux 0xda0312fe pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xda048827 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0xda08f263 deactivate_super +EXPORT_SYMBOL vmlinux 0xda10443c xudma_tchan_get_id +EXPORT_SYMBOL vmlinux 0xda2a4710 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda4aa375 page_pool_get_stats +EXPORT_SYMBOL vmlinux 0xda766077 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xda768a06 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0xda777e33 sock_create_lite +EXPORT_SYMBOL vmlinux 0xda7f0aeb submit_bio_wait +EXPORT_SYMBOL vmlinux 0xda8eb2f7 node_data +EXPORT_SYMBOL vmlinux 0xdaaeffc9 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xdab75852 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xdab77c67 find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0xdabef871 __kfree_skb +EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0xdac6515b vif_device_init +EXPORT_SYMBOL vmlinux 0xdaca820e dynamic_preempt_schedule +EXPORT_SYMBOL vmlinux 0xdad1fc3f zstd_flush_stream +EXPORT_SYMBOL vmlinux 0xdaec288d pr_flush +EXPORT_SYMBOL vmlinux 0xdaf1a157 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xdb027232 vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0xdb1105e3 of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0xdb20989b ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xdb2abde4 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0xdb33bf3b __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0xdb512be1 d_make_root +EXPORT_SYMBOL vmlinux 0xdb51d4f6 mdiobus_write +EXPORT_SYMBOL vmlinux 0xdb59d1fa pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb806fae __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0xdba2f8ce mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0xdbb12111 input_register_handle +EXPORT_SYMBOL vmlinux 0xdbb41e1b pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0xdbb6c625 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xdbcf041a acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource +EXPORT_SYMBOL vmlinux 0xdc01eb91 param_get_byte +EXPORT_SYMBOL vmlinux 0xdc0c548b jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1b5cab padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xdc1cb07c pci_resize_resource +EXPORT_SYMBOL vmlinux 0xdc238cac remap_pfn_range +EXPORT_SYMBOL vmlinux 0xdc34158f fman_port_init +EXPORT_SYMBOL vmlinux 0xdc36c6d8 __module_get +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0xdc4c1ef4 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0xdc512134 backlight_register_notifier +EXPORT_SYMBOL vmlinux 0xdc571c33 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xdc58c3e6 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xdc5ae7e0 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0xdc6d48df dquot_get_next_id +EXPORT_SYMBOL vmlinux 0xdc778d5b pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xdc910ae3 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0xdca8c3d4 logic_outb +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdcdc0040 slhc_compress +EXPORT_SYMBOL vmlinux 0xdcea959f netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0xdcec48e7 inet_ioctl +EXPORT_SYMBOL vmlinux 0xdd00447a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0xdd18a993 acpi_check_dsm +EXPORT_SYMBOL vmlinux 0xdd203b08 handle_edge_irq +EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create +EXPORT_SYMBOL vmlinux 0xdd4d55b6 _raw_read_unlock +EXPORT_SYMBOL vmlinux 0xdd5171f9 dentry_open +EXPORT_SYMBOL vmlinux 0xdd605c48 ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xdd63befb flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0xdd64e639 strscpy +EXPORT_SYMBOL vmlinux 0xdd684c15 pci_fixup_device +EXPORT_SYMBOL vmlinux 0xdd71a077 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xdd7359ee genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0xdd74349c flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0xdd7dc44c jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xdd7e3192 qcom_scm_pas_auth_and_reset +EXPORT_SYMBOL vmlinux 0xdd8166a1 dma_fence_free +EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xdd9eccbb netdev_notice +EXPORT_SYMBOL vmlinux 0xddad7952 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xddbf2632 pci_find_resource +EXPORT_SYMBOL vmlinux 0xddd95195 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xddf6ad7a completion_done +EXPORT_SYMBOL vmlinux 0xde028863 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0xde293f9e add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xde360498 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0xde4967f1 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xde4d4ace dim_calc_stats +EXPORT_SYMBOL vmlinux 0xde6eb0d9 d_add +EXPORT_SYMBOL vmlinux 0xde87fa19 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0xde906bf0 tegra_dfll_register +EXPORT_SYMBOL vmlinux 0xde9c5f88 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xde9da84e udp_poll +EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xdeeb1784 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xdef4bb52 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode +EXPORT_SYMBOL vmlinux 0xdf18312f simple_rename +EXPORT_SYMBOL vmlinux 0xdf256037 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0xdf29d595 touch_atime +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf2ebb87 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xdf36914b xa_find_after +EXPORT_SYMBOL vmlinux 0xdf4373e6 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf556104 nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0xdf6b082f proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf93b9d8 timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0xdf997bb2 inet_add_protocol +EXPORT_SYMBOL vmlinux 0xdf9bd84f eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0xdfbe0653 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xdfbec682 filemap_fault +EXPORT_SYMBOL vmlinux 0xdfc12ef1 zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0xdfcb2db9 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xdfcc992c current_work +EXPORT_SYMBOL vmlinux 0xdfd4b5b4 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0xdfdafbc7 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0xdfe5afcf vfs_get_tree +EXPORT_SYMBOL vmlinux 0xdff905e5 vme_slave_free +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe012e8fc rproc_add +EXPORT_SYMBOL vmlinux 0xe0171493 nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0xe02c9c92 __xa_erase +EXPORT_SYMBOL vmlinux 0xe02d0b3c inet6_bind +EXPORT_SYMBOL vmlinux 0xe03a689d dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe046a9b8 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0xe052ce44 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xe06bfc40 pci_set_master +EXPORT_SYMBOL vmlinux 0xe06f6ed7 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xe070019a __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0xe070e72a devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe0788873 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe07e5f44 acpi_reconfig_notifier_unregister +EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups +EXPORT_SYMBOL vmlinux 0xe082e88d acpi_check_address_range +EXPORT_SYMBOL vmlinux 0xe091c977 list_sort +EXPORT_SYMBOL vmlinux 0xe09fa07c tcp_child_process +EXPORT_SYMBOL vmlinux 0xe0a323f6 __do_once_slow_start +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b3f279 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0c85404 udplite_prot +EXPORT_SYMBOL vmlinux 0xe0c91179 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0xe0d15775 genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0xe0fca103 dquot_initialize +EXPORT_SYMBOL vmlinux 0xe10b450e vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11842d4 rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0xe121d901 mark_buffer_write_io_error +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 0xe1457881 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0xe145a7e8 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0xe14f8387 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xe1525579 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xe18311ef drop_super +EXPORT_SYMBOL vmlinux 0xe18cd866 genl_register_family +EXPORT_SYMBOL vmlinux 0xe19ae4fe devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xe1d2d46f current_time +EXPORT_SYMBOL vmlinux 0xe1daec32 vfs_create_mount +EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format +EXPORT_SYMBOL vmlinux 0xe1e209cc blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0xe1ef496c dquot_free_inode +EXPORT_SYMBOL vmlinux 0xe1f87b2d pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0xe2011c1e tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xe2089ad3 from_kgid_munged +EXPORT_SYMBOL vmlinux 0xe2172e02 cpu_hwcaps +EXPORT_SYMBOL vmlinux 0xe218dcb1 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xe21f18ac __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0xe22c0255 mdio_device_register +EXPORT_SYMBOL vmlinux 0xe23a0276 generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0xe2534ece tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0xe268107f iproc_msi_exit +EXPORT_SYMBOL vmlinux 0xe26c1b4c tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xe271128b cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0xe273d75d alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0xe28a28bd skb_queue_purge +EXPORT_SYMBOL vmlinux 0xe2944a65 stream_open +EXPORT_SYMBOL vmlinux 0xe29fa629 tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0xe2a9ee5c devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xe2b92bf3 sock_set_reuseport +EXPORT_SYMBOL vmlinux 0xe2c009d7 tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dbf408 unlock_rename +EXPORT_SYMBOL vmlinux 0xe2f862a4 follow_down_one +EXPORT_SYMBOL vmlinux 0xe31f2668 register_md_personality +EXPORT_SYMBOL vmlinux 0xe32179da ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0xe325e0a7 simple_open +EXPORT_SYMBOL vmlinux 0xe32719bc nf_log_unregister +EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest +EXPORT_SYMBOL vmlinux 0xe3481b94 __post_watch_notification +EXPORT_SYMBOL vmlinux 0xe356d23f blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xe358e235 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xe36ec8b9 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0xe3706d33 inet_release +EXPORT_SYMBOL vmlinux 0xe38f97ee copy_page_to_iter +EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 +EXPORT_SYMBOL vmlinux 0xe39fc4ac simple_link +EXPORT_SYMBOL vmlinux 0xe3aa89bb key_move +EXPORT_SYMBOL vmlinux 0xe3c10bd4 __d_lookup_done +EXPORT_SYMBOL vmlinux 0xe3c4c744 netlink_unicast +EXPORT_SYMBOL vmlinux 0xe3ceaf13 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0xe3d71b7d backlight_device_register +EXPORT_SYMBOL vmlinux 0xe3da9492 proto_unregister +EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe40976c0 pnp_range_reserved +EXPORT_SYMBOL vmlinux 0xe40c37ea down_write_trylock +EXPORT_SYMBOL vmlinux 0xe42b2de2 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xe4329092 __ctzdi2 +EXPORT_SYMBOL vmlinux 0xe43c7d90 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xe46021ca _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xe471e44a security_path_mknod +EXPORT_SYMBOL vmlinux 0xe478fa35 clkdev_add +EXPORT_SYMBOL vmlinux 0xe47c23a5 unregister_key_type +EXPORT_SYMBOL vmlinux 0xe489a085 devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xe4a2d3c4 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xe4a50517 vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0xe4bbc1dd kimage_voffset +EXPORT_SYMBOL vmlinux 0xe4bc2c2f hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe4ce9e3c mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0xe4e8ddde build_skb_around +EXPORT_SYMBOL vmlinux 0xe5016cd6 follow_down +EXPORT_SYMBOL vmlinux 0xe504f7cf _dev_warn +EXPORT_SYMBOL vmlinux 0xe5162407 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0xe51d84c3 __brelse +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe53605e9 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xe55a5fab tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0xe56a4ef1 blk_get_queue +EXPORT_SYMBOL vmlinux 0xe57feefb qcom_scm_ocmem_unlock +EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0xe5b087cd md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xe5bfa712 user_revoke +EXPORT_SYMBOL vmlinux 0xe5c60bd2 percpu_counter_set +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe613a798 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0xe6245c94 flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0xe62bd65e unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xe63a1872 init_special_inode +EXPORT_SYMBOL vmlinux 0xe644d679 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0xe645bd75 tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0xe6550092 utf8_casefold +EXPORT_SYMBOL vmlinux 0xe65851c6 tty_unlock +EXPORT_SYMBOL vmlinux 0xe67d932d pci_request_irq +EXPORT_SYMBOL vmlinux 0xe68efe41 _raw_write_lock +EXPORT_SYMBOL vmlinux 0xe6a87f3e of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0xe6e3600d find_inode_nowait +EXPORT_SYMBOL vmlinux 0xe6fa06a2 rename_lock +EXPORT_SYMBOL vmlinux 0xe7145f8c input_set_timestamp +EXPORT_SYMBOL vmlinux 0xe7257ab8 xa_store_range +EXPORT_SYMBOL vmlinux 0xe73f8531 generic_setlease +EXPORT_SYMBOL vmlinux 0xe7570708 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xe7698027 ioremap_cache +EXPORT_SYMBOL vmlinux 0xe7929227 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xe7a02573 ida_alloc_range +EXPORT_SYMBOL vmlinux 0xe7a38316 security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0xe7aacf80 release_sock +EXPORT_SYMBOL vmlinux 0xe7ab1ecc _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0xe7b0353b __cpu_active_mask +EXPORT_SYMBOL vmlinux 0xe7cccfbd devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7deca1a skb_queue_head +EXPORT_SYMBOL vmlinux 0xe7fee9f8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xe815fca0 security_sb_remount +EXPORT_SYMBOL vmlinux 0xe82308a1 tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0xe8330a5a call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe8343ae1 flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0xe85a46b9 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xe85f2123 acpi_tb_unload_table +EXPORT_SYMBOL vmlinux 0xe87f06d6 tso_start +EXPORT_SYMBOL vmlinux 0xe8b5c3c3 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xe8d207e5 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xe8d3efbb napi_gro_flush +EXPORT_SYMBOL vmlinux 0xe8e6da1d pnp_release_card_device +EXPORT_SYMBOL vmlinux 0xe8fbf4fa __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xe90253f0 xudma_rflow_get +EXPORT_SYMBOL vmlinux 0xe90879e8 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0xe909997a bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0xe909fb04 i2c_transfer +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe920d64f scsi_done_direct +EXPORT_SYMBOL vmlinux 0xe9241f49 param_get_ushort +EXPORT_SYMBOL vmlinux 0xe925b829 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xe928fca4 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0xe93aec14 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xe93b3e72 phy_validate_pause +EXPORT_SYMBOL vmlinux 0xe94344c6 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0xe94d6523 skb_pull +EXPORT_SYMBOL vmlinux 0xe9536980 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe96afb48 md_write_end +EXPORT_SYMBOL vmlinux 0xe9761571 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xe976b57e vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0xe97ca1d9 amba_driver_register +EXPORT_SYMBOL vmlinux 0xe9902fdf fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xe9933c66 filemap_flush +EXPORT_SYMBOL vmlinux 0xe9a3aa87 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe9af7397 __xa_set_mark +EXPORT_SYMBOL vmlinux 0xe9dc12a4 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0xe9e1104f blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0xe9e8faeb efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0xe9ed4b42 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xe9f017a9 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9ffc063 down_trylock +EXPORT_SYMBOL vmlinux 0xea07be66 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xea0f3aee input_get_timestamp +EXPORT_SYMBOL vmlinux 0xea1c3e3a arm_smccc_1_2_hvc +EXPORT_SYMBOL vmlinux 0xea1c999e sock_i_uid +EXPORT_SYMBOL vmlinux 0xea2e7c29 of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0xea38974a jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xea38da71 dquot_acquire +EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int +EXPORT_SYMBOL vmlinux 0xea69ef3a cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0xea6ffc98 devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0xea72f0cd unregister_console +EXPORT_SYMBOL vmlinux 0xea730353 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xea778fab sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0xea77cb54 vfs_iter_read +EXPORT_SYMBOL vmlinux 0xea86e6de netlink_net_capable +EXPORT_SYMBOL vmlinux 0xeaa29ae8 tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0xeab6f4c4 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xeac92c4f flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0xead8c400 bman_get_bpid +EXPORT_SYMBOL vmlinux 0xeae0b294 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae49da0 netpoll_setup +EXPORT_SYMBOL vmlinux 0xeafabda9 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeb078aee _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xeb07dabb netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0xeb109f6a config_item_init_type_name +EXPORT_SYMBOL vmlinux 0xeb112cf4 migrate_page_states +EXPORT_SYMBOL vmlinux 0xeb1974c9 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xeb233a45 __kmalloc +EXPORT_SYMBOL vmlinux 0xeb2b2fa7 rproc_boot +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3dedf0 kill_anon_super +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb4b1168 kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0xeb7329a2 qcom_scm_set_warm_boot_addr +EXPORT_SYMBOL vmlinux 0xeb7f6046 acpi_get_devices +EXPORT_SYMBOL vmlinux 0xeb8db0f5 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0xeb8fda61 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xeb91bd97 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xeb99f86a devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xeb9e1571 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xeb9e913d sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint +EXPORT_SYMBOL vmlinux 0xebddc95d arp_send +EXPORT_SYMBOL vmlinux 0xebe0dd72 redraw_screen +EXPORT_SYMBOL vmlinux 0xebe8b479 register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0xebee85e5 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xebf7a834 bioset_exit +EXPORT_SYMBOL vmlinux 0xebfcf368 fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0xec0ace16 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0xec22e771 logfc +EXPORT_SYMBOL vmlinux 0xec2b8a42 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xec2e1c8f proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0xec33c668 __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xec41716a qman_alloc_fqid_range +EXPORT_SYMBOL vmlinux 0xec4a325c dquot_quota_off +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec545416 gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0xec62c174 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xec838110 simple_nosetlease +EXPORT_SYMBOL vmlinux 0xec918e20 ihold +EXPORT_SYMBOL vmlinux 0xecac74e6 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0xecc0b1e3 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xece7b993 dev_load +EXPORT_SYMBOL vmlinux 0xecfd68ef acpi_get_node +EXPORT_SYMBOL vmlinux 0xed00c4fb acpi_os_printf +EXPORT_SYMBOL vmlinux 0xed0c6b70 xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0xed1941b7 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xed238617 __put_cred +EXPORT_SYMBOL vmlinux 0xed55f929 acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0xed58369e vfs_get_fsid +EXPORT_SYMBOL vmlinux 0xed5b802d clear_nlink +EXPORT_SYMBOL vmlinux 0xed652357 kobject_del +EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable +EXPORT_SYMBOL vmlinux 0xed663dab tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0xed679067 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xed6ad1ce netif_schedule_queue +EXPORT_SYMBOL vmlinux 0xed7d007a dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0xed8a2d95 memset64 +EXPORT_SYMBOL vmlinux 0xed90bdee __nla_put +EXPORT_SYMBOL vmlinux 0xed91cd8d invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xed996fbf pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0xeda256a5 poll_initwait +EXPORT_SYMBOL vmlinux 0xedaf1e65 inode_init_always +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbd3b97 unpin_user_pages +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc45507 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout +EXPORT_SYMBOL vmlinux 0xede6a3bc flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0xedf4bac1 pci_iomap_range +EXPORT_SYMBOL vmlinux 0xee2aa115 default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee49c4cc mmc_erase +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee72cd09 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xee7867a2 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0xee7bd0d8 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xee7d7deb gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee883b06 __vmalloc_array +EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit +EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea1bec0 do_splice_direct +EXPORT_SYMBOL vmlinux 0xeea446a6 bio_free_pages +EXPORT_SYMBOL vmlinux 0xeea492d6 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeead0ebc seq_putc +EXPORT_SYMBOL vmlinux 0xeeb86f0d pcim_set_mwi +EXPORT_SYMBOL vmlinux 0xeebc3d84 get_watch_queue +EXPORT_SYMBOL vmlinux 0xeec69cdc ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0xeedb304d phy_attached_info +EXPORT_SYMBOL vmlinux 0xeee75d91 ucc_fast_init +EXPORT_SYMBOL vmlinux 0xeefffa58 page_pool_create +EXPORT_SYMBOL vmlinux 0xef209b19 irq_set_chip +EXPORT_SYMBOL vmlinux 0xef26daeb __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xef451a19 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xef4d3967 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xef547c48 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xef706db8 filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0xef8ac53d qcom_scm_restore_sec_cfg +EXPORT_SYMBOL vmlinux 0xef9ac82b ip_frag_init +EXPORT_SYMBOL vmlinux 0xefa25267 phy_find_first +EXPORT_SYMBOL vmlinux 0xefa32c69 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work +EXPORT_SYMBOL vmlinux 0xefcea2e7 acpi_warning +EXPORT_SYMBOL vmlinux 0xefd2249b configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0xefeb561b arp_create +EXPORT_SYMBOL vmlinux 0xefee932c acpi_get_data_full +EXPORT_SYMBOL vmlinux 0xefeefc09 __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xeff5303d tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0xefff2394 pci_bus_type +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00b16a4 backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0xf01b8544 pci_request_region +EXPORT_SYMBOL vmlinux 0xf02aa937 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xf036e3ba tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xf04bcb5a sk_mc_loop +EXPORT_SYMBOL vmlinux 0xf04c0a85 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xf050991d ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0xf07fb1a7 netif_tx_unlock +EXPORT_SYMBOL vmlinux 0xf081f051 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page +EXPORT_SYMBOL vmlinux 0xf0a71b1b revert_creds +EXPORT_SYMBOL vmlinux 0xf0b2419f cmd_db_read_aux_data +EXPORT_SYMBOL vmlinux 0xf0dc783b sock_no_linger +EXPORT_SYMBOL vmlinux 0xf0e47ae7 register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0xf0e7015d freeze_super +EXPORT_SYMBOL vmlinux 0xf1007d7a devfreq_update_target +EXPORT_SYMBOL vmlinux 0xf1007f53 kernel_bind +EXPORT_SYMBOL vmlinux 0xf11505bf dquot_resume +EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0xf12d0874 fman_register_intr +EXPORT_SYMBOL vmlinux 0xf13bcf75 copy_string_kernel +EXPORT_SYMBOL vmlinux 0xf13eae27 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xf161ae35 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0xf16da503 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf181a4de clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0xf18300ad logic_inb +EXPORT_SYMBOL vmlinux 0xf18412dd neigh_for_each +EXPORT_SYMBOL vmlinux 0xf189caf5 d_rehash +EXPORT_SYMBOL vmlinux 0xf18e0cdb page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xf197f363 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0xf19f76fa find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xf1a2a845 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xf1a35516 get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0xf1a65f7b zstd_reset_dstream +EXPORT_SYMBOL vmlinux 0xf1a9c562 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf1bbcb0e cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ea25a4 dquot_drop +EXPORT_SYMBOL vmlinux 0xf1f1a7ef vfs_mknod +EXPORT_SYMBOL vmlinux 0xf215273b skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0xf218a69b blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xf22242b8 __devm_release_region +EXPORT_SYMBOL vmlinux 0xf223449f mii_check_link +EXPORT_SYMBOL vmlinux 0xf224a8a9 md_write_start +EXPORT_SYMBOL vmlinux 0xf22999bb bprm_change_interp +EXPORT_SYMBOL vmlinux 0xf22eec9f ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0xf233a38a fb_blank +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24613cf sock_pfree +EXPORT_SYMBOL vmlinux 0xf24fe06f dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xf25e76ba security_unix_may_send +EXPORT_SYMBOL vmlinux 0xf2626631 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xf2628676 zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0xf2669a2c imx_scu_irq_register_notifier +EXPORT_SYMBOL vmlinux 0xf27c724d fman_set_port_params +EXPORT_SYMBOL vmlinux 0xf286508f devfreq_update_interval +EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf29403e5 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0xf29f8515 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xf2c1656d sk_capable +EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate +EXPORT_SYMBOL vmlinux 0xf2cac283 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xf2cb4b47 genphy_resume +EXPORT_SYMBOL vmlinux 0xf2d59930 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2ed67d9 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf2f53617 memregion_free +EXPORT_SYMBOL vmlinux 0xf3107926 sha224_update +EXPORT_SYMBOL vmlinux 0xf31950d3 seq_release_private +EXPORT_SYMBOL vmlinux 0xf341ee35 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3690510 unix_detach_fds +EXPORT_SYMBOL vmlinux 0xf36f42a9 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xf378f059 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39383a1 backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0xf39f0456 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0xf3a57892 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0xf3daf445 amba_release_regions +EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource +EXPORT_SYMBOL vmlinux 0xf3e29972 no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0xf3f1d6cd phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xf3fc8a70 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0xf41c38de vfs_ioctl +EXPORT_SYMBOL vmlinux 0xf42616a5 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0xf42691b3 file_fdatawait_range +EXPORT_SYMBOL vmlinux 0xf42dc2fd in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xf4311eed try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xf431de0e __dquot_free_space +EXPORT_SYMBOL vmlinux 0xf4367aa8 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xf43d2caa acpi_remove_interface +EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier +EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const +EXPORT_SYMBOL vmlinux 0xf475931c add_to_pipe +EXPORT_SYMBOL vmlinux 0xf485334b get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0xf48ccb0b scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xf4a08aa3 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0xf4aa9b51 vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xf4b257a3 param_ops_int +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4cc6cb5 pcibus_to_node +EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy +EXPORT_SYMBOL vmlinux 0xf4e4ec7e security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf51cbcd8 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xf5376ce3 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xf53bf07f sock_no_connect +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54200db tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xf54249ef folio_write_one +EXPORT_SYMBOL vmlinux 0xf5621ee7 rtnl_create_link +EXPORT_SYMBOL vmlinux 0xf564f594 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xf56f9c4b tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xf591753d nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf59f19d5 mmc_retune_release +EXPORT_SYMBOL vmlinux 0xf5a20ed2 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0xf5a5683e tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0xf5add0ae ns_capable_setid +EXPORT_SYMBOL vmlinux 0xf5b4fdd6 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0xf5bab055 devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0xf60aae53 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xf624b21d netdev_features_change +EXPORT_SYMBOL vmlinux 0xf62c39fe ucc_slow_graceful_stop_tx +EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module +EXPORT_SYMBOL vmlinux 0xf66942a3 pci_map_rom +EXPORT_SYMBOL vmlinux 0xf66a4429 nd_dax_probe +EXPORT_SYMBOL vmlinux 0xf6752a6f mmc_start_request +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68a303a _dev_alert +EXPORT_SYMBOL vmlinux 0xf6c1d2a7 arp_xmit +EXPORT_SYMBOL vmlinux 0xf6df8d47 rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0xf6e344b2 md_check_recovery +EXPORT_SYMBOL vmlinux 0xf6e3d838 blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0xf6ea5319 dma_free_attrs +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6edd80f blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free +EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor +EXPORT_SYMBOL vmlinux 0xf70dc426 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xf7210492 pci_write_config_word +EXPORT_SYMBOL vmlinux 0xf72af657 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xf72d3a77 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xf7370f56 system_state +EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xf75367a3 vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0xf753a3a1 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xf762c868 pagecache_get_page +EXPORT_SYMBOL vmlinux 0xf7670120 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xf76843b5 qcom_scm_pas_supported +EXPORT_SYMBOL vmlinux 0xf77337a1 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0xf77555cd __memcpy_toio +EXPORT_SYMBOL vmlinux 0xf77981c4 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xf77b0c35 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf78795ac get_thermal_instance +EXPORT_SYMBOL vmlinux 0xf787d274 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xf7907527 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0xf796c4ca vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xf7b1d349 mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0xf7c48778 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7c8d570 simple_write_begin +EXPORT_SYMBOL vmlinux 0xf7d2578d __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xf7d31de9 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0xf7d76f1b xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xf7da6e6f acpi_unload_table +EXPORT_SYMBOL vmlinux 0xf7de8d92 __ps2_command +EXPORT_SYMBOL vmlinux 0xf7e2e453 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xf7ea6311 qman_p_poll_dqrr +EXPORT_SYMBOL vmlinux 0xf7f05c17 fman_port_use_kg_hash +EXPORT_SYMBOL vmlinux 0xf80a0077 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf8167906 eth_gro_receive +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82d477e of_device_alloc +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf84bd6ee bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0xf85133ec pnp_is_active +EXPORT_SYMBOL vmlinux 0xf866b00c tegra_io_pad_power_enable +EXPORT_SYMBOL vmlinux 0xf87d937e tty_port_hangup +EXPORT_SYMBOL vmlinux 0xf888ca21 sg_init_table +EXPORT_SYMBOL vmlinux 0xf88bf303 sock_alloc +EXPORT_SYMBOL vmlinux 0xf8b6b649 pci_reenable_device +EXPORT_SYMBOL vmlinux 0xf8bd19eb xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xf8bef32b ptp_clock_register +EXPORT_SYMBOL vmlinux 0xf8cb588e dev_addr_mod +EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0xf8d2bc2c zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0xf8d4e03c jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf8da2ea4 bdevname +EXPORT_SYMBOL vmlinux 0xf8ea3aa6 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var +EXPORT_SYMBOL vmlinux 0xf91b89ab fman_sp_build_buffer_struct +EXPORT_SYMBOL vmlinux 0xf920f428 dev_mc_add +EXPORT_SYMBOL vmlinux 0xf93aae46 __arm_smccc_smc +EXPORT_SYMBOL vmlinux 0xf93acf00 get_tz_trend +EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xf94c8f62 fqdir_init +EXPORT_SYMBOL vmlinux 0xf94cc732 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xf94e9117 mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0xf95c619b acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xf95dff61 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xf969e188 dma_fence_array_next +EXPORT_SYMBOL vmlinux 0xf9722676 twl_i2c_write +EXPORT_SYMBOL vmlinux 0xf983a724 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0xf9857529 vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0xf987f46a truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xf998fe6e xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9ad0504 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xf9b97cf0 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xf9be270f mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf9bf8a12 tegra_dfll_resume +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9ca2eb4 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xf9ce8cd2 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0xf9e68848 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0xf9efbb75 dquot_get_state +EXPORT_SYMBOL vmlinux 0xfa042227 gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0xfa063c8a fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end +EXPORT_SYMBOL vmlinux 0xfa297415 acpi_map_pxm_to_node +EXPORT_SYMBOL vmlinux 0xfa2e5f32 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0xfa2e9edd max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa72a3ce flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0xfa835a92 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xfa951158 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0xfa9637b5 gro_cells_receive +EXPORT_SYMBOL vmlinux 0xfaa3c6d6 finish_no_open +EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0xfab4a2d6 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0xfac32c6e fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfac8ccf3 pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0xfad71eb6 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xfaf7ec24 pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0xfafb1918 mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0xfb053f58 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xfb061a96 unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xfb2be359 km_policy_notify +EXPORT_SYMBOL vmlinux 0xfb348fea fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf +EXPORT_SYMBOL vmlinux 0xfb386e6e twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xfb44b429 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xfb603abd pci_irq_vector +EXPORT_SYMBOL vmlinux 0xfb6413b5 file_remove_privs +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb76ef90 __breadahead_gfp +EXPORT_SYMBOL vmlinux 0xfb79fe84 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0xfb7aa489 __inet_hash +EXPORT_SYMBOL vmlinux 0xfb894a98 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xfb907893 __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0xfba7ddd2 match_u64 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbad3cf0 scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0xfbb85703 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0xfbb8a761 strscpy_pad +EXPORT_SYMBOL vmlinux 0xfbc2a46f file_path +EXPORT_SYMBOL vmlinux 0xfbc4f89e io_schedule_timeout +EXPORT_SYMBOL vmlinux 0xfbe39ddd jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0xfbe4b175 qman_create_cgr +EXPORT_SYMBOL vmlinux 0xfbe8ee28 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0xfbf806a1 ip_defrag +EXPORT_SYMBOL vmlinux 0xfc03ddeb vfs_get_super +EXPORT_SYMBOL vmlinux 0xfc336d2e __wake_up_bit +EXPORT_SYMBOL vmlinux 0xfc36d4b4 imx_scu_enable_general_irq_channel +EXPORT_SYMBOL vmlinux 0xfc37ec58 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xfc4152fc ec_read +EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0xfc4da7a9 configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0xfc52abc7 qcom_scm_pas_shutdown +EXPORT_SYMBOL vmlinux 0xfc7c1299 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0xfc7c744c tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0xfc806ed7 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xfc881b89 fman_port_get_hash_result_offset +EXPORT_SYMBOL vmlinux 0xfc938fcf forget_cached_acl +EXPORT_SYMBOL vmlinux 0xfc9ed8c3 qcom_scm_ice_available +EXPORT_SYMBOL vmlinux 0xfcb45124 __free_pages +EXPORT_SYMBOL vmlinux 0xfcce2f7d ucc_fast_enable +EXPORT_SYMBOL vmlinux 0xfccf8e15 input_copy_abs +EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcefdf4b done_path_create +EXPORT_SYMBOL vmlinux 0xfcf56459 d_move +EXPORT_SYMBOL vmlinux 0xfd08e156 __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xfd0bbf2e eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0xfd0c6f22 dev_uc_sync +EXPORT_SYMBOL vmlinux 0xfd1609ce fifo_set_limit +EXPORT_SYMBOL vmlinux 0xfd1febde netdev_name_in_use +EXPORT_SYMBOL vmlinux 0xfd26aba8 rproc_get_by_child +EXPORT_SYMBOL vmlinux 0xfd2b0d83 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xfd44cf84 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xfd45f6cb key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xfd532db3 fs_context_for_submount +EXPORT_SYMBOL vmlinux 0xfd672415 __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0xfd86ec0b get_task_cred +EXPORT_SYMBOL vmlinux 0xfd8fd3a4 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0xfdcb4ed3 acpi_os_get_line +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfdd79d43 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0xfdf3ae73 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0xfdfcf390 cdev_device_del +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe080a0c iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0xfe1d2e94 key_create_or_update +EXPORT_SYMBOL vmlinux 0xfe306d98 sk_dst_check +EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe49a0a0 devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe65922e filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xfe667467 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0xfe67318b inode_io_list_del +EXPORT_SYMBOL vmlinux 0xfe71ca0b pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0xfe7d6be5 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xfe8c61f0 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xfe8d48c0 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xfe916dc6 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0xfe980c89 inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0xfe9d97fd update_devfreq +EXPORT_SYMBOL vmlinux 0xfe9ebbbb acpi_osi_is_win8 +EXPORT_SYMBOL vmlinux 0xfeb5d0aa verify_spi_info +EXPORT_SYMBOL vmlinux 0xfeb9fb31 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xfed165a9 generic_permission +EXPORT_SYMBOL vmlinux 0xfed8656d udp_disconnect +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee2c31e d_obtain_root +EXPORT_SYMBOL vmlinux 0xfee3149f mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef216eb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xfefcb98e vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0xff0f03ed skb_split +EXPORT_SYMBOL vmlinux 0xff1479e7 __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff282521 rfkill_register +EXPORT_SYMBOL vmlinux 0xff29e62e fwnode_irq_get +EXPORT_SYMBOL vmlinux 0xff4257a2 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xff4291ee reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0xff4b3f2f inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xff5674e8 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0xff59dab6 module_refcount +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6f7129 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0xff77c4d1 netdev_crit +EXPORT_SYMBOL vmlinux 0xff7945a4 module_put +EXPORT_SYMBOL vmlinux 0xff7e7f8d kryo_l2_set_indirect_reg +EXPORT_SYMBOL vmlinux 0xff87cd18 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0xff89a8f9 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0xffac2dbc get_phy_device +EXPORT_SYMBOL vmlinux 0xffb7c514 ida_free +EXPORT_SYMBOL vmlinux 0xffc4f200 zstd_compress_stream +EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0xffcf70b3 pci_read_config_dword +EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0xfffa4690 drm_firmware_drivers_only +EXPORT_SYMBOL_GPL crypto/af_alg 0x1dd12481 af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x46409bad af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x61835ae7 af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x77306bfe af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x783ca66c af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x82e1aad6 af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x8d7091da af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0x9690967a af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x97d0687d af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x9d2387b0 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0xa20abe5f af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xaaff16b4 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xac0389db af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xc4d73eb3 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0xc6ccfd7c af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0xd1267554 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xd2004d42 af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0xfeeb5dda af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x9b6ca31b async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa508680e async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd7558ac7 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x528d6868 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xefd4db84 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x42a4c065 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x770503f8 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9369210d async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb9dee77c __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x33899fe9 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6d8cda89 async_xor_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x9c45ca73 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xb7606e1e async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xe565ded0 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x5023f5c0 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x45079b8c cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 +EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0c7ef78a cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x420a9a47 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x4328ccbe cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x4416e47e cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x625169b8 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x66652bbc cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x68db3fee cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x97e6c694 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xa6b37976 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xad5f6585 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xc4ab190c cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc5cf7f66 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xcc96f461 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0eae7585 crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x13b848b9 crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x1cb1039a crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x2b3b45ac crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x53bbb7de crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x5a41c909 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x5f24641b crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6159630f crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x69328366 crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x843f4c7e crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x866b4e04 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x89d79b7e crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x91d2d148 crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x97d171e0 crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xf4b11b25 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xdc4ea09a serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update +EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0xfa81970e sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0xadedbd12 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x141cfb27 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2667050e spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2ab1cdd7 spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2b9a9bf0 synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x302a2ce9 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x449e137d spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x589803a5 spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x68bed2e3 synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x69aaae85 spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x6f98aee8 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x84dad068 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x867719bf spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8c82dfca synth_request_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8fe0db01 synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x924f57fd spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaadb0612 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaf10fc8f synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xb734cb9d speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbf99217c spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc319c604 synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6a06d16 spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6fc684f spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd8fd86cf synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd93829dd speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe194d0ef synth_printf +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x44b5da6c __acpi_nvdimm_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x4639bcda acpi_nfit_shutdown +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x497501f7 acpi_nfit_ctl +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x499bbf57 nfit_get_smbios_id +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x5556cab6 __acpi_nfit_notify +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x7886280a acpi_nfit_init +EXPORT_SYMBOL_GPL drivers/acpi/nfit/nfit 0x972d51f1 acpi_nfit_desc_init +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0x67927a0d platform_profile_notify +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xbfe36436 platform_profile_remove +EXPORT_SYMBOL_GPL drivers/acpi/platform_profile 0xcac33cd4 platform_profile_register +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xd2138364 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x47ba4b41 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x8b45326c charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xd3e29970 charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf3304696 charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf883c540 charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8585e5fd hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8d4f3fa4 hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xa22afdaa hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xc369090d hd44780_common_shift_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xf360d788 hd44780_common_fontsize +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/auxdisplay/line-display 0x42109eea linedisp_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0xc22e0802 linedisp_register +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x1192a299 __devm_regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0xbb8f642d __regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0xd9196969 regmap_ac97_default_volatile +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x1d4be509 __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x516ba864 __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0xe21097d5 __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x3b7c2fc1 __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x7c22470a __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x50b52d87 __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x7bbd7af1 __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xaae37bff __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xcbf17e66 __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x5c0273e3 __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xae472200 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x39497821 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x8ad5b0a8 __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x9638e9ec __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0xb8715e70 __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x3bc66259 __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0xb1446233 __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x02de047c bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0eb8b320 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x17079d51 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x29f651ed bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x36b96c9c bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x41dca222 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x50617398 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x59d44d56 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x68ac4d93 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6b479a7b bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6bb985c9 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6d03a869 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x70ed3050 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7808b836 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7f4d8049 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8e456469 bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9f9b6e6b bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xafcda0bc bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb23c7bba bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb27fccf8 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc52ff9a7 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd9cd2df1 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xead01cf0 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfa732d47 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x3ccbac3d btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x51a812ac btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x99b3912f btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xaa80905e btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xace4cbcf btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xd47680bf btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xd8a9e9f7 btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xf6734096 btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x0ad66e13 btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x25173767 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2981fa46 btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2b051c23 btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x57326b13 btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x6aac48de btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fcfd387 btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x8ff97d02 btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x9c311bd9 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x9ccdbcba btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x9ee27f99 btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xa1c30d24 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xbe9b7048 btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xcb876941 btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xe13d8458 btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xee4a17a4 btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xfc822ccd btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x04a4c1b2 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0f27c6ee btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x38729092 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5e565ec3 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x61fc636a btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6e84be2c btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8e910b01 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb6ce724e btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc4a2f1e5 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf44f0529 btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf66f0029 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x1661cc37 btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x79e04392 btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x85807add btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x6513f0a0 qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x806a63d0 qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xa629f31e qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xcbc3c5cc qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xfafde4ac qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x09aea50c btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x59db2d2b btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x8901683e btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x8e4ac6a7 btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xaf78f260 btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xcfd0c175 btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xe1210e4c btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x1eb5b079 hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x3fe445e1 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x4d2a0e3c hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0xbe9df6d8 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x02901118 mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x2695ae9b mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xa75799f1 mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xab45dbc3 mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xc07d090c __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xcddc5bbb mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xde3a3416 mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xe9d29463 mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x02f0525e mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0bc6f4ca mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x16a515a9 mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x17a8e5b9 mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2046e733 mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x237d23fd mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x24309ab0 mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x295b594e mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3033f69f __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x38dd76fc mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x42884651 mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x5ba7563e mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x77a7e503 mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x84563525 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa593d86f mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xae8d35e0 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xb407492d mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xbb7a7708 mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc5cdba28 mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc9e7fc3c mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xcd646371 mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd595c365 mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd86d10b9 mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd91d89fd mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xeab08426 mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xebd31e4b mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf098d2e0 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf1d481bc mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xf2332702 mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfb395da0 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfe758d73 mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x042892fe moxtet_device_write +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x843cd569 moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xda56678c __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xed3907dc moxtet_device_read +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0x530b2170 sunxi_rsb_driver_register +EXPORT_SYMBOL_GPL drivers/bus/sunxi-rsb 0xdc8be618 __devm_regmap_init_sunxi_rsb +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x2660ecdc meson_clk_triphase_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x6c845129 meson_sclk_ws_inv_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/clk-phase 0x87091b6d meson_clk_phase_ops +EXPORT_SYMBOL_GPL drivers/clk/meson/sclk-div 0x3c28a952 meson_sclk_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0000139e clk_alpha_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d678ab9 qcom_reset_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e5f8a53 clk_pll_sr2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e98da3d clk_pll_vote_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x17d44071 clk_alpha_pll_hwfsm_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x183be5e6 clk_alpha_pll_agera_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1a142e7c clk_alpha_pll_fixed_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1cbd386f clk_rcg_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x20796d46 clk_trion_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x24a7abf5 clk_zonda_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x272f3204 clk_alpha_pll_fixed_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x29c40ae0 clk_alpha_pll_fixed_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2a9c7452 clk_rcg_lcc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2b0d957d clk_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2cae96b3 clk_regmap_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x30a8cb1a gdsc_gx_do_nothing_enable +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x30bbf987 clk_rcg2_shared_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x310b6341 clk_regmap_mux_closest_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3747af55 clk_rcg_bypass2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x38db4860 clk_disable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x395868a1 qcom_find_freq_floor +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3dfc2dc5 clk_branch_simple_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x405d394a clk_alpha_pll_postdiv_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x418e9cfd clk_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x4b0ed6da clk_ops_hfpll +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5111f2ad clk_rcg2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x520df3b7 clk_rcg_esc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x57172323 clk_byte_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x578eb1d6 devm_clk_register_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5a6ae327 clk_alpha_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5e6abb22 mux_div_set_src_div +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x615dbb77 clk_branch2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x618644ff qcom_cc_register_rcg_dfs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6302a81c qcom_cc_register_sleep_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x631939a9 clk_branch2_aon_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x63ee9aa4 clk_alpha_pll_fixed_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x66922845 clk_branch_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6af41b8b qcom_pll_set_fsm_mode +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6f2dc4e4 qcom_cc_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7019378d clk_pll_configure_sr_hpm_lp +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x766e9f87 clk_regmap_div_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x787e8234 qcom_find_freq +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x78b81ea0 clk_rcg2_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7a7d500f clk_fabia_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7bab6a0e qcom_cc_register_board_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7e66fd9e clk_regmap_mux_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x818f32fd qcom_find_cfg_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x866d0d4a clk_enable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x8b55eac4 clk_dyn_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x8b8647a8 clk_alpha_pll_postdiv_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x91c41c9f clk_edp_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x97488818 clk_rcg_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x97aee5db clk_is_enabled_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9c8854a1 clk_alpha_pll_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9d909edd clk_gfx3d_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f1bf2e0 clk_alpha_pll_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f241baa clk_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x9f65d71b qcom_find_src_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xaa403ee8 clk_alpha_pll_huayra_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xac2e73bf clk_alpha_pll_regs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xadc2751b clk_alpha_pll_postdiv_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xba961aa7 clk_dp_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc150d434 clk_alpha_pll_postdiv_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc2e1a6fa qcom_cc_map +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc5bdfa11 clk_byte2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xc82bd181 clk_agera_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xcf422970 clk_rcg_bypass_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xd438c1c3 clk_alpha_pll_postdiv_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xd7ab6782 clk_alpha_pll_postdiv_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xe6e14638 clk_alpha_pll_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xe816a036 clk_pll_configure_sr +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xeb3e134f qcom_cc_probe_by_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0xee838fe0 qcom_cc_really_probe +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x00190c15 sprd_div_helper_round_rate +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x025783bd sprd_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x105dc00c sprd_div_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x1311f6ff sprd_sc_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x18d9f187 sprd_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x30a7b7ff sprd_mux_helper_get_parent +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x57f63ed8 sprd_clk_regmap_init +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x789b85c4 sprd_div_helper_set_rate +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x95664ced sprd_mux_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0x9bffc3e8 sprd_mux_helper_set_parent +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xa4346b52 sprd_pll_sc_gate_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xe51e0b87 sprd_clk_probe +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xeb6c8ab6 sprd_comp_ops +EXPORT_SYMBOL_GPL drivers/clk/sprd/clk-sprd 0xfb7c9167 sprd_div_helper_recalc_rate +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x02302226 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x049e5222 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x08851da5 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x103484d6 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x24c2aa21 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x276be79b comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x292123e3 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x29d1052c comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2ae09097 comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2ddfd5a7 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2ec2164e comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x38bb67b2 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3a841c8e comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4ec89dca comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5045e455 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5153b4b4 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x597acead comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x636c59d0 comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x65ea6a86 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x69b9f1ba comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x6c268b4c comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7710bd69 comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7c5459b2 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8eb7a06d comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x9bd4a27d comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa63e959e comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbee16cde comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xc4edc393 comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcc1f827b comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xcd0c779b comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xd3fd5b8e comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe07dbc8e comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe9463391 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf429090a __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf66f04ca comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xf90763be comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x332d651b comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x3ad805e0 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x55bd80d8 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x5eddc372 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x71251ae4 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xa372509f comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xb1d9a434 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xfd930288 comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x2dc4f04f comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x38ece4b8 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x4d9795fe comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xcdeadced comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xd9017491 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xffd2db89 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x95aa0e52 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x2a4f5dfc amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x69b832b9 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x47fd647e amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x2079618d comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x49be7cea comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x688b5efd comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x6b22f94b comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xa9895402 comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xb79b20f2 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xba3b4951 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xbac7454f comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xcb0c54e2 comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xd0f6aea3 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xd76d3ba2 comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xd7b5c571 comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xf8d09051 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x08d41c33 subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0xcc62e98b subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0xe8df8577 subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x74fdaf53 das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x01719ab6 mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x255d57d7 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x2871972a mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x2d343460 mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x2d3e1fc5 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x36c6c224 mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x789cc52e mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x80def73b mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x8c96d83b mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x934f39a1 mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xc2e5e42f mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xc49002de mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xd533198c mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xe97c5710 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xee4e65b6 mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xfe017f48 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0xf7902c21 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0xffc0d3b5 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x85e75c94 ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x863a306d ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8ab47ba4 ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8f0f0901 ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0xb3e302a3 ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x06ddd552 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x37446739 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x55f6010d ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x58e84985 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x638dd089 ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x894b3d5d ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x93ec4b89 ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x95a27f28 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x99675f0a ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x9f8442f0 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xa4e50d7c ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xbb02a903 ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xce0c388c ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xe18cd651 ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xeb8e629c ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xfae28498 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x23ded5f2 ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x55276b75 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x71951b13 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x736e491b ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xa132a4ee ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xdc96daee ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x0060f39a comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x2d5fbcb4 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x40e32bc4 comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x47abb0af comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x75df101b comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x93792f50 comedi_open +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x9ba7f3f6 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/counter/counter 0x0a860d8d devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x0c44bbef counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0x27e028b3 counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x510e3988 devm_counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x572b142b counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x746e7feb counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0xc4e257d4 counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0xec2fe6aa counter_push_event +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 0xe9114aa9 ccp_enqueue_cmd +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x019d38c6 hisi_acc_sg_buf_map_to_hw_sgl +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x042f91c2 hisi_qm_pm_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x0e9a5b32 hisi_qm_sriov_enable +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x1a18c900 hisi_acc_sg_buf_unmap +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x1b765022 hisi_qm_sriov_configure +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x2197f356 hisi_qm_alg_register +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x271e8e4e hisi_qm_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x36f848b6 hisi_qm_debug_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x3ac04ae8 hisi_qm_wait_mb_ready +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x3b07494f hisi_qm_dev_slot_reset +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x440dfb79 hisi_qm_start +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x46e5e838 hisi_acc_free_sgl_pool +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4b77b048 hisi_qm_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x4e6e0df0 hisi_qm_dev_shutdown +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x500506ec hisi_qm_pm_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x52648fcb hisi_qm_start_qp +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x53845747 hisi_qm_regs_dump +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x5940d3b3 hisi_qm_diff_regs_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x6d34e449 hisi_qm_suspend +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x70b077e7 hisi_qm_diff_regs_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x75db54a4 hisi_qm_free_qps +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x7ce4380e hisi_qm_acc_diff_regs_dump +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x83e5333d hisi_qm_reset_done +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x8703228b hisi_qm_stop +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x8d689eb4 hisi_acc_create_sgl_pool +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x8dc97206 hisi_qm_debug_regs_clear +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x97d957de hisi_qm_sriov_disable +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0x9f59b622 hisi_qm_dev_err_init +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xaa810476 hisi_qm_alloc_qps_node +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xab71db1d hisi_qm_dev_err_uninit +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xabb14a6d hisi_qm_get_dfx_access +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xb5bf7d21 hisi_qm_reset_prepare +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xbfdc4a59 hisi_qm_alg_unregister +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc3ab3f4e hisi_qm_dev_err_detected +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xc9081634 hisi_qp_send +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xe73c81a7 hisi_qm_wait_task_finish +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xeaea2889 hisi_qm_stop_qp +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xf060a57b hisi_qm_resume +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xf721555f hisi_qm_put_dfx_access +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hisi_qm 0xfda8caca hisi_qm_mb +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/hpre/hisi_hpre 0xbb28e77d hisi_hpre_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/sec2/hisi_sec2 0xe01c7dfc hisi_sec_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/hisilicon/zip/hisi_zip 0xf929b5b1 hisi_zip_get_pf_driver +EXPORT_SYMBOL_GPL drivers/crypto/marvell/octeontx/octeontx-cpt 0x32e43048 otx_cpt_uc_supports_eng_type +EXPORT_SYMBOL_GPL drivers/crypto/marvell/octeontx/octeontx-cpt 0xa9bf8284 otx_cpt_eng_grp_has_eng_type +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x0f467cb1 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x569108f6 dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x96a12b9c dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x0313b404 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x0b5afa8e dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6b03e732 idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x71272b65 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8163800c do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xceff2f9f dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xd5d54b1b dw_dma_acpi_controller_free +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe672624e idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf8ed2ce9 dw_dma_acpi_controller_register +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x29a5c222 dpdmai_get_rx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x54209dc3 dpdmai_reset +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x5aaf2490 dpdmai_get_tx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x5f8e3bf9 dpdmai_close +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x72e94d8a dpdmai_set_rx_queue +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0x950a0c17 dpdmai_get_attributes +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xb12a0e5e dpdmai_open +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xb931f790 dpdmai_disable +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xd6106a41 dpdmai_enable +EXPORT_SYMBOL_GPL drivers/dma/fsl-dpaa2-qdma/dpdmai 0xea8fc294 dpdmai_destroy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x0007bf8c fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x07d96fbe fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x0d74764d fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x20aa3f6a fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x258d96b7 fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x2fa4f181 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x345d5c7b fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x39c0c0a1 fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x44ecad13 fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x4ed1862d fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x683be332 fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x77064dd4 fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x85739b43 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x8657da5b fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xd7e31ded fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xedc2e9f1 fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xef57b58d fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x2edc3135 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x9f8240b2 hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xabb5547d fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe86fb5c7 fw_card_release +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xfb7eacb4 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x5e08e110 ffa_driver_register +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x93c175cc ffa_device_unregister +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0x98f22c1e ffa_dev_ops_get +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xbba1e222 ffa_driver_unregister +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xca959507 ffa_bus_type +EXPORT_SYMBOL_GPL drivers/firmware/arm_ffa/ffa-module 0xf4793c11 ffa_device_register +EXPORT_SYMBOL_GPL drivers/firmware/arm_scpi 0x2b240ebd get_scpi_ops +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x0c8ae140 cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x0f229ba8 cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x10158d47 cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x1f9dd1e9 cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x21f9b741 cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x24adabf2 cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x3463af91 cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x466b0577 cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x50cb44bc cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x5af37882 cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x971ea60e cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb35361e9 cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb3e44b78 cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xb5b17925 cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbffa3563 cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc621175b cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc62cf274 cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xd1bd746c cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xddd993fd cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe0d4d293 cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe4ec2d31 cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe9ad2bfc cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xf11896c4 cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xfe758caa cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/mtk-adsp-ipc 0xa302b11d mtk_adsp_ipc_send +EXPORT_SYMBOL_GPL drivers/firmware/stratix10-svc 0x0e7b7015 stratix10_svc_done +EXPORT_SYMBOL_GPL drivers/firmware/stratix10-svc 0x211eb38f stratix10_svc_request_channel_byname +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/fpga/altera-pr-ip-core 0x09db86de alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1128a9a8 dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1557c940 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1856ddbd dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2b36a854 dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x305f44bf dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x50d14b55 dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x571c300b dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x5b5291ef dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x659e4251 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7092900e dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x70d102f9 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x71d2621b dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x92312564 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x9909dd88 dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xb3f33a93 dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc26cceb9 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd0944102 dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd3aa88e1 __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xd707e3db dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xda6e7b6c dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xdd01077c dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xe61abfc0 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xfdbdb24c dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0633c4b9 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x07fdefeb fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0b2b884c fpga_bridges_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2a2c10c9 fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x4389dcd1 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x54eb585b fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x5d88d392 of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x6166b7e6 fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7bfd13f8 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xcfebd629 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xf69f6810 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x01a58f4a fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x0be90f8c devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x2b5e5226 fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x34297800 fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x44fba49f fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x502e70ef fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x6caefa21 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xa594c522 fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xb725fd14 devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc38b3406 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc7843c9d fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd0f25d1c fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xdfdc4d42 fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x2428cc00 fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x646a2bee fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xba35046c fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xc98b4ee3 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xe2e9a0ff fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x1f94e10f fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x324b253b fsi_get_new_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3c86d3ee fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3ef0ba38 fsi_driver_unregister +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 0x9b715998 fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xaa8fb35e fsi_master_rescan +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xaeabede4 fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xb2bf760d fsi_driver_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xce22aee2 fsi_slave_release_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xd3c45a7f fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xd942f235 fsi_slave_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xf33987cb fsi_bus_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x7e803683 fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x5ea37e6b sbefifo_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xbb56e0ea sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x0161266b gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x498b69d7 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x637fc8fe gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x708b7919 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x7e2f2ab3 gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x0074c2a0 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x494ffb55 gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x4e578381 gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x525bea51 gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x916a05bf gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x554d8370 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xf64603ff __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x496ce291 gpio_regmap_get_drvdata +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0x84f1e4c2 devm_gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xb7066570 gpio_regmap_unregister +EXPORT_SYMBOL_GPL drivers/gpio/gpio-regmap 0xdf81971b gpio_regmap_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x355b2bc5 analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee0dd60 anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee95dab analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x570fe741 analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x9676c7ce analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xa0d35f70 analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xa50652ce analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xb92762a1 analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xd9954269 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x0307dd89 dw_hdmi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05 dw_hdmi_set_channel_count +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5 dw_hdmi_phy_i2c_set_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x1461e227 dw_hdmi_set_channel_status +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x26d629cd dw_hdmi_phy_gen2_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 0x5665b64f dw_hdmi_set_high_tmds_clock_ratio +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56875c04 dw_hdmi_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee dw_hdmi_phy_i2c_write +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x8dcd6f43 dw_hdmi_set_sample_rate +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x96f3e250 dw_hdmi_set_sample_width +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b dw_hdmi_phy_gen2_pddq +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xb6d743de dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xc59f9e6f dw_hdmi_phy_gen1_reset +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 0x2a2cc161 dw_mipi_dsi_probe +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 0x9ff12b34 dw_mipi_dsi_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0xe4fef4a1 drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x282cb5dc devm_of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x3828cfcf of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x5eb1a223 __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xd9c41112 of_dp_aux_depopulate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xdec6f7e4 dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x00acf3f0 drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0841e932 drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0858e741 drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x251bc3a0 of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x27275bdb of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4d3ac1d2 drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x528d70c3 drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x59afb4de drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6c64dbdc drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6d414040 drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x75abffc4 drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x89aef661 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x90d9d668 drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x94448da3 drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xad885165 drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xbded5832 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc889f166 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd37057f2 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf52a2a34 drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfa5f8a05 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfdbcead9 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfe9f72f3 drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x23662946 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x43af2e90 drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x503be665 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x55ae22fa drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x595ce531 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x9a858515 drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xa1137e9b drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xb3cdacd4 drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd67e3492 drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd89921eb drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd9f35d99 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xe44b48a8 drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1480ee08 drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x300995fe drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x35cd2c43 drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x46b546c5 drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x5a80f74e drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x60a08d9e drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x843f8226 drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x906ff89b drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcf166358 drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xef3f9465 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x00d7ec21 drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x02e36bb5 drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x4350aa93 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x4b436076 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x56825872 drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x663dcd8d drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xa31c928c drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xeb7e99a4 drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x2c73cfcf meson_venc_hdmi_venc_repeat +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x94a785f8 meson_venc_hdmi_supported_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x9e4d26ac 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/meson/meson-drm 0xbc6c0802 meson_vclk_dmt_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xbec2160a meson_vclk_vic_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0xcb93984d meson_vclk_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x0ccf4ecd s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x6fa886c4 s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/pl111/pl111_drm 0x70094c6c pl111_versatile_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x5ed38b0d rcar_cmm_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7f545946 rcar_cmm_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0xc35971b5 rcar_cmm_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0xfb526de5 rcar_cmm_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x10d01424 rcar_lvds_dual_link +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x225d6022 rcar_lvds_clk_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x831eacbc rcar_lvds_is_connected +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0xb399131f rcar_lvds_clk_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x35e95689 vop_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x85c7b244 vop2_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x8b2228e9 rockchip_rgb_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0xfead7585 rockchip_rgb_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x4cc1c055 ssd130x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x9f432de3 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0xefe026e7 ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00bd1706 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x02f46d26 __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x06261c91 gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1048b8c1 gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1ac278be gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1cd6e0be greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1cfc170e gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x218e7268 __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x26222e37 gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2b0d8299 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2f3d36a3 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x38b0f16b greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x400b458b __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x42aaadf2 gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x43383283 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x43eab5c0 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x48f54ef8 gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x54133bd7 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x560dc990 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x56d8068d gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5ad3f2d7 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5c0a8043 __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5d906309 __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x61030640 gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6213634d __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x672002e2 gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x725d09ef gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7c635ebe gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7e38dd7d gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7f09cf40 gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x81e221fb __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x83774f96 gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x870029fc __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x89f514a1 __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8ce4eea3 gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x92a23b7e gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x98b091bb gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9a949ca5 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9af624fd gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9c27aca0 gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa416e2da __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa52c53b2 gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xaa67e709 __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xab04e7ab gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb12e2927 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xbd53a7eb gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc2499095 greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd3e646d9 __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xe33a9f15 gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xeac79e1a __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xecd67e77 gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf107a122 __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xfea88816 gb_operation_put +EXPORT_SYMBOL_GPL drivers/hid/hid 0x002f4342 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0af75a68 hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b21367a hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0f42c5de hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14b2446b hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1cc78179 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2156bff5 hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2644422c hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x280d1052 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d2c2b07 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31e04d24 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x33540ba8 hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x39069ace hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x39701049 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a28de3e hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3a36923f hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x48aee393 hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f21a05d hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x551c2b2e hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x557a3dee hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60886d48 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x60b3d52e hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x740f6447 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a717ab5 hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x820704cc hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x838c73e0 hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a11e612 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b13a8b8 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8ede338d hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d78cb42 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa1a7e891 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb0663ca7 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb0e9cd28 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb228833c hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb4bb684e hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbee3bb42 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0120f27 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc3467c3b __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc39de378 hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc62a3cf8 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6c2844b hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd83df95e hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdc5e58e5 hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd2637c1 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe6cec3a9 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe9d202ee hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf525e235 hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf83b72fe hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8b9ad81 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf92192ce hid_hw_request +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 0xd0230a9e roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x040ab293 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x065e38f1 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x179bf50e roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x94937cf7 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xd6545337 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xfa965a5c roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1f5f18b4 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x59d1bc52 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x91d6115f hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x96901447 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xabfe88f9 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc31cbbad sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc8dfa4b6 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe4e10f5b sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xeee4f42c sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x6d6cad16 vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0xc41557af vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x07eb01df i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x432c6c15 i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x4e0f974b i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xc460bbc5 i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xd73bd9d1 i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0x9a8af1bb surface_hid_pm_ops +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0xafeef286 surface_hid_device_add +EXPORT_SYMBOL_GPL drivers/hid/surface-hid/surface_hid_core 0xb55e029a surface_hid_device_destroy +EXPORT_SYMBOL_GPL drivers/hid/uhid 0xf8c3007c uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x185afb6c usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2467c26f hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x108c523f hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2f107713 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x55275f32 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x559d8a35 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x64b7d877 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x671c1d4f hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x68291816 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x70a9cde3 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7975a4d7 hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x851a2af8 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x95de646f hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9f50c59a hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa3462a85 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdd1c9f38 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdec6b2d1 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe1e7517d hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe5298a44 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfe1cc685 hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x09a847d7 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x13d25e1c __vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x182a00df hv_pkt_iter_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2838a7a2 vmbus_next_request_id +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2b648d0e vmbus_send_modifychannel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2ca4f3d6 vmbus_sendpacket_mpb_desc +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x31567cc9 vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x31e2e77f vmbus_free_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x321055cb vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x3e4a79f8 vmbus_set_event +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x43e19eef vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x48719947 vmbus_request_addr +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x49752a1c vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x4b2210b8 vmbus_send_tl_connect_request +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x548521b1 hv_ringbuffer_get_debuginfo +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x743f204d vmbus_setevent +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x8080db02 vmbus_set_chn_rescind_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x864a992c vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x87af5d2e hv_ringbuffer_spinlock_busy +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x90aaaefb vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x95bcefe7 vmbus_connect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9be5902a vmbus_request_addr_match +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb7334109 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xcafc3d23 hv_pkt_iter_first +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd165b9e6 vmbus_allocate_mmio +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd7961a89 vmbus_free_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xdda6a143 vmbus_hvsock_device_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe259b991 vmbus_connection +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe45ff205 __hv_pkt_iter_next +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe4fb5204 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe5fa433d vmbus_alloc_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xeb2ec057 vmbus_disconnect_ring +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xfc00dff5 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x5aa085cc adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6d483309 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x6f319ea7 ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xbc54f93e ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x0f3a9ed1 nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x551e41f6 nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xb20b2c1f nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xb97ef3aa nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xdf08d450 nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xff88ef8b nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x4364175c intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x5661e4c5 intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x56d10e48 intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x6439e833 intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x6d3a2311 intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7ee10415 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x82d19f46 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x97890c1b intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xd99c3f46 intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x3fc5a33b intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x4099d82e intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x4198ab94 intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x0aa1ecdb stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x0ecd01eb stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x10941421 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x34f60d70 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x355dd911 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xc3cdaab9 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xdb0c3d6e stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xdff7394c stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xf87b9588 stm_source_write +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x373d0635 i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5e7e8499 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x75e5c5e3 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x78232487 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xa2486b12 i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x07425998 i2c_free_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xda6ead42 i2c_new_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xdd13dd7d i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xe73d4098 i2c_register_spd +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1174a3cb i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1e404a43 i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2dcb3a1b i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x33e89248 i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3629dc47 i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x422521ba i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x46733d9c i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x59f8a060 i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5e43ebd0 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x75d30865 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x88571cbf i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x8c3de6d1 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa6b1da20 i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xaae45bc9 i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xb300ac08 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xbb252bda i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xbb6fe4fa i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xbb99d90a i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xbcab4c34 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd4a5d2cd i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd751ec0d i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd7762bf9 i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd9572ff8 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xe91e549a dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xf5453643 i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x65155c39 adi_axi_adc_conv_priv +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0xf955b76f devm_adi_axi_adc_conv_register +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 0x69478664 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 0xbf3424db iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0xe0d010a8 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x1417c18e iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x2ee5f4f3 iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x311f0043 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x50b7156a iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x5e7d1a81 iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x6c3fbc64 iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x781c62bd iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x881702ad iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xb22b7ed6 iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xcd3a3929 iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xecad2735 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xf0068ff1 iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x15b75312 devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x1b4fdaa1 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 0x9671bc15 iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0xa0870bde 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 0x23dc56c0 devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0xbaa1a791 devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x3a7aa5af sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x031cbcf8 cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x458ecf51 cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x463af3ec cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x49c4b191 cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x5435cc7c cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x6a00662c cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x8d750ff7 cros_ec_sensors_push_data +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x981f91d7 cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x98294e06 cros_ec_sensors_pm_ops +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 0xd089f853 cros_ec_sensors_core_register +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0xee4df884 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x20193855 bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x23d494d8 bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xf475e1b1 bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x70762d43 fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x943f7d3e fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xe2bc5b32 fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x241d5fe7 bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x4adb0fd0 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xceb442a3 inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xddaa5e83 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xf36ceca2 inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x5f5aebd9 inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xeeb56ca6 inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0396db0f iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1324cc8f devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x15c2580e iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1ee3bd8b iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2745d0e3 __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2b81589c iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x30ac2c90 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x33f5532c iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x41e200b4 iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x485b8ab3 iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4c841a35 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dce7dd4 iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4f9077d4 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x56feb9e8 iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x58e8ad07 iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5ad007ba iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5c6ca7de iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5d543d1e iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x641edfc2 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6b212e83 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x704a4907 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x73217b14 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x80b83f40 iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x855fe3f7 devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8a8d2dcc iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8b628dff iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8d78dbac iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8e669193 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x99b4233f iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa043d9f7 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa3065df5 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa5e02d99 devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa66417a9 iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa8e455cf iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac5bba58 of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb2316653 iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb7ca0e50 devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbf1cd105 iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc4485037 iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc77dc207 devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcea02191 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcfb08208 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd2d3bf57 iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd5afad95 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd72253bf iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd831d456 iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd8629a58 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xda7b46a2 devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf0c71fe3 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf11490b0 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf197997f iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7b9a8ad __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfdbb7e1d iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x102794b2 rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x153bfc46 rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3a61b198 rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3dd02fa3 rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x63c532d8 rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x924a94cc rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa13f92b2 rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa411684d rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa8cc9af0 rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xc5b08700 rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xcd36f18d rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xe4046f11 rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xb249fa8f input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xc9ce7f15 matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x4591bfaf 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/misc/adxl34x 0xec511022 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x075db499 rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x27d3c295 rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3cd33b6b rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x4aaa23c9 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x565f06c2 rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x6e348bd1 rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7132b397 __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x826606e3 rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x829b4b35 rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x909443cc rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xa8de6193 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xe8cd3b14 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xfe38703a rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x7b78e6bd cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x8e1948a7 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc2aa9682 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x640c8029 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf73d762f cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x19bc32b4 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x87994e7f cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x37c6dd23 tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x3a80e46c tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x55dd5b6c tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xa68c12da tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4ca26b79 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5e6201a6 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x61e911fe wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x699f08fa wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x850dd5ad wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8f761c62 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x92c80138 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa509824f wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa6fc5de2 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xabbbeb06 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb82bd85b wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd986882a wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x990bf952 imx_icc_register +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0xb2c74f8f imx_icc_unregister +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0253e279 qcom_icc_bcm_voter_add +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0b39b783 qcom_icc_bcm_voter_commit +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x957b64f3 of_bcm_voter_get +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x1906ea70 qcom_icc_bcm_init +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x21df4532 qcom_icc_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x3128264f qcom_icc_rpmh_probe +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7de2454c qcom_icc_set +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x8f4597e8 qcom_icc_rpmh_remove +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0xe6be3e21 qcom_icc_xlate_extended +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0xfe4a2757 qcom_icc_pre_aggregate +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 0x14c41232 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3af7c20c ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x79addb9e ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa9edf678 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xac8dac5e ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xbc82466e ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xd2e58288 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe7dc73b4 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xefe9b13b ipack_device_del +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x1f0e8f1d led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x33f6ba5c led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x4d119652 led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x8eec6858 devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xa879b37c led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xc6a71a32 led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xd915a240 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xf4341986 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x39bf5fec led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x793f8c5a devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x85f1bcb7 led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x88d7ea1a devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xc7ce5497 led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x35667b43 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4611fa8f lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4e3fbc33 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x552a7788 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7a602d8b lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7c60989d lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x803d6369 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc4aa1801 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe667cd2d lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xeba49668 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/md/bcache/bcache 0x031eb047 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x04459d6b __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x051b2215 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0826e917 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0b449961 __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0eef250c __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x16ea7222 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x191717af __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1934a9a9 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c71a406 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x284a6bff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2909bc5d __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a0e014e __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3257d343 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x394832f0 __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46bfabee __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x529995fc __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x53b5e5e3 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x572febd3 __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x57b88c10 __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5cc8cb86 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5dc33bb0 __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x690dd415 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x73436925 __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7908ddf5 __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7a3c0ac3 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x80e3881d __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x830df522 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x862dfa21 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8ad20d61 __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x902cb523 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9865dbc4 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9961742e __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a6f4d9f __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9ce21c84 __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa14fdbcf __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa187023e __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa3bc28d2 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa64134e4 __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa842a5c8 __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xab0219ae __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xab2daabd __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xac7162bf __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb0621d17 __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb651664e __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb912ae0b __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xba843c3f __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc268695 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc15d1911 __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1857470 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5953c21 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc78d7102 __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc8ae4213 __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce3d460f __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce48d6f4 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda06fe86 __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda76e78c __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdcb7deac __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe16c06b3 __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe202b8e6 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe6bc06ff __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec92a163 __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed37c90e __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xee55d047 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef7eec02 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf6249e5f __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf865c1a2 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb3d6c67 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd6b5d80 __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x11ce8e2e 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 0x2116e005 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x27d5f840 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2a18a3f2 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 0x3673df1a dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4306c2e2 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4a889107 dm_cell_visit_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x50380ec3 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5cd0d70d dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6a2fb975 dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x753e20b2 dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7bd2936e dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x847b4282 dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x8ad77f39 dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa253b639 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 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 0xc1c68778 dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd4134420 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 0xdc56ad61 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 0x24772bfe dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x2e0774dc dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0xae9172fa dm_bufio_client_create +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 0xf241a6eb dm_bufio_forget_buffers +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 0x800ea5ac dm_cache_policy_register +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 0xb1a53ae6 dm_cache_policy_unregister +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 0x1d1823d1 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xb1901551 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 0x2059e1fd 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 0x6aa5fe2d dm_rh_bio_to_region +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 0xa5bd90ed dm_rh_inc_pending +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 0xc1b02ece dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc425c97f dm_rh_delay +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 0xfaf3c722 dm_region_hash_create +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 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2bc1a8d9 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x3646e38f dm_tm_issue_prefetches +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +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 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x64ed0be5 dm_block_manager_create +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x79bdc649 dm_sm_disk_create +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +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 0x88998224 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x88a5c035 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8db6f8f0 dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8f5eefee dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x925f421d dm_array_info_init +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 0x9341b376 dm_bitset_cursor_get_value +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 0x9718cffa dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9955fef4 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9ced228c dm_array_cursor_skip +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 0xa29d4c0c dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2a74861 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa9cf611b dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb3d7482b dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb6879c01 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb720ee73 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0d7c2d1 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0fadb13 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc36559ad dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd237b9fb dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd39c0246 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdf3a4e7d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe781f874 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe8438eb5 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf82dba90 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfce51d79 dm_array_empty +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x04df04d3 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x159e974f cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2fc86398 cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3503ee1d cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3d89eda1 cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3f63dd34 cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x40efe20b cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x466d9d7e cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x49235d7e cec_pin_changed +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x4b26e251 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6aad2b66 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7c9aafaf cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7f7e9d23 cec_pin_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x9f1357ae cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa01fbb6b cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaee236c6 cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xb6875690 cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbe4de675 cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbf7dc53a cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc16f2887 cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xd2bc784f cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xde3d2c9d cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xe2c37257 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xeacd697c cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xebcbb737 cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf125777a cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x2153aa6a saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x2ed0df12 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x4abac54e saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x75b8404b saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x8e6b64b9 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa0ddfeca saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xba88f694 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xdbb17346 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe10684df saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xfdb74c8f saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x0b32f07e saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x17cd1802 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1fc7f8ea saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x87babc38 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xc45a6572 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xcb6cc833 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xdad25f7b saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0f00b9b4 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x204f6ee0 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x40d3dff3 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4a8b5a49 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x50a016bd sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x62e5a690 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x71fd3079 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x76986f36 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7e5bc9d7 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x80e79116 smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x869f9db7 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8b23d9db smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x90da769f smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb1fa969b smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbb9e4f7b sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc8ba8e33 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd1e3ef0d smscore_unregister_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 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 0xb40fae23 tpg_g_color_order +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 0xf4aef3a4 tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46 tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x01dd8a6c vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x031b393d __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x24451812 __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2593782f __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2a0b85bd vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x35f8f32b vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x39220711 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3f544787 vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x470768f5 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x475dea76 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x495bc540 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x50c1f9ef vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x536fd4a8 vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x630b24d3 __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x65ae16de vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x683f2080 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x72b9f79f vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x80412096 vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8a3bbdaf vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x8fc3778e vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x9c0e565a vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x9d1f2f1a __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa584bc36 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xaa78c07a vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xaf15623d vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb3f69746 vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb6f4b031 __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb8682fd6 vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb9d2df39 __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7b45aa4 __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7f299f5 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd1e51d7e vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd246da33 vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd586472f __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd60f15d5 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf703a3f9 __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x0adad8b0 vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x338cc605 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x5e4cc2b5 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x751a99c5 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x00625a6a vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x015d95ba vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2ee25e5b vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2ef73d78 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2eff44b1 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x36914cb8 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3b7d877c vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3d0e4a35 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x62dffda4 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x695f39b4 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6e5b1830 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x71d75cc3 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7cdfed7c vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x811ebbfc vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x8158ade1 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x868240c6 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x9468673f vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x947a7789 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x997c143b vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa6edeee8 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa990e2f7 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xaadd2328 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xad037197 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xaf5dc55e vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb58cafc6 vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc4f376b8 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc74acde3 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc9191035 vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xdd40e9dd vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xe00745c0 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xeade04da vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf442e6e7 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xf617b745 vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xfac3a726 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0xc28871fc vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x6c754dc4 dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xc13107ee dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xeeb2b025 dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x3c7e82d6 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x856c8df0 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0xc1f682fa gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x0c425ae0 mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x1944a2f9 stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0xe81dae51 stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x2d3de522 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x37463d30 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x38c9b897 ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x0dddc3a7 max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x16535954 max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x4b4b3867 max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x503137c2 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x52c2ea6f max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x5a3a4703 max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x5eebdbe7 max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x656d1e13 max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x8a2b7661 max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xab92a736 max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xcf761c9a max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xd7445618 max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xea059e05 max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x073c72ff media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0e44b928 media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x134fc525 media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1fcddb9a __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x24259424 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x29390e4a __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3188481c __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x38411171 media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3d02383e media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3dd988dd media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4460b5da media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x470d0d42 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4870a3a2 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4d97f505 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4db18466 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4e7e806d media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5343ee12 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x54f2bf86 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5ef4891a media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x648af5e5 media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6b858569 media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x78ecf7cc media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7bfc8d11 media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7d516cdd media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x80f1ac5b media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8131ee8d __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x859ca79a media_request_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8c3a16ce media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8dcb3418 __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x90af317a media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x91a0f620 __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x93f50821 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9aa98f6a media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9b60c2a2 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9f8ab61b media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb3230663 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb7ff74c6 media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xcc7f4fb6 media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xce476669 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd0821a76 media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd54ef3c1 media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xde2837fc media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe5ceecd6 media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe8c349a9 media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe951f486 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xee11ca1c __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xee2669bf media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf33d4814 media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xfc781c47 __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x6062ab85 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0398399c mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0fb5fd27 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x274c569a mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x298015ad mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2c88f5db mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x31db7ab6 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x34e30861 mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x70bef59f mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x73ec47d5 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7cf8c095 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x819f9a7a mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x84103401 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8f9e5509 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x94689ae0 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc905cd79 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd6a0b53b mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdae68031 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdc5aa34c mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf6f080ea mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x1030a8ed saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x211be3e0 saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2258906d saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x28122e45 saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x62486801 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x82534225 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x8ac65173 saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x900325ce saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9d678303 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa0aabd89 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xc45753c6 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xcbbe1ec4 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd103c2c0 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdba7e560 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdcb04a92 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdce36733 saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe39ec469 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe3de387d saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xf1089986 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x22761bd9 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x335f81ec ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x61e33c75 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x6cb62410 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x75e65188 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 0xaea03e5b ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd8350889 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x0be325d7 nal_hevc_write_vps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x15e89d55 nal_h264_read_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x168ddb2b nal_hevc_write_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x39b985c6 nal_h264_write_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x3c2d85a6 nal_hevc_read_pps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x64a9c2ce nal_hevc_read_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x666a7d73 nal_h264_read_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x782a358b nal_h264_write_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x89178443 nal_h264_read_sps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0x8f1fd2e7 nal_h264_write_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xa06fd791 nal_hevc_read_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xc1dd5419 nal_hevc_write_filler +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xc2dc8048 nal_hevc_read_vps +EXPORT_SYMBOL_GPL drivers/media/platform/allegro-dvt/allegro 0xf18c66c7 nal_hevc_write_sps +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x008e935d mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x05733990 mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x98e05f15 mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x9f8a5b3e mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xe93c522b mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x3630756a vpu_load_firmware +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x5e508a69 vpu_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x6aeb8139 vpu_get_plat_device +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x71698e45 vpu_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x9e6c1ddd vpu_wdt_reg_handler +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0xa9236a58 vpu_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0xb0fded1d vpu_ipi_register +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0xcf70b0a0 vpu_ipi_send +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x0064697b venus_helper_get_ts_metadata +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x0aea08ab venus_helper_vb2_buf_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x0d43f2ac venus_helper_set_format_constraints +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x10043d33 venus_helper_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x110f187e venus_helper_intbufs_realloc +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x158285a7 venus_helper_set_bufsize +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x1667f521 venus_helper_vb2_start_streaming +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x19feaa47 hfi_session_unload_res +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x228ade03 hfi_session_create +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 0x28be43d2 hfi_session_deinit +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x29a16872 hfi_session_abort +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x2b03eaea venus_helper_buffers_done +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 0x2e7acc72 venus_helper_free_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x30d73eea venus_helper_get_profile_level +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x311db027 venus_helper_intbufs_free +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x448afe53 venus_helper_alloc_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x52afa0b5 venus_helper_session_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x58685d2d venus_helper_set_work_mode +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x59384c02 venus_helper_get_out_fmts +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x5f5ba414 venus_helper_set_input_resolution +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x66b35baa venus_helper_process_initial_out_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x735883af venus_helper_vb2_buf_prepare +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x73e2762f hfi_session_destroy +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x759cd14b hfi_session_get_property +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x762cbbb9 hfi_session_flush +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x898c215b venus_helper_set_multistream +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x9067e3f4 venus_helper_set_raw_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x91f11758 venus_helper_queue_dpb_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x92e2492e venus_helper_intbufs_alloc +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0x9fdba696 venus_helper_acquire_buf_ref +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xa7f5c85f venus_helper_find_buf +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xaa9f9ddc venus_helper_set_profile_level +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xaf511808 venus_helper_vb2_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xb0b3a514 hfi_session_stop +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xb3a3203b hfi_session_start +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xb457e07d hfi_session_set_property +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 0xb66f7d54 venus_helper_unregister_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xbe98f1b0 hfi_session_continue +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xbed58060 venus_helper_set_color_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xbfc3dcac hfi_session_process_buf +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xc5ef2db4 venus_helper_set_stride +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xcef184e7 venus_helper_process_initial_cap_bufs +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 0xd3849fe9 venus_helper_change_dpb_owner +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xd98c9d1a venus_helper_init_instance +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xdadc1d0d venus_helper_check_codec +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xdc9dee0a venus_helper_set_dyn_bufmode +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xe1aa612c venus_helper_check_format +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xe4f8abff venus_helper_set_num_bufs +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xe5664b17 hfi_session_init +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xec5221f9 venus_helper_set_output_resolution +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xf1bbd85b venus_helper_get_opb_size +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xf402be6e venus_helper_vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xf9e4be1f venus_helper_get_bufreq +EXPORT_SYMBOL_GPL drivers/media/platform/qcom/venus/venus-core 0xfb038bc1 venus_helper_release_buf_ref +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x3d858696 rcar_fcp_put +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x46fd74ad rcar_fcp_get_device +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x4ad5d888 rcar_fcp_enable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x5fe6f6e8 rcar_fcp_disable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x9877c29f rcar_fcp_get +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x6c45e384 vsp1_du_atomic_flush +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x876f16f3 vsp1_du_unmap_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x8b95e550 vsp1_du_setup_lif +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xbccefaf3 vsp1_du_atomic_begin +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xc28420f8 vsp1_du_atomic_update +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xcbb3a354 vsp1_du_init +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0xf9edc8b0 vsp1_du_map_sg +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x2b5a748a xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x43738fab xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x458d7f39 xvip_clr_and_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xa9e68740 xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xaca2f6a2 xvip_init_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xb67940fb xvip_get_format_by_fourcc +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xc03320c9 xvip_of_get_format +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe08e6063 xvip_get_format_by_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe1a7e001 xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe8441077 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 0xa8a0f912 xvtc_put +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0xc104a51a xvtc_of_get +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x6d48a5a1 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xd55e2886 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x00600a36 si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x5e01283c si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xa86bf103 si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xdb128806 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xefcbd6ca si470x_start +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x104692e2 ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x18af5500 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x216ba1db ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x29d32d6f rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x2ed90ced rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x366e6994 lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3ad5ee2b devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3d2f757a devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4ad5d262 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x905368a5 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x90682022 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa02e49dd rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa57e31e6 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa5811411 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa7d01541 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb4bb7234 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb960f15c rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf4038477 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfba0e99f rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfba0f75e rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfc5d3079 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x3f7fa1c2 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x94c9b46c microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x98595712 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xf77d808c r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0xfd66c317 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xc743a689 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x52ad6095 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x62a54cc2 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x3a8f30b6 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x1f2d5332 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x93d2202b tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x2a491b81 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xcc338ca1 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x049ee8cb simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0a19e996 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0d562d9c cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1525334b cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x224277c0 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x233b9799 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2abcda9f cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x43b91a36 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5a9d6996 cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x61199a08 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x773ff32a cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xad26b91d cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb415093a cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb5335d5e cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbdbec2d4 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc0f40c38 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd4d14b01 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe4b9a6f9 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe8fdb7ba cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xefffd81f cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xffe96207 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xee0cf3b7 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x7c5b02cd mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x04a47f21 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2a8f74fc em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2c060cd6 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2ed59e66 em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x31dcb20c em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x342de645 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x48228877 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x511b7e31 em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x59f107aa em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6f8c8f88 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x71d7bc86 em28xx_write_reg_bits +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 0xa268a33d em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xac4f63e8 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbf72e5b0 em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xca7946fc em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf8227a2c em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xf92e01a2 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfcff7016 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x17f3936e tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x382a118f tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5c7ecb6e tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x9d4f91eb tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x41153fd0 __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x9bc61782 v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xb0f50ed7 __v4l2_async_nf_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xbb56002d __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xc64df563 __v4l2_async_nf_add_fwnode_remote +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 0x2dd450d8 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x578c954a v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xec3b7b18 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x103c6ad2 v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x42bbf6e9 v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x4e1e0089 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x54193275 v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x56ea35bb v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x64d51a54 v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7d0020c6 v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x9011b1ac v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x921f493a v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xb5aad63c v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x639ecc68 v4l2_h264_init_reflist_builder +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x6a1429ff v4l2_h264_build_p_ref_list +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0xf568bf81 v4l2_h264_build_b_ref_lists +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x30b5ebc6 v4l2_jpeg_parse_scan_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xcbfdf5cb v4l2_jpeg_parse_frame_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xe8956e3f v4l2_jpeg_parse_huffman_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xe8f40f9e v4l2_jpeg_parse_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0xf8ffd565 v4l2_jpeg_parse_quantization_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x06692c33 v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0a71ad23 v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1d38e8d0 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1dc78123 v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x203a059c v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x29de0b37 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x310e099b v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x36f336c1 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x371cb5f2 v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x386f7d1c v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3b4fb082 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x42a0e7e4 v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x49353284 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4e6f8998 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x563e976f v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x58d957fe v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x642983e4 v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6a29ff37 v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6b746276 v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x71e640de v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x77a38534 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7cf68bf7 v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x80fe4020 v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x85ca012c v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x85e94274 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x87b3fb0c v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x87c89374 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x88af85c9 v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8aa3cf2c v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9150ee7c v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x91e76fd6 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x926f9290 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x930a7a3d v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x934a8223 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xacfd5829 v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb25c42e1 v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd4155678 v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd4d3258f v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe1c5be30 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe4e5462d v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe5e3ccaa v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xea8ff558 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d v4l2_m2m_unregister_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfabd8baa v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xffb95bbe v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x4137d90c v4l2_vp9_adapt_coef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef1a3dd v4l2_vp9_reset_frame_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x8ef25d5d v4l2_vp9_seg_feat_enabled +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x9dec35a2 v4l2_vp9_fw_update_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xb3cf2529 v4l2_vp9_adapt_noncoef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xcf15018a v4l2_vp9_kf_partition_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xdf6586d2 v4l2_vp9_kf_uv_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xf5c55c43 v4l2_vp9_default_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0xfbf87a5e v4l2_vp9_kf_y_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0c304b92 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0e1046c0 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0f0a5be9 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x17761989 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2381e1b4 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x23da09c7 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x48582955 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x48f101b4 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4d8ff4f0 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x59527098 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5ae9da95 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x63406b19 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6c8a0826 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6e433709 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x920e4019 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x95bbb40c videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x97b4184f __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x984dc683 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa9eba20e videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xad2b32ed videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbd90564a videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc0d68a54 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd46da421 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf786940a videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x19a04906 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x3be96dc3 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x82a493d4 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xce8125d8 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x412d6b78 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x74ae6e64 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf0077f01 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x130928fb v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x14e72045 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x15bed8c8 v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1885c1f6 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x334e44c9 __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x34246708 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x35ef8ccd v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3b24281c v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x452f53b1 __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x46ac032f __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a41ea22 v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4b525926 v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4c1978dc v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x565e0bc2 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5ad0b897 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6769415a v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6803e148 v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x69cb0d40 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6a2de036 __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6dfd4e56 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f17d500 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x701f5683 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7f73fd85 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8353037c v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x85392c7e v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x88273455 __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8c49e044 v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8ddfb83e v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x926ef450 v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x940f9831 __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x943b39d1 __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x97a8d3db __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x994f8940 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x995a72ec v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9b899632 v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fef35ac v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa4972608 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa602ab66 v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa6cfb18e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa9192654 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb14585a5 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb1ee442d v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb4088263 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb52c0548 v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb54b6cc6 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xba06e892 v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xba0f4ed7 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbeb17b68 __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc5c6fa61 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc742d6e8 __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc501597 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd00f0645 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd8964c7f v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda8cb4ec v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdb57b419 v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdbd19aa2 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdbe95b3e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdedf6155 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdef77a08 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2822320 __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5a33113 __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xec683410 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xeee5df40 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xefa70456 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xefd06ba7 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf491edb6 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf5dbee57 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf61b1861 v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf7cae53d v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfae40c21 v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x0fc974ba pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x9a1e5de7 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xae9fd089 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x09bba126 wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x0c7b8c7d arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x184977d2 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x281fa728 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x39b4efd4 arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3f39a2e7 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4a83606a wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x6ca5b892 wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x73df3666 wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x754e975f arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa6b70564 wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa727bd3b cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xaaf78759 wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb33a0ae9 arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb7d03457 wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xbd667ac2 arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xc81b43ab wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xd6a11641 arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xd81e74a2 arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xe912af51 cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xf4e8f51b wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xffff57c5 arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x16caf523 atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xb0685aa2 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x24ba156b da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x2997fda2 da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x2e2197a8 da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7ff9d5ca da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xa3854ac6 da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xac4b92f9 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xce627e5a da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xa142a524 gsc_read +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xb7abd1c4 gsc_write +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0xa436f4de iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2b841dc5 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x76472bc1 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7a4d2b4a kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x81e25db9 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x97b0b0bc kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb25d72f4 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbb541526 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xc9b10368 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x11643016 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xc705cb8a lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xe0f0756f lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1215ac44 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x54b4a2a0 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x84bb6042 lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x9e490a49 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xbbef0cb5 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xca66f6af lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf228dc86 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x20bb1bf1 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x7e18be16 lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0xfb389d8f lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x05f27e8e cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x05ffa2ce cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0a470e4b cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1d27093e cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1d2ad57e cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2aa612c3 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2aabce83 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3780e5f6 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x378d39b6 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x46c76382 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x46cabfc2 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x514f600b cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5e121432 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5e1fc872 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x69930fcf cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x699ed38f cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x74b5f8fa cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x74b824ba cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x768a6be5 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xb124fbbd cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbe1deeba cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbe765236 cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xbe7b8e76 cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xc776f119 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xcf24ccbd cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xdb0a4f5c madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xebe384cb madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xfd434f3a cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xfd4e937a cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x2a8d5ffa mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x30616ad6 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x62d4d49e mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x70db21f6 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x8e676ab8 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xbcbe6807 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0xa226dbe8 cpcap_sense_virq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x143a741a pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x64c83b96 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6762675e pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x79fe4951 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x821794c9 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8a5653f2 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x90f2c421 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x94068f12 pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9579f52d pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd7173772 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfb375e8e pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7d8df6ed pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd89dd429 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x032b9a93 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4e1d6d8b pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5f944139 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8b6c0312 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9326856a pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x2be26e1c 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 0x01bc8dbf si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0b47ad8e si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e9bfee0 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0f660f38 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x11e37da9 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x135bef47 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x21be56d8 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x21c6cd98 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x26289e27 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x278b4f8c si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d9543bb si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3e9c7691 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x418c1064 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x42adf16c si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56b14fee si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56d31a18 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6021db61 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x63fec226 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6e78fc2e si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x75967d25 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8010cc9b si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9de23ae6 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa36ddb94 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa3f8bfef si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa45345ea si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa959404e si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbe17c7b8 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc616c957 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xced257e9 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdcde00b6 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe2583495 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeaf6dce6 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xecb25329 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xefea8761 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x38fb086c sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3f94ec2f sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x41b36f1d sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6f2e384e sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc36d0831 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sprd-sc27xx-spi 0x5ca6868d sprd_pmic_detect_charger_type +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xe8aed4d1 stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xfdc9308e stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x22db047f am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x536bc038 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x878ae7f0 am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xf1e0716f am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x73e5a034 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x7a7b5bfe tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x995bc14e tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xa90b55ea tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x08f06378 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x37543850 tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x649438fc tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xc42e929a ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x0a8ae2b6 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x0b783066 alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x1a5ec038 alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x3a154fd7 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x5098c88c alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x5adf48c9 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xf8a2a5a2 alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x155495c9 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1e8531d1 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2a227395 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2e808b90 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2f40585a rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x357fd0ae rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x4c8a2d20 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x53c8b534 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x57ebe9e9 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x61ef6d3a rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x658a973e rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x8524ac7f rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x966079b2 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x9c278875 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa2689c7e rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa5fbd368 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xb2f5019c rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xbcdaad9f rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xc0e01bec rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xdd787a99 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xeca517db rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xee9e055b rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf1f49ebd rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xf562854c rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x0435e8c5 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x139328ac rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x18592600 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x2587753b rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x288e4582 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x2ab87647 rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xaed67a4d rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xbc2b148a rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd55fb5a8 rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd9bc8fdb rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xdbb7d552 rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xdedf6f43 rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xf89bd491 rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1aaa476a cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x966a8caf cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x990972b8 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe86f0c36 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 0x00c98d24 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2d983c64 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x381cfbfc enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x42ad7c22 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x57001f13 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6c47bfdf enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb692656b enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf3af241c enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x26933fb0 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x66b54bee lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x96987bb3 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9e25a2bb lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xae61b913 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe23c6821 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf5e0e0dd lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf66eb904 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0xec42b5e4 devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x8c795269 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xde697c01 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x018e371c uacce_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x0706de71 uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xe5ff8d2e uacce_register +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 0x07c5038e vmci_qpair_dequev +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 0x787f0fe8 vmci_register_vsock_callback +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 0xacdaa77f 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 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 0xc27869e5 vmci_qpair_peekv +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/dw_mmc-pltfm 0x869f8c6e dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xf112da9f dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xfc4126ee dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x02b25722 mmc_hsq_init +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0x9cf623ee mmc_hsq_finalize_request +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xb2c44f16 mmc_hsq_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/mmc_hsq 0xec11b24e mmc_hsq_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x02b08d0e renesas_sdhi_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0xd551f650 renesas_sdhi_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x05439378 sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x0c9c2066 sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x106a8974 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x166edbad __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1c1e5a32 sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x210ac420 sdhci_request_atomic +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x23325c43 __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x235f39d0 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x27486015 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x27f5a8e2 sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x28bf7fa1 sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x37d9ead3 sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3f9bbb88 sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4e151f26 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x506b6ca1 sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x52d77658 sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x53341511 sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6120e82d sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6a31e203 sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6cbc01f5 sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x71b1370c sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x73d12310 sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x79face83 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8199ac19 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x82fb8e1d sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x87c415e2 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8b6e1b8b sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x939fe753 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x94443d0d sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x98c7bd98 sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa214d9c1 sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa511a3ab sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xad85bf32 sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbc940eb0 sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbf339dcf sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbf48d966 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc3b617c0 sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xc4ca8af3 sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe0de3b6e sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe5193909 sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xeb2bf526 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xff871791 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x032dbf89 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x265153bf sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x7c4d4c98 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8d9faa27 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb8af1bf8 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc00edad9 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xc60bfe00 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe09e8105 sdhci_get_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xf7ad951e sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x3780413f tmio_mmc_host_runtime_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x38f19a4e tmio_mmc_host_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x431620e4 tmio_mmc_do_data_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x479d3982 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x484a7d85 tmio_mmc_host_free +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x53aff763 tmio_mmc_enable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x5ed1e19d tmio_mmc_disable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xb463e553 tmio_mmc_host_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0xfa7fefcb tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0d4e8065 most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x12332cf9 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x24ba49f1 most_submit_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2c8bb1f6 most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2cee1095 most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2d314479 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2e0f3081 most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x3785e9f1 most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x59f4643a most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa53115c3 channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa5cedbf8 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0xe0b0af10 most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0xe449c6d6 most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xe67d4b8d most_register_component +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x12d6023c cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2dff27d4 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd0e10242 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x326bb520 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x4c39fef0 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xc1927aa6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa3acd3a7 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x129052bd cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xab22623d cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe822abe0 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x2da076eb hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x7d241b58 hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x05929933 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x082a23ea __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x157f9c77 mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x17b3e0ed mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x20da81fe mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x227b6dc8 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2385e3f8 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x23877224 mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x28c4374d mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c5402aa mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2e5f44cb mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2eaed603 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2ed2f238 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x36ad4974 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38552b57 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38cd9f66 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x39f55cc8 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3d1e03ed mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3da25cda mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x438ccc7b deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x50dabc2f mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5129cf0a mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x53811f4a mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5bfb0794 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61b1a733 mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x74553f77 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x759c1ee1 kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7dbd4052 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7f5a6ad2 mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x889aadd2 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8eb01faf mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9923079b mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9a267df3 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bd7beb7 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9f03ccf5 mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa3aac0dc __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa62210d7 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa6e99ebc mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa9e3d5f3 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb29bde70 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb64f2ce3 get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6d02732 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7075882 mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1b52885 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc34303b7 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc4392fb3 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2e8adbd get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd93be4a3 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2230060 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe5cbfe64 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe6fed490 mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf77db698 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfba50bd0 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfbbe08c4 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfedcdf3f mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x13bfab1e deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x3b9265e6 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x6c66aecb register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xaacc4ff1 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xc90c85e5 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x05a87ff2 nand_ecc_restore_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x071657e7 nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x0cb4c3f4 nanddev_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x14f981f5 nand_ecc_tweak_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x166f8935 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x17046262 nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x19e2e815 nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2512b571 nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x278fd2bf nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2b46dc75 nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x402eb5f3 nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x444430be nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x551bcdc7 nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x63bb9cd7 nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x74c43948 nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x853c3207 nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x89e23993 nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x94db624f mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x950e073f nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x98e7718b mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xa96ddf61 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb020f0b6 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xb958a0ee nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xcac84b4f nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd9bfdd3a nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xffd882ce mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x09a2b039 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x9ed8404c onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x82bebc2d brcmnand_remove +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0xb012d391 brcmnand_probe +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0xfe514634 brcmnand_pm_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0xc6772425 denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11ae052a nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x1ae0db00 nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x27191189 nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x3b6c1aea nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5a6f8ca8 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x69145fa4 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x6f67bf5a nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x77c66a14 nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7c29989c nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7d550111 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7f7a52af nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x819ad861 nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x8781860c nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x901c8b66 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xa6b496fe nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xbe15053d nand_prog_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc2915fbf nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc6262baa nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xcc0a1783 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd3c672b8 nand_subop_get_data_len +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd41ff2ac nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd7c0c2f5 nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xda3643cb nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe6784cf3 nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf041228b nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xf5d28dd8 nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x375fdf0c sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x578e9ced spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x7feb9f2d spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0a3fba15 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x25a560d9 ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x30783fae ubi_leb_read +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 0x5460da8f ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x66011ab6 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7890a9c2 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8c0da98e ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad1781c5 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xadb9599e ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1ab14a1 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc7ceda9e ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcafb6b5d ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xde8c2a4d ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf45545eb ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfba129da ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x279fab57 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x336b84a3 devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3571d6be mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3968509d mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3cef36b2 devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x47a1ec4c mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x54e7be6a devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x8716972c mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xa3dfc1ce mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xa408c2da mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xb26064aa mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xd269da84 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xdf9d99e9 mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xf0f35f53 devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfa76e911 mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x4353b6b0 arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x86c72618 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x27b127aa unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x3f159cd8 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x76197ad1 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x837c268a register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xcb2fd72a alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xcf4c4da4 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x383a9be3 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x6141ebc2 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7d84a6a4 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xd0e2d5e7 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0435917b free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x069f0c78 can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0895b31a can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x1ca954cc can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2048acad open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2ab9f07f can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x38c1c8d6 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x38e0e8de close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3cb4d977 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x46fbc21e alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x60b54d56 can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x66094a7e of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x671aedcb can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x67496bbb can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x96bd4124 can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xa496eb44 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xae8d4175 can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xae9fcfd9 can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb84dd6d4 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbe1a6d82 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc096e7c9 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc7c207a3 can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xc9658fe5 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xded7b036 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xe9118810 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xeb5a48f8 alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf12d9387 can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf244d8b0 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf51f0c91 can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf6d3ede3 can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xfcf0a040 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x567c441b m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x56c028d8 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x6d375648 m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x8fe3a875 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x9da0a653 m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xba2236e6 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xd4e6c284 m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xe93e3d00 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0b5443fc unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x309eae35 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd6886358 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xec049391 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0xb94e4f69 lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x016a3305 ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0d31732d ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0ea75995 ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x231889da ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x246a29c7 ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x2923c993 ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x2a32f65e ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x2acfa85c ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x312a7995 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5a59d23e ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x68aa62c4 ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x691e3ad0 ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6a5afad1 ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6f077219 ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x765745fd ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x82d3c96e ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x8445fbf3 ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x9b659bcd ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa0dae53e ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa435c42b ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbbb46ced ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbdb9ec39 ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbeefd124 ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xc067518c ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xcdfd75d6 ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xd61adb7d ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0x2920426a rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x07748e8d rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x28ad39d4 rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x620440be rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x63b0a097 rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x880c992b rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x8b659613 rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa8974062 rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xad7a7764 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xbeedd90d rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xd0dc55e5 rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xde6d0dd3 rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xe4c96fc2 rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x147161d1 arc_emac_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x242a51c0 arc_emac_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x24182b86 enetc_hw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x2e27eefe enetc_mdio_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0xbbe0547a enetc_mdio_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0xd9d61d6f enetc_mdio_lock +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x4f3f52de fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x5157d00e fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x5d4ff149 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x6c2e5f06 fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x82d9e748 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x9f821168 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xa9e5630f fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xaaa636db fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xe12e62e2 fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xf986e07c fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xfd2c6485 fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x02a2b0da i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xd9d47024 i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x57f291c1 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x8cb3bd42 ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xd9311dff ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xe8fdb986 ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xea1df2d8 ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0x3b0ce8df otx2_ptp_clock_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0x75bb408c otx2_ptp_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0xb9d4330f otx2_ptp_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/marvell/octeontx2/nic/otx2_ptp 0xe92e6634 otx2_ptp_tstamp2time +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x014b502d mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0226a26a mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x062f29ff mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x064be1d7 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06c024ea mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x072ffefd mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0813bf32 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a3e42ea mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cfeb18b mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d4abd3e mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dbb6fd7 mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e150ea8 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e1809f0 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ed23259 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10e82365 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1aee35d1 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b1def1e mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1e8c4907 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1fc18f55 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x210c0301 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21f5aa64 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x240ac2f6 mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26c3b9a7 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x281ba99b mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x28f2429c mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ba14f40 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e7f5dba mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ec18ed5 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ed12d25 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36894b33 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38ce4e65 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a9e8df5 mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ddde24f mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x407ce52a mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x444b0cee mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x450b91d6 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48d59f40 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49d9ec85 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4aa5675c mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4e8f2458 mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x510a2e5d mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x521c544e mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5628d47b mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56457dc2 mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57b7c7b5 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d84caec mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f566868 mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x61108155 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x666a97fc mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6884bb91 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69aa8df1 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bb8a909 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bfb947b mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d7bfde8 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6eaa9e44 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7111b6db mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x714b647d mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71ff479f mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73b476d4 mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74640b9f mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76a834c2 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x772eea52 mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x775968b5 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8406d0ff mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x84d102a6 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x869dcf1e mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86dd531f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87606ed9 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8904097c mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c30e2d7 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c412389 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90ad0d21 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x989a6e4c mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a71e7a2 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa159eff1 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1ab9c24 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3ac0ca1 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa90e501a mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabf0481b mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad4de591 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf71fd7a mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb154348e mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7a18705 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd32afe5 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd3569b8 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd573c31 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd78e3fa mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbe9cab82 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbef4154f mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc25f1182 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc3aa2116 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc854c082 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8fccdf6 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc96fed87 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc98e9527 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9c2f532 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9d1b39c __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd63d88b mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd054e111 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd55e8a22 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7794f10 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda4d838f mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd6f30b5 mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe00ab9a1 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe086fd7a mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1532626 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2d6f8c7 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe34804bf mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6a4a785 mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe760a1bc mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7983ea0 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8ccc397 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe92d026e mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeee9f2aa mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf03168bb mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf252228a mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2522415 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7c01d9a mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7f76425 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd03cf00 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff17e76c mlx4_update_qp +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 0x0750d984 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0993c80d mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b045798 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ea0905d mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0fb50871 mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12778558 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18659a6e mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a2ad1e9 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1c607fe5 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x217171cf mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29bef112 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c6a06ed mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d659dba mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3850a39e mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4370a346 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x469cf2ff mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dbf605d mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e02343a mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5106a36f mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x595bff96 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c7c4dac mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c9685d3 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60141232 mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63d13a2b mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x65531a44 mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x681a8be0 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a9e8e29 mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6dc69789 mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f0ece0f mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x722ee94a mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73531b20 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74941f17 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x749f1fd5 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77eb9718 mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x78ded4d8 mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7943dfa6 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bbb6e52 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7e5e7c31 mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x80230c9f mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x89bf369e mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d1d0fbc mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96393ccb mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96b7dd71 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ac4f327 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9db9e35b mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa119f03b mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7d5be9b mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaab50cce mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xacced950 mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadbc9314 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb50a7874 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5edae24 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9b56b05 mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbe24247f mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf05ed04 mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf522169 mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc318e6c5 mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc46501f3 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8e00c98 mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd1d96cd mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcdc42832 mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd087dbb0 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb9adc6a mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe7eb6335 mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb5bdfea mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7540191 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfeeda521 mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x68d73ff4 ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x94bbdca7 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x9b03a6b3 ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xb627500f ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x5a7704b8 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/mscc/mscc_ocelot_switch_lib 0x01026e6c ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x09d27234 ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x160a5cda ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1cdae690 ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1e342cab ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x212b2480 ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2725bece ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2f8c532a ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3f2a13ea ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x46237c00 ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x46c6b0d8 ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4cb0ee8d ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4d158567 ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5222e993 ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x63107407 __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x68551a97 ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7688b836 __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7f0ca3b4 ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x95d7a4a3 ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x96ebf9c9 ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9abb1a30 ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa3503313 __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb4bf63e2 ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbbddb431 ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbedd5d05 ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc1d8efb0 ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc7cd871d ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe2f1e59d ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe85acfa3 __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf5aa04ea ocelot_port_del_dscp_prio +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 0x08d912a9 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x273a1a3c stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x77abbc17 stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x92d778bb stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x950f3571 stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xc6bc97b0 stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xcf1f0195 stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x18c0368b stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x2f6cd74f stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x50ee67a6 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xc2346a3f stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xf8b477b8 stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x26dc8763 am65_cpts_tx_timestamp +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x405b51c2 am65_cpts_ns_gettime +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x547ce3f8 am65_cpts_prep_tx_timestamp +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0x91fd3558 am65_cpts_rx_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xb60b988a am65_cpts_estf_disable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xbfc83e4d am65_cpts_estf_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xc174a458 am65_cpts_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/am65-cpts 0xfca9b9d9 am65_cpts_phc_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x0d27cd15 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xb1f8298d w5100_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xb51f6e58 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xb578a2f4 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/geneve 0x07cb3342 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x0cf8a889 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x4e76c7e7 ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x8328616d ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xded2e16b ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xea491216 ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/macsec 0xac1a0345 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x40fafbf9 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6b0103c9 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb8a37ef2 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd7c09507 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0xbe512b24 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x1d00ddeb net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xa530e34f net_failover_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x04abf23f xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x07332b8c xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x33ae94f6 xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x8947189e xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x9f2fe525 xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xde989935 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xe01b534c xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0705e2d7 bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x11382a33 bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x15c404b5 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1989080c bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1bd7158f __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x23fffe95 bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2749045a bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2ab6f572 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x40459b3b __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4b6b3221 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x562795dc bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x56aa3d9e bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x604fa0e6 __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6693fbb2 bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7862638a __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x852b4e29 bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb42290ee bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc36aed9b bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc3df9746 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc5c19e0e bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc66e6d63 bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd55adc55 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd580716b bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd8dc0351 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xde005805 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xde614aa1 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe2b4b924 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe32d973b bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe49a4b36 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xeda789da bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf19f0cf7 bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf55123ff bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfef6bd02 bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xfff4fc4e __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x05029578 phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x0865e588 phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x287e66e1 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x3875d9a4 phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x406f56bd phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x444afc48 phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 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 0x8df9a48e phylink_mii_c22_pcs_decode_state +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 0xaa81ae52 phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb384c13e phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc85b7c9f phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xcff1abd9 phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xde66f4a7 phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xec02ebe0 phylink_init_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xecea2a41 phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf3083a1d phylink_destroy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf82ff0fa phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xf8fe5642 phylink_ethtool_get_pauseparam +EXPORT_SYMBOL_GPL drivers/net/tap 0x721ad8cd tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0x8b71df69 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0xa3a1cd2f tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0xd2027e3f tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0xd3830ce2 tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0xdf6e92d5 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0xef7700d7 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0xfa3ca174 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0xfe714aff tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x15992874 usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3ca20c23 usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x66ae25bc usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8c9b76b7 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8f212a5d usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbc3e32b9 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcfb6a857 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x0f588315 cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x10610a8b cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x239c2040 cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x27f06b40 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x365a105f cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x51063746 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6b257980 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7118305f cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xc077b5a9 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xedd97ad3 cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf0562dee cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0xab6a62d5 rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1ae3f223 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x65a8a04e rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xab7ba189 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb3ed19df rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xca00c8db rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf08664bc generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x005c8eaa usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0786621f usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0bf4a485 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0c31e5b4 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d08492f usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0d8a4d27 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0f407448 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f4200f4 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3bda64bb usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x48f1273f usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x66883e2c usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x68dad119 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x69df6190 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6d300e47 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6f2d35d0 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7dda0ca0 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f3bbf59 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8a3b3296 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x93905192 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97c93267 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9b3ff1d3 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9fd48efd usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa48f40dc usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb06e1e8a usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb11ac137 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcd38449f usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd30cb9c5 usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd30fc171 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd57ba9b0 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe401ef8b usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe95767c3 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4006e52 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfd31b35b usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe3aaa4a usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x6fc220f5 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x933e3744 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xdb08fc34 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xf88c606d vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0xb7fe4fcf libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5499da26 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x577c549b il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f364aec il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x90c504b6 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xeb590621 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71118edc iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74778a2f iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x625cc901 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7dc2f96c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x8829894c p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x90f59391 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xafa0d994 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xcfce37fb p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xd05f4400 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xdb1f57e1 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xdc1e4ef3 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x0006f9b1 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x0ac8795e lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x0b690d85 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x0cffc83b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x16519fc4 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1771a1cb lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x42f35bde __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5233e644 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x6cad07d4 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7cf4dd9b lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x89cecfe1 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x90683a87 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x924b1ede lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x9868fc21 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xb73412fd lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xcdbd6c72 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1337cda2 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x15e24e2f lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x5c40a270 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x8d7c25a5 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xbe071e0a 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 0xe3ed4f6a lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xe4b09184 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf57555bd __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x1ff4fd59 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x20d7318a mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x20f75041 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x261226f8 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3d50eb63 mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x4884598f mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x4b7c32ab mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5204d5de _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5d67baf4 mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7274e85e mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x845d43f2 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x89fdc9f8 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x8d1f5245 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x9f446312 mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xa7d09da9 mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb770c731 mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xb7dbaf03 mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xc1fedeba mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd4dad9f3 mwifiex_alloc_dma_align_buf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd7cadbf7 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xef0428cc mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf1417863 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf3fff5ee mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf7df652a mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf808384b mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x030364ff mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x097415fc mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x09f5a78f mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0af47c0e mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x149c37b8 mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x165bbbca mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ad902a1 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e0ec461 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1eaf4ff4 mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1f8ac718 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ff33f1a mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x290d6f67 mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x29d870ad mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2e608d8c mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2f39ae37 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2f83c3c7 __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3454b942 mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x35f68538 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3a468ea6 mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3bf34713 mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3eda05f2 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x42d3fefc mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4905c230 mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4c35efc7 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4c74df47 __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x520eadaa mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5a5a777b mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5d1b4e42 __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x633b11f5 mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6451c156 mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x656ea3da mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6e7ab517 mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6f42e467 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x703b5b79 mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x73607fbb __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x738920fa mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x739aa888 mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x75531a48 __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x805fc13a __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x845d2cf1 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x87eac072 mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x883e7053 mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x88844a5b mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8eff3c04 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8fe96110 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x90ec4bef mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x91ed5e43 mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x92436628 mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x95822d46 mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x97c39024 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9e685e6f __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa76e7fb6 mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xabcb3adf mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb307e831 mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb4064447 mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb59f2b20 mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbab6b180 mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbdc99f90 mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbe1b9748 mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbeccbeaf __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc1e695c6 mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc1f0f41d mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6315d8e __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6634315 mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc87b6aca mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc8996b25 mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd2d5cc2c mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd5bb64c7 mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd7745b15 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xddfbfa92 mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdfbbc4c1 mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe1807e3c mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe31d9e2a mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe40b66ef mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe4c11140 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe5b13d85 mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xeba107c4 __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xecaa4333 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf1796573 mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf9a44d97 mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfaa30d46 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfb3fb7dc mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfcfebb4f mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfd3808d3 __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfe74f85f mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x05b54f23 mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0764cdb1 mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0ceaa67b mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0de9b3eb mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x16cd4c26 mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1ad875ac mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1b1556ae mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x202c88aa mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x21338675 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x240039b7 mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2ba1f9cc mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x39d064dc mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x39e48350 mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3c2c4756 mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x437f26fb mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x47770bcd mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4a523209 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x506b9eee mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x52506a84 __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x53c65c2a mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x55d8572d mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5bc86467 mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5c41aa90 mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5d51be78 mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6180751c mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x61ebdc58 mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x68bf0ec6 mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6dd26c65 mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6f575a01 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x713ca539 mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x757bcfd1 mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x75bcaea9 mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x803e7413 mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x857ffc55 mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x888ab838 mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9083e617 mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x908ca40c mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x91e9835f mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c032d82 mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9c7212e9 mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9ee04dcf mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9f9220ff mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa6a0cefc mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xaa835a66 mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xaffac9f5 mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb1ab448f mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc29cb6a5 mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc4303945 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc55f33ba mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xcf15a276 mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd58da725 mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xdca8bc4b mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xddc9b723 mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe7e9e531 mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe9f1969e mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf41044a5 mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf61f0937 mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf6274b0f mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xf685240c mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xfbd02117 mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1760262e mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1874ec64 mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x236f36df mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x505f3520 mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x55b4e3ab mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5b6c5e1a mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x61977d49 mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7f3d8012 mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x99f3823e mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xa2cdaefe mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xac73c8ce mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xac8ba6bb mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xbaf293d9 mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xc15770e5 mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xcb943ef2 mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xfde97d44 mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x171ae819 ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x2ad3a59a __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x372d4dad mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x5b1e8e27 mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x9133cde7 mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xa4eff145 mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb3cc7ad3 mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xb760011e ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xc88c8ed8 mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xccba4f4f mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xd400d0be mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xd8cf23f2 mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xed319933 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xf45e6c6a __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x169e4413 mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2613accc mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x322f27f1 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x34cee993 mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3d07672d mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x58304ba8 mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x5ac14856 mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x69e9c75a mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x6c85d442 mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x71c580e6 mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7af6cccc mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7c0a857a mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x8b2e97a6 mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xa4b8bb0e mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xa618487a mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb20f4d60 mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xbdb744cc mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc20a1148 mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc276aeb4 __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xced4f787 mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xdd2b5436 mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xdecff280 mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xe14854b8 mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xe51d7fab mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf76f2ef9 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xfbd780b4 mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xfcab5449 mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xfe690ba5 mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0xd0781f89 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x181404ae mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x359a0be7 mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7cf58922 mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xa5df5068 mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x16a9af59 mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x1741f83c mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa3010403 mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa3700ebe mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa906bbc2 mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb6c74e7c mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xc9fe15fb mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0163138b mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x01c2c3e6 mt76x02_dma_disable +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 0x05d01f0f mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0b5dba25 mt76x02_phy_set_rxpath +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 0x18cad108 mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x19d17f64 mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1b7ef1b7 mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e42a577 mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2392585e mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x24c7410d mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2c687c2f mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x34e88106 mt76x02_update_beacon_iter +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 0x3c87f0c9 mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4300b757 mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x47fb25a0 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48481fd5 mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x485d7db1 mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48b85af9 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4c2e8c5c mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54534aed mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5674efce mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x581bf645 mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5b9ae328 mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bbb6351 mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd1756b mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5c1354b2 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e2bdf64 mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5e32bf73 mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x603c1840 mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6446d26b mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x675f5f30 mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6e24ba0d mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75bfcd83 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7d48e4d1 mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x819e2cc6 mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8255f503 mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8455ffbe mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8527e843 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8e831f61 mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x910dc81c mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x95cf8588 mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x969a1622 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9a7c5ab6 mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa1ff0507 mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa3775dbd mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xabcba626 mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb2a9beb6 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb953a98f mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbd6fdc5d mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbfb82dc7 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc5435dd0 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc69aaff5 mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xca0180ac mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd24b81da mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd2c1751b mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd3043bac mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd748d022 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe02d4e9a mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe0ac48bc mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe42bd460 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe5cccbe5 mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe6ba9ebd mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe9fa9080 mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf77050d0 mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfb3a6b28 mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfe81b046 mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x0c219fdc mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x591502d5 mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x5acd01c0 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x82b996f8 mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xc11c8a58 mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xd5219f30 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe3adaab6 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe76648e5 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x093795b3 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x0a925396 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x213bed8c mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x231f4ce2 mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2a8a17d6 mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x33074df0 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x34801c01 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x40f65a4f mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6c3b8ce2 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7282707b mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7e88d021 mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x832cc0df mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8559c9ac mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x9a8944b9 mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xa6c663e4 mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb0744b98 mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xce3fb472 mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xdd115c8a mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xe66f4f32 mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xf3ee023b mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x04d88045 mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x07dac17a mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0a640e36 mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0aab2688 mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0b9dddd9 mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1b5d9bf8 mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x388405e0 mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x38fe12a3 mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4b3ad839 mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4b9c1551 mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4f1fe561 mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x571486f6 mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5753499b mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x69e5eb7d mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x6b9121f0 mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x6bc9f36e __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7713d74a mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x98234163 mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xa926a98e mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xb714f349 mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xb9af436a mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xbe1db5bf mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc6c241df mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xef77e29b mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xf5ef69a9 mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x21f1487e wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x32c8dbe6 chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x3957ce99 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x45fde19f wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x54bb7db1 wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xa16965b7 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0xc9b86f26 chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2f17bfdb qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c qtnf_chipid_to_string +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x3da1e181 qtnf_trans_handle_rx_ctl_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x57d9b3b6 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x69c63faf qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x8c85d9b7 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xa7e7a4ad qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0141c120 rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x043b8106 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2aaf2c56 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x38a07021 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3b9f6b4a rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3daec065 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42ced7cb rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x42da9731 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x49edbd04 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4c3e63d8 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x561d6fab rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x584a1546 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x59ac8124 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6058dfc3 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x62abaebd rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6508b0ca rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x67001b3b rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x68c7289a rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6ac51d6f rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6b2fcac8 rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x771e254d rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7b535e9a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7eefc990 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7f792fc2 rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8b38ec72 rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9675c37e rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9a820f57 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9e3124df rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9e56d263 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa1fc9e77 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa22015a7 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa70a47a3 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb06f7b20 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb0bb9065 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb9683c0d rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbe1da72f rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc29642b5 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd5462603 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd5c8f6a3 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdba2d83c rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe1bea075 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe8e35d24 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xed9f145e rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfce94ff1 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x17251ccf rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1c49f0bd rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x253c6e20 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x337cb936 rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x355e2627 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x401996c9 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x50897ba6 rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7d8b2fcf rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7f0d2f67 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97e3c029 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9a20fd8f rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9f3c8921 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xad9ef03d rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xae21cb92 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xddeb4b89 rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xecc771a6 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xeddd8a2f rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf4f4eb26 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x07a1b7f4 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x12c319bb rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x16c13e88 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1c82f12e rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x277b62f9 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x397add36 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b77dca8 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3d921357 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x41ac8a8a rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x43211872 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52aa9b36 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x542e2907 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x59fee259 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5a482230 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5d394202 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5d4e4f6e rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6377fec1 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x677131b6 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6a180afc rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x74fa2730 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7ea8c51c rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7ef6c07c rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x82f9458c rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x868ad146 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8927122d rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9260e884 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9661a6cb rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9827726e rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9e6a953c rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa1d82e31 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa1eea309 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa2b190ea rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xaa6d5e5d rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb0fd1e0f rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbb0b61d6 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc87d4783 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc8afacca rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xc8fa818e rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd4b3ec9a rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5dbbcb3 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5eaa6d3 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdc6eb8b8 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdf42ae58 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf5c3d238 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf64e1509 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf7c60289 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfd215d93 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x1053eaa2 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x6f127d7f rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x9823bf3c rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xd7dedfcc rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0xf7e05415 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x13204edf rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x50aee273 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xcb951774 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x198d741c rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1e086eb5 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x3c3ef90b rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x592619cf rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6bb6b2a6 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6e59aee7 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6e8d468f rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7126450e rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x837334b2 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8fd238b5 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8fda48ad rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x9f770349 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xabb41949 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xaf3c31b5 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbd3e5534 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xeed86726 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5f2db293 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x73f2331e dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd9273363 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf57483a0 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x156341e2 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2b165f9e rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x331bbb7b rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3ea68a15 rtl8723_phy_init_bb_rf_reg_def +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 0x4d86e541 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x53ac264c rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x540a01ac rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x55a46afc rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5e04a2a8 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x67b52c9f rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x86c22374 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x882adaa3 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x88adf876 rtl8723_phy_path_a_fill_iqk_matrix +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 0x8e0da121 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x91dd7a54 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9806bd20 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xa5758c5e rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xafe1b7ae rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb65020f1 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd48fc113 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe36bf346 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xe5d51fa8 rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xea3fca00 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xeb162cf6 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xf9444c93 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x002ea8be rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x10b4b0e2 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x129a0ae1 rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2152352e rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x22b32412 rtl_tx_report_handler +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 0x2d80e5fc rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9 rtl_fill_dummy +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30aa53a6 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x38aadbcf rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x39f9f8f5 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4282c008 rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4e94cd48 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db3ba37 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8b7e067b rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8f85ddc4 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x95cc62e2 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a8b6f08 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9fe0c685 rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xab6d5b52 rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xac324480 rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xb68a30e1 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbe598435 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbf85e18f rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc40c4d9e rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc69e5890 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcb5f9183 rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd25f6e81 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe58a4321 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x2799fe32 rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x5d29cf5c rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x76feaac1 rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x889554d7 rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xad9dcb02 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 0x3af56cf1 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x4df0fb01 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x5913e13a cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xea5e131d cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x3a6b96cd wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x5826e085 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x928b93dc wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0674e384 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x10d0c878 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x13e72bc8 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1416d17f wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15103e74 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1df74ba0 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x289e89ed wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x300f7e78 wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x37cbe6dd wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3824e013 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3b48f182 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x418e9812 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x499aa44f wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4daa5565 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x59e2d8dd wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x60ded949 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x616c17dc wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x618c3ad6 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x67530bb7 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6b6cd09c wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6ea954e7 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7292db61 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x73d12159 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x74496995 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x745a1b9c wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x84327949 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x89a68b80 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9d45573c wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa8ca9c17 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xad37264a wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xad6e4721 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbcb4687f wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc8480084 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcb564d95 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd81636a3 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd9cf1b45 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdc1c2c30 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe12b6a2e wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe2ec1beb wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe3916419 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe8a596f9 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf27bb1f0 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xff2af697 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x1dbfd38a nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x346587e6 nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x3eced9d9 nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xfe5da43d nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x3fb9e63c pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x841fcc57 pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x94344f3f pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xdecfd339 pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xe0119c58 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xf869f569 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xf88dd1be pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xfcf64824 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x0d092568 st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x4f15749e st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x8ab60ec9 st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x918bbbbc st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xa173618d st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xc4270f92 st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xdc873165 st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf252de7d st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x5320fecf st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xd0bb174b st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xde82a1a3 st95hf_spi_recv_response +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 0x897d2191 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xa3447db1 ntb_transport_register_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 0xe72aa082 ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf55d6313 ntb_transport_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0xf9eb813f ntb_transport_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x54c5ca48 virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0xeadc50e2 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0ab4e663 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0de53715 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0f19fb35 nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1033ed51 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1ceed6ed nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x22b77eda nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x23b3d915 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2572fb5a nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2900930b nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x31591eea nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x361497e1 __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x374b1a53 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x39504ff1 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3de57516 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x43d11c1d nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4721b8b9 nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4dd9ee61 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4ece3af7 nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6e2cc0b9 nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x73039f38 nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7b4b5d61 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x80a2c341 nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x824836e5 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x852ac410 nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x867226b4 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8801daa3 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8a9c70ed nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8e7ec2b6 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x915d84c3 nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x95a8de28 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x990151c4 nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa1474ea0 nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa406cee4 nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa56b8790 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb15cdfad nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xb33cb4cf nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xbc9859be __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc2d317a9 nvme_start_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 0xd6f40f15 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xdd35645d nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xde2ae673 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xdf0653ee nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe58b48ff nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xee356357 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf4d68fff nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf52365c4 nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x192e5974 nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x1f6b965f nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x207b1938 nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x274d4b1c nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2a64c2db nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2f2f94cf nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x51c659eb nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x84f33fa3 nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xa1cdf17b nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xe15a5346 nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xeff16833 nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x0d12e564 nvme_fc_register_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x241e9f72 nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3884f8b8 nvme_fc_unregister_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3e33ac54 nvme_fc_rescan_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x8a9cf5a7 nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xbb0e18a6 nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x0ed3f6f8 nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x1a4e69f1 nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x2d9b9516 nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x4996e534 nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x561a8ef4 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x63a4c64d nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x8b36de54 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xb4e8e2b4 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xb73c18d9 nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xd6e7b639 nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xeb75439a nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +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 0xb2c816ca nvmet_fc_register_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/controller/pcie-iproc 0x9158008e iproc_pcie_shutdown +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0xce5f7b8d switchtec_class +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x09266743 hisi_cpumask_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x1eb11c1e hisi_uncore_pmu_event_init +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x2c45e5c5 hisi_uncore_pmu_del +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x3194635a hisi_format_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x3ec4fc27 hisi_uncore_pmu_online_cpu +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x5896f67b hisi_uncore_pmu_start +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x6297633e hisi_uncore_pmu_init_irq +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x6c709900 hisi_uncore_pmu_set_event_period +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x7e34ddc8 hisi_uncore_pmu_get_event_idx +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x88373168 hisi_uncore_pmu_read +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x9616bad6 hisi_uncore_pmu_event_update +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0x96502ff0 hisi_uncore_pmu_disable +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xa7d06e0b hisi_uncore_pmu_add +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xb7341073 hisi_uncore_pmu_identifier_attr_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xc70f0213 hisi_event_sysfs_show +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xd682d9ee hisi_uncore_pmu_stop +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xdcaf3404 hisi_uncore_pmu_enable +EXPORT_SYMBOL_GPL drivers/perf/hisilicon/hisi_uncore_pmu 0xfb6373d1 hisi_uncore_pmu_offline_cpu +EXPORT_SYMBOL_GPL drivers/phy/allwinner/phy-sun4i-usb 0x2bcd8d0b sun4i_usb_phy_set_squelch_detect +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x05e7a206 tegra_xusb_padctl_disable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x08a5e180 tegra_xusb_padctl_usb3_save_context +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x3fc4765b tegra_xusb_padctl_put +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x4a0e7a0e tegra_xusb_padctl_enable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x608fb221 tegra_xusb_padctl_hsic_set_idle +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x689c5d0b tegra_xusb_padctl_set_vbus_override +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x76fc625c tegra194_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x83743801 tegra_xusb_padctl_enable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xa4ca8987 tegra186_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xa8b0d1c7 tegra_xusb_padctl_disable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xb6f379fb tegra_xusb_padctl_get +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xb8d75d00 tegra_phy_xusb_utmi_port_reset +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xbfacc950 tegra_xusb_padctl_remote_wake_detected +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xd1196f60 tegra_xusb_padctl_get_usb3_companion +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xdb5ce515 tegra210_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xdc0bf970 tegra124_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0xdf2af57d tegra_xusb_padctl_usb3_set_lfps_detect +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-usb2 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x90959fa6 mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xa0ee3b49 mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0xf9e6fce6 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x895d31e1 lpi_pinctrl_probe +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0xfde49f52 lpi_pinctrl_remove +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x27ec5462 cros_ec_sensorhub_register_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x64a2eabf cros_ec_sensorhub_unregister_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x6b1be500 cros_usbpd_unregister_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x8bda2df3 cros_usbpd_register_notify +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x0a254a13 ssam_controller_put +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x10053eeb ssam_client_bind +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x114f2963 ssam_controller_device +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x1a2ed73a ssam_device_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x30722325 ssh_packet_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x31059dea ssam_controller_statelock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x3358213e ssam_request_sync +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x35d2ebbd ssam_request_write_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x39dfe486 ssam_controller_get +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x424dbc94 ssam_request_sync_init +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x506e653c ssam_device_driver_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x628f8b1f ssh_packet_put +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x731dfaea ssam_notifier_unregister +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x7ffa719a ssam_get_controller +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x808fd3df ssam_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x82a87ed4 ssam_device_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x89b2ab2d ssam_client_link +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0x9ef8c06b ssam_device_get_match_data +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xa9f7707f ssam_request_sync_submit +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xb4f0608c __ssam_device_driver_register +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xb52e0377 ssam_request_sync_free +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xba1e383e ssam_device_add +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xc2bd582d ssam_device_id_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xcc474aa7 ssam_bus_type +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xd0c5332f ssam_remove_clients +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xd66a2d93 ssam_controller_event_enable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xdb7194fd ssam_controller_stateunlock +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xe47a0b38 ssam_request_sync_with_buffer +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xec29deb5 ssam_device_remove +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xf11120ed ssam_device_get_match +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xf1ba869d ssam_controller_event_disable +EXPORT_SYMBOL_GPL drivers/platform/surface/aggregator/surface_aggregator 0xf9cd281d ssam_request_sync_alloc +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0x48cf4c48 san_dgpu_notifier_register +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0xcc0a82ca san_client_link +EXPORT_SYMBOL_GPL drivers/platform/surface/surface_acpi_notify 0xd60bd773 san_dgpu_notifier_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x329090d8 devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x4d6f0098 reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x71ee5a4f devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0xd8583339 reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x290f2de3 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x61752559 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xec180395 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x47f611f0 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x8bb396b9 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0xe846e599 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2eae82b0 ptp_qoriq_isr +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x376d5834 ptp_qoriq_settime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x43be45af ptp_qoriq_adjtime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x643ae4c8 ptp_qoriq_adjfine +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x77ab69f1 ptp_qoriq_enable +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7ccdeea2 ptp_qoriq_free +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xa40fa95f extts_clean_up +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xc7e409b0 ptp_qoriq_gettime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xd05a9a7e ptp_qoriq_init +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x45339c92 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5271cb85 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x89f042a2 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9b7b60c2 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd2d14a16 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x74ba71f3 rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2e8b12b4 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3b8a3bc0 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6de1053e wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1233f3c wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe276ac0b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe7a4f99e wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x001b9228 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x09436845 scp_get_rproc +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x0fdf0a7a scp_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x23066096 scp_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x2626513a scp_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x540477b5 scp_get_device +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xe59ca5b8 scp_get +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0xfd05e6dd scp_put +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x09313652 scp_memcpy_aligned +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x0adffe6c scp_ipi_register +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x1409749b scp_ipi_send +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x185e2505 scp_ipi_lock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x5bf6576e scp_ipi_unlock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x7aed7a96 scp_ipi_unregister +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x0fa538df qcom_register_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x1803c17f qcom_register_dump_segments +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x209b9b95 qcom_add_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x257adeb1 qcom_add_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x394245e4 qcom_remove_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x6316104e qcom_remove_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x8bdda20f qcom_add_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xd0960c95 qcom_minidump +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xd6cc0cc0 qcom_unregister_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0xd7ddfa5c qcom_remove_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_pil_info 0x30e58241 qcom_pil_info_store +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x0ac73ff9 qcom_q6v5_request_stop +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x2a4a8bde qcom_q6v5_prepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x3a9d3090 qcom_q6v5_unprepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x3a9fde4d qcom_q6v5_wait_for_start +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x85e9b34c qcom_q6v5_deinit +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x9db46dbf qcom_q6v5_init +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0xf13e0acf qcom_q6v5_panic +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x1482d168 qcom_sysmon_shutdown_acked +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0xa881c6fc qcom_remove_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0xe973e205 qcom_add_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x6faffdb0 mtk_rpmsg_create_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x86903274 mtk_rpmsg_destroy_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x6be59b74 qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf14f5684 qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xfd2d5a1d qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x350cb2d4 qcom_glink_smem_register +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x72dd75d9 qcom_glink_smem_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x02ffc7d7 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x04f035d3 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a2d9e30 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0acda887 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1806066c cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1e9b8547 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x22dc3edf cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x27654ac0 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2dc48390 cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f27d04d cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x36f7a855 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3ccaf0a2 cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4d4e225e cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5bb913d0 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x618e68f1 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6198e964 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62861919 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x666daf1a cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x68978c80 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6c74b961 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x70353d0e cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a6580f0 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c504b64 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c72aad5 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7e75c746 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8285be2c cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x85e2396e cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c5c9321 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x93fb4403 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa605898a cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xabd290bc cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xad71b2dd cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb429f13c cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb559c4bd cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbbcba9ae cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc011af75 cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc4f2e7e3 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd229b765 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd8d0d505 cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbc33ca1 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf7a7667 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe7110113 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf6c149e4 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfa455141 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfdc090ba cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0e53f2ce fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x15da2c21 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x196a091b fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x24acabb6 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x34d2f194 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4c1f0082 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x53ccc1ec fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x62b7bf66 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x717e0e00 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84da6ec3 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x979161e3 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc948fd1e fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdbe29ea7 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe93490d7 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xec469759 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf6590077 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x6aff710d fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0xeebaf7cf fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x02d70291 hisi_sas_sata_done +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x0f5a6f7b hisi_sas_slot_task_free +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x330f8a03 hisi_sas_sync_irqs +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x34ee2d79 hisi_sas_host_reset +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x3f659d23 hisi_sas_alloc +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x40ac648c hisi_sas_get_prog_phy_linkrate_mask +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x43943fed hisi_sas_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x4fc22123 hisi_sas_stt +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x50575f4d hisi_sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x65852a9a hisi_sas_phy_down +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x6a249e48 to_hisi_sas_port +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x77cbb71b hisi_sas_scan_start +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x78e9d359 hisi_sas_probe +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x7e965b16 hisi_sas_release_tasks +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x8923c637 hisi_sas_phy_oob_ready +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x89316cca hisi_sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0x9e6e4b99 hisi_sas_free +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xa834e278 hisi_sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xace115ee hisi_sas_controller_reset_done +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xad3e3d66 hisi_sas_remove +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 0xbd72f078 hisi_sas_init_mem +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 0xc928749c hisi_sas_stop_phys +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xd1c85159 hisi_sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xdc9cba14 hisi_sas_get_fw_info +EXPORT_SYMBOL_GPL drivers/scsi/hisi_sas/hisi_sas_main 0xe0d32391 hisi_sas_debugfs_dir +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 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 0xf90d8e8e hisi_sas_controller_reset_prepare +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x015a92da iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x77bc3fc0 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x78eed944 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x8f6e5cd0 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa3d9d0e4 iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xaac8e5fc iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf234fb2c iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x344f6528 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07150139 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07311946 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d88e38d iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1699a331 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x205be8a4 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2333d31f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2469f158 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26e4237d iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28310138 iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2c69d46f iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2dce5481 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x457bcf69 iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45fadf08 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4da70c79 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50534cbd iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x570245e6 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x605c2ec3 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61ee8959 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62b4cdd0 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63686d6b iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6f644817 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71f0d029 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x744a78ef iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x76c00892 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81cd3eaa iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85a9b45b iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87b2c3bd iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d89dbf5 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90bab8f7 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9692ad4b iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x98db9194 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a089f8e iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa1fecec3 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa2e73cb7 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6441c86 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa7249354 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8598e11 iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc9be2d9 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcfb4e8ad iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1cccb82 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2fe44eb iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe47aed8b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe6d0ae25 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee194741 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfab87ebf iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe3ee7c3 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x13c4513b iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x413e7040 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4fbf8d26 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c922e23 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6b775f30 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fc2ede2 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x80b2ae04 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x81143480 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x89d11db7 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa202fc65 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa23639b8 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa8db0401 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac294bfa iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3221afb iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc29bd5a1 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd9af674b iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe5b3ef2a iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x01f8fbb4 sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x02383db8 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x03b1d0d0 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x04992176 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0bad43d0 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0cbc4688 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1420915c sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14b36195 sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16629642 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x197a819a sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2258de6c sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x259e61df sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3009c0e3 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x39867e89 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3c5d096e sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x461a899a sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e3d48cf sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x569708e2 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x59ef3dc2 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5d03552e sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6209a65f sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7c568ca2 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84b4d211 sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x88a5846b sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c9c9ccc sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93b706ed sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac8ea7fc sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb37d5c6c sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb8f3c46f sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc162193c sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd28fea61 sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4b9ac1b sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe9a152c4 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe9f04dc3 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf5924a7d sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfaea22ac sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfbc8e9f0 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0x3df641fd fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07316b69 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0736dd10 __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08eee789 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x09ecd867 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bffdf4a iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x101206ca iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1039f298 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1334cc0e iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c3a9d55 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x21db96d1 __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27edda2c iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x299fd08b iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x30eb2274 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35fb0c71 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3785e561 __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d03090a iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x492c167f __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4b942afc __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4dcfafba iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5387f04b iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x550702b6 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57faf608 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bfaa2c3 __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60d074e7 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6f21b8e2 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x765ee5a7 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x779f97e3 iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7f540d17 iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a005f1 iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x87299a27 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88768c48 __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c144c89 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa0cbfa91 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa2cf2444 iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa643c446 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa976bb3 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab4674c8 __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac539926 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb7dbb0b6 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbab65f6d 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 0xc352ea7f iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd50b07d iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd153fe8a iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd47906fe iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4e55f1e __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd600dee6 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd8ce7998 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc1a6d17 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd4d7afd iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde749e1f iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4c79fa6 __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5a0ba85 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6e5f6cd __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0398474 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf4037333 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf4165405 iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf980882c __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x050d48e9 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3db063a5 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x98cac74f sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xaae231f1 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 0xac014bdb 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 0x0bf973fa srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x116d7569 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1902178a srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x69b79b46 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7da38903 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x860b62fd srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaa882ee2 srp_rport_del +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x08d3c74e siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x5f3a4c2a siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x8a47d5aa siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xab56bd0e __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xb52c94f3 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xb66c0122 siox_device_synced +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1443e622 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3118de92 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x357cdbce slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4ed6bc8f slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x519cd0aa slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x68372d9a slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6e135377 slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x753a9306 slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x76f0bfc3 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x81b27ef4 of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8260782f slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8dcac571 slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x939e62d6 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9c8e0ff3 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9e1249f3 slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa1890eca slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa5036cb9 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xaad5a8ae slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xc14d2f02 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xcc374e90 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd01cffef slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd0d0d014 slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd19f8060 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd370f440 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xdfe39dd4 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf4187fe6 slim_register_controller +EXPORT_SYMBOL_GPL drivers/soc/amlogic/meson-canvas 0x1990b3e6 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/apple/apple-rtkit 0x2bee48da apple_rtkit_send_message_wait +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x56abeaa9 apple_rtkit_wake +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x8508c61e apple_rtkit_shutdown +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0x96a48e9a apple_rtkit_send_message +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xa0fb42c7 apple_rtkit_boot +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xa859d421 apple_rtkit_reinit +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xe2d8a423 apple_rtkit_is_crashed +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xf3b992ac apple_rtkit_start_ep +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xf8b95289 apple_rtkit_quiesce +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xf92843a1 apple_rtkit_is_running +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-rtkit 0xf9faab68 devm_apple_rtkit_init +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0x646576dd devm_apple_sart_get +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0xbaec16a4 apple_sart_add_allowed_region +EXPORT_SYMBOL_GPL drivers/soc/apple/apple-sart 0xf2253fbc apple_sart_remove_allowed_region +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 0x0b3a2f7b dpaa2_io_service_register +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 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 0x8bd848b7 dpaa2_io_store_create +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 0xb9e81961 dpaa2_io_query_fq_count +EXPORT_SYMBOL_GPL drivers/soc/fsl/dpio/fsl-mc-dpio 0xe76e0b0c dpaa2_io_service_deregister +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x001e0af2 gpr_alloc_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x3dd22641 aprbus +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7cfcbf7e __apr_driver_register +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x8d7249d4 gpr_send_port_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xc31a37a8 gpr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xccf28c8a gpr_free_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xec3f2807 apr_driver_unregister +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0xf87b35c6 apr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x03c9a66d llcc_get_slice_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x0679b34d llcc_slice_getd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x7e773088 llcc_get_slice_id +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xad3516c4 llcc_slice_activate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xb534ec76 llcc_slice_deactivate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0xb68b1300 llcc_slice_putd +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x34c9d0dd qcom_mdt_load_no_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x41c6fe35 qcom_mdt_pas_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xd83477bd qcom_mdt_read_metadata +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xe8a3861c qcom_mdt_get_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0xfc124593 qcom_mdt_load +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x81905d5c __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x919bd534 sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xe918836f sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-cadence 0x1f90977a sdw_cdns_debugfs_init +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xa7908414 altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb9edd149 altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0x71b0147b bcm_qspi_pm_ops +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0xb881d592 bcm_qspi_probe +EXPORT_SYMBOL_GPL drivers/spi/spi-bcm-qspi 0xc9aca4f1 bcm_qspi_remove +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x2ff4146d spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4355aae9 spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa110e5fc spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd61a7a5d spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe2c5b224 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xee0d0f66 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x71e4efef spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x93de988b spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xdb2e99d2 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x174a2a96 spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x1b5210b4 spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x56f6cff6 spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5a365548 spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x6168dd86 spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x6a9ee051 spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7563ead2 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x78448611 __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7f5f0691 spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x9a05082c spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xa0280f42 spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xafbddf2b spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xbda89248 spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xd3ff75a9 spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xda77ab21 spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xdfa75154 spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf34114d9 spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf9ba9806 spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x7c4e5047 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x09575f30 anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x3d5ec521 anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x6f3d1c15 anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7ab18748 anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x8f625378 devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x9906a502 anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xa92aef44 anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xaea5ce04 anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xaf3c6267 anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xb1f44f6d anybuss_send_ext +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xb7c9c867 anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xc6e32e2a anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xed129682 anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad anybuss_host_common_remove +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x05ad5408 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x069ba8d4 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x1e5f6f5b fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x2c52691e fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x1d13ea2d gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x24b77d33 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x53727cc0 gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x74db1fec gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7563fd3a gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x995caf2d gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa1acf737 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xa9b5d95c gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xd2c3a18b gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xd37b435d gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xe12ef603 gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xf8c6d14e gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xf97e3398 gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x27b17ccf gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x4519ffb6 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x5393c1ee gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x542489d8 gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x57e02456 gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x728014ff gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x9f33e01f gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xa19a83c2 gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb20de4d2 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xb6323489 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xc25cbc4b gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xd89691e1 gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xe5586b28 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 0x4931d4cf gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x4dbc441d gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x5a108b0f gb_audio_manager_add +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x79eef2f8 gb_audio_manager_dump_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0xaeac8ca2 gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xde2d9b7c gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0xe58e08b4 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x0631c818 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x5036c33b gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x03af2faa adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x0a42da50 imx_media_probe_complete +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x10e8764b imx_media_dev_notifier_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2886a382 imx_media_init_cfg +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3064f226 imx_media_capture_device_error +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3870f695 imx_media_pipeline_set_stream +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3952b73a imx_media_capture_device_next_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3a135807 imx_media_capture_device_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3afc4948 imx_media_find_pixel_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x4f6e201e imx_media_capture_device_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x534ba9e1 imx_media_find_mbus_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x552be106 imx_media_add_of_subdevs +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x58c53d92 imx_media_find_subdev_by_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x5d29a4a0 imx_media_pipeline_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x805ae5ea imx_media_pipeline_csi2_channel +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x85f05688 imx_media_pipeline_pad +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x97321c55 imx_media_find_subdev_by_devname +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xa19ff92b imx_media_capture_device_unregister +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 0xa9e2459f imx_media_enum_mbus_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xabc28540 imx_media_dev_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xad7563c3 imx_media_get_pad_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xb3c9b406 imx_media_capture_device_remove +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xba1c7b7e imx_media_mbus_fmt_to_pix_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xc0e6162e imx_media_init_mbus_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xc0e6e972 imx_media_pipeline_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xcb0a852d imx_media_alloc_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xcfdce573 imx_media_add_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xd4e45b7e imx_media_try_colorimetry +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xdcb37444 imx_media_free_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xe932b00b imx_media_enum_pixel_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0xfe4efc4e imx_media_of_add_csi +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0ba44be3 amvdec_read_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0f180976 amvdec_add_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x115655e9 amvdec_am21c_body_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x15049f38 amvdec_set_par_from_dar +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1567cc4e amvdec_abort +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1cb1e6d9 amvdec_am21c_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x2122aba4 codec_hevc_setup_decode_head +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x286e5644 amvdec_write_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x47eef7d3 amvdec_remove_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x4bd5aa6a amvdec_write_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x5d72887e amvdec_src_change +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x5ff35ee8 amvdec_am21c_head_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x66ca84ac amvdec_set_canvases +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x6ee16a2a amvdec_dst_buf_done_offset +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7132e204 amvdec_dst_buf_done +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7902f897 codec_hevc_setup_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xb345b323 codec_hevc_fill_mmu_map +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xc0a8ae5f amvdec_write_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xc2e988e4 amvdec_read_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xcdf2f60e amvdec_dst_buf_done_idx +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xdcafaa42 codec_hevc_free_fbc_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xec826cdb codec_hevc_free_mmu_headers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xf33ce828 amvdec_get_output_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0xf4b9254c amvdec_clear_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x584a67fd nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0xf7afe6e4 nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0xfbab743d nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x20a113f6 vchiq_mmal_port_connect_tunnel +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x2c7cc7f4 vchiq_mmal_component_disable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x3e8320c1 vchiq_mmal_port_parameter_set +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x51b2baf0 vchiq_mmal_component_finalise +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x6192e1a2 vchiq_mmal_version +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x640f7469 vchiq_mmal_port_enable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x6940b2ad mmal_vchi_buffer_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x7041c230 vchiq_mmal_component_enable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x73577d20 vchiq_mmal_finalise +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x87693b53 mmal_vchi_buffer_cleanup +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0x9c731a89 vchiq_mmal_submit_buffer +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xaca4dd80 vchiq_mmal_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xadaf4760 vchiq_mmal_port_disable +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xb15b15bc vchiq_mmal_port_set_format +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xde8dc1c5 vchiq_mmal_component_init +EXPORT_SYMBOL_GPL drivers/staging/vc04_services/vchiq-mmal/bcm2835-mmal-vchiq 0xee4d66c5 vchiq_mmal_port_parameter_get +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x010475f2 target_submit_prep +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x3cdf8147 target_submit +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x88bf41eb target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xdc81ceb3 target_queue_submission +EXPORT_SYMBOL_GPL drivers/tee/tee 0x04218a79 tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0852e772 tee_shm_alloc_priv_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x1e283b17 tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x2597b7c9 tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x2b95fd41 teedev_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x3f92f03d tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0x42fede2b tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x5604b33d tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x5d18d809 tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x61a9b8c2 tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x68560df4 tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7d4ff3fb tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7e05d00d tee_shm_register_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x85fd9922 tee_session_calc_client_uuid +EXPORT_SYMBOL_GPL drivers/tee/tee 0x87e3d14e tee_shm_alloc_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0xba883fd3 teedev_open +EXPORT_SYMBOL_GPL drivers/tee/tee 0xbc90ceb6 tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0xbcc16971 tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0xc0d0e338 tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0xc6de4894 tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/tee/tee 0xdfe50cad tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0xe7fd2b1d tee_client_close_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0xf7f015c7 tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1aa4729e tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x21b388a7 tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2f4c9173 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x335bb378 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3ddc295f tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4a4148b2 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 0x52672c76 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x5e66f232 tb_xdomain_alloc_out_hopid +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 0x68374140 tb_xdomain_response +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 0x87189f62 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8b62f95e tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x8fb36a0d tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x90548e23 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x912ae3d9 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x94201f10 tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x95034412 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x99e6a2c6 tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x9e83aa5c __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa1df535b tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa1eaa923 tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa3d2b403 tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb4146a85 tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb7c7cdce tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd383c36a tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd8ca232a tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xee292f09 tb_xdomain_alloc_in_hopid +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 0xff990eb7 tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x12b2a22c ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1e5f60c9 ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x21c9e8c1 ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x23dbf793 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x31f59195 ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x36a49219 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3c533251 ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x41169540 ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x44f92403 ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x468758b1 __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4cb15ae3 ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4d942b85 ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x78ac0cdc ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7d27c899 ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x97897aaa ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x9d4cb35d ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xac711aad ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb18a2321 ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb3508faf ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xba076583 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xbf3fd290 ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xcdb6c8c2 ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf2df1b16 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x07751463 ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x887129c2 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xff85cd6b ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/uio/uio 0x6d94d8c1 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc42c2c01 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc67c5de3 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc7ff3100 __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x2851c57c usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb73d10cc usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x00d24aff cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x38c9d97a cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x51223b4f cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x5d506e3e cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7d3d35d9 cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x8550108f cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x8b2405b0 cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xd1b9fa9b cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xfb1ce545 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x0cee1454 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x2258090a hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x67a64efc ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xefe9cd9b ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x1eb8ab72 imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x4d263b9e imx_usbmisc_hsic_set_clk +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x90398a6c imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xa67f7363 imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xd14efce9 imx_usbmisc_set_wakeup +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xf71ea7c0 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x10ca6bbe ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x335ac959 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x362ea837 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x655f9293 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x85a66895 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x8a1f8af7 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x1ad17b6f g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x22e87dc0 u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x35e6fa51 u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x478b81b5 u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4e69273f g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x5319a7d0 u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x6a822300 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x8916d563 u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x949c65c4 u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x99ce3361 u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x99f18986 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x9c5da132 u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa8449544 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xbe5eba19 u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xee44fdc2 u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x1995c971 gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3a1fd77b gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3f8c8d60 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x5bf92d6d gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x60df018f gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x64b138b3 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x74634124 gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x797cb315 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8626f27c gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8dc11cd9 gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x9c3d5289 gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xc2dd3162 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xcbe9dc28 gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xd42d942a gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xfab12643 gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xfe524c13 gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x151b5af1 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x4a3df9d0 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60db48f5 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60ea48a0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x87cafd9d gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc0a01527 gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xcb9bbc77 gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xdf51cf7f gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xe89dc424 gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x2c33f677 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x6c825859 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x70d05375 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 0x156e2bbe fsg_common_remove_lun +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 0x3927302f fsg_show_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x398778e1 fsg_ss_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x3c6a07d0 fsg_common_create_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x3e184d03 fsg_show_file +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 0x458e3d97 fsg_show_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x50790622 fsg_show_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 0x57a0085d fsg_store_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x5a529ec5 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 0x7578c244 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 0x824686dd 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 0x86a64f71 fsg_store_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x86ac9c22 fsg_show_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x8bcd239a fsg_store_removable +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 0xa04a9462 fsg_store_inquiry_string +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 0xaa1ebfd2 fsg_show_nofua +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 0xbbf0fa6c fsg_common_set_cdev +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 0xf3b5e47a fsg_lun_close +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xf4efc0c8 fsg_ss_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xfe43ba00 fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x06ef983a rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x08a89aed rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x33d26366 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x35d06c33 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x35d97b92 rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x59f30814 rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x9d41adae rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xc6c3edb4 rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xd2d3a2d4 rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xdc55ef67 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe5afe4a4 rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe5cb4a2b rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xea51c473 rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xeaa9344e rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xfca4ed92 rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0776a4f4 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0809e9f3 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0cb7e477 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0f23c1a4 config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x141505f5 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x189f01fa usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x197bb538 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x26fcbd99 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x27b94883 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x35cbba08 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x49150f48 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4da6b797 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4f7bb0ad usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5f1ec49b usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x61ad6c21 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x62282bcd usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x753e0806 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x770a8cee usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x77216e73 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x806f4dac usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x93efc5d5 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9ada0804 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9f118bd0 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb452235b usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb50df53b usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb775db55 alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba19e9b3 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc9d43b7e unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdcad493b usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf272f893 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf929ae96 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfa875914 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfebef4a8 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x2f69a866 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x3e1f2491 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x443437a3 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x5d01d078 udc_irq +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x628ced7d udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x90d9796b init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x9cfdc3ba udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xe02e0227 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xe4a40234 empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf5c8e82a free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x01b12bfb usb_ep_free_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x029000cb usb_initialize_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x039a8088 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0a8c3b4b usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0acfe2e7 usb_ep_set_wedge +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0d90d784 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2861ba39 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x29a9795f usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x40dfb1cb usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49d9f030 usb_ep_fifo_status +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49ff18d2 usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4ef1ae1a usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x506ab3a9 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x50b88f41 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x596e9860 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5fc294ef usb_ep_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x64884336 usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x65cabb3d usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x6c71b558 usb_gadget_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x6e5032dc usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x79122774 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7a41b9f2 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7be89624 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x882077d5 usb_ep_dequeue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x888855f9 usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8d69408a usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8e5cff41 usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8ee22689 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8f0061ba usb_gadget_frame_number +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9c57a04f usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9eb52803 usb_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9f9515b8 usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa9e74462 usb_ep_alloc_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaf201fa6 usb_ep_enable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xb281d30f usb_gadget_udc_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xb57de1ef usb_del_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc6425036 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc82892c5 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcb6565cf usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xde66655f usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xdec54269 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xf4b0a30a usb_gadget_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xfd1b8bb3 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0xe21837cc renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x82b46388 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xbc7d9db4 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x10b55446 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21de52b9 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x296a2010 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2c802059 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x321a849f usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4a8b7a15 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x562903e1 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5cef3ff5 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6f622978 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2734197f musb_readb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x46918593 musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x73164148 musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x7ead436f musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xade3e56c musb_writew +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xc040de8a musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xd7ea2bdc musb_get_mode +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe0842249 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe59efb0e musb_clearb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf0f95e51 musb_readl +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x8ea19ae6 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xa116f9d1 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc75452b3 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xef233ca2 usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xfa878af7 usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x989a39a8 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x69f189a2 tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x803be871 tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0xa24797aa tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0xef1621a8 tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xe915893f usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x053adc00 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0d90966f usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x161d4129 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2e99b180 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3d56ff57 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4ab518b4 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x54c6629b usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x71410c3b usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x808933b5 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9081dc39 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9f383d96 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xae3edbcc usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc142aeef usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcc255f11 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcda956f6 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd00796d9 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd1e663b1 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfabe260f usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfcfea4e1 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd7e9593 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x40cef7e2 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x575a097b dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x5a61475f tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xbe111953 tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xc529e32e tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 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 0xdf94fcf0 tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xea220941 tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xeb779665 tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x00996e3d typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0d2227c7 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1598f70e typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x15ae0cfd typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x17969caa typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x18b3ef5e fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x20fd5383 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2742c3b0 typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x28500240 typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3531b527 typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x36b0894c typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x390f35d8 typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3a2a5bf6 typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3cac3309 typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3ccdd706 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x402cdf03 typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x418548dd typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4ebaa210 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x502fc34e typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x55ace9ab typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x56e6fb42 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x58833147 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x61027f75 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x611b6af2 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x70ca94cb typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x74f3f5df typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7b0d7db9 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7df8024b typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8480b1b0 typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x86521d45 typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x89e9fc43 typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8fd1ea08 typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9049491e typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x92a3f982 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9c03746b typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9c91c2d7 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9e30a60d typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa254de98 typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa36e3130 typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa6a35642 typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa7adc2c6 typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb9b72159 typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbb9a5dba typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbee9117c typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc111a684 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc157541d typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcaee9704 typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcc1eea51 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd0fdb216 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd2fa1286 typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd3ca17c2 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd57eba20 typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd735801c typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe22a91dc typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe2bfa621 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe64ee622 fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeafc1eb8 typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1234a8b typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf3475dd0 typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf3e2f440 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc8df340 typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfed42ed7 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x2c26bb4d ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x50fd071b ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x6163a9c8 ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x625efd12 ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x70cab18f ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x73a5f6d5 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x8cf8d537 ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x989a0f69 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xb6dbf34a ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x0efc54b3 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x136f3668 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x1a314ee7 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x1d38c147 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x3665cdca usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x4666c4e8 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x6e4f4389 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x8d10fb01 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x8e65a7f6 usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x96a198f4 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x97e3d8f6 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xa8335b24 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 0xf3586e0f usbip_recv +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x0a152a32 __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x1de1e639 vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x21e9092e vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x24d4e313 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x3211674c _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x51cf07df vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x55efd8f0 __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x6f0c2b63 _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xd8003de4 vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xe2adf13c vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xefdf0040 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0xc068ba21 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0xb076efad mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0a5e4e9b vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0e5a9c26 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x1f51d9e1 vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x21fa63fe vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x263d7893 vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x272018b9 vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x27df9a20 vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2d00f526 vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x334f5086 vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3cca3c5c vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4fba86d3 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x605da9ef vfio_pci_core_mmap +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x638cb107 vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x66d48da5 vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x68db5dc9 vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x875faccc vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x9770fd6e vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xbd579cb8 vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xf463a549 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x0f950fef vfio_platform_remove_common +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x18458ac7 __vfio_platform_register_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x23b6bc8e vfio_platform_unregister_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x8f721976 vfio_platform_probe_common +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x13415637 vfio_unregister_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x2469aaa6 vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x281954dc vfio_uninit_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x30bad01f vfio_mig_get_next_state +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x5b7de7a7 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x60a634c4 vfio_info_cap_add +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x8127c819 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x9bd3c242 vfio_file_has_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa619763c vfio_register_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xbf17d5d5 vfio_file_iommu_group +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd474129b vfio_assign_device_set +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xdebad560 vfio_init_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xfa1b5b1d vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xfc2191d7 vfio_file_set_kvm +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x1aa9badd vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0xe38bb76e vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0266939c vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0c720de5 vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x12d3ce32 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x214375d4 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x25f0c7b8 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2e31f393 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x34b80f78 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x35fe248f vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x386ed34c vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3a510813 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4bb208f7 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x51df16c7 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x579c45f9 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5d2a7570 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5db5c6d1 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5f5a27d1 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x70500aba vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7328386b vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x77b8efa9 vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x870d9933 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x926f89ab vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x96c9c003 vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9823f4d9 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9e244c25 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9f6aed20 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa83963c0 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xac5ef1e8 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb398ec32 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb5d644f9 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb84d60b8 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc565375f vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7276cec vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7a6d428 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd5ebeaab vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe62108ea vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe6857db1 vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf263717a vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfb3b0478 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd700ea5 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x83be64b9 vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x885512a2 vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x8a7d8ee9 vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00614e08 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3c258fbe ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3ef56165 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6970fd9b ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8e2651e1 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9a3a6ff8 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfb4b4c96 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0xd5b719fe fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x2c5762a9 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x653d3a41 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x10d416e2 sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xb6b5ad14 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x047c350e w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1cc14571 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2c018997 w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x76570f9d w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7de10226 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8ab5357a w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8cba8c82 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9cf1f5be w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc8330e66 w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0xdefea42b w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf873377d w1_write_block +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x13c94bd4 xen_front_pgdir_shbuf_alloc +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x39bb7412 xen_front_pgdir_shbuf_unmap +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x64cc72ff xen_front_pgdir_shbuf_map +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x8d6d8c0e xen_front_pgdir_shbuf_free +EXPORT_SYMBOL_GPL drivers/xen/xen-front-pgdir-shbuf 0x970ea3a0 xen_front_pgdir_shbuf_get_dir_start +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x32836da2 xen_privcmd_fops +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x86c0e7b4 xen_privcmdbuf_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 0x8554b8c6 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x85c83bb0 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 0xd14938b9 dlm_posix_get +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x23ae9ec3 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3078b3f5 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x47a01e1e nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7247e634 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x73ab3dcc nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x80f216ab nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc02c43c3 lockd_down +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02b6d738 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04875b40 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05d5ba79 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x061d636e nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x078ec28b nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x085960aa nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08eab954 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09eb6c65 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a3533dd nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11a31a15 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12f41ad7 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13401ade nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x150ad1dd nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x16d24aee nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x19637f81 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c63c4ad nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1eab4abc nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21ecf582 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23ad4d7c put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25ccdb73 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x278d272f nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a1aa3a0 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a65258c nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2be94dab nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c67876d __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cac6ee4 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e481aee nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ef23411 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30496988 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3101ee9a nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32dfbf28 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3626a45a nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36a8a2bd nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36eb3526 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x380f9ade nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x38baef75 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3d18938c nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3d44e057 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40561584 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40739385 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x422a0d85 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44cc3a41 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45a6cdb5 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47684f0b nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x482621e5 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4844dd0a nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50986b6b __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5165428d nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x523b9b0b nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52ce79a0 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5467332f nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56426dc4 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x567c6724 nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x586528d6 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59923eb3 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5adbeab0 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bb9d0fd nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ece08c5 nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f2703e9 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61451158 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x632f078e nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x64d8d870 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67b47ad4 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b31b494 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6cbabc82 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f3a64ff nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x70d860c5 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72185f1d nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x740fbf14 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x761e8f56 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78b21e73 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c339a03 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c3dcc8b nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7d186261 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7d1bd706 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ea9c77b nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x813010aa nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82d47e10 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84d9f863 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x851cc681 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x880e4edd nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8841e5b7 __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88561413 nfs_create_server +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 0x94fb97ac unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95007f7e __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97baec27 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x980d05b9 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9aa39067 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b649623 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9fa60b53 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa43e9b6c nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4679efc nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa568c459 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac3bee3f nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad434dea nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb02f1f36 nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0cbd174 nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb137b13d nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb213b823 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb28adfd0 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2e4742e nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb48ad804 nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb979a5d4 nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbcc99568 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd1913a0 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbdd1f395 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc08ddf21 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc220e9d3 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2e8ef8c nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2fcdb81 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc434ee54 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc823400a nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd407628 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce0c7404 nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce4ded17 nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf958cd5 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcfbfb014 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2e343a1 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6c32060 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda62e88f nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbf48051 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdcd7951b nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdfd99543 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe08fec23 nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe24e00ad nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3234ca8 nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3c74b4a nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe46b449d nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4d70e0f nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe5195165 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe677245f nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe70507df __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7fa655c nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeab23af6 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb563fc1 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xecb18cc2 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef397c68 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xef4586eb nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0dce046 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf3e8806a nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7d9350b nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf96f04c4 __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0xca7bc39f nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x022b9100 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x02d0f8ec pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x04bdfbdf nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x069e4c0a __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0aebca68 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0d26b718 nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f01076e __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0fbe4255 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x158392e0 pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x16c34478 pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1810c680 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x18204287 __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x19ac5b1b pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1b2be5ec nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x20215544 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x248df6ab __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x276f0168 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b73e3ab pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2d6420b2 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x323992b8 __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x32bb6e05 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x37199210 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3a4aa157 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3d7b9961 __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x401703c4 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x421c4fa8 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5161b77e nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x52edfc12 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x59f79ead nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ce462a3 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6085edbd nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x638ed818 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x686ac960 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6d57fbe8 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ab7bcc6 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ce0688d pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7e1e25ec nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fcebaa7 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x80428228 __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8137bd54 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x82409884 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x828b98bf pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85901b71 pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85df753f nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x86fd0412 __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x892f78d5 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8f8cd784 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x942111e5 nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x95d878d8 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x961435df nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x974a1614 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a1a74c3 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9bc8f770 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa01fa989 __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa1228fcf pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa215331a pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa21d9099 pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa83e3698 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xad4718ea __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb56a9f25 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb7cea128 pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb8facdce __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb93c3745 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba53a1ef __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbdfe5425 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc5594874 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc55aff5e nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7a9d954 __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9370051 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc94872bf pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc9a41e39 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcb55b075 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcdafd7b5 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf29b95f __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf508cda pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0ecfaad __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd21cf809 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd527a03d nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd679010a nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd993ed5e pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xda384d24 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdaa9e1dd nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xddfe0042 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf6991a4 __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf9c0355 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe19f5ee0 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe4fe5819 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe89fc067 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeae8522f __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec601877 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xedcca5bc nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xede41327 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf4a7fab3 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf551eec6 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7801360 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf8c739de pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf9954139 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf999267e pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1192568f locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7b4075ba locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0xc41d8499 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x287f78ab nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x3148e9a4 nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x4888921f nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x770f9aa7 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x4836f0fb nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3004a9bb o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x426c2a9f o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4d8db641 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2 o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5e95a4b2 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x823da059 o2hb_setup_callback +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 0xd80c703f o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe8439551 o2hb_register_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 0xf8d259ab o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf982e6db o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfe1298f3 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x570ceb21 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x577f5eb1 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 0xba81338c dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc0fef304 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 0xddd404bb dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xec428ff9 dlm_print_one_lock +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 0x54216dda ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x76f40744 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x80f4d418 ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9507547f ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9aabe49a ocfs2_plock +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 0xdd424ee7 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x8c659ecb unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x90be4649 register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x303d22c8 register_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x7ef8e877 unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xabd9af6d cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xc4c73891 cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xceecd9e4 cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xdef1096d cifs_md4_update +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 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL lib/bch 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL lib/bch 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL lib/bch 0x860a2eab bch_decode +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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/crypto/libpoly1305 0x39e8fa4b poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x4a833012 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x8c874435 poly1305_init_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x5a7b7e49 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xb944bc69 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x804a5b70 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xa32f3d9e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xeb2f825c init_rs_gfp +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xfd581da1 free_rs +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x30c1c754 lowpan_header_decompress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x5d251f4f lowpan_header_compress +EXPORT_SYMBOL_GPL net/802/garp 0x1037c2f5 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x26781855 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x3ed51361 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x90c44113 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xa3b4c3c8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xc277cfd3 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x2264823f mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x248de0f7 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x3756995c mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x3e4482a4 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x85f29058 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xd190db0a mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/stp 0x5981d9d4 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0xeba7d1a5 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x180cde48 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xabcee7f1 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 0xc7160121 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x1394a1d7 l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x2c541bf2 bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x57466001 l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7e17efc6 l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xb9289d31 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xdbefc864 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xe74fa3bb l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf569c7ca l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xf77208c5 l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x2bf1eb2e hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x09eb182e br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x0bab90f0 br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1e5275ec br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x20e97073 br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2277b610 br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2b172cb7 br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2c962dfa br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3ad40c2e br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x543b0208 br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x5c6847b1 br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6e2eb46e br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7212589f br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x8ab2a0a2 br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0x8af63e9d br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x8d285529 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0xa86bc93c br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb0cb1421 nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb623e81b br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0xbbdd0df0 br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xc4987304 br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xcc8d4ee4 br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd025a41f br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd59c5609 br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe0f257b2 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0xeffaec63 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/core/failover 0x412f9ab8 failover_register +EXPORT_SYMBOL_GPL net/core/failover 0x9e9db03d failover_slave_unregister +EXPORT_SYMBOL_GPL net/core/failover 0xe92e7e60 failover_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x014a1f33 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e4fac9e dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0f9f96ce dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1083f37d dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10e1d0e8 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1187d0a9 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x21ff14b8 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cf8303a dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x35578a5e dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39787f63 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3cc19300 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4fa3fb69 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5af8994f dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5baf4ea9 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ea8277f dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61e6379b dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70ed9e55 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x75425de1 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f5a7091 dccp_ctl_make_reset +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 0x895d8c88 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c7e0072 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a0a5e5b dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa13838ba dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa915a8ef dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5702af0 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3a12369 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc94946d8 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xccf5b362 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd2a892bd dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe1357533 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec36eecc dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeea0aa99 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdb8cfaf dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x13bb4e9b dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6d3fb19a dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fa7c165 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x86655b9e dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc79b97bc dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcf12e83f dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x1638dd24 dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x24ce9f04 dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2c014d3b dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2c59d903 dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2fb3a486 dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x46bab4c5 dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x545673f4 dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5c980d0e dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x64abb8c8 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x776d998e dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x8156d3a5 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x875f890e dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e59271d dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa8dda365 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb3b4447c dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xb72ca6b0 dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbc40fbc6 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbcbdaa66 dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc23e8d5f dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc507edee dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xce26f93e dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd077e855 dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd20135e5 dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd5701ee5 dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdcb427a0 dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xe0b5c8c2 dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xe5cb466d dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xed4cb65e dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xed7c7e1d dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xee017750 dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xee7e9788 dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf12cb979 dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf13e1803 vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf17d9b04 dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf6ea7faf dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfd3e2b67 dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x279bf12c ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x87e2553b ieee802154_max_payload +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x98afbc68 ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xa031db59 ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0xccc42f85 ieee802154_hdr_push +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 0x7b334c15 ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0xe7888e98 ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ife/ife 0xf5431672 ife_decode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x4f3598df esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xa2d1281b esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xeb5ead21 esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa973b440 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xfe53d1e4 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0d5a4a56 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x44ccb7a3 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5cbf3cc2 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x6e90d09f inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x80a035ce inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x8f168075 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa57b1468 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xceb3c224 inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xff9f90d8 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x873780be gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x260c38d9 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2f5c370d __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x33f4f71d ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x345123e8 ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x542550bd ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5eebb53d ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6729f997 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8ee76fdd ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x94b51aa1 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa7b167f0 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb21e83cc ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbd107e0d ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc74e7732 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe778362e ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xea38e007 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf82788d4 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfd296a18 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xe65b2084 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8f134209 ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x7b9e4c99 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xa999a46c nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x0cbfeb19 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x0503c35f nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x18f178b3 nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x1b2d8780 nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x370af811 nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x51732f75 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x5803c982 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x76be44eb nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x472acd15 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x0c9ddc41 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x4ecc976d nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x82e396b7 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x5ae032fb nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0xbf45e1d3 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3c51ef2e tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x962becc5 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa36cae7e tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb05523c3 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xfd4cb771 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x22a9b746 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x4d82ccf6 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x63c4dc55 udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xa5db96d3 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xc4ef3c6d udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xe0cf091b setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xeac2cab4 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xec32bc1f udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x3fe187f9 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xbebecfeb esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xc6f72466 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x84da0aeb ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xae92dd14 ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xdfe7d7e5 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x0a1bd4ba udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0xdf73f09d udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x052e6cac ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x1138b668 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x748ac332 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x88a1976c nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x8fab65e4 nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x56da3c99 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x850940b4 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x935a9c61 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xab946a2f nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xb91d3086 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xc2747fb7 nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xfdf7d88f nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0xc04d6c7c nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x2e6e5d41 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x671581db nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x834e1b94 nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xf75e6e3d nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xffaaa0e0 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0b05b64d l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x12f0d414 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x205c3914 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x32ebced1 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4038d1cc l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4760adb9 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4b30cdb8 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x67f71420 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x78649578 l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa3cb6b0d l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6fd9650 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xab70bb8c l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xabcb8a25 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbed4355a l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbf358729 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc6de1642 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc81fc9d8 l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe342844c l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4161604 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf045eac7 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf3e345e2 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0xd4dd4834 l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x299bbf89 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x041b427f ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x14f32c14 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x17623927 wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x203230bc ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2978ee4c ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2b218cd3 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3182b226 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x394c0827 ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3e5b771c ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4c9af6c8 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x677a7622 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x67b70c19 ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6cf2270c ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7621cd1f ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x86d8d5b4 ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9ed6b37a ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1247034 ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa4b2b77e ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb0c5636c ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xba992608 ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbec2c7a0 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd0da7e1f ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd42b810b ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd75177b9 ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd8e09da4 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x17109624 mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x1792595f mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x6c2fd11a mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xda6c38db nla_put_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xe425a789 mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x019baf90 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1477a0be ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1a74701e ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1c4a350e ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1e370199 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 0x2a3fece5 ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x35d80e02 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x411f9472 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5f6d85a9 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x74dded99 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x767f1060 ip_set_nfnl_put +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 0x87e70984 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8966fcd4 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8fa141bb 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 0x9f233ce6 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xab6f0670 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xd7e976c1 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe5b706b3 ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xea205176 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2dadbc12 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3900db28 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x426d416e register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc4a660e6 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x1a14555d nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x3471ecab nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x4cc30e1e nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xcc4cd4ae nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xded40268 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xf2a1dbb9 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xfbdfb63f nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f81ea95 nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12257c30 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19712158 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ca6b7cf nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d21da2e __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ed5f87f nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20f2ee7f nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21669c7a nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21ca37d1 nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28ee919b nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28eff409 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a7b7284 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35ec91e2 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b744181 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d04b6ec nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4178b3b2 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x418c2c0f nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x437bd3d7 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44534859 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44d6099b nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46cbe941 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x482df402 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4af2cd7c nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f64430e nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50028185 nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53761bca nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5385f109 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57bad1a9 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ea17803 nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64ff79a4 nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x676c0a3a nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a9de147 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b7988ce nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6bde509e nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7422bfc7 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x774d002a nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x824ecc08 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x84e23fde __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89df07cf nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91c44048 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93bb6312 nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9892dc5f nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9adb7399 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0c01bdf nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa37a227f nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa38db1e1 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa522f025 nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa2330a6 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa9cd429 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaba66777 nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf0847f0 nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafbd6cf5 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0a82cbf nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfd697c2 nf_conntrack_tuple_taken +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 0xc56259a8 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc71ed885 nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9651b48 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9dc76ef nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca4f13fc nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca64e25e nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd179607 nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd899cd3 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4e8ced3 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd505c3e0 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd537ca83 nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5bae837 nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7bddaf8 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd80bf8d8 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdba7326b nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc6d3d0e nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0aed48 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0804e84 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe150682f nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe46c4b58 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9bcc620 nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea14813e nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecd202d7 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefa89f38 nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf20b7822 nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7894b25 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7db379f nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa448acb nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe731af8 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfe9b5103 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfed31392 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff0dc78c nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffedf339 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x0d0e3808 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x70de2539 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc7954032 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2582c304 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2b733dc2 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x368acd35 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x823c8ee3 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa0ce7a15 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa13572ed set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbb24217b get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbe8c49a0 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe5c4fc45 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xee9dd889 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x12e2e14b nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3bbb220b nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x01ff724a ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x33f83c57 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x65c7593a ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x891cf377 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc5509016 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xde215dcc ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe6531864 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x23f69c60 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x867d7c15 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x2b3b7ca0 nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xa39a95a4 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xd4a4991a nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x05c2c2a8 nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x096786cd flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x0be834ab nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x13d16c08 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x19bac1e3 flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x23967951 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x39c87b9f flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x482ab197 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x720773ad flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x72f223de flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xa0d0c168 nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xab95a409 nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xae505500 nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xc06d5d91 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xc1679e1a nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd53d0342 nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe06ac9bb nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1e38f6b0 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x2e2c011a nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3bc17c49 nf_nat_masquerade_inet_register_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4122f186 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4287a70c nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x429ab867 nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5cebd095 nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x65fa5557 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x81b86738 nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8b2cada2 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8e3aa556 nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa994071d nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xba44fe63 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd4cbc5e3 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd7c1be37 nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd9c25654 nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xe921cd2c nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf0e3a1a7 nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x06e01af7 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x15e240ef 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 0x67ba2348 ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8a8b2ae8 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x912feaa7 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x97ef829f nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xbadad5ac ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xd798e1e2 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xed6fa642 synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xf112e3de nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xf7d28be6 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x00cec8a9 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0630f548 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0fc5a654 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x14839880 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x17859a56 nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1980d7ec nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x19d6845a nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x32fa3f27 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3489cef7 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c221dba nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x469473ad __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4d596ad3 nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4d6c3f41 nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5281e1bc __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5556afff nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x563e574b nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x565dab03 nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5b6a7da9 nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5d0f4059 nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5fb53a4c nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x62993154 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6352ccef nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x73b2cfd8 nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7a835eb4 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x96757aa8 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9a757bdc nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9d33ca2e nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9f981b04 nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa9bf0f0a nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xad29fea0 nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xae47eb8d nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb990fa82 nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbdad22fc nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbf74325f nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc801db11 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xce6ca838 nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xcfd89120 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd9630d94 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd9678fb0 nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe50e7c67 nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf244b4ab nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf6a12e1b nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfb2e08cb nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x402b652f nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4f176aa7 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x642afc18 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8039f7bc nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9042ab0f nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa9b73a2b nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7c96b4e nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x253c6c25 nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x7c4d8327 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xc30ec77f nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x6604f73d nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0xf43644de nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x2fef4ceb nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x30e95602 nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xa736901b nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xae07e11d nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xff6d32ce nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x2a460780 nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x7c754254 nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x93746685 nft_reject_dump +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 0x0fc59460 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x128ff39a xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1be81009 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x23b2a147 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x24468f52 xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b315b8f xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x580e2c0f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x589001ac xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x62e6ee93 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x751efabc xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bce4603 xt_data_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7e5995d4 xt_unregister_template +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 0x8b07bbef xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8ccc76c2 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x98c37048 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a19f795 xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9b29d758 xt_request_find_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 0xa9b12d1d xt_check_target +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 0xd77edd81 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bb821b xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xea70a0b3 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xef7d156e xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf023eca5 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2023aab xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfd8b7806 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x01e4fbf6 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xa762f9d5 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x61c1b330 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x895a98c5 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0xa8b3c633 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x6181fad7 nci_uart_unregister +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xde016c16 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0xe016eda4 nci_uart_register +EXPORT_SYMBOL_GPL net/nsh/nsh 0x50e15999 nsh_push +EXPORT_SYMBOL_GPL net/nsh/nsh 0xd74ed9c7 nsh_pop +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x00b8976b ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x17e0d87e ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x312cb8a5 ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x46996c1a __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xa6eb9b35 ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xf8406bff ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/psample/psample 0x2c743ca5 psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0x4a2a03af psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x7a99262d psample_group_take +EXPORT_SYMBOL_GPL net/psample/psample 0x8864b65d psample_sample_packet +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x602760ed qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x80d3b97b qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8d25501f qrtr_ns_remove +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xa47e91ba qrtr_ns_init +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xd2231231 qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x05ff8b18 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x0cba86f6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x13350260 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x134a3c24 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x17a293a7 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x1afe8f1d rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x1f9bc0bc rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x33ed9a8a rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x3f1b5222 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x400aef5e rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +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 0x5eaee2d4 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x5fde71f1 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x69e2f583 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x69f8aeb5 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x730d1d8c rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x7750e647 rds_inc_path_init +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 0x8ca8cf08 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x913f4734 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xa53cb9e8 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0xa7bc08cb rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xb28a5ee0 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xbbadb178 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xbc5ef309 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xd084c86c rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xde8ccf04 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0xf1fb6759 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xfb4bfe09 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xfbb63a43 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xfbc4795f rds_info_deregister_func +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x2efe84b5 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0xa3e85fe4 pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x5fc3c6ed taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0xa7f08102 taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x40dcbd66 sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xb0e50dc6 sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0xfb90623e sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0xfe07859d sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/smc/smc 0x28e081e5 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x3f06a09f smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0x481887f1 smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x65d0b8f8 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x69334eb0 smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x6d9c68b5 smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x759056f3 smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xb2e4adc9 smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xc6f740c6 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0xd7f8b665 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 0x482ac5a4 g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x84124d57 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x96faa479 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9a544de9 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe12e2861 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00526c44 rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0157bc06 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03440dfb svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0407c4ff rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0421276f csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047ea6e8 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04886c5b xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x049ae41b svc_set_client +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 0x067e6258 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x070af4cb rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07859d28 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07b15c0b xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a2302c1 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ac1a9be cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bb00db3 xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bc84a0e svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0de4721f sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e5cf0ca rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11e7ca7d svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1209fcbc put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154043fb rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1599eeba xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16930754 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16f6e619 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e66a24 xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x193c4875 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a60c7fb xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b4eae12 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cbba6f8 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d4b1f8f rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d804d49 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d94d934 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e3cf4c6 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f548bf9 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fa8575e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2193575e svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23bcbe2c sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24f8db7c rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25726b72 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2583196b cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29f45f3f xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a58bc73 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ca8625b svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce285b7 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e508057 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30201872 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3061dc91 __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3076ae20 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3182833c write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32115648 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d184de rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a03e35 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a436b1 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3846e636 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3881c886 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39bdafd7 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a33dfd3 xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f634036 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9b5aa0 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x404455df svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x412517d3 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x446993eb svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x453c1be1 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46fe62ca svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x472f8573 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48b2dbc2 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b49e6e5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bab2a58 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c89968e xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d24e110 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d2d30f2 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e5da878 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f168779 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fb4a35d xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52809778 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53b83a6f rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5565de60 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55b8a6be svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55f65a2c rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x567f866b svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56d1ec39 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57412afb xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57e6a267 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58b4067b xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b414bb2 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e5e75a4 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e71e7eb xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f035b13 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f626470 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60e5dafb rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61c35009 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x628b3f3e xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63a1b74d rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63cf0d4e xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64d40aaf xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x652a4500 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65b7006e xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66ed2439 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6710118d xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67965470 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68960db8 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6906b9d4 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cd717b9 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ce4bbc8 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d45afaa sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70190e12 svc_fill_write_vector +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 0x7254cbb9 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72bdcaba sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73ecb6d0 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75ef0425 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76a42d95 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77f3fa3f rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aa83b9d rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ac6660f cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad44ae5 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4adce6 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bfc4a49 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e1aca42 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f1398f4 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fc3a991 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8138a9e6 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81b78f82 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8317a9e7 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x838f55c4 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84cae408 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8614a81e gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86d6c67b svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87520d49 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a82bc7d xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ad2a4c4 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ad7c469 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b234d0a xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e141bdd rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f453904 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x905b57f5 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9060eb4b rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90b3ac7c svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9132a408 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9201cfe8 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96345d2a svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x963602fc rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9670b5a1 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96daec0b rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97e5f19c rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9863fc0e xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b76422 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99aee353 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c08d4cf rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9de05004 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa067079a rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0698958 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa39129a5 rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa39fd764 rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3d636a2 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3e7af48 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa45ffa9c xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa64ee95e svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7592e0a xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa91aba2e cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa996bb48 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae3292ea svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafbc3f88 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0414dcc rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb33fef6f svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb388e3dd rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3af2880 xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5b2bf84 xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6e49d41 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb771f844 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7c644d7 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb84e5e20 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba88470c rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba8b3499 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbe72701 rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd157cce xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd922d00 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbed1577f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc02d5839 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc02ee550 xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc228e9ba rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc26132bd svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc386b88e rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3e914c2 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4189126 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc457f292 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4c09602 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62f6aa9 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7d52145 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc88f5654 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc99c4e44 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9b76cfd svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9d927de xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca712511 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xceed9f86 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0be5c72 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd10d1d5b rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3100b40 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3289182 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd35ed1af xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3eb90a4 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd69cc739 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6e14423 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7ce0a22 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd897e9ef xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb01acdf _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc2b3f06 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd3896bb cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe44c1ccc svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe651d7d5 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe66b7308 rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8b80440 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe91ecf10 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeda143fa svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedeb4258 svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf088fe7c xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0b7775d rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf12e0f22 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf16a1c2b xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1a98cc8 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1d0de9b rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1de4d49 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2f9a825 sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf41f2708 xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf52ea0ab svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf579c75e cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6cbbb2f svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf754bd87 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8c244f2 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb829007 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfba5820c svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc520f68 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfda42c4a xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffb16741 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/tls/tls 0x234dca60 tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xaa2f8c5c tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xb96155fc tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0xc9b004a8 tls_offload_tx_resync_request +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 0x0739ced0 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0b8db32a virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0bf02080 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0c450c81 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x10c8a63f virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1b60f2f4 virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x21606880 virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x242ef4fc virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x3e227845 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4970098f virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x49e49ba5 virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x51d2bedd virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x54b84411 virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5c61e1aa virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5ca30da5 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5d86056b virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6de6bfdc virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6fbe5672 virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x755bc236 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7d8adddb virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7e5bb167 virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x91957cce virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x99866b6f virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb9c9bbd2 virtio_transport_notify_poll_in +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 0xbad13934 virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc277f87c virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xc8a095e9 virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xca4056a7 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd4702cbd virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdd22270f virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe519bc34 virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe8d892bc virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe988b753 virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xea3e00e9 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x02977da2 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x20868af7 vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x33f05a6e vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3af3ea0e vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5d8060d9 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x654912c3 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x66344722 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6840a84a vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6880e767 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6d026092 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x77c14317 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7d6ae84e vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9a2b6539 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa1285605 vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa1c1aab5 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa3ce0e5c vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xac7085cc vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbf001d36 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc52d2430 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc92f7f50 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfb4fcf90 vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfde1e145 vsock_core_get_transport +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0eb48089 cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x199321ba cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x276d6c3c cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2cc77d3b cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3b05db3a cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3d6cd49d cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x43989868 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x476c98f8 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x485dd18a cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5527cf6d cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55a208b8 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6a393b91 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x848eea88 cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9082d75e cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9dd17759 cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1329117 cfg80211_wext_siwrts +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 0x1451a1fa ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2ef2b457 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x853d5604 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdf815226 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xe2521b1c xfrma_policy +EXPORT_SYMBOL_GPL sound/ac97_bus 0x482cc7e8 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 0x04d5d6e2 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x37ace79a snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x3dcae8b4 snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd 0x54c31229 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x55dbc12b snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL sound/core/snd 0x5868d43e snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL sound/core/snd 0x64c80e49 snd_fasync_helper +EXPORT_SYMBOL_GPL sound/core/snd 0x82ddd8ab snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0x8f5d2155 snd_ctl_register_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xa86ad728 snd_card_free_on_error +EXPORT_SYMBOL_GPL sound/core/snd 0xaa5b7591 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xbcd22b11 snd_devm_card_new +EXPORT_SYMBOL_GPL sound/core/snd 0xbcf0ea13 snd_card_rw_proc_new +EXPORT_SYMBOL_GPL sound/core/snd 0xbf2916c6 snd_device_get_state +EXPORT_SYMBOL_GPL sound/core/snd 0xc640d3a4 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xcacc04a9 snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0xed685fb7 snd_power_ref_and_wait +EXPORT_SYMBOL_GPL sound/core/snd 0xf8f2a4eb snd_kill_fasync +EXPORT_SYMBOL_GPL sound/core/snd 0xfaf598c6 snd_ctl_request_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xfd24fc71 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x5af198f8 snd_compr_stop_error +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x897aa536 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 0x0d872850 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x2dd9d556 snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x499d66cf snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c407196 snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x640d56d2 _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x649892e8 snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x69f1efa0 snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x73dd5e06 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 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 0xb76ad58f snd_pcm_stream_lock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc03a6a88 snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xc5d9f85d _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xd1995a92 snd_dma_buffer_sync +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xdd5e801b snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xec4555e7 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xf68c0d8d snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xff5e59c0 snd_pcm_fill_iec958_consumer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x20937b7e snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x2a0c18ff snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x2f2e9a35 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x47639268 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x4b490216 snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x50d3422b snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x72958aed snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x9d39690d snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xaf9ba05a snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xb5587344 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xd2cf5ec1 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xe25ff11e snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x8b8ffa20 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0xeaafe267 snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x03e112ce amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x0499479c amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x06e27ff2 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x12c754e8 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x3189aa0f amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x433e50a4 amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x47e0695b amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x5d32a51e amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x60b2efa5 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xbe59ff40 amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xce8bf109 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xf63988dd amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xfc54b0b3 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x05636f93 snd_hdac_aligned_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0a3bebd7 snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0d277e6b snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0d991464 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0e3b7e0c snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0faa0f68 snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0fac7a5a snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x11f66393 snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1488641f snd_hdac_aligned_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1506e2d9 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1940d387 snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1a85ce02 snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1bfb37ab snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1e3761a3 snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1e7478b9 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1e7b3d5b snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x21847083 snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2349822d snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2696a0f9 snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x26efb25e snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2913799d snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2f54aecd snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x321dd184 snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3528aad6 snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x35926f13 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3976b5bc snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x39cd4066 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3be1e30a snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3fad2342 snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x43aeb7bd snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4803c29e snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x48b33367 snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x49309572 snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x497836a7 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x49a45480 snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f384c34 snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4ffa381d snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x50cda792 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x51304fc7 snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5ad90b11 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5cd9ffdf snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x60ba1c00 snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6122e176 snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x632c0030 snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x65fff813 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x660fa88a snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67af6247 snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6a1702b0 snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6c679c93 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6dea5f93 snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6df9b0dd snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6e2090fd snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x702e077d snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x734b6e34 snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7c1c578b snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x90b9567c snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x92e62705 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x93ab5f27 snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x99447e78 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9c9677ae hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa10f12a3 snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xa5bf476d snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb6274aee snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb629bd87 snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xba5f77e3 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbb55b619 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc42a51dd snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc47fdb66 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc4cfd76a snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc8dc507a snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc8e7770d snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcb50d378 snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xcfb71870 snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd36a56d3 snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xda4b8142 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xdcb13cd8 snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe4e07754 snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe6989fa8 snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe875eee3 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe88ab797 snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xee07ab8f snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xefeff9ba snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf2baecde snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf3ad1356 snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf475e04e snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf4f831a4 snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfa6b708d snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xfd586db8 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x1259bf7d intel_nhlt_get_dmic_geo +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x3f889ae7 intel_nhlt_init +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x4e859456 intel_nhlt_free +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xdba5a2b3 snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xf2ed1697 snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x15836645 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2fa544ce snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x99e1694d snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xabc6ed5f snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe605231e snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf7127308 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x004c201c snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x004e23e6 snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04fe91fb __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x052aafda snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x056c2f11 snd_hda_jack_report_sync +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 0x0808cf04 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0837ccb2 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x087a63d6 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ddfccf5 azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f03238c snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x124b38ac snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15545b21 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15898293 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x159abfe8 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16850eba snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16b6cb3e azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x184f13ab snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x185dedd7 snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c8caebc is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1def9d79 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f9ce57b azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x223a2e7e azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22879a1d snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x258a88af snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29f05c63 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d2fb945 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ffeb074 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3220cb4b snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33f90543 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3559893c snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x359e3899 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x365f632b snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36eb9680 snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e59a82f snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4032a7e6 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4269eb23 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x452ccbc7 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x456cfc4d snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x486de14e snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4bbbb2e1 snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ea26699 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4eb67907 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ffc949a snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x541ed1df snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55197fc0 snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x552c6a6f snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55981b94 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a1cb0d4 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a4be172 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b69ac03 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bcf2cdc snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d357a97 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60b02207 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60cb8201 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x613a81db snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62cd2db5 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x636379d3 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66b2c71b snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6757b1af snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6dacf483 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75836ed2 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75c99cc7 hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78258c01 azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x789e5b6d snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78a08cfa snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79529595 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7db696d8 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e6b0e65 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x814acd64 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x828343aa snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8397535f snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85916e95 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85c41e13 azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x885638bb snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b41b5c2 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b95a9ee snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8bc6dbfe snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8de229e5 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91764f12 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92805ca0 snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94422146 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94a0c208 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a97f2bc __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c287258 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9dc729ad snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa0e02cfe snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1ab8d36 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1e26a73 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5e00d76 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8716097 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8dcdaeb hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa99fc6b8 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac0ca6e4 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacb426f3 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaedb3e0a snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafc23e87 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1fc4250 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4869076 snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb965c7fe snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5755db4 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc863964d snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8e0f9f0 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb03c63f snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb698c29 snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbe51e3f snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcffb1451 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2e12c1c snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2f3b6d0 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8c65b99 snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd905f753 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd950e508 snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd52235f snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde16ca79 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdff72627 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0b11e3e snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4fdc3d1 snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe534ae0e snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe67991e1 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeb242c94 snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec91c667 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 0xeefab3cc snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf498e7b6 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4b665f6 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf721cffb snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf748919d snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8dc35ac snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf92c1d23 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbd25317 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc714a84 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfec90fbc query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x20ad91ca snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x579bffdd snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x5a1a5ee7 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x5f76311b snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x6983c289 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x6e25f317 snd_hda_gen_init +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 0x959cea4c snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x99a772bc snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x9def42f5 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xa746ff3d snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb0964e55 snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb17514c0 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xbd9c14cc snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xc0cccd58 snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xc2f1d88a snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd3cf326b snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe20f2235 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe597cc41 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xe874f8ac snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xeca32f66 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xfa7b0475 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/soc/codecs/mt6359-accdet 0x72d511e5 mt6359_accdet_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0xae620be9 adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0x3ef96ab0 adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x97175a5e adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0xfb78a475 adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x003efcb3 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x0f346245 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x129d98f0 adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x1fdb1c8e adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x220ecdcc adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x3afcb78f adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x41c3db5c adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x46ae74c8 adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x4b6adcf3 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x8af9c8af adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0xe363c89d adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x078d57c3 cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xa08d2112 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xa54f8141 cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x057f611e cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x0668d645 cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x1e9ce418 cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x39bedd5d cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x407945a4 cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x55c5fd7a cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x93ed7d4b cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x962b7fae cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xa0783ddc cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb2caeb88 cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb6a8fbf6 cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xc753d218 cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xdcaea751 cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xe390fba5 cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x513f89b2 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 0x8ae55d31 cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x07fe7e92 cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x29591602 cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x89ee4441 cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xec51290c cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xf4472e5e cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2 cs42xx8_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x515f6546 cs42xx8_regmap_config +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-cs42xx8 0xe36d8799 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xf7e4dcf4 cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x098dd0ca da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0xa23de755 da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0xbbb7d6d3 da7219_aad_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0xcaffe17b da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x4e9fb107 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0xfa0bd418 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x4b86013b lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0xce0eb7a5 lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xa548ea26 max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x1072d419 max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x716c2781 max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x8fc90a17 soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xc5396c5b soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x1b256459 mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x29fbd1cf mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x6e505c50 mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7368d1f1 mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x0dabdbc9 mt6359_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x3ac370b2 mt6359_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x5738dbf7 mt6359_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x8717a96f mt6359_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0xc1e62f2f nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x63659179 nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xbf55f96a nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x151a4c06 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xbc401e1c pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xf280ffe3 pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x7d1ef4dc pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xbbf0b234 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x94b3fd33 pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x9cb3f858 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x5e6cf0f1 pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xad337058 pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xb310dd82 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xf3df2bb2 pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x00f0b95e pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7ec75641 pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xac4986b1 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xed135dd8 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x8d7fa148 rl6231_get_pre_div +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0xdba4502f rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-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 0x0ff35ef2 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x68c0b294 rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x8fd6ca29 rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xdfd576eb rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xe32049cb rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xfdda2f2b rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x2471002d rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x8bf68839 rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0xbe976bf9 rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x853b40bf rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x8fd4be80 rt5677_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x5fc320ad 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 0xc6695825 rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0xe8ece129 rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x29aa0754 rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x4eabc9be rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59d3d967 rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x5f0d6f7b rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xa436e6f8 rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb897de56 rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xc29dbc57 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xc7d42945 rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xedeb4e37 rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf0269b6c rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf1f6ffa7 rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf5170832 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xfd633f79 rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682s 0xafc6f91e rt5682s_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x25057c3a sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x51f1af80 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x6417f3c1 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x964c2294 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xf6236043 devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0xda62be83 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x2453a762 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x3e13f5db ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xdaafacd1 ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0xa5489115 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x18e65981 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0xd133c4d4 ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x936c1623 wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x054b546a wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x180e94a1 wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x2c13198f wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x9098ac1f wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x9b6b9ab5 wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x05812038 wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0d33c90c wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0dea2b25 wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x15ff3adc wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x254ed42e wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x376ced1d wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3fdd5d78 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x42330bee wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x527e580f wm_adsp_compr_open +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 0x646db7d0 wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7e59cf18 wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8305ed5e wm_adsp2_component_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8a4ae1a9 wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8b21ef9e wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9b000f19 wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa61d71d1 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xac930d9b wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xcd4a7c8d wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xd72b9991 wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xd77e0445 wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xd990317a wm_adsp_compr_trigger +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 0xe19d800d wm_adsp1_init +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 0xefe96234 wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf7a3bf94 wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xfb6f87b8 wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x436b30dc wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x528c1d80 wm_hubs_add_analogue_routes +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 0x9e23c006 wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xa7ffa3ed wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbbffd135 wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc10d9786 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc652d6d9 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd1de5a13 wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x32ecb6be wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x9d8c6f67 wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7ba7f9a9 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7ceadb30 wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x964872b5 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0xa497abe1 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x2572d5ae wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x4d5e02e4 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x3010bb3c wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x85b820ca wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/imx-pcm-dma 0xede766b4 imx_pcm_dma_init +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0xbba4b08c fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0xcd77400d audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x2b68914d audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x4f6794b4 audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xa4fd63bc audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xd2aff888 audio_graph2_link_dpcm +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x174b033f asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x23fefb53 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x25550e97 asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2809d112 asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2a8a735c asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2ac62cf3 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x4d31766c asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x56f1fb92 asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5b90a985 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7a96e52c asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7b6a749e asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x85746384 asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x87e6bd0b asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa2a8473f asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa7dce5a5 asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xaadb1705 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xc1474a7c asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd5416d86 asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xe9a636fb asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xea590116 asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xee2da960 asoc_simple_parse_clk +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 0xfad451c1 asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x0bd332ac mtk_afe_combine_sub_dai +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x12633320 mtk_afe_fe_shutdown +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x14ab47cc mtk_afe_fe_trigger +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x18debacc mtk_afe_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x250e6000 mtk_afe_fe_ops +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x2518582d mtk_memif_set_rate_substream +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x352cd005 mtk_afe_suspend +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x358e1da0 mtk_memif_set_format +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x3a7d5f93 mtk_dynamic_irq_release +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x3c08e35e mtk_memif_set_rate +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x503dd349 mtk_afe_fe_prepare +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x5356b3a7 mtk_memif_set_addr +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x630b47ec mtk_memif_set_pbuf_size +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6daa999a mtk_afe_resume +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x80483297 mtk_dynamic_irq_acquire +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x81739763 mtk_memif_set_channel +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x8576fd34 mtk_afe_pcm_new +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xa0dfe034 mtk_afe_fe_startup +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xacb1e09b mtk_memif_set_enable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xc0b076c4 mtk_memif_set_disable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xd7e3774a mtk_afe_pcm_platform +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xe4f709d9 mtk_afe_add_sub_dai_control +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xeb426772 mtk_afe_fe_hw_params +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0xf72c24bd mtk_afe_fe_hw_free +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x75e96207 mt8195_afe_enable_clk +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0xf3f57a2d mt8195_afe_disable_clk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x07ff0fa8 axg_fifo_pcm_close +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x0cbd890d axg_fifo_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x423f0ffe axg_fifo_pcm_new +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fe021cd axg_fifo_pcm_hw_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x8cae2a83 axg_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x9414add9 g12a_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xaafde55e axg_fifo_pcm_trigger +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xe667742a axg_fifo_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0xeb93657c axg_fifo_pcm_open +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x46cdb0f2 axg_tdm_formatter_event +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x4988d1f8 axg_tdm_stream_alloc +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x539c48cc axg_tdm_stream_start +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x55316323 axg_tdm_formatter_set_channel_masks +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x60f00fd0 axg_tdm_formatter_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x64e0ca85 axg_tdm_stream_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0xef4a0d56 axg_tdm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x37145382 axg_tdm_set_tdm_slots +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x10dfdadb meson_card_i2s_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x80511756 meson_card_parse_dai +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x84d1b35b meson_card_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x92345898 meson_card_set_be_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xc5d2b359 meson_card_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xeff4c79e meson_card_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xf61000de meson_card_reallocate_links +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0xfd42b988 meson_card_set_fe_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x031e21f2 meson_codec_glue_input_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x54a5acb2 meson_codec_glue_input_dai_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x5ae593a1 meson_codec_glue_input_dai_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xa6416f36 meson_codec_glue_input_get_data +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xb4559dc7 meson_codec_glue_output_startup +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0xfb0a3e40 meson_codec_glue_input_set_fmt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x049cbca0 q6adm_matrix_map +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x28421460 q6adm_get_copp_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0xac5bd3fb q6adm_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0xd6a814d9 q6adm_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x07a54780 q6afe_cdc_dma_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x0a8be696 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 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 0x8569caf3 q6afe_set_lpass_clock +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 0x13b7efd9 q6asm_cmd +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x1b6c77fc q6asm_stream_media_format_block_alac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x25bfa476 q6asm_open_write +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x2b693eed q6asm_stream_media_format_block_wma_v9 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4afe6f73 q6asm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4fba2f0c q6asm_run_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x68db31e2 q6asm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x6a1ea2f7 q6asm_audio_client_alloc +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x6cec4b17 q6asm_stream_remove_trailing_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x856b4fdb q6asm_stream_media_format_block_wma_v10 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x9d0cf85f q6asm_stream_media_format_block_flac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xa7d3a3a6 q6asm_media_format_block_multi_ch_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xb37ed108 q6asm_enc_cfg_blk_pcm_format_support +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc0dd8d67 q6asm_open_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc1347db0 q6asm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xc5a116a4 q6asm_get_session_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xcbee5e42 q6asm_stream_remove_initial_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xcc4952e4 q6asm_audio_client_free +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xd2cf1a0f q6asm_run +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xd38aa312 q6asm_cmd_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xea75a5dd q6asm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0xf47f4b35 q6asm_stream_media_format_block_ape +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/q6prm 0x8aaf0fd8 q6prm_vote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0xd5a8d667 q6prm_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0xdb42d412 q6prm_unvote_lpass_core_hw +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/qdsp6/snd-q6apm 0x142e461c q6apm_graph_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x145cf8f6 audioreach_alloc_apm_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x226fb500 q6apm_graph_media_format_shmem +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x3ecca691 audioreach_get_container_next_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x47dfd1dd audioreach_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x481ab4fe audioreach_set_media_format +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x4d81a254 audioreach_tplg_init +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x528c04f8 audioreach_graph_free_buf +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5543dd66 audioreach_alloc_apm_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x63454532 audioreach_get_container_first_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x64dc5171 audioreach_alloc_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6554d754 q6apm_graph_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x697a56ce q6apm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x753e22b3 q6apm_graph_media_format_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7f4d39c8 audioreach_alloc_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7f716c44 q6apm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x804750ba q6apm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x9ced7a74 audioreach_shared_memory_send_eos +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xacff4753 audioreach_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xb19133ce audioreach_graph_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xb541fd8b audioreach_alloc_graph_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xc35114ef q6apm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xcb9f0983 q6apm_graph_stop +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd5d90d91 audioreach_gain_set_vol_ctrl +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xd736dcd8 q6apm_graph_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xeb04b83e audioreach_get_container_last_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xee3e8068 q6apm_graph_get_rx_shmem_module_iid +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xeef6a882 q6apm_graph_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0xf51e59dc q6apm_graph_flush +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x13690c78 q6dsp_audio_ports_of_xlate_dai_name +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x17142e58 q6dsp_map_channels +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0xb29db5e3 q6dsp_clock_dev_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0xe4754d2e q6dsp_audio_ports_set_config +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cdc-dma 0x050e2e82 asoc_qcom_lpass_cdc_dma_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x0c68a504 asoc_qcom_lpass_cpu_platform_remove +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x0d3bf8ee asoc_qcom_lpass_cpu_platform_shutdown +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x59c21ced asoc_qcom_lpass_cpu_platform_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xddb29230 asoc_qcom_lpass_cpu_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xe532e012 lpass_cpu_pcm_new +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0xf983da7e asoc_qcom_lpass_cpu_dai_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-hdmi 0x69a44697 asoc_qcom_lpass_hdmi_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-platform 0x85ae774a asoc_qcom_lpass_platform_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x3dd9f961 snd_soc_acpi_find_machine +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x5c512782 snd_soc_acpi_find_package_from_hid +EXPORT_SYMBOL_GPL sound/soc/snd-soc-acpi 0x9b1aadfd snd_soc_acpi_codec_list +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02ce2bdf snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0587d476 snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05a56c4c snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x073b9d5f snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07dfa047 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x083c970d snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x088b7323 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a45a009 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0adc8c75 dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c5a62f1 snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e782053 snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e82e4db soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f2406f7 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1002011e snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x118f406c snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11af40be snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11f82de6 snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x129ea723 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12a9b150 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12f68b2f dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16222dd4 snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x168a92fb snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1aefb441 snd_soc_component_compr_open +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b2eb195 snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b46e957 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bbbad8f snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c853f86 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1cc4f2e4 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d574256 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dd8de3d snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ed86fd4 snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206fae37 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21bf8308 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21f4e8a6 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23781d3a snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x239bba21 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23a518fd snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23f2a0bb snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24ff3448 snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25403e9c snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x25f7bde1 snd_soc_component_read_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x270d9485 snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2952dde1 snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29896128 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29ee7972 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a12d6a4 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a34d754 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d049130 snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e4fab37 snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3076f68b snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x312685be snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32f76813 snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32faf3d5 snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x334fceca snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34a06f41 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36bda8cb snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3773966e snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38d02cec snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38e49780 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ae884a3 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b544130 snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b925821 snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d51111c snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3db4358a snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e7b11af snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ee68f8e snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42db15b0 snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46fd5bf2 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47550a56 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x495a6a31 snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49bf2085 dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49c1f766 snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a94c484 devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bb9f563 snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cc4e3ef snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d5e3391 snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d661424 snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f4f80c9 snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52781c06 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x552aa168 snd_soc_runtime_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5851a754 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5897af8b snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58f502e5 snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ab53ff1 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b32c003 snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b54b546 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b83fc84 snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b97d566 snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bacecd0 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c94feea snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e70e9ec snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60b069bc snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x60b9c247 snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61d6a9bf snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x626e91c8 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64bce36b snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66a15604 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6827ff8c snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69c61364 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b8d6d30 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ba90353 snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c8aed0f snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6cf7c5cb dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e58b8c2 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7257860b snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7370f1c5 snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74edc264 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76d39b5a snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cde0379 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ef472ae snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f8ff7b6 snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc7e7a6 snd_soc_dai_active +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x806978fa snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x815f49bd snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81ac7644 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83f0dc28 snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x893e9b4e snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8961bc01 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b3e6653 snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b56c308 null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8cb802a7 snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e359fe5 snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ebe0658 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x903e32bb devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92e77d41 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93a7775a snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x943c4e26 snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x958e3f9a snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x974f21fd snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x979d6d3b snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99a1f8a1 snd_soc_dai_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99e25995 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x99ec7d11 snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a225446 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a52e326 snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a6bb14a snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f5240cf snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0b6cc42 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0e4a42f snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0f86d1d snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa341ed34 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3b33dc9 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa671cdd1 snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa76fc547 snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7786a53 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa93a1bde snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9efc4ae snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaaa94b59 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab3ac122 snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac4f1f93 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad922928 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadc9a396 snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae2fd714 snd_soc_component_initialize +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafb8b230 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb67a42a6 snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6cd0018 snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6dc034c snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb973f74a snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd09db86 snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd6d5ce9 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbddff344 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbfbf11f8 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc17c0f10 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1dadb52 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2312207 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc31766b7 snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc317a15e snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc33bbe85 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6a58bca snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc77aad6c snd_soc_component_write_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc954081f snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc98c943f snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbba5222 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce62891d snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd06eb61e snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd09a3f32 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1cb5866 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd53f3720 devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5817ed0 snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5962372 snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd704bd9d snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7e3557d snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd83a43d8 snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd83dad03 snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd931f948 snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd2d9c0c snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdeaa7e19 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf3dceb2 snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfab408f snd_soc_component_compr_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe02b586c snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe27aca18 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2c2ad89 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2e2ba0b snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4b25cb2 snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe50c2552 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5218c6e snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5621cc3 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5b72761 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe79d1c0c snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea3cc0b3 snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea987ce5 snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb8bcf69 snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeba832c9 snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xedc57df8 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0fba2e2 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf167a1bb snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2c3cd84 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5c2adf8 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6c28740 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8595e8e snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf85b1b98 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9622dd1 snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9b713b3 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe1cb8b8 snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff99ada2 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x06744e04 snd_sof_debugfs_buf_item +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x091033f8 snd_sof_debugfs_add_region_item_iomem +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x378b919b snd_sof_free_debug +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0x97ea26cd snd_sof_dbg_memory_info_init +EXPORT_SYMBOL_GPL sound/soc/sof/snd-sof 0xd4eb53e6 snd_sof_dbg_init +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x2c64d423 sprd_mcdt_request_chan +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x5061832c sprd_mcdt_chan_int_disable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x609193c3 sprd_mcdt_chan_write +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x68b4b311 sprd_mcdt_chan_dma_enable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0x6c283cec sprd_mcdt_chan_int_enable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xa5fdddd3 sprd_mcdt_chan_read +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xb67dbf49 sprd_mcdt_chan_dma_disable +EXPORT_SYMBOL_GPL sound/soc/sprd/sprd-mcdt 0xdf547b54 sprd_mcdt_free_chan +EXPORT_SYMBOL_GPL sound/soc/sunxi/sun8i-adda-pr-regmap 0x37a3a5c2 sun8i_adda_pr_regmap_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x8f8d1c0e tegra_asoc_machine_probe +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x9abb5eba tegra_asoc_machine_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x2f894b3c tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x30b60976 tegra_pcm_construct +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x3b82fa3b tegra_pcm_close +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x5670233b devm_tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x928ca57c tegra_pcm_open +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xa6841cd6 tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xb210760c tegra_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xc3240f6c tegra_pcm_platform_register_with_chan_names +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0xf720c9eb tegra_pcm_pointer +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 0x0427e3da 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 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 0xd01de23b tegra30_ahub_allocate_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-ti-edma 0x26a16188 edma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-sdma 0xf47f57d9 sdma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-udma 0x188263f2 udma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x15d6bd44 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x194f1d3b line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x202a1b1b line6_midi_id +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x34eebf28 line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x492164d7 line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x6689c636 line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x733dfad2 line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x9a195a6a line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x9fe7c217 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xa1b8e3ed line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xb35a5c27 line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xdc7c204c line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xdffc303c line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe00bb9f4 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xe697f5eb line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xee7e2028 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xfe2a823f line6_probe +EXPORT_SYMBOL_GPL vmlinux 0x0002ce11 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00043e86 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x00202fae __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x00233d91 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x00263801 ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x0029495b gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x002b6ea4 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x0034d4c1 thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x0039f19a of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x004b9ef0 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00565f18 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x005f18a6 add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x0071f7d9 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x007c33bf devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0083085d disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x00867996 gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x0098f91e dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x00c9572c of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x00d46375 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00df9837 ioasid_register_allocator +EXPORT_SYMBOL_GPL vmlinux 0x00e015e3 dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x0105ceb2 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x011115d6 blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0x01242858 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0x012e730e apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0x0132635d usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0x014e8186 cpu_scale +EXPORT_SYMBOL_GPL vmlinux 0x01624359 dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0x0177427b power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x0179ccba topology_update_thermal_pressure +EXPORT_SYMBOL_GPL vmlinux 0x017a813c virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x01820ecf pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x01933aa7 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0198d867 fsl_mc_object_allocate +EXPORT_SYMBOL_GPL vmlinux 0x01a0cb78 property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x01a40969 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x01acca8d xfer_to_guest_mode_handle_work +EXPORT_SYMBOL_GPL vmlinux 0x01c4a623 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01cd2eb6 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0x01d21232 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01e75110 ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x01eb6c56 dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x01f140ee public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x0203d0c8 devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x020d5ecb dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0x02146a90 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x02159f3d iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x02183bf0 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x02257555 efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x0243cb79 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x02495b8f gnttab_alloc_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0x024d13dd request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x025098ec __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x0261a7a0 pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x02755be7 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x028c31cd request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x028e2f4d fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x029a71ec phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x02c13357 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02cf0fa8 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x02d67c15 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x02d85659 tegra_mc_get_emem_device_count +EXPORT_SYMBOL_GPL vmlinux 0x02e7e42e page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x02ea8c73 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x0301f005 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x030d90e1 sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x031aff24 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x03276b3b of_platform_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x032a7432 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0338c988 nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03634651 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x03701a42 zynqmp_pm_pinctrl_set_function +EXPORT_SYMBOL_GPL vmlinux 0x037b3e95 tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x037d59ff rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x03a5910a crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x03a5e851 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x03aed374 divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x03af804b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x03b5c9bb ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x03ce7234 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x03d04b44 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x03d951a1 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x03dc1446 devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x03e1b7d4 serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0x03e8e41c rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x03fc8298 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL vmlinux 0x04022a0c uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x040d11a4 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x0412332f rcar_rst_set_rproc_boot_addr +EXPORT_SYMBOL_GPL vmlinux 0x04123e34 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x041a8e23 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x04222a7b tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0x0423a513 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x042b019e dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x042c5926 dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0x043005a4 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x043e972e gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x043f41b9 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x0446e5f2 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046ca283 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0471cb4d dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x0472cf3b register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049656b6 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x049e5156 gnttab_try_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x04a769f9 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c50483 meson8_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04c8fef1 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04eb038c kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x04f83b3f ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x05081d6f dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0x050bb750 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x050d3a99 acpi_initialize_hp_context +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x0525f3e1 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x0532171e devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05601a48 crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05641313 imx_clk_hw_sscg_pll +EXPORT_SYMBOL_GPL vmlinux 0x05736076 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x05898903 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x058c6377 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x058cf522 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x058f9366 apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x05928c1b xen_dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x059b0e11 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x05fc445d nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0x05fe37a9 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x06055a23 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x061336ae blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x0635b66c ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x0637d4bc icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x063e9296 rpi_firmware_put +EXPORT_SYMBOL_GPL vmlinux 0x06416879 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x064dbfd6 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x064f4e2c xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x0666b789 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x066b6012 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x067e84ff dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x068335f4 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x0695e72a led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x06b6283b transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x06b64862 mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x06b6512a skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x06b970a5 zynqmp_pm_ospi_mux_select +EXPORT_SYMBOL_GPL vmlinux 0x06c1cff4 devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x06c77a3a ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d07f0a regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x06ddf7f0 tegra_mc_write_emem_configuration +EXPORT_SYMBOL_GPL vmlinux 0x06e4433e sunxi_ccu_set_mmc_timing_mode +EXPORT_SYMBOL_GPL vmlinux 0x06e57855 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x06fc0417 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x0704e175 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x0715f296 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x0722fe41 xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x072a293d devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0x0740cdf1 iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0745dfa3 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074ab4de usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x074f98db synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x0758ce3d gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x075b8b61 xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x07617ca4 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x07681d31 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x076d14a1 vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x0783de4d pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x07868a8e wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0793c2a1 regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x07959cc6 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x079c91e2 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x07ab9425 dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07bd29ca sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07ca7eca rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x07f1ffac xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x0802702a fsl_mc_obj_close +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x081d80b1 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x082b8725 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x083eb1a9 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0x0841ac01 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x08576175 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x085bffd1 trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x0869fee3 efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x086c9348 crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x08902548 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x08a0603d spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x08a4d066 filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x08c78cf7 offline_and_remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x08cc71bc vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x08d70fb4 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x08dfccac ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x08e33794 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x08f44c1e sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x08f7e703 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x08fa6c77 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x0907d14d blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x0912e132 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x0912f2e2 dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x09141103 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09337cd0 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x0935f1d3 mtk_is_virt_gpio +EXPORT_SYMBOL_GPL vmlinux 0x093786cf synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x093a6023 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x09434fa3 __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x0957b8f7 fsl_mc_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x095c2563 l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x095d2cdd wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x09656cca edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x097ad3fb component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x097fd353 syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x0991070b fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x0993727d iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09bca0e2 dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x09d348ca pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x09de6ce3 user_read +EXPORT_SYMBOL_GPL vmlinux 0x09eda5fd sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x0a0f6e30 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a1e18a3 wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x0a31c704 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x0a3611e8 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0a3eca9d usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0a3f55e0 of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0x0a463293 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x0a4d4d03 kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x0a52c511 hv_query_ext_cap +EXPORT_SYMBOL_GPL vmlinux 0x0a57b928 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x0a623f9e ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7ceb30 __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x0a9c4cc4 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x0abc6be6 k3_ringacc_ring_is_full +EXPORT_SYMBOL_GPL vmlinux 0x0ac4c5a6 uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x0ac77964 acpi_dev_ready_for_enumeration +EXPORT_SYMBOL_GPL vmlinux 0x0aca3473 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0x0addd589 bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0x0ae0fd57 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x0af40724 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x0b0525a5 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b1bb9f9 synchronize_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x0b1d08a7 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b326e7a ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x0b3a3ed7 zynqmp_pm_fpga_get_status +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b536a4d device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x0b690f04 k3_udma_glue_tx_get_txcq_id +EXPORT_SYMBOL_GPL vmlinux 0x0b7a8103 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x0b9fbb2a dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0ba14d2f virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x0ba439d7 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x0baa2dd9 br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x0bac92b9 devm_ti_sci_get_of_resource +EXPORT_SYMBOL_GPL vmlinux 0x0bb028d4 hisi_clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc9b2 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x0bbf4f04 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x0bc6a217 device_move +EXPORT_SYMBOL_GPL vmlinux 0x0bd0dc43 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfaaf1f of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0x0c08299e devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x0c18315b crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c3744e0 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0c3e6241 k3_udma_glue_disable_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x0c79186c crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x0c805ea3 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x0c87101b dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x0c87118a __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c8c3ab6 folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x0c970d40 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x0c9e9863 __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x0cb24d84 pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0cbe3ee2 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0cc80ffa usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ccf5275 zynqmp_pm_pinctrl_get_config +EXPORT_SYMBOL_GPL vmlinux 0x0cd907f2 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x0cdb2df2 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x0cddb3ff phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x0cdf6f0a usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x0ce3dd73 bman_is_probed +EXPORT_SYMBOL_GPL vmlinux 0x0cebd08f regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0d22966a fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x0d2d2ca5 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x0d452ff4 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d4e3f8c iopf_queue_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0d5cecc6 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x0d5ea27d anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d920734 device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x0d9458ed fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x0db0a7b5 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x0dd5f9e9 vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0deaa2d0 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x0df42ab4 gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x0e007edf xen_evtchn_nr_channels +EXPORT_SYMBOL_GPL vmlinux 0x0e01a6b1 pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0e092c61 regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x0e099f34 efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e0c035b power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e1194d5 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e2f2845 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x0e310b9d __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x0e44b271 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x0e4ba6dc pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x0e4de966 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e5d79f3 ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x0e626e38 dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x0e6e081e pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0e747897 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x0e768b9e get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x0e88df87 ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x0e9ebda3 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x0ea5cbce xen_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x0eb993ce raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x0ebb03a4 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ec096b0 hv_read_reference_counter +EXPORT_SYMBOL_GPL vmlinux 0x0ec20d09 acpi_gpiochip_free_interrupts +EXPORT_SYMBOL_GPL vmlinux 0x0ed6ba2c platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0eda5b78 regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x0edaa99f fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x0ee35802 firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x0ee860b2 list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x0efdfecc badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x0f0385d7 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0f0c420e iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0x0f103bc6 mtk_pinconf_adv_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f1926db sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x0f1a27bb device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x0f1cd5b6 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0f1ec5de reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x0f20dede regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0f3034f5 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x0f485a71 dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x0f4da242 rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x0f5b565a task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x0f72ada1 acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x0f7ca236 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x0f92be66 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x0f99aaf2 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x0f9c3bbe __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x0faa2c9a __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0fb2349b ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x0fbb7344 memremap_compat_align +EXPORT_SYMBOL_GPL vmlinux 0x0fbc0c0e xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x0fce0c46 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x0fd1fdee nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0fd7d5b4 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x0ff3703b of_mm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0x0ffb1acc i2c_detect_slave_mode +EXPORT_SYMBOL_GPL vmlinux 0x1007dd0e crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10147f3c fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x1018f9aa iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x101a5e4a gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x101cc075 unregister_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x101d01e3 meson_clk_pll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x10317f42 of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0x1033050e subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x103ce765 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x103e01fb devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x1051764a ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x1054f541 of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x106aa823 serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x10760a26 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x107af7a4 __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x108a0acd bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x108b4227 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x10a40c9f pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0x10ad7a15 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x10b7d6f5 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x10be1d47 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x10bf75dc fsl_mc_obj_reset +EXPORT_SYMBOL_GPL vmlinux 0x10c88982 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x10d733da watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10f449f8 blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x111345eb rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x1114bebd extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x111abf1f usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0x112279fd ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1135cb8a ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x1137210a pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x114e8e62 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x1162e0c6 dev_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x116aa4d0 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x116f532a powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x117c1213 of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0x1188f50e of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0x11c28e72 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x11c45705 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x11c4d576 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x11cb44d0 of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x11d693b1 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11df83f1 phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x11e06ee9 badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x11e60a28 bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x11e880bc crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x12034acc xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x12091ae2 skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x120e876d proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1225c36d fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x1234ffa1 cper_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x12374624 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x123acf3c io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x12439680 icc_enable +EXPORT_SYMBOL_GPL vmlinux 0x12450e6a clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x12478408 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x12525929 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x12537dae __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x125630c8 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x125cb7e4 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1264c626 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x1275461c da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x127c24c2 fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x12808527 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x12903158 irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x129283ef dprc_reset_container +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x129e4b6b handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x12b741b8 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x12d51a5b platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x12e04ac8 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0x12e22ed2 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x12e4ed2b dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x12ee1173 memory_group_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12ee860b wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12fe8286 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x13063146 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x13074f48 dpbp_enable +EXPORT_SYMBOL_GPL vmlinux 0x13090724 add_vmfork_randomness +EXPORT_SYMBOL_GPL vmlinux 0x130ed363 devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x1333bc5a uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x133f613e fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x1349736c __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x13643125 kvm_write_guest +EXPORT_SYMBOL_GPL vmlinux 0x136adddc trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x13848691 set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x138a1eb4 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x138e84f7 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x13acee80 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x13b8fc49 devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x13bfd733 devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x13c0f810 thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x13cb3bc2 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13d0130b fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x13d33370 __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x13d95e0a of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x13db1eb8 k3_udma_glue_rx_cppi5_to_dma_addr +EXPORT_SYMBOL_GPL vmlinux 0x13de0074 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x13e9f366 acpi_dev_remove_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x13eb7003 dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13f1a5af usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x13f7c715 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x13fab921 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x140487fb adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x1405a27c fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x141704eb ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x1418eca4 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x14465839 blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0x14484de2 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x144a6983 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0x1456762b k3_ringacc_ring_get_free +EXPORT_SYMBOL_GPL vmlinux 0x145afbcf nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x14629c7d ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x147a1a86 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x147e98ea inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x148fd794 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x1498d8f8 spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x14c856c1 clk_register_hisi_phase +EXPORT_SYMBOL_GPL vmlinux 0x14cfcc2b device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x14d03d1b addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x14ebfddc bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x14ec4fdb evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x14fd21f9 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x15021b4a xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x150427b6 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x1513bf23 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0x151723fb __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x151b1dbb dpcon_open +EXPORT_SYMBOL_GPL vmlinux 0x1521e16f irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x15284bfa irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x155106d4 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x155176f2 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1552335c ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x15553d2a xen_xlate_unmap_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0x1555f742 serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x156046d6 __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x15824209 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x158a8995 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15a087c3 mtk_pinconf_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x15abf0f0 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15c539f0 dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x15c60a71 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x15cfc7e8 dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x15d1109c device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x15dc4735 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x15ea2648 hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x15eae9a0 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x15f0212f wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x16049724 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x16129f77 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x161aed40 devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x16356b7a unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x164dbb40 vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x16516798 osc_pc_lpi_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x1661c8d8 xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x166bd443 device_del +EXPORT_SYMBOL_GPL vmlinux 0x166dd18c skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x16709ae6 gnttab_dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x167d7113 acpi_bus_register_early_device +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x169660ca serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x16addf1f dpbp_disable +EXPORT_SYMBOL_GPL vmlinux 0x16c5f9f5 dev_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x16cba29e nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x16d32bc1 misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x16e705d0 devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x16f15139 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x1704c9a3 skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x172682a8 bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x172ea873 gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x17325196 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x173ac652 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x174861d9 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x1751678f gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x1754f301 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x17591ecd zynqmp_pm_write_ggs +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1763e93c iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x1769cb74 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x177ad91b __put_net +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1788c661 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x178ffb12 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x179b25bc __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0x17a200b8 device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x17a3944c cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x17a3dd62 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x17b194bf sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x17c44553 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x17cce972 devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x17e01f11 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0x17e2179f i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0x17f0cf20 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x18147c5b iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x18544eb0 gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x185daeba mmc_pwrseq_register +EXPORT_SYMBOL_GPL vmlinux 0x185f1192 usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0x18615d35 efivar_supports_writes +EXPORT_SYMBOL_GPL vmlinux 0x18639e76 blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x1863fec3 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x186b9600 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0x186c23b5 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x18715353 k3_udma_glue_push_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x1887abf7 fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x188a659d devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x188d70b9 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x1893cbc4 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x189b6833 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x189cabf8 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x18a7fbb3 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x18b1551a imx_clk_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x18b347a4 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x18bbe9f9 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x18bd0733 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x18be89a8 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x18d34e14 led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x18df7adf vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18e8c440 arch_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x18f10f38 k3_udma_glue_enable_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x18ff9e85 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x190225f6 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x19032d6d trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x19057397 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x190a7e59 fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x191a7d02 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x1926028c zynqmp_pm_reset_assert +EXPORT_SYMBOL_GPL vmlinux 0x192ef385 of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x193af62c ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x193e8466 bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x19406980 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x1944e39b raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x1975ed5c desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x19789906 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0x19821689 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x19896abb acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x199ba1d9 gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x19a0d6e0 bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19aa8a0d rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x19adec31 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x19b47dfa crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19e12a0c report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19ea3145 ti_sci_inta_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x19edd064 blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x1a00a9e8 fsl_mc_bus_dpsw_type +EXPORT_SYMBOL_GPL vmlinux 0x1a04d31b of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x1a08ea87 debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x1a0ad0ca imx_pinctrl_parse_pin_scu +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a199487 fsl_mc_portal_allocate +EXPORT_SYMBOL_GPL vmlinux 0x1a221b0c acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x1a4ed9cb bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1a525af9 rockchip_clk_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a77a443 devm_memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x1a7b6706 power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x1a876574 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x1a93f70d serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x1a9b8e33 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x1aac797d gnttab_page_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x1ab2c3fa class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x1ab81a25 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1ac20cfe mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x1ad08972 bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x1ad3cfd4 mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x1ad55080 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x1ad8ab80 __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1ade5f75 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x1ae2a18c pinctrl_generic_get_group +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1af482cb modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1af6098b platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1b297b1e sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x1b48e03a cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b6e0b92 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x1b790f22 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b8b62e8 firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x1b8dd6da synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1ba0d5b1 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1ba6125c devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1ba9c0c8 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x1bbdeeb4 hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0x1bc35ab3 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x1bc40a8d gpmc_omap_get_nand_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bc64087 xas_split +EXPORT_SYMBOL_GPL vmlinux 0x1bc85e1c irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0x1bcb07b6 of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x1bce5d96 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x1bda264e ahci_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x1be71e45 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1c24c7bd usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x1c2f174a devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x1c3ffdaf regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1c44ef50 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c453e57 of_msi_configure +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 0x1c733c72 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c89fb22 zynqmp_pm_clock_setparent +EXPORT_SYMBOL_GPL vmlinux 0x1c96578e pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x1c971b5b sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x1ca3aa97 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x1ca4a930 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x1cb39a91 devm_request_pci_bus_resources +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 0x1cbe06ac spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x1cc251e2 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1cc4d6c4 of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x1ccdcffe fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0x1cd5e9f3 devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x1cde5cc0 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0x1cfcbc81 rockchip_pcie_enable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x1cff8eab sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x1d0afe64 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x1d1d5d14 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x1d20307d vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d294b0f nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x1d350e01 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x1d374846 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x1d37aefb cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x1d51feb9 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1d5ddb6f psil_set_new_ep_config +EXPORT_SYMBOL_GPL vmlinux 0x1d5efe98 pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0x1d6696b0 mtk_mutex_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d674766 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7bfec7 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x1d8dcd56 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0x1d90db04 blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0x1d91ef4d device_create +EXPORT_SYMBOL_GPL vmlinux 0x1d94a218 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x1d95638c device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x1d9b4d10 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x1dcfdc75 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x1dd08e9e __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x1dd3701d devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x1dd4b628 regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x1dd4d304 rockchip_pcie_deinit_phys +EXPORT_SYMBOL_GPL vmlinux 0x1de49810 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x1de7322a xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x1de887ff zynqmp_pm_bootmode_write +EXPORT_SYMBOL_GPL vmlinux 0x1deccc59 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x1df6bf4e key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x1df6d79e led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x1df71854 dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1dfcd0eb fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0x1dfd6245 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e16cf14 to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0x1e30242b devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x1e361158 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x1e3bc77c xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x1e424d61 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x1e4e98c0 acpi_dev_filter_resource_type +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e7b89d3 cros_ec_command +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e80fc01 fsl_mc_populate_irq_pool +EXPORT_SYMBOL_GPL vmlinux 0x1e83fee6 HYPERVISOR_physdev_op +EXPORT_SYMBOL_GPL vmlinux 0x1e858fe8 dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e90f341 arm64_mm_context_get +EXPORT_SYMBOL_GPL vmlinux 0x1e944ba1 __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1e9bc719 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec88d5f sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0x1eceb500 ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x1ef20793 stop_core_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x1efaa06f __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x1f110844 devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x1f1cc011 zynqmp_pm_get_chipid +EXPORT_SYMBOL_GPL vmlinux 0x1f232a56 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1f300518 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f391f78 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x1f40f9d6 __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f743dd0 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1f79d60c gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x1f7ae1ff task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x1f7c1d79 rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f917f71 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x1f96234d mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x1f9a2b53 zynqmp_pm_clock_enable +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fa27489 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x1fb89d4d __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x1fbb7f76 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1fcd7e9f init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1fe8fa68 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x1fee7136 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x1ffad6e8 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x1ffc2ec9 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2011359a devm_of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x20249cf4 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x202d4ed6 nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x202e53e1 dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x204b8b5f udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x204f2c5c gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x205ed483 of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0x20609237 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x2075ff91 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x207b0a1f usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0x207e87c6 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x208641e5 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x20978fb9 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x20a47506 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x20a73f7d meson_pmx_get_funcs_count +EXPORT_SYMBOL_GPL vmlinux 0x20b752cf lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0x20bb2186 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x20bf4494 __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x20e487e2 dpcon_get_attributes +EXPORT_SYMBOL_GPL vmlinux 0x20fc44ac serdev_acpi_get_uart_resource +EXPORT_SYMBOL_GPL vmlinux 0x2117934b regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x2125c8be mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x21475c90 rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x21486e1f __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0x214f8ed9 dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x215c1bae pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x215e0677 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x216bf830 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x2176e42a hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x21844bf6 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x218be35c usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x219be201 serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21bf5d44 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x21cc9fca power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21d88b80 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x21eb4ab2 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x21ed2870 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0x2200061c __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x220ce70c kvm_arm_hyp_service_available +EXPORT_SYMBOL_GPL vmlinux 0x220dbef1 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x2210c0e4 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x221bb86e mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x221eab6d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x222b63b1 nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x22471c4c of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x224c4660 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x224c74c9 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x224e62a7 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x226f0094 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x2270322e of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x2271a9e3 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x2278498d nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0x227d917d sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x22979357 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x22a07afc serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22c5f588 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x22c7df11 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x22d77ea8 pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22d9fb76 rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x22ea8175 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x22ec5205 cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x22f31abb add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x22fd0a2b bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x23025002 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x23078c7a blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x231b699d handle_fasteoi_ack_irq +EXPORT_SYMBOL_GPL vmlinux 0x232a61c7 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x233b8698 fsl_mc_resource_free +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x234a039c crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x23639f57 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x2368f915 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x23796d8f tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x237a01fb crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x237b1410 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x23a2e78f __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x23ab75bb phy_create +EXPORT_SYMBOL_GPL vmlinux 0x23ac8ce0 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x23ad06c7 clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x23b5e63c phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x23bba35b clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x23c009f0 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x23cd1f2e edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x23ce6fe0 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x23d03b82 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x23d72fa3 thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x23db1add kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x23f1bd3a imx_clk_hw_pfdv2 +EXPORT_SYMBOL_GPL vmlinux 0x24173806 clk_regmap_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x241952c1 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x241c1360 tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x2438976e pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x243eb510 mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0x24413343 erst_read_record +EXPORT_SYMBOL_GPL vmlinux 0x244ce391 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x245b8dbb phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x24615b48 irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x2464da17 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x2469810f __rcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x246efc69 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x247f63e7 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x2484e789 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2486eb76 dt_init_idle_driver +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x248c98cb xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x248e1473 kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x24a735c6 acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x24da3d03 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x24de45bc fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x24df5e97 of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x24e8da10 device_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 0x24f88214 md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x251f3cbb rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x25301bc6 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x253db1cb of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x254e61a4 espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x2574da11 zynqmp_pm_write_pggs +EXPORT_SYMBOL_GPL vmlinux 0x2580e22f clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x25851409 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x259a85c4 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x25b76dc2 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25c66f15 fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x25e08a0d regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x25eee43e fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x25f1a4c8 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x25f4838b devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x25ff726e watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x260d5f81 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2618a960 devm_tegra_core_dev_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x261a5eb8 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x26336850 pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0x26430d5d __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x264d75b6 __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x264ee69e spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x26687413 nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2676bd03 i2c_slave_register +EXPORT_SYMBOL_GPL vmlinux 0x26779ebe devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x26872bbe regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x268dce89 of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x268df22e usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2694173a crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x269759dc rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x2698b28e umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x269f6750 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x26a93eb2 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26bdeb37 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x26be6081 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x26c0e278 fsl_mc_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x26c7fd05 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x26c843bd usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x26c878a3 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d1cffe usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26f23518 clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x26fa148a device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x272ac459 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x272e9d77 hisi_reset_exit +EXPORT_SYMBOL_GPL vmlinux 0x2735f7b3 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x27399859 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x273eb4c2 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x275507e0 devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x2773c485 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x27741b69 component_add +EXPORT_SYMBOL_GPL vmlinux 0x277e179b fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x279b56aa phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x27a425ce scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x27a978cd blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x27ac0da5 posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x27bc6793 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x27cb6f77 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x27d0dee9 tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x27d4e813 mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x27dc9471 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x27e2bd1e blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x27fe4750 mtk_alloc_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x280e2c1a led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x2817f7fd cppc_get_desired_perf +EXPORT_SYMBOL_GPL vmlinux 0x28233bcd kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x28310bcd kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x283180a2 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x2842fa5b sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x2849d4c0 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x286a1896 sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x288caaff attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x28afbb08 cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x28b030d2 of_overlay_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28c7b584 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x28d01577 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x28d3b9af rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x28d696f4 reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x28db08a0 folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0x28e5f900 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x28ecda20 regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x28f5627e pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x2904520a regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x291bf2a8 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x291c83f1 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x29310054 icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0x29310f55 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x293cb62f bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x29453e58 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x295b982a hisi_clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x296cf145 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x296d7feb dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x29713de8 serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x298ef6e3 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x29b9ad86 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x29bc6fe2 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x29d76547 k3_udma_glue_tdown_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x29db2d71 gnttab_unmap_refs_async +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29f131b8 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x29f7d3b3 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x29f9815c raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x29ffc952 dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x2a0ac68d tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x2a0d3eab tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0x2a22f179 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x2a2be53f pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0x2a2e4bed skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x2a37ea11 imx_clk_hw_frac_pll +EXPORT_SYMBOL_GPL vmlinux 0x2a5ea9ef rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a6bfccd virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x2a6bfcdc xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2a6dd6bf trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2a9bc2e8 devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x2aa16ce8 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2aadad1a efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x2ab6cc61 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0x2adf7100 sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0x2ae1689e zynqmp_pm_clock_getdivider +EXPORT_SYMBOL_GPL vmlinux 0x2aea8ee5 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x2aea9f56 acpi_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x2af7f918 dpbp_close +EXPORT_SYMBOL_GPL vmlinux 0x2aff986f param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x2b098965 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x2b0fe000 gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x2b15a74c clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x2b189235 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x2b1b018c dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x2b1e1acd cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b23ff1b rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b46d913 tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x2b4d2a7d led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b51ee99 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x2b5231f2 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x2b5eb041 devm_thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b699297 scmi_protocol_register +EXPORT_SYMBOL_GPL vmlinux 0x2b6d960d synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x2b76646e pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x2b78011e pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x2b7a89cb ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x2b7d15dc dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x2b850c68 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x2b86f0fd zynqmp_pm_bootmode_read +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 0x2ba330ad ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0x2ba89ee7 mtk_clk_unregister_factors +EXPORT_SYMBOL_GPL vmlinux 0x2bb42c05 meson_clk_dualdiv_ops +EXPORT_SYMBOL_GPL vmlinux 0x2bbe90a9 of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x2bc1c6a6 nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x2bdd0d31 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2be1581a nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x2bf0608b tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0x2bf829e8 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x2bf831cd pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2de137 fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c36cc85 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x2c61cfcb gnttab_dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x2c635527 arch_invalidate_pmem +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c790d4a __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81a826 imx_1443x_pll +EXPORT_SYMBOL_GPL vmlinux 0x2c8506ca tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c8f3bfe bgmac_phy_connect_direct +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2c9e48c1 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2ca90f30 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x2caf0b32 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x2cc495c5 rpi_firmware_property_list +EXPORT_SYMBOL_GPL vmlinux 0x2cc9d064 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x2cd91fad ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x2ce2e954 of_console_check +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2cfd0827 dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x2d0684a9 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x2d07656c cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d096119 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x2d0a0bb1 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d0eacbb pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d28dcf0 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x2d2c902f perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d338b13 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x2d3debb2 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x2d4027ca uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d430425 devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d69103c dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0x2d6aa0f0 arch_apei_enable_cmcff +EXPORT_SYMBOL_GPL vmlinux 0x2d7f75d6 serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x2da1f525 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x2daff911 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x2db67d4a owl_sps_set_pg +EXPORT_SYMBOL_GPL vmlinux 0x2dbffa13 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x2dcc1adc usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2dcd2fc9 wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0x2dd8f69b nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2def3b68 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2df3cea3 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e08226d badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x2e090b47 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x2e100eeb tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x2e1f2d18 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e30940b acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x2e41eaaf usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x2e5f821d dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e6f1a66 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x2e6f90e8 cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x2e715677 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x2e7b0b34 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x2e7bef02 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x2e91bddf pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x2e9ec24d free_iova +EXPORT_SYMBOL_GPL vmlinux 0x2ea2fc73 imx_obtain_fixed_clk_hw +EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec2ac8a l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x2ed489ec gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x2ee7c52b btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x2efb018d pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f10e45f of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f2bbd22 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2f443f17 pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f59fcc9 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x2f5eb5d5 __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f66974e dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x2f72b186 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0x2f762601 devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x2fa3d469 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x2fac3c71 k3_ringacc_request_rings_pair +EXPORT_SYMBOL_GPL vmlinux 0x2fbe8d50 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fcc6856 fsl_mc_bus_dpdcei_type +EXPORT_SYMBOL_GPL vmlinux 0x2fccfcdf gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x2fdb0bf9 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x2fff4e45 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x3004a63c kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x30181fff of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x301c3d21 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x30202d67 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x3025eee0 tegra210_clk_emc_dll_update_setting +EXPORT_SYMBOL_GPL vmlinux 0x3026e7fb skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0x30351294 k3_udma_glue_rx_flow_get_fdq_id +EXPORT_SYMBOL_GPL vmlinux 0x304527d5 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0x304f2a12 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3067041b serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x306d61df dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x307a304b pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x307c0c25 alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x308f89ed amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x30a4ff44 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x30bd40d4 dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x30c91037 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x30d022d1 dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x30d07ff2 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x30d1ab59 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x30d661fb fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x30de6ba2 reset_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x30e1ec25 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0x30e808e3 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x30e83bf3 devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x30eb0ca5 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x30f7fc64 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x30fe75d2 mtk_clk_register_composites +EXPORT_SYMBOL_GPL vmlinux 0x3100cf1e spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x310a7354 i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0x310ef3b8 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x31128b8e hv_remove_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0x311c6da4 put_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312f7996 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x313c13e1 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x313ea5fd ipi_send_single +EXPORT_SYMBOL_GPL vmlinux 0x314d24e3 handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x3166af76 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x3170973a irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x31839ad3 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x319c3a17 pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x31a1f612 scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31ca72db xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x31cc1f61 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31d15217 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x31d34278 xas_load +EXPORT_SYMBOL_GPL vmlinux 0x31d6f773 i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x31dca4d8 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x31dd24ac dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0x31e86ec7 pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x31e9b1e6 phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x31e9e8d5 zynqmp_pm_set_suspend_mode +EXPORT_SYMBOL_GPL vmlinux 0x31eee202 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x31f0bbad pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x31f1cade pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x320a8db6 otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x32225086 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x3228472d inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x323a2c1e mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x32425c6a acpi_dev_state_d0 +EXPORT_SYMBOL_GPL vmlinux 0x3246888b __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x324afcee dpbp_reset +EXPORT_SYMBOL_GPL vmlinux 0x325757d3 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x325888a3 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x3268869e max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x326cefe5 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0x326df998 of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x32760e22 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x327a2687 bind_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x32872154 irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x3288b93b __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x328b1d7b sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x328f771d pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x3294c978 iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0x3299f742 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x329ae8cc pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32b199d8 crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x32bc0fcf preempt_notifier_dec +EXPORT_SYMBOL_GPL vmlinux 0x32bcad49 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c4a8e4 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x32df33e7 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x32e739b3 msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x32ec6f83 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x32f13372 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x32f1ab8e handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x32f3cfb7 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x32f90369 sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x32fffbcb find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x33046349 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x3326b484 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x33292af4 dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x3329f8ff unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x33328b6f irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x3349bab5 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x33588ef8 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x337ccfea sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x337d1f28 phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x33b7cb1a fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x33cc0e20 __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x33d0c699 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x33d6465c __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x33da4dac pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x33fa931a blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x34030791 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x3404c24f icc_get +EXPORT_SYMBOL_GPL vmlinux 0x34200624 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x3432addd bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0x34331f04 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x344a2c84 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x34652bf2 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x346b7987 crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x3476ac5b list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x34a05a00 mtk_pinconf_adv_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34bea473 ahci_platform_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x34bf7765 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x34cca7f1 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x34cfab56 devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0x34d3249c debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x34d4f392 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x34e03327 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x34e2dcdc ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x34eab46d bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x34f3e141 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x34f8985d __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x34fc4ad3 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x35189e22 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352cd7d3 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x353386e5 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x35378f97 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x353dc7ba fsl_mc_bus_dpcon_type +EXPORT_SYMBOL_GPL vmlinux 0x353ec939 clk_regmap_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x354867cb msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x355b2ef2 ti_sci_put_handle +EXPORT_SYMBOL_GPL vmlinux 0x355bc89a klist_next +EXPORT_SYMBOL_GPL vmlinux 0x3562f983 read_sanitised_ftr_reg +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x357232d6 irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x357457c3 psil_get_ep_config +EXPORT_SYMBOL_GPL vmlinux 0x3576115e kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x359f6914 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x35a18e57 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x35a4f59d zynqmp_pm_clock_setdivider +EXPORT_SYMBOL_GPL vmlinux 0x35a803f2 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x35b2e334 do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x35b96986 trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x35cd810a pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x35cfa6d5 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x35d3dc46 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x35e3fa77 pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0x35e7bb0b posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x35f05af8 device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x35f4d91a udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35f5849a tegra_bpmp_mrq_return +EXPORT_SYMBOL_GPL vmlinux 0x35f92407 get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x35fe3e20 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x360e852c dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x3616251a crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x361afbe2 dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x361c4c46 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x361cb96c srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x3623e82c acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x363034ff acpi_subsys_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x363c335c hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x36424a6a bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x36489ea0 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x365838f9 irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x365989e5 imx_1416x_pll +EXPORT_SYMBOL_GPL vmlinux 0x365b45d1 __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x365fa026 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x366cae07 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x367a4f04 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x36888f77 pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36ac17ab alloc_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0x36afd08c qcom_smem_state_register +EXPORT_SYMBOL_GPL vmlinux 0x36c234a4 mpc8xxx_spi_tx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x36ce87da clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x36db870b zynqmp_pm_sha_hash +EXPORT_SYMBOL_GPL vmlinux 0x3708f1f8 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x37169f79 cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x371ffb81 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x372e60bc component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x37309672 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x373be4cb usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3746d7ec irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x3750d770 erst_read +EXPORT_SYMBOL_GPL vmlinux 0x3758aa84 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x375df27d fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x37626619 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x37650d14 rpi_firmware_get +EXPORT_SYMBOL_GPL vmlinux 0x3775c25b k3_udma_glue_tx_cppi5_to_dma_addr +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x377daa86 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x377f1b90 nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x378228a4 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x378adfb7 zynqmp_pm_sd_dll_reset +EXPORT_SYMBOL_GPL vmlinux 0x37914025 xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x37a0c351 pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0x37a1ff21 devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x37b1162c fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x37c12d46 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x37c2393b clk_regmap_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x37c76b93 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x37cee3cb acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x37d0650b virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x37d6389a genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x37e49786 irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x37e8d3f2 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x37eb6c0b devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37f95e12 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x3801776b __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x381a6b63 devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x382a0e9a gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x383fcf0d usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x38421717 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x38551c9c fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x3866e217 nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x38708e25 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x388219b0 kvm_destroy_vcpus +EXPORT_SYMBOL_GPL vmlinux 0x3885bbd7 nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x38860a3d virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x388d9802 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x38a736d7 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38b445ee pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x38b8beae __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x38c3ff30 freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x38caaf50 tegra_bpmp_put +EXPORT_SYMBOL_GPL vmlinux 0x38ccd4a5 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x38d4f338 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e30eb5 clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x38efd85d tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0x390426cb addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x3917cdd5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x391bb078 wp_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x392545d7 dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x39393064 devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x396c3322 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0x3975130f sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3982b5a1 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x39847b37 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39baacf1 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39c9d88c xas_find +EXPORT_SYMBOL_GPL vmlinux 0x39cc04a0 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x39d09179 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x39e0623a serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x39e7f862 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x39e9ff04 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x39fd83db halt_poll_ns_shrink +EXPORT_SYMBOL_GPL vmlinux 0x3a146690 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x3a24bbd9 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x3a3f7ef0 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x3a4b6e42 __fscrypt_inode_uses_inline_crypto +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 0x3a570810 __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x3a6b82f4 mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x3a74e484 __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a96bfd2 of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3ab09c0c sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x3ac3feba rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x3acbed3a i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ae12b9b rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x3ae6a7b9 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x3af6a435 nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x3afc4a8f sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3b03918e pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x3b09d106 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x3b0b6f8b spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x3b166888 skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x3b1d7d6c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x3b2b6884 page_endio +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b610584 __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3b61e0d8 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x3b6509e5 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x3b78bf02 sunxi_ccu_get_mmc_timing_mode +EXPORT_SYMBOL_GPL vmlinux 0x3b8ed420 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x3b915741 debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x3b915e8a folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x3ba01b47 get_compat_sigset +EXPORT_SYMBOL_GPL vmlinux 0x3ba1aaae driver_find +EXPORT_SYMBOL_GPL vmlinux 0x3bc146a2 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x3bc16355 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x3bc82bad usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x3bd5fc75 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3bd713f4 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdc0e0c __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3bf3698b vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0x3bfab930 tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3c02f456 register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3c0e8050 hyperv_pcpu_input_arg +EXPORT_SYMBOL_GPL vmlinux 0x3c11b9f5 tegra210_put_utmipll_in_iddq +EXPORT_SYMBOL_GPL vmlinux 0x3c17d544 acpi_storage_d3 +EXPORT_SYMBOL_GPL vmlinux 0x3c182d12 iommu_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0x3c1b6470 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply +EXPORT_SYMBOL_GPL vmlinux 0x3c2c0c4b skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x3c39af42 regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x3c3ba3f1 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x3c3c0f31 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c3d4f19 irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x3c5d543a hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x3c5ed6aa rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x3c608313 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x3c64b89d __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c6b37c9 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3c705f03 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3c78a7ac ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x3c7b9573 gpmc_omap_onenand_set_timings +EXPORT_SYMBOL_GPL vmlinux 0x3c8ee67d devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3c90eb66 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cb811a2 fsl_mc_obj_open +EXPORT_SYMBOL_GPL vmlinux 0x3ccd8b46 zynqmp_pm_clock_getparent +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cd89f0a of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0x3ce2369e meson_pmx_get_func_name +EXPORT_SYMBOL_GPL vmlinux 0x3ceee133 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3cfbbf4e metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x3d016dbc edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x3d365c16 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4ac7bf tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d598e15 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d8baf3b zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3da299aa acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3dc78c90 thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0x3dc950cf set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x3dd321a7 mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df70c99 trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0x3df84ca6 ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x3e06abe2 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x3e101e00 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x3e2964de fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x3e483b69 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x3e48955f platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x3e4dded6 blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x3e63c333 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x3e66c735 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x3e693a68 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e8182b6 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x3e864836 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x3e87b764 elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x3e9ddc3d pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ebe6422 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x3ec5ff3b acpi_bus_get_acpi_device +EXPORT_SYMBOL_GPL vmlinux 0x3ec6f141 debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x3ed3f243 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3efe41af regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3f0499ac cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x3f145b9f fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3f261729 phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x3f26b905 pl08x_filter_id +EXPORT_SYMBOL_GPL vmlinux 0x3f2c8737 dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x3f321640 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f49419d crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x3f4dec59 fsl_mc_bus_dpaiop_type +EXPORT_SYMBOL_GPL vmlinux 0x3f570b6d usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x3f5a6c54 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x3f68ca50 sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x3f809bbb netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x3f834a61 dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3f86c9ae ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x3f8b3deb regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3fa4f4d7 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x3fae6ab0 hv_vp_index +EXPORT_SYMBOL_GPL vmlinux 0x3fc135d3 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x3fd088b9 strp_done +EXPORT_SYMBOL_GPL vmlinux 0x3fd46ea8 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x3fd4bb0b sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x3fdb8634 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x3fe07374 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0x3fe35aea irq_bypass_unregister_consumer +EXPORT_SYMBOL_GPL vmlinux 0x3fe4820a ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3fea029c hisi_clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x3feb7b43 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x3fed3b62 devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ff77cd4 ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x4002de99 xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x400f137f ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x40114d8c netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x401aa903 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x4020d591 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x40267068 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x402b0048 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x402f8301 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x403eac60 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4043757f init_iova_domain +EXPORT_SYMBOL_GPL vmlinux 0x4044f2fd pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x40651cd1 kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x4068913b sysfs_break_active_protection +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 0x4080065b nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x409537cc nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40ba7595 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x40cfe60f scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x40e0ba52 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x40e250a5 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x40e7b5e3 metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x40e86973 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x40e89fd4 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x40e914a2 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x40f0675c acpi_fetch_acpi_dev +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x4101b63f pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x41237f71 cpu_have_feature +EXPORT_SYMBOL_GPL vmlinux 0x41285a5a raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x414f79c0 mtk_clk_unregister_gates +EXPORT_SYMBOL_GPL vmlinux 0x4150f751 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x418873cc irq_bypass_register_producer +EXPORT_SYMBOL_GPL vmlinux 0x41900c9b dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x419033cc driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4191c8e5 __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4195c97a edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x419d7c83 zynqmp_pm_pinctrl_set_config +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x41a22537 pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x41a31935 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41ba0ea9 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x41bce49a ghes_register_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x41c9f2c5 disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x41cd0b23 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x41d07fc4 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x41e7d532 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x41ebdd7b md_run +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41f8b7a8 cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x41f9fc8a dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x41fb98fd em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x420f3d01 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x42155670 blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x4216eb64 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x4217580a skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x421e218d ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x42207268 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x422428b8 device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x4226c8f2 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x4257a6b4 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x425c04a2 fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x426452a3 acpi_evaluation_failure_warn +EXPORT_SYMBOL_GPL vmlinux 0x42696e05 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x427a8285 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x429525ce pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42ac7c62 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x42addcde rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x42ae5c8f ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x42bf8fe1 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x42c0c0d1 kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x42d0d1cf sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x42d227cc fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x42d889b9 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x42d9a914 handle_fasteoi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x42de69ea shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x42e03480 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x42fe0642 nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x430fb822 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x434a1558 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x434b4863 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x434fc673 uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x43805588 fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x4381a27d i2c_acpi_find_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x4384deee ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x43906ad8 tegra_bpmp_transfer_atomic +EXPORT_SYMBOL_GPL vmlinux 0x439a3a7c ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x439af035 ahci_platform_resume +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43b81556 vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x43becbc6 altr_sysmgr_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x43d4c458 device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x43ddb8a3 of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x43e0a4d7 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x43e3632b regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x43e6fd71 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x43fd612e vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x43feecde k3_udma_glue_rx_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x441bb1cb spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4430aa45 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x4436e12d elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4439914b meson_pmx_get_groups +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x443aeb79 of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x445d0333 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4487cd9d mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0x448dc5c1 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x449d5a0f ti_sci_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x449ebed1 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x44a793ab HYPERVISOR_grant_table_op +EXPORT_SYMBOL_GPL vmlinux 0x44ac8406 blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x44aef47e hisi_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x44b606a7 add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44c43141 clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44e1e9aa balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x44f853c5 icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0x44fb6020 acpi_dev_clear_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x44fe2347 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x450047b9 ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x450c0279 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x452e9532 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x4531624f usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x4531ab62 copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x45332f08 regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x453539af devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x45364e1d do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x453b11ab fsl_mc_bus_dprc_type +EXPORT_SYMBOL_GPL vmlinux 0x453ca65a __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x453f416d misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x4554a70b hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x4561f990 qcom_smem_state_unregister +EXPORT_SYMBOL_GPL vmlinux 0x457153f0 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4577425c driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x457c4274 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x45832f60 fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x4585d04a iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x459e0ad0 tegra_bpmp_transfer +EXPORT_SYMBOL_GPL vmlinux 0x459e6151 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x45a1b2e6 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x45a25ee5 locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x45a3506d dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x45a5c324 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x45b378c3 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x45c53948 msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x45cd13fb fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x45cefafd fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x45d95317 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x45dd83c1 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46030074 __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x461a857d acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x46269814 __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x464221ea fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x464bb9a4 gnttab_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x4657455a mtk_mmsys_ddp_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x4667fd0e ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x466d0bef iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x467590f0 vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46a4b118 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x46c5be22 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x46de3c8a dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x46e67a71 this_cpu_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x46fd3e84 mtk_pinconf_drive_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x46ff2121 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x47078950 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x47093e89 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x47100cb5 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47231ebe kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47749af3 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x4789814f crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x4789ad03 blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4796a262 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47a3150f device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47ad655a pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x47af5e24 __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x47baca6e devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x47cac822 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x47d08e00 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x47d0eea2 acpi_lpat_temp_to_raw +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47e581c6 fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x47f480d8 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x4815aa79 dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x4843a748 qman_portals_probed +EXPORT_SYMBOL_GPL vmlinux 0x48469dbc security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x484924a9 serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x48526cba edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x486dedc3 ghes_unregister_vendor_record_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4880624b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x48865f9c __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x48878b38 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x4896d86b pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48a62752 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x48b4a75c dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x48b71a2a fsl8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48c420eb of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0x48e4e84a regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x48f87e5b tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x4905f1d0 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x4915e7af __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x4916559a devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x492bfaeb md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node +EXPORT_SYMBOL_GPL vmlinux 0x494b5a2d power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x4950866a rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x4953b3ce ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x4960e25c vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x496a7f04 __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x496cbfb2 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x4973004b i2c_acpi_client_count +EXPORT_SYMBOL_GPL vmlinux 0x497687b6 icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x497a84ae mtk_clk_gate_ops_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x4983010b wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x4986c38e ahci_shost_groups +EXPORT_SYMBOL_GPL vmlinux 0x498977ad fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499802df vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x499f6304 nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x49a64410 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x49ba870a devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x49bb06f4 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x49bffff8 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49dcedd9 battery_hook_register +EXPORT_SYMBOL_GPL vmlinux 0x49e737e8 dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49ea931c __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x49eff5fe __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x4a07a9d1 dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0x4a1671ad k3_ringacc_ring_cfg +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a18eb05 blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4a20b9e4 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4a24c685 call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x4a2755fe devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x4a2de6fd apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x4a3bd136 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x4a3d61f2 pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x4a420d09 acpi_bus_detach_private_data +EXPORT_SYMBOL_GPL vmlinux 0x4a42a4f0 pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x4a47e316 power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x4a48e881 irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0x4a57ef8b wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x4a6f1f6b md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x4a705bda tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x4a72520a dax_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x4a7b41c9 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x4a83b7f6 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x4a937c94 spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4aae1869 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x4ac003b1 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4ac610c2 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4ad168de dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x4adc3207 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4adc97b7 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4aef7e22 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x4b0de048 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x4b27ca73 fsl_mc_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4b2bf151 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x4b3442e7 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x4b40ea52 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b522775 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x4b5acf74 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x4b5d56d3 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x4b6b5766 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b6ff596 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0x4b736f9d nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x4b737f65 spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x4b86e24b hisi_reset_init +EXPORT_SYMBOL_GPL vmlinux 0x4b8e2069 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x4b92019b devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x4b9247a8 mtk_pinconf_bias_get_combo +EXPORT_SYMBOL_GPL vmlinux 0x4b931968 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x4b9e73fa tegra_xusb_padctl_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x4ba6931e preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x4bb47cc3 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x4bbc7465 trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0x4bc4c1a5 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x4bc783ab rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x4bc8727f xen_balloon_init +EXPORT_SYMBOL_GPL vmlinux 0x4bc92623 xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x4bd015cf device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4bd49329 gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4bd80320 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4bfd398d hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x4c2c0ea7 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0x4c399550 debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4c421a8d of_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x4c49b08b pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x4c4e663d irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c8adfe1 hv_root_partition +EXPORT_SYMBOL_GPL vmlinux 0x4c90e592 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4caab16b bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb3af35 gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4cba08cd usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x4ce5b2ef gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x4cef6a47 ti_sci_get_handle +EXPORT_SYMBOL_GPL vmlinux 0x4cf3bb4a clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d25d432 pfn_to_online_page +EXPORT_SYMBOL_GPL vmlinux 0x4d2765df dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x4d2bf140 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x4d321e3b rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0x4d34e615 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d4909ba gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x4d49ba46 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x4d4bc2c4 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x4d4cd939 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d561869 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x4d5ec72b ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d7bc664 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x4d83c710 k3_udma_glue_tdown_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x4d8fc561 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x4d90c206 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x4d9108cc fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x4d95d6d1 memcpy_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x4d9717d5 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x4d979e09 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x4daaead2 crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4db3e441 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x4dbfc897 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x4dcc5b9b blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x4dcf77e4 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x4dd7dc2b __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4ddfadd6 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de8011b percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e03d38e pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x4e053474 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x4e17c613 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4e27fc3b spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x4e37f286 iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x4e3fd1b4 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x4e406f2c __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x4e42ca2c debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x4e43cfe2 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x4e4557d1 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x4e4c37e2 freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e5a37d0 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x4e718b14 usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x4e719029 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x4e74878e __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x4e962022 usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x4e9b2e2f efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4eb39d4e __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x4ece3615 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4ed593c2 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x4ed92b6b of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x4eec70b3 kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f2593f0 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x4f2a7785 crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0x4f2c996d kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x4f33405f pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x4f33b8d6 mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x4f4d7ef3 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x4f524f9f get_device +EXPORT_SYMBOL_GPL vmlinux 0x4f54274b crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x4f674dce fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f746c7e metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x4f7556b5 md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0x4f75c890 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x4f76c8a1 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x4f8cca15 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x4f9783fe component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f9c102b clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x4fb5a10e synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0x4fc36da7 clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe0925d ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x50078be4 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x500a5bcc perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x500af6cb sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x500c768c apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x500f41fa devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x5018fc15 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x502c680e rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x50384ef2 __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x503bc308 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0x50447357 acpi_data_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x505b3e69 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x505c1c25 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x506364b9 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x506833d1 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x50816401 percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x50851025 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50a08570 __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x50b0916b pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x50bc0d4a badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x50c2ae54 rpi_firmware_property +EXPORT_SYMBOL_GPL vmlinux 0x50d78353 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x50df94f5 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50ecad59 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x50f498df devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50ffc52d tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x510019d1 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5111d75c mtk_clk_unregister_composites +EXPORT_SYMBOL_GPL vmlinux 0x51170e2c pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x512393ce register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x51267fcf iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x512cef80 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x51383b42 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x51478585 dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0x5152bd85 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x515715b7 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x515a7f50 fsl_mc_bus_dpci_type +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x515b5b87 mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0x515d1c01 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5163d51f device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x5169344d k3_udma_glue_pop_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x516d5527 trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x51991b38 mtk_mutex_enable +EXPORT_SYMBOL_GPL vmlinux 0x519e84a3 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51ad07dd tegra210_plle_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0x51ba7d9b pcc_mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x51bf963b start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x51c9c321 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x51ceed14 fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x51d13875 nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x51d5fc00 meson_eeclkc_probe +EXPORT_SYMBOL_GPL vmlinux 0x51e6e26a udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x51f94384 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x51fc9a6d xenmem_reservation_decrease +EXPORT_SYMBOL_GPL vmlinux 0x520fc296 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x5228ffee kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x52431348 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x5257dd5e ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x52686ff0 genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x52763705 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x527f980b irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x5297a6c2 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x529d835b component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x529f6dad rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52b3f45a devm_ti_sci_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x52b77891 hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x52bf2cf2 devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x52bf69eb alloc_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x52c29ab0 __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52c62f4e kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x52ce2057 hv_setup_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0x52d2eed3 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52d9e2ca regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x52e95afc ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x52f336ed kvm_vcpu_halt +EXPORT_SYMBOL_GPL vmlinux 0x52ff71f9 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x53012944 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x530842bd pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x53155f83 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x53237661 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x532b90b5 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x534210cf set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x534310b9 ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x5345fa2c dprc_close +EXPORT_SYMBOL_GPL vmlinux 0x53488dc8 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x5362a7df regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53655795 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x536a3f38 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x539881ef aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x5399b744 led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x53a0dd61 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x53a338b7 bgmac_alloc +EXPORT_SYMBOL_GPL vmlinux 0x53a918fb virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x53b36a07 phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x53b9d0d9 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x53c089f5 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53ff1c35 tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x540dea3a bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x54128cea __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x541dd5d7 xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x54247089 blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x5438f6c8 dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x544ca027 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x5460d5c4 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0x54651f9b rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x547cf83a stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x547ed14f espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a25da2 qcom_smem_state_put +EXPORT_SYMBOL_GPL vmlinux 0x54ace6ca devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x54adaaa8 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x54bab999 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x54c2d8fc gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x54c6536d __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0x54ca6dcf crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x54cee684 __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x54e8fc7e led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x54ec7cde of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x54f12f40 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x54f5a26a meson_clk_dualdiv_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x54f9af25 ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x54ff684f bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x551f5cc9 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x5528543b vmap_pfn +EXPORT_SYMBOL_GPL vmlinux 0x552f658b regulator_set_drvdata +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 0x554b01c4 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x555c1294 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x5564bd44 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x5572fc85 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55c9880c zynqmp_pm_release_node +EXPORT_SYMBOL_GPL vmlinux 0x55cadd79 get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x55ce448c kvm_arch_ptp_get_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x55d61951 dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x55dbbaf2 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55fcc8fa __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x55fcdaca shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x5607947c sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x5614ae07 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x561b079c power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x5628d723 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563d7cd5 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x56400095 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564c2ce2 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x56539d28 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x5657ea5a power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x5661a487 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x5662989d __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x566c0d76 mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x56763428 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x5689e0a7 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x568daf7e nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x56990d32 meson8_aobus_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x56add893 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x56c622c2 balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x56c6c6a0 of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0x56c7b227 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x56d800ee mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x56d8df85 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56f09173 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0x56f29e12 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x56ffd007 dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5701c716 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x5711ca9b gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0x574027b0 sprd_pinctrl_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x574609c5 apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0x5762d0a7 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x57719632 gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x577a438a tegra210_clk_emc_detach +EXPORT_SYMBOL_GPL vmlinux 0x577a5f5a key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x577c938f da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x5780decd i2c_dw_acpi_configure +EXPORT_SYMBOL_GPL vmlinux 0x578a5b68 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x578eeb4d hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x5799e45e sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x579d350d i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a733eb inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x57a97639 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x57bed8c5 fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57d585fe da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x57e0d317 clk_regmap_gate_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x57e2a08a of_reserved_mem_device_init_by_idx +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x57fd14e0 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x5810799d udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x58225354 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x58276f93 cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0x5827a334 dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x58315632 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x584ce2b7 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x5856dc66 gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x585eac68 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x586bfc8a alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x58885b87 bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x588dca9a gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x5892bbbe xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x58a81f15 put_device +EXPORT_SYMBOL_GPL vmlinux 0x58b57e4d mtk_pinconf_bias_set +EXPORT_SYMBOL_GPL vmlinux 0x58b9f3f3 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x58c51cb0 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x58c7d0dc devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x58c84303 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x58cc1fc3 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x58cef95b fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58e14f15 HYPERVISOR_event_channel_op +EXPORT_SYMBOL_GPL vmlinux 0x58f6cbe3 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x5903572f input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x591103d3 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x59269767 mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x59456eaf usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x595c6257 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x59631e57 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x596a4c8a serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x596fc07a pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x597df6a1 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x599c6063 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x599ec74c tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x59a8a296 blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59c9bb0b phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0x59d5c65b hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x59e640c0 halt_poll_ns +EXPORT_SYMBOL_GPL vmlinux 0x59ec6a84 pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x59f8b7c6 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0x5a0a74c2 pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1c1595 fsl_mc_bus_dpdmux_type +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a2329c2 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x5a275138 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x5a2b382d iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5a364897 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5a42c937 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x5a47cdf4 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a548039 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x5a56ba6c sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x5a63ae29 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a705f7d devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x5a79a8d4 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a820256 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x5aa70984 acpi_reduced_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5aabfc39 i2c_slave_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5abe4a7f akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x5ad46c9f xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x5aed7b12 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x5af0b3ed md_stop +EXPORT_SYMBOL_GPL vmlinux 0x5af8deb3 devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5af9c4a9 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x5b1001eb rockchip_clk_register_armclk +EXPORT_SYMBOL_GPL vmlinux 0x5b101405 simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x5b11d124 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x5b1a6c3a dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x5b1d692b dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b224224 dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x5b248bae platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5b38ba40 of_usb_host_tpl_support +EXPORT_SYMBOL_GPL vmlinux 0x5b44cc13 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x5b5df024 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5b6a2ef3 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b8a6d46 devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x5b8e8ffa virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x5b9850d4 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5bb68038 xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc35803 of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x5bc6488f kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x5bc70d05 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd51398 __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5c04f499 exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x5c070f62 cper_mem_err_status_str +EXPORT_SYMBOL_GPL vmlinux 0x5c0d3538 acpi_set_modalias +EXPORT_SYMBOL_GPL vmlinux 0x5c0eaf31 acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5c0f77ce HYPERVISOR_platform_op_raw +EXPORT_SYMBOL_GPL vmlinux 0x5c1918b1 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x5c1b16ea acpi_device_update_power +EXPORT_SYMBOL_GPL vmlinux 0x5c240063 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c49ca46 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c5c2ebf usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5c63f4bc iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x5c648ee9 skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x5c6f3ad6 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x5c72d59a inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x5c7817b2 of_device_request_module +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c886e68 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x5c892964 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5c9f3c4d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x5ca493ac posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x5cab9945 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x5cac21df devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5cb4dd65 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5cb51dd1 memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x5cd80eee srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x5cd82f61 devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x5ced86dc stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cedf08d __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5cefbb55 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x5cf6edc3 of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x5cfcf1a4 __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x5d028cc0 switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0x5d0bdc5b vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0x5d145f6a cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x5d17148b apei_write +EXPORT_SYMBOL_GPL vmlinux 0x5d2aa5fb rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d2d6d7b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x5d2e7f94 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x5d34abd3 iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d3e31cd __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d417d2f pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0x5d50eb79 dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x5d58ea9b amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d720c8b tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x5d7432f9 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x5d829814 device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d84dd2d regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x5d8cd632 hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da365ce devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5da9fc81 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5dab4f7f regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x5db05be6 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ddb1ef7 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x5de412cd k3_ringacc_ring_push +EXPORT_SYMBOL_GPL vmlinux 0x5e078735 iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x5e094886 gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5e19f6ca extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x5e31eaf4 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e60589c of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x5e71505d __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5e76bb57 k3_ringacc_ring_get_size +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5e998730 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x5ea742b0 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb18016 devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5ec2319a mtk_mutex_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x5ecdcf90 ti_sci_get_free_resource +EXPORT_SYMBOL_GPL vmlinux 0x5ed037d6 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5ed979d8 disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x5ee2aa12 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x5eee2ab8 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x5f0ec0d6 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x5f14177d scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x5f155da4 fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x5f17ca27 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f256223 __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0x5f30f46b dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x5f5093f1 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5f5d7b61 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x5f682fcf dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f778652 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f910e21 devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5f92d9c7 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x5f93bab1 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x5f971469 edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x5f98bd79 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL vmlinux 0x5fc1fa71 fsl_mc_bus_dpdbg_type +EXPORT_SYMBOL_GPL vmlinux 0x5fcb82ca fsl_mc_bus_dpseci_type +EXPORT_SYMBOL_GPL vmlinux 0x5fd61c8c tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x5fdfcd57 __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x5fe53eaf power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x5fed0199 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x5fee169e device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x5fff094e gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x600a884d skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x601cc0b0 kvm_get_running_vcpu +EXPORT_SYMBOL_GPL vmlinux 0x601e58f3 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6020f8bb regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x602d3624 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x603d0d51 acpi_os_map_iomem +EXPORT_SYMBOL_GPL vmlinux 0x60442822 phys_to_mach +EXPORT_SYMBOL_GPL vmlinux 0x6045b4d1 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x6050364d usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x605a1129 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x605d5bfa cache_line_size +EXPORT_SYMBOL_GPL vmlinux 0x605f7d64 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x606d57f9 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x60725b55 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x607d168c ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x60856265 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x608bd47b crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x608d25d6 __xas_prev +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 0x60a50784 device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60b1c2fd clk_regmap_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x60c318ec pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x60c3a79a mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x60ccceb0 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x60e33a0b ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60f51eb2 pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x60f99e1b cppc_set_perf +EXPORT_SYMBOL_GPL vmlinux 0x60fcad79 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x61004d68 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x611cfa85 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612a6c70 rockchip_clk_of_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x612abf57 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x613e4b9e lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x613ed004 xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all +EXPORT_SYMBOL_GPL vmlinux 0x6156a5f7 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x615d3447 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x6161d2dc receive_fd +EXPORT_SYMBOL_GPL vmlinux 0x616e1e32 bind_interdomain_evtchn_to_irq_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0x616e818e msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0x617a5546 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619d2eca acpi_gpio_get_irq_resource +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61de4c79 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x61f20cc1 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x62027b44 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x6209e170 pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x621d6407 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x623f4256 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x62519a80 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x625f94ce usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0x626335d7 devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x62660b7b dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0x626fd000 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x627a8bf5 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x629c27e1 clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x629f10a9 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x62b37f12 devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x62b3d7b5 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x62ba5f44 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62d81eb6 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x62da1db9 gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0x62e35181 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x62e37b98 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x62f61ea2 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x62f84117 ata_scsi_unlock_native_capacity +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 0x632852dd hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x6330bbee debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x6344bd3e fsl_mc_bus_dpdmai_type +EXPORT_SYMBOL_GPL vmlinux 0x6347e2cd regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x63502240 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x635f5877 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x63603c32 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x63645f44 devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x636c8b6c udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x636f16f5 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x6370aff5 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6380ac84 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x63891865 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x638aff11 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x63914862 sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x63ad1a7b vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x63b35bee ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x63ba19e6 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x63bc6849 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x63bd0bc8 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63cbb251 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x63da5c57 nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63ea80b3 cper_mem_err_type_str +EXPORT_SYMBOL_GPL vmlinux 0x63f10f80 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x640badc8 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x641e3fc5 __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0x6427572b tegra210_clk_emc_dll_enable +EXPORT_SYMBOL_GPL vmlinux 0x64317d51 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x643b06b0 zynqmp_pm_clock_setrate +EXPORT_SYMBOL_GPL vmlinux 0x64427c58 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x64441f9c devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x644c495f ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x6454b35d __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x64609d25 __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x646787b1 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x646a1624 clk_hw_register_gate2 +EXPORT_SYMBOL_GPL vmlinux 0x646c83b9 spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6485cd35 trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x648dfc82 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x64a31445 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x64a6c906 icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0x64c2da16 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x64db03a8 filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64e7ba41 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x64ede602 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x64f36620 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x64f74abf __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x64ffb9d1 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x6502d9c2 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x65080c64 __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x650c261e devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x651f2235 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x65202675 clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x6539163b housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x6545268e __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x6553f7ee __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x655a5880 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x65629238 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x657afc88 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x65889843 dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x65acf90c sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x65b05266 free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x65b1a40e led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x65cca7a9 dax_layout_busy_page_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65e01af9 __sync_icache_dcache +EXPORT_SYMBOL_GPL vmlinux 0x65e6c067 xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x65edd059 validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x65ff6d9f irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x6609a11e bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6624974b virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x662bc1ae badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x662e4c7f ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x662f9849 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x6640d244 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x66420315 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x664eb54a k3_ringacc_ring_reset_dma +EXPORT_SYMBOL_GPL vmlinux 0x66547a8b __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66a2603b clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x66a68799 make_device_exclusive_range +EXPORT_SYMBOL_GPL vmlinux 0x66ab7a77 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66c0451f component_del +EXPORT_SYMBOL_GPL vmlinux 0x66c1e44b k3_udma_glue_tx_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x66c87e87 mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x66cd247b pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66ee00ea dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x66ee3513 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x66efdc29 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x66f6d0e7 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x67337fa1 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x673c7743 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x67453dc3 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x67566ef1 platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x6757dcdd inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x6765f7b6 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x676c688f k3_ringacc_ring_free +EXPORT_SYMBOL_GPL vmlinux 0x677ff88c xas_store +EXPORT_SYMBOL_GPL vmlinux 0x678c670e devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679d5731 ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x679e9347 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x67a009a0 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x67aa696c iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x67abf970 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x67bb142c rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67e59459 acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0x67e9c93b of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0x67ee90fd power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x67fbc9b4 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6800a602 xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x6804995d pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x6814e79c dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x68249bad __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x683230bf strp_process +EXPORT_SYMBOL_GPL vmlinux 0x68460527 blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x684ca117 zynqmp_pm_get_pll_frac_mode +EXPORT_SYMBOL_GPL vmlinux 0x686f13d6 imx_pinctrl_sc_ipc_init +EXPORT_SYMBOL_GPL vmlinux 0x686f5df5 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0x688edaa4 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x688f9e26 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x6892e3c3 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x68a2ceac crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x68a8748e vcpu_put +EXPORT_SYMBOL_GPL vmlinux 0x68b546a5 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x68bcdee0 regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x68c28aa2 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x68c6ae32 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x68d09f7b dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x6902aa48 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x6918988f clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x693d8b70 ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x6949c02b irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x694ac95d fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x69561711 mtk_pctrl_show_one_pin +EXPORT_SYMBOL_GPL vmlinux 0x6962c62c device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x696340a5 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x696371f9 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697f162a debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x69820772 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x698dfe6d bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x698fa0db ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x699b60e0 cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d1516d nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0x69d6f0b6 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x69f324db device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x69f9966a fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a098037 ahci_platform_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a14d3af unregister_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a305a4f acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x6a36ff74 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x6a3f4416 register_asymmetric_key_parser +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 0x6a73522c irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6a737aad pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a93c9b2 zynqmp_pm_pinctrl_get_function +EXPORT_SYMBOL_GPL vmlinux 0x6a99d1ea nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x6aa2a877 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x6aac5194 bgmac_enet_probe +EXPORT_SYMBOL_GPL vmlinux 0x6aad9152 xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x6ab166d5 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6ac1ff78 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x6ac40846 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x6ac436e1 spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x6af6d29d tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x6af8355a usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x6b0bb0f5 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x6b0d73f6 scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0x6b0dc565 xen_set_irq_priority +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b3ae022 acpi_os_unmap_iomem +EXPORT_SYMBOL_GPL vmlinux 0x6b4045ee zynqmp_pm_get_api_version +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b43e91a gnttab_page_cache_shrink +EXPORT_SYMBOL_GPL vmlinux 0x6b47f8a4 hisi_clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x6b4a4bee sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x6b4d3439 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0x6b57ef94 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x6b63bd7a bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x6b7489e5 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x6b75fd58 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x6b7a4335 hyperv_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b834121 bman_portals_probed +EXPORT_SYMBOL_GPL vmlinux 0x6b8bb64c fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x6b9097ec devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x6b9fb06c ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6ba36c6a hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bbd8324 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x6bbfcb1f elv_register +EXPORT_SYMBOL_GPL vmlinux 0x6bc7cfba spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x6bc9b022 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd11a8e crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6bdc52ee i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x6bdef35c acpi_ec_mark_gpe_for_wake +EXPORT_SYMBOL_GPL vmlinux 0x6be1c3c2 l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6be3a96b hv_remove_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x6bfdb00e devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x6bff7911 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x6c021f78 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x6c060ff8 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x6c0f4ad0 fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x6c1dac70 devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x6c205008 mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x6c32bf99 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL_GPL vmlinux 0x6c3d27cf ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6c4b4966 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c5052ca __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c5dc5e7 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c7c94d7 dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0x6c832fc1 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x6c866f9d divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6c96d48d sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cb0ce87 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x6cb211b7 led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x6cb2e476 device_add +EXPORT_SYMBOL_GPL vmlinux 0x6cb68201 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x6cbd1549 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6cd3004f sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x6cdb95ec edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x6ce10eb0 trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6ce6d9f5 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6cedb4af fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x6cfabcdc sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x6cfdb8aa vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x6d0299e7 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x6d04891d inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d09a0eb ahci_platform_disable_phys +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d0ba18e kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x6d1aaa0e nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0x6d229c92 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x6d236f27 meson_aoclkc_probe +EXPORT_SYMBOL_GPL vmlinux 0x6d23f403 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d324291 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d37b595 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x6d467b08 arm_smccc_1_1_get_conduit +EXPORT_SYMBOL_GPL vmlinux 0x6d4c38be pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d63ad95 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d70de31 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6d76472a genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d78db58 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d8891db ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x6db1fe66 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dbb6ade nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x6dbcfcfc kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x6dc339d1 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x6dd1a5e0 kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL vmlinux 0x6dd38fb5 dpcon_disable +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6ddc36dc gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x6de84fb9 pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x6df69824 soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e04f62b vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e1b21ca bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x6e1c89c2 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x6e2c0966 __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e4aa78d k3_udma_glue_rx_flow_enable +EXPORT_SYMBOL_GPL vmlinux 0x6e59f821 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x6e6df790 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e81ce01 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e8ae2ef serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x6eb04f46 register_random_vmfork_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec2f9a0 dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x6ec347f9 devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x6ec8fb2f __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6eecab7d nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x6eefc798 devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x6ef0855c ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6efcd613 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f1e8602 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f3b7d4c dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x6f4473cd k3_udma_glue_request_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x6f466d4f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x6f4b15f2 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x6f4f6985 devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x6f503c61 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x6f537e6a acpi_cppc_processor_probe +EXPORT_SYMBOL_GPL vmlinux 0x6f592ec0 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x6f5c6b30 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x6f5fd208 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f81a5f4 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x6f8b4ef8 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x6f90e529 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x6f94e76d of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6fae0518 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x6fb6a6d3 fsl_mc_bus_dpbp_type +EXPORT_SYMBOL_GPL vmlinux 0x6fc66db5 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fd60cf6 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x6fe7251e rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x70117019 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x701cdf46 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x7023b519 acpi_is_pnp_device +EXPORT_SYMBOL_GPL vmlinux 0x702cf7e4 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x703131cc tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x703562f7 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x703c3193 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x7047490d ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0x704d9d86 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7061db47 dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x706874c5 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0x707077dd xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7087b717 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x708aa292 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x708fef69 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x70958f52 i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x709bd077 genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x70a1cf9c iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x70b0fb2d __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x70c2c7ea pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70e01459 ahci_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x70efd61a spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x70fbae4d cppc_allow_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x70ffbe87 gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7129a6f4 osc_sb_native_usb4_support_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x712f1734 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x71349227 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0x7134aa95 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7140c092 usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x7144eb3d acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0x71467971 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x71482166 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x7158d46b fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x7181db30 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7191cce4 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x71991850 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x719bd449 __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a61ebc fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x71a712b7 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x71a9a3ab mtk_mutex_acquire +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b59308 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71b89291 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x71c059d8 __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x71d53bde pci_bridge_emul_conf_read +EXPORT_SYMBOL_GPL vmlinux 0x71e453d8 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x71e7b912 regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x71ee9703 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x71f5f40d dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x71f6cde9 clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x71fc61ac of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x720d7842 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7216af16 devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x7216f817 tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x7237852a dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x72378c7e bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x7237e950 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x72447696 pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x724db0d0 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x728840de switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x72978ab6 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72a32292 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x72a814b6 i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x72ad0528 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x72b06343 fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x72b1f42a ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x72b59194 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x72cb7de1 input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x72d267dc nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x72e36435 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x72e9d962 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x72edf918 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x72f97e5e wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0x72ffe9eb skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x730ac2af of_thermal_get_trip_points +EXPORT_SYMBOL_GPL vmlinux 0x731bbc3d skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x732852fe xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0x7328f1af devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x733aed03 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x734ec9b9 mtk_pinconf_bias_disable_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x7368c38c blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x7373dd2a gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7379ea11 ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x739e75ae bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x739ebb2e nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x73a210fc nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b31d3b of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x73b607b1 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x73ba1a78 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73c55747 blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73d6f75c scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x73f40ec5 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x7412dcac clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x74268410 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x7433b5aa efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743b99d8 xenmem_reservation_increase +EXPORT_SYMBOL_GPL vmlinux 0x74406292 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x74412463 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7456cc3c _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7461430f __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x746d8076 mtk_clk_register_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x74887ca4 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x749a9c12 dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x749de23f pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x749fb3fc tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x74a22bb4 k3_udma_glue_push_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x74a31afe led_classdev_register_ext +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 0x74d1e0a3 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74d2ca36 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x74d502b6 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x74f7bf0b dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0x750aa2b2 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x75121272 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x751beffd usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7523e81d fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x7526eaf4 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x753e0e03 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x75428545 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7553356d kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x755a193a __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7567d416 device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x758a43fe k3_ringacc_get_ring_irq_num +EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only +EXPORT_SYMBOL_GPL vmlinux 0x7599afe2 md_start +EXPORT_SYMBOL_GPL vmlinux 0x759bfe36 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x75a4d0cd acpi_dev_get_first_consumer_dev +EXPORT_SYMBOL_GPL vmlinux 0x75a96c85 dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x75c691f9 pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x75c759ad replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x75d522a9 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove +EXPORT_SYMBOL_GPL vmlinux 0x75defaa0 fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75fb9062 arch_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x760e63b5 sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x760f22ef rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x760f40fd device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x761a2d3e pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x76257049 dpbp_open +EXPORT_SYMBOL_GPL vmlinux 0x76298741 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x76493f3d of_genpd_parse_idle_states +EXPORT_SYMBOL_GPL vmlinux 0x764c72f5 simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0x764ffefa page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x7655c807 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x76563f3a regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x765c4071 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x7665a95b idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x766da9d0 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x767061a9 of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7688eae2 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x768e5758 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x768e93ce __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x768f341a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x769bd1ff gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x769cd37f device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x76a1c01e ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x76bf822e vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x76c2de1e devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x76cf4c84 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x76d22bab tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x76d680f6 acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x76d6d7b1 security_inode_setattr +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 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x770f93b3 vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x771b639b gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x77222306 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x772b0f64 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x77363022 __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x77393878 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x774150e9 blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x774eff5a i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0x774f16ef __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x77522cf6 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x7754abeb tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x775aa1d2 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x775ae84e __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x7767bea3 fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0x77818f12 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x77914ed3 mtk_eint_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77b32030 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0x77c041c6 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x77c97199 devm_tegra_memory_controller_get +EXPORT_SYMBOL_GPL vmlinux 0x77e7228d platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77ec2edc of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x77f12afa usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x77f24400 perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x77fc7b05 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7822a142 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x78557aa2 fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x785a93ee mtk_hw_set_value +EXPORT_SYMBOL_GPL vmlinux 0x787421a1 of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7885d02c __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x7888a555 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x788f3504 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x78916bc7 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x789feb2f xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x78b4ea20 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x78b6ad9f perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x78c683ed gnttab_pages_clear_private +EXPORT_SYMBOL_GPL vmlinux 0x78cf3b73 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x78d560e5 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x78ddb76b dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x78e3eea2 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x78f47a0f dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x78f7b456 tegra_bpmp_get +EXPORT_SYMBOL_GPL vmlinux 0x78fc81a8 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x79041993 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x790b4345 netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x790b859f tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x790be0b9 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x7918d817 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x79197c99 tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7924fb62 meson_vid_pll_div_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x792b42d0 sprd_pinctrl_remove +EXPORT_SYMBOL_GPL vmlinux 0x79345cb9 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x7934aa08 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x793905c6 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x793f98bc __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x79427182 devm_blk_crypto_profile_init +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 0x794d9fdc __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7961f317 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x79839abe fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x7983ba83 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x798b7682 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x7995a62a dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7999e1d0 usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0x79b51662 tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0x79bc842c usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x79c6ce3d fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x79d64ddd kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79f1aa44 find_iova +EXPORT_SYMBOL_GPL vmlinux 0x79f697e4 lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x79ff5ee7 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7a00bbea input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7a11deb0 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7a235201 of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x7a30e0f3 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x7a536d4e ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x7a5c8852 is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x7a5d4fb2 skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x7a610ed5 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x7a6da9a8 copy_user_highpage +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a784b26 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7a7e5bfb device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x7a8143c1 of_thermal_get_ntrips +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a8b2fac nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a8fafd6 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a98f4b4 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x7a9e4c23 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7ac10ad8 icst_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7ac3ba8f ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7ad2c64c k3_udma_glue_release_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0x7ad36538 acpi_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x7ad93e92 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x7adeaf7b fsl_mc_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7ae5aebf pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x7aeb1e24 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x7af1ea7f __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x7afade51 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7afcb7db __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7afe324e halt_poll_ns_grow +EXPORT_SYMBOL_GPL vmlinux 0x7b0e240d tegra_bpmp_free_mrq +EXPORT_SYMBOL_GPL vmlinux 0x7b0f7419 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7b10fd1f vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b273222 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x7b3834a6 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x7b411e4d synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x7b4b3986 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x7b5452b8 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b5ac007 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7b6a6311 devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x7b6f9536 acpi_register_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x7b71aab4 switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x7b742696 sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0x7b7694b1 of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x7b864df6 bgmac_enet_remove +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b8ace40 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b94bce7 posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7b9e58be imx8ulp_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bbcff39 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bcd72db bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x7be383f6 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7bf5a613 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7c0f35ab fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x7c13ffa5 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x7c17e0eb tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x7c288e3e regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c2fdd2f __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x7c2fee44 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7c314ea2 __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7c3a0f89 kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c4a4420 xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7c593a36 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x7c5f3711 ioasid_unregister_allocator +EXPORT_SYMBOL_GPL vmlinux 0x7c65751c gnttab_page_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x7c690aa4 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x7c6ba5be apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7c7bd8f5 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7c80bc07 em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x7c873155 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x7c91f906 generic_fh_to_dentry +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 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cada175 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cb782c2 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x7cb803de btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cd77a2d of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cebfd8f vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x7cfd6f6f subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x7d1bb1d4 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7d231c86 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0x7d269956 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x7d2dc899 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x7d37d122 sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x7d387109 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x7d38dc59 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x7d471321 zynqmp_pm_pinctrl_release +EXPORT_SYMBOL_GPL vmlinux 0x7d4adcb2 vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x7d558968 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5e5823 cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7d75046c synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x7d7ab44e clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7d9038f1 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7da1fc2b anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0x7da45009 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7db56428 kvm_get_kvm_safe +EXPORT_SYMBOL_GPL vmlinux 0x7dc4bf5e usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7dca3ed0 bgmac_enet_resume +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +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 0x7deb2be8 led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x7deb5846 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7dee0431 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7defc870 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x7e0dc8a4 finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x7e11931e pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e42fb74 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x7e5d4f27 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e6121c9 trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6ddbc0 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x7e6dfa9b kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x7e6e9179 mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL vmlinux 0x7e73f435 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x7e7a47c9 pci_acpi_clear_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e8d8619 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7e943b45 devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x7e96d0ff fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x7e9a6568 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7e9c0d39 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7ea75c24 __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x7eb1795e __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ec5bda5 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x7ed0d780 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7ef780c7 rockchip_pcie_get_phys +EXPORT_SYMBOL_GPL vmlinux 0x7f00792f scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f49b27f __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x7f5b05b2 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x7f67a9c7 vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x7f6cee89 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7f770786 clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f941b0b fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7f9b1879 osc_cpc_flexible_adr_space_confirmed +EXPORT_SYMBOL_GPL vmlinux 0x7f9e41aa mtk_pinconf_adv_pull_set +EXPORT_SYMBOL_GPL vmlinux 0x7fa820fe nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fa96509 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x7fb5446d xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fb5a111 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fbb597d pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x7fc20e9a clean_record_shared_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x7fc409d3 dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x7fcec6ef clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fcf16c4 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fd7e08a ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x7ff19c40 zynqmp_pm_set_requirement +EXPORT_SYMBOL_GPL vmlinux 0x7ff5ffb8 mtk_eint_find_irq +EXPORT_SYMBOL_GPL vmlinux 0x80135182 k3_ringacc_ring_pop_tail +EXPORT_SYMBOL_GPL vmlinux 0x8014ed8b gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x801acd58 imx_clk_hw_pllv4 +EXPORT_SYMBOL_GPL vmlinux 0x80215487 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x8021dfeb devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x802439cd securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x8034fe38 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x8035bed7 rockchip_clk_protect_critical +EXPORT_SYMBOL_GPL vmlinux 0x8052a284 mmput +EXPORT_SYMBOL_GPL vmlinux 0x80595b3d crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x805f4a96 uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x806327ea imx_clk_hw_cpu +EXPORT_SYMBOL_GPL vmlinux 0x80648304 usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0x806f84ab ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x80704419 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x807766ea usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x80791c18 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a00f89 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x80b0de7d clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x80b8a7c2 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x80badff4 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80bd4ed6 proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80dce25e __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x80e183f2 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x80ea3e7b pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x811b0f38 _copy_from_iter_flushcache +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x81282ee5 wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x8133f294 devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x81483e9f __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x815537e5 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8160e9cf ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x816a41ca cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x816bd1ea devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x817927ce pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8180c98b pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x81818a65 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x8198d1aa find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x819d72cb klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x81aa78d8 zynqmp_pm_aes_engine +EXPORT_SYMBOL_GPL vmlinux 0x81b03377 efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x81b312d2 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x81cb4415 iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x81cf5282 trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0x81d10485 ioasid_free +EXPORT_SYMBOL_GPL vmlinux 0x81e1d2bb pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81ee77cb adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x81eff4ef perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x81fdc1df get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x8200fe7a kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x82092899 badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x820eb620 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x821cff8f iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x8220a38e k3_ringacc_get_ring_id +EXPORT_SYMBOL_GPL vmlinux 0x82226c53 pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x8232e11b fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x82372b8a pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x823caf54 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x823eae06 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x826f2510 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x827e0de3 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x827e61f8 acpi_has_watchdog +EXPORT_SYMBOL_GPL vmlinux 0x82849669 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x828e22f4 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x82948b19 devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x829cb0ab mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x82a80545 __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x82b0c6ae serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x82bbf30b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x82c929ce of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x82cab4d3 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x82d52aa1 tegra_bpmp_mrq_is_supported +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e45f37 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x82ea7d3d set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x82f94689 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x82fd62fb blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x830b6afa ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x83272c63 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x8330ef4a kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x8349a895 nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x83519c07 phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0x8353dfff acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0x8356fa6c sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x837e536e vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x838359aa tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x8388900a dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0x839c6715 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x839d8a76 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x83a7b5e4 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x83ad8c6c usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0x83b2ef13 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x83bc1dcb crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x83c304a9 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x83c3ea89 iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x83d2bcd9 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x83d68f75 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x83d9ca78 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x83e440c2 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x84012344 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x8420ebb1 clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8425b9c3 xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x842f046d usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x84386509 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8441b762 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x84428ee2 of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0x844fde7b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x84502a47 blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x845db422 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x845dbf3b scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x8462cb62 atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x8466a6c2 devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x8469511f fuse_dax_cancel_work +EXPORT_SYMBOL_GPL vmlinux 0x8483b297 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x84933738 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x84a8d0eb of_changeset_revert +EXPORT_SYMBOL_GPL vmlinux 0x84abe95f wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x84b9d259 genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0x84d81d38 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x84ee402d devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x84ef27f5 synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x84f72614 srcu_torture_stats_print +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 0x851fe124 __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x85252d00 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x852b3447 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x852c8361 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x85357a55 __fsl_mc_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x854af20a cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x85540ebc nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x85862277 ioasid_find +EXPORT_SYMBOL_GPL vmlinux 0x858a2ec5 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x85935a61 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x8598f22e dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x859cf96d ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x859dfcb1 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x85c54b61 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x85ce9e7d regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x85d29fb9 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x85e4f648 serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x85e5178e irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x85ee33de ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x85eed1be iopf_queue_discard_partial +EXPORT_SYMBOL_GPL vmlinux 0x8613b4b4 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x8615bcb1 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x861b4cc7 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x862bb17b linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x862d32d4 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x86494817 __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x864b2154 acpi_spi_count_resources +EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x8659d265 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0x866065a5 ata_pci_shutdown_one +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 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868ddcbf mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x86abc743 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x86aeecf8 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x86b13d2a usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x86b1ceb3 tegra210_set_sata_pll_seq_sw +EXPORT_SYMBOL_GPL vmlinux 0x86c02001 ipi_send_mask +EXPORT_SYMBOL_GPL vmlinux 0x86c43a8c cper_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x86dda6ef rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x86e00892 device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x86e209cb debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f85114 net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x86fb0072 of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x87165574 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x871d89bb sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x8722f543 gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x874b1656 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x876caa4b kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL vmlinux 0x878082e1 dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x878e38ec usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x87908767 xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x8799768f gnttab_page_cache_put +EXPORT_SYMBOL_GPL vmlinux 0x87ac7411 __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x87c607c2 mtk_paris_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x87cb322b icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0x87d24d5d io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x87d38bda led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x87d8b9e2 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x87fe4722 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x8800d1f4 kvm_vcpu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x881d0719 blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x882b7a76 of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x883572e6 bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x883b06aa __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x88476f9f devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x885c6541 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x88688312 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x8877cb1b devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x887ec0e8 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x887fe2b7 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x888b72b1 skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x888c5be5 irq_bypass_register_consumer +EXPORT_SYMBOL_GPL vmlinux 0x888ca7a1 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x889648d2 ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x8898325a acpi_create_platform_device +EXPORT_SYMBOL_GPL vmlinux 0x889e7a50 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x88a3513e virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b15c21 tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x88bc6f47 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x88c2a0b9 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x88cc1490 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x88cc8a20 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x88cce6a0 xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x88cd7a9a k3_ringacc_ring_get_occ +EXPORT_SYMBOL_GPL vmlinux 0x88d1b3f2 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x88d45cb8 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x88d47a74 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x88d9d2f1 blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x88da1e50 platform_set +EXPORT_SYMBOL_GPL vmlinux 0x88ea21f5 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x88edbd4b pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x88ee8e33 register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x88eebcf3 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x890468f7 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x890f4f97 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x890fa0fa btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x891f49ee usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x89202c39 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89330509 fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x89360382 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x8941a8f8 dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x8954dc8e __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x895ca9eb ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0x89638750 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x8967c693 tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x896e0985 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x897858a9 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x8982a005 pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8983866f rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x8990873a nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x8996a627 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x8996d647 switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x89a26fda fsl_mc_bus_dpmac_type +EXPORT_SYMBOL_GPL vmlinux 0x89a306ed pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0x89a4476d HYPERVISOR_multicall +EXPORT_SYMBOL_GPL vmlinux 0x89aae126 of_property_read_variable_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x89ae7aa0 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x89b66e1f dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89bec8b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x89c429e4 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x89c6c64d adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x89e03a06 devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x89e340cf acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x89e9d483 usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0x89ee78a2 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x89ff960f regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x8a0d756c tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x8a1b981c fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x8a3f84ba linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x8a439160 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x8a448499 pci_ecam_create +EXPORT_SYMBOL_GPL vmlinux 0x8a45a555 acpi_unregister_wakeup_handler +EXPORT_SYMBOL_GPL vmlinux 0x8a4fd179 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x8a521ee9 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x8a5504cf bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x8a554a36 mpc8xxx_spi_strmode +EXPORT_SYMBOL_GPL vmlinux 0x8a56db0c cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a749b65 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x8a845c24 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ad1a118 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x8adf05d1 mtk_pinconf_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x8aec0d65 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x8aedead0 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8afb0fe5 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x8afe60ae phy_get +EXPORT_SYMBOL_GPL vmlinux 0x8b149c36 clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x8b189cc0 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x8b1d41df crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x8b21dde1 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x8b293861 cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x8b352182 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x8b366083 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x8b3947df __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x8b47c049 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x8b650752 mtk_mutex_release +EXPORT_SYMBOL_GPL vmlinux 0x8b7a698b __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8b7b5cf2 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x8b89f01c hv_ghcb_hypercall +EXPORT_SYMBOL_GPL vmlinux 0x8b8e8309 icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x8ba0eb15 hv_set_vpreg +EXPORT_SYMBOL_GPL vmlinux 0x8ba25edb dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x8ba5afe9 HYPERVISOR_memory_op +EXPORT_SYMBOL_GPL vmlinux 0x8ba63ea7 mtk_pinconf_bias_set_combo +EXPORT_SYMBOL_GPL vmlinux 0x8ba665fe __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x8ba8a1b3 phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0x8bb1d858 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x8bb66925 gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x8bc3e1b5 devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x8bc52ba3 pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x8bc70f09 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x8be0b735 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x8be99a8a skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x8bea7cbe __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x8bed4b5e regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x8bf5f379 k3_udma_glue_release_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0x8bfc33a7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x8c012b6c cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x8c0215f2 pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c047a33 devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x8c0afec3 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x8c484409 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x8c4b26bc da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x8c677efa securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c6f99e0 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x8c743fb6 reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x8c796a8c mtk_clk_unregister_plls +EXPORT_SYMBOL_GPL vmlinux 0x8c89e3b8 usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x8c9a1022 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x8c9f2eb0 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8cb5a38e k3_udma_glue_rx_flow_disable +EXPORT_SYMBOL_GPL vmlinux 0x8cc5ff3a crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x8cd36bdb of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0x8cd4cc1f bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x8cd6a885 xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x8ce2d446 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x8ce87a8f genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x8d0abf3a __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x8d19522b regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d2f76c7 crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x8d32db8e xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x8d3d7813 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8d442e8b dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x8d457ef1 tegra210_clk_emc_attach +EXPORT_SYMBOL_GPL vmlinux 0x8d4921dd perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x8d522714 __rcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x8d7c20c0 gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x8d7e3373 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x8d7f09c2 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x8d85ad7a platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x8d908ebf power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x8d994f78 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x8dafdded lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x8dbf7aaa privcmd_call +EXPORT_SYMBOL_GPL vmlinux 0x8dd218b0 icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x8de6817a acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x8deecafb __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x8df64269 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x8dffd900 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x8e001326 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x8e10bd82 blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x8e11eecf hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x8e16419b trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x8e17a066 ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x8e17dcfd gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x8e28bd88 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x8e362196 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x8e44823a sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e460968 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x8e492fe5 mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x8e4b63a6 hisi_clk_register_gate_sep +EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x8e4f64b7 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x8e5d4dc9 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e6fa8b5 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x8e736d95 xen_xlate_remap_gfn_array +EXPORT_SYMBOL_GPL vmlinux 0x8e78fafe bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x8e7d9fae blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x8e7f0a9c acpi_get_phys_id +EXPORT_SYMBOL_GPL vmlinux 0x8e8d507d pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x8e8ecfbf ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x8e92f7c4 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x8e975f25 put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x8ea70c25 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8ead800c user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x8ebafc96 ahci_platform_enable_resources +EXPORT_SYMBOL_GPL vmlinux 0x8ecced18 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x8eec19bd __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x8eed7079 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8ef459e5 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x8efbe115 scmi_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8efe768f of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x8f0b781d iova_domain_init_rcaches +EXPORT_SYMBOL_GPL vmlinux 0x8f108f16 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x8f19635c usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x8f33c92f dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x8f3969e1 zynqmp_pm_clock_getrate +EXPORT_SYMBOL_GPL vmlinux 0x8f4376e9 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x8f4658a2 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x8f4767e1 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x8f4cd791 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x8f624041 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f6d3731 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x8f6e15d9 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x8f77c854 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x8f786bee fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x8f7bd0a6 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x8f8fc605 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x8f96a974 extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x8f973136 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x8faa800d acpi_cpc_valid +EXPORT_SYMBOL_GPL vmlinux 0x8fb140bb i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0x8fb4bf32 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x8fc12788 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x8fddd37b pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x8fe6f823 vcpu_load +EXPORT_SYMBOL_GPL vmlinux 0x8ff473dd bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x8ff4a682 dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x8ff54fcb devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ff7ea2f devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x8ffe792f tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x9002ce74 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x901ace17 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x9029f941 __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x902b2460 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x90347b7e wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x904542d3 edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x906528cc devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x90688bcd devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x9078de72 usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x907bc171 rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x90968400 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x90a0c1f0 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x90a63b85 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x90a9d8cc hv_is_hyperv_initialized +EXPORT_SYMBOL_GPL vmlinux 0x90ad66b1 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x90b0a665 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x90b763f1 HYPERVISOR_console_io +EXPORT_SYMBOL_GPL vmlinux 0x90c8498c apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x90cb00c8 ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x90cc330e inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x90d937b4 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x90e03945 is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x91072577 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x911f850a regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x912861f6 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9130c7c0 xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x9156d063 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x917296c8 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x9174650e memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x917b18e7 of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x917cd67f of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x91877821 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0x9194e18f xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x919a6abb synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x91a26de2 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91c9313c acpi_gpio_get_io_resource +EXPORT_SYMBOL_GPL vmlinux 0x91cc0421 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x91dce712 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x91e30809 HYPERVISOR_vm_assist +EXPORT_SYMBOL_GPL vmlinux 0x91e844dd sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x91f81dc5 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x91fd9c4d cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x920eadd7 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x92304850 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x9230cfed of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9231b463 udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x923b989b md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x923e42aa sysfb_disable +EXPORT_SYMBOL_GPL vmlinux 0x9241b1a1 rockchip_clk_register_branches +EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x927487ea zynqmp_pm_read_ggs +EXPORT_SYMBOL_GPL vmlinux 0x9275b363 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x9275dd02 gnttab_unmap_refs_sync +EXPORT_SYMBOL_GPL vmlinux 0x9278afaf kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x927913b1 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x927bdb6e bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x9283af31 ahci_platform_enable_clks +EXPORT_SYMBOL_GPL vmlinux 0x928a19f1 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x928a331e devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x928ebcd4 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x92a2677b debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x92b6b6cf of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x92b8c78b hyperv_pcpu_output_arg +EXPORT_SYMBOL_GPL vmlinux 0x92b9f15c __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x92bb134d sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0x92bdb9e0 irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d827f5 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92dd09a5 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x92e8e9ab fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x92e92317 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x92ecff2e netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x92ef365c paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x92f343bb __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x92fe29c3 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x930585cd kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x930ab533 k3_ringacc_request_ring +EXPORT_SYMBOL_GPL vmlinux 0x930b522c nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x932c8d7a linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x93303af1 irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x933f75e0 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x93477aa9 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x93515d71 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0x935a8b0b eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x9366d881 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x936f721b skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x938e16cb devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0x939d6c4a nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x93a970cf debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x93b04995 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x93bcdf9f kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x93c7edeb usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x93cd74bf devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x93d1d424 gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x93d466ba blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x93e48c6d l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x93e6fb5e inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x9425bb34 nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x942eba66 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x9436e405 memory_group_register_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x943c1cd0 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9456655c rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0028 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x949616b3 tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a04b66 netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x94a144ee genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x94a417a0 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x94a69f64 scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x94c74a5e sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x94d2c92e i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x94e1a608 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x94e62d2e __set_phys_to_machine_multi +EXPORT_SYMBOL_GPL vmlinux 0x94ec77ab device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94f0136c irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x94f8cd79 iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x950bddf5 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x95204d93 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x9522f79b icc_disable +EXPORT_SYMBOL_GPL vmlinux 0x952d43f8 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x95311ede gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0x953730e3 __device_reset +EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x954141cf __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x9541730f uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x9543f73a rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x95630a7e badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x956df873 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x95807a0d devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0x95823bdf sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x958672ec spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x959ec5f5 call_rcu_tasks +EXPORT_SYMBOL_GPL vmlinux 0x95a6725f of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c108f2 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x95c512bd phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x95cac822 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x95d43247 scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x95e102ab tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x95ef1ccc dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x95fe783b strp_init +EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x96163e51 dpbp_get_attributes +EXPORT_SYMBOL_GPL vmlinux 0x9621d738 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x9622e2a4 ahci_platform_disable_resources +EXPORT_SYMBOL_GPL vmlinux 0x96252006 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x96253361 task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x962c8ae1 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x963fd22d __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x96434136 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x966957dd nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x9678e913 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x968f9a23 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x96a3dca4 mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x96a55fda list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x96af459e syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x96b8ffea dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x96bb7564 lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x96c7e5d1 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x96e12b5e acpi_get_and_request_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x96e2dc57 devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96e52472 cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x96ef111e pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x96f9a01b __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x9714d28d of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x9715ab75 create_signature +EXPORT_SYMBOL_GPL vmlinux 0x9719bb3c sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x971e7ef3 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x973b5f60 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x974d3443 ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x975466d6 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x975c06d7 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x9769262f crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x976b436f pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9776bd61 dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0x977be5c7 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x97827912 pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x9791c1d1 blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x9796aa67 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x97bd16f3 fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x97c1b9b3 irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x97c4281d mtk_clk_gate_ops_setclr +EXPORT_SYMBOL_GPL vmlinux 0x97d8c505 samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x97dbc1a3 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x97dc8a57 ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97f81d14 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x980ead10 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x9813dd04 icc_put +EXPORT_SYMBOL_GPL vmlinux 0x981a92ac __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x9826acda irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x982a11b9 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x98328518 page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9843f501 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x985453e1 lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9856d7c3 __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x9856ff63 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x98629910 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x98759da8 dpcon_set_notification +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x988d5687 nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x98b142fa blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x98c12717 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x98c577d3 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x98c59274 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x98c7ba4c fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x98d1e17b xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x98fd8aa8 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x9917fd0a fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x99200ef9 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x99247d75 msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0x9926225a bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x992c5080 debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x9934ec23 kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x9949d803 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x995a0119 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x995a8ea9 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x995c913d md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x997604f2 gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x997c550a preempt_model_none +EXPORT_SYMBOL_GPL vmlinux 0x997d2da2 dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x998d79d6 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x998e36ae pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x998e92dd xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x999fc257 split_page +EXPORT_SYMBOL_GPL vmlinux 0x99cbf426 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x99dd730c page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99e3a0c7 ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x99e47951 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x99e692b4 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x99f018c4 nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x99ff50a6 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9a03d5e1 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a1fa06d ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x9a23ea6b alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x9a241f3d crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x9a317ae3 rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0x9a3931d7 regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x9a4cb5b4 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x9a5dce5c rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x9a6bf241 pci_bridge_emul_conf_write +EXPORT_SYMBOL_GPL vmlinux 0x9a6e77b6 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x9a751191 hisi_clk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9a79223c pci_pr3_present +EXPORT_SYMBOL_GPL vmlinux 0x9a830384 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x9a8731e7 of_css +EXPORT_SYMBOL_GPL vmlinux 0x9a8dc4f4 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x9a8ee05a rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x9a974f24 irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x9a9bd88d mtk_mux_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ab5da43 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x9ab81f2d usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x9abca536 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9acfa37f sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x9ade3b7d linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x9ade767e da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x9ae12e17 __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9ae7f71c xenbus_dev_groups +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af49514 icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x9af813de is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x9b08efcf cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9b0eaa52 tegra210_xusb_pll_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0x9b11ee35 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x9b121563 device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x9b143a09 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9b216509 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x9b26af7c usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x9b2eab63 ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x9b43f6b9 irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x9b4c3e91 usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x9b4e0ed6 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9b555c8c pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x9b651e51 xenbus_teardown_ring +EXPORT_SYMBOL_GPL vmlinux 0x9b698c42 ioasid_set_data +EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b70c6ff tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x9b7dcd85 meson_clk_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x9b872dfa open_related_ns +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 0x9bbb7e99 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x9bbeaa5f regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x9bc78250 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0x9be0096e iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x9be30d27 mhp_get_pluggable_range +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf7409d ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x9c0622e7 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x9c149893 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x9c1cb416 __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x9c311926 sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x9c3d087f bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x9c448d8d tegra210_put_utmipll_out_iddq +EXPORT_SYMBOL_GPL vmlinux 0x9c4c9926 devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c5752c7 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x9c5fed55 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x9c67de9b __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x9c71914f check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0x9c7de9da pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0x9c803020 usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x9c87a0fe bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x9c95ef82 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cb5af34 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9cc2b604 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd7551a rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x9cd7880d iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x9cddb19f scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x9cddddc8 thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x9cde3175 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9cf37c44 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x9cf5e39b pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x9d005f84 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9d0edbc5 edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9d18c65f clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x9d1e8ff6 of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x9d28914b ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x9d2db9a8 devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x9d2f49ef __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x9d34b486 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x9d34e6c3 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x9d3bbbd8 qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x9d547ee1 dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0x9d5b38fc led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x9d80f09b pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x9d8e1165 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x9d8f6340 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x9d945dbf ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x9d9910a1 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x9d9e686d component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x9da86868 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x9dab4c94 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x9db1eef4 fsl_mc_bus_dpmcp_type +EXPORT_SYMBOL_GPL vmlinux 0x9dcd9948 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x9dd6e263 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x9de31b2a phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x9de88bc8 __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9de892a5 kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x9dfd25c6 crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x9e005e6f cppc_get_perf_caps +EXPORT_SYMBOL_GPL vmlinux 0x9e0a0df7 blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x9e197753 mtk_pinconf_adv_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x9e270f12 irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0x9e2d01ae devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x9e3b5a00 debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9e3f1b05 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e4dd02f iommu_sva_alloc_pasid +EXPORT_SYMBOL_GPL vmlinux 0x9e52cecd ahci_platform_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x9e535e3b trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x9e685bab vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x9e739d1d da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x9e9b913d __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x9e9e407e led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x9eb0caea ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x9eb8a5e2 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9eeefe64 fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x9efe01bf debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x9f025720 devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x9f1f7e9f vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x9f2656ac ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x9f27ff2f usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x9f32266a mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x9f395e6e of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x9f3a26e8 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f4c4aa0 spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x9f503f9a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x9f517986 HYPERVISOR_hvm_op +EXPORT_SYMBOL_GPL vmlinux 0x9f5260b2 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x9f56c4b9 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x9f5c6dc2 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x9f615d5b clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x9f66ac0c perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x9f66e073 virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x9f80f4b7 fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9f8703ac irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x9f8852b0 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f9c7781 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x9fa69366 virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x9fb1a90d of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x9fb3b1e0 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x9fb7f0c6 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fbfebab erst_write +EXPORT_SYMBOL_GPL vmlinux 0x9fcc60d8 get_dev_pagemap +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fcf8a73 pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x9fd12c56 pci_acpi_set_companion_lookup_hook +EXPORT_SYMBOL_GPL vmlinux 0x9fdfbd9f device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x9fe131f1 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x9fe697b8 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x9fe899b7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fec33cc free_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x9fefc3e6 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0x9ff4724b __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x9ffa5217 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xa01a8d9b nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0xa03f76cb key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xa040b9c6 skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xa040bad9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0xa0455b2d led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0xa04997e8 bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0xa04adb61 dprc_get_obj_region +EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xa05219aa devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0xa0531707 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xa058abdf crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xa05ffa5d pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xa071c0cd tegra210_xusb_pll_hw_control_enable +EXPORT_SYMBOL_GPL vmlinux 0xa07b6af7 mtk_pinconf_bias_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0xa082217a ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0xa08599d6 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa08db3fb __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xa09cf447 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0xa0b7656d usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xa0bec3b2 __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0xa0df2801 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xa0e64a99 ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xa0ee37d4 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xa0eeb447 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0xa0fc9d43 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xa0fef7d9 fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0xa1061d55 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa116cf41 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xa12c98bc __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xa133ab9b ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xa13ec476 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa1467170 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa15178b1 dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa16373f4 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa16a31cb sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xa18b485c devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0xa18f796f imx_check_clk_hws +EXPORT_SYMBOL_GPL vmlinux 0xa1935971 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0xa199808e device_register +EXPORT_SYMBOL_GPL vmlinux 0xa1a66886 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xa1c00a07 nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0xa1c4231f kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0xa1d8004a videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xa1dbb1dd crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0xa1dfc2c9 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0xa1e82373 meson_axg_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0xa1eff657 pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0xa1f242ee ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL vmlinux 0xa20c52eb int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xa21f2ce7 clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0xa2244f06 usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0xa22a1b05 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0xa22d9548 trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0xa239bf10 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xa23ccdba pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xa2402bb9 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xa24d4ee2 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xa2500ef6 __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xa26422b2 of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa272f2e8 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0xa27ed162 xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0xa2822c91 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa28dab13 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0xa28f40bd __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa29caa66 fsl_mc_portal_reset +EXPORT_SYMBOL_GPL vmlinux 0xa2af54b3 irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa2b0820d __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2b3e76d __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0xa2b99209 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xa2c4cc85 genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0xa2c53691 devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xa2cf5474 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0xa2d14824 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xa2d687cb crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa2f7487f hv_is_hibernation_supported +EXPORT_SYMBOL_GPL vmlinux 0xa2ff408e blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xa32115d5 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa32c38fb input_class +EXPORT_SYMBOL_GPL vmlinux 0xa33fd46f hv_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xa3408f2b usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0xa34a56a2 fsl_mc_bus_dpio_type +EXPORT_SYMBOL_GPL vmlinux 0xa3520888 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa359f3e2 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa3619a49 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0xa36b85ef serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xa36d6f67 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xa36f50fb is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xa373d3c6 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xa38c1436 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a5c504 devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xa3b1bd36 tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3c28523 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0xa3cb51d6 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xa3dcb681 zynqmp_pm_fpga_load +EXPORT_SYMBOL_GPL vmlinux 0xa3e48d31 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0xa3e646d4 edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa3f53c9a pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0xa3f6393a hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa4031b7f sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0xa40ff0be virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xa41026bd fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa41831b8 pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0xa4233a46 amba_bustype +EXPORT_SYMBOL_GPL vmlinux 0xa42a9dd5 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0xa45d44fc zynqmp_pm_get_pll_frac_data +EXPORT_SYMBOL_GPL vmlinux 0xa4607037 phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0xa46b2f82 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48dd832 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xa48ee962 extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0xa49ebc3c lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0xa4a83666 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0xa4c085f8 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0xa4c68ad4 page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0xa4dc95ee led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xa4e22108 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0xa4eae4eb ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa4f139d3 acpi_dev_get_dma_resources +EXPORT_SYMBOL_GPL vmlinux 0xa4f2a2ed acpi_irq_get +EXPORT_SYMBOL_GPL vmlinux 0xa4fcf570 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0xa50bdd58 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa5177bcf pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0xa517f884 tegra210_plle_hw_sequence_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa51efb45 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa520f29f get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0xa5234f66 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0xa52403fe sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xa5295768 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa531471e clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0xa536b1af xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0xa56664ef poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xa578503d anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xa5792be8 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0xa5924ed8 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0xa59d0e3e blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0xa5a8689c switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xa5bda8a1 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0xa5c84a9f spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0xa5cbbc5a power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0xa5d1f4b8 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0xa5d7c388 pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0xa5d842a2 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xa5e82f18 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa6010b37 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0xa6127071 phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa63a5361 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xa646b53a pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0xa64daebd usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xa65bdc5d power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xa65f3c8c __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa663f83e device_match_name +EXPORT_SYMBOL_GPL vmlinux 0xa66faff1 to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0xa67f65db rockchip_pcie_init_port +EXPORT_SYMBOL_GPL vmlinux 0xa69dc4e9 devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa6a088b7 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0xa6a454a8 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0xa6af1e35 __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa6b06f65 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6b5ee5b __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0xa6c8acf0 icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0xa6db40db iopf_queue_flush_dev +EXPORT_SYMBOL_GPL vmlinux 0xa6dc0d97 tegra_read_ram_code +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e1f14c pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xa6ee15ca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6eeb69e perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa71b7e71 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa731f387 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xa73a9179 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0xa73c3b08 mtk_mutex_remove_comp +EXPORT_SYMBOL_GPL vmlinux 0xa7422efa strp_stop +EXPORT_SYMBOL_GPL vmlinux 0xa744dfc7 bgmac_enet_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa7595f68 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0xa7602a29 rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0xa7617ba3 of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0xa7640020 cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0xa764a232 scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0xa7685969 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xa7694c81 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xa77ca5ac of_thermal_is_trip_valid +EXPORT_SYMBOL_GPL vmlinux 0xa787f8eb regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xa788700b copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xa78a5f17 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0xa79f6bbb cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xa7a6f3b8 mtk_eint_do_resume +EXPORT_SYMBOL_GPL vmlinux 0xa7a8c843 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7a96424 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0xa7aaeac6 mtk_clk_register_factors +EXPORT_SYMBOL_GPL vmlinux 0xa7b8d7bf fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xa7c6ea49 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xa7c8a5a3 sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0xa7cb852f fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0xa7d039f9 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa7d0bb2f perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xa7dff341 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xa7e2fe3b pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xa803f86d blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0xa81f1757 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xa83a377e of_get_named_gpio_flags +EXPORT_SYMBOL_GPL vmlinux 0xa84d0de0 switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8536ed1 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xa86a00b9 dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0xa876a683 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0xa87d8b4f sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa882752a __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xa894023a device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa898d04d host1x_context_device_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0xa89a9882 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0xa8a6364c xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0xa8c5a346 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0xa8eef535 acpi_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xa8f225bd gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xa90aa664 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xa915ca7c gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0xa916404d tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xa9194c60 irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0xa922799a dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0xa93faef3 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xa9500c72 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0xa95b5c77 hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0xa95ec70b rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xa96e8b4e hv_setup_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0xa9863c01 raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0xa99b8e70 __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xa9a4c157 iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0xa9a677a7 dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0xa9aaea3a divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xa9b214cf regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xa9beb5e6 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xa9c05ac0 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xa9e57917 fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0xa9ec7e75 crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0xaa008260 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xaa08f524 of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xaa0eac67 dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0xaa0fceac __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xaa24640e msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xaa38367f of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xaa4cc1ef find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0xaa552618 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0xaa6155fd devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0xaa73232a device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0xaa88eb65 extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0xaa891f64 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0xaa971d3a phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0xaa9d2c36 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0xaa9e0dc8 devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0xaaa78164 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab1dfc6 is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0xaabe7e4b dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xaac190f1 devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xaac9b324 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xaacb8446 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xaada2e03 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xaae303f9 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xaaf762f4 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xaaf8d1ee tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0xaafafbff rockchip_pmu_unblock +EXPORT_SYMBOL_GPL vmlinux 0xaafcf4f0 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0xab060841 zynqmp_pm_query_data +EXPORT_SYMBOL_GPL vmlinux 0xab0e8e8e regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xab13e52a meson_clk_mpll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xab1cbd70 thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xab1ce1a2 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0xab1e0e93 hv_setup_kexec_handler +EXPORT_SYMBOL_GPL vmlinux 0xab26a994 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0xab32c823 gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0xab46112f nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0xab4c6dcb spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xab6a9235 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xab6dede1 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xab6ef2dd of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0xab742e62 ahci_platform_get_resources +EXPORT_SYMBOL_GPL vmlinux 0xab7c91dc devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0xab7f853d mtk_mutex_prepare +EXPORT_SYMBOL_GPL vmlinux 0xab8541b0 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xab8c0cbc pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xaba22970 dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0xaba98a41 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0xaba98a5c pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xabab2051 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0xabaf823d shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xabb5c6b6 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xabb769c0 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabc76fe5 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0xabd45848 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xabd6da53 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xabdd485d driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xabf8cdbf eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xabfe673d pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xac037ed9 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xac08cc78 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xac092fd8 pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0xac0ef9a2 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0xac137e79 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xac157f50 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0xac216da3 tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0xac2b0050 devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xac2bfe3c stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xac3833fb of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xac47c316 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xac51ba4a serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xac521ec5 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0xac74df8e __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0xac834d8c platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xac84aaef software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xac8c16ce __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xac9e10b2 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0xac9e673f crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0xaca9aba2 acpi_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0xacb32953 netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0xacb4d88c clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0xacc977ac alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaccd1c86 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacd3197d trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xace41976 kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL vmlinux 0xacff8d8f l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0xad09b49f rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad0ee34b sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xad10bf4a debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xad199908 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xad25602f __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xad360735 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xad395dd9 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0xad42dff8 __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad4f8e56 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0xad569c51 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0xad5737fc efivar_init +EXPORT_SYMBOL_GPL vmlinux 0xad645234 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad69bb71 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xad76a3f0 __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xad83ce29 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0xad8f1e7e device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xad9aa4df blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0xad9f018e mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0xadb9689f usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xadc66023 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xade5339b hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0xadf9c1b3 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0xae068a69 rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0xae074673 dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0xae0d9ada query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0xae0ecf40 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xae1158a2 __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0xae1a40a9 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xae4adbdf mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0xae4d186d irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xae56ae24 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xae581fa8 unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0xae585bf0 mtk_pinconf_drive_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xae64f1dd __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xae66224d dev_pm_opp_of_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7b2551 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae9c7eac dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0xaea7f1ef devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaeafa71d fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0xaeb47b38 irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0xaeb7a852 tegra_bpmp_request_mrq +EXPORT_SYMBOL_GPL vmlinux 0xaec4868e clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xaed62cc2 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xaed6a73d spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0xaede251c spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0xaee0fe18 mtk_mux_gate_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0xaee91d02 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0xaef1c287 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xaf041434 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xaf076aec nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0xaf0b6ba7 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0xaf0fc96e skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xaf2854fb dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xaf2e1e45 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0xaf2ff50b wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf38ee52 ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0xaf3a44e9 __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xaf4014ff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0xaf414b43 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xaf551ce4 fsl_mc_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0xaf64153b virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xaf793668 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0xaf852873 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xaf85c213 security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xafb07262 __pfn_to_mfn +EXPORT_SYMBOL_GPL vmlinux 0xafb9314f dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xafc7423e kvm_init +EXPORT_SYMBOL_GPL vmlinux 0xafc8a645 devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0xafd05898 usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xafe4766c devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xafe78b36 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0xafeb58c1 __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xaff89c01 i2c_slave_event +EXPORT_SYMBOL_GPL vmlinux 0xb0014f1b __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xb0099f79 topology_clear_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0xb00a1e4f bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0xb01d1a0f gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb01f16a8 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0xb022875b acpi_driver_match_device +EXPORT_SYMBOL_GPL vmlinux 0xb02a95d3 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb03294d0 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb049a294 __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xb04c02a3 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xb05b68d5 zynqmp_pm_reset_get_status +EXPORT_SYMBOL_GPL vmlinux 0xb06607db inode_dax +EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0xb077e70a clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xb08a22a3 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xb0948a6f regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0xb0a2db1b skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xb0a744ce device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0xb0ab887b pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xb0ac0ada iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0xb0b593d0 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0xb0b67f05 i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0d73555 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0xb0d74a11 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xb0e8e671 xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xb0f4dad9 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xb0f69b05 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xb0fce2e4 i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xb11218c7 mtk_pinconf_adv_pull_get +EXPORT_SYMBOL_GPL vmlinux 0xb1125f61 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xb11acc1f crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0xb1346436 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xb14695cb usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xb14d12fd perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0xb14ee69d phy_validate +EXPORT_SYMBOL_GPL vmlinux 0xb156acf4 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0xb15cdb84 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb163c374 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0xb1725292 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1850270 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xb1869d7e dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0xb1872ecd dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0xb196e6fa kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c7c8fb unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xb1ce4685 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1e881b3 phy_init +EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xb202f0d7 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0xb20329b0 sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0xb2047908 pci_bridge_emul_init +EXPORT_SYMBOL_GPL vmlinux 0xb206f969 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xb2176f82 bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xb21d00c6 hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb23c1d97 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0xb26854c4 nvdimm_setup_pfn +EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0xb28124c3 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0xb28e3136 xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xb2910896 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb292f5b1 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xb29533ee zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0xb295dbac __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xb2a619b6 ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0xb2b0fe0e bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2c6cd86 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb302026a nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb309afe3 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xb30b2bda preempt_model_full +EXPORT_SYMBOL_GPL vmlinux 0xb30c291a posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xb3185b11 dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0xb32e52e6 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb333260c crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb363502a sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0xb369baa7 bind_interdomain_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xb391c654 __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0xb39e58a8 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xb39edd84 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0xb3acad14 of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0xb3b06709 fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0xb3b13416 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xb3cad082 devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0xb3cc6217 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xb3ef84fd vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0xb3effab3 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xb3f8e3e2 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3ff682a devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xb40d673e zynqmp_pm_pinctrl_request +EXPORT_SYMBOL_GPL vmlinux 0xb40dfb0b usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0xb420b2a3 k3_udma_glue_request_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xb42955b3 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xb43de801 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xb440e966 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0xb4429b64 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xb447a80d init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb4615c3f serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0xb467d83d devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0xb4684e00 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0xb46fc644 __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0xb4716b4f xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0xb477eac3 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xb48f0638 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0xb48f3499 xlnx_register_event +EXPORT_SYMBOL_GPL vmlinux 0xb4919aaa unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb4a006d3 extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0xb4a6e71b mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0xb4abbb71 usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xb4b0004d pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4be58f8 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xb4c66e72 dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0xb4d28645 tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0xb4db625f i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4eda0da ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0xb4f644a7 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xb501b2df nd_cmd_dimm_desc +EXPORT_SYMBOL_GPL vmlinux 0xb5086458 devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0xb51708f0 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb520eb79 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb52ed1c7 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0xb54ee647 platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb55de460 HYPERVISOR_dm_op +EXPORT_SYMBOL_GPL vmlinux 0xb5603df2 rockchip_register_restart_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb561aca6 gnttab_foreach_grant_in_range +EXPORT_SYMBOL_GPL vmlinux 0xb56202cd irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xb56e1fd4 __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xb584382c dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0xb58539a1 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xb5880d1e regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5a83e35 gnttab_setup_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xb5a8c226 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb5b6fb04 hv_get_vpreg +EXPORT_SYMBOL_GPL vmlinux 0xb5c8983f inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xb5d48ca7 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xb5d80b27 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0xb5f6f90f dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0xb5f8084a dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0xb600e5f2 dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xb6083d17 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb60e8739 extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xb60e8f75 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xb60eaac4 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xb610b5d9 ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb628241b iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0xb62e45ca crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xb6357e53 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0xb6426964 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0xb655f91b pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xb65b507d iopf_queue_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb65fadfa cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb65fcebe thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xb6638052 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0xb67d67bf blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0xb68b8607 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xb690ebf0 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xb6a2a4bf clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xb6ad9f99 switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xb6b1e463 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0xb6c495c1 apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0xb6c847e8 acpi_bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb6d27de6 __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb6d7839a regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL_GPL vmlinux 0xb6e7ea66 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xb6f0fd67 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xb6f38fb8 user_update +EXPORT_SYMBOL_GPL vmlinux 0xb700a066 tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0xb70bc1ed __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0xb70c6e5d fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0xb71fd8cc tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0xb7329c06 clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0xb73713d7 nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0xb73e37e3 devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb73f7527 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xb74c31cd wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0xb74dba5b spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0xb74fe214 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xb77499b7 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xb780e642 ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0xb782c1a3 hv_get_vpreg_128 +EXPORT_SYMBOL_GPL vmlinux 0xb786bf75 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xb7969b91 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0xb7a2c426 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0xb7a65df7 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xb7b198b0 udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7cc0cff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0xb7cf0bdd iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xb7ee18cd ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xb7f990e9 rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xb7fdf4c3 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xb7ff26a2 lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0xb802b3bd ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xb80496d6 fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0xb811ec26 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0xb81e09f0 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xb825e997 dprc_scan_container +EXPORT_SYMBOL_GPL vmlinux 0xb8273d0b __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xb85042e5 gnttab_free_grant_reference_seq +EXPORT_SYMBOL_GPL vmlinux 0xb85b38d9 mtk_free_clk_data +EXPORT_SYMBOL_GPL vmlinux 0xb85b7fb7 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xb867f1fc sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0xb8698f88 device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0xb87f40fe cppc_set_enable +EXPORT_SYMBOL_GPL vmlinux 0xb882f11b rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb886cf84 usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0xb88a15d1 __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xb88bc47e arch_apei_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb894835e tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0xb8993fac __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb8a44dcb __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xb8b62293 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0xb8b8c4f0 ti_sci_release_resource +EXPORT_SYMBOL_GPL vmlinux 0xb8bb946a tegra_xusb_padctl_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0xb8f11603 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb8f30059 soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0xb8f3bf43 __xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xb8fec1f9 rockchip_pcie_cfg_configuration_accesses +EXPORT_SYMBOL_GPL vmlinux 0xb902affc crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0xb9175787 devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address +EXPORT_SYMBOL_GPL vmlinux 0xb9257f49 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xb940d90d hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0xb947938d vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0xb94ff22c regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0xb96d4e26 dprc_remove_devices +EXPORT_SYMBOL_GPL vmlinux 0xb978c282 ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0xb983746a edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xb9998e92 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xb9a5be83 ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xb9ab2278 tc3589x_block_write +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 0xb9e1736b xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xb9ed816d usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0xb9ee9069 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xb9ef6ef2 fsl_mc_object_free +EXPORT_SYMBOL_GPL vmlinux 0xba057786 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0xba096d0e mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0xba13d633 dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0xba141caf mtk_eint_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xba16b489 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0xba220db7 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xba2b7f64 cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0xba3a6065 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0xba3b873e kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0xba75c2c3 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0xba80de95 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xba856681 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xba95b3d6 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xbab0b7e3 vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0xbab3ae5c fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0xbab8dd5a ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0xbab9a9f0 maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0xbac7f077 wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0xbad32277 mtk_clk_unregister_muxes +EXPORT_SYMBOL_GPL vmlinux 0xbad51bcc crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xbadb7ee7 meson_clk_mpll_ops +EXPORT_SYMBOL_GPL vmlinux 0xbae7640d __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xbae7f82d gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xbaef1d63 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0xbaf22757 kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0b25d2 register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0xbb162370 acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0xbb243a9c dax_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xbb24f372 __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbb55435a iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xbb57e781 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xbb5ca31f dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0xbb62cdbd transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0xbb6728f9 pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0xbb67ca56 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0xbb68d5b5 bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xbb6f025a asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0xbb74e1d2 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xbb7e9690 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xbb7ec9cf sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0xbb8b4aae PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xbb93eec5 ioasid_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbb948b03 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xbb968244 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xbbb4ab02 mtk_mutex_put +EXPORT_SYMBOL_GPL vmlinux 0xbbb4b45b unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xbbbc5df9 of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0xbbc2853f gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xbbc3aa65 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xbbd9ccf5 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xbbe5611b crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0xbbe56404 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0xbbe5fad3 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0xbbf54d51 dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0xbbfcbe26 blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0xbc063059 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xbc27d35d fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0xbc2bb407 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0xbc307fc8 pci_bridge_emul_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xbc3ce6a6 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xbc57d8df skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0xbc5a3b94 blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0xbc600dc9 preempt_model_voluntary +EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc7dff53 i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0xbc864f8d irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0xbc8cccc8 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xbc8cebf4 mtk_clk_unregister_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0xbc8e2e3e mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbc9b8588 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xbc9d4643 dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0xbcadab16 sprd_pinctrl_core_probe +EXPORT_SYMBOL_GPL vmlinux 0xbcae0a52 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0xbcbe3339 devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0xbcbf2666 of_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xbccf3a8b imx_unregister_hw_clocks +EXPORT_SYMBOL_GPL vmlinux 0xbcd6d6ff kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbce59c8a tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xbcfc85f2 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0xbd044254 spi_async +EXPORT_SYMBOL_GPL vmlinux 0xbd05114f i2c_acpi_waive_d0_probe +EXPORT_SYMBOL_GPL vmlinux 0xbd06f3a9 ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0xbd1e63f9 dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0xbd263a0a ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xbd3671be i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0xbd5704ec __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xbd6d7924 scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0xbd6f5926 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xbd732c66 imx_pinconf_set_scu +EXPORT_SYMBOL_GPL vmlinux 0xbd7aaaee add_memory +EXPORT_SYMBOL_GPL vmlinux 0xbd7d578f pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0xbd91ca93 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0xbd9eaeff xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xbdad9e42 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xbdb2217d hv_is_isolation_supported +EXPORT_SYMBOL_GPL vmlinux 0xbdb72342 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xbdc1f2cc tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0xbdc780cc devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xbdcff8d7 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0xbdda3d7e pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbde41e16 thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0xbdea3fa5 clk_regmap_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xbdeaafe7 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0xbe137c1e imx_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0xbe144615 mtk_clk_gate_ops_no_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0xbe1bc9ab ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xbe220c5d of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xbe245d86 rockchip_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0xbe2e612e tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0xbe3619ef regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xbe3a357b call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xbe409389 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0xbe54bde8 lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0xbe577ed9 __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbe5c888b crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xbe5e3414 k3_udma_glue_reset_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0xbe643b00 spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbe77f866 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xbe8a8e32 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0xbe9485c9 of_fwnode_ops +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 0xbeb3b98b __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xbebe034f devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xbec4c97d crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0xbec66c3a __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xbed1a9c3 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0xbed394dc msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0xbee7efd4 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0xbef43d9c acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xbef80587 regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0454f3 devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xbf0ccb54 genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xbf0cfc00 sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0xbf1170c0 ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xbf180b6a ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbf197df8 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xbf225156 crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0xbf476ea8 sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0xbf618401 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xbf63a126 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xbf667ceb pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xbf7c0f5c fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xbf8d2221 devm_otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xbf935bc6 thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0xbf98fef0 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xbf9a9177 gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0xbfb528e0 dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0xbfb5733b tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd6bca7 mtk_mutex_get +EXPORT_SYMBOL_GPL vmlinux 0xbfdaebb6 acpi_subsys_freeze +EXPORT_SYMBOL_GPL vmlinux 0xbfddd56d devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0xbfed2cd9 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0xc00367c6 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xc003feda usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xc008e3d5 virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0xc00b3b35 serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0xc00b3f9b pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xc026bd59 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0xc029a501 gnttab_pages_set_private +EXPORT_SYMBOL_GPL vmlinux 0xc033d44d dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xc0483cad devm_qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0xc05cee80 ipi_get_hwirq +EXPORT_SYMBOL_GPL vmlinux 0xc05e973b devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xc071b3c5 trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0xc0786abe icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0xc09252a6 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xc0a1e8b0 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xc0a2c902 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xc0a3d155 k3_udma_glue_rx_get_flow_id_base +EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0xc0ae3a27 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0xc0bd5192 devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xc0bdb1ee sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xc0dc6f30 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0xc0ea74ee crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0xc0fa0092 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc101b281 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0xc10fddb8 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xc11a1393 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0xc11a2d09 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0xc11bb6fc pwm_request +EXPORT_SYMBOL_GPL vmlinux 0xc1316beb regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xc135d927 hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xc13801e0 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xc13ceb93 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xc14500f2 rockchip_pcie_parse_dt +EXPORT_SYMBOL_GPL vmlinux 0xc15f36db clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xc16bc223 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0xc1743430 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc17e9946 usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xc18bf654 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xc1990e7a regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xc1a25444 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0xc1a5de94 spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0xc1ad2e09 led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0xc1c05749 fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0xc1dce028 k3_udma_glue_reset_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xc1dce358 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc2105557 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0xc214f8b4 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0xc21ef7ab __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22c3703 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0xc2472388 tegra210_clk_emc_update_setting +EXPORT_SYMBOL_GPL vmlinux 0xc24778b2 security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xc25722ce ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc25b8971 hv_remove_crash_handler +EXPORT_SYMBOL_GPL vmlinux 0xc25fb069 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xc2692173 wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc289e46d cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc28a918b dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0xc29e2171 __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xc2a3e570 errata +EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xc2b52477 ahci_platform_init_host +EXPORT_SYMBOL_GPL vmlinux 0xc2b8088e acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xc2b9773a __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc2ce6c58 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xc2cebaa4 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xc2da8cad iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable +EXPORT_SYMBOL_GPL vmlinux 0xc3051d82 dm_put +EXPORT_SYMBOL_GPL vmlinux 0xc30ba503 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc30cb893 iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0xc31cdcc1 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc31f397e pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xc3376f3b skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xc33c41c8 dax_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xc340e246 zynqmp_pm_request_node +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34d8797 devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0xc356d76f sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xc35ba005 devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc35d3e1b serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0xc36577cb dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xc36c67e9 rockchip_clk_init +EXPORT_SYMBOL_GPL vmlinux 0xc36cb9df devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0xc37083e7 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0xc3876c1a hv_isolation_type_snp +EXPORT_SYMBOL_GPL vmlinux 0xc39eefb2 serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc39ffa5f stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc3b8635c bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0xc3c5c474 thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3cc0bef crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3e1f97e __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0xc3e20e5d iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0xc40eeea6 fsl_mc_cleanup_irq_pool +EXPORT_SYMBOL_GPL vmlinux 0xc417a15d rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc41d0115 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc432f438 kvm_vcpu_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0xc4355c66 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc44707e9 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc448a1ce set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xc4490874 of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc44992ee devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0xc4514b44 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc456db3c blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0xc46324f6 dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc4724c20 battery_hook_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc4745994 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xc47a90b9 bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc498bdc9 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0xc4994c62 proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0xc49d44ba devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc4a57217 __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0xc4a72936 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc4ae36f9 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc4ce24af acpi_device_fix_up_power +EXPORT_SYMBOL_GPL vmlinux 0xc4d1b3cd devm_thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0xc4dc3600 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xc50d4de7 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0xc51450c6 imx_ccm_lock +EXPORT_SYMBOL_GPL vmlinux 0xc539161d usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0xc54e8346 led_put +EXPORT_SYMBOL_GPL vmlinux 0xc5604800 clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc569d8ce __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xc56d86d7 kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xc571f6d1 dprc_setup +EXPORT_SYMBOL_GPL vmlinux 0xc573d6a7 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5777fca linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0xc58a3ee6 icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc59ee55c of_genpd_add_provider_onecell +EXPORT_SYMBOL_GPL vmlinux 0xc5a5c678 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0xc5b352a3 mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0xc5bc0803 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xc5bd87a5 devm_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0xc5cfced0 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0xc5e0b38e __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xc5e36233 pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0xc5e97941 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xc5f6a78c get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xc6034b52 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc60eb8aa evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc625cfe5 phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0xc6572a90 xenbus_read_unsigned +EXPORT_SYMBOL_GPL vmlinux 0xc65d3455 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xc66019cc xen_resume_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc662ecda __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc66f29a5 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc670bcc9 umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xc68c41d6 __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xc6901318 __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xc69690cd mtk_pinconf_drive_get +EXPORT_SYMBOL_GPL vmlinux 0xc697b0f7 nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a4a872 __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc6a9b2fa tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0xc6bd4085 net_selftest +EXPORT_SYMBOL_GPL vmlinux 0xc6c509b0 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xc6def34b gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xc6df9f08 pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0xc6e258e3 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0xc6e5bcf3 linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0xc6ea0c3c reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc6f39ca2 PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0xc7061ef3 iova_cache_put +EXPORT_SYMBOL_GPL vmlinux 0xc70f0f5e devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc71a38b0 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xc7240f93 dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0xc72d3c00 mtk_pinconf_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0xc730b5b5 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xc73da5a9 usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0xc769260d policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0xc7770fed register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc7816a6d crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0xc7856e74 __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xc785f12b serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0xc78c9265 __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0xc78c9db7 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a7e770 clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xc7b77a9d nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc7b9fe10 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0xc7c23ff0 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0xc7c610dc blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0xc7cb7965 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0xc7cdc573 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0xc7de3f21 acpi_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0xc7efbc50 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0xc7faafea bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0xc8055a25 icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0xc805a5e9 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xc80f8e4a devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc812c0b3 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xc8196967 strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0xc81e49cb of_add_property +EXPORT_SYMBOL_GPL vmlinux 0xc823104a mtk_pinconf_bias_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xc82b3a88 __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xc8442f6f dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0xc850d78f crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0xc8594d3d reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0xc868de65 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0xc87dd725 k3_udma_glue_pop_rx_chn +EXPORT_SYMBOL_GPL vmlinux 0xc89a1c44 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0xc89b99a9 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc8b1135e gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xc8c02587 pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0xc8cbf65f pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0xc8e84c1c __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xc8ebc766 tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0xc917a251 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xc91da7d1 device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0xc91f87ae param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0xc92858df kill_device +EXPORT_SYMBOL_GPL vmlinux 0xc9345c0f digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xc9370329 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0xc9376476 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0xc9377098 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc93ee1e7 usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0xc949a3f5 __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc9715630 __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc97ac5bf mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xc97f8be9 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0xc985f997 __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xc98a26b1 gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0xc98b0185 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xc99300c5 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xc9973381 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0xc99b3686 of_gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xc99bd525 fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0xc9a9be57 cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0xc9b40347 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0xc9b81327 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0xc9d1d715 fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xc9ddc852 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0xc9de3b3a serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0xc9e57b89 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9ecff50 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc9fb00f7 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0xc9fd634a usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0xca18df88 mtk_pinconf_bias_disable_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0xca1ad578 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xca2688bb gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xca42057e wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0xca4e21d0 fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0xca5f6a81 fsl_mc_bus_dpni_type +EXPORT_SYMBOL_GPL vmlinux 0xca7037bf pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0xca7074c7 mtk_pinconf_bias_get +EXPORT_SYMBOL_GPL vmlinux 0xca767492 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca85266e pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac168f8 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xcad7f528 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xcadacba0 regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xcae7ce5d fsl_mc_get_version +EXPORT_SYMBOL_GPL vmlinux 0xcaf1d958 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xcb03a430 regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xcb06bd3c add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0xcb186931 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0xcb26f5f1 regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0xcb2bfe2b nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcb39913c rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xcb3fbee9 thermal_zone_of_get_sensor_id +EXPORT_SYMBOL_GPL vmlinux 0xcb482e3a bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcb4930c5 devres_find +EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0xcb5781ae acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcb7c04ca bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0xcb8954b9 imx_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0xcb94cccd ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xcba85387 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xcbbdd695 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xcbbe4d32 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0xcbe725a5 vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0xcbea0e30 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0xcbf9e89a extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcc0fd0a7 k3_ringacc_ring_push_head +EXPORT_SYMBOL_GPL vmlinux 0xcc16727f devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0xcc2c69f9 crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0xcc2dbfd8 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0xcc39c03e nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc3cb2ac iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0xcc4bef9e pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xcc54802a da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xcc5c2efe blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0xcc795932 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xcc803deb of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0xcc896db6 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0xcc89e3ab fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xcc9268fc hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc9a21cd mc_send_command +EXPORT_SYMBOL_GPL vmlinux 0xcca175c2 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xcca644a6 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0xcca8745e usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0xcca89181 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0xccabde6f crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0xccb1cbfd devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xccc83aea devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xccce2fc0 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0xccdcf7b3 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xcce36886 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xccf0277b fsl_mc_get_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0xccf578fb fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0xcd0411be of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xcd05ead8 mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcd075cf4 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xcd1c1a53 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0xcd335f7a __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xcd37ac31 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0xcd4e572e irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0xcd51638f fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xcd611ed5 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0xcd759b82 k3_ringacc_ring_reset +EXPORT_SYMBOL_GPL vmlinux 0xcd85b9ee rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xcd910be7 ti_sci_get_num_resources +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9a3a21 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcda2aaba k3_udma_glue_tx_dma_to_cppi5_addr +EXPORT_SYMBOL_GPL vmlinux 0xcdb0ee98 nf_route +EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0xcdc09983 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xcdc86b55 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcde26600 cppc_get_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0xcdeb5c5f fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xcdec37d5 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0xcdf3d06d rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xce0a4020 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0xce20a35f ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0xce316d7e zynqmp_pm_set_sd_tapdelay +EXPORT_SYMBOL_GPL vmlinux 0xce37c04d ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xce394cff crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xce3d78f3 power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0xce48a77f __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0xce598ef2 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xce5a13d1 devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce7213a7 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0xce780d24 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xce7b8154 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xce80dd35 fsl_mc_bus_dprtc_type +EXPORT_SYMBOL_GPL vmlinux 0xce930be0 mtk_mmsys_ddp_connect +EXPORT_SYMBOL_GPL vmlinux 0xce945996 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0xce9f7dd1 pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xceac8674 zynqmp_pm_read_pggs +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xceca33a5 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xcecee8e2 to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee28a96 crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0xcee63cf8 driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0xcee854f7 pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0xcee88e7a of_overlay_fdt_apply +EXPORT_SYMBOL_GPL vmlinux 0xceed8c16 __set_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xceefb9d0 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xcef5524a tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xcefc5b9f gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xcf05d99b tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0xcf0d32b1 dax_add_host +EXPORT_SYMBOL_GPL vmlinux 0xcf1b4250 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0xcf1b6dca crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0xcf22086a __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0xcf339814 xen_dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xcf369a89 usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0xcf4f394d i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0xcf5c039a devres_get +EXPORT_SYMBOL_GPL vmlinux 0xcf7f66f9 imx_dev_clk_hw_pll14xx +EXPORT_SYMBOL_GPL vmlinux 0xcf83b9ee __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xcf8cfd99 list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0xcf9a8361 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xcfa8369c i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xcfacb3d0 clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xcfb473ff dprc_set_obj_irq +EXPORT_SYMBOL_GPL vmlinux 0xcfbe7f82 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0xcfcbb563 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcfd05342 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xcfd30d71 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0xcfdd7ef1 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xcfe47c69 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0xcfec357e ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xcffd793e hyperv_report_panic +EXPORT_SYMBOL_GPL vmlinux 0xd0035e1d usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd01c2c5a folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xd02326e1 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0xd026d518 HYPERVISOR_vcpu_op +EXPORT_SYMBOL_GPL vmlinux 0xd035b32b dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd039fc9e gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0xd03d6a35 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xd03f2945 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd04aedfd __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xd054d0ff __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd067ef8d hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xd068d93e register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xd073ba5c meson_a1_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0xd08b72ba of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xd08e2397 uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0xd09845f2 dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xd09911a6 acpi_dev_get_irq_type +EXPORT_SYMBOL_GPL vmlinux 0xd09ae7ae xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd0a89ef5 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0xd0ad37c4 dprc_open +EXPORT_SYMBOL_GPL vmlinux 0xd0bda8a7 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c8044a srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0xd0d156e9 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xd0d3f0a4 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xd0d742a3 stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax +EXPORT_SYMBOL_GPL vmlinux 0xd0e1c3dc peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd0eea865 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xd0fd7085 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd1180907 rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0xd11f116e follow_pte +EXPORT_SYMBOL_GPL vmlinux 0xd12f4343 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xd138c08a free_iova_fast +EXPORT_SYMBOL_GPL vmlinux 0xd13dd20e led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0xd148142a generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0xd153f9ed clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xd161c354 usb_of_has_combined_node +EXPORT_SYMBOL_GPL vmlinux 0xd165a493 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd16a8cef __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd1717436 kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xd18086d0 tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0xd18176a8 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xd184b795 nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0xd18b8dae mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0xd1a9ca15 __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0xd1b21d11 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd1b442d0 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0xd1b4a217 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0xd1b58a32 timer_unstable_counter_workaround +EXPORT_SYMBOL_GPL vmlinux 0xd1b68af0 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xd1bd818c __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd1be4ef8 acpi_spi_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd1c70bcc device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0xd1c996b7 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xd1cc2dcb dprc_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0xd1fc0874 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0xd1fcc339 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0xd21210c4 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd2136167 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xd2174c24 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0xd21e90b6 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd21f1d35 __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd21fe9e1 clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0xd2321f9a crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xd23707e5 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0xd23d9ddc smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xd2423f76 i2c_acpi_get_i2c_resource +EXPORT_SYMBOL_GPL vmlinux 0xd248a519 rockchip_pmu_block +EXPORT_SYMBOL_GPL vmlinux 0xd24d07d2 serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0xd24e9e8c klist_init +EXPORT_SYMBOL_GPL vmlinux 0xd25781cf cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0xd25bc85a dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27eeb4b alloc_iova +EXPORT_SYMBOL_GPL vmlinux 0xd27f215d gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xd2854a13 dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xd28b21e5 of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xd291ee87 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0xd2a09e7c xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0xd2a4f101 devm_memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0xd2a54098 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xd2ac7985 genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0xd2ad9e65 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xd2b10a05 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0xd2d40954 xenbus_setup_ring +EXPORT_SYMBOL_GPL vmlinux 0xd2d6bf66 acpi_subsys_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0xd2dca1b8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd2dd179b genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xd2dd3134 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd2dd5c71 irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0xd2ea16ec regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0xd2eb861b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xd2f0ef74 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xd30d3f0d serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0xd313bc7b xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xd320ebaf pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xd3238a07 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xd329e47d gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0xd32afe63 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd3551a76 zynqmp_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd3571a24 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd36760ef __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd368aa79 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xd374aee7 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xd3752c27 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd375e4a4 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd37ae78a mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0xd3918894 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xd3926ea1 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xd3bf4e36 register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0xd3ec851c __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd3f0cd42 misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40632bb devm_ti_sci_get_handle +EXPORT_SYMBOL_GPL vmlinux 0xd421d6c4 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xd423b700 dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd44588a9 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xd4476a27 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0xd4478f4a xen_remap_vma_range +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd45034d3 pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0xd45ad510 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xd45b6b52 serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0xd46af5ef cppc_get_perf_ctrs +EXPORT_SYMBOL_GPL vmlinux 0xd47010b9 splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0xd475ece9 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0xd48c5a9a acpi_dev_get_property +EXPORT_SYMBOL_GPL vmlinux 0xd4935851 __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4ace3c6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0xd4b7a048 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0xd4b9a616 reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c6fcea __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xd4cbdbe3 __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xd4d76df5 __xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d7e0 linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0xd4ee8985 nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0xd4effa18 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0xd4f5bfa5 iommu_queue_iopf +EXPORT_SYMBOL_GPL vmlinux 0xd4fc72c9 __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd4fceb90 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0xd507f6ef of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xd50c82e0 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd5233cd8 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xd5301b2c linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0xd53483cb rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0xd536ae51 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0xd53c67b3 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xd5474690 usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0xd5489c90 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd558845b clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd563904d spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0xd5787987 devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xd57bffae pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xd5807af3 k3_ringacc_ring_pop +EXPORT_SYMBOL_GPL vmlinux 0xd59683cf pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd59ab9b2 powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0xd59f5ddd thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0xd5c5adf1 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xd5ca4b99 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0xd5d48d78 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xd5e2d7f4 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0xd5ec00e0 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0xd60152b1 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0xd6022fa2 crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0xd616a108 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd61b3ff2 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xd62b15b1 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0xd639c841 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0xd63ace66 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xd641a9eb dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0xd65bbf40 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xd66f6c5b gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6a60cb4 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd6aafb42 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0xd6b27e8a xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0xd6b5fa58 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xd6b9e840 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0xd6bc76fc ahci_platform_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6d8f6b3 topology_set_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0xd6e615aa imx93_clk_composite_flags +EXPORT_SYMBOL_GPL vmlinux 0xd6e910b0 usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xd6f9f357 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xd7085313 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xd7269c64 osc_sb_native_usb4_control +EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd733938c nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd7404e09 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0xd7416e88 find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0xd7419707 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xd7463779 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0xd74e400f show_rcu_tasks_classic_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd7506970 pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0xd75b20aa rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0xd75ebf68 mtk_clk_register_muxes +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd769516a devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd773d1d8 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xd774957d mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0xd7759629 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xd7782288 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd781c9fa sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xd78aebc8 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xd78f89a9 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0xd798deea driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xd7996a4f vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xd7a2ae4b pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0xd7b02020 genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd7b48b73 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0xd7c58972 dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xd7c91b63 tegra210_sata_pll_hw_control_enable +EXPORT_SYMBOL_GPL vmlinux 0xd7cea889 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0xd7ced3e1 i2c_acpi_new_device_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xd7d7f2a7 devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd7db63af __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0xd7dccd23 __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0xd7e89a72 regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0xd7e9113f of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xd7e9a614 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd803d853 xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0xd809af0c folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0xd80bbba1 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd81bc6f7 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xd821122c devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0xd8255cde pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd847ee2d ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd84d7d51 usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0xd85666eb xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd857ab31 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xd8625779 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd8647850 acpi_pm_set_device_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd873e636 pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0xd877c323 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xd8797c04 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8944d34 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0xd8997541 file_is_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd89e09ad rockchip_register_softrst +EXPORT_SYMBOL_GPL vmlinux 0xd8a2e76f blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xd8a6a325 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xd8cd9a5a generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0xd8d5aed7 pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0xd8d68ab1 dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0xd8edaa71 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xd8f64785 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xd90a93a7 k3_udma_glue_rx_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xd91d991e devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0xd92f0791 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xd93a5cb1 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0xd93e1ea9 spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd96c71c0 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xd9703704 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0xd97b9b89 acpi_cpu_get_madt_gicc +EXPORT_SYMBOL_GPL vmlinux 0xd9916c3a idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0xd99bd37b kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xd9b0a6c1 i2c_acpi_find_adapter_by_handle +EXPORT_SYMBOL_GPL vmlinux 0xd9d09af6 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0xd9d0a2af devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xd9e2dd7c fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd9e6f40e gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xd9ea95ac relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xd9ee0925 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0xd9f0116c i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9faa7a5 zynqmp_pm_set_pll_frac_mode +EXPORT_SYMBOL_GPL vmlinux 0xd9ff2172 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda142177 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0xda1e1459 md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xda3083cd __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0xda33ae7c sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xda356f46 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xda7912d4 freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xda7d404a sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xda826e19 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xda8e1302 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0xda97b3f7 __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xda98b9f6 iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0xda9e3939 ahci_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xdaa06dc1 acpi_lpat_raw_to_temp +EXPORT_SYMBOL_GPL vmlinux 0xdaa58c4d iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0xdaab8a46 phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0xdab3eb94 kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0xdabe9354 inet6_compat_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdad93eda pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0xdadd8622 spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0xdaea6557 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafa542b iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0xdb0927b3 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0xdb1f30eb of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0xdb2ea5de acpi_dev_gpio_irq_get_by +EXPORT_SYMBOL_GPL vmlinux 0xdb32f8fe virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xdb3fcc3f nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0xdb4083ec usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xdb43aead __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0xdb466816 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0xdb4f2748 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0xdb63a944 acpi_lpat_get_conversion_table +EXPORT_SYMBOL_GPL vmlinux 0xdb768443 rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0xdb7c6127 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0xdb812945 pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0xdb884b85 of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb90e2e7 crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0xdbac2f2e platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbdbbde2 iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0xdbe50677 seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0xdbe8d8a0 __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xdbeeece6 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc02eb39 dmi_available +EXPORT_SYMBOL_GPL vmlinux 0xdc06d8da usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xdc0a505b acpi_subsys_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xdc139c13 k3_udma_glue_tx_get_hdesc_size +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc156957 regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xdc1cf655 syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0xdc230b15 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0xdc2c4023 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xdc2ea1ef iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xdc3bf831 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xdc45a5db edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0xdc521e94 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdc525b31 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xdc63fb72 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xdc6596fa irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc6d5e40 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc7c4b82 dpcon_enable +EXPORT_SYMBOL_GPL vmlinux 0xdc7df67f apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc84d7c4 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9ae4cd usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcce0d60 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xdcf7813f generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xdd008984 cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0xdd1f7d01 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd292c7c usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0xdd2af268 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0xdd2e7e12 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xdd2fc0a5 dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xdd398001 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0xdd3b2189 nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0xdd3e2e81 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0xdd450ef1 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0xdd531af0 extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd68a17d acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xdd6b1af8 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xdd770698 tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0xdd81d8f6 __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xddaefa2c __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xddb88a1c imx_pinconf_get_scu +EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0xddce6430 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0xddd0ba09 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xddd3e8df usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xddd96c16 tegra_mc_probe_device +EXPORT_SYMBOL_GPL vmlinux 0xdde99d64 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xddf22350 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0xddf32520 __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xddfb1040 phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0xde0282b0 fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0xde144d78 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xde41739d extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0xde4440df dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0xde4d3e8a devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0xde6684b4 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0xde6f64f2 phy_exit +EXPORT_SYMBOL_GPL vmlinux 0xde792e58 clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0xde7c8583 devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xde7e8a87 devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0xde99a181 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xde9ab8c7 xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xdead2e78 reserve_iova +EXPORT_SYMBOL_GPL vmlinux 0xdebd1334 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0xded72efe nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0xdedfa931 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xdee91d7a dtpm_destroy_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xdeffa0a7 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xdf095130 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xdf0a9051 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xdf0ad8dc bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0xdf0c757f ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0xdf0ca3f4 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0xdf0d294c uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xdf0e692c blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1be5e1 __free_iova +EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdf2dbaed spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0xdf448d1c fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xdf77a9fe ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0xdf77cd60 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xdf861903 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xdf91ae39 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xdf928828 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0xdf948ef0 pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0xdf9c6f3e sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xdfbc4d2c dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdfcb6c90 mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0xdfcc37f6 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xdfed8543 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xdffe1828 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0xdffeb518 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe01f4cb0 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0xe027cd63 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xe02d19fe tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0xe0313d71 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0xe0356a96 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe067dbef attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe06ca91c __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0xe0ab96ad perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe0b1c103 clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0xe0b3f56e unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0xe0c4e14d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xe0cb74a5 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0xe0e3147c HYPERVISOR_sched_op +EXPORT_SYMBOL_GPL vmlinux 0xe0ea79e5 iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0xe0f8a9f9 xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0xe0fe03f4 dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xe107ad32 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe11f173a __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xe1299eb6 iommu_sva_find +EXPORT_SYMBOL_GPL vmlinux 0xe133c164 to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xe13b00dc gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0xe13fe4e3 mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1594f06 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0xe159d05e devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xe15f9212 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xe1606b70 fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0xe164f82d regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xe1659781 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe1963c24 devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe197d0c2 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0xe1a8d7c9 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xe1acc6fb __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xe1b1baa4 tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xe1b36e64 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c1e987 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xe1c5221d device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0xe1d12e68 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe1d99505 ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0xe1ef8d88 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xe1f2058e scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xe1f91c9e rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xe2322df2 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe246f9bb class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xe247a35e regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xe24c6fc9 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0xe2538542 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xe25d23f3 blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0xe26aa98e devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2713ccc pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0xe2773228 dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe284a3ef vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xe28daf2c ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xe29aa76f ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xe2a8fc13 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xe2b1b557 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2ce2b4d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0xe2d720a2 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0xe2d96f5b zynqmp_pm_feature +EXPORT_SYMBOL_GPL vmlinux 0xe3127c5b __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xe31315a4 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0xe31a8bf6 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xe37f805c phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xe3890e10 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xe397caf5 seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0xe39a28fc bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe39d06e0 pinmux_generic_remove_function +EXPORT_SYMBOL_GPL vmlinux 0xe39d0794 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0xe3b3b15c l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe3b7ba12 sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0xe3cd5fae klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xe3cf4e90 kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0xe3dc766a watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0xe3de18d5 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3f18f85 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xe3f7b5fe ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0xe41c2404 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xe421e372 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xe4248980 cper_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe432099e fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0xe446c591 phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe44aa3f6 __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xe45f8dee __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xe4699a79 fsl_mc_resource_allocate +EXPORT_SYMBOL_GPL vmlinux 0xe47f77ea led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xe490e1f9 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xe491e700 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0xe4bdca84 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xe4c2c66c rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xe4c2e68a usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe4c9b516 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe4c9e204 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0xe4ceaa89 nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0xe4db9cd7 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe4ddedf2 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe4e08165 wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0xe52ad791 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0xe52fea50 cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0xe5373072 pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0xe5384cb1 acpi_subsys_complete +EXPORT_SYMBOL_GPL vmlinux 0xe539431e device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xe53ea5b3 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0xe53f09b3 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0xe5470a99 led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0xe5477567 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xe5505a00 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xe5516728 k3_udma_glue_tx_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5837a4b blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5a925d3 zynqmp_pm_init_finalize +EXPORT_SYMBOL_GPL vmlinux 0xe5aae894 inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xe5bbd7fc phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0xe5c02b64 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xe5c1d209 clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0xe5c56797 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe5cb1943 hisi_clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0xe5ce1a56 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0xe5d0164f acpi_get_psd_map +EXPORT_SYMBOL_GPL vmlinux 0xe5e6f873 __acpi_node_get_property_reference +EXPORT_SYMBOL_GPL vmlinux 0xe5e9e2a7 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xe5ecb7d6 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe5efb18f pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0xe60632a9 edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xe61868d0 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0xe63c4967 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0xe63fcf11 lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0xe657da09 vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0xe65b40ee gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xe6621260 devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0xe66be222 __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0xe6776850 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe67c7a02 edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xe67ec939 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xe68ee0bc file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xe6b05361 pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0xe6b49763 mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0xe6b91c4c br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xe6b9e552 auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6bd155d call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0xe6cbd6b1 phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0xe6cc960e regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0xe6dfbc4a sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0xe6e5dd8a scmi_protocol_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe6e988c5 k3_ringacc_get_tisci_dev_id +EXPORT_SYMBOL_GPL vmlinux 0xe6f52443 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xe6f83837 acpi_bus_attach_private_data +EXPORT_SYMBOL_GPL vmlinux 0xe6f9f0d3 blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0xe700d767 reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0xe72be441 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xe73c97aa meson_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0xe73ebf16 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xe75522a2 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0xe7590d46 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7759dc6 get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0xe7936243 zynqmp_pm_clock_getstate +EXPORT_SYMBOL_GPL vmlinux 0xe795d8b8 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xe7e4e860 kobject_move +EXPORT_SYMBOL_GPL vmlinux 0xe804a13f trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0xe81379ee mtk_clk_gate_ops_no_setclr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe8278a7c ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xe82bd86f proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0xe8398be5 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xe84ed34a unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe854c3e5 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86ff557 cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0xe878c4cc powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0xe87ebb26 gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0xe8824a89 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xe8993d71 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xe89ef7ca alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0xe8ae0527 of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xe8bd3844 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xe8c0065d memory_group_register_static +EXPORT_SYMBOL_GPL vmlinux 0xe8c29d51 iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0xe8c7a31a pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0xe8cb1ed3 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xe8d03590 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xe8e4b33a blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0xe8e9b28e pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe8eef4c5 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xe8f446db usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xe8f6e393 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0xe90c7659 k3_udma_glue_rx_dma_to_cppi5_addr +EXPORT_SYMBOL_GPL vmlinux 0xe90e43a7 crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0xe91598ed mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0xe929de07 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0xe931630d __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0xe9397ab3 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9441d5f virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe9482bb7 mtk_mutex_add_comp +EXPORT_SYMBOL_GPL vmlinux 0xe9498e07 icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0xe94df08f phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe9595e59 pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0xe9705474 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xe971fcb1 kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0xe97d1587 serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0xe988339d scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0xe98d5499 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe98f55f2 arm_smccc_get_version +EXPORT_SYMBOL_GPL vmlinux 0xe99cfea8 devm_acpi_dev_add_driver_gpios +EXPORT_SYMBOL_GPL vmlinux 0xe9b28fd5 badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0xe9cec88b blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d63a0d k3_udma_glue_enable_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xe9d9c7dc ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0xe9f7f142 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0xe9fa609a driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe9fcc60c bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0xea072eee icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea1f5d23 devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xea2c81b7 genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0xea36a926 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xea36d213 crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xea3a23f3 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0xea3ab875 pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea543e62 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xea59da24 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xea660bab get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xea6aa811 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xeaa054fc lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0xeaa0d338 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0xeaa5c809 spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0xeab59108 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xeab90472 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0xeac6e0ee devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0xeace18ef __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xeace8287 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xead035ee __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xead54924 mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xead5c8e5 clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0xeae4e714 xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0xeae552e1 mtk_build_eint +EXPORT_SYMBOL_GPL vmlinux 0xeae8ab04 regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0xeaf0a57c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xeaf3cb23 crc64_be +EXPORT_SYMBOL_GPL vmlinux 0xeaf5643c ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xeaf8469d hv_do_fast_hypercall8 +EXPORT_SYMBOL_GPL vmlinux 0xeb03c675 of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0xeb11b324 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0xeb19abc5 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0xeb2e05f7 ahci_handle_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xeb36e50e dprc_get_obj +EXPORT_SYMBOL_GPL vmlinux 0xeb4221e4 trace_clock +EXPORT_SYMBOL_GPL vmlinux 0xeb446d6b umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0xeb631c9d iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0xeb66aa2e dpcon_close +EXPORT_SYMBOL_GPL vmlinux 0xeb67f77b regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xeb771c52 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xeb777ed0 trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0xeb78b1ed unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xeb7c038f rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xeb83e29a ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xebbee10e mtk_eint_do_init +EXPORT_SYMBOL_GPL vmlinux 0xebc9a09f lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0xebca1bb8 dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0xebd4cc11 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0xebd661d7 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0xebdb078b pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0xebe84214 ahci_do_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xebf57806 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xec35d635 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0xec51a821 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0xec5668f6 dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0xec64a3d3 devm_regmap_init_vexpress_config +EXPORT_SYMBOL_GPL vmlinux 0xec6b5011 bgmac_adjust_link +EXPORT_SYMBOL_GPL vmlinux 0xec7347c2 fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0xec774acb cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xec7c2980 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xec8a230b cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0xeca4d425 mtk_hw_get_value +EXPORT_SYMBOL_GPL vmlinux 0xecaaa2dd srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xecb671fc tegra210_sata_pll_hw_sequence_start +EXPORT_SYMBOL_GPL vmlinux 0xecba68e3 gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0xeccc82f6 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xecd5d304 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xecd8f23d xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xecd9fb1e efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xecf76a03 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xecfb2796 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xecfc9067 mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0xed06aac5 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0xed16a591 scmi_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xed2af901 rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0xed2c5bcf power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0xed39b7b8 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0xed4c68a8 blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0xed51a4a4 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0xed58ed33 acpi_irq_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xed5e6a8f phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0xed824b43 blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0xed824d0c devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0xed8fbc51 irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0xed918dde hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0xeda668c2 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0xedaa1150 acpi_subsys_suspend +EXPORT_SYMBOL_GPL vmlinux 0xedc5b52b pci_ecam_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xedd092d5 power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0xede5b7bc kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xede9a09a btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0xedeb05a9 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xedee0725 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xedf21641 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xedffb7d0 tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0xee093efc dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0xee12117c __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xee13b5f6 kvm_vcpu_map +EXPORT_SYMBOL_GPL vmlinux 0xee1f5126 __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xee2685f7 virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0xee29ed38 crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xee38566c dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee518148 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xee5db3ad blk_queue_required_elevator_features +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 0xee98a501 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xee9eb8ce stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xeeb37e11 regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0xeeb5e14a platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeeb8685f fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0xeecdfd09 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xeed0cea4 kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0xeedfa62a zynqmp_pm_is_function_supported +EXPORT_SYMBOL_GPL vmlinux 0xeef0f10d devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0xeef5064f fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0xeef885fd skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xef00bfa8 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xef097af7 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef29fcdd clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xef2eb319 md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0xef315a4f vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0xef34bf3e hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0xef3db314 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0xef52eb16 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0xef5db66d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6d21e6 pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0xef755e8e css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xef78d7f8 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xef791f16 devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0xef7da25a pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0xef92ef33 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefaf3c13 vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0xefb750ac dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0xefd351a4 filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0xefd3a758 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0xefd5e07b kthread_func +EXPORT_SYMBOL_GPL vmlinux 0xefd67eed acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xefdc28d9 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0xefeafcf1 edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0xefef63aa acpi_device_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0xf0059ebd cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xf012349d gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0xf01d098b efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0xf020b52b mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0xf039995d fsl_mc_allocate_irqs +EXPORT_SYMBOL_GPL vmlinux 0xf03b0410 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0xf04429b4 acpi_bus_get_status_handle +EXPORT_SYMBOL_GPL vmlinux 0xf04b97eb of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf074f80e acpi_device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0xf07af269 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0xf07af4df of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0xf0aa7266 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xf0bbf2a9 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf0f0fe8b pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf0fb1ce1 mcore_booted +EXPORT_SYMBOL_GPL vmlinux 0xf0fd6594 bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0xf10cd6a3 mtk_pinconf_adv_drive_set +EXPORT_SYMBOL_GPL vmlinux 0xf12180fd imx_1443x_dram_pll +EXPORT_SYMBOL_GPL vmlinux 0xf122077c dprc_get_obj_count +EXPORT_SYMBOL_GPL vmlinux 0xf14317ef devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf148e34b devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0xf14e2102 mtk_pinconf_bias_disable_get +EXPORT_SYMBOL_GPL vmlinux 0xf16928f4 arm64_mm_context_put +EXPORT_SYMBOL_GPL vmlinux 0xf16dab5a phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xf16edee7 dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf188a662 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0xf18c0108 ti_sci_inta_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xf18c18a1 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf1953ecc ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf1a3a75c get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0xf1b3ed65 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0xf1dd88ee device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf1f92fbb sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xf1fdaf1f access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0xf2043a1c devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf20f0e26 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0xf2131af1 pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf22664e5 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0xf229f803 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xf24fef58 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xf26847f3 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0xf26a4020 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0xf26d2343 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf27bf7d6 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xf27d0a7b gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xf27d38e8 generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0xf28342c8 acpi_gpiochip_request_interrupts +EXPORT_SYMBOL_GPL vmlinux 0xf283ec28 irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0xf296c3a7 fsl_mc_portal_free +EXPORT_SYMBOL_GPL vmlinux 0xf2a86b00 kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xf2bb0a2f vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0xf2c60b18 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xf2e6f35f param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xf2ea1dc7 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0xf2f72f5c sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0xf2f7c4b0 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0xf2fd15e2 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0xf3031b28 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf303c134 l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0xf30a5502 cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0xf311e156 key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0xf31222bf mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0xf31632e0 ezx_pcap_read +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 0xf3313179 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0xf33e51f6 devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0xf34c225d mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xf35cca48 debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0xf380879f mtk_clk_register_gates +EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf3863f42 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0xf39d5d90 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3b5bf8b fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0xf3b95d79 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xf3c417bb kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xf3d654dd of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0xf3d90a7d xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xf3db0d18 dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0xf3dbafd8 dpcon_reset +EXPORT_SYMBOL_GPL vmlinux 0xf3ebc74a transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xf41184e3 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xf424824b ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf42d0175 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xf42ddff2 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xf440c4d7 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xf4630101 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf46a74d2 dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0xf4707cf4 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0xf48e7cfc rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xf48fbcea __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf494d906 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0xf4a00349 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xf4a09fe9 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0xf4ac4c9f __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0xf4bfda49 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xf4c0e202 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xf4c7b7f8 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f8f reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0xf5040197 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf504b82f uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xf505d87d __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0xf515821d phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0xf51ed6f2 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf52f5799 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0xf530a8d9 mtk_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0xf542f3d2 dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf54f5e68 meson_clk_cpu_dyndiv_ops +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf558249d simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xf55a7f61 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xf576b0ae alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0xf58753c0 regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0xf592066b wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xf593b095 crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0xf595d63e serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0xf59dfe1f of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a3ba99 linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5bcf28d blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xf5c073f6 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xf5c246d2 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0xf5c4c56c ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf5ca3bbc edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0xf5ce4ee3 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0xf5e1a77c trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0xf5ec5f9d acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0xf5fc7fdf ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0xf604321c dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0xf61c6b74 hv_do_hypercall +EXPORT_SYMBOL_GPL vmlinux 0xf63fe19b of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0xf6452188 unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0xf64aaa25 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf655500e unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xf663ee2f pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0xf674fada crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0xf6754797 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xf68528db blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0xf68918e7 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0xf68c2bc4 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xf6a28554 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xf6a74b1d k3_udma_glue_rx_flow_init +EXPORT_SYMBOL_GPL vmlinux 0xf6b12927 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xf6b8a718 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xf6beee37 __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xf6c71a25 cper_severity_str +EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6d8d567 aead_geniv_alloc +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 0xf70947df scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xf70e4a4d preempt_schedule_notrace +EXPORT_SYMBOL_GPL vmlinux 0xf7154688 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0xf723e492 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0xf72cb0dd spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0xf730fb4a qcom_smem_state_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xf74247c0 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xf744298f hv_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xf7455c16 input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0xf746ff7a wwan_port_rx +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 0xf75c6c53 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0xf769a29b irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xf772c97d regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xf7772bde xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0xf77b1e67 mtk_pinconf_bias_disable_set +EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0xf7866b4f bind_evtchn_to_irqhandler_lateeoi +EXPORT_SYMBOL_GPL vmlinux 0xf790c84e ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf7a5f861 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0xf7afb369 btree_init +EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xf7c3f273 xen_resume_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf7c67d92 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xf7c78118 genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0xf7ce7968 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0xf7e14439 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xf7e56909 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xf7e71f06 of_k3_ringacc_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xf7e96bdc tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf7ef0cca phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0xf7f947be sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xf7fc21df crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf80f5fc7 __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xf80fa472 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xf81dce70 thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf831c91d usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xf8407ac9 rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0xf842036d __imx8m_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0xf8435847 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf847485a vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0xf852d746 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8540d8c sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0xf861bd31 rockchip_clk_register_ddrclk +EXPORT_SYMBOL_GPL vmlinux 0xf8647688 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf869dd81 gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0xf8783b43 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0xf87bc089 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xf87bcc2d __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xf87cefd0 devm_ti_sci_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf8943bf9 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0xf897b5b8 hv_setup_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8a51c29 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0xf8a692d3 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf8ae7a80 kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xf8ae8da0 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf8bf1f05 devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0xf8c154d5 hisi_clk_register_phase +EXPORT_SYMBOL_GPL vmlinux 0xf8c26e1a usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xf8c43e84 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xf8c6f750 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0xf8cd3864 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xf8d0bd98 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0xf8d45367 pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0xf8de4cd2 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xf8f1f2ef ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf900c77d zynqmp_pm_clock_disable +EXPORT_SYMBOL_GPL vmlinux 0xf9093f5b __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xf9110664 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xf92a61f7 regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0xf939ae6c serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xf9504ccc sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0xf950dd2d acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0xf9554ccb __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xf955e9c5 bprintf +EXPORT_SYMBOL_GPL vmlinux 0xf964706c devres_add +EXPORT_SYMBOL_GPL vmlinux 0xf967422b HYPERVISOR_xen_version +EXPORT_SYMBOL_GPL vmlinux 0xf982d151 xen_unmap_domain_gfn_range +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a3c5dc zynqmp_pm_load_pdi +EXPORT_SYMBOL_GPL vmlinux 0xf9a9bd44 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0xf9afec02 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xf9b1532c acpi_pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xf9b34a0b iopf_queue_free +EXPORT_SYMBOL_GPL vmlinux 0xf9b45f68 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0xf9bad8bd __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xf9be046f virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0xf9c2cb2b fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xf9d26ea9 pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0xf9d301c4 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xfa0d315a regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xfa1c6d0e device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa23bb5c component_release_of +EXPORT_SYMBOL_GPL vmlinux 0xfa2f09fd devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0xfa347113 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0xfa349688 aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0xfa3f6d49 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xfa4271f9 crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0xfa43cefc is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xfa48c0c6 kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0xfa4bb0b6 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0xfa5bf7ad mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0xfa6de602 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0xfa6fe8b0 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xfa8bfc41 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0xfa97ae39 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0xfa9d26a0 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0xfaa0cb4f crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0xfaa41fde fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0xfaaf8621 power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0xfab53ed9 pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0xfabfc24a dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xfac03c66 of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xfac70544 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xfac8cb92 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0xfad31993 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0xfaf8fab3 phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0xfb0959cc icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb1b0493 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xfb1e5f2f kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0xfb22e492 crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0xfb28d8f5 kvm_io_bus_write +EXPORT_SYMBOL_GPL vmlinux 0xfb2f95a8 crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb479a6e crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xfb6a0372 debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb7f8fb9 nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0xfb88c1db da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xfb9824d8 usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0xfba72724 kvm_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xfbaadb28 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action +EXPORT_SYMBOL_GPL vmlinux 0xfbd5c22a pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xfbe46637 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xfbf44a6f dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0xfbfb6ac5 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfbffe51f device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xfc03a4ca proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc14bb2e dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xfc1d7540 devm_rpi_firmware_get +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc207aa7 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xfc22ede1 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xfc2461c4 acpi_get_first_physical_node +EXPORT_SYMBOL_GPL vmlinux 0xfc254d15 gnttab_free_auto_xlat_frames +EXPORT_SYMBOL_GPL vmlinux 0xfc27983c tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xfc35a8d9 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc371802 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfc3a789e devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4c34 meson_clk_pcie_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc43c987 gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0xfc45eea3 dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0xfc464ebd netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0xfc768d42 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL vmlinux 0xfc7e363b rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xfc9477b5 zynqmp_pm_set_pll_frac_data +EXPORT_SYMBOL_GPL vmlinux 0xfca7f934 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0xfcac09ca mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xfcb3b3dc devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0xfcbfec70 add_memory_driver_managed +EXPORT_SYMBOL_GPL vmlinux 0xfcc1edd3 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfcda7af7 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0xfcf20757 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xfcf569b3 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfcff55fd gnttab_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0xfd068326 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xfd195774 k3_udma_glue_disable_tx_chn +EXPORT_SYMBOL_GPL vmlinux 0xfd1c4311 pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xfd2a1bc0 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xfd2c62ad devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfd369303 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0xfd40d9c6 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfd5b1c72 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0xfd5b8450 phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0xfd5cf13c iopf_queue_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xfd6555fb xlnx_unregister_event +EXPORT_SYMBOL_GPL vmlinux 0xfd6608b6 pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfd94c1b6 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0xfd99825f pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xfdabba95 iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfdac1915 swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfdb03d85 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0xfdb8c315 auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdc6a50d crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0xfdcede15 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0xfdea2d04 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfe0e7cd3 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0xfe161f28 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0xfe19dc28 vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0xfe294039 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0xfe3a6de3 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe4bb802 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0xfe5902ab alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0xfe60ddcd ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0xfe6433cf acpi_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfe74c5b7 ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfe876044 gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe96ec34 devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0xfe978e6b pcc_mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe99dad0 dtpm_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xfeb33a7e scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xfec202bb gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xfec3bf84 icst_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0xfec47828 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfede9222 __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xfeded765 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xfeeecd05 apei_read +EXPORT_SYMBOL_GPL vmlinux 0xfef62ae1 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfefcf59c regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xff01a286 acpi_cppc_processor_exit +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff07d988 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xff0e79c0 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0xff0ead05 nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xff1666f3 reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0xff215f7b edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xff291ecf clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xff38b57a usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xff42c374 usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0xff59eb0f scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0xff5ac472 k3_ringacc_dmarings_init +EXPORT_SYMBOL_GPL vmlinux 0xff607a4c __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0xff608104 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0xff6d70b8 fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0xff806398 auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0xff82421b imx_pinctrl_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xff86ef48 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0xff8db3de pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0xff9c46e8 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xff9dbeea of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xffa27615 kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xffaecc5a fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0xffbeed83 sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0xffc86f14 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0xffd55acb dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xffd77ea1 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0xfff330c8 usb_string +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x96a29a2e hwmon_device_register_for_thermal vmlinux +IIO_AD5592R EXPORT_SYMBOL_GPL 0x12b0216a ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x9c66fbc7 ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x553699e6 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0x7ec67d19 ad5686_probe drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0xa5bc8c5b ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0xd6f4d49c ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x8df0b731 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0xd15eb3dd ad7606_probe drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0x305a183c adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0x7627f381 __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x3f52b5ac adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x57c8dedc __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x60ba4aec adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x65f055d1 __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x9224e4c1 __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x92ec915c adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x99972c82 __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xa2a6223c __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xbe0be365 devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xd94ff121 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x10ca4def __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x8401eedc adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x99b8bf4f adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xf6f7b9f3 adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb446fa86 adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb9960d36 adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0xc1bdf255 adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0xb772079f adxl372_probe drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0xfad6cd2c adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x0173bc58 ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x31ae1d96 ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x57dd3cdc ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x608f3657 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x72b78325 ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x74e228f2 ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x990e69eb ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xc9ec7dee devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xe2e88f1d ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xebdef279 ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x7c892186 bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0xbc7bd98d bma400_probe drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x11f2d43f bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x40e0bc6a bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xae9f004c bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xdfd3d1ca bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x3e8c82b0 bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x404e0f42 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x46b5b7dc bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xffd81420 bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0xc0944864 bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0x7743bc9a bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x02050355 bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x78b717c3 bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xbc086255 bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xcdbca8a7 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x115655be fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x8f589121 fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x8fe7ea7f fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xb388c17b fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x0705b369 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x196f58d8 hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x35f3aea9 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x42b27527 hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x5fd724a9 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x63e208ad hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x649c17e4 hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x82352dcc hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0xc4c2c7f3 hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xe901ba73 hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xf2b2c850 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xfbf5a6c8 hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x45887d59 hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x562c3f78 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x7736718d hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xd07c82bf hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x07795083 hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7cc9c108 hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x84ab2a0f hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xf9bcdb46 hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x6d38acf2 kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x8459d992 kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xe8fcd4d2 kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x3130cb8e ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7c0cb1ce ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x9eba1a7d ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xa63356aa ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xaf3674f2 ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xc282e64a ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xca779e01 ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xe29c8608 ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xecf54e46 ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x003893b4 mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x6a6e75be mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x80092b26 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x167065e4 mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x38a60951 mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x536fa5c2 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x66c66a7a mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x6de1de92 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9a3ea6e1 mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9ad026e6 mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x9c97fd0b mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xa0f950ef mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xae27276d mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xae7a84b4 mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbcd7fe96 mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xcb5d92e0 mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xdd18d633 mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xded27067 mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xe525927c mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xefbe8c70 mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0x4d886dc1 mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0x06c9bd36 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0x61b21eb0 ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xa8247011 rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xaa911f08 rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xcc7209be rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x23264c31 scd30_probe drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0xfc807941 scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x117f33df ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x3af2cebe ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x594c8eed ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x5e0f19cc ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x834e9e12 ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x85bc02f2 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x8d5d4c08 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0xf9f90d83 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x02e5a77a st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x1049ccb3 st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x15afc94d st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x2b04eee7 st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x30e279c9 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x32d08219 st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x386f6edd st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x5aa2ac12 st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x7263a4b5 st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x74078efb st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x763b1eb9 st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7e75c2b8 st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7e9260df st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x82e63523 st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x850f0421 st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0x859eec09 st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x8cfc375e st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x96f4a4fb st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x9c2b5c12 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0xa0723efd st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xa116b268 st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0xa34a9a06 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xc38a8b31 st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd320acf3 st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0xe32a5bcb st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xfc708966 st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0xbb32d25a st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x52115bcb st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x8b82b70d st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x1a583634 zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x3e11ce49 zpa2326_remove drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x5756cde3 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7347cb67 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x8e384167 zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xc271f38a zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IWLWIFI EXPORT_SYMBOL_GPL 0x0236e054 iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x02484d76 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x029237af iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x030df0b7 iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x08ba2dd9 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x090de8d7 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0b9a845e iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0f3d6359 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0f7816ca iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1332e4de iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x14c6d584 iwl_sar_select_profile drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1a0c9525 iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1ff100e0 iwl_acpi_get_mcc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2710c362 iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2b720a28 _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2baed4f0 iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3102b8a0 iwl_acpi_get_lari_config_bitmap drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x31b23463 iwl_acpi_get_dsm_u32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3487eae1 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3786a90d iwl_acpi_get_eckv drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x383ae7bb iwl_acpi_get_object drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x41b49ca0 iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x43c5b6ca iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x48613d63 iwl_read_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4bbc71e0 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4f3c27e9 iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x56f17e64 iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x593478d7 iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5988395c iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5af26eb4 iwl_acpi_is_ppag_approved drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5bbaefe7 __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x60076bf4 __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x64127074 iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6c2fbc94 iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x724cd64c iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x743e64c6 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7562d03a iwl_sar_geo_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x764e68de iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x782ec8b7 iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7b6e6b76 iwl_sar_get_ewrd_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x828c6838 iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x83e1df41 iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x84bb50e1 iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x874c77de iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x89d811ec iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8cd26716 iwl_acpi_get_tas drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8e138773 iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8e29f316 iwl_sar_geo_support drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9038811a iwl_rfi_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x90e1713f iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x993d25ee iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9acb8e00 iwl_sar_get_wgds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9ad8a287 __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa7a88f8a iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xab431721 iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xac35d42c iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xace9644d iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb37b318c iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb491dd2f iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb6ca6615 iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7d5ffb1 iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb8667d74 iwl_acpi_get_pwr_limit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbafc8994 iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbdaa68aa __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xbe19c826 iwl_acpi_get_dsm_u8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc12bd56b iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc208597e iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc225d5bf iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc4912454 iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc6c98be8 iwl_uefi_get_sgom_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc6d0e2e4 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xc76125e5 iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xca86535e iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xce0c6460 iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd180abcc iwl_sar_get_wrds_table drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd3ffd4d8 iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd98ad4f8 iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe0d98dfb iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe0eb5838 iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe2796b7b iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe75b7e77 iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe89f2637 iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea1b26fc iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xec77d81a iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xedf0f679 iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf3a5641a iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf3fff903 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf88964e4 iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfc1e6f41 iwl_guid drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfd908811 iwl_acpi_get_wifi_pkg_range drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xff26d313 iwl_acpi_get_ppag_table drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x6a1695c3 ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0xd00dfc1f ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x2665a7c1 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x275383eb mcb_unregister_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3fb150d6 mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3fea8a86 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x47dbec8a mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x48e2f091 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x623a65b7 chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7be61816 mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa0b722cc mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa3d2168b mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa4a12c05 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xc8057552 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xcd011fd7 mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xeb2c8905 mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xed911545 mcb_release_bus drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x1e960964 nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x324dc5c1 nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x4331554d nvme_passthru_end drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x71a6d757 nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xcf139c4e nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xe4c0eb16 nvme_ctrl_from_file drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x00f60867 peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x0b0fc7e1 peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x0f262821 peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x26528316 peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x3fbb810f peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x401d21bd peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x43f74b3a peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x4fa9fd6c peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x527969eb peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x5817289c peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x690baeee __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6986d7e7 peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6cacdbe5 peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x84eabf7c peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8634815c peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8dad1aae peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x94f628ef peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x9d73212a peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xa23ea842 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xa4616ebb peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xac92cc2f devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xadbf48a1 peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb7392040 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xb9428232 peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xcc6ee3fc peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xd7cbed53 peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe13feb1f peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf4f3f705 peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xf721e8ef peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x4860e1b8 peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x516ec2f9 peci_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7b3db855 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x9039d223 peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xf9fe67d4 peci_ep_pci_local_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x1229abec pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x1504b3af pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x186099fa pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x22c5023c pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x2a6c0465 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x326d2755 pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3665c8ea pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x51471a2e pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x60461a73 pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7048fdce pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x77ee3848 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x978fb71e pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xcd28afa0 pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xcd3f5b02 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd2c49f4e pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd9e16cef pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd9e8efa3 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xe6cd2e23 pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xf55996f7 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x197f2912 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x59378833 sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x71fc0932 sx_common_write_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x83a5680b sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd07d0025 sx_common_events drivers/iio/proximity/sx_common +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0x2b707546 hda_cs_dsp_fw_ids sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xab13b93b hda_cs_dsp_read_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xbe44e036 hda_cs_dsp_control_add sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xc88735d2 hda_cs_dsp_control_remove sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_CS_DSP_CONTROLS EXPORT_SYMBOL_GPL 0xd33e703e hda_cs_dsp_write_ctl sound/pci/hda/snd-hda-cs-dsp-ctls +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x09f027a9 cs35l41_hda_pm_ops sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0x9230fd93 cs35l41_hda_probe sound/pci/hda/snd-hda-scodec-cs35l41 +SND_HDA_SCODEC_CS35L41 EXPORT_SYMBOL_GPL 0xf42a0447 cs35l41_hda_remove sound/pci/hda/snd-hda-scodec-cs35l41 +SND_INTEL_SOUNDWIRE_ACPI EXPORT_SYMBOL 0xbb4f9d1f sdw_intel_acpi_scan sound/hda/snd-intel-sdw-acpi +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x04a6eb3f cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x989b6caf cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xfd61701e cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0xb72c3405 cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0xddeb912f cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0xf414f549 cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_SOF_XTENSA EXPORT_SYMBOL 0x9d9003e5 sof_xtensa_arch_ops sound/soc/sof/xtensa/snd-sof-xtensa-dsp +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x38127990 sdw_intel_process_wakeen_event drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x45a5b8e8 sdw_intel_startup drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0x5af438eb sdw_intel_enable_irq drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xaa52eba1 sdw_intel_thread drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xbb967567 sdw_intel_probe drivers/soundwire/soundwire-intel +SOUNDWIRE_INTEL_INIT EXPORT_SYMBOL 0xdb07d299 sdw_intel_exit drivers/soundwire/soundwire-intel +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x0393545e dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x1349309a dw_spi_update_config drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x2930fde3 dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x3ad6528b dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x75e5710f dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x9b4814b5 dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xa40f6b5a dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xb2a6aec9 dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0xe5a4dbe0 dw_spi_suspend_host drivers/spi/spi-dw +SUNXI_CCU EXPORT_SYMBOL_GPL 0x0a9821bf ccu_pll_notifier_register vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x19212eb4 ccu_mux_helper_determine_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x215acb3b ccu_frac_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x33527173 ccu_mux_helper_set_parent vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x34a796c2 ccu_nm_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x376eebe1 ccu_frac_helper_has_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x3cca3c4e ccu_gate_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x5087807a ccu_frac_helper_read_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x553cf6ba ccu_sdm_helper_read_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x60e84cc1 ccu_sdm_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x66ae640a ccu_mux_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x67b4f375 ccu_sdm_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x83c753fd ccu_mux_helper_apply_prediv vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x87fcecc6 ccu_sdm_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x8cdb1752 ccu_nkm_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x8d7438cc ccu_gate_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x98224ec7 ccu_reset_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x9a7239d2 ccu_frac_helper_is_enabled vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0x9c8ffe02 ccu_helper_wait_for_lock vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xa0f4dce8 ccu_nkmp_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xba079d1a ccu_mp_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xbb6e851f ccu_mp_mmc_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xbedab8d5 ccu_phase_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xc2378215 ccu_frac_helper_set_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xcdae8a96 ccu_mult_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xd35244af ccu_sdm_helper_has_rate vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xd7ee688c ccu_gate_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xdc3ef86e ccu_mux_helper_get_parent vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xde8a0571 ccu_mux_notifier_register vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xdee13cf4 ccu_frac_helper_enable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xe2fe75df ccu_nk_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xe395e8eb ccu_div_ops vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xeca4e8ed ccu_gate_helper_disable vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xf1d63af5 ccu_sdm_helper_get_factors vmlinux +SUNXI_CCU EXPORT_SYMBOL_GPL 0xf9946999 devm_sunxi_ccu_probe vmlinux +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x3dce036c firmware_request_builtin vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x0d8570f3 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x12f0afdf usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x137dfdf3 usb_stor_CB_reset 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 0x22777826 usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3fde369f usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x414b6e6c usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x52ce754b usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5d298301 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5faba9f7 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x63d15e50 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7726ba80 usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9334236a usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x9446bdcb usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xa5253d33 usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xb26ee06b usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xcbd38790 usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xcc78d1a0 usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xcf877e02 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd6e9808d usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe84bb835 usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe9a6dd4b fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xfaae7dd5 usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xfc4711dd usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xfd5e8bec usb_stor_bulk_srb drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/arm64/generic-64k.compiler +++ linux-5.19.0/debian.master/abi/arm64/generic-64k.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/arm64/generic-64k.modules +++ linux-5.19.0/debian.master/abi/arm64/generic-64k.modules @@ -0,0 +1,7181 @@ +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_aspeed_vuart +8250_bcm7271 +8250_exar +8250_men_mcb +8250_pericom +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_fd +9pnet_rdma +9pnet_virtio +9pnet_xen +a100u2w +a3d +a53-pll +a7-pll +a8293 +aacraid +aat2870-regulator +aat2870_bl +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_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ad9467 +ad9523 +ad9832 +ad9834 +ad_sigma_delta +ada4250 +adc-joystick +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 +adi-axi-adc +adiantum +adin +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv1014 +admv4420 +admv8818 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv748x +adv7511 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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_tegra +ahci_xgene +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +al3320a +alcor +alcor_pci +algif_aead +algif_hash +algif_rng +algif_skcipher +alim7101_wdt +allegro +altera-ci +altera-cvp +altera-fpga2sdram +altera-freeze-bridge +altera-hps2fpga +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 +am65-cpts +amba-clcd +amba-pl010 +ambakmi +amc6821 +amd +amd-xgbe +amd5536udc_pci +amd8111e +amdgpu +amlogic-gxl-crypto +amlogic_thermal +amphion-vpu +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 +amt +analog +analogix-anx6345 +analogix-anx78xx +analogix_dp +anatop-regulator +ansi_cprng +anx7625 +anybuss_core +ao-cec +ao-cec-g12a +aoe +apbps2 +apcs-msm8916 +apcs-sdx55 +apds9300 +apds9802als +apds990x +apds9960 +apple-dart +apple-mailbox +apple-mfi-fastcharge +apple-rtkit +apple-sart +apple_wdt +appledisplay +appletalk +appletouch +applicom +apr +apss-ipq-pll +apss-ipq6018 +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar1021_i2c +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_emac +arc_ps2 +arc_uart +arcmsr +arcnet +arcpgu +arcx-anybus +arcxcnn_bl +arizona +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arm-cmn +arm_dmc620_pmu +arm_dsu_pmu +arm_mhu +arm_mhu_db +arm_mhuv2 +arm_scpi +arm_smc_wdt +arm_smccc_trng +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 +as73211 +asc7621 +ascot2e +asix +aspeed-pwm-tacho +aspeed-video +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +ata_generic +ata_piix +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_snoc +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-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 +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796b +ax88796c +axg-audio +axi-fan-control +axis-fifo +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x-rsb +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +b53_common +b53_mdio +b53_mmap +b53_serdes +b53_spi +b53_srab +ba431-rng +bam_dma +bareudp +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 +bcm2711_thermal +bcm2835 +bcm2835-mmal-vchiq +bcm2835-rng +bcm2835-v4l2 +bcm2835_thermal +bcm2835_wdt +bcm3510 +bcm4908_enet +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm63138_nand +bcm6368_nand +bcm63xx_uart +bcm7038_wdt +bcm7xxx +bcm87xx +bcm_crypto_spu +bcm_iproc_adc +bcm_iproc_tsc +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd71815-regulator +bd71828-regulator +bd718x7-regulator +bd9571mwv +bd9571mwv-regulator +bd9576-regulator +bd9576_wdt +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +berlin2-adc +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b_generic +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluefield_edac +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bnxt_re +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_charger +bq27xxx_battery +bq27xxx_battery_hdq +bq27xxx_battery_i2c +br2684 +br_netfilter +brcmfmac +brcmnand +brcmsmac +brcmstb-avs-cpufreq +brcmstb-usb-pinmap +brcmstb_nand +brcmstb_thermal +brcmutil +brd +bridge +broadcom +bsd_comp +bt819 +bt856 +bt866 +bt878 +btbcm +btcoexist +btintel +btmrvl +btmrvl_sdio +btmtk +btmtksdio +btmtkuart +btqca +btqcomsmd +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +caam +caam_jr +caamalg_desc +caamhash_desc +cachefiles +cadence-nand-controller +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +caif_usb +caif_virtio +camcc-sc7180 +camcc-sc7280 +camcc-sdm845 +camcc-sm8250 +camellia_generic +can +can-bcm +can-dev +can-gw +can-isotp +can-j1939 +can-raw +cap11xx +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 +ccs +ccs-pll +ccs811 +cctrng +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-dphy +cdns-dphy-rx +cdns-dsi +cdns-mhdp8546 +cdns-pltfrm +cdns-usb-common +cdns3 +cdns3-imx +cdns3-pci-wrap +cdns3-ti +cdnsp-udc-pci +cec +cec-gpio +ceph +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha-neon +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone-icn6211 +chipone_icn8318 +chipone_icn8505 +chipreg +chnl_net +chromeos_acpi +chromeos_privacy_screen +chromeos_tbmc +chrontel-ch7033 +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_tegra +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cirrus +cirrusfb +clip +clk-apple-nco +clk-axi-clkgen +clk-bcm2711-dvp +clk-bd718x7 +clk-cdce706 +clk-cdce925 +clk-cpu-8996 +clk-cs2000-cp +clk-fsl-flexspi +clk-hi3519 +clk-hi655x +clk-imx8ulp +clk-imx93 +clk-lmk04832 +clk-lochnagar +clk-max77686 +clk-max9485 +clk-palmas +clk-phase +clk-plldig +clk-pwm +clk-qcom +clk-raspberrypi +clk-renesas-pcie +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 +clk-xlnx-clock-wizard +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +cls_u32 +cm109 +cm32181 +cm3232 +cm3323 +cm3605 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cn10k-rng +cnic +cobra +coda +coda-vpu +colibri-vf50-ts +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_8254 +comedi_8255 +comedi_bond +comedi_example_test +comedi_parport +comedi_pci +comedi_test +comedi_usb +comm +contec_pci_dio +cordic +core +corsair-cpro +corsair-psu +cortina +counter +cp210x +cpcap-adc +cpcap-battery +cpcap-charger +cpcap-pwrbutton +cpcap-regulator +cpia2 +cppc_cpufreq +cpr +cptpf +cptvf +cqhci +cramfs +crc-itu-t +crc32_generic +crc4 +crc7 +crct10dif-ce +crg-hi3516cv300 +crg-hi3798cv200 +cros-ec-anx7688 +cros-ec-cec +cros-ec-regulator +cros-ec-sensorhub +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_mkbp_proximity +cros_ec_rpmsg +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_ec_typec +cros_ec_vbc +cros_kbd_led_backlight +cros_peripheral_charger +cros_usbpd-charger +cros_usbpd_logger +cros_usbpd_notify +cryptd +crypto_engine +crypto_safexcel +crypto_user +cs3308 +cs5345 +cs53l32a +cs_dsp +csiostor +ctucanfd +ctucanfd_pci +ctucanfd_platform +curve25519-generic +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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_acpi +cxl_core +cxl_mem +cxl_pci +cxl_pmem +cxl_port +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da9030_battery +da9034-ts +da903x-regulator +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 +da9121-regulator +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_hmem +dax_pmem +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +ddbridge +ddbridge-dummy-fe +de2104x +decnet +defxx +delta-ahe50dc-fan +denali +denali_dt +denali_pci +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +digicolor-usart +diskonchip +dispcc-qcm2290 +dispcc-sc7180 +dispcc-sc7280 +dispcc-sdm845 +dispcc-sm6125 +dispcc-sm6350 +dispcc-sm8250 +display-connector +dl2k +dlhl60d +dlink-dir685-touchkeys +dlm +dln2 +dln2-adc +dm-bio-prison +dm-bufio +dm-cache +dm-cache-smq +dm-clone +dm-crypt +dm-delay +dm-ebs +dm-era +dm-flakey +dm-historical-service-time +dm-integrity +dm-io-affinity +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 +dmc520_edac +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dp83td510 +dpaa2-console +dpaa2-qdma +dpaa2_caam +dpdmai +dpot-dac +dps310 +dps920ab +drbd +drivetemp +drm +drm_cma_helper +drm_display_helper +drm_dp_aux_bus +drm_kms_helper +drm_mipi_dbi +drm_shmem_helper +drm_ttm_helper +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 +dtpm +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-gp-audio +dw-hdmi-i2s-audio +dw-i3c-master +dw-mipi-dsi +dw-xdata-pcie +dw9714 +dw9768 +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-am62 +dwc3-haps +dwc3-imx8mp +dwc3-keystone +dwc3-meson-g12a +dwc3-of-simple +dwc3-pci +dwc3-qcom +dwc3-xilinx +dwmac-altr-socfpga +dwmac-dwc-qos-eth +dwmac-generic +dwmac-imx +dwmac-intel-plat +dwmac-ipq806x +dwmac-loongson +dwmac-mediatek +dwmac-meson +dwmac-meson8b +dwmac-qcom-ethqos +dwmac-rk +dwmac-sun8i +dwmac-visconti +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 +ecc-mtk +ecdh_generic +ecdsa_generic +echainiv +echo +ecrdsa_generic +edt-ft5x06 +ee1004 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efa +efct +efi-pstore +efi_test +efibc +efs +egalax_ts +egalax_ts_serial +ehci-brcm +ehci-fsl +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 +epat +epia +epic100 +eql +erofs +error +esas2r +esd_usb2 +esp4 +esp4_offload +esp6 +esp6_offload +esp_scsi +essiv +et1011c +et131x +et8ek8 +etas_es58x +ethoc +etnaviv +evbug +exc3000 +exfat +extcon-adc-jack +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 +extcon-usbc-tusb320 +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fan53555 +fan53880 +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_seps525 +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 +fbtft +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_pci +fdp +fdp_i2c +fealnx +ff-memless +ffa-module +fieldbus_dev +fintek-cir +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +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 +friq +frpw +fsa4480 +fscache +fsi-core +fsi-master-aspeed +fsi-master-gpio +fsi-master-hub +fsi-occ +fsi-sbefifo +fsi-scom +fsia6b +fsl-dpaa2-eth +fsl-dpaa2-ptp +fsl-dpaa2-switch +fsl-edma +fsl-edma-common +fsl-enetc +fsl-enetc-ierb +fsl-enetc-mdio +fsl-enetc-ptp +fsl-enetc-vf +fsl-ldb +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_ucc_hdlc +fsp-3y +ftdi-elan +ftdi_sio +ftl +ftm-quaddec +ftsteutates +fujitsu_ts +funcore +funeth +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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 +gateworks-gsc +gb-audio-apbridgea +gb-audio-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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-ipq6018 +gcc-ipq806x +gcc-ipq8074 +gcc-mdm9607 +gcc-mdm9615 +gcc-msm8660 +gcc-msm8916 +gcc-msm8939 +gcc-msm8953 +gcc-msm8960 +gcc-msm8974 +gcc-msm8976 +gcc-msm8994 +gcc-msm8996 +gcc-msm8998 +gcc-qcm2290 +gcc-qcs404 +gcc-sc7180 +gcc-sc7280 +gcc-sc8180x +gcc-sc8280xp +gcc-sdm660 +gcc-sdm845 +gcc-sdx55 +gcc-sdx65 +gcc-sm6115 +gcc-sm6125 +gcc-sm6350 +gcc-sm8150 +gcc-sm8250 +gcc-sm8350 +gcc-sm8450 +gdmtty +gdmulte +ge2d +gemini +gen_probe +generic +generic-adc-battery +genet +geneve +genwqe_card +gf2k +gfs2 +ghash-ce +gianfar_driver +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpi +gpio +gpio-74x164 +gpio-74xx-mmio +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-altera +gpio-altera-a10sr +gpio-amd-fch +gpio-amdpt +gpio-arizona +gpio-bd71815 +gpio-bd71828 +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-hisi +gpio-hlwd +gpio-ir-recv +gpio-ir-tx +gpio-janz-ttl +gpio-kempld +gpio-logicvc +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-mlxbf2 +gpio-moxtet +gpio-pca953x +gpio-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-pmic-eic-sprd +gpio-raspberrypi-exp +gpio-rcar +gpio-rdc321x +gpio-regmap +gpio-regulator +gpio-rockchip +gpio-sama5d2-piobu +gpio-sim +gpio-siox +gpio-sl28cpld +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-virtio +gpio-visconti +gpio-wcd934x +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +gpio-xgene-sb +gpio-xgs-iproc +gpio-xlp +gpio-xra1403 +gpio-zynq +gpio-zynqmp-modepin +gpio_backlight +gpio_decoder +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_wdt +gpmi-nand +gpu-sched +gpucc-msm8998 +gpucc-sc7180 +gpucc-sc7280 +gpucc-sdm660 +gpucc-sdm845 +gpucc-sm6350 +gpucc-sm8150 +gpucc-sm8250 +gr_udc +grace +grcan +gre +greybus +grip +grip_mp +gs1662 +gs_usb +gsc-hwmon +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 +gtp +gud +guillemot +gunze +gve +habanalabs +hackrf +hamachi +hampshire +hantro-vpu +hanwang +hbmc-am654 +hci +hci_nokia +hci_uart +hci_vhci +hclge +hclgevf +hd3ss3220 +hd44780 +hd44780_common +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcd +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfpll +hfs +hfsplus +hi311x +hi3660-mailbox +hi556 +hi6210-i2s +hi6220-mailbox +hi6220_reset +hi6421-pmic-core +hi6421-regulator +hi6421-spmi-pmic +hi6421v530-regulator +hi6421v600-irq +hi6421v600-regulator +hi655x-pmic +hi655x-regulator +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +hih6130 +hinic +hip04_eth +hisi-acc-vfio-pci +hisi-rng +hisi-sfc +hisi-spmi-controller +hisi-trng-v2 +hisi504_nand +hisi_femac +hisi_hikey_usb +hisi_hpre +hisi_pcie_pmu +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_uncore_cpa_pmu +hisi_uncore_ddrc_pmu +hisi_uncore_hha_pmu +hisi_uncore_l3c_pmu +hisi_uncore_pa_pmu +hisi_uncore_pmu +hisi_uncore_sllc_pmu +hisi_zip +hix5hd2_gmac +hmc425a +hmc5843_core +hmc5843_i2c +hmc5843_spi +hmc6352 +hms-profinet +hnae +hnae3 +hns-roce-hw-v2 +hns3 +hns_dsaf +hns_enet_drv +hns_mdio +hopper +horus3a +host1x +hostap +hostap_pci +hostap_plx +hp03 +hp206c +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +ht16k33 +htc-pasic3 +hte-tegra194 +hte-tegra194-test +hts221 +hts221_i2c +hts221_spi +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_sock +hv_storvsc +hv_utils +hv_vmbus +hwmon-vid +hwpoison-inject +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +hyperv-keyboard +hyperv_drm +hyperv_fb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-altera +i2c-amd756 +i2c-amd8111 +i2c-apple +i2c-arb-gpio-challenge +i2c-bcm-iproc +i2c-bcm2835 +i2c-brcmstb +i2c-cbus-gpio +i2c-ccgx-ucsi +i2c-cp2615 +i2c-cros-ec-tunnel +i2c-demux-pinctrl +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-fsi +i2c-gpio +i2c-hid +i2c-hid-acpi +i2c-hid-of +i2c-hid-of-goodix +i2c-hisi +i2c-hix5hd2 +i2c-i801 +i2c-imx +i2c-imx-lpi2c +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-meson +i2c-mlxbf +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-pca-platform +i2c-piix4 +i2c-pxa +i2c-qcom-cci +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-tegra +i2c-tegra-bpmp +i2c-thunderx +i2c-tiny-usb +i2c-versatile +i2c-via +i2c-viapro +i2c-viperboard +i2c-virtio +i2c-xgene-slimpro +i2c-xiic +i2c-xlp9xx +i3c +i3c-master-cdns +i40e +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-bcm-voter +icc-osm-l3 +icc-rpmh +icc-smd-rpm +ice +ice40-spi +icp +icp10100 +icp_multi +icplus +ics932s401 +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +img-ascii-lcd +img-i2s-in +img-i2s-out +img-parallel-out +img-spdif-in +img-spdif-out +imm +imon +imon_raw +ims-pcu +imx-audio-rpmsg +imx-bus +imx-common +imx-cpufreq-dt +imx-dcss +imx-dma +imx-dsp +imx-interconnect +imx-mailbox +imx-media-common +imx-mipi-csis +imx-pcm-dma +imx-pcm-rpmsg +imx-pxp +imx-sdma +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx2_wdt +imx319 +imx334 +imx335 +imx355 +imx412 +imx6q-cpufreq +imx6ul_tsc +imx7-media-csi +imx7d_adc +imx7ulp_wdt +imx8m-ddrc +imx8mm-interconnect +imx8mm_thermal +imx8mn-interconnect +imx8mq-interconnect +imx8mq-mipi-csi2 +imx8qxp-adc +imx_dsp_rproc +imx_keypad +imx_rproc +imx_sc_key +imx_sc_thermal +imx_sc_wdt +imx_thermal +imxfb +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int51x1 +intel-m10-bmc +intel-m10-bmc-hwmon +intel-nand-controller +intel-qep +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 +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io-domain +io_edgeport +io_ti +ionic +iosm +iowarrior +ip5xxx_power +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_twos +ip_vs_wlc +ip_vs_wrr +ip_vti +ipa +ipack +ipaq +ipcomp +ipcomp6 +iphase +ipheth +ipip +ipmb_dev_int +ipmi_devintf +ipmi_ipmb +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-bcm7120-l2 +irq-madera +irq-pruss-intc +irq-qcom-mpm +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl7998x +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +it87 +it913x +itd1000 +ite-cir +ite-it6505 +ite-it66121 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +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 +k3_bandgap +k3_j72xx_bandgap +k3dma +kafs +kalmia +kaweth +kbic +kbtab +kcm +kcomedilib +ke_counter +keembay-ocs-aes +keembay-ocs-ecc +keembay-ocs-hcu +keembay_wdt +kempld-core +kempld_wdt +kernelcapi +keyspan +keyspan_pda +keyspan_remote +keywrap +kfifo_buf +khadas-mcu +khadas_mcu_fan +kheaders +kirin-drm +kl5kusb105 +kmb-drm +kmem +kmx61 +kobil_sct +komeda +kpss-xcc +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lan966x-switch +lan966x_serdes +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +layerscape_edac_mod +lcc-ipq806x +lcc-mdm9615 +lcc-msm8960 +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +led_bl +leds-88pm860x +leds-aat1290 +leds-adp5520 +leds-an30259a +leds-as3645a +leds-aw2013 +leds-bcm6328 +leds-bcm6358 +leds-bd2802 +leds-blinkm +leds-cpcap +leds-cr0014114 +leds-da903x +leds-da9052 +leds-dac124s085 +leds-el15203000 +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-lp50xx +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-mt6360 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pwm +leds-pwm-multicolor +leds-qcom-lpg +leds-regulator +leds-rt4505 +leds-rt8515 +leds-sc27xx-bltc +leds-sgm3140 +leds-spi-byte +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +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-tty +ledtrig-usbport +legousbtower +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libarc4 +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +lima +line-display +lineage-pem +linear +linkstation-poweroff +liquidio +liquidio_vf +lis3lv02d +lis3lv02d_i2c +liteuart +litex_liteeth +litex_mmc +litex_soc_ctrl +lkkbd +ll_temac +llc +llc2 +llcc-qcom +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 +lmh +lmp91000 +lms283gf05 +lms501kf03 +lnbh25 +lnbh29 +lnbp21 +lnbp22 +lochnagar-hwmon +lochnagar-regulator +lockd +lontium-lt8912b +lontium-lt9211 +lontium-lt9611 +lontium-lt9611uxc +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 +lpass-gfm-sm8250 +lpassaudiocc-sc7280 +lpasscc-sc7280 +lpasscc-sdm845 +lpasscorecc-sc7180 +lpasscorecc-sc7280 +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +lt3651-charger +ltc1660 +ltc2471 +ltc2485 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvds-codec +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_pci +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-88x2222 +marvell-cesa +marvell10g +marvell_cn10k_ddr_pmu +marvell_cn10k_tad_pmu +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max14656_charger_detector +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +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 +max77714 +max77802-regulator +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +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 +max9271 +max9286 +max9611 +max96712 +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 +mchp48l640 +mcp16502 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-i2c +mctp-serial +md-cluster +md4 +mdc800 +mdev +mdio +mdio-bcm-unimac +mdio-cavium +mdio-gpio +mdio-hisi-femac +mdio-i2c +mdio-ipq4019 +mdio-ipq8064 +mdio-mscc-miim +mdio-mux-gpio +mdio-mux-meson-g12a +mdio-mux-mmioreg +mdio-mux-multiplexer +mdio-mvusb +mdio-octeon +mdio-thunder +mdio-xgene +mdt_loader +me4000 +me_daq +mediatek +mediatek-cpufreq +mediatek-cpufreq-hw +mediatek-drm +mediatek-drm-hdmi +mediatek-ge +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-ir-tx +meson-mx-sdio +meson-rng +meson-vdec +meson_dw_hdmi +meson_gxbb_wdt +meson_nand +meson_saradc +meson_wdt +metro-usb +metronomefb +mf6x4 +mgag200 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip-tcb-capture +microchip_t1 +microread +microread_i2c +microtek +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlx_wdt +mlxbf-bootctl +mlxbf-pmc +mlxbf-tmfifo +mlxbf_gige +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxreg-lc +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +mma7455_core +mma7455_i2c +mma7455_spi +mma7660 +mma8450 +mma8452 +mma9551 +mma9551_core +mma9553 +mmc35240 +mmc_hsq +mmc_spi +mmcc-apq8084 +mmcc-msm8960 +mmcc-msm8974 +mmcc-msm8994 +mmcc-msm8996 +mmcc-msm8998 +mmcc-sdm660 +mms114 +mn88443x +mn88472 +mn88473 +mos7720 +mos7840 +most_cdev +most_core +most_dim2 +most_i2c +most_net +most_snd +most_usb +most_video +motorcomm +motorola-cpcap +moxa +moxtet +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp5416 +mp8859 +mp886x +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpq7920 +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +mscc +mscc_felix +mscc_ocelot +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi001 +msi2500 +msm +msp3400 +mspro_block +mss-sc7180 +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-accdet +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6380-regulator +mt6397 +mt6397-regulator +mt6577_auxadc +mt6779-keypad +mt6797-mt6351 +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt8183-da7219-max98357 +mt8183-mt6358-ts3a227-max98357 +mt8192-mt6359-rt1015-rt5682 +mt8195-mt6359 +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd +mtd_blkdevs +mtd_dataflash +mtdblock +mtdblock_ro +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-adsp-common +mtk-adsp-ipc +mtk-adsp-mailbox +mtk-btcvsd +mtk-cir +mtk-cmdq-helper +mtk-cmdq-mailbox +mtk-cqdma +mtk-devapc +mtk-hsdma +mtk-pmic-keys +mtk-pmic-wrap +mtk-rng +mtk-sd +mtk-smi +mtk-uart-apdma +mtk-vpu +mtk_nand +mtk_rpmsg +mtk_scp +mtk_scp_ipi +mtk_t7xx +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 +mxc-jpeg-encdec +mxc4005 +mxc6255 +mxc_nand +mxc_w1 +mxcmmc +mxic_nand +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxser +mxsfb +mxuport +myrb +myri10ge +myrs +n5pf +n_gsm +n_hdlc +nand +nandcore +nandsim +national +natsemi +nau7802 +navman +nbd +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct6775-core +nct6775-i2c +nct7802 +nct7904 +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +ni_routing +ni_tio +ni_tiocmd +ni_usb6501 +nicpf +nicstar +nicvf +nilfs2 +nitro_enclaves +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_epf +ntb_hw_idt +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +ntxec +null_blk +nuvoton-cir +nvec +nvec_kbd +nvec_paz00 +nvec_power +nvec_ps2 +nvidiafb +nvme +nvme-apple +nvme-core +nvme-fabrics +nvme-fc +nvme-loop +nvme-rdma +nvme-tcp +nvmem-apple-efuses +nvmem-bcm-ocotp +nvmem-imx-iim +nvmem-imx-ocotp +nvmem-imx-ocotp-scu +nvmem-layerscape-sfp +nvmem-rave-sp-eeprom +nvmem-reboot-mode +nvmem-rmem +nvmem-rockchip-otp +nvmem-sc27xx-efuse +nvmem_meson_mx_efuse +nvmem_qcom-spmi-sdam +nvmem_qfprom +nvmem_rockchip_efuse +nvmem_snvs_lpgpr +nvmem_sprd_efuse +nvmem_sunxi_sid +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvsw-sn2201 +nwl-dsi +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-ptn3460 +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocmem +ocrdma +octeon_ep +octeontx-cpt +octeontx-cptvf +of-fpga-region +of_mmc_spi +of_pmem +of_xilinx_wdt +ofb +ofpart +og01a1b +ohci-platform +omap-mailbox +omap-rng +omap2_nand +omap4-keypad +omap_elm +omap_hwspinlock +omfs +omninet +on20 +on26 +onenand +open-dice +opencores-kbd +openvswitch +opt3001 +optee +optee-rng +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +oti6858 +otm3225a +otx2_ptp +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov2740 +ov5640 +ov5645 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9282 +ov9640 +ov9650 +ov9734 +overlay +owl-dma +owl-emac +owl-mmc +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +palmas-pwrbutton +palmas-regulator +palmas_gpadc +pandora_bl +panel +panel-abt-y030xx067a +panel-arm-versatile +panel-asus-z00t-tm5p5-n35596 +panel-boe-bf060y8m-aj0 +panel-boe-himax8279d +panel-boe-tv101wum-nl6 +panel-dsi-cm +panel-edp +panel-elida-kd35t133 +panel-feixin-k101-im2ba02 +panel-feiyang-fy07024di26a30d +panel-ilitek-ili9322 +panel-ilitek-ili9341 +panel-ilitek-ili9881c +panel-innolux-ej030na +panel-innolux-p079zca +panel-jdi-fhd-r63452 +panel-jdi-lt070me05000 +panel-khadas-ts050 +panel-kingdisplay-kd097d04 +panel-leadtek-ltk050h3146w +panel-leadtek-ltk500hd1829 +panel-lg-lb035q02 +panel-lg-lg4573 +panel-lvds +panel-mantix-mlaf057we51 +panel-mipi-dbi +panel-nec-nl8048hl11 +panel-newvision-nv3052c +panel-novatek-nt35510 +panel-novatek-nt35560 +panel-novatek-nt35950 +panel-novatek-nt36672a +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-ronbo-rb070d30 +panel-samsung-atna33xc20 +panel-samsung-db7430 +panel-samsung-ld9040 +panel-samsung-s6d16d0 +panel-samsung-s6d27a1 +panel-samsung-s6e3ha2 +panel-samsung-s6e63j0x03 +panel-samsung-s6e63m0 +panel-samsung-s6e63m0-dsi +panel-samsung-s6e63m0-spi +panel-samsung-s6e88a0-ams452ef01 +panel-samsung-s6e8aa0 +panel-samsung-sofef00 +panel-seiko-43wvf1g +panel-sharp-lq101r1sx01 +panel-sharp-ls037v7dw01 +panel-sharp-ls043t1le01 +panel-sharp-ls060t1sx01 +panel-simple +panel-sitronix-st7701 +panel-sitronix-st7703 +panel-sitronix-st7789v +panel-sony-acx565akm +panel-sony-tulip-truly-nt35521 +panel-tdo-tl070wsh30 +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +panel-tpo-tpg110 +panel-truly-nt35597 +panel-visionox-rm69299 +panel-widechips-ws2401 +panel-xinpeng-xpp055c272 +panfrost +parade-ps8622 +parade-ps8640 +paride +parkbd +parman +parport +parport_ax88796 +parport_pc +parport_serial +parser_trx +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 +pc300too +pc87360 +pc87427 +pca9450-regulator +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-epf-ntb +pci-hyperv +pci-hyperv-intf +pci-pf-stub +pci-stub +pci200syn +pcie-apple +pcie-brcmstb +pcie-iproc +pcie-iproc-platform +pcie-mediatek-gen3 +pcie-qcom-ep +pcie-rockchip-host +pcie-tegra194 +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia_core +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcs-lynx +pcs_xpcs +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +pdr_interface +peak_pci +peak_pciefd +peak_usb +peci +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pf8x00-regulator +pfr_telemetry +pfr_update +pfuze100-regulator +pg +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-salvo +phy-cadence-sierra +phy-cadence-torrent +phy-can-transceiver +phy-cpcap-usb +phy-exynos-usb2 +phy-fsl-imx8-mipi-dphy +phy-fsl-imx8m-pcie +phy-fsl-imx8mq-usb +phy-fsl-lynx-28g +phy-generic +phy-gmii-sel +phy-gpio-vbus-usb +phy-hi3660-usb3 +phy-hi3670-pcie +phy-hi3670-usb3 +phy-hi6220-usb +phy-hisi-inno-usb2 +phy-histb-combphy +phy-intel-keembay-emmc +phy-intel-keembay-usb +phy-isp1301 +phy-j721e-wiz +phy-mapphone-mdm6600 +phy-meson-axg-mipi-dphy +phy-meson-g12a-usb2 +phy-meson-g12a-usb3-pcie +phy-meson-gxl-usb2 +phy-meson8b-usb2 +phy-mtk-hdmi-drv +phy-mtk-mipi-dsi-drv +phy-mtk-tphy +phy-mtk-ufs +phy-mtk-xsphy +phy-mvebu-a3700-comphy +phy-mvebu-a3700-utmi +phy-mvebu-cp110-comphy +phy-mvebu-cp110-utmi +phy-ocelot-serdes +phy-omap-usb2 +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-apq8064-sata +phy-qcom-edp +phy-qcom-ipq4019-usb +phy-qcom-ipq806x-sata +phy-qcom-ipq806x-usb +phy-qcom-pcie2 +phy-qcom-qmp +phy-qcom-qusb2 +phy-qcom-snps-femto-v2 +phy-qcom-usb-hs +phy-qcom-usb-hs-28nm +phy-qcom-usb-hsic +phy-qcom-usb-ss +phy-rcar-gen2 +phy-rcar-gen3-pcie +phy-rcar-gen3-usb2 +phy-rcar-gen3-usb3 +phy-rockchip-dp +phy-rockchip-dphy-rx0 +phy-rockchip-emmc +phy-rockchip-inno-csidphy +phy-rockchip-inno-dsidphy +phy-rockchip-inno-hdmi +phy-rockchip-inno-usb2 +phy-rockchip-naneng-combphy +phy-rockchip-pcie +phy-rockchip-typec +phy-rockchip-usb +phy-sun4i-usb +phy-sun50i-usb3 +phy-sun6i-mipi-dphy +phy-tahvo +phy-tegra-usb +phy-tegra-xusb +phy-tegra194-p2u +phy-tusb1210 +phy-zynqmp +phylink +physmap +pi3usb30532 +pi433 +pim4328 +pinctrl-apple-gpio +pinctrl-apq8064 +pinctrl-apq8084 +pinctrl-axp209 +pinctrl-bcm4908 +pinctrl-da9062 +pinctrl-imx8ulp +pinctrl-imx93 +pinctrl-ipq4019 +pinctrl-ipq6018 +pinctrl-ipq8064 +pinctrl-ipq8074 +pinctrl-keembay +pinctrl-lochnagar +pinctrl-lpass-lpi +pinctrl-madera +pinctrl-max77620 +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-mdm9607 +pinctrl-mdm9615 +pinctrl-meson-s4 +pinctrl-msm8226 +pinctrl-msm8660 +pinctrl-msm8916 +pinctrl-msm8953 +pinctrl-msm8960 +pinctrl-msm8976 +pinctrl-msm8994 +pinctrl-msm8996 +pinctrl-msm8998 +pinctrl-msm8x74 +pinctrl-mt6779 +pinctrl-qcm2290 +pinctrl-qcs404 +pinctrl-qdf2xxx +pinctrl-rk805 +pinctrl-sc7180 +pinctrl-sc7280 +pinctrl-sc7280-lpass-lpi +pinctrl-sc8180x +pinctrl-sc8280xp +pinctrl-sdm660 +pinctrl-sdm845 +pinctrl-sdx55 +pinctrl-sdx65 +pinctrl-sm6115 +pinctrl-sm6125 +pinctrl-sm6350 +pinctrl-sm8150 +pinctrl-sm8250 +pinctrl-sm8250-lpass-lpi +pinctrl-sm8350 +pinctrl-sm8450 +pinctrl-spmi-gpio +pinctrl-spmi-mpp +pinctrl-ssbi-gpio +pinctrl-ssbi-mpp +pinctrl-stmfx +pinctrl-zynqmp +ping +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 +platform_profile +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pm8916_wdt +pm8941-pwrkey +pm8xxx-vibrator +pmbus +pmbus_core +pmc551 +pmcraid +pms7003 +pn532_uart +pn533 +pn533_i2c +pn533_usb +pn544 +pn544_i2c +pn_pep +poly1305-neon +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +pru_rproc +pruss +ps2-gpio +ps2mult +psample +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptp-qoriq +ptp_clockmatrix +ptp_dte +ptp_idt82p33 +ptp_ines +ptp_kvm +ptp_ocp +pulse8-cec +pulsedlight-lidar-lite-v2 +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvcalls-front +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-atmel-hlcdc +pwm-atmel-tcb +pwm-bcm-iproc +pwm-bcm2835 +pwm-beeper +pwm-berlin +pwm-brcmstb +pwm-cros-ec +pwm-dwc +pwm-fan +pwm-fsl-ftm +pwm-hibvt +pwm-imx-tpm +pwm-imx1 +pwm-imx27 +pwm-iqs620a +pwm-ir-tx +pwm-keembay +pwm-lp3943 +pwm-mediatek +pwm-meson +pwm-mtk-disp +pwm-ntxec +pwm-pca9685 +pwm-raspberrypi-poe +pwm-rcar +pwm-regulator +pwm-renesas-tpu +pwm-rockchip +pwm-sl28cpld +pwm-sprd +pwm-sun4i +pwm-tegra +pwm-tiecap +pwm-tiehrpwm +pwm-twl +pwm-twl-led +pwm-vibra +pwm-visconti +pwm-xilinx +pwm_bl +pwrseq_emmc +pwrseq_sd8787 +pwrseq_simple +pxa168_eth +pxa27x_udc +pxe1610 +pxrc +q54sj108a2 +q6adm +q6afe +q6afe-clocks +q6afe-dai +q6apm-dai +q6apm-lpass-dais +q6asm +q6asm-dai +q6core +q6prm +q6prm-clocks +q6routing +q6sstop-qcs404 +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-labibb-regulator +qcom-pm8008 +qcom-pmic-typec +qcom-pon +qcom-rng +qcom-rpmh-regulator +qcom-spmi-adc-tm5 +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-pmic +qcom-spmi-temp-alarm +qcom-spmi-vadc +qcom-vadc-common +qcom-wdt +qcom-wled +qcom_aoss +qcom_bam_dmux +qcom_common +qcom_edac +qcom_eud +qcom_geni_serial +qcom_glink +qcom_glink_rpm +qcom_glink_smem +qcom_gsbi +qcom_hwspinlock +qcom_nandc +qcom_pil_info +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_stats +qcom_sysmon +qcom_tsens +qcom_usb_vbus-regulator +qcomsmempart +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-msm8916 +qnoc-msm8939 +qnoc-msm8974 +qnoc-msm8996 +qnoc-qcm2290 +qnoc-qcs404 +qnoc-sc7180 +qnoc-sc7280 +qnoc-sc8180x +qnoc-sc8280xp +qnoc-sdm660 +qnoc-sdm845 +qnoc-sdx55 +qnoc-sdx65 +qnoc-sm8150 +qnoc-sm8250 +qnoc-sm8350 +qnoc-sm8450 +qnx4 +qnx6 +qoriq-cpufreq +qoriq_thermal +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcar-csi2 +rcar-dmac +rcar-du-drm +rcar-fcp +rcar-isp +rcar-vin +rcar_can +rcar_canfd +rcar_cmm +rcar_drif +rcar_dw_hdmi +rcar_fdp1 +rcar_gen3_thermal +rcar_jpu +rcar_lvds +rcar_mipi_dsi +rcar_rproc +rcar_thermal +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_rxe +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +realtek-mdio +realtek-smi +reboot-mode +redboot +redrat3 +reed_solomon +regmap-ac97 +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +regmap-spmi +regmap-w1 +regulator-haptic +reiserfs +renesas-nand-controller +renesas-rpc-if +renesas_sdhi_core +renesas_sdhi_internal_dmac +renesas_sdhi_sys_dmac +renesas_usb3 +renesas_usbhs +renesas_wdt +repaper +reset-a10sr +reset-brcmstb +reset-hi3660 +reset-meson-audio-arb +reset-qcom-pdc +reset-raspberrypi +reset-rzg2l-usbphy-ctrl +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rmtfs_mem +rn5t618 +rn5t618-adc +rn5t618-regulator +rn5t618_power +rn5t618_wdt +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rockchip-dfi +rockchip-isp1 +rockchip-nand-controller +rockchip-rga +rockchip-vdec +rockchip_saradc +rockchip_thermal +rockchipdrm +rocker +rohm-bd71828 +rohm-bd718x7 +rohm-bd9576 +rohm-regulator +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpi-panel-attiny-regulator +rpmpd +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsmu-i2c +rsmu-spi +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-mt2712 +rtc-mt6397 +rtc-mt7622 +rtc-mxc +rtc-mxc_v2 +rtc-ntxec +rtc-optee +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-rc5t619 +rtc-rk808 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv3032 +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-tegra +rtc-tps6586x +rtc-tps65910 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtc-zynqmp +rtd520 +rti800 +rti802 +rti_wdt +rtl2830 +rtl2832 +rtl2832_sdr +rtl8150 +rtl8187 +rtl8188ee +rtl818x_pci +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192ee +rtl8192se +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rvu_af +rvu_cptpf +rvu_cptvf +rvu_mbox +rvu_nicpf +rvu_nicvf +rx51_battery +rxrpc +rz-dmac +rza_wdt +rzg2l_adc +rzg2l_thermal +rzg2l_wdt +rzn1_wdt +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +s526 +s5c73m3 +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s5k4ecgx +s5k5baf +s5k6a3 +s5k6aa +s5m8767 +s626 +s6sy761 +s921 +sa2ul +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-go7007 +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +sahara +sample-trace-array +samsung-keypad +samsung-sxgbe +samsung_tty +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 +sbrmi +sbs-battery +sbs-charger +sbs-manager +sbsa_gwdt +sbtsi_temp +sc16is7xx +sc2731-regulator +sc2731_charger +sc27xx-poweroff +sc27xx-vibra +sc27xx_adc +sc27xx_fuel_gauge +sc92031 +sc9860-clk +sc9863a-clk +sca3000 +sca3300 +scd30_core +scd30_i2c +scd30_serial +scd4x +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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-regulator +scmi_iio +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-milbeaut +sdhci-msm +sdhci-of-arasan +sdhci-of-aspeed +sdhci-of-at91 +sdhci-of-dwcmshc +sdhci-of-esdhc +sdhci-of-sparx5 +sdhci-omap +sdhci-pci +sdhci-pltfm +sdhci-pxav3 +sdhci-sprd +sdhci-tegra +sdhci-xenon-driver +sdhci_am654 +sdhci_f_sdh30 +sdio_uart +sensehat-joystick +sensorhub +serial-tegra +serial_ir +serio_raw +sermouse +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sh-sci +sh_eth +sh_mmcif +sh_mobile_lcdcfb +sha1-ce +sha2-ce +sha256-arm64 +sha3-ce +sha3_generic +sha512-arm64 +sha512-ce +shark2 +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sifive +sii902x +sii9234 +sil-sii8620 +sil164 +silead +simple-bridge +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +sis190 +sis5595 +sis900 +sis_i2c +sisfb +sisusbvga +sit +siw +sja1000 +sja1000_isa +sja1000_platform +sja1105 +skfp +skge +sky2 +sky81452 +sky81452-backlight +sky81452-regulator +sl28cpld-hwmon +sl28cpld_wdt +sl811-hcd +slcan +slg51000-regulator +slic_ds26522 +slicoss +slim-qcom-ctrl +slim-qcom-ngd-ctrl +slimbus +slip +slram +sm2_generic +sm3 +sm3-ce +sm3_generic +sm4 +sm4-ce +sm4-ce-cipher +sm4-neon +sm4_generic +sm501 +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc_diag +smd-rpm +smem +smipcie +smm665 +smp2p +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsm +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-acp-config +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-bcm2835 +snd-bebob +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs8427 +snd-ctl-led +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-cs8409 +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-cs-dsp-ctls +snd-hda-intel +snd-hda-scodec-cs35l41 +snd-hda-scodec-cs35l41-i2c +snd-hda-scodec-cs35l41-spi +snd-hda-tegra +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-sdw-acpi +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-pcm +snd-pcm-dmaengine +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-q6apm +snd-q6dsp-common +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-generic +snd-serial-u16550 +snd-soc-63xx +snd-soc-ac97 +snd-soc-acp-da7219mx98357-mach +snd-soc-acp-rt5645-mach +snd-soc-acpi +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +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-armada-370-db +snd-soc-audio-graph-card +snd-soc-audio-graph-card2 +snd-soc-audio-graph-card2-custom-sample +snd-soc-aw8738 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-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-asoc-card +snd-soc-fsl-asrc +snd-soc-fsl-aud2htx +snd-soc-fsl-audmix +snd-soc-fsl-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-ssi +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmix +snd-soc-imx-audmux +snd-soc-imx-card +snd-soc-imx-es8328 +snd-soc-imx-hdmi +snd-soc-imx-rpmsg +snd-soc-imx-sgtl5000 +snd-soc-imx-spdif +snd-soc-inno-rk3036 +snd-soc-j721e-evm +snd-soc-kirkwood +snd-soc-kmb_platform +snd-soc-lochnagar-sc +snd-soc-lpass-apq8016 +snd-soc-lpass-cdc-dma +snd-soc-lpass-cpu +snd-soc-lpass-hdmi +snd-soc-lpass-ipq806x +snd-soc-lpass-macro-common +snd-soc-lpass-platform +snd-soc-lpass-rx-macro +snd-soc-lpass-sc7180 +snd-soc-lpass-sc7280 +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +snd-soc-max9860 +snd-soc-max9867 +snd-soc-max98927 +snd-soc-meson-aiu +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-card-utils +snd-soc-meson-codec-glue +snd-soc-meson-g12a-toacodec +snd-soc-meson-g12a-tohdmitx +snd-soc-meson-gx-sound-card +snd-soc-meson-t9015 +snd-soc-mikroe-proto +snd-soc-msm8916-analog +snd-soc-msm8916-digital +snd-soc-mt6351 +snd-soc-mt6358 +snd-soc-mt6359 +snd-soc-mt6660 +snd-soc-mt6797-afe +snd-soc-mt8183-afe +snd-soc-mt8192-afe +snd-soc-mt8195-afe +snd-soc-mtk-common +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +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-pcm5102a +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-rk817 +snd-soc-rl6231 +snd-soc-rockchip-i2s +snd-soc-rockchip-i2s-tdm +snd-soc-rockchip-max98090 +snd-soc-rockchip-pdm +snd-soc-rockchip-rt5645 +snd-soc-rockchip-spdif +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1015p +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +snd-soc-rt5514 +snd-soc-rt5514-spi +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5659 +snd-soc-rt5663 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt5682-i2c +snd-soc-rt5682-sdw +snd-soc-rt5682s +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-rz-ssi +snd-soc-sc7180 +snd-soc-sc7280 +snd-soc-sdm845 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-sm8250 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-sprd-platform +snd-soc-ssm2305 +snd-soc-ssm2518 +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-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tegra-audio-graph-card +snd-soc-tegra-machine +snd-soc-tegra-pcm +snd-soc-tegra-wm8903 +snd-soc-tegra186-asrc +snd-soc-tegra186-dspk +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra210-admaif +snd-soc-tegra210-adx +snd-soc-tegra210-ahub +snd-soc-tegra210-amx +snd-soc-tegra210-dmic +snd-soc-tegra210-i2s +snd-soc-tegra210-mixer +snd-soc-tegra210-mvc +snd-soc-tegra210-sfc +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-test-component +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-ti-edma +snd-soc-ti-sdma +snd-soc-ti-udma +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8994 +snd-soc-wm9712 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +snd-sof +snd-sof-imx8 +snd-sof-imx8m +snd-sof-mt8186 +snd-sof-mt8195 +snd-sof-of +snd-sof-utils +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-variax +snd-usbmidi-lib +snd-util-mem +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 +socfpga +socfpga-a10 +socinfo +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +soundcore +soundwire-bus +soundwire-cadence +soundwire-generic-allocation +soundwire-intel +soundwire-qcom +sp2 +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +sparx5-switch +sparx5-temp +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-armada-3700 +spi-axi-spi-engine +spi-bcm-qspi +spi-bcm2835 +spi-bcm2835aux +spi-bitbang +spi-brcmstb-qspi +spi-butterfly +spi-cadence +spi-cadence-quadspi +spi-cadence-xspi +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-fsi +spi-fsl-dspi +spi-fsl-lpspi +spi-fsl-qspi +spi-geni-qcom +spi-gpio +spi-hisi-kunpeng +spi-hisi-sfc-v3xx +spi-imx +spi-iproc-qspi +spi-lm70llp +spi-loopback-test +spi-meson-spicc +spi-meson-spifc +spi-mt65xx +spi-mtk-nor +spi-mtk-snfi +spi-mux +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-rockchip-sfc +spi-rpc-if +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-tegra114 +spi-tegra20-sflash +spi-tegra20-slink +spi-tegra210-quad +spi-thunderx +spi-tle62x0 +spi-xcomm +spi-xlp +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spl +spmi +spmi-mtk-pmif +spmi-pmic-arb +sprd-dma +sprd-drm +sprd-iommu +sprd-mailbox +sprd-mcdt +sprd-sc27xx-spi +sprd_hwspinlock +sprd_serial +sprd_thermal +sprd_wdt +sps30 +sps30_i2c +sps30_serial +sr-thermal +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +stpmic1 +stpmic1_onkey +stpmic1_regulator +stpmic1_wdt +stratix10-rsu +stratix10-soc +stratix10-svc +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +sun4i-backend +sun4i-csi +sun4i-drm +sun4i-drm-hdmi +sun4i-frontend +sun4i-gpadc +sun4i-ss +sun4i-tcon +sun4i_tv +sun50i-codec-analog +sun50i-cpufreq-nvmem +sun6i-csi +sun6i-dma +sun6i-rtc-ccu +sun6i_drc +sun6i_hwspinlock +sun6i_mipi_dsi +sun8i-a33-mbus +sun8i-adda-pr-regmap +sun8i-ce +sun8i-codec +sun8i-codec-analog +sun8i-di +sun8i-drm-hdmi +sun8i-mixer +sun8i-rotate +sun8i-ss +sun8i_tcon_top +sun8i_thermal +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sunxi +sunxi-cedrus +sunxi-cir +sunxi-mmc +sunxi-rsb +sunxi_wdt +sur40 +surface3_spi +surface_acpi_notify +surface_aggregator +surface_aggregator_cdev +surface_aggregator_registry +surface_battery +surface_charger +surface_dtx +surface_gpe +surface_hid +surface_hid_core +surface_hotplug +surface_kbd +surface_platform_profile +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sy8106a-regulator +sy8824x +sy8827n +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_gt +synopsys_edac +syscon-reboot-mode +syscopyarea +sysfillrect +sysimgblt +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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 +tc358762 +tc358764 +tc358767 +tc358768 +tc358775 +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_maxim +tcpci_mt6360 +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 +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tee +tee_bnxt_fw +tef6862 +tegra-aconnect +tegra-bpmp-thermal +tegra-drm +tegra-gmi +tegra-kbc +tegra-vde +tegra-video +tegra-xudc +tegra186-cpufreq +tegra186-gpc-dma +tegra194-cpufreq +tegra210-adma +tegra210-emc +tegra30-devfreq +tegra_cec +tegra_nand +tegra_wdt +tehuti +teranetics +test_blackhole_dev +test_bpf +test_power +tg3 +thc63lvd1024 +thermal-generic-adc +thermal_mmio +thmc50 +ths7303 +ths8200 +thunder_bgx +thunder_xcv +thunderbolt +thunderbolt-net +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-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-am65-cpsw-nuss +ti-cal +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-j721e-ufs +ti-lmu +ti-sn65dsi83 +ti-sn65dsi86 +ti-tfp410 +ti-tlc4541 +ti-tpd12s015 +ti-tsc2046 +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_k3_dsp_remoteproc +ti_k3_r5_remoteproc +ti_sci_pm_domains +ti_usb_3410_5052 +tidss +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_atmel +tpm_ftpm_tee +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_infineon +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_tis_synquacer +tpm_vtpm_proxy +tps23861 +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps6286x-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 +tqmx86 +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +ucan +ucb1400_core +ucb1400_ts +ucc_uart +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_hv_generic +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_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 +usdhi6rol0 +userio +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +v3d +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-h264 +v4l2-jpeg +v4l2-mem2mem +v4l2-tpg +v4l2-vp9 +vc4 +vcan +vchiq +vcnl3020 +vcnl4000 +vcnl4035 +vctrl-regulator +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +venus-core +venus-dec +venus-enc +versal-fpga +ves1820 +ves1x93 +veth +vexpress-hwmon +vexpress-regulator +vf610_adc +vf610_dac +vfio +vfio-amba +vfio-fsl-mc +vfio-pci +vfio-pci-core +vfio-platform +vfio-platform-amdxgbe +vfio-platform-base +vfio-platform-calxedaxgmac +vfio_iommu_type1 +vfio_platform_bcmflexrm +vfio_virqfd +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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-sc7180 +videocc-sc7280 +videocc-sdm845 +videocc-sm8150 +videocc-sm8250 +videodev +vim2m +vimc +viperboard +viperboard_adc +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_mem +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +visconti_wdt +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 +vmgenid +vmk80xx +vmw_vmci +vmw_vsock_virtio_transport +vmw_vsock_virtio_transport_common +vmw_vsock_vmci_transport +vmwgfx +vp27smpx +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vqmmc-ipq4019-regulator +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wcnss_ctrl +wd719x +wdat_wdt +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +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 +wusb3801 +wwan_hwsim +x25 +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xen-blkback +xen-evtchn +xen-fbfront +xen-front-pgdir-shbuf +xen-gntalloc +xen-gntdev +xen-hcd +xen-kbdfront +xen-netback +xen-pciback +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-hcd +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xhci-tegra +xilinx-ams +xilinx-csi2rxss +xilinx-pr-decoupler +xilinx-spi +xilinx-tpg +xilinx-video +xilinx-vtc +xilinx-xadc +xilinx_can +xilinx_dma +xilinx_dpdma +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_sdfec +xilinx_uartps +xilinxfb +xillybus_class +xillybus_core +xillybus_of +xillybus_pcie +xillyusb +xiphera-trng +xircom_cb +xlnx_vcu +xor +xor-neon +xpad +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yenta_socket +yurex +z3fold +zaurus +zavl +zcommon +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zfs +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zlua +znvpair +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd +zunicode +zynqmp-aes-gcm +zynqmp-dpsub +zynqmp-fpga +zynqmp-sha +zynqmp_dma +zzstd --- linux-5.19.0.orig/debian.master/abi/arm64/generic-64k.retpoline +++ linux-5.19.0/debian.master/abi/arm64/generic-64k.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/arm64/generic.compiler +++ linux-5.19.0/debian.master/abi/arm64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/arm64/generic.modules +++ linux-5.19.0/debian.master/abi/arm64/generic.modules @@ -0,0 +1,7184 @@ +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_aspeed_vuart +8250_bcm7271 +8250_exar +8250_men_mcb +8250_pericom +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_fd +9pnet_rdma +9pnet_virtio +9pnet_xen +a100u2w +a3d +a53-pll +a7-pll +a8293 +aacraid +aat2870-regulator +aat2870_bl +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_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ad9467 +ad9523 +ad9832 +ad9834 +ad_sigma_delta +ada4250 +adc-joystick +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 +adi-axi-adc +adiantum +adin +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv1014 +admv4420 +admv8818 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv748x +adv7511 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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_tegra +ahci_xgene +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +al3320a +alcor +alcor_pci +algif_aead +algif_hash +algif_rng +algif_skcipher +alim7101_wdt +allegro +altera-ci +altera-cvp +altera-fpga2sdram +altera-freeze-bridge +altera-hps2fpga +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 +am65-cpts +amba-clcd +amba-pl010 +ambakmi +amc6821 +amd +amd-xgbe +amd5536udc_pci +amd8111e +amdgpu +amlogic-gxl-crypto +amlogic_thermal +amphion-vpu +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 +amt +analog +analogix-anx6345 +analogix-anx78xx +analogix_dp +anatop-regulator +ansi_cprng +anx7625 +anybuss_core +ao-cec +ao-cec-g12a +aoe +apbps2 +apcs-msm8916 +apcs-sdx55 +apds9300 +apds9802als +apds990x +apds9960 +apple-dart +apple-mailbox +apple-mfi-fastcharge +apple-rtkit +apple-sart +apple_wdt +appledisplay +appletalk +appletouch +applicom +apr +apss-ipq-pll +apss-ipq6018 +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar1021_i2c +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_emac +arc_ps2 +arc_uart +arcmsr +arcnet +arcpgu +arcx-anybus +arcxcnn_bl +arizona +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arm-cmn +arm_dmc620_pmu +arm_dsu_pmu +arm_mhu +arm_mhu_db +arm_mhuv2 +arm_scpi +arm_smc_wdt +arm_smccc_trng +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 +as73211 +asc7621 +ascot2e +asix +aspeed-pwm-tacho +aspeed-video +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +ata_generic +ata_piix +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_snoc +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-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 +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796b +ax88796c +axg-audio +axi-fan-control +axis-fifo +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x-rsb +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +b53_common +b53_mdio +b53_mmap +b53_serdes +b53_spi +b53_srab +ba431-rng +bam_dma +bareudp +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 +bcm2711_thermal +bcm2835 +bcm2835-mmal-vchiq +bcm2835-rng +bcm2835-v4l2 +bcm2835_thermal +bcm2835_wdt +bcm3510 +bcm4908_enet +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm63138_nand +bcm6368_nand +bcm63xx_uart +bcm7038_wdt +bcm7xxx +bcm87xx +bcm_crypto_spu +bcm_iproc_adc +bcm_iproc_tsc +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd71815-regulator +bd71828-regulator +bd718x7-regulator +bd9571mwv +bd9571mwv-regulator +bd9576-regulator +bd9576_wdt +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +berlin2-adc +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b_generic +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluefield_edac +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bnxt_re +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_charger +bq27xxx_battery +bq27xxx_battery_hdq +bq27xxx_battery_i2c +br2684 +br_netfilter +brcmfmac +brcmnand +brcmsmac +brcmstb-avs-cpufreq +brcmstb-usb-pinmap +brcmstb_nand +brcmstb_thermal +brcmutil +brd +bridge +broadcom +bsd_comp +bt819 +bt856 +bt866 +bt878 +btbcm +btcoexist +btintel +btmrvl +btmrvl_sdio +btmtk +btmtksdio +btmtkuart +btqca +btqcomsmd +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +caam +caam_jr +caamalg_desc +caamhash_desc +cachefiles +cadence-nand-controller +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +caif_usb +caif_virtio +camcc-sc7180 +camcc-sc7280 +camcc-sdm845 +camcc-sm8250 +camellia_generic +can +can-bcm +can-dev +can-gw +can-isotp +can-j1939 +can-raw +cap11xx +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 +ccs +ccs-pll +ccs811 +cctrng +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-dphy +cdns-dphy-rx +cdns-dsi +cdns-mhdp8546 +cdns-pltfrm +cdns-usb-common +cdns3 +cdns3-imx +cdns3-pci-wrap +cdns3-ti +cdnsp-udc-pci +cec +cec-gpio +ceph +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha-neon +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone-icn6211 +chipone_icn8318 +chipone_icn8505 +chipreg +chnl_net +chromeos_acpi +chromeos_privacy_screen +chromeos_tbmc +chrontel-ch7033 +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_tegra +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cirrus +cirrusfb +clip +clk-apple-nco +clk-axi-clkgen +clk-bcm2711-dvp +clk-bd718x7 +clk-cdce706 +clk-cdce925 +clk-cpu-8996 +clk-cs2000-cp +clk-fsl-flexspi +clk-hi3519 +clk-hi655x +clk-imx8ulp +clk-imx93 +clk-lmk04832 +clk-lochnagar +clk-max77686 +clk-max9485 +clk-palmas +clk-phase +clk-plldig +clk-pwm +clk-qcom +clk-raspberrypi +clk-renesas-pcie +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 +clk-xlnx-clock-wizard +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +cls_u32 +cm109 +cm32181 +cm3232 +cm3323 +cm3605 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +cmtp +cn10k-rng +cnic +cobra +coda +coda-vpu +colibri-vf50-ts +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_8254 +comedi_8255 +comedi_bond +comedi_example_test +comedi_parport +comedi_pci +comedi_test +comedi_usb +comm +contec_pci_dio +cordic +core +corsair-cpro +corsair-psu +cortina +counter +cp210x +cpcap-adc +cpcap-battery +cpcap-charger +cpcap-pwrbutton +cpcap-regulator +cpia2 +cppc_cpufreq +cpr +cptpf +cptvf +cqhci +cramfs +crc-itu-t +crc32_generic +crc4 +crc7 +crct10dif-ce +crg-hi3516cv300 +crg-hi3798cv200 +cros-ec-anx7688 +cros-ec-cec +cros-ec-regulator +cros-ec-sensorhub +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_mkbp_proximity +cros_ec_rpmsg +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_ec_typec +cros_ec_vbc +cros_kbd_led_backlight +cros_peripheral_charger +cros_usbpd-charger +cros_usbpd_logger +cros_usbpd_notify +cryptd +crypto_engine +crypto_safexcel +crypto_user +cs3308 +cs5345 +cs53l32a +cs_dsp +csiostor +ctucanfd +ctucanfd_pci +ctucanfd_platform +curve25519-generic +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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_acpi +cxl_core +cxl_mem +cxl_pci +cxl_pmem +cxl_port +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da9030_battery +da9034-ts +da903x-regulator +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 +da9121-regulator +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_hmem +dax_pmem +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +ddbridge +ddbridge-dummy-fe +de2104x +decnet +defxx +delta-ahe50dc-fan +denali +denali_dt +denali_pci +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +digicolor-usart +diskonchip +dispcc-qcm2290 +dispcc-sc7180 +dispcc-sc7280 +dispcc-sdm845 +dispcc-sm6125 +dispcc-sm6350 +dispcc-sm8250 +display-connector +dl2k +dlhl60d +dlink-dir685-touchkeys +dlm +dln2 +dln2-adc +dm-bio-prison +dm-bufio +dm-cache +dm-cache-smq +dm-clone +dm-crypt +dm-delay +dm-ebs +dm-era +dm-flakey +dm-historical-service-time +dm-integrity +dm-io-affinity +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 +dmc520_edac +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dp83td510 +dpaa2-console +dpaa2-qdma +dpaa2_caam +dpdmai +dpot-dac +dps310 +dps920ab +drbd +drivetemp +drm +drm_cma_helper +drm_display_helper +drm_dp_aux_bus +drm_kms_helper +drm_mipi_dbi +drm_shmem_helper +drm_ttm_helper +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 +dtpm +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-gp-audio +dw-hdmi-i2s-audio +dw-i3c-master +dw-mipi-dsi +dw-xdata-pcie +dw9714 +dw9768 +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-am62 +dwc3-haps +dwc3-imx8mp +dwc3-keystone +dwc3-meson-g12a +dwc3-of-simple +dwc3-pci +dwc3-qcom +dwc3-xilinx +dwmac-altr-socfpga +dwmac-dwc-qos-eth +dwmac-generic +dwmac-imx +dwmac-intel-plat +dwmac-ipq806x +dwmac-loongson +dwmac-mediatek +dwmac-meson +dwmac-meson8b +dwmac-qcom-ethqos +dwmac-rk +dwmac-sun8i +dwmac-visconti +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 +ecc-mtk +ecdh_generic +ecdsa_generic +echainiv +echo +ecrdsa_generic +edt-ft5x06 +ee1004 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efa +efct +efi-pstore +efi_test +efibc +efs +egalax_ts +egalax_ts_serial +ehci-brcm +ehci-fsl +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 +epat +epia +epic100 +eql +erofs +error +esas2r +esd_usb2 +esp4 +esp4_offload +esp6 +esp6_offload +esp_scsi +essiv +et1011c +et131x +et8ek8 +etas_es58x +ethoc +etnaviv +evbug +exc3000 +exfat +extcon-adc-jack +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 +extcon-usbc-tusb320 +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fan53555 +fan53880 +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_seps525 +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 +fbtft +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_pci +fdp +fdp_i2c +fealnx +ff-memless +ffa-module +fieldbus_dev +fintek-cir +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +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 +friq +frpw +fsa4480 +fscache +fsi-core +fsi-master-aspeed +fsi-master-gpio +fsi-master-hub +fsi-occ +fsi-sbefifo +fsi-scom +fsia6b +fsl-dpaa2-eth +fsl-dpaa2-ptp +fsl-dpaa2-switch +fsl-edma +fsl-edma-common +fsl-enetc +fsl-enetc-ierb +fsl-enetc-mdio +fsl-enetc-ptp +fsl-enetc-vf +fsl-ldb +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_ucc_hdlc +fsp-3y +ftdi-elan +ftdi_sio +ftl +ftm-quaddec +ftsteutates +fujitsu_ts +funcore +funeth +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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 +gateworks-gsc +gb-audio-apbridgea +gb-audio-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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-ipq6018 +gcc-ipq806x +gcc-ipq8074 +gcc-mdm9607 +gcc-mdm9615 +gcc-msm8660 +gcc-msm8916 +gcc-msm8939 +gcc-msm8953 +gcc-msm8960 +gcc-msm8974 +gcc-msm8976 +gcc-msm8994 +gcc-msm8996 +gcc-msm8998 +gcc-qcm2290 +gcc-qcs404 +gcc-sc7180 +gcc-sc7280 +gcc-sc8180x +gcc-sc8280xp +gcc-sdm660 +gcc-sdm845 +gcc-sdx55 +gcc-sdx65 +gcc-sm6115 +gcc-sm6125 +gcc-sm6350 +gcc-sm8150 +gcc-sm8250 +gcc-sm8350 +gcc-sm8450 +gdmtty +gdmulte +ge2d +gemini +gen_probe +generic +generic-adc-battery +genet +geneve +genwqe_card +gf2k +gfs2 +ghash-ce +gianfar_driver +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpi +gpio +gpio-74x164 +gpio-74xx-mmio +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-altera +gpio-altera-a10sr +gpio-amd-fch +gpio-amdpt +gpio-arizona +gpio-bd71815 +gpio-bd71828 +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-hisi +gpio-hlwd +gpio-ir-recv +gpio-ir-tx +gpio-janz-ttl +gpio-kempld +gpio-logicvc +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-mlxbf2 +gpio-moxtet +gpio-pca953x +gpio-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-pmic-eic-sprd +gpio-raspberrypi-exp +gpio-rcar +gpio-rdc321x +gpio-regmap +gpio-regulator +gpio-rockchip +gpio-sama5d2-piobu +gpio-sim +gpio-siox +gpio-sl28cpld +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-virtio +gpio-visconti +gpio-wcd934x +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +gpio-xgene-sb +gpio-xgs-iproc +gpio-xlp +gpio-xra1403 +gpio-zynq +gpio-zynqmp-modepin +gpio_backlight +gpio_decoder +gpio_keys +gpio_keys_polled +gpio_mouse +gpio_wdt +gpmi-nand +gpu-sched +gpucc-msm8998 +gpucc-sc7180 +gpucc-sc7280 +gpucc-sdm660 +gpucc-sdm845 +gpucc-sm6350 +gpucc-sm8150 +gpucc-sm8250 +gr_udc +grace +grcan +gre +greybus +grip +grip_mp +gs1662 +gs_usb +gsc-hwmon +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 +gtp +gud +guillemot +gunze +gve +habanalabs +hackrf +hamachi +hampshire +hantro-vpu +hanwang +hbmc-am654 +hci +hci_nokia +hci_uart +hci_vhci +hclge +hclgevf +hd3ss3220 +hd44780 +hd44780_common +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcd +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfpll +hfs +hfsplus +hi311x +hi3660-mailbox +hi556 +hi6210-i2s +hi6220-mailbox +hi6220_reset +hi6421-pmic-core +hi6421-regulator +hi6421-spmi-pmic +hi6421v530-regulator +hi6421v600-irq +hi6421v600-regulator +hi655x-pmic +hi655x-regulator +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +hih6130 +hinic +hip04_eth +hisi-acc-vfio-pci +hisi-rng +hisi-sfc +hisi-spmi-controller +hisi-trng-v2 +hisi504_nand +hisi_femac +hisi_hikey_usb +hisi_hpre +hisi_pcie_pmu +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_uncore_cpa_pmu +hisi_uncore_ddrc_pmu +hisi_uncore_hha_pmu +hisi_uncore_l3c_pmu +hisi_uncore_pa_pmu +hisi_uncore_pmu +hisi_uncore_sllc_pmu +hisi_zip +hix5hd2_gmac +hmc425a +hmc5843_core +hmc5843_i2c +hmc5843_spi +hmc6352 +hms-profinet +hnae +hnae3 +hns-roce-hw-v2 +hns3 +hns_dsaf +hns_enet_drv +hns_mdio +hopper +horus3a +host1x +hostap +hostap_pci +hostap_plx +hp03 +hp206c +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +ht16k33 +htc-pasic3 +hte-tegra194 +hte-tegra194-test +hts221 +hts221_i2c +hts221_spi +htu21 +huawei_cdc_ncm +hv_balloon +hv_netvsc +hv_sock +hv_storvsc +hv_utils +hv_vmbus +hwmon-vid +hwpoison-inject +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +hyperv-keyboard +hyperv_drm +hyperv_fb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-altera +i2c-amd756 +i2c-amd8111 +i2c-apple +i2c-arb-gpio-challenge +i2c-bcm-iproc +i2c-bcm2835 +i2c-brcmstb +i2c-cbus-gpio +i2c-ccgx-ucsi +i2c-cp2615 +i2c-cros-ec-tunnel +i2c-demux-pinctrl +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-fsi +i2c-gpio +i2c-hid +i2c-hid-acpi +i2c-hid-of +i2c-hid-of-goodix +i2c-hisi +i2c-hix5hd2 +i2c-i801 +i2c-imx +i2c-imx-lpi2c +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-meson +i2c-mlxbf +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-pca-platform +i2c-piix4 +i2c-pxa +i2c-qcom-cci +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-tegra +i2c-tegra-bpmp +i2c-thunderx +i2c-tiny-usb +i2c-versatile +i2c-via +i2c-viapro +i2c-viperboard +i2c-virtio +i2c-xgene-slimpro +i2c-xiic +i2c-xlp9xx +i3c +i3c-master-cdns +i40e +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-bcm-voter +icc-osm-l3 +icc-rpmh +icc-smd-rpm +ice +ice40-spi +icp +icp10100 +icp_multi +icplus +ics932s401 +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +img-ascii-lcd +img-i2s-in +img-i2s-out +img-parallel-out +img-spdif-in +img-spdif-out +imm +imon +imon_raw +ims-pcu +imx-audio-rpmsg +imx-bus +imx-common +imx-cpufreq-dt +imx-dcss +imx-dma +imx-dsp +imx-interconnect +imx-mailbox +imx-media-common +imx-mipi-csis +imx-pcm-dma +imx-pcm-rpmsg +imx-pxp +imx-sdma +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx2_wdt +imx319 +imx334 +imx335 +imx355 +imx412 +imx6q-cpufreq +imx6ul_tsc +imx7-media-csi +imx7d_adc +imx7ulp_wdt +imx8m-ddrc +imx8mm-interconnect +imx8mm_thermal +imx8mn-interconnect +imx8mq-interconnect +imx8mq-mipi-csi2 +imx8qxp-adc +imx_dsp_rproc +imx_keypad +imx_rproc +imx_sc_key +imx_sc_thermal +imx_sc_wdt +imx_thermal +imxfb +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int51x1 +intel-m10-bmc +intel-m10-bmc-hwmon +intel-nand-controller +intel-qep +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 +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io-domain +io_edgeport +io_ti +ionic +iosm +iowarrior +ip5xxx_power +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_twos +ip_vs_wlc +ip_vs_wrr +ip_vti +ipa +ipack +ipaq +ipcomp +ipcomp6 +iphase +ipheth +ipip +ipmb_dev_int +ipmi_devintf +ipmi_ipmb +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-bcm7120-l2 +irq-madera +irq-pruss-intc +irq-qcom-mpm +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl7998x +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +it87 +it913x +itd1000 +ite-cir +ite-it6505 +ite-it66121 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +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 +k3_bandgap +k3_j72xx_bandgap +k3dma +kafs +kalmia +kaweth +kbic +kbtab +kcm +kcomedilib +ke_counter +keembay-ocs-aes +keembay-ocs-ecc +keembay-ocs-hcu +keembay_wdt +kempld-core +kempld_wdt +kernelcapi +keyspan +keyspan_pda +keyspan_remote +keywrap +kfifo_buf +khadas-mcu +khadas_mcu_fan +kheaders +kirin-drm +kl5kusb105 +kmb-drm +kmem +kmx61 +kobil_sct +komeda +kpss-xcc +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lan966x-switch +lan966x_serdes +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +layerscape_edac_mod +lcc-ipq806x +lcc-mdm9615 +lcc-msm8960 +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +led_bl +leds-88pm860x +leds-aat1290 +leds-adp5520 +leds-an30259a +leds-as3645a +leds-aw2013 +leds-bcm6328 +leds-bcm6358 +leds-bd2802 +leds-blinkm +leds-cpcap +leds-cr0014114 +leds-da903x +leds-da9052 +leds-dac124s085 +leds-el15203000 +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-lp50xx +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-mt6360 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pwm +leds-pwm-multicolor +leds-qcom-lpg +leds-regulator +leds-rt4505 +leds-rt8515 +leds-sc27xx-bltc +leds-sgm3140 +leds-spi-byte +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +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-tty +ledtrig-usbport +legousbtower +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libarc4 +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +lima +line-display +lineage-pem +linear +linkstation-poweroff +liquidio +liquidio_vf +lis3lv02d +lis3lv02d_i2c +liteuart +litex_liteeth +litex_mmc +litex_soc_ctrl +lkkbd +ll_temac +llc +llc2 +llcc-qcom +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 +lmh +lmp91000 +lms283gf05 +lms501kf03 +lnbh25 +lnbh29 +lnbp21 +lnbp22 +lochnagar-hwmon +lochnagar-regulator +lockd +lontium-lt8912b +lontium-lt9211 +lontium-lt9611 +lontium-lt9611uxc +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 +lpass-gfm-sm8250 +lpassaudiocc-sc7280 +lpasscc-sc7280 +lpasscc-sdm845 +lpasscorecc-sc7180 +lpasscorecc-sc7280 +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +lt3651-charger +ltc1660 +ltc2471 +ltc2485 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvds-codec +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_pci +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-88x2222 +marvell-cesa +marvell10g +marvell_cn10k_ddr_pmu +marvell_cn10k_tad_pmu +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max14656_charger_detector +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +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 +max77714 +max77802-regulator +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +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 +max9271 +max9286 +max9611 +max96712 +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 +mchp48l640 +mcp16502 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-i2c +mctp-serial +md-cluster +md4 +mdc800 +mdev +mdio +mdio-bcm-unimac +mdio-cavium +mdio-gpio +mdio-hisi-femac +mdio-i2c +mdio-ipq4019 +mdio-ipq8064 +mdio-mscc-miim +mdio-mux-gpio +mdio-mux-meson-g12a +mdio-mux-mmioreg +mdio-mux-multiplexer +mdio-mvusb +mdio-octeon +mdio-thunder +mdio-xgene +mdt_loader +me4000 +me_daq +mediatek +mediatek-cpufreq +mediatek-cpufreq-hw +mediatek-drm +mediatek-drm-hdmi +mediatek-ge +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-ir-tx +meson-mx-sdio +meson-rng +meson-vdec +meson_dw_hdmi +meson_gxbb_wdt +meson_nand +meson_saradc +meson_wdt +metro-usb +metronomefb +mf6x4 +mgag200 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip-tcb-capture +microchip_t1 +microread +microread_i2c +microtek +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlx_wdt +mlxbf-bootctl +mlxbf-pmc +mlxbf-tmfifo +mlxbf_gige +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxreg-lc +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +mma7455_core +mma7455_i2c +mma7455_spi +mma7660 +mma8450 +mma8452 +mma9551 +mma9551_core +mma9553 +mmc35240 +mmc_hsq +mmc_spi +mmcc-apq8084 +mmcc-msm8960 +mmcc-msm8974 +mmcc-msm8994 +mmcc-msm8996 +mmcc-msm8998 +mmcc-sdm660 +mms114 +mn88443x +mn88472 +mn88473 +mos7720 +mos7840 +most_cdev +most_core +most_dim2 +most_i2c +most_net +most_snd +most_usb +most_video +motorcomm +motorola-cpcap +moxa +moxtet +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp5416 +mp8859 +mp886x +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpq7920 +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +mscc +mscc_felix +mscc_ocelot +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi001 +msi2500 +msm +msp3400 +mspro_block +mss-sc7180 +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-accdet +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6380-regulator +mt6397 +mt6397-regulator +mt6577_auxadc +mt6779-keypad +mt6797-mt6351 +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt8183-da7219-max98357 +mt8183-mt6358-ts3a227-max98357 +mt8192-mt6359-rt1015-rt5682 +mt8195-mt6359 +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd +mtd_blkdevs +mtd_dataflash +mtdblock +mtdblock_ro +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-adsp-common +mtk-adsp-ipc +mtk-adsp-mailbox +mtk-btcvsd +mtk-cir +mtk-cmdq-helper +mtk-cmdq-mailbox +mtk-cqdma +mtk-devapc +mtk-hsdma +mtk-pmic-keys +mtk-pmic-wrap +mtk-rng +mtk-sd +mtk-smi +mtk-uart-apdma +mtk-vpu +mtk_nand +mtk_rpmsg +mtk_scp +mtk_scp_ipi +mtk_t7xx +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 +mxc-jpeg-encdec +mxc4005 +mxc6255 +mxc_nand +mxc_w1 +mxcmmc +mxic_nand +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxser +mxsfb +mxuport +myrb +myri10ge +myrs +n5pf +n_gsm +n_hdlc +nand +nandcore +nandsim +national +natsemi +nau7802 +navman +nbd +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct6775-core +nct6775-i2c +nct7802 +nct7904 +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +ni_routing +ni_tio +ni_tiocmd +ni_usb6501 +nicpf +nicstar +nicvf +nilfs2 +nitro_enclaves +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_epf +ntb_hw_idt +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +ntxec +null_blk +nuvoton-cir +nvec +nvec_kbd +nvec_paz00 +nvec_power +nvec_ps2 +nvidiafb +nvme +nvme-apple +nvme-core +nvme-fabrics +nvme-fc +nvme-loop +nvme-rdma +nvme-tcp +nvmem-apple-efuses +nvmem-bcm-ocotp +nvmem-imx-iim +nvmem-imx-ocotp +nvmem-imx-ocotp-scu +nvmem-layerscape-sfp +nvmem-rave-sp-eeprom +nvmem-reboot-mode +nvmem-rmem +nvmem-rockchip-otp +nvmem-sc27xx-efuse +nvmem_meson_efuse +nvmem_meson_mx_efuse +nvmem_qcom-spmi-sdam +nvmem_qfprom +nvmem_rockchip_efuse +nvmem_snvs_lpgpr +nvmem_sprd_efuse +nvmem_sunxi_sid +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvsw-sn2201 +nwl-dsi +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-ptn3460 +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocmem +ocrdma +octeon_ep +octeontx-cpt +octeontx-cptvf +of-fpga-region +of_mmc_spi +of_pmem +of_xilinx_wdt +ofb +ofpart +og01a1b +ohci-platform +omap-mailbox +omap-rng +omap2_nand +omap4-keypad +omap_elm +omap_hwspinlock +omfs +omninet +on20 +on26 +onenand +open-dice +opencores-kbd +openvswitch +opt3001 +optee +optee-rng +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +oti6858 +otm3225a +otx2_ptp +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov2740 +ov5640 +ov5645 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9282 +ov9640 +ov9650 +ov9734 +overlay +owl-dma +owl-emac +owl-mmc +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +palmas-pwrbutton +palmas-regulator +palmas_gpadc +pandora_bl +panel +panel-abt-y030xx067a +panel-arm-versatile +panel-asus-z00t-tm5p5-n35596 +panel-boe-bf060y8m-aj0 +panel-boe-himax8279d +panel-boe-tv101wum-nl6 +panel-dsi-cm +panel-edp +panel-elida-kd35t133 +panel-feixin-k101-im2ba02 +panel-feiyang-fy07024di26a30d +panel-ilitek-ili9322 +panel-ilitek-ili9341 +panel-ilitek-ili9881c +panel-innolux-ej030na +panel-innolux-p079zca +panel-jdi-fhd-r63452 +panel-jdi-lt070me05000 +panel-khadas-ts050 +panel-kingdisplay-kd097d04 +panel-leadtek-ltk050h3146w +panel-leadtek-ltk500hd1829 +panel-lg-lb035q02 +panel-lg-lg4573 +panel-lvds +panel-mantix-mlaf057we51 +panel-mipi-dbi +panel-nec-nl8048hl11 +panel-newvision-nv3052c +panel-novatek-nt35510 +panel-novatek-nt35560 +panel-novatek-nt35950 +panel-novatek-nt36672a +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-ronbo-rb070d30 +panel-samsung-atna33xc20 +panel-samsung-db7430 +panel-samsung-ld9040 +panel-samsung-s6d16d0 +panel-samsung-s6d27a1 +panel-samsung-s6e3ha2 +panel-samsung-s6e63j0x03 +panel-samsung-s6e63m0 +panel-samsung-s6e63m0-dsi +panel-samsung-s6e63m0-spi +panel-samsung-s6e88a0-ams452ef01 +panel-samsung-s6e8aa0 +panel-samsung-sofef00 +panel-seiko-43wvf1g +panel-sharp-lq101r1sx01 +panel-sharp-ls037v7dw01 +panel-sharp-ls043t1le01 +panel-sharp-ls060t1sx01 +panel-simple +panel-sitronix-st7701 +panel-sitronix-st7703 +panel-sitronix-st7789v +panel-sony-acx565akm +panel-sony-tulip-truly-nt35521 +panel-tdo-tl070wsh30 +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +panel-tpo-tpg110 +panel-truly-nt35597 +panel-visionox-rm69299 +panel-widechips-ws2401 +panel-xinpeng-xpp055c272 +panfrost +parade-ps8622 +parade-ps8640 +paride +parkbd +parman +parport +parport_ax88796 +parport_pc +parport_serial +parser_trx +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 +pc300too +pc87360 +pc87427 +pca9450-regulator +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-epf-ntb +pci-hyperv +pci-hyperv-intf +pci-pf-stub +pci-stub +pci200syn +pcie-apple +pcie-brcmstb +pcie-iproc +pcie-iproc-platform +pcie-mediatek-gen3 +pcie-qcom-ep +pcie-rockchip-host +pcie-tegra194 +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia_core +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcs-lynx +pcs_xpcs +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +pdr_interface +peak_pci +peak_pciefd +peak_usb +peci +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pf8x00-regulator +pfr_telemetry +pfr_update +pfuze100-regulator +pg +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-salvo +phy-cadence-sierra +phy-cadence-torrent +phy-can-transceiver +phy-cpcap-usb +phy-exynos-usb2 +phy-fsl-imx8-mipi-dphy +phy-fsl-imx8m-pcie +phy-fsl-imx8mq-usb +phy-fsl-lynx-28g +phy-generic +phy-gmii-sel +phy-gpio-vbus-usb +phy-hi3660-usb3 +phy-hi3670-pcie +phy-hi3670-usb3 +phy-hi6220-usb +phy-hisi-inno-usb2 +phy-histb-combphy +phy-intel-keembay-emmc +phy-intel-keembay-usb +phy-isp1301 +phy-j721e-wiz +phy-mapphone-mdm6600 +phy-meson-axg-mipi-dphy +phy-meson-g12a-usb2 +phy-meson-g12a-usb3-pcie +phy-meson-gxl-usb2 +phy-meson8b-usb2 +phy-mtk-hdmi-drv +phy-mtk-mipi-dsi-drv +phy-mtk-tphy +phy-mtk-ufs +phy-mtk-xsphy +phy-mvebu-a3700-comphy +phy-mvebu-a3700-utmi +phy-mvebu-cp110-comphy +phy-mvebu-cp110-utmi +phy-ocelot-serdes +phy-omap-usb2 +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-apq8064-sata +phy-qcom-edp +phy-qcom-ipq4019-usb +phy-qcom-ipq806x-sata +phy-qcom-ipq806x-usb +phy-qcom-pcie2 +phy-qcom-qmp +phy-qcom-qusb2 +phy-qcom-snps-femto-v2 +phy-qcom-usb-hs +phy-qcom-usb-hs-28nm +phy-qcom-usb-hsic +phy-qcom-usb-ss +phy-rcar-gen2 +phy-rcar-gen3-pcie +phy-rcar-gen3-usb2 +phy-rcar-gen3-usb3 +phy-rockchip-dp +phy-rockchip-dphy-rx0 +phy-rockchip-emmc +phy-rockchip-inno-csidphy +phy-rockchip-inno-dsidphy +phy-rockchip-inno-hdmi +phy-rockchip-inno-usb2 +phy-rockchip-naneng-combphy +phy-rockchip-pcie +phy-rockchip-typec +phy-rockchip-usb +phy-sun4i-usb +phy-sun50i-usb3 +phy-sun6i-mipi-dphy +phy-tahvo +phy-tegra-usb +phy-tegra-xusb +phy-tegra194-p2u +phy-tusb1210 +phy-zynqmp +phylink +physmap +pi3usb30532 +pi433 +pim4328 +pinctrl-apple-gpio +pinctrl-apq8064 +pinctrl-apq8084 +pinctrl-axp209 +pinctrl-bcm4908 +pinctrl-da9062 +pinctrl-imx8ulp +pinctrl-imx93 +pinctrl-ipq4019 +pinctrl-ipq6018 +pinctrl-ipq8064 +pinctrl-ipq8074 +pinctrl-keembay +pinctrl-lochnagar +pinctrl-lpass-lpi +pinctrl-madera +pinctrl-max77620 +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-mdm9607 +pinctrl-mdm9615 +pinctrl-meson-s4 +pinctrl-msm8226 +pinctrl-msm8660 +pinctrl-msm8916 +pinctrl-msm8953 +pinctrl-msm8960 +pinctrl-msm8976 +pinctrl-msm8994 +pinctrl-msm8996 +pinctrl-msm8998 +pinctrl-msm8x74 +pinctrl-mt6779 +pinctrl-qcm2290 +pinctrl-qcs404 +pinctrl-qdf2xxx +pinctrl-rk805 +pinctrl-sc7180 +pinctrl-sc7280 +pinctrl-sc7280-lpass-lpi +pinctrl-sc8180x +pinctrl-sc8280xp +pinctrl-sdm660 +pinctrl-sdm845 +pinctrl-sdx55 +pinctrl-sdx65 +pinctrl-sm6115 +pinctrl-sm6125 +pinctrl-sm6350 +pinctrl-sm8150 +pinctrl-sm8250 +pinctrl-sm8250-lpass-lpi +pinctrl-sm8350 +pinctrl-sm8450 +pinctrl-spmi-gpio +pinctrl-spmi-mpp +pinctrl-ssbi-gpio +pinctrl-ssbi-mpp +pinctrl-stmfx +pinctrl-zynqmp +ping +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 +platform_profile +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pm8916_wdt +pm8941-pwrkey +pm8xxx-vibrator +pmbus +pmbus_core +pmc551 +pmcraid +pms7003 +pn532_uart +pn533 +pn533_i2c +pn533_usb +pn544 +pn544_i2c +pn_pep +poly1305-neon +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +pru_rproc +pruss +ps2-gpio +ps2mult +psample +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptp-qoriq +ptp_clockmatrix +ptp_dte +ptp_idt82p33 +ptp_ines +ptp_kvm +ptp_ocp +pulse8-cec +pulsedlight-lidar-lite-v2 +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvcalls-front +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-atmel-hlcdc +pwm-atmel-tcb +pwm-bcm-iproc +pwm-bcm2835 +pwm-beeper +pwm-berlin +pwm-brcmstb +pwm-cros-ec +pwm-dwc +pwm-fan +pwm-fsl-ftm +pwm-hibvt +pwm-imx-tpm +pwm-imx1 +pwm-imx27 +pwm-iqs620a +pwm-ir-tx +pwm-keembay +pwm-lp3943 +pwm-mediatek +pwm-meson +pwm-mtk-disp +pwm-ntxec +pwm-pca9685 +pwm-raspberrypi-poe +pwm-rcar +pwm-regulator +pwm-renesas-tpu +pwm-rockchip +pwm-sl28cpld +pwm-sprd +pwm-sun4i +pwm-tegra +pwm-tiecap +pwm-tiehrpwm +pwm-twl +pwm-twl-led +pwm-vibra +pwm-visconti +pwm-xilinx +pwm_bl +pwrseq_emmc +pwrseq_sd8787 +pwrseq_simple +pxa168_eth +pxa27x_udc +pxe1610 +pxrc +q54sj108a2 +q6adm +q6afe +q6afe-clocks +q6afe-dai +q6apm-dai +q6apm-lpass-dais +q6asm +q6asm-dai +q6core +q6prm +q6prm-clocks +q6routing +q6sstop-qcs404 +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-labibb-regulator +qcom-pm8008 +qcom-pmic-typec +qcom-pon +qcom-rng +qcom-rpmh-regulator +qcom-spmi-adc-tm5 +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-pmic +qcom-spmi-temp-alarm +qcom-spmi-vadc +qcom-vadc-common +qcom-wdt +qcom-wled +qcom_aoss +qcom_bam_dmux +qcom_common +qcom_edac +qcom_eud +qcom_geni_serial +qcom_glink +qcom_glink_rpm +qcom_glink_smem +qcom_gsbi +qcom_hwspinlock +qcom_nandc +qcom_pil_info +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_stats +qcom_sysmon +qcom_tsens +qcom_usb_vbus-regulator +qcomsmempart +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-msm8916 +qnoc-msm8939 +qnoc-msm8974 +qnoc-msm8996 +qnoc-qcm2290 +qnoc-qcs404 +qnoc-sc7180 +qnoc-sc7280 +qnoc-sc8180x +qnoc-sc8280xp +qnoc-sdm660 +qnoc-sdm845 +qnoc-sdx55 +qnoc-sdx65 +qnoc-sm8150 +qnoc-sm8250 +qnoc-sm8350 +qnoc-sm8450 +qnx4 +qnx6 +qoriq-cpufreq +qoriq_thermal +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcar-csi2 +rcar-dmac +rcar-du-drm +rcar-fcp +rcar-isp +rcar-vin +rcar_can +rcar_canfd +rcar_cmm +rcar_drif +rcar_dw_hdmi +rcar_fdp1 +rcar_gen3_thermal +rcar_jpu +rcar_lvds +rcar_mipi_dsi +rcar_rproc +rcar_thermal +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_rxe +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +realtek-mdio +realtek-smi +reboot-mode +redboot +redrat3 +reed_solomon +regmap-ac97 +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +regmap-spmi +regmap-w1 +regulator-haptic +reiserfs +renesas-nand-controller +renesas-rpc-if +renesas_sdhi_core +renesas_sdhi_internal_dmac +renesas_sdhi_sys_dmac +renesas_usb3 +renesas_usbhs +renesas_wdt +repaper +reset-a10sr +reset-brcmstb +reset-hi3660 +reset-meson-audio-arb +reset-qcom-pdc +reset-raspberrypi +reset-rzg2l-usbphy-ctrl +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rmtfs_mem +rn5t618 +rn5t618-adc +rn5t618-regulator +rn5t618_power +rn5t618_wdt +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rockchip-dfi +rockchip-isp1 +rockchip-nand-controller +rockchip-rga +rockchip-vdec +rockchip_saradc +rockchip_thermal +rockchipdrm +rocker +rohm-bd71828 +rohm-bd718x7 +rohm-bd9576 +rohm-regulator +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpi-panel-attiny-regulator +rpmpd +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsmu-i2c +rsmu-spi +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-mt2712 +rtc-mt6397 +rtc-mt7622 +rtc-mxc +rtc-mxc_v2 +rtc-ntxec +rtc-optee +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-rc5t619 +rtc-rk808 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv3032 +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-tegra +rtc-tps6586x +rtc-tps65910 +rtc-twl +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtc-zynqmp +rtd520 +rti800 +rti802 +rti_wdt +rtl2830 +rtl2832 +rtl2832_sdr +rtl8150 +rtl8187 +rtl8188ee +rtl818x_pci +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192ee +rtl8192se +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rvu_af +rvu_cptpf +rvu_cptvf +rvu_mbox +rvu_nicpf +rvu_nicvf +rx51_battery +rxrpc +rz-dmac +rza_wdt +rzg2l_adc +rzg2l_thermal +rzg2l_wdt +rzn1_wdt +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +s526 +s5c73m3 +s5h1409 +s5h1411 +s5h1420 +s5h1432 +s5k4ecgx +s5k5baf +s5k6a3 +s5k6aa +s5m8767 +s626 +s6sy761 +s921 +sa2ul +saa6588 +saa6752hs +saa7110 +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7134-go7007 +saa7146 +saa7146_vv +saa7164 +saa717x +saa7185 +saa7706h +safe_serial +sahara +sample-trace-array +samsung-keypad +samsung-sxgbe +samsung_tty +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 +sbrmi +sbs-battery +sbs-charger +sbs-manager +sbsa_gwdt +sbtsi_temp +sc16is7xx +sc2731-regulator +sc2731_charger +sc27xx-poweroff +sc27xx-vibra +sc27xx_adc +sc27xx_fuel_gauge +sc92031 +sc9860-clk +sc9863a-clk +sca3000 +sca3300 +scd30_core +scd30_i2c +scd30_serial +scd4x +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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-regulator +scmi_iio +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-milbeaut +sdhci-msm +sdhci-of-arasan +sdhci-of-aspeed +sdhci-of-at91 +sdhci-of-dwcmshc +sdhci-of-esdhc +sdhci-of-sparx5 +sdhci-omap +sdhci-pci +sdhci-pltfm +sdhci-pxav3 +sdhci-sprd +sdhci-tegra +sdhci-xenon-driver +sdhci_am654 +sdhci_f_sdh30 +sdio_uart +sensehat-joystick +sensorhub +serial-tegra +serial_ir +serio_raw +sermouse +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sh-sci +sh_eth +sh_mmcif +sh_mobile_lcdcfb +sha1-ce +sha2-ce +sha256-arm64 +sha3-ce +sha3_generic +sha512-arm64 +sha512-ce +shark2 +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sifive +sii902x +sii9234 +sil-sii8620 +sil164 +silead +simple-bridge +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +sis190 +sis5595 +sis900 +sis_i2c +sisfb +sisusbvga +sit +siw +sja1000 +sja1000_isa +sja1000_platform +sja1105 +skfp +skge +sky2 +sky81452 +sky81452-backlight +sky81452-regulator +sl28cpld-hwmon +sl28cpld_wdt +sl811-hcd +slcan +slg51000-regulator +slic_ds26522 +slicoss +slim-qcom-ctrl +slim-qcom-ngd-ctrl +slimbus +slip +slram +sm2_generic +sm3 +sm3-ce +sm3_generic +sm4 +sm4-ce +sm4-ce-cipher +sm4-neon +sm4_generic +sm501 +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc_diag +smd-rpm +smem +smipcie +smm665 +smp2p +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsm +smsmdtv +smssdio +smsusb +snd +snd-ac97-codec +snd-acp-config +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-bcm2835 +snd-bebob +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +snd-cs4281 +snd-cs46xx +snd-cs8427 +snd-ctl-led +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-cs8409 +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-cs-dsp-ctls +snd-hda-intel +snd-hda-scodec-cs35l41 +snd-hda-scodec-cs35l41-i2c +snd-hda-scodec-cs35l41-spi +snd-hda-tegra +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-sdw-acpi +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-pcm +snd-pcm-dmaengine +snd-pcxhr +snd-portman2x4 +snd-pt2258 +snd-q6apm +snd-q6dsp-common +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-generic +snd-serial-u16550 +snd-soc-63xx +snd-soc-ac97 +snd-soc-acp-da7219mx98357-mach +snd-soc-acp-rt5645-mach +snd-soc-acpi +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +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-armada-370-db +snd-soc-audio-graph-card +snd-soc-audio-graph-card2 +snd-soc-audio-graph-card2-custom-sample +snd-soc-aw8738 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-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-asoc-card +snd-soc-fsl-asrc +snd-soc-fsl-aud2htx +snd-soc-fsl-audmix +snd-soc-fsl-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-ssi +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmix +snd-soc-imx-audmux +snd-soc-imx-card +snd-soc-imx-es8328 +snd-soc-imx-hdmi +snd-soc-imx-rpmsg +snd-soc-imx-sgtl5000 +snd-soc-imx-spdif +snd-soc-inno-rk3036 +snd-soc-j721e-evm +snd-soc-kirkwood +snd-soc-kmb_platform +snd-soc-lochnagar-sc +snd-soc-lpass-apq8016 +snd-soc-lpass-cdc-dma +snd-soc-lpass-cpu +snd-soc-lpass-hdmi +snd-soc-lpass-ipq806x +snd-soc-lpass-macro-common +snd-soc-lpass-platform +snd-soc-lpass-rx-macro +snd-soc-lpass-sc7180 +snd-soc-lpass-sc7280 +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +snd-soc-max9860 +snd-soc-max9867 +snd-soc-max98927 +snd-soc-meson-aiu +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-card-utils +snd-soc-meson-codec-glue +snd-soc-meson-g12a-toacodec +snd-soc-meson-g12a-tohdmitx +snd-soc-meson-gx-sound-card +snd-soc-meson-t9015 +snd-soc-mikroe-proto +snd-soc-msm8916-analog +snd-soc-msm8916-digital +snd-soc-mt6351 +snd-soc-mt6358 +snd-soc-mt6359 +snd-soc-mt6660 +snd-soc-mt6797-afe +snd-soc-mt8183-afe +snd-soc-mt8192-afe +snd-soc-mt8195-afe +snd-soc-mtk-common +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +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-pcm5102a +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-rk817 +snd-soc-rl6231 +snd-soc-rockchip-i2s +snd-soc-rockchip-i2s-tdm +snd-soc-rockchip-max98090 +snd-soc-rockchip-pdm +snd-soc-rockchip-rt5645 +snd-soc-rockchip-spdif +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1015p +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +snd-soc-rt5514 +snd-soc-rt5514-spi +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5659 +snd-soc-rt5663 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt5682-i2c +snd-soc-rt5682-sdw +snd-soc-rt5682s +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-rz-ssi +snd-soc-sc7180 +snd-soc-sc7280 +snd-soc-sdm845 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-sm8250 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-sprd-platform +snd-soc-ssm2305 +snd-soc-ssm2518 +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-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tegra-audio-graph-card +snd-soc-tegra-machine +snd-soc-tegra-pcm +snd-soc-tegra-wm8903 +snd-soc-tegra186-asrc +snd-soc-tegra186-dspk +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra210-admaif +snd-soc-tegra210-adx +snd-soc-tegra210-ahub +snd-soc-tegra210-amx +snd-soc-tegra210-dmic +snd-soc-tegra210-i2s +snd-soc-tegra210-mixer +snd-soc-tegra210-mvc +snd-soc-tegra210-sfc +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-test-component +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-ti-edma +snd-soc-ti-sdma +snd-soc-ti-udma +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8994 +snd-soc-wm9712 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +snd-sof +snd-sof-imx8 +snd-sof-imx8m +snd-sof-mt8186 +snd-sof-mt8195 +snd-sof-of +snd-sof-utils +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-variax +snd-usbmidi-lib +snd-util-mem +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 +socfpga +socfpga-a10 +socinfo +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +soundcore +soundwire-bus +soundwire-cadence +soundwire-generic-allocation +soundwire-intel +soundwire-qcom +sp2 +sp805_wdt +sp8870 +sp887x +spaceball +spaceorb +sparse-keymap +sparx5-switch +sparx5-temp +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-armada-3700 +spi-axi-spi-engine +spi-bcm-qspi +spi-bcm2835 +spi-bcm2835aux +spi-bitbang +spi-brcmstb-qspi +spi-butterfly +spi-cadence +spi-cadence-quadspi +spi-cadence-xspi +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-fsi +spi-fsl-dspi +spi-fsl-lpspi +spi-fsl-qspi +spi-geni-qcom +spi-gpio +spi-hisi-kunpeng +spi-hisi-sfc-v3xx +spi-imx +spi-iproc-qspi +spi-lm70llp +spi-loopback-test +spi-meson-spicc +spi-meson-spifc +spi-mt65xx +spi-mtk-nor +spi-mtk-snfi +spi-mux +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-rockchip-sfc +spi-rpc-if +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-tegra114 +spi-tegra20-sflash +spi-tegra20-slink +spi-tegra210-quad +spi-thunderx +spi-tle62x0 +spi-xcomm +spi-xlp +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spl +spmi +spmi-mtk-pmif +spmi-pmic-arb +sprd-dma +sprd-drm +sprd-iommu +sprd-mailbox +sprd-mcdt +sprd-sc27xx-spi +sprd_hwspinlock +sprd_serial +sprd_thermal +sprd_wdt +sps30 +sps30_i2c +sps30_serial +sr-thermal +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +stpmic1 +stpmic1_onkey +stpmic1_regulator +stpmic1_wdt +stratix10-rsu +stratix10-soc +stratix10-svc +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +sun4i-backend +sun4i-csi +sun4i-drm +sun4i-drm-hdmi +sun4i-frontend +sun4i-gpadc +sun4i-ss +sun4i-tcon +sun4i_tv +sun50i-codec-analog +sun50i-cpufreq-nvmem +sun6i-csi +sun6i-dma +sun6i-rtc-ccu +sun6i_drc +sun6i_hwspinlock +sun6i_mipi_dsi +sun8i-a33-mbus +sun8i-adda-pr-regmap +sun8i-ce +sun8i-codec +sun8i-codec-analog +sun8i-di +sun8i-drm-hdmi +sun8i-mixer +sun8i-rotate +sun8i-ss +sun8i_tcon_top +sun8i_thermal +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sunxi +sunxi-cedrus +sunxi-cir +sunxi-mmc +sunxi-rsb +sunxi_wdt +sur40 +surface3_spi +surface_acpi_notify +surface_aggregator +surface_aggregator_cdev +surface_aggregator_registry +surface_battery +surface_charger +surface_dtx +surface_gpe +surface_hid +surface_hid_core +surface_hotplug +surface_kbd +surface_platform_profile +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sy8106a-regulator +sy8824x +sy8827n +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_gt +synopsys_edac +syscon-reboot-mode +syscopyarea +sysfillrect +sysimgblt +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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 +tc358762 +tc358764 +tc358767 +tc358768 +tc358775 +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_maxim +tcpci_mt6360 +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 +tea575x +tea5761 +tea5767 +tea6415c +tea6420 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +tee +tee_bnxt_fw +tef6862 +tegra-aconnect +tegra-bpmp-thermal +tegra-drm +tegra-gmi +tegra-kbc +tegra-vde +tegra-video +tegra-xudc +tegra186-cpufreq +tegra186-gpc-dma +tegra194-cpufreq +tegra210-adma +tegra210-emc +tegra30-devfreq +tegra_cec +tegra_nand +tegra_wdt +tehuti +teranetics +test_blackhole_dev +test_bpf +test_power +tg3 +thc63lvd1024 +thermal-generic-adc +thermal_mmio +thmc50 +ths7303 +ths8200 +thunder_bgx +thunder_xcv +thunderbolt +thunderbolt-net +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-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-am65-cpsw-nuss +ti-cal +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-j721e-ufs +ti-lmu +ti-sn65dsi83 +ti-sn65dsi86 +ti-tfp410 +ti-tlc4541 +ti-tpd12s015 +ti-tsc2046 +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_k3_dsp_remoteproc +ti_k3_r5_remoteproc +ti_sci_pm_domains +ti_usb_3410_5052 +tidss +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_atmel +tpm_ftpm_tee +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_infineon +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_tis_synquacer +tpm_vtpm_proxy +tps23861 +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps6286x-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 +tqmx86 +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +ucan +ucb1400_core +ucb1400_ts +ucc_uart +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_hv_generic +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_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 +usdhi6rol0 +userio +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +v3d +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-h264 +v4l2-jpeg +v4l2-mem2mem +v4l2-tpg +v4l2-vp9 +vc4 +vcan +vchiq +vcnl3020 +vcnl4000 +vcnl4035 +vctrl-regulator +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +venus-core +venus-dec +venus-enc +versal-fpga +ves1820 +ves1x93 +veth +vexpress-hwmon +vexpress-regulator +vf610_adc +vf610_dac +vfio +vfio-amba +vfio-fsl-mc +vfio-pci +vfio-pci-core +vfio-platform +vfio-platform-amdxgbe +vfio-platform-base +vfio-platform-calxedaxgmac +vfio_iommu_type1 +vfio_platform_bcmflexrm +vfio_virqfd +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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-sc7180 +videocc-sc7280 +videocc-sdm845 +videocc-sm8150 +videocc-sm8250 +videodev +vim2m +vimc +viperboard +viperboard_adc +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_mem +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +visconti_wdt +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 +vmgenid +vmk80xx +vmw_pvrdma +vmw_vmci +vmw_vsock_virtio_transport +vmw_vsock_virtio_transport_common +vmw_vsock_vmci_transport +vmwgfx +vmxnet3 +vp27smpx +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vqmmc-ipq4019-regulator +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wcnss_ctrl +wd719x +wdat_wdt +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +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 +wusb3801 +wwan_hwsim +x25 +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xen-blkback +xen-evtchn +xen-fbfront +xen-front-pgdir-shbuf +xen-gntalloc +xen-gntdev +xen-hcd +xen-kbdfront +xen-netback +xen-pciback +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-hcd +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xhci-tegra +xilinx-ams +xilinx-csi2rxss +xilinx-pr-decoupler +xilinx-spi +xilinx-tpg +xilinx-video +xilinx-vtc +xilinx-xadc +xilinx_can +xilinx_dma +xilinx_dpdma +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_sdfec +xilinx_uartps +xilinxfb +xillybus_class +xillybus_core +xillybus_of +xillybus_pcie +xillyusb +xiphera-trng +xircom_cb +xlnx_vcu +xor +xor-neon +xpad +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yenta_socket +yurex +z3fold +zaurus +zavl +zcommon +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zfs +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zlua +znvpair +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd +zunicode +zynqmp-aes-gcm +zynqmp-dpsub +zynqmp-fpga +zynqmp-sha +zynqmp_dma +zzstd --- linux-5.19.0.orig/debian.master/abi/arm64/generic.retpoline +++ linux-5.19.0/debian.master/abi/arm64/generic.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/armhf/generic +++ linux-5.19.0/debian.master/abi/armhf/generic @@ -0,0 +1,25872 @@ +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x07820a51 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x45bda278 crypto_cipher_setkey vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x7fffffff crypto_cipher_encrypt_one vmlinux +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x0926480f is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0949948d cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x0dc2cc9e __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1009277a cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x10c44abe cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x10f766f3 cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1beb0ff4 clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1e0cebfb cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1e70c816 devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x204bc09e cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x21f36167 cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x2cf23bdf devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x36e5ded9 cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x389c466f is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3b87e82c cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4cb47f6e is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x62e34dec cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x66c48d37 is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6a166ffa to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6bf8ade9 devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x77a6b88e cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x790342a8 cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff to_cxl_port drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x0ca18ad7 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x18ec53cc dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x2cd742d4 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x45f58ddf dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x4a210b3b dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x4caa47cb dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x4cd9850c dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x604f9cec dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x662826d7 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x741f2d78 dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7521e8e1 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_vmap vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x7fffffff chacha_init_arch +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x7fffffff hchacha_block_arch +EXPORT_SYMBOL arch/arm/crypto/curve25519-neon 0x3c74a43e curve25519_base_arch +EXPORT_SYMBOL arch/arm/crypto/curve25519-neon 0x7fffffff curve25519_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x1c3e6e5b poly1305_init_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x6ddf27bc poly1305_update_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x7fffffff poly1305_final_arch +EXPORT_SYMBOL arch/arm/crypto/sha256-arm 0x43b7814c crypto_sha256_arm_update +EXPORT_SYMBOL arch/arm/crypto/sha256-arm 0x7fffffff crypto_sha256_arm_finup +EXPORT_SYMBOL arch/arm/lib/xor-neon 0x2e9a6ad4 xor_block_neon_inner +EXPORT_SYMBOL crypto/blake2b_generic 0x7fffffff blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x7fffffff crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_is_pubkey_valid_partial +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_make_pub_key +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_point_is_zero +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_cmp +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_from_le64 +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_sub +EXPORT_SYMBOL crypto/nhpoly1305 0x0fe540f7 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0x2843288d crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0x2867c3df crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x405a5c14 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x7fffffff crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x7fffffff crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/sha3_generic 0x7f283026 crypto_sha3_update +EXPORT_SYMBOL crypto/sha3_generic 0x7fffffff crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0x7fffffff crypto_sha3_init +EXPORT_SYMBOL crypto/sm2_generic 0x7fffffff sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0x7fffffff crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x7fffffff suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x7fffffff bcma_core_dma_translation +EXPORT_SYMBOL drivers/bcma/bcma 0x7fffffff 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 0x7fffffff drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0b56d305 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x5616b4f2 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x57a646e6 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7280196d paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x7611296f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_write_regr +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x7fffffff btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x7fffffff rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x7b9a799f mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1b97674c ipmi_add_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 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 0x7fffffff ipmb_checksum +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x07a13349 kcs_bmc_remove_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x1fb9a6aa kcs_bmc_read_data +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x512df4de kcs_bmc_add_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x602cc7fa kcs_bmc_read_status +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x68198488 kcs_bmc_register_driver +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x718de2ec kcs_bmc_update_event_mask +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x74174b32 kcs_bmc_write_data +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_disable_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_enable_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_handle_event +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_unregister_driver +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_update_status +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_write_status +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x43f2fc5a st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x7fffffff st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x7fffffff st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x7fffffff st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7fffffff xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7fffffff xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7fffffff xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x2e5f03ae xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x7fffffff xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x7fffffff xillybus_init_endpoint +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x25c98843 clk_alpha_pll_zonda_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_fixed_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_5lpe_ops +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x1178b9e6 atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x31d75180 atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x6c28f9b1 atmel_i2c_init_ecdh_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_random_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/caam/caam 0x37734e06 caam_dpaa2 +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x229f50ec gen_split_key +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x33dccfbc caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff caam_jr_free +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff split_key_done +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 0x7fffffff cnstr_shdsc_aead_null_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_chachapoly +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_gcm_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_rfc4106_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_rfc4543_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_skcipher_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_xts_skcipher_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_xts_skcipher_encap +EXPORT_SYMBOL drivers/crypto/caam/caamhash_desc 0x686d05f8 cnstr_shdsc_ahash +EXPORT_SYMBOL drivers/crypto/caam/caamhash_desc 0x7fffffff cnstr_shdsc_sk_hash +EXPORT_SYMBOL drivers/crypto/caam/error 0x2eed504a caam_ptr_sz +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_dump_sg +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_imx +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_little_end +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_strstatus +EXPORT_SYMBOL drivers/firewire/firewire-core 0x041468c7 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x08d16fa3 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f84e51f fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x14b6affc fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x36ec2d2e fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x37d0ae2f fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x476d16b6 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4ed3fcea fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4fb7847c fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x51282493 fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x556601c3 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x55c6f96b fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x69f08f72 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7315bda0 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x76b2732d fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7f321c6d fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_rcode_string +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x47e06e7d imx_dsp_ring_doorbell +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x7fffffff imx_dsp_free_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x7fffffff imx_dsp_request_channel +EXPORT_SYMBOL drivers/fpga/dfl 0x109d21d0 __dfl_driver_register +EXPORT_SYMBOL drivers/fpga/dfl 0x6de60e00 dfl_driver_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x033970f4 drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x033b4b80 drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x074351c3 drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0dbeb692 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0ea89d8d drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x11853873 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x185efa51 drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x19ad59de drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b44d451 drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1c72df7e drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1f51797a drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x22d592b2 drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x234e5348 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x259630f7 drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x260401a5 drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x29fde8a3 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2ae91299 drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2b02922d drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x32767ee3 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x35f5a559 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x38bfef60 drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3b4a77df drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3d13927e drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x41e5df92 drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x435dceb5 drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x44b61ee0 drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4597f49e drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5246aee1 drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x54eec97a drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x550b6765 drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58fc9522 drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5d38003e drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5e41be3a drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5ef65b61 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5f15ad23 drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x622b526b drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x62d91de0 drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63531a4e drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a9e595 drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648505ea drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x64eaab0c drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x674b0749 drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x680ba262 drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x693a33c8 drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a9246c5 drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6d296227 drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x769a1987 drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x77bb5178 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7890080f drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x799199e5 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7b752039 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7bcb7fa2 drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7e2fdf1e drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7f55636c drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00a6b21a drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00eda101 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x019db7dd drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01f1da77 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x025054fd drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03186fa6 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x037c1811 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03b7db82 drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0432c4c1 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05180e0c drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x057ac1bd drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05bc588f drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0628e801 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0631f6f6 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06b813d6 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06e88060 drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08065eeb drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x086c97fb drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08abd46a drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x099a649d drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09b662c0 drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a7be049 drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac15d43 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c2c69c5 of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c5bdbba drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cfcea54 drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e6b64a3 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ecfd207 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fb141c8 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fcf7a9d drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe095fc drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x108b67b8 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10ff0161 drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11856c65 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11f0bbcd drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x124dde17 drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13a71d1d drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x144716bd drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x144b5023 drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14bd793d drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x157395ec drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15a33f6d drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15d7fb2b drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x160a4507 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16677348 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16ce5d3a drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x16e9b0c7 __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x189edb72 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a6bf011 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a6d8b4c drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b289ef2 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bcfff4f drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c0ea87d drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c15d0b6 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ca6caeb drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cc76478 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cd9fd56 drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d8bee6a drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e3b3b3a drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e40e2b4 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e5966d8 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ea5be6f __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ef8729b drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2091151f drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20f21e4c drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x215593fa drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21dd5d6a drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x224e6867 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x252303fa drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25405ff3 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b1da53 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26b7255d drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26e8189f drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26f5ba36 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2744096f drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27b9f18d drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27f2a09a drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28daace4 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x294864db drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b4a1e38 drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2baba18f drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c738363 drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c93ad80 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d9bfdc0 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f92cf79 drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fcdbfe5 drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x306a17e3 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ceef6e drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33bc5cc4 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33be2f08 drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34221685 __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34c115cd drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34d5b2da drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34f8cad1 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x352e3c1f drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35db1d59 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x363a8be7 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3668003c drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x370c5908 drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37421af4 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x379e9d45 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37a568d0 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x380b5fbb __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3826f91f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38d02223 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39093b79 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a768fc6 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a862b0e drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aaa1816 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bbeb8aa drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c642d31 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d604141 drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d8740ae drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e3f8c5c drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x402bb5fd drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x412d9ecb drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41e879bb drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x443104c2 drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46a0dc6b drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46a328fd drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4705497c drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x476ab6b5 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bda1d50 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bf74e9e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bfcf56e drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c4a617c drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c58f69a drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d73b36c drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dd13ee5 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f0e9acd drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f1ebd92 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f80f6c5 drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f8169e2 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x502e1f2d drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x508f6138 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x529fe733 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54020fd2 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58895376 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e42205 drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59bcd494 drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a354853 drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a61a1c2 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa75dd5 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b17e6cd drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bb9b30e drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c9ae404 drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cd53ae1 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5dd54648 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f1b064e drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60442a0d drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x606cc07c drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6093ed28 drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60db495d drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x623d2f1e drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63f4b26f drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x644c5af2 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64a232e6 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6597539c drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66bfcad9 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x679389d4 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67c02b04 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68f9c011 drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a307c00 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a57624c drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b672dc7 drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b79d1e2 drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c294a58 drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ceca1ae drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d189458 drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d71a200 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6df600ef drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e1a43c5 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f4e8014 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71221d52 drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x729955ff drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72f5de69 drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73c09d94 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74108132 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74eaf26b drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x751df43a drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75c1fbe0 drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76954a60 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x769f5ede drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76c25cd9 of_drm_find_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79d059e2 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ab27ca3 drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b700869 drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b91e54f drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c0b4048 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c131c10 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ced79ca drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d13f96a drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f1cf78c drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f65a30a __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x6fe769c1 drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00bbf63b drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00e1e94d drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x034a4f17 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x039517ad drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03967858 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07179576 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08d685ea drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09d03ca8 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0a6a5f95 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0bc64915 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0df243ec drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ef4a2c0 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x102586a3 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11f742a7 drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x125d5cc1 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1282c76d drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12d9d95b drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x136db81b __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x17bbb24b drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x192d5425 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2042ff97 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20a0072c drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20b4f761 drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x227901de drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x252d8bd9 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2814f523 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b386b83 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c9ff789 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e446e7c drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30e46b7d drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31854d09 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31ab786d drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3428dc3b __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3585cc98 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x372da62a drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a4a5ed4 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c1afd8e drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c383133 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d6b1dfc drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e289754 drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e5f5202 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3eb9cf27 drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ee90e3f drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f8e85bf drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40e4c905 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x462b4e13 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x472f30bb drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x473610cc drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4834906a drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x48a70488 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x49dbacba drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b955e5c drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ba640de drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c443f0d drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4fb0d33d drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5376b738 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53815e23 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55545787 drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x577239f0 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57b78038 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57c8accd drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x58fa4d87 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c9e3808 drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d82d615 __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5f336cb9 drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x60bd892d drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x62061a56 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x634e6f49 drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x64c8357c drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6555e121 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6829ca42 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68a30655 drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x690d8442 __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b0b9550 drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ccf0d70 drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6cf6cfd6 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70066c23 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71821c2c drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x722329cb __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7719baaf drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7725922d drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78b2f388 drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x79d28f56 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b040545 drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ca7e954 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7d131ce5 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e016d38 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f96d90d drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x037b1874 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x0a5fc731 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x1465ca2a mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x22d6fb1d mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x28a139a5 mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x38eb3b45 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x4a673f60 mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6ed0e610 mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x74659651 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x768e67cc mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x338d4e13 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x36778e5f drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x77a98918 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x11bea9b0 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x1801ada7 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x244f55f2 drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x28d0cee6 drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x35478b52 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x40039a74 drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x47defcf1 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6a0b9689 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/rockchip/rockchipdrm 0x4fcbe133 rockchip_drm_wait_vact_end +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x04641cd4 drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x239deef5 drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3363898c drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3facd293 drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x467a94b4 drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5429e353 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x576796a2 drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x584b8229 drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5ba95330 drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7653c914 drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7e35c425 drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00f3e73b ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05b619f5 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09260316 ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0a040f5d ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x120501d6 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x138e0bfa ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17b9394f ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ae87912 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1fa62696 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x21109b2f ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x259122c2 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29551615 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c1c00a2 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x352ba0d6 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x398acb09 ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b5792a4 ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3bfb649c ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44894c53 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x467f1f6f ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x473ad4fb ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47eac59a ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4bf29cbe ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x597beab1 ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5b7c9e18 ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5df243fd ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x675852f7 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e383105 ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fa639a0 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x729db630 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78b18f2d ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x79696091 ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d9e3d84 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0fb9b2cd host1x_device_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x35169966 host1x_client_suspend +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x35e5d43c host1x_channel_stop +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x37192592 host1x_client_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x37389c30 host1x_get_dma_mask +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4447eff6 host1x_syncpt_read_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x46fa5178 host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4cf87fde host1x_job_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4e4de4dc host1x_syncpt_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x51de13ce host1x_syncpt_base_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x53deec85 host1x_bo_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x57553ccd host1x_fence_create +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x57a41d6c host1x_job_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x59769780 host1x_syncpt_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x5d64120b host1x_syncpt_release_vblank_reservation +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x6cdf6c7c host1x_job_add_gather +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x72e78e54 tegra_mipi_start_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x78538679 host1x_syncpt_read +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7adbcb38 host1x_syncpt_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7ecdf5b8 host1x_syncpt_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff __host1x_client_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff __host1x_client_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_bo_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_channel_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_channel_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_channel_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_client_resume +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_device_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_driver_register_full +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_driver_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_add_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_submit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_get_base +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_get_by_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_get_by_id_noref +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_incr +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_incr_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_read_min +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_disable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_enable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_finish_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_free +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_request +EXPORT_SYMBOL drivers/hid/hid 0x2b6aebb6 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 0x7cfe9e14 sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x43e601fb i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x62ff5b8b i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x7fffffff i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x43de780c i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7fffffff i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x7fffffff amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x7fffffff qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x595d387c iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x7eb9615e iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x565817de iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x7fffffff iio_kfifo_free +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x45ba875a mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x77b96386 mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x7cb42726 mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x52e8810b hts221_probe +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x7fffffff hts221_pm_ops +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x12c5d8ba bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x7fffffff bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x11acb8c9 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x511c02f0 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x7fffffff st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/industrialio 0x06dbf203 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0x1389b5de iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x2192b83a __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x51058e4d iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x5143a641 __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x5339607f iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x668f344f iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x794d5088 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x7c6d81cf iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x7fffffff iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x0492acd0 iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x1bd6d0c6 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x21625a10 iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x5c5741a7 iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x12fe52f3 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x1df2c6c1 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x2d2b150f iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x7fffffff iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x14f49ca2 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x4aa3368c iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x09be261c bmp180_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x1e0455fb bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x7fffffff bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x7fffffff bmp280_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3d7083c1 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4c6e979e ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x500e907a ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x601a2e81 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x71c8c925 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0032e022 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0081e354 __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x016b33ed rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02f4c2eb rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03f47b39 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03fee4c2 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x055b2fcf ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05c2257f ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05f1ffcc ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06fd92b3 rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x076bd4f8 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x077c3b33 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09403d55 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0afcde89 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b66923b ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c54c93a rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c651003 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e852629 rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e9a8bfc ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11146aba rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13e86649 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x160abf08 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17e28c63 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17ee01df ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x193f58de rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b33953e ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b92e4ab ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1bc046a3 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1cb1fffe rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d7a7d92 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d993033 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ee2ae47 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20367422 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x211990df ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21255256 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x228730d8 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22e9f401 rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25c20488 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x25e5f077 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26be1994 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29bc18f1 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b550586 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c84600b ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e2a5ee5 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2eebd0c2 rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f384613 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3028d5aa ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31bf7b5c ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33632812 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x379f6851 rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x393f7326 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ae193f6 ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b72ff50 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bc9d703 rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3cfdbf49 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3dbdf4fa ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f085686 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f74610d rdma_rw_ctx_destroy_signature +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 0x4464c300 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb5669 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48c70fcb ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c2a3896 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c78e7b8 ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c96a116 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d0aac58 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e155af0 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e4f90d7 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4e90435c ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ec406b0 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ff28419 rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x515d4da0 rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52878cc6 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52d57f1b ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x599a69b2 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bf6f15f ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c60e02e _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e018a03 ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e5b05f8 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fcfac5d rdma_copy_src_l2_addr +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 0x643bd01d ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6581ca90 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x668e92ae ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66929be6 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67b206ec ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x682ae066 ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b23cca3 rdma_destroy_ah_user +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 0x70509183 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x734f9b76 roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x743d0326 rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74fdb926 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x753bd1e6 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d62fb6 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x764cf515 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76dfdcfe ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77d38621 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7856dd06 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78a707e5 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78c9fca0 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e6e35b7 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f07e815 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_event_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_wc_status_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x0257f594 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x092fb952 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x196a07cd uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1ad21b2e ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1b54bd5d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1f706c82 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x21f6a87a ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x222d030f ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2fccd7a4 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x32c4881b uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x414cb1ac uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x428886f9 ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x48842adb uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4e984732 ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4f8f16ee ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x5707f326 ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6128c520 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0575dc16 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x26713eeb iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2ecd9b23 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3b38bac6 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4304d7c4 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5e7ab0e1 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05452cfd rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1a79c6c0 rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21c9338a rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2e5e0429 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3bc7ae90 rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3f908cba rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x41c48be1 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4a69a722 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4e9b380b rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5c5d1497 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7288b4d9 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x751fe749 rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7c3445b4 rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7f1b3dc5 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x5a48c8ef rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x6c1df507 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2510363a sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2c136861 rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5748d0ae rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x67029a33 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x6f8adcd1 rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x00e687ac rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x084d3e88 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/input/gameport/gameport 0x70271636 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x77566f5c gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_unregister_driver +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x23ec3bd1 iforce_init_device +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x7fffffff iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x7fffffff iforce_send_packet +EXPORT_SYMBOL drivers/input/matrix-keymap 0x7fffffff matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x39171f12 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x5e57e368 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fffffff ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x665044f4 cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_suspend +EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0x4ea1f763 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0877c5b3 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x4e29e0e5 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x56773a8d sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7fffffff sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7fffffff sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7fffffff ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7fffffff ad7879_probe +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qnoc_probe +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qnoc_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x13cb7410 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x229bb470 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x368f1a7a capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fffffff capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fffffff 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 0x7fffffff isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x2b4114a7 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6dff2780 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7fffffff mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7fffffff mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x2abbefca mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x632c21b9 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x06b3fb87 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0f3d3e8e mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x128963ef recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x15f9ba8b 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 0x2a1bb97e queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2a67be16 recv_Bchannel_skb +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 0x3e24cc5e mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x441ffb6f recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x443b555c get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x525fad65 create_l1 +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 0x69934e01 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x769ccdad mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x79674192 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7cc0e011 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff mISDN_dsp_element_register +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x0231600a ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x3cd72f42 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 0x7fffffff ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/mailbox/mtk-cmdq-mailbox 0x7fffffff cmdq_get_shift_pa +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x6d603f9c omap_mbox_enable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x756cd198 omap_mbox_request_channel +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x7fffffff omap_mbox_disable_irq +EXPORT_SYMBOL drivers/md/dm-log 0x0c83e237 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x155cbc94 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x64a1d6ae dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x7fffffff dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3209ef9c dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x7fffffff r5c_journal_mode_set +EXPORT_SYMBOL drivers/md/raid456 0x7fffffff raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x004564b4 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x155d1415 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x33230685 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4efe26dd flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5c60a65f flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x41f6020a cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7c4a3b74 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_update +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7fffffff cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x7fffffff ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x49049026 tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x30c3a7db vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x364dbdf3 vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x3adaa9ff vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x43caf22c vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7fffffff vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7fffffff vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x7fffffff vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x7fffffff vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x7ecaa20d vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x019cd2d3 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0f533d19 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x11739e26 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1609d70c dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1617836e dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1d74e824 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1e7a8283 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ee9f8c2 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x214d5b4e dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x229ffd2e dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x22d5a8cb dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2a410e1b dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2c12c287 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x32ceddf3 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x356ee63e dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x35d20418 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 0x564936cf dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6713bc5b dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7540334d dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x793edfe4 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7e8740a6 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-frontends/ascot2e 0x1ab5dc98 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x7fffffff atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x12bb0a89 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x39ffa475 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4ebd0d33 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x64bbda4e au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x677faecc au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x7fffffff au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x7fffffff bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x4786831d cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x7fffffff cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x5c96c972 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x2697b425 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x53af09f2 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x7fffffff cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x5614f075 cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x529eb132 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x7fffffff cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x7fffffff cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x7fffffff cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x7fffffff cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x7303c65f cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x17963e62 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7cad7277 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7fffffff dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7fffffff dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7fffffff dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x184a9f97 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x242b5665 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x25fde43a dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4f0b593f dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x52b6c348 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x55211724 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6b5fe6c8 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x77fa3b09 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7a767d45 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x7fffffff dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1672c366 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x36659c35 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x414e00e8 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x7785f58b dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7023e5f2 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x12f8571f dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x15824e3a dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x1c96c4f6 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x4fac98c8 dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7d3a2b8f dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x0e24ee3e dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x3cfefeb9 drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x5d1eebdd drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x225879cd drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x6125fd8c ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x7fffffff dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x61a9b0f1 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7fffffff dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7fffffff dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x0000af51 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x5f2fc5a4 helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x7fffffff helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x7fffffff horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x7fffffff isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x326582ae isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x7fffffff isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x7fffffff itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x7fffffff ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x2218bcc9 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x7fffffff lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x7fffffff lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x7fffffff lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x638602d4 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x1e7e9f91 lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x7fffffff lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x15918ffd lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x7fffffff lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x2e3a6181 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x6373f981 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x7fffffff lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x51c11ee3 m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x7fffffff m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x6cb53d02 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x06722aaf mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x17ba1ef0 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x7fffffff mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x7fffffff mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x7fffffff nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x571c66a1 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x70f6861b or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x7fffffff or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x4aa6fc0c s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x3e44b86f s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x10bd2b3c s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x6337a720 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x30f595b3 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x7fffffff s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x7fffffff si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x392c9a94 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x5007229e stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x7fffffff stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x52521f2e stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x5529d4c2 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x5c4d59c9 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x1e32325d stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x221c02d3 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x7fffffff stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x7fffffff stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x575f8b27 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x43c48c31 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x03d2ebbe stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x7fffffff stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x7fffffff tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x7fffffff tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x44ce0499 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x7fffffff tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x7fffffff tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x5b4f39d7 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x7fffffff tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x2887775b tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x7fffffff tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x7fffffff tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x7fffffff ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x713d0533 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x1f59ee08 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x020525b7 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x5713da31 zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x7fffffff zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x0630623d zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x7fffffff zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x12e48111 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0fb7ea41 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x25293b53 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x4d8fb201 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x705420b7 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x418e412e bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4fb0df38 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x639f9630 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x751d901f bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7fffffff bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x3bcf3e50 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x463f5b57 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x4d3b5b6e bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0f3f2019 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x16f4d48e rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x2d6c2b1e dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x39c2d54a dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x4a2ae990 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5a8e7021 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x7fffffff dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x4ad1c2c9 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x60eeceeb cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x6e753d0f cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7d8421e0 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7fffffff cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x16c224ca cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x701adbb0 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7ed078bd cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x1c7b0587 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x7fffffff vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x70778d47 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7abb135c cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7fffffff cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7fffffff cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x1df3f82b cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4010fb57 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4a0f31c3 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x679e76f3 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x070fbfc7 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0e2445a8 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x114176a0 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x16d53877 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2a9ef7e2 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x327b24e2 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4911f222 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5ba880e6 cx88_core_get +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 0x68b7d141 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x73318d15 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x772d159d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x774831f3 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x3c77ff00 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0afeb0a6 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x119a5d39 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x53735791 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x55c91b42 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6b50bfd3 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7d22151c ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0ea90ef5 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x24407da6 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x2cfd6bef saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x330022ab saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x337e3fbe saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x374c5995 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3eb9d73d saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5eb16144 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7f68c76e saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7fffffff saa_dsp_writel +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x6671c6ea vdoa_context_configure +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x787fe8a8 vdoa_device_run +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fe3d6f9 vdoa_context_create +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fffffff vdoa_context_destroy +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fffffff vdoa_wait_for_completion +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x5b554d4b csc_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x66368505 csc_set_coeff +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_dump_regs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_set_coeff_bypass +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x486ed65f sc_dump_regs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x64a7d78b sc_config_scaler +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x699ca8dc sc_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x7fffffff sc_set_hs_coeffs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x7fffffff sc_set_vs_coeffs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x142c5640 vpdma_map_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x163e1a86 vpdma_free_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x16471806 vpdma_enable_list_complete_irq +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 0x28b17ec9 vpdma_get_list_mask +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x3bb6047d 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 0x4c1acd74 vpdma_clear_list_stat +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x4ccc5198 vpdma_unmap_desc_buf +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 0x60708dc6 vpdma_raw_fmts +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x6456c0c6 vpdma_hwlist_release +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 0x754094d3 vpdma_set_max_size +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_add_cfd_block +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_add_out_dtd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_dump_regs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_free_desc_list +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_get_list_stat +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_hwlist_alloc +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_hwlist_get_priv +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_list_busy +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_list_cleanup +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_rawchan_add_out_dtd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_reset_desc_list +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_set_bg_color +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_set_frame_start_event +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_set_line_mode +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_submit_descs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_update_dma_addr +EXPORT_SYMBOL drivers/media/radio/tea575x 0x016d2ab0 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x02f8717a snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x0faf477a snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0x102a6560 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0x502cdf26 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7fffffff snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7fffffff snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2d538888 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x59fa4717 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7fffffff ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7fffffff ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x1425f74c fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x5c8e1d66 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x308283c4 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x726be914 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x7fffffff fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/max2165 0x498d069a max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x463a1127 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x18c53356 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x0559a15e mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x7fffffff mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x1c6f808c mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x763a0b76 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x46f924cc tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x4c48939e tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x7fffffff tuner_count +EXPORT_SYMBOL drivers/media/tuners/xc2028 0x1f81fee7 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x7fffffff xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x45e30efb xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x3f2a9c2a cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x4bef81ec cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0da6b5cb dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4f4cbc84 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x5341383e dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6175ba2b dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6e82e997 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7e91c97d dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x1fbd7b5b dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3e816f23 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x65d933e3 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x7fffffff af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x7fffffff rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1f242e9b dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5323b298 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5614c57d dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x20ecbdc8 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x375edf01 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x28380b33 go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x6404c337 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7287fac1 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x74513cf9 go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_update_board +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x15f27b4e gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1ad0ff13 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x45aaf68a gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7944b769 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_suspend +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x01bb1951 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x12a5096f tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x4b47d255 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x140bc6bd ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x3fccc777 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x15c0a40f v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x2488f7bf v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x457ad68d v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x584214b6 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x6a413e6a v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x7fffffff v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x069e54fe 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 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0183b50b v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0db8dd31 __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e2a1c2c v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x130ee00f v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13e0ab27 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x18ef77da v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x227ab16e v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x23249deb v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2575e321 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2f4f463f v4l2_ctrl_handler_log_status +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 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x41a437f8 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4779ec97 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4a98b24a v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4c5eec30 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x526e942d v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5295d847 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x59e44b31 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6217b57e v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x65fd584c __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6ad705aa __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x72785303 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7406f477 __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x796ba13f v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_unregister_device +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x2027ae60 rpcif_sw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x3bd5e4c1 rpcif_dirmap_read +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x733e866f rpcif_prepare +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7fffffff rpcif_hw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7fffffff rpcif_manual_xfer +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0ee9f046 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3978f69a memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3ab058a6 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3eeea001 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x51755aff memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5493973b memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6c5bf3ea memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7e9a0d8c memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x00b51a39 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03fad6e5 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x08dcdb0b mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0e785484 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x10b316ce mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x150c0579 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2340913d mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28dc0daf mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3d939db9 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e84e65f mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x558dceb4 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x55cfabe7 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57b931af mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6a31be5e mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6bcd9c41 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6ddad511 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x065934d1 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06a276d8 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1805817f mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2347adb6 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x401f2db8 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4cb50950 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x57f4014a mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x58c43300 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x615713ab mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x63d68575 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6eac3ddd mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7725be87 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f5da3de mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_suspend +EXPORT_SYMBOL drivers/mfd/axp20x 0x26a6f6cc axp20x_match_device +EXPORT_SYMBOL drivers/mfd/axp20x 0x37d8d45a axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/axp20x 0x7fffffff axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/dln2 0x09a83492 dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0x7fffffff dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0x7fffffff dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x12103a9f pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x7fffffff pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x15c5bb11 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2093ac7a mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5da2575e mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6f1191e0 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x72991cac mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/qcom_rpm 0x7fffffff 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 0x7fffffff tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/wm8994 0x58f9de65 wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8994_regmap_config +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x51693680 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x7fffffff ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x2fb85933 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x7fffffff c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x7fffffff c2port_device_unregister +EXPORT_SYMBOL drivers/misc/tifm_core 0x01d243b5 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x0e56e23e tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x5127f490 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x534f64e3 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x586b05e4 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x6c1e7dd6 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7b39e380 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7d1ae70e tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_unregister_driver +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x3d5ebc8c dw_mci_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x3ecb727f dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x7fffffff dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x7fffffff dw_mci_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x7fffffff mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x7fffffff mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x45258595 cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4b7334e5 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x7fffffff mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x7fffffff lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x102603bc mtk_ecc_get_parity_bits +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x24351100 mtk_ecc_enable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5437e775 mtk_ecc_disable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5de55d81 mtk_ecc_get_stats +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x6df58afb mtk_ecc_release +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x6f49e815 of_mtk_ecc_get +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x76e53683 mtk_ecc_wait_done +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7eb47fa9 mtk_ecc_encode +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7fffffff mtk_ecc_adjust_strength +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x19990015 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x7fffffff onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x5bd87c71 denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x75128e20 denali_remove +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1cc2a86b arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x2687a6b4 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x33580ee7 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x56405a7c arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x63b5c518 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x01d0e123 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x29077cde com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x55f0bcbe com20020_found +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x45047914 ctucan_resume +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x76efe415 ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x7fffffff ctucan_suspend +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x025199c7 b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x037cab81 b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x03cdf458 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2989f81e b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2af3c762 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2e520bc3 b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x36226068 b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3689fde3 b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x40c48721 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x43b51d49 b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x44b2c36a b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x481b3051 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4dcf0359 b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4eb2e778 b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x1dbcf849 b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x603afe5b b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x77c8ab7c b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x7fffffff b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x705abc9b lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x7fffffff ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x7fffffff ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x2c1f9dd2 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x172bb782 vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7fffffff vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7fffffff vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7fffffff vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x39430ddd xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x40fe84a3 xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x5d7ccc20 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7004e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1a0681c0 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x532d83b7 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6209f67a ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x7fffffff aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x7fffffff bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x74c228dc cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x161cb0a9 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x32092c41 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x381410a8 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3c97abe2 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5379296d t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x54552eea cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x642dc1b4 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x73fee0eb cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x759ee455 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04be42ee cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x07197830 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x072e6349 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0adf8c93 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0fe39582 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x109a70cd cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1304a236 cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2081419d cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x23d5ca16 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x29f00c7b cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2a3600a0 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2cb1e7f8 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2d78ddf4 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3126964a cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x352b3ce8 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3df99e71 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x42218220 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4252825f cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x47a7777a cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51b47310 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5fa76997 cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x62471afa cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6a51dc68 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6e47f56c cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74ba4953 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7a6b9ec2 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7dae4193 cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0cf8613a cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x19e2c2f0 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 0x456ab0d4 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4caebc9d cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x533b8b84 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7fffffff cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7fffffff cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x0f0f9fc2 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x154786cf vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x23c07599 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x4848cc9a vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7174a6db enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7fffffff vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x7fffffff be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x7fffffff be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb 0x0c5f76f8 enetc_ierb_register_pf +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304 enetc_phc_index +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x5a3ec6fc fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x6ab30573 fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x047d897e hnae_ae_register +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x26fb36dc hnae_reinit_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_ae_unregister +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_get_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_put_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_register_notifier +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_unregister_notifier +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x7fffffff hns_dsaf_roce_reset +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x2e75f8c0 hnae3_unregister_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x50686769 hnae3_register_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x73a6bed2 hnae3_set_client_init_flag +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_register_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_register_client +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_unregister_ae_algo_prepare +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_unregister_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x4d92675d iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x61d32b24 iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x6dfaeca0 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0x7fffffff ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x7fffffff prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x7fffffff prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x04a69ee3 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0610fd7b get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10252639 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15458335 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25600458 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a2f528b mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2cc80dcc mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x305fdcd4 mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37b6dc1a mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3aa837cd mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b3311c1 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3dfdd729 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58e32edc mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c8689eb mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69dc432b mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b576573 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x780c4fa5 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7abeb6a7 mlx4_SET_PORT_general +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 0x7fffffff mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00a26a3f mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01787b8d mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x05d8689e mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x09da40f5 mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0db34de6 mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f2495df __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x10b36dc5 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x146b6684 mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15f04db2 mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17a2a602 __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18d0a496 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18e6de86 mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a9cff66 mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b4ec535 mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d49b73b mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2290f58e mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24fc9ca4 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25d6c2dd mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x273bdf9a mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2921761f mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b4ac1a1 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ce8a69d mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d5e542d __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2dad621d mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fcc337f __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3413bada mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x397e97f1 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f7bc455 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3fecda45 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40908dc7 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x411174e2 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42f4ebaa mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48dc8463 __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4956dd97 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49e6911f mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bb58bfb mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bf5fc73 mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ce5cd9c mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d642513 __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4de78ee9 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4e299164 __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f827d9f mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x558a9414 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5733a0fa mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x574695e7 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5966d1af mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a09a3d6 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5aff83cf mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bce9f42 mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c2ba9f7 mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c7c4429 mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ddbceb4 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5eb616d5 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60a35f8d mlx5_eq_create_generic +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 0x61f200da mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6202840b mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62631cf7 mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67702428 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68fddb6e mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6926a2a0 mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69ca3e71 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a6e0f52 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ed7057b mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x707c2f4a mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70b57b73 mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7437d61b mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x764de790 __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x794e04da __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x795fa084 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x79e2ac37 mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b87023a mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f351568 mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x7fffffff mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02678bb7 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x105667e1 mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x151f1dba mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1e091407 mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c0d760e mlxsw_core_trap_state_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 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38741956 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008 mlxsw_reg_trans_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +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 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5742217d mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a66a136 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x66e1a5f2 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6de60a22 mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7c0e4bda mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7d0157ac mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_allocated_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_drop +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_mcrouter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_continue +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_first_kvdl_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_schedule_work +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_set_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_trans_bulk_wait +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x424d90e6 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x7d1bdca5 mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x546c5677 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x7fffffff mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x00ad5ebc ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x03861ae3 ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x060fc5c2 ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x07190885 ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0846fb7a ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0e3fdbe5 ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1672a6e2 ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x171552b4 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1a69a213 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x220c7ece ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x241d678d ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x254d3928 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x25dc984e ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2796fe90 ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x29f3d9d7 ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3bacc2d3 ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3f400fca ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3fead236 ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x449aff42 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x496f9126 ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x49fb9f62 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5154e31a ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x51cd0055 ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x54e4ab1d ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5b550057 ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5ea320d6 ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x66c0bacc ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x69f26070 ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6f6128ac ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7f325be3 ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x4f264472 qed_put_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x5d93892f qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_get_iscsi_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_put_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_put_fcoe_ops +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x24f723bb hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x36c5d688 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3e987113 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x629b2532 hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7fffffff 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 0x7fffffff mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio45_ethtool_ksettings_get_npage +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x7fffffff mscc_miim_setup +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x6b93afd0 lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x7fffffff lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x7fffffff lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x43ce7ff2 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x3619ebc4 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x76b8af85 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7fffffff register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7fffffff unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x7fffffff sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x2b58dd2c team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x6dfdd63e team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_options_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4228fc26 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5b7b964e hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x61cf2a95 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x65539f30 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7a7aca6a alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x05be67ea ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0cc94ca5 ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x14723814 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x17813d5b ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2cd2afd8 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7704c399 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x008fdf06 ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0dd5524a ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x141a0bac ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x14397151 ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1604ee01 ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x19bdb567 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1a7eaa57 ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1ef87b8e ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x21e0a326 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2c3ed27f ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2c4dd18a ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x372db478 ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x395a5c94 ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x399c0adc ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3ea351a2 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x42f61a09 ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x49382032 ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4d5ba1c6 ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x58f4679a ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5ee2c36e ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x63d28f50 ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x646fdd00 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x67eb764f ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6875f7e0 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x688810a0 ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6d6fa83d ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x75887130 ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7704654f ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7758ffdd ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7b5f8e07 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7c8990f1 ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7e636755 ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0091dae0 ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x081ff4a6 __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x09192b63 ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x112270db ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2bd2a23e ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2f4af624 ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2f8f784c ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3163f3ec ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x352a08e0 ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4443ed68 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4a04ec3c ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x61a2dbed ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6c212ee1 ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x71a71107 ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x72e6c8d5 ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7394eaa8 ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x75db0b03 ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x76354503 ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x033649b3 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 0x14762286 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 0x3aa25c62 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5cf70fe9 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6dbe279d ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x726952a8 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1d233acc ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2da435d8 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2f493a8d ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x310fbefe ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4958ee74 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x601642e6 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x60a77981 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x617531f9 ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7c32bce5 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x004acb35 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x006b840a ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x014558c6 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x020020da ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a1ac36e ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0acd3c02 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d50394a ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ed41c79 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x103d9727 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x115d9f88 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1545e984 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1685d435 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x179661f7 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17b279df ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a237478 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c709156 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e90644b ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2123a254 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21f4546c ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22187346 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2293d17f ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22c7eb65 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c6317b7 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d3d9415 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e691571 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ee54dd0 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31c9da3f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33b3f40c ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c50d35c ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dde94da ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x402ae886 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4597b207 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48aed411 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c33fcb6 ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4df71300 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fae7c2f ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51c78d55 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52b660de ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c1ac899 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x613ab881 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6191510a ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61b013a1 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x669b2561 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69a6adb3 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ee65c74 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6fb6619e ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71a48997 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74c76639 ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x762cd78c ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78119397 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a44efd1 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a611b28 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c8df502 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fae2dcf ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x22d443d8 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x587044e3 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x7fffffff init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x00b76598 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x0b59611c brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e brcmu_boardrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x20a56634 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x4ecdba21 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x63e9ae47 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6bdc87ee brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x0620edda libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x132f4701 free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x43572715 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x58821d3d libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5a534bc3 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5e945e86 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5f85da8b libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x76b6dc1c libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x011411ed il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x021308cc il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x02c5d9a4 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x059102c4 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x06996eb5 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0850a068 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09207591 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0a1901ea il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0b950ff4 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ed81934 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0fd2e35c il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1129ce72 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x16c25415 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17561f81 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1dc61de3 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2071611c il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27072d12 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ac004ac il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2b5ab517 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x34781908 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x34bde28a il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35f2ad6a il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x38364469 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3def2bd1 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ef18aee il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f09d21a il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x444b49da il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4b8c01ac il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c5d1e00 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4d865217 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4de6351a il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x513f2400 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x56593d25 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x62014f84 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x644928de il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x645ba3b7 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x651277eb il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65469967 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x681ab371 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x69409a6b il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x697a05ec il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73294240 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7357ad5f _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75b4a710 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x772634df il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7a4b43eb il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b983863 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1030dd24 __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c5036c0 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6ff0d5fc __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x081cd8a2 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1319ae7b hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x188ccf53 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x28d71f60 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2a155788 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2dad15d9 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3953a987 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3ee6400f hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x3f0f35ce hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4aaf4a49 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4da0e649 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4e307c52 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x68daf30f hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x73a5c950 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x786a0aee hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x060b5347 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0af1ed9e orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0e35b882 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x0ed2a710 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x19365f4a orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x290beda8 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x37ded955 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x4f589e9a __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x58149162 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x5aa27da2 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7234ab62 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x2149c233 mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x7fffffff rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x050d22f9 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x0582b6ff rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09a7ee00 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x16cbfe99 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1e118008 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1f51128a 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 0x2c98da6e rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2f8bc9a2 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x36e93bdb rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3daea034 _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4277adca _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x470518ac rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x489de5b0 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4af3a4d1 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x58519cee rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x58be6174 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x614faffe rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6baa81c9 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7e316513 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x0668f902 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x0b34b7cd rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x16b298df rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7fffffff rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x3e377761 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x737cb4ac rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7fffffff rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7fffffff rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x049919b9 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0d75fcf8 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1739f97b rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1784d962 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1c7277f6 rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3c491fdb rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3dcafa32 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x41347e60 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x44567746 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x484a2a08 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4a6e0495 efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4c3f0e58 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5a52de3a rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5d3a401b rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x785d8546 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0x0d99020d rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x7fffffff rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x7fffffff rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0x09bb1381 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1a5b7c27 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b75681f rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b998c3a rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2813d8e9 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2f1e5915 rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x310f2941 rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x42254934 rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x435a17a5 rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x43dc593a rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4a420067 rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4d436909 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4e5134cc rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4e52d3ac rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5116362a rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x53e1570d __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5458c49a rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x54619664 rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x57293bea rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x583331c9 rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x61f55a9f rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6236a6f8 rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x66d3b133 rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6a56548f rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6b54b98b rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x73d59f78 rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x78fbd993 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x79833480 rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7b491bc2 rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7d083523 rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7ec93e71 rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x3262f995 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x76c4ce87 rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x7fffffff rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x7fffffff rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0x4fca6cc6 rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x7fffffff rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x069c5b7d rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x22f64d4d rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x23340740 rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x23d0d8a4 rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x23d72d41 rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x294e2111 rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2a530da9 rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2e08a157 rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x36ad1cca rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x39765697 rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3a533bbf rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3dfaf094 rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x42ba7e25 rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x441b34da rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4680b38f rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4df29b7d rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x51ff44ce rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5289060b rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x53535a51 rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7399f734 rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x74e09502 rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7510fa4d rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x22d80acc rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x28e4cac9 rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x3082f2ea rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x4d97c5d0 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x57313f96 rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x5fb58e2a rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x71cf76ee rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x71db018c rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7f167f0a rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x50b5b5b4 rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x34d4aa57 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x526b234b wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x574a779a fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x7fffffff fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x7fffffff microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x7fffffff microread_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x6143302f nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x7fffffff nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x7fffffff nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x26138c60 pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x48f0a845 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x7fffffff pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x74dc7281 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x08ffa486 ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x1a5abf7d st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x3705ca8d st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x51144be8 ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x66d4780e ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x0faa0e0b st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x14ce7763 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x16c1157f st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x194f91e7 st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x1cf5d6a6 st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x41f302b9 st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5060e6e9 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5f6cca75 st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x606193d8 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x66849505 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x69a901cb st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x70488488 st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x77c7f612 st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_se_init +EXPORT_SYMBOL drivers/ntb/ntb 0x2268675b ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x478e84ce ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x532bcc69 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x668f21c4 ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0x6840762c ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0x68bebcc2 ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0x70841a3a ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x78603160 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/parport/parport 0x17fc789c parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x1d360765 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x217b5eed parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x28460abc parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x34c49f31 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x3620b721 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0x3c8fde7e parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f30d205 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x4f532424 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x57b15a64 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x60f400df parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x6e205b94 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x6f8e72b2 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x7cc0125d parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x352e4836 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x7fffffff parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x07511c65 pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1c780fab pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2b95b664 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x33be74f5 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3ada6c3f pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x71648be9 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x070924c5 pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x0f469b75 cros_ec_unregister +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x30734c3f cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_irq_thread +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_resume +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0x583d3b23 rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x3330a1c8 qcom_smd_unregister_edge +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x5e781d9d qcom_smd_register_edge +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x6aa123d5 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x7a76cf90 rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x09108022 rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x160f3a83 rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x20e7bfd8 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3678820e rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x399fb85b rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3f6e9fad rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x4689193e rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x4aa8acb1 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x4b437d25 rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x78401f8c rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x78740860 rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7885d534 rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fc8ef73 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0x7fffffff rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x0cb34101 ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x53af3b0f scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x5c8b819b scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x760b170d scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x7fffffff scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0013bb48 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x33710750 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3444cf90 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3ead1d2c fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6fdc5ec4 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x051a876c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x062c1f47 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11cc73d9 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11f974e6 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14fc6e8b fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16374dd7 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2246e042 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28c86010 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a477086 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e1602c0 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2e1f7c44 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ddd8ad9 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f877981 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x43c3d385 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4971f162 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4b482772 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4dc632cd fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50677973 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5128cb88 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58bf354a fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ab41f0c fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d3aa345 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65e38223 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66abddb2 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69089618 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78d4b704 fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3407a7 fc_seq_start_next +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_done +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_release +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x18841978 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4ec2e79a sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7fffffff sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7fffffff sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x48e7812b mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7fffffff mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7fffffff mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x07397c41 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0d92f960 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2e94c117 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x37d7e0cf qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5981eb5c qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5f437e2c qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x6a23605b qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/raid_class 0x73e9ee24 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x7fffffff raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x7fffffff raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0bd59eb3 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0d4b98ce fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1f93a951 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27d3984e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2a927e0c fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x33f05e29 fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x506bbfde fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x62d52670 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x63adf151 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x798afc3b fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7bdcb444 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x097dcc3c sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0fcb7a85 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x17ab7e41 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21eef193 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38fbb058 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x42cf82c2 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x552cb7db sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x67dd2faa scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x76935e68 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7eea0d6e sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x59e4f8ed srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x640343af srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_timed_out +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x0597f357 cmdq_pkt_write_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x0d344c47 cmdq_pkt_finalize +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1adc7386 cmdq_pkt_write_s_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x20cb37a2 cmdq_mbox_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x22fbccc1 cmdq_pkt_flush_async +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x29537aaa cmdq_pkt_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x29cfe8c0 cmdq_pkt_write_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x31b45f26 cmdq_pkt_poll +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x437bfc1a cmdq_pkt_assign +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x47ef9293 cmdq_pkt_poll_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x60db9531 cmdq_pkt_wfe +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x64a280fd cmdq_pkt_read_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7525fb04 cmdq_pkt_set_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_dev_get_client_reg +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_mbox_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_clear_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_jump +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_write +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_write_s_mask_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_write_s_value +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x4031ce7d of_get_ocmem +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x7fffffff ocmem_allocate +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x7fffffff ocmem_free +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x1c76ea4d pdr_restart_pd +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x432975e6 pdr_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x47b2ed49 pdr_handle_alloc +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x7fffffff pdr_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x16807e3a geni_icc_enable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x17536351 geni_se_get_qup_hw_version +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x249e1e9b geni_icc_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x2d75a926 geni_se_resources_off +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x32a880a8 geni_se_config_packing +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x4282d372 geni_se_resources_on +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x551d710a geni_se_init +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x5962db54 geni_se_clk_tbl_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x61d20323 geni_se_tx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x67fef873 geni_se_clk_freq_match +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x68bb55f8 geni_se_tx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_disable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_set_bw +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_set_tag +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_rx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_rx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_select_mode +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x2333aed6 qmp_put +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x7fffffff qmp_get +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x7fffffff qmp_send +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x133168aa qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x47b8abfe qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x4bf185a9 qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x520980f7 qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_handle_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_txn_wait +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 0x7fffffff qcom_smem_get +EXPORT_SYMBOL drivers/soc/qcom/wcnss_ctrl 0x7fffffff qcom_wcnss_open_channel +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x05e824c9 sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x165dce96 sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x16d1706b sdw_prepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1cb9cd92 sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x1deee061 sdw_find_row_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x252c575d sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x289d11a9 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x37ec762b sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x49f7d3c9 sdw_bus_exit_clk_stop +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 0x653752f6 sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x69e4e03a sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6eed2ca4 sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_write +EXPORT_SYMBOL drivers/ssb/ssb 0x01922893 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x13e0672a ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x29905718 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x324bf21c ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x42a90d7e ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x4800ecb1 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x764aac13 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x7846c331 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_set_devtypedata +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x02b8a77e fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0bd21ebd fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0e45e8f9 fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5290e566 fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x53613452 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x57536631 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x587df4b8 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x6b525f8f fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7323b28b fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x40f84d0b gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x7fffffff gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x7fffffff gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x6f17675a adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x6ad55318 ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0x7fffffff sp8870_attach +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x16c907fc nvec_write_sync +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x7fffffff nvec_write_async +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x01861371 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x01ef24b7 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x056103eb dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06020a34 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x12cdb89b rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1804b7cf rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x18cc0c67 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1b44ec24 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ed65044 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1f574f8b rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x231cd6f3 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x33a10f48 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x34bd4c21 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x38bb8968 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x39bc83d0 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3b645a6d rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3f735aa6 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x438c450a rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x452359a1 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x46fc8aa4 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x53bc785f rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5a1d3828 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5df09b01 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x62cf9f42 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x692c7ad9 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6cc0cacd HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e4e59a1 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x75d21bc9 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x781e0873 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7885e752 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7b9adafd rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03ab7b82 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x03df5e05 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08043d5c ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1374c33a ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x13c0e075 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14837b03 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d28b138 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d5b975f is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x21ae64c7 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x22c77dea ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c6005ca ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x31310118 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3730ece9 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f01cc8a ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4049fee0 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x48ec4d78 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b6b7df9 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e8e1606 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4f9e6f2a ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x515cb4bd ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51bdc571 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x526b7e48 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56a4fc30 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5860760c dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a2abdc2 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5bb619ca ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5cdb1add ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6af7fff4 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d5e3763 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7132c4eb HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7147743f ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x718ca2ec notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71e5acc0 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff to_legal_channel +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x013e9b49 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0585c1c8 iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x10ba3d2c iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x28ed9770 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x30cad88e iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3185377e iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x327f76c7 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3435f593 iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x498b07ff iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4cae1d3a iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4d439fe2 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4fb866a4 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x51e43a2f iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5239ce80 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x53283428 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x53953749 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x58e537a6 iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6544cc8d iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x700d5a7d iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7481ff08 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x75182016 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x75c0495c iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7aca3e93 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7dab9a52 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7e80cea0 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7edb079a iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/target_core_mod 0x05f3201f target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x08fbb943 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x0ae25110 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0cc9e3ab target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x0d7a5fd2 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x17295ef2 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x20132be0 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x22fa73bd target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x26024a5f target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x2620d8d6 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x2996f92f target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x2eba3bee transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x324dfb32 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x3734c889 passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x411fa1ad transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x41abd1d8 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x43504ca4 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x46572a65 target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x474c8cfa target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x48f6be27 target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b752000 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x51a2bb47 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x51c90a9d spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x521b0eed __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x55cd4e4f sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0x567e72b1 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a625bff sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c425025 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c8a3466 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e0d5d25 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e244aff target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x65d091b8 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x69c0465b target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a22a23e target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x70034bd6 target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x700f3004 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0x77916c87 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x794c5422 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a5364f2 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c47aa74 target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e4372da spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x04799112 ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x20d6315c ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x3f40afa5 ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x7fffffff tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x7fffffff tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x76a87d9a ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x7db3f0e7 ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x5537bb45 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x7fffffff usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x5e656702 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x07dd110a usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1a353170 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x230128f2 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x32745050 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x37d4be3f usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6616375f usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7e479265 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x07e854bf usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x7fffffff usb_serial_suspend +EXPORT_SYMBOL drivers/vdpa/vdpa 0x1baf98be vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x39e83bb2 mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x4a5ff84a mtype_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x5c9fef36 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x60867e2f mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x6f72cf58 mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_unregister_driver +EXPORT_SYMBOL drivers/vhost/vhost 0x74db2496 vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vhost 0x7fffffff vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vringh 0x102c8234 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x140ceb39 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x221d4624 vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x261fea85 vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x26c60a08 vringh_notify_disable_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 0x4164520a vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x5dfbeba4 vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x723ab668 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x79b927f7 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x79c86ceb vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7c007927 vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7c2e8833 vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_enable_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7fffffff devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7fffffff devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7fffffff lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7fffffff lcd_device_unregister +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 0x2185ce39 svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x29e13352 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_check_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_compute_pll +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_get_caps +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_match_format +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_settile +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_wcrt_multi +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_wseq_multi +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x78caeca1 sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x7fffffff sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x6892e78d sys_imageblit +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x275f8e03 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x7fffffff cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x7fffffff mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x7fffffff mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x5162f576 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x5c2c3561 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x7fffffff g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x15f080cc DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x66c1d018 matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x73c8f377 DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x7fffffff matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x7fffffff matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x7fffffff matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x208553eb matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x791a88dd matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x7fffffff matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x4d47f947 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x685c90c2 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_vgaHWrestore +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 0x0b769c6e dss_mgr_connect +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2423d741 dispc_ovl_setup +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2c353a5b dss_install_mgr_ops +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x2d77ad28 omapdss_output_set_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 0x308d4dab dss_mgr_unregister_framedone_handler +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d dispc_mgr_set_lcd_config +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d6656f6 omap_dss_get_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3e912096 dss_mgr_set_timings +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 0x473b1743 omapdss_unregister_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 0x4ed68e67 omapdss_find_output_from_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x4f86ed27 dss_mgr_start_update +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 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x660ad7bf omap_dss_put_device +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 0x718fe3aa omap_dss_find_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x71a3227c omap_dss_get_overlay_manager +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7d6ca36a omapdss_find_mgr_from_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_free_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_framedone_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_sync_lost_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_vsync_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_go +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_go_busy +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_is_enabled +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_set_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_check +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_enabled +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_set_channel_out +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_read_irqenable +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_read_irqstatus +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_request_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_runtime_get +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_feat_get_num_mgrs +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_feat_get_num_ovls +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_disable +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_disconnect +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_enable +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_register_framedone_handler +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_set_lcd_config +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dispc_register_isr +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dispc_unregister_isr +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_find_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_find_output_by_port_node +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_next_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_num_overlay_managers +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_overlay +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_pal_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_video_timings_to_videomode +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_compat_init +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_default_get_recommended_bpp +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_default_get_resolution +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_default_get_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_is_initialized +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_output_unset_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_register_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_register_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_unregister_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff videomode_to_omap_video_timings +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_free +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0x7fffffff save_vga +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x12103588 is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7c9f9f37 virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7fffffff virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7fffffff virtio_dma_buf_export +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x0dd92a35 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x7fffffff w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x060ec9d3 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x7fffffff w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x401854a4 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0x7fffffff w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7fffffff w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7fffffff w1_unregister_family +EXPORT_SYMBOL fs/fscache/fscache 0x01b69d72 fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x04650b5d fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0x08852dfd __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0x0d8cbcb9 fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x23ab401d __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x2ea6dee0 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x35320067 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4fee8f19 __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x54029e77 __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x54ddf18e __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x57300238 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x5cc0aad2 fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7250605c __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x7990746a fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x79c17b43 fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x7c4daa19 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_wq +EXPORT_SYMBOL fs/netfs/netfs 0x32f17fed netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x6ab8a115 netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_subreq_terminated +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x06a4faaf qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x221188d5 qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x4cea9830 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x4ebaea62 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x6dd0b5a5 qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x7fffffff qtree_entry_unused +EXPORT_SYMBOL lib/crc-itu-t 0x7fffffff crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0x7fffffff crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x65aaf037 crc7_be_syndrome_table +EXPORT_SYMBOL lib/crc7 0x7fffffff crc7_be +EXPORT_SYMBOL lib/crypto/libarc4 0x2bb32ad1 arc4_setkey +EXPORT_SYMBOL lib/crypto/libarc4 0x7fffffff arc4_crypt +EXPORT_SYMBOL lib/crypto/libchacha 0x7fffffff chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x4c9268e1 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x635b1a76 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x64375eb4 chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x738d84bf xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x7fffffff chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x7fffffff chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0x7fffffff poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0x7fffffff poly1305_core_setkey +EXPORT_SYMBOL lib/libcrc32c 0x7fffffff crc32c +EXPORT_SYMBOL lib/libcrc32c 0x7fffffff crc32c_impl +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 0x7b43a73a lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_committed +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_del +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_find +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_get +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_reset +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_set +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_try_lock +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 0x7fffffff 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 0x7fffffff LZ4_compress_HC +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x7fffffff 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 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 0x7fffffff objagg_hints_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_obj_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_stats_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_stats_put +EXPORT_SYMBOL lib/parman 0x0f518717 parman_prio_init +EXPORT_SYMBOL lib/parman 0x7b03d378 parman_item_add +EXPORT_SYMBOL lib/parman 0x7fffffff parman_create +EXPORT_SYMBOL lib/parman 0x7fffffff parman_destroy +EXPORT_SYMBOL lib/parman 0x7fffffff parman_item_remove +EXPORT_SYMBOL lib/parman 0x7fffffff parman_prio_fini +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 0x7fffffff raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gflog +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gfmul +EXPORT_SYMBOL net/6lowpan/6lowpan 0x3cc09cc6 lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x3e5ed130 lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x494da7f5 lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x6ab281d3 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0x78d376d2 lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7db93e1b lowpan_unregister_netdev +EXPORT_SYMBOL net/802/p8022 0x7fffffff register_8022_client +EXPORT_SYMBOL net/802/p8022 0x7fffffff unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x237a45bc unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0x7fffffff register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0417dd84 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x07ae0bb4 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x12b06772 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x18f105b0 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x19e7d3f5 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x2125d7fb p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x22a05bbe p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x2a054982 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x2c4a8156 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x3292351f p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3a95bbfe p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x3b094f04 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x3d0dd6fa p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3d986cf9 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x3f8fd91c v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x4878dbe7 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4ac80322 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x4e449951 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x510c90c1 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x511b63be p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x55feb0da p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5d58cc0c p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x67d8de3d p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x6c77bca1 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x717b3cc1 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x78d3c174 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x7de6cd6d p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff v9fs_register_trans +EXPORT_SYMBOL net/appletalk/appletalk 0x06a6c237 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x68309aff atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x7fffffff aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x7fffffff alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x08573008 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x22c164d7 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x2361b43a vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x34740e7c vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x4dcb6fac atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x50d4bd19 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x5782e7db atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x5ed44582 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x6b9a3871 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_charge +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0x7fffffff register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x7fffffff sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0x7fffffff sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0x7fffffff vcc_process_recv_queue +EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x199504d7 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2f76d553 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x36e65168 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x399a8fbb ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x620551e3 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x04f3d981 l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x07f4053b bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x09c0f7ea hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c255b07 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x123a8363 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x12b1a4af __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18a0bfb5 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1fb13daa hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x329e3355 __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3abc4654 hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b5bb49e l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x433ded75 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x459aa0ec bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e2b6255 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e93e3f2 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x539f8f71 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x56766ac6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c0988da hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x66f919d1 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6e9ca261 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6fe8b2c1 __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x78fcee4f hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7940d3ae __hci_cmd_sync_sk +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 0x7fffffff __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff l2cap_register_user +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x076fd4db ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4538a03f ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x76f26b4f ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_register_template +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x2e64d5b9 caif_disconnect_client +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 0x6bc718a3 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_free_client +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfpkt_set_prio +EXPORT_SYMBOL net/can/can 0x2f0de9a2 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x5b67a60b can_send +EXPORT_SYMBOL net/can/can 0x667f4811 can_sock_destruct +EXPORT_SYMBOL net/can/can 0x7d7a54a1 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x7fffffff can_proto_register +EXPORT_SYMBOL net/can/can 0x7fffffff can_rx_register +EXPORT_SYMBOL net/ceph/libceph 0x00e92f04 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x020fea18 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x03c0191d ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x073e53e0 ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x07dbcb80 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x0a3c60e0 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0x0dfe2a21 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x1617d0ea ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x18902fc3 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x1c529b13 ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x1cba3f20 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x22605838 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x236feaff ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x2511960c ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x27e5e876 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x2b8e6ae9 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x2d01eb9f ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x2fadb1a7 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x2fc8395a ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x2fd1792d osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x317ac0ee ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0x3522979c ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x361e86dd ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x3b16c6a6 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x3c80692a osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x3d0f2a7c ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x3d5d70c2 osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x416ea574 ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x45044d94 ceph_find_or_create_string +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4680719f ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x47d641d2 ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x497a3304 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4c1b56d3 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x4e7000d8 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x50f655c4 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x563bb817 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x5732134d ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5ba68a3a osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x5ca7c344 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5d2c7ad3 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x5fafca02 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x603bb633 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x634f378e ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6431869a ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x644b6e50 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x647b2500 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x68317c62 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6ab73894 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x6cb5d4b5 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x6d32f37a ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x6ea40f30 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x6edb8cb7 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x71a0b03a ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x73180ab1 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x79c34364 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x7a46f103 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x7c0dd7a3 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x7c80f1bb osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x7fbf7c76 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_xattr_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x5630a883 dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x7fffffff dccp_req_err +EXPORT_SYMBOL net/hsr/hsr 0x7fffffff hsr_get_version +EXPORT_SYMBOL net/hsr/hsr 0x7fffffff is_hsr_master +EXPORT_SYMBOL net/ieee802154/ieee802154 0x08d2c21a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1b296696 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x47d26428 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x67adcce0 wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fffffff wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fffffff wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/fou 0x19741ae4 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff fou_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0x53cf3b3a gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x18174a80 ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x247313e7 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x53f6ec28 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x2116c10c arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5c163c9a arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x081a136c ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2dc23408 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/tunnel4 0x6dfed623 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x7fffffff xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x7fffffff udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x07b897df ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x453f4f49 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x5388157d ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x70550ad8 ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/tunnel6 0x10d145fa xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x14752b35 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7fffffff xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7fffffff xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/lapb/lapb 0x1cb90270 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x3fbe709f lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x595a5d7f lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x7977917a lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_setparms +EXPORT_SYMBOL net/llc/llc 0x120d88ae llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x43479361 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x4a57058f llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x4c3b01cf llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x6d15346d llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x0058febe ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x0577c88c ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x07b9ff7e ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x0949e247 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x0de560ed ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x16ffff54 ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x170f823d ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1803e683 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x182705fc ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x198e10c5 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1aec576d ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x1fdef73a ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x20f4bd77 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x23837e4e ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x24912ce0 ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x27cf7130 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x2a164189 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0x2be26761 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x329eb41c ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x3476554c ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x3792a40b ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x3b99b6ed ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x3bd2d41f ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x3f410577 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x409a41e0 ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x422cc578 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x45750a79 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4673e757 ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x46b37ab8 ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0x47484afd ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x48649313 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x497acb24 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x49c191e7 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x4b2da34e rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x542f3847 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x572211ac ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x5b3ffde7 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x5bf64b2d ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x5d96c4c1 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x65764964 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x67becb08 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x68bef28b ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6aa9545e ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6b0cecdc ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6cba0c81 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x6f93aff6 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x7a9b4ce9 ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x7c2b3fd5 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7cbcbae3 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x7f1c413f ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x01368222 ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0x03b1607c ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x2a842cf6 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x56531bd5 ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_xmit_hw_error +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x05b4d3fd ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0a9560fe register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x101f480a ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x57827f95 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6d82cd95 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6f86b536 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x73260a07 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7758c0a2 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x290c12ec nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7fffffff __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x7fffffff pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x0d61d83f nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x66e7ea00 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x7fffffff __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x7fffffff nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nft_fib 0x7fffffff nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x31ff33f7 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x48012e28 xt_check_proc_name +EXPORT_SYMBOL net/netfilter/x_tables 0x5936ac24 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x59b5947a xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x619349ba xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x65ef3256 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x68341955 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_find_jump_offset +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x022e1c67 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0x03c78e99 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x1c3d5aab nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x30d59e96 nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0x3d1692bf nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x477e0006 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x496822a0 nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x74748e68 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_llc_stop +EXPORT_SYMBOL net/nfc/nci/nci 0x01f6e310 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0x02392fc0 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x08682213 nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x09db4b92 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x1c24520a nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x22abd7e1 nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0x26877ce5 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x36d3bce9 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x402aa107 nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0x501df2de nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x51586379 nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x5341d20b nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x5c601620 nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x61aefce3 nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0x773ff686 nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7f67aff7 nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x028444e8 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x0bf3097b nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0x0e4b08b1 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x170f8f62 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x2ce705bc nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0x39d8da80 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x4580dac3 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x52db78a2 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x682933fa nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x6a8ac550 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x71a58bfd nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x24523b8c nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7fffffff nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7fffffff nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7fffffff nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x0ab93b3c pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x1badbf4a phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x27d6b5af phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x35148648 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x5b0217e8 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x6d39b426 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff phonet_proto_register +EXPORT_SYMBOL net/rxrpc/rxrpc 0x0031083d rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1dcf11ac rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3bf71b8a rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0x44ef78ff rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x47bd982c rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x480f985b rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x745cc964 rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x755c88c4 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x792bbc31 rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/sctp/sctp 0x4cc67899 sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x5778a278 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x6203d4d2 __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x736ba91d __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x7fffffff __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __tracepoint_smcr_link_down +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x44140c12 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff gss_mech_get +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff gss_mech_put +EXPORT_SYMBOL net/sunrpc/sunrpc 0x16fbc8e6 xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0x4684c715 svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7fffffff xdr_truncate_encode +EXPORT_SYMBOL net/tipc/tipc 0x5d86bc51 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0x7fffffff tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0x7fffffff tipc_dump_start +EXPORT_SYMBOL net/tipc/tipc 0x7fffffff tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tls/tls 0x7fffffff tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x00bf892c wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x02dce100 cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x04d4cc76 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x052524bd cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x05d39abd ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x0698d699 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x076115b0 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x08fb42c0 cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0x0ab3f855 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x0ae43717 cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0x0b405e33 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x0c35196f wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x10a1838d cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0x10df4593 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x11179b26 cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x184a2fc9 cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18e7ab8c regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0x1ac4dfa1 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x22e6ba20 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x23946873 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x262540ca cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x28c638f4 ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0x29bf1095 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x2a5afa5c cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x2b3cbded ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x2fabd3cc cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x2fb25edf cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x31263d81 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x328b437c cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x35dab968 cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x3852c41d cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x38cb594a ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x398865eb cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x3e9c61eb regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0x4161a6ce cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x41f15cb4 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x44e116bc cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x49591f16 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x52b80bf8 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x5446cea9 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x57ac3a99 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x585e09e9 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x5a55c910 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x5a8b05e5 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5bef6d06 cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x5cca740c cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x5d518751 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x5e5c6170 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x607dfac5 get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0x623702c2 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6359c033 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x66c32fae cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x69af50c4 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x69d3cf1e __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x6c0d193a __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x6ec49b69 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x6edb05e4 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0x703a8d62 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x73b9e7c5 cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x768a8bc5 cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7a81518a cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7d9ec328 __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7ddff551 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_unregister +EXPORT_SYMBOL net/wireless/lib80211 0x29b6637f lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x30b5a5ac lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x38428553 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x3d12de32 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_crypt_info_init +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x7fffffff 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 0x400c2259 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 0x7fffffff snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff 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 0x7fffffff snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x70cab927 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0x7fffffff snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0a6e3817 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x161b6258 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x187e3a90 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1c9e6335 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1dade328 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2bc5e743 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2ee2f2e2 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x32176208 snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6da647c3 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7559e76b snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-seq-device 0x091def1c snd_seq_autoload_exit +EXPORT_SYMBOL sound/core/snd-seq-device 0x0cf20995 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 0x1d8e4f55 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 0x7fffffff snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0a9f0f06 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0c1be6cb snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2b0eba06 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4615ffbf snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6d3975d6 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7cda9c3e snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1864c256 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x200fd17f snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x226138b0 snd_vx_threaded_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6784cfb1 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6932d716 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7185a4cb snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_suspend +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x08205467 amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x293faa25 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2f02ca6a fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3f3fa710 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x45563efd fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x45cc0485 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4ac5c790 amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4e998768 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x577bb0b2 amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5812fab7 avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x63fedc54 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x786b4cef fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff snd_fw_transaction +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x030156b5 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x3091e38c snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x482644ec snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1babe2f9 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x534a494f snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7fffffff snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7fffffff snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x5feadefa snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7fffffff snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-i2c 0x055aca09 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2e04ee38 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3ec74a5d snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_probeaddr +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x04d870e6 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0b76b6c3 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b9de7ac snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3a00f5cf snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x41d26d64 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4b73c81b snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5e44ea64 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x65376c6d snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74f07955 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7a86bce5 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_write +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x06d28503 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x262b3c56 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7fffffff snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x033874c3 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x034fc5da oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x278abd86 oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3db67b10 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x59b79eb1 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6b1c8533 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x721362d4 oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x75af2228 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7c6ecd70 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write_uart +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0x7fffffff acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x51edf83d snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x6227709e snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x7fffffff adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0x326bc54d wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x7fffffff pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x7fffffff pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0x7fffffff hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x5f63c98a tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x6139a630 tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x3c7a1aa2 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x599e0aa4 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x7fffffff aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x7fffffff aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x7fffffff aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3695f8ca wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x329f5717 mt8192_afe_gpio_request +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x56261b29 mt8192_afe_gpio_init +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x682649a6 q6afe_vote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_unvote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/snd-soc-qcom-common 0x68514e74 qcom_snd_parse_of +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x270e5c8d __snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_resume +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_suspend +EXPORT_SYMBOL vmlinux 0x00082237 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x0019f681 sock_gettstamp +EXPORT_SYMBOL vmlinux 0x001ee95a imx_ssi_fiq_base +EXPORT_SYMBOL vmlinux 0x0028bce6 mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x0038cba5 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x003d3eb6 security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x00482b72 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x004d8359 snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x005eb2f4 vfs_symlink +EXPORT_SYMBOL vmlinux 0x0064abb0 tcp_filter +EXPORT_SYMBOL vmlinux 0x006dff34 snd_ctl_notify_one +EXPORT_SYMBOL vmlinux 0x00793485 __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x0079ef70 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0094bd95 del_gendisk +EXPORT_SYMBOL vmlinux 0x009f4093 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x009f6579 simple_write_begin +EXPORT_SYMBOL vmlinux 0x00a3db5c kernel_getsockname +EXPORT_SYMBOL vmlinux 0x00b41aed flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00cd8c6b __serio_register_driver +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00e21259 tegra_dfll_runtime_suspend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01076dbd cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x010b9c7b mdiobb_read +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x011a9e53 elf_hwcap2 +EXPORT_SYMBOL vmlinux 0x0129c4f8 par_io_data_set +EXPORT_SYMBOL vmlinux 0x012b40e0 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x0144aa3a xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x01505d85 imx_scu_call_rpc +EXPORT_SYMBOL vmlinux 0x01625842 datagram_poll +EXPORT_SYMBOL vmlinux 0x016a9674 eth_type_trans +EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device +EXPORT_SYMBOL vmlinux 0x017de3d5 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0x01801677 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x01830813 kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x018574a1 mb_cache_entry_delete +EXPORT_SYMBOL vmlinux 0x018893bf keyring_alloc +EXPORT_SYMBOL vmlinux 0x01bf78b5 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x01c56ad0 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x01ddb677 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x01e7bf8e textsearch_register +EXPORT_SYMBOL vmlinux 0x01ea3545 __scm_destroy +EXPORT_SYMBOL vmlinux 0x01ee624f fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x025b6b95 mmc_erase +EXPORT_SYMBOL vmlinux 0x025cb077 devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x025f20a4 param_get_int +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x028c5a87 __netif_rx +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02a7cbc0 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x02b71e7d devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x02b7d079 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x02c065f8 ucc_set_qe_mux_mii_mng +EXPORT_SYMBOL vmlinux 0x02cad187 unload_nls +EXPORT_SYMBOL vmlinux 0x02df50b0 jiffies +EXPORT_SYMBOL vmlinux 0x02eac776 thaw_super +EXPORT_SYMBOL vmlinux 0x02ecf7cc tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f79482 nla_reserve +EXPORT_SYMBOL vmlinux 0x02fe17b3 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x030961a2 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0x030b1007 register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x031e4fb6 vm_mmap +EXPORT_SYMBOL vmlinux 0x032fe08b inet_del_offload +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0344a7d5 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0x03458b79 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x035a839d touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x035eba4e kernel_getpeername +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x0374ebb1 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03995aef single_release +EXPORT_SYMBOL vmlinux 0x03a8b036 __block_write_begin +EXPORT_SYMBOL vmlinux 0x03ad27e3 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x03ad5775 clear_nlink +EXPORT_SYMBOL vmlinux 0x03b25343 __scm_send +EXPORT_SYMBOL vmlinux 0x03b54284 key_revoke +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03e306ed __free_pages +EXPORT_SYMBOL vmlinux 0x03f59151 pci_enable_device +EXPORT_SYMBOL vmlinux 0x03fba701 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x03fbbd31 mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04009edb bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x04038732 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL vmlinux 0x0412acb4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x0419591e __sg_free_table +EXPORT_SYMBOL vmlinux 0x041e693a jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x04248af2 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x042685d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x0426d15a mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x04321002 arp_create +EXPORT_SYMBOL vmlinux 0x04426f14 mem_section +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x044fb722 dev_base_lock +EXPORT_SYMBOL vmlinux 0x0462a0d0 snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x0475c498 param_set_invbool +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x049186fb __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x04ae0988 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x04b64ea6 nand_read_page_raw +EXPORT_SYMBOL vmlinux 0x04c6b4c3 __crypto_memneq +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04db958b dev_deactivate +EXPORT_SYMBOL vmlinux 0x04e3e3f4 address_space_init_once +EXPORT_SYMBOL vmlinux 0x04fcb5dc snd_jack_new +EXPORT_SYMBOL vmlinux 0x04fd85b4 set_security_override +EXPORT_SYMBOL vmlinux 0x04fe9b7c noop_fsync +EXPORT_SYMBOL vmlinux 0x0508088e ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x0515d0ac kernel_accept +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05350182 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x0542c707 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x05484708 register_framebuffer +EXPORT_SYMBOL vmlinux 0x054d7094 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0x056b651b vfs_mkobj +EXPORT_SYMBOL vmlinux 0x05832478 skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0x058836ac mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x0590838d dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x05ade6cb fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0x05b0caa0 hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x05b8cfda vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL vmlinux 0x05c9d6ed flow_rule_alloc +EXPORT_SYMBOL vmlinux 0x05cced35 phy_init_eee +EXPORT_SYMBOL vmlinux 0x05d8e783 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x05e98748 __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x060b26c2 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x0615a739 genlmsg_put +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064d4e95 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x066db48c inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x06752cbc jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x067ec4e2 page_symlink +EXPORT_SYMBOL vmlinux 0x06822b2a dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x06840c92 folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x068da1ee dev_alloc_name +EXPORT_SYMBOL vmlinux 0x06909ef2 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0x069adfba nand_ecc_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x069f3468 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x06a9ec79 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x06af6b4c of_n_size_cells +EXPORT_SYMBOL vmlinux 0x06c1ea17 copy_string_kernel +EXPORT_SYMBOL vmlinux 0x06cfda3b dquot_acquire +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06e0a94c blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x06f4ec4d __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x06f93bb8 devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x0715aea2 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x071809e5 __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x071e2322 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x07222bb2 nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0x072a8f8d __set_fiq_regs +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x073017e3 snd_dma_buffer_mmap +EXPORT_SYMBOL vmlinux 0x0742a576 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x0755cc71 unpin_user_pages +EXPORT_SYMBOL vmlinux 0x077af67c init_opal_dev +EXPORT_SYMBOL vmlinux 0x078b36f2 discard_new_inode +EXPORT_SYMBOL vmlinux 0x07a49743 set_disk_ro +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aa2236 xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x07b05102 input_open_device +EXPORT_SYMBOL vmlinux 0x07b3069b of_node_name_eq +EXPORT_SYMBOL vmlinux 0x07bb8ed1 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d2b568 vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x07d9e21e of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x07db7d85 eth_header +EXPORT_SYMBOL vmlinux 0x07de5b29 config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x07e190a8 skb_clone +EXPORT_SYMBOL vmlinux 0x07e2c085 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x07eed04f mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0x07f480fa ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x08080a03 genphy_resume +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c6040 of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0843794d genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x0855409c xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0x08617165 __quota_error +EXPORT_SYMBOL vmlinux 0x086253a7 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0863d803 __alloc_pages +EXPORT_SYMBOL vmlinux 0x086a5095 proto_unregister +EXPORT_SYMBOL vmlinux 0x0882069a filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x0886135e is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x088a504d block_read_full_folio +EXPORT_SYMBOL vmlinux 0x08b28031 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x08b35139 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0x08bc48bd tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x08c168e1 seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x08d66d4b _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x08e055b6 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x08e39398 cmd_db_read_addr +EXPORT_SYMBOL vmlinux 0x08e70c71 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x08eb3c1d try_to_release_page +EXPORT_SYMBOL vmlinux 0x08f82664 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x092f194a nf_log_unset +EXPORT_SYMBOL vmlinux 0x095994ce iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x095dd756 sound_class +EXPORT_SYMBOL vmlinux 0x0966a3f8 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x0967a884 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x097585f5 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x098095f8 write_inode_now +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0994cbed kobject_get +EXPORT_SYMBOL vmlinux 0x0999c0cc mmc_register_driver +EXPORT_SYMBOL vmlinux 0x09aab592 dump_align +EXPORT_SYMBOL vmlinux 0x09ad1b0a flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x09b055c5 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x09b152e2 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d8a4f3 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0x09e52cb7 snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a272247 ip_getsockopt +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a51e9cf devm_iounmap +EXPORT_SYMBOL vmlinux 0x0a84a49f blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x0a8f786a filemap_release_folio +EXPORT_SYMBOL vmlinux 0x0a96b96a kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa09d79 omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aae5094 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x0ab80064 devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x0ac81dfc of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x0aca37f8 snd_seq_root +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adc9367 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x0ae04e5e d_prune_aliases +EXPORT_SYMBOL vmlinux 0x0ae547ed xxh64_update +EXPORT_SYMBOL vmlinux 0x0af9d17b nand_scan_with_ids +EXPORT_SYMBOL vmlinux 0x0b0407a0 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x0b0ad49d ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0x0b1b939e kmemdup +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b22812e flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x0b437e73 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b5503a5 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x0b617520 dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x0b709411 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x0b71ac83 msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x0b72a0b8 bio_free_pages +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b8d6068 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x0b8ed890 mmc_put_card +EXPORT_SYMBOL vmlinux 0x0b931ef4 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0bb15975 pskb_extract +EXPORT_SYMBOL vmlinux 0x0bb700ab set_page_dirty +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x0bf43555 genphy_suspend +EXPORT_SYMBOL vmlinux 0x0c010e6c d_obtain_alias +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c317665 __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x0c4b8d7f snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x0c56f0f0 dev_uc_add +EXPORT_SYMBOL vmlinux 0x0c87c942 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x0c8d53f2 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0ca85b14 from_kprojid +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cb50189 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x0cb5eae1 vme_free_consistent +EXPORT_SYMBOL vmlinux 0x0ccd494c i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0ce26143 netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d1b54c1 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0d207bac scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x0d2ca20f ucc_fast_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x0d2dad6a phy_attached_info +EXPORT_SYMBOL vmlinux 0x0d317e74 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x0d33f1d5 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d42267a generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d5ff4c6 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x0d61d967 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x0d688c4e unregister_nls +EXPORT_SYMBOL vmlinux 0x0d6fe160 sk_common_release +EXPORT_SYMBOL vmlinux 0x0d7b5fee __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x0d7e5dcc tty_register_driver +EXPORT_SYMBOL vmlinux 0x0dab4408 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x0db832e4 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x0dba5e9a radix_tree_delete +EXPORT_SYMBOL vmlinux 0x0dbd9895 dev_uc_del +EXPORT_SYMBOL vmlinux 0x0dc1a78c bin2hex +EXPORT_SYMBOL vmlinux 0x0dc4741b security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x0dc8cc8f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x0dd4f7f8 call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x0debd443 netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x0e007b1a udp_sendmsg +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e1c8804 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x0e57e593 skb_put +EXPORT_SYMBOL vmlinux 0x0e5d2250 mdio_device_reset +EXPORT_SYMBOL vmlinux 0x0e5da8f0 utf8_normalize +EXPORT_SYMBOL vmlinux 0x0e5e604c rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x0e850737 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0x0e85acf0 mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x0e8835eb __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x0e886cad d_add +EXPORT_SYMBOL vmlinux 0x0e8ed8c6 sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea59195 mdio_device_register +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eb3e86a tty_unthrottle +EXPORT_SYMBOL vmlinux 0x0eb519c9 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ec27c27 snd_card_free +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0ec89fdf pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x0eea0399 strscpy +EXPORT_SYMBOL vmlinux 0x0f06957f allocate_resource +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f16c4dd remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f27c89a __breadahead +EXPORT_SYMBOL vmlinux 0x0f655355 vfio_info_add_capability +EXPORT_SYMBOL vmlinux 0x0f6e020e nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x0f7075f5 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x0f7254cc vme_bus_type +EXPORT_SYMBOL vmlinux 0x0f764576 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f893aee mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x0fa0408e debugfs_create_automount +EXPORT_SYMBOL vmlinux 0x0fa3b3a2 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fd0f592 mutex_trylock +EXPORT_SYMBOL vmlinux 0x0fd7929c of_match_device +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fe2f8de blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x0fe979fd bdevname +EXPORT_SYMBOL vmlinux 0x0fee2aa8 vmap +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff44d66 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x10018cb0 __pv_offset +EXPORT_SYMBOL vmlinux 0x10069cbf tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x1012cf82 input_inject_event +EXPORT_SYMBOL vmlinux 0x1025009a cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x102936ec qe_clock_source +EXPORT_SYMBOL vmlinux 0x102fb826 vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0x103968bb netif_carrier_on +EXPORT_SYMBOL vmlinux 0x104fcbac pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0x10514e49 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x10534323 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x105a3b92 sg_miter_start +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x10739f1e swake_up_locked +EXPORT_SYMBOL vmlinux 0x10753e14 seq_putc +EXPORT_SYMBOL vmlinux 0x10791035 input_copy_abs +EXPORT_SYMBOL vmlinux 0x1079ee67 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x1083c9f7 rtnl_notify +EXPORT_SYMBOL vmlinux 0x108715d8 complete_request_key +EXPORT_SYMBOL vmlinux 0x10a4f051 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x10c08914 sget +EXPORT_SYMBOL vmlinux 0x10c67b41 security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x10d34f77 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e279af handle_edge_irq +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x10ea3314 fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x10f3d92d pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1117b7a8 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x1121f35a register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x112ff2dc scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x1130162f request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x11576fb3 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117edea2 __netif_napi_del +EXPORT_SYMBOL vmlinux 0x118ba91f jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x119e24bf arp_xmit +EXPORT_SYMBOL vmlinux 0x119e496e pci_read_config_dword +EXPORT_SYMBOL vmlinux 0x11a4483f napi_complete_done +EXPORT_SYMBOL vmlinux 0x11ca1382 blk_queue_split +EXPORT_SYMBOL vmlinux 0x11d01d9b fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11fa2a50 cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0x11fd9e64 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x1209db0a tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1210fb32 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x1222af7f security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x122dd3d2 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x12408786 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x12505490 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x1262bff6 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x126adad1 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x126e561a fget_raw +EXPORT_SYMBOL vmlinux 0x1273e4c7 snd_dma_alloc_dir_pages +EXPORT_SYMBOL vmlinux 0x12755fed mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x129122f2 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x129b0606 skb_pull +EXPORT_SYMBOL vmlinux 0x12b10d56 mntput +EXPORT_SYMBOL vmlinux 0x12bf4794 qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x12c837c8 cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x12ca66e5 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12e5ef14 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x12ed60da tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x12f0430b mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x12f19edf __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x1308ad05 inode_update_time +EXPORT_SYMBOL vmlinux 0x130d068d tcp_prot +EXPORT_SYMBOL vmlinux 0x130db649 get_acl +EXPORT_SYMBOL vmlinux 0x1313d176 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x131cffcd rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x13240d29 kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0x13243d4b wl1251_get_platform_data +EXPORT_SYMBOL vmlinux 0x132f810b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x134bd53b netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x1378c6b7 __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x137bf639 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x138508ac snd_timer_instance_free +EXPORT_SYMBOL vmlinux 0x139b4143 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x139cd164 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x13a03549 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13eb080f netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x140bca55 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x140cef8e cmxgcr_lock +EXPORT_SYMBOL vmlinux 0x142cd976 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x142e01f3 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x1431e271 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1451e8e5 vm_zone_stat +EXPORT_SYMBOL vmlinux 0x1453b552 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146060ec of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x1471cf7a arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0x1478514b register_console +EXPORT_SYMBOL vmlinux 0x148242c6 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x148bc546 dm_register_target +EXPORT_SYMBOL vmlinux 0x14ad9622 d_path +EXPORT_SYMBOL vmlinux 0x14b281d1 param_get_long +EXPORT_SYMBOL vmlinux 0x14c9bf6b zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x14cf79a7 __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x14d09113 seq_escape_mem +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14d8108e xp_dma_map +EXPORT_SYMBOL vmlinux 0x14dba13b skb_find_text +EXPORT_SYMBOL vmlinux 0x14e2c350 md_write_start +EXPORT_SYMBOL vmlinux 0x14f67b7e netlink_net_capable +EXPORT_SYMBOL vmlinux 0x14fd06b2 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x150a328a _dev_crit +EXPORT_SYMBOL vmlinux 0x151728d2 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x153fa78d devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x154b1335 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x155c8236 dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x158ba738 page_pool_update_nid +EXPORT_SYMBOL vmlinux 0x159e5934 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x15d2d22e jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x15e8d4ef generic_perform_write +EXPORT_SYMBOL vmlinux 0x15f24cc3 mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x16190cb6 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x161cbf93 fs_lookup_param +EXPORT_SYMBOL vmlinux 0x1621ab77 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x1631c090 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x1637b591 sock_register +EXPORT_SYMBOL vmlinux 0x163d2417 tegra_io_rail_power_off +EXPORT_SYMBOL vmlinux 0x16525cc4 xa_find +EXPORT_SYMBOL vmlinux 0x16597cd7 snd_timer_open +EXPORT_SYMBOL vmlinux 0x16700f93 skb_pull_data +EXPORT_SYMBOL vmlinux 0x167035d9 ip_fraglist_init +EXPORT_SYMBOL vmlinux 0x167a8357 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x167cbc79 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x168056e7 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x1681f3c3 register_sound_special_device +EXPORT_SYMBOL vmlinux 0x16896b44 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x16a5f3a1 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x16a76be1 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x16a77473 copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x16adbf67 down_killable +EXPORT_SYMBOL vmlinux 0x16ccba1f empty_aops +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16fcfbc2 free_task +EXPORT_SYMBOL vmlinux 0x1727d65e mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x173157b5 xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x173a8132 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x174342fd tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x17492ae8 seq_vprintf +EXPORT_SYMBOL vmlinux 0x174e98a3 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x1755a98b vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x1755c21c inet_frags_init +EXPORT_SYMBOL vmlinux 0x178c4894 qe_upload_firmware +EXPORT_SYMBOL vmlinux 0x1792f678 kernel_connect +EXPORT_SYMBOL vmlinux 0x17dc7f70 msm_pinctrl_dev_pm_ops +EXPORT_SYMBOL vmlinux 0x17de4a0d trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x17e8f610 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x17f24439 mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x17fa01ea nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL vmlinux 0x1803e83d snd_pcm_new +EXPORT_SYMBOL vmlinux 0x1829524e tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x183cef58 register_qdisc +EXPORT_SYMBOL vmlinux 0x1845a214 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x185c32cf sgl_free +EXPORT_SYMBOL vmlinux 0x1860676a simple_unlink +EXPORT_SYMBOL vmlinux 0x1866d813 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x18744817 phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x187884a8 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x1880f54a seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x1884ffe4 vme_irq_free +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x18945715 rt_dst_clone +EXPORT_SYMBOL vmlinux 0x18a07dc1 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x18b79fff ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x18c1b1ea tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x18ce4710 proc_create_single_data +EXPORT_SYMBOL vmlinux 0x18d62eab __sock_create +EXPORT_SYMBOL vmlinux 0x18d91748 snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x18fafd06 iterate_fd +EXPORT_SYMBOL vmlinux 0x18fe7ad6 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x18ffa4c0 may_umount_tree +EXPORT_SYMBOL vmlinux 0x190ef0cf dst_release_immediate +EXPORT_SYMBOL vmlinux 0x1917e8d4 of_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x191fd023 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x1949dd76 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x195c8596 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x19668813 of_get_parent +EXPORT_SYMBOL vmlinux 0x197f4ec1 phy_find_first +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x198af0d0 page_mapped +EXPORT_SYMBOL vmlinux 0x198d0b11 rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0x199760f3 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cb48e6 dev_activate +EXPORT_SYMBOL vmlinux 0x19d79390 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x19da1c72 fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0x1a00ad18 snd_card_new +EXPORT_SYMBOL vmlinux 0x1a183447 pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0x1a20c540 omap_vrfb_supported +EXPORT_SYMBOL vmlinux 0x1a21d691 __ksize +EXPORT_SYMBOL vmlinux 0x1a26c2c0 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x1a390c01 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x1a3e0fb8 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x1a4727df scsi_partsize +EXPORT_SYMBOL vmlinux 0x1a4fe4db ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x1a51c881 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x1a632789 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a7a8f70 input_allocate_device +EXPORT_SYMBOL vmlinux 0x1a7bc9ef xxh32 +EXPORT_SYMBOL vmlinux 0x1a7f1c84 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1aa54a35 jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0x1aa86d18 rdma_dim +EXPORT_SYMBOL vmlinux 0x1ac2e87d __ip_options_compile +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ad9a9b3 get_fs_type +EXPORT_SYMBOL vmlinux 0x1adea4cc bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x1aea297d ps2_command +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b071365 mount_subtree +EXPORT_SYMBOL vmlinux 0x1b0e45f9 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x1b16b0ea cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0x1b25f187 __xa_store +EXPORT_SYMBOL vmlinux 0x1b3603f2 dev_add_pack +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b6d1f56 module_layout +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b79d55e blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x1b965a53 kunmap_local_indexed +EXPORT_SYMBOL vmlinux 0x1b9d26a4 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x1ba480b1 generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bc5bba4 vme_lm_request +EXPORT_SYMBOL vmlinux 0x1bcdd4d3 netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x1bf2cca0 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x1bfcfaae rtnl_unicast +EXPORT_SYMBOL vmlinux 0x1c0419a6 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c6263af blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0x1c777c5c dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x1c85a502 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x1c9d7f38 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x1ca4f305 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x1cb9fa8b kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1cc74b0e md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cd10726 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d028c58 fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x1d1cce88 sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0x1d28a543 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x1d3335e9 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0x1d364149 bio_kmalloc +EXPORT_SYMBOL vmlinux 0x1d6479ee dma_free_attrs +EXPORT_SYMBOL vmlinux 0x1d671cfb mii_check_media +EXPORT_SYMBOL vmlinux 0x1d6c0ff4 free_netdev +EXPORT_SYMBOL vmlinux 0x1d6f1ba2 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x1d6f24dd d_find_alias +EXPORT_SYMBOL vmlinux 0x1d74af94 unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x1d796395 hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0x1d8c30cc phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0x1d9388e8 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dcae1c5 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1ddf2f41 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1de59c22 qcom_scm_ice_invalidate_key +EXPORT_SYMBOL vmlinux 0x1de96eb3 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x1e036f4b twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x1e0373fc imx_scu_irq_group_enable +EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e2e608d tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x1e2f2f82 dst_destroy +EXPORT_SYMBOL vmlinux 0x1e301bfb tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x1e3ba314 ata_print_version +EXPORT_SYMBOL vmlinux 0x1e59cc76 sockfd_lookup +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6e81e1 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x1e82f35a phy_connect +EXPORT_SYMBOL vmlinux 0x1e86be30 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x1e96f43d __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb64646 div64_s64 +EXPORT_SYMBOL vmlinux 0x1ec4e6b3 phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1ee0b86e iget_failed +EXPORT_SYMBOL vmlinux 0x1ef41b7e qcom_scm_iommu_set_pt_format +EXPORT_SYMBOL vmlinux 0x1ef72008 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x1f0875d9 __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x1f24bbf2 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x1f27bb30 dquot_file_open +EXPORT_SYMBOL vmlinux 0x1f36e700 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x1f4a66a1 __check_sticky +EXPORT_SYMBOL vmlinux 0x1f4d5778 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x1f5c777d write_cache_pages +EXPORT_SYMBOL vmlinux 0x1f9ef736 flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe4f0d8 get_mem_type +EXPORT_SYMBOL vmlinux 0x1fe5b3a2 ndisc_ns_create +EXPORT_SYMBOL vmlinux 0x1fe8e953 md_register_thread +EXPORT_SYMBOL vmlinux 0x1ff3aa45 mipi_dsi_driver_register_full +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 0x2025fa92 can_nice +EXPORT_SYMBOL vmlinux 0x20280c39 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x202df6af max8925_reg_write +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x205fbae0 touch_buffer +EXPORT_SYMBOL vmlinux 0x2072b8b4 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x2078db8e udp_seq_start +EXPORT_SYMBOL vmlinux 0x208a5bb7 security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x20a744cf hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b6547d generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20dfdb55 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x20f94feb genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x2104a9d7 submit_bio_noacct +EXPORT_SYMBOL vmlinux 0x210ef117 devm_release_resource +EXPORT_SYMBOL vmlinux 0x2110e0eb nand_read_oob_std +EXPORT_SYMBOL vmlinux 0x21110dbf mmioset +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x211b047d blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x211b63ab __put_user_ns +EXPORT_SYMBOL vmlinux 0x211ee9bc qcom_scm_assign_mem +EXPORT_SYMBOL vmlinux 0x2128fed9 kernel_write +EXPORT_SYMBOL vmlinux 0x21327588 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x21431fb9 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x215667b2 zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x216d759a mmiocpy +EXPORT_SYMBOL vmlinux 0x219c13e7 tegra_ivc_write_get_next_frame +EXPORT_SYMBOL vmlinux 0x21b5ee5b mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21d53512 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21f7eb8f claim_fiq +EXPORT_SYMBOL vmlinux 0x220c7021 tegra_io_pad_power_disable +EXPORT_SYMBOL vmlinux 0x22108931 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x2220bd48 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2231b5f2 dma_map_resource +EXPORT_SYMBOL vmlinux 0x226082bc vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x226cc271 ip_defrag +EXPORT_SYMBOL vmlinux 0x226ce4af snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x2273db6d padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x2277d558 mx53_revision +EXPORT_SYMBOL vmlinux 0x227d3294 snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x227d92da nand_ecc_init_ctx +EXPORT_SYMBOL vmlinux 0x227e2164 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x228b5808 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0x2293b556 read_cache_folio +EXPORT_SYMBOL vmlinux 0x22a2cfe2 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c64a37 tegra_dfll_runtime_resume +EXPORT_SYMBOL vmlinux 0x22d3081f pin_user_pages +EXPORT_SYMBOL vmlinux 0x230f12ff __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x2316be2b __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x23237f50 unregister_shrinker +EXPORT_SYMBOL vmlinux 0x2329bb78 security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x2339c2b7 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x2348f6e0 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x23549070 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x23619cff jiffies_64 +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x236bd5eb pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x237220f2 skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x2381e496 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x2389c0c7 amba_driver_register +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x238b1d20 cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0x238cfc5d timestamp_truncate +EXPORT_SYMBOL vmlinux 0x238ed7cd kobject_add +EXPORT_SYMBOL vmlinux 0x23970e6e udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x23a771fb netlink_capable +EXPORT_SYMBOL vmlinux 0x23b5da41 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c2ef81 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x23c675b5 phy_do_ioctl +EXPORT_SYMBOL vmlinux 0x23ec3301 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23f1d7a6 page_pool_ethtool_stats_get_count +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2413bf9d peernet2id +EXPORT_SYMBOL vmlinux 0x2416cc95 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x24386768 vme_dma_request +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245c7ab8 param_get_short +EXPORT_SYMBOL vmlinux 0x246790df idr_for_each +EXPORT_SYMBOL vmlinux 0x246be377 dev_addr_del +EXPORT_SYMBOL vmlinux 0x246ea205 blake2s_update +EXPORT_SYMBOL vmlinux 0x2475125c snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x247a285c blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x24854981 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x249692f2 sock_i_uid +EXPORT_SYMBOL vmlinux 0x24992356 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x249a6b61 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b664ad d_delete +EXPORT_SYMBOL vmlinux 0x24cf98d7 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24dd755e mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x24f50211 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2501f075 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x250a0e7a tty_write_room +EXPORT_SYMBOL vmlinux 0x2520cfc4 phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x2520d9cc pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x2525c03a tcf_register_action +EXPORT_SYMBOL vmlinux 0x253034eb devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x254a35b1 phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0x25643d52 elv_rb_find +EXPORT_SYMBOL vmlinux 0x2568ac17 pci_write_config_word +EXPORT_SYMBOL vmlinux 0x256bad11 lru_cache_add +EXPORT_SYMBOL vmlinux 0x257ae45c dma_fence_free +EXPORT_SYMBOL vmlinux 0x257aff77 igrab +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x25979808 netdev_change_features +EXPORT_SYMBOL vmlinux 0x2598602f dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0x25a9405b inet_sk_set_state +EXPORT_SYMBOL vmlinux 0x25b10aa8 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x25b4545e mdiobus_scan +EXPORT_SYMBOL vmlinux 0x25cd3869 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x25ce4142 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x25d4feaa __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x26009d98 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x260f0859 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2654211a __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2667fd0e update_devfreq +EXPORT_SYMBOL vmlinux 0x266ef900 rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0x267deda9 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x26819b60 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x26897df2 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x2690e6c1 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x26a16a03 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x26a6339b xsk_tx_release +EXPORT_SYMBOL vmlinux 0x26aa22f1 eth_header_parse +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26c6ac48 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x26db873e netdev_warn +EXPORT_SYMBOL vmlinux 0x26e25a9d flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x26f383b2 devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x270ac400 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x272684b8 blk_rq_init +EXPORT_SYMBOL vmlinux 0x2730d771 mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x2736da75 vme_init_bridge +EXPORT_SYMBOL vmlinux 0x273c9db2 open_with_fake_path +EXPORT_SYMBOL vmlinux 0x273dee87 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x2755b141 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x27601652 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x276a3a44 irq_stat +EXPORT_SYMBOL vmlinux 0x276e8b90 genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x27724971 uart_resume_port +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x277d1e73 input_register_handle +EXPORT_SYMBOL vmlinux 0x2782b393 xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x27857206 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a04d27 __phy_resume +EXPORT_SYMBOL vmlinux 0x27a42144 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x27bb7990 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27d26cce genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0x27de2fc6 nand_ecc_prepare_io_req +EXPORT_SYMBOL vmlinux 0x27ee2fbb lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0x27f5d8db sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x28108e35 current_in_userns +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2824f5b2 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x2826c20d inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x2828d24d of_iomap +EXPORT_SYMBOL vmlinux 0x283d9977 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x284a1486 snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x287329ef set_cached_acl +EXPORT_SYMBOL vmlinux 0x2873438a zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x2878e15a idr_destroy +EXPORT_SYMBOL vmlinux 0x2883323b tcp_poll +EXPORT_SYMBOL vmlinux 0x288c4a1c alloc_fcdev +EXPORT_SYMBOL vmlinux 0x28ad17e1 vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0x28f5886c of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x28f8a7a4 proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x29029a9b scsi_print_result +EXPORT_SYMBOL vmlinux 0x293c6d16 d_alloc_name +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x2960b1cd __skb_ext_del +EXPORT_SYMBOL vmlinux 0x2970aed2 kernel_bind +EXPORT_SYMBOL vmlinux 0x298d332b ps2_begin_command +EXPORT_SYMBOL vmlinux 0x299a3239 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0x299e70f8 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x29a47fe9 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x29ad09d7 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x29bb61d2 of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0x29c02e05 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x29c663a5 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x29c6a8c6 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x29d3fcca tty_kref_put +EXPORT_SYMBOL vmlinux 0x29d9f26e cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x29e0fe28 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x29e2c755 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x29e3efeb rtnl_create_link +EXPORT_SYMBOL vmlinux 0x29f41ebf audit_log_start +EXPORT_SYMBOL vmlinux 0x29fa1cbe page_pool_get_stats +EXPORT_SYMBOL vmlinux 0x29fce0ee snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x2a011b58 neigh_lookup +EXPORT_SYMBOL vmlinux 0x2a09a34d __serio_register_port +EXPORT_SYMBOL vmlinux 0x2a1cb76b tegra_ivc_init +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a41019d __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x2a419396 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x2a5a736f netif_device_detach +EXPORT_SYMBOL vmlinux 0x2a5b5568 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x2a80f629 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2a9faeb4 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2ab4a8f3 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x2ac3b9f2 mmc_run_bkops +EXPORT_SYMBOL vmlinux 0x2ad7e99b pci_fixup_device +EXPORT_SYMBOL vmlinux 0x2ad810d1 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x2ad83b98 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x2ae304dc dma_fence_array_next +EXPORT_SYMBOL vmlinux 0x2ae768e5 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x2afc8398 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x2afd4aba dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x2b0c3076 sk_stream_error +EXPORT_SYMBOL vmlinux 0x2b3c796d textsearch_unregister +EXPORT_SYMBOL vmlinux 0x2b51e590 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x2b58724c devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b68f61d pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x2b76dad4 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x2b84d2a0 vme_register_driver +EXPORT_SYMBOL vmlinux 0x2b8e2ef0 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x2b92f289 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x2b99722a __cpu_active_mask +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba49e05 try_module_get +EXPORT_SYMBOL vmlinux 0x2bc8ece3 tegra_ivc_read_get_next_frame +EXPORT_SYMBOL vmlinux 0x2bcdcebc backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0x2bff5887 xa_destroy +EXPORT_SYMBOL vmlinux 0x2c02d0dc xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x2c21298a mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3206a7 dma_pool_create +EXPORT_SYMBOL vmlinux 0x2c329e54 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0x2c42a97b _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2c4cf8b1 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x2c519db4 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x2c5ceedd fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x2c5de08a nand_ecc_get_sw_engine +EXPORT_SYMBOL vmlinux 0x2c6b6974 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x2c7c8e9a pcibios_min_mem +EXPORT_SYMBOL vmlinux 0x2c7f5df2 tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c83a428 vfs_create_mount +EXPORT_SYMBOL vmlinux 0x2c923909 tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x2c9a0b0a __mdiobus_read +EXPORT_SYMBOL vmlinux 0x2ca75bc0 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x2cd055fb dst_release +EXPORT_SYMBOL vmlinux 0x2ce56547 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x2cf5fa0a key_put +EXPORT_SYMBOL vmlinux 0x2cfde9a2 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d1a69be pci_resize_resource +EXPORT_SYMBOL vmlinux 0x2d1bc0df nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d3bc743 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x2d4268ff pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x2d4472c2 zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d6fcc06 __kmalloc +EXPORT_SYMBOL vmlinux 0x2d912bca dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x2d9587cf pci_iomap_range +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2da247aa phy_read_paged +EXPORT_SYMBOL vmlinux 0x2da5775a nf_ct_attach +EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2de19536 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2df16954 rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x2e089eca snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x2e1c02a3 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2ea01c security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x2e311132 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x2e5b1b5f vfs_rmdir +EXPORT_SYMBOL vmlinux 0x2e63b763 vlan_for_each +EXPORT_SYMBOL vmlinux 0x2e66849b dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x2e6e2573 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x2e993713 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0x2ea36113 ac97_bus_type +EXPORT_SYMBOL vmlinux 0x2eaaf756 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x2eb7001e of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x2ebadc33 pci_disable_device +EXPORT_SYMBOL vmlinux 0x2ebb9e19 snd_power_wait +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2ecb1ed8 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x2ed5a14b udp_poll +EXPORT_SYMBOL vmlinux 0x2edbe606 sock_release +EXPORT_SYMBOL vmlinux 0x2edeb3d9 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x2eed5718 irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x2ef87089 tcf_idr_create +EXPORT_SYMBOL vmlinux 0x2efb218a generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f295e12 ip6_xmit +EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f333aab imx_scu_get_handle +EXPORT_SYMBOL vmlinux 0x2f4ce98e phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0x2f50cbf5 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x2f5b0fdb gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x2f6957bd zstd_end_stream +EXPORT_SYMBOL vmlinux 0x2f69c290 vm_node_stat +EXPORT_SYMBOL vmlinux 0x2f83ab28 rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x2f9ef511 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x2fcbf131 phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x2fdd14f2 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x2fe2057a skb_ext_add +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff9539f security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x30081c9f tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x3023be92 sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0x3023f24f key_unlink +EXPORT_SYMBOL vmlinux 0x304954d7 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x3059805e xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x3065559b tcp_connect +EXPORT_SYMBOL vmlinux 0x3069a014 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x306d20d7 import_iovec +EXPORT_SYMBOL vmlinux 0x30701042 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x30745185 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x3076798a unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x3098be4e scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x309aa34e io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30c88fc2 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x30d9a471 gen_pool_create +EXPORT_SYMBOL vmlinux 0x30dc2db4 blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0x30e11a72 release_and_free_resource +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30edcbf2 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x30f42fb2 param_ops_ullong +EXPORT_SYMBOL vmlinux 0x30f44ad0 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x3121e9ea skb_copy_header +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x312a5033 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x314b20c8 scnprintf +EXPORT_SYMBOL vmlinux 0x315d8a34 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x31626b6f jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x316d4a7f prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x317a0266 dec_node_page_state +EXPORT_SYMBOL vmlinux 0x317ba348 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x318ca64f nand_write_page_raw +EXPORT_SYMBOL vmlinux 0x318e326a inode_set_bytes +EXPORT_SYMBOL vmlinux 0x3190f3ca jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0x31a4767f qcom_scm_hdcp_available +EXPORT_SYMBOL vmlinux 0x31b4d098 netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x31bfd0e5 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x31d67602 init_net +EXPORT_SYMBOL vmlinux 0x31dc5d6d page_pool_destroy +EXPORT_SYMBOL vmlinux 0x3218036e max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x321ec9f5 __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x322279fa inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x3227ab46 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x322a17bd kunmap_high +EXPORT_SYMBOL vmlinux 0x32394d4b qe_issue_cmd +EXPORT_SYMBOL vmlinux 0x32430023 _totalhigh_pages +EXPORT_SYMBOL vmlinux 0x324e10db of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x32787823 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x327c22ec flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x32895112 inet_select_addr +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x3295c594 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x32995741 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x32a0f445 d_drop +EXPORT_SYMBOL vmlinux 0x32acc460 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32d386f4 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x32ec7a95 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x32ee1630 cred_fscmp +EXPORT_SYMBOL vmlinux 0x32fe4814 close_fd_get_file +EXPORT_SYMBOL vmlinux 0x331f3eab skb_dequeue +EXPORT_SYMBOL vmlinux 0x3331e032 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x3334319c mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x33396d89 dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0x333aad2e processor +EXPORT_SYMBOL vmlinux 0x333f070c __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x3384c5c9 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x3393d5d7 register_md_personality +EXPORT_SYMBOL vmlinux 0x33a60530 __neigh_create +EXPORT_SYMBOL vmlinux 0x33ad3dbd __skb_pad +EXPORT_SYMBOL vmlinux 0x33af83f9 get_tree_nodev +EXPORT_SYMBOL vmlinux 0x33bcf63a security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x33bddf11 param_ops_short +EXPORT_SYMBOL vmlinux 0x33c5b4d4 dquot_get_state +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e1f1ae dev_set_mtu +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x340a502e get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34408c33 tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0x344a6c90 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x345eefa5 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x34666c3b phy_write_mmd +EXPORT_SYMBOL vmlinux 0x34670f72 __snd_pcm_lib_xfer +EXPORT_SYMBOL vmlinux 0x346a44bd fiemap_prep +EXPORT_SYMBOL vmlinux 0x346b56dc snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x3474766f __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x34850a5a __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x349b4277 xa_clear_mark +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a04d71 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0x34c068dd ucc_slow_restart_tx +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34ca145c kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x34d7900d uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x34d983df km_report +EXPORT_SYMBOL vmlinux 0x34ef1424 fb_set_var +EXPORT_SYMBOL vmlinux 0x34f1a1f5 pipe_lock +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34fd40f1 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x352a748a amba_device_register +EXPORT_SYMBOL vmlinux 0x352c05d9 release_resource +EXPORT_SYMBOL vmlinux 0x353b498c device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x353e0d79 dst_init +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x3543c9d7 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x355e55b5 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x3560e651 kmemdup_nul +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x35665c61 seq_open_private +EXPORT_SYMBOL vmlinux 0x3569bc98 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x35838740 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x358cc08f mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x35906ff4 bio_init_clone +EXPORT_SYMBOL vmlinux 0x35a78bfe csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35ab6e60 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x35acd420 iunique +EXPORT_SYMBOL vmlinux 0x35b0e6cc blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x35d05cdc dump_emit +EXPORT_SYMBOL vmlinux 0x35ea78f5 atomic_io_modify_relaxed +EXPORT_SYMBOL vmlinux 0x35eb47bb get_cached_acl +EXPORT_SYMBOL vmlinux 0x36050803 mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x3628b422 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e0de9 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x36655728 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0x36744a0f rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x3685dcb4 vm_event_states +EXPORT_SYMBOL vmlinux 0x3686b7a6 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x36931f15 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x36ab7724 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x36af5e35 bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x36c1ba94 fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x36d64630 pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x36d69557 ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x3711470a stop_tty +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x37372dad simple_get_link +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x3766aa5b vfs_getattr +EXPORT_SYMBOL vmlinux 0x37681ffd put_fs_context +EXPORT_SYMBOL vmlinux 0x377126fb nand_create_bbt +EXPORT_SYMBOL vmlinux 0x377498e4 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x3777a74e sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x378946bf rproc_boot +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37988e62 mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x37a195a5 rtc_add_groups +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bf3855 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0x37c19b1b __register_nls +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37dd56cb input_free_device +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x3803845e of_match_node +EXPORT_SYMBOL vmlinux 0x38076dc0 d_alloc +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3842b3a6 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x3845c431 cdev_device_add +EXPORT_SYMBOL vmlinux 0x385423c1 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x386d9ce9 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x3877a1a1 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x389de780 dump_skip_to +EXPORT_SYMBOL vmlinux 0x389ecf9e __bswapdi2 +EXPORT_SYMBOL vmlinux 0x38a05eb3 ptp_clock_register +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38bc4d3b _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x38c10453 mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x38c56e60 folio_mapped +EXPORT_SYMBOL vmlinux 0x38d5ba34 request_key_rcu +EXPORT_SYMBOL vmlinux 0x38d990b6 mount_bdev +EXPORT_SYMBOL vmlinux 0x38de402b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x38e46e9d inet_sendpage +EXPORT_SYMBOL vmlinux 0x38e6f036 backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0x38ebd610 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x38f37da7 nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x3901765f sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x3908bc8c bdi_alloc +EXPORT_SYMBOL vmlinux 0x391549e3 tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x391d70bb scsi_device_put +EXPORT_SYMBOL vmlinux 0x3924cabf sock_i_ino +EXPORT_SYMBOL vmlinux 0x3931e172 kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x394c7ccd remap_pfn_range +EXPORT_SYMBOL vmlinux 0x3962da94 ip_output +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x398230f7 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x3992bc63 __xa_set_mark +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x399c6bce nonseekable_open +EXPORT_SYMBOL vmlinux 0x39b3e109 mmc_add_host +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39b57bc1 __do_once_slow_done +EXPORT_SYMBOL vmlinux 0x39bb870c __vcalloc +EXPORT_SYMBOL vmlinux 0x39bedd70 posix_lock_file +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39c88fd5 flush_rcu_work +EXPORT_SYMBOL vmlinux 0x39cb209a blk_sync_queue +EXPORT_SYMBOL vmlinux 0x39e0418c generic_permission +EXPORT_SYMBOL vmlinux 0x39e52b74 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x3a059a84 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x3a15098f netif_device_attach +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a574c7e of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0x3a84fed3 utf8_casefold +EXPORT_SYMBOL vmlinux 0x3a8c821c dquot_disable +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ac124ed kernel_param_lock +EXPORT_SYMBOL vmlinux 0x3ad6fd8e krait_get_l2_indirect_reg +EXPORT_SYMBOL vmlinux 0x3add6ef3 __skb_checksum +EXPORT_SYMBOL vmlinux 0x3ae62743 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x3b0707d3 filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x3b0c6079 kset_unregister +EXPORT_SYMBOL vmlinux 0x3b256828 _dev_err +EXPORT_SYMBOL vmlinux 0x3b299067 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x3b31886c remove_proc_entry +EXPORT_SYMBOL vmlinux 0x3b33b1a9 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x3b40879d check_zeroed_user +EXPORT_SYMBOL vmlinux 0x3b420a08 kill_fasync +EXPORT_SYMBOL vmlinux 0x3b5a3387 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6bf5a5 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b707ad5 imx_sc_rm_get_resource_owner +EXPORT_SYMBOL vmlinux 0x3b956382 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x3bb2b96c tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x3bb5a25f jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bd84130 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x3bdc55b6 inet6_bind +EXPORT_SYMBOL vmlinux 0x3be10562 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3befc15b security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x3bf5d5df serio_bus +EXPORT_SYMBOL vmlinux 0x3bf72ff9 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x3bf83d4c skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x3bfd7962 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c186490 mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x3c1d4506 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x3c25862d read_cache_page +EXPORT_SYMBOL vmlinux 0x3c3215c4 qe_immr +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c5fb328 proc_mkdir +EXPORT_SYMBOL vmlinux 0x3c6b616d sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x3c757a23 put_disk +EXPORT_SYMBOL vmlinux 0x3c7950d3 devm_ioremap +EXPORT_SYMBOL vmlinux 0x3c7aac35 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x3c7c8187 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x3c82f0f4 rawnand_sw_bch_correct +EXPORT_SYMBOL vmlinux 0x3c88e7c9 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x3c8f6ef0 __xa_insert +EXPORT_SYMBOL vmlinux 0x3c923b5d snd_component_add +EXPORT_SYMBOL vmlinux 0x3cb33d52 reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x3cc2c2a2 msm_pinctrl_remove +EXPORT_SYMBOL vmlinux 0x3cc36557 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x3cc96af7 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x3cd32e20 mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x3cd9009d mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x3cdba8be jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce73b91 make_kgid +EXPORT_SYMBOL vmlinux 0x3ceefb09 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x3cf1b92f __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x3cf5763f ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x3d02fc09 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x3d18d631 fb_get_mode +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d3ce2a5 sg_miter_next +EXPORT_SYMBOL vmlinux 0x3d404ceb __vmalloc_array +EXPORT_SYMBOL vmlinux 0x3d707508 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x3d765041 key_task_permission +EXPORT_SYMBOL vmlinux 0x3d777129 bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0x3d7b8da6 fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x3d7eeffd ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x3d8fec1e mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3d96bf39 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x3d9e67c6 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x3db77ba7 rproc_get_by_child +EXPORT_SYMBOL vmlinux 0x3dbc15e3 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dcf1ffa __wake_up +EXPORT_SYMBOL vmlinux 0x3dd5668e _dev_alert +EXPORT_SYMBOL vmlinux 0x3dd878a0 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x3ddb0880 mr_dump +EXPORT_SYMBOL vmlinux 0x3dddd494 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x3dfbe4c2 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e05d936 ppp_register_channel +EXPORT_SYMBOL vmlinux 0x3e07b87b vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x3e0f5883 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x3e1c3c0f scsi_host_get +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e46e0b6 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x3e503e24 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x3e6689ad seq_open +EXPORT_SYMBOL vmlinux 0x3e7715bd blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x3e801d78 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x3e82f3e9 get_random_bytes +EXPORT_SYMBOL vmlinux 0x3ea1b6e4 __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x3ebf8a55 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x3ec80fa0 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x3ed104a5 xa_set_mark +EXPORT_SYMBOL vmlinux 0x3edd3850 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x3eecd19f filemap_fault +EXPORT_SYMBOL vmlinux 0x3ef53079 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f0492d6 file_update_time +EXPORT_SYMBOL vmlinux 0x3f074439 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x3f0d693b hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x3f266dad misc_deregister +EXPORT_SYMBOL vmlinux 0x3f2905b0 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x3f341fa5 kill_pid +EXPORT_SYMBOL vmlinux 0x3f392889 tegra_ivc_notified +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4af46f gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x3f50cdbc vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x3f5875f2 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x3f5d11d7 touch_atime +EXPORT_SYMBOL vmlinux 0x3f5f020a unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x3f60e364 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x3f62d048 dma_fence_init +EXPORT_SYMBOL vmlinux 0x3f6348e1 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x3f70ceb1 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3fbab01a snd_timer_continue +EXPORT_SYMBOL vmlinux 0x3fbc0f60 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fdfbee2 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x3fe35d75 dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0x3fea538c hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3ff2fd7a blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x4005cce1 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x401ad1c1 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x40263b2c nobh_writepage +EXPORT_SYMBOL vmlinux 0x403a93e7 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x40576ae0 __seq_open_private +EXPORT_SYMBOL vmlinux 0x4059113c jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40814f4f page_pool_create +EXPORT_SYMBOL vmlinux 0x40919e1f mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b0797d simple_map_init +EXPORT_SYMBOL vmlinux 0x40b50b7e __dquot_free_space +EXPORT_SYMBOL vmlinux 0x40b51c05 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x40bdb7bf generic_block_bmap +EXPORT_SYMBOL vmlinux 0x40bfd44e __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c9ad21 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d402ad do_wait_intr +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40e5f8de rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x40eddb54 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40ff2c39 flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x4110301d netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x41155a78 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x411aa3ea blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x412b8f67 bpf_link_put +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x4133d24a mdio_driver_register +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414975dd __genradix_prealloc +EXPORT_SYMBOL vmlinux 0x415c682f iov_iter_discard +EXPORT_SYMBOL vmlinux 0x417ab071 thread_group_exited +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418a5367 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x418e12c8 sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x418e3a43 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0x4192b43d init_task +EXPORT_SYMBOL vmlinux 0x4197aab8 vme_register_bridge +EXPORT_SYMBOL vmlinux 0x41bb84fc dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x41c80163 proc_symlink +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41cf8f5d ip_local_deliver +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x421d4dcf krealloc +EXPORT_SYMBOL vmlinux 0x42201cdd dma_supported +EXPORT_SYMBOL vmlinux 0x422974c8 of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x4250912f ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0x4253aa7e down_write +EXPORT_SYMBOL vmlinux 0x42604384 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x429777a6 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x429e30d0 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x42a267bc d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x42a2c7bb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x42ae54bb devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x42af9b35 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x42c23635 __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0x42efef7d secpath_set +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x432722ba param_ops_ushort +EXPORT_SYMBOL vmlinux 0x4336fcca ucs2_as_utf8 +EXPORT_SYMBOL vmlinux 0x433fb25d vfio_register_notifier +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x435bd2ba dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x43655b1f filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x436638f2 configfs_register_group +EXPORT_SYMBOL vmlinux 0x436b32e6 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x4382fb35 d_tmpfile +EXPORT_SYMBOL vmlinux 0x4384eb42 __release_region +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438980b0 blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0x438d2505 vfs_link +EXPORT_SYMBOL vmlinux 0x43b646db uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x43bb5a7c xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x43c943e3 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43d42131 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x43e2781f devfreq_update_target +EXPORT_SYMBOL vmlinux 0x43e57231 commit_creds +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x44003e36 dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x4403bbd0 imx_sc_misc_set_control +EXPORT_SYMBOL vmlinux 0x441cc6a8 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x442629f2 __register_chrdev +EXPORT_SYMBOL vmlinux 0x442bfd6e phy_disconnect +EXPORT_SYMBOL vmlinux 0x44345c45 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x444cc8ed tcp_md5_needed +EXPORT_SYMBOL vmlinux 0x44532a93 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x4461eb55 gic_nonsecure_priorities +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x448d3c80 rpmh_write_async +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44c0b82b __do_once_done +EXPORT_SYMBOL vmlinux 0x44c9dc6c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e07d09 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x44e66ed2 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f5af57 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x45006cee default_red +EXPORT_SYMBOL vmlinux 0x450b2832 devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x450d9a35 cmd_db_read_slave_id +EXPORT_SYMBOL vmlinux 0x451c1cd0 udp_pre_connect +EXPORT_SYMBOL vmlinux 0x4524a1dc nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x452c91fd snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x452e4604 passthru_features_check +EXPORT_SYMBOL vmlinux 0x452ec34c pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4556760c km_state_expired +EXPORT_SYMBOL vmlinux 0x457592d6 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x4575dd09 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0x45789202 unix_get_socket +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457f206a inode_dio_wait +EXPORT_SYMBOL vmlinux 0x458d6b5e generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x458ea943 sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x45bd19de nla_strscpy +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45d7f4cb page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x45e816a0 bdi_unregister +EXPORT_SYMBOL vmlinux 0x45f8ccd6 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0x45f8d1c6 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x45fdee7f dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x46047bf2 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0x46053a9a blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x461289e6 seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x4615388d snd_ctl_replace +EXPORT_SYMBOL vmlinux 0x461989cb blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x461aec41 param_ops_string +EXPORT_SYMBOL vmlinux 0x46244c03 ns_capable +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46471943 dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x464eda7d d_move +EXPORT_SYMBOL vmlinux 0x465061f1 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x465e9e5a sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x465f950a pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x4663eee5 logfc +EXPORT_SYMBOL vmlinux 0x46669d36 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0x46709dd7 pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x4682d13d phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x468cd7f7 bio_add_page +EXPORT_SYMBOL vmlinux 0x4697d8c5 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x46ae382c generic_file_llseek +EXPORT_SYMBOL vmlinux 0x46b0cf23 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x46bc19d8 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x46cbe901 param_set_copystring +EXPORT_SYMBOL vmlinux 0x46cf9638 neigh_table_init +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46da7cac build_skb +EXPORT_SYMBOL vmlinux 0x46fdfafa page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0x47065c73 cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x47119e39 inode_to_bdi +EXPORT_SYMBOL vmlinux 0x471409a8 brioctl_set +EXPORT_SYMBOL vmlinux 0x47201a81 is_bad_inode +EXPORT_SYMBOL vmlinux 0x4749c872 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x474a4fa0 netdev_alert +EXPORT_SYMBOL vmlinux 0x4756260d ida_destroy +EXPORT_SYMBOL vmlinux 0x475d84ef gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x4765acb2 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x47755258 __module_get +EXPORT_SYMBOL vmlinux 0x477aa43b __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x4787b5c3 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x479137ca imx_scu_irq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x47a0167f scsi_register_interface +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47ccdae1 bio_endio +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47ff6b66 md_check_recovery +EXPORT_SYMBOL vmlinux 0x481beb44 napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x4828cd9b phy_suspend +EXPORT_SYMBOL vmlinux 0x482ef078 of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x48363efb pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x4848cfb1 phy_mipi_dphy_get_default_config +EXPORT_SYMBOL vmlinux 0x484f6edf ktime_get_coarse_real_ts64 +EXPORT_SYMBOL vmlinux 0x4852394e __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486135b8 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x48661eae register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0x486c3890 nf_log_set +EXPORT_SYMBOL vmlinux 0x4871d75d clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x48a33537 __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x48a45e8d __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48fa0716 vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4912629a vme_new_dma_list +EXPORT_SYMBOL vmlinux 0x4917a570 bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x49225c50 sock_no_accept +EXPORT_SYMBOL vmlinux 0x4922d1f3 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x4948191d skb_store_bits +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x4957ae48 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x4961be5b udplite_prot +EXPORT_SYMBOL vmlinux 0x49805905 generic_writepages +EXPORT_SYMBOL vmlinux 0x49841acb phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x49871971 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x498cc7fe input_grab_device +EXPORT_SYMBOL vmlinux 0x49970de8 finish_wait +EXPORT_SYMBOL vmlinux 0x4997a341 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x499a1f52 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x499e16ce jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x49a0b37e blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x49d4c9f3 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x49d61380 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x49ecae8f snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x49f26466 kstrndup +EXPORT_SYMBOL vmlinux 0x4a19e3c3 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x4a2b81de drop_super +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a4426c5 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x4a61fbd5 has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4abe6cdc iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x4ac17681 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x4ac1c3c7 device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x4ade86b5 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0x4ae15ad5 unlock_rename +EXPORT_SYMBOL vmlinux 0x4ae79632 input_register_handler +EXPORT_SYMBOL vmlinux 0x4ae8ee66 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x4aeb183d mmc_free_host +EXPORT_SYMBOL vmlinux 0x4af1acb9 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4b0aefd0 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x4b23c734 config_item_get +EXPORT_SYMBOL vmlinux 0x4b3d303d pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x4b55148e skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0x4b58cb91 generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4ba8a35e xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0x4bdab1fe dev_set_threaded +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bf72871 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x4bfdcefa __memset32 +EXPORT_SYMBOL vmlinux 0x4c0006aa mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0x4c11a829 save_stack_trace_tsk +EXPORT_SYMBOL vmlinux 0x4c15d4c0 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0x4c1cca3b cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c36998a pci_scan_bus +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c43e7b4 sock_set_priority +EXPORT_SYMBOL vmlinux 0x4c5cf160 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x4c668ecb bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x4c6f544a scsi_done_direct +EXPORT_SYMBOL vmlinux 0x4c74f4a2 netdev_update_features +EXPORT_SYMBOL vmlinux 0x4c910d53 gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x4c99820c sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4cb3a838 snd_unregister_device +EXPORT_SYMBOL vmlinux 0x4cb9ee9c simple_transaction_release +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4cc2854d tegra114_clock_assert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x4cd11284 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x4cd22c71 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0x4cd32dcb unpin_user_page +EXPORT_SYMBOL vmlinux 0x4cd4a575 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x4cd5532f __d_lookup_done +EXPORT_SYMBOL vmlinux 0x4ce865e2 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x4cfaa8a0 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x4cfbb935 phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x4d021bcd km_state_notify +EXPORT_SYMBOL vmlinux 0x4d07c092 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d219633 folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d47b94e tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x4d4f1974 inet_bind +EXPORT_SYMBOL vmlinux 0x4d514485 xa_store +EXPORT_SYMBOL vmlinux 0x4d65dc97 param_set_bint +EXPORT_SYMBOL vmlinux 0x4d6ae35f rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x4d93e935 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4dce47d8 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x4dd9d63b PageMovable +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4e042736 blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x4e05bdec mempool_init_node +EXPORT_SYMBOL vmlinux 0x4e085ea8 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x4e11eb63 seq_write +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e482e4f nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x4e4a9ea3 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x4e64e713 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e739f91 filp_close +EXPORT_SYMBOL vmlinux 0x4e80d27c ucc_fast_enable +EXPORT_SYMBOL vmlinux 0x4ea4728e vfs_fsync +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4eb75e94 xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x4ec2dfaf register_fib_notifier +EXPORT_SYMBOL vmlinux 0x4edf4d24 tcp_peek_len +EXPORT_SYMBOL vmlinux 0x4ee25e7c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x4ee98ebd tcp_have_smc +EXPORT_SYMBOL vmlinux 0x4efeeb64 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x4f019976 devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f235dd0 folio_migrate_copy +EXPORT_SYMBOL vmlinux 0x4f2364ff udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x4f3cc556 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x4f4d6200 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x4f532047 udp_seq_ops +EXPORT_SYMBOL vmlinux 0x4f737afc dm_get_device +EXPORT_SYMBOL vmlinux 0x4f768c3e sk_net_capable +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fa9fd53 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x4fd995e7 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x4fe28eb7 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x4fe73121 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x4fef3ef4 completion_done +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x4ffcc17f fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x500e3408 ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0x50100028 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x50127d89 bio_uninit +EXPORT_SYMBOL vmlinux 0x502b6647 mempool_create_node +EXPORT_SYMBOL vmlinux 0x502e18ce of_device_register +EXPORT_SYMBOL vmlinux 0x5031d35d vga_put +EXPORT_SYMBOL vmlinux 0x503bce17 proto_register +EXPORT_SYMBOL vmlinux 0x503bd137 snd_interval_ranges +EXPORT_SYMBOL vmlinux 0x504fc969 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x5077e828 clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0x507bfa26 from_kuid +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x508f860e devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x5098ae9c of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x509c0cf3 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x509f35d3 ihold +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50a65769 rproc_del +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50b7814d skb_unlink +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d2efdb key_alloc +EXPORT_SYMBOL vmlinux 0x50d71bcf gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x50e89f7e dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x50f3c02a folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x50f85302 __arm_smccc_hvc +EXPORT_SYMBOL vmlinux 0x50fc502e simple_link +EXPORT_SYMBOL vmlinux 0x50fd6103 dma_fence_signal +EXPORT_SYMBOL vmlinux 0x50fd73f2 iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x510f1dcf vif_device_init +EXPORT_SYMBOL vmlinux 0x511e119c phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0x511f6603 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x51441468 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x51480110 __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x5148e6fe dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x514a62ec dq_data_lock +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x516ec6af dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x517018a2 sgl_alloc_order +EXPORT_SYMBOL vmlinux 0x51783094 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0x518990d2 pci_pme_active +EXPORT_SYMBOL vmlinux 0x519f4108 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x51a23fdc scsi_device_resume +EXPORT_SYMBOL vmlinux 0x51a910c0 arm_copy_to_user +EXPORT_SYMBOL vmlinux 0x51afbdf1 thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x51df0484 pps_register_source +EXPORT_SYMBOL vmlinux 0x51dff1b2 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x51e4e183 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51f16cdb vfio_info_cap_shift +EXPORT_SYMBOL vmlinux 0x51f1829b snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x5203d176 cmd_db_ready +EXPORT_SYMBOL vmlinux 0x520994b6 blk_put_queue +EXPORT_SYMBOL vmlinux 0x52236124 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x522fb0e4 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0x524e7838 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x52547bb3 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x5273f8f9 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x52759669 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52b6ea5c register_key_type +EXPORT_SYMBOL vmlinux 0x52cf212f forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52f14c63 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x52f2850a imx_sc_pm_cpu_start +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531cc5ca file_ns_capable +EXPORT_SYMBOL vmlinux 0x533731e3 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x536060af radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x53636db7 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x53642f19 devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0x5366aad0 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x536c9231 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x537e67ad tcp_req_err +EXPORT_SYMBOL vmlinux 0x5393a16d snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x53a598ba snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x53a93dc9 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x53aeb013 hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x53c5d766 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x53c5f44d sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x53c81e9e security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x53d3a3b8 eth_header_cache +EXPORT_SYMBOL vmlinux 0x53f8ced7 page_pool_ethtool_stats_get_strings +EXPORT_SYMBOL vmlinux 0x5404f003 configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0x5409c6a8 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x540c5907 mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0x541e3cfb ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x5421a4dc blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x54303d15 generic_fillattr +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54578ce6 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x546e3b6d skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x54740973 find_inode_rcu +EXPORT_SYMBOL vmlinux 0x54879238 iov_iter_zero +EXPORT_SYMBOL vmlinux 0x548dd49e pci_get_class +EXPORT_SYMBOL vmlinux 0x5491d6a0 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54c5f860 tty_unlock +EXPORT_SYMBOL vmlinux 0x54cf2575 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x54d9151b of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x54e55dfb ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x553ac2e7 dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x5545a639 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x554ce11a sock_edemux +EXPORT_SYMBOL vmlinux 0x5562e403 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x55726e50 from_kgid +EXPORT_SYMBOL vmlinux 0x557eb4f0 inet6_offloads +EXPORT_SYMBOL vmlinux 0x5584daca neigh_table_clear +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x55de6f8e sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55e54df9 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x55eb869a _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x55ed5430 alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0x55f62f44 sock_no_linger +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x56487687 inet_ioctl +EXPORT_SYMBOL vmlinux 0x56498087 paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x564ce255 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0x565cae79 dm_put_device +EXPORT_SYMBOL vmlinux 0x566e3978 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x567a7cd5 do_map_probe +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x56872ef1 devm_memunmap +EXPORT_SYMBOL vmlinux 0x569a6da2 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x569a6e50 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x569e7978 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x56a4c9ad phy_detach +EXPORT_SYMBOL vmlinux 0x56ba9998 fb_set_suspend +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d299f8 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x56e854f1 dev_load +EXPORT_SYMBOL vmlinux 0x56f0ec41 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x56fdb21f sock_no_getname +EXPORT_SYMBOL vmlinux 0x57106ed8 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x571b4b8c phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x57282e22 fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0x572adefb tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x57341933 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x573ea2b9 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x5740562f netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x574650a7 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0x57479518 inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x5752191b __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576adce5 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x577255e0 config_item_put +EXPORT_SYMBOL vmlinux 0x5785ee42 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x5789e7d7 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x57ceedb1 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x57d1a915 mdio_device_create +EXPORT_SYMBOL vmlinux 0x57d4c38e devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x57e0734d device_add_disk +EXPORT_SYMBOL vmlinux 0x57e5170c qcom_scm_iommu_secure_ptbl_size +EXPORT_SYMBOL vmlinux 0x57f38cdc qe_get_firmware_info +EXPORT_SYMBOL vmlinux 0x580d25a1 tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x58175c8d fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581cde4e up +EXPORT_SYMBOL vmlinux 0x581d4f7c fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x581ef118 phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0x581f57db devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x5822c271 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x5826b0c4 snd_device_new +EXPORT_SYMBOL vmlinux 0x5827f6da i2c_clients_command +EXPORT_SYMBOL vmlinux 0x582974d3 __devm_release_region +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x58357c20 I_BDEV +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5855b740 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x58578987 find_inode_nowait +EXPORT_SYMBOL vmlinux 0x585a9103 dev_get_mac_address +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587b892e qe_get_num_of_risc +EXPORT_SYMBOL vmlinux 0x58856970 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x589b3b9c simple_transaction_set +EXPORT_SYMBOL vmlinux 0x589e1c41 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b063c2 param_set_ullong +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58ca4be1 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58ed26e2 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x58fad869 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x590264fd inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x5926786e amba_device_unregister +EXPORT_SYMBOL vmlinux 0x592b5bd9 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x593a4e73 set_capacity +EXPORT_SYMBOL vmlinux 0x593b76a2 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x59471966 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x59780a01 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x598c031c grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x598e650e validate_slab_cache +EXPORT_SYMBOL vmlinux 0x599512df get_user_pages_remote +EXPORT_SYMBOL vmlinux 0x599b4888 qe_setbrg +EXPORT_SYMBOL vmlinux 0x59a17bfc tegra114_clock_tune_cpu_trimmers_high +EXPORT_SYMBOL vmlinux 0x59a3262c amba_release_regions +EXPORT_SYMBOL vmlinux 0x59b07c2e mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x59b1d17c pci_add_resource +EXPORT_SYMBOL vmlinux 0x59b7cab6 mempool_resize +EXPORT_SYMBOL vmlinux 0x59c33710 skb_dump +EXPORT_SYMBOL vmlinux 0x59cf0b3b zstd_compress_bound +EXPORT_SYMBOL vmlinux 0x59d00807 phy_error +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59d93e30 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0x59db72cc cqhci_deactivate +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59edcda1 elm_decode_bch_error_page +EXPORT_SYMBOL vmlinux 0x59ef06ba zero_fill_bio +EXPORT_SYMBOL vmlinux 0x59f1590b sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x59ff047b tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a1315a5 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x5a14de15 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x5a172558 pci_release_regions +EXPORT_SYMBOL vmlinux 0x5a17b940 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x5a1e9d35 simple_setattr +EXPORT_SYMBOL vmlinux 0x5a292f55 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x5a33e624 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5a3e05ee sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x5a3e3975 snd_timer_close +EXPORT_SYMBOL vmlinux 0x5a4b4188 vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a6a2c49 pci_select_bars +EXPORT_SYMBOL vmlinux 0x5a7729b2 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x5a8bb165 devm_rproc_add +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5aa1fbe5 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x5aa3c254 padata_free_shell +EXPORT_SYMBOL vmlinux 0x5ab29095 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x5ab50a37 mdio_find_bus +EXPORT_SYMBOL vmlinux 0x5ac1e4a9 fs_param_is_path +EXPORT_SYMBOL vmlinux 0x5ac3a8be skb_expand_head +EXPORT_SYMBOL vmlinux 0x5ac8d263 folio_unlock +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5ae7ab72 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x5aed1402 xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x5aef0010 of_get_property +EXPORT_SYMBOL vmlinux 0x5b00f90c make_kuid +EXPORT_SYMBOL vmlinux 0x5b04be5a disable_fiq +EXPORT_SYMBOL vmlinux 0x5b062284 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x5b0f3058 pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x5b2b160e d_exact_alias +EXPORT_SYMBOL vmlinux 0x5b2c084a i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x5b2fbf46 key_move +EXPORT_SYMBOL vmlinux 0x5b5830a7 ucc_of_parse_tdm +EXPORT_SYMBOL vmlinux 0x5b6854fc invalidate_disk +EXPORT_SYMBOL vmlinux 0x5bac0d11 tcf_idr_search +EXPORT_SYMBOL vmlinux 0x5bbc86e4 md_handle_request +EXPORT_SYMBOL vmlinux 0x5bbc8ae2 of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x5bbe49f4 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x5bc3d2fd ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x5bccaf65 path_is_mountpoint +EXPORT_SYMBOL vmlinux 0x5bd44fa3 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bda4214 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be1e53e netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5be78d62 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0x5c0519ee netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x5c0955bf add_watch_to_object +EXPORT_SYMBOL vmlinux 0x5c12dad4 vme_alloc_consistent +EXPORT_SYMBOL vmlinux 0x5c14ad91 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x5c1ed522 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x5c1ef87b __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x5c2256d9 cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x5c2300dc do_SAK +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c716976 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5c7f1284 int_sqrt64 +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c979e3c fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0x5cbd8e69 __crc32c_le +EXPORT_SYMBOL vmlinux 0x5cd38be3 folio_end_writeback +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf88562 nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x5d00820c fd_install +EXPORT_SYMBOL vmlinux 0x5d01f1d2 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x5d272df0 unlock_page +EXPORT_SYMBOL vmlinux 0x5d37d658 dim_park_tired +EXPORT_SYMBOL vmlinux 0x5d46c5ea dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d4d81d7 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x5d50b68d posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x5d51d537 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x5d52c76d twl6040_power +EXPORT_SYMBOL vmlinux 0x5d53d6ca ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x5d59479c genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x5d5ec929 iov_iter_revert +EXPORT_SYMBOL vmlinux 0x5d5eeb84 pci_iounmap +EXPORT_SYMBOL vmlinux 0x5d633d40 kthread_create_worker +EXPORT_SYMBOL vmlinux 0x5d63e749 vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x5d80b0ff twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x5d8d2967 file_modified +EXPORT_SYMBOL vmlinux 0x5d91c44e jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x5d93b46c kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5da0c832 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x5dab4103 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x5db57cdf neigh_destroy +EXPORT_SYMBOL vmlinux 0x5dba71d7 sg_last +EXPORT_SYMBOL vmlinux 0x5dc62fcb always_delete_dentry +EXPORT_SYMBOL vmlinux 0x5dce2671 netdev_err +EXPORT_SYMBOL vmlinux 0x5dcf6341 outer_cache +EXPORT_SYMBOL vmlinux 0x5dd9c936 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x5ddac875 abort_creds +EXPORT_SYMBOL vmlinux 0x5ddf9f3a dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x5df091f9 setattr_prepare +EXPORT_SYMBOL vmlinux 0x5df385c7 load_nls_default +EXPORT_SYMBOL vmlinux 0x5df8a4d7 trace_event_printf +EXPORT_SYMBOL vmlinux 0x5e0b2f93 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e281563 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e38c830 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x5e40c294 page_pool_release_page +EXPORT_SYMBOL vmlinux 0x5e48d88e phy_device_free +EXPORT_SYMBOL vmlinux 0x5e4dbcff pps_event +EXPORT_SYMBOL vmlinux 0x5e556f87 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x5e689fde con_is_visible +EXPORT_SYMBOL vmlinux 0x5e68f583 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x5e6f91f9 tegra_powergate_remove_clamping +EXPORT_SYMBOL vmlinux 0x5e7671ae netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x5e7e03a9 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0x5e7e8b42 devm_clk_put +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e81d37a netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea36760 unlock_buffer +EXPORT_SYMBOL vmlinux 0x5eac7d8c param_get_charp +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ec593ff dev_close +EXPORT_SYMBOL vmlinux 0x5ecae4d7 fb_class +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed05bf6 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5ed17564 __break_lease +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5ee2e927 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x5eefd40f get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x5efb37dc filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x5f091a67 of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0d97ee icmp6_send +EXPORT_SYMBOL vmlinux 0x5f122bcd dcache_readdir +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f3b74ce blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x5f4c6aec security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x5f52e84d qcom_scm_pas_metadata_release +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f6d684c skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f7b5e8b skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x5f94cda9 find_vma +EXPORT_SYMBOL vmlinux 0x5fa2e589 locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0x5fb01358 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fb79bae dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x5fba72c1 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x5fbc8d12 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x5fc0b1b9 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x5fd0ef50 dev_trans_start +EXPORT_SYMBOL vmlinux 0x5ff11cc3 pcibios_min_io +EXPORT_SYMBOL vmlinux 0x5ffb92f0 generic_write_end +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60173786 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x60205525 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x60209c8c ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x602ea605 param_get_uint +EXPORT_SYMBOL vmlinux 0x6030cc90 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x6033c4e6 qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60535ba6 __ps2_command +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x606368ff vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x6080ad24 bdi_register +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x6096bda8 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x6098f7ed cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f4fb8 sock_wfree +EXPORT_SYMBOL vmlinux 0x60a0917e dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60bf45a2 of_get_nand_ecc_user_config +EXPORT_SYMBOL vmlinux 0x60bffe6d div64_u64 +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x60d9ef42 tty_port_put +EXPORT_SYMBOL vmlinux 0x60f58d78 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x6121bd54 dql_init +EXPORT_SYMBOL vmlinux 0x6124194a dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x613d0028 seq_lseek +EXPORT_SYMBOL vmlinux 0x6143cb5c dm_table_event +EXPORT_SYMBOL vmlinux 0x61453a79 simple_lookup +EXPORT_SYMBOL vmlinux 0x6156c7f4 net_dim +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x615db9f8 vfs_statfs +EXPORT_SYMBOL vmlinux 0x6165d7f9 dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0x61738ae1 tegra_dfll_suspend +EXPORT_SYMBOL vmlinux 0x617d72a4 pci_request_region +EXPORT_SYMBOL vmlinux 0x61a83c7c jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0x61aa94cd dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x61b76bb9 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bbf17e uart_update_timeout +EXPORT_SYMBOL vmlinux 0x61c21d52 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x61c76b3a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x61ca84f6 devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61f24bc5 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6215fa63 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x621a5f23 netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0x62214da2 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6231ad0d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x6238927c qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x625d06b8 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x62678fa1 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x6268c179 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628a79e7 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x628e806c unregister_filesystem +EXPORT_SYMBOL vmlinux 0x62919513 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x6295fdaa ptp_clock_event +EXPORT_SYMBOL vmlinux 0x62973dfe snd_timer_notify +EXPORT_SYMBOL vmlinux 0x629dcd6f inet_getname +EXPORT_SYMBOL vmlinux 0x62a1db4b inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x62a2369f generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x62b50b65 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x62b9567c override_creds +EXPORT_SYMBOL vmlinux 0x62c52a9f register_netdevice +EXPORT_SYMBOL vmlinux 0x62f259ac snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x62f576d9 trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631bdf3e put_cmsg +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x6323fd6a md_bitmap_free +EXPORT_SYMBOL vmlinux 0x632a27d1 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x63313d34 fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0x6335feb2 generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x63422b59 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x6342f99f mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x6343da6d udp_gro_complete +EXPORT_SYMBOL vmlinux 0x63490bef xp_can_alloc +EXPORT_SYMBOL vmlinux 0x634d99d4 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x6351ac42 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0x63652c71 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x6367976c configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x636a788e i2c_transfer +EXPORT_SYMBOL vmlinux 0x637de79e pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x637f0cfc lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x638938dd block_truncate_page +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63b7c2fe backlight_device_register +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ff81cd pci_scan_slot +EXPORT_SYMBOL vmlinux 0x640f27f1 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x643c0676 input_match_device_id +EXPORT_SYMBOL vmlinux 0x6441b403 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x647af474 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x64833350 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64b7814a param_ops_ulong +EXPORT_SYMBOL vmlinux 0x64cb6e97 _dev_info +EXPORT_SYMBOL vmlinux 0x64f1f27b flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x64f445c1 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x651005b2 make_bad_inode +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x653b3675 gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65464c16 clkdev_drop +EXPORT_SYMBOL vmlinux 0x654b855e rproc_put +EXPORT_SYMBOL vmlinux 0x6578533e prepare_to_wait +EXPORT_SYMBOL vmlinux 0x657d93b5 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x658f0f75 d_splice_alias +EXPORT_SYMBOL vmlinux 0x65938924 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x65c6bc56 mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x65d411e9 idr_get_next +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f34c23 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x65f61ca7 rpmh_invalidate +EXPORT_SYMBOL vmlinux 0x6620801a rproc_detach +EXPORT_SYMBOL vmlinux 0x6631d63f vfs_unlink +EXPORT_SYMBOL vmlinux 0x66343d7c dev_open +EXPORT_SYMBOL vmlinux 0x663f3b43 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x66474aa4 neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x665052b1 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x665fd3c9 phy_device_create +EXPORT_SYMBOL vmlinux 0x66657274 kmalloc_order +EXPORT_SYMBOL vmlinux 0x666863dc par_io_config_pin +EXPORT_SYMBOL vmlinux 0x666d062f pci_choose_state +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x6674bd14 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0x66ac2163 keyring_search +EXPORT_SYMBOL vmlinux 0x66aed8c5 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x66b91be3 follow_up +EXPORT_SYMBOL vmlinux 0x66d37be5 request_firmware +EXPORT_SYMBOL vmlinux 0x66d90556 unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x66e82193 fwnode_iomap +EXPORT_SYMBOL vmlinux 0x66e91582 simple_open +EXPORT_SYMBOL vmlinux 0x66fdc50a __register_binfmt +EXPORT_SYMBOL vmlinux 0x67084c30 clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0x67092819 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x6725e8dc tcf_block_get +EXPORT_SYMBOL vmlinux 0x672fe4f4 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x67393f1b page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x673b2762 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x67544ec8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x67759b5c kobject_del +EXPORT_SYMBOL vmlinux 0x6786e694 kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x67a90c34 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b29015 finish_swait +EXPORT_SYMBOL vmlinux 0x67b616eb config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b8a54d param_get_invbool +EXPORT_SYMBOL vmlinux 0x67c5c693 generic_read_dir +EXPORT_SYMBOL vmlinux 0x67ce16a4 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x67cf8efa pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x67d27f1e rawnand_sw_bch_cleanup +EXPORT_SYMBOL vmlinux 0x67dedf97 udp_prot +EXPORT_SYMBOL vmlinux 0x67e07440 d_obtain_root +EXPORT_SYMBOL vmlinux 0x67ea6e61 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x67effda8 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x681b36c9 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x681d095a mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0x684d2d30 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687ddf66 flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x6884f744 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0x688d9a63 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x68998a74 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x689f3ec3 mpage_writepage +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68b53115 md_integrity_register +EXPORT_SYMBOL vmlinux 0x68c497c6 devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x68c87f60 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x68e61f15 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x68ea01f7 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x68ea2939 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0x68f6d44a block_dirty_folio +EXPORT_SYMBOL vmlinux 0x68f8b6e9 fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x68fb261c dst_dev_put +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x692851f5 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x692e7bd1 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x6934a421 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x69565a53 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x695d6d42 mtd_concat_create +EXPORT_SYMBOL vmlinux 0x695dd7a6 snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697a56a6 uart_match_port +EXPORT_SYMBOL vmlinux 0x69921672 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0x69aea599 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x69b15583 freeze_super +EXPORT_SYMBOL vmlinux 0x69bd4ab0 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x69be2c1a sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x69d7bb5b kern_path_create +EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window +EXPORT_SYMBOL vmlinux 0x69df02f9 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x69e51d08 __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0706d4 cpu_user +EXPORT_SYMBOL vmlinux 0x6a16523f dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x6a25a2d4 pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x6a561181 dev_get_flags +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a7f0a1b ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x6a8611c1 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0x6a8819ba devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x6a93082f eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x6a9c8dfc __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x6aa768d4 unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x6ab02d73 skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x6ac06735 qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x6ac491da param_set_charp +EXPORT_SYMBOL vmlinux 0x6ac5b087 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x6ac80c29 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x6ad7a335 prepare_creds +EXPORT_SYMBOL vmlinux 0x6ad80afa param_get_hexint +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ade7977 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6af7b21a packing +EXPORT_SYMBOL vmlinux 0x6b005081 vme_master_mmap +EXPORT_SYMBOL vmlinux 0x6b1f37aa poll_initwait +EXPORT_SYMBOL vmlinux 0x6b292158 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b3d6972 request_key_tag +EXPORT_SYMBOL vmlinux 0x6b48f7fc of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b604710 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x6b770e4d ppp_input +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b87e225 inode_permission +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6b9a4525 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x6bac0f4d pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x6bb8c16b serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd26194 vlan_vid_add +EXPORT_SYMBOL vmlinux 0x6bd49ad7 inet_protos +EXPORT_SYMBOL vmlinux 0x6bf9c5d8 of_translate_address +EXPORT_SYMBOL vmlinux 0x6bfe13fd pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x6c03a782 cros_ec_query_all +EXPORT_SYMBOL vmlinux 0x6c1b311a twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c276b27 mount_single +EXPORT_SYMBOL vmlinux 0x6c2bd854 __napi_schedule +EXPORT_SYMBOL vmlinux 0x6c339074 ptp_find_pin +EXPORT_SYMBOL vmlinux 0x6c3b789e skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x6c54df32 netif_skb_features +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c70c586 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x6c7d302d of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x6c810e42 __xa_clear_mark +EXPORT_SYMBOL vmlinux 0x6c84b4ce open_exec +EXPORT_SYMBOL vmlinux 0x6c854498 user_revoke +EXPORT_SYMBOL vmlinux 0x6c9c8ba3 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x6ca44d7a pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x6ca93c0c kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cb8ae63 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x6ccf947c input_register_device +EXPORT_SYMBOL vmlinux 0x6ce6fb4e kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x6cedebfe mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x6cf0d67d qe_get_num_of_snums +EXPORT_SYMBOL vmlinux 0x6d02a72f page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d481afe snd_card_register +EXPORT_SYMBOL vmlinux 0x6d58d9a0 netdev_notice +EXPORT_SYMBOL vmlinux 0x6d5f06e1 ucc_fast_transmit_on_demand +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d8643c0 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x6d89b199 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dca4a26 adjust_resource +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6ddcdbad revert_creds +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6dff9fab padata_do_serial +EXPORT_SYMBOL vmlinux 0x6e06331f phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x6e1e0bdd sock_no_bind +EXPORT_SYMBOL vmlinux 0x6e2db2db folio_mapping +EXPORT_SYMBOL vmlinux 0x6e4e7714 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x6e54c106 blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x6e6def9f vfio_dma_rw +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e8ca5f7 pci_restore_state +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6ebc4865 finish_open +EXPORT_SYMBOL vmlinux 0x6ec97bde __kmap_to_page +EXPORT_SYMBOL vmlinux 0x6ecdb792 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f013ecd __init_rwsem +EXPORT_SYMBOL vmlinux 0x6f06fe62 cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0x6f0a0560 param_ops_bint +EXPORT_SYMBOL vmlinux 0x6f1b037f pci_disable_msix +EXPORT_SYMBOL vmlinux 0x6f1e1032 __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x6f3c4d88 security_path_mknod +EXPORT_SYMBOL vmlinux 0x6f5ab99b genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x6f75091a dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x6f7d4072 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x6f7d650b netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x6f83fba8 hex2bin +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f916171 page_address +EXPORT_SYMBOL vmlinux 0x6fa1ce05 genphy_read_status +EXPORT_SYMBOL vmlinux 0x6fa6597c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x6fb2fad9 serio_open +EXPORT_SYMBOL vmlinux 0x6fb374e6 down_write_killable +EXPORT_SYMBOL vmlinux 0x6fbe2738 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x6fbe4717 idr_replace +EXPORT_SYMBOL vmlinux 0x6fc11b8b security_path_unlink +EXPORT_SYMBOL vmlinux 0x6fc80825 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fdb7027 vga_get +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x7005f3f6 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x700d4099 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x70123aca pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x701261d5 fs_bio_set +EXPORT_SYMBOL vmlinux 0x70189f45 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen +EXPORT_SYMBOL vmlinux 0x705da535 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x70681b3d jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x70703993 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x70a19105 __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0x70bc02f4 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x70ca26f1 xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x70e6a706 bioset_exit +EXPORT_SYMBOL vmlinux 0x70f3c835 fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x7107567d make_kprojid +EXPORT_SYMBOL vmlinux 0x711a0362 register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x711b8a9b __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x71207c81 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x712110ab proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x71298cf8 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7130f410 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x714d1a2d xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x715afc9a ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x71656a0c scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0x716b58cb ioport_resource +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71778255 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x718195ea dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x7182a799 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x7194afec netlink_broadcast +EXPORT_SYMBOL vmlinux 0x719c3d69 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71c33930 padata_free +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71d3cf2b netdev_state_change +EXPORT_SYMBOL vmlinux 0x71d935b2 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0x71ef2f8c mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x71ef5b92 follow_down +EXPORT_SYMBOL vmlinux 0x71ef5e73 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x71f7de4f proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x72005410 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x720be098 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x720d22cd xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x722eb268 pci_request_regions +EXPORT_SYMBOL vmlinux 0x7233260c get_tree_bdev +EXPORT_SYMBOL vmlinux 0x72344534 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x72534dc4 ipv4_specific +EXPORT_SYMBOL vmlinux 0x72561158 vfs_readlink +EXPORT_SYMBOL vmlinux 0x7259c368 mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x726282d1 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x726c89c2 nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x7272458c phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x7272eefd generic_setlease +EXPORT_SYMBOL vmlinux 0x7277c2c0 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x727a3ffe of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0x72831976 keyring_clear +EXPORT_SYMBOL vmlinux 0x728d68c5 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x728d91f0 netpoll_setup +EXPORT_SYMBOL vmlinux 0x72acc8ef blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72ca0399 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x72e43c56 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f352f3 get_vm_area +EXPORT_SYMBOL vmlinux 0x73076315 snd_pci_quirk_lookup_id +EXPORT_SYMBOL vmlinux 0x7308a9a2 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x730a150d mii_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x730b6399 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x7317790e lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x73228179 udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x73258a0a tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x733d3728 sk_wait_data +EXPORT_SYMBOL vmlinux 0x7340622e skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0x7352978a reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x73623458 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x736618f7 blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x73703ab1 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x73826ed5 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x7387908c inet_stream_ops +EXPORT_SYMBOL vmlinux 0x738bccc8 kobject_put +EXPORT_SYMBOL vmlinux 0x738fdca7 unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x73998efa cpm_muram_free_addr +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73a727f3 __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73b06693 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x73bd4d88 tty_do_resize +EXPORT_SYMBOL vmlinux 0x73c65da7 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x73c69b21 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x73cd3ca5 lookup_one +EXPORT_SYMBOL vmlinux 0x73cd4b3b vm_map_ram +EXPORT_SYMBOL vmlinux 0x73dfc75a generic_delete_inode +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740df8fc mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x74192380 qcom_scm_pas_init_image +EXPORT_SYMBOL vmlinux 0x741d55ab generic_ro_fops +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x742fc1e7 fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0x74465f42 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x7451b933 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x7457aecf dev_uc_sync +EXPORT_SYMBOL vmlinux 0x7470980e neigh_for_each +EXPORT_SYMBOL vmlinux 0x747f4410 __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x74a2c64f security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x74a3289b __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x74ac158f __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x74b372ee proc_create_data +EXPORT_SYMBOL vmlinux 0x74b77716 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74c104d8 rtc_add_group +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74d883e7 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x74dbe6ec vfs_get_tree +EXPORT_SYMBOL vmlinux 0x74e46dac imx_ssi_fiq_tx_buffer +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x750ed0e9 file_path +EXPORT_SYMBOL vmlinux 0x751f418e skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x7520c00e unregister_key_type +EXPORT_SYMBOL vmlinux 0x7527beff devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x752c503f cdev_add +EXPORT_SYMBOL vmlinux 0x75344eb9 snd_ctl_add +EXPORT_SYMBOL vmlinux 0x753575ef __brelse +EXPORT_SYMBOL vmlinux 0x75437897 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0x755a41d3 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x7567d381 __get_fiq_regs +EXPORT_SYMBOL vmlinux 0x756ce147 simple_rename +EXPORT_SYMBOL vmlinux 0x757ac0ae cdrom_open +EXPORT_SYMBOL vmlinux 0x7580d007 padata_alloc +EXPORT_SYMBOL vmlinux 0x759a3da0 component_match_add_typed +EXPORT_SYMBOL vmlinux 0x75a8e89c simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x75adf405 pci_read_config_word +EXPORT_SYMBOL vmlinux 0x75b52d09 pcim_iomap +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdd225 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x75d0ea9b qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x75d0f757 blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x75da2af3 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0x75e08dcd dst_alloc +EXPORT_SYMBOL vmlinux 0x75e3f314 register_cdrom +EXPORT_SYMBOL vmlinux 0x75e9255c netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x75ee3bef __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x75f05efc cqhci_resume +EXPORT_SYMBOL vmlinux 0x75f153fd vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0x75f26fad pci_remove_bus +EXPORT_SYMBOL vmlinux 0x75f40440 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x75f6ead9 dm_io +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760c2b60 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x7618ae7e dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7618dadc skb_copy +EXPORT_SYMBOL vmlinux 0x76238cc7 fb_show_logo +EXPORT_SYMBOL vmlinux 0x763b97e5 genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x7666cf1f nla_put +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x76739d31 mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x768406d1 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x768ce9ed eth_get_headlen +EXPORT_SYMBOL vmlinux 0x769ccf44 jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76b99c39 blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76dfdd96 bdi_put +EXPORT_SYMBOL vmlinux 0x76eb5f54 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x77303294 nand_monolithic_write_page_raw +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77331053 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0x77378da6 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x7742efac __post_watch_notification +EXPORT_SYMBOL vmlinux 0x776bee7f try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x77706e0c new_inode +EXPORT_SYMBOL vmlinux 0x7773313d pci_release_resource +EXPORT_SYMBOL vmlinux 0x7784034f udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x7790b394 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x7793ba27 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL vmlinux 0x77aca223 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c4b821 dev_addr_add +EXPORT_SYMBOL vmlinux 0x77d1082e put_ipc_ns +EXPORT_SYMBOL vmlinux 0x77e5889f sk_ns_capable +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77f6f183 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x77fc6a10 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x7800055b input_get_keycode +EXPORT_SYMBOL vmlinux 0x78014424 pagecache_get_page +EXPORT_SYMBOL vmlinux 0x780262f4 netif_tx_lock +EXPORT_SYMBOL vmlinux 0x7804afad thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x78134e84 netdev_emerg +EXPORT_SYMBOL vmlinux 0x781949ca bh_submit_read +EXPORT_SYMBOL vmlinux 0x7821799b phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x784b7f57 bpf_map_get +EXPORT_SYMBOL vmlinux 0x784f2982 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x786220fb jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x7874d2d0 pci_read_vpd +EXPORT_SYMBOL vmlinux 0x78779c0b set_fiq_handler +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78843600 pci_dev_put +EXPORT_SYMBOL vmlinux 0x789c1897 devm_free_irq +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78df7fdb mdiobus_read +EXPORT_SYMBOL vmlinux 0x78f6a5d6 follow_down_one +EXPORT_SYMBOL vmlinux 0x79168876 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x791b2497 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x792f5e6d super_setup_bdi +EXPORT_SYMBOL vmlinux 0x793c6bd4 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0x794765d1 mempool_free +EXPORT_SYMBOL vmlinux 0x794ce65d __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x79507121 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x795aa573 set_page_writeback +EXPORT_SYMBOL vmlinux 0x797d851e genl_unregister_family +EXPORT_SYMBOL vmlinux 0x79912b21 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x799e56d0 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x79be7dc1 config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x79cac99e memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0x79dad2b5 start_tty +EXPORT_SYMBOL vmlinux 0x79dcd79d tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x79fa1deb imx_ssi_fiq_rx_buffer +EXPORT_SYMBOL vmlinux 0x7a00555a skb_seq_read +EXPORT_SYMBOL vmlinux 0x7a08b9cb remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a0c1de0 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a2875ad tcp_time_wait +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a3e8a42 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x7a44c000 bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0x7a4e550d tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a607396 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x7a730cce sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x7a79b9f3 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa48a8a scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x7ab07b05 backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x7ab4ec54 param_get_byte +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac01f2d phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad058c3 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x7ada2fc3 page_cache_prev_miss +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 0x7ae4c2a7 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x7ae5d317 qe_get_snum +EXPORT_SYMBOL vmlinux 0x7aee2757 has_capability +EXPORT_SYMBOL vmlinux 0x7af0d992 register_sound_mixer +EXPORT_SYMBOL vmlinux 0x7af74cfc nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b11829a vfs_llseek +EXPORT_SYMBOL vmlinux 0x7b283ce3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x7b2fb85d __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x7b33453d netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x7b46df96 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b646554 config_group_find_item +EXPORT_SYMBOL vmlinux 0x7b651dce pskb_expand_head +EXPORT_SYMBOL vmlinux 0x7b66cb2e inode_set_flags +EXPORT_SYMBOL vmlinux 0x7b747bbf ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x7b76dfa2 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x7b7bc447 vga_client_register +EXPORT_SYMBOL vmlinux 0x7b8aba58 d_set_d_op +EXPORT_SYMBOL vmlinux 0x7b97f7f3 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x7b9a8941 registered_fb +EXPORT_SYMBOL vmlinux 0x7ba5a3b4 tegra_powergate_power_off +EXPORT_SYMBOL vmlinux 0x7be39ed3 rw_verify_area +EXPORT_SYMBOL vmlinux 0x7c0e9e46 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c26fd51 sgl_free_order +EXPORT_SYMBOL vmlinux 0x7c2cbada xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x7c2fd861 rproc_add +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c55f36e get_watch_queue +EXPORT_SYMBOL vmlinux 0x7c6b6000 tcf_block_put +EXPORT_SYMBOL vmlinux 0x7c8cea9e key_create_or_update +EXPORT_SYMBOL vmlinux 0x7caaa82f ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0x7cb57b8b skb_split +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cdeeb4d pgprot_user +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce3aaaa cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x7cf35220 vme_master_free +EXPORT_SYMBOL vmlinux 0x7cf5accc tcp_child_process +EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x7d07944c vc_cons +EXPORT_SYMBOL vmlinux 0x7d09596b dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x7d0a60c2 nand_ecc_finish_io_req +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d26fe21 key_invalidate +EXPORT_SYMBOL vmlinux 0x7d2ef2b0 down_read_interruptible +EXPORT_SYMBOL vmlinux 0x7d38056e of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0x7d3d0088 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x7d418d4f ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x7d46e878 tso_start +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d6c2636 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0x7d7b5749 param_ops_byte +EXPORT_SYMBOL vmlinux 0x7d7be9d1 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x7d7e706b bio_reset +EXPORT_SYMBOL vmlinux 0x7d905f42 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dd4ad43 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7ddae5aa vfs_fadvise +EXPORT_SYMBOL vmlinux 0x7deda1c3 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfc1808 send_sig_info +EXPORT_SYMBOL vmlinux 0x7e0ce0c3 up_write +EXPORT_SYMBOL vmlinux 0x7e0e3a49 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x7e1542d7 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x7e1a4700 genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x7e242165 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e3fede9 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x7e406f29 d_rehash +EXPORT_SYMBOL vmlinux 0x7e6e4262 param_get_bool +EXPORT_SYMBOL vmlinux 0x7e70da4d seq_bprintf +EXPORT_SYMBOL vmlinux 0x7e804d24 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x7e986abe try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x7e9e1ad2 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0x7ea26773 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x7eb6c0b1 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x7ec7f1a7 kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ed75efd i2c_del_driver +EXPORT_SYMBOL vmlinux 0x7edd24fc rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x7eeeb28a __bio_advance +EXPORT_SYMBOL vmlinux 0x7ef2936e tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f1b982e done_path_create +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f263c4d netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x7f3d33de sock_rfree +EXPORT_SYMBOL vmlinux 0x7f48bc2f xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x7f570691 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f79a3b7 f_setown +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7fb6ed5a seq_dentry +EXPORT_SYMBOL vmlinux 0x7fba87ba pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x7fce1a93 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x7fce778e tegra_ivc_total_queue_size +EXPORT_SYMBOL vmlinux 0x7fd84361 input_get_timestamp +EXPORT_SYMBOL vmlinux 0x7fde2edb vme_master_read +EXPORT_SYMBOL vmlinux 0x7fe307c8 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x7fe32540 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7ff04a64 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0x7ff66f79 mdio_device_remove +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x7fffffff __SetPageMovable +EXPORT_SYMBOL vmlinux 0x7fffffff ___pskb_trim +EXPORT_SYMBOL vmlinux 0x7fffffff ___ratelimit +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_lasr +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0x7fffffff __alloc_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __arm_smccc_smc +EXPORT_SYMBOL vmlinux 0x7fffffff __ashrdi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __bforget +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_clear +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_or +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_xor +EXPORT_SYMBOL vmlinux 0x7fffffff __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0x7fffffff __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x7fffffff __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x7fffffff __block_write_full_page +EXPORT_SYMBOL vmlinux 0x7fffffff __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x7fffffff __bread_gfp +EXPORT_SYMBOL vmlinux 0x7fffffff __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x7fffffff __bswapsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __cap_empty_set +EXPORT_SYMBOL vmlinux 0x7fffffff __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0x7fffffff __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x7fffffff __check_object_size +EXPORT_SYMBOL vmlinux 0x7fffffff __clzsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x7fffffff __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __ctzsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __d_drop +EXPORT_SYMBOL vmlinux 0x7fffffff __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __destroy_inode +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x7fffffff __devm_request_region +EXPORT_SYMBOL vmlinux 0x7fffffff __do_once_slow_start +EXPORT_SYMBOL vmlinux 0x7fffffff __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x7fffffff __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x7fffffff __f_setown +EXPORT_SYMBOL vmlinux 0x7fffffff __fdget +EXPORT_SYMBOL vmlinux 0x7fffffff __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x7fffffff __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x7fffffff __find_get_block +EXPORT_SYMBOL vmlinux 0x7fffffff __flush_workqueue +EXPORT_SYMBOL vmlinux 0x7fffffff __folio_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __folio_lock +EXPORT_SYMBOL vmlinux 0x7fffffff __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff __fput_sync +EXPORT_SYMBOL vmlinux 0x7fffffff __fs_parse +EXPORT_SYMBOL vmlinux 0x7fffffff __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7fffffff __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x7fffffff __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0x7fffffff __genradix_ptr +EXPORT_SYMBOL vmlinux 0x7fffffff __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0x7fffffff __get_user_2 +EXPORT_SYMBOL vmlinux 0x7fffffff __get_user_8 +EXPORT_SYMBOL vmlinux 0x7fffffff __gnu_mcount_nc +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_init +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x7fffffff __i2c_transfer +EXPORT_SYMBOL vmlinux 0x7fffffff __icmp_send +EXPORT_SYMBOL vmlinux 0x7fffffff __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x7fffffff __inet_hash +EXPORT_SYMBOL vmlinux 0x7fffffff __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x7fffffff __inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x7fffffff __invalidate_device +EXPORT_SYMBOL vmlinux 0x7fffffff __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x7fffffff __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7fffffff __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff __kfence_pool +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_free +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_in +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_max_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfree_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0x7fffffff __kmap_local_page_prot +EXPORT_SYMBOL vmlinux 0x7fffffff __lock_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff __lshrdi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x7fffffff __mdiobus_register +EXPORT_SYMBOL vmlinux 0x7fffffff __mdiobus_write +EXPORT_SYMBOL vmlinux 0x7fffffff __memset64 +EXPORT_SYMBOL vmlinux 0x7fffffff __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x7fffffff __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0x7fffffff __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0x7fffffff __muldi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __mutex_init +EXPORT_SYMBOL vmlinux 0x7fffffff __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x7fffffff __neigh_event_send +EXPORT_SYMBOL vmlinux 0x7fffffff __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x7fffffff __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x7fffffff __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __netif_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x7fffffff __next_node_in +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7fffffff __nlmsg_put +EXPORT_SYMBOL vmlinux 0x7fffffff __num_online_cpus +EXPORT_SYMBOL vmlinux 0x7fffffff __of_get_address +EXPORT_SYMBOL vmlinux 0x7fffffff __pagevec_release +EXPORT_SYMBOL vmlinux 0x7fffffff __par_io_config_pin +EXPORT_SYMBOL vmlinux 0x7fffffff __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x7fffffff __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7fffffff __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x7fffffff __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x7fffffff __posix_acl_create +EXPORT_SYMBOL vmlinux 0x7fffffff __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0x7fffffff __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0x7fffffff __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x7fffffff __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x7fffffff __put_cred +EXPORT_SYMBOL vmlinux 0x7fffffff __put_page +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_1 +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_2 +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_4 +EXPORT_SYMBOL vmlinux 0x7fffffff __pv_phys_pfn_offset +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsb +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsl +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsw +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesb +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesl +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesw +EXPORT_SYMBOL vmlinux 0x7fffffff __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x7fffffff __readwrite_bug +EXPORT_SYMBOL vmlinux 0x7fffffff __request_module +EXPORT_SYMBOL vmlinux 0x7fffffff __request_region +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_execute +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x7fffffff __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x7fffffff __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x7fffffff __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0x7fffffff __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x7fffffff __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7fffffff __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x7fffffff __sw_hweight8 +EXPORT_SYMBOL vmlinux 0x7fffffff __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0x7fffffff __udivsi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __udp_disconnect +EXPORT_SYMBOL vmlinux 0x7fffffff __umodsi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff __vfs_getxattr +EXPORT_SYMBOL vmlinux 0x7fffffff __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x7fffffff __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff __vmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7fffffff __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7fffffff __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0x7fffffff __write_overflow_field +EXPORT_SYMBOL vmlinux 0x7fffffff __xa_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __xa_erase +EXPORT_SYMBOL vmlinux 0x7fffffff __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x7fffffff __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _bcd2bin +EXPORT_SYMBOL vmlinux 0x7fffffff _bin2bcd +EXPORT_SYMBOL vmlinux 0x7fffffff _copy_to_iter +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_emerg +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_notice +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_printk +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_warn +EXPORT_SYMBOL vmlinux 0x7fffffff _find_first_and_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0x7fffffff _find_last_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _find_next_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _kstrtol +EXPORT_SYMBOL vmlinux 0x7fffffff _local_bh_enable +EXPORT_SYMBOL vmlinux 0x7fffffff _memset_io +EXPORT_SYMBOL vmlinux 0x7fffffff _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0x7fffffff _printk +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff _snd_ctl_add_follower +EXPORT_SYMBOL vmlinux 0x7fffffff _test_and_change_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _totalram_pages +EXPORT_SYMBOL vmlinux 0x7fffffff abort +EXPORT_SYMBOL vmlinux 0x7fffffff add_device_randomness +EXPORT_SYMBOL vmlinux 0x7fffffff add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0x7fffffff add_to_pipe +EXPORT_SYMBOL vmlinux 0x7fffffff add_wait_queue +EXPORT_SYMBOL vmlinux 0x7fffffff add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x7fffffff amba_request_regions +EXPORT_SYMBOL vmlinux 0x7fffffff argv_free +EXPORT_SYMBOL vmlinux 0x7fffffff arm_clear_user +EXPORT_SYMBOL vmlinux 0x7fffffff arm_copy_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff arm_delay_ops +EXPORT_SYMBOL vmlinux 0x7fffffff arm_dma_ops +EXPORT_SYMBOL vmlinux 0x7fffffff arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0x7fffffff arm_heavy_mb +EXPORT_SYMBOL vmlinux 0x7fffffff arp_send +EXPORT_SYMBOL vmlinux 0x7fffffff arp_tbl +EXPORT_SYMBOL vmlinux 0x7fffffff atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff atomic_io_modify +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_end +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_format +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_subject_context +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_task_context +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_task_info +EXPORT_SYMBOL vmlinux 0x7fffffff autoremove_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff avenrun +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_force_update +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x7fffffff bcmp +EXPORT_SYMBOL vmlinux 0x7fffffff bd_abort_claiming +EXPORT_SYMBOL vmlinux 0x7fffffff bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x7fffffff bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x7fffffff begin_new_exec +EXPORT_SYMBOL vmlinux 0x7fffffff bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x7fffffff bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7fffffff bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x7fffffff bio_chain +EXPORT_SYMBOL vmlinux 0x7fffffff bio_copy_data +EXPORT_SYMBOL vmlinux 0x7fffffff bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x7fffffff bio_init +EXPORT_SYMBOL vmlinux 0x7fffffff bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x7fffffff bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x7fffffff bio_put +EXPORT_SYMBOL vmlinux 0x7fffffff bio_split +EXPORT_SYMBOL vmlinux 0x7fffffff bioset_init +EXPORT_SYMBOL vmlinux 0x7fffffff bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x7fffffff bit_waitqueue +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_bitremap +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_free +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_parse +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_remap +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff blake2s_compress +EXPORT_SYMBOL vmlinux 0x7fffffff blake2s_final +EXPORT_SYMBOL vmlinux 0x7fffffff blk_check_plugged +EXPORT_SYMBOL vmlinux 0x7fffffff blk_execute_rq +EXPORT_SYMBOL vmlinux 0x7fffffff blk_finish_plug +EXPORT_SYMBOL vmlinux 0x7fffffff blk_get_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7fffffff blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x7fffffff blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x7fffffff blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x7fffffff blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x7fffffff blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0x7fffffff blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x7fffffff blk_start_plug +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_put +EXPORT_SYMBOL vmlinux 0x7fffffff block_commit_write +EXPORT_SYMBOL vmlinux 0x7fffffff block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x7fffffff block_write_begin +EXPORT_SYMBOL vmlinux 0x7fffffff block_write_end +EXPORT_SYMBOL vmlinux 0x7fffffff block_write_full_page +EXPORT_SYMBOL vmlinux 0x7fffffff bmap +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff bsearch +EXPORT_SYMBOL vmlinux 0x7fffffff buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x7fffffff build_skb_around +EXPORT_SYMBOL vmlinux 0x7fffffff cacheid +EXPORT_SYMBOL vmlinux 0x7fffffff cad_pid +EXPORT_SYMBOL vmlinux 0x7fffffff call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff call_fib_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x7fffffff call_usermodehelper +EXPORT_SYMBOL vmlinux 0x7fffffff can_do_mlock +EXPORT_SYMBOL vmlinux 0x7fffffff cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x7fffffff capable +EXPORT_SYMBOL vmlinux 0x7fffffff cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_del +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_device_del +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_init +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_check_events +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_release +EXPORT_SYMBOL vmlinux 0x7fffffff cfb_copyarea +EXPORT_SYMBOL vmlinux 0x7fffffff clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0x7fffffff clear_inode +EXPORT_SYMBOL vmlinux 0x7fffffff clk_add_alias +EXPORT_SYMBOL vmlinux 0x7fffffff clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0x7fffffff clk_get +EXPORT_SYMBOL vmlinux 0x7fffffff clk_get_sys +EXPORT_SYMBOL vmlinux 0x7fffffff clk_register_clkdev +EXPORT_SYMBOL vmlinux 0x7fffffff clkdev_add +EXPORT_SYMBOL vmlinux 0x7fffffff close_fd +EXPORT_SYMBOL vmlinux 0x7fffffff cmd_db_read_aux_data +EXPORT_SYMBOL vmlinux 0x7fffffff color_table +EXPORT_SYMBOL vmlinux 0x7fffffff complete +EXPORT_SYMBOL vmlinux 0x7fffffff complete_all +EXPORT_SYMBOL vmlinux 0x7fffffff component_match_add_release +EXPORT_SYMBOL vmlinux 0x7fffffff con_is_bound +EXPORT_SYMBOL vmlinux 0x7fffffff config_group_init +EXPORT_SYMBOL vmlinux 0x7fffffff config_item_set_name +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_depend_item +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_undepend_item +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0x7fffffff console_blank_hook +EXPORT_SYMBOL vmlinux 0x7fffffff console_blanked +EXPORT_SYMBOL vmlinux 0x7fffffff console_conditional_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff console_lock +EXPORT_SYMBOL vmlinux 0x7fffffff console_start +EXPORT_SYMBOL vmlinux 0x7fffffff console_stop +EXPORT_SYMBOL vmlinux 0x7fffffff console_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff consume_skb +EXPORT_SYMBOL vmlinux 0x7fffffff cont_write_begin +EXPORT_SYMBOL vmlinux 0x7fffffff contig_page_data +EXPORT_SYMBOL vmlinux 0x7fffffff cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0x7fffffff cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x7fffffff copy_from_user_toio +EXPORT_SYMBOL vmlinux 0x7fffffff copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x7fffffff copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_addr +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x7fffffff cpu_all_bits +EXPORT_SYMBOL vmlinux 0x7fffffff cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x7fffffff cpu_tlb +EXPORT_SYMBOL vmlinux 0x7fffffff cpufreq_get +EXPORT_SYMBOL vmlinux 0x7fffffff cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_any_but +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_local_spread +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_next +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_next_and +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_init +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_irq +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_pltfm_init +EXPORT_SYMBOL vmlinux 0x7fffffff crc16 +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_be +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_le +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_le_shift +EXPORT_SYMBOL vmlinux 0x7fffffff crc8 +EXPORT_SYMBOL vmlinux 0x7fffffff crc8_populate_lsb +EXPORT_SYMBOL vmlinux 0x7fffffff crc8_populate_msb +EXPORT_SYMBOL vmlinux 0x7fffffff crc_ccitt +EXPORT_SYMBOL vmlinux 0x7fffffff crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x7fffffff crc_t10dif +EXPORT_SYMBOL vmlinux 0x7fffffff crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x7fffffff create_empty_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_check_result +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x7fffffff csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x7fffffff csum_partial +EXPORT_SYMBOL vmlinux 0x7fffffff csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x7fffffff current_time +EXPORT_SYMBOL vmlinux 0x7fffffff current_work +EXPORT_SYMBOL vmlinux 0x7fffffff d_add_ci +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc_anon +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x7fffffff d_find_any_alias +EXPORT_SYMBOL vmlinux 0x7fffffff d_genocide +EXPORT_SYMBOL vmlinux 0x7fffffff d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff d_instantiate +EXPORT_SYMBOL vmlinux 0x7fffffff d_instantiate_new +EXPORT_SYMBOL vmlinux 0x7fffffff d_invalidate +EXPORT_SYMBOL vmlinux 0x7fffffff d_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff d_make_root +EXPORT_SYMBOL vmlinux 0x7fffffff d_set_fallthru +EXPORT_SYMBOL vmlinux 0x7fffffff da903x_query_status +EXPORT_SYMBOL vmlinux 0x7fffffff dcache_dir_close +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_getapp +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_setapp +EXPORT_SYMBOL vmlinux 0x7fffffff dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x7fffffff deactivate_super +EXPORT_SYMBOL vmlinux 0x7fffffff default_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7fffffff default_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff del_timer_sync +EXPORT_SYMBOL vmlinux 0x7fffffff delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x7fffffff dentry_create +EXPORT_SYMBOL vmlinux 0x7fffffff dentry_open +EXPORT_SYMBOL vmlinux 0x7fffffff dentry_path_raw +EXPORT_SYMBOL vmlinux 0x7fffffff dev_add_offload +EXPORT_SYMBOL vmlinux 0x7fffffff dev_addr_mod +EXPORT_SYMBOL vmlinux 0x7fffffff dev_change_flags +EXPORT_SYMBOL vmlinux 0x7fffffff dev_disable_lro +EXPORT_SYMBOL vmlinux 0x7fffffff dev_driver_string +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_by_name +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_iflink +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_stats +EXPORT_SYMBOL vmlinux 0x7fffffff dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7fffffff dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x7fffffff dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff dev_lstats_read +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_add +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_del +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_flush +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_init +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7fffffff dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x7fffffff dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x7fffffff dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7fffffff dev_remove_offload +EXPORT_SYMBOL vmlinux 0x7fffffff dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_alias +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_flush +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_init +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x7fffffff devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_update_status +EXPORT_SYMBOL vmlinux 0x7fffffff device_get_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x7fffffff devm_clk_get +EXPORT_SYMBOL vmlinux 0x7fffffff devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x7fffffff devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x7fffffff devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_np +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0x7fffffff devm_memremap +EXPORT_SYMBOL vmlinux 0x7fffffff devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7fffffff devm_of_clk_del_provider +EXPORT_SYMBOL vmlinux 0x7fffffff devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x7fffffff devm_of_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x7fffffff devm_register_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x7fffffff devm_request_resource +EXPORT_SYMBOL vmlinux 0x7fffffff dget_parent +EXPORT_SYMBOL vmlinux 0x7fffffff dim_calc_stats +EXPORT_SYMBOL vmlinux 0x7fffffff dim_on_top +EXPORT_SYMBOL vmlinux 0x7fffffff dim_park_on_top +EXPORT_SYMBOL vmlinux 0x7fffffff dim_turn +EXPORT_SYMBOL vmlinux 0x7fffffff disk_stack_limits +EXPORT_SYMBOL vmlinux 0x7fffffff div64_u64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff div_s64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kobject_release +EXPORT_SYMBOL vmlinux 0x7fffffff dm_read_arg_group +EXPORT_SYMBOL vmlinux 0x7fffffff dm_table_get_md +EXPORT_SYMBOL vmlinux 0x7fffffff dm_table_get_size +EXPORT_SYMBOL vmlinux 0x7fffffff dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0x7fffffff dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dma_async_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_describe +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_match_context +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_release +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff dma_find_channel +EXPORT_SYMBOL vmlinux 0x7fffffff dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dma_pool_free +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_fini +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_init +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0x7fffffff dma_set_mask +EXPORT_SYMBOL vmlinux 0x7fffffff dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x7fffffff dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7fffffff dma_unmap_resource +EXPORT_SYMBOL vmlinux 0x7fffffff dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dmaengine_get +EXPORT_SYMBOL vmlinux 0x7fffffff dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x7fffffff dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x7fffffff dmam_pool_create +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_check_system +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0x7fffffff dns_query +EXPORT_SYMBOL vmlinux 0x7fffffff do_blank_screen +EXPORT_SYMBOL vmlinux 0x7fffffff do_clone_file_range +EXPORT_SYMBOL vmlinux 0x7fffffff do_splice_direct +EXPORT_SYMBOL vmlinux 0x7fffffff do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0x7fffffff do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x7fffffff dotdot_name +EXPORT_SYMBOL vmlinux 0x7fffffff down +EXPORT_SYMBOL vmlinux 0x7fffffff down_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff down_read +EXPORT_SYMBOL vmlinux 0x7fffffff down_read_killable +EXPORT_SYMBOL vmlinux 0x7fffffff down_read_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff down_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff down_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff downgrade_write +EXPORT_SYMBOL vmlinux 0x7fffffff dput +EXPORT_SYMBOL vmlinux 0x7fffffff dqget +EXPORT_SYMBOL vmlinux 0x7fffffff dql_completed +EXPORT_SYMBOL vmlinux 0x7fffffff dql_reset +EXPORT_SYMBOL vmlinux 0x7fffffff dqput +EXPORT_SYMBOL vmlinux 0x7fffffff dqstats +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_commit +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_drop +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_initialize +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_operations +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_release +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_resume +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_scan_active +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_transfer +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x7fffffff drm_firmware_drivers_only +EXPORT_SYMBOL vmlinux 0x7fffffff drop_nlink +EXPORT_SYMBOL vmlinux 0x7fffffff drop_super_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x7fffffff dst_default_metrics +EXPORT_SYMBOL vmlinux 0x7fffffff dst_discard_out +EXPORT_SYMBOL vmlinux 0x7fffffff dump_page +EXPORT_SYMBOL vmlinux 0x7fffffff dump_skip +EXPORT_SYMBOL vmlinux 0x7fffffff dup_iter +EXPORT_SYMBOL vmlinux 0x7fffffff ecc_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff ecc_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x7fffffff edac_mc_find +EXPORT_SYMBOL vmlinux 0x7fffffff efi +EXPORT_SYMBOL vmlinux 0x7fffffff efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0x7fffffff elevator_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff elf_set_personality +EXPORT_SYMBOL vmlinux 0x7fffffff elm_config +EXPORT_SYMBOL vmlinux 0x7fffffff elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x7fffffff elv_rb_add +EXPORT_SYMBOL vmlinux 0x7fffffff elv_rb_del +EXPORT_SYMBOL vmlinux 0x7fffffff empty_zero_page +EXPORT_SYMBOL vmlinux 0x7fffffff enable_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff enable_irq +EXPORT_SYMBOL vmlinux 0x7fffffff end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7fffffff end_page_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff errseq_sample +EXPORT_SYMBOL vmlinux 0x7fffffff eth_gro_complete +EXPORT_SYMBOL vmlinux 0x7fffffff eth_gro_receive +EXPORT_SYMBOL vmlinux 0x7fffffff eth_mac_addr +EXPORT_SYMBOL vmlinux 0x7fffffff eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x7fffffff eth_validate_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ether_setup +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_notify +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x7fffffff fasync_helper +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_readable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fb_add_videomode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_blank +EXPORT_SYMBOL vmlinux 0x7fffffff fb_default_cmap +EXPORT_SYMBOL vmlinux 0x7fffffff fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_best_display +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0x7fffffff fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7fffffff fb_get_options +EXPORT_SYMBOL vmlinux 0x7fffffff fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0x7fffffff fb_match_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0x7fffffff fb_pan_display +EXPORT_SYMBOL vmlinux 0x7fffffff fb_register_client +EXPORT_SYMBOL vmlinux 0x7fffffff fb_set_cmap +EXPORT_SYMBOL vmlinux 0x7fffffff fb_unregister_client +EXPORT_SYMBOL vmlinux 0x7fffffff fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x7fffffff fc_mount +EXPORT_SYMBOL vmlinux 0x7fffffff fget +EXPORT_SYMBOL vmlinux 0x7fffffff fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0x7fffffff fifo_set_limit +EXPORT_SYMBOL vmlinux 0x7fffffff file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7fffffff file_open_root +EXPORT_SYMBOL vmlinux 0x7fffffff file_remove_privs +EXPORT_SYMBOL vmlinux 0x7fffffff file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7fffffff fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x7fffffff fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_flush +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_map_pages +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7fffffff filp_open +EXPORT_SYMBOL vmlinux 0x7fffffff finalize_exec +EXPORT_SYMBOL vmlinux 0x7fffffff find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7fffffff find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0x7fffffff find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff find_next_clump8 +EXPORT_SYMBOL vmlinux 0x7fffffff finish_no_open +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x7fffffff flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x7fffffff flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x7fffffff flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x7fffffff flow_keys_dissector +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x7fffffff flush_dcache_folio +EXPORT_SYMBOL vmlinux 0x7fffffff flush_dcache_page +EXPORT_SYMBOL vmlinux 0x7fffffff flush_delayed_work +EXPORT_SYMBOL vmlinux 0x7fffffff flush_signals +EXPORT_SYMBOL vmlinux 0x7fffffff folio_account_redirty +EXPORT_SYMBOL vmlinux 0x7fffffff folio_add_lru +EXPORT_SYMBOL vmlinux 0x7fffffff folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7fffffff folio_mark_accessed +EXPORT_SYMBOL vmlinux 0x7fffffff folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x7fffffff folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0x7fffffff folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0x7fffffff folio_wait_bit +EXPORT_SYMBOL vmlinux 0x7fffffff folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x7fffffff folio_write_one +EXPORT_SYMBOL vmlinux 0x7fffffff follow_pfn +EXPORT_SYMBOL vmlinux 0x7fffffff font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x7fffffff forget_cached_acl +EXPORT_SYMBOL vmlinux 0x7fffffff fortify_panic +EXPORT_SYMBOL vmlinux 0x7fffffff fput +EXPORT_SYMBOL vmlinux 0x7fffffff fqdir_exit +EXPORT_SYMBOL vmlinux 0x7fffffff fqdir_init +EXPORT_SYMBOL vmlinux 0x7fffffff framebuffer_release +EXPORT_SYMBOL vmlinux 0x7fffffff free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x7fffffff free_buffer_head +EXPORT_SYMBOL vmlinux 0x7fffffff free_cgroup_ns +EXPORT_SYMBOL vmlinux 0x7fffffff free_irq +EXPORT_SYMBOL vmlinux 0x7fffffff free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x7fffffff free_opal_dev +EXPORT_SYMBOL vmlinux 0x7fffffff freeze_bdev +EXPORT_SYMBOL vmlinux 0x7fffffff freezing_slow_path +EXPORT_SYMBOL vmlinux 0x7fffffff from_kgid_munged +EXPORT_SYMBOL vmlinux 0x7fffffff from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x7fffffff from_kuid_munged +EXPORT_SYMBOL vmlinux 0x7fffffff fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x7fffffff fs_overflowgid +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_string +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0x7fffffff fsync_bdev +EXPORT_SYMBOL vmlinux 0x7fffffff full_name_hash +EXPORT_SYMBOL vmlinux 0x7fffffff fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x7fffffff fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x7fffffff gen_estimator_active +EXPORT_SYMBOL vmlinux 0x7fffffff gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff gen_new_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x7fffffff gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff generate_random_guid +EXPORT_SYMBOL vmlinux 0x7fffffff generate_random_uuid +EXPORT_SYMBOL vmlinux 0x7fffffff generic_check_addressable +EXPORT_SYMBOL vmlinux 0x7fffffff generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x7fffffff generic_fadvise +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_fsync +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_open +EXPORT_SYMBOL vmlinux 0x7fffffff generic_listxattr +EXPORT_SYMBOL vmlinux 0x7fffffff generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x7fffffff generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x7fffffff generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x7fffffff generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x7fffffff generic_update_time +EXPORT_SYMBOL vmlinux 0x7fffffff generic_write_checks +EXPORT_SYMBOL vmlinux 0x7fffffff generic_write_checks_count +EXPORT_SYMBOL vmlinux 0x7fffffff genl_notify +EXPORT_SYMBOL vmlinux 0x7fffffff genl_register_family +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_loopback +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_update_link +EXPORT_SYMBOL vmlinux 0x7fffffff get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff get_default_font +EXPORT_SYMBOL vmlinux 0x7fffffff get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x7fffffff get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x7fffffff get_next_ino +EXPORT_SYMBOL vmlinux 0x7fffffff get_option +EXPORT_SYMBOL vmlinux 0x7fffffff get_options +EXPORT_SYMBOL vmlinux 0x7fffffff get_phy_device +EXPORT_SYMBOL vmlinux 0x7fffffff get_random_u32 +EXPORT_SYMBOL vmlinux 0x7fffffff get_random_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff get_task_cred +EXPORT_SYMBOL vmlinux 0x7fffffff get_tree_keyed +EXPORT_SYMBOL vmlinux 0x7fffffff get_tree_single +EXPORT_SYMBOL vmlinux 0x7fffffff get_tz_trend +EXPORT_SYMBOL vmlinux 0x7fffffff get_unmapped_area +EXPORT_SYMBOL vmlinux 0x7fffffff get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0x7fffffff get_user_pages +EXPORT_SYMBOL vmlinux 0x7fffffff get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff get_zeroed_page +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_lle +EXPORT_SYMBOL vmlinux 0x7fffffff gic_pmr_sync +EXPORT_SYMBOL vmlinux 0x7fffffff give_up_console +EXPORT_SYMBOL vmlinux 0x7fffffff global_cursor_default +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x7fffffff gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x7fffffff gpmc_cs_request +EXPORT_SYMBOL vmlinux 0x7fffffff gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff gro_cells_init +EXPORT_SYMBOL vmlinux 0x7fffffff gro_cells_receive +EXPORT_SYMBOL vmlinux 0x7fffffff gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x7fffffff groups_sort +EXPORT_SYMBOL vmlinux 0x7fffffff guid_null +EXPORT_SYMBOL vmlinux 0x7fffffff guid_parse +EXPORT_SYMBOL vmlinux 0x7fffffff hchacha_block_generic +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x7fffffff hex_asc_upper +EXPORT_SYMBOL vmlinux 0x7fffffff hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff hex_to_bin +EXPORT_SYMBOL vmlinux 0x7fffffff high_memory +EXPORT_SYMBOL vmlinux 0x7fffffff hmm_range_fault +EXPORT_SYMBOL vmlinux 0x7fffffff hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x7fffffff hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_verify_client +EXPORT_SYMBOL vmlinux 0x7fffffff icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x7fffffff icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x7fffffff icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x7fffffff icst_hz +EXPORT_SYMBOL vmlinux 0x7fffffff icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0x7fffffff ida_alloc_range +EXPORT_SYMBOL vmlinux 0x7fffffff ida_free +EXPORT_SYMBOL vmlinux 0x7fffffff idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x7fffffff idr_get_next_ul +EXPORT_SYMBOL vmlinux 0x7fffffff idr_preload +EXPORT_SYMBOL vmlinux 0x7fffffff iget5_locked +EXPORT_SYMBOL vmlinux 0x7fffffff iget_locked +EXPORT_SYMBOL vmlinux 0x7fffffff ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x7fffffff ilookup +EXPORT_SYMBOL vmlinux 0x7fffffff ilookup5 +EXPORT_SYMBOL vmlinux 0x7fffffff ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x7fffffff import_single_range +EXPORT_SYMBOL vmlinux 0x7fffffff imx_sc_misc_get_control +EXPORT_SYMBOL vmlinux 0x7fffffff imx_sc_rm_is_resource_owned +EXPORT_SYMBOL vmlinux 0x7fffffff imx_scu_enable_general_irq_channel +EXPORT_SYMBOL vmlinux 0x7fffffff imx_scu_irq_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff imx_ssi_fiq_end +EXPORT_SYMBOL vmlinux 0x7fffffff imx_ssi_fiq_start +EXPORT_SYMBOL vmlinux 0x7fffffff in4_pton +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0x7fffffff in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff in_group_p +EXPORT_SYMBOL vmlinux 0x7fffffff inc_nlink +EXPORT_SYMBOL vmlinux 0x7fffffff inc_node_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff inc_node_state +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_del_offload +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_getname +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_protos +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_release +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x7fffffff inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x7fffffff inet_accept +EXPORT_SYMBOL vmlinux 0x7fffffff inet_add_offload +EXPORT_SYMBOL vmlinux 0x7fffffff inet_add_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_is_any +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_type +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_accept +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x7fffffff inet_current_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x7fffffff inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_find +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_kill +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x7fffffff inet_listen +EXPORT_SYMBOL vmlinux 0x7fffffff inet_offloads +EXPORT_SYMBOL vmlinux 0x7fffffff inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x7fffffff inet_put_port +EXPORT_SYMBOL vmlinux 0x7fffffff inet_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff inet_release +EXPORT_SYMBOL vmlinux 0x7fffffff inet_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x7fffffff inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7fffffff inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff init_cdrom_command +EXPORT_SYMBOL vmlinux 0x7fffffff init_on_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff init_on_free +EXPORT_SYMBOL vmlinux 0x7fffffff init_pseudo +EXPORT_SYMBOL vmlinux 0x7fffffff init_special_inode +EXPORT_SYMBOL vmlinux 0x7fffffff init_timer_key +EXPORT_SYMBOL vmlinux 0x7fffffff init_wait_entry +EXPORT_SYMBOL vmlinux 0x7fffffff inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff inode_get_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_always +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_once +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_owner +EXPORT_SYMBOL vmlinux 0x7fffffff inode_insert5 +EXPORT_SYMBOL vmlinux 0x7fffffff inode_io_list_del +EXPORT_SYMBOL vmlinux 0x7fffffff inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x7fffffff inode_nohighmem +EXPORT_SYMBOL vmlinux 0x7fffffff inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x7fffffff inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x7fffffff input_close_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x7fffffff input_event +EXPORT_SYMBOL vmlinux 0x7fffffff input_flush_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_get_new_minor +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x7fffffff input_release_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_reset_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_abs_params +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_capability +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_keycode +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff input_setup_polling +EXPORT_SYMBOL vmlinux 0x7fffffff input_unregister_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_unregister_handle +EXPORT_SYMBOL vmlinux 0x7fffffff insert_inode_locked +EXPORT_SYMBOL vmlinux 0x7fffffff int_sqrt +EXPORT_SYMBOL vmlinux 0x7fffffff invalidate_bdev +EXPORT_SYMBOL vmlinux 0x7fffffff invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x7fffffff io_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff io_schedule_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x7fffffff iomem_resource +EXPORT_SYMBOL vmlinux 0x7fffffff ioport_unmap +EXPORT_SYMBOL vmlinux 0x7fffffff ioremap +EXPORT_SYMBOL vmlinux 0x7fffffff ioremap_page +EXPORT_SYMBOL vmlinux 0x7fffffff ioremap_wc +EXPORT_SYMBOL vmlinux 0x7fffffff iounmap +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_advance +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_init +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_npages +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_frag_init +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_frag_next +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_output +EXPORT_SYMBOL vmlinux 0x7fffffff ip_check_defrag +EXPORT_SYMBOL vmlinux 0x7fffffff ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x7fffffff ip_do_fragment +EXPORT_SYMBOL vmlinux 0x7fffffff ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0x7fffffff ip_frag_init +EXPORT_SYMBOL vmlinux 0x7fffffff ip_frag_next +EXPORT_SYMBOL vmlinux 0x7fffffff ip_options_compile +EXPORT_SYMBOL vmlinux 0x7fffffff ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x7fffffff ip_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x7fffffff ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x7fffffff ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0x7fffffff ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x7fffffff iptun_encaps +EXPORT_SYMBOL vmlinux 0x7fffffff iput +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_complete +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_enable +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_init +EXPORT_SYMBOL vmlinux 0x7fffffff irq_set_chip +EXPORT_SYMBOL vmlinux 0x7fffffff irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0x7fffffff is_console_locked +EXPORT_SYMBOL vmlinux 0x7fffffff is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0x7fffffff is_subdir +EXPORT_SYMBOL vmlinux 0x7fffffff is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0x7fffffff isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0x7fffffff iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff iterate_dir +EXPORT_SYMBOL vmlinux 0x7fffffff iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7fffffff iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x7fffffff iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7fffffff iwe_stream_add_value +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x7fffffff kasprintf +EXPORT_SYMBOL vmlinux 0x7fffffff kern_path +EXPORT_SYMBOL vmlinux 0x7fffffff kern_unmount +EXPORT_SYMBOL vmlinux 0x7fffffff kern_unmount_array +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_cpustat +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_listen +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_neon_end +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_read +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x7fffffff key_link +EXPORT_SYMBOL vmlinux 0x7fffffff key_payload_reserve +EXPORT_SYMBOL vmlinux 0x7fffffff key_reject_and_link +EXPORT_SYMBOL vmlinux 0x7fffffff key_type_keyring +EXPORT_SYMBOL vmlinux 0x7fffffff key_update +EXPORT_SYMBOL vmlinux 0x7fffffff key_validate +EXPORT_SYMBOL vmlinux 0x7fffffff keyring_restrict +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_const +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_link +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_sensitive +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_skb_reason +EXPORT_SYMBOL vmlinux 0x7fffffff kill_anon_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_block_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_litter_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_pgrp +EXPORT_SYMBOL vmlinux 0x7fffffff kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x7fffffff km_new_mapping +EXPORT_SYMBOL vmlinux 0x7fffffff km_policy_expired +EXPORT_SYMBOL vmlinux 0x7fffffff km_policy_notify +EXPORT_SYMBOL vmlinux 0x7fffffff km_query +EXPORT_SYMBOL vmlinux 0x7fffffff kmalloc_caches +EXPORT_SYMBOL vmlinux 0x7fffffff kmap_high +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_size +EXPORT_SYMBOL vmlinux 0x7fffffff kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x7fffffff kobject_init +EXPORT_SYMBOL vmlinux 0x7fffffff kobject_set_name +EXPORT_SYMBOL vmlinux 0x7fffffff krait_set_l2_indirect_reg +EXPORT_SYMBOL vmlinux 0x7fffffff kset_register +EXPORT_SYMBOL vmlinux 0x7fffffff ksize +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoint +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos16 +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_bind +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_should_stop +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_stop +EXPORT_SYMBOL vmlinux 0x7fffffff ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0x7fffffff ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x7fffffff kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x7fffffff kvmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff kvrealloc +EXPORT_SYMBOL vmlinux 0x7fffffff lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7fffffff lease_modify +EXPORT_SYMBOL vmlinux 0x7fffffff ledtrig_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x7fffffff list_sort +EXPORT_SYMBOL vmlinux 0x7fffffff ll_rw_block +EXPORT_SYMBOL vmlinux 0x7fffffff load_nls +EXPORT_SYMBOL vmlinux 0x7fffffff lock_rename +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_get +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_put_return +EXPORT_SYMBOL vmlinux 0x7fffffff locks_delete_block +EXPORT_SYMBOL vmlinux 0x7fffffff locks_free_lock +EXPORT_SYMBOL vmlinux 0x7fffffff locks_init_lock +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_constant +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_len +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff loops_per_jiffy +EXPORT_SYMBOL vmlinux 0x7fffffff map_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff mark_page_accessed +EXPORT_SYMBOL vmlinux 0x7fffffff match_hex +EXPORT_SYMBOL vmlinux 0x7fffffff match_octal +EXPORT_SYMBOL vmlinux 0x7fffffff match_strdup +EXPORT_SYMBOL vmlinux 0x7fffffff match_string +EXPORT_SYMBOL vmlinux 0x7fffffff match_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff match_uint +EXPORT_SYMBOL vmlinux 0x7fffffff max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x7fffffff max8925_reg_read +EXPORT_SYMBOL vmlinux 0x7fffffff max8925_set_bits +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_read_reg +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_update_reg +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_write_reg +EXPORT_SYMBOL vmlinux 0x7fffffff may_setattr +EXPORT_SYMBOL vmlinux 0x7fffffff may_umount +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_create +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x7fffffff md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x7fffffff md_cluster_ops +EXPORT_SYMBOL vmlinux 0x7fffffff md_done_sync +EXPORT_SYMBOL vmlinux 0x7fffffff md_error +EXPORT_SYMBOL vmlinux 0x7fffffff md_flush_request +EXPORT_SYMBOL vmlinux 0x7fffffff md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x7fffffff md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_reload_sb +EXPORT_SYMBOL vmlinux 0x7fffffff md_unregister_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_update_sb +EXPORT_SYMBOL vmlinux 0x7fffffff md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x7fffffff md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_write_end +EXPORT_SYMBOL vmlinux 0x7fffffff md_write_inc +EXPORT_SYMBOL vmlinux 0x7fffffff mdio_bus_type +EXPORT_SYMBOL vmlinux 0x7fffffff mdio_device_free +EXPORT_SYMBOL vmlinux 0x7fffffff mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobb_write +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_free +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_register_device +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_write +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0x7fffffff mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x7fffffff mem_map +EXPORT_SYMBOL vmlinux 0x7fffffff memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff memchr +EXPORT_SYMBOL vmlinux 0x7fffffff memcpy +EXPORT_SYMBOL vmlinux 0x7fffffff memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x7fffffff memdup_user +EXPORT_SYMBOL vmlinux 0x7fffffff memdup_user_nul +EXPORT_SYMBOL vmlinux 0x7fffffff memmove +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_create +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_exit +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_free_pages +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_free_slab +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_init +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff memremap +EXPORT_SYMBOL vmlinux 0x7fffffff memset16 +EXPORT_SYMBOL vmlinux 0x7fffffff memunmap +EXPORT_SYMBOL vmlinux 0x7fffffff mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x7fffffff mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x7fffffff mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page_copy +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page_states +EXPORT_SYMBOL vmlinux 0x7fffffff mii_check_link +EXPORT_SYMBOL vmlinux 0x7fffffff mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7fffffff mii_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x7fffffff mii_link_ok +EXPORT_SYMBOL vmlinux 0x7fffffff mii_nway_restart +EXPORT_SYMBOL vmlinux 0x7fffffff mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x7fffffff minmax_running_max +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0x7fffffff misc_register +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_can_trim +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_command_done +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_get_card +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_is_req_done +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_of_parse +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_release_host +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_remove_host +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_request_done +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_retune_release +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_start_request +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x7fffffff mmput_async +EXPORT_SYMBOL vmlinux 0x7fffffff mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x7fffffff mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x7fffffff mntget +EXPORT_SYMBOL vmlinux 0x7fffffff mod_node_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff mod_timer +EXPORT_SYMBOL vmlinux 0x7fffffff module_put +EXPORT_SYMBOL vmlinux 0x7fffffff module_refcount +EXPORT_SYMBOL vmlinux 0x7fffffff mount_nodev +EXPORT_SYMBOL vmlinux 0x7fffffff movable_zone +EXPORT_SYMBOL vmlinux 0x7fffffff mpage_read_folio +EXPORT_SYMBOL vmlinux 0x7fffffff mpage_readahead +EXPORT_SYMBOL vmlinux 0x7fffffff mpage_writepages +EXPORT_SYMBOL vmlinux 0x7fffffff mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x7fffffff mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x7fffffff mr_table_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff mr_table_dump +EXPORT_SYMBOL vmlinux 0x7fffffff mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0x7fffffff msleep +EXPORT_SYMBOL vmlinux 0x7fffffff msleep_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff msm_pinctrl_probe +EXPORT_SYMBOL vmlinux 0x7fffffff mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_is_locked +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff mx51_revision +EXPORT_SYMBOL vmlinux 0x7fffffff mxc_set_irq_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x7fffffff nand_check_erased_ecc_chunk +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_is_strong_enough +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_correct +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_get_set_features_notsupp +EXPORT_SYMBOL vmlinux 0x7fffffff nand_monolithic_read_page_raw +EXPORT_SYMBOL vmlinux 0x7fffffff nand_write_oob_std +EXPORT_SYMBOL vmlinux 0x7fffffff napi_build_skb +EXPORT_SYMBOL vmlinux 0x7fffffff napi_disable +EXPORT_SYMBOL vmlinux 0x7fffffff napi_enable +EXPORT_SYMBOL vmlinux 0x7fffffff napi_get_frags +EXPORT_SYMBOL vmlinux 0x7fffffff napi_gro_flush +EXPORT_SYMBOL vmlinux 0x7fffffff napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7fffffff ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x7fffffff ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x7fffffff ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x7fffffff ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x7fffffff ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_app_ns +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_event_ns +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_ifdown +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_update +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x7fffffff net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x7fffffff net_ns_barrier +EXPORT_SYMBOL vmlinux 0x7fffffff net_ratelimit +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_crit +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_features_change +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_info +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_printk +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x7fffffff netif_carrier_off +EXPORT_SYMBOL vmlinux 0x7fffffff netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x7fffffff netif_receive_skb +EXPORT_SYMBOL vmlinux 0x7fffffff netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0x7fffffff netif_rx +EXPORT_SYMBOL vmlinux 0x7fffffff netif_schedule_queue +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x7fffffff netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x7fffffff netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_tx_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff netlbl_audit_start +EXPORT_SYMBOL vmlinux 0x7fffffff netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x7fffffff netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_ack +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_set_err +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_unicast +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x7fffffff netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x7fffffff next_arg +EXPORT_SYMBOL vmlinux 0x7fffffff nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x7fffffff nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x7fffffff nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff nf_hook_slow +EXPORT_SYMBOL vmlinux 0x7fffffff nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x7fffffff nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_packet +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_register +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_trace +EXPORT_SYMBOL vmlinux 0x7fffffff nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x7fffffff nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x7fffffff nf_reinject +EXPORT_SYMBOL vmlinux 0x7fffffff nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x7fffffff nla_append +EXPORT_SYMBOL vmlinux 0x7fffffff nla_find +EXPORT_SYMBOL vmlinux 0x7fffffff nla_memcmp +EXPORT_SYMBOL vmlinux 0x7fffffff nla_memcpy +EXPORT_SYMBOL vmlinux 0x7fffffff nla_policy_len +EXPORT_SYMBOL vmlinux 0x7fffffff nla_put_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff nla_strcmp +EXPORT_SYMBOL vmlinux 0x7fffffff nla_strdup +EXPORT_SYMBOL vmlinux 0x7fffffff nlmsg_notify +EXPORT_SYMBOL vmlinux 0x7fffffff nmi_panic +EXPORT_SYMBOL vmlinux 0x7fffffff no_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7fffffff nobh_write_end +EXPORT_SYMBOL vmlinux 0x7fffffff node_states +EXPORT_SYMBOL vmlinux 0x7fffffff noop_dirty_folio +EXPORT_SYMBOL vmlinux 0x7fffffff noop_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff noop_qdisc +EXPORT_SYMBOL vmlinux 0x7fffffff notify_change +EXPORT_SYMBOL vmlinux 0x7fffffff ns_capable_setid +EXPORT_SYMBOL vmlinux 0x7fffffff of_chosen +EXPORT_SYMBOL vmlinux 0x7fffffff of_clk_get +EXPORT_SYMBOL vmlinux 0x7fffffff of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_is_available +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_opts_by_path +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_property +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_min_tck +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_next_child +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_next_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_port_by_id +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_is_present +EXPORT_SYMBOL vmlinux 0x7fffffff of_io_request_and_map +EXPORT_SYMBOL vmlinux 0x7fffffff of_lpddr2_get_info +EXPORT_SYMBOL vmlinux 0x7fffffff of_lpddr3_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x7fffffff of_lpddr3_get_min_tck +EXPORT_SYMBOL vmlinux 0x7fffffff of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0x7fffffff of_mdio_find_device +EXPORT_SYMBOL vmlinux 0x7fffffff of_node_get +EXPORT_SYMBOL vmlinux 0x7fffffff of_node_name_prefix +EXPORT_SYMBOL vmlinux 0x7fffffff of_node_put +EXPORT_SYMBOL vmlinux 0x7fffffff of_parse_phandle_with_args_map +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_connect +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0x7fffffff of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x7fffffff of_root +EXPORT_SYMBOL vmlinux 0x7fffffff of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x7fffffff omap_rev +EXPORT_SYMBOL vmlinux 0x7fffffff omap_rtc_power_off_program +EXPORT_SYMBOL vmlinux 0x7fffffff omap_type +EXPORT_SYMBOL vmlinux 0x7fffffff omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x7fffffff omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x7fffffff omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x7fffffff omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0x7fffffff on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x7fffffff oops_in_progress +EXPORT_SYMBOL vmlinux 0x7fffffff out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7fffffff overflowuid +EXPORT_SYMBOL vmlinux 0x7fffffff padata_do_parallel +EXPORT_SYMBOL vmlinux 0x7fffffff page_frag_free +EXPORT_SYMBOL vmlinux 0x7fffffff page_get_link +EXPORT_SYMBOL vmlinux 0x7fffffff page_mapping +EXPORT_SYMBOL vmlinux 0x7fffffff page_offline_end +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_ethtool_stats_get +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0x7fffffff page_readlink +EXPORT_SYMBOL vmlinux 0x7fffffff page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x7fffffff pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x7fffffff pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x7fffffff panic +EXPORT_SYMBOL vmlinux 0x7fffffff panic_notifier_list +EXPORT_SYMBOL vmlinux 0x7fffffff par_io_of_config +EXPORT_SYMBOL vmlinux 0x7fffffff param_array_ops +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_string +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_ullong +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_ulong +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_ushort +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_bool +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_charp +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_hexint +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_int +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_invbool +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_long +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_uint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_bool +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_byte +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_hexint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_int +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_long +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_short +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_uint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_ulong +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_ushort +EXPORT_SYMBOL vmlinux 0x7fffffff path_get +EXPORT_SYMBOL vmlinux 0x7fffffff path_has_submounts +EXPORT_SYMBOL vmlinux 0x7fffffff path_is_under +EXPORT_SYMBOL vmlinux 0x7fffffff path_put +EXPORT_SYMBOL vmlinux 0x7fffffff pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x7fffffff pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x7fffffff pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x7fffffff pci_assign_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_type +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x7fffffff pci_claim_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_clear_master +EXPORT_SYMBOL vmlinux 0x7fffffff pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_dev_get +EXPORT_SYMBOL vmlinux 0x7fffffff pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x7fffffff pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_msi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_wake +EXPORT_SYMBOL vmlinux 0x7fffffff pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x7fffffff pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x7fffffff pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_capability +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_free_irq +EXPORT_SYMBOL vmlinux 0x7fffffff pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_slot +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_subsys +EXPORT_SYMBOL vmlinux 0x7fffffff pci_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff pci_irq_vector +EXPORT_SYMBOL vmlinux 0x7fffffff pci_map_rom +EXPORT_SYMBOL vmlinux 0x7fffffff pci_match_id +EXPORT_SYMBOL vmlinux 0x7fffffff pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0x7fffffff pci_pci_problems +EXPORT_SYMBOL vmlinux 0x7fffffff pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0x7fffffff pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0x7fffffff pci_reenable_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_release_region +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_irq +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pci_save_state +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff pci_set_master +EXPORT_SYMBOL vmlinux 0x7fffffff pci_set_mwi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x7fffffff pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x7fffffff pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x7fffffff pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x7fffffff pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_get_mps +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_set_mps +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_enable_device +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x7fffffff pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x7fffffff pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x7fffffff pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x7fffffff percpu_counter_add_batch +EXPORT_SYMBOL vmlinux 0x7fffffff percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x7fffffff pgprot_kernel +EXPORT_SYMBOL vmlinux 0x7fffffff phy_aneg_done +EXPORT_SYMBOL vmlinux 0x7fffffff phy_attach +EXPORT_SYMBOL vmlinux 0x7fffffff phy_attach_direct +EXPORT_SYMBOL vmlinux 0x7fffffff phy_attached_print +EXPORT_SYMBOL vmlinux 0x7fffffff phy_config_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff phy_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff phy_device_remove +EXPORT_SYMBOL vmlinux 0x7fffffff phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x7fffffff phy_driver_register +EXPORT_SYMBOL vmlinux 0x7fffffff phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff phy_drivers_register +EXPORT_SYMBOL vmlinux 0x7fffffff phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x7fffffff phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x7fffffff phy_get_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_init_hw +EXPORT_SYMBOL vmlinux 0x7fffffff phy_loopback +EXPORT_SYMBOL vmlinux 0x7fffffff phy_mipi_dphy_config_validate +EXPORT_SYMBOL vmlinux 0x7fffffff phy_modify_paged +EXPORT_SYMBOL vmlinux 0x7fffffff phy_print_status +EXPORT_SYMBOL vmlinux 0x7fffffff phy_read_mmd +EXPORT_SYMBOL vmlinux 0x7fffffff phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7fffffff phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x7fffffff phy_resume +EXPORT_SYMBOL vmlinux 0x7fffffff phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_sfp_detach +EXPORT_SYMBOL vmlinux 0x7fffffff phy_sfp_probe +EXPORT_SYMBOL vmlinux 0x7fffffff phy_start +EXPORT_SYMBOL vmlinux 0x7fffffff phy_start_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff phy_start_cable_test +EXPORT_SYMBOL vmlinux 0x7fffffff phy_stop +EXPORT_SYMBOL vmlinux 0x7fffffff phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x7fffffff phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0x7fffffff phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x7fffffff phy_validate_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_write_paged +EXPORT_SYMBOL vmlinux 0x7fffffff phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x7fffffff pid_task +EXPORT_SYMBOL vmlinux 0x7fffffff pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x7fffffff ping_prot +EXPORT_SYMBOL vmlinux 0x7fffffff pipe_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x7fffffff pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x7fffffff poll_freewait +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_init +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7fffffff posix_test_lock +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_channel_index +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_input_error +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x7fffffff pr_flush +EXPORT_SYMBOL vmlinux 0x7fffffff prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff probe_irq_off +EXPORT_SYMBOL vmlinux 0x7fffffff probe_irq_on +EXPORT_SYMBOL vmlinux 0x7fffffff proc_create +EXPORT_SYMBOL vmlinux 0x7fffffff proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dobool +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dointvec +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dostring +EXPORT_SYMBOL vmlinux 0x7fffffff proc_douintvec +EXPORT_SYMBOL vmlinux 0x7fffffff proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7fffffff proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x7fffffff proc_remove +EXPORT_SYMBOL vmlinux 0x7fffffff proc_set_size +EXPORT_SYMBOL vmlinux 0x7fffffff proc_set_user +EXPORT_SYMBOL vmlinux 0x7fffffff profile_pc +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_drain +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_end_command +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_init +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x7fffffff psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0x7fffffff psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0x7fffffff pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0x7fffffff put_pages_list +EXPORT_SYMBOL vmlinux 0x7fffffff put_watch_queue +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_cpu_power_down +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_hdcp_req +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ice_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ice_set_key +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_io_readl +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_io_writel +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_iommu_secure_ptbl_init +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_iommu_set_cp_pool_size +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_is_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_dcvsh +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_dcvsh_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_profile_change +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_mem_protect_video_var +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_lock +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_lock_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_auth_and_reset +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_mem_setup +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_supported +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_qsmmu500_wait_safe_toggle +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_restore_sec_cfg +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_restore_sec_cfg_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_cold_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_remote_state +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_warm_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_reset +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x7fffffff qe_get_brg_clk +EXPORT_SYMBOL vmlinux 0x7fffffff qe_put_snum +EXPORT_SYMBOL vmlinux 0x7fffffff qid_eq +EXPORT_SYMBOL vmlinux 0x7fffffff qid_valid +EXPORT_SYMBOL vmlinux 0x7fffffff queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0x7fffffff queue_rcu_work +EXPORT_SYMBOL vmlinux 0x7fffffff queue_work_on +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x7fffffff ram_aops +EXPORT_SYMBOL vmlinux 0x7fffffff rational_best_approximation +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_bch_init +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_hamming_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_hamming_init +EXPORT_SYMBOL vmlinux 0x7fffffff rb_first +EXPORT_SYMBOL vmlinux 0x7fffffff rb_first_postorder +EXPORT_SYMBOL vmlinux 0x7fffffff rb_insert_color +EXPORT_SYMBOL vmlinux 0x7fffffff rb_last +EXPORT_SYMBOL vmlinux 0x7fffffff rb_next +EXPORT_SYMBOL vmlinux 0x7fffffff rb_prev +EXPORT_SYMBOL vmlinux 0x7fffffff rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x7fffffff read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x7fffffff read_code +EXPORT_SYMBOL vmlinux 0x7fffffff readahead_expand +EXPORT_SYMBOL vmlinux 0x7fffffff recalc_sigpending +EXPORT_SYMBOL vmlinux 0x7fffffff reciprocal_value +EXPORT_SYMBOL vmlinux 0x7fffffff reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0x7fffffff redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7fffffff redraw_screen +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0x7fffffff refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0x7fffffff register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_filesystem +EXPORT_SYMBOL vmlinux 0x7fffffff register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_module_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x7fffffff register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_quota_format +EXPORT_SYMBOL vmlinux 0x7fffffff register_restart_handler +EXPORT_SYMBOL vmlinux 0x7fffffff register_shrinker +EXPORT_SYMBOL vmlinux 0x7fffffff register_sound_dsp +EXPORT_SYMBOL vmlinux 0x7fffffff register_sound_special +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7fffffff regset_get +EXPORT_SYMBOL vmlinux 0x7fffffff regset_get_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x7fffffff release_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff release_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff release_pages +EXPORT_SYMBOL vmlinux 0x7fffffff release_sock +EXPORT_SYMBOL vmlinux 0x7fffffff remove_arg_zero +EXPORT_SYMBOL vmlinux 0x7fffffff remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0x7fffffff remove_wait_queue +EXPORT_SYMBOL vmlinux 0x7fffffff remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x7fffffff rename_lock +EXPORT_SYMBOL vmlinux 0x7fffffff request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x7fffffff request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x7fffffff request_resource +EXPORT_SYMBOL vmlinux 0x7fffffff request_threaded_irq +EXPORT_SYMBOL vmlinux 0x7fffffff reservation_ww_class +EXPORT_SYMBOL vmlinux 0x7fffffff reset_devices +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_select_sock +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_blocked +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_register +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_states +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0x7fffffff rfs_needed +EXPORT_SYMBOL vmlinux 0x7fffffff rio_query_mport +EXPORT_SYMBOL vmlinux 0x7fffffff rpmh_write +EXPORT_SYMBOL vmlinux 0x7fffffff rpmh_write_batch +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_da_to_va +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_free +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_of_parse_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x7fffffff rps_needed +EXPORT_SYMBOL vmlinux 0x7fffffff rt6_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff rtc_lock +EXPORT_SYMBOL vmlinux 0x7fffffff rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_lock +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x7fffffff schedule_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff scm_detach_fds +EXPORT_SYMBOL vmlinux 0x7fffffff scm_fp_dup +EXPORT_SYMBOL vmlinux 0x7fffffff scmd_printk +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_block_requests +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_get +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dma_map +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_done +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_host_busy +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_host_put +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_logging_level +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_print_command +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_remove_host +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_remove_target +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_scan_host +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x7fffffff scsilun_to_int +EXPORT_SYMBOL vmlinux 0x7fffffff sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x7fffffff secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x7fffffff secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x7fffffff security_binder_transaction +EXPORT_SYMBOL vmlinux 0x7fffffff security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x7fffffff security_d_instantiate +EXPORT_SYMBOL vmlinux 0x7fffffff security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x7fffffff security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0x7fffffff security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7fffffff security_ismaclabel +EXPORT_SYMBOL vmlinux 0x7fffffff security_locked_down +EXPORT_SYMBOL vmlinux 0x7fffffff security_path_rename +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_remount +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0x7fffffff security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x7fffffff security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x7fffffff security_sk_clone +EXPORT_SYMBOL vmlinux 0x7fffffff security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x7fffffff security_sock_graft +EXPORT_SYMBOL vmlinux 0x7fffffff security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fffffff security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x7fffffff security_socket_socketpair +EXPORT_SYMBOL vmlinux 0x7fffffff security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x7fffffff security_tun_dev_open +EXPORT_SYMBOL vmlinux 0x7fffffff security_unix_may_send +EXPORT_SYMBOL vmlinux 0x7fffffff security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x7fffffff security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x7fffffff send_sig +EXPORT_SYMBOL vmlinux 0x7fffffff seq_file_path +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_next +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_start +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_start_head +EXPORT_SYMBOL vmlinux 0x7fffffff seq_pad +EXPORT_SYMBOL vmlinux 0x7fffffff seq_path +EXPORT_SYMBOL vmlinux 0x7fffffff seq_printf +EXPORT_SYMBOL vmlinux 0x7fffffff seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x7fffffff seq_puts +EXPORT_SYMBOL vmlinux 0x7fffffff seq_read +EXPORT_SYMBOL vmlinux 0x7fffffff seq_read_iter +EXPORT_SYMBOL vmlinux 0x7fffffff seq_release +EXPORT_SYMBOL vmlinux 0x7fffffff seq_release_private +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_resume_port +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0x7fffffff serio_close +EXPORT_SYMBOL vmlinux 0x7fffffff serio_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff serio_reconnect +EXPORT_SYMBOL vmlinux 0x7fffffff serio_rescan +EXPORT_SYMBOL vmlinux 0x7fffffff serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x7fffffff set_anon_super +EXPORT_SYMBOL vmlinux 0x7fffffff set_bh_page +EXPORT_SYMBOL vmlinux 0x7fffffff set_binfmt +EXPORT_SYMBOL vmlinux 0x7fffffff set_blocksize +EXPORT_SYMBOL vmlinux 0x7fffffff set_create_files_as +EXPORT_SYMBOL vmlinux 0x7fffffff set_current_groups +EXPORT_SYMBOL vmlinux 0x7fffffff set_freezable +EXPORT_SYMBOL vmlinux 0x7fffffff set_groups +EXPORT_SYMBOL vmlinux 0x7fffffff set_nlink +EXPORT_SYMBOL vmlinux 0x7fffffff set_posix_acl +EXPORT_SYMBOL vmlinux 0x7fffffff set_user_nice +EXPORT_SYMBOL vmlinux 0x7fffffff setattr_copy +EXPORT_SYMBOL vmlinux 0x7fffffff setup_arg_pages +EXPORT_SYMBOL vmlinux 0x7fffffff setup_new_exec +EXPORT_SYMBOL vmlinux 0x7fffffff sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x7fffffff sg_alloc_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x7fffffff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sg_free_append_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_free_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_init_one +EXPORT_SYMBOL vmlinux 0x7fffffff sg_init_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_miter_skip +EXPORT_SYMBOL vmlinux 0x7fffffff sg_miter_stop +EXPORT_SYMBOL vmlinux 0x7fffffff sg_nents +EXPORT_SYMBOL vmlinux 0x7fffffff sg_next +EXPORT_SYMBOL vmlinux 0x7fffffff sg_split +EXPORT_SYMBOL vmlinux 0x7fffffff sget_fc +EXPORT_SYMBOL vmlinux 0x7fffffff sgl_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x7fffffff sha224_final +EXPORT_SYMBOL vmlinux 0x7fffffff sha224_update +EXPORT_SYMBOL vmlinux 0x7fffffff sha256 +EXPORT_SYMBOL vmlinux 0x7fffffff shmem_aops +EXPORT_SYMBOL vmlinux 0x7fffffff should_remove_suid +EXPORT_SYMBOL vmlinux 0x7fffffff shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x7fffffff simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff simple_empty +EXPORT_SYMBOL vmlinux 0x7fffffff simple_fill_super +EXPORT_SYMBOL vmlinux 0x7fffffff simple_getattr +EXPORT_SYMBOL vmlinux 0x7fffffff simple_nosetlease +EXPORT_SYMBOL vmlinux 0x7fffffff simple_pin_fs +EXPORT_SYMBOL vmlinux 0x7fffffff simple_recursive_removal +EXPORT_SYMBOL vmlinux 0x7fffffff simple_release_fs +EXPORT_SYMBOL vmlinux 0x7fffffff simple_rmdir +EXPORT_SYMBOL vmlinux 0x7fffffff simple_statfs +EXPORT_SYMBOL vmlinux 0x7fffffff simple_strtoll +EXPORT_SYMBOL vmlinux 0x7fffffff simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff single_open +EXPORT_SYMBOL vmlinux 0x7fffffff single_open_size +EXPORT_SYMBOL vmlinux 0x7fffffff siphash_3u32 +EXPORT_SYMBOL vmlinux 0x7fffffff siphash_3u64 +EXPORT_SYMBOL vmlinux 0x7fffffff sk_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0x7fffffff sk_capable +EXPORT_SYMBOL vmlinux 0x7fffffff sk_dst_check +EXPORT_SYMBOL vmlinux 0x7fffffff sk_error_report +EXPORT_SYMBOL vmlinux 0x7fffffff sk_free +EXPORT_SYMBOL vmlinux 0x7fffffff sk_mc_loop +EXPORT_SYMBOL vmlinux 0x7fffffff sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x7fffffff skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x7fffffff skb_append +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum_help +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0x7fffffff skb_clone_sk +EXPORT_SYMBOL vmlinux 0x7fffffff skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_bits +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_expand +EXPORT_SYMBOL vmlinux 0x7fffffff skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0x7fffffff skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x7fffffff skb_eth_pop +EXPORT_SYMBOL vmlinux 0x7fffffff skb_eth_push +EXPORT_SYMBOL vmlinux 0x7fffffff skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x7fffffff skb_free_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0x7fffffff skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x7fffffff skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x7fffffff skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7fffffff skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x7fffffff skb_push +EXPORT_SYMBOL vmlinux 0x7fffffff skb_queue_head +EXPORT_SYMBOL vmlinux 0x7fffffff skb_queue_purge +EXPORT_SYMBOL vmlinux 0x7fffffff skb_trim +EXPORT_SYMBOL vmlinux 0x7fffffff skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x7fffffff skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x7fffffff skb_tx_error +EXPORT_SYMBOL vmlinux 0x7fffffff skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x7fffffff skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x7fffffff skb_vlan_push +EXPORT_SYMBOL vmlinux 0x7fffffff skip_spaces +EXPORT_SYMBOL vmlinux 0x7fffffff slash_name +EXPORT_SYMBOL vmlinux 0x7fffffff slhc_compress +EXPORT_SYMBOL vmlinux 0x7fffffff slhc_uncompress +EXPORT_SYMBOL vmlinux 0x7fffffff smp_call_function +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_file_add +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_set_id +EXPORT_SYMBOL vmlinux 0x7fffffff snd_compr_free_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_compr_malloc_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x7fffffff snd_device_free +EXPORT_SYMBOL vmlinux 0x7fffffff snd_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_get_str +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_interval_list +EXPORT_SYMBOL vmlinux 0x7fffffff snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_add_new_kctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_report +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x7fffffff snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0x7fffffff snd_major +EXPORT_SYMBOL vmlinux 0x7fffffff snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0x7fffffff snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pci_quirk_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_limit_rates +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_set_managed_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x7fffffff snd_register_device +EXPORT_SYMBOL vmlinux 0x7fffffff snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x7fffffff snd_sgbuf_get_addr +EXPORT_SYMBOL vmlinux 0x7fffffff snd_sgbuf_get_page +EXPORT_SYMBOL vmlinux 0x7fffffff snd_soc_alloc_ac97_component +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_instance_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_pause +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_start +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff snprintf +EXPORT_SYMBOL vmlinux 0x7fffffff sock_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff sock_alloc_file +EXPORT_SYMBOL vmlinux 0x7fffffff sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x7fffffff sock_bind_add +EXPORT_SYMBOL vmlinux 0x7fffffff sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x7fffffff sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x7fffffff sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff sock_create +EXPORT_SYMBOL vmlinux 0x7fffffff sock_create_kern +EXPORT_SYMBOL vmlinux 0x7fffffff sock_create_lite +EXPORT_SYMBOL vmlinux 0x7fffffff sock_efree +EXPORT_SYMBOL vmlinux 0x7fffffff sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x7fffffff sock_from_file +EXPORT_SYMBOL vmlinux 0x7fffffff sock_get_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff sock_init_data +EXPORT_SYMBOL vmlinux 0x7fffffff sock_kfree_s +EXPORT_SYMBOL vmlinux 0x7fffffff sock_load_diag_module +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_connect +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_listen +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_mmap +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x7fffffff sock_pfree +EXPORT_SYMBOL vmlinux 0x7fffffff sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7fffffff sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x7fffffff sock_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_mark +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x7fffffff sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff sock_wake_async +EXPORT_SYMBOL vmlinux 0x7fffffff sock_wmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff softnet_data +EXPORT_SYMBOL vmlinux 0x7fffffff sort +EXPORT_SYMBOL vmlinux 0x7fffffff sort_r +EXPORT_SYMBOL vmlinux 0x7fffffff sscanf +EXPORT_SYMBOL vmlinux 0x7fffffff starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fffffff stmp_reset_block +EXPORT_SYMBOL vmlinux 0x7fffffff stpcpy +EXPORT_SYMBOL vmlinux 0x7fffffff strcasecmp +EXPORT_SYMBOL vmlinux 0x7fffffff strchrnul +EXPORT_SYMBOL vmlinux 0x7fffffff strcmp +EXPORT_SYMBOL vmlinux 0x7fffffff strcpy +EXPORT_SYMBOL vmlinux 0x7fffffff stream_open +EXPORT_SYMBOL vmlinux 0x7fffffff string_escape_mem +EXPORT_SYMBOL vmlinux 0x7fffffff string_unescape +EXPORT_SYMBOL vmlinux 0x7fffffff strlcat +EXPORT_SYMBOL vmlinux 0x7fffffff strlen +EXPORT_SYMBOL vmlinux 0x7fffffff strncat +EXPORT_SYMBOL vmlinux 0x7fffffff strncmp +EXPORT_SYMBOL vmlinux 0x7fffffff strnlen +EXPORT_SYMBOL vmlinux 0x7fffffff strnlen_user +EXPORT_SYMBOL vmlinux 0x7fffffff strpbrk +EXPORT_SYMBOL vmlinux 0x7fffffff strrchr +EXPORT_SYMBOL vmlinux 0x7fffffff strscpy_pad +EXPORT_SYMBOL vmlinux 0x7fffffff strsep +EXPORT_SYMBOL vmlinux 0x7fffffff strspn +EXPORT_SYMBOL vmlinux 0x7fffffff submit_bh +EXPORT_SYMBOL vmlinux 0x7fffffff submit_bio +EXPORT_SYMBOL vmlinux 0x7fffffff submit_bio_wait +EXPORT_SYMBOL vmlinux 0x7fffffff swake_up_all +EXPORT_SYMBOL vmlinux 0x7fffffff swake_up_one +EXPORT_SYMBOL vmlinux 0x7fffffff sync_blockdev +EXPORT_SYMBOL vmlinux 0x7fffffff sync_blockdev_range +EXPORT_SYMBOL vmlinux 0x7fffffff sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sync_file_create +EXPORT_SYMBOL vmlinux 0x7fffffff sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x7fffffff sync_filesystem +EXPORT_SYMBOL vmlinux 0x7fffffff sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x7fffffff sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff synchronize_irq +EXPORT_SYMBOL vmlinux 0x7fffffff synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0x7fffffff sys_tz +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_vals +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x7fffffff system_rev +EXPORT_SYMBOL vmlinux 0x7fffffff system_serial +EXPORT_SYMBOL vmlinux 0x7fffffff system_serial_high +EXPORT_SYMBOL vmlinux 0x7fffffff system_state +EXPORT_SYMBOL vmlinux 0x7fffffff t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x7fffffff t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x7fffffff t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x7fffffff t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x7fffffff tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x7fffffff task_work_add +EXPORT_SYMBOL vmlinux 0x7fffffff tasklet_setup +EXPORT_SYMBOL vmlinux 0x7fffffff tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x7fffffff tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x7fffffff tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_exec +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_classify +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_em_register +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_change +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_qevent_init +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_queue_work +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_check_req +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_close +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_conn_request +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_disconnect +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_init_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_make_synack +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_mmap +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_release_cb +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_seq_start +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_splice_read +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_deassert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_tune_cpu_trimmers_init +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_tune_cpu_trimmers_low +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_register +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_resume +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_fuse_readl +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_io_pad_power_enable +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_io_rail_power_on +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_align +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_read_advance +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_reset +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_write_advance +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_powergate_power_on +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_sku_info +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff thaw_bdev +EXPORT_SYMBOL vmlinux 0x7fffffff timer_reduce +EXPORT_SYMBOL vmlinux 0x7fffffff timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0x7fffffff tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x7fffffff touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_flags_seq_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_pagecache +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_setsize +EXPORT_SYMBOL vmlinux 0x7fffffff try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff tso_build_data +EXPORT_SYMBOL vmlinux 0x7fffffff tso_build_hdr +EXPORT_SYMBOL vmlinux 0x7fffffff tso_count_descs +EXPORT_SYMBOL vmlinux 0x7fffffff tty_check_change +EXPORT_SYMBOL vmlinux 0x7fffffff tty_devnum +EXPORT_SYMBOL vmlinux 0x7fffffff tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff tty_hangup +EXPORT_SYMBOL vmlinux 0x7fffffff tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x7fffffff tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x7fffffff tty_lock +EXPORT_SYMBOL vmlinux 0x7fffffff tty_name +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_close +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_close_end +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_close_start +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_hangup +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_init +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_open +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x7fffffff tty_register_device +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x7fffffff tty_vhangup +EXPORT_SYMBOL vmlinux 0x7fffffff tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x7fffffff twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7fffffff twl_i2c_write +EXPORT_SYMBOL vmlinux 0x7fffffff twl_rev +EXPORT_SYMBOL vmlinux 0x7fffffff twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0x7fffffff uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_get_divisor +EXPORT_SYMBOL vmlinux 0x7fffffff uart_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff uart_suspend_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_disable +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_dump_regs +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_free +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_init +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_disable +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_enable +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_free +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_graceful_stop_tx +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_init +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_stop_tx +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_tdm_init +EXPORT_SYMBOL vmlinux 0x7fffffff ucs2_strsize +EXPORT_SYMBOL vmlinux 0x7fffffff udp_disconnect +EXPORT_SYMBOL vmlinux 0x7fffffff udp_encap_disable +EXPORT_SYMBOL vmlinux 0x7fffffff udp_encap_enable +EXPORT_SYMBOL vmlinux 0x7fffffff udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0x7fffffff udp_gro_receive +EXPORT_SYMBOL vmlinux 0x7fffffff udp_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x7fffffff udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x7fffffff udp_read_sock +EXPORT_SYMBOL vmlinux 0x7fffffff udp_seq_next +EXPORT_SYMBOL vmlinux 0x7fffffff udp_seq_stop +EXPORT_SYMBOL vmlinux 0x7fffffff udp_set_csum +EXPORT_SYMBOL vmlinux 0x7fffffff udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x7fffffff udp_table +EXPORT_SYMBOL vmlinux 0x7fffffff udplite_table +EXPORT_SYMBOL vmlinux 0x7fffffff unix_attach_fds +EXPORT_SYMBOL vmlinux 0x7fffffff unix_detach_fds +EXPORT_SYMBOL vmlinux 0x7fffffff unlock_new_inode +EXPORT_SYMBOL vmlinux 0x7fffffff unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x7fffffff unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_blkdev +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_console +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_qdisc +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_quota_format +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sound_special +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7fffffff up_read +EXPORT_SYMBOL vmlinux 0x7fffffff update_region +EXPORT_SYMBOL vmlinux 0x7fffffff user_path_at_empty +EXPORT_SYMBOL vmlinux 0x7fffffff user_path_create +EXPORT_SYMBOL vmlinux 0x7fffffff usleep_range_state +EXPORT_SYMBOL vmlinux 0x7fffffff utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_load +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_strncmp +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_unload +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_validate +EXPORT_SYMBOL vmlinux 0x7fffffff utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x7fffffff uuid_is_valid +EXPORT_SYMBOL vmlinux 0x7fffffff uuid_parse +EXPORT_SYMBOL vmlinux 0x7fffffff v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x7fffffff vc_resize +EXPORT_SYMBOL vmlinux 0x7fffffff vcalloc +EXPORT_SYMBOL vmlinux 0x7fffffff verify_spi_info +EXPORT_SYMBOL vmlinux 0x7fffffff vesa_modes +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_pin_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_unpin_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff vfree +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_create +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_get_link +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_get_super +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_iter_read +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_iter_write +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_mkdir +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_mknod +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_rename +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_setpos +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x7fffffff vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_vid_del +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x7fffffff vm_brk_flags +EXPORT_SYMBOL vmlinux 0x7fffffff vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x7fffffff vm_insert_page +EXPORT_SYMBOL vmlinux 0x7fffffff vm_insert_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x7fffffff vm_map_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vma_set_file +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc_32 +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc_array +EXPORT_SYMBOL vmlinux 0x7fffffff vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vme_bus_num +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_free_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_list_add +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_get_size +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_generate +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_request +EXPORT_SYMBOL vmlinux 0x7fffffff vme_lm_detach +EXPORT_SYMBOL vmlinux 0x7fffffff vme_lm_set +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_request +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_set +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_write +EXPORT_SYMBOL vmlinux 0x7fffffff vme_register_error_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_free +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_get +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_request +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_set +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slot_num +EXPORT_SYMBOL vmlinux 0x7fffffff vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vmemdup_user +EXPORT_SYMBOL vmlinux 0x7fffffff vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x7fffffff vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x7fffffff vprintk_emit +EXPORT_SYMBOL vmlinux 0x7fffffff vscnprintf +EXPORT_SYMBOL vmlinux 0x7fffffff vsnprintf +EXPORT_SYMBOL vmlinux 0x7fffffff vunmap +EXPORT_SYMBOL vmlinux 0x7fffffff vzalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_woken +EXPORT_SYMBOL vmlinux 0x7fffffff wake_bit_function +EXPORT_SYMBOL vmlinux 0x7fffffff wake_up_bit +EXPORT_SYMBOL vmlinux 0x7fffffff wake_up_process +EXPORT_SYMBOL vmlinux 0x7fffffff wake_up_var +EXPORT_SYMBOL vmlinux 0x7fffffff walk_stackframe +EXPORT_SYMBOL vmlinux 0x7fffffff watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x7fffffff watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x7fffffff wireless_send_event +EXPORT_SYMBOL vmlinux 0x7fffffff woken_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff would_dump +EXPORT_SYMBOL vmlinux 0x7fffffff write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x7fffffff ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff xa_erase +EXPORT_SYMBOL vmlinux 0x7fffffff xa_extract +EXPORT_SYMBOL vmlinux 0x7fffffff xa_find_after +EXPORT_SYMBOL vmlinux 0x7fffffff xa_get_mark +EXPORT_SYMBOL vmlinux 0x7fffffff xa_load +EXPORT_SYMBOL vmlinux 0x7fffffff xattr_full_name +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_init_state +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_input +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_register_km +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_free +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_update +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x7fffffff xp_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0x7fffffff xp_free +EXPORT_SYMBOL vmlinux 0x7fffffff xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x7fffffff xxh32_copy_state +EXPORT_SYMBOL vmlinux 0x7fffffff xxh32_update +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64 +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64_copy_state +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64_digest +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_reset +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_run +EXPORT_SYMBOL vmlinux 0x7fffffff zap_page_range +EXPORT_SYMBOL vmlinux 0x7fffffff zero_pfn +EXPORT_SYMBOL vmlinux 0x7fffffff zero_user_segments +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0x7fffffff zpool_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_compress_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_flush_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_cstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_is_error +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_reset_dstream +EXPORT_SYMBOL_GPL arch/arm/crypto/sha1-arm 0x4dc32b25 sha1_finup_arm +EXPORT_SYMBOL_GPL arch/arm/crypto/sha1-arm 0x7fffffff sha1_update_arm +EXPORT_SYMBOL_GPL crypto/af_alg 0x11c88e0f af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0x3a35c730 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x438c43b5 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x45aab0be af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x5f099d9c af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x63c446e4 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x6cfa4095 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x07956f0c async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x05e1674f async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7fffffff async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7fffffff async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7fffffff async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x71eb1097 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7fffffff __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7fffffff async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7fffffff async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x172b4c07 async_xor_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x49d6adfc async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x5fcdb36e async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7fffffff async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x7fffffff blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x1d2650ed cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x7fffffff __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x23395ecf cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7fffffff __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7fffffff __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 0x7fffffff cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x7fffffff cast_s3 +EXPORT_SYMBOL_GPL crypto/cryptd 0x02db5a43 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x049700f2 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x325713ff cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x3e5fab49 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x586c97ca cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x685d9e2c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x7068d283 cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0f4ab866 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x2e4beb8e crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x4721dd73 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6878e03d crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6acd1e09 crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x6fe2ab29 crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x72d93b9f crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7bec6456 crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x0b1e20d1 simd_register_aeads_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x504cb053 simd_aead_create_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x5c547c04 simd_unregister_skciphers +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x66983e96 simd_skcipher_create +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_aead_create +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_aead_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_register_skciphers_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_skcipher_create_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_skcipher_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_unregister_aeads +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7fffffff crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4310f74e serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7fffffff __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7fffffff __serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0x7fffffff sm3_final +EXPORT_SYMBOL_GPL crypto/sm3 0x7fffffff sm3_update +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0x7fffffff sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x7fffffff __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x7fffffff twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x0606db09 synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x086330d7 spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x196cfa50 spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1d44681b spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2e7e21d7 speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x37a4f555 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41677e93 spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4a6990b1 synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x71d80a64 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7d39b7ff spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_printf +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_request_region +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x7fffffff __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x7fffffff sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_fontsize +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_shift_cursor +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 0x7fffffff ks0108_address +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x7fffffff ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x7fffffff ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x1eb5595a linedisp_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x7fffffff linedisp_unregister +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x2cb6d34f regmap_ac97_default_volatile +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x4dd0a46f __devm_regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x7fffffff __regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x7fffffff __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x0ecfd678 __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x2fb28ede __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x35533281 __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x7fffffff __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x01f30785 __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x7fffffff __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x1d54d3fe __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x5637b80a __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x0e466c21 __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x7fffffff __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x71369cab __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x43de0075 __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x7fffffff __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0293a6ca bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x21b2bc60 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x280eb593 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x498563d1 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5326b5a4 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5b20a521 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x624cd4c3 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x675f9431 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x68664686 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x70c1d4ea bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7dc9f233 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x065b052b btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x16a1ebef btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x5f860d94 btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x0089ec5e btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x07fc9498 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x0896de49 btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x14a6e51b btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x1ac12571 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2599abea btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2d2d9b8d btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x3523ef1b btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x37e9de97 btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x60c3a641 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x6dcff6a8 btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x77c83666 btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x08f0756d btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1a940809 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3055f1eb btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x34ae30ed btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x56b554e4 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7fffffff btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7fffffff btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7fffffff btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x150f26ea qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x16aeebfc qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x12db9311 btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x16da28de btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x13678120 hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x27bac5c7 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x6f17c962 hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x7fffffff hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x0e7ba34f mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x02feda90 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x06023e36 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x09351ebe mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0db41c24 mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1463d1e4 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1864126c mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2065db40 mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2aa1c80c mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3e8dd2bd mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x41048cb6 __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x448b1c0f mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x4a1f6e25 mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x4daa565a mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x4f1a9d1b mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x500c13f1 mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x67239388 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6b78cf7a mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6ef3582e mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x715f5159 mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7f931ae1 mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x0b19e966 moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x4b31cb53 moxtet_device_read +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x5e44bc21 __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x7fffffff moxtet_device_write +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0000139e clk_alpha_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x08f0cc30 clk_is_enabled_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d10c3c4 clk_enable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d678ab9 qcom_reset_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e5f8a53 clk_pll_sr2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e98da3d clk_pll_vote_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x17d44071 clk_alpha_pll_hwfsm_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x183be5e6 clk_alpha_pll_agera_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1a142e7c clk_alpha_pll_fixed_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1cbd386f clk_rcg_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1d1645f5 qcom_cc_register_board_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x272f3204 clk_alpha_pll_fixed_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x29c40ae0 clk_alpha_pll_fixed_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2a9c7452 clk_rcg_lcc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2b0d957d clk_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2cae96b3 clk_regmap_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2eda7aff qcom_cc_probe_by_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x30bbf987 clk_rcg2_shared_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x310b6341 clk_regmap_mux_closest_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x34a20153 qcom_cc_really_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3747af55 clk_rcg_bypass2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x395868a1 qcom_find_freq_floor +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3b15a709 clk_alpha_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3dfc2dc5 clk_branch_simple_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x405d394a clk_alpha_pll_postdiv_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x418e9cfd clk_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x4b0ed6da clk_ops_hfpll +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5111f2ad clk_rcg2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x520df3b7 clk_rcg_esc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x57172323 clk_byte_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5e6abb22 mux_div_set_src_div +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x615dbb77 clk_branch2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x631939a9 clk_branch2_aon_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x63ee9aa4 clk_alpha_pll_fixed_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x66922845 clk_branch_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x66c4ddc3 qcom_cc_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x67747495 gdsc_gx_do_nothing_enable +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x68199825 clk_disable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6af41b8b qcom_pll_set_fsm_mode +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6c069db2 qcom_find_src_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7019378d clk_pll_configure_sr_hpm_lp +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x766e9f87 clk_regmap_div_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x787e8234 qcom_find_freq +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x78b81ea0 clk_rcg2_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7d3cc627 qcom_cc_register_sleep_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7e66fd9e clk_regmap_mux_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_agera_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_huayra_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_regs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_byte2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_dp_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_dyn_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_edp_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_fabia_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_gfx3d_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_pll_configure_sr +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_bypass_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_trion_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_zonda_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff devm_clk_register_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff krait_div2_clk_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff krait_mux_clk_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_cc_map +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_cc_register_rcg_dfs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_find_cfg_index +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0869bc32 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1a76b998 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1b5d1d67 comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1e05848e comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21796a2d __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2771b563 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3283484c comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4328671a comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x473f6ccb comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4a90d3ca comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5a34f072 comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5e5888e1 comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7188fb63 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x754262e1 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x765c7ccc comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x775c3445 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7ced63d0 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x180899a7 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x2806528c comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x78b186fb comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x795fde58 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7aaac37e comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x05c95d4b comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x7fffffff addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x52fcccf4 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x6e87c027 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x09f14520 amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x0baf0af2 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x406548a8 comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x41ea068e comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4bf30389 comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4e920c82 comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x519573b0 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x744e86b8 comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x7fffffff subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x7fffffff subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x7fffffff subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x7fffffff das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x0c6696a7 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x13238288 mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1b1f864e mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x270ee3f2 mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3197ce0c mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4358e246 mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x53e8acde mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6330a988 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6a16b38d mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7c96cc77 mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x7fffffff labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x7fffffff labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x1c08283e ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x2189e12a ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x3ac21c3b ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4d3aa792 ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x5134ef06 ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x5284d328 ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x559e6bf9 ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x5e140063 ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x76162926 ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7a51123b ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x263b0990 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x2722a591 ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x42884d1a ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x42940733 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7fffffff ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7fffffff ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x0752fa15 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x147dff86 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x2995ef57 comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_open +EXPORT_SYMBOL_GPL drivers/counter/counter 0x05c49d75 counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x394631e1 counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0x4520f347 counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0x4dc7395b devm_counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x547e1538 counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x64d85817 devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7fffffff counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7fffffff counter_push_event +EXPORT_SYMBOL_GPL drivers/crypto/omap-crypto 0x701db540 omap_crypto_align_sg +EXPORT_SYMBOL_GPL drivers/crypto/omap-crypto 0x7fffffff omap_crypto_cleanup +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x7b5c6ebd dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x7fffffff dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x213f90c1 idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x438e5d50 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x4c28d85f dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x00096b87 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x07ab3da7 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x1674ca18 fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x1ffaf77f fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x22c9f4c9 fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x2779714e fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x63a21edc fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x682351bb fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x69c9336d fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x1a5b2f71 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x7fffffff hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x1e4c0e55 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x7fffffff fw_card_release +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x7fffffff fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firmware/arm_scpi 0x7ef6c915 get_scpi_ops +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x04ea20bf cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x1243fe9f cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x17901e1d cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x21715f56 cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x38ffd2b8 cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x594ae58b cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x62378a9b cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x65c09848 cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7acbcf5c cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/mtk-adsp-ipc 0x7fffffff mtk_adsp_ipc_send +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x7fffffff alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x065b477a dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x0e08faae dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x17b53484 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1e5222a9 dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2bc0b54a dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2fc39192 dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x502efb84 dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x68825c24 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x6f713413 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x793ba6de dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_put +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 0x1c2a7aae fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x22726f9c fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x361a5969 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x42ff61cd fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x5c2150ca fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x72831a74 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x12f5a57c fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x26fa6c77 devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x4387968e fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x5b321626 devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x3758d759 fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x6c79256c fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x0c53c5af fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x12250d38 fsi_get_new_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x25314076 fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x4d008ce2 fsi_driver_register +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 0x7fffffff fsi_bus_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_master_rescan +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_slave_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_slave_release_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x3d622b5e fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x7fffffff sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x7fffffff sbefifo_submit +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x04ca84dc gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x3363f625 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x7311d8d3 gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x7fffffff gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x7fffffff gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x015b6978 gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x73b26008 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x5dcbe46c aspeed_gpio_copro_set_ops +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x7fffffff aspeed_gpio_copro_grab_gpio +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x7fffffff aspeed_gpio_copro_release_gpio +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x7fffffff __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x7fffffff __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x2c2f9109 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x39f2ea2a analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x4212941f analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05 dw_hdmi_set_channel_count +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5 dw_hdmi_phy_i2c_set_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x1461e227 dw_hdmi_set_channel_status +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x26d629cd dw_hdmi_phy_gen2_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 0x5665b64f dw_hdmi_set_high_tmds_clock_ratio +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7c082593 dw_hdmi_bind +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 0x7fffffff dw_hdmi_audio_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_audio_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_gen1_reset +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_gen2_pddq +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_read_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_setup_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_update_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_sample_rate +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_sample_width +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 0x7fffffff dw_mipi_dsi_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-mipi-dsi 0x7fffffff dw_mipi_dsi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0x0cb138fb drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x0cf533b9 dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x7fffffff __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x7fffffff devm_of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x7fffffff of_dp_aux_depopulate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x7fffffff of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x06fff337 drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x07617fb9 drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x282f7e3e drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4b97b2f5 drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5c34986c of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x12753b44 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x149d4542 drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x3545238d drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x41614118 drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x4b2f8b38 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x5b935267 drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x75a08d46 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x00ac0e96 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x511bf677 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x53662870 drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x0592e41d drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x5bfc9155 drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/imx/imxdrm 0x7de88ddd imx_drm_encoder_parse_of +EXPORT_SYMBOL_GPL drivers/gpu/drm/imx/imxdrm 0x7fffffff imx_drm_connector_destroy +EXPORT_SYMBOL_GPL drivers/gpu/drm/mcde/mcde_drm 0x7fffffff mcde_display_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x2c73cfcf meson_venc_hdmi_venc_repeat +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x6341f275 meson_vclk_vic_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_vclk_dmt_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_vclk_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_venc_hdmi_mode_set +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_venc_hdmi_supported_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_venc_hdmi_supported_vic +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x6faaec09 s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x7fffffff s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/pl111/pl111_drm 0x1e739613 pl111_versatile_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x343ca812 rcar_cmm_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x6cba8881 rcar_cmm_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7fffffff rcar_cmm_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7fffffff rcar_cmm_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x524971f6 rcar_lvds_clk_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x63b59033 rcar_lvds_dual_link +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x7fffffff rcar_lvds_clk_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x7fffffff rcar_lvds_is_connected +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x01241f35 vop2_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x6805f99a vop_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x7fffffff rockchip_rgb_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x7fffffff rockchip_rgb_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x40fc3644 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x7fffffff ssd130x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x7fffffff ssd130x_shutdown +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 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 0x0c084484 ipu_dc_enable +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 0x11e48c1a ipu_fsu_link +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x13125bff ipu_idmac_get_current_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x134ecd2d ipu_idmac_channel_irq +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 0x13c338c9 ipu_cpmem_zero +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x15ec2ba5 ipu_di_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x15fcb6ff ipu_cpmem_set_format_passthrough +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x166ac380 ipu_ic_task_idma_init +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 0x1ae05407 ipu_set_csi_src_mux +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x1bed2564 ipu_prg_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x1cd2716a ipu_dump +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 0x21ce7d91 ipu_cpmem_set_yuv_planar_full +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 0x2b87e144 ipu_image_convert +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 0x2f2bbf9c ipu_cpmem_set_resolution +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x2f67eeef ipu_di_get +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 0x35037115 ipu_prg_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x35fc7ac5 ipu_smfc_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x35fca29e ipu_cpmem_set_format_rgb +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x36d7f59b ipu_dc_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x375983a6 ipu_cpmem_set_fmt +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x39563159 ipu_cpmem_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x3a107155 ipu_idmac_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x3c47cb52 ipu_module_enable +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 0x42d3d500 ipu_image_convert_unprepare +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x487c0995 ipu_cpmem_set_yuv_interleaved +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4917f47a ipu_ic_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x492a422d ipu_csi_set_mipi_datatype +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 0x4a113261 ipu_prg_present +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4a44e07c ipu_cpmem_interlaced_scan +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4a8d0baa ipu_image_convert_sync +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4c179b49 ipu_dp_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4d05b2c8 ipu_srm_dp_update +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 0x55767280 ipu_vdi_set_motion +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x56036e5e ipu_image_convert_prepare +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x56d1f228 ipu_dp_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x576f610c ipu_dp_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x580d2f81 ipu_vdi_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x5875470e ipu_prg_channel_configure +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x58f18a8b 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 0x5febeadf ipu_cpmem_set_block_mode +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 0x662eecbe ipu_cpmem_set_stride +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x68ecfecf ipu_cpmem_set_uv_offset +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x6fccc763 ipu_set_ic_src_mux +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939 ipu_dc_put +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 0x74d8ba51 ipu_prg_channel_configure_pending +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x75cb5146 ipu_idmac_channel_busy +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_get_burstsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_axi_id +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_burstsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_high_priority +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_image +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_rotation +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_skip_odd_chroma_rows +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_init_interface +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_downsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_skip_smfc +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_test_generator +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_window +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dc_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dc_disable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dc_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_degrees_to_rot_mode +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_di_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_di_init_sync_panel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dmfc_config_wait4eot +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dmfc_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_set_global_alpha +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_set_window_pos +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_setup_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_fsu_unlink +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_get_num +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_task_graphics_init +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_task_init +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_buffer_is_ready +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_clear_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_disable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_enable_watermark +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_link +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_lock_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_select_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_set_double_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_unlink +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_wait_busy +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_map_irq +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_module_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_pixelformat_to_colorspace +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_prg_channel_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_prg_format_supported +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_map_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_set_field_order +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_setup +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x13648d1d gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15717e67 gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x158a8186 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x16dfb5ef greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x17880aa5 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x190f9a46 __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x19c8e4e0 __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x1fe4ddf4 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x207db51e gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x229dc911 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2da18d35 __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2f1b2263 gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x31b23e58 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x38d6d4c0 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3a89de9a greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3d3e6426 gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x425e7d33 gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4e78824a greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5420cad2 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x60f50030 gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7bfa420b __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7f8db02b gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/hid/hid 0x042e3f60 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x07130057 hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0c2ca7c7 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x176139a9 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19cb5aa3 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c4eae4f hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24f88cd4 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2973e4a9 __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x29ab32ad hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2b549333 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3048c63a hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x32459c09 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x45aefde8 hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4a6c0e26 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b3d71cb hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4d1c7499 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x521dd800 hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x568a107a hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56bfec1c hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f6ae809 hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x61fd715b hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x669082d1 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x69045b4b hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x691b8ed6 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a448ae2 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b80f426 hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0x73c12f3a hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0x740331cd hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x740784ea hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x75ccef4f hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidraw_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 0x7fffffff roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x2f4458c7 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x3872c5d4 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x43343cee roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x46cf23ee roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7ca8bc55 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7fffffff roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x00c32abe sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x088395f3 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x504d3ad5 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x52be3252 sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x5702f566 sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x59b159fe sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x3a5583ed vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x7fffffff vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x5b61dceb i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/uhid 0x19e90703 uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x46acb3f7 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7fffffff usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/clients/ssi_protocol 0x57060271 ssip_reset_event +EXPORT_SYMBOL_GPL drivers/hsi/clients/ssi_protocol 0x7fffffff ssip_slave_get_master +EXPORT_SYMBOL_GPL drivers/hsi/clients/ssi_protocol 0x7fffffff ssip_slave_running +EXPORT_SYMBOL_GPL drivers/hsi/clients/ssi_protocol 0x7fffffff ssip_slave_start_tx +EXPORT_SYMBOL_GPL drivers/hsi/clients/ssi_protocol 0x7fffffff ssip_slave_stop_tx +EXPORT_SYMBOL_GPL drivers/hsi/controllers/omap_ssi 0x7fffffff ssi_waketest +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0bc3a709 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0f43d75a hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x10f06758 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1226675e hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x18b85e33 hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x266cb0fb hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x538120db hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5bc42ccb hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x65fa3a57 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x7fffffff adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x7fffffff ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x7fffffff ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x1468d140 nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x18264eca nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x6f3ab87f nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x37e874cb intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x612e416c intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x6f5ec6b6 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x7fffffff intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x7fffffff intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x7fffffff intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x009d8ecc to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x164e808e stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x2c3ce5ca stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x45626c8e stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x4f2ce87a stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x64abbd0d stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7c3c8109 stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x48eb367e i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x34ce8ce1 i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7fffffff i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7fffffff i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7fffffff i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x632ce3b9 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x64867889 i2c_register_spd +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7fffffff i2c_free_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7fffffff i2c_new_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x05c9b053 i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0e2d1439 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1d1861d6 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2b1ee684 i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2fa741a9 i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3123f9d2 i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x34e5e2c2 i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x359894f7 i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3773e638 i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x53956ad9 i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x65897f67 i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6d4ec12f i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6d9a0e61 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x78a0940a i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x454a83cc devm_adi_axi_adc_conv_register +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x7fffffff adi_axi_adc_conv_priv +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 0x7fffffff iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x7fffffff iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x7fffffff iio_channel_cb_set_buffer_watermark +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x7fffffff iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x07e5a299 iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x0beb87ee iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x1d75a2a0 iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x73afffc5 iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7b93599b iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x7fffffff devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x28e3f6c5 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 0x3a00243f iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x7fffffff iio_hw_consumer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x7fffffff iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x704601be devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0x24c745d3 devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x7fffffff sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x06e08d45 cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x1e1dcad9 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x231b5dc1 cros_ec_sensors_push_data +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x25592f51 cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x3c379f13 cros_ec_sensors_core_register +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x698f1427 cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_capture +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x394a33df bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x768a4941 bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x7fffffff bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x2a10d26e fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x70b01a22 fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x7fffffff fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x0e6d45bc bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x7fffffff fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x515fb063 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x7fffffff inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x7fffffff inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x7fffffff inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x7fffffff inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0134f703 devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0c9185d2 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x13a9e325 iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x187554cf iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1b092ce1 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1ca8535f devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1fbb84ac iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x20ce344a iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2674ebc0 of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26d327c4 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f46d27 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2c05678d iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x319c2e22 __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3261815d devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x34e4005c iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x377aab19 iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bdf87fb devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4ede0aad iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x551bec8b devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5a6fcdeb iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x69dc95ed iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x71a10154 iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7411970c iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x78c5b6fc iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a41401b iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7ad18413 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c80895e __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c95f150 iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0x7fffffff ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x13a1577c rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x16553e8e rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x309fef4a rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x338b7cd9 rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3492a82f rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x75da926f rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x7fffffff input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x7fffffff matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7025617e adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7fffffff adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7fffffff adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x25a10248 rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x27936b48 rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x2e144571 __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x38cade05 rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3c36c233 rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x443e714c rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x64b5c6cc rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7051305b rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x010e5d01 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x1c2dbab4 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x48e1412f cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x02c03581 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x7fffffff cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x481bc5f2 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x7fffffff cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x391bbd07 tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x125758cb wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x45a31810 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6a41dba3 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x77ffc6f9 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x798ddc6c wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x7fffffff imx_icc_register +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x7fffffff imx_icc_unregister +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0b39b783 qcom_icc_bcm_voter_commit +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x2f573302 qcom_icc_bcm_voter_add +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x7fffffff of_bcm_voter_get +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x048c4cfb qcom_icc_rpmh_remove +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x42a3338c qcom_icc_pre_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_bcm_init +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_rpmh_probe +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_set +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_xlate_extended +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qcom_icc_rpm_smd_available +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qcom_icc_rpm_smd_send +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x0f7c9e2a free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x48b9ac87 find_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x4a42a414 reserve_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff __free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff alloc_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff alloc_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff free_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff init_iova_domain +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff iova_cache_put +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff iova_domain_init_rcaches +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff put_iova_domain +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x0ad9c1d6 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x6506dec3 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x74b3adcd ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7de3bb1a ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_get_device +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x0fcca9b5 led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x52e109bf devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x07fd9bcc devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x2d8209ea led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x7fffffff devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x7fffffff led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x7fffffff led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2814daf8 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x428471d2 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4dd2987e lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x58841fb8 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x709f1077 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7d5e9a6d lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7f5a1000 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x3bd45b0d ledtrig_audio_set +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x7fffffff 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/md/bcache/bcache 0x05907c93 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x07438a73 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x07e3ec16 __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0a62aea7 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1dacbbe1 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x25bbd6d5 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x30556300 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3079df16 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x31057c80 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x37eaf5e1 __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4dceb13a __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5a227cbf __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628aeadd __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6457cb54 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x664290b7 __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x67abbb76 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6be75591 __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x71388d39 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7267dab1 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x72a3de4b __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b6679bd __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x188bb7dd dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x31bf1d31 dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x35c915a7 dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x482f9f02 dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x60cae8bb 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 0x745ca179 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x753e20b2 dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x796a05ac dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7cb289d5 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_visit_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_deferred_set_add_work +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 0x3e708dd4 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0x7fffffff dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_forget +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_forget_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_dm_io_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_set_sector_offset +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_write_dirty_buffers_async +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 0x2def482f 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 0x62cd9195 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_complete +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_issue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_nr_demotions_queued +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_queue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x29b7ad29 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7fffffff 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 0x15856b06 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x17073a05 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1eae5d5b 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 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 0x7fffffff dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_region_context +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 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +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 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +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 0x46eff63a dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5475ba9e dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_is_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x02a62857 cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0e64d4a0 cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x1d32ecd0 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x25bc3623 cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2f36d9b3 cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x37a3e023 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3c4fce26 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x51985f4c cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x51a8568d cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6575a35f cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x669fdab3 cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x6e553855 cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7bba885c cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x065e2f09 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x631ab9f6 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6368117b saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7a0e74b3 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7e40a04b saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x3a2114a2 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x580eee89 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x68eded87 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x6d68b7be saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1e438f18 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e86dc7 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x50b058fc sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x537ae6d7 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x56b5c840 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6163930e smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7562cdaf sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_unregister_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 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 0x7fffffff tpg_calc_text_basep +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_free +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_g_color_order +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_g_interleaved_plane +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_pattern_strings +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_reset_source +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_set_font +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x003d9c5e vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x032bddda __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x0b829e13 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x12b94634 vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1b4196ce vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x222fffa4 vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2733f428 vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x28cc399e vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x32316168 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x39a314c1 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x47c6d392 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4f858906 vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x50c26f1d vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5dd42f71 vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5f9e9fbf __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x630ab4d8 vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x6928c54b vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x7fffffff vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x7fffffff vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x7a7a5d30 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x14aeb622 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x06267f01 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x09f21d53 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0aba2611 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0e49267a vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1ffd9634 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x24d6bffe vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x251f03b1 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x286b10f6 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x2b6c9002 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x31f52876 vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x47bfe248 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x47d6a25e vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4f47409e vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x536d5adf vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x65e253a6 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x73ac2654 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7c77e09f vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x5f7e30cc vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x208d7657 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x24b14557 dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x698e03f6 dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x3660d4e2 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x7fffffff cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x7fffffff gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x4abcd55b mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x7fffffff stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x26224a25 stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x023c2d2f tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x30594dd2 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x7c982506 ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x28f2f73b max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x2e67a78e max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x33350c51 max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x345daac7 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x6a58448a max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0d7efb88 media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2027ce7a media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x22226cc4 __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x242ece51 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x25c59810 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x26995bd3 __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x29d0b044 media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2a73a612 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2b85ee63 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2e4b6854 media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3a2e0f55 media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x41ff18f7 media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x49f6ac8b media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5064725b __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x506e48f5 media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5df7bb9e media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5e5cfb7b media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x65e5c897 media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x65e9f332 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x683fc32c media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6bdd7db9 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x743ebebb __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7cab5968 media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7d8003b1 media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7faae20e media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_put +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x5a60e2e9 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0ab4f99e mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x157bdc09 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x5939d694 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x677b9c59 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x72c7b0f0 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7c8f52cc mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x04f056f9 saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x134acc09 saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x156a35a7 saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x16edb143 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x19f5a50a saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x1dbd3e30 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2311a43e saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x284ee384 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x43277dc6 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x6a1b68fd saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7405fc87 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7f1087ee saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x245ea2c4 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x347a4a4a ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3df8694a ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x547a13ee ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5f84d0fe ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x5884e70e vpu_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x75f86ffd vpu_get_plat_device +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_ipi_register +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_ipi_send +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_load_firmware +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_wdt_reg_handler +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x3d858696 rcar_fcp_put +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x4ad5d888 rcar_fcp_enable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x5fe6f6e8 rcar_fcp_disable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x7fffffff rcar_fcp_get +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x7fffffff rcar_fcp_get_device +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x08056c60 vsp1_du_init +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x466f4522 vsp1_du_atomic_flush +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x4e2afce5 vsp1_du_unmap_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x5a23813b vsp1_du_setup_lif +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x5ae2c935 vsp1_du_map_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7fffffff vsp1_du_atomic_begin +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7fffffff vsp1_du_atomic_update +EXPORT_SYMBOL_GPL drivers/media/platform/ti/omap/omap-vout 0x085d8e48 omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/platform/ti/omap/omap-vout 0x0a59c11d omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/platform/ti/omap/omap-vout 0x0d615dfe omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/platform/ti/omap/omap-vout 0x3739df24 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/platform/ti/omap/omap-vout 0x6e8a3074 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x18af7fa4 xvip_cleanup_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x25a830de xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x43738fab xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x656d6c32 xvip_init_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_clr_and_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_get_format_by_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_get_format_by_fourcc +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_of_get_format +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x3c16a6b1 xvtc_generator_stop +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x47d7900b xvtc_generator_start +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x7fffffff xvtc_of_get +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x7fffffff xvtc_put +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7fffffff radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7fffffff radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x4a4bea56 si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7d95df9a si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7fffffff si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7fffffff si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7fffffff si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x11b81176 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x24b0bef6 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x28af3c3f rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4fa8b82a rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5abfac30 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x64eb483e rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7d570534 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x18f4c716 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x78fde0c0 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x7fffffff mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x7fffffff r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x26f31340 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x7fffffff tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x21820b4b tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x39615926 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x7fffffff tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x5dedc45f tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x7fffffff tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x02e8725c tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x7fffffff tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x7fffffff simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0154c6f3 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0414b74f cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0a983f24 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x29a43cd7 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x33bda150 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x56203e0c cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x71934033 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x736f9e0b cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x7fffffff mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x494352c0 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0c28da73 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2c4189d2 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x537ed3bf em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5f3f8204 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6d8bcbba em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x721f7cc7 em28xx_free_device +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7df1af03 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_boards +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2e32e8ba tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5322d312 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x1e560589 __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7968d391 __v4l2_async_nf_add_fwnode_remote +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff v4l2_async_nf_cleanup +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 0x7fffffff v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_dv_timings_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_find_dv_timings_cea861_vic +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_hdmi_rx_colorimetry +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_phys_addr_for_input +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x1bec2d59 v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x396d0877 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x7fffffff v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x0432c3db v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x24ff147a v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x280c1bba v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x2f52e4b1 v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x71b0fa8e v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7c5ecb75 v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x639ecc68 v4l2_h264_init_reflist_builder +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x6a1429ff v4l2_h264_build_p_ref_list +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x7fffffff v4l2_h264_build_b_ref_lists +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x4c847e31 v4l2_jpeg_parse_huffman_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x5e92a994 v4l2_jpeg_parse_scan_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_frame_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_quantization_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x02c0383e v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x09e5944d v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0dfbed7b v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x11af899a v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x22feba2c v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x26086197 v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x299a4497 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2af3f00e v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x32168acb v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3e445ddd v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4192db56 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x42e622a8 v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4dbaaedf v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x53c489cd v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x57873009 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5e30f79a v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5f5fc383 v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5f90a5ad v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x61ec60ac v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6658cf18 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6e9f71cd v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7227af5f 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 0x7e908655 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_unregister_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x4137d90c v4l2_vp9_adapt_coef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_adapt_noncoef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_default_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_fw_update_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_partition_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_uv_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_y_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_reset_frame_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_seg_feat_enabled +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0c5ee322 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x13110fd1 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x13d4c2fd videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1c1779f8 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x337bd052 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x346ec67b videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3bf54e67 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4860bc8c videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x55efa2fd videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7369d172 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x76c469ee videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x2108bb67 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x349468eb videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x3dbb75b4 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x53f593f2 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7fffffff videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x46ce06de videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x54d70a72 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x7fffffff videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0468cdae v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0a5a67fa v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x17bd8d75 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x180c8e2f v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1d6c662d v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1f1dd57d v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x20d53815 __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2256627c v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x29c50223 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2c52f3df v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2e7126a7 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ed9acd3 __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x30119606 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x30a998c5 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x410d4d32 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a4b93e9 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5401714d v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x58c53365 __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5d2f9f86 __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5f39889d v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x61fec7cd v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x628b2e71 v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x659837ad __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66c4a256 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x67a1526f v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6b59be3a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6b94c8ad v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ee676a5 v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f5ed23a __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6fff55cd v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7074dc52 v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x744c66d0 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7b78a4bf v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/memory/ti-emif-sram 0x49a8a623 ti_emif_get_mem_type +EXPORT_SYMBOL_GPL drivers/memory/ti-emif-sram 0x7fffffff ti_emif_copy_pm_function_table +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x2411c79c pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x5d885e20 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7fffffff pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7fffffff pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1d339c9c arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x217faf19 wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3665e027 wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x36eac8bb arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x62476e55 wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x6fc803c1 arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7b41b0f0 cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7f6d691d arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x4802aa02 atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x4a79d6c0 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x044a0afb da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x3fe27087 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x470e482d da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7837a8db da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0x7fffffff gsc_read +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0x7fffffff gsc_write +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0x7fffffff iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x29e43bef kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x354f4a7a kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x3a93f8cc kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x43710377 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x1ff78558 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x7fffffff lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x7fffffff lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x008f55b0 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4f047792 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x6a27f362 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x78331ccf lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7c7d2e9a lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x4918a041 lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x5e7749c2 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x7fffffff lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0ee1eb91 cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0eec37d1 cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x16349c21 cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x16394061 cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x21b587dc cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x21b85b9c cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x28af79c5 madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3c9370e9 cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3c9eaca9 cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4ccc3813 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4dd4f69d cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4dd92add cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5501812d cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x550c5d6d cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x62809ad0 cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x628d4690 cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x70f40ddb madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fa66de5 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fabb1a5 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x4deccc53 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0x7fffffff cpcap_sense_virq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0cdd2b1b pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2bd330ec pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2efa71e9 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3ee54989 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x58864380 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6629e139 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6f35a78b pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x70a2b4c9 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x77b006a5 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x23f945da pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7fffffff pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0671e267 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x17b406a5 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7fffffff pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7fffffff pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7fffffff pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x7fffffff devm_rave_sp_register_event_notifier +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x7fffffff rave_sp_exec +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x56d1a8c5 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x7fffffff retu_write +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x02f8ed15 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x079fc9e0 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x133fc3c0 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x151fab0f si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x18d3d0d6 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c13c321 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1dd0eb51 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2a3c840c si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2b63b28c si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2ba48973 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2f09f527 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2fe820f1 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x36f5a1ea si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x37171890 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x413c99ba si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4f13cdbf si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x57783af4 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x577a68d0 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x602b3bfe devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6459a8d7 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x687e6ee1 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6b165fcd si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7395ce68 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/ssbi 0x2b1bd9ff ssbi_write +EXPORT_SYMBOL_GPL drivers/mfd/ssbi 0x7fffffff ssbi_read +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x7fffffff stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x7fffffff stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x197e228d am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x1f6218f5 am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x2f9dabee am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x7fffffff am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x1fab22b3 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x57c42c59 tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x7fffffff tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x7fffffff ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x0a44f062 alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x4208564b alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x5eedb5b4 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x62a35b86 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x028870cd rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x08df9a95 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x0cb2a4f1 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1143f93b rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1fffbd18 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x25c93481 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2acb9a5f rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x372e954e rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x52bcd2f7 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x566292ae rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7a1d9a06 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7d4080c4 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7f472903 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x0b923f4d rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x1040dcff rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x1b282aac rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4ae353f2 rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4c7ff7f7 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x57796135 rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x34295572 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x44448d66 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7fffffff cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7fffffff cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x0b008db0 oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x296a8983 oslec_update +EXPORT_SYMBOL_GPL drivers/misc/echo/echo 0x3115970d oslec_create +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 0x7fffffff 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 0x7fffffff eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_readb +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5c2e2802 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7f72cc5e enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2fe6733e lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x46afd34e lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x7fffffff devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7fffffff st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7fffffff st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x048b5eb9 uacce_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x573e18fd uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x7fffffff uacce_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x2907dcc7 dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x613c86f2 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x7fffffff dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x680f356f renesas_sdhi_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x7fffffff renesas_sdhi_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x0672dfa0 tmio_mmc_host_free +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x14ae1fbb tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x30df873a tmio_mmc_enable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x4426c1b9 tmio_mmc_host_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x65af5c4b tmio_mmc_disable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7bc71b3b tmio_mmc_host_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_do_data_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_runtime_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0a825cde channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0ef6ff35 most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x162728c4 most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x162d3302 most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x1860f6b2 most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x25c5c548 most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x3f5bf02f most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x5ad02502 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_submit_mbo +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x20920ba6 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7fffffff cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7fffffff cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x31e17342 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7fffffff cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7fffffff cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x53dfda43 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4fc68675 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7fffffff cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7fffffff cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x4e84c58e hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x7fffffff hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x300fda3b onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x7fffffff onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x2a2eeeef brcmnand_pm_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x4fdbe2bc brcmnand_probe +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x7fffffff brcmnand_remove +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x7fffffff denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x1786ddf6 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x40a6b46a spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x7fffffff spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x25006112 ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x313685e1 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38d43536 ubi_open_volume_nm +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 0x66011ab6 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7ea3a25b ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x08846d71 mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0e7ac962 mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x153bfadd mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x1d078acc mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x44241d35 mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x4a6b68fb mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x4e5ea3b1 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7f27f917 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x7fffffff arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x7fffffff devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x46339e64 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x4c395a43 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x5ec3fb10 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x6b04f674 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7fffffff free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7fffffff unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x0c8e25c9 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x14aaa68d safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x24cdb6e6 can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2796148c can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2a6f4e20 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2b323b7d register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x54056898 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x583f5426 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5e55cdb3 can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x60fb8d59 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x661adf46 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x675eaae3 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6c6809f7 can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7f508c42 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x36491493 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x6f3fa762 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x76b9e7d8 m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x1622fac9 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x51a397cc alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7ce665f0 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7fffffff register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0c782350 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x166281dd ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1bf6baab ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x26b9505a ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x4df72964 ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6826e0c2 ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6e1b75d2 ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7454fb50 ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0x7fffffff rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x0d2652cf rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x14d01575 rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x251a3af8 rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x6a4e026e rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x70ab9b29 rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/ethernet/8390/ax88796 0x7fffffff ax_NS8390_reinit +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x646ef776 arc_emac_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x7fffffff arc_emac_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x0ca3d17c enetc_mdio_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x3aed1484 enetc_mdio_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x5a30d2e4 enetc_hw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x7fffffff enetc_mdio_lock +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x01ff1d63 fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x223bd975 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2ee962a2 fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2fe80b50 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x4444a4ed fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x496a5468 fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x5d8f14da fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7d594d7f fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x02c0bc43 i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x7fffffff i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x54b458e8 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x57181f55 ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x6a1bf200 ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7d4f77c2 ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7fffffff ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01929fdf __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0290b44d mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x029dd630 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03a6922a mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0434c902 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05b64dfe mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x061a1e90 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08c0f80a mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x098e0052 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d531416 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x11f8ae80 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12ce73be mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15806f39 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15903eca mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1594157e mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x183b8b31 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18cbeca1 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19e68ff5 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b66bb0f mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1dbece2a mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x222b2cda mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22d282a3 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24f10f22 mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26e82f8a mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29e37d74 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f669768 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x304e09e4 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x388de8d5 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b642b7e mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3bf12be5 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cc12d97 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cfcb70d mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d52930e mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49b2d196 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4beb6254 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52590c5a mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5374b48f mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53e401e8 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56152849 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b1bcec0 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bc6085c mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ea77fb4 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fa52c2d mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fc48d3a mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60d2accb mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x63740978 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6842e876 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69b1cca0 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6adee3db mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d549ee9 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6db7c46e mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6dfdd6cf mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e80a23d mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72866cce mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74622007 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78e81ee7 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78ea2c3b mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x794f9624 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79ef9cb4 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x002e6a8d mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x025dd1f1 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x102332cf mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x105678de mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x106e8756 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1135f1e9 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1187936a mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17501fd6 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20fc40d5 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x211b1c19 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x229f3f46 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26b45945 mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2b112e89 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e85757f mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x34b195e7 mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39dae0fc mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b86fda8 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3d18a427 mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3de0aa9d mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f5b93c3 mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a26bfef mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cdcf066 mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4f573562 mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51177214 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x540f87c9 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x54ea427d mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x597a8e1a mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x59c83c2d mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e2be3bc mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x614c9039 mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6612eec9 mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x681aa1ce mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b5d5f79 mlx5_query_nic_vport_min_inline +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 0x7f79c12b mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fd13c98 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x046b3c46 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x0766c876 ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x5cdff15f ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x7fffffff ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x2695f52f regmap_encx24j600_spi_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x40850188 devm_regmap_init_encx24j600 +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x4be2f862 regmap_encx24j600_spi_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x00fff640 ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x08dbe3dd __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1dc0860a ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x20b246d3 ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x262d1dc0 ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3f193d31 __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x45143e96 ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x46ae91b5 ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4e504266 ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x61ee4d82 ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x664650f2 ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7c16e2cd ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7e7520e8 ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_writel +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 0x1ca3408c stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x4c105780 stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x5b21eded stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x1751ed6b stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x3032433d stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x35c7e5d3 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x7ecf0f0d w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x7fffffff w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x7fffffff w5100_remove +EXPORT_SYMBOL_GPL drivers/net/geneve 0x7fffffff geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x089e1b4a ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x0fedb3f9 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7fffffff ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7fffffff ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7fffffff ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/macsec 0x0fa606e5 macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x533311d7 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x67fd070d macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x772d1ab6 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7fffffff macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0x7fffffff mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x56881cf8 mdio_mux_init +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x4c9565e9 net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x7e10dc5b net_failover_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x0f79a6d4 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x15907bfb xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x280a1272 xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x5873d522 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00950363 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x013c9072 bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x04e7cfa4 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x27d55693 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x38b35874 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x394ea471 bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3c191503 bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x46c3ffc3 bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x499239ed bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4fd8d817 __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x51790f76 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x53e30887 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x59645883 bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5c17fc21 __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5c54d391 __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5c6533ce bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x65983427 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6ceefb63 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7b148661 bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x10fbeb9a phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x1d2e6562 phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x29f9de4b phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x62104126 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6fa426d2 phylink_ethtool_nway_reset +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x76e2397f phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_destroy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_disconnect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_ethtool_get_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_init_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_decode_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_start +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_stop +EXPORT_SYMBOL_GPL drivers/net/tap 0x14d2716e tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/tap 0x16b0e302 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x240dd86b tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x5baa9ad3 tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0x620a5f94 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x7c272d10 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x09ba1c00 usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x4b17c038 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x03d2af38 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1e76cdf7 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2ce60190 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x54a82348 cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x70b54c40 cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0x7fffffff rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x12726d64 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1ddae444 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3f82a454 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x43659c43 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5ad31a21 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6d1b2365 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0097059b usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01f225df usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x040b432e usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08082cef usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x213feb35 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23f170c5 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c9c66ef usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f9d6a8b usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3026194e usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x407d1ea8 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x41e1860a usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a965b05 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51a8b45c usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5789408b usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5a8443c1 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6b4938fa usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7a4465b5 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c5dcdd4 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x3d3c2205 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x42e53626 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x4e590d6b vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x4fde4737 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x19f8d76d _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x327e628f il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6912b416 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b492a62 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1fa1ad32 iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x243d9b03 iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x0385d873 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x31aad1d7 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x416c6af5 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x466573ef p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x50dc7718 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x6939f6c3 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x039d4096 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x23b9dba3 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x36a8876f lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x51bd560b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x56635568 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x59595224 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7033a78a lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x123eaf77 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x2cf4cbe6 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x22776c26 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x2a5f11e8 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x2e50c44a mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3d534126 mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x486c6c86 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x55a8a198 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5dc4a5c9 mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x655857e7 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x75ce3c48 mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7a21406f mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7ba45c74 mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7d25af97 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_alloc_dma_align_buf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0a67c16e mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0c185fac mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0cdf6316 mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1646beb5 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1b0c4ce8 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e6ba6df mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1fa14848 mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x220d839d mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2544f793 mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x255a98c9 mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x28ded123 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x290fb5d7 __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x30972e64 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x34554b31 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x383bd0f1 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x38b30b83 mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x38d72302 mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3a2bd65b mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3ad7c076 mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3c3e9795 mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4067f4c3 mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4098f65a mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x41387653 __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x463d6926 mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x46778f9f mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d5bb0c8 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x53379663 mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x54260749 mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x54c3826f mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x54f35e2a __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x592b8405 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5c9c3186 mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5e03ffa7 mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5ed2c7b0 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5ed6dff1 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x61086881 mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x624e4afd mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x67d7bd48 mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6a092896 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6f99e227 mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x72181ad3 mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7b5f0984 mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7c4d8d3f mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7ec4a061 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7f3034d2 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x003f892e mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x057cca90 mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x06a633bf mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x077852d6 mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0a40af96 mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0a8b09ec mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0a930d35 mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0be3d5e6 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0efd1c54 __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0f7310d0 mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1aea8648 mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x25fc8a61 mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x26cd1281 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x26d63b3c mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x301bf3dd mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3029b659 mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x30848a8d mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x31354263 mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x346b0184 mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x34a964f0 mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x363ba2f2 mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3f9b515e mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3f9e895a mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4185373a mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x4b4af564 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x534258df mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x53453464 mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x568905b0 mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5f45576b mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x640bce25 mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6e7906f6 mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x753cc76c mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7f9dbbcb mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1dd0bf37 mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1ee09fab mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x0cb3af42 __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x64566b4c mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x658b2fb0 ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x677d5295 mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x78d2d587 mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x07be5c4f mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x22c84f14 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x27c66f04 mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2b0299ad mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2da644ee mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2e476430 mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x36cb4e00 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x39edece0 mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3d5150b4 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x519a6fb6 mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x6236d680 mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x664a0230 mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x6b409e39 __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7286d948 mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x6e29a0b0 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x04e70f62 mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x333fd2aa mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x33e8d179 mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7fffffff mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x157c2ab7 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x1efff16a mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x2df96136 mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x4f7dc1cd mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x5324693e mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff 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 0x075a48a1 mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x09dfc1f8 mt76x02_phy_set_bw +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 0x0d5cc507 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x18ccfe01 mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1cbef720 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1cc27a4a mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e0891bf mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1fe03934 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x20242176 mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x202722ad mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2cf2c625 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e3beb78 mt76x02_bss_info_changed +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 0x3a892dad mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3ee75b5c mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x40ba237d mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x421eaa0e mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x45b0d7f9 mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x49c394c7 mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4c5e9812 mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4cb0e0a0 mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4df151bb mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4f5a3f33 mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x50e6d317 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x51485ade mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x56c93900 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5912312b mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bee2c58 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5c488e4d mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5c849115 mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x60d2703b mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x702f7bc3 mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75977654 mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x77fe8484 mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7bdc82ea mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7d57109a mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x07c4c4de mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x35a91f71 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1e8df250 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x2320c1b1 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x28b872df mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5d2663f1 mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x609b40bc mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x67bac9f9 mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6dd50dec mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7a968d5c mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0b8a1e54 mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0d220f77 __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x12cb0ed8 mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1fa55c2d mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2e2e62a1 mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x38dab492 mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x444017d5 mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x54005b64 mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x55af75e7 mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5b559c66 mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5c4952c2 mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7e55c10d mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7e9c8498 mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x3f94cf26 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x50437884 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x55f99d83 wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x584810ec wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2a1af2da 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 0x5c6b4896 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7fffffff qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7fffffff qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7fffffff qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7fffffff qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x00520881 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x088f9989 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x095c8b8b rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x12289c15 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x12d2429d rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x15db89a0 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3012dd6e rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3f285e8b rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x41ae66e9 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x429a8003 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4acfc100 rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x52b6dfc8 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x54dae05d rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x640f32c6 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x68e3dadb rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6b9ead8f rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6dfd66e8 rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7005257d rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7485940f rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x75889010 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x76adeb84 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x76cf8d9c rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x79d5aec2 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7df1da5f rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x07c9ae92 rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x24c66aa4 rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3503def4 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x40d29f2b rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x4a735813 rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x6022d0d8 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x610709bc rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x73c9e73c rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x74a19ed1 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7f52d22b rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x017e763b rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1ac5ab03 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2312c052 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x290fb818 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2dd35c83 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x36511872 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x36624937 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x38242f68 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3b40c12c rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4087125f rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x45dd8b59 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4811df14 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x48c00a27 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4eb8bbd3 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x51b144d9 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5e49dcb9 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x625aae22 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x646adb91 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6ae1d69c rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x75ba5a92 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7d81c3ff rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x2c89df24 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7fffffff rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7fffffff rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7fffffff rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7fffffff rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x50ef24e1 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x7fffffff rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x7fffffff rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x1f14ed20 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x29639b4a rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x46975d01 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x61c7acbd rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x6bc646ca rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x779ce763 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7d88068b rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x31c1674c rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x31d6327a rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x35ef046b rtl8723_phy_txpwr_idx_to_dbm +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 0x3ffc42ee rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4666a80e rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x539567e2 rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5a08a3e6 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5aec0983 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x63a0cfaa rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x682a9680 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7c3a38f0 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7e66dd14 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x00a39d5a rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x016b824b rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0ea0c62b rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2921a4d4 rtl_btc_status_false +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x29b96918 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2a2830f2 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2cb48ecd rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9 rtl_fill_dummy +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x375a0ac0 rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37b993b4 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x395160bf rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4742663a rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x531caf8a rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x78bee40a rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x79436f7c rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7d6731d0 rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x454d3d0f rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7283c7e9 rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x28012098 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x44ee9c2c cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x4f18e81b cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x7fffffff cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x1b3d8aa6 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x52acbfc4 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7fffffff 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 0x0d9f27cb wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x130da6cd wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x13b5cd31 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15094df8 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15f2d422 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15f73923 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1afdeb6b wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x240ff5df wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x28d7406a wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3517fe17 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x395bcfe9 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3d9f7043 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4654c013 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4d0b8440 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4e7e1e95 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x52dd7050 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x60d59c09 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x68644cb6 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x69752602 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6da0a8c3 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x734a74be wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7354bdbd wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x74040955 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x3333c4e3 nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x50916d3a nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7fffffff nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7fffffff nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x09b4ee88 pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x2f301ff2 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x37851551 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x648922d4 pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x1070fb2c st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x53bbe206 st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x68a3f57f st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x3c999200 st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x454ec88a st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x7fffffff st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x06f94cee ntb_transport_create_queue +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 0x548fd6a7 ntb_transport_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x679d4352 ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x017e7aa6 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x07b875e3 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0c8314b3 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0cafa63c nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0cdcc361 nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x12165932 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1713d0ac nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x17bf7c63 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x21d7b72c nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x24f87f0d nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x315bebfc nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3221a4a8 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3dc4a76b nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4057028e nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x409e2d13 __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x44957c98 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x48d94706 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4a51ddc7 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x50cebb40 nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x594fdf1a nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x633f8c29 nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x69443f56 nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6cdf3266 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6e8b6389 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x77daa5d9 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x77fc6a1e nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_delete_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x04d69f7f nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x0e1f31fe nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x0e336bd7 nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x0f3da65e nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x597c19ac nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x60425f6e nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7a16bced nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7b42443c nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x0d12e564 nvme_fc_register_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x27581377 nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3884f8b8 nvme_fc_unregister_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3e33ac54 nvme_fc_rescan_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x6fc23522 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x0245422f nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x03dbb313 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x17fc6a24 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x286b857f nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x6a2b768e nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x703a5a01 nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7c256e4a nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0e3c043d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x55422b47 nvmet_fc_register_targetport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7fffffff nvmet_fc_rcv_fcp_abort +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7fffffff nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7fffffff nvmet_fc_unregister_targetport +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x7fffffff switchtec_class +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x1f9d9052 tegra_xusb_padctl_get_usb3_companion +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x29e40532 tegra_xusb_padctl_get +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x314c0df9 tegra_xusb_padctl_disable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x468cba26 tegra_xusb_padctl_hsic_set_idle +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x5f8f9751 tegra_xusb_padctl_remote_wake_detected +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x62eb8362 tegra_xusb_padctl_usb3_set_lfps_detect +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x71bd49a3 tegra_xusb_padctl_put +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x72dd3253 tegra124_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_phy_xusb_utmi_port_reset +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_disable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_enable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_enable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_set_vbus_override +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_usb3_save_context +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x7fffffff omap_control_pcie_pcs +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x7fffffff omap_control_phy_power +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x7fffffff omap_control_usb_set_mode +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-usb2 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x1a3b87a4 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7fffffff mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7fffffff mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x3ced4cb6 lpi_pinctrl_probe +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x7fffffff lpi_pinctrl_remove +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x73183684 cros_ec_sensorhub_unregister_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x7fffffff cros_ec_sensorhub_register_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x6b1be500 cros_usbpd_unregister_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x7fffffff cros_usbpd_register_notify +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x091e4851 reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x1bb2034d reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x46eefd97 devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x7fffffff devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x0fda5f32 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x19d88ac5 bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x7fffffff bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x4e894f5a pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x6076272a pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x78c6b77f pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x0d64d903 ptp_qoriq_adjtime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2eae82b0 ptp_qoriq_isr +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x4f651398 ptp_qoriq_settime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7a6a6bb8 ptp_qoriq_gettime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff extts_clean_up +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_adjfine +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_enable +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_free +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_init +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2e4a42ff mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x759c3888 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7d03cd63 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x7fffffff rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x34ddc78f wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x401f5240 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x587c425e wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x7fffffff wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x2eb8285d scp_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x3f978736 scp_put +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x53c28209 scp_get_device +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x72d76d5d scp_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get_rproc +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x0210287a scp_ipi_lock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x09313652 scp_memcpy_aligned +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x47b4c38f scp_ipi_unregister +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x6fd7455d scp_ipi_unlock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x7fffffff scp_ipi_register +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x7fffffff scp_ipi_send +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x0fa538df qcom_register_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x2d76dff0 qcom_add_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x509d8e48 qcom_remove_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fb17bd3 qcom_remove_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_add_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_add_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_minidump +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_register_dump_segments +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_remove_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_unregister_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_pil_info 0x7fffffff qcom_pil_info_store +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x05eda930 qcom_q6v5_unprepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_deinit +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_init +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_panic +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_prepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_request_stop +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_wait_for_start +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x1482d168 qcom_sysmon_shutdown_acked +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x2f6e02d1 qcom_add_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x7fffffff qcom_remove_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x7fffffff mtk_rpmsg_create_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x7fffffff mtk_rpmsg_destroy_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x72dd75d9 qcom_glink_smem_unregister +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x7fffffff qcom_glink_smem_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0484c167 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x05c54e1f cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x096e5e5d cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b58b4f8 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x19b65999 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x25b3be44 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2e49887a cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x376589d5 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x395ba8e5 cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3f58491a cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4b99ab5e cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x52aa7182 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5cbb1080 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x61bb1d1b cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77f6c092 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c23c846 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7c2cfeb7 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x04c2f438 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0c0ecb24 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1f07da58 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x25987100 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x315d3b14 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3d617ce7 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x41fde8c3 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4be56682 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4eea6931 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7bc4ba80 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7dd6a439 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7f59b19d fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x52e90580 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x7fffffff fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x10521a45 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x56252b43 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x62726352 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x701b198b fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ab41449 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c1445cb iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f556cf7 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x24166c6d iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26730f7a iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26beb670 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3751e782 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d321a69 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f4f2a91 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4355920e __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ce457ff iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x506f96dd iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53000dee iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5686af05 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x592b4def iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x630989b8 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x746175d3 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x79477c78 iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c8b252f iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f34aa5b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x03e10e53 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x076f1033 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0f09df6a iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x14b015d4 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3779e677 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x40693f55 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49197adc iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x66062488 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7471f671 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7645bc2f iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0d0826b1 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14f5cdc4 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x15c711d3 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1b30553d sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24674985 sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2506e558 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x286d675c sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2a42da3c sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31b48373 sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x384a0a6e sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3da49816 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3dacfde5 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x43876689 sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x44d07478 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x44e9482a sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4abfbaae sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e027bb2 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x78d60228 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fda8f5a sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0x289a83ed fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x028b6f61 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07b79a0c iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1069277d iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1231229f iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x172e5cba __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x17770c11 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a2927cd iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24d378df iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a8527a3 __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x338f0d3f __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x34b290ac iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36318ff9 __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3c58876e iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3e36dc46 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ffe79b3 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57a834ce __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5941a1e4 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5aca8c47 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5cc8df93 iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60ba5f4e iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x670ff2d9 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ae38436 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70dac069 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7138c9c2 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x72026d36 iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76dcec42 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b6074fb iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b9fcff1 iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ced5abd __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fcad453 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3c00dcbc sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x735e9916 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7fffffff sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7fffffff sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x7fffffff spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x7fffffff spi_populate_tag_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x7fffffff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1902178a srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x48563e4b srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x62ccef9c srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7243f5a2 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7fffffff srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7fffffff srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7fffffff srp_rport_add +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x286d3a31 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x49b7ac85 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x6503b718 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_master_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x01df2730 slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x070c9fec of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x08a18a8f slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x0ed7681b slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x0f67f291 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1150aec2 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x16175300 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1d442d62 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3952beec slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3c5dcff4 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x42448132 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4621c9c4 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4ea40120 slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x62865ca2 slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x70028ae8 slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_writeb +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 0x7fffffff meson_canvas_free +EXPORT_SYMBOL_GPL drivers/soc/amlogic/meson-canvas 0x7fffffff meson_canvas_get +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x104d5bf5 gpr_alloc_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x27bd2a13 __apr_driver_register +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x4e20fb74 gpr_free_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff apr_driver_unregister +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff apr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff aprbus +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_send_port_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x06285798 llcc_slice_deactivate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x09afc16e llcc_slice_activate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x14f99b76 llcc_get_slice_id +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x2027e82d llcc_slice_getd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x62ff6e92 llcc_slice_putd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x7fffffff llcc_get_slice_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x39aeaa9a qcom_mdt_read_metadata +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x45e1cd7c qcom_mdt_get_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x7fffffff qcom_mdt_load +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x7fffffff qcom_mdt_load_no_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x7fffffff qcom_mdt_pas_init +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x531b2f76 sdw_bus_type +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x7fffffff __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x7fffffff sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x3b5941d1 altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x7fffffff altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x0cfb7e3e spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5f307079 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x767231ca spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7877077b spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fffffff spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fffffff spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x31fc7992 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x7fffffff spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x7fffffff spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x2216063e spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x375adbca spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5547afa3 spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x64d4c3dc spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x67c406de __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x55e53864 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x035a4331 anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x1c35e32b anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x21531bcf anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x249ee612 anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x2db628b9 anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x424f6a5c anybuss_send_ext +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x4517aef9 anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x5c8b5a43 anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x66c823c5 anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_host_common_remove +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x03bba3dd fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x6bd1c3d8 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x7fffffff fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x7fffffff fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x0c4dd3f8 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x2b9d7f9b gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x2f06f9d6 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x5c8a8ecd gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x6c4b4c93 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x0835058f gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1625de8a gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x248cd97c gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x3a03ed7c gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x5e75fbb8 gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x793ebf2f gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x79a8b918 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_set_rx_data_size +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 0x7855ae31 gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x79eef2f8 gb_audio_manager_dump_all +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x7fffffff gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x7fffffff gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x10509833 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x7e79f585 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x35ac2ab6 gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x7fffffff gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x7fffffff adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x0b9375fc imx_media_find_subdev_by_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x0c023646 imx_media_add_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x128d370d imx_media_free_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1c2ff7b9 imx_media_capture_device_error +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1cc4de65 imx_media_capture_device_remove +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1dc03c42 imx_media_pipeline_csi2_channel +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2b7b71f2 imx_media_capture_device_next_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2c550764 imx_media_add_of_subdevs +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2de05a8b imx_media_pipeline_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3afc4948 imx_media_find_pixel_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3cf67e49 imx_media_capture_device_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x4ea40533 imx_media_capture_device_unregister +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x534ba9e1 imx_media_find_mbus_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x79ca0a0f imx_media_dev_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7f0fa23d imx_media_of_add_csi +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_alloc_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_capture_device_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_dev_notifier_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_enum_mbus_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_enum_pixel_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_find_subdev_by_devname +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_get_pad_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_grp_id_to_sd_name +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_init_cfg +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_init_mbus_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_mbus_fmt_to_pix_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_pipeline_pad +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_pipeline_set_stream +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_pipeline_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_probe_complete +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_try_colorimetry +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0166938d amvdec_add_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0ab46fac codec_hevc_fill_mmu_map +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0bbd2e39 codec_hevc_setup_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x115655e9 amvdec_am21c_body_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1756ad9e amvdec_write_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1cb1e6d9 amvdec_am21c_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x237ccfaa amvdec_write_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x35b97acb amvdec_remove_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x46f6e8ed codec_hevc_free_fbc_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x4d1162cd amvdec_dst_buf_done +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x5ff35ee8 amvdec_am21c_head_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x67a418ee amvdec_dst_buf_done_offset +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x695d6f46 amvdec_set_par_from_dar +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_abort +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_clear_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_dst_buf_done_idx +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_get_output_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_read_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_read_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_set_canvases +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_src_change +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_write_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff codec_hevc_free_mmu_headers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff codec_hevc_setup_decode_head +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x3739d04f nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x7fffffff nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x7fffffff nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x2d2ddac5 target_submit +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7cb468f9 target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7fffffff target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7fffffff target_submit_prep +EXPORT_SYMBOL_GPL drivers/tee/tee 0x05c670b2 tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0d3be52e tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/tee/tee 0x11743135 tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0x20df8a36 tee_client_close_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x285fac48 tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x3ee5fa74 tee_shm_alloc_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x47ef44ed tee_shm_alloc_priv_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x52ee5e5f tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x6e63c079 tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0x79e77f41 teedev_open +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7d5c609b tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7df88971 tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_session_calc_client_uuid +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_register_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff teedev_close_context +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x084f6ee3 __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0d2e96c2 tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x12fcaa07 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x21a31526 tb_unregister_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2704b192 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2c2c688b tb_xdomain_alloc_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2c5b79b5 tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x2f304d5a tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x36521060 tb_register_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3a28ce90 tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3e6e7265 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3eb7c101 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4e415e45 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x603249ed tb_unregister_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x60e34d1b tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x64b2ed36 tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x658e3d97 tb_property_add_immediate +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6ceee74b tb_property_remove +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6e1e37ed tb_xdomain_alloc_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x70e8edb7 tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x78de6f01 tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_find +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_register_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x0b3c1394 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1765cf19 ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x181ab7af ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x22886d9d ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x39e73593 ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3a659173 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x48f0c819 ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4ba4402a ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x56a87434 ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x63a2aa69 ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x713fd7c1 ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x72f82e8e ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x748a415f ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7f5d6d0e ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x3b2d33ba ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x7fffffff ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x7fffffff ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/uio/uio 0x2d404119 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x352271a3 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7fffffff __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7fffffff uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7fffffff usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7fffffff usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x22d5c8bc cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x253b4dd1 cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x50a4ed38 cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x603baebd cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x6047947e cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x64ea6fb7 cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x69090858 cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x26748289 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x287de714 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x7d8792cc ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x7fffffff hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x0b2039ae imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x6cfdac4f imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_hsic_set_clk +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_set_wakeup +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x47ab0369 ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7f7a32c2 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x13b83be3 g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x37784fa4 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x49be9ba4 u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4ee178a3 g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x53f9b56b u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x5bcb7710 u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x71fc01f3 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7938a91d u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7df9591b u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x1ccfc15b gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x1d721ae5 gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x29dabbf7 gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x379c670d gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x623c7f0e gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x6f287da4 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7ad2f0d8 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x0ac4791b gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bd476a gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x43690ef9 gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x629ed775 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x77dbf841 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x12772b85 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x41cafcf0 ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x5cb2d755 ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x028f8d2f fsg_lun_fsync_sub +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 0x1bd875eb fsg_show_nofua +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 0x2d4b7673 fsg_show_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x379de988 fsg_store_removable +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 0x552d9ce0 fsg_store_nofua +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 0x62e1ee07 fsg_store_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 0x6e507b9e fsg_show_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7588065a 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 0x7fffffff fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_fs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_fs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_hs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_hs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_intf_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_lun_close +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_cdrom +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_ss_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff store_cdrom_address +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x0334da71 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x0951efa7 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x1eaa995c rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x2d8cdc85 rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x3c6d6180 rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x706dec5c rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x78d36716 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x13ecc87d usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1a28244f usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1cc7ec63 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x22e613a3 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x292387c4 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2d39badc usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2ed2db99 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x342a1aaf usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3902c14a usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3d56cf38 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x476fc0ee config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x494824bb usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x59afdd41 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x62e183f2 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6c5ef66a usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6c7f0bfc usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x77367ba8 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x79abd9e2 config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x02a614f7 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x0e98b847 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x17aa8af7 init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x47643608 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x55c4d934 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 0x7fffffff empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x7fffffff udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x7fffffff udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x7fffffff udc_probe +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0x7fffffff renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x18aefb25 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x7fffffff ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x132cdf25 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2352ae2a usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3a5f867f usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x53a84001 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x542705c4 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6f731b0b usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-am335x-control 0x62d95a83 am335x_get_phy_control +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x0626a427 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x36f1fc4b tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x64b7a93f tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x7fffffff tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x7fffffff tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x0ab71243 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x31d9e615 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x358e0585 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x38c0242d usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41aa0ede usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58376b93 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5c91afcc usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x655579d1 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7374848e usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x749a110a usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7aa1d1c0 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x167a4dd5 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x7fffffff dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_cc_change +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_pd_hard_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_pd_receive +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_vbus_change +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x028292e5 typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x08513e43 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0ae4522b typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x100fc534 typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x11b8c3bf typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1631d8c6 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1b88a37d typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x22309d40 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2a1c5710 typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2dfd7c33 fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x31115a06 typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3ab6c7b9 typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3d0351f4 typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x407157b4 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x462dfe4c typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x46375308 typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x46992395 typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x46e4ffc6 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x47bb9c5b typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4e7a6b62 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x513e02a9 fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x525e015b typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x57bb3c7d typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x58cf7dc1 typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5b4bf439 typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5c411a43 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5c6522e5 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5e63ce18 typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5f67b72f typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x602ecffd typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x66b94a40 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7064a544 typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x72bc0403 typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x73efca55 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7b721e3e typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x10da68a7 ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x28bad4aa ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x3133b97c ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x36954cdd ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x3b1bc411 ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x78ef841d ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7cd0f52b ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fffffff ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fffffff ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x016dd819 usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x52591c78 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x5bc2c69a usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x1b1c30ce _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x3b84dea0 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x467aae72 vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x569ee59b vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x6bdd8363 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x71188e15 vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0x1c0b6a28 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x7fffffff mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0690255f vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0814e012 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0c7c8e48 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2674a587 vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3c990e77 vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4416e969 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x54288073 vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x5ec40c2c vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7a4d94d0 vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7d6cfcd9 vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_mmap +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x326bb70b vfio_platform_unregister_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x380ca20c vfio_platform_probe_common +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x7fffffff __vfio_platform_register_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x7fffffff vfio_platform_remove_common +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x269114a0 vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x7fffffff vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x08d5dc10 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1390705b vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1ae0d9c7 vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1f616e49 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2a38c808 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x30cdc4e8 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x34659a6e vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x35f8892f vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3acd83a8 vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x54d7f911 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x63b792a6 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x64fb4c60 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6eea8e33 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f2e56dc vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x706666aa vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7a659628 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7d8c9d79 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fabbc04 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x54e722b9 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5f0dad25 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x66d299a5 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7799e67f ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x7fffffff fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x1bdf79c8 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x7fffffff fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x0e145a07 omapdss_of_get_next_endpoint +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x33cfd253 omapdss_of_get_next_port +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3641ea94 omapdss_of_find_source_for_first_ep +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7aa055fe omapdss_of_get_first_endpoint +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x48614c88 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x50e58836 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x1c0519f4 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x403448a0 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4b62826c dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x647d6170 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x21a9eb3a nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x26c81e1a nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7cf77ab1 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff nlmclnt_proc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x051f58c9 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05e6fd86 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x060a0893 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ba15c1a nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c8f05a3 __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12ba39f1 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15a73b96 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15b4d0e0 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x171ba145 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x17aac49f nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x184ee024 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x195da6cc nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c2bebe4 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c91a729 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1dc0fc85 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20048d98 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25f33243 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x266efed9 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27b699e2 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29d865ae nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cb995bd __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2dcbc1f4 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3028c936 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31e7914f __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34d76f39 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37de07f6 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f392e38 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3fdbc031 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40739385 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x427a7e27 nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43ca4fd7 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x441e9d34 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x443c1e6e nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x443e1e63 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x443fcb43 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46ca5a16 nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x473293a6 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4791105d nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b03b213 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b35d16f nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b737fce register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ea8a51a nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50a2b09d nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5241ef92 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x54983594 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x571a9675 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59032938 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5956d18e nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5cf4ccd0 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e817407 nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ee68bed nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x602b9759 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6077108d nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61551077 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61d49a56 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x635691e9 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6539ffcd nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66c5ba72 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66f11e2c nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67b1947a nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x69bcdc17 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a6cfcf6 nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6bed2926 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ddbc597 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x700ec82b __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71ec5753 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x722a8cb8 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x741ca5a6 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x74510777 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75f4fa24 nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x798f4d26 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7bf513e7 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c82331c nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x25fa95f5 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x022fa308 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x07df97fb pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09f1cddd pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0e900939 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ef4545c __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1814fb86 pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1933c750 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x19a172ae __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1aa53e2d pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x20c312f1 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x20d3056b pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x20e2171c nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x245b829b nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x251ec6bd pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x294ed4d0 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2b376fd3 nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2e79bf5b __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x375aa5b2 __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3abcf142 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3c7f47ec pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3fba81ab nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x403d3e83 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x446b9b73 __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4543e9b0 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4a0b88d1 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4fadf75e nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x57721e03 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x57a901a3 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x57eaf37f nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a5b9a83 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ca3ae2b __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x600cb620 pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x687228fb __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6aa5d93f pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x71416811 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7394e091 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x746f4bc0 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7740afc7 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x775513e0 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x78db4817 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7c8964f7 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7d3ee63e nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7d979567 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7dc01b58 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7f0d46b6 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ff40cbe __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x49a50344 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7fffffff locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7fffffff locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x138ae87b nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x5c2a5138 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7c409081 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7fffffff nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x51476f29 nfsd4_ssc_init_umount_work +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 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 0x59e537fd o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5c66b14a o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x656d7f73 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7640a742 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_check_node_heartbeating_no_sem +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x13f48dc2 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1a1cb240 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x21620b15 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2f1197f9 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2fc4ce69 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x52b7091a dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x07c2b0b8 ocfs2_kset +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 0x7fffffff ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x7fffffff register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x7fffffff unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x5f1fab61 unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x7fffffff register_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0x7fffffff cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0x7fffffff cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x7fffffff cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x7fffffff cifs_md4_update +EXPORT_SYMBOL_GPL lib/842/842_compress 0x7fffffff sw842_compress +EXPORT_SYMBOL_GPL lib/842/842_decompress 0x7fffffff sw842_decompress +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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 0x7fffffff des3_ede_encrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des3_ede_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des_decrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x39e8fa4b poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x4a833012 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x7fffffff poly1305_init_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7fffffff notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7fffffff 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 0x39a7ce3a raid6_call +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x7fffffff lowpan_header_compress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x7fffffff lowpan_header_decompress +EXPORT_SYMBOL_GPL net/802/garp 0x4123881f garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x7247df92 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x7bfe28fe garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x4ed95a03 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x4f35ff1d mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x5581eb55 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x5d7cc9d1 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x7fffffff mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x7fffffff mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x7fffffff stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x7fffffff stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x676b84ae p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x7fffffff p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x7fffffff register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0x7fffffff unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x3d070c0c ax25_register_pid +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7fffffff ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7fffffff ax25_defaddr +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x213763d7 l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x4f4113db l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x6ee45c45 l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x70cdbacf l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fd5993a l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x7fffffff hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x01f6661b br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x25bc25b8 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2dc482e4 nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3162c70f br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x36f269a6 br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3f677ae7 br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4dff9b96 br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x50d73306 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x50e0551d br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6ba43de1 br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6d62a4e9 br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x755f307b br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x78b57bbc br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7ab26ccc br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/core/failover 0x396297c4 failover_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x51e993da failover_register +EXPORT_SYMBOL_GPL net/core/failover 0x626f82b6 failover_slave_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a705f87 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1b2ad980 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x225ecf1e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x267e6efd dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c0b366e dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3da38847 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x491e72b8 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cceb71e dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f88144d dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x528de6b1 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5fb6f3ed dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x66dfcf4c dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7002591e dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x01c0334c dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4f8ce1ad dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0429dd0d dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x222b657d dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x25ac1582 dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x286a1945 dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x43e973f4 dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5b93278d dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x66adcae8 dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x681bd124 dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7a0dd501 dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7e34f2c8 dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x1f9b6790 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x23e6d40c ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7fffffff ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7fffffff ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7fffffff ieee802154_max_payload +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 0x7fffffff ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x7fffffff ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0x7fffffff ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7fffffff esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7fffffff esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7fffffff esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/gre 0x57e35d54 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7fffffff gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x077ac1c0 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x63e2bbf5 inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x759d32de inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x2e9ea138 gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0c445ece ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x24775270 ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3b574bcf ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4f26d064 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6182c61f ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6f3ffb3f ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x71fd0433 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x75252bbd ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7e1a8acd ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x3b646154 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x7fffffff nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x7fffffff nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x028b688a nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x0f5b38cb nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7e7bf26a nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x0a1ad342 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x173e34da nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x7fffffff nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x7fffffff nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x76eef737 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x7fffffff nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x07c9318f tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2580108d tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x37acbfc1 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7b28eee7 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fffffff tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x49537fc2 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x63c40883 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x6ced0c0a udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x78e69aa2 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x1857c146 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x45c0d871 esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x7fffffff esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x32155f31 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x760e63d8 udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x7fffffff udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x022eb950 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x0aa52d1f nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x7fffffff nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x681c657e nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x270a95c1 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x4011455e nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x7fffffff nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x6bd361b7 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x7fffffff nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x7fffffff nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x7fffffff nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x7fffffff nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1c6dfbb3 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x20c4fae2 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2175fe50 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d9cb0c8 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x401957b5 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x40b4b4a9 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x42a25d94 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x56458b11 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x58f03296 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5c69137e l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x674cc5fd l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f9d1352 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x7fffffff l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x5b927928 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x081bd79f wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2127f670 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3a40b992 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x500336b1 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x554b2eee ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5b9047be ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5cbfd255 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x62b41990 ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x63ea21c9 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x336558cd mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x4abff80b mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff nla_put_labels +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x11b976bf ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x37b37646 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x40464b28 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4b019aee ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4ecc20a8 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x54c23d60 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5f28d880 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7d2f0ee7 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7e932f3f ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3204fdb3 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5f1dc7a3 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7fffffff unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x31572ebd nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x5aba9fda nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x078081ea nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0954a97f nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b1b5adb nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fca6e33 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x10e63b20 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13cfd568 nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15f8bc3a nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b9a264b nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ccaaaba nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f462ef2 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20a3c1c5 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2508cacc nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x258f6586 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2796865b nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28bddef2 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28eff409 nf_conntrack_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b11d169 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c033388 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cc424a5 nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ce80304 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2de4bab1 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36e018f0 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44c0cf5f __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x455f1c87 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x473e385d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48262a93 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ad49f50 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b80ccf1 nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c153170 nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ea258d2 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50902fcc nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x52fc216a nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5443e47c nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x565530c8 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x580b81e1 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d69d28a nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5ece7614 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fdfffd3 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x631ed8b2 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63fc6e89 nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65d2878a nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x670f8b6a nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x675add21 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a68f5b5 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c990b05 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6daa6941 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e2851e1 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x707de716 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7119a5de nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73a00904 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7517dfcd nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b669111 nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c5706f0 nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7fffffff nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x2343a41d nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x4858ac4b nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x03ff547b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x04131c3f set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x32bf00cf set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4294840c nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4be56f48 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x51d3c4f6 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x785b229b get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7ee26a4f nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2ca7b178 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4b367066 nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0abd0440 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x19e5c225 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x343adbe0 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x34d1a478 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f1a0e4b ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x735e1b1a nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x7fffffff nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x160a703b nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x3e6cd9e6 nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x6ccdf548 nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x02976482 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x139b0923 nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x17e958cc nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x1edcd93a nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x6efdd3c0 nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x75691ac8 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7994227e nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x173e5030 nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1b0c0db7 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x240696bd nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3327d763 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 0x491fc2f7 nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x54c3d3a9 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x66339d80 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1f099794 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x2b73b8a1 synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x36dad2e3 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x534f4bba synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x66825b71 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0a20403d nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0efc9c2d nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x15ad5b72 nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x295a29e3 nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2de60f2f nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3965eac0 nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3ac2d8bc nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41463258 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x48cc0bef nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x52888d6d nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x53245cde nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x58059f5f nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5e45d33f nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x619bf315 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x658b9c51 nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x65904052 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x72f31ac1 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x79e2340d nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7cf8573c nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x687bc89d nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6bc05d93 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x09a0c62b nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x5914eb18 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x7fffffff nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x7fffffff nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x7fffffff nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x7fffffff nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x1ce5af7a nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x6c9a6c14 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x6e085704 nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7fffffff nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7fffffff nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x035bf1e0 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1e0cef36 nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x32234b6e nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x7fffffff nft_reject_icmp_code +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x23e39800 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3f1ef70a xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x51e9896e xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54b14064 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x55b9f7d4 xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5e0608bd xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6086c59a xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x64023164 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6dcc08ba xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bce4603 xt_data_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_percpu_counter_free +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x11ffde86 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x2c21202f xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x76b64a03 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x7fffffff nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x7fffffff nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x0a0ce49d nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x1bf7160c nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x507dea8c nci_uart_unregister +EXPORT_SYMBOL_GPL net/nsh/nsh 0x14b49b97 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x5dab3fde nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x0c24465a ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x1ee97be2 ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x2f1da52d __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x5424f662 ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x5a4048ab ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x5bef8d09 ovs_netdev_link +EXPORT_SYMBOL_GPL net/psample/psample 0x01251b15 psample_group_take +EXPORT_SYMBOL_GPL net/psample/psample 0x444c3fc1 psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0x7fffffff psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x7fffffff psample_group_put +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x21d2e502 qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x39c68689 qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x6043e3c2 qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x7fffffff qrtr_ns_init +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x7fffffff qrtr_ns_remove +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x112b25a7 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0x124dc69e rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x1d3ecf6a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x1eaca99a rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x1eba1a75 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x1ef179fb rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x24de532b rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x299e0e99 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2db31e16 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x351abf5a rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x3e34dbff rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x4ca2e374 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x506e2f2b rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x571204a0 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 0x6016aaed rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x74a05f4a rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x7c63ec95 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_trans_unregister +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x7fffffff pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x7fffffff pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x7db7d103 taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x7fffffff taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/smc/smc 0x1422fb86 smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x1499a84e smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7208e8e9 smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x735437a9 smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0x73d69f57 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smcd_unregister_dev +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x38118670 gss_mech_register +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 0x4f059910 svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00d68b0b rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01a2c1a3 xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02007139 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x021a14c5 xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x023a2616 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03b973d6 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x044c3c8d rpc_create +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 0x0875eab7 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x087debe8 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x099a0289 svc_xprt_copy_addrs +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 0x0d007da8 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f03cdc0 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10e129c5 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11698ebd xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11905d5c rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e99e86 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13db6af0 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17198a79 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1807e7d1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1819b3d9 svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18b471be svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d8b5b85 svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e20121d write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f1b71bc rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f862289 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2044238a rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21291ac2 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21be743b rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25960690 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25a6f25d xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25bbec6c svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2816cffc rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x282036de xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x287f77c0 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a676737 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a9f5fa4 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ca0eb66 xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2da4336c svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2da8e1a8 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2df73580 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e8d1714 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32147bf5 svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x363d44a2 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37463e2a xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a0d56c read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38c1a478 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39c6fa68 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b18bc58 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b571e90 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b8c3522 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b947999 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bd7264e cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c1703da svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c7f99a9 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3caff7ef xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ecd24ed rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f26a624 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40569902 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40dc69df rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4235f8de svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x428e54b6 rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43ee2cdc __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4421e491 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45c71465 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46ea3d10 rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4862b3e3 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49fbdcfd xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a4bb3d9 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a6d0bd1 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d013da6 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d0ff7b6 rpc_clnt_show_stats +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 0x4ee45184 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5386c98e xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54864c44 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x549e72d6 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x573cb363 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x590f1262 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59603200 xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a1f949c rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d7f6aee rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de6c9ef svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e35d5af xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e962cfb rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60c75a40 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60ca9fc7 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6130ca62 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61eb3c9e cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x634e9525 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65ce6192 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66a24360 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67936da0 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67aec737 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68e41499 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68fa8738 xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690b12f5 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x699b7435 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a266164 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a8a1421 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6af30269 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b59d02d sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d422e0f svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ee39b20 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f1e91a7 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70001a30 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70b33268 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70c92425 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7309ae57 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74271047 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74777148 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74c188ee rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76310508 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77bd0196 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77cc60ff svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_write_space +EXPORT_SYMBOL_GPL net/tls/tls 0x2ed200a2 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0x7fffffff tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x7fffffff tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0x7fffffff 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 0x05ae098c virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x07e6247c virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x11bd682a virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x139783e0 virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x19588a60 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x269f3a43 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x27e7d4e0 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x366f1b91 virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4d5a192e virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x520e46a0 virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x664792df virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6fa8a422 virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x72c1461f virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x773b7517 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7d781a12 virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_dgram_allow +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2083bfa6 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2a12ec38 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2b2bf2cb vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d22a5bb vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x44420515 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x56ae8714 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5856a032 vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_stream_has_data +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x172563f5 cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x36b81d6a cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5253a479 cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54fcb173 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dac9c12 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fb244d1 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwscan +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 0x7fffffff xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x029c8eee ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4e3b9eb4 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x766bfec1 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7967e411 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x7fffffff xfrma_policy +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7fffffff snd_seq_client_ioctl_lock +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7fffffff snd_seq_client_ioctl_unlock +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x7fffffff __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x7fffffff snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x09b6bb3d amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x103a4301 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x238f0fce amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x3134592a amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x5f4a6857 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x6a0b5bac amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x6fc44b6d amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x73bf0922 amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_domain_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x05636f93 snd_hdac_aligned_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x064e89c8 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x07e32f36 snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0a40692d snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0c18131c snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0c31bf0b snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1488641f snd_hdac_aligned_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x18a5cfc2 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1908c62b snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x21767fa9 snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2ca3697c snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x32632ad8 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3954218f snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3dc30368 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x40c4d120 snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4124710f snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x43665035 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4402c3e9 snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4718bcb3 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4bc93d90 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5020dbba snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x522b499c snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x539b2565 snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x53d769a1 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x555d209f hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x564ac693 snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5b65192b 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 0x6088e071 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x64ea5e42 snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x660f6753 snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67767f64 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6b8e32df snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6bcb3951 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6c94da77 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6ceaf6fe snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6ff0d9b9 snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x70e08f4a snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x719028d1 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x72d83e4d snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7559d497 snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x770745ca snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7716723a snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7d681df8 snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x55eba945 snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x7fffffff snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x52b671f0 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x5662c5ca snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7b37a9b8 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_create +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0067bb62 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x010a2f92 azx_get_pos_lpib +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 0x09fec565 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a5984d1 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ec1b2fe snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f0e5acc snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12e2e90d snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1302bc40 snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x134e6296 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e25267 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14753ff4 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14aa68b3 snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x154e8c7d snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17a77876 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d6b5de9 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x26ecf8eb azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x285ca729 snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28b151d2 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28da5883 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b821263 snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bcc8247 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c1d24ba snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d5b54be snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2edd7df9 azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31b2850d snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x324f26ad azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33fba55c snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3413d4da snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x353c353e snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x366162c4 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38d38a76 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3971e460 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d2bdfeb snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ddbaf86 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e72ddc4 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4461ccde __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x456f8789 hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x464e792c snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4685145f snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x480f3611 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a4cde41 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fb27da3 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x504c33ff snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5362ce16 snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53b51e29 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56086b10 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x567b5c06 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58750423 snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a16d700 azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ca63512 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d66dc40 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f6594d8 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61d0eae2 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x630dd52d snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63cc18b3 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63d5102c snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65483cea snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65c6002e snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66344b63 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68b9ed64 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b5cd508 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b6b0722 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e3c32f5 __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f60fd1b snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x730a67c1 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75555deb snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76c32494 snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x773769fc snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x780324ee snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7833e64f snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78be8f7c __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a9635d4 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d068dc2 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d92847e snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e61728f azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x00253ca5 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x0461e556 snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x10c44352 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x13ab9da0 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x178dbb83 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1b687f4b snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x29cc3982 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x31d30859 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x483ade1f snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x616d4db3 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 0x7fffffff hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/soc/codecs/mt6359-accdet 0x55e85981 mt6359_accdet_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0x7fffffff adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0x3c54153e adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x3b42123c adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x7fffffff adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x5503e4cf adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0x156d8c28 adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x7fffffff cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x7fffffff cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x7fffffff cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x2f803245 cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x6c2703f2 cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7c7cd1a6 cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x1049561e 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 0x7fffffff cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x2f427a27 cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x4039ad92 cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7fffffff cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7fffffff cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7fffffff cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2 cs42xx8_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x1f0bfe38 cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x6cafc7e8 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292 cs42888_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7fffffff cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7fffffff cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x468db2eb da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x47274849 da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x55b84ac8 da7219_aad_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x7efe569f da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x1e879be5 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x45be98d2 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x7fffffff lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x7fffffff lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x5706dadb max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x07262b3b soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x5b8a940b max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x790acb53 soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x7fffffff max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x42b63be5 mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7b3bb215 mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7fffffff mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7fffffff mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x2f969b54 mt6359_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x31c85313 mt6359_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x5e6ed392 mt6359_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x7fffffff mt6359_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0x7fffffff nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x7fffffff nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x7fffffff nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x2225649e pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x7cac9adf pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x7fffffff pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x1999ddf3 pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x7b1c36f7 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x0d142c58 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x7fffffff pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x67d477c7 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x6b8558da pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x7fffffff pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x7fffffff pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x733fe5cc pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7cb489d8 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7fffffff pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7fffffff pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x7fffffff rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x7fffffff rl6231_get_pre_div +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 0x7fffffff rt5514_spi_burst_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x0565f658 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x41371bc3 rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x4c946d01 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x5637bf8d rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x7fffffff rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x7fffffff rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x7fffffff rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x7fffffff rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x7fffffff rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x0ca2ec52 rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x27a284ee 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 0x7fffffff rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x7fffffff rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x7fffffff rt5677_spi_write_firmware +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x031372eb rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x1f4be5e0 rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x25f6c1a6 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x43367517 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682s 0x18c2a8ff rt5682s_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x75275027 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x77d44b34 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7b8b6cc8 devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7fffffff sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7fffffff sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x7d26a913 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x23a66124 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x0514254d ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x7fffffff ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x5f6d4007 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2f6ce731 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x7fffffff ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x04cc2caf twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x0c27d247 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x1a63f19c twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3778ef87 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x7fffffff twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x1f6ae7e9 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x26d0425e wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x2f0d1c5e wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x7fffffff wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x7fffffff wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x0517cb14 wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x11d72088 wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x2048592d wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x32864f5e wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x389c7f81 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x4642bbe9 wm_adsp_compr_open +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 0x54077279 wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x59ead8ce wm_adsp_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x6ccb670d wm_adsp2_component_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x78cc984c wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fa2ae3a wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_bus_error +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_halo_bus_error +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5aa3a62e 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 0x6a6b429d wm_hubs_update_class_w +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 0x78bd357f wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x5e34f829 wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x7fffffff wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x0349253d wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x597be951 wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7fffffff wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7fffffff wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7fffffff wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x0623b939 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7fffffff wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7fffffff wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x6ea9210b fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0x33f397c2 audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7dd3e5a4 audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7fffffff audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7fffffff audio_graph2_link_dpcm +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7fffffff audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x13a3000b asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x21cbae12 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x34015802 asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x3b3bb351 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x4231c08b asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x45525f51 asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x4d945bae asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x577f49e0 asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x5bd0373a asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x68591779 asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7250b9ca asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_convert_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x02d3a475 mtk_memif_set_disable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x08eb4db0 mtk_dynamic_irq_release +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x0e8fa638 mtk_afe_combine_sub_dai +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x0f7ab2ca mtk_afe_fe_startup +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x188c9620 mtk_memif_set_rate_substream +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x1fde393f mtk_afe_fe_ops +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x21dfc1a6 mtk_afe_fe_prepare +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x269660c9 mtk_afe_pcm_platform +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x2ec843aa mtk_memif_set_pbuf_size +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x312cbf47 mtk_memif_set_format +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x489e3b17 mtk_afe_fe_hw_params +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x66668910 mtk_afe_fe_shutdown +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x69983d9e mtk_afe_resume +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6bae1c7b mtk_memif_set_addr +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_add_sub_dai_control +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_fe_hw_free +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_fe_trigger +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_pcm_new +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_suspend +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_dynamic_irq_acquire +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_channel +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_enable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_rate +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x40e2f88c mt8195_afe_enable_clk +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x7fffffff mt8195_afe_disable_clk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x3b833827 axg_fifo_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x44546d8e axg_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x4928a172 axg_fifo_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x59dc9bff axg_fifo_pcm_hw_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x70761977 axg_fifo_pcm_close +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_new +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_open +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_trigger +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff g12a_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x14468237 axg_tdm_formatter_set_channel_masks +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x314f9f02 axg_tdm_stream_alloc +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x443d22ba axg_tdm_stream_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x506c837c axg_tdm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7c1869df axg_tdm_formatter_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7fffffff axg_tdm_formatter_event +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7fffffff axg_tdm_stream_start +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x7fffffff axg_tdm_set_tdm_slots +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x73f10bd3 meson_card_set_be_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x77546f07 meson_card_set_fe_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_i2s_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_parse_dai +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_reallocate_links +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x46cf3ac4 meson_codec_glue_output_startup +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x75e609a6 meson_codec_glue_input_dai_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7b5f5d63 meson_codec_glue_input_set_fmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_dai_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_get_data +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_hw_params +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x132ebb13 q6adm_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x28421460 q6adm_get_copp_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x3b168286 q6adm_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x7fffffff q6adm_matrix_map +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x07a54780 q6afe_cdc_dma_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x369b6eeb q6afe_port_put +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 0x66b99662 q6afe_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7df60063 q6afe_port_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_hdmi_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_i2s_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_port_get_from_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_port_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_tdm_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x13b7efd9 q6asm_cmd +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x1b6c77fc q6asm_stream_media_format_block_alac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x25bfa476 q6asm_open_write +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x2b693eed q6asm_stream_media_format_block_wma_v9 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4afe6f73 q6asm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4fba2f0c q6asm_run_nowait +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 0x6cec4b17 q6asm_stream_remove_trailing_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_audio_client_alloc +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_audio_client_free +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_cmd_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_enc_cfg_blk_pcm_format_support +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_get_session_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_media_format_block_multi_ch_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_open_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_run +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_ape +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_flac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_wma_v10 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_remove_initial_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6core 0x7e52e977 q6core_is_adsp_ready +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6core 0x7fffffff q6core_get_svc_api_info +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x5510c8c0 q6prm_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x7fffffff q6prm_unvote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x7fffffff q6prm_vote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6routing 0x5b75f756 q6routing_stream_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6routing 0x7fffffff q6routing_stream_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x0425ba67 audioreach_get_container_first_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x07096300 audioreach_graph_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x08b1a616 q6apm_graph_flush +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x0f8d51fa audioreach_get_container_next_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x145cf8f6 audioreach_alloc_apm_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x1613c749 q6apm_graph_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x1f7c1391 audioreach_gain_set_vol_ctrl +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x206a2c27 q6apm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x20db903d audioreach_graph_free_buf +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x29db8554 q6apm_graph_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x2cafe69e audioreach_set_media_format +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x2d7f6fc1 q6apm_graph_get_rx_shmem_module_iid +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x3b33eeca audioreach_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x4063c478 audioreach_shared_memory_send_eos +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x423ef2ed q6apm_graph_stop +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5543dd66 audioreach_alloc_apm_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x56b121a5 audioreach_get_container_last_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x64dc5171 audioreach_alloc_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7f4d39c8 audioreach_alloc_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_alloc_graph_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_tplg_init +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_media_format_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_media_format_shmem +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x0f44f2b2 q6dsp_clock_dev_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x17142e58 q6dsp_map_channels +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x600c8fe9 q6dsp_audio_ports_of_xlate_dai_name +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x7fffffff q6dsp_audio_ports_set_config +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cdc-dma 0x56a3facc asoc_qcom_lpass_cdc_dma_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x2ce730fd asoc_qcom_lpass_cpu_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x41c4fb68 asoc_qcom_lpass_cpu_platform_shutdown +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff asoc_qcom_lpass_cpu_dai_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff asoc_qcom_lpass_cpu_platform_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff asoc_qcom_lpass_cpu_platform_remove +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff lpass_cpu_pcm_new +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-hdmi 0x7fffffff asoc_qcom_lpass_hdmi_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-platform 0x77ed5f79 asoc_qcom_lpass_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x7fffffff tegra_asoc_machine_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x7fffffff tegra_asoc_machine_probe +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x121aa505 tegra_pcm_construct +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x2b336f95 tegra_pcm_open +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x3f9272bc tegra_pcm_close +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x5793de1a tegra_pcm_platform_register_with_chan_names +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff devm_tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_pointer +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 0x7fffffff tegra20_das_connect_dac_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0x7fffffff 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 0x7fffffff tegra124_ahub_set_cif +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_disable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_enable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_enable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_free_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_free_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_unset_rx_cif_source +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-omap-mcbsp 0x2b668508 omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-omap-mcpdm 0x7fffffff omap_mcpdm_configure_dn_offsets +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-edma 0x44d4d202 edma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-sdma 0x01948c7a sdma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-udma 0x37db646c udma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x0953199f line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x0e74c0fd line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x19a86fc0 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 0x22ce947b line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3af185ef line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3fc4fc4f line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x452e906b line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x5e21b223 line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x790dfdbc line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7f1414dd line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_probe +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_version_request_async +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 0x7fffffff irq_bypass_register_consumer +EXPORT_SYMBOL_GPL virt/lib/irqbypass 0x7fffffff irq_bypass_unregister_producer +EXPORT_SYMBOL_GPL vmlinux 0x00010d0b vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x00027074 rockchip_pcie_parse_dt +EXPORT_SYMBOL_GPL vmlinux 0x00058fd6 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x000fed59 of_usb_host_tpl_support +EXPORT_SYMBOL_GPL vmlinux 0x0026ab05 bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x002a0b10 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x002c0ba4 evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x002f793c sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL vmlinux 0x002fb3dd pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0x00436469 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x0053e821 tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x00571e97 phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x005baf81 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0065c717 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x006e5d24 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0x00b446f4 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0x00b75dd5 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x00c45bd8 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x00cc0078 xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x00cf2a97 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00ded979 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x00e752c9 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0x00fd76eb cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x011b2d4b event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0x011c4b4a pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0x01232100 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x0130b402 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x01452b4d kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0x01492272 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x01497e37 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL vmlinux 0x014ac133 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x014b7e41 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x014d8cc1 musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x014e8186 cpu_scale +EXPORT_SYMBOL_GPL vmlinux 0x015422ca dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x0154d637 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0155ef57 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x01594edc clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x016513ba i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x016b95aa devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x0171e3f5 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x01a36c8c __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x01baea82 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x01bb40bd filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01e1102e pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f4337b check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0x01fdd35e gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x021d3366 devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x0221a15f usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x0221e713 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x0230bac6 gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x0231b75f power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x0240f492 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x0243cc47 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x02492133 regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x02564427 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x02639ea8 gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x026f3380 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x027fa8ec sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x0291eeb0 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x02a09b86 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x02a33882 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x02b28db7 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x02bd9e80 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x02c4c456 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02c894c2 bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x02ca29de sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x02e662ab dt_init_idle_driver +EXPORT_SYMBOL_GPL vmlinux 0x02ea61a6 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x0302e913 mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x03164d2c irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x0319ef04 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x032949c6 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x032a86c0 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x032de469 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x032fb075 int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0x03315f0c btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x033fdefd ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x03440880 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x034d900b i2c_slave_event +EXPORT_SYMBOL_GPL vmlinux 0x036bb262 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x036d8e9b klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x0384b1f9 gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x0388a87a of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x038f5b7a cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x0397a844 snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL vmlinux 0x0398b9ab __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x03a14b13 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x03a46c7e phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x03b2623e __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x03d7b5a9 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x0412332f rcar_rst_set_rproc_boot_addr +EXPORT_SYMBOL_GPL vmlinux 0x0415bc57 devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x0428e2ea blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x042dac7e devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x0433e419 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x0450401d crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0x0453140c gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0x04637fc9 blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x04759762 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x0485fb30 device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049caba1 dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x049d0cbe regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x049ff56d platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x04ae4635 trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04cdd9cf snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL vmlinux 0x04cffe82 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x04d9aceb inode_dax +EXPORT_SYMBOL_GPL vmlinux 0x04dcce4e remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x04e05aaf cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x04e8e734 of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x04f025f5 vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0x04feca48 gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x05040081 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x052ee6aa mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x0540ef30 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x054c732f fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x055a378a vfio_register_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x055cfb94 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x056090fe dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0563364a of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0x05641313 imx_clk_hw_sscg_pll +EXPORT_SYMBOL_GPL vmlinux 0x0585b7cc of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x0589056b dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x058e5310 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0x05926a5e pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0x05a0f893 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x05a12e98 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x05a16291 pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0x05a460b3 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x05a550b1 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x05a924bd snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL vmlinux 0x05b4e4f8 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x05c62f65 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x05c93cab __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x05e523f5 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x05e62687 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x05e6464d report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x0601d78e folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0x06024945 devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x06122337 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06154697 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x061caf1a dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x064be0c1 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x064f8d7a usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x0652086f usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x0674c79a sm501_unit_power +EXPORT_SYMBOL_GPL vmlinux 0x068721b8 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x068dc2d8 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x06942d5d serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x069e84ef fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x06a75f76 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x06b32f4f handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x06b53bd2 memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x06c8e485 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06cf309b scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x06d142db of_add_property +EXPORT_SYMBOL_GPL vmlinux 0x06d1c125 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL vmlinux 0x06d2b195 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x06d9c3b4 snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL vmlinux 0x06e92aea nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x06eac34f verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x06fe00be sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x0713645c hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x072afd5c devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x073328c6 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x0736a4b3 trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x07392b1f crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074ede08 gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x0753a320 sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x075be30b pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x07721777 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x077aa142 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x0784b244 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x07944d66 dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x07ad0e1a ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b4ffea xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07bb71b1 snd_pcm_stream_lock +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07c3a135 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0x07d60c79 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x07dbd2e9 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL vmlinux 0x07e07042 mtk_mmsys_ddp_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x07f5bfed __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x07fe8d7a clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x080a74a5 __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x080f2cc6 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x080fb8e4 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x08106a53 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x08192b9f fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x081fd574 __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x0827c423 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x082cf2d8 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x083f76c3 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x085dc831 synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0x085f69bd clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0x085f97c6 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x087380e2 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x088fbc6b __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x0897bdad mtd_point +EXPORT_SYMBOL_GPL vmlinux 0x0897fb97 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x089982d5 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x0899f34e crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x089f93ec regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x08a6d1b9 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x08a9d3aa blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x08b08b64 gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x08b513b8 devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x08c90310 list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x08d264c0 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x08d46d52 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x08dc89bf usb_gen_phy_init +EXPORT_SYMBOL_GPL vmlinux 0x08f57f06 devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x08ff9ed4 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x090375c0 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x091105a8 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x09138663 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0944407e usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL vmlinux 0x094c3d2d snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x094dbbf4 devm_tegra_memory_controller_get +EXPORT_SYMBOL_GPL vmlinux 0x09619a7d i2c_slave_register +EXPORT_SYMBOL_GPL vmlinux 0x096a377f ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x097f7179 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x097fc5c4 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x09a13d16 usb_ep_enable +EXPORT_SYMBOL_GPL vmlinux 0x09a8b03b fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x09b173aa ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x09b51cc2 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09d30886 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x09e001bf pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x09e53260 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09f710b9 snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL vmlinux 0x0a0d0e66 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x0a243e02 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x0a27456f ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x0a3408e4 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x0a37a5f4 serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x0a4132b2 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x0a62f10d ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x0a68d6f3 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7bf059 switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x0a86011c crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0x0ab4bfe4 __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x0abcf9a9 __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x0ad2e55a sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x0ad7c7b9 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x0af0499f virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x0b03fb2f amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b11f1fa ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x0b11f787 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x0b13d89c __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x0b175d3a rockchip_pcie_get_phys +EXPORT_SYMBOL_GPL vmlinux 0x0b17cdba regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x0b19b18f register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x0b1fd774 snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL vmlinux 0x0b2970fe klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0b460086 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL vmlinux 0x0b5fe81a shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x0b6ccaa5 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x0b6e15fc rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x0b850b3f __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0b9b9ba7 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x0b9c10c4 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b9f6296 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0x0ba5d493 pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0x0ba8354b snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x0bab14ea nand_deselect_target +EXPORT_SYMBOL_GPL vmlinux 0x0bb028d4 hisi_clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x0bbb77fc mtk_free_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x0bbd89cc regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x0bbed7d0 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x0bc3768c fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0x0bd718ae task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x0bdcb7bc snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0x0be4cbfc spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0bee145b bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x0bee1f82 of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bfccf33 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x0c15aa0e i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x0c2fe12c sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c3acb4a key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x0c4298f4 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x0c58dba1 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x0c5e6ad2 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x0c625788 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x0c7e1eff mtd_pairing_groups +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c90a3e1 sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x0c92fd5c mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0x0c9475f4 sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL vmlinux 0x0ca352a8 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x0ca61f60 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x0cae716d of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0x0cbab9e0 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0cde0c68 fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x0cdf2691 usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0x0ce20966 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0cf1f905 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0cf7d65f gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x0d0e9d42 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0x0d120dbb sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x0d133e36 icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x0d13d32c input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL vmlinux 0x0d4138f3 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d58c22a sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x0da19ea7 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x0dc6fad1 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x0dcb3ee8 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0df53dae regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x0e097467 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e2300d7 devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x0e277164 iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x0e29f9a7 topology_update_thermal_pressure +EXPORT_SYMBOL_GPL vmlinux 0x0e3057a3 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x0e305f61 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x0e51f13c gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x0e5b4975 __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e791dab mtk_pinconf_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x0e7d687a virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x0e8a574a cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x0e8b6f69 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x0ead2976 dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0x0ec294a0 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x0ec47705 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0ed7986f iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x0ee8a013 __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x0eeb5417 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x0ef737cf bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x0ef76cd2 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ef9033d __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0efe0277 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x0efe490e clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f22c8f7 devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0f2da3dc rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x0f3fb0fa dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x0f405961 mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x0f41ecbd usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0x0f452a47 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x0f4b866a ahci_platform_ops +EXPORT_SYMBOL_GPL vmlinux 0x0f4c574f pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x0f6a3f32 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x0f797a14 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x0f7ca236 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x0f97eeca clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x0fb2ceb1 clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x0fc9f6d0 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0fd6b68d scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x0fd7d597 crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0x0fed2bc4 pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x0ff86e8e folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x100359e4 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x1005439d mtk_eint_find_irq +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1013da20 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x10220cad dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x10228234 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x1043cac3 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0x10461be2 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x10535b88 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x105b39b4 snd_dma_buffer_sync +EXPORT_SYMBOL_GPL vmlinux 0x105d3f5c usb_gadget_udc_reset +EXPORT_SYMBOL_GPL vmlinux 0x10659abc snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x1066dd7f iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x10676ae0 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x106ad9e1 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x106af334 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x106b3ac1 nanddev_bbt_update +EXPORT_SYMBOL_GPL vmlinux 0x106bfcef platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x10702458 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x108d0ee2 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x10909119 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x10919735 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x1095af8c cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x109ba9e1 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x10ab356f user_read +EXPORT_SYMBOL_GPL vmlinux 0x10b1810f nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x10b4c1ef cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x10b83eb8 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL vmlinux 0x10cbdf0e blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x10d592ae phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x10d61741 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10e32c80 pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x10e9a21a irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10eefc46 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x1104c4d5 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL vmlinux 0x1114d02f snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL vmlinux 0x11333ac1 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x114a3740 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x11526c9a meson_clk_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x1156b105 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x1156c0bf __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x11570ba3 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x1160bfff xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x116fa0d4 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x117122c1 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x11767292 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0x11962556 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x11a5fe17 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x11b1aad4 pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x11b4f6dc devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x11bd7f75 netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x11d8d677 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11e72f40 genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x11ffea96 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0x1206638a snd_ac97_reset +EXPORT_SYMBOL_GPL vmlinux 0x120eb57a dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0x1210370c irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x1212912e crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x121a9717 ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x122ce299 sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x1236db8b device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x123b9ddb bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x124f58e8 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x125ae694 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x127e5040 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x128135d7 xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x12833632 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x128b90f9 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x128d3ef0 ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x1299f81c spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x12b76e97 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x12baf2bd __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x12d4174f sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x12d61166 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x131a2817 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131c3dac __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x131fc516 dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0x1326e320 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x1329e118 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x13470ba9 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x135745ab pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x136ef111 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1381933c extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x1381d4f3 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1383ad5d ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x13849034 dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x13bbfaa3 skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x13c37a03 page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13ce8799 __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x13d0d8a2 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13edf44c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x13eeb417 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x13f36407 fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x140c25a4 regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x141489a5 sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x1414de02 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0x14164084 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x141c9d39 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x14222f2a tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x14313359 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x1432a1a8 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x14345dac iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x1435550b vfio_init_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x1440ed06 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x144c7f92 led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x1451a9d2 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x145fc7ac pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x146a07a7 crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x14805c34 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x14a766fd mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x14a98a21 cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x14be1d5e ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x14bfb0d9 ahci_platform_suspend +EXPORT_SYMBOL_GPL vmlinux 0x14e6dec6 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x150c01ef get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x153ce566 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x1550efdf inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x155e64ae wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x15670dbc thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0x156ff326 set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x158d6807 mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x1592fd25 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1595990b disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x1596331e virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x15979bb4 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x15984eef ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x159974ac skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15a06580 dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x15ab2790 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15b1c82b spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x15be7baa sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x15c0a0b6 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x15ccba7a imx_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x15cd23bc wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x15d686f9 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x15debb03 devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x15e7308d fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x15eca580 percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x15fd48df spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x16019558 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x1611abe6 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x1612718b sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL vmlinux 0x161990b4 serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x1624f414 mtd_write_oob +EXPORT_SYMBOL_GPL vmlinux 0x162fa616 ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x1642c188 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x1646204b pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x16472ffe serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x1659a47f rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x166e9ac6 snd_soc_dai_active +EXPORT_SYMBOL_GPL vmlinux 0x167b5c4f nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x167be244 device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16801461 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x168505a8 dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x169b185f verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x169b457b srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x16aaef47 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x16add22e cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x16b5ace2 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x16b75158 tps65217_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16daa10f nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x17153c7f devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x17317acd devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x173b0f76 nand_gpio_waitrdy +EXPORT_SYMBOL_GPL vmlinux 0x1749983a ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x176fb79c invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x17777646 pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x177cc9cd null_dailink_component +EXPORT_SYMBOL_GPL vmlinux 0x1784f385 snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x178c0ee3 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x178d5441 arm_iommu_release_mapping +EXPORT_SYMBOL_GPL vmlinux 0x17992eb1 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x17a4f298 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x17ac4f92 scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x17ae4250 serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x17bb02ce virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x17d90dae extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x17ec8eb1 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x17ef4387 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x17f40bbf debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x18011723 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x18112c1b dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x182a1860 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x18344576 __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x18351429 devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x1850aaa6 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x185dc0cd fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x18615d35 efivar_supports_writes +EXPORT_SYMBOL_GPL vmlinux 0x1872ec4b pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1888c669 sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x1896bf26 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x18b1551a imx_clk_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x18c51ab4 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x18cd5210 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18e8c440 arch_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x18f47f18 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x18f70e66 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x190a7209 mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0x190ec266 icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1914a8e1 mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0x1916a46b mtk_mutex_get +EXPORT_SYMBOL_GPL vmlinux 0x191e8345 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x1921431b meson_clk_pcie_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x19304f30 reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x1937414d raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x1938f4b5 phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x194132fa zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x19424a51 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x194dd751 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x194dfd92 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x196862c8 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x197060d6 blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x1970d2e7 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x19728f56 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x197ef92b nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL vmlinux 0x198afae1 devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19bcc035 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x19bf3327 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19c20b63 snd_card_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x19dad7be devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x19de1acf ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x19de8069 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19f1e1ad ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x19f9f834 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x19fde26b dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x19fe16a5 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x1a073a45 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a1206b9 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a266232 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL vmlinux 0x1a2f2178 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x1a3e323e pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x1a408041 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x1a44572f rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0x1a45c74b pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x1a469844 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1a51c36c pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0x1a5bd0d2 sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x1a649f96 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a79ed9f crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x1a7a2447 phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1a7d73f4 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x1a83eea0 component_release_of +EXPORT_SYMBOL_GPL vmlinux 0x1a92e448 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x1a9be8ba pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x1a9dcf77 bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x1a9e07ec of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1ac138fd hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x1ac6844f led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x1ac90940 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0x1ac9485d devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x1ad5d37d scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x1ad6231b kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x1af24266 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1af54421 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x1af74b1e usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x1af9e7dd ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x1b01f43b meson8_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b1400c2 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x1b15a8b7 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x1b164286 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x1b1c0746 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x1b1d8b79 mtd_block_isreserved +EXPORT_SYMBOL_GPL vmlinux 0x1b209ed4 l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b3d8daa sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1b42801b tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x1b4ae63a regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b5b3252 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0x1b781469 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b8e3199 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0x1b92977d mtk_pinconf_bias_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1b9409ef of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x1baa55d5 meson_clk_pll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bb05d97 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x1bc40a8d gpmc_omap_get_nand_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bce443e usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x1bcfc9c2 tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x1bcfcc2f dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x1bd426f8 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1bd7bb69 led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x1be4b59d perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x1c015fe4 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x1c01e03d __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x1c1388ff __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x1c1769d4 udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x1c18e5ba irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x1c1ab148 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x1c232b75 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1c24c83a sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x1c3b2fed ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x1c3d8bae regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1c47bddd crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x1c4da7cf pci_epf_destroy +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 0x1c704457 dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x1c717e61 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c78b15e vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL vmlinux 0x1c7be59c __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x1c7dc8c6 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c812eab alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c91f21c __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1c9dddb9 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x1c9df7b2 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x1ca17f4b ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x1ca5f4fc tps65217_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cdf4efb copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x1cfaf990 dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x1cfe4101 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x1d1719f6 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x1d32caf7 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x1d39ec81 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1d3ea8e4 crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x1d467214 __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x1d5059b4 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x1d508227 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x1d5ed776 pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1d6696b0 mtk_mutex_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d6ec8b4 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x1d725d3c wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d77f6b3 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x1d888cae usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1d94a218 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x1d962047 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x1d995389 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x1d9f72ac gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x1da593dc serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x1da70d6b anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1daf4970 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x1db44bdd scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x1dbe19d9 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1dc17bf9 rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x1dd1ba5d crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x1df752c6 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1e05ea98 i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e06f3f3 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x1e08671a of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0x1e0be52f debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x1e153ae6 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x1e1becc3 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x1e311054 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x1e3681e5 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x1e3a12b6 nand_write_data_op +EXPORT_SYMBOL_GPL vmlinux 0x1e43c93b dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x1e4491d7 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x1e489756 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e56a46e sdhci_calc_clk +EXPORT_SYMBOL_GPL vmlinux 0x1e5a446f of_genpd_add_provider_onecell +EXPORT_SYMBOL_GPL vmlinux 0x1e618dfc devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7d6157 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1e882e8b mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1ea73080 __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x1ea883a0 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec662f1 of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0x1ed137a4 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x1ed9920d blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x1ee31b89 tegra_bpmp_mrq_is_supported +EXPORT_SYMBOL_GPL vmlinux 0x1ee32102 of_thermal_get_trip_points +EXPORT_SYMBOL_GPL vmlinux 0x1ee5dfd8 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x1efd4d3a serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1efec86f strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x1f05dc96 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x1f141392 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1f27db7e iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f39ad71 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f4704a5 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x1f52d3e2 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f587abf bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1f5deffc __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x1f5fc4a5 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x1f70edde tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x1f774f46 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1f7c6fc3 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f95bef7 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1f9aa84c fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x1f9aef19 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fac8dc9 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x1fc69508 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x1fca0b38 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x1fddfa5e hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x1fe659d4 snd_soc_add_component_controls +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1febbafa qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x1ff4435c fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x1ff63cda spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x1ffbf8e7 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x1ffdbf4b usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x206af112 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0x206bb69a xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x2096a0de power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0x209f4b47 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x20ae220b debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x20bec354 sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x20d1e544 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x20dcc98e __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x20e5d77f efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x20fb5e3f snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x20fd27ef sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x21087621 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x210b51e4 l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x2121e989 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x2122ac82 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x213d5f23 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x213efc5f __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x214eea09 dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0x21563e68 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0x215661db ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x215d871e __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x216a8fe2 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x21726652 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x21738486 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x21761007 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x217b8f0f crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x2181b0a1 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0x2190f155 mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL vmlinux 0x219167dd handle_fasteoi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21cefba2 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x21d2219a snd_soc_card_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x21d37489 imx_obtain_fixed_clk_hw +EXPORT_SYMBOL_GPL vmlinux 0x21d90254 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x21ebf86f rockchip_pcie_enable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x21f317b9 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x220ce70c kvm_arm_hyp_service_available +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x22148e02 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0x22221433 snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL vmlinux 0x222879be lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x223e215c rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x224b23dd irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x225f9870 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x226841e4 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x2283919a gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x228c9b4f vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x228d49a2 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22b6a58a usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL vmlinux 0x22b8991a snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL vmlinux 0x22bf66f7 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0x22c670a4 of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x22cd3984 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x22cf4878 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x22d369e2 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22e0495d unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x22e6315c ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x22eaff88 switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0x22ec5bc9 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x22f7c992 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x23043875 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0x230d25a7 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x230f8ddf pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0x23133ad2 gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x2328d0ac ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x23349040 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x23666d59 __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x237330ab pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x2377bf6f usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238e8506 amba_bustype +EXPORT_SYMBOL_GPL vmlinux 0x23935d9d __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x23950433 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x239bbfae of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x23b7ef84 xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x23bb0ca6 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x23bba5a4 usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x23d8fa1e virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x23db9810 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x23f1bd3a imx_clk_hw_pfdv2 +EXPORT_SYMBOL_GPL vmlinux 0x23f425a7 mtd_write +EXPORT_SYMBOL_GPL vmlinux 0x24088adc usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x2425beab i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x242faddc irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x2449a7f1 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x244bda65 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x244e8db3 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x2457c8d3 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x2460aeec serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x246b84a4 r9a06g032_sysctrl_set_dmamux +EXPORT_SYMBOL_GPL vmlinux 0x247980fc phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x247e1658 snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0x24899cc1 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x248abbd1 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24c82133 xas_store +EXPORT_SYMBOL_GPL vmlinux 0x24cfdc65 sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x24d1f17a fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x24dbaa39 nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x24dbbaf7 tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0x24dd7bd2 cpuidle_register +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 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2504f828 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0x2516bbe8 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x2523a920 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x2524b4f0 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x253e8d29 devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2547b7d5 crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x254f68e3 _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL vmlinux 0x25505fe8 devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x25575ad2 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x255d0ffa regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2576e861 mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL vmlinux 0x258dfe61 genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x258e41ea desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x25b35027 pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25c8efb7 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x25d28019 dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0x25d41802 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x25dd96e9 cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0x25e58593 pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0x25e99995 gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x25f164b5 spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x260662c6 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x2609df71 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x264a1b40 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x264b4d9d ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x264c7ae1 kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x266866b4 __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x26695218 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2696ce0d sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0x269c8287 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x269dd7c0 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x26a54418 ata_sas_port_init +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 0x26ca436a devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x26d1b126 sdhci_enable_clk +EXPORT_SYMBOL_GPL vmlinux 0x26d63465 mtk_pinconf_bias_disable_set +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x272314f2 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x27293ece fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x272e9d77 hisi_reset_exit +EXPORT_SYMBOL_GPL vmlinux 0x2734197f musb_readb +EXPORT_SYMBOL_GPL vmlinux 0x2734c052 sdhci_set_clock +EXPORT_SYMBOL_GPL vmlinux 0x273ac4b9 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x273ca2f4 kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x2740a68e __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x27497402 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x278308f6 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x279c9854 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x27b1b929 sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x27b3fdff regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x27cba29c extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x27fca4bd gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x2807b380 vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x283e69f8 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x283ffe9f imx_check_clk_hws +EXPORT_SYMBOL_GPL vmlinux 0x286443c5 sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x288058bc nand_prog_page_end_op +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x28ad7ceb pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x28b030d2 of_overlay_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28c89df2 icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0x28d05a01 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x28d6285e ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x28e29132 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x28f7df52 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x291123ea __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x292591ae cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x292c8eb6 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x2936664f of_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x2939769d dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0x294ed340 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL vmlinux 0x295a2670 clk_regmap_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x295b982a hisi_clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x29727d25 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x2978f817 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2993dbdb ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x299c0691 devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0x29a65b6f pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x29a76043 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0x29a93e6d switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x29afd47f sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x29b41daf pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x29c523a8 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x29cc7f17 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x29cf2470 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x29d681d7 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x29e54d74 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x29e6d660 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29ecfaf4 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x29eef303 nand_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x29eef5d8 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x29f38741 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x29f49369 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x2a01f1ce usb_gadget_activate +EXPORT_SYMBOL_GPL vmlinux 0x2a08e629 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x2a12cc38 is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x2a2aea17 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2a2ca68c device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x2a312524 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x2a37ea11 imx_clk_hw_frac_pll +EXPORT_SYMBOL_GPL vmlinux 0x2a3dc738 serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x2a42ee4d of_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2a562ab8 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x2a5641ee component_add +EXPORT_SYMBOL_GPL vmlinux 0x2a5c4a28 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a67fbaa fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a732f54 mtk_clk_gate_ops_no_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x2a87e81d irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x2a8c3c69 fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x2a8de3da relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2ab3ce2c tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x2ab482c1 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x2ac6a16b snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL vmlinux 0x2ad11d44 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x2ad8b317 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x2ad9d9c5 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL vmlinux 0x2aefb667 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x2af4c032 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x2b08ca72 nand_read_page_op +EXPORT_SYMBOL_GPL vmlinux 0x2b1b8344 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x2b239b17 iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b4916da blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x2b52e2dd of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x2b57a869 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x2b5be635 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b68bedc input_class +EXPORT_SYMBOL_GPL vmlinux 0x2b732f38 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x2b841f28 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0x2b8613a9 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2b952517 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x2b986fe0 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x2b9b0b30 dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x2ba130f1 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x2ba5659d crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x2baa1146 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2bb3042b vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x2bba6533 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x2bdee17a mtk_pinconf_adv_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2be5030f copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x2bf83acd blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x2c1ba89a virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c363e76 thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x2c388acb virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x2c45b426 component_del +EXPORT_SYMBOL_GPL vmlinux 0x2c481cd2 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x2c481f74 mtk_eint_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x2c53f98f tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x2c647866 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c71d347 power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2c7cee5e vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81a826 imx_1443x_pll +EXPORT_SYMBOL_GPL vmlinux 0x2c8a779e gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ca7fcd4 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x2cac1af7 cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x2cb489d5 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0x2cb9abeb bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x2cc64e73 spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x2cd6f417 pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2cf05c35 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x2cf7e624 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x2d02aae0 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x2d0d7513 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1bc2ad watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2d1c6af2 of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x2d223a28 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d2e703d of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x2d2fd8df thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL vmlinux 0x2d3b115f blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d448140 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL vmlinux 0x2d54aa3a component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x2d54bc59 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x2d5f69b3 rcu_read_unlock_strict +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d65850a fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x2d7aeb71 regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x2d85cf2b fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x2db67d4a owl_sps_set_pg +EXPORT_SYMBOL_GPL vmlinux 0x2dc7bc09 blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x2dd3a7e8 unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2df0248c ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x2e001e8e snd_soc_lookup_component +EXPORT_SYMBOL_GPL vmlinux 0x2e008081 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e10c6be sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e277dab regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x2e32d203 usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0x2e3bdaf4 tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0x2e4261f6 snmp_get_cpu_field64 +EXPORT_SYMBOL_GPL vmlinux 0x2e4ddddc fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0x2e5a7cc5 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e6e44ba proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x2e6f9598 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x2e715e25 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e7c8920 __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x2e7e91ed blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x2ea03e99 tegra_bpmp_transfer_atomic +EXPORT_SYMBOL_GPL vmlinux 0x2ea15a18 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x2eb4d637 mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0x2eb7bfb4 snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecf5856 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x2eee2ee7 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x2eee8635 free_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x2eef5ab1 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x2ef8684f __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1a3300 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f25a2fc pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x2f28d446 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x2f37f7b7 mtk_pinconf_adv_pull_get +EXPORT_SYMBOL_GPL vmlinux 0x2f40bfd9 ti_cm_get_macid +EXPORT_SYMBOL_GPL vmlinux 0x2f4155b0 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x2f4a6b12 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x2f59e2e2 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x2f5d0018 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f61746f usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x2f63e634 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f68a03a pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x2f6e9122 musb_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x2f6febe5 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x2f7353d6 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x2f77834a folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0x2f7bba11 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2f7cd452 bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x2f804d19 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x2fade0be synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fcba9a1 crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x2fcde5cf tps65217_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2fcfd2c3 dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x2fd52c15 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x2fe464ca usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x2ff319af inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x2ff88776 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x30096d57 insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x302917ec ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0x3030fd5e __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x3044513e pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x3045fd97 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x3047f190 mtk_clk_unregister_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x30497973 usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x3053ba31 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x30659661 dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0x30672c2c crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x3069e46b scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x30791488 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x3080378c regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3088902b snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL vmlinux 0x309fb9a7 vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x30a262dc look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x30a2b5f5 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x30ba0677 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x30d25ccd pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0x30ff678f snd_card_rw_proc_new +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x310b6270 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x310d04c8 genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x310f58b1 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x310fa889 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x311d76c8 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x311dc730 of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x311f0320 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x311f6013 musb_root_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x313ea5fd ipi_send_single +EXPORT_SYMBOL_GPL vmlinux 0x31434550 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x3152d7eb mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x3153f56f snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x315bdc56 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0x316031cf tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x31623d31 tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0x3164035c mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x317cf45a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31afffdb mtk_mux_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x31ba055f nand_read_oob_op +EXPORT_SYMBOL_GPL vmlinux 0x31be49f0 mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x31c3f299 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d8122a irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x31f3ce6f ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x31f9d882 imx_pcm_fiq_init +EXPORT_SYMBOL_GPL vmlinux 0x31fe5f99 pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0x320232ce thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3205ade9 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x32065172 sdhci_get_property +EXPORT_SYMBOL_GPL vmlinux 0x32207d17 usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x323a93e2 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x324013ff ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x324ad1df to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x324ed77b regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0x324f0442 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x325e5118 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x327bd6e9 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x327fcdee pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x328373a7 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x328cdee9 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x32933862 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32abd690 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x32be2df3 arm_iommu_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32ca4ae8 devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x32dfd8e2 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x32e31286 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x32e3f45b sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x32eb3f04 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x32eefe17 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x32fbec40 nanddev_bbt_init +EXPORT_SYMBOL_GPL vmlinux 0x330d5fce phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x33208b59 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x3335ae32 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x333912fa component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0x33455b80 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x334c9bbc blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x3356cb70 trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x33573e44 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x335b0da3 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x3361c03a regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x337268f9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3379d4b6 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x337f6da1 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x3384165d netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x338883ad pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x3391345f of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x33ac12b5 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x33b1ce0b proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x33b46aa6 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0x33b74101 tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x33c029c0 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x33cc6bd9 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x33cd2cd6 cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x33d4d0a6 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x33d8fa25 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x33dc165b xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x33e49d39 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x33e9e0a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x33ec1343 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x33efc8c8 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x33fd3e36 usb_phy_generic_register +EXPORT_SYMBOL_GPL vmlinux 0x3417d1b9 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x341ca172 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x341e882b icc_get +EXPORT_SYMBOL_GPL vmlinux 0x3424cc85 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x342f30ed udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344253c7 mvebu_mbus_get_pcie_mem_aperture +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x3448cabb irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x344bd03b devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x3456fa60 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x345878cb usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x3461ba36 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x3461e4e6 imx_unregister_hw_clocks +EXPORT_SYMBOL_GPL vmlinux 0x3464f439 of_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x346c5919 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x347a7a3c mtk_pinconf_adv_pull_set +EXPORT_SYMBOL_GPL vmlinux 0x3481ed70 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x349af138 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x349f2f77 mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x34a3c292 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x34a46b18 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34ae14cc driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x34b796e3 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL vmlinux 0x34c37bb7 snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x34cf8838 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x34db3c08 __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x34e509b7 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x34f5ecb0 __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x34f91aec securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x34fdd655 mtk_hw_set_value +EXPORT_SYMBOL_GPL vmlinux 0x34fdf958 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x34ff09cb iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x34ff4e83 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x350002a5 sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x350a972a crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x350e5383 i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x352a1be4 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0x352af523 irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x35302b8e __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x3540f6c0 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x3549c383 debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x354e8185 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x35681ae3 __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x356c8996 wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0x3580166d regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x35842c4f ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x35876e65 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35b79a9a kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x35c47efa __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x35cfd6b3 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x35e7da4c get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x35efdc96 devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0x36011dc6 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x361466e1 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x361b0ca4 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x361ea58e serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x36266b44 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x3633821c device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x36356eda tegra124_clk_set_emc_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x36390394 icc_enable +EXPORT_SYMBOL_GPL vmlinux 0x365871cd pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x365989e5 imx_1416x_pll +EXPORT_SYMBOL_GPL vmlinux 0x36604259 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x36768e20 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x367d0e30 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x368003d5 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x369051c9 crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0x369542a5 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a6793e devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x36aac785 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x36aba74e clk_register_hisi_phase +EXPORT_SYMBOL_GPL vmlinux 0x36bc15a1 debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x36cf7c9d xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x36f08ffe to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x36f6608b inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0x370d935b usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x371632eb __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x37177f5a task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x371e8c5d nand_change_read_column_op +EXPORT_SYMBOL_GPL vmlinux 0x37232ea7 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x3732a458 phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x374a9821 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x374b1e8c do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x374f0dfd ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3750765f umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x3754cf3f of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x37595cb3 meson_clk_mpll_ops +EXPORT_SYMBOL_GPL vmlinux 0x375bd803 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x37621f9c nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x3762debb fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x37743b64 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x377bfa25 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x377c8b82 irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0x3786497c wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x3791266b ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x37ac32f3 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL vmlinux 0x37adf3a5 devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x37bcea21 mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0x37c71296 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x37d20f8c posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x37d915c4 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x37f98356 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x37fb286a snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL vmlinux 0x38027d61 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x3805b978 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x38096539 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x381ecfe6 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x38266436 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x382897ca ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x382de1bd extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x3836daa1 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x383bda33 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x3840a903 of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x384b7edb cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x384dc29b mtk_hw_get_value +EXPORT_SYMBOL_GPL vmlinux 0x386ceff3 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x386ddcf4 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x386e5e2f __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x387e7fee regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x387fd8de spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x38962587 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x389e5996 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x38a352c0 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38c0c9e4 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x38cab653 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x38d25693 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e2725d uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x38edbc73 blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x38f19581 fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x390294cb crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x390ba6eb __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x3913ed06 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0x39427eeb call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x3945ff5e scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0x394aca04 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x395accab dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x3960a7d5 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x396d2576 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x397196bb pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0x39746af1 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x397d35a8 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x397d7201 dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x397fec1c dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0x39899e95 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0x398ec97f strp_process +EXPORT_SYMBOL_GPL vmlinux 0x3993c1af devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x3994f2a7 of_thermal_is_trip_valid +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39a88c36 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39abc210 __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x39b5c8d4 __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x39b7c25d gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x39bf8a55 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x39bfcd68 simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0x39c19f7f tegra_mc_get_emem_device_count +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39c901d8 mtk_pinconf_bias_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x39e1e9fa clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x39e2b608 tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0x39f2153e sdhci_request_atomic +EXPORT_SYMBOL_GPL vmlinux 0x39f65475 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x3a032f5c tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x3a144d7e pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x3a163a5c device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x3a1b5fe2 devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3a1ff8d3 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x3a2c84d9 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x3a2e7fe1 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x3a313f71 blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a546d19 fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x3a60dcdb register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3a6ba6bb pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x3a71eda5 user_update +EXPORT_SYMBOL_GPL vmlinux 0x3a924511 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3aa71cf5 page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x3ab70944 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x3abf1d5c usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad6bc20 imx_pcm_dma_init +EXPORT_SYMBOL_GPL vmlinux 0x3ada06b1 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x3ae86134 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x3aee0105 tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3b0714f7 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3b086e67 blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x3b1e9218 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3b22ead5 of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0x3b3af133 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b584545 cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x3b59e215 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3b64b8d6 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x3b6637db of_get_named_gpio_flags +EXPORT_SYMBOL_GPL vmlinux 0x3b6ed6f5 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3b72ebc4 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x3b9498d7 blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x3b97cbef xas_find +EXPORT_SYMBOL_GPL vmlinux 0x3bb2267a gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x3bb2fe8f snd_soc_component_set_jack +EXPORT_SYMBOL_GPL vmlinux 0x3bb8423f phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x3bb9ffea snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL vmlinux 0x3bc98119 sdhci_set_ios +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3c10ff25 tegra_bpmp_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3c177332 kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x3c1b83c5 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x3c1c0e51 snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c1dd6c0 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x3c21f0a5 sdhci_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply +EXPORT_SYMBOL_GPL vmlinux 0x3c2f99be pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c410c2a devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3c443af6 of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x3c4522fa nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x3c5a8f45 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x3c5f4180 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x3c67510b usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c6dcba0 md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0x3c72724e usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x3c864287 dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0x3c8f983b fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x3c96996c pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x3c977a87 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x3c99f01f sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x3c9cc5ca blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ca82988 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cb046a1 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3cbc7fe2 vfio_mig_get_next_state +EXPORT_SYMBOL_GPL vmlinux 0x3cc06e13 __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3cc41825 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x3cc7438d dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ccb5a46 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cdb352c ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x3cf00f4b mtk_clk_gate_ops_setclr +EXPORT_SYMBOL_GPL vmlinux 0x3d05d0ef attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x3d0a5a14 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x3d10bfd8 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x3d27528e wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x3d2b6bfd elv_register +EXPORT_SYMBOL_GPL vmlinux 0x3d32cb14 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x3d338747 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d395b9f dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d6fd757 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x3d7b4bf0 __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3d7c3cfc regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x3d84f6c5 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d96bc54 filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0x3d9aa320 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3dadbdee stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x3db48a49 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3dc06877 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x3dc754fa blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0x3ddff0c6 devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df1b640 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x3df55b19 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x3dff85f7 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0x3e1bf0bb gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x3e27065b usb_ep_set_wedge +EXPORT_SYMBOL_GPL vmlinux 0x3e312408 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x3e31d9c3 net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x3e413619 sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x3e46d802 mtk_pinconf_drive_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x3e47fdbd devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3e4f36f7 tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x3e5231c3 snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0x3e6cd218 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e734d05 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x3e742e4b devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x3e75c860 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x3e976334 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x3eb358e9 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x3ec40239 idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3ef3fe96 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x3ef7ea2d set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x3efcee68 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x3f060887 __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x3f15b888 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x3f1d991a get_tree_mtd +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f497012 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3f4ea9df fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x3f82bd18 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x3f839346 devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3fb7afe5 nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3fda923a wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3fea029c hisi_clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x3ff15a36 md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ff3a0bb snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x3ffce6ef md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x3ffde93e pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x400a1458 irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x401a971f device_move +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x4066b2e8 gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0x406c4cb1 hrtimer_resolution +EXPORT_SYMBOL_GPL vmlinux 0x4071b517 out_of_line_wait_on_bit_timeout +EXPORT_SYMBOL_GPL vmlinux 0x407e7207 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x4082f95f pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x4084b9a4 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x409a6ddb spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40a5a259 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x40af2d76 usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0x40b37456 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x40b9e5a3 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x40bb4fea devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x40c3c8d1 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x40c97922 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x40cdc3ff pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x40cebb80 dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x40d72754 ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x411dd90a ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x412d54be ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x41325e2d regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x413680bb ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x41379cdb hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x414538e6 synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x414e1f51 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x4150f418 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x4152d45f sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x416c6e8f power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x416d7173 devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x4179f84b clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x417bbc81 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x417d2b78 __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x417fe450 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41877e27 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x418d0e8b __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x419851dc phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x419889e0 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41be5b5f nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x41c30f3a trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0x41c37132 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x41c6c2ab spi_async +EXPORT_SYMBOL_GPL vmlinux 0x41cd4e86 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x41e09352 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x41e7584d rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x41ebf1c0 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41f68f9c of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x41f79b4d tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0x41f905d6 wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x41f9db60 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x420142ce crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x4201b978 dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x4201f58c tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x4202c4fd crypto_register_alg +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 0x42221fb5 devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x423949be __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x42545d1c stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4256b4d6 phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4261ba62 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42905a77 irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42a83a1f regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x42b51b12 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x42d46aff synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x42e372a9 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x42e440de ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x42e7a297 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42ee920f spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x42efb127 nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x42f8ab18 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x42f9b26b snd_ctl_register_layer +EXPORT_SYMBOL_GPL vmlinux 0x430d2625 rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x43303407 component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x43454ab8 of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x434b182c dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0x43574920 of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x43798dda device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4389167d ahci_platform_resume +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43be3159 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x43c106ef vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL vmlinux 0x43c2bc05 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x43ceaba1 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x43d49b0a regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0x43dfd261 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x43f76749 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x43fc647f i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x4407fb4b __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x44116c6e bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x4411c01b switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x443c06b7 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x443d237c regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x445fb50c transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x446c9ae9 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x4473fa72 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL vmlinux 0x447cc01b rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x448c8257 nanddev_isbad +EXPORT_SYMBOL_GPL vmlinux 0x4490b46c thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4493fa50 of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x449646fa devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x44ab57a4 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x44b83e00 vfio_info_cap_add +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44cb2fb3 snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44d2d9ff sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x44d74d69 __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x44ef26a7 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x4504d96a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x4512dba9 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x4520518a snd_device_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x4520fef6 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x452421f2 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0x45317b13 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x45370b73 of_console_check +EXPORT_SYMBOL_GPL vmlinux 0x453a1626 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x454f304a mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x455dfed7 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x4560e3c8 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x4561203a of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x4561f990 qcom_smem_state_unregister +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457d76fd rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x457e0a39 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x45891285 of_css +EXPORT_SYMBOL_GPL vmlinux 0x4590d0a7 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x459b5dca tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x45a747b0 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x45ae23fc crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x45f887a5 __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x45f9ed49 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x45ff8535 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46109243 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x4611877a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x46226cd4 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x462d4378 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x462e238d mtk_clk_unregister_plls +EXPORT_SYMBOL_GPL vmlinux 0x4635927c nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x463ec36c vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x46407165 devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x4657d72a regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x4664aa8c edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x46694f73 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x466c3402 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x466d0f2a __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x466e5342 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x467f5de4 tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x468ec976 thermal_zone_of_get_sensor_id +EXPORT_SYMBOL_GPL vmlinux 0x46a47721 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x46a4b602 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x46a8d864 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x46bb4265 snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL vmlinux 0x46bc4830 fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0x46bcb80c devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x46c06c19 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x46c5be22 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x46cb2d4e devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x46d524c4 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x46d703a6 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x46de0685 xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x46e7b24f pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x46edec82 genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x46f3ec12 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x47050be6 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x471d56f9 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4723fa6e devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x472badc5 snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL vmlinux 0x472c9419 fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x47314cbb pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x47317949 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x4744bda5 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x47536e1b nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47684fa2 skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x47867d56 mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x47925794 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x479cc4d0 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47bd138d snd_soc_component_compr_free +EXPORT_SYMBOL_GPL vmlinux 0x47c95c62 dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x47d52a9a regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47dea766 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x47e1e1a8 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x47f08cb7 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x47f6b4da class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47f7a94f devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47fbd8d7 __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x48020c1c irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x4802276d dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x484779ef __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x484f26fd ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x48515bd3 devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0x4856c4b5 page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0x485fb209 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x486ba5c2 crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0x486c5879 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x48777c72 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x487a449c blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x488ddcf9 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48ac05d6 __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x48b2055b __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x48b30718 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0x48b9f4c5 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x48c15163 devm_qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48cc2eb6 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x48e7ab6a rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4925b178 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x49326ef6 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x493650dc irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x493fc33c pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x494e1069 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x497fb768 devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x49830f0e __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x498865b1 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x4991d4db tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x499a4fc4 devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x499b530a virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x49b7cf44 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x49bad84f unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x49bc3340 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49cd73a1 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x49d6412a rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x49d96707 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x49de22d1 led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49eb80f6 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x49f00331 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x4a07c87d i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0x4a101e86 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x4a12bae4 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a247eef clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x4a2c9ad8 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0x4a37fb82 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4a56cce2 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x4a592c2c thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x4a697445 cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4a700bd6 fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x4a7b54c5 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x4a7d0c0f irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0x4a7e2fb0 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x4a8f0564 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x4a95ad2f scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x4a96b388 _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x4a9c10c8 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x4aac4ead da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x4ab697ec usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0x4ac22511 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x4ac5b13e usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x4ac77b9a mtk_mux_gate_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ae7104b mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x4b1654a7 pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4b39334a fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x4b449840 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x4b4b40d2 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b57640d device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x4b6f5948 split_page +EXPORT_SYMBOL_GPL vmlinux 0x4b90973b ahci_shost_groups +EXPORT_SYMBOL_GPL vmlinux 0x4baabc96 __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x4bbbfe8e get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x4bbe2cd1 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4bd936c4 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4bf0b762 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x4bfc8c09 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x4c08c83d regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x4c0f951b ahci_platform_disable_phys +EXPORT_SYMBOL_GPL vmlinux 0x4c198c1e crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x4c1bce1e musb_set_host +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c55afb1 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x4c7a8b37 pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x4c842605 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x4c8b1cb9 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x4c924177 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x4c9e1a01 __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x4ca5545b proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x4cacb19b fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4cbd69d7 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x4cc50615 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4cd13a05 pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x4cd3e46c spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x4cdc6c91 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4ce42ad2 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0x4ce72c76 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x4cf24332 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x4cfeb89d rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d03b96e vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x4d0686d4 sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0x4d117b15 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x4d219aea mtk_is_virt_gpio +EXPORT_SYMBOL_GPL vmlinux 0x4d2587d3 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x4d38f1e0 bL_switcher_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d48b8b5 __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d6ea6a9 vfio_file_set_kvm +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d82db15 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x4d892d2c xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x4d8d553f fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x4d923d0d pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4dbf569a ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x4dc2aaa5 crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0x4dd12b61 bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0x4dd86d04 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de2381e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x4df842a7 kthread_func +EXPORT_SYMBOL_GPL vmlinux 0x4dfe32d3 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e222f37 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e6581cd iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x4e77fb74 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x4e848301 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x4e8a277b wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4e9849d1 hisi_clk_register_phase +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4eb787ca ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x4ec0fac2 __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x4ed232c8 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x4edf194c max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4ef9c338 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f221155 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f3ba219 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0x4f4d5caa alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f6b3c40 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f8a9130 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x4f8d1a54 ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f9cff9e pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0x4fd8f996 gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fede432 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x4ff95955 devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0x500c8195 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL vmlinux 0x5019bef5 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x501e60d7 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x5021c229 dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x503eeebb synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x503f7a02 wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0x5045e70b regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5048ae06 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x5054d51e usb_of_has_combined_node +EXPORT_SYMBOL_GPL vmlinux 0x5055616c wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x50595886 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x505ac428 bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x505c5876 xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5065aad2 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x50665445 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x50703085 pinctrl_generic_get_group +EXPORT_SYMBOL_GPL vmlinux 0x50803b40 device_wakeup_enable +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 0x5096d647 scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x509979aa __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x509a21dd crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x509a911c regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x509d5f55 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x50a3b412 irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x50b88f41 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL vmlinux 0x50bf31e2 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x50c08864 dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50caca60 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x50dc8437 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x50e412d5 altr_sysmgr_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fc49c3 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x51153b89 __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x51186717 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x5120b328 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x5128b9b5 dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x51379137 usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x514b4f61 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x516ba17a ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x518c25a7 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x518cff98 pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x51991b38 mtk_mutex_enable +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51a41544 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x51b076cc irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x51be7898 pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x51bfbdd4 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x51ccd7fa pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x51df3bd1 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x51e5100b snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0x51f635bc mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x51fb4aa1 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x52073255 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x5214e807 mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x521a0563 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x5236497d trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x52386397 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x5247d3d1 sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x524f0a3d ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x5258062a bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x525be224 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x5273796e __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x52975fb1 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52c212c5 devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52c9a961 dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52dcaabe of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x52e2bb67 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x52ec337a devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5314aebd usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x5315c102 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x5322e899 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x5328a7a6 __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x53436952 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x5349313b power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x53511e91 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x535df4aa of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x536353cb xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x536cfbc4 pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x538634c1 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x5387c039 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x538f61c0 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x53a1053c snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x53a13806 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x53a56400 blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x53b3920b __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53de3c66 kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0x53e18d98 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x53ff35e2 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x5402e097 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x54172702 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5427fba3 iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x5435454c divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x5436a2c4 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x5447a97a nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x5478ec8d ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x547ea619 fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x548c929c pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x5498f0ce sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x54a25da2 qcom_smem_state_put +EXPORT_SYMBOL_GPL vmlinux 0x54a2d8cb xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x54a4e68f dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0x54a525c5 crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x54dd4490 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x54e0e54c inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x54efcdf1 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x550868ab __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x550947c4 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x550bbba3 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x551a464f l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x551acea4 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x55362e87 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x553f0954 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x554c2f8d __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x555a04f3 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x555a8a67 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x55625d66 sdhci_reset_tuning +EXPORT_SYMBOL_GPL vmlinux 0x556cc0d4 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5580e327 icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x5581e767 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0x55894370 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x55929818 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x559b38e1 pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0x559e7026 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x55a15381 __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x55baa295 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55d04acb snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL vmlinux 0x55d6cffc icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x55d6e495 nanddev_isreserved +EXPORT_SYMBOL_GPL vmlinux 0x55e06101 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x55e29c6a rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x55e2c51b aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x55ec0b69 xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55fc85f9 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x560ff7eb samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x561d286d skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x562e9d4c tegra_mc_probe_device +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL vmlinux 0x56389ec4 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x566957c9 tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x566f20cb cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0x56716af6 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x568280ab pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x5684a5d8 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x569d46de mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0x56a6a76c net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x56b0e5af ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56b6c74c devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x56b8a17c debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x56bb81ca debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x56cf94ec regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x56d96d67 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56ea78ee crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x56f85fb1 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x571636b9 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x571f761e mtk_eint_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x572f990f snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL vmlinux 0x5749ddbf bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0x5756a1b1 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x576172c0 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5764e2d5 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x577d131b pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x5782e67d iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x5785b23b dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x578ab784 mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x57969755 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x5797891e __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a231cc usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x57cbdb37 snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL vmlinux 0x57d2c8e0 rockchip_register_softrst +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57e99ee6 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0x57f1665d snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x57fda5d0 iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x580e83ee irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x581bae1f dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x581f45c2 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x58235f81 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0x58271377 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x5830a383 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x583f120a xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x58425747 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x58437d0c subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x58481015 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x58601dec fuse_send_init +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 0x587ca792 tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x58a28376 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x58b01db8 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x58c6dbf8 kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0x58d6f0e6 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58e4ff50 phy_init +EXPORT_SYMBOL_GPL vmlinux 0x58f0308a clk_regmap_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x59192b55 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x59255141 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5935f25f xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x593bff76 __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x5949b457 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x594d9540 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x59551cc1 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x5988875b led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x598dca3c regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x5990367d rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x59a1fab8 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x59a70b7c regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x59b2b975 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x59b5def6 clk_regmap_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x59b93454 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x59c21fb2 musb_queue_resume_work +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59d2bd6d irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0x59d4e0d5 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x5a03e601 tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a2acc8a __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x5a2b80ed edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0x5a358a46 snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x5a482aa5 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a65ce14 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a831ac1 devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x5a84abe5 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x5aa0a80b md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x5aa1dfed sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ab2d34c __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x5ad71442 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL vmlinux 0x5ad7616d tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x5ae5cb05 of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x5aebef49 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL vmlinux 0x5b129885 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b316080 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x5b3bdea8 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x5b472de0 sdhci_cqe_enable +EXPORT_SYMBOL_GPL vmlinux 0x5b602b86 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x5b7e2a31 mtk_pinconf_adv_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x5b82d911 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b8a9fe3 __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x5b90566d msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x5b992f3d of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x5b994e71 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x5ba428f2 of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5bae983f debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x5bbb9b73 mtk_clk_register_muxes +EXPORT_SYMBOL_GPL vmlinux 0x5bc61e58 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd185cd da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5be57241 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x5bf9fa9e platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x5bfafb5f yield_to +EXPORT_SYMBOL_GPL vmlinux 0x5c2016b1 crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x5c22b032 blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c309e65 hibernate_quiet_exec +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c4dd5d1 qcom_smem_state_register +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c642f34 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x5c660055 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x5c724709 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5c7a4f16 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x5c7c17ef serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c849c86 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x5c8d4b57 encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x5c9c6a76 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x5ca01320 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5cbd3c21 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x5cc2a511 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x5cc96a01 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x5cd91bd5 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x5ce90bb4 scmi_protocol_register +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cf0edcf clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x5cfa5ccf set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x5cfe0c64 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5cfefa4d crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x5d02bb59 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x5d0547af sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x5d0a0eff __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5d0b4b38 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x5d23318b sm501_modify_reg +EXPORT_SYMBOL_GPL vmlinux 0x5d2a015a devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d3196ea cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d31faba devm_thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x5d344db3 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d374188 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x5d474bb8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x5d49eae4 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x5d4bf724 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5d66fb10 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x5d6a2bc9 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x5d6fa589 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0x5d70abc0 swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x5d7693cb platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d827246 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x5d82a5b8 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d87ffe2 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da4d94e sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5dafdc57 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x5db14c4f cpts_misc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5db5ffc8 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x5de1ecbc usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x5df1fc6a rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x5dff6fda x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x5e088f3e pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x5e0daf3f pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5e147ffc devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x5e1e9354 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x5e1f6dfc iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x5e29bc97 tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x5e301e79 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x5e3c606d devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5e43839d usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x5e45e45f of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x5e504919 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e590cc9 validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x5e5c8a1e devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x5e67b71d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0x5e6a0f71 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5e8957b7 nand_status_op +EXPORT_SYMBOL_GPL vmlinux 0x5e8d1f80 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x5e91b4b9 icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0x5ea267ef blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x5eac2981 mtk_clk_register_composites +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eae966e regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5eb81524 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ec2319a mtk_mutex_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x5ece45fb cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x5ef3f5ef i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0x5efc5458 msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0x5f0100cd regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0x5f142fbe crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x5f19f294 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x5f1e39f7 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x5f1ec905 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x5f3c17df trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x5f552280 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f6f4e77 snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL vmlinux 0x5f82c693 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f95d8e5 regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x5f9e630f crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fab8285 start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x5fbb3467 pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5fbd093f mmc_pwrseq_register +EXPORT_SYMBOL_GPL vmlinux 0x5fc1bb86 crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x5fc5afc4 ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0x5fccd6ab srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x5fe12e23 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x5fea1d81 pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x5ff46320 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5ffbd42b mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x5ffe9aa7 __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6006e5b4 dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x600b1d10 usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x601d998d ahci_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x60236fa9 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x6028a06c genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0x60300d22 mtk_clk_gate_ops_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x6035e696 __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x6039b2cb mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0x604872db spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x60606431 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0x6060ee96 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0x60616ffd ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x60671345 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x6075d0c7 omap_tll_init +EXPORT_SYMBOL_GPL vmlinux 0x607b74ab snd_soc_find_dai +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x608256dd ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x6083ab93 devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x608b29f1 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x6094d567 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a60f6c clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60b21252 rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x60b96400 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x60bb964b usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x60be66e2 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x60c08e16 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x60de7f8d spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60ec38e1 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x60f1292c snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL vmlinux 0x60f38679 sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x60f90c69 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x60fba59a tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x6102d73f sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x610a752e get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x610be256 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x61123c3b ahci_platform_enable_clks +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612b4ee8 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x613651f3 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x6143b295 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x614782f1 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all +EXPORT_SYMBOL_GPL vmlinux 0x615b2e33 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0x6166b625 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x617574f3 fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0x6177fc53 nand_change_write_column_op +EXPORT_SYMBOL_GPL vmlinux 0x617a2833 sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x618180e8 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x618bfcc7 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x61931ece phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0x6197040a irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x6197771c dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x61a6c44f sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x61a9b7a6 snd_devm_card_new +EXPORT_SYMBOL_GPL vmlinux 0x61ba4dfb blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x61ba8b76 sdhci_cqe_irq +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61d88157 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x61e7b699 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x620eb0b6 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x621a6d5c serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x622704f8 dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62310556 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x625be818 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x626cbd07 sdhci_end_tuning +EXPORT_SYMBOL_GPL vmlinux 0x6272adc5 __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x62738eee blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0x627f5275 dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x62a1ad1a dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0x62a8b4c8 crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62c884d9 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x62cd84ca fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x62d0e2a6 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x62dfef0d rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x62f3f553 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x63090722 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x630c6ffd relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x630fd75b put_device +EXPORT_SYMBOL_GPL vmlinux 0x63149c59 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x63197685 s2idle_wake +EXPORT_SYMBOL_GPL vmlinux 0x632a6f75 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x632f16d5 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x633cb2c6 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x633d677e __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x635163f8 tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x635549f4 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x63632870 blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0x6363f3e9 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x6368fb38 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x63808708 xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0x638906bf ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x6389f004 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x63a3bb30 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x63bfe264 snd_soc_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63c52ac6 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x63de391d phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0x63e03263 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63e75bca icc_disable +EXPORT_SYMBOL_GPL vmlinux 0x63e7916f ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x63f483f2 irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x64081f7b bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x641656a5 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x6419bba9 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x6420b446 of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6426464b do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x64290992 snd_card_ref +EXPORT_SYMBOL_GPL vmlinux 0x64334fff kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x64411794 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x644bfdcf trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x644e7646 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x645867b7 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x6472b569 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6491fdb0 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x6493a2df rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x6496896e snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x6499ca92 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x64a2c7e7 meson_clk_mpll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x64bcdcf9 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x64c07d32 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x64ca0d3e vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x64ca4f1a subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x64d8f5d2 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x64dd1687 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64f08ead da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x64f42404 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x650abf53 mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x6515dde6 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x65280b38 snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL vmlinux 0x65284995 efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x652b6601 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0x65306e71 edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x6542dc45 regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x65506d3f dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x65537437 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x65698aae pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x656e1fd1 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x659cc187 serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x65a5f366 genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x65ac5eda iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x65ad26e2 devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x65c18e22 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65db8e61 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x65def01d mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x65e8472f scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x660141ee pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x66123376 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661b5995 crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0x662d3898 dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x6649552c posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x6656dbcf ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x6675ef67 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x668e169c debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x66922558 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x66942505 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL vmlinux 0x66a20022 nanddev_markbad +EXPORT_SYMBOL_GPL vmlinux 0x66a822e7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x66b26b2b clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x66b41274 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0x66b66cc4 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66c53f7e devm_snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x66ce6fbf dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x66cf5dfd gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e66e7f iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x6703903b register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x670668cf dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x6709da3e crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x670c3c3c usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x671ffa5b spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x6721d424 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x673e8507 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x6740a81e device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x674a5dd0 omap_iommu_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x6759230c fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x6764670f skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x6781513c __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x678b43cc dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x678fd03f nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679cdbce pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0x679f501e xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x67afd036 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x67bf66c7 led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x67c27dfd rockchip_clk_of_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x67ced6df dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67dae8c9 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x67db4fb0 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0x67dbbb8b __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x67ddfdb9 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL vmlinux 0x67e847cd device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x67f5fb4f sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x68073314 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x682b8518 of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x683a2ddd register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x683accd4 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x68493a64 devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x685a1b3f extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0x687525ba badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x68758fda nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x687bbe26 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x687d484e trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x687f9bad sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x687fca31 imx6q_cpuidle_fec_irqs_used +EXPORT_SYMBOL_GPL vmlinux 0x6889976c gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0x688d8910 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x68b85a67 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x68c083ef pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x68dd81b8 ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0x68e2bf50 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x68e321a7 snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL vmlinux 0x68f98cfc add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0x68faea39 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x6913865a trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6913d0e2 hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x692a4f08 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x692b3df2 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL vmlinux 0x69362925 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x69388018 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x695bf5e9 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x69682dce cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x696f1e43 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69819f67 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x69a79079 rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0x69a999ce snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL vmlinux 0x69ae0201 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x69ce6aad pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d28eac mtk_clk_unregister_composites +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69e83605 mc146818_get_time +EXPORT_SYMBOL_GPL vmlinux 0x69eb11e7 tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x69f40d0f bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69f6aa8e sdhci_cleanup_host +EXPORT_SYMBOL_GPL vmlinux 0x69fa4cab crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x69fe66b4 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x6a055e2a snd_soc_component_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a09d086 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6a19d11d input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x6a29e5d2 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0x6a4559d9 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x6a460dc5 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x6a4f623b mmu_notifier_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x6a58649a platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x6a5e6b14 i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0x6a64cecc pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x6a6bf8e3 dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x6a76832a key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x6a930e99 tegra_bpmp_free_mrq +EXPORT_SYMBOL_GPL vmlinux 0x6a9eee88 devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x6aa5e412 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x6abfec36 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x6af7ccf9 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL vmlinux 0x6b05786b regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x6b0972d5 unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x6b0a8e87 devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x6b17df14 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b1ebf09 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x6b1fb4b2 l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x6b20b347 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x6b334acc trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b39851f dev_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b47f8a4 hisi_clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x6b7b2472 iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b86b38a shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x6b8eb159 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x6b99d828 fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x6b9b4340 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bac3b4b tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0x6bb68d69 rockchip_clk_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6bc5945d sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x6bcd8400 skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6bd74b19 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x6bdce39d list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x6bdd680c snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL vmlinux 0x6be5a701 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x6beb9e47 __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x6bfafd7c blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x6c1097f5 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x6c1117a6 gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x6c16ab3d icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x6c29cf44 exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x6c2bfbe1 devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x6c3ebd74 usb_match_id +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 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c7b435f mc146818_does_rtc_work +EXPORT_SYMBOL_GPL vmlinux 0x6c88ab1e edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6c8ebd2b of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6c9c3fef snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x6ca360aa bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x6ca3b842 pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cad72c5 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x6caf7f85 ahci_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x6cd17e49 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cd20d6c serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x6cd7613c sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x6cd96910 __kmap_local_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x6ce53ebf devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x6cecfddd rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x6cfecf98 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d0a6263 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d17ffab device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6d1eae64 dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x6d207e08 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x6d262af9 dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d467b08 arm_smccc_1_1_get_conduit +EXPORT_SYMBOL_GPL vmlinux 0x6d4ad4c4 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x6d61f8f9 snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x6d63e61a fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x6d68b4d9 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d8747a0 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x6d9a9c93 snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x6db14158 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x6db91085 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dc43f43 imx6q_cpuidle_fec_irqs_unused +EXPORT_SYMBOL_GPL vmlinux 0x6dcb6a07 ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x6dd1b8a7 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6de4c0e0 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x6de5e17e usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL vmlinux 0x6de60ce4 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x6df02a54 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x6df93ce6 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x6dfdfce4 device_create +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e423021 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x6e44e7f3 regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0x6e5cb200 nand_reset_op +EXPORT_SYMBOL_GPL vmlinux 0x6e635087 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x6e679321 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6e683693 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e7bb647 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e9071d1 vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x6eb1c8ba nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec532b0 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x6ed57bb3 devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x6ee06b66 sdhci_request +EXPORT_SYMBOL_GPL vmlinux 0x6ee6bf58 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6ee990d1 lpddr2_jedec_manufacturer +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6f030f1b mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x6f0a3f13 rockchip_pcie_init_port +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f12e0df ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x6f1cbcf6 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f2580c4 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x6f29f506 pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0x6f39d29d udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f6c2a59 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x6f6e252d disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f896299 tegra_xusb_padctl_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x6f8c90e6 devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6fb7e313 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fd3865c xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0x6fdb1360 wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x7007c3c7 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x7016744a usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x70196037 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x7021a748 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x70240944 clk_hw_register_gate2 +EXPORT_SYMBOL_GPL vmlinux 0x704065f1 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7070a1ab pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7098f3b8 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x70bbb4b8 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x70c6d827 mc146818_set_time +EXPORT_SYMBOL_GPL vmlinux 0x70c868a5 dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x70cd9b8e __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d08002 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x70e24953 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x70e3d796 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x711c90c4 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x711cc0b2 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x71204829 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x71290422 gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x712a75e2 fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x713dcf85 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x7141ae47 dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x7145544f mtk_clk_unregister_gates +EXPORT_SYMBOL_GPL vmlinux 0x71568dd4 scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x715a4f37 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x7178ee33 sdhci_set_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x718d8c4f amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x71925004 snd_soc_runtime_action +EXPORT_SYMBOL_GPL vmlinux 0x71941819 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x719a02b5 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL vmlinux 0x719d4378 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a12bc6 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a9a3ab mtk_mutex_acquire +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71bc5f31 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x71c0c4a7 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x71d53bde pci_bridge_emul_conf_read +EXPORT_SYMBOL_GPL vmlinux 0x71e8c1ba tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x7204325f wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7208ee1a ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x720a7c3d pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x721548ac mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0x721a83cc sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x721b08f6 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x72231fe0 devm_thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7236bdf8 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x723e2349 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x725ab212 usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x72697e40 power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72899571 iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x728a5f99 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x729030d7 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x72ac9421 pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x72aec3fb tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x72b299e1 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0x72b32481 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x72bdb683 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x72c1f307 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72d5eede pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x72d8689e blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x731968d3 mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x731a0f72 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL vmlinux 0x732d255d regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x73573a5b of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x73661f22 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0x737395bd __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x73788296 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x7391e9a9 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x739c2627 cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x739fbeaf i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ad7254 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x73b17ed1 mtk_pinconf_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x73b3cf19 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x73b86875 __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x73b98231 asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0x73b984ee msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73d44ddb mtd_ooblayout_free +EXPORT_SYMBOL_GPL vmlinux 0x73de3db2 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x73dec9ba xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x73fae215 gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x740783fb __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x7417d647 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x74251934 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0x742ae026 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x742e60c0 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x74372a79 iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7440b316 crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0x74573aa4 meson_pmx_get_funcs_count +EXPORT_SYMBOL_GPL vmlinux 0x745c782a efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x7490912d auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0x74a32d82 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x74a845b8 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x74a9f0b5 vfio_uninit_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c5cfed umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x74d04ebb crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x74feb0af vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0x7513b5ec __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x752b9734 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x753498d0 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x753c8dc3 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x754efd03 __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0x75564034 pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x755ae3c8 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x755c105f fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x758b89d0 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only +EXPORT_SYMBOL_GPL vmlinux 0x7591838c devres_get +EXPORT_SYMBOL_GPL vmlinux 0x75924281 gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x75a20292 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x75a77008 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x75b0e71d wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x75b0fe1f con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x75ba60c5 __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x75bf6cc0 is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x75c1e28e dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0x75d75f6b xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x75dc842b ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e8b7e8 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75ef4820 meson_pmx_get_func_name +EXPORT_SYMBOL_GPL vmlinux 0x75fb9062 arch_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x761634e1 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x761661cb tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7622f998 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7631e2f7 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x763293db iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x76379de7 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x763a55eb device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x764a60ca spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x765af157 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x7664637f fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x7679af17 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x767eebcc sdhci_cqe_disable +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768ccc0f dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x76953dc9 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x7697d582 usb_add_gadget +EXPORT_SYMBOL_GPL vmlinux 0x76b7c59a dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x76d205be crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x76df70e4 __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x76e10a88 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x76ea5ea5 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f45c83 sdhci_set_power +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x76ff7b4e serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x77049b12 power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x7704c836 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x7711bec6 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x771dfcee cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x773f2713 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x775f9b08 blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x777bf898 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x777c46ff perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x778cd0b9 pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x77920980 vfio_register_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7797d873 __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x77a24e76 of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77b46ffb usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL vmlinux 0x77c9339f rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x77cabd62 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL vmlinux 0x77d2a416 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x77d2ac91 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77fbc7a5 phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x7804b816 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x780cb6b3 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x782036a5 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x782980a6 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x786070df nand_erase_op +EXPORT_SYMBOL_GPL vmlinux 0x7864f282 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x7871651e crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x7880951e extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x78897731 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x789072b4 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x789291f8 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x78b6e0ea mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x78d59d95 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x78d8443d crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x78ddb76b dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x78e3ceca dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0x78f8714a phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x78f95a24 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7918c9ad bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x793d3dad irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79470a2c TSS_authhmac +EXPORT_SYMBOL_GPL vmlinux 0x794954d6 extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x794a0461 rockchip_pcie_disable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x794b7271 orderly_reboot +EXPORT_SYMBOL_GPL vmlinux 0x7963da74 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x79819caa fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x79a90cba addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x79a98cbb omap_iommu_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x79cc0cac __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x79d9940a sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79f08caa usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x79f14997 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x7a1133e8 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x7a158b25 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7a2e49fa ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x7a4803cf sdhci_reset +EXPORT_SYMBOL_GPL vmlinux 0x7a48d06c cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x7a5534e5 devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7a5ae79b scmi_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a76b35d fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0x7a7f1396 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a81e6d4 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a99854e pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7a9a77a3 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x7ac10ad8 icst_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7acc838d snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7aeb56cf __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0x7af2e1a7 pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x7b0e12e4 fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0x7b118a34 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x7b1228ae pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b246ae9 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x7b247038 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7b3edcb3 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x7b44908d usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x7b45a4a5 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x7b489ee0 __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7b4a0d0c snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0x7b536d97 mtk_clk_gate_ops_no_setclr +EXPORT_SYMBOL_GPL vmlinux 0x7b590fa5 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b5c616d bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7b753378 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7b7ef2a4 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7b9e58be imx8ulp_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7ba08a6b switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bc645aa devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x7bc649fa clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x7bcfb9c3 device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7be4fc96 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7bf2967f tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x7c0713eb devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x7c0a6549 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7c1c6e2b tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c359a2d iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x7c3d6112 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c417624 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7c54582d snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL vmlinux 0x7c5968da disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7c66621d efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x7c80a0c6 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x7c85fe9a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7c92265b usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7c983a5d dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x7c9a7371 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7c9c690f sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x7ca1ca31 pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cbf39ce acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7cc4fcda irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf61a89 of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7d00cfa1 fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x7d08f022 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x7d23fe57 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x7d2dba01 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x7d333e5c snd_soc_new_compress +EXPORT_SYMBOL_GPL vmlinux 0x7d3ec733 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x7d416024 regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7d4cd688 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x7d4ff68d virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d76baad relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x7d856eca dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0x7d8faf9a __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7d90f49c dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7d991f30 nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x7dbd136a ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x7dd1c36e nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x7dd64775 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddb2e90 bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7df07616 fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x7df70273 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x7dff1ef1 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7e050981 cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x7e0ebc72 fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x7e14204c pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x7e174528 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0x7e2d0f5a ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x7e2d50dd __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x7e319fc4 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x7e3a2fe8 __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e3fb02a mtk_pinconf_bias_set_combo +EXPORT_SYMBOL_GPL vmlinux 0x7e44311d genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x7e45ee0c unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x7e55ccf1 __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e5ea803 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6d2e97 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL vmlinux 0x7e72cd86 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e84b2bd pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x7e89828e dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7e92313d pinmux_generic_remove_function +EXPORT_SYMBOL_GPL vmlinux 0x7e94e77c netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7e960440 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x7ea93230 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x7eb00a3f usb_gadget_giveback_request +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ec26baf mtk_pinconf_bias_get_combo +EXPORT_SYMBOL_GPL vmlinux 0x7ed4747a gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x7ed62fa3 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x7ed67f52 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x7ed8d0ac fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x7eda12d9 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x7edd9fd4 mtk_pinconf_bias_get +EXPORT_SYMBOL_GPL vmlinux 0x7ede47f5 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x7ee7af4a __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f059733 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7f0ff3b9 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x7f11fbef nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x7f1f89b7 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x7f2623ee mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x7f26d770 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x7f370a56 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x7f3b5da6 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x7f4aa431 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x7f564e47 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x7f57ec15 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0x7f5bdb3e crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x7f69de33 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f8af46d rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x7f8dd2bb bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x7f9b0246 of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0x7f9cbdd1 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7faa6ba9 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7fafdec9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fbc7c80 of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x7fca3c84 snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0x7fcd883b crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7ff2d8ec snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __class_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __device_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __imx8m_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ktime_divns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sdhci_read_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sdhci_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __xas_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_do_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_handle_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_disable_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_enable_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_init_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alloc_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_smccc_get_version +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switch_request_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_put_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_trace_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bch_decode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_poll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bprintf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_last +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cci_probed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_gate_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crc64_be +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff create_signature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cros_ec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dapm_pinctrl_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devices_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_init_vexpress_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_tegra_core_dev_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dtpm_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dtpm_destroy_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exynos_get_pmu_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_rs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsl8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpmc_omap_onenand_set_timings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_ack_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hibernation_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_register_gate_sep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_reset_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff host1x_context_device_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_detect_slave_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_slave_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icst_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx93_clk_composite_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_1443x_dram_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_ccm_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_clk_hw_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_clk_hw_pllv4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_dev_clk_hw_pll14xx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_pcm_fiq_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_pinctrl_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_rs_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipi_get_hwirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipi_send_mask +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kick_process +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kvm_arch_ptp_get_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lcm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mc146818_avoid_UIP +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mcore_booted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mcpm_is_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md5_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_run +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson8_aobus_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson_a1_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson_pmx_get_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmput +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_strmode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_tx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_alloc_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_build_eint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_factors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_gates +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_unregister_factors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_unregister_muxes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_eint_do_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_eint_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mmsys_ddp_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_add_comp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_remove_comp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_adv_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_adv_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_clearb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_readl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_set_peripheral +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_writew +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mv_mbus_dram_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mv_mbus_dram_info_nooverlap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_add_window_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_add_window_remap_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_del_window +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_get_io_win_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_get_pcie_io_aperture +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_decode_ext_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_ecc_restore_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_ecc_tweak_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_prog_page_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_read_data_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_readid_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_select_target +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_soft_waitrdy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_subop_get_data_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_route +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff no_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_changeset_revert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_device_request_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_parse_idle_states +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_mm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_msi_configure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_overlay_fdt_apply +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_platform_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_variable_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reserved_mem_device_init_by_idx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_thermal_get_ntrips +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_tll_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_tll_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff page_endio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_conf_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ecam_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ecam_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_remap_cfgspace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_gpio_set_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl08x_filter_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_group_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff probes_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff prof_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff public_key_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff qcom_smem_state_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff receive_fd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff region_intersects +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff return_address +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_protect_critical +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_armclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_branches +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_ddrclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pcie_cfg_configuration_accesses +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pcie_deinit_phys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pmu_block +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pmu_unblock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_register_restart_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff run_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scmi_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scmi_protocol_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_adma_write_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_dumpregs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_execute_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_set_power_noreg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_setup_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_start_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_switch_external_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sm501_find_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sm501_misc_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sm501_set_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_card_disconnect_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_card_free_on_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_compr_stop_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_request_layer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_device_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_fasync_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_kill_fasync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_fill_iec958_consumer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_rate_mask_intersect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_rate_range_to_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_power_ref_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_add_component +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_initialize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_read_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_write_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_dai_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sram_exec_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfb_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra20_clk_prepare_emc_mc_same_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra20_clk_set_emc_round_callback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_mrq_return +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_request_mrq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_mc_write_emem_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_read_ram_code +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_xusb_padctl_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ti_clk_is_in_standby +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff topology_clear_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff topology_set_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps65217_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_del_gadget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_fifo_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_fifo_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_free_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_set_halt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_check_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_initialize_gadget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_generic_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_udc_vbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_assign_device_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_file_has_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_file_iommu_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_unregister_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_port_rx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_unmap_object +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x7fffffff fw_fallback_config vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x7fffffff register_firmware_config_sysctl vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x7fffffff hwmon_device_register_for_thermal vmlinux +IIO_AD5592R EXPORT_SYMBOL_GPL 0x0e00af5e ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x7fffffff ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x7fffffff ad5686_probe drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0x7fffffff ad5686_remove drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0x54d8036f ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0x7ec87ecf ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x02076488 ad7606_probe drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0x49c44026 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0x24097546 adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0x7fffffff __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x19076276 devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x22e3262a adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x26c9b0ac __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x384144ce __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x57def4a3 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x6c60db58 adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x790ac083 __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7fffffff __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7fffffff __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7fffffff adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x7fffffff __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x70ee01fe adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x7fffffff adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x7fffffff adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x3569861f adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x7fffffff adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0x7fffffff adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x098f7007 adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x7fffffff adxl372_probe drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x2f9b8d5e ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x324502d3 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x4f7fa3e1 ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x6a0e69b9 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x58aa13d0 bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0x7fffffff bma400_probe drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x025d6633 bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x3db3c343 bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7fffffff bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7fffffff bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x0f9ec622 bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x518691f4 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x7fffffff bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x7fffffff bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0x17b957fc bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0x7fffffff bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x474afc3c bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x6fc8e31a bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x7fffffff bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x7fffffff bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x0f66b592 fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7fffffff fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7fffffff fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7fffffff fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x1120be8c hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x21f6a636 hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x24d717f3 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x3e2f862f hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x6e8a0b2e hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x75262493 hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7f0b74a7 hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x2311a5c9 hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x4eef860d hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x71de5a09 hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x7fffffff hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x342fc774 hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x0e189a0c kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x3f7f077f kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x594bde9b kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x181949fb ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x624aba92 ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x68dd984d ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7f5cab61 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x676f2f2c mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x7ec18921 mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x7fffffff mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x081e000e mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x1ed13a56 mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x23cb73e2 mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x301388b9 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x3d7a12e5 mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x466d651e mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x6af43d3b mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7471d576 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0x0f67164a mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0x5ae3d187 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0x7fffffff ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x580744ba rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x7fffffff rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x7fffffff rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x7ea3c01f scd30_probe drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0x7fffffff scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x09d2a4c2 ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x549b76fa ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x54f5dc7f ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x632eea13 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x6a9e067e ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fc45cf5 ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x074bf8a3 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x090f9c4a st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x093e6ef3 st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x0fb9a35c st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x11a4fdc6 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x2ec3b8e0 st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x2f168fac st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x37f19b4b st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x5acdfa65 st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x6277b1f9 st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0x6768eec7 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x68bc6834 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x6ae08923 st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0x7fffffff st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x7fffffff st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x7fffffff st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x2009ab0c zpa2326_remove drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x416642ba zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x5e16ff9a zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x6d5657a5 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7bfd44dd zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7fffffff zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IWLWIFI EXPORT_SYMBOL_GPL 0x02da2d11 iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0641688a iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x10ba6593 iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x13ca7c97 iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1c48129a iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1ee219d8 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2c0f571f iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2e219807 __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2e66af1a iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3318879d iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37a56961 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3d70e510 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4db61758 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x50c23039 __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x52208ca0 __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5799dcb3 iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x59b5ea27 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5ef4a44d iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x62ab4bf0 iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x63ff2840 iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6e78e2a7 iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7188d24a iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x723075c8 iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7c223c42 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7c398555 iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x106791a2 ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0x7fffffff ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x1b9e5f8f chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x1c9cfdb0 mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x2cb40d2a mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3a682650 mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x3f34f161 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x4342b6f9 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x593ff2d7 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x5ccf10a5 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7adf5803 mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7c967ca9 mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_unregister_driver drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x20e54234 nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x2bf3f78c nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x3c1eb72b nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x662b1514 nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_passthru_end drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x09590085 peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x104a3c36 peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x10cd54cc peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x14899402 peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x14c3721f peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x14db67c7 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x203c5e8e peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x2416ef43 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x311ee811 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x3bbca7da devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x518bbfc5 peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x5263e5df peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x60654be8 peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6707d0c8 __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6e540699 peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x721fab4c peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x1f8a09f0 peci_ep_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x476c34ee peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x4ceb9c01 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7fffffff peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7fffffff peci_pci_local_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x1f344e23 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x2cd6cb4d pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x36455cf8 pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3c6fa539 pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x4ee11910 pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x509dca89 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x58666278 pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x5cc51571 pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x682e7684 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x6865cb42 pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7db2e104 pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x224b41d9 sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x24b87d63 sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x69a88c36 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x7fffffff sx_common_events drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x7fffffff sx_common_write_event_config drivers/iio/proximity/sx_common +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x27047d1d cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3c832871 cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x0bc2afa2 dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x0c9cbfae dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x4a791c17 dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x6465a595 dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x6f9e3ebe dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_update_config drivers/spi/spi-dw +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x7fffffff firmware_request_builtin vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x00368d6a usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x0093df3d usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x01e87cf8 usb_stor_pre_reset 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 0x2413784e usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x27460de0 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3283f7b1 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x34a893e6 usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x46d80f5d usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4fd639be usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x616d5ed8 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x642e76b2 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x66909f3c usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7b062631 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_probe1 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_set_xfer_buf drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/armhf/generic-lpae +++ linux-5.19.0/debian.master/abi/armhf/generic-lpae @@ -0,0 +1,25971 @@ +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x199039c2 crypto_cipher_encrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x37dab0fd crypto_cipher_setkey vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x5384fa90 crypto_cipher_decrypt_one vmlinux +CXL EXPORT_SYMBOL_GPL 0x01265960 is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x01cfdfd5 cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x07411a45 cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x07aa5ac0 cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x1a684ec9 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x20e21734 cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x218fee5b is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x32cb71ea cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x3709e903 cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3a61cd66 cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3cf92792 devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x47424406 cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4780298a cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x485135bf cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4dea41c6 cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x568d4f51 cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5930dc69 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5a9d0a7c cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5ccee664 cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x63c68c65 cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x680b4f6c to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x698b30f8 __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x718f5240 to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x73e134a4 to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x73e70542 cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x74fe9fbd devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x76ccdd62 cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x79aba6e5 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x7fffffff to_cxl_decoder drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x1f524c67 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x26d6f231 dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x608585b7 dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6ab53516 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x76af0424 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fc0edd9 dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7fffffff dma_buf_vunmap vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x7fffffff chacha_init_arch +EXPORT_SYMBOL arch/arm/crypto/chacha-neon 0x7fffffff hchacha_block_arch +EXPORT_SYMBOL arch/arm/crypto/curve25519-neon 0x3c74a43e curve25519_base_arch +EXPORT_SYMBOL arch/arm/crypto/curve25519-neon 0x7fffffff curve25519_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x1c3e6e5b poly1305_init_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x6ddf27bc poly1305_update_arch +EXPORT_SYMBOL arch/arm/crypto/poly1305-arm 0x7fffffff poly1305_final_arch +EXPORT_SYMBOL arch/arm/crypto/sha256-arm 0x7fffffff crypto_sha256_arm_finup +EXPORT_SYMBOL arch/arm/crypto/sha256-arm 0x7fffffff crypto_sha256_arm_update +EXPORT_SYMBOL arch/arm/lib/xor-neon 0x2e9a6ad4 xor_block_neon_inner +EXPORT_SYMBOL crypto/blake2b_generic 0x7fffffff blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x7fffffff crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_is_pubkey_valid_partial +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_make_pub_key +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_point_is_zero +EXPORT_SYMBOL crypto/ecc 0x7fffffff ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_cmp +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_from_le64 +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x7fffffff vli_sub +EXPORT_SYMBOL crypto/nhpoly1305 0x26dd06b0 crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x3f53026b crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x56a9853e crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x7c54fadb crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0x7fffffff crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x7fffffff crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/sha3_generic 0x584f9f36 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0x6ff85d8c crypto_sha3_init +EXPORT_SYMBOL crypto/sha3_generic 0x7fffffff crypto_sha3_update +EXPORT_SYMBOL crypto/sm2_generic 0x7fffffff sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0x7fffffff crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x7fffffff suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x5f212c71 bcma_core_dma_translation +EXPORT_SYMBOL drivers/bcma/bcma 0x7fffffff 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 0x7fffffff drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0b7c4954 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x334b29b1 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x33621231 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x47a58fa3 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x4a5868a2 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x5a5b25c2 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x7fffffff pi_write_regr +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x50c81469 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0x7fffffff rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0x1b403528 mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2208ed3a ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c2054d7 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50064bb0 ipmi_add_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50f65edf ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x65c5d9ab ipmi_smi_watcher_register +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 0x7fffffff ipmb_checksum +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7fffffff ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x0152e6fa kcs_bmc_write_status +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x20f25239 kcs_bmc_unregister_driver +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x41b4306e kcs_bmc_register_driver +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x44aee827 kcs_bmc_write_data +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_add_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_disable_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_enable_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_handle_event +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_read_data +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_read_status +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_remove_device +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_update_event_mask +EXPORT_SYMBOL drivers/char/ipmi/kcs_bmc 0x7fffffff kcs_bmc_update_status +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x39edfc29 st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x45a636a4 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x495d1b5e st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x7fffffff st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x3e330aa3 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x4cebcd7e xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x7fffffff xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x0455416c xillybus_init_endpoint +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x741182eb xillybus_endpoint_remove +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x7fffffff xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x25c98843 clk_alpha_pll_zonda_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_fixed_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_lucid_5lpe_ops +EXPORT_SYMBOL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_5lpe_ops +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x0ed8a2f2 atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_ecdh_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_random_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7fffffff atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/caam/caam 0x37734e06 caam_dpaa2 +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x21ed7306 caam_jr_alloc +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x5ce6ef0b caam_jr_enqueue +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff caam_jr_free +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff gen_split_key +EXPORT_SYMBOL drivers/crypto/caam/caam_jr 0x7fffffff 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 0x7fffffff cnstr_shdsc_aead_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_aead_givencap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_aead_null_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_aead_null_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_gcm_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_gcm_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_rfc4106_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_rfc4106_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_skcipher_decap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_skcipher_encap +EXPORT_SYMBOL drivers/crypto/caam/caamalg_desc 0x7fffffff cnstr_shdsc_xts_skcipher_decap +EXPORT_SYMBOL drivers/crypto/caam/caamhash_desc 0x30a1e372 cnstr_shdsc_sk_hash +EXPORT_SYMBOL drivers/crypto/caam/caamhash_desc 0x7fffffff cnstr_shdsc_ahash +EXPORT_SYMBOL drivers/crypto/caam/error 0x2eed504a caam_ptr_sz +EXPORT_SYMBOL drivers/crypto/caam/error 0x5af22bb7 caam_strstatus +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_dump_sg +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_imx +EXPORT_SYMBOL drivers/crypto/caam/error 0x7fffffff caam_little_end +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0804a466 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c9b02ba fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2005ef82 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x22b4d824 fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x303fad29 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c67eeaa fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4101fcfa fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4454a8fd fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a3fef68 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4fc33f09 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x556601c3 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x59703a34 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x62c5abb1 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x69f08f72 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6c319806 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fffffff fw_send_response +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x59f29fef imx_dsp_ring_doorbell +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x7fffffff imx_dsp_free_channel +EXPORT_SYMBOL drivers/firmware/imx/imx-dsp 0x7fffffff imx_dsp_request_channel +EXPORT_SYMBOL drivers/fpga/dfl 0x7fffffff __dfl_driver_register +EXPORT_SYMBOL drivers/fpga/dfl 0x7fffffff dfl_driver_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01d9cfc8 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x02ea697a drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x044acaa5 drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x074775f3 drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0b440ef3 drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0d094c53 drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x129014fb drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x149b3126 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x17a5ac12 drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2575329b drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x269cbef2 drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26ed1fb3 drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2725d9f9 drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2b65925b drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3440d506 drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3ae34e1f drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x40c857ac drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x411cfc19 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x42cd3f34 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4874ec15 drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x49fed9ab drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4b433b73 drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4c80577e drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4da0e34d drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x52a84c74 drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x52f507a7 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5332bec1 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x54169583 drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x54e92a6b drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x54f17ddd drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x552b179e drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x55998ef8 drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5d670667 drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5fc309f7 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5fe21b86 drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x617a01cf drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6194ab68 drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x61b2315b drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x646cab5e drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x680dd68d drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b04f947 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b117a0f drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6c6c88a5 drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6e020b56 drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6ee71ecc drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7118afa2 drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x71ad0121 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7449321e drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7b1c0a72 drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7bc613ce drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7c53d4f7 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7cb7ad11 drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7fffffff drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/drm 0x005ec20c drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00847548 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00de8419 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x00e5df45 drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x013cfce2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0174cf8c drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01c28ae0 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0217eec1 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x021b7566 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x028a9627 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03331837 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x033e1a7a drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x034051b2 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0342713c drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x038e3577 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04e9aa6f drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06475f5c drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06744e4a drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07325f81 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0745853b drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x08a2e9db drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0aaeea82 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ef11508 drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f522bf8 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ff7b7bd drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x109c5f0a drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10da2474 drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x113c5f18 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11cf31bd drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d86d25 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12ae7c39 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x130a58b1 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13bd3f95 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13d941a4 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1400c3e8 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14bded3e drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x166ba850 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x173ebd12 drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18dff885 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18f06a5b drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x19315e39 drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x197e1389 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d2d589a drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd6ea99 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e70699a drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eb39941 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f457c34 drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20e829d1 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21b9f292 drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21ead9ae drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22b95ed5 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24b3afb5 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24bd0591 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24fb2ba3 drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0x251d3b9f drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25441744 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b4dcb6 drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b7919b drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25cd60ec drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25e2953e drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26773452 drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27120bc2 drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28a89c01 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29c688ac drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a716e65 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aed81cb drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf330b8 drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf87a17 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2da7a645 drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dfe8b60 drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed4a75e drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ffb4f84 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3330d35c drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x353073c4 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3568770c drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36122437 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3699836a drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x374a095a drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3782c369 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x380b5fbb __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x383d4569 drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39083bca drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39093b79 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3966c40c drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39ea8a9f drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a31c366 drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a4bb978 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3acf3e41 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3adf72b3 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3af41614 drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb06626 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ef791ba drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fea8e65 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x403c1271 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41cfc8c0 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42168f0f drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42e91bd2 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x438833f3 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4427c944 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x463bbca4 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4664bf82 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x482c00a6 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48453d79 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x494a595e drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a363cb5 drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a3d09c9 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b39913b drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c117667 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4cab24b2 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d73b36c drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f2c2938 drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f800c23 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f8169e2 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5034a799 drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51241279 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5389b848 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x539db5d5 drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x567e7a58 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5779ea37 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a331b0d drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b5b8347 drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bca4aaf drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de0ebb3 drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e7ebc62 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f1c9dd6 drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60c7ab84 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60ff78fd drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61483f7e drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6162d107 drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x617b0b6a drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6319bc78 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x640da50e drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0x647c1868 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64ca54d8 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65fe50be drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x665c40ae drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66d78d96 drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68ed69ef drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68fc80e0 drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x693d6be5 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69813275 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a200fdf drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bbd4f71 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cfa6367 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d72fc27 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e3c7687 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e65e1ce drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef6fd54 drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f240899 drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f6be657 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70389907 drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7041e62d drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x709e60e7 drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71221d52 drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71583377 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7177b21f drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71c1a08b drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x722807bf drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x741c1629 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7469958a drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74eaf26b drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74fd5260 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x766831c5 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x769a02fe drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77d53ba5 __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b4db28 drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a982704 drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aee1527 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b809f0d drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c688aab drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7cbeb4b2 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e0e1f9e drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e53d277 drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7eef3c89 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f3a668a drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f840b0c drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fc5d2e9 drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff of_drm_find_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fffffff of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x01359399 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x7423fd03 drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x006d108c drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x017f0ec4 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03c4bbd9 drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x04991018 drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x058e84db drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05c77b10 __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09d4ebd2 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fb3879b drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1015e841 drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11f7d17c __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1240cebb drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1663afa4 drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18db07f0 drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x19358440 drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e754a79 __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1eec6361 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2085bb47 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x209ca834 devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x211597e6 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21a82509 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2266f13a drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x231536df drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x24c3c7d9 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25cf4c20 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25cfdd44 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2742c4c1 drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2766952b drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x286da054 drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b8bdb00 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f4587ce drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31af4ec6 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3509cabd drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35a0fe71 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36c95379 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3906a6ee drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b07980b drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d880556 drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f431f1e devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x424c3af5 drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x42539d2f drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x43db1c3c drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x443f7795 drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4464d893 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46609493 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46f45b3d drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x473f40ee drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47e88edb drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4834906a drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4abc7eb4 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4bdd0606 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c809f0d drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4dc69c76 drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f19f820 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f72b833 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x51b29780 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x51d80035 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54bc2267 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x58e6f11c drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c0e88f4 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c50568a drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5db3bdd9 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e47b6fa drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5f275225 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fb758ab drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6293d9fa drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x651319fc drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6570a735 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6582ace0 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68245d8c drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a9ab792 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b0b9550 drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b9cf84c drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c3630c8 drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6cda3e79 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ce037fc drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6d7ebb84 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f3a439b drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71e04463 drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7488755c drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x756fcd69 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7766aeab drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x778303c9 drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b29a322 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ca7492b drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e016d38 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f1dc3c4 drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fe1aeab drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x0adc7d1f mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x0bdaef22 mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x102a9d17 mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x10be63fe mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x1daae06d mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x2f54f33d mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x32df9104 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x32e3729a mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x3879fffd mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x38b8a5d9 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x466fe447 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x5f7acdc2 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x7fffffff mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4302355d drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x684f55bb drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7ec7348c drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x1352b3e1 drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x2e7e5721 drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x50b996e1 drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x7fffffff drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x07925fc6 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x0e193bf8 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x1af2ec0b drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x297db505 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x560e6bf3 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5a00bd09 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x69734581 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x718aba58 drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x72c33855 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7c914162 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x7fffffff drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/rockchip/rockchipdrm 0x7fffffff rockchip_drm_wait_vact_end +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0a30c398 drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x20737dc7 drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x239c9219 drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x285e8406 drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3063624d drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3ebb6e81 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4a94485e drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4f3e9941 drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x5bab9877 drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x62f5006b drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7a25668b drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7afaf64c drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7dcd8ff7 drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7f93a2bd drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7fffffff drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x00d4283c ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0de476c2 ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10f3eea0 ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13790457 ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x14c013d6 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x14c097eb ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1814834d ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22bc9fc7 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x23adff16 ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24f87ae1 ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34dd7c5c ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b8441b9 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3bd173ce ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x454d6fa4 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4cdb9dd9 ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fbc509a ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55bf19d4 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x56c8777b ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x581b27a5 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f90cfb8 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66adcf02 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6e4f7b6f ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x720447b0 ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x75c1a361 ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x777ba054 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a91e590 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7bd474cc ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7eea6ce7 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fcfae8f ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fffffff ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x03d34075 host1x_get_dma_mask +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0466252b host1x_syncpt_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x060018b2 host1x_channel_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x061d284d host1x_syncpt_release_vblank_reservation +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x072cfd92 host1x_channel_stop +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x08ebada5 host1x_job_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x0f51a2c0 host1x_syncpt_read +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x15e82fd2 host1x_syncpt_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1c8d556b host1x_syncpt_get_by_id_noref +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x1cd2d1eb host1x_syncpt_incr_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x3211888e host1x_client_resume +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x365c3c69 host1x_job_submit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x39f2cb23 host1x_job_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x3dfd071b host1x_driver_register_full +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x401ed2e0 host1x_syncpt_get_by_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x4dfa1957 host1x_syncpt_get_base +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x51de13ce host1x_syncpt_base_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x57553ccd host1x_fence_create +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x5a9f39a9 host1x_device_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x5b8526d8 host1x_syncpt_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x689f3cce host1x_job_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x6bf356f8 host1x_client_suspend +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x72e78e54 tegra_mipi_start_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x754becac host1x_channel_get +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7687adbe host1x_client_exit +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff __host1x_client_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff __host1x_client_register +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_bo_pin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_bo_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_channel_put +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_client_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_device_init +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_driver_unregister +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_add_gather +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_add_wait +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_job_unpin +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_alloc +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_id +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_incr +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_read_max +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_read_min +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff host1x_syncpt_request +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_disable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_enable +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_finish_calibration +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_free +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x7fffffff tegra_mipi_request +EXPORT_SYMBOL drivers/hid/hid 0x474141ce 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 0x7fffffff sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x7fffffff sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x738277de i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x78973179 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x7fffffff i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5e46a018 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7fffffff i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x3dea0875 amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x7fffffff qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x63b594eb iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x7fffffff iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x552c2c8c iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0x7475f8cc iio_kfifo_free +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x7fffffff mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x7fffffff mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x7fffffff mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x5581e040 hts221_pm_ops +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x7fffffff hts221_probe +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x7fffffff bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x7fffffff bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x7fffffff fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x62b793da st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x7fffffff st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/industrialio 0x0f54436c iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x1299476f iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x1749c9ef iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x25a29da5 iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x3a5f3384 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x3c12761d iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x3f2b77e3 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x5a1bf49f iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x6210dd81 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x6c09515a iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x7738fc67 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x790277ef iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x7fffffff iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x7fffffff iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x00d49d86 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x3e5c3090 iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x7fffffff iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x7fffffff iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x1c3fbb91 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x5cecb0af iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x7fffffff iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x7fffffff iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x7fffffff iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x7fffffff iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x5aa3c843 bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x5cf342f6 bmp180_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x7fffffff bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x7fffffff bmp280_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0692d9ee ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2a1758ec ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x492cf5d5 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5858eff7 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5b746702 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6da0e956 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7fffffff ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0311c9aa ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03ad4e7a ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x049a76e4 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x080598f9 rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08806929 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x08a3fa85 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09b8780f ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09bce78a rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a31cb02 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b15b2a4 ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bca0394 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bf83b59 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10488a58 rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11243d63 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11641198 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13ae662a ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1453bc9c ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17baa6a7 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c01e8eb ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c862d1f rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1de9550a rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1de9a23d rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e81a6aa ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2250052d ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24044a7b rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x244a0aed ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28acb1f3 ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b9a6438 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c1929d1 ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c58a688 ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2cd762f5 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e107109 rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f384613 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x314061d0 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3155495b ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31cf2348 ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33422a66 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x367a4028 __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x376f02f6 ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x381905aa rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x392eab55 rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3abe8319 rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b48b961 ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b70aa3e ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d7177ce rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f060894 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fd87207 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x410d0a6a rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44458780 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44543ab2 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48228288 ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x482fef92 ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4944da97 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49b81017 rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a50f2d0 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a6d5575 rdma_rw_ctx_destroy_signature +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 0x50188a0a ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51bab3f5 rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x525f92dd rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52816510 ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x541ae768 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x54ae1171 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55f1aaa1 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55fd7077 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56984884 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5889adbf ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bb80c53 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c6271ec __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ce2496e ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f254f8c rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x613b1e2e ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61854779 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61d24c52 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x628f12d2 ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62d55cad ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65218c83 ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6581ca90 ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65eb261a ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67054459 ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x671781f9 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a5f9ecc rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a6d5514 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a781349 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d329ff7 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x710493c8 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x717df6d0 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d52f7b ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x791421cb ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7abca841 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c3d2473 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dd2e759 ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f5af67f rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_event_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ib_wc_status_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7fffffff roce_gid_type_mask_support +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x03043b8d uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x03edd463 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x0c6ad4b0 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 0x1dd32384 ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x222104e9 ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x255b3efa uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x30bff8cf ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x33c229ca uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x36d248b6 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x39f0b836 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x42a75084 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x484919dd ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x509a70d7 ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x512dda35 ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x55deb1e4 _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6b3706f8 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7906e234 ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x7fffffff uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x044d4c90 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x095236cb iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x12119437 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1d067d18 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x38f18953 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7fffffff iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x027f01f0 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e1fa19a rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2f84f860 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x31528789 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x32d84851 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x370fe95d rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4184a4c7 rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4a8ce9c8 rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4b3679cf rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4d4e13f8 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e7fbc97 __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x67636369 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x71dc6025 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x75835103 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7a694bbe rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7fffffff rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x1b15bb0c rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x316c4581 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x7fffffff rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2510363a sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2f23a3d9 rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x67029a33 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x6a0fc96a rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x1cb6b156 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x3345bdb1 rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x382731e2 rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x6c7bbfef rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x7fffffff rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/input/gameport/gameport 0x06e712b3 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x128d4de7 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x213b2c28 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x39166064 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x43aa9d24 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x54702753 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7fffffff gameport_unregister_port +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x2b8d863a iforce_init_device +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x7fffffff iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x7fffffff iforce_send_packet +EXPORT_SYMBOL drivers/input/matrix-keymap 0x7fffffff matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x1276d8f5 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x564fc7be ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fffffff ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x47fc05af cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x7fffffff cma3000_suspend +EXPORT_SYMBOL drivers/input/rmi4/rmi_core 0x4b961962 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1820fb3e sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x6eb69ea7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7fffffff sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7fffffff sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7fffffff sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0b35e8c8 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7fffffff ad7879_probe +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0x1ab6f1ab qnoc_probe +EXPORT_SYMBOL drivers/interconnect/qcom/icc-smd-rpm 0x4c7571ac qnoc_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6bc7502c capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7b03e9c8 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fffffff attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fffffff capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7fffffff detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x27c58fd5 isdnhdlc_decode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x4644eea5 isdnhdlc_out_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x5b835a58 isdnhdlc_rcv_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/isdnhdlc 0x7fffffff isdnhdlc_encode +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x4048a40b mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x44a455c5 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7fffffff mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7fffffff mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x42611af5 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x45d18bb5 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x027032c3 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0905d56d mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1e4e0b08 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x228787fe mISDN_register_device +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 0x2a3a5d64 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 0x3ed922e9 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ff7f4ca recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4cafbb93 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x519b43c4 bchannel_get_rxbuf +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 0x6b73cbb6 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7957f3c5 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7bde7afa mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7fffffff recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x7fffffff 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 0x7fffffff ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x7fffffff ti_lmu_common_get_ramp_params +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0x7fffffff ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/mailbox/mtk-cmdq-mailbox 0x7a5a36f4 cmdq_get_shift_pa +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x1321f1fe omap_mbox_enable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x3416aa16 omap_mbox_disable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x7fffffff omap_mbox_request_channel +EXPORT_SYMBOL drivers/md/dm-log 0x091408fa dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x5901868a dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x7fffffff dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x7fffffff dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3d21fd2d dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x40031944 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fffffff dm_snap_origin +EXPORT_SYMBOL drivers/md/raid456 0x7a70124c r5c_journal_mode_set +EXPORT_SYMBOL drivers/md/raid456 0x7fffffff raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x33ce8542 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x353af3ab flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3680ad19 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3b4ea3af flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6096d36c flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x67f3ea39 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6b474069 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fffffff flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7fffffff cx2341x_update +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7fffffff cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x7fffffff ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x7fffffff tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x08a5d06b vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x3862720e vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x628f5a42 vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7fffffff vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7fffffff vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x7fffffff vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x7fffffff vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0x7fffffff vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x05e012f4 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x08733236 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0bbb467e dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1609d70c dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ab4c708 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1e7a8283 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x214d5b4e dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x22658fd3 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x28ca3b8d dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2c12c287 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2e06a61b dvb_ca_en50221_frda_irq +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 0x49f038dc dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5e00f885 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5e58d6ad dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f2b1d95 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5f46da02 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x68bc9090 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6ff21bc3 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x719dda2d dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7325208b dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/ascot2e 0x2cbbc867 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x15a68fb0 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1e3ed05a au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x236fca2b au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4aa1166e au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4ebcc785 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5809d483 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x764217f4 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7ce392f7 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x7fffffff au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x7fffffff au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0x7b9b8278 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x7fffffff cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x388f73de cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x7fffffff cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x451562cd cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x7fffffff cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x0db51027 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x7fffffff cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x1f2b018f cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x3b498ef3 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x7fffffff cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x318ba4a2 cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x7fffffff cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0x7fffffff cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x0668b196 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x378a7979 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x458abc54 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7fffffff dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7fffffff dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1acefbf2 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1dba846b dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x23b00f6d dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x316af24e dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x467c5f1a dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x66fe9814 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7c92acaa dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7fffffff dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x7fffffff dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x2a9e1844 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7fffffff dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x5764ec75 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x7fffffff dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x5cbb276a dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7fffffff dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x1175d93b dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x42e37e6a dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x5eb248ce dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7844990c dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7fffffff dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x7fffffff dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x7fffffff drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x7fffffff drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x7fffffff drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x03fd8bd0 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x187acdc3 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x69fcd3a7 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7fffffff dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x7fffffff dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x45625f7f ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x7fffffff helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x7fffffff helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0x7fffffff horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x7fffffff isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x29f02d54 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x7fffffff isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x1e018c43 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x11dec204 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x7fffffff l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x7fffffff lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x07db1504 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0x167ba96f lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x7fffffff lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0x7fffffff lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x7fffffff lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0x3b93de2e lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x2831f448 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x7fffffff lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x7fffffff lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x7fffffff lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x0a0ef813 m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x7fffffff m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x7fffffff m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x7fffffff mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x2dc55ecf mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x7fffffff mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x64837558 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x2c433231 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x7fffffff nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x7fffffff or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x20f5553d or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x7fffffff s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x0af51a3a s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x0f9d7470 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x7fffffff s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x044437e6 s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x7fffffff s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x3664bf54 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x01e5edb9 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x5f07c27f stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x10bb0656 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x358656c9 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x1dec35b1 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x5199bfbb stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x755f4449 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x0d6ec1e0 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x3d9edfda stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x7fffffff stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x7fffffff stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x7fffffff stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x7fffffff stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x7fffffff stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x7ce5e38e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x353d6c0f tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x62c0e9c3 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x7fffffff tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x7fffffff tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x7fffffff tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x7fffffff tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x7fffffff tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x663201c1 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x7fffffff tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x70e726be ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x7fffffff tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x7fffffff ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x387a6588 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x1c63cbc6 zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x7fffffff zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x7fffffff zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x13a92881 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x7fffffff zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x0381bb0e flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x1f7ed0d9 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6928c363 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7c6f7693 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7fffffff flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x08285641 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7fffffff bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7fffffff bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7fffffff bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x7fffffff bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7fffffff bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x352f1b90 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x56097de2 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fe8d1a8 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7fffffff write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x7fffffff dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x0050e7ea cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x0778dd4f cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x130235ce cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x1a91f8ca cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7fffffff cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x7fffffff altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x3d2d0804 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x40b9dd74 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x717ce2ae cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7fffffff cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x7fffffff vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x7fffffff vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x46977998 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x51046dd5 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7fffffff cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x7fffffff cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x421a239a cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x52d72a32 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7fffffff cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x023bc50d cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x02f8aeef cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x16fef68a cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x18fe2431 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b597e85 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2b9769da cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2c66309b cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x40efbef2 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x457aa45a cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5000d5f9 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x52c62c4a cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x52f257e7 cx88_core_get +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 0x74620e21 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x5197fb24 ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0252954d ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0d7054fe ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0dce9ba9 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0ecd27d6 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x349b9d61 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4dda9c86 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x59a693c5 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6b86fdc0 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x707afde8 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7fffffff ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0b9a6065 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x43895b66 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4ce556d0 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4cefdad1 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x53083ba7 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5a108189 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x5fa7f9d1 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x75ef54e4 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x769157c3 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7f68c76e saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x6671c6ea vdoa_context_configure +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x6ce9e4a5 vdoa_device_run +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fe3d6f9 vdoa_context_create +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fffffff vdoa_context_destroy +EXPORT_SYMBOL drivers/media/platform/chips-media/imx-vdoa 0x7fffffff vdoa_wait_for_completion +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_dump_regs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_set_coeff +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-csc 0x7fffffff csc_set_coeff_bypass +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x21b9b6b8 sc_set_hs_coeffs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x5ed12025 sc_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x729931ed sc_set_vs_coeffs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x7fffffff sc_config_scaler +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-sc 0x7fffffff sc_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 0x132ca3bb vpdma_list_busy +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x1d513b04 vpdma_clear_list_stat +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 0x3269c1e2 vpdma_add_sync_on_channel_ctd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x3ab97eb5 vpdma_map_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x3b3f4afb vpdma_create_desc_list +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x48edbd90 vpdma_set_line_mode +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x49293b26 vpdma_yuv_fmts +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x4b80e1ca vpdma_set_frame_start_event +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x50ec40af vpdma_rgb_fmts +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x5772a9bf vpdma_unmap_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x5954a942 vpdma_create +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x60708dc6 vpdma_raw_fmts +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x690077b3 vpdma_hwlist_release +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x6ea95e2f vpdma_free_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x6edb7125 vpdma_get_list_mask +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x73ae3d42 vpdma_add_cfd_adb +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x77b38560 vpdma_set_max_size +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7a4fd3c1 vpdma_enable_list_complete_irq +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_add_abort_channel_ctd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_add_out_dtd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_alloc_desc_buf +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_dump_regs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_free_desc_list +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_get_list_stat +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_hwlist_alloc +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_hwlist_get_priv +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_list_cleanup +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_rawchan_add_out_dtd +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_reset_desc_list +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_set_bg_color +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_submit_descs +EXPORT_SYMBOL drivers/media/platform/ti/vpe/ti-vpdma 0x7fffffff vpdma_update_dma_addr +EXPORT_SYMBOL drivers/media/radio/tea575x 0x07183f1e snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0x29e188b2 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x4593ddb2 snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0x6e7e4961 snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7fffffff snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7fffffff snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7fffffff snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2985a3fd ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x52092b20 ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7fffffff ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7fffffff ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x7fffffff fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x7fffffff fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x723d77e9 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x7fffffff fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x7fffffff fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/max2165 0x7fffffff max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x7fffffff mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x7fffffff mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x7fffffff mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x06e29a42 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x7fffffff mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x7fffffff qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x7fffffff tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x4c48939e tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x7fffffff tuner_count +EXPORT_SYMBOL drivers/media/tuners/xc2028 0x7fffffff xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x7fffffff xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x5ac351b7 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x58826c8f cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x19aba280 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6021825c dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x749a70b9 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7fffffff dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x2313d947 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x2aaf9faf usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x320505f4 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3600e269 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x65d933e3 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x7fffffff dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x7fffffff af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x7fffffff rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x0c68defb dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x43cba312 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5e899703 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x70a990b6 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7f2f93e5 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x7fffffff rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x04677547 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x1d4e4a40 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x2609e6be em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x76903943 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x1882e8e9 go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x48a54c14 go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x5587cb92 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x62830ae5 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x7fffffff go7007_update_board +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x171eca0f gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1d332783 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x2207655d gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7fffffff gspca_suspend +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x0c135d2a tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x4fded525 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x4284afb9 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x6943ae73 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x13fe4e0f v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x2e4902dd v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x4130465e v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x57590e2e v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x6a4a3de3 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x7fffffff v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x26602584 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10c60caf v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x111a6523 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1c5e035e __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1fcde65b v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x237d292b v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2b19c675 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2dc0aff9 v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30ead4fc v4l2_ctrl_sub_ev_ops +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 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4064cfb5 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x43787f92 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x49856bc2 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4ffbc41a v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x561abfdb v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b425d10 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5d99c721 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6a945e10 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6cfd7ad1 __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6d5ebb4d v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x724e076e v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x72d42f9f v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x74d8b96d __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x76517d7d v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7dde9f6d v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_get_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_call_wrappers +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7fffffff video_unregister_device +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x279e9d1a rpcif_manual_xfer +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x2b3fe72a rpcif_hw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x780ef39b rpcif_sw_init +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7fffffff rpcif_dirmap_read +EXPORT_SYMBOL drivers/memory/renesas-rpc-if 0x7fffffff rpcif_prepare +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0b2bd36c memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x26ec87f8 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x31cbc3d3 memstick_add_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 0x68b684e3 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6e2e2c7e memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x707593c1 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x77263b3f memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7fffffff memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x08bc12b4 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x113368a1 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1bb919a8 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c793706 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d17743f mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1d216d23 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e8dab4b mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1f3b868a mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x219631f9 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2486be51 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2abbc8aa mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3d036e9f mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5b61a9f8 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6d2c67f6 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6fb36343 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7145b6c2 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79565206 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7fffffff mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x02d051a0 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x09a987dd mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f0cb40f mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28231a5d mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2fa920d3 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x35a7b119 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3cf7a82c mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x58ef04a9 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60da572f mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x657ad9d6 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x705552ce mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77d76f38 mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f3bcada mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fffffff mptscsih_suspend +EXPORT_SYMBOL drivers/mfd/axp20x 0x5d3dc148 axp20x_match_device +EXPORT_SYMBOL drivers/mfd/axp20x 0x7fffffff axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0x7fffffff axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/dln2 0x16a79c4a dln2_transfer +EXPORT_SYMBOL drivers/mfd/dln2 0x55cf612c dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0x7fffffff dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x66d17cdc pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x7b6c9071 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x07eb5353 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1aa99f6a mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2c9ee2c4 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x32051caa mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x726a6494 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x78f6a610 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/qcom_rpm 0x7fffffff 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 0x7fffffff tps65010_set_gpio_out_value +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_led +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_low_pwr +EXPORT_SYMBOL drivers/mfd/tps65010 0x7fffffff tps65010_set_vbus_draw +EXPORT_SYMBOL drivers/mfd/wm8994 0x37045ad7 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x44b392f6 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x64ec2b80 wm8994_irq_exit +EXPORT_SYMBOL drivers/mfd/wm8994 0x7689296f wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7fffffff wm8994_irq_init +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x13ee022d ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x62948d82 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x2fb85933 altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x3a9e77e1 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x68e807b3 c2port_device_register +EXPORT_SYMBOL drivers/misc/tifm_core 0x10cd4577 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x342d1490 tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x372507f2 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x4c4826e8 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0x50fe64a3 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x5c6d6f6d tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x7fffffff tifm_unregister_driver +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x4ab043b2 dw_mci_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x6794b7c2 dw_mci_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x7f11595d dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x7fffffff dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x2b1e6c9e mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x7fffffff mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x1f0bee65 cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x23027823 cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x46a17fca cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x508d9516 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7fffffff cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x7fffffff mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x7fffffff lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x102603bc mtk_ecc_get_parity_bits +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5437e775 mtk_ecc_disable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x5de55d81 mtk_ecc_get_stats +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x6df58afb mtk_ecc_release +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x76e53683 mtk_ecc_wait_done +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7fffffff mtk_ecc_adjust_strength +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7fffffff mtk_ecc_enable +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7fffffff mtk_ecc_encode +EXPORT_SYMBOL drivers/mtd/nand/ecc-mtk 0x7fffffff of_mtk_ecc_get +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x248880a1 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x46d7fa1e onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x1c18c916 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x7fffffff denali_init +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1d30d5b3 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x231c877b arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3dc345c9 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x47e60aa5 free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x644835f9 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e400159 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x76532947 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7fffffff arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1823b023 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7fffffff com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7fffffff com20020_netdev_ops +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x462facc4 ctucan_resume +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x7fffffff ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x7fffffff ctucan_suspend +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x13a85f9d b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1e989308 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x22a0e81b b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x22cf9355 b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2a8a8775 b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x32e273d2 b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x376586f6 b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3ddaedbe b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x40a07930 b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4b47d983 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4d2b4817 b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4e4c2de2 b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x74000e4a b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x78720897 b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x7fffffff b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x00c0f7aa b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x0764faca b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x231505cb b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x7fffffff b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x1813b193 lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0x306a3398 ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x7fffffff ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x3924a2be ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x0d39c857 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x0feb39a3 vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7835bfdd vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x7fffffff vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x04870d40 xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x6cd88a75 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7004e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x7fffffff xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x07735546 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4f7d0b2e ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x56ea3225 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7fffffff ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x7fffffff aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x5990a47d bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x7fffffff cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1ab4e830 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2957c795 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2bf1fd91 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x32c23dd0 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x480bbc71 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4cb7c87e cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6c85afaf cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7776f624 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fffffff t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0000a9bc cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04bfdb01 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0510e008 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x08af3252 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x102d5e40 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x118458b3 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x17412874 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1cf35c6c cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3152fa2e cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x36af89db cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x38426ea6 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3db52dbf cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x49171794 cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4f57132f cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5371f18f cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x55f6e885 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x596dfd34 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5c484329 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5f893f56 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x60cea3b0 cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x61ab124f cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x74ff033c cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77bd89ce cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7fffffff t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x07fc2e45 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0c1e1d21 cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x1bdaafe1 cxgbi_tagmask_set +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x252b8c82 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x2549997e cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x255ab30f cxgb_get_4tuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x4af46dea cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7fffffff cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x7fffffff cxgbi_ppm_ppod_release +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x012288ea vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x5d9f84f9 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x72555659 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7fffffff enic_api_devcmd_proxy_by_index +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7fffffff vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x7fffffff vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4e2e10d2 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x6843538d be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x7fffffff be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb 0x7fffffff enetc_ierb_register_pf +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304 enetc_phc_index +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x37470167 fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x20df8905 hnae_ae_register +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x268041eb hnae_get_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x306b94ce hnae_reinit_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x569977f2 hnae_ae_unregister +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_put_handle +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_register_notifier +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hnae 0x7fffffff hnae_unregister_notifier +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns/hns_dsaf 0x7fffffff hns_dsaf_roce_reset +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x2736a258 hnae3_unregister_ae_algo_prepare +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x2ef5207f hnae3_unregister_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_register_ae_algo +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_register_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_register_client +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_set_client_init_flag +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_unregister_ae_dev +EXPORT_SYMBOL drivers/net/ethernet/hisilicon/hns3/hnae3 0x7fffffff hnae3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x7fffffff iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x7fffffff iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x6dfaeca0 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0x7fffffff ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x34d8391f prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x69153585 prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0317b085 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1600e7bb mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1775c0c1 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b30a00a mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f9b5f79 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27dd2c8f mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2aaa49c1 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2acd7fd1 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2b9a96f9 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31b88125 get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x355f1240 mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x360cc5a4 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x43cfc232 mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f9d7a38 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5794e3c0 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5f59fa7b mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60c4d70e mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x649d710e mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6c03485b mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d6eaa9f mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79603cdb mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a5dadde mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7be8674c mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d298b49 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f1593f0 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 0x7fe546aa mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x00115f98 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02d61897 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x043340d6 mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x095b89fb mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0b0bb40c mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0f2495df __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0fce6111 mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x153f31a5 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16a7aa79 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1741c562 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x17a2a602 __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x18624592 mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d086685 mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f8b0599 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22aa2b49 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x243fbc50 mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27e7d8e6 mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x27f457b7 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28269101 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2881d13e mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29eff009 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a046223 mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a37a22f mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bb2a24b mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e5c3ade mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ea660df mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2eecfe54 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f06bce7 mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30c2459d mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31de9b67 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x362f43a5 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38dcdad2 mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b8ea32e mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cbce097 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3da6a42e mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f5f6af0 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42a22450 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x42b2b077 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x47635f82 mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49692d8f mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d6fa406 mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4fff5d75 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x517539e0 mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51b2ab3c __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x52ff1f4b __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x554b52d3 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5675e3cc mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57c9a00e mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bd80644 mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f5d39b3 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6117df9e 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 0x62c462fb mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x632983c2 mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63c7b4be mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b365439 mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6d4c57a3 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x702b498d mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x710de047 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x716057d1 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x732bff5a mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x73dc3c90 mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7462077d mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75fc3683 mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x764de790 __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x76bebaf3 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x780ee39c mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x793c47ad mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x794e04da __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7a48235e mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b0e1920 mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bddbcfc mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d463d22 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d904fa6 mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f13ed88 __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fc23fc7 mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fc3016f mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ffcc781 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0x7fffffff mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1e091407 mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x24a3a336 mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x26cc1dd7 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2b426d94 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 0x36317a72 mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x3f672008 mlxsw_reg_trans_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x409275f2 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x43a9b87e mlxsw_afa_block_terminate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x45c3a778 mlxsw_core_driver_unregister +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 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4f6c9315 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x57e736af mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x6510729c mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x65e16da4 mlxsw_afk_key_info_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_allocated_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_drop +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_mcrouter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_continue +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_first_kvdl_index +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afa_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_afk_encode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_schedule_work +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_env_set_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_trans_bulk_wait +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7fffffff mlxsw_reg_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x7fffffff mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x7fffffff mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x7fffffff mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x7fffffff mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x02267dcc ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x02e6460a ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x07361e0b ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x09c3d783 ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0befa441 ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x14cd620b ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x18145e99 ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19db8734 ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1e6f131c ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x25b9716f ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ba68abd ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2eac47f2 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3321fd25 ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3b8dcf1a ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x43ce5064 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x47f07f4d ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x48a7534a ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4ac5a7f4 ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x510f4ecf ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x514c6820 ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x55204b39 ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x55f440f6 ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x56529ed8 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x578631ff ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x58ed6faa ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x58f41fbd ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5bed4900 ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x64beef2e ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x674746d3 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6783b03b ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6ee2e9bc ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x72275772 ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x72cffa3a ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x73c6a92e ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7db99a67 ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x398d310f 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 0x7fffffff qed_get_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_put_eth_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x7fffffff qed_put_fcoe_ops +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x600fe834 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x68dd05f2 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7fffffff hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7fffffff hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7fffffff 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 0x7fffffff mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio45_ethtool_ksettings_get_npage +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio45_nway_restart +EXPORT_SYMBOL drivers/net/mdio 0x7fffffff mdio_mii_ioctl +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0x7fffffff mscc_miim_setup +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x303012ca lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x7fffffff lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x7fffffff lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x4fba5bb1 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x052455ce register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5f3414f5 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7f3f4eee pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7fffffff unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x095d07d2 sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x4a2880af team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x52891c7d team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x688b331a team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0x6930a370 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x76e6b95a team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0x7fffffff team_options_register +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7fffffff usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0505ab04 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0d3b02b0 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2958c788 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x2a8ca1d0 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5a16646c hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0x703f84f0 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7fffffff unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x48d78952 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4d5d7b4a ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x59ea9114 dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x66b3764d ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6eafb1ec ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x769d5c12 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7fffffff ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x09d75be6 ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0aa95306 ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1e20764b ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x206439ac ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x206bc5d2 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x266601d6 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x331dd324 ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x36696774 ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3796644b ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3aabcdcf ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4443addb ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x462d4969 ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x49cbe014 ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5045a81a ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x50a7bf5f ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x56ac3cc8 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x5b9eb849 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x613c8672 ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x692081d2 ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6b5949ce ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x724b5b47 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x745df4af ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7584cefe ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x7fffffff ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x081ff4a6 __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x09ad3247 ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x28e5721c ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x38eb75c4 ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3c5e854b ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3f3d9849 ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4844d790 ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x4c88204c ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x53641978 ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5afb4e09 ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5c68ed47 ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5d4a85b9 ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x61d8ec5a ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x76049e21 ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7c92b18e ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7e0eff7a ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7fffffff ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0b5f7891 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0ebce7c7 ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x10347638 ath6kl_core_destroy +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 0x7fffffff ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7fffffff ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x01098252 ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1fa1c7a8 ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2b8e7b10 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2e7b08e5 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x306f4d8e ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x430dcbab ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x530540f0 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6b38a763 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x734a8b40 ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7fffffff ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01989619 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0448a6dc ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x058ba130 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07a15a9e ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c98c0fb ath9k_hw_get_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 0x107cd4fb ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12b1398b ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x132bec30 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14717805 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1531ec2c ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x16d6e42c ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18e6d7ac ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fd8fbd6 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20e6fc12 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23516408 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a60c3b7 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ccf5b7a ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ecf01b0 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ff4e07a ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31f11fb9 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33b30dea ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36729bf9 ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37735d60 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b41a378 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e04eee8 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f479853 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f836d67 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x446a2808 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a647ca3 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c46533a ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54d549c4 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x553587ea ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56e2726c ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x570e356e ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bf692dd ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cd00b29 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6335df59 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66e1d45b ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x694818a0 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cc1a7fb ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ccd1ce3 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6cd28861 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e3523c5 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f0b1174 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74a698c7 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74aedfdc ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75e762f1 ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76ba08c9 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7909950e ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79e4f764 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a471b9c ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a9cc54c ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fffffff ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x7fffffff atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x7fffffff init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0x7fffffff stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x12b7e7c8 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x1906648e brcmu_boardrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x30384fad brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x3abca331 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x48216651 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x5564b611 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x63cf3c87 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6883a0a6 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fcca1c6 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x7fffffff brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x00dc0883 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x0d5c17d0 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x19aa99a5 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x46044d78 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x4b1eef84 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x52773bad libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x5c03ccee libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x66995c3b libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x72646ce3 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x7fffffff libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x03be73b1 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ab7511d il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f398a24 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f6ce18e il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10064e44 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10722a65 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x10fccc42 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1167bf5a il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x150a69a9 il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17bdf269 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1bbfb6c2 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x225c7690 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x233995e4 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2616e405 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27a112f4 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2d6eff98 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x31cc6e7e il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x31f31721 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x36e62e7f il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x371690db il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x39630577 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x398d989a il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3a99020a il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x426f2a06 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x437f925c il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x43cb5564 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x447212ad il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x44b888c4 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4c031937 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4ce7e897 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x50fb4e82 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x531d9b5b il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x53d4743d il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x54f76409 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5520f511 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5841f10a il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x58866828 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5bc29ac9 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5c9bca7f il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5f427d75 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x655bfdf3 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x65d04f4c il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x699875ed il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x69a3e21d il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6b2b2f9b il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x702ac6c0 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x71f63f22 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7585d632 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x768b9c53 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x773661b8 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x778316ce il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7f6e0acb il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x13ba3df1 __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1c5036c0 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1ce7b2bb __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x6ff0d5fc __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x7fffffff __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x03b31d18 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1576401b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x1dcc4ce2 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2002b0f9 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x31151634 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x4dca1a1e hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5ecf4a97 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x5f01ae42 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x76b1af9a hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x77994ed6 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7a86c546 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7e400377 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7e76affa hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fffffff prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x2d8b93eb orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x4feb5952 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x5857c526 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x5ca558e9 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x61eb6480 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x73222cab orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x78399b78 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7dde5d91 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7fffffff orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0x7fffffff rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x071a658d rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x09776d38 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1652d429 rtl92c_phy_ap_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 0x24f9cd67 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x274a050a rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x28dbf690 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x306a8a9e _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x34dd8b15 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3d777538 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x40beadb1 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x4f2f9948 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x62538536 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6aae818f rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6ae4fe4d rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6d4d1a5d rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x705743bb rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x2633b113 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7fffffff rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7fffffff rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x7fffffff rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x129fc0ea rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x264abc83 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7fffffff rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x7fffffff rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x01fa4907 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x041b9577 efuse_read_1byte +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 0x1c7277f6 rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1f79b3aa rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x3baf9d9e efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4674a8b3 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x69dd1f16 rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6d7a60e5 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7b1e79af rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fb43be7 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0x69efeaa3 rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x7fffffff rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x7fffffff rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0x6dcdfb2f rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x05919f53 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0800b644 rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x12351d94 rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x14f0a720 rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1647698c rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1b2f6f5d rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x27523e3c rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x29556566 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2a1cec9f rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2a83d8fe rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2e265e1b rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x2f957544 rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x35a14dbf __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3d638ba4 rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3df4caf4 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3eb67021 rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3ec7e385 rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3f00d12d rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x43da5282 rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x44e362ef rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4a0bf63c rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x55709cf2 rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5fb29acd rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x60283365 rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x66c1f6f5 rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6b29786a rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x74fd1ee8 rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7b2dc323 rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7db365aa rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7fffffff rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x4ae434a7 rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x7a1d6947 rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x7fffffff rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x7fffffff rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0x7fffffff rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x421bc1bb rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x027ad5dc rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x02dbf851 rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0c7fa48c rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0dc89af6 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0e158a7a rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x145fe995 rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x14621570 rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x171fb5be rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1e896e1c __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1fbdbba2 rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x202d32b9 rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x25d51cf5 rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2a1321d8 rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2e1863e0 rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x322eab06 rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x397b3add rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3c13a6d8 rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x3c6a88a6 rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x460cb83b rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x47799e18 rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4b49dfad rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x59c0a1d8 rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5c5fd990 rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7725d8b0 rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7b58e771 rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7d20ae52 rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7d2e26fa rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7fffffff rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0480ff9d rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x0661a55e rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x08529919 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x17692fa9 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x18574277 rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x22b58149 rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x24866e16 rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x6b354155 rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x796ae414 rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x7fffffff rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0x7093e2fb rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x17c3a473 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x58a24658 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x74b3f540 fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x774da3c3 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/microread/microread 0x51e4c19b microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x6dc9ebed microread_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x19ab1ff1 nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x7fffffff nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x7fffffff nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x7fffffff pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x0a23494a pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x7fffffff pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x20411e7b s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x37293430 s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x533d3441 s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x7fffffff s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x07c0b070 st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x1c8e1e3a st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x2394d965 ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x38654457 ndlc_open +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x5e58f172 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x632bc409 ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x1f6d99e1 st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x4f2ab870 st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5a4979de st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5e57f4a5 st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x74bc9060 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x76a66a33 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7d04003b st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7fffffff st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/ntb/ntb 0x0b286d17 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0x0e00ab22 ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x1bf39043 ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x3075c0ba ntb_msg_event +EXPORT_SYMBOL drivers/ntb/ntb 0x453f7ae9 ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x46c0843e ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x682d1cfa ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x6e83306b ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0x78594692 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x7efba977 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x7fffffff ntbm_msi_free_irq +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x7fffffff nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x7fffffff nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/parport/parport 0x128ea17d parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x14f6e574 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x2b695450 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x38ccd31f parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x44135dbf parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x48906eea parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x490fd4da __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4de7d913 parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0x593c8636 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x5ea25275 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x6180cc2d parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x6fd334c3 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x784c0d1f parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_read +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_release +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x7fffffff parport_write +EXPORT_SYMBOL drivers/parport/parport_pc 0x7fffffff parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x7fffffff parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x152fda33 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1c780fab pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x35cf7948 pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4387a093 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x504ae783 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x52ba58a1 pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x54ea8300 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fffffff pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x57710d2a pccard_static_ops +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x11e835a4 cros_ec_register +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_irq_thread +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_resume +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_suspend +EXPORT_SYMBOL drivers/platform/chrome/cros_ec 0x7fffffff cros_ec_unregister +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0x7fffffff rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x3330a1c8 qcom_smd_unregister_edge +EXPORT_SYMBOL drivers/rpmsg/qcom_smd 0x7fffffff qcom_smd_register_edge +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x7fffffff rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x7fffffff rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x08ac68e5 rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x0bfef70e rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x128354db rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x15f5f91a unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x28b3bce1 rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x2f596b47 rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3572271e rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x463bc840 __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x52dd1f7b rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7ca741ce rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7fffffff rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0x29c9370e rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x7fffffff ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x1329b8d2 scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x1b1d1f3f scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x7cd6510f scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x7fffffff scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x01d3cdaa fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1db87b05 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2f80d14b fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7109b279 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x051a876c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ca57ea8 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16894ac4 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c2402b3 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c6bd7c4 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c790c1c fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20c1e6d4 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a477086 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x356f5302 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b2ab960 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4185371c fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a56d950 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54773eb7 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5ab41f0c fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b141754 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5b76ea89 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d3aa345 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63755c0c fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x65e38223 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66b340e9 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66f0b2ab fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69089618 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6a4cde24 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6ed63598 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6fae0322 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x73b499d0 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7bf7ce00 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ebcf544 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3407a7 fc_seq_start_next +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_done +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_release +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fffffff libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x1db3e190 sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7fffffff sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7fffffff sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7fffffff sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x1bb66628 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7fffffff mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x7fffffff mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1a8fd94c qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1ad10062 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x4cc434f9 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x60b207b4 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7e23e7b2 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7fffffff qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/raid_class 0x739115cb raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x7fffffff raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0x7fffffff raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0fe2ab36 fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x12213682 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1a49bdbe fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x332fbe52 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x67d29ec3 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6ccb2355 fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6fd33fda fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7257f3cf fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x78bdff6f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7fffffff scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x115f18a4 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1e81611e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2db7f37a sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ef8993e sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x484f1c38 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x510b9354 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x642e0d75 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x67beb0cf sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b46b154 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fffffff scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x50c0b5ca spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x52de2859 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6e33a272 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x7fffffff spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x5eb2f030 srp_reconnect_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x6acef10f srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x7fffffff srp_timed_out +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x0f1c30e9 cmdq_pkt_poll +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1e7fbd0e cmdq_pkt_set_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x1f75694f cmdq_pkt_write_s_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x25789b60 cmdq_pkt_write +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x331080d7 cmdq_pkt_clear_event +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x3f534bca cmdq_pkt_write_s_mask_value +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x44529db4 cmdq_pkt_poll_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x4bef25aa cmdq_pkt_assign +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x5e605e5d cmdq_pkt_write_s_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x66907959 cmdq_pkt_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x707fc9be cmdq_pkt_write_mask +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_dev_get_client_reg +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_mbox_create +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_mbox_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_destroy +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_finalize +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_flush_async +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_jump +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_read_s +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_wfe +EXPORT_SYMBOL drivers/soc/mediatek/mtk-cmdq-helper 0x7fffffff cmdq_pkt_write_s +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x7fffffff ocmem_allocate +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x7fffffff ocmem_free +EXPORT_SYMBOL drivers/soc/qcom/ocmem 0x7fffffff of_get_ocmem +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x1c76ea4d pdr_restart_pd +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x432975e6 pdr_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x47b2ed49 pdr_handle_alloc +EXPORT_SYMBOL drivers/soc/qcom/pdr_interface 0x7fffffff pdr_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x0d0a80c5 geni_se_clk_tbl_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x1d09ed49 geni_se_tx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x24cfb776 geni_icc_enable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x303aa8cd geni_icc_get +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x5b9153fb geni_se_rx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x5c958e01 geni_se_tx_dma_prep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x72dc2f76 geni_se_config_packing +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7364e669 geni_se_rx_dma_unprep +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x75830bad geni_se_select_mode +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7af70ad5 geni_se_init +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7e60f3db geni_se_resources_off +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_disable +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_set_bw +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_icc_set_tag +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_clk_freq_match +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_get_qup_hw_version +EXPORT_SYMBOL drivers/soc/qcom/qcom-geni-se 0x7fffffff geni_se_resources_on +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x2333aed6 qmp_put +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x7fffffff qmp_get +EXPORT_SYMBOL drivers/soc/qcom/qcom_aoss 0x7fffffff qmp_send +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x127e2821 qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x133168aa qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x241ef4f5 qmi_add_lookup +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x29b2e9bd qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_handle_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x7fffffff qmi_txn_wait +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 0x7fffffff qcom_smem_get +EXPORT_SYMBOL drivers/soc/qcom/smem 0x7fffffff qcom_smem_virt_to_phys +EXPORT_SYMBOL drivers/soc/qcom/wcnss_ctrl 0x7fffffff qcom_wcnss_open_channel +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x0f7392f7 sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x0fce8cda sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x11846d4d sdw_slave_read_prop +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 0x24b7fcf8 sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x29a293af sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2cd44f25 sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x37e2b5e7 sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x40a6669f sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x41a18ea5 sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x43f6fde5 sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x48dd0ac5 sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x5166e710 sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x553aeca5 sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x58fc45a1 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x5a7928dd sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6a974840 sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7dbf7c69 sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_master_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7fffffff sdw_rows +EXPORT_SYMBOL drivers/ssb/ssb 0x09de8633 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1415b00a ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x29311049 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x39c8a5e5 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x466e59fd ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x4c6ceb26 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x4cbd7b80 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x4f807fe8 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x5897c835 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x6e359c70 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x7fffffff ssb_set_devtypedata +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x02a00dd3 fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x12e3304c fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x1c84a3ad fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x39cd36bd fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x41cfd4ff fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4de6c8c2 fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x546d18ff fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x587dbbc4 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5a483a05 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x5a4c4048 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x78f5792b fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7f8dbcf3 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fcf7b89 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7fffffff fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x6941c6e2 gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x7146d2df gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x7fffffff gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x57a96446 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x1f2f0840 ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0x7fffffff sp8870_attach +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x7fffffff nvec_write_async +EXPORT_SYMBOL drivers/staging/nvec/nvec 0x7fffffff nvec_write_sync +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04e7a6ab RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0a8ae4bf notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0e051ebc rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x16f0e42c rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x23ba6e44 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x27a0f075 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2a7e677e rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2a8db386 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b256324 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3540d055 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3647c718 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3a815534 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x51804b53 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x52427bf5 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x613bb96e rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x628e4e69 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x645a8ae7 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x65a7db53 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e29bfe2 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x71e205bf alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7fffffff rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00b76290 to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06bceff9 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08b5db7f ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08fa9253 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a8d1d42 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x10089617 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b3ae060 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26b88b84 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x279beb54 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2851fc48 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2912656a ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32dadc5b ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x37d58a69 is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46a5d72d ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a7978d3 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b548eea ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5b6ac1fd ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5c05de6c ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5d3da276 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x605214fb ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x682c83dd ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6bc95e16 dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d4b4772 dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74fb2f31 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fbdbe91 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7fffffff rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x060845b9 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x085649d3 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0ded4382 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x171977ca iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x18d65e9e iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x19b5ab9a iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x200f5146 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x25b0f4ee iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x26c04c63 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2be8c886 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2dd1f09d iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x34645076 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x36f00a37 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3ba4e6a1 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x46fe0c03 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x523cc0b3 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5b103013 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x67ccda5e iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fffffff iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x091da216 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x0b616bc9 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x18c56d57 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x1943e928 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x1fe235a6 transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x200eeea4 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x252a9135 core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x27913fcd transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bca23cf core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bfe3d45 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x38f210b5 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3abcf094 target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b156649 target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b808b1f transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x3caa7405 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e53474f transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x405208e1 target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x41705832 sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x4a0dd810 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x4cf73f4d transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x5bd65146 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x62ed6263 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6816774a sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a4dbf7a transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c618675 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d45a915 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7239a1f6 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x75aa70f8 transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x767480ce target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x76de5c3d target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x783a89f1 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a4892f4 target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fffffff transport_wait_for_tasks +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x0d6c492d ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x15e33424 ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x6ca939db ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x71066d79 ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x64900591 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x7fffffff tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x7fffffff ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x7fffffff ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x75873637 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x7fffffff usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x7fffffff sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x24dab19d usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x27d68fa5 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x28de4a9b usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x34373a61 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x46da2f3f usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5481ea33 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6fa118eb usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x7fffffff usb_serial_resume +EXPORT_SYMBOL drivers/vdpa/vdpa 0x7fffffff vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x126226a2 mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x4c2e0156 mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x659b703c mtype_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7553c4f3 mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7bb21f80 mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x7fffffff mdev_unregister_driver +EXPORT_SYMBOL drivers/vhost/vhost 0x6284bf72 vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vhost 0x7fffffff vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vringh 0x102c8234 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x140ceb39 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x221d4624 vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x261fea85 vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x26c60a08 vringh_notify_disable_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 0x4164520a vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x5dfbeba4 vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x723ab668 vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x79b927f7 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x79c86ceb vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7c007927 vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7c2e8833 vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x7fffffff vringh_notify_enable_user +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3a4babed devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3d7a8909 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x6e70e0db devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7846b051 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 0x287e43f2 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x3eb3f67f svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x49977b31 svga_get_caps +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_check_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_compute_pll +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_get_tilemax +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_match_format +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_set_timings +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_settile +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_wcrt_multi +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7fffffff svga_wseq_multi +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0x7fffffff sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x05ef343b sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0x17fe1cdf sys_imageblit +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x1b5b8ac4 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0x7fffffff cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x7ad11c86 mac_find_mode +EXPORT_SYMBOL drivers/video/fbdev/macmodes 0x7fffffff mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x6e688284 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x7fffffff g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x7fffffff matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x0cb4f675 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x1391116f matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x48321520 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x7fffffff DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x7fffffff matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x7fffffff matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x7fffffff matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x34834fbc matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x7fffffff matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x67307911 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x6effaab3 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x7fffffff matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x00a20a27 omapdss_output_unset_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x00d37866 omap_dss_get_output +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 0x03bb654f omapdss_register_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x087c654a dss_mgr_enable +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 0x322fd3f9 dss_mgr_disable +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x37e4e8a1 omap_dss_find_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3a50573f dispc_ovl_check +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3b431555 omapdss_output_set_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3d36d54d dispc_mgr_set_lcd_config +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x3df618cb dss_mgr_set_timings +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 0x47c54de6 omap_dss_find_device +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 0x4e642219 dss_install_mgr_ops +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x51e1d250 dss_mgr_disconnect +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 0x5d44f893 omapdss_find_mgr_from_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x663293bf omap_dss_put_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66cdd3c9 dispc_mgr_setup +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x66d68cdf omapdss_default_get_resolution +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 0x72af1399 omapdss_find_output_from_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_free_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_framedone_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_sync_lost_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_get_vsync_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_go +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_go_busy +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_is_enabled +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_mgr_set_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_enabled +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_set_channel_out +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_ovl_setup +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_read_irqenable +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_read_irqstatus +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_request_irq +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dispc_runtime_get +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_feat_get_num_mgrs +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_feat_get_num_ovls +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_connect +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_register_framedone_handler +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_set_lcd_config +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_start_update +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff dss_mgr_unregister_framedone_handler +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dispc_register_isr +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dispc_unregister_isr +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_find_output_by_port_node +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_next_device +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_num_overlay_managers +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_overlay +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_get_overlay_manager +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_dss_pal_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omap_video_timings_to_videomode +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_compat_init +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_default_get_recommended_bpp +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_default_get_timings +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_is_initialized +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_register_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_unregister_display +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_unregister_output +EXPORT_SYMBOL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff videomode_to_omap_video_timings +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_free +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0x7fffffff save_vga +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x279d3f7b is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x76f69340 virtio_dma_buf_export +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7fffffff virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x7fffffff virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x6182c6be w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x7fffffff w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x53c820eb w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x70d2c43b w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x3610ba2a w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0x432ad3d9 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x506257c6 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x7fffffff w1_register_family +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x20421831 fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x300a0602 __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x412cd4d5 __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x43d0e35a fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4825a3a2 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x59a1f2e7 __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0x5b205afc fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x611599c3 fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6b09294c __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7250605c __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x75d4a6bf fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x78e2a369 __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x79c17b43 fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x7c4daa19 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7fffffff fscache_wq +EXPORT_SYMBOL fs/netfs/netfs 0x26207272 netfs_subreq_terminated +EXPORT_SYMBOL fs/netfs/netfs 0x648a818a netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0x7fffffff netfs_write_begin +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x37d755da qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x463b0fce qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0x6ebc4727 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7c9b6617 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7fffffff qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x7fffffff qtree_write_dquot +EXPORT_SYMBOL lib/crc-itu-t 0x7fffffff crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0x7fffffff crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x65aaf037 crc7_be_syndrome_table +EXPORT_SYMBOL lib/crc7 0x7fffffff crc7_be +EXPORT_SYMBOL lib/crypto/libarc4 0x2bb32ad1 arc4_setkey +EXPORT_SYMBOL lib/crypto/libarc4 0x7fffffff arc4_crypt +EXPORT_SYMBOL lib/crypto/libchacha 0x7fffffff chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x4c9268e1 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x635b1a76 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x64375eb4 chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x738d84bf xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x7fffffff chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x7fffffff chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0x7fffffff poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0x7fffffff poly1305_core_setkey +EXPORT_SYMBOL lib/libcrc32c 0x7fffffff crc32c +EXPORT_SYMBOL lib/libcrc32c 0x7fffffff crc32c_impl +EXPORT_SYMBOL lib/lru_cache 0x03f599c7 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x4092e01e lc_seq_dump_details +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 0x7fffffff lc_committed +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_del +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_find +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_get +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_reset +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_set +EXPORT_SYMBOL lib/lru_cache 0x7fffffff lc_try_lock +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 0x7fffffff 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 0x7fffffff LZ4_compress_HC +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x7fffffff 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 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 0x7fffffff objagg_hints_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_obj_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_stats_get +EXPORT_SYMBOL lib/objagg 0x7fffffff objagg_stats_put +EXPORT_SYMBOL lib/parman 0x0f518717 parman_prio_init +EXPORT_SYMBOL lib/parman 0x7b03d378 parman_item_add +EXPORT_SYMBOL lib/parman 0x7fffffff parman_create +EXPORT_SYMBOL lib/parman 0x7fffffff parman_destroy +EXPORT_SYMBOL lib/parman 0x7fffffff parman_item_remove +EXPORT_SYMBOL lib/parman 0x7fffffff parman_prio_fini +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 0x7fffffff raid6_empty_zero_page +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gfexi +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gflog +EXPORT_SYMBOL lib/raid6/raid6_pq 0x7fffffff raid6_gfmul +EXPORT_SYMBOL net/6lowpan/6lowpan 0x11823f5e lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x1ac11cad lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x2a9c9850 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7fffffff lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7fffffff lowpan_register_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7fffffff lowpan_unregister_netdevice +EXPORT_SYMBOL net/802/p8022 0x7f83e171 register_8022_client +EXPORT_SYMBOL net/802/p8022 0x7fffffff unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x7fffffff register_snap_client +EXPORT_SYMBOL net/802/psnap 0x7fffffff unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00f53830 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x15a3e2f6 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x15e821e5 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x19ad1111 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x1ce3e721 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1f859394 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x22a05bbe p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0x2890c2b1 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3a2c8bad p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x3a3c6864 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3d986cf9 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x40ab4938 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x40dde8dd p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4768a9cb p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x4d57fa43 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x5ae2bd16 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5f8c306f p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x63814f02 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x6856b4af p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x6b542332 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x6d2a56a6 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6f64d950 p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x79b6feea p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x7fffffff v9fs_unregister_trans +EXPORT_SYMBOL net/appletalk/appletalk 0x18c7f5c8 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x45d096f8 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x7fffffff aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x7fffffff atrtr_get_dev +EXPORT_SYMBOL net/atm/atm 0x022fa9dc deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x1ad22f85 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x23f42103 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x2ebbbe73 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x34d895e6 atm_charge +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x55ff2617 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x5be6a340 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x5f7e703e atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x62ef86cc atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x6b9a3871 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x7fffffff atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0x7fffffff register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x7fffffff sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0x7fffffff sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0x7fffffff vcc_insert_socket +EXPORT_SYMBOL net/ax25/ax25 0x019ceeba ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x1f3d50ae ax25_header_ops +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 0x676d5929 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x7d98dbc6 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0x7f67eeeb ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0x7fffffff null_ax25_address +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0400916f bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05d2f083 hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x07563bf8 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x087ab542 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x16d95af9 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1e3d846b bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2094a525 hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2173918d l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x29b0f084 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d9c5951 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e1f6ee5 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f3979df __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b80e320 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3e497ba1 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4012f490 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x50bac473 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51eb059b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x58704082 hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5983a5da l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5babc79b hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e516c5c hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x62e064af hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x62fdcdce hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63c1c727 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0x63fea9fd __hci_cmd_sync_status_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x69aad85e hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x72b2c4a9 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 0x7c144f64 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7dc7b252 hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fffffff l2cap_register_user +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7fffffff ebt_unregister_template +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 0x52ea9b6e caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x7fffffff caif_free_client +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x7fffffff cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0x7fffffff get_cfcnfg +EXPORT_SYMBOL net/can/can 0x24bbb325 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x264951ca can_proto_register +EXPORT_SYMBOL net/can/can 0x74b54c8d can_send +EXPORT_SYMBOL net/can/can 0x7fffffff can_proto_unregister +EXPORT_SYMBOL net/can/can 0x7fffffff can_rx_register +EXPORT_SYMBOL net/can/can 0x7fffffff can_sock_destruct +EXPORT_SYMBOL net/ceph/libceph 0x0232174d osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x066ff804 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0a3c60e0 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0x0bc3371f ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x10adc363 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x17563c80 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x18363ddd ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x1996baa2 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x1b3a73ad ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x1be8af83 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x1c75b03c osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x1cba3f20 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x20ae70a7 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x224bc69d ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x24397df6 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x259f8cf1 ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x2756024d ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x28d0ea22 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x2b1f24ca osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x2c33e7b1 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x2f6c8f3d ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x317ac0ee ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0x3522979c ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x367e3f0c ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x38bd92d7 ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x393628f4 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x3b619a6e ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x3d0f2a7c ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x3dc253b9 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x3fb431e6 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x45044d94 ceph_find_or_create_string +EXPORT_SYMBOL net/ceph/libceph 0x4621dbcf ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x56f66c7d osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5a6f4a43 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5bb6ec67 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x5e3bc067 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x63159749 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6431869a ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x644b6e50 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x679b725e osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0x67c1155f ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x685edb25 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x6942fba0 ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x697fd395 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6eba30cb osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x6edb8cb7 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6fa4c774 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x6fae2188 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0x73c54fa1 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x74a7fcc6 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0x751aa44d ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x763cebd8 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x77216587 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x7a76fe9d ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x7ac5801f ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x7b291337 ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0x7b4f57a9 ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0x7cd81b4d ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x7d4fac32 osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x7e28da04 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x7e88d716 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x7fffffff osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x2a43ee6a dccp_req_err +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x7fffffff dccp_syn_ack_timeout +EXPORT_SYMBOL net/hsr/hsr 0x7fffffff hsr_get_version +EXPORT_SYMBOL net/hsr/hsr 0x7fffffff is_hsr_master +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1b732a08 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2b36d553 wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6f4dd361 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fffffff wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fffffff wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x7fffffff wpan_phy_unregister +EXPORT_SYMBOL net/ipv4/fou 0x19741ae4 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff __gue_build_header +EXPORT_SYMBOL net/ipv4/fou 0x7fffffff fou_encap_hlen +EXPORT_SYMBOL net/ipv4/gre 0x70f5d5af gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x182b8605 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x6b97a4b9 ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x74771c85 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x1eab7c01 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1b65a36c ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x418cff7c ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/tunnel4 0x7fffffff xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x7fffffff xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x7fffffff udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x01a3daed ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x421499f5 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x5db95db9 ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x75cff033 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4ac00bad ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x65be1516 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x71beea48 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x611b1295 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x7fffffff xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7fffffff xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7fffffff xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/lapb/lapb 0x19df8745 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x24fdb7c6 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x4c427c3d lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x54233263 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0x5b127526 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x63c56c83 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x7fffffff lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x19e5672c llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x1c853a1d llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x508daba6 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x7fffffff llc_set_station_handler +EXPORT_SYMBOL net/mac80211/mac80211 0x057a90e9 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x0ca6ca5b ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x0db420b6 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0fe0910a ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x12add1ff ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x16a7c9b0 ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1aca2c55 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x1f0b5e10 ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x1f311af5 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0x1f442554 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x208b8905 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x239c9e81 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x2634a9a3 ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x27fcb35d ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0x320d0d34 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x32671f28 ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x3273ef67 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x3cba0dd1 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0x3f5d4653 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x45b73c02 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x47eda728 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x48b9a3e5 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x48efac22 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x4cd4adf2 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4de577c7 ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0x4ed2d9ba ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x52db240f ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5a9dffb5 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x5ee2970b ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x5f0c6e0c ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x5f63eb25 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x61a85959 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x61c8d9a4 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x679446a1 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x6b90fb71 ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x6d1de68c ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x720c149e ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x74063f9d ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x773353b2 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x779b7c4e ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x78123a29 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x7867f157 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x7b6dd4bf ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7ba46ccc ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7e55dc0f ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7ee97761 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x7fffffff wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x01045a72 ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0x0c8b8a32 ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x2a148f17 ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0x48c51133 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x4f565682 ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x62661ac7 ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_free_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x7fffffff ieee802154_xmit_error +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x278c2ca7 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2fa63c88 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x365aafdf ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x429fe6ab ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x521bb6a9 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x54db929a ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x590073b2 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x61b467b0 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7fffffff unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7fffffff __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x7fffffff nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x7fffffff pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x00796a2d nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x03366a4f __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x7fffffff nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x7fffffff nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nft_fib 0x7fffffff nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x26f43112 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x48012e28 xt_check_proc_name +EXPORT_SYMBOL net/netfilter/x_tables 0x62e4031b xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6afe762d xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x6c6aaa0b xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_find_jump_offset +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x7fffffff xt_unregister_targets +EXPORT_SYMBOL net/nfc/hci/hci 0x02ada5ac nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x09a2a675 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x16cfc6ba nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x38b20972 nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0x3b0e26c4 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x478f8674 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x54494d7d nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0x59131470 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x7fffffff nfc_llc_start +EXPORT_SYMBOL net/nfc/nci/nci 0x0050ca9f nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x0bd67dc2 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x1d669876 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x20fb8a03 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x2d36b9d8 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nci/nci 0x385cf31c nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0x43237170 nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0x45b0ffb6 nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x47c735c7 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x4de0309f nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x539fc2bf nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0x5b4f061b nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x741d099d nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0x7fffffff nci_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x15104827 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x18dfb56e nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x1df35036 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0x2820aeb5 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x3a95af21 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x4fa14464 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x57666766 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x69b2092e nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x6d184fed nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x7fffffff nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc_digital 0x63767908 nfc_digital_unregister_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x74c41eb3 nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7fffffff nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x7fffffff nfc_digital_register_device +EXPORT_SYMBOL net/phonet/phonet 0x1bfdf97d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x2ebd6069 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x34f1baf7 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x4139ae65 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x7fffffff pn_sock_unhash +EXPORT_SYMBOL net/rxrpc/rxrpc 0x0d8f231f rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1107b6a9 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x12b5a553 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1b1f8e69 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4269c1ef rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4acea13e rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x53833f1b key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0x551226c2 rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x597ebabe rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x6f938a56 rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x78a8bcfb rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7c30cec0 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0x7fffffff rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/sctp/sctp 0x4d53bed1 sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x257ecb0c __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x6203d4d2 __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x736ba91d __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x7fffffff __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x7fffffff __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x7fffffff __tracepoint_smcr_link_down +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x01f38f8d gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x2f8a2118 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x38d3b902 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x2337a844 xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7fffffff svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7fffffff xdr_truncate_encode +EXPORT_SYMBOL net/tipc/tipc 0x1f805062 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0x36c6fa4d tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0x7fffffff tipc_dump_start +EXPORT_SYMBOL net/tipc/tipc 0x7fffffff tipc_nl_sk_walk +EXPORT_SYMBOL net/tls/tls 0x56b64ce8 tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x043d3015 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x0a67081f cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x0cf5e69d wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0x0f962c80 cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x0fa5893d cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x13c537b5 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x14c45cfb wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x151a3732 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x1549d2ab regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19972cb3 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x1ab57404 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x1af54622 cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0x1b2e4b5d cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x25d05dd0 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x25f026c2 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x29c3ac28 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x2a9cc920 cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0x2ab55310 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x2b7606bb cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x2e83be19 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x343cdfae cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x349a103b wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x38cb594a ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x3d459ddd cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x3e9d5c69 cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3f48bfb3 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x42e6b467 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x43c3fab3 cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0x452c4254 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4a28e5a5 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x51cff30f cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x52a60788 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x55f4c9e5 cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0x57e0e1b0 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x6117f01c cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x632f82e3 cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0x67a88af3 cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x6dd49abb cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x6e200342 cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x726d35c1 __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x748d801f cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0x750e6ffd ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7b83225e cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x7c00b1c4 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7c28aa86 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7cfd51d1 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0x7e29a175 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0x7fffffff wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/lib80211 0x269b83b1 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7fffffff lib80211_unregister_crypto_ops +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x7fffffff 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 0x6928999c snd_seq_create_kernel_client +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 0x7fffffff snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7fffffff snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x7fffffff 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 0x7fffffff snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x7309c37d snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0x7fffffff snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06eaabb0 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15ebc0ae __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1867510e snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1c2e3a94 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2588d285 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3c75c66c snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7fffffff snd_rawmidi_transmit_peek +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 0x7fffffff snd_seq_device_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x7fffffff snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x7fffffff snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x227cfa75 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x48c16e60 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x503da649 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6d81e97f snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x76c10825 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7fffffff snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x226138b0 snd_vx_threaded_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2d434bbf snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x527b35d2 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5f6d326a snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x69ffbd0a snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7fffffff snd_vx_setup_firmware +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x04ed82af avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0bc8e412 amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1395ca9d amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x142750e5 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x15b54097 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x172fd302 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x25b0547d amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x31021100 amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x352f589a cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x378b52f1 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3965a465 amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x3d14f234 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4a8abc50 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x51419226 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x56d8dacc cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x576be8a0 cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5a9b6214 cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x62eecf63 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7bae3eb2 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7fffffff iso_packets_buffer_destroy +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x6f4796e2 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4633d5a3 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x46cf7d4b snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4b9037cf snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x71246707 snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7fffffff snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0bfb9903 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4a79f9ed snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6465bf53 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7fffffff snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x53c0c789 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x66f577cd snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7eae9c84 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fffffff snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fffffff snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fffffff snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fffffff snd_cs8427_init +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7fffffff snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x10d0a0dc snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x11743d21 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x53abb405 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x7fffffff snd_i2c_probeaddr +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1d215e94 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2748c2b4 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2ac0b699 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x326f6329 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3f95755c snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6f53ada6 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x750cf8c3 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fc19354 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7fffffff snd_ac97_update +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x021cf34c snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x43971c66 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6623b682 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x73f0c5a9 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7e444520 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7fffffff snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7fffffff snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7fffffff snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7fffffff snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1b6d2320 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6a4501ac snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x7fffffff snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x09901c2f oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1326f72d oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2ba911a6 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x316460aa oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x327dc493 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4908809b oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4cb8cc08 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x623e2f21 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6a13e097 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x73be29b2 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7fffffff oxygen_write_uart +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x3549915c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5b3ec379 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7fffffff snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7fffffff snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7fffffff snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0x7fffffff acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x24751dd7 snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x7fffffff snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0x7541682c adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0x2c22bcf5 wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x7fffffff pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x7fffffff pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0x7fffffff hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x46f25efc tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x69de9173 tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x1fe7dd88 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x7fffffff aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x7fffffff aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x25f63ce3 aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x29736f5c aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x72632cfa wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x793b30a3 mt8192_afe_gpio_request +EXPORT_SYMBOL sound/soc/mediatek/mt8192/snd-soc-mt8192-afe 0x7fffffff mt8192_afe_gpio_init +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_unvote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_vote_lpass_core_hw +EXPORT_SYMBOL sound/soc/qcom/snd-soc-qcom-common 0x2a9ca00c qcom_snd_parse_of +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x008a37a2 snd_emux_new +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1a4c42f7 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 0x6b49bf43 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7fffffff snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7fffffff snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7fffffff snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/snd-util-mem 0x17b16e1d snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2d2c67a0 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x7fffffff snd_util_memhdr_new +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 0x7fffffff __snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_disconnect +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_resume +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7fffffff snd_usbmidi_suspend +EXPORT_SYMBOL vmlinux 0x000bb7e8 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0x0010b8c5 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x001ee95a imx_ssi_fiq_base +EXPORT_SYMBOL vmlinux 0x003d3eb6 security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0x005746e1 snd_register_device +EXPORT_SYMBOL vmlinux 0x0068e900 end_page_writeback +EXPORT_SYMBOL vmlinux 0x007286de of_chosen +EXPORT_SYMBOL vmlinux 0x0072a479 iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x008394a2 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x00841a16 blk_rq_init +EXPORT_SYMBOL vmlinux 0x009903a8 netdev_notice +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00b81483 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00e04562 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x00fa2693 clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01099197 kernel_connect +EXPORT_SYMBOL vmlinux 0x01126619 user_path_create +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x01163ba0 nf_reinject +EXPORT_SYMBOL vmlinux 0x011a9e53 elf_hwcap2 +EXPORT_SYMBOL vmlinux 0x0129c4f8 par_io_data_set +EXPORT_SYMBOL vmlinux 0x0143e4eb ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x01505d85 imx_scu_call_rpc +EXPORT_SYMBOL vmlinux 0x01515d7b netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x01757935 rdmacg_register_device +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 0x01bed76a jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01bf78b5 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x01e119cb is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0x01e5a6fc __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x01fc70bb sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x01ff3835 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x02157caf skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x022a7d0d get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x025ba97f remap_pfn_range +EXPORT_SYMBOL vmlinux 0x026cad92 pci_map_rom +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x0286ba9f xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02a3973e may_setattr +EXPORT_SYMBOL vmlinux 0x02be5332 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0x02c065f8 ucc_set_qe_mux_mii_mng +EXPORT_SYMBOL vmlinux 0x02cfcb0d dcache_dir_close +EXPORT_SYMBOL vmlinux 0x02d54a57 page_pool_get_stats +EXPORT_SYMBOL vmlinux 0x02e8d24c __alloc_skb +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02f79482 nla_reserve +EXPORT_SYMBOL vmlinux 0x032fda4a tegra_dfll_suspend +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033e6a19 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x033fe3cb __kmap_to_page +EXPORT_SYMBOL vmlinux 0x0354d3a8 mdiobus_read +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036d8bbd napi_gro_receive +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x0380969b put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03993435 ilookup +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03e7b1b8 __destroy_inode +EXPORT_SYMBOL vmlinux 0x03edb5fb blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x03edf5fd tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x03f58dff fb_blank +EXPORT_SYMBOL vmlinux 0x03fba701 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x0412acb4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x04426f14 mem_section +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x044fb722 dev_base_lock +EXPORT_SYMBOL vmlinux 0x0458f804 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x04637748 clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0x04688036 cdrom_release +EXPORT_SYMBOL vmlinux 0x046b82a4 tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x0487e4c7 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x0498eeed __snd_pcm_lib_xfer +EXPORT_SYMBOL vmlinux 0x049e484d netif_rx +EXPORT_SYMBOL vmlinux 0x04a00d45 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x04a13353 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0x04be8eee mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x04c6b4c3 __crypto_memneq +EXPORT_SYMBOL vmlinux 0x04c8a150 mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04df2a72 dst_alloc +EXPORT_SYMBOL vmlinux 0x04ed23e8 give_up_console +EXPORT_SYMBOL vmlinux 0x04f47376 snd_pcm_set_managed_buffer +EXPORT_SYMBOL vmlinux 0x04f840f3 snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x04fcd25c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x04fd85b4 set_security_override +EXPORT_SYMBOL vmlinux 0x0508088e ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x051bcdff truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x051c6195 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x052056a5 netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x052236ab pci_remove_bus +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052ec816 copy_string_kernel +EXPORT_SYMBOL vmlinux 0x053be40f jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x053cbb74 devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x05416fb1 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x054d5861 module_refcount +EXPORT_SYMBOL vmlinux 0x0555b65c dst_init +EXPORT_SYMBOL vmlinux 0x055f0677 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0x0569a236 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x056ad2ed skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x057de16a framebuffer_release +EXPORT_SYMBOL vmlinux 0x057f91bb skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0x0596cd92 __fs_parse +EXPORT_SYMBOL vmlinux 0x05b0357c inet_offloads +EXPORT_SYMBOL vmlinux 0x05b0caa0 hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x05b8cfda vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL vmlinux 0x05c4fcc0 proc_create_data +EXPORT_SYMBOL vmlinux 0x05cd617e gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x05e8bf50 napi_consume_skb +EXPORT_SYMBOL vmlinux 0x05eff13c inet6_add_offload +EXPORT_SYMBOL vmlinux 0x05f1da37 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x05f5824b sock_wfree +EXPORT_SYMBOL vmlinux 0x060e7a42 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x0634e886 pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x063e0df5 __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x064861bc dev_add_pack +EXPORT_SYMBOL vmlinux 0x0653e6f6 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x069928ce security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x069be8da dqget +EXPORT_SYMBOL vmlinux 0x06a3e0fc snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x06a466b5 zap_page_range +EXPORT_SYMBOL vmlinux 0x06a55fc7 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x06c33a01 inet_accept +EXPORT_SYMBOL vmlinux 0x06cf11cb sock_no_getname +EXPORT_SYMBOL vmlinux 0x06d0da4d md_integrity_register +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06d730e4 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x06dda7f5 security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0x06f26d14 generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x06f3f0b0 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x06fc71ea d_path +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x071809e5 __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x072a8f8d __set_fiq_regs +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x074efa01 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x075a518b devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x077252d2 fs_bio_set +EXPORT_SYMBOL vmlinux 0x0776454a dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x077af67c init_opal_dev +EXPORT_SYMBOL vmlinux 0x0782cb2f from_kuid_munged +EXPORT_SYMBOL vmlinux 0x0791b7f6 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x07941789 __of_get_address +EXPORT_SYMBOL vmlinux 0x0797ae28 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x07a419b1 tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0x07a67642 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b6c3b3 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x07bf92e9 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cee073 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x07dcddc0 of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0x07e2c085 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0804c5e8 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x081d80f8 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x0829f921 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08489426 of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0x084e4fc2 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x084e9804 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x085c119a input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x0887a8c3 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x088d6dfc neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x089f9205 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x08a495bb simple_recursive_removal +EXPORT_SYMBOL vmlinux 0x08a9b748 mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0x08b9ada8 devm_request_resource +EXPORT_SYMBOL vmlinux 0x08ca0132 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x08d66d4b _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x08e39398 cmd_db_read_addr +EXPORT_SYMBOL vmlinux 0x08f6685b tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x090ebf02 snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL vmlinux 0x0912b0f1 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x093b5a01 dump_page +EXPORT_SYMBOL vmlinux 0x093d78e1 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x09451929 phy_write_mmd +EXPORT_SYMBOL vmlinux 0x0959e0ec snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a5d57d tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x09a874db dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x09ac288e __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x09af8d91 param_ops_long +EXPORT_SYMBOL vmlinux 0x09b01ed2 pci_request_region +EXPORT_SYMBOL vmlinux 0x09b152e2 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x09b9d8e1 get_watch_queue +EXPORT_SYMBOL vmlinux 0x09bdd395 submit_bio +EXPORT_SYMBOL vmlinux 0x09c2cff2 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x09c3df0d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x09c7fe16 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x09cda927 configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0x09cf7191 simple_statfs +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09de0bd6 security_sb_remount +EXPORT_SYMBOL vmlinux 0x09e18ae6 mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x09f56b9a devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x0a029adc jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x0a12991a mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a3ce124 page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0x0a3f38c3 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x0a630980 pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x0a96b96a kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0abe37d0 __udp_disconnect +EXPORT_SYMBOL vmlinux 0x0ac7edc6 brioctl_set +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adcdbc4 locks_free_lock +EXPORT_SYMBOL vmlinux 0x0ae547ed xxh64_update +EXPORT_SYMBOL vmlinux 0x0aec61f7 mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0x0aeed8bf dev_open +EXPORT_SYMBOL vmlinux 0x0b173258 ndisc_ns_create +EXPORT_SYMBOL vmlinux 0x0b1b939e kmemdup +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b214782 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x0b3bd4e2 input_set_capability +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56a37d page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x0b617520 dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x0b630683 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7a6462 locks_init_lock +EXPORT_SYMBOL vmlinux 0x0b816d42 nand_get_set_features_notsupp +EXPORT_SYMBOL vmlinux 0x0b84340f blk_execute_rq +EXPORT_SYMBOL vmlinux 0x0b9a83aa dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0bb97a28 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc4ba1e serio_unregister_port +EXPORT_SYMBOL vmlinux 0x0bd32ff8 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x0bd48042 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x0bdb5ebc mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x0bdc3c94 mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0x0be1fc5e register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x0bef7cf4 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x0bf06f08 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x0bf966ec show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x0bfb6114 file_path +EXPORT_SYMBOL vmlinux 0x0c0b0e5e dev_remove_offload +EXPORT_SYMBOL vmlinux 0x0c0f1c4a devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x0c112d30 find_vma +EXPORT_SYMBOL vmlinux 0x0c125f26 of_node_put +EXPORT_SYMBOL vmlinux 0x0c155195 tcp_child_process +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c2833ec skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0x0c2b6125 qdisc_reset +EXPORT_SYMBOL vmlinux 0x0c361a99 ip_frag_next +EXPORT_SYMBOL vmlinux 0x0c506c2c ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0x0c56fb97 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x0c5fc575 fb_set_cmap +EXPORT_SYMBOL vmlinux 0x0c60154d empty_aops +EXPORT_SYMBOL vmlinux 0x0c70096b dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0x0c96cec9 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x0c9d2d06 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0ca94d93 tty_write_room +EXPORT_SYMBOL vmlinux 0x0cab6745 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cbb4c10 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x0cbbb249 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x0cbc2d24 pci_dev_put +EXPORT_SYMBOL vmlinux 0x0cd0853f crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x0cd62a5c make_kgid +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d083169 vme_dma_list_add +EXPORT_SYMBOL vmlinux 0x0d1b54c1 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0d1bd1aa blk_put_queue +EXPORT_SYMBOL vmlinux 0x0d233fe3 input_event +EXPORT_SYMBOL vmlinux 0x0d246a14 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x0d2ca20f ucc_fast_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d6bcd85 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x0d760ed6 alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0x0d93f8f4 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x0da56ff1 of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0x0db17786 no_llseek +EXPORT_SYMBOL vmlinux 0x0dba5e9a radix_tree_delete +EXPORT_SYMBOL vmlinux 0x0dbbb676 t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x0dc1a78c bin2hex +EXPORT_SYMBOL vmlinux 0x0dd0e8eb dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x0dd6c031 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x0ddec4e8 fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x0de0ddbc pci_set_mwi +EXPORT_SYMBOL vmlinux 0x0de2b8be generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x0deece5a blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x0e0a03a8 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x0e16c93b vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e1c8804 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x0e257e7a dma_find_channel +EXPORT_SYMBOL vmlinux 0x0e336118 iget_locked +EXPORT_SYMBOL vmlinux 0x0e5240e0 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x0e58ece3 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x0e5cfded current_time +EXPORT_SYMBOL vmlinux 0x0e5da8f0 utf8_normalize +EXPORT_SYMBOL vmlinux 0x0e7a6156 jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x0e802d6f vfs_llseek +EXPORT_SYMBOL vmlinux 0x0e851f1a pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ec0aac5 fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0ed7cf15 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x0ee7f442 netif_receive_skb +EXPORT_SYMBOL vmlinux 0x0eea0399 strscpy +EXPORT_SYMBOL vmlinux 0x0eea1e03 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0x0eeca5ae inet_add_protocol +EXPORT_SYMBOL vmlinux 0x0ef503af inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f1f3cb4 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x0f415c76 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x0f57446f xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x0f5ef58a jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x0f5fc4dd inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x0f655355 vfio_info_add_capability +EXPORT_SYMBOL vmlinux 0x0f76d596 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f8943db dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x0f99a13f backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0x0fb21a1b tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fbc960c block_invalidate_folio +EXPORT_SYMBOL vmlinux 0x0fd0f592 mutex_trylock +EXPORT_SYMBOL vmlinux 0x0fd1ac06 nd_btt_version +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 0x1015ff5a folio_add_lru +EXPORT_SYMBOL vmlinux 0x1023e854 vga_client_register +EXPORT_SYMBOL vmlinux 0x1025009a cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x102936ec qe_clock_source +EXPORT_SYMBOL vmlinux 0x1033d6dd invalidate_bdev +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x10452548 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x10537a18 mpage_writepages +EXPORT_SYMBOL vmlinux 0x106246dd d_rehash +EXPORT_SYMBOL vmlinux 0x10625e4f block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x10695a74 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x10735417 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x10739f1e swake_up_locked +EXPORT_SYMBOL vmlinux 0x1076c15a max8925_set_bits +EXPORT_SYMBOL vmlinux 0x107a3997 dump_skip +EXPORT_SYMBOL vmlinux 0x107c76be nf_log_unset +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x1094fa47 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x109cae7d sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x10a7f636 mr_dump +EXPORT_SYMBOL vmlinux 0x10bc0234 dma_pool_create +EXPORT_SYMBOL vmlinux 0x10bd485b __mdiobus_register +EXPORT_SYMBOL vmlinux 0x10c67b41 security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x10cbe16c is_nd_btt +EXPORT_SYMBOL vmlinux 0x10cf616a nand_ecc_finish_io_req +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e24361 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x10eee826 jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0x10fe966a fd_install +EXPORT_SYMBOL vmlinux 0x11066dfa pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11098293 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x11319c65 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x1143873f rpmh_write_batch +EXPORT_SYMBOL vmlinux 0x11460a2a sock_no_accept +EXPORT_SYMBOL vmlinux 0x114798a4 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117b3a80 skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0x118ae7c7 nand_ecc_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11a00377 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x11c3e530 input_register_device +EXPORT_SYMBOL vmlinux 0x11c765e6 pps_register_source +EXPORT_SYMBOL vmlinux 0x11d5bd11 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11f7e60c phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x11fa2a50 cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0x11ffdfee ucc_slow_stop_tx +EXPORT_SYMBOL vmlinux 0x1203d182 __kfree_skb +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1210fb32 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x12156cc3 configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0x121eda0e devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x1222af7f security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x124c2b7d __put_user_ns +EXPORT_SYMBOL vmlinux 0x125274bf dev_get_by_index +EXPORT_SYMBOL vmlinux 0x126dc612 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x127f1c3c __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x12827367 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x128e44e5 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0x1292149b tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x12b7d495 napi_get_frags +EXPORT_SYMBOL vmlinux 0x12c66c09 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12cabd8a flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0x12ce9c8c fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0x12d02cd7 generic_perform_write +EXPORT_SYMBOL vmlinux 0x12d32083 put_cmsg +EXPORT_SYMBOL vmlinux 0x12f19edf __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x12fca31d no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x12fdda0a arm_dma_ops +EXPORT_SYMBOL vmlinux 0x13073039 md_cluster_ops +EXPORT_SYMBOL vmlinux 0x130a6313 iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x130ea94e scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x13110126 request_resource +EXPORT_SYMBOL vmlinux 0x13243d4b wl1251_get_platform_data +EXPORT_SYMBOL vmlinux 0x1324b0e2 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x132a53f8 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x134523bb mdio_bus_type +EXPORT_SYMBOL vmlinux 0x13497887 cad_pid +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x1371da00 cdrom_open +EXPORT_SYMBOL vmlinux 0x1378c6b7 __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x137bbdf5 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x13a680d3 freeze_bdev +EXPORT_SYMBOL vmlinux 0x13af5d16 sk_net_capable +EXPORT_SYMBOL vmlinux 0x13c78576 filp_close +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13cec70b inet_recvmsg +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d3cbfd audit_log_start +EXPORT_SYMBOL vmlinux 0x13d69052 address_space_init_once +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x140cef8e cmxgcr_lock +EXPORT_SYMBOL vmlinux 0x1410713d inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x141c87cd __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x142109bc zpool_register_driver +EXPORT_SYMBOL vmlinux 0x142a3252 flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1451e8e5 vm_zone_stat +EXPORT_SYMBOL vmlinux 0x145d9375 __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x1486978a gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0x1492352f inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x14a5a633 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x14a969fc skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x14a9ddcd km_report +EXPORT_SYMBOL vmlinux 0x14b4e6da tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14f104c7 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x1501baf9 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x1541a570 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x156c7852 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x15783d90 xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x158491d3 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x158a99fa kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0x15a4879d tcp_splice_read +EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x15c04d6d xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x15d3a661 phy_device_create +EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x16156e0c blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x161ff81d jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x162c75c1 snd_mixer_oss_notify_callback +EXPORT_SYMBOL vmlinux 0x163087ac simple_transaction_get +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x16399a1b ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x163d2417 tegra_io_rail_power_off +EXPORT_SYMBOL vmlinux 0x16525cc4 xa_find +EXPORT_SYMBOL vmlinux 0x16689543 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x1687df1f __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x16adbf67 down_killable +EXPORT_SYMBOL vmlinux 0x16b7cac7 wake_up_process +EXPORT_SYMBOL vmlinux 0x16b98a6d netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x16d6a3dd generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e73be6 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x16f24b00 from_kprojid +EXPORT_SYMBOL vmlinux 0x16f9112f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x171ce6a8 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x171de5e2 rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x174a96e5 eth_type_trans +EXPORT_SYMBOL vmlinux 0x1760d0f5 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x17777d60 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x178c4894 qe_upload_firmware +EXPORT_SYMBOL vmlinux 0x1795816a max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x17b4e361 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x17c667d4 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x17f66bdc __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x17f6d971 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x180a9f65 sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x181a984b jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x1862dbb5 pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0x186b9ea3 netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0x187664fd sg_miter_start +EXPORT_SYMBOL vmlinux 0x187884a8 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x1879f63a dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x189ed7a1 vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x18a5a388 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x18d82eb6 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x18dbf94b napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x18ec7fef folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0x18f2ab5d _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x18f4bd72 pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x191c3ef8 fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x19326958 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0x195c8596 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x197cc8d0 snd_sgbuf_get_page +EXPORT_SYMBOL vmlinux 0x197f349c vm_map_pages +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a97652 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x19aa2565 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19be8778 rtc_add_group +EXPORT_SYMBOL vmlinux 0x1a031bfe udp_seq_next +EXPORT_SYMBOL vmlinux 0x1a21d691 __ksize +EXPORT_SYMBOL vmlinux 0x1a26effe hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x1a319581 netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x1a343096 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1a377376 d_drop +EXPORT_SYMBOL vmlinux 0x1a4b9c2b security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a7bc9ef xxh32 +EXPORT_SYMBOL vmlinux 0x1a8257ad param_set_byte +EXPORT_SYMBOL vmlinux 0x1a83ef92 module_put +EXPORT_SYMBOL vmlinux 0x1a9813b7 of_device_unregister +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1aa43176 do_map_probe +EXPORT_SYMBOL vmlinux 0x1aa86d18 rdma_dim +EXPORT_SYMBOL vmlinux 0x1aaff412 vme_unregister_driver +EXPORT_SYMBOL vmlinux 0x1acc3638 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1afaf2c8 param_ops_ullong +EXPORT_SYMBOL vmlinux 0x1afc30e8 mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b25f187 __xa_store +EXPORT_SYMBOL vmlinux 0x1b295407 bio_endio +EXPORT_SYMBOL vmlinux 0x1b4a2a11 follow_pfn +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b820d37 import_iovec +EXPORT_SYMBOL vmlinux 0x1b965a53 kunmap_local_indexed +EXPORT_SYMBOL vmlinux 0x1ba59857 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bda4f56 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x1beb66c3 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x1c37cae5 __mdiobus_write +EXPORT_SYMBOL vmlinux 0x1c3efacb skb_unlink +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c61c3a5 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x1c62319f of_node_name_eq +EXPORT_SYMBOL vmlinux 0x1c777c5c dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0x1c90d456 __vfs_getxattr +EXPORT_SYMBOL vmlinux 0x1c96d265 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x1cb891b6 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1cce3207 thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d12d9f5 fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x1d1385fc mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0x1d376eb2 would_dump +EXPORT_SYMBOL vmlinux 0x1d37eeed ioremap +EXPORT_SYMBOL vmlinux 0x1d3dbee8 tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x1d74a5b9 nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0x1d75e57b bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x1d796395 hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0x1d829f08 of_find_property +EXPORT_SYMBOL vmlinux 0x1d961d41 d_make_root +EXPORT_SYMBOL vmlinux 0x1d9ed6f4 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x1da9ddab iov_iter_discard +EXPORT_SYMBOL vmlinux 0x1daee677 input_inject_event +EXPORT_SYMBOL vmlinux 0x1db348de elv_rb_del +EXPORT_SYMBOL vmlinux 0x1db7911a snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x1dc498a2 ip_local_deliver +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dce67aa dev_mc_add +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd6ba35 netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1de59c22 qcom_scm_ice_invalidate_key +EXPORT_SYMBOL vmlinux 0x1de67f9b qcom_scm_io_writel +EXPORT_SYMBOL vmlinux 0x1de984d5 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x1df18793 empty_zero_page +EXPORT_SYMBOL vmlinux 0x1dfaa4dd efi +EXPORT_SYMBOL vmlinux 0x1e0221e1 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x1e0373fc imx_scu_irq_group_enable +EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1e0c1cfd sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x1e1c2bfa of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e2b0bf2 md_register_thread +EXPORT_SYMBOL vmlinux 0x1e33d957 snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x1e3403b0 pskb_extract +EXPORT_SYMBOL vmlinux 0x1e35f45c sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x1e41c548 ilookup5 +EXPORT_SYMBOL vmlinux 0x1e47dbeb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x1e5284e4 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x1e584af0 crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e78e404 tso_build_data +EXPORT_SYMBOL vmlinux 0x1e96f43d __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x1e9886b9 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x1e994dab key_type_keyring +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb26a68 __netif_schedule +EXPORT_SYMBOL vmlinux 0x1eb50bad rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x1eb64646 div64_s64 +EXPORT_SYMBOL vmlinux 0x1ece4e2b skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x1ed1786a ip_options_compile +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1edf91da sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x1ef18dc9 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x1ef41b7e qcom_scm_iommu_set_pt_format +EXPORT_SYMBOL vmlinux 0x1f033df6 bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x1f231eae submit_bio_noacct +EXPORT_SYMBOL vmlinux 0x1f38ff97 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x1f3c7ccf kthread_stop +EXPORT_SYMBOL vmlinux 0x1f4d5778 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x1f55d456 seq_release +EXPORT_SYMBOL vmlinux 0x1f7f8fde sock_create_lite +EXPORT_SYMBOL vmlinux 0x1f8e6f81 has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x1fb5de13 bh_submit_read +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fbf1021 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0x1fc31833 ppp_dev_name +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd8dcb3 xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x1ff3b002 devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x1ff4b19d locks_delete_block +EXPORT_SYMBOL vmlinux 0x1ffbca89 pci_match_id +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 0x2009d5d8 pci_iounmap +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x20130eed set_page_writeback +EXPORT_SYMBOL vmlinux 0x2029cf93 kobject_init +EXPORT_SYMBOL vmlinux 0x202f0128 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x203ce45e __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x205bf5ee netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x2062b7c5 page_mapped +EXPORT_SYMBOL vmlinux 0x2072b8b4 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x209245e0 of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0x20a3be61 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b6c033 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x20c1fd53 thaw_super +EXPORT_SYMBOL vmlinux 0x20d33d64 secpath_set +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20d7bc96 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x20db0e9d passthru_features_check +EXPORT_SYMBOL vmlinux 0x20db662c param_ops_uint +EXPORT_SYMBOL vmlinux 0x20e313cc pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x2103c91d sync_blockdev_range +EXPORT_SYMBOL vmlinux 0x2104a2df dev_get_by_name +EXPORT_SYMBOL vmlinux 0x21096cef tcf_register_action +EXPORT_SYMBOL vmlinux 0x210e1315 register_console +EXPORT_SYMBOL vmlinux 0x21100f03 __napi_schedule +EXPORT_SYMBOL vmlinux 0x21110dbf mmioset +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x21417610 mdio_device_free +EXPORT_SYMBOL vmlinux 0x215169b0 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x2155a4b0 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x215667b2 zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x216109a7 inet6_offloads +EXPORT_SYMBOL vmlinux 0x216d759a mmiocpy +EXPORT_SYMBOL vmlinux 0x216ef9af twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x2174851d __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x217a8965 get_user_pages +EXPORT_SYMBOL vmlinux 0x218cb59d skb_queue_tail +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21c43749 component_match_add_release +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21f7eb8f claim_fiq +EXPORT_SYMBOL vmlinux 0x2200917f page_mapping +EXPORT_SYMBOL vmlinux 0x220611eb max8998_update_reg +EXPORT_SYMBOL vmlinux 0x220c7021 tegra_io_pad_power_disable +EXPORT_SYMBOL vmlinux 0x22157e5f omap_rtc_power_off_program +EXPORT_SYMBOL vmlinux 0x221a7096 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x2220bd48 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x2220ee01 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x222a6129 __free_pages +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x226d2e3e skb_copy_header +EXPORT_SYMBOL vmlinux 0x2277d558 mx53_revision +EXPORT_SYMBOL vmlinux 0x227c31cd sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x228ee980 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0x2299e130 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0x22a8d2a3 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x22abc455 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22e8cd90 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x23093e77 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x233dacd3 sk_dst_check +EXPORT_SYMBOL vmlinux 0x233f86cc udp_pre_connect +EXPORT_SYMBOL vmlinux 0x2350e51a snd_compr_free_pages +EXPORT_SYMBOL vmlinux 0x2351c45d __quota_error +EXPORT_SYMBOL vmlinux 0x23586612 __breadahead +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x238c9737 __block_write_full_page +EXPORT_SYMBOL vmlinux 0x23b49039 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23ca6125 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x23e2d1d2 sock_create_kern +EXPORT_SYMBOL vmlinux 0x23ea6b3f sget +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23f1d7a6 page_pool_ethtool_stats_get_count +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x24078ddd input_release_device +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x244eeec9 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x245c31d8 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x246790df idr_for_each +EXPORT_SYMBOL vmlinux 0x246ea205 blake2s_update +EXPORT_SYMBOL vmlinux 0x248dc160 kobject_del +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24bd06df ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x24bf564b neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24d7c4e9 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x24da5cf1 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0x24e16c0c free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x25007340 find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x251ad2dc genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x252c0a8d rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x2539578c dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x253ac7e9 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x254cd353 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x256b7cf9 scsi_host_busy +EXPORT_SYMBOL vmlinux 0x2574854b module_layout +EXPORT_SYMBOL vmlinux 0x257ae45c dma_fence_free +EXPORT_SYMBOL vmlinux 0x257e1163 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x25a40368 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x25ad4917 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x25bbeb48 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x25c9b117 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x25e4871b key_reject_and_link +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x25edac58 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0x25f23a52 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x25f9b593 folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x261454fd vfs_setpos +EXPORT_SYMBOL vmlinux 0x26339ce8 proto_unregister +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2653c357 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x265537c2 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x265fb052 skb_dequeue +EXPORT_SYMBOL vmlinux 0x266dc3e8 clear_nlink +EXPORT_SYMBOL vmlinux 0x266e408d seq_putc +EXPORT_SYMBOL vmlinux 0x266f8144 ethtool_notify +EXPORT_SYMBOL vmlinux 0x267029a7 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x267c46ad nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x267f5527 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x268333d7 nf_log_register +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x268a7d95 __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x268b4615 km_query +EXPORT_SYMBOL vmlinux 0x2690e6c1 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x26988bff sync_file_create +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26d3ed3f ps2_init +EXPORT_SYMBOL vmlinux 0x26d55f76 sock_from_file +EXPORT_SYMBOL vmlinux 0x26de9281 security_path_unlink +EXPORT_SYMBOL vmlinux 0x26e88d90 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x27116ddf mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x275dfee4 ucc_slow_free +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x276523a3 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x27665fa1 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0x276a13e2 dma_map_resource +EXPORT_SYMBOL vmlinux 0x2771bbdb skb_copy_bits +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x2782b393 xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x278647c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2798eebc dentry_create +EXPORT_SYMBOL vmlinux 0x27adc678 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x27aeb5eb simple_transaction_read +EXPORT_SYMBOL vmlinux 0x27b8e4d6 mtd_concat_create +EXPORT_SYMBOL vmlinux 0x27b97768 dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27d5a8db __netif_napi_del +EXPORT_SYMBOL vmlinux 0x280533d6 pci_release_regions +EXPORT_SYMBOL vmlinux 0x28098d50 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x281c77ec tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x281d7402 jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x28345b1e snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x28645ffa backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x2873438a zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x2878e15a idr_destroy +EXPORT_SYMBOL vmlinux 0x288c5dac vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x28952e10 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x28acf939 tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0x28bc2b7c ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0x28c7fd87 skb_expand_head +EXPORT_SYMBOL vmlinux 0x28da173c bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x28dc9455 import_single_range +EXPORT_SYMBOL vmlinux 0x28e89ad6 do_splice_direct +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x290ca879 register_key_type +EXPORT_SYMBOL vmlinux 0x2937bbdc vfio_unregister_notifier +EXPORT_SYMBOL vmlinux 0x29382cc4 nd_integrity_init +EXPORT_SYMBOL vmlinux 0x293a16e7 ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x29509f95 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x296520e8 param_set_ullong +EXPORT_SYMBOL vmlinux 0x29744e42 drop_super_exclusive +EXPORT_SYMBOL vmlinux 0x297ca62e rproc_free +EXPORT_SYMBOL vmlinux 0x29895f4f __neigh_event_send +EXPORT_SYMBOL vmlinux 0x299fe165 pci_restore_state +EXPORT_SYMBOL vmlinux 0x29a47fe9 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x29ab2d7d bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x29bad636 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x29d11244 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x29d9f26e cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x29eef0ff ppp_channel_index +EXPORT_SYMBOL vmlinux 0x29fc8042 snd_dma_alloc_dir_pages +EXPORT_SYMBOL vmlinux 0x2a007228 dev_uc_add +EXPORT_SYMBOL vmlinux 0x2a0c24e6 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x2a149d96 sock_init_data +EXPORT_SYMBOL vmlinux 0x2a1acfda blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4c5bd4 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x2a63c8fc of_lpddr3_get_min_tck +EXPORT_SYMBOL vmlinux 0x2a63ead2 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x2a7ee9b0 tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x2a83bb1b blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x2a9085e0 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9471db i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa4f474 snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x2aa83d5a lock_sock_nested +EXPORT_SYMBOL vmlinux 0x2ad4e70c generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x2ae26aba pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x2ae304dc dma_fence_array_next +EXPORT_SYMBOL vmlinux 0x2ae68b66 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x2aff19e2 set_posix_acl +EXPORT_SYMBOL vmlinux 0x2b1c5ee0 rawnand_sw_hamming_cleanup +EXPORT_SYMBOL vmlinux 0x2b1da9f9 _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x2b20907e kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x2b307924 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x2b3d7665 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x2b46a601 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x2b500d07 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b930e09 md_flush_request +EXPORT_SYMBOL vmlinux 0x2b99722a __cpu_active_mask +EXPORT_SYMBOL vmlinux 0x2b9c13a9 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x2b9c735a tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba56548 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0x2bba495f serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x2bc2b901 input_register_handle +EXPORT_SYMBOL vmlinux 0x2bc77970 ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x2bc9cae1 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2be3fd08 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x2be4d776 set_blocksize +EXPORT_SYMBOL vmlinux 0x2bedb80d snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x2bf3c7b4 tcf_qevent_init +EXPORT_SYMBOL vmlinux 0x2bf7e315 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x2bfc4cc0 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0x2bfcbb93 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x2bff5887 xa_destroy +EXPORT_SYMBOL vmlinux 0x2c0c18e3 proc_mkdir +EXPORT_SYMBOL vmlinux 0x2c1c85e4 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c274706 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x2c329e54 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0x2c36b805 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x2c411fc5 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x2c42a97b _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2c5ed688 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0x2c6b6974 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x2c7544cd __register_chrdev +EXPORT_SYMBOL vmlinux 0x2c756976 uart_resume_port +EXPORT_SYMBOL vmlinux 0x2c76a82e blk_sync_queue +EXPORT_SYMBOL vmlinux 0x2c7aa916 pci_release_resource +EXPORT_SYMBOL vmlinux 0x2c7c3d6d __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x2c7c8e9a pcibios_min_mem +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c83eae1 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x2c9400d2 mmput_async +EXPORT_SYMBOL vmlinux 0x2c9a3ae9 input_reset_device +EXPORT_SYMBOL vmlinux 0x2cb5b142 cdev_alloc +EXPORT_SYMBOL vmlinux 0x2ccbdccc genphy_resume +EXPORT_SYMBOL vmlinux 0x2ce81731 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x2cef25d4 d_tmpfile +EXPORT_SYMBOL vmlinux 0x2cfde9a2 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x2cff7cb6 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x2d04538d tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d23365a security_d_instantiate +EXPORT_SYMBOL vmlinux 0x2d2d5613 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d3cb57e hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x2d416511 fqdir_init +EXPORT_SYMBOL vmlinux 0x2d4472c2 zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0x2d461aae genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d6fcc06 __kmalloc +EXPORT_SYMBOL vmlinux 0x2d87f02d try_module_get +EXPORT_SYMBOL vmlinux 0x2d912bca dmi_get_bios_year +EXPORT_SYMBOL vmlinux 0x2d96c308 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x2d971438 block_write_begin +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2dade767 dquot_drop +EXPORT_SYMBOL vmlinux 0x2db09003 snd_timer_instance_new +EXPORT_SYMBOL vmlinux 0x2dd18bb0 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2e0c614d of_match_node +EXPORT_SYMBOL vmlinux 0x2e19f3c3 rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e34bbe9 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL vmlinux 0x2e4cc438 genl_register_family +EXPORT_SYMBOL vmlinux 0x2e8259bc tty_port_close_start +EXPORT_SYMBOL vmlinux 0x2e83a5af msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x2e8d48ca mdiobus_scan +EXPORT_SYMBOL vmlinux 0x2e929029 config_item_set_name +EXPORT_SYMBOL vmlinux 0x2ea504e9 simple_write_begin +EXPORT_SYMBOL vmlinux 0x2ea96f50 rawnand_sw_bch_cleanup +EXPORT_SYMBOL vmlinux 0x2ec10da0 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2edeb3d9 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0x2ee2a86b __inet_hash +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f05aaed gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0x2f11f4a2 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x2f1254d1 ucc_tdm_init +EXPORT_SYMBOL vmlinux 0x2f1eaf21 par_io_of_config +EXPORT_SYMBOL vmlinux 0x2f21f71c simple_getattr +EXPORT_SYMBOL vmlinux 0x2f295f5b lease_modify +EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f2eca78 ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0x2f333aab imx_scu_get_handle +EXPORT_SYMBOL vmlinux 0x2f392250 icmp6_send +EXPORT_SYMBOL vmlinux 0x2f3de7fd of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x2f425458 snd_sgbuf_get_addr +EXPORT_SYMBOL vmlinux 0x2f50cbf5 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x2f5b0fdb gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x2f6957bd zstd_end_stream +EXPORT_SYMBOL vmlinux 0x2f69c290 vm_node_stat +EXPORT_SYMBOL vmlinux 0x2f6e89f3 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x2f748694 mdio_device_reset +EXPORT_SYMBOL vmlinux 0x2f755ca2 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2f7fc196 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0x2f948fb5 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x2fab5b8b nand_ecc_is_strong_enough +EXPORT_SYMBOL vmlinux 0x2fb3b636 iunique +EXPORT_SYMBOL vmlinux 0x2fbe3fec tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x2fd690b4 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fe95323 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2feeb15a __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x2ff04e69 __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x302592f4 msm_pinctrl_remove +EXPORT_SYMBOL vmlinux 0x3059071c file_ns_capable +EXPORT_SYMBOL vmlinux 0x30701042 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x3071084b vme_register_driver +EXPORT_SYMBOL vmlinux 0x30745185 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x30842cc6 tcp_check_req +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30b36b01 cpu_user +EXPORT_SYMBOL vmlinux 0x30d9a471 gen_pool_create +EXPORT_SYMBOL vmlinux 0x30e6b388 udp6_set_csum +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f72747 tcf_block_put +EXPORT_SYMBOL vmlinux 0x310ed920 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x310f3878 get_tree_bdev +EXPORT_SYMBOL vmlinux 0x311026fa register_sound_dsp +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x31431274 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x314b0407 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x314b20c8 scnprintf +EXPORT_SYMBOL vmlinux 0x31502711 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x316cd9d6 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x31719351 rproc_get_by_child +EXPORT_SYMBOL vmlinux 0x3172e6c8 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x3186cb18 eth_header_parse +EXPORT_SYMBOL vmlinux 0x31880d1f sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x31a4767f qcom_scm_hdcp_available +EXPORT_SYMBOL vmlinux 0x31ef1bd0 register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x32197e0d nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x321d7140 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0x321e25b1 register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x32394d4b qe_issue_cmd +EXPORT_SYMBOL vmlinux 0x3239dd9c elm_config +EXPORT_SYMBOL vmlinux 0x32430023 _totalhigh_pages +EXPORT_SYMBOL vmlinux 0x325b3a11 __skb_pad +EXPORT_SYMBOL vmlinux 0x3263c268 phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x3264660b ata_print_version +EXPORT_SYMBOL vmlinux 0x32787823 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x32825e71 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x32841052 udp_gro_complete +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329087d4 security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0x32909d26 register_netdevice +EXPORT_SYMBOL vmlinux 0x32b5fe46 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x32b9cd7b rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0x32ca8f01 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x32cca156 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32e59981 genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x32ee1630 cred_fscmp +EXPORT_SYMBOL vmlinux 0x32efcd66 bdevname +EXPORT_SYMBOL vmlinux 0x3314851e is_subdir +EXPORT_SYMBOL vmlinux 0x331a4711 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x334a3189 lookup_one +EXPORT_SYMBOL vmlinux 0x33680218 mmc_request_done +EXPORT_SYMBOL vmlinux 0x338a2eb6 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x33bab75e mount_subtree +EXPORT_SYMBOL vmlinux 0x33d92b84 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f7e1b9 tcp_mmap +EXPORT_SYMBOL vmlinux 0x33fb4bd4 devm_memremap +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x34042a23 ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x3412c83d eth_header +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34352eff flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x344dd027 __bforget +EXPORT_SYMBOL vmlinux 0x345791ef param_get_hexint +EXPORT_SYMBOL vmlinux 0x346237ed tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x349392ec md_update_sb +EXPORT_SYMBOL vmlinux 0x349b4277 xa_clear_mark +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a04d71 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0x34be8c10 simple_nosetlease +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34ca145c kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x34d33836 mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x34ea80e2 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f4d882 udp_disconnect +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x3542874a __phy_resume +EXPORT_SYMBOL vmlinux 0x3545bb97 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0x354aa032 file_modified +EXPORT_SYMBOL vmlinux 0x35601f84 devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0x3560e651 kmemdup_nul +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x356f4f40 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3578c0da devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x357a1095 nand_ecc_sw_bch_correct +EXPORT_SYMBOL vmlinux 0x3582ccb2 fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x358ed506 devm_release_resource +EXPORT_SYMBOL vmlinux 0x359e5025 netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35bb510c dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x35c195ba kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x35c49f19 dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0x35c792ff pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x35cc71b8 mmc_retune_release +EXPORT_SYMBOL vmlinux 0x35dec863 of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0x35e01693 rw_verify_area +EXPORT_SYMBOL vmlinux 0x35e6e057 task_work_add +EXPORT_SYMBOL vmlinux 0x35ea78f5 atomic_io_modify_relaxed +EXPORT_SYMBOL vmlinux 0x35f2e388 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x36883e8d kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x3698b3e2 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x36ac8bd8 vme_bus_num +EXPORT_SYMBOL vmlinux 0x36af5e35 bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x36d63b9c eth_gro_receive +EXPORT_SYMBOL vmlinux 0x36d69557 ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x36eca1de __break_lease +EXPORT_SYMBOL vmlinux 0x36f08a24 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x37346fb8 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x377498e4 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x3774dd3a load_nls +EXPORT_SYMBOL vmlinux 0x37774cf8 kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0x3778a55e sk_stop_timer +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37a8ace7 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x37af3649 __scm_send +EXPORT_SYMBOL vmlinux 0x37b022f9 sg_split +EXPORT_SYMBOL vmlinux 0x37b46020 fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37df763c sock_create +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37f6735b tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x381731b4 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x38180745 pci_write_config_word +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3842b3a6 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x386d9ce9 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x38727b7f noop_llseek +EXPORT_SYMBOL vmlinux 0x3886478b inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x389b3017 rawnand_sw_hamming_init +EXPORT_SYMBOL vmlinux 0x389ecf9e __bswapdi2 +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38ac4ced tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x38c01d37 reuseport_alloc +EXPORT_SYMBOL vmlinux 0x38c18357 devm_of_iomap +EXPORT_SYMBOL vmlinux 0x38da1613 send_sig +EXPORT_SYMBOL vmlinux 0x38de402b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x390a7bcb file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0x3927bda1 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393fb9cd fget_raw +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x3951ae5c flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x39842d0f seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x398afd36 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x3992bc63 __xa_set_mark +EXPORT_SYMBOL vmlinux 0x39938d94 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39b8ac0d proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x39bb870c __vcalloc +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39c88fd5 flush_rcu_work +EXPORT_SYMBOL vmlinux 0x39c97e7a mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x39cdf695 inet_add_offload +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a18da85 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a386941 fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x3a4bd78a phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a5e82ec flow_rule_alloc +EXPORT_SYMBOL vmlinux 0x3a61ae9b unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x3a84fed3 utf8_casefold +EXPORT_SYMBOL vmlinux 0x3a908c9f tso_start +EXPORT_SYMBOL vmlinux 0x3aa18273 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x3aa8bebe xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ad6fd8e krait_get_l2_indirect_reg +EXPORT_SYMBOL vmlinux 0x3ae0f0b1 config_item_get +EXPORT_SYMBOL vmlinux 0x3ae4910f neigh_destroy +EXPORT_SYMBOL vmlinux 0x3aea2fee elm_decode_bch_error_page +EXPORT_SYMBOL vmlinux 0x3af6c4b9 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x3b0652bd call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x3b069109 find_inode_rcu +EXPORT_SYMBOL vmlinux 0x3b26853a seq_lseek +EXPORT_SYMBOL vmlinux 0x3b299067 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x3b34499f dev_disable_lro +EXPORT_SYMBOL vmlinux 0x3b3afadc tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x3b40879d check_zeroed_user +EXPORT_SYMBOL vmlinux 0x3b5ca7f7 dm_put_device +EXPORT_SYMBOL vmlinux 0x3b5cf9b0 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b707ad5 imx_sc_rm_get_resource_owner +EXPORT_SYMBOL vmlinux 0x3b78f3ba netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x3b79993f tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x3b7b7cb4 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x3b8250ae input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x3b86923c vmap +EXPORT_SYMBOL vmlinux 0x3b87dd85 invalidate_disk +EXPORT_SYMBOL vmlinux 0x3ba3b702 pmem_sector_size +EXPORT_SYMBOL vmlinux 0x3bac1fc9 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x3bb02d13 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3be39688 of_device_is_available +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3bf55c4d devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x3c08e3df inetdev_by_index +EXPORT_SYMBOL vmlinux 0x3c0b5353 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c23c6ea kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x3c3215c4 qe_immr +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c4437b5 serio_close +EXPORT_SYMBOL vmlinux 0x3c5c509d nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0x3c60315c ioremap_cache +EXPORT_SYMBOL vmlinux 0x3c63a16c dev_get_mac_address +EXPORT_SYMBOL vmlinux 0x3c726c1d thread_group_exited +EXPORT_SYMBOL vmlinux 0x3c81bfc8 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x3c8c818b input_setup_polling +EXPORT_SYMBOL vmlinux 0x3c8f6ef0 __xa_insert +EXPORT_SYMBOL vmlinux 0x3c8f6f80 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x3ca5b276 dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0x3ca8d02a jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x3cbd3da2 rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0x3cbece34 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x3cbed38a snd_card_register +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce7cc1a netlink_set_err +EXPORT_SYMBOL vmlinux 0x3cfaf53c kernel_getpeername +EXPORT_SYMBOL vmlinux 0x3d25699c netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x3d25f66b misc_register +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d404ceb __vmalloc_array +EXPORT_SYMBOL vmlinux 0x3d733681 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0x3d793297 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x3d99003f fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0x3da31341 ether_setup +EXPORT_SYMBOL vmlinux 0x3da68397 genphy_suspend +EXPORT_SYMBOL vmlinux 0x3db5aa7f generic_mii_ioctl +EXPORT_SYMBOL vmlinux 0x3dc217c2 generic_file_fsync +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 0x3de08975 dquot_transfer +EXPORT_SYMBOL vmlinux 0x3def1b32 get_user_pages_remote +EXPORT_SYMBOL vmlinux 0x3df494f3 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x3dfb2fb6 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3dffa4f9 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x3e03fbea security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e3c32c4 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x3e3d6c12 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x3e419420 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x3e49fbbb xfrm_register_km +EXPORT_SYMBOL vmlinux 0x3e4a66fd pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x3e715a32 mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x3e76e833 arp_tbl +EXPORT_SYMBOL vmlinux 0x3e82f3e9 get_random_bytes +EXPORT_SYMBOL vmlinux 0x3ea1b6e4 __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x3ea20931 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0x3ea90089 rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0x3eab59b9 should_remove_suid +EXPORT_SYMBOL vmlinux 0x3eb0cf7e __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x3ec1710f setup_arg_pages +EXPORT_SYMBOL vmlinux 0x3ec30060 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x3ec80fa0 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x3ed104a5 xa_set_mark +EXPORT_SYMBOL vmlinux 0x3ede01ac param_set_int +EXPORT_SYMBOL vmlinux 0x3edf986a md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x3ee8c95c jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f03e104 d_add +EXPORT_SYMBOL vmlinux 0x3f0d07d0 reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0x3f1e10a0 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x3f316efe cros_ec_get_host_event +EXPORT_SYMBOL vmlinux 0x3f40329a snd_timer_new +EXPORT_SYMBOL vmlinux 0x3f437111 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x3f4431ff ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3f44d216 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f45f465 tegra_ivc_reset +EXPORT_SYMBOL vmlinux 0x3f4af46f gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x3f62d048 dma_fence_init +EXPORT_SYMBOL vmlinux 0x3f6c9b8c pci_fixup_device +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3f994979 dquot_initialize +EXPORT_SYMBOL vmlinux 0x3fb9797c forget_cached_acl +EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set +EXPORT_SYMBOL vmlinux 0x3fc1ae53 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x3fcfbdd7 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fe3e3d3 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x3fe7ec68 phy_resume +EXPORT_SYMBOL vmlinux 0x3fea538c hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x40013ba8 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x4004f258 tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0x400ea092 dst_dev_put +EXPORT_SYMBOL vmlinux 0x400f042c dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x400f791f rpmh_write_async +EXPORT_SYMBOL vmlinux 0x4027830c snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x403a93e7 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x4047e9b2 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x4073177d t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x4077f87d netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x40843c55 get_cached_acl +EXPORT_SYMBOL vmlinux 0x408c74b1 snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL vmlinux 0x4091bdfe phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409b8bb5 netdev_printk +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40abb8a8 vm_insert_page +EXPORT_SYMBOL vmlinux 0x40b51c05 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40cb65b5 block_commit_write +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 0x41097ee6 unregister_console +EXPORT_SYMBOL vmlinux 0x4115a842 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x411e0544 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x41242a5a blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x4127bb48 dentry_open +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x41331548 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414975dd __genradix_prealloc +EXPORT_SYMBOL vmlinux 0x4149ca77 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x416c7705 kobject_set_name +EXPORT_SYMBOL vmlinux 0x416fc6cf mpage_writepage +EXPORT_SYMBOL vmlinux 0x41725e5b simple_dir_operations +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 0x418b11cb km_policy_notify +EXPORT_SYMBOL vmlinux 0x418dbfb1 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x419a6ded vfs_fsync +EXPORT_SYMBOL vmlinux 0x41a467a1 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x41a47f70 drop_nlink +EXPORT_SYMBOL vmlinux 0x41a76203 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x41bb84fc dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x41c829ba fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41ecbce8 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x4207e034 folio_wait_bit +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x420b24a4 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x421b0b0c xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x421d4dcf krealloc +EXPORT_SYMBOL vmlinux 0x421e39c2 page_pool_destroy +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x4233d885 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x423c36f6 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d1d0e map_destroy +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x4251b390 con_is_visible +EXPORT_SYMBOL vmlinux 0x4253aa7e down_write +EXPORT_SYMBOL vmlinux 0x42604384 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x42741eb5 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x4277e42a cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x4297675b fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x429a1171 dump_emit +EXPORT_SYMBOL vmlinux 0x429dd8aa scsi_remove_host +EXPORT_SYMBOL vmlinux 0x42cabd07 pci_get_device +EXPORT_SYMBOL vmlinux 0x42ccd2ca mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x42d8642c pci_irq_vector +EXPORT_SYMBOL vmlinux 0x42ea3d11 vfio_dma_rw +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x42f45c09 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x42fad61a devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x4300d6aa _dev_err +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x430356b4 rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x431fa15b mmc_erase +EXPORT_SYMBOL vmlinux 0x4336fcca ucs2_as_utf8 +EXPORT_SYMBOL vmlinux 0x43393792 of_translate_address +EXPORT_SYMBOL vmlinux 0x434a3a43 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4365f888 neigh_lookup +EXPORT_SYMBOL vmlinux 0x4368b981 udp_seq_stop +EXPORT_SYMBOL vmlinux 0x4372468b ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x43756460 put_disk +EXPORT_SYMBOL vmlinux 0x437a0c22 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x438a1f61 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0x439ade70 user_revoke +EXPORT_SYMBOL vmlinux 0x43ca815e __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43e57231 commit_creds +EXPORT_SYMBOL vmlinux 0x43ec13c1 icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x4403bbd0 imx_sc_misc_set_control +EXPORT_SYMBOL vmlinux 0x44070f1c unregister_md_personality +EXPORT_SYMBOL vmlinux 0x44110145 path_is_mountpoint +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x4428c4fa file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x443173da dev_trans_start +EXPORT_SYMBOL vmlinux 0x443240ef param_get_invbool +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443bd058 cqhci_resume +EXPORT_SYMBOL vmlinux 0x4445c8a6 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x444cc8ed tcp_md5_needed +EXPORT_SYMBOL vmlinux 0x4461c5d6 scsi_print_result +EXPORT_SYMBOL vmlinux 0x4461eb55 gic_nonsecure_priorities +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44845152 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x44987ea4 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x449dc2dd dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44b1fc4b dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x44bba857 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x44c9dc6c percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44e66ed2 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x44e76879 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44fab301 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x44ff6480 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x45006cee default_red +EXPORT_SYMBOL vmlinux 0x450d9a35 cmd_db_read_slave_id +EXPORT_SYMBOL vmlinux 0x4519cc23 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x453acf26 cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4545c4e6 arp_send +EXPORT_SYMBOL vmlinux 0x454ed9df shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x45506951 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x4558ed92 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x4568a7ed dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458c27bd start_tty +EXPORT_SYMBOL vmlinux 0x459204e2 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x45b09450 dma_supported +EXPORT_SYMBOL vmlinux 0x45bd19de nla_strscpy +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c77a68 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0x45f35edc __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x45fdee7f dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x46139eae mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x46244c03 ns_capable +EXPORT_SYMBOL vmlinux 0x4627a981 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x46320e6b input_unregister_device +EXPORT_SYMBOL vmlinux 0x4632fc60 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x463e31b2 vfs_get_link +EXPORT_SYMBOL vmlinux 0x465e24ff ucs2_utf8size +EXPORT_SYMBOL vmlinux 0x4665f387 skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0x46669d36 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0x468c6c56 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x46bbe52e mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46f48d48 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x4701b895 kernel_write +EXPORT_SYMBOL vmlinux 0x4703364d netlink_ack +EXPORT_SYMBOL vmlinux 0x47065c73 cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x470dab03 register_framebuffer +EXPORT_SYMBOL vmlinux 0x47281a4a fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x4735f290 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x47372b24 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x473d225c snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x474685cc qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x4756260d ida_destroy +EXPORT_SYMBOL vmlinux 0x4757f392 rproc_detach +EXPORT_SYMBOL vmlinux 0x475de3cc mdiobus_register_device +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x477d0898 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x478202cb mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x479137ca imx_scu_irq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x4791e402 netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x4793513f bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47cb92b8 devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x47d52efe ihold +EXPORT_SYMBOL vmlinux 0x47d92c03 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0x47e466e3 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47f3e9b7 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x47f6b396 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47faf661 flush_signals +EXPORT_SYMBOL vmlinux 0x48074c22 dquot_disable +EXPORT_SYMBOL vmlinux 0x48198fe3 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x48256891 dst_release_immediate +EXPORT_SYMBOL vmlinux 0x4845aa0c dma_unmap_resource +EXPORT_SYMBOL vmlinux 0x4848cfb1 phy_mipi_dphy_get_default_config +EXPORT_SYMBOL vmlinux 0x48494c4d backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0x484a6395 con_is_bound +EXPORT_SYMBOL vmlinux 0x484f6edf ktime_get_coarse_real_ts64 +EXPORT_SYMBOL vmlinux 0x4854651f folio_mapping +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485b37eb invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x48661eae register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0x4871d75d clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x4874d38d inc_nlink +EXPORT_SYMBOL vmlinux 0x4886b229 tegra_ivc_write_get_next_frame +EXPORT_SYMBOL vmlinux 0x488f865f uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x4898d3d1 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48aeb5c1 serio_reconnect +EXPORT_SYMBOL vmlinux 0x48b8de3e sync_filesystem +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48ca673b kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48d8693b phy_device_remove +EXPORT_SYMBOL vmlinux 0x48eaafe3 genphy_read_status +EXPORT_SYMBOL vmlinux 0x49037cbc processor +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4905448f nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x490f1937 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x491d2253 pci_assign_resource +EXPORT_SYMBOL vmlinux 0x4936f886 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0x493ca3ef request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x494bc053 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x49871971 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x49894d72 request_key_rcu +EXPORT_SYMBOL vmlinux 0x498af3a0 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0x49933f4c input_set_timestamp +EXPORT_SYMBOL vmlinux 0x49970de8 finish_wait +EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x49abae98 init_special_inode +EXPORT_SYMBOL vmlinux 0x49c29b4e phy_read_mmd +EXPORT_SYMBOL vmlinux 0x49c7829c lock_rename +EXPORT_SYMBOL vmlinux 0x49c92266 dev_uc_del +EXPORT_SYMBOL vmlinux 0x49cc47b0 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x49d61380 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x49d676a5 md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x49f26466 kstrndup +EXPORT_SYMBOL vmlinux 0x4a08c255 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x4a1530a5 nand_ecc_init_ctx +EXPORT_SYMBOL vmlinux 0x4a249489 __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a6c5997 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL vmlinux 0x4a8d935a dcb_getapp +EXPORT_SYMBOL vmlinux 0x4a93576a ucc_fast_free +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4aa71de8 igrab +EXPORT_SYMBOL vmlinux 0x4ab4a228 devm_ioremap +EXPORT_SYMBOL vmlinux 0x4aba844e nobh_write_end +EXPORT_SYMBOL vmlinux 0x4ac207b7 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x4ade86b5 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0x4aec1e89 fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4b2e420f netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0x4b45b501 flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x4b5a84ab tcp_prot +EXPORT_SYMBOL vmlinux 0x4b5f365c tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b7feaa6 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x4b86959c jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x4b8c0f97 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x4b991a35 blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x4ba734a0 device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x4bb4a871 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x4bc5b5ee dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x4be1a40f phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bf992a0 tty_check_change +EXPORT_SYMBOL vmlinux 0x4bfc64b7 __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0x4bfdcefa __memset32 +EXPORT_SYMBOL vmlinux 0x4c021ece ptp_clock_register +EXPORT_SYMBOL vmlinux 0x4c1bf132 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x4c1cca3b cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c316cd1 add_watch_to_object +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c93da06 generic_setlease +EXPORT_SYMBOL vmlinux 0x4c9ae8ae md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x4cb550da mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4cc2854d tegra114_clock_assert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x4cc96df2 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x4ccb02db vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x4cd3a0db flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x4cdc9e75 dcache_readdir +EXPORT_SYMBOL vmlinux 0x4ce12f1c __ip_options_compile +EXPORT_SYMBOL vmlinux 0x4ce6b5bb tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4d019406 sock_pfree +EXPORT_SYMBOL vmlinux 0x4d04b91e blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x4d079a44 folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d19fb05 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x4d1b857f unlock_rename +EXPORT_SYMBOL vmlinux 0x4d28215a tty_port_destroy +EXPORT_SYMBOL vmlinux 0x4d380f89 page_get_link +EXPORT_SYMBOL vmlinux 0x4d399f4b cros_ec_prepare_tx +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d514485 xa_store +EXPORT_SYMBOL vmlinux 0x4d68f022 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0x4d8a5965 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x4d9033bb zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4dbaaf37 devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x4dce3905 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x4dce47d8 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x4dd81f44 mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4def0d85 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4e05bdec mempool_init_node +EXPORT_SYMBOL vmlinux 0x4e25a35a pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x4e2e74c1 qcom_scm_io_readl +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e43613d register_sound_special +EXPORT_SYMBOL vmlinux 0x4e4745ed scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x4e60f09c locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e8ab5cd vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x4ea3dc0b serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x4ea8a6a8 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4eaecc9e netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x4ec6342c __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x4ec80115 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x4ee98ebd tcp_have_smc +EXPORT_SYMBOL vmlinux 0x4efcf45c vme_register_error_handler +EXPORT_SYMBOL vmlinux 0x4efe19ac blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x4f011492 mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x4f04e149 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4f09dc82 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x4f0c6702 seq_printf +EXPORT_SYMBOL vmlinux 0x4f0d8f1b phy_loopback +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f25512c __skb_checksum +EXPORT_SYMBOL vmlinux 0x4f2cd5f1 of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0x4f318957 __netif_rx +EXPORT_SYMBOL vmlinux 0x4f4efb08 rproc_boot +EXPORT_SYMBOL vmlinux 0x4f5b3098 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x4f611e3d netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f886280 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fa57ae4 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x4fcd5178 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x4fcf6f05 __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x4fdcbfcd xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x4fe421cc ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x4fef3d7b tegra_ivc_init +EXPORT_SYMBOL vmlinux 0x4fef3ef4 completion_done +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x500e79cb blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0x5027bad0 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x50283cac devm_kvasprintf +EXPORT_SYMBOL vmlinux 0x50288a40 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x50293b20 register_sound_mixer +EXPORT_SYMBOL vmlinux 0x502b6647 mempool_create_node +EXPORT_SYMBOL vmlinux 0x503bd137 snd_interval_ranges +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506b737f rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x507de6a6 rproc_add +EXPORT_SYMBOL vmlinux 0x507ed805 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x5092e96a blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x50931a80 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50b5da23 put_fs_context +EXPORT_SYMBOL vmlinux 0x50b5ecdb nf_setsockopt +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d71bcf gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x50e9b28f begin_new_exec +EXPORT_SYMBOL vmlinux 0x50f85302 __arm_smccc_hvc +EXPORT_SYMBOL vmlinux 0x50f93e9d block_dirty_folio +EXPORT_SYMBOL vmlinux 0x50fd6103 dma_fence_signal +EXPORT_SYMBOL vmlinux 0x51043d53 dump_align +EXPORT_SYMBOL vmlinux 0x512012c2 sk_capable +EXPORT_SYMBOL vmlinux 0x512e891c posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x51480110 __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x514a62ec dq_data_lock +EXPORT_SYMBOL vmlinux 0x514bb3ca tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x515028af netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x515a99d1 setattr_copy +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x516a78fb migrate_page_copy +EXPORT_SYMBOL vmlinux 0x518496e0 fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0x519c2dca ram_aops +EXPORT_SYMBOL vmlinux 0x51a910c0 arm_copy_to_user +EXPORT_SYMBOL vmlinux 0x51aa2c72 snd_component_add +EXPORT_SYMBOL vmlinux 0x51d2e78d vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51f16cdb vfio_info_cap_shift +EXPORT_SYMBOL vmlinux 0x5203d176 cmd_db_ready +EXPORT_SYMBOL vmlinux 0x52069b91 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x521246b7 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x52155584 vfs_readlink +EXPORT_SYMBOL vmlinux 0x522dc1d5 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x522fb0e4 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0x52386bdb flush_dcache_page +EXPORT_SYMBOL vmlinux 0x52426ab3 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x5242f294 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0x524b31ea param_ops_short +EXPORT_SYMBOL vmlinux 0x525aa77f inet_bind +EXPORT_SYMBOL vmlinux 0x526ab702 unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x526c3a6c jiffies +EXPORT_SYMBOL vmlinux 0x5280e30e flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5294ac79 seq_file_path +EXPORT_SYMBOL vmlinux 0x529aa02d nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x52b1163c inet_frag_find +EXPORT_SYMBOL vmlinux 0x52d23b42 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x52d31c85 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52dfed13 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52f2850a imx_sc_pm_cpu_start +EXPORT_SYMBOL vmlinux 0x53063761 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531886d0 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x5340530f proc_create_mount_point +EXPORT_SYMBOL vmlinux 0x5349b2e2 dquot_commit +EXPORT_SYMBOL vmlinux 0x534f7f8c lru_cache_add +EXPORT_SYMBOL vmlinux 0x53590c0a dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x536060af radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x5368d704 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x5381ff60 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x53918fac dma_resv_fini +EXPORT_SYMBOL vmlinux 0x53aeb013 hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x53be635f block_write_end +EXPORT_SYMBOL vmlinux 0x53dd4702 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x53ef3107 read_cache_page +EXPORT_SYMBOL vmlinux 0x53f2fa39 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x53f8ced7 page_pool_ethtool_stats_get_strings +EXPORT_SYMBOL vmlinux 0x542b2ff0 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54542f28 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x5474d294 request_firmware +EXPORT_SYMBOL vmlinux 0x549e201d of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x54a08b38 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x54a4ba2b scsi_remove_target +EXPORT_SYMBOL vmlinux 0x54a9800c param_ops_bool +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54c4babf seq_open +EXPORT_SYMBOL vmlinux 0x54de7e4d path_get +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54ec9fc5 sock_release +EXPORT_SYMBOL vmlinux 0x54fe9fdc ___pskb_trim +EXPORT_SYMBOL vmlinux 0x550174c1 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0x5505e5a3 __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x5514b698 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x5515a0fe gro_cells_receive +EXPORT_SYMBOL vmlinux 0x55174362 _dev_printk +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551f3eee inode_nohighmem +EXPORT_SYMBOL vmlinux 0x55324762 _dev_notice +EXPORT_SYMBOL vmlinux 0x553382a3 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x553ad00b jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x553ee51b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x554482ca serio_open +EXPORT_SYMBOL vmlinux 0x5545a639 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0x5547f04e md_check_recovery +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x556051aa n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x5562e403 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x557d09bc __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x558fa734 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x559a0b46 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x559c6435 super_setup_bdi +EXPORT_SYMBOL vmlinux 0x559e0393 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x55ba48c1 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x55c460fe skb_pull +EXPORT_SYMBOL vmlinux 0x55ce38ed netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x55d4c23b mntget +EXPORT_SYMBOL vmlinux 0x55d8b59e mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x55da5cb0 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55e8dbf4 vme_new_dma_list +EXPORT_SYMBOL vmlinux 0x55eb869a _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x5602c52a ip_defrag +EXPORT_SYMBOL vmlinux 0x5608c6df phy_read_paged +EXPORT_SYMBOL vmlinux 0x560fd07b phy_device_register +EXPORT_SYMBOL vmlinux 0x561a21bf of_match_device +EXPORT_SYMBOL vmlinux 0x561c2d3d is_bad_inode +EXPORT_SYMBOL vmlinux 0x56200414 dput +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563952a3 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x5648d379 param_get_ullong +EXPORT_SYMBOL vmlinux 0x56546b11 tty_do_resize +EXPORT_SYMBOL vmlinux 0x565671a6 input_free_device +EXPORT_SYMBOL vmlinux 0x565f82e1 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x5678821e pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x568b83b1 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0x568c6ad6 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x56a97bd2 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x56a9c7c3 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x56b6115b phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x56c2105f unregister_qdisc +EXPORT_SYMBOL vmlinux 0x56c72948 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56ccf5a5 blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x56df326b snd_dma_buffer_mmap +EXPORT_SYMBOL vmlinux 0x56e1c273 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x5716c885 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x571f3ede fb_find_mode +EXPORT_SYMBOL vmlinux 0x5726d108 tty_name +EXPORT_SYMBOL vmlinux 0x572aaacb netif_carrier_off +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x57537046 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57637eb5 clk_get +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576990e5 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x577d9170 rio_query_mport +EXPORT_SYMBOL vmlinux 0x577dc9ca nd_device_unregister +EXPORT_SYMBOL vmlinux 0x5785eab9 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x578b5e97 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x57b7a3d1 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x57c03fb3 dev_addr_mod +EXPORT_SYMBOL vmlinux 0x57c90659 noop_dirty_folio +EXPORT_SYMBOL vmlinux 0x57c95047 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0x57ceedb1 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x57dd49ec mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x57e5170c qcom_scm_iommu_secure_ptbl_size +EXPORT_SYMBOL vmlinux 0x57ec0354 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x57f0bf44 sock_no_connect +EXPORT_SYMBOL vmlinux 0x57f38cdc qe_get_firmware_info +EXPORT_SYMBOL vmlinux 0x58023273 pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x5809e150 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x580aadfb get_tz_trend +EXPORT_SYMBOL vmlinux 0x58188efd skb_queue_head +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581cde4e up +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x582e0617 consume_skb +EXPORT_SYMBOL vmlinux 0x5837bdc7 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x583ce735 param_get_uint +EXPORT_SYMBOL vmlinux 0x58454818 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x5848bd49 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x584c7c64 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x586048e0 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x5863133c eth_mac_addr +EXPORT_SYMBOL vmlinux 0x586a50ce netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x58730a63 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587b892e qe_get_num_of_risc +EXPORT_SYMBOL vmlinux 0x58aa592b phy_sfp_probe +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b65449 dev_activate +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58b79ec6 readahead_expand +EXPORT_SYMBOL vmlinux 0x58c7e299 proc_set_size +EXPORT_SYMBOL vmlinux 0x58cac1a0 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x58d8d2b7 input_flush_device +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58f0a4ba inode_add_bytes +EXPORT_SYMBOL vmlinux 0x58f7b57a nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x58fad869 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x592b5bd9 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x59548e56 mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0x595eb949 follow_up +EXPORT_SYMBOL vmlinux 0x59693a7c tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x59738d71 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x597b6d29 twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x59871448 input_close_device +EXPORT_SYMBOL vmlinux 0x59887e10 udp_read_sock +EXPORT_SYMBOL vmlinux 0x599b4888 qe_setbrg +EXPORT_SYMBOL vmlinux 0x59a17bfc tegra114_clock_tune_cpu_trimmers_high +EXPORT_SYMBOL vmlinux 0x59a30fa4 tegra_ivc_read_advance +EXPORT_SYMBOL vmlinux 0x59a48b78 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x59a4b625 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0x59b7cab6 mempool_resize +EXPORT_SYMBOL vmlinux 0x59cf0b3b zstd_compress_bound +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59d6986d ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a0429b5 pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x5a049f30 update_region +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a14de15 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x5a1826e9 tcp_conn_request +EXPORT_SYMBOL vmlinux 0x5a1a56a4 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x5a37495c d_invalidate +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a777ee9 inode_insert5 +EXPORT_SYMBOL vmlinux 0x5a7d35f5 snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x5a8e477c ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x5a980d6f key_link +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5aa4669a param_set_ulong +EXPORT_SYMBOL vmlinux 0x5aa7faac udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x5abf8706 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x5ad9972d build_skb +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5aeb04f0 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x5af0534f vfs_symlink +EXPORT_SYMBOL vmlinux 0x5afa28bf sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x5afc247a generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x5b04be5a disable_fiq +EXPORT_SYMBOL vmlinux 0x5b062284 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0x5b27e8e6 proc_create_single_data +EXPORT_SYMBOL vmlinux 0x5b2a1987 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x5b41adb3 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x5b5280a3 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x5b54903b qcom_scm_pas_mem_setup +EXPORT_SYMBOL vmlinux 0x5b789b8e eth_gro_complete +EXPORT_SYMBOL vmlinux 0x5b7a33a6 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x5b7c0348 skb_dump +EXPORT_SYMBOL vmlinux 0x5b856012 page_readlink +EXPORT_SYMBOL vmlinux 0x5b8cc86a freeze_super +EXPORT_SYMBOL vmlinux 0x5b93d3fc nf_ct_attach +EXPORT_SYMBOL vmlinux 0x5bb7171e tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x5bbb4b11 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x5bbe49f4 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bd52eaf sock_no_mmap +EXPORT_SYMBOL vmlinux 0x5bd7d2a4 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x5bda4214 _raw_read_lock +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5c050a40 simple_map_init +EXPORT_SYMBOL vmlinux 0x5c1198ab netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0x5c1e5b1d param_get_bool +EXPORT_SYMBOL vmlinux 0x5c2132ab register_qdisc +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c547afc netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x5c5900fb mii_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x5c5ef6a8 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x5c716976 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5c7f1284 int_sqrt64 +EXPORT_SYMBOL vmlinux 0x5c927953 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5cb8ba0f tcp_close +EXPORT_SYMBOL vmlinux 0x5cbd8e69 __crc32c_le +EXPORT_SYMBOL vmlinux 0x5cc59544 page_symlink +EXPORT_SYMBOL vmlinux 0x5cd7c01c pci_resize_resource +EXPORT_SYMBOL vmlinux 0x5cd9c968 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x5cdcd053 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d01c20d sock_i_ino +EXPORT_SYMBOL vmlinux 0x5d088d61 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x5d2d6cf2 devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x5d37d658 dim_park_tired +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d6a55ed snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL vmlinux 0x5d82b444 nand_read_oob_std +EXPORT_SYMBOL vmlinux 0x5d851f6c phy_stop +EXPORT_SYMBOL vmlinux 0x5d926bed jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x5d9b8e14 lookup_one_len +EXPORT_SYMBOL vmlinux 0x5dafa004 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x5db328e9 vme_lm_request +EXPORT_SYMBOL vmlinux 0x5db786f0 rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0x5db79222 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x5dbb227d bio_uninit +EXPORT_SYMBOL vmlinux 0x5dcf6341 outer_cache +EXPORT_SYMBOL vmlinux 0x5dd211dc register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x5ddac875 abort_creds +EXPORT_SYMBOL vmlinux 0x5de4a4f8 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x5df03598 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x5e078111 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e1790b5 fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0x5e181b5a __folio_lock +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e382897 pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x5e539fb0 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x5e585844 devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x5e603189 bioset_exit +EXPORT_SYMBOL vmlinux 0x5e6ce302 generic_fadvise +EXPORT_SYMBOL vmlinux 0x5e6f91f9 tegra_powergate_remove_clamping +EXPORT_SYMBOL vmlinux 0x5e7e03a9 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e980394 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x5e9d4372 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0x5e9d9857 tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x5ea8d897 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec2b92b dup_iter +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed05bf6 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x5ed3bbd1 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5ede7cbc set_nlink +EXPORT_SYMBOL vmlinux 0x5ee652ed __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x5ef161b8 finalize_exec +EXPORT_SYMBOL vmlinux 0x5f071a11 file_open_root +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f16bf3f pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x5f280f64 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f3a8106 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x5f3c8ac6 sk_wait_data +EXPORT_SYMBOL vmlinux 0x5f5326f5 security_sk_clone +EXPORT_SYMBOL vmlinux 0x5f53290d tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f5ef1e5 pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0x5f6b889c rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f85c0a9 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x5f9dfd24 send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x5fb01358 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fd3e705 tcp_req_err +EXPORT_SYMBOL vmlinux 0x5fedd0f8 sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x5fef9106 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x5ff11cc3 pcibios_min_io +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6015563d proto_register +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602a8ae8 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x603561fc __f_setown +EXPORT_SYMBOL vmlinux 0x6056b774 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x60715515 xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x6098f7ed cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60a34d56 tcf_idr_release +EXPORT_SYMBOL vmlinux 0x60b07dd7 snd_pcm_new +EXPORT_SYMBOL vmlinux 0x60bffe6d div64_u64 +EXPORT_SYMBOL vmlinux 0x60c123f2 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x60d0ee5c nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x6105e0a5 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x610f9b29 generic_write_end +EXPORT_SYMBOL vmlinux 0x611547cc tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x61230dba scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614aabeb security_sock_graft +EXPORT_SYMBOL vmlinux 0x614e85fb pci_get_class +EXPORT_SYMBOL vmlinux 0x6156c7f4 net_dim +EXPORT_SYMBOL vmlinux 0x6157f687 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x615b74ca sock_edemux +EXPORT_SYMBOL vmlinux 0x616398bf set_user_nice +EXPORT_SYMBOL vmlinux 0x616d5fd6 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x6175d612 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x617d337b inode_needs_sync +EXPORT_SYMBOL vmlinux 0x618a0826 snd_timer_start +EXPORT_SYMBOL vmlinux 0x619808ed tcp_disconnect +EXPORT_SYMBOL vmlinux 0x61b76bb9 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c76b3a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x61daf7a8 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0x61ddb1d0 read_cache_folio +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61e5c996 block_truncate_page +EXPORT_SYMBOL vmlinux 0x61e6916f netif_schedule_queue +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61ee1387 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0x620aaaf9 snd_device_register +EXPORT_SYMBOL vmlinux 0x6210059b ip_frag_init +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622ba957 console_stop +EXPORT_SYMBOL vmlinux 0x62421164 __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x62430298 of_get_nand_ecc_user_config +EXPORT_SYMBOL vmlinux 0x625b4e4d seq_read_iter +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x6274d376 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x627f14ff seq_vprintf +EXPORT_SYMBOL vmlinux 0x6281ff8a nonseekable_open +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62880e10 dma_set_mask +EXPORT_SYMBOL vmlinux 0x62970771 dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x62b9567c override_creds +EXPORT_SYMBOL vmlinux 0x62c611e9 devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x62d3fb85 pci_request_irq +EXPORT_SYMBOL vmlinux 0x62f576d9 trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0x6310a826 qcom_scm_pas_init_image +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x632066f9 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x6330f5ba sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x63358765 unix_attach_fds +EXPORT_SYMBOL vmlinux 0x6342f99f mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x6346d0fc wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x63514abf tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x6351ac42 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0x635b0f7a simple_lookup +EXPORT_SYMBOL vmlinux 0x635d59fd xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x636ee43e tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x6385d829 input_set_keycode +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63a9f6dc rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0x63b480b6 pps_event +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63c9e8f0 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0x63cbb36d nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x63d88359 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x63da06d3 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x63e23d37 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x63e762cf cont_write_begin +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f5c94d jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x63f8fb71 vme_slave_request +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x64156135 blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x641b1aaa skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x642e1b65 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x642ffa0a tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x643e7ab1 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x645bb72e __ip_dev_find +EXPORT_SYMBOL vmlinux 0x647af474 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x647dda38 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x64833350 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0x648486cf udp_prot +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x6492ada3 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x64961e54 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x649d5b45 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64b01193 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x64b44c2c truncate_setsize +EXPORT_SYMBOL vmlinux 0x64b5ee24 vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x64e2a002 seq_dentry +EXPORT_SYMBOL vmlinux 0x64feedfb vfs_statfs +EXPORT_SYMBOL vmlinux 0x65040a54 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x650d88b1 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x650e90e6 skb_find_text +EXPORT_SYMBOL vmlinux 0x650f0a56 mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x65122310 skb_eth_push +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651eb57d snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x65251269 tcp_connect +EXPORT_SYMBOL vmlinux 0x65256246 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x65371147 flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x653714cf mii_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65413361 bio_init +EXPORT_SYMBOL vmlinux 0x65464c16 clkdev_drop +EXPORT_SYMBOL vmlinux 0x6556c50d ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x656aa79e rawnand_sw_bch_init +EXPORT_SYMBOL vmlinux 0x6578533e prepare_to_wait +EXPORT_SYMBOL vmlinux 0x657a7ff5 serio_rescan +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x65a0a2f9 devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x65aa493f insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x65d411e9 idr_get_next +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65db91cb udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e3be07 init_task +EXPORT_SYMBOL vmlinux 0x65fe4894 mmc_add_host +EXPORT_SYMBOL vmlinux 0x6635810d tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x66474aa4 neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x6656245a dev_mc_flush +EXPORT_SYMBOL vmlinux 0x66596517 netdev_emerg +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66657274 kmalloc_order +EXPORT_SYMBOL vmlinux 0x666863dc par_io_config_pin +EXPORT_SYMBOL vmlinux 0x66714ed3 fb_set_var +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x668b791b block_write_full_page +EXPORT_SYMBOL vmlinux 0x668bb9e4 __d_lookup_done +EXPORT_SYMBOL vmlinux 0x6692325c inet_protos +EXPORT_SYMBOL vmlinux 0x66aed8c5 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x66bcd162 mmc_get_card +EXPORT_SYMBOL vmlinux 0x66bec2c6 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x66e1e138 mmc_free_host +EXPORT_SYMBOL vmlinux 0x66e39a6b bdi_put +EXPORT_SYMBOL vmlinux 0x66e7e044 cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0x66e7e0e0 simple_empty +EXPORT_SYMBOL vmlinux 0x66f52b62 devfreq_update_status +EXPORT_SYMBOL vmlinux 0x66fb4819 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0x66fdde0a md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x66fdf74f tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x670a1724 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x670b92a1 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x6721ac45 free_netdev +EXPORT_SYMBOL vmlinux 0x67412d2f ucc_slow_enable +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x6764391b mr_table_dump +EXPORT_SYMBOL vmlinux 0x67652a3e ptp_clock_event +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x67710646 bio_put +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x67945443 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x679a4717 flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0x67a0b339 simple_unlink +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67b7df1b md_write_start +EXPORT_SYMBOL vmlinux 0x67ea2c91 pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0x67ea6e61 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x680d6942 kset_register +EXPORT_SYMBOL vmlinux 0x68163e03 sg_miter_next +EXPORT_SYMBOL vmlinux 0x68486ec7 mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0x68493a10 ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0x6857acd8 input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0x68604fa0 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0x686ecc0e snd_card_file_add +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68af28f7 vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0x68b8bfd9 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x69187277 iov_iter_revert +EXPORT_SYMBOL vmlinux 0x691938f8 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x6929ffc0 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x69425296 pci_read_config_word +EXPORT_SYMBOL vmlinux 0x69541ae6 trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697a54cf dma_resv_init +EXPORT_SYMBOL vmlinux 0x697cb0fb sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x69bca0f2 __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0x69d9e377 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window +EXPORT_SYMBOL vmlinux 0x69e51d08 __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x69ef7750 devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x6a03751f sgl_free_order +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a3bee65 snd_timer_open +EXPORT_SYMBOL vmlinux 0x6a3fa1e0 vme_dma_request +EXPORT_SYMBOL vmlinux 0x6a48edcf filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a602673 mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0x6a627089 kobject_put +EXPORT_SYMBOL vmlinux 0x6a631a8f scsi_done_direct +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a7c42ea cqhci_pltfm_init +EXPORT_SYMBOL vmlinux 0x6a7d34c2 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x6a8831e0 jiffies_64 +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6aa9a6c7 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x6ab02d73 skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x6ac80c29 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x6ad68405 vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x6ad7a335 prepare_creds +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6ae5895b of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0x6ae97b67 unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x6aeb128a qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6af20506 netdev_change_features +EXPORT_SYMBOL vmlinux 0x6af7b21a packing +EXPORT_SYMBOL vmlinux 0x6afa2e43 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x6b0fac60 netdev_state_change +EXPORT_SYMBOL vmlinux 0x6b19654e mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x6b2a9e79 sk_common_release +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b34331d pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x6b498efc serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b604710 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x6b68432d vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x6b71215f dev_mc_init +EXPORT_SYMBOL vmlinux 0x6b832083 sock_bind_add +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6b8e58ac __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x6b911b29 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x6b92ad32 get_tree_nodev +EXPORT_SYMBOL vmlinux 0x6b9a4525 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x6b9b1535 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x6b9e9b34 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x6ba536b9 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x6ba5da11 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x6ba88891 iptun_encaps +EXPORT_SYMBOL vmlinux 0x6bb93d9e sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x6bbd6fa6 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc896f4 wireless_send_event +EXPORT_SYMBOL vmlinux 0x6be9ebd3 _snd_ctl_add_follower +EXPORT_SYMBOL vmlinux 0x6bf31015 mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x6bf5cf07 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x6bf7d3c2 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x6bf7fd3f tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x6c06eb05 udp_seq_ops +EXPORT_SYMBOL vmlinux 0x6c14313b param_ops_string +EXPORT_SYMBOL vmlinux 0x6c157961 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x6c1668ed mdio_device_register +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c266f6b vfs_rename +EXPORT_SYMBOL vmlinux 0x6c2a1d4d kernel_accept +EXPORT_SYMBOL vmlinux 0x6c47c4cd fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x6c4f3514 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0x6c4fdc10 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x6c5968e1 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c647655 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x6c810e42 __xa_clear_mark +EXPORT_SYMBOL vmlinux 0x6c93270f __serio_register_port +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cbcf1a4 sock_efree +EXPORT_SYMBOL vmlinux 0x6ce2cffb __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x6cf0d67d qe_get_num_of_snums +EXPORT_SYMBOL vmlinux 0x6d0160a8 d_set_d_op +EXPORT_SYMBOL vmlinux 0x6d26f405 generic_update_time +EXPORT_SYMBOL vmlinux 0x6d271080 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2ac0a4 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x6d2c99b7 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x6d2d3a45 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d4699e7 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x6d625bba nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL vmlinux 0x6d64f344 dev_uc_init +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d6720cd scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d82809d skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x6d89b199 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x6d8b55a6 vfs_getattr +EXPORT_SYMBOL vmlinux 0x6d91fc27 of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x6d92a71d snd_card_free +EXPORT_SYMBOL vmlinux 0x6daff194 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x6db53eab registered_fb +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6dd8d4c8 _dev_info +EXPORT_SYMBOL vmlinux 0x6ddcdbad revert_creds +EXPORT_SYMBOL vmlinux 0x6df08ccb mark_page_accessed +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df50f97 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x6dfa6294 of_root +EXPORT_SYMBOL vmlinux 0x6e0e202b scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x6e1e27c4 skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x6e309974 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x6e39e742 get_fs_type +EXPORT_SYMBOL vmlinux 0x6e3f8e23 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x6e480485 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x6e4e7714 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x6e4f4f0c pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x6e5f5ae7 dm_register_target +EXPORT_SYMBOL vmlinux 0x6e63e338 udp_set_csum +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e89a757 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x6e9b34c2 pipe_lock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea65ae2 seq_puts +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6ecd5001 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x6ecdb792 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6ed9776b sock_set_mark +EXPORT_SYMBOL vmlinux 0x6ef75b41 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f013ecd __init_rwsem +EXPORT_SYMBOL vmlinux 0x6f1420d1 generic_fillattr +EXPORT_SYMBOL vmlinux 0x6f219fbe init_pseudo +EXPORT_SYMBOL vmlinux 0x6f24dd5b pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x6f311f2e device_add_disk +EXPORT_SYMBOL vmlinux 0x6f4ccd66 folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0x6f60e3ba sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x6f6106d4 skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0x6f77a70f of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0x6f83fba8 hex2bin +EXPORT_SYMBOL vmlinux 0x6f8f5a23 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f903fd7 pci_iomap_range +EXPORT_SYMBOL vmlinux 0x6f914f54 rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL vmlinux 0x6f9c6613 tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0x6fa008fd mdio_device_create +EXPORT_SYMBOL vmlinux 0x6fa6597c set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x6fb374e6 down_write_killable +EXPORT_SYMBOL vmlinux 0x6fb4f17c vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x6fbe4717 idr_replace +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcecdde bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0x6fd0fe7c mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x701bcf5a register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x702946da ucs2_strlen +EXPORT_SYMBOL vmlinux 0x7036f654 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x7047fe2e snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0x70526d85 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x705764d9 set_cached_acl +EXPORT_SYMBOL vmlinux 0x706b2676 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x70703993 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x707c7ba0 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x708762dc mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x7088ec54 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x7096878f tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x70b898fe filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x70c147fc __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x70e68094 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x70e7b650 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x70fc99e0 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x71079dcc set_disk_ro +EXPORT_SYMBOL vmlinux 0x710ebe73 vme_init_bridge +EXPORT_SYMBOL vmlinux 0x711b8a9b __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x712110ab proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71347b0e get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x7166a96c pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b6f0fd dev_lstats_read +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71da5210 netlink_capable +EXPORT_SYMBOL vmlinux 0x71dbf49c pci_request_regions +EXPORT_SYMBOL vmlinux 0x71ddb5a6 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0x71ebe9dd pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x71f02a06 scsi_device_get +EXPORT_SYMBOL vmlinux 0x71f7de4f proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x71fdf96c contig_page_data +EXPORT_SYMBOL vmlinux 0x72005410 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x720cd6c5 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x723c4ef8 iput +EXPORT_SYMBOL vmlinux 0x7241a7e3 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x72447594 mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0x724573f1 genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0x72656aed scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x728cead9 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x729dfd6d pci_enable_device +EXPORT_SYMBOL vmlinux 0x72a50966 ucc_fast_disable +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72c00f7e crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x72d3921e dst_discard_out +EXPORT_SYMBOL vmlinux 0x72d46686 blkdev_put +EXPORT_SYMBOL vmlinux 0x72dc3b22 inet_getname +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f34a60 kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x73029c92 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x73076315 snd_pci_quirk_lookup_id +EXPORT_SYMBOL vmlinux 0x730852e7 noop_fsync +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x7317790e lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0x731d36cb bio_add_page +EXPORT_SYMBOL vmlinux 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x7330ffee __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x73349ff0 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x73599b46 dget_parent +EXPORT_SYMBOL vmlinux 0x7370599a devm_memunmap +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x738d5de3 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x73998efa cpm_muram_free_addr +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73a0b926 __icmp_send +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73c04942 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x73c79a3e configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73e9e379 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x73f4a919 bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0x73f7e4f4 stream_open +EXPORT_SYMBOL vmlinux 0x740695fe ucc_of_parse_tdm +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x742fc1e7 fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x7463ab38 mdiobus_free +EXPORT_SYMBOL vmlinux 0x746b77f7 inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x7483e781 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x748c4a57 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x7498c160 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x74a7d175 udp_seq_start +EXPORT_SYMBOL vmlinux 0x74a91362 mmc_put_card +EXPORT_SYMBOL vmlinux 0x74b6841d clear_inode +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74d207ea fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x74d89d42 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x74e46dac imx_ssi_fiq_tx_buffer +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74e8f6ef __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x750f9ab7 tcp_filter +EXPORT_SYMBOL vmlinux 0x752d297d vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x753398f0 seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x7551472e tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x7552b447 mod_node_page_state +EXPORT_SYMBOL vmlinux 0x756003e8 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x75641302 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x7567d381 __get_fiq_regs +EXPORT_SYMBOL vmlinux 0x758b1833 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x758b496e zero_fill_bio +EXPORT_SYMBOL vmlinux 0x758d7d4c snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x75900f43 pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0x759338c6 misc_deregister +EXPORT_SYMBOL vmlinux 0x7594aa53 netif_tx_lock +EXPORT_SYMBOL vmlinux 0x75a16f45 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x75af723c i2c_smbus_write_block_data +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 0x75d95819 fc_mount +EXPORT_SYMBOL vmlinux 0x75f6056d bio_free_pages +EXPORT_SYMBOL vmlinux 0x75ff7a36 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x760363ac dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76143282 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x76152341 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7633dfb5 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x7643658e input_unregister_handle +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x76484bfa sk_stream_error +EXPORT_SYMBOL vmlinux 0x764b74b6 mount_bdev +EXPORT_SYMBOL vmlinux 0x7666cf1f nla_put +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76a58911 snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x76b2f1ab seq_release_private +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d0dead tegra_dfll_resume +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d85e33 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x76da1054 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x76e8b587 pci_release_region +EXPORT_SYMBOL vmlinux 0x76eb5f54 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x76fad00d starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource +EXPORT_SYMBOL vmlinux 0x7735af42 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0x774f1691 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x776b9c32 netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0x777675c3 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x777e0ad2 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x77943df6 __d_drop +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c33f7f __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0x77dce056 nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0x77e5d489 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77f6f183 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x780e0413 mount_single +EXPORT_SYMBOL vmlinux 0x7814cccf bpf_link_put +EXPORT_SYMBOL vmlinux 0x78163d58 km_new_mapping +EXPORT_SYMBOL vmlinux 0x78227ee7 param_ops_int +EXPORT_SYMBOL vmlinux 0x78331174 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x786cce20 vfs_iter_write +EXPORT_SYMBOL vmlinux 0x786da5a3 phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x787495c8 simple_rmdir +EXPORT_SYMBOL vmlinux 0x7877090f touch_atime +EXPORT_SYMBOL vmlinux 0x78779c0b set_fiq_handler +EXPORT_SYMBOL vmlinux 0x787b684d blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788abcc0 del_gendisk +EXPORT_SYMBOL vmlinux 0x788cb480 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x789000e7 rawnand_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x789f6f8d scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78a251d9 config_group_init +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78d03213 param_set_copystring +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e802af reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x7909109f mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0x79172c79 kill_pgrp +EXPORT_SYMBOL vmlinux 0x7918e10a devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0x791b2497 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x79276baa eth_header_cache +EXPORT_SYMBOL vmlinux 0x7929f471 __skb_ext_del +EXPORT_SYMBOL vmlinux 0x793930fc mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x79459b4d dec_node_page_state +EXPORT_SYMBOL vmlinux 0x794765d1 mempool_free +EXPORT_SYMBOL vmlinux 0x7955da96 posix_test_lock +EXPORT_SYMBOL vmlinux 0x79723522 input_register_handler +EXPORT_SYMBOL vmlinux 0x797b4389 mmc_can_erase +EXPORT_SYMBOL vmlinux 0x7983d86d fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0x798cf156 inode_set_flags +EXPORT_SYMBOL vmlinux 0x79b538aa i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x79b9144f md_write_inc +EXPORT_SYMBOL vmlinux 0x79ba9b85 vga_get +EXPORT_SYMBOL vmlinux 0x79bfa858 cros_ec_check_result +EXPORT_SYMBOL vmlinux 0x79dc58da sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x79e619b9 ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0x79f0d150 skb_vlan_push +EXPORT_SYMBOL vmlinux 0x79fa1deb imx_ssi_fiq_rx_buffer +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a1770c9 sock_no_bind +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a1e3be5 elv_rb_find +EXPORT_SYMBOL vmlinux 0x7a20bf00 devm_clk_get +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a3e8a42 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x7a44c000 bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a5cf40c nf_hook_slow +EXPORT_SYMBOL vmlinux 0x7a65c6a6 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x7a70560c kmem_cache_create +EXPORT_SYMBOL vmlinux 0x7a8fac4a jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7a968137 ucc_slow_restart_tx +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7aa67ce9 snd_timer_notify +EXPORT_SYMBOL vmlinux 0x7aa72941 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x7ab7236c tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7abc20e8 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL vmlinux 0x7ac0f78a vm_mmap +EXPORT_SYMBOL vmlinux 0x7ac50f18 security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad50006 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7aded2f7 down_write_trylock +EXPORT_SYMBOL vmlinux 0x7ae5d317 qe_get_snum +EXPORT_SYMBOL vmlinux 0x7af0d7b1 _dev_warn +EXPORT_SYMBOL vmlinux 0x7af64c29 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x7afb3dab fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x7afc50ef __neigh_create +EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL vmlinux 0x7b068c4f devfreq_update_target +EXPORT_SYMBOL vmlinux 0x7b283ce3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x7b2fb85d __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x7b3337bf phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0x7b3ca96c xfrm_state_free +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b86b110 __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x7b8ed312 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x7b92a8a8 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x7ba5a3b4 tegra_powergate_power_off +EXPORT_SYMBOL vmlinux 0x7bb3fb3d unregister_nls +EXPORT_SYMBOL vmlinux 0x7bc0155e ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x7bd52e90 pci_dev_get +EXPORT_SYMBOL vmlinux 0x7bd76657 mdio_find_bus +EXPORT_SYMBOL vmlinux 0x7bdbe667 register_shrinker +EXPORT_SYMBOL vmlinux 0x7bf9b44d inc_node_state +EXPORT_SYMBOL vmlinux 0x7c044ec8 phy_attach +EXPORT_SYMBOL vmlinux 0x7c0e9641 bpf_map_get +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c243ba2 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5921a1 __alloc_pages +EXPORT_SYMBOL vmlinux 0x7c597f97 vme_bus_type +EXPORT_SYMBOL vmlinux 0x7c5ac0a8 d_splice_alias +EXPORT_SYMBOL vmlinux 0x7c6ae9a7 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x7c75e98d tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x7c7b63f4 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x7c8cea9e key_create_or_update +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7ca0dfef snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x7ca81f01 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x7cb55e5b flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce28187 ac97_bus_type +EXPORT_SYMBOL vmlinux 0x7cedf1c9 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x7cf35220 vme_master_free +EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x7d00113a tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d22f6a6 gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0x7d2ef2b0 down_read_interruptible +EXPORT_SYMBOL vmlinux 0x7d2f2fb0 pin_user_pages +EXPORT_SYMBOL vmlinux 0x7d389455 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x7d3c7b9f netif_skb_features +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d4d2fa2 copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x7d533ab6 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x7d557cc8 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x7d5fd00e mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x7d7f3039 fsync_bdev +EXPORT_SYMBOL vmlinux 0x7d8ce431 snd_device_new +EXPORT_SYMBOL vmlinux 0x7da8e12b __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7db7052a ip6_xmit +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dd6727c snd_sgbuf_get_chunk_size +EXPORT_SYMBOL vmlinux 0x7dd73943 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfebd4c snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x7e0737e4 dev_mc_del +EXPORT_SYMBOL vmlinux 0x7e0c90f7 cpu_tlb +EXPORT_SYMBOL vmlinux 0x7e0ce0c3 up_write +EXPORT_SYMBOL vmlinux 0x7e1ef51d sock_no_linger +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e4e01e8 rfkill_alloc +EXPORT_SYMBOL vmlinux 0x7e6d4e34 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x7e7e120d skb_eth_pop +EXPORT_SYMBOL vmlinux 0x7e834bbc fb_set_suspend +EXPORT_SYMBOL vmlinux 0x7e876a00 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x7e96f179 dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x7e986abe try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x7ec3ad2c jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x7ec7f1a7 kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ee7aede textsearch_destroy +EXPORT_SYMBOL vmlinux 0x7ef719d5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2bd903 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f794569 mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7f8f0e69 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0x7fa28827 generic_file_open +EXPORT_SYMBOL vmlinux 0x7fce778e tegra_ivc_total_queue_size +EXPORT_SYMBOL vmlinux 0x7fde2edb vme_master_read +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fffffff I_BDEV +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x7fffffff LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x7fffffff PageMovable +EXPORT_SYMBOL vmlinux 0x7fffffff __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x7fffffff __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x7fffffff __SetPageMovable +EXPORT_SYMBOL vmlinux 0x7fffffff ___ratelimit +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_lasr +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0x7fffffff __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0x7fffffff __arm_smccc_smc +EXPORT_SYMBOL vmlinux 0x7fffffff __ashrdi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __bio_advance +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_clear +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_or +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x7fffffff __bitmap_xor +EXPORT_SYMBOL vmlinux 0x7fffffff __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x7fffffff __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x7fffffff __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x7fffffff __block_write_begin +EXPORT_SYMBOL vmlinux 0x7fffffff __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x7fffffff __bread_gfp +EXPORT_SYMBOL vmlinux 0x7fffffff __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x7fffffff __brelse +EXPORT_SYMBOL vmlinux 0x7fffffff __bswapsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __cap_empty_set +EXPORT_SYMBOL vmlinux 0x7fffffff __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __check_object_size +EXPORT_SYMBOL vmlinux 0x7fffffff __check_sticky +EXPORT_SYMBOL vmlinux 0x7fffffff __clzsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x7fffffff __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x7fffffff __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x7fffffff __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __ctzsi2 +EXPORT_SYMBOL vmlinux 0x7fffffff __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x7fffffff __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7fffffff __devm_release_region +EXPORT_SYMBOL vmlinux 0x7fffffff __devm_request_region +EXPORT_SYMBOL vmlinux 0x7fffffff __do_once_done +EXPORT_SYMBOL vmlinux 0x7fffffff __do_once_slow_done +EXPORT_SYMBOL vmlinux 0x7fffffff __do_once_slow_start +EXPORT_SYMBOL vmlinux 0x7fffffff __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x7fffffff __dquot_free_space +EXPORT_SYMBOL vmlinux 0x7fffffff __dquot_transfer +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x7fffffff __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x7fffffff __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x7fffffff __fdget +EXPORT_SYMBOL vmlinux 0x7fffffff __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x7fffffff __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x7fffffff __find_get_block +EXPORT_SYMBOL vmlinux 0x7fffffff __flush_workqueue +EXPORT_SYMBOL vmlinux 0x7fffffff __folio_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __fput_sync +EXPORT_SYMBOL vmlinux 0x7fffffff __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x7fffffff __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0x7fffffff __genradix_ptr +EXPORT_SYMBOL vmlinux 0x7fffffff __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0x7fffffff __get_user_2 +EXPORT_SYMBOL vmlinux 0x7fffffff __get_user_8 +EXPORT_SYMBOL vmlinux 0x7fffffff __gnu_mcount_nc +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_init +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x7fffffff __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x7fffffff __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x7fffffff __invalidate_device +EXPORT_SYMBOL vmlinux 0x7fffffff __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x7fffffff __ip_select_ident +EXPORT_SYMBOL vmlinux 0x7fffffff __kfence_pool +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_free +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_in +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_max_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x7fffffff __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0x7fffffff __kmap_local_page_prot +EXPORT_SYMBOL vmlinux 0x7fffffff __lock_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff __lshrdi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x7fffffff __mdiobus_read +EXPORT_SYMBOL vmlinux 0x7fffffff __memset64 +EXPORT_SYMBOL vmlinux 0x7fffffff __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x7fffffff __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x7fffffff __module_get +EXPORT_SYMBOL vmlinux 0x7fffffff __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0x7fffffff __muldi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __mutex_init +EXPORT_SYMBOL vmlinux 0x7fffffff __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x7fffffff __nd_driver_register +EXPORT_SYMBOL vmlinux 0x7fffffff __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x7fffffff __next_node_in +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x7fffffff __nlmsg_put +EXPORT_SYMBOL vmlinux 0x7fffffff __num_online_cpus +EXPORT_SYMBOL vmlinux 0x7fffffff __pagevec_release +EXPORT_SYMBOL vmlinux 0x7fffffff __par_io_config_pin +EXPORT_SYMBOL vmlinux 0x7fffffff __pci_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x7fffffff __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x7fffffff __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x7fffffff __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x7fffffff __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x7fffffff __posix_acl_create +EXPORT_SYMBOL vmlinux 0x7fffffff __post_watch_notification +EXPORT_SYMBOL vmlinux 0x7fffffff __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0x7fffffff __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0x7fffffff __ps2_command +EXPORT_SYMBOL vmlinux 0x7fffffff __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x7fffffff __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x7fffffff __put_cred +EXPORT_SYMBOL vmlinux 0x7fffffff __put_page +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_1 +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_2 +EXPORT_SYMBOL vmlinux 0x7fffffff __put_user_4 +EXPORT_SYMBOL vmlinux 0x7fffffff __pv_phys_pfn_offset +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsb +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsl +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_readsw +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesb +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesl +EXPORT_SYMBOL vmlinux 0x7fffffff __raw_writesw +EXPORT_SYMBOL vmlinux 0x7fffffff __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x7fffffff __readwrite_bug +EXPORT_SYMBOL vmlinux 0x7fffffff __register_binfmt +EXPORT_SYMBOL vmlinux 0x7fffffff __register_nls +EXPORT_SYMBOL vmlinux 0x7fffffff __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x7fffffff __request_module +EXPORT_SYMBOL vmlinux 0x7fffffff __request_region +EXPORT_SYMBOL vmlinux 0x7fffffff __scm_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_execute +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x7fffffff __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x7fffffff __seq_open_private +EXPORT_SYMBOL vmlinux 0x7fffffff __serio_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x7fffffff __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0x7fffffff __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x7fffffff __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_dst_check +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x7fffffff __sock_create +EXPORT_SYMBOL vmlinux 0x7fffffff __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fffffff __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x7fffffff __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7fffffff __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x7fffffff __sw_hweight8 +EXPORT_SYMBOL vmlinux 0x7fffffff __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x7fffffff __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_module_get +EXPORT_SYMBOL vmlinux 0x7fffffff __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x7fffffff __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0x7fffffff __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0x7fffffff __udivsi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __umodsi3 +EXPORT_SYMBOL vmlinux 0x7fffffff __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x7fffffff __vmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff __wait_on_bit +EXPORT_SYMBOL vmlinux 0x7fffffff __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7fffffff __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0x7fffffff __write_overflow_field +EXPORT_SYMBOL vmlinux 0x7fffffff __xa_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff __xa_erase +EXPORT_SYMBOL vmlinux 0x7fffffff __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x7fffffff __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x7fffffff __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7fffffff _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _bcd2bin +EXPORT_SYMBOL vmlinux 0x7fffffff _bin2bcd +EXPORT_SYMBOL vmlinux 0x7fffffff _copy_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff _copy_to_iter +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_alert +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_crit +EXPORT_SYMBOL vmlinux 0x7fffffff _dev_emerg +EXPORT_SYMBOL vmlinux 0x7fffffff _find_first_and_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0x7fffffff _find_last_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _find_next_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _kstrtol +EXPORT_SYMBOL vmlinux 0x7fffffff _local_bh_enable +EXPORT_SYMBOL vmlinux 0x7fffffff _memset_io +EXPORT_SYMBOL vmlinux 0x7fffffff _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0x7fffffff _printk +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x7fffffff _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff _test_and_change_bit +EXPORT_SYMBOL vmlinux 0x7fffffff _totalram_pages +EXPORT_SYMBOL vmlinux 0x7fffffff abort +EXPORT_SYMBOL vmlinux 0x7fffffff add_device_randomness +EXPORT_SYMBOL vmlinux 0x7fffffff add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0x7fffffff add_to_pipe +EXPORT_SYMBOL vmlinux 0x7fffffff add_wait_queue +EXPORT_SYMBOL vmlinux 0x7fffffff add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff adjust_resource +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_fddidev +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x7fffffff alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x7fffffff allocate_resource +EXPORT_SYMBOL vmlinux 0x7fffffff always_delete_dentry +EXPORT_SYMBOL vmlinux 0x7fffffff amba_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff amba_device_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff amba_driver_register +EXPORT_SYMBOL vmlinux 0x7fffffff amba_release_regions +EXPORT_SYMBOL vmlinux 0x7fffffff amba_request_regions +EXPORT_SYMBOL vmlinux 0x7fffffff argv_free +EXPORT_SYMBOL vmlinux 0x7fffffff arm_clear_user +EXPORT_SYMBOL vmlinux 0x7fffffff arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0x7fffffff arm_copy_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff arm_delay_ops +EXPORT_SYMBOL vmlinux 0x7fffffff arm_dma_zone_size +EXPORT_SYMBOL vmlinux 0x7fffffff arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0x7fffffff arm_heavy_mb +EXPORT_SYMBOL vmlinux 0x7fffffff arp_create +EXPORT_SYMBOL vmlinux 0x7fffffff arp_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff atomic_io_modify +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_end +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_format +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_subject_context +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_task_context +EXPORT_SYMBOL vmlinux 0x7fffffff audit_log_task_info +EXPORT_SYMBOL vmlinux 0x7fffffff autoremove_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff avenrun +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_force_update +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x7fffffff bcmp +EXPORT_SYMBOL vmlinux 0x7fffffff bdi_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff bdi_register +EXPORT_SYMBOL vmlinux 0x7fffffff bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x7fffffff bdi_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7fffffff bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7fffffff bio_chain +EXPORT_SYMBOL vmlinux 0x7fffffff bio_copy_data +EXPORT_SYMBOL vmlinux 0x7fffffff bio_init_clone +EXPORT_SYMBOL vmlinux 0x7fffffff bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x7fffffff bio_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff bio_reset +EXPORT_SYMBOL vmlinux 0x7fffffff bio_split +EXPORT_SYMBOL vmlinux 0x7fffffff bioset_init +EXPORT_SYMBOL vmlinux 0x7fffffff bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x7fffffff bit_waitqueue +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_bitremap +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_free +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_parse +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_remap +EXPORT_SYMBOL vmlinux 0x7fffffff bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff blake2s_compress +EXPORT_SYMBOL vmlinux 0x7fffffff blake2s_final +EXPORT_SYMBOL vmlinux 0x7fffffff blk_check_plugged +EXPORT_SYMBOL vmlinux 0x7fffffff blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0x7fffffff blk_finish_plug +EXPORT_SYMBOL vmlinux 0x7fffffff blk_get_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x7fffffff blk_integrity_register +EXPORT_SYMBOL vmlinux 0x7fffffff blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0x7fffffff blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x7fffffff blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x7fffffff blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x7fffffff blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_split +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x7fffffff blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x7fffffff blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x7fffffff blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0x7fffffff blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x7fffffff blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x7fffffff blk_start_plug +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0x7fffffff blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x7fffffff block_read_full_folio +EXPORT_SYMBOL vmlinux 0x7fffffff bmap +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x7fffffff bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff bsearch +EXPORT_SYMBOL vmlinux 0x7fffffff buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x7fffffff build_skb_around +EXPORT_SYMBOL vmlinux 0x7fffffff cacheid +EXPORT_SYMBOL vmlinux 0x7fffffff call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff call_fib_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x7fffffff call_usermodehelper +EXPORT_SYMBOL vmlinux 0x7fffffff can_do_mlock +EXPORT_SYMBOL vmlinux 0x7fffffff can_nice +EXPORT_SYMBOL vmlinux 0x7fffffff cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x7fffffff capable +EXPORT_SYMBOL vmlinux 0x7fffffff capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_add +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_del +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_device_add +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_device_del +EXPORT_SYMBOL vmlinux 0x7fffffff cdev_init +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x7fffffff cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x7fffffff cfb_fillrect +EXPORT_SYMBOL vmlinux 0x7fffffff cfb_imageblit +EXPORT_SYMBOL vmlinux 0x7fffffff clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0x7fffffff clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7fffffff clk_add_alias +EXPORT_SYMBOL vmlinux 0x7fffffff clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0x7fffffff clk_get_sys +EXPORT_SYMBOL vmlinux 0x7fffffff clk_register_clkdev +EXPORT_SYMBOL vmlinux 0x7fffffff clkdev_add +EXPORT_SYMBOL vmlinux 0x7fffffff clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x7fffffff clocksource_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff close_fd +EXPORT_SYMBOL vmlinux 0x7fffffff close_fd_get_file +EXPORT_SYMBOL vmlinux 0x7fffffff cmd_db_read_aux_data +EXPORT_SYMBOL vmlinux 0x7fffffff color_table +EXPORT_SYMBOL vmlinux 0x7fffffff complete +EXPORT_SYMBOL vmlinux 0x7fffffff complete_all +EXPORT_SYMBOL vmlinux 0x7fffffff complete_request_key +EXPORT_SYMBOL vmlinux 0x7fffffff component_match_add_typed +EXPORT_SYMBOL vmlinux 0x7fffffff config_group_find_item +EXPORT_SYMBOL vmlinux 0x7fffffff config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x7fffffff config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x7fffffff config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x7fffffff config_item_put +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_depend_item +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_register_group +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x7fffffff configfs_undepend_item +EXPORT_SYMBOL vmlinux 0x7fffffff console_blank_hook +EXPORT_SYMBOL vmlinux 0x7fffffff console_blanked +EXPORT_SYMBOL vmlinux 0x7fffffff console_conditional_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff console_lock +EXPORT_SYMBOL vmlinux 0x7fffffff console_start +EXPORT_SYMBOL vmlinux 0x7fffffff console_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0x7fffffff copy_from_user_toio +EXPORT_SYMBOL vmlinux 0x7fffffff copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x7fffffff copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_addr +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x7fffffff cpu_all_bits +EXPORT_SYMBOL vmlinux 0x7fffffff cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x7fffffff cpufreq_get +EXPORT_SYMBOL vmlinux 0x7fffffff cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x7fffffff cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_any_but +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_local_spread +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_next +EXPORT_SYMBOL vmlinux 0x7fffffff cpumask_next_and +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_deactivate +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_init +EXPORT_SYMBOL vmlinux 0x7fffffff cqhci_irq +EXPORT_SYMBOL vmlinux 0x7fffffff crc16 +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_be +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_le +EXPORT_SYMBOL vmlinux 0x7fffffff crc32_le_shift +EXPORT_SYMBOL vmlinux 0x7fffffff crc8 +EXPORT_SYMBOL vmlinux 0x7fffffff crc8_populate_lsb +EXPORT_SYMBOL vmlinux 0x7fffffff crc8_populate_msb +EXPORT_SYMBOL vmlinux 0x7fffffff crc_ccitt +EXPORT_SYMBOL vmlinux 0x7fffffff crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x7fffffff crc_t10dif +EXPORT_SYMBOL vmlinux 0x7fffffff crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_cmd_xfer +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_cmd_xfer_status +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_get_next_event +EXPORT_SYMBOL vmlinux 0x7fffffff cros_ec_query_all +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x7fffffff crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x7fffffff csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff csum_partial +EXPORT_SYMBOL vmlinux 0x7fffffff csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x7fffffff current_in_userns +EXPORT_SYMBOL vmlinux 0x7fffffff current_work +EXPORT_SYMBOL vmlinux 0x7fffffff d_add_ci +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc_anon +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc_name +EXPORT_SYMBOL vmlinux 0x7fffffff d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x7fffffff d_delete +EXPORT_SYMBOL vmlinux 0x7fffffff d_exact_alias +EXPORT_SYMBOL vmlinux 0x7fffffff d_find_alias +EXPORT_SYMBOL vmlinux 0x7fffffff d_genocide +EXPORT_SYMBOL vmlinux 0x7fffffff d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff d_instantiate +EXPORT_SYMBOL vmlinux 0x7fffffff d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x7fffffff d_instantiate_new +EXPORT_SYMBOL vmlinux 0x7fffffff d_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x7fffffff d_move +EXPORT_SYMBOL vmlinux 0x7fffffff d_obtain_alias +EXPORT_SYMBOL vmlinux 0x7fffffff d_obtain_root +EXPORT_SYMBOL vmlinux 0x7fffffff d_prune_aliases +EXPORT_SYMBOL vmlinux 0x7fffffff d_set_fallthru +EXPORT_SYMBOL vmlinux 0x7fffffff da903x_query_status +EXPORT_SYMBOL vmlinux 0x7fffffff datagram_poll +EXPORT_SYMBOL vmlinux 0x7fffffff dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x7fffffff dcb_setapp +EXPORT_SYMBOL vmlinux 0x7fffffff dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x7fffffff dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x7fffffff deactivate_super +EXPORT_SYMBOL vmlinux 0x7fffffff dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff default_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7fffffff default_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff del_timer_sync +EXPORT_SYMBOL vmlinux 0x7fffffff delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x7fffffff dev_add_offload +EXPORT_SYMBOL vmlinux 0x7fffffff dev_addr_add +EXPORT_SYMBOL vmlinux 0x7fffffff dev_addr_del +EXPORT_SYMBOL vmlinux 0x7fffffff dev_change_flags +EXPORT_SYMBOL vmlinux 0x7fffffff dev_close +EXPORT_SYMBOL vmlinux 0x7fffffff dev_deactivate +EXPORT_SYMBOL vmlinux 0x7fffffff dev_driver_string +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_flags +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_iflink +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x7fffffff dev_get_stats +EXPORT_SYMBOL vmlinux 0x7fffffff dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x7fffffff dev_load +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7fffffff dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x7fffffff dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x7fffffff dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0x7fffffff dev_printk_emit +EXPORT_SYMBOL vmlinux 0x7fffffff dev_remove_pack +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_alias +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_mtu +EXPORT_SYMBOL vmlinux 0x7fffffff dev_set_threaded +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_flush +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_sync +EXPORT_SYMBOL vmlinux 0x7fffffff dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x7fffffff dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x7fffffff devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x7fffffff devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x7fffffff device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x7fffffff device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x7fffffff devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x7fffffff devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x7fffffff devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x7fffffff devm_clk_put +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_free_irq +EXPORT_SYMBOL vmlinux 0x7fffffff devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_np +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x7fffffff devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0x7fffffff devm_iounmap +EXPORT_SYMBOL vmlinux 0x7fffffff devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x7fffffff devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0x7fffffff devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x7fffffff devm_of_clk_del_provider +EXPORT_SYMBOL vmlinux 0x7fffffff devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x7fffffff devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x7fffffff devm_register_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff devm_rproc_add +EXPORT_SYMBOL vmlinux 0x7fffffff devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff dim_calc_stats +EXPORT_SYMBOL vmlinux 0x7fffffff dim_on_top +EXPORT_SYMBOL vmlinux 0x7fffffff dim_park_on_top +EXPORT_SYMBOL vmlinux 0x7fffffff dim_turn +EXPORT_SYMBOL vmlinux 0x7fffffff discard_new_inode +EXPORT_SYMBOL vmlinux 0x7fffffff disk_stack_limits +EXPORT_SYMBOL vmlinux 0x7fffffff div64_u64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff div_s64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff dm_get_device +EXPORT_SYMBOL vmlinux 0x7fffffff dm_io +EXPORT_SYMBOL vmlinux 0x7fffffff dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x7fffffff dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x7fffffff dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x7fffffff dm_read_arg_group +EXPORT_SYMBOL vmlinux 0x7fffffff dm_table_event +EXPORT_SYMBOL vmlinux 0x7fffffff dma_async_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_describe +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_match_context +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_release +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x7fffffff dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff dma_free_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0x7fffffff dma_pool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x7fffffff dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x7fffffff dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x7fffffff dma_sync_wait +EXPORT_SYMBOL vmlinux 0x7fffffff dmaengine_get +EXPORT_SYMBOL vmlinux 0x7fffffff dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_check_system +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x7fffffff dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0x7fffffff dns_query +EXPORT_SYMBOL vmlinux 0x7fffffff do_SAK +EXPORT_SYMBOL vmlinux 0x7fffffff do_blank_screen +EXPORT_SYMBOL vmlinux 0x7fffffff do_clone_file_range +EXPORT_SYMBOL vmlinux 0x7fffffff do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0x7fffffff do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x7fffffff done_path_create +EXPORT_SYMBOL vmlinux 0x7fffffff dotdot_name +EXPORT_SYMBOL vmlinux 0x7fffffff down +EXPORT_SYMBOL vmlinux 0x7fffffff down_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff down_read +EXPORT_SYMBOL vmlinux 0x7fffffff down_read_killable +EXPORT_SYMBOL vmlinux 0x7fffffff down_read_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff down_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff down_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff downgrade_write +EXPORT_SYMBOL vmlinux 0x7fffffff dql_init +EXPORT_SYMBOL vmlinux 0x7fffffff dql_reset +EXPORT_SYMBOL vmlinux 0x7fffffff dqput +EXPORT_SYMBOL vmlinux 0x7fffffff dqstats +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_acquire +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_file_open +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_get_state +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_operations +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_quota_off +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_release +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_resume +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_scan_active +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x7fffffff dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x7fffffff drm_firmware_drivers_only +EXPORT_SYMBOL vmlinux 0x7fffffff drop_super +EXPORT_SYMBOL vmlinux 0x7fffffff dst_default_metrics +EXPORT_SYMBOL vmlinux 0x7fffffff dst_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff dst_release +EXPORT_SYMBOL vmlinux 0x7fffffff dump_skip_to +EXPORT_SYMBOL vmlinux 0x7fffffff ecc_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff ecc_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x7fffffff edac_mc_find +EXPORT_SYMBOL vmlinux 0x7fffffff efi_tpm_final_log_size +EXPORT_SYMBOL vmlinux 0x7fffffff elevator_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff elf_set_personality +EXPORT_SYMBOL vmlinux 0x7fffffff elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x7fffffff elv_rb_add +EXPORT_SYMBOL vmlinux 0x7fffffff elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x7fffffff elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x7fffffff enable_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff enable_irq +EXPORT_SYMBOL vmlinux 0x7fffffff end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x7fffffff end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7fffffff errseq_sample +EXPORT_SYMBOL vmlinux 0x7fffffff eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x7fffffff eth_get_headlen +EXPORT_SYMBOL vmlinux 0x7fffffff eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x7fffffff eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x7fffffff eth_validate_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x7fffffff ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x7fffffff f_setown +EXPORT_SYMBOL vmlinux 0x7fffffff fasync_helper +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_readable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fault_in_writeable +EXPORT_SYMBOL vmlinux 0x7fffffff fb_add_videomode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_class +EXPORT_SYMBOL vmlinux 0x7fffffff fb_default_cmap +EXPORT_SYMBOL vmlinux 0x7fffffff fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_best_display +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_best_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0x7fffffff fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x7fffffff fb_get_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_get_options +EXPORT_SYMBOL vmlinux 0x7fffffff fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0x7fffffff fb_match_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0x7fffffff fb_pan_display +EXPORT_SYMBOL vmlinux 0x7fffffff fb_register_client +EXPORT_SYMBOL vmlinux 0x7fffffff fb_show_logo +EXPORT_SYMBOL vmlinux 0x7fffffff fb_unregister_client +EXPORT_SYMBOL vmlinux 0x7fffffff fb_validate_mode +EXPORT_SYMBOL vmlinux 0x7fffffff fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x7fffffff fget +EXPORT_SYMBOL vmlinux 0x7fffffff fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x7fffffff fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x7fffffff fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff fiemap_prep +EXPORT_SYMBOL vmlinux 0x7fffffff fifo_set_limit +EXPORT_SYMBOL vmlinux 0x7fffffff file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7fffffff file_remove_privs +EXPORT_SYMBOL vmlinux 0x7fffffff file_update_time +EXPORT_SYMBOL vmlinux 0x7fffffff fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x7fffffff fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fault +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_flush +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_map_pages +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_release_folio +EXPORT_SYMBOL vmlinux 0x7fffffff filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x7fffffff filp_open +EXPORT_SYMBOL vmlinux 0x7fffffff find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x7fffffff find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0x7fffffff find_inode_nowait +EXPORT_SYMBOL vmlinux 0x7fffffff find_next_clump8 +EXPORT_SYMBOL vmlinux 0x7fffffff finish_no_open +EXPORT_SYMBOL vmlinux 0x7fffffff finish_open +EXPORT_SYMBOL vmlinux 0x7fffffff finish_swait +EXPORT_SYMBOL vmlinux 0x7fffffff fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0x7fffffff flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x7fffffff flow_keys_dissector +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_control +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x7fffffff flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x7fffffff flush_dcache_folio +EXPORT_SYMBOL vmlinux 0x7fffffff flush_delayed_work +EXPORT_SYMBOL vmlinux 0x7fffffff folio_account_redirty +EXPORT_SYMBOL vmlinux 0x7fffffff folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7fffffff folio_end_private_2 +EXPORT_SYMBOL vmlinux 0x7fffffff folio_end_writeback +EXPORT_SYMBOL vmlinux 0x7fffffff folio_mapped +EXPORT_SYMBOL vmlinux 0x7fffffff folio_mark_accessed +EXPORT_SYMBOL vmlinux 0x7fffffff folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff folio_migrate_copy +EXPORT_SYMBOL vmlinux 0x7fffffff folio_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x7fffffff folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x7fffffff folio_write_one +EXPORT_SYMBOL vmlinux 0x7fffffff follow_down +EXPORT_SYMBOL vmlinux 0x7fffffff follow_down_one +EXPORT_SYMBOL vmlinux 0x7fffffff font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x7fffffff fortify_panic +EXPORT_SYMBOL vmlinux 0x7fffffff fput +EXPORT_SYMBOL vmlinux 0x7fffffff fqdir_exit +EXPORT_SYMBOL vmlinux 0x7fffffff framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x7fffffff free_buffer_head +EXPORT_SYMBOL vmlinux 0x7fffffff free_cgroup_ns +EXPORT_SYMBOL vmlinux 0x7fffffff free_irq +EXPORT_SYMBOL vmlinux 0x7fffffff free_opal_dev +EXPORT_SYMBOL vmlinux 0x7fffffff free_task +EXPORT_SYMBOL vmlinux 0x7fffffff freezing_slow_path +EXPORT_SYMBOL vmlinux 0x7fffffff from_kgid +EXPORT_SYMBOL vmlinux 0x7fffffff from_kgid_munged +EXPORT_SYMBOL vmlinux 0x7fffffff from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x7fffffff from_kuid +EXPORT_SYMBOL vmlinux 0x7fffffff fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x7fffffff fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x7fffffff fs_lookup_param +EXPORT_SYMBOL vmlinux 0x7fffffff fs_overflowgid +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_path +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_string +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x7fffffff fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x7fffffff fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0x7fffffff full_name_hash +EXPORT_SYMBOL vmlinux 0x7fffffff fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x7fffffff fwnode_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff gen_estimator_active +EXPORT_SYMBOL vmlinux 0x7fffffff gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff gen_new_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x7fffffff gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x7fffffff gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x7fffffff generate_random_guid +EXPORT_SYMBOL vmlinux 0x7fffffff generate_random_uuid +EXPORT_SYMBOL vmlinux 0x7fffffff generic_check_addressable +EXPORT_SYMBOL vmlinux 0x7fffffff generic_delete_inode +EXPORT_SYMBOL vmlinux 0x7fffffff generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_mmap +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x7fffffff generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x7fffffff generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x7fffffff generic_key_instantiate +EXPORT_SYMBOL vmlinux 0x7fffffff generic_listxattr +EXPORT_SYMBOL vmlinux 0x7fffffff generic_permission +EXPORT_SYMBOL vmlinux 0x7fffffff generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x7fffffff generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x7fffffff generic_read_dir +EXPORT_SYMBOL vmlinux 0x7fffffff generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x7fffffff generic_ro_fops +EXPORT_SYMBOL vmlinux 0x7fffffff generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x7fffffff generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x7fffffff generic_write_checks +EXPORT_SYMBOL vmlinux 0x7fffffff generic_write_checks_count +EXPORT_SYMBOL vmlinux 0x7fffffff generic_writepages +EXPORT_SYMBOL vmlinux 0x7fffffff genl_notify +EXPORT_SYMBOL vmlinux 0x7fffffff genl_unregister_family +EXPORT_SYMBOL vmlinux 0x7fffffff genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x7fffffff genlmsg_put +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_loopback +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_setup_forced +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_soft_reset +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_update_link +EXPORT_SYMBOL vmlinux 0x7fffffff genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x7fffffff get_acl +EXPORT_SYMBOL vmlinux 0x7fffffff get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x7fffffff get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff get_default_font +EXPORT_SYMBOL vmlinux 0x7fffffff get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x7fffffff get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x7fffffff get_next_ino +EXPORT_SYMBOL vmlinux 0x7fffffff get_option +EXPORT_SYMBOL vmlinux 0x7fffffff get_options +EXPORT_SYMBOL vmlinux 0x7fffffff get_phy_device +EXPORT_SYMBOL vmlinux 0x7fffffff get_random_u32 +EXPORT_SYMBOL vmlinux 0x7fffffff get_random_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff get_task_cred +EXPORT_SYMBOL vmlinux 0x7fffffff get_thermal_instance +EXPORT_SYMBOL vmlinux 0x7fffffff get_tree_keyed +EXPORT_SYMBOL vmlinux 0x7fffffff get_tree_single +EXPORT_SYMBOL vmlinux 0x7fffffff get_unmapped_area +EXPORT_SYMBOL vmlinux 0x7fffffff get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0x7fffffff get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff get_vm_area +EXPORT_SYMBOL vmlinux 0x7fffffff get_zeroed_page +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x7fffffff gf128mul_lle +EXPORT_SYMBOL vmlinux 0x7fffffff gic_pmr_sync +EXPORT_SYMBOL vmlinux 0x7fffffff global_cursor_default +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x7fffffff gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x7fffffff gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x7fffffff gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x7fffffff gpmc_cs_request +EXPORT_SYMBOL vmlinux 0x7fffffff grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x7fffffff gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff gro_cells_init +EXPORT_SYMBOL vmlinux 0x7fffffff gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0x7fffffff groups_sort +EXPORT_SYMBOL vmlinux 0x7fffffff guid_null +EXPORT_SYMBOL vmlinux 0x7fffffff guid_parse +EXPORT_SYMBOL vmlinux 0x7fffffff handle_edge_irq +EXPORT_SYMBOL vmlinux 0x7fffffff has_capability +EXPORT_SYMBOL vmlinux 0x7fffffff hchacha_block_generic +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x7fffffff hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x7fffffff hex_asc_upper +EXPORT_SYMBOL vmlinux 0x7fffffff hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff hex_to_bin +EXPORT_SYMBOL vmlinux 0x7fffffff high_memory +EXPORT_SYMBOL vmlinux 0x7fffffff hmm_range_fault +EXPORT_SYMBOL vmlinux 0x7fffffff hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x7fffffff hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_clients_command +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_transfer +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x7fffffff i2c_verify_client +EXPORT_SYMBOL vmlinux 0x7fffffff icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x7fffffff icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x7fffffff icst_hz +EXPORT_SYMBOL vmlinux 0x7fffffff icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0x7fffffff ida_alloc_range +EXPORT_SYMBOL vmlinux 0x7fffffff ida_free +EXPORT_SYMBOL vmlinux 0x7fffffff idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x7fffffff idr_get_next_ul +EXPORT_SYMBOL vmlinux 0x7fffffff idr_preload +EXPORT_SYMBOL vmlinux 0x7fffffff iget5_locked +EXPORT_SYMBOL vmlinux 0x7fffffff iget_failed +EXPORT_SYMBOL vmlinux 0x7fffffff ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x7fffffff imx_sc_misc_get_control +EXPORT_SYMBOL vmlinux 0x7fffffff imx_sc_rm_is_resource_owned +EXPORT_SYMBOL vmlinux 0x7fffffff imx_scu_enable_general_irq_channel +EXPORT_SYMBOL vmlinux 0x7fffffff imx_scu_irq_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff imx_ssi_fiq_end +EXPORT_SYMBOL vmlinux 0x7fffffff imx_ssi_fiq_start +EXPORT_SYMBOL vmlinux 0x7fffffff in4_pton +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0x7fffffff in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0x7fffffff in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff in_group_p +EXPORT_SYMBOL vmlinux 0x7fffffff inc_node_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_bind +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_del_offload +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_getname +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_protos +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_release +EXPORT_SYMBOL vmlinux 0x7fffffff inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x7fffffff inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_is_any +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_type +EXPORT_SYMBOL vmlinux 0x7fffffff inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_accept +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x7fffffff inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7fffffff inet_current_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff inet_del_offload +EXPORT_SYMBOL vmlinux 0x7fffffff inet_del_protocol +EXPORT_SYMBOL vmlinux 0x7fffffff inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x7fffffff inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_kill +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff inet_frags_init +EXPORT_SYMBOL vmlinux 0x7fffffff inet_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff inet_listen +EXPORT_SYMBOL vmlinux 0x7fffffff inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x7fffffff inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x7fffffff inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x7fffffff inet_put_port +EXPORT_SYMBOL vmlinux 0x7fffffff inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x7fffffff inet_register_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff inet_release +EXPORT_SYMBOL vmlinux 0x7fffffff inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x7fffffff inet_select_addr +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sendmsg +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sendpage +EXPORT_SYMBOL vmlinux 0x7fffffff inet_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x7fffffff inet_sk_set_state +EXPORT_SYMBOL vmlinux 0x7fffffff inet_stream_connect +EXPORT_SYMBOL vmlinux 0x7fffffff inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7fffffff init_cdrom_command +EXPORT_SYMBOL vmlinux 0x7fffffff init_net +EXPORT_SYMBOL vmlinux 0x7fffffff init_on_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff init_on_free +EXPORT_SYMBOL vmlinux 0x7fffffff init_timer_key +EXPORT_SYMBOL vmlinux 0x7fffffff init_wait_entry +EXPORT_SYMBOL vmlinux 0x7fffffff inode_dio_wait +EXPORT_SYMBOL vmlinux 0x7fffffff inode_get_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_always +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_once +EXPORT_SYMBOL vmlinux 0x7fffffff inode_init_owner +EXPORT_SYMBOL vmlinux 0x7fffffff inode_io_list_del +EXPORT_SYMBOL vmlinux 0x7fffffff inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x7fffffff inode_permission +EXPORT_SYMBOL vmlinux 0x7fffffff inode_set_bytes +EXPORT_SYMBOL vmlinux 0x7fffffff inode_to_bdi +EXPORT_SYMBOL vmlinux 0x7fffffff inode_update_time +EXPORT_SYMBOL vmlinux 0x7fffffff input_allocate_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_copy_abs +EXPORT_SYMBOL vmlinux 0x7fffffff input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0x7fffffff input_get_keycode +EXPORT_SYMBOL vmlinux 0x7fffffff input_get_new_minor +EXPORT_SYMBOL vmlinux 0x7fffffff input_get_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff input_get_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff input_grab_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x7fffffff input_match_device_id +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x7fffffff input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x7fffffff input_open_device +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_abs_params +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x7fffffff insert_inode_locked +EXPORT_SYMBOL vmlinux 0x7fffffff int_sqrt +EXPORT_SYMBOL vmlinux 0x7fffffff invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff io_schedule +EXPORT_SYMBOL vmlinux 0x7fffffff io_schedule_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x7fffffff ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x7fffffff ioport_resource +EXPORT_SYMBOL vmlinux 0x7fffffff ioport_unmap +EXPORT_SYMBOL vmlinux 0x7fffffff ioremap_page +EXPORT_SYMBOL vmlinux 0x7fffffff ioremap_wc +EXPORT_SYMBOL vmlinux 0x7fffffff iounmap +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_init +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_npages +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_pipe +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x7fffffff iov_iter_zero +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_frag_next +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff ip6_output +EXPORT_SYMBOL vmlinux 0x7fffffff ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0x7fffffff ip_check_defrag +EXPORT_SYMBOL vmlinux 0x7fffffff ip_do_fragment +EXPORT_SYMBOL vmlinux 0x7fffffff ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0x7fffffff ip_fraglist_init +EXPORT_SYMBOL vmlinux 0x7fffffff ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x7fffffff ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x7fffffff ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x7fffffff ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x7fffffff ip_output +EXPORT_SYMBOL vmlinux 0x7fffffff ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x7fffffff ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x7fffffff ipmi_dmi_get_slave_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ipmi_platform_add +EXPORT_SYMBOL vmlinux 0x7fffffff ipv4_specific +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x7fffffff irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_complete +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_enable +EXPORT_SYMBOL vmlinux 0x7fffffff irq_poll_init +EXPORT_SYMBOL vmlinux 0x7fffffff irq_set_chip +EXPORT_SYMBOL vmlinux 0x7fffffff irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0x7fffffff irq_stat +EXPORT_SYMBOL vmlinux 0x7fffffff is_console_locked +EXPORT_SYMBOL vmlinux 0x7fffffff is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0x7fffffff is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0x7fffffff isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0x7fffffff iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0x7fffffff iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x7fffffff iterate_dir +EXPORT_SYMBOL vmlinux 0x7fffffff iterate_fd +EXPORT_SYMBOL vmlinux 0x7fffffff iterate_supers_type +EXPORT_SYMBOL vmlinux 0x7fffffff iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x7fffffff iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x7fffffff iwe_stream_add_value +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0x7fffffff jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0x7fffffff jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0x7fffffff kasprintf +EXPORT_SYMBOL vmlinux 0x7fffffff kern_path +EXPORT_SYMBOL vmlinux 0x7fffffff kern_path_create +EXPORT_SYMBOL vmlinux 0x7fffffff kern_unmount +EXPORT_SYMBOL vmlinux 0x7fffffff kern_unmount_array +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_bind +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_cpustat +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_listen +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_neon_begin +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_neon_end +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_param_lock +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_read +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7fffffff kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff key_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x7fffffff key_invalidate +EXPORT_SYMBOL vmlinux 0x7fffffff key_move +EXPORT_SYMBOL vmlinux 0x7fffffff key_put +EXPORT_SYMBOL vmlinux 0x7fffffff key_revoke +EXPORT_SYMBOL vmlinux 0x7fffffff key_task_permission +EXPORT_SYMBOL vmlinux 0x7fffffff key_unlink +EXPORT_SYMBOL vmlinux 0x7fffffff key_update +EXPORT_SYMBOL vmlinux 0x7fffffff key_validate +EXPORT_SYMBOL vmlinux 0x7fffffff keyring_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff keyring_clear +EXPORT_SYMBOL vmlinux 0x7fffffff keyring_restrict +EXPORT_SYMBOL vmlinux 0x7fffffff keyring_search +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_const +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_link +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_sensitive +EXPORT_SYMBOL vmlinux 0x7fffffff kfree_skb_reason +EXPORT_SYMBOL vmlinux 0x7fffffff kill_anon_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_block_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_fasync +EXPORT_SYMBOL vmlinux 0x7fffffff kill_litter_super +EXPORT_SYMBOL vmlinux 0x7fffffff kill_pid +EXPORT_SYMBOL vmlinux 0x7fffffff km_policy_expired +EXPORT_SYMBOL vmlinux 0x7fffffff km_state_expired +EXPORT_SYMBOL vmlinux 0x7fffffff km_state_notify +EXPORT_SYMBOL vmlinux 0x7fffffff kmalloc_caches +EXPORT_SYMBOL vmlinux 0x7fffffff kmap_high +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_free +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x7fffffff kmem_cache_size +EXPORT_SYMBOL vmlinux 0x7fffffff kobject_add +EXPORT_SYMBOL vmlinux 0x7fffffff kobject_get +EXPORT_SYMBOL vmlinux 0x7fffffff krait_set_l2_indirect_reg +EXPORT_SYMBOL vmlinux 0x7fffffff kset_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff ksize +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoint +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos16 +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_bind +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_worker +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x7fffffff kthread_should_stop +EXPORT_SYMBOL vmlinux 0x7fffffff ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0x7fffffff ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x7fffffff kunmap_high +EXPORT_SYMBOL vmlinux 0x7fffffff kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x7fffffff kvmalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff kvrealloc +EXPORT_SYMBOL vmlinux 0x7fffffff lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7fffffff ledtrig_cpu +EXPORT_SYMBOL vmlinux 0x7fffffff ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x7fffffff linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x7fffffff list_sort +EXPORT_SYMBOL vmlinux 0x7fffffff ll_rw_block +EXPORT_SYMBOL vmlinux 0x7fffffff load_nls_default +EXPORT_SYMBOL vmlinux 0x7fffffff lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_get +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x7fffffff lockref_put_return +EXPORT_SYMBOL vmlinux 0x7fffffff locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x7fffffff locks_remove_posix +EXPORT_SYMBOL vmlinux 0x7fffffff logfc +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_constant +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x7fffffff loops_per_jiffy +EXPORT_SYMBOL vmlinux 0x7fffffff make_bad_inode +EXPORT_SYMBOL vmlinux 0x7fffffff make_kprojid +EXPORT_SYMBOL vmlinux 0x7fffffff make_kuid +EXPORT_SYMBOL vmlinux 0x7fffffff mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x7fffffff mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff mark_info_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff match_hex +EXPORT_SYMBOL vmlinux 0x7fffffff match_octal +EXPORT_SYMBOL vmlinux 0x7fffffff match_strdup +EXPORT_SYMBOL vmlinux 0x7fffffff match_string +EXPORT_SYMBOL vmlinux 0x7fffffff match_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff match_uint +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x7fffffff max8998_read_reg +EXPORT_SYMBOL vmlinux 0x7fffffff may_umount +EXPORT_SYMBOL vmlinux 0x7fffffff may_umount_tree +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_create +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x7fffffff mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_free +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x7fffffff md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0x7fffffff md_done_sync +EXPORT_SYMBOL vmlinux 0x7fffffff md_error +EXPORT_SYMBOL vmlinux 0x7fffffff md_finish_reshape +EXPORT_SYMBOL vmlinux 0x7fffffff md_handle_request +EXPORT_SYMBOL vmlinux 0x7fffffff md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x7fffffff md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_reload_sb +EXPORT_SYMBOL vmlinux 0x7fffffff md_unregister_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x7fffffff md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x7fffffff md_write_end +EXPORT_SYMBOL vmlinux 0x7fffffff mdio_device_remove +EXPORT_SYMBOL vmlinux 0x7fffffff mdio_driver_register +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobb_read +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobb_write +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_write +EXPORT_SYMBOL vmlinux 0x7fffffff mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0x7fffffff mem_map +EXPORT_SYMBOL vmlinux 0x7fffffff memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x7fffffff memchr +EXPORT_SYMBOL vmlinux 0x7fffffff memcpy +EXPORT_SYMBOL vmlinux 0x7fffffff memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x7fffffff memdup_user +EXPORT_SYMBOL vmlinux 0x7fffffff memdup_user_nul +EXPORT_SYMBOL vmlinux 0x7fffffff memmove +EXPORT_SYMBOL vmlinux 0x7fffffff memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_create +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_exit +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_free_pages +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_free_slab +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_init +EXPORT_SYMBOL vmlinux 0x7fffffff mempool_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff memregion_free +EXPORT_SYMBOL vmlinux 0x7fffffff memremap +EXPORT_SYMBOL vmlinux 0x7fffffff memset16 +EXPORT_SYMBOL vmlinux 0x7fffffff memunmap +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page +EXPORT_SYMBOL vmlinux 0x7fffffff migrate_page_states +EXPORT_SYMBOL vmlinux 0x7fffffff mii_check_gmii_support +EXPORT_SYMBOL vmlinux 0x7fffffff mii_check_link +EXPORT_SYMBOL vmlinux 0x7fffffff mii_check_media +EXPORT_SYMBOL vmlinux 0x7fffffff mii_ethtool_gset +EXPORT_SYMBOL vmlinux 0x7fffffff mii_ethtool_sset +EXPORT_SYMBOL vmlinux 0x7fffffff mii_link_ok +EXPORT_SYMBOL vmlinux 0x7fffffff mii_nway_restart +EXPORT_SYMBOL vmlinux 0x7fffffff minmax_running_max +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_dcs_write +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0x7fffffff mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_can_trim +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_command_done +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_detect_change +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_release_host +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_run_bkops +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_start_request +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x7fffffff mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x7fffffff mntput +EXPORT_SYMBOL vmlinux 0x7fffffff mod_timer +EXPORT_SYMBOL vmlinux 0x7fffffff mount_nodev +EXPORT_SYMBOL vmlinux 0x7fffffff movable_zone +EXPORT_SYMBOL vmlinux 0x7fffffff mpage_read_folio +EXPORT_SYMBOL vmlinux 0x7fffffff mpage_readahead +EXPORT_SYMBOL vmlinux 0x7fffffff mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x7fffffff mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x7fffffff mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x7fffffff mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0x7fffffff mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x7fffffff mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0x7fffffff mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x7fffffff msleep +EXPORT_SYMBOL vmlinux 0x7fffffff msleep_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff msm_pinctrl_dev_pm_ops +EXPORT_SYMBOL vmlinux 0x7fffffff msm_pinctrl_probe +EXPORT_SYMBOL vmlinux 0x7fffffff mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_is_locked +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x7fffffff mutex_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff mx51_revision +EXPORT_SYMBOL vmlinux 0x7fffffff mxc_set_irq_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff nand_check_erased_ecc_chunk +EXPORT_SYMBOL vmlinux 0x7fffffff nand_create_bbt +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_get_sw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_prepare_io_req +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL vmlinux 0x7fffffff nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL vmlinux 0x7fffffff nand_monolithic_read_page_raw +EXPORT_SYMBOL vmlinux 0x7fffffff nand_monolithic_write_page_raw +EXPORT_SYMBOL vmlinux 0x7fffffff nand_read_page_raw +EXPORT_SYMBOL vmlinux 0x7fffffff nand_scan_with_ids +EXPORT_SYMBOL vmlinux 0x7fffffff nand_write_oob_std +EXPORT_SYMBOL vmlinux 0x7fffffff nand_write_page_raw +EXPORT_SYMBOL vmlinux 0x7fffffff napi_build_skb +EXPORT_SYMBOL vmlinux 0x7fffffff napi_complete_done +EXPORT_SYMBOL vmlinux 0x7fffffff napi_disable +EXPORT_SYMBOL vmlinux 0x7fffffff napi_enable +EXPORT_SYMBOL vmlinux 0x7fffffff napi_gro_frags +EXPORT_SYMBOL vmlinux 0x7fffffff nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0x7fffffff nd_btt_probe +EXPORT_SYMBOL vmlinux 0x7fffffff nd_device_notify +EXPORT_SYMBOL vmlinux 0x7fffffff nd_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff nd_region_release_lane +EXPORT_SYMBOL vmlinux 0x7fffffff ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x7fffffff ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_app_ns +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_carrier_down +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_connected_output +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_for_each +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_ifdown +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_parms_release +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_seq_start +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_table_clear +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_table_init +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_update +EXPORT_SYMBOL vmlinux 0x7fffffff neigh_xmit +EXPORT_SYMBOL vmlinux 0x7fffffff net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x7fffffff net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x7fffffff net_ns_barrier +EXPORT_SYMBOL vmlinux 0x7fffffff net_ratelimit +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_alert +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_crit +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_err +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_features_change +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_info +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_update_features +EXPORT_SYMBOL vmlinux 0x7fffffff netdev_warn +EXPORT_SYMBOL vmlinux 0x7fffffff netif_device_attach +EXPORT_SYMBOL vmlinux 0x7fffffff netif_device_detach +EXPORT_SYMBOL vmlinux 0x7fffffff netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x7fffffff netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x7fffffff netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x7fffffff netif_tx_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x7fffffff netlbl_audit_start +EXPORT_SYMBOL vmlinux 0x7fffffff netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_broadcast +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_net_capable +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_unicast +EXPORT_SYMBOL vmlinux 0x7fffffff netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_print_options +EXPORT_SYMBOL vmlinux 0x7fffffff netpoll_setup +EXPORT_SYMBOL vmlinux 0x7fffffff netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x7fffffff new_inode +EXPORT_SYMBOL vmlinux 0x7fffffff next_arg +EXPORT_SYMBOL vmlinux 0x7fffffff nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x7fffffff nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x7fffffff nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0x7fffffff nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_packet +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_set +EXPORT_SYMBOL vmlinux 0x7fffffff nf_log_trace +EXPORT_SYMBOL vmlinux 0x7fffffff nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0x7fffffff nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x7fffffff nla_append +EXPORT_SYMBOL vmlinux 0x7fffffff nla_find +EXPORT_SYMBOL vmlinux 0x7fffffff nla_memcmp +EXPORT_SYMBOL vmlinux 0x7fffffff nla_memcpy +EXPORT_SYMBOL vmlinux 0x7fffffff nla_policy_len +EXPORT_SYMBOL vmlinux 0x7fffffff nla_put_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x7fffffff nla_strcmp +EXPORT_SYMBOL vmlinux 0x7fffffff nla_strdup +EXPORT_SYMBOL vmlinux 0x7fffffff nlmsg_notify +EXPORT_SYMBOL vmlinux 0x7fffffff nmi_panic +EXPORT_SYMBOL vmlinux 0x7fffffff nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x7fffffff nobh_writepage +EXPORT_SYMBOL vmlinux 0x7fffffff node_states +EXPORT_SYMBOL vmlinux 0x7fffffff noop_qdisc +EXPORT_SYMBOL vmlinux 0x7fffffff notify_change +EXPORT_SYMBOL vmlinux 0x7fffffff ns_capable_setid +EXPORT_SYMBOL vmlinux 0x7fffffff nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0x7fffffff nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0x7fffffff nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0x7fffffff nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0x7fffffff of_clk_get +EXPORT_SYMBOL vmlinux 0x7fffffff of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x7fffffff of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0x7fffffff of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7fffffff of_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_compatible_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0x7fffffff of_find_node_opts_by_path +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_mac_address +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_min_tck +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_next_child +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_next_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_get_property +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_port_by_id +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0x7fffffff of_graph_is_present +EXPORT_SYMBOL vmlinux 0x7fffffff of_io_request_and_map +EXPORT_SYMBOL vmlinux 0x7fffffff of_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff of_lpddr2_get_info +EXPORT_SYMBOL vmlinux 0x7fffffff of_lpddr3_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x7fffffff of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0x7fffffff of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x7fffffff of_mdio_find_device +EXPORT_SYMBOL vmlinux 0x7fffffff of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x7fffffff of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x7fffffff of_n_addr_cells +EXPORT_SYMBOL vmlinux 0x7fffffff of_node_get +EXPORT_SYMBOL vmlinux 0x7fffffff of_node_name_prefix +EXPORT_SYMBOL vmlinux 0x7fffffff of_parse_phandle_with_args_map +EXPORT_SYMBOL vmlinux 0x7fffffff of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_connect +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x7fffffff of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0x7fffffff of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x7fffffff of_platform_device_create +EXPORT_SYMBOL vmlinux 0x7fffffff omap_rev +EXPORT_SYMBOL vmlinux 0x7fffffff omap_type +EXPORT_SYMBOL vmlinux 0x7fffffff on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x7fffffff oops_in_progress +EXPORT_SYMBOL vmlinux 0x7fffffff open_exec +EXPORT_SYMBOL vmlinux 0x7fffffff open_with_fake_path +EXPORT_SYMBOL vmlinux 0x7fffffff out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x7fffffff overflowuid +EXPORT_SYMBOL vmlinux 0x7fffffff padata_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x7fffffff padata_do_parallel +EXPORT_SYMBOL vmlinux 0x7fffffff padata_do_serial +EXPORT_SYMBOL vmlinux 0x7fffffff padata_free +EXPORT_SYMBOL vmlinux 0x7fffffff padata_free_shell +EXPORT_SYMBOL vmlinux 0x7fffffff padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x7fffffff page_address +EXPORT_SYMBOL vmlinux 0x7fffffff page_frag_free +EXPORT_SYMBOL vmlinux 0x7fffffff page_offline_end +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_create +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_ethtool_stats_get +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_release_page +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0x7fffffff page_pool_update_nid +EXPORT_SYMBOL vmlinux 0x7fffffff page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff pagecache_get_page +EXPORT_SYMBOL vmlinux 0x7fffffff pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x7fffffff panic +EXPORT_SYMBOL vmlinux 0x7fffffff panic_notifier_list +EXPORT_SYMBOL vmlinux 0x7fffffff param_array_ops +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_byte +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_charp +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_int +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_long +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_short +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_string +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_ulong +EXPORT_SYMBOL vmlinux 0x7fffffff param_get_ushort +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_bint +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_byte +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_charp +EXPORT_SYMBOL vmlinux 0x7fffffff param_ops_hexint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_bint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_bool +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_charp +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_hexint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_invbool +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_long +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_short +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_uint +EXPORT_SYMBOL vmlinux 0x7fffffff param_set_ushort +EXPORT_SYMBOL vmlinux 0x7fffffff path_has_submounts +EXPORT_SYMBOL vmlinux 0x7fffffff path_is_under +EXPORT_SYMBOL vmlinux 0x7fffffff path_put +EXPORT_SYMBOL vmlinux 0x7fffffff pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_type +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x7fffffff pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pci_choose_state +EXPORT_SYMBOL vmlinux 0x7fffffff pci_clear_master +EXPORT_SYMBOL vmlinux 0x7fffffff pci_dev_driver +EXPORT_SYMBOL vmlinux 0x7fffffff pci_disable_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_disable_msi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_msi +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x7fffffff pci_enable_wake +EXPORT_SYMBOL vmlinux 0x7fffffff pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x7fffffff pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_capability +EXPORT_SYMBOL vmlinux 0x7fffffff pci_find_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pci_free_irq +EXPORT_SYMBOL vmlinux 0x7fffffff pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_slot +EXPORT_SYMBOL vmlinux 0x7fffffff pci_get_subsys +EXPORT_SYMBOL vmlinux 0x7fffffff pci_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0x7fffffff pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0x7fffffff pci_pci_problems +EXPORT_SYMBOL vmlinux 0x7fffffff pci_pme_active +EXPORT_SYMBOL vmlinux 0x7fffffff pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x7fffffff pci_read_config_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pci_read_vpd +EXPORT_SYMBOL vmlinux 0x7fffffff pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0x7fffffff pci_reenable_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff pci_save_state +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x7fffffff pci_scan_slot +EXPORT_SYMBOL vmlinux 0x7fffffff pci_select_bars +EXPORT_SYMBOL vmlinux 0x7fffffff pci_set_master +EXPORT_SYMBOL vmlinux 0x7fffffff pci_set_power_state +EXPORT_SYMBOL vmlinux 0x7fffffff pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x7fffffff pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x7fffffff pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pci_write_vpd +EXPORT_SYMBOL vmlinux 0x7fffffff pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x7fffffff pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_get_mps +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_set_mps +EXPORT_SYMBOL vmlinux 0x7fffffff pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_enable_device +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iomap +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iounmap +EXPORT_SYMBOL vmlinux 0x7fffffff pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x7fffffff pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x7fffffff peernet2id +EXPORT_SYMBOL vmlinux 0x7fffffff percpu_counter_add_batch +EXPORT_SYMBOL vmlinux 0x7fffffff percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x7fffffff pgprot_kernel +EXPORT_SYMBOL vmlinux 0x7fffffff pgprot_user +EXPORT_SYMBOL vmlinux 0x7fffffff phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x7fffffff phy_aneg_done +EXPORT_SYMBOL vmlinux 0x7fffffff phy_attached_info +EXPORT_SYMBOL vmlinux 0x7fffffff phy_attached_print +EXPORT_SYMBOL vmlinux 0x7fffffff phy_config_aneg +EXPORT_SYMBOL vmlinux 0x7fffffff phy_connect +EXPORT_SYMBOL vmlinux 0x7fffffff phy_detach +EXPORT_SYMBOL vmlinux 0x7fffffff phy_device_free +EXPORT_SYMBOL vmlinux 0x7fffffff phy_disconnect +EXPORT_SYMBOL vmlinux 0x7fffffff phy_do_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x7fffffff phy_driver_register +EXPORT_SYMBOL vmlinux 0x7fffffff phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff phy_error +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0x7fffffff phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x7fffffff phy_find_first +EXPORT_SYMBOL vmlinux 0x7fffffff phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x7fffffff phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x7fffffff phy_get_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_init_eee +EXPORT_SYMBOL vmlinux 0x7fffffff phy_init_hw +EXPORT_SYMBOL vmlinux 0x7fffffff phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff phy_mipi_dphy_config_validate +EXPORT_SYMBOL vmlinux 0x7fffffff phy_modify_paged +EXPORT_SYMBOL vmlinux 0x7fffffff phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x7fffffff phy_print_status +EXPORT_SYMBOL vmlinux 0x7fffffff phy_register_fixup +EXPORT_SYMBOL vmlinux 0x7fffffff phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x7fffffff phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_sfp_detach +EXPORT_SYMBOL vmlinux 0x7fffffff phy_start +EXPORT_SYMBOL vmlinux 0x7fffffff phy_start_cable_test +EXPORT_SYMBOL vmlinux 0x7fffffff phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_suspend +EXPORT_SYMBOL vmlinux 0x7fffffff phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x7fffffff phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0x7fffffff phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x7fffffff phy_validate_pause +EXPORT_SYMBOL vmlinux 0x7fffffff phy_write_paged +EXPORT_SYMBOL vmlinux 0x7fffffff pid_task +EXPORT_SYMBOL vmlinux 0x7fffffff pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x7fffffff ping_prot +EXPORT_SYMBOL vmlinux 0x7fffffff pipe_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x7fffffff pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0x7fffffff pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x7fffffff pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x7fffffff pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x7fffffff pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff poll_freewait +EXPORT_SYMBOL vmlinux 0x7fffffff poll_initwait +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_init +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x7fffffff posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7fffffff posix_lock_file +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_input +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_input_error +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_register_channel +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_unit_number +EXPORT_SYMBOL vmlinux 0x7fffffff ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x7fffffff pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x7fffffff pr_flush +EXPORT_SYMBOL vmlinux 0x7fffffff prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x7fffffff prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x7fffffff probe_irq_off +EXPORT_SYMBOL vmlinux 0x7fffffff probe_irq_on +EXPORT_SYMBOL vmlinux 0x7fffffff proc_create +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dobool +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dointvec +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff proc_dostring +EXPORT_SYMBOL vmlinux 0x7fffffff proc_douintvec +EXPORT_SYMBOL vmlinux 0x7fffffff proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x7fffffff proc_remove +EXPORT_SYMBOL vmlinux 0x7fffffff proc_set_user +EXPORT_SYMBOL vmlinux 0x7fffffff proc_symlink +EXPORT_SYMBOL vmlinux 0x7fffffff profile_pc +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_begin_command +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_command +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_drain +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_end_command +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x7fffffff ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x7fffffff psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0x7fffffff psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0x7fffffff pskb_expand_head +EXPORT_SYMBOL vmlinux 0x7fffffff pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_find_pin +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0x7fffffff ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x7fffffff put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x7fffffff put_ipc_ns +EXPORT_SYMBOL vmlinux 0x7fffffff put_pages_list +EXPORT_SYMBOL vmlinux 0x7fffffff put_watch_queue +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_assign_mem +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_cpu_power_down +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_hdcp_req +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ice_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ice_set_key +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_iommu_secure_ptbl_init +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_iommu_set_cp_pool_size +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_is_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_dcvsh +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_dcvsh_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_lmh_profile_change +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_mem_protect_video_var +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_lock +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_lock_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_ocmem_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_auth_and_reset +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_metadata_release +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_pas_supported +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_qsmmu500_wait_safe_toggle +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_restore_sec_cfg +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_restore_sec_cfg_available +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_cold_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_remote_state +EXPORT_SYMBOL vmlinux 0x7fffffff qcom_scm_set_warm_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_put_stab +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x7fffffff qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x7fffffff qe_get_brg_clk +EXPORT_SYMBOL vmlinux 0x7fffffff qe_put_snum +EXPORT_SYMBOL vmlinux 0x7fffffff qid_eq +EXPORT_SYMBOL vmlinux 0x7fffffff qid_valid +EXPORT_SYMBOL vmlinux 0x7fffffff queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0x7fffffff queue_rcu_work +EXPORT_SYMBOL vmlinux 0x7fffffff queue_work_on +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x7fffffff radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x7fffffff rational_best_approximation +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_bch_correct +EXPORT_SYMBOL vmlinux 0x7fffffff rawnand_sw_hamming_correct +EXPORT_SYMBOL vmlinux 0x7fffffff rb_first +EXPORT_SYMBOL vmlinux 0x7fffffff rb_first_postorder +EXPORT_SYMBOL vmlinux 0x7fffffff rb_insert_color +EXPORT_SYMBOL vmlinux 0x7fffffff rb_last +EXPORT_SYMBOL vmlinux 0x7fffffff rb_next +EXPORT_SYMBOL vmlinux 0x7fffffff rb_prev +EXPORT_SYMBOL vmlinux 0x7fffffff rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x7fffffff read_code +EXPORT_SYMBOL vmlinux 0x7fffffff recalc_sigpending +EXPORT_SYMBOL vmlinux 0x7fffffff reciprocal_value +EXPORT_SYMBOL vmlinux 0x7fffffff reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0x7fffffff redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7fffffff redraw_screen +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0x7fffffff refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0x7fffffff refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0x7fffffff register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_cdrom +EXPORT_SYMBOL vmlinux 0x7fffffff register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_fib_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_filesystem +EXPORT_SYMBOL vmlinux 0x7fffffff register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x7fffffff register_md_personality +EXPORT_SYMBOL vmlinux 0x7fffffff register_module_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x7fffffff register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff register_quota_format +EXPORT_SYMBOL vmlinux 0x7fffffff register_restart_handler +EXPORT_SYMBOL vmlinux 0x7fffffff register_sound_special_device +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7fffffff register_sysrq_key +EXPORT_SYMBOL vmlinux 0x7fffffff regset_get +EXPORT_SYMBOL vmlinux 0x7fffffff regset_get_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff release_and_free_resource +EXPORT_SYMBOL vmlinux 0x7fffffff release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x7fffffff release_fiq +EXPORT_SYMBOL vmlinux 0x7fffffff release_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff release_pages +EXPORT_SYMBOL vmlinux 0x7fffffff release_resource +EXPORT_SYMBOL vmlinux 0x7fffffff release_sock +EXPORT_SYMBOL vmlinux 0x7fffffff remove_arg_zero +EXPORT_SYMBOL vmlinux 0x7fffffff remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0x7fffffff remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0x7fffffff remove_proc_entry +EXPORT_SYMBOL vmlinux 0x7fffffff remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x7fffffff remove_wait_queue +EXPORT_SYMBOL vmlinux 0x7fffffff rename_lock +EXPORT_SYMBOL vmlinux 0x7fffffff request_key_tag +EXPORT_SYMBOL vmlinux 0x7fffffff request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7fffffff request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x7fffffff request_threaded_irq +EXPORT_SYMBOL vmlinux 0x7fffffff reservation_ww_class +EXPORT_SYMBOL vmlinux 0x7fffffff reset_devices +EXPORT_SYMBOL vmlinux 0x7fffffff resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x7fffffff reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_blocked +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_register +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_states +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x7fffffff rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0x7fffffff rfs_needed +EXPORT_SYMBOL vmlinux 0x7fffffff rpmh_invalidate +EXPORT_SYMBOL vmlinux 0x7fffffff rpmh_write +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_add_carveout +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_da_to_va +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_del +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_of_parse_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_put +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x7fffffff rps_needed +EXPORT_SYMBOL vmlinux 0x7fffffff rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x7fffffff rt6_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff rt_dst_clone +EXPORT_SYMBOL vmlinux 0x7fffffff rtc_add_groups +EXPORT_SYMBOL vmlinux 0x7fffffff rtc_lock +EXPORT_SYMBOL vmlinux 0x7fffffff rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_lock +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_notify +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_trylock +EXPORT_SYMBOL vmlinux 0x7fffffff rtnl_unicast +EXPORT_SYMBOL vmlinux 0x7fffffff save_stack_trace_tsk +EXPORT_SYMBOL vmlinux 0x7fffffff sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x7fffffff sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x7fffffff schedule_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff scm_detach_fds +EXPORT_SYMBOL vmlinux 0x7fffffff scmd_printk +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_add_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_block_requests +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_put +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_resume +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dma_map +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_done +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_host_get +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_host_put +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_logging_level +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_partsize +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_print_command +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_register_interface +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_remove_device +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_scan_target +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x7fffffff scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x7fffffff scsilun_to_int +EXPORT_SYMBOL vmlinux 0x7fffffff sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x7fffffff sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x7fffffff secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x7fffffff secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x7fffffff secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0x7fffffff security_binder_transaction +EXPORT_SYMBOL vmlinux 0x7fffffff security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0x7fffffff security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x7fffffff security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_copy_up +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_init_security +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x7fffffff security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x7fffffff security_ismaclabel +EXPORT_SYMBOL vmlinux 0x7fffffff security_locked_down +EXPORT_SYMBOL vmlinux 0x7fffffff security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x7fffffff security_path_mknod +EXPORT_SYMBOL vmlinux 0x7fffffff security_path_rename +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0x7fffffff security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x7fffffff security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x7fffffff security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x7fffffff security_socket_socketpair +EXPORT_SYMBOL vmlinux 0x7fffffff security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x7fffffff security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x7fffffff security_tun_dev_open +EXPORT_SYMBOL vmlinux 0x7fffffff security_unix_may_send +EXPORT_SYMBOL vmlinux 0x7fffffff security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x7fffffff security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x7fffffff send_sig_info +EXPORT_SYMBOL vmlinux 0x7fffffff seq_bprintf +EXPORT_SYMBOL vmlinux 0x7fffffff seq_escape_mem +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hex_dump +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_next +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_start +EXPORT_SYMBOL vmlinux 0x7fffffff seq_list_start_head +EXPORT_SYMBOL vmlinux 0x7fffffff seq_open_private +EXPORT_SYMBOL vmlinux 0x7fffffff seq_pad +EXPORT_SYMBOL vmlinux 0x7fffffff seq_path +EXPORT_SYMBOL vmlinux 0x7fffffff seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x7fffffff seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x7fffffff seq_read +EXPORT_SYMBOL vmlinux 0x7fffffff seq_write +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_resume_port +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0x7fffffff serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0x7fffffff serio_bus +EXPORT_SYMBOL vmlinux 0x7fffffff serio_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff set_anon_super +EXPORT_SYMBOL vmlinux 0x7fffffff set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x7fffffff set_bh_page +EXPORT_SYMBOL vmlinux 0x7fffffff set_binfmt +EXPORT_SYMBOL vmlinux 0x7fffffff set_capacity +EXPORT_SYMBOL vmlinux 0x7fffffff set_create_files_as +EXPORT_SYMBOL vmlinux 0x7fffffff set_current_groups +EXPORT_SYMBOL vmlinux 0x7fffffff set_freezable +EXPORT_SYMBOL vmlinux 0x7fffffff set_groups +EXPORT_SYMBOL vmlinux 0x7fffffff set_page_dirty +EXPORT_SYMBOL vmlinux 0x7fffffff set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x7fffffff setattr_prepare +EXPORT_SYMBOL vmlinux 0x7fffffff setup_new_exec +EXPORT_SYMBOL vmlinux 0x7fffffff sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sg_free_append_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_init_one +EXPORT_SYMBOL vmlinux 0x7fffffff sg_init_table +EXPORT_SYMBOL vmlinux 0x7fffffff sg_last +EXPORT_SYMBOL vmlinux 0x7fffffff sg_miter_skip +EXPORT_SYMBOL vmlinux 0x7fffffff sg_miter_stop +EXPORT_SYMBOL vmlinux 0x7fffffff sg_next +EXPORT_SYMBOL vmlinux 0x7fffffff sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sget_fc +EXPORT_SYMBOL vmlinux 0x7fffffff sgl_alloc_order +EXPORT_SYMBOL vmlinux 0x7fffffff sgl_free +EXPORT_SYMBOL vmlinux 0x7fffffff sha224_final +EXPORT_SYMBOL vmlinux 0x7fffffff sha224_update +EXPORT_SYMBOL vmlinux 0x7fffffff sha256 +EXPORT_SYMBOL vmlinux 0x7fffffff shmem_aops +EXPORT_SYMBOL vmlinux 0x7fffffff shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x7fffffff simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x7fffffff simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff simple_fill_super +EXPORT_SYMBOL vmlinux 0x7fffffff simple_get_link +EXPORT_SYMBOL vmlinux 0x7fffffff simple_link +EXPORT_SYMBOL vmlinux 0x7fffffff simple_open +EXPORT_SYMBOL vmlinux 0x7fffffff simple_pin_fs +EXPORT_SYMBOL vmlinux 0x7fffffff simple_release_fs +EXPORT_SYMBOL vmlinux 0x7fffffff simple_rename +EXPORT_SYMBOL vmlinux 0x7fffffff simple_setattr +EXPORT_SYMBOL vmlinux 0x7fffffff simple_strtoll +EXPORT_SYMBOL vmlinux 0x7fffffff simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x7fffffff simple_transaction_release +EXPORT_SYMBOL vmlinux 0x7fffffff simple_transaction_set +EXPORT_SYMBOL vmlinux 0x7fffffff single_open +EXPORT_SYMBOL vmlinux 0x7fffffff single_open_size +EXPORT_SYMBOL vmlinux 0x7fffffff single_release +EXPORT_SYMBOL vmlinux 0x7fffffff siphash_3u32 +EXPORT_SYMBOL vmlinux 0x7fffffff siphash_3u64 +EXPORT_SYMBOL vmlinux 0x7fffffff sk_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0x7fffffff sk_error_report +EXPORT_SYMBOL vmlinux 0x7fffffff sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0x7fffffff sk_free +EXPORT_SYMBOL vmlinux 0x7fffffff sk_mc_loop +EXPORT_SYMBOL vmlinux 0x7fffffff sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7fffffff sk_reset_timer +EXPORT_SYMBOL vmlinux 0x7fffffff sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x7fffffff sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x7fffffff skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x7fffffff skb_append +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum_help +EXPORT_SYMBOL vmlinux 0x7fffffff skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0x7fffffff skb_clone +EXPORT_SYMBOL vmlinux 0x7fffffff skb_clone_sk +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x7fffffff skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x7fffffff skb_ext_add +EXPORT_SYMBOL vmlinux 0x7fffffff skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x7fffffff skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x7fffffff skb_free_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x7fffffff skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x7fffffff skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7fffffff skb_pull_data +EXPORT_SYMBOL vmlinux 0x7fffffff skb_push +EXPORT_SYMBOL vmlinux 0x7fffffff skb_put +EXPORT_SYMBOL vmlinux 0x7fffffff skb_queue_purge +EXPORT_SYMBOL vmlinux 0x7fffffff skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x7fffffff skb_seq_read +EXPORT_SYMBOL vmlinux 0x7fffffff skb_split +EXPORT_SYMBOL vmlinux 0x7fffffff skb_store_bits +EXPORT_SYMBOL vmlinux 0x7fffffff skb_trim +EXPORT_SYMBOL vmlinux 0x7fffffff skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x7fffffff skb_tx_error +EXPORT_SYMBOL vmlinux 0x7fffffff skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x7fffffff skip_spaces +EXPORT_SYMBOL vmlinux 0x7fffffff slash_name +EXPORT_SYMBOL vmlinux 0x7fffffff slhc_compress +EXPORT_SYMBOL vmlinux 0x7fffffff slhc_uncompress +EXPORT_SYMBOL vmlinux 0x7fffffff smp_call_function +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_card_set_id +EXPORT_SYMBOL vmlinux 0x7fffffff snd_compr_malloc_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_add +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_notify_one +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x7fffffff snd_ctl_replace +EXPORT_SYMBOL vmlinux 0x7fffffff snd_device_free +EXPORT_SYMBOL vmlinux 0x7fffffff snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x7fffffff snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_get_str +EXPORT_SYMBOL vmlinux 0x7fffffff snd_info_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_interval_list +EXPORT_SYMBOL vmlinux 0x7fffffff snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_add_new_kctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_jack_report +EXPORT_SYMBOL vmlinux 0x7fffffff snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0x7fffffff snd_major +EXPORT_SYMBOL vmlinux 0x7fffffff snd_oss_info_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pci_quirk_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_limit_rates +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x7fffffff snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x7fffffff snd_power_wait +EXPORT_SYMBOL vmlinux 0x7fffffff snd_register_oss_device +EXPORT_SYMBOL vmlinux 0x7fffffff snd_seq_root +EXPORT_SYMBOL vmlinux 0x7fffffff snd_soc_alloc_ac97_component +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_close +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_continue +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_instance_free +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_pause +EXPORT_SYMBOL vmlinux 0x7fffffff snd_timer_stop +EXPORT_SYMBOL vmlinux 0x7fffffff snd_unregister_device +EXPORT_SYMBOL vmlinux 0x7fffffff snd_unregister_oss_device +EXPORT_SYMBOL vmlinux 0x7fffffff snprintf +EXPORT_SYMBOL vmlinux 0x7fffffff sock_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x7fffffff sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0x7fffffff sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0x7fffffff sock_get_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff sock_gettstamp +EXPORT_SYMBOL vmlinux 0x7fffffff sock_i_uid +EXPORT_SYMBOL vmlinux 0x7fffffff sock_kfree_s +EXPORT_SYMBOL vmlinux 0x7fffffff sock_kmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x7fffffff sock_load_diag_module +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_listen +EXPORT_SYMBOL vmlinux 0x7fffffff sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x7fffffff sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x7fffffff sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0x7fffffff sock_register +EXPORT_SYMBOL vmlinux 0x7fffffff sock_rfree +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_priority +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x7fffffff sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x7fffffff sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff sock_wake_async +EXPORT_SYMBOL vmlinux 0x7fffffff sockfd_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff softnet_data +EXPORT_SYMBOL vmlinux 0x7fffffff sort +EXPORT_SYMBOL vmlinux 0x7fffffff sort_r +EXPORT_SYMBOL vmlinux 0x7fffffff sound_class +EXPORT_SYMBOL vmlinux 0x7fffffff splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x7fffffff sscanf +EXPORT_SYMBOL vmlinux 0x7fffffff stmp_reset_block +EXPORT_SYMBOL vmlinux 0x7fffffff stop_tty +EXPORT_SYMBOL vmlinux 0x7fffffff stpcpy +EXPORT_SYMBOL vmlinux 0x7fffffff strcasecmp +EXPORT_SYMBOL vmlinux 0x7fffffff strchrnul +EXPORT_SYMBOL vmlinux 0x7fffffff strcmp +EXPORT_SYMBOL vmlinux 0x7fffffff strcpy +EXPORT_SYMBOL vmlinux 0x7fffffff string_escape_mem +EXPORT_SYMBOL vmlinux 0x7fffffff string_unescape +EXPORT_SYMBOL vmlinux 0x7fffffff strlcat +EXPORT_SYMBOL vmlinux 0x7fffffff strlen +EXPORT_SYMBOL vmlinux 0x7fffffff strncat +EXPORT_SYMBOL vmlinux 0x7fffffff strncmp +EXPORT_SYMBOL vmlinux 0x7fffffff strnlen +EXPORT_SYMBOL vmlinux 0x7fffffff strnlen_user +EXPORT_SYMBOL vmlinux 0x7fffffff strpbrk +EXPORT_SYMBOL vmlinux 0x7fffffff strrchr +EXPORT_SYMBOL vmlinux 0x7fffffff strscpy_pad +EXPORT_SYMBOL vmlinux 0x7fffffff strsep +EXPORT_SYMBOL vmlinux 0x7fffffff strspn +EXPORT_SYMBOL vmlinux 0x7fffffff submit_bh +EXPORT_SYMBOL vmlinux 0x7fffffff swake_up_all +EXPORT_SYMBOL vmlinux 0x7fffffff swake_up_one +EXPORT_SYMBOL vmlinux 0x7fffffff sync_blockdev +EXPORT_SYMBOL vmlinux 0x7fffffff sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff sync_file_get_fence +EXPORT_SYMBOL vmlinux 0x7fffffff sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x7fffffff sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff synchronize_irq +EXPORT_SYMBOL vmlinux 0x7fffffff synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0x7fffffff sys_tz +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_vals +EXPORT_SYMBOL vmlinux 0x7fffffff sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0x7fffffff sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x7fffffff system_rev +EXPORT_SYMBOL vmlinux 0x7fffffff system_serial +EXPORT_SYMBOL vmlinux 0x7fffffff system_serial_high +EXPORT_SYMBOL vmlinux 0x7fffffff system_state +EXPORT_SYMBOL vmlinux 0x7fffffff take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x7fffffff tasklet_setup +EXPORT_SYMBOL vmlinux 0x7fffffff tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0x7fffffff tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x7fffffff tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0x7fffffff tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x7fffffff tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x7fffffff tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_block_get +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_classify +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_em_register +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_create +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idr_search +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x7fffffff tcf_queue_work +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_add_backlog +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_parse_options +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_peek_len +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_poll +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_release_cb +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sendpage +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_seq_next +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_seq_start +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_shutdown +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_time_wait +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x7fffffff tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_deassert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_tune_cpu_trimmers_init +EXPORT_SYMBOL vmlinux 0x7fffffff tegra114_clock_tune_cpu_trimmers_low +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_register +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_runtime_resume +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_runtime_suspend +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_dfll_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_fuse_readl +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_io_pad_power_enable +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_io_rail_power_on +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_align +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_cleanup +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_notified +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_read_get_next_frame +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_ivc_write_advance +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_powergate_power_on +EXPORT_SYMBOL vmlinux 0x7fffffff tegra_sku_info +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_register +EXPORT_SYMBOL vmlinux 0x7fffffff textsearch_unregister +EXPORT_SYMBOL vmlinux 0x7fffffff thaw_bdev +EXPORT_SYMBOL vmlinux 0x7fffffff thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x7fffffff timer_reduce +EXPORT_SYMBOL vmlinux 0x7fffffff timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0x7fffffff timestamp_truncate +EXPORT_SYMBOL vmlinux 0x7fffffff tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0x7fffffff tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x7fffffff to_nd_btt +EXPORT_SYMBOL vmlinux 0x7fffffff to_ndd +EXPORT_SYMBOL vmlinux 0x7fffffff touch_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x7fffffff touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x7fffffff touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0x7fffffff trace_event_printf +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_flags_seq_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x7fffffff trace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0x7fffffff truncate_pagecache +EXPORT_SYMBOL vmlinux 0x7fffffff try_lookup_one_len +EXPORT_SYMBOL vmlinux 0x7fffffff try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x7fffffff try_to_release_page +EXPORT_SYMBOL vmlinux 0x7fffffff tso_count_descs +EXPORT_SYMBOL vmlinux 0x7fffffff tty_devnum +EXPORT_SYMBOL vmlinux 0x7fffffff tty_hangup +EXPORT_SYMBOL vmlinux 0x7fffffff tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7fffffff tty_kref_put +EXPORT_SYMBOL vmlinux 0x7fffffff tty_lock +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_close +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_init +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_open +EXPORT_SYMBOL vmlinux 0x7fffffff tty_port_put +EXPORT_SYMBOL vmlinux 0x7fffffff tty_register_device +EXPORT_SYMBOL vmlinux 0x7fffffff tty_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unregister_device +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x7fffffff tty_unthrottle +EXPORT_SYMBOL vmlinux 0x7fffffff tty_vhangup +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x7fffffff twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_power +EXPORT_SYMBOL vmlinux 0x7fffffff twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x7fffffff twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7fffffff twl_i2c_write +EXPORT_SYMBOL vmlinux 0x7fffffff twl_rev +EXPORT_SYMBOL vmlinux 0x7fffffff twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0x7fffffff uart_add_one_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_get_divisor +EXPORT_SYMBOL vmlinux 0x7fffffff uart_match_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_register_driver +EXPORT_SYMBOL vmlinux 0x7fffffff uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_suspend_port +EXPORT_SYMBOL vmlinux 0x7fffffff uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x7fffffff uart_update_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_dump_regs +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_enable +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_init +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_fast_transmit_on_demand +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_disable +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_graceful_stop_tx +EXPORT_SYMBOL vmlinux 0x7fffffff ucc_slow_init +EXPORT_SYMBOL vmlinux 0x7fffffff ucs2_strsize +EXPORT_SYMBOL vmlinux 0x7fffffff udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x7fffffff udp_encap_disable +EXPORT_SYMBOL vmlinux 0x7fffffff udp_encap_enable +EXPORT_SYMBOL vmlinux 0x7fffffff udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0x7fffffff udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x7fffffff udp_gro_receive +EXPORT_SYMBOL vmlinux 0x7fffffff udp_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x7fffffff udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x7fffffff udp_poll +EXPORT_SYMBOL vmlinux 0x7fffffff udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x7fffffff udp_sendmsg +EXPORT_SYMBOL vmlinux 0x7fffffff udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x7fffffff udp_table +EXPORT_SYMBOL vmlinux 0x7fffffff udplite_prot +EXPORT_SYMBOL vmlinux 0x7fffffff udplite_table +EXPORT_SYMBOL vmlinux 0x7fffffff unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x7fffffff unix_detach_fds +EXPORT_SYMBOL vmlinux 0x7fffffff unix_get_socket +EXPORT_SYMBOL vmlinux 0x7fffffff unload_nls +EXPORT_SYMBOL vmlinux 0x7fffffff unlock_buffer +EXPORT_SYMBOL vmlinux 0x7fffffff unlock_new_inode +EXPORT_SYMBOL vmlinux 0x7fffffff unlock_page +EXPORT_SYMBOL vmlinux 0x7fffffff unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x7fffffff unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x7fffffff unpin_user_page +EXPORT_SYMBOL vmlinux 0x7fffffff unpin_user_pages +EXPORT_SYMBOL vmlinux 0x7fffffff unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_binfmt +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_blkdev +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_cdrom +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_key_type +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdev +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_quota_format +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_shrinker +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sound_dsp +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sound_special +EXPORT_SYMBOL vmlinux 0x7fffffff unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x7fffffff up_read +EXPORT_SYMBOL vmlinux 0x7fffffff update_devfreq +EXPORT_SYMBOL vmlinux 0x7fffffff user_path_at_empty +EXPORT_SYMBOL vmlinux 0x7fffffff usleep_range_state +EXPORT_SYMBOL vmlinux 0x7fffffff utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_load +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_strncmp +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_unload +EXPORT_SYMBOL vmlinux 0x7fffffff utf8_validate +EXPORT_SYMBOL vmlinux 0x7fffffff utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x7fffffff uuid_is_valid +EXPORT_SYMBOL vmlinux 0x7fffffff uuid_parse +EXPORT_SYMBOL vmlinux 0x7fffffff v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x7fffffff validate_slab_cache +EXPORT_SYMBOL vmlinux 0x7fffffff vc_cons +EXPORT_SYMBOL vmlinux 0x7fffffff vc_resize +EXPORT_SYMBOL vmlinux 0x7fffffff vcalloc +EXPORT_SYMBOL vmlinux 0x7fffffff verify_spi_info +EXPORT_SYMBOL vmlinux 0x7fffffff vesa_modes +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_pin_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_register_notifier +EXPORT_SYMBOL vmlinux 0x7fffffff vfio_unpin_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vfree +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_create +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_create_mount +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_fadvise +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_get_fsid +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_get_super +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_get_tree +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_ioctl +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_iter_read +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_link +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_mkdir +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_mknod +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_rmdir +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x7fffffff vfs_unlink +EXPORT_SYMBOL vmlinux 0x7fffffff vga_put +EXPORT_SYMBOL vmlinux 0x7fffffff vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x7fffffff vif_device_init +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_for_each +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_vid_add +EXPORT_SYMBOL vmlinux 0x7fffffff vlan_vid_del +EXPORT_SYMBOL vmlinux 0x7fffffff vm_brk_flags +EXPORT_SYMBOL vmlinux 0x7fffffff vm_event_states +EXPORT_SYMBOL vmlinux 0x7fffffff vm_insert_pages +EXPORT_SYMBOL vmlinux 0x7fffffff vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x7fffffff vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0x7fffffff vm_map_ram +EXPORT_SYMBOL vmlinux 0x7fffffff vma_set_file +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc_32 +EXPORT_SYMBOL vmlinux 0x7fffffff vmalloc_array +EXPORT_SYMBOL vmlinux 0x7fffffff vme_alloc_consistent +EXPORT_SYMBOL vmlinux 0x7fffffff vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_free_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0x7fffffff vme_free_consistent +EXPORT_SYMBOL vmlinux 0x7fffffff vme_get_size +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_free +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_generate +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vme_irq_request +EXPORT_SYMBOL vmlinux 0x7fffffff vme_lm_detach +EXPORT_SYMBOL vmlinux 0x7fffffff vme_lm_set +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_mmap +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_request +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_set +EXPORT_SYMBOL vmlinux 0x7fffffff vme_master_write +EXPORT_SYMBOL vmlinux 0x7fffffff vme_register_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_free +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slave_get +EXPORT_SYMBOL vmlinux 0x7fffffff vme_slot_num +EXPORT_SYMBOL vmlinux 0x7fffffff vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0x7fffffff vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x7fffffff vmemdup_user +EXPORT_SYMBOL vmlinux 0x7fffffff vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x7fffffff vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x7fffffff vprintk_emit +EXPORT_SYMBOL vmlinux 0x7fffffff vscnprintf +EXPORT_SYMBOL vmlinux 0x7fffffff vsnprintf +EXPORT_SYMBOL vmlinux 0x7fffffff vunmap +EXPORT_SYMBOL vmlinux 0x7fffffff vzalloc_node +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x7fffffff wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x7fffffff wait_woken +EXPORT_SYMBOL vmlinux 0x7fffffff wake_bit_function +EXPORT_SYMBOL vmlinux 0x7fffffff wake_up_bit +EXPORT_SYMBOL vmlinux 0x7fffffff wake_up_var +EXPORT_SYMBOL vmlinux 0x7fffffff walk_stackframe +EXPORT_SYMBOL vmlinux 0x7fffffff watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x7fffffff watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x7fffffff woken_wake_function +EXPORT_SYMBOL vmlinux 0x7fffffff write_cache_pages +EXPORT_SYMBOL vmlinux 0x7fffffff write_inode_now +EXPORT_SYMBOL vmlinux 0x7fffffff ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x7fffffff ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x7fffffff xa_erase +EXPORT_SYMBOL vmlinux 0x7fffffff xa_extract +EXPORT_SYMBOL vmlinux 0x7fffffff xa_find_after +EXPORT_SYMBOL vmlinux 0x7fffffff xa_get_mark +EXPORT_SYMBOL vmlinux 0x7fffffff xa_get_order +EXPORT_SYMBOL vmlinux 0x7fffffff xa_load +EXPORT_SYMBOL vmlinux 0x7fffffff xa_store_range +EXPORT_SYMBOL vmlinux 0x7fffffff xattr_full_name +EXPORT_SYMBOL vmlinux 0x7fffffff xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_init_state +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_input +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_add +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0x7fffffff xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x7fffffff xp_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x7fffffff xp_can_alloc +EXPORT_SYMBOL vmlinux 0x7fffffff xp_dma_map +EXPORT_SYMBOL vmlinux 0x7fffffff xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0x7fffffff xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x7fffffff xp_free +EXPORT_SYMBOL vmlinux 0x7fffffff xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x7fffffff xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x7fffffff xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x7fffffff xsk_tx_release +EXPORT_SYMBOL vmlinux 0x7fffffff xxh32_copy_state +EXPORT_SYMBOL vmlinux 0x7fffffff xxh32_update +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64 +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64_copy_state +EXPORT_SYMBOL vmlinux 0x7fffffff xxh64_digest +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_reset +EXPORT_SYMBOL vmlinux 0x7fffffff xz_dec_run +EXPORT_SYMBOL vmlinux 0x7fffffff zero_pfn +EXPORT_SYMBOL vmlinux 0x7fffffff zero_user_segments +EXPORT_SYMBOL vmlinux 0x7fffffff zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x7fffffff zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_compress_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_flush_stream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_cstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_is_error +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x7fffffff zstd_reset_dstream +EXPORT_SYMBOL_GPL arch/arm/crypto/sha1-arm 0x5692a5ec sha1_update_arm +EXPORT_SYMBOL_GPL arch/arm/crypto/sha1-arm 0x7d8a30df sha1_finup_arm +EXPORT_SYMBOL_GPL crypto/af_alg 0x12972f3c af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x232cc39a af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x24ab022d af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x2786d4c1 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x2c4d91cc af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0x4540df4e af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x45b47ecc af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x494475a4 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x5ea8a947 af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x5ee180bc af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0x78a55998 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7fffffff af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x7fffffff async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x54dd79b1 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7fffffff async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x2ead3760 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x43b238f2 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3578b229 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x638a0984 async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7fffffff async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x7fffffff async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x464f19e0 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x70f13cb5 async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7fffffff async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7fffffff async_xor_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x7fffffff blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x1f6c9382 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x7fffffff __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7fffffff __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7fffffff __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x7fffffff 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 0x7fffffff cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x7fffffff cast_s3 +EXPORT_SYMBOL_GPL crypto/cryptd 0x15bff801 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x2b59fe72 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x2ca02583 cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x3990f44a cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x61a35a32 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x7e59de54 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x7fffffff cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x035548ef crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x14a2433f crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x409b6209 crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x60eab0d3 crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x66b9c099 crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7fffffff crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x1243b4ac simd_unregister_skciphers +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x31da4153 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 0x69e4aebc simd_unregister_aeads +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_aead_create +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_aead_free +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_register_aeads_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_skcipher_create_compat +EXPORT_SYMBOL_GPL crypto/crypto_simd 0x7fffffff simd_skcipher_free +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7fffffff crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x19ad7f57 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7fffffff __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7fffffff __serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0x7fffffff sm3_final +EXPORT_SYMBOL_GPL crypto/sm3 0x7fffffff sm3_update +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0x7fffffff sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x7fffffff __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x7fffffff twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1b92189b spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x276ed57b spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2e7e21d7 speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x32dd3a49 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x364059cc synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4150fc26 synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4b2d108c spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x68119e6e spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_printf +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7fffffff synth_request_region +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x267781da __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x3b9158aa sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x7fffffff charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_fontsize +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x7fffffff hd44780_common_shift_cursor +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 0x7fffffff ks0108_address +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x7fffffff ks0108_page +EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x7fffffff ks0108_writecontrol +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x4cbf35a8 linedisp_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x7fffffff linedisp_unregister +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x02cbccba __devm_regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x75bf5cc9 regmap_ac97_default_volatile +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-ac97 0x7fffffff __regmap_init_ac97 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0x7fffffff __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x5e9f685e __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0x7fffffff __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x7fffffff __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x7fffffff __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x7fffffff __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x7fffffff __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x0bcdc915 __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x7fffffff __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x032b2695 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x7fffffff __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x7fffffff __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x7fffffff __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x7fffffff __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0481b842 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x09b45b07 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2b604212 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2f23a9fe bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3106c6eb bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x34db19fa bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x59221b1e bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6366ebcc bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x661a71b1 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x79502d0e bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7fffffff bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x5e0cbf8b btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x6a672e53 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x759b32ea btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x767b1196 btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x7fffffff btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2827bc83 btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x30eff309 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x45e84181 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x63f42ff6 btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x77336666 btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x77645778 btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x7fffffff btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x09d458bc btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x37c8702b btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x58e54f14 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x7fffffff btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x1b1dee82 btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7fffffff btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x7fffffff btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x66204cab qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x7fffffff qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x0309bab3 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x1d021f31 btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x2277d72f btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x7fffffff btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x1b0ac215 hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x5ef641db hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x7fffffff h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x7fffffff hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x198878e6 mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x50f0326f __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x6002976e mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x625083e7 mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7fffffff mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x05c2ddd0 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x06f9eeca mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x10512cc2 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x210dfdb5 mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x27a8245b mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x28087d58 mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x2eec6e7e mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3fd917d7 mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x4b1375ae mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x55adcda6 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x60a4c20f mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x623c75a7 mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6819054d mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x6ac40e39 mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7171ea47 mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x73e04b52 mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x76f79193 mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7fffffff mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x03c78888 moxtet_device_write +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x338d1198 moxtet_device_read +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x65f5044c moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x751d4e9d __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0000139e clk_alpha_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x08f0cc30 clk_is_enabled_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d10c3c4 clk_enable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0d678ab9 qcom_reset_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e5f8a53 clk_pll_sr2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x0e98da3d clk_pll_vote_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x17d44071 clk_alpha_pll_hwfsm_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x183be5e6 clk_alpha_pll_agera_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1a142e7c clk_alpha_pll_fixed_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x1cbd386f clk_rcg_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x272f3204 clk_alpha_pll_fixed_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x29c40ae0 clk_alpha_pll_fixed_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2a9c7452 clk_rcg_lcc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2b0d957d clk_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2cae96b3 clk_regmap_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x2f765cde gdsc_gx_do_nothing_enable +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x306e7e8c qcom_cc_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x30bbf987 clk_rcg2_shared_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x310b6341 clk_regmap_mux_closest_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3747af55 clk_rcg_bypass2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x395868a1 qcom_find_freq_floor +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3b15a709 clk_alpha_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3d9d67cc qcom_cc_probe_by_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x3dfc2dc5 clk_branch_simple_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x405d394a clk_alpha_pll_postdiv_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x418e9cfd clk_pll_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x4b0ed6da clk_ops_hfpll +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5111f2ad clk_rcg2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x520df3b7 clk_rcg_esc_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x57172323 clk_byte_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x5e6abb22 mux_div_set_src_div +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x60e2e044 qcom_cc_register_sleep_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x615dbb77 clk_branch2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x631939a9 clk_branch2_aon_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x63ee9aa4 clk_alpha_pll_fixed_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x66922845 clk_branch_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x68199825 clk_disable_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6af41b8b qcom_pll_set_fsm_mode +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x6c069db2 qcom_find_src_index +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7019378d clk_pll_configure_sr_hpm_lp +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x766e9f87 clk_regmap_div_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7737d034 qcom_cc_map +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x787e8234 qcom_find_freq +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x78b81ea0 clk_rcg2_floor_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7b0ae2d4 devm_clk_register_regmap +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7cf80f95 qcom_cc_register_board_clk +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7e66fd9e clk_regmap_mux_div_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_agera_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_huayra_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_fabia_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_evo_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_lucid_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_ro_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_postdiv_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_regs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_alpha_pll_trion_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_byte2_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_dp_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_dyn_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_edp_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_fabia_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_gfx3d_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_pll_configure_sr +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_bypass_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_rcg_pixel_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_trion_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff clk_zonda_pll_configure +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff krait_div2_clk_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff krait_mux_clk_ops +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_cc_really_probe +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_cc_register_rcg_dfs +EXPORT_SYMBOL_GPL drivers/clk/qcom/clk-qcom 0x7fffffff qcom_find_cfg_index +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x093d0205 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1519e561 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x15e405f6 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1e285110 comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x233a87fa __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x27aa3e4d comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2c6c35bc comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3b54c48b comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x41336b8a comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x43de4ffd comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x455940e6 comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x48dd09a8 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4b09638b comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x551d248c comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x56d1f674 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5714550e comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5acb0d84 comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x5eaadf1d comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x61940137 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x6311247d comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x753ece66 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7e8627cf comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x7fffffff range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x0a886461 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x3eb19c12 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x4925c164 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x64af372d comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x7fffffff comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x13343ed2 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x4587233e comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7fffffff comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x738d5dd1 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x01ed52f7 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x7fffffff amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x086e6f1c amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x0ddbdea5 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x3da7b256 comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4a58505d comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x561b0040 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x5e4d2128 comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x63e0a44a comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x67ab58eb comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x6c25baa3 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x6e62bac3 comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x7fffffff comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x024b6f1f subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x0dee5b93 subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x7fffffff subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x7fffffff das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x107e1f2a mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1e0683b6 mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x2540d3b4 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x25c927d0 mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3994fc93 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3b7ab4aa mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x46b21387 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x4a5c1969 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x5e8c619d mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x67a919ee mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x6c4ea8cf mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x71da30a9 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7cf21891 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fffffff mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x42ec9960 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x7fffffff labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x7fffffff ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x0e53ed6e ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x104cf3b0 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x1f485977 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x212b02ba ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x26469cb3 ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4b2f1fb2 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x535d421c ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x7fffffff ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x08220b8e ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x275c868b ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x2a9a35b8 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x43769ec9 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7202964c ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7ae5df87 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x0a32f111 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x167dea24 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x1a25b6ac comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x29f21409 comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x6f66aa3a comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x7fffffff comedi_open +EXPORT_SYMBOL_GPL drivers/counter/counter 0x0758d068 counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x6f05ec5a counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x70d62326 counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0x79dde431 devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7e02f789 counter_push_event +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7fffffff counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7fffffff counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x7fffffff devm_counter_add +EXPORT_SYMBOL_GPL drivers/crypto/omap-crypto 0x5c2673e4 omap_crypto_cleanup +EXPORT_SYMBOL_GPL drivers/crypto/omap-crypto 0x7fffffff omap_crypto_align_sg +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x451b6191 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x327eb3e4 dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x7fffffff dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x03b6d554 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x51f7348b idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x6629635c dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7abaf5f3 do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7fffffff idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x05cedfcc fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x06cfa292 fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x10572929 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x2c5ab208 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x4087f762 fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x575ae500 fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x5c4146f1 fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x6cfe5e78 fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x6e43f8be fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7fffffff fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x1c475525 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x7fffffff hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x7fffffff fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x7fffffff fw_card_release +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x7fffffff fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firmware/arm_scpi 0x7fffffff get_scpi_ops +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x05a3c1d3 cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x08e37c59 cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x483f8546 cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4a163802 cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x5035acbb cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x536bd34e cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x631eea12 cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x66898ffd cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x74dd833a cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7c0010c3 cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7fffffff cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/mtk-adsp-ipc 0x6d933080 mtk_adsp_ipc_send +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x7fffffff alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3037278d dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3a7dfef8 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3b070c74 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3c76d08b dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3ea64e26 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x400de1a5 dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x4082327e dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x57788386 dfl_fpga_set_irq_triggers +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x663d9180 dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7528581e dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7fffffff dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0633c4b9 fpga_bridges_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0773379d fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x0b2b884c fpga_bridges_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x70657026 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7e918c88 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x7fffffff of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x1541ffc5 fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x223c2924 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x2641ac5e fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x3d5cd3c0 fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x411ec6e8 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x601d9ed9 devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x629f1f3e fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x63200e4f fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x673bcc0b fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7fffffff fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x43cd8f68 fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x5449501b fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x7fffffff fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x053fea7d fsi_get_new_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x0ae50ac3 fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x0f1eadbe fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x16a0fa38 fsi_bus_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x4932d3d2 fsi_driver_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x4fb34850 fsi_master_rescan +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 0x7fffffff fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_slave_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7fffffff fsi_slave_release_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x0ba18c14 fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x04e714bb sbefifo_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0x7fffffff sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x0ea1a3a3 gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x1b9b6534 gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x6dfd3b46 gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x6f878b99 gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x7d0b6146 gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x2ecccf81 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x3ffd74fc gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x7fffffff gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x5dcbe46c aspeed_gpio_copro_set_ops +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x7fffffff aspeed_gpio_copro_grab_gpio +EXPORT_SYMBOL_GPL drivers/gpio/gpio-aspeed 0x7fffffff aspeed_gpio_copro_release_gpio +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x1fa36fb4 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x34b310d7 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x1ec2e756 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x2375571c analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7fffffff anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05 dw_hdmi_set_channel_count +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5 dw_hdmi_phy_i2c_set_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x1461e227 dw_hdmi_set_channel_status +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x26d629cd dw_hdmi_phy_gen2_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 0x46c69c60 dw_hdmi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x4a9b174f dw_hdmi_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x5665b64f dw_hdmi_set_high_tmds_clock_ratio +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7d8a3aee dw_hdmi_phy_i2c_write +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_audio_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_audio_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_gen1_reset +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_gen2_pddq +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_read_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_setup_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_phy_update_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_sample_rate +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7fffffff dw_hdmi_set_sample_width +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 0x173d391c 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 0x799c0c7a dw_mipi_dsi_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_display_helper 0x19aa0eef drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x106d32c7 __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x1174ecbb of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x124aeffa devm_of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x72401fe7 of_dp_aux_depopulate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x7fffffff dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1ac7efeb drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x37cc1db5 drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4320a603 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x524a35d2 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x55bb09ae drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5df65fbf drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6ca50719 drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6fc23ecf drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7f79725b drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7fffffff of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x324652f8 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x3694cfdc drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x40375c5e drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x4ef88aad drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x79ba1b5a drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7fffffff drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x09ba2ed1 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x27729444 drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x37e4c7d0 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x564cb81f drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x5d51580c drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x603fde3a drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x74729407 drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7e095018 drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7f5bf289 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7fffffff drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x03188792 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x18c4e40d drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x377fd447 drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x5e38ec8b drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x677faf0e drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x7fffffff drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/imx/imxdrm 0x7fffffff imx_drm_connector_destroy +EXPORT_SYMBOL_GPL drivers/gpu/drm/imx/imxdrm 0x7fffffff imx_drm_encoder_parse_of +EXPORT_SYMBOL_GPL drivers/gpu/drm/mcde/mcde_drm 0x7fffffff mcde_display_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x2c73cfcf meson_venc_hdmi_venc_repeat +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x2e1af8d8 meson_vclk_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x562879ee meson_venc_hdmi_mode_set +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_vclk_dmt_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_vclk_vic_supported_freq +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_venc_hdmi_supported_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/meson/meson-drm 0x7fffffff meson_venc_hdmi_supported_vic +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x16875083 s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x7fffffff s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/pl111/pl111_drm 0x177b317a pl111_versatile_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x582b41a1 rcar_cmm_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x6e0bd065 rcar_cmm_setup +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7fffffff rcar_cmm_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_cmm 0x7fffffff rcar_cmm_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x71d4841d rcar_lvds_clk_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x7fffffff rcar_lvds_clk_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x7fffffff rcar_lvds_dual_link +EXPORT_SYMBOL_GPL drivers/gpu/drm/rcar-du/rcar_lvds 0x7fffffff rcar_lvds_is_connected +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x2150a834 vop_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x3003c48b vop2_component_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x7fffffff rockchip_rgb_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/rockchip/rockchipdrm 0x7fffffff rockchip_rgb_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x1a605020 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x5d4eee63 ssd130x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x7fffffff ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x0049c34d ipu_set_ic_src_mux +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 0x076f69a0 ipu_cpmem_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x0bea7211 ipu_vdi_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x0d78bea1 ipu_idmac_lock_enable +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 0x0f5b361c ipu_image_convert_sync +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x118160e1 ipu_ic_enable +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 0x15609ffc ipu_cpmem_set_high_priority +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 0x1de84ed7 ipu_dc_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 0x1fa83abd ipu_image_convert +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x2131e19b ipu_module_disable +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 0x2a7aee6b ipu_dc_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x2c798509 ipu_idmac_wait_busy +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 0x2d844851 ipu_smfc_get +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 0x315cdded ipu_prg_channel_configure +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 0x31c6370f ipu_cpmem_set_format_passthrough +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x32c750cf ipu_dmfc_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x3be48f79 ipu_csi_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 0x40933472 ipu_cpmem_set_image +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 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 0x492a422d ipu_csi_set_mipi_datatype +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4941fea8 ipu_cpmem_set_resolution +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 0x4c91e22c ipu_fsu_link +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4c949384 ipu_module_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4cae55c0 ipu_cpmem_set_yuv_interleaved +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x4ec2808c ipu_cpmem_interlaced_scan +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 0x55767280 ipu_vdi_set_motion +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x56033f55 ipu_cpmem_set_axi_id +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x56cca032 ipu_idmac_select_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 0x5889c649 ipu_prg_format_supported +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x5947d22e ipu_dc_disable +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 0x5c35340e ipu_ic_get +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 0x63de193c ipu_idmac_unlink +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x6482fdd9 ipu_idmac_channel_busy +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x657af7bc ipu_prg_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x66103d68 ipu_prg_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x67256320 ipu_cpmem_zero +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x68a1de40 ipu_cpmem_skip_odd_chroma_rows +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x6b3f2e3b ipu_cpmem_set_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x6c53abe8 ipu_cpmem_set_uv_offset +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7068e939 ipu_dc_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7631a9cc ipu_idmac_buffer_is_ready +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x76902cc1 ipu_fsu_unlink +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x79eaab15 ipu_dp_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7c18d01a ipu_di_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_get_burstsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_block_mode +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_burstsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_fmt +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_format_rgb +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_rotation +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_stride +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_cpmem_set_yuv_planar_full +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_init_interface +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_downsize +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_skip_smfc +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_test_generator +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_csi_set_window +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dc_disable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dc_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_degrees_to_rot_mode +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_di_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_di_init_sync_panel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dmfc_config_wait4eot +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_set_global_alpha +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_set_window_pos +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dp_setup_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_dump +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_get_num +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_task_graphics_init +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_task_idma_init +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_ic_task_init +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_channel_irq +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_clear_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_disable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_enable_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_enable_watermark +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_get +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_get_current_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_link +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_idmac_set_double_buffer +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_image_convert_adjust +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_image_convert_prepare +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_image_convert_queue +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_image_convert_verify +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_map_irq +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_pixelformat_to_colorspace +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_prg_channel_configure_pending +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_prg_channel_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_prg_present +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_set_csi_src_mux +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_map_channel +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_smfc_put +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_srm_dp_update +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_disable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_enable +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_set_field_order +EXPORT_SYMBOL_GPL drivers/gpu/ipu-v3/imx-ipu-v3 0x7fffffff ipu_vdi_setup +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x00201b48 gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x05521e7d gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x06e1c2af gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x07177533 __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x158a8186 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x164c8150 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x189a83ef greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x19c8e4e0 __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x26e3f323 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3112e25e gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3481e560 gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x357b80e4 gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x35a6d354 gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x367346cc gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x36b26b2b gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3b6533aa gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x42966687 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x44c3770c gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x47b41aba __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x553cea4e gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x565f4f40 gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x56d2e506 gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5d0920ee gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6618046f gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x71bd0eb1 gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x773f2308 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7778075e gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7bfa420b __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7bfcf07d __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7e14e99b __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7fffffff greybus_message_sent +EXPORT_SYMBOL_GPL drivers/hid/hid 0x01c7c913 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05ecb446 hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1762f876 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x17a921ba hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x18d46c4f hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f9b5f98 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c2b2dec hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d9a51f8 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2ecace8a hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3500026a hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0x36b2e187 hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x392fe7ce hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x40616089 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x440fe219 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x47430c84 hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4d6e999c hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5ba6982f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x67c16c8c hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b048f55 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x78b72136 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7d2f156c hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7de5db6e hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7ef859b8 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fffffff 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 0x7fffffff roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x45cde86c roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x57b3a2a8 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6ecc503c roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x6f9e3466 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7fffffff roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x7fffffff roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x038d21aa sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x2c460ba0 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x5b9e866c sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x757b64d1 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x760e55a3 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x761b0787 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7fffffff sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x214de131 vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x3468965a vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x34539131 i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x7fffffff i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/uhid 0x65160ff0 uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x46922e94 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5e446c74 usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0b73448f hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x245f05db hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x366f3185 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x59ccc13e hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x60f3896f hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x67bc0d6b hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7510b00d hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b6744b0 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7bfd6b36 hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fffffff hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6ec0ccdf adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x7fffffff adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x7fffffff ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x7fffffff ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x5553b82c nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x7fffffff nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x5326ea60 intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x5d0a5829 intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x684f9c62 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x7fffffff intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x31405a7e intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x7fffffff intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x7fffffff intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x03c29fd4 stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x0650845b stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x06903549 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x29352237 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x7fffffff to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x204d04f1 i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x068c2353 i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x6f85279a i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7466968f i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7fffffff i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x0c567fa8 i2c_free_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x15bc53a5 i2c_new_slave_host_notify_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7fffffff i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x7fffffff i2c_register_spd +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x0a2e9161 dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x14201816 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x28a76f87 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2ebd103a i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x45bc6a54 i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x4742348f i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x47c668b7 i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5ad1eab6 i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x633cfb79 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x6f3e4361 i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x77d012db i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7fffffff i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x6f0b9f65 adi_axi_adc_conv_priv +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x7fffffff devm_adi_axi_adc_conv_register +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x11cc2335 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 0x6b9e85d8 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 0x7fffffff iio_channel_cb_set_buffer_watermark +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x7fffffff iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x09cdefde iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x12ab0326 iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x1f9881f8 iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x22a6eb2c iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x3008f422 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x5bdf81a3 iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x5fc46ae1 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7fffffff iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x7fffffff devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x3391543d iio_hw_consumer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x40adc254 iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x65640853 devm_iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x7fffffff iio_hw_consumer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x7fffffff iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0x7fffffff devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0x0bb81bb4 devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x0d2bcce8 sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x0d18d1ca cros_ec_motion_send_host_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x4b3a3541 cros_ec_sensors_core_read_avail +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_capture +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_init +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_read +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_register +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_core_write +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_ext_info +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_push_data +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_read_cmd +EXPORT_SYMBOL_GPL drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core 0x7fffffff cros_ec_sensors_read_lpc +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x11eb7196 bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x1bc53c59 bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x72953dbf bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x77565ca5 fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x7fffffff fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x7fffffff fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x6fc10019 bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x04d6a7e6 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x3e288c5f inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x52004b68 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0x7fffffff inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x7fffffff inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x7fffffff inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x043b4bc7 iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x09a07cc0 iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0d1ecc73 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x18ecc55f __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x19c70d41 iio_update_buffers +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 0x2ee2cdbe iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x33b7c56d iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x36fbfaeb iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x38d67942 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x42b7299e devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x461fdcf6 iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4630c7f3 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x46db98e7 of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x491c8be4 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4fa7b1c4 iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x549622e1 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x54d3e444 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5ae5d054 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6504520f iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x67cf04f6 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x69be16c3 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x71904966 iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x77af3d23 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7adce071 iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7c726818 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7cc05624 devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7fffffff iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0x7fffffff ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x03dad697 rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x0628e9c3 rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x494bbc6e rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x687bfb8d rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6e1812c8 rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6f143665 rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x71965099 rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7fffffff rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x2d7ab42a input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x7fffffff matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7fffffff adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7fffffff adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x7fffffff adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x01858ca1 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x1139400b rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x1f1e398e rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x436db2de rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x6b71825a __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x6f66c83d rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x7fffffff rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x6d8b13f4 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x706128bd cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x7fffffff cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x7fffffff cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x7fffffff cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x2f5cf225 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x7fffffff cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x05ca84f5 tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x7fffffff tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2fa7d7a9 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4cbe290e wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x53a0f0dd wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6811b5f9 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6a40cfb8 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6de17f9c wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x715c2cb5 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x77fed2e2 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7fffffff wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x434c085c imx_icc_register +EXPORT_SYMBOL_GPL drivers/interconnect/imx/imx-interconnect 0x7fffffff imx_icc_unregister +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x0b39b783 qcom_icc_bcm_voter_commit +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x2f573302 qcom_icc_bcm_voter_add +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-bcm-voter 0x7fffffff of_bcm_voter_get +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x4ec633eb qcom_icc_pre_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_aggregate +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_bcm_init +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_rpmh_probe +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_rpmh_remove +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_set +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-rpmh 0x7fffffff qcom_icc_xlate_extended +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qcom_icc_rpm_smd_available +EXPORT_SYMBOL_GPL drivers/interconnect/qcom/icc-smd-rpm 0x7fffffff qcom_icc_rpm_smd_send +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x0f7c9e2a free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x48b9ac87 find_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x4a42a414 reserve_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff __free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff alloc_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff alloc_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff free_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff init_iova_domain +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff iova_cache_put +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff iova_domain_init_rcaches +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x7fffffff put_iova_domain +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x15805f44 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2c9da4c2 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2db37b26 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x632b8a63 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x68e7c9a2 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7145cf79 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7fffffff ipack_get_device +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x1c52c770 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x29301a59 led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x3c399174 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x71cfa881 led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x77355e6d devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x7fffffff led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x2e29bd1f devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x4946edca devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x77c64ffe led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x7fffffff led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x7fffffff led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x056f47fc lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1ba719af lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2c07f756 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x33cdc82d lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4468b917 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x6a779a93 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x7fffffff lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x3bd45b0d ledtrig_audio_set +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-audio 0x7fffffff 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/md/bcache/bcache 0x04c41330 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x05907c93 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0a62aea7 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x125defa8 __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x25bbd6d5 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x30556300 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3079df16 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x31057c80 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x36ac2722 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41994fca __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c3c3d5 __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46068b62 __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4b657931 __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5a227cbf __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628aeadd __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6457cb54 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x65e5f37d __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x660f0cb5 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6651bd71 __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x67abbb76 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x680fc51e __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x71388d39 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7267dab1 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x72a3de4b __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b025d31 __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b6679bd __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fffffff __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x0012ef2e dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x08e43302 dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x152d13d5 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 0x1d7ba55b dm_cell_put_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4519082e dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x5e1d385f dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6b3cd89e 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 0x7fffffff dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7fffffff dm_get_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 0x2b877141 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x2e0774dc dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0x7fffffff dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_forget +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_forget_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_get_dm_io_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_set_sector_offset +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7fffffff dm_bufio_write_dirty_buffers_async +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 0x3745c189 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x49f2e64e dm_cache_policy_unregister +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 0x7fffffff btracker_complete +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_issue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_nr_demotions_queued +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff btracker_queue +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x7fffffff dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x2cb70db9 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x6d9c8741 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 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 0x7cf9375d dm_rh_dirty_log +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 0x7fffffff dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7fffffff dm_rh_region_context +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 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +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 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +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 0x46eff63a dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5475ba9e dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_is_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7fffffff dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0854c0d4 cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x19161fee cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x3d93f0fb cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x409cba17 cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x4ef9963c cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x5918c6ca cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x595c49c2 cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x5a6b24f0 cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x5aa8cddc cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x609b0f2c cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x634dc788 cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x746be8f3 cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x79ea400e cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7bec6f03 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x7fffffff cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x178a95fd saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x5c6737c6 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x78b3619c saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7cedfd9f saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x7fffffff saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x16d74e92 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x30bfb4be saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x5767d85b saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x769f4def saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7fffffff saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x13a34c2b smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21ea1f69 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x274685aa sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2bf4cc9c smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2ec6e7e4 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3493b461 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x40e4d3eb sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x53ae1a6e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6137f263 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x61a67160 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +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 0x7fffffff sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7fffffff 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 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 0x7fffffff tpg_calc_text_basep +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_free +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_g_color_order +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_g_interleaved_plane +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_pattern_strings +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_reset_source +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0x7fffffff tpg_set_font +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x11d26b05 vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x1666040e vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x26219061 __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x29a67680 vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2ea482b3 vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x40598cca vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x490ed180 vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4b165aae vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5b931143 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5c779b6e vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5f9e9fbf __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7fffffff vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x46dad60b vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0x60b1409a vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x1d681dd2 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0x7fffffff vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x02793dd1 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x029b0b87 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x091cf45b vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0cde62d8 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0efad34c vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x10bda236 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x12eadbce vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1b5372d8 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x1e05e5fc vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x23dc337c vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x30a250e4 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x390abb25 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4abdc186 vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4cebd5fb vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4d73437d vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x4e2943fa vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x54d0e783 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x5ec2110e vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x6936cb26 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x72aaeb38 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7a307272 vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7d1dc838 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7fffffff vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x111da1d8 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x003631be dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x78b11dab dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x7fffffff dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x7c6f1a46 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0x36e0becc cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x774927c4 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0x2cb6f927 mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0x7fffffff stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x7fffffff stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x5fd6a391 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x7e732190 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x3c60e205 ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x10f86f40 max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x22966d54 max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x2d1ca35b max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x36a7bf7c max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x65b81679 max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x6a4618ea max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x6f533f12 max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7fffffff max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0749bd5a media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x08f52936 media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0d48fe69 media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x10f5abd6 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x13206142 media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1ca21148 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1d5c791c media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1e09bb6f __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x20bed8c5 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x245b5468 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x296cd3dc media_request_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x29bf7978 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2ba04b5a media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x2e2fb253 media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x38f9b7b6 __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x402493ca media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x468aafc7 media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x4ecd25f0 media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5c497ec0 media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x61918bcc media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x656879b2 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x68c1c5ba media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6aa38f62 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6b0c3120 __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6cd1aa7b media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6d027c3a media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6d8df8b7 __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7fffffff media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x7fffffff cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1b57685d mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x21947940 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x2373c674 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3b9ad313 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3e8e45af mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4d0688aa mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x679832dc mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7fffffff mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x0ce2a823 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x164e6cd1 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x1b8e1920 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x21a1064e saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x239b94a8 saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x319517dd saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x4ebe1134 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5ae2fdf5 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5cbb8612 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5dafcb61 saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x63b713d2 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x6b86b999 saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7cb5a448 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7fffffff saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x2c30c36a ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x79ae69f2 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7fffffff ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x4d007bc5 mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x7fffffff mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x1f8535d3 vpu_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x28817c80 vpu_get_plat_device +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x38b97aef vpu_ipi_register +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x5a4195ae vpu_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_ipi_send +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_load_firmware +EXPORT_SYMBOL_GPL drivers/media/platform/mediatek/vpu/mtk-vpu 0x7fffffff vpu_wdt_reg_handler +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x3d858696 rcar_fcp_put +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x4ad5d888 rcar_fcp_enable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x5fe6f6e8 rcar_fcp_disable +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x7fffffff rcar_fcp_get +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/rcar-fcp 0x7fffffff rcar_fcp_get_device +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x17b02c27 vsp1_du_atomic_begin +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x38d41b2f vsp1_du_atomic_update +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x5a4e5cd2 vsp1_du_setup_lif +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x5dac70bd vsp1_du_map_sg +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7fffffff vsp1_du_atomic_flush +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7fffffff vsp1_du_init +EXPORT_SYMBOL_GPL drivers/media/platform/renesas/vsp1/vsp1 0x7fffffff vsp1_du_unmap_sg +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x150aa977 xvip_of_get_format +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x17ed8204 xvip_init_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x26e3ad6f xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x360e9a96 xvip_clr_and_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x43738fab xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x4941eea5 xvip_clr_or_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_cleanup_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_get_format_by_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x7fffffff xvip_get_format_by_fourcc +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 0x7fffffff xvtc_of_get +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0x7fffffff xvtc_put +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x166f6d55 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7fffffff radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x138473bb si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x2f4142d9 si470x_stop +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x5a0399da si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7fffffff si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x7fffffff si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0a32a385 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0d79b484 devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x25d653e3 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x28af3c3f rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x619ec53f lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x65da256b ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x68cc801f rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x6cbb4da5 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x703ae18a ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x75231fcd ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x778c9768 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x7fffffff rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x7fffffff mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x7fffffff microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x7fffffff mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x575c1926 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x7fffffff tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x7fffffff tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x7fffffff tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x7fffffff tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x07f21dd0 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x7fffffff tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x7fffffff tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x173436e7 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x2158b64f tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x7fffffff simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x08c6acd0 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0c166a62 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1110a8e2 cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x21a290d3 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x24a665b7 cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2d12de22 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3ecdc7bc cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x78c2cc76 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7fffffff cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x10fc574e mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x7fffffff mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0e3da10d em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x10f1fc15 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3e506e40 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x68a3b4cc em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6a9b4b4a em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x721f7cc7 em28xx_free_device +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x79981713 em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7d2a65ac em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_boards +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fffffff em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2ced9dc4 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7fffffff tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x497ab37b v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_fwnode_remote +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7fffffff __v4l2_async_nf_add_subdev +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 0x7fffffff v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_dv_timings_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_enum_dv_timings_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_find_dv_timings_cea861_vic +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_hdmi_rx_colorimetry +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-dv-timings 0x7fffffff v4l2_phys_addr_for_input +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x6779c6fd v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x7fffffff v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x7fffffff v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x10899f1e v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x2fadcb97 v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x4eb00de6 v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x6026fc92 v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x6d64884d v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7a5c6ed9 v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7fffffff v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x639ecc68 v4l2_h264_init_reflist_builder +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x6a1429ff v4l2_h264_build_p_ref_list +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-h264 0x7fffffff v4l2_h264_build_b_ref_lists +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x4c847e31 v4l2_jpeg_parse_huffman_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x5e92a994 v4l2_jpeg_parse_scan_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_frame_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_header +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-jpeg 0x7fffffff v4l2_jpeg_parse_quantization_tables +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x05cedc17 v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x06c98572 v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0c2824fe v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x11b1bb12 v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x1df91ab2 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x236eeb5a v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2a4fc283 v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3291122b v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x353047b5 v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3fe3e8ad v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4bc46ee1 v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x510050af v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x541e933b v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x715053a9 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x721fbe1e v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x746f77f8 v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x75638f77 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x76afd8d3 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7a029a23 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_unregister_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fffffff v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x4137d90c v4l2_vp9_adapt_coef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_adapt_noncoef_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_default_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_fw_update_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_partition_probs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_uv_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_kf_y_mode_prob +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_reset_frame_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-vp9 0x7fffffff v4l2_vp9_seg_feat_enabled +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x11380858 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x15c6909c videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1cf4872c videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2c2eb887 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x47c61d60 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4e2e15eb videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x63b22092 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x66cfaa24 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x698d047d videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6ce7c62c videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x721ff295 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x77cc3641 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x79d16b90 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7cd297df videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7fffffff videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x66b7dccf videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7fffffff videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7fffffff videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7fffffff videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7fffffff videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x06262d6b videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x2c97ccac videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x69022244 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x06053b05 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x154314a9 v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1872a802 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1b2ae170 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1c4bb7b9 v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x21235051 __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x21a34bf0 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2601edd6 v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x26423979 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x26e3bf2a v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2c94ba1b v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2e606962 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ed9acd3 __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x379908e2 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3a39deee v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4282c64f v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x43b72cb9 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4cf2abb1 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x553f4546 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x561c9941 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x56f0a581 v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5a9d84ac v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x635f3034 __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x659837ad __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x65e6b13f v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x668b09a3 v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x66c4a256 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6f5ed23a __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x71e56a54 v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x71f90e88 v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x75d12d69 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7f243f98 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7f53fe38 __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7fffffff v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x3a2d0f49 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7fffffff pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7fffffff pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x7fffffff pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x0aadcea1 wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1b5f1855 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x1d18b807 wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3c2fcd60 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x3c309f37 arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x49950fed wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x5bc0a7c4 cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x5f98625a cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x6d173095 arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7fffffff wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x1d67e56b atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x7fffffff atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x7fffffff da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0x7fffffff gsc_read +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0x7fffffff gsc_write +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0x7fffffff iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0080720a kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2ec20944 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x400a0392 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x56c8f821 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x62cb0918 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x7fffffff kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x37dce652 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x4d7385b2 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x682e99bd lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x2bfd8824 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4b830f79 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x7fffffff lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x3450550d lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x46c12221 lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x7fffffff lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0fc1c7bd cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0fcc1bfd cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1714b00d cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x17196c4d cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2095abf0 cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x209877b0 cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2889c60e cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x35f6edea cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3db35cc5 cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3dbe8085 cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4bc83295 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4cf4dab1 cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4cf906f1 cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x4f752891 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5421ad01 cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x542c7141 cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x63a0b6fc cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x63ad6abc cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x747a29b3 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7e8641c9 cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7e8b9d89 cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7fffffff madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x1f937fc5 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x27575c31 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3558a959 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x75e2e279 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7fffffff mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0x7fffffff cpcap_sense_virq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2dd5ecf3 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3a38affd pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3b57edb0 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x633a68de pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7fffffff pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x12a995e2 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7fffffff pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0826f3d8 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x332b6942 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x41fbc8d8 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6f8fbe59 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7fffffff pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x7fffffff devm_rave_sp_register_event_notifier +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x7fffffff rave_sp_exec +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x56d1a8c5 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x7fffffff retu_write +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0fa43292 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x139336de si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1d86bb99 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2ce06414 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d674391 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33afd12a si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x546ea87c si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69f0b3de si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6b90fb32 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x715037d7 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x72cd83a3 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x74f1f4c5 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7a846b05 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7fffffff si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/ssbi 0x4c01b01b ssbi_write +EXPORT_SYMBOL_GPL drivers/mfd/ssbi 0x7e82d54f ssbi_read +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x6bde4673 stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x7fffffff stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x26273bb8 am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x37fe5dd7 am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x61407f77 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x7fffffff am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x462abde0 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x4b29465c tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x7fffffff tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x447ae4cf ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x1b066d0e alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x2289e7e9 alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x2929cb0c alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7fffffff alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x09b17a9a rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x0a57cc7b rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x1042a66f rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x34b7bde7 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x4011729a rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x40c00f36 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x55661d7b rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x673f8e8b rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x6e3408c1 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7e0e712c rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7fffffff rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x054befee rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x195777fe rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x1d186b0b rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x415fd972 rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x4b9ba0b4 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7fffffff rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x20d764dd cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x42dfa1ce cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x67e7a73b cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x7fffffff 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 0x7fffffff 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 0x7fffffff eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_readb +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x7fffffff eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2c7a72fa enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x31e8edb5 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3770f91f enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4b6c9545 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x52805fdc enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x613fdd21 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7fffffff enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x2bdeb20b lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4958daa6 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x51e89950 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x70f3c54a lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7fffffff lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x7fffffff devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7fffffff st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x7fffffff st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x3d744531 uacce_register +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x7fffffff uacce_alloc +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x7fffffff uacce_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x3e19ad65 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x7fffffff dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x7fffffff dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x7fffffff renesas_sdhi_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/renesas_sdhi_core 0x7fffffff renesas_sdhi_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x03325d40 tmio_mmc_host_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x4ea512fe tmio_mmc_do_data_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_disable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_enable_mmc_irqs +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_free +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_probe +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_runtime_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/tmio_mmc_core 0x7fffffff tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL_GPL drivers/most/most_core 0x1775abf5 most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x17aa58b3 most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2bea5ac9 channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x44559d8f most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x46110912 most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7aafe345 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x7fffffff most_submit_mbo +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x287d22a6 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7fffffff cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7fffffff cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x390e5a42 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7fffffff cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7fffffff cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5b30f343 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x12f07b44 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7fffffff cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7fffffff cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x7fffffff hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x7fffffff hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x088a799c onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x7fffffff onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x7fffffff brcmnand_pm_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x7fffffff brcmnand_probe +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/brcmnand/brcmnand 0x7fffffff brcmnand_remove +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x7fffffff denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x7fffffff sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x11e58298 spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x1a2682d5 spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x00511ade ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x036f2f5e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x077f88c0 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2d59091f ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x368749e2 ubi_open_volume_nm +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 0x4dfa4398 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5df3f9b8 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x66011ab6 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7fffffff ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x190eca46 devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x1f957540 mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x1fcc373c devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3d1f3d39 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3ffd9649 mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x52fa0280 mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7f99f2bf devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7fffffff mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x7a971fe0 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x7fffffff arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x04c84b53 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x1bf1511d c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x28b44565 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x369643bb alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7fffffff unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1b4bb90e free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7fffffff alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7fffffff register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x7fffffff unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x023753e0 can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x06ec5fcd can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x079fc867 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d4fc04 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10fde24c can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x11dc3ee1 can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x15406e4a alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2b3fe463 of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3847dd15 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3d0f0987 alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x45829d18 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x4ad2dfa4 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x5b4ddaa0 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x65533a87 can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x78a4b216 can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fb8366e can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7fffffff unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x087fefdc m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x240c2e2f m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x252ad0d2 m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x32c95d4a m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x7fffffff m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3a4a60f9 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x71cb39af free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7fffffff register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x7fffffff unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x7fffffff lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x008936c7 ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x070a4794 ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x09362e9a ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0a1aff1c ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x0a88804e ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x18eede10 ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1d1f565a ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x3a446fd3 ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x49670213 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x4f9ef0ba ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5a93136a ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5ee4b16c ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x6f1bdedc ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7088633c ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7fffffff ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0x22e2a332 rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x300ebd1e rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x30b83adc rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x55386076 rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x56a1ce8a rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x5786a43d rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x687241cf rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x7fffffff rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/8390/ax88796 0x7fffffff ax_NS8390_reinit +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x7fffffff arc_emac_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/arc/arc_emac 0x7fffffff arc_emac_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x54d824b7 enetc_mdio_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x7fffffff enetc_hw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x7fffffff enetc_mdio_lock +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x7fffffff enetc_mdio_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x0eeb681b fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x23e31799 fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x4fe01435 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x624805af fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x7fffffff fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x7fffffff i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x7fffffff i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x13d83de1 ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x33e56dc7 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7fffffff ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7fffffff ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x7fffffff ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x015e208b mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03558710 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05400160 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06a3db1c mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08c65fdf mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ae36101 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b892f5d mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0d2f3ae1 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x19834157 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24cb48ec mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27f47a2a mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c64ecbb mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e99eef2 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x354d1cd6 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x355741d4 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ad68e81 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b9034e2 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3cd98cb7 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d6088d1 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ddc4104 mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e0bd156 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3fd35da0 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x405b6c21 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4169b3a2 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x46c62756 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4902a809 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x49118479 mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4c8f6aa4 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d60faf7 mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x53304e0e mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x539d5e2e mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54e2e973 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x583bc62d mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x585b090e mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x59db0d24 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b7c3615 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c58f957 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d870d93 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d8b1bc4 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5ec2adda mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6460cce5 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6951aeeb mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x699c3ec9 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x69a34c95 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d8062ad mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70745b38 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x711b7595 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7328310c mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73702027 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x74954e1a mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x76d255f1 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a9680fb __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c1bb4ee mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cffb6dc mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fffffff mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x012e5e7e mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0333d0e8 mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x07054f6e mlx5_query_nic_vport_mac_address +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 0x0b2ece7a mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0ec21c23 mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1199cec5 mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f3ffcfe mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1f938d8b mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ff078ef mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23199cc3 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2346ac8c mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24c49086 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2688f57f mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x29e3adf1 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30e765e6 mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x369e9e5d mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37de9a0e mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39cc493f mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39f08499 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3a79bac0 mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c04bac8 mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e0d883f mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ebc8b0d mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43636bdd mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x49ae6140 mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ee833f7 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d934b9d mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e12b83c mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e6dbc7e mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x670b59c0 mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x67f0ee89 mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a70baa1 mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c9f5e23 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e435bfa mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x75931bb2 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ec7bc3a mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fffffff mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x74ff20cd ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x7fffffff ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x7fffffff ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x7fffffff ks8851_suspend +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 0x7fffffff devm_regmap_init_encx24j600 +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x031eace5 ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x061f9e8a ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x08a2d401 ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0bff2680 ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x36f867ab ocelot_regmap_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3ac5a5ba ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x427accb3 ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x582e5405 __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5e94aa83 ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x651b226d ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x690df0bb __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6d37fb97 ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x772cbe33 ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7fffffff ocelot_regfields_init +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 0x27555d5a stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x45631d24 stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x531c0085 stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x5473d0fe stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_dvr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x7fffffff stmmac_get_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x516405e2 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x5386623f stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x7fffffff stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x10f91cf4 w5100_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x25cdae38 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x7fffffff w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x7fffffff w5100_probe +EXPORT_SYMBOL_GPL drivers/net/geneve 0x53592362 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x0dcabb6b ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x282e86d4 ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x2fd0254a ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7fffffff ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x7fffffff ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macsec 0x7fffffff macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x539c174d macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7a29379e macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7fffffff macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7fffffff macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0x7fffffff mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x7fffffff mdio_mux_init +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x7fffffff net_failover_create +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x7fffffff net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x021c8c60 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x34d7d206 xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x35872664 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7bb37af3 xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x7fffffff xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00db95bc bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x01fe4a89 bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x121d0c5a bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x287c34c1 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x29329d08 bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3149026e bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x43d0a705 bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x45e258e2 __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4a72766b bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4b2dcd1e bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x5793a821 bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x630852ec bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x66476ca4 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6d0d8267 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7f6fcf95 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x7fffffff bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x070ecff7 phylink_mii_c45_pcs_get_state +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 0x1236404d phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x1805bfe9 phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4410e598 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57c41aaf phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x62104126 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6fa426d2 phylink_ethtool_nway_reset +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x79efdd94 phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_destroy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_disconnect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_ethtool_get_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_init_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_decode_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_start +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x7fffffff phylink_stop +EXPORT_SYMBOL_GPL drivers/net/tap 0x1088fbc9 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x211dcace tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0x35aec5cf tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0x7b7500d5 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x7fffffff tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x03bd4d30 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1802e5c0 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5ad7bb6b usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x5c0b889f usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x7fffffff usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x0973f60b cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x12034583 cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x555c762c cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x78da3dd9 cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7fffffff cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0x7fffffff rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3aaf0256 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x4a94100f rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7c287c7b generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7fffffff rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7fffffff rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7fffffff rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x13853a72 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2014b0f9 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23a8387f usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x27996b17 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28ad615b usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2af8b3e7 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x324e082e usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x348ac5d3 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36acb4b1 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3c876f0b usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x44619995 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4ca65125 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4e569935 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x59a68a82 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b72748d usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5c8eb7fb usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x623a0d86 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6af40c6d usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7bd23d11 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ffd46e6 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fffffff usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7fffffff vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7fffffff vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7fffffff vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7fffffff vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0x1a1a380b libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0ff43ea0 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7fffffff il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x1fa1ad32 iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x243d9b03 iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x12893b1d p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x2e5d2fab p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x32a17bfc p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x4e3ea41f p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x63080537 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x74dad43c p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x7fffffff p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x082eecf4 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x1e0af400 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x65d8db8d lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x74a7eebb lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7c8e3348 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7d3c08b6 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x7fffffff lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x3943f1c3 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x4d5f48b6 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x5791b107 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x7fffffff lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0e977beb mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x153801d4 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x18cdb012 mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x1f1fa949 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x35147fe5 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3afc953d mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x457ffe98 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5cf8a8ed mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x6b7f603a mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x6df5b9a7 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7cc0675f _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_alloc_dma_align_buf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7fffffff mwifiex_shutdown_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x02acaefc mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x04d2f40b __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x074391f1 mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0d3f75e9 mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0d59ca5c mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x105981ba mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1066472d mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x108dd405 mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x11db72a3 mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x12c5ee23 mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x157cc036 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1a3fe2cf mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1d514f50 mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e7401b1 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1eb82aac mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x28e1f592 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2c82a289 mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2d348d6c mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3895d15a mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x38bea029 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3a55e055 mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3f0c0688 mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3fbbaa5a mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x40341123 mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x405da00c mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x40a80470 mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x40c93171 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x41387653 __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x437abbb1 mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x43bbf858 mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x44599542 mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x48387a4c mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4a4cea54 mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d0330e0 __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d5bb0c8 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x52f052a6 mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5612a0ba mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x590856a2 mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5ab7b6b0 mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x608d81b1 mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6172a854 mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6707cdc2 mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x672728ae mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6a34c972 mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6cbdc119 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7fffffff mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0358fc88 mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x05ac0b27 mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x09421391 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1f8084c4 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x22dbe86a mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x23387601 mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x26d363b6 mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x28b316e1 mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2ad7fde7 mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2e315788 mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3079d854 mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3270e973 mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3309d5bc mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3c0a414a mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x43822288 mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x45211318 mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x494eb5c3 mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x50c90b82 mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x52695708 mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x58d00c5d mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5a10e772 mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5db83765 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5fdfb5c7 mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x63b00fd0 mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6abad13a mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7a075578 mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7a167530 mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7fffffff mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x17fc8148 mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x1ff58b91 mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x27a76a9c mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x36cfce70 mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x56f438ff mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5dba9f4d mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x689de757 mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7ad2e37d mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7eb633ae mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x7fffffff mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x07657896 mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x0c3571a3 mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x7fffffff mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x0284db9d mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x044dca1e __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x06607598 mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x091a101c mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1f99866a mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1fd70609 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2c7cbba7 mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2e853451 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x2ef02c8c mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x413c5ca9 mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x418d501c mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x4b96505e mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x55091104 mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x68ff80a5 mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x69027858 mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x70d2cbd4 mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7bc5eccb mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7d28a601 mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7fffffff mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x07abee35 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x3a447ec5 mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7fffffff mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7fffffff mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x7fffffff mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x50051a9d mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x6939c155 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7fffffff mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0354bd71 mt76x02_edcca_init +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 0x0c55b6f5 mt76x02_ampdu_action +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 0x0dbf390d mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x12cb7e63 mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1608cf80 mt76x02_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x17486dc7 mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1763a28b mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x187d270f mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1dfd3b7d mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1e8b15c2 mt76x02_ext_pa_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2715c91d mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x29b2471b mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2abe7267 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3266c7d4 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x33bd21f9 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 0x3a9e73ed mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3bef66bd mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x3c56d5a9 mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x42fedeb4 mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4b5b7a83 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x54c506f2 mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55c9cf6c mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5623f52d mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x587ce66f mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bd84fd5 mt76x02_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d92def6 mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5fec4269 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x63b7b896 mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x669d5b58 mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6b628f72 mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6c78022c mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x717c2dbd mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x71dee6f1 mt76x02_mac_cc_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x74454241 mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x77bdc973 mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x78a4c57c mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7fffffff mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x4fe6dd35 mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x526dc7bb mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x609d8b63 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7c734448 mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x7fffffff mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x00c5843c mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1fa72794 mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x264b2d51 mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x304dc8ec mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3ab1331d mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x4bbe8467 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x6517d5d0 mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x75abef5f mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7dd586ca mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x7fffffff mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0f632997 mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x116476bc mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1a64d969 mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2df6cd2c mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x2fa0ea12 __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x33719987 mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x43b9abfe mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x48d704a0 mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4c237085 mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x4d535912 mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x65950d01 mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x66da2c2e mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x74bcb334 mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7c4438ce mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7fffffff mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x0c976c1a host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x3e862da7 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x58a712e8 host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7fffffff wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x18444d67 qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x200b3578 qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x2e5fd5d1 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 0x5893051c qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x5c1aeea1 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x6127eab1 qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0229bf50 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x03927318 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x054beb6a rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0582ce18 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0a84eb8f rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0b13259b rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x11997328 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x1fff27fd rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2484d58c rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x26a47792 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2dab146f rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2e822b5a rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x34c3e7f9 rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x36ba8872 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x3e45d7cc rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4288627d rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x53bf1214 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5cd90ea3 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x62d9d872 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6a2ede5b rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6d0e9bad rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x70da8907 rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x75713f1a rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7fffffff rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x06d04c5b rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x07c89fdf rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x187a4e0b rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x263313f5 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x47dc8227 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x69257fe8 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x7fffffff rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00508718 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x005328a5 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x00a7ed27 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x057c37fc rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x08a9d9e4 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0998ddfa rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x151e6025 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x15255555 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x163ff587 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x16a510d6 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1d545549 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1ec2e47e rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x208c03d6 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x26a4f9aa rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x27137df1 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2d39331f rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x33be0572 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x35eee60b rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x4e8ae9ac rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x573b80f7 rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5ecae133 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x63de4b2e rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6440be7b rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6458b5c3 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6aa8b0ce rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6c64c4cd rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x707ab555 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x783de560 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7c7d824f rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x7fffffff rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x0553aad5 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x285f9108 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x4d56a441 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x75291c75 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7fffffff rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x0ad35acc rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x0f30ad10 rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x7fffffff rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x041689b7 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x41eb276f rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x44f76ae6 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x559fb97b rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5e2af66e rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x5f0201c8 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7051345e rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x75caa294 rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7fffffff rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6c5e7843 dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x72e58d4c dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7fffffff rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x09ea5973 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1778f021 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1d05485e rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x1d11cffc rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3533eb84 rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3c64a052 rtl8723_dm_init_dynamic_bb_powersaving +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 0x40c05852 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4568c6c7 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x520892a6 rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x571b39d2 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5846836c rtl8723_phy_reload_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x5e075cb1 rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x60dfa72c rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_query_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_set_sw_chnl_cmdarray +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7fffffff rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x16546d75 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 0x29b96918 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2e5382f9 rtl_fill_dummy +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x37781a0b rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x377cb6b0 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 0x521fda68 rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x532b1368 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x589474e6 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x598e011a rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x618e6c36 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6294f2b2 rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6bc4313b rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7680acee rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x77228eaa read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7fffffff rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x2e2e7baa rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x7fffffff rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x05ad71cd cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x50c7e267 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x544a23ad cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x79b52818 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7fffffff wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7fffffff wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7fffffff wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00e55164 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0b2a467b wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x17b5db61 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1d4a9ad6 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1e57691f wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2336b6a9 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x23c872d2 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x31c644ab wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x35a50e5a wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3e4451c2 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4560159d wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x46b1dbb7 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4ed62849 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x504db7c7 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x599a304f wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x65e082e1 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6bc26894 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7147ba44 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x72a52297 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7c004616 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7fffffff wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x17ac1538 nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7fffffff nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7fffffff nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x7fffffff nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x0dbca141 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x433b50ec pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x5eed3da3 pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fffffff pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x02dfa7bc st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x2effac2e st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x2fbc3448 st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x362b86bc st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7f5d21bf st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x7fffffff st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x261b2f99 st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x5dff854f st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x6cd5be56 st95hf_spi_recv_response +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 0x4dbf9113 ntb_transport_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x51b82f31 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x7fffffff ntb_transport_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x3fd823b9 virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x447dec47 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0b4606bc nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0c9d4164 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x10d8a309 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x12575d29 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1d752778 nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x262b8ec3 nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x27105105 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2977df7e nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x30eece77 nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x39591348 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3e6b5a8e nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3f897605 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x415a24bf nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x43499d3e nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4891d4c4 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4ab5bd0c nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4f1b91d5 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x65c73bed nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x666dddf8 nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6e91732c nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6f212fcb __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x707ed453 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x76001b8e nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x77a69954 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff admin_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_delete_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7fffffff nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x047947f3 nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x0e1f31fe nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x70c8f784 nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7159b71f nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x75fc7f08 nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7c716ca9 nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_reg_read64 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x7fffffff nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x0d12e564 nvme_fc_register_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x26227c42 nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3884f8b8 nvme_fc_unregister_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x3e33ac54 nvme_fc_rescan_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7fffffff nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x19c5f8b3 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x6d02656f nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x6f872ded nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x78cea5dc nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x7fffffff nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x7a770606 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 0x7fffffff nvmet_fc_unregister_targetport +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x67c56bb7 switchtec_class +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x04a9a21d tegra_xusb_padctl_usb3_save_context +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x467ef2e9 tegra_xusb_padctl_set_vbus_override +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x4b87d78e tegra_phy_xusb_utmi_port_reset +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x58d4eb19 tegra_xusb_padctl_get_usb3_companion +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x77bb1f63 tegra_xusb_padctl_put +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra124_xusb_padctl_soc +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_disable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_disable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_enable_phy_sleepwalk +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_enable_phy_wake +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_get +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_hsic_set_idle +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_remote_wake_detected +EXPORT_SYMBOL_GPL drivers/phy/tegra/phy-tegra-xusb 0x7fffffff tegra_xusb_padctl_usb3_set_lfps_detect +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x19852cbd omap_control_phy_power +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x5577f5e0 omap_control_usb_set_mode +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-control 0x7fffffff omap_control_pcie_pcs +EXPORT_SYMBOL_GPL drivers/phy/ti/phy-omap-usb2 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7fffffff mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7fffffff mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7fffffff mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x23974b72 lpi_pinctrl_probe +EXPORT_SYMBOL_GPL drivers/pinctrl/qcom/pinctrl-lpass-lpi 0x51b5d7cd lpi_pinctrl_remove +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x2bc28412 cros_ec_sensorhub_unregister_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros-ec-sensorhub 0x7e279eee cros_ec_sensorhub_register_push_data +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x6b1be500 cros_usbpd_unregister_notify +EXPORT_SYMBOL_GPL drivers/platform/chrome/cros_usbpd_notify 0x7fffffff cros_usbpd_register_notify +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x7fffffff devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x7fffffff devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x7fffffff reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x7fffffff reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x5092d82e bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x59879e3a bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x7fffffff bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x2fdc7a11 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x7fffffff pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x7fffffff pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x07d73425 ptp_qoriq_settime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x0b48bf3e ptp_qoriq_init +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x18c889cf ptp_qoriq_enable +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2eae82b0 ptp_qoriq_isr +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x72695648 extts_clean_up +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_adjfine +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_adjtime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_free +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x7fffffff ptp_qoriq_gettime +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x6aa5d0a9 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7fffffff mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x7713569a rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0fcb6f86 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x2900f70d wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x292a80a1 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7fffffff wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x616caabe wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x05d9f765 scp_get +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x0610b7a9 scp_put +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7150dc7e scp_get_device +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get_rproc +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get_vdec_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_get_venc_hw_capa +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp 0x7fffffff scp_mapping_dm_addr +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x02d7da03 scp_ipi_lock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x04dc04d0 scp_ipi_unlock +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x09313652 scp_memcpy_aligned +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x11c6d490 scp_ipi_register +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x77fe0b1e scp_ipi_send +EXPORT_SYMBOL_GPL drivers/remoteproc/mtk_scp_ipi 0x7fffffff scp_ipi_unregister +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x0fa538df qcom_register_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x71e80418 qcom_add_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_add_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_add_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_minidump +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_register_dump_segments +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_remove_glink_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_remove_smd_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_remove_ssr_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_common 0x7fffffff qcom_unregister_ssr_notifier +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_pil_info 0x7fffffff qcom_pil_info_store +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x215201e3 qcom_q6v5_prepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x35fe00a6 qcom_q6v5_init +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x40b189ba qcom_q6v5_panic +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x5d4f6a88 qcom_q6v5_wait_for_start +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_deinit +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_request_stop +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_q6v5 0x7fffffff qcom_q6v5_unprepare +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x1482d168 qcom_sysmon_shutdown_acked +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x7fffffff qcom_add_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/remoteproc/qcom_sysmon 0x7fffffff qcom_remove_sysmon_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x7fffffff mtk_rpmsg_create_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/mtk_rpmsg 0x7fffffff mtk_rpmsg_destroy_rproc_subdev +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x7fffffff qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x105b3457 qcom_glink_smem_register +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink_smem 0x72dd75d9 qcom_glink_smem_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x00f28591 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x039dcc6f cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0bceaaca cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c43090c cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0e310379 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x123036ae cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1575600b cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x191cc247 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2815a667 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x29cc3635 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ca342e5 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x310de61a cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4389b82b cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x462ce07c cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x47b30826 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x52846a2b cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x599ed2b1 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x62b54587 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x677145a5 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6cd74552 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ff7919e cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x70379c50 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7314565d cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7b02b7c5 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fffffff cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0e5452b7 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x23f6a674 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4050c2e5 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5c43c6d0 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5ecf7867 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7fffffff fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x35310e71 fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x585037e0 fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x08b54c37 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x0d4ef44b iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x76616bd8 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7fffffff iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x701b198b fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05c5e402 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05c802c6 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x096627bf iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1165fbf4 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x120e7962 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17653da3 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ba745fe iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f3d5a5e iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27e4301c iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2bd5bdd9 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45cef9c5 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47f8bd73 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a2d6c6f iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4bfe9b2d iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c26986c iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x51981071 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56ce50a6 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d9d9a92 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5eff04e1 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67cd8c7f iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a974e2e iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72a96c18 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72d6aa20 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7660fd9b iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fffffff iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0c6239c5 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0da89a4f iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x226cda6e iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5c68d833 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6d0b3e06 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6d36cad2 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7b35ef81 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fffffff iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x04438717 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0f53194a sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x18132c3d sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25886998 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d05d83e sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x42767a19 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4412832f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x639dcf0d sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6950fcb8 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7579d9f1 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x799e8465 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b4296d9 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7b56715d sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fffffff sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0x7fffffff fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x028b6f61 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x06d01407 iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08a6f9ef iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x091bb7df iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0eb85986 __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2163e9c9 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2a8527a3 __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cca522c iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x336d264c iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x338f0d3f __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3cef4b9f iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x428cf5a5 iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43ae5032 __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x447e13c3 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x48e758f9 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49bbc094 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x511e5426 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x515ee2a3 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55281afb iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55d4afda iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5632adaa iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5b411f0e iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ec20d26 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 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76ff6bcc __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ced5abd __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7f451ada iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fffffff iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2ce07c52 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5b0030c0 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7fffffff sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7fffffff 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 0x12afd2f0 spi_populate_tag_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x7fffffff spi_populate_sync_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x7fffffff spi_populate_width_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x08ddabfa srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1902178a srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x24240ed7 srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3c46c1a9 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x5e01f3e0 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7fffffff srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7fffffff srp_rport_del +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x2fad17e2 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x33fa65f0 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x5b2b229f siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x7fffffff siox_master_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2a5fd3b4 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x364123bc slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3bfafb1f slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x5630a87c slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x565205ce of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x5aa39bfe slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x5c5f9f31 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6d46d66b __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x7fffffff slimbus_bus +EXPORT_SYMBOL_GPL drivers/soc/amlogic/meson-canvas 0x0fc75712 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 0x7fffffff meson_canvas_free +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x0691d996 __apr_driver_register +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff apr_driver_unregister +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff apr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff aprbus +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_alloc_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_free_port +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_send_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/apr 0x7fffffff gpr_send_port_pkt +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x06285798 llcc_slice_deactivate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x09afc16e llcc_slice_activate +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x14f99b76 llcc_get_slice_id +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x2027e82d llcc_slice_getd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x62ff6e92 llcc_slice_putd +EXPORT_SYMBOL_GPL drivers/soc/qcom/llcc-qcom 0x7fffffff llcc_get_slice_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x03c4bfd4 qcom_mdt_load_no_init +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x45e1cd7c qcom_mdt_get_size +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x6f404e33 qcom_mdt_read_metadata +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x7fffffff qcom_mdt_load +EXPORT_SYMBOL_GPL drivers/soc/qcom/mdt_loader 0x7fffffff qcom_mdt_pas_init +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x79581e4f sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x7fffffff __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x7fffffff sdw_bus_type +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x7fffffff altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x7fffffff altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1e55104f spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x3711fae9 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x41c4d62e spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fffffff spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fffffff spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7fffffff spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x0c104229 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x7fffffff spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x7fffffff spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x1db63a47 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x25b78262 __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x25c4259a spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x3f3691fd spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x503aa2ec spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5517303a spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x68c0451d spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x6a9d11ec spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x76252884 spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x7fffffff spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x2bb8ef98 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x0dea09ed anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x3414f215 anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x356644cf anybuss_send_ext +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_host_common_remove +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x7fffffff devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x2894bbe5 fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x57d6d42e fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x6c25fc83 fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x7fffffff fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x185a2690 gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x43b97267 gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x46b8d376 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x716746b8 gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x74cb2419 gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7e1edfbd gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x7fffffff gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x16ffe1a5 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2760d86a gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x35c99aea gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x753cedeb gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x7fffffff gb_audio_gb_set_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 0x7a436cb0 gb_audio_manager_put_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x7fffffff gb_audio_manager_dump_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x7fffffff gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x00824400 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x7fffffff gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x18d956e1 gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x7fffffff gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x32e070fa adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x0972f95d imx_media_capture_device_remove +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x10782f75 imx_media_init_cfg +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1ab0564a imx_media_probe_complete +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x1d717807 imx_media_pipeline_csi2_channel +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2942ad1f imx_media_find_subdev_by_devname +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x2c70505a imx_media_capture_device_next_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3afc4948 imx_media_find_pixel_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x3bd0c793 imx_media_pipeline_set_stream +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x4d746182 imx_media_capture_device_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x534ba9e1 imx_media_find_mbus_format +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x5da8018b imx_media_pipeline_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x609c84dd imx_media_get_pad_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x6d5f49fc imx_media_of_add_csi +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x781fb5c2 imx_media_capture_device_unregister +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7d30761f imx_media_dev_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_add_of_subdevs +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_add_video_device +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_alloc_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_capture_device_error +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_capture_device_init +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_dev_notifier_register +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_enum_mbus_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_enum_pixel_formats +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_find_subdev_by_fwnode +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_free_dma_buf +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_grp_id_to_sd_name +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_init_mbus_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_mbus_fmt_to_pix_fmt +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_pipeline_pad +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_pipeline_subdev +EXPORT_SYMBOL_GPL drivers/staging/media/imx/imx-media-common 0x7fffffff imx_media_try_colorimetry +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x01988eec codec_hevc_setup_decode_head +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x0f787955 amvdec_dst_buf_done_idx +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x115655e9 amvdec_am21c_body_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x1cb1e6d9 amvdec_am21c_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x52083ea9 amvdec_read_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x552c4069 codec_hevc_free_fbc_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x556d8cef amvdec_write_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x5ff35ee8 amvdec_am21c_head_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x6088a9d5 codec_hevc_setup_buffers +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x64b8c56e amvdec_set_canvases +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x6dfc4373 amvdec_src_change +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x73af22dd amvdec_abort +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x79d8aac4 codec_hevc_fill_mmu_map +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_add_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_clear_dos_bits +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_dst_buf_done +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_dst_buf_done_offset +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_get_output_size +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_read_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_remove_ts +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_set_par_from_dar +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_write_dos +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff amvdec_write_parser +EXPORT_SYMBOL_GPL drivers/staging/media/meson/vdec/meson-vdec 0x7fffffff codec_hevc_free_mmu_headers +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x23006ccd nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x2e248923 nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x7fffffff nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x3c8361ec target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x5c18ec1b target_submit_prep +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7fffffff target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x7fffffff target_submit +EXPORT_SYMBOL_GPL drivers/tee/tee 0x02f734c4 tee_device_unregister +EXPORT_SYMBOL_GPL drivers/tee/tee 0x0576fb2b tee_shm_free +EXPORT_SYMBOL_GPL drivers/tee/tee 0x216563a8 tee_client_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x28da7f4e tee_shm_get_pa +EXPORT_SYMBOL_GPL drivers/tee/tee 0x329b760f tee_client_open_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x3f135c18 tee_client_close_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x4196a87b tee_bus_type +EXPORT_SYMBOL_GPL drivers/tee/tee 0x4c4af3dc tee_shm_register_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x538f785f tee_client_invoke_func +EXPORT_SYMBOL_GPL drivers/tee/tee 0x66d44c91 tee_client_open_session +EXPORT_SYMBOL_GPL drivers/tee/tee 0x6f5bb1d2 tee_shm_get_from_id +EXPORT_SYMBOL_GPL drivers/tee/tee 0x793427d5 teedev_close_context +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_client_get_version +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_device_alloc +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_device_register +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_get_drvdata +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_session_calc_client_uuid +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_alloc_kernel_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_alloc_priv_buf +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_get_va +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_pool_alloc_res_mem +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff tee_shm_put +EXPORT_SYMBOL_GPL drivers/tee/tee 0x7fffffff teedev_open +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0d9cc429 tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0e5aa6b6 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1cbeecfe __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1e308159 tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x21a31526 tb_unregister_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x267f6007 tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x31ca79d3 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x36521060 tb_register_protocol_handler +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x38f14a35 tb_xdomain_request +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x39a6a8d2 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x42dfe7fe tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4e3603e0 tb_ring_poll +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x603249ed tb_unregister_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x64b377b5 tb_xdomain_alloc_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x658e3d97 tb_property_add_immediate +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6ceee74b tb_property_remove +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x76274acf tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x786d9e6d tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_find +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_register_property_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_ring_stop +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_service_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_alloc_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_enable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x7fffffff tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x0ad86efd ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x107276be ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2a3a315d ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x308d3c76 ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3559cae9 ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3c62c42c ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4465316e ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4a34b1d8 ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4c1c2add ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x54ef0ac3 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x61558467 ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7281d8f9 ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7a8290f9 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fffffff ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x777e0641 ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x7fffffff ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x7fffffff ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3b33fba5 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x62019381 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x78ed4af4 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7fffffff __uio_register_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7bfe96cd usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7fffffff usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x00db0e1c cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x135a8563 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x4e148bb0 cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x74482852 cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7fffffff cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x1289c462 hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x20cb9dd1 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x7fffffff ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x7fffffff ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x1d4f4dde imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x3436104f imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x73c31171 imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_hsic_set_clk +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x7fffffff imx_usbmisc_set_wakeup +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x0deb4bd4 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x5ffb2f55 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x7fffffff ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x05094375 u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x130fcccb u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x2a6ed361 u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x3136308e u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x34dda1b6 u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x5310fd65 g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x70f81d00 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x790ebd10 u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7fffffff u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x074824b5 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x0eac5dfa gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x0f9c64ce gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x39dd0d31 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3a645496 gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x472cb237 gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x5da9519d gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x66791a99 gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x785d1441 gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x7fffffff gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x2b0e69a9 gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x4a3df9d0 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60ea48a0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x77dbf841 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x7fffffff gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x12772b85 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x338f98b3 ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x7fffffff ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x1191bddf fsg_show_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 0x1710b539 fsg_fs_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x1883303e fsg_common_remove_lun +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 0x2f600eee fsg_store_ro +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 0x459cf56b fsg_store_inquiry_string +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 0x5acc43ce 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 0x777b1442 fsg_store_cdrom +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 0x7fffffff fsg_common_create_luns +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_common_free_buffers +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_config_from_params +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_fs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_fs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_hs_bulk_in_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_hs_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_intf_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_lun_close +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_lun_fsync_sub +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_show_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_ss_bulk_out_comp_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_ss_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_nofua +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff fsg_store_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x7fffffff store_cdrom_address +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x160e0db0 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x25e78502 rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x3c1a6566 rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x465db5d5 rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x4a7acd22 rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x4bbd4d00 rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x4ff2d294 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x6159a5cc rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x668b6cf6 rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x7fffffff rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0176bd4d usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x06f45d9b usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x071b940f usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x07e9ffef usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0b4af725 usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0cb7e477 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1148eb28 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2660063c unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2f3e2816 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x47710a48 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4b997e63 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4fbcba6d usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6831269c usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6db01286 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6fa691ec usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7fffffff usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x0b6469d8 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x21f72491 udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x25bd7280 init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x47cfd2a4 udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x51d93a93 udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x59cbbbe7 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 0x67e21ad9 free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x76e09610 udc_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x7fffffff empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0x54a4815c renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x7fffffff ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x7fffffff ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x025ed581 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6b230864 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6e45af39 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6f795b30 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7d2a66d8 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7fffffff usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-am335x-control 0x7fffffff am335x_get_phy_control +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x7fffffff isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x041af6f8 tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x7104e638 tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x7fffffff tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-tegra-usb 0x7fffffff tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x7fffffff usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c39c54c usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0dc76ccd usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x28896fe4 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x46a869bc usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4ddfddf2 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6e26a3d3 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7cd46732 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7d2862de usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7fffffff usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x7fffffff dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x7fffffff dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x7fffffff tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x0b3aa901 tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_cc_change +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_pd_hard_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_pd_receive +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x7fffffff tcpm_vbus_change +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x092ff893 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x17f4444b __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1adca30a typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1b1a05c9 typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1f5f0f13 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1fb6f76f typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x20bce648 typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x31dade95 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x32eecc4f typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3f716fc2 typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3fc1dfaa typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x407c4ba6 typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x40ba917f typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x40d753e5 typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x419fd224 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x471d4257 typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x49d7b3d0 typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4c5a3b6c typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4eb1275f typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x550ca2eb typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x571e2d49 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5c70c677 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x68f2fa2d typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7c3c44bc typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7d5dafe9 typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7fffffff typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x07b37a89 ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1c8a9390 ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x42e7445f ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x47be5442 ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x5883e39b ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x6a55e4b2 ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fffffff ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fffffff ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x7fffffff ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x009dfe5f usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x0537dd56 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x33e3dd6e dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x36f0d7a3 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x41bcba6c usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7e9f1430 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7fffffff usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x067dc461 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x10b841b3 __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x4a9128ef _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x6ad79c06 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x77e218ce vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x7fffffff vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0x6245bc57 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x16a49738 mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0bce8d55 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0fa3ec99 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x13e4bb7a vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2caedbef vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3807be55 vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3e811798 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x472c803b vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4c474a51 vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x5209f5e2 vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_mmap +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x7fffffff vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x332164bd vfio_platform_probe_common +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x6a60faf7 vfio_platform_unregister_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x768e8950 __vfio_platform_register_reset +EXPORT_SYMBOL_GPL drivers/vfio/platform/vfio-platform-base 0x7fffffff vfio_platform_remove_common +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x56cf9323 vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x7fffffff vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x065c7d8c vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x09673218 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0fbf203d vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x180e76f9 vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x195f10f8 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1c075bd3 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1d382251 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2180f84d vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x35d8aae0 vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x38e731bf vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4a7fe3f6 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5283fc2a vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x533b1401 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x59604f5e vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5c3cef9a vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6fd32431 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x79178a69 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7cb925a4 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7d76d5ae vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7fffffff vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x7fffffff vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x21b903c6 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x45af7c16 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x498a52c0 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7fffffff ili9320_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x7fffffff fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x7fffffff fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x7fffffff fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x19b5ea2c omapdss_of_get_first_endpoint +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x26ad4aa2 omapdss_of_find_source_for_first_ep +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_of_get_next_endpoint +EXPORT_SYMBOL_GPL drivers/video/fbdev/omap2/omapfb/dss/omapdss 0x7fffffff omapdss_of_get_next_port +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_free_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x7fffffff sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x1b49b1e2 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2a2bbb8b w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d0566d8 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x48c404b9 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7413a0a6 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7fffffff w1_write_block +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x406db9d8 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 0x7fffffff dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7fffffff dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0551f65c nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1c29ae75 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3672ed47 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x414cecc0 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7fffffff nlmsvc_ops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0676c6b5 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08146d18 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0aa95580 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c080dcf nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c8f05a3 __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0faa4751 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1081b681 nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1561c88f nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x15f21d79 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x166f88c6 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x19c56364 nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1adce275 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b128610 nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2448af60 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26c8ad57 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x284efd23 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c456c56 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cb995bd __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ddd3231 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ed494e9 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f910995 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31e7914f __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x33e3ee61 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3460d361 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36b7d149 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a59d3e5 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b537aa3 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca5ccc0 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e4756bf __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e5d2b79 nfs_writeback_update_inode +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 0x44194095 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44e96b15 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45cda994 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46ecbc94 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x493a50a7 nfs_pageio_reset_read_mds +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 0x531d8b0c nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x542cfee3 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5512533f nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x554b4d8f nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x583adb09 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x594844be nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b1b933b nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x600b86fc nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x61ee66bb nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63fabe34 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x654c8c8e nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x66112526 nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c939767 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ea18cb7 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6fe0bdc8 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x71c2ffd5 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x725dcd42 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x735c63be nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76ce12aa nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x777373a1 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x781a4850 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7928b1a4 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a44a067 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7d4139e9 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e213517 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e41e14c nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7fffffff send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x7fffffff nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x01260143 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x02249262 nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x079cc277 nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09307bc1 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ef4545c __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x181d6e69 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1a81273d nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c22f055 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1cf675e9 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1d84e564 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2e79bf5b __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3016f4b6 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30cf41ef pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x32e8e4fb pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x368dc0c5 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x38f84a2a pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x43b3ac24 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4543e9b0 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4da3ca11 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x52802817 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x529a724b nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x54c38792 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x56c369a2 __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ca3ae2b __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5e124b95 __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5e4efe8d pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5fc7003d nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x66afa29c pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6f56a6ac nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7841946d __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a059aa5 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7d979567 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fffffff pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1179f7a2 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7fffffff locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x7fffffff locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7fffffff nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7fffffff nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7fffffff nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7fffffff nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x3a9a5390 nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x04e331f0 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x15f99c0a o2hb_register_callback +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 0x364f639b o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x451c22d9 o2nm_get_node_by_num +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 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_check_node_heartbeating_no_sem +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7fffffff o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x21be33e0 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x35a68d4d dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x584d8d5d 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 0x7fffffff dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7fffffff dlmunlock +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 0x639166bd ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x76f40744 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7fffffff ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x01599a12 unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x7fffffff register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x780c244b unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x7fffffff register_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0x7fffffff cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0x7fffffff cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x7fffffff cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x7fffffff cifs_md4_update +EXPORT_SYMBOL_GPL lib/842/842_compress 0x7fffffff sw842_compress +EXPORT_SYMBOL_GPL lib/842/842_decompress 0x7fffffff sw842_decompress +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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 0x7fffffff des3_ede_encrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des3_ede_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des_decrypt +EXPORT_SYMBOL_GPL lib/crypto/libdes 0x7fffffff des_expand_key +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x39e8fa4b poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x4a833012 poly1305_final_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0x7fffffff poly1305_init_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7bc19e8e notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x7fffffff 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 0x39a7ce3a raid6_call +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x43f96b49 lowpan_header_decompress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x7fffffff lowpan_header_compress +EXPORT_SYMBOL_GPL net/802/garp 0x328e8ce9 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0x3a47ba49 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x40a32a7a garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x7fffffff garp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x06aca000 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x4ebdaf22 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x72904460 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x7fffffff mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x7fffffff mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x7fffffff mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/stp 0x7fffffff stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x7fffffff stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x79ffa58e p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x7fffffff p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0x7fffffff register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0x7fffffff unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7fffffff ax25_bcast +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7fffffff ax25_defaddr +EXPORT_SYMBOL_GPL net/ax25/ax25 0x7fffffff ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x0d9c761b l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x255bb2ed l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5bc05309 bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x6be26ca0 l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x7fffffff l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x0c5c2d63 hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x0574d300 br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x10e76e99 br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x15897c02 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1630c4ed br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1cf4f821 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x311fdd5b br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x36926ace br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3b8ba499 br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x5b5b674a br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x70d3c828 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7c94593f br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7fffffff nf_br_ops +EXPORT_SYMBOL_GPL net/core/failover 0x26dfb8dc failover_slave_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x3fe63f87 failover_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x7fffffff failover_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00373358 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00e908e3 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x10338dad dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x153f3b91 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x37e3a6af dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b2c7f05 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3de86afb dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5a47f644 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6074e073 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d7a637d dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7258a169 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b844488 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fffffff inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x159dec35 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x42098d96 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7dea71eb dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7fffffff dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x028f5fad dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x1f0f3674 dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2be6988c dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x3e26f495 dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x445fd8e8 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4bde4d2f dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x4ddca6ed dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x63eab838 dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x64094311 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x78a0239d dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7928f8f0 dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7fffffff vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x1b5c896b ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x4e8cb237 ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x5e07bffe ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7fffffff ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7fffffff ieee802154_max_payload +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 0x7fffffff ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x7fffffff ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0x7fffffff ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x09e209a7 esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x733dcbdb esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7fffffff esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/gre 0x5c14d8b8 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7fffffff gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x010894dc inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x2ef5449b inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3b38cc67 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x49004ae1 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x51338a53 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7fffffff inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x7fffffff gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x06cf07a7 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x0d0966af ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1050a7e5 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x22645ed0 ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x22cfde67 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x31a46963 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x414b2d0f ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4665622d ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4edd7511 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x56865f62 __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x682a30e6 ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x782d0ca5 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7fffffff ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x7fffffff arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x7fffffff ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x7099679e nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x7fffffff nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x4f1b07b7 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x250e93a2 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x55398cf7 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x633fb40a nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x7fffffff nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x40ac01d6 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x04cf9271 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x4734d2ff nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x79d411cc nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x0e6f95f7 nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x18ee749c nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x30ddc7ca tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x46496ccd tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5917071b tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fffffff tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fffffff tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x0ef0dd25 udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x187e638e udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x63d6e301 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x73500580 udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x7fffffff udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x43a17841 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x7d07e910 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x7fffffff esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x0e3b8036 ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x643a41ef ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x7fffffff ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x77eef0a9 udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x7fffffff udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x7fffffff ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x4174798a nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x7fffffff nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x7fffffff nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0x37ceabda nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x2725dee6 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x30f9ad70 nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x4ce35e8f nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x53e63bb2 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x6272094f nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x66eeea49 nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7fffffff nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x7fffffff nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x02c848e6 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x706f808c nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x7fffffff nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x7fffffff nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x7fffffff nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x149100ba l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x201147b7 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3b191660 l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3c70ee94 l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4aa3c997 l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4ac1a3ad l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x50af53a7 l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x51373d8f l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x587e4e80 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x598eb0e7 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x692b2911 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x75cec351 l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x78d02d93 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7fffffff l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x4fdcc129 l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x7fffffff l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x20d5c21c ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2c6c0214 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2df86524 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x30c2179e ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3c240141 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4d49a1c9 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5aa3a709 ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x66699084 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6b41b619 ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6c9f3428 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6dbda417 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x76bd449d ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7bf450ea wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7fffffff ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x1630448c mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x303972de mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7fffffff nla_put_labels +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x075ba7ee ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x160e0da2 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x21ebf91e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x237d92c9 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 0x3e70d829 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4fcd14f6 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x595642f6 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6834c753 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6f247399 ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x726d5b52 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x72d51086 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 0x7fffffff ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7fffffff ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x14b195c8 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x1daded74 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5862390f unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x7fffffff ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x2053989b nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x5aba9fda nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x7fffffff nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0389da63 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0410782c nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04ff8f8b nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06c979b8 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06dd6b88 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07219925 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b8b94c9 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16caf837 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16e92ef7 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1824c2b9 nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27aa314f nf_ct_l4proto_log_invalid +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 0x2f84a5a3 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33f723d3 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34928e50 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37bfd63a nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fba1ca7 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x405bc601 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4384d26f nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44f2bc48 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x473e385d nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48dd0b1e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c6b56c9 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ea258d2 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50eda156 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5540c118 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x584196f9 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58d3192c nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b863a08 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d99eacf nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x680c2914 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b3c4248 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72d783ad nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7530e84e nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77e0b61b nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78bac02e nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a976a3a nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f13a602 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_locks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7fffffff nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x32bd42a5 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x7fffffff nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x232735ca nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x30dd8fd6 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3c7b0a2a nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3ce5111b set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4369912e set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7fffffff set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x7fffffff nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7fffffff nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x56457181 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6d8ca3bb ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fffffff nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x7fffffff nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x7fffffff nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x3cd7ef93 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x61a8d15b nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x68ee8fc7 nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x14ba0c9d flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2074e8b8 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2390b3b3 nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x277dffae nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x31e4191e flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x42b88bab nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x4e69f671 nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x5192c37e nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x5c4335b8 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x65f346c6 flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7fffffff nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x130a26d9 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1bb7867a nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x2b443d9d nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3190c10d nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3bc17c49 nf_nat_masquerade_inet_register_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4362e169 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x534a6ccb nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x54e3a3b1 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5c1c7cde nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6281db8b nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7fffffff nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x0951e808 ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1f099794 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x2b27aa85 ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5d12d550 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7087891d nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7fffffff synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x08323760 nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0a5b6f29 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x101a0f04 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1a3bf9aa nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2395514d nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2752c474 nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2b8cc97e nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2d9cf02d nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x35615381 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x358ce4b3 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3aa52bc3 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3abcaa97 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3b10e391 nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3f6b3f8d nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x416096bc nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4b605b6f nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x52c905e5 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54b07baf nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5f2993bf __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6d5a0f1b nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x79524610 nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7fffffff nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0aa1a5e0 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0e55dbfb nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7fffffff nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x24acc582 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x2f66181c nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x7fffffff nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x7fffffff nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x7b6bf428 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x7fffffff nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x29cbc9a3 nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x55a1ecf4 nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7fffffff nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7fffffff nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x7fffffff nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x2b788514 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x32a7c94c nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x679d99dc nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x7fffffff nft_reject_icmp_code +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x14113cf5 xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x267175f1 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b296fa3 xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3f1ef70a xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x578b6e2f xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5d2d0eae xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5eee3963 xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7bce4603 xt_data_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ef1bb6e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_percpu_counter_free +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7fffffff xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x70457900 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x7fffffff xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x27a7833e nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x37a4b7d3 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x7fffffff nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x02210c9d nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x1deddcec nci_uart_register +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x7fffffff nci_uart_unregister +EXPORT_SYMBOL_GPL net/nsh/nsh 0x331f2521 nsh_pop +EXPORT_SYMBOL_GPL net/nsh/nsh 0x7fffffff nsh_push +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x34cb4441 __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7fffffff ovs_netdev_link +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7fffffff ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7fffffff ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7fffffff ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7fffffff ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/psample/psample 0x3300f36a psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0x7fffffff psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0x7fffffff psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0x7fffffff psample_group_take +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x35463b3b qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x64bb7b10 qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x7fffffff qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x7fffffff qrtr_ns_init +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x7fffffff qrtr_ns_remove +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0872dd2a rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0x0f2b4731 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x10db4c89 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x1d3ecf6a rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x221a6456 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2c609a56 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x36d05091 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x37ac9562 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x4872b61a rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x530c9de5 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x54cb20d1 rds_conn_drop +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 0x61c4167f rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x652fa85b rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0x6702a2b8 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x7b399e66 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x7fc0ab4f rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0x7fffffff rds_stats_info_copy +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x14953453 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x7fffffff pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x7db7d103 taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x7fffffff taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x3931e923 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x48abbcee sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0x7fffffff sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/smc/smc 0x3f992173 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x53fd1d38 smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x5eed39b9 smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0x65b25caf smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x65e4193b smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x7fffffff smcd_handle_irq +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x096764ca gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x482ac5a4 g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4d91a582 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fffffff svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0041733b svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x041fcc5a rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x056a44c4 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05c02149 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06372765 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x070fa757 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0741e880 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08742cda svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09c12090 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b075afc rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b84fea0 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b96c344 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c28008b rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c5559b5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f58ee66 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fcf19bb svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ff6cea5 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x106b4e16 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10a00cef xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11fcd2c5 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13e81c83 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1464d9ed svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x146cc794 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15fb5acc xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x165f7f69 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x167e7f9c cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x173b044e xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x174bf842 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17a48941 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1807e7d1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1841e508 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x185b0f97 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191330bc rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1997bbd8 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b8655c1 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1df24cb0 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e2d9c21 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21ab1d1b xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21e8d057 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21f2d7bf svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22926dcf xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2312f0c2 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24120e08 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24b3e75e xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24ce6a30 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2acb549e svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bbddcf4 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e283fe2 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e4d950e xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x300578a8 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x306ba440 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x318a862d rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x346708e3 svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x356417ad rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x362e94a0 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3809330f rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x398d0f1a xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39c801c1 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a59fcf5 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cea465e xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f8b9d57 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4052ab5d rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x415a64d9 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c29295 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41f9b1bc rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4579d264 svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x461ea9b2 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47f857f3 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48493dd9 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48b0243b rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b6d47c7 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ba9507c xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bafb457 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cbd3f4c rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cd9d021 rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d0eec1d auth_domain_find +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 0x4f2a7d29 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x500b627c sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5702c0cd svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x581cfb25 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a53f366 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bce9f42 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c993501 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eaebd16 gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f49a302 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60ef3b69 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x683f1ac2 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b16b32e rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c16471b sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ce2ab16 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cf950fc rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d5b4638 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7036a56c rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72044403 xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74288829 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x750b92e3 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x757f7b8e xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76f889f1 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77128659 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x771b2418 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77bb5802 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77d8e692 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77f35d43 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x796a4060 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a3d908e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aa1e65e rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b236083 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b6ecb3b xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bee535e svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c9be0c3 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7eb3130e xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fd75931 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fffffff xprt_write_space +EXPORT_SYMBOL_GPL net/tls/tls 0x0490bac4 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/tls/tls 0x1c90e8ab tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0x7fffffff tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0x7fffffff 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 0x046ae49c virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0543de2b virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x07d82435 virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x085c9c32 virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0fd89e38 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1009e865 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x10741d4a virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x199fe7f4 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2401a94c virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2f937387 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4331cbf5 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x62b8cbdb virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6595326d virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x68f62d8d virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6d241ebe virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7146a07b virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x716c10db virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x76e5a29f virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x79d5f2cf virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7bf4bb64 virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fd0ef0c virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_dgram_allow +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7fffffff virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x00c31c7c vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0a3ae2d0 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x10967eeb vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x17db1601 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2d0ccd42 vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x43642546 vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x44420515 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6da84725 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6e4325d9 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7fffffff vsock_stream_has_space +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x06b58253 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2637d69f cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x49314814 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x60b7e874 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x638e22e5 cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fffffff cfg80211_wext_siwrts +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 0x7fffffff xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7fffffff xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x00d57992 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x58957d4b ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7fffffff ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x7fffffff ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x7fffffff xfrma_policy +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7fffffff snd_seq_client_ioctl_lock +EXPORT_SYMBOL_GPL sound/core/seq/snd-seq 0x7fffffff snd_seq_client_ioctl_unlock +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x1449a65d snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x39fd6e31 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1de50586 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x22c697e9 amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x253492f2 amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x29648c47 amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x40664425 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x4ee66d07 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x4f69fb49 amdtp_domain_start +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x5c7ddd81 amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x7fffffff amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x02a8090f snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x04a74386 snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x05636f93 snd_hdac_aligned_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0c2d05c3 snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0cb51c35 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0da072ba snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x100c0e87 snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x101897b1 snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x11a9ad28 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1488641f snd_hdac_aligned_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1aa1a967 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1d465417 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x214050c2 snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x21e09bdc snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x25d51adb snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2767465a snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x29303d16 snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2964d765 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2a8d533e snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2acc1ce3 snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2e1accae snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2e96319a snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x30c5b077 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x31352650 snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x33885f3c snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3522514e snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3b05f535 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3de38447 snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4012e711 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4407ade3 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x496d7d81 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4b6a13da snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4f3966f9 snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x552a8310 snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5b0bffd5 snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5e45d5c8 snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5e74879f snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5e79f44a snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6030b9bc snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x607d420c snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x61cd16e1 snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67ac761a snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67ba5a2d snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x68914952 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77dfa876 snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7ba5978e snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7becc3d3 snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7f7f65ab snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7fffffff snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x7fffffff snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x7fffffff snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x60962303 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7fffffff snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00ea8abb azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x045fb649 snd_hda_sync_vmaster_hook +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 0x072a47df snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09925130 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bba1d78 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10811506 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x118f2b10 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12430552 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13425b43 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1541e348 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x162c2301 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19773a1d snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a8e6c26 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d37d356 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ec43d40 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20157cc7 snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21ab3ebf snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2396cdc7 snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cf25631 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2eed4a16 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f65aa75 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x302b135e snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34232a73 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x353e746d snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35ab2b09 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36b39964 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x378872d6 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3855a7da snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x391dd76b snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x393d3d90 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3db4b087 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45150bff snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4595f668 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4597490c snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4687db65 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x488cbc95 snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e05b5f4 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f9e38f0 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54f2d4ab snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x556982e0 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x558abd52 snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5896e2c8 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5d7b07c1 snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5eea8065 snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f0a4708 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x602a1f32 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x617c7aa0 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61b02f02 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6226be30 snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x642d2751 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66c5f9f3 snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ec3be9a snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7165587a snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73214641 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x738586c4 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76339fcd hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78052f22 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x792b474a snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bccc7ec snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cd55f84 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7cfe0b53 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7dc96b03 snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7eb40a4b snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fffffff snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x0d8e036c snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1f05f438 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1fb41515 snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2113ebb9 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x2195daf8 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x3b0057b8 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x46b4a799 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x553b6318 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x5fff6e77 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x70de7c4b snd_hda_gen_stream_pm +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 0x78b99e68 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x78c46b80 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7bf13c5e snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7fffffff snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/soc/codecs/mt6359-accdet 0x5b8d0bc8 mt6359_accdet_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0x7fffffff adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0x361cdd06 adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x5612d03b adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x7fffffff adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x40f667cb adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x42ea5096 adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x59d51f89 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x5d5ece15 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x5f1b749a adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x62fa4483 adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x67e750fd adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x713ab9ec adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x7fffffff adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0x7fffffff adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x05a4a97a cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x39f6cfc7 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x6879e9d4 cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x065ec36e cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x195874ff cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x1b149afd cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x5a69a4aa cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7fffffff cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x7a5b9da4 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 0x7fffffff cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x0cf047ad cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x0e65ff1e cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x426d5114 cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7fffffff cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x7fffffff cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2 cs42xx8_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x106b8124 cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x10db7b36 cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292 cs42888_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7fffffff cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7fffffff cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x1d59b900 da7219_aad_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x384b3c14 da7219_aad_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x7fffffff da7219_aad_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7219 0x7fffffff da7219_aad_jack_det +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x7fffffff es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x7fffffff es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x517b0dbe lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x5271f607 lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x7fffffff max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x31511ff4 soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x6fcce990 max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x7fffffff max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x7fffffff soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x0784bf1a mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x71186042 mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7fffffff mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x7fffffff mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x50abca83 mt6359_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x7fffffff mt6359_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x7fffffff mt6359_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6359 0x7fffffff mt6359_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0x13bebfe8 nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x7fffffff nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x7fffffff nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x34ca8551 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x7fffffff pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x7fffffff pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x337a2979 pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0x7fffffff pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x7fffffff pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x7fffffff pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x0cd67bea pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x79337b12 pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x7fffffff pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x7fffffff pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x0c339f40 pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x35326864 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x4b1bb12b pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x7fffffff pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x7fffffff rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x7fffffff rl6231_get_pre_div +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 0x7fffffff rt5514_spi_burst_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x269bf4c6 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x2e5f4795 rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x704ca9ce rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x7fffffff rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x7fffffff rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x7fffffff rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x5e2b3157 rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x7fffffff rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x005b4d77 rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5663 0x7fffffff rt5663_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677 0x294a4c1b 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 0x7fffffff rt5677_spi_hotword_detected +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x7fffffff rt5677_spi_read +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5677-spi 0x7fffffff rt5677_spi_write_firmware +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x63a06bb6 rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x669ec35b rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7ad3d7e9 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7ba080ff rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7fffffff rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682s 0x2b879282 rt5682s_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x19a6975f sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x6bade197 sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7fffffff devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7fffffff sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x7fffffff sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x16191cad devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0x7fffffff devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x7fffffff ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x7fffffff ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x60171660 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x7fffffff aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0x7fffffff ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x7fffffff wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x2f65562c wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x4ecb7cca wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x73f94b51 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x7fffffff wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x7fffffff wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x030d2a4d wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1fa6de9e wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3fc47b05 wm_adsp1_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 0x5d6dde7a wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7ca94fde wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7cb59a0e wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7db24940 wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_bus_error +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_component_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_open +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_halo_bus_error +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7fffffff wm_halo_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x13d54e31 wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1fc708a9 wm_hubs_add_analogue_routes +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 0x7fffffff wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7fffffff wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x7fffffff wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x7fffffff wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x162c621e wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x1be05ef3 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7c88bf40 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x7fffffff wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x0b5ca5cf wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x54e8ded7 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x544b8812 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7fffffff wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x0e17d43a fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0x7fffffff audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x057ba92b audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x73fe2c19 audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7fffffff audio_graph2_link_dpcm +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x7fffffff audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x10eb171a asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x329f38d2 asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x3d5b3007 asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x452e28fc asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x4bcd73fa asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x4ef40eaa asoc_simple_parse_convert +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x54ed5b6e asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x65efe969 asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x74441e24 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_convert_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x7fffffff asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x02ae7fee mtk_afe_suspend +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x0410cd9d mtk_afe_add_sub_dai_control +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x09f83271 mtk_memif_set_rate_substream +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x0ec1058e mtk_memif_set_format +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x1b7a0eb4 mtk_afe_combine_sub_dai +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x206177a2 mtk_memif_set_pbuf_size +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x2a808c29 mtk_afe_fe_trigger +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x31ed1f49 mtk_afe_fe_prepare +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x400325b3 mtk_afe_resume +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x4660ba3d mtk_afe_fe_ops +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x4b24c075 mtk_memif_set_addr +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x4efdfed9 mtk_dynamic_irq_acquire +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x51904ca7 mtk_afe_pcm_platform +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x651b72b8 mtk_dynamic_irq_release +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6ba91513 mtk_afe_fe_hw_params +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6c023e1b mtk_afe_fe_startup +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x6ccf7715 mtk_afe_fe_hw_free +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_fe_shutdown +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_pcm_new +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_afe_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_channel +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_disable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_enable +EXPORT_SYMBOL_GPL sound/soc/mediatek/common/snd-soc-mtk-common 0x7fffffff mtk_memif_set_rate +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x72c94d09 mt8195_afe_enable_clk +EXPORT_SYMBOL_GPL sound/soc/mediatek/mt8195/snd-soc-mt8195-afe 0x7fffffff mt8195_afe_disable_clk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x30b16d88 axg_fifo_pcm_hw_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x4771bbc7 axg_fifo_pcm_pointer +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x78128455 axg_fifo_pcm_close +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7c27cf82 g12a_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fc22fbb axg_fifo_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_new +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_open +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_pcm_trigger +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-fifo 0x7fffffff axg_fifo_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x14468237 axg_tdm_formatter_set_channel_masks +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x311fa5b9 axg_tdm_formatter_event +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x314f9f02 axg_tdm_stream_alloc +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x443d22ba axg_tdm_stream_free +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x506c837c axg_tdm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7fffffff axg_tdm_formatter_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-formatter 0x7fffffff axg_tdm_stream_start +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-axg-tdm-interface 0x1b486632 axg_tdm_set_tdm_slots +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x05218640 meson_card_set_fe_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x06c3ec44 meson_card_reallocate_links +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x4ca5f8ec meson_card_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7e63fb2e meson_card_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_i2s_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_parse_dai +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-card-utils 0x7fffffff meson_card_set_be_link +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x258f8e39 meson_codec_glue_output_startup +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x283e327e meson_codec_glue_input_get_data +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x571f3d49 meson_codec_glue_input_dai_remove +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_dai_probe +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_hw_params +EXPORT_SYMBOL_GPL sound/soc/meson/snd-soc-meson-codec-glue 0x7fffffff meson_codec_glue_input_set_fmt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x1bc3447e q6adm_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x28421460 q6adm_get_copp_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x360d666d q6adm_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6adm 0x5b4b85db q6adm_matrix_map +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x07a54780 q6afe_cdc_dma_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x19b85e3e q6afe_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x369b6eeb q6afe_port_put +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 0x7fffffff q6afe_hdmi_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_i2s_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_port_get_from_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_port_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6afe 0x7fffffff q6afe_tdm_port_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x13b7efd9 q6asm_cmd +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x1b6c77fc q6asm_stream_media_format_block_alac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x25bfa476 q6asm_open_write +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x2b693eed q6asm_stream_media_format_block_wma_v9 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4afe6f73 q6asm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x4fba2f0c q6asm_run_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x68db31e2 q6asm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x6cec4b17 q6asm_stream_remove_trailing_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_audio_client_alloc +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_audio_client_free +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_cmd_nowait +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_enc_cfg_blk_pcm_format_support +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_get_session_id +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_media_format_block_multi_ch_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_open_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_run +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_ape +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_flac +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_media_format_block_wma_v10 +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_stream_remove_initial_silence +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6asm 0x7fffffff q6asm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6core 0x7e52e977 q6core_is_adsp_ready +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6core 0x7fffffff q6core_get_svc_api_info +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x6b1f91a0 q6prm_vote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x7fffffff q6prm_set_lpass_clock +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6prm 0x7fffffff q6prm_unvote_lpass_core_hw +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6routing 0x5b75f756 q6routing_stream_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/q6routing 0x7fffffff q6routing_stream_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x0e765bcf q6apm_graph_get_rx_shmem_module_iid +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x0fa3cae9 q6apm_graph_close +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x145cf8f6 audioreach_alloc_apm_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x1c6a1c03 q6apm_graph_flush +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x2707fe8a q6apm_unmap_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x366d55ab audioreach_tplg_init +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x38546d73 audioreach_shared_memory_send_eos +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x46f936ef audioreach_get_container_next_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x4ab13822 q6apm_graph_start +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5543dd66 audioreach_alloc_apm_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5c02794e audioreach_alloc_graph_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x5ecaa3fd q6apm_graph_open +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x64dc5171 audioreach_alloc_cmd_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x681072e5 q6apm_graph_media_format_pcm +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6ba55511 audioreach_graph_free_buf +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6bbb8729 q6apm_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6d632f11 q6apm_read +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x6e2fb8a0 audioreach_gain_set_vol_ctrl +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7f4d39c8 audioreach_alloc_pkt +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_get_container_first_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_get_container_last_module +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_graph_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_map_memory_regions +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_send_cmd_sync +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff audioreach_set_media_format +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_media_format_shmem +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_prepare +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_graph_stop +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6apm 0x7fffffff q6apm_write_async +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x0d89a46e q6dsp_clock_dev_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x17142e58 q6dsp_map_channels +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x4a40e864 q6dsp_audio_ports_set_config +EXPORT_SYMBOL_GPL sound/soc/qcom/qdsp6/snd-q6dsp-common 0x7769a5dd q6dsp_audio_ports_of_xlate_dai_name +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cdc-dma 0x11a44ecf asoc_qcom_lpass_cdc_dma_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x131ec0a1 asoc_qcom_lpass_cpu_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x3b98f6cc lpass_cpu_pcm_new +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x4126db95 asoc_qcom_lpass_cpu_platform_shutdown +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x5330aeea asoc_qcom_lpass_cpu_platform_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff asoc_qcom_lpass_cpu_dai_probe +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-cpu 0x7fffffff asoc_qcom_lpass_cpu_platform_remove +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-hdmi 0x7fffffff asoc_qcom_lpass_hdmi_dai_ops +EXPORT_SYMBOL_GPL sound/soc/qcom/snd-soc-lpass-platform 0x3775b23e asoc_qcom_lpass_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x19bcc516 tegra_asoc_machine_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-machine 0x7fffffff tegra_asoc_machine_probe +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x1a0602fc tegra_pcm_hw_params +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x2b69cca6 tegra_pcm_construct +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x3b1d9461 tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x4101e18f tegra_pcm_open +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff devm_tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_close +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_platform_register_with_chan_names +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x7fffffff tegra_pcm_pointer +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 0x7fffffff tegra20_das_connect_dac_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0x7fffffff tegra20_das_connect_dap_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x0427e3da 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 0x6fe20143 tegra30_ahub_set_rx_cif_source +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra124_ahub_set_cif +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_allocate_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_disable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_enable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_enable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_free_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_free_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x7fffffff tegra30_ahub_unset_rx_cif_source +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-omap-mcbsp 0x2614b126 omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-edma 0x04e59c65 edma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-sdma 0x0ec54777 sdma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/ti/snd-soc-ti-udma 0x7fffffff udma_pcm_platform_register +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x0082eba8 line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x202a1b1b line6_midi_id +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x31fe4a6b line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3816a766 line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x3f24e914 line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x404b9bf1 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x4cc43bd6 line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x4ccc9356 line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x5e006513 line6_probe +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x607788d6 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_read_serial_number +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7fffffff line6_version_request_async +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 0x7fffffff irq_bypass_register_consumer +EXPORT_SYMBOL_GPL virt/lib/irqbypass 0x7fffffff irq_bypass_unregister_producer +EXPORT_SYMBOL_GPL vmlinux 0x0000de24 of_thermal_get_trip_points +EXPORT_SYMBOL_GPL vmlinux 0x0017f48c fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x00237eee devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x003ca4da pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x00490c96 __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x004b5b18 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x004b6284 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x00529c9d devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x0053e821 tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0076f787 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x007f088e irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x007f6502 rockchip_pcie_get_phys +EXPORT_SYMBOL_GPL vmlinux 0x0097bec1 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x00b2ce58 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00bd5c4a debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x00bfd895 crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x00c47001 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00e34d09 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x00fcf2dc nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x00fdfbb7 dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x011959cf __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x011fe6a2 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x012103cb da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x0127e73c devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x014364ba tegra_xusb_padctl_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x0144fea9 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x014e8186 cpu_scale +EXPORT_SYMBOL_GPL vmlinux 0x01504f1a snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x0163ce9b md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x0171e3f5 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x01774a22 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0196fbb3 icc_disable +EXPORT_SYMBOL_GPL vmlinux 0x01b12bfb usb_ep_free_request +EXPORT_SYMBOL_GPL vmlinux 0x01b8db8c regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01cbcc9d pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x01d184cd ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x01d7032f regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x01db9cee irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f0d5c9 mtk_is_virt_gpio +EXPORT_SYMBOL_GPL vmlinux 0x01f1f3dd regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x01f6a2a4 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x01f8749d snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0x01fde3d4 icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x0218c856 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x023e1d46 __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x02418487 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x024a048b max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x025d30b3 tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x026892be fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x0269b361 spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x026f3380 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0273bcd0 sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0x0279d53f sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL vmlinux 0x02804813 rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x028a5ae0 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x028b3a42 mtd_point +EXPORT_SYMBOL_GPL vmlinux 0x029e1869 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x02a3994e extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0x02acae3e edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x02b03a51 sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x02c01eef __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x02c45349 icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02cb4826 mtk_clk_register_gates +EXPORT_SYMBOL_GPL vmlinux 0x02d9aca7 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x02e349c2 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x02ea61a6 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x02ea9e2f __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x02ed05bb snd_soc_component_compr_free +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0312e7b8 nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x0321a780 raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x03297499 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x03315f0c btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035e6cb0 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x0362723c xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0x0366d77b ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x036d8e9b klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x037912cf icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0x037e55b3 usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x0387daa6 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x039ffd44 snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x03ae95f5 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x03b2623e __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x03ce5e2e device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x03f18087 to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x03f469fa mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0x0404fbb3 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x0405ebdc snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x0409d06b clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x0412332f rcar_rst_set_rproc_boot_addr +EXPORT_SYMBOL_GPL vmlinux 0x04231796 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x043675cd of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x04386c8b usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x044b54c1 regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x04704e83 devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0473435f regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x047548ad fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x047b52c4 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x0483627a __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049103d3 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x04a6d5eb of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0x04a6db5a pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0x04ae4635 trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0x04b5894e ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x04b5b1a4 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x04c0aeb7 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x04c170b7 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04ccc4b7 serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x04dbdb26 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x0501b344 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0x05040081 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x0507b3e5 dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x052b15ae blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052bdfc9 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x0530effd devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x0532fea9 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x0546c7d1 devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x054f89f4 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05641313 imx_clk_hw_sscg_pll +EXPORT_SYMBOL_GPL vmlinux 0x05682928 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x057085b3 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x058310bc __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x058e5310 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0x058f9a36 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x059530b4 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x059bd5de class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x059d9e04 mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0x05a12e98 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x05a1c5d7 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x05c93cab __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x05dbade4 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x05e0c871 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x05eb7523 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0x060e43f3 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x06122337 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x06166348 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x061c0315 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x063f3fcd rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x06452117 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0655699b devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x065d332b snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x0675e6ab ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x067cd9bd vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0x0681c03b tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0x069b4bec debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x06a747be of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0x06a99c7b usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x06af4462 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x06b53bd2 memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x06cadc44 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d2b195 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x06dfe7d4 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x06e92aea nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x07116365 spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x0713645c hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07162bd8 spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x07315125 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x07398771 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x0761933d mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x076e60fc bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x0775f71b pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x077669d7 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x078eb4b5 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x07a323d1 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL vmlinux 0x07a77425 tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x07ab1100 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x07ab8068 ahci_platform_resume +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07d55810 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x07e9ee8d tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x07f0a412 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x07f3a233 mtk_mmsys_ddp_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x07f5bfed __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x080096bc tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x0803b39a snd_soc_component_read +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x081ae405 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x082ae3e0 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x082df7f9 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0x082f8479 ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x08344f9c snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x08393f46 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x0849950d rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x084e4920 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x086e51a5 serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0x087948bb rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x08a44724 dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x08a5b1af rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x08a7f00b usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x08ab65dd of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0x08b073f1 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x08b40317 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x08b513b8 devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x08d7a56d ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x08eaccc0 dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x09061da7 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x0930c810 dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x09354077 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x093f310d of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x093f6250 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x0944fa22 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x0946fae3 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x0947d369 vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL vmlinux 0x094d61f4 __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x09678c13 auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0x0970390c fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x0971811c regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x097a2a04 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x097c4c1f ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x098190a6 phy_create +EXPORT_SYMBOL_GPL vmlinux 0x0989d07a virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x099edd5b regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09b67e1f i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x09bafcc0 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x09c273a4 nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x09d38c42 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x09da94f6 devm_of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x09dc5db9 wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0x09dcd2a1 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x09dd19a2 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x09e1f772 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x09e53260 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09f2a68d power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x0a018261 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0x0a208ab1 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0x0a2e3759 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0x0a3408e4 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x0a3c72c9 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x0a4b6a46 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x0a51ed96 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x0a5df791 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x0a5f4ffd crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a6fcb86 omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0x0a70d45c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0a71b6eb edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x0a76999e snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x0a88a88c gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0x0a88cf57 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x0a8af62d crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x0a8c3b4b usb_ep_set_halt +EXPORT_SYMBOL_GPL vmlinux 0x0a8dee5a debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x0a8e1573 pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0aa1b1e9 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x0aa4d57b platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x0ab3f1a9 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x0ab4757c mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x0ab95ade snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL vmlinux 0x0abe4c6d fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x0acfe2e7 usb_ep_set_wedge +EXPORT_SYMBOL_GPL vmlinux 0x0ae00b60 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x0ae556df __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0aea6264 usb_initialize_gadget +EXPORT_SYMBOL_GPL vmlinux 0x0aeeda5c dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x0af16626 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x0af44e18 skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x0afd6cab extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x0b04404d register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b16f43f crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0x0b19b18f register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x0b266e64 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x0b2970fe klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b329484 devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b349c38 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x0b4613fc dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL vmlinux 0x0b56f189 mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL vmlinux 0x0b5f00dc icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0x0b5ff5fa ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x0b68ce3f hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x0b722a24 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b72a3de snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL vmlinux 0x0b7bff03 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x0b8602b7 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0b8969fa dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0b927181 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x0b967ffe __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0x0bb028d4 hisi_clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x0bb765b8 icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0x0bb99a5a dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0x0bbb77fc mtk_free_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x0bc0844b acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0bc327f2 rockchip_pcie_cfg_configuration_accesses +EXPORT_SYMBOL_GPL vmlinux 0x0bda5428 mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x0bda5519 free_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x0bded385 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x0be49aab trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bf7da65 rockchip_register_softrst +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0bff00c0 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c35ac80 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0x0c468935 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x0c470e18 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x0c6c6eea perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x0c83ddd9 devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c892acf usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0x0c8fad29 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c9b23a9 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x0c9d5170 stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0cd7fe8a irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x0cde4bdd __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x0d0bb8a6 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x0d23d67c md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0x0d35b51a srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0d3a3173 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d52e134 start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0d5cc46e blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0x0d8b9af9 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x0d90d784 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL vmlinux 0x0d9ba964 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x0da59de7 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0dad3755 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x0db45b15 nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0x0db9ae96 tegra_bpmp_request_mrq +EXPORT_SYMBOL_GPL vmlinux 0x0dc0cd99 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x0dc3777d tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0x0dcb3ee8 divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x0dd1bc60 pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x0dd2339c snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06dea of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0x0de5be24 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0df59de1 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x0dfc1003 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x0dfd3e25 dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e134495 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x0e25be06 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x0e29f9a7 topology_update_thermal_pressure +EXPORT_SYMBOL_GPL vmlinux 0x0e3b5c4d sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x0e3c62c9 blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x0e47397b nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL vmlinux 0x0e4bdb6a pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x0e5150ab clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0e5b4975 __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e7d13bf nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x0e87cd47 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x0e8a574a cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x0ea9678d devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0eca7e99 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x0ecc3eb0 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x0edbfce5 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x0edda439 crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x0ee504fc crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x0eeb5417 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x0eefb674 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x0ef6b153 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x0ef9b9f6 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x0efcaab8 fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x0f040076 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x0f12ed11 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f2be247 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x0f2da3dc rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x0f3c520a fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x0f3c7989 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x0f452a47 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x0f5671ac espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x0f5f71d7 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x0f62f5fd badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x0f68a4fd sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x0f6a3f32 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x0f7bc377 amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x0f7ca236 dmi_memdev_name +EXPORT_SYMBOL_GPL vmlinux 0x0f956397 __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x0fad596b pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0fc3f774 genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0x0fc5a449 ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0x0fc75c2d fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x0fca9a85 tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0fd53ef3 firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x0fe1ab3c sdhci_start_tuning +EXPORT_SYMBOL_GPL vmlinux 0x0ff0483d cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x0ff9c936 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x100359e4 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x10111b8b usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101ecb78 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x1028142b mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x102b6903 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x103235e3 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x103d079b usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL vmlinux 0x1043cac3 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0x105c5c52 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x10635233 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL vmlinux 0x106ad9e1 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x106ee673 iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x10740d2b icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x10986db7 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x109b4c2d devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0x10a459dd usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x10af779f hisi_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x10bde107 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x10c5ba35 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x10cacdac rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x10cd532f gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x10d1c67d devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10db65b8 pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x10e9b234 nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x10e9d6ab balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x1101d078 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x110218fa device_move +EXPORT_SYMBOL_GPL vmlinux 0x1104c4d5 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x1105e4df pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL vmlinux 0x110f34a2 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x1113209a pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0x111339eb ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x112b07d8 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x112dce3e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x11350f01 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x114a3740 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x11526c9a meson_clk_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x1162f271 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x117c6d8b task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x1183c86c edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0x11841b8a devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x1189a758 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x118f2d63 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x11907aaa __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x119c3e62 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x11b07abd pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x11b854ee pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x11ca9e86 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11f9a4e8 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x120538a0 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x1217e73a scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x121bc934 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121fd8d8 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x122562b7 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x1229e8a5 rockchip_pcie_parse_dt +EXPORT_SYMBOL_GPL vmlinux 0x122be74d soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x12310a75 scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0x1231219b fsl8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x123354b0 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x12444fa7 edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x12462026 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126b08cb crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x1276573e dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x128135d7 xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x12931972 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x12a64f26 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x12ae82eb vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0x12bd96f3 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x12cee48a rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x12d90b4d pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x12f3409b xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x12f4b541 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x12f72cfa shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x1304435b __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x1308df1b hrtimer_init_sleeper +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 0x133f29cf xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x13730f18 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x137b7c80 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x1381d4f3 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1387ffcb iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0x13894710 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x139fccbd register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x13a63c88 skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x13bcec38 component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x13c23cb9 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x13d18f4d pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x13d7ae7f ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x13daa83c serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13fdee9a pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x141333fc tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x141a5bd5 mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x142ffa0e fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x14320050 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x1439bbf7 regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x144d6774 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x14560a16 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x146c3356 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x14805c94 gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x148eaf1b pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x14a98a21 cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x14ad27ef pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x14da76db devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x14dcb473 akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x14dd66f7 meson_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x14f0ca4b bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0x14fe4d41 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x150ebe19 of_thermal_get_ntrips +EXPORT_SYMBOL_GPL vmlinux 0x1512feec crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x152bb0f7 snd_card_rw_proc_new +EXPORT_SYMBOL_GPL vmlinux 0x152eb486 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x15500829 devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x1550efdf inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x155410eb sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x155c552f msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x15645487 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x156ac10e syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x15775868 dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x158c53f8 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x15969a10 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15ab2790 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x15ac5a2b __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15c07b22 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0x15d6dc43 usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0x15ebc0a1 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x15eca580 percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x15f1f38b debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x15f3bb0b crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0x15fcefcf ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x160f32b3 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x161dfd0e unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x162277ff crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0x162b916b snd_soc_component_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x16393063 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x164f20b0 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x164f714b pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x16616a52 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x16643dd7 ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x167ee726 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x1683b350 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x1686e440 gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x169acaf8 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x169b185f verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x16a2320b fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x16a670a0 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x16ad4bcd genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x16b0627a __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x16c69fe9 snd_power_ref_and_wait +EXPORT_SYMBOL_GPL vmlinux 0x16d8951e regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x16d8a418 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x16d9f9ff pci_remap_cfgspace +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x1708147a blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x170b566a tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x170e4c92 sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x17194d7d kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x171b35b4 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x17322751 snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL vmlinux 0x17398e79 synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x176058bc transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1767a943 __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x176e910e irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x17726e4f regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17862f17 md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x179fbfc3 snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL vmlinux 0x17a8b039 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x17b36838 blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x17b87544 snd_soc_new_compress +EXPORT_SYMBOL_GPL vmlinux 0x17b8cba8 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x17bde396 devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x17df6826 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0x17e4ca96 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x17eb92a8 __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x17f9c35a pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x18045491 fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0x1809a3c0 ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0x180de543 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x1810a81b vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0x18193190 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x181972ef sdhci_set_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x18223f7e snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x182b455f ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x182b79d3 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x1830645f __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x1837c772 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x183898a5 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x184c4716 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0x18615d35 efivar_supports_writes +EXPORT_SYMBOL_GPL vmlinux 0x1887584e pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x18886d62 devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x188ed200 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x18985a77 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x18b1551a imx_clk_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x18c0d5a9 snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x18c9f5f7 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x18d01e2c gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18e8c440 arch_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x18ecae59 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x18f17cca dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x18f59347 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x19083de9 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x190a0f49 nand_op_parser_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x190c5c9a bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x191046c4 fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x19189c55 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x1921431b meson_clk_pcie_pll_ops +EXPORT_SYMBOL_GPL vmlinux 0x192646b2 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x193507be nl_table +EXPORT_SYMBOL_GPL vmlinux 0x194132fa zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x194dd751 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x194f097a nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x1964592d fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x196759c5 dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x19728f56 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19917c11 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x199cbadb crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0x19a141dd usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a4bbc5 dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x19a67ce2 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x19ab9779 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x19b00e22 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x19b1f46f usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19f61633 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x1a02bc4c tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x1a073a45 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a12b996 of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a19c836 mtk_eint_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x1a266232 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL vmlinux 0x1a28032a __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x1a2d16b7 platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x1a4a377c pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0x1a4dba27 mtk_pinconf_adv_pull_set +EXPORT_SYMBOL_GPL vmlinux 0x1a63f28b nand_reset +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a743120 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x1a768143 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1a775b76 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x1a779641 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0x1a7a3675 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x1a8086e1 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0x1a830f91 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1a84d0cf ahci_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x1aa23309 mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL vmlinux 0x1aa40cf7 get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x1ac9485d devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x1ad97029 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x1ae2392b bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x1af16761 report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x1af1ff4d rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1af293e8 param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0x1b0318a3 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x1b04e9d1 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x1b0cf2e0 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x1b1b5c8c dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x1b1fec2d snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL vmlinux 0x1b3d7326 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1b4fba70 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b547f20 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b553eaa pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x1b579f40 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b8a690b ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x1b8ba133 percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x1b8c03ac virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1b958a60 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1baa55d5 meson_clk_pll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x1baaca47 snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL vmlinux 0x1bb57fd7 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x1bbbe809 phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0x1bbe64b0 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL vmlinux 0x1bc40a8d gpmc_omap_get_nand_ops +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bd88036 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x1be02ce0 snd_soc_runtime_action +EXPORT_SYMBOL_GPL vmlinux 0x1beb4498 ahci_platform_disable_phys +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1bf2ce09 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x1bf97ba7 sdhci_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x1c01e03d __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x1c052f60 sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x1c0de71c class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x1c23e5b5 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x1c2e2a71 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x1c2e9db0 snd_soc_component_write_field +EXPORT_SYMBOL_GPL vmlinux 0x1c33db01 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0x1c3b5577 of_pci_get_devfn +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 0x1c6720cf devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x1c73351b snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c812eab alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c9365f8 metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1c946b4f vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x1c958690 l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0x1cafba8a ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x1cb26d09 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x1cb306ca driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0x1cb72be9 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x1cb8ffc1 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x1cbc35d9 snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cc0f700 phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x1cc41e78 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x1cdcd4e0 nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0x1cdf1754 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x1cdf4efb copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x1cea3104 rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0x1cfe4101 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x1d0babd7 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d25bc06 xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x1d27ceaf snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL vmlinux 0x1d27d374 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x1d286ebe device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x1d326af7 pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0x1d35fdaa snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x1d3d4157 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x1d4ea304 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1d57e8e9 genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x1d6696b0 mtk_mutex_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d678a71 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d880975 scmi_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1d94a218 dmi_memdev_handle +EXPORT_SYMBOL_GPL vmlinux 0x1d94df4c blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x1d9c724f devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x1db4d3ce wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1dcc3a58 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1dd07d11 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1e042d5b pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e0c304a bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x1e125562 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x1e18b432 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x1e333b5c kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0x1e433130 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x1e44908d tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x1e4491d7 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x1e530bdb pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e5d8792 sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x1e618dfc devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x1e701a17 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7d6157 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1e8f18a0 snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e90d1eb snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x1e91bc5c __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x1e9830e0 dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1e9efb66 component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x1ea20fdf screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x1eaccc00 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x1eb519b9 snd_soc_component_read_field +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebbfcd2 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed0af23 udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x1ef61f03 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x1f07c383 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1f1e9a2b dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1f2bb7ae mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL vmlinux 0x1f346d68 usb_gadget_udc_reset +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f42fcd7 lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f4704a5 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f5fc4a5 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x1f749d7c devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x1f760479 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x1f774f46 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1f8415d0 phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8fff99 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x1f98c0b3 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fa65721 fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1fb80b89 pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x1fb88da7 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x1fc42ff7 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x1fca0b38 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x1fca0b71 fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x1fcb0bcb platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1fccdce6 gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x1fce02ec gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x20164511 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x201f40ba dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x202a044f iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0x202bc37a __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x2042dc89 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x208720db __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x208f8965 nand_write_data_op +EXPORT_SYMBOL_GPL vmlinux 0x20a6bd49 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x20a6e133 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x20bfdcef uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x20c6ad55 usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x20d5ac29 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x20d5b628 regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x20dd2896 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0x20e7ca5a trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x20f5a0ae devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x2101fb57 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x2102a043 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0x21072dae pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0x21087621 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x2113d4fa dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x21150dcb sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x212ecd4b of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0x214173b5 __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x21494650 mvebu_mbus_get_dram_win_info +EXPORT_SYMBOL_GPL vmlinux 0x214ac3f3 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0x214b502b snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL vmlinux 0x214d118c usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x214d7a42 of_msi_configure +EXPORT_SYMBOL_GPL vmlinux 0x21563e68 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x21726652 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x2181b0a1 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0x21881c76 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0x2193b756 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x21a073f8 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21a9138a rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21c6ae81 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x21cc46f8 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21cff89e ti_cm_get_macid +EXPORT_SYMBOL_GPL vmlinux 0x21d02b67 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x22046c16 cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x2205cadf __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x220ce70c kvm_arm_hyp_service_available +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x2212e699 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x221460c3 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x221f63ce iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0x2221058d usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x2228451b rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x223f6eb9 nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0x2244633c input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x224594a5 pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x224caa5a pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x225cf2d0 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x226752f7 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x226ee222 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x228f8275 of_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x2297a63f extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x229a51f8 ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x22a54765 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x22a80508 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22b323cb gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0x22c6c1f3 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x22cd7231 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x22d40e78 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x22d54d6e __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22dd98e3 iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x22ef28dd bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x22f13386 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x2311d929 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x231f42f6 of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x2339c66c __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x23414501 user_read +EXPORT_SYMBOL_GPL vmlinux 0x2342c1b8 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x23666d59 __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x2368d679 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x2372d9aa rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23921796 phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x23935d9d __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x23950433 efivar_variable_is_removable +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x23a56fb7 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x23ab97b5 reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0x23aeb99e sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x23b46ffd umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x23b7ef84 xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x23b9ced1 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x23c18738 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x23caedd2 nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x23d30575 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0x23f1bd3a imx_clk_hw_pfdv2 +EXPORT_SYMBOL_GPL vmlinux 0x23f8663e efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0x2412eee5 device_add +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x24453713 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x244ebea8 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x246336c6 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x24658a65 pci_ecam_create +EXPORT_SYMBOL_GPL vmlinux 0x246b84a4 r9a06g032_sysctrl_set_dmamux +EXPORT_SYMBOL_GPL vmlinux 0x24761413 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x2478fa67 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x247a476f dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x248e42dc pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x24992259 of_genpd_parse_idle_states +EXPORT_SYMBOL_GPL vmlinux 0x24a89c37 pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x24aaa144 mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24af071b devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x24c82133 xas_store +EXPORT_SYMBOL_GPL vmlinux 0x24cdee1b efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0x24cec2b5 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x24d0fd07 sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0x24d91273 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x24e293e1 regulator_bulk_force_disable +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 0x24f85a88 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x24f9e12e mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x24fa6a9d crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24fccc3a bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x2516bbe8 __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x251a170f genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x251bf12a iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x251ca775 mtd_block_isreserved +EXPORT_SYMBOL_GPL vmlinux 0x2523086a platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x25276be7 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x2535cc69 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2543e854 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x254b411a rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x25533f1d dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x2574c9e8 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x25853d3b iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x25b9ba32 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25bdfbd2 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x25bfa033 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x25cd4247 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0x25d0bc23 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x25d34039 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x25d35d2b nanddev_mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x25db4c1b wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x25e5bde7 cpts_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x25ee7ce5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x25f1047c ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x2602e966 nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x262243bb pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0x26347e8e udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x26355c74 sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0x263a79fd sdhci_reset +EXPORT_SYMBOL_GPL vmlinux 0x264a1b5d snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265728a0 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x2664fb50 nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2671349d __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x26743cb6 snd_soc_tplg_component_remove +EXPORT_SYMBOL_GPL vmlinux 0x2675849a sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x2679b1ba wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x267ffb06 snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL vmlinux 0x26927e2e pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x269f7f44 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x26ab0107 fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26b405f6 sdhci_request_atomic +EXPORT_SYMBOL_GPL vmlinux 0x26bca5cd pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x26c04015 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x26c547c0 bL_switcher_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26c56b4a usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26ced168 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x26cf6a80 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x26d80db9 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26f0f4d4 tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0x26f84fe1 pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0x26f95cf6 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x26fa0474 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x270e0129 mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x27162e9c dapm_pinctrl_event +EXPORT_SYMBOL_GPL vmlinux 0x272729ae of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x272e9d77 hisi_reset_exit +EXPORT_SYMBOL_GPL vmlinux 0x2734197f musb_readb +EXPORT_SYMBOL_GPL vmlinux 0x273de577 nand_readid_op +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x277fd9e0 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x2781e843 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x2785f9c9 msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0x278e9ede iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x278f16f2 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2797b492 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x279b373a dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x27a13dc2 devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x27a3b869 gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x27a714f4 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x27c29bc4 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x27d64673 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x27dbcc0d inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f5bf3a irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x2802246e get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x2803296d debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x2808b1a5 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x28315546 genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x283ffe9f imx_check_clk_hws +EXPORT_SYMBOL_GPL vmlinux 0x2847c0db crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x284a1761 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0x284a2ffb irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x285384ed dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x2860159a io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x287b3e96 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x287c45b2 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x2881a99c ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28856740 regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x288ae827 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x28a7db63 nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28aac985 dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x28ab4fb9 pinctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x28b030d2 of_overlay_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28c12054 vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x28cd5f08 gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x28eb95da devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x28f0e820 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x28f7df52 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x28f7ea84 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x28f91d04 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x2907d7dd spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x291123ea __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x291264ea pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x292c0610 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x292c0ebb snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x2937b76b devm_thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x293f10f9 meson8_pmx_ops +EXPORT_SYMBOL_GPL vmlinux 0x295a2670 clk_regmap_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x295b982a hisi_clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x29751077 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x29753177 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0x298272c8 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x298cbdbd of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x298db758 host1x_context_device_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x29932f6b blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x29a73bd5 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x29ba9294 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x29c409c0 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x29c65d7c mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x29ce6efe bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x29cf2470 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x29e36989 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29f85974 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x29f995d4 __sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x29fd8079 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x2a030347 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x2a0c1fa6 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x2a242417 ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0x2a25f988 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x2a29acff led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x2a2aea17 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x2a314a94 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x2a37ea11 imx_clk_hw_frac_pll +EXPORT_SYMBOL_GPL vmlinux 0x2a45281e genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x2a4dd832 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x2a533fd4 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a718017 imx_pcm_fiq_exit +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a732f54 mtk_clk_gate_ops_no_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x2a82a575 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x2a850bec icc_put +EXPORT_SYMBOL_GPL vmlinux 0x2a97576b serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2aadad1a efi_capsule_update +EXPORT_SYMBOL_GPL vmlinux 0x2ac2fbc1 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2ae446a9 pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x2ae4bbde inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x2afe5594 device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x2aff9cea sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x2b0a74d2 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL vmlinux 0x2b0b7924 regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0x2b15e040 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x2b24a3b8 pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b506b55 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x2b5ddd94 soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2b5e7cf8 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b67adad srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2b869818 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x2b8b5e7f ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x2b952517 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x2ba07f3e dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0x2ba22567 fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x2baccb77 irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x2bb0845e bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x2bb9f479 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x2bc57128 of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x2bd78488 dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2be5030f copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x2be8182d ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x2beaf7f5 pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0x2bf5bdf6 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x2c01ec93 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x2c024c3c devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2c114ced dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c2715a3 mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c32e859 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x2c399793 pci_ecam_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x2c42bef1 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x2c492abf cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x2c4aa63b usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2c509e83 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x2c5eab21 md_start +EXPORT_SYMBOL_GPL vmlinux 0x2c60860e hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c72be68 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL vmlinux 0x2c733614 nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x2c7d514e kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c81a826 imx_1443x_pll +EXPORT_SYMBOL_GPL vmlinux 0x2c8aae32 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c900c0b serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2c9f7e55 l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2ca4fe49 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x2cac458c extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x2cafdd16 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x2cc2b3ae synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0x2cc76742 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x2cc80f93 irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x2cc84d51 vfio_register_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x2cd7e0a3 devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2ce9451a snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL vmlinux 0x2d01ac78 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x2d034595 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x2d050526 of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x2d0ccbcd sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x2d0f35ca power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2d1714d2 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d24cdc0 of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL vmlinux 0x2d37e2c1 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d5f69b3 rcu_read_unlock_strict +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d661d64 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2d7e95ac crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0x2da80dd4 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x2daa8696 omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x2db67d4a owl_sps_set_pg +EXPORT_SYMBOL_GPL vmlinux 0x2db68d5c tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x2db88076 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x2dce02d7 fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x2dd068b1 pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2df25e9e ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x2df6d649 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x2df9850e usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x2dfba337 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e083d24 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0x2e0dcc3e sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2ad1d1 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x2e353a0d lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0x2e398ab0 devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e4261f6 snmp_get_cpu_field64 +EXPORT_SYMBOL_GPL vmlinux 0x2e482ed3 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0x2e4a9b74 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x2e5918a8 list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e741d6f dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x2e7f94ad usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x2e8700e8 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x2e9205fe pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x2e946e1b usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0x2e953185 udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x2e97b40e deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x2e99c68f of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x2e9bd736 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x2e9d402c unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x2e9d59a7 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e9fa875 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x2ea5b736 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x2ea72aac __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x2ea73a0c acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0x2eb3d4b7 tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x2eb8acec fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecff5b0 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x2ed50d21 devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x2ed6008c pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x2f0c35e6 snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f360abf tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2f49020c devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x2f497a11 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL vmlinux 0x2f5cd3dd mvebu_mbus_add_window_by_id +EXPORT_SYMBOL_GPL vmlinux 0x2f63e634 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x2f726640 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x2f759df9 phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0x2f7e0a94 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x2f879a40 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0x2fa162a4 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x2fa7c3e4 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x2fade0be synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x2faea3e3 gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0x2fc1cd59 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fc44ba9 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x2fcfe4dc spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x2fe4fc29 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x2fed04c1 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2feedfbc watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0x3000d738 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x300a372d devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x301296a5 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3014957c dev_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x3027a082 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x3032f012 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x303be9d8 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x3047f190 mtk_clk_unregister_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x30551138 musb_set_host +EXPORT_SYMBOL_GPL vmlinux 0x30588627 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x3066750c ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x306e0ac4 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x3072b913 clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x30748a22 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0x3079e6e9 mvebu_mbus_add_window_remap_by_id +EXPORT_SYMBOL_GPL vmlinux 0x307b27b9 alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0x3081ded1 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x30834b11 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x308618d9 crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x30a262dc look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x30a2b5f5 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x30a5e2f1 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x30b3b8a9 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x30c5168f genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x30caac75 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x30cc0ebd fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x30d4e116 __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x30dea713 dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x30eb4985 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x30eea20c usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x30ff2fde tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3104404c ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x3107e482 snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL vmlinux 0x310b6270 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x310ca9be __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x310ef8f3 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x3124c170 blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x312f3370 icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0x313445e4 pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x313ea5fd ipi_send_single +EXPORT_SYMBOL_GPL vmlinux 0x3152126e gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0x3157fcea devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x31636c79 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x318f5573 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x3198f0e2 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x319a373b snd_soc_dai_active +EXPORT_SYMBOL_GPL vmlinux 0x319d759d devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31afffdb mtk_mux_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x31b8506e page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0x31b98aa3 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d84480 of_usb_host_tpl_support +EXPORT_SYMBOL_GPL vmlinux 0x31da67c4 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x3204e6de uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x3219b9a5 irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x3226fe5d ahci_do_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x324b798f genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x32580a50 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0x325a5e1e gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0x325f14e1 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x328a465f inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x328b269d ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x328ba859 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x328f4081 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32ad83ae posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x32ae76df __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x32b02040 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x32bc4d80 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c78885 fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0x32cb59a8 dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x32cbafc4 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x32fdb352 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x33149b2a crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x3326f185 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x3328d7db devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x332cf836 pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x3335ae32 freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3338f1eb __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x3339012f regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3353a4d3 pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x3372c8e3 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x3376945d umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0x3376e63c fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x33850ce3 irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x338566bb ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x338cf498 dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0x33b3b603 anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0x33b410be unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x33ca82d4 tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x33cd2cd6 cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x33cf3071 nanddev_init +EXPORT_SYMBOL_GPL vmlinux 0x33d6d4d7 sdhci_dumpregs +EXPORT_SYMBOL_GPL vmlinux 0x33dd685e sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x33e73297 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x33e9e0a2 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x33efc8c8 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x33f1ae37 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x33f3c1d9 mtk_hw_get_value +EXPORT_SYMBOL_GPL vmlinux 0x33f3d08d component_del +EXPORT_SYMBOL_GPL vmlinux 0x340adf96 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x3418350b scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x3432b686 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x343addfb snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x344bd03b devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x345cbb0b trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x3461ba36 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x3461e4e6 imx_unregister_hw_clocks +EXPORT_SYMBOL_GPL vmlinux 0x34628ff2 auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x346f8972 snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL vmlinux 0x34719a55 i2c_slave_register +EXPORT_SYMBOL_GPL vmlinux 0x3471fae8 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0x34768cd1 i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0x34952db5 fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x34963a74 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x349f917c edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34bf2b54 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x34d73b91 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x34e263e8 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x34f7cfb2 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x3515c195 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x351beefa netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x351ca590 vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x3528b5f4 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x352add12 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352d878c gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3533cff0 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x35374b16 dmi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x35430f8c iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x35622b6d tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x3562877b regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x35642598 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x35681ae3 __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x35707839 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x357803b5 of_console_check +EXPORT_SYMBOL_GPL vmlinux 0x3578a742 device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x358a86ab ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35a93499 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0x35af5ed2 devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x35af9e78 dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x35d81ae9 iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x360ae071 meson_a1_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x36152141 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x361cc5cf wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x36226c29 nanddev_isbad +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x36310fc6 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x36356eda tegra124_clk_set_emc_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x364ec8a3 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0x365989e5 imx_1416x_pll +EXPORT_SYMBOL_GPL vmlinux 0x3684dd4d synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x36916b3d usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36a767fd br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x36afb0a4 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x36b71eda posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x36b98f10 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x36db4c6e rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x36dd1418 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x36e063cb ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0x36f6608b inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3723e71a spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x37377134 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x373af281 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x37595cb3 meson_clk_mpll_ops +EXPORT_SYMBOL_GPL vmlinux 0x37743b64 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x37773856 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x377e9ac0 of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x378940d3 irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0x37ad647d nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0x37e3010f proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x37fb3639 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x37fdb0ca splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x3808e678 regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x3815b8f9 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x382a092c clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x38443526 device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x384b07a7 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x386b91ed regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x3871aec7 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x3876662f thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x3887a1a4 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x388a300c rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38aeb0b1 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x38b2c7b3 serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x38ba2e75 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x38c0c9e4 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x38c474a5 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x38c7fba6 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x38cba995 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x38d7083f devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e3bc1b led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x38e59341 sdhci_set_ios +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x38eee643 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0x38f41095 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x390265aa ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x390dd721 i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0x391c3abd mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x391f7399 edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x3930edc4 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x3944e180 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x39490a4a vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x3954cbf0 msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x3959c5d0 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x395d09b3 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x396b0242 raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x3977ae79 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x397dc241 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x39829f9e seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x39848006 dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0x398f6e63 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x399d19da del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39bb52c5 snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39d392b0 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x39db3a4c ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x39f1aa07 snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL vmlinux 0x3a0a7841 get_device +EXPORT_SYMBOL_GPL vmlinux 0x3a14f027 sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x3a1ff8d3 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a560cd9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a566372 bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x3a60053b virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x3a7b96b1 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x3a977828 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x3a97cc6b nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3ab70944 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x3abc1bef rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x3ac68f5d snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL vmlinux 0x3acc14e8 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad06875 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x3adc5642 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x3af2532f snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x3b0135a7 clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x3b01bee7 clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x3b0702f7 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0x3b0714f7 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3b08a01d rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0x3b0f781d phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0x3b115941 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x3b193fbb relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x3b3152d5 devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3b3a85a0 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b7ec039 iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x3b97cbef xas_find +EXPORT_SYMBOL_GPL vmlinux 0x3b9aaaf7 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x3baaaf5d xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x3bb7a54c led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdc3eab sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3bf1f2d7 fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x3bf39aa7 snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x3bf52f4d devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x3bfabc25 nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x3c07ecbb genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x3c0ba223 tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply +EXPORT_SYMBOL_GPL vmlinux 0x3c38a5fd nand_prog_page_op +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c3e0792 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x3c454317 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x3c5b0875 altr_sysmgr_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c69cc20 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x3c72724e usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x3c841e2f nand_read_data_op +EXPORT_SYMBOL_GPL vmlinux 0x3c9b5b49 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0x3ca2e3c3 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cb45198 xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3cbd221f lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x3cbd4778 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x3cc01f09 nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0x3cc404de snd_soc_tplg_component_load +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cd7e6a4 serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x3cdc3a6c serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x3ce2f5fa unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x3cf00f4b mtk_clk_gate_ops_setclr +EXPORT_SYMBOL_GPL vmlinux 0x3d06467d icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0x3d0818ac nvmem_cell_read_variable_le_u64 +EXPORT_SYMBOL_GPL vmlinux 0x3d09fcbe tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x3d2045a8 devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x3d30bb62 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3b1340 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0x3d4aa7cc __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d564371 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x3d625ad0 mtk_clk_register_muxes +EXPORT_SYMBOL_GPL vmlinux 0x3d6bd359 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d8f155f extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3db48a49 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3dbbd1b4 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x3dc44380 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x3de7f128 __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df51537 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x3e05d6b2 gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x3e1640b8 skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0x3e2712cb devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x3e31d9c3 net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x3e32dc1d fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x3e4f36f7 tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x3e5d06a6 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x3e5dc1e5 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x3e6a0e3f snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL vmlinux 0x3e6c331e debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x3e6cf380 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e921105 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x3e976334 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x3e9a13fd usb_of_has_combined_node +EXPORT_SYMBOL_GPL vmlinux 0x3ead4253 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0x3eb8bf1f snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x3ec3cba3 phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x3ec40239 idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0x3ec818f2 dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x3eef468c devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3efa90a2 sdhci_cqe_irq +EXPORT_SYMBOL_GPL vmlinux 0x3f01865a ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x3f02eeab dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x3f060887 __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x3f18f739 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x3f21e4c5 dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x3f2b053c icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x3f43a79f thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f499adf nand_status_op +EXPORT_SYMBOL_GPL vmlinux 0x3f4c1718 cros_ec_check_features +EXPORT_SYMBOL_GPL vmlinux 0x3f57ab54 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x3f57b702 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x3f6818e0 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x3f7afcd1 mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3fa41ae0 snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x3fabac44 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x3fac687e __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x3fb040e0 dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x3fb451f9 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x3fc0391f ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3fea029c hisi_clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ff5b6f1 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x3ffa3eda iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x400bbc67 pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x4016bff6 nand_read_oob_op +EXPORT_SYMBOL_GPL vmlinux 0x402c48c8 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4034575a __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4043115b fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0x404f0021 of_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x40530715 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x4058b05b __virtio_unbreak_device +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 0x4082f95f pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x4084366c pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x4093969d ahci_platform_enable_phys +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40a29c28 ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0x40a48abf devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x40bfc4fe fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x40c3c8d1 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x40d72754 ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x40d8a27f mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL vmlinux 0x40d91d31 devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x40e87d86 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x40e8d446 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x40ecda45 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f6ab56 snd_soc_dapm_init +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x4111cb0f mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0x41133c3e sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x412b7bfc fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x412ce80b serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x412d54be ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x412e1d4f led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x413976e8 tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x414538e6 synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x414b2f0d devm_tegra_memory_controller_get +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x4151860b devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x415319c8 __kmap_local_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x41589128 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x4164b0c5 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4169549f mtk_pinconf_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x41698604 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x416a25ae bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x416d7173 devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41870bc3 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x41884098 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x418d0985 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x4197da99 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x419ebf4d dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x41ae7615 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0x41b4dfb8 mtk_pinconf_bias_set +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41c30f3a trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41f595a3 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x42044b4a dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x42096ec0 disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x420f3d01 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4224397f crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x422ee124 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x422f5379 power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0x423ecea8 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x4243b924 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x424af2bb device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x4266b5e4 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x426def40 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42904985 switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x429d302f debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x42b74ef5 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x42bf479a wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0x42ca26ec crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x42cc582f snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL vmlinux 0x42d1d2dd handle_fasteoi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x42e7713d usb_gadget_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42efb127 nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x42f4ac3e vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x42fd1106 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0x42fd1ea7 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x42ff4b35 skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x43039a44 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x43120b3c sdhci_reset_tuning +EXPORT_SYMBOL_GPL vmlinux 0x43124667 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x431303e9 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x431aa6ba i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0x43478e62 __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x435e008e nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0x4360b962 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL vmlinux 0x436b0612 i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x4372f3c2 sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43abdedb rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x43b1e9ce pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x43b9303a dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0x43bb645e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x43cca2d8 reset_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x43d7c138 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x43dfd261 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x43e53806 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x43fafafa sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x440386d7 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x440a66fd usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0x442a12f5 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x44398199 mvebu_mbus_del_window +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4459d6e1 rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x445b98b7 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x4467e197 of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x446ed9e4 fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x4482569b scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44964b2c filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0x44b20254 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x44b4efbb wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x44b7b365 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x44b83e00 vfio_info_cap_add +EXPORT_SYMBOL_GPL vmlinux 0x44b85995 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44ccab91 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x450622c8 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x4519355e devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x4533a143 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x4548f87e dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x454b7b5c tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x455557ec mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x455ceab2 pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x4561f990 qcom_smem_state_unregister +EXPORT_SYMBOL_GPL vmlinux 0x456512d6 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x459f9ebd devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x45b1a0a6 devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x45c2c5fd ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x45d07221 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0x45d74b31 xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x45d7eb92 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x45d8af85 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x45daaa46 __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x45e40d9d of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x45ff8535 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x460d8ef5 sm501_unit_power +EXPORT_SYMBOL_GPL vmlinux 0x4622c8c4 component_add +EXPORT_SYMBOL_GPL vmlinux 0x462d323e ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x462de1d6 __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x462e238d mtk_clk_unregister_plls +EXPORT_SYMBOL_GPL vmlinux 0x465f74d7 __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x46621327 debugfs_create_symlink +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 0x46a60ca1 arm_iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x46ae30c7 dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x46b7f9af transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x46c06c19 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x46c5be22 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0x46cf7427 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x46dbed5f devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x46ed90f9 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x46eed499 regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x46f752fc i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0x4700bed4 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x471fd98d irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47293792 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x473113b1 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x47317949 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x47325966 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x4733a959 sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0x4737aeba component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x4742b2f1 xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0x474940e5 phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0x4757c5e9 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4776e0bc sdhci_cqe_disable +EXPORT_SYMBOL_GPL vmlinux 0x478370f8 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47884d78 crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x478ac6fe sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x478d1cd0 blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x47925794 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47a32877 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x47a3597c pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x47a4653b gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x47a5bf97 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47abb51d bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x47abbae7 tegra_bpmp_mrq_is_supported +EXPORT_SYMBOL_GPL vmlinux 0x47ba9db3 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x47c4868d mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x47c80836 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x47ca5889 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0x47d04381 uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x47d8db43 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47dbff5f snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47e055dd ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x47ee6060 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x47f03e6b tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x47fbc0ed xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x47ffe78e dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x48020c1c irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x48023ed1 device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x48031bc0 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x4812073e tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x481fde60 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x484779ef __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x4852a839 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0x4855c737 serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x485ae717 vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x486ba5c2 crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0x487062ea inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x48770e34 fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x48797973 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x487f8b0c hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x48805086 __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x48820b5d kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x489441af pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48ac05d6 __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x48aec276 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x48b2055b __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x48bede1c switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48e38783 pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x48ec0dbd account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0x48f7887e sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x48faef62 find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x48ff781b mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x49000ee8 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x490e9a63 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x4912272f irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x491af092 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x49219a91 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x492a1694 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x492e16f1 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x49326ef6 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x49389d8f tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x493f7faa dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x49830f0e __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x4988c090 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49950170 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x499b00e4 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x499b6425 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x49a7935a cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x49bc272e srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x49c17135 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49d96707 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x49d9f030 usb_ep_fifo_status +EXPORT_SYMBOL_GPL vmlinux 0x49df3925 iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49f2a3bd i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x4a0c14b0 blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a1efe75 meson_pmx_get_func_name +EXPORT_SYMBOL_GPL vmlinux 0x4a24adda __sdhci_read_caps +EXPORT_SYMBOL_GPL vmlinux 0x4a2777ca device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x4a28c82d irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x4a2c9ad8 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0x4a31f380 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0x4a33506c usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL vmlinux 0x4a3dfb27 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4a5079a8 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4a53b680 devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0x4a630de2 nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x4ac35cb2 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x4ac77b9a mtk_mux_gate_clr_set_upd_ops +EXPORT_SYMBOL_GPL vmlinux 0x4ad26019 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4ad6b33f PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x4ade7ec2 thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x4adf7fad attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b0b0ac1 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4b0d1cbe fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x4b121048 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4b153091 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0x4b32521c __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x4b3807d4 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b577f71 sdhci_end_tuning +EXPORT_SYMBOL_GPL vmlinux 0x4b634ab0 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x4b6bddd4 usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL vmlinux 0x4b6c9dcd pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x4b9238da clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x4b932844 devm_snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x4ba40897 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0x4bbbf85e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x4bbe2cd1 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x4bc8bcd7 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x4bce41e1 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x4bd465c6 of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4be22497 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x4bfa2aa0 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x4bfb051c mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x4bfce8b6 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x4c1e95ea mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0x4c22b1e8 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x4c332ff6 mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c67e00a of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0x4c70bee1 mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x4c71f8b0 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x4c721b7b gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x4c8521bd cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x4ca78fd1 msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0x4cae5462 usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4cbbeb6c of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0x4cd3d39c uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x4cd9e20f of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0x4cda2605 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x4ce9aaba mtk_eint_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4cee2c75 device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x4cf24332 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d185248 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x4d1ae831 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x4d23dded rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x4d281278 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x4d38f1e0 bL_switcher_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d43d316 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x4d44323b dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d60bebe snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d8e0810 pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4daefb17 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x4db0362c tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0x4dc62423 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x4dd22feb blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de2381e register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x4df09e14 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x4df4738b fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e270138 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4e2de395 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x4e32024f stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x4e377c70 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x4e538e61 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e58bb5a mtk_pinconf_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x4e5924bc bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x4e5afd6f iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x4e5c0a51 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0x4e7ae288 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x4e83a4c9 sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4e84cc7e efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x4e918404 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x4e9413d1 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x4e9bd8eb imx_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x4e9f3137 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4ea0e6f2 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4ead9601 serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0x4ebbde62 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x4ec73a88 devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ed96ca4 dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x4ee7da50 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x4eea67fe page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4eeccc64 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4efe6765 mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x4f05dbc4 gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x4f0a83da da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x4f153dcc ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x4f203b1f subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4f221155 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f2d7ff0 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x4f31fdc9 perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0x4f3ba219 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0x4f592a7a snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL vmlinux 0x4f5fb849 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f6b67d2 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4f6e0f47 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f775922 clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0x4f7de20b sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x4f89770d xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f9b5327 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x4f9fb6d0 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0x4faa17ba sm501_modify_reg +EXPORT_SYMBOL_GPL vmlinux 0x4fc648ba nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4fc8147d __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4fcce6c3 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x4fd255e2 perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4febe8ed ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x4ff4345b __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x4ffe487e i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x500c1e94 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x501341c0 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x503eeebb synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x504886e7 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x504c0c87 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x506ab3a9 usb_ep_queue +EXPORT_SYMBOL_GPL vmlinux 0x5074416c dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x507f6f58 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x5089b07d badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x508afef4 usb_anchor_suspend_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509d5f55 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x50aaeec0 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x50b88f41 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50cb9fc7 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x50d43434 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x50e2c991 musb_set_peripheral +EXPORT_SYMBOL_GPL vmlinux 0x50e4a460 pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f739a1 devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x50fbee77 irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x5112b677 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x51153b89 __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x5128b9b5 dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x51862b03 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x518e232d fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x51982f2a iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x51991b38 mtk_mutex_enable +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51aef14b extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0x51b50aca of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x51b546ed of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x51ba50cb ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x51be0291 find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x51c3f5b1 blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x51d1deae virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x51e66acb regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0x51ec767a sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x51f0ed35 __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x51f716c0 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x51fbfae6 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x52066243 fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x521ccc47 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x5229242d pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x52327169 __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0x5236497d trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x5261322c rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x52890d56 genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x528b390e led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x529417ff tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x529f5531 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52c995f4 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x52ceaea4 iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x52d3d438 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52e0886c devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x52e67eb6 dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x52ea0afa rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5308bdc4 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x53112d36 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0x53139af2 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x5317a243 tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x531b7bb8 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x5324cf26 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x5325db23 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x532db355 usb_gadget_activate +EXPORT_SYMBOL_GPL vmlinux 0x5339362b nanddev_markbad +EXPORT_SYMBOL_GPL vmlinux 0x534e7d52 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x53640494 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x537a3d7d sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x5386df9a kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x53893491 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x538f92c2 uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0x5393332c perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0x53bbfe02 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x53bcc5e0 kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x53bfc903 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x53ca95b4 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x53cae3c2 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53d9ff9a lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x53dd9d93 __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x53f6993b input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x53fc054f nand_prog_page_end_op +EXPORT_SYMBOL_GPL vmlinux 0x540b050c dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x5411f4e2 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x54172702 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5420ab42 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x5435454c divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x54815ae1 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x548c407f public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x548e7b92 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x549348c9 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x5497e121 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x54a1fb22 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x54a2052c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x54a25da2 qcom_smem_state_put +EXPORT_SYMBOL_GPL vmlinux 0x54a5e7bf phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x54a75962 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x54bef728 snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL vmlinux 0x54cd2971 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x54d4771b snd_device_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x54e09b7f usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x54e5b5bf fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x54e65b74 pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x54ea1e47 l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x54eb7c38 blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x54f869a3 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x54fa030e relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x54fccc40 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x55391052 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55475ead phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x55481272 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x555a873e usb_gadget_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x555f6a0b __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x55617a37 dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x556957f6 snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL vmlinux 0x556df1ca strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x557b9ee1 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x557da3b0 crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x5585f858 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x559bb136 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x55aea2ac spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x55b257f0 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55d328d2 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x55d32c11 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x55e121d5 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x55e49cb2 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55f549ad snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL vmlinux 0x55fcc24b devres_find +EXPORT_SYMBOL_GPL vmlinux 0x5603659f skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x560d9088 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x5610aa04 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x56143cfb pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5631dd99 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL vmlinux 0x563aecd2 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x563b29af __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5666334c tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0x5674bf7a mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x568bd37a usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x569094c3 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x569d006c put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x56a529d3 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x56a6a76c net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x56a9f9ae device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56d3993f skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x56d46c9d efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56eadea5 mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x56f00aed of_css +EXPORT_SYMBOL_GPL vmlinux 0x56f95657 pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x57019778 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x57092750 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5715d8f6 regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x57316874 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x573bf724 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x573f376d exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x5751bba0 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x575e62b0 filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0x5769bbaa mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0x577e9c7a devm_otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x5789909f of_icc_get_from_provider +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 0x57c51db8 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57f061b1 nand_change_read_column_op +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x57f6f66c dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL vmlinux 0x57fbebd1 of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x58067b52 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x58071d38 l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x5827ca8d pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x582c43cd sm501_misc_control +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x583ed22b ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x58425747 devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x58642d52 devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x5867887b i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0x5870ddf7 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5878a534 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x587ac04d cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x587f64a2 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x58957f2d clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0x58a5043f inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x58c1ece8 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x58d1eb9f led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58de3562 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58eb34a7 regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x58f0308a clk_regmap_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x58fdbd7e snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x590ce154 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x591af0e2 __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x59210638 sdhci_execute_tuning +EXPORT_SYMBOL_GPL vmlinux 0x592987ae irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0x5933d8e1 sdhci_cqe_enable +EXPORT_SYMBOL_GPL vmlinux 0x593f51a4 of_mm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0x59413a9a sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x5947ca28 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x5954a3cc extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0x59551cc1 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x59593d4c edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x5969bb38 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x5979e084 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x597a86f0 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x598a16a8 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x5998e677 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x59a1fab8 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x59a312c6 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x59a35603 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x59a471b3 vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x59a479aa regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x59b5def6 clk_regmap_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x59b7a75c usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59c5b251 __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x59ca83d5 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0x59d2c48c disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x59d92c19 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x59df42cb task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x59e49fb0 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x59e76b08 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a3f22e3 snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a5c8c7f __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x5a5f96db seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0x5a60d70e serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a747fd1 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5aa5abf4 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ad17f4a dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x5ad32b68 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ad5537c snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0x5adf6019 spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x5ae3f665 is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x5ae83c07 iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x5aef606e crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL vmlinux 0x5afb591d dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x5aff26ff usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b243a10 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x5b2dce8d __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x5b2e0c86 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x5b3001e9 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x5b316080 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x5b3b12fe __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x5b3bdea8 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x5b448883 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x5b59ec88 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0x5b68dc24 ahci_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b723e28 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5b7c1604 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0x5b7ca1f1 posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x5b82d911 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b994e71 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x5b9a6b0f adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5baacb5d devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5baea4f7 strp_done +EXPORT_SYMBOL_GPL vmlinux 0x5bba6668 snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd3b7e1 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5beadc47 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x5bf1ebd7 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL vmlinux 0x5bf2bf0c firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x5c0cc9ae crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c309e65 hibernate_quiet_exec +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c44ab69 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x5c53b51c power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c683a94 extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x5c724709 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5c7d7c09 snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c84d1f6 mvebu_mbus_get_io_win_info +EXPORT_SYMBOL_GPL vmlinux 0x5c99d54e edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0x5ca01320 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5ca04770 fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x5ca5d030 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5cadaa15 vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x5cb306c7 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x5cc2a511 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x5cd34a6a usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x5ceb2a9f of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cfb6c6d device_attach +EXPORT_SYMBOL_GPL vmlinux 0x5d0a0eff __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5d0b42ef pinmux_generic_remove_function +EXPORT_SYMBOL_GPL vmlinux 0x5d113e45 of_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x5d1241fa virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x5d297356 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d30efb4 snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL vmlinux 0x5d340077 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d5f39e2 fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d6b6eec of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0x5d6fd72a sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x5d82a5b8 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d90280e pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x5d91f4d2 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5d99a006 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5db06b33 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x5db4314f component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x5ddcc44b snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x5dff6fda x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x5e04f5bb usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0x5e0a99e2 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x5e14e6b6 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL vmlinux 0x5e230ae0 gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x5e272913 of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0x5e2f69db __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x5e39bada debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5e3e16fc sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x5e49f43e vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x5e504919 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e5c8a1e devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x5e5ff0d0 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x5e60e0f7 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0x5e67b71d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0x5e6d3bb8 elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x5e76ea21 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5e96e614 rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x5eac2981 mtk_clk_register_composites +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5eb9c2ae __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0x5ec2319a mtk_mutex_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x5ecbe4fe strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x5ee3b49f devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0x5eedc98f xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x5ef1787a debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x5ef63232 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5ef751ea nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x5f1b30c7 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x5f1fd046 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f26fb96 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x5f304c78 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x5f319a4f nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x5f643cf5 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f8b307f cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f8e17b2 tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x5f93e350 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5f9b873f mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fab7169 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x5fb1aa4e irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x5fb348ea mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x5fc294ef usb_ep_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x5fc70474 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0x5fd11da3 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x5fd249c3 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x5fe12e23 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x5fe38512 i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0x5ffe9aa7 __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x60009a97 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x60036b08 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x6003d485 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x6003f048 spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x60054c3a dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x6008c91e platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6011eb03 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x60300d22 mtk_clk_gate_ops_setclr_inv +EXPORT_SYMBOL_GPL vmlinux 0x60302cb1 get_tree_mtd +EXPORT_SYMBOL_GPL vmlinux 0x6040a708 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x604172f4 fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0x6050227b inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x60606431 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0x6060ee96 housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0x60671345 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x606e4327 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x6075d0c7 omap_tll_init +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x6085843b dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x6091797f synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x6097e03e __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60abe22d __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60b0d701 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x60b5c0cf snd_soc_component_compr_open +EXPORT_SYMBOL_GPL vmlinux 0x60c26948 sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x60c2956a strp_process +EXPORT_SYMBOL_GPL vmlinux 0x60c43f58 sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL vmlinux 0x60cef196 snd_soc_add_component +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x610cb644 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x61163174 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x611b6220 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x61200a5b thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x612df3d1 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x614782f1 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all +EXPORT_SYMBOL_GPL vmlinux 0x615c5f73 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x616401a7 inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x616a3836 kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x616f1701 lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x6178a8a5 kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0x617b006a xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x61806d0e serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x6182353a devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619ef217 nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x61a5d010 fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x61b9ca06 tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0x61bb0778 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x61bd69bc platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61c2a859 nand_ecc_tweak_req +EXPORT_SYMBOL_GPL vmlinux 0x61d5dd7b tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x61e5bcaf sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x61ec3c3b ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x61f23022 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x62038baf register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x6216e074 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x621eb946 rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x62274f78 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x6249d94a of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0x6253c932 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x6261e741 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x626477d6 pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0x6268a395 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x629abb7d __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x62a3994b usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x62a9c1f0 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62c75b99 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x62ceb3ed ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x62d0e2a6 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x62e33eaa crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0x62fc2fc3 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x63090722 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x63197685 s2idle_wake +EXPORT_SYMBOL_GPL vmlinux 0x632cc491 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x63372a0a scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x6337d46e disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x633b4140 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x633cb2c6 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x633df511 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x635a115d paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x637c1a8d unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x63808708 xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0x63958d4f gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x63a03424 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x63add6d7 mmput +EXPORT_SYMBOL_GPL vmlinux 0x63b3171b ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0x63bd2462 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63e18c64 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63e6c1e8 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x63f382ef spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x63fcf4a8 mtk_pinconf_adv_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x6410bac9 snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0x64110d90 snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0x6412ad14 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0x64145670 crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x642ea52b fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0x643054c8 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x64334fff kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x643d29d1 vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL vmlinux 0x644bfdcf trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x64505c4e __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x645bc78f irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64902fc9 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0x6499ca92 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x64a2c7e7 meson_clk_mpll_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x64c07d32 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x64cd2571 register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x64e0e2ad pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64f05479 nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0x651bca67 fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x65227701 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x65230cc9 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x65423cad of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x6542ba46 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x65506d3f dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x65536278 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x65537437 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x6577e0b2 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0x65790b7d l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x658d603f crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x6590608e fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x659f4bba ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x659fd0bc fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x65a60c4e pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x65b51d7d rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x65bdb131 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x65bee259 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d70f8a pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x65d7c0ce phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x65d826e2 power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x65de6933 blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0x65f8e7cc regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x6612c2e9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661a2d4d anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6628d69a dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x663cb3bc snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x66424e94 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x66775176 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x6679057f sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x66826357 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL vmlinux 0x66aee9f0 fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x66b26b2b clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66bc5d2a regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x66c72c9a of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x66d85181 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e38950 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x66e84692 iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x66f43fed devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x66fc2bc0 badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x6703903b register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x670ac6af gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x671451cb mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x671a7cda snd_soc_lookup_component +EXPORT_SYMBOL_GPL vmlinux 0x671ba85c l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x671dab40 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x671fcef2 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x671fe9fe kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x672eab14 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x6730a96b ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x6740280b pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x67465e57 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x674903bd skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x674e461d irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x675c9032 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x675cf4d3 mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0x6766d7da __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x6769099f device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x676e69d4 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x6771590c blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x6778d362 bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x6781513c __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67987265 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x67a1127b devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x67a359e0 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x67b2b8f5 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x67d1460d usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x67da5581 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67ea9a5e devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x67f19642 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x6807309c ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x680bc696 sdhci_enable_clk +EXPORT_SYMBOL_GPL vmlinux 0x68133aed raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x68144de9 ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x6824d60a iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0x682ec42c dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x683eb181 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x6846c85f regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x68497666 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x685acc6f blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x68758fda nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x687a8da5 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x687fca31 imx6q_cpuidle_fec_irqs_used +EXPORT_SYMBOL_GPL vmlinux 0x6891880b cros_ec_get_sensor_count +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x68969bc0 icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0x689abd87 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x68a0dfd2 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x68a2393c snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL vmlinux 0x68a5834a crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x68a7fc9e blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x68ae2d43 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x68b3aea5 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x68c1e889 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0x68c455c6 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x68c53457 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x69073dc3 ahci_handle_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x6908d20f xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x690e42f7 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x691156ce of_gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x6913865a trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6914dd40 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x6917e445 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x692a4f08 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69326d8f switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x693d310a extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x6948e56d usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0x694bfe49 mtd_write_oob +EXPORT_SYMBOL_GPL vmlinux 0x694e99a5 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x695bf5e9 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x695c83a9 dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x6965284d of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x696e86e2 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init +EXPORT_SYMBOL_GPL vmlinux 0x6977917d devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697b3852 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x69921935 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x69973e75 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x69af25ae event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0x69b343d3 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x69b5b5a2 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d28eac mtk_clk_unregister_composites +EXPORT_SYMBOL_GPL vmlinux 0x69d485a2 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x69d6a903 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x69e24514 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x69e452e9 kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69e83605 mc146818_get_time +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x69f31464 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x6a036186 usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a140b70 vfio_mig_get_next_state +EXPORT_SYMBOL_GPL vmlinux 0x6a1482d7 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x6a22331e imx_obtain_fixed_clk_hw +EXPORT_SYMBOL_GPL vmlinux 0x6a29e5d2 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0x6a36420b __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x6a367b0f scmi_protocol_register +EXPORT_SYMBOL_GPL vmlinux 0x6a460dc5 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x6a4f623b mmu_notifier_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x6a6fa6b6 phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x6a7ec5ce blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x6a9478a6 __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x6a99427d extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0x6a9b3891 devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x6aa5e412 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x6aa85677 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x6ab8ef18 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ac7a81f nand_select_target +EXPORT_SYMBOL_GPL vmlinux 0x6ade1c95 snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL vmlinux 0x6ae8101b clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x6aeadac0 crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x6af147e2 of_genpd_add_provider_onecell +EXPORT_SYMBOL_GPL vmlinux 0x6af67da8 fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL vmlinux 0x6b07829a fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x6b0c5aa2 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b2792e5 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x6b27cc80 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x6b31540f crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x6b31653a ahci_start_fis_rx +EXPORT_SYMBOL_GPL vmlinux 0x6b334acc trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b3bcb53 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x6b3fb588 xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b47f8a4 hisi_clk_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x6b525eeb tps65217_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x6b70e0e4 genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x6b719e35 device_register +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6baa78da __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bb04338 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0x6bb11300 of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6bb43837 nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x6bb95287 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x6bbe7a01 blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x6bc31a18 mmc_pwrseq_register +EXPORT_SYMBOL_GPL vmlinux 0x6bc60609 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x6bcb71d7 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6bdd680c snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL vmlinux 0x6beb97b0 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x6bf9817d thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x6c1856d2 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x6c2e5d09 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x6c2fcb4b create_signature +EXPORT_SYMBOL_GPL vmlinux 0x6c36282b housekeeping_affine +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 0x6c525118 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x6c52b730 snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL vmlinux 0x6c5534e5 edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c615b7b __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x6c62777e __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x6c7b435f mc146818_does_rtc_work +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6c965533 omap_iommu_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6caa82fe hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x6caaf9f4 hisi_clk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6caec4c0 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x6cb6f276 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x6cc3169a wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0x6cd17e49 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x6cd414bd ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x6cde1165 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x6cede952 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x6cf77689 fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x6d003643 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x6d023263 qcom_smem_state_register +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d3d0019 ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x6d467b08 arm_smccc_1_1_get_conduit +EXPORT_SYMBOL_GPL vmlinux 0x6d579600 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x6d5b8219 devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x6d5c6fc7 of_platform_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d646f6d snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0x6d6b0f98 pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x6d6b2e0f ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7c032a xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x6d7e18ca perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d833417 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x6d916c6a nand_ecc_restore_req +EXPORT_SYMBOL_GPL vmlinux 0x6da4b901 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x6db5e7ea regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dbc4617 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x6dc43f43 imx6q_cpuidle_fec_irqs_unused +EXPORT_SYMBOL_GPL vmlinux 0x6dcc0df9 device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x6dd1b8a7 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6dd627f1 snd_soc_component_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x6dde193e iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x6de0fe45 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x6de9458a snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0x6dec7bb0 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6dfbf3bd tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x6e031aa5 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e163a58 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x6e1e56e8 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x6e2a6fda ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e49b454 blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0x6e4d10b5 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0x6e51e2ca ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x6e58299c ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x6e598dc9 md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x6e635087 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x6e679321 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0x6e683693 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x6e6ac389 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x6e6bd447 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x6e6ea796 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x6e77a1fa l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e8446db snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x6e85962c of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6eb15d9a devm_qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x6eb88cc8 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec5b05d ahci_platform_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6ee990d1 lpddr2_jedec_manufacturer +EXPORT_SYMBOL_GPL vmlinux 0x6eee039c snd_soc_set_dmi_name +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6f031ff9 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x6f094449 edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f308824 i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0x6f354641 nand_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6f3ed2a3 sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x6f4873b9 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x6f490b43 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f725de8 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL vmlinux 0x6f7cb889 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6fb45e2e mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0x6fb7e313 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x6fcc15c1 __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fcf0bb9 __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x6fd1439d crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x6ff4e396 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x700dd31c snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x701c2a7b pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x702151b1 usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x70240944 clk_hw_register_gate2 +EXPORT_SYMBOL_GPL vmlinux 0x70336436 snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL vmlinux 0x7045d04d snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x70467cc4 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0x70499642 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x7057d8c8 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x705ca535 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7064a796 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x7072eaa6 power_supply_get_property_from_supplier +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7084edd1 nand_reset_op +EXPORT_SYMBOL_GPL vmlinux 0x70951607 free_vm_area +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 0x70d7f46b folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0x70dafa1b dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x70e24953 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x71018320 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x7102c85c genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710cff13 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x710d19ac xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x711b9bc7 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0x713debd3 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL vmlinux 0x713fa43b serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7145544f mtk_clk_unregister_gates +EXPORT_SYMBOL_GPL vmlinux 0x7150e99c dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0x7156caf1 tegra_bpmp_mrq_return +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x715a4f37 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x715cba0b snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716b5bdd page_endio +EXPORT_SYMBOL_GPL vmlinux 0x716de951 dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x7173250b __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x71825177 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x718c2514 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x718e1e7a devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x71997166 i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL vmlinux 0x719dd3db bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a97c1b policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x71a9a3ab mtk_mutex_acquire +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71bf71e9 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x71c0c4a7 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x71c2cbe8 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x71c99417 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x71d43d6f blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x71d53bde pci_bridge_emul_conf_read +EXPORT_SYMBOL_GPL vmlinux 0x71e436c9 of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0x71f522a4 crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x71fbc820 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x7234cafa clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7236bdf8 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x723e8513 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7243890e clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x72459bdf pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0x724ab555 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x7266edeb dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72885b48 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x72897fa2 devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x728fb6d0 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x728fdee9 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x7290212d crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x72af5270 thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0x72b299e1 efi_capsule_supported +EXPORT_SYMBOL_GPL vmlinux 0x72be62b1 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x72daa924 usb_gadget_connect +EXPORT_SYMBOL_GPL vmlinux 0x72f18f97 gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x73005918 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x73041aba irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7330895a dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0x73346067 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x7335912a cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x7348293b edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x734e31db iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x734f341b sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x735d8870 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x736dfb48 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x7384723e usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0x739325b0 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x73983c66 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x7398ff35 of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0x73a44169 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73ac1358 pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x73b6d6ce of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x73b98231 asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0x73ba64e7 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x73c93a88 crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73ce953c tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x73d2e530 icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x73d65e88 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x73e6697c serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x73eaa81f of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x740c686b devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x74145989 dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL vmlinux 0x74246f2d snd_soc_add_component_controls +EXPORT_SYMBOL_GPL vmlinux 0x742fc301 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x7430f7b4 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743cc2cf blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x7447fd89 devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x744cac11 sdhci_adma_write_desc +EXPORT_SYMBOL_GPL vmlinux 0x7459943b inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x746c37e1 snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x746eba66 mtk_pinconf_adv_drive_set_raw +EXPORT_SYMBOL_GPL vmlinux 0x747494a8 bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0x74819ea7 snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL vmlinux 0x748df313 mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL vmlinux 0x749391fb serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x7495ef52 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74babf8e sdhci_pltfm_resume +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74bd10e0 pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0x74e68d29 devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x74e95a44 lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0x74f017e9 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x74f8d3c8 finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x74fdf865 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0x74fe65ee fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x74feb0af vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0x7503982f cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x7503d761 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x7513b5ec __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x751a8e37 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x751f2081 __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x751faf9e pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x751fd0a2 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7526e543 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0x75293cd7 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7533047f devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x755ae3c8 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x75687555 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only +EXPORT_SYMBOL_GPL vmlinux 0x75aa74ad dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x75ac0015 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x75acca1b devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0x75bf6cc0 is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x75cc124d regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x75cc637b nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove +EXPORT_SYMBOL_GPL vmlinux 0x75dee61c of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0x75e4b4a6 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e94d85 of_device_request_module +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75fb9062 arch_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x7600b45a iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x76082154 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x76096b7b blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x7612f41c sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x7618643e led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x7625f804 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7627ae57 devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x762a8119 snd_pcm_stream_lock +EXPORT_SYMBOL_GPL vmlinux 0x763a90aa srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x76418e72 hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x766023bc power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x766c8ff0 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768da472 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x76945c62 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x769ef461 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x76b29892 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x76c34644 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x76e10a88 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x76e89e2c efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x7700f288 __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x770df444 fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x771dfcee cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x7726f468 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x77377b12 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x773f2713 clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x7740b989 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x77428b23 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7745b0d6 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x774efaf8 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77798426 regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x77814f1f fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x7783e687 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x77855bdb dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0x778d4895 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x7797d873 __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77b2349d snd_card_free_on_error +EXPORT_SYMBOL_GPL vmlinux 0x77b67cff devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x77c4c31f crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x77c7fa38 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x77ca0ab9 snd_device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x77ccc87f devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x77d499db sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77e7b022 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x77ee4fbf of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7824ee54 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x78465080 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x7855fbc7 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x786336dc class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x78733a6b ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x78924f58 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x78bc565b __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0x78c64dff rockchip_clk_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x78ccec01 regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x78ddb76b dmi_match +EXPORT_SYMBOL_GPL vmlinux 0x78e3e065 dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x78e9e5f7 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x78ee8b6f rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x78f62b77 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x79098f95 iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x790c663a sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x793207a1 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x793af8da ahci_platform_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x793d2cca usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79470a2c TSS_authhmac +EXPORT_SYMBOL_GPL vmlinux 0x79499888 nanddev_isreserved +EXPORT_SYMBOL_GPL vmlinux 0x794a0461 rockchip_pcie_disable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x794b7271 orderly_reboot +EXPORT_SYMBOL_GPL vmlinux 0x795fd4d3 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x79676261 mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0x79762212 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x79817ff7 of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x798a4c84 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x798eb458 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x799df638 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x79a742ee md_run +EXPORT_SYMBOL_GPL vmlinux 0x79ae1789 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x79cc0cac __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x79d05263 gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x79d1eca1 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x79d25acd adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x79d638f0 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79e24a3c nand_soft_waitrdy +EXPORT_SYMBOL_GPL vmlinux 0x79e8a721 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x79ff6fd8 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a0273f3 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x7a18b3ac pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x7a2134e8 spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7a2bd662 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x7a40824b devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x7a41b9f2 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL vmlinux 0x7a48d06c cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x7a4afd53 mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x7a4f58fd mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x7a55b630 reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7a5bdf88 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x7a5cd6bc nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x7a67d4ee i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0x7a67ee04 nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x7a725575 led_put +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a7f1396 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a843e18 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa76d7d dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x7ab71ce8 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7ac10ad8 icst_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7acc7265 unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7b163832 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b44a2cc kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0x7b46f719 irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0x7b4a2bc1 alloc_io_pgtable_ops +EXPORT_SYMBOL_GPL vmlinux 0x7b536d97 mtk_clk_gate_ops_no_setclr +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b669600 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b8dede7 tps65217_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7b97b3bf gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x7b9da73d page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0x7b9e58be imx8ulp_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7ba79687 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x7ba83813 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x7bad84a6 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bb39a2e gpmc_omap_onenand_set_timings +EXPORT_SYMBOL_GPL vmlinux 0x7bba8f27 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x7bbc8122 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0x7bbe2170 pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0x7bc83b5f clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x7bce8dbe devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7bcebcf6 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7be16dda alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x7be2bd8c dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7be89624 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL vmlinux 0x7bf2b8a3 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7bfe010c of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0x7bfe9945 of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x7c0a353d pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7c1d8f49 tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0x7c277115 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7c28526f fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c3fa550 efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x7c49d8b8 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x7c5444f1 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x7c5968da disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7c688618 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7c72ed6f syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x7c983a5d dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x7c9a7371 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7c9da611 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7ca3d4dd thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ce25a9f get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cf9f3a0 __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x7d00f76f usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x7d051b0e mtd_pairing_groups +EXPORT_SYMBOL_GPL vmlinux 0x7d1272b2 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0x7d1d37cd device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7d42cdf9 nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d4927c9 iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x7d4b0b3a of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7d4b4723 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5f5c8d devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x7d792ea8 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7d8a4e62 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL vmlinux 0x7dc0a7ac irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x7dcd0ba8 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7dd25232 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddf0b51 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7de86307 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x7e07231c extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7e0f2210 crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e498054 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x7e4c4a5f netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x7e5870f7 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6b1d48 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7e794ebc rockchip_clk_register_armclk +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e8fc9a8 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7eb52436 vfio_file_has_dev +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ebaf6ba fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x7eca8a7b i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7ecca1ba skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x7ecfac08 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7ef6f69e __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f0166a1 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7f2623ee mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x7f2d68f3 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f33ec8d devres_add +EXPORT_SYMBOL_GPL vmlinux 0x7f3a2dba wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x7f4caeb0 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x7f4f8c36 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x7f5169f9 devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x7f550ec3 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL vmlinux 0x7f60f04b pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x7f64746c ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x7f66ad78 dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f8dd2bb bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fafdec9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fb6c2eb ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fc5cb49 dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0x7fde6a70 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __device_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __imx8m_clk_hw_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ktime_divns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __put_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sdhci_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __xas_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_disable_clks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_disable_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_enable_clks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_enable_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_init_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_platform_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_shost_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff amba_bustype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_iommu_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_iommu_release_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff arm_smccc_get_version +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switch_request_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_put_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bL_switcher_trace_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bch_decode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_poll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bprintf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_last +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cci_probed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_register_hisi_phase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_gate_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_regmap_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clk_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff component_release_of +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_misc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpts_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_dbs_governor_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_enable_boost_support +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crc64_be +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff cros_ec_command +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devices_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regmap_init_vexpress_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_tegra_core_dev_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_memdev_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dmi_memdev_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_find +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dt_init_idle_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dtpm_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dtpm_destroy_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff exynos_get_pmu_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff flush_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff free_rs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gadget_find_ep_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_ack_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hibernation_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_register_gate_sep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_clk_register_phase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hisi_reset_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_detect_slave_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_slave_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff i2c_slave_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff icst_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx93_clk_composite_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_1443x_dram_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_ccm_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_clk_hw_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_clk_hw_pllv4 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_dev_clk_hw_pll14xx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_fracn_gppll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_pcm_dma_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_pcm_fiq_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff imx_pinctrl_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_rs_gfp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff inode_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_class +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_input +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipi_get_hwirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipi_send_mask +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff klist_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_func +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff kvm_arch_ptp_get_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lcm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mc146818_avoid_UIP +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mcore_booted +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mcpm_is_available +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md5_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson8_aobus_parse_dt_extra +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson_pmx_get_funcs_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff meson_pmx_get_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_strmode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_tx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_alloc_clk_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_build_eint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_factors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_fixed_clks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_unregister_factors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_clk_unregister_muxes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_eint_do_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_eint_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_eint_find_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_hw_set_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mmsys_ddp_connect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_add_comp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_mutex_remove_comp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_adv_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_adv_drive_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_adv_pull_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_disable_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_get_combo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_set_combo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_bias_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_get_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mtk_pinconf_drive_set_rev1 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_clearb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_queue_resume_work +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_readl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_root_disconnect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff musb_writew +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mv_mbus_dram_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mv_mbus_dram_info_nooverlap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_get_pcie_io_aperture +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff mvebu_mbus_get_pcie_mem_aperture +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_change_write_column_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_decode_ext_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_deselect_target +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_erase_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_gpio_waitrdy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_read_page_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_subop_get_data_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_bbt_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_bbt_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_erase +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_cmd_dimm_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nf_route +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff no_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff null_dailink_component +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_add_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_changeset_revert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_named_gpio_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_overlay_fdt_apply +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_property_read_variable_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reserved_mem_device_init_by_idx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_thermal_is_trip_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_iommu_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_tll_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff omap_tll_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_conf_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_emul_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_configure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_get_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_gpio_set_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_err +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl08x_filter_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_group_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff probes_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff prof_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff public_key_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff qcom_smem_state_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff qcom_smem_state_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff receive_fd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff return_address +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_of_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_protect_critical +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_branches +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_ddrclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_clk_register_plls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pcie_deinit_phys +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pcie_enable_clocks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pcie_init_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pmu_block +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_pmu_unblock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rockchip_register_restart_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff run_dax +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scmi_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scmi_protocol_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_calc_clk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_cleanup_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_get_property +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_set_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_set_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_set_power_noreg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_setup_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdhci_switch_external_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sm501_find_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sm501_set_clock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ac97_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_card_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_card_disconnect_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_card_ref +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_compr_stop_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_register_layer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_ctl_request_layer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_device_get_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_devm_card_new +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dma_buffer_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_fasync_helper +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_kill_fasync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_fill_iec958_consumer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_rate_mask_intersect +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_rate_range_to_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_card_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_initialize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_set_jack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_component_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_action +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_find_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_dai_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_register_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_tplg_widget_bind_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snd_soc_unregister_dai +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff split_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sram_exec_copy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfb_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra20_clk_prepare_emc_mc_same_freq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra20_clk_set_emc_round_callback +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_free_mrq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_get +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_transfer +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_bpmp_transfer_atomic +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_mc_get_emem_device_count +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_mc_probe_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_mc_write_emem_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_read_ram_code +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tegra_xusb_padctl_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_of_get_sensor_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff ti_clk_is_in_standby +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff topology_clear_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff topology_set_scale_freq_source +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps65217_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps65217_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_gadget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_del_gadget +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_disable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ep_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_check_config +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gadget_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_gen_phy_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_generic_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_generic_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_string +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_udc_vbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_describe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff user_update +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vchan_tx_desc_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_assign_device_set +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_file_iommu_group +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_file_set_kvm +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_init_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_register_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_uninit_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfio_unregister_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_port_rx +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_load +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_split +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff yield_to +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_free +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0x7fffffff zs_unmap_object +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x7fffffff fw_fallback_config vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x7fffffff register_firmware_config_sysctl vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0x7fffffff hwmon_device_register_for_thermal vmlinux +IIO_AD5592R EXPORT_SYMBOL_GPL 0x267c29c3 ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x7fffffff ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x544701d7 ad5686_probe drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0x5db63443 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0x1a78b5e0 ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0x1e82ff0e ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x7fffffff ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0x7fffffff ad7606_probe drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0x4fd781fb adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0x7fffffff __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x0c069b04 adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x2bfe290c __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x42386bbf adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x524f0b80 adis_init drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x645f9c28 devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x6f94cdf6 devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x791fb231 __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7bc3a51d __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7fffffff __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x7fffffff __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x57c5cae0 __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x7fffffff adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x7fffffff adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x7fffffff adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x7fffffff adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x7fffffff adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0x7fffffff adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x2e589b1b adxl372_probe drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x48cf5016 adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x176089ec ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x188989bc ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x1d063c81 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x43485374 ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x437fc55d ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x5d5c8103 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7fffffff ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x30b7bb5f bma400_probe drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0x7fffffff bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x19f76148 bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7fffffff bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7fffffff bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x7fffffff bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x3bfdb5de bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x67060056 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x7e2f061e bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0x7fffffff bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0x2fd44f67 bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0x7fffffff bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x5fac3278 bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x7fffffff bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x7fffffff bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x7fffffff bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x207878d5 fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x79cde91b fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7fffffff fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x7fffffff fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x067c8907 hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x39824054 hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x59973ce5 hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x65828fd6 hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x6a7c064c hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x736d7bff hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7fffffff hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x3f0f1964 hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x6dd9cd9f hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x749cf574 hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x7fffffff hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x3cf29667 hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7fffffff hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x16b8e39b kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x208d53f6 kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0x7fffffff kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x01efad1a ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x0e882043 ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x10402f8d ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x39bc508d ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x593b2c7d ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x78312de4 ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7fffffff ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x208d84b4 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x6a85d0ce mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x71217eb9 mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x01c55c9a mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x288e21e5 mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x410748e3 mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5846cc3a mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x5ca98d1b mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x608ea81c mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x789ab896 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x7fffffff mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0x2dde1020 mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0x551cb1e4 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0x7a7e6bb1 ms5611_probe drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x23ea47e1 rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x7fffffff rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x7fffffff rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x4038de75 scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0x7fffffff scd30_probe drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x0057c66d ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x217f8927 ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x2394c5b7 ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7c4bf7f6 ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x7fffffff ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x07633ba7 st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x078f2f4a st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x0b6cbde3 st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x125da3db st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x13dabaf0 st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x14398995 st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x16e863bf st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x1ae900ab st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x20c1fd95 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x2d3abcd0 st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x50d1a689 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x5d85639f st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x603fb5ab st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x6c66bee1 st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x6cf49313 st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7fffffff st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0x7fffffff st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x2be72b30 st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0x3a2a6f0c st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x158d6e66 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x31e98a8e zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x6180e07f zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7fffffff zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7fffffff zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x7fffffff zpa2326_remove drivers/iio/pressure/zpa2326 +IWLWIFI EXPORT_SYMBOL_GPL 0x0d863a70 iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1562a770 iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x16aaab79 iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1895b814 __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1972d40a iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x19d268ba iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1c48129a iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x241ee3d4 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x28a83bd3 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x29e632ed iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2c0f571f iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2e243015 iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4059976d iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4b3aa88b iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4c6e0637 iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x51db9ad1 iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x53f304b3 iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x543555bc iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5bff7d6b __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5cb4e7b8 iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5ef4a44d iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x65a857a5 iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x66e8ceb8 iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6a51f7d4 iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x73a78988 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7fffffff iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x3bedcbd5 ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0x7fffffff ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x0029554e mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x269e60ce mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x44cd90f1 mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x688c42b2 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7d3c9af1 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_release_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x7fffffff mcb_unregister_driver drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x0916b712 nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x2c136bdb nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_passthru_end drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x7fffffff nvme_put_ns drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x01699eb4 peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x025ed68d peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x06d65b25 peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x415f95d0 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x4bf846e1 peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x58cb55ff peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x5bbe1404 devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x69a17738 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x73d8890f peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7ec232f0 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7fffffff peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x20e0ecf4 peci_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x465f8aa7 peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x4fed7525 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7d848440 peci_ep_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x7fffffff peci_pcs_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x067b72a2 pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x142822a5 pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x16ec83c6 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x1857b4ad pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x192927f1 pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x22eb6ad5 pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x26b7a8f8 pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x29602f52 pmbus_set_page drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x318eac8a pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x39f08979 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x66e28d84 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x6fd7380c pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x76c37669 pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7fffffff pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x3c4be2d3 sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x53d51f73 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x64d08328 sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x7fffffff sx_common_events drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x7fffffff sx_common_write_event_config drivers/iio/proximity/sx_common +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x0d0db4c3 cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x3c8ad76a cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x641a9ecb cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x7fffffff cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x499edd0f dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7b349bb2 dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_add_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x7fffffff dw_spi_update_config drivers/spi/spi-dw +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x7fffffff firmware_request_builtin vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x0a6b6fd1 fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x0ade16c5 usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x0c8b7f15 usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x18effe76 usb_stor_probe1 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 0x3bcf5441 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x4c158601 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x51b9b691 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x60cae2ce usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6781a44c usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x793e4aa9 usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7fffffff usb_stor_suspend drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/armhf/generic-lpae.compiler +++ linux-5.19.0/debian.master/abi/armhf/generic-lpae.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/armhf/generic-lpae.modules +++ linux-5.19.0/debian.master/abi/armhf/generic-lpae.modules @@ -0,0 +1,6781 @@ +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_aspeed_vuart +8250_dw +8250_exar +8250_men_mcb +8250_pericom +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_fd +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a53-pll +a7-pll +a8293 +aacraid +aat2870-regulator +aat2870_bl +abp060mg +acard-ahci +acecad +acenic +acer-ec-a500 +acer_a500_battery +acp_audio_dma +act8865-regulator +act8945a +act8945a-regulator +act8945a_charger +act_bpf +act_connmark +act_csum +act_ct +act_ctinfo +act_gact +act_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ad9467 +ad9523 +ad9832 +ad9834 +ad_sigma_delta +ada4250 +adc-joystick +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 +adi-axi-adc +adiantum +adin +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv4420 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv748x +adv7511 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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 +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +al3320a +alcor +alcor_pci +algif_aead +algif_hash +algif_rng +algif_skcipher +alim7101_wdt +altera-ci +altera-cvp +altera-fpga2sdram +altera-freeze-bridge +altera-hps2fpga +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-clcd +amba-pl010 +ambakmi +amc6821 +amd +amd5536udc_pci +amd8111e +amdgpu +amlogic-gxl-crypto +amlogic_thermal +amphion-vpu +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 +amt +analog +analogix-anx6345 +analogix-anx78xx +analogix_dp +anatop-regulator +ansi_cprng +anx7625 +anybuss_core +ao-cec +ao-cec-g12a +aoe +apbps2 +apcs-msm8916 +apcs-sdx55 +apds9300 +apds9802als +apds990x +apds9960 +apple-mfi-fastcharge +appledisplay +appletalk +appletouch +applicom +apr +apss-ipq-pll +apss-ipq6018 +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar1021_i2c +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_emac +arc_ps2 +arc_uart +arcmsr +arcnet +arcpgu +arcx-anybus +arcxcnn_bl +arizona +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arm_mhu +arm_mhu_db +arm_mhuv2 +arm_scpi +arm_smc_wdt +arm_smccc_trng +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 +as73211 +asc7621 +ascot2e +asix +aspeed-lpc-ctrl +aspeed-lpc-snoop +aspeed-p2a-ctrl +aspeed-pwm-tacho +aspeed-uart-routing +aspeed-vhub +aspeed-video +aspeed_adc +aspeed_edac +aspeed_gfx +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +ata_generic +ata_piix +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_snoc +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-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 +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796 +ax88796b +ax88796c +axi-fan-control +axis-fifo +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +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 +ba431-rng +bam_dma +bareudp +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm-keypad +bcm-phy-lib +bcm-sf2 +bcm203x +bcm3510 +bcm47xxsflash +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm63138_nand +bcm6368_nand +bcm7xxx +bcm87xx +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd71815-regulator +bd71828-regulator +bd718x7-regulator +bd9571mwv +bd9571mwv-regulator +bd9576-regulator +bd9576_wdt +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +berlin2-adc +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b-neon +blake2b_generic +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpck6 +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_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 +btmtk +btmtksdio +btmtkuart +btqca +btqcomsmd +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +caam +caam_jr +caamalg_desc +caamhash_desc +cachefiles +cadence-nand-controller +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +caif_usb +caif_virtio +camcc-sc7180 +camcc-sc7280 +camcc-sdm845 +camcc-sm8250 +camellia_generic +can +can-bcm +can-dev +can-gw +can-isotp +can-j1939 +can-raw +cap11xx +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 +ccs +ccs-pll +ccs811 +cctrng +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-dphy +cdns-dphy-rx +cdns-dsi +cdns-mhdp8546 +cdns-pltfrm +cdns-usb-common +cdns3 +cdns3-imx +cec +ceph +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha-neon +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone-icn6211 +chipone_icn8318 +chnl_net +chrontel-ch7033 +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_tegra +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cirrus +cirrusfb +clip +clk-axi-clkgen +clk-bd718x7 +clk-cdce706 +clk-cdce925 +clk-cs2000-cp +clk-hi3519 +clk-hi655x +clk-imx8ulp +clk-imx93 +clk-lmk04832 +clk-lochnagar +clk-max77686 +clk-max9485 +clk-palmas +clk-pwm +clk-qcom +clk-renesas-pcie +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-twl6040 +clk-versaclock5 +clk-wm831x +clk-xlnx-clock-wizard +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +cls_u32 +cm109 +cm32181 +cm3232 +cm3323 +cm3605 +cm36651 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmtp +cnic +cobra +coda +coda-vpu +colibri-vf50-ts +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_8254 +comedi_8255 +comedi_bond +comedi_example_test +comedi_parport +comedi_pci +comedi_test +comedi_usb +comm +contec_pci_dio +cordic +core +corsair-cpro +corsair-psu +cortina +counter +cp210x +cpcap-adc +cpcap-battery +cpcap-charger +cpcap-pwrbutton +cpcap-regulator +cpia2 +cppi41 +cpr +cramfs +crc-itu-t +crc32-arm-ce +crc32_generic +crc4 +crc7 +crct10dif-arm-ce +crg-hi3516cv300 +crg-hi3798cv200 +cros-ec-anx7688 +cros-ec-cec +cros-ec-regulator +cros-ec-sensorhub +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_mkbp_proximity +cros_ec_rpmsg +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_ec_typec +cros_ec_vbc +cros_peripheral_charger +cros_usbpd-charger +cros_usbpd_logger +cros_usbpd_notify +cryptd +crypto_engine +crypto_safexcel +crypto_simd +crypto_user +cs3308 +cs5345 +cs53l32a +cs89x0 +cs_dsp +csiostor +ctucanfd +ctucanfd_pci +ctucanfd_platform +curve25519-generic +curve25519-neon +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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_core +cxl_mem +cxl_pci +cxl_pmem +cxl_port +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da9030_battery +da9034-ts +da903x-regulator +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 +da9121-regulator +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 +ddbridge-dummy-fe +de2104x +decnet +defxx +delta-ahe50dc-fan +denali +denali_dt +denali_pci +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +digicolor-usart +diskonchip +dispcc-qcm2290 +dispcc-sc7180 +dispcc-sc7280 +dispcc-sdm845 +dispcc-sm6125 +dispcc-sm6350 +dispcc-sm8250 +display-connector +dl2k +dlhl60d +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-historical-service-time +dm-integrity +dm-io-affinity +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 +dm9051 +dm9601 +dma-axi-dmac +dmard06 +dmard09 +dmard10 +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dove_thermal +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dp83td510 +dpot-dac +dps310 +dps920ab +drbd +drivetemp +drm +drm_cma_helper +drm_display_helper +drm_dp_aux_bus +drm_kms_helper +drm_mipi_dbi +drm_shmem_helper +drm_ttm_helper +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 +dtpm +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-gp-audio +dw-hdmi-i2s-audio +dw-i3c-master +dw-mipi-dsi +dw-xdata-pcie +dw9714 +dw9768 +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 +dwc2_pci +dwc3 +dwc3-haps +dwc3-meson-g12a +dwc3-of-simple +dwc3-omap +dwc3-qcom +dwmac-altr-socfpga +dwmac-dwc-qos-eth +dwmac-generic +dwmac-imx +dwmac-intel-plat +dwmac-ipq806x +dwmac-loongson +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 +ecc-mtk +ecdh_generic +ecdsa_generic +echainiv +echo +ecrdsa_generic +edt-ft5x06 +ee1004 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efct +efi-pstore +efi_test +efibc +efs +egalax_ts +egalax_ts_serial +ehci-fsl +ehci-npcm7xx +ehci-omap +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 +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 +etas_es58x +ethoc +etnaviv +evbug +exc3000 +exfat +extcon-adc-jack +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 +extcon-usbc-tusb320 +exynosdrm +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fan53555 +fan53880 +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_seps525 +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 +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 +fsa4480 +fscache +fsi-core +fsi-master-aspeed +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-enetc +fsl-enetc-ierb +fsl-enetc-mdio +fsl-enetc-ptp +fsl-enetc-vf +fsl-ldb +fsl-mph-dr-of +fsl-qdma +fsl_imx8_ddr_perf +fsl_linflexuart +fsl_lpuart +fsl_pq_mdio +fsl_ucc_hdlc +fsp-3y +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftm-quaddec +ftmac100 +ftsteutates +ftwdt010_wdt +fujitsu_ts +funcore +funeth +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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 +gateworks-gsc +gb-audio-apbridgea +gb-audio-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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-ipq6018 +gcc-ipq806x +gcc-ipq8074 +gcc-mdm9607 +gcc-mdm9615 +gcc-msm8660 +gcc-msm8916 +gcc-msm8939 +gcc-msm8953 +gcc-msm8960 +gcc-msm8974 +gcc-msm8976 +gcc-msm8994 +gcc-msm8996 +gcc-msm8998 +gcc-qcm2290 +gcc-qcs404 +gcc-sc7180 +gcc-sc7280 +gcc-sc8180x +gcc-sc8280xp +gcc-sdm660 +gcc-sdm845 +gcc-sdx55 +gcc-sdx65 +gcc-sm6115 +gcc-sm6125 +gcc-sm6350 +gcc-sm8150 +gcc-sm8250 +gcc-sm8350 +gcc-sm8450 +gdmtty +gdmulte +ge2d +gemini +gen_probe +generic +generic-adc-battery +genet +geneve +gf2k +gfs2 +ghash-arm-ce +gianfar_driver +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpi +gpio +gpio-74x164 +gpio-74xx-mmio +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-altera +gpio-altera-a10sr +gpio-amd-fch +gpio-arizona +gpio-aspeed +gpio-bd71815 +gpio-bd71828 +gpio-bd9571mwv +gpio-beeper +gpio-cadence +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dln2 +gpio-dwapb +gpio-en7523 +gpio-exar +gpio-fan +gpio-grgpio +gpio-gw-pld +gpio-hlwd +gpio-ir-recv +gpio-ir-tx +gpio-janz-ttl +gpio-kempld +gpio-logicvc +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-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-rcar +gpio-rdc321x +gpio-regulator +gpio-rockchip +gpio-sama5d2-piobu +gpio-sim +gpio-siox +gpio-syscon +gpio-tpic2810 +gpio-tps65086 +gpio-tps65218 +gpio-tps65912 +gpio-ts4800 +gpio-ts4900 +gpio-ucb1400 +gpio-vibra +gpio-viperboard +gpio-virtio +gpio-wcd934x +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-msm8998 +gpucc-sc7180 +gpucc-sc7280 +gpucc-sdm660 +gpucc-sdm845 +gpucc-sm6350 +gpucc-sm8150 +gpucc-sm8250 +gr_udc +grace +grcan +gre +greybus +grip +grip_mp +gs1662 +gs_usb +gsc-hwmon +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 +gtp +gud +guillemot +gunze +gve +gxp-wdt +habanalabs +hackrf +hamachi +hampshire +hantro-vpu +hanwang +hci +hci_nokia +hci_uart +hci_vhci +hclge +hclgevf +hd3ss3220 +hd44780 +hd44780_common +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcd +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfpll +hfs +hfsplus +hi311x +hi3660-mailbox +hi556 +hi6210-i2s +hi6220-mailbox +hi6220_reset +hi6421-pmic-core +hi6421-regulator +hi6421-spmi-pmic +hi6421v530-regulator +hi6421v600-irq +hi6421v600-regulator +hi655x-pmic +hi655x-regulator +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +highbank-cpufreq +highbank_l2_edac +highbank_mc_edac +hih6130 +hip04_eth +hisi-rng +hisi-sfc +hisi-spmi-controller +hisi504_nand +hisi_femac +hisi_hikey_usb +hisi_powerkey +hisi_thermal +hix5hd2_gmac +hmc425a +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 +hp206c +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +ht16k33 +htc-pasic3 +hts221 +hts221_i2c +hts221_spi +htu21 +huawei_cdc_ncm +hwmon-vid +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-altera +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-aspeed +i2c-axxia +i2c-cbus-gpio +i2c-ccgx-ucsi +i2c-cp2615 +i2c-cros-ec-tunnel +i2c-demux-pinctrl +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-fsi +i2c-gpio +i2c-hid +i2c-hid-of +i2c-hid-of-goodix +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-npcm7xx +i2c-nvidia-gpu +i2c-ocores +i2c-owl +i2c-parport +i2c-pca-platform +i2c-piix4 +i2c-pxa +i2c-qcom-cci +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-virtio +i2c-xiic +i3c +i3c-master-cdns +i40e +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-bcm-voter +icc-osm-l3 +icc-rpmh +icc-smd-rpm +ice +ice40-spi +icp10100 +icp_multi +icplus +ics932s401 +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +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-audio-rpmsg +imx-bus +imx-cpufreq-dt +imx-dma +imx-dsp +imx-interconnect +imx-ipu-v3 +imx-ldb +imx-mailbox +imx-media-common +imx-mipi-csis +imx-pcm-rpmsg +imx-pxp +imx-rngc +imx-sdma +imx-tve +imx-vdoa +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx2_wdt +imx319 +imx334 +imx335 +imx355 +imx412 +imx6-media +imx6-media-csi +imx6-mipi-csi2 +imx6q-cpufreq +imx6ul_tsc +imx7-media-csi +imx7d_adc +imx7ulp_wdt +imx8m-ddrc +imx8mm-interconnect +imx8mm_thermal +imx8mn-interconnect +imx8mq-interconnect +imx8mq-mipi-csi2 +imx8qxp-adc +imx_dsp_rproc +imx_keypad +imx_rproc +imx_sc_key +imx_sc_thermal +imx_sc_wdt +imx_thermal +imxdrm +imxfb +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int51x1 +intel-m10-bmc +intel-m10-bmc-hwmon +intel-nand-controller +intel-qep +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 +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io-domain +io_edgeport +io_ti +iosm +iova +iowarrior +ip5xxx_power +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_twos +ip_vs_wlc +ip_vs_wrr +ip_vti +ipa +ipack +ipaq +ipcomp +ipcomp6 +iphase +ipheth +ipip +ipmb_dev_int +ipmi_devintf +ipmi_ipmb +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-madera +irq-pruss-intc +irq-qcom-mpm +irq-ts4800 +irqbypass +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl7998x +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +it87 +it913x +itd1000 +ite-it6505 +ite-it66121 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +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_cdev_ipmi +kcs_bmc_npcm7xx +kcs_bmc_serio +ke_counter +kempld-core +kempld_wdt +kernelcapi +keyspan +keyspan_pda +keyspan_remote +keywrap +kfifo_buf +khadas-mcu +khadas_mcu_fan +kheaders +kl5kusb105 +kmx61 +kobil_sct +komeda +kpss-xcc +krait-cc +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lan966x-switch +lan966x_serdes +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +lcc-ipq806x +lcc-mdm9615 +lcc-msm8960 +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +led_bl +leds-88pm860x +leds-aat1290 +leds-acer-a500 +leds-adp5520 +leds-an30259a +leds-as3645a +leds-aw2013 +leds-bcm6328 +leds-bcm6358 +leds-bd2802 +leds-blinkm +leds-cpcap +leds-cr0014114 +leds-da903x +leds-da9052 +leds-dac124s085 +leds-el15203000 +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-lp50xx +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-mt6360 +leds-ns2 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pm8058 +leds-pwm +leds-pwm-multicolor +leds-qcom-lpg +leds-regulator +leds-rt4505 +leds-rt8515 +leds-sgm3140 +leds-spi-byte +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +leds-turris-omnia +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-tty +ledtrig-usbport +legousbtower +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libarc4 +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +lima +line-display +lineage-pem +linear +linkstation-poweroff +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +liteuart +litex_liteeth +litex_mmc +litex_soc_ctrl +lkkbd +ll_temac +llc +llc2 +llcc-qcom +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 +lmh +lmp91000 +lms283gf05 +lms501kf03 +lnbh25 +lnbh29 +lnbp21 +lnbp22 +lochnagar-hwmon +lochnagar-regulator +lockd +lontium-lt8912b +lontium-lt9211 +lontium-lt9611 +lontium-lt9611uxc +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 +lpass-gfm-sm8250 +lpassaudiocc-sc7280 +lpasscc-sc7280 +lpasscc-sdm845 +lpasscorecc-sc7180 +lpasscorecc-sc7280 +lpc_ich +lpc_sch +lpddr2_nvm +lpddr_cmds +lpfc +lru_cache +lrw +lt3651-charger +ltc1660 +ltc2471 +ltc2485 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvds-codec +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_pci +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-88x2222 +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max14656_charger_detector +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +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 +max77714 +max77802-regulator +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +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 +max9271 +max9286 +max9611 +max96712 +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 +mchp48l640 +mcp16502 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-i2c +mctp-serial +md-cluster +md4 +mdc800 +mdev +mdio +mdio-aspeed +mdio-bcm-unimac +mdio-gpio +mdio-hisi-femac +mdio-i2c +mdio-ipq4019 +mdio-ipq8064 +mdio-mscc-miim +mdio-mux +mdio-mux-gpio +mdio-mux-meson-g12a +mdio-mux-mmioreg +mdio-mux-multiplexer +mdio-mvusb +mdt_loader +me4000 +me_daq +mediatek +mediatek-cpufreq +mediatek-cpufreq-hw +mediatek-drm +mediatek-drm-hdmi +mediatek-ge +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-ir-tx +meson-mx-sdhc +meson-mx-sdio +meson-rng +meson-vdec +meson_dw_hdmi +meson_gxbb_wdt +meson_mx_ao_arc +meson_nand +meson_saradc +meson_wdt +metro-usb +metronomefb +mf6x4 +mgag200 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip-tcb-capture +microchip_t1 +microread +microread_i2c +microtek +milbeaut-hdmac +milbeaut-xdmac +milbeaut_usio +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlx_wdt +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxreg-lc +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +mma7455_core +mma7455_i2c +mma7455_spi +mma7660 +mma8450 +mma8452 +mma9551 +mma9551_core +mma9553 +mmc35240 +mmc_spi +mmcc-apq8084 +mmcc-msm8960 +mmcc-msm8974 +mmcc-msm8994 +mmcc-msm8996 +mmcc-msm8998 +mmcc-sdm660 +mms114 +mn88443x +mn88472 +mn88473 +mos7720 +mos7840 +most_cdev +most_core +most_dim2 +most_i2c +most_net +most_snd +most_usb +most_video +motorcomm +motorola-cpcap +moxa +moxtet +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp5416 +mp8859 +mp886x +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpq7920 +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +msc313e_wdt +mscc +mscc_felix +mscc_ocelot +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi001 +msi2500 +msm +msp3400 +mspro_block +mss-sc7180 +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-accdet +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6380-regulator +mt6397 +mt6397-regulator +mt6577_auxadc +mt6779-keypad +mt6797-mt6351 +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt8183-da7219-max98357 +mt8183-mt6358-ts3a227-max98357 +mt8192-mt6359-rt1015-rt5682 +mt8195-mt6359 +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd_dataflash +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-adsp-ipc +mtk-adsp-mailbox +mtk-btcvsd +mtk-cir +mtk-cmdq-helper +mtk-cmdq-mailbox +mtk-cqdma +mtk-devapc +mtk-hsdma +mtk-pmic-keys +mtk-pmic-wrap +mtk-rng +mtk-sd +mtk-smi +mtk-uart-apdma +mtk-vpu +mtk_nand +mtk_rpmsg +mtk_scp +mtk_scp_ipi +mtk_t7xx +mtk_thermal +mtk_wdt +mtouch +mtu3 +multipath +multiq3 +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 +mxc-jpeg-encdec +mxc4005 +mxc6255 +mxc_nand +mxc_w1 +mxcmmc +mxic_nand +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxser +mxsfb +mxuport +myrb +myri10ge +myrs +n_gsm +n_hdlc +nandsim +national +natsemi +nau7802 +navman +nbd +nbpfaxi +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct6775-core +nct6775-i2c +nct7802 +nct7904 +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +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 +npcm-rng +npcm750-pwm-fan +npcm_adc +nps_enet +ns558 +ns83820 +nsh +nsp32 +ntb +ntb_hw_epf +ntb_hw_idt +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +ntxec +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-rmem +nvmem-rockchip-otp +nvmem_meson_mx_efuse +nvmem_qcom-spmi-sdam +nvmem_qfprom +nvmem_rockchip_efuse +nvmem_snvs_lpgpr +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvsw-sn2201 +nwl-dsi +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-ptn3460 +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocmem +ocrdma +of-fpga-region +of_mmc_spi +of_pmem +of_xilinx_wdt +ofb +og01a1b +ohci-platform +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_remoteproc +omap_wdt +omapdss +omfs +omninet +on20 +on26 +onenand +open-dice +opencores-kbd +openvswitch +opt3001 +optee +optee-rng +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +orion_nand +orion_wdt +oti6858 +otm3225a +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov5640 +ov5645 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9282 +ov9640 +ov9650 +overlay +owl-dma +owl-emac +owl-mmc +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +palmas-pwrbutton +palmas-regulator +palmas_gpadc +pandora_bl +panel +panel-abt-y030xx067a +panel-arm-versatile +panel-asus-z00t-tm5p5-n35596 +panel-boe-bf060y8m-aj0 +panel-boe-himax8279d +panel-boe-tv101wum-nl6 +panel-dsi-cm +panel-edp +panel-elida-kd35t133 +panel-feixin-k101-im2ba02 +panel-feiyang-fy07024di26a30d +panel-ilitek-ili9322 +panel-ilitek-ili9341 +panel-ilitek-ili9881c +panel-innolux-ej030na +panel-innolux-p079zca +panel-jdi-fhd-r63452 +panel-jdi-lt070me05000 +panel-khadas-ts050 +panel-kingdisplay-kd097d04 +panel-leadtek-ltk050h3146w +panel-leadtek-ltk500hd1829 +panel-lg-lb035q02 +panel-lg-lg4573 +panel-lvds +panel-mantix-mlaf057we51 +panel-mipi-dbi +panel-nec-nl8048hl11 +panel-newvision-nv3052c +panel-novatek-nt35510 +panel-novatek-nt35560 +panel-novatek-nt35950 +panel-novatek-nt36672a +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-ronbo-rb070d30 +panel-samsung-atna33xc20 +panel-samsung-db7430 +panel-samsung-ld9040 +panel-samsung-s6d16d0 +panel-samsung-s6d27a1 +panel-samsung-s6e3ha2 +panel-samsung-s6e63j0x03 +panel-samsung-s6e63m0 +panel-samsung-s6e63m0-dsi +panel-samsung-s6e63m0-spi +panel-samsung-s6e88a0-ams452ef01 +panel-samsung-s6e8aa0 +panel-samsung-sofef00 +panel-seiko-43wvf1g +panel-sharp-lq101r1sx01 +panel-sharp-ls037v7dw01 +panel-sharp-ls043t1le01 +panel-sharp-ls060t1sx01 +panel-simple +panel-sitronix-st7701 +panel-sitronix-st7703 +panel-sitronix-st7789v +panel-sony-acx565akm +panel-sony-tulip-truly-nt35521 +panel-tdo-tl070wsh30 +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +panel-tpo-tpg110 +panel-truly-nt35597 +panel-visionox-rm69299 +panel-widechips-ws2401 +panel-xinpeng-xpp055c272 +panfrost +parade-ps8622 +parade-ps8640 +parallel-display +paride +parkbd +parman +parport +parport_ax88796 +parport_pc +parport_serial +parser_trx +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 +pc300too +pc87360 +pc87427 +pca9450-regulator +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-dra7xx +pci-epf-ntb +pci-pf-stub +pci-stub +pci200syn +pcie-mediatek-gen3 +pcie-qcom-ep +pcie-rockchip-host +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia_core +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcs-lynx +pcs_xpcs +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +pdr_interface +peak_pci +peak_pciefd +peak_usb +peci +peci-aspeed +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pf8x00-regulator +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-salvo +phy-cadence-sierra +phy-cadence-torrent +phy-can-transceiver +phy-cpcap-usb +phy-dm816x-usb +phy-exynos-usb2 +phy-gpio-vbus-usb +phy-hix5hd2-sata +phy-isp1301 +phy-mapphone-mdm6600 +phy-meson-axg-mipi-dphy +phy-meson-g12a-usb2 +phy-meson-g12a-usb3-pcie +phy-meson-gxl-usb2 +phy-meson8-hdmi-tx +phy-meson8b-usb2 +phy-mtk-hdmi-drv +phy-mtk-mipi-dsi-drv +phy-mtk-tphy +phy-mtk-ufs +phy-mtk-xsphy +phy-mvebu-a3700-comphy +phy-mvebu-a3700-utmi +phy-mvebu-cp110-comphy +phy-mvebu-cp110-utmi +phy-ocelot-serdes +phy-omap-control +phy-omap-usb2 +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-apq8064-sata +phy-qcom-edp +phy-qcom-ipq4019-usb +phy-qcom-ipq806x-sata +phy-qcom-ipq806x-usb +phy-qcom-pcie2 +phy-qcom-qmp +phy-qcom-qusb2 +phy-qcom-snps-femto-v2 +phy-qcom-usb-hs +phy-qcom-usb-hs-28nm +phy-qcom-usb-hsic +phy-qcom-usb-ss +phy-rcar-gen2 +phy-rcar-gen3-pcie +phy-rcar-gen3-usb2 +phy-rcar-gen3-usb3 +phy-rockchip-dp +phy-rockchip-dphy-rx0 +phy-rockchip-emmc +phy-rockchip-inno-csidphy +phy-rockchip-inno-dsidphy +phy-rockchip-inno-hdmi +phy-rockchip-inno-usb2 +phy-rockchip-naneng-combphy +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 +phylink +physmap +pi3usb30532 +pi433 +pim4328 +pinctrl-apq8064 +pinctrl-apq8084 +pinctrl-axp209 +pinctrl-da9062 +pinctrl-imx8ulp +pinctrl-imx93 +pinctrl-ipq4019 +pinctrl-ipq6018 +pinctrl-ipq8064 +pinctrl-ipq8074 +pinctrl-lochnagar +pinctrl-lpass-lpi +pinctrl-madera +pinctrl-max77620 +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-mdm9607 +pinctrl-mdm9615 +pinctrl-msm8226 +pinctrl-msm8660 +pinctrl-msm8916 +pinctrl-msm8953 +pinctrl-msm8960 +pinctrl-msm8976 +pinctrl-msm8994 +pinctrl-msm8996 +pinctrl-msm8998 +pinctrl-msm8x74 +pinctrl-qcm2290 +pinctrl-qcs404 +pinctrl-rk805 +pinctrl-sc7180 +pinctrl-sc7280 +pinctrl-sc7280-lpass-lpi +pinctrl-sc8180x +pinctrl-sc8280xp +pinctrl-sdm660 +pinctrl-sdm845 +pinctrl-sdx55 +pinctrl-sdx65 +pinctrl-sm6115 +pinctrl-sm6125 +pinctrl-sm6350 +pinctrl-sm8150 +pinctrl-sm8250 +pinctrl-sm8250-lpass-lpi +pinctrl-sm8350 +pinctrl-sm8450 +pinctrl-spmi-gpio +pinctrl-spmi-mpp +pinctrl-ssbi-gpio +pinctrl-ssbi-mpp +pinctrl-stmfx +ping +pistachio-internal-dac +pixcir_i2c_ts +pkcs7_test_key +pkcs8_key_parser +pktcdvd +pktgen +pl111_drm +pl172 +pl2303 +pl330 +pl353-smc +pl35x-nand-controller +plat-ram +plat_nand +platform_lcd +platform_mhu +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pm8916_wdt +pm8941-pwrkey +pm8xxx-vibrator +pmbus +pmbus_core +pmc551 +pmcraid +pmic8xxx-keypad +pmic8xxx-pwrkey +pms7003 +pn532_uart +pn533 +pn533_i2c +pn533_usb +pn544 +pn544_i2c +pn_pep +poly1305-arm +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +pru_rproc +pruss +ps2-gpio +ps2mult +psample +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptp-qoriq +ptp_clockmatrix +ptp_idt82p33 +ptp_ines +ptp_kvm +ptp_ocp +pulse8-cec +pulsedlight-lidar-lite-v2 +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-atmel-hlcdc +pwm-atmel-tcb +pwm-beeper +pwm-berlin +pwm-cros-ec +pwm-dwc +pwm-fan +pwm-fsl-ftm +pwm-hibvt +pwm-imx-tpm +pwm-imx1 +pwm-imx27 +pwm-iqs620a +pwm-ir-tx +pwm-lp3943 +pwm-mediatek +pwm-meson +pwm-mtk-disp +pwm-ntxec +pwm-omap-dmtimer +pwm-pca9685 +pwm-rcar +pwm-regulator +pwm-renesas-tpu +pwm-rockchip +pwm-tegra +pwm-tiecap +pwm-tiehrpwm +pwm-twl +pwm-twl-led +pwm-vibra +pwm-xilinx +pwm_bl +pwrseq_emmc +pwrseq_sd8787 +pwrseq_simple +pxa168_eth +pxa27x_udc +pxe1610 +pxrc +q54sj108a2 +q6adm +q6afe +q6afe-clocks +q6afe-dai +q6apm-dai +q6apm-lpass-dais +q6asm +q6asm-dai +q6core +q6prm +q6prm-clocks +q6routing +q6sstop-qcs404 +qca8k +qca_7k_common +qcaspi +qcauart +qcaux +qcom-apcs-ipc-mailbox +qcom-coincell +qcom-cpufreq-hw +qcom-cpufreq-nvmem +qcom-emac +qcom-geni-se +qcom-labibb-regulator +qcom-pm8008 +qcom-pm8xxx +qcom-pm8xxx-xoadc +qcom-pmic-typec +qcom-pon +qcom-rng +qcom-rpmh-regulator +qcom-spmi-adc-tm5 +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-pmic +qcom-spmi-temp-alarm +qcom-spmi-vadc +qcom-vadc-common +qcom-wdt +qcom-wled +qcom_aoss +qcom_bam_dmux +qcom_common +qcom_edac +qcom_eud +qcom_geni_serial +qcom_glink +qcom_glink_rpm +qcom_glink_smem +qcom_gsbi +qcom_hwspinlock +qcom_nandc +qcom_pil_info +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_stats +qcom_sysmon +qcom_tsens +qcom_usb_vbus-regulator +qcomsmempart +qcrypto +qcserial +qed +qede +qedf +qedi +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qm1d1b0004 +qm1d1c0042 +qmi_helpers +qmi_wwan +qnoc-msm8916 +qnoc-msm8939 +qnoc-msm8974 +qnoc-msm8996 +qnoc-qcm2290 +qnoc-qcs404 +qnoc-sc7180 +qnoc-sc7280 +qnoc-sc8180x +qnoc-sc8280xp +qnoc-sdm660 +qnoc-sdm845 +qnoc-sdx55 +qnoc-sdx65 +qnoc-sm8150 +qnoc-sm8250 +qnoc-sm8350 +qnoc-sm8450 +qnx4 +qnx6 +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcar-csi2 +rcar-dmac +rcar-du-drm +rcar-fcp +rcar-gyroadc +rcar-isp +rcar-vin +rcar_can +rcar_canfd +rcar_cmm +rcar_drif +rcar_dw_hdmi +rcar_fdp1 +rcar_gen3_thermal +rcar_jpu +rcar_lvds +rcar_mipi_dsi +rcar_rproc +rcar_thermal +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +realtek-mdio +realtek-smi +reboot-mode +redboot +redrat3 +regmap-ac97 +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +regmap-spmi +regmap-w1 +regulator-haptic +reiserfs +renesas-ceu +renesas-nand-controller +renesas-rpc-if +renesas_sdhi_core +renesas_sdhi_internal_dmac +renesas_sdhi_sys_dmac +renesas_usb3 +renesas_usbhs +renesas_wdt +repaper +reset-a10sr +reset-hi3660 +reset-meson-audio-arb +reset-qcom-pdc +reset-scmi +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rmobile-reset +rmtfs_mem +rn5t618 +rn5t618-adc +rn5t618-regulator +rn5t618_power +rn5t618_wdt +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rockchip-dfi +rockchip-isp1 +rockchip-nand-controller +rockchip-rga +rockchip-vdec +rockchip_saradc +rockchip_thermal +rockchipdrm +rocker +rohm-bd71828 +rohm-bd718x7 +rohm-bd9576 +rohm-regulator +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpi-panel-attiny-regulator +rpmpd +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsmu-i2c +rsmu-spi +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-msc313 +rtc-msm6242 +rtc-mt2712 +rtc-mt6397 +rtc-mt7622 +rtc-mxc +rtc-mxc_v2 +rtc-ntxec +rtc-optee +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-rc5t619 +rtc-rk808 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv3032 +rtc-rv8803 +rtc-rx4581 +rtc-rx6110 +rtc-rx8010 +rtc-rx8025 +rtc-rx8581 +rtc-rzn1 +rtc-s35390a +rtc-s5m +rtc-sd3078 +rtc-sh +rtc-snvs +rtc-stk17ta8 +rtc-tegra +rtc-tps6586x +rtc-tps65910 +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 +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rx51_battery +rxrpc +rza_wdt +rzg2l_thermal +rzg2l_wdt +rzn1-dmamux +rzn1_wdt +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +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 +sample-trace-array +samsung-keypad +samsung-sxgbe +samsung_tty +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 +sbrmi +sbs-battery +sbs-charger +sbs-manager +sbtsi_temp +sc16is7xx +sc92031 +sca3000 +sca3300 +scd30_core +scd30_i2c +scd30_serial +scd4x +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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 +scmi-cpufreq +scmi-hwmon +scmi-regulator +scmi_iio +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-milbeaut +sdhci-msm +sdhci-of-arasan +sdhci-of-aspeed +sdhci-of-at91 +sdhci-of-dwcmshc +sdhci-of-esdhc +sdhci-omap +sdhci-pci +sdhci-pxav3 +sdhci-tegra +sdhci-xenon-driver +sdhci_am654 +sdhci_f_sdh30 +sdio_uart +sensehat-joystick +sensorhub +serial-tegra +serial_ir +serio_raw +sermouse +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sh-sci +sh_eth +sh_mmcif +sh_mobile_lcdcfb +sha1-arm +sha1-arm-ce +sha1-arm-neon +sha2-arm-ce +sha256-arm +sha3_generic +sha512-arm +shark2 +sharpslpart +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sifive +sii902x +sii9234 +sil-sii8620 +sil164 +silead +simple-bridge +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +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 +sm2_generic +sm3 +sm3_generic +sm4 +sm4_generic +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc911x +smc_diag +smd-rpm +smem +smipcie +smm665 +smp2p +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsm +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-acp-config +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-ctl-led +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-cs8409 +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-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-q6apm +snd-q6dsp-common +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-generic +snd-serial-u16550 +snd-soc-63xx +snd-soc-ac97 +snd-soc-acp-rt5645-mach +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +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-armada-370-db +snd-soc-audio-graph-card +snd-soc-audio-graph-card2 +snd-soc-audio-graph-card2-custom-sample +snd-soc-aw8738 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-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-aud2htx +snd-soc-fsl-audmix +snd-soc-fsl-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmix +snd-soc-imx-card +snd-soc-imx-es8328 +snd-soc-imx-hdmi +snd-soc-imx-rpmsg +snd-soc-imx-spdif +snd-soc-inno-rk3036 +snd-soc-kirkwood +snd-soc-lochnagar-sc +snd-soc-lpass-apq8016 +snd-soc-lpass-cdc-dma +snd-soc-lpass-cpu +snd-soc-lpass-hdmi +snd-soc-lpass-ipq806x +snd-soc-lpass-macro-common +snd-soc-lpass-platform +snd-soc-lpass-rx-macro +snd-soc-lpass-sc7180 +snd-soc-lpass-sc7280 +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +snd-soc-max9860 +snd-soc-max9867 +snd-soc-max98927 +snd-soc-meson-aiu +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-card-utils +snd-soc-meson-codec-glue +snd-soc-meson-g12a-toacodec +snd-soc-meson-g12a-tohdmitx +snd-soc-meson-gx-sound-card +snd-soc-meson-t9015 +snd-soc-mikroe-proto +snd-soc-msm8916-analog +snd-soc-msm8916-digital +snd-soc-mt6351 +snd-soc-mt6358 +snd-soc-mt6359 +snd-soc-mt6660 +snd-soc-mt6797-afe +snd-soc-mt8183-afe +snd-soc-mt8192-afe +snd-soc-mt8195-afe +snd-soc-mtk-common +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +snd-soc-nau8822 +snd-soc-nau8824 +snd-soc-omap-mcbsp +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-pcm5102a +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-rk817 +snd-soc-rl6231 +snd-soc-rockchip-i2s +snd-soc-rockchip-i2s-tdm +snd-soc-rockchip-max98090 +snd-soc-rockchip-pdm +snd-soc-rockchip-rt5645 +snd-soc-rockchip-spdif +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1015p +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +snd-soc-rt5514 +snd-soc-rt5514-spi +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5659 +snd-soc-rt5663 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt5682-i2c +snd-soc-rt5682-sdw +snd-soc-rt5682s +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-sc7180 +snd-soc-sc7280 +snd-soc-sdm845 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-sm8250 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2305 +snd-soc-ssm2518 +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-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tegra-audio-graph-card +snd-soc-tegra-machine +snd-soc-tegra-pcm +snd-soc-tegra-wm8903 +snd-soc-tegra186-asrc +snd-soc-tegra186-dspk +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra210-admaif +snd-soc-tegra210-adx +snd-soc-tegra210-ahub +snd-soc-tegra210-amx +snd-soc-tegra210-dmic +snd-soc-tegra210-i2s +snd-soc-tegra210-mixer +snd-soc-tegra210-mvc +snd-soc-tegra210-sfc +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-test-component +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-ti-edma +snd-soc-ti-sdma +snd-soc-ti-udma +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8994 +snd-soc-wm9712 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +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 +snic +snps_udc_core +snps_udc_plat +snvs_pwrkey +socfpga +socfpga-a10 +socinfo +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +soundwire-bus +soundwire-qcom +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-armada-3700 +spi-aspeed-smc +spi-axi-spi-engine +spi-bitbang +spi-butterfly +spi-cadence +spi-cadence-quadspi +spi-cadence-xspi +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-fsi +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-mtk-nor +spi-mtk-snfi +spi-mux +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-rockchip-sfc +spi-rpc-if +spi-rspi +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-tegra210-quad +spi-ti-qspi +spi-tle62x0 +spi-xcomm +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spmi +spmi-mtk-pmif +spmi-pmic-arb +sprd_serial +sps30 +sps30_i2c +sps30_serial +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssbi +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +stpmic1 +stpmic1_onkey +stpmic1_regulator +stpmic1_wdt +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sur40 +surface3_spi +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sy8106a-regulator +sy8824x +sy8827n +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_gt +synopsys_edac +syscon-reboot-mode +syscopyarea +sysfillrect +sysimgblt +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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 +tc358762 +tc358764 +tc358767 +tc358768 +tc358775 +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_maxim +tcpci_mt6360 +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 +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-vde +tegra-video +tegra-xudc +tegra186-cpufreq +tegra186-gpc-dma +tegra30-devfreq +tegra30-tsensor +tegra_cec +tegra_nand +tegra_wdt +tehuti +teranetics +test-kprobes +test_blackhole_dev +test_bpf +test_power +tg3 +thc63lvd1024 +thermal-generic-adc +thermal_mmio +thmc50 +ths7303 +ths8200 +thunderbolt +thunderbolt-net +ti-adc081c +ti-adc0832 +ti-adc084s021 +ti-adc108s102 +ti-adc12138 +ti-adc128s052 +ti-adc161s626 +ti-ads1015 +ti-ads124s08 +ti-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-cal +ti-csc +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-lmu +ti-sc +ti-sn65dsi83 +ti-sn65dsi86 +ti-tfp410 +ti-tlc4541 +ti-tpd12s015 +ti-tsc2046 +ti-vpdma +ti-vpe +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_cpsw_new +ti_edac +ti_hecc +ti_usb_3410_5052 +tidss +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_ftpm_tee +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_vtpm_proxy +tps23861 +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps6286x-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 +tqmx86 +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts4800-ts +ts4800_wdt +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +ucan +ucb1400_core +ucb1400_ts +ucc_uart +ucd9000 +ucd9200 +ucs1002_power +ucsi_ccg +uda1342 +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_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 +usdhi6rol0 +userio +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-h264 +v4l2-jpeg +v4l2-mem2mem +v4l2-tpg +v4l2-vp9 +vcan +vcnl3020 +vcnl4000 +vcnl4035 +vctrl-regulator +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +ves1820 +ves1x93 +veth +vexpress-hwmon +vexpress-regulator +vexpress-spc-cpufreq +vf610_adc +vf610_dac +vfio-amba +vfio-pci +vfio-pci-core +vfio-platform +vfio-platform-amdxgbe +vfio-platform-base +vfio-platform-calxedaxgmac +vfio_virqfd +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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-sc7180 +videocc-sc7280 +videocc-sdm845 +videocc-sm8150 +videocc-sm8250 +videodev +vim2m +vimc +viperboard +viperboard_adc +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +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 +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vqmmc-ipq4019-regulator +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wcnss_ctrl +wd719x +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +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 +wusb3801 +wwan_hwsim +x25 +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xfrm4_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xgmac +xhci-histb +xhci-mtk-hcd +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xhci-tegra +xilinx-csi2rxss +xilinx-pr-decoupler +xilinx-spi +xilinx-tpg +xilinx-video +xilinx-vtc +xilinx-xadc +xilinx_dpdma +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_sdfec +xilinx_uartps +xillybus_class +xillybus_core +xillybus_of +xillybus_pcie +xillyusb +xiphera-trng +xircom_cb +xlnx_vcu +xor +xor-neon +xpad +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yenta_socket +yurex +z3fold +zaurus +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd --- linux-5.19.0.orig/debian.master/abi/armhf/generic-lpae.retpoline +++ linux-5.19.0/debian.master/abi/armhf/generic-lpae.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/armhf/generic.compiler +++ linux-5.19.0/debian.master/abi/armhf/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/armhf/generic.modules +++ linux-5.19.0/debian.master/abi/armhf/generic.modules @@ -0,0 +1,6782 @@ +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_aspeed_vuart +8250_dw +8250_exar +8250_men_mcb +8250_pericom +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_fd +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a53-pll +a7-pll +a8293 +aacraid +aat2870-regulator +aat2870_bl +abp060mg +acard-ahci +acecad +acenic +acer-ec-a500 +acer_a500_battery +acp_audio_dma +act8865-regulator +act8945a +act8945a-regulator +act8945a_charger +act_bpf +act_connmark +act_csum +act_ct +act_ctinfo +act_gact +act_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ad9467 +ad9523 +ad9832 +ad9834 +ad_sigma_delta +ada4250 +adc-joystick +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 +adi-axi-adc +adiantum +adin +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv4420 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv748x +adv7511 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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 +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +al3320a +alcor +alcor_pci +algif_aead +algif_hash +algif_rng +algif_skcipher +alim7101_wdt +altera-ci +altera-cvp +altera-fpga2sdram +altera-freeze-bridge +altera-hps2fpga +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-clcd +amba-pl010 +ambakmi +amc6821 +amd +amd5536udc_pci +amd8111e +amdgpu +amlogic-gxl-crypto +amlogic_thermal +amphion-vpu +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 +amt +analog +analogix-anx6345 +analogix-anx78xx +analogix_dp +anatop-regulator +ansi_cprng +anx7625 +anybuss_core +ao-cec +ao-cec-g12a +aoe +apbps2 +apcs-msm8916 +apcs-sdx55 +apds9300 +apds9802als +apds990x +apds9960 +apple-mfi-fastcharge +appledisplay +appletalk +appletouch +applicom +apr +apss-ipq-pll +apss-ipq6018 +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar1021_i2c +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_emac +arc_ps2 +arc_uart +arcmsr +arcnet +arcpgu +arcx-anybus +arcxcnn_bl +arizona +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arm_mhu +arm_mhu_db +arm_mhuv2 +arm_scpi +arm_smc_wdt +arm_smccc_trng +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 +as73211 +asc7621 +ascot2e +asix +aspeed-lpc-ctrl +aspeed-lpc-snoop +aspeed-p2a-ctrl +aspeed-pwm-tacho +aspeed-uart-routing +aspeed-vhub +aspeed-video +aspeed_adc +aspeed_edac +aspeed_gfx +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +ata_generic +ata_piix +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_snoc +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-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 +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796 +ax88796b +ax88796c +axi-fan-control +axis-fifo +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +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 +ba431-rng +bam_dma +bareudp +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm-keypad +bcm-phy-lib +bcm-sf2 +bcm203x +bcm3510 +bcm47xxsflash +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm63138_nand +bcm6368_nand +bcm7xxx +bcm87xx +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd71815-regulator +bd71828-regulator +bd718x7-regulator +bd9571mwv +bd9571mwv-regulator +bd9576-regulator +bd9576_wdt +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +berlin2-adc +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b-neon +blake2b_generic +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpck6 +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_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 +btmtk +btmtksdio +btmtkuart +btqca +btqcomsmd +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +caam +caam_jr +caamalg_desc +caamhash_desc +cachefiles +cadence-nand-controller +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +caif_usb +caif_virtio +camcc-sc7180 +camcc-sc7280 +camcc-sdm845 +camcc-sm8250 +camellia_generic +can +can-bcm +can-dev +can-gw +can-isotp +can-j1939 +can-raw +cap11xx +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 +ccs +ccs-pll +ccs811 +cctrng +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-dphy +cdns-dphy-rx +cdns-dsi +cdns-mhdp8546 +cdns-pltfrm +cdns-usb-common +cdns3 +cdns3-imx +cec +ceph +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha-neon +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone-icn6211 +chipone_icn8318 +chnl_net +chrontel-ch7033 +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_tegra +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cirrus +cirrusfb +clip +clk-axi-clkgen +clk-bd718x7 +clk-cdce706 +clk-cdce925 +clk-cs2000-cp +clk-hi3519 +clk-hi655x +clk-imx8ulp +clk-imx93 +clk-lmk04832 +clk-lochnagar +clk-max77686 +clk-max9485 +clk-palmas +clk-pwm +clk-qcom +clk-renesas-pcie +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-twl6040 +clk-versaclock5 +clk-wm831x +clk-xlnx-clock-wizard +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +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_example_test +comedi_parport +comedi_pci +comedi_test +comedi_usb +comm +contec_pci_dio +cordic +core +corsair-cpro +corsair-psu +cortina +counter +cp210x +cpcap-adc +cpcap-battery +cpcap-charger +cpcap-pwrbutton +cpcap-regulator +cpia2 +cppi41 +cpr +cramfs +crc-itu-t +crc32-arm-ce +crc32_generic +crc4 +crc7 +crct10dif-arm-ce +crg-hi3516cv300 +crg-hi3798cv200 +cros-ec-anx7688 +cros-ec-cec +cros-ec-regulator +cros-ec-sensorhub +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_mkbp_proximity +cros_ec_rpmsg +cros_ec_sensors +cros_ec_sensors_core +cros_ec_spi +cros_ec_sysfs +cros_ec_typec +cros_ec_vbc +cros_peripheral_charger +cros_usbpd-charger +cros_usbpd_logger +cros_usbpd_notify +cryptd +crypto_engine +crypto_safexcel +crypto_simd +crypto_user +cs3308 +cs5345 +cs53l32a +cs89x0 +cs_dsp +csiostor +ctucanfd +ctucanfd_pci +ctucanfd_platform +curve25519-generic +curve25519-neon +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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_core +cxl_mem +cxl_pci +cxl_port +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da8xx-fb +da9030_battery +da9034-ts +da903x-regulator +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 +da9121-regulator +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 +ddbridge-dummy-fe +de2104x +decnet +defxx +delta-ahe50dc-fan +denali +denali_dt +denali_pci +des_generic +designware_i2s +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +digicolor-usart +diskonchip +dispcc-qcm2290 +dispcc-sc7180 +dispcc-sc7280 +dispcc-sdm845 +dispcc-sm6125 +dispcc-sm6350 +dispcc-sm8250 +display-connector +dl2k +dlhl60d +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-historical-service-time +dm-integrity +dm-io-affinity +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 +dm9051 +dm9601 +dma-axi-dmac +dmard06 +dmard09 +dmard10 +dme1737 +dmfe +dmi-sysfs +dmm32at +dmx3191d +dn_rtmsg +dnet +dove_thermal +dp83640 +dp83822 +dp83848 +dp83867 +dp83869 +dp83tc811 +dp83td510 +dpot-dac +dps310 +dps920ab +drbd +drivetemp +drm +drm_cma_helper +drm_display_helper +drm_dp_aux_bus +drm_kms_helper +drm_mipi_dbi +drm_shmem_helper +drm_ttm_helper +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 +dtpm +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-gp-audio +dw-hdmi-i2s-audio +dw-i3c-master +dw-mipi-dsi +dw-xdata-pcie +dw9714 +dw9768 +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 +dwc2_pci +dwc3 +dwc3-haps +dwc3-meson-g12a +dwc3-of-simple +dwc3-omap +dwc3-qcom +dwmac-altr-socfpga +dwmac-dwc-qos-eth +dwmac-generic +dwmac-imx +dwmac-intel-plat +dwmac-ipq806x +dwmac-loongson +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 +ecc-mtk +ecdh_generic +ecdsa_generic +echainiv +echo +ecrdsa_generic +edt-ft5x06 +ee1004 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efct +efi-pstore +efi_test +efibc +efs +egalax_ts +egalax_ts_serial +ehci-fsl +ehci-npcm7xx +ehci-omap +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 +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 +etas_es58x +ethoc +etnaviv +evbug +exc3000 +exfat +extcon-adc-jack +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 +extcon-usbc-tusb320 +exynosdrm +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fan53555 +fan53880 +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_seps525 +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 +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 +fsa4480 +fscache +fsi-core +fsi-master-aspeed +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-enetc +fsl-enetc-ierb +fsl-enetc-mdio +fsl-enetc-ptp +fsl-enetc-vf +fsl-ldb +fsl-mph-dr-of +fsl-qdma +fsl_imx8_ddr_perf +fsl_linflexuart +fsl_lpuart +fsl_pq_mdio +fsl_ucc_hdlc +fsp-3y +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftm-quaddec +ftmac100 +ftsteutates +ftwdt010_wdt +fujitsu_ts +funcore +funeth +fusb300_udc +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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 +gateworks-gsc +gb-audio-apbridgea +gb-audio-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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-ipq6018 +gcc-ipq806x +gcc-ipq8074 +gcc-mdm9607 +gcc-mdm9615 +gcc-msm8660 +gcc-msm8916 +gcc-msm8939 +gcc-msm8953 +gcc-msm8960 +gcc-msm8974 +gcc-msm8976 +gcc-msm8994 +gcc-msm8996 +gcc-msm8998 +gcc-qcm2290 +gcc-qcs404 +gcc-sc7180 +gcc-sc7280 +gcc-sc8180x +gcc-sc8280xp +gcc-sdm660 +gcc-sdm845 +gcc-sdx55 +gcc-sdx65 +gcc-sm6115 +gcc-sm6125 +gcc-sm6350 +gcc-sm8150 +gcc-sm8250 +gcc-sm8350 +gcc-sm8450 +gdmtty +gdmulte +ge2d +gemini +gen_probe +generic +generic-adc-battery +genet +geneve +gf2k +gfs2 +ghash-arm-ce +gianfar_driver +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpi +gpio +gpio-74x164 +gpio-74xx-mmio +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-altera +gpio-altera-a10sr +gpio-amd-fch +gpio-arizona +gpio-aspeed +gpio-bd71815 +gpio-bd71828 +gpio-bd9571mwv +gpio-beeper +gpio-cadence +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-dln2 +gpio-dwapb +gpio-en7523 +gpio-exar +gpio-fan +gpio-grgpio +gpio-gw-pld +gpio-hlwd +gpio-ir-recv +gpio-ir-tx +gpio-janz-ttl +gpio-kempld +gpio-logicvc +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-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-rcar +gpio-rdc321x +gpio-regulator +gpio-rockchip +gpio-sama5d2-piobu +gpio-sim +gpio-siox +gpio-syscon +gpio-tpic2810 +gpio-tps65086 +gpio-tps65218 +gpio-tps65912 +gpio-ts4800 +gpio-ts4900 +gpio-ucb1400 +gpio-vibra +gpio-viperboard +gpio-virtio +gpio-wcd934x +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-msm8998 +gpucc-sc7180 +gpucc-sc7280 +gpucc-sdm660 +gpucc-sdm845 +gpucc-sm6350 +gpucc-sm8150 +gpucc-sm8250 +gr_udc +grace +grcan +gre +greybus +grip +grip_mp +gs1662 +gs_usb +gsc-hwmon +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 +gtp +gud +guillemot +gunze +gve +gxp-wdt +habanalabs +hackrf +hamachi +hampshire +hantro-vpu +hanwang +hci +hci_nokia +hci_uart +hci_vhci +hclge +hclgevf +hd3ss3220 +hd44780 +hd44780_common +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcd +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfpll +hfs +hfsplus +hi311x +hi3660-mailbox +hi556 +hi6210-i2s +hi6220-mailbox +hi6220_reset +hi6421-pmic-core +hi6421-regulator +hi6421-spmi-pmic +hi6421v530-regulator +hi6421v600-irq +hi6421v600-regulator +hi655x-pmic +hi655x-regulator +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +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 +hisi-spmi-controller +hisi504_nand +hisi_femac +hisi_hikey_usb +hisi_powerkey +hisi_thermal +hix5hd2_gmac +hmc425a +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 +hp206c +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +ht16k33 +htc-pasic3 +hts221 +hts221_i2c +hts221_spi +htu21 +huawei_cdc_ncm +hwmon-vid +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-altera +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-aspeed +i2c-cbus-gpio +i2c-ccgx-ucsi +i2c-cp2615 +i2c-cros-ec-tunnel +i2c-demux-pinctrl +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-fsi +i2c-gpio +i2c-hid +i2c-hid-of +i2c-hid-of-goodix +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-npcm7xx +i2c-nvidia-gpu +i2c-ocores +i2c-owl +i2c-parport +i2c-pca-platform +i2c-piix4 +i2c-pxa +i2c-qcom-cci +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-virtio +i2c-xiic +i3c +i3c-master-cdns +i40e +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-bcm-voter +icc-osm-l3 +icc-rpmh +icc-smd-rpm +ice +ice40-spi +icp10100 +icp_multi +icplus +ics932s401 +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +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-audio-rpmsg +imx-bus +imx-cpufreq-dt +imx-dma +imx-dsp +imx-interconnect +imx-ipu-v3 +imx-ldb +imx-mailbox +imx-media-common +imx-mipi-csis +imx-pcm-rpmsg +imx-pxp +imx-rngc +imx-sdma +imx-tve +imx-vdoa +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx2_wdt +imx319 +imx334 +imx335 +imx355 +imx412 +imx6-media +imx6-media-csi +imx6-mipi-csi2 +imx6q-cpufreq +imx6ul_tsc +imx7-media-csi +imx7d_adc +imx7ulp_wdt +imx8m-ddrc +imx8mm-interconnect +imx8mm_thermal +imx8mn-interconnect +imx8mq-interconnect +imx8mq-mipi-csi2 +imx8qxp-adc +imx_dsp_rproc +imx_keypad +imx_rproc +imx_sc_key +imx_sc_thermal +imx_sc_wdt +imx_thermal +imxdrm +imxfb +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int51x1 +intel-m10-bmc +intel-m10-bmc-hwmon +intel-nand-controller +intel-qep +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 +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io-domain +io_edgeport +io_ti +iosm +iova +iowarrior +ip5xxx_power +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_twos +ip_vs_wlc +ip_vs_wrr +ip_vti +ipa +ipack +ipaq +ipcomp +ipcomp6 +iphase +ipheth +ipip +ipmb_dev_int +ipmi_devintf +ipmi_ipmb +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-madera +irq-pruss-intc +irq-qcom-mpm +irq-ts4800 +irqbypass +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl7998x +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +it87 +it913x +itd1000 +ite-it6505 +ite-it66121 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +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_cdev_ipmi +kcs_bmc_npcm7xx +kcs_bmc_serio +ke_counter +kempld-core +kempld_wdt +kernelcapi +keyspan +keyspan_pda +keyspan_remote +keywrap +kfifo_buf +khadas-mcu +khadas_mcu_fan +kheaders +kl5kusb105 +kmx61 +kobil_sct +komeda +kpss-xcc +krait-cc +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lan966x-switch +lan966x_serdes +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +lcc-ipq806x +lcc-mdm9615 +lcc-msm8960 +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +led_bl +leds-88pm860x +leds-aat1290 +leds-acer-a500 +leds-adp5520 +leds-an30259a +leds-as3645a +leds-aw2013 +leds-bcm6328 +leds-bcm6358 +leds-bd2802 +leds-blinkm +leds-cpcap +leds-cr0014114 +leds-da903x +leds-da9052 +leds-dac124s085 +leds-el15203000 +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-lp50xx +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-mt6360 +leds-ns2 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-pm8058 +leds-pwm +leds-pwm-multicolor +leds-qcom-lpg +leds-regulator +leds-rt4505 +leds-rt8515 +leds-sgm3140 +leds-spi-byte +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +leds-turris-omnia +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-tty +ledtrig-usbport +legousbtower +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libarc4 +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +lima +line-display +lineage-pem +linear +linkstation-poweroff +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +liteuart +litex_liteeth +litex_mmc +litex_soc_ctrl +lkkbd +ll_temac +llc +llc2 +llcc-qcom +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 +lmh +lmp91000 +lms283gf05 +lms501kf03 +lnbh25 +lnbh29 +lnbp21 +lnbp22 +lochnagar-hwmon +lochnagar-regulator +lockd +lontium-lt8912b +lontium-lt9211 +lontium-lt9611 +lontium-lt9611uxc +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 +lpass-gfm-sm8250 +lpassaudiocc-sc7280 +lpasscc-sc7280 +lpasscc-sdm845 +lpasscorecc-sc7180 +lpasscorecc-sc7280 +lpc_ich +lpc_sch +lpddr2_nvm +lpddr_cmds +lpfc +lru_cache +lrw +lt3651-charger +ltc1660 +ltc2471 +ltc2485 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvds-codec +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_pci +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-88x2222 +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max14656_charger_detector +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +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 +max77714 +max77802-regulator +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +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 +max9271 +max9286 +max9611 +max96712 +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 +mchp48l640 +mcp16502 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-i2c +mctp-serial +md-cluster +md4 +mdc800 +mdev +mdio +mdio-aspeed +mdio-bcm-unimac +mdio-gpio +mdio-hisi-femac +mdio-i2c +mdio-ipq4019 +mdio-ipq8064 +mdio-mscc-miim +mdio-mux +mdio-mux-gpio +mdio-mux-meson-g12a +mdio-mux-mmioreg +mdio-mux-multiplexer +mdio-mvusb +mdt_loader +me4000 +me_daq +mediatek +mediatek-cpufreq +mediatek-cpufreq-hw +mediatek-drm +mediatek-drm-hdmi +mediatek-ge +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-ir-tx +meson-mx-sdhc +meson-mx-sdio +meson-rng +meson-vdec +meson_dw_hdmi +meson_gxbb_wdt +meson_mx_ao_arc +meson_nand +meson_saradc +meson_wdt +metro-usb +metronomefb +mf6x4 +mgag200 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip-tcb-capture +microchip_t1 +microread +microread_i2c +microtek +milbeaut-hdmac +milbeaut-xdmac +milbeaut_usio +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlx_wdt +mlxfw +mlxreg-fan +mlxreg-hotplug +mlxreg-io +mlxreg-lc +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +mma7455_core +mma7455_i2c +mma7455_spi +mma7660 +mma8450 +mma8452 +mma9551 +mma9551_core +mma9553 +mmc35240 +mmc_spi +mmcc-apq8084 +mmcc-msm8960 +mmcc-msm8974 +mmcc-msm8994 +mmcc-msm8996 +mmcc-msm8998 +mmcc-sdm660 +mms114 +mn88443x +mn88472 +mn88473 +mos7720 +mos7840 +most_cdev +most_core +most_dim2 +most_i2c +most_net +most_snd +most_usb +most_video +motorcomm +motorola-cpcap +moxa +moxtet +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp5416 +mp8859 +mp886x +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpq7920 +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +msc313e_wdt +mscc +mscc_felix +mscc_ocelot +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi001 +msi2500 +msm +msp3400 +mspro_block +mss-sc7180 +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-accdet +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6380-regulator +mt6397 +mt6397-regulator +mt6577_auxadc +mt6779-keypad +mt6797-mt6351 +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt8183-da7219-max98357 +mt8183-mt6358-ts3a227-max98357 +mt8192-mt6359-rt1015-rt5682 +mt8195-mt6359 +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd_dataflash +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-adsp-ipc +mtk-adsp-mailbox +mtk-btcvsd +mtk-cir +mtk-cmdq-helper +mtk-cmdq-mailbox +mtk-cqdma +mtk-devapc +mtk-hsdma +mtk-pmic-keys +mtk-pmic-wrap +mtk-rng +mtk-sd +mtk-smi +mtk-uart-apdma +mtk-vpu +mtk_nand +mtk_rpmsg +mtk_scp +mtk_scp_ipi +mtk_t7xx +mtk_thermal +mtk_wdt +mtouch +mtu3 +multipath +multiq3 +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 +mxc-jpeg-encdec +mxc4005 +mxc6255 +mxc_nand +mxc_w1 +mxcmmc +mxic_nand +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxser +mxsfb +mxuport +myrb +myri10ge +myrs +n_gsm +n_hdlc +nandsim +national +natsemi +nau7802 +navman +nbd +nbpfaxi +nci +nci_spi +nci_uart +nct6683 +nct6775 +nct6775-core +nct6775-i2c +nct7802 +nct7904 +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +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 +npcm-rng +npcm750-pwm-fan +npcm_adc +nps_enet +ns558 +ns83820 +nsh +nsp32 +ntb +ntb_hw_epf +ntb_hw_idt +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +ntxec +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-rmem +nvmem-rockchip-otp +nvmem_meson_mx_efuse +nvmem_qcom-spmi-sdam +nvmem_qfprom +nvmem_rockchip_efuse +nvmem_snvs_lpgpr +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nvsw-sn2201 +nwl-dsi +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-ptn3460 +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocmem +ocrdma +of-fpga-region +of_mmc_spi +of_xilinx_wdt +ofb +og01a1b +ohci-platform +omap +omap-aes-driver +omap-crypto +omap-des +omap-mailbox +omap-ocp2scp +omap-rng +omap-sham +omap-vout +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 +onenand_omap2 +open-dice +opencores-kbd +openvswitch +opt3001 +optee +optee-rng +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +orion_nand +orion_wdt +oti6858 +otm3225a +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov5640 +ov5645 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9282 +ov9640 +ov9650 +overlay +owl-dma +owl-emac +owl-mmc +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +palmas-pwrbutton +palmas-regulator +palmas_gpadc +pandora_bl +panel +panel-abt-y030xx067a +panel-arm-versatile +panel-asus-z00t-tm5p5-n35596 +panel-boe-bf060y8m-aj0 +panel-boe-himax8279d +panel-boe-tv101wum-nl6 +panel-dsi-cm +panel-edp +panel-elida-kd35t133 +panel-feixin-k101-im2ba02 +panel-feiyang-fy07024di26a30d +panel-ilitek-ili9322 +panel-ilitek-ili9341 +panel-ilitek-ili9881c +panel-innolux-ej030na +panel-innolux-p079zca +panel-jdi-fhd-r63452 +panel-jdi-lt070me05000 +panel-khadas-ts050 +panel-kingdisplay-kd097d04 +panel-leadtek-ltk050h3146w +panel-leadtek-ltk500hd1829 +panel-lg-lb035q02 +panel-lg-lg4573 +panel-lvds +panel-mantix-mlaf057we51 +panel-mipi-dbi +panel-nec-nl8048hl11 +panel-newvision-nv3052c +panel-novatek-nt35510 +panel-novatek-nt35560 +panel-novatek-nt35950 +panel-novatek-nt36672a +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-ronbo-rb070d30 +panel-samsung-atna33xc20 +panel-samsung-db7430 +panel-samsung-ld9040 +panel-samsung-s6d16d0 +panel-samsung-s6d27a1 +panel-samsung-s6e3ha2 +panel-samsung-s6e63j0x03 +panel-samsung-s6e63m0 +panel-samsung-s6e63m0-dsi +panel-samsung-s6e63m0-spi +panel-samsung-s6e88a0-ams452ef01 +panel-samsung-s6e8aa0 +panel-samsung-sofef00 +panel-seiko-43wvf1g +panel-sharp-lq101r1sx01 +panel-sharp-ls037v7dw01 +panel-sharp-ls043t1le01 +panel-sharp-ls060t1sx01 +panel-simple +panel-sitronix-st7701 +panel-sitronix-st7703 +panel-sitronix-st7789v +panel-sony-acx565akm +panel-sony-tulip-truly-nt35521 +panel-tdo-tl070wsh30 +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +panel-tpo-tpg110 +panel-truly-nt35597 +panel-visionox-rm69299 +panel-widechips-ws2401 +panel-xinpeng-xpp055c272 +panfrost +parade-ps8622 +parade-ps8640 +parallel-display +paride +parkbd +parman +parport +parport_ax88796 +parport_pc +parport_serial +parser_trx +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 +pc300too +pc87360 +pc87427 +pca9450-regulator +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-dra7xx +pci-epf-ntb +pci-pf-stub +pci-stub +pci200syn +pcie-mediatek-gen3 +pcie-qcom-ep +pcie-rockchip-host +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia_core +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcs-lynx +pcs_xpcs +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +pdr_interface +peak_pci +peak_pciefd +peak_usb +peci +peci-aspeed +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pf8x00-regulator +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-salvo +phy-cadence-sierra +phy-cadence-torrent +phy-can-transceiver +phy-cpcap-usb +phy-dm816x-usb +phy-exynos-usb2 +phy-gpio-vbus-usb +phy-hix5hd2-sata +phy-isp1301 +phy-mapphone-mdm6600 +phy-meson-axg-mipi-dphy +phy-meson-g12a-usb2 +phy-meson-g12a-usb3-pcie +phy-meson-gxl-usb2 +phy-meson8-hdmi-tx +phy-meson8b-usb2 +phy-mtk-hdmi-drv +phy-mtk-mipi-dsi-drv +phy-mtk-tphy +phy-mtk-ufs +phy-mtk-xsphy +phy-mvebu-a3700-comphy +phy-mvebu-a3700-utmi +phy-mvebu-cp110-comphy +phy-mvebu-cp110-utmi +phy-ocelot-serdes +phy-omap-control +phy-omap-usb2 +phy-pxa-28nm-hsic +phy-pxa-28nm-usb2 +phy-qcom-apq8064-sata +phy-qcom-edp +phy-qcom-ipq4019-usb +phy-qcom-ipq806x-sata +phy-qcom-ipq806x-usb +phy-qcom-pcie2 +phy-qcom-qmp +phy-qcom-qusb2 +phy-qcom-snps-femto-v2 +phy-qcom-usb-hs +phy-qcom-usb-hs-28nm +phy-qcom-usb-hsic +phy-qcom-usb-ss +phy-rcar-gen2 +phy-rcar-gen3-pcie +phy-rcar-gen3-usb2 +phy-rcar-gen3-usb3 +phy-rockchip-dp +phy-rockchip-dphy-rx0 +phy-rockchip-emmc +phy-rockchip-inno-csidphy +phy-rockchip-inno-dsidphy +phy-rockchip-inno-hdmi +phy-rockchip-inno-usb2 +phy-rockchip-naneng-combphy +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 +phylink +physmap +pi3usb30532 +pi433 +pim4328 +pinctrl-apq8064 +pinctrl-apq8084 +pinctrl-axp209 +pinctrl-da9062 +pinctrl-imx8ulp +pinctrl-imx93 +pinctrl-ipq4019 +pinctrl-ipq6018 +pinctrl-ipq8064 +pinctrl-ipq8074 +pinctrl-lochnagar +pinctrl-lpass-lpi +pinctrl-madera +pinctrl-max77620 +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-mdm9607 +pinctrl-mdm9615 +pinctrl-msm8226 +pinctrl-msm8660 +pinctrl-msm8916 +pinctrl-msm8953 +pinctrl-msm8960 +pinctrl-msm8976 +pinctrl-msm8994 +pinctrl-msm8996 +pinctrl-msm8998 +pinctrl-msm8x74 +pinctrl-qcm2290 +pinctrl-qcs404 +pinctrl-rk805 +pinctrl-sc7180 +pinctrl-sc7280 +pinctrl-sc7280-lpass-lpi +pinctrl-sc8180x +pinctrl-sc8280xp +pinctrl-sdm660 +pinctrl-sdm845 +pinctrl-sdx55 +pinctrl-sdx65 +pinctrl-sm6115 +pinctrl-sm6125 +pinctrl-sm6350 +pinctrl-sm8150 +pinctrl-sm8250 +pinctrl-sm8250-lpass-lpi +pinctrl-sm8350 +pinctrl-sm8450 +pinctrl-spmi-gpio +pinctrl-spmi-mpp +pinctrl-ssbi-gpio +pinctrl-ssbi-mpp +pinctrl-stmfx +ping +pistachio-internal-dac +pixcir_i2c_ts +pkcs7_test_key +pkcs8_key_parser +pktcdvd +pktgen +pl111_drm +pl172 +pl2303 +pl330 +pl353-smc +pl35x-nand-controller +plat-ram +plat_nand +platform_lcd +platform_mhu +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pm8916_wdt +pm8941-pwrkey +pm8xxx-vibrator +pmbus +pmbus_core +pmc551 +pmcraid +pmic8xxx-keypad +pmic8xxx-pwrkey +pms7003 +pn532_uart +pn533 +pn533_i2c +pn533_usb +pn544 +pn544_i2c +pn_pep +poly1305-arm +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +pru_rproc +pruss +ps2-gpio +ps2mult +psample +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptp-qoriq +ptp_clockmatrix +ptp_idt82p33 +ptp_ines +ptp_kvm +ptp_ocp +pulse8-cec +pulsedlight-lidar-lite-v2 +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-atmel-hlcdc +pwm-atmel-tcb +pwm-beeper +pwm-berlin +pwm-cros-ec +pwm-dwc +pwm-fan +pwm-fsl-ftm +pwm-hibvt +pwm-imx-tpm +pwm-imx1 +pwm-imx27 +pwm-iqs620a +pwm-ir-tx +pwm-lp3943 +pwm-mediatek +pwm-meson +pwm-mtk-disp +pwm-ntxec +pwm-omap-dmtimer +pwm-pca9685 +pwm-rcar +pwm-regulator +pwm-renesas-tpu +pwm-rockchip +pwm-tegra +pwm-tiecap +pwm-tiehrpwm +pwm-twl +pwm-twl-led +pwm-vibra +pwm-xilinx +pwm_bl +pwrseq_emmc +pwrseq_sd8787 +pwrseq_simple +pxa168_eth +pxa27x_udc +pxe1610 +pxrc +q54sj108a2 +q6adm +q6afe +q6afe-clocks +q6afe-dai +q6apm-dai +q6apm-lpass-dais +q6asm +q6asm-dai +q6core +q6prm +q6prm-clocks +q6routing +q6sstop-qcs404 +qca8k +qca_7k_common +qcaspi +qcauart +qcaux +qcom-apcs-ipc-mailbox +qcom-coincell +qcom-cpufreq-hw +qcom-cpufreq-nvmem +qcom-emac +qcom-geni-se +qcom-labibb-regulator +qcom-pm8008 +qcom-pm8xxx +qcom-pm8xxx-xoadc +qcom-pmic-typec +qcom-pon +qcom-rng +qcom-rpmh-regulator +qcom-spmi-adc-tm5 +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-pmic +qcom-spmi-temp-alarm +qcom-spmi-vadc +qcom-vadc-common +qcom-wdt +qcom-wled +qcom_adm +qcom_aoss +qcom_bam_dmux +qcom_common +qcom_edac +qcom_eud +qcom_geni_serial +qcom_glink +qcom_glink_rpm +qcom_glink_smem +qcom_gsbi +qcom_hwspinlock +qcom_nandc +qcom_pil_info +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_stats +qcom_sysmon +qcom_tsens +qcom_usb_vbus-regulator +qcomsmempart +qcrypto +qcserial +qed +qede +qedf +qedi +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qm1d1b0004 +qm1d1c0042 +qmi_helpers +qmi_wwan +qnoc-msm8916 +qnoc-msm8939 +qnoc-msm8974 +qnoc-msm8996 +qnoc-qcm2290 +qnoc-qcs404 +qnoc-sc7180 +qnoc-sc7280 +qnoc-sc8180x +qnoc-sc8280xp +qnoc-sdm660 +qnoc-sdm845 +qnoc-sdx55 +qnoc-sdx65 +qnoc-sm8150 +qnoc-sm8250 +qnoc-sm8350 +qnoc-sm8450 +qnx4 +qnx6 +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcar-csi2 +rcar-dmac +rcar-du-drm +rcar-fcp +rcar-gyroadc +rcar-isp +rcar-vin +rcar_can +rcar_canfd +rcar_cmm +rcar_drif +rcar_dw_hdmi +rcar_fdp1 +rcar_gen3_thermal +rcar_jpu +rcar_lvds +rcar_mipi_dsi +rcar_rproc +rcar_thermal +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +realtek-mdio +realtek-smi +reboot-mode +redboot +redrat3 +regmap-ac97 +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +regmap-spmi +regmap-w1 +regulator-haptic +reiserfs +renesas-ceu +renesas-nand-controller +renesas-rpc-if +renesas_sdhi_core +renesas_sdhi_internal_dmac +renesas_sdhi_sys_dmac +renesas_usb3 +renesas_usbhs +renesas_wdt +repaper +reset-a10sr +reset-hi3660 +reset-meson-audio-arb +reset-qcom-pdc +reset-scmi +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rmobile-reset +rmtfs_mem +rn5t618 +rn5t618-adc +rn5t618-regulator +rn5t618_power +rn5t618_wdt +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rockchip-dfi +rockchip-isp1 +rockchip-nand-controller +rockchip-rga +rockchip-vdec +rockchip_saradc +rockchip_thermal +rockchipdrm +rocker +rohm-bd71828 +rohm-bd718x7 +rohm-bd9576 +rohm-regulator +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpcrdma +rpcsec_gss_krb5 +rpi-panel-attiny-regulator +rpmpd +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsmu-i2c +rsmu-spi +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-msc313 +rtc-msm6242 +rtc-mt2712 +rtc-mt6397 +rtc-mt7622 +rtc-mxc +rtc-mxc_v2 +rtc-ntxec +rtc-optee +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-rc5t619 +rtc-rk808 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv3032 +rtc-rv8803 +rtc-rx4581 +rtc-rx6110 +rtc-rx8010 +rtc-rx8025 +rtc-rx8581 +rtc-rzn1 +rtc-s35390a +rtc-s5m +rtc-sd3078 +rtc-sh +rtc-snvs +rtc-stk17ta8 +rtc-tegra +rtc-tps6586x +rtc-tps65910 +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 +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rx51_battery +rxrpc +rza_wdt +rzg2l_thermal +rzg2l_wdt +rzn1-dmamux +rzn1_wdt +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +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 +sample-trace-array +samsung-keypad +samsung-sxgbe +samsung_tty +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 +sbrmi +sbs-battery +sbs-charger +sbs-manager +sbtsi_temp +sc16is7xx +sc92031 +sca3000 +sca3300 +scd30_core +scd30_i2c +scd30_serial +scd4x +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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 +scmi-cpufreq +scmi-hwmon +scmi-regulator +scmi_iio +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-milbeaut +sdhci-msm +sdhci-of-arasan +sdhci-of-aspeed +sdhci-of-at91 +sdhci-of-dwcmshc +sdhci-of-esdhc +sdhci-omap +sdhci-pci +sdhci-pxav3 +sdhci-tegra +sdhci-xenon-driver +sdhci_am654 +sdhci_f_sdh30 +sdio_uart +sensehat-joystick +sensorhub +serial-tegra +serial_ir +serio_raw +sermouse +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sh-sci +sh_eth +sh_mmcif +sh_mobile_lcdcfb +sha1-arm +sha1-arm-ce +sha1-arm-neon +sha2-arm-ce +sha256-arm +sha3_generic +sha512-arm +shark2 +sharpslpart +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sifive +sii902x +sii9234 +sil-sii8620 +sil164 +silead +simple-bridge +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +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 +sm2_generic +sm3 +sm3_generic +sm4 +sm4_generic +sm501fb +sm712fb +sm750fb +sm_common +sm_ftl +smartpqi +smb347-charger +smc +smc911x +smc_diag +smd-rpm +smem +smipcie +smm665 +smp2p +smsc +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsm +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-acp-config +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-ctl-led +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-cs8409 +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-q6apm +snd-q6dsp-common +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-generic +snd-serial-u16550 +snd-soc-63xx +snd-soc-ac97 +snd-soc-acp-rt5645-mach +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +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-armada-370-db +snd-soc-audio-graph-card +snd-soc-audio-graph-card2 +snd-soc-audio-graph-card2-custom-sample +snd-soc-aw8738 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-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-aud2htx +snd-soc-fsl-audmix +snd-soc-fsl-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmix +snd-soc-imx-card +snd-soc-imx-es8328 +snd-soc-imx-hdmi +snd-soc-imx-rpmsg +snd-soc-imx-spdif +snd-soc-inno-rk3036 +snd-soc-kirkwood +snd-soc-lochnagar-sc +snd-soc-lpass-apq8016 +snd-soc-lpass-cdc-dma +snd-soc-lpass-cpu +snd-soc-lpass-hdmi +snd-soc-lpass-ipq806x +snd-soc-lpass-macro-common +snd-soc-lpass-platform +snd-soc-lpass-rx-macro +snd-soc-lpass-sc7180 +snd-soc-lpass-sc7280 +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +snd-soc-max9860 +snd-soc-max9867 +snd-soc-max98927 +snd-soc-meson-aiu +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-card-utils +snd-soc-meson-codec-glue +snd-soc-meson-g12a-toacodec +snd-soc-meson-g12a-tohdmitx +snd-soc-meson-gx-sound-card +snd-soc-meson-t9015 +snd-soc-mikroe-proto +snd-soc-msm8916-analog +snd-soc-msm8916-digital +snd-soc-mt6351 +snd-soc-mt6358 +snd-soc-mt6359 +snd-soc-mt6660 +snd-soc-mt6797-afe +snd-soc-mt8183-afe +snd-soc-mt8192-afe +snd-soc-mt8195-afe +snd-soc-mtk-common +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +snd-soc-nau8822 +snd-soc-nau8824 +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-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-pcm5102a +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-rk817 +snd-soc-rl6231 +snd-soc-rockchip-i2s +snd-soc-rockchip-i2s-tdm +snd-soc-rockchip-max98090 +snd-soc-rockchip-pdm +snd-soc-rockchip-rt5645 +snd-soc-rockchip-spdif +snd-soc-rt1011 +snd-soc-rt1015 +snd-soc-rt1015p +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +snd-soc-rt5514 +snd-soc-rt5514-spi +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5659 +snd-soc-rt5663 +snd-soc-rt5677 +snd-soc-rt5677-spi +snd-soc-rt5682 +snd-soc-rt5682-i2c +snd-soc-rt5682-sdw +snd-soc-rt5682s +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-rx51 +snd-soc-sc7180 +snd-soc-sc7280 +snd-soc-sdm845 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-sm8250 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2305 +snd-soc-ssm2518 +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-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-tegra-audio-graph-card +snd-soc-tegra-machine +snd-soc-tegra-pcm +snd-soc-tegra-wm8903 +snd-soc-tegra186-asrc +snd-soc-tegra186-dspk +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra210-admaif +snd-soc-tegra210-adx +snd-soc-tegra210-ahub +snd-soc-tegra210-amx +snd-soc-tegra210-dmic +snd-soc-tegra210-i2s +snd-soc-tegra210-mixer +snd-soc-tegra210-mvc +snd-soc-tegra210-sfc +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-test-component +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-ti-edma +snd-soc-ti-sdma +snd-soc-ti-udma +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-twl4030 +snd-soc-twl6040 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wm8994 +snd-soc-wm9712 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +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 +snic +snps_udc_core +snps_udc_plat +snvs_pwrkey +socfpga +socfpga-a10 +socinfo +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +soundwire-bus +soundwire-qcom +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-armada-3700 +spi-aspeed-smc +spi-axi-spi-engine +spi-bitbang +spi-butterfly +spi-cadence +spi-cadence-quadspi +spi-cadence-xspi +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-fsi +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-mtk-nor +spi-mtk-snfi +spi-mux +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-rockchip-sfc +spi-rpc-if +spi-rspi +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-tegra210-quad +spi-ti-qspi +spi-tle62x0 +spi-xcomm +spi-zynqmp-gqspi +spi_ks8995 +spidev +spinand +spmi +spmi-mtk-pmif +spmi-pmic-arb +sprd_serial +sps30 +sps30_i2c +sps30_serial +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssbi +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +stpmic1 +stpmic1_onkey +stpmic1_regulator +stpmic1_wdt +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sur40 +surface3_spi +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sy8106a-regulator +sy8824x +sy8827n +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_gt +synopsys_edac +syscon-reboot-mode +syscopyarea +sysfillrect +sysimgblt +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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 +tc358762 +tc358764 +tc358767 +tc358768 +tc358775 +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_maxim +tcpci_mt6360 +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 +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-vde +tegra-video +tegra-xudc +tegra186-cpufreq +tegra30-devfreq +tegra30-tsensor +tegra_cec +tegra_nand +tegra_wdt +tehuti +teranetics +test-kprobes +test_blackhole_dev +test_bpf +test_power +tg3 +thc63lvd1024 +thermal-generic-adc +thermal_mmio +thmc50 +ths7303 +ths8200 +thunderbolt +thunderbolt-net +ti-adc081c +ti-adc0832 +ti-adc084s021 +ti-adc108s102 +ti-adc12138 +ti-adc128s052 +ti-adc161s626 +ti-ads1015 +ti-ads124s08 +ti-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-cal +ti-csc +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-emif-sram +ti-eqep +ti-lmu +ti-sc +ti-sn65dsi83 +ti-sn65dsi86 +ti-tfp410 +ti-tlc4541 +ti-tpd12s015 +ti-tsc2046 +ti-vpdma +ti-vpe +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_cpsw_new +ti_davinci_emac +ti_edac +ti_hecc +ti_usb_3410_5052 +tidss +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_ftpm_tee +tpm_i2c_atmel +tpm_i2c_infineon +tpm_i2c_nuvoton +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_vtpm_proxy +tps23861 +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps6286x-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 +tqmx86 +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts4800-ts +ts4800_wdt +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsi721_mport +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +ucan +ucb1400_core +ucb1400_ts +ucc_uart +ucd9000 +ucd9200 +ucs1002_power +ucsi_ccg +uda1342 +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_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 +usdhi6rol0 +userio +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-h264 +v4l2-jpeg +v4l2-mem2mem +v4l2-tpg +v4l2-vp9 +vcan +vcnl3020 +vcnl4000 +vcnl4035 +vctrl-regulator +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +ves1820 +ves1x93 +veth +vexpress-hwmon +vexpress-regulator +vexpress-spc-cpufreq +vf610_adc +vf610_dac +vfio-amba +vfio-pci +vfio-pci-core +vfio-platform +vfio-platform-amdxgbe +vfio-platform-base +vfio-platform-calxedaxgmac +vfio_virqfd +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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-sc7180 +videocc-sc7280 +videocc-sdm845 +videocc-sm8150 +videocc-sm8250 +videodev +vim2m +vimc +viperboard +viperboard_adc +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_net +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +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 +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vqmmc-ipq4019-regulator +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wcnss_ctrl +wd719x +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +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 +wusb3801 +wwan_hwsim +x25 +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xfrm4_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xgmac +xhci-histb +xhci-mtk-hcd +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xhci-tegra +xilinx-csi2rxss +xilinx-pr-decoupler +xilinx-spi +xilinx-tpg +xilinx-video +xilinx-vtc +xilinx-xadc +xilinx_dpdma +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_sdfec +xilinx_uartps +xillybus_class +xillybus_core +xillybus_of +xillybus_pcie +xillyusb +xiphera-trng +xircom_cb +xlnx_vcu +xor +xor-neon +xpad +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yenta_socket +yurex +z3fold +zaurus +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd --- linux-5.19.0.orig/debian.master/abi/armhf/generic.retpoline +++ linux-5.19.0/debian.master/abi/armhf/generic.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/fwinfo +++ linux-5.19.0/debian.master/abi/fwinfo @@ -0,0 +1,2053 @@ +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: amd/amd_sev_fam17h_model0xh.sbin +firmware: amd/amd_sev_fam17h_model3xh.sbin +firmware: amd/amd_sev_fam19h_model0xh.sbin +firmware: amdgpu/aldebaran_cap.bin +firmware: amdgpu/aldebaran_mec.bin +firmware: amdgpu/aldebaran_mec2.bin +firmware: amdgpu/aldebaran_rlc.bin +firmware: amdgpu/aldebaran_sdma.bin +firmware: amdgpu/aldebaran_smc.bin +firmware: amdgpu/aldebaran_sos.bin +firmware: amdgpu/aldebaran_ta.bin +firmware: amdgpu/aldebaran_vcn.bin +firmware: amdgpu/arcturus_asd.bin +firmware: amdgpu/arcturus_gpu_info.bin +firmware: amdgpu/arcturus_mec.bin +firmware: amdgpu/arcturus_rlc.bin +firmware: amdgpu/arcturus_sdma.bin +firmware: amdgpu/arcturus_smc.bin +firmware: amdgpu/arcturus_sos.bin +firmware: amdgpu/arcturus_ta.bin +firmware: amdgpu/arcturus_vcn.bin +firmware: amdgpu/banks_k_2_smc.bin +firmware: amdgpu/beige_goby_ce.bin +firmware: amdgpu/beige_goby_dmcub.bin +firmware: amdgpu/beige_goby_me.bin +firmware: amdgpu/beige_goby_mec.bin +firmware: amdgpu/beige_goby_mec2.bin +firmware: amdgpu/beige_goby_pfp.bin +firmware: amdgpu/beige_goby_rlc.bin +firmware: amdgpu/beige_goby_sdma.bin +firmware: amdgpu/beige_goby_smc.bin +firmware: amdgpu/beige_goby_sos.bin +firmware: amdgpu/beige_goby_ta.bin +firmware: amdgpu/beige_goby_vcn.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/cyan_skillfish2_ce.bin +firmware: amdgpu/cyan_skillfish2_me.bin +firmware: amdgpu/cyan_skillfish2_mec.bin +firmware: amdgpu/cyan_skillfish2_mec2.bin +firmware: amdgpu/cyan_skillfish2_pfp.bin +firmware: amdgpu/cyan_skillfish2_rlc.bin +firmware: amdgpu/cyan_skillfish2_sdma.bin +firmware: amdgpu/cyan_skillfish2_sdma1.bin +firmware: amdgpu/dcn_3_1_5_dmcub.bin +firmware: amdgpu/dcn_3_1_6_dmcub.bin +firmware: amdgpu/dimgrey_cavefish_ce.bin +firmware: amdgpu/dimgrey_cavefish_dmcub.bin +firmware: amdgpu/dimgrey_cavefish_me.bin +firmware: amdgpu/dimgrey_cavefish_mec.bin +firmware: amdgpu/dimgrey_cavefish_mec2.bin +firmware: amdgpu/dimgrey_cavefish_pfp.bin +firmware: amdgpu/dimgrey_cavefish_rlc.bin +firmware: amdgpu/dimgrey_cavefish_sdma.bin +firmware: amdgpu/dimgrey_cavefish_smc.bin +firmware: amdgpu/dimgrey_cavefish_sos.bin +firmware: amdgpu/dimgrey_cavefish_ta.bin +firmware: amdgpu/dimgrey_cavefish_vcn.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/gc_10_3_6_ce.bin +firmware: amdgpu/gc_10_3_6_me.bin +firmware: amdgpu/gc_10_3_6_mec.bin +firmware: amdgpu/gc_10_3_6_mec2.bin +firmware: amdgpu/gc_10_3_6_pfp.bin +firmware: amdgpu/gc_10_3_6_rlc.bin +firmware: amdgpu/gc_10_3_7_ce.bin +firmware: amdgpu/gc_10_3_7_me.bin +firmware: amdgpu/gc_10_3_7_mec.bin +firmware: amdgpu/gc_10_3_7_mec2.bin +firmware: amdgpu/gc_10_3_7_pfp.bin +firmware: amdgpu/gc_10_3_7_rlc.bin +firmware: amdgpu/gc_11_0_0_imu.bin +firmware: amdgpu/gc_11_0_0_me.bin +firmware: amdgpu/gc_11_0_0_mec.bin +firmware: amdgpu/gc_11_0_0_mes.bin +firmware: amdgpu/gc_11_0_0_mes1.bin +firmware: amdgpu/gc_11_0_0_pfp.bin +firmware: amdgpu/gc_11_0_0_rlc.bin +firmware: amdgpu/gc_11_0_0_toc.bin +firmware: amdgpu/gc_11_0_1_imu.bin +firmware: amdgpu/gc_11_0_1_me.bin +firmware: amdgpu/gc_11_0_1_mec.bin +firmware: amdgpu/gc_11_0_1_mes.bin +firmware: amdgpu/gc_11_0_1_mes1.bin +firmware: amdgpu/gc_11_0_1_pfp.bin +firmware: amdgpu/gc_11_0_1_rlc.bin +firmware: amdgpu/gc_11_0_2_imu.bin +firmware: amdgpu/gc_11_0_2_me.bin +firmware: amdgpu/gc_11_0_2_mec.bin +firmware: amdgpu/gc_11_0_2_mes.bin +firmware: amdgpu/gc_11_0_2_mes1.bin +firmware: amdgpu/gc_11_0_2_pfp.bin +firmware: amdgpu/gc_11_0_2_rlc.bin +firmware: amdgpu/green_sardine_asd.bin +firmware: amdgpu/green_sardine_ce.bin +firmware: amdgpu/green_sardine_dmcub.bin +firmware: amdgpu/green_sardine_me.bin +firmware: amdgpu/green_sardine_mec.bin +firmware: amdgpu/green_sardine_mec2.bin +firmware: amdgpu/green_sardine_pfp.bin +firmware: amdgpu/green_sardine_rlc.bin +firmware: amdgpu/green_sardine_sdma.bin +firmware: amdgpu/green_sardine_ta.bin +firmware: amdgpu/green_sardine_vcn.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/ip_discovery.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_me.bin +firmware: amdgpu/navi10_mec.bin +firmware: amdgpu/navi10_mec2.bin +firmware: amdgpu/navi10_mes.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_ta.bin +firmware: amdgpu/navi10_vcn.bin +firmware: amdgpu/navi12_asd.bin +firmware: amdgpu/navi12_cap.bin +firmware: amdgpu/navi12_ce.bin +firmware: amdgpu/navi12_dmcu.bin +firmware: amdgpu/navi12_gpu_info.bin +firmware: amdgpu/navi12_me.bin +firmware: amdgpu/navi12_mec.bin +firmware: amdgpu/navi12_mec2.bin +firmware: amdgpu/navi12_pfp.bin +firmware: amdgpu/navi12_rlc.bin +firmware: amdgpu/navi12_sdma.bin +firmware: amdgpu/navi12_sdma1.bin +firmware: amdgpu/navi12_smc.bin +firmware: amdgpu/navi12_sos.bin +firmware: amdgpu/navi12_ta.bin +firmware: amdgpu/navi12_vcn.bin +firmware: amdgpu/navi14_asd.bin +firmware: amdgpu/navi14_ce.bin +firmware: amdgpu/navi14_ce_wks.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_ta.bin +firmware: amdgpu/navi14_vcn.bin +firmware: amdgpu/navy_flounder_ce.bin +firmware: amdgpu/navy_flounder_dmcub.bin +firmware: amdgpu/navy_flounder_me.bin +firmware: amdgpu/navy_flounder_mec.bin +firmware: amdgpu/navy_flounder_mec2.bin +firmware: amdgpu/navy_flounder_pfp.bin +firmware: amdgpu/navy_flounder_rlc.bin +firmware: amdgpu/navy_flounder_sdma.bin +firmware: amdgpu/navy_flounder_smc.bin +firmware: amdgpu/navy_flounder_sos.bin +firmware: amdgpu/navy_flounder_ta.bin +firmware: amdgpu/navy_flounder_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/oland_uvd.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_ta.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/pitcairn_uvd.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_32_mc.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/psp_13_0_0_sos.bin +firmware: amdgpu/psp_13_0_5_ta.bin +firmware: amdgpu/psp_13_0_5_toc.bin +firmware: amdgpu/psp_13_0_7_sos.bin +firmware: amdgpu/psp_13_0_8_ta.bin +firmware: amdgpu/psp_13_0_8_toc.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_ta.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_ta.bin +firmware: amdgpu/raven_vcn.bin +firmware: amdgpu/renoir_asd.bin +firmware: amdgpu/renoir_ce.bin +firmware: amdgpu/renoir_dmcub.bin +firmware: amdgpu/renoir_me.bin +firmware: amdgpu/renoir_mec.bin +firmware: amdgpu/renoir_pfp.bin +firmware: amdgpu/renoir_rlc.bin +firmware: amdgpu/renoir_sdma.bin +firmware: amdgpu/renoir_ta.bin +firmware: amdgpu/renoir_vcn.bin +firmware: amdgpu/sdma_5_2_6.bin +firmware: amdgpu/sdma_5_2_7.bin +firmware: amdgpu/sdma_6_0_0.bin +firmware: amdgpu/sdma_6_0_1.bin +firmware: amdgpu/sdma_6_0_2.bin +firmware: amdgpu/si58_mc.bin +firmware: amdgpu/sienna_cichlid_cap.bin +firmware: amdgpu/sienna_cichlid_ce.bin +firmware: amdgpu/sienna_cichlid_dmcub.bin +firmware: amdgpu/sienna_cichlid_me.bin +firmware: amdgpu/sienna_cichlid_mec.bin +firmware: amdgpu/sienna_cichlid_mec2.bin +firmware: amdgpu/sienna_cichlid_mes.bin +firmware: amdgpu/sienna_cichlid_mes1.bin +firmware: amdgpu/sienna_cichlid_pfp.bin +firmware: amdgpu/sienna_cichlid_rlc.bin +firmware: amdgpu/sienna_cichlid_sdma.bin +firmware: amdgpu/sienna_cichlid_smc.bin +firmware: amdgpu/sienna_cichlid_sos.bin +firmware: amdgpu/sienna_cichlid_ta.bin +firmware: amdgpu/sienna_cichlid_vcn.bin +firmware: amdgpu/smu_13_0_0.bin +firmware: amdgpu/smu_13_0_7.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/tahiti_uvd.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/vangogh_asd.bin +firmware: amdgpu/vangogh_ce.bin +firmware: amdgpu/vangogh_dmcub.bin +firmware: amdgpu/vangogh_me.bin +firmware: amdgpu/vangogh_mec.bin +firmware: amdgpu/vangogh_mec2.bin +firmware: amdgpu/vangogh_pfp.bin +firmware: amdgpu/vangogh_rlc.bin +firmware: amdgpu/vangogh_sdma.bin +firmware: amdgpu/vangogh_toc.bin +firmware: amdgpu/vangogh_vcn.bin +firmware: amdgpu/vcn_3_1_2.bin +firmware: amdgpu/vcn_4_0_0.bin +firmware: amdgpu/vcn_4_0_4.bin +firmware: amdgpu/vega10_acg_smc.bin +firmware: amdgpu/vega10_asd.bin +firmware: amdgpu/vega10_cap.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_ta.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: amdgpu/verde_uvd.bin +firmware: amdgpu/yellow_carp_ce.bin +firmware: amdgpu/yellow_carp_dmcub.bin +firmware: amdgpu/yellow_carp_me.bin +firmware: amdgpu/yellow_carp_mec.bin +firmware: amdgpu/yellow_carp_mec2.bin +firmware: amdgpu/yellow_carp_pfp.bin +firmware: amdgpu/yellow_carp_rlc.bin +firmware: amdgpu/yellow_carp_sdma.bin +firmware: amdgpu/yellow_carp_ta.bin +firmware: amdgpu/yellow_carp_toc.bin +firmware: amdgpu/yellow_carp_vcn.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: ath11k/QCA6390/hw2.0/amss.bin +firmware: ath11k/QCA6390/hw2.0/board-2.bin +firmware: ath11k/QCA6390/hw2.0/m3.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/wilc1000_wifi_firmware-1.bin +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: 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.15.0.fw +firmware: bnx2x/bnx2x-e1-7.13.21.0.fw +firmware: bnx2x/bnx2x-e1h-7.13.15.0.fw +firmware: bnx2x/bnx2x-e1h-7.13.21.0.fw +firmware: bnx2x/bnx2x-e2-7.13.15.0.fw +firmware: bnx2x/bnx2x-e2-7.13.21.0.fw +firmware: brcm/bcm43xx-0.fw +firmware: brcm/bcm43xx_hdr-0.fw +firmware: brcm/brcmfmac*-pcie.*.bin +firmware: brcm/brcmfmac*-pcie.*.txt +firmware: brcm/brcmfmac*-pcie.txt +firmware: brcm/brcmfmac*-sdio.*.bin +firmware: brcm/brcmfmac*-sdio.*.txt +firmware: brcm/brcmfmac43012-sdio.bin +firmware: brcm/brcmfmac43012-sdio.clm_blob +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/brcmfmac43430-sdio.clm_blob +firmware: brcm/brcmfmac43430a0-sdio.bin +firmware: brcm/brcmfmac43430b0-sdio.bin +firmware: brcm/brcmfmac43455-sdio.bin +firmware: brcm/brcmfmac43455-sdio.clm_blob +firmware: brcm/brcmfmac43456-sdio.bin +firmware: brcm/brcmfmac4350-pcie.bin +firmware: brcm/brcmfmac4350c2-pcie.bin +firmware: brcm/brcmfmac4354-sdio.bin +firmware: brcm/brcmfmac4354-sdio.clm_blob +firmware: brcm/brcmfmac4356-pcie.bin +firmware: brcm/brcmfmac4356-pcie.clm_blob +firmware: brcm/brcmfmac4356-sdio.bin +firmware: brcm/brcmfmac4356-sdio.clm_blob +firmware: brcm/brcmfmac43569.bin +firmware: brcm/brcmfmac43570-pcie.bin +firmware: brcm/brcmfmac43570-pcie.clm_blob +firmware: brcm/brcmfmac4358-pcie.bin +firmware: brcm/brcmfmac4359-pcie.bin +firmware: brcm/brcmfmac4359-sdio.bin +firmware: brcm/brcmfmac43602-pcie.bin +firmware: brcm/brcmfmac4364-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-sdio.clm_blob +firmware: brcm/brcmfmac4373.bin +firmware: brcm/brcmfmac43752-sdio.bin +firmware: brcm/brcmfmac43752-sdio.clm_blob +firmware: c218tunx.cod +firmware: c320tunx.cod +firmware: cadence/mhdp8546.bin +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: 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-m88ds3103b.fw +firmware: dvb-demod-m88rs6000.fw +firmware: dvb-demod-mn88472-02.fw +firmware: dvb-demod-mn88473-01.fw +firmware: dvb-demod-mxl692.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_driver_si2141_rom60.fw +firmware: dvb_driver_si2141_rom61.fw +firmware: dvb_driver_si2146_rom11.fw +firmware: dvb_driver_si2147_rom50.fw +firmware: dvb_driver_si2148_rom32.fw +firmware: dvb_driver_si2148_rom33.fw +firmware: dvb_driver_si2157_rom50.fw +firmware: dvb_driver_si2158_rom51.fw +firmware: dvb_driver_si2177_rom50.fw +firmware: dvb_driver_si2178_rom50.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: i915/adlp_dmc_ver2_16.bin +firmware: i915/adlp_guc_69.0.3.bin +firmware: i915/adlp_guc_70.1.1.bin +firmware: i915/adls_dmc_ver2_01.bin +firmware: i915/bxt_dmc_ver1_07.bin +firmware: i915/bxt_guc_70.1.1.bin +firmware: i915/bxt_huc_2.0.0.bin +firmware: i915/cml_guc_70.1.1.bin +firmware: i915/cml_huc_4.0.0.bin +firmware: i915/dg1_dmc_ver2_02.bin +firmware: i915/dg1_guc_70.1.1.bin +firmware: i915/dg1_huc_7.9.3.bin +firmware: i915/dg2_guc_70.1.2.bin +firmware: i915/ehl_guc_70.1.1.bin +firmware: i915/ehl_huc_9.0.0.bin +firmware: i915/glk_dmc_ver1_04.bin +firmware: i915/glk_guc_70.1.1.bin +firmware: i915/glk_huc_4.0.0.bin +firmware: i915/icl_dmc_ver1_09.bin +firmware: i915/icl_guc_70.1.1.bin +firmware: i915/icl_huc_9.0.0.bin +firmware: i915/kbl_dmc_ver1_04.bin +firmware: i915/kbl_guc_70.1.1.bin +firmware: i915/kbl_huc_4.0.0.bin +firmware: i915/rkl_dmc_ver2_03.bin +firmware: i915/skl_dmc_ver1_27.bin +firmware: i915/skl_guc_70.1.1.bin +firmware: i915/skl_huc_2.0.0.bin +firmware: i915/tgl_dmc_ver2_12.bin +firmware: i915/tgl_guc_69.0.3.bin +firmware: i915/tgl_guc_70.1.1.bin +firmware: i915/tgl_huc_7.9.3.bin +firmware: icom_asc.bin +firmware: icom_call_setup.bin +firmware: icom_res_dce.bin +firmware: idt82p33xxx.bin +firmware: ifpp.bin +firmware: imx/sdma/sdma-imx6q.bin +firmware: imx/sdma/sdma-imx7d.bin +firmware: inside-secure/eip197_minifw/ifpp.bin +firmware: inside-secure/eip197_minifw/ipue.bin +firmware: inside-secure/eip197b/ifpp.bin +firmware: inside-secure/eip197b/ipue.bin +firmware: inside-secure/eip197d/ifpp.bin +firmware: inside-secure/eip197d/ipue.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: ipue.bin +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: 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-BzBnj-a0-fm-a0-72.ucode +firmware: iwlwifi-BzBnj-a0-fm4-a0-72.ucode +firmware: iwlwifi-BzBnj-a0-gf-a0-72.ucode +firmware: iwlwifi-BzBnj-a0-gf4-a0-72.ucode +firmware: iwlwifi-BzBnj-a0-hr-b0-72.ucode +firmware: iwlwifi-Qu-b0-hr-b0-72.ucode +firmware: iwlwifi-Qu-b0-jf-b0-72.ucode +firmware: iwlwifi-Qu-c0-hr-b0-72.ucode +firmware: iwlwifi-QuQnj-b0-hr-b0-72.ucode +firmware: iwlwifi-QuQnj-b0-jf-b0-72.ucode +firmware: iwlwifi-QuZ-a0-hr-b0-72.ucode +firmware: iwlwifi-QuZ-a0-jf-b0-72.ucode +firmware: iwlwifi-SoSnj-a0-gf-a0-72.ucode +firmware: iwlwifi-SoSnj-a0-gf4-a0-72.ucode +firmware: iwlwifi-SoSnj-a0-hr-b0-72.ucode +firmware: iwlwifi-SoSnj-a0-jf-b0-72.ucode +firmware: iwlwifi-SoSnj-a0-mr-a0-72.ucode +firmware: iwlwifi-bz-a0-fm-a0-72.ucode +firmware: iwlwifi-bz-a0-gf-a0-72.ucode +firmware: iwlwifi-bz-a0-gf4-a0-72.ucode +firmware: iwlwifi-bz-a0-hr-b0-72.ucode +firmware: iwlwifi-bz-a0-mr-a0-72.ucode +firmware: iwlwifi-cc-a0-72.ucode +firmware: iwlwifi-gl-a0-fm-a0-72.ucode +firmware: iwlwifi-ma-a0-fm-a0-72.ucode +firmware: iwlwifi-ma-a0-gf-a0-72.ucode +firmware: iwlwifi-ma-a0-gf4-a0-72.ucode +firmware: iwlwifi-ma-a0-hr-b0-72.ucode +firmware: iwlwifi-ma-a0-mr-a0-72.ucode +firmware: iwlwifi-so-a0-gf-a0-72.ucode +firmware: iwlwifi-so-a0-hr-b0-72.ucode +firmware: iwlwifi-so-a0-jf-b0-72.ucode +firmware: iwlwifi-ty-a0-gf-a0-72.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/BT_RAM_CODE_MT7961_1_2_hdr.bin +firmware: mediatek/WIFI_MT7922_patch_mcu_1_1_hdr.bin +firmware: mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin +firmware: mediatek/WIFI_RAM_CODE_MT7922_1.bin +firmware: mediatek/WIFI_RAM_CODE_MT7961_1.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/mt7622_n9.bin +firmware: mediatek/mt7622_rom_patch.bin +firmware: mediatek/mt7622pr2h.bin +firmware: mediatek/mt7650e.bin +firmware: mediatek/mt7663_n9_rebb.bin +firmware: mediatek/mt7663_n9_v3.bin +firmware: mediatek/mt7663pr2h.bin +firmware: mediatek/mt7663pr2h_rebb.bin +firmware: mediatek/mt7668pr2h.bin +firmware: mediatek/mt7915_rom_patch.bin +firmware: mediatek/mt7915_wa.bin +firmware: mediatek/mt7915_wm.bin +firmware: mediatek/mt7916_rom_patch.bin +firmware: mediatek/mt7916_wa.bin +firmware: mediatek/mt7916_wm.bin +firmware: mediatek/mt7986_rom_patch.bin +firmware: mediatek/mt7986_rom_patch_mt7975.bin +firmware: mediatek/mt7986_wa.bin +firmware: mediatek/mt7986_wm.bin +firmware: mediatek/mt7986_wm_mt7975.bin +firmware: mellanox/lc_ini_bundle_2010_1006.bin +firmware: mellanox/mlxsw_spectrum-13.2010.1006.mfa2 +firmware: mellanox/mlxsw_spectrum2-29.2010.1006.mfa2 +firmware: mellanox/mlxsw_spectrum3-30.2010.1006.mfa2 +firmware: microchip/mscc_vsc8574_revb_int8051_29e8.bin +firmware: microchip/mscc_vsc8584_revb_int8051_fb48.bin +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/sdiouart8997_combo_v4.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/gm20b/acr/bl.bin +firmware: nvidia/gm20b/acr/ucode_load.bin +firmware: nvidia/gm20b/gr/fecs_bl.bin +firmware: nvidia/gm20b/gr/fecs_data.bin +firmware: nvidia/gm20b/gr/fecs_inst.bin +firmware: nvidia/gm20b/gr/fecs_sig.bin +firmware: nvidia/gm20b/gr/gpccs_data.bin +firmware: nvidia/gm20b/gr/gpccs_inst.bin +firmware: nvidia/gm20b/gr/sw_bundle_init.bin +firmware: nvidia/gm20b/gr/sw_ctx.bin +firmware: nvidia/gm20b/gr/sw_method_init.bin +firmware: nvidia/gm20b/gr/sw_nonctx.bin +firmware: nvidia/gm20b/pmu/desc.bin +firmware: nvidia/gm20b/pmu/image.bin +firmware: nvidia/gm20b/pmu/sig.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/gp10b/acr/bl.bin +firmware: nvidia/gp10b/acr/ucode_load.bin +firmware: nvidia/gp10b/gr/fecs_bl.bin +firmware: nvidia/gp10b/gr/fecs_data.bin +firmware: nvidia/gp10b/gr/fecs_inst.bin +firmware: nvidia/gp10b/gr/fecs_sig.bin +firmware: nvidia/gp10b/gr/gpccs_bl.bin +firmware: nvidia/gp10b/gr/gpccs_data.bin +firmware: nvidia/gp10b/gr/gpccs_inst.bin +firmware: nvidia/gp10b/gr/gpccs_sig.bin +firmware: nvidia/gp10b/gr/sw_bundle_init.bin +firmware: nvidia/gp10b/gr/sw_ctx.bin +firmware: nvidia/gp10b/gr/sw_method_init.bin +firmware: nvidia/gp10b/gr/sw_nonctx.bin +firmware: nvidia/gp10b/pmu/desc.bin +firmware: nvidia/gp10b/pmu/image.bin +firmware: nvidia/gp10b/pmu/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/nvdec.bin +firmware: nvidia/tegra186/vic04_ucode.bin +firmware: nvidia/tegra186/xusb.bin +firmware: nvidia/tegra194/nvdec.bin +firmware: nvidia/tegra194/vic.bin +firmware: nvidia/tegra194/xusb.bin +firmware: nvidia/tegra210/nvdec.bin +firmware: nvidia/tegra210/vic04_ucode.bin +firmware: nvidia/tegra210/xusb.bin +firmware: nvidia/tu102/acr/bl.bin +firmware: nvidia/tu102/acr/ucode_ahesasc.bin +firmware: nvidia/tu102/acr/ucode_asb.bin +firmware: nvidia/tu102/acr/ucode_unload.bin +firmware: nvidia/tu102/acr/unload_bl.bin +firmware: nvidia/tu102/gr/fecs_bl.bin +firmware: nvidia/tu102/gr/fecs_data.bin +firmware: nvidia/tu102/gr/fecs_inst.bin +firmware: nvidia/tu102/gr/fecs_sig.bin +firmware: nvidia/tu102/gr/gpccs_bl.bin +firmware: nvidia/tu102/gr/gpccs_data.bin +firmware: nvidia/tu102/gr/gpccs_inst.bin +firmware: nvidia/tu102/gr/gpccs_sig.bin +firmware: nvidia/tu102/gr/sw_bundle_init.bin +firmware: nvidia/tu102/gr/sw_ctx.bin +firmware: nvidia/tu102/gr/sw_method_init.bin +firmware: nvidia/tu102/gr/sw_nonctx.bin +firmware: nvidia/tu102/nvdec/scrubber.bin +firmware: nvidia/tu102/sec2/desc.bin +firmware: nvidia/tu102/sec2/image.bin +firmware: nvidia/tu102/sec2/sig.bin +firmware: nvidia/tu104/acr/bl.bin +firmware: nvidia/tu104/acr/ucode_ahesasc.bin +firmware: nvidia/tu104/acr/ucode_asb.bin +firmware: nvidia/tu104/acr/ucode_unload.bin +firmware: nvidia/tu104/acr/unload_bl.bin +firmware: nvidia/tu104/gr/fecs_bl.bin +firmware: nvidia/tu104/gr/fecs_data.bin +firmware: nvidia/tu104/gr/fecs_inst.bin +firmware: nvidia/tu104/gr/fecs_sig.bin +firmware: nvidia/tu104/gr/gpccs_bl.bin +firmware: nvidia/tu104/gr/gpccs_data.bin +firmware: nvidia/tu104/gr/gpccs_inst.bin +firmware: nvidia/tu104/gr/gpccs_sig.bin +firmware: nvidia/tu104/gr/sw_bundle_init.bin +firmware: nvidia/tu104/gr/sw_ctx.bin +firmware: nvidia/tu104/gr/sw_method_init.bin +firmware: nvidia/tu104/gr/sw_nonctx.bin +firmware: nvidia/tu104/nvdec/scrubber.bin +firmware: nvidia/tu104/sec2/desc.bin +firmware: nvidia/tu104/sec2/image.bin +firmware: nvidia/tu104/sec2/sig.bin +firmware: nvidia/tu106/acr/bl.bin +firmware: nvidia/tu106/acr/ucode_ahesasc.bin +firmware: nvidia/tu106/acr/ucode_asb.bin +firmware: nvidia/tu106/acr/ucode_unload.bin +firmware: nvidia/tu106/acr/unload_bl.bin +firmware: nvidia/tu106/gr/fecs_bl.bin +firmware: nvidia/tu106/gr/fecs_data.bin +firmware: nvidia/tu106/gr/fecs_inst.bin +firmware: nvidia/tu106/gr/fecs_sig.bin +firmware: nvidia/tu106/gr/gpccs_bl.bin +firmware: nvidia/tu106/gr/gpccs_data.bin +firmware: nvidia/tu106/gr/gpccs_inst.bin +firmware: nvidia/tu106/gr/gpccs_sig.bin +firmware: nvidia/tu106/gr/sw_bundle_init.bin +firmware: nvidia/tu106/gr/sw_ctx.bin +firmware: nvidia/tu106/gr/sw_method_init.bin +firmware: nvidia/tu106/gr/sw_nonctx.bin +firmware: nvidia/tu106/nvdec/scrubber.bin +firmware: nvidia/tu106/sec2/desc.bin +firmware: nvidia/tu106/sec2/image.bin +firmware: nvidia/tu106/sec2/sig.bin +firmware: nvidia/tu116/acr/bl.bin +firmware: nvidia/tu116/acr/ucode_ahesasc.bin +firmware: nvidia/tu116/acr/ucode_asb.bin +firmware: nvidia/tu116/acr/ucode_unload.bin +firmware: nvidia/tu116/acr/unload_bl.bin +firmware: nvidia/tu116/gr/fecs_bl.bin +firmware: nvidia/tu116/gr/fecs_data.bin +firmware: nvidia/tu116/gr/fecs_inst.bin +firmware: nvidia/tu116/gr/fecs_sig.bin +firmware: nvidia/tu116/gr/gpccs_bl.bin +firmware: nvidia/tu116/gr/gpccs_data.bin +firmware: nvidia/tu116/gr/gpccs_inst.bin +firmware: nvidia/tu116/gr/gpccs_sig.bin +firmware: nvidia/tu116/gr/sw_bundle_init.bin +firmware: nvidia/tu116/gr/sw_ctx.bin +firmware: nvidia/tu116/gr/sw_method_init.bin +firmware: nvidia/tu116/gr/sw_nonctx.bin +firmware: nvidia/tu116/nvdec/scrubber.bin +firmware: nvidia/tu116/sec2/desc.bin +firmware: nvidia/tu116/sec2/image.bin +firmware: nvidia/tu116/sec2/sig.bin +firmware: nvidia/tu117/acr/bl.bin +firmware: nvidia/tu117/acr/ucode_ahesasc.bin +firmware: nvidia/tu117/acr/ucode_asb.bin +firmware: nvidia/tu117/acr/ucode_unload.bin +firmware: nvidia/tu117/acr/unload_bl.bin +firmware: nvidia/tu117/gr/fecs_bl.bin +firmware: nvidia/tu117/gr/fecs_data.bin +firmware: nvidia/tu117/gr/fecs_inst.bin +firmware: nvidia/tu117/gr/fecs_sig.bin +firmware: nvidia/tu117/gr/gpccs_bl.bin +firmware: nvidia/tu117/gr/gpccs_data.bin +firmware: nvidia/tu117/gr/gpccs_inst.bin +firmware: nvidia/tu117/gr/gpccs_sig.bin +firmware: nvidia/tu117/gr/sw_bundle_init.bin +firmware: nvidia/tu117/gr/sw_ctx.bin +firmware: nvidia/tu117/gr/sw_method_init.bin +firmware: nvidia/tu117/gr/sw_nonctx.bin +firmware: nvidia/tu117/nvdec/scrubber.bin +firmware: nvidia/tu117/sec2/desc.bin +firmware: nvidia/tu117/sec2/image.bin +firmware: nvidia/tu117/sec2/sig.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: plfxlc/lifi-x.bin +firmware: prism2_ru.fw +firmware: prism_ap_fw.bin +firmware: prism_sta_fw.bin +firmware: qat_4xxx.bin +firmware: qat_4xxx_mmp.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.59.1.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: regulatory.db +firmware: regulatory.db.p7s +firmware: renesas_usb_fw.mem +firmware: riptide.hex +firmware: rockchip/dptx.bin +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_bt/rtl8852au_config.bin +firmware: rtl_bt/rtl8852au_fw.bin +firmware: rtl_bt/rtl8852bu_config.bin +firmware: rtl_bt/rtl8852bu_fw.bin +firmware: rtl_bt/rtl8852cu_config.bin +firmware: rtl_bt/rtl8852cu_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/rtl8125b-2.fw +firmware: rtl_nic/rtl8153a-2.fw +firmware: rtl_nic/rtl8153a-3.fw +firmware: rtl_nic/rtl8153a-4.fw +firmware: rtl_nic/rtl8153b-2.fw +firmware: rtl_nic/rtl8153c-1.fw +firmware: rtl_nic/rtl8156a-2.fw +firmware: rtl_nic/rtl8156b-2.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/rtw8821c_fw.bin +firmware: rtw88/rtw8822b_fw.bin +firmware: rtw88/rtw8822c_fw.bin +firmware: rtw88/rtw8822c_wow_fw.bin +firmware: rtw89/rtw8852a_fw.bin +firmware: rtw89/rtw8852c_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-5.19.0.orig/debian.master/abi/ppc64el/generic +++ linux-5.19.0/debian.master/abi/ppc64el/generic @@ -0,0 +1,25222 @@ +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x6e9fabc7 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x886d6d5f crypto_cipher_setkey vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x9a5473fa crypto_cipher_encrypt_one vmlinux +CXL EXPORT_SYMBOL_GPL 0x04d93fe7 is_root_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x055c6ee3 cxl_mem_active_inc vmlinux +CXL EXPORT_SYMBOL_GPL 0x099e33c6 devm_cxl_setup_hdm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x16c5d159 cxl_probe_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x23a03d4a cxl_decoder_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x26e1c7b7 schedule_cxl_memdev_detach drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x29633733 clear_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x30c26b6f devm_cxl_enumerate_ports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x31fc64d2 cxl_bus_rescan drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x33e2aa93 cxl_mem_active_dec vmlinux +CXL EXPORT_SYMBOL_GPL 0x37dc64b0 cxl_mem_find_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x3c2e922a cxl_map_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x4c7e545c cxl_await_media_ready drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x5a3f7277 devm_cxl_add_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x632821c6 to_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6371f2df cxl_mbox_send_cmd drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x642eff8d is_cxl_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x649d1eef to_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x67cc19bf devm_cxl_add_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x690731a3 cxl_dev_state_create drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x6c010ea2 cxl_find_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x70371a07 cxl_decoder_add drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x74a4ea3f devm_cxl_enumerate_decoders drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x74b005c8 is_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x837b0751 devm_cxl_add_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x87227753 is_cxl_nvdimm drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x949988e6 cxl_enumerate_cmds drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9b5ebb0f cxl_bus_type drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0x9e9d3c39 cxl_decoder_add_locked drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xabc15863 cxl_hdm_decode_init drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xaea96a57 __cxl_driver_register drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb115b6fa to_cxl_nvdimm_bridge drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xb2075347 devm_cxl_add_memdev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xbcf6ce62 cxl_dev_state_identify drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc327f316 set_exclusive_cxl_commands drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xc9b8c49c cxl_find_dport_by_dev drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xca0e9331 is_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcbca4fd5 to_cxl_port drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcc25cfcc cxl_port_to_pci_bus drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcdbdde38 cxl_endpoint_autoremove drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcdf2fa72 cxl_map_device_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xce7f0e88 devm_cxl_add_dport drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcea390a1 devm_cxl_add_passthrough_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xcedeba80 find_cxl_root drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd4fba0f8 cxl_probe_component_regs drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xd6bb1e36 cxl_driver_unregister drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xdbbf1862 cxl_mem_create_range_info drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xe05f28f5 is_cxl_decoder drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xe3e6c679 cxl_switch_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xef1c951d cxl_root_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xefca105a devm_cxl_port_enumerate_dports drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfac76780 cxl_find_regblock drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xfdd7ffc4 cxl_endpoint_decoder_alloc drivers/cxl/core/cxl_core +CXL EXPORT_SYMBOL_GPL 0xff07c247 devm_cxl_register_pci_bus drivers/cxl/core/cxl_core +DMA_BUF EXPORT_SYMBOL_GPL 0x0338e4a9 dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x049abf4d dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x098bad15 dma_buf_dynamic_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x2da2c9b1 dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x35cb8c6b dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x523408a4 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x525309a7 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x5382a5cc dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x57598435 dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x5b2a9588 dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x829cbe69 dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xb057bbce dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xb19edda2 dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc54a000f dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xc554df0c dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xe3cd741c dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xfe84a3ba dma_buf_attach vmlinux +DRM_SSD130X EXPORT_SYMBOL_GPL 0x33cf1f58 ssd130x_variants drivers/gpu/drm/solomon/ssd130x +EXPORT_SYMBOL arch/powerpc/kvm/kvm 0x87528038 kvmppc_core_queue_syscall +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/blake2b_generic 0x32e24c8a blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x8261eccb ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x8e688192 ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x90cdc197 ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x9263b417 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x92668805 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x932b6ff7 vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x9f6efabd vli_sub +EXPORT_SYMBOL crypto/ecc 0xa76b31a2 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0xb10fc19e ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0xd6315f31 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0xd94c8eb5 ecc_point_is_zero +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 0x3dbd5d63 crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x528e6519 crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x54a77498 crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x6a03cf6c crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x955744c6 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0xa0344394 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/sha3_generic 0x4e7b757f crypto_sha3_update +EXPORT_SYMBOL crypto/sha3_generic 0x8e010673 crypto_sha3_final +EXPORT_SYMBOL crypto/sha3_generic 0xc1a5d79e crypto_sha3_init +EXPORT_SYMBOL crypto/sm2_generic 0x75f75d15 sm2_compute_z_digest +EXPORT_SYMBOL crypto/sm4 0x2b098da5 crypto_sm4_ck +EXPORT_SYMBOL crypto/sm4 0x7931a202 crypto_sm4_fk +EXPORT_SYMBOL crypto/sm4 0xf4fd3bd2 crypto_sm4_sbox +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/atm/suni 0x944b0940 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0x48e1124a bcma_core_irq +EXPORT_SYMBOL drivers/bcma/bcma 0x49d42f1f 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 0x048cf25f pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x109032fa pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x1fb95d51 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x4267110a pi_register_driver +EXPORT_SYMBOL drivers/block/paride/paride 0x4857e32e pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x50ac4835 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x626494ae pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x844f43ad pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xb21ba07d pi_unregister_driver +EXPORT_SYMBOL drivers/block/paride/paride 0xcbd4aa30 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xcfc3e604 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xd3a3ada5 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xd3cc8a70 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xd7a2435b pi_release +EXPORT_SYMBOL drivers/bluetooth/btbcm 0x5ba2e8b5 btbcm_patchram +EXPORT_SYMBOL drivers/bluetooth/btrsi 0xfce757c1 rsi_bt_ops +EXPORT_SYMBOL drivers/bus/mhi/host/mhi 0xef515eff mhi_sync_power_up +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03bc993e ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0705dd14 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0bfbf01e ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x12dd1e77 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1f65170f ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x230094ac ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x465e8ecf ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c2054d7 ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e73c0c0 ipmi_smi_watcher_register +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 0x96a6e5e8 ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa107d476 ipmi_add_smi +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 0xe98c507d ipmb_checksum +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 0x126b8556 st33zp24_remove +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x6e190809 st33zp24_pm_suspend +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0x8b649eb7 st33zp24_pm_resume +EXPORT_SYMBOL drivers/char/tpm/st33zp24/tpm_st33zp24 0xdb973a21 st33zp24_probe +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x1eef9047 xillybus_init_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0x549121ac xillybus_cleanup_chrdev +EXPORT_SYMBOL drivers/char/xillybus/xillybus_class 0xd85adae4 xillybus_find_inode +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x1cdc3f31 xillybus_endpoint_discovery +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x2405d77b xillybus_init_endpoint +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x25978d50 xillybus_isr +EXPORT_SYMBOL drivers/char/xillybus/xillybus_core 0x543bcf3f xillybus_endpoint_remove +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x032c86f8 atmel_i2c_enqueue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x7a27fccc atmel_i2c_send_receive +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x80a11b1d atmel_i2c_init_read_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0x9bc73012 atmel_i2c_probe +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc71ed50c atmel_i2c_init_genkey_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xc80f14e8 atmel_i2c_flush_queue +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xf283e995 atmel_i2c_init_random_cmd +EXPORT_SYMBOL drivers/crypto/atmel-i2c 0xfaab573f atmel_i2c_init_ecdh_cmd +EXPORT_SYMBOL drivers/firewire/firewire-core 0x003ef9d8 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0068159c fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x02cd83cc fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0bc6094c fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1d1ecdef fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x230f3cd2 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x39d89396 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3a771e39 fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3b08a19e fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3dc31293 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4afe4fca fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6dc50487 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7039aee0 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7615be01 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7cf85381 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x830f731c fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8ca408c3 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xadf32e31 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaedf84ce fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbc5e25b3 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc00e60e1 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1af0b12 fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd766582d fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdc3c94f2 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe16bb04f fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe3fde125 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe47ffeb0 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe80e5087 fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xec9d3279 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf1aa5965 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf6651253 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf9e7e20e fw_card_initialize +EXPORT_SYMBOL drivers/fpga/dfl 0x87299647 dfl_driver_unregister +EXPORT_SYMBOL drivers/fpga/dfl 0xd900900e __dfl_driver_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x01c4bba9 drm_dp_lttpr_max_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x04c4f5ef drm_dp_mst_reset_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x059da878 drm_dp_mst_atomic_enable_dsc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x06c49551 drm_dp_dsc_sink_line_buf_depth +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x087801b4 drm_dp_dual_mode_get_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x09d4d404 drm_dp_pcon_hdmi_link_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0c552ddf drm_dp_set_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0dec5cc3 drm_dp_mst_dump_topology +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0f2212ff drm_dp_pcon_is_frl_ready +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0f56e07f drm_dp_downstream_debug +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x0feb385e drm_hdmi_avi_infoframe_bars +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x10133672 drm_dp_read_downstream_info +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x140aaf1b drm_dp_update_payload_part1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1605d0ed drm_dp_lttpr_max_lane_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1709ddcf drm_dp_lttpr_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x17e67a6d drm_edp_backlight_disable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x18e51b82 drm_dp_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a5bf3ca drm_dsc_dp_rc_buffer_size +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1a857b89 drm_connector_attach_content_protection_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1b0a1fdc drm_dp_lttpr_voltage_swing_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x1d8ac75c drm_dp_mst_hpd_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x23961837 drm_dp_downstream_max_bpc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x26815dbc drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x28753500 drm_dp_pcon_pps_override_param +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2983949b drm_hdmi_infoframe_set_hdr_metadata +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2a3186ee drm_dp_remote_aux_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2a66343f drm_dp_mst_topology_mgr_destroy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2b1783ff drm_dp_pcon_frl_configure_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2b5891b9 drm_dp_send_real_edid_checksum +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2bdc33b4 drm_dp_cec_irq +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2d6ef4fd drm_dp_read_sink_count_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2d9f5606 drm_dp_mst_topology_state_funcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2dca49d9 drm_dp_dual_mode_detect +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x2fa94ef2 drm_dp_downstream_444_to_420_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x30368efb drm_dp_read_mst_cap +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x38574c15 drm_dp_stop_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x392a838b drm_dp_downstream_max_dotclock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x399cdf63 drm_dp_read_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a8063f3 drm_dp_dsc_sink_supported_input_bpcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3a85763f drm_scdc_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3aebba55 drm_dp_cec_unset_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x3e8978db drm_dp_downstream_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x40e95811 drm_dp_cec_unregister_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x41a3590d drm_dp_read_sink_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4383d4fd drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x441fcf79 drm_dp_pcon_frl_configure_1 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x45c91c0c drm_dp_pcon_hdmi_frl_link_error_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4603c416 drm_dp_pcon_dsc_bpp_incr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4b78fb52 drm_dp_mst_connector_late_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4d557df1 drm_scdc_get_scrambling_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4d79bb69 drm_dp_mst_add_affected_dsc_crtcs +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x4f15d6ae drm_lspcon_get_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5407ae9e drm_dp_get_dual_mode_type_name +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x542d1cc2 drm_dp_read_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x551c75d7 drm_dp_mst_topology_mgr_set_mst +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x560e6ba1 drm_dp_dpcd_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x582f248e drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x58d8fcaa drm_dsc_pps_payload_pack +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x59f27ed7 drm_dp_pcon_enc_is_dsc_1_2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5b15e5c1 drm_dp_get_vc_payload_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x5e23f866 drm_edp_backlight_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x62ad3149 drm_dp_mst_connector_early_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x63a477fb drm_dp_downstream_min_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x648d953b drm_dsc_dp_pps_header_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6615069e drm_dp_dsc_sink_max_slice_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x68d8dce7 drm_dp_downstream_is_tmds +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a3568cb drm_edp_backlight_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a45064b drm_dp_send_power_updown_phy +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6a4df8c5 drm_dp_128b132b_eq_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6aacee47 drm_dp_128b132b_link_training_failed +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b04117f drm_edp_backlight_set_level +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6b53e216 drm_dp_downstream_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6ea71a88 drm_dp_mst_topology_mgr_init +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x6eca27ea drm_dp_read_lttpr_phy_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7053fa72 drm_dp_get_pcon_max_frl_bw +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x73011db0 drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7532f7e7 drm_dp_mst_put_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x76ff6644 drm_dp_lttpr_pre_emphasis_level_3_supported +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x79929fe0 drm_dp_dual_mode_max_tmds_clock +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x7a1f20a8 drm_dp_dual_mode_set_tmds_output +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x803aba0a drm_dp_read_desc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x80eb70bd drm_hdmi_avi_infoframe_colorimetry +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x815d8d0a drm_dp_send_query_stream_enc_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x835e0745 drm_dp_mst_topology_mgr_resume +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x868ab3c6 drm_dp_cec_register_connector +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x86da1f2a drm_dp_dpcd_probe +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x897dc8d7 drm_dp_lttpr_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8a64f934 drm_dp_pcon_frl_prepare +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8ca2d9e4 drm_dp_calc_pbn_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d417a70 drm_dp_dual_mode_read +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x8d701329 drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x926eed49 drm_dp_aux_unregister +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x92b9835e drm_dp_128b132b_cds_interlane_align_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9571d842 drm_dp_vsc_sdp_log +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9a2e5111 drm_dp_mst_update_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9cbe5ccd drm_scdc_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0x9fd06de9 drm_dp_pcon_hdmi_link_active +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa0a0aa82 drm_dp_get_phy_test_pattern +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa1fefe6a drm_dp_psr_setup_time +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa3dcf192 drm_dp_128b132b_read_aux_rd_interval +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa415bd87 drm_dp_start_crc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa49424ab drm_dp_pcon_reset_frl_config +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa63b799e drm_scdc_set_high_tmds_clock_ratio +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa6649478 drm_dp_downstream_id +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa67a6201 drm_dp_mst_get_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xa898c9f2 drm_dp_mst_allocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xad10d5ea drm_dp_read_dpcd_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xad2fd8e5 drm_hdcp_update_content_protection +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xadbc0d8b drm_dp_pcon_frl_enable +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xaf267620 drm_dp_lttpr_count +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb609f1ba drm_scdc_set_scrambling +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xb97fd529 drm_dp_dpcd_read_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf517c04 drm_dp_read_lttpr_common_caps +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbf8419b7 drm_dp_update_payload_part2 +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xbfbd72db drm_dp_dpcd_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc020c0c1 drm_dp_pcon_dsc_max_slice_width +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc04f9b86 drm_dp_pcon_pps_default +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc0cb0785 drm_dp_mst_get_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc2528d07 drm_dp_check_act_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc50fa11e drm_dp_dual_mode_write +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc5c99a79 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc623717c drm_dp_aux_register +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc79ecffb drm_dp_downstream_is_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc8b6a8ae drm_dp_128b132b_lane_channel_eq_done +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xc9142881 drm_dp_dpcd_read_phy_link_status +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xccf54d5e drm_dp_get_adjust_tx_ffe_preset +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xce61c779 drm_dp_mst_topology_mgr_suspend +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd5a95eae drm_dp_128b132b_lane_symbol_locked +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd7cfe03b drm_lspcon_set_mode +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xd902bea4 drm_dp_cec_set_edid +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe147b27a drm_dp_mst_deallocate_vcpi +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe1a30338 drm_dp_atomic_find_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xe5360b84 drm_dp_pcon_dsc_max_slices +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xeb694ae7 drm_panel_dp_aux_backlight +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xedcf81ce drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf072e261 drm_dp_atomic_release_vcpi_slots +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf322d613 drm_dp_pcon_pps_override_buf +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf3ba9309 drm_dp_mst_get_port_malloc +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf64b865c drm_dp_mst_dsc_aux_for_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf68741fb drm_dp_subconnector_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf689ad25 drm_dp_downstream_420_passthrough +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf69f3063 drm_atomic_get_mst_topology_state +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf7662845 drm_dp_mst_atomic_check +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf78c5a78 drm_dp_mst_detect_port +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf7c46053 drm_dp_set_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xf9ec8c80 drm_dp_pcon_convert_rgb_to_ycbcr +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfb1a7a5a drm_dp_downstream_rgb_to_ycbcr_conversion +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfbddf80a drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfd0e9e1f drm_hdmi_avi_infoframe_content_type +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe12bcb9 drm_dsc_compute_rc_parameters +EXPORT_SYMBOL drivers/gpu/drm/display/drm_display_helper 0xfe7dc683 drm_dp_aux_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x000f3c69 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x039d96c5 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03c63897 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04750645 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x04d3709f drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x052f7251 drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05ac6109 drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05d4e640 drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x062f2792 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06c88b90 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06fcd364 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x070cfa78 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07d33e43 drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07d73dfc drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x088d5145 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ac33793 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d76f7b9 drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0dd46d23 drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0df74279 drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e822a52 drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1036284f drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10bffa41 drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10e62087 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x110b25c8 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x117e2efa drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11c576bc drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11ec0351 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13adbaaf drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14655b9b drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1585b60a drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x160f3bb3 drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1649f690 drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1683f97b drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17007533 drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a46c968 drm_of_crtc_port_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a89b050 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dd5d594 drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1de54ebd drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e701f64 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ec90fbd of_drm_find_panel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ef11014 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20f57f4f drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22ffa5cd drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2479cb54 drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x248757b2 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24e08a25 drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0x254868f2 drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25b067a2 drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25fe47fc drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26d5b626 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27cde0eb __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27ecf7ab drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x289ec00d drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x289fb06d drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28f909ab drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ce5881b drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d4275b7 drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dcfdba8 drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30b1f9fb drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3130953a drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31f5ea2d __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3263d18a drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3273b71c drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33c22fbe drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33df84fc drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x348277f7 drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34c821a9 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x357f1bec drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x358110c7 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35ce93c6 drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3680b777 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36ff85f1 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bbc94e drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38dcd1e7 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39eed244 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a4c2933 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c6e89e3 drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cab19d6 drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cffd691 drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d554860 drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f211584 drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4024dde5 drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0x402f4d7d drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x418308f6 drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41fcbe5c drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42144d9d drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x447ef712 drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44bbd765 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44fc2239 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x453ed322 drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47d4a268 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47e79b8e drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47efcbf3 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x489ea4a2 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x492d591f drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49d278f4 drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a7b9e3d drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a9a66ca drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b685ea1 __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ca19efd drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4df88f8b drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e48af27 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x506fd7de drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50eb3408 drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51e900f3 drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52471b92 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x53cc6573 drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5513c6dd drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55b0fe42 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5688ef56 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56e76ff1 drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57430300 drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57704361 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5830db31 drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58e02ad0 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x596ccb5f drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a097903 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a4e874e drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5bc9094d drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c1e5858 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c9ebf13 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5caf0fdf drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e24c202 drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e6341db drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f500076 drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f5dab70 drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fb34ff8 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fe79194 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60459a4b drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x604692c4 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60a531a2 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62b7fd3b drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x62cdcb2c drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64611f8c drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65844f17 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65b26c59 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65ebb0e7 drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x665fbcf1 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66ecc505 drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66ff014b drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68001935 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68754a90 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a5fd335 drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6bae1514 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c61f039 drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c86f248 drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d9db68d drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d9f66da drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dd3b401 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6df4af68 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e55e5d4 __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70a18333 drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71557d49 drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7157d1cd drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7188fffb drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7254cb34 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7273ec9e drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72d9a6a9 drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x739c3cb7 drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73e71f03 drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x745f4544 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74c35318 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x756c2702 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75e6fab1 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77ca6b16 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77cc135b drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77ec6a66 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x77f2f852 drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78d9fad5 drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79846d43 drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79933200 drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a0d5aa0 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a0de8aa drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aa5ff03 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7abbf9f1 drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b0c7b54 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b9d9214 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bb9c947 drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c0ec394 drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d4f0187 drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7db594c5 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e974925 drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7faa5ca4 drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x811775f9 drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x836a0701 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83ae2f85 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8457a939 drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x856ba81b drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86c0ac34 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86d2b7a1 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86e6227a drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871083a2 drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x874408cd drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88151221 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88e605f2 drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8953ee89 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ae68bc3 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b4d321d drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c10d71b drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c1494a8 drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c2f5706 drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c375c95 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d84f57d drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e030af0 devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e089eb2 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eb74c75 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f365fe6 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fc2b7c7 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x903c5b8c drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90d4aa7f drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9172cccd drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x921a0ece drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92aad26a drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92bb2582 drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93562e9e drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x949202bb drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x957dde4d drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95a3ef37 drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96b85f58 drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96de0c76 drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97820d00 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97ae905b drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x982c6bc6 drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9851995f drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9892bdc8 drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x993d1daa drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99cdf778 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9cabcc2b drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e0984a4 drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fbdb63b drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa05336fc drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0ade56f drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0e715e0 drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa225c645 of_drm_get_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa288bb9a drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e01278 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e0bd2f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa486e942 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa507fe1e drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa606f92b drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa66f98b6 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa700856b drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa80e3b09 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa85c1c62 drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8f7b67b drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa953438e drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97cb47b drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9fd771b drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa7ad898 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xab17a714 drm_of_find_possible_crtcs +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabf32600 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac013567 of_drm_find_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad26e0d3 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf5296a5 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf6198f6 drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0b05ff5 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0caded3 drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0dbe404 drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1418409 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1dfbdd2 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb22dfd68 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2390592 drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb264209f drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb287b852 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2b3706c drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2f056ba __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb32bab41 drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb463226e drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6f75a8e drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb75d53f0 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb77f7717 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7997434 drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb94b4651 drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba5979ea __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba5a13e7 drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb5971e5 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb9fb2ce drm_of_component_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc9a42ef drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbce7b167 drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd06c712 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd83ea8a drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd944d03 drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbec77424 drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf33698e drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfb4dd7d drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0a1c215 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1f18674 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc20a6002 drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5b91fd7 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5d96bf6 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc70d7365 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc78e367d drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc883a284 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9c75bca drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9d8f1c6 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9e5b7da drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca190085 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac2685d drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb3e5336 drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb7900b5 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc2217b3 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc5ff6ab drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc59759 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccec6a30 drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd8a3c13 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdeb1699 drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfbabdf8 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05fda43 drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0faa1d1 drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13c7fda drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1cd1017 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2c4b080 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd355d8a5 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd35849e9 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd386dbf8 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd52b826b drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd57787ad drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6ab1e03 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd88d7bbe drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd91db2ea drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc8701ec drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcca352f drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcdcc523 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xddb54b53 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe076fc43 drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1e3568b drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2850d50 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2e4f94f drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe34e290b drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe407f4c5 drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe48d6025 drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4e8c167 drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe607c64e drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ad7e8f __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7adf64e drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7be15a3 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7f9eb5b drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe840560e drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8d21d36 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919f0c6 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe939ab38 drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea455f9d drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb7f5afc drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeba598a9 drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec12af74 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec51a608 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec6535f1 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec68b688 drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec9ac85f drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecf1cde3 drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed97ed02 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee02e744 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeef4e1a9 drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef662122 drm_panel_of_backlight +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1dd3d58 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2268cfd drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b27392 drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b2f6fd drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59e6eb9 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf60dbe2e drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8e2f441 drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf98f01ac drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb33ad46 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb521e00 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb6322ac drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd28d577 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd43dabc drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd83e237 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfded409f drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe3e69ed drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe8c6ec0 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff391f87 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffcae280 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0x5a217b71 drm_gem_cma_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_cma_helper 0xff055ea7 drm_gem_cma_prime_import_sg_table_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x03546703 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0381e051 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x041e0a14 drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x094a21b0 drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0996160b drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b530d57 drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0bbd07b9 drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0cdb0fbf drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0ef366b4 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fd2d263 drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10d80756 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x110f44d0 drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11474a55 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x14aa8cc2 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16b79b1c drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x17560f27 __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a2e71f9 drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a4fd02c drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a70d157 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1b4a2a05 drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c4952f2 drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e0da0b8 drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x206f34ca drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x230d35ee drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2414f855 drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x254ec6f6 __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x259e935a drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x268e72d7 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x291fab73 drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29610c08 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c51b2f8 drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2c8caff5 drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d1e3265 drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d291647 drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e51fdf0 drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x300d1ac9 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x302e9cd7 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x307e22ec drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32260023 drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x326930a0 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x338d0060 devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33e96f4d drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34a4dba7 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34b641e9 drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34c52d30 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x379250e7 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x381290f3 __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x383bbcec drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x396036ed drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x39f3ac3e drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3befd8db drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c2c8175 drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3c2e8ed9 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e0c2081 __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e66cc60 drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ec103b9 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x408222f4 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x422aa47f __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4370d5f2 drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x441edb12 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4480083c drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x44de333b drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x452f173e drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45adb5fd drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x460e336c drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46a50bec drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46eacdc4 drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x46eed9e7 drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47fa6ab7 drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x485d372b drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x49468ec7 drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ae649ef drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4b6f3a97 drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c50e8ab drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4de90e28 __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e20b513 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4fe27453 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x500bff8f drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x504c1f0b drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x50f209e9 drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x517fb255 drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52bbf623 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x52bdd5e9 drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54648f1a drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x547b5140 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57824514 drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5837cbf1 drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5892a38d drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x59f883fc drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c4554a4 drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d8b1450 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5eaa440e drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5fd2f5f2 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x617518f8 __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x64f48550 drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x676b3e83 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x680972e5 drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c884c05 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6cdee838 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6fd816a9 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x704e290d drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70baa877 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x70e37805 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x727663f6 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72dbfe5f drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x73025123 drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74bdecc6 drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x750a67fe drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76429b71 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77e532ca drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x780956d9 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78314dfc drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a28ceaf drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b95fd13 devm_drm_of_get_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e8044e6 __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x803c58e9 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x825d8f57 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x836a3dea drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84ca121a drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8631d832 drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a8fcc65 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c544238 drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c5aa0ab drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ebad59a drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8fa7938b drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8feedd53 drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9052df62 drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x90d1fe04 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91751106 drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x937787c1 drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x954d00f8 drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9648507f drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x971592f8 __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a7b4cfe drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a997fce drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c5011f3 drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9edbfdfa drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0ad1959 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3370c91 drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3e20872 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa71fe03d drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa9bc100c drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf7b1e62 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb387c752 drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7e0ba57 __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb8c17101 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbb74664f drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbbfd0105 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc485ca5 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc80a704 drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc9fe17e drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1a09410 drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc369ff08 __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc435e9c8 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca2ef983 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xca328b31 drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce334846 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcfeed3d5 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd02e3a17 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd24e92dc drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd8b87907 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdaa99cea drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd0a2c9c drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdd933138 drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdfa3393f drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdfbed939 drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe08d38af drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe230b0ad drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe32ebe1e drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe38f3513 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe43e2c9c drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4a04c9c drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6bdcd25 drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7b8e0dd drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe96982c5 __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xec483699 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee7cc14e drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf0482436 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf10aed3a drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf172be50 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf244939c drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf30db916 drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4443f52 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4c82e9d drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4d47239 drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf98bab25 drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa83ee30 drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc3da732 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfc9a8a4b drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xff373152 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x06afe1d6 mipi_dbi_pipe_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x107bed7a mipi_dbi_buf_copy +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x26a64290 mipi_dbi_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x459ef1e7 mipi_dbi_poweron_conditional_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x45fd0e41 mipi_dbi_command_stackbuf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x470df187 mipi_dbi_spi_transfer +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x482583f0 mipi_dbi_hw_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x5d0df6b2 mipi_dbi_enable_flush +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6884bf7f mipi_dbi_spi_cmd_max_speed +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6acb60ea mipi_dbi_pipe_update +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0x6d47c22d mipi_dbi_command_read +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xaf8b5660 mipi_dbi_spi_init +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb49a8207 mipi_dbi_command_buf +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xb8e3b750 mipi_dbi_display_is_on +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xd748aac8 mipi_dbi_poweron_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xec71e655 mipi_dbi_dev_init_with_formats +EXPORT_SYMBOL drivers/gpu/drm/drm_mipi_dbi 0xfab629a3 mipi_dbi_dev_init +EXPORT_SYMBOL drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x3aedc092 drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x3d75b4f2 drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x454e157a drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x680ed3ef drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x6beec4dd drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x764cc222 drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x8a15b9e5 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xa0b5540f drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xbc72c83b drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xda2cb4ea drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x07e0fc8f drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x1d4ac3c8 drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x242cb2f7 drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x2ae90f81 drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x2c549f3b drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x0dc1e13e drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x2de0345c drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x2febb9d5 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4da0d400 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x54bec571 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x6dcea86c drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8ac5f130 drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8b49d258 drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8d20d1d6 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x963bc2b6 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x9c83da6d drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x9e091c66 drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa3a774c9 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xc8ae4e54 drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xd5083973 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xf13d90bf drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0778f0a3 drm_sched_increase_karma_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0823aa3e drm_sched_pick_best +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x0ac00e20 drm_sched_entity_destroy +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x1714c66f drm_sched_start +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x1aae6acb drm_sched_resubmit_jobs +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x200aba1a drm_sched_increase_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x23b9241b drm_sched_resubmit_jobs_ext +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x35589649 to_drm_sched_fence +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x3b721396 drm_sched_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x40d6d6aa drm_sched_resume_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x47452442 drm_sched_entity_push_job +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4c8f0da3 drm_sched_fault +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x4d8613d1 drm_sched_entity_modify_sched +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6134be0d drm_sched_entity_set_priority +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6223e94c drm_sched_job_arm +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x6f179e9c drm_sched_entity_flush +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x7e885d1b drm_sched_entity_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0x9482b216 drm_sched_stop +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc02103fb drm_sched_job_init +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xc79fd6ae drm_sched_reset_karma +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xce73578f drm_sched_job_cleanup +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xd9333a9c drm_sched_job_add_implicit_dependencies +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xde412e21 drm_sched_fini +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xe26af36a drm_sched_suspend_timeout +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xebf65070 drm_sched_job_add_dependency +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xec6c5af6 drm_sched_dependency_optimized +EXPORT_SYMBOL drivers/gpu/drm/scheduler/gpu-sched 0xfccc6559 drm_sched_entity_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0043efb3 ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x006c7ba0 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0174671e ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x026a942d ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x035acf25 ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0e54cda3 ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13b19b0c ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x141ed191 ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1e91976d ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2006e910 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2609dcdc ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x28e34245 ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2bbdae34 ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c29a433 ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f128a86 ttm_agp_is_bound +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31165b27 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x346d9a57 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x399d60ab ttm_bo_vm_access +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e04987f ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52701b7d ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x538f4721 ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55a26b31 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5b15d453 ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5b5e743a ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f263760 ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f5d3c6c ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5fbd69e0 ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60decb1a ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x62b790fc ttm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x63d63908 ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x686a9598 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a99b4d9 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6ca11073 ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d38cfe2 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a15fc95 ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84a05977 ttm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x936b8e34 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x939213b1 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95b87042 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9719a28f ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9841c9a3 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e898aa2 ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e97bca7 ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa25bc6d0 ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7f665c1 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa95af7fc ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa8b3f2c ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xad1a9d57 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0b767d9 ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0e5bff2 ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb368512f ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbcb236ae ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd2dcb34 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd155a525 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd274b002 ttm_agp_destroy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd46de77a ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd5672ff8 ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7dabcc2 ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3135f7e ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe985e781 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea576780 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeebeade2 ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeef3c357 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5be3eee ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf60bd19b ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa6210a4 ttm_bo_mem_space +EXPORT_SYMBOL drivers/hid/hid 0xed8540f9 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 0x56ae5ec9 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xa1b57091 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xbae98ad3 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x374c96ad i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7380ac09 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x90d2a7be amd756_smbus +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x10a4c688 qcom_adc5_hw_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x1fcd0103 qcom_adc_tm5_gen2_temp_res_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x39885d6b qcom_adc_tm5_temp_volt_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x401dc869 qcom_vadc_scale +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x47f699dd qcom_adc5_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x4e64cdb9 qcom_adc5_hw_settle_time_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x53546ecd qcom_adc5_avg_samples_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0x70e6eca1 qcom_vadc_decimation_from_dt +EXPORT_SYMBOL drivers/iio/adc/qcom-vadc-common 0xc61e7a34 qcom_adc5_prescaling_from_dt +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x713206e2 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/buffer/industrialio-triggered-buffer 0x76a1ca3a iio_triggered_buffer_setup_ext +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0xa555b412 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/buffer/kfifo_buf 0xd78468dc iio_kfifo_free +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x0e8cfea7 mpu3050_dev_pm_ops +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x672b99c9 mpu3050_common_probe +EXPORT_SYMBOL drivers/iio/gyro/mpu3050 0x7010814c mpu3050_common_remove +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x7f51cc3f hts221_probe +EXPORT_SYMBOL drivers/iio/humidity/hts221 0x9862a52a hts221_pm_ops +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0x3074b077 bmi160_regmap_config +EXPORT_SYMBOL drivers/iio/imu/bmi160/bmi160_core 0xca19cfae bmi160_enable_irq +EXPORT_SYMBOL drivers/iio/imu/fxos8700_core 0x6fdc7a01 fxos8700_regmap_config +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x6c1a8386 st_lsm6dsx_pm_ops +EXPORT_SYMBOL drivers/iio/imu/st_lsm6dsx/st_lsm6dsx 0x8e86f634 st_lsm6dsx_probe +EXPORT_SYMBOL drivers/iio/industrialio 0x13bf6185 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x1c640d57 iio_trigger_validate_own_device +EXPORT_SYMBOL drivers/iio/industrialio 0x2420e8ca iio_trigger_using_own +EXPORT_SYMBOL drivers/iio/industrialio 0x29a618da iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x29cea8ef iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x2bf9fcba iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x2cd7c72d iio_read_mount_matrix +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x31842fe4 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x3c4a6410 iio_trigger_set_immutable +EXPORT_SYMBOL drivers/iio/industrialio 0x528af7eb iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x6c3f16c9 iio_device_get_clock +EXPORT_SYMBOL drivers/iio/industrialio 0x7dc3973d __iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x83b47a7e iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x85134485 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x8cba866c iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x9cec7a97 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xb7c538e7 iio_get_time_res +EXPORT_SYMBOL drivers/iio/industrialio 0xbb38a805 __iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xc2b6975f iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xd01a820e iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xd47931b7 iio_get_time_ns +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xf0c2000f iio_device_set_clock +EXPORT_SYMBOL drivers/iio/industrialio 0xf187228d iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio-configfs 0x30eaf9e9 iio_configfs_subsys +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x17835611 iio_sw_device_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x6e2cc05a iio_unregister_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x7d30a749 iio_register_sw_device_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-device 0x8b9914f2 iio_sw_device_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0x0c114ae1 iio_register_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xafe01a9d iio_sw_trigger_destroy +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xc5125992 iio_sw_trigger_create +EXPORT_SYMBOL drivers/iio/industrialio-sw-trigger 0xd6e76719 iio_unregister_sw_trigger_type +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0x88c35fb6 iio_triggered_event_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-event 0xec31a8aa iio_triggered_event_setup +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x29277826 bmp280_common_probe +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x369d7368 bmp280_dev_pm_ops +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0x51ba2786 bmp280_regmap_config +EXPORT_SYMBOL drivers/iio/pressure/bmp280 0xbb3cfae4 bmp180_regmap_config +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x35a9f416 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x36329ae0 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x53d3a21b ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x73847b8f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x741c6ae5 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x766e5626 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7eaf1894 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa85df895 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb7818a6b ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc1d6d94a ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcd8f6ef3 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xecd4a779 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xece1ce54 ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xef679591 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xffacae6c ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00cd25ea ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03d03ef2 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04521487 ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06ce7e3d rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0888b40c ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0921b6a6 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a28bdef rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a4acb00 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ae6718b rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c179eca __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d54de64 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0de6ea67 __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ea90186 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x100f4b6e rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10a6fcde ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14fc8659 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1621fad8 ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x164eb16d rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x184beb22 ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b9f49da rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ed48ccc rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2344e714 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x258f01d1 rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x265b14d9 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x279d853d ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27bf0c9d rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29e9a6ab ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b6ed659 rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d7889fa rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d98389c rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2efb7b43 rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30bde2a6 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30cf64ae rdma_restrack_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3127ccbe ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x355d6fe7 ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35939ef1 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37221b76 ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3916e623 ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39401ba2 rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3cc15e4a ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f264c2b ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4047bb98 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x407d4d79 rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4488818f ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4940e270 ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49982cb8 ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a12c831 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c805860 roce_gid_type_mask_support +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 0x4fbc9f53 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x512b8b9a rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51c25627 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x529071ed ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x566fae9a ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56904e62 ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56b562bf ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5743539f rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58df5b94 ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bab88fb ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e3346ee ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5ee59a40 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5f318b6b rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61150881 ib_destroy_cq_user +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 0x6435de39 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64b4a6c4 ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6746e3d8 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67866628 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6855dbd4 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b1f803a ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d3c36e9 ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e38c561 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70c124f3 ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7147e945 ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x715bbf89 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x723429cc ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x734fb932 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73a53438 rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73d5bfe1 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7443941c ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74f2da1b ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75e8d1e4 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x770a273a ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x778fe29a ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77c8c0da ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ffdcb0 ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a77892c ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b20b5be ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7dfe8e67 rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7edec3ae rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ee7de88 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f62003d ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f999928 rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8121914b rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81d0f45e rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81e658d3 ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84760c1f ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86cef180 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x893afc3b ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89abb586 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x89c8c2a3 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b3a4791 ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e164220 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7528da __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90894308 ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e807c7 ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90ec7793 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90eff34d ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90f2e1f1 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91504123 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91c34064 rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x941cbf6e ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9496738a ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9502e1a5 ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x975ff2b9 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98729912 rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a30792e rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c317b83 ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c8aebee ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e8998a4 ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e96f789 ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa03b4b58 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2d6e80f ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4115cb4 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5f2aabc rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5fc21fb rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab1883bb ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad59b6f6 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad5f4a73 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae47a01a rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaede232e rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf60b75a rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb182c114 ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36e4148 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb3d49475 rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb486fd14 rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb543cd7d ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb62a20c4 ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb66ca4e2 rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb87f070d ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb91010bb ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbaf62659 rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb07f10f ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc5b5a9f ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbca8ffa3 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd693056 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe4b499b ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1d68d31 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc203fc40 rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc27eca48 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc30d5760 ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6fc00ac ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8b61927 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca9a1b19 rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xccb11964 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4ca271 rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfbc053b ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0699947 ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1d3550d rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd30a192b ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3691a21 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd731d7b1 ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd99d8517 rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb239e26 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdcb86a69 rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd745de8 ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddc246e8 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdee53d54 ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe15aaa52 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1b6d6f2 rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1e5b36e rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2fc48ce rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe45058db ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4888a90 ib_get_device_fw_str +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 0xe61d1557 ib_init_ah_attr_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7781d07 rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7b52e5f mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7bca19e rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7bdf9ab ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9e799fc ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea09c70a ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea35546e ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea4e435f ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebc2b527 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec0da268 ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee419b80 ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeecb4aad rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefbf6311 ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0c12249 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf16e6e31 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2199003 ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4e6bb8b ib_register_device +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 0xf74ccb9a rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf84e67d6 ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa35b122 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa35ef62 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa80897c ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb94c479 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfea4dfd9 ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff3dc8f4 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffb57e51 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x10b19a57 uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1126411d ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1b54bd5d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x22bc94e0 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2b51dc7d uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2f6d21e5 ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4765744f ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x54b2c1f0 ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x566cdb3a ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x65118dae flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x660ad1c7 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x684176df ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x72f1964c uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x797b5ed7 ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8971f25b ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8a1583c5 uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8a4ae141 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8f5fd1c3 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x93ba2a1e _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa03503e6 ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xaada1892 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb0530de3 ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb52bfe70 ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbde5c050 ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbe04ca2e ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcb2186be ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd69f1847 uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xd935b7f6 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xda8e8904 _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdc94a91e ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe0682d1b uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe8b7d53e ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe8f59bb2 uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xebc460b4 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xee4b104d ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf0176aa9 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xf5af5c86 uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfa215d85 ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xfa4da47a ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0719bea0 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x078cef0f iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x33e89e4c iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4d7a508f iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x698cd6b6 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6e93a11a iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7353fdff iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xde3ea92f iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0b5302cb rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0d2a7337 rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ed6f63d rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0ff42718 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x104b6984 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x16a18bfd rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1bf682bb rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1c6c6c02 rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d92ec1f rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e2dfbb7 rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x38a90459 rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3f0a8d9a rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4ed4bfb9 rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50a273f8 rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50a289db rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ed3faf1 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64bfe540 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6521c0c4 rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x66b65623 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a1f757e rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x797502e7 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7bf7c30b rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7ff0b03a rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x804e9f9a rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87b72ab3 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9f9016a3 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbeea8738 rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc63e09eb rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcd170872 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdff82570 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe0fbcc77 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe9da1534 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf0209011 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf4027faa __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x08e6b174 rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x4e0149fa rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x74e13589 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x77c8a464 rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x9d9e3880 rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x9f91d4e1 rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xc0ef700d rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x1f82110d rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x242a8646 rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x2fde621b rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x3769faff rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5b01e41d sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x710a8964 rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x887302f3 rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x0c41382b rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x0fa208ca rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x789bf938 rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xb387f856 rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xe75cc343 rtrs_srv_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xec10d108 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/input/gameport/gameport 0x04a40ded gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5085abf6 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5d46de51 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x606f6a69 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x8dd1990a __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdf2df7d3 gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe88a202b gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf5e18a2b gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xfab1debd __gameport_register_port +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x307b3bbd iforce_process_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x653de226 iforce_send_packet +EXPORT_SYMBOL drivers/input/joystick/iforce/iforce 0x899bc27b iforce_init_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xfc20c5bb matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2da6dc91 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x759ead45 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xc799364b ad714x_enable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x4ed3e3f7 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 0x6fe462a8 rmi_unregister_transport_device +EXPORT_SYMBOL drivers/input/sparse-keymap 0x0b8538e2 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1deb6e33 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x3501d076 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x64f3f396 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x75f2185e sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0336665b ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x9a5cc49e ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x141d0b50 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x78aa121d capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x86e861aa attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x990a2f23 detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb057a756 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 0x9a0b5e62 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb04c20a4 mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb154f2d9 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xfc94dab9 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6e79c5e8 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xc229824e mISDNisar_init +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x002525f7 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x03a68066 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0ed490a6 recv_Echannel +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 0x3a43ba73 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x401411c2 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4fffe77d dchannel_senddata +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 0x5a0aa993 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6047df40 mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6c2a45d9 mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e28592f recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x73de65b9 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7444faa3 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x762dea78 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c1906d4 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x85880305 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x86665d04 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8f793d56 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x95086b69 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x970b410e bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c928457 mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb8119bee queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb9ea35be get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc894e2a2 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd078bfb5 mISDN_register_Bprotocol +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 0xd546f40b create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd65aa3ee mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +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 0x09e3395e 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 0xced72aae ti_lmu_common_set_brightness +EXPORT_SYMBOL drivers/leds/leds-ti-lmu-common 0xe20b68ee ti_lmu_common_get_brt_res +EXPORT_SYMBOL drivers/md/dm-log 0x0f601757 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0x3421280b dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0x38446313 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0xa3371788 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x01ba721c dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x20d63e00 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x69979792 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x890bf02a dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xbcad6488 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf9b7d9fa dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0x14463204 raid5_set_cache_size +EXPORT_SYMBOL drivers/md/raid456 0xd29a5f7d r5c_journal_mode_set +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x54b669e0 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x61458523 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6b9a4aec flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x84d83e60 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb3d7f08e flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb727f5ba flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xc3efc071 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xcc7f9f4c flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xd9fca551 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xe6131eb0 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xee729dc1 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf5c96358 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xfb20a8ed flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/cx2341x 0x06695500 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0x15ac1bd0 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x28240e61 cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3cb3f550 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x55aa7c5f cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6a657b05 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x7b4dd2cb cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xbd8466fb cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdba9fe10 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdbc5583a cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0xe1fe1432 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x2772d3f7 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0x693e74ba ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/common/ttpci-eeprom 0xb6db03a6 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/common/tveeprom 0x0dbf0296 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x9408059c tveeprom_read +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x065246b8 frame_vector_create +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1b700d37 put_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x1d5f9555 frame_vector_destroy +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x6cce0d35 vb2_verify_memory_type +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0x87457f57 vb2_buffer_in_use +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc2d9e090 get_vaddr_frames +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xc5e5573a frame_vector_to_pages +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-common 0xdffb744b frame_vector_to_pfns +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x128e6ea8 vb2_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x137f4a7c vb2_dvb_get_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x3c1b0f7f vb2_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x494c8bac vb2_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0x92c1afdb vb2_dvb_find_frontend +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-dvb 0xb803adad vb2_dvb_register_bus +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xa21fa765 vb2_create_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-memops 0xccd197c7 vb2_destroy_framevec +EXPORT_SYMBOL drivers/media/common/videobuf2/videobuf2-v4l2 0x4673bacb vb2_querybuf +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x00c270b4 dvb_unregister_device +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 0x08f83fec dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0ac96adb dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0b863f03 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x13b72567 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x15052806 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1533ccc4 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x231c5656 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x29901fbb dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x29d58443 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3a58e14b dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3b93d71a dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x418faa22 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x432de8f1 dvb_device_get +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4502c3be dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5830a49a dvb_ringbuffer_flush_spinlock_wakeup +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 0x6ab6aac6 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6ef5628b dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7214ae36 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7c358dcb dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x82878c35 dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8b856f8f dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8fd6e094 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9157548b dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9bb01b9b dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9dffb35d dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9e787c04 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9ed4c771 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb5a3524f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xba4beba0 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbc05d026 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcdf4a5e1 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xce748c8d dvb_ringbuffer_write_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb96b11d dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe504cf3e dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe71a98b8 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xed056cde dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf47b9cf7 dvb_remove_device +EXPORT_SYMBOL drivers/media/dvb-frontends/ascot2e 0x714b1b86 ascot2e_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0xc90ab2c5 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x026f8126 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0bdbc278 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0fcdfa93 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3ddd0467 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x8c9174ec au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x932eebd7 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa4b65fc7 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfd8eed5d au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xff1f2f44 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xa470fd34 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xca8e8683 bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xff0e7cd0 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x6d983034 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x5b00eb7f cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x6c7dc8f6 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x859462eb cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0xb7d3218f cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24120 0x7150aa8a cx24120_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x1fea57cc cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x9bcca7e4 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x73861025 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0x5fd3ba36 cxd2841er_attach_t_c +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2841er 0xdf62917d cxd2841er_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2880/cxd2880 0xfd92db5f cxd2880_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x02c3b653 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x4e2fd9f7 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x74a7bdf6 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x7c13e347 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xfbb0bedd dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x01ce6422 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x038a89b8 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1bbc75f5 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3e39c87d dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x78b5888d dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x944ae4b4 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x96a0a673 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9f568d04 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9ff8d242 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa8bb5403 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbc7a959b dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcaf44a1c dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe47e36bb dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xeed0edb1 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xef66092b dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xb9b60c69 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7816be10 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9cc5bc04 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xb4817c39 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xc34ba8b1 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xdd2aaab0 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xff71cf5f dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x09052d27 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x43464e67 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x9887db34 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x9ddcc780 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa00b91c8 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa26f948e dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x5d1e093f dib9000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x67cf3644 dib9000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x7661e78d dib9000_set_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x8090c57d dib9000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x882a52c6 dib9000_get_component_bus_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x89227ef8 dib9000_fw_set_component_bus_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0x99b009c8 dib9000_fw_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xcf2d8b1d dib9000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xdedf88ec dib9000_firmware_post_pll_init +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xe2b37726 dib9000_fw_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xe77dbba3 dib9000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xfb825df9 dib9000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib9000 0xff10a1a1 dib9000_get_tuner_interface +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x1c6b5136 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2a614d40 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x54a63134 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x79bec4d8 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xf6235944 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/drx39xyj/drx39xyj 0x6c35717e drx39xxj_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xb97e521b drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x85be4c1b drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x487cf039 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xcab2704b dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x069d164d dvb_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0x664a6700 dvb_dummy_fe_ofdm_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb_dummy_fe 0xcd844368 dvb_dummy_fe_qpsk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x1d2ce45a ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x1c2e1fc9 helene_attach_s +EXPORT_SYMBOL drivers/media/dvb-frontends/helene 0x32c4fd97 helene_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/horus3a 0xf4c8ecce horus3a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x02918742 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x67819420 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0xa168b20f isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xc4082a27 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x8624aed6 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x8b791446 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x20864c5b lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x9496efa2 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3306a 0xa1e659b9 lgdt3306a_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xa0ff2fd8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gl5 0xb5a6f7aa lgs8gl5_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0xfc4cca50 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh25 0xe9319deb lnbh25_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbh29 0x3c12a2f2 lnbh29_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xbe720f6c lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xccc5d015 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x1267324a lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x3c2998cb m88ds3103_get_agc_pwm +EXPORT_SYMBOL drivers/media/dvb-frontends/m88ds3103 0x5586c5c7 m88ds3103_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x28c46394 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0xd12931f8 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x1ac621f0 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x0d5ee725 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x2370bd8f mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x56885c86 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xc76ade7c nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xa0049450 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x0bbefc3e or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x7c6271f9 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x94838c82 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x296a87b0 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xab151ae2 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1432 0x1a81c01d s5h1432_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x97bb1650 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x6cd56de4 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x95b11a1d sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xac6b9619 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0x79d43013 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x3f1a170e stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x8bcc277d stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xb14fe0ca stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x35da4502 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x3b559e1b stv0367ddb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x4821cd7e stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x9c9d783c stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x6c88ed05 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x9ba6ed16 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x5b8ff66c stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x1169c816 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0x5af1b5be tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x2fee5617 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x7587d7c1 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x11b2e1f6 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xe5d137ac tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x69addf57 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x31241919 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xe07fa401 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0xf6f5caf4 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x5fffcf6c tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x7764d637 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0xdfeec576 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x3886c5cd ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x521ddf92 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0x70afdcbf zd1301_demod_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/zd1301_demod 0xa5e92f1e zd1301_demod_get_dvb_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x50585b6e zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x6a5a6e09 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x233a8157 zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x167a1273 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x21fb2ef4 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x23ebe49d flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8b67067c flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x91d6e297 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdcc79226 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xe3e4519e flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x154140ec bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x323f7123 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x4e4e4bab bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x8145d529 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 0x190d4c4b bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x45089cc2 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x7b407fcc 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/dst 0x3e773b2c dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x43a983fd dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x7ff6aa05 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x8568f3e6 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x911dbe30 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9e2e095f dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xa9989406 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xb865c76f dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc60264d6 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd793c829 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x8c95e4e8 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x0aa4487f cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x20ff6b09 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x97ae9167 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xd6d9e339 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xfce5d0ea cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xbd2ab821 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 0x2475db89 cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x39a6f607 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x426ab014 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x44b517f5 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x87ceb222 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xa2e28e7b cx25821_riscmem_alloc +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xb74984b6 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xd7a04eec cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe9050411 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xa78e6a91 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xee966e7e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x6a1fda92 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x6dafb984 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x89b90cc2 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x8b746500 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x34c14d38 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8ad40acf cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x8d7bb5f1 cx8802_start_dma +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x9496d43c cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xa6ff98e4 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xad9ddc78 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe6cc44ad cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x02e4799b cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x07e9a363 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1168993e cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x189bbe5c cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x28147f4d cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x44b84167 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4b8682bf cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x570be4cd cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5a8584f5 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x5c498e94 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 0x706c672c cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d88137a cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8d895a99 cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x957942ec cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa774a1b8 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa79e1a80 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc027f236 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd7b402f6 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd9913297 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xda71f67c cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xed2b27c3 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/ddbridge/ddbridge-dummy-fe 0x615c98fb ddbridge_dummy_fe_qam_attach +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0f4ff25c ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0f798d21 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1dbedbe3 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x54645806 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x61255655 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6a3930d5 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x70e7f36a ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x7cc0696b ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x8bc3a1a5 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x945c83cc ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xcd42e0f9 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd44441fc ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd53db707 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdb07658e ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe7f83059 ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf3144290 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xfe19a46e ivtv_release_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 0x37edee30 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3a0aec0b saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4e418c3a saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x730c4be3 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xaf585c78 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb6520472 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc36c518f saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc4c7c7d0 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc789089d saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xc8323df4 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xce28d272 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xdbc03d9d saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe5984fd9 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/radio/tea575x 0x15153b96 snd_tea575x_g_tuner +EXPORT_SYMBOL drivers/media/radio/tea575x 0x285a7710 snd_tea575x_set_freq +EXPORT_SYMBOL drivers/media/radio/tea575x 0x4073ddfb snd_tea575x_s_hw_freq_seek +EXPORT_SYMBOL drivers/media/radio/tea575x 0x5515c3a4 snd_tea575x_enum_freq_bands +EXPORT_SYMBOL drivers/media/radio/tea575x 0x63357c48 snd_tea575x_exit +EXPORT_SYMBOL drivers/media/radio/tea575x 0x7f630528 snd_tea575x_init +EXPORT_SYMBOL drivers/media/radio/tea575x 0xc7ffaf3d snd_tea575x_hw_init +EXPORT_SYMBOL drivers/media/rc/rc-core 0x01098f88 ir_raw_encode_scancode +EXPORT_SYMBOL drivers/media/rc/rc-core 0x18b9fe40 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0x2fe55cf5 ir_raw_gen_pd +EXPORT_SYMBOL drivers/media/rc/rc-core 0x7a02ee87 ir_raw_gen_pl +EXPORT_SYMBOL drivers/media/rc/rc-core 0xaf3163ec ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xb5516017 ir_raw_encode_carrier +EXPORT_SYMBOL drivers/media/rc/rc-core 0xce3696f3 ir_raw_gen_manchester +EXPORT_SYMBOL drivers/media/tuners/fc0011 0xdcf72788 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x2a1d925b fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x1ce610c2 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x2941ff8b fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xf477f8a9 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/max2165 0x4c62bdca max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xa97f47eb mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xaa1ad8ff mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x25d5b956 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x1aaa1af0 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x4e85e7cf mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x3700df80 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xb686dbad 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/xc2028 0xb6699544 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0xd758d107 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xb1fd67a4 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x0c5883c3 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x21c7c961 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x048f0d17 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x146b2082 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x26b8d558 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x6f76cc5d dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x71323ff2 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x73270392 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x7c9ed74d dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc6bb8c1e dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd36f94cb dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x2e1327e8 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3c5c97f5 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4a9a3d8c usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4be96a1b dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x87182285 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8b6f5395 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xf3155e01 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x341530cb rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x8d847e5d 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 0x22ae4dc2 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3e950092 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x93822ecb rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xaf865a5f dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc3602943 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc38269a2 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xc812e4e2 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd0fc7291 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xf43b07d2 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xfcf75946 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x33548133 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-mc-common 0x48843a43 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x4f67d88e em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xf22d5705 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x0d312e35 go7007_read_addr +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x10ed9d89 go7007_update_board +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x5d111c36 go7007_boot_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x67bdfb17 go7007_parse_video_stream +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x73bdaa6e go7007_register_encoder +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x8c22a88f go7007_alloc +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0x8d116938 go7007_read_interrupt +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xe9296fac go7007_snd_init +EXPORT_SYMBOL drivers/media/usb/go7007/go7007 0xf525a927 go7007_snd_remove +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x0704954a gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x26fbd0e1 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x51781758 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x587cf9dc gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7bf0260d gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x935e9748 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x98884ebb gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xe08e67c0 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x4466ba38 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x9df50eb3 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xf4069cec tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x4f11aa42 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x64d6ab88 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x27094002 v4l2_async_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x774642a6 v4l2_async_subdev_nf_register +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x88601531 v4l2_async_nf_init +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0x9a354488 v4l2_async_nf_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xcc5c84f3 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-async 0xd1fb8142 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x5352d022 v4l2_m2m_resume +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x8a689bba v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xa8efffc6 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xc5633051 v4l2_m2m_buf_done_and_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf626dd03 v4l2_m2m_suspend +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xfbca0999 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x069b6dcc video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x082737e8 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1c9cb456 __v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1d49945b v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x23bf1785 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x26cde010 v4l2_query_ext_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2865411c v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28b12cc9 v4l2_format_info +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28c17a17 v4l2_subdev_call_wrappers +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 0x34b0b7be v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x38792abc v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ce0f791 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f06195b v4l2_ctrl_new_fwnode_properties +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3fa5e8d8 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x40c4d971 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5080e91c v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x566f952a v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x58b04b18 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5b4bf67e v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5edae2a3 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x654d80a7 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x657fc34a v4l2_ctrl_request_complete +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x698a2df3 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6bb28963 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6ef7b4d4 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6f1734dd v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6fdd2f0c video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x763d7ed2 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x79c058ad __v4l2_ctrl_s_ctrl_string +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x89e3897d v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8d25f3df v4l2_ctrl_new_std_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x98d6d0cc video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x99718e00 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9a8af23b __v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa0291110 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa09ada59 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa25f5277 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaa5d4ddf v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb3646ee2 __v4l2_ctrl_s_ctrl_compound +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb50fac3d v4l2_ctrl_find +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 0xbf1d4ebd video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc401f265 __v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcaec5615 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 0xd2138c9d v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd62c878c video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd65cec7d v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdc2e452b v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xde6c4c73 v4l2_ctrl_request_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe586f0eb v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6ef92ad v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xed65dbac v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3346323 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf50fecbc v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf729147a __v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfc81e87e v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xffddec59 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/memstick/core/memstick 0x0d34b3e3 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x13309ad9 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2c006a1f memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2e474c7f memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x36a44a58 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4a4e5778 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5f9744cf memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x880ec805 memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9f99614c memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa50309b4 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xae50437c memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xaf7266d1 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc8b37ed memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe545b653 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0263413c mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0b0690bb mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0dfbefdb mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1245a014 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1dd0fb25 mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2326d8a7 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23822382 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x35ff3c42 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47a6f9b8 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4cc6f39b mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e03873d mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5fc005a6 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610b257e mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6bca4267 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x71cc642a mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74a0134a mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x774ace22 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x83899735 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x981efe92 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa1fa6704 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3c9061d mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac6204b2 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xad07b97d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb1b5d4b1 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb8720b21 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb90ae3c5 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbf432437 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd0d3f42f mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd41b5e3b mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd5d68536 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe0682b94 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe50d795f mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6c1e126 mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x014c5bd1 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26cab52e mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3bc497bb mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x416f5fb8 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x41931d86 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x48094ecc mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d624a67 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5db7fac0 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f887397 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7015f611 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x725576b4 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79031bb0 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8806119a mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x94cd0810 mptscsih_host_attr_groups +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x99b41378 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9c5d8505 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xacf08517 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd28b4cc4 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xde0e706a mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdf0f517e mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe1c31ec2 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe2fb3365 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe67b0787 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed3c6e46 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef1f9002 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef5a498a mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf5683823 mptscsih_event_process +EXPORT_SYMBOL drivers/mfd/axp20x 0x0085947b axp20x_match_device +EXPORT_SYMBOL drivers/mfd/axp20x 0x123c7e95 axp20x_device_probe +EXPORT_SYMBOL drivers/mfd/axp20x 0x5eccc632 axp20x_device_remove +EXPORT_SYMBOL drivers/mfd/dln2 0x5bf2e6e4 dln2_unregister_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0xb48da1ea dln2_register_event_cb +EXPORT_SYMBOL drivers/mfd/dln2 0xd556eb29 dln2_transfer +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0ab2e0db pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe4c3174d pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x01b1ae62 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x28c007a7 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3a66c922 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x5292fa17 mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x749b91ff mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x80c7aa92 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb0060577 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xc909fdfc mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xcf5d8dcf mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xdc1a3d21 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfbb9b7fa mc13xxx_irq_status +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 0x197a0587 wm8958_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x2b40be1e wm8994_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x424ac463 wm8994_base_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0x7b6dcc7f wm8994_irq_init +EXPORT_SYMBOL drivers/mfd/wm8994 0x861807aa wm1811_regmap_config +EXPORT_SYMBOL drivers/mfd/wm8994 0xc0233acf wm8994_irq_exit +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x4176b1a7 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x633a6d4c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x5bafa76e altera_init +EXPORT_SYMBOL drivers/misc/c2port/core 0x58c743ca c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0x7e06eb2d c2port_device_register +EXPORT_SYMBOL drivers/misc/tifm_core 0x0b7472ff tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x0ffb277f tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x34ac8fb1 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x5a2928cd tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x8d2eae7d tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x9f30d441 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xb0826e65 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xba7e8bb3 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc283efb6 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xc87fd19b tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xda768b2b tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xe3d07858 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0xee4cae51 tifm_free_device +EXPORT_SYMBOL drivers/mmc/host/cqhci 0x321582ad cqhci_pltfm_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xab20a9db cqhci_init +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xd2b3547d cqhci_resume +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xd5b9171a cqhci_deactivate +EXPORT_SYMBOL drivers/mmc/host/cqhci 0xec1e46d0 cqhci_irq +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xd83397f6 mmc_spi_get_pdata +EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xe6257cc1 mmc_spi_put_pdata +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x93cc4dfc cfi_build_cmd_addr +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9e5a17ad cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xa645acf1 cfi_build_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xae9bef3b cfi_send_gen_cmd +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcb8e0fcc cfi_merge_status +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd3ded887 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xfebd2476 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xff9fa623 cfi_udelay +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x29798dd3 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa750b4a8 register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xbacfd1e9 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xde4d7b9d map_destroy +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xbf299c19 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x903b043f lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc8939b2c simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x18a2022c mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0x7f97d553 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x0705a9e7 nand_ecc_get_sw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x0d464275 nand_ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x23d5bbf2 nand_ecc_get_on_die_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x24114f91 nand_ecc_unregister_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x3847b099 nand_ecc_finish_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x48693dc9 nand_ecc_sw_hamming_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x4cead317 nand_ecc_prepare_io_req +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x539df37e nand_ecc_sw_bch_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x65db3357 nand_ecc_sw_hamming_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x83056308 nand_ecc_sw_bch_get_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x8cb342ee nand_ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x99661c0b nand_ecc_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9a2f6837 nand_ecc_get_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9a764fae of_get_nand_ecc_user_config +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0x9e6db784 nand_ecc_sw_bch_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xc4c6ef79 nand_ecc_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd3cdea16 nand_ecc_sw_bch_cleanup_ctx +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd4168dc7 nand_ecc_is_strong_enough +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xd560313d nand_ecc_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe43454c8 nand_ecc_register_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xe6db989b ecc_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xf5762719 nand_ecc_put_on_host_hw_engine +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff4351b0 ecc_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/nandcore 0xff7fac07 nand_ecc_sw_hamming_init_ctx +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0x8eaeaa3a onenand_addr +EXPORT_SYMBOL drivers/mtd/nand/onenand/onenand 0xceb2bac0 flexonenand_region +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x30db096f denali_calc_ecc_bytes +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0x89110e13 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/raw/denali 0xa4ba040e denali_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x058dda08 rawnand_sw_hamming_cleanup +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x064cfaa6 rawnand_sw_bch_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x5911bf69 nand_read_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x60647304 nand_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x68fb57ae rawnand_sw_hamming_calculate +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x7b6b8806 rawnand_sw_bch_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x85638740 nand_monolithic_read_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0x8ecbb3b8 nand_check_erased_ecc_chunk +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xaa6a441d rawnand_dt_parse_gpio_cs +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xbd0496b4 nand_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xc2c5ae6c rawnand_sw_hamming_init +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xcda82af2 nand_write_oob_std +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd0c2f1cb nand_monolithic_write_page_raw +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd363b00d nand_get_set_features_notsupp +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xd87a429b rawnand_sw_hamming_correct +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xdaa300fd nand_create_bbt +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xebe549bc nand_scan_with_ids +EXPORT_SYMBOL drivers/mtd/nand/raw/nand 0xffa837c7 rawnand_sw_bch_cleanup +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x156e1d6f arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3a426e62 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3fe50a81 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x66396137 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6dbb5c11 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9103dddc arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9b39c4f5 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb921cda1 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xce2eca45 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf8196415 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfe4509e1 free_arcdev +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6ec01aa8 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x9bdc8afa com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xcbd49f2a com20020_netdev_ops +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0x7d7d0483 ctucan_probe_common +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xeb18f04a ctucan_suspend +EXPORT_SYMBOL drivers/net/can/ctucanfd/ctucanfd 0xed9effe2 ctucan_resume +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0581acd7 b53_br_flags_pre +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x07cfc115 b53_fdb_dump +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x0847ea34 b53_get_sset_count +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1ca32362 b53_mdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x1fcd84ce b53_phylink_mac_link_up +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x24b74c05 b53_imp_vlan_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x2f36a98a b53_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x33d6bf6d b53_br_fast_age +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x354cf4fc b53_switch_detect +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x39df7654 b53_vlan_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x3cd3a836 b53_phylink_mac_link_down +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x4b0c639d b53_mdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x64d04137 b53_get_ethtool_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x6b12fdd0 b53_get_strings +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8572075d b53_mirror_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8749a9fa b53_eee_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x88323d78 b53_br_join +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x8b0065c5 b53_setup_devlink_resources +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x9cecbce3 b53_fdb_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0x9d08ca82 b53_brcm_hdr_setup +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xa153d373 b53_enable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xae45cc5a b53_port_event +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xb7e1d6b5 b53_get_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xbad16c42 b53_configure_vlan +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc0879f86 b53_get_ethtool_phy_stats +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc360ee4e b53_mirror_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc753fd83 b53_eee_enable_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc774b5e7 b53_set_mac_eee +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xc8208534 b53_get_tag_protocol +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xd51cd25a b53_br_leave +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe19885c2 b53_phylink_mac_config +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xe7c1faf9 b53_vlan_del +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xedb57b9a b53_br_set_stp_state +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf37d2d94 b53_fdb_add +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xf855f4a4 b53_switch_register +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfaeb25be b53_vlan_filtering +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfc10e2a4 b53_br_flags +EXPORT_SYMBOL drivers/net/dsa/b53/b53_common 0xfd065e96 b53_disable_port +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x1147ef73 b53_serdes_link_set +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x34eda252 b53_serdes_init +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0x3df0ef7b b53_serdes_phylink_mac_select_pcs +EXPORT_SYMBOL drivers/net/dsa/b53/b53_serdes 0xda4767b4 b53_serdes_phylink_get_caps +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x581afd7d lan9303_remove +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x5cf1596b lan9303_probe +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0x7fec0407 lan9303_shutdown +EXPORT_SYMBOL drivers/net/dsa/lan9303-core 0xada83f40 lan9303_register_set +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz8795 0xd7669aca ksz8_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz9477 0x7906b9ec ksz9477_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0x995c9770 ksz_switch_register +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0xf56221cd ksz_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/microchip/ksz_common 0xffb84d95 ksz_switch_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x34ceaf52 vsc73xx_remove +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x93c763e3 vsc73xx_shutdown +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0x99d242fe vsc73xx_is_addr_valid +EXPORT_SYMBOL drivers/net/dsa/vitesse-vsc73xx-core 0xd1c21a77 vsc73xx_probe +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x171e5669 xrs700x_switch_alloc +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x5b42b37c xrs700x_switch_register +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x83b7b667 xrs7003f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x8972bf7e xrs7004f_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0x9bfb23ac xrs700x_switch_shutdown +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xac408be7 xrs700x_switch_remove +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb25facfa xrs7003e_info +EXPORT_SYMBOL drivers/net/dsa/xrs700x/xrs700x 0xb89aa5e3 xrs7004e_info +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x11fa491b __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x171e7a6e ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x236c0105 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x2767a4d6 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4277ab01 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x747ad575 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7bfc6dcc ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9fd04225 ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xab68dddf NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe4141ece ei_close +EXPORT_SYMBOL drivers/net/ethernet/aquantia/atlantic/atlantic 0x9b089d76 aq_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/broadcom/bnxt/bnxt_en 0x6fdf206b bnxt_ulp_probe +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xed14c635 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x0a8afe54 cavium_ptp_get +EXPORT_SYMBOL drivers/net/ethernet/cavium/common/cavium_ptp 0x2f21b23c 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 0x015a3470 cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0626ad23 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1a240538 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x64dd0e16 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6e896da5 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6fecd7c2 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7dac08f8 cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa593d0e2 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xad41f784 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb3befcc6 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcaa57eb8 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xcd9f3930 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd343b331 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd7799c72 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe0bb3d90 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe1c64a60 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0504e280 cxgb4_read_sge_timestamp +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06ae3000 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0f1a5528 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x12f4b493 cxgb4_reclaim_completed_tx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x153a7dd2 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x162e2f49 cxgb4_write_partial_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2811dfae cxgb4_read_tpte +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x28f3182e cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2930ea43 cxgb4_crypto_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2aecb235 cxgb4_l2t_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x2deb78eb cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x322e8881 cxgb4_immdata_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3a89d27a cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3f6fa309 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3f702bc7 cxgb4_update_root_dev_clip +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4377796f cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x49b49325 cxgb4_create_server6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x50ee5c07 cxgb4_best_aligned_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x51168402 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x57427571 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58f6e393 cxgb4_remove_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5a6ad26f cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x5d275915 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x68cb63c0 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6a147868 cxgb4_check_l2t_valid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x75f53f49 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7c8ef561 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x81664169 cxgb4_bar2_sge_qregs +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x817e2f49 t4_cleanup_clip_tbl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8210f1d5 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8ae3ac42 cxgb4_get_srq_entry +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8bcfcb5a cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8c3a0e26 cxgb4_clip_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8f2ddaeb cxgb4_ring_tx_db +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x94e08c36 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x95f3a8a8 cxgb4_select_ntuple +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa44f2542 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xbbb080c4 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc7516859 cxgb4_write_sgl +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcc872805 cxgb4_port_e2cchan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xdd197ebd cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe041dec4 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1374492 cxgb4_smt_alloc_switching +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe702ab1e cxgb4_clip_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1671b0d cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf1fb0fde cxgb4_smt_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf38d49ec cxgb4_inline_tx_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf54cb31a cxgb4_map_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfae8974a cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x05d118a3 cxgbi_ppm_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x0a2d159e 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 0x58b4811c cxgb_find_route6 +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x72f1d505 cxgbi_ppm_make_ppod_hdr +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x75b6c037 cxgbi_ppm_ppods_reserve +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0x9ca98b27 cxgbi_ppm_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/libcxgb/libcxgb 0xbdb4ff68 cxgb_find_route +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x31f6e760 vnic_dev_unregister +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x94adf36f vnic_dev_get_pdev +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0x9f929aa6 vnic_dev_get_res_count +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xc01d04e3 vnic_dev_get_res +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xc5a6aba8 vnic_dev_register +EXPORT_SYMBOL drivers/net/ethernet/cisco/enic/enic 0xce16dd1f 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 0x6bc5b753 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x9267e262 be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ierb 0xdb5ae542 enetc_ierb_register_pf +EXPORT_SYMBOL drivers/net/ethernet/freescale/enetc/fsl-enetc-ptp 0x5431a304 enetc_phc_index +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x1f06bca5 fun_dev_disable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0x6d9fbebf fun_release_irqs +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xbcc33da5 fun_dev_enable +EXPORT_SYMBOL drivers/net/ethernet/fungible/funcore/funcore 0xdffcaf6a fun_reserve_irqs +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0x58c9c5cb iavf_register_client +EXPORT_SYMBOL drivers/net/ethernet/intel/iavf/iavf 0xc0fa9403 iavf_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/intel/ice/ice 0x965ff908 ice_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/intel/ixgbe/ixgbe 0xbaa35511 ixgbe_xdp_locking_key +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0x31db578a prestera_device_unregister +EXPORT_SYMBOL drivers/net/ethernet/marvell/prestera/prestera 0xed3bb431 prestera_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05e23434 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0880d235 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21cf90f9 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x29108fa9 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f07c2f2 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37df1a55 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c7b291e mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e8709b0 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b889181 mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x553d7eae mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6461b254 mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f6db475 mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72f74625 mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79673d89 mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7c0cdf69 mlx4_get_eqs_per_port +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 0x88b6c159 mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89140da8 mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a938851 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8bbcf15b mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x922af048 mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9430a455 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaae5976d mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xadb62986 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb1fbe6b9 get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5c8c5f3 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf3be6cc set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc04d610d mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc93d9715 mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca73df2e mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc9a31ce mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xccd5904a mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5f81950 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd60c8e25 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd88f08d9 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdea60f95 mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8cea3a4 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea6922a9 mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeacc5905 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeea82442 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeee6598d mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6eff7b3 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa01d839 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc76c201 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcdc7592 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x025852d6 mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x02f633ab mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03f95f3f mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0530689c mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x108d097d mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12c9e107 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1327e879 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x149bfc9e mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x14e33da2 __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x169d5b8a mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1b79d379 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e38486c __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22bce683 __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24bfc81b mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x26ced7d2 mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a764c71 mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2aedab6e mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f2d6516 mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32fc77d1 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35e06f5e mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x363a27bd mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x36531789 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37c7e86c mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x37ef4710 mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3960161a mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3afb5226 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3e6e0e61 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ed26aca __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x429fc1bd mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4337c3a6 mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x43769556 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x446ecd10 mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4540e4f2 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x458f0d53 mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45cca1ce mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4618c723 mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4772f1c9 mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a1434b7 mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b84ffcb __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4c9a143f mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53e828c1 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5596a688 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x55b0d4a8 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5bb4a6c6 mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5c998a0a mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5d73a1ec mlx5_core_destroy_rq +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 0x64875288 mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68cb5a64 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x698f28a9 mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x69b0bf88 mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6bc947fe mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6effac04 mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x71621472 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x757574ac mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77a34faf mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x783b98b2 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7ac14929 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fd709fe __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81c37844 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83fd24a4 mlx5_core_query_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84030db1 mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84b41caf mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x872e7c67 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88050131 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x88e3196d mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x891b542b mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895298ef mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x895e2ab9 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b6c55f8 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c26ed2b mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c6e61ad mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92010a66 mlx5_put_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9238239e mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92e83bba mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9300254e __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9590951f mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x967ecef4 mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96eb2c99 mlx5_fc_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96feea22 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97531edc mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97cf384f mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9962244c mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9aa5d531 mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b14ae88 mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9ba8a197 mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9c21c848 __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d6135dc __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0120228 mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2282fdf mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2416d7b mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa397cefd mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4340dff mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa8eed130 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa95301ad mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa97c9d73 mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaadb9c11 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae4a2e4e mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae4f26c8 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae831e38 mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xafb0170d __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaff37c61 mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0edf5c6 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb280e5b1 mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb614aed5 mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb72cffaf __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7717fff mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbac87e71 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb475e47 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc0561f91 mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7ef893e mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8288b95 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc8697263 mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcbefe19e mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcc392f1a mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd83b2f8 mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcde81f55 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcf6cb44b mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1978c87 mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd19dd953 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd3aeda60 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c3be3d __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd802bf7d mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd81236c7 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda0d6592 mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xde228db8 mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdebfb6e3 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe04bcd9c mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0bd78df mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe25663cc mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe36168ba mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe36360c5 __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e09c2b __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe859c293 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe9b9897f mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb9a8bcf __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee73b6e6 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf0472068 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf09a771e mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf1eb03c3 mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf32babee mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3a05bd0 mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5842106 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5b805b2 mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6ed3f1d mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6fd10d1 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf7b151fa mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf83ed65f mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88d57b1 __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc8e744e __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfda71db4 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe55a284 mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfff81717 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xaf1a42d8 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x05f9ea85 mlxsw_core_rx_listener_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 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0b67c1e1 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1cb8f858 mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3 mlxsw_core_read_frc_h +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x41ab5340 mlxsw_core_skb_receive +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 0x484489a4 mlxsw_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x48e9bb0d mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4db47cf8 mlxsw_core_ptp_transmitted +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x50b347ac mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x66c96bfb mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x751fb9d1 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 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 0x8c5f7d76 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 0x91ea7614 mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x963cfb6a mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97035a9c mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97e62e6e mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x98bfa19b mlxsw_env_set_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x996c5d6d mlxsw_reg_trans_bulk_wait +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x9be3c6df mlxsw_afa_block_append_mirror +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 0x9fbbd512 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 0xac1074a5 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb16ca73c mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb3ea6beb mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6b40684 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xba05b3b0 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd0032f00 mlxsw_core_port_devlink_port_get +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 0xd34ea051 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd71566b9 mlxsw_core_schedule_work +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd7a93413 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd7e6e3ef mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd84eb6b0 mlxsw_afa_block_append_drop +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 0xde4e211f mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeab0691 mlxsw_afk_create +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 0xe16986dd mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe4fc370b mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5540be5 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeda7a5d0 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf037e2a1 mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xfde13958 mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25 mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x664149e0 mlxsw_i2c_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_i2c 0x80041026 mlxsw_i2c_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x4d1c1e81 mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x5197836b mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x01182b2d ocelot_port_set_maxlen +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x01dca0e5 ocelot_vlan_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x06339e7b ocelot_sb_port_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x06e818cb ocelot_sb_occ_snapshot +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x09052d0e ocelot_mact_forget +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0a2aac44 ocelot_deinit_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x1594988e ocelot_sb_tc_pool_bind_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x19453204 vsc7514_vcap_is1_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x25d11974 ocelot_mact_learn_streamdata +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x274a0e05 ocelot_port_fdb_do_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x29576605 ocelot_fdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2d0452cf ocelot_deinit_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2ee2eeab ocelot_vcap_block_find_filter_by_id +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x2fbacf5a ocelot_port_vlan_filtering +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3a16063f ocelot_drain_cpu_queue +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x405c3c8b ocelot_port_inject_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4271543f vsc7514_vcap_es0_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4487edd7 ocelot_ptp_verify +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x449db15e ocelot_get_strings +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4947c026 ocelot_init_port +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a0fde03 ocelot_fdb_dump +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4a8835ee ocelot_bridge_stp_state_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x50d0599a ocelot_vcap_filter_replace +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5313cf0b ocelot_ptp_settime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x553116ea ocelot_vcap_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x56329891 ocelot_hwstamp_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x57c14430 ocelot_port_mdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5b75e0ee ocelot_vcap_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x5de537ab ocelot_port_policer_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x66c284df ocelot_sb_occ_tc_port_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x66fc49b5 ocelot_vlan_prepare +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6a3cc17f ocelot_sb_tc_pool_bind_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7023a846 ocelot_port_lag_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x70ab20a1 ocelot_get_sset_count +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x71487938 ocelot_mrp_del_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7a59e50d ocelot_ptp_adjfine +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7d6f9ddf ocelot_port_lag_join +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7f04a84c ocelot_devlink_sb_unregister +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x80a75405 vsc7514_vcap_is2_keys +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x82057da6 ocelot_port_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x86c9e0ad ocelot_ptp_rx_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x88b54f91 ocelot_port_mdb_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x8bd91ee3 ocelot_sb_occ_max_clear +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x90cbb220 vsc7514_vcap_is2_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9331d4d2 ocelot_set_ageing_time +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9381969d vsc7514_ana_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x99921b5b ocelot_init_timestamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9b6fec1c ocelot_vcap_filter_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9d442141 vsc7514_rew_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9df5b127 ocelot_vlan_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x9f3df71c ocelot_mact_learn +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa01d5d95 ocelot_get_ethtool_stats +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa41cc008 ocelot_ptp_enable +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa8413d7e vsc7514_sys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa8ad5a6e ocelot_can_inject +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaa688a79 ocelot_sb_occ_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xaac6fed3 ocelot_xtr_poll_frame +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xabd5f2a4 ocelot_fdb_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xad0c5323 ocelot_devlink_sb_register +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xafa5c754 ocelot_deinit +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb30c4b92 vsc7514_ptp_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb7b77e2c ocelot_get_ts_info +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb8cec9b8 ocelot_vcap_filter_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xba7c4e78 ocelot_policer_validate +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbba17367 vsc7514_qsys_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbe64e0b0 ocelot_port_policer_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xbf48ddc1 vsc7514_qs_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc8efc4e8 ocelot_port_pre_bridge_flags +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcb470eb9 ocelot_sb_port_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xcc4465fe ocelot_port_bridge_leave +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xceed5e7e vsc7514_dev_gmii_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd032372f ocelot_hwstamp_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd0ebefd9 ocelot_ifh_port_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd28efadf ocelot_ptp_adjtime +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd67b2f02 ocelot_get_max_mtu +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd687a545 vsc7514_vcap_es0_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd6fe2c3d ocelot_mact_lookup +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd7ce9f83 ocelot_mrp_add +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd8a571ff ocelot_mrp_add_ring_role +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdbf38b8a ocelot_get_txtstamp +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe1e14e8d ocelot_sb_pool_get +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe3b61545 ocelot_mrp_del +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe8b4da5a ocelot_ptp_gettime64 +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xea1b5ac9 vsc7514_vcap_regmap +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xecaa97fb vsc7514_vcap_is1_actions +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xed8d5056 ocelot_sb_pool_set +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf26eb8ec ocelot_port_lag_change +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf39bfdc2 ocelot_port_txtstamp_request +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xf547faa4 ocelot_init +EXPORT_SYMBOL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfde299e7 ocelot_port_bridge_join +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0x2a4ab9cd 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 0x51fb8f5f 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 0xcdb844bb qed_get_rdma_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qed/qed 0xebbacb4e qed_get_fcoe_ops +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0x3e2152e7 qede_rdma_register_driver +EXPORT_SYMBOL drivers/net/ethernet/qlogic/qede/qede 0xe2322822 qede_rdma_unregister_driver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x135f057e hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4bd4c7b6 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7a6a2a07 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xcbecf6ce hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe8f5e845 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 0xaadfd1af 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/mdio/mdio-bitbang 0x28bfb28f free_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0x8cd4ac72 mdiobb_write +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xd2400b9e alloc_mdio_bitbang +EXPORT_SYMBOL drivers/net/mdio/mdio-bitbang 0xd9714536 mdiobb_read +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0x0bac06d8 cavium_mdiobus_write +EXPORT_SYMBOL drivers/net/mdio/mdio-cavium 0xf225f80e cavium_mdiobus_read +EXPORT_SYMBOL drivers/net/mdio/mdio-mscc-miim 0xd594e4ee mscc_miim_setup +EXPORT_SYMBOL drivers/net/mii 0x0bc588c9 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x2834594c mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x55255f8a mii_ethtool_get_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0x781d1b20 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x7f38b62a mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x815169c1 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xb7d270f1 mii_ethtool_set_link_ksettings +EXPORT_SYMBOL drivers/net/mii 0xecbca291 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xefb9e68b mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xfe556997 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x0b39dceb lynx_pcs_create +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0x31602b06 lynx_get_mdio_device +EXPORT_SYMBOL drivers/net/pcs/pcs-lynx 0xa6bf0e9e lynx_pcs_destroy +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x2c87a0f0 bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/ppp/pppox 0x39d592de pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0x5dbed466 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xbb0e0243 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xc66a22e0 pppox_compat_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0xd6f41eaa sungem_phy_probe +EXPORT_SYMBOL drivers/net/team/team 0x15b01643 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0x2ddd8c92 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0x6c2f09eb team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x81009546 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x8d3cb2aa team_option_inst_set_change +EXPORT_SYMBOL drivers/net/team/team 0xa86d7b4b team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0xd8cb3d18 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xf6562b3f team_mode_unregister +EXPORT_SYMBOL drivers/net/usb/usbnet 0x5b7dcd7a usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xc23bf109 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0xfaa2b598 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x17c579d5 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x19f1158c hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x4108b58f unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x65a46cd5 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6d857d22 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x87c1338d register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xac5f6df5 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc2104983 unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdafe4acc alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf8cfe0ce hdlc_ioctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0487bce3 ath_is_mybeacon +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0b1ab353 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0d59958f ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x108b188f ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4571aea8 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4973c075 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5b807ad1 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5e5a4ac2 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x62c0e05f ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x647e601f ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x787da640 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa18f224e ath_regd_find_country_by_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb0c80258 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6588ba6 ath_bus_type_strings +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb79cc9b7 ath_hw_keysetmac +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbc959e59 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc8a9e91b ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xcb6fb86a dfs_pattern_detector_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x015e5db2 ath10k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x02d13245 ath10k_ce_num_free_src_entries +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x101241b1 ath10k_core_check_dt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x168f27ec ath10k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1ad051a3 ath10k_ce_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1cbfcc3c ath10k_ce_cancel_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1eac9434 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x1f022253 ath10k_htc_process_trailer +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2a27191b ath10k_ce_alloc_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2b1ad8dd ath10k_ce_enable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x2c074e2f ath10k_ce_dump_registers +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3114e2f8 ath10k_htc_tx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x3a61d49a ath10k_ce_free_rri +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x41f3888a ath10k_ce_per_engine_service_any +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x480f4c30 ath10k_print_driver_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4d4e32fe ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4dc23b7e ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x4f7e5e97 ath10k_ce_completed_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x609be4b4 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x689b9868 __ath10k_ce_send_revert +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6ac2de93 ath10k_core_free_board_files +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6bb72a00 ath10k_ce_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x6f82a201 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x72e1b7bb ath10k_ce_completed_send_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x74390192 ath10k_ce_alloc_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x83a10097 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x89e20132 ath10k_htc_notify_tx_completion +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9531b2ef ath10k_core_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x95d5c4fa ath10k_core_napi_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x98b94f13 ath10k_bmi_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x98d01f1f ath10k_htc_rx_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9d62008a ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9f6ed96c ath10k_core_start_recovery +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa1e4849a __tracepoint_ath10k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa5699209 ath10k_core_napi_sync_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa5ab0ff3 ath10k_htt_rx_pktlog_completion_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa87fed56 ath10k_ce_send_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa9b932d2 ath10k_htt_rx_hl_indication +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaeaec6c2 ath10k_ce_completed_recv_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xbdcfff12 ath10k_core_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc1e9a46a ath10k_bmi_read_memory +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc38c61ab ath10k_ce_completed_send_next_nolock +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc69ebbc8 ath10k_ce_free_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xc6f9033d ath10k_ce_deinit_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd61a3833 ath10k_mac_tx_push_pending +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd6c68759 ath10k_ce_send +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xdb1f8f14 ath10k_ce_disable_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe26e3d01 ath10k_htt_t2h_msg_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe424fa96 ath10k_htt_hif_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xe6cd2b39 ath10k_core_fetch_board_file +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xeafcd18a ath10k_htt_txrx_compl_task +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xec313060 ath10k_coredump_get_mem_layout +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xeeda93c0 ath10k_ce_rx_update_write_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xef369333 ath10k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf0c2f92d ath10k_coredump_new +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf1de7bb3 ath10k_ce_revoke_recv_next +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfac808a2 __ath10k_ce_rx_num_free_bufs +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfcccfeb0 ath10k_ce_init_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x00b104dd ath11k_pcic_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x09a201ae ath11k_ce_get_attr_flags +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0c4a5c8f ath11k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x0ccb331f ath11k_core_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x17fced7f ath11k_pcic_write32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1904e334 ath11k_pcic_config_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1e15442f ath11k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x1f72b68a ath11k_pcic_get_ce_msi_idx +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2bbb5ca5 ath11k_ce_free_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x2fb500da ath11k_ce_per_engine_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x3cc5a967 ath11k_pcic_ce_irq_disable_sync +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x42e0ac46 ath11k_pcic_register_pci_ops +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x49a9697a ath11k_ce_rx_post_buf +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x50d427e6 ath11k_core_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x538d905c ath11k_pcic_free_irq +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x57281846 ath11k_pcic_ce_irqs_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x5b759f83 ath11k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x606a5b5a __tracepoint_ath11k_log_dbg +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x607f0182 ath11k_ce_cleanup_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x63897ca5 ath11k_core_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6bdd82d5 ath11k_dp_service_srng +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6be48fc3 ath11k_pcic_get_user_msi_assignment +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6d6af4a9 ath11k_core_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x6f37015d ath11k_debugfs_soc_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x790d587b ath11k_pcic_ext_irq_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x79e177df ath11k_core_pre_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x7d11f983 ath11k_qmi_deinit_service +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9034c9b5 ath11k_pcic_get_msi_address +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x930c77e2 ath11k_pcic_map_service_to_pipe +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x93da93fe ath11k_hal_srng_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0x9c51bcc4 ath11k_debug_mask +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa36dc36d ath11k_pcic_init_msi_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa6f040d6 ath11k_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xa785c622 ath11k_core_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb02d4909 ath11k_hal_srng_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xb72aadd9 ath11k_pcic_ext_irq_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xbea0f97a ath11k_ce_alloc_pipes +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xcd8edd1a ath11k_pcic_read32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd32de87a ath11k_ce_get_shadow_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xd926ec84 ath11k_pcic_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath11k/ath11k 0xf0197188 ath11k_cold_boot_cal +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0936d7a1 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 0x3ca8bc5c ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5212acdc ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x56e6997b ath6kl_read_tgt_stats +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8299db8e ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x83ce1372 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8574d2d9 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 0x98830bc7 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x997cb65f ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa31b05c2 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 0xf9778ab0 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x05b1402d ath9k_cmn_debug_recv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0d201140 ath9k_cmn_process_rssi +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x184ad08c ath9k_cmn_spectral_scan_trigger +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x34bf3627 ath9k_cmn_get_channel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3b8e3cb6 ath9k_cmn_spectral_scan_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x41aae67b ath9k_cmn_debug_stat_rx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x50fcf120 ath9k_cmn_beacon_config_sta +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5baf1e44 ath9k_cmn_reload_chainmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x61df6b42 ath9k_cmn_init_channels_rates +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x72db8989 ath_cmn_process_fft +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x82860cf7 ath9k_cmn_rx_skb_postprocess +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x93f336ca ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9d4a244b ath9k_cmn_rx_accept +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa21d0f44 ath9k_cmn_setup_ht_cap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa73e407e ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xac18f1aa ath9k_cmn_spectral_deinit_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xbed0cce9 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc743b462 ath9k_cmn_debug_base_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd67bf89d ath9k_cmn_spectral_init_debug +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xde5d7cbd ath9k_cmn_beacon_config_ap +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xebd7eb2d ath9k_cmn_process_rate +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xec60aa87 ath9k_cmn_debug_modal_eeprom +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xeda51a91 ath9k_cmn_debug_phy_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xfd43ddde ath9k_cmn_beacon_config_adhoc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0177cacb ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x093dca03 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c89d50b ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f436dec ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f77dafc ath9k_hw_get_tsf_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11e0fdb8 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x12468f6f ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x13d34f12 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14f1046f ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d7b1e58 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20946a4a ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22c5053e ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23b8f794 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x27cdad82 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2861e99e ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31a6733b ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34e0d1cc ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35dc766b ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3944277e ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fa0fc96 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4098e0f6 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4166177e ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x419ded53 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44c59f60 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a0be960 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a2835a4 ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b859a0b ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bb3af5f ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c45a0a6 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f1050a0 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x503d3e1a ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x50b2d6c3 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55fde332 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x564d57ac ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ae3ae9b ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c7a9c18 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e1a85ef ath9k_hw_resume_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ec1006a ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x608cca3f ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x648e38d8 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x67909844 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69d5c897 ath9k_hw_gpio_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6add06aa ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d9234ea ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74e91e1a ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75ac82e0 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75c51704 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x780e912f ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x785c5978 ath9k_hw_gpio_request_out +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78adb17e ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7973e5fa ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83e3ca5f ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86832a79 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x87d630d2 ath9k_hw_check_nav +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8eeb21f3 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91260029 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91513493 ath9k_hw_set_tx_filter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9233fa50 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92c7d5b9 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b0ddb9a ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b609e93 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e2c8b8b ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f672870 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa146a4ad ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5d98569 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaafc9c63 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac224a3c ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafa9a813 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaff3ec89 ar9003_hw_bb_watchdog_check +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb60bbdf2 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7c5bc72 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9ff4800 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb05d3af ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf941b00 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc24339a6 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc55c2f70 ath9k_hw_gpio_request_in +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc78f568e ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7c5e66f ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8e35399 ath9k_hw_btcoex_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xce0ec455 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd109ba7f ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a749b1 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3d14015 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4679351 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5c3615f ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7c55680 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda2d29b4 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbc701c2 ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd0f0dff ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5eb7295 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7b89945 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe80677c5 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe81fc297 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ffcc05 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe90a845a ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xec304609 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecd3b512 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeddbd270 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf02d17f5 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0ec46fa ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5ffa4c3 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf64bfaba ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6608443 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7a58766 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7cf42c3 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7f3f74c ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9b17688 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfcd1c0c2 ath9k_hw_loadnf +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xa86a68c2 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xd2fe6383 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel/atmel 0xebb5ad5e init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x02f44cc2 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x089f7b22 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 0x48662a77 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x53426111 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x6069c108 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x70b1a5b5 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0x74ec1546 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa17c0ccf brcmu_dotrev_str +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xa8d8cd36 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xb21b370f brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd023a94b brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xd6217d91 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xda483062 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xde890ed1 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/broadcom/brcm80211/brcmutil/brcmutil 0xdff320a4 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x0e201c06 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x3d69c6b0 reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/cisco/airo 0x79d1047c stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x034697c5 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x1b92a6e7 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3143200e libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3146c27f libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x33af8a71 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3d5689fa free_libipw +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x3e58ae3b libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x429bd537 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x502b6b0c libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6197f952 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x6863fcad libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x82847c0c libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x90bfe535 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x90faf306 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x95c3737b libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0x9823d5f3 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xca97c3c3 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xceb3cccd libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xd39e41b0 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/intel/ipw2x00/libipw 0xef6dd7ee libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x02259916 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x062a3526 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x06f1f368 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x09fcb172 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x0f795c81 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x14906419 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x15a940f3 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x167b2f07 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x17b7a091 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f05b3a3 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x1f162a46 il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x21e19638 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x27c99e80 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2a916649 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2bf7eea6 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2c15c71c il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2f9dccc7 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x2ffe9967 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x32df5122 il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x341b63db il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x355ace09 il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x35c7cad5 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x37702de9 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x383416ad il_mac_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3ffea2bd il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x416bd26a il_debug_level +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4bdd5519 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e720904 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4e93ed5a il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x4f9e2f6f il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5033458a il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x51a9f9dc il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5313eac3 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x531b5240 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x551e29aa il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5956f4f9 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a3f4c10 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5a7664f4 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5c4ae438 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5c533aa3 il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5dbc65c8 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x5dc6ce11 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x609f985b il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6146c2da il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6339bdad il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x68126a24 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6db64f0d il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6de7f388 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ecc3655 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x6ef8a2f0 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x70bfa042 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73aa767b il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x75ededeb il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x76069825 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x766c7a45 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x776fd6a9 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x777d75f4 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x7b4d1f36 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8218371b il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x827766d6 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8319568c il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x83dde35c il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x88c8a3ea il_init_geos +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8c12cc97 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8e975b96 il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x8ea503b5 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x943f09cd il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9cc714af il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ed8b6ed il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9fd1a5f0 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa075090a il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xa83af71b il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb65510a3 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bc9bb1 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb7e7fc04 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xb955d832 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc11371c4 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc1b268bc il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc20ebb2f il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc34a9bc4 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xc4f45862 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xceb2083c il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd08ead4e il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd52105ef il_set_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdc9eae78 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdcc81575 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdd07669a il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf2ebb0c il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xdf435039 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe05c506a il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe2ec32f2 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xe884a907 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xebbb6dc5 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xed152ed7 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf087f640 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf4073155 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf70a693b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf7a1f614 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf9221ae8 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xf93a4193 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbdf00ba il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfbe56f59 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xfd09738b il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x0c2a8f3e __traceiter_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x36a862e9 __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x3d23c104 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x466ae44d __SCK__tp_func_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x63533fe5 __traceiter_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x970bf4ef __SCK__tp_func_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xaaafbd3e __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xb0077457 __traceiter_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intel/iwlwifi/iwlwifi 0xd1e69877 __SCK__tp_func_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x02b1a667 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0bf43e95 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x0fac60d8 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x2225c62e hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x25ee4c89 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x336c5fa5 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x48f64fd5 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x51708632 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x563da66c hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x59c9cd93 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x6b584da7 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x73ae95b1 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x75934c58 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7ce1831f hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x7fb75891 hostap_dump_rx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x86841175 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x89c5b69e hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x8f950edf hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0x923b848f hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xab339bb8 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xadc1945a hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xaf12e161 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xc6f03c49 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xd48ec001 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xd9bba4ed hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xe34c9dbf hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf0de21a5 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/intersil/hostap/hostap 0xf91c03e2 hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x08b758eb orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x33f9ecad orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x3e175858 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x447d9409 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x44835bb7 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x500508b4 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x725f37e9 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x7798de1a orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x87440db2 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x8ba69d8e alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0x9b1cf955 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xa976ba9d __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xc29737d4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xcf420fed orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xdf09345d orinoco_down +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xe9126868 orinoco_init +EXPORT_SYMBOL drivers/net/wireless/intersil/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/mediatek/mt76/mt76 0x33a05779 mt76_wcid_key_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/btcoexist/btcoexist 0xd68247f4 rtl_btc_get_ops_pointer +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x11e7dbca rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x12952f4f _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1b55b4a8 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x1bc7f1cf _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x2205a133 _rtl92c_phy_txpwr_idx_to_dbm +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 0x293dea93 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x307c29a4 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x332b46e2 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x345a8eb3 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x3adbbcc9 rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x41904e1a rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x52fe1ed7 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x56cef1ad rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x58d4cfd2 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x594a993a rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x5bb0eb66 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x615674b9 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6ede1dfe rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x75919eef rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x77f0798b rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x7c265738 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x82bf1841 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x834277cc rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x8f64eb22 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x99cf0e05 _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xa933ab92 _rtl92c_store_pwrindex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xafc924c2 _rtl92c_phy_dbm_to_txpwr_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb0a9f53d _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb2508359 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb6aa7d33 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbc691337 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xbcc7acfc rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcbe3ff8a rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xcf04d3e5 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd11bb7ac _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xd6179566 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xde9ecc72 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xe06d44be rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xeb485c18 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf88da9f4 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xf94d2ba9 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x02177692 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x0d481794 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x292af2d2 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_pci 0x390052ae rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x191763b1 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x2211dde0 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0x338d8c7d rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtl_usb 0xb333b987 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x08acefe0 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0b038e24 channel5g_80m +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x178da468 rtl_mrate_idx_to_arfr_id +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1b945315 rtl_addr_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1d22da03 rtl_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x287fdb1b rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x2d388343 rtl_bb_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x30a956d7 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x31cdf387 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x40e9b9fa rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x527ad857 rtl_collect_scan_list +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x52a89b74 rtl_rfreg_delay +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x54824f58 channel5g +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x696f2b44 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7500dabd rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x7df184ba rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8acb3375 efuse_power_switch +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8ea60059 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x8f45a2e0 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x94e8fe5d rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a9c7685 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa750160c rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa8585e21 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa9e5786b rtl_c2hcmd_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xab3db1b6 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xad2504fa rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaea93675 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xbd530be7 rtl_cmd_send_packet +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc4967d94 rtl_hal_pwrseqcmdparsing +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcc418644 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xcffb631f rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd06000f7 efuse_one_byte_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xdacb4bc9 rtl_dm_diginit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe6106d1c rtl_rx_ampdu_apply +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xebedfe5f rtl_wowlan_fw_cb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xed7c8cf2 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf1f8587c efuse_shadow_read +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8723d 0xc1c1ce9a rtw8723d_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8821c 0x5c01b917 rtw8821c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822b 0x2a21b428 rtw8822b_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_8822c 0xc5e3df16 rtw8822c_hw_spec +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x010c4c8e rtw_phy_cfg_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x03c20fb8 rtw_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x06be912a rtw_parse_tbl_phy_cond +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x0bcffcdc rtw_phy_pwrtrack_get_delta +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x10f5c2f5 rtw_bf_set_gid_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1a156daf rtw_phy_cfg_bb +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1a9206ce rtw_tx_fill_tx_desc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1a96f36b rtw_parse_tbl_bb_pg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x1e059f1b rtw_phy_pwrtrack_thermal_changed +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x29e3bb92 rtw_set_rx_freq_band +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33600b25 rtw_fw_c2h_cmd_rx_irqsafe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x33b3f3c0 rtw_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x35c918eb rtw_coex_read_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x36c5bfca rtw_disable_lps_deep_mode +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3d25277c rtw_phy_cfg_agc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x3f860c3f rtw_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x40eb7e9f rtw_register_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4100e1f7 rtw_tx_write_data_rsvd_page_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x440b7589 rtw_phy_rf_power_2_rssi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4c5ff6cc rtw_dump_fw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x4d3babad rtw_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x50adbb7f rtw_phy_pwrtrack_avg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x519c8ba9 rtw_rate_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x53d69e9c rtw_bf_cfg_csi_rate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5759e53e rtw_rx_fill_rx_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x58210e60 rtw_rate_section +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x583aa9b3 rtw_fw_c2h_cmd_isr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x5c6cde8c rtw_fw_do_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x65da00a0 rtw_phy_load_tables +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x673d50af rtw_coex_write_scbd +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x6abb6958 rtw_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x72de69ec rtw_bf_remove_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x762a30b4 rtw_regd_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7941d2f1 rtw_phy_read_rf_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x79726c70 rtw_bf_enable_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x7df9f829 rtw_coex_write_indirect_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x829b0503 rtw_parse_tbl_txpwr_lmt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x83807d0a rtw_tx_write_data_h2c_get +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8817923d rtw_phy_pwrtrack_need_lck +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8c878e07 rtw_phy_set_tx_power_level +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x8f76864b rtw_phy_set_edcca_th +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x95ada8b9 rtw_dump_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0x9d26ca91 rtw_phy_write_rf_reg_sipi +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xaa4108f6 rtw_phy_parsing_cfo +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xae496ce0 rtw_power_mode_change +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xb651920d rtw_read8_physical_efuse +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbb1512d9 rtw_phy_write_rf_reg_mix +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbba0ab49 rtw_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbbba533d rtw_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xbcbb4c38 rtw_restore_reg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcad8d774 rtw_tx_report_enqueue +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcb06675b rtw_bf_remove_bfee_mu +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xcb5328b8 rtw_phy_config_swing_table +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd114bd64 __rtw_dbg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd5a48ee6 rtw_rx_stats +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xd67a74f1 check_hw_ready +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xdb68709f rtw_phy_get_tx_power_index +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe0ed4a90 rtw_unregister_hw +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe3a3beca rtw_bf_enable_bfee_su +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe80f575e rtw_phy_pwrtrack_need_iqk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xe8e82bf1 rtw_fw_inform_rfk_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf1f15414 rtw_bf_phy_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf3bbec4a rtw_phy_cfg_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf6efffc9 rtw_phy_pwrtrack_get_pwridx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_core 0xf94f0780 rtw_set_channel_mac +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x43c686f2 rtw_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0x58ad7c2b rtw_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xa146abbf rtw_pci_shutdown +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw88/rtw88_pci 0xede4bb43 rtw_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852a 0x923aa223 rtw8852a_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_8852c 0x7e013cbc rtw8852c_chip_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x015438d9 rtw89_core_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x03e87015 rtw89_phy_fill_txpwr_limit_ru +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x085ef81c __rtw89_debug +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x0d0dc3fd rtw89_mac_disable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x147e9afc rtw89_rs_nss_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x19be56e6 rtw89_ser_notify +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x1aad57b3 rtw89_phy_config_rf_reg_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2750a709 rtw89_phy_load_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x29031ed3 rtw89_chip_info_setup +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2bf9726f rtw89_phy_write_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x2d2c3782 rtw89_phy_read_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x33ab1880 rtw89_mac_resume_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x342088ae rtw89_mac_coex_init_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x36b84f55 rtw89_fw_h2c_dctl_sec_cam_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x44910540 rtw89_core_napi_stop +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x4f13cc00 rtw89_phy_write_reg3_tbl +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5545af18 rtw89_mac_resume_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x55a03d4e rtw89_core_fill_txdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x5fc755cb rtw89_mac_set_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x6e8f5a63 rtw89_mac_size +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x71d9af2f rtw89_fw_h2c_rf_ntfy_mcc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x77883d9b rtw89_phy_read_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x791f6834 rtw89_core_napi_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x7b72a019 rtw89_phy_write_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x8ada0de3 rtw89_core_napi_start +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x96992225 rtw89_core_register +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9b359fd4 rtw89_rfk_parser +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9d7a84c6 rtw89_mac_get_txpwr_cr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9e04b645 rtw89_core_fill_txdesc_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9e4fbe8d rtw89_mac_cfg_ppdu_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0x9f4bf15b rtw89_phy_tssi_ctrl_set_bandedge_cfg +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xaade9364 rtw89_mac_coex_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xab44e010 rtw89_mac_cfg_ctrl_path_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xad1d2143 rtw89_phy_write32_idx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xaf72732b rtw89_core_unregister +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb0a4c39b rtw89_mac_get_err_status +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb290e8f3 rtw89_phy_get_txsc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb65c988e rtw89_phy_fill_txpwr_limit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb7506d74 rtw89_phy_read_txpwr_byrate +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xb9819326 rtw89_mac_enable_bb_rf +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xbf3eca4d rtw89_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xc95534b0 rtw89_rs_idx_max +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcb8d1d25 rtw89_mac_stop_sch_tx_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xcc838395 rtw89_phy_read_rf_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd221d96c rtw89_core_fill_txdesc_fwcmd_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd6e6317b rtw89_mac_stop_sch_tx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd72b5c29 rtw89_mac_write_xtal_si +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xd8a75ab4 rtw89_btc_ntfy_wl_rfk +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xdc652d70 rtw89_mac_cfg_gnt_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xdce381fc rtw89_mac_cfg_gnt +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xddc3c8de rtw89_mac_cfg_ctrl_path +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe3f57b04 rtw89_debug_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe4c97a77 rtw89_core_napi_init +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xe9d1e42a rtw89_core_query_rxdesc +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xebf6669f rtw89_core_deinit +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_core 0xee5b3a64 rtw89_core_rx +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x06ee1c2e rtw89_pci_disable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2491ef8c rtw89_pci_enable_intr +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x2d61f647 rtw89_pci_recognize_intrs_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x3a01770b rtw89_pci_ltr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x4c3ef73b rtw89_pci_disable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x69e9a0c4 rtw89_pci_enable_intr_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x965be8b8 rtw89_pm_ops +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0x9ce0961b rtw89_pci_ch_dma_addr_set +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xa0cf68b6 rtw89_pci_remove +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xa9e23075 rtw89_pci_probe +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xaea00fc1 rtw89_pci_config_intr_mask +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xb2af797d rtw89_pci_fill_txaddr_info_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xcc18423e rtw89_pci_recognize_intrs +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xcc475395 rtw89_pci_fill_txaddr_info +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xdc66ffe8 rtw89_pci_ltr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xe35b9ce8 rtw89_pci_config_intr_mask_v1 +EXPORT_SYMBOL drivers/net/wireless/realtek/rtw89/rtw89_pci 0xf630d9a9 rtw89_pci_ch_dma_addr_set_v1 +EXPORT_SYMBOL drivers/net/wireless/rsi/rsi_91x 0xd4d473dc rsi_config_wowlan +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x6ae94426 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x731bcc70 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x9a4b49b6 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xdac72596 wl1271_free_tx_id +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0x1e930837 fdp_nci_remove +EXPORT_SYMBOL drivers/nfc/fdp/fdp 0xa708c3e8 fdp_nci_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x2e993480 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x95963261 microread_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x1df6cc31 nxp_nci_probe +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0x8030cb4f nxp_nci_remove +EXPORT_SYMBOL drivers/nfc/nxp-nci/nxp-nci 0xb3e8857a nxp_nci_fw_recv_frame +EXPORT_SYMBOL drivers/nfc/pn533/pn533 0x9d458b90 pn533_recv_frame +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xef32e740 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xf1cf2ccb pn544_hci_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x60268279 s3fwrn5_recv_frame +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x774203fc s3fwrn5_phy_set_wake +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0x9f8c8bfd s3fwrn5_phy_power_ctrl +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xb1f9b509 s3fwrn5_probe +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xc20d429f s3fwrn5_remove +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xedb12f10 s3fwrn5_phy_set_mode +EXPORT_SYMBOL drivers/nfc/s3fwrn5/s3fwrn5 0xf2ab60da s3fwrn5_phy_get_mode +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x5d4ed861 st_nci_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x62faaadf ndlc_send +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x675abde8 st_nci_se_deinit +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x78a20f0d ndlc_probe +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0x87a46eb7 ndlc_remove +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xa1bb2a5a ndlc_recv +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xacef7be4 st_nci_se_io +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xdb108152 st_nci_se_init +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xe2b3107f ndlc_close +EXPORT_SYMBOL drivers/nfc/st-nci/st-nci 0xf9e96f4f ndlc_open +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x2245144b st21nfca_hci_disable_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x2a8bd15e st21nfca_se_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x2e7f2e0f st21nfca_dep_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5bc11109 st21nfca_tm_send_dep_res +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x5c9d222e st21nfca_se_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6a292c2f st21nfca_apdu_reader_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6d6b9f20 st21nfca_hci_loopback_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6eeb9ebe st21nfca_dep_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x6f0cae9a st21nfca_vendor_cmds_init +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x7bab6ae3 st21nfca_hci_probe +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0x9feb7e0b st21nfca_im_send_dep_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xa1f7abb4 st21nfca_hci_discover_se +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xbaff4c3f st21nfca_hci_se_io +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xcb85501b st21nfca_connectivity_event_received +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd240c8aa st21nfca_im_send_atr_req +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xd617f8ec st21nfca_hci_remove +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xe480c9a3 st21nfca_dep_deinit +EXPORT_SYMBOL drivers/nfc/st21nfca/st21nfca_hci 0xf6215fa1 st21nfca_hci_enable_se +EXPORT_SYMBOL drivers/ntb/ntb 0x17329caf ntb_set_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x1797845f ntb_default_peer_port_count +EXPORT_SYMBOL drivers/ntb/ntb 0x19c0a635 ntb_register_device +EXPORT_SYMBOL drivers/ntb/ntb 0x2c6acfe6 ntb_clear_ctx +EXPORT_SYMBOL drivers/ntb/ntb 0x3547500c ntbm_msi_request_threaded_irq +EXPORT_SYMBOL drivers/ntb/ntb 0x4e63d6d8 ntb_msi_peer_trigger +EXPORT_SYMBOL drivers/ntb/ntb 0x4fba26ad ntb_unregister_device +EXPORT_SYMBOL drivers/ntb/ntb 0x56722a8e ntb_link_event +EXPORT_SYMBOL drivers/ntb/ntb 0x6a50c36a ntb_unregister_client +EXPORT_SYMBOL drivers/ntb/ntb 0x7cef3326 ntb_msi_init +EXPORT_SYMBOL drivers/ntb/ntb 0x7e2189c2 __ntb_register_client +EXPORT_SYMBOL drivers/ntb/ntb 0xa3f3e60f ntb_msi_setup_mws +EXPORT_SYMBOL drivers/ntb/ntb 0xa3fa4242 ntb_default_peer_port_idx +EXPORT_SYMBOL drivers/ntb/ntb 0xa5c91621 ntbm_msi_free_irq +EXPORT_SYMBOL drivers/ntb/ntb 0xa6080d9d ntb_msi_clear_mws +EXPORT_SYMBOL drivers/ntb/ntb 0xc9622cbe ntb_msi_peer_addr +EXPORT_SYMBOL drivers/ntb/ntb 0xcb068fdb ntb_default_peer_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xd45a8892 ntb_db_event +EXPORT_SYMBOL drivers/ntb/ntb 0xd73c57b2 ntb_default_port_number +EXPORT_SYMBOL drivers/ntb/ntb 0xeae07602 ntb_msg_event +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0x7259e8fc nvdimm_namespace_detach_btt +EXPORT_SYMBOL drivers/nvdimm/nd_btt 0xb7813244 nvdimm_namespace_attach_btt +EXPORT_SYMBOL drivers/parport/parport 0x065127e8 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x099ea7ba parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x1f3573e3 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x21238c20 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x4740ac63 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x48ff478a parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x4cb58757 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4eeee375 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x52137444 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x5791865a parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x611453c7 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x62158f58 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x7a3fd5f2 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x869be810 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x89be14aa parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9d3638ab parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x9fe59eb0 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xacdb3330 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xaec2f1e5 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xbd323a78 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xbd3cb78a parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xbdcbc938 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xbfc0a305 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xc054e3b8 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc4cf072b parport_register_dev_model +EXPORT_SYMBOL drivers/parport/parport 0xccf64aed parport_release +EXPORT_SYMBOL drivers/parport/parport 0xd65c00e4 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xe85e696f parport_read +EXPORT_SYMBOL drivers/parport/parport 0xeef52e02 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xf65a2990 parport_del_port +EXPORT_SYMBOL drivers/parport/parport 0xf9faaa56 __parport_register_driver +EXPORT_SYMBOL drivers/parport/parport_pc 0xbd4a246b parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xf8be3038 parport_pc_unregister_port +EXPORT_SYMBOL drivers/regulator/rohm-regulator 0xd93783a6 rohm_regulator_set_dvs_levels +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0x19caa4b0 rpmsg_chrdev_eptdev_destroy +EXPORT_SYMBOL drivers/rpmsg/rpmsg_char 0xa8f682cf rpmsg_chrdev_eptdev_create +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x02397a4b __register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x0780169f rpmsg_send +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x14bb20b2 rpmsg_poll +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x31595a6e rpmsg_class +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x31db222c rpmsg_trysend +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x37c426fc rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x3925da21 rpmsg_register_device_override +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x4041ca49 rpmsg_release_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x4065e491 rpmsg_send_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x43dac1e5 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x7823a4f3 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x84e17095 rpmsg_trysendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0x987c1baf rpmsg_get_mtu +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa11818ad rpmsg_unregister_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xa25640fc rpmsg_register_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xb21dbe5f rpmsg_find_device +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xc89c9582 rpmsg_sendto +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xdc3c9dc2 rpmsg_create_channel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_core 0xdcba9ce9 rpmsg_trysend_offchannel +EXPORT_SYMBOL drivers/rpmsg/rpmsg_ns 0x4fb0f3b8 rpmsg_ns_register_device +EXPORT_SYMBOL drivers/rtc/rtc-ds1685 0x00d6bb7d ds1685_rtc_poweroff +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x01d1a60b scsi_esp_template +EXPORT_SYMBOL drivers/scsi/esp_scsi 0x4a29ab38 scsi_esp_intr +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xa55462c7 scsi_esp_unregister +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xea886e69 scsi_esp_register +EXPORT_SYMBOL drivers/scsi/esp_scsi 0xeb205aab scsi_esp_cmd +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0566d41c fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0f826c50 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2f7cd08c fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x433e66a2 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x70d02ecd fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9a54fe07 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc0f0ecd5 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc968530a fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xda034c93 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed2a5a07 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfc8940ae fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09dc2f99 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ba40959 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0cfce31b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x127ec528 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x13dd16b3 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x175caf9f fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1954dc23 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d18ea61 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1dd534e0 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x211ab275 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22edabc6 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22f19e3f fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x231f15c1 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27f2a991 fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2db20bf1 fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x365554a3 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x383767c9 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3ad0e849 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3cc3b7c5 fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x40b7f9f2 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x484c7898 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x486b53c8 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48e5c50a fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c06ad3d fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x557fbb9f fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x647532ca fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7374c4fc fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x738c6f4a fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75c273ea fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78c64fe0 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x797f7c7b fc_rport_create +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 0x8abcea83 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d23a263 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f8e4641 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98ad2bec fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98f0753e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b21d4aa fc_get_host_speed +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 0xa7539948 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0f28ee5 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1c78fa7 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb80df0c5 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9c352d9 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1cbdfb1 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc43a9f39 fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce9101a9 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcea41267 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcea74baa fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd4946547 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd69d8424 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd98f5bb0 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdb0b21b5 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe437629c libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xea1ca525 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeba919c4 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebef59db fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed2c130f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1238d4e fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf689e662 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd6628a4 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4ad52ad0 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7d0294dd sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xbd529635 sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc42ede5c sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa21fafb9 mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa5924f1e mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xb2cf7c01 mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x258fbfa5 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x3c656784 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x636f973c qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x64d503e1 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x6ba0d892 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x8576084e qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xb7c745e0 qlt_abort_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc4068807 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xcb129010 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd3a592b9 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe60acce4 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xeabd41cc qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/raid_class 0x7e558e67 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x8de844e4 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xf35e8fb0 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1350379e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x22f5a725 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2c5f24db fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3bfa303c fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x44913d43 fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x505690fe fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5e5709c4 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7d4eb32a fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8d4630af scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9ad4f0f6 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc08db4fa fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcc8c8493 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd9541e5d fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xdbc696bb fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe25f0e90 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf098c3ec fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf2e915c4 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x016e4768 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0206fbe9 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0af1a7c4 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x130b932a sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3462a53b sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38313d2a sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3d402b0e sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ef6ff6f sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x44cd9256 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4d5a87f4 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4fa8c2f5 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x55bd9548 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ad91448 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6708c27d sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6ab5a0a3 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6cc7d483 sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6e808b1a sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x75027a2e sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x885a06a4 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ef4d0c1 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa0b9ee54 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa45ace7d sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad88b8c3 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbb250de1 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc975ffc sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbe55376e scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd5c86717 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe1e559da sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb31862d sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x324b7f55 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5e785ff5 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x80b3e3d7 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8713abf8 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8c159cf1 spi_attach_transport +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x02afbe1f qmi_txn_cancel +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0e2d7e72 qmi_send_response +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x0ef12cc9 qmi_encode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x21ce5888 qmi_response_type_v01_ei +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x43462f11 qmi_send_request +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x68772745 qmi_decode_message +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x803de2e0 qmi_txn_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0x85c9d637 qmi_add_server +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xd79e876d qmi_send_indication +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xd8f936c6 qmi_handle_release +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xf1620adf qmi_handle_init +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xf1d1ddbd qmi_txn_wait +EXPORT_SYMBOL drivers/soc/qcom/qmi_helpers 0xfbdc100f qmi_add_lookup +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x01b16a75 sdw_bus_master_add +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 0x2080f22f sdw_nwrite +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x21735ca6 sdw_bread_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x257f278d sdw_slave_add +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x2f442dbb sdw_stream_remove_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x32b216d7 sdw_read +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x39fd53a6 sdw_compare_devid +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3b0a8582 sdw_startup_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x3d44d6ea sdw_stream_add_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x4cde88bf sdw_disable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x51d2f604 sdw_write +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x60e31fbb sdw_find_col_index +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x67faa2cd sdw_master_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x6f95b16b sdw_shutdown_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x706455f2 sdw_bwrite_no_pm_unlocked +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x71891d59 sdw_deprepare_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7b9a2d29 sdw_update_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x7bf22dad sdw_update +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x97ef634d sdw_nread +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0x9e122d79 sdw_alloc_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xa5ed5992 sdw_extract_slave_id +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xac01332c sdw_bus_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb1c01ef0 sdw_clear_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb4bde4fa sdw_bus_exit_clk_stop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb6d5a07f sdw_stream_add_master +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb87df919 sdw_read_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xb95fd274 sdw_write_no_pm +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xba54b904 sdw_cols +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xbbec2c2e sdw_enable_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xc3cb7290 sdw_handle_slave_status +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xceb822b0 sdw_stream_remove_slave +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd0c74024 sdw_slave_read_prop +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xd5ad67a1 sdw_bus_master_delete +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xda5bce09 sdw_release_stream +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf53ba0b8 sdw_rows +EXPORT_SYMBOL drivers/soundwire/soundwire-bus 0xf8cdecde sdw_bus_prep_clk_stop +EXPORT_SYMBOL drivers/ssb/ssb 0x05f0f4d2 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x19183b89 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x2ab7f2a8 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x3ad363be ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x3c3e988c ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x5b483fa0 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x60a230aa ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x77290149 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x879a0e40 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x9935e71f ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x9ef3b6f1 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xa79b795f ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xb027a1ca ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xb99a0d98 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xba6a649c ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xbc1c68c5 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xbec26c1b __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcabcb247 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xcb17f1cb ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd7b045e3 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xdfc7c6ef ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe715c582 ssb_driver_unregister +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x04309bf5 fbtft_register_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x05d6dae9 fbtft_write_buf_dc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x0b6c6d03 fbtft_write_vmem16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x135d8abe fbtft_init_display +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x1462cee8 fbtft_write_gpio16_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x1ebe5316 fbtft_write_vmem8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x24afb29b fbtft_write_reg16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x305bde15 fbtft_register_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4328b117 fbtft_dbg_hex +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x4417e6b3 fbtft_probe_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x50236e9e fbtft_write_reg16_bus16 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x51281cf6 fbtft_write_gpio8_wr +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x57aac454 fbtft_unregister_backlight +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x70482742 fbtft_framebuffer_alloc +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x72523550 fbtft_write_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x7ec1fbe6 fbtft_write_vmem16_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x98099bf7 fbtft_write_spi_emulate_9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0x9d79e63d fbtft_unregister_framebuffer +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa32d301f fbtft_write_gpio16_wr_latched +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xa5ca448b fbtft_write_reg8_bus9 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xb5afb3e0 fbtft_write_reg8_bus8 +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xc4674f29 fbtft_read_spi +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xcde665f1 fbtft_remove_common +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xebb27789 fbtft_framebuffer_release +EXPORT_SYMBOL drivers/staging/fbtft/fbtft 0xf6382c73 fbtft_write_vmem16_bus9 +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x31b2e3f7 gbaudio_register_module +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0x7629e100 gbaudio_module_update +EXPORT_SYMBOL drivers/staging/greybus/gb-audio-codec 0xff744146 gbaudio_unregister_module +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xe54e00e7 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x258d5fe5 ade7854_probe +EXPORT_SYMBOL drivers/staging/media/av7110/sp8870 0xf31e6add sp8870_attach +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x00a10343 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x028be5d8 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x04b3b270 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x063e276f rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x152be9b7 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1aaf4cf6 rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1abb058c rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1e4b7b56 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22166084 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x25ce8fd8 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3f9b645d rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x41bfb883 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x44e8b29f rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4ac509f1 dot11d_channel_map +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5567b0c0 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5750c0c8 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5bb34259 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5bed79eb rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5d5096cc rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x61a0d65d rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6681e658 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x66dfddea rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6a5950e0 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6c32d4d4 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e169d29 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6e48a69b rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6fd13e07 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x76623556 rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x781b08a6 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7e944d4c rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x87f6a997 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x889ec4f5 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b12afbf rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x95a62a3a rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa279af32 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa299250c rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa5dc17f7 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xac1a1571 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xaf16d2d4 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb0e43c04 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbef24c17 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcbef28fe rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd6a576f5 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd6d80bbf free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd71c1944 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdfc83db1 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe1e1c911 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf014b72a rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf04a8c98 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf3f51fdf rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00fe14dc ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x027cff9e ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e2743e8 rtl8192u_dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x119ffef5 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x186cb628 dot11d_reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d66a0ff ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e59204e ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x207a0b6f ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20a7fe3e ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a0e9409 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2bad08d4 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d35cc7b SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2d7b5112 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x340d37cb ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x352c3f01 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x41c38e4a ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x43042f81 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x459de500 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49292a59 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4942b6d7 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4f943f0f ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50c13f62 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x54eb5653 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65aa933e ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65cf2e6b ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68bd4628 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c491251 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c5ac66d ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x70265edd ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x70e288f3 to_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7248ef1b ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x74d743b0 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a80f2f5 ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c3de7a3 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87a8aff8 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f9e1413 is_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x97825e25 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa71b2085 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa968107f ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab6bc47c notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xafdc0de3 dot11d_get_max_tx_pwr_in_dbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb09755c2 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb0fafedd ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2bc6202 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb588da0d ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc267f71f ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5832be9 dot11d_scan_complete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd5fa7bb ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd6fa607f dot11d_update_country_ie +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4e46898 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5b5e7cc ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe827b6ff ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xecc5fb1b ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef62eab6 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4de1c82 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x034d12e6 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x096307a7 iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0a1cebc7 iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0c2864a3 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0c67a90f iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1dcc7aaa iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2fcd6944 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x36e3648a iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3935bbc5 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x398a261f iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3a663639 iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3d7872b4 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4131fff7 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5a127fca iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5d5c14d8 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5dc9821a iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6b945ed0 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6d67dbfa iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7910e6cd iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x797b61da iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7eb2f1c8 iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x86700cca iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x88ad3d77 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8a0208a0 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8b4065e4 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8b89fadc iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8fee62e9 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9ad63ee6 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa0805f99 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa98c4787 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xaa1d0d96 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xabfd9df4 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc694edef iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc963183e iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcf1bd115 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xddfc44c5 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdf42c0bd iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe0b9c03b iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe826e48a iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe844d9c8 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xeff29ebb iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf1eb7deb iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf34332f0 iscsi_find_param_from_key +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf75ae8e1 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfa2a1e5b iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xff970e7b iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e4425c9 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e76ef2e transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e7e0b07 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x0f18c068 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x116ea9cb passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x1416f4a6 target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x1849f78f sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x18d2f29d target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x1a390929 target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x1bad755c transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c73ef86 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x22b2792b core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x23589714 __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3110cbf4 target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0x33e386df core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x36955722 target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3b7d2741 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3f6e6e87 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x40837c9e spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x43976637 target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x44c712ee target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x46055ef4 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x48b4e0b9 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x4ed6a2e5 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x518ad0e9 sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0x548eb705 target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e141d48 transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x5ecd63a6 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x62ebbd59 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x6b091805 target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x714c64ca spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7286c666 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x72a222bf target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x776baf64 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x7954192b transport_alloc_session_tags +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7d2b6f5f target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x7f02c03d core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fa582ff target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x83bf5808 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x860f068e target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x89de0643 target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x8b766231 transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x8fd6eb68 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x95143bb7 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9be9569e target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d5558fe transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x9de57001 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xa25a6e30 target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0xa5205bd1 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xa54417b3 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9e83ff2 target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xae9f2e80 target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xb30fd300 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0xb40b98c8 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xc899cf9f core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xcaa41c23 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0a60614 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xd997f1df passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0xd9fd36c7 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xdee4c965 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf5c8a3c target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xe379edad passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xe8b674e8 transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf038b8ef sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3fcc6a9 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf47f6383 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf502ff76 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf5634c18 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf856b70d target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc75f22c core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xfce0007a target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xfd326630 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xfe996462 sbc_get_device_type +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x0e3f851b ufshcd_shutdown +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x16fa3fe9 ufshcd_system_suspend +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x2ce5e034 ufshcd_runtime_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x96dac992 ufshcd_get_local_unipro_ver +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0x9beb9777 ufshcd_system_resume +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xbda1104d ufshcd_map_desc_id_to_length +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xbf96d98b ufshcd_alloc_host +EXPORT_SYMBOL drivers/ufs/core/ufshcd-core 0xf99821b4 ufshcd_runtime_suspend +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x2646e599 tc_dwc_g210_config_40_bit +EXPORT_SYMBOL drivers/ufs/host/tc-dwc-g210 0x4314abd8 tc_dwc_g210_config_20_bit +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x0971ad57 ufshcd_dwc_link_startup_notify +EXPORT_SYMBOL drivers/ufs/host/ufshcd-dwc 0x8dc0eac5 ufshcd_dwc_dme_set_attrs +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x7cbcc3ac usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/libcomposite 0x6fc10da0 usb_os_desc_prepare_interf_dir +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf883d5c4 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x07db268c usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0850a9ef usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2e7eddad usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x411382b2 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x882f22a6 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9824469e usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xac710789 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe7d12b43 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xead2e944 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf1c8dc1f usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf5a09867 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc884db99 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xdbaadeac usb_serial_resume +EXPORT_SYMBOL drivers/vdpa/vdpa 0x30a3e10f vdpa_set_status +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x1a2ef46c mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x4474e908 mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x9884691d mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xab012017 mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xb0b36bec mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xc8f68a75 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xce3a0aaa mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xe7d98ed4 mtype_get_type_group_id +EXPORT_SYMBOL drivers/vhost/vhost 0x790cb140 vhost_chr_poll +EXPORT_SYMBOL drivers/vhost/vhost 0xb80d422d vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vringh 0x03f16e62 vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x0498feb9 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x04fde01d vringh_notify_disable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x17958c34 vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1d3f5a75 vringh_complete_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x29f5fa0d vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0x33e11a49 vringh_init_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x3973a07c vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3d44657b vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0x42cb4111 vringh_abandon_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4a6c3df7 vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x4db86f30 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4fc577dc vringh_set_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0x5e661a87 vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x660779c8 vringh_kiov_advance +EXPORT_SYMBOL drivers/vhost/vringh 0x6769867f vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x91c18462 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xb0b57107 vringh_notify_enable_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc62aa61e vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc9d39032 vringh_iov_push_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xc9fb475c vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd9cd6edc vringh_iov_pull_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xe583840f vringh_need_notify_iotlb +EXPORT_SYMBOL drivers/vhost/vringh 0xe674e8b2 vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0xe7204e1a vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xea03b482 vringh_getdesc_iotlb +EXPORT_SYMBOL drivers/video/backlight/lcd 0x214bfcb0 devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x5e0d09ef devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x81cb907e lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xabc417e6 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 0x2f5851b0 svga_settile +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x382f0e67 svga_tilecopy +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x4e3e2e77 svga_tileblit +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x70495126 svga_tilecursor +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0x7d4610d5 svga_get_tilemax +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 0xc7bffede svga_tilefill +EXPORT_SYMBOL drivers/video/fbdev/core/svgalib 0xcce539b7 svga_get_caps +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/syscopyarea 0x651fb492 sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0xa9697f0c sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0xf3464994 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 0x88a68e6e cyber2000fb_attach +EXPORT_SYMBOL drivers/video/fbdev/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x4c04d5d1 g450_mnp2f +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x5112ad4e matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/fbdev/matrox/g450_pll 0x5b7cbea1 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x4d71ed0b DAC1064_global_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x53a6a872 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x71943ec3 matrox_mystique +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_DAC1064 0x7c93a4c0 matrox_G100 +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_Ti3026 0x726ac6f3 matrox_millennium +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_accel 0x20fdd092 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x468aa9bc matroxfb_register_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x4e3263ee matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x5ee11612 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_base 0x60ded2b1 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x0d4186a3 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_g450 0x7a44d1b6 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x5c249fe6 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x82fd71aa matroxfb_read_pins +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0x844a0ba2 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xa30aefdb matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xc4dda4a9 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/fbdev/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0x3037658e sis_malloc +EXPORT_SYMBOL drivers/video/fbdev/sis/sisfb 0xfe963115 sis_free +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x06d4cc94 virtio_dma_buf_export +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x3de0240d virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x54455bf9 is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xb6dc199f virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xc614ebee w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xdb112ee3 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x14ac9b68 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xf9e64b0e w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0x07230554 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x6060bd5f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x74586f49 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xd2e2a6d0 w1_add_master_device +EXPORT_SYMBOL fs/fscache/fscache 0x05d8256c __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x0b63182a __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x12d6c7f8 fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x160a324b fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x1a25cfa0 __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x2c15151f fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0x2cad5486 fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x2f902d39 fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x364cfd28 __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0x39674879 __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x40983ccf fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4c0e72bc fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0x6c5e41e7 __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x7242b6ac __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x840ef38f fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x84a66151 fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x8e676157 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x94e82d7a __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x9720f605 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9fb8f9cf fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0xa7a1016d fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0xaccbf5ec fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb0b51ac6 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xb1c8cdf8 __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb5aea310 fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc7cedcf4 __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcaf8cef6 __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0xd318338d __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xdf9ce41e __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe7e1994e fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xe896dd43 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0xe9355746 fscache_clearance_waiters +EXPORT_SYMBOL fs/fscache/fscache 0xfd9b86ec fscache_caching_failed +EXPORT_SYMBOL fs/netfs/netfs 0x1ec1107a netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0x20c671f1 netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0xb26f94d2 netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0xb3334cad netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0xe37294ce netfs_subreq_terminated +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x63f90be6 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x70bf97cd qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x824d873b qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x98708709 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xcd83d976 qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0xdea4f794 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 0x9c5d5b94 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/crypto/libchacha 0xcec122d7 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x147c3f2e chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x37b34b92 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x521c7102 xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x5b19e187 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xc20134e7 chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xce15a526 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0xbcb90cb3 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0xd45b9cf4 poly1305_core_setkey +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 0xbdfabafa 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 0xf4122685 lc_seq_dump_details +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 net/6lowpan/6lowpan 0x3d05af29 lowpan_unregister_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x6c51d559 lowpan_register_netdevice +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7141844d lowpan_unregister_netdev +EXPORT_SYMBOL net/6lowpan/6lowpan 0x7d6145c1 lowpan_nhc_del +EXPORT_SYMBOL net/6lowpan/6lowpan 0x986e1a6b lowpan_nhc_add +EXPORT_SYMBOL net/6lowpan/6lowpan 0xfcf10f3d lowpan_register_netdev +EXPORT_SYMBOL net/802/p8022 0x3704bc42 register_8022_client +EXPORT_SYMBOL net/802/p8022 0xd870e97e unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0xc6839b2d register_snap_client +EXPORT_SYMBOL net/802/psnap 0xe7b4cd4e unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x00408529 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x01432c70 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x18550189 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x1a450fa9 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x20846ba6 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x29a6e3d1 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x2cb088ae p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x3029d91f p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x322dfba1 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x354a3acc p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x37eccb1b p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x3b27a778 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x440f5846 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x4dcee8c7 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x54c65e16 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x5765190b p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x5e0ef89a p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x6f8d746b p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x7364119f p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7a76f984 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x8941ef43 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x8c644850 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x8cacebc8 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x8d3ef9be v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x984c5e73 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0xa0718408 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xa5b57df7 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa8c4564b p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xb52c6d6a p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xb79f25fd p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0xc18de9db p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc29fae81 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xcc815452 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xce00d612 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xd3e9dea5 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xd5a7e851 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdcbe6d3d p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0xe3e277a3 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xe41c40aa p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xe5f9d06e p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0xe973471d p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xece2dce3 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xf11ea939 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xf1efac14 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xf279584a v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xfd5611ab p9_client_clunk +EXPORT_SYMBOL net/appletalk/appletalk 0x55b744bd alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x825cc439 atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0xa451a6d3 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xcf3b2476 aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x209a5d67 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x229f2350 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x28f5f624 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 0x4560e58c atm_charge +EXPORT_SYMBOL net/atm/atm 0x4c7985ae deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4df31241 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x5aec50b9 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x69f621f0 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x98e4863a atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x9a7fa531 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0xd7603b75 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xf1b239bc register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfe2a07fc atm_dev_lookup +EXPORT_SYMBOL net/ax25/ax25 0x05c404b4 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x14cecd59 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x23c4ecce ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x42652039 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xaf939ac2 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd16bc20d ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe5755515 ax25_ip_xmit +EXPORT_SYMBOL net/ax25/ax25 0xea1c6e91 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xee02e420 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0xf1366f59 ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05d31c23 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0718b8b7 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1034b3b1 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x138b98a1 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18f79277 hci_cmd_sync_queue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d432ab0 hci_reset_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x214e4265 bt_warn +EXPORT_SYMBOL net/bluetooth/bluetooth 0x218761e1 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x28d1a72f bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d3a2956 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2db42f36 __hci_cmd_send +EXPORT_SYMBOL net/bluetooth/bluetooth 0x342bdcc2 __hci_cmd_sync_sk +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4300a3cc hci_mgmt_chan_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x442da3af hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4af6a9dc bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51de6eb4 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5c47f32c hci_mgmt_chan_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x60d565f9 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x69daa76a bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x76b032b5 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x780c253b __hci_cmd_sync_status_sk +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 0x7d65791e hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0x83bc6cd3 hci_alloc_dev_priv +EXPORT_SYMBOL net/bluetooth/bluetooth 0x88e2fadd hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89e7be78 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a2cb698 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x953913de hci_recv_diag +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9654f5b3 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a0d6691 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d0b7c38 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0fc650c bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1125d08 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa1651af6 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3bcd998 hci_set_fw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa495cbd2 hci_release_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa5d95ec0 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa9f33468 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa30c66e bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xafb88f18 hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb6509024 bt_sock_wait_ready +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc067bee9 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc543cbc1 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcddaf544 __hci_cmd_sync_status +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd07ac242 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd578650d bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd72284b6 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7613212 bt_err_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xda4da705 l2cap_chan_close +EXPORT_SYMBOL net/bluetooth/bluetooth 0xddacccf6 bt_warn_ratelimited +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe51faab5 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xefdc7c68 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf35f14ad bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6404b07 hci_set_hw_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfa6af3b6 hci_cmd_sync_cancel +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0b19e487 ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x59474223 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x72d9c543 ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x919eb135 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb0aa9b9d ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd239f1f4 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 0x3c5f2995 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 0x57ecc375 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 0xd1104ca8 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xedc2a330 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xf712b025 get_cfcnfg +EXPORT_SYMBOL net/can/can 0x03ce63f7 can_rx_register +EXPORT_SYMBOL net/can/can 0x0feb17c4 can_sock_destruct +EXPORT_SYMBOL net/can/can 0x36c8cb11 can_proto_unregister +EXPORT_SYMBOL net/can/can 0x77680d73 can_proto_register +EXPORT_SYMBOL net/can/can 0xb23be199 can_send +EXPORT_SYMBOL net/can/can 0xc9d0f1fa can_rx_unregister +EXPORT_SYMBOL net/ceph/libceph 0x05f1c50d ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0x0644629a ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x07dd4640 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x0a4c8416 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x11db5f9a ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0x12d99dfa ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x12f0d4c2 ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x15645ba6 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0x15bb4b0a ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x165b1948 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x177f8fee ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x18893d2b ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x19b95dcf ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x1c9b92ec ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0x1ee2146f ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x287eb154 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x2a983d26 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x2c10b43b ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x2d206fd7 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x2d6526a9 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x315c4f9f osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x381db6c6 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x3ac0ff52 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x3b01cf18 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3bb3da25 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x3fcf6b1f osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x417a9131 ceph_oloc_destroy +EXPORT_SYMBOL net/ceph/libceph 0x438b40e4 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x457002ee ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x47223877 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4cf4b0aa ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x50769530 ceph_osdc_notify_ack +EXPORT_SYMBOL net/ceph/libceph 0x53bde46a ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0x54bd7369 ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x554cb761 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x56c7cd0b ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x5c352e00 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x5cb1da17 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0x613736ff osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x65ef9c67 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x660def98 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x69cd6cc4 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6e620f24 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x6f730838 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0x7062e508 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x72835660 ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0x77465a42 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x77fdc385 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x784afb17 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x78b94866 ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x7a2162c2 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x7cbc4e08 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x7d684246 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0x7e574972 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x81a5f773 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x82e784a2 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x85c6adfe ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x8eb5009d ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0x8faaf4e6 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x8ff13dec osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x920ac24d ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x9540b073 ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x9600a3a6 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x9824dd4c ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x99354d39 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x9abb2c28 __ceph_open_session +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 0x9d2801e5 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x9eeb27a2 ceph_destroy_client +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 0xa393ec06 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0xa4018e52 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0xa41aeebd ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xa608bcab ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xa698f998 ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0xa856263b ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0xa8e621b7 ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0xaa42b145 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xad5a21f8 ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xad970e8a ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb107e1b8 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xb859e689 ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0xbb15675e ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0xbd2f79ae ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xbf31be5f ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0xc1e5934b ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xc314e299 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xc366bfa1 ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xc51590a5 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xc6e90fc0 ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0xc835f605 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xca116cb2 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0xcb56ca5f ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0xd6aa0be4 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd93da0cc ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xda883592 osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0xdbb59fcc osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xdf6ef4a1 ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0xdfc091f9 ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0xe022108c ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0xe76e7226 ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0xe79dc43c ceph_msg_data_add_pagelist +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 0xf0744a01 ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0xf120ef84 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xf2037f26 osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0xf21456e9 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0xf2370f24 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xf70fd025 osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0xf7707ed9 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0xfb167966 osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0xfbcef04c ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0xfc43ea8b osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xfca0169f ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xfd044e33 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xfea97cc6 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xff938147 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x8648fc2e dccp_req_err +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xa2ef53c2 dccp_syn_ack_timeout +EXPORT_SYMBOL net/hsr/hsr 0x8723cf19 hsr_get_version +EXPORT_SYMBOL net/hsr/hsr 0x93db8827 is_hsr_master +EXPORT_SYMBOL net/ieee802154/ieee802154 0x099bc5d8 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x45141a32 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x469218d4 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x91db945a wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe4ed2b0e wpan_phy_new +EXPORT_SYMBOL net/ieee802154/ieee802154 0xe77bdaee wpan_phy_find +EXPORT_SYMBOL net/ipv4/fou 0x1757d1a4 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x1c201b92 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xf13914b3 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0xf83d851a __gue_build_header +EXPORT_SYMBOL net/ipv4/gre 0xf1c0de93 gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x0cbf5f5e ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x2f3e502e ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x4a17070b ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xd94004a1 ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x390f2bd8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x625b512b arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x66aadf46 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdd69e30b arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x93702943 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa988eddc ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xcb7011e0 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xfe47ec05 ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/tunnel4 0x6322eb8d xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0x86e575b3 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/udp_tunnel 0x65e1680f udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x3d74c8e7 ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x465eea20 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x67b5c535 ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7cdc19df ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x80a6ad19 ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x8f47d066 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb19455f3 ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xb58be40f ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xf5294561 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x38b087e0 ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa3a7db4c ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc50c9f9a ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcdaa5a68 ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x9b866951 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0xa25b1fc7 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0e7545fd xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x21f5d45c xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/lapb/lapb 0x142695c4 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0x473913f3 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x7c0022f0 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xab6f6f88 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xb4555daf lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xbbeb5ada lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xbc6a9daa lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xf1b66dbb lapb_connect_request +EXPORT_SYMBOL net/llc/llc 0x114e27ae llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5d98cfbe llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x8335941a llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x97fc5d0b llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x9e90b71e llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xb13f6cce llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xd628264b llc_sap_open +EXPORT_SYMBOL net/mac80211/mac80211 0x00d873e1 ieee80211_schedule_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x04654371 ieee80211_txq_airtime_check +EXPORT_SYMBOL net/mac80211/mac80211 0x063f5308 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x077382cf ieee80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x079c4eff ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x098f960d ieee80211_nan_func_match +EXPORT_SYMBOL net/mac80211/mac80211 0x0b3edea2 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0x0cee32a0 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x0fe0739c ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x1392a3f5 ieee80211_sta_pspoll +EXPORT_SYMBOL net/mac80211/mac80211 0x17542c9f ieee80211_rx_ba_timer_expired +EXPORT_SYMBOL net/mac80211/mac80211 0x183dcd3b ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0x19f37f0d ieee80211_update_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x19fa59e3 ieee80211_txq_may_transmit +EXPORT_SYMBOL net/mac80211/mac80211 0x1a66fc17 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0x1d3be03b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x1f28fba2 ieee80211_beacon_get_template +EXPORT_SYMBOL net/mac80211/mac80211 0x20b2080b ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x21e6aeb9 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x25064b5e ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x36b98bdb ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3b3a6d7b ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x3ee8dc05 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x43b69e74 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x46a15419 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x47585c9f ieee80211_return_txq +EXPORT_SYMBOL net/mac80211/mac80211 0x49fa8b38 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x4f8cca3d ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x501d25f0 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x529f31a5 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x531ded7d ieee80211_txq_schedule_start +EXPORT_SYMBOL net/mac80211/mac80211 0x54b26e54 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x56ff8b48 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x57375063 ieee80211_reserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0x597a447f ieee80211_sta_register_airtime +EXPORT_SYMBOL net/mac80211/mac80211 0x5c58ccbb ieee80211_tx_status_8023 +EXPORT_SYMBOL net/mac80211/mac80211 0x5fe67beb ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x60ea3210 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x6166de83 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x669eac33 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x6777da73 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x6b7736d4 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x6beaf215 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x6f90eeda ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x7028084c ieee80211_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x7098cfb2 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x74055ce4 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x749fc80c ieee80211_alloc_hw_nm +EXPORT_SYMBOL net/mac80211/mac80211 0x77ed42cb ieee80211_tdls_oper_request +EXPORT_SYMBOL net/mac80211/mac80211 0x80b0f39d ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x823445b4 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x82f209ee ieee80211_get_unsol_bcast_probe_resp_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0x83f1531d ieee80211_tx_dequeue +EXPORT_SYMBOL net/mac80211/mac80211 0x86bcb609 ieee80211_channel_switch_disconnect +EXPORT_SYMBOL net/mac80211/mac80211 0x880945c4 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x8de014d6 ieee80211_manage_rx_ba_offl +EXPORT_SYMBOL net/mac80211/mac80211 0x8ecdbf32 ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x8fa73fda ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x91bbf397 ieee80211_rx_list +EXPORT_SYMBOL net/mac80211/mac80211 0x9518c9eb ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9594029b rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x976343a5 ieee80211_tx_status_ext +EXPORT_SYMBOL net/mac80211/mac80211 0x976beb04 ieee80211_tx_prepare_skb +EXPORT_SYMBOL net/mac80211/mac80211 0x97d948a7 ieee80211_beacon_cntdwn_is_complete +EXPORT_SYMBOL net/mac80211/mac80211 0x991a0ca0 ieee80211_parse_p2p_noa +EXPORT_SYMBOL net/mac80211/mac80211 0x9bba9a4c ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9c334555 ieee80211_mark_rx_ba_filtered_frames +EXPORT_SYMBOL net/mac80211/mac80211 0x9d7c8d2a ieee80211_txq_get_depth +EXPORT_SYMBOL net/mac80211/mac80211 0x9e4abefb ieee80211_get_fils_discovery_tmpl +EXPORT_SYMBOL net/mac80211/mac80211 0xa601e5af ieee80211_csa_finish +EXPORT_SYMBOL net/mac80211/mac80211 0xa8485ad5 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xa87f50c8 ieee80211_send_eosp_nullfunc +EXPORT_SYMBOL net/mac80211/mac80211 0xa9ac50c9 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xa9e0320a ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xaaca2f07 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xac6fe97f ieee80211_tx_rate_update +EXPORT_SYMBOL net/mac80211/mac80211 0xb41b24fe ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xbb3e7f9e ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xbbca3bb2 ieee80211_sta_uapsd_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xbf2a5088 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc067b355 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xc176352d ieee80211_next_txq +EXPORT_SYMBOL net/mac80211/mac80211 0xc9056bc2 ieee80211_beacon_set_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xcb8082f2 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xcd71da2b ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xcdbaa3a2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xd211bab4 ieee80211_beacon_update_cntdwn +EXPORT_SYMBOL net/mac80211/mac80211 0xda494202 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xdbb088c6 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xdf243c13 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xdfc93679 ieee80211_unreserve_tid +EXPORT_SYMBOL net/mac80211/mac80211 0xdfd15bdc ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe313e861 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0xe43d3f6a ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0xe46a2e41 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xe4b1f41d __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xe5752af3 ieee80211_get_bssid +EXPORT_SYMBOL net/mac80211/mac80211 0xe58c5f46 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xec29e727 ieee80211_iter_keys_rcu +EXPORT_SYMBOL net/mac80211/mac80211 0xed9d5214 ieee80211_nan_func_terminated +EXPORT_SYMBOL net/mac80211/mac80211 0xee7edbed ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xf1e7eb81 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xf556ff0b ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xfae5bc67 ieee80211_rx_napi +EXPORT_SYMBOL net/mac80211/mac80211 0xfcf1888b ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xff99197e ieee80211_send_bar +EXPORT_SYMBOL net/mac802154/mac802154 0x23f90620 ieee802154_register_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x53a1186f ieee802154_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x5dc0403c ieee802154_xmit_hw_error +EXPORT_SYMBOL net/mac802154/mac802154 0x65fda48c ieee802154_xmit_error +EXPORT_SYMBOL net/mac802154/mac802154 0x72eb3f41 ieee802154_xmit_complete +EXPORT_SYMBOL net/mac802154/mac802154 0x7f9d97e4 ieee802154_unregister_hw +EXPORT_SYMBOL net/mac802154/mac802154 0x97d2d016 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x9aa47989 ieee802154_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0xb43fa22e ieee802154_configure_durations +EXPORT_SYMBOL net/mac802154/mac802154 0xc1b793c9 ieee802154_alloc_hw +EXPORT_SYMBOL net/mac802154/mac802154 0xfea808e3 ieee802154_free_hw +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0095f60b unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0ed30a67 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x34c4962c register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3f89ed3c ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x46569e80 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4870b170 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x497ee07e register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ef93ba0 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6ed03f9c unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9df8fd72 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9e302427 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc4bb2733 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd11af664 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xeb0bdad1 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xed9919af register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9a52e1e8 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x126ecaba __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x17fb7b36 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x6780eedf nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xf96939ee nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nft_fib 0xb3c36947 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x3c48e1b3 xt_unregister_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 0x977fd4bf xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x9f3dfbc4 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xa25fc115 xt_compat_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xad887f6c xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0xae9a4750 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb8e738da xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xbd93caab xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xc716380a xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xcb0d99a3 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0xcb3e91cc xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0xd3e24eaf xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xd3f8ceea xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xd87ae60d xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset +EXPORT_SYMBOL net/nfc/hci/hci 0x037163fd nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x0dfba79c nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x18034b67 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x1f6b0af3 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x27fcf052 nfc_hci_reset_pipes +EXPORT_SYMBOL net/nfc/hci/hci 0x3028014f nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x3cc33454 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x3f97ca21 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x603ee586 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x604e5cd4 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x74fe3670 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0xad3180c6 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xb0c9334e nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xb86a0820 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xbb1a2688 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xcb70651a nfc_llc_stop +EXPORT_SYMBOL net/nfc/hci/hci 0xcceebf7d nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xd750a720 nfc_hci_reset_pipes_per_host +EXPORT_SYMBOL net/nfc/hci/hci 0xdbf11740 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xdd231c55 nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xe14c4bd1 nfc_llc_start +EXPORT_SYMBOL net/nfc/hci/hci 0xf88e467e nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xffd19a56 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x0a606a3f nci_nfcee_discover +EXPORT_SYMBOL net/nfc/nci/nci 0x169ee992 nci_core_conn_close +EXPORT_SYMBOL net/nfc/nci/nci 0x18c7e5d2 nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x271d1864 nci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x2fc43a82 nci_core_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x3bae3721 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0x3fa240d6 nci_core_reset +EXPORT_SYMBOL net/nfc/nci/nci 0x44cd5722 nci_send_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x4691006a nci_get_conn_info_by_dest_type_params +EXPORT_SYMBOL net/nfc/nci/nci 0x47fdd25f nci_hci_clear_all_pipes +EXPORT_SYMBOL net/nfc/nci/nci 0x499c7e8c nci_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x5543ab17 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x7a565004 nci_hci_dev_session_init +EXPORT_SYMBOL net/nfc/nci/nci 0x7e1af9b7 nci_nfcc_loopback +EXPORT_SYMBOL net/nfc/nci/nci 0x8d6befa4 nci_hci_set_param +EXPORT_SYMBOL net/nfc/nci/nci 0x965ef133 nci_nfcee_mode_set +EXPORT_SYMBOL net/nfc/nci/nci 0x9f76bc3e nci_conn_max_data_pkt_payload_size +EXPORT_SYMBOL net/nfc/nci/nci 0xa0ed80c7 nci_hci_send_event +EXPORT_SYMBOL net/nfc/nci/nci 0xa3837093 nci_send_data +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc37653e6 nci_core_conn_create +EXPORT_SYMBOL net/nfc/nci/nci 0xc9f00c24 nci_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0xd374fb31 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xd3f23b06 nci_set_config +EXPORT_SYMBOL net/nfc/nci/nci 0xd607c1b6 nci_hci_connect_gate +EXPORT_SYMBOL net/nfc/nci/nci 0xdc2bf451 nci_core_init +EXPORT_SYMBOL net/nfc/nci/nci 0xec1b43b2 nci_prop_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0xef4712ea nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xfafb8d44 nci_req_complete +EXPORT_SYMBOL net/nfc/nci/nci 0xfe2607a1 nci_hci_open_pipe +EXPORT_SYMBOL net/nfc/nfc 0x021cfb4a nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x18385001 __nfc_alloc_vendor_cmd_reply_skb +EXPORT_SYMBOL net/nfc/nfc 0x1bb3fba1 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x2aee85c7 nfc_send_to_raw_sock +EXPORT_SYMBOL net/nfc/nfc 0x2c5392ab nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x2d070ca3 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x3fac06ed nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x45002978 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x4b28fe2f nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x4e5362a9 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0x4f65b8fb nfc_vendor_cmd_reply +EXPORT_SYMBOL net/nfc/nfc 0x5dd0fb57 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x6bec3e1e nfc_se_connectivity +EXPORT_SYMBOL net/nfc/nfc 0x6c4696c5 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x723015a4 nfc_find_se +EXPORT_SYMBOL net/nfc/nfc 0x8269aba3 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x84a820ae nfc_se_transaction +EXPORT_SYMBOL net/nfc/nfc 0x976d6c1d nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x97d5694d nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xa1300a01 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xd14f16e2 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xde43c300 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xe2a843a0 nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xee053fe0 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0xf82eac30 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc_digital 0x1f733262 nfc_digital_register_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x324298ab nfc_digital_allocate_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x6407c439 nfc_digital_free_device +EXPORT_SYMBOL net/nfc/nfc_digital 0x76793e34 nfc_digital_unregister_device +EXPORT_SYMBOL net/phonet/phonet 0x164d32ff phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x19668192 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x1b5a112e pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x1fb5d21b pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x4b9fcfb9 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0x4eba2f91 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x73d4c6d4 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xc58dc37b phonet_proto_unregister +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1b351338 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1c2f3214 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x332f1e2f rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0x4706a1fb rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0x58ebdbf5 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x6feab815 rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x72c77145 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0x825d07eb rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x86c5cff0 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x91090a27 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x99468ac6 rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0xaf4029b9 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0xc6fa2023 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd7081dcf rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xe02afa5a rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0xe1b265eb rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0xe6aafcb2 rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0xeaa06902 rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/sctp/sctp 0x73f23e7e sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x1b1e06e1 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x4f4da0d2 __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x73dbc97e __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x8989d6ae __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x99bf1b00 __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xb3f2d173 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xb7432f37 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0xcd9701fe __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xe10f1fa2 __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xe7dacb8d __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xfb8cae0f __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x117be961 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x34594318 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xc38d1353 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x6c5526ed xdr_restrict_buflen +EXPORT_SYMBOL net/sunrpc/sunrpc 0xc1ba0e86 xdr_truncate_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0xf280a8b1 svc_pool_stats_open +EXPORT_SYMBOL net/tipc/tipc 0x26233ef9 tipc_dump_start +EXPORT_SYMBOL net/tipc/tipc 0x3258b140 tipc_nl_sk_walk +EXPORT_SYMBOL net/tipc/tipc 0x92f83215 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0xa7c05828 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tls/tls 0x551e289c tls_get_record +EXPORT_SYMBOL net/wireless/cfg80211 0x00b372f8 cfg80211_external_auth_request +EXPORT_SYMBOL net/wireless/cfg80211 0x0396151c cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x0552c081 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x06ca71fd cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0x0897fa80 ieee80211_data_to_8023_exthdr +EXPORT_SYMBOL net/wireless/cfg80211 0x0a55a455 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x0c02624c cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x0cc95bc2 ieee80211_s1g_channel_width +EXPORT_SYMBOL net/wireless/cfg80211 0x0d29c500 cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x117aca91 cfg80211_merge_profile +EXPORT_SYMBOL net/wireless/cfg80211 0x18328c8c cfg80211_abandon_assoc +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19614db9 wiphy_new_nm +EXPORT_SYMBOL net/wireless/cfg80211 0x197f0fbb cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1a58f6fe freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x1b5a3a7e cfg80211_sinfo_alloc_tid_stats +EXPORT_SYMBOL net/wireless/cfg80211 0x1ce2497f reg_query_regdb_wmm +EXPORT_SYMBOL net/wireless/cfg80211 0x24b19e57 wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x275269b3 ieee80211_ie_split_ric +EXPORT_SYMBOL net/wireless/cfg80211 0x275c97f0 cfg80211_get_ies_channel_number +EXPORT_SYMBOL net/wireless/cfg80211 0x27b18824 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x288fa0ee wdev_chandef +EXPORT_SYMBOL net/wireless/cfg80211 0x28b8b91f cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x29d0fa7f cfg80211_any_usable_channels +EXPORT_SYMBOL net/wireless/cfg80211 0x2bb667ba ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x2d60265a cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x30a583d1 __cfg80211_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x3643b80f ieee80211_chandef_to_operating_class +EXPORT_SYMBOL net/wireless/cfg80211 0x36a24adc __cfg80211_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x40b235e3 cfg80211_get_drvinfo +EXPORT_SYMBOL net/wireless/cfg80211 0x42155a16 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x429c0c31 ieee80211_bss_get_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x433ea21a regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x43afadee ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x43e92dff cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x46ff300c ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x491ed989 cfg80211_nan_func_terminated +EXPORT_SYMBOL net/wireless/cfg80211 0x4b40c151 cfg80211_check_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0x4bcf4385 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x4c1a0288 cfg80211_connect_done +EXPORT_SYMBOL net/wireless/cfg80211 0x4d888bc1 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0x54cfc86a cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x5578a850 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x5584448a ieee80211_channel_to_freq_khz +EXPORT_SYMBOL net/wireless/cfg80211 0x582bf1f4 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x60d9ab3c cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x61502ec3 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x6377b8b9 cfg80211_inform_bss_frame_data +EXPORT_SYMBOL net/wireless/cfg80211 0x63c0197f cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x64be7ffa wiphy_rfkill_set_hw_state_reason +EXPORT_SYMBOL net/wireless/cfg80211 0x64eb40ab cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x692036b6 cfg80211_tx_mgmt_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6b28aeba cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x6bedf402 ieee80211_freq_khz_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x6ea4ab81 cfg80211_rx_control_port +EXPORT_SYMBOL net/wireless/cfg80211 0x701616a5 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x73a00584 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x751fc518 cfg80211_bss_flush +EXPORT_SYMBOL net/wireless/cfg80211 0x764dfb31 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x77bd579d cfg80211_ch_switch_started_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x79b82a71 cfg80211_find_vendor_elem +EXPORT_SYMBOL net/wireless/cfg80211 0x7acb86ed ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0x7c3ac925 ieee80211_get_vht_max_nss +EXPORT_SYMBOL net/wireless/cfg80211 0x7c87dcb2 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fc71260 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x82238bb0 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x829a616c __cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x84ee4cb1 wiphy_read_of_freq_limits +EXPORT_SYMBOL net/wireless/cfg80211 0x898ba728 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x8ccbc769 cfg80211_register_netdevice +EXPORT_SYMBOL net/wireless/cfg80211 0x8ddf0032 cfg80211_cqm_beacon_loss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x8fa02936 cfg80211_free_nan_func +EXPORT_SYMBOL net/wireless/cfg80211 0x937e2b85 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x9393f6b4 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x93ac6d80 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x942d2109 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x946d7ba7 cfg80211_background_cac_abort +EXPORT_SYMBOL net/wireless/cfg80211 0x97b516c7 ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0x9c086357 cfg80211_stop_iface +EXPORT_SYMBOL net/wireless/cfg80211 0x9d6cba30 cfg80211_find_elem_match +EXPORT_SYMBOL net/wireless/cfg80211 0x9dee4dc9 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x9e6607b4 ieee80211_get_channel_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xa1858c6b cfg80211_del_sta_sinfo +EXPORT_SYMBOL net/wireless/cfg80211 0xa2cf2ed4 regulatory_pre_cac_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0xa552e8b9 cfg80211_bss_iter +EXPORT_SYMBOL net/wireless/cfg80211 0xa7424b2d cfg80211_inform_bss_data +EXPORT_SYMBOL net/wireless/cfg80211 0xa99342f4 cfg80211_chandef_dfs_required +EXPORT_SYMBOL net/wireless/cfg80211 0xa9bdcf09 cfg80211_reg_can_beacon_relax +EXPORT_SYMBOL net/wireless/cfg80211 0xaa99a8c2 cfg80211_bss_color_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xace0c4bd cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xadaf0824 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xafb94882 get_wiphy_regdom +EXPORT_SYMBOL net/wireless/cfg80211 0xb94515af cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xbaacf3cb cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xbc8b78d6 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0xbd6de00a cfg80211_control_port_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0xbdc95a59 cfg80211_rx_mgmt_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xbfdacade cfg80211_sta_opmode_change_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc3f127b8 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xc4b4fc27 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0xc723434f cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0xc7d24c8b regulatory_set_wiphy_regd_sync +EXPORT_SYMBOL net/wireless/cfg80211 0xc8932d1a cfg80211_iter_combinations +EXPORT_SYMBOL net/wireless/cfg80211 0xcc1a7c48 cfg80211_is_element_inherited +EXPORT_SYMBOL net/wireless/cfg80211 0xd0f03186 cfg80211_assoc_comeback +EXPORT_SYMBOL net/wireless/cfg80211 0xd1d5bc7d cfg80211_port_authorized +EXPORT_SYMBOL net/wireless/cfg80211 0xd5679c49 cfg80211_get_station +EXPORT_SYMBOL net/wireless/cfg80211 0xd56d55f3 ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xd64d0876 cfg80211_update_owe_info_event +EXPORT_SYMBOL net/wireless/cfg80211 0xd7be2b05 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xd97eaad4 cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xdba126c1 reg_initiator_name +EXPORT_SYMBOL net/wireless/cfg80211 0xdc63d321 cfg80211_iftype_allowed +EXPORT_SYMBOL net/wireless/cfg80211 0xdf9f0050 cfg80211_nan_match +EXPORT_SYMBOL net/wireless/cfg80211 0xe058a6d7 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0xe3896276 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xe6404395 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xebc4208d cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xf0483541 cfg80211_sched_scan_stopped_locked +EXPORT_SYMBOL net/wireless/cfg80211 0xf18d4c39 ieee80211_get_num_supported_channels +EXPORT_SYMBOL net/wireless/cfg80211 0xf22e6c83 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xf290b472 cfg80211_send_layer2_update +EXPORT_SYMBOL net/wireless/cfg80211 0xf40bc2f5 ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0xf5596d89 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0xf58f91ca cfg80211_report_obss_beacon_khz +EXPORT_SYMBOL net/wireless/cfg80211 0xf67aadbe regulatory_set_wiphy_regd +EXPORT_SYMBOL net/wireless/cfg80211 0xf8826fec cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xf8b930cd __cfg80211_send_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xfd08f469 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/lib80211 0x0531c950 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x0c10d8b9 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xe8e4eb5f lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xeeaec9e3 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xf4abbdd7 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0xfbead4a7 lib80211_register_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0x3bf19f6c ac97_bus_type +EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0x46580538 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 0x2d5699eb snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x320f8f31 snd_seq_kernel_client_enqueue +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 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 0xbd94e54f 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 0xf0b34c02 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 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 0xf912f0c8 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 0x3ef73e0f snd_virmidi_new +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 0x1d061c99 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0x1ffd21d8 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x208c73aa snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x221a1e51 snd_jack_add_new_kctl +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x30e936cc snd_mixer_oss_notify_callback +EXPORT_SYMBOL sound/core/snd 0x32351461 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x37ec6751 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x39e00517 snd_ctl_notify_one +EXPORT_SYMBOL sound/core/snd 0x400f9155 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x45f630ab snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x48d30122 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4fba50e0 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0x5d6e55b8 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x60785624 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x6156b450 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0x621aca9e snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x6463715d 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 0x80fc0f2f snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x858c6c23 snd_unregister_oss_device +EXPORT_SYMBOL sound/core/snd 0x87206058 snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0x8d0bd656 snd_card_new +EXPORT_SYMBOL sound/core/snd 0x8df3789f snd_oss_info_register +EXPORT_SYMBOL sound/core/snd 0x8e3ca366 snd_register_oss_device +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x92c52c00 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x94c1f70a snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x9ca01a41 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa08c28a0 snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xa69254f7 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xaa987f8a snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xafc89084 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0xb251a6d1 _snd_ctl_add_follower +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb9683eaa snd_jack_report +EXPORT_SYMBOL sound/core/snd 0xba89f381 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xbac6615d snd_register_device +EXPORT_SYMBOL sound/core/snd 0xbf962704 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xc5a6d10b release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0xca74b368 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0xcc6a729f snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0xcff2dc9d snd_device_new +EXPORT_SYMBOL sound/core/snd 0xd32f2725 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xd6e14f00 snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xd786ce7c snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0xe087ab70 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xe21e626a snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0xe7113f20 snd_component_add +EXPORT_SYMBOL sound/core/snd 0xea444bc4 snd_card_register +EXPORT_SYMBOL sound/core/snd 0xf5e34373 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0xf872d313 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xfc4a401a snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xfca3e051 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xfe004ae1 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-compress 0x58b51d11 snd_compr_malloc_pages +EXPORT_SYMBOL sound/core/snd-compress 0xb2359d58 snd_compr_free_pages +EXPORT_SYMBOL sound/core/snd-hwdep 0x07a2fe97 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 0x0e99f298 snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x0fc41f88 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x0fca0624 snd_dma_alloc_dir_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x11eba48e snd_pcm_create_iec958_consumer_hw_params +EXPORT_SYMBOL sound/core/snd-pcm 0x12edd9da snd_pcm_hw_constraint_mask64 +EXPORT_SYMBOL sound/core/snd-pcm 0x1342aad1 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x208a86ab snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x27624e8a snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x2be48d04 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x2c20b555 snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x2d0b7aba snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x2f0af131 snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x3355ce28 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x3955628c snd_sgbuf_get_page +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x44c5970d snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x48904b96 snd_pcm_hw_constraint_msbits +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 0x51a6171a snd_pcm_set_managed_buffer_all +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x534392fe snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x53a258c9 snd_dma_buffer_mmap +EXPORT_SYMBOL sound/core/snd-pcm 0x53aa9427 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x56423ad0 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x614adc85 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x6585babd snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x69255f54 snd_pcm_hw_limit_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x6e086556 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x6e896b8a snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x70d2cd25 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x742c944e snd_pcm_set_managed_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x774ca241 snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x7b4bb90e snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x83d96c6f snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x8531d507 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x90a21883 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9b5eae0a snd_pcm_hw_constraint_ranges +EXPORT_SYMBOL sound/core/snd-pcm 0xa4811818 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xaa50638a snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xac437f7b snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xbaef15b9 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xbe1b81e3 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xc3c848c7 snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xc89258ff snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0xda3ffae4 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-pcm 0xdd27fcfb __snd_pcm_lib_xfer +EXPORT_SYMBOL sound/core/snd-pcm 0xe1324b84 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0xe2dade1f snd_pcm_create_iec958_consumer +EXPORT_SYMBOL sound/core/snd-pcm 0xe31a21b1 snd_pcm_period_elapsed_under_stream_lock +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xeca2135c snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xef491ef8 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xf25a991d snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf9610d1d snd_sgbuf_get_addr +EXPORT_SYMBOL sound/core/snd-pcm 0xfe5ba0df snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-pcm 0xff798d76 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-rawmidi 0x06adffb1 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x15e2c8d9 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x22308ddd snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x29a54fbd snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x39778a00 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4c413df1 snd_rawmidi_proceed +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4f3bccdf snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5edda66b snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x67e655a4 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x69a344c3 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8e3f3994 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa4d9f058 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa6962efa snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa9e1df9a snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb69b4e3b snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbacd5640 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdb0e467f snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xec8c02c3 __snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf2eea791 __snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfd7c76c8 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-seq-device 0x091def1c snd_seq_autoload_exit +EXPORT_SYMBOL sound/core/snd-seq-device 0x306ba57b 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 0x10a90134 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x42a79a11 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x48dea819 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x49382d1b snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x565aaeac snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0x5c5d92bf snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x7c92ae9e snd_timer_instance_new +EXPORT_SYMBOL sound/core/snd-timer 0x94f4dc23 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xa447497d snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xaa837c37 snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0xbc99b8bf snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0xbd12f8fe snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xc5c28011 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0xdea017b4 snd_timer_instance_free +EXPORT_SYMBOL sound/core/snd-timer 0xe3aa5ffa snd_timer_notify +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 0xc866935a snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x01437937 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1a482107 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x284f8a6b snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x44f95a41 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7da010ec snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x92afba2f snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcfc6fa2a snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf44485e1 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfc737cf7 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x226138b0 snd_vx_threaded_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x44d5c40f snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5793d829 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x59b3678a snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5e1491b4 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x80ad9482 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9249cc02 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9cbbfc89 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa45e187a snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe7aeadbe snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x041c3580 cmp_connection_release +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0581b913 amdtp_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x20254e45 amdtp_syt_intervals +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x23bbf535 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x28591566 amdtp_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x33af3733 cmp_connection_reserve +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x37b505b3 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4863ef4e avc_general_set_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4d328041 amdtp_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x53ca18e8 amdtp_rate_table +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x55b331d3 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5c27cae1 amdtp_stream_set_parameters +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5dd11d62 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5e4c5748 avc_general_get_plug_info +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x64c0bee2 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x88ddb2c5 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x89957464 amdtp_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x8d217a68 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x94e36ac3 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa46ae6ca avc_general_get_sig_fmt +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbb91b25a amdtp_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbe27a373 amdtp_stream_add_pcm_hw_constraints +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc0a70574 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc2fad461 amdtp_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcb8f4a96 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd0e607e2 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd2050e3b cmp_connection_check_used +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd8fb67d5 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd9666803 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe47c60a2 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xfd84a190 cmp_connection_establish +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0xbd8b5594 snd_ak4113_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4113 0xc0c7ef54 snd_ak4113_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0aa60597 snd_ak4114_resume +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x28d8af45 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3dd6b8f9 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x69ae3f91 snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x7dbf3b86 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xaa643177 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb382031a snd_ak4114_suspend +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xd229596c snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x16781c58 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x16878374 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x38f53ea1 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x73d51f71 snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd7890b42 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xe6c96b0b snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f65020e snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x30b48a8d snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3bd7e4f2 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x9308fa5e snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xa6d3c3d7 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc192028a snd_i2c_device_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0b69cec3 snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x110c5284 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1820a6ba snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x61484f41 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x72e9dd56 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x831fc29e snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x84471b0b snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x87e3847d snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8d1d2987 snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc6e4b986 snd_sbdsp_create +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x036c600e snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0ee389c6 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12666a47 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3e653175 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3e888255 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3f201d7d snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x482a4613 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5a0b5e5e snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8146550c snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa17e7444 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xad3f1511 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbe05d933 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbf19c8cc snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd4f58967 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd7706678 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdda24f8f snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf8085118 snd_ac97_read +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x889a3afb snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd3c2307a snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xe44b54f5 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0988bc83 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3ba8c6d2 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4f3b33a2 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x53d9e059 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5e8eedb8 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6d735aac oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x6e4e1b4c oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x74509221 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x76babf7e oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7f558ec6 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x83cb6738 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8665b742 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x94c0f752 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa41bd4ae oxygen_update_dac_routing +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb21203b5 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc6e9c17b oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcc84bdd2 oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd506af4f oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef2421d6 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf6a5302f oxygen_reset_uart +EXPORT_SYMBOL sound/soc/amd/acp_audio_dma 0xf2cc2cce acp_bt_uart_enable +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0x4339623d snd_soc_acpi_amd_sof_machines +EXPORT_SYMBOL sound/soc/amd/snd-acp-config 0xcfd6a678 snd_amd_acp_find_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-adau1372 0xe9787d4e adau1372_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-lpass-wsa-macro 0x4dd5a25f wsa_macro_set_spkr_mode +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0x11f9b3d2 pcm3060_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-pcm3060 0xc838fefd pcm3060_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-rt715 0xed2acb24 hda_to_sdw +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0x0da29e8a tlv320aic23_regmap +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic23 0xc7986c98 tlv320aic23_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x201d2f02 aic32x4_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0x26610877 aic32x4_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic32x4 0xd0c7ea00 aic32x4_regmap_config +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x0933bb52 aic3x_remove +EXPORT_SYMBOL sound/soc/codecs/snd-soc-tlv320aic3x 0x4f5b85f6 aic3x_probe +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x3a195ca9 wcd_mbhc_get_impedance +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0x789ebe56 wcd_mbhc_set_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xa5758a49 wcd_mbhc_get_hph_type +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xae8ff9e4 wcd_mbhc_start +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xbd1487ab wcd_mbhc_init +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xc77d3b9e wcd_dt_parse_mbhc_data +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xd094df47 wcd_mbhc_deinit +EXPORT_SYMBOL sound/soc/codecs/snd-soc-wcd-mbhc 0xe2beca26 wcd_mbhc_stop +EXPORT_SYMBOL sound/soc/snd-soc-core 0x7c11f506 snd_soc_alloc_ac97_component +EXPORT_SYMBOL sound/soundcore 0x401cf111 register_sound_special +EXPORT_SYMBOL sound/soundcore 0x7afc9d8a unregister_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x8d468526 register_sound_mixer +EXPORT_SYMBOL sound/soundcore 0x99c95fa5 unregister_sound_special +EXPORT_SYMBOL sound/soundcore 0xa282d598 sound_class +EXPORT_SYMBOL sound/soundcore 0xc7202b9d register_sound_special_device +EXPORT_SYMBOL sound/soundcore 0xcd083b10 unregister_sound_dsp +EXPORT_SYMBOL sound/soundcore 0xe1fa5ceb register_sound_dsp +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x0b868d8e __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 vmlinux 0x00148653 vsnprintf +EXPORT_SYMBOL vmlinux 0x0026fb75 agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x002ce4b2 tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0x003a7a96 h_ipi_redirect +EXPORT_SYMBOL vmlinux 0x0042156a cad_pid +EXPORT_SYMBOL vmlinux 0x00567504 simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x00582525 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x005f1c7a trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x0064ea87 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x008ad430 phy_get_pause +EXPORT_SYMBOL vmlinux 0x008e6b30 sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x009249fe gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x00b0e53d ptp_clock_register +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00ba68ae tcp_seq_start +EXPORT_SYMBOL vmlinux 0x00c97b36 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x00d7e722 vme_lm_count +EXPORT_SYMBOL vmlinux 0x00d91814 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x00dd0905 __folio_alloc +EXPORT_SYMBOL vmlinux 0x00fdcff7 rtnl_notify +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x010786ee netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x0109b73a send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x01156ae4 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x0129c4f8 par_io_data_set +EXPORT_SYMBOL vmlinux 0x013ad8e4 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x0140c525 gen_pool_create +EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x01553c5e input_free_device +EXPORT_SYMBOL vmlinux 0x015f789a flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0x015fc29b pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x016e6038 tcp_time_wait +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 0x018fbf38 of_parse_phandle_with_args_map +EXPORT_SYMBOL vmlinux 0x01982074 xa_set_mark +EXPORT_SYMBOL vmlinux 0x01998768 dquot_get_next_id +EXPORT_SYMBOL vmlinux 0x01a2b4b6 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01d2c14f netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0x01d899d0 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x01e71c07 vfs_unlink +EXPORT_SYMBOL vmlinux 0x01e80408 timer_interrupt +EXPORT_SYMBOL vmlinux 0x01ef2443 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x01fa3d08 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x01fcce75 mmc_gpio_set_cd_isr +EXPORT_SYMBOL vmlinux 0x0200b110 pps_register_source +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x021c813b ip_output +EXPORT_SYMBOL vmlinux 0x021f1f3d mmc_gpio_set_cd_wake +EXPORT_SYMBOL vmlinux 0x0228925f iowrite64_hi_lo +EXPORT_SYMBOL vmlinux 0x023873b3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x02450bec import_iovec +EXPORT_SYMBOL vmlinux 0x0248efd3 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0x024e21fc unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x0253e14d inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0x025c1602 __debugger_sstep +EXPORT_SYMBOL vmlinux 0x0263957a tcf_idr_search +EXPORT_SYMBOL vmlinux 0x026491ab xfrm_state_update +EXPORT_SYMBOL vmlinux 0x0265f843 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02872f1a blk_start_plug +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x029fcfb3 abort_creds +EXPORT_SYMBOL vmlinux 0x02b3a92d try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x02b8ab42 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x02c065f8 ucc_set_qe_mux_mii_mng +EXPORT_SYMBOL vmlinux 0x02c07b3d d_lookup +EXPORT_SYMBOL vmlinux 0x02c3c40e __debugger_break_match +EXPORT_SYMBOL vmlinux 0x02df50b0 jiffies +EXPORT_SYMBOL vmlinux 0x02ec1e6e tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0x02f42467 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x030d8e61 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033aebc5 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x0356070e pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036e4f32 tcp_mmap +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03815f35 ledtrig_disk_activity +EXPORT_SYMBOL vmlinux 0x038ef90d skb_push +EXPORT_SYMBOL vmlinux 0x0394f236 __skb_get_hash +EXPORT_SYMBOL vmlinux 0x03974f8f fget_raw +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x03aa8962 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x03adbe17 unregister_binfmt +EXPORT_SYMBOL vmlinux 0x03c3e356 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0x03d0f88d i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040aed17 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0x040ca17d input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x040ebc44 param_ops_ullong +EXPORT_SYMBOL vmlinux 0x043022a5 fiemap_prep +EXPORT_SYMBOL vmlinux 0x04336822 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x043733e8 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045fe883 xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x0474520b seq_vprintf +EXPORT_SYMBOL vmlinux 0x0474edef kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x047f1d15 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x0482d356 tty_devnum +EXPORT_SYMBOL vmlinux 0x04863e28 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x0489ab0c _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x048edead key_type_keyring +EXPORT_SYMBOL vmlinux 0x049fe87a __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x04b8da8e xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x04c7fa32 set_page_writeback +EXPORT_SYMBOL vmlinux 0x04d5239a follow_up +EXPORT_SYMBOL vmlinux 0x04da034e _dev_warn +EXPORT_SYMBOL vmlinux 0x04e1b263 ns_capable_setid +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04f158be cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x0536f84d scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x0585fe2c inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x05930ee8 skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x05980d0e redraw_screen +EXPORT_SYMBOL vmlinux 0x05af46ad disk_stack_limits +EXPORT_SYMBOL vmlinux 0x05ca290a dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x05d0f521 inet6_release +EXPORT_SYMBOL vmlinux 0x05d84fcc sk_alloc +EXPORT_SYMBOL vmlinux 0x05fae0fb mipi_dsi_dcs_nop +EXPORT_SYMBOL vmlinux 0x06024b59 inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x06093a08 dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063f4ec9 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0x063fbb83 ns_capable +EXPORT_SYMBOL vmlinux 0x0649c047 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x06836f60 blackhole_netdev +EXPORT_SYMBOL vmlinux 0x06998096 phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x06a86bc1 iowrite16 +EXPORT_SYMBOL vmlinux 0x06b740e1 tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0x06bd5c5e pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06f677c3 _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x072f901c vme_master_rmw +EXPORT_SYMBOL vmlinux 0x073683cc security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0x073fec1f pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x0755077f kobject_add +EXPORT_SYMBOL vmlinux 0x075d6d1b genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x07794638 generic_write_end +EXPORT_SYMBOL vmlinux 0x07907f75 skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x07a2ecd8 pci_match_id +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b52770 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x07ba42d5 configfs_depend_item +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d39764 blk_put_queue +EXPORT_SYMBOL vmlinux 0x07d54ef5 tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0x07f4a932 ptp_schedule_worker +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x07ff6866 page_readlink +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0801c386 get_phy_device +EXPORT_SYMBOL vmlinux 0x08044d51 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x08249512 iwe_stream_add_point +EXPORT_SYMBOL vmlinux 0x0825ad6b netdev_printk +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083c2e4b xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08500164 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x08584889 rproc_elf_find_loaded_rsc_table +EXPORT_SYMBOL vmlinux 0x0868f0f7 param_get_hexint +EXPORT_SYMBOL vmlinux 0x086a3879 vme_bus_error_handler +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x08986a95 of_graph_get_port_by_id +EXPORT_SYMBOL vmlinux 0x08a0e189 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x08a8dedf user_revoke +EXPORT_SYMBOL vmlinux 0x08aa9463 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x08bab7f0 simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x08cb90f8 mpage_readahead +EXPORT_SYMBOL vmlinux 0x0909e14a device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x090fe48a tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x0926bf70 send_sig_info +EXPORT_SYMBOL vmlinux 0x093290f0 scsi_host_busy +EXPORT_SYMBOL vmlinux 0x094248c4 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x0944f7f0 phy_modify_paged +EXPORT_SYMBOL vmlinux 0x096a7e99 mutex_lock +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098dbf07 nd_pfn_probe +EXPORT_SYMBOL vmlinux 0x0993cc73 init_net +EXPORT_SYMBOL vmlinux 0x0998cc3c hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x09aa5195 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x09cf6156 vio_enable_interrupts +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09eb3137 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0x09ef85f9 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x09f0f8bf xfrm_register_km +EXPORT_SYMBOL vmlinux 0x09f3848d tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x0a19dfbb rproc_put +EXPORT_SYMBOL vmlinux 0x0a1e8769 utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x0a245f81 pci_set_master +EXPORT_SYMBOL vmlinux 0x0a587710 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x0a595042 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x0a65c386 mroute6_is_socket +EXPORT_SYMBOL vmlinux 0x0a692b33 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7a255f agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x0a849b72 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x0a84b15d zstd_init_cctx +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aa55bf7 unregister_console +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad37359 fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0x0af35905 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x0b00ddf0 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0x0b02f9d4 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x0b0f865c setattr_prepare +EXPORT_SYMBOL vmlinux 0x0b148bf8 input_event +EXPORT_SYMBOL vmlinux 0x0b19b445 ioread8 +EXPORT_SYMBOL vmlinux 0x0b19bea7 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x0b1acd42 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2588a6 i2c_transfer +EXPORT_SYMBOL vmlinux 0x0b28e38f page_pool_destroy +EXPORT_SYMBOL vmlinux 0x0b2e1ec7 h_get_mpp +EXPORT_SYMBOL vmlinux 0x0b3709cd thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x0b472d7d twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x0b5f7981 iov_iter_zero +EXPORT_SYMBOL vmlinux 0x0b5fe4c3 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b784bf0 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0x0b7d2cf1 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x0b80e2b4 inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x0b8a6338 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x0b979933 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0badd716 mac_find_mode +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bf0e4a2 __SCK__tp_func_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x0bf36885 do_wait_intr +EXPORT_SYMBOL vmlinux 0x0bfc1d1a check_zeroed_user +EXPORT_SYMBOL vmlinux 0x0c1ea06f giveup_altivec +EXPORT_SYMBOL vmlinux 0x0c1ed75f vme_dma_list_exec +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c2e9af6 devm_clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x0c3119fc __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x0c362bf9 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x0c3c9163 seq_path +EXPORT_SYMBOL vmlinux 0x0c642728 __find_get_block +EXPORT_SYMBOL vmlinux 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL vmlinux 0x0c7c4686 netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0x0c7da106 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cb12092 xa_destroy +EXPORT_SYMBOL vmlinux 0x0cc4b4b6 crc_ccitt_false +EXPORT_SYMBOL vmlinux 0x0ccdd716 nd_btt_version +EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x0cdb8b7a PageMovable +EXPORT_SYMBOL vmlinux 0x0cdce87c rfkill_set_hw_state_reason +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0ce22ff3 fwnode_iomap +EXPORT_SYMBOL vmlinux 0x0cf5b2cc iget_locked +EXPORT_SYMBOL vmlinux 0x0cf98ca0 __xa_alloc +EXPORT_SYMBOL vmlinux 0x0cfcef94 dquot_drop +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d07fd06 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x0d093744 iterate_fd +EXPORT_SYMBOL vmlinux 0x0d0a5789 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x0d112874 configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x0d2ca20f ucc_fast_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0x0d327ed5 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x0d333b64 zstd_end_stream +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d556363 phy_detach +EXPORT_SYMBOL vmlinux 0x0d6a9f24 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x0d709f41 sock_edemux +EXPORT_SYMBOL vmlinux 0x0d7e482c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x0dac3188 page_pool_release_page +EXPORT_SYMBOL vmlinux 0x0dce0329 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e4262c6 __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x0e4b13fa gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x0e54b0b5 of_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x0e7ca516 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x0e8a02dd wait_for_key_construction +EXPORT_SYMBOL vmlinux 0x0e9e05d6 make_kprojid +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ec5babe vme_dma_free +EXPORT_SYMBOL vmlinux 0x0ecd28ec nf_reinject +EXPORT_SYMBOL vmlinux 0x0eddd4ac pcim_enable_device +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f15e0f7 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f1b59a7 padata_alloc +EXPORT_SYMBOL vmlinux 0x0f233a11 netlink_capable +EXPORT_SYMBOL vmlinux 0x0f37dc0f devm_extcon_register_notifier +EXPORT_SYMBOL vmlinux 0x0f4cba5b __bforget +EXPORT_SYMBOL vmlinux 0x0f65b93e folio_write_one +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f89ce1c dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x0f8e4651 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x0f9f5980 sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0x0fa1f800 set_anon_super +EXPORT_SYMBOL vmlinux 0x0fab1ab0 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fe12689 xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x0ff156f2 phy_register_fixup +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x1002e47f ilookup5 +EXPORT_SYMBOL vmlinux 0x1002ee81 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x1009f77a xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0x1025009a cpm_muram_alloc_fixed +EXPORT_SYMBOL vmlinux 0x102936ec qe_clock_source +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x10391eb7 show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x103afee8 phy_init_eee +EXPORT_SYMBOL vmlinux 0x103bbe94 kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x104d4d56 tty_register_driver +EXPORT_SYMBOL vmlinux 0x1050c880 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x1057a279 bsearch +EXPORT_SYMBOL vmlinux 0x105b4da6 devm_release_resource +EXPORT_SYMBOL vmlinux 0x1061eff5 to_nd_btt +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x106d4194 __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x10794259 mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x108495a0 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x10a996f6 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x10b41e1c free_task +EXPORT_SYMBOL vmlinux 0x10cbbf4d folio_mark_dirty +EXPORT_SYMBOL vmlinux 0x10d96c64 crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10df44f3 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x10e0f124 __pud_index_size +EXPORT_SYMBOL vmlinux 0x10e3de4a sock_pfree +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11107ab0 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x1111410d tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x111fa7c9 qe_pin_set_dedicated +EXPORT_SYMBOL vmlinux 0x1128b2ce netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x112e5f0c dev_uc_sync +EXPORT_SYMBOL vmlinux 0x11375103 dma_fence_array_next +EXPORT_SYMBOL vmlinux 0x1149845a param_set_int +EXPORT_SYMBOL vmlinux 0x114a7981 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x114d0e47 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0x115a2a06 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x115f74f0 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x116627c9 ioremap_prot +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x1182d83a cpuidle_disable +EXPORT_SYMBOL vmlinux 0x1193b513 zpool_register_driver +EXPORT_SYMBOL vmlinux 0x119ef1f0 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x11b5409e __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x11c872bd pnv_cxl_release_hwirqs +EXPORT_SYMBOL vmlinux 0x11cb57cb __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x11d189b1 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11f1c7e6 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x11ffdfee ucc_slow_stop_tx +EXPORT_SYMBOL vmlinux 0x11fff7ef pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0x12023434 ps2_end_command +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1213b196 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x1217208d register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x124b9cdf reuseport_alloc +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x1272f11f inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x12769d3b fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12cc6b3e do_clone_file_range +EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x1300b120 md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x1310df14 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x13110126 request_resource +EXPORT_SYMBOL vmlinux 0x13239368 fsl_lbc_ctrl_dev +EXPORT_SYMBOL vmlinux 0x13243d4b wl1251_get_platform_data +EXPORT_SYMBOL vmlinux 0x133eed38 gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x138da35f mipi_dsi_driver_unregister +EXPORT_SYMBOL vmlinux 0x138eb107 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x139acc04 dquot_commit_info +EXPORT_SYMBOL vmlinux 0x139f2189 __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x13b41558 fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x13bebc35 ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x13c49cc2 _copy_from_user +EXPORT_SYMBOL vmlinux 0x13c4a0bb vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d0b9da ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x13d62d78 inet_ioctl +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13db49aa vme_dma_list_free +EXPORT_SYMBOL vmlinux 0x13e1b2d5 current_stack_frame +EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize +EXPORT_SYMBOL vmlinux 0x13f855f5 ps2_drain +EXPORT_SYMBOL vmlinux 0x1400819d ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x140716d2 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x142076a8 rproc_of_resm_mem_entry_init +EXPORT_SYMBOL vmlinux 0x1421c978 __icmp_send +EXPORT_SYMBOL vmlinux 0x14223235 mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x142a4345 mipi_dsi_generic_read +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x147e0857 gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x1483e079 devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0x14a233b8 mmc_can_gpio_cd +EXPORT_SYMBOL vmlinux 0x14a2b413 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x14aa521a ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x14bb5457 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14cd86f3 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x14d1a0c7 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x14f32705 kernel_listen +EXPORT_SYMBOL vmlinux 0x14f364b3 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x14f44c33 key_revoke +EXPORT_SYMBOL vmlinux 0x14f702ff ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0x14fd6455 _dev_alert +EXPORT_SYMBOL vmlinux 0x1508f196 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x15094193 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x150cd259 sget_fc +EXPORT_SYMBOL vmlinux 0x151ad90b get_user_pages +EXPORT_SYMBOL vmlinux 0x151ba4d0 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x153529b6 seq_printf +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x156dfce4 dquot_get_state +EXPORT_SYMBOL vmlinux 0x15b13bd1 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x15b5f1a6 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x15b7a7c8 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bb200e cpufreq_generic_suspend +EXPORT_SYMBOL vmlinux 0x15bc6438 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x15c04719 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x15c0c3f9 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x15c8baff inode_set_flags +EXPORT_SYMBOL vmlinux 0x15ddcade filemap_map_pages +EXPORT_SYMBOL vmlinux 0x15ded713 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x15f89461 pci_find_hose_for_OF_device +EXPORT_SYMBOL vmlinux 0x15f90688 slhc_init +EXPORT_SYMBOL vmlinux 0x1604ab16 netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token +EXPORT_SYMBOL vmlinux 0x160e84be mmc_retune_pause +EXPORT_SYMBOL vmlinux 0x161d1bcf pci_request_irq +EXPORT_SYMBOL vmlinux 0x1626b868 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x16286538 iowrite64be_lo_hi +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x16713f04 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x1677d801 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167eb7c8 phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0x169938c1 __sysfs_match_string +EXPORT_SYMBOL vmlinux 0x16a644c2 __serio_register_port +EXPORT_SYMBOL vmlinux 0x16c24737 fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x16c9e19e generic_copy_file_range +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16e42679 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x17151ff2 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x17216ade proc_create +EXPORT_SYMBOL vmlinux 0x1723391e xfrm_state_add +EXPORT_SYMBOL vmlinux 0x172c33c9 blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x1731aa1c devm_iounmap +EXPORT_SYMBOL vmlinux 0x1731bd53 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x175e5632 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x17604ded set_page_dirty +EXPORT_SYMBOL vmlinux 0x17615fe1 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock +EXPORT_SYMBOL vmlinux 0x17693b4a __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x1776478a dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x1779dbe2 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x1786390d sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x178942c1 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x178c4894 qe_upload_firmware +EXPORT_SYMBOL vmlinux 0x179a9921 security_path_rename +EXPORT_SYMBOL vmlinux 0x17aaced3 import_single_range +EXPORT_SYMBOL vmlinux 0x17adad57 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x17b0e3cb dev_get_stats +EXPORT_SYMBOL vmlinux 0x17c21d36 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x17e2c256 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x17ef3544 swake_up_one +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17f7a63f tty_unthrottle +EXPORT_SYMBOL vmlinux 0x181756a9 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x18176af4 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x18238f7d netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x18255c0d __init_rwsem +EXPORT_SYMBOL vmlinux 0x1828aa95 sg_miter_skip +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x184fe001 sock_no_getname +EXPORT_SYMBOL vmlinux 0x186d7188 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x187884a8 cpm_muram_free +EXPORT_SYMBOL vmlinux 0x187a362f request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x18827e78 netif_tx_unlock +EXPORT_SYMBOL vmlinux 0x18867d2b rproc_boot +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x18952df7 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x18964881 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x18a17f84 tty_vhangup +EXPORT_SYMBOL vmlinux 0x18a8de0c key_reject_and_link +EXPORT_SYMBOL vmlinux 0x18ba1795 pci_clear_master +EXPORT_SYMBOL vmlinux 0x18c7e572 uart_register_driver +EXPORT_SYMBOL vmlinux 0x18dcd954 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x18f67049 filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0x18fef596 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x190d3398 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x190ee910 of_find_node_opts_by_path +EXPORT_SYMBOL vmlinux 0x1919ba64 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x191b02ca dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x19203075 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x1933f96a vme_unregister_bridge +EXPORT_SYMBOL vmlinux 0x193e3c2e tty_port_open +EXPORT_SYMBOL vmlinux 0x193ea0af vio_unregister_device +EXPORT_SYMBOL vmlinux 0x193f3011 d_move +EXPORT_SYMBOL vmlinux 0x19567d06 vfio_info_cap_shift +EXPORT_SYMBOL vmlinux 0x196a5a99 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19b16b34 up_read +EXPORT_SYMBOL vmlinux 0x19b60e7c pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c2a821 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x19ce07f6 vga_client_register +EXPORT_SYMBOL vmlinux 0x19d2f2ae phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0x19d68628 xa_get_mark +EXPORT_SYMBOL vmlinux 0x1a215caf napi_get_frags +EXPORT_SYMBOL vmlinux 0x1a2b9307 netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x1a2bccf2 netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x1a2e4ea1 seq_read_iter +EXPORT_SYMBOL vmlinux 0x1a374ad7 unlock_rename +EXPORT_SYMBOL vmlinux 0x1a398119 config_item_set_name +EXPORT_SYMBOL vmlinux 0x1a4e1be1 neigh_xmit +EXPORT_SYMBOL vmlinux 0x1a5407f4 tcf_classify +EXPORT_SYMBOL vmlinux 0x1a583453 set_bh_page +EXPORT_SYMBOL vmlinux 0x1a5c15fa netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x1a6167bf input_set_poll_interval +EXPORT_SYMBOL vmlinux 0x1a764564 simple_getattr +EXPORT_SYMBOL vmlinux 0x1a777e9f sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1aa2b3f1 tlbie_capable +EXPORT_SYMBOL vmlinux 0x1ab8a729 mmc_card_alternative_gpt_sector +EXPORT_SYMBOL vmlinux 0x1ac37998 vme_register_bridge +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ace175b has_capability +EXPORT_SYMBOL vmlinux 0x1af5b515 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x1af62a99 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x1afdc244 mutex_trylock +EXPORT_SYMBOL vmlinux 0x1afe941f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b162f27 pnv_cxl_release_hwirq_ranges +EXPORT_SYMBOL vmlinux 0x1b35e797 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x1b625d33 enable_kernel_vsx +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b87e150 tso_start +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b932d4d kernel_connect +EXPORT_SYMBOL vmlinux 0x1ba3165d misc_deregister +EXPORT_SYMBOL vmlinux 0x1ba59527 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x1baae9d6 dma_fence_init +EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bb84034 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x1bbcefb5 sk_dst_check +EXPORT_SYMBOL vmlinux 0x1bd59dbe vme_free_consistent +EXPORT_SYMBOL vmlinux 0x1bdf7df7 sk_error_report +EXPORT_SYMBOL vmlinux 0x1bede110 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x1c09884b devm_devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0x1c36fa97 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x1c3e02e4 memcmp +EXPORT_SYMBOL vmlinux 0x1c43cc25 drop_nlink +EXPORT_SYMBOL vmlinux 0x1c468bab inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x1c49367a jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x1c63eaef fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x1c680c20 mipi_dsi_dcs_set_tear_scanline +EXPORT_SYMBOL vmlinux 0x1c6a3a2b __block_write_begin +EXPORT_SYMBOL vmlinux 0x1c78f5f2 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0x1c7cfdb1 __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x1ca1b1be radix_tree_delete +EXPORT_SYMBOL vmlinux 0x1ca20879 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x1ca527fa ioread64be_hi_lo +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cde0a51 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x1cdf3252 folio_end_writeback +EXPORT_SYMBOL vmlinux 0x1ce15d0a __irq_regs +EXPORT_SYMBOL vmlinux 0x1cf4c8e8 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x1cfb0a5f xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0x1d07e365 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x1d10bb97 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x1d13c940 rproc_da_to_va +EXPORT_SYMBOL vmlinux 0x1d177217 vfs_create +EXPORT_SYMBOL vmlinux 0x1d2a6d50 netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x1d4d7954 genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x1d5cedae __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x1d5e3ccf set_disk_ro +EXPORT_SYMBOL vmlinux 0x1d669a8b __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x1d8545d5 mipi_dsi_dcs_write_buffer +EXPORT_SYMBOL vmlinux 0x1d8edd01 dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x1d9672bd fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x1dc4b73e generic_setlease +EXPORT_SYMBOL vmlinux 0x1dc56d30 mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dd25cf0 single_open +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1dfdc4b9 eth_header_parse +EXPORT_SYMBOL vmlinux 0x1dfddab3 __bswapdi2 +EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1e1992cc __memset64 +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e283290 fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x1e3ed328 iov_iter_discard +EXPORT_SYMBOL vmlinux 0x1e3fb8f4 follow_down_one +EXPORT_SYMBOL vmlinux 0x1e46bda9 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x1e6adaa0 bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6d56d2 mmc_add_host +EXPORT_SYMBOL vmlinux 0x1e754f13 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x1e7fbd39 may_umount_tree +EXPORT_SYMBOL vmlinux 0x1e81af22 dev_uc_init +EXPORT_SYMBOL vmlinux 0x1e82c9eb vme_init_bridge +EXPORT_SYMBOL vmlinux 0x1e8469ab mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x1e875885 add_wait_queue +EXPORT_SYMBOL vmlinux 0x1e921ace do_SAK +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea546c6 wireless_send_event +EXPORT_SYMBOL vmlinux 0x1ea8f22f phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x1eb4f4c2 __brelse +EXPORT_SYMBOL vmlinux 0x1eb57165 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x1eba6ef8 __phy_write_mmd +EXPORT_SYMBOL vmlinux 0x1ec934bc mmc_retune_timer_stop +EXPORT_SYMBOL vmlinux 0x1eca2aee unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x1ecd81b2 ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x1ecfc1b6 reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1ee5f24b blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x1eec0d12 devm_ioremap +EXPORT_SYMBOL vmlinux 0x1f03b50d dns_query +EXPORT_SYMBOL vmlinux 0x1f111a4b __module_get +EXPORT_SYMBOL vmlinux 0x1f11e0e8 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x1f3f8a29 phy_init_hw +EXPORT_SYMBOL vmlinux 0x1f687a19 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x1f688994 kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x1f6edf5b __mdiobus_register +EXPORT_SYMBOL vmlinux 0x1f7aa456 netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x1f9ea97a fb_class +EXPORT_SYMBOL vmlinux 0x1f9ec8b2 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd510b5 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x1feff17f scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x1fffbdf5 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x201cb903 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0x20224aac dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x2030ba45 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x2036b85b fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x2039c37b __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x2047c4c6 nd_dev_to_uuid +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x2050a4a3 f_setown +EXPORT_SYMBOL vmlinux 0x208c04b0 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x208d4584 path_put +EXPORT_SYMBOL vmlinux 0x209265d4 param_ops_charp +EXPORT_SYMBOL vmlinux 0x2093de95 posix_test_lock +EXPORT_SYMBOL vmlinux 0x209587a8 skb_split +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b0e77f vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x20c9caac udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20f59b4d vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x210f76bb mipi_dsi_dcs_set_display_on +EXPORT_SYMBOL vmlinux 0x211b7d5e i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x211d9c23 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x213a738d memregion_alloc +EXPORT_SYMBOL vmlinux 0x213e4965 ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x21528d9b kill_pgrp +EXPORT_SYMBOL vmlinux 0x216d4de7 devm_extcon_unregister_notifier_all +EXPORT_SYMBOL vmlinux 0x216ec677 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x2179af62 mdio_find_bus +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x21900939 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x219c7f0a super_setup_bdi +EXPORT_SYMBOL vmlinux 0x219c8886 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x21b60242 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x21bd29fb netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0x21bdb523 errseq_check_and_advance +EXPORT_SYMBOL vmlinux 0x21be37e1 hdmi_avi_infoframe_check +EXPORT_SYMBOL vmlinux 0x21c045d0 single_open_size +EXPORT_SYMBOL vmlinux 0x21e13cb3 inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0x21f3dfa8 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0x221f28d7 input_inject_event +EXPORT_SYMBOL vmlinux 0x222aae03 is_nd_pfn +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x2234b369 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x224e5e0a xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x225166fd devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0x226dfd8a tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0x227b45c2 update_devfreq +EXPORT_SYMBOL vmlinux 0x227fbf37 inet_add_offload +EXPORT_SYMBOL vmlinux 0x22a13405 register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x22acdddc devm_memunmap +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22d85b16 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x2303b3bd lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0x2310ae4d pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0x231c17e4 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x2322b2f8 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x2335227a submit_bio_noacct +EXPORT_SYMBOL vmlinux 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL vmlinux 0x233a8188 agp_create_memory +EXPORT_SYMBOL vmlinux 0x233cab92 cpumask_next +EXPORT_SYMBOL vmlinux 0x2356b680 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x23582bf1 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x23619cff jiffies_64 +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x2366d4f9 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x237c01ea fsync_bdev +EXPORT_SYMBOL vmlinux 0x238791d5 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x238b099f mipi_dsi_packet_format_is_short +EXPORT_SYMBOL vmlinux 0x2392d2e8 __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x23b5b617 mempool_create +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c1b3cc textsearch_unregister +EXPORT_SYMBOL vmlinux 0x23da30fc _dev_emerg +EXPORT_SYMBOL vmlinux 0x23daa989 mipi_dsi_create_packet +EXPORT_SYMBOL vmlinux 0x23db66a8 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x23e23a09 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x242cfda1 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x24376b86 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x243e1e29 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x243ef107 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x24435e09 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x2447ab6a folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2461a23e vio_cmo_set_dev_desired +EXPORT_SYMBOL vmlinux 0x24777a4d pci_request_region +EXPORT_SYMBOL vmlinux 0x24796b7e devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x24836da8 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x2487051f __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x24b133c3 pci_write_config_word +EXPORT_SYMBOL vmlinux 0x24ba1cfd param_set_long +EXPORT_SYMBOL vmlinux 0x24bce018 dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x24c20d8e pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24dd7d05 phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x24ec7f09 cdrom_release +EXPORT_SYMBOL vmlinux 0x24ef591b giveup_all +EXPORT_SYMBOL vmlinux 0x24f596c4 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x24fea6fe unpin_user_page +EXPORT_SYMBOL vmlinux 0x2505bf18 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x25064f23 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x250788f0 rename_lock +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x2527eccf rtnl_create_link +EXPORT_SYMBOL vmlinux 0x25340f2d nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x253ad8be zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x2542a01f eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x25451165 gro_cells_init +EXPORT_SYMBOL vmlinux 0x254c9287 ioremap +EXPORT_SYMBOL vmlinux 0x254e8d8e nvdimm_check_and_set_ro +EXPORT_SYMBOL vmlinux 0x255232b8 __devm_release_region +EXPORT_SYMBOL vmlinux 0x2554701c of_find_mipi_dsi_host_by_node +EXPORT_SYMBOL vmlinux 0x2555c6eb netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x257f4cd6 vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x258dfb00 reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x25d22f68 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x25de4fb2 security_inet_conn_established +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x25eda264 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x25f4a6cc flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x26179a56 devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x261a05ed filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x261a38c4 register_shrinker +EXPORT_SYMBOL vmlinux 0x263491fd try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263c3152 bcmp +EXPORT_SYMBOL vmlinux 0x265134e5 tcp_close +EXPORT_SYMBOL vmlinux 0x266e87cf mipi_dsi_attach +EXPORT_SYMBOL vmlinux 0x2674db4a fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x26891011 dev_set_alias +EXPORT_SYMBOL vmlinux 0x268ec882 kernel_write +EXPORT_SYMBOL vmlinux 0x26917551 dentry_create +EXPORT_SYMBOL vmlinux 0x26a6a926 __f_setown +EXPORT_SYMBOL vmlinux 0x26ac1225 sk_net_capable +EXPORT_SYMBOL vmlinux 0x26acdf03 mipi_dsi_host_register +EXPORT_SYMBOL vmlinux 0x26baf5c0 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x26bca9f2 tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0x26e0a20e phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26f8f0b8 iowrite16be +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x2711cd87 __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x272a8933 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x2744689d __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x2745af71 mmc_can_gpio_ro +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x2749a260 dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x274e9db9 vfs_tmpfile +EXPORT_SYMBOL vmlinux 0x275dfee4 ucc_slow_free +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x27637384 md_unregister_thread +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 0x2783ad0f vfio_register_notifier +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x2798692d dquot_scan_active +EXPORT_SYMBOL vmlinux 0x27a15933 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x27aba72d tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27d5bf77 register_md_personality +EXPORT_SYMBOL vmlinux 0x27e71131 xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x27e8f534 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x284ae1a4 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x285458e7 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0x286f7bfc pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x28a9ebce __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x28b4099f blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x28cc24ed inode_dio_wait +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x28fc5b33 netdev_notice +EXPORT_SYMBOL vmlinux 0x292a4699 pci_save_state +EXPORT_SYMBOL vmlinux 0x29411d80 devm_of_iomap +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x29625563 __devm_request_region +EXPORT_SYMBOL vmlinux 0x29638148 vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x296dc9ff netpoll_setup +EXPORT_SYMBOL vmlinux 0x29a38b25 genphy_resume +EXPORT_SYMBOL vmlinux 0x29b038c7 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x29b319c3 tso_build_data +EXPORT_SYMBOL vmlinux 0x29b6537e backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x29d349c1 phy_disconnect +EXPORT_SYMBOL vmlinux 0x29da97f7 devm_devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x29dc5778 vma_alloc_folio +EXPORT_SYMBOL vmlinux 0x29df43d5 xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x29e1e204 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x29e93ebf key_invalidate +EXPORT_SYMBOL vmlinux 0x29ffef82 cdrom_open +EXPORT_SYMBOL vmlinux 0x2a2ae679 kvmppc_hv_find_lock_hpte +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a3960b4 __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0x2a5688e4 tcp_filter +EXPORT_SYMBOL vmlinux 0x2a70be16 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x2a7506ab open_exec +EXPORT_SYMBOL vmlinux 0x2a7615e2 flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x2a7ac5e1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x2a7c44fc eth_get_headlen +EXPORT_SYMBOL vmlinux 0x2a8a0b96 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2a8e32b1 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x2a928918 slhc_free +EXPORT_SYMBOL vmlinux 0x2a9a3905 vme_master_get +EXPORT_SYMBOL vmlinux 0x2aabcdc8 vmalloc_array +EXPORT_SYMBOL vmlinux 0x2aac9de5 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x2abe6563 ps2_sliced_command +EXPORT_SYMBOL vmlinux 0x2abfe265 blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x2ada0e69 blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x2add5df1 key_link +EXPORT_SYMBOL vmlinux 0x2ae8cf8d config_item_get +EXPORT_SYMBOL vmlinux 0x2afa48e0 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x2b0f1c44 dst_alloc +EXPORT_SYMBOL vmlinux 0x2b1b4f7f zap_page_range +EXPORT_SYMBOL vmlinux 0x2b2382ac unlock_new_inode +EXPORT_SYMBOL vmlinux 0x2b5f9229 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b6bc713 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x2b6d879c dma_fence_array_create +EXPORT_SYMBOL vmlinux 0x2b74b0f8 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x2b7df463 mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0x2b83bea3 param_set_ushort +EXPORT_SYMBOL vmlinux 0x2b92f6ac filemap_alloc_folio +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba3b129 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c31c193 find_inode_nowait +EXPORT_SYMBOL vmlinux 0x2c34b9a5 eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x2c3bf687 __traceiter_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x2c6fc322 sock_register +EXPORT_SYMBOL vmlinux 0x2c787208 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c89fbff dma_supported +EXPORT_SYMBOL vmlinux 0x2c90c48a fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x2c946fa4 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x2ca0eaba generic_perform_write +EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top +EXPORT_SYMBOL vmlinux 0x2cdc8e43 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0x2ce60858 __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x2ceec75c devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x2cf15bb0 serio_open +EXPORT_SYMBOL vmlinux 0x2d0656fb get_tree_bdev +EXPORT_SYMBOL vmlinux 0x2d078734 fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x2d0e547c fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d192c70 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d4ba920 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d6129a6 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x2d839920 simple_statfs +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2da3fc18 vc_resize +EXPORT_SYMBOL vmlinux 0x2da6b445 inode_to_bdi +EXPORT_SYMBOL vmlinux 0x2dc4e156 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x2dc97004 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x2dcc176c dev_get_mac_address +EXPORT_SYMBOL vmlinux 0x2dcdea36 chip_to_vas_id +EXPORT_SYMBOL vmlinux 0x2dce19f1 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x2e12f519 of_graph_get_remote_endpoint +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e1fab2f _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x2e24d081 cdev_del +EXPORT_SYMBOL vmlinux 0x2e299585 from_kuid_munged +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2fa0ab dquot_release +EXPORT_SYMBOL vmlinux 0x2e480a84 skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x2e5c55f9 mmc_of_parse_clk_phase +EXPORT_SYMBOL vmlinux 0x2e5fe036 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x2e71de8d blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x2ea46739 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x2eb8a2ed mipi_dsi_dcs_exit_sleep_mode +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2ed0cc14 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x2ed60238 d_make_root +EXPORT_SYMBOL vmlinux 0x2ee4c2b1 hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x2ee9a85d xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x2eee3cf1 d_invalidate +EXPORT_SYMBOL vmlinux 0x2f000c44 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f1254d1 ucc_tdm_init +EXPORT_SYMBOL vmlinux 0x2f1858ce datagram_poll +EXPORT_SYMBOL vmlinux 0x2f198101 d_rehash +EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f5c8be0 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2f7de35d skb_checksum_help +EXPORT_SYMBOL vmlinux 0x2f8264bd gtm_get_timer16 +EXPORT_SYMBOL vmlinux 0x2f875f3c genl_register_family +EXPORT_SYMBOL vmlinux 0x2f9f47ad tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0x2fa6db6a tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock +EXPORT_SYMBOL vmlinux 0x2fb611ca ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x2fc606e5 __fs_parse +EXPORT_SYMBOL vmlinux 0x2fc78fcc xa_erase +EXPORT_SYMBOL vmlinux 0x2fd5ba89 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ffae7d6 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x2fff3b76 pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x30195810 is_nd_dax +EXPORT_SYMBOL vmlinux 0x303c9a4f vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x30513c3b generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x3058ea5f scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x305cf10a security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x3090e9b4 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x3095a9d5 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30b8b35c cpu_to_chip_id +EXPORT_SYMBOL vmlinux 0x30c6b17b __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x30fa5146 tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x3125e3f8 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x312cf672 dup_iter +EXPORT_SYMBOL vmlinux 0x314609b8 cdev_set_parent +EXPORT_SYMBOL vmlinux 0x31495114 sock_alloc +EXPORT_SYMBOL vmlinux 0x314f363f nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0x316e9726 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x318628c1 radix__flush_tlb_page +EXPORT_SYMBOL vmlinux 0x319a8fbb tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0x31b1a41c __debugger_fault_handler +EXPORT_SYMBOL vmlinux 0x31ed891b jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x31fc7973 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x3217c3a3 __memset32 +EXPORT_SYMBOL vmlinux 0x321f1255 input_set_timestamp +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x32394d4b qe_issue_cmd +EXPORT_SYMBOL vmlinux 0x3269e015 bio_init_clone +EXPORT_SYMBOL vmlinux 0x3270d62e lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0x327c84bf vme_lm_attach +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x328f3b08 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0x32951882 rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0x32a59a54 fb_show_logo +EXPORT_SYMBOL vmlinux 0x32ae30b8 release_pages +EXPORT_SYMBOL vmlinux 0x32b7d5b2 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0x32c7195c serio_close +EXPORT_SYMBOL vmlinux 0x32ca6ab6 vga_get +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32ce4c93 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x32e676a8 kset_register +EXPORT_SYMBOL vmlinux 0x32e73b5a skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0x32f6617c key_validate +EXPORT_SYMBOL vmlinux 0x32fd4bef of_get_compatible_child +EXPORT_SYMBOL vmlinux 0x3303cf6d dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x3318f907 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x334214d3 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x3343ec26 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x335d4e56 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x336959a7 genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x336a3ac3 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x33736a1d __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0x339362ca truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x33a0f299 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x33a918eb fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x33ac3a7d ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33be076c ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x3402dc8b __write_overflow_field +EXPORT_SYMBOL vmlinux 0x340c35a5 mmc_cqe_start_req +EXPORT_SYMBOL vmlinux 0x342c87fe always_delete_dentry +EXPORT_SYMBOL vmlinux 0x342eeac5 dquot_operations +EXPORT_SYMBOL vmlinux 0x34310cd2 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x3436c697 mipi_dsi_dcs_read +EXPORT_SYMBOL vmlinux 0x345c8916 strict_msr_control +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a0f781 pnv_cxl_ioda_msi_setup +EXPORT_SYMBOL vmlinux 0x34bf2c9c rfkill_alloc +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34cf2367 xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x34ee0ad2 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34fc7618 pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x34fdb0ea __of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35257e6c epapr_hypercall_start +EXPORT_SYMBOL vmlinux 0x352bb201 xa_store +EXPORT_SYMBOL vmlinux 0x35313ebd agp_generic_enable +EXPORT_SYMBOL vmlinux 0x35318a3c __destroy_inode +EXPORT_SYMBOL vmlinux 0x35382aa9 __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x354cdf78 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x3552ea32 __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x35557fe2 pnv_pci_get_phb_node +EXPORT_SYMBOL vmlinux 0x3557547e jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x3557dc49 rproc_get_by_phandle +EXPORT_SYMBOL vmlinux 0x35585da0 tcp_req_err +EXPORT_SYMBOL vmlinux 0x356461c8 rtc_time64_to_tm +EXPORT_SYMBOL vmlinux 0x3573e0d0 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x3575144a param_get_int +EXPORT_SYMBOL vmlinux 0x357eab18 proto_unregister +EXPORT_SYMBOL vmlinux 0x3589f70a d_obtain_alias +EXPORT_SYMBOL vmlinux 0x358f5ee4 unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35b80f2a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x35c44e15 folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x35e83030 agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0x35f71aeb simple_recursive_removal +EXPORT_SYMBOL vmlinux 0x35ff8999 pci_iounmap +EXPORT_SYMBOL vmlinux 0x361c826b blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0x361d74d3 rproc_add_subdev +EXPORT_SYMBOL vmlinux 0x36264fd7 to_nd_pfn +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x36614887 forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0x36739316 pci_release_resource +EXPORT_SYMBOL vmlinux 0x36873788 fb_find_mode +EXPORT_SYMBOL vmlinux 0x36959262 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x36b5adfe udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x36c7d2fe dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x36cabae1 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x36d48eba eeh_dev_release +EXPORT_SYMBOL vmlinux 0x36eaafe2 __cpu_active_mask +EXPORT_SYMBOL vmlinux 0x37077a31 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x3724948a try_module_get +EXPORT_SYMBOL vmlinux 0x37250bfc inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level +EXPORT_SYMBOL vmlinux 0x3743c127 reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374fa042 __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x375251c9 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x375675eb tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0x3756bda6 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x37640c56 generic_fillattr +EXPORT_SYMBOL vmlinux 0x376663fe vfs_getattr +EXPORT_SYMBOL vmlinux 0x376aacc3 ucc_of_parse_tdm +EXPORT_SYMBOL vmlinux 0x376eefbd mount_nodev +EXPORT_SYMBOL vmlinux 0x37ab715e tcp_sendpage +EXPORT_SYMBOL vmlinux 0x37b8b39e screen_info +EXPORT_SYMBOL vmlinux 0x37b99891 inet_bind +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37d723b0 sg_miter_stop +EXPORT_SYMBOL vmlinux 0x37e74787 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x37e7bb47 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x37f40aa5 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x38026cb6 complete +EXPORT_SYMBOL vmlinux 0x3814f617 register_console +EXPORT_SYMBOL vmlinux 0x381a57bb dev_mc_sync +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3825bdae tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x3835132a seq_bprintf +EXPORT_SYMBOL vmlinux 0x384242fd fs_param_is_enum +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x386b43f9 dm_table_event +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x38870de4 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x388e0dff flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x3895040b tcf_qevent_init +EXPORT_SYMBOL vmlinux 0x389617b0 LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x389a2da5 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x389b688d nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38be1e28 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x38da41b5 register_cdrom +EXPORT_SYMBOL vmlinux 0x38de28cd revert_creds +EXPORT_SYMBOL vmlinux 0x38e64301 devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x38f508e4 of_device_unregister +EXPORT_SYMBOL vmlinux 0x38f8e020 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios +EXPORT_SYMBOL vmlinux 0x39054e47 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x390b7854 device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x3931ab9f audit_log_start +EXPORT_SYMBOL vmlinux 0x39389f42 generic_permission +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x393cfdbf inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x394a4cf9 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x39616957 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x3969a89b __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x396b2a43 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x396e5099 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x3975e415 __scsi_execute +EXPORT_SYMBOL vmlinux 0x397c1433 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x39a7887d serio_unregister_port +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39bf6f48 set_cached_acl +EXPORT_SYMBOL vmlinux 0x39c86f5e blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x39d95ca4 zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x39e2d8ee dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x39f9e18c dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x39fd4b67 kthread_bind +EXPORT_SYMBOL vmlinux 0x3a10fe9d handle_edge_irq +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a141a3b of_root +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a689502 skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0x3a74ee6f fs_param_is_bool +EXPORT_SYMBOL vmlinux 0x3a875620 __xa_store +EXPORT_SYMBOL vmlinux 0x3a8e6d85 register_qdisc +EXPORT_SYMBOL vmlinux 0x3a924ea7 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x3aa397ac tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3ab8c307 sock_i_ino +EXPORT_SYMBOL vmlinux 0x3ae34aeb zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x3b161a25 km_policy_notify +EXPORT_SYMBOL vmlinux 0x3b18c0e9 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x3b24c767 netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0x3b310666 bio_uninit +EXPORT_SYMBOL vmlinux 0x3b321462 LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x3b363afe sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x3b4575eb ip_options_compile +EXPORT_SYMBOL vmlinux 0x3b4e7f4e ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x3b4f45bc dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x3b5deeed sock_gettstamp +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b7f488d mmc_command_done +EXPORT_SYMBOL vmlinux 0x3b8c80d0 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x3b9072ea folio_account_redirty +EXPORT_SYMBOL vmlinux 0x3bb019b1 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x3bbed9a5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x3bd45313 devm_memremap +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3bfb09fa gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x3c06def7 wake_up_process +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c3215c4 qe_immr +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c40a084 genphy_loopback +EXPORT_SYMBOL vmlinux 0x3c52b985 locks_init_lock +EXPORT_SYMBOL vmlinux 0x3cb117db flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x3cbb940b zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x3cbfabdc ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x3cc8b05d __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x3ce1240a input_copy_abs +EXPORT_SYMBOL vmlinux 0x3ce12cbf tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x3ce39ef2 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cea1cba genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x3d1d731f netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x3d2fbaa0 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x3d3478f2 fb_blank +EXPORT_SYMBOL vmlinux 0x3d6393b3 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x3d6fe2aa vlan_vid_add +EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3db8ad51 nd_pfn_validate +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3ddd53a5 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x3df8a16a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x3dfb86b9 resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e066d43 kern_path +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e417ad5 file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x3e4905a3 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x3e49ee63 unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x3e652b8e ip_getsockopt +EXPORT_SYMBOL vmlinux 0x3e6a1f8f ip_frag_next +EXPORT_SYMBOL vmlinux 0x3e97a3f7 flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x3e9d071f param_ops_int +EXPORT_SYMBOL vmlinux 0x3ea1b6e4 __stack_chk_fail +EXPORT_SYMBOL vmlinux 0x3ea3024b udp6_csum_init +EXPORT_SYMBOL vmlinux 0x3ec054d6 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x3ec10c55 mmc_wait_for_req_done +EXPORT_SYMBOL vmlinux 0x3ec545e8 param_set_short +EXPORT_SYMBOL vmlinux 0x3edd76ee devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x3ef3564b locks_delete_block +EXPORT_SYMBOL vmlinux 0x3efa7885 of_node_get +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f03dc1a of_read_drc_info_cell +EXPORT_SYMBOL vmlinux 0x3f0eabd2 xxh64_update +EXPORT_SYMBOL vmlinux 0x3f106e80 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x3f25229d truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x3f298c07 phy_sfp_probe +EXPORT_SYMBOL vmlinux 0x3f34644d zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4eabb8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x3f5cb6db jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x3f791c5a phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x3f7921f7 backlight_force_update +EXPORT_SYMBOL vmlinux 0x3f7e617f __next_node_in +EXPORT_SYMBOL vmlinux 0x3f845304 sock_wfree +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3f8b9349 dqput +EXPORT_SYMBOL vmlinux 0x3f9f8dd5 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x3fa9aa66 vm_mmap +EXPORT_SYMBOL vmlinux 0x3fac9934 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0x3fbdc62d sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x3fbf3c89 vme_slave_set +EXPORT_SYMBOL vmlinux 0x3fc27fa7 scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x402a3037 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x40528ef2 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x405726ea dmam_pool_create +EXPORT_SYMBOL vmlinux 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL vmlinux 0x40700977 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x4071ad18 logfc +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40ab0cdb cdev_device_del +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40cb3d84 cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0x40cc3a57 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40db067a dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x40f76a86 __vcalloc +EXPORT_SYMBOL vmlinux 0x410022be md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x413be8e9 param_ops_bint +EXPORT_SYMBOL vmlinux 0x41445f21 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x4144964a find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x41573dff vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x41692bac framebuffer_release +EXPORT_SYMBOL vmlinux 0x41727944 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x417cf199 migrate_page +EXPORT_SYMBOL vmlinux 0x417f100e inet_register_protosw +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419b521f thermal_zone_device_critical +EXPORT_SYMBOL vmlinux 0x419da4b6 param_set_copystring +EXPORT_SYMBOL vmlinux 0x41abd4db _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x41ae718a __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x41b0ef7e vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x41b91841 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x41c14ae8 posix_lock_file +EXPORT_SYMBOL vmlinux 0x41c8e223 ip_local_deliver +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41ce83de request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x41d535f4 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x41d8ee9e md_flush_request +EXPORT_SYMBOL vmlinux 0x41ed3709 get_random_bytes +EXPORT_SYMBOL vmlinux 0x41eeb100 scsi_print_command +EXPORT_SYMBOL vmlinux 0x41f00ebe kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x41f987ea __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x42289f07 generic_write_checks_count +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x423df860 netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x4249b622 pci_release_region +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x426cb764 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x4271929f console_start +EXPORT_SYMBOL vmlinux 0x42736793 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x427ab650 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x4281f343 flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0x428517ef xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x429de5b2 edac_mc_find +EXPORT_SYMBOL vmlinux 0x42b6bc74 lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0x42bd651c sock_create_lite +EXPORT_SYMBOL vmlinux 0x42cdb9c0 of_find_node_by_name +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 0x431bb219 mdiobus_free +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x43223582 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x4324f754 mmc_gpiod_request_cd +EXPORT_SYMBOL vmlinux 0x4331fe9f phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4360ee66 skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0x43656268 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0x4368cc2f tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x436a3095 mipi_dsi_driver_register_full +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x4385d16e netif_device_detach +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43aa2cd3 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x43b5e909 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x43c267b3 posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x43c82edf wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43d87044 module_put +EXPORT_SYMBOL vmlinux 0x43f9ebc8 slhc_remember +EXPORT_SYMBOL vmlinux 0x43fbff5d tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x442194fe block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x4423edb1 page_pool_create +EXPORT_SYMBOL vmlinux 0x442e97f1 nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x443a14be sock_no_mmap +EXPORT_SYMBOL vmlinux 0x443f0294 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x445adf7b blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x4462d35e cpufreq_get_hw_max_freq +EXPORT_SYMBOL vmlinux 0x44690ad1 sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x446d7f1d __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x446dec79 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x4470b928 __put_page +EXPORT_SYMBOL vmlinux 0x4483c9e9 mpage_read_folio +EXPORT_SYMBOL vmlinux 0x4488bc8a prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x44954155 devm_nvmem_cell_put +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44af90b1 finish_no_open +EXPORT_SYMBOL vmlinux 0x44cb0993 __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0x44d0582c pci_fixup_device +EXPORT_SYMBOL vmlinux 0x44e03d3a gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44fc637f __kfree_skb +EXPORT_SYMBOL vmlinux 0x45006cee default_red +EXPORT_SYMBOL vmlinux 0x450bd37e __pmd_index_size +EXPORT_SYMBOL vmlinux 0x450d640b dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x4520685f netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0x452287df gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x45235daf rproc_get_by_child +EXPORT_SYMBOL vmlinux 0x45295c82 request_key_tag +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x45535485 xxh32_update +EXPORT_SYMBOL vmlinux 0x4557a6a5 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x45665d49 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x457f26ae dma_unmap_resource +EXPORT_SYMBOL vmlinux 0x458ee2e2 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x45a771be __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x45ac4c44 netif_device_attach +EXPORT_SYMBOL vmlinux 0x45f3120e phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x45f6c038 mipi_dsi_detach +EXPORT_SYMBOL vmlinux 0x46001d34 percpu_counter_add_batch +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x461296c3 sg_miter_next +EXPORT_SYMBOL vmlinux 0x4616a021 no_llseek +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user +EXPORT_SYMBOL vmlinux 0x462aaf2f pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0x462b37a6 flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x463a7012 jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0x46451cee zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0x464eb97f dev_uc_flush +EXPORT_SYMBOL vmlinux 0x4653225a fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x46632bbe dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x4667c9fa devfreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x4674ec42 __pgd_val_bits +EXPORT_SYMBOL vmlinux 0x467df16d netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0x469a6ec7 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x46a31686 filemap_release_folio +EXPORT_SYMBOL vmlinux 0x46b6a4e8 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x46bba056 tcf_block_get +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46c765cc security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x46d461be md_update_sb +EXPORT_SYMBOL vmlinux 0x46d5beb7 input_set_capability +EXPORT_SYMBOL vmlinux 0x46e85d3f dev_activate +EXPORT_SYMBOL vmlinux 0x46f0c3ad get_watch_queue +EXPORT_SYMBOL vmlinux 0x46f6643d insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x46f9f2b5 xa_find_after +EXPORT_SYMBOL vmlinux 0x47065c73 cpm_muram_offset +EXPORT_SYMBOL vmlinux 0x471dd445 arp_send +EXPORT_SYMBOL vmlinux 0x47335f0e of_find_net_device_by_node +EXPORT_SYMBOL vmlinux 0x475aeca8 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x4771d001 seq_write +EXPORT_SYMBOL vmlinux 0x47734c23 tcf_em_register +EXPORT_SYMBOL vmlinux 0x478330be dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x4799928f max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47b07ffa find_vma +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c48af3 store_fp_state +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47cfd825 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x47e885c0 vif_device_init +EXPORT_SYMBOL vmlinux 0x4805b4d2 clk_bulk_get +EXPORT_SYMBOL vmlinux 0x480791c7 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x481aef2a configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x4829a47e memcpy +EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x482a5972 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x483165f4 __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x483b7421 tcp_create_openreq_child +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 0x4860f3e1 vme_irq_free +EXPORT_SYMBOL vmlinux 0x486ae9a7 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x486c17db __xa_erase +EXPORT_SYMBOL vmlinux 0x4871d75d clk_hw_register_clkdev +EXPORT_SYMBOL vmlinux 0x488182fe ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x48918a46 devm_devfreq_add_device +EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim +EXPORT_SYMBOL vmlinux 0x48a721ff simple_transaction_read +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48b2ce90 dquot_acquire +EXPORT_SYMBOL vmlinux 0x48b99a13 vme_lm_free +EXPORT_SYMBOL vmlinux 0x48ba0987 fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x48c8a980 simple_rename +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48d38e38 dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x48d9138f of_phy_get_and_connect +EXPORT_SYMBOL vmlinux 0x48dc8e6f pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49078f5f ether_setup +EXPORT_SYMBOL vmlinux 0x4921ed01 folio_alloc +EXPORT_SYMBOL vmlinux 0x49475b04 build_skb_around +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x49547314 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x49649833 copy_string_kernel +EXPORT_SYMBOL vmlinux 0x496da56b tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x49839e9f phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0x4983e98f mmc_can_erase +EXPORT_SYMBOL vmlinux 0x498cd15e scsi_scan_target +EXPORT_SYMBOL vmlinux 0x499bfc6d __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x499f0ecf nd_sb_checksum +EXPORT_SYMBOL vmlinux 0x49b7c4f9 clear_inode +EXPORT_SYMBOL vmlinux 0x49d16d10 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x49d3a9b5 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x49d718bf scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x49df20cc nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x49e535a3 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x49e83293 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x4a453f53 iowrite32 +EXPORT_SYMBOL vmlinux 0x4a55c8ea ioremap_wc +EXPORT_SYMBOL vmlinux 0x4a5e785e qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0x4a6427c7 cdev_init +EXPORT_SYMBOL vmlinux 0x4a6ab7d5 sock_rfree +EXPORT_SYMBOL vmlinux 0x4a77e78d of_phy_deregister_fixed_link +EXPORT_SYMBOL vmlinux 0x4a841608 dev_addr_mod +EXPORT_SYMBOL vmlinux 0x4a93576a ucc_fast_free +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4aa4c667 __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x4aabc6df is_subdir +EXPORT_SYMBOL vmlinux 0x4aac3110 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x4ab6f98c of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0x4abbc809 iget_failed +EXPORT_SYMBOL vmlinux 0x4ad2a57a opal_event_request +EXPORT_SYMBOL vmlinux 0x4ad69478 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x4aea463f crc32_le_shift +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4afe183a generic_fadvise +EXPORT_SYMBOL vmlinux 0x4b0069f4 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x4b010147 blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b48092d writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x4b5b26b2 no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0x4b5e4f92 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b674808 phy_device_register +EXPORT_SYMBOL vmlinux 0x4b721a5b registered_fb +EXPORT_SYMBOL vmlinux 0x4b74cd6e phy_device_create +EXPORT_SYMBOL vmlinux 0x4b775988 backlight_device_get_by_type +EXPORT_SYMBOL vmlinux 0x4b828d27 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x4ba8aced pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x4bb133c3 bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x4bb9c612 skb_checksum +EXPORT_SYMBOL vmlinux 0x4bc3e804 genphy_update_link +EXPORT_SYMBOL vmlinux 0x4bef1c67 empty_name +EXPORT_SYMBOL vmlinux 0x4bff1efe nf_log_set +EXPORT_SYMBOL vmlinux 0x4c199a03 fwnode_mdiobus_register_phy +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c43df26 bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0x4c4940ef security_inode_init_security +EXPORT_SYMBOL vmlinux 0x4c79e241 phy_driver_register +EXPORT_SYMBOL vmlinux 0x4c7de998 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x4c88d766 devm_clk_release_clkdev +EXPORT_SYMBOL vmlinux 0x4c8f8959 mipi_dsi_dcs_set_pixel_format +EXPORT_SYMBOL vmlinux 0x4ca87ed9 dec_node_page_state +EXPORT_SYMBOL vmlinux 0x4cba441d iwe_stream_add_event +EXPORT_SYMBOL vmlinux 0x4cbf8785 filemap_fault +EXPORT_SYMBOL vmlinux 0x4cc1d4ee devm_clk_get_optional +EXPORT_SYMBOL vmlinux 0x4cc6534b cpu_l2_cache_map +EXPORT_SYMBOL vmlinux 0x4cd1394e xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x4cdcf93f crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x4cea4957 skb_queue_head +EXPORT_SYMBOL vmlinux 0x4ceb422a srp_timed_out +EXPORT_SYMBOL vmlinux 0x4cf55acb seq_read +EXPORT_SYMBOL vmlinux 0x4d01b250 phy_find_first +EXPORT_SYMBOL vmlinux 0x4d103d8c key_unlink +EXPORT_SYMBOL vmlinux 0x4d29f629 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x4d2a848e dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x4d3c2aea radix__flush_tlb_mm +EXPORT_SYMBOL vmlinux 0x4d509c95 rw_verify_area +EXPORT_SYMBOL vmlinux 0x4d65cbd5 csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x4d693f5d skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x4d6ae35f rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x4d76500d notify_change +EXPORT_SYMBOL vmlinux 0x4d78b867 dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x4d78dc36 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x4d85a69d dst_release_immediate +EXPORT_SYMBOL vmlinux 0x4d924f20 memremap +EXPORT_SYMBOL vmlinux 0x4d95d6d1 memcpy_flushcache +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4db99618 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x4dbed3f3 of_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x4ddb38bc nd_btt_probe +EXPORT_SYMBOL vmlinux 0x4df02057 crc32_be +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4dfbc2b6 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x4e199bd8 mmc_sw_reset +EXPORT_SYMBOL vmlinux 0x4e207b8b inet6_offloads +EXPORT_SYMBOL vmlinux 0x4e3163f6 dquot_file_open +EXPORT_SYMBOL vmlinux 0x4e332902 nla_append +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e3d46c8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x4e3d5ea4 dev_addr_add +EXPORT_SYMBOL vmlinux 0x4e4ce2fd clocksource_unregister +EXPORT_SYMBOL vmlinux 0x4e547048 __kmalloc_node_track_caller +EXPORT_SYMBOL vmlinux 0x4e615702 iterate_dir +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e74150d balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x4e7f7a69 release_sock +EXPORT_SYMBOL vmlinux 0x4e8e993b dst_destroy +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4eae5ddd kill_pid +EXPORT_SYMBOL vmlinux 0x4eb7ae3d hvc_get_chars +EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x4ed5d7c8 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x4edfc525 filemap_check_errors +EXPORT_SYMBOL vmlinux 0x4ee70f9d vio_h_cop_sync +EXPORT_SYMBOL vmlinux 0x4eeb1446 devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x4ef00338 inet6_protos +EXPORT_SYMBOL vmlinux 0x4efc9d7b file_remove_privs +EXPORT_SYMBOL vmlinux 0x4f04d2d7 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0x4f10d193 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x4f164e57 generic_write_checks +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f2250ba rtc_tm_to_time64 +EXPORT_SYMBOL vmlinux 0x4f3c66fe inet_getname +EXPORT_SYMBOL vmlinux 0x4f71280e jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x4f7a01c1 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x4f7d4df1 proc_set_size +EXPORT_SYMBOL vmlinux 0x4f7e5669 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x4f8a4947 dst_init +EXPORT_SYMBOL vmlinux 0x4fa65563 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x4fbf3fce pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x4fc92d1a pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0x4fced792 nf_log_unset +EXPORT_SYMBOL vmlinux 0x4fcf507e xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x4fd0ac18 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x4fda1208 key_move +EXPORT_SYMBOL vmlinux 0x4fdc1ee3 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4fe847ac skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x4ff88ee7 of_mdio_find_device +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x500dd609 phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x5015720d d_prune_aliases +EXPORT_SYMBOL vmlinux 0x503a6d4d dev_change_flags +EXPORT_SYMBOL vmlinux 0x5051eb7b tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x506016ed unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x5079c9d7 __pte_index_size +EXPORT_SYMBOL vmlinux 0x5089f45f ip_send_check +EXPORT_SYMBOL vmlinux 0x509281b1 vio_unregister_driver +EXPORT_SYMBOL vmlinux 0x5092e84e __read_overflow2_field +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50b56086 path_has_submounts +EXPORT_SYMBOL vmlinux 0x50b73ce2 rfkill_find_type +EXPORT_SYMBOL vmlinux 0x50b8ab4c skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50c757b2 devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x50c7c00a sk_mc_loop +EXPORT_SYMBOL vmlinux 0x50cf7585 hex2bin +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50d13f94 unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x50db9208 __alloc_pages +EXPORT_SYMBOL vmlinux 0x50f01b71 xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x50f662a2 put_watch_queue +EXPORT_SYMBOL vmlinux 0x50f91491 __genradix_ptr +EXPORT_SYMBOL vmlinux 0x50fbf3f8 tcf_block_put +EXPORT_SYMBOL vmlinux 0x5108fa98 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x510ef41e serio_interrupt +EXPORT_SYMBOL vmlinux 0x5121ff8f mdio_device_reset +EXPORT_SYMBOL vmlinux 0x5145d3a4 kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0x51494930 update_region +EXPORT_SYMBOL vmlinux 0x5160a4a5 pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x516a37f9 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x518d2bcf pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x519bb3e7 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x51ad671f seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0x51bb99dc nonseekable_open +EXPORT_SYMBOL vmlinux 0x51e0528c sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x51f59768 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x5201151e cdev_device_add +EXPORT_SYMBOL vmlinux 0x52120089 blk_set_runtime_active +EXPORT_SYMBOL vmlinux 0x522b0856 file_modified +EXPORT_SYMBOL vmlinux 0x523040f7 of_graph_get_remote_node +EXPORT_SYMBOL vmlinux 0x5232e0bd inet6_add_offload +EXPORT_SYMBOL vmlinux 0x523b0890 vfs_get_tree +EXPORT_SYMBOL vmlinux 0x524fd8cf inode_nohighmem +EXPORT_SYMBOL vmlinux 0x525db41a csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x526eef2c hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x52716e55 flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0x527c774a dquot_quota_off +EXPORT_SYMBOL vmlinux 0x52886aad xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x52983a4f vme_master_write +EXPORT_SYMBOL vmlinux 0x5298e8d5 md_register_thread +EXPORT_SYMBOL vmlinux 0x52b72efb mmc_retune_unpause +EXPORT_SYMBOL vmlinux 0x52bd6876 scsi_partsize +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52dcb85b __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x52e896fd mmu_feature_keys +EXPORT_SYMBOL vmlinux 0x52eacc75 inet_select_addr +EXPORT_SYMBOL vmlinux 0x52ecbc75 crc_ccitt +EXPORT_SYMBOL vmlinux 0x52f0c00e pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x52f63401 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x52f672d1 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0x52fbe3c3 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x53057dd0 xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x5308e350 __vmalloc_start +EXPORT_SYMBOL vmlinux 0x5309fc8f nf_log_trace +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53247cc4 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x532663f7 of_device_is_big_endian +EXPORT_SYMBOL vmlinux 0x5327f1ec __netif_napi_del +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x5340ef13 rproc_coredump_using_sections +EXPORT_SYMBOL vmlinux 0x5347962b bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0x534abac0 param_ops_byte +EXPORT_SYMBOL vmlinux 0x5350e8d1 param_get_ushort +EXPORT_SYMBOL vmlinux 0x5351f62e migrate_vma_pages +EXPORT_SYMBOL vmlinux 0x536068bb unregister_nls +EXPORT_SYMBOL vmlinux 0x5364bf39 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x5379a4a2 seq_dentry +EXPORT_SYMBOL vmlinux 0x53a69258 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x53bbc5aa get_user_pages_remote +EXPORT_SYMBOL vmlinux 0x53c8fdfd bdi_register +EXPORT_SYMBOL vmlinux 0x53da5875 radix__local_flush_tlb_page +EXPORT_SYMBOL vmlinux 0x540771ed blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x5412c7c7 up +EXPORT_SYMBOL vmlinux 0x5415e4ee inet6_bind +EXPORT_SYMBOL vmlinux 0x5419a68e __pagevec_release +EXPORT_SYMBOL vmlinux 0x541e7733 xor_altivec_4 +EXPORT_SYMBOL vmlinux 0x5427638f seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544f16c0 from_kgid +EXPORT_SYMBOL vmlinux 0x5475b771 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x5493b4c3 setattr_copy +EXPORT_SYMBOL vmlinux 0x549671fa iov_iter_revert +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54e3d5fd __pmd_frag_nr +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f082f1 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x54fd0809 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x54fd2a6f skb_trim +EXPORT_SYMBOL vmlinux 0x54febd73 security_sk_clone +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x5508535d tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x5513d441 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x551abea1 phy_attached_print +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5522ba6e devm_devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x55300ecd xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x554da20e tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x55686530 __arch_clear_user +EXPORT_SYMBOL vmlinux 0x556b5d62 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x55751f1e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x557a79f5 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x559421f3 d_exact_alias +EXPORT_SYMBOL vmlinux 0x55db3d55 folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55e5ee64 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0x55f17537 tcf_idr_create +EXPORT_SYMBOL vmlinux 0x562ad3df elv_rb_find +EXPORT_SYMBOL vmlinux 0x562e9776 fsl_lbc_find +EXPORT_SYMBOL vmlinux 0x562ec8a3 __napi_schedule +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56470118 __warn_printk +EXPORT_SYMBOL vmlinux 0x567bb261 dump_page +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x568f8644 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x56a3018c jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x56a96cd3 __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x56ac2a7c _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x56c261ae jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress +EXPORT_SYMBOL vmlinux 0x56c3db64 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x56c78512 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56f59706 nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0x56f6c7de lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x570e2f57 elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0x571af428 skb_ext_add +EXPORT_SYMBOL vmlinux 0x572ae748 dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x5735aaf7 nvdimm_namespace_disk_name +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576c4936 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x57c10181 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x57db8fd6 utf8_normalize +EXPORT_SYMBOL vmlinux 0x57e9f2db skb_dump +EXPORT_SYMBOL vmlinux 0x57efc946 sock_from_file +EXPORT_SYMBOL vmlinux 0x57f27567 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x57f38cdc qe_get_firmware_info +EXPORT_SYMBOL vmlinux 0x5818fb1f kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x582702c2 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x58272b1d prepare_creds +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x5840c036 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x587b892e qe_get_num_of_risc +EXPORT_SYMBOL vmlinux 0x587e992b of_device_get_match_data +EXPORT_SYMBOL vmlinux 0x587f22d7 devmap_managed_key +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58ddf159 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58eae8e9 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x58f26390 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x590c8966 ndisc_ns_create +EXPORT_SYMBOL vmlinux 0x590e6cc0 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x590e818c block_write_end +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x5951db10 md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x595236ae ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5952c5ad jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x595b2935 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page +EXPORT_SYMBOL vmlinux 0x595d8002 hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x596886a0 simple_lookup +EXPORT_SYMBOL vmlinux 0x5973738b skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0x59757699 refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0x59894fa7 down_write_trylock +EXPORT_SYMBOL vmlinux 0x5992037e iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0x599b4888 qe_setbrg +EXPORT_SYMBOL vmlinux 0x599fb41c kvmalloc_node +EXPORT_SYMBOL vmlinux 0x59a2f0ee packing +EXPORT_SYMBOL vmlinux 0x59a849d1 devm_get_clk_from_child +EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x59ce2ecd ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x59d02edb phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x59d22f62 srp_rport_put +EXPORT_SYMBOL vmlinux 0x59ddc5f1 should_remove_suid +EXPORT_SYMBOL vmlinux 0x59f5161f cdc_parse_cdc_header +EXPORT_SYMBOL vmlinux 0x59f79935 single_release +EXPORT_SYMBOL vmlinux 0x59fb4741 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x5a025f7b arch_local_irq_restore +EXPORT_SYMBOL vmlinux 0x5a032030 gtm_put_timer16 +EXPORT_SYMBOL vmlinux 0x5a088923 up_write +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a110343 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x5a290250 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x5a44f8cb __crypto_memneq +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a57f923 mmc_get_card +EXPORT_SYMBOL vmlinux 0x5a747a44 scsi_remove_device +EXPORT_SYMBOL vmlinux 0x5a76801e gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x5a7bf518 md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5a965583 bmap +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5a9a144c __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x5a9f1d63 memmove +EXPORT_SYMBOL vmlinux 0x5ab312c1 dget_parent +EXPORT_SYMBOL vmlinux 0x5ab3b8c1 flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x5ab62daa netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x5ab97069 keyring_search +EXPORT_SYMBOL vmlinux 0x5ad59f2b thaw_super +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5b1aa15a __getblk_gfp +EXPORT_SYMBOL vmlinux 0x5b1f946b phy_print_status +EXPORT_SYMBOL vmlinux 0x5b21d36b rproc_del +EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present +EXPORT_SYMBOL vmlinux 0x5b558dec bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b760467 proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x5b7f957c sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x5b811f22 user_path_create +EXPORT_SYMBOL vmlinux 0x5b8c2340 bio_reset +EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x5ba7dd75 mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0x5baa850d __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0x5bacc4ea ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x5bb81eaf dev_get_by_index +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5bec43f4 __breadahead +EXPORT_SYMBOL vmlinux 0x5bf54e21 dev_pm_opp_unregister_notifier +EXPORT_SYMBOL vmlinux 0x5bf72302 get_tree_nodev +EXPORT_SYMBOL vmlinux 0x5bffd589 kill_litter_super +EXPORT_SYMBOL vmlinux 0x5c1981af __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x5c2532cd __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x5c2fed46 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x5c33516a md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c47d5e5 thread_group_exited +EXPORT_SYMBOL vmlinux 0x5c50e2de config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x5c5be613 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x5c66e616 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x5c905b8a xmon +EXPORT_SYMBOL vmlinux 0x5c9d34fe simple_get_link +EXPORT_SYMBOL vmlinux 0x5c9fad7f serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x5cb547a7 dma_fence_describe +EXPORT_SYMBOL vmlinux 0x5cb8a2c8 d_alloc +EXPORT_SYMBOL vmlinux 0x5cbc2f67 mipi_dsi_dcs_soft_reset +EXPORT_SYMBOL vmlinux 0x5cc2e252 devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x5ce21a50 dev_load +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cfd0124 skb_dequeue +EXPORT_SYMBOL vmlinux 0x5d27daa3 genl_notify +EXPORT_SYMBOL vmlinux 0x5d28e9cf sync_file_create +EXPORT_SYMBOL vmlinux 0x5d4144f6 __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d5fef44 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x5d611685 param_array_ops +EXPORT_SYMBOL vmlinux 0x5d723b9f qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x5d888a5a phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x5d935f04 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x5da17fc8 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x5da3d0b9 scsi_print_result +EXPORT_SYMBOL vmlinux 0x5da4f659 vfs_symlink +EXPORT_SYMBOL vmlinux 0x5dbf6458 devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x5de77a71 find_inode_rcu +EXPORT_SYMBOL vmlinux 0x5de97345 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x5df49be6 radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e1a776c clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0x5e1ed96e i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x5e28d0ba block_write_full_page +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e384c7d generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x5e3a81fc fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x5e3c34ea jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x5e465897 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5e46e0e4 ptp_cancel_worker_sync +EXPORT_SYMBOL vmlinux 0x5e551800 dump_align +EXPORT_SYMBOL vmlinux 0x5e5ab12f con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x5e60397f scmd_printk +EXPORT_SYMBOL vmlinux 0x5e664b94 hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e95b4a6 make_kuid +EXPORT_SYMBOL vmlinux 0x5e99dfca uaccess_flush_key +EXPORT_SYMBOL vmlinux 0x5eada4e6 da903x_query_status +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x5ecbec15 read_cache_page +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed90adc int_to_scsilun +EXPORT_SYMBOL vmlinux 0x5eddb914 lockref_put_return +EXPORT_SYMBOL vmlinux 0x5ee5451c param_get_long +EXPORT_SYMBOL vmlinux 0x5efdd68b __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0b1ba9 mmc_of_parse_voltage +EXPORT_SYMBOL vmlinux 0x5f1550fe scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x5f1f8ada radix__flush_tlb_range +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f45e136 napi_build_skb +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f6b889c rproc_va_to_pa +EXPORT_SYMBOL vmlinux 0x5f71fa97 submit_bh +EXPORT_SYMBOL vmlinux 0x5f78a480 mach_pseries +EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base +EXPORT_SYMBOL vmlinux 0x5f99383a ioread64_hi_lo +EXPORT_SYMBOL vmlinux 0x5fa119e0 tcp_connect +EXPORT_SYMBOL vmlinux 0x5fb516f8 xa_find +EXPORT_SYMBOL vmlinux 0x5fb86654 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x5fbb4b00 mipi_dsi_dcs_set_tear_on +EXPORT_SYMBOL vmlinux 0x5fc67252 ioread16_rep +EXPORT_SYMBOL vmlinux 0x5fc72f0e alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x5fd4253b mdiobus_read +EXPORT_SYMBOL vmlinux 0x5fee1b2a dma_find_channel +EXPORT_SYMBOL vmlinux 0x5ffb31db ram_aops +EXPORT_SYMBOL vmlinux 0x60052c7e flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6016531a gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x6019a084 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6025f9e3 dquot_resume +EXPORT_SYMBOL vmlinux 0x602cfc3d security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x608249d9 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x608d0267 zstd_get_error_code +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x6092a601 __scm_send +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60b5e0e4 path_is_under +EXPORT_SYMBOL vmlinux 0x60ba52ad fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x60c2b577 cont_write_begin +EXPORT_SYMBOL vmlinux 0x60d8ab30 vme_lm_get +EXPORT_SYMBOL vmlinux 0x60da7488 vfs_link +EXPORT_SYMBOL vmlinux 0x60de2dff agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x60eeb489 pci_restore_state +EXPORT_SYMBOL vmlinux 0x60f3176e devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x61048589 mmc_card_is_blockaddr +EXPORT_SYMBOL vmlinux 0x6115375c agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x6118dc26 start_thread +EXPORT_SYMBOL vmlinux 0x6121bd54 dql_init +EXPORT_SYMBOL vmlinux 0x6127af19 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612e7a36 devfreq_recommended_opp +EXPORT_SYMBOL vmlinux 0x61440980 skb_copy_header +EXPORT_SYMBOL vmlinux 0x6157ffa4 xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x616d13e2 fs_bio_set +EXPORT_SYMBOL vmlinux 0x6186c7b2 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x61870e3e jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x61986b8e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61ae6c6f fd_install +EXPORT_SYMBOL vmlinux 0x61b26014 vme_irq_handler +EXPORT_SYMBOL vmlinux 0x61b62a17 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61cb246f _raw_write_lock +EXPORT_SYMBOL vmlinux 0x61e139ef d_mark_dontcache +EXPORT_SYMBOL vmlinux 0x61e24b5e netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61e85c4d inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61ee8c07 setup_arg_pages +EXPORT_SYMBOL vmlinux 0x62037a4d of_graph_get_port_parent +EXPORT_SYMBOL vmlinux 0x620de8ed sk_reset_timer +EXPORT_SYMBOL vmlinux 0x620f867a vfs_fsync +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6242c082 jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x62495703 seq_open_private +EXPORT_SYMBOL vmlinux 0x624eff28 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x624f608d dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x625f95b3 fqdir_exit +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627ee2e6 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x6280f5d8 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6284c857 netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0x6289c168 dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0x62ac0ed1 dm_get_device +EXPORT_SYMBOL vmlinux 0x62afb880 iptun_encaps +EXPORT_SYMBOL vmlinux 0x62b44ed8 phy_config_aneg +EXPORT_SYMBOL vmlinux 0x62b6d9a9 dev_trans_start +EXPORT_SYMBOL vmlinux 0x62b96de0 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x62e6910d devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x630d99f5 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x6328d5e4 __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x632acf09 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0x63300941 inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0x6331791a devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x6344eb54 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x634d4527 blk_rq_init +EXPORT_SYMBOL vmlinux 0x6361926c skb_find_text +EXPORT_SYMBOL vmlinux 0x6366258e xfrm_input +EXPORT_SYMBOL vmlinux 0x636f0fab rproc_set_firmware +EXPORT_SYMBOL vmlinux 0x638bdadf dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x63a24742 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63a9487c devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x63adeae8 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0x63bffd8e neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63c95f6c of_device_alloc +EXPORT_SYMBOL vmlinux 0x63d94973 arp_xmit +EXPORT_SYMBOL vmlinux 0x63dbda36 phy_connect +EXPORT_SYMBOL vmlinux 0x63dc05ec send_sig +EXPORT_SYMBOL vmlinux 0x63e8f12e md_write_inc +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fee6d6 pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x64112306 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x643f3068 __tracepoint_spi_transfer_stop +EXPORT_SYMBOL vmlinux 0x644c0511 pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0x646aea21 xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x64781659 netdev_state_change +EXPORT_SYMBOL vmlinux 0x647d9a62 nobh_writepage +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x64831cb8 xa_extract +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x649a94b7 folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x649c9a32 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x64a535f8 rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64aa92bf refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x64b2d1da jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64c70034 tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x64d35131 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x64d672be tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0x64e34c95 simple_unlink +EXPORT_SYMBOL vmlinux 0x64f48fda iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x64f9f53b xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x650b8ef1 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x650fe3fc d_add +EXPORT_SYMBOL vmlinux 0x65106cab can_nice +EXPORT_SYMBOL vmlinux 0x6513056d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651ed4c5 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x653130f0 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x6532f72f of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x653a2e83 blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65464c16 clkdev_drop +EXPORT_SYMBOL vmlinux 0x654bd16b rproc_coredump_set_elf_info +EXPORT_SYMBOL vmlinux 0x655d7611 msi_bitmap_alloc_hwirqs +EXPORT_SYMBOL vmlinux 0x655e0b65 page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0x656c1a0e string_escape_mem +EXPORT_SYMBOL vmlinux 0x656e4a6e snprintf +EXPORT_SYMBOL vmlinux 0x65703c14 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x657b9994 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x658bf924 tty_port_put +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +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 0x65f3fbef register_key_type +EXPORT_SYMBOL vmlinux 0x66081dc4 security_path_unlink +EXPORT_SYMBOL vmlinux 0x661d9adf phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x6633f972 __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x663e6da1 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x664d5f97 locks_copy_conflock +EXPORT_SYMBOL vmlinux 0x66569c1f build_skb +EXPORT_SYMBOL vmlinux 0x6657b6fa inet_del_protocol +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x666863dc par_io_config_pin +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x667d193f bioset_exit +EXPORT_SYMBOL vmlinux 0x6680640a __register_chrdev +EXPORT_SYMBOL vmlinux 0x668fb440 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x669205cc arp_create +EXPORT_SYMBOL vmlinux 0x66a12923 arp_tbl +EXPORT_SYMBOL vmlinux 0x66a9a1ad reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x66b3b516 crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0x66b4cc41 kmemdup +EXPORT_SYMBOL vmlinux 0x66ca02ee cpumask_any_but +EXPORT_SYMBOL vmlinux 0x66eacb03 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x66f419f2 inode_add_bytes +EXPORT_SYMBOL vmlinux 0x66fa83ea inet_sendpage +EXPORT_SYMBOL vmlinux 0x66fbff5e unregister_shrinker +EXPORT_SYMBOL vmlinux 0x67020c4a pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x670a7ad1 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x67150093 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x6716c07c dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x671be094 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x67412d2f ucc_slow_enable +EXPORT_SYMBOL vmlinux 0x67430c59 noop_fsync +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x678982c5 hmm_range_fault +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x67b08207 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x67b1d1d9 block_commit_write +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d7bb88 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x67d926d3 __invalidate_device +EXPORT_SYMBOL vmlinux 0x67f81436 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x67fc472c gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0x681a4e86 mipi_dsi_dcs_set_tear_off +EXPORT_SYMBOL vmlinux 0x6827688d vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x6830e54c devm_devfreq_register_notifier +EXPORT_SYMBOL vmlinux 0x6832af00 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x684766a2 is_nvdimm_bus_locked +EXPORT_SYMBOL vmlinux 0x685687b0 idr_replace +EXPORT_SYMBOL vmlinux 0x685ab348 __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x686818bb down_read +EXPORT_SYMBOL vmlinux 0x6871c711 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68a30ffe shared_processor +EXPORT_SYMBOL vmlinux 0x68a44d38 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x68b40b53 vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x68c3f6be scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x68c68407 of_find_property +EXPORT_SYMBOL vmlinux 0x68ca3c96 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x69059013 rproc_detach +EXPORT_SYMBOL vmlinux 0x6909440b __pgd_table_size +EXPORT_SYMBOL vmlinux 0x6916afb3 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x692d5fae mipi_dsi_device_unregister +EXPORT_SYMBOL vmlinux 0x693f11a9 irq_set_chip +EXPORT_SYMBOL vmlinux 0x694288bd pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0x69585523 __ksize +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x697ed5f0 memcpy_and_pad +EXPORT_SYMBOL vmlinux 0x698b9533 input_register_handle +EXPORT_SYMBOL vmlinux 0x69dd3b5b crc32_le +EXPORT_SYMBOL vmlinux 0x69de8757 vme_check_window +EXPORT_SYMBOL vmlinux 0x69e99d95 mmc_free_host +EXPORT_SYMBOL vmlinux 0x69eb5121 sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x69ed2780 md_reload_sb +EXPORT_SYMBOL vmlinux 0x69f4e123 dma_map_resource +EXPORT_SYMBOL vmlinux 0x6a03751f sgl_free_order +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0c73b8 bdi_alloc +EXPORT_SYMBOL vmlinux 0x6a117e93 netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0x6a128b75 proc_mkdir +EXPORT_SYMBOL vmlinux 0x6a146d29 tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x6a53dd34 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a6dcc53 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6a822dac neigh_event_ns +EXPORT_SYMBOL vmlinux 0x6a82d8f8 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x6a8a43e8 __sk_dst_check +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6aa18425 generic_writepages +EXPORT_SYMBOL vmlinux 0x6ad38b50 seq_escape_mem +EXPORT_SYMBOL vmlinux 0x6ade6454 trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x6ae5f581 xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x6aed85b2 simple_fill_super +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6af1eae4 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x6af87082 xattr_full_name +EXPORT_SYMBOL vmlinux 0x6affcd9f dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x6b10bee1 _copy_to_user +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b734a75 kobject_set_name +EXPORT_SYMBOL vmlinux 0x6b79e91f inc_node_state +EXPORT_SYMBOL vmlinux 0x6b7e35e4 ipv4_specific +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b858580 set_create_files_as +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd87b6c netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x6bdeab7f down_read_interruptible +EXPORT_SYMBOL vmlinux 0x6be0eb18 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x6be16674 uart_resume_port +EXPORT_SYMBOL vmlinux 0x6bf181c1 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6bf49262 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x6bf63945 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x6bfe257e reuseport_add_sock +EXPORT_SYMBOL vmlinux 0x6c08004d msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x6c0a06a9 icmp6_send +EXPORT_SYMBOL vmlinux 0x6c1698de xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x6c28be5a vfio_info_add_capability +EXPORT_SYMBOL vmlinux 0x6c29ce4b sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x6c351077 d_instantiate_new +EXPORT_SYMBOL vmlinux 0x6c36bc7a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x6c3783fb sock_bind_add +EXPORT_SYMBOL vmlinux 0x6c37f542 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0x6c3deddd neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x6c450175 max8998_read_reg +EXPORT_SYMBOL vmlinux 0x6c48c6c0 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0x6c553e10 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x6c5dae23 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6d21df from_kgid_munged +EXPORT_SYMBOL vmlinux 0x6c7643e5 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x6c770aa6 vfs_create_mount +EXPORT_SYMBOL vmlinux 0x6c7a0323 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6c80afce blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0x6c86f5b2 vfs_get_link +EXPORT_SYMBOL vmlinux 0x6ca86c9b rproc_elf_load_rsc_table +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6cbb2c36 udp_read_sock +EXPORT_SYMBOL vmlinux 0x6cc02627 tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0x6cc09945 ioread32_rep +EXPORT_SYMBOL vmlinux 0x6cc24753 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x6cc4acd5 netdev_crit +EXPORT_SYMBOL vmlinux 0x6ce3bafb pcim_iounmap +EXPORT_SYMBOL vmlinux 0x6cf0d67d qe_get_num_of_snums +EXPORT_SYMBOL vmlinux 0x6d022b87 devfreq_get_freq_range +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d396db5 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x6d4fa811 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0x6d58f69e agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0x6d65f6d3 file_path +EXPORT_SYMBOL vmlinux 0x6d6821ae blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x6d740523 nvdimm_bus_lock +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d804065 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x6d9cc662 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x6dab61e8 inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x6db5fec5 lru_cache_add +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dc0758d pci_pme_active +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df6e007 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0x6e075440 kernel_param_lock +EXPORT_SYMBOL vmlinux 0x6e1e6688 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0x6e1ffb3d blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x6e2ece83 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x6e4e2dac to_nd_dax +EXPORT_SYMBOL vmlinux 0x6e5768c8 of_translate_address +EXPORT_SYMBOL vmlinux 0x6e5b8651 xz_dec_run +EXPORT_SYMBOL vmlinux 0x6e5c6324 dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x6e6ba496 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x6e711ea2 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e90fd92 genphy_read_status +EXPORT_SYMBOL vmlinux 0x6e9a448d __pte_frag_nr +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6ec3c82f clk_get +EXPORT_SYMBOL vmlinux 0x6ee0f371 kfree_skb_reason +EXPORT_SYMBOL vmlinux 0x6ef366a9 vme_bus_num +EXPORT_SYMBOL vmlinux 0x6ef712e0 kobject_init +EXPORT_SYMBOL vmlinux 0x6f08b1c6 mempool_exit +EXPORT_SYMBOL vmlinux 0x6f0f8a63 skb_put +EXPORT_SYMBOL vmlinux 0x6f1283ee idr_for_each +EXPORT_SYMBOL vmlinux 0x6f17f16c netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0x6f1d6af7 tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0x6f27b96f udp_sendmsg +EXPORT_SYMBOL vmlinux 0x6f343762 input_grab_device +EXPORT_SYMBOL vmlinux 0x6f36c443 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x6f38a9b3 migrate_vma_setup +EXPORT_SYMBOL vmlinux 0x6f40e324 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x6f43f72f pcim_iomap +EXPORT_SYMBOL vmlinux 0x6f4a59e4 sort_r +EXPORT_SYMBOL vmlinux 0x6f62e3ab __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x6f6dde1f blk_finish_plug +EXPORT_SYMBOL vmlinux 0x6f7ccf6b bio_endio +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6f909101 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0x6f92fd3a ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd545fe agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fdb9cf7 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x6ffcca5e seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x7003891c _dev_notice +EXPORT_SYMBOL vmlinux 0x70078b1a vfio_unpin_pages +EXPORT_SYMBOL vmlinux 0x700b746d netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x7011ec67 pci_resize_resource +EXPORT_SYMBOL vmlinux 0x70199a58 __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x703346f4 proc_remove +EXPORT_SYMBOL vmlinux 0x7039d53b neigh_seq_next +EXPORT_SYMBOL vmlinux 0x704115b3 qe_usb_clock_set +EXPORT_SYMBOL vmlinux 0x70517839 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x708adccf genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0x70c3b700 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x70c42514 ip_fraglist_init +EXPORT_SYMBOL vmlinux 0x70c6d30e i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x70c742bf md_cluster_ops +EXPORT_SYMBOL vmlinux 0x70e41463 d_drop +EXPORT_SYMBOL vmlinux 0x710929e9 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x710a9807 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712d6fc4 ip6_output +EXPORT_SYMBOL vmlinux 0x7131bf58 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x7131e242 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x71380ac8 cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0x71384438 ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0x7142feaa xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0x7145b7b7 pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x714b3a2a follow_pfn +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71740ada nvdimm_namespace_common_probe +EXPORT_SYMBOL vmlinux 0x7186f151 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x7194b54c scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0x7199f832 cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b643ff ip6_xmit +EXPORT_SYMBOL vmlinux 0x71be1067 blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x71cab9ff xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x71ebbeef neigh_table_init +EXPORT_SYMBOL vmlinux 0x7202c3c8 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x7227736f max8925_reg_write +EXPORT_SYMBOL vmlinux 0x7249a78b textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x72560d0e proc_symlink +EXPORT_SYMBOL vmlinux 0x725e1964 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x72608c0e do_uaccess_flush +EXPORT_SYMBOL vmlinux 0x7273c980 md_integrity_register +EXPORT_SYMBOL vmlinux 0x727e0265 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x72a50966 ucc_fast_disable +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72c98139 __arch_hweight64 +EXPORT_SYMBOL vmlinux 0x72ca1524 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x72ce4b4d sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x72ce98f8 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x72e07fb7 param_ops_string +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ef6942 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x73109446 down_interruptible +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base +EXPORT_SYMBOL vmlinux 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x7336e2f4 rproc_report_crash +EXPORT_SYMBOL vmlinux 0x733c6d9c udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x73529e9c tcp_read_sock +EXPORT_SYMBOL vmlinux 0x7359f793 inode_update_time +EXPORT_SYMBOL vmlinux 0x737ad166 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x738fd1c4 pci_select_bars +EXPORT_SYMBOL vmlinux 0x7394f3af fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x73998efa cpm_muram_free_addr +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73a0445b blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73d4164d devm_register_netdev +EXPORT_SYMBOL vmlinux 0x73dc4a36 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x73ed600c blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x740257c4 iget5_locked +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x7412ed5b kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x74181e23 dquot_destroy +EXPORT_SYMBOL vmlinux 0x74207e42 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x742a7f78 free_netdev +EXPORT_SYMBOL vmlinux 0x7431a5e2 phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x7439fd86 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x743a6c3a fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x7448cb0a tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x744b3da7 write_inode_now +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x7454da01 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x745b75ac ip6_frag_next +EXPORT_SYMBOL vmlinux 0x747b10b7 kernel_accept +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x748842e0 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x7491f963 vme_irq_generate +EXPORT_SYMBOL vmlinux 0x74b8e674 slhc_toss +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c4ad1d keyring_clear +EXPORT_SYMBOL vmlinux 0x74c66625 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x74c69f32 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x74da94f0 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f1cd69 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x75041eb3 param_get_string +EXPORT_SYMBOL vmlinux 0x75167d91 blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x75267e16 find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x7527803b lease_get_mtime +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x755f4ba3 blake2s_compress_generic +EXPORT_SYMBOL vmlinux 0x757d0011 xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x757e6360 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x757f3788 gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0x75839c22 phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0x7596b097 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x75aa6ca1 __kernel_virt_start +EXPORT_SYMBOL vmlinux 0x75b95bde mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75c6af31 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x75f2ea66 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x7608099a xp_free +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760de745 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7610754a __register_nls +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired +EXPORT_SYMBOL vmlinux 0x76244498 napi_enable +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764b9cac inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x764ee823 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x766dd696 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0x7671c1ce km_policy_expired +EXPORT_SYMBOL vmlinux 0x76740a82 __netif_rx +EXPORT_SYMBOL vmlinux 0x767d0399 generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x7681b462 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x7695df32 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76a3699d max8998_update_reg +EXPORT_SYMBOL vmlinux 0x76c11af5 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0x76c53d3c security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x76d08cd5 __sock_create +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76f33f0a fb_set_var +EXPORT_SYMBOL vmlinux 0x76fa2121 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x770166e6 mount_subtree +EXPORT_SYMBOL vmlinux 0x770fa188 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0x77234d37 downgrade_write +EXPORT_SYMBOL vmlinux 0x772e47a0 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77338818 of_chosen +EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x775f8299 mmc_gpiod_request_cd_irq +EXPORT_SYMBOL vmlinux 0x776272e1 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x7771dd4a pci_scan_slot +EXPORT_SYMBOL vmlinux 0x77724090 inc_nlink +EXPORT_SYMBOL vmlinux 0x77783237 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x77a615ba vm_node_stat +EXPORT_SYMBOL vmlinux 0x77b5305a netdev_warn +EXPORT_SYMBOL vmlinux 0x77b7b17e devm_request_resource +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bf26f5 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x77d0dbb5 ll_rw_block +EXPORT_SYMBOL vmlinux 0x77ddb14c param_ops_ushort +EXPORT_SYMBOL vmlinux 0x77e9d974 get_fs_type +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x77f41783 get_vm_area +EXPORT_SYMBOL vmlinux 0x77fe819e jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0x77fee50d register_sysctl_table +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x7824cd9b neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x783d1dc0 mipi_dsi_device_register_full +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x7848604a mmput_async +EXPORT_SYMBOL vmlinux 0x78492a04 mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x7864c89e pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x787a5830 srp_reconnect_rport +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78851d2f _outsb +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78a9e905 _numa_mem_ +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78bfc7ae fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x78cecde4 passthru_features_check +EXPORT_SYMBOL vmlinux 0x78d7e341 of_graph_get_remote_port_parent +EXPORT_SYMBOL vmlinux 0x78decafa make_bad_inode +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e12e5a __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x79094bd0 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x790e9b55 bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x79280ffb con_is_bound +EXPORT_SYMBOL vmlinux 0x7931d9ce dm_unregister_target +EXPORT_SYMBOL vmlinux 0x7938b3ae crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x79581232 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x796bdd18 mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x7977f7e7 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x7978ec49 finalize_exec +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x7985c459 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x79a0407c ppp_unit_number +EXPORT_SYMBOL vmlinux 0x79a33f85 vme_get_size +EXPORT_SYMBOL vmlinux 0x79aac071 __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0x79d6e540 __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x79e87fd9 simple_link +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a156b7a udp_prot +EXPORT_SYMBOL vmlinux 0x7a19e7f9 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a2d6c97 __debugger_ipi +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a448824 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a543d14 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x7a625c38 dump_emit +EXPORT_SYMBOL vmlinux 0x7a676c12 unregister_key_type +EXPORT_SYMBOL vmlinux 0x7a6b018e vc_cons +EXPORT_SYMBOL vmlinux 0x7a71741f __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0x7a74ff8a rproc_of_parse_firmware +EXPORT_SYMBOL vmlinux 0x7a7de0d6 mempool_init_node +EXPORT_SYMBOL vmlinux 0x7a87e1af end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x7a89ec26 skb_clone +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7a968137 ucc_slow_restart_tx +EXPORT_SYMBOL vmlinux 0x7aa0414e kset_unregister +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 0x7ac99f49 pci_free_irq +EXPORT_SYMBOL vmlinux 0x7acce1c7 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7ae5d317 qe_get_snum +EXPORT_SYMBOL vmlinux 0x7aed3b22 ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0x7aeed3de __neigh_create +EXPORT_SYMBOL vmlinux 0x7aff5872 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x7b015bf0 jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x7b34a379 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x7b354e6a inet_put_port +EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x7b422bde pci_read_vpd +EXPORT_SYMBOL vmlinux 0x7b55575d xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b6b6dd1 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0x7b744fd7 phy_write_paged +EXPORT_SYMBOL vmlinux 0x7b838216 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids +EXPORT_SYMBOL vmlinux 0x7bd8f50d radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0x7be79b7d input_unregister_handle +EXPORT_SYMBOL vmlinux 0x7bf49e1e tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0x7c0898ab skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c1deefd xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c5b5ad2 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x7c61f82e phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x7c63a098 radix_tree_insert +EXPORT_SYMBOL vmlinux 0x7c6fb751 mipi_dsi_dcs_get_pixel_format +EXPORT_SYMBOL vmlinux 0x7c7107fd of_device_is_available +EXPORT_SYMBOL vmlinux 0x7c9a510d mod_node_page_state +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7cb090c7 kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0x7cb13add tcf_action_exec +EXPORT_SYMBOL vmlinux 0x7cbac9f7 phy_start_cable_test +EXPORT_SYMBOL vmlinux 0x7ccec940 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x7ce1726d vme_slave_request +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ce58981 kvrealloc +EXPORT_SYMBOL vmlinux 0x7cf35220 vme_master_free +EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d1b734f udp6_set_csum +EXPORT_SYMBOL vmlinux 0x7d316164 misc_register +EXPORT_SYMBOL vmlinux 0x7d3b4a93 netif_skb_features +EXPORT_SYMBOL vmlinux 0x7d3fa557 dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d4cb56e ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x7d535700 register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x7d5e1008 __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x7d726716 udp_poll +EXPORT_SYMBOL vmlinux 0x7d74d522 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x7d76b235 register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x7d80f442 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x7d845f0e _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x7d945d0b put_cmsg +EXPORT_SYMBOL vmlinux 0x7da8f93b xor_altivec_2 +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7dc29279 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max +EXPORT_SYMBOL vmlinux 0x7dcd10c3 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x7dd0e150 xsk_tx_release +EXPORT_SYMBOL vmlinux 0x7dd1e896 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0x7dd8620c seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfc8277 isa_mem_base +EXPORT_SYMBOL vmlinux 0x7dfcbd70 seq_open +EXPORT_SYMBOL vmlinux 0x7e10a480 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7e13cad5 dma_resv_init +EXPORT_SYMBOL vmlinux 0x7e2d6436 ida_free +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e424d63 giveup_fpu +EXPORT_SYMBOL vmlinux 0x7e4cdc54 __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0x7e50ebef mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x7e669f9c shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x7e6c5e46 sock_create +EXPORT_SYMBOL vmlinux 0x7e7c1663 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x7e881078 devm_rproc_add +EXPORT_SYMBOL vmlinux 0x7e918602 audit_log +EXPORT_SYMBOL vmlinux 0x7eb58d7f flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0x7ec27d7b register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x7ed59079 qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x7efaa34e tcp_disconnect +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f19e998 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x7f1bfd76 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f2520db scsi_scan_host +EXPORT_SYMBOL vmlinux 0x7f50d14b bdi_unregister +EXPORT_SYMBOL vmlinux 0x7f52071a net_dim +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f675e61 rproc_shutdown +EXPORT_SYMBOL vmlinux 0x7f688467 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x7f71fb97 xa_load +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7f831797 inet6_getname +EXPORT_SYMBOL vmlinux 0x7f851218 poll_freewait +EXPORT_SYMBOL vmlinux 0x7f8cd32d tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x7fbaa05c kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0x7fcf0729 dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe8a65f inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x7fed31b6 shmem_aops +EXPORT_SYMBOL vmlinux 0x7ffa1669 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x8001174b tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0x801a6880 of_mdiobus_child_is_phy +EXPORT_SYMBOL vmlinux 0x802e858e nf_log_unregister +EXPORT_SYMBOL vmlinux 0x803b8534 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x803c4f28 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x806b760f block_write_begin +EXPORT_SYMBOL vmlinux 0x80791145 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x8079ef46 dump_skip +EXPORT_SYMBOL vmlinux 0x808ca733 of_translate_dma_address +EXPORT_SYMBOL vmlinux 0x80962376 touch_buffer +EXPORT_SYMBOL vmlinux 0x809712ff hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x80a8b873 mpage_writepage +EXPORT_SYMBOL vmlinux 0x80b1d40b __put_user_ns +EXPORT_SYMBOL vmlinux 0x80c4fa02 prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80db4132 mipi_dsi_dcs_get_power_mode +EXPORT_SYMBOL vmlinux 0x80dfe070 xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x80fed60b __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x810bef7e sg_free_append_table +EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x8115280e skb_append +EXPORT_SYMBOL vmlinux 0x81188c30 match_string +EXPORT_SYMBOL vmlinux 0x811dbc4f tcp_add_backlog +EXPORT_SYMBOL vmlinux 0x813e3373 udp_ioctl +EXPORT_SYMBOL vmlinux 0x813ec487 dev_addr_del +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816046db simple_empty +EXPORT_SYMBOL vmlinux 0x816347c6 agp_device_command +EXPORT_SYMBOL vmlinux 0x8177ccc2 __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x8188234a vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0x818edf97 cpm_muram_alloc +EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload +EXPORT_SYMBOL vmlinux 0x81b20e8b ucc_fast_transmit_on_demand +EXPORT_SYMBOL vmlinux 0x81b8dcd4 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator +EXPORT_SYMBOL vmlinux 0x81c86170 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x81cf22e8 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81df2d7a mr_table_dump +EXPORT_SYMBOL vmlinux 0x81e37da9 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x81e64fe3 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x81f35e9b scsi_device_get +EXPORT_SYMBOL vmlinux 0x81f65758 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x820c47b8 of_get_parent +EXPORT_SYMBOL vmlinux 0x820c7481 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x821559d6 __vmalloc_end +EXPORT_SYMBOL vmlinux 0x821d712f of_phy_is_fixed_link +EXPORT_SYMBOL vmlinux 0x822abeef pci_get_class +EXPORT_SYMBOL vmlinux 0x8252f0cb load_nls_default +EXPORT_SYMBOL vmlinux 0x826da477 pin_user_pages +EXPORT_SYMBOL vmlinux 0x827100c4 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x8275489d __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0x8278a40c neigh_destroy +EXPORT_SYMBOL vmlinux 0x8278ffba pid_task +EXPORT_SYMBOL vmlinux 0x82898dc9 __alloc_skb +EXPORT_SYMBOL vmlinux 0x8292b7be max8998_write_reg +EXPORT_SYMBOL vmlinux 0x8295342e max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x82bb5199 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x82c5e928 phy_device_remove +EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x82def727 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x82ea5418 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x82f48ad3 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x82f4adbd _copy_from_iter +EXPORT_SYMBOL vmlinux 0x830ebc37 page_symlink +EXPORT_SYMBOL vmlinux 0x831e9f4a filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0x8333c28e config_group_find_item +EXPORT_SYMBOL vmlinux 0x83349eb0 filp_close +EXPORT_SYMBOL vmlinux 0x833a6ee3 param_get_byte +EXPORT_SYMBOL vmlinux 0x833fc807 fget +EXPORT_SYMBOL vmlinux 0x834658ac cmxgcr_lock +EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x835d4144 clk_hw_get_clk +EXPORT_SYMBOL vmlinux 0x836c52c1 km_report +EXPORT_SYMBOL vmlinux 0x836f0380 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0x837b7b09 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x8382466d unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0x8384cc91 cdrom_check_events +EXPORT_SYMBOL vmlinux 0x8385f8ee twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x83887ae1 register_netdevice +EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x838de657 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x83b2094d __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0x83d38f23 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x83d76431 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x840342c6 sgl_free +EXPORT_SYMBOL vmlinux 0x840496eb ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x8409d6ca blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x84156842 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x84231a60 invalidate_disk +EXPORT_SYMBOL vmlinux 0x8428af6b mmc_cqe_post_req +EXPORT_SYMBOL vmlinux 0x842c8e9d ioread16 +EXPORT_SYMBOL vmlinux 0x8430c994 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x843815de phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8443bd67 nvdimm_namespace_capacity +EXPORT_SYMBOL vmlinux 0x8457f14b unix_destruct_scm +EXPORT_SYMBOL vmlinux 0x84603c7c sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x846b4cdc sock_no_linger +EXPORT_SYMBOL vmlinux 0x846e1931 nd_integrity_init +EXPORT_SYMBOL vmlinux 0x8471f9a2 end_page_writeback +EXPORT_SYMBOL vmlinux 0x8474c8d1 of_get_cpu_node +EXPORT_SYMBOL vmlinux 0x8475c2b0 peernet2id +EXPORT_SYMBOL vmlinux 0x8481766d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x84823cf3 nla_strscpy +EXPORT_SYMBOL vmlinux 0x8487cbfc block_read_full_folio +EXPORT_SYMBOL vmlinux 0x848bebea fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x848d372e iowrite8 +EXPORT_SYMBOL vmlinux 0x849a2399 devfreq_update_status +EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x84ba6766 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock +EXPORT_SYMBOL vmlinux 0x84c03e9a rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x84c1ad08 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x84cd3fdc __post_watch_notification +EXPORT_SYMBOL vmlinux 0x84d878b8 generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x84f1db5d cdev_add +EXPORT_SYMBOL vmlinux 0x84f3c134 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x8503c209 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x851ca457 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x85200ba6 dev_add_pack +EXPORT_SYMBOL vmlinux 0x85250ccc xa_store_range +EXPORT_SYMBOL vmlinux 0x8525d654 pldmfw_flash_image +EXPORT_SYMBOL vmlinux 0x8526541b make_kgid +EXPORT_SYMBOL vmlinux 0x852c7833 bpf_map_get +EXPORT_SYMBOL vmlinux 0x852cfd44 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x8530f82a kernel_read +EXPORT_SYMBOL vmlinux 0x855f5c2e iter_file_splice_write +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85725628 skb_copy +EXPORT_SYMBOL vmlinux 0x857785e8 arch_free_page +EXPORT_SYMBOL vmlinux 0x8577e1c1 jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x8589174e netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x8591d7d5 ledtrig_mtd_activity +EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall +EXPORT_SYMBOL vmlinux 0x859f557e pci_irq_vector +EXPORT_SYMBOL vmlinux 0x85b31f01 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region +EXPORT_SYMBOL vmlinux 0x85d14718 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x85d53731 page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e189b5 dput +EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn +EXPORT_SYMBOL vmlinux 0x85f0d974 ip_frag_init +EXPORT_SYMBOL vmlinux 0x86100ab4 t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x862464b7 napi_schedule_prep +EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x86378fbd security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0x863a276a color_table +EXPORT_SYMBOL vmlinux 0x86665d94 mmc_cqe_request_done +EXPORT_SYMBOL vmlinux 0x866f9f03 fqdir_init +EXPORT_SYMBOL vmlinux 0x867c5319 __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0x868448a0 padata_free +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b1026f proc_douintvec +EXPORT_SYMBOL vmlinux 0x86b45a9b mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x86ca1afa pskb_extract +EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook +EXPORT_SYMBOL vmlinux 0x86dce37d vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x86e24dbe scsi_add_device +EXPORT_SYMBOL vmlinux 0x86eb40fd phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x87036453 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0x87152e2e lookup_one +EXPORT_SYMBOL vmlinux 0x871664bc pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x872a5283 gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x872b91e0 set_capacity +EXPORT_SYMBOL vmlinux 0x872e6282 __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x873a53ea __arch_hweight8 +EXPORT_SYMBOL vmlinux 0x8756c914 do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x87592313 mdio_device_free +EXPORT_SYMBOL vmlinux 0x875f360b md_write_end +EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed +EXPORT_SYMBOL vmlinux 0x876f2775 scsi_done_direct +EXPORT_SYMBOL vmlinux 0x877564e6 vme_register_driver +EXPORT_SYMBOL vmlinux 0x87761528 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8780e3d1 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0x8785006e sockfd_lookup +EXPORT_SYMBOL vmlinux 0x879f761b register_quota_format +EXPORT_SYMBOL vmlinux 0x87a21cb3 __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x87a352f5 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x87b8798d sg_next +EXPORT_SYMBOL vmlinux 0x87be4af6 folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x87ca26a1 generic_listxattr +EXPORT_SYMBOL vmlinux 0x87eee25c vm_insert_page +EXPORT_SYMBOL vmlinux 0x87f7b4ef security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit +EXPORT_SYMBOL vmlinux 0x88117ff7 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x881bad5e phy_mipi_dphy_config_validate +EXPORT_SYMBOL vmlinux 0x881db14c phy_error +EXPORT_SYMBOL vmlinux 0x882e277b input_get_timestamp +EXPORT_SYMBOL vmlinux 0x88465cad _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x8854668b kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x8888f1fe xxh32 +EXPORT_SYMBOL vmlinux 0x88993295 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0x88ad7061 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x88c127a5 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x88ce2bdd fs_param_is_string +EXPORT_SYMBOL vmlinux 0x88d19c07 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size +EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free +EXPORT_SYMBOL vmlinux 0x88e73c03 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x88f3bd37 rproc_elf_sanity_check +EXPORT_SYMBOL vmlinux 0x88ff3cd0 gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x8904ea97 param_set_charp +EXPORT_SYMBOL vmlinux 0x8914c964 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x89223790 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x89326d79 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x89525270 rproc_elf_load_segments +EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table +EXPORT_SYMBOL vmlinux 0x8963d40f d_set_d_op +EXPORT_SYMBOL vmlinux 0x8965ff37 qdisc_hash_add +EXPORT_SYMBOL vmlinux 0x896b4e94 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x89898459 kvm_irq_bypass +EXPORT_SYMBOL vmlinux 0x89b601e8 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x89cef6e7 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x89d27cd6 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x89d61de6 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x89deca91 ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0x8a0119f7 put_fs_context +EXPORT_SYMBOL vmlinux 0x8a106b6a fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0x8a126c59 kern_unmount_array +EXPORT_SYMBOL vmlinux 0x8a1e45f4 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x8a316bbe blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0x8a362caa dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x8a3a1a07 sock_no_bind +EXPORT_SYMBOL vmlinux 0x8a47043d LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4b7172 blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0x8a52c8bc dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x8a54050b __pud_cache_index +EXPORT_SYMBOL vmlinux 0x8a5e41a2 mmc_release_host +EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags +EXPORT_SYMBOL vmlinux 0x8a780e8f of_node_to_nid +EXPORT_SYMBOL vmlinux 0x8a7be0de page_mapped +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aaa5787 mipi_dsi_dcs_write +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 0x8acd67bd platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x8ad39905 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x8add807c bio_put +EXPORT_SYMBOL vmlinux 0x8ae71a72 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x8aeec782 devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x8af57571 ppc_md +EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x8b1fef4a tty_lock +EXPORT_SYMBOL vmlinux 0x8b2256ca i2c_clients_command +EXPORT_SYMBOL vmlinux 0x8b33a003 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x8b33aced inode_init_once +EXPORT_SYMBOL vmlinux 0x8b367a48 register_framebuffer +EXPORT_SYMBOL vmlinux 0x8b38d7df sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x8b423b16 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x8b45f170 md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x8b57557f flush_signals +EXPORT_SYMBOL vmlinux 0x8b5a4723 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b6769bb tty_port_close +EXPORT_SYMBOL vmlinux 0x8b763c29 ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x8b7ef2a2 pci_remove_bus +EXPORT_SYMBOL vmlinux 0x8b8059bd in_group_p +EXPORT_SYMBOL vmlinux 0x8b80a18d xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x8b910be2 errseq_sample +EXPORT_SYMBOL vmlinux 0x8b95ba41 dma_fence_signal +EXPORT_SYMBOL vmlinux 0x8bc71943 vga_put +EXPORT_SYMBOL vmlinux 0x8bde9d03 netdev_alert +EXPORT_SYMBOL vmlinux 0x8be189ab ucc_slow_disable +EXPORT_SYMBOL vmlinux 0x8be5e266 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0x8be7000a locks_free_lock +EXPORT_SYMBOL vmlinux 0x8bfabb13 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x8c111d68 flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x8c19b048 flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x8c30bf67 zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x8c5129e5 skb_copy_expand +EXPORT_SYMBOL vmlinux 0x8c51753a watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x8c55064f __lock_buffer +EXPORT_SYMBOL vmlinux 0x8c6d2014 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8ca57cfe generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x8cc53d20 __par_io_config_pin +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cf5f59b pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x8d09a688 param_set_byte +EXPORT_SYMBOL vmlinux 0x8d2753bc radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x8d28d48d tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x8d290607 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x8d42d58d dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x8d46b5a4 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x8d492d6e noop_dirty_folio +EXPORT_SYMBOL vmlinux 0x8d4f12d4 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d606c88 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x8d657d96 pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x8d677809 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x8d684b4a follow_down +EXPORT_SYMBOL vmlinux 0x8d6872c4 pci_read_config_byte +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d7687fa pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x8d8660a4 udp_seq_next +EXPORT_SYMBOL vmlinux 0x8d9b9fe9 security_sb_remount +EXPORT_SYMBOL vmlinux 0x8d9ce724 trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x8dca8379 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x8dd19827 of_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0x8dd565b4 vga_remove_vgacon +EXPORT_SYMBOL vmlinux 0x8dd8101e tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x8dd9dee3 input_set_keycode +EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8df4a7bc pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x8df4afd9 qe_put_snum +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null +EXPORT_SYMBOL vmlinux 0x8e09f961 tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0x8e13e01a module_refcount +EXPORT_SYMBOL vmlinux 0x8e159f7d d_instantiate +EXPORT_SYMBOL vmlinux 0x8e3a2fb8 xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x8e3e0f7d fault_in_readable +EXPORT_SYMBOL vmlinux 0x8e3fc2cc pcibus_to_node +EXPORT_SYMBOL vmlinux 0x8e44db4e sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x8e47089f sk_free +EXPORT_SYMBOL vmlinux 0x8e495e02 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x8e4b4abf phy_device_free +EXPORT_SYMBOL vmlinux 0x8e4c60a3 cpm_muram_dma +EXPORT_SYMBOL vmlinux 0x8e516edf mipi_dsi_dcs_enter_sleep_mode +EXPORT_SYMBOL vmlinux 0x8e86e8bd dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x8e8b0757 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x8ea120e6 mmc_erase +EXPORT_SYMBOL vmlinux 0x8ec45b30 start_tty +EXPORT_SYMBOL vmlinux 0x8ee25e66 get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x8ee5ab3d phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x8eec42b2 __debugger_bpt +EXPORT_SYMBOL vmlinux 0x8ef832f7 folio_unlock +EXPORT_SYMBOL vmlinux 0x8f01afd6 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x8f05c1c8 finish_open +EXPORT_SYMBOL vmlinux 0x8f07d3b6 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x8f26dab2 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x8f4a871d mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x8f5b016c register_filesystem +EXPORT_SYMBOL vmlinux 0x8f68da79 __cpu_online_mask +EXPORT_SYMBOL vmlinux 0x8f7259c2 srp_start_tl_fail_timers +EXPORT_SYMBOL vmlinux 0x8f78483f agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x8f84ebbb request_firmware +EXPORT_SYMBOL vmlinux 0x8f996a30 ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x8fb96bbc gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x8fcedb6e __vio_register_driver +EXPORT_SYMBOL vmlinux 0x8fd08ae1 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x900c9fd0 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x90228267 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x9023361b proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x902d8722 vme_slave_get +EXPORT_SYMBOL vmlinux 0x903d8002 configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0x90458283 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x90532365 __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x905695ab sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x90576ec4 vmemdup_user +EXPORT_SYMBOL vmlinux 0x909d9472 param_get_ullong +EXPORT_SYMBOL vmlinux 0x90a1d012 mmc_put_card +EXPORT_SYMBOL vmlinux 0x90a8d3a1 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x90b61ece __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x90ba912b __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x90bfbfd1 blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x90c90994 decrementer_clockevent +EXPORT_SYMBOL vmlinux 0x90da06fb pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0x90e3bbc1 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x90fa6b4e pci_claim_resource +EXPORT_SYMBOL vmlinux 0x91466d62 d_delete +EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec +EXPORT_SYMBOL vmlinux 0x915e252f md_bitmap_free +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue +EXPORT_SYMBOL vmlinux 0x916758a3 node_states +EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor +EXPORT_SYMBOL vmlinux 0x919437fe fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 +EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x91b33db4 put_disk +EXPORT_SYMBOL vmlinux 0x91ca3be8 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x91e9805b devfreq_update_interval +EXPORT_SYMBOL vmlinux 0x91ebe753 kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x91f4d6a1 security_locked_down +EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x91f6ddb6 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x91fcc8ab pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x91fd614b sk_stream_error +EXPORT_SYMBOL vmlinux 0x9222173c compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x92281465 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x92350a55 of_platform_device_create +EXPORT_SYMBOL vmlinux 0x923a557c poll_initwait +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923cfdc0 component_match_add_release +EXPORT_SYMBOL vmlinux 0x924df109 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x9251f0d2 wait_for_completion +EXPORT_SYMBOL vmlinux 0x9258c776 hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x927b8b6d mmc_register_driver +EXPORT_SYMBOL vmlinux 0x92817505 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x928b8016 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92997ed8 _printk +EXPORT_SYMBOL vmlinux 0x929ca23a __serio_register_driver +EXPORT_SYMBOL vmlinux 0x92a1b006 vfs_iter_read +EXPORT_SYMBOL vmlinux 0x92b6574a tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x92b9b180 slash_name +EXPORT_SYMBOL vmlinux 0x92ba3096 km_state_notify +EXPORT_SYMBOL vmlinux 0x92ba7998 netif_rx +EXPORT_SYMBOL vmlinux 0x92c2db6a add_watch_to_object +EXPORT_SYMBOL vmlinux 0x92c5baf2 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0x92d525b5 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq +EXPORT_SYMBOL vmlinux 0x92e36098 drop_super +EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL vmlinux 0x93022ba6 __scsi_format_command +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93306b99 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x9350da67 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x9353a7d8 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x93685528 pci_dev_put +EXPORT_SYMBOL vmlinux 0x936a76ca mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x937209a6 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x93821add kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93cd6cfc i2c_transfer_buffer_flags +EXPORT_SYMBOL vmlinux 0x93dc375c pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x93f78900 of_phy_register_fixed_link +EXPORT_SYMBOL vmlinux 0x93fba37b param_ops_uint +EXPORT_SYMBOL vmlinux 0x93fd7e0b take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x941924d4 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x94214de5 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x9422a66f cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn +EXPORT_SYMBOL vmlinux 0x9436eb11 pps_event +EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages +EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked +EXPORT_SYMBOL vmlinux 0x945a095b md_finish_reshape +EXPORT_SYMBOL vmlinux 0x94667988 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x946a23b5 default_amr +EXPORT_SYMBOL vmlinux 0x946e1d7a skb_pull +EXPORT_SYMBOL vmlinux 0x946eee1f phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a5fd84 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x94a9a4aa _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x94dd32c4 __inet_hash +EXPORT_SYMBOL vmlinux 0x94e50ad4 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x94eca2a5 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x94f3c65e pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x95032b59 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x9505b7eb rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x9514151a _mcount +EXPORT_SYMBOL vmlinux 0x951e551e km_new_mapping +EXPORT_SYMBOL vmlinux 0x952d26e4 dev_mc_del +EXPORT_SYMBOL vmlinux 0x9538f31c bio_free_pages +EXPORT_SYMBOL vmlinux 0x9539a85e agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x9539aa74 neigh_for_each +EXPORT_SYMBOL vmlinux 0x953d2426 utf8_strncmp +EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc +EXPORT_SYMBOL vmlinux 0x954df0bb of_get_ibm_chip_id +EXPORT_SYMBOL vmlinux 0x954f099c idr_preload +EXPORT_SYMBOL vmlinux 0x955bd2d6 phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0x955e8368 xor_altivec_5 +EXPORT_SYMBOL vmlinux 0x9574bda8 filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0x9584cb12 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x9593877a __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0x95943cf2 I_BDEV +EXPORT_SYMBOL vmlinux 0x95a0592c open_with_fake_path +EXPORT_SYMBOL vmlinux 0x95a75590 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x95b45053 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x95bd4d1d user_path_at_empty +EXPORT_SYMBOL vmlinux 0x95c6c48a qe_pin_set_gpio +EXPORT_SYMBOL vmlinux 0x95c76807 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x95c7ebb1 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x95e2fbcc __phy_read_mmd +EXPORT_SYMBOL vmlinux 0x95f20c29 eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0x95fd65a4 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x9601afb5 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0x9602f69c dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x96136a8c phy_connect_direct +EXPORT_SYMBOL vmlinux 0x961a38a9 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x962c4977 clkdev_add +EXPORT_SYMBOL vmlinux 0x963fb324 pagecache_get_page +EXPORT_SYMBOL vmlinux 0x964b734a rproc_free +EXPORT_SYMBOL vmlinux 0x9670aa8d devfreq_add_device +EXPORT_SYMBOL vmlinux 0x96848186 scnprintf +EXPORT_SYMBOL vmlinux 0x968a41d5 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x968a6381 flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x9690855e phy_suspend +EXPORT_SYMBOL vmlinux 0x969987fc lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x969eeac9 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x969f154d trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0x969fcbed __dec_node_page_state +EXPORT_SYMBOL vmlinux 0x96a25d6c file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x96a3e105 copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96b52358 __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x96c0f7bd mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96f971b0 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x971ec27c hvc_put_chars +EXPORT_SYMBOL vmlinux 0x973c09e5 __pgd_index_size +EXPORT_SYMBOL vmlinux 0x9744cf9f netdev_features_change +EXPORT_SYMBOL vmlinux 0x974a5911 kern_path_create +EXPORT_SYMBOL vmlinux 0x974e4f96 input_reset_device +EXPORT_SYMBOL vmlinux 0x976406bd remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x976c2a58 kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0x9772f304 vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x978b420d netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x97934ecf del_timer_sync +EXPORT_SYMBOL vmlinux 0x97a57333 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97bca6c5 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x97bd0805 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x97bf559b dm_io +EXPORT_SYMBOL vmlinux 0x97c4c718 inode_init_owner +EXPORT_SYMBOL vmlinux 0x97debb78 address_space_init_once +EXPORT_SYMBOL vmlinux 0x97ed2212 __tracepoint_spi_transfer_start +EXPORT_SYMBOL vmlinux 0x97ee0177 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x97f03d6f vio_cmo_entitlement_update +EXPORT_SYMBOL vmlinux 0x97f50986 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x97fe4702 iunique +EXPORT_SYMBOL vmlinux 0x98265475 udp_gro_receive +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x982a7402 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0x982a88a4 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x9839c36b phy_start +EXPORT_SYMBOL vmlinux 0x98425a92 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x9845be9d ppp_input_error +EXPORT_SYMBOL vmlinux 0x984a163f of_device_register +EXPORT_SYMBOL vmlinux 0x984bb083 uart_match_port +EXPORT_SYMBOL vmlinux 0x985b14fd percpu_counter_set +EXPORT_SYMBOL vmlinux 0x986d564b sget +EXPORT_SYMBOL vmlinux 0x98810a75 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x98848c34 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x98b386f8 netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98cf60b3 strlen +EXPORT_SYMBOL vmlinux 0x98df21cd dev_remove_pack +EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x98e6b73b bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x98fa0379 device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x990374f6 _copy_to_iter +EXPORT_SYMBOL vmlinux 0x9939eba0 backlight_unregister_notifier +EXPORT_SYMBOL vmlinux 0x994b9322 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x995a5521 skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0x995c927b simple_write_begin +EXPORT_SYMBOL vmlinux 0x9974a9b0 tty_do_resize +EXPORT_SYMBOL vmlinux 0x9984414f key_alloc +EXPORT_SYMBOL vmlinux 0x9996477b __nla_put +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99a5c185 __d_drop +EXPORT_SYMBOL vmlinux 0x99bb1ee2 blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99df62f2 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x99edc88c __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x99f92f28 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x9a0c3a18 vme_unregister_error_handler +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a3cf28d tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x9a4ccb35 kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0x9a4fbef7 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x9a53fb79 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x9a704c30 bdi_put +EXPORT_SYMBOL vmlinux 0x9a7ece5d pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x9a80961d genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0x9aa90b49 netif_tx_lock +EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x9aaff277 crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0x9acde112 gtm_ack_timer16 +EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit +EXPORT_SYMBOL vmlinux 0x9ae68757 nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x9afd7d6f iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x9b1ba2d1 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x9b1cba01 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b423284 validate_slab_cache +EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x9b8e13b6 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x9bb4e317 ioread32be +EXPORT_SYMBOL vmlinux 0x9bc10666 pipe_unlock +EXPORT_SYMBOL vmlinux 0x9bd048a5 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x9bea2401 irq_domain_set_info +EXPORT_SYMBOL vmlinux 0x9bf02e95 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0x9c1b6021 io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x9c3cfa3b filemap_flush +EXPORT_SYMBOL vmlinux 0x9c400c10 inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x9c46973c tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x9c4bbf4a blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x9c5a2ada ucc_fast_dump_regs +EXPORT_SYMBOL vmlinux 0x9c7c11d6 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x9ca54b1b netpoll_print_options +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9caceef7 is_nd_btt +EXPORT_SYMBOL vmlinux 0x9cc99c6b ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0x9ccf7171 vme_dma_pci_attribute +EXPORT_SYMBOL vmlinux 0x9cd302bb vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0x9cd7b37e alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x9cf2d9a1 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x9cf4c4f4 pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs +EXPORT_SYMBOL vmlinux 0x9d2031a4 kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0x9d22c2fd ata_print_version +EXPORT_SYMBOL vmlinux 0x9d26675e zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x9d2dc554 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d358400 gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x9d363134 qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x9d41e4bc filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x9d5a0724 unix_get_socket +EXPORT_SYMBOL vmlinux 0x9d6992e1 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x9d7ad0c8 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x9d7f9a58 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x9d96a9b0 mmu_hash_ops +EXPORT_SYMBOL vmlinux 0x9d9fda57 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x9da04dbd scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x9da87cce input_release_device +EXPORT_SYMBOL vmlinux 0x9dbef713 unload_nls +EXPORT_SYMBOL vmlinux 0x9dd8c0ab flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x9dd8dd57 load_fp_state +EXPORT_SYMBOL vmlinux 0x9de706b5 mempool_destroy +EXPORT_SYMBOL vmlinux 0x9df1aa94 __d_lookup_done +EXPORT_SYMBOL vmlinux 0x9dffb4f0 netdev_info +EXPORT_SYMBOL vmlinux 0x9e056233 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0fa5ae hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL vmlinux 0x9e4da44f unregister_quota_format +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5bbafc has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e6d3173 input_unregister_device +EXPORT_SYMBOL vmlinux 0x9e71b2fd __mdiobus_write +EXPORT_SYMBOL vmlinux 0x9e775621 mipi_dsi_dcs_set_page_address +EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time +EXPORT_SYMBOL vmlinux 0x9e9e26e0 devm_of_find_backlight +EXPORT_SYMBOL vmlinux 0x9e9eab95 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap +EXPORT_SYMBOL vmlinux 0x9eacf8a5 kstrndup +EXPORT_SYMBOL vmlinux 0x9ec0e639 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0x9ec22e11 dquot_alloc +EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x9ed978de vme_lm_set +EXPORT_SYMBOL vmlinux 0x9ef0ab4d block_dirty_folio +EXPORT_SYMBOL vmlinux 0x9ef81b61 skb_seq_read +EXPORT_SYMBOL vmlinux 0x9ef9d48c iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x9f0f22ed security_unix_may_send +EXPORT_SYMBOL vmlinux 0x9f1db9a8 config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x9f1f802a __nlmsg_put +EXPORT_SYMBOL vmlinux 0x9f3455e4 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict +EXPORT_SYMBOL vmlinux 0x9f521bd9 sk_ns_capable +EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x9f7f0687 blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fad518e irq_stat +EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x9fb83171 agp_bridge +EXPORT_SYMBOL vmlinux 0x9fbb5869 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x9fbc2e03 fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9fe7ceef param_set_ullong +EXPORT_SYMBOL vmlinux 0x9fea5cd3 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x9feba4db from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce +EXPORT_SYMBOL vmlinux 0x9ff08a03 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x9ff3efa2 alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9ffda59a bioset_init +EXPORT_SYMBOL vmlinux 0xa01a0791 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa0262284 radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0xa02ab399 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xa02e0b13 xfrm_init_state +EXPORT_SYMBOL vmlinux 0xa033d747 next_arg +EXPORT_SYMBOL vmlinux 0xa038b800 file_ns_capable +EXPORT_SYMBOL vmlinux 0xa03a0123 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa05742bb dentry_path_raw +EXPORT_SYMBOL vmlinux 0xa057df8f twl_set_regcache_bypass +EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0xa064359c dm_register_target +EXPORT_SYMBOL vmlinux 0xa075067c dcache_readdir +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup +EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or +EXPORT_SYMBOL vmlinux 0xa09255c4 ip_do_fragment +EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable +EXPORT_SYMBOL vmlinux 0xa0a7dff5 sock_create_kern +EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b3dc73 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xa0ba70dd mdiobus_write +EXPORT_SYMBOL vmlinux 0xa0bca750 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xa0be6072 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xa0bf4522 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xa0d87339 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0ea10f9 bdevname +EXPORT_SYMBOL vmlinux 0xa0eae826 smp_call_function +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0ebd437 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120e187 commit_creds +EXPORT_SYMBOL vmlinux 0xa1385212 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xa16b1cc7 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xa16c2979 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xa171d7b8 kthread_create_worker +EXPORT_SYMBOL vmlinux 0xa19f0688 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xa1a5e78b __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0xa1b8f774 security_binder_transaction +EXPORT_SYMBOL vmlinux 0xa1c4df65 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0xa1ccba25 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0xa1d5f0e9 eth_header +EXPORT_SYMBOL vmlinux 0xa1ea0160 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0xa1eaa2cd mempool_init +EXPORT_SYMBOL vmlinux 0xa1ec1b20 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0xa2060c07 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort +EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module +EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0xa2660e90 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xa26daaae truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xa27801b7 default_llseek +EXPORT_SYMBOL vmlinux 0xa2791ddf md_error +EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active +EXPORT_SYMBOL vmlinux 0xa2a3d0d9 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register +EXPORT_SYMBOL vmlinux 0xa2c5dd61 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa2c7e815 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xa2d20313 sock_set_priority +EXPORT_SYMBOL vmlinux 0xa2d7ec8d __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa2e1b237 __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xa2f7fd8b nf_log_packet +EXPORT_SYMBOL vmlinux 0xa2f89125 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0xa32d84c5 genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0xa331309a netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0xa33bf772 xfrm_state_free +EXPORT_SYMBOL vmlinux 0xa34ea576 trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xa366ff8d xa_get_order +EXPORT_SYMBOL vmlinux 0xa367722a freezing_slow_path +EXPORT_SYMBOL vmlinux 0xa38513e4 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot +EXPORT_SYMBOL vmlinux 0xa398d46f memcpy_page_flushcache +EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay +EXPORT_SYMBOL vmlinux 0xa39bd726 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xa3b210f7 ptp_find_pin +EXPORT_SYMBOL vmlinux 0xa3be8342 __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0xa3cefaa0 blake2s_update +EXPORT_SYMBOL vmlinux 0xa3e50b41 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final +EXPORT_SYMBOL vmlinux 0xa402ea91 scsi_ioctl +EXPORT_SYMBOL vmlinux 0xa4273c3b vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xa427c944 devm_clk_get +EXPORT_SYMBOL vmlinux 0xa43b1305 __filemap_get_folio +EXPORT_SYMBOL vmlinux 0xa453fa05 dma_set_mask +EXPORT_SYMBOL vmlinux 0xa458c78c posix_acl_valid +EXPORT_SYMBOL vmlinux 0xa46d623d dm_table_get_size +EXPORT_SYMBOL vmlinux 0xa473c2f0 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xa489a97f mr_table_alloc +EXPORT_SYMBOL vmlinux 0xa4940a20 flush_dcache_icache_page +EXPORT_SYMBOL vmlinux 0xa49a9b46 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa49d9b01 netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0xa4a9afd6 sock_kfree_s +EXPORT_SYMBOL vmlinux 0xa4ac951d tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0xa4b82dd2 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4bf16b1 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xa4c2a876 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e25fc0 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xa4f51198 _dev_crit +EXPORT_SYMBOL vmlinux 0xa50326d9 sg_miter_start +EXPORT_SYMBOL vmlinux 0xa50a3da7 _find_next_bit +EXPORT_SYMBOL vmlinux 0xa524175b __put_cred +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa55c3275 pci_get_slot +EXPORT_SYMBOL vmlinux 0xa574d485 fs_lookup_param +EXPORT_SYMBOL vmlinux 0xa581f992 rproc_mem_entry_init +EXPORT_SYMBOL vmlinux 0xa59c7b68 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xa5b6cbe1 migrate_vma_finalize +EXPORT_SYMBOL vmlinux 0xa5c48ad1 page_cache_next_miss +EXPORT_SYMBOL vmlinux 0xa5cc314e iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0xa5db2eb9 input_get_keycode +EXPORT_SYMBOL vmlinux 0xa5e340f5 input_register_device +EXPORT_SYMBOL vmlinux 0xa6138ecf sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0xa6351fd3 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xa635d2a6 profile_pc +EXPORT_SYMBOL vmlinux 0xa63b4812 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0xa63edd39 nd_region_release_lane +EXPORT_SYMBOL vmlinux 0xa63edec4 scsi_host_put +EXPORT_SYMBOL vmlinux 0xa648e561 __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0xa64cdaba radix__flush_all_mm +EXPORT_SYMBOL vmlinux 0xa6579f21 __pud_val_bits +EXPORT_SYMBOL vmlinux 0xa6587ee3 vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio +EXPORT_SYMBOL vmlinux 0xa659c5aa twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xa659fb52 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xa65e1216 nd_device_unregister +EXPORT_SYMBOL vmlinux 0xa65e7561 get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0xa6664889 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0xa668c02d of_get_next_cpu_node +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68d3ee3 d_splice_alias +EXPORT_SYMBOL vmlinux 0xa6a5531a dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0xa6ca5f4a skb_clone_sk +EXPORT_SYMBOL vmlinux 0xa6d3a047 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0xa6e72fb3 device_add_disk +EXPORT_SYMBOL vmlinux 0xa6e95542 of_graph_get_remote_port +EXPORT_SYMBOL vmlinux 0xa71a6087 nd_dax_probe +EXPORT_SYMBOL vmlinux 0xa71d2e2c ioread16be +EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0xa751ebde icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0xa75c2039 of_node_name_eq +EXPORT_SYMBOL vmlinux 0xa77b1ed6 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0xa78af5f3 ioread32 +EXPORT_SYMBOL vmlinux 0xa78c6986 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xa79bff2d hpage_shift +EXPORT_SYMBOL vmlinux 0xa79d5965 secpath_set +EXPORT_SYMBOL vmlinux 0xa7b2bf37 netpoll_send_skb +EXPORT_SYMBOL vmlinux 0xa7b537c0 tcp_release_cb +EXPORT_SYMBOL vmlinux 0xa7b9bd80 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xa7c45e7e rproc_coredump_add_custom_segment +EXPORT_SYMBOL vmlinux 0xa7eba958 fb_validate_mode +EXPORT_SYMBOL vmlinux 0xa7ec1202 devm_ioport_map +EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xa7f4d831 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xa7f7d578 param_ops_short +EXPORT_SYMBOL vmlinux 0xa819c65d flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0xa81e85d8 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0xa82057b6 pci_disable_device +EXPORT_SYMBOL vmlinux 0xa8332c78 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xa8393fa1 give_up_console +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84474aa _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0xa84ce9e0 crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0xa84eded7 dev_open +EXPORT_SYMBOL vmlinux 0xa8550b85 deactivate_super +EXPORT_SYMBOL vmlinux 0xa85f794d do_splice_direct +EXPORT_SYMBOL vmlinux 0xa8694ecd kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xa8896319 __xa_clear_mark +EXPORT_SYMBOL vmlinux 0xa894fc4d dev_pm_opp_register_notifier +EXPORT_SYMBOL vmlinux 0xa8a7a5aa blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0xa8a83aba uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xa8afeca0 skb_store_bits +EXPORT_SYMBOL vmlinux 0xa8caa845 clk_bulk_put_all +EXPORT_SYMBOL vmlinux 0xa8d67488 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0xa8dbd17f devm_of_mdiobus_register +EXPORT_SYMBOL vmlinux 0xa8e4c1ab inet_shutdown +EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xa8f82170 iov_iter_init +EXPORT_SYMBOL vmlinux 0xa8fe7763 fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work +EXPORT_SYMBOL vmlinux 0xa90ee7fe of_iomap +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa924b4aa __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xa929cb58 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa9477ec7 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value +EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap +EXPORT_SYMBOL vmlinux 0xa983d979 of_get_cpu_state_node +EXPORT_SYMBOL vmlinux 0xa98b7b52 pci_bus_type +EXPORT_SYMBOL vmlinux 0xa9beb5b1 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xa9cda1d7 inet_sk_set_state +EXPORT_SYMBOL vmlinux 0xa9dce021 _dev_printk +EXPORT_SYMBOL vmlinux 0xa9dffce5 mempool_free +EXPORT_SYMBOL vmlinux 0xa9e061ba request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xaa0c318b vscnprintf +EXPORT_SYMBOL vmlinux 0xaa0ea529 xp_can_alloc +EXPORT_SYMBOL vmlinux 0xaa16b88e inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol +EXPORT_SYMBOL vmlinux 0xaa2e2f6c inc_node_page_state +EXPORT_SYMBOL vmlinux 0xaa3c9fde phy_attach_direct +EXPORT_SYMBOL vmlinux 0xaa3f6f04 radix__flush_tlb_kernel_range +EXPORT_SYMBOL vmlinux 0xaa4172b3 pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0xaa4323fc get_thermal_instance +EXPORT_SYMBOL vmlinux 0xaa4a4a70 mpage_writepages +EXPORT_SYMBOL vmlinux 0xaa4fbfc0 padata_do_serial +EXPORT_SYMBOL vmlinux 0xaa5d58cb qdisc_reset +EXPORT_SYMBOL vmlinux 0xaa6002a7 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa75c1d8 phy_read_paged +EXPORT_SYMBOL vmlinux 0xaa797546 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0xaa7a930d bio_kmalloc +EXPORT_SYMBOL vmlinux 0xaa9179c4 ida_alloc_range +EXPORT_SYMBOL vmlinux 0xaa999bb7 dev_add_offload +EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic +EXPORT_SYMBOL vmlinux 0xaaabe0b8 page_mapping +EXPORT_SYMBOL vmlinux 0xaab2ee91 complete_all +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 0xaae21864 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xaaf60a99 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab18eb39 phy_do_ioctl +EXPORT_SYMBOL vmlinux 0xab22d791 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0xab23aa47 reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init +EXPORT_SYMBOL vmlinux 0xab387265 generic_read_dir +EXPORT_SYMBOL vmlinux 0xab3b75ea vme_dma_pattern_attribute +EXPORT_SYMBOL vmlinux 0xab42b835 lock_rename +EXPORT_SYMBOL vmlinux 0xab63baa5 unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xab6d5b3b hex_to_bin +EXPORT_SYMBOL vmlinux 0xab76e446 __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab8336a5 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xabac53fe pci_write_config_byte +EXPORT_SYMBOL vmlinux 0xabae5ba5 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xabd0ce3d __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0xabed5b7b free_cgroup_ns +EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1ecb1d devfreq_unregister_opp_notifier +EXPORT_SYMBOL vmlinux 0xac27501a proc_create_mount_point +EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac3520b0 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xac40185c pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xac430423 __pmd_val_bits +EXPORT_SYMBOL vmlinux 0xac4b739a elv_rb_del +EXPORT_SYMBOL vmlinux 0xac588423 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xac5932f0 security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac653b9e tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xac690f11 nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0xac7644e4 rtc_add_groups +EXPORT_SYMBOL vmlinux 0xac8597d5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xac96a610 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacd1fee0 __i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xacddd806 ptp_get_vclocks_index +EXPORT_SYMBOL vmlinux 0xace43fc7 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xacff3ae7 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xad00175c flush_dcache_folio +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad128dc1 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0xad280411 blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0xad357133 __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0xad50cebb i8253_lock +EXPORT_SYMBOL vmlinux 0xad73041f autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xad86e51d dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xad91e1bf of_graph_get_endpoint_count +EXPORT_SYMBOL vmlinux 0xad9dd538 i8042_install_filter +EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final +EXPORT_SYMBOL vmlinux 0xadbc8f62 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xadbecb18 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0xadbeed61 mipi_dsi_packet_format_is_long +EXPORT_SYMBOL vmlinux 0xadc044b7 vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed +EXPORT_SYMBOL vmlinux 0xaddef767 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0xade41143 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xadeede61 md_done_sync +EXPORT_SYMBOL vmlinux 0xadfdfcef __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae233ec2 xp_dma_map +EXPORT_SYMBOL vmlinux 0xae23f95b bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0xae3063d5 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0xae4265ab __do_once_slow_done +EXPORT_SYMBOL vmlinux 0xae4671b5 gro_cells_receive +EXPORT_SYMBOL vmlinux 0xae4c8439 __pte_table_size +EXPORT_SYMBOL vmlinux 0xae556e59 flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0xae58756d netdev_reset_tc +EXPORT_SYMBOL vmlinux 0xae5b2f60 pcie_set_mps +EXPORT_SYMBOL vmlinux 0xae66d322 phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0xae6f1879 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid +EXPORT_SYMBOL vmlinux 0xaeae3105 sock_set_mark +EXPORT_SYMBOL vmlinux 0xaeb2b4d7 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xaeb67b2a jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xaeca8967 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xaee12882 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xaee60a93 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0xaef1263f inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xaef5e026 config_group_init +EXPORT_SYMBOL vmlinux 0xaef89071 nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0xaefa9e33 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xaf2c3ffc mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf509757 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0xaf68d988 inet_frag_find +EXPORT_SYMBOL vmlinux 0xaf6b534a sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xaf71e9c0 tty_register_device +EXPORT_SYMBOL vmlinux 0xaf7662fd call_fib_notifiers +EXPORT_SYMBOL vmlinux 0xaf7946bc ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xafa48f9c __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0xafb8a1e8 genphy_soft_reset +EXPORT_SYMBOL vmlinux 0xafc06bcd wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xafc08054 dotdot_name +EXPORT_SYMBOL vmlinux 0xafc4b564 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xafc6c68e zstd_is_error +EXPORT_SYMBOL vmlinux 0xafd008ab tty_port_close_end +EXPORT_SYMBOL vmlinux 0xafd5db6a ppp_channel_index +EXPORT_SYMBOL vmlinux 0xafd82465 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xafe545d6 vme_lm_request +EXPORT_SYMBOL vmlinux 0xafecaece init_task +EXPORT_SYMBOL vmlinux 0xb01559ab scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb033078d sock_no_accept +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb067b3e6 fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0xb06be062 fwnode_irq_get +EXPORT_SYMBOL vmlinux 0xb07afcf6 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xb08cc567 __ps2_command +EXPORT_SYMBOL vmlinux 0xb099a757 __SetPageMovable +EXPORT_SYMBOL vmlinux 0xb09a71e1 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0abd837 copy_page_from_iter +EXPORT_SYMBOL vmlinux 0xb0ac72f3 kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0xb0bde8a0 complete_request_key +EXPORT_SYMBOL vmlinux 0xb0c18894 mount_bdev +EXPORT_SYMBOL vmlinux 0xb0c76281 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xb0d64701 nd_region_acquire_lane +EXPORT_SYMBOL vmlinux 0xb0d7455d vio_get_attribute +EXPORT_SYMBOL vmlinux 0xb0d8d05f skb_tx_error +EXPORT_SYMBOL vmlinux 0xb0dcd3f9 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xb0dd4f2d generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb10e7df4 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xb117808b stop_tty +EXPORT_SYMBOL vmlinux 0xb12258e4 mmc_run_bkops +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12f5842 vfs_get_super +EXPORT_SYMBOL vmlinux 0xb147a855 dql_reset +EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0xb14c827f security_inode_copy_up +EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 +EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec +EXPORT_SYMBOL vmlinux 0xb15d5e79 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xb15f8231 pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0xb160d0de security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xb17fabb3 inode_insert5 +EXPORT_SYMBOL vmlinux 0xb186a8e0 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0xb190f717 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xb19d55df fsl_upm_run_pattern +EXPORT_SYMBOL vmlinux 0xb1a43226 udp_set_csum +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c5c64e gtm_set_exact_timer16 +EXPORT_SYMBOL vmlinux 0xb1c880c6 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xb1dd1ed2 dev_close +EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xb1f5fa64 drop_super_exclusive +EXPORT_SYMBOL vmlinux 0xb2012a4a inet_listen +EXPORT_SYMBOL vmlinux 0xb204cdf8 seq_release +EXPORT_SYMBOL vmlinux 0xb215a043 of_get_property +EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xb23027c1 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xb23ac325 tty_port_init +EXPORT_SYMBOL vmlinux 0xb257f097 sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0xb25c13dd __quota_error +EXPORT_SYMBOL vmlinux 0xb2635052 node_data +EXPORT_SYMBOL vmlinux 0xb2707445 folio_mark_accessed +EXPORT_SYMBOL vmlinux 0xb28d4d33 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0xb29ec987 phy_aneg_done +EXPORT_SYMBOL vmlinux 0xb2acc4cd __msr_check_and_clear +EXPORT_SYMBOL vmlinux 0xb2acd9e5 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xb2c6db3e pci_find_bus +EXPORT_SYMBOL vmlinux 0xb2dac6c7 dquot_disable +EXPORT_SYMBOL vmlinux 0xb2e3f1a9 gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0xb2f35c6a xxh64 +EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xb2ff0ee7 iov_iter_npages +EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken +EXPORT_SYMBOL vmlinux 0xb30b9822 vme_master_set +EXPORT_SYMBOL vmlinux 0xb31cca18 input_close_device +EXPORT_SYMBOL vmlinux 0xb320cc0e sg_init_one +EXPORT_SYMBOL vmlinux 0xb3258f79 __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0xb32801f5 netif_carrier_off +EXPORT_SYMBOL vmlinux 0xb32b6200 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0xb332f70f __netif_schedule +EXPORT_SYMBOL vmlinux 0xb3469e0e shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0xb350f6f2 dqstats +EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xb37f30a1 nd_device_notify +EXPORT_SYMBOL vmlinux 0xb383f28c of_graph_get_endpoint_by_regs +EXPORT_SYMBOL vmlinux 0xb38512d7 xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0xb3945a34 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xb39a22ad netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0xb3b4ac3d __folio_start_writeback +EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0xb3d6097e i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xb3e3ac95 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xb3f0de55 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0xb3f49446 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xb3f548ad kmemdup_nul +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb40a73a8 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb412220c tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb432fa28 mipi_dsi_host_unregister +EXPORT_SYMBOL vmlinux 0xb439860d d_genocide +EXPORT_SYMBOL vmlinux 0xb4424b2b proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0xb44478a6 qe_pin_free +EXPORT_SYMBOL vmlinux 0xb4648dae padata_alloc_shell +EXPORT_SYMBOL vmlinux 0xb471d302 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0xb473e2c2 lockref_get +EXPORT_SYMBOL vmlinux 0xb475ec92 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xb47be20e pseries_disable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0xb487210c __nla_reserve +EXPORT_SYMBOL vmlinux 0xb48a8f80 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb4936bb1 tcf_idr_release +EXPORT_SYMBOL vmlinux 0xb494d42b fs_param_is_path +EXPORT_SYMBOL vmlinux 0xb4e4409d simple_dir_operations +EXPORT_SYMBOL vmlinux 0xb4f13d2a abort +EXPORT_SYMBOL vmlinux 0xb4ffe415 dm_table_get_md +EXPORT_SYMBOL vmlinux 0xb50a042d mipi_dsi_generic_write +EXPORT_SYMBOL vmlinux 0xb511dc5e i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL vmlinux 0xb517f0ff prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xb5210e33 netif_schedule_queue +EXPORT_SYMBOL vmlinux 0xb522fa49 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xb539b516 dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0xb53ae8ea of_match_device +EXPORT_SYMBOL vmlinux 0xb555f9f3 gtm_get_specific_timer16 +EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb58b94c4 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb58cb1c0 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0xb5b65bcd devm_extcon_unregister_notifier +EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xb5e876c4 get_tz_trend +EXPORT_SYMBOL vmlinux 0xb5f05e4e proto_register +EXPORT_SYMBOL vmlinux 0xb600afb5 param_set_bint +EXPORT_SYMBOL vmlinux 0xb62c5dec xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0xb62e6f6c pci_find_resource +EXPORT_SYMBOL vmlinux 0xb63154fc __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable +EXPORT_SYMBOL vmlinux 0xb634e6e1 generic_update_time +EXPORT_SYMBOL vmlinux 0xb6361231 mutex_is_locked +EXPORT_SYMBOL vmlinux 0xb638cf1a blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0xb63ba210 sk_capable +EXPORT_SYMBOL vmlinux 0xb6408c25 mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0xb6411146 udp_seq_stop +EXPORT_SYMBOL vmlinux 0xb6426c0f fs_param_is_blob +EXPORT_SYMBOL vmlinux 0xb65278f7 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xb65693bf sk_wait_data +EXPORT_SYMBOL vmlinux 0xb665f115 get_cached_acl +EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb6741e77 seq_release_private +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67d011c __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse +EXPORT_SYMBOL vmlinux 0xb68941df vlan_for_each +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb69776c2 netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0xb699d50b inode_io_list_del +EXPORT_SYMBOL vmlinux 0xb6a229ac __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0xb6adab76 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xb6b23de9 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0xb6be4433 vme_slot_num +EXPORT_SYMBOL vmlinux 0xb6c7caae i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit +EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb6fae8e9 tty_unlock +EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd +EXPORT_SYMBOL vmlinux 0xb70289d9 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xb7112039 sock_no_connect +EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces +EXPORT_SYMBOL vmlinux 0xb716323e set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0xb720e1ab mem_section +EXPORT_SYMBOL vmlinux 0xb7487f80 pci_iomap +EXPORT_SYMBOL vmlinux 0xb749332d pnv_cxl_alloc_hwirqs +EXPORT_SYMBOL vmlinux 0xb7688155 ucc_slow_init +EXPORT_SYMBOL vmlinux 0xb78cb36b console_stop +EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0xb7997a75 is_bad_inode +EXPORT_SYMBOL vmlinux 0xb7a4e889 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0xb7a58915 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xb7c0f443 sort +EXPORT_SYMBOL vmlinux 0xb7c5ea37 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0xb7d2ef3d gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0xb7d49182 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xb7e4b29f skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xb7eb4b93 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xb7f12ab9 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xb7f58416 vmap +EXPORT_SYMBOL vmlinux 0xb80b4a18 zstd_compress_bound +EXPORT_SYMBOL vmlinux 0xb823bc8c reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0xb83b8b69 __check_sticky +EXPORT_SYMBOL vmlinux 0xb843e47c ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0xb84575ae netlink_set_err +EXPORT_SYMBOL vmlinux 0xb851d2c6 of_cpu_node_to_id +EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key +EXPORT_SYMBOL vmlinux 0xb86c1ea0 param_set_ulong +EXPORT_SYMBOL vmlinux 0xb87f9558 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link +EXPORT_SYMBOL vmlinux 0xb8b9f817 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xb8bca298 __bio_advance +EXPORT_SYMBOL vmlinux 0xb8c6ffff __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0xb8caed8a inet_add_protocol +EXPORT_SYMBOL vmlinux 0xb8d224d7 devm_kvasprintf +EXPORT_SYMBOL vmlinux 0xb8ed0bb8 backlight_device_register +EXPORT_SYMBOL vmlinux 0xb8ff71b0 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xb9056bb6 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max +EXPORT_SYMBOL vmlinux 0xb91b1d3f tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0xb92c9d99 mmc_request_done +EXPORT_SYMBOL vmlinux 0xb931799c sock_i_uid +EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xb9478d90 hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0xb95c4997 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context +EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse +EXPORT_SYMBOL vmlinux 0xb996ee32 param_get_bool +EXPORT_SYMBOL vmlinux 0xb9c1a52b fs_param_is_fd +EXPORT_SYMBOL vmlinux 0xb9c1e085 napi_disable +EXPORT_SYMBOL vmlinux 0xb9d1a5a2 remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0xb9d70e7f igrab +EXPORT_SYMBOL vmlinux 0xb9de864d vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0xb9dfecc3 __fput_sync +EXPORT_SYMBOL vmlinux 0xb9e5f935 vfs_ioctl +EXPORT_SYMBOL vmlinux 0xb9e69dab end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat +EXPORT_SYMBOL vmlinux 0xba087bd6 nla_reserve +EXPORT_SYMBOL vmlinux 0xba1008c8 __crc32c_le +EXPORT_SYMBOL vmlinux 0xba2fc9f5 ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba53adab nla_policy_len +EXPORT_SYMBOL vmlinux 0xba67a355 nmi_panic +EXPORT_SYMBOL vmlinux 0xba691c85 _insb +EXPORT_SYMBOL vmlinux 0xba6fc857 pipe_lock +EXPORT_SYMBOL vmlinux 0xba707a78 qe_get_brg_clk +EXPORT_SYMBOL vmlinux 0xba70b826 bio_copy_data +EXPORT_SYMBOL vmlinux 0xba76af71 rproc_coredump_add_segment +EXPORT_SYMBOL vmlinux 0xba7bc634 register_fib_notifier +EXPORT_SYMBOL vmlinux 0xba841119 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xba86f3e6 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xba8f48c6 param_ops_long +EXPORT_SYMBOL vmlinux 0xba927634 init_pseudo +EXPORT_SYMBOL vmlinux 0xbaa21efb scm_detach_fds +EXPORT_SYMBOL vmlinux 0xbabee714 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0xbacfb8cf twl6040_power +EXPORT_SYMBOL vmlinux 0xbaf431d7 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset +EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb2b771e mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0xbb390c66 md_check_recovery +EXPORT_SYMBOL vmlinux 0xbb3e2857 dev_uc_add +EXPORT_SYMBOL vmlinux 0xbb3e9e90 __pmd_table_size +EXPORT_SYMBOL vmlinux 0xbb441e85 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb57b70d neigh_table_clear +EXPORT_SYMBOL vmlinux 0xbb7b414e gtm_stop_timer16 +EXPORT_SYMBOL vmlinux 0xbb87404e from_kuid +EXPORT_SYMBOL vmlinux 0xbb922db2 flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0xbb9c0fcf inet_stream_ops +EXPORT_SYMBOL vmlinux 0xbba75607 down_killable +EXPORT_SYMBOL vmlinux 0xbbaec6b0 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0xbbc30078 vm_insert_pages +EXPORT_SYMBOL vmlinux 0xbbdecf3a fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0xbbe26dce dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xbbe80fdb kmalloc_order +EXPORT_SYMBOL vmlinux 0xbbfcdfdd ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0xbc1f09cd request_key_rcu +EXPORT_SYMBOL vmlinux 0xbc239592 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0xbc35ce92 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xbc42c17f mutex_unlock +EXPORT_SYMBOL vmlinux 0xbc449bb3 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xbc45c808 input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0xbc485c4f d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xbc49d094 d_set_fallthru +EXPORT_SYMBOL vmlinux 0xbc4dcfdf rproc_add_carveout +EXPORT_SYMBOL vmlinux 0xbc5546bd page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0xbc55da54 nlmsg_notify +EXPORT_SYMBOL vmlinux 0xbc62b910 mipi_dsi_dcs_set_column_address +EXPORT_SYMBOL vmlinux 0xbc982b06 eeh_subsystem_flags +EXPORT_SYMBOL vmlinux 0xbca764ee pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xbca9aea9 param_get_ulong +EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf +EXPORT_SYMBOL vmlinux 0xbccc428b ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xbcdac172 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xbce24d53 tcp_peek_len +EXPORT_SYMBOL vmlinux 0xbcee8bdf xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xbcf2ff15 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xbcf54e7f _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0xbd0da238 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0xbd13be9c __skb_ext_del +EXPORT_SYMBOL vmlinux 0xbd2b5067 vme_bus_type +EXPORT_SYMBOL vmlinux 0xbd30a026 tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0xbd37de78 seq_file_path +EXPORT_SYMBOL vmlinux 0xbd393ca3 ioread64be_lo_hi +EXPORT_SYMBOL vmlinux 0xbd3c07c7 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd5bf06a blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0xbd628752 __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbd64663b mipi_dsi_compression_mode +EXPORT_SYMBOL vmlinux 0xbd6841d4 crc16 +EXPORT_SYMBOL vmlinux 0xbd702b12 mdio_device_create +EXPORT_SYMBOL vmlinux 0xbd798649 dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0xbd92817b __seq_open_private +EXPORT_SYMBOL vmlinux 0xbd964c06 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0xbdbb85eb begin_new_exec +EXPORT_SYMBOL vmlinux 0xbdd59566 vio_disable_interrupts +EXPORT_SYMBOL vmlinux 0xbe118c52 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xbe156276 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xbe171f7c sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xbe237ca2 devm_free_irq +EXPORT_SYMBOL vmlinux 0xbe308373 devfreq_update_target +EXPORT_SYMBOL vmlinux 0xbe495e8f pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xbe4eb6ed secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xbe530ee9 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xbe5a24e9 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0xbe66344d __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0xbe6a8c96 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xbe7a7185 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0xbe7d132a set_posix_acl +EXPORT_SYMBOL vmlinux 0xbe8f0ef2 of_node_put +EXPORT_SYMBOL vmlinux 0xbe93fcf6 of_match_node +EXPORT_SYMBOL vmlinux 0xbe940206 tcf_register_action +EXPORT_SYMBOL vmlinux 0xbea7bc94 sync_filesystem +EXPORT_SYMBOL vmlinux 0xbeba7bd9 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xbebb3c6e __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf215387 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0xbf3076ff pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0xbf3cc0cd vfs_mkdir +EXPORT_SYMBOL vmlinux 0xbf596f45 _insl_ns +EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init +EXPORT_SYMBOL vmlinux 0xbf5c21ef nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0xbf6908b2 _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xbf6dd507 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0xbf7220f4 config_item_put +EXPORT_SYMBOL vmlinux 0xbf7375d8 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0xbf84c284 mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0xbf89785b __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0xbf974c5d sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbf9c1f6e con_is_visible +EXPORT_SYMBOL vmlinux 0xbf9f30e6 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xbfae9e07 utf8_validate +EXPORT_SYMBOL vmlinux 0xbfc0d310 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfe91ac7 skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0xbfe92ab2 agp_find_bridge +EXPORT_SYMBOL vmlinux 0xbff7341f freeze_bdev +EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets +EXPORT_SYMBOL vmlinux 0xc00134c3 dev_uc_del +EXPORT_SYMBOL vmlinux 0xc0364007 fault_in_writeable +EXPORT_SYMBOL vmlinux 0xc039ed3b param_set_invbool +EXPORT_SYMBOL vmlinux 0xc04e29cc init_special_inode +EXPORT_SYMBOL vmlinux 0xc062245e __phy_resume +EXPORT_SYMBOL vmlinux 0xc0715ac1 pci_find_capability +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc078d22c zstd_init_cstream +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc0893e56 tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0xc0954478 nla_put +EXPORT_SYMBOL vmlinux 0xc0afb5d7 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0xc0b346d8 opal_nx_coproc_init +EXPORT_SYMBOL vmlinux 0xc0c4943e __vfs_getxattr +EXPORT_SYMBOL vmlinux 0xc0c56042 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xc0caa912 vga_con +EXPORT_SYMBOL vmlinux 0xc0cf629c tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0xc0d6d78f __var_waitqueue +EXPORT_SYMBOL vmlinux 0xc0e0f879 add_to_pipe +EXPORT_SYMBOL vmlinux 0xc0ee7475 skb_unlink +EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup +EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor +EXPORT_SYMBOL vmlinux 0xc1163da1 km_query +EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0xc1258334 phy_stop +EXPORT_SYMBOL vmlinux 0xc12b4bbd rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xc12caffd blk_queue_split +EXPORT_SYMBOL vmlinux 0xc134b38b ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0xc135e48d scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xc144214e default_qdisc_ops +EXPORT_SYMBOL vmlinux 0xc14c3906 unpin_user_pages +EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc16359f2 __skb_pad +EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xc17eacc4 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xc1808065 truncate_setsize +EXPORT_SYMBOL vmlinux 0xc18803ca fput +EXPORT_SYMBOL vmlinux 0xc1a2b839 of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xc1b2096a neigh_update +EXPORT_SYMBOL vmlinux 0xc1c7d71c flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0xc1ce2bd1 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0xc1d2687c xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xc1d5d504 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xc1d6db7a qe_pin_request +EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget +EXPORT_SYMBOL vmlinux 0xc1e4b583 param_get_uint +EXPORT_SYMBOL vmlinux 0xc2130302 of_io_request_and_map +EXPORT_SYMBOL vmlinux 0xc21e563c brioctl_set +EXPORT_SYMBOL vmlinux 0xc22467f2 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0xc225f84a rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0xc226b040 mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0xc2317264 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc2450fb9 read_cache_folio +EXPORT_SYMBOL vmlinux 0xc24586f1 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xc2490212 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xc256b176 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xc269e70c thaw_bdev +EXPORT_SYMBOL vmlinux 0xc26edb30 netdev_change_features +EXPORT_SYMBOL vmlinux 0xc26f097e input_open_device +EXPORT_SYMBOL vmlinux 0xc2818b37 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0xc289c04c tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xc28e10d6 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2b84282 dst_dev_put +EXPORT_SYMBOL vmlinux 0xc2c0ae35 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e86396 rt6_lookup +EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state +EXPORT_SYMBOL vmlinux 0xc30e98ca of_pci_range_to_resource +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc31e15bf blk_get_queue +EXPORT_SYMBOL vmlinux 0xc3222e60 generic_file_llseek +EXPORT_SYMBOL vmlinux 0xc324eac9 vfs_mknod +EXPORT_SYMBOL vmlinux 0xc3271dfe file_open_root +EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xc32cac4a rproc_resource_cleanup +EXPORT_SYMBOL vmlinux 0xc3372424 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0xc33dda8e udp_seq_start +EXPORT_SYMBOL vmlinux 0xc360ac72 tso_count_descs +EXPORT_SYMBOL vmlinux 0xc362b5b4 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xc367c90b get_acl +EXPORT_SYMBOL vmlinux 0xc36bee9a vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0xc36ea07b elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xc36f982d vme_unregister_driver +EXPORT_SYMBOL vmlinux 0xc37cb073 key_task_permission +EXPORT_SYMBOL vmlinux 0xc37d3da2 dm_put_device +EXPORT_SYMBOL vmlinux 0xc37f9c6e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0xc38b7ef5 netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer +EXPORT_SYMBOL vmlinux 0xc396bd39 vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0xc3b7b4e6 input_register_handler +EXPORT_SYMBOL vmlinux 0xc3c288ab kill_anon_super +EXPORT_SYMBOL vmlinux 0xc3c37185 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0xc3c52ae8 of_get_next_parent +EXPORT_SYMBOL vmlinux 0xc3ca506e vm_map_pages +EXPORT_SYMBOL vmlinux 0xc3df5768 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xc3f3a57a netif_carrier_on +EXPORT_SYMBOL vmlinux 0xc4095321 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xc41bc980 iwe_stream_add_value +EXPORT_SYMBOL vmlinux 0xc41f2b8b msi_bitmap_free_hwirqs +EXPORT_SYMBOL vmlinux 0xc4212ab9 qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xc429577e zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xc4470d80 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xc44b2409 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xc452212c utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0xc4609573 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xc4708199 cpm_muram_addr +EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc48b4bcc current_in_userns +EXPORT_SYMBOL vmlinux 0xc49eb6a1 napi_complete_done +EXPORT_SYMBOL vmlinux 0xc4ae915e arch_touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xc4b8c5f1 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xc4bc915e nobh_write_begin +EXPORT_SYMBOL vmlinux 0xc4cdf48f _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xc4d0e458 pci_enable_device +EXPORT_SYMBOL vmlinux 0xc4edd791 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0xc4f2d1e0 flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0xc514636d xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xc51a3640 down_write_killable +EXPORT_SYMBOL vmlinux 0xc556b1ad del_gendisk +EXPORT_SYMBOL vmlinux 0xc5616685 vfio_pin_pages +EXPORT_SYMBOL vmlinux 0xc5658c49 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0xc58d5a90 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xc595fa02 mipi_dsi_shutdown_peripheral +EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc5a3367a __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xc5a396fd udplite_table +EXPORT_SYMBOL vmlinux 0xc5b16c8c sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0xc5b494cd qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xc5b523ae md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on +EXPORT_SYMBOL vmlinux 0xc5d48354 of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource +EXPORT_SYMBOL vmlinux 0xc5f51443 __i2c_transfer +EXPORT_SYMBOL vmlinux 0xc5f7e801 sg_last +EXPORT_SYMBOL vmlinux 0xc608d292 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus +EXPORT_SYMBOL vmlinux 0xc61b8087 idr_destroy +EXPORT_SYMBOL vmlinux 0xc61ca65e iowrite64be_hi_lo +EXPORT_SYMBOL vmlinux 0xc622b128 __nd_driver_register +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc6369552 sync_file_get_fence +EXPORT_SYMBOL vmlinux 0xc65af6e2 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xc660bafa dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xc664b528 mempool_create_node +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc66a8304 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0xc67e4758 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xc683cf53 of_n_size_cells +EXPORT_SYMBOL vmlinux 0xc6983a7a generic_file_open +EXPORT_SYMBOL vmlinux 0xc69bcbd8 nobh_write_end +EXPORT_SYMBOL vmlinux 0xc6b477fc __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xc6b688bf tty_port_destroy +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6d09aa9 release_firmware +EXPORT_SYMBOL vmlinux 0xc6d220d1 rtas_busy_delay +EXPORT_SYMBOL vmlinux 0xc6d6af46 ppc_pci_io +EXPORT_SYMBOL vmlinux 0xc6de8c32 inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0xc6f0774d __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key +EXPORT_SYMBOL vmlinux 0xc6fc837b phy_validate_pause +EXPORT_SYMBOL vmlinux 0xc70e92af devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc722a12e hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0xc72323bf pmem_should_map_pages +EXPORT_SYMBOL vmlinux 0xc72332b5 ethtool_notify +EXPORT_SYMBOL vmlinux 0xc75b39ac ping_prot +EXPORT_SYMBOL vmlinux 0xc760ff96 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0xc767bfd9 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xc778d835 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0xc77ae6d4 sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0xc7816bea pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7a8c46a ppp_register_channel +EXPORT_SYMBOL vmlinux 0xc7b373d1 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0xc7c64379 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xc7d094b5 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xc7d545e0 skb_pull_data +EXPORT_SYMBOL vmlinux 0xc7ec2d1a tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xc7f34787 pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0xc7f484b1 ida_destroy +EXPORT_SYMBOL vmlinux 0xc7fa074b fb_set_suspend +EXPORT_SYMBOL vmlinux 0xc8331be8 trace_event_printf +EXPORT_SYMBOL vmlinux 0xc836e7ca flow_keys_dissector +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc8569cc2 key_put +EXPORT_SYMBOL vmlinux 0xc86699a2 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals +EXPORT_SYMBOL vmlinux 0xc8885593 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc896c68f __register_binfmt +EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread +EXPORT_SYMBOL vmlinux 0xc8af3439 skb_expand_head +EXPORT_SYMBOL vmlinux 0xc8b1282f pmem_sector_size +EXPORT_SYMBOL vmlinux 0xc8bfdd5b mdiobus_register_device +EXPORT_SYMBOL vmlinux 0xc8dade22 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xc8dc5d7b rtas +EXPORT_SYMBOL vmlinux 0xc8dcc62a krealloc +EXPORT_SYMBOL vmlinux 0xc8e0e207 udp_skb_destructor +EXPORT_SYMBOL vmlinux 0xc8e5cfec md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0xc8f5a95a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc916dd46 __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0xc929f946 readahead_expand +EXPORT_SYMBOL vmlinux 0xc93c6839 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0xc93edd0b inet_protos +EXPORT_SYMBOL vmlinux 0xc955cb2c down_trylock +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc9644c93 kernel_bind +EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc97d7443 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xc9822234 clk_register_clkdev +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9b9dddf mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xc9bba526 may_umount +EXPORT_SYMBOL vmlinux 0xc9bbf670 blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0xc9dc3d79 __pte_frag_size_shift +EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9e02755 tty_write_room +EXPORT_SYMBOL vmlinux 0xc9e6d6b7 md_handle_request +EXPORT_SYMBOL vmlinux 0xc9e85783 skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0xc9ed1f7d filp_open +EXPORT_SYMBOL vmlinux 0xca162f79 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0xca1648d4 zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0xca18bf28 input_flush_device +EXPORT_SYMBOL vmlinux 0xca1f4680 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free +EXPORT_SYMBOL vmlinux 0xca27333e vfs_readlink +EXPORT_SYMBOL vmlinux 0xca280a96 vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0xca2c8699 kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0xca32d66a __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0xca3516b6 vme_dma_request +EXPORT_SYMBOL vmlinux 0xca3b28c6 store_vr_state +EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function +EXPORT_SYMBOL vmlinux 0xca5b311e of_get_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0xca5f3154 radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0xca65c911 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xca75f543 jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0xca8d0194 vm_map_ram +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca99753c mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0xca9dbb44 vfio_dma_rw +EXPORT_SYMBOL vmlinux 0xcaaf5b05 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xcabb9b46 kobject_del +EXPORT_SYMBOL vmlinux 0xcac7c9eb nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xcacb4e78 tty_check_change +EXPORT_SYMBOL vmlinux 0xcaf3331f tty_unregister_device +EXPORT_SYMBOL vmlinux 0xcaf758fd __ip_options_compile +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb1ec3b2 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xcb2ea0b5 finish_wait +EXPORT_SYMBOL vmlinux 0xcb37c680 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xcb3c8a7d ___ratelimit +EXPORT_SYMBOL vmlinux 0xcb3d1a37 rtc_add_group +EXPORT_SYMBOL vmlinux 0xcb41a766 inet_accept +EXPORT_SYMBOL vmlinux 0xcb4dd8d1 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0xcb66db37 agp_backend_release +EXPORT_SYMBOL vmlinux 0xcb80b01f __traceiter_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xcb911269 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xcb995785 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc3b94e eeh_check_failure +EXPORT_SYMBOL vmlinux 0xcbcc1f6b param_set_bool +EXPORT_SYMBOL vmlinux 0xcbcf0968 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xcbd4898c fortify_panic +EXPORT_SYMBOL vmlinux 0xcbd9579d udp_seq_ops +EXPORT_SYMBOL vmlinux 0xcbdbde47 __debugger_iabr_match +EXPORT_SYMBOL vmlinux 0xcbe165e8 consume_skb +EXPORT_SYMBOL vmlinux 0xcbee68bc dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xcbf5cf09 mach_powernv +EXPORT_SYMBOL vmlinux 0xcbfb33e4 init_opal_dev +EXPORT_SYMBOL vmlinux 0xcc0f949f skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0xcc23002a hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc2687cf seq_lseek +EXPORT_SYMBOL vmlinux 0xcc291d73 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class +EXPORT_SYMBOL vmlinux 0xcc379cbd backlight_device_set_brightness +EXPORT_SYMBOL vmlinux 0xcc3d412a starget_for_each_device +EXPORT_SYMBOL vmlinux 0xcc411ed1 ptp_convert_timestamp +EXPORT_SYMBOL vmlinux 0xcc445ceb __sg_page_iter_dma_next +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc56feb1 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0xcc5d22d9 can_do_mlock +EXPORT_SYMBOL vmlinux 0xcc626c2c completion_done +EXPORT_SYMBOL vmlinux 0xcc64b052 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xcc8690be phy_loopback +EXPORT_SYMBOL vmlinux 0xcc965306 bio_chain +EXPORT_SYMBOL vmlinux 0xcca3cba9 input_allocate_device +EXPORT_SYMBOL vmlinux 0xccb6eac8 dma_fence_free +EXPORT_SYMBOL vmlinux 0xccc1d42d flow_rule_match_control +EXPORT_SYMBOL vmlinux 0xccc66e43 security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0xccc74e27 input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0xccd4c999 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xcce70704 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xccf0cc07 inet_release +EXPORT_SYMBOL vmlinux 0xccfb9e07 dst_default_metrics +EXPORT_SYMBOL vmlinux 0xccfd2ebc scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0xcd1067f7 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xcd1b1eca jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xcd1cc9aa pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xcd256667 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0xcd26985d skb_eth_push +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd33f474 cdev_alloc +EXPORT_SYMBOL vmlinux 0xcd5a4308 keyring_alloc +EXPORT_SYMBOL vmlinux 0xcd5de3c4 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0xcd6c6d1b fb_get_mode +EXPORT_SYMBOL vmlinux 0xcd7b6452 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xcd906ffa vio_register_device_node +EXPORT_SYMBOL vmlinux 0xcd9990e4 ppp_input +EXPORT_SYMBOL vmlinux 0xcdb6562a __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0xcdc0349c add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde6cee9 sock_init_data +EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev +EXPORT_SYMBOL vmlinux 0xcdee038f _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xce18bbe1 fsl_lbc_addr +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce35a51c blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xce416a84 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0xce4cdb8e fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xce4d709e param_set_uint +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce636ee3 eth_type_trans +EXPORT_SYMBOL vmlinux 0xce731b34 ucc_slow_get_qe_cr_subblock +EXPORT_SYMBOL vmlinux 0xce807151 idr_get_next +EXPORT_SYMBOL vmlinux 0xce824571 __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0xce8815bc pci_release_regions +EXPORT_SYMBOL vmlinux 0xce910775 input_match_device_id +EXPORT_SYMBOL vmlinux 0xce920ea4 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0xce9d3e09 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xcea13239 proc_dobool +EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul +EXPORT_SYMBOL vmlinux 0xceb8fd23 tcp_poll +EXPORT_SYMBOL vmlinux 0xcec5feeb cur_cpu_spec +EXPORT_SYMBOL vmlinux 0xcec766f1 __memset16 +EXPORT_SYMBOL vmlinux 0xcecb19ad xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0xced2d07c pci_write_vpd +EXPORT_SYMBOL vmlinux 0xced2fd8c register_mii_timestamper +EXPORT_SYMBOL vmlinux 0xceec8abd __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xceede1ba tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf0cf433 fwnode_mdiobus_phy_device_register +EXPORT_SYMBOL vmlinux 0xcf294299 super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0xcf2953e0 ptp_find_pin_unlocked +EXPORT_SYMBOL vmlinux 0xcf33c3a9 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xcf4e7202 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xcf4eb05b jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0xcf7de842 get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0xcf9a189a down_timeout +EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0xcfa1678c mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xcfa51c2b skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0xcfc3ada9 ps2_command +EXPORT_SYMBOL vmlinux 0xcfc61be8 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xcfcbb38e jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xcfcf00b4 dump_skip_to +EXPORT_SYMBOL vmlinux 0xcfd884a8 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0xcffa5bd3 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xd00669f0 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xd014f497 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xd025fa8d twl6040_set_pll +EXPORT_SYMBOL vmlinux 0xd03b6620 bio_split +EXPORT_SYMBOL vmlinux 0xd046682e security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function +EXPORT_SYMBOL vmlinux 0xd066ea84 pci_choose_state +EXPORT_SYMBOL vmlinux 0xd06b6c3a mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xd06bf73d genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive +EXPORT_SYMBOL vmlinux 0xd07686c8 of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xd0a66dae eth_gro_receive +EXPORT_SYMBOL vmlinux 0xd0befd12 textsearch_register +EXPORT_SYMBOL vmlinux 0xd0bfb8b0 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xd0d555c4 __udp_disconnect +EXPORT_SYMBOL vmlinux 0xd0eafdb9 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xd0eb7ce4 cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0xd0fe8d51 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf +EXPORT_SYMBOL vmlinux 0xd13b232a put_ipc_ns +EXPORT_SYMBOL vmlinux 0xd17f9c77 generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0xd18167b8 get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0xd18afe10 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xd196cfc3 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0xd19c1b7d pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xd1a2143e vfs_llseek +EXPORT_SYMBOL vmlinux 0xd1a83098 dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0xd1ada28a pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0xd1af269c __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xd1b9b2af stream_open +EXPORT_SYMBOL vmlinux 0xd1d0c5f4 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0xd1e7b564 noop_qdisc +EXPORT_SYMBOL vmlinux 0xd1e7bdfc pci_map_rom +EXPORT_SYMBOL vmlinux 0xd1ef7bda qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xd1f210d7 mipi_dsi_set_maximum_return_packet_size +EXPORT_SYMBOL vmlinux 0xd21c5139 iowrite64_lo_hi +EXPORT_SYMBOL vmlinux 0xd21cb66d bio_init +EXPORT_SYMBOL vmlinux 0xd23e780e clk_bulk_get_all +EXPORT_SYMBOL vmlinux 0xd24108d4 rfkill_soft_blocked +EXPORT_SYMBOL vmlinux 0xd2582f8f __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd263c721 kobject_put +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd2ada0b6 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xd2adef33 jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0xd2b03852 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0xd2b8f8bf vfs_statfs +EXPORT_SYMBOL vmlinux 0xd2c99738 __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2dc902c pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0xd2de9419 __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0xd2df8b93 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xd2e2a9d0 hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0xd2ebfc2f blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0xd2fead18 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd32dbfa1 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xd3335e85 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xd3342205 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xd33e2781 mmc_of_parse +EXPORT_SYMBOL vmlinux 0xd352ad39 mfd_remove_devices_late +EXPORT_SYMBOL vmlinux 0xd3538844 seq_pad +EXPORT_SYMBOL vmlinux 0xd3543063 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0xd356c7cd vfio_unregister_notifier +EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xd35f1472 sock_alloc_file +EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 +EXPORT_SYMBOL vmlinux 0xd36e3d59 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xd379489b validate_sp +EXPORT_SYMBOL vmlinux 0xd37cbe97 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0xd3a88f68 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xd3bf1ef9 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xd3cbe560 pci_iomap_range +EXPORT_SYMBOL vmlinux 0xd3cf259a kmem_cache_create +EXPORT_SYMBOL vmlinux 0xd3e42645 generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0xd3e74325 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd40c18a0 simple_setattr +EXPORT_SYMBOL vmlinux 0xd41a080e xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xd41a807d devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0xd425c8b7 pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0xd4429d20 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0xd44ba824 dmaengine_get_unmap_data +EXPORT_SYMBOL vmlinux 0xd44e87f9 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xd45cc6ca bin2hex +EXPORT_SYMBOL vmlinux 0xd480a4c8 module_layout +EXPORT_SYMBOL vmlinux 0xd48fdeef dql_completed +EXPORT_SYMBOL vmlinux 0xd49857d8 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xd49ac016 mipi_dsi_dcs_set_display_off +EXPORT_SYMBOL vmlinux 0xd4a576c9 ihold +EXPORT_SYMBOL vmlinux 0xd4ab3f20 _dev_info +EXPORT_SYMBOL vmlinux 0xd4bb4a82 inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd4be3c16 proc_create_single_data +EXPORT_SYMBOL vmlinux 0xd4c4efac d_alloc_anon +EXPORT_SYMBOL vmlinux 0xd4d7c068 fsl_upm_find +EXPORT_SYMBOL vmlinux 0xd4dbb265 dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xd4fa5a87 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xd4fd0ec2 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0xd5036257 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xd50c9f8b jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xd51fb28b security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd55b4599 pci_disable_msix +EXPORT_SYMBOL vmlinux 0xd55f38ef xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xd55fa416 forget_cached_acl +EXPORT_SYMBOL vmlinux 0xd56a8cc8 page_get_link +EXPORT_SYMBOL vmlinux 0xd57a1793 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xd5a1b2c0 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0xd5ace3d3 get_task_cred +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 0xd5d013b7 mipi_dsi_dcs_get_display_brightness +EXPORT_SYMBOL vmlinux 0xd5d0e38e __put_devmap_managed_page_refs +EXPORT_SYMBOL vmlinux 0xd5d8be8c flush_all_to_thread +EXPORT_SYMBOL vmlinux 0xd5ead861 kill_fasync +EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0xd61c2a91 of_find_mipi_dsi_device_by_node +EXPORT_SYMBOL vmlinux 0xd62768bf sock_wake_async +EXPORT_SYMBOL vmlinux 0xd6409706 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xd64d0c6d blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xd65c3a7d flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0xd65e0da8 mntget +EXPORT_SYMBOL vmlinux 0xd66c8184 add_device_randomness +EXPORT_SYMBOL vmlinux 0xd679a2fb kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource +EXPORT_SYMBOL vmlinux 0xd68e3fb0 __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0xd6900764 pci_read_config_word +EXPORT_SYMBOL vmlinux 0xd69052db scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xd69948fb proc_dointvec +EXPORT_SYMBOL vmlinux 0xd69ca51e ip_check_defrag +EXPORT_SYMBOL vmlinux 0xd6a647ba dev_deactivate +EXPORT_SYMBOL vmlinux 0xd6a91f54 twl_i2c_read +EXPORT_SYMBOL vmlinux 0xd6b4bb66 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0xd6bde284 component_match_add_typed +EXPORT_SYMBOL vmlinux 0xd6c476e4 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0xd6eaaea1 full_name_hash +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fd4053 __arch_hweight32 +EXPORT_SYMBOL vmlinux 0xd6fde043 is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0xd6fe80fe udp_gro_complete +EXPORT_SYMBOL vmlinux 0xd70d35a1 gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0xd71500d9 md_write_start +EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd739213e of_create_pci_dev +EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd7482f05 vcalloc +EXPORT_SYMBOL vmlinux 0xd7534189 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0xd75e9745 genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9 +EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load +EXPORT_SYMBOL vmlinux 0xd7a2be6d softnet_data +EXPORT_SYMBOL vmlinux 0xd7b6c956 alloc_pages +EXPORT_SYMBOL vmlinux 0xd7c8e852 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete +EXPORT_SYMBOL vmlinux 0xd7d9f9c9 current_time +EXPORT_SYMBOL vmlinux 0xd7deae8e skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e73baa phy_resume +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ebda43 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xd7f0ef02 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0xd7f40a84 bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0xd836221c dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xd8548b30 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0xd8665f09 __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0xd878921f unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0xd8ae22a4 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0xd8af2f1c xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font +EXPORT_SYMBOL vmlinux 0xd8bde474 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd8ca22bf mount_single +EXPORT_SYMBOL vmlinux 0xd8ca4630 skb_vlan_push +EXPORT_SYMBOL vmlinux 0xd8d185ec fb_pan_display +EXPORT_SYMBOL vmlinux 0xd8dc7d71 phy_request_interrupt +EXPORT_SYMBOL vmlinux 0xd8f7c62f deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xd900e43b free_buffer_head +EXPORT_SYMBOL vmlinux 0xd90c7bc0 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xd91f6ab6 strnlen_user +EXPORT_SYMBOL vmlinux 0xd923e3bf dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0xd9336db8 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0xd93427b3 __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0xd949709e unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xd97c0f0c iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xd97ccbbf ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xd9858368 d_add_ci +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98ac349 inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0xd98c34fa __dquot_transfer +EXPORT_SYMBOL vmlinux 0xd994cd78 folio_mapped +EXPORT_SYMBOL vmlinux 0xd99ee290 security_sock_graft +EXPORT_SYMBOL vmlinux 0xd9b8eaea __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0xd9bd42e9 tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0xd9d64802 padata_free_shell +EXPORT_SYMBOL vmlinux 0xd9d8e61d par_io_of_config +EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler +EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0xd9f2175a agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xd9f2d689 flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0xda06ae83 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xda18865c ppp_dev_name +EXPORT_SYMBOL vmlinux 0xda1e57d7 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0xda3b60f0 dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda48a702 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xda785cc2 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0xda896212 nd_region_to_nstype +EXPORT_SYMBOL vmlinux 0xda946721 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0xda9bbbf7 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xda9fe7a6 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0xdac7fc72 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xdac88c09 __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0xdad15af4 ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0xdad1fc3f zstd_flush_stream +EXPORT_SYMBOL vmlinux 0xdae10d9f dma_pool_create +EXPORT_SYMBOL vmlinux 0xdae4f595 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xdae4f9a1 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xdaec288d pr_flush +EXPORT_SYMBOL vmlinux 0xdaec4fb3 vme_irq_request +EXPORT_SYMBOL vmlinux 0xdaecefe5 serio_reconnect +EXPORT_SYMBOL vmlinux 0xdb0907e2 km_state_expired +EXPORT_SYMBOL vmlinux 0xdb0d2b1a dcb_getapp +EXPORT_SYMBOL vmlinux 0xdb1e7f2d mipi_dsi_dcs_set_display_brightness +EXPORT_SYMBOL vmlinux 0xdb28fc9b get_tree_keyed +EXPORT_SYMBOL vmlinux 0xdb2abde4 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb81fc4e seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0xdb8227b1 dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0xdb90e294 neigh_app_ns +EXPORT_SYMBOL vmlinux 0xdb9a0399 simple_rmdir +EXPORT_SYMBOL vmlinux 0xdb9adb47 config_group_init_type_name +EXPORT_SYMBOL vmlinux 0xdb9c0b7e fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0xdba94d68 lease_modify +EXPORT_SYMBOL vmlinux 0xdbaffaea mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xdbb14407 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xdbbb0591 rproc_alloc +EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource +EXPORT_SYMBOL vmlinux 0xdbecc2fc mmc_cqe_recovery +EXPORT_SYMBOL vmlinux 0xdbf3110e gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0xdbfa0017 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xdbfd9bd6 of_phy_connect +EXPORT_SYMBOL vmlinux 0xdc05ec28 task_work_add +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc1fa55a vfs_rename +EXPORT_SYMBOL vmlinux 0xdc28d134 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xdc2957f4 inode_permission +EXPORT_SYMBOL vmlinux 0xdc316c65 udp_disconnect +EXPORT_SYMBOL vmlinux 0xdc3cde61 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0xdc3d574e sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc3fcbcb __mutex_init +EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0xdc512134 backlight_register_notifier +EXPORT_SYMBOL vmlinux 0xdc568cf0 dquot_initialize +EXPORT_SYMBOL vmlinux 0xdc5a288e phy_attach +EXPORT_SYMBOL vmlinux 0xdc63cff0 flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0xdc926f3b gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0xdc9498dd down +EXPORT_SYMBOL vmlinux 0xdc983790 rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0xdc9f517a ip_defrag +EXPORT_SYMBOL vmlinux 0xdcb3e5f1 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xdcb764ad memset +EXPORT_SYMBOL vmlinux 0xdcbf86b3 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0xdcd57ca0 sock_efree +EXPORT_SYMBOL vmlinux 0xdcdc0040 slhc_compress +EXPORT_SYMBOL vmlinux 0xdce595b2 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xdcf3b88a set_blocksize +EXPORT_SYMBOL vmlinux 0xdcfa85de mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0xdcfedc97 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0xdd026c4b pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0xdd0b4dbb nd_device_register +EXPORT_SYMBOL vmlinux 0xdd0db160 done_path_create +EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create +EXPORT_SYMBOL vmlinux 0xdd42e157 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0xdd52eec4 input_setup_polling +EXPORT_SYMBOL vmlinux 0xdd5faf3c netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xdd64e639 strscpy +EXPORT_SYMBOL vmlinux 0xdd719c0f blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xdd76e33a pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xdd9ac9a7 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xddb21507 bh_submit_read +EXPORT_SYMBOL vmlinux 0xddb3769b lockref_mark_dead +EXPORT_SYMBOL vmlinux 0xdddc5dd0 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0xdde664f0 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xde06edff agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0xde269b66 unix_attach_fds +EXPORT_SYMBOL vmlinux 0xde4465d5 devm_rproc_alloc +EXPORT_SYMBOL vmlinux 0xde461484 set_groups +EXPORT_SYMBOL vmlinux 0xde4d4ace dim_calc_stats +EXPORT_SYMBOL vmlinux 0xde51694f ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0xde53b6a0 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xde57cea6 dma_free_attrs +EXPORT_SYMBOL vmlinux 0xde6ffe3f pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xde91448c load_vr_state +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xde9ce7dd fasync_helper +EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xdeea2d51 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode +EXPORT_SYMBOL vmlinux 0xdf00b5d7 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xdf0e21ae pci_domain_nr +EXPORT_SYMBOL vmlinux 0xdf0eb4cb __folio_lock +EXPORT_SYMBOL vmlinux 0xdf0f0166 mmc_is_req_done +EXPORT_SYMBOL vmlinux 0xdf1afa71 configfs_register_group +EXPORT_SYMBOL vmlinux 0xdf256037 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf327599 from_kprojid +EXPORT_SYMBOL vmlinux 0xdf37fee0 inet_addr_type +EXPORT_SYMBOL vmlinux 0xdf43211d t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf6c5a5a dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0xdf7bbc4f netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf93b9d8 timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0xdfac9793 flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0xdfaf9332 mmc_start_request +EXPORT_SYMBOL vmlinux 0xdfb344a3 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0xdfc12ef1 zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0xdfcc992c current_work +EXPORT_SYMBOL vmlinux 0xdfd1a21a inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0xdfe9243a unlock_page +EXPORT_SYMBOL vmlinux 0xdfeb878d tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xdfed71e6 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xdff905e5 vme_slave_free +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe004d7f9 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xe008f0c3 mntput +EXPORT_SYMBOL vmlinux 0xe0091d7a input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0xe009e074 dev_mc_init +EXPORT_SYMBOL vmlinux 0xe00a611c agp_free_memory +EXPORT_SYMBOL vmlinux 0xe01aaf61 unlock_buffer +EXPORT_SYMBOL vmlinux 0xe01bcc22 inet_frags_init +EXPORT_SYMBOL vmlinux 0xe022e639 gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0xe02a6566 ps2_init +EXPORT_SYMBOL vmlinux 0xe03afec0 __scm_destroy +EXPORT_SYMBOL vmlinux 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe062d97e paca_ptrs +EXPORT_SYMBOL vmlinux 0xe0661266 sock_release +EXPORT_SYMBOL vmlinux 0xe070019a __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0xe07dd009 write_cache_pages +EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups +EXPORT_SYMBOL vmlinux 0xe0840703 phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0xe08e95c8 fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0xe091c977 list_sort +EXPORT_SYMBOL vmlinux 0xe09e3190 locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0xe0a323f6 __do_once_slow_start +EXPORT_SYMBOL vmlinux 0xe0aeadd1 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b4a14f rproc_add +EXPORT_SYMBOL vmlinux 0xe0b8a135 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xe0ba8913 tcp_prot +EXPORT_SYMBOL vmlinux 0xe0caf5f3 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xe0cfef42 ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0xe0dba5f6 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xe0e121ee radix__local_flush_tlb_mm +EXPORT_SYMBOL vmlinux 0xe0ed1c8d get_agp_version +EXPORT_SYMBOL vmlinux 0xe1078f0e param_get_charp +EXPORT_SYMBOL vmlinux 0xe115468b nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xe117512d param_get_invbool +EXPORT_SYMBOL vmlinux 0xe123f3d9 dma_fence_release +EXPORT_SYMBOL vmlinux 0xe124f278 secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0xe12bda79 vme_dma_free_attribute +EXPORT_SYMBOL vmlinux 0xe134e6bb ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xe13aceb7 finish_swait +EXPORT_SYMBOL vmlinux 0xe154da48 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0xe15987a0 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xe1729be4 napi_consume_skb +EXPORT_SYMBOL vmlinux 0xe17c4a2a __block_write_full_page +EXPORT_SYMBOL vmlinux 0xe186f5a6 d_path +EXPORT_SYMBOL vmlinux 0xe1901ff4 file_update_time +EXPORT_SYMBOL vmlinux 0xe199a274 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0xe1a184f5 path_is_mountpoint +EXPORT_SYMBOL vmlinux 0xe1afb587 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xe1d2e501 skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0xe1d43b84 _raw_write_lock_nested +EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format +EXPORT_SYMBOL vmlinux 0xe1deb206 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe1e24c2e udp6_seq_ops +EXPORT_SYMBOL vmlinux 0xe21d57db uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xe21f18ac __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL vmlinux 0xe25d20d3 __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xe273d75d alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0xe279d05d dquot_commit +EXPORT_SYMBOL vmlinux 0xe27f756c tty_name +EXPORT_SYMBOL vmlinux 0xe29fb96e agp_bind_memory +EXPORT_SYMBOL vmlinux 0xe2aeb2ac __skb_checksum +EXPORT_SYMBOL vmlinux 0xe2d037c2 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xe2d1b7e3 tcp_check_req +EXPORT_SYMBOL vmlinux 0xe2d28f08 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e18395 udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xe2e391ad nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0xe2f252da tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0xe2f5233e writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xe31c45d3 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xe32676b0 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest +EXPORT_SYMBOL vmlinux 0xe333f92a bio_add_page +EXPORT_SYMBOL vmlinux 0xe3477939 of_graph_is_present +EXPORT_SYMBOL vmlinux 0xe34b627c netdev_emerg +EXPORT_SYMBOL vmlinux 0xe34b63e3 qdisc_put +EXPORT_SYMBOL vmlinux 0xe355f87c folio_mapping +EXPORT_SYMBOL vmlinux 0xe35745a5 blkdev_put +EXPORT_SYMBOL vmlinux 0xe37c57a2 kern_unmount +EXPORT_SYMBOL vmlinux 0xe3882624 migrate_page_copy +EXPORT_SYMBOL vmlinux 0xe3903cf4 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 +EXPORT_SYMBOL vmlinux 0xe3bf55f7 bpf_link_put +EXPORT_SYMBOL vmlinux 0xe3c2fb4c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xe3c93900 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xe3da1136 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe3e8e6ee netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3f29f70 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe419bc99 iowrite32be +EXPORT_SYMBOL vmlinux 0xe420ac6c __bread_gfp +EXPORT_SYMBOL vmlinux 0xe42ac025 seq_putc +EXPORT_SYMBOL vmlinux 0xe4329092 __ctzdi2 +EXPORT_SYMBOL vmlinux 0xe4459748 dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0xe448149a pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xe44ee6dc netlink_broadcast +EXPORT_SYMBOL vmlinux 0xe45d4532 mipi_dsi_turn_on_peripheral +EXPORT_SYMBOL vmlinux 0xe46b93bc dev_set_threaded +EXPORT_SYMBOL vmlinux 0xe46d2ef1 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xe47e7b68 touch_atime +EXPORT_SYMBOL vmlinux 0xe4a92327 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xe4ad5b84 pci_get_device +EXPORT_SYMBOL vmlinux 0xe4af8ea7 vio_find_node +EXPORT_SYMBOL vmlinux 0xe4b69358 freeze_super +EXPORT_SYMBOL vmlinux 0xe4bc2c2f hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe4ce5c29 netdev_err +EXPORT_SYMBOL vmlinux 0xe4da3ce7 agp_enable +EXPORT_SYMBOL vmlinux 0xe4e35e72 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xe4e5eb17 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xe4e7cff3 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xe4efb700 register_sysctl +EXPORT_SYMBOL vmlinux 0xe4faddd5 tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0xe5052c35 gtm_set_timer16 +EXPORT_SYMBOL vmlinux 0xe50d7ffb tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0xe516d86e input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52fbfab blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0xe5373aad udp_pre_connect +EXPORT_SYMBOL vmlinux 0xe540bbde netlink_unicast +EXPORT_SYMBOL vmlinux 0xe544ba5c migrate_page_states +EXPORT_SYMBOL vmlinux 0xe55f7325 skb_eth_pop +EXPORT_SYMBOL vmlinux 0xe560becf __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xe566fad9 tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0xe596d217 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xe5bdccb3 pldmfw_op_pci_match_record +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d71a61 __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xe5df15a3 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xe5f62dac fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0xe60ed09c filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0xe6104428 vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0xe613a798 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0xe62969a8 kill_block_super +EXPORT_SYMBOL vmlinux 0xe64a398c iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0xe64dedc0 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xe6550092 utf8_casefold +EXPORT_SYMBOL vmlinux 0xe65e150e pnv_cxl_get_irq_count +EXPORT_SYMBOL vmlinux 0xe6684bcb fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xe694077f gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xe69c055f inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xe6acde11 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xe6b967ea jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xe6d0ff4a mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0xe6d28603 dev_get_iflink +EXPORT_SYMBOL vmlinux 0xe6d4e283 vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0xe6e36a04 refresh_frequency_limits +EXPORT_SYMBOL vmlinux 0xe6efbbac flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0xe6f3f4ba devm_devfreq_register_opp_notifier +EXPORT_SYMBOL vmlinux 0xe6f73aa7 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0xe70dc10b security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0xe712e18e rio_query_mport +EXPORT_SYMBOL vmlinux 0xe72ae79d __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0xe72bc608 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xe7442d24 dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0xe74438e9 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0xe76335c5 __debugger +EXPORT_SYMBOL vmlinux 0xe789455b param_ops_bool +EXPORT_SYMBOL vmlinux 0xe796ecac __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe7b6ed2b devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xe7c2ced7 get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f9c25f load_nls +EXPORT_SYMBOL vmlinux 0xe80bc22f tcp_init_sock +EXPORT_SYMBOL vmlinux 0xe82f3c2a skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0xe849ecab pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xe864cb51 close_fd_get_file +EXPORT_SYMBOL vmlinux 0xe878cc22 radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xe87c761b dev_alloc_name +EXPORT_SYMBOL vmlinux 0xe8a52c6d bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xe8a63c2c cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0xe8b26983 kthread_stop +EXPORT_SYMBOL vmlinux 0xe8b5c3c3 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xe8b80834 security_cred_getsecid +EXPORT_SYMBOL vmlinux 0xe8b9e339 param_get_short +EXPORT_SYMBOL vmlinux 0xe8bd25de alloc_anon_inode +EXPORT_SYMBOL vmlinux 0xe8cbf5ac ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0xe8d54c77 xa_clear_mark +EXPORT_SYMBOL vmlinux 0xe8d61ef0 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xe8da88a4 proc_create_seq_private +EXPORT_SYMBOL vmlinux 0xe8dbb642 may_setattr +EXPORT_SYMBOL vmlinux 0xe8fa9f9c nvdimm_bus_unlock +EXPORT_SYMBOL vmlinux 0xe909997a bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0xe90a81de genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91a28b9 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xe9284440 d_alloc_parallel +EXPORT_SYMBOL vmlinux 0xe93f13d1 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0xe9477c23 pci_read_config_dword +EXPORT_SYMBOL vmlinux 0xe94b1f30 vme_master_mmap +EXPORT_SYMBOL vmlinux 0xe952d47e inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9732d87 d_find_alias +EXPORT_SYMBOL vmlinux 0xe979e996 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xe98d866b scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xe98f9deb simple_release_fs +EXPORT_SYMBOL vmlinux 0xe99f46cc devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0xe9aaf799 vm_event_states +EXPORT_SYMBOL vmlinux 0xe9b2e190 proc_set_user +EXPORT_SYMBOL vmlinux 0xe9c8b808 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xe9cc93a3 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0xe9d105c0 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe9dc12a4 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0xe9f619ad nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9fbb27a mdio_device_register +EXPORT_SYMBOL vmlinux 0xe9fc8b01 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0xea1461f0 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0xea266c43 pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int +EXPORT_SYMBOL vmlinux 0xea426e43 mempool_resize +EXPORT_SYMBOL vmlinux 0xea4e9fa0 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xea539790 __free_pages +EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0xea778fab sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0xea80392f on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0xeab3ff3a dcb_setapp +EXPORT_SYMBOL vmlinux 0xeabe4d9c nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xead03a46 devm_extcon_register_notifier_all +EXPORT_SYMBOL vmlinux 0xead94f70 dev_get_flags +EXPORT_SYMBOL vmlinux 0xeadf5574 mmc_retune_release +EXPORT_SYMBOL vmlinux 0xeaf109d6 phy_attached_info +EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeb1ac150 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0xeb233a45 __kmalloc +EXPORT_SYMBOL vmlinux 0xeb336447 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xeb349693 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb5572cd folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0xeb56fd5b inet_del_offload +EXPORT_SYMBOL vmlinux 0xeb5f9152 lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0xeb65598b nf_log_register +EXPORT_SYMBOL vmlinux 0xeb695f5f genphy_suspend +EXPORT_SYMBOL vmlinux 0xeb6fdddf tty_kref_put +EXPORT_SYMBOL vmlinux 0xeb74a124 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0xeb8c7b7b cxl_use_count +EXPORT_SYMBOL vmlinux 0xeb8f2d4f __pmd_frag_size_shift +EXPORT_SYMBOL vmlinux 0xeb8fb446 sk_common_release +EXPORT_SYMBOL vmlinux 0xeb9e3eaa cfb_fillrect +EXPORT_SYMBOL vmlinux 0xeb9e913d sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint +EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present +EXPORT_SYMBOL vmlinux 0xeba56229 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0xeba590c1 of_node_name_prefix +EXPORT_SYMBOL vmlinux 0xebb7c657 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xebd32cdd dma_fence_get_status +EXPORT_SYMBOL vmlinux 0xebda75f2 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0xebf6397f security_path_mknod +EXPORT_SYMBOL vmlinux 0xebf63b98 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0xec09a783 __generic_file_fsync +EXPORT_SYMBOL vmlinux 0xec0e10ad vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0xec1b39bc set_security_override +EXPORT_SYMBOL vmlinux 0xec27bb96 of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0xec2c046c submit_bio +EXPORT_SYMBOL vmlinux 0xec2e06ec sync_blockdev_range +EXPORT_SYMBOL vmlinux 0xec33c668 __SCK__tp_func_spi_transfer_start +EXPORT_SYMBOL vmlinux 0xec48eef6 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4fb493 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xec57800b dev_driver_string +EXPORT_SYMBOL vmlinux 0xec7b04e2 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xec95e37b fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0xec97ead8 __kernel_io_start +EXPORT_SYMBOL vmlinux 0xec9c2d70 watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0xeca93aee tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0xecaad0a3 d_obtain_root +EXPORT_SYMBOL vmlinux 0xecac458f netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xecb0d9e5 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0xecc340ee pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0xecddb3d5 pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0xece3bc14 __do_once_done +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecfdaf20 pnv_cxl_alloc_hwirq_ranges +EXPORT_SYMBOL vmlinux 0xed16dc4b xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xed1ae395 jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0xed527c4b to_ndd +EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable +EXPORT_SYMBOL vmlinux 0xed684d47 mipi_dsi_picture_parameter_set +EXPORT_SYMBOL vmlinux 0xed6e0312 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xed8310fd inet_frags_fini +EXPORT_SYMBOL vmlinux 0xed871746 genlmsg_put +EXPORT_SYMBOL vmlinux 0xed900236 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xedb0e4ae neigh_lookup +EXPORT_SYMBOL vmlinux 0xedb5b8f5 unix_gc_lock +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbbcd6a dst_discard_out +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedcc1595 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout +EXPORT_SYMBOL vmlinux 0xede5ba07 serio_rescan +EXPORT_SYMBOL vmlinux 0xedf97ce0 clk_add_alias +EXPORT_SYMBOL vmlinux 0xee10724a xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0xee123a70 dev_mc_add +EXPORT_SYMBOL vmlinux 0xee13dad1 netdev_update_features +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee320351 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xee34ea81 block_truncate_page +EXPORT_SYMBOL vmlinux 0xee4d9211 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0xee583e8a __mdiobus_read +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee702fca xfrm_lookup +EXPORT_SYMBOL vmlinux 0xee71bc14 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xee782bb4 serio_bus +EXPORT_SYMBOL vmlinux 0xee883b06 __vmalloc_array +EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit +EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0xee8ef74e down_read_killable +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xee9ca723 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeab32a6 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xeec9d418 phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0xeed5bcca __pud_table_size +EXPORT_SYMBOL vmlinux 0xeedc538a dev_remove_offload +EXPORT_SYMBOL vmlinux 0xeee06c5c fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0xeee75d91 ucc_fast_init +EXPORT_SYMBOL vmlinux 0xeee82104 simple_open +EXPORT_SYMBOL vmlinux 0xeeff2850 refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0xef0b12d0 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xef4604a6 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xef542b37 pnv_phb_to_cxl_mode +EXPORT_SYMBOL vmlinux 0xef55ab0e unregister_netdev +EXPORT_SYMBOL vmlinux 0xef71a22c wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xef7cdff0 tcp_shutdown +EXPORT_SYMBOL vmlinux 0xef7de3b0 mdio_device_remove +EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work +EXPORT_SYMBOL vmlinux 0xefc66c1a folio_add_lru +EXPORT_SYMBOL vmlinux 0xefe4ed13 dev_lstats_read +EXPORT_SYMBOL vmlinux 0xefe7241d path_get +EXPORT_SYMBOL vmlinux 0xefeefc09 __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xeff47306 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xeffe08fd netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0329ad1 down_read_trylock +EXPORT_SYMBOL vmlinux 0xf0545a96 filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0xf0731d34 netlink_ack +EXPORT_SYMBOL vmlinux 0xf07350bd proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xf077bcbb ipmi_platform_add +EXPORT_SYMBOL vmlinux 0xf07fe9a0 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0xf086156b xor_altivec_3 +EXPORT_SYMBOL vmlinux 0xf086b9df dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xf093e123 timestamp_truncate +EXPORT_SYMBOL vmlinux 0xf096d742 vma_set_file +EXPORT_SYMBOL vmlinux 0xf097672a configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0xf0981a1d seq_puts +EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page +EXPORT_SYMBOL vmlinux 0xf0ab1985 jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0xf0d3ede6 proc_create_data +EXPORT_SYMBOL vmlinux 0xf0f6896c folio_wait_bit +EXPORT_SYMBOL vmlinux 0xf0fd8b23 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xf10a4057 regset_get +EXPORT_SYMBOL vmlinux 0xf110d1cb pseries_enable_reloc_on_exc +EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0xf126b3b4 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0xf132fec8 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xf133623b seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xf1349228 swake_up_locked +EXPORT_SYMBOL vmlinux 0xf13beab7 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xf14ca8af kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf157ec72 set_nlink +EXPORT_SYMBOL vmlinux 0xf174988a tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0xf1763708 mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0xf17db9f6 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0xf181a4bc sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0xf18385fb xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xf19ef167 pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0xf1a563f3 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xf1a65f7b zstd_reset_dstream +EXPORT_SYMBOL vmlinux 0xf1d18e90 _outsw_ns +EXPORT_SYMBOL vmlinux 0xf1d67fb5 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1f84fcd blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0xf21bba90 tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0xf22080cf of_graph_get_next_endpoint +EXPORT_SYMBOL vmlinux 0xf230f9c7 vme_register_error_handler +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf241461f __xa_insert +EXPORT_SYMBOL vmlinux 0xf2628676 zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0xf2739a99 radix__flush_pmd_tlb_range +EXPORT_SYMBOL vmlinux 0xf27aaae3 vfs_fadvise +EXPORT_SYMBOL vmlinux 0xf27d08d6 blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf294e591 pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0xf29f8515 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xf2a3e3ec mark_info_dirty +EXPORT_SYMBOL vmlinux 0xf2b6b67e rproc_remove_subdev +EXPORT_SYMBOL vmlinux 0xf2c1adad tcp_conn_request +EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate +EXPORT_SYMBOL vmlinux 0xf2cdb665 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0xf2dad8ea pci_request_regions +EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2f53617 memregion_free +EXPORT_SYMBOL vmlinux 0xf2fc28f6 rproc_elf_get_boot_addr +EXPORT_SYMBOL vmlinux 0xf3107926 sha224_update +EXPORT_SYMBOL vmlinux 0xf31a160b dquot_transfer +EXPORT_SYMBOL vmlinux 0xf31c7b37 scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0xf321bdb8 simple_transaction_set +EXPORT_SYMBOL vmlinux 0xf3387542 tty_port_hangup +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34f3bc3 dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf36f42a9 slhc_uncompress +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf39de339 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xf39f2605 phy_read_mmd +EXPORT_SYMBOL vmlinux 0xf3a57892 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0xf3a60cc3 regset_get_alloc +EXPORT_SYMBOL vmlinux 0xf3b03e15 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xf3b7f646 dma_resv_fini +EXPORT_SYMBOL vmlinux 0xf3bc3481 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0xf3c59624 rproc_vq_interrupt +EXPORT_SYMBOL vmlinux 0xf3dacefc vmemmap +EXPORT_SYMBOL vmlinux 0xf3dca78c ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource +EXPORT_SYMBOL vmlinux 0xf3e6b013 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0xf40868d8 jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0xf419f781 tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0xf42d64ca proc_dostring +EXPORT_SYMBOL vmlinux 0xf432059a mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xf445b33c serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier +EXPORT_SYMBOL vmlinux 0xf453f697 simple_nosetlease +EXPORT_SYMBOL vmlinux 0xf472017a swake_up_all +EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const +EXPORT_SYMBOL vmlinux 0xf4766a4c devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xf482301e sock_no_listen +EXPORT_SYMBOL vmlinux 0xf49cbe96 __ClearPageMovable +EXPORT_SYMBOL vmlinux 0xf4a4a58c mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xf4b5f8aa inet_offloads +EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy +EXPORT_SYMBOL vmlinux 0xf4df0099 cred_fscmp +EXPORT_SYMBOL vmlinux 0xf4e1a3b3 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xf4e521df clear_user_page +EXPORT_SYMBOL vmlinux 0xf4ec3f8e param_ops_hexint +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f88ee4 dm_kobject_release +EXPORT_SYMBOL vmlinux 0xf5026575 fc_mount +EXPORT_SYMBOL vmlinux 0xf50d22e2 nvdimm_namespace_locked +EXPORT_SYMBOL vmlinux 0xf512913a unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xf533f33d machine_id +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53f722e trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0xf54133b8 kobject_get +EXPORT_SYMBOL vmlinux 0xf54697c1 sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0xf5488fd9 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xf54de7a3 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xf55b3b3d __arch_hweight16 +EXPORT_SYMBOL vmlinux 0xf57d456c inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0xf591753d nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf5a12e65 eth_header_cache +EXPORT_SYMBOL vmlinux 0xf5a20ed2 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io +EXPORT_SYMBOL vmlinux 0xf5a76f8d noop_llseek +EXPORT_SYMBOL vmlinux 0xf5b5c532 dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0xf5c49675 d_alloc_name +EXPORT_SYMBOL vmlinux 0xf5c8a2e2 srp_rport_get +EXPORT_SYMBOL vmlinux 0xf5cbfef4 vme_dma_list_add +EXPORT_SYMBOL vmlinux 0xf5d015b9 cfb_imageblit +EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister +EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0xf5ec3166 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xf5ed6f97 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xf5ffc487 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xf5ffe3be backlight_device_get_by_name +EXPORT_SYMBOL vmlinux 0xf6150d63 __xa_set_mark +EXPORT_SYMBOL vmlinux 0xf618ef63 udplite_prot +EXPORT_SYMBOL vmlinux 0xf61d820c xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0xf62c39fe ucc_slow_graceful_stop_tx +EXPORT_SYMBOL vmlinux 0xf633d5ee would_dump +EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0xf64bd89d vme_master_request +EXPORT_SYMBOL vmlinux 0xf651627c jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xf652cd3b register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module +EXPORT_SYMBOL vmlinux 0xf676e157 agp_copy_info +EXPORT_SYMBOL vmlinux 0xf67d303e qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68aff00 of_clk_get +EXPORT_SYMBOL vmlinux 0xf69037f0 phy_write_mmd +EXPORT_SYMBOL vmlinux 0xf69b3af5 pci_dev_get +EXPORT_SYMBOL vmlinux 0xf69efd12 get_tree_single +EXPORT_SYMBOL vmlinux 0xf6aea57b copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0xf6b6b9b4 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ecc8e6 sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free +EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor +EXPORT_SYMBOL vmlinux 0xf70e4582 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0xf70faa4b nd_btt_arena_is_valid +EXPORT_SYMBOL vmlinux 0xf71ba549 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xf72c274b devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xf7370f56 system_state +EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xf75a8c5f register_netdev +EXPORT_SYMBOL vmlinux 0xf75c2528 memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0xf75c68d7 _dev_err +EXPORT_SYMBOL vmlinux 0xf76c397a blk_integrity_register +EXPORT_SYMBOL vmlinux 0xf77337a1 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0xf77edd92 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xf78f954e __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xf79872ea __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf79c1a5a devm_devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xf7c2df39 __wake_up_bit +EXPORT_SYMBOL vmlinux 0xf7c48778 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7d31de9 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0xf7e675e5 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xf7f583ba vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xf7fc33f0 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0xf7fe0ecd dqget +EXPORT_SYMBOL vmlinux 0xf8064674 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf812e574 _raw_read_lock_irqsave +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 0xf86dce93 __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xf888ca21 sg_init_table +EXPORT_SYMBOL vmlinux 0xf8aead35 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xf8afb6e0 __of_get_address +EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0xf8d2bc2c zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0xf8d352e2 devm_of_clk_del_provider +EXPORT_SYMBOL vmlinux 0xf8da4985 discard_new_inode +EXPORT_SYMBOL vmlinux 0xf8e1115e _outsl_ns +EXPORT_SYMBOL vmlinux 0xf8ea2a0c dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xf8f1a82d neigh_carrier_down +EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var +EXPORT_SYMBOL vmlinux 0xf8f82cd2 lookup_one_len +EXPORT_SYMBOL vmlinux 0xf8fecc6b vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0xf908b54e empty_aops +EXPORT_SYMBOL vmlinux 0xf9173cc4 devm_mfd_add_devices +EXPORT_SYMBOL vmlinux 0xf91da11e xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xf939901e mmc_gpiod_request_ro +EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xf9509b14 filemap_range_has_page +EXPORT_SYMBOL vmlinux 0xf95f620c neigh_direct_output +EXPORT_SYMBOL vmlinux 0xf9722676 twl_i2c_write +EXPORT_SYMBOL vmlinux 0xf97bf4ba tso_build_hdr +EXPORT_SYMBOL vmlinux 0xf98bef9f input_unregister_handler +EXPORT_SYMBOL vmlinux 0xf99d8e3d __mod_node_page_state +EXPORT_SYMBOL vmlinux 0xf9a1683a elv_rb_add +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b1cdcd smp_call_function_many +EXPORT_SYMBOL vmlinux 0xf9be270f mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c24515 dst_release +EXPORT_SYMBOL vmlinux 0xf9ca2eb4 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0xf9cb6e0d qdisc_hash_del +EXPORT_SYMBOL vmlinux 0xf9cc96ba elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xf9e27087 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0xf9faa238 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xfa06d47e flow_rule_alloc +EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end +EXPORT_SYMBOL vmlinux 0xfa0aa651 pci_write_config_dword +EXPORT_SYMBOL vmlinux 0xfa1d888b xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xfa2e5f32 i2c_smbus_pec +EXPORT_SYMBOL vmlinux 0xfa30088e mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xfa490df0 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0xfa525ac5 tty_hangup +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5cd885 scsi_device_put +EXPORT_SYMBOL vmlinux 0xfa77237f netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0xfa915a11 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xfa9c2ece _raw_read_trylock +EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0xfaabf58e tcp_make_synack +EXPORT_SYMBOL vmlinux 0xfab27cd1 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xfac4ed21 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfad58fe6 try_to_release_page +EXPORT_SYMBOL vmlinux 0xfae448a5 folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0xfae54c5b md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xfb0f9a7c inode_init_always +EXPORT_SYMBOL vmlinux 0xfb12fbdf mr_dump +EXPORT_SYMBOL vmlinux 0xfb22fc3b xp_alloc +EXPORT_SYMBOL vmlinux 0xfb232c7e idr_get_next_ul +EXPORT_SYMBOL vmlinux 0xfb348fea fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf +EXPORT_SYMBOL vmlinux 0xfb3bbf3e set_binfmt +EXPORT_SYMBOL vmlinux 0xfb5ac186 dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0xfb673eef unix_detach_fds +EXPORT_SYMBOL vmlinux 0xfb6852d4 request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb70e0ba of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xfb84bb90 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xfb93673c tcp_child_process +EXPORT_SYMBOL vmlinux 0xfba39b18 tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0xfba7ddd2 match_u64 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbab1bb1 ioread8_rep +EXPORT_SYMBOL vmlinux 0xfbad3cf0 scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0xfbb83c05 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xfbb8a761 strscpy_pad +EXPORT_SYMBOL vmlinux 0xfbc4f89e io_schedule_timeout +EXPORT_SYMBOL vmlinux 0xfbc56c9f __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0xfbdabb9a iput +EXPORT_SYMBOL vmlinux 0xfbf37796 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xfc005c8b rt_dst_clone +EXPORT_SYMBOL vmlinux 0xfc0a1734 new_inode +EXPORT_SYMBOL vmlinux 0xfc1549bb setup_new_exec +EXPORT_SYMBOL vmlinux 0xfc198352 override_creds +EXPORT_SYMBOL vmlinux 0xfc22a968 scsi_block_requests +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc3dd78f folio_end_private_2 +EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0xfc957b22 vfs_setpos +EXPORT_SYMBOL vmlinux 0xfcb27ff0 percpu_counter_sync +EXPORT_SYMBOL vmlinux 0xfcc08978 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xfcc9153e of_get_next_child +EXPORT_SYMBOL vmlinux 0xfccabb36 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xfcce2f7d ucc_fast_enable +EXPORT_SYMBOL vmlinux 0xfccf4b8f folio_migrate_copy +EXPORT_SYMBOL vmlinux 0xfcd059d4 t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0xfce328ee devm_clk_put +EXPORT_SYMBOL vmlinux 0xfce9afc2 blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcefc24b vme_new_dma_list +EXPORT_SYMBOL vmlinux 0xfd20dd1e pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xfd5006ba devm_ioremap_np +EXPORT_SYMBOL vmlinux 0xfd59926e __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0xfd5f202d dentry_open +EXPORT_SYMBOL vmlinux 0xfd67e14f configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0xfd7309c5 pcie_get_mps +EXPORT_SYMBOL vmlinux 0xfd82a8a4 ilookup +EXPORT_SYMBOL vmlinux 0xfd87da1f of_scan_pci_bridge +EXPORT_SYMBOL vmlinux 0xfdab5c97 security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0xfdb87aa3 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0xfdc5d5a7 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfdd26036 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xfdd4216d pcibios_align_resource +EXPORT_SYMBOL vmlinux 0xfdd6bbad __wake_up +EXPORT_SYMBOL vmlinux 0xfdd79d43 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0xfddbfc8e dmaenginem_async_device_register +EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp +EXPORT_SYMBOL vmlinux 0xfdfcdd5f __csum_partial +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe052363 ioread64_lo_hi +EXPORT_SYMBOL vmlinux 0xfe07b3ea blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0xfe0f8779 elevator_alloc +EXPORT_SYMBOL vmlinux 0xfe13cf61 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xfe176822 nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0xfe17d8d1 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xfe1d2e94 key_create_or_update +EXPORT_SYMBOL vmlinux 0xfe35d283 vfs_iter_write +EXPORT_SYMBOL vmlinux 0xfe42e105 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe4a8704 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6b1878 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xfe835d98 scsi_done +EXPORT_SYMBOL vmlinux 0xfe916dc6 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0xfe9a8e6b page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0xfea0832e pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xfea20383 set_user_nice +EXPORT_SYMBOL vmlinux 0xfeb5d0aa verify_spi_info +EXPORT_SYMBOL vmlinux 0xfec8d843 page_pool_update_nid +EXPORT_SYMBOL vmlinux 0xfec9fadc __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0xfed653fc sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xfedc2bcd mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee8de6a _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfefcb98e vme_dma_vme_attribute +EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff282521 rfkill_register +EXPORT_SYMBOL vmlinux 0xff2cfc43 dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xff2f9594 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xff64f489 __break_lease +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff69e325 scsi_host_get +EXPORT_SYMBOL vmlinux 0xff78f5b5 d_tmpfile +EXPORT_SYMBOL vmlinux 0xff841696 clear_nlink +EXPORT_SYMBOL vmlinux 0xff9095d4 param_set_hexint +EXPORT_SYMBOL vmlinux 0xffc3a5d0 sync_blockdev +EXPORT_SYMBOL vmlinux 0xffc4f200 zstd_compress_stream +EXPORT_SYMBOL vmlinux 0xffc86af0 dma_sync_wait +EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0xffd6af46 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xffe690fd udp_table +EXPORT_SYMBOL vmlinux 0xffeeac8c blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0xfffa4690 drm_firmware_drivers_only +EXPORT_SYMBOL vmlinux 0xffffe78d kernel_getpeername +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x008f4c18 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x00e91ad0 vcpu_load +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x016a6353 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x01b15d1b kvmppc_xive_push_vcpu +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x030b0d84 kvmppc_ld +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x07602246 gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x0efddf59 kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x10977f88 kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x15d70e95 kvmppc_xive_set_mapped +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1f0803f9 kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x23020cea kvmppc_pr_ops +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2430b7c3 kvmppc_core_dequeue_dec +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2cf75bfb kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2e361d39 kvmppc_emulate_mmio +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2f8192dc kvm_vcpu_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x301c8ac7 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x335a9152 kvm_destroy_vcpus +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x35afd0ea kvm_get_running_vcpu +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x3874d919 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x38c07941 kvmppc_core_queue_inst_storage +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x39d424ee kvm_debugfs_dir +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x39fd83db halt_poll_ns_shrink +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x3dbf9791 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x44c100ab __SCK__tp_func_kvm_ppc_instr +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x46c664f7 kvm_vcpu_map +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x475d729c kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x47f35cfc vcpu_put +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x49287c91 kvmppc_core_prepare_to_enter +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x49d8b3c5 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4b55cc09 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4caa3451 mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4e3fd1b4 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x57806fd6 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5830efa4 gfn_to_hva +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x59e640c0 halt_poll_ns +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5b55c4c5 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5e99e584 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6008bff9 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x61407068 kvmppc_xics_rm_complete +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x63063fd9 kvmppc_xive_xics_hcall +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x64730211 kvmppc_gpa_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6620e750 __tracepoint_kvm_ppc_instr +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6892e3c3 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x699b276b gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x74f7356c kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x75a9d9e9 kvmppc_set_msr +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7818b7cb kvmppc_xics_clr_mapped +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x79c7334a kvmppc_book3s_queue_irqprio +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x7ae3f639 kvm_clear_guest +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 0x7d3b3e08 __traceiter_kvm_ppc_instr +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8122a59f kvmppc_xics_hcall +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8193b2da kvmppc_core_queue_data_storage +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8687c6c3 kvmppc_st +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x876d4f53 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8a51963d kvm_get_dirty_log +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8c5341dd kvmppc_h_stuff_tce +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8de75738 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x8fef5278 kvmppc_h_get_tce +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x94733eea kvmppc_h_put_tce +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x94bca614 kvmppc_handle_load +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x98a41f67 kvm_write_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa1c4231f kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa7d6b981 kvmppc_prepare_to_enter +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa89059cc kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa9ac7e7d __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xab59d373 kvmppc_free_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xaccab70f kvm_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xacdf19be kvmppc_xive_rearm_escalation +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xae2e3d44 kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xaeedff9e file_is_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb0458a70 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb26ebacd kvmppc_core_queue_machine_check +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb41a681f kvmppc_h_logical_ci_load +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb5cea289 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb871480a kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xb9fd0707 kvmppc_h_put_tce_indirect +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbda52be8 kvmppc_sanity_check +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbf1d4b24 kvmppc_core_queue_dec +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc0db35eb kvmppc_load_last_inst +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc1f1c09e kvm_vcpu_unmap +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc34a5e5b gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc779fa9a kvmppc_xive_clr_mapped +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc87bae41 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc943a278 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc9d9f89a kvm_get_kvm_safe +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcad1efc4 kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcc1b14f9 kvm_put_kvm +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcc44961f kvmppc_alloc_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xce773d1b __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd2d07237 kvmppc_core_queue_program +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd2d71e0c kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd8b2b1e5 kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd9938f5d kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe10be58b kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe567ace1 kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe727f447 kvmppc_handle_store +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xe75e4104 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xea493540 kvmppc_h_logical_ci_store +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xec0dce1e gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xec21617c kvmppc_kvm_pv +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xec73fdb3 kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xeca29c55 kvmppc_hv_ops +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xed4a8012 kvmppc_rtas_hcall +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xedf55e19 kvmppc_xive_pull_vcpu +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf1021991 kvm_io_bus_write +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf2187fea kvm_read_guest +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf4da3546 kvmppc_init_lpid +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xf63f8240 kvm_vcpu_halt +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfa7093ef kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfb8ad3f0 kvmppc_core_pending_dec +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfd0398ae kvmppc_xics_set_mapped +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xfdfa312b mark_page_dirty +EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm-pr 0x5c525451 kvmppc_emulate_instruction +EXPORT_SYMBOL_GPL crypto/af_alg 0x10cc9b67 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x20bdfd61 af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0x250803bb af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x28e7fcf7 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x2db73f4f af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x3d28247b af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0x5ca783b7 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0x9b3887bf af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xa389eb7b af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xba8f7d8c af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xc40aae63 af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0xc4bbfec9 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0xc736c7bd af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0xd969164a af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0xda6941e1 af_alg_poll +EXPORT_SYMBOL_GPL crypto/af_alg 0xe139ce1a af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xec36ddb5 af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0xfc2b5f9b af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xfdd49e00 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x357ab7f5 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x8194570b async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x759c0df7 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9e624fbf async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x4d9c703d async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x57a6aec7 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8a45a795 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe1bc7684 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x28cc9cb0 async_xor_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x61cf2dcd async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x8c8633c5 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe9a056a7 async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xec290d93 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xcac70600 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x545d18e9 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 +EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 +EXPORT_SYMBOL_GPL crypto/cryptd 0x0e54c97d cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x371a97c2 cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x417b96e2 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x426f1185 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x461a7c0f cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x5a8b163f cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x79e0d19d cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x80d72a92 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x8e7f20ca cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x97fb6ec1 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xb4e4bd26 cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc9339fd7 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0xd7ef666e cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x013a9c04 crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x054fbc6e crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x1486be09 crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x60f63794 crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x80c8269c crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x8c118f21 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xa21a73c0 crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xa6ae966e crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xad35ffd6 crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xaf5db03f crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xb0ca5410 crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xc33d6f1b crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xdf92ee2f crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xe0aa2905 crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xf9cf8b5d crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x7959f7f6 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update +EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final +EXPORT_SYMBOL_GPL crypto/sm3_generic 0x0bddca87 sm3_zero_message_hash +EXPORT_SYMBOL_GPL crypto/sm4 0x24e254e8 sm4_expandkey +EXPORT_SYMBOL_GPL crypto/sm4 0xfa81970e sm4_crypt_block +EXPORT_SYMBOL_GPL crypto/twofish_common 0x949ddb6b twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x0ef1d765 speakup_info +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x1e39eb14 synth_putws +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x2c83993d spk_synth_get_index +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x30a7b1f5 spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x363cb220 synth_add +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x40314288 synth_remove +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x41a160e5 synth_buffer_empty +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x4449e1dd synth_buffer_clear +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x466f5eb7 synth_putwc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x49d5fdef spk_ttyio_synth_probe +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x67074ccf spk_ttyio_ops +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x7475aac5 spk_ttyio_release +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x76d40046 synth_buffer_skip_nonlatin1 +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x84dad068 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8aecfdb4 spk_var_show +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8c82dfca synth_request_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0x8fe0db01 synth_putwc_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xa13ff4c3 spk_ttyio_synth_immediate +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xaadb0612 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xba0088e0 speakup_event +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc1cac50e spk_do_catch_up_unicode +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc319c604 synth_putws_s +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xc6a06d16 spk_get_var +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd199ec9f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd6215582 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xd8fd86cf synth_release_region +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xde2872dc spk_var_store +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xe194d0ef synth_printf +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xebaa8144 synth_current +EXPORT_SYMBOL_GPL drivers/accessibility/speakup/speakup 0xfa064920 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x132a3ad1 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x14a4289b ahci_host_activate +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x20cd1599 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x35c18391 ahci_do_hardreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3b318bcf ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3ffbcad6 ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4608dcc9 ahci_start_fis_rx +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4c0a58cc ahci_error_handler +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4e73ce7e ahci_handle_port_intr +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x562231a2 ahci_shost_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5de2de68 ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x65ab649d ahci_sdev_groups +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x67dd70bd ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6dd0217b ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6f056a25 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9f5a61fe ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xac01ef56 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbd13131d ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbf554c0d ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc37f3049 ahci_qc_issue +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc573274a ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd3ad851d ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd70f8f34 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf700a3b6 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x2519a8ee ahci_platform_disable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x335751ac ahci_platform_shutdown +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x38a2348f ahci_platform_disable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x3f61e6c4 ahci_platform_suspend +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x4aa80824 ahci_platform_resume_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x5370cc90 ahci_platform_get_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x6e98f314 ahci_platform_enable_regulators +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x75b938ec ahci_platform_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x7c013b05 ahci_platform_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x82afc9ec ahci_platform_disable_phys +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0x8e0afffd ahci_platform_enable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xbc2461d0 ahci_platform_init_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xbd2d89aa ahci_platform_enable_resources +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xd9607fed ahci_platform_suspend_host +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xf1e14d06 ahci_platform_disable_clks +EXPORT_SYMBOL_GPL drivers/ata/libahci_platform 0xfd447b17 ahci_platform_enable_phys +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xaa04bde5 __pata_platform_probe +EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xea9ef480 sis_info133_for_sata +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x09917359 charlcd_poke +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x6fd9cc4a charlcd_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0x8b45326c charlcd_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xd3e29970 charlcd_backlight +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf3304696 charlcd_free +EXPORT_SYMBOL_GPL drivers/auxdisplay/charlcd 0xf883c540 charlcd_unregister +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x07b26ecc hd44780_common_gotoxy +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x1aa688fd hd44780_common_lines +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x23159a5b hd44780_common_clear_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x30e85287 hd44780_common_shift_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x36dc00a2 hd44780_common_print +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x3c4c183f hd44780_common_home +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x489c89e8 hd44780_common_redefine_char +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x64415593 hd44780_common_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x79e8e259 hd44780_common_alloc +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8585e5fd hd44780_common_blink +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0x8d4f3fa4 hd44780_common_init_display +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xa22afdaa hd44780_common_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xc369090d hd44780_common_shift_cursor +EXPORT_SYMBOL_GPL drivers/auxdisplay/hd44780_common 0xf360d788 hd44780_common_fontsize +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/auxdisplay/line-display 0x1d255310 linedisp_register +EXPORT_SYMBOL_GPL drivers/auxdisplay/line-display 0x9f192f79 linedisp_unregister +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i3c 0xf361236f __devm_regmap_init_i3c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0xae1f429b __regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sccb 0xed702b1f __devm_regmap_init_sccb +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0x83b47ca4 __devm_regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw 0xccf57b94 __regmap_init_sdw +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0x254347b0 __regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-sdw-mbq 0xdf268bd1 __devm_regmap_init_sdw_mbq +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0x017020a9 __regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-slimbus 0xd208af25 __devm_regmap_init_slimbus +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0x83138068 __regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spi-avmm 0xb90b0878 __devm_regmap_init_spi_avmm +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x1853f2ec __devm_regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x5bc2e9e4 __devm_regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x743a8e71 __regmap_init_spmi_base +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-spmi 0x8f48e0d0 __regmap_init_spmi_ext +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x25576fcc __devm_regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-w1 0x6381d8c3 __regmap_init_w1 +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x02667bbd bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x171d89dd bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x19390945 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x23a38eb2 bcma_find_core_unit +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x33585dce bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5365b2d8 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x582b173a bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x595bd0a2 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6200426c bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7229645c bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7a131384 bcma_host_pci_up +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x7b8480f2 bcma_core_pci_power_save +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x894d3cfa bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x939b5d0c bcma_host_pci_down +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9b4e5cee bcma_host_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa125c593 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa8ea1ca5 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb8c78e46 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc44b466b bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc494e7b8 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc4d1ba32 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd318e0c9 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe77b8938 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf2b1bd61 bcma_chipco_b_mii_write +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x2adbaf64 btbcm_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x40d338d5 btbcm_finalize +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x6263f283 btbcm_setup_apple +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x733c188c btbcm_setup_patchram +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0x8c1738c3 btbcm_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xb67ce5db btbcm_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xc60d0ca4 btbcm_write_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btbcm 0xf7997871 btbcm_read_pcm_int_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x0858321e btintel_load_ddc_config +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x09dc4222 btintel_set_quality_report +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x13ac82ae btintel_check_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x1d1c5756 btintel_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x2cce92d1 btintel_exit_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x4deecb16 btintel_read_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x54dcf3d0 btintel_regmap_init +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x60a2540e btintel_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x74f56e29 btintel_enter_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x855dc625 btintel_read_boot_params +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0x91beabd2 btintel_set_diag +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xa695d97f btintel_version_info +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xb629d3ea btintel_secure_send_result +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xbf84ed2b btintel_send_intel_reset +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xcb0cce30 btintel_configure_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xd18ca6a8 btintel_bootup +EXPORT_SYMBOL_GPL drivers/bluetooth/btintel 0xe06b0703 btintel_set_event_mask_mfg +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x171c9951 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x18398e6b btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1c5d230a btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3f801e64 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4626711d btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6eb9c221 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8587345a btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x92317b90 btmrvl_pscan_window_reporting +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc120a617 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xce6dbcf2 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf0e93ead btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x902b7734 btmtk_setup_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0x93852e8e btmtk_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btmtk 0xb4dc48ba btmtk_setup_firmware_79xx +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x15fc2162 qca_read_soc_version +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0x3acd12ff qca_set_bdaddr +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xc5b3a682 qca_uart_setup +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xe3a83005 qca_send_pre_shutdown_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btqca 0xf18840ca qca_set_bdaddr_rome +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x36d42ec3 btrtl_setup_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x681cc9be btrtl_get_uart_settings +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0x83a4e54c btrtl_download_firmware +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xaf78f260 btrtl_free +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xb5a0b917 btrtl_initialize +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xd0fe7f96 btrtl_set_quirks +EXPORT_SYMBOL_GPL drivers/bluetooth/btrtl 0xef536033 btrtl_shutdown_realtek +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x017c5d25 h4_recv_buf +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x031f3734 hci_uart_register_device +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x307278cf hci_uart_tx_wakeup +EXPORT_SYMBOL_GPL drivers/bluetooth/hci_uart 0x9c9bd881 hci_uart_unregister_device +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x5595d5f8 mhi_ep_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x7428ec92 mhi_ep_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0x914c5025 mhi_ep_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xb5318a89 mhi_ep_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xd39851ba __mhi_ep_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xdd179092 mhi_ep_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xdf4fe602 mhi_ep_queue_is_empty +EXPORT_SYMBOL_GPL drivers/bus/mhi/ep/mhi_ep 0xfb257198 mhi_ep_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x0ee09f83 __mhi_driver_register +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x1548c66e mhi_queue_is_full +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x24b15bcc mhi_pm_resume +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x278c2977 mhi_poll +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x39cabcc2 mhi_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x3f6b3eea mhi_device_put +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x41151a99 mhi_device_get_sync +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x438ed582 mhi_queue_dma +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x45455227 mhi_pm_suspend +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x48d0df7e mhi_driver_unregister +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x5787126a mhi_unregister_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x60a35c50 mhi_get_exec_env +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x74becdb7 mhi_device_get +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x7939fb69 mhi_force_rddm_mode +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x82d1fb56 mhi_unprepare_after_power_down +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0x8926b291 mhi_prepare_for_transfer_autoqueue +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xa12453ed mhi_unprepare_from_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xb4fb5d8a mhi_queue_buf +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xb8c0d754 mhi_notify +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc403a67b mhi_prepare_for_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xc897b3da mhi_register_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xcb247fb1 mhi_queue_skb +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xce78dd11 mhi_download_rddm_image +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xcf4211c8 mhi_async_power_up +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xd3ccacff mhi_get_mhi_state +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xdb1f2f9a mhi_free_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xdea575b0 mhi_prepare_for_transfer +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xdf53e326 mhi_alloc_controller +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe763d89f mhi_get_free_desc_count +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xe90bb863 mhi_pm_resume_force +EXPORT_SYMBOL_GPL drivers/bus/mhi/host/mhi 0xfffdfc89 mhi_soc_reset +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x424efa9d moxtet_device_write +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x4d572d90 moxtet_device_written +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0x98b2455f __moxtet_register_driver +EXPORT_SYMBOL_GPL drivers/bus/moxtet 0xab7e800e moxtet_device_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x05715712 comedi_buf_write_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x08fc5d53 comedi_bytes_per_scan +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1c5b5c31 comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1e05033c comedi_bytes_per_scan_cmd +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x1fe4d29c comedi_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x202ab5f4 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2224a688 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x296dbb7c comedi_set_spriv_auto_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2b229186 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2bd042a0 comedi_event +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x34b55c95 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x36aa96fb comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3964d619 comedi_readback_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3b5957b3 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x3e0bef8a comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x404dcf22 comedi_dev_put +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x415bfe52 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x418e2b38 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x4fef5350 comedi_inc_scan_progress +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x54b78e40 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x569247b8 comedi_buf_read_samples +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x6045932e comedi_dio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x70cd2350 comedi_handle_events +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x78067bde comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x84177935 comedi_alloc_devpriv +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x861b636e comedi_dio_update_state +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x8e25a60a comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x95428453 comedi_dev_get_from_minor +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0x9dc7b61b comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xa9974143 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb1043fb8 comedi_alloc_subdev_readback +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb5ee4310 comedi_timeout +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xdc7249b6 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe29121d0 comedi_nsamples_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xe61c21d4 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/comedi/comedi 0xfa4ad489 comedi_nscans_left +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x5e73ae8c comedi_pci_detach +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x70f23b07 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x82fdb9c7 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x86e9d6eb comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0x9e7e79de comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xc8549d09 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xdff14481 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_pci 0xe652536e comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x5bb87439 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x6ed5ea57 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x7639a6dd comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0x939e691a comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xc071a4fc comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/comedi/comedi_usb 0xecab2273 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/comedi/drivers/addi_watchdog 0xab07e4c6 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0x65e9a7a1 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_dio200_common 0xe359ca68 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/amplc_pc236_common 0x6571af5f amplc_pc236_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x2af28b15 comedi_8254_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4f63408b comedi_8254_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x4f687131 comedi_8254_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x567ca044 comedi_8254_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x920da39a comedi_8254_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x92a19ea0 comedi_8254_update_divisors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x9877d2bb comedi_8254_set_busy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0x9e5e278d comedi_8254_load +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xad965e37 comedi_8254_cascade_ns_to_timer +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xda40f2fb comedi_8254_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xda43d22a comedi_8254_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xed829838 comedi_8254_subdevice_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8254 0xf35da685 comedi_8254_pacer_enable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x213f7d84 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x24e416db subdev_8255_regbase +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_8255 0x377fdd6c subdev_8255_mm_init +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x12fba874 comedi_isadma_disable +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x1cb1dc73 comedi_isadma_alloc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x4a17474e comedi_isadma_disable_on_sample +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x7bf8bad5 comedi_isadma_poll +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0x814c0da3 comedi_isadma_free +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0xca784d4b comedi_isadma_set_mode +EXPORT_SYMBOL_GPL drivers/comedi/drivers/comedi_isadma 0xea878430 comedi_isadma_program +EXPORT_SYMBOL_GPL drivers/comedi/drivers/das08 0x4e6d2594 das08_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x1b541fff mite_prep_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x379ae08c mite_sync_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3eb1c317 mite_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x3faac5bb mite_release_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x456ffb24 mite_ack_linkc +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x57f1b90b mite_done +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x60a8a3e3 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x7fdabcf8 mite_free_ring +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x876411fd mite_request_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x8f5b605e mite_buf_change +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0x9033652e mite_dma_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xb148f0a8 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xbc0065f6 mite_init_ring_descriptors +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xbc8d4b11 mite_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xbd24e796 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/mite 0xe4038c2e mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x255b57a3 labpc_common_detach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_common 0x7745412a labpc_common_attach +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x1a09943e labpc_setup_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x2ac5a43b labpc_init_dma_chan +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x5ae90fbc labpc_handle_dma_status +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0x7cff9fde labpc_free_dma_chan +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_labpc_isadma 0xab1d87fe labpc_drain_dma +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x076bc308 ni_find_route_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x0921123e ni_lookup_route_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x1facf7f8 ni_is_cmd_dest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x64443d67 ni_get_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x6c18c54e ni_count_valid_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x85e75c94 ni_assign_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x863a306d ni_sort_device_routes +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8ab47ba4 ni_route_set_has_source +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0x8f0f0901 ni_find_route_set +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_routing 0xb3e302a3 ni_route_to_register +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x027b1d49 ni_tio_get_soft_copy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x05517534 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x0afd73c4 ni_tio_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x3f5807df ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x46b34a1c ni_tio_unset_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x4797cb65 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x6133c91f ni_tio_get_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x8440b0ae ni_tio_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x86251caa ni_tio_arm +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x954ba556 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0x9b108f5a ni_tio_set_gate_src_raw +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xa7bf1f24 ni_tio_set_routing +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xab159527 ni_tio_insn_read +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xc3ad4079 ni_tio_insn_write +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xd1ecfec0 ni_tio_set_bits +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tio 0xe5ac33ef ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x0c81f3cf ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x66397754 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x73b98a9c ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0x7a207d95 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xe2db1dbd ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/comedi/drivers/ni_tiocmd 0xe369c2cd ni_tio_acknowledge +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x005096e0 comedi_dio_bitfield2 +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x00bd58c4 comedi_open +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0x1f5b0aee comedi_close +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xa0afda6c comedi_dio_get_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xd9166fec comedi_dio_config +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xe6d2b820 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/comedi/kcomedilib/kcomedilib 0xeba88404 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/counter/counter 0x0bddc340 counter_unregister +EXPORT_SYMBOL_GPL drivers/counter/counter 0x441c7ab0 counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0x62400966 counter_alloc +EXPORT_SYMBOL_GPL drivers/counter/counter 0x91d99480 counter_put +EXPORT_SYMBOL_GPL drivers/counter/counter 0xb33615a7 counter_push_event +EXPORT_SYMBOL_GPL drivers/counter/counter 0xbefa605a counter_priv +EXPORT_SYMBOL_GPL drivers/counter/counter 0xe095cb50 devm_counter_add +EXPORT_SYMBOL_GPL drivers/counter/counter 0xf3894722 devm_counter_alloc +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x0e035ceb nx842_crypto_compress +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x3fbccefb nx842_crypto_decompress +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0x9d8a6641 nx842_crypto_init +EXPORT_SYMBOL_GPL drivers/crypto/nx/nx-compress 0xe4bc6298 nx842_crypto_exit +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x0dfe7cc9 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x3e3ed2dc dw_edma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw-edma/dw-edma 0x563966b0 dw_edma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x03cf6f55 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x65d88f50 do_dw_dma_enable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8ca464b6 dw_dma_filter +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x8ec1bf25 do_dw_dma_disable +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xbb436fdb dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xd228dac1 idma32_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xdd33023a idma32_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x022deee3 fsl_edma_alloc_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x0c78da87 fsl_edma_tx_status +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x17a72fa6 fsl_edma_issue_pending +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x365492d3 fsl_edma_slave_config +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x4abfc866 fsl_edma_cleanup_vchan +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x5f5a90d4 fsl_edma_prep_slave_sg +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x60c9b9c1 fsl_edma_resume +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x7d299bc3 fsl_edma_prep_memcpy +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x869c700b fsl_edma_free_chan_resources +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0x97ca4097 fsl_edma_pause +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xa2a24bc3 fsl_edma_setup_regs +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xa3d58568 fsl_edma_free_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xb996e447 fsl_edma_prep_dma_cyclic +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xde2e7a24 fsl_edma_terminate_all +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xf2948957 fsl_edma_chan_mux +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xf2d9fac8 fsl_edma_xfer_desc +EXPORT_SYMBOL_GPL drivers/dma/fsl-edma-common 0xfd6cd30f fsl_edma_disable_request +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x27194797 hidma_mgmt_init_sys +EXPORT_SYMBOL_GPL drivers/dma/qcom/hdma_mgmt 0x2c6a0515 hidma_mgmt_setup +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x00db1943 vchan_tx_desc_free +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x06ae9558 vchan_tx_submit +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0x3b49511c vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0xb907a398 vchan_find_desc +EXPORT_SYMBOL_GPL drivers/dma/virt-dma 0xba88a1b5 vchan_init +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0x2bf29437 fw_card_read_cycle_time +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xabb5547d fw_request_get_timestamp +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xe86fb5c7 fw_card_release +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x13d52eee cs_dsp_stop +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x144d6986 cs_dsp_mem_region_name +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x1ed14814 cs_dsp_adsp2_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x20ae35bf cs_dsp_adsp1_power_up +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x2b798820 cs_dsp_write_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x3424dd0f cs_dsp_get_ctl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x3456ae12 cs_dsp_halo_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x385db2c4 cs_dsp_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x494f68e6 cs_dsp_adsp1_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x4e5562f8 cs_dsp_remove_padding +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x608a4fc8 cs_dsp_read_raw_data_block +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x6fa6e5a6 cs_dsp_coeff_write_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x7041f2fb cs_dsp_remove +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0x76eb3131 cs_dsp_read_data_word +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xa0ba10a2 cs_dsp_coeff_write_acked_control +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xa606869e cs_dsp_init_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xba5ad8a7 cs_dsp_adsp2_bus_error +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbaca0f9b cs_dsp_coeff_read_ctrl +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xbb3d3ed3 cs_dsp_find_alg_region +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xc1815275 cs_dsp_halo_init +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xd356075b cs_dsp_set_dspclk +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xd8d76ecc cs_dsp_adsp1_power_down +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xdc176300 cs_dsp_halo_wdt_expire +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xe3d12064 cs_dsp_run +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xed02f682 cs_dsp_cleanup_debugfs +EXPORT_SYMBOL_GPL drivers/firmware/cirrus/cs_dsp 0xfa68bd6e cs_dsp_power_up +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0xf94d8e22 alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x0695b5d3 dfl_fpga_port_ops_del +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x142aec26 dfl_fpga_port_ops_put +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x174dded0 __dfl_fpga_cdev_find_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1b226eef dfl_fpga_port_ops_get +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x1b4b2106 dfl_fpga_cdev_assign_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x274a79ee dfl_fpga_dev_feature_uinit +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2872527c dfl_fpga_feature_devs_enumerate +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x2c390db6 dfl_fpga_cdev_config_ports_vf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x352abb16 dfl_fpga_dev_ops_register +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x3a8b0d2d dfl_feature_ioctl_set_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x7e4357df dfl_fpga_enum_info_free +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x8839c51b dfl_feature_ioctl_get_num_irqs +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x8bea297d dfl_fpga_check_port_id +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x8fa9d6c6 dfl_fpga_cdev_config_ports_pf +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x92d94aab dfl_fpga_enum_info_add_irq +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x94f58f64 dfl_fpga_feature_devs_remove +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0x993a37c1 dfl_fpga_enum_info_add_dfl +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc1097e33 dfl_fpga_enum_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc3d077e3 dfl_fpga_port_ops_add +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xc61d2181 dfl_fpga_cdev_release_port +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xde858a00 dfl_fpga_dev_feature_init +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xe765b472 dfl_fpga_dev_ops_unregister +EXPORT_SYMBOL_GPL drivers/fpga/dfl 0xf94cf9a1 dfl_fpga_set_irq_triggers +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 0x0c954781 of_fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x2c8167cf fpga_bridges_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x673aaf73 fpga_bridge_enable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x75bc3ee1 fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0x8269614c fpga_bridge_disable +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xac3dba52 fpga_bridge_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xc82b520a fpga_bridge_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xcaaecbd5 fpga_bridge_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xdf4171e7 fpga_bridge_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-bridge 0xf5a6f975 of_fpga_bridge_get_to_list +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x1e733f51 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x1f6da5cd devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x224f357b fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x55cfc7f6 fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x6dfb3967 devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x97d1d927 fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xa35f8188 fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xb211d439 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xb9ee7498 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc5a82ebb fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc73af414 fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xd2468334 fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xdc58caed fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x03f71a46 fpga_region_class_find +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x919c6901 fpga_region_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x954f7cb3 fpga_region_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0x9a114b66 fpga_region_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-region 0xad2380ed fpga_region_program_fpga +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x0e043c99 fsi_get_new_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x21268763 fsi_device_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x3a93847e fsi_slave_claim_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x4bb0045a fsi_master_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x5a57d574 fsi_free_minor +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x66ca0290 fsi_cdev_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x6a044b1b fsi_master_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x78060f23 fsi_slave_read +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0x7f2c1406 fsi_bus_type +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xb2f888cb fsi_driver_register +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xb492b6a5 fsi_driver_unregister +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xc3969742 fsi_master_rescan +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xce22aee2 fsi_slave_release_range +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xd2960027 fsi_device_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-core 0xd942f235 fsi_slave_write +EXPORT_SYMBOL_GPL drivers/fsi/fsi-occ 0x0762511e fsi_occ_submit +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xd4a90eed sbefifo_parse_status +EXPORT_SYMBOL_GPL drivers/fsi/fsi-sbefifo 0xfaa157f7 sbefifo_submit +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0x976c451c gnss_allocate_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xb78e091b gnss_insert_raw +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xd543fb6e gnss_deregister_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xd7f1d1c2 gnss_put_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss 0xe1a34f2b gnss_register_device +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x3cae2a0c gnss_serial_deregister +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x49cd85c6 gnss_serial_free +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0x80fc8feb gnss_serial_pm_ops +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xc69a0a61 gnss_serial_register +EXPORT_SYMBOL_GPL drivers/gnss/gnss-serial 0xef969291 gnss_serial_allocate +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xa79790a2 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xe962e9ad __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x16fb7154 analogix_dp_unbind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x25827953 analogix_dp_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x26edf2fc analogix_dp_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x3ee0dd60 anx_dp_aux_transfer +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x412be0a7 analogix_dp_resume +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x75600580 analogix_dp_suspend +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x7c7a233f analogix_dp_start_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0x90ee5350 analogix_dp_bind +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/analogix/analogix_dp 0xb721f699 analogix_dp_stop_crc +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x09340e05 dw_hdmi_set_channel_count +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x094f6fc5 dw_hdmi_phy_i2c_set_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x1461e227 dw_hdmi_set_channel_status +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x26d629cd dw_hdmi_phy_gen2_reset +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x286bd9bc 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 0x5665b64f dw_hdmi_set_high_tmds_clock_ratio +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x56f72e25 dw_hdmi_set_sample_non_pcm +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6712b5a7 dw_hdmi_phy_gen2_txpwron +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x6b3b73eb dw_hdmi_set_plugged_cb +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x7471e7da dw_hdmi_bind +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 0x8dcd6f43 dw_hdmi_set_sample_rate +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x96f3e250 dw_hdmi_set_sample_width +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0x9b44a60b dw_hdmi_phy_gen2_pddq +EXPORT_SYMBOL_GPL drivers/gpu/drm/bridge/synopsys/dw-hdmi 0xc59f9e6f dw_hdmi_phy_gen1_reset +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/display/drm_display_helper 0x365332a2 drm_hdcp_check_ksvs_revoked +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x2ef69197 dp_aux_dp_driver_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x39732723 of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x5672ce45 devm_of_dp_aux_populate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0x6e96cb8c of_dp_aux_depopulate_ep_devices +EXPORT_SYMBOL_GPL drivers/gpu/drm/display/drm_dp_aux_bus 0xecf9efdb __dp_aux_dp_driver_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x14215f31 of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1c34ca52 drm_of_find_panel_or_bridge +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x223d8c03 drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x29bfc44a drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x58523554 drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x5e60e9ac drm_of_component_match_add +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6611cf11 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x66cf2f64 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6ebe6e26 drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x71053bad drm_of_lvds_get_dual_link_pixel_order +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7f5dd062 drm_of_encoder_active_endpoint +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x869ed299 drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa179b32a drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xad885165 drm_bus_flags_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb3d04698 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc8857688 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xca6817fd drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd8dab625 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdeb43680 drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xe513b282 drm_of_lvds_get_data_mapping +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xed4cfa61 of_get_drm_panel_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf54adaa5 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xfe9f72f3 drm_display_mode_to_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x4690f14f drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x49530122 drm_gem_cma_dumb_create_internal +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x6d0a3939 drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x7f6db45f drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0x86e0c2a2 drm_gem_cma_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xab4096b0 drm_gem_cma_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xb1a1671c drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xb859747a drm_gem_cma_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd8e72fe8 drm_fb_cma_get_gem_addr +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xd95231f9 drm_fb_cma_sync_non_coherent +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xe370bc54 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_cma_helper 0xfb107aa5 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1c9bca14 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x2d330f9f drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x307d761f drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x51b3aa67 drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x5c3e4a8d drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x67c855d4 drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x9205c8fc drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xa0b7077b drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xa7ec8c6b drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcdfba40f drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x47e27f42 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x57181cee drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x571af89d drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x6ef5b14b drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x9ab77536 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x9e8070f9 drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xa4f01fbb drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xc95e46eb drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0x610ca4dc s6e63m0_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/panel/panel-samsung-s6e63m0 0xf16662cd s6e63m0_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x15901946 ssd130x_shutdown +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x5f83c52e ssd130x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/solomon/ssd130x 0x9f26ec28 ssd130x_probe +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x02f46d26 __tracepoint_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x04efb343 greybus_message_sent +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x062006e8 gb_operation_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x0a722f69 gb_connection_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x0b229210 gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x14028e17 __SCK__tp_func_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x15d1942f greybus_disabled +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2789c907 gb_debugfs_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x28ad7350 gb_connection_latency_tag_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2d0b08c6 __traceiter_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x2f432391 gb_interface_request_mode_switch +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3227a017 gb_operation_unidirectional_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3550f94e gb_operation_request_send +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x37b5ea23 greybus_data_rcvd +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3a9bde47 greybus_register_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3b0c1555 gb_connection_enable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x3b655058 __traceiter_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x4ebbf13d gb_hd_shutdown +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x544a6b4a gb_connection_create_offloaded +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x547878e4 gb_operation_result +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x54c2e2f8 gb_connection_create_flags +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5ad3f2d7 __tracepoint_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x5c0a8043 __tracepoint_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6143ce71 gb_operation_get_payload_size_max +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6213634d __tracepoint_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6b49bf84 gb_hd_cport_release_reserved +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6cf3488c gb_hd_cport_reserve +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x6d3bb9ec __SCK__tp_func_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x7b35e39f gb_connection_disable_rx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x81e221fb __SCK__tp_func_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8246dd4c gb_operation_request_send_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x85290f7d gb_connection_latency_tag_disable +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x89f514a1 __SCK__tp_func_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x8bcedd57 gb_svc_intf_set_power_mode +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x95a6612e gb_operation_get +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x98a135f5 gb_connection_enable_tx +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9e4608e7 gb_connection_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0x9fe7c69a gb_operation_sync_timeout +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa26e35a9 gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa416e2da __tracepoint_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xa9efdf1c gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xad7b9ed9 greybus_deregister_driver +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xb1b31f3e __traceiter_gb_message_submit +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xc99e9b41 __traceiter_gb_hd_add +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xcbe21261 gb_operation_response_alloc +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xce0ee4cf __traceiter_gb_hd_create +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd3e646d9 __tracepoint_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xd475f35e gb_connection_destroy +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xda63cd61 gb_operation_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xeac79e1a __SCK__tp_func_gb_hd_del +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xebb06fe9 gb_hd_put +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xebba3dc5 __traceiter_gb_hd_in +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xef4dc173 gb_operation_cancel +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf107a122 __SCK__tp_func_gb_hd_release +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xf1da6f03 gb_hd_output +EXPORT_SYMBOL_GPL drivers/greybus/greybus 0xfb8f0b1a gb_connection_disable_forced +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x06dcbf92 hid_hw_raw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0aa02876 hid_setup_resolution_multiplier +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0bead425 hid_hw_close +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ee5c44b hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x14653b20 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d52f1f hid_quirks_exit +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c0fa87d hid_hw_stop +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1e6f6873 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x247b4b0e hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2499d1e8 hid_compare_device_paths +EXPORT_SYMBOL_GPL drivers/hid/hid 0x2d4bddde hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3538452d hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x36ef172a hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3c2c3cd2 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f51c489 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x50e77dd3 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x55956568 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f98c861 __hid_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0x633c4531 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x66f5e706 hid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6e123203 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6f7dbfbe hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8930c682 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b13a8b8 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8cc4b15e hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x97629208 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x98214623 hid_driver_reset_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9e958e6b hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0aefe50 hid_field_extract +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa846a6bb hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa5fb5fa hid_match_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xae351cf3 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbb76ea8d hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbede504e hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc1da6f0f hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc5d4e79b hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcb74b3e2 hid_hw_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcbd37f79 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xce751634 hid_hw_start +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf6ca346 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1451944 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdaf6711b hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdffd6078 hid_hw_request +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe3ae687f hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe4730f39 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe603f9ea __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf4835d2a hid_driver_resume +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf560afae hid_driver_suspend +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf80f8d09 hid_hw_open +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa355613 hid_quirks_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfb68d434 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfc5af874 hid_input_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 0xad5c72b2 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x0f759526 roccat_common2_sysfs_write +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x38259763 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x39b58d62 roccat_common2_device_init_struct +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x5329a9e5 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xad3b6078 roccat_common2_sysfs_read +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xba3a0c7f roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x2542a7c9 hid_sensor_get_usage_index +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x749957ec sensor_hub_device_open +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x81d5e15c sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xbb6d41ee sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd389dbad sensor_hub_device_close +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe1f89f96 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe539549c sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xf1581352 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xf8e6f66c sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x188429c5 vivaldi_input_configured +EXPORT_SYMBOL_GPL drivers/hid/hid-vivaldi-common 0x35cfb972 vivaldi_feature_mapping +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x8c7c99cd i2c_hid_core_remove +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0x9b90cd47 i2c_hid_core_probe +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xae21db74 i2c_hid_core_shutdown +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xb0fba777 i2c_hid_ll_driver +EXPORT_SYMBOL_GPL drivers/hid/i2c-hid/i2c-hid 0xb861ecef i2c_hid_core_pm +EXPORT_SYMBOL_GPL drivers/hid/uhid 0x899def67 uhid_hid_driver +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x011adb2b hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb7129ed9 usb_hid_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0f4c9852 hsi_new_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x13199721 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x149cd779 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1c277597 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x2af89adb hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x46afb2fb hsi_get_channel_id_by_name +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x48cc1f7d hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x55286504 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5e48dc21 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6b5abecc hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6c2b2fa8 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8bfff47f hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9951c00f hsi_add_clients_from_dt +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa73d3558 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb4e34427 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe2b1f889 hsi_remove_client +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xe3516c37 hsi_port_unregister_clients +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xeb8ca987 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x33ce5fb0 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xd84c3fa7 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x5cbb5274 ltc2947_core_probe +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0x9d74fd9a ltc2947_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/ltc2947-core 0xbc54f93e ltc2947_of_match +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x2c5df098 nct6775_probe +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x3a395661 nct6775_show_alarm +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x510b285d nct6775_store_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0x8c1682e2 nct6775_show_beep +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xc373ebcb nct6775_update_device +EXPORT_SYMBOL_GPL drivers/hwmon/nct6775-core 0xd3ce11b9 nct6775_reg_is_word_sized +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x1484bf7c intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x2f42b419 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x482e90ab intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x58dad744 intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x6e36b4a0 intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x9d29e394 intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xb33933bd intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xca4dd330 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xdd84eedc intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x0224895f intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x0b108847 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0xcadfae1f intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x3195d21f stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x382e2d42 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x50ef61b5 stm_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x5312d165 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x81ccf5d7 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xa692b14d stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xb8ad4dad stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xcaae7760 stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xe4ebb427 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-ccgx-ucsi 0x2c83a5b8 i2c_new_ccgx_ucsi +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x1cb02814 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x3e2436e7 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x7ccef74b i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x9389d77a i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1eb46ea4 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x09de1080 i3c_device_get_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x108a3b52 i3c_master_defslvs_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x154ee446 i3c_device_disable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1c6d5c95 dev_to_i3cdev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x1e6c6ed6 i3c_device_match_id +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x2819aa2b i3c_master_get_free_addr +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x36a018d3 i3c_driver_register_with_owner +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x3903f00a i3c_master_do_daa +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x490528a4 i3c_device_request_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5997be75 i3c_driver_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x5e9a5700 i3c_master_enec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x66b086d6 i3c_master_disec_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x76fe3e05 i3c_generic_ibi_free_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7b8b269e i3c_master_set_info +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x7d4fd3b2 i3c_generic_ibi_get_free_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x86759fdf i3c_generic_ibi_recycle_slot +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0x89769047 i3c_device_free_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa25d1d74 i3c_master_queue_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xa5e7cef0 i3cdev_to_dev +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xaa4abcdc i3c_master_unregister +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xab1d6339 i3c_device_enable_ibi +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xc2c27e70 i3c_generic_ibi_alloc_pool +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xd5b24ab1 i3c_master_add_i3c_dev_locked +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xebaedebb i3c_master_register +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xfbf6d2b9 i3c_device_do_priv_xfers +EXPORT_SYMBOL_GPL drivers/i3c/i3c 0xfc08b428 i3c_master_entdaa_locked +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x1d3b5396 adi_axi_adc_conv_priv +EXPORT_SYMBOL_GPL drivers/iio/adc/adi-axi-adc 0x8487fb5b devm_adi_axi_adc_conv_register +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 0x88f279e8 iio_channel_cb_get_iio_dev +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-cb 0x92836baf iio_channel_get_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 0xbb6028ab iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x0022077f iio_dma_buffer_request_update +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x03acd865 iio_dma_buffer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x0df6f717 iio_dma_buffer_set_length +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x4b891986 iio_dma_buffer_read +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x4c458653 iio_dma_buffer_exit +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x4ee3cfe6 iio_dma_buffer_block_done +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x77bef4a4 iio_dma_buffer_data_available +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x7bd4927e iio_dma_buffer_release +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0x939dec59 iio_dma_buffer_init +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xd16869a6 iio_dma_buffer_set_bytes_per_datum +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xdc312846 iio_dma_buffer_block_list_abort +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dma 0xfa48cbcd iio_dma_buffer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-buffer-dmaengine 0x687f6fa5 devm_iio_dmaengine_buffer_setup +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x3391543d iio_hw_consumer_disable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x4d82923a devm_iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x55eb6669 iio_hw_consumer_alloc +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0x9671bc15 iio_hw_consumer_free +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-hw-consumer 0xbf358fa9 iio_hw_consumer_enable +EXPORT_SYMBOL_GPL drivers/iio/buffer/industrialio-triggered-buffer 0xf64c8049 devm_iio_triggered_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/buffer/kfifo_buf 0xfff8348a devm_iio_kfifo_buffer_setup_ext +EXPORT_SYMBOL_GPL drivers/iio/chemical/sps30 0x81c5224b sps30_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x0f9eea1a bmg160_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0x61bbfca5 bmg160_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/bmg160_core 0xe2261f84 bmg160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x2632c5f3 fxas21002c_core_remove +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0x44b3446e fxas21002c_core_probe +EXPORT_SYMBOL_GPL drivers/iio/gyro/fxas21002c_core 0xc51a1acb fxas21002c_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/bmi160/bmi160_core 0x6231fa43 bmi160_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/fxos8700_core 0x1ff8fd75 fxos8700_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xaa1dc74c inv_icm42600_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xb88bee82 inv_icm42600_pm_ops +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_icm42600/inv-icm42600 0xcb6c3af4 inv_icm42600_regmap_config +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0x67e93368 inv_mpu_core_probe +EXPORT_SYMBOL_GPL drivers/iio/imu/inv_mpu6050/inv-mpu6050 0xc2ff1264 inv_mpu_pmops +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x014be52c iio_write_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0ac26e9b iio_write_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0b8cd9df iio_get_channel_ext_info_count +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0e3d5c2f iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x123d6d7c devm_iio_device_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1b6eba17 iio_read_channel_offset +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1ee13de7 iio_read_max_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x228f851b devm_of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x28460927 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x285c4f26 iio_buffer_enabled +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a703fd9 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2c9e5fb0 iio_pop_from_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3bcc914a devm_iio_trigger_alloc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x434ee46b iio_device_claim_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4561a312 iio_buffer_put +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x48ceb4c6 iio_read_avail_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4a009e00 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4b4ffd18 iio_read_channel_average_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4b776563 iio_get_debugfs_dentry +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bc30edb iio_device_release_direct_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4dce7dd4 iio_format_value +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x56efac13 of_iio_channel_get_by_name +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6cc498c9 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x70955bbf iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7ebef72a iio_buffer_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x87ad69f9 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8af05fcf iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8b16d962 iio_read_channel_processed_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8ca7e67c iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9262617e iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x95aacdbf iio_push_to_buffers_with_ts_unaligned +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9f1fb57e iio_device_get_current_mode +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb0e4b92e iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbc50bea6 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbcc85d55 __devm_iio_device_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbe2a767d iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc451fcd2 iio_show_mount_matrix +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc5ddd64d iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xca9464ab devm_iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd0f6630f devm_iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd314e759 iio_read_avail_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd80c3de5 iio_read_channel_attribute +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xda94e5f2 iio_write_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdc5970ca iio_device_id +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe477141c iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe8fac6d2 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe9c47bd1 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xedb32f6b iio_device_attach_buffer +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf2401eef iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf6ab33ea iio_read_channel_ext_info +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf6c94e0c __devm_iio_trigger_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7515de1 devm_iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xfda6a44a iio_channel_get +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x01c5793e rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x0330f1c6 rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x1a153a91 rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x1b48992c rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x2a89b870 rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x30817405 rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6c38bef5 rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6dc2c4f4 rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x8b5f728c rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa3afab2e rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xcdcf3d06 rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xf4cbd365 rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x05ff6d42 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0xcb068c69 matrix_keypad_parse_properties +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xba062c90 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xec511022 adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x2931aaea rmi_driver_resume +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x3b69c25f rmi_2d_sensor_of_probe +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x422ea5a3 rmi_register_transport_device +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x46cbc674 rmi_2d_sensor_abs_process +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x4dc4eb8b rmi_driver_suspend +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x71fca17d rmi_2d_sensor_configure_input +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x785ac4cf rmi_dbg +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x8ed2c704 rmi_set_attn_data +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0x99807c94 rmi_2d_sensor_rel_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xa1961dba __rmi_register_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xb9927552 rmi_unregister_function_handler +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xc4b2650f rmi_2d_sensor_abs_report +EXPORT_SYMBOL_GPL drivers/input/rmi4/rmi_core 0xcd7eab46 rmi_of_property_read_u32 +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x4f0931e8 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xc56bd660 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xd658b640 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xe6d776dd cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xef56717a cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x86d27aac cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xc20e7a62 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x021b201e tsc200x_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0x5ddaca9f tsc200x_regmap_config +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xcf35308e tsc200x_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/tsc200x-core 0xf5341165 tsc200x_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x29e56aed wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x345b77b7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4fd3a990 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x59d400ef wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5e904284 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8577a3cd wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9223eedf wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xad2fbdc7 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb883bf45 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc53effab wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe54f6a73 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xea66bda6 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x42acbf2f free_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x438d8df2 iova_cache_get +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x5a7ce630 alloc_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x651f2a1d iova_domain_init_rcaches +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x695e804c __free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x826ad319 alloc_iova_fast +EXPORT_SYMBOL_GPL drivers/iommu/iova 0x91c07a28 reserve_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0xbb0cc449 free_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0xbd08f9e0 find_iova +EXPORT_SYMBOL_GPL drivers/iommu/iova 0xc7061ef3 iova_cache_put +EXPORT_SYMBOL_GPL drivers/iommu/iova 0xcefe03d4 init_iova_domain +EXPORT_SYMBOL_GPL drivers/iommu/iova 0xef4d8133 put_iova_domain +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1fef42b8 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x35858e8f ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x67225add ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x76ee9826 ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x99bf90dd ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb316173b ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc55f4f1d ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xcf0c5faf ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf6c12e48 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x2ec4f39b led_update_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x63574e56 devm_led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0x819d2545 led_classdev_flash_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xcbf7ae37 devm_led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xdb75b5e0 led_classdev_flash_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xe03f88a1 led_set_flash_brightness +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xf3701d6c led_get_flash_fault +EXPORT_SYMBOL_GPL drivers/leds/led-class-flash 0xf3a1c9f7 led_set_flash_timeout +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x0de49ee0 devm_led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x252b2629 led_mc_calc_color_components +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0x4800e3c7 devm_led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xab965ffc led_classdev_multicolor_register_ext +EXPORT_SYMBOL_GPL drivers/leds/led-class-multicolor 0xde488487 led_classdev_multicolor_unregister +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x20d2c134 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x35ebabf1 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x5f74f4d6 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x846e6cb4 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa8de54a9 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xca2e1255 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd00a576c lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe3c2fd86 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe58491ab lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xeaa47a11 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/macintosh/windfarm_core 0x0a0527be wf_register_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x14ad2cd7 wf_put_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x14d58388 wf_register_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x61c36ea6 wf_unregister_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x7aa08bc8 wf_register_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x7e981190 wf_put_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x8f6cbdb1 wf_get_control +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x943039c7 wf_unregister_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf834a7b wf_get_sensor +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xbcace2a5 wf_unregister_client +EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x030e3c50 __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x051b2215 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0826e917 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ac356a3 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x12a68299 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x13f6c739 __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x16ea7222 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x191717af __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1934a9a9 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x19eeafd3 __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c71a406 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2064508c __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x23cbfbe2 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x284a6bff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2909bc5d __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a0e014e __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2b121a53 __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x30a18f08 __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3257d343 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x42e43d15 __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x468e1d2c __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46bfabee __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x475e2ece __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x53b5e5e3 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x588580a3 __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5cc8cb86 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6374e8a4 __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x690dd415 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7a3c0ac3 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7fdffaca __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x80e3881d __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x830df522 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x862dfa21 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8ad20d61 __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x902cb523 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9865dbc4 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a6f4d9f __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9ce21c84 __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa14fdbcf __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa187023e __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa64134e4 __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa842a5c8 __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xabb95e2e __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb4f75ebc __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb55771cb __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb912ae0b __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xba843c3f __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc268695 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc6891e1 __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1857470 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc78d7102 __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc85d0246 __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc8ae4213 __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce48d6f4 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda06fe86 __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdd2c625c __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe16c06b3 __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe202b8e6 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe805c3fe __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec3ae54f __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec92a163 __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed37c90e __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xee55d047 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef7eec02 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf04eac02 __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf6249e5f __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf865c1a2 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb3d6c67 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd6b5d80 __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x13ada73a 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 0x22ef10e1 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2b192f7d dm_bio_prison_free_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x33d3162c dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x41bc56ee dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4ef290f8 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x63543d61 dm_cell_visit_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 0x79f1f3d4 dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x7b449f26 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x81c4fe3e dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x9dcffb79 dm_cell_promote_or_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xace9b57b dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb2baa09f 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 0xbc6a2232 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd183da45 dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd89bfcff dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd99e003d dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe19f3a94 dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf6b0ff40 dm_bio_prison_alloc_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 0x31b2c5b6 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0xf241a6eb dm_bufio_forget_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0efbca4c btracker_promotion_already_present +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x56a52050 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-cache 0xf3965f9d dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x1338fdfe dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x505eaa30 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 0x11087577 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 0x5bc204f0 dm_rh_delay +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 0xb410313e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd1864d4e dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xddde1b5e dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xed0942f3 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/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2bc1a8d9 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x3646e38f dm_tm_issue_prefetches +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +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 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x79bdc649 dm_sm_disk_create +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +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 0x88998224 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x88a5c035 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8db6f8f0 dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8f5eefee dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x925f421d dm_array_info_init +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 0x9341b376 dm_bitset_cursor_get_value +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 0x9718cffa dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9955fef4 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9ced228c dm_array_cursor_skip +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 0xa29d4c0c dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2a74861 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa9cf611b dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb3d7482b dm_bitset_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb6879c01 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb720ee73 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0d7c2d1 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0fadb13 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc36559ad dm_btree_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd237b9fb dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd39c0246 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xdf3a4e7d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe781f874 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe8438eb5 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf82dba90 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfce51d79 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfdf63e93 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0225379c cec_s_log_addrs +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x0bd58682 cec_queue_pin_cec_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x14c3e966 cec_unregister_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x15fd9f33 cec_fill_conn_info_from_drm +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x27a872e8 cec_register_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2a732f40 cec_queue_pin_5v_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x2b639b34 cec_transmit_attempt_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x38daf479 cec_transmit_msg +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x46cafa99 cec_s_conn_info +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x55b1687f cec_s_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x668b5abe cec_queue_pin_hpd_event +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x872b27ca cec_notifier_conn_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x8bead917 cec_allocate_adapter +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0x9f043c01 cec_notifier_parse_hdmi_phandle +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xa01fbb6b cec_notifier_set_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaee236c6 cec_notifier_conn_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xaf8c4642 cec_notifier_cec_adap_register +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xbe4de675 cec_get_edid_phys_addr +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc142323d cec_received_msg_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc16f2887 cec_notifier_set_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xc60203cb cec_notifier_cec_adap_unregister +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xedf459e7 cec_transmit_done_ts +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf42b5f41 cec_s_phys_addr_from_edid +EXPORT_SYMBOL_GPL drivers/media/cec/core/cec 0xf6938d31 cec_delete_adapter +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x03fa158b saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x2b717b6f saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x31ac3b57 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6c771c53 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x81567f57 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x83377aa9 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xa207270a saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd0e2e790 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xeb30cd06 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf499c787 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x4333a154 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x575edeac saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x5781b280 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa28a071a saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa6900c8d saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xb177ae4c saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xfbba5a0e saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x05a2573d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x34bf0e61 smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4230bc54 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x46edbaf1 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4ac747f4 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6fc46c30 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 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 0x87c2ffac smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8c32bcb1 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99b995cb sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9ba22140 smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9e010871 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xafff6f04 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb43a51ff sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbf49f7cb smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc67d0f95 sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe3fef00b smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xedc3c7f5 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfa3b0ec0 smscore_putbuffer +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 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 0xb40fae23 tpg_g_color_order +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 0xf4aef3a4 tpg_gen_text +EXPORT_SYMBOL_GPL drivers/media/common/v4l2-tpg/v4l2-tpg 0xf65c5e46 tpg_fillbuffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x03f79f3e vb2_queue_error +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x07729fd4 __SCK__tp_func_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2031be0c vb2_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x24451812 __tracepoint_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x2593782f __tracepoint_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x28ca44fd vb2_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x3104c6cd vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x33cc51cb vb2_thread_start +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4d4f4b0e vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x4eda4020 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x58f5b0ce vb2_core_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5c2cc7ad vb2_discard_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x5c3abe76 __traceiter_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x61fa21be vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x630b24d3 __tracepoint_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x705ee2c0 vb2_core_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7d5198a1 __traceiter_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x7f2b7ebe vb2_request_buffer_cnt +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0x89aef45e vb2_thread_stop +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xa1a9318e vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb22a79c6 vb2_core_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb61c029c vb2_request_object_is_buffer +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb6a8d467 vb2_core_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb6f4b031 __SCK__tp_func_vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xb9d2df39 __SCK__tp_func_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xbb4e7f68 __traceiter_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc5d5d9a2 vb2_core_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xc7b45aa4 __SCK__tp_func_vb2_buf_done +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xcbf9eae0 vb2_core_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xce96bd03 vb2_core_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd3c49e58 vb2_core_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xd3fcf5aa vb2_core_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xde640b76 __traceiter_vb2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xeff11ebd vb2_core_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf52eaa92 vb2_core_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xf703a3f9 __tracepoint_vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-common 0xfae420a0 vb2_core_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0xc4e42bb0 vb2_dma_contig_set_max_seg_size +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-contig 0xc7db086a vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-dma-sg 0x978fc7b2 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-memops 0xc0268255 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0f850330 vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x0f9832f6 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x118c55f2 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x13808845 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x23e7ba5f vb2_video_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3b83c390 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3c1e0b12 vb2_queue_init_name +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3c5f231c vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x3e932c91 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x42a608f3 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x5c70d3ba vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x788cdca8 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7b8dacdc vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7d211873 vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x7e89ac7c vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x8563d9ca vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x869506bc vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x89b1284c vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x8ee2ad19 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x943c19bd vb2_poll +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0x9a39b3f9 _vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa3fc9ef4 vb2_find_timestamp +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xa72d5b7b vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb47457a1 vb2_queue_change_type +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xb4fa79bc vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xbb826a30 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc79904cb vb2_request_validate +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc8591b8b vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xc96855c8 vb2_request_queue +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xdc61019a vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xee781c77 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xeea77bf6 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xfe840891 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-v4l2 0xffeb96b6 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/common/videobuf2/videobuf2-vmalloc 0x5c25275a vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0x58cece01 dvb_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xa3c03efd dvb_module_release +EXPORT_SYMBOL_GPL drivers/media/dvb-core/dvb-core 0xd5cc6d9a dvb_module_probe +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/as102_fe 0x79741149 as102_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/cx24117 0xb0706f78 cx24117_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/gp8psk-fe 0x2928dbe8 gp8psk_fe_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/mxl5xx 0xf28a929f mxl5xx_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv0910 0xbba95653 stv0910_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/stv6111 0x59f0b936 stv6111_attach +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xd0f3cd6e tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/i2c/aptina-pll 0x399a1ed2 aptina_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/ccs-pll 0x15f08bdf ccs_pll_calculate +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x0584daa2 max9271_set_serial_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x16f3736b max9271_clear_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x1f3ebc33 max9271_wake_up +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x7c7c5e92 max9271_disable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x821c9b3c max9271_set_deserializer_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0x8322bee7 max9271_enable_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xac089aa7 max9271_configure_gmsl_link +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xacfbf650 max9271_set_high_threshold +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xb63b2a77 max9271_set_address +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xc42c90c1 max9271_verify_id +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xca828d78 max9271_set_translation +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xdcf3dcc1 max9271_set_gpios +EXPORT_SYMBOL_GPL drivers/media/i2c/max9271 0xee03ffe8 max9271_configure_i2c +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x02ed1541 __media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x08575a9b media_request_object_find +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0c5eaf92 media_entity_get_fwnode_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x0fb54158 media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x1892840d media_request_object_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x20b711ca media_create_pad_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x24ac989c media_device_delete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x3056b33c media_device_unregister_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x5fff2c9f media_device_register_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x602967f2 media_graph_walk_next +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x64af2811 media_get_pad_index +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x653af73f media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6672ed63 media_entity_remote_pad +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x67ce7fc1 media_create_pad_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x68d79efc media_request_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6998953d media_entity_remove_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x6e4461c4 media_request_object_complete +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7bb13c0d media_device_register_entity +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7bdf1e5a media_device_usb_allocate +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x7d026fe4 media_device_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x809a8b70 media_graph_walk_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x87fb4e0b media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8980a9e6 media_request_object_put +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x8db8d9e2 media_request_get_by_fd +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9805501f media_graph_walk_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9dc6c1ae media_create_ancillary_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0x9ff97f41 media_device_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xa83d7ff6 media_create_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xac9dcb31 media_device_unregister +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xb1c26aa0 media_device_pci_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xba57f433 __media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xbe218142 media_request_object_bind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc0d53cd6 __media_entity_setup_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xc6e4d806 media_request_object_unbind +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd5ecc882 media_entity_find_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd6991e34 __media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd6c333b3 media_device_unregister_entity_notify +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xd7797f34 media_devnode_create +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xde23069c __media_remove_intf_links +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xde984a66 media_pipeline_start +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xdf7ab125 media_remove_intf_link +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe5ceecd6 media_entity_enum_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xe6caa42a __media_device_usb_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xebc78a00 media_graph_walk_cleanup +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xee4addaf __media_device_register +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf696b0ea media_devnode_remove +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf8a62767 __media_pipeline_stop +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xf9152286 media_entity_pads_init +EXPORT_SYMBOL_GPL drivers/media/mc/mc 0xfc781c47 __media_entity_enum_init +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x3829095d cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0e61389a mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1189d9c0 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x38672347 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x4c0e1df2 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x65b0b351 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6997777e mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x725c17de mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x76f9f72c mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7a08062f mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x7b024396 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x89628014 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8e9ba957 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x93fb9436 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xabf73057 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xb89db28a mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd35509c3 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xe099bdc5 mantis_input_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf62c8d2d mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf933a4d1 mantis_input_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x050e95aa saa7134_ts_queue_setup +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x09e0c2c5 saa7134_s_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x15fc74d7 saa7134_querystd +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x597fc728 saa7134_s_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x62fb6ec6 saa7134_enum_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x65582e60 saa7134_ts_buffer_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x71b4c815 saa7134_s_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7312c4ea saa7134_vb2_buffer_queue +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x77a88483 saa7134_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7b3c586e saa7134_g_tuner +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9fc5e888 saa7134_s_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xa7079ae4 saa7134_ts_start_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xb8e61a0b saa7134_g_frequency +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xbde6013f saa7134_g_std +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xcb6341e1 saa7134_querycap +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd2279696 saa7134_g_input +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xd74bbf6c saa7134_ts_stop_streaming +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xdc4d6c32 saa7134_ts_buffer_prepare +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xefa50af4 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x18512ec5 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x2c7f2c0f ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x36b81ac1 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x5f498709 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x766c5542 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 0x96aa0aa7 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xd8153383 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x0fa5abec mccic_suspend +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x3bcf9999 mccic_shutdown +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0x3e1d7252 mccic_irq +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xa74999e5 mccic_register +EXPORT_SYMBOL_GPL drivers/media/platform/marvell/mcam-core 0xdaa37f9e mccic_resume +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x01ce24dd xvip_cleanup_resources +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x43738fab xvip_set_format_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0x6563561e xvip_of_get_format +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xae055c8d 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 0xb941d813 xvip_clr_and_set +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xcd5a79f4 xvip_enum_frame_size +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xd5d74af7 xvip_enum_mbus_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xe08e6063 xvip_get_format_by_code +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-video 0xf90e4c7e xvip_init_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 0xa8a0f912 xvtc_put +EXPORT_SYMBOL_GPL drivers/media/platform/xilinx/xilinx-vtc 0xee1369f1 xvtc_of_get +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xa4dab75c radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xd6cf8c47 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x199b0597 si470x_viddev_template +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x1c827869 si470x_start +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x583a5e47 si470x_ctrl_ops +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0x9225d6ed si470x_set_freq +EXPORT_SYMBOL_GPL drivers/media/radio/si470x/radio-si470x-common 0xfc52a868 si470x_stop +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x013f0eb6 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x01fcd79d rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1687e3ac rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x27bc3662 lirc_scancode_event +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x27bd4a12 ir_raw_event_store_with_timeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3283fe5e devm_rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4082a5d0 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4cbe50e2 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x71789797 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x775cbfaf rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x87070261 devm_rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8d720c16 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xad171efa rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xadeb7ac2 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xaf1c6040 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb07c07de rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb5e22b45 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbef1458e rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xca739fa4 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd7875151 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf7fd1582 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x004f8e38 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x1d5519fb microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xa55e4fae mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0xc4bd8547 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x99d48017 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xe4410070 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x1c2b39b1 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xf14f1d01 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xa2984e6c tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x847948a3 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd45c979f tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x27a8073f tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xf80794d3 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0xdbfd0cda simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1631f139 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x25fe0cc6 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3410c243 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x36c3ed42 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3903ce03 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x39292ba4 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x3c6006df cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x54e784d6 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x570c9d14 cx231xx_get_i2c_adap +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x62c5728f cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6c99f0b1 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x738a624a cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x912ca9a5 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x93ae4a74 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9ef2b12c cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xad9e1f87 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb3d9d1d5 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb71c2777 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc9ca52f7 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfd7e5fe3 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x8cd64de2 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xdd9b65e2 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x02b41fb3 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x144ad440 em28xx_init_camera +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x21bfab1e em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x2c75b899 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x36b0984f em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x370ac8a2 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x46db1430 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5a8748a0 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x616dac62 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x71b5dbca em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x721f7cc7 em28xx_free_device +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x76d93460 em28xx_audio_analog_set +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 0x9eb6a678 em28xx_toggle_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbad99c6f em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc0dc8cfb em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc12af6df em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe056c8d4 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe8efe656 em28xx_find_led +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xfbf61c71 em28xx_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x201b6fd7 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5871ddb3 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x6688701d tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe3368f26 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x239d6469 __v4l2_async_nf_add_i2c +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x7c40d8be __v4l2_async_nf_add_fwnode +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0x8cbef443 v4l2_async_nf_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xcd785de0 __v4l2_async_nf_add_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-async 0xe4378926 __v4l2_async_nf_add_fwnode_remote +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 0x0a1d3476 v4l2_flash_indicator_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0x77f77457 v4l2_flash_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-flash-led-class 0xb10a8cb7 v4l2_flash_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x00b5ec42 v4l2_async_nf_parse_fwnode_endpoints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x1536bba1 v4l2_fwnode_put_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x18a2ad88 v4l2_fwnode_connector_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x3c97baeb v4l2_fwnode_endpoint_alloc_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x51d46161 v4l2_fwnode_endpoint_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x612ddce5 v4l2_fwnode_connector_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x7719b09b v4l2_fwnode_connector_add_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0x9db57cf4 v4l2_fwnode_endpoint_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xcd3ea4df v4l2_async_register_subdev_sensor +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xe6f4ae12 v4l2_fwnode_parse_link +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-fwnode 0xf4aeae71 v4l2_fwnode_device_parse +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x02c59f97 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0fca93c9 v4l2_m2m_ioctl_stateless_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x133c8696 v4l2_m2m_ioctl_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x14fa6216 v4l2_m2m_buf_remove_by_idx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x169d882e v4l2_m2m_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x22d3da17 v4l2_m2m_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x265dec85 v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x26b44aa3 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x37d2bd80 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x408ee0e4 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x50a66569 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x58048cae v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5ee0783f v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x60c82837 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x644b50c5 v4l2_m2m_update_stop_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x730f2eae v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7fe98132 v4l2_m2m_last_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8196b5cd v4l2_m2m_request_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8b853733 v4l2_m2m_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8ce0fdd9 v4l2_m2m_ioctl_stateless_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8e9ca0d0 v4l2_m2m_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9294bdd6 v4l2_m2m_buf_remove_by_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x961de461 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9689d906 v4l2_m2m_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9be5f4c3 v4l2_m2m_last_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa2edd797 v4l2_m2m_ioctl_try_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa4cea146 v4l2_m2m_register_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa667382a v4l2_m2m_ioctl_try_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xaaa0ae46 v4l2_m2m_ioctl_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xaabacc59 v4l2_m2m_encoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb6ad4ca1 v4l2_m2m_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb7765381 v4l2_m2m_buf_copy_metadata +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb9735ef1 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc0b3024e v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc1d68afa v4l2_m2m_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc87f0098 v4l2_m2m_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd304feff v4l2_m2m_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd3e44291 v4l2_m2m_try_schedule +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdbd7380f v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe3f8ed25 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe4f16781 v4l2_m2m_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe979be95 v4l2_m2m_update_start_streaming_state +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf13ff84d v4l2_m2m_unregister_media_controller +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf461aeef v4l2_m2m_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xfa07ae2c v4l2_m2m_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xff73997b v4l2_m2m_decoder_cmd +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0cd3ebd5 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1080b0cf videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x186a22ec videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1a23cc77 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x216f26b7 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x21848de6 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3014f037 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x31344d1f videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x446074d5 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5f4b7fa2 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6490edde videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x66a3c1c7 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7179aa4d videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7cc79f3a videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x831616a8 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9d0779a7 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9d60c8a9 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa0dc361e videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xba3d7a69 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcbc8f31e videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd2a16315 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd52f71c3 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf34c85d7 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfa51b826 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x47eefe8d videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x51ab06ca 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 0x661167e3 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6ef9999f videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x7329b879 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x8776472a videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xe3806835 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x004b82b7 v4l2_create_fwnode_links_to_pad +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x078874a7 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0c33e8b4 v4l2_src_change_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0fb4f875 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11f3044c __SCK__tp_func_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1633d00e v4l2_pipeline_link_notify +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1901bd47 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1a1a85c9 __traceiter_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1b1f4f32 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1ce48e16 v4l2_subdev_get_fwnode_pad_1_to_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1d517f6b v4l2_subdev_link_validate +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x20b2a14c v4l2_ctrl_request_hdl_ctrl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x22148e6e __v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x28b573b6 __v4l2_ctrl_handler_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2a094c5e v4l2_pipeline_pm_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ae0877b __SCK__tp_func_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2c5e535b __traceiter_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x33de75ba v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3a8cd3b5 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x3d649120 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x419732a6 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x452df642 __v4l2_subdev_init_finalize +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x452f53b1 __tracepoint_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x46ac032f __tracepoint_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x483d6f2d v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x491317ce v4l2_ctrl_request_hdl_find +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4b629952 v4l_vb2q_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5288fcbd v4l2_g_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x565d82db v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5cf34a65 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x62d67401 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6608771e v4l2_get_link_freq +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x681710ae v4l2_i2c_subdev_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6a2de036 __tracepoint_vb2_v4l2_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6bfa4243 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6ce1c95c __SCK__tp_func_vb2_v4l2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6e9acc41 v4l2_fill_pixfmt_mp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x713b8a43 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a2e59bb __v4l2_subdev_state_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a75391f v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7a901a11 v4l2_pipeline_pm_get +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7b29d97b v4l2_subdev_get_fmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x842406ef v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x84ed3ac6 v4l2_subdev_notify_event +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x851c88ac v4l2_mc_create_media_graph +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x97a75ec7 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9a0a5d1b v4l_enable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9af3b034 v4l2_subdev_link_validate_default +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9d91b71a v4l2_create_fwnode_links +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fd16f48 __v4l2_subdev_state_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9fef35ac v4l2_apply_frmsize_constraints +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9ff1f230 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa0cbbd0f v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa4d76313 v4l2_s_parm_cap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaba86f0a v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xaff3a21f v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb3f374fa __traceiter_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb993c0cb v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbf6edf78 v4l2_src_change_event_subdev_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc62756d8 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc742d6e8 __tracepoint_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcc501597 v4l2_fill_pixfmt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd14e668a v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda7a8f71 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdd0854b5 v4l_disable_media_source +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdfe50cae v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe09d261a v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe1b5737e v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe2822320 __v4l2_find_nearest_size +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5a33113 __SCK__tp_func_vb2_v4l2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe98c0894 v4l2_subdev_cleanup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xeabfc680 v4l2_event_wake_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xebdeff53 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 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xfa63f4c6 __traceiter_vb2_v4l2_buf_done +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x4727500a pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x86d50df9 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd59fc89d pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x14188730 arizona_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x28123393 arizona_set_irq_wake +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x294c82eb wm5102_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4048fbbc wm8997_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x4c087981 wm5110_aod +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x5cf64066 wm8997_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x65173c27 arizona_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x69f00e17 cs47l24_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x6a7443a7 wm5102_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x768bbb8c wm5110_patch +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x7b869553 wm8998_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x924ac138 arizona_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0x9727179a wm5110_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa501efde arizona_clk32k_disable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa6b70564 wm8997_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xa727bd3b cs47l24_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xaaf78759 wm5110_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb2c3db7c cs47l24_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xb9fecb37 arizona_clk32k_enable +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xc81b43ab wm5110_revd_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xd41fd6d6 wm5110_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xdb433b49 arizona_request_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xf6e69443 arizona_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/arizona 0xffb72712 wm8997_patch +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0x15aa338c atc260x_device_probe +EXPORT_SYMBOL_GPL drivers/mfd/atc260x-core 0xcb942616 atc260x_match_device +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x250a67d7 da9150_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x405928c1 da9150_read_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x53b0a1c8 da9150_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x5c24c53f da9150_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0x72da798e da9150_bulk_read +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xaa2bf141 da9150_write_qif +EXPORT_SYMBOL_GPL drivers/mfd/da9150-core 0xe62d2d19 da9150_bulk_write +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xa142a524 gsc_read +EXPORT_SYMBOL_GPL drivers/mfd/gateworks-gsc 0xb7abd1c4 gsc_write +EXPORT_SYMBOL_GPL drivers/mfd/iqs62x 0xa436f4de iqs62x_events +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x07565a51 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x318a5823 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x32faabc0 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4cafd292 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x51bdbf54 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb7c2293b kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbe3b2024 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xc30a274e kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x0f7cfb17 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x1c33f5f7 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x2596f831 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1613bd26 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x4189388e lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x57528c1b lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x5b79a162 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa87e48b6 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xeee4d3ed lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xfc9cc8b5 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x3303adfb lp3943_update_bits +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0x6641a9d9 lp3943_write_byte +EXPORT_SYMBOL_GPL drivers/mfd/lp3943 0xcdeba269 lp3943_read_byte +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00b6459e cs47l35_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x00bb99de cs47l35_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x0f379262 madera_of_match +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1d90b2ab cs47l92_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x1d9d6eeb cs47l92_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2a11a956 cs47l90_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2a1c7516 cs47l90_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x2e0d6c7f madera_dev_exit +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x32c4dee6 cs47l85_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x32c902a6 cs47l85_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x3e0138d8 cs47l85_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x43835892 cs47l35_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x438e84d2 cs47l35_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5ea5afa7 cs47l92_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x5ea873e7 cs47l92_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x635ea020 cs47l35_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6924b45a cs47l90_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x6929681a cs47l90_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x71f1c3ea cs47l85_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x71fc1faa cs47l85_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x726142f0 cs47l15_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x7261e873 madera_dev_init +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x87681990 cs47l92_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x8940f25e cs47l15_16bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0x894d2e1e cs47l15_32bit_i2c_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xb981954b cs47l90_patch +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xca75ef52 cs47l15_32bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xca783312 cs47l15_16bit_spi_regmap +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xebe384cb madera_name_from_type +EXPORT_SYMBOL_GPL drivers/mfd/madera 0xf4519d11 madera_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x3515d753 mc13xxx_common_exit +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x365236bf mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x64e788f7 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x6eab7ec5 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x76e87d9f mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xb75c35b7 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/motorola-cpcap 0xa226dbe8 cpcap_sense_virq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x00e11e72 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0dd81425 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1316e53a pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x24b3bfad pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x41b78271 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4afc6550 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x841c73be pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9d06f676 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9e8a75ec pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa3524fee pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdde578cd pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x7b98c641 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x831a0fd1 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2791e2fd pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x784216eb pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8d6307b3 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc2c04ad0 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xff8ee2a3 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/rave-sp 0x3c5203c4 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 0x16c58b55 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1a291e2a si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1ddc3f35 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1e75cada si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2c661d58 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3b556bc6 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3e35c6ef si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x45137f1a si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4fcb8493 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x54e1d095 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5596e7c9 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x61d7f94e si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x64718a00 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x69128a1b si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x73ee4e96 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7d1b3c7a si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x85bd9fa7 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x874f4244 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8c9e95d2 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8e23d3e2 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8ee46971 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9680bd11 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa02fb9b0 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa594961e si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xaae3f4e5 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb6a8ec96 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb994198b si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc216cc6d devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc87aa986 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd5e1441a si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xde522928 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe6f38fc0 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe8babd8c si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf4a92819 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1e562898 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x59311f0b sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7031d2d8 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x8dfc6146 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x93b26163 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0x9184b0d1 stmfx_function_disable +EXPORT_SYMBOL_GPL drivers/mfd/stmfx 0xf56cbcc7 stmfx_function_enable +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x05972f1c am335x_tsc_se_adc_done +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x68f892ec am335x_tsc_se_set_cache +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x9ae8f9dd am335x_tsc_se_set_once +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xac90ff8c am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x7a3917f8 tps65218_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0x7a4fcbc3 tps65218_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65218 0xcb6258cd tps65218_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xda308d93 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x04c43e8c alcor_write16 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x087c0742 alcor_read32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x3071a88b alcor_write8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x3a2ce6f3 alcor_write32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x4c2c1ccb alcor_write32be +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0x7e8b3eef alcor_read32 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/alcor_pci 0xecaf0868 alcor_read8 +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x0ca1a9cb rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x20c4f6b0 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x2307d63f rtsx_pci_dma_unmap_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x27cd5b1f rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x43f40b84 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x4ebe27cf rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x5b3eae69 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x65fcfcd9 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x680dd284 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x690069f7 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x6cc62512 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x7382ca00 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x85403cbb rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0x8b37bff7 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xa8791d02 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xb587cf3f rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xbc558511 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xc196e67b rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd0124188 rtsx_pci_dma_transfer +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd0ebbc0f rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xd5027e33 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe4a86991 rtsx_pci_dma_map_sg +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xe4b5ac53 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_pci 0xebb7ac6a rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x1a6e1abe rtsx_usb_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x3df5b4d0 rtsx_usb_switch_clock +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x401d947a rtsx_usb_send_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x574f2f40 rtsx_usb_add_cmd +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x648bf0f9 rtsx_usb_transfer_data +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x6d892eb1 rtsx_usb_read_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x6e0b5e3f rtsx_usb_write_ppbuf +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7a7f1d54 rtsx_usb_ep0_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x7d694720 rtsx_usb_write_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x91b93746 rtsx_usb_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0x9e3d933f rtsx_usb_ep0_read_register +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xa42d92cd rtsx_usb_get_card_status +EXPORT_SYMBOL_GPL drivers/misc/cardreader/rtsx_usb 0xd1d0880c rtsx_usb_get_rsp +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x4cb1365d cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x8083c395 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe850cff6 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf9eb975c cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x0971f3fb cxllib_slot_is_supported +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x099488ef cxl_get_priv +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x163c7993 cxl_context_events_pending +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x198fb0e4 cxl_release_context +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x20790258 cxl_psa_map +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x2ca14b94 cxl_pci_to_cfg_record +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x2cf581c9 cxl_fd_release +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x2ee73ed3 cxl_start_work +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x344589d1 cxl_fops_get_context +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x37617355 cxl_perst_reloads_same_image +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x3f131615 cxl_afu_reset +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x449ddeb4 cxllib_handle_fault +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x52e93e38 cxl_fd_open +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x5b981301 cxl_allocate_afu_irqs +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x5dbf2ac8 cxl_process_element +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x603e4639 cxl_get_fd +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x6846e285 cxl_start_context +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x6e4923ab cxl_stop_context +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x70eaed71 cxllib_set_device_dma +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x7ca50024 cxl_fd_ioctl +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x80e18c64 cxl_fd_read +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x8551d6a0 cxl_unmap_afu_irq +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x861b2eb3 cxl_map_afu_irq +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x8740bc47 cxl_psa_unmap +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x8a115894 cxl_set_priv +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0x8f881dd2 cxl_set_driver_ops +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xa40d1e04 cxl_pci_to_afu +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xa5d26fae cxl_dev_context_init +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xbb9d147d cxllib_get_PE_attributes +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xc77bae66 cxllib_get_xsl_config +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xc8b1ef48 cxl_read_adapter_vpd +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xcf0b8471 cxl_get_context +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xd8c13198 cxl_fd_mmap +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xe0251e43 cxl_free_afu_irqs +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xf52c71b4 cxl_fd_poll +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xf534d824 cxl_set_master +EXPORT_SYMBOL_GPL drivers/misc/cxl/cxl 0xf815468d cxllib_switch_phb_mode +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 0x070d1851 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x536588f5 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x696af723 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x90b8f6f8 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb82529a4 enclosure_component_alloc +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xd56eb0d9 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xebe66d55 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xf24b3955 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x40c2ec8a lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x45200f6b lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x590055de lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x885428af lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd4109ae6 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd8e32c8e lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd95117ae lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xeeb8624a lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x00329712 ocxl_afu_irq_alloc +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x08a7fe28 ocxl_global_mmio_clear64 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x16869078 ocxl_function_fetch_afu +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x17e4359b ocxl_context_detach +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x1abbb4ae ocxl_function_close +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x1b9742ef ocxl_config_set_afu_pasid +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x224477bf ocxl_global_mmio_write64 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x28929560 ocxl_afu_put +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x2b00d980 ocxl_afu_get_private +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x2d2e1142 ocxl_config_read_afu +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x2d876dd2 ocxl_link_remove_pe +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x32804b59 ocxl_context_free +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x3965260f ocxl_function_afu_list +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x40049cea ocxl_link_add_pe +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x40af2ab7 ocxl_config_get_actag_info +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x47bb439f ocxl_context_alloc +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x487d4747 ocxl_global_mmio_clear32 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x522718c3 ocxl_irq_set_handler +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x5d8814ea ocxl_link_free_irq +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x5da2f572 ocxl_afu_irq_get_addr +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x629eced0 ocxl_global_mmio_write32 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x6c06a880 ocxl_afu_get +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x6cd29c41 ocxl_afu_config +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x7a4032d9 ocxl_config_set_afu_actag +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0x956ee902 ocxl_global_mmio_read64 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xa393aff2 ocxl_config_read_function +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xa3c135cd ocxl_afu_irq_free +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xa41a9094 ocxl_global_mmio_set64 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xa5ab0229 ocxl_config_set_TL +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xc2b7ffa9 ocxl_config_terminate_pasid +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xc5b6d598 ocxl_global_mmio_read32 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xcecb053f ocxl_function_open +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xd57e0fa7 ocxl_link_irq_alloc +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xde9f1375 ocxl_link_release +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xe4c029fb ocxl_global_mmio_set32 +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xe76815d9 ocxl_afu_set_private +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xeb20e01c ocxl_context_attach +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xeda4b110 ocxl_config_set_afu_state +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xf069e10c ocxl_function_config +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xf8693d73 ocxl_link_setup +EXPORT_SYMBOL_GPL drivers/misc/ocxl/ocxl 0xf8ba7e54 ocxl_config_set_actag +EXPORT_SYMBOL_GPL drivers/misc/pvpanic/pvpanic 0x639130d7 devm_pvpanic_probe +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x91401317 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc3503d7f st_unregister +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0x0f004f11 uacce_register +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xdfb55386 uacce_remove +EXPORT_SYMBOL_GPL drivers/misc/uacce/uacce 0xe668d410 uacce_alloc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00c13b84 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x02540dad __sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x131039e0 __sdhci_set_timeout +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1eb4e832 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x22d3f3ae sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2646cba2 sdhci_calc_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2c707417 sdhci_cqe_enable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2cb8538a sdhci_cleanup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x2f231394 sdhci_get_cd_nogpio +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x32393d92 sdhci_enable_clk +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3b5ec55e sdhci_setup_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3ba58bbd sdhci_reset +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x46a25f8a sdhci_enable_sdio_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4c985be7 sdhci_cqe_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4fa6977f sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x579df77a sdhci_switch_external_dma +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x584d06de sdhci_set_data_timeout_irq +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c3c1c7e sdhci_dumpregs +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6335967f sdhci_send_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x76cce1cc sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7986f1b0 sdhci_set_uhs_signaling +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7a36d73a sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7c8a324a sdhci_set_power_noreg +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7e6a943a sdhci_execute_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x80882998 sdhci_start_signal_voltage_switch +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8bf9d0fe sdhci_set_ios +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8e095956 sdhci_reset_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8fa4779a sdhci_start_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x91fca7f6 sdhci_request_atomic +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x92529e8d sdhci_abort_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9df67326 sdhci_cqe_disable +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb0301e80 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb0a98d58 __sdhci_read_caps +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb67d0113 sdhci_enable_v4_mode +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb71562d2 sdhci_set_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xba839c80 sdhci_set_power +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbbc36eab sdhci_adma_write_desc +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd1c4412c sdhci_set_bus_width +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe9b52579 sdhci_set_power_and_bus_voltage +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf1486380 sdhci_request +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xfabf0370 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xff1fcd36 sdhci_end_tuning +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x01739251 sdhci_pltfm_resume +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0b050a67 sdhci_get_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0ecb4675 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0f557491 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4e82ee6d sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x583035e8 sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x6bb8ec8d sdhci_pltfm_suspend +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x77304ffa sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe4bbf7c1 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/most/most_core 0x05acea3b most_submit_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x0674b7d2 most_start_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0x11808adb most_get_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x2bf5b564 most_stop_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0x4dd057ce most_register_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0x775e4a30 channel_has_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x77f6cba1 most_register_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x87414404 most_put_mbo +EXPORT_SYMBOL_GPL drivers/most/most_core 0x8e63b32e most_deregister_interface +EXPORT_SYMBOL_GPL drivers/most/most_core 0x9bb6c7b1 most_deregister_component +EXPORT_SYMBOL_GPL drivers/most/most_core 0xa1c4482c most_stop_channel +EXPORT_SYMBOL_GPL drivers/most/most_core 0xbbb9959c most_resume_enqueue +EXPORT_SYMBOL_GPL drivers/most/most_core 0xbc617f84 most_register_configfs_subsys +EXPORT_SYMBOL_GPL drivers/most/most_core 0xe892e0b0 most_deregister_configfs_subsys +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x517e0006 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x6e5725ee cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x93490078 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x0f91fcca cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x71c3b71a cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x823a789c cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xe004d19d cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x58737e75 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x95ebc912 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xef330850 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0x732fb6f3 hyperbus_register_device +EXPORT_SYMBOL_GPL drivers/mtd/hyperbus/hyperbus-core 0xb76ca289 hyperbus_unregister_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00164a5a mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0c2cf296 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f91dba0 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1683f2b2 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1735304e mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1910dad3 mtd_ooblayout_find_eccregion +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1d788e8e get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x25492aff mtd_ooblayout_get_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2aa2f2da mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x354a29f8 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3e598fab mtd_wunit_to_pairing_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3fc8c981 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x40771d61 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x42276267 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x486acd6f mtd_ooblayout_set_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x51b83251 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x581e4c45 mtd_ooblayout_free +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5b0cf950 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x604da2e0 mtd_write_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x691764c9 get_tree_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x725d0fd5 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x748e64e1 __register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x79145ecf mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7ea62281 mtd_ooblayout_ecc +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7f3e2db4 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x834a5b79 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8571888f mtd_ooblayout_count_freebytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8aae04ce mtd_block_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8af1d2c0 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x937788bc unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x96e1d946 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9a2cb769 mtd_ooblayout_get_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa056c0c7 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5b0b5cc mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb1d18890 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6d2a9ee put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb7075882 mtd_check_expert_analysis_mode +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb8467b98 mtd_erase_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbbecc636 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc4ff91af mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc99a77f8 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb409879 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xce58bf71 mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd63c2345 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe22ac02e mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe2769ed9 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe578facd kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe797a29f mtd_pairing_groups +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe871336c mtd_pairing_info_to_wunit +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xea61a636 mtd_ooblayout_set_databytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xebdab8d9 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf34a4df0 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf3ca7fa6 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf50207fa mtd_ooblayout_count_eccbytes +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfb8a5d23 mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5cb0669a del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x93e8b542 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb97a602a add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd47515e3 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xf38760ed register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x01f377ac nanddev_bbt_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x09af0cf0 nanddev_bbt_update +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x0c4953c4 nanddev_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x121c3cf3 nand_get_small_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x17b526b3 mxic_ecc_process_data_pipelined +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x19787970 nanddev_ecc_engine_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x29ee22f0 nand_ecc_cleanup_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2a3ae876 mxic_ecc_get_pipelined_ops +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2b168be3 nanddev_mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x2d0cbb86 nanddev_isbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x316ada70 nanddev_ecc_engine_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x31ef99b0 nand_ecc_restore_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x35683bcd nanddev_isreserved +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x3f861c6b nanddev_bbt_set_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x6f558eef mxic_ecc_put_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x7f7930a2 nanddev_markbad +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x97946161 nanddev_bbt_get_block_status +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0x9ce13685 nanddev_mtd_max_bad_blocks +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xbfdac058 nanddev_erase +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xccb5b62e nand_get_large_page_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd1b6c33b nand_get_large_page_hamming_ooblayout +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xd1d7c86f nanddev_bbt_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xe81e2bfb nand_ecc_init_req_tweaking +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xe8b5711c nand_ecc_tweak_req +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xefe7638c mxic_ecc_get_pipelined_engine +EXPORT_SYMBOL_GPL drivers/mtd/nand/nandcore 0xfe9ce9a5 nanddev_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0x01c67e29 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/nand/onenand/onenand 0xd276c943 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/denali 0x9cc6c640 denali_chip_init +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x049eab39 nand_select_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x06232c3a nand_reset +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x0863a675 nand_deselect_target +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x11091291 nand_extract_bits +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x17f2bd80 nand_ecc_choose_conf +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x18baccaa nand_change_read_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x236de086 nand_read_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x26ced7bb nand_erase_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x2d368c4c nand_subop_get_addr_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5632e63d nand_subop_get_num_addr_cyc +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x5ce9305a nand_read_oob_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x746e6863 nand_prog_page_end_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x7ad9c396 nand_change_write_column_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0x856d1fec nand_reset_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xa6099be2 nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xac70635f nand_gpio_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xbd0e88a9 nand_cleanup +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc5b2fc39 nand_decode_ext_id +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xc7bf4720 nand_status_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xca652bfa nand_read_page_hwecc_oob_first +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xccb200d3 nand_readid_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd02f719b nand_prog_page_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd3c672b8 nand_subop_get_data_len +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd41ff2ac nand_subop_get_data_start_off +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xd9785ec1 nand_read_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe84792b0 nand_soft_waitrdy +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xe99e2525 nand_write_data_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xea43abd6 nand_prog_page_begin_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/nand 0xff878e2a nand_op_parser_exec_op +EXPORT_SYMBOL_GPL drivers/mtd/nand/raw/sm_common 0x3e289a60 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0x187bbff5 spi_nor_scan +EXPORT_SYMBOL_GPL drivers/mtd/spi-nor/spi-nor 0xd64be55e spi_nor_restore +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x19fc5f96 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2b0c22d7 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x359f44de ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x36040b54 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x424e6ace ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x66011ab6 ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6c8035f8 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x701d96cf ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7f09c78f ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x87ec04a7 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x98606f55 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9f8b8835 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xac485277 ubi_leb_read_sg +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd119213c ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4590689 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0a65c89f mux_state_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x0db26d5a mux_control_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x29222608 mux_control_put +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x3f8e3a7d mux_chip_unregister +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x42c37856 devm_mux_state_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x47d51216 mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x4b378497 mux_chip_free +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x5440fa69 mux_control_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x56ddc749 devm_mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x5815f104 mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x58289c51 mux_control_get +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x6939fdfb devm_mux_chip_alloc +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7381e54e devm_mux_chip_register +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0x7cf08396 mux_state_deselect +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xca04f3f9 mux_control_try_select_delay +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xdb563a97 mux_control_states +EXPORT_SYMBOL_GPL drivers/mux/mux-core 0xfa76e911 mux_state_select_delay +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0x266c41f3 devm_arcnet_led_init +EXPORT_SYMBOL_GPL drivers/net/arcnet/arcnet 0xd649b5e2 arcnet_led_event +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x06d7b778 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x0a947b1e c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x396fd7af alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x577d9b92 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xbeb3bf7f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xeb0a75f0 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x209def55 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x4e242bf3 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x56787419 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x735b8e9a alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x03a6a436 can_rx_offload_del +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x05afff98 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x083cd2c4 can_rx_offload_irq_offload_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10534d23 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x10d892eb can_get_state_str +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x17c09efc can_rx_offload_queue_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x1cb0dbd9 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x1f0278ce can_skb_get_frame_len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x25436ca2 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x27beb589 can_change_mtu +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2a432679 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x2be5ec25 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x3a942857 of_can_transceiver +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x4421fa3e can_rx_offload_add_manual +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x4570704b can_change_state +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x51771817 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x58baeebe alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6047ede6 can_fd_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x6c0de781 can_rx_offload_add_timestamp +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7ac3964f can_rx_offload_add_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x7be895e3 can_rx_offload_threaded_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x9be7ec94 alloc_canfd_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0x9daa5522 can_rx_offload_queue_tail +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xafc7026f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb206bb4f can_rx_offload_enable +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xb7e49e02 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xbc11b879 can_rx_offload_irq_offload_fifo +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd0e91401 free_candev +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xd5d1d8b4 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xe6cf8721 can_rx_offload_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf12d9387 can_fd_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xf53aa992 alloc_candev_mqs +EXPORT_SYMBOL_GPL drivers/net/can/dev/can-dev 0xfef5109f can_rx_offload_irq_finish +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x1988a171 m_can_init_ram +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x372e5fbd m_can_class_get_clocks +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x3e6aacbf m_can_class_free_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x58528d94 m_can_class_resume +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x75cdf06e m_can_class_suspend +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x87529d5b m_can_class_register +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0x8ac36f60 m_can_class_allocate_dev +EXPORT_SYMBOL_GPL drivers/net/can/m_can/m_can 0xe764f480 m_can_class_unregister +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x944130d0 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb0a04f26 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xcb047f8f unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf01543af register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/dsa/lan9303-core 0x67519379 lan9303_indirect_phy_ops +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x02d6e4aa ksz_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1174f997 ksz_port_mdb_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1a3913e7 ksz_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x1b96e948 ksz_sset_count +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x20a19215 ksz_r_mib_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x2dfd4fcd ksz_port_bridge_leave +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x3dd665f6 ksz_port_fdb_dump +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x48c994ae ksz_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5651e458 ksz_port_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x5d14449b ksz_port_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x7b097cfb ksz_update_port_member +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x9b81a469 ksz_port_stp_state_set +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0x9c714a1e ksz_phylink_get_caps +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xa1d56052 ksz_get_tag_protocol +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xaaaa89fa ksz_port_vlan_filtering +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xb4d85bf8 ksz_phy_read16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xbdb9ec39 ksz_switch_chips +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xca5229cc ksz_enable_port +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xcfed4c96 ksz_port_fast_age +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xd9c36c01 ksz_port_bridge_join +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xdbd33f35 ksz_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe35fea52 ksz_phy_write16 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xe4d2e60c ksz_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xf311517f ksz_get_stats64 +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xf6c0c5e1 ksz_init_mib_timer +EXPORT_SYMBOL_GPL drivers/net/dsa/microchip/ksz_common 0xf7e21947 ksz_port_mdb_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8365mb 0xc22db182 rtl8365mb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x2a79ff8c rtl8366_set_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x5434cd67 rtl8366_reset_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x6e5e8feb rtl8366_enable_vlan4k +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x82931f44 rtl8366_vlan_add +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x848dbfc4 rtl8366_get_strings +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x88bd537f rtl8366rb_variant +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0x9798d9d0 rtl8366_enable_vlan +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xa7631858 rtl8366_vlan_del +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xd0dc8fed rtl8366_get_ethtool_stats +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xd0e5fac9 rtl8366_mc_is_used +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xe65c1aff rtl8366_set_pvid +EXPORT_SYMBOL_GPL drivers/net/dsa/realtek/rtl8366 0xf948c633 rtl8366_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x31f7f951 enetc_mdio_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x57974f0f enetc_mdio_lock +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x76627893 enetc_hw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/freescale/enetc/fsl-enetc-mdio 0x84a00ad3 enetc_mdio_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x1f6b51de fun_free_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x2bf6a833 fun_cq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x313c7a2f fun_res_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x42eb04f8 fun_serv_restart +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x6483e1c5 fun_submit_admin_sync_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0x70381e89 fun_sq_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xc6721f81 fun_bind +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xd230527e fun_serv_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xd6b3fccc fun_serv_sched +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xeb87af53 fun_get_res_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/fungible/funcore/funcore 0xec71dd63 fun_alloc_ring_mem +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0x3a6f1476 i40e_client_device_register +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/i40e/i40e 0xe5ce584f i40e_client_device_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x26e6d0f2 ice_del_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x5820992e ice_rdma_update_vsi_filter +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0x9ec670c3 ice_rdma_request_reset +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xf20acca1 ice_get_qos_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/intel/ice/ice 0xf458f97a ice_add_rdma_qset +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00d7edf7 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0128327e mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x025867aa mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x03062c6d mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05673334 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x06069a87 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0cf3a49b mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e316ede mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x151cf9ea mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15bdebdc mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17a670a0 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17a9a9e4 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1a774429 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1b389ac9 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1de3a9f5 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x224cb445 mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23d0c533 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x24d0e8d0 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2608d5fb mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27295a82 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c10e8d4 mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ed8314c mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31e86de0 mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x33448fa3 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x334a2303 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x356abda5 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x35802d48 mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x37a4c1ee mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x38a95f8d mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d8e965b mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ef63673 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40a69d90 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4117f457 mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41916f25 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x439d359a mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x443eac70 mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b1ce00d mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x503ad81c __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x50746c16 mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5470a6d8 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58e7cf62 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6135407c mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x616dea80 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64a99ae4 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a6748ef mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b321c81 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6b5c8a1f mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d858fb2 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6f220d2b mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x70a0123e mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x72161745 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7325db2b mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73e093cd mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x749f8746 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75465c5f __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x785663d5 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x794213c6 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79fa0d4d mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ad29195 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ca0149f mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7eed81d4 mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x844aea5b mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x854e5dff mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87e7c817 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88fd2d09 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a5dc0d9 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8cca1c25 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d87ef9e mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9abd8a74 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9bdf0a43 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0bccf4e mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa15336dc mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa196936e mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa426fcad mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5e7cb80 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5fb5f5d mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa84b2911 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaa3e149e mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xabd960bc mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaccbe9a5 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf810397 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2dedf42 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2fe7426 mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3b98935 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb46dc66b mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb4ed5f8 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd5f031f __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc305e724 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc92ccec8 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9bdc2cf mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca938242 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcef80615 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd032fc18 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd57c33f3 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7c62213 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd954ba56 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda5ea604 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdaf775b9 mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdaf95ff9 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd01b454 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe08a7e3f mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1716f4d mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1ad4569 mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1f8f1a7 mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe36ba8b8 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe912d35c mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea74c0f3 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xef150abc mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf0201f83 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1e7647f mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf42d59eb mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf59e7980 mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf73128d8 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf7f960d0 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf94621ce mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd608a73 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfdd72221 mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe118c8a mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfe632eeb mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff8f2e1e mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffcc767d mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x01563aae mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x03480dad mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04b15110 mlx5_query_port_pfc +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 0x08bb9776 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12025843 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x15966ace mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1650aef6 mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a15974d mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1a24a5d4 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1fb450ea mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x20732e22 mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x207daa8a mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2372617a mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x280701b6 mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x28b3b561 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2a950724 mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2d94bf3b mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35d4ffbe mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x40ea9ea6 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x45a5e908 mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a06a258 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4bbca165 mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5214d986 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53bc10e7 mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5725b432 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e539618 mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e812fe5 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f6e68a4 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62f3fb04 mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x66b9c06a mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6dbeb082 mlx5_query_nic_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70a466bf mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7647c51a mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7701ffd2 mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f45210a mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84002be9 mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8aeab57c mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c0f15d7 mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x944e1aa2 mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97a31f47 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97ab7866 mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0b42b56 mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa146f6a7 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1c2b8a5 mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5ce03a5 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5e64309 mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb662bec2 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbee25c94 mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc1cd9565 mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc3515f2c mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc53cca6d mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc94b7766 mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc9f2f4ff mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xccaa5647 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce846d39 mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcebd976c mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd8538f3b mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xda42c1dd mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf1fe796 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe0bfe4c2 mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe536b6a9 mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe69dfb88 mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xec7f0c84 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf02bc242 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf3c4dcea mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc5fbcee mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfd6b5dbf mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x1dd92b1b ks8851_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x517701a4 ks8851_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0x7c683f66 ks8851_remove_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/micrel/ks8851_common 0xeb88be86 ks8851_probe_common +EXPORT_SYMBOL_GPL drivers/net/ethernet/microchip/encx24j600-regmap 0x87f3d640 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/mscc/mscc_ocelot_switch_lib 0x0374d693 ocelot_lag_fdb_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0567c099 ocelot_port_get_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x0d731723 ocelot_bridge_num_find +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x296755ae __ocelot_rmw_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x317ed9d1 ocelot_port_del_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3791d15a ocelot_regfields_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3848c883 ocelot_mact_flush +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x3d2591c0 ocelot_cls_flower_replace +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x45909c15 ocelot_cls_flower_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x46036514 ocelot_get_bridge_fwd_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x498c6116 ocelot_phylink_mac_link_down +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x4f282c5b ocelot_port_readl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x520b7cbb ocelot_migrate_mdbs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6139822b ocelot_port_set_default_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6cb1700a __ocelot_write_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x6cfd1fc7 ocelot_port_unassign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7784b88e ocelot_phylink_mac_link_up +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x7a605536 __ocelot_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0x83f90503 __ocelot_bulk_read_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xa72ca5a3 ocelot_port_get_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xadf37e59 ocelot_port_rmwl +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xb53868bb ocelot_port_assigned_dsa_8021q_cpu_mask +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xc46c600f ocelot_lag_fdb_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd313ef9e ocelot_port_mirror_del +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd575fc0e ocelot_port_writel +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd7fa978e ocelot_port_mirror_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xd96b29e8 ocelot_port_add_dscp_prio +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xdc107bb3 ocelot_port_assign_dsa_8021q_cpu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xe6496213 ocelot_cls_flower_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/mscc/mscc_ocelot_switch_lib 0xfbba8be6 ocelot_regmap_init +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 0x34094fc8 stmmac_dvr_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x545572d4 stmmac_set_mac_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0x8b156f6d 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 0xa2c806c7 stmmac_resume +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xa6326103 stmmac_suspend +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xc447f4fb stmmac_init_tstamp_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac 0xdccbb9bd stmmac_bus_clks_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x0a2afbc0 stmmac_probe_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x38ddf2ca stmmac_pltfr_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x3ae8b655 stmmac_get_platform_resources +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0x54cc6177 stmmac_remove_config_dt +EXPORT_SYMBOL_GPL drivers/net/ethernet/stmicro/stmmac/stmmac-platform 0xa757ee23 stmmac_pltfr_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x1ad932f9 w5100_pm_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0x67a83a81 w5100_probe +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xc53fee54 w5100_ops_priv +EXPORT_SYMBOL_GPL drivers/net/ethernet/wiznet/w5100 0xcd08d98e w5100_remove +EXPORT_SYMBOL_GPL drivers/net/geneve 0x7d5c1f97 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x01a45f8f ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x5fc09c42 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x6646ad7f ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xc03910d7 ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xf9336f9a ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/macsec 0x83c45ccb macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x49e161c4 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x54b295e3 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x782ff622 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd3c8bc86 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0xa6d7626d mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-mux 0x747796bc mdio_mux_init +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x50ae72ae net_failover_create +EXPORT_SYMBOL_GPL drivers/net/net_failover 0xe6dae3ab net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x0bffeeff xpcs_config_eee +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x23532425 xpcs_do_config +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x3f7bec16 xpcs_get_interfaces +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x62f650d5 xpcs_get_an_mode +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x70f0a1d0 xpcs_destroy +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0x8947189e xpcs_link_up +EXPORT_SYMBOL_GPL drivers/net/pcs/pcs_xpcs 0xd4587ba6 xpcs_create +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x11d4d4ec __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1c075130 bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x289ac3fc bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2a6d75c2 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2a906ead bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2c2cf6f4 __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2ee3ed8a bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x413333b6 bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x48c477dc bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x4e3063a6 bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x54624455 bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x59188fbd bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x594ff180 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6861768e bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6979a8bf bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6a9212da bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6f706fbf bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x714b6b72 bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x73523f49 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x86a209b7 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8a62f1d2 bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x971d7d83 bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xa1a2d646 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xaabe56fb bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xac2b8fe0 bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc0651272 bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xcec27a95 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xdbdb4a92 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe22d3e5c __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xecd4b2c2 __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xefeb08b0 __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xeffebb80 bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf7057199 bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf76aea22 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x0ecdc432 phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12994fd4 phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 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 0x8b943f96 phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8df9a48e phylink_mii_c22_pcs_decode_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8f039bf5 phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8f4c5b5c 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 0xa9388832 phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb384c13e phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc85b7c9f phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xcff1abd9 phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xd9153f78 phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xde66f4a7 phylink_mii_ioctl +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xe5244812 phylink_mii_c22_pcs_get_state +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/phy/phylink 0xfc885156 phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/tap 0x601c4d81 tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0x618dc1c8 tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x7a8edca9 tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/tap 0x810f9bf7 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0x8fe685e9 tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0xb8720cdf tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0xbe0ccb83 tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0xc8907c00 tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0xef6b704a tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2b691ba3 usbnet_cdc_update_filter +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x54ddd924 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x80c35b32 usbnet_ether_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xbb30032a usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcda34307 usbnet_cdc_zte_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd7358aa3 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xe9189c0e usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x3089df5e cdc_ncm_rx_verify_ndp32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4625d85c cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4929fa93 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4e98aebb cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x64e0c6d3 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x7a484ad3 cdc_ncm_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x99ed50de cdc_ncm_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9e0a2259 cdc_ncm_rx_verify_nth32 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xa45e045e cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xe2042ca0 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf144dbae cdc_ncm_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/r8152 0x310c485f rtl8152_get_version +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0806b97f rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x11922786 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2f5bf07c rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x50c341d6 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa7d2ae59 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb353ccc5 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03c3e70d usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x107f460e usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x123b48d6 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x13a12366 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1cbf52cc usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x21d269ea usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x21ffd4f5 usbnet_set_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x282be803 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28de0de5 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ad8651b usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f214663 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x384e85d3 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b847e8d usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5ab83a38 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5c74abbe usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x64a1b0a2 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6e57a698 usbnet_get_link_ksettings_internal +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87d658d4 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8a45d418 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x937b1e3a usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9f332dab usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2449270 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb4c42102 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb59bca15 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd358006 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc4a710be usbnet_get_link_ksettings_mii +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc5a42548 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc9871242 usbnet_update_max_qlen +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcbc3936c usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe11c2fa5 usbnet_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf01b5de8 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf431a6d7 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf92c6591 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc6789a9 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x13dd6a74 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x7c876b14 vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xd4bfad15 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0xff316d73 vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/ipw2x00/libipw 0xa2bb233f libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x3f968b28 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x73078a45 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x966fd687 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0x9ea2f1f8 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlegacy/iwlegacy 0xd4e7c964 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x5987fe45 iwl_fw_lookup_assert_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x71118edc iwl_fw_lookup_cmd_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intel/iwlwifi/iwlwifi 0x74778a2f iwl_fw_lookup_notif_ver +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x62d2db74 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x702e1e1e p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x9416567f p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0x9b69cf37 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xa1049856 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xd1bf6407 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xf9d2cae3 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xfa0e3e28 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/intersil/p54/p54common 0xfdd90d32 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x06c0ec81 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x206f845e lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x26460f3c lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x2c5f3d9f lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x2f4b7737 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x36a94c74 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x38344ee8 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5045676c lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x88a67670 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0x91003407 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xbb705f78 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xcd281886 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd24f6bab lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xd8db350b lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf154e8ec lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas/libertas 0xfd7c3b1c lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1409a626 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x1655fb3d lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x76c64664 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0x971c4585 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xbdcaef67 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 0xcdd47250 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xe5e338f5 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/libertas_tf/libertas_tf 0xf4c92fdd lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0270f3ad mwifiex_deauthenticate_all +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x076e1d28 mwifiex_upload_device_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x0c83d99a mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x17eb8b43 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x1d640fbb mwifiex_drv_info_dump +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x2c2b9da8 mwifiex_reinit_sw +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x33a84617 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x374b1989 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x38e41750 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3da1e73a mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x3fed407b mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x474a5bd9 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x4b3bc7c5 mwifiex_multi_chan_resync +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5381edd5 mwifiex_queue_main_work +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x5b57f355 mwifiex_prepare_fw_dump_info +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x7f3d1cd3 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x96e0c733 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0x98aae61b mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xab867c84 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xbfff5811 _mwifiex_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xd1a65ee4 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 0xe6bfb0b8 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf328a1d3 mwifiex_fw_dump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/marvell/mwifiex/mwifiex 0xf93e295f mwifiex_dnld_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x03fe91e0 mt76_set_irq_mask +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x046acb0c mt76_sta_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x08bfce39 __traceiter_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0a2c6e9a mt76_eeprom_override +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0e9d2569 mt76_update_survey_active_time +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x0f899273 mt76_tx_status_skb_get +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x161fabcc mt76_register_debugfs_fops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x17f568e9 mt76_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x18e98454 mt76_mcu_skb_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1d8c8234 __mt76_mcu_msg_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1e6c48a4 mt76_calculate_default_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1ec57b4f __mt76_worker_fn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x1f8ac718 __tracepoint_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2339a2bc mt76_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2400b69e mt76_tx_status_skb_done +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2445a2da mt76_csa_finish +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x2568bd49 mt76_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x3398a54f mt76_init_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x358e4c25 __mt76_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x42ea2886 mt76_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4594dccd mt76_ethtool_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4b5eb252 mt76_tx_worker_run +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x4d598756 mt76_token_release +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x50426f3c mt76_queues_read +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x529c444a mt76_get_rate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5c37e0dd mt76_mcu_rx_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x5d1b4e42 __tracepoint_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x63f8f7f7 __mt76_poll_msec +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x645471ab mt76_seq_puts_array +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x654879fa mt76_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x65ca7d0c mt76_skb_adjust_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x668969d2 __mt76_mcu_send_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x69ac0217 mt76_alloc_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6aa8c55b mt76_csa_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6f2e09ea mt76_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x6ff2ed9d __mt76_set_tx_blocked +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x748a2c21 mt76_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x74a046a3 mt76_alloc_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x77c50a7f mt76_release_buffered_frames +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x77e14643 mt76_mmio_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7ab373c4 mt76_sw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7ce9e4b9 mt76_mcu_get_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x7f8bfed7 mt76_unregister_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x805fc13a __SCK__tp_func_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x846f6d29 __mt76_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x878f6001 mt76_set_stream_caps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x89b7b52f mt76_init_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x89b9b285 mt76_mcu_send_and_get_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8bb73859 mt76_get_min_avg_rssi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x8c1149c4 mt76_txq_schedule_all +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x90857a63 mt76_phy_dfs_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9223b12e mt76_pci_disable_aspm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x98adb439 mt76_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9be7087f mt76_insert_ccmp_hdr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9dad422a mt76_unregister_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9e090e28 __mt76_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0x9e5f9657 mt76_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa0fab9ac mt76_dma_rx_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa42ec4db __traceiter_dev_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa59efd76 mt76_update_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa5b8020f mt76_has_tx_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa7774bdc mt76_get_sar_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xa99a755f mt76_get_of_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xac7ca4d9 mt76_get_rate_power_limits +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb255d626 mt76_get_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb6dee916 mt76_stop_tx_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xb846ade8 mt76_sta_pre_rcu_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbd6ed35e mt76_queue_tx_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xbf9a63d9 mt76_token_consume +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6315d8e __SCK__tp_func_mac_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc6634315 mt76_ac_to_hwq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc672ab49 mt76_tx_status_skb_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xc8cdec35 mt76_dma_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xca74cbcf mt76_tx_status_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcaa4289f mt76_wake_tx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcacde17f mt76_tx_check_agg_ssn +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcb30383a mt76_rx_aggr_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xcc46890c mt76_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xd24e82d4 mt76_tx_status_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdc30d33f mt76_free_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xdc54d0ee mt76_tx_status_unlock +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xde4e9032 mt76_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xe40b66ef mt76_wcid_alloc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xeaaf2f6c mt76_rx_aggr_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xee49d23d mt76_put_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xf5f52587 mt76_register_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfbe4a495 mt76_txq_schedule +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76 0xfd378db1 mt76_dma_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x00262b75 mt76_connac_mcu_update_arp_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0362b9ec mt76_connac2_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x03d1fd76 mt76_connac_mcu_add_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0425a05d mt76_connac_mcu_sched_scan_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x06045231 mt76_connac_mcu_sta_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x076032fe mt76_connac_get_he_phy_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x0ca21bb7 mt76_connac_mcu_sta_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x12fffdd3 mt76_connac_mcu_alloc_wtbl_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x14f8ba95 mt76_connac_sta_state_dp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1504f2ab mt76_connac_power_save_sched +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x1aafe9d0 mt76_connac_mcu_wtbl_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x22a59e70 mt76_connac_mcu_reg_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x2bf572f2 mt76_connac_mcu_set_pm +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x376d6cfe mt76_connac_mcu_set_p2p_oppps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3b044bd8 mt76_connac_mcu_update_gtk_rekey +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3b724504 mt76_connac_mcu_uni_add_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x3d7dc5f1 mt76_connac_mcu_set_vif_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x406f3518 mt76_connac_mcu_cancel_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x41f32348 mt76_connac_mcu_beacon_loss_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x459e7246 mt76_connac_mcu_init_download +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x48d8e75c mt76_connac_mcu_chip_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x491e73f1 mt76_connac_pm_wake +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x539cb12d mt76_connac_pm_dequeue_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5bb9dd31 mt76_connac_mcu_patch_sem_ctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5d6f5c76 mt76_connac_mcu_sta_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x5db91cd5 mt76_connac_mcu_start_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x6f0fc101 mt76_connac_mcu_set_rts_thresh +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x72003416 mt76_connac_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7375cc32 mt76_connac_mcu_sta_ba +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x73c743eb mt76_connac_mcu_set_mac_enable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x752609be mt76_connac_mcu_get_nic_capability +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x76a02960 mt76_connac_mcu_hw_scan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x798e1ec2 mt76_connac_mcu_start_patch +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x7be6d0a3 mt76_connac_mcu_rdd_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x80419a11 mt76_connac_mcu_uni_add_bss +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x8289699f mt76_connac_free_pending_tx_skbs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x84856923 mt76_connac_mcu_reg_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x882da730 mt76_connac_mcu_set_rate_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x908ca40c mt76_connac_wowlan_support +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9a9377c4 mt76_connac_mcu_set_suspend_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0x9e567043 mt76_connac_mcu_add_nested_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xa99c6f6d mt76_connac_mcu_set_hif_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xab8494ec mt76_connac_mcu_bss_basic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xabe9c1bd mt76_connac_mcu_set_channel_domain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb2a87183 mt76_connac_mcu_sta_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb33bd406 mt76_connac_mcu_sta_uapsd +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb3426a2e mt76_connac_pm_queue_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb366a391 mt76_connac_mcu_wtbl_ht_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xb6d7b8e7 mt76_connac_mcu_coredump_event +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbd2d2ac1 mt76_connac_mcu_set_deep_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xbe0a065c mt76_connac_mcu_sched_scan_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc2e9fa85 mt76_connac_mcu_sta_update_hdr_trans +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xc58049fe mt76_connac_mcu_wtbl_generic_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xce3c493c mt76_connac_mcu_wtbl_ba_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd2550a9d mt76_connac_mcu_wtbl_hdr_trans_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xd45ae1bd mt76_connac_mcu_bss_omac_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xdb74acea mt76_connac_mcu_wtbl_smps_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe0a5ce1e mt76_connac_get_phy_mode +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xe2935b0e __mt76_connac_mcu_alloc_sta_req +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-connac-lib 0xebb3e88c mt76_connac_mcu_bss_ext_tlv +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x0a3fcd5a mt76s_rmw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x20e0818f mt76s_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x2de9a912 mt76s_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x2e90a53f mt76s_txqs_empty +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x3ada0baa mt76s_wr_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x43671c76 mt76s_alloc_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x489e5222 mt76s_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x4c3a6efd mt76s_hw_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x5caa69a0 mt76s_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0x9f401f03 mt76s_txrx_worker +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xa3939b7f mt76s_read_pcr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xa6d0f341 mt76s_write_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xc7c11300 mt76s_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xdfc9a292 mt76s_sdio_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xf0b11d83 mt76s_alloc_rx_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-sdio 0xfcc2ca6b mt76s_rd_rp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x0cbf4f05 mt76u_stop_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x317300cd mt76u_read_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x36cbaa69 mt76u_stop_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x3a1b46da mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x3c5d2ed3 mt76u_alloc_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x5ebe93f2 __mt76u_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x702f33ff ___mt76u_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x8a22a44f mt76u_resume_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0x989f864d mt76u_single_wr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xa6d65283 mt76u_alloc_mcu_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xbfc7d52b __mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xc0720852 ___mt76u_rr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xd3c688c7 mt76u_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76-usb 0xf7711a21 mt76u_queues_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x0a440aaa mt7615_init_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x153e406a mt7615_mcu_fill_msg +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x1a006ca1 mt7615_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x28ecf6bb mt7615_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x3e1b7d9a mt7615_rx_check +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x54e3daec mt7615_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x591c8088 mt7615_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x60fe943f mt7615_init_work +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x7385552b mt7615_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x79709214 mt7615_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x8737bbd9 mt7615_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x8cf6fce5 mt7615_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x908bbd43 mt7615_tx_token_put +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x96d488c8 mt7615_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9a509c8b mt7615_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0x9fba6d7d __mt7663_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xa2351874 mt7615_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xaee7330b mt7615_unregister_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb282137e mt7615_wait_for_mcu_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb2e726a6 mt7615_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xb57e1261 mt7615_mcu_restart +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xbc07a21a mt7615_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc408b711 mt7615_thermal_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc42e70ec mt7615_mac_set_rates +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xc87ca2b2 mt7615_txp_skb_unmap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xd9ff4eb9 mt7615_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xe729c272 mt7622_trigger_hif_int +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615-common 0xf46543fd mt7615_register_ext_phy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7615e 0x981205d6 mt7615_dma_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x1506ffca mt7663_usb_sdio_reg_map +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0x23d78b16 mt7663_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xc4e9407f mt7663_usb_sdio_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xc81bafe0 mt7663_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7615/mt7663-usb-sdio-common 0xddbe4cf2 mt7663_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x7580560c mt76x0_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x88e7b848 mt76x0_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0x9131fc5e mt76x0_phy_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xa8310fe3 mt76x0_chip_onoff +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xab83f5f7 mt76x0_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xb0482c2e mt76x0_init_hardware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x0/mt76x0-common 0xef9eaf6e mt76x0_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x00068e01 mt76x02_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x04329f6b mt76x02_ext_pa_enabled +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 0x071f04d1 mt76x02_mac_cc_reset +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 0x0d897a78 mt76x02_dma_disable +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x0fddec3b mt76x02_mac_wcid_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x10fc2c22 mt76x02_update_beacon_iter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x134faf8d mt76x02_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x194691a1 mt76x02_set_coverage_class +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a0cc016 mt76x02_tx_set_txpwr_auto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1a6a1a4c mt76x02_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1c6a8caa mt76x02_set_ethtool_fwver +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x1fa9d5c4 mt76x02_mcu_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x247ea1f6 mt76x02_phy_dfs_adjust_agc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x2e52c37f mt76x02_set_tx_ackto +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x32b52d82 mt76x02_sta_rate_tbl_update +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x33c42ad4 mt76x02_init_device +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 0x3982ffa3 mt76x02_eeprom_copy +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x41a20ec0 mt76x02_mac_reset_counters +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x429a37ae mt76x02_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x44e5e2a6 mt76x02_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x48ca7a34 mt76x02_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x4b165c8e mt76x02e_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x52abc55d mt76x02_mcu_msg_send +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x55cccc5b mt76x02_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x56b67c14 mt76x02_eeprom_parse_hw_cap +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x594a273e mt76x02_get_lna_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5a254e0e mt76x02_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5bcf575e 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 0x5c4efad5 mt76x02_mac_setaddr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x5d907940 mt76x02_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x6b4f61f3 mt76x02_config_mac_addr_list +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x75920365 mt76x02_phy_set_band +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x7a916c7c mt76x02_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8223a368 mt76x02_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8899e32c mt76x02_mac_write_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x8f91e271 mt76x02_phy_set_rxpath +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x901effa5 mt76x02_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x90700f7a mt76x02_dfs_init_params +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x91d5b9ee mt76x02_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92ca3d71 mt76x02_mac_shared_key_setup +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x92f6d019 mt76x02_mcu_function_select +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x9449c005 mt76x02_phy_set_txdac +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x952301a1 mt76x02_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0x99ddb37d mt76x02_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa20ab5f6 mt76x02_edcca_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xa3067e27 mt76x02_mcu_calibrate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaa69f05c mt76x02_enqueue_buffered_bc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xab0d4206 mt76x02_init_agc_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xaf634712 mt76x02_get_efuse_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb1b87ecf mt76x02_phy_adjust_vga_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb20da44e mt76x02_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb46f31f5 mt76x02_rx_poll_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xb89ae690 mt76x02_init_debugfs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbae42be9 mt76x02_resync_beacon_timer +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xbb9c4b04 mt76x02_remove_hdr_pad +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc00e04be mt76x02_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc41513d3 mt76x02_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xc7cc08bd mt76x02_dma_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xcb9f6560 mt76x02_mcu_set_radio_state +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xceab31de mt76x02_phy_set_bw +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xd1b1b115 mt76x02_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xda3d37ae mt76x02_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe11366c2 mt76x02_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xe775d061 mt76x02_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf4e53ae7 mt76x02_get_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xf55574cc mt76x02_mac_set_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-lib 0xfdb7d0c5 mt76x02_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x01ae8f45 mt76x02u_exit_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0x94e2ca53 mt76x02u_init_mcu +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb2927dee mt76x02u_mcu_fw_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xb97aa16b mt76x02u_mcu_fw_send_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xe6fd1d94 mt76x02u_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xf579f5b0 mt76x02u_init_beacon_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xf7cb6eb5 mt76x02u_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x02-usb 0xfd13cb07 mt76x02u_mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x036f33e1 mt76x2_get_power_info +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x10deb634 mt76x2_mcu_tssi_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x1481a7ed mt76x2_apply_gain_adj +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x249289d7 mt76x2_phy_set_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x36314248 mt76x2_mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x3925b106 mt76_write_mac_initvals +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x57d2a938 mt76x2_get_temp_comp +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5894be56 mt76x2_configure_tx_delay +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x5a14b209 mt76x2_mcu_load_cr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x8cad9d17 mt76x2_get_rate_power +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x955f3449 mt76x2_phy_set_txpower_regs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x959e5b07 mt76x2_mcu_set_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x95a9a438 mt76x2_set_sar_specs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x97ff2017 mt76x2_mcu_init_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0x983fb309 mt76x2_phy_tssi_compensate +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb49c72fb mt76x2_read_rx_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb65ade2c mt76x2_phy_update_channel_gain +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xb7f13338 mt76x2_init_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xbff4db4a mt76x2_reset_wlan +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt76x2/mt76x2-common 0xd3b44ea2 mt76x2_eeprom_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x031b0bb6 mt7921_mcu_set_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x03580c09 mt7921_sta_ps +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x07bce796 mt7921_mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0cfccd65 mt7921_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x0ddecfc0 mt7921_usb_sdio_tx_prepare_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x19fe2213 mt7921_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1f0b7ce9 mt7921_mac_add_txs +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x1f77671e mt7921_tx_check_aggr +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x3c618110 mt7921_queue_rx_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x42f6d63c mt7921_mac_sta_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x5b831c85 mt7921_mcu_parse_response +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x69c792f7 __mt7921_start +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x6c7c6a3f mt7921_usb_sdio_tx_complete_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x78650f0d mt7921_mcu_fill_message +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7bf52523 mt7921_mac_init +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x7c2bb532 mt7921_reset +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0x9638d58d mt7921_mcu_drv_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xa12eeab4 mt7921_update_channel +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xb0cee30e mt7921_mcu_fw_pmctrl +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xb679c883 mt7921_register_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc0d301df mt7921_mcu_exit +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xc79d8539 mt7921_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xcf87e46c mt7921_mac_sta_assoc +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xe29e37c8 mt7921_usb_sdio_tx_status_data +EXPORT_SYMBOL_GPL drivers/net/wireless/mediatek/mt76/mt7921/mt7921-common 0xed1aca84 mt7921_mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x04fe07a8 wilc_cfg80211_init +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x26efa9ef host_sleep_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x2a3f0bf7 host_wakeup_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x7da5126c wilc_handle_isr +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x81501f81 wilc_netdev_cleanup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x821ca09a chip_wakeup +EXPORT_SYMBOL_GPL drivers/net/wireless/microchip/wilc1000/wilc1000 0x8e6106ab chip_allow_sleep +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x0482363a qtnf_get_debugfs_dir +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x31fab83c qtnf_chipid_to_string +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x3a100674 qtnf_core_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x49be0890 qtnf_trans_handle_rx_ctl_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0x7b9b3afd qtnf_wake_all_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xb2e11c91 qtnf_classify_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/quantenna/qtnfmac/qtnfmac 0xda573867 qtnf_core_attach +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0017b793 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x018126c0 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x05cd76f2 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x07ffd647 rt2800_txdone_nostatus +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0e3eefd6 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x0f93b310 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x10fe5cea rt2800_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x14f78cea rt2800_pre_reset_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x2e75fef2 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x40c62be2 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x411f9511 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x458282c6 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x4a0c835c rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x52d76a6b rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x591d2c1f rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x5ccc3e97 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6137fd59 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x62d1bcd1 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x62d604ff rt2800_txstatus_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x6bf8246f rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x71ddefd2 rt2800_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x76ad175d rt2800_get_key_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7905f615 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x79a326b8 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x7c8fb159 rt2800_get_txwi_rxwi_size +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x88268145 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x889b41fd rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x8a4e90eb rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x90187beb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0x9648a32b rt2800_txstatus_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xa6d16d69 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xabc269b2 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xb88639b7 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbb3303b2 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xbf5aaa23 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc27540e6 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xc2bd5639 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xcf9966c9 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xd20f157c rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xdcd1dec8 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe264a749 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xe59448db rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xf93f2efb rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800lib 0xfe7cb370 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x096e0892 rt2800mmio_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x11486fb0 rt2800mmio_init_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x1565210d rt2800mmio_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x313d2baf rt2800mmio_queue_init +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x32ac3645 rt2800mmio_rxdone_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x357c3d63 rt2800mmio_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x37601994 rt2800mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x3d741c87 rt2800mmio_pretbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x48dd2ae1 rt2800mmio_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5028bbb2 rt2800mmio_tbtt_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x5fa4db64 rt2800mmio_interrupt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x71741f0a rt2800mmio_get_txwi +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x743cd694 rt2800mmio_toggle_irq +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x91de977a rt2800mmio_write_tx_desc +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x97e3c029 rt2800mmio_autowake_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9a22e0a5 rt2800mmio_get_dma_done +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0x9f3c8921 rt2800mmio_txstatus_tasklet +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xaaf87592 rt2800mmio_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xb17cffcb rt2800mmio_init_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xd1fa9279 rt2800mmio_get_entry_state +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xf21e2858 rt2800mmio_fill_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2800mmio 0xff34edd6 rt2800mmio_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0101fd95 rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x0339894b rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x03caeb09 rt2x00mac_reconfig_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x091e37ea rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x164deb96 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x19941001 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1ad6ba27 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x1bfc04cd rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x2ab87fcd rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3199c30b rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3979748b rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x3f35ebb3 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x40c540c0 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x43dce505 rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x43defdf9 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x46cba653 rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x47a1ef43 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x5204584c rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x52f45001 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6825203f rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x6b01661d rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x708482f9 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x73c1d7fb rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x75e7fda4 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x8049e700 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x94ba7c1e rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x98977584 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9ba843b7 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0x9d4e1149 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xa0c0c0a2 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xae8f3d9b rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xb01dd09d rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbc3f8053 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbe40afbd rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xbe4401eb rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xcb6a3c68 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd038bdef rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xd5ca5847 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdbb76809 rt2x00lib_set_mac_address +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xdff8d5f0 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe4817467 rt2x00lib_txdone_nomatch +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe75abad5 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xe7ff415c rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf24e0777 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xf7811857 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfa780a81 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00lib 0xfcdf0a98 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x01e656cf rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x500b7cb6 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x7e81b57e rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x85548c40 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00mmio 0x91fce5b0 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x71027539 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0x89c2d5fb rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00pci 0xf77f0a92 rt2x00pci_pm_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x06981e02 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x06d0a5dd rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0b27b870 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x0dba50ad rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x25e12425 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x2b934e34 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x55bb1a1b rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x7c8eef3b rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0x8db4b8c1 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xacb96c50 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xb810fb46 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xbf397391 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xcbee0712 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xe7252cbe rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xea79dd6e rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/ralink/rt2x00/rt2x00usb 0xec76dfcf rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x6a116802 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0x92cc0e2a dm_writepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xb1d7ffb8 dm_restorepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8192c/rtl8192c-common 0xdea9ceb5 dm_savepowerindex +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x2186d734 rtl8723_phy_reload_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x242564c7 rtl8723_phy_rf_serial_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x279ed195 rtl8723_phy_path_adda_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x329e52ba rtl8723_phy_save_mac_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x3919d3bc rtl8723_phy_reload_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 0x489820d3 rtl8723_dm_init_dynamic_bb_powersaving +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x48b01cc7 rtl8723_phy_mac_setting_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x48f61d3c rtl8723_write_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4d47c8e7 rtl8723ae_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x4fd0a9f0 rtl8723_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x52929e2f rtl8723_dm_init_edca_turbo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x6072bcc3 rtl8723_phy_init_bb_rf_reg_def +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x61014051 rtl8723_cmd_send_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7a014185 rtl8723_phy_rf_serial_read +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7b381d2c rtl8723_enable_fw_download +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x7b80f500 rtl8723_phy_query_bb_reg +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 0x951f82e4 rtl8723_save_adda_registers +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0x9cdbedf7 rtl8723_phy_path_a_standby +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xb43be4d5 rtl8723_phy_pi_mode_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xd4791e39 rtl8723_phy_path_a_fill_iqk_matrix +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xec94c202 rtl8723be_firmware_selfreset +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xee116741 rtl8723_phy_set_bb_reg +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfac2f14e rtl8723_download_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfad74852 rtl8723_fw_free_to_go +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtl8723com/rtl8723-common 0xfdbd1aba rtl8723_dm_init_dynamic_txpower +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x040d3664 rtl_lps_enter +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x0d0b6636 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1059e0fc rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1731fc05 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x17ee27ca rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x184c5ff6 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x1d694ddb read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x27b45623 rtl_ops +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 0x3752e620 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x4620abc5 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x515ce66f rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x539e07a2 rtl_tx_report_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x5efed122 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x6db3ba37 rtl_update_beacon_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x82636e37 rtl_tx_ackqueue +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x97e05663 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0x9a86536c rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xa76806c7 rtl_set_tx_report +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaac09fbd rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xaac977c1 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xac3dcd47 rtl_fw_page_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xc99bccd2 rtl_get_hal_edca_param +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xd8cb78ba rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xda24fb01 rtl_lps_leave +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xe85b18e8 rtl_fw_block_write +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xef380fc0 rtl_efuse_ops_init +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xf2e4d86f rtl_get_hwinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/realtek/rtlwifi/rtlwifi 0xfee67607 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0584b0a8 rsi_hal_device_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x0f5c3ce9 rsi_zone_enabled +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x15e9169b rsi_91x_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0x2494039c rsi_mac80211_detach +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xcd173710 rsi_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xdd02ea9f rsi_91x_deinit +EXPORT_SYMBOL_GPL drivers/net/wireless/rsi/rsi_91x 0xfa02c5ba rsi_read_pkt +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x482b45a9 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0x8aa3d35c cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xa2456ffc cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/st/cw1200/cw1200_core 0xe8a439ba cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x00a79d8b wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x232ea38e wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x278d246b wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0123e03a wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06d3b27e wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0d22ab97 wlcore_cmd_generic_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x15401a4a wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x16c0b442 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20351125 wlcore_get_native_channel_type +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x23359e06 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x239ff9a1 wlcore_event_fw_logger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2431e00b wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2b04ee99 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2cd3c4d5 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x36006a24 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3a1e28ca wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x44208aa0 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x47d9e920 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x487873cd wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x542eb46c wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x66abea2e wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6a3ec9a2 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7437eab7 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x754bf7ff wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x791cdd40 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x81cec115 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85498cd1 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85a8a709 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x88c7bea5 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8b7a6982 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8bceb1d7 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8f389b92 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x982cf081 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9e228f5a wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa66de436 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa92a64fd wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xac5ab8db wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb97f3f06 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbdd702e5 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc92faacf wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd511ba46 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xde91f7a7 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe0e93b22 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe204b23d wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe4a3fc09 wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe67a629d wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xe7f820d0 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfa1981de wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xff2016ea wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x00287370 nfcmrvl_nci_unregister_dev +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0x2c63f994 nfcmrvl_nci_recv_frame +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xd6d34d97 nfcmrvl_parse_dt +EXPORT_SYMBOL_GPL drivers/nfc/nfcmrvl/nfcmrvl 0xe2a8a414 nfcmrvl_nci_register_dev +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x00f00b48 pn533_rx_frame_is_cmd_response +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x5a29d9a8 pn53x_unregister_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x7fe2bef1 pn532_i2c_nfc_alloc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0x94d3c69e pn53x_common_clean +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xb2a05e8c pn53x_common_init +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xbf9bb39c pn53x_register_nfc +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xdecfd339 pn533_rx_frame_is_ack +EXPORT_SYMBOL_GPL drivers/nfc/pn533/pn533 0xfb3a72bd pn533_finalize_setup +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x4fca0e92 st_nci_hci_load_session +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x8f400623 st_nci_hci_event_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0x901566a0 st_nci_remove +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xbcdb6292 st_nci_hci_cmd_received +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xc9951df8 st_nci_disable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xcabf25fe st_nci_discover_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xe7ea5926 st_nci_enable_se +EXPORT_SYMBOL_GPL drivers/nfc/st-nci/st-nci 0xf1cb96f2 st_nci_probe +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x0562bf3b st95hf_spi_send +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0x85d0b297 st95hf_spi_recv_response +EXPORT_SYMBOL_GPL drivers/nfc/st95hf/st95hf 0xa9185cd6 st95hf_spi_recv_echo_res +EXPORT_SYMBOL_GPL drivers/ntb/ntb_transport 0x0651adfc ntb_transport_unregister_client +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 0xba8232ad ntb_transport_register_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 0xc3f5e65b ntb_transport_create_queue +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 0x7a3943d5 async_pmem_flush +EXPORT_SYMBOL_GPL drivers/nvdimm/nd_virtio 0x93ca16be virtio_pmem_host_ack +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0470af83 nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0b7b1ffe nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0c488957 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0c9f1dbf nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x14ffc5a8 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1e04b82c nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x23395191 __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x24db7d9e nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x313afe1f nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x33cecb15 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x39b779dd nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3adee84d nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3fb1b915 nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x48b317f5 nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x48e22262 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4bac9191 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4d248928 nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5449ee19 nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5658a2dc nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x57cd3bfb nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5ea62d58 nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x66bcbf08 nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x69be506a nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6cd014a6 nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6f4b2b5d nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x7b41b299 nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x80916526 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x86f7986e nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8a9c70ed nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8ac29045 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8e7ec2b6 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa36fa05c nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xaa3047e8 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xac4979e6 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xad270599 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xbc5ef031 nvme_start_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xbdfccb73 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc2e075ce nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xc443b8fb nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xca03d4fe nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xcc6b479d __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xcd49c6de nvme_cancel_tagset +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 0xd8bd391d nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe1fbb3dc nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe951b28a nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfede8bc4 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x00f10fbf nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x15daa72a nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x30777142 nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x384c24be nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x51c659eb nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x5563c61d nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x62ee1415 nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x6d4ab529 nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x8322644f nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xc3a9f1b3 nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xeef4d34b nvmf_reg_read64 +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 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x8a9cf5a7 nvme_fc_set_remoteport_devloss +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xbab51c5d nvme_fc_register_localport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xbb0e18a6 nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x1213dda9 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3986f5fb nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x45119135 nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x68a08e2b nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x9536c6e7 nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xa26744da nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xa3d34ebd nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xca9687f6 nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xe9252183 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xe9cd2af7 nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xfbcbee9f nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x532f98ff 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/hotplug/pnv-php 0xc56f97e3 pnv_php_set_slot_power_state +EXPORT_SYMBOL_GPL drivers/pci/hotplug/pnv-php 0xcf468a20 pnv_php_find_slot +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x01cc7086 rpaphp_slot_head +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x20a4b033 rpaphp_check_drc_props +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x2a919f63 rpaphp_deregister_slot +EXPORT_SYMBOL_GPL drivers/pci/hotplug/rpaphp 0x7432b9ef rpaphp_add_slot +EXPORT_SYMBOL_GPL drivers/pci/switch/switchtec 0x97a544a9 switchtec_class +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x4bffe6ac mcp23x17_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x7b844243 mcp23x08_regmap +EXPORT_SYMBOL_GPL drivers/pinctrl/pinctrl-mcp23s08 0x96266664 mcp23s08_probe_one +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x5f717d95 devm_reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x719ff450 reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x80a51b2e devm_reboot_mode_unregister +EXPORT_SYMBOL_GPL drivers/power/reset/reboot-mode 0x9b38fc59 reboot_mode_register +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0x56b260b5 bq27xxx_battery_update +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xcd6e325f bq27xxx_battery_setup +EXPORT_SYMBOL_GPL drivers/power/supply/bq27xxx_battery 0xeeb61b10 bq27xxx_battery_teardown +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x09afbbe9 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0x881a2109 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/supply/pcf50633-charger 0xcf7b1ca7 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x11ba2391 ptp_qoriq_init +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2a974f37 ptp_qoriq_free +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x2eae82b0 ptp_qoriq_isr +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x4bf98eae ptp_qoriq_adjfine +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x875843b9 ptp_qoriq_adjtime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0x949dbb41 extts_clean_up +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xaccb26f9 ptp_qoriq_enable +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xb5b1bee3 ptp_qoriq_settime +EXPORT_SYMBOL_GPL drivers/ptp/ptp-qoriq 0xe5354241 ptp_qoriq_gettime +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x3b16d8c0 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5781d4a9 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x789c3ed6 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7d94a3f3 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xab6f3cd7 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/rohm-regulator 0x69c6cc6f rohm_regulator_set_voltage_sel_restricted +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x1460c0cb wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x29127966 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x46ea84db wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc1841ef7 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdb0cd5bf wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf3a61d56 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xbd80a518 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0x149236da qcom_glink_native_remove +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf14f5684 qcom_glink_ssr_notify +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xf620ca8f qcom_glink_native_probe +EXPORT_SYMBOL_GPL drivers/rpmsg/qcom_glink 0xfd2d5a1d qcom_glink_native_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x03af52db cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x046a31e4 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x091f8e9a cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x11a0b704 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x13384330 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x145be0f8 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15eeea67 cxgbi_device_find_by_netdev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1f2d55cb cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x217880ea cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x23249043 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x282c24b7 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2b48c67f cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2eadcae1 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f9e5d10 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x30c23d6c cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x30c3a24e cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3277549f cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3322c1fc cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x371d2609 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x374d9eab cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x449ae715 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6bfd6bc1 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d88e9eb cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6ff159dc cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x77e1b609 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f7d179b cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x90df7a11 cxgbi_device_find_by_netdev_rcu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9405308a cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x94a98dfd cxgbi_ddp_ppm_setup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x97c51fe8 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9b6791ed cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa2c1c3c5 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xab33623e cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc011af75 cxgbi_ddp_set_one_ppod +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc466aa5b cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb1db5d3 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdec5e99c cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe8885e60 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xeaac2bae cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xedefb824 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf1421faa cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf18e18ec cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf5e20df5 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf6085e7b cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xffb9f85d cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x105b5e2d fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1b5b1712 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1daecdd6 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x460beff2 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5e7d3b0e fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7cbe866e fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7db1e8f9 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9a750956 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa0693f2b fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa50d0493 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa9ed26a3 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd2328113 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe3442487 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea898a2a fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf9417aba fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xfd5470e8 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x1b9757cf fdomain_destroy +EXPORT_SYMBOL_GPL drivers/scsi/fdomain 0x377ef28e fdomain_create +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x09c35658 iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4df1ff61 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x68b500dd iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xc0ca96ab iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe2fe1842 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe7f1d2c1 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xea0551e6 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x09279ed6 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x05474ddb iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a423fc1 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0d973a8f iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x100ae8e1 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x13359bff iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x183afd5f iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x193daf54 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22b096d6 iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x29e3a576 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b854475 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2d79bedf iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d5e6f13 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45a9408b iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c063d41 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d8066ea iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5218f556 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54535e16 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5c9dfb4e iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a75f8d7 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6fb98b70 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7522f284 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x76f045d7 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d16e793 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x84b0cfaa iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x861adb85 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87f81244 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x887b610a iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8a25419f iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e7592a7 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9b7b8e9a iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8755095 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaab83e4b iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaaf0bf1b iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xad5d8ba3 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb54fce51 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbbd93533 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbde6c890 iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf265ad9 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1437947 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcbb4ef7a iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2b78046 iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd50a2632 iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd8e42a55 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc4a1c41 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeb115df1 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xff72aa13 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1003cf1a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x10d3790a iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x420923b8 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x44885dc9 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x45899fd4 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e62cc0c iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x736a2fbf iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x817512dc iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97b0918e iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9d0f8d0d iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa35b669d iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaae59201 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbe90bc61 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdbf89732 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf5644ab3 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfa1732bc iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfc053509 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b5696cd sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x161be600 sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x187986f4 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x18ff7ab0 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1cffa5d0 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2affe4f0 sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3639055d sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3bca18f9 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3e2f3fff sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x42eee7ef sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4b378cef sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x56b50700 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x58872022 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a224fad sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x60cdabbf sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6c1e0fe5 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8f064ea2 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9010d0e9 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x99e7efc4 sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa02e2364 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa1168af6 sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa27af1df sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7654ad0 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa9a32cea sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xad8c735b sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf8b4e91 sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xba88dc69 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc13e7497 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca92893d sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd8110d84 sas_execute_ata_cmd +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdacb86a3 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdff1090b sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe1041bd9 dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4ba784a sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe5deb284 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe97b8b77 sas_ata_wait_after_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf0623e25 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0x6f51f78e fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x014f8dd3 __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0173ca21 __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0736dd10 __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x07f01fe9 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ac13259 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bbe9c97 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f0baade iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24d27e7d iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2b0cd0b5 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x33e891f8 __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3785e561 __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ae5ee78 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42010767 iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4291d99f iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x42a0193a iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46213973 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4f6eb79d iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a9e3827 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bfaa2c3 __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5e6d98a8 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x614bfb5d iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6464e384 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81088a40 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a005f1 iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84ff8e3b iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x872a2eae iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88768c48 __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d5fe387 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8defd966 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8e9082e0 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x98263a2a iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9ee194d7 iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3ea1a3e __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa625f46b iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa63e8fb0 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa64fd7b5 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa4f2c65 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa976bb3 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab4674c8 __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xac72e44f iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xadc7cc41 iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb356b669 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb3e70c34 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6f62d92 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb736365d iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc071179 iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1f75c64 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcf7646d3 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4e55f1e __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5a8e9f6 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd908b497 iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4c79fa6 __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea560c73 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef2a6e28 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0a66716 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5570c3c iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7e8b72c iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb4a1fc6 iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x135df79d sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa491a424 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa723c60a sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf6df35c9 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x32912f41 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/siox/siox-core 0x266c13f8 siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x4e616cd8 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xa390797a siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xb8478041 siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xd6d5f832 siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xddb71d31 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x05d465ba slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x07fd5f62 slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x0c9d55a8 slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x16f77b32 slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x17a6ae1f slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1a523d33 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1b603d47 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x222fb3c7 slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x42b4154c of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4806237b slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4a897f56 slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4b414ed9 slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x78d33d5e slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8c289ab0 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x93d8954c slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x98bb16c9 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x98d1b84a slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9c3e0f99 slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9e6ea7c3 slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x9ee64ab2 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xae93d3bd slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xb3cad7b6 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xc7fca4c9 __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xcc3ae260 slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd1fae58d slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xee09dfef slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x1440fbf3 sdw_unregister_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0x474d7f04 __sdw_register_driver +EXPORT_SYMBOL_GPL drivers/soundwire/soundwire-bus 0xcdb4004c sdw_bus_type +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0x9496e825 altera_spi_init_master +EXPORT_SYMBOL_GPL drivers/spi/spi-altera-core 0xb9edd149 altera_spi_irq +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x282b1f3d spi_bitbang_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x40e19675 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x55f86754 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x7b1e76c0 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x96f93bc0 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd072e59b spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0x28955088 spi_test_run_test +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xcc863002 spi_test_run_tests +EXPORT_SYMBOL_GPL drivers/spi/spi-loopback-test 0xcd99b7b8 spi_test_execute_msg +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x1a111494 spmi_command_wakeup +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x2d5f88b6 spmi_device_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x4b5c75bd spmi_ext_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x5061cab7 spmi_command_reset +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x54685337 spmi_register_read +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x581493d3 spmi_ext_register_readl +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x601e0a27 __spmi_driver_register +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x69122225 spmi_register_zero_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x857c60dd spmi_controller_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x864a6087 spmi_device_alloc +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x893747b4 spmi_device_add +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x8e9db6f6 spmi_controller_remove +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0x96394219 spmi_ext_register_writel +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xa9adf304 spmi_command_shutdown +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xae301f32 spmi_command_sleep +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe27fbf75 spmi_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xe93177e0 spmi_ext_register_write +EXPORT_SYMBOL_GPL drivers/spmi/spmi 0xf043a744 spmi_controller_add +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x722df3e1 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x1324b0ff anybuss_read_fbctrl +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x6cd4fc67 anybuss_send_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x8ce4e807 anybuss_set_power +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x8d16f568 anybuss_start_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0x9f3c27a2 anybuss_send_ext +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xaa97cf99 anybuss_recv_msg +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xaaf8c4a0 anybuss_read_output +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xc19526f3 anybuss_client_driver_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xca25aeae anybuss_write_input +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xcfaa0525 anybuss_finish_init +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xee8fa7f6 anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xf4f9b336 anybuss_client_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xfcb658c7 devm_anybuss_host_common_probe +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/anybuss/anybuss_core 0xfce879ad anybuss_host_common_remove +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x65929d97 fieldbus_dev_register +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x7e78a712 fieldbus_dev_area_updated +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0x80820fef fieldbus_dev_online_changed +EXPORT_SYMBOL_GPL drivers/staging/fieldbus/fieldbus_dev 0xb7940618 fieldbus_dev_unregister +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x213e2856 gb_audio_apbridgea_start_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x27b1cc37 gb_audio_apbridgea_unregister_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x36eb010d gb_audio_apbridgea_shutdown_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x4be85d83 gb_audio_apbridgea_start_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x4f771693 gb_audio_apbridgea_stop_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x55b19d1c gb_audio_apbridgea_register_cport +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x5c1b4f82 gb_audio_apbridgea_prepare_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x87af2131 gb_audio_apbridgea_prepare_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0x94c37820 gb_audio_apbridgea_stop_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xaef6fd40 gb_audio_apbridgea_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xcc01dbf4 gb_audio_apbridgea_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xed5f6fbe gb_audio_apbridgea_shutdown_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-apbridgea 0xf5b83ac9 gb_audio_apbridgea_set_config +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x14d0ee53 gb_audio_gb_set_rx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x1a3969a8 gb_audio_gb_activate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2990aa59 gb_audio_gb_disable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2aa97708 gb_audio_gb_deactivate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x2e970042 gb_audio_gb_set_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x55261b24 gb_audio_gb_get_topology +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x87f95536 gb_audio_gb_set_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x8d356941 gb_audio_gb_deactivate_tx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0x9b186441 gb_audio_gb_get_pcm +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xaa1b2493 gb_audio_gb_enable_widget +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xaed18379 gb_audio_gb_get_control +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xbda577e1 gb_audio_gb_activate_rx +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-gb 0xef97bb54 gb_audio_gb_set_tx_data_size +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x06f960c1 gb_audio_manager_get_module +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-audio-manager 0x0a4e335b gb_audio_manager_put_module +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-gbphy 0x41aaf665 gb_gbphy_deregister_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-gbphy 0x6a4faf29 gb_gbphy_register_driver +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0x8ce4dce0 gb_spilib_master_exit +EXPORT_SYMBOL_GPL drivers/staging/greybus/gb-spilib 0xc7c5e77e gb_spilib_master_init +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0xf01f88dd adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x40a2b910 target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x537eed62 target_submit_prep +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xb59385a3 target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xcfe9ae94 target_submit +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x01d23ee1 tb_property_create_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0aa60665 tb_ring_poll_complete +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x0c7beb6f tb_ring_alloc_rx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x1956f838 tb_unregister_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x31a7cd0c __tb_ring_enqueue +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x393b4f2f tb_property_free_dir +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3cf4a987 tb_ring_free +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x3d78cbc4 tb_xdomain_type +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4bd82697 tb_xdomain_release_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x4c82ba30 tb_ring_poll +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 0x5e5ddffd tb_xdomain_enable_paths +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 0x68b37ca3 tb_xdomain_disable_paths +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x6a1b8ca0 tb_ring_start +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x73ad2acb tb_property_get_next +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0x77c54867 tb_xdomain_request +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 0x96adffbd tb_register_service_driver +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa3d2b403 tb_property_add_data +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa49ef1cd tb_xdomain_find_by_route +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa4a72934 tb_xdomain_release_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa7fd8588 tb_xdomain_lane_bonding_disable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xa8a3e519 tb_xdomain_response +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb0b1b086 tb_ring_alloc_tx +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xb7c7cdce tb_property_add_text +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc0c99686 tb_xdomain_lane_bonding_enable +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc8f14ac7 tb_xdomain_alloc_in_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xc972e5fc tb_xdomain_find_by_uuid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xcf4f51ac tb_xdomain_alloc_out_hopid +EXPORT_SYMBOL_GPL drivers/thunderbolt/thunderbolt 0xd32721f1 tb_service_type +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 0xfd5668a1 tb_ring_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x041e980a ufshcd_resume_complete +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x10b0d856 ufshcd_clkgate_delay_set +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x194e6176 ufshcd_uic_hibern8_exit +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1b7674f1 ufshcd_dealloc_host +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x1b92af93 ufshcd_fixup_dev_quirks +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x2815e4cf ufshcd_config_pwr_mode +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x285d04d4 ufshcd_hba_enable +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x3d626b49 ufshcd_dump_regs +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4ae19f4e ufshcd_make_hba_operational +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x4da4818f ufshcd_dme_get_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6c77d4a2 ufshcd_update_evt_hist +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x6d3cd843 ufshcd_init +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x723b1abf ufshcd_delay_us +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x7fe2ed9f ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0x922e461d ufshcd_dme_configure_adapt +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xa6e99e71 ufshcd_link_recovery +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xb58f5b3f ufshcd_dme_set_attr +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xc1ddf160 ufshcd_release +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xd28ab6c7 __ufshcd_suspend_prepare +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe15eb0e6 ufshcd_uic_hibern8_enter +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe6556aeb ufshcd_remove +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xe77131c8 ufshcd_hba_stop +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf4fc7a83 ufshcd_auto_hibern8_update +EXPORT_SYMBOL_GPL drivers/ufs/core/ufshcd-core 0xf7eb7ded ufshcd_hold +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x54c946de ufshcd_init_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x70fa3f72 ufshcd_pltfrm_init +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0x74f0a4ad ufshcd_pltfrm_shutdown +EXPORT_SYMBOL_GPL drivers/ufs/host/ufshcd-pltfrm 0xff85cd6b ufshcd_get_pwr_dev_param +EXPORT_SYMBOL_GPL drivers/uio/uio 0x0701b63b __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x388299f4 __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x968ddd35 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa35a6749 uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa0c428d5 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xd49b4572 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x259602c9 cdns_drd_gadget_off +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x4afc6fca cdns_init +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x7f6145ee cdns_power_is_lost +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x902423b6 cdns_drd_gadget_on +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x9188ab6c cdns_suspend +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0x96692d06 cdns_resume +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xc4ebe3f3 cdns_clear_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xe8c0cb69 cdns_set_vbus +EXPORT_SYMBOL_GPL drivers/usb/cdns3/cdns-usb-common 0xfc756692 cdns_remove +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x76007ad1 ci_hdrc_query_available_role +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x777e24f3 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x966d0202 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xc8243c1e hw_phymode_configure +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x4f011cdd imx_usbmisc_init_post +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x72097bb5 imx_usbmisc_charger_detection +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x773e6a99 imx_usbmisc_hsic_set_connect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x814d34fe imx_usbmisc_hsic_set_clk +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0x9688f360 imx_usbmisc_init +EXPORT_SYMBOL_GPL drivers/usb/chipidea/usbmisc_imx 0xf187f065 imx_usbmisc_set_wakeup +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x09270133 ulpi_read +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x1a569a72 ulpi_register_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x1b632391 ulpi_write +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x2e1358da ulpi_unregister_interface +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0x85b29502 ulpi_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/common/ulpi 0xea924d01 __ulpi_register_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x083b03cf g_audio_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x19280814 u_audio_get_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x1ceee29c g_audio_setup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x3d1e89fd u_audio_set_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x4196f84d u_audio_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x5bd7e285 u_audio_start_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x6c163583 u_audio_start_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x72c680eb u_audio_stop_capture +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x7e36a201 u_audio_set_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x88049896 u_audio_get_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0x881dda83 u_audio_set_mute +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xa07ef292 u_audio_get_volume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xc63568be u_audio_stop_playback +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xc698ad24 u_audio_get_capture_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_audio 0xc7225358 u_audio_set_playback_srate +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x0d4f599c gether_register_netdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x117913bb gether_get_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x20e67cf5 gether_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x3aa10cc2 gether_set_host_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x82a9f52c gether_get_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8511b1a6 gether_set_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8a161e59 gether_set_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x8fcdca69 gether_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0x95ea9b03 gether_set_qmult +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xa06715f6 gether_setup_name_default +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xabe91c4b gether_get_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xdf893420 gether_get_dev_addr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xe4158c62 gether_get_host_addr_cdc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xec87d947 gether_set_ifname +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xefce4c5d gether_setup_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_ether 0xf14b04be gether_get_host_addr_u8 +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x46ba5d2a gserial_resume +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x4a3df9d0 gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60db48f5 gserial_get_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x60ea48a0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0x6740070b gserial_suspend +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc0a01527 gserial_set_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xc22ad6d4 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xcba6a10e gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/u_serial 0xe89dc424 gserial_alloc_line_no_console +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x1f1383f6 ffs_lock +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x3299bc3a ffs_single_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_fs 0x928373de ffs_name_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x02c6e5e9 fsg_show_file +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x0bbb63bd 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 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 0x3a532620 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 0x4c328f2c fsg_store_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x56344daf fsg_hs_bulk_out_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x58ad6345 fsg_store_inquiry_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x58c5266c fsg_show_removable +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0x5ec9f0db 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 0x7c22786d fsg_store_cdrom +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 0x9a3f5d8c fsg_store_file +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 0xaac83f6b fsg_lun_close +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 0xb935ba61 fsg_common_set_cdev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xc0e98af3 fsg_lun_fsync_sub +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xceeb57fc fsg_show_inquiry_string +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 0xe24a7b37 fsg_lun_open +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xe7fd631c fsg_show_ro +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xf24a3643 fsg_common_remove_lun +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_mass_storage 0xf3cd7ac1 fsg_show_nofua +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 0x1d34bf7a rndis_uninit +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x1dbbc37c rndis_free_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x20aca5c7 rndis_deregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x258d890f rndis_borrow_net +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x3da0d450 rndis_set_param_medium +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x4e8fcd6c rndis_get_next_response +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x64cca592 rndis_rm_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0x65b0d71d rndis_set_param_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xad9fd1f8 rndis_add_hdr +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xc16ad0ed rndis_msg_parser +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xd22a225e rndis_signal_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xdac67282 rndis_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xe2f2ddc5 rndis_set_host_mac +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xf1926e96 rndis_signal_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/function/usb_f_rndis 0xf6ce705f rndis_set_param_vendor +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0254d7e4 usb_otg_descriptor_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x040dd015 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x06cdb372 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x08c88a76 config_ep_by_speed_and_alt +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c589aba usb_validate_langid +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0cb7e477 usb_ep_autoconfig_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0fa67f3e usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1423cb27 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x243201b7 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x26bc1e3e config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3010785d usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x445ce818 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4beb505d usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x550927c3 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x55d054ce usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5656451c usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5cca1793 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x691e99f2 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x6bbdf3d9 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x705b6367 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x712d4b71 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x72dc312f usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8360ff2c usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8cb0e2cb usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x90064b5f unregister_gadget_item +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x919ead19 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xad81e274 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb775db55 alloc_ep_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcf32b394 usb_otg_descriptor_alloc +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2b9f200 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xda0855af usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xdf9cfe86 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe0605c8b usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe3b9a954 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf6db3ecb usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x0db762f5 init_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x2cb6b82e udc_remove +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x3c7f2d2c udc_mask_unused_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x3fdb9fd4 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 0x69854acd udc_basic_init +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0x9f1fb58d free_dma_pools +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xb523e2d9 udc_enable_dev_setup_interrupts +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xee4b8d00 gadget_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/snps_udc_core 0xf0df34f7 empty_req_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x01b12bfb usb_ep_free_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0a8c3b4b usb_ep_set_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0acfe2e7 usb_ep_set_wedge +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x0d90d784 usb_ep_fifo_flush +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x145d3d75 usb_gadget_check_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x190e903f usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x208ae892 usb_gadget_vbus_draw +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2936040a usb_del_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x2abfdb72 usb_gadget_register_driver_owner +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3192f3c7 usb_gadget_vbus_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3a46d95c usb_gadget_udc_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x3a8d1fa8 usb_gadget_vbus_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x49d9f030 usb_ep_fifo_status +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x4ba86c2e usb_gadget_unmap_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x506ab3a9 usb_ep_queue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x50b88f41 usb_get_gadget_udc_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x548c34d5 usb_gadget_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x5fc294ef usb_ep_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x656c34e5 usb_initialize_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x6a2e3c29 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x773b587a usb_add_gadget +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7a41b9f2 usb_ep_set_maxpacket_limit +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7be89624 usb_gadget_giveback_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7de3c5e9 usb_gadget_ep_match_desc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x7f31e957 gadget_find_ep_by_name +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8231705f usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x87673b1d usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x882077d5 usb_ep_dequeue +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x8e90ee20 usb_gadget_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9dc48819 usb_gadget_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0x9eb52803 usb_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa57f51b0 usb_gadget_set_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa801366c usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xa9e74462 usb_ep_alloc_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xaf201fa6 usb_ep_enable +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xb3a2268d usb_udc_vbus_handler +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xbd12bf78 usb_gadget_clear_selfpowered +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc3e0f424 usb_gadget_map_request_by_dev +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc40e82ae usb_gadget_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xc4560c74 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xcb44cf9d usb_gadget_frame_number +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xda85332f usb_gadget_wakeup +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc/udc-core 0xdf57aeb3 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/host/xhci-pci-renesas 0xa483deb7 renesas_xhci_check_request_fw +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x209168e8 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x723d7e44 ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x37213b49 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4d72bde6 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xba8ad552 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcb570847 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdaf3191a usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xddb0cd6c usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe45dfcc5 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfaf2ec08 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfe3dc08b usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x04406edd musb_get_mode +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x09492220 musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x0b4a8834 musb_writeb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x2734197f musb_readb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x51359cfc musb_queue_resume_work +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x669594ad musb_clearw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x6af8c6dc musb_writel +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x719a5e41 musb_readw +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x8e3a4798 musb_set_peripheral +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x8fd93d36 musb_set_host +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xade3e56c musb_writew +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xe59efb0e musb_clearb +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf0f95e51 musb_readl +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf357faf8 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0xf8c50f89 musb_root_disconnect +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x175ee4ec usb_phy_generic_register +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x201e9026 usb_phy_gen_create_phy +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0x29e67068 usb_gen_phy_shutdown +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xc78f9837 usb_gen_phy_init +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-generic 0xeecff4ee usb_phy_generic_unregister +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xb4a3018a isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xca0191b9 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x02b23698 usb_serial_generic_write_start +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x125c0d57 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3994b721 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a998a1c usb_serial_claim_interface +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x417e118d usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x55837c67 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58c8e21f usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x69bc96d1 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x74379816 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7c4c0cb1 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90e7a860 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x95bbf0d7 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa1669b75 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa7de8a19 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb139a91b usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdae1a36d usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe842cc46 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xedbaaa57 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf2ec91be usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf8bd6efc usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x80cb2691 dp_altmode_remove +EXPORT_SYMBOL_GPL drivers/usb/typec/altmodes/typec_displayport 0x9e0c3709 dp_altmode_probe +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x356fb82e tcpci_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0x6f497a3c tcpci_irq +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xbe111953 tcpci_get_tcpm_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpci 0xc529e32e tcpci_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x10ec6d2d tcpm_sink_frs +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x3b84657b tcpm_pd_transmit_complete +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x76eeda4b tcpm_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x90eb7384 tcpm_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0x9e0bd753 tcpm_pd_hard_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xb655342c tcpm_pd_receive +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xc37b9769 tcpm_cc_change +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xceb50012 tcpm_vbus_change +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xea220941 tcpm_tcpc_reset +EXPORT_SYMBOL_GPL drivers/usb/typec/tcpm/tcpm 0xeb779665 tcpm_sourcing_vbus +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x04864950 typec_switch_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0b393782 typec_port_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0bee4a0b typec_altmode_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x0c2cf654 typec_unregister_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x11828e5d typec_altmode_put_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x153bdad9 typec_match_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x17866eea typec_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1903ba28 typec_unregister_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x1b4761cc typec_mux_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x24870a05 typec_partner_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x25181590 typec_partner_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x259d1320 typec_register_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2ba709f7 typec_cable_is_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2bbc6a58 typec_set_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2d1e301d typec_find_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x2e4e71fc typec_cable_set_identity +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x32288290 typec_altmode_get_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3e3b3d45 typec_plug_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x3f8193bb typec_set_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x47120ab0 __typec_altmode_register_driver +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x48053d64 typec_altmode_vdm +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x4dc02684 typec_get_fw_cap +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x5188b3c3 typec_register_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x525765b4 typec_altmode2port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6b3d9465 typec_mux_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x6ee22872 typec_set_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7b51eb77 typec_set_vconn_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x7ea734ce fwnode_typec_mux_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x80dafcf4 typec_altmode_notify +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x86521d45 typec_switch_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8b976191 typec_get_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8d09a08e typec_switch_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8ee20e1e typec_unregister_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x8f0a998a typec_switch_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x9049491e typec_find_port_data_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x93493c87 typec_unregister_cable +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x93ab453e typec_switch_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0x956f91f5 typec_mux_register +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa106d825 typec_register_port +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa254de98 typec_find_orientation +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa5c95e59 typec_mux_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xa907eddc typec_mux_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xac0afc23 typec_altmode_update_active +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xac66e0f6 typec_get_negotiated_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb3ac4a63 typec_set_pwr_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xb6d535be typec_port_register_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xbde34081 typec_unregister_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xc3518462 typec_altmode_exit +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xcf961782 typec_register_partner +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd2fa1286 typec_switch_set +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd4e8cf31 typec_plug_register_altmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd6ca5844 typec_altmode_enter +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xd950cdea fwnode_typec_switch_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xda05dcd1 typec_partner_set_svdm_version +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xdc01a206 typec_altmode_get_plug +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xe84f7209 typec_cable_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xea681692 typec_partner_set_pd_revision +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xeafc1eb8 typec_find_port_power_role +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xed2c5b4d typec_cable_get +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf037951b typec_partner_set_num_altmodes +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf1234a8b typec_find_pwr_opmode +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xf8f831b7 typec_altmode_attention +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfc8df340 typec_mux_put +EXPORT_SYMBOL_GPL drivers/usb/typec/typec 0xfe2503a0 typec_set_mode +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1444cd0f ucsi_set_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x1cdf4778 ucsi_connector_change +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x2bb16b06 ucsi_register +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x3897229a ucsi_create +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x4be7f068 ucsi_get_drvdata +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0x55f3081b ucsi_unregister +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xa37d487e ucsi_send_command +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xb2568e6c ucsi_resume +EXPORT_SYMBOL_GPL drivers/usb/typec/ucsi/typec_ucsi 0xdb5b225f ucsi_destroy +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x06d3ddfe usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x0d755d76 usbip_recv +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x15f21dc9 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x17872755 usbip_in_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x21d0bfe1 usbip_event_add +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x2ef06bbe usbip_start_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x313a8049 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x36be59cc usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x7125b060 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x836c89cc usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0x9122555e usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xdd8288c7 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/usb/usbip/usbip-core 0xe8b8c53a dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x0bf6fb1f vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x0c6f1b84 __vdpa_alloc_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x179f1a4e vdpa_mgmtdev_unregister +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x2449ebb8 _vdpa_register_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x2e18ec53 vdpa_mgmtdev_register +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x68e85485 __vdpa_register_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x6fc7e064 vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0x802b6bb9 vdpa_unregister_driver +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xa2a0a1f2 vdpa_set_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xb4c6fac4 vdpa_get_config +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa 0xbb8903fb _vdpa_unregister_device +EXPORT_SYMBOL_GPL drivers/vdpa/vdpa_sim/vdpa_sim 0xaffb0b62 vdpasim_create +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0x6beab59b mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x035ea4c8 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0788ad97 vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x15d2b681 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1fe7fdbf vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3e0408a5 vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4884e0d7 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x57b885ba vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5d5b8261 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5df15236 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6095644c vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x62a3282a vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6b53b0a9 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x75f990bd vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7ef76d92 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x85b861d7 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9151396d vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x957b033d vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9753c6e3 vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x993a40f7 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa08d2367 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa576c86f vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa8dc8433 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb786d39b vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb9b80215 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbb063fea vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbb25863e vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbf3907e9 vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc1ab863e vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc46a0619 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcac6f5c0 vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdbe7e76a vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe81eb496 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe89ec87e vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe9bf88bf vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xed8bcf61 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf316279d vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf6872ad7 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf7698dfa vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf8ebf575 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x83be64b9 vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x885512a2 vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x8a7d8ee9 vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x02a3d6d9 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0985a807 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5c121a16 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8bd9600e ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc8d21e9c ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfbbd4ff5 ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfeca611b ili9320_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_ddc 0x8edf296c fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x26d48266 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x7db60ff7 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0x2fa9d6ea sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/fbdev/sis/sisfb 0xad620bd3 sis_free_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4b523986 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x5204771d w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x63757e92 w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x6f8d7d7f w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7a446d98 w1_triplet +EXPORT_SYMBOL_GPL drivers/w1/wire 0x93ff2bdf w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xaec74082 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb1ef76eb w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xb358ca54 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc5edca47 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xe8e93ff8 w1_touch_bit +EXPORT_SYMBOL_GPL drivers/w1/wire 0xfabc0683 w1_read_8 +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4b62826c dlm_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4df81266 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x647d6170 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8dc355ea dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa50b0135 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/lockd/lockd 0x2f3f33d9 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8861d8a5 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x9ac94768 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbc2c7b7c nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcc8d9809 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe249e69c lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xfb4c07a0 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0354cb58 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05d46906 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x05f4b866 nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x077b0fe1 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07ca17ae nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0835f46f nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x09fee2c4 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b083d02 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b894f10 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d2b7220 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0ddf95b9 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1373791f nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13d541b0 nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x169794aa nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x184edeb5 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a8d048c nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c535279 nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d87b268 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ffe08f6 nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x21a982d6 nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x254fc911 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25cb0360 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28aad469 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a400661 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2be64973 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2f5e0dbd nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30496988 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30cff9c3 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31747b9e nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x317c7948 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3692e0c8 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3709e3c6 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x378df7cc nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39d5c41a nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3bd011a9 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3d20490c nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f876aaa put_nfs_open_context +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 0x4490655d nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44cc3a41 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45182300 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x489720d1 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4bbe37c4 __traceiter_nfs_fsync_enter +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 0x57cb67da alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x58d00f01 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x590b8d95 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59923eb3 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59e492af nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5cf91d88 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5de3cc21 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5eab8cdd __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x654a91fc nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68d69f79 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6917c497 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a4d658f nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ce3279e nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6ddbe896 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6fe300a5 nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73a21603 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x751814ac nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7790255c nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7991479b unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8294add9 nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x852ffa9e nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b6b2748 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8cbf0b75 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8eaba800 nfs_pgheader_init +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 0x95007f7e __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9618de22 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97228841 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x977dae2e nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98f7fc59 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a169d52 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bf9a370 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9ccd568d nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d0601e0 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d7aee11 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa020f212 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa09bdf95 nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2840d4c nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa32487c0 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa527c9aa nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa631622a nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa651a855 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa76eb302 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7f2741d nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa808ecd8 nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaba2e568 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xabf1373a nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb039916e nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1ebd89c nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb4f3bc07 nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb56c2817 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6329920 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb77216b2 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba8ad744 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbaea3d6a nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbda439f9 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc2dfd6a4 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3559819 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc582dc79 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5b9ebce nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9d9272e nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca1d1a4d nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca4835d7 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcaf2c5c5 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcb231342 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcbdeb1b9 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc465228 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf70e7d3 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd00201b1 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd10c75b8 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd16d20d1 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd251549e nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5cb27ef nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5f2346b nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7369a97 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9bf2edf nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda3ca351 __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde279962 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdead034d nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdf08fe2b nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe3d2c1bb nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4a8695e nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe530e098 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe70507df __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe844c079 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9ccb59d get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xea06530b nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5f770c4 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6ce2c74 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf92ad021 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf96f04c4 __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf98bdcef nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa04f955 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfaafda47 nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc35e0ac nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfce53dec nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd203ee9 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd7fc025 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe149d30 nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff8a6eac nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x4976417e nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0093935b pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x015168a8 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x03820972 __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0611ba5d pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0672b919 __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09179730 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0939c217 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0aebca68 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0b1c8b68 nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f01076e __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff91abc pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x172b421e pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x18376fdc pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f247f13 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x207f84f3 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x229c6d61 pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x261fae5a pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2a636b00 pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2d085d85 pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2e673fa3 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x313c954b nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x32bb6e05 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3f7009a4 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4332a961 __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x45007fa9 __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4a5d2a7d pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x53d3cc8d __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5cc54bc5 pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ce462a3 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5d00ee9a nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5dcff0bc __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6085edbd nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x646c2f43 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x67271c30 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x70dc5365 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x70fca11e pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72841854 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ab7bcc6 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7fdf22ca nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x806aba33 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x82409884 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85925cf9 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x85dd5be7 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8bb64ba6 nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8f207a83 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x93ea6c62 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x965a4f48 pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x96d11642 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x974a1614 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x982816a4 pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a1a74c3 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a1ad6ef nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9c0e9074 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9d4cd0d2 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ee59fd8 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa102d0ad nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa19ac0d2 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa67acda4 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xab4d2b46 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xabde0277 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb22bb390 __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb58dc1d9 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb630b30c nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba53a1ef __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc270bf7c __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc2e885ea __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7a9d954 __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xca6ff196 pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcdbea6f3 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xce31c96b __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf29b95f __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf8d9511 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0ecfaad __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd448379b nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd4c1e468 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd6d50e68 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd7e755db nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xda696793 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf6991a4 __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdfabad8b pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe15fba57 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe19f5ee0 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe34f817c pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe3dd9378 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe774f083 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe8db1566 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeae8522f __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xebff9b78 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xede41327 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf2dc6e49 pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf2ee2037 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf32feaef nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf4ddf30e nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf500fdd3 pnfs_generic_search_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 0xfafcb899 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfcbd6f62 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1ba1c3d2 opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x62f0d8f0 locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0xb13e37cb locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x0a621f60 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x74bc78b7 nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xa2736be9 nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc5f97287 nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x7823f3bc nfsd4_ssc_init_umount_work +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 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 0x672bd7c5 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7c5417af o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7d6f83cc 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 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 0xb7882212 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 0xc0661401 o2hb_setup_callback +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 0xddd4b93e o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xde8da78b 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 0xfe1298f3 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0b6fbf50 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x133f052d dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x16eb59b8 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4af7967a dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x75787050 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 0xa5d8e5ef dlm_unregister_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 0x29bde4a0 ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x59010678 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 0xea733250 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xfb978fba ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x3e8c6c70 register_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x402eee6b unregister_pstore_device +EXPORT_SYMBOL_GPL fs/pstore/pstore_blk 0x43cc3d4b pstore_blk_get_config +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x1da4f220 register_pstore_zone +EXPORT_SYMBOL_GPL fs/pstore/pstore_zone 0x26f922cf unregister_pstore_zone +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xabd9af6d cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xc4c73891 cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xceecd9e4 cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xdef1096d cifs_md4_update +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 0x0c303f52 bch_encode +EXPORT_SYMBOL_GPL lib/bch 0x0d3e3481 bch_free +EXPORT_SYMBOL_GPL lib/bch 0x1a267fa8 bch_init +EXPORT_SYMBOL_GPL lib/bch 0x860a2eab bch_decode +EXPORT_SYMBOL_GPL lib/crc4 0x696b3a5a crc4 +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/crypto/libpoly1305 0x31d4e581 poly1305_init_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xd7219de2 poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xf3945fcd poly1305_final_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x4e512416 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x6197f24f notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x804a5b70 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x1d29b9e1 decode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x561835eb init_rs_non_canonical +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x63adbf92 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xa32f3d9e decode_rs16 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xeb2f825c init_rs_gfp +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xfd581da1 free_rs +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0x0ecaa02c lowpan_header_decompress +EXPORT_SYMBOL_GPL net/6lowpan/6lowpan 0xbb8de41d lowpan_header_compress +EXPORT_SYMBOL_GPL net/802/garp 0x1038bac9 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x4c3a5c05 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xbd8ceb53 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xc372beb1 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xdf48c2fc garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xe6ffdc36 garp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x7c3d6864 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x8fb23619 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xa5901f94 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xc2702594 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xd919b416 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xe3096dd1 mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x17d3a013 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x4dc57202 stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb381db27 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xbe7976f9 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 0x37ec2520 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 0x28e4411a l2cap_chan_set_defaults +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x32c06af1 l2cap_chan_del +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x357d261a l2cap_chan_list +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x4bfc43bc bt_debugfs +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5884d56e l2cap_chan_connect +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x94c39b5c l2cap_chan_put +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x9cdea6d6 l2cap_chan_create +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xa49d43d9 l2cap_add_psm +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0xd0317a19 l2cap_chan_send +EXPORT_SYMBOL_GPL net/bluetooth/hidp/hidp 0x7b2003f6 hidp_hid_driver +EXPORT_SYMBOL_GPL net/bridge/bridge 0x0185bf44 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x05d4f335 nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0x08ecc7cd br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1a0e97a0 br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1e5644d1 br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x2284e845 br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3f733b39 br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4078e62d br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x42b1392e br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x45169115 br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x47265c0c br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4852f075 br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x4b6f2001 br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x5d03bf45 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0x6ce2dd72 br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0x74d069cf br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0x822e7f1b br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x94019e3c br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0xa8a9e57d br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb3b93488 br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0xcb314321 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd8fa798d br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe2cf8a44 br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf1e21d33 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf4ef06ca br_get_ageing_time +EXPORT_SYMBOL_GPL net/core/failover 0x29a34130 failover_unregister +EXPORT_SYMBOL_GPL net/core/failover 0x51de875e failover_slave_unregister +EXPORT_SYMBOL_GPL net/core/failover 0xf60cfc84 failover_register +EXPORT_SYMBOL_GPL net/dccp/dccp 0x08b3bc91 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x13dc7799 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d898b33 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2352548a dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2353ce26 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x25160f9d dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3167e719 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x39d8bba7 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f7da583 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x518d1283 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5b017b2a dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d1bafe0 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x61b0c1cc dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x631d8a38 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x658b83c2 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x678d1b0f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x69e74526 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d07078a dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6ecfaa09 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x72f69111 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x79eb05a9 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x81ed660c dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x865b00ec dccp_feat_signal_nn_change +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 0xa9a42325 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb85c03f0 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbafec36a dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc91f59ff dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd8200cc9 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd8f853c0 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0eebdc4 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe15485d9 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfc8e64e0 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfdde384c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x476f8989 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8921e878 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa04269e4 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcb7b4258 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe31fa445 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe94b2ab4 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0affd7a6 dsa_devlink_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x0c6039ac dsa_flush_workqueue +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x1adef8f0 dsa_switch_suspend +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x2def197b dsa_tag_drivers_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x30084217 dsa_unregister_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x335c3adb dsa_enqueue_skb +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x3a881cce dsa_devlink_params_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x3cbb1749 dsa_register_switch +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x417d1fed dsa_8021q_rx_switch_id +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x45ca5090 dsa_tag_8021q_bridge_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x53933c1d dsa_port_from_netdev +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x67dd3960 dsa_tag_drivers_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x724dabfe dsa_switch_find +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x81df65b4 dsa_8021q_xmit +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x8357b41c dsa_tag_8021q_find_port_by_vbid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x848b35eb dsa_tag_8021q_bridge_leave +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x92a4def1 dsa_devlink_resource_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9564111f dsa_tag_8021q_standalone_vid +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x98a74e49 dsa_switch_resume +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9e59271d dsa_8021q_rx_source_port +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x9f73735e dsa_slave_dev_check +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa76117c0 dsa_devlink_resources_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xabba0ede dsa_tag_8021q_bridge_join +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xbb01ecbc dsa_devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc179fe0c dsa_dev_to_net_device +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc23e8d5f dsa_devlink_region_destroy +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd077e855 dsa_devlink_param_get +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd5d4e818 dsa_tag_8021q_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xd61a834c dsa_devlink_port_region_create +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xdcdd57a2 dsa_8021q_rcv +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xe19f735b dsa_fdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf0da7107 dsa_devlink_params_register +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf13e1803 vid_is_dsa_8021q +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf32d0b30 dsa_port_phylink_mac_change +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf678bb33 dsa_tag_8021q_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf6e7eb08 dsa_mdb_present_in_other_db +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfd3e2b67 dsa_devlink_param_set +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xfe0003bc dsa_devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xffc7bee7 dsa_switch_shutdown +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x3fac5d15 ieee802154_hdr_pull +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x7d33dc02 ieee802154_hdr_push +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x8050e529 ieee802154_hdr_peek +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x87e2553b ieee802154_max_payload +EXPORT_SYMBOL_GPL net/ieee802154/ieee802154 0x9be6eb0f ieee802154_hdr_peek_addrs +EXPORT_SYMBOL_GPL net/ife/ife 0x6210e871 ife_tlv_meta_next +EXPORT_SYMBOL_GPL net/ife/ife 0x67db2029 ife_tlv_meta_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x766de802 ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0x8af42198 ife_encode +EXPORT_SYMBOL_GPL net/ife/ife 0xe7888e98 ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x41ef1363 esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x6ed1eeed esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xcbf6b323 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/gre 0x441582ff gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8d80ba29 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x13b2d2f0 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x1dcf871f inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x245f016d inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x37ad3562 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x60ab058b inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x672c791b inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x87503f60 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc5158e12 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xc5f301ee inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0x9dd34f44 gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x243254af ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x30abc982 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3c1e673e ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4596cc24 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6916d73f ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7100f649 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x73f43101 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x784026c6 ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8103292d ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x865ebbcb ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbc23310e ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc068b42f __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc1fca800 ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc3ae061e ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd1a1b0e7 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd3d481b1 ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf836b70d ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x18bc9875 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xf6710a0a ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x215be717 nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x3ac66436 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0xd8523129 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x16d0eee4 nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x2f9741e5 nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x4a55b83a nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x962a9c9b nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xbaefd6a8 nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xc2ddb44a nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0xdc969e36 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0x33b10f02 nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x6e3f7fe4 nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x8f170117 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xcbeabdbb nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x363e32a8 nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x8c8972c2 nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x20fd2cf8 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8cc673de tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbf1a80eb tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc4bcf5b2 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xce9214bf tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x022b5979 udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x599961ef udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x93bc8cc8 udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xadbe65c4 udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xc6c20ff5 udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xc957aeab udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xd2d97eea setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xdb3019bf udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x1445d693 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xb21d6d0f esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xbc667f53 esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x98f8993a ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa6307bd3 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xd9de9bce ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x0f605e83 udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x49d7ddee udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x022b70ef ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x084a40e5 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x163f730e nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xceafca38 nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0xb5f8d4fa nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x3298c479 nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x484a0d5c nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x4e9018d0 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x62f12755 nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x8e48a218 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xc095f8f1 nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xc17451ab nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0xb4d6ae6b nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x58d2e86c nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x5ba6287e nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0xbe2ffc44 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x1bcb7598 nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0xdf3fdd66 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x07c0d323 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0b463bbd l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2459508f l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x29b750f6 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d55d4b4 l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x41f59b67 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4feb9433 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6cd112fe l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x73626225 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x865ed8f2 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x89c114ee l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x966905d3 l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa94440ce l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xad91e8de l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb08be8a9 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbff3aa88 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd0a93655 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdddd0bd9 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe00743a9 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe85dbe69 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf396808e l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x23478956 l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x5a1b87be l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3765cf98 ieee80211_iterate_stations +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3df4b700 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x42974fef ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x5250cf98 ieee80211_tkip_add_iv +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59c13bed ieee80211_key_mic_failure +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6046baa4 wdev_to_ieee80211_vif +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6e50eba2 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7daecc53 ieee80211_calc_tx_airtime +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9742df01 ieee80211_hw_restart_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9a4ba194 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9fcc139c ieee80211_vif_to_wdev +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa1247034 ieee80211_remove_key +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa35e87d3 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa4b2b77e ieee80211_key_replay +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb5beab58 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc099675d ieee80211_gtk_rekey_add +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc5e94764 ieee80211_iterate_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc69f79bc ieee80211_iterate_stations_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcd32b1e5 ieee80211_iterate_active_interfaces_mtx +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd00b8853 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd3cf10ae ieeee80211_obss_color_collision_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd42946bc ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd84abf27 ieee80211_update_mu_groups +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd8e09da4 ieee80211_set_key_rx_seq +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe1bd9c55 ieee80211_color_change_finish +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf914346b ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfbe449b2 ieee80211_calc_rx_airtime +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x4dc1eae4 mpls_output_possible +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x604d4aca nla_put_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x6c6e84e9 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xa56476f8 mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xc65a4a4e mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0ca90a6d ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x18cf584c 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 0x32bfdbbc ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x343a9ba2 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4415c86f ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x55d67ce2 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x59a2d568 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6b570941 ip_set_put_flags +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7e4b98fa ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x86da1e7e ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x918d130c ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x939fae27 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x95a7baf1 ip_set_init_comment +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 0xa808b6cf ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xab8f89ae ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xb5ab10f6 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xce953f1f ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe8bbd145 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xec5fb6d9 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x05c7c706 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x2da86eac ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8444770e ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xcaae017b register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x1f0f56d3 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x5732ef62 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x5f6a771a nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x701eb3ac nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xb2cfeaf4 nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xc43f6d4c nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xfbda577f nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x027cac35 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x051128b8 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05310b2f nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06f83b4f nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bc00f80 nf_nat_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c1aeeff nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1235ff61 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x126f3f0d nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x156ab6fe nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1869de02 nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a94ddad nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1aa92a91 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20a641d5 nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20ce6be8 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2243f097 nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x257eec9b nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x260e046f nf_conntrack_register_notifier +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 0x2b369d09 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e8150ac nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x318855e3 nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32fa3281 nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3490a8be nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3780a370 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38982d2c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38c132e2 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b2bfb81 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b87e4ef nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c06aac0 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4099c861 nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40dd27de nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40fee98d nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44d3a52a __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46792da4 nf_ct_tmpl_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55fa4352 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x629b30fb nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f820497 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7073def7 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70f99bb8 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x721edffc nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72add3e0 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77a0038b nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77d1f324 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7803982f nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a4de869 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x87a6b05f nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a66c4fc nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8befb8b0 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bf66e09 nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8d921ae0 nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fa7525c nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9315128f nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x931c578d nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9aafd78a nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa2e0c5cc nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3f12d3e nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa505f61c nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa71adfca nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac934157 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafbd6cf5 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb01403d1 nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0bc853d nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1f84632 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5a8b5a6 nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb68a8c82 nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbcd4c867 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc119fc28 nf_nat_helper_unregister +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 0xc47f816a nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4d43219 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc52bc1c2 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7b486ee nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc839fc37 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc87ccfc9 nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca679ddf nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2b5b415 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 0xd707a19e nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0aed48 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf4c25d9 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe925d09e nf_ct_expect_alloc +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 0xf161e2fb nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4721c5d nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb7ed64f nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfd04969f nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfd95d717 nf_ct_iterate_destroy +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 0x3a5084f5 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x6514b62e nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xa4a9b38a nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x16f6aaa1 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x18de2308 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x19a5029e get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3b345a9e nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3ef5a0bf nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x48ba3838 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x749e72f5 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x75f72321 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb12b5524 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe9a657df nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x347555fe nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc0abecac nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x15c1080e ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x272d7d0b ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6d137ec5 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9b3356c0 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9d5bea6b ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xccd2bc67 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd4826db0 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x9ddbb797 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xed666113 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x8fc86938 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xad439414 nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xc091eb61 nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x01f54a2b nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x16f3f7bc nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x1f3c0b96 flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7dc1eafa nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7f2aab44 flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x82bd5393 flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x878350e8 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x88c5521a flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x95dee727 nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb31e60be nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xb8f50ef6 nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xc411d854 nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xe3ca0b10 flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xeb0a050d nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xec6d9d7d flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xecf362e2 nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xf0f64808 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x00e754e7 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x07d4b38e nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x2315cd9b nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x2d163cba 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 0x47dc4848 nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x544693a6 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5b0514bc nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x64e9f32c nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x6bfbea18 nf_nat_masquerade_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x757d491d nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9ad6cd22 nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb1c1f8b3 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc13942fc nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc6a67a2e nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd6aa2aa0 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 0xfe15f2d8 nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1eaa259c 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 0x2c412a61 nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x55d7be70 synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x5e22d93c ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x62757f42 synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x64ea3ea8 synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x69879ab7 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb24438af synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xb50236f9 nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xda5e22da ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xf0c4862f nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0828e2a8 nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0b0638da nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0f02a706 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1810a766 nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1b079271 nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1e75cbc5 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2633aabb nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x35ed55d5 nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4a6e24a1 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54673619 nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x54a6a969 nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x58edcbed nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5a0b55ca nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x61ac75f9 nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x61eac818 nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x62b55f7b nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x73401ae3 nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x74e6db93 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7e9dc104 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8049e59a __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8800ae05 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8dc12850 nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8f4a7ce3 nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8f6678fc nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9084edc7 nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x96474bab nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x98c7c349 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x9f402ed5 __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa2befeb7 nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xae146477 nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xae66d302 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb50d59c8 nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xb87d59ec nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc17142b9 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc2352bda nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xceac216a nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd591f552 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd9e9c9f3 nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdb6f5f64 nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdcf4a626 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xea821a73 nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf131dc70 nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xfabb80ea nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0d2e5242 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x14a06f94 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x14debf52 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1cd5e095 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6b48c9cc nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc022b55e nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xfc75e765 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x0ff28bf4 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x5a82508f nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xe6d47a04 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x588cc348 nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x875abed6 nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x3dcd00d7 nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x4233ef3a nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x449cd7cc nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xccd3631f nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xe566d914 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6519bf49 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x8af62d43 nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xa4469970 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 0x09ac0206 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0b54c96f xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x18ad6efd xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2473cb5f xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e71b908 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3d815f84 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x49572767 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x55aa7987 xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6c66efd3 xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x77b851cb 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 0x823edea5 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x88c7eece xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8983db8e xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x917832aa xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c995c69 xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa4d82890 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa7c94f1d xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb0fc5880 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xba0288b6 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbfacb837 xt_percpu_counter_free +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc06c1e11 xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7fae024 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd072d73d xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd1e246a2 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd291628d xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3fcc511 xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd8cc2181 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd941d315 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bb821b xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7ef2459 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf5babaff xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x39fd5e07 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4912a28e xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x565d1296 nci_spi_allocate_spi +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0x7ba27025 nci_spi_send +EXPORT_SYMBOL_GPL net/nfc/nci/nci_spi 0xa592a953 nci_spi_read +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x2f08d1d5 nci_uart_set_config +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x337bedea nci_uart_unregister +EXPORT_SYMBOL_GPL net/nfc/nci/nci_uart 0x990722ef nci_uart_register +EXPORT_SYMBOL_GPL net/nsh/nsh 0x08a6393f nsh_push +EXPORT_SYMBOL_GPL net/nsh/nsh 0x7ade77ef nsh_pop +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x19e5be4b ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x236aba29 ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x7dcf2b2f __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xbd0c3925 ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xe637f2c4 ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xe9998a23 ovs_netdev_link +EXPORT_SYMBOL_GPL net/psample/psample 0x4f65d03c psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0x73132779 psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0xb562227b psample_group_get +EXPORT_SYMBOL_GPL net/psample/psample 0xf7eba6c9 psample_group_take +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8421fa84 qrtr_endpoint_register +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8d25501f qrtr_ns_remove +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0x8f7d587b qrtr_endpoint_unregister +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xa47e91ba qrtr_ns_init +EXPORT_SYMBOL_GPL net/qrtr/qrtr 0xdd2ed0c5 qrtr_endpoint_post +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x08682652 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x0f55f9a6 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x1452ed8c rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x20c09fa0 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x2b0d543c rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2b48f835 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x2d44fc5b rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x34c9e10b rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x36087aa4 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x42bcc559 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x4364597a rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +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 0x5bd62464 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x60b98b48 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x63846880 rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x6933c067 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x69484749 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73382f52 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x7b399e66 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x7b41fac4 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x85e4e520 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x89c39cdf rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x9411547f rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x9d5235f7 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xa6857482 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc6ed9f1d rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd65e97fd rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xdd78cd56 rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0xdf541720 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xe5f3f375 rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xed2dc213 rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0xee41973e rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xf7ab6930 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xf8f7f12e rds_conn_destroy +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x04413312 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x9ab87194 pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x5fc3c6ed taprio_offload_free +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0xa7f08102 taprio_offload_get +EXPORT_SYMBOL_GPL net/sctp/sctp 0x355c04ca sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0x8151c29e sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0xb834d90f sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xef15899f sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/smc/smc 0x18e96cbf smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x234717aa smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0x41d7c940 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x49eaddec smcd_handle_event +EXPORT_SYMBOL_GPL net/smc/smc 0x51e54657 smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7854d151 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0x8a70013c smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x98a43f3d smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0xc3d47773 smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0xee887710 smc_hash_sk +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x10998fba 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 0x5d46ce37 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc15ff5b5 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe3f7331b gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b3a271 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03552d42 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03713241 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038b6597 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03bf0b32 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04b68382 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06025469 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x072e97e1 rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07740ae7 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08e4f477 xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b5578b6 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c03416f svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c55e486 svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fdc8767 svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10729cc5 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11080385 xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12121ae3 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13ac753c xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14a40ae2 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14b462ac rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15db7d91 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16dda61f cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17276a53 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x184fca0b xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1955d6ae rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d3a40f1 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d648026 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e83c609 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e9d7ff9 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f265d10 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fa5b817 xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fccfce1 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x229eeb15 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x235aa981 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x244d73aa rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2459f63c svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24dad5ea svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24ea18b2 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2544bbf5 xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25cbd9ca cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x260bff6a sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2675ec46 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x277252d8 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x291df99e svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29220d2c cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29b6893b xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a31ccf5 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c112a6d rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d361149 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e398b52 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ea6b45e __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f23e1ac sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30763c18 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3113cb48 xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33a6317b xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3474c04f svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34c25cc9 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3776b81d xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a3f593f rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a88f204 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3aa3aacb rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e96b877 xprt_pin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fe42dfd rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4031fa8e rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4168a09e svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41884880 rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4190de16 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x422cfd4d rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4388cab3 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x445ce6cc xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4585b8d9 rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x464fd75c xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4657b29f rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4748d89b rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x484493ec xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x488ced97 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x491dae91 svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49caf3c7 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e415be1 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5015db85 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5039b19b auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d2ac81 xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51498657 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x533355b8 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54820917 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x560c6b34 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x573c725f rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59dfca4e sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bbde2f8 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c543c40 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f99f68a xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60ac1e29 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60fcbe17 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61c79fa2 rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61d1ab71 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x624e661b cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x636687c4 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63c1fe0b svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64637235 rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64cc19bb svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64f978c4 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x659b39e4 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6653096a xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67675a48 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x687b7c71 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x689aa363 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69222608 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69bc9bd9 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71c52f47 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fde505 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72c00a9a gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74e5ab7c xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75478e93 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76fe1be1 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77f4b0bf svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a25ef74 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a33586b xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a61984e rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a643381 xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aed20f0 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cefcb93 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dda464a rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e0f673a rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81868f08 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83702c20 svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8617c00c xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x862a571c rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x871ece84 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x88b77cf8 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ae54a54 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8eb1ac9e rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x933a73a8 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9341ac1d svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93a343f0 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x951ee8df svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x963fe245 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x973445bb rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x998b8825 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a85aa00 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ad76094 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bbacbae rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bd882fe rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c3562c0 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ce7b4f4 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9da30056 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e16276c read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e417caf xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e7b88dc rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f549a46 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0bfa157 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa17b7966 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa31d5b53 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa40b7b6d svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa60d45d7 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa819eae4 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa81bc7e4 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9b62786 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9d11463 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaad9c7b2 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab620147 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xace27194 cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaeb2a613 rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xafc16831 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0be38fe svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2968bc7 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6f83aef rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbae2121f xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc36a21c __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd1cc4e6 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc08f6def rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc09b766d xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0ed5ea9 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc23aca0d rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc46c2e38 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc61ec462 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcba1c723 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd1a8c6f xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd7076eb rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcddfcf40 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xceabd4f0 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd03a63f8 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd107f4f7 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd27f7a2f rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd27fcdc8 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2d2f42e rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd32e2691 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd359345f rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6372944 rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd68811c1 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd914dad2 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd93dff9a svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd99e004f rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda577a01 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc1fd214 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc3f7a42 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc827821 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf3241f2 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf66ee83 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfb3a878 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0dd8e99 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe268ed82 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe29b4c19 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe43be2d2 svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5b6f3aa xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5bf6992 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7405fa8 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaa88980 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf5c417 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedc4a976 sunrpc_cache_unhash +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 0xefad3b71 rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeff581b0 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1636d83 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3af1de1 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3cbb252 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3dc8ee6 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4d71cac rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf633b164 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf65fa5d6 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6940ac2 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf73f9d08 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf76e3e5c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9885d0a cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb10d2af xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb182ace svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb598de0 xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc0400c0 svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc32a3a9 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfca72c4d svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfce30576 rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcfcb6ac svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd800115 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe26476e rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfece03c8 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffd72ccc rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/tls/tls 0x527650e7 tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0x64c571d9 tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xad057af2 tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xf0518316 tls_device_sk_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x00161f5d virtio_transport_put_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 0x08ff06be virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x0acf0b25 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1368e2bb virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x21867fbe virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x39f94bb8 virtio_transport_dgram_bind +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x421b8206 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4b92e541 virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x529020b9 virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x593d0fa1 virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x598079ac virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5cf3f69e virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6475047c virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x658fd54d virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6a69a8ac virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6d2ce5f7 virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6f72c56d virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x702ec436 virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x742e844a virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x792fbc02 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x8b39f4ce virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9628de2c virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9affd0ae virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa94b90c6 virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xadb595ba virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb59bc2dd virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb808064a virtio_transport_free_pkt +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 0xbadccf49 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xbbe5eedb virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd3ba7a3f virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xea591cbd virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf78f30d3 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf9db064f virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfe389857 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x02b09121 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x117683d9 vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x12481789 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2617c1a2 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3ceb1b99 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d0e5620 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5c114b66 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5ce96cab vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x64ef1fe1 vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x71d7b2fe vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x72f05099 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x77c14317 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa385b8eb vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa5a81a9b vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xae5b8acd vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc965ced6 vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd5563b39 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdf294386 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe363984d vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xea857cf5 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec8629c6 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf7d364b8 vsock_add_pending +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0ad93843 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x18da4066 cfg80211_pmsr_complete +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x22e245cb cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x253582bc cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x25483f1a cfg80211_vendor_cmd_get_sender +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ec1f57c cfg80211_shutdown_all_interfaces +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3bb10670 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3e5d5bda cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e869841 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x69fa5efe cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6c18dee9 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e6ee229 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7256a10f cfg80211_vendor_cmd_reply +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x955bff51 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe7fc98f cfg80211_pmsr_report +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc72595de cfg80211_wext_siwrts +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 0x05c5a1be ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x484eef1f ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcb512fd6 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xdda5bff8 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xe2521b1c xfrma_policy +EXPORT_SYMBOL_GPL sound/ac97_bus 0xb5d2429f 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 0x000f8035 snd_fasync_helper +EXPORT_SYMBOL_GPL sound/core/snd 0x12871510 snd_device_get_state +EXPORT_SYMBOL_GPL sound/core/snd 0x1f4d3f63 snd_devm_card_new +EXPORT_SYMBOL_GPL sound/core/snd 0x32965cb4 snd_card_disconnect_sync +EXPORT_SYMBOL_GPL sound/core/snd 0x3427a1bc snd_ctl_apply_vmaster_followers +EXPORT_SYMBOL_GPL sound/core/snd 0x548fb522 snd_devm_request_dma +EXPORT_SYMBOL_GPL sound/core/snd 0x5af762f1 snd_fasync_free +EXPORT_SYMBOL_GPL sound/core/snd 0x633a771f snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x6a02454d snd_ctl_get_preferred_subdevice +EXPORT_SYMBOL_GPL sound/core/snd 0x704f7c71 snd_ctl_disconnect_layer +EXPORT_SYMBOL_GPL sound/core/snd 0x80c83831 snd_device_initialize +EXPORT_SYMBOL_GPL sound/core/snd 0x86d76732 snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x88126a2b snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x8a070da1 snd_card_free_on_error +EXPORT_SYMBOL_GPL sound/core/snd 0x9123910c snd_power_ref_and_wait +EXPORT_SYMBOL_GPL sound/core/snd 0xa9d271ad snd_card_rw_proc_new +EXPORT_SYMBOL_GPL sound/core/snd 0xd0b24eb6 snd_ctl_register_layer +EXPORT_SYMBOL_GPL sound/core/snd 0xe277ed2c snd_card_add_dev_attr +EXPORT_SYMBOL_GPL sound/core/snd 0xe3d1d9fd snd_card_ref +EXPORT_SYMBOL_GPL sound/core/snd 0xe68900a0 snd_device_disconnect +EXPORT_SYMBOL_GPL sound/core/snd 0xf8f2a4eb snd_kill_fasync +EXPORT_SYMBOL_GPL sound/core/snd 0xfaf598c6 snd_ctl_request_layer +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xd6ce26b8 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xf277d74a snd_compr_stop_error +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 0x0b394aad snd_pcm_stream_unlock_irqrestore +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x12e9cf48 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x2f413b61 _snd_pcm_stream_lock_irqsave +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x31dda347 snd_pcm_stream_unlock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x37916c6b snd_pcm_stream_lock_irq +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x42155f7d snd_pcm_stream_unlock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x572c9269 snd_pcm_hw_constraint_eld +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x5c407196 snd_pcm_fill_iec958_consumer_hw_params +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x649892e8 snd_pcm_create_iec958_consumer_default +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x652af258 snd_devm_alloc_dir_pages +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x8d864069 snd_pcm_rate_range_to_bits +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x9c6e2de0 snd_pcm_fill_iec958_consumer +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 0xac3f5d64 snd_pcm_stream_lock +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xb193635e _snd_pcm_stream_lock_irqsave_nested +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xcba10bd2 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xd0756b50 snd_pcm_stop_xrun +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xfc2debad snd_dma_buffer_sync +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x1330eb57 snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x40bbf9ba snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x4d6b2385 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x53be6a26 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x64e24d24 snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0x7f55e85a snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xae84c913 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xbf0b7237 snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xc44f9ec5 snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xd0b37461 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xd62a81b9 snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL sound/core/snd-pcm-dmaengine 0xd9b7f4c5 snd_dmaengine_pcm_refine_runtime_hwparams +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0x8843fee0 __snd_seq_driver_register +EXPORT_SYMBOL_GPL sound/core/snd-seq-device 0xd8008452 snd_seq_driver_unregister +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x0f88d51f amdtp_am824_set_pcm_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x1bda97f7 amdtp_domain_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x202973b2 amdtp_am824_set_midi_position +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x4056ec6e amdtp_domain_stop +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0x94029a12 amdtp_domain_add_stream +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xa419bfc9 amdtp_am824_midi_trigger +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xa6602c2b amdtp_am824_add_pcm_hw_constraints +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xc5689c69 amdtp_am824_set_parameters +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xddc4310c amdtp_am824_init +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xe48db859 amdtp_domain_stream_pcm_ack +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xe66fc43a amdtp_domain_stream_pcm_pointer +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xea7a9be3 amdtp_domain_destroy +EXPORT_SYMBOL_GPL sound/firewire/snd-firewire-lib 0xec4c8dec amdtp_domain_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x01d29373 snd_hdac_query_supported_pcm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x08846721 snd_hdac_setup_channel_mapping +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0ab58004 snd_hdac_device_register +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0bb85bde snd_hdac_bus_exit_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x0e68b1be snd_hdac_dsp_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x146ef00a snd_hdac_bus_alloc_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1b51cf48 snd_hdac_get_stream_stripe_ctl +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x1ffb9e3b snd_hdac_display_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x25d40c6d snd_hdac_stream_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2b4acabc snd_hdac_stream_setup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2bf57573 snd_hdac_power_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x2f2b9cd0 snd_hdac_get_sub_nodes +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x36da5638 snd_hdac_stream_setup_periods +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x396037f7 snd_hdac_bus_reset_link +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x3bd544c2 snd_hdac_get_active_channels +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x419c75f6 snd_hdac_bus_parse_capabilities +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x42081690 snd_hdac_bus_update_rirb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x42716284 snd_hdac_get_connections +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x43977478 snd_hdac_acomp_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x453dc78c snd_hdac_bus_init_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x476457d1 snd_hdac_bus_stop_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x4c7ec4b6 snd_hdac_get_ch_alloc_from_ca +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x54cf2347 snd_hdac_bus_enter_link_reset +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x598f93d6 snd_hdac_regmap_add_vendor_verb +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5a0395cb snd_hdac_regmap_read_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5bf57100 snd_hdac_device_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c0534ed snd_hdac_dsp_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5c07cb49 snd_hdac_calc_stream_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x5e3a9b3e snd_hdac_stop_streams_and_chip +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x60338449 snd_hdac_device_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x60ae4dbc snd_hdac_device_set_chip_name +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x621daa22 snd_hdac_bus_get_response +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x65db1d99 snd_hdac_bus_init_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x67bfe791 snd_hdac_spk_to_chmap +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x69c3f6a9 snd_hdac_bus_exec_verb_unlocked +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x6cd3077e snd_hdac_read_parm_uncached +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x70f166a1 snd_hdac_refresh_widgets +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x715e0e1f snd_hdac_register_chmap_ops +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x73470a4a snd_hdac_power_up_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x74bf202e snd_hdac_stream_release +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77c754a8 snd_hdac_chmap_to_spk_mask +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x77ec3ac8 snd_hdac_acomp_get_eld +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x794efc8f snd_hdac_stream_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7c5740d0 snd_hdac_stream_cleanup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7d7b1d34 snd_hdac_bus_free_stream_pages +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x7e7be678 snd_hdac_codec_link_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x87178aa1 snd_hda_bus_type +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x88dca9ab snd_hdac_set_codec_wakeup +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8b558bb6 snd_hdac_regmap_update_raw_once +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8d9b85af snd_hdac_device_unregister +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8e731660 snd_hdac_stream_clear +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x8f0f25ea snd_hdac_bus_send_cmd +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9084dfe6 snd_hdac_stream_sync_trigger +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x90bfc92f snd_hdac_bus_link_power +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x90d1d71d snd_hdac_bus_stop_cmd_io +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x93480073 _snd_hdac_read_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x935e79ff snd_hdac_stream_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9417bff2 snd_hdac_get_stream +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9637a8fc snd_hdac_regmap_sync +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9ac0dc39 snd_hdac_stream_stop +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0x9d676a83 snd_hdac_bus_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xac0da1b9 snd_hdac_power_down +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xad17cb91 snd_hdac_stream_start +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xaf6a2ea0 snd_hdac_bus_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xafbd07dd snd_hdac_acomp_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb0f35eb7 snd_hdac_check_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xb94d636e snd_hdac_power_down_pm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbbe0c395 snd_hdac_codec_modalias +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xbf9f4f9e snd_hdac_bus_handle_stream_irq +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc5025d08 snd_hdac_override_parm +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xc8a4efd5 snd_hdac_is_supported_format +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xca253fb5 snd_hdac_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xce496bcb snd_hdac_regmap_update_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd42b3124 snd_hdac_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd652e6e5 snd_hdac_dsp_prepare +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xd97bc8a5 snd_hdac_regmap_exit +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xde4c6ad3 snd_hdac_regmap_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe1548c29 snd_hdac_codec_write +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe4e07754 snd_hdac_print_channel_allocation +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xe5d9a1e5 snd_hdac_stop_streams +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf0f3c679 hdac_get_device_id +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf197bee6 snd_hdac_sync_audio_rate +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf1ccdba3 snd_hdac_codec_link_up +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf1ec1ae4 snd_hdac_acomp_register_notifier +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf2fd03a4 snd_hdac_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf37f2fdf snd_hdac_stream_timecounter_init +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf5e79e20 snd_hdac_codec_read +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf60f6c67 snd_hdac_stream_assign +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf658afe1 snd_hdac_regmap_write_raw +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf7e9ad84 snd_hdac_sync_power_state +EXPORT_SYMBOL_GPL sound/hda/snd-hda-core 0xf8128282 snd_hdac_stream_set_params +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0x2c5663a9 snd_intel_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/hda/snd-intel-dspcfg 0xad7c4ad4 snd_intel_acpi_dsp_driver_probe +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x12e6a3a8 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x3969797c snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x43262d2e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb498a19b snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb550d92a snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbcaf461d snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03a5c39b snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03c53e41 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04abfec4 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05c4cff0 snd_hda_override_amp_caps +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 0x0b01c704 snd_hda_codec_set_name +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b0ec757 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c1a5290 snd_hda_pick_pin_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e983d1f snd_hda_get_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10e81b95 azx_get_position +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x112395a2 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12cca9ee snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14d58b20 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19e19efa snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b7f20aa snd_hda_jack_set_button_state +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c05bae8 snd_hda_codec_load_dsp_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d8cbb83 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d92695f snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e12dbb2 snd_hda_check_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2065a350 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x20ad94c6 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21c9f219 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21dc23d6 snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x259cf9e3 azx_init_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27fb5c69 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ac92789 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b057205 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c7d3c43 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dbdcecb snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e1c9b25 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31cf4967 azx_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x321f2829 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x38ce402b azx_interrupt +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3aa383ab snd_hda_codec_pcm_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b42ae04 snd_hda_jack_bind_keymap +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b769894 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bf3c0fa snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3cb5d132 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d164c06 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f651f9a snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49dde2ce __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4acdcccd snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c571b59 azx_probe_codecs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ce104e2 snd_hda_codec_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f2a406b snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fbdd36f snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5748fa1a snd_hda_codec_parse_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58066039 snd_hda_codec_load_dsp_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae1722e __hda_codec_driver_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bd23a89 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x609271db snd_hda_jack_tbl_get_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61b6352d snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6332978e azx_stop_all_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65cf3301 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66270758 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68f1472c snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6df2dd86 __snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7080cc46 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71961002 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x747543cf snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74c0b1be snd_hda_set_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74ca9ecb snd_hda_codec_device_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76af26d4 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7760fc41 snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77989d2d snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78c1bdcd __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c137d9a snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e3d76ad snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87f463d6 snd_hda_set_dev_select +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x890dc08f snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x892b4edf snd_hda_codec_load_dsp_trigger +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x901c2cc7 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x937b6a84 azx_bus_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97c282c8 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9855e568 snd_hda_jack_detect_enable_callback_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98de23f4 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9905497b azx_free_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bc896d2 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cd298fe snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9df48f5f snd_hda_jack_detect_state_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f4e1bf0 snd_hda_codec_register +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1179b33 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa43307c7 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4a83807 snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5726da9 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa69835d9 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7e58a2b snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa5aea7f query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb16a985b azx_stop_chip +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb16aa9fb snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2ed59eb snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb34e7e38 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb790e87d snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8c14e7d is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8c1acb9 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8f3df19 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb90779cf snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba8a64bd snd_hda_codec_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbbaad1a7 snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc1222dc snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd340493 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe38922f snd_hda_codec_pcm_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0686c54 snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc17af420 snd_hda_codec_cleanup_for_unbind +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc61c8fa1 hda_codec_driver_unregister +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6d0ba9b snd_hda_get_num_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc75380d1 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7d551c5 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcab46987 snd_hda_jack_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd745c75 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcddec9a7 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd19616b9 snd_hda_codec_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd41208c9 snd_hda_jack_add_kctl_mst +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd490451a snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8f7345d snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda5b5176 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd872bff snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe053303f snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2270c84 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe91f34d1 azx_init_streams +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea89a5e3 azx_get_pos_lpib +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeccb47de snd_hda_codec_device_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed0d47c6 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed76e0d5 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee86695b snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf18c5c05 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf629456b _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6ce0619 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8dc35ac snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9f29c6b azx_get_pos_posbuf +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc670dc8 snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd82d3d7 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x1a51e062 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x25dbc8eb snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x293e8a34 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x33b1ca67 snd_hda_gen_stream_pm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x369f5de4 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x556418b0 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x64e9ff2b snd_hda_gen_fix_pin_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x650a3615 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x6880c3a9 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7187384d snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7244b718 snd_hda_gen_add_mute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x7870c45a snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0x808339d0 snd_hda_activate_path +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 0x8cf59a70 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xa53e1c01 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb4ae1e53 snd_hda_gen_add_micmute_led_cdev +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xb509a443 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xd51dd990 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xec88fc94 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xecc7d426 snd_hda_gen_path_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec-generic 0xeee18b22 snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau-utils 0xae620be9 adau_calc_pll_cfg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1372 0xb252714a adau1372_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x5fb78973 adau1761_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau1761 0x7eff641c adau1761_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x0adb8594 adau17x1_add_widgets +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x115daa93 adau17x1_set_micbias_voltage +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x2b27fe7a adau17x1_add_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x6574fbb0 adau17x1_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0x9b21c795 adau17x1_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xb94c4958 adau17x1_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xc7762af9 adau17x1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xcd2a44b6 adau17x1_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xd88cc7be adau17x1_precious_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau17x1 0xe1b41050 adau17x1_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-adau7118 0xc4ce1d35 adau7118_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x3fe43334 cs35l41_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0x58953d68 cs35l41_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41 0xe525bf8f cs35l41_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x024057d2 cs35l41_global_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x1b04e412 cs35l41_init_boost +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x2b5c28d3 cs35l41_set_cspl_mbox_cmd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x340834e9 cs35l41_configure_cs_dsp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x40b380fc cs35l41_enter_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x43741be9 cs35l41_safe_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x49816da5 cs35l41_regmap_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7741bc70 cs35l41_register_errata_patch +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x7ddaad92 cs35l41_set_channels +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x80fb26ea cs35l41_test_key_unlock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x962b7fae cs35l41_gpio_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0x9df8baf0 cs35l41_otp_unpack +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xb60ad069 cs35l41_exit_hibernate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xd089749e cs35l41_write_fs_errata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xeec2c54f cs35l41_test_key_lock +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs35l41-lib 0xffd46b7a cs35l41_regmap_spi +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x7d05786f cs4271_dt_ids +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0x900baede cs4271_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4271 0xde53dc9d cs4271_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x1235655a cs42l51_resume +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x2d2a524d cs42l51_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x375ad98c cs42l51_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0x3cf27a2b cs42l51_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xd0b031cc cs42l51_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42l51 0xf494d693 cs42l51_suspend +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x0245c4f2 cs42xx8_of_match +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x178ca03a cs42xx8_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x7cac7292 cs42888_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x80fb281d cs42xx8_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0x9e2ede0e cs42xx8_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs42xx8 0xcd3794c9 cs42448_data +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x2fe0e482 es8328_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-es8328 0x51b51ba3 es8328_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0x399dbb2b lpass_macro_pds_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-lpass-macro-common 0xce40366d lpass_macro_pds_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x3c27bdda max98373_slot_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x48440822 soc_codec_dev_max98373 +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0x6d73b2ab max98373_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98373 0xdfb87edb soc_codec_dev_max98373_sdw +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x1b5bf246 mt6358_mtkaif_calibration_disable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0x4690ef21 mt6358_set_mtkaif_calibration_phase +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xafd34596 mt6358_mtkaif_calibration_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-mt6358 0xed694c2c mt6358_set_mtkaif_protocol +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8821 0xb391f16c nau8821_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0x80522cff nau8824_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-nau8824 0xbf55f96a nau8824_components +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x4e093f38 pcm1789_common_exit +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0x667f4c28 pcm1789_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm1789-codec 0xc4271742 pcm1789_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xa55dbf4f pcm179x_common_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm179x-codec 0xc397bb6a pcm179x_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0x4bfdb706 pcm186x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm186x 0xf55c887c pcm186x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x161b208c pcm3168a_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x1bc3677e pcm3168a_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0x78e89bd2 pcm3168a_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3168a 0xe18ad538 pcm3168a_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x33209497 pcm512x_pm_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0x3a5d1286 pcm512x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xbc678055 pcm512x_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm512x 0xcb35e8d5 pcm512x_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x5dc92cdf rl6231_pll_calc +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x70617a04 rl6231_get_clk_info +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0x8d7fa148 rl6231_get_pre_div +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rl6231 0xdba4502f rl6231_calc_dmic_clk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x3300b741 rt5640_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0x917e689e rt5640_set_ovcd_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xba0c4780 rt5640_detect_headset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xc9bbff4d rt5640_dmic_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xcd22cc77 rt5640_enable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5640 0xf7a264ff rt5640_disable_micbias1_for_ovcd +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0x1e0fdcb8 rt5645_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5645 0xe8d2c1f7 rt5645_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5659 0x989ee507 rt5659_set_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x28730696 rt5682_supply_names +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x313211a9 rt5682_aif1_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x3ba98f49 rt5682_sel_asrc_clk_src +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x3f34d065 rt5682_soc_component_dev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59d3d967 rt5682_jack_detect_handler +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x59f15fbe rt5682_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0x7abe7a3e rt5682_volatile_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xb897de56 rt5682_reg +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xda05aaaa rt5682_aif2_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xdbb32e9c rt5682_readable_register +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xdc09fdd4 rt5682_calibrate +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xe2249d1c rt5682_apply_patch_list +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf1e00c60 rt5682_register_dai_clks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-rt5682 0xf606b350 rt5682_parse_dt +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0x91a11916 sigmadsp_restrict_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xa47b15c7 sigmadsp_reset +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xc6b9409f devm_sigmadsp_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xcc3918c8 sigmadsp_setup +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp 0xe6dc0de2 sigmadsp_attach +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-i2c 0x7df30064 devm_sigmadsp_init_i2c +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sigmadsp-regmap 0xd6f10972 devm_sigmadsp_init_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x4674fc85 ssm2602_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x65e877ae ssm2602_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic32x4 0x3cf05971 aic32x4_register_clocks +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x00768d31 aic3x_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ts3a227e 0xa36f71fc ts3a227e_enable_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd-mbhc 0x936c1623 wcd_mbhc_event_notify +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x3c6d5ce8 wcd938x_sdw_set_sdw_stream +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x420f5ab5 wcd938x_swr_get_current_bank +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x6b0be274 wcd938x_sdw_device_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0x79b0891f wcd938x_sdw_hw_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wcd938x-sdw 0xdfc0d126 wcd938x_sdw_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x005ab2f0 wm_adsp2_component_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x13217968 wm_adsp_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x2d0ef37c wm_adsp_fw_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x3edf12ed wm_adsp2_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x445b5a27 wm_adsp_compr_free +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 0x53850be5 wm_adsp2_component_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7e0c6b60 wm_adsp_fw_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x894458f3 wm_adsp_fw_enum +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x922acc9f wm_adsp2_set_dspclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9e9ceb0d wm_adsp_compr_copy +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9f387587 wm_adsp_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xa1c40911 wm_adsp_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xaf7792c1 wm_adsp_write_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb2b6eb5b wm_adsp2_preloader_put +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb4e73090 wm_adsp_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xbb18ad06 wm_adsp_read_ctl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xbe371b98 wm_adsp_compr_handle_irq +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xca447aa3 wm_adsp_compr_open +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xd66e5050 wm_adsp2_init +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 0xe1b47347 wm_adsp2_preloader_get +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xe609b838 wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xe921d4ed wm_halo_init +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 0xed8be57b wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf5affc32 wm_adsp_early_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xf6fb66ba wm_adsp_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x6caf597f wm8731_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xde11df86 wm8731_regmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x04688061 wm8804_probe +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x6aee5997 wm8804_remove +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x8962d811 wm8804_regmap_config +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8804 0x910559f7 wm8804_pm +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc2a241f8 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xa1a96115 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-fsl-asrc 0x3ec7d749 fsl_asrc_component +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL sound/soc/fsl/snd-soc-imx-audmux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card 0x3c54d715 audio_graph_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x815ab97f audio_graph2_link_normal +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x954655f6 audio_graph2_link_dpcm +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0x9f139ea8 audio_graph2_parse_of +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-audio-graph-card2 0xa8f0f166 audio_graph2_link_c2c +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x018dbbb5 asoc_simple_parse_routing +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x071890f6 asoc_simple_hw_params +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x1f6f8118 asoc_simple_remove +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x22d2eec9 asoc_simple_startup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2eeca0fb asoc_simple_parse_widgets +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x2f62ad33 asoc_simple_dai_init +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x3c47ef04 asoc_simple_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x3e783ddf asoc_simple_parse_clk +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x40915af4 asoc_simple_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x40f8c3d8 asoc_simple_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x58c625e7 asoc_graph_is_ports0 +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x69d5f521 asoc_simple_init_priv +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x726a4588 asoc_simple_set_dailink_name +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x75e603cc asoc_simple_be_hw_params_fixup +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x86bca128 asoc_simple_clean_reference +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0x87d883c4 asoc_simple_canonicalize_cpu +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa66edc53 asoc_simple_parse_tdm_width_map +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xa90b6e32 asoc_simple_shutdown +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xbbad36a9 asoc_simple_init_jack +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xbf8c1232 asoc_simple_canonicalize_platform +EXPORT_SYMBOL_GPL sound/soc/generic/snd-soc-simple-card-utils 0xd68a2b22 asoc_simple_parse_convert +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 0xf5b46f81 asoc_graph_card_probe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00ca2bce snd_soc_add_component_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01393097 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02b13176 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0563ea81 snd_soc_component_write_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05a59d58 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x064b94c3 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x073edd87 snd_soc_of_put_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x083fea19 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a0de8c8 snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0ade86d3 snd_soc_of_get_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b129739 snd_soc_component_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0b7c12a1 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10878ada snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x109a280a snd_soc_component_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14bb3402 snd_soc_dai_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16420dca snd_soc_component_set_jack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x184ab928 snd_soc_dai_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a0dc1b5 snd_soc_component_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dc35a6b snd_soc_remove_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1de38e00 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1eac27bc snd_soc_component_compr_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ec86d75 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f836be6 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2109d27a snd_soc_dai_set_bclk_ratio +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21ae09e3 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2299cf9e snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22a5ee17 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x239b378e devm_snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23bd675c snd_soc_dai_link_set_capabilities +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x242096fc snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2950d0c4 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a2aabf4 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b2e2592 snd_soc_dai_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2b5ec210 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ba6bd69 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2deace31 snd_soc_runtime_set_dai_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e74d5cc devm_snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f57aaa9 snd_soc_component_exit_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3013127c snd_soc_dapm_dai_get_connected_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3038afd3 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30867c57 snd_soc_dai_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x308f2b69 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31b81043 snd_soc_dpcm_runtime_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33fae84b devm_snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34c75237 snd_soc_dai_get_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3518c101 snd_soc_bytes_tlv_callback +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x382863b5 snd_soc_add_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39dfc3fe snd_soc_component_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a81e750 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3aa910c1 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b774fc8 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c805dbf soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ecb0202 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x417eb745 snd_soc_component_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x41b0eb48 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x452cb0a3 snd_soc_component_compr_pointer +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46221548 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4661c0c4 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x472f3848 dapm_mark_endpoints_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47bdcd9c snd_soc_of_parse_pin_switches +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x484f34bd snd_soc_jack_add_gpiods +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x492b1396 snd_soc_runtime_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b740cd6 snd_soc_info_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fa1782d snd_soc_tdm_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fb2f2ac snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51aae9f5 snd_soc_card_add_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51be1d44 snd_soc_dapm_free_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x53f2317f snd_soc_component_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54a684f4 snd_soc_new_compress +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55131ebe snd_soc_set_ac97_ops_of_reset +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x552a7bdd snd_soc_of_parse_node_prefix +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55cc5f36 snd_soc_dai_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55e33e13 snd_soc_add_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55f06e3f snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x571830fe snd_soc_dapm_init +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57463502 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x575532a1 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57a583b3 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57c6d1c4 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x599eebef snd_soc_link_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5baa0382 snd_soc_runtime_calc_hw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bfb597e snd_soc_dai_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ca2248c snd_soc_dapm_stream_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cba63ee snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d03b438 snd_soc_find_dai_with_mutex +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e178e98 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e27b7c1 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x600a2908 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x616e0ee5 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x618eb78d snd_soc_component_compr_get_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x61f1c9a4 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x624259cf snd_soc_of_get_slot_mask +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62f3d942 snd_soc_dapm_dai_free_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6309c788 snd_soc_component_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63be4f2f snd_soc_component_initialize +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x663aedaf snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6648d103 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x670c91ac snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6771cd1f snd_soc_dapm_update_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67f61993 snd_soc_of_get_dai_link_codecs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6957be68 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6af0f329 snd_soc_find_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bcb2cf4 snd_soc_dai_action +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bd24993 snd_soc_component_compr_open +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d817252 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6dc8d904 snd_soc_dapm_sync_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ebe9d4f snd_soc_daifmt_parse_clock_provider_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f562a6d snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f937fd5 snd_soc_dapm_new_dai_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70337504 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71376150 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71babd29 snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x722cad28 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72579007 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x730dfa3a snd_soc_lookup_component_nolocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7508840d snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75458a90 snd_soc_component_update_bits_async +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75d5fb2d snd_soc_component_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a6e2aa5 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7bda83f6 snd_soc_card_jack_new_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c0565b5 snd_soc_dapm_force_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fbef5c5 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x808579cb snd_soc_bytes_info_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8180651f snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8963d478 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8999e778 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a6e56ed snd_soc_dapm_enable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8cc51240 snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d370b58 snd_soc_card_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f110bd4 snd_soc_of_parse_aux_devs +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91473198 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91495d8e snd_soc_component_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x931c2e5a snd_soc_card_remove_dai_link +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9339a6f6 snd_soc_component_read_field +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93e6ee9b snd_soc_component_async_complete +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94678e63 snd_soc_component_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95d366b5 snd_soc_dapm_new_control +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97a7e768 snd_soc_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b599b2d snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c62c7f3 snd_soc_card_get_kcontrol +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d852345 snd_soc_component_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9ea71041 snd_soc_dapm_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0827b13 snd_soc_component_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1b5656f snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3c96084 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa43926ae snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacf9ee70 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadc7ce26 snd_soc_dai_compr_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb138f4b8 snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4fde4e9 snd_soc_component_compr_set_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7c9e81b snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb822c323 snd_soc_lookup_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb93f6acd snd_soc_component_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb29922b snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbcde8e27 snd_soc_dai_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe911b46 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc082563a snd_soc_component_compr_get_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0ce116d snd_soc_of_put_dai_link_cpus +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc0f9b260 snd_soc_dai_active +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2c8d7a0 dpcm_end_walk_at_be +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc317a15e snd_soc_daifmt_clock_provider_flipped +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc3307476 snd_soc_dapm_force_bias_level +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc42bd5c8 snd_soc_unregister_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc457fe6f snd_soc_link_compr_shutdown +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc80d985a snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbd1d936 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbf615f1 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc322451 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce1656ef snd_soc_free_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcea07236 snd_soc_of_parse_audio_simple_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcf0c3a6c snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1a5b8e8 dapm_pinctrl_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2eb0963 snd_soc_of_get_dai_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd433cbe4 snd_soc_component_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4b9c12a snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd70d48c4 snd_soc_get_dai_id +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd98d237d devm_snd_soc_register_dai +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd99cfd1f snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdabe8121 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdaeb29e6 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdbccbea5 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd3a4574 snd_soc_daifmt_parse_format +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdec5e1cb snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfd0aa0a snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe045b961 snd_soc_dapm_nc_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0d7d543 snd_soc_dapm_kcontrol_dapm +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe0e8c32f null_dailink_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe1b893a4 snd_soc_unregister_component_by_driver +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4f39719 snd_soc_component_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe617457b snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6d45510 snd_soc_component_compr_get_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe74aac17 snd_soc_component_compr_copy +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe7b58a25 snd_soc_dai_compr_set_metadata +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xebc0b9cc snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec341e9d snd_soc_component_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xede179d5 snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee60f3a4 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee6406ab snd_soc_component_compr_get_codec_caps +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeeb0b94b snd_soc_dapm_kcontrol_widget +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefad03b9 snd_soc_component_disable_pin_unlocked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf05425c4 snd_soc_of_parse_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf07522cf snd_soc_component_compr_ack +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf0a2ac7f snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf11ba476 snd_soc_new_ac97_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf36afbd9 snd_soc_component_init_regmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4177e2d snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf85e5de4 dapm_kcontrol_get_value +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9228a95 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9622dd1 snd_soc_daifmt_clock_provider_from_bitmap +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb5238fe snd_soc_close_delayed_work +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfbaf637b snd_soc_link_compr_startup +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdbf0e50 snd_soc_rtdcom_lookup +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x028e6731 line6_send_raw_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x03c33991 line6_resume +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x18e8b2ff line6_send_raw_message_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x1b8ea1f2 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 0x337e75e0 line6_disconnect +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x7375baba line6_suspend +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x8d9c3cc7 line6_send_sysex_message +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0x92a35873 line6_pcm_acquire +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xa4574622 line6_init_midi +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xa4913ede line6_alloc_sysex_buffer +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xba2e7b05 line6_read_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xbb89ff31 line6_write_data +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xc5574b3f line6_init_pcm +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xcb2ecb8c line6_version_request_async +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xdd3aaf3c line6_pcm_release +EXPORT_SYMBOL_GPL sound/usb/line6/snd-usb-line6 0xf4c593ad line6_probe +EXPORT_SYMBOL_GPL vmlinux 0x00190cad phy_remove_lookup +EXPORT_SYMBOL_GPL vmlinux 0x002200d3 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x00239988 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x0026aa28 hash_page_mm +EXPORT_SYMBOL_GPL vmlinux 0x0035189d devfreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0040436e wwan_create_port +EXPORT_SYMBOL_GPL vmlinux 0x00454a0a devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x0052be55 ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x00593275 __hwspin_lock_timeout +EXPORT_SYMBOL_GPL vmlinux 0x006b3548 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x006e8068 divider_ro_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0x0070a1ef blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x008539f0 klp_shadow_alloc +EXPORT_SYMBOL_GPL vmlinux 0x008a9927 clk_hw_get_num_parents +EXPORT_SYMBOL_GPL vmlinux 0x00923940 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x00aa91de crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x00ad1ede __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x00c2102a trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x00d099b1 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x00d4c500 usb_decode_interval +EXPORT_SYMBOL_GPL vmlinux 0x00e7d78b get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x01074e8a nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x010d71c1 dev_pm_opp_find_freq_ceil_by_volt +EXPORT_SYMBOL_GPL vmlinux 0x012774b0 pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0x01331d31 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x014235b9 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x01432417 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x015019e7 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x0159c819 usb_bus_idr +EXPORT_SYMBOL_GPL vmlinux 0x017cbf58 virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x01866a57 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x01907648 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x01a0cb78 property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x01b672ff cpufreq_disable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x01bcab3e handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x01d4cf0b of_genpd_parse_idle_states +EXPORT_SYMBOL_GPL vmlinux 0x01dbd596 icc_disable +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01e7e6b7 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x01ec59a5 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x01fb53d4 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x0207a6c6 reset_control_bulk_acquire +EXPORT_SYMBOL_GPL vmlinux 0x0213a8e6 of_reserved_mem_device_init_by_idx +EXPORT_SYMBOL_GPL vmlinux 0x0222eca9 cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x022b07f3 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0x022e2025 fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x02440321 of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0x0245103f pinconf_generic_dt_free_map +EXPORT_SYMBOL_GPL vmlinux 0x024d13dd request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x024e270e device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x025a4489 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x025ad51c gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0x025e3e8a __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x026d1526 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x026e1712 pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x026ea989 pinctrl_utils_add_map_configs +EXPORT_SYMBOL_GPL vmlinux 0x0284321b dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0x028606e3 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x028f0476 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x029d6bad crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x02a84b7a fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x02b17cce thermal_remove_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x02c1875b rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x02c5c501 power_supply_find_ocv2cap_table +EXPORT_SYMBOL_GPL vmlinux 0x02d5c187 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0x02d685da balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x02dacf2c rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x02dce5e8 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x02e3f510 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x02e705e4 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x02f4e00b ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x02feea01 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x03046abd __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x0312b3b0 reset_controller_add_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0313e496 serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0x0316ec20 __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x031ae819 dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x0321cdbf of_alias_get_highest_id +EXPORT_SYMBOL_GPL vmlinux 0x0325bbce vfio_register_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0x0327b5fe regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x033832c7 usb_amd_hang_symptom_quirk +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0353c6a9 sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0x03677997 __traceiter_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x036dddc8 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x03730ddb of_irq_parse_and_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x038eb3a7 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x039cd506 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x03a4acae dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0x03ac5b86 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x03adee44 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x03b4576d fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x03b65492 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x03ce7234 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x03e11898 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x03f0f2d0 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x03f980cb rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x0419e6b0 dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0x041c3379 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x04206ffd regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x04217151 devm_clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04258796 opal_flash_read +EXPORT_SYMBOL_GPL vmlinux 0x04395910 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x044cbbd9 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x044f3037 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0x04503936 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0465d3d0 devm_phy_create +EXPORT_SYMBOL_GPL vmlinux 0x046cd1f1 cpufreq_generic_init +EXPORT_SYMBOL_GPL vmlinux 0x046f359e of_overlay_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x047064c7 srp_stop_rport_timers +EXPORT_SYMBOL_GPL vmlinux 0x0477532c perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x048fe1a4 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x04932c74 badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0x0497863d pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x04992b68 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x049e3ee9 tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04c9183d pm_runtime_force_resume +EXPORT_SYMBOL_GPL vmlinux 0x04d3da69 __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x04e9e85f pinctrl_utils_add_config +EXPORT_SYMBOL_GPL vmlinux 0x04fba19f usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x051ae780 md_start +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x05337b5c bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x05400571 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x05586a30 crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x0558ab4a freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x05590c83 mpc8xxx_spi_rx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x055a7b2d iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x05610897 of_changeset_destroy +EXPORT_SYMBOL_GPL vmlinux 0x05691001 tps65912_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x058c6377 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x05ad0ace posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x05b7e27a dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x05bd3682 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x05e1bcaf __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x05eece3c virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x05fb7b4d tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x06055a23 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x060f8834 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x0613adc6 get_pid_task +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 0x063c2b43 devm_of_led_get +EXPORT_SYMBOL_GPL vmlinux 0x0646ea49 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0656448e ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x06873a71 crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x068aa67a devm_led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x069ffb66 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x06a1f56b vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x06aa31ab raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x06aae1cb xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x06ae5781 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x06bb4ad5 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x06cc12eb thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d63926 blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x06da1acf regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x06e00b04 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x06e3b666 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x06f90c6b md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x07063ff1 devm_of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x07076db5 devm_clk_hw_get_clk +EXPORT_SYMBOL_GPL vmlinux 0x07097686 devfreq_event_get_event +EXPORT_SYMBOL_GPL vmlinux 0x0709ebd3 mbox_send_message +EXPORT_SYMBOL_GPL vmlinux 0x071b0a86 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074f98db synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x075e9727 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x076356e7 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x0780c3fa fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x07858b48 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07e62da5 decrementer_max +EXPORT_SYMBOL_GPL vmlinux 0x07ecb8fd devfreq_get_devfreq_by_node +EXPORT_SYMBOL_GPL vmlinux 0x07f766e2 device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x07f76bfa spi_finalize_current_transfer +EXPORT_SYMBOL_GPL vmlinux 0x07f7c4b6 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x07fe7611 netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x081b980c pci_iomap_wc +EXPORT_SYMBOL_GPL vmlinux 0x081f4f8a pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x08709191 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x087f5dc5 wm831x_of_match +EXPORT_SYMBOL_GPL vmlinux 0x08a88a9f __SCK__tp_func_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x08b3a5a8 dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x08bbb207 scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0x08c78cf7 offline_and_remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x08d230b7 blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x08d3ca76 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x08db85c3 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x08e2bab7 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x08e77d29 vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0x08eeb113 uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x091216d9 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x0916d722 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x093786cf synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0x094267b9 fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0x094ade50 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x094b07c2 apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0963b32f __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x096ec021 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x09745721 tps65912_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x097fc857 xhci_run +EXPORT_SYMBOL_GPL vmlinux 0x0993d241 lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0x09973e74 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x099b14f2 virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0x09a7409f xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09b5b2e8 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x09c4d583 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x09ced729 blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x09d83ef6 sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x09ed2a43 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x09fb414a page_endio +EXPORT_SYMBOL_GPL vmlinux 0x0a131d21 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0a26e2dc virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x0a41a37c hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a450b62 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a463293 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x0a4ac270 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw +EXPORT_SYMBOL_GPL vmlinux 0x0a55e997 device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x0a59bf5e ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x0a62e909 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x0a66554b vfio_virqfd_disable +EXPORT_SYMBOL_GPL vmlinux 0x0a68c98d gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7ceb30 __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x0a852d9b dev_pm_domain_start +EXPORT_SYMBOL_GPL vmlinux 0x0a94684a unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x0aa142f5 fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0x0aaa1dc7 kvmppc_save_user_regs +EXPORT_SYMBOL_GPL vmlinux 0x0abdc439 cc_platform_has +EXPORT_SYMBOL_GPL vmlinux 0x0acad5bd nvmem_cell_read_u16 +EXPORT_SYMBOL_GPL vmlinux 0x0ad85fe4 debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x0ae0aee5 regulator_list_hardware_vsel +EXPORT_SYMBOL_GPL vmlinux 0x0af13131 blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0x0af22d6a serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x0af36abd regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x0af40724 iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0x0af4798b usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x0aff1ce4 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b117cad wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x0b15aa35 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x0b186222 pstore_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b317ca9 vfio_pci_core_read +EXPORT_SYMBOL_GPL vmlinux 0x0b664078 gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x0b8cb850 thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x0b91fda1 genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0ba39766 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x0bad72ac fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc9b2 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x0bbf6bc4 devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0x0bc0ea2e xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x0bcf96e4 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x0be0dde9 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x0bee671b of_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c047599 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x0c0624c3 usb_phy_roothub_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0c0c132b dma_async_device_channel_register +EXPORT_SYMBOL_GPL vmlinux 0x0c1d2f6e clk_hw_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x0c1f3632 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x0c26b130 led_init_core +EXPORT_SYMBOL_GPL vmlinux 0x0c26e787 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c2c9195 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x0c39a4ea sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x0c3dd5b8 pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0x0c402cac replay_system_reset +EXPORT_SYMBOL_GPL vmlinux 0x0c4e4200 vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x0c70589b phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x0c805ea3 pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0x0c85fb20 pcibios_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0ca61f60 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x0cab1cb3 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x0cb98c28 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0cb9a778 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0cbe3ee2 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0cc8c627 udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0ce3ee5a mmu_kernel_ssize +EXPORT_SYMBOL_GPL vmlinux 0x0cead399 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x0cf1a003 devm_regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x0cf24224 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x0d09661b dma_request_chan +EXPORT_SYMBOL_GPL vmlinux 0x0d125ab6 trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x0d156a6f debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x0d35ac17 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0d389db7 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0d429843 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4711c7 devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d496a54 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x0d49e04f eeh_pe_configure +EXPORT_SYMBOL_GPL vmlinux 0x0d5cecc6 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0x0d5daba1 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0x0d7f0a73 nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x0d84872d regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x0d975d23 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x0db919e1 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x0dd3473b locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x0dd62aa7 crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de06988 cpu_first_thread_of_core +EXPORT_SYMBOL_GPL vmlinux 0x0de8861e bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x0deae177 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x0df50594 vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x0e0a168b btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e3c469f tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x0e468f2e da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x0e521b82 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e61ea0d component_master_del +EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x0e8055e3 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x0e8bbe10 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0x0ea2a72b usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x0ebb03a4 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0ebeb725 __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0x0ed29448 __devm_clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x0ee8e400 kvmppc_h_set_xdabr +EXPORT_SYMBOL_GPL vmlinux 0x0ee9944a irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x0eec7176 extcon_get_state +EXPORT_SYMBOL_GPL vmlinux 0x0ef07bcb pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0f03f918 fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0x0f097e24 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x0f0b5ca3 __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x0f0c31c4 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f23d709 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x0f2f23a4 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x0f35efa8 gov_attr_set_put +EXPORT_SYMBOL_GPL vmlinux 0x0f3f15d5 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0f49c948 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x0f60f337 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0f63d50f bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x0f726abf crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x0f7eb29e thermal_zone_get_offset +EXPORT_SYMBOL_GPL vmlinux 0x0f805c53 spi_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0x0f93669a hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x0f9fc865 of_device_request_module +EXPORT_SYMBOL_GPL vmlinux 0x0faa2c9a __tracepoint_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x0fb74564 dev_pm_opp_get_of_node +EXPORT_SYMBOL_GPL vmlinux 0x0fbb7344 memremap_compat_align +EXPORT_SYMBOL_GPL vmlinux 0x0fcbd62a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0feba8cb fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x10002e09 gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x10015de4 blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10207fa9 powercap_unregister_zone +EXPORT_SYMBOL_GPL vmlinux 0x1066a450 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x10686d31 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x1068ba5b iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x106b6533 regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x108a0acd bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x108c9646 devfreq_event_disable_edev +EXPORT_SYMBOL_GPL vmlinux 0x108d4fa0 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0x10947433 dev_pm_opp_put +EXPORT_SYMBOL_GPL vmlinux 0x109e2916 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x10aadd0a mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x10b53fcf vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x10b77a09 kvmppc_p9_enter_guest +EXPORT_SYMBOL_GPL vmlinux 0x10bf4256 sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0x10c2004b dev_pm_opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10e089c4 l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10eee10f dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x10fe219a __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x1100ac85 perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x1101dc9a fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0x11105b07 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x1114011d threads_shift +EXPORT_SYMBOL_GPL vmlinux 0x1119dc35 hte_ts_get +EXPORT_SYMBOL_GPL vmlinux 0x111e6dfc pnv_get_supported_cpuidle_states +EXPORT_SYMBOL_GPL vmlinux 0x1136cfbf irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0x1144436a __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x11551196 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x115598bb xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x1158f8e3 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x115fa0c5 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x11638a69 xive_native_alloc_vp_block +EXPORT_SYMBOL_GPL vmlinux 0x116c233a usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x116f7fa8 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x11729aa8 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x1172c7fe blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x1172fa2f nvdimm_cmd_mask +EXPORT_SYMBOL_GPL vmlinux 0x117c2f24 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x117eea7b divider_recalc_rate +EXPORT_SYMBOL_GPL vmlinux 0x118abebe crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0x118b539e blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0x11997ced led_get_default_pattern +EXPORT_SYMBOL_GPL vmlinux 0x119d9056 of_platform_default_populate +EXPORT_SYMBOL_GPL vmlinux 0x11ad70d8 led_classdev_notify_brightness_hw_changed +EXPORT_SYMBOL_GPL vmlinux 0x11b19093 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x11b43f94 folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x11c155d3 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0x11ca8615 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x11d28c3f pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x11dbf6e7 pm_genpd_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x11de6925 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11f269e6 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x11ff61ed wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x1217b5fc irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x122ce299 sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x12437e32 pm_runtime_get_if_active +EXPORT_SYMBOL_GPL vmlinux 0x12537dae __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x12581577 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x126031de memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x12661fb6 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126c3122 of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x126ca0ec dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x129334ae sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0x12972c3e ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x12a3b507 badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x12c015d5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL vmlinux 0x12c0a4be addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x12ddefd0 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0x12e4305b ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x12eadfae spi_async +EXPORT_SYMBOL_GPL vmlinux 0x12ee1173 memory_group_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12f77961 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x12faceb7 tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13261012 pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x13414222 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x13436f54 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1354367d ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x1354c0a6 pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0x1358fba5 eeh_dev_open +EXPORT_SYMBOL_GPL vmlinux 0x136209db power_supply_reg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x13700078 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x13711ac9 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x1376982c __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x137e955c iommu_tce_table_put +EXPORT_SYMBOL_GPL vmlinux 0x138a527a md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x13935b2e add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x13945a74 fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0x13bc4a29 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x13bd1ceb mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0x13c01525 xhci_get_ep_ctx +EXPORT_SYMBOL_GPL vmlinux 0x13c1bc33 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13d2ca0c dev_pm_opp_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x13dd8110 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x13e5fe7c tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13eed036 nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x13f0aa9b xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x13fab921 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x13fc3621 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x1403ad09 cpufreq_add_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x14193f2a lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x142cdc9c cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x14350ac8 devm_clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x1448f66d regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x146e9392 tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0x147c6570 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1497a48b dev_pm_opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x14aeef55 device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x14b036bb usb_of_get_interface_node +EXPORT_SYMBOL_GPL vmlinux 0x14b34934 clk_mux_determine_rate_flags +EXPORT_SYMBOL_GPL vmlinux 0x14b63b92 vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x14b6febf devm_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x14ccfe40 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x14ce0a38 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x14dc7a6a pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x14e9f089 iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x150adf1c i2c_match_id +EXPORT_SYMBOL_GPL vmlinux 0x150ec44a rio_add_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0x15119189 nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x15133dca alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x151d3652 acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0x15202e7e usb_urb_ep_type_check +EXPORT_SYMBOL_GPL vmlinux 0x15294601 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x152c6cce __class_register +EXPORT_SYMBOL_GPL vmlinux 0x1537c7f2 opal_ipmi_recv +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x15406cb6 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x1562339f iommu_flush_tce +EXPORT_SYMBOL_GPL vmlinux 0x15693acf fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x156eb87b max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x15714802 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0x15771ed3 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0x15886f48 hte_disable_ts +EXPORT_SYMBOL_GPL vmlinux 0x158fade0 tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15c21e5e nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x15c51eee lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x15c60a71 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x15c9ce06 dummy_con +EXPORT_SYMBOL_GPL vmlinux 0x15cdf85d pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x15ea2648 hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x15f3c2ef ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x15fd52bb of_property_read_variable_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x15ff41c3 bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x1604c89e led_trigger_write +EXPORT_SYMBOL_GPL vmlinux 0x160f3baa xhci_drop_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x1613f074 i2c_recover_bus +EXPORT_SYMBOL_GPL vmlinux 0x1616cd98 mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x161cef98 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0x16369a27 xive_native_sync_queue +EXPORT_SYMBOL_GPL vmlinux 0x1636bcd8 gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x16383c53 spi_controller_dma_unmap_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x165a2b26 dev_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x166ad690 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x16749cab regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x167c04a2 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1685b5d9 scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x168d6e34 devm_of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x1690b503 usb_role_switch_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x169bc591 skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x169e4285 devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x16a657ba regulator_get_hardware_vsel_register +EXPORT_SYMBOL_GPL vmlinux 0x16c5ec08 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x16cb8215 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x16d2855d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x16e4e4f6 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x16ed2917 tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x16edbd9e regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x16ef2568 wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0x16f14ced strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x16f20e7f gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0x16f23aba pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x16f3ee31 pinmux_generic_add_function +EXPORT_SYMBOL_GPL vmlinux 0x170cc14f sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x1713d21e __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x1714c2b7 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0x171874b2 blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x1720f5fb xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x1723313e pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x17273253 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x17273a27 devm_of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x17528d89 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x17613e1f rio_unmap_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x1779a2d0 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x17815b1e __hwspin_unlock +EXPORT_SYMBOL_GPL vmlinux 0x178bedb1 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0x1792884f l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x179382a3 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x179ae076 evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x17a31743 pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x17b5189d fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x17bef273 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x17c2cbfc hash__alloc_context_id +EXPORT_SYMBOL_GPL vmlinux 0x17c83344 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x17dd16e6 of_icc_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x17f3af45 dev_pm_opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x1802ad79 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x1812c3e0 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x18276a0f od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x182b91f9 list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x18356ed2 vfio_pci_core_write +EXPORT_SYMBOL_GPL vmlinux 0x18391fb7 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x18428692 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x1843e540 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x18654dea trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x187606bb virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x1884430e cpufreq_frequency_table_get_index +EXPORT_SYMBOL_GPL vmlinux 0x188c141f pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x1890a662 pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x18965763 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x189f874d powernv_get_random_long +EXPORT_SYMBOL_GPL vmlinux 0x18be0063 extcon_get_edev_name +EXPORT_SYMBOL_GPL vmlinux 0x18c4a6a7 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x18c63f4b find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x18cb948a dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18f2f8ee sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x18f9361f gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x18fb88b3 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x1902178a srp_tmo_valid +EXPORT_SYMBOL_GPL vmlinux 0x1909d0d5 bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x190a31e7 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x190e5730 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x1910a0bf dev_coredumpv +EXPORT_SYMBOL_GPL vmlinux 0x192602e7 dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0x1938291e skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x193dfdf6 klp_get_prev_state +EXPORT_SYMBOL_GPL vmlinux 0x1951d34d component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0x19598212 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x1960f90c nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0x1968207a blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x196b11a7 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x196f0c8b badrange_init +EXPORT_SYMBOL_GPL vmlinux 0x19821689 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x198db338 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19ae72a9 regulator_set_suspend_voltage +EXPORT_SYMBOL_GPL vmlinux 0x19b3af74 crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x19c20269 soc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x19c7f647 of_pm_clk_add_clks +EXPORT_SYMBOL_GPL vmlinux 0x19c8f713 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x19c949a9 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x19d93f6d __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0x19dfe5ec crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19e5ab15 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x19e6a06f __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x19e81304 btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x19eadd7d of_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0x19ee90da of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x1a0c253a dev_pm_opp_remove +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a11a7fc irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x1a146ec3 usb_ep_type_string +EXPORT_SYMBOL_GPL vmlinux 0x1a1e8472 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x1a2c55db tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1a2c6230 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x1a396f12 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1a558445 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x1a5c30c2 vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x1a690a3f auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a7e30a7 input_class +EXPORT_SYMBOL_GPL vmlinux 0x1a876574 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x1a89f69e espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0x1a9c20b1 xive_cleanup_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x1aa8603b regulator_suspend_disable +EXPORT_SYMBOL_GPL vmlinux 0x1abf44a9 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x1ae85ed4 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1af611a6 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0x1b08e1a5 mctrl_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x1b13bd35 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x1b2cfe13 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0x1b320af7 pnv_pci_get_presence_state +EXPORT_SYMBOL_GPL vmlinux 0x1b3fff43 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x1b45e02e nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0x1b4dc291 iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x1b5059ce ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x1b5640aa __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1b5ac30c nvmem_cell_read_variable_le_u32 +EXPORT_SYMBOL_GPL vmlinux 0x1b5fb7a3 dev_pm_genpd_set_performance_state +EXPORT_SYMBOL_GPL vmlinux 0x1b707216 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1b74fd27 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0x1b755c8d crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0x1b7669ed pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0x1b7a9ad1 __clk_mux_determine_rate_closest +EXPORT_SYMBOL_GPL vmlinux 0x1b7d669d cpufreq_dbs_governor_exit +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 0x1b9d61b3 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0x1bbe0aab raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x1bc20300 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x1bc2a73d generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bcb7151 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x1be921c4 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x1bea723a rio_local_set_device_id +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1c02cb55 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x1c042b0d phy_reset +EXPORT_SYMBOL_GPL vmlinux 0x1c0631cb bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x1c25db81 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x1c28fbf6 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x1c491e48 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x1c5541bd cpufreq_boost_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1c59b1a9 misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c5ff742 clk_get_phase +EXPORT_SYMBOL_GPL vmlinux 0x1c62e34d opal_get_sensor_data +EXPORT_SYMBOL_GPL vmlinux 0x1c73e092 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x1c76937e tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c78ebca nvmem_cell_read_variable_le_u64 +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 0x1c8bca8d emulate_vsx_store +EXPORT_SYMBOL_GPL vmlinux 0x1c8d3096 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x1c8e2fed usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x1c929e03 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x1ca169ae sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0x1cba415e clk_register_fractional_divider +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cc00362 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x1cc094df dmaengine_unmap_put +EXPORT_SYMBOL_GPL vmlinux 0x1cd5a3a1 devfreq_event_get_edev_count +EXPORT_SYMBOL_GPL vmlinux 0x1cef3226 usb_bus_idr_lock +EXPORT_SYMBOL_GPL vmlinux 0x1cf0fd9f restore_p9_host_os_sprs +EXPORT_SYMBOL_GPL vmlinux 0x1cfe4101 clkdev_hw_create +EXPORT_SYMBOL_GPL vmlinux 0x1d0515f1 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d2e9ded netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0x1d4ab6e9 vfio_pci_core_disable +EXPORT_SYMBOL_GPL vmlinux 0x1d4c7940 iommu_tce_kill +EXPORT_SYMBOL_GPL vmlinux 0x1d51e8b4 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x1d6b22ee phy_init +EXPORT_SYMBOL_GPL vmlinux 0x1d73012d kvmppc_update_dirty_map +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d7afea6 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x1d888e12 put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x1d9efd21 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1da6f4df pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x1dbb1b1b regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x1dc5934d iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x1dccb547 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0x1dd8e6ac irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0x1de0fbf0 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x1df33284 opal_prd_msg +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1e0670c6 reset_control_release +EXPORT_SYMBOL_GPL vmlinux 0x1e0cf235 opal_get_sensor_data_u64 +EXPORT_SYMBOL_GPL vmlinux 0x1e11e88a switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x1e1d2e99 strp_process +EXPORT_SYMBOL_GPL vmlinux 0x1e2d5f96 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x1e2d848e sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x1e396ae9 xhci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x1e40a872 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x1e424d61 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x1e4a2394 devm_rtc_allocate_device +EXPORT_SYMBOL_GPL vmlinux 0x1e4c7383 mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x1e4e2556 input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e5c369d clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x1e72626c ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1e786a6f rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7cc785 pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x1e81d00d sampling_rate_store +EXPORT_SYMBOL_GPL vmlinux 0x1e81f49a serial8250_em485_destroy +EXPORT_SYMBOL_GPL vmlinux 0x1e8389e1 debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1e883649 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1e8fac8e wireless_nlevent_flush +EXPORT_SYMBOL_GPL vmlinux 0x1e93e14a blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0x1e9c590a usb_find_common_endpoints_reverse +EXPORT_SYMBOL_GPL vmlinux 0x1eb76cfb skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x1edac5c3 xive_native_enable_vp +EXPORT_SYMBOL_GPL vmlinux 0x1ee4d4fb ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x1ee9fd5a led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x1ef20793 stop_core_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x1efaa06f __tracepoint_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x1efabdfa pseries_eeh_init_edev_recursive +EXPORT_SYMBOL_GPL vmlinux 0x1f050e36 pnv_pci_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f42e0de power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x1f449588 mctrl_gpio_disable_ms +EXPORT_SYMBOL_GPL vmlinux 0x1f4abe8f __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f604d55 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x1f6146ec dev_pm_opp_get_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f85947a of_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fab4b66 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x1fb1dc2e irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0x1fcf1b40 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x1fd34df1 dev_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0x1fd8d5a8 dev_pm_opp_get_level +EXPORT_SYMBOL_GPL vmlinux 0x1fdb2659 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1fe8eca4 nl_table +EXPORT_SYMBOL_GPL vmlinux 0x1ff1e5f9 of_property_read_variable_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x1ff9aaf7 pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x2009ca2d usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x20294487 i2c_dw_validate_speed +EXPORT_SYMBOL_GPL vmlinux 0x202d4ed6 nvmem_cell_write +EXPORT_SYMBOL_GPL vmlinux 0x20324a3d rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x203e2317 devm_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x204067ff vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x20699181 pnv_ocxl_set_tl_conf +EXPORT_SYMBOL_GPL vmlinux 0x206d2139 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x207c2b1a tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x208c7193 devm_clk_bulk_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x2093ab9a of_irq_get_byname +EXPORT_SYMBOL_GPL vmlinux 0x209933bd sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x209e57b3 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x20ab7d46 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x20b3c1ab debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x20cfe897 extcon_set_property +EXPORT_SYMBOL_GPL vmlinux 0x2108f3e1 serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask +EXPORT_SYMBOL_GPL vmlinux 0x211dd5d9 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x212b5343 led_update_brightness +EXPORT_SYMBOL_GPL vmlinux 0x21385152 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x2138bb80 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x2138d404 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x2147805b proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x214a494c iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x21523144 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x2172764c dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0x2176e42a hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x21817a74 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0x21a563da clk_get_accuracy +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21c1d7cc phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21d4d98b pinctrl_generic_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x21daa116 rio_mport_initialize +EXPORT_SYMBOL_GPL vmlinux 0x21f72461 device_register +EXPORT_SYMBOL_GPL vmlinux 0x2200061c __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x2207d0e9 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x2212e1e9 phy_put +EXPORT_SYMBOL_GPL vmlinux 0x221eab6d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x22253c0c remove_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x2230bbc9 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2237af2d dev_pm_opp_of_get_opp_desc_node +EXPORT_SYMBOL_GPL vmlinux 0x223e2b68 __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x22430127 __hwspin_trylock +EXPORT_SYMBOL_GPL vmlinux 0x22472028 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0x225a43c7 dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0x2263943e dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x2264ab33 nvdimm_setup_pfn +EXPORT_SYMBOL_GPL vmlinux 0x227a84b5 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x228cc789 dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0x22a322e2 pm_clk_resume +EXPORT_SYMBOL_GPL vmlinux 0x22a83e8a of_property_count_elems_of_size +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22ab9094 mmc_regulator_set_vqmmc +EXPORT_SYMBOL_GPL vmlinux 0x22ac3446 md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x22b7e009 switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0x22c17b6c kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x22c22bd4 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x22c60793 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22da6ded eeh_pe_reset +EXPORT_SYMBOL_GPL vmlinux 0x22deca3c sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x22ef0cab disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x22f31abb add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x230c3449 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2315ff49 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0x231cf5e4 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x231ec32e thermal_zone_device_enable +EXPORT_SYMBOL_GPL vmlinux 0x2338f5d2 metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x233af064 blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x233c26d9 fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x23412816 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0x2341fa9f of_gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x235a9b56 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x235d7e65 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0x235dc0d0 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x23603bb8 spi_take_timestamp_pre +EXPORT_SYMBOL_GPL vmlinux 0x236e7467 irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x2372f8bb watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x237c4f34 dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x237f9f42 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2386981a fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x2396c7f0 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0x23b2ec06 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x23b3305d kvmppc_h_bulk_remove +EXPORT_SYMBOL_GPL vmlinux 0x23b9d5a5 tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0x23c009f0 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0x23d5e2c7 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x23e095b6 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x2410b6c9 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x2418b618 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x241de1db crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x242af0ca irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x24337309 irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x24465a5a dev_pm_opp_find_level_exact +EXPORT_SYMBOL_GPL vmlinux 0x2457952d dev_pm_opp_get_max_clock_latency +EXPORT_SYMBOL_GPL vmlinux 0x2458ce3b regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x245ee4b1 device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x24638e92 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x246e58f5 component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x2474cf66 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x24754c07 param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0x248452d4 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x2484e789 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2486464f sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x24883748 devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x248e1473 kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x24ad11db wakeup_sources_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x24b599dd raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x24b9f356 mmu_partition_table_set_entry +EXPORT_SYMBOL_GPL vmlinux 0x24bb9eef kvmppc_host_rm_ops_hv +EXPORT_SYMBOL_GPL vmlinux 0x24c07078 __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x24cab147 hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x24e2b736 sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x24e58b8c net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x24e85397 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24ecb936 rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f63dcf ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x24fc50f4 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2512aa1b cpufreq_table_index_unsorted +EXPORT_SYMBOL_GPL vmlinux 0x2520dcbd ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x252151d4 kvmppc_save_current_sprs +EXPORT_SYMBOL_GPL vmlinux 0x25301bc6 arch_wb_cache_pmem +EXPORT_SYMBOL_GPL vmlinux 0x25379e73 clk_set_min_rate +EXPORT_SYMBOL_GPL vmlinux 0x255587ea dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x255878ec ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x2559d24d kvmppc_h_set_dabr +EXPORT_SYMBOL_GPL vmlinux 0x25668b73 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x259248d2 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x25938c84 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x259564eb __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x25ae4c40 usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x25af5e94 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25c4f87b pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x25cb1ce9 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x2600849d pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x2653d137 icc_set_tag +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x267c3a28 switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x267e77e2 kthread_func +EXPORT_SYMBOL_GPL vmlinux 0x267f2bb4 dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x26918054 freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2692b936 virtio_device_freeze +EXPORT_SYMBOL_GPL vmlinux 0x269e78a1 spi_mem_exec_op +EXPORT_SYMBOL_GPL vmlinux 0x26aa1426 __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26ac12e5 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x26b3ca27 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x26b41921 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0x26c05427 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26d6ed40 devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x26d86f96 nvdimm_has_cache +EXPORT_SYMBOL_GPL vmlinux 0x26d97efe bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x272721ee unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x272ebd54 mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0x272f1bf5 mm_iommu_new +EXPORT_SYMBOL_GPL vmlinux 0x273d59cf dev_pm_opp_remove_all_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x2740be5d devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x27462dd3 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x27592e7c pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x2766802f unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x27739cd5 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x27859b17 pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x27884fd2 devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x278ddfff regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x279aba79 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x27a571ce iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x27a79eab __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x27b35a8a serial8250_get_port +EXPORT_SYMBOL_GPL vmlinux 0x27ce3ec0 cpu_latency_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x27dc9471 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x27e640d5 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27f96bdc kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x282cdabc usb_led_activity +EXPORT_SYMBOL_GPL vmlinux 0x282f8667 cxl_update_properties +EXPORT_SYMBOL_GPL vmlinux 0x28310bcd kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x284eaaf6 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL vmlinux 0x2852530f gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x2882d40e usb_role_switch_unregister +EXPORT_SYMBOL_GPL vmlinux 0x288d178e usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x289395bc devfreq_cooling_em_register +EXPORT_SYMBOL_GPL vmlinux 0x28a634bf edac_mc_add_mc_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x28a718b9 blk_mq_end_request_batch +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 0x28b030d2 of_overlay_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28c8a3db mmu_psize_defs +EXPORT_SYMBOL_GPL vmlinux 0x28cbe831 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0x28db71e0 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x28dd4c84 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x28e2c9c0 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x28f6ec84 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x2908d79d mbox_request_channel_byname +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x293989eb kvm_alloc_hpt_cma +EXPORT_SYMBOL_GPL vmlinux 0x2940032d pnv_pci_get_power_state +EXPORT_SYMBOL_GPL vmlinux 0x294a608a divider_ro_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x294bdab4 fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x29649083 kvmppc_h_enter +EXPORT_SYMBOL_GPL vmlinux 0x298070f5 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x298575d3 pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x2990186e usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x299adb6c invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x299eecfe bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x29aa48d0 radix__flush_tlb_lpid_page +EXPORT_SYMBOL_GPL vmlinux 0x29ac8ada pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x29bafe84 irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x29c4f223 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x29d14bd2 of_dma_router_register +EXPORT_SYMBOL_GPL vmlinux 0x29d9919d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x29e623ed bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29f10b8b dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x29f5b418 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x2a1b0a1c isa_bridge_pcidev +EXPORT_SYMBOL_GPL vmlinux 0x2a29a8b9 serial8250_init_port +EXPORT_SYMBOL_GPL vmlinux 0x2a2ab780 netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x2a336698 opal_rtc_write +EXPORT_SYMBOL_GPL vmlinux 0x2a349a55 mctp_unregister_netdev +EXPORT_SYMBOL_GPL vmlinux 0x2a420d43 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x2a42cf8c pci_find_bus_by_node +EXPORT_SYMBOL_GPL vmlinux 0x2a480369 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2a4d7da6 mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a8a0d17 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2a9cd587 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0x2ac1e3bb pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x2acd0f9d crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0x2acd98fa of_phy_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x2acdd798 devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x2ad30efb bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2ada7bdc subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x2af3879d usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x2af60b78 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x2afbe65e register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2b04795e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x2b18e1e1 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x2b191253 serial8250_rpm_put +EXPORT_SYMBOL_GPL vmlinux 0x2b1bae0e cpu_to_core_id +EXPORT_SYMBOL_GPL vmlinux 0x2b1fba0f xive_native_disable_queue +EXPORT_SYMBOL_GPL vmlinux 0x2b2785e5 usb_phy_get_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x2b30e373 i2c_new_scanned_device +EXPORT_SYMBOL_GPL vmlinux 0x2b3481d7 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x2b3ad650 _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x2b4147ed kvmppc_hcall_impl_hv_realmode +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule +EXPORT_SYMBOL_GPL vmlinux 0x2b6150fb power_supply_temp2resist_simple +EXPORT_SYMBOL_GPL vmlinux 0x2b656c47 phy_power_off +EXPORT_SYMBOL_GPL vmlinux 0x2b65f267 tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x2b6d960d synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x2b76646e pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x2b7e68a0 device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x2b7f99f0 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2b88485f mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x2b952517 clk_has_parent +EXPORT_SYMBOL_GPL vmlinux 0x2bb1cb97 devfreq_event_set_event +EXPORT_SYMBOL_GPL vmlinux 0x2bb9095f radix__flush_pwc_lpid +EXPORT_SYMBOL_GPL vmlinux 0x2bcd8083 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x2bdad102 __traceiter_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x2bdf5ab0 pm_wakeup_pending +EXPORT_SYMBOL_GPL vmlinux 0x2bdfb156 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x2be08478 __regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x2bef03c9 dev_pm_opp_get_suspend_opp_freq +EXPORT_SYMBOL_GPL vmlinux 0x2bef6345 task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x2c0ab51a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c36cc85 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x2c40944c spi_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x2c596fcb usb_role_switch_register +EXPORT_SYMBOL_GPL vmlinux 0x2c635527 arch_invalidate_pmem +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c790d4a __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8922ac regulator_irq_map_event_simple +EXPORT_SYMBOL_GPL vmlinux 0x2c8dd6b8 edac_mem_types +EXPORT_SYMBOL_GPL vmlinux 0x2c944ba5 skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x2c97f8a2 of_reconfig_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2ca5a9e3 __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x2ca6da31 icc_provider_add +EXPORT_SYMBOL_GPL vmlinux 0x2cb3f54f dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x2cb77c40 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0x2cd5df3a opal_ipmi_send +EXPORT_SYMBOL_GPL vmlinux 0x2cd88f51 kvm_hv_vm_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x2ce3a727 blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0x2ce403dd of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2cf218f3 pm_genpd_remove +EXPORT_SYMBOL_GPL vmlinux 0x2d16d90d pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d1c4ddf fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2d1f3e65 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd36f kobj_ns_grab_current +EXPORT_SYMBOL_GPL vmlinux 0x2d305c96 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2d307fd8 proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0x2d34644d event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d42bfec nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x2d5db41b __irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x2d5f69b3 rcu_read_unlock_strict +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d678898 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x2d6a0002 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x2d7d09a7 vfio_unregister_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x2d80fe02 nvmem_del_cell_table +EXPORT_SYMBOL_GPL vmlinux 0x2d88f1ac gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0x2d988430 __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x2d995e4b get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x2dbf90b6 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x2dc003c9 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2dc8ff77 xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2de885eb tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x2df45bcd dev_pm_domain_detach +EXPORT_SYMBOL_GPL vmlinux 0x2df9bbfa pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x2dfefa42 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e10ab23 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e359ff2 of_reserved_mem_device_init_by_name +EXPORT_SYMBOL_GPL vmlinux 0x2e416457 genpd_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x2e425ad0 gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x2e59822f irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0x2e5aca2c of_irq_find_parent +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e6d309d unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0x2e71ec33 usb_of_get_device_node +EXPORT_SYMBOL_GPL vmlinux 0x2e8afb4f vfio_spapr_pci_eeh_open +EXPORT_SYMBOL_GPL vmlinux 0x2e964431 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x2e9ba1af fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x2eb59408 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x2eb9bfee devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecaf8e5 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x2ed6ec49 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x2ed7e78e crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x2ee82c5d dma_get_slave_caps +EXPORT_SYMBOL_GPL vmlinux 0x2eec9803 powercap_register_zone +EXPORT_SYMBOL_GPL vmlinux 0x2ef513d7 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x2f04fafb fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2f32412d devres_add +EXPORT_SYMBOL_GPL vmlinux 0x2f379f9a elv_register +EXPORT_SYMBOL_GPL vmlinux 0x2f3c48a5 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f4b2a4a device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x2f4cb430 __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x2f4cf5ee dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x2f632edc thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x2f69b3be ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2f77b2e9 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x2f835bcc spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x2f8404fd usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x2f87c0a5 edac_mc_free +EXPORT_SYMBOL_GPL vmlinux 0x2f98cf1a xhci_add_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2fb2a593 serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2fc71d20 pinmux_generic_get_function +EXPORT_SYMBOL_GPL vmlinux 0x2fe0a19f irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x2ffbd18c opal_message_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x300bb5af devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x300d881a bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0x301832fb opal_async_get_token_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x301a8931 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0x301c5225 mpc8xxx_spi_rx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0x301fedf6 devm_of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0x302d01a6 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x30428eb7 thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x3050e6b3 vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x3055020d encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x3056a3f2 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x308245f3 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x3096ea6d devm_regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x30993c42 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x30acd7ed gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x30be2126 dev_pm_opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x30d0b485 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x30e0b588 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x30f02e3f __spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x30f4cf55 fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0x30fd0a04 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x30fe31a1 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0x30fe58ed clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x310273a4 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x3117e2e9 kvmppc_msr_hard_disable_set_facilities +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31269173 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x3128fefc devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0x312d715d of_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x313564c8 blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x313a06bf ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x3149224b pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x3161a1d5 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x3165fed9 devm_spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x3171d2e4 devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x317750a8 power_supply_charge_behaviour_show +EXPORT_SYMBOL_GPL vmlinux 0x31839ad3 software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x3192d768 cpufreq_remove_update_util_hook +EXPORT_SYMBOL_GPL vmlinux 0x3196263e ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x319dfcc1 fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0x31a0586b zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31aeaff8 dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31ca142c ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x31d0e602 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x31d8e88a kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x31e21d56 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x31fe3eb2 regulator_list_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x320651ea gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x321fd7df irq_gc_unmask_enable_reg +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x32283bf8 devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x32324a97 platform_irqchip_probe +EXPORT_SYMBOL_GPL vmlinux 0x3244ed37 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x325888a3 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x32682025 pci_remove_device_node_info +EXPORT_SYMBOL_GPL vmlinux 0x326cefe5 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0x327be679 check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0x32804d31 dev_pm_opp_of_cpumask_remove_table +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x32aa98d5 software_node_fwnode +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 0x32c73e33 umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0x32c9bece serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x32cca73c gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0x32ce7ebb skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x32d69f47 blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x32df26af usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x32df33e7 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x32e57f13 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x3313a7de sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x333e4a9b xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0x334930d8 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336703e4 iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x337053f5 clk_hw_is_prepared +EXPORT_SYMBOL_GPL vmlinux 0x337abb17 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x3380a2b8 irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x33902251 devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x3391c3a3 mm_iommu_get +EXPORT_SYMBOL_GPL vmlinux 0x3396ceb7 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0x33b31526 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x33b8fc82 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x33c2bd8e flush_fp_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x33cd8188 of_pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0x33dc4d62 gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x33efc8c8 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x340d67c6 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x3434539b get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x344361a1 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0x3449a558 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x344a2c84 iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x345a1ccf gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0x345f7623 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3466f55f hwmon_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x346a94b9 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x3477b445 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x34797102 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x34a7b142 __SCK__tp_func_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34ad4e0a fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0x34e5ec4f xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x34f2b15f nvdimm_delete +EXPORT_SYMBOL_GPL vmlinux 0x34fc4ad3 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x35052692 icc_get_name +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x352b3813 maxim_charger_calc_reg_current +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x353c9635 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x3540f3cd inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x354fb7a2 fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x35602905 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x3567f64a virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0x356a42ff simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0x35705ab0 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x357777da ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x357cec2f __traceiter_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x358105b9 vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x35dfb921 fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0x360b44f3 scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0x360f59c6 udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x36141c51 fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x361a90d6 br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0x361c730c devm_pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x361d0a18 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x361de87c device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x3645db2f pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0x364b0366 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x36580913 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x365b45d1 __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x36610904 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x3669a087 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x366ebe28 of_pci_get_max_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36ab6ad8 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0x36ae3b4f iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x36ca915b iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x36d4c71a pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0x36ff0b74 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0x371ffb81 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3739744f stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3746143c skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x374a9762 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x3756de56 dev_pm_opp_unregister_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x376241ad debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x3769f2b1 strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x377b8f7e xhci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x377bbcbc pm_suspend_target_state +EXPORT_SYMBOL_GPL vmlinux 0x3788c262 of_pci_dma_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0x378f21d1 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x37945e54 nd_cmd_out_size +EXPORT_SYMBOL_GPL vmlinux 0x3795cb6f tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x37aa0492 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x37b6f191 put_device +EXPORT_SYMBOL_GPL vmlinux 0x37bde956 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x37c55bfe spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x37dc8acb vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0x37e0202a ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x37e96227 iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x37eaea90 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0x37feaaf6 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x3801776b __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x380dde36 power_supply_batinfo_ocv2cap +EXPORT_SYMBOL_GPL vmlinux 0x381f8cf8 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x38235886 vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0x38268b62 icc_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x385a007c usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x385ed2ca raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x3866e217 nvmem_device_write +EXPORT_SYMBOL_GPL vmlinux 0x38779f62 set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x38865fb9 relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x3899470d phy_validate +EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x389e7573 __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x38a75e44 inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38b46249 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x38bc936f virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x38c555b2 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x38d23562 badrange_add +EXPORT_SYMBOL_GPL vmlinux 0x38d8c40c regulator_map_voltage_pickable_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38e5bc5a clk_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0x39019a20 proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x3924d52e pci_host_common_remove +EXPORT_SYMBOL_GPL vmlinux 0x3938737a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x393899a5 devm_power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0x394e0154 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x39518ba2 of_genpd_remove_last +EXPORT_SYMBOL_GPL vmlinux 0x396067c5 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x396e89ac blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x39738134 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3983aba8 dev_pm_opp_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x3993cf6b io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3999d325 tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0x399dc04d vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39aa4888 usb_role_string +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39cec1d4 component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0x39d3d327 __reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x39e0a033 icc_provider_del +EXPORT_SYMBOL_GPL vmlinux 0x3a0da8fd tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0x3a19c7fa __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x3a219784 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect +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 0x3a74e484 __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a7d4d6a ping_close +EXPORT_SYMBOL_GPL vmlinux 0x3a803310 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x3a86a594 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0x3a9bdc65 vas_register_api_powernv +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3a9d7cdd rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x3aa58c46 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x3ab80fa1 pnv_pci_get_slot_id +EXPORT_SYMBOL_GPL vmlinux 0x3ab9d6f6 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x3ac3b7b4 splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x3ac9c0fb iommu_release_ownership +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad293ce syscon_regmap_lookup_by_phandle_args +EXPORT_SYMBOL_GPL vmlinux 0x3ad43185 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x3adc3fe1 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x3aed2135 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x3b08ba13 __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x3b1efaac usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x3b20e80b regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x3b250c96 tps6586x_get_version +EXPORT_SYMBOL_GPL vmlinux 0x3b26de4a edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL vmlinux 0x3b272e83 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3b33646d msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x3b3b48c3 clk_register_divider_table +EXPORT_SYMBOL_GPL vmlinux 0x3b3c7e27 kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x3b4c240a display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0x3b610584 __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3b6af131 bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x3b757ff3 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x3b8f4788 rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x3b9125ec i2c_adapter_depth +EXPORT_SYMBOL_GPL vmlinux 0x3b933408 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x3b95f543 klp_shadow_free +EXPORT_SYMBOL_GPL vmlinux 0x3b9a67a7 vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x3ba01b47 get_compat_sigset +EXPORT_SYMBOL_GPL vmlinux 0x3bb5d1f7 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdb626f sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0x3bdc0e0c __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x3be4fcba pm_genpd_init +EXPORT_SYMBOL_GPL vmlinux 0x3bed40da spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c2b68f7 of_changeset_apply +EXPORT_SYMBOL_GPL vmlinux 0x3c2e22ef dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3c37cbf8 machine_check_print_event_info +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c3ef713 kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x3c41edef da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x3c55746e vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL vmlinux 0x3c58087d bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x3c58c2fa virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x3c5ce9e0 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x3c65793a devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c8bb6d5 fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0x3ca8be7b dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cafe204 __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1277f extcon_unregister_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cf69baf slice_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x3cfb796d kvmppc_save_tm_hv +EXPORT_SYMBOL_GPL vmlinux 0x3d098ae2 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x3d0b8f02 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x3d24157b icc_link_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3d29d63e __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x3d328ba2 devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d46cb44 device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d612305 iommu_direction_to_tce_perm +EXPORT_SYMBOL_GPL vmlinux 0x3d6584a9 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3d6666d7 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3d8baf3b zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x3d90fd26 serial8250_em485_config +EXPORT_SYMBOL_GPL vmlinux 0x3d9bbf75 wwan_port_txon +EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3db1dfc4 rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x3db31b1d inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x3dbc51ee create_signature +EXPORT_SYMBOL_GPL vmlinux 0x3dbd6d96 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3dc0c25d follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x3dc9e6ab pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x3dcdd498 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dee0090 pwm_adjust_config +EXPORT_SYMBOL_GPL vmlinux 0x3df6efe6 pnv_ocxl_unmap_lpar +EXPORT_SYMBOL_GPL vmlinux 0x3e02660c clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0x3e0365f9 fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x3e05787e ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3e0a7ede pci_hp_remove_devices +EXPORT_SYMBOL_GPL vmlinux 0x3e1566f4 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x3e1e3a4e platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3e3c8e4a devm_clk_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3e43c4e9 of_property_read_variable_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x3e446bd4 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3e5f4a96 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x3e6ccea4 usb_of_has_combined_node +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e751897 housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x3e7e14db copro_handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x3eb19328 uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL vmlinux 0x3eb78776 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x3ebb32c6 mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x3ebe138c rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x3ecdaa2b __find_linux_pte +EXPORT_SYMBOL_GPL vmlinux 0x3ed2aafb __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x3ee0af55 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x3eeca07d pinctrl_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3ef373b5 serial8250_do_startup +EXPORT_SYMBOL_GPL vmlinux 0x3f060583 dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0x3f11b17e ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0x3f227c0f dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x3f2302f7 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3f2526ba devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x3f308066 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f453eb9 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x3f491f49 reset_control_bulk_reset +EXPORT_SYMBOL_GPL vmlinux 0x3f4c56ec rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3f5a5e1f icc_put +EXPORT_SYMBOL_GPL vmlinux 0x3f636c29 sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0x3f6631e4 devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x3f799ee0 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x3f801f38 kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3f85570e irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x3f866293 of_i2c_get_board_info +EXPORT_SYMBOL_GPL vmlinux 0x3f88ef35 dax_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x3f95a976 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x3f9f9cd9 synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x3faa540c fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x3fb48682 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x3fe35aea irq_bypass_unregister_consumer +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3ff2e349 hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x3ff2f0aa perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x3ff43fe8 pnv_pci_set_tunnel_bar +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x40032a6c inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x4004077c mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x40079d5e clk_hw_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x400f9de7 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x401bd1ed platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x403673b4 __clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4044f2fd pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0x4045c9cf ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x40578783 blk_mq_rdma_map_queues +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 0x4091f9f7 gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x40a1daf1 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40a32786 srp_attach_transport +EXPORT_SYMBOL_GPL vmlinux 0x40a6d1dc cpufreq_dbs_governor_init +EXPORT_SYMBOL_GPL vmlinux 0x40ae28ea __devm_spi_alloc_controller +EXPORT_SYMBOL_GPL vmlinux 0x40b013f3 blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x40b2ff7d vfio_file_iommu_group +EXPORT_SYMBOL_GPL vmlinux 0x40b5be99 xive_native_populate_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x40bd9287 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x40c67ace netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0x40c74b71 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x40dbd91d skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x4100a662 clk_get_scaled_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x4116ae8c vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x41199703 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x4123ebab pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x41495d83 pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x414d119a videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x414d7aae xive_native_get_queue_state +EXPORT_SYMBOL_GPL vmlinux 0x415fdb0b bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4165c8de crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41831367 gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x4187fc17 rio_pw_enable +EXPORT_SYMBOL_GPL vmlinux 0x418873cc irq_bypass_register_producer +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x41a829d6 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x41a96dde mm_iommu_lookup +EXPORT_SYMBOL_GPL vmlinux 0x41aa7982 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x41ab0d92 mbox_chan_txdone +EXPORT_SYMBOL_GPL vmlinux 0x41ada5bb clk_hw_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41bc4be8 devm_gpiod_put +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 0x420f3d01 nvmem_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x422221bc dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x422d13e1 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x422f8087 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x4232f668 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x42338b6f mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0x42378add ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x4241e8f7 dax_add_host +EXPORT_SYMBOL_GPL vmlinux 0x42450653 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x42635d55 pm_suspend_global_flags +EXPORT_SYMBOL_GPL vmlinux 0x4269ed12 crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0x426a502b __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x42763b34 sata_lpm_ignore_phy_events +EXPORT_SYMBOL_GPL vmlinux 0x42783f29 msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0x427a6799 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x427b5684 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x429a9296 regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42c2132b debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x42c69c1f kvmppc_check_need_tlb_flush +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x42ef0bc4 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x42f728aa mctrl_gpio_get_outputs +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x430fdf91 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x43196c68 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x432702e6 mm_iommu_mapped_inc +EXPORT_SYMBOL_GPL vmlinux 0x433c433b devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x4348205e policy_has_boost_freq +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x4370eb4d nf_route +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x43988a41 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x43a03316 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43c56018 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x43ca903a regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x43e65328 usb_get_maximum_ssp_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f11670 udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x43f81957 clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x440d439e crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x4414af52 iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x44158abc lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x441e3b0e irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x442b25b7 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x443a8b0d sdio_retune_crc_disable +EXPORT_SYMBOL_GPL vmlinux 0x446ad508 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x447f237f pnv_ocxl_unmap_xsl_regs +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x449c6887 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x449fa45d btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x44a47ae7 kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x44b09de0 iommu_tce_check_ioba +EXPORT_SYMBOL_GPL vmlinux 0x44b2420e vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x44b3500c ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44d2d9ff sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x44daacca blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x44e995b4 clk_gate_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x44e9c4fc l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x45025664 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x4531624f usb_decode_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x4531ab62 copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x454ffdab usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x45558f56 clk_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x45578f1a smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x45597170 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x456fa76e vfio_init_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4586a7a1 kvmppc_do_h_enter +EXPORT_SYMBOL_GPL vmlinux 0x4595f6e1 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x459868fa fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x45aa5229 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x45ada5ed strp_init +EXPORT_SYMBOL_GPL vmlinux 0x45b76cf5 of_detach_node +EXPORT_SYMBOL_GPL vmlinux 0x45cbc87b pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x45d45c30 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x45d9d7c8 clk_hw_get_parent_index +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46064842 serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x46127225 __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x4612d016 fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x46269814 __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x4629ba37 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x463b23aa blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0x463e8d07 devm_power_supply_get_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x4644bda4 devm_clk_get_optional_prepared +EXPORT_SYMBOL_GPL vmlinux 0x46616023 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x466a13d4 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x467085f0 serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x467eb7de vas_unregister_api_pseries +EXPORT_SYMBOL_GPL vmlinux 0x4681e55f iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4683bdd5 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x468f2574 pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0x4692f673 copy_mc_generic +EXPORT_SYMBOL_GPL vmlinux 0x46962562 icc_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x46a532df udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0x46a533b2 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x46afa59b fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0x46b7b58d switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0x46c13b64 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x46c9f278 __reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x46cd50fb klp_get_state +EXPORT_SYMBOL_GPL vmlinux 0x46cdb128 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x46e465de klist_init +EXPORT_SYMBOL_GPL vmlinux 0x4705c76c trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0x470f3a0f dev_pm_opp_get_max_transition_latency +EXPORT_SYMBOL_GPL vmlinux 0x471a0ed8 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x472c7b73 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x47549e49 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477569c1 fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x4786a0c6 of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x4790cce1 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x479d086c blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x479f7d4b clk_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b070b9 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x47b7a692 cpu_feature_keys +EXPORT_SYMBOL_GPL vmlinux 0x47b7abce rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x47c27929 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x47cd7766 ehci_reset +EXPORT_SYMBOL_GPL vmlinux 0x47de0dc7 clk_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x47df54d0 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x47e82ebb wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x47eaaaad hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x47ef0fcc vfio_pci_core_mmap +EXPORT_SYMBOL_GPL vmlinux 0x47f1cf78 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x47fb23cc dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x47fb9b14 cpufreq_freq_transition_end +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x48194e6b phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x48203853 em_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x48265ccd fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x48377010 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0x4840eb6d sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x484a2d7a key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x485192dc tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x4854072e dev_pm_domain_set +EXPORT_SYMBOL_GPL vmlinux 0x485b4228 dev_pm_opp_put_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x4862a8ab crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x4868bcd1 serial8250_rpm_put_tx +EXPORT_SYMBOL_GPL vmlinux 0x4869a8f7 eeh_pe_inject_err +EXPORT_SYMBOL_GPL vmlinux 0x487ac245 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x487ffcf7 pinctrl_generic_add_group +EXPORT_SYMBOL_GPL vmlinux 0x48a08d17 led_classdev_register_ext +EXPORT_SYMBOL_GPL vmlinux 0x48a3d20b mctrl_gpio_get +EXPORT_SYMBOL_GPL vmlinux 0x48b05b6d gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x48ba0d47 bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48c341f9 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x48e014ba mmc_send_tuning +EXPORT_SYMBOL_GPL vmlinux 0x48ed22ab irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x48fba791 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x48fef709 irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x490de963 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x492d7676 is_nvdimm_sync +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node +EXPORT_SYMBOL_GPL vmlinux 0x494551f9 phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x495b67e6 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x495b684e regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x49662fd1 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x4968e04a mmc_crypto_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x496edbcb clk_hw_unregister_mux +EXPORT_SYMBOL_GPL vmlinux 0x4978633b dev_pm_opp_xlate_required_opp +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499699fa devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x4998e909 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x499f6d67 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x49aa858d devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x49b14e03 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x49ba7b71 pinmux_generic_get_function_groups +EXPORT_SYMBOL_GPL vmlinux 0x49c425ff add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49de49d6 usb_get_maximum_speed +EXPORT_SYMBOL_GPL vmlinux 0x49e669a0 dev_pm_set_dedicated_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49eea11f register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x49efaf33 i2c_new_client_device +EXPORT_SYMBOL_GPL vmlinux 0x49f3b073 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0x4a026413 mm_iommu_mapped_dec +EXPORT_SYMBOL_GPL vmlinux 0x4a179bee devm_clk_get_prepared +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a23949a dev_pm_qos_expose_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x4a27c1ff usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x4a5bfb2d blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x4a5d2348 pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x4a7c2332 icc_node_create +EXPORT_SYMBOL_GPL vmlinux 0x4a7f72d5 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x4a9f047a tm_enable +EXPORT_SYMBOL_GPL vmlinux 0x4abe9e35 led_sysfs_disable +EXPORT_SYMBOL_GPL vmlinux 0x4ad2d7ef cpufreq_freq_attr_scaling_boost_freqs +EXPORT_SYMBOL_GPL vmlinux 0x4ad3feb0 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x4adc0ca4 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4ae59662 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x4b091939 percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x4b13168b wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x4b133ae0 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4b1b4f9b thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4b26fef9 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x4b3cd776 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x4b46eee2 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x4b47e9c3 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x4b51f74c ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x4b5d3489 vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL vmlinux 0x4b5d94a2 serial8250_em485_stop_tx +EXPORT_SYMBOL_GPL vmlinux 0x4b6474e2 vas_init_tx_win_attr +EXPORT_SYMBOL_GPL vmlinux 0x4b6ebcb9 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x4b742abb usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x4b83baea devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x4b8aa933 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x4b973b57 device_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4b9b1828 report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0x4bced8e5 switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0x4bd09226 filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4be5de08 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x4bef0884 pgtable_cache_add +EXPORT_SYMBOL_GPL vmlinux 0x4bf36227 switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x4bf94ee1 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x4c0677b7 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x4c37a848 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4c453c3a dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x4c45dd44 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x4c4876ad usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x4c549b36 __traceiter_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0x4c696e1d firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4c778e1e class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x4c885d8b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x4c8a0829 of_usb_host_tpl_support +EXPORT_SYMBOL_GPL vmlinux 0x4ca0d4ed device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb73a41 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4ccbe53c iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0x4cda08c1 strp_done +EXPORT_SYMBOL_GPL vmlinux 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL vmlinux 0x4cf8d4b3 dma_request_chan_by_mask +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d04d88b __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x4d0ad1b5 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x4d23e245 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x4d256ec3 pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x4d3a0696 __SCK__tp_func_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x4d3b0cff mmc_cmdq_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d3d24f5 pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d6cf37c sdio_signal_irq +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d6dc7ed of_scan_bus +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d799e44 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL vmlinux 0x4db89acb vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL vmlinux 0x4dc52c09 pnv_power9_force_smt4_catch +EXPORT_SYMBOL_GPL vmlinux 0x4dd1bcdf bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4dd625dc blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0x4dd90164 __traceiter_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4ddd249c skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4dff61e5 wwan_port_txoff +EXPORT_SYMBOL_GPL vmlinux 0x4e17c613 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x4e1cbd8c is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x4e33b064 pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0x4e46aa18 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e593752 bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x4e5ea9f3 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x4e67d309 dev_pm_genpd_set_next_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x4e6ab3f9 xhci_resume +EXPORT_SYMBOL_GPL vmlinux 0x4e704e16 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0x4e74878e __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x4e7617f5 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x4e785271 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x4e85a647 of_mm_gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x4e912857 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x4ea2df0e gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x4ea470b9 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4eb39d4e __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x4eb3bd82 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x4ebf7e77 debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x4ec061b6 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x4ec8490e pci_add_device_node_info +EXPORT_SYMBOL_GPL vmlinux 0x4ee43404 nd_cmd_in_size +EXPORT_SYMBOL_GPL vmlinux 0x4ee454ef devm_irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x4eea2f5f devm_extcon_dev_allocate +EXPORT_SYMBOL_GPL vmlinux 0x4eeba689 fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x4ef1b0b7 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f0a8741 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x4f2c996d kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x4f2e526c __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x4f42c7f1 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x4f4ce74c seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0x4f4f5897 extcon_set_property_capability +EXPORT_SYMBOL_GPL vmlinux 0x4f5076b3 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x4f661a74 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x4f666a80 __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f72a987 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0x4f74f2ab inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x4f76804a class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x4f9f6ab9 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4fa618b3 cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x4fd2c29b fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdd6ee2 powercap_unregister_control_type +EXPORT_SYMBOL_GPL vmlinux 0x4fdfae19 srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ff019f7 thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4ff77f4f security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x500392c1 fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0x5007d64f of_dma_xlate_by_chan_id +EXPORT_SYMBOL_GPL vmlinux 0x502b2596 __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x5032782b __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x5036d86b rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x5039e088 __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x5048aebf shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x504fb8cd __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x5059b8c1 dev_pm_qos_update_user_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0x505cebcb usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x506b00a7 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x5071fd6d tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x507d1e45 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x508377eb xive_native_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x5085ca5b device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x508925fd get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50943f22 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x509afe23 virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0x50b0d5e3 __traceiter_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x50b2df07 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x50c81381 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x50d2da74 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x50d34a74 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x50dd1af5 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fa077c device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510900ad bio_poll +EXPORT_SYMBOL_GPL vmlinux 0x511e5ebb posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5123ba41 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x5130782e thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x51310ec0 ata_sas_tport_delete +EXPORT_SYMBOL_GPL vmlinux 0x51358189 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x514a4d62 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x514cf125 pcibios_claim_one_bus +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x5168c3ec __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x517ed87e irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0x5193068f list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x51a348cc usb_role_switch_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock +EXPORT_SYMBOL_GPL vmlinux 0x51beb9cb ata_port_classify +EXPORT_SYMBOL_GPL vmlinux 0x51d456d9 param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x51da05f1 crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x51df98d0 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x51eab553 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x5205cbf4 tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x520ac5f3 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0x5224f062 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x52252316 clk_unregister_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0x52279ece irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x522b5720 phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x5236497d trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x5237dba4 xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x523dff22 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5246c650 icc_nodes_remove +EXPORT_SYMBOL_GPL vmlinux 0x524b29a6 nvdimm_bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x525ec370 dev_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x526bcf2a wwan_port_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52b5be00 __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52c3d4d0 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x52c9a973 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x52c9e901 phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x52cba0a8 spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x52e07a6a tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x52e68679 device_move +EXPORT_SYMBOL_GPL vmlinux 0x52e87c86 regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x52ff6e62 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0x53012944 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x5302c32a pm_runtime_force_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5304135b platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x53130bdd bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0x531547f5 devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x531e7b8b vfio_uninit_group_dev +EXPORT_SYMBOL_GPL vmlinux 0x531ec423 acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x532b90b5 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0x532d1b0d driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0x5335dd11 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x534050f9 hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x536822e3 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x536c1517 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x537252cf __SCK__tp_func_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x53761e1e devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x53828dfb genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x53ad3152 blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x53c089f5 property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x53d9f73a sensor_group_enable +EXPORT_SYMBOL_GPL vmlinux 0x53eb6496 pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x5411ffed task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x5413ac07 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x542f3f3b unregister_cxl_calls +EXPORT_SYMBOL_GPL vmlinux 0x545089b9 regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x546811ca ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x546c5565 ppc_tb_freq +EXPORT_SYMBOL_GPL vmlinux 0x5470d6c1 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x54794c57 mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x547ff8cf pnv_ocxl_get_actag +EXPORT_SYMBOL_GPL vmlinux 0x548133f6 of_phy_provider_unregister +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x549ead9a inode_dax +EXPORT_SYMBOL_GPL vmlinux 0x54a61c1e of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x54b22390 device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x54c90f95 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x54cd9b80 wwan_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0x54cee684 __tracepoint_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x55063e15 l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL vmlinux 0x5523d22a pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x553b49a4 cpufreq_get_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x55408de4 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x5540e19d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55463912 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x5547bbfd crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x556247ee genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x556e4390 clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x5574b4e0 crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x55760bb1 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x557ce80e devm_of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x5588879e kvmppc_entry_trampoline +EXPORT_SYMBOL_GPL vmlinux 0x559b39ff dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x55ac0822 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x55acdc78 pinctrl_generic_get_group +EXPORT_SYMBOL_GPL vmlinux 0x55b45e4f driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x55bce5d5 dev_pm_genpd_suspend +EXPORT_SYMBOL_GPL vmlinux 0x55c76a23 ksys_sync_helper +EXPORT_SYMBOL_GPL vmlinux 0x55d496a2 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x55d5f297 dev_pm_set_dedicated_wake_irq_reverse +EXPORT_SYMBOL_GPL vmlinux 0x55e76077 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55f093a9 opal_write_oppanel_async +EXPORT_SYMBOL_GPL vmlinux 0x55f9b9c6 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x55fe2582 pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x56044376 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x560e4eee list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x56173654 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x561776b7 device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x562ceb3e gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x563d6108 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x563dcd72 iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x56437a8e synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x5649ffd8 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x56781e90 __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x5679e317 blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x568b9dab vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x569791c9 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x56c672c4 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x56db7a72 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x56dd6978 mctp_register_netdev +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x57124ce4 __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x571746b4 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x5717c37e perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x572237eb i2c_dw_probe_master +EXPORT_SYMBOL_GPL vmlinux 0x57271377 __devm_of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x572d83ac load_vcpu_state +EXPORT_SYMBOL_GPL vmlinux 0x5736a330 mm_iommu_ua_to_hpa +EXPORT_SYMBOL_GPL vmlinux 0x573f8fa1 crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x575d62e1 klp_enable_patch +EXPORT_SYMBOL_GPL vmlinux 0x5761185b bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x576ed250 of_get_named_gpio_flags +EXPORT_SYMBOL_GPL vmlinux 0x578eeb4d hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x57995a89 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x579ed0f1 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x579ef5f3 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x57ad4be0 opal_int_eoi +EXPORT_SYMBOL_GPL vmlinux 0x57b44a81 decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0x57d4050a xhci_get_endpoint_index +EXPORT_SYMBOL_GPL vmlinux 0x57d45ef7 fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x57dd369b rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x57f0de65 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x57fb9c7e edac_device_handle_ue_count +EXPORT_SYMBOL_GPL vmlinux 0x581413b8 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x582a33c7 dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x58497411 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x584def5d regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x585c1319 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0x5860a5a6 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x5868a4fb clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x58865f0d dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x58913e4e sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x5891ddee ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x5893e9e8 exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0x58b2a05a perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x58cbac9f sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0x58d17671 sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x58d54f95 sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x58d551cb dev_pm_opp_find_bw_ceil +EXPORT_SYMBOL_GPL vmlinux 0x58db1176 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58df15fd usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x58e4cabe bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x58f479a0 genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x5905afea icc_std_aggregate +EXPORT_SYMBOL_GPL vmlinux 0x5909fc18 opal_tpo_read +EXPORT_SYMBOL_GPL vmlinux 0x5912468c usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x59328914 of_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x59335f4b sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x593e48b0 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x593ed5af ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x5958f576 msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0x596907d6 pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0x597041b1 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x597b804b usb_intf_get_dma_device +EXPORT_SYMBOL_GPL vmlinux 0x597ee2a2 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0x5986d190 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0x599dbd3a irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x59af17e1 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59c477eb __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x59c613f3 perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x59ebb7b9 soc_device_match +EXPORT_SYMBOL_GPL vmlinux 0x59f06fc9 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a30bce8 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x5a35e299 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a4dfd00 fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0x5a4e8526 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x5a5fda00 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x5a64addb cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a76c549 devm_regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5a7708ec fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a933090 metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0x5aa28d83 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x5ab09745 edac_get_owner +EXPORT_SYMBOL_GPL vmlinux 0x5ab2ed2b skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x5aba6009 dev_pm_domain_attach +EXPORT_SYMBOL_GPL vmlinux 0x5ac44e5a tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x5ac6457e pcibios_scan_phb +EXPORT_SYMBOL_GPL vmlinux 0x5ac9098d kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0x5acda639 mmc_cmdq_enable +EXPORT_SYMBOL_GPL vmlinux 0x5ae16882 serial8250_em485_start_tx +EXPORT_SYMBOL_GPL vmlinux 0x5b06ef35 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x5b07dc24 nd_region_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x5b0c0845 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x5b0e08ed ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b295ac1 bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0x5b3dd167 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b41e8d4 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5b58c477 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x5b5d3419 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b741526 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x5b856909 devm_regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x5b958e3e __regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5bb03ca1 dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0x5bb288b4 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc950fe regulator_irq_helper_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5bcc0df7 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x5bce927c blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd41d35 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x5bdae35b usb_phy_roothub_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5be6d046 of_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0x5c02df5c fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x5c09712b pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0x5c1b61a0 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c301676 l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x5c395a63 cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c50dacc clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x5c55e703 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x5c5684ea PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x5c5a1b16 tick_broadcast_control +EXPORT_SYMBOL_GPL vmlinux 0x5c5fb695 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x5c698411 task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x5c6a2658 skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x5c6d8827 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x5c700840 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5c7639e9 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5c802575 stmpe811_adc_common_init +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c85146b xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0x5ca351cb net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x5cad8fc3 power_supply_ocv2cap_simple +EXPORT_SYMBOL_GPL vmlinux 0x5cae7b74 to_of_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x5cb99d97 kernstart_addr +EXPORT_SYMBOL_GPL vmlinux 0x5cbe2eda gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0x5cc09ce0 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x5cc20fe4 devm_of_phy_get_by_index +EXPORT_SYMBOL_GPL vmlinux 0x5cd0e5eb __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5cd305ed digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x5cd44c51 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x5ce816ee bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x5ced8290 iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cf0b2fe tpm_tis_core_init +EXPORT_SYMBOL_GPL vmlinux 0x5cf958b8 badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x5cf98071 dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x5cfe2482 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5d0dd5d6 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0x5d110d16 spi_take_timestamp_post +EXPORT_SYMBOL_GPL vmlinux 0x5d156056 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x5d20ef6b serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0x5d2bc42a reset_control_rearm +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d62a508 cpufreq_dbs_governor_stop +EXPORT_SYMBOL_GPL vmlinux 0x5d6cb56d mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d6eb1d6 make_device_exclusive_range +EXPORT_SYMBOL_GPL vmlinux 0x5d700df8 __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x5d804507 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d88144c serial8250_do_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0x5d9a080b md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5da7c1c5 kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x5dae773b proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x5db17a14 spi_controller_resume +EXPORT_SYMBOL_GPL vmlinux 0x5db44be0 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x5dccce69 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x5dd29366 of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x5de0a441 generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x5df7f1b3 pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5e003690 __devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x5e00aea4 ucall_norets +EXPORT_SYMBOL_GPL vmlinux 0x5e0c156c blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5e2e437d pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x5e4c1d32 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0x5e504ee9 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e5ce758 devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x5e5de3d0 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x5e5e5d76 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x5e6f6b3c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x5e727ea0 devm_memremap_pages +EXPORT_SYMBOL_GPL vmlinux 0x5e743d9d fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x5e75d08c fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0x5e7628ba gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x5e798ffb divider_get_val +EXPORT_SYMBOL_GPL vmlinux 0x5e7b0ea4 serial8250_do_set_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5e903e51 regulator_desc_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x5eae5408 clk_is_enabled_when_prepared +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5ec8c322 xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0x5ed0da6c tm_disable +EXPORT_SYMBOL_GPL vmlinux 0x5ed73969 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x5eedf1af xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5eff3c74 __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x5f059f1f bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5f1c70f7 netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x5f207245 regulator_set_pull_down_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f34e40b regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5f3c6aab clk_hw_get_parent_by_index +EXPORT_SYMBOL_GPL vmlinux 0x5f4720cf device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5f49f0d9 of_irq_get +EXPORT_SYMBOL_GPL vmlinux 0x5f562dd4 devm_extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x5f58db42 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f9bbd78 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x5fa59020 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fb10f38 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0x5fc51c0e crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0x5fcd3111 dev_pm_opp_get_required_pstate +EXPORT_SYMBOL_GPL vmlinux 0x5fd33ac6 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5fd9115c device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0x5fdc0247 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5fdd633a pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x5fdfcd57 __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x5ff19cce pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x6000187c opal_check_token +EXPORT_SYMBOL_GPL vmlinux 0x60091316 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x600cc455 mmu_slb_size +EXPORT_SYMBOL_GPL vmlinux 0x603782d4 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x6043aa8e irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x6062d481 regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6063255c synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0x60655421 sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x6068db76 clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x60816576 xas_find +EXPORT_SYMBOL_GPL vmlinux 0x6081884a usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x60838cf3 fwnode_get_nth_parent +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 0x60ae0922 power_supply_vbat2ri +EXPORT_SYMBOL_GPL vmlinux 0x60c56b10 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x60de808d finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x60e1cde1 kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x60eac9d7 of_genpd_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x60ebc5c2 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60f026f9 gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x60f16177 kill_device +EXPORT_SYMBOL_GPL vmlinux 0x60f48100 iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x60f6f723 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x610f399b subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x61122ae5 gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0x61144817 fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x6114b84b wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x611cce2d bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0x6129c0db xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x61406bf0 genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0x6146c01f hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0x614840fb component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x614adcb7 of_overlay_remove_all +EXPORT_SYMBOL_GPL vmlinux 0x615d3447 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x61801a76 dev_pm_opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619a8194 threads_core_mask +EXPORT_SYMBOL_GPL vmlinux 0x619f8bcc nvdimm_flush +EXPORT_SYMBOL_GPL vmlinux 0x61b25504 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x61be3720 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61d6ee43 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x61dbda7b devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0x61f1d7c0 disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x61f408c3 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x61fff9df simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x62202630 cpu_remove_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0x62279fe4 pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x622c420d nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622f0663 regulator_bulk_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x6230c870 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x6233785e debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x623c031a of_usb_get_dr_mode_by_phy +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x62471bb3 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x6250b282 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x6257dda7 clk_rate_exclusive_get +EXPORT_SYMBOL_GPL vmlinux 0x6259d291 clk_restore_context +EXPORT_SYMBOL_GPL vmlinux 0x6260df9a ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x6263d412 iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0x626b9344 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x626eff12 debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x626fcd39 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x62770d9c kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x628148be _kvmppc_restore_tm_pr +EXPORT_SYMBOL_GPL vmlinux 0x628b2cb8 iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0x62a1e3fb tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x62b3613e modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62bb49ad genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x62e2ef0f devm_regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62fb51ac regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x62fb8acf regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x6303ab37 vfio_pci_core_init_device +EXPORT_SYMBOL_GPL vmlinux 0x63150e06 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x63197685 s2idle_wake +EXPORT_SYMBOL_GPL vmlinux 0x631dd6e4 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x6339b650 i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL vmlinux 0x633f5a7a dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0x633fb613 spi_controller_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6345856d kvmppc_h_clear_mod +EXPORT_SYMBOL_GPL vmlinux 0x634702c8 __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x635ce8af regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x63795933 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x638f6624 regulator_get_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x63a1ff35 pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0x63c08029 clk_bulk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63f710ef bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x63f97cf6 __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x640a1659 handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x6418789c xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x6428c7c1 shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x6435b52e usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x64512ffe pm_clk_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6457af8f mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0x645a33e3 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x645bd6b8 syscon_regmap_lookup_by_phandle_optional +EXPORT_SYMBOL_GPL vmlinux 0x64609d25 __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x6493a2df rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x6498ac97 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x64af8f3a of_pwm_single_xlate +EXPORT_SYMBOL_GPL vmlinux 0x64d020bd pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x64dc76d6 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64f36620 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x64f73532 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x64f74abf __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x65152ce8 regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x65319a2d of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x654473eb of_cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x6545268e __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x655608a0 crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x655ba67d xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x655d228c fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x655f3923 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x656be2d8 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x656d8e36 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x657aa733 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x65871f11 devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x65918956 edac_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0x659fd286 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x65b71240 fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65defd86 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x65e07850 cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x65ef8d1e phy_pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x65f149ef devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x66009ec1 of_devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x66353f55 xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x664804ea blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x66507d3c vfio_pci_core_match +EXPORT_SYMBOL_GPL vmlinux 0x665e92a0 clk_set_duty_cycle +EXPORT_SYMBOL_GPL vmlinux 0x666dbb35 mmc_get_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x666df6e7 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669affa6 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0x66b017ac iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x66b894eb __devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66c387a2 serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x66d224fd nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d9ae66 sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x66ea3ae6 devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x66fa75cd usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x66faa426 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0x6705d69b iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x670ce365 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x6710c8cd usb_asmedia_modifyflowcontrol +EXPORT_SYMBOL_GPL vmlinux 0x6722d735 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x672f0d27 regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x673073de ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x6732bf50 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x67495850 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x67579542 misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x677328bf vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x677f6d00 dax_layout_busy_page_range +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x679eead7 icc_node_del +EXPORT_SYMBOL_GPL vmlinux 0x67a8c81c led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x67b608b1 pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0x67cbf81c devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x67d09881 pinconf_generic_parse_dt_config +EXPORT_SYMBOL_GPL vmlinux 0x67d31cd0 irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x67d48d8d cpu_remove_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67e34648 gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x67e34d64 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x67f1a6a9 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x67fb590b fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0x680eedcc of_hwspin_lock_get_id_byname +EXPORT_SYMBOL_GPL vmlinux 0x6821be13 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x682b25b5 debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x68460527 blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x68490b9e inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x684bef69 __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x6858d77e pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x685ef26e fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x685f6991 sysfs_remove_device_from_node +EXPORT_SYMBOL_GPL vmlinux 0x686e71d5 of_devfreq_cooling_register_power +EXPORT_SYMBOL_GPL vmlinux 0x68786f2e xive_native_configure_queue +EXPORT_SYMBOL_GPL vmlinux 0x6883adba genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x68ac5d6c device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x68c47b94 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x68c4fcfe pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x68c7e26d cpufreq_cpu_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x68d06ee5 security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x68d96349 devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x68ed69f2 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x68f659c1 devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x690227e6 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0x6909a38b opal_rtc_read +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x690f5928 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x6913865a trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6917ce46 __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x691a4d92 dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0x691cf82e iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x6928269b xive_native_disable_vp +EXPORT_SYMBOL_GPL vmlinux 0x692e34d3 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x69304b19 dev_pm_opp_put_regulators +EXPORT_SYMBOL_GPL vmlinux 0x69561780 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x6964d5e6 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x696f2b63 of_changeset_init +EXPORT_SYMBOL_GPL vmlinux 0x6974bbe8 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x6977368b tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x697cbbb4 threads_per_core +EXPORT_SYMBOL_GPL vmlinux 0x699286be of_changeset_action +EXPORT_SYMBOL_GPL vmlinux 0x69a54b4c xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0x69a97570 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x69aeddef atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x69c6ba4b thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69ca1d6d of_clk_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d1fb88 irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0x69d3cea3 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x69d82c3e iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x69e4b547 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x69e83605 mc146818_get_time +EXPORT_SYMBOL_GPL vmlinux 0x69ee2220 linear_range_get_selector_high +EXPORT_SYMBOL_GPL vmlinux 0x6a00b7c9 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x6a05b65b fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x6a1aa39b __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x6a1f65e8 vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x6a230385 dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0x6a3263fa cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x6a36ff74 __traceiter_devlink_hwmsg +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 0x6a51308b sdio_retune_release +EXPORT_SYMBOL_GPL vmlinux 0x6a5f1c3f ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x6a80c9a0 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a8fb24d devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x6a9cf140 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL vmlinux 0x6ab5fbf8 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x6ace490e devm_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0x6acf4e60 iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x6ae32b54 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x6af70ff5 udp_abort +EXPORT_SYMBOL_GPL vmlinux 0x6afc1391 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x6b198c77 led_colors +EXPORT_SYMBOL_GPL vmlinux 0x6b1ae319 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x6b211496 ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0x6b281ae4 gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b5b4da3 perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0x6b77340e mpc8xxx_spi_rx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x6b80d12b dev_pm_opp_add +EXPORT_SYMBOL_GPL vmlinux 0x6b81c38b power_supply_unreg_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6b92924f tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x6b94385d blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x6ba36c6a hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bce3092 fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6be9e144 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x6bea000c reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x6bf9c2e2 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x6c02be37 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x6c0d7b10 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x6c17c640 xhci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c205008 mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x6c25ae50 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6c29d6ea free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6c40708d vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c5e8a43 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x6c62f1cc posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0x6c7b435f mc146818_does_rtc_work +EXPORT_SYMBOL_GPL vmlinux 0x6c808c9a pinmux_generic_get_function_count +EXPORT_SYMBOL_GPL vmlinux 0x6c8a5cd1 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x6c915c07 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6caa7442 rio_map_outb_region +EXPORT_SYMBOL_GPL vmlinux 0x6cad59cb __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x6cc67c4e pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x6ce178b0 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x6cfd78be pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x6d05db72 sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d0ae550 pinctrl_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x6d12b4a4 genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0x6d12b7fd usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x6d14c6ee mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x6d14d8c4 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6d24b9ca platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d400906 serial8250_set_defaults +EXPORT_SYMBOL_GPL vmlinux 0x6d402a51 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6d42861d shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x6d58478f ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x6d598c9a pm_wakeup_dev_event +EXPORT_SYMBOL_GPL vmlinux 0x6d611d78 bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x6d6669fe tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x6d66a767 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6f0763 hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d725958 sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d8d503d cpu_latency_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x6d94ada7 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x6d9b0bf6 nvdimm_bus_check_dimm_count +EXPORT_SYMBOL_GPL vmlinux 0x6da5569d led_set_brightness +EXPORT_SYMBOL_GPL vmlinux 0x6da6ca2d __devm_clk_hw_register_gate +EXPORT_SYMBOL_GPL vmlinux 0x6db41704 pinmux_generic_remove_function +EXPORT_SYMBOL_GPL vmlinux 0x6db6c977 power_supply_external_power_changed +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dd22a47 set_thread_tidr +EXPORT_SYMBOL_GPL vmlinux 0x6dd2d3f8 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6e0960ce crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e0c4c7b rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e0f0704 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0x6e200a38 pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0x6e21f3eb device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6e30668f irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x6e331095 __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL vmlinux 0x6e4b37f1 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6e4c3c16 soc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6e59f821 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x6e698431 cpufreq_driver_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0x6e69fcd4 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x6e73c328 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x6e757896 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e891a08 pm_clk_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e927aa3 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x6e9bb7ee dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x6ea2ea70 dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ed25fc5 acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6eee661e crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x6eee7bac pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ef8d940 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x6f0088d9 xive_native_sync_source +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f1658b3 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f2dc390 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x6f447abb pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x6f6190fe input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0x6f6a0c57 blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f7abbbc tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f89aef9 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x6f9559a2 iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6f9ffc63 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x6fa8bf68 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x6fb53b99 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x6fc22103 register_cxl_calls +EXPORT_SYMBOL_GPL vmlinux 0x6fc6d094 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x6fc81a65 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fdb7d95 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0x6fe9524e gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6ff96f1e badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x6ffe8244 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x70070be4 dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x701609e6 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x7022f1b9 __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x7040fa13 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x704de312 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x704f24ae kvmppc_restore_tm_hv +EXPORT_SYMBOL_GPL vmlinux 0x706182d5 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x706420e0 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7069f913 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x707a35ac gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x7081971a pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x70843c2d of_reset_control_array_get +EXPORT_SYMBOL_GPL vmlinux 0x70853f51 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x708bcca5 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x70a8b0c8 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x70ac8fbc nvdimm_provider_data +EXPORT_SYMBOL_GPL vmlinux 0x70aeb441 mpic_subsys +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 0x70cf8a07 __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x70d8cb40 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x70db6bcc tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0x70e99f77 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x70eaa462 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x70eeaedf skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0x71087cfd of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71103c43 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x712029ff fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7126bac9 devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0x712c9c09 dev_pm_opp_is_turbo +EXPORT_SYMBOL_GPL vmlinux 0x714dbfbd to_nvdimm_bus_dev +EXPORT_SYMBOL_GPL vmlinux 0x71549330 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x715cc841 crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71652390 of_remove_property +EXPORT_SYMBOL_GPL vmlinux 0x71680c95 __clk_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x71724493 mctrl_gpio_enable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x717643af lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0x718a5444 serial8250_do_get_mctrl +EXPORT_SYMBOL_GPL vmlinux 0x7195940a mctrl_gpio_disable_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x719e17ff clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a5c0c5 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b3c584 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x71b61c9f store_vcpu_state +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71c059d8 __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0x71c4156a ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0x71cb961e swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x71dbf522 serial8250_update_uartclk +EXPORT_SYMBOL_GPL vmlinux 0x71e4f3c3 mbox_client_peek_data +EXPORT_SYMBOL_GPL vmlinux 0x71fd6612 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0x72064de3 virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0x7216a425 __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x72173d8b power_supply_put +EXPORT_SYMBOL_GPL vmlinux 0x72175ddb dev_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0x72269e6a ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0x722b95ee phy_exit +EXPORT_SYMBOL_GPL vmlinux 0x722b9b08 to_nvdimm +EXPORT_SYMBOL_GPL vmlinux 0x72336999 register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x7237e950 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x72485c7a tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x7254915f inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x7254ef5d serial8250_rpm_get +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x72732116 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x727ac692 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x7289ff20 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x7294e14d debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x7298e264 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x729c1df0 split_page +EXPORT_SYMBOL_GPL vmlinux 0x72a6059c pcibios_unmap_io_space +EXPORT_SYMBOL_GPL vmlinux 0x72a775de devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x72aafb52 is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0x72c6c0d6 add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0x72d267dc nvmem_del_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0x72e34b4f usb_control_msg_recv +EXPORT_SYMBOL_GPL vmlinux 0x72e544a1 pinctrl_enable +EXPORT_SYMBOL_GPL vmlinux 0x72e781a2 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0x72e8f6a6 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x72edf918 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x72f9691d regulator_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0x73157447 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x7317b44e balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x732ac5a5 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x7333ca8c phy_create +EXPORT_SYMBOL_GPL vmlinux 0x733a256a dev_pm_opp_get_power +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x735b8100 folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x7362023a regulator_set_load +EXPORT_SYMBOL_GPL vmlinux 0x73629ff7 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x736e39ad dev_pm_opp_find_bw_floor +EXPORT_SYMBOL_GPL vmlinux 0x737895e7 vas_init_rx_win_attr +EXPORT_SYMBOL_GPL vmlinux 0x737ff816 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x73919677 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a7e490 regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x73a8ada3 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73dad67d iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x73f1085d usb_phy_set_event +EXPORT_SYMBOL_GPL vmlinux 0x73f9ee8c vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x74050fdf iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0x740d040f rio_alloc_net +EXPORT_SYMBOL_GPL vmlinux 0x7413f5ce devm_request_free_mem_region +EXPORT_SYMBOL_GPL vmlinux 0x74199b26 opal_leds_set_ind +EXPORT_SYMBOL_GPL vmlinux 0x741b4eaf edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x74375df3 auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x7459cba7 sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x745e30eb xhci_ext_cap_init +EXPORT_SYMBOL_GPL vmlinux 0x74846030 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x74872248 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x748a6766 spi_split_transfers_maxsize +EXPORT_SYMBOL_GPL vmlinux 0x74ab91ad iommu_tce_xchg_no_kill +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74b633a5 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74be2917 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x74c16cee virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x74c2dc55 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74c30b2a rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x74c7bffa stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x74cc986f ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x74d78aff usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x74eb183a dev_pm_domain_attach_by_name +EXPORT_SYMBOL_GPL vmlinux 0x74fcb18a __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x7503b023 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x75099194 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0x750fe203 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x751666d2 dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x75199703 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x75215926 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7524307b __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x753278ff crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7535ae04 mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x753ce0ac tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x754ba823 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x75543928 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x7569cec8 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x756b4316 xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0x756d4a57 dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0x75765bfc kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x75795c84 pm_clk_remove +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x757cfe35 xive_native_get_vp_info +EXPORT_SYMBOL_GPL vmlinux 0x759139cb of_pci_check_probe_only +EXPORT_SYMBOL_GPL vmlinux 0x759bc98e pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x75acc167 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x75ada9c2 pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x75ae743f devm_mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x75d3b6b4 sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0x75d968d4 kvmppc_inject_interrupt_hv +EXPORT_SYMBOL_GPL vmlinux 0x75dd4ebe of_overlay_remove +EXPORT_SYMBOL_GPL vmlinux 0x75df59f6 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x75e137a6 gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75f13021 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x75f1c9eb __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0x760cccac ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x76199cfe securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x763376bf usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x76363956 devm_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x76422227 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x764ffefa page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x7650f133 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7667cb70 generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0x766e613c irq_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x76715ab0 elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768f2364 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x76966906 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0x76988c14 nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x76990dad wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x76a6dfdc dw8250_do_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x76cd9e38 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x76d9b876 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0x76ec8085 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f2abe0 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x76f81b01 vfio_file_set_kvm +EXPORT_SYMBOL_GPL vmlinux 0x7716404b sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x771a431f shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x771bff56 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x77222306 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7724cd7f fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x772b1fd9 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x772bd722 dbs_update +EXPORT_SYMBOL_GPL vmlinux 0x77313dc6 regulator_is_equal +EXPORT_SYMBOL_GPL vmlinux 0x773b881d ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x773c4da0 fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x773e2387 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x774f16ef __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7757b51a clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7758be05 srp_release_transport +EXPORT_SYMBOL_GPL vmlinux 0x7762749b pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x7767242d crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x7790f5fa pinctrl_count_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x77ae495d usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0x77ce0fe5 scsi_device_from_queue +EXPORT_SYMBOL_GPL vmlinux 0x77dc7488 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x77e42f2e netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77eb8c3b xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x7801ef8a rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x78130acb __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x782448d1 vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0x782c2ee5 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x783a7f12 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x785af590 bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0x785b9b00 gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x786c0579 __devm_reset_control_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x78887bca crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x788ec5ea irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x78b1babc device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x78c20f0e tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x78c50f89 to_nd_region +EXPORT_SYMBOL_GPL vmlinux 0x78cdec09 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x78cfc59a of_thermal_get_ntrips +EXPORT_SYMBOL_GPL vmlinux 0x78ddd98d gpiochip_add_pingroup_range +EXPORT_SYMBOL_GPL vmlinux 0x78e39335 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x78e58a4e xive_native_has_single_escalation +EXPORT_SYMBOL_GPL vmlinux 0x78f38201 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x78f61462 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x79151d89 kvmppc_do_h_remove +EXPORT_SYMBOL_GPL vmlinux 0x7918d817 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x793e7b5b ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x793f98bc __tracepoint_rpm_return_int +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 0x795d54e4 devm_hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x79629e1b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0x7966ec31 simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x7968abf9 spi_mem_get_name +EXPORT_SYMBOL_GPL vmlinux 0x798f816c dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x79972045 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x79a6581e rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x79acb263 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x79c5e647 of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0x79c702b2 find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x79d87c70 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79e0ba6d lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x79e447ce usb_phy_set_charger_current +EXPORT_SYMBOL_GPL vmlinux 0x79e4f351 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x79f30160 of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x79f697e4 lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x79f6dbdd usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x7a0b080a gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x7a1a30fb nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7a236f03 nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7a2a0bf0 vas_rx_win_open +EXPORT_SYMBOL_GPL vmlinux 0x7a30f55e skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7a33f814 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x7a43ea61 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0x7a4a27ec sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x7a4f87df devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x7a5bec71 devm_pinctrl_register_and_init +EXPORT_SYMBOL_GPL vmlinux 0x7a5d6629 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x7a68e12c dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x7a73e605 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a86ae65 led_sysfs_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a98f4b4 copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x7a9e4c23 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x7abf441b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x7ac1b2e7 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7ac2d3f7 spi_mem_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad1ded1 pinctrl_register_mappings +EXPORT_SYMBOL_GPL vmlinux 0x7afcb7db __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x7b05e324 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x7b178afe unlock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0x7b19789a ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x7b1df89f pci_address_to_pio +EXPORT_SYMBOL_GPL vmlinux 0x7b1fccef spi_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x7b275cf9 user_read +EXPORT_SYMBOL_GPL vmlinux 0x7b3005b4 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x7b3ddcbb __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0x7b4ff8f4 badrange_forget +EXPORT_SYMBOL_GPL vmlinux 0x7b50d677 gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b5eec97 devm_irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x7b655023 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x7b6e00a9 dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x7b783824 ppc_breakpoint_available +EXPORT_SYMBOL_GPL vmlinux 0x7b7e6d7e usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x7b96a948 devm_thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7b9da644 gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bcde953 devm_clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x7bd24f4a crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0x7bd65586 __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x7bdd4c6d __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x7bdd83d3 pinconf_generic_dt_subnode_to_map +EXPORT_SYMBOL_GPL vmlinux 0x7bf3d123 gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x7bffac0e spi_controller_dma_map_mem_op_data +EXPORT_SYMBOL_GPL vmlinux 0x7c105352 srp_rport_add +EXPORT_SYMBOL_GPL vmlinux 0x7c16a2aa ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c33446a mmc_pwrseq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c37bc89 pseries_ioei_notifier_list +EXPORT_SYMBOL_GPL vmlinux 0x7c380d35 of_genpd_add_provider_onecell +EXPORT_SYMBOL_GPL vmlinux 0x7c3d8a4b icc_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0x7c4131e6 msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0x7c48c715 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x7c73a9e0 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x7c830dd3 __traceiter_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x7c915ccc devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0x7c99dcec device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x7c9a7371 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7c9d3425 pm_wakeup_ws_event +EXPORT_SYMBOL_GPL vmlinux 0x7c9f7546 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ca64a0b __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0x7cb07dd1 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cdb1801 phy_pm_runtime_get_sync +EXPORT_SYMBOL_GPL vmlinux 0x7cdca86c mbox_client_txdone +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d0069d8 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x7d00c65b nd_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x7d025236 dmaengine_desc_get_metadata_ptr +EXPORT_SYMBOL_GPL vmlinux 0x7d0a212a debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0x7d118cb5 pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x7d1bb1d4 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x7d297bb9 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x7d2afaf7 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7d3fc3ec serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7d4a6fb4 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x7d4e8f9d __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d5ddf3a gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0x7d5e736b devres_release +EXPORT_SYMBOL_GPL vmlinux 0x7d5f3f92 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0x7d6cc11f fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x7d6fbcb4 kvmppc_hpte_hv_fault +EXPORT_SYMBOL_GPL vmlinux 0x7d9a9ccd clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x7da2f7f8 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x7da314df devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7da5d6c3 ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x7db6e1cc ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x7dc532c6 devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x7dd29250 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ddd5fd4 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x7dddceed thermal_zone_of_sensor_register +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7de6cc23 io_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7df872ab regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x7e07f6c7 reserve_pmc_hardware +EXPORT_SYMBOL_GPL vmlinux 0x7e16db09 em_dev_unregister_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0x7e17dc12 of_css +EXPORT_SYMBOL_GPL vmlinux 0x7e1b367e disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x7e1d2692 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x7e1e1bd3 iommu_tce_check_gpa +EXPORT_SYMBOL_GPL vmlinux 0x7e2231fe mbox_free_channel +EXPORT_SYMBOL_GPL vmlinux 0x7e224d17 nvdimm_bus_add_badrange +EXPORT_SYMBOL_GPL vmlinux 0x7e345a71 perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e3cfbc0 tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7e482ec9 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x7e5db80b pstore_name_to_type +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6d0e8b net_selftest +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e8535f9 devm_pm_opp_register_set_opp_helper +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7ea7b15c bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x7eb1795e __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x7eb26c6e filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7eea6b8b pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0x7eebdf9b bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f02cb40 of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x7f28e2ce regulator_bulk_set_supply_names +EXPORT_SYMBOL_GPL vmlinux 0x7f332f02 regmap_mmio_detach_clk +EXPORT_SYMBOL_GPL vmlinux 0x7f374c03 debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x7f3bd9d3 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x7f3fa06c kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0x7f524652 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x7f68560b phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0x7f6c7950 dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f937704 clk_hw_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x7f93b0f7 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x7faed271 dma_map_sgtable +EXPORT_SYMBOL_GPL vmlinux 0x7fafdec9 clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x7fe1189a irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x7fe7e50f pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x7fec61c3 mmput +EXPORT_SYMBOL_GPL vmlinux 0x8013dc9f vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL vmlinux 0x8040c2d2 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0x80434421 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x805f6ee2 regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x806b33d9 samsung_sdi_battery_get_info +EXPORT_SYMBOL_GPL vmlinux 0x8074c83d xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x80762b9a ext_pi_type1_crc64 +EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x80888c43 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8091299f thermal_zone_device_disable +EXPORT_SYMBOL_GPL vmlinux 0x80919aff __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x80994f69 dev_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0x809fd56f phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0x80b6a62a devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x80b90014 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x80badff4 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80c28513 uart_get_rs485_mode +EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80d165fa ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x80d4808d devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80d729db nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x80e2492f clk_register_mux_table +EXPORT_SYMBOL_GPL vmlinux 0x80e88d1c of_map_id +EXPORT_SYMBOL_GPL vmlinux 0x80efd908 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x80f7a9c2 devm_power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x81117221 do_h_rpt_invalidate_prt +EXPORT_SYMBOL_GPL vmlinux 0x8117fc65 dev_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x81182c28 sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8123a156 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x8133f294 devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0x815588a6 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x815ec5fb umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x81668909 regulator_set_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0x81674f78 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x816a41ca cpufreq_update_limits +EXPORT_SYMBOL_GPL vmlinux 0x816ede57 vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x81875a1a clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x8189abe0 io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x8189eb9e rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x818c056d iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0x81a27955 clk_hw_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x81b72c69 devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x81c14ff3 devm_pm_opp_attach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x81d192cc fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x81dfb41b sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81ebcc50 edac_device_add_device +EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x82194049 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x821f17ba evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x82226c53 pinctrl_unregister_mappings +EXPORT_SYMBOL_GPL vmlinux 0x8249cf5c devm_clk_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x825d69a5 devm_clk_hw_register_fixed_factor_index +EXPORT_SYMBOL_GPL vmlinux 0x8265c0e0 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x827530f1 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x827c9578 ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x8287815a tpm_tis_remove +EXPORT_SYMBOL_GPL vmlinux 0x82a80545 __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x82a8ba73 regulator_set_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0x82b5eee3 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x82bbf30b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x82c8229e fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82ff4b95 clk_hw_unregister_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0x830e8e17 rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x8312450b usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x83162179 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x8323159f housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0x832431a4 fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x832648d6 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x833b5211 mce_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8349a895 nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0x835725ca devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0x8360b96d inet6_compat_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x836d61d0 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x83743837 hash__has_transparent_hugepage +EXPORT_SYMBOL_GPL vmlinux 0x8375d954 fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x837eb2be crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0x837fa268 devm_thermal_of_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x83996725 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x839d20ff devm_rtc_nvmem_register +EXPORT_SYMBOL_GPL vmlinux 0x83ac1986 mpc8xxx_spi_tx_buf_u8 +EXPORT_SYMBOL_GPL vmlinux 0x83b40687 gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0x83b521e4 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x83b6b3f1 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x840532e1 mctrl_gpio_init_noauto +EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x841d3240 crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x842173fe pcibios_map_io_space +EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x84468c01 sk_msg_recvmsg +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 0x84810761 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x84a8d0eb of_changeset_revert +EXPORT_SYMBOL_GPL vmlinux 0x84ab530c ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84b4e94c dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x84c4c29b scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x84c68c25 dev_pm_opp_put_prop_name +EXPORT_SYMBOL_GPL vmlinux 0x84d92ed3 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x84e2340c tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x84e35f9f validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x84ea7bb7 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x84ef27f5 synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x84f436d5 phy_set_media +EXPORT_SYMBOL_GPL vmlinux 0x84f64824 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8506baa8 clk_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0x850bb6db devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x850e2135 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x851bdb03 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x851e6003 usb_phy_roothub_calibrate +EXPORT_SYMBOL_GPL vmlinux 0x851fe124 __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x853c9c7a scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x85484fe8 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x85540ebc nvmem_cell_put +EXPORT_SYMBOL_GPL vmlinux 0x8563e0df ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x8571402a fsl8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x8578dfa2 xhci_check_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0x85875793 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0x8598dff6 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x85c560ca blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0x85cdc67d proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0x85d55de9 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x85faa5be mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x85feb44d fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x8621666d devm_nvdimm_memremap +EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x862b91eb dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x862ba4b6 pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x862bb17b linear_range_values_in_range_array +EXPORT_SYMBOL_GPL vmlinux 0x862efff2 devm_devfreq_event_add_edev +EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x8677245d unregister_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868887a0 __usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8694b097 gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x869881fa handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x869a0d6a kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0x869cca35 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x86a64fdb rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x86abc78a trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x86b427ce clkdev_create +EXPORT_SYMBOL_GPL vmlinux 0x86c44844 skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x86c6c0cc devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x86dda6ef rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x86e62a7b posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x86f2d1c6 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f85114 net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x86ff0d9e device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x86ff2293 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x87122c5c genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x8712f90e crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0x871e1a20 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x875279ac bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0x87559a14 pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x87597d05 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0x875ab901 bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x875d3cba ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x8763da1b blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x876f16cf inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8778d1d0 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x8782def9 __devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x87a6ee6f mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x87aaaca4 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x87ac7411 __tracepoint_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x87bcb9e6 folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x87c07206 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x87c17e55 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x87de9226 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x87e21ad7 crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x87e8da01 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x87f3aa32 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x87fdb5eb stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x880d6d60 devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x880e865d i2c_parse_fw_timings +EXPORT_SYMBOL_GPL vmlinux 0x8813063e led_blink_set_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x8825c5af __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x8826ed85 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x88316a04 vas_register_api_pseries +EXPORT_SYMBOL_GPL vmlinux 0x88476f9f devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x8872e441 dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0x88758067 usb_hub_release_port +EXPORT_SYMBOL_GPL vmlinux 0x888252cc nvdimm_clear_poison +EXPORT_SYMBOL_GPL vmlinux 0x888c5be5 irq_bypass_register_consumer +EXPORT_SYMBOL_GPL vmlinux 0x8893e6b0 __clk_hw_register_divider +EXPORT_SYMBOL_GPL vmlinux 0x8896df7d mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x8899080a of_pci_get_slot_power_limit +EXPORT_SYMBOL_GPL vmlinux 0x88a8fc13 sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x88bbd4c4 spi_mem_adjust_op_size +EXPORT_SYMBOL_GPL vmlinux 0x88da1e50 platform_set +EXPORT_SYMBOL_GPL vmlinux 0x88e13b12 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x88e45c73 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x88e7f954 crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0x88effcd7 pm_clk_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x88f6dbcc ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x8900cf84 icc_get +EXPORT_SYMBOL_GPL vmlinux 0x890a79c1 spi_mem_dirmap_read +EXPORT_SYMBOL_GPL vmlinux 0x890ce9b0 scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x890f4f97 __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x892a3397 __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x894cab35 regulator_suspend_enable +EXPORT_SYMBOL_GPL vmlinux 0x8950198e rio_mport_class +EXPORT_SYMBOL_GPL vmlinux 0x895182b9 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x8954dc8e __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x895921f4 devm_hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0x89600fb9 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x89675101 alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0x896b0c9b pinctrl_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0x896ebb30 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x897b2190 _copy_mc_to_iter +EXPORT_SYMBOL_GPL vmlinux 0x89ae7aa0 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89c270d4 pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x89c429e4 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x89c828be crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x89cdcd29 dev_pm_opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x89ed73f1 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x8a08b01d subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8a19a7e9 pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8a342141 switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x8a3f84ba linear_range_get_selector_low +EXPORT_SYMBOL_GPL vmlinux 0x8a3f9a25 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8a44999b devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x8a46cb6c mc146818_avoid_UIP +EXPORT_SYMBOL_GPL vmlinux 0x8a554a36 mpc8xxx_spi_strmode +EXPORT_SYMBOL_GPL vmlinux 0x8a57c08c regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8a5bd877 of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x8a5d4681 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x8a5eab96 crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a6a5345 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x8a6e50aa pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a6fd013 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x8a74cd5f ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x8a81bc5d copro_flush_all_slbs +EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x8a84c59c __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0x8a8e77e3 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x8a9c4fb4 wwan_port_rx +EXPORT_SYMBOL_GPL vmlinux 0x8a9dbcad opal_message_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x8aa4863a fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x8aac1461 register_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0x8aac81b2 pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0x8ab6424c vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac18f79 devm_phy_get +EXPORT_SYMBOL_GPL vmlinux 0x8ac741a4 of_property_read_u64_index +EXPORT_SYMBOL_GPL vmlinux 0x8ac9e478 of_clk_add_hw_provider +EXPORT_SYMBOL_GPL vmlinux 0x8ad37e8c blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x8af2061d __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x8b149c36 clk_is_match +EXPORT_SYMBOL_GPL vmlinux 0x8b28395f register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x8b2ec934 skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x8b31083a max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x8b3df046 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x8b4100aa rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0x8b4761cf dma_get_any_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x8b487f00 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x8b4dc87e irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x8b57fd43 divider_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0x8b591871 __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x8b64adcc crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x8b6af1d3 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0x8b6c761a __xive_enabled +EXPORT_SYMBOL_GPL vmlinux 0x8b7a698b __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8b7c02a7 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x8b9644c7 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x8bb0144e device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x8bbabf93 fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0x8bbdb4fa set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x8bd54c1b sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x8bf212f4 dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x8bf61dac of_clk_parent_fill +EXPORT_SYMBOL_GPL vmlinux 0x8bfc4e52 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x8bfd4e79 mpc8xxx_spi_tx_buf_u32 +EXPORT_SYMBOL_GPL vmlinux 0x8c0174c4 devm_fwnode_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x8c0215f2 pm_system_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x8c168ba7 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x8c743fb6 reset_control_status +EXPORT_SYMBOL_GPL vmlinux 0x8c7e7f3f platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8c83ecb0 of_property_read_string_helper +EXPORT_SYMBOL_GPL vmlinux 0x8c89b316 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x8c89e3b8 usb_phy_roothub_power_off +EXPORT_SYMBOL_GPL vmlinux 0x8c920a79 scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x8c943de2 usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x8caef23d ata_qc_get_active +EXPORT_SYMBOL_GPL vmlinux 0x8cb5c7d0 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0x8cc1360f phy_set_mode_ext +EXPORT_SYMBOL_GPL vmlinux 0x8cc57101 regulator_get_error_flags +EXPORT_SYMBOL_GPL vmlinux 0x8ccabc2c edac_pci_del_device +EXPORT_SYMBOL_GPL vmlinux 0x8cce6d55 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x8cd4305f tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x8cd94f86 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x8cd9be4a subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x8cdb8ff8 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x8ce0326a phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x8ce2d446 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x8ce8f029 dev_pm_enable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0x8cf52521 dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x8d0abf3a __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x8d368bdd platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8d3738c5 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x8d5bb1f1 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x8d61bc88 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x8d6dc201 ppc64_caches +EXPORT_SYMBOL_GPL vmlinux 0x8d7e3373 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x8d8560a8 vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8d908ebf power_supply_get_maintenance_charging_setting +EXPORT_SYMBOL_GPL vmlinux 0x8d997c2f pinconf_generic_dt_node_to_map +EXPORT_SYMBOL_GPL vmlinux 0x8dafdded lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x8dbf5a20 kvmppc_hv_entry_trampoline +EXPORT_SYMBOL_GPL vmlinux 0x8dcaacde __of_phy_provider_register +EXPORT_SYMBOL_GPL vmlinux 0x8dcb5a22 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x8dce284b xas_split +EXPORT_SYMBOL_GPL vmlinux 0x8dd218b0 icc_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0x8dd8a666 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x8dea948e __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x8df51555 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x8df6d7fd gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8dfb5fbb umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x8dfc9dd9 devm_devfreq_event_remove_edev +EXPORT_SYMBOL_GPL vmlinux 0x8dfcea1c sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x8e044373 kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x8e15324a phy_pm_runtime_put +EXPORT_SYMBOL_GPL vmlinux 0x8e3d4be2 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0x8e3e2091 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x8e44823a sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x8e5e87d2 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e773e3e iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x8e84e9e9 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8e8a3ca7 gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x8e92f7c4 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x8ea053df devm_clk_bulk_get_all +EXPORT_SYMBOL_GPL vmlinux 0x8ead5e62 serial8250_do_set_divisor +EXPORT_SYMBOL_GPL vmlinux 0x8ead800c user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x8ead9e4e iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0x8eb8e712 irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0x8ebcf357 crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0x8ecb3ee8 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x8ed4e6fb blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x8ee9ab31 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x8eec19bd __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x8f0ad093 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x8f1219d4 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x8f1c3da6 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x8f269d1e sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x8f275de8 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x8f33b068 tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0x8f61294b put_pid +EXPORT_SYMBOL_GPL vmlinux 0x8f6220df pcibios_free_controller_deferred +EXPORT_SYMBOL_GPL vmlinux 0x8f6920fd devm_led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8f6a86c6 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f783150 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x8f786bee fs_umode_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0x8f7cae14 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x8f7ecbe3 regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0x8f8c4e46 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x8f9a8f48 pwm_capture +EXPORT_SYMBOL_GPL vmlinux 0x8fb04d68 pnv_ocxl_spa_release +EXPORT_SYMBOL_GPL vmlinux 0x8fc12788 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x8fc9e641 usb_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x8fd2e649 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8fdae71c irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x8fe5c04f __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x8fec14cb platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x8ff4a682 dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ff64ca9 crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x8ff7ea2f devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x8ffbcf7e scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x8ffe792f tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x9019b6c0 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x9057b5d4 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x905dd614 rio_request_mport_dma +EXPORT_SYMBOL_GPL vmlinux 0x90626ef1 rio_dma_prep_xfer +EXPORT_SYMBOL_GPL vmlinux 0x90688bcd devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x9075b4c8 __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x909c5c58 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90a429e6 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x90a869b7 perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0x90ad66b1 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0x90b65b81 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x90b757da dev_pm_genpd_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x90c911aa kvmppc_set_msr_hv +EXPORT_SYMBOL_GPL vmlinux 0x90cd6c17 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x90d937b4 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x90e452d7 genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x90f00fcf devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x910fd0ca dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x91129f65 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x911d18ae dev_pm_opp_of_cpumask_add_table +EXPORT_SYMBOL_GPL vmlinux 0x91248b55 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x913af88d pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x9154b637 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x91575073 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x915d6335 xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x918b864a devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x918fe8db device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x91920ce8 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x91a341ab powercap_register_control_type +EXPORT_SYMBOL_GPL vmlinux 0x91ac8a44 em_pd_get +EXPORT_SYMBOL_GPL vmlinux 0x91acc0bf vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x91b0d483 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x91b407d5 flush_vsx_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x91bc82d6 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91cdfafd irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0x91d40441 xas_store +EXPORT_SYMBOL_GPL vmlinux 0x91d926af led_blink_set +EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x91ed5796 ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x920f3e2f power_supply_put_battery_info +EXPORT_SYMBOL_GPL vmlinux 0x920f67f0 flush_altivec_to_thread +EXPORT_SYMBOL_GPL vmlinux 0x9240ac8a rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x9242ee3e sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x92463d9c devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x925009cc vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0x9255fc2b regulator_set_soft_start_regmap +EXPORT_SYMBOL_GPL vmlinux 0x925fd21b regulator_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0x926bd30a of_usb_update_otg_caps +EXPORT_SYMBOL_GPL vmlinux 0x92717222 vas_tx_win_open +EXPORT_SYMBOL_GPL vmlinux 0x92896159 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x92936176 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL vmlinux 0x92a13e8e __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x92aa373b idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0x92b3ec72 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x92b91d60 dev_pm_opp_sync_regulators +EXPORT_SYMBOL_GPL vmlinux 0x92bd21ae __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92d72a44 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e36a6f fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x92e374e3 serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x92e8e9ab fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x92f0aa28 opal_tpo_write +EXPORT_SYMBOL_GPL vmlinux 0x930fe70e nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x93109f32 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0x93236bcf call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x9327c693 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x932a8258 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x932c8d7a linear_range_get_value_array +EXPORT_SYMBOL_GPL vmlinux 0x934a0aee kvmppc_subcore_exit_guest +EXPORT_SYMBOL_GPL vmlinux 0x935915dc blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x935aee16 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x935af894 perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x935e919e rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x93864c80 pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x938ddadf sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x93925007 msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x939c5610 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL vmlinux 0x939d4964 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x93a5ace8 fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0x93b32214 genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0x93c7edeb usb_find_common_endpoints +EXPORT_SYMBOL_GPL vmlinux 0x93ccce8c platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0x93e6bedb ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x941d903f devm_reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x941eef27 clk_hw_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94252065 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x9425bb34 nvmem_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x942940c5 cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x94294e5e trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x942a69f8 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x942f9f42 nvmem_device_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x9432a298 extcon_find_edev_by_node +EXPORT_SYMBOL_GPL vmlinux 0x94351bf7 of_device_uevent_modalias +EXPORT_SYMBOL_GPL vmlinux 0x9435e882 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0x9436e405 memory_group_register_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x943cc26e sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x943d8793 power_supply_set_property +EXPORT_SYMBOL_GPL vmlinux 0x9446a869 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x945a37c0 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x9465b18f led_trigger_read +EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0028 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x9470053f ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949c0472 __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a1d5d8 spi_mem_default_supports_op +EXPORT_SYMBOL_GPL vmlinux 0x94ba2592 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x94d139fe crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x94d65860 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x94dfecf6 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x94e0dd1f usb_amd_pt_check_port +EXPORT_SYMBOL_GPL vmlinux 0x94e2fc4b power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x94efa8c3 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x95056ccd folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0x95079615 devfreq_event_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x9529d00d pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x954788d0 devm_memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x954a04d7 xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x9554556f generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0x95580c25 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x955a59c2 of_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0x955b027b pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x956cf4ae alarmtimer_get_rtcdev +EXPORT_SYMBOL_GPL vmlinux 0x957119dd __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x9571b9b0 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x957bae5f dw8250_setup_port +EXPORT_SYMBOL_GPL vmlinux 0x95829f7a __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x959b3500 kvmppc_add_revmap_chain +EXPORT_SYMBOL_GPL vmlinux 0x95a7c7e9 devm_pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0x95b6fec4 xive_native_free_vp_block +EXPORT_SYMBOL_GPL vmlinux 0x95b98e2d devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95bcf404 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x95cbffdb usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x95ce651b vfio_pci_core_close_device +EXPORT_SYMBOL_GPL vmlinux 0x95e102ab tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x95e93a04 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x95edee76 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x960856db ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x96177c19 phy_get +EXPORT_SYMBOL_GPL vmlinux 0x9617ad1a ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x9648ca86 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x96496cc3 irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x964b5fcd led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965590b2 dev_pm_opp_detach_genpd +EXPORT_SYMBOL_GPL vmlinux 0x9665f65b tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x96697087 ata_scsi_dma_need_drain +EXPORT_SYMBOL_GPL vmlinux 0x966b7c0b l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0x9671fdd2 phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0x9672d693 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x967c0b30 analyse_instr +EXPORT_SYMBOL_GPL vmlinux 0x9686da34 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x968c906a devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0x968d7fe6 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x96b751e9 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96bf3e0a rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x96c0680a skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x96ca63f5 __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x96cc48b9 xive_native_default_eq_shift +EXPORT_SYMBOL_GPL vmlinux 0x96dab8de simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x96e838ac cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0x96eb078b tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x96f9a01b __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x96f9d3c3 xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0x97002044 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x97053efa smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x9725d14c edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL vmlinux 0x972b102f ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x97329730 virtio_device_restore +EXPORT_SYMBOL_GPL vmlinux 0x973c6eb0 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x97433d92 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x97447157 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x974832b5 phy_led_trigger_change_speed +EXPORT_SYMBOL_GPL vmlinux 0x974aaef8 __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x97669b62 wakeup_sources_walk_start +EXPORT_SYMBOL_GPL vmlinux 0x976c1b10 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x9774fa43 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x9788b693 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0x9796cb04 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x979a770a debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0x97a623b6 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x97af4676 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x97af88ea usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x97c50fe5 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x97c7c5a8 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x97d54160 pm_clk_suspend +EXPORT_SYMBOL_GPL vmlinux 0x97d9d172 dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e49e7f i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x97e8a577 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0x97ee5d5e wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x982067be sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x98322d4c of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9843f501 __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0x9847c1e4 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x98506a34 bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x98517425 kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x985453e1 lease_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98549d41 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9855052e noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x9855a697 opal_xscom_read +EXPORT_SYMBOL_GPL vmlinux 0x9857dcf8 mmc_crypto_prepare_req +EXPORT_SYMBOL_GPL vmlinux 0x9858eba0 mbox_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x9875422e kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x98835bbf bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x98944ce6 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x98a65602 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x98b142fa blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x98c59274 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x98cfb41e rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x98f6cf0c transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x9917224b sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0x9926fb29 of_nvmem_cell_get +EXPORT_SYMBOL_GPL vmlinux 0x992c4b40 blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x9932e4a0 dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x99408264 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x99416efe get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9952b912 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9967fbfb is_xive_irq +EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x99729def pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x997cc6a7 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x997e10d9 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x9986cabc hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x998d79d6 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0x99cc1b82 alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x99d70050 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x99dcfc26 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x99dd730c page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99e1ea3b gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x99f018c4 nvmem_cell_read +EXPORT_SYMBOL_GPL vmlinux 0x99f15c0b percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x9a058fef security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9a0dca74 fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a234791 of_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x9a24014f ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x9a310a66 __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9a3660ab wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9a3ac63b regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x9a41253d pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9a86368b udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x9a96d012 raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0x9aa70193 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac19a53 icc_sync_state +EXPORT_SYMBOL_GPL vmlinux 0x9ac9e158 of_clk_hw_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x9ad58ad9 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x9ad70631 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x9adf08c3 mmu_linear_psize +EXPORT_SYMBOL_GPL vmlinux 0x9ae12e17 __tracepoint_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af49514 icc_bulk_set_bw +EXPORT_SYMBOL_GPL vmlinux 0x9b094d29 ohci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0x9b130ca5 h_query_vas_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x9b147bc9 save_p9_host_os_sprs +EXPORT_SYMBOL_GPL vmlinux 0x9b187396 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x9b1fd611 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9b3fe15f ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x9b41312f nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0x9b4b0f8b cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x9b522982 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x9b555c8c pm_suspend_default_s2idle +EXPORT_SYMBOL_GPL vmlinux 0x9b614d49 mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b6d43f3 devm_hte_request_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b70c6ff tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x9b7cab6d usb_get_role_switch_default_mode +EXPORT_SYMBOL_GPL vmlinux 0x9b82dc91 dma_async_device_channel_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b8f91d5 phy_package_leave +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 0x9bb4f99d dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x9bc5eabb lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x9bde79bc xive_tima_os +EXPORT_SYMBOL_GPL vmlinux 0x9be30d27 mhp_get_pluggable_range +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf14fa4 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0x9bf60557 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0x9bff99a3 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x9c05ee9e bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0x9c13a9cf dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x9c2c9d35 perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x9c2e0c25 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x9c388230 fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0x9c3cc1e8 of_phandle_iterator_next +EXPORT_SYMBOL_GPL vmlinux 0x9c42ae7a devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x9c504b31 devm_hwspin_lock_request +EXPORT_SYMBOL_GPL vmlinux 0x9c57be41 dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9c60c64f get_dev_pagemap +EXPORT_SYMBOL_GPL vmlinux 0x9c67b1ef devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x9c69d196 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x9c6a7657 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x9c71ae2d nvdimm_volatile_region_create +EXPORT_SYMBOL_GPL vmlinux 0x9c803020 usb_phy_roothub_power_on +EXPORT_SYMBOL_GPL vmlinux 0x9c8992f0 of_dma_configure_id +EXPORT_SYMBOL_GPL vmlinux 0x9c8e8aa0 rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x9ca215de phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ccf5937 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x9cd3f548 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x9cf37c44 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9d11df6b fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x9d164fdc tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x9d177915 __traceiter_ata_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9d28f60a scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x9d2f49ef __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x9d4334e7 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x9d56c26b compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9d5b69f7 bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0x9d878810 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x9d8a4c64 devm_pm_opp_of_add_table +EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x9d8bc18f blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x9d8df0c7 dev_pm_opp_of_register_em +EXPORT_SYMBOL_GPL vmlinux 0x9d9149d6 __devm_clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0x9d97a92b thermal_zone_get_slope +EXPORT_SYMBOL_GPL vmlinux 0x9dc64ffe pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x9dd41c23 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9ddaae82 watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x9de1cccb fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x9de31b2a phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x9de4e1c1 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9de6b9a3 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x9de6d8db devm_pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9de88bc8 __SCK__tp_func_ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x9df03e09 devm_phy_optional_get +EXPORT_SYMBOL_GPL vmlinux 0x9df406ce __clk_get_hw +EXPORT_SYMBOL_GPL vmlinux 0x9dff681e __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x9e097d0b blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9e0f97fe exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x9e1ca881 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x9e237ba5 of_property_read_variable_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x9e29ebac fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0x9e31681a input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9e33319f devm_pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e4851de firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x9e61c65c crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x9e6d97d4 switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x9e6e56a2 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x9e9b4ab7 bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x9e9b913d __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x9ebdc6fd of_platform_depopulate +EXPORT_SYMBOL_GPL vmlinux 0x9ec1f364 kvmppc_subcore_enter_guest +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9ef64794 devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x9efac44e spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9f02f664 dev_pm_domain_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0x9f0ab315 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x9f4c3cf7 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9f4c4aa0 spi_delay_to_ns +EXPORT_SYMBOL_GPL vmlinux 0x9f4fb360 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x9f56c4b9 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x9f5c6dc2 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x9f650786 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x9f7449df pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0x9f8869f5 ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x9f898963 dev_pm_opp_set_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0x9f9c7781 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x9fa36c91 pm_genpd_remove_subdomain +EXPORT_SYMBOL_GPL vmlinux 0x9fabf413 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x9fb0bcba nvmem_cell_read_u8 +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fcfa6b4 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x9fdd998e trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x9fe899b7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fefc3e6 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0xa006c6f9 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xa01a8d9b nd_cmd_bus_desc +EXPORT_SYMBOL_GPL vmlinux 0xa02c5cfd spi_mem_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa03b8a7a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xa04ec79b udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xa0597eaa usb_phy_set_charger_state +EXPORT_SYMBOL_GPL vmlinux 0xa065a54b rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xa0711d46 dev_pm_opp_get_max_volt_latency +EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0xa08337ed btree_init +EXPORT_SYMBOL_GPL vmlinux 0xa0be2987 ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xa0c97597 phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xa0cd3cbc device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0xa0e73ddf gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0xa0e94a6e cpufreq_freq_transition_begin +EXPORT_SYMBOL_GPL vmlinux 0xa0ea89b2 iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0xa0f4b4d7 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0xa0fc9d43 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xa1123a71 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa1136616 eeh_pe_mark_isolated +EXPORT_SYMBOL_GPL vmlinux 0xa114ed20 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xa118d32a irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xa119f81b md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa129f28e driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0xa12de23d adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xa13b2962 pnv_ocxl_tlb_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xa13ff687 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa144708f fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0xa16373f4 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa167def9 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xa16d719c pci_ecam_free +EXPORT_SYMBOL_GPL vmlinux 0xa16f7e05 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xa1741527 skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa184d5f2 mmu_vmalloc_psize +EXPORT_SYMBOL_GPL vmlinux 0xa18b485c devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0xa19b2007 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xa1ad5910 clk_mux_val_to_index +EXPORT_SYMBOL_GPL vmlinux 0xa1bbb720 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xa1c3bf82 tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xa1d8004a videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xa1de094f tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xa1ed7b62 tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0xa2066953 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xa2077b98 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xa20df0e0 hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0xa21f2ce7 clk_mux_index_to_val +EXPORT_SYMBOL_GPL vmlinux 0xa22a287b lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0xa235f509 serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0xa23ec288 fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0xa23eee1d devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xa2500ef6 __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xa255a648 bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa27b08bb devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xa2904765 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0xa298af95 xive_native_get_queue_info +EXPORT_SYMBOL_GPL vmlinux 0xa2acc5b6 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xa2b0820d __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2bd197d gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0xa2bfd943 tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xa2d00bc1 list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa2e3b8cd ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xa2ecb6a3 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xa30f8ecc user_update +EXPORT_SYMBOL_GPL vmlinux 0xa327f902 rdev_get_name +EXPORT_SYMBOL_GPL vmlinux 0xa32b5bc5 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0xa33d91a8 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0xa3451db9 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xa351784c __mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xa36f50fb is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xa36fe5d0 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0xa3701770 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xa3784f82 dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0xa37d7ac1 anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xa39d187d power_supply_get_by_phandle +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 0xa3b75a62 clk_gate_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3bd54d7 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa3fdeea6 of_phandle_iterator_init +EXPORT_SYMBOL_GPL vmlinux 0xa4031b7f sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0xa40fc8f6 eeh_pe_get_state +EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa413ebb0 vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0xa4180c5a page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0xa41f5081 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xa42dfcfc cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0xa437c661 serial8250_rx_dma_flush +EXPORT_SYMBOL_GPL vmlinux 0xa439c69e __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xa43f939b dev_pm_genpd_resume +EXPORT_SYMBOL_GPL vmlinux 0xa445a61a rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0xa463de30 kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0xa479032e nvmem_device_cell_write +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa48d8626 __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0xa496c6b0 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xa4aa685f __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4b37d25 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xa4b69a3a device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xa4b847ea extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0xa4c085f8 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0xa4f1e3ea i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL vmlinux 0xa4f3ba0b gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xa4f539b3 i2c_client_type +EXPORT_SYMBOL_GPL vmlinux 0xa50b8ef2 debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0xa50d7dfe lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0xa51ae0a8 pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xa52653b0 dev_pm_opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0xa5282b53 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xa531471e clk_save_context +EXPORT_SYMBOL_GPL vmlinux 0xa539a419 pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0xa55346e7 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xa55428e1 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa56bb892 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xa572ff6a trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0xa578fe9a irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0xa59273ad dev_pm_genpd_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa5b00659 ppc_proc_freq +EXPORT_SYMBOL_GPL vmlinux 0xa5b8fef3 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xa5bcefb7 usb_hcd_amd_remote_wakeup_quirk +EXPORT_SYMBOL_GPL vmlinux 0xa5c8d87e __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xa5d1f4b8 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0xa5d3fc78 fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0xa5d7c388 pstore_type_to_name +EXPORT_SYMBOL_GPL vmlinux 0xa5e14f53 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f6f23d driver_register +EXPORT_SYMBOL_GPL vmlinux 0xa6124335 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0xa61603e9 device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xa61a84e8 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xa647a0b9 crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xa64f638e usb_alloc_dev +EXPORT_SYMBOL_GPL vmlinux 0xa655abc2 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0xa6593219 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0xa65f3c8c __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6623874 mmc_send_abort_tuning +EXPORT_SYMBOL_GPL vmlinux 0xa6845c7d __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0xa69c3119 cpufreq_driver_resolve_freq +EXPORT_SYMBOL_GPL vmlinux 0xa6a088b7 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0xa6af1e35 __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa6b06f65 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6b5ee5b __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0xa6b8c14a gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xa6d1e06f splpar_spin_yield +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6e4b67a devm_regmap_add_irq_chip_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa6ee15ca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa6ee2520 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xa6ee634f fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0xa6f6b017 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0xa6f8d395 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0xa6ffe72e sdio_retune_hold_now +EXPORT_SYMBOL_GPL vmlinux 0xa7025f65 fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa70dc448 devm_thermal_zone_of_sensor_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa70f5c9d bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0xa711581f dm_put +EXPORT_SYMBOL_GPL vmlinux 0xa71ac380 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xa71c1fdd rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0xa7423ca6 __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xa74a63e6 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xa74e94da mm_iommu_preregistered +EXPORT_SYMBOL_GPL vmlinux 0xa75e9e0d regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0xa76112f7 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xa762d0a6 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xa7646ac9 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xa7674c43 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xa76f25e0 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0xa772274b gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0xa7777edb alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0xa786cafe usb_pipe_type_check +EXPORT_SYMBOL_GPL vmlinux 0xa79c5ee6 dmaengine_desc_attach_metadata +EXPORT_SYMBOL_GPL vmlinux 0xa7b1cb87 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0xa7b5133e edac_device_del_device +EXPORT_SYMBOL_GPL vmlinux 0xa7d7ed4f driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xa7e3ca3a ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xa7e86243 fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0xa7ebeb48 rdev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa7f0d694 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0xa8005264 skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xa8156674 pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0xa81cb13d dev_pm_opp_set_opp +EXPORT_SYMBOL_GPL vmlinux 0xa826e773 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xa8305caa phy_create_lookup +EXPORT_SYMBOL_GPL vmlinux 0xa849b1d3 hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa84c3701 virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xa84f5c50 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8696e1a devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xa8785091 extcon_get_edev_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xa8851268 clk_hw_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xa88bfc3f bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0xa88de089 eeh_pe_set_option +EXPORT_SYMBOL_GPL vmlinux 0xa891489b __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0xa8aec65f raw_abort +EXPORT_SYMBOL_GPL vmlinux 0xa8b498d7 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xa8d224f8 clk_register_gate +EXPORT_SYMBOL_GPL vmlinux 0xa8d6f1dd crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0xa90e3b96 timer_rearm_host_dec +EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0xa937471d regulator_map_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xa93a9141 __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0xa944f920 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xa9565d94 devm_namespace_enable +EXPORT_SYMBOL_GPL vmlinux 0xa95b5c77 hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0xa95eb596 fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0xa972c4f8 virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0xa97502eb __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0xa97c4739 usb_choose_configuration +EXPORT_SYMBOL_GPL vmlinux 0xa98691e6 serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0xa99b8e70 __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0xa99e8b12 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xa9a0e3c0 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xa9a0ee26 pnv_pci_get_device_tree +EXPORT_SYMBOL_GPL vmlinux 0xa9ce341e usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xa9d4f3c8 dev_pm_opp_find_level_ceil +EXPORT_SYMBOL_GPL vmlinux 0xa9f899dc transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xaa07c9be sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xaa1758c5 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xaa65ca1a i2c_of_match_device +EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0xaa971d3a phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0xaaa824cd regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaaa5ec9 cpu_latency_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xaad081a7 wwan_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xaaf62ba8 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xab1a4c3a pinctrl_utils_reserve_map +EXPORT_SYMBOL_GPL vmlinux 0xab1dcb2c of_console_check +EXPORT_SYMBOL_GPL vmlinux 0xab228ce0 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xab6dceaf dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0xab71f298 pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0xab89e534 __traceiter_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0xab9531db fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0xab9603ea pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0xab9a7a81 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xaba99081 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xabb50783 crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0xabc287fe rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabe8a0ca elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0xabe9eb23 mbox_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xabea180b kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0xac03512c of_reserved_mem_lookup +EXPORT_SYMBOL_GPL vmlinux 0xac0624b4 vfio_spapr_iommu_eeh_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xac1ab8ea regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xac2bc894 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xac5df04e fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xac621346 iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0xac659c57 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xac7c5321 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0xac828fde dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb1a3af sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xacb23503 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0xacb48fee md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0xacb4d88c clk_rate_exclusive_put +EXPORT_SYMBOL_GPL vmlinux 0xacd80912 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xace59bb6 crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0xace908a4 __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features +EXPORT_SYMBOL_GPL vmlinux 0xad12bb7a gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xad25602f __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xad33ef15 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xad42dff8 __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad645234 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad6cb1d7 get_slice_psize +EXPORT_SYMBOL_GPL vmlinux 0xad76a3f0 __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xad81bc2f devm_hwspin_lock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad94b91d iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0xad9efcf6 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xada13718 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xada25090 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0xadbcd9b2 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xadc6fc98 gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0xadc861bd platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0xadcbdd1a vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0xadcd269c crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0xadd21aef elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xade5339b hte_get_clk_src_info +EXPORT_SYMBOL_GPL vmlinux 0xadf6162f crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xae06879e regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xae3a1a47 xhci_reset_bandwidth +EXPORT_SYMBOL_GPL vmlinux 0xae442152 dawr_force_enable +EXPORT_SYMBOL_GPL vmlinux 0xae547636 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xae5536d5 folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xae57fdfe devm_hwspin_lock_register +EXPORT_SYMBOL_GPL vmlinux 0xae64f1dd __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae735202 pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae864461 vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xae87cad0 memstart_addr +EXPORT_SYMBOL_GPL vmlinux 0xae8ff437 fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xae90d6f2 nvdimm_pmem_region_create +EXPORT_SYMBOL_GPL vmlinux 0xae91eac5 __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0xaea215ce tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xaea7f1ef devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaeba9ce4 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0xaebc1627 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xaebf6ea5 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xaec9921f hash_page +EXPORT_SYMBOL_GPL vmlinux 0xaed5ac9d dev_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0xaeeab918 pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0xaefa9ebb pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xaf076aec nd_fletcher64 +EXPORT_SYMBOL_GPL vmlinux 0xaf07a333 devfreq_event_enable_edev +EXPORT_SYMBOL_GPL vmlinux 0xaf177c44 sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0xaf1e10da opal_int_set_mfrr +EXPORT_SYMBOL_GPL vmlinux 0xaf215454 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xaf243535 regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xaf26fabc regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0xaf30e4a9 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xaf3a44e9 __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xaf4014ff usb_amd_quirk_pll_check +EXPORT_SYMBOL_GPL vmlinux 0xaf4858fc pnv_ocxl_get_xsl_irq +EXPORT_SYMBOL_GPL vmlinux 0xaf660b63 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0xaf676a90 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xaf793668 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0xaf832af4 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xaf852873 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xaf853590 of_genpd_add_provider_simple +EXPORT_SYMBOL_GPL vmlinux 0xaf8f2221 rio_del_device +EXPORT_SYMBOL_GPL vmlinux 0xaf9e1113 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xafb974e5 extcon_register_notifier_all +EXPORT_SYMBOL_GPL vmlinux 0xafb994cc devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xafbac171 irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xafbe6c9e kvmppc_hwrng_present +EXPORT_SYMBOL_GPL vmlinux 0xafc12b0e of_get_pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0xafc19b53 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0xafcc8ba3 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xafd5518a fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xafdccc1f mctrl_gpio_init +EXPORT_SYMBOL_GPL vmlinux 0xafddd545 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xafe3d36b tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0xafeb1ef0 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0xafeb58c1 __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xb00bedbd edac_device_handle_ce_count +EXPORT_SYMBOL_GPL vmlinux 0xb01eb623 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0xb02e08f2 vmalloc_to_phys +EXPORT_SYMBOL_GPL vmlinux 0xb049a294 __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xb04b9f17 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0xb04d9b69 of_irq_parse_one +EXPORT_SYMBOL_GPL vmlinux 0xb05410f0 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb05b1237 sdio_retune_crc_enable +EXPORT_SYMBOL_GPL vmlinux 0xb06634ec opal_xscom_write +EXPORT_SYMBOL_GPL vmlinux 0xb06da7ee pm_clk_init +EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0xb077e70a clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xb0902385 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb09c5bd6 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xb09d45b0 serial8250_read_char +EXPORT_SYMBOL_GPL vmlinux 0xb0a51a7f pinctrl_utils_add_map_mux +EXPORT_SYMBOL_GPL vmlinux 0xb0b32c0e skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0bc0a7b device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0f65317 get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xb0f73f8e __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xb0fc7bd2 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xb0fffffd blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0xb10d295f rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0xb12c181f fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xb1408ee7 ata_pci_shutdown_one +EXPORT_SYMBOL_GPL vmlinux 0xb143e851 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0xb170bfd9 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb185a643 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xb193dcd9 i2c_dw_configure_master +EXPORT_SYMBOL_GPL vmlinux 0xb1a1c97b crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0xb1a288c3 skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0xb1b41bf6 srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0xb1baff17 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c2ab97 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xb1c5f832 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1f444fe spi_slave_abort +EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xb207e630 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb207fa0f ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xb20e427d fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0xb21d00c6 hte_ts_put +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb222d4d0 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xb22b44a3 fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0xb235b975 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0xb27caeba pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xb27f811a spi_mem_poll_status +EXPORT_SYMBOL_GPL vmlinux 0xb29533ee zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0xb2996be7 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0xb2a3ce33 __spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xb2a653fc confirm_error_lock +EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2ce83e2 __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0xb2d13a69 dev_attr_ncq_prio_supported +EXPORT_SYMBOL_GPL vmlinux 0xb2e4e8fe auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2ff05c4 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb33602df gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xb356a407 sec_irq_init +EXPORT_SYMBOL_GPL vmlinux 0xb364586c crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0xb368b0cd devm_mbox_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3883b91 tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0xb38da6b2 __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0xb39aca9f blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb3b7a0a6 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xb3b8585c switch_pmu_to_guest +EXPORT_SYMBOL_GPL vmlinux 0xb3c72582 crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xb3e15e36 nvmem_add_cell_table +EXPORT_SYMBOL_GPL vmlinux 0xb3ec52b8 pinmux_generic_get_function_name +EXPORT_SYMBOL_GPL vmlinux 0xb406536b pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb40e960e debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xb4135ef5 filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0xb421afa4 crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xb44730b1 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb45d6095 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb45de6ab ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xb47e6361 clk_fractional_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0xb4850c40 dev_pm_opp_put_clkname +EXPORT_SYMBOL_GPL vmlinux 0xb488588e tb_to_ns +EXPORT_SYMBOL_GPL vmlinux 0xb4885c5e __clk_hw_register_mux +EXPORT_SYMBOL_GPL vmlinux 0xb48f0638 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0xb49023ed device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0xb498ba44 kvmppc_h_read +EXPORT_SYMBOL_GPL vmlinux 0xb4994f15 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0xb4a96c96 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c3a091 scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0xb4d10183 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xb4d567dd power_supply_get_property_from_supplier +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 0xb502ba26 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb50e6f12 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xb50f6a68 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb52e6f70 fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0xb536b1a2 vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0xb548caf0 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0xb554f2e1 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0xb556018d kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xb56c27ef badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0xb56d72f8 devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0xb56ed688 of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0xb57b1269 pm_genpd_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb5837ba1 gov_attr_set_get +EXPORT_SYMBOL_GPL vmlinux 0xb59b2a40 of_clk_hw_simple_get +EXPORT_SYMBOL_GPL vmlinux 0xb5a04f05 xive_native_has_save_restore +EXPORT_SYMBOL_GPL vmlinux 0xb5aa10af atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb5e13fe6 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb5edc4ce bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0xb605a9c8 iommu_tce_table_get +EXPORT_SYMBOL_GPL vmlinux 0xb60b5707 of_i8042_aux_irq +EXPORT_SYMBOL_GPL vmlinux 0xb610b5d9 ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0xb61193da pin_get_name +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6357e53 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xb639c788 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xb6406bae wakeup_sources_walk_next +EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0xb643c250 xics_wake_cpu +EXPORT_SYMBOL_GPL vmlinux 0xb6490b11 pnv_power9_force_smt4_release +EXPORT_SYMBOL_GPL vmlinux 0xb655f91b pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0xb6882443 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xb6888188 klp_shadow_get_or_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb68bb0e6 of_hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0xb690399f vas_win_close +EXPORT_SYMBOL_GPL vmlinux 0xb697c14b iommu_del_device +EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xb6a8b730 blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0xb6b28514 xas_load +EXPORT_SYMBOL_GPL vmlinux 0xb6bcfaf2 ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0xb6cab6c5 of_thermal_get_trip_points +EXPORT_SYMBOL_GPL vmlinux 0xb6d27de6 __tracepoint_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xb6e6d99d clk_disable +EXPORT_SYMBOL_GPL vmlinux 0xb70305ea power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xb70641c6 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb7161b95 fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0xb7239f09 __put_net +EXPORT_SYMBOL_GPL vmlinux 0xb729a642 dev_pm_set_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xb7329c06 clk_set_phase +EXPORT_SYMBOL_GPL vmlinux 0xb73713d7 nvmem_add_cell_lookups +EXPORT_SYMBOL_GPL vmlinux 0xb73af58e inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xb73e37e3 devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb74c1eaf of_led_get +EXPORT_SYMBOL_GPL vmlinux 0xb74c31cd wwan_remove_port +EXPORT_SYMBOL_GPL vmlinux 0xb76fa500 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0xb77839cc devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb781ac18 perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0xb781ede2 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0xb786bf75 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xb78cc0d3 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xb798e069 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7cc0cff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0xb7d17fa0 pgtable_cache +EXPORT_SYMBOL_GPL vmlinux 0xb7e479f5 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xb7f17d4a genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0xb7f62fbd gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xb832bafa __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xb83505bc scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0xb842a185 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xb845001f pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xb84b3673 cpufreq_generic_attr +EXPORT_SYMBOL_GPL vmlinux 0xb8510664 of_icc_get +EXPORT_SYMBOL_GPL vmlinux 0xb85ff8b4 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xb8609828 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xb86adec3 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xb86b8150 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0xb87f3781 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb8919ae6 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xb891ece3 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xb8993fac __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb8abbfbc skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xb8b786b8 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0xb8c1a475 dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0xb8c644ab mce_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb8cc94e5 xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0xb8de98e5 validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0xb90b01b2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xb90bd012 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xb90dfe37 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0xb9175787 devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xb91e6703 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xb92aec62 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0xb940d90d hte_enable_ts +EXPORT_SYMBOL_GPL vmlinux 0xb953d116 devm_pm_opp_set_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xb9590a63 pinctrl_generic_get_group_count +EXPORT_SYMBOL_GPL vmlinux 0xb95eb5c3 msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0xb9680715 sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xb998c9ab kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb99dc0cc unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xb99df747 xive_native_has_queue_state_support +EXPORT_SYMBOL_GPL vmlinux 0xb9b82b97 of_thermal_is_trip_valid +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c416bb xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d4da5b nvdimm_badblocks_populate +EXPORT_SYMBOL_GPL vmlinux 0xb9fa80ee securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb9faf5fd xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xba014c84 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xba057786 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0xba076daa trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0xba0a2023 extcon_dev_free +EXPORT_SYMBOL_GPL vmlinux 0xba158769 rtas_cancel_event_scan +EXPORT_SYMBOL_GPL vmlinux 0xba1b0697 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xba1df57e __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xba1e767c nd_region_dev +EXPORT_SYMBOL_GPL vmlinux 0xba2b7f64 cpufreq_generic_get +EXPORT_SYMBOL_GPL vmlinux 0xba2d67b3 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0xba2e23ee eeh_pe_state_mark +EXPORT_SYMBOL_GPL vmlinux 0xba2eac0d tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0xba31dc1e usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xba3e89e1 cpufreq_policy_transition_delay_us +EXPORT_SYMBOL_GPL vmlinux 0xba453e4e usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xba4b1b3d alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xba72121e vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xba7217dc device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0xba751e6d usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xba76daea iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0xbab9a9f0 maxim_charger_currents +EXPORT_SYMBOL_GPL vmlinux 0xbabbef37 extcon_get_property +EXPORT_SYMBOL_GPL vmlinux 0xbabe7135 rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xbadf1f79 tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0xbaf22757 kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb24f372 __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbb30f520 akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xbb32c978 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xbb4a2da0 hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0xbb4c13b4 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xbb6c75ac xas_pause +EXPORT_SYMBOL_GPL vmlinux 0xbb6f025a asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0xbb701b5d ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0xbb80f63e rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xbb98a796 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xbba4df04 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xbbc9224a sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0xbbd36c41 power_supply_get_property +EXPORT_SYMBOL_GPL vmlinux 0xbbe5611b crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0xbbe56404 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0xbbe7363f dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0xbbea6afc gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0xbbebf3cf vas_unregister_api_powernv +EXPORT_SYMBOL_GPL vmlinux 0xbc0208d6 device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0xbc0756fc debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0xbc0a56a8 pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0xbc2c20c4 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xbc2ea5b3 pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0xbc30d494 trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0xbc3b20c1 pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xbc5a0226 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc89254b blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0xbc8c4bab pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0xbc8db507 ohci_hub_status_data +EXPORT_SYMBOL_GPL vmlinux 0xbca90730 irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0xbcbe3339 devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcea64cc stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xbd0263f8 usb_hcd_setup_local_mem +EXPORT_SYMBOL_GPL vmlinux 0xbd06981c debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0xbd06f3a9 ata_get_cmd_name +EXPORT_SYMBOL_GPL vmlinux 0xbd24bb7e dax_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xbd25c2f2 rio_del_mport_pw_handler +EXPORT_SYMBOL_GPL vmlinux 0xbd2d8f02 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0xbd5704ec __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xbd6135a0 spi_mem_driver_register_with_owner +EXPORT_SYMBOL_GPL vmlinux 0xbd6508b2 dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xbd65c2d5 ata_ncq_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xbd7aaaee add_memory +EXPORT_SYMBOL_GPL vmlinux 0xbdb72342 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xbdd6d9a1 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0xbddb90ed genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0xbdf6aaa7 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xbe1021ee tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0xbe1c3fdc rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xbe23bfea class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbe3135c4 eeh_iommu_group_to_pe +EXPORT_SYMBOL_GPL vmlinux 0xbe34fad9 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbe372928 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xbe38c416 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xbe3d48f3 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xbe3fd025 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0xbe4c8a1c crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xbe53b52a crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbe7750bb pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xbe841fcd crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xbe8dda3f devm_mipi_dsi_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xbe8dfb64 sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xbe96dfd8 of_reconfig_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe976f26 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xbe9a83d5 dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0xbea3fb7a sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbea63e77 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xbeaa9fb5 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xbec0516d wwan_put_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xbec36348 pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0xbed2764e irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0xbedf3fb8 pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xbeefed52 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbefc6ae5 __regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xbeffc945 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf05a2dd ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xbf167e34 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xbf19dd13 devm_of_phy_get +EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xbf21c6ac phy_power_on +EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbf314b6a rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0xbf365f5c request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0xbf5803f9 fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0xbf75292e mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0xbf8a6eef pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xbf90dc6a regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xbf90f58c irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0xbf9f82da is_pnv_opal_msi +EXPORT_SYMBOL_GPL vmlinux 0xbfaeff6a icc_enable +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd2b2dc mbox_chan_received_data +EXPORT_SYMBOL_GPL vmlinux 0xbfdcb097 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0xbfeea1df of_get_required_opp_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xbfefffc8 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xbff66ca3 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0xbffdcf72 clk_hw_get_flags +EXPORT_SYMBOL_GPL vmlinux 0xc000d110 iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0xc028ccd7 crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0xc031d103 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xc0376542 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0xc03fb062 fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0xc0455404 phy_led_triggers_register +EXPORT_SYMBOL_GPL vmlinux 0xc0456fa5 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0xc06198b1 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xc065a455 cpu_core_index_of_thread +EXPORT_SYMBOL_GPL vmlinux 0xc0661d7f ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xc0858819 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc085a495 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xc08c5ccf ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0xc0ac8bba synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0xc0ad4bca crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0xc0b3c38c fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc0b64f56 of_irq_parse_raw +EXPORT_SYMBOL_GPL vmlinux 0xc0c866e0 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xc0d170ba vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL vmlinux 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL vmlinux 0xc0e4dfc3 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc0ef163d virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0xc10fddb8 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xc114eeab fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0xc11ba99c pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0xc11c274b rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xc11e3919 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc126c3ce xhci_gen_setup +EXPORT_SYMBOL_GPL vmlinux 0xc12d0d40 devm_spi_mem_dirmap_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc153fc1e tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xc1743430 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1986172 poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1c67779 nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0xc1ccc99d pm_clk_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc1ed9c89 cpu_latency_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xc2016555 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0xc218a058 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc21a6473 dev_coredumpm +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc22b8ab7 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0xc2356714 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0xc2396afe devfreq_event_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc2478ee0 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc24de577 nvdimm_name +EXPORT_SYMBOL_GPL vmlinux 0xc2532ce7 ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0xc25670c5 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xc2692173 wakeup_sources_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xc289e46d cpufreq_generic_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xc28c5838 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xc2a3f4da crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0xc2a6ee85 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xc2b76387 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xc2b9773a __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xc2bce628 wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc2c275ff opal_poll_events +EXPORT_SYMBOL_GPL vmlinux 0xc2cd3fab __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xc2d3a06b ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xc2d492d1 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xc2d557bc blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0xc2e57cf7 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xc2e84770 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc2f30c78 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0xc2f68bdc ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xc2fa69d3 raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0xc2fd276f lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0xc30c55cb blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0xc3217878 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc3470634 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0xc34fef3f devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0xc36364b6 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc379419f sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xc37bb5a4 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0xc3944258 trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0xc3955cb0 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xc3a05644 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xc3b247ec sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3df0ac0 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0xc3f3ecac mmc_sanitize +EXPORT_SYMBOL_GPL vmlinux 0xc3ffb34d mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xc412fdf3 radix__flush_all_lpid +EXPORT_SYMBOL_GPL vmlinux 0xc4236bbd crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc426c51f klp_shadow_free_all +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43224fd devm_regulator_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xc432ce78 of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xc43ba7a5 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0xc43cf854 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xc43f0ec9 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xc44016fc vfio_mig_get_next_state +EXPORT_SYMBOL_GPL vmlinux 0xc442bfc0 devm_led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xc44992ee devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0xc44fb053 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xc44fe983 devm_regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc45bca0c dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xc45ec62b ata_sas_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xc460b5b1 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xc46324f6 dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0xc46b5e00 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc476fdb1 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xc47a90b9 bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4979b7b synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0xc498bdc9 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc4a72936 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc4ba053f sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0xc4c19fa4 of_phy_put +EXPORT_SYMBOL_GPL vmlinux 0xc4dca67d led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xc4e34750 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xc4f476ec em_dev_register_perf_domain +EXPORT_SYMBOL_GPL vmlinux 0xc4f92200 nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0xc506a23c unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0xc507c1db cpu_add_dev_attr +EXPORT_SYMBOL_GPL vmlinux 0xc50cb0f1 device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xc51b9576 debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0xc52951f5 mm_iommu_is_devmem +EXPORT_SYMBOL_GPL vmlinux 0xc534c31b kvmppc_clear_ref_hpte +EXPORT_SYMBOL_GPL vmlinux 0xc53e2e3d smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xc54d525e max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xc550b981 devm_pm_opp_of_add_table_noclk +EXPORT_SYMBOL_GPL vmlinux 0xc5604800 clk_set_rate_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc569d8ce __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0xc56e63c5 extcon_sync +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5777fca linear_range_get_selector_low_array +EXPORT_SYMBOL_GPL vmlinux 0xc5786418 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xc5798813 rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0xc5839768 component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0xc588d2a7 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xc58a3ee6 icc_node_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc5991e14 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xc59f44dd iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0xc5a5c678 uart_parse_earlycon +EXPORT_SYMBOL_GPL vmlinux 0xc5cd12e4 clk_hw_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xc5d8b369 pnv_ocxl_get_tl_cap +EXPORT_SYMBOL_GPL vmlinux 0xc5e1141b device_match_any +EXPORT_SYMBOL_GPL vmlinux 0xc5f7791f inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xc6050b15 vfio_register_group_dev +EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc6299625 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0xc62ee5e4 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xc63176fb fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xc640ab12 device_rename +EXPORT_SYMBOL_GPL vmlinux 0xc65a9310 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0xc662ecda __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xc6645f58 blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0xc66519b3 dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0xc66545b1 irq_gc_mask_disable_reg +EXPORT_SYMBOL_GPL vmlinux 0xc6672135 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc672dc08 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xc683bdbe power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xc68c3a58 __devm_rtc_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc68c41d6 __SCK__tp_func_ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xc697b0f7 nvmem_device_read +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a4a872 __clk_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xc6b49b8f sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xc6be2295 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc6c59e9d bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc6c70475 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xc6cc2a48 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0xc6ceb5ee pm_runtime_suspended_time +EXPORT_SYMBOL_GPL vmlinux 0xc6e5bcf3 linear_range_get_selector_within +EXPORT_SYMBOL_GPL vmlinux 0xc6ead9d6 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xc6ecbe49 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xc705f74f devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0xc70d18f7 regulator_bulk_register_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xc73e50d9 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xc7406100 nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0xc743b2a8 mpc8xxx_spi_tx_buf_u16 +EXPORT_SYMBOL_GPL vmlinux 0xc751b6fc __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0xc764795f trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0xc77381a4 devm_extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc777fd2b pm_clk_remove_clk +EXPORT_SYMBOL_GPL vmlinux 0xc77951a0 devm_phy_put +EXPORT_SYMBOL_GPL vmlinux 0xc785ff9c devm_clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xc78a1e41 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xc790af16 pci_generic_ecam_ops +EXPORT_SYMBOL_GPL vmlinux 0xc799cf73 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a7e770 clk_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0xc7c56d59 badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0xc7d80630 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0xc7de9372 __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0xc7df8417 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc7e10808 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0xc7e376d4 klist_next +EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0xc80f8e4a devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8176ba9 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0xc8184026 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc8186784 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xc81ec3c7 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc82b3a88 __SCK__tp_func_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xc841b416 device_link_add +EXPORT_SYMBOL_GPL vmlinux 0xc8594d3d reset_control_acquire +EXPORT_SYMBOL_GPL vmlinux 0xc863cd22 dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0xc86f5d1d tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0xc871b2ba sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0xc877667a xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0xc88bb345 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xc88f50d7 extcon_set_state_sync +EXPORT_SYMBOL_GPL vmlinux 0xc8935fe8 device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0xc8ab4336 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0xc8c61281 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xc8d846c3 dm_hold +EXPORT_SYMBOL_GPL vmlinux 0xc8d88512 iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0xc8e11e3e regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8f4bc07 phy_pm_runtime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8fa1427 pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0xc8fa5eef kvmhv_vcpu_entry_p9 +EXPORT_SYMBOL_GPL vmlinux 0xc8ffb147 iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0xc90fee4a pinctrl_generic_get_group_name +EXPORT_SYMBOL_GPL vmlinux 0xc91b296f hwspin_lock_get_id +EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0xc9354302 devm_pm_clk_create +EXPORT_SYMBOL_GPL vmlinux 0xc93ee1e7 usb_phy_roothub_init +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9579026 clk_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc9715630 __SCK__tp_func_ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xc9755925 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xc97629d1 dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0xc97d4a17 tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0xc9831339 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xc99f2bc0 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xc9c44223 tpm_tis_resume +EXPORT_SYMBOL_GPL vmlinux 0xc9c56873 perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc9c6a27a xive_native_set_queue_state +EXPORT_SYMBOL_GPL vmlinux 0xc9ce3124 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0xc9e5de58 devm_hwmon_device_register_with_info +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f75a41 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xc9fd634a usb_role_switch_put +EXPORT_SYMBOL_GPL vmlinux 0xca0143bb rio_add_net +EXPORT_SYMBOL_GPL vmlinux 0xca321e69 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0xca4b5c51 idr_remove +EXPORT_SYMBOL_GPL vmlinux 0xca5faf9c xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0xca6b85d9 virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0xca7016e7 regmap_mmio_attach_clk +EXPORT_SYMBOL_GPL vmlinux 0xca71d461 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xca72d8c4 component_release_of +EXPORT_SYMBOL_GPL vmlinux 0xca78c23e pwm_apply_state +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca7e9827 devfreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xca8083a1 pnv_ocxl_map_lpar +EXPORT_SYMBOL_GPL vmlinux 0xca8fd893 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xca94bf41 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcaa3549b tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0xcabca638 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcac8a4ab access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0xcac95688 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xcadab7df blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0xcaf7562f pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xcb024011 irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0xcb063f84 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xcb27f7a1 crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xcb2b5999 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xcb2bfe2b nvmem_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcb324866 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0xcb33bbbb bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0xcb5adbd0 pm_clk_add +EXPORT_SYMBOL_GPL vmlinux 0xcb774b8e __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcb800d17 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xcb94ed1a rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0xcb96f50f __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0xcb9ce6fd aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0xcba67571 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcba8fdba phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0xcbb0bf34 usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xcbc11589 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0xcbe7394d tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0xcbf53f9c usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xcbfa49a6 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xcbfca518 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xcc020e8f input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xcc083ce8 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xcc0f1009 power_supply_notifier +EXPORT_SYMBOL_GPL vmlinux 0xcc1eecea gov_update_cpu_data +EXPORT_SYMBOL_GPL vmlinux 0xcc279c9a da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xcc2dbfd8 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0xcc37f2dc virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0xcc39c03e nvmem_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc3b58c9 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xcc3c97d3 open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0xcc5462b5 device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xcc54929e sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0xcc59802b ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xcc5c8a6e fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0xcc660151 kvmppc_invalidate_hpte +EXPORT_SYMBOL_GPL vmlinux 0xcc75156c crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xcc795932 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xcc9268fc hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0xcc99455a power_supply_get_battery_info +EXPORT_SYMBOL_GPL vmlinux 0xcca4483b irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0xccabde6f crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0xccc77419 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xccc99e33 synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd86806 ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0xcce3e7d4 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xcceb56ef crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0xcceb970d platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0xccee0207 gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xccf08071 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0xcd0a7b09 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xcd0c0886 __traceiter_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0xcd12b0af crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xcd151f6c kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xcd1c542d gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0xcd1d0d4c ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0xcd2904d5 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xcd2a4f6a __class_create +EXPORT_SYMBOL_GPL vmlinux 0xcd2ab716 pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xcd2e7183 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xcd327c65 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcd34f514 scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xcd405bfe crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xcd45b6cf sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0xcd468c35 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xcd5a606c of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0xcd7b75cd __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0xcd7cc430 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0xcd8af4da usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xcd90087b regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd943e8c gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0xcd944164 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0xcd95b227 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcd974f00 rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0xcd9adb40 gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcda49102 devm_hwspin_lock_free +EXPORT_SYMBOL_GPL vmlinux 0xcdaa2a0e blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0xcdc2259b __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0xcdc3dd86 divider_round_rate_parent +EXPORT_SYMBOL_GPL vmlinux 0xcdc99b9d __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdcd46c1 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xcdd1a841 xive_tima +EXPORT_SYMBOL_GPL vmlinux 0xcdda48b8 dev_coredumpsg +EXPORT_SYMBOL_GPL vmlinux 0xcde1d060 of_icc_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xce0afca2 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xce163309 vas_paste_crb +EXPORT_SYMBOL_GPL vmlinux 0xce169f6d class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xce41cb61 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xce42f2f3 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0xce45f9fe pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0xce494406 of_reserved_mem_device_release +EXPORT_SYMBOL_GPL vmlinux 0xce4e0279 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xce5bed4e netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xce69b846 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce79fbef tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xce88f480 nvdimm_region_notify +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xceb4b99c klist_prev +EXPORT_SYMBOL_GPL vmlinux 0xcec304be vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xcec516da sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee18cae rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xcee36cc2 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xcee88e7a of_overlay_fdt_apply +EXPORT_SYMBOL_GPL vmlinux 0xcf00bff0 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xcf06b700 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xcf133159 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xcf1a775f __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xcf2093bf wwan_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xcf233437 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0xcf28f55e trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0xcf45a643 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xcf5e3f29 kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0xcf5e40d7 dev_pm_opp_put_supported_hw +EXPORT_SYMBOL_GPL vmlinux 0xcf649674 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0xcf694762 clk_hw_unregister_gate +EXPORT_SYMBOL_GPL vmlinux 0xcf6d2645 kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xcf865692 syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0xcf880024 dev_pm_opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xcf94bc15 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xcf9c2ce6 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xcfac6344 pnv_ocxl_map_xsl_regs +EXPORT_SYMBOL_GPL vmlinux 0xcfae7b1c iommu_add_device +EXPORT_SYMBOL_GPL vmlinux 0xcfc0255f bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0xcfd8c98e regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0xcfe2540d crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xcfe27781 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xcfef1b47 switch_pmu_to_host +EXPORT_SYMBOL_GPL vmlinux 0xd000268f stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd0049cc5 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd016843c hwmon_device_register_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xd017fc2e genpd_dev_pm_attach_by_id +EXPORT_SYMBOL_GPL vmlinux 0xd0241fb0 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xd04aedfd __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xd0631a8c bio_trim +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd07a9b68 usb_control_msg_send +EXPORT_SYMBOL_GPL vmlinux 0xd087299d dev_pm_opp_of_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd08e8b14 of_mpc8xxx_spi_probe +EXPORT_SYMBOL_GPL vmlinux 0xd08ee3fe tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xd090662f ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0xd0ad94c1 rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd0b4b87d devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c2788f inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xd0c73e57 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0xd0cabd1c __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax +EXPORT_SYMBOL_GPL vmlinux 0xd0dce751 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd0e62485 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xd0f3ae97 gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0xd0f946cf tps65912_device_init +EXPORT_SYMBOL_GPL vmlinux 0xd1176620 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xd12e3ef2 device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0xd13188db vfio_file_has_dev +EXPORT_SYMBOL_GPL vmlinux 0xd1393cce usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd13cf8e2 fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xd1694779 tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0xd16a8cef __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd1766e94 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xd17bd5b6 early_find_capability +EXPORT_SYMBOL_GPL vmlinux 0xd1917ed3 pinctrl_generic_get_group_pins +EXPORT_SYMBOL_GPL vmlinux 0xd1a9ca15 __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0xd1aaa539 blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0xd1ab9f9e regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0xd1b344b3 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xd1baa424 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xd1ceae62 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xd1d50055 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd1d5f302 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0xd1e6f8ee devm_namespace_disable +EXPORT_SYMBOL_GPL vmlinux 0xd1ee4285 vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0xd1fbdf09 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0xd21f1d35 __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd229bbc2 xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0xd22f0b56 vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xd2477509 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xd24b8d12 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xd2693183 to_nd_desc +EXPORT_SYMBOL_GPL vmlinux 0xd26aff72 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0xd2a822c7 pseries_reloc_on_exception +EXPORT_SYMBOL_GPL vmlinux 0xd2b10a05 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e505 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0xd2d82267 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0xd2eeced8 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xd2fd1357 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd2ff8cd0 fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xd320ebaf pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xd36760ef __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xd3696945 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0xd38030da clk_hw_register_fixed_factor +EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xd3b5ad98 dma_get_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xd3d9b739 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xd3e3310a __device_reset +EXPORT_SYMBOL_GPL vmlinux 0xd3e43b92 metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0xd3ec851c __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xd3f0cd42 misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0xd3f1248c int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0xd3fac8f9 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40495d5 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0xd4060bfd eeh_dev_check_failure +EXPORT_SYMBOL_GPL vmlinux 0xd4066685 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd406bf46 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xd4141a2f inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xd41d1fe5 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0xd4234778 memunmap_pages +EXPORT_SYMBOL_GPL vmlinux 0xd426559c usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd4489875 dev_pm_opp_adjust_voltage +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd44d0946 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xd4523010 srp_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xd457c975 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xd4594aa4 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xd45d6a3d blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0xd45da1ae spi_mem_dirmap_write +EXPORT_SYMBOL_GPL vmlinux 0xd47bae0f input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xd4860ae1 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xd4935851 __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xd49e419c ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xd4aeaef3 decrementers_next_tb +EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0xd4b9a616 reset_control_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cbdbe3 __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xd4e6d7e0 linear_range_get_value +EXPORT_SYMBOL_GPL vmlinux 0xd50fc2f1 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0xd5301b2c linear_range_get_max_value +EXPORT_SYMBOL_GPL vmlinux 0xd53afa1f usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xd5474690 usb_role_switch_set_role +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd5736a00 regulator_get_current_limit_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd5787987 devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xd582d5d3 lochnagar_update_config +EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd59db8dc evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xd5a8ea89 get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0xd5abe826 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL vmlinux 0xd5afa49b btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xd5b1fde3 query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0xd5bb1d16 regulator_set_voltage_sel_pickable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd5cbb102 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0xd5d93963 clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0xd5f25313 fuse_dax_cancel_work +EXPORT_SYMBOL_GPL vmlinux 0xd5f8a0a2 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0xd607c9a4 __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0xd60ba466 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xd60f4c1f fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0xd62838f3 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xd62b92a4 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd6423641 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0xd653b126 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0xd665fe87 iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0xd6716021 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67bea5e scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xd68179c9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xd6825696 kvmppc_h_remove +EXPORT_SYMBOL_GPL vmlinux 0xd684144b bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0xd6927b33 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xd69a4cf6 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0xd6a1de5f gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0xd6a43677 opal_async_release_token +EXPORT_SYMBOL_GPL vmlinux 0xd6a745e7 phy_calibrate +EXPORT_SYMBOL_GPL vmlinux 0xd6aafb42 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0xd6be2a1e tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0xd6bf625a btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0xd6ce8df6 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6d1c367 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0xd6d6767a __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xd6e1ef0c pnv_ocxl_get_pasid_count +EXPORT_SYMBOL_GPL vmlinux 0xd6f8f2fa i2c_dw_prepare_clk +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd7069995 pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0xd71bc921 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xd725efba device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0xd727788a class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd728f9e5 palmas_ext_control_req_config +EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd737babe power_supply_register_no_ws +EXPORT_SYMBOL_GPL vmlinux 0xd73bb97a fwnode_usb_role_switch_get +EXPORT_SYMBOL_GPL vmlinux 0xd748db13 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xd7499fa8 xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0xd75b20aa rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0xd75da197 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0xd7662704 pci_iomap_wc_range +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd76b9bdd pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xd76e4a35 ioremap_phb +EXPORT_SYMBOL_GPL vmlinux 0xd774957d mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0xd7772072 virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0xd7926fab nvdimm_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xd7956c9b reset_control_get_count +EXPORT_SYMBOL_GPL vmlinux 0xd798b66c vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0xd79baa6a ata_sas_tport_add +EXPORT_SYMBOL_GPL vmlinux 0xd7a24989 regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd7b7f4e4 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0xd7b81961 device_create +EXPORT_SYMBOL_GPL vmlinux 0xd7bad4c2 crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0xd7c7d89d blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xd7cc63b5 crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0xd7cea889 edac_mod_work +EXPORT_SYMBOL_GPL vmlinux 0xd7d7f2a7 devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd7dccd23 __SCK__tp_func_xhci_dbg_quirks +EXPORT_SYMBOL_GPL vmlinux 0xd7eb2cdf usb_hub_claim_port +EXPORT_SYMBOL_GPL vmlinux 0xd8211f17 pfn_to_online_page +EXPORT_SYMBOL_GPL vmlinux 0xd82abf89 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xd84cd368 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd856fa57 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xd86c8b79 pci_ecam_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xd87d354e transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd87fc0a0 usb_amd_prefetch_quirk +EXPORT_SYMBOL_GPL vmlinux 0xd8914ecf fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd8a26cd0 _copy_from_iter_flushcache +EXPORT_SYMBOL_GPL vmlinux 0xd8ae79c9 __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd8cae1d7 icc_node_add +EXPORT_SYMBOL_GPL vmlinux 0xd8cdcf75 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd8cf76cd clk_hw_register +EXPORT_SYMBOL_GPL vmlinux 0xd8e82785 dev_pm_clear_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xd8e894fd __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0xd8ee1fe9 tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xd90f762a call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0xd91fb5f9 led_set_brightness_nopm +EXPORT_SYMBOL_GPL vmlinux 0xd926b697 ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0xd9465f56 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xd94a3e0e vfio_pci_core_request +EXPORT_SYMBOL_GPL vmlinux 0xd94f4d5e dev_pm_qos_hide_latency_tolerance +EXPORT_SYMBOL_GPL vmlinux 0xd95f1e6a skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0xd964c32c invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd971a6ce class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xd9758fb4 iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xd98562b7 sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0xd9860230 __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0xd988abc9 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xd99cdb7d regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0xd9bb076e sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0xd9bbbf81 clk_hw_rate_is_protected +EXPORT_SYMBOL_GPL vmlinux 0xd9d0a2af devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9d9efc2 vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xd9ff2172 ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda14601b ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xda19d156 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xda1db9e7 led_compose_name +EXPORT_SYMBOL_GPL vmlinux 0xda3079d9 dev_pm_opp_set_prop_name +EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0xda3c4c76 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xda6e0b8e of_platform_device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xda6f6226 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0xda7142da fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xda77caf6 __mmc_send_status +EXPORT_SYMBOL_GPL vmlinux 0xda820b4f devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xda8e1302 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0xdaae3249 platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0xdaaf8233 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0xdab0ad20 fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0xdab69401 devm_spi_mem_dirmap_create +EXPORT_SYMBOL_GPL vmlinux 0xdabb2c14 sysfs_add_device_to_node +EXPORT_SYMBOL_GPL vmlinux 0xdace81a7 devm_pm_opp_set_clkname +EXPORT_SYMBOL_GPL vmlinux 0xdae945e3 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb01fc81 devm_clk_get_optional_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdb2c8daa dev_pm_opp_of_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xdb3794ce emulate_vsx_load +EXPORT_SYMBOL_GPL vmlinux 0xdb4147eb msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0xdb437056 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xdb504016 crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0xdb744794 pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb8d1477 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0xdb8e3f5b dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xdb91a90b tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xdb974d69 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0xdba971ba sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xdbb750f6 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xdbc72ac2 xive_native_alloc_irq_on_chip +EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbe8d8a0 __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xdbeeece6 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbf6cfb1 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc08df5a devm_hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdc0b2b5b opal_flash_write +EXPORT_SYMBOL_GPL vmlinux 0xdc144ca5 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0xdc1a9080 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xdc2546f9 hte_push_ts_ns +EXPORT_SYMBOL_GPL vmlinux 0xdc426736 mmc_poll_for_busy +EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xdc45a5db edac_stop_work +EXPORT_SYMBOL_GPL vmlinux 0xdc6596fa irq_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xdc667c99 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0xdc737b16 cpufreq_dbs_governor_limits +EXPORT_SYMBOL_GPL vmlinux 0xdc784acf usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc8d9550 get_device +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9f1531 scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdca43c05 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0xdca939fb usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0xdcaceb40 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xdcad8076 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xdcbcffbf rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdcd131de debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xdcd3e5f4 ata_sas_port_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdce00afc fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0xdcf0f054 led_put +EXPORT_SYMBOL_GPL vmlinux 0xdcf0fe4b ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0xdd09343d usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xdd113c16 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd14729c pinctrl_find_gpio_range_from_pin_nolock +EXPORT_SYMBOL_GPL vmlinux 0xdd2bbd5f fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0xdd2ed499 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xdd307ea9 devm_thermal_add_hwmon_sysfs +EXPORT_SYMBOL_GPL vmlinux 0xdd42b8bf edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdd44313a ehci_adjust_port_wakeup_flags +EXPORT_SYMBOL_GPL vmlinux 0xdd450ef1 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0xdd57c701 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd6e141e wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xdd7a07ed fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xdd81d8f6 __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xdd9ac3e7 __clk_hw_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xdda5b831 bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0xdda92bad ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xddbe207f espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0xdddb6ddd dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xddf32520 __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xddf8c09d pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0xde0ab64c fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0xde24dc3a crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xde34dd37 nvdimm_security_setup_events +EXPORT_SYMBOL_GPL vmlinux 0xde41eb9e xhci_dbg_trace +EXPORT_SYMBOL_GPL vmlinux 0xde63dae0 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0xde7f578e pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xde8fece6 regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0xde9977bb __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0xde9989cb gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0xdeb95144 fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0xdebc83d5 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xdebcd4c3 strp_stop +EXPORT_SYMBOL_GPL vmlinux 0xded1ee23 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0xded4c7fc i2c_new_dummy_device +EXPORT_SYMBOL_GPL vmlinux 0xded8c0e9 fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0xdee91d7a dtpm_destroy_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xdef842f7 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xdef9c4b6 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0xdeffa0a7 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL vmlinux 0xdf0c757f ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf179f53 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xdf1d55c8 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xdf1e06a1 msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0xdf1e9cfa btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdf3d17e5 phy_pm_runtime_put_sync +EXPORT_SYMBOL_GPL vmlinux 0xdf43e19b disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xdf58cd0a mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0xdf5a0518 devm_nvmem_device_put +EXPORT_SYMBOL_GPL vmlinux 0xdf7c14b8 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xdf7eb503 usb_phy_roothub_resume +EXPORT_SYMBOL_GPL vmlinux 0xdf861903 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xdf98a96f usb_phy_roothub_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdfa44314 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xdfad3464 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xdfb4354e blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0xdfc7f9dc sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0xdfcb6c90 mctrl_gpio_set +EXPORT_SYMBOL_GPL vmlinux 0xdfcfc497 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xdfd5bcc9 iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0xdff568cb klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xdffe1d21 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xe0008f17 usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xe003c4c6 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe02c51db mm_iommu_put +EXPORT_SYMBOL_GPL vmlinux 0xe02d2ecf sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xe02e73cb find_vpid +EXPORT_SYMBOL_GPL vmlinux 0xe04d3ce4 blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0xe05bace5 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe05bf605 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe0614d8d dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0xe0766831 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xe07e3952 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe09e281f debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xe0aba2a0 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xe0b1c103 clk_set_max_rate +EXPORT_SYMBOL_GPL vmlinux 0xe0b51430 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0xe0e96594 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0xe1084c43 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xe108d302 trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xe10a7510 kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0xe10d521a subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xe1108cc0 genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0xe1159ffc iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xe122e1ea register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xe13645fa root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe147c0f1 dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0xe14bda54 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xe157f851 dev_pm_opp_get_sharing_cpus +EXPORT_SYMBOL_GPL vmlinux 0xe161b07b trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe17dce4c pci_hp_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xe1865d82 ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1875faa devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0xe1886040 devm_regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xe18aaafd __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xe194bfa7 crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0xe1ae0dd6 clk_register_composite +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0xe1edc839 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0xe20baeb3 freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0xe20f96b7 pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe23169c7 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe249a2e1 crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xe2691fe2 pm_clk_add_clk +EXPORT_SYMBOL_GPL vmlinux 0xe287adc9 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xe2a0b79b perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xe2b0c200 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2ce2b4d evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0xe2d06ffe of_hte_req_count +EXPORT_SYMBOL_GPL vmlinux 0xe2daeed8 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xe2e41c89 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xe2ee4153 pci_ecam_create +EXPORT_SYMBOL_GPL vmlinux 0xe2f13fae fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0xe3086b3e devm_regulator_irq_helper +EXPORT_SYMBOL_GPL vmlinux 0xe31315a4 spi_delay_exec +EXPORT_SYMBOL_GPL vmlinux 0xe3204e9b mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xe33838a5 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xe33b4f97 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xe34cd575 ata_host_put +EXPORT_SYMBOL_GPL vmlinux 0xe353bbbe nvmem_cell_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xe370e2b9 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xe388f89b xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xe38e1a79 xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0xe390ae99 locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0xe397caf5 seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0xe39d0794 usb_phy_roothub_exit +EXPORT_SYMBOL_GPL vmlinux 0xe3a41ad2 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xe3aeaa03 freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0xe3bc6d43 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xe3e8d39b vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL vmlinux 0xe3f5d51e of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0xe424d440 raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe438a6e7 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe4409599 blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0xe447900b list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xe44ed72e scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xe460d479 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0xe462fe87 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe4719378 nvmem_cell_read_u32 +EXPORT_SYMBOL_GPL vmlinux 0xe493c0a0 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0xe4a5eb4d pci_pri_supported +EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0xe4c2c66c rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0xe4d3747e pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0xe4e2c947 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0xe4e8d6ee of_reconfig_get_state_change +EXPORT_SYMBOL_GPL vmlinux 0xe4e92577 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xe4edb150 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xe50227c4 clk_multiplier_ops +EXPORT_SYMBOL_GPL vmlinux 0xe504cd3a led_set_brightness_nosleep +EXPORT_SYMBOL_GPL vmlinux 0xe5067c90 usb_of_get_companion_dev +EXPORT_SYMBOL_GPL vmlinux 0xe51f9b44 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xe5220151 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xe530a31e sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0xe5396599 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe553ae94 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe556e87f devm_hwmon_sanitize_name +EXPORT_SYMBOL_GPL vmlinux 0xe559dd14 iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0xe5664946 of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0xe5841850 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fbf4d pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xe590c1d0 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe59b4f2b pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe5a13511 scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0xe5a7d1a7 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xe5a7e1bb devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0xe5af1ab2 usb_wakeup_enabled_descendants +EXPORT_SYMBOL_GPL vmlinux 0xe5d126ac fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0xe5da850c dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0xe5e82b6a spi_register_controller +EXPORT_SYMBOL_GPL vmlinux 0xe5ec503b __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xe5ffcf2f perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xe60632a9 edac_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xe616a64d devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0xe62430f8 of_msi_configure +EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0xe649721d copro_calculate_slb +EXPORT_SYMBOL_GPL vmlinux 0xe65028c4 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xe6658b50 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xe672d7a9 lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xe68f245f thermal_zone_of_get_sensor_id +EXPORT_SYMBOL_GPL vmlinux 0xe6a13e7d xive_native_configure_irq +EXPORT_SYMBOL_GPL vmlinux 0xe6a3898f receive_fd +EXPORT_SYMBOL_GPL vmlinux 0xe6c2a51f __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0xe6c36bf9 edac_mc_del_mc +EXPORT_SYMBOL_GPL vmlinux 0xe6c5341d sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6c59685 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0xe6da9667 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0xe6dd8fe3 ehci_hub_control +EXPORT_SYMBOL_GPL vmlinux 0xe6e1e6a0 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe6f30ab9 srp_rport_del +EXPORT_SYMBOL_GPL vmlinux 0xe6f923b7 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xe6fb4e50 of_clk_get_parent_count +EXPORT_SYMBOL_GPL vmlinux 0xe6ffe092 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xe700d767 reset_control_bulk_deassert +EXPORT_SYMBOL_GPL vmlinux 0xe700fb87 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0xe70b0a75 fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0xe70f7a2d led_init_default_state_get +EXPORT_SYMBOL_GPL vmlinux 0xe71fe38a trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0xe725338f blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0xe725b464 bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xe7275989 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xe72c0af5 sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0xe74a9d41 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xe74c4492 phy_configure +EXPORT_SYMBOL_GPL vmlinux 0xe74cf23b power_supply_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe77469c0 screen_pos +EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0xe79bf0c4 klp_shadow_get +EXPORT_SYMBOL_GPL vmlinux 0xe7abe34c fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xe7be906b xive_irq_free_data +EXPORT_SYMBOL_GPL vmlinux 0xe7bf4048 devm_pm_opp_set_regulators +EXPORT_SYMBOL_GPL vmlinux 0xe7c48dab vfio_virqfd_enable +EXPORT_SYMBOL_GPL vmlinux 0xe7c76e58 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0xe7cbfa88 dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0xe7cfeb3b nvmem_device_find +EXPORT_SYMBOL_GPL vmlinux 0xe7d34db2 opal_async_wait_response +EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xe7df6c8c init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xe7ef99e4 regulator_desc_list_voltage_linear_range +EXPORT_SYMBOL_GPL vmlinux 0xe7f18b3c threads_per_subcore +EXPORT_SYMBOL_GPL vmlinux 0xe80fe8ac devm_nvmem_device_get +EXPORT_SYMBOL_GPL vmlinux 0xe8120c29 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe82ba21a irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe861853c crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe87546b7 component_del +EXPORT_SYMBOL_GPL vmlinux 0xe876a1c1 of_icc_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xe878b210 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xe880593a edac_pci_handle_npe +EXPORT_SYMBOL_GPL vmlinux 0xe885a2e2 __nvdimm_create +EXPORT_SYMBOL_GPL vmlinux 0xe898231d vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL vmlinux 0xe8b106e8 nvdimm_bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe8b2d3fe i2c_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0xe8c0065d memory_group_register_static +EXPORT_SYMBOL_GPL vmlinux 0xe8c389ce __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0xe8d07679 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xe8d47226 of_dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0xe8d6c181 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe8e42d4f blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0xe8f1c751 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xe909eee3 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0xe90c9559 tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0xe9108361 kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0xe927225b ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xe93620a9 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xe93bd43b platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0xe93c6442 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9506579 iommu_tce_direction +EXPORT_SYMBOL_GPL vmlinux 0xe95234ce tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xe9537e88 start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xe962e535 phy_pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xe96b2488 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xe975e6b0 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xe976d6f4 rio_unregister_mport +EXPORT_SYMBOL_GPL vmlinux 0xe9770015 clk_hw_get_name +EXPORT_SYMBOL_GPL vmlinux 0xe9799a4a cpu_add_dev_attr_group +EXPORT_SYMBOL_GPL vmlinux 0xe97fac9e regulator_unregister_supply_alias +EXPORT_SYMBOL_GPL vmlinux 0xe988fde6 cpufreq_dbs_governor_start +EXPORT_SYMBOL_GPL vmlinux 0xe98f774c gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0xe98fca27 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0xe9a070b4 fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0xe9b0aed9 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xe9c5f80e shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0xe9f73b66 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xea01147e iommu_take_ownership +EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0xea06db96 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0xea095ba9 dmaengine_desc_set_metadata_len +EXPORT_SYMBOL_GPL vmlinux 0xea09dd09 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xea0f34ca unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea32557f ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xea3a23f3 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0xea48d8ff gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xea55248d pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0xea614e0a mbox_flush +EXPORT_SYMBOL_GPL vmlinux 0xea6dd543 __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0xea70b888 gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0xea88c866 copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xea915f7d rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xea9d1fee of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0xeabb9bbf bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0xeac6c543 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xead035ee __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xead486fd crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xead54924 mctrl_gpio_to_gpiod +EXPORT_SYMBOL_GPL vmlinux 0xead5c8e5 clk_bulk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xeadb8e62 devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xeadf72e1 tm_abort +EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0xeae1dfb0 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xeae9c009 __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xeaf0a57c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xeaf3cb23 crc64_be +EXPORT_SYMBOL_GPL vmlinux 0xeaf8b1c6 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xeb1a4f29 opal_error_code +EXPORT_SYMBOL_GPL vmlinux 0xeb3d36a5 device_add +EXPORT_SYMBOL_GPL vmlinux 0xeb46e175 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xeb46fa2f gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0xeb59f5e9 nvdimm_has_flush +EXPORT_SYMBOL_GPL vmlinux 0xeb61cb78 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0xeb668a26 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xeb6a1489 uart_console_device +EXPORT_SYMBOL_GPL vmlinux 0xeb6bce19 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xeb88cf4f wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xeb89335f serial8250_rpm_get_tx +EXPORT_SYMBOL_GPL vmlinux 0xeb9c71e6 pnv_ocxl_spa_setup +EXPORT_SYMBOL_GPL vmlinux 0xeba7c0fe pci_traverse_device_nodes +EXPORT_SYMBOL_GPL vmlinux 0xebafaa27 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xebbb862a netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xebc5c312 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xebc9a09f lock_system_sleep +EXPORT_SYMBOL_GPL vmlinux 0xebd4cc11 mctrl_gpio_enable_ms +EXPORT_SYMBOL_GPL vmlinux 0xebd84751 clk_register_fixed_rate +EXPORT_SYMBOL_GPL vmlinux 0xebdae8ec ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xebf38ef1 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0xec1fdcde __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xec2d6791 mm_iommu_newdev +EXPORT_SYMBOL_GPL vmlinux 0xec356c53 msr_check_and_set +EXPORT_SYMBOL_GPL vmlinux 0xec472932 __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0xec5668f6 dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0xec5a0401 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xec774acb cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xec7795c5 sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xec7910e1 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xec7aaa50 blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0xec84bfb9 opal_leds_get_ind +EXPORT_SYMBOL_GPL vmlinux 0xeca64a04 l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0xecae1a82 kvmppc_h_clear_ref +EXPORT_SYMBOL_GPL vmlinux 0xecddd63d ata_common_sdev_groups +EXPORT_SYMBOL_GPL vmlinux 0xed0b0460 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0xed0dde2e md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0xed14485f driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xed1a7cc6 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xed223985 pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0xed2c5bcf power_supply_charge_behaviour_parse +EXPORT_SYMBOL_GPL vmlinux 0xed34d15d register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xed39b7b8 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0xed6053f0 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0xed609e50 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xed65f95b l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0xed66ed06 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL vmlinux 0xed784305 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xed7f244a transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0xed918dde hte_init_line_attr +EXPORT_SYMBOL_GPL vmlinux 0xedb78159 dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xedd4651b devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xeddc0d85 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xedddac8c of_mm_gpiochip_add_data +EXPORT_SYMBOL_GPL vmlinux 0xedf2dcb4 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xedf62e9b devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0xee0044ce kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0xee0108f9 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0xee19590a led_set_brightness_sync +EXPORT_SYMBOL_GPL vmlinux 0xee1f5126 __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xee25d33b pci_host_common_probe +EXPORT_SYMBOL_GPL vmlinux 0xee320db0 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee3b4486 icc_link_create +EXPORT_SYMBOL_GPL vmlinux 0xee4bd57f of_device_modalias +EXPORT_SYMBOL_GPL vmlinux 0xee518148 kmsg_dump_get_buffer +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 0xee6da522 blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0xee7c8478 bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0xee8da70e crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xeea02d33 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xeed0cea4 kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0xeed26b3a gov_attr_set_init +EXPORT_SYMBOL_GPL vmlinux 0xeed5c499 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0xeee0db1e ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xeef0f10d devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0xeefa5221 init_phb_dynamic +EXPORT_SYMBOL_GPL vmlinux 0xef03802e pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xef227c01 addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0xef29fcdd clk_bulk_put +EXPORT_SYMBOL_GPL vmlinux 0xef2d7857 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xef32f15d usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0xef483e51 crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0xef4c8d4c linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0xef4ca87e fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0xef5be910 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xef5db66d regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xef682e30 nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6d0376 opal_invalid_call +EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0xef830c5e show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xef8dfa2d devm_mipi_dsi_attach +EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefd77d8e clk_hw_set_rate_range +EXPORT_SYMBOL_GPL vmlinux 0xefd7a47f of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xefe7a72f firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0xefe9363e ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0xefeafcf1 edac_has_mcs +EXPORT_SYMBOL_GPL vmlinux 0xf01d340c crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0xf027525b of_dma_is_coherent +EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0xf0616f6e tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf06d5de3 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf06dbd8a fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0xf07e539c tty_save_termios +EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0xf091757c regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xf0a0cfb6 phy_led_triggers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf0af38c8 of_icc_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0xf0b18c51 phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0xf0b2e511 pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xf0b3e8be gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xf0b98f7f perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0xf0d287f8 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf0f150b0 pinctrl_parse_index_with_args +EXPORT_SYMBOL_GPL vmlinux 0xf0f91325 dax_zero_range +EXPORT_SYMBOL_GPL vmlinux 0xf0ffc315 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xf10956b1 ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0xf11971bc device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xf11a6020 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xf11d1cd1 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0xf12b0f26 bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0xf14317ef devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf14ec097 devfreq_event_reset_event +EXPORT_SYMBOL_GPL vmlinux 0xf1604c27 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xf16b8eba devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf17ae215 usb_device_match_id +EXPORT_SYMBOL_GPL vmlinux 0xf17d26a9 nvdimm_in_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xf1804287 cxl_afu_put +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1896aa3 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xf18e4ed2 dev_pm_disable_wake_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1911b20 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf1980932 pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0xf198a19a devfreq_get_devfreq_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xf1a62b6f of_i8042_kbd_irq +EXPORT_SYMBOL_GPL vmlinux 0xf1bab6d7 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xf1bd7e4a kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0xf1c2bafe irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0xf1d2cc58 dev_attr_ncq_prio_enable +EXPORT_SYMBOL_GPL vmlinux 0xf1ee01f3 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0xf1f36947 irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf2231c3b wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xf2411aea unregister_nvdimm_pmu +EXPORT_SYMBOL_GPL vmlinux 0xf25d2eac pm_genpd_opp_to_performance_state +EXPORT_SYMBOL_GPL vmlinux 0xf2716698 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf28f66ea dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0xf291a3fd fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0xf29296b0 blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0xf2ad1eba platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0xf2b1fc82 regulator_get_voltage_rdev +EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xf2d44ce0 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0xf2df2a24 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0xf2e064c2 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xf2f0b73a xive_native_get_vp_state +EXPORT_SYMBOL_GPL vmlinux 0xf2f28652 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default +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 0xf32ed297 dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf336519a usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xf33bc2a3 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf348b18b vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xf34dc0ff stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xf35ac6b3 clk_divider_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xf35cbfb5 irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0xf36c36ff hwspin_lock_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xf36ea3ec vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0xf374590e blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0xf3779ada preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0xf37e837a cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf3a3219f component_add +EXPORT_SYMBOL_GPL vmlinux 0xf3b443eb rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3c860e8 regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3cdf723 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xf3e31d8f dev_pm_opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0xf3eaf867 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xf3f04cd0 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0xf3f2c1a4 bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0xf41902cf tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0xf42ab475 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xf44e4bff pcibios_free_controller +EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf46e6309 crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0xf46f7c73 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xf4703c9a irq_gc_noop +EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0xf47f09da blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0xf47f9492 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xf48e7769 __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0xf4959e1d find_mci_by_dev +EXPORT_SYMBOL_GPL vmlinux 0xf49e31d2 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0xf4a00349 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0xf4bd1486 agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf4bec4dc do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0xf4c994f5 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xf4cd9f8f reset_control_bulk_release +EXPORT_SYMBOL_GPL vmlinux 0xf4f61334 device_del +EXPORT_SYMBOL_GPL vmlinux 0xf4f865df cpufreq_enable_fast_switch +EXPORT_SYMBOL_GPL vmlinux 0xf5134530 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xf51498ae rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf515821d phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0xf525fbd6 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xf52dc7d6 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xf53464d6 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf548a180 governor_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5541651 __clk_mux_determine_rate +EXPORT_SYMBOL_GPL vmlinux 0xf56b8991 fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0xf574c34b scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xf57ee27c __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xf58dab0a sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a3ba99 linear_range_values_in_range +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5ab1b88 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf5b1e447 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0xf5b372e3 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xf5b3ae9d page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0xf5b70697 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xf5c62cc0 pinctrl_utils_free_map +EXPORT_SYMBOL_GPL vmlinux 0xf5ca2deb irq_gc_set_wake +EXPORT_SYMBOL_GPL vmlinux 0xf5cd3243 pnv_ocxl_spa_remove_pe_from_cache +EXPORT_SYMBOL_GPL vmlinux 0xf5cd84e7 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xf5f0678b metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0xf5f71b7d sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xf6000b44 devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0xf6148ae7 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xf61ad5af kernstart_virt_addr +EXPORT_SYMBOL_GPL vmlinux 0xf623916d spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf6246e67 extcon_set_property_sync +EXPORT_SYMBOL_GPL vmlinux 0xf624e519 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xf632ca39 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf63961c6 rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0xf63affe6 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0xf64ce724 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0xf64f0f5c get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xf6563f2f sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0xf656e609 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0xf663ee2f pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0xf6650caa tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0xf66ef60c ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xf684f795 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf6891d7c netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xf68b7e78 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0xf6908867 devm_regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xf6a0c9ba platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf6a28554 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xf6a7134f iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0xf6ab7050 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6beb116 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0xf6beee37 __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6d51dc0 dev_pm_opp_remove_table +EXPORT_SYMBOL_GPL vmlinux 0xf6e05d25 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0xf6e250ee usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xf6e6e698 devm_usb_get_phy_by_node +EXPORT_SYMBOL_GPL vmlinux 0xf6e772c3 irq_bypass_unregister_producer +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6ee55b0 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0xf70a7495 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0xf723bda2 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size +EXPORT_SYMBOL_GPL vmlinux 0xf72fea62 sbitmap_queue_clear +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 0xf756afc7 mmc_pwrseq_register +EXPORT_SYMBOL_GPL vmlinux 0xf757d61f crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0xf7696bd0 dev_pm_opp_enable +EXPORT_SYMBOL_GPL vmlinux 0xf77f6620 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0xf78618bb pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xf78dada0 vfio_assign_device_set +EXPORT_SYMBOL_GPL vmlinux 0xf78df7ca iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0xf7958c20 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf7ab90c1 rio_free_net +EXPORT_SYMBOL_GPL vmlinux 0xf7aef977 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf7b5790c alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xf7cfe62b usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xf7d961d8 clk_hw_unregister_composite +EXPORT_SYMBOL_GPL vmlinux 0xf7e19cd7 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xf7ed8bfa devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0xf80f5fc7 __SCK__tp_func_ata_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xf81dce70 thermal_genl_cpu_capability_event +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8314f3d fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0xf8343945 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0xf852d746 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xf85508a8 screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0xf85a7c1f md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xf85b9835 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0xf87450c0 pcibios_finish_adding_to_bus +EXPORT_SYMBOL_GPL vmlinux 0xf8749487 gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0xf87dae32 devm_phy_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf8dad2d1 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xf8ddbd6c usb_role_switch_find_by_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xf8e10930 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fc4b3b regulator_set_active_discharge_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf9090ad7 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0xf9093f5b __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xf93daa1f blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0xf955e9c5 bprintf +EXPORT_SYMBOL_GPL vmlinux 0xf9645b16 dev_pm_opp_of_find_icc_paths +EXPORT_SYMBOL_GPL vmlinux 0xf96b637a perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0xf9707214 iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf97471ef opal_i2c_request +EXPORT_SYMBOL_GPL vmlinux 0xf9783ba7 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0xf98614f8 shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0xf99fb22e clk_hw_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9a9c792 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xf9c0535c edac_mc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfa09e618 cxl_afu_get +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa29972d __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfa2a9890 pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0xfa396924 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xfa43cefc is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xfa665f98 regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0xfa6bde35 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xfa7d2ad8 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xfa7d87f1 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xfa7f77f9 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0xfaa781ea icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0xfaaf8621 power_supply_battery_bti_in_range +EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0xfab53ed9 pinctrl_gpio_can_use_line +EXPORT_SYMBOL_GPL vmlinux 0xfabb6aff opal_flash_erase +EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0xfadddb7b rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xfae172e0 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0xfaea954d ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xfb122adb __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0xfb151f1f crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xfb2e52bf pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb33ea69 nvdimm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfb479a27 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xfb4fdd22 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xfb5edf3b pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb71f192 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xfb720a6c serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0xfb738290 trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0xfb7f8928 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xfb80eba4 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action +EXPORT_SYMBOL_GPL vmlinux 0xfbccd3b1 dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0xfbdbd321 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0xfbdc7ae7 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfbe84a03 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0xfbeb7109 devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0xfbec57e7 phy_set_speed +EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc0b397e devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0xfc0b62fc crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0xfc0b9c2a of_clk_get_from_provider +EXPORT_SYMBOL_GPL vmlinux 0xfc0c7653 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xfc14bb2e dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xfc1f103f da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc234177 _kvmppc_save_tm_pr +EXPORT_SYMBOL_GPL vmlinux 0xfc28d162 __of_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xfc28e710 to_nvdimm_bus +EXPORT_SYMBOL_GPL vmlinux 0xfc464ebd netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0xfc50d8e8 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xfc51b499 mmu_lpid_bits +EXPORT_SYMBOL_GPL vmlinux 0xfc5d269e tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0xfc5d29d7 __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0xfc611ef6 uart_xchar_out +EXPORT_SYMBOL_GPL vmlinux 0xfc683b45 has_big_cores +EXPORT_SYMBOL_GPL vmlinux 0xfc78914c crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0xfc8de9e8 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xfca7f934 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0xfcaf49b0 trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0xfcbfec70 add_memory_driver_managed +EXPORT_SYMBOL_GPL vmlinux 0xfcc1edd3 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfcf6c285 kvmppc_h_protect +EXPORT_SYMBOL_GPL vmlinux 0xfcf8b1b6 devm_extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xfcf9b6fd get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfcfa0f11 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfd050d8c edac_pci_add_device +EXPORT_SYMBOL_GPL vmlinux 0xfd0dfc44 clk_mux_ro_ops +EXPORT_SYMBOL_GPL vmlinux 0xfd1111bf get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xfd120773 serial8250_do_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfd144d24 __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xfd167d11 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfd2c62ad devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfd44919f regulator_set_ramp_delay_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfd4fb870 extcon_get_property_capability +EXPORT_SYMBOL_GPL vmlinux 0xfd534e30 rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd5b1c72 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0xfd6c8fca __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0xfd763723 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0xfd76ea5a nf_queue +EXPORT_SYMBOL_GPL vmlinux 0xfd7833c7 kvm_free_hpt_cma +EXPORT_SYMBOL_GPL vmlinux 0xfd7bb6a5 of_resolve_phandles +EXPORT_SYMBOL_GPL vmlinux 0xfd840dad synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xfd87a204 pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xfd960f10 i2c_dw_adjust_bus_speed +EXPORT_SYMBOL_GPL vmlinux 0xfd9940e5 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0xfd9afd47 unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0xfd9b4438 iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0xfda51b10 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xfdb159bc serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdc1b891 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xfdcf3f4f kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xfdd44dfe vfio_pci_core_enable +EXPORT_SYMBOL_GPL vmlinux 0xfddf6b41 __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0xfde9bb07 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0xfdee5d03 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xfdee88dd virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xfdf0c6d6 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfdfdc907 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xfe06e2a0 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfe108e08 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0xfe132796 disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0xfe19dc28 vivaldi_function_row_physmap_show +EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0xfe1eb439 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0xfe2c3286 usb_anchor_resume_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xfe31b505 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xfe320352 desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0xfe37c4a5 class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe42587b sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xfe474a52 scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe577971 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfe7b22d7 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xfe8238b1 power_supply_property_is_writeable +EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe8e7d90 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xfe9335ba usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe99dad0 dtpm_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xfea177ac sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0xfeaa1558 opal_async_wait_response_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xfec89593 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfed16b08 of_add_property +EXPORT_SYMBOL_GPL vmlinux 0xfed80b93 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xfede9222 __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xfee77b76 iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff1666f3 reset_control_bulk_assert +EXPORT_SYMBOL_GPL vmlinux 0xff21dc7e dev_pm_opp_of_add_table_indexed +EXPORT_SYMBOL_GPL vmlinux 0xff291ecf clk_unregister_divider +EXPORT_SYMBOL_GPL vmlinux 0xff2ba675 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0xff3b4c2f devm_hte_register_chip +EXPORT_SYMBOL_GPL vmlinux 0xff42c374 usb_role_switch_get_role +EXPORT_SYMBOL_GPL vmlinux 0xff5bd2fa iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0xff622d1f pm_genpd_add_subdomain +EXPORT_SYMBOL_GPL vmlinux 0xff7c2d7d clk_hw_register_composite +EXPORT_SYMBOL_GPL vmlinux 0xff7d97ea xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0xff90dff8 ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0xff99ec2a i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xffa992e4 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xffab3064 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xffba940d skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xffc18da1 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xffdab036 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0xffdc88c5 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0xfff8e292 tty_ldisc_ref_wait +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux +HWMON_THERMAL EXPORT_SYMBOL_GPL 0xc234d9e9 hwmon_device_register_for_thermal vmlinux +IIO_AD5592R EXPORT_SYMBOL_GPL 0x20acc0b8 ad5592r_remove drivers/iio/dac/ad5592r-base +IIO_AD5592R EXPORT_SYMBOL_GPL 0x566a8c93 ad5592r_probe drivers/iio/dac/ad5592r-base +IIO_AD5686 EXPORT_SYMBOL_GPL 0x2f8f6368 ad5686_remove drivers/iio/dac/ad5686 +IIO_AD5686 EXPORT_SYMBOL_GPL 0xffb2f9ba ad5686_probe drivers/iio/dac/ad5686 +IIO_AD7091R EXPORT_SYMBOL_GPL 0x07fde7bd ad7091r_probe drivers/iio/adc/ad7091r-base +IIO_AD7091R EXPORT_SYMBOL_GPL 0xb12f0c0a ad7091r_regmap_config drivers/iio/adc/ad7091r-base +IIO_AD7606 EXPORT_SYMBOL_GPL 0x611bbe49 ad7606_pm_ops drivers/iio/adc/ad7606 +IIO_AD7606 EXPORT_SYMBOL_GPL 0x8a97885e ad7606_probe drivers/iio/adc/ad7606 +IIO_ADISLIB EXPORT_SYMBOL 0x3fa92d04 adis_debugfs_reg_access drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL 0x85e3ce06 __adis_enable_irq drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x0e791ffd __adis_update_bits_base drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x0f3a3c26 adis_single_conversion drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x30f8f247 adis_update_scan_mode drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x38fa63bd __adis_initial_startup drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x3cf5149b __adis_read_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x5cb942e2 devm_adis_setup_buffer_and_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x61eb062b devm_adis_probe_trigger drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x911a4ca1 __adis_write_reg drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0x9b8db5b6 __adis_check_status drivers/iio/imu/adis_lib +IIO_ADISLIB EXPORT_SYMBOL_GPL 0xd523ded7 adis_init drivers/iio/imu/adis_lib +IIO_ADIS_LIB EXPORT_SYMBOL_GPL 0x823824d0 __adis_reset drivers/iio/imu/adis_lib +IIO_ADXL313 EXPORT_SYMBOL_GPL 0x8401eedc adxl313_readable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xd539e537 adxl313_core_probe drivers/iio/accel/adxl313_core +IIO_ADXL313 EXPORT_SYMBOL_GPL 0xf6f7b9f3 adxl313_writable_regs_table drivers/iio/accel/adxl313_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0x6ff5403b adxl355_readable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xb446fa86 adxl355_writeable_regs_tbl drivers/iio/accel/adxl355_core +IIO_ADXL355 EXPORT_SYMBOL_GPL 0xe5b5abf8 adxl355_core_probe drivers/iio/accel/adxl355_core +IIO_ADXL367 EXPORT_SYMBOL_GPL 0xd2c40241 adxl367_probe drivers/iio/accel/adxl367 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x813257c8 adxl372_probe drivers/iio/accel/adxl372 +IIO_ADXL372 EXPORT_SYMBOL_GPL 0x84ff188b adxl372_readable_noinc_reg drivers/iio/accel/adxl372 +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x004ac1d6 ad_sigma_delta_single_conversion drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x037be8e2 ad_sd_set_comm drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x0a793445 ad_sd_calibrate drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x1686a4fe ad_sd_write_reg drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x7536a7e8 ad_sd_reset drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x85446eb6 ad_sd_calibrate_all drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0x8bff6703 devm_ad_sd_setup_buffer_and_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xafdafb18 ad_sd_init drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xd142600f ad_sd_validate_trigger drivers/iio/adc/ad_sigma_delta +IIO_AD_SIGMA_DELTA EXPORT_SYMBOL_GPL 0xe4d23781 ad_sd_read_reg drivers/iio/adc/ad_sigma_delta +IIO_BMA400 EXPORT_SYMBOL 0x3ed215a0 bma400_probe drivers/iio/accel/bma400_core +IIO_BMA400 EXPORT_SYMBOL 0x7a1b7b1d bma400_regmap_config drivers/iio/accel/bma400_core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x6dc055c7 bmc150_accel_core_remove drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0x71a3e680 bmc150_accel_pm_ops drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xc50f4f4a bmc150_accel_core_probe drivers/iio/accel/bmc150-accel-core +IIO_BMC150 EXPORT_SYMBOL_GPL 0xff03e4f1 bmc150_regmap_conf drivers/iio/accel/bmc150-accel-core +IIO_BMC150_MAGN EXPORT_SYMBOL 0x8c5d4088 bmc150_magn_remove drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xa3d11b8c bmc150_magn_pm_ops drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xe9983561 bmc150_magn_regmap_config drivers/iio/magnetometer/bmc150_magn +IIO_BMC150_MAGN EXPORT_SYMBOL 0xf9bd1a66 bmc150_magn_probe drivers/iio/magnetometer/bmc150_magn +IIO_BME680 EXPORT_SYMBOL 0xc8d1f1c2 bme680_regmap_config drivers/iio/chemical/bme680_core +IIO_BME680 EXPORT_SYMBOL_GPL 0xa41aaff7 bme680_core_probe drivers/iio/chemical/bme680_core +IIO_BMI088 EXPORT_SYMBOL_GPL 0x8495226e bmi088_accel_core_remove drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xb9e90f96 bmi088_accel_core_probe drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xc81de78f bmi088_accel_pm_ops drivers/iio/accel/bmi088-accel-core +IIO_BMI088 EXPORT_SYMBOL_GPL 0xd2ebecf2 bmi088_regmap_conf drivers/iio/accel/bmi088-accel-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x353d399a fxls8962af_pm_ops drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x37d75ccf fxls8962af_core_probe drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0x428b378e fxls8962af_i2c_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_FXLS8962AF EXPORT_SYMBOL_GPL 0xe055a34b fxls8962af_spi_regmap_conf drivers/iio/accel/fxls8962af-core +IIO_HID EXPORT_SYMBOL 0x0002231e hid_sensor_read_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x1255ddae hid_sensor_remove_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x25bd94c7 hid_sensor_pm_ops drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x2d5e1b94 hid_sensor_write_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x6321dea8 hid_sensor_write_samp_freq_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7b13709d hid_sensor_read_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x7f7621ec hid_sensor_format_scale drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0x82fc7ba1 hid_sensor_setup_trigger drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID EXPORT_SYMBOL 0x87d1b892 hid_sensor_write_raw_hyst_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xa03ec1f1 hid_sensor_convert_timestamp drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xb402cd74 hid_sensor_parse_common_attributes drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xb888d48f hid_sensor_read_raw_hyst_rel_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID EXPORT_SYMBOL 0xc53e510f hid_sensor_power_state drivers/iio/common/hid-sensors/hid-sensor-trigger +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x1cc881e9 hid_sensor_read_poll_value drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0x6a3d55de hid_sensor_batch_mode_supported drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xa8e5109f hid_sensor_get_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HID_ATTRIBUTES EXPORT_SYMBOL 0xbfc5b558 hid_sensor_set_report_latency drivers/iio/common/hid-sensors/hid-sensor-iio-common +IIO_HMC5843 EXPORT_SYMBOL 0x311f8725 hmc5843_common_probe drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0x7515e384 hmc5843_common_remove drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xb394ad7d hmc5843_common_suspend drivers/iio/magnetometer/hmc5843_core +IIO_HMC5843 EXPORT_SYMBOL 0xf76fd12e hmc5843_common_resume drivers/iio/magnetometer/hmc5843_core +IIO_KXSD9 EXPORT_SYMBOL 0x68305888 kxsd9_common_remove drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xd1c0154f kxsd9_dev_pm_ops drivers/iio/accel/kxsd9 +IIO_KXSD9 EXPORT_SYMBOL 0xefbe746d kxsd9_common_probe drivers/iio/accel/kxsd9 +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x045688dd ms_sensors_read_prom_word drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x2d2f5cd5 ms_sensors_reset drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x42b6a050 ms_sensors_convert_and_read drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x7999d398 ms_sensors_read_serial drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0x9f35b0cb ms_sensors_write_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xb277db9d ms_sensors_ht_read_humidity drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xd7759546 ms_sensors_tp_read_prom drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xdd8b7d41 ms_sensors_ht_read_temperature drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xde653e9d ms_sensors_write_resolution drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xe7222cd5 ms_sensors_show_heater drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xef6f1eb7 ms_sensors_read_temp_and_pressure drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MEAS_SPEC_SENSORS EXPORT_SYMBOL 0xeff5bb94 ms_sensors_show_battery_low drivers/iio/common/ms_sensors/ms_sensors_i2c +IIO_MMA7455 EXPORT_SYMBOL_GPL 0x1b26618b mma7455_core_regmap drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0xe5e27fa6 mma7455_core_probe drivers/iio/accel/mma7455_core +IIO_MMA7455 EXPORT_SYMBOL_GPL 0xef33a3b6 mma7455_core_remove drivers/iio/accel/mma7455_core +IIO_MMA9551 EXPORT_SYMBOL 0x00dd6933 mma9551_read_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x0426794a mma9551_read_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x04e8a825 mma9551_gpio_config drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x065d3bfd mma9551_update_config_bits drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x0ccf1587 mma9551_write_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x25326cbb mma9551_write_config_word drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x29940c97 mma9551_set_power_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x2c7162c2 mma9551_read_version drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x41ef446c mma9551_read_accel_scale drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x45d48997 mma9551_read_config_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x508ccef4 mma9551_set_device_state drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x87bb629b mma9551_app_reset drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0x95587d17 mma9551_read_accel_chan drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xa304d499 mma9551_read_status_words drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xbcd7fe96 mma9551_sleep drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xc3c4dfdf mma9551_write_config_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xd19ed793 mma9551_read_status_byte drivers/iio/accel/mma9551_core +IIO_MMA9551 EXPORT_SYMBOL 0xd221991c mma9551_read_status_word drivers/iio/accel/mma9551_core +IIO_MPL115 EXPORT_SYMBOL_GPL 0xae24133b mpl115_probe drivers/iio/pressure/mpl115 +IIO_MS5611 EXPORT_SYMBOL 0xa7bdb6dc ms5611_probe drivers/iio/pressure/ms5611_core +IIO_MS5611 EXPORT_SYMBOL 0xc60b9f96 ms5611_remove drivers/iio/pressure/ms5611_core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x0a1424e0 rm3100_volatile_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0x17137b55 rm3100_common_probe drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xaa911f08 rm3100_readable_table drivers/iio/magnetometer/rm3100-core +IIO_RM3100 EXPORT_SYMBOL_GPL 0xcc7209be rm3100_writable_table drivers/iio/magnetometer/rm3100-core +IIO_SCD30 EXPORT_SYMBOL 0x497de3ae scd30_probe drivers/iio/chemical/scd30_core +IIO_SCD30 EXPORT_SYMBOL 0x747b2780 scd30_pm_ops drivers/iio/chemical/scd30_core +IIO_SSP_SENSORS EXPORT_SYMBOL 0x1d54671e ssp_disable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x2971542a ssp_get_sensor_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x48430d72 ssp_register_consumer drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0x5f1ab284 ssp_common_process_data drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0x78fff4d8 ssp_common_buffer_postdisable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0xa996da3e ssp_common_buffer_postenable drivers/iio/common/ssp_sensors/ssp_iio +IIO_SSP_SENSORS EXPORT_SYMBOL 0xd77db481 ssp_enable_sensor drivers/iio/common/ssp_sensors/sensorhub +IIO_SSP_SENSORS EXPORT_SYMBOL 0xd87d0517 ssp_change_delay drivers/iio/common/ssp_sensors/sensorhub +IIO_ST_SENSORS EXPORT_SYMBOL 0x0256343d st_sensors_validate_device drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x04bb5ceb st_sensors_init_sensor drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x074d7047 st_sensors_trigger_handler drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x0d1af328 st_sensors_dev_name_probe drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x237eedde st_gyro_common_probe drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0x2586813e st_magn_get_settings drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x2ecd0cd7 st_sensors_set_dataready_irq drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x3aec2fee st_magn_common_probe drivers/iio/magnetometer/st_magn +IIO_ST_SENSORS EXPORT_SYMBOL 0x48cce6e0 st_press_common_probe drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x51afa7f2 st_accel_get_settings drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x57cb8dbc st_press_get_settings drivers/iio/pressure/st_pressure +IIO_ST_SENSORS EXPORT_SYMBOL 0x587820dc st_sensors_spi_configure drivers/iio/common/st_sensors/st_sensors_spi +IIO_ST_SENSORS EXPORT_SYMBOL 0x5e8ab877 st_accel_common_probe drivers/iio/accel/st_accel +IIO_ST_SENSORS EXPORT_SYMBOL 0x61c2908e st_sensors_sysfs_sampling_frequency_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x65cf3222 st_sensors_allocate_trigger drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7a5406db st_sensors_sysfs_scale_avail drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x7e647d01 st_sensors_i2c_configure drivers/iio/common/st_sensors/st_sensors_i2c +IIO_ST_SENSORS EXPORT_SYMBOL 0x83ec3079 st_sensors_verify_id drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x93cdb277 st_sensors_set_fullscale_by_gain drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0x9e37df8f st_sensors_debugfs_reg_access drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xb4724a9f st_gyro_get_settings drivers/iio/gyro/st_gyro +IIO_ST_SENSORS EXPORT_SYMBOL 0xb674220f st_sensors_set_odr drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xc6d33b66 st_sensors_get_settings_index drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xcf63acfd st_sensors_read_info_raw drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xd7eacde0 st_sensors_set_axis_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xe7e4c116 st_sensors_set_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL 0xf4478297 st_sensors_power_enable drivers/iio/common/st_sensors/st_sensors +IIO_ST_SENSORS EXPORT_SYMBOL_GPL 0x7cd8c1a8 st_lsm9ds0_probe drivers/iio/imu/st_lsm9ds0/st_lsm9ds0 +IIO_UVIS25 EXPORT_SYMBOL 0x77e81860 st_uvis25_pm_ops drivers/iio/light/st_uvis25_core +IIO_UVIS25 EXPORT_SYMBOL 0xc346f236 st_uvis25_probe drivers/iio/light/st_uvis25_core +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x0ef7c8aa zpa2326_probe drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x9978c372 zpa2326_isreg_precious drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0x9c43e18d zpa2326_pm_ops drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xb6ece523 zpa2326_isreg_readable drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xbd2efcda zpa2326_remove drivers/iio/pressure/zpa2326 +IIO_ZPA2326 EXPORT_SYMBOL_GPL 0xf9a02b48 zpa2326_isreg_writeable drivers/iio/pressure/zpa2326 +IWLWIFI EXPORT_SYMBOL_GPL 0x02386ccb iwl_poll_direct_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x04393787 iwl_fw_runtime_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x077add68 __iwl_warn drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0a45c8b6 iwl_read_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x0f03dac2 iwl_parse_nvm_mcc_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x13966ade iwl_fw_dbg_collect_desc drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x188348c6 iwl_parse_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1e0d15f1 iwl_fw_runtime_resume drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x1ee1c386 iwl_wait_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x229d8b26 iwl_init_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x24fc3bc8 __iwl_dbg drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2710c362 iwl_dump_desc_assert drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x2d8aa4d4 iwl_get_cmd_string drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x310cdfdc __iwl_info drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x32412dda iwl_force_nmi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x327e466d iwl_configure_rxq drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35033c81 iwl_phy_db_free drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x35307150 iwl_notification_wait drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x37956b72 rs_pretty_print_rate drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x39e31eea iwl_init_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x3be3902a iwl_cmd_groups_verify_sorted drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x4099c6d8 iwl_get_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x41275ea9 iwl_parse_eeprom_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x443770b2 iwl_read32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x472dc0e4 iwl_free_fw_paging drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49806499 iwl_pnvm_load drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x49e0135d iwl_new_rate_from_v1 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x54fd1771 iwl_fw_dbg_error_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x562a0328 iwl_write_prph_delay drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x56b350e6 iwl_fw_dbg_collect_trig drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x585ae6c0 iwl_fw_dbg_stop_sync drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x58b9aa2b iwl_write8 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x5c52e109 iwl_opmode_deregister drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x605b381b iwl_dbg_tlv_del_timers drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x643e9890 iwl_set_soc_latency drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x6e4a86d9 iwl_notification_wait_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x724e8822 iwl_remove_notification drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x7307e077 iwl_abort_notification_waits drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x776221bf iwl_send_phy_db_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x78971d7e iwl_he_is_sgi drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x811b27bf iwl_fw_dbg_read_d3_debug_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x828c6838 iwlwifi_mod_params drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x84bb50e1 iwl_rs_pretty_ant drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x874c77de iwl_fw_rate_idx_to_plcp drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8799e783 iwl_get_shared_mem_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8bdd1ae7 iwl_fw_dbg_stop_restart_recording drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8c6e01f9 iwl_opmode_register drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x8f358072 _iwl_dbg_tlv_time_point drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x9200182f iwl_write64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x930bfb32 iwl_write_prph64_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x97ff12eb iwl_set_bits_mask_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0x99093f70 iwl_read_external_nvm drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xa005f1ba iwl_finish_nic_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xaa8ec645 iwl_read_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xafd01a7f iwl_read_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb37b318c iwl_rs_pretty_bw drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb541edbb iwl_trans_send_cmd drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7d5ffb1 iwl_rate_mcs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xb7dc0afc iwl_parse_mei_nvm_data drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xba9fd826 iwl_write_direct32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xce0c6460 iwl_phy_db_set_section drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd1534624 iwl_fw_dbg_collect drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xd1a2b4e8 iwl_write32 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xda611eed iwl_fw_runtime_suspend drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xdffe9472 iwl_fw_start_dbg_conf drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe02edaa7 __iwl_crit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe22ef3ec __iwl_err drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xe9214345 iwl_poll_bit drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xea1b26fc iwl_nvm_fixups drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xebf71724 iwl_read_eeprom drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf1aca07d iwl_clear_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf2d3a339 iwl_write_prph_no_grab drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf770084b iwl_phy_db_init drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xf93d74e1 iwl_write_direct64 drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfa00bb66 iwl_fwrt_dump_error_logs drivers/net/wireless/intel/iwlwifi/iwlwifi +IWLWIFI EXPORT_SYMBOL_GPL 0xfdd43512 iwl_set_bits_prph drivers/net/wireless/intel/iwlwifi/iwlwifi +LTC2497 EXPORT_SYMBOL 0x61ab3a42 ltc2497core_remove drivers/iio/adc/ltc2497-core +LTC2497 EXPORT_SYMBOL 0xee6e46a2 ltc2497core_probe drivers/iio/adc/ltc2497-core +MCB EXPORT_SYMBOL_GPL 0x018925c5 mcb_device_register drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x1d8e7e17 mcb_bus_put drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x2c36b391 __mcb_register_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x32ce6fb5 mcb_get_resource drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x4a7d1abd chameleon_parse_cells drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x53bdef79 mcb_bus_add_devices drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x614c559a mcb_free_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x63bcbda7 mcb_unregister_driver drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0x8d9ba47a mcb_get_irq drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xa85fc51d mcb_alloc_dev drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xaf7ad989 mcb_alloc_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xb956128b mcb_bus_get drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xd0ef2f45 mcb_release_bus drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xdfea4bf8 mcb_request_mem drivers/mcb/mcb +MCB EXPORT_SYMBOL_GPL 0xeb2c8905 mcb_release_mem drivers/mcb/mcb +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x0587f2c0 nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x371d8730 nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x8c2fe2c9 nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xacef3e67 nvme_passthru_end drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xd50c116f nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xdade383a nvme_put_ns drivers/nvme/host/nvme-core +PECI EXPORT_SYMBOL_GPL 0x0667a010 peci_xfer_ep_mmio64_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x07284fbb peci_request_temp_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x07e5486d peci_request_data_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x0a1c2e89 peci_xfer_ep_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x20ecd10e peci_request_data_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x460a763c peci_request_data_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x491d6dd4 peci_xfer_ep_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x5d174827 peci_driver_unregister drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x5d587a54 __peci_driver_register drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x65c9dda2 peci_xfer_pci_cfg_local_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x6b7fb37f peci_request_alloc drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x70c49543 peci_xfer_ep_pci_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x78194925 peci_xfer_pci_cfg_local_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7a4fd3e7 peci_xfer_pkg_cfg_readq drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x7ceb5251 peci_xfer_ep_mmio32_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x821520ed peci_xfer_pkg_cfg_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8c1cc886 peci_request_dib_read drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x8febe2cc devm_peci_controller_add drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0x943c36c1 peci_request_free drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xae40ff53 peci_xfer_ep_pci_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xaea4dab5 peci_xfer_pkg_cfg_readl drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xc343434c peci_xfer_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xc631200c peci_xfer_get_dib drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xd4984499 peci_xfer_ep_pci_cfg_local_readb drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe19fd329 peci_xfer_pkg_cfg_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe31c1df8 peci_request_status drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe6f5173a peci_request_data_readw drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xe77e8ae3 peci_xfer_get_temp drivers/peci/peci +PECI EXPORT_SYMBOL_GPL 0xed41bc0e peci_xfer_ep_pci_cfg_readl drivers/peci/peci +PECI_CPU EXPORT_SYMBOL_GPL 0x04dd9a76 peci_ep_pci_local_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0x5129a97b peci_pcs_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xa74e4336 peci_temp_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xe3efd469 peci_mmio_read drivers/peci/peci-cpu +PECI_CPU EXPORT_SYMBOL_GPL 0xfd5c6356 peci_pci_local_read drivers/peci/peci-cpu +PMBUS EXPORT_SYMBOL_GPL 0x05d2bcbf pmbus_update_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x0f574ff8 pmbus_do_probe drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x2538c571 pmbus_clear_cache drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3732c841 pmbus_write_byte drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x3de4e3db pmbus_read_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x45039b70 pmbus_read_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x4aed6c16 pmbus_get_debugfs_dir drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x66afff2b pmbus_regulator_ops drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x7f5f48fa pmbus_get_fan_rate_cached drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x89a99685 pmbus_check_byte_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0x8c52db43 pmbus_check_word_register drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xa308259e pmbus_write_word_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xa890353d pmbus_clear_faults drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xa97ae6f2 pmbus_set_update drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xce7a35a4 pmbus_update_fan drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd07403a5 pmbus_get_fan_rate_device drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xd937a871 pmbus_get_driver_info drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xf2134de9 pmbus_write_byte_data drivers/hwmon/pmbus/pmbus_core +PMBUS EXPORT_SYMBOL_GPL 0xf7eccee9 pmbus_set_page drivers/hwmon/pmbus/pmbus_core +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x56f5c15b sx_common_read_event_config drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0x722bb883 sx_common_read_proximity drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xa69e9a66 sx_common_probe drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd07d0025 sx_common_events drivers/iio/proximity/sx_common +SEMTECH_PROX EXPORT_SYMBOL_GPL 0xd6904532 sx_common_write_event_config drivers/iio/proximity/sx_common +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x62086238 cs35l45_pm_ops sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0x623823b8 cs35l45_probe sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45 EXPORT_SYMBOL_GPL 0xd9481434 cs35l45_remove sound/soc/codecs/snd-soc-cs35l45 +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x3431c8ad cs35l45_get_clk_freq_id sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x5f4e85da cs35l45_apply_patch sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0x92875c6d cs35l45_i2c_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SND_SOC_CS35L45_TABLES EXPORT_SYMBOL_GPL 0xd1bf9d21 cs35l45_spi_regmap sound/soc/codecs/snd-soc-cs35l45-tables +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x11c37c74 dw_spi_resume_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x21882e0a dw_spi_suspend_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x2e505958 dw_spi_check_status drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x32514248 dw_spi_dma_setup_generic drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x627cea6a dw_spi_update_config drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x6377e70e dw_spi_remove_host drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x63c00d4e dw_spi_dma_setup_mfld drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x9214c14e dw_spi_set_cs drivers/spi/spi-dw +SPI_DW_CORE EXPORT_SYMBOL_GPL 0x923196f2 dw_spi_add_host drivers/spi/spi-dw +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x3dce036c firmware_request_builtin vmlinux +USB_STORAGE EXPORT_SYMBOL_GPL 0x1174717e usb_stor_clear_halt drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x1196ca84 usb_stor_adjust_quirks drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x1bc3edc2 usb_stor_sense_invalidCDB drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x30bfde92 fill_inquiry_response drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x357cd6c0 usb_stor_host_template_init drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x3a4f1808 usb_stor_access_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5e945778 usb_stor_pre_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x5efd4d5b usb_stor_reset_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x6ccd3737 usb_stor_bulk_transfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x75e3a750 usb_stor_bulk_transfer_sg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x7ce5b4bb usb_stor_suspend drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0x88bae9e1 usb_stor_control_msg drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xaa4cce6d usb_stor_resume drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xaf178d10 usb_stor_post_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xb54b0192 usb_stor_Bulk_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc3cfc8d4 usb_stor_CB_transport drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xc4e8e3b7 usb_stor_ctrl_transfer drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xd8f1b648 usb_stor_transparent_scsi_command drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe0f2ee20 usb_stor_disconnect drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe18051da usb_stor_Bulk_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe1db6541 usb_stor_CB_reset drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xe7b62c4e usb_stor_set_xfer_buf drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xf0939101 usb_stor_probe2 drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xf22278e6 usb_stor_bulk_srb drivers/usb/storage/usb-storage +USB_STORAGE EXPORT_SYMBOL_GPL 0xfb441aa5 usb_stor_probe1 drivers/usb/storage/usb-storage --- linux-5.19.0.orig/debian.master/abi/ppc64el/generic.compiler +++ linux-5.19.0/debian.master/abi/ppc64el/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/ppc64el/generic.modules +++ linux-5.19.0/debian.master/abi/ppc64el/generic.modules @@ -0,0 +1,5847 @@ +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_aspeed_vuart +8250_dw +8250_exar +8250_men_mcb +8250_pericom +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_fd +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870-regulator +aat2870_bl +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_gate +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 +ad3552r +ad5064 +ad5110 +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 +ad5766 +ad5770r +ad5791 +ad5820 +ad5933 +ad7091r-base +ad7091r5 +ad7124 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7192 +ad7266 +ad7280a +ad7291 +ad7292 +ad7293 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad74413r +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 +ad9467 +ad9523 +ad9832 +ad9834 +ad_sigma_delta +ada4250 +adc-joystick +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 +adi-axi-adc +adiantum +adin +adin1100 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16209 +adis16240 +adis16260 +adis16400 +adis16460 +adis16475 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1177 +adm1266 +adm1275 +adm8211 +adm9240 +admv1013 +admv1014 +admv4420 +admv8818 +adp1653 +adp5061 +adp5520-keys +adp5520_bl +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +adrf6780 +ads7828 +ads7846 +ads7871 +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adux1020 +adv7170 +adv7175 +adv7180 +adv7183 +adv7343 +adv7393 +adv748x +adv7511 +adv7604 +adv7842 +adv_pci1710 +adv_pci1720 +adv_pci1723 +adv_pci1724 +adv_pci1760 +adv_pci_dio +advansys +adxl313_core +adxl313_i2c +adxl313_spi +adxl34x +adxl34x-i2c +adxl34x-spi +adxl355_core +adxl355_i2c +adxl355_spi +adxl367 +adxl367_i2c +adxl367_spi +adxl372 +adxl372_i2c +adxl372_spi +adxrs290 +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 +aht10 +aic79xx +aic7xxx +aic94xx +aio_aio12_8 +aio_iiro_16 +aiptek +aircable +airo +airspy +ak7375 +ak881x +ak8974 +ak8975 +al3010 +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 +amlogic-gxl-crypto +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc236_common +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci236 +amplc_pci263 +ams-iaq-core +ams369fg06 +amt +analog +analogix-anx6345 +analogix-anx78xx +analogix_dp +ansi_cprng +anx7625 +anybuss_core +aoe +apbps2 +apds9300 +apds9802als +apds990x +apds9960 +apple-mfi-fastcharge +appledisplay +appletalk +appletouch +applicom +aptina-pll +aqc111 +aquacomputer_d5next +aquantia +ar1021_i2c +ar5523 +ar7part +ar9331 +arasan-nand-controller +arc-rawmode +arc-rimi +arc_ps2 +arc_uart +arcmsr +arcnet +arcpgu +arcx-anybus +arcxcnn_bl +arizona +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 +as73211 +asc7621 +ascot2e +asix +aspeed-pwm-tacho +aspeed-video +ast +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at803x +at86rf230 +ata_generic +ata_piix +atbm8830 +atc260x-core +atc260x-i2c +atc260x-onkey +atc260x-poweroff +atc260x-regulator +aten +ath +ath10k_core +ath10k_pci +ath10k_sdio +ath10k_usb +ath11k +ath11k_ahb +ath11k_pci +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-ezo-sensor +atlas-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 +auo-pixcir-ts +auth_rpcgss +authenc +authencesn +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796b +ax88796c +axi-fan-control +axis-fifo +axp20x +axp20x-i2c +axp20x-pek +axp20x-regulator +axp20x_ac_power +axp20x_adc +axp20x_battery +axp20x_usb_power +axp288_adc +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +b53_common +b53_mdio +b53_mmap +b53_serdes +b53_spi +b53_srab +ba431-rng +bareudp +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm-keypad +bcm-phy-lib +bcm-sf2 +bcm203x +bcm3510 +bcm54140 +bcm590xx +bcm590xx-regulator +bcm5974 +bcm7xxx +bcm87xx +bcm_vk +bcma +bcma-hcd +bcmsysport +bd6107 +bd71815-regulator +bd71828-regulator +bd718x7-regulator +bd9571mwv +bd9571mwv-regulator +bd9576-regulator +bd9576_wdt +bd99954-charger +bdc +be2iscsi +be2net +befs +bel-pfe +belkin_sa +bfa +bfq +bfs +bfusb +bh1750 +bh1770glc +bh1780 +binder_linux +binfmt_misc +blake2b_generic +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bluetooth_6lowpan +bma150 +bma220_spi +bma400_core +bma400_i2c +bma400_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 +bmi088-accel-core +bmi088-accel-spi +bmi160_core +bmi160_i2c +bmi160_spi +bmp280 +bmp280-i2c +bmp280-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bnxt_en +bnxt_re +bochs +bonding +bpa-rs600 +bpa10x +bpck +bpfilter +bpqether +bq2415x_charger +bq24190_charger +bq24257_charger +bq24735-charger +bq2515x_charger +bq256xx_charger +bq25890_charger +bq25980_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 +btmtk +btmtksdio +btmtkuart +btqca +btrfs +btrsi +btrtl +btsdio +bttv +btusb +bu21013_ts +bu21029_ts +budget +budget-av +budget-ci +budget-core +budget-patch +c67x00 +c6xdigio +c_can +c_can_pci +c_can_platform +ca8210 +cachefiles +cadence-nand-controller +cadence_wdt +cafe_ccic +cafe_nand +caif +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-isotp +can-j1939 +can-raw +cap11xx +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 +cc10001_adc +cc2520 +cc770 +cc770_isa +cc770_platform +ccm +ccree +ccs +ccs-pll +ccs811 +cdc-acm +cdc-phonet +cdc-wdm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc_subset +cdns-csi2rx +cdns-csi2tx +cdns-dphy +cdns-dphy-rx +cdns-dsi +cdns-mhdp8546 +cdns-pltfrm +cdns-usb-common +cdns3 +cec +ceph +cfb +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +ch +ch341 +ch7006 +ch7322 +ch9200 +ch_ipsec +ch_ktls +chacha20poly1305 +chacha_generic +chaoskey +charlcd +chcr +chipone-icn6211 +chipone_icn8318 +chipreg +chnl_net +chrontel-ch7033 +ci_hdrc +ci_hdrc_imx +ci_hdrc_msm +ci_hdrc_pci +ci_hdrc_tegra +ci_hdrc_usb2 +cicada +cifs +cifs_arc4 +cifs_md4 +cirrus +cirrusfb +clip +clk-axi-clkgen +clk-bd718x7 +clk-cdce706 +clk-cdce925 +clk-cs2000-cp +clk-lmk04832 +clk-lochnagar +clk-max77686 +clk-max9485 +clk-palmas +clk-pwm +clk-renesas-pcie +clk-rk808 +clk-s2mps11 +clk-si514 +clk-si5341 +clk-si5351 +clk-si544 +clk-si570 +clk-twl6040 +clk-versaclock5 +clk-wm831x +clk-xlnx-clock-wizard +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +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_example_test +comedi_isadma +comedi_parport +comedi_pci +comedi_test +comedi_usb +comm +contec_pci_dio +cordic +core +corsair-cpro +corsair-psu +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 +crc7 +crc8 +crct10dif-vpmsum +cryptd +crypto_engine +crypto_safexcel +crypto_user +cs3308 +cs5345 +cs53l32a +cs_dsp +csiostor +ctucanfd +ctucanfd_pci +ctucanfd_platform +curve25519-generic +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cw2015_battery +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 +cxl_core +cxl_mem +cxl_pci +cxl_pmem +cxl_port +cxlflash +cy8ctma140 +cy8ctmg110_ts +cyapatp +cyber2000fb +cyberjack +cypress-sf +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da280 +da311 +da7280 +da9030_battery +da9034-ts +da903x-regulator +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 +da9121-regulator +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 +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +ddbridge +ddbridge-dummy-fe +de2104x +decnet +defxx +delta-ahe50dc-fan +denali +denali_dt +denali_pci +des_generic +designware_i2s +device_dax +dfl +dfl-afu +dfl-emif +dfl-fme +dfl-fme-br +dfl-fme-mgr +dfl-fme-region +dfl-n3000-nios +dfl-pci +dht11 +diag +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dib9000 +dibx000_common +digi_acceleport +digicolor-usart +diskonchip +display-connector +dl2k +dlhl60d +dlink-dir685-touchkeys +dlm +dln2 +dln2-adc +dm-bio-prison +dm-bufio +dm-cache +dm-cache-smq +dm-clone +dm-crypt +dm-delay +dm-ebs +dm-era +dm-flakey +dm-historical-service-time +dm-integrity +dm-io-affinity +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 +dp83869 +dp83tc811 +dp83td510 +dpot-dac +dps310 +dps920ab +drbd +drivetemp +drm +drm_cma_helper +drm_display_helper +drm_dp_aux_bus +drm_kms_helper +drm_mipi_dbi +drm_panel_orientation_quirks +drm_shmem_helper +drm_ttm_helper +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 +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-gp-audio +dw-hdmi-i2s-audio +dw-i3c-master +dw-xdata-pcie +dw9714 +dw9768 +dw9807-vcm +dw_dmac +dw_dmac_core +dw_dmac_pci +dw_wdt +dwc-xlgmac +dwc2_pci +dwc3 +dwc3-haps +dwc3-of-simple +dwmac-dwc-qos-eth +dwmac-generic +dwmac-intel-plat +dwmac-loongson +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 +ecdsa_generic +echainiv +echo +ecrdsa_generic +edt-ft5x06 +ee1004 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efa +efct +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 +etas_es58x +ethoc +evbug +exc3000 +exfat +extcon-adc-jack +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 +extcon-usbc-tusb320 +ezusb +f2fs +f75375s +f81232 +f81534 +f81601 +failover +fakelb +fan53555 +fan53880 +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_seps525 +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 +fbtft +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_pci +fdp +fdp_i2c +fealnx +ff-memless +fhci +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 +fsa4480 +fscache +fsi-core +fsi-master-aspeed +fsi-master-gpio +fsi-master-hub +fsi-occ +fsi-sbefifo +fsi-scom +fsia6b +fsl-edma +fsl-edma-common +fsl-enetc +fsl-enetc-ierb +fsl-enetc-mdio +fsl-enetc-ptp +fsl-enetc-vf +fsl-mph-dr-of +fsl_linflexuart +fsl_lpuart +fsl_pq_mdio +fsl_ucc_hdlc +fsp-3y +ftdi-elan +ftdi_sio +ftl +ftm-quaddec +ftsteutates +fujitsu_ts +funcore +funeth +fusb302 +fxas21002c_core +fxas21002c_i2c +fxas21002c_spi +fxls8962af-core +fxls8962af-i2c +fxls8962af-spi +fxos8700_core +fxos8700_i2c +fxos8700_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 +gateworks-gsc +gb-audio-apbridgea +gb-audio-codec +gb-audio-gb +gb-audio-manager +gb-audio-module +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 +gemini +gen_probe +generic +generic-adc-battery +genet +geneve +genwqe_card +gf2k +gfs2 +gianfar_driver +gl518sm +gl520sm +gl620a +gluebi +gm12u320 +gnss +gnss-mtk +gnss-serial +gnss-sirf +gnss-ubx +gnss-usb +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goodix_ts +gp2ap002 +gp2ap020a00f +gp8psk-fe +gpio +gpio-74x164 +gpio-74xx-mmio +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-aggregator +gpio-altera +gpio-amd-fch +gpio-arizona +gpio-bd71815 +gpio-bd71828 +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-logicvc +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-pca9570 +gpio-pcf857x +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-pisosr +gpio-rdc321x +gpio-regulator +gpio-sama5d2-piobu +gpio-sim +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-virtio +gpio-wcd934x +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_usb +gsc-hwmon +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 +gtp +gud +guillemot +gunze +gve +habanalabs +hackrf +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_nokia +hci_uart +hci_vhci +hd3ss3220 +hd44780 +hd44780_common +hdc100x +hdc2010 +hdlc +hdlc_cisco +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdlcdrv +hdma +hdma_mgmt +hdpvr +he +helene +hellcreek_sw +hexium_gemini +hexium_orion +hfcmulti +hfcpci +hfcsusb +hfs +hfsplus +hi311x +hi556 +hi6210-i2s +hi6421-pmic-core +hi6421-regulator +hi6421-spmi-pmic +hi6421v530-regulator +hi6421v600-irq +hi6421v600-regulator +hi8435 +hi846 +hi847 +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-ft260 +hid-gaff +hid-gembird +hid-generic +hid-gfrm +hid-glorious +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-letsketch +hid-lg-g15 +hid-logitech +hid-logitech-dj +hid-logitech-hidpp +hid-macally +hid-magicmouse +hid-maltron +hid-mcp2221 +hid-megaworld +hid-mf +hid-microsoft +hid-monterey +hid-multitouch +hid-nintendo +hid-nti +hid-ntrig +hid-ortek +hid-penmount +hid-petalynx +hid-picolcd +hid-pl +hid-plantronics +hid-playstation +hid-primax +hid-prodikeys +hid-razer +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-semitek +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-custom +hid-sensor-custom-intel-hinge +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-sigmamicro +hid-sjoy +hid-sony +hid-speedlink +hid-steam +hid-steelseries +hid-sunplus +hid-thrustmaster +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-u2fzero +hid-uclogic +hid-udraw-ps3 +hid-viewsonic +hid-vivaldi +hid-vivaldi-common +hid-waltop +hid-wiimote +hid-xiaomi +hid-xinmo +hid-zpff +hid-zydacron +hideep +hidp +hih6130 +hisi-spmi-controller +hisi_hikey_usb +hmc425a +hmc5843_core +hmc5843_i2c +hmc5843_spi +hmc6352 +hms-profinet +hopper +horus3a +hostap +hostap_pci +hostap_plx +hp03 +hp206c +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +hsr +ht16k33 +htc-pasic3 +hts221 +hts221_i2c +hts221_spi +htu21 +huawei_cdc_ncm +hvcs +hvcserver +hwmon-vid +hwpoison-inject +hx711 +hx8357 +hx8357d +hycon-hy46xx +hyperbus-core +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-ccgx-ucsi +i2c-cp2615 +i2c-demux-pinctrl +i2c-designware-pci +i2c-diolan-u2c +i2c-dln2 +i2c-fsi +i2c-gpio +i2c-hid +i2c-hid-of +i2c-hid-of-goodix +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-pca-platform +i2c-piix4 +i2c-rk3x +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-virtio +i2c-xiic +i3c +i3c-master-cdns +i40e +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 +ice +ice40-spi +icom +icp +icp10100 +icp_multi +icplus +ics932s401 +ideapad_slidebar +idma64 +idmouse +idt77252 +idt_89hpesx +idt_gen2 +idt_gen3 +idtcps +ieee802154 +ieee802154_6lowpan +ieee802154_socket +ifb +ifcvf +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 +ili9163 +ili9225 +ili922x +ili9320 +ili9341 +ili9486 +ilitek_ts_i2c +imagis +img-ascii-lcd +img-i2s-in +img-i2s-out +img-parallel-out +img-spdif-in +img-spdif-out +imm +imon +imon_raw +ims-pcu +imx208 +imx214 +imx219 +imx258 +imx274 +imx290 +imx319 +imx334 +imx335 +imx355 +imx412 +imx6ul_tsc +ina209 +ina238 +ina2xx +ina2xx-adc +ina3221 +industrialio +industrialio-buffer-cb +industrialio-buffer-dma +industrialio-buffer-dmaengine +industrialio-configfs +industrialio-hw-consumer +industrialio-sw-device +industrialio-sw-trigger +industrialio-triggered-buffer +industrialio-triggered-event +inet_diag +inexio +inftl +initio +input-leds +inspur-ipsps +int51x1 +intel-m10-bmc +intel-m10-bmc-hwmon +intel-nand-controller +intel-qep +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 +interrupt-cnt +inv-icm42600 +inv-icm42600-i2c +inv-icm42600-spi +inv-mpu6050 +inv-mpu6050-i2c +inv-mpu6050-spi +io_edgeport +io_ti +ionic +iosm +iova +iowarrior +ip5xxx_power +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_twos +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 +iqs269a +iqs5xx +iqs620at-temp +iqs621-als +iqs624-pos +iqs626a +iqs62x +iqs62x-keys +iqs7222 +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 +ir36021 +ir38064 +ir_toy +irdma +irps5401 +irq-madera +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl29125 +isl29501 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isl68137 +isl7998x +isl9305 +isofs +isp116x-hcd +isp1704_charger +isp1760 +it913x +itd1000 +ite-it6505 +ite-it66121 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_cm +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 +kheaders +kl5kusb105 +kmem +kmx61 +kobil_sct +komeda +ks0108 +ks0127 +ks7010 +ks8842 +ks8851_common +ks8851_par +ks8851_spi +ksmbd +ksz8795 +ksz8795_spi +ksz884x +ksz8863_smi +ksz9477 +ksz9477_i2c +ksz9477_spi +ksz_common +ktd253-backlight +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 +lan966x-switch +lan966x_serdes +lanai +lantiq_gswip +lapb +lapbether +lattice-ecp3-config +lcd +lcd2s +ldusb +lec +led-class-flash +led-class-multicolor +led_bl +leds-88pm860x +leds-aat1290 +leds-adp5520 +leds-an30259a +leds-as3645a +leds-aw2013 +leds-bcm6328 +leds-bcm6358 +leds-bd2802 +leds-blinkm +leds-cpcap +leds-cr0014114 +leds-da903x +leds-da9052 +leds-dac124s085 +leds-el15203000 +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-lp50xx +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-mt6360 +leds-pca9532 +leds-pca955x +leds-pca963x +leds-powernv +leds-pwm +leds-pwm-multicolor +leds-qcom-lpg +leds-regulator +leds-rt4505 +leds-rt8515 +leds-sgm3140 +leds-spi-byte +leds-tca6507 +leds-ti-lmu-common +leds-tlc591xx +leds-tps6105x +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-tty +ledtrig-usbport +legousbtower +lg-vl600 +lg2160 +lgdt3305 +lgdt3306a +lgdt330x +lgs8gl5 +lgs8gxx +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libahci_platform +libarc4 +libceph +libchacha +libchacha20poly1305 +libcomposite +libcrc32c +libcurve25519 +libcurve25519-generic +libcxgb +libcxgbi +libdes +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libpoly1305 +libsas +lightning +line-display +lineage-pem +linear +liquidio +liquidio_vf +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +liteuart +litex_liteeth +litex_mmc +litex_soc_ctrl +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 +lontium-lt8912b +lontium-lt9211 +lontium-lt9611 +lontium-lt9611uxc +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 +ltc2496 +ltc2497 +ltc2497-core +ltc2632 +ltc2688 +ltc2941-battery-gauge +ltc2945 +ltc2947-core +ltc2947-i2c +ltc2947-spi +ltc2978 +ltc2983 +ltc2990 +ltc2992 +ltc3589 +ltc3676 +ltc3815 +ltc4151 +ltc4162-l-charger +ltc4215 +ltc4222 +ltc4245 +ltc4260 +ltc4261 +ltr501 +ltv350qv +lv0104cs +lv5207lp +lvds-codec +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_pci +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 +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 +marvell-88x2222 +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 +max1241 +max127 +max1363 +max14577-regulator +max14577_charger +max14656_charger_detector +max15301 +max1586 +max16064 +max16065 +max1619 +max16601 +max1668 +max17040_battery +max17042_battery +max1721x_battery +max197 +max20086-regulator +max20730 +max20751 +max2165 +max2175 +max30100 +max30102 +max3100 +max31722 +max31730 +max31785 +max31790 +max31856 +max31865 +max3420_udc +max3421-hcd +max34440 +max44000 +max44009 +max517 +max5432 +max5481 +max5487 +max5821 +max63xx_wdt +max6620 +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 +max77714 +max77802-regulator +max77826-regulator +max77976_charger +max8649 +max8660 +max8688 +max8893 +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 +max9271 +max9286 +max9611 +max96712 +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 +mchp48l640 +mcp16502 +mcp251x +mcp251xfd +mcp3021 +mcp320x +mcp3422 +mcp3911 +mcp4018 +mcp41010 +mcp4131 +mcp4531 +mcp4725 +mcp4922 +mcr20a +mcs5000_ts +mcs7830 +mcs_touchkey +mct_u232 +mctp-serial +md-cluster +md4 +md5-ppc +mdc800 +mdev +mdio +mdio-bcm-unimac +mdio-bitbang +mdio-cavium +mdio-gpio +mdio-hisi-femac +mdio-i2c +mdio-ipq4019 +mdio-ipq8064 +mdio-mscc-miim +mdio-mux +mdio-mux-gpio +mdio-mux-mmioreg +mdio-mux-multiplexer +mdio-mvusb +mdio-octeon +mdio-thunder +me4000 +me_daq +mediatek-ge +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 +mhi +mhi_ep +mhi_net +mhi_pci_generic +mhi_wwan_ctrl +mhi_wwan_mbim +mi0283qt +michael_mic +micrel +microchip +microchip-tcb-capture +microchip_t1 +microread +microread_i2c +microtek +mii +minix +mip6 +mipi-i3c-hci +mite +mk712 +mkiss +ml86v7667 +mlx4_core +mlx4_en +mlx4_ib +mlx5-vfio-pci +mlx5_core +mlx5_ib +mlx5_vdpa +mlx90614 +mlx90632 +mlxfw +mlxsw_core +mlxsw_i2c +mlxsw_minimal +mlxsw_pci +mlxsw_spectrum +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_snd +most_usb +most_video +motorcomm +motorola-cpcap +moxa +moxtet +mp2629 +mp2629_adc +mp2629_charger +mp2888 +mp2975 +mp5023 +mp5416 +mp8859 +mp886x +mpc624 +mpi3mr +mpl115 +mpl115_i2c +mpl115_spi +mpl3115 +mpls_gso +mpls_iptunnel +mpls_router +mpoa +mpq7920 +mpr121_touchkey +mpt3sas +mptbase +mptcp_diag +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mr75203 +mrf24j40 +mrp +ms5611_core +ms5611_i2c +ms5611_spi +ms5637 +ms_block +ms_sensors_i2c +mscc +mscc_ocelot +mscc_ocelot_switch_lib +mscc_seville +msdos +mse102x +msg2638 +msi001 +msi2500 +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt6311-regulator +mt6315-regulator +mt6323-regulator +mt6358-regulator +mt6359-regulator +mt6360-adc +mt6360-core +mt6360-regulator +mt6360_charger +mt6397 +mt6397-regulator +mt7530 +mt76 +mt76-connac-lib +mt76-sdio +mt76-usb +mt7601u +mt7603e +mt7615-common +mt7615e +mt7663-usb-sdio-common +mt7663s +mt7663u +mt76x0-common +mt76x02-lib +mt76x02-usb +mt76x0e +mt76x0u +mt76x2-common +mt76x2e +mt76x2u +mt7915e +mt7921-common +mt7921e +mt7921s +mt7921u +mt9m001 +mt9m032 +mt9m111 +mt9p031 +mt9t001 +mt9t112 +mt9v011 +mt9v032 +mt9v111 +mtd +mtd_blkdevs +mtd_dataflash +mtdblock +mtdblock_ro +mtdoops +mtdpstore +mtdram +mtdswap +mtip32xx +mtk-pmic-keys +mtk-sd +mtk_t7xx +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 +mxl-gpy +mxl111sf-demod +mxl111sf-tuner +mxl301rf +mxl5005s +mxl5007t +mxl5xx +mxl692 +mxser +mxsfb +mxuport +myrb +myri10ge +myrs +n5pf +n_gsm +n_hdlc +nand +nandcore +nandsim +national +natsemi +nau7802 +navman +nbd +nci +nci_spi +nci_uart +nct6775-core +nct6775-i2c +nct7802 +nct7904 +nd_btt +nd_pmem +nd_virtio +ne2k-pci +neofb +net1080 +net2272 +net2280 +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_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_hook +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_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_reject_netdev +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_routes_test +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_epf +ntb_hw_idt +ntb_hw_switchtec +ntb_netdev +ntb_perf +ntb_pingpong +ntb_tool +ntb_transport +ntc_thermistor +ntfs +ntfs3 +ntxec +null_blk +nvidiafb +nvme +nvme-core +nvme-fabrics +nvme-fc +nvme-loop +nvme-rdma +nvme-tcp +nvmem-rave-sp-eeprom +nvmem-reboot-mode +nvmem-rmem +nvmem_qcom-spmi-sdam +nvmet +nvmet-fc +nvmet-rdma +nvmet-tcp +nwl-dsi +nx-compress +nx-compress-powernv +nx-compress-pseries +nxp-c45-tja11xx +nxp-nci +nxp-nci_i2c +nxp-ptn3460 +nxp-tja11xx +nxt200x +nxt6000 +nzxt-kraken2 +nzxt-smart2 +objagg +ocfb +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stack_o2cb +ocfs2_stack_user +ocfs2_stackglue +ocrdma +octeon_ep +ocxl +of-fpga-region +of_mmc_spi +of_pmem +of_xilinx_wdt +ofb +ofpart +og01a1b +ohci-platform +omap4-keypad +omfs +omninet +on20 +on26 +onenand +opal-prd +open-dice +opencores-kbd +openvswitch +opt3001 +opticon +option +or51132 +or51211 +orangefs +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +oti6858 +otm3225a +ov02a10 +ov08d10 +ov13858 +ov13b10 +ov2640 +ov2659 +ov2680 +ov2685 +ov5640 +ov5645 +ov5647 +ov5648 +ov5670 +ov5675 +ov5693 +ov5695 +ov6650 +ov7251 +ov7640 +ov7670 +ov772x +ov7740 +ov8856 +ov8865 +ov9282 +ov9640 +ov9650 +overlay +oxu210hp-hcd +p54common +p54pci +p54spi +p54usb +p8022 +pa12203001 +palmas-pwrbutton +palmas-regulator +palmas_gpadc +pandora_bl +panel +panel-abt-y030xx067a +panel-arm-versatile +panel-asus-z00t-tm5p5-n35596 +panel-boe-bf060y8m-aj0 +panel-boe-himax8279d +panel-boe-tv101wum-nl6 +panel-dsi-cm +panel-edp +panel-elida-kd35t133 +panel-feixin-k101-im2ba02 +panel-feiyang-fy07024di26a30d +panel-ilitek-ili9322 +panel-ilitek-ili9341 +panel-ilitek-ili9881c +panel-innolux-ej030na +panel-innolux-p079zca +panel-jdi-fhd-r63452 +panel-jdi-lt070me05000 +panel-khadas-ts050 +panel-kingdisplay-kd097d04 +panel-leadtek-ltk050h3146w +panel-leadtek-ltk500hd1829 +panel-lg-lb035q02 +panel-lg-lg4573 +panel-lvds +panel-mantix-mlaf057we51 +panel-mipi-dbi +panel-nec-nl8048hl11 +panel-newvision-nv3052c +panel-novatek-nt35510 +panel-novatek-nt35560 +panel-novatek-nt35950 +panel-novatek-nt36672a +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-ronbo-rb070d30 +panel-samsung-atna33xc20 +panel-samsung-db7430 +panel-samsung-ld9040 +panel-samsung-s6d16d0 +panel-samsung-s6d27a1 +panel-samsung-s6e3ha2 +panel-samsung-s6e63j0x03 +panel-samsung-s6e63m0 +panel-samsung-s6e63m0-dsi +panel-samsung-s6e63m0-spi +panel-samsung-s6e88a0-ams452ef01 +panel-samsung-s6e8aa0 +panel-samsung-sofef00 +panel-seiko-43wvf1g +panel-sharp-lq101r1sx01 +panel-sharp-ls037v7dw01 +panel-sharp-ls043t1le01 +panel-sharp-ls060t1sx01 +panel-simple +panel-sitronix-st7701 +panel-sitronix-st7703 +panel-sitronix-st7789v +panel-sony-acx565akm +panel-sony-tulip-truly-nt35521 +panel-tdo-tl070wsh30 +panel-tpo-td028ttec1 +panel-tpo-td043mtea1 +panel-tpo-tpg110 +panel-truly-nt35597 +panel-visionox-rm69299 +panel-widechips-ws2401 +panel-xinpeng-xpp055c272 +papr_scm +parade-ps8622 +parade-ps8640 +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 +pc300too +pca9450-regulator +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-epf-ntb +pci-pf-stub +pci-stub +pci200syn +pcips2 +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmda12 +pcmmio +pcmuio +pcnet32 +pcrypt +pcs-lynx +pcs_xpcs +pcspkr +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +peak_pci +peak_pciefd +peak_usb +peci +peci-cpu +peci-cputemp +peci-dimmtemp +pegasus +pegasus_notetaker +penmount +pf +pf8x00-regulator +pfuze100-regulator +pg +phantom +phonet +phram +phy-bcm-kona-usb2 +phy-cadence-salvo +phy-cadence-sierra +phy-cadence-torrent +phy-can-transceiver +phy-cpcap-usb +phy-exynos-usb2 +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 +pim4328 +pinctrl-axp209 +pinctrl-da9062 +pinctrl-lochnagar +pinctrl-madera +pinctrl-max77620 +pinctrl-mcp23s08 +pinctrl-mcp23s08_i2c +pinctrl-mcp23s08_spi +pinctrl-rk805 +pinctrl-stmfx +ping +pistachio-internal-dac +pixcir_i2c_ts +pkcs7_test_key +pkcs8_key_parser +pktcdvd +pktgen +pl2303 +plat-ram +plat_nand +platform_lcd +platform_mhu +plfxlc +pli1209bc +plip +plusb +pluto2 +plx_dma +plx_pci +pm-notifier-error-inject +pm2fb +pm3fb +pm6764tr +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pms7003 +pn532_uart +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 +prestera +prestera_pci +pretimeout_panic +prism2_usb +ps2-gpio +ps2mult +psample +pseries-rng +pseries_energy +psmouse +psnap +pstore_blk +pstore_zone +psxpad-spi +pt +ptp-qoriq +ptp_clockmatrix +ptp_idt82p33 +ptp_ines +ptp_ocp +pulse8-cec +pulsedlight-lidar-lite-v2 +pv88060-regulator +pv88080-regulator +pv88090-regulator +pvpanic +pvpanic-mmio +pvpanic-pci +pvrusb2 +pwc +pwm-atmel-hlcdc +pwm-atmel-tcb +pwm-beeper +pwm-dwc +pwm-fan +pwm-fsl-ftm +pwm-iqs620a +pwm-ir-tx +pwm-lp3943 +pwm-ntxec +pwm-pca9685 +pwm-regulator +pwm-twl +pwm-twl-led +pwm-vibra +pwm-xilinx +pwm_bl +pwrseq_emmc +pwrseq_sd8787 +pwrseq_simple +pxa27x_udc +pxe1610 +pxrc +qca8k +qca_7k_common +qcaspi +qcauart +qcaux +qcom-emac +qcom-labibb-regulator +qcom-pm8008 +qcom-spmi-adc5 +qcom-spmi-iadc +qcom-spmi-vadc +qcom-vadc-common +qcom-wled +qcom_glink +qcom_glink_rpm +qcom_spmi-regulator +qcom_usb_vbus-regulator +qcserial +qed +qede +qedf +qedi +qedr +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qm1d1b0004 +qm1d1c0042 +qmi_helpers +qmi_wwan +qnx4 +qnx6 +qrtr +qrtr-mhi +qrtr-smd +qrtr-tun +qsemi +qt1010 +qt1050 +qt1070 +qt2160 +qtnfmac +qtnfmac_pcie +quatech2 +quota_tree +quota_v1 +quota_v2 +qwiic-joystick +qxl +r592 +r6040 +r8152 +r8153_ecm +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_diag +raw_gadget +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-beelink-gs1 +rc-behold +rc-behold-columbus +rc-budget-ci-old +rc-cinergy +rc-cinergy-1400 +rc-core +rc-ct-90405 +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-khamsin +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lme2510 +rc-loopback +rc-manli +rc-mecool-kii-pro +rc-mecool-kiii-pro +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +rc-minix-neo +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-pine64 +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-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-vega-s9x +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-360 +rc-xbox-dvd +rc-zx-irdec +rc5t583-regulator +rcar_dw_hdmi +rcar_mipi_dsi +rdacm20 +rdacm21 +rdc321x-southbridge +rdma_cm +rdma_rxe +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +realtek-mdio +realtek-smi +reboot-mode +redboot +redrat3 +reed_solomon +regmap-i3c +regmap-sccb +regmap-sdw +regmap-sdw-mbq +regmap-slimbus +regmap-spi-avmm +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 +rmd160 +rmi_core +rmi_i2c +rmi_smbus +rmi_spi +rmnet +rn5t618 +rn5t618-adc +rn5t618-regulator +rn5t618_power +rn5t618_wdt +rnbd-client +rnbd-server +rndis_host +rndis_wlan +rockchip +rocker +rohm-bd71828 +rohm-bd718x7 +rohm-bd9576 +rohm-regulator +rohm_bu21023 +romfs +rose +rotary_encoder +rp2 +rpadlpar_io +rpaphp +rpcrdma +rpcsec_gss_krb5 +rpi-panel-attiny-regulator +rpmsg_char +rpmsg_core +rpmsg_ctrl +rpmsg_ns +rpmsg_tty +rpmsg_wwan_ctrl +rpr0521 +rsi_91x +rsi_sdio +rsi_usb +rsmu-i2c +rsmu-spi +rt1719 +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800mmio +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt4801-regulator +rt4831 +rt4831-backlight +rt4831-regulator +rt5033 +rt5033-regulator +rt5033_battery +rt5190a-regulator +rt5759-regulator +rt6160-regulator +rt61pci +rt6245-regulator +rt73usb +rt9455_charger +rtas_flash +rtc-88pm80x +rtc-88pm860x +rtc-ab-b5ze-s3 +rtc-ab-eoz9 +rtc-abx80x +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-goldfish +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-ntxec +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-rc5t619 +rtc-rk808 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3028 +rtc-rv3029c2 +rtc-rv3032 +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-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 +rtl8365mb +rtl8366 +rtl8723-common +rtl8723ae +rtl8723be +rtl8821ae +rtl8xxxu +rtl_pci +rtl_usb +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtlwifi +rtmv20-regulator +rtq2134-regulator +rtq6752-regulator +rtrs-client +rtrs-core +rtrs-server +rts5208 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rtsx_usb +rtsx_usb_ms +rtsx_usb_sdmmc +rtw88_8723d +rtw88_8723de +rtw88_8821c +rtw88_8821ce +rtw88_8822b +rtw88_8822be +rtw88_8822c +rtw88_8822ce +rtw88_core +rtw88_pci +rtw89_8852a +rtw89_8852ae +rtw89_8852c +rtw89_8852ce +rtw89_core +rtw89_pci +rx51_battery +rxrpc +s1d13xxxfb +s2250 +s2255drv +s2io +s2mpa01 +s2mps11 +s3fb +s3fwrn5 +s3fwrn5_i2c +s3fwrn82_uart +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 +sample-trace-array +samsung-keypad +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 +sbrmi +sbs-battery +sbs-charger +sbs-manager +sbtsi_temp +sc16is7xx +sc92031 +sca3000 +sca3300 +scd30_core +scd30_i2c +scd30_serial +scd4x +sch_atm +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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-milbeaut +sdhci-of-arasan +sdhci-of-aspeed +sdhci-of-at91 +sdhci-of-dwcmshc +sdhci-of-esdhc +sdhci-of-hlwd +sdhci-omap +sdhci-pci +sdhci-pltfm +sdhci-xenon-driver +sdhci_am654 +sdhci_f_sdh30 +sdio_uart +sensehat-joystick +sensorhub +serial_ir +serio_raw +sermouse +serpent_generic +serport +ses +sf-pdma +sfc +sfc-falcon +sfc-siena +sfp +sgi_w1 +sgp30 +sgp40 +sha1-powerpc +sha3_generic +shark2 +shiftfs +sht15 +sht21 +sht3x +sht4x +shtc1 +si1133 +si1145 +si2157 +si2165 +si2168 +si21xx +si4713 +si476x-core +si7005 +si7020 +sidewinder +sierra +sierra_net +sifive +sii902x +sii9234 +sil-sii8620 +sil164 +silead +simple-bridge +simple-mfd-i2c +simpledrm +simplefb +siox-bus-gpio +siox-core +sis190 +sis5595 +sis900 +sis_i2c +sisfb +sisusbvga +sit +siw +sja1000 +sja1000_isa +sja1000_platform +sja1105 +skfp +skge +sky2 +sky81452 +sky81452-backlight +sky81452-regulator +sl811-hcd +slcan +slg51000-regulator +slicoss +slim-qcom-ctrl +slimbus +slip +slram +sm2_generic +sm3 +sm3_generic +sm4 +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-acp-config +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-compress +snd-cs4281 +snd-cs46xx +snd-ctl-led +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-cs8409 +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-generic +snd-serial-u16550 +snd-soc-63xx +snd-soc-ac97 +snd-soc-acp-rt5645-mach +snd-soc-adau-utils +snd-soc-adau1372 +snd-soc-adau1372-i2c +snd-soc-adau1372-spi +snd-soc-adau1701 +snd-soc-adau1761 +snd-soc-adau1761-i2c +snd-soc-adau1761-spi +snd-soc-adau17x1 +snd-soc-adau7002 +snd-soc-adau7118 +snd-soc-adau7118-hw +snd-soc-adau7118-i2c +snd-soc-adi-axi-i2s +snd-soc-adi-axi-spdif +snd-soc-ak4104 +snd-soc-ak4118 +snd-soc-ak4375 +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-audio-graph-card2 +snd-soc-audio-graph-card2-custom-sample +snd-soc-aw8738 +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-cs35l41 +snd-soc-cs35l41-i2c +snd-soc-cs35l41-lib +snd-soc-cs35l41-spi +snd-soc-cs35l45 +snd-soc-cs35l45-i2c +snd-soc-cs35l45-spi +snd-soc-cs35l45-tables +snd-soc-cs4234 +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-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-easrc +snd-soc-fsl-esai +snd-soc-fsl-micfil +snd-soc-fsl-mqs +snd-soc-fsl-rpmsg +snd-soc-fsl-sai +snd-soc-fsl-spdif +snd-soc-fsl-ssi +snd-soc-fsl-xcvr +snd-soc-gtm601 +snd-soc-hdmi-codec +snd-soc-ics43432 +snd-soc-imx-audmux +snd-soc-inno-rk3036 +snd-soc-lochnagar-sc +snd-soc-lpass-macro-common +snd-soc-lpass-rx-macro +snd-soc-lpass-tx-macro +snd-soc-lpass-va-macro +snd-soc-lpass-wsa-macro +snd-soc-max9759 +snd-soc-max98088 +snd-soc-max98357a +snd-soc-max98373 +snd-soc-max98373-i2c +snd-soc-max98373-sdw +snd-soc-max98390 +snd-soc-max98396 +snd-soc-max98504 +snd-soc-max98520 +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-mt6660 +snd-soc-nau8315 +snd-soc-nau8540 +snd-soc-nau8810 +snd-soc-nau8821 +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-pcm5102a +snd-soc-pcm512x +snd-soc-pcm512x-i2c +snd-soc-pcm512x-spi +snd-soc-rk3328 +snd-soc-rk817 +snd-soc-rl6231 +snd-soc-rt1308-sdw +snd-soc-rt1316-sdw +snd-soc-rt5616 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-rt5645 +snd-soc-rt5659 +snd-soc-rt5682 +snd-soc-rt5682-sdw +snd-soc-rt700 +snd-soc-rt711 +snd-soc-rt711-sdca +snd-soc-rt715 +snd-soc-rt715-sdca +snd-soc-rt9120 +snd-soc-sdw-mockup +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-simple-mux +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2305 +snd-soc-ssm2518 +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-tas2562 +snd-soc-tas2764 +snd-soc-tas2770 +snd-soc-tas5086 +snd-soc-tas571x +snd-soc-tas5720 +snd-soc-tas5805m +snd-soc-tas6424 +snd-soc-tda7419 +snd-soc-test-component +snd-soc-tfa9879 +snd-soc-tfa989x +snd-soc-tlv320adc3xxx +snd-soc-tlv320adcx140 +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-tlv320aic3x-i2c +snd-soc-tlv320aic3x-spi +snd-soc-tpa6130a2 +snd-soc-ts3a227e +snd-soc-tscs42xx +snd-soc-tscs454 +snd-soc-uda1334 +snd-soc-wcd-mbhc +snd-soc-wcd9335 +snd-soc-wcd934x +snd-soc-wcd938x +snd-soc-wcd938x-sdw +snd-soc-wm-adsp +snd-soc-wm8510 +snd-soc-wm8523 +snd-soc-wm8524 +snd-soc-wm8580 +snd-soc-wm8711 +snd-soc-wm8728 +snd-soc-wm8731 +snd-soc-wm8731-i2c +snd-soc-wm8731-spi +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-wm8940 +snd-soc-wm8960 +snd-soc-wm8962 +snd-soc-wm8974 +snd-soc-wm8978 +snd-soc-wm8985 +snd-soc-wsa881x +snd-soc-xlnx-formatter-pcm +snd-soc-xlnx-i2s +snd-soc-xlnx-spdif +snd-soc-xtfpga-i2s +snd-soc-zl38060 +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 +soundwire-qcom +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-core +spi-altera-dfl +spi-altera-platform +spi-amd +spi-axi-spi-engine +spi-bitbang +spi-butterfly +spi-cadence +spi-cadence-xspi +spi-dln2 +spi-dw +spi-dw-mmio +spi-dw-pci +spi-fsi +spi-gpio +spi-lm70llp +spi-loopback-test +spi-mux +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 +sprd_serial +sps30 +sps30_i2c +sps30_serial +sr030pc30 +sr9700 +sr9800 +srf04 +srf08 +ssb +ssb-hcd +ssd1307fb +ssd130x +ssd130x-i2c +ssd130x-spi +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_lsm9ds0 +st_lsm9ds0_i2c +st_lsm9ds0_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 +stpddc60 +stpmic1 +stpmic1_onkey +stpmic1_regulator +stpmic1_wdt +streamzap +streebog_generic +stts751 +stusb160x +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv0910 +stv6110 +stv6110x +stv6111 +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrise_co2 +sunrpc +sur40 +surface3_spi +svc-i3c-master +svgalib +switchtec +sx8 +sx8654 +sx9310 +sx9324 +sx9360 +sx9500 +sx_common +sy7636a-hwmon +sy7636a-regulator +sy8106a-regulator +sy8824x +sy8827n +sym53c8xx +symbolserial +synaptics_i2c +synaptics_usb +synclink_gt +syscon-reboot-mode +syscopyarea +sysfillrect +sysimgblt +sysv +t5403 +tag_ar9331 +tag_brcm +tag_dsa +tag_gswip +tag_hellcreek +tag_ksz +tag_lan9303 +tag_mtk +tag_ocelot +tag_ocelot_8021q +tag_qca +tag_rtl4_a +tag_rtl8_4 +tag_sja1105 +tag_trailer +tag_xrs700x +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 +tc358762 +tc358764 +tc358767 +tc358768 +tc358775 +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_maxim +tcpci_mt6360 +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 +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 +thc63lvd1024 +thermal-generic-adc +thermal_mmio +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-ads124s08 +ti-ads131e08 +ti-ads7950 +ti-ads8344 +ti-ads8688 +ti-dac082s085 +ti-dac5571 +ti-dac7311 +ti-dac7612 +ti-lmu +ti-sn65dsi83 +ti-sn65dsi86 +ti-tfp410 +ti-tlc4541 +ti-tpd12s015 +ti-tsc2046 +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 +tmp117 +tmp401 +tmp421 +tmp464 +tmp513 +toshsd +touchit213 +touchright +touchwin +tpci200 +tpl0102 +tpm_atmel +tpm_st33zp24 +tpm_st33zp24_i2c +tpm_st33zp24_spi +tpm_tis_i2c_cr50 +tpm_tis_spi +tpm_vtpm_proxy +tps23861 +tps40422 +tps51632-regulator +tps53679 +tps6105x +tps6105x-regulator +tps62360-regulator +tps6286x-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 +tqmx86 +trace-printk +trancevibrator +trf7970a +tridentfb +ts2020 +ts_bm +ts_fsm +ts_kmp +tsc2004 +tsc2005 +tsc2007 +tsc200x-core +tsc40 +tsl2550 +tsl2563 +tsl2583 +tsl2591 +tsl2772 +tsl4531 +tsnep +tsys01 +tsys02d +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +ttynull +tua6100 +tua9001 +tulip +tuner +tuner-simple +tuner-types +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 +uacce +uartlite +uas +ubi +ubifs +ubuntu-host +ucan +ucb1400_core +ucb1400_ts +ucc_uart +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 +ug3105_battery +uhid +uio +uio_aec +uio_cif +uio_dfl +uio_dmem_genirq +uio_fsl_elbc_gpcm +uio_mf624 +uio_netx +uio_pci_generic +uio_pdrv_genirq +uio_pruss +uio_sercos3 +uleds +uli526x +ulpi +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_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 +usdhi6rol0 +userio +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +v4l2-async +v4l2-dv-timings +v4l2-flash-led-class +v4l2-fwnode +v4l2-mem2mem +v4l2-tpg +vcan +vcnl3020 +vcnl4000 +vcnl4035 +vctrl-regulator +vdpa +vdpa_sim +vdpa_sim_blk +vdpa_sim_net +vduse +veml6030 +veml6070 +ves1820 +ves1x93 +veth +vf610_adc +vf610_dac +vga16fb +vgastate +vgem +vgg2432a4 +vhci-hcd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vdpa +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 +viperboard +viperboard_adc +virt-dma +virt_wifi +virtio-gpu +virtio-rng +virtio_blk +virtio_bt +virtio_crypto +virtio_dma_buf +virtio_input +virtio_net +virtio_pmem +virtio_rpmsg_bus +virtio_scsi +virtio_snd +virtio_vdpa +virtiofs +virtual +virtual_ncidev +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 +vp_vdpa +vport-geneve +vport-gre +vport-vxlan +vpx3220 +vrf +vringh +vs6624 +vsock +vsock_diag +vsock_loopback +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_ds2430 +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 +wcd934x +wcn36xx +wd719x +wdrtas +wdt87xx_i2c +wdt_pci +wfx +whiteheat +wil6210 +wilc1000 +wilc1000-sdio +wilc1000-spi +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 +wusb3801 +wwan_hwsim +x25 +x_tables +xbox_remote +xc2028 +xc4000 +xc5000 +xcbc +xdpe12284 +xdpe152c4 +xfrm4_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xhci-pci +xhci-pci-renesas +xhci-plat-hcd +xilinx-csi2rxss +xilinx-pr-decoupler +xilinx-spi +xilinx-tpg +xilinx-video +xilinx-vtc +xilinx-xadc +xilinx_dpdma +xilinx_emac +xilinx_emaclite +xilinx_gmii2rgmii +xilinx_ps2 +xilinx_sdfec +xilinx_uartps +xillybus_class +xillybus_core +xillybus_of +xillybus_pcie +xillyusb +xiphera-trng +xlnx_vcu +xor +xpad +xr_serial +xrs700x +xrs700x_i2c +xrs700x_mdio +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 +yamaha-yas530 +yealink +yellowfin +yurex +z3fold +zaurus +zavl +zcommon +zd1201 +zd1211rw +zd1301 +zd1301_demod +zet6223 +zforce_ts +zfs +zhenhua +ziirave_wdt +zinitix +zl10036 +zl10039 +zl10353 +zl6100 +zlua +znvpair +zonefs +zopt2201 +zpa2326 +zpa2326_i2c +zpa2326_spi +zr364xx +zram +zstd +zunicode +zzstd --- linux-5.19.0.orig/debian.master/abi/ppc64el/generic.retpoline +++ linux-5.19.0/debian.master/abi/ppc64el/generic.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/s390x/generic +++ linux-5.19.0/debian.master/abi/s390x/generic @@ -0,0 +1,13866 @@ +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0x28c98fda crypto_cipher_encrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xc28fbd31 crypto_cipher_decrypt_one vmlinux +CRYPTO_INTERNAL EXPORT_SYMBOL_GPL 0xeaaa002d crypto_cipher_setkey vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x05a43d8f dma_buf_detach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x0f834074 dma_buf_end_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x11adc2b8 dma_buf_move_notify vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x3a2a8baa dma_buf_vunmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x5a36ccfd dma_buf_export vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6ec08896 dma_buf_put vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x6f45dfa7 dma_buf_mmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x7ba65f75 dma_buf_get vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x8a74e6c1 dma_buf_vmap vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x8f63ade1 dma_buf_attach vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x94a4c473 dma_buf_fd vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0x9b80e965 dma_buf_map_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xb9f8a293 dma_buf_unmap_attachment vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xd39f43cd dma_buf_unpin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xdc34ce76 dma_buf_begin_cpu_access vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xe8ee08c6 dma_buf_pin vmlinux +DMA_BUF EXPORT_SYMBOL_GPL 0xf73eafc4 dma_buf_dynamic_attach vmlinux +EXPORT_SYMBOL arch/s390/crypto/chacha_s390 0x220b49ab chacha_crypt_arch +EXPORT_SYMBOL arch/s390/crypto/chacha_s390 0xdc94f829 chacha_init_arch +EXPORT_SYMBOL arch/s390/crypto/chacha_s390 0xdd8ec6bd hchacha_block_arch +EXPORT_SYMBOL crypto/blake2b_generic 0xe13c4380 blake2b_compress_generic +EXPORT_SYMBOL crypto/ecc 0x16e410ff vli_from_be64 +EXPORT_SYMBOL crypto/ecc 0x188a1647 ecc_is_pubkey_valid_full +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 0x8261eccb ecc_get_curve25519 +EXPORT_SYMBOL crypto/ecc 0x8e688192 ecc_alloc_point +EXPORT_SYMBOL crypto/ecc 0x90cdc197 ecc_free_point +EXPORT_SYMBOL crypto/ecc 0x9263b417 ecc_point_mult_shamir +EXPORT_SYMBOL crypto/ecc 0x92668805 vli_cmp +EXPORT_SYMBOL crypto/ecc 0x932b6ff7 vli_num_bits +EXPORT_SYMBOL crypto/ecc 0x9f6efabd vli_sub +EXPORT_SYMBOL crypto/ecc 0xa76b31a2 crypto_ecdh_shared_secret +EXPORT_SYMBOL crypto/ecc 0xb10fc19e ecc_get_curve +EXPORT_SYMBOL crypto/ecc 0xd6315f31 ecc_gen_privkey +EXPORT_SYMBOL crypto/ecc 0xd94c8eb5 ecc_point_is_zero +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 0x0b28671c crypto_nhpoly1305_final_helper +EXPORT_SYMBOL crypto/nhpoly1305 0x2f515837 crypto_nhpoly1305_init +EXPORT_SYMBOL crypto/nhpoly1305 0x5f55e05c crypto_nhpoly1305_final +EXPORT_SYMBOL crypto/nhpoly1305 0x9d96ce75 crypto_nhpoly1305_update +EXPORT_SYMBOL crypto/nhpoly1305 0xa415fb35 crypto_nhpoly1305_setkey +EXPORT_SYMBOL crypto/nhpoly1305 0xe01a2232 crypto_nhpoly1305_update_helper +EXPORT_SYMBOL crypto/sha3_generic 0x34d789fe crypto_sha3_init +EXPORT_SYMBOL crypto/sha3_generic 0x3efeee2d crypto_sha3_update +EXPORT_SYMBOL crypto/sha3_generic 0xe8d1e5e7 crypto_sha3_final +EXPORT_SYMBOL crypto/sm2_generic 0xfcd40d70 sm2_compute_z_digest +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 0x009cc09e drm_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02266b30 drm_prime_sg_to_page_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02714a33 drm_atomic_state_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03156232 __drm_get_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03d41860 drm_state_dump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x052d58d7 drm_plane_create_zpos_immutable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05523f48 drm_connector_attach_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05872847 drm_atomic_get_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x05a13a46 drm_connector_attach_dp_subconnector_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x06a02e37 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07c395ee drm_vblank_work_schedule +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0839351f drm_gem_prime_import_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0852ec61 drm_connector_attach_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a72f765 drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0acc0bee drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0aeed58e drm_client_buffer_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b8b8051 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d9b4753 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e729705 drm_dev_set_unique +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0eed4265 drm_writeback_signal_completion +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f7acb66 drm_mm_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fa53a86 drm_connector_update_privacy_screen +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1027c24b drm_connector_set_link_status_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x107742a9 drm_get_subpixel_order_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x10e0bc9b drm_gem_dmabuf_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x125bf8a5 drm_atomic_get_crtc_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13d65527 drm_gem_unlock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14604088 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x153dd981 drm_syncobj_get_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x162df9c5 drm_mode_is_420_also +EXPORT_SYMBOL drivers/gpu/drm/drm 0x173f085f drm_any_plane_has_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x177ea6ec drm_dev_has_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1971d881 drm_get_edid_switcheroo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a411479 drm_syncobj_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cad4d87 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1da59cf4 drm_vblank_work_cancel_sync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1db5efde drm_connector_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dc33557 drm_dev_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1fc9fc03 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2183c08c drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2360114a drm_crtc_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24993e50 drm_edid_are_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24d124ac drm_mode_equal_no_clocks_no_stereo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2557c297 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25a8b993 drm_syncobj_find_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25ad605d drm_bridge_chain_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x25daad93 __drm_mm_interval_first +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2754dad8 drm_mm_reserve_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28779e52 drm_printf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x287f4b49 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x290bc424 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29f078d1 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a57973b drm_edid_get_panel_id +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a962499 drm_mm_scan_init_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2af2d4d7 drm_crtc_vblank_helper_get_vblank_timestamp_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b17ae40 drm_panel_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b81a4a0 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ba54a41 drm_atomic_private_obj_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e0b7a13 drm_aperture_remove_conflicting_pci_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e66be19 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eaabe0a drm_atomic_set_crtc_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ed3c600 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fc67563 drm_mode_object_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x308636dd drm_dev_enter +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30d84904 drm_atomic_bridge_chain_post_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ecfcf2 drm_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31b8a5e3 __drm_set_edid_firmware_path +EXPORT_SYMBOL drivers/gpu/drm/drm 0x320c454b drm_crtc_vblank_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3233bf98 drm_connector_attach_hdr_output_metadata_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3253428b drm_atomic_bridge_chain_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32a0cc37 drm_print_bits +EXPORT_SYMBOL drivers/gpu/drm/drm 0x337495a3 drm_mode_create_dp_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ef299d drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x345bf99e drm_panel_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34fc0ffd drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x351ffcb1 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3732a589 drm_modeset_backoff +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bf5d22 drm_gem_dmabuf_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37d8bbc0 drm_connector_set_panel_orientation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37eee34f drm_gem_dmabuf_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38457dfc drm_atomic_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38690d99 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39822cde drm_writeback_prepare_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39d20fc4 drm_connector_set_tile_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39d4f891 drm_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ab87110 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0b6904 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0e5e9c __drm_puts_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bc49751 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3be42de8 drm_atomic_get_new_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bf2f68d drm_atomic_get_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c256623 drm_release_noglobal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c987e9d drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cb33438 drm_property_blob_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cb803c8 drm_vma_offset_manager_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ccccab4 drm_atomic_get_old_private_obj_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3cdc37e9 drm_edid_to_speaker_allocation +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d6a8a98 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d90febb __devm_drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dcc849d drm_atomic_set_mode_prop_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f405489 __drm_printfn_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fbde9b6 drmm_kmalloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42cc8a99 drm_gem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43258dfb drm_crtc_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43e8f222 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43f68c6f drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4403a9c3 drm_mode_get_hv_timing +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a2cadb drm_prime_sg_to_dma_addr_array +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44c8ad31 drm_master_internal_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44eab69f drm_atomic_state_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x452a04f1 drm_gem_create_mmap_offset_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4575a0ca drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4599bd3a drm_crtc_enable_color_mgmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x45a9ec9b drm_crtc_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4679b136 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x46f3e70d drm_panel_get_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47087773 drm_dev_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x473b4b9f drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x47f84419 drmm_kfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48b76eaa drm_atomic_bridge_chain_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0x493e9154 drm_crtc_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4962598e drm_get_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x499b613e drm_atomic_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49a3479c drm_bridge_chain_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49c0f3f6 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a35d30d drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b5c1fcb drm_framebuffer_plane_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b639e90 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b7ebf95 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d0b9ec1 drm_plane_create_zpos_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d0f9e6c drm_connector_set_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d1c56c0 drm_modeset_acquire_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d1c88c4 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e7b45a2 drm_print_regset32 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4eaa5a68 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f18a150 __drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f1b7a5d drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50674de7 drm_timeout_abs_to_jiffies +EXPORT_SYMBOL drivers/gpu/drm/drm 0x513072fe __drm_puts_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0x518e32b6 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521ad6d0 drm_puts +EXPORT_SYMBOL drivers/gpu/drm/drm 0x529edecb drm_vblank_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52f3143f drm_client_framebuffer_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x530692c1 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55ad9d54 drm_dev_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55cc46bf drm_modeset_unlock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x568f8437 drm_display_mode_from_cea_vic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56e8d30d drm_atomic_add_encoder_bridges +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56eba7a4 drmm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57698a50 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x577dc598 drm_connector_set_panel_orientation_with_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57b6efe3 drm_ioctl_flags +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57e01831 drm_crtc_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57f3a38e drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x584f1469 drm_hdmi_avi_infoframe_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59035d88 drm_connector_list_iter_end +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59056243 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59a45e94 __drmm_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59c5366a drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x59cb53de drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a0ff4a8 drm_crtc_init_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a22a73e drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a84f4ba drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b4b0d60 drm_property_lookup_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c133a9b drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ccaf91a drm_writeback_cleanup_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d3568ac drm_crtc_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e069787 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e4ea7fd drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ef9a6e9 drm_modeset_drop_locks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f21cf73 drm_atomic_add_affected_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7985a5 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fbbdd4b drm_mode_put_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x601d94be drm_connector_list_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm 0x613dc4f3 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x637876e5 drm_mode_create_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6427deb3 drm_connector_attach_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x651f2b64 drm_mode_plane_set_obj_prop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65702bd6 drm_default_rgb_quant_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65c42836 drm_dev_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65e51c84 drm_connector_create_privacy_screen_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x682fbda3 drm_vma_node_is_allowed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68a3547d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x698b2bf8 drm_send_event_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c5ac69 drm_crtc_commit_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a35d2d9 drm_atomic_private_obj_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a46fa67 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aa922f4 drm_connector_init_with_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6abf0e3d drm_gem_map_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac01ea8 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b9801f1 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c0c142d drm_connector_attach_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c536e8c drm_plane_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d0655ee drm_sysfs_connector_status_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d18ba12 drm_syncobj_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d853075 drm_invalid_op +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6eb08678 drm_property_create_signed_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ee6ffaa drm_writeback_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef2f78e drm_format_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6efa6668 drm_atomic_state_default_clear +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f21de3d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f5114bc drm_crtc_vblank_waitqueue +EXPORT_SYMBOL drivers/gpu/drm/drm 0x703a03d7 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7060999c drm_dev_unregister +EXPORT_SYMBOL drivers/gpu/drm/drm 0x70bdfe49 drm_connector_set_path_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73a5864f drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73b43b9a drm_gem_prime_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75587539 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x75b65269 drm_send_event_timestamp_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7777fdd1 drm_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x783312d4 drm_gem_map_detach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x786d4e8b drm_gem_objects_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x788aa0ff drm_vblank_work_flush +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79249107 drm_bridge_attach +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a51d888 drm_atomic_get_new_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b3230b7 drm_writeback_get_out_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c545285 drm_edid_get_monitor_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d733399 drm_panel_unprepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d9b3370 drm_vma_offset_lookup_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7da50db9 drm_mode_validate_driver +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e65b3f2 drm_mode_is_420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e9e3cab drm_crtc_arm_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ebfbe8c drm_gem_dmabuf_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edf470b drm_edid_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f07ef93 drm_atomic_add_affected_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm 0x800169ff drm_connector_list_iter_begin +EXPORT_SYMBOL drivers/gpu/drm/drm 0x806ba503 drm_event_reserve_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x808df171 drm_plane_create_rotation_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x815e2ce0 drm_gem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81b46b80 drm_driver_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x820937c4 drm_client_modeset_commit_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82769ae2 drm_connector_oob_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83a10f5b drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83b33f80 __drmm_add_action_or_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83c66a4d drm_connector_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x852440e8 drm_atomic_get_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85be9cbf drm_gem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85ed411a drm_bridge_chain_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871d5126 drm_property_replace_global_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88a714e9 drm_connector_attach_max_bpc_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x891ac2e5 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89903e69 drm_dev_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89b6e03c drm_file_get_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89ef65ea drm_gem_unmap_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a103610 __drmm_universal_plane_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a7dfecb drm_hdmi_vendor_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b04f6b3 drm_property_create_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b967add drm_client_framebuffer_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ba76940 drm_dev_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8bbeb186 drm_syncobj_replace_fence +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cd1f61b drm_vma_offset_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d33b190 drm_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d72789e drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8db4d1c6 drm_gem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e107bab drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9055ce36 drm_modeset_lock +EXPORT_SYMBOL drivers/gpu/drm/drm 0x931e3f2c drm_connector_attach_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9386aa8c drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0x93a6be20 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x954c2477 drm_mode_object_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x959bb323 drm_atomic_set_crtc_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0x961346cb drm_modeset_lock_single_interruptible +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9622fdb5 drm_mode_create_aspect_ratio_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x968d1db8 drm_panel_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x968d63ab drm_mode_validate_ycbcr420 +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96c37748 drm_atomic_nonblocking_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x97b957e0 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98e6b56f drm_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ac1ca96 drm_client_modeset_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b285573 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b95c885 drm_mode_match +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b9de1c1 drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9bc10094 drm_mode_create_tv_margin_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c48ef76 drm_connector_has_possible_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ce050be drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f8ba80e drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0307d49 drm_mode_create_suggested_offset_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0f7b320 drm_atomic_get_old_bridge_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa10ae5df drm_writeback_queue_job +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa248afde drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa38c4c94 drm_memcpy_from_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e4c2e0 __drmm_add_action +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa53b672d __drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5ec2523 drm_vma_node_revoke +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa72f1d3d drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa736c514 drm_connector_atomic_hdr_metadata_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7ff050f drm_vma_offset_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8a42fca drm_event_cancel_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9002f5a drm_property_create_bool +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9151430 drm_gem_dma_resv_wait +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac4f53e7 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaca58e0c drm_mode_get_tile_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad032dea drm_event_reserve_init_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad4e902b drm_color_ctm_s31_32_to_qm_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad6fd68c drm_wait_one_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadfd080d drm_send_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae277372 __drm_crtc_commit_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae4aa340 drm_plane_get_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xae5c995b drm_syncobj_add_point +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf6a1dcc drm_connector_attach_vrr_capable_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf835dfa drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xafedbad7 drm_is_current_master +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0b05ff5 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb11ac7a7 __drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb22dfd68 drm_format_info_min_pitch +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3c939c2 drm_atomic_get_connector_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3dad9c2 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4032484 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb45c9f33 drm_property_replace_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4fe0501 drm_vma_offset_manager_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb551eacb drm_client_dev_hotplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb586daea drm_modeset_acquire_fini +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6127243 drm_need_swiotlb +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7518748 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8ffe3cf drm_atomic_check_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9aa3fa1 drm_modeset_lock_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9cad492 __drm_atomic_state_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba5edfbf drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbac10f02 drm_plane_create_color_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbad1f217 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbb21fd1 drm_atomic_bridge_chain_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbbd3a324 drm_universal_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc758acd drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcc1567a drm_atomic_set_fb_for_plane +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd06c712 drm_display_info_set_bus_formats +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf61726e drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfcfc893 drm_master_internal_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc01bde8d drm_panel_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3ccd642 drm_panel_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc68084cb drm_syncobj_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6a03719 drm_dev_unplug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6af212d drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7d64c9e drm_property_create_blob +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca190085 drm_format_info_block_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcac2685d drm_mode_is_420_only +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb096863 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbefcdd4 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc3a26fa drm_framebuffer_plane_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc43e4f5 drm_mode_create_content_type_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc48f9a2 drm_atomic_set_mode_for_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xccc59759 drm_format_info_block_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd2481d7 drm_client_modeset_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd645812 drm_crtc_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdb99cc9 drm_mode_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdc653e2 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce8aba46 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceecdaaf drm_crtc_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceed0db7 drm_plane_enable_fb_damage_clips +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf43b8f3 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf4ce72d drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd05fda43 drm_prime_get_contiguous_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd093cff4 drm_sysfs_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0a5dc09 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd130e2aa drm_plane_get_damage_clips_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd13f9985 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1d1012c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23760a0 drm_plane_create_alpha_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2839869 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd303fd7f drm_atomic_state_default_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3463929 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd362f147 devm_aperture_acquire_from_firmware +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3f5b457 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4aad71e drm_gem_lock_reservations +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4eb1bea drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd523ff20 drm_crtc_vblank_on +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5dbc953 drm_crtc_accurate_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6126d66 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd680a377 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6ee97ed drm_writeback_connector_init_with_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd76cd46a drm_crtc_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd79e50c8 __drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a9cf42 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f99709 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9d68690 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb1d896b drm_gem_dmabuf_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb46b617 drm_connector_attach_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc2455ec drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd385e39 drm_set_preferred_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde140feb drm_property_blob_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xde160967 drm_add_override_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf3f760d drm_mm_scan_color_evict +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf666902 drm_rotation_simplify +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0a7e8c8 drm_plane_create_blend_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe11a4e9b drm_mode_create_hdmi_colorspace_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2715fba drm_gem_map_dma_buf +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe317082a __drm_printfn_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3406d12 drm_crtc_set_max_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42f6d17 drm_atomic_state_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe494816c drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5c95c3a drm_client_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe64c672d drm_client_modeset_probe +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe735c721 drm_crtc_create_scaling_filter_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8485ac8 drm_atomic_normalize_zpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a034df drm_dev_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919cd09 drm_modeset_lock_all_ctx +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea00fe81 __drm_printfn_coredump +EXPORT_SYMBOL drivers/gpu/drm/drm 0xea26a3a8 drmm_mutex_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xead06a01 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb4dfb23 drm_syncobj_get_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebab0d71 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec12af74 __drm_dbg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec5135c1 drm_client_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xece45e8d drm_client_framebuffer_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0xedafad18 drm_crtc_check_viewport +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee8311c5 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf045c0e6 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0517d7a drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf092af45 drm_vma_node_allow +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0e8c4bc drm_crtc_vblank_helper_get_vblank_timestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0f714ee drm_client_buffer_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf16d11ae drm_panel_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1885225 drm_atomic_get_old_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1b5340a drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2804bb5 drm_client_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf299be48 drm_atomic_print_new_state +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3988433 drm_aperture_remove_conflicting_framebuffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf406e46a drm_get_connector_type_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf40f5d3d drm_color_lut_check +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4ab3502 drm_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf604bc3a drm_crtc_vblank_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf65823a1 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf696dd4a drm_bridge_chain_pre_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6a0b579 drm_atomic_get_new_connector_for_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6da9199 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7bbc649 __drmm_crtc_alloc_with_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7f4094a drm_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf824c7db __drm_printfn_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9e202f6 drm_plane_from_index +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb386d18 drm_ioctl_kernel +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc35a7cc drm_object_property_get_default_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe0df79a drm_client_modeset_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfeb953b1 __drm_printfn_seq_file +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffca1298 drm_connector_attach_privacy_screen_provider +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffcad47c drm_client_rotation +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x004d1a72 drm_mode_config_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00eb8cbe drm_atomic_helper_wait_for_dependencies +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01092a75 drm_atomic_helper_commit_modeset_enables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x014b005d drm_atomic_helper_swap_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x023ea1c4 drm_gem_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0263adff drm_atomic_helper_check_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02c6b5e6 __drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02e070de drm_simple_display_pipe_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x062f5003 drm_atomic_helper_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06f2f527 drm_fb_blit_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0885c8fe drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0baddd42 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c5010c7 __drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0c62c877 __drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e074333 drm_atomic_helper_prepare_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e5587e4 drm_panel_bridge_connector +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fccf9f3 drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fcf12dd drm_atomic_helper_check_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x109e0d1c drm_atomic_helper_connector_tv_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x11a23bdd drm_atomic_helper_commit_modeset_disables +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12008419 drm_self_refresh_helper_alter_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x13b9c826 drm_gem_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x14031557 drm_atomic_helper_commit_hw_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1566571b devm_drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x162e331b drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a43766c drm_fb_helper_restore_fbdev_mode_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1bb139d6 drm_atomic_helper_update_legacy_modeset_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1daa2341 drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21401b78 drm_fb_xrgb8888_to_rgb888_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x21778ba6 drm_atomic_helper_wait_for_flip_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x224c71f9 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x22d3478c drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2326ebea drm_atomic_helper_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x239084d2 drm_fb_helper_alloc_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x23f684ad drm_atomic_helper_cleanup_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25ad0919 drm_atomic_helper_dirtyfb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25ce17ce drm_flip_work_queue_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x266e67da drm_fb_memcpy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b65257e drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x303e65db drm_primary_helper_funcs +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x317169ea drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31f01ba9 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x31fd4a36 drm_fb_helper_cfb_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36102026 drm_gem_fb_create_handle +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36a01678 drm_atomic_helper_disable_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x370037ab drm_atomic_helper_page_flip_target +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38dcd381 __drm_atomic_helper_crtc_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3951a798 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3a17105f drm_gem_fb_begin_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b92b659 drm_fb_xrgb8888_to_rgb565 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3d8411c0 __drm_atomic_helper_plane_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3fbf4c67 drm_atomic_helper_damage_merged +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47cdcad0 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4859a599 drm_fb_helper_sys_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x485c6a81 drm_gem_simple_kms_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x48861a2d drm_fb_helper_fill_info +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a6b84aa __drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c12a285 drm_atomic_helper_fake_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4c955a48 drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4cea4c70 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ec89b8b drm_panel_bridge_remove +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x53624cd2 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x545dc4db drm_fb_xrgb8888_to_mono +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54d0ed29 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56129ba4 __drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x57e48cc3 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a4734d1 drm_kms_helper_is_poll_worker +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5aa2b037 drm_flip_work_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d946859 __drm_gem_destroy_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e4c883a drm_fb_helper_sys_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e8be095 drm_atomic_helper_bridge_propagate_bus_fmt +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x600e40c3 drm_atomic_helper_plane_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6151e498 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x61fe5fda drm_atomic_helper_async_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6574fc9d drm_gem_fb_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65f6fbd6 drm_atomic_helper_connector_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x667f0527 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66a57efd drm_atomic_helper_disable_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68772b88 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6894d99e drm_atomic_helper_shutdown +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68eba48e drm_mode_config_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x694b76df __drm_atomic_helper_crtc_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69722a86 devm_drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69a6649d drm_atomic_helper_commit_planes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69d8b7be drm_self_refresh_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b47e41b drm_fb_helper_deferred_io +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6b5c2b06 drm_atomic_helper_damage_iter_next +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c00ae6e drm_fb_xrgb8888_to_rgb888 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e30ba8e drm_rect_rotate_inv +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f3b918b drm_kms_helper_connector_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x705fd7d0 __drm_atomic_helper_connector_state_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7336bf64 drm_gem_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7470fba1 drm_fb_helper_unregister_fbi +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78504064 drm_atomic_helper_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x78cd406d drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x790f1d57 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7964f9dc drm_flip_work_queue +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a643080 drm_atomic_helper_connector_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b0d1286 drm_gem_simple_kms_cleanup_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7b51a108 drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8246da3c drm_fb_helper_sys_fillrect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x82d635ec __drm_atomic_helper_connector_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x874207ab drm_fb_helper_sys_read +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x875c6f54 drm_atomic_helper_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x879d5585 drm_fb_memcpy_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88347436 drm_helper_force_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8889afb9 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89d64aef drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89ead59e drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a425998 drm_self_refresh_helper_update_avg_times +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8a6cb1d7 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8b52fcf4 drm_atomic_helper_bridge_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8cc69d93 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ce98d1e drm_atomic_helper_wait_for_vblanks +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d5886f1 drm_panel_bridge_add +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8dbefb07 drm_atomic_helper_check_plane_damage +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8e5c12c4 __drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x93cec5c7 drm_flip_work_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x961c988c drm_fb_helper_lastclose +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x973a338f drm_atomic_helper_check_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9868d714 __drm_atomic_helper_bridge_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9873c693 drm_atomic_helper_crtc_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99fd20aa drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a065663 __drmm_simple_encoder_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9bea8754 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c78c80f drm_fb_swab +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d1c918d drm_atomic_helper_commit_duplicated_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d213f03 drm_helper_probe_detect +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d7e78fb drm_atomic_helper_disable_all +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0e1c062 drm_fb_helper_set_suspend_unlocked +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa104c585 drm_gem_simple_kms_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1247737 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa1ea50f5 drm_atomic_helper_resume +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2a8d71d drm_atomic_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa3a725b5 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa40f81b5 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa6e604a6 drm_gem_fb_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaaa833fa drm_atomic_helper_commit_tail_rpm +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf0194f6 drm_fb_helper_cfb_imageblit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaf29be29 drm_fb_xrgb8888_to_rgb332 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb053adda drm_rect_rotate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb0f48f68 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5136cba drm_simple_display_pipe_attach_bridge +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5971c11 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb6f4b331 drm_atomic_helper_damage_iter_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7869b24 drm_primary_helper_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb97ce0f1 drm_gem_reset_shadow_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb988c3b5 drm_atomic_helper_check +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xba5c3035 drm_connector_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbabe6c0e drm_atomic_helper_setup_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbd467a15 drm_fb_helper_output_poll_changed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbda5d52d drm_gem_simple_kms_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc163f815 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc460392a drm_flip_work_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc59bba8e drm_atomic_helper_page_flip +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc67cdf79 drm_fb_helper_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7514df3 drm_atomic_helper_commit_cleanup_done +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc802ccef drm_simple_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc9665787 drm_fb_xrgb8888_to_gray8 +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcb2340b8 drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcca43b17 drm_self_refresh_helper_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xceef2d24 drm_fb_helper_sys_write +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf11a549 drm_flip_work_allocate_task +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcf95f296 drm_atomic_helper_commit_planes_on_crtc +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd1e86e2a drm_atomic_helper_crtc_destroy_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd3c19983 drm_atomic_helper_commit_tail +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd4ade9cc drm_atomic_helper_update_plane +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd7da3aed drm_gem_fb_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdab36a82 __drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1800a8f drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe36b1c99 __drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe3bcf25f drm_atomic_helper_wait_for_fences +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe4640c66 __drm_atomic_helper_plane_reset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe5fc07f8 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6b73d68 __drm_gem_duplicate_shadow_plane_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7debe6f drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xebcfcaf3 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xedf71830 drm_fb_helper_cfb_copyarea +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xedf754eb drm_fb_helper_set_suspend +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee63bea6 drm_atomic_helper_plane_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xee8ca6f2 drm_panel_bridge_add_typed +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf30db916 drm_fb_clip_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4496210 __drm_atomic_helper_private_obj_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf66c3053 drm_gem_simple_kms_prepare_shadow_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf722877e drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7c52eb0 drm_fbdev_generic_setup +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf7fc56dd drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9179979 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb2ccde9 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd877ea6 drm_atomic_helper_bridge_duplicate_state +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe394d36 drm_fb_xrgb8888_to_rgb565_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe6534d4 drm_atomic_helper_async_commit +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe9fb9dd drm_fb_xrgb8888_to_xrgb2101010_toio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xff1fdc71 drm_gem_fb_end_cpu_access +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xff2e771d drm_fb_helper_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfffdff61 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_panel_orientation_quirks 0x2e439142 drm_get_panel_orientation_quirk +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x26e2ba84 drm_gem_shmem_madvise +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x4b1f1b86 drm_gem_shmem_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x76a54aee drm_gem_shmem_get_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x7a4bf25a drm_gem_shmem_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x89210ed8 drm_gem_shmem_purge +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0x89e6349c drm_gem_shmem_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xc16481d9 drm_gem_shmem_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xd28a435f drm_gem_shmem_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xf11680bb drm_gem_shmem_put_pages +EXPORT_SYMBOL drivers/gpu/drm/drm_shmem_helper 0xfac28326 drm_gem_shmem_purge_locked +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x17d8a9cc drm_gem_ttm_dumb_map_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x78d62d2c drm_gem_ttm_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0x834bfb07 drm_gem_ttm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xcb735320 drm_gem_ttm_print_info +EXPORT_SYMBOL drivers/gpu/drm/drm_ttm_helper 0xe579b43c drm_gem_ttm_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x1d965957 drm_gem_vram_vunmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x25c96c03 drm_gem_vram_unpin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x33228a37 drm_gem_vram_simple_display_pipe_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4a276172 drm_gem_vram_vmap +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4c10df6c drm_gem_vram_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4ca11833 drm_gem_vram_plane_helper_cleanup_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x4d035ae7 drm_gem_vram_pin +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5c283946 drm_vram_mm_debugfs_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x5f8eacc0 drm_gem_vram_fill_create_dumb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x60017d8f drm_gem_vram_put +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8640eaaf drmm_vram_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x886bf48e drm_gem_vram_offset +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0x8d075b01 drm_gem_vram_driver_dumb_create +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xa0002e2f drm_vram_helper_mode_valid +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xb6ac0380 drm_gem_vram_plane_helper_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/drm_vram_helper 0xdb94faaa drm_gem_vram_simple_display_pipe_prepare_fb +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x003a6358 ttm_bo_vm_open +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02dfd84f ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x061f12a1 ttm_bo_vm_dummy_page +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0bbb46e4 ttm_lru_bulk_move_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0e821531 ttm_bo_vunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f6a9e82 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1123d92a ttm_pool_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1a71d30c ttm_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1bf23a1e ttm_resource_manager_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x248bbf6a ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29da2619 ttm_resource_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2dbddb2c ttm_device_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e1a8bce ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e8e12cc ttm_bo_vm_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2fa5263d ttm_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31e09af0 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32c7dbe3 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3d0fb727 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ff8f6dc ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x425a3f82 ttm_bo_eviction_valuable +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44a3b954 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x456e9d71 ttm_resource_manager_debug +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4c9a9a73 ttm_pool_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4de75134 ttm_range_man_fini_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52226e63 ttm_resource_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5f263760 ttm_kmap_iter_iomap_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60a57031 ttm_resource_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6d82cccd ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6decc3b0 ttm_pool_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6ff7bcfc ttm_lru_bulk_move_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x708804b9 ttm_range_man_init_nocheck +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x71306e41 ttm_device_clear_dma_mappings +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7266a11c ttm_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8918c3a8 ttm_bo_vm_fault_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a69c288 ttm_bo_unpin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a8c6116 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b8bbf2e ttm_bo_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x962624cd ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a6022c7 ttm_sg_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa02f94ba ttm_resource_manager_usage +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4a338c8 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xad6d8737 ttm_bo_init_reserved +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb1aeda68 ttm_bo_move_sync_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb260dfdc ttm_resource_manager_create_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb58d1aba ttm_bo_move_to_lru_tail +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5b11f0f ttm_glob +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb802f770 ttm_bo_vm_close +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9a09af0 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbbf4f3e7 ttm_device_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbfd3efca ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc334a94b ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5a206a4 ttm_bo_pin +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce5e1ebc ttm_kmap_iter_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xce97361b ttm_resource_compat +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd088ed79 ttm_bo_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd0f5cc83 ttm_resource_manager_evict_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2445aba ttm_global_swapout +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8a26459 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8fb8e42 ttm_bo_set_bulk_move +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xebff9b02 ttm_bo_vm_fault +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeeb37377 ttm_bo_vmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf80f170c ttm_bo_vm_access +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x35850050 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x97ec681e i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x97f46836 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/i2c-core 0x00d0faf0 i2c_register_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x071a2263 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1afcb0eb i2c_smbus_read_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x1cf9770e i2c_put_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x2177cc0b i2c_smbus_write_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x2e10353b i2c_del_driver +EXPORT_SYMBOL drivers/i2c/i2c-core 0x2e6aea69 i2c_get_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0x300f3a49 i2c_smbus_read_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x3491d1ae i2c_smbus_pec +EXPORT_SYMBOL drivers/i2c/i2c-core 0x4282c2ff i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0x58436860 __i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0x651ae6bb i2c_smbus_read_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x6817c933 i2c_smbus_write_byte +EXPORT_SYMBOL drivers/i2c/i2c-core 0x7e32f5d6 i2c_smbus_read_i2c_block_data_or_emulated +EXPORT_SYMBOL drivers/i2c/i2c-core 0x998a0216 i2c_verify_client +EXPORT_SYMBOL drivers/i2c/i2c-core 0xa55684af i2c_add_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb017889c __i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb3432e75 i2c_smbus_xfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb5799c64 i2c_transfer_buffer_flags +EXPORT_SYMBOL drivers/i2c/i2c-core 0xb92c1b91 i2c_smbus_write_word_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xc067e1f4 i2c_clients_command +EXPORT_SYMBOL drivers/i2c/i2c-core 0xca371e14 i2c_verify_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd484b476 i2c_smbus_read_byte_data +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd7d8fedf i2c_del_adapter +EXPORT_SYMBOL drivers/i2c/i2c-core 0xd8de203b i2c_transfer +EXPORT_SYMBOL drivers/i2c/i2c-core 0xfd8d5f40 i2c_smbus_write_block_data +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x000f6919 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0601a73f ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x14902da5 ib_cm_insert_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2b543a8c ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2bc05db4 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2e38e2c2 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4d7cf7d4 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x672af6d7 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69824a14 ibcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x83443121 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd383fc54 ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe340a306 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xea7ea2bc ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf597124e ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf9c49739 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfc8417bc ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04d4b522 ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x053766b0 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x056b2abc ib_alloc_mr_integrity +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05de3ffe rdma_put_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x05f2adf2 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x079649fc ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x099c7dd2 rdma_get_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09c1d8db ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a83eebd ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ba2fb01 ib_alloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ec3c608 rdma_rw_mr_factor +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ee9fd4a rdma_user_mmap_entry_get_pgoff +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f8ef5bb ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ff54b7b ibdev_warn +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10076255 ib_device_get_by_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x145c577b ib_port_immutable_read +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17100fa5 ib_get_vf_stats +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19760aa5 ib_set_device_ops +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1a3c1fb3 rdma_destroy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b037462 __rdma_block_iter_start +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b6d9927 ib_create_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2117cd78 ib_mr_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x21318273 rdma_rw_ctx_destroy_signature +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2350578d rdma_destroy_ah_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x248b75bb ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24b0a781 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x269ef69a ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27198b80 rdma_nl_unicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x277d8e0b ib_map_mr_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28d783fa rdma_read_gid_attr_ndev_rcu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bbeb59b ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c74e70d ib_destroy_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2da088a5 ib_set_vf_link_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f7344d5 ib_cq_pool_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x305e5701 rdma_addr_size_kss +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3179b93b ib_advise_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32ded0d0 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x330994ac ib_unregister_device_queued +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3859e165 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a53dbf9 __ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a8a7b37 ib_check_mr_status +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b526506 rdma_roce_rescan_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c6275e3 ib_device_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3fc2387c ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4121b758 rdma_rw_ctx_wrs +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41b4523f rdma_move_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42212bdb ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4270cb01 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434c5d10 zgid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x440723c1 __ib_alloc_cq_any +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4548f081 ib_destroy_cq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45fb8985 rdma_nl_chk_listeners +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x460a4160 ib_create_wq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x467e69e8 ib_mr_pool_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b4049b6 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c5a2d14 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cb70445 ib_device_set_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d9837dd roce_gid_type_mask_support +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 0x508cd8db ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50cb50b5 ibdev_printk +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x510231f6 _ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51da5e6e rdma_restrack_add +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x51e8d6e0 rdma_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520ead32 ib_create_qp_security +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x526a1d89 rdma_copy_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53c0da43 ibdev_notice +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x554cf5a0 rdma_restrack_new +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55bb02f3 ib_cache_gid_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x571dae4f rdma_user_mmap_io +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58d95f8e ibdev_info +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59103b13 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a1c7887 rdma_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5a32722d ib_rdmacg_uncharge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5badea3d ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c3091f3 rdma_nl_put_driver_u64 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fb46089 rdma_rw_ctx_post +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fc3b1d2 rdma_read_gid_hw_context +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fc75c41 ib_dealloc_pd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fff58e9 ib_init_ah_attr_from_path +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 0x6216fe60 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x625f2e8f rdma_find_gid_by_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x630e0e0f ib_qp_usecnt_inc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x657d5adf rdma_restrack_set_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66c996e8 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67d1f2d9 rdma_init_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x68e7d42d ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x68f67c92 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69814af8 ib_port_unregister_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6992a8f9 rdma_restrack_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a7c4991 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b958320 ib_ud_ip4_csum +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e23be43 ib_free_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f3614b6 rdma_is_zero_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fbfaef5 rdma_nl_put_driver_u32 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71bda98f ib_drain_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72afb46f ib_alloc_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73465162 rdma_nl_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73baf9a2 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75445a77 ib_get_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75a729a0 rdma_nl_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75bc7d9c ib_drain_rq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7743566b ib_get_cached_port_state +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x787ccc4c ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x788522cc ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79787750 rdma_alloc_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x797f5eda ib_cq_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79b05779 rdma_user_mmap_entry_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7af2c229 rdma_alloc_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7bab2a12 rdma_copy_src_l2_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cc05468 ib_dealloc_xrcd_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7de4ac2a ib_sg_to_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e3857cc ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8192109a rdma_hold_gid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82598f20 rdma_restrack_get_byid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x83a1814d rdma_user_mmap_entry_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x840b5a74 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84ace570 rdma_move_grh_sgid_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x85f74a87 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86cef180 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bdd5d7e rdma_umap_priv_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7528da __rdma_block_iter_next +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f635158 ib_drain_sq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ffa8b07 ib_mr_pool_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9046e36b rdma_link_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x90e807c7 ib_cache_gid_parse_type_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92a89b9e rdma_query_gid_table +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x954f75bb ibdev_emerg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9573ffe4 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95e90d7a ib_dma_virt_map_sg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97f2f451 ib_get_device_fw_str +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x980fa81b __ib_alloc_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98d42d3b ib_destroy_srq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9aa4bc40 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d57ab1c ib_mr_pool_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e4a6991 ib_mad_kernel_rmpp_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ee2ceac ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f3d8545 rdma_rw_ctx_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9f747949 ibdev_alert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa00f20a6 rdma_user_mmap_entry_insert +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa01ceb37 rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa0caaba9 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1e38860 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa31257cd ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5728dd4 rdma_restrack_del +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa75497b5 rdma_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa19e75d rdma_set_cq_moderation +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab1b8e02 ib_init_ah_attr_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae3a8106 rdma_nl_stat_hwcounter_entry +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae956dce ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xafe272a1 ib_get_eth_speed +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2346eda ib_qp_usecnt_dec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2742b92 rdma_nl_register +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2965583 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2df0e9a rdma_user_mmap_entry_insert_range +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb36e4148 ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5e3d594 rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb7852a05 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb81a36ae rdma_nl_put_driver_u64_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9343bf2 ib_unregister_device_and_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba61409e ib_rdmacg_try_charge +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbde6bcab ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbef0f7ba rdma_read_gid_l2_fields +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf82fa03 ib_get_cached_subnet_prefix +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc01e89d8 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc02509db rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1e814dc rdma_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc22de1e3 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4a65a4e ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4bb772d ib_port_sysfs_get_ibdev_kobj +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4dba8ec ib_get_gids_from_rdma_hdr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbda6c75 ib_create_qp_kernel +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce3db8a4 rdma_rw_ctx_signature_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfbc053b ib_unregister_driver +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfcd9393 ibdev_err +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0118b79 ib_map_mr_sg_pi +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd06d2eef ib_create_qp_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd08f3ec4 __ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0feb229 rdma_nl_put_driver_u32_hex +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd386de1e rdma_nl_unicast_wait +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd434e8e4 ib_device_get_by_netdev +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5baa1cb ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5f80f72 ib_get_rdma_header_version +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6636ca6 rdma_addr_size_in6 +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6cd6774 rdma_link_unregister +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdad11d53 ib_set_vf_guid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd96c874 rdma_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf3dd203 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf6cae12 rdma_user_mmap_entry_put +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdff49b09 ib_port_register_client_groups +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0727ad2 ib_dereg_mr_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe08df581 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0f5d054 rdma_rw_ctx_destroy +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe264088b rdma_create_user_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe2ca0543 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5826465 rdma_restrack_count +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 0xe9e799fc ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeaadb7e2 ib_destroy_wq_user +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xed900f0e ib_get_vf_config +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefe769b4 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0194419 rdma_dev_access_netns +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0a7536f ibdev_crit +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0bfa13f ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0f6b1c4 rdma_replace_ah_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1d01f55 rdma_nl_put_driver_string +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf280ae85 rdma_restrack_parent_name +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5132f52 ib_unregister_device +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 0xf88ebe87 ib_modify_qp_with_udata +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf922bc8f ib_reg_user_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbc3a9a8 rdma_free_hw_stats_struct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbf8ec0b ib_get_net_dev_by_params +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc3f3a8c ib_process_cq_direct +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfff212d4 rdma_restrack_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x0031e946 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x06998c2a flow_resources_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x08956c1f ib_umem_get_peer +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x09ed6d09 _uverbs_get_const_signed +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x0ac97e5f ib_umem_odp_map_dma_and_lock +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x13d9f415 flow_resources_add +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x17dfb2f9 ib_umem_dmabuf_map_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1a0d1149 ib_umem_dmabuf_get_pinned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x1b54bd5d ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x2d195572 ib_umem_activate_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x37366b5c ib_umem_odp_alloc_child +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x3ed00f88 _uverbs_alloc +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x463ebde3 uverbs_get_flags64 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4647d777 ib_umem_odp_unmap_dma_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x46e13c08 ib_umem_odp_alloc_implicit +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4ec25c7e ib_umem_copy_from +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x4ef439e5 uverbs_copy_to_struct_or_zero +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x52f8c08e uverbs_copy_to +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x575ed3b5 uverbs_idr_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x63057f4b ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x655d76a2 ib_umem_odp_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x6f11339d _uverbs_get_const_unsigned +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x74a07ebb uverbs_destroy_def_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x76f24e77 ib_umem_stop_invalidation_notifier +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x78325557 ib_umem_odp_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x8365adb9 ib_umem_find_best_pgsz +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x847b1354 uverbs_uobject_put +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x94989d69 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x984af93a uverbs_get_flags32 +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa629941d ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa69d8875 uverbs_fd_class +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xa8eeaa80 ib_umem_dmabuf_unmap_pages +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xab6ac91f ib_umem_dmabuf_get +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb4c0474a ib_uverbs_flow_resources_free +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xb5ec7a7a ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xbde5c050 ib_unregister_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcd911853 ib_register_peer_memory_client +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xcfcec5a5 ib_uverbs_get_ucontext_file +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xdf0431ac uverbs_uobject_fd_release +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0xe0b1086b uverbs_finalize_uobj_create +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x27693951 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3d3d2cef iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x41a48263 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4584d123 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4edfaa48 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x712573f1 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xec718bad iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf3df871f iwcm_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfaac583a iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0baf264a rdma_lock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10f8d64c rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1cfa4d66 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x202d4b4c rdma_create_user_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x20a53b9e rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x22e38957 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x284f00f9 rdma_iw_cm_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2970fd86 rdma_res_to_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x355f84b9 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3cc4810b rdma_set_ack_timeout +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3f64c236 rdma_accept_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4de516a1 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x51db2b9c rdma_set_ib_path +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x569e70ed rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x64ed69eb rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x68325380 rdma_unlock_handler +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a49a803 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8019ab7a rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x85776d55 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f960f82 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x907df803 rdma_event_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x96ad21de rdma_reject_msg +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9935a4f0 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9be6c07b rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9efc99f0 rdma_connect_locked +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa5d34901 rdma_connect_ece +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb1e2e28f rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb2c7cae3 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc7452ca3 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc253a58 rdma_consumer_reject_data +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd2257742 rdma_read_gids +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd3632ec9 __rdma_create_kernel_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd6890b34 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe812070f rdma_set_min_rnr_timer +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xff236daa rdma_notify +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x07e6eb3a rtrs_clt_rdma_cq_direct +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x2611bb4b rtrs_clt_put_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x41a7c7ec rtrs_clt_query +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x56066dac rtrs_clt_get_permit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x6b32bde2 rtrs_clt_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0x70941347 rtrs_clt_close +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-client 0xeb4b311a rtrs_clt_request +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x0646148b rtrs_rdma_dev_pd_init +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x0a6ec02d rtrs_ib_dev_put +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x5d0294b5 rtrs_rdma_dev_pd_deinit +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x8f6c7edf rtrs_addr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0x99b7caed sockaddr_to_str +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xb8216ec2 rtrs_ib_dev_find_or_add +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-core 0xc28750dd rtrs_addr_to_sockaddr +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x05f3ddd7 rtrs_srv_set_sess_priv +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x3282e83e rtrs_srv_open +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0x9cc7e2bc rtrs_srv_get_path_name +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xa072346d rtrs_srv_resp_rdma +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xacec120a rtrs_srv_get_queue_depth +EXPORT_SYMBOL drivers/infiniband/ulp/rtrs/rtrs-server 0xc63ffe2a rtrs_srv_close +EXPORT_SYMBOL drivers/md/dm-log 0x1ec4d439 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x3c709224 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x630d943e dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xe6ed7a01 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x187f5401 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x1eae54dc dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x3064ff1a dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x761dc559 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9614524a dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe2fd04d1 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x77d9d8d4 raid5_set_cache_size +EXPORT_SYMBOL drivers/md/raid456 0x9b159513 r5c_journal_mode_set +EXPORT_SYMBOL drivers/mfd/mfd-core 0x07d8e72c devm_mfd_add_devices +EXPORT_SYMBOL drivers/mfd/mfd-core 0x12341090 mfd_add_devices +EXPORT_SYMBOL drivers/mfd/mfd-core 0x2736b3a3 mfd_remove_devices +EXPORT_SYMBOL drivers/mfd/mfd-core 0x66eae9e2 mfd_remove_devices_late +EXPORT_SYMBOL drivers/mfd/mfd-core 0xe0e6371a mfd_cell_enable +EXPORT_SYMBOL drivers/mfd/mfd-core 0xf15878f8 mfd_cell_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x082ef5d5 mlx4_get_cpu_rmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f7c57b2 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13a3f889 mlx4_get_eqs_per_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1ac226c4 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1aedc005 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1de3a99d mlx4_ALLOCATE_VPP_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2e785229 mlx4_ALLOCATE_VPP_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x329778c0 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40d02fa9 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4cef289d mlx4_max_tc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x58e50fe9 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e62f747 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5fa7ef6e mlx4_query_diag_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62efa60d mlx4_test_interrupt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x632c1a87 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a97d044 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x71f79280 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7756b939 mlx4_tunnel_steer_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7830a3f7 get_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7b6a07a3 mlx4_assign_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 0x82fd107c mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85dff674 set_phv_bit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x86c5fdd1 mlx4_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x927f4f5c mlx4_get_roce_gid_from_slave +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9966a20f mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9a6fd020 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa39029f7 mlx4_SET_VPORT_QOS_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb19570bb mlx4_SET_PORT_user_mtu +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb4850c43 mlx4_SET_PORT_user_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb6ef595c mlx4_SET_PORT_VXLAN +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf9f58c4 mlx4_get_is_vlan_offload_disabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8852166 mlx4_SET_PORT_fcs_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9951025 mlx4_is_eq_vector_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xca1ef5c0 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd09eb4cf mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd17903d2 mlx4_is_eq_shared +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6053c23 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe89b6340 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1e87768 mlx4_test_async +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf348f1c8 mlx4_get_slave_from_roce_gid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf38be666 mlx4_SET_VPORT_QOS_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf570b0b3 mlx4_SET_PORT_BEACON +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfa29bb13 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfd1991b7 mlx4_eq_get_irq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x029552e5 mlx5_comp_irq_get_affinity_mask +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x04641715 mlx5_destroy_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x08daa4d9 mlx5_cmd_exec_cb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0af56785 mlx5_cmd_create_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11457b34 mlx5_create_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x122a3937 mlx5_cmd_out_err +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1473e319 mlx5_rl_add_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x149ee5df mlx5_fpga_sbu_conn_sendmsg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x157e92cf mlx5_rdma_rn_get_params +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x16470359 mlx5_mpfs_del_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1d0d3c04 mlx5_eq_create_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1e38486c __tracepoint_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ecf7163 mlx5_get_fdb_sub_ns +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21973092 mlx5_add_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22456962 mlx5_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2288cc14 mlx5_eq_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x22bce683 __tracepoint_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x240cf6b0 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x25b4023d mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2757469f mlx5_alloc_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x297b3205 mlx5_lag_is_shared_fdb +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2abfae90 mlx5_vf_put_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2acfc689 mlx5_rl_add_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2bbd0b6d mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2c7d7075 mlx5_eswitch_uplink_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2ce25c72 mlx5_modify_header_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e4ad71d mlx5_fs_remove_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2fc275ae mlx5_core_dealloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31279530 mlx5_lag_is_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3219c97c mlx5_debugfs_get_dev_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x32fc77d1 __tracepoint_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x332c2c4c mlx5_packet_reformat_dealloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x33b0882b mlx5_eswitch_get_encap_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3475821f __SCK__tp_func_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x38cda26c mlx5_core_query_vendor_id +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3968a6db mlx5_eq_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x39ee7ed5 mlx5_core_query_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3aecdb5e __traceiter_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3b170378 mlx5_vector2eqn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3c0912cf mlx5_core_destroy_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3cb10e34 mlx5_eq_disable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3faa9797 mlx5_eswitch_get_vport_metadata_for_match +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x414ba57d mlx5_core_create_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x41af5863 mlx5_cmd_cleanup_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x422e4986 mlx5_core_modify_cq_moderation +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4260854e mlx5_modify_header_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48129471 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4a37fffc mlx5_eq_get_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4ab8f31e mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d5f5c07 __SCK__tp_func_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x50792fdd mlx5_lag_get_peer_mdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x51371a99 mlx5_destroy_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x547b9608 mlx5_create_auto_grouped_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x559ac38d __SCK__tp_func_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x57f10126 mlx5_nic_vport_disable_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f66c0f8 mlx5_core_query_sq +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 0x62e46842 mlx5_qp_debugfs_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x63f5a6fa __traceiter_mlx5_fs_add_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x647b59a1 mlx5_fpga_sbu_conn_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6a24ceea mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6c69ebd5 mlx5_del_flow_rules +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f271a71 mlx5_vf_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70e1cd28 mlx5_get_flow_namespace +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7261330b __SCK__tp_func_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x74dc05c5 mlx5_lag_get_roce_netdev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7543ccfa mlx5_core_create_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x77483d95 mlx5_packet_reformat_alloc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x780fec01 mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7b359a09 __SCK__tp_func_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7bbc902c __traceiter_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c1238fa mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7c151c09 mlx5_eswitch_vport_rep +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7deb6ac6 mlx5_create_flow_group +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7f457493 mlx5_free_bfreg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7fd709fe __tracepoint_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x83d27dea mlx5_debug_qp_remove +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x84d44bb8 mlx5_eswitch_reg_c1_loopback_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8560f264 mlx5_eq_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x872e7c67 __tracepoint_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x87965a26 mlx5_core_create_tir +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ba94705 mlx5_core_modify_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8c1bad40 mlx5_mpfs_add_mac +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8ccb6927 mlx5_core_alloc_transport_domain +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8f9c2950 mlx5_cmd_init_async_ctx +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x922e22fa mlx5_lag_is_sriov +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x95b522dc mlx5_fpga_mem_read +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96d4419d mlx5_put_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 0x99c9f575 mlx5_core_modify_sq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a3dc953 mlx5_cmd_check +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9a805c04 mlx5_eswitch_unregister_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9abb0083 mlx5_core_destroy_psv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9aed6d36 mlx5_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d6135dc __SCK__tp_func_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9d7625c9 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0c8ae8c mlx5_core_destroy_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa0d6e0fa mlx5_rl_remove_rate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa1d78f6d mlx5_eq_destroy_generic +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa59ba5ba __traceiter_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa87ebe6e mlx5_lag_query_cong_counters +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaade8b5a mlx5_lag_is_roce +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad0b18db mlx5_cmd_do +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xad6815cd mlx5_rsc_dump_cmd_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xadfa28db mlx5_core_destroy_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xae69745e mlx5_lag_get_slave_port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf335351 __traceiter_mlx5_fs_add_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaf7a698d mlx5_core_create_rqt +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xaff052b3 mlx5_qp_debugfs_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0941fe0 mlx5_eq_update_ci +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0fcee1d mlx5_debug_qp_add +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb21e07ea mlx5_fs_add_rx_underlay_qpn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb374a864 mlx5_comp_vectors_count +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb411fba0 mlx5_eswitch_vport_match_metadata_enabled +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5ec5a13 __traceiter_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb72cffaf __tracepoint_mlx5_fs_del_ft +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb83d7c48 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb8df2b14 mlx5_rsc_dump_cmd_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbaaaab2e mlx5_eswitch_register_vport_reps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbb475e47 __tracepoint_mlx5_fs_set_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbd8bf905 mlx5_eswitch_get_proto_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbf812e2f mlx5_core_modify_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc15810e4 mlx5_fc_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc22f8eed mlx5_core_create_tis +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc29afe01 mlx5_create_lag_demux_flow_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc300ee09 mlx5_cmd_exec_polling +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc402b0d7 mlx5_eswitch_get_core_dev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb867d98 mlx5_is_roce_on +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcdc0e208 mlx5_fpga_get_sbu_caps +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce18d413 mlx5_rl_is_in_range +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd1240710 mlx5_fc_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd4697030 mlx5_get_uars_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd64b356b mlx5_cmd_destroy_vport_lag +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c3be3d __tracepoint_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd88fb842 mlx5_lag_is_master +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdc85e305 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdebee49e mlx5_fc_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdf0242e4 mlx5_fpga_mem_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe07f89c6 mlx5_eswitch_add_send_to_vport_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe2469613 mlx5_lag_get_num_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4e09c2b __tracepoint_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe598d1b3 __traceiter_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe59f1452 mlx5_rl_remove_rate_raw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe5cab06a __traceiter_mlx5_fs_del_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb9a8bcf __SCK__tp_func_mlx5_fs_del_fte +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeed30393 mlx5_core_destroy_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xef81c39f mlx5_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf2154865 mlx5_core_roce_gid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf31f2f48 mlx5_eswitch_get_vport_metadata_for_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf5974084 mlx5_sriov_blocking_notifier_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf79037a4 mlx5_query_ib_port_oper +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf8846a17 __traceiter_mlx5_fw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf88d57b1 __SCK__tp_func_mlx5_fs_add_rule +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf95ecef1 mlx5_rsc_dump_next +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfa198623 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfaf13a26 mlx5_sriov_blocking_notifier_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfc8e744e __SCK__tp_func_mlx5_fs_del_fg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfe19fb67 mlx5_fpga_sbu_conn_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xff414b58 mlx5_core_modify_rq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxfw/mlxfw 0xa70e23a9 mlxfw_firmware_flash +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0137f952 mlxsw_afk_values_add_buf +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02815b77 mlxsw_env_module_port_up +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x02dfd3d0 mlxsw_afk_key_info_block_encoding_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x07abcc0c mlxsw_afa_block_append_trap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x087c0c78 mlxsw_core_port_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x088dbb62 mlxsw_core_bus_device_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0ca34ccf mlxsw_core_max_ports +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0dd8caa3 mlxsw_reg_trans_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x0e81c09c mlxsw_afk_destroy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x10d3c264 mlxsw_core_port_is_xm +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x12c6bcfa mlxsw_core_port_eth_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x143a7777 mlxsw_afa_block_append_mirror +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x14e17bb4 mlxsw_linecards_event_ops_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x15801382 mlxsw_afk_key_info_put +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x18b0ad00 mlxsw_afa_block_append_police +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x19fa5852 mlxsw_core_flush_owq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x1c6605f6 mlxsw_afa_block_append_qos_switch_prio +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x202693f0 mlxsw_afa_block_cur_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x21daf3af mlxsw_afa_block_append_qos_dsfield +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x23eddc68 mlxsw_core_cpu_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2a4ddd44 mlxsw_env_get_module_power_mode +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x2c68ced3 mlxsw_core_read_frc_h +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x312fa90b mlxsw_core_trap_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x38185d87 mlxsw_afa_block_append_qos_ecn +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4036254f mlxsw_linecards_event_ops_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x406b4614 mlxsw_afa_block_append_counter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x42e87f18 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 0x4b0bae55 mlxsw_core_kvd_sizes_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e2424ee mlxsw_reg_trans_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x4e6be521 mlxsw_afa_block_append_fwd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x508923e3 mlxsw_core_port_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x51b5769d mlxsw_env_module_overheat_counter_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x55a65610 mlxsw_core_res_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a099407 mlxsw_afa_block_append_qos_dscp +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x5a939205 mlxsw_afk_values_add_u32 +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 0x6929f2b4 mlxsw_env_module_port_map +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x702540f8 mlxsw_core_rx_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x71dcb578 mlxsw_env_reset_module +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x73489011 mlxsw_afa_block_append_ip +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x749556a2 mlxsw_afk_key_info_subset +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x75339042 mlxsw_core_lag_mapping_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x77d83398 mlxsw_core_read_frc_l +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7b0bfeec mlxsw_core_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7c65d749 mlxsw_core_trap_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7ca5b4d4 mlxsw_afa_block_append_sampler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7e08c6e0 mlxsw_core_event_listener_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f2d4c19 mlxsw_core_port_devlink_port_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x7f659d4c mlxsw_afa_block_append_vlan_modify +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8272e615 mlxsw_afa_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x827a2f1f mlxsw_afa_block_jump +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x829e8851 mlxsw_afa_block_first_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x83fb69af mlxsw_core_lag_mapping_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x858c30d0 mlxsw_afa_block_create +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x870ea106 mlxsw_env_get_module_info +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8854d198 mlxsw_reg_write +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x8c168889 mlxsw_core_skb_transmit +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x902c3533 mlxsw_core_schedule_dw +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x945d2875 mlxsw_core_skb_receive +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x963cfb6a mlxsw_core_resources_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97035a9c mlxsw_afa_block_append_fid_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x97e62e6e mlxsw_env_get_module_eeprom_by_page +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0x98bfa19b mlxsw_env_set_module_power_mode +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 0xa7765e88 mlxsw_reg_query +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xaa18ab0d mlxsw_core_trap_state_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xabf79ed4 mlxsw_core_traps_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xac1074a5 mlxsw_core_skb_transmit_busy +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xae89ebb9 mlxsw_env_get_module_eeprom +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6517b2e mlxsw_afa_block_append_trap_and_forward +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb68e9fa8 mlxsw_env_module_port_unmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xb6b40684 mlxsw_core_res_valid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xba05b3b0 mlxsw_core_emad_string_tlv_enable +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbc222a8d mlxsw_afk_clear +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xbfb7df3c mlxsw_core_driver_priv +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xc863280e mlxsw_core_driver_register +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xcbab836f mlxsw_core_fw_rev_minor_subminor_validate +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 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 0xd7a93413 mlxsw_core_event_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd84eb6b0 mlxsw_afa_block_append_drop +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xd9f711ae mlxsw_afa_block_append_mcrouter +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdaad65b1 mlxsw_core_rx_listener_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdc415cf1 mlxsw_afa_block_continue +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xde4e211f mlxsw_afa_block_append_l4port +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xdeab0691 mlxsw_afk_create +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 0xe16986dd mlxsw_afa_block_activity_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe5540be5 mlxsw_core_port_ib_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xe6d64e7a mlxsw_core_traps_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xecab212a mlxsw_afa_cookie_lookup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xed2801d4 mlxsw_env_module_port_down +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xeda7a5d0 mlxsw_core_port_type_get +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf10fa073 mlxsw_core_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xf82bdc70 mlxsw_core_lag_mapping_set +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_core 0xff007c25 mlxsw_core_cpu_port_fini +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0x9d8af393 mlxsw_pci_driver_unregister +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlxsw/mlxsw_pci 0xc18a2d1e mlxsw_pci_driver_register +EXPORT_SYMBOL drivers/net/phy/bcm-phy-lib 0x414e510e bcm54xx_auxctl_write +EXPORT_SYMBOL drivers/net/team/team 0x37046f78 team_options_change_check +EXPORT_SYMBOL drivers/net/team/team 0x73d5575f team_modeop_port_change_dev_addr +EXPORT_SYMBOL drivers/net/team/team 0x74d2c1c1 team_options_register +EXPORT_SYMBOL drivers/net/team/team 0x8d10c120 team_mode_register +EXPORT_SYMBOL drivers/net/team/team 0xa23b6240 team_options_unregister +EXPORT_SYMBOL drivers/net/team/team 0xaefb2096 team_modeop_port_enter +EXPORT_SYMBOL drivers/net/team/team 0xb18a2be7 team_mode_unregister +EXPORT_SYMBOL drivers/net/team/team 0xd26e5023 team_option_inst_set_change +EXPORT_SYMBOL drivers/ptp/ptp 0x0a6dc812 ptp_schedule_worker +EXPORT_SYMBOL drivers/ptp/ptp 0x279451c2 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x2ff1bb24 ptp_find_pin +EXPORT_SYMBOL drivers/ptp/ptp 0x7318d0f0 ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0x89217919 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x9378205e ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x99744b6e ptp_cancel_worker_sync +EXPORT_SYMBOL drivers/ptp/ptp 0xde1ed6ba ptp_find_pin_unlocked +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x020a87c1 dasd_term_IO +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x09ace359 dasd_smalloc_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x0b22c339 dasd_eer_write +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x1427a36a dasd_log_sense +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x15e41599 dasd_kick_device +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x167a414e dasd_device_clear_timer +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x19082a77 dasd_reload_device +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x2b1c0017 dasd_ffree_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x2c9cf44c dasd_add_request_tail +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x2eda56ca dasd_debug_area +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x331dbd0e dasd_alloc_erp_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x33893e14 dasd_schedule_device_bh +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x35c9c407 dasd_diag_discipline_pointer +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x3b793871 dasd_add_request_head +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x3d54d084 dasd_fmalloc_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x4fd36f9c dasd_start_IO +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x534aba7d dasd_sfree_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x57ca24d9 dasd_sleep_on_immediatly +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x648898ca dasd_path_remove_kobjects +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x6f13d817 dasd_int_handler +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x706aedeb dasd_default_erp_action +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x70f9ee86 dasd_schedule_block_bh +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x81fb51cc dasd_path_create_kobj +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0x8959f676 dasd_log_sense_dbf +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xa6c04fb2 dasd_set_feature +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xa882aa12 dasd_block_clear_timer +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xaccd87c0 dasd_free_erp_request +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xb4dcb5de dasd_sleep_on_queue +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xb5a5889f dasd_sleep_on +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xba46a993 dasd_block_set_timer +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xc134caac dasd_sleep_on_queue_interruptible +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xcabb0638 dasd_device_set_timer +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xcce9dd73 dasd_schedule_requeue +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xdd476506 dasd_path_create_kobjects +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xdec92b8e dasd_default_erp_postaction +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xf80b3c75 dasd_sleep_on_interruptible +EXPORT_SYMBOL drivers/s390/block/dasd_mod 0xfe70b8e0 dasd_enable_device +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 0x022ad0d7 tape_std_unassign +EXPORT_SYMBOL drivers/s390/char/tape 0x0ba5c3a0 tape_generic_remove +EXPORT_SYMBOL drivers/s390/char/tape 0x11c949a0 tape_std_mtbsf +EXPORT_SYMBOL drivers/s390/char/tape 0x178153ac tape_put_device +EXPORT_SYMBOL drivers/s390/char/tape 0x182f0b4d tape_std_read_backward +EXPORT_SYMBOL drivers/s390/char/tape 0x20a46485 tape_dump_sense_dbf +EXPORT_SYMBOL drivers/s390/char/tape 0x2546c415 tape_state_verbose +EXPORT_SYMBOL drivers/s390/char/tape 0x47dedb6b tape_std_mtfsf +EXPORT_SYMBOL drivers/s390/char/tape 0x53bcc2e5 tape_alloc_request +EXPORT_SYMBOL drivers/s390/char/tape 0x5732eaeb tape_std_mtsetblk +EXPORT_SYMBOL drivers/s390/char/tape 0x58da35c1 tape_std_mtunload +EXPORT_SYMBOL drivers/s390/char/tape 0x644049fe tape_std_process_eov +EXPORT_SYMBOL drivers/s390/char/tape 0x66deb66c tape_op_verbose +EXPORT_SYMBOL drivers/s390/char/tape 0x697114db tape_std_mtreset +EXPORT_SYMBOL drivers/s390/char/tape 0x6ab34be7 tape_do_io_interruptible +EXPORT_SYMBOL drivers/s390/char/tape 0x6ee9a28b tape_med_state_set +EXPORT_SYMBOL drivers/s390/char/tape 0x82830ae2 tape_std_mtweof +EXPORT_SYMBOL drivers/s390/char/tape 0x900d6b4a tape_get_device +EXPORT_SYMBOL drivers/s390/char/tape 0x90a91bb2 tape_std_mtreten +EXPORT_SYMBOL drivers/s390/char/tape 0x9282f360 tape_cancel_io +EXPORT_SYMBOL drivers/s390/char/tape 0x952b75fa tape_std_mtnop +EXPORT_SYMBOL drivers/s390/char/tape 0x9d05edf2 tape_generic_online +EXPORT_SYMBOL drivers/s390/char/tape 0x9e022ca2 tape_std_mteom +EXPORT_SYMBOL drivers/s390/char/tape 0xa7b3dc7f tape_mtop +EXPORT_SYMBOL drivers/s390/char/tape 0xb0c6f3f9 tape_std_read_block +EXPORT_SYMBOL drivers/s390/char/tape 0xb1d0e856 tape_std_mtfsr +EXPORT_SYMBOL drivers/s390/char/tape 0xb42c5d25 tape_std_mterase +EXPORT_SYMBOL drivers/s390/char/tape 0xba3bfa51 tape_std_mtoffl +EXPORT_SYMBOL drivers/s390/char/tape 0xbfdd5390 tape_core_dbf +EXPORT_SYMBOL drivers/s390/char/tape 0xc4ce135b tape_state_set +EXPORT_SYMBOL drivers/s390/char/tape 0xc7da086f tape_generic_offline +EXPORT_SYMBOL drivers/s390/char/tape 0xc8ba4fb7 tape_std_mtrew +EXPORT_SYMBOL drivers/s390/char/tape 0xd48b7d68 tape_std_read_block_id +EXPORT_SYMBOL drivers/s390/char/tape 0xd6310338 tape_std_mtbsfm +EXPORT_SYMBOL drivers/s390/char/tape 0xdad10f92 tape_std_mtfsfm +EXPORT_SYMBOL drivers/s390/char/tape 0xdb63633d tape_std_mtcompression +EXPORT_SYMBOL drivers/s390/char/tape 0xdbc4edb2 tape_generic_probe +EXPORT_SYMBOL drivers/s390/char/tape 0xddd27991 tape_do_io +EXPORT_SYMBOL drivers/s390/char/tape 0xdeac18b9 tape_do_io_async +EXPORT_SYMBOL drivers/s390/char/tape 0xe1202d85 tape_std_mtload +EXPORT_SYMBOL drivers/s390/char/tape 0xe45d2a25 tape_std_assign +EXPORT_SYMBOL drivers/s390/char/tape 0xe7c77a9d tape_std_mtbsr +EXPORT_SYMBOL drivers/s390/char/tape 0xece58852 tape_std_display +EXPORT_SYMBOL drivers/s390/char/tape 0xeedbc004 tape_free_request +EXPORT_SYMBOL drivers/s390/char/tape 0xf85ec136 tape_std_write_block +EXPORT_SYMBOL drivers/s390/char/tape_34xx 0x62e7da44 tape_34xx_dbf +EXPORT_SYMBOL drivers/s390/char/tape_3590 0xaf3a2c16 tape_3590_dbf +EXPORT_SYMBOL drivers/s390/char/tape_class 0xe4ec9202 unregister_tape_dev +EXPORT_SYMBOL drivers/s390/char/tape_class 0xeabdaef5 register_tape_dev +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x04468012 ccwgroup_driver_unregister +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x0a1acf9e ccwgroup_remove_ccwdev +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x0cfbb80c ccwgroup_set_online +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x15ad6086 ccwgroup_set_offline +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x2eb9dbf2 ccwgroup_driver_register +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0x36673c13 ccwgroup_create_dev +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0xf28bcfc2 dev_is_ccwgroup +EXPORT_SYMBOL drivers/s390/cio/ccwgroup 0xfd72431e ccwgroup_probe_ccwdev +EXPORT_SYMBOL drivers/s390/cio/qdio 0x0dd1ee1e qdio_start_irq +EXPORT_SYMBOL drivers/s390/cio/qdio 0x7f56d334 qdio_stop_irq +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0x00cbfcde __traceiter_vfio_ccw_chp_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0x7acf9c1f __SCK__tp_func_vfio_ccw_fsm_io_request +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0x87db7cac __traceiter_vfio_ccw_fsm_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0x9cc9b339 __SCK__tp_func_vfio_ccw_fsm_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xab59e724 __tracepoint_vfio_ccw_fsm_async_request +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xb3cb802b __SCK__tp_func_vfio_ccw_chp_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xc4df2d80 __traceiter_vfio_ccw_fsm_io_request +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xc71044f9 __SCK__tp_func_vfio_ccw_fsm_async_request +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xc8156451 __tracepoint_vfio_ccw_chp_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xdb6c0a19 __tracepoint_vfio_ccw_fsm_io_request +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xe7175743 __tracepoint_vfio_ccw_fsm_event +EXPORT_SYMBOL drivers/s390/cio/vfio_ccw 0xeeaa8b65 __traceiter_vfio_ccw_fsm_async_request +EXPORT_SYMBOL drivers/s390/crypto/pkey 0xa2396123 pkey_keyblob2pkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x0327b454 zcrypt_send_cprb +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x0ebc8b2f __SCK__tp_func_s390_zcrypt_rep +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x1360e3df cca_findcard2 +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x177c49f9 zcrypt_queue_free +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x17a7ba6e __SCK__tp_func_s390_zcrypt_req +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x274ee02a ep11_findcard2 +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x2af6340e cca_check_secaeskeytoken +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x2dc30fe9 cca_findcard +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x314aed2b cca_get_info +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x404502d2 __traceiter_s390_zcrypt_rep +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x4812044f ep11_check_aes_key_with_hdr +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x49071731 ep11_check_aes_key +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x4aad03c0 cca_gencipherkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x52190334 cca_sec2protkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x528cac6a zcrypt_queue_get +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x5e050fdf cca_genseckey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x67cedaeb zcrypt_rescan_req +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x67e750b4 zcrypt_queue_unregister +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x7136ef09 zcrypt_card_put +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x742e0afe zcrypt_card_alloc +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x7dd52fc2 ep11_clr2keyblob +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x838f1acc zcrypt_card_unregister +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x85ca4e1d __traceiter_s390_zcrypt_req +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x88cf5390 zcrypt_queue_register +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0x8e61f5ad cca_check_secaescipherkey +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 0x9b41d74f cca_check_sececckeytoken +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xa502c213 zcrypt_wait_api_operational +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xa54284be zcrypt_device_status_ext +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xbca3476d zcrypt_card_register +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 0xc3ee9fa0 cca_cipher2protkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xc590e951 zcrypt_msgtype +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xc79ae663 __tracepoint_s390_zcrypt_rep +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xca323a3e ep11_check_ecc_key_with_hdr +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xd53d2132 zcrypt_queue_alloc +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xdb0adadb ep11_kblob2protkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xde81d722 __tracepoint_s390_zcrypt_req +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xe41a19a2 zcrypt_card_get +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xea54d73e cca_clr2cipherkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xec693119 cca_ecc2protkey +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xee077284 ep11_get_card_info +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xf404cb7a zcrypt_queue_put +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xfa128312 zcrypt_send_ep11_cprb +EXPORT_SYMBOL drivers/s390/crypto/zcrypt 0xff53b870 zcrypt_card_free +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 0x312e1b73 init_fsm +EXPORT_SYMBOL drivers/s390/net/fsm 0x331bbed3 kfree_fsm +EXPORT_SYMBOL drivers/s390/net/fsm 0x92d7bc3b fsm_modtimer +EXPORT_SYMBOL drivers/s390/net/fsm 0xab62b304 fsm_addtimer +EXPORT_SYMBOL drivers/s390/net/fsm 0xaefe8672 fsm_getstate_str +EXPORT_SYMBOL drivers/s390/net/fsm 0xdf20006d fsm_settimer +EXPORT_SYMBOL drivers/s390/net/fsm 0xe8a7dd7d fsm_deltimer +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0042a0e0 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x38e7dcc5 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x45da8f87 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x49f9ce94 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5e42673f fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x673f59f0 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9a82d520 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaa91a06c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc25e3edb fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdbf378f0 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf709efa7 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x089df89c fc_rport_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09d5cde9 fc_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b0068c9 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c8a811b fc_rport_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d18ea61 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20cf53ec fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x244045c1 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x298590d1 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f0ee177 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x300960af fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32c355e1 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3d148f2b fc_rport_recv_req +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45bba58a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48e5c50a fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c50e7a9 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e1a1f1e fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50a3a5c9 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5394a807 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53b1fb8d fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x55668210 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x576cc2be fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x595d466f fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59eef069 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c53ac90 fc_lport_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64438361 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69418424 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6b3fa621 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d6d0622 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x708e777f fc_seq_assign +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75a15095 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7684e415 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ce8fa4d fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f3407a7 fc_seq_start_next +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f47a5fd fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7fe3b1bd fc_rport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x811811e0 fc_exch_done +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x831c4b00 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x858437b6 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d23a263 fc_seq_set_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8f7f57eb fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9133a63b fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x937d4b77 fc_rport_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x996b7a21 fc_linkdown +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 0xafaa5ff3 fc_exch_seq_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb0ddd5a1 fc_rport_flush_queue +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb27b010c fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb54e7b9e fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb82ec555 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1cbdfb1 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4cbc4e3 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9cd1363 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcae60820 fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb18f479 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce8ab603 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3a6fe9d fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd791973f fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdfa68c69 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe295f4d0 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeb150d8b fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed2c130f fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1e0571d fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf689e662 fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa4667d1 fc_seq_release +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4a8e3d34 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x6fb0f5f2 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x726ded0b sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x7322cdf6 sas_resume_ha_no_sync +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xeba2b77c sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/raid_class 0x9cfb9e82 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xd148fcc3 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xdc026cb2 raid_class_release +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x19fb5a72 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27bc85a6 fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2ee7c26b fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x30b5fa24 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x33b2e822 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x375f8bbd fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3b7247ae fc_eh_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3bf622d6 fc_find_rport_by_wwpn +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3f3c6d88 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f3f87be scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x61a164a9 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7e5f7161 fc_host_fpin_rcv +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x86d32e4e fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9d8acfc6 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc46e08ff fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe00635f8 fc_block_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf2281b46 fc_host_post_fc_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfff85b5a fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0887084c sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c711f0e sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0faa5984 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x39be4da2 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3c4318fa sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4072592c sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48456316 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x533eed9b sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x58a0e74a scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6176f26e sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x694f9284 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6d4352a4 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70e54b5d sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84493b03 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84815370 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x87795f9a sas_get_address +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c54163e sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93ce92d3 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x975c65af sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xae38ffe3 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf2df8b4 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5438669 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbc18e61b scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbe6be735 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc64e238b sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcee2613b sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3983704 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd7d20fbd sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf0f01432 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x06a60101 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1239c4ab spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x2a6e3b55 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x4a5f5b25 spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x87aee0f3 spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x08d88ab7 srp_start_tl_fail_timers +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x09541ba5 srp_rport_put +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x1856712f srp_timed_out +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x3ffc0aa4 srp_rport_get +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0x405b6e05 srp_parse_tmo +EXPORT_SYMBOL drivers/scsi/scsi_transport_srp 0xd378b545 srp_reconnect_rport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0427f735 iscsit_add_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x046c4845 iscsit_thread_check_cpumask +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x048b90db iscsit_build_datain_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x082790f9 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0b2a04d4 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0b49e964 iscsi_change_param_sprintf +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x13463484 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1b1e5b00 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x20117992 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x28ae17e5 iscsit_release_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x298f5811 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2ed9b0f0 iscsit_handle_snack +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x361effee iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4432b114 __iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x51170c39 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x537cb513 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5713e8e1 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5c8c4014 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60c8a59e iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6368cb16 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7163a461 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x728e3969 iscsit_set_unsolicited_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7960e074 iscsi_target_check_login_request +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7966b8a8 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x82a95220 iscsit_response_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8c6ee2f3 iscsit_find_cmd_from_itt_or_dump +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8e91e5b6 iscsit_aborted_task +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9818a9dc iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xac5d65ee iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb71feea7 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb8472bc0 iscsit_queue_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb88209f0 iscsit_find_cmd_from_itt +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcae32709 iscsit_free_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xce89abf5 iscsit_get_datain_values +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdb87704a iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdde19b26 iscsit_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xde1ca4a1 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xee2af3fb iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xef77f44c iscsit_add_cmd_to_immediate_queue +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf04fced6 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 0xf70caa0e iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfaf42e9e iscsit_reject_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfc8b0a1f iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfedb4984 iscsit_build_r2ts_for_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xff10ebb7 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/target_core_mod 0x04b8db8c target_register_template +EXPORT_SYMBOL drivers/target/target_core_mod 0x071ed29b target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x0871ffd6 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x09993ae7 target_configure_unmap_from_queue +EXPORT_SYMBOL drivers/target/target_core_mod 0x0cade6d6 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x136f5cf4 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x142072c0 transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x14e2911b transport_copy_sense_to_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x154c0d27 passthrough_pr_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x1568cfbd transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x1646c040 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x1682c969 target_show_dynamic_sessions +EXPORT_SYMBOL drivers/target/target_core_mod 0x1aadc520 core_allocate_nexus_loss_ua +EXPORT_SYMBOL drivers/target/target_core_mod 0x1f36f5df target_complete_cmd_with_length +EXPORT_SYMBOL drivers/target/target_core_mod 0x2429a66c transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x263acbbc target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x26a0e2ad target_cmd_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x2be39c3e spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x2c846dd0 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x2d7efd7c core_tpg_get_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x3175c4ac transport_backend_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x34c320b8 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a20a9d7 transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x3a5ae47f transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x3aead7e7 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3cf2c176 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x3ed7610b transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x43c9f91b transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x43f806e4 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x46d4212b target_complete_cmd_with_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x478e20f0 target_show_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x486342a3 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x50edda94 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x5189156a core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x5c6237b7 target_lun_is_rdonly +EXPORT_SYMBOL drivers/target/target_core_mod 0x638bffb7 target_free_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x673fa72e target_send_busy +EXPORT_SYMBOL drivers/target/target_core_mod 0x678d9419 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x67fd1ec0 target_backend_unregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x6de201a8 transport_alloc_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x72987821 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x739a9b89 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x76363062 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x77426101 target_tpg_has_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a1d0d3c target_alloc_sgl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fb38d22 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x86d76f0c sbc_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x89bd773c transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x8d6b5896 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x8e0b53de target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x915ea5ff passthrough_attrib_attrs +EXPORT_SYMBOL drivers/target/target_core_mod 0x9702391c transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x98d3ea66 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x9940bbdd target_stop_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x99abd3f7 target_cmd_init_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x9b19adec target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa693802c target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa960a583 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xb3e54529 target_set_cmd_data_length +EXPORT_SYMBOL drivers/target/target_core_mod 0xbadf8c76 target_unregister_template +EXPORT_SYMBOL drivers/target/target_core_mod 0xc0d545a7 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xc49945ce sbc_dif_copy_prot +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc1062f0 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xd333705b target_setup_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd35f42ed target_depend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0xd4df993b target_undepend_item +EXPORT_SYMBOL drivers/target/target_core_mod 0xd665cc85 target_remove_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd8055d9a transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xda6d1b31 target_put_nacl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdbaeaf24 passthrough_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf066eb8 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf895ff3 target_to_linux_sector +EXPORT_SYMBOL drivers/target/target_core_mod 0xdfbc69b4 target_nacl_find_deve +EXPORT_SYMBOL drivers/target/target_core_mod 0xea7ace3e core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xec282143 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3c2dfe0 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf3fa37ea __target_init_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xf8da48b6 sbc_dif_verify +EXPORT_SYMBOL drivers/target/target_core_mod 0xffc5e719 transport_alloc_session_tags +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x02b633ed uart_match_port +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x2836e486 uart_suspend_port +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x2fdd344e uart_get_divisor +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x37ab689d uart_register_driver +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x42a34860 uart_unregister_driver +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x42e8d432 uart_update_timeout +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x5fb37de1 uart_add_one_port +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x6b7b73e9 uart_write_wakeup +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x7bea43a8 uart_remove_one_port +EXPORT_SYMBOL drivers/tty/serial/serial_core 0x8035626d uart_resume_port +EXPORT_SYMBOL drivers/tty/serial/serial_core 0xed4887de uart_get_baud_rate +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x242b52bc mdev_register_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x4a0a0df9 mdev_unregister_driver +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x535ddf32 mtype_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x5ef017d2 mdev_unregister_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x6409d94a mdev_register_device +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0x829292a4 mdev_get_type_group_id +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xafe3d7d6 mdev_parent_dev +EXPORT_SYMBOL drivers/vfio/mdev/mdev 0xc1e0e155 mtype_get_parent_dev +EXPORT_SYMBOL drivers/vfio/vfio 0x01bb02c6 vfio_unregister_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0x4232a0c3 vfio_info_cap_shift +EXPORT_SYMBOL drivers/vfio/vfio 0x4f44ece4 vfio_unpin_pages +EXPORT_SYMBOL drivers/vfio/vfio 0xaf8a4a7f vfio_set_irqs_validate_and_prepare +EXPORT_SYMBOL drivers/vfio/vfio 0xb1b50ff3 vfio_dma_rw +EXPORT_SYMBOL drivers/vfio/vfio 0xe5285778 vfio_register_notifier +EXPORT_SYMBOL drivers/vfio/vfio 0xf3411eb8 vfio_info_add_capability +EXPORT_SYMBOL drivers/vfio/vfio 0xfbcc5a4f vfio_pin_pages +EXPORT_SYMBOL drivers/vhost/vhost 0x99609b3b vhost_chr_write_iter +EXPORT_SYMBOL drivers/vhost/vhost 0xc791d62c vhost_chr_poll +EXPORT_SYMBOL drivers/video/fbdev/core/cfbcopyarea 0x29166cdb cfb_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/cfbfillrect 0x42d96c11 cfb_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/cfbimgblt 0x65cb8b02 cfb_imageblit +EXPORT_SYMBOL drivers/video/fbdev/core/syscopyarea 0xf516717e sys_copyarea +EXPORT_SYMBOL drivers/video/fbdev/core/sysfillrect 0x9ed971b4 sys_fillrect +EXPORT_SYMBOL drivers/video/fbdev/core/sysimgblt 0xa3024da2 sys_imageblit +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x1feaa043 is_virtio_dma_buf +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0x215fbf94 virtio_dma_buf_attach +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xa7a4c7c8 virtio_dma_buf_get_uuid +EXPORT_SYMBOL drivers/virtio/virtio_dma_buf 0xccfefd49 virtio_dma_buf_export +EXPORT_SYMBOL fs/fscache/fscache 0x00881455 fscache_caching_failed +EXPORT_SYMBOL fs/fscache/fscache 0x07b00878 fscache_withdraw_volume +EXPORT_SYMBOL fs/fscache/fscache 0x0f218f0e fscache_end_cookie_access +EXPORT_SYMBOL fs/fscache/fscache 0x1322c269 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x1a0d09e7 fscache_n_write +EXPORT_SYMBOL fs/fscache/fscache 0x1a25cfa0 __tracepoint_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x20962d2d __fscache_relinquish_volume +EXPORT_SYMBOL fs/fscache/fscache 0x234a140d __traceiter_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x27f09652 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x306805d3 __SCK__tp_func_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0x39674879 __tracepoint_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x3d21226b fscache_withdraw_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x3f6c5c3d __fscache_use_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x4404d2aa fscache_n_no_create_space +EXPORT_SYMBOL fs/fscache/fscache 0x4996bd29 fscache_n_updates +EXPORT_SYMBOL fs/fscache/fscache 0x4a3e3623 __fscache_begin_write_operation +EXPORT_SYMBOL fs/fscache/fscache 0x4bd084ba __SCK__tp_func_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0x4bdcbebd fscache_dirty_folio +EXPORT_SYMBOL fs/fscache/fscache 0x58c01c3e fscache_relinquish_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6611fe56 __fscache_unuse_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6c5e41e7 __tracepoint_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x6e416521 __SCK__tp_func_fscache_access_volume +EXPORT_SYMBOL fs/fscache/fscache 0x6faefd57 fscache_put_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x71490143 __fscache_clear_page_bits +EXPORT_SYMBOL fs/fscache/fscache 0x74f1b9aa fscache_cookie_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x7ac848e4 __fscache_acquire_volume +EXPORT_SYMBOL fs/fscache/fscache 0x8ca2b5fa __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x90d447f3 fscache_n_culled +EXPORT_SYMBOL fs/fscache/fscache 0x95077919 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x9f8a213f __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x9ffefcb2 fscache_n_read +EXPORT_SYMBOL fs/fscache/fscache 0xa9063ab5 fscache_get_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xaa802cb7 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0xae6040a5 __traceiter_fscache_access_cache +EXPORT_SYMBOL fs/fscache/fscache 0xae75edc2 __fscache_write_to_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb5d2f3da fscache_wait_for_operation +EXPORT_SYMBOL fs/fscache/fscache 0xb652d543 __fscache_resize_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xbca46908 fscache_wq +EXPORT_SYMBOL fs/fscache/fscache 0xc561ff8d __fscache_begin_read_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcce11a60 fscache_n_no_write_space +EXPORT_SYMBOL fs/fscache/fscache 0xcd99a2f8 fscache_end_volume_access +EXPORT_SYMBOL fs/fscache/fscache 0xdcb87498 __traceiter_fscache_access +EXPORT_SYMBOL fs/fscache/fscache 0xf1afb294 fscache_acquire_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf2aa23a8 fscache_resume_after_invalidation +EXPORT_SYMBOL fs/fscache/fscache 0xf68b44dc fscache_addremove_sem +EXPORT_SYMBOL fs/fscache/fscache 0xff20eabd fscache_clearance_waiters +EXPORT_SYMBOL fs/netfs/netfs 0x72a480af netfs_write_begin +EXPORT_SYMBOL fs/netfs/netfs 0x7411d062 netfs_readahead +EXPORT_SYMBOL fs/netfs/netfs 0x9ba8036c netfs_read_folio +EXPORT_SYMBOL fs/netfs/netfs 0x9eb7d7c9 netfs_stats_show +EXPORT_SYMBOL fs/netfs/netfs 0xbb58a9d9 netfs_subreq_terminated +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x5c8556b6 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x89ed14bb qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x969bede8 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xa2d7e104 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa73fc143 qtree_get_next_id +EXPORT_SYMBOL fs/quota/quota_tree 0xc04c4224 qtree_delete_dquot +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 0x75d9109e crc8 +EXPORT_SYMBOL lib/crc8 0xaa8106bc crc8_populate_msb +EXPORT_SYMBOL lib/crc8 0xc3cd034d crc8_populate_lsb +EXPORT_SYMBOL lib/crypto/libchacha 0xcec122d7 chacha_crypt_generic +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x161ec81e chacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x35142bf2 xchacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0x637307c6 chacha20poly1305_encrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xa3883e62 chacha20poly1305_encrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xb9f848ed xchacha20poly1305_decrypt +EXPORT_SYMBOL lib/crypto/libchacha20poly1305 0xff3141e0 chacha20poly1305_decrypt_sg_inplace +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x12627f15 curve25519_generic +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x4a5a8811 curve25519_null_point +EXPORT_SYMBOL lib/crypto/libcurve25519-generic 0x7e6fdbfc curve25519_base_point +EXPORT_SYMBOL lib/crypto/libpoly1305 0x021f3700 poly1305_core_blocks +EXPORT_SYMBOL lib/crypto/libpoly1305 0xbcb90cb3 poly1305_core_emit +EXPORT_SYMBOL lib/crypto/libpoly1305 0xd45b9cf4 poly1305_core_setkey +EXPORT_SYMBOL lib/libcrc32c 0x89a0cd52 crc32c_impl +EXPORT_SYMBOL lib/libcrc32c 0xb15b4109 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0034302f lc_seq_printf_stats +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 0x7267d690 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x7869961b lc_set +EXPORT_SYMBOL lib/lru_cache 0x79c87149 lc_get +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 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 net/802/p8022 0x179cae1d register_8022_client +EXPORT_SYMBOL net/802/p8022 0xf32ab542 unregister_8022_client +EXPORT_SYMBOL net/802/psnap 0x8a304c8a register_snap_client +EXPORT_SYMBOL net/802/psnap 0xa5f40678 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x09b3839b p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x0d7b5e02 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x11962d36 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x1254d363 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x141dbf92 p9_show_client_options +EXPORT_SYMBOL net/9p/9pnet 0x16da1972 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x16df3f8e p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0x21a85aef p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x23bce257 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x24ce1e2a p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2a2b0145 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x32645a43 p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x3639843f p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x37fb8c62 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x3d52c5b6 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f29b21e p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x40271d1e p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x4927f16a p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x4d313bc7 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x518f3d6a p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x523df924 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x54713a44 p9_client_read_once +EXPORT_SYMBOL net/9p/9pnet 0x59e84c5f v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x5ae39fbf p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x5c7fc9b1 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x688b493c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x84eeabf0 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x8cae6c38 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xa2b30936 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xaf71f0d4 p9_fcall_fini +EXPORT_SYMBOL net/9p/9pnet 0xb9363a71 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0xbac9a374 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xbfaa07ad p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xc4961782 p9_req_put +EXPORT_SYMBOL net/9p/9pnet 0xc76e6fcc p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0xc7bad4fc p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xce0228bd p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0xce5b953c p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd384c683 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0xd413245d p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xdc0eb79f p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xdc723f60 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xe3831219 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xef0e61d8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf12ac34e v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xf94ecd66 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xffcd0d01 p9_client_mkdir_dotl +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x39c4b4fe ebt_unregister_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x5fc8be29 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6329455e ebt_unregister_table_pre_exit +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8e308ce6 ebt_register_template +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xdeab60c3 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xede69cfc ebt_register_table +EXPORT_SYMBOL net/ceph/libceph 0x004f6eb8 ceph_monc_want_map +EXPORT_SYMBOL net/ceph/libceph 0x0055baac ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0328f8c8 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x06521ddb osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x07575505 osd_req_op_alloc_hint_init +EXPORT_SYMBOL net/ceph/libceph 0x0a09ea44 ceph_wait_for_latest_osdmap +EXPORT_SYMBOL net/ceph/libceph 0x0ce74839 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0e776b7e ceph_pg_pool_flags +EXPORT_SYMBOL net/ceph/libceph 0x0f1c0c91 ceph_print_client_options +EXPORT_SYMBOL net/ceph/libceph 0x11d809e4 ceph_osdc_alloc_messages +EXPORT_SYMBOL net/ceph/libceph 0x124b29ff ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x127897d7 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x13b609c2 ceph_osdc_put_request +EXPORT_SYMBOL net/ceph/libceph 0x182d12b9 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x1a5761d7 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x1aceaeb4 ceph_msg_data_add_bvecs +EXPORT_SYMBOL net/ceph/libceph 0x1b15f00b osd_req_op_xattr_init +EXPORT_SYMBOL net/ceph/libceph 0x1d55bed1 ceph_parse_param +EXPORT_SYMBOL net/ceph/libceph 0x1f76d427 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x2087719e ceph_oid_copy +EXPORT_SYMBOL net/ceph/libceph 0x2101cbc9 ceph_oid_destroy +EXPORT_SYMBOL net/ceph/libceph 0x25457d29 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x25ef1d0e ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x2a02e3d9 ceph_osdc_abort_requests +EXPORT_SYMBOL net/ceph/libceph 0x2a2ff291 ceph_cls_break_lock +EXPORT_SYMBOL net/ceph/libceph 0x2b461c08 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2d5aedb2 ceph_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x30ba9a46 ceph_osdc_call +EXPORT_SYMBOL net/ceph/libceph 0x31ff1799 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x342a3649 ceph_cls_unlock +EXPORT_SYMBOL net/ceph/libceph 0x34f7d2d6 ceph_osdc_notify_ack +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 0x37c57d81 ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x38f2d94e ceph_file_to_extents +EXPORT_SYMBOL net/ceph/libceph 0x3bc819d7 ceph_auth_handle_bad_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x3c16fd7a ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x3c8d7111 ceph_get_num_objects +EXPORT_SYMBOL net/ceph/libceph 0x40caf9b2 ceph_msg_new2 +EXPORT_SYMBOL net/ceph/libceph 0x416191a8 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0x42b061ac ceph_parse_mon_ips +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4736d8c7 osd_req_op_extent_osd_data_bvec_pos +EXPORT_SYMBOL net/ceph/libceph 0x4affd6c2 ceph_parse_fsid +EXPORT_SYMBOL net/ceph/libceph 0x4deae198 ceph_monc_renew_subs +EXPORT_SYMBOL net/ceph/libceph 0x4ffd8a68 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x50603ce3 ceph_decode_entity_addrvec +EXPORT_SYMBOL net/ceph/libceph 0x50bb039e ceph_auth_handle_svc_reply_more +EXPORT_SYMBOL net/ceph/libceph 0x524eef22 ceph_monc_got_map +EXPORT_SYMBOL net/ceph/libceph 0x52e131f0 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x546bd1fd ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x58ab4ee8 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x5a6da37d ceph_auth_add_authorizer_challenge +EXPORT_SYMBOL net/ceph/libceph 0x5aeeee62 ceph_oid_aprintf +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x65d1a721 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x67a84a38 ceph_monc_blocklist_add +EXPORT_SYMBOL net/ceph/libceph 0x6a7a38a0 ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x6c635122 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x6c962351 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x6c9aab53 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x6f3e90c6 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x710b60f2 __ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x721b69a4 ceph_cls_assert_locked +EXPORT_SYMBOL net/ceph/libceph 0x756a9c1d ceph_monc_get_version_async +EXPORT_SYMBOL net/ceph/libceph 0x7790a91c ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x789bb6e6 ceph_reset_client_addr +EXPORT_SYMBOL net/ceph/libceph 0x7ae0eaa1 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x8111e973 ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x81d82bea ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x8375650f ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x86cf9c7a ceph_osdc_watch +EXPORT_SYMBOL net/ceph/libceph 0x86fca7e4 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x89895585 osd_req_op_extent_dup_last +EXPORT_SYMBOL net/ceph/libceph 0x8ac47708 ceph_osdc_list_watchers +EXPORT_SYMBOL net/ceph/libceph 0x8cf723e0 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x90e45510 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x92a466f2 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x9325997b ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x971a26e9 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x987d3968 ceph_alloc_options +EXPORT_SYMBOL net/ceph/libceph 0x987d805b osd_req_op_copy_from_init +EXPORT_SYMBOL net/ceph/libceph 0x9a6db5fe ceph_osdc_update_epoch_barrier +EXPORT_SYMBOL net/ceph/libceph 0x9ca95932 ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x9eceb3b3 ceph_msg_put +EXPORT_SYMBOL net/ceph/libceph 0x9fefa3cb ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0xa0a5a5c0 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xa0c18dcb osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xa15e766b osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xa376f5df ceph_pagelist_alloc +EXPORT_SYMBOL net/ceph/libceph 0xa586d0c6 osd_req_op_extent_osd_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0xa58b7e99 ceph_pg_to_acting_primary +EXPORT_SYMBOL net/ceph/libceph 0xa698f998 ceph_free_lockers +EXPORT_SYMBOL net/ceph/libceph 0xa84cc52d ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xaaf84e5e ceph_osdc_clear_abort_err +EXPORT_SYMBOL net/ceph/libceph 0xabec3489 ceph_monc_wait_osdmap +EXPORT_SYMBOL net/ceph/libceph 0xad703657 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb0cfdf5b ceph_cls_lock_info +EXPORT_SYMBOL net/ceph/libceph 0xb0fb49eb ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xb3bf3449 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xb52e9301 ceph_msg_get +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb72c162e ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xb8028006 ceph_object_locator_to_pg +EXPORT_SYMBOL net/ceph/libceph 0xbc620824 ceph_client_gid +EXPORT_SYMBOL net/ceph/libceph 0xbc98cee2 ceph_oloc_copy +EXPORT_SYMBOL net/ceph/libceph 0xbe3879aa ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xc60d4576 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xc6833eb5 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xc7df5158 ceph_auth_get_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xca80437b ceph_extent_to_file +EXPORT_SYMBOL net/ceph/libceph 0xcab25d94 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xcac10ba2 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xd2dec723 ceph_osdc_maybe_request_map +EXPORT_SYMBOL net/ceph/libceph 0xd3491c9c osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xd4d736db ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0xd4eb7735 ceph_decode_entity_addr +EXPORT_SYMBOL net/ceph/libceph 0xdc7ce967 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xdeddd368 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xdf6ef4a1 ceph_oid_printf +EXPORT_SYMBOL net/ceph/libceph 0xdfc091f9 ceph_entity_type_name +EXPORT_SYMBOL net/ceph/libceph 0xe3439dee ceph_cls_lock +EXPORT_SYMBOL net/ceph/libceph 0xe39966e0 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xe58ab871 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0xe6543b88 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xe67aa56e ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xe6d39828 ceph_osdc_get_request +EXPORT_SYMBOL net/ceph/libceph 0xe6e66cab ceph_cls_set_cookie +EXPORT_SYMBOL net/ceph/libceph 0xe85108a4 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0xe9fc5a02 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0xea7e3e31 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xeb033196 ceph_monc_get_version +EXPORT_SYMBOL net/ceph/libceph 0xee120c03 ceph_release_string +EXPORT_SYMBOL net/ceph/libceph 0xeef6cfa3 ceph_iterate_extents +EXPORT_SYMBOL net/ceph/libceph 0xef42ee6a ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0xef6c4d66 ceph_osdc_flush_notifies +EXPORT_SYMBOL net/ceph/libceph 0xefd8bc0a ceph_osdc_notify +EXPORT_SYMBOL net/ceph/libceph 0xf1a4f784 ceph_osdc_cancel_request +EXPORT_SYMBOL net/ceph/libceph 0xf55ba24f ceph_osdc_unwatch +EXPORT_SYMBOL net/ceph/libceph 0xf6e8a95e osd_req_op_cls_request_data_bvecs +EXPORT_SYMBOL net/ceph/libceph 0xf741d945 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xf8f59673 ceph_auth_handle_svc_reply_done +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x360be640 dccp_syn_ack_timeout +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xb2e19370 dccp_req_err +EXPORT_SYMBOL net/ipv4/fou 0x3899cd11 gue_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0x73ca2218 __fou_build_header +EXPORT_SYMBOL net/ipv4/fou 0xdef70806 fou_encap_hlen +EXPORT_SYMBOL net/ipv4/fou 0xfc75b703 __gue_build_header +EXPORT_SYMBOL net/ipv4/gre 0x0ac75a90 gre_parse_header +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x43926d85 ip_tunnel_encap_add_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0x508b101b ip_tunnel_encap_del_ops +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xcf98c5ed ip_tunnel_get_iflink +EXPORT_SYMBOL net/ipv4/ip_tunnel 0xd6dc6bc0 ip_tunnel_get_link_net +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x06d01b29 arpt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x80402acd arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcdfa46cd arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xebfaa04a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3df4bd2b ipt_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x43a6548d ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x53003be9 ipt_unregister_table_exit +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xca7905f0 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x21660a29 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xeae1f95a xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/udp_tunnel 0xe3eb6872 udp_sock_create4 +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x0bca77cf ip6_tnl_rcv +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x1f22216e ip6_tnl_change_mtu +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x32c0b98e ip6_tnl_get_link_net +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x86dc1516 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x8a9a246a ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xa79c498c ip6_tnl_xmit +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xbd87897c ip6_tnl_get_iflink +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xc4fab7bb ip6_tnl_encap_add_ops +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xfc55ace7 ip6_tnl_encap_del_ops +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x448032c0 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x80d94c87 ip6t_unregister_table_pre_exit +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa5a332f4 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xad3ee3bc ip6t_unregister_table_exit +EXPORT_SYMBOL net/ipv6/tunnel6 0xdf023a48 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0xfd7b293e xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc5445bac xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xdfe3f799 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/llc/llc 0x32331f85 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x4573fd7f llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x4af83261 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x4c58d3f3 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0xd26b6105 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xd95fd8b1 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xf167bece llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0602a1e6 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x12b07aab ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x13857d80 ip_vs_new_conn_out +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x16950246 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x17e9dae0 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3c5ecb84 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x409d18ed ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4798d6a0 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x47f893e0 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x563cd7e9 ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7d4156be register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaaafeb86 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb1d3caff unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe9e7d2fd ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf926aac1 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3b08a8f0 nf_ct_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3beb4a34 nf_ct_ext_add +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x89d99ee1 __nf_ct_ext_find +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0xf2a36612 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_nat 0x318a9c74 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x3678e886 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x5a66d7e4 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x7c2eb833 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nft_fib 0xb3c36947 nft_fib_policy +EXPORT_SYMBOL net/netfilter/x_tables 0x08598d37 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x0be56a70 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x0d7f5fcd xt_alloc_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x1e412bfe xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x1e84be11 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x26d0dec0 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x36bf199a xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x3bf9d084 xt_check_table_hooks +EXPORT_SYMBOL net/netfilter/x_tables 0x48012e28 xt_check_proc_name +EXPORT_SYMBOL net/netfilter/x_tables 0x50873741 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x8ef75831 xt_find_table +EXPORT_SYMBOL net/netfilter/x_tables 0x977fd4bf xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xa25fc115 xt_compat_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xc753afb8 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xcb3e91cc xt_counters_alloc +EXPORT_SYMBOL net/netfilter/x_tables 0xd3a88b17 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd5e26d3a xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xd87ae60d xt_check_entry_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0xe204e042 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xfef779fa xt_find_jump_offset +EXPORT_SYMBOL net/rxrpc/rxrpc 0x0c2bc4c0 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0x16ccb74e rxrpc_kernel_set_tx_length +EXPORT_SYMBOL net/rxrpc/rxrpc 0x1a5d3a9c rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0x31bf3ca3 rxrpc_debug_id +EXPORT_SYMBOL net/rxrpc/rxrpc 0x3fddfbed rxrpc_kernel_get_epoch +EXPORT_SYMBOL net/rxrpc/rxrpc 0x5aff4672 rxrpc_kernel_get_peer +EXPORT_SYMBOL net/rxrpc/rxrpc 0x5c7f484c rxrpc_kernel_set_max_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0x648e4b16 rxrpc_sock_set_min_security_level +EXPORT_SYMBOL net/rxrpc/rxrpc 0x6ac082c6 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0xa8910a6b rxrpc_kernel_new_call_notification +EXPORT_SYMBOL net/rxrpc/rxrpc 0xab35e6ce rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/rxrpc 0xade62d6e rxrpc_kernel_get_srtt +EXPORT_SYMBOL net/rxrpc/rxrpc 0xaec56af9 rxrpc_kernel_check_life +EXPORT_SYMBOL net/rxrpc/rxrpc 0xbc0b9fa2 rxrpc_kernel_get_reply_time +EXPORT_SYMBOL net/rxrpc/rxrpc 0xbcfc7368 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/rxrpc 0xd303084c rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0xdb048939 rxrpc_kernel_recv_data +EXPORT_SYMBOL net/rxrpc/rxrpc 0xee4cb8fb rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/rxrpc 0xf869b8e0 rxrpc_kernel_charge_accept +EXPORT_SYMBOL net/sctp/sctp 0x2f2b3aaa sctp_do_peeloff +EXPORT_SYMBOL net/smc/smc 0x0cd6448a __traceiter_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0x1b1e06e1 __tracepoint_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x2ee68630 __traceiter_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x3153cc92 __SCK__tp_func_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x67c418a5 __traceiter_smc_rx_recvmsg +EXPORT_SYMBOL net/smc/smc 0x6f3cacf9 __traceiter_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0x8989d6ae __tracepoint_smc_switch_to_fallback +EXPORT_SYMBOL net/smc/smc 0x99bf1b00 __tracepoint_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xb3f2d173 __SCK__tp_func_smc_tx_sendmsg +EXPORT_SYMBOL net/smc/smc 0xcd9701fe __tracepoint_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xe7dacb8d __SCK__tp_func_smcr_link_down +EXPORT_SYMBOL net/smc/smc 0xfb8cae0f __SCK__tp_func_smc_switch_to_fallback +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbbdde6de gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbfb1105f gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xe12014ab gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x190128fc svc_pool_stats_open +EXPORT_SYMBOL net/sunrpc/sunrpc 0x69842f24 xdr_truncate_encode +EXPORT_SYMBOL net/sunrpc/sunrpc 0x92b8a4b4 xdr_restrict_buflen +EXPORT_SYMBOL net/tipc/tipc 0x4f08b5e3 tipc_dump_start +EXPORT_SYMBOL net/tipc/tipc 0x64af94e6 tipc_sk_fill_sock_diag +EXPORT_SYMBOL net/tipc/tipc 0xc5b1ce66 tipc_dump_done +EXPORT_SYMBOL net/tipc/tipc 0xf81b538d tipc_nl_sk_walk +EXPORT_SYMBOL net/tls/tls 0xf31eded4 tls_get_record +EXPORT_SYMBOL vmlinux 0x00254fb9 device_get_mac_address +EXPORT_SYMBOL vmlinux 0x00344cd0 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x0045cd31 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x004aa284 blk_mq_delay_run_hw_queues +EXPORT_SYMBOL vmlinux 0x00605020 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x00607e60 pci_iomap_wc +EXPORT_SYMBOL vmlinux 0x00672777 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x008f801d blk_mq_queue_stopped +EXPORT_SYMBOL vmlinux 0x00a1f3ca prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x00b4e615 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x00c539bf scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x00c779cf param_ops_hexint +EXPORT_SYMBOL vmlinux 0x00e6a7bf pci_alloc_irq_vectors_affinity +EXPORT_SYMBOL vmlinux 0x00f4a223 _ebc_toupper +EXPORT_SYMBOL vmlinux 0x00f772c4 iov_iter_pipe +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01021e53 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x01156241 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x01339241 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x0139768e blk_rq_append_bio +EXPORT_SYMBOL vmlinux 0x014716eb hdmi_vendor_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x0147812c kblockd_mod_delayed_work_on +EXPORT_SYMBOL vmlinux 0x0164d73e simple_link +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 0x01a20ede radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x01bf55fc paddr_vmcoreinfo_note +EXPORT_SYMBOL vmlinux 0x01c31757 ip_frag_next +EXPORT_SYMBOL vmlinux 0x01de31d7 ll_rw_block +EXPORT_SYMBOL vmlinux 0x0209f3a7 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x020dbf27 bitmap_alloc +EXPORT_SYMBOL vmlinux 0x0214a998 ip_sock_set_freebind +EXPORT_SYMBOL vmlinux 0x022eb54d pci_get_slot +EXPORT_SYMBOL vmlinux 0x0235083a __breadahead_gfp +EXPORT_SYMBOL vmlinux 0x02419b90 fs_param_is_s32 +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x028c2f73 dqget +EXPORT_SYMBOL vmlinux 0x0296695f refcount_warn_saturate +EXPORT_SYMBOL vmlinux 0x02a5f616 ccw_driver_register +EXPORT_SYMBOL vmlinux 0x02b0e3ec pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x02ca22a8 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x02f034a1 xz_dec_run +EXPORT_SYMBOL vmlinux 0x02f4d77f __SCK__tp_func_s390_cio_tpi +EXPORT_SYMBOL vmlinux 0x02fa85bd eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x02faaf25 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x032eeb16 default_llseek +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x0338a0f7 __f_setown +EXPORT_SYMBOL vmlinux 0x0338e3e6 blk_mq_start_request +EXPORT_SYMBOL vmlinux 0x033a84cf inet_csk_reqsk_queue_drop +EXPORT_SYMBOL vmlinux 0x0344e851 inet_addr_type_table +EXPORT_SYMBOL vmlinux 0x034a7afe idr_destroy +EXPORT_SYMBOL vmlinux 0x034d9941 md_bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x034f52bf dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x0358feb2 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x0360d67f make_flow_keys_digest +EXPORT_SYMBOL vmlinux 0x0361eded pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038762c8 idr_get_next_ul +EXPORT_SYMBOL vmlinux 0x0397edd5 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0x0398c904 cdev_init +EXPORT_SYMBOL vmlinux 0x03d2240c add_virt_timer_periodic +EXPORT_SYMBOL vmlinux 0x03f03282 blk_queue_flag_clear +EXPORT_SYMBOL vmlinux 0x03f9da8d simple_rmdir +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04074820 __traceiter_module_get +EXPORT_SYMBOL vmlinux 0x041213cf phy_disconnect +EXPORT_SYMBOL vmlinux 0x0424ce5c filemap_release_folio +EXPORT_SYMBOL vmlinux 0x042e8a94 reuseport_stop_listen_sock +EXPORT_SYMBOL vmlinux 0x044154c6 tc_skb_ext_tc +EXPORT_SYMBOL vmlinux 0x04425212 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x04444662 lockref_get_not_dead +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045cd854 kbd_ascebc +EXPORT_SYMBOL vmlinux 0x0461de7d pci_ep_cfs_remove_epc_group +EXPORT_SYMBOL vmlinux 0x0479aac1 seq_list_next_rcu +EXPORT_SYMBOL vmlinux 0x048c3b8b pin_user_pages_remote +EXPORT_SYMBOL vmlinux 0x0492c224 is_free_buddy_page +EXPORT_SYMBOL vmlinux 0x04b3a2e7 pci_dev_put +EXPORT_SYMBOL vmlinux 0x04bdd3c4 posix_test_lock +EXPORT_SYMBOL vmlinux 0x04caa0d6 input_get_poll_interval +EXPORT_SYMBOL vmlinux 0x04d5546b d_alloc +EXPORT_SYMBOL vmlinux 0x04d98488 ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x04f69931 __ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x0510dad9 genphy_read_lpa +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x052736bb __sock_create +EXPORT_SYMBOL vmlinux 0x054496b4 schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x0573a078 qdisc_put +EXPORT_SYMBOL vmlinux 0x0584d4ac __traceiter_s390_cio_ssch +EXPORT_SYMBOL vmlinux 0x0586bd28 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x05a14a25 sk_common_release +EXPORT_SYMBOL vmlinux 0x05a363c8 raw3270_request_set_data +EXPORT_SYMBOL vmlinux 0x05b82560 tcp_fastopen_defer_connect +EXPORT_SYMBOL vmlinux 0x05c841fc input_mt_drop_unused +EXPORT_SYMBOL vmlinux 0x05ccfe6f fwnode_graph_parse_endpoint +EXPORT_SYMBOL vmlinux 0x05ce4498 input_unregister_device +EXPORT_SYMBOL vmlinux 0x05d41202 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x05f44b2d phy_drivers_register +EXPORT_SYMBOL vmlinux 0x05fe18b3 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x060351c2 __generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x060de4a6 kmem_cache_alloc_bulk +EXPORT_SYMBOL vmlinux 0x0612bc48 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x06142818 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0619f994 __mdiobus_write +EXPORT_SYMBOL vmlinux 0x06253243 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x063015d4 gen_pool_first_fit_align +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063a6b31 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0x0668b595 _kstrtoul +EXPORT_SYMBOL vmlinux 0x0671502b __hw_addr_ref_sync_dev +EXPORT_SYMBOL vmlinux 0x0677fefe __hw_addr_ref_unsync_dev +EXPORT_SYMBOL vmlinux 0x069ee422 block_commit_write +EXPORT_SYMBOL vmlinux 0x06b8ff8b xfrm_init_state +EXPORT_SYMBOL vmlinux 0x06d11488 __bitmap_equal +EXPORT_SYMBOL vmlinux 0x06ef1a3b unregister_shrinker +EXPORT_SYMBOL vmlinux 0x06f1cb0d fc_mount +EXPORT_SYMBOL vmlinux 0x06faa44a param_set_copystring +EXPORT_SYMBOL vmlinux 0x06fc0689 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x07098248 xz_dec_microlzma_alloc +EXPORT_SYMBOL vmlinux 0x07297511 crc_t10dif_update +EXPORT_SYMBOL vmlinux 0x0736c3ff fault_in_safe_writeable +EXPORT_SYMBOL vmlinux 0x073da8f8 tcp_sock_set_syncnt +EXPORT_SYMBOL vmlinux 0x07680bab pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0x07772f4a fwnode_mdio_find_device +EXPORT_SYMBOL vmlinux 0x078a551f submit_bio +EXPORT_SYMBOL vmlinux 0x0791345a sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07b79ffd proto_register +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d9b2ea scsi_ioctl +EXPORT_SYMBOL vmlinux 0x07da2a7b tcp_sendpage +EXPORT_SYMBOL vmlinux 0x07f31fd2 __filemap_set_wb_err +EXPORT_SYMBOL vmlinux 0x07f57478 pci_unmap_iospace +EXPORT_SYMBOL vmlinux 0x07fced7d component_match_add_typed +EXPORT_SYMBOL vmlinux 0x0800473f __cond_resched +EXPORT_SYMBOL vmlinux 0x0805f2c8 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0x080f7e88 phy_stop +EXPORT_SYMBOL vmlinux 0x081a2f66 udp_seq_start +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x0844dc51 __bio_advance +EXPORT_SYMBOL vmlinux 0x08456553 match_string +EXPORT_SYMBOL vmlinux 0x085849ec fb_validate_mode +EXPORT_SYMBOL vmlinux 0x0863178b __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x086399df get_mem_cgroup_from_mm +EXPORT_SYMBOL vmlinux 0x086400f3 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x086ba31e pci_pme_active +EXPORT_SYMBOL vmlinux 0x0882a449 security_xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x08857b61 generic_fill_statx_attr +EXPORT_SYMBOL vmlinux 0x088c96f6 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0x08929b71 seq_read_iter +EXPORT_SYMBOL vmlinux 0x08ad8521 register_adapter_interrupt +EXPORT_SYMBOL vmlinux 0x08b3af1f iucv_root +EXPORT_SYMBOL vmlinux 0x08b5b563 unpin_user_page +EXPORT_SYMBOL vmlinux 0x08ca7f7f ip_do_fragment +EXPORT_SYMBOL vmlinux 0x08cdb7d8 md_bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x08d49b78 tty_write_room +EXPORT_SYMBOL vmlinux 0x08de9366 __mmap_lock_do_trace_released +EXPORT_SYMBOL vmlinux 0x08e6fa35 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x08eabd91 tcf_action_check_ctrlact +EXPORT_SYMBOL vmlinux 0x08fec34f pci_find_resource +EXPORT_SYMBOL vmlinux 0x0914eeb3 finish_no_open +EXPORT_SYMBOL vmlinux 0x091acbbf param_set_bool +EXPORT_SYMBOL vmlinux 0x0920b173 lockref_mark_dead +EXPORT_SYMBOL vmlinux 0x09329eee sock_recv_errqueue +EXPORT_SYMBOL vmlinux 0x094ea226 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x094effa5 __iucv_message_receive +EXPORT_SYMBOL vmlinux 0x09503aa3 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x0970102e zstd_compress_bound +EXPORT_SYMBOL vmlinux 0x09769037 dmt_modes +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x099010e4 sk_error_report +EXPORT_SYMBOL vmlinux 0x099509b3 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x09bd66c3 tc_setup_cb_call +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09def582 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x09e9655e from_kprojid_munged +EXPORT_SYMBOL vmlinux 0x09f2c370 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x09f5e13d inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x0a0fba70 mount_subtree +EXPORT_SYMBOL vmlinux 0x0a153b46 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0a1e9bee security_binder_transaction +EXPORT_SYMBOL vmlinux 0x0a2d14e2 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x0a3b0d94 raw_copy_from_user +EXPORT_SYMBOL vmlinux 0x0a557d49 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x0a6354bf compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7fe75b netlink_set_err +EXPORT_SYMBOL vmlinux 0x0a9c639c blk_stack_limits +EXPORT_SYMBOL vmlinux 0x0aa309cf synchronize_hardirq +EXPORT_SYMBOL vmlinux 0x0aaccc92 pci_remap_iospace +EXPORT_SYMBOL vmlinux 0x0aacd352 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x0ac807f2 qdisc_watchdog_init_clockid +EXPORT_SYMBOL vmlinux 0x0ad19033 skb_eth_push +EXPORT_SYMBOL vmlinux 0x0af40154 netdev_printk +EXPORT_SYMBOL vmlinux 0x0af880a3 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x0af9396c dm_table_event +EXPORT_SYMBOL vmlinux 0x0b15280c kobject_init +EXPORT_SYMBOL vmlinux 0x0b182898 folio_add_lru +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2af462 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x0b3233d4 file_update_time +EXPORT_SYMBOL vmlinux 0x0b50e892 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0ba0b938 vm_brk +EXPORT_SYMBOL vmlinux 0x0ba3bf53 __neigh_event_send +EXPORT_SYMBOL vmlinux 0x0bbe7ee3 __mdiobus_register +EXPORT_SYMBOL vmlinux 0x0bbeac5c dma_resv_replace_fences +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bcf52c9 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x0be06f04 blk_mq_run_hw_queue +EXPORT_SYMBOL vmlinux 0x0bf90d63 kern_unmount_array +EXPORT_SYMBOL vmlinux 0x0c147f7c skb_tx_error +EXPORT_SYMBOL vmlinux 0x0c1752c3 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x0c17a68e zlib_dfltcc_support +EXPORT_SYMBOL vmlinux 0x0c208980 ip_sock_set_pktinfo +EXPORT_SYMBOL vmlinux 0x0c25ec48 secure_tcpv6_seq +EXPORT_SYMBOL vmlinux 0x0c2f917e scsi_done +EXPORT_SYMBOL vmlinux 0x0c333a7f radix_tree_insert +EXPORT_SYMBOL vmlinux 0x0c6ccf20 s390_isolate_bp +EXPORT_SYMBOL vmlinux 0x0c7cf7c6 zero_page_mask +EXPORT_SYMBOL vmlinux 0x0c80a6d7 flow_rule_match_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x0c904c5b mempool_exit +EXPORT_SYMBOL vmlinux 0x0c95f01b skb_get_hash_perturb +EXPORT_SYMBOL vmlinux 0x0cb11bc7 __SCK__tp_func_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x0cc0f4c5 __genradix_prealloc +EXPORT_SYMBOL vmlinux 0x0ccb8c8e input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x0cce2f8e debug_set_level +EXPORT_SYMBOL vmlinux 0x0cd57a7d pci_bus_type +EXPORT_SYMBOL vmlinux 0x0cd5835b ipv6_flowlabel_exclusive +EXPORT_SYMBOL vmlinux 0x0cd7d953 fscrypt_free_inode +EXPORT_SYMBOL vmlinux 0x0ce19729 mb_cache_entry_touch +EXPORT_SYMBOL vmlinux 0x0cf8a376 f_setown +EXPORT_SYMBOL vmlinux 0x0d07f543 get_anon_bdev +EXPORT_SYMBOL vmlinux 0x0d1e5dff neigh_seq_start +EXPORT_SYMBOL vmlinux 0x0d284989 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x0d425aa9 d_drop +EXPORT_SYMBOL vmlinux 0x0d4350f7 register_sysctl_mount_point +EXPORT_SYMBOL vmlinux 0x0d461172 dma_supported +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d745864 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x0d8704a1 mem_cgroup_from_task +EXPORT_SYMBOL vmlinux 0x0d9fc353 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x0dc023bc vfs_get_tree +EXPORT_SYMBOL vmlinux 0x0dcf21a0 __scsi_execute +EXPORT_SYMBOL vmlinux 0x0dd18b34 reuseport_attach_prog +EXPORT_SYMBOL vmlinux 0x0dd31ddd register_netdev +EXPORT_SYMBOL vmlinux 0x0ddcf5c8 invalidate_disk +EXPORT_SYMBOL vmlinux 0x0ddeceed neigh_destroy +EXPORT_SYMBOL vmlinux 0x0ddf8ceb pcie_print_link_status +EXPORT_SYMBOL vmlinux 0x0df9d992 tcf_action_update_stats +EXPORT_SYMBOL vmlinux 0x0dff7df7 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x0e010579 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x0e0a4604 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x0e17678a siphash_4u64 +EXPORT_SYMBOL vmlinux 0x0e1ee435 _copy_from_user_key +EXPORT_SYMBOL vmlinux 0x0e35b941 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x0e4742b3 skb_copy_and_hash_datagram_iter +EXPORT_SYMBOL vmlinux 0x0e56b80a __SCK__tp_func_s390_cio_tsch +EXPORT_SYMBOL vmlinux 0x0e639ec1 seq_open +EXPORT_SYMBOL vmlinux 0x0e78800a simple_dentry_operations +EXPORT_SYMBOL vmlinux 0x0e877ac5 md_check_recovery +EXPORT_SYMBOL vmlinux 0x0e89eafc netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x0e945b5e pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0x0e9ca76c generic_set_encrypted_ci_d_ops +EXPORT_SYMBOL vmlinux 0x0ea272b6 unix_detach_fds +EXPORT_SYMBOL vmlinux 0x0ea3c74e tasklet_kill +EXPORT_SYMBOL vmlinux 0x0ea593f6 hdmi_drm_infoframe_init +EXPORT_SYMBOL vmlinux 0x0ea763c3 sclp_sync_wait +EXPORT_SYMBOL vmlinux 0x0eab56fa __kfifo_max_r +EXPORT_SYMBOL vmlinux 0x0eb335e6 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x0eb6eb87 add_taint +EXPORT_SYMBOL vmlinux 0x0ee10dcf bio_put +EXPORT_SYMBOL vmlinux 0x0ee10e52 __do_once_done +EXPORT_SYMBOL vmlinux 0x0ee61a9b airq_iv_free +EXPORT_SYMBOL vmlinux 0x0f09cc34 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0x0f0c569a trace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x0f0e9b35 param_ops_ulong +EXPORT_SYMBOL vmlinux 0x0f1ad8e2 seq_list_start_rcu +EXPORT_SYMBOL vmlinux 0x0f59acca __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x0f5a75f8 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x0f69d1eb ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x0f86f560 kthread_delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x0f8e2e5c security_binder_transfer_binder +EXPORT_SYMBOL vmlinux 0x0fb2f8a4 mktime64 +EXPORT_SYMBOL vmlinux 0x0fc619e4 bdi_unregister +EXPORT_SYMBOL vmlinux 0x0fcd3367 netlink_ack +EXPORT_SYMBOL vmlinux 0x0fcf1ebe __skb_gro_checksum_complete +EXPORT_SYMBOL vmlinux 0x0fd902db mb_cache_entry_create +EXPORT_SYMBOL vmlinux 0x0fd9358f config_item_get +EXPORT_SYMBOL vmlinux 0x0fe7993c inet_del_protocol +EXPORT_SYMBOL vmlinux 0x0ff0743a jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x0ffc9609 ap_recv +EXPORT_SYMBOL vmlinux 0x0fff5afc time64_to_tm +EXPORT_SYMBOL vmlinux 0x10094ceb simple_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x100bd747 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x1012452b inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x1035c7c2 __release_region +EXPORT_SYMBOL vmlinux 0x1037f1a9 zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0x103bafd6 down_read +EXPORT_SYMBOL vmlinux 0x10497616 memweight +EXPORT_SYMBOL vmlinux 0x1054fc5f tcp_enter_quickack_mode +EXPORT_SYMBOL vmlinux 0x1068004b gf128mul_bbe +EXPORT_SYMBOL vmlinux 0x10776fb9 xa_extract +EXPORT_SYMBOL vmlinux 0x107e5878 zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x1083f61e vlan_filter_drop_vids +EXPORT_SYMBOL vmlinux 0x108c96ed pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x10a7a06e pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x10adc476 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x10d1d018 discard_new_inode +EXPORT_SYMBOL vmlinux 0x10d9f885 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x10e6f74a free_contig_range +EXPORT_SYMBOL vmlinux 0x10f76751 jbd2_fc_begin_commit +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x1113345b __skb_ext_del +EXPORT_SYMBOL vmlinux 0x111bf2c9 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x112121f7 __traceiter_s390_cio_chsc +EXPORT_SYMBOL vmlinux 0x113eec8d misc_deregister +EXPORT_SYMBOL vmlinux 0x11529160 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11719062 mount_bdev +EXPORT_SYMBOL vmlinux 0x117450a8 blk_cleanup_disk +EXPORT_SYMBOL vmlinux 0x11b1fc52 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x11b5409e __nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0x11cd7b3f pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x11d189b1 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x11d9d3f6 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x11e0ec41 dm_read_arg +EXPORT_SYMBOL vmlinux 0x11e30762 chacha_block_generic +EXPORT_SYMBOL vmlinux 0x11ec7959 dma_resv_reserve_fences +EXPORT_SYMBOL vmlinux 0x11f0f083 kernel_cpumcf_avail +EXPORT_SYMBOL vmlinux 0x1205e98a rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122a0b4b register_shrinker +EXPORT_SYMBOL vmlinux 0x1239fc2d sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x124bad4d kstrtobool +EXPORT_SYMBOL vmlinux 0x1251a12e console_mode +EXPORT_SYMBOL vmlinux 0x1255117e tcf_exts_terse_dump +EXPORT_SYMBOL vmlinux 0x12627da4 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x12641250 get_phys_clock +EXPORT_SYMBOL vmlinux 0x126fd8b2 phy_remove_link_mode +EXPORT_SYMBOL vmlinux 0x12809cba vfs_rmdir +EXPORT_SYMBOL vmlinux 0x12af01ef __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x12b2e8a9 ccw_device_resume +EXPORT_SYMBOL vmlinux 0x12c923ce freeze_super +EXPORT_SYMBOL vmlinux 0x12cabc89 siphash_2u64 +EXPORT_SYMBOL vmlinux 0x12e13c2a sock_register +EXPORT_SYMBOL vmlinux 0x12f256e6 skb_vlan_push +EXPORT_SYMBOL vmlinux 0x12f28607 dm_table_run_md_queue_async +EXPORT_SYMBOL vmlinux 0x12f6f69c fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x12fe638d diag_stat_inc_norecursion +EXPORT_SYMBOL vmlinux 0x13043051 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x13110126 request_resource +EXPORT_SYMBOL vmlinux 0x1313cf3a mdiobus_unregister_device +EXPORT_SYMBOL vmlinux 0x13203741 hdmi_infoframe_log +EXPORT_SYMBOL vmlinux 0x13272aec blk_mq_tagset_busy_iter +EXPORT_SYMBOL vmlinux 0x13287cef neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x132d32a6 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x1337d8e7 crypto_sha512_finup +EXPORT_SYMBOL vmlinux 0x1338cc52 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x133c86e2 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x13449528 tcp_seq_start +EXPORT_SYMBOL vmlinux 0x134cdd34 inet_frag_rbtree_purge +EXPORT_SYMBOL vmlinux 0x135e0afe send_sig +EXPORT_SYMBOL vmlinux 0x13759fc6 ccw_device_dma_zalloc +EXPORT_SYMBOL vmlinux 0x139304c5 ip_tunnel_parse_protocol +EXPORT_SYMBOL vmlinux 0x13b1cf77 genlmsg_put +EXPORT_SYMBOL vmlinux 0x13c2c5d9 security_sk_clone +EXPORT_SYMBOL vmlinux 0x13cead77 __SCK__tp_func_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d8a628 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x13d928f5 __SCK__tp_func_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x13d929a0 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x13ea4ebb pci_find_bus +EXPORT_SYMBOL vmlinux 0x13ecf92a configfs_depend_item +EXPORT_SYMBOL vmlinux 0x13f036d3 jbd2_fc_wait_bufs +EXPORT_SYMBOL vmlinux 0x140b32d9 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x140f93ab __sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x1410f52f set_page_dirty +EXPORT_SYMBOL vmlinux 0x1432fa5a pci_claim_resource +EXPORT_SYMBOL vmlinux 0x1435c5ce __SCK__tp_func_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1436ec09 qdisc_tree_reduce_backlog +EXPORT_SYMBOL vmlinux 0x14520ca8 mmput_async +EXPORT_SYMBOL vmlinux 0x14605535 dma_fence_context_alloc +EXPORT_SYMBOL vmlinux 0x14621e8a nf_log_trace +EXPORT_SYMBOL vmlinux 0x146289b7 crc16_table +EXPORT_SYMBOL vmlinux 0x14768740 dst_release +EXPORT_SYMBOL vmlinux 0x147d7290 xor_block_xc +EXPORT_SYMBOL vmlinux 0x148eb26d nexthop_bucket_set_hw_flags +EXPORT_SYMBOL vmlinux 0x14916113 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x14b6676c import_single_range +EXPORT_SYMBOL vmlinux 0x14c25756 netif_device_detach +EXPORT_SYMBOL vmlinux 0x14c4decb skb_checksum +EXPORT_SYMBOL vmlinux 0x14c5e5b3 segment_warning +EXPORT_SYMBOL vmlinux 0x14c67e3e tcp_tx_delay_enabled +EXPORT_SYMBOL vmlinux 0x14dbca00 lowcore_ptr +EXPORT_SYMBOL vmlinux 0x14e76424 arp_xmit +EXPORT_SYMBOL vmlinux 0x15149de1 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x151f4898 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0x1526b301 unix_tot_inflight +EXPORT_SYMBOL vmlinux 0x1527d618 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x15356a31 dma_resv_fini +EXPORT_SYMBOL vmlinux 0x1535c5a3 radix_tree_delete_item +EXPORT_SYMBOL vmlinux 0x1535d44f netdev_bonding_info_change +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1550bca5 poll_initwait +EXPORT_SYMBOL vmlinux 0x156f00f3 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x15b49bac vscnprintf +EXPORT_SYMBOL vmlinux 0x15bafe29 unregister_md_cluster_operations +EXPORT_SYMBOL vmlinux 0x15bed7a5 LZ4_decompress_safe_partial +EXPORT_SYMBOL vmlinux 0x15cd2f44 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x15cd8edc netdev_state_change +EXPORT_SYMBOL vmlinux 0x15d85a57 down_trylock +EXPORT_SYMBOL vmlinux 0x15dbae86 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x15e46b1f netdev_err +EXPORT_SYMBOL vmlinux 0x160bec04 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x161a95cc phy_reset_after_clk_enable +EXPORT_SYMBOL vmlinux 0x161c05dc filemap_check_errors +EXPORT_SYMBOL vmlinux 0x162893fd hashlen_string +EXPORT_SYMBOL vmlinux 0x1628e1f3 security_lock_kernel_down +EXPORT_SYMBOL vmlinux 0x1631bdaa xp_dma_sync_for_device_slow +EXPORT_SYMBOL vmlinux 0x1632bc21 kvasprintf_const +EXPORT_SYMBOL vmlinux 0x1643df05 __quota_error +EXPORT_SYMBOL vmlinux 0x1648bacb blk_mq_run_hw_queues +EXPORT_SYMBOL vmlinux 0x165d15e2 down_interruptible +EXPORT_SYMBOL vmlinux 0x16634861 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x167ac5a2 netlink_unicast +EXPORT_SYMBOL vmlinux 0x16a74cdc user_path_create +EXPORT_SYMBOL vmlinux 0x16c9d7d5 sock_dequeue_err_skb +EXPORT_SYMBOL vmlinux 0x16e297c3 bit_wait +EXPORT_SYMBOL vmlinux 0x16ecbf9b skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x16ed5ebb sock_no_mmap +EXPORT_SYMBOL vmlinux 0x17013366 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x17095ac2 alloc_anon_inode +EXPORT_SYMBOL vmlinux 0x170a7872 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x1742d304 dma_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x174701c7 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x174ad6f8 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x1759c7fa sock_bind_add +EXPORT_SYMBOL vmlinux 0x1777442f scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x17a500c4 param_get_uint +EXPORT_SYMBOL vmlinux 0x17dcbb24 vc_resize +EXPORT_SYMBOL vmlinux 0x18085f7d pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x182dc634 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x18343115 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x18345b8e __bitmap_replace +EXPORT_SYMBOL vmlinux 0x183d65b9 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x185259e9 xp_raw_get_data +EXPORT_SYMBOL vmlinux 0x185d90f3 vfs_mknod +EXPORT_SYMBOL vmlinux 0x185e2b26 inet_frag_queue_insert +EXPORT_SYMBOL vmlinux 0x1869b25f writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x18799f1c security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x188ea314 jiffies_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1893b84d config_group_init_type_name +EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x18a575e4 lookup_one_unlocked +EXPORT_SYMBOL vmlinux 0x18b87cca sclp_deactivate +EXPORT_SYMBOL vmlinux 0x18c12d50 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x18dfb593 register_cdrom +EXPORT_SYMBOL vmlinux 0x18e60984 __do_once_start +EXPORT_SYMBOL vmlinux 0x18ea301d md_bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x18fe4fc7 __getblk_gfp +EXPORT_SYMBOL vmlinux 0x1900f6c5 inet6_release +EXPORT_SYMBOL vmlinux 0x1910cc04 kill_pgrp +EXPORT_SYMBOL vmlinux 0x191f0651 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x191f288e iov_iter_gap_alignment +EXPORT_SYMBOL vmlinux 0x19320d1b fasync_helper +EXPORT_SYMBOL vmlinux 0x193340d1 locks_init_lock +EXPORT_SYMBOL vmlinux 0x1984d421 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0x19969a03 audit_log_start +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19ad419c nobh_write_end +EXPORT_SYMBOL vmlinux 0x19b00a80 crypto_kdf108_setkey +EXPORT_SYMBOL vmlinux 0x19b99622 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c11980 csum_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0x19c50ae8 stream_open +EXPORT_SYMBOL vmlinux 0x19d0d96b filemap_range_has_page +EXPORT_SYMBOL vmlinux 0x19e270a0 t10_pi_type1_crc +EXPORT_SYMBOL vmlinux 0x19f49c73 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x1a0693a3 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x1a08d2ba VMALLOC_START +EXPORT_SYMBOL vmlinux 0x1a0ad80b generic_iommu_put_resv_regions +EXPORT_SYMBOL vmlinux 0x1a0cf96c input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x1a13be57 d_exact_alias +EXPORT_SYMBOL vmlinux 0x1a54579f folio_mapping +EXPORT_SYMBOL vmlinux 0x1a72b674 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x1a963188 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x1a96b653 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x1a9a433c prandom_u32_state +EXPORT_SYMBOL vmlinux 0x1aa3c865 dm_kobject_release +EXPORT_SYMBOL vmlinux 0x1aa7fb28 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x1aad5924 devm_register_netdev +EXPORT_SYMBOL vmlinux 0x1ab1b42e __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x1afa7255 ccw_device_start_timeout_key +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b23124a setattr_copy +EXPORT_SYMBOL vmlinux 0x1b23c0da blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x1b327875 get_tree_single +EXPORT_SYMBOL vmlinux 0x1b3c83fe __blk_mq_alloc_disk +EXPORT_SYMBOL vmlinux 0x1b47a916 set_anon_super +EXPORT_SYMBOL vmlinux 0x1b4dc4f4 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b70e7a6 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x1b777357 rdmacg_unregister_device +EXPORT_SYMBOL vmlinux 0x1b8199d2 nf_log_set +EXPORT_SYMBOL vmlinux 0x1ba04458 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1bb51249 tcp_have_smc +EXPORT_SYMBOL vmlinux 0x1bb67920 blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0x1bd5eeba __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x1be0dc4e ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x1be0ffa2 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x1bf32382 param_ops_bool +EXPORT_SYMBOL vmlinux 0x1bfd1a61 vm_event_states +EXPORT_SYMBOL vmlinux 0x1bfe38da inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x1c001dbb handle_edge_irq +EXPORT_SYMBOL vmlinux 0x1c059116 d_tmpfile +EXPORT_SYMBOL vmlinux 0x1c0c6fdf kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x1c17e759 vfs_statfs +EXPORT_SYMBOL vmlinux 0x1c271301 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x1c27de9a __generic_file_fsync +EXPORT_SYMBOL vmlinux 0x1c2c65f2 simple_release_fs +EXPORT_SYMBOL vmlinux 0x1c2d0c25 fput +EXPORT_SYMBOL vmlinux 0x1c39f45b netdev_lower_get_first_private_rcu +EXPORT_SYMBOL vmlinux 0x1c47c531 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x1c538383 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x1c59c3f0 pci_iomap +EXPORT_SYMBOL vmlinux 0x1c5ca4d8 vfs_dedupe_file_range +EXPORT_SYMBOL vmlinux 0x1c65d1e3 ioremap_wt +EXPORT_SYMBOL vmlinux 0x1c664434 __write_overflow_field +EXPORT_SYMBOL vmlinux 0x1c66ccda tcp_time_wait +EXPORT_SYMBOL vmlinux 0x1c9a31ed security_sock_graft +EXPORT_SYMBOL vmlinux 0x1c9a9ccd _copy_from_iter_nocache +EXPORT_SYMBOL vmlinux 0x1cbf7133 xp_dma_sync_for_cpu_slow +EXPORT_SYMBOL vmlinux 0x1cbfb123 hdmi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x1cc11154 __SCK__tp_func_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0x1ccefca5 ethtool_intersect_link_masks +EXPORT_SYMBOL vmlinux 0x1cd9af0e input_free_device +EXPORT_SYMBOL vmlinux 0x1ce26a63 zstd_flush_stream +EXPORT_SYMBOL vmlinux 0x1cfb3fa3 netdev_core_stats_alloc +EXPORT_SYMBOL vmlinux 0x1d216a6b mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x1d3e2765 iucv_path_quiesce +EXPORT_SYMBOL vmlinux 0x1d42d2ac neigh_app_ns +EXPORT_SYMBOL vmlinux 0x1d449b90 dfltcc_can_deflate +EXPORT_SYMBOL vmlinux 0x1d5583be dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x1d5cedae __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x1d5ef3e1 iov_iter_kvec +EXPORT_SYMBOL vmlinux 0x1d63c6ae secpath_set +EXPORT_SYMBOL vmlinux 0x1d731745 __dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x1d7d75b0 zpool_unregister_driver +EXPORT_SYMBOL vmlinux 0x1d82da11 proc_mkdir +EXPORT_SYMBOL vmlinux 0x1d93568c pci_ep_cfs_remove_epf_group +EXPORT_SYMBOL vmlinux 0x1d9d3869 icmpv6_ndo_send +EXPORT_SYMBOL vmlinux 0x1daa2028 unlock_rename +EXPORT_SYMBOL vmlinux 0x1dad3b74 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1dadd920 __kmalloc +EXPORT_SYMBOL vmlinux 0x1dc6c93b lookup_user_key +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1de4ccb2 get_sg_io_hdr +EXPORT_SYMBOL vmlinux 0x1de5127e kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1de5d242 sock_set_keepalive +EXPORT_SYMBOL vmlinux 0x1df664f4 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x1e0a0c24 mod_timer_pending +EXPORT_SYMBOL vmlinux 0x1e1e140e ns_to_timespec64 +EXPORT_SYMBOL vmlinux 0x1e407abd tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x1e63fe69 vcalloc +EXPORT_SYMBOL vmlinux 0x1e65c6f6 setup_new_exec +EXPORT_SYMBOL vmlinux 0x1e6602e0 mq_change_real_num_tx +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e8a161a crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x1e9914f2 vfs_dup_fs_context +EXPORT_SYMBOL vmlinux 0x1e9cd79f udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1eb14fb7 lookup_one +EXPORT_SYMBOL vmlinux 0x1ed20b21 __skb_flow_get_ports +EXPORT_SYMBOL vmlinux 0x1ed7eb60 __sg_free_table +EXPORT_SYMBOL vmlinux 0x1edb69d6 ktime_get_raw_ts64 +EXPORT_SYMBOL vmlinux 0x1f048ddb inode_get_bytes +EXPORT_SYMBOL vmlinux 0x1f1cd2f2 bio_alloc_clone +EXPORT_SYMBOL vmlinux 0x1f1e2aaa give_up_console +EXPORT_SYMBOL vmlinux 0x1f2793cc __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x1f370553 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x1f4bfcdb pci_get_device +EXPORT_SYMBOL vmlinux 0x1f4c7087 pci_request_irq +EXPORT_SYMBOL vmlinux 0x1f95657b mempool_resize +EXPORT_SYMBOL vmlinux 0x1fb27078 tcw_get_tccb +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fcb720d tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x1fcc9f7c __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x1fce5503 dev_get_stats +EXPORT_SYMBOL vmlinux 0x1fda8755 __memset32 +EXPORT_SYMBOL vmlinux 0x1fe9e4a8 fscrypt_decrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x1ffa6652 simple_rename +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20050ce6 unix_gc_lock +EXPORT_SYMBOL vmlinux 0x200b2041 in6addr_any +EXPORT_SYMBOL vmlinux 0x200ee7f3 folio_migrate_mapping +EXPORT_SYMBOL vmlinux 0x200f9e89 netdev_upper_get_next_dev_rcu +EXPORT_SYMBOL vmlinux 0x20101ec9 __inode_add_bytes +EXPORT_SYMBOL vmlinux 0x2014a246 __siphash_unaligned +EXPORT_SYMBOL vmlinux 0x20271809 udp_gro_receive +EXPORT_SYMBOL vmlinux 0x203729c0 fget_raw +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204c5067 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0x20592c6f arch_write_lock_wait +EXPORT_SYMBOL vmlinux 0x208d150a set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x20973b94 segment_unload +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b39f11 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x20d3e6d9 xp_dma_map +EXPORT_SYMBOL vmlinux 0x20d65e40 fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0x20ee076e itcw_add_tidaw +EXPORT_SYMBOL vmlinux 0x20fc7599 xsk_set_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x21045a10 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x211d25a7 inode_needs_sync +EXPORT_SYMBOL vmlinux 0x21383338 thread_group_exited +EXPORT_SYMBOL vmlinux 0x213ccd31 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x215e91ed update_region +EXPORT_SYMBOL vmlinux 0x21784cd0 _dev_emerg +EXPORT_SYMBOL vmlinux 0x218e600b pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0x21b20ad7 kmem_cache_free +EXPORT_SYMBOL vmlinux 0x21b583f3 netdev_info +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 0x21ea83bc zstd_reset_cstream +EXPORT_SYMBOL vmlinux 0x21f5e94c skb_headers_offset_update +EXPORT_SYMBOL vmlinux 0x21fc08d2 netdev_class_create_file_ns +EXPORT_SYMBOL vmlinux 0x22029d2a tcp_req_err +EXPORT_SYMBOL vmlinux 0x22042d3f __put_user_ns +EXPORT_SYMBOL vmlinux 0x2210642c sclp_ap_deconfigure +EXPORT_SYMBOL vmlinux 0x221567e6 __traceiter_s390_cio_tpi +EXPORT_SYMBOL vmlinux 0x221c0f3f dquot_initialize_needed +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22355309 sock_recvmsg +EXPORT_SYMBOL vmlinux 0x223db573 __traceiter_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x2249ffdb skb_find_text +EXPORT_SYMBOL vmlinux 0x2263b5ee genphy_update_link +EXPORT_SYMBOL vmlinux 0x22778577 flow_rule_match_enc_keyid +EXPORT_SYMBOL vmlinux 0x227b0a55 path_is_under +EXPORT_SYMBOL vmlinux 0x227b0c32 jbd2_submit_inode_data +EXPORT_SYMBOL vmlinux 0x228d9333 dma_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x228e0c98 eth_gro_complete +EXPORT_SYMBOL vmlinux 0x22a7cdad netif_inherit_tso_max +EXPORT_SYMBOL vmlinux 0x22b13d65 set_bh_page +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ca0e7c elevator_alloc +EXPORT_SYMBOL vmlinux 0x22cb3831 security_cred_getsecid +EXPORT_SYMBOL vmlinux 0x22dd6d51 tccb_init +EXPORT_SYMBOL vmlinux 0x22f1b8fa vfs_create +EXPORT_SYMBOL vmlinux 0x23092ee4 configfs_register_default_group +EXPORT_SYMBOL vmlinux 0x2311665d dm_get_device +EXPORT_SYMBOL vmlinux 0x231a56d4 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x235333c6 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2359bab0 phy_queue_state_machine +EXPORT_SYMBOL vmlinux 0x2364c85a tasklet_init +EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy +EXPORT_SYMBOL vmlinux 0x23754fa8 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x23924a48 prepare_to_wait_event +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23bd0ab7 inode_nohighmem +EXPORT_SYMBOL vmlinux 0x23ee13fd mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x23f94159 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x23fcbed4 page_mapping +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23fd4df5 skb_page_frag_refill +EXPORT_SYMBOL vmlinux 0x2413f25f configfs_register_subsystem +EXPORT_SYMBOL vmlinux 0x24140a19 pci_release_regions +EXPORT_SYMBOL vmlinux 0x2420eb5d devm_mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x242f3562 irq_subclass_register +EXPORT_SYMBOL vmlinux 0x24569849 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247a3fe4 LZ4_decompress_fast_continue +EXPORT_SYMBOL vmlinux 0x249faa05 dst_init +EXPORT_SYMBOL vmlinux 0x24b8528f mutex_trylock +EXPORT_SYMBOL vmlinux 0x24bc53b0 __traceiter_s390_cio_xsch +EXPORT_SYMBOL vmlinux 0x24c24e25 d_instantiate +EXPORT_SYMBOL vmlinux 0x24d273d1 add_timer +EXPORT_SYMBOL vmlinux 0x24dd43a2 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x24ddb3bc pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0x24ef7969 d_instantiate_anon +EXPORT_SYMBOL vmlinux 0x250cc1b0 ip_sock_set_mtu_discover +EXPORT_SYMBOL vmlinux 0x250d96bb scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x251b01c4 simple_setattr +EXPORT_SYMBOL vmlinux 0x251c4c36 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x252332f1 __SCK__tp_func_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x25243ff7 tcp_sock_set_keepidle +EXPORT_SYMBOL vmlinux 0x252cf375 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x252fbd1c __breadahead +EXPORT_SYMBOL vmlinux 0x252fe7e4 down_read_interruptible +EXPORT_SYMBOL vmlinux 0x25381202 d_alloc_anon +EXPORT_SYMBOL vmlinux 0x25464f9f netpoll_send_skb +EXPORT_SYMBOL vmlinux 0x2548c032 __cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x2564e2b8 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x25764c0b default_qdisc_ops +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x258bee44 dma_map_page_attrs +EXPORT_SYMBOL vmlinux 0x258d2f76 net_dim_get_tx_moderation +EXPORT_SYMBOL vmlinux 0x25a59718 inet_addr_type +EXPORT_SYMBOL vmlinux 0x25b3bb92 jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x25b48e26 dput +EXPORT_SYMBOL vmlinux 0x25bc0114 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x25cb4242 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x25d59066 ccw_device_is_multipath +EXPORT_SYMBOL vmlinux 0x25d6e5ce jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x25e58a09 hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x25e688f5 dma_unmap_resource +EXPORT_SYMBOL vmlinux 0x25e7f20d sock_no_getname +EXPORT_SYMBOL vmlinux 0x25e91b35 reset_guest_reference_bit +EXPORT_SYMBOL vmlinux 0x25e9d4bd resource_list_free +EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen +EXPORT_SYMBOL vmlinux 0x25f4efbf tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0x260a095a __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2627b61e devm_register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2641a1c6 diag224 +EXPORT_SYMBOL vmlinux 0x264476e6 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x26503e13 kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0x2665ed82 init_task +EXPORT_SYMBOL vmlinux 0x266ffd53 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x267313b2 folio_alloc +EXPORT_SYMBOL vmlinux 0x26798e1c pcim_set_mwi +EXPORT_SYMBOL vmlinux 0x267bb3d0 phy_init_hw +EXPORT_SYMBOL vmlinux 0x2688ec10 bitmap_zalloc +EXPORT_SYMBOL vmlinux 0x26982f5d sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0x26a5b938 sclp_pci_configure +EXPORT_SYMBOL vmlinux 0x26aa2ec4 flow_rule_match_mpls +EXPORT_SYMBOL vmlinux 0x26c09f78 unpin_user_page_range_dirty_lock +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x270cf88f dump_stack_lvl +EXPORT_SYMBOL vmlinux 0x2711925f seq_bprintf +EXPORT_SYMBOL vmlinux 0x2713132d filemap_flush +EXPORT_SYMBOL vmlinux 0x2715f252 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x272a8933 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x272ac44c fs_param_is_u32 +EXPORT_SYMBOL vmlinux 0x2733eaf7 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0x27479d14 param_free_charp +EXPORT_SYMBOL vmlinux 0x2759f2bf radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0x275c24a7 kvfree_sensitive +EXPORT_SYMBOL vmlinux 0x275f3d49 hdmi_vendor_infoframe_check +EXPORT_SYMBOL vmlinux 0x27657212 page_pool_alloc_frag +EXPORT_SYMBOL vmlinux 0x277118ef memory_cgrp_subsys +EXPORT_SYMBOL vmlinux 0x27756bc8 scsi_sanitize_inquiry_string +EXPORT_SYMBOL vmlinux 0x277d4035 gen_pool_has_addr +EXPORT_SYMBOL vmlinux 0x2782b393 xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27a0d853 __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x27a8f51b do_wait_intr_irq +EXPORT_SYMBOL vmlinux 0x27b5e6de can_nice +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c25281 jbd2_fc_end_commit +EXPORT_SYMBOL vmlinux 0x27cdca93 pci_add_resource +EXPORT_SYMBOL vmlinux 0x27eb9cd1 tcw_set_intrg +EXPORT_SYMBOL vmlinux 0x27ec6d6f debug_dflt_header_fn +EXPORT_SYMBOL vmlinux 0x27f6a0bd write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2822a3ab qdisc_reset +EXPORT_SYMBOL vmlinux 0x28293122 skb_clone +EXPORT_SYMBOL vmlinux 0x2833210c __sk_queue_drop_skb +EXPORT_SYMBOL vmlinux 0x28371413 phy_resume +EXPORT_SYMBOL vmlinux 0x283885db dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x2839a1eb neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x285a0238 pin_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0x28644e11 bioset_exit +EXPORT_SYMBOL vmlinux 0x2866f7b2 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x286a3661 airq_iv_scan +EXPORT_SYMBOL vmlinux 0x2875a315 utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0x28876432 mdio_driver_register +EXPORT_SYMBOL vmlinux 0x28995172 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x289c1b4c skb_queue_purge +EXPORT_SYMBOL vmlinux 0x289f37f5 generic_file_read_iter +EXPORT_SYMBOL vmlinux 0x28c399fc simple_transaction_read +EXPORT_SYMBOL vmlinux 0x28d45e36 xp_free +EXPORT_SYMBOL vmlinux 0x28e1a7af __vfs_removexattr +EXPORT_SYMBOL vmlinux 0x28f94604 __ubsan_handle_builtin_unreachable +EXPORT_SYMBOL vmlinux 0x2934cf62 ccw_device_tm_start +EXPORT_SYMBOL vmlinux 0x29391e7d vm_munmap +EXPORT_SYMBOL vmlinux 0x2946f6f6 seq_release +EXPORT_SYMBOL vmlinux 0x2956cf37 sclp_remove_processed +EXPORT_SYMBOL vmlinux 0x2959ea0c padata_free_shell +EXPORT_SYMBOL vmlinux 0x295d3194 get_tree_bdev +EXPORT_SYMBOL vmlinux 0x29604158 napi_busy_loop +EXPORT_SYMBOL vmlinux 0x296c8e5b key_unlink +EXPORT_SYMBOL vmlinux 0x29733bcc register_nexthop_notifier +EXPORT_SYMBOL vmlinux 0x29789394 empty_zero_page +EXPORT_SYMBOL vmlinux 0x29876990 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x29930267 vmf_insert_mixed +EXPORT_SYMBOL vmlinux 0x29a84555 devm_pci_remap_cfgspace +EXPORT_SYMBOL vmlinux 0x29bfb7bc flow_rule_match_enc_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x29cdcc4d fwnode_irq_get +EXPORT_SYMBOL vmlinux 0x29d02d74 __cgroup_bpf_run_filter_sock_ops +EXPORT_SYMBOL vmlinux 0x2a11f773 genphy_config_eee_advert +EXPORT_SYMBOL vmlinux 0x2a124c49 inode_insert5 +EXPORT_SYMBOL vmlinux 0x2a3092da dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x2a3819cf unregister_nls +EXPORT_SYMBOL vmlinux 0x2a3ad690 dump_page +EXPORT_SYMBOL vmlinux 0x2a41d203 dql_init +EXPORT_SYMBOL vmlinux 0x2a60ab3c devm_release_resource +EXPORT_SYMBOL vmlinux 0x2a7eb106 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x2a805563 __kernel_cpumcf_end +EXPORT_SYMBOL vmlinux 0x2aa71d0c proc_do_large_bitmap +EXPORT_SYMBOL vmlinux 0x2aa91dfe register_md_personality +EXPORT_SYMBOL vmlinux 0x2ab5de42 folio_redirty_for_writepage +EXPORT_SYMBOL vmlinux 0x2af3f454 ssch +EXPORT_SYMBOL vmlinux 0x2b12e7cd scsi_print_result +EXPORT_SYMBOL vmlinux 0x2b21b559 raw3270_request_set_idal +EXPORT_SYMBOL vmlinux 0x2b22845d ip6_dst_alloc +EXPORT_SYMBOL vmlinux 0x2b2383f9 input_set_keycode +EXPORT_SYMBOL vmlinux 0x2b2e7ce6 keyring_clear +EXPORT_SYMBOL vmlinux 0x2b3064a8 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x2b591fef pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x2b61ffe5 __vfs_setxattr +EXPORT_SYMBOL vmlinux 0x2b68bd2f del_timer +EXPORT_SYMBOL vmlinux 0x2b787b7c scsi_device_put +EXPORT_SYMBOL vmlinux 0x2b7a5fdf generic_file_fsync +EXPORT_SYMBOL vmlinux 0x2b98058e t10_pi_type3_ip +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2b9dea80 genphy_handle_interrupt_no_ack +EXPORT_SYMBOL vmlinux 0x2ba05cd2 mr_fill_mroute +EXPORT_SYMBOL vmlinux 0x2bbad52a security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x2bbe76f4 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0x2bc21233 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x2be6e56c genphy_read_master_slave +EXPORT_SYMBOL vmlinux 0x2bec2579 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x2c22f968 udp_skb_destructor +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c38ba92 dquot_load_quota_inode +EXPORT_SYMBOL vmlinux 0x2c4321b9 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x2c5e5246 lookup_one_len +EXPORT_SYMBOL vmlinux 0x2c82c36a security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x2c82f52d phy_aneg_done +EXPORT_SYMBOL vmlinux 0x2c9d741c tty_hangup +EXPORT_SYMBOL vmlinux 0x2c9eb1b0 block_truncate_page +EXPORT_SYMBOL vmlinux 0x2ca0abf9 device_add_disk +EXPORT_SYMBOL vmlinux 0x2cb75ff1 __tracepoint_s390_cio_tsch +EXPORT_SYMBOL vmlinux 0x2cbd23af trace_print_hex_dump_seq +EXPORT_SYMBOL vmlinux 0x2ccd059a dim_on_top +EXPORT_SYMBOL vmlinux 0x2cedbcaa dma_free_attrs +EXPORT_SYMBOL vmlinux 0x2cf9a656 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x2d0022ff xsk_set_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x2d0ec6da build_skb_around +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d230b12 kfree_skb_list_reason +EXPORT_SYMBOL vmlinux 0x2d276715 neigh_proc_dointvec +EXPORT_SYMBOL vmlinux 0x2d30596c from_kqid_munged +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d39b0a7 kstrdup +EXPORT_SYMBOL vmlinux 0x2d44c11f fd_install +EXPORT_SYMBOL vmlinux 0x2d469434 xsk_uses_need_wakeup +EXPORT_SYMBOL vmlinux 0x2d4c773a hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0x2d4daef5 find_font +EXPORT_SYMBOL vmlinux 0x2d5a20d8 lookup_one_positive_unlocked +EXPORT_SYMBOL vmlinux 0x2d80b319 pmdp_xchg_direct +EXPORT_SYMBOL vmlinux 0x2d832cbf utf8_casefold +EXPORT_SYMBOL vmlinux 0x2d994605 security_inode_copy_up_xattr +EXPORT_SYMBOL vmlinux 0x2d9c7309 pci_save_state +EXPORT_SYMBOL vmlinux 0x2dd8e4b2 validate_slab_cache +EXPORT_SYMBOL vmlinux 0x2ddb834b __xa_alloc +EXPORT_SYMBOL vmlinux 0x2de125c0 page_frag_alloc_align +EXPORT_SYMBOL vmlinux 0x2de9ddf7 __mdiobus_read +EXPORT_SYMBOL vmlinux 0x2e089aba inet_register_protosw +EXPORT_SYMBOL vmlinux 0x2e22625d iov_iter_revert +EXPORT_SYMBOL vmlinux 0x2e3c5950 radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0x2e4e16ff tcp_init_sock +EXPORT_SYMBOL vmlinux 0x2e59275b inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x2e5fe036 __skb_ext_put +EXPORT_SYMBOL vmlinux 0x2e6228f5 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x2e91dd21 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x2ec6bba0 errseq_set +EXPORT_SYMBOL vmlinux 0x2ef5661d segment_modify_shared +EXPORT_SYMBOL vmlinux 0x2ef8bc17 tcp_close +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f2e91b2 security_ib_alloc_security +EXPORT_SYMBOL vmlinux 0x2f3aa041 __inet_hash +EXPORT_SYMBOL vmlinux 0x2f56e192 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x2f579619 register_console +EXPORT_SYMBOL vmlinux 0x2f67c902 __traceiter_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x2f6bdd5a pcie_get_width_cap +EXPORT_SYMBOL vmlinux 0x2f7754a8 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2f781927 neigh_for_each +EXPORT_SYMBOL vmlinux 0x2f7cb2ad xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x2f875a81 inet_reqsk_alloc +EXPORT_SYMBOL vmlinux 0x2f9bd37f fb_show_logo +EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp +EXPORT_SYMBOL vmlinux 0x2fd09944 blake2s_update +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff9501f nf_getsockopt +EXPORT_SYMBOL vmlinux 0x2ffd70d3 config_group_find_item +EXPORT_SYMBOL vmlinux 0x2ffffb6f _ebc_tolower +EXPORT_SYMBOL vmlinux 0x300d6be4 __irq_regs +EXPORT_SYMBOL vmlinux 0x303205a1 inet_put_port +EXPORT_SYMBOL vmlinux 0x303decf3 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x303e1bd5 pagevec_lookup_range_tag +EXPORT_SYMBOL vmlinux 0x305cb5ed __tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x305cb95e fscrypt_ioctl_get_policy +EXPORT_SYMBOL vmlinux 0x306a744e simple_nosetlease +EXPORT_SYMBOL vmlinux 0x30797d86 make_bad_inode +EXPORT_SYMBOL vmlinux 0x308734d0 kobject_set_name +EXPORT_SYMBOL vmlinux 0x30888380 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x3088f0c8 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x309010a2 devm_arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0x3096be16 names_cachep +EXPORT_SYMBOL vmlinux 0x30a01e1f page_get_link +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30acfde9 hsiphash_2u32 +EXPORT_SYMBOL vmlinux 0x30ca2ecd always_delete_dentry +EXPORT_SYMBOL vmlinux 0x30e60e54 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f63505 phy_error +EXPORT_SYMBOL vmlinux 0x30f658db pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0x310117bf key_validate +EXPORT_SYMBOL vmlinux 0x310f5595 ap_driver_unregister +EXPORT_SYMBOL vmlinux 0x311aeced phy_attached_info_irq +EXPORT_SYMBOL vmlinux 0x31248cdd flow_rule_match_cvlan +EXPORT_SYMBOL vmlinux 0x3126a9e8 siphash_1u64 +EXPORT_SYMBOL vmlinux 0x31319f27 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x31475e37 dma_fence_array_first +EXPORT_SYMBOL vmlinux 0x315deec1 kernel_bind +EXPORT_SYMBOL vmlinux 0x318c8529 __fs_parse +EXPORT_SYMBOL vmlinux 0x31a34dc6 dma_fence_match_context +EXPORT_SYMBOL vmlinux 0x31e7b349 key_create_or_update +EXPORT_SYMBOL vmlinux 0x31eecf3d inode_init_once +EXPORT_SYMBOL vmlinux 0x31f09775 __inc_node_page_state +EXPORT_SYMBOL vmlinux 0x31f609fe free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x320929e6 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x3218f11b sock_kfree_s +EXPORT_SYMBOL vmlinux 0x321d94f3 ipv6_dev_mc_dec +EXPORT_SYMBOL vmlinux 0x32207800 posix_lock_file +EXPORT_SYMBOL vmlinux 0x3221df67 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x3240a6b7 phy_device_create +EXPORT_SYMBOL vmlinux 0x32612d28 tcf_idr_create_from_flags +EXPORT_SYMBOL vmlinux 0x32651edf iget_locked +EXPORT_SYMBOL vmlinux 0x3283e6b0 prandom_seed_full_state +EXPORT_SYMBOL vmlinux 0x3284dc25 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0x328851a9 qdisc_hash_del +EXPORT_SYMBOL vmlinux 0x328a25c6 devm_gen_pool_create +EXPORT_SYMBOL vmlinux 0x328e7740 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x32a622dc udp_pre_connect +EXPORT_SYMBOL vmlinux 0x32a6f0ee ndisc_send_skb +EXPORT_SYMBOL vmlinux 0x32a71a08 km_state_expired +EXPORT_SYMBOL vmlinux 0x32ab724b sync_filesystem +EXPORT_SYMBOL vmlinux 0x32ac0aa0 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x32bd907e xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x32c6a2d8 _ebcasc_500 +EXPORT_SYMBOL vmlinux 0x32ce3777 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x32db32e7 sock_wake_async +EXPORT_SYMBOL vmlinux 0x32effbeb inet_del_offload +EXPORT_SYMBOL vmlinux 0x32f23f00 remove_watch_from_object +EXPORT_SYMBOL vmlinux 0x32f3eb05 netdev_adjacent_change_prepare +EXPORT_SYMBOL vmlinux 0x32f58f91 phy_connect +EXPORT_SYMBOL vmlinux 0x33006ad0 blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x330433b0 inet_ioctl +EXPORT_SYMBOL vmlinux 0x330a5310 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x331de0b9 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x3327b2bf __icmp_send +EXPORT_SYMBOL vmlinux 0x33338341 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x33492889 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x335ed859 find_get_pages_range_tag +EXPORT_SYMBOL vmlinux 0x3362a5ac udp_table +EXPORT_SYMBOL vmlinux 0x339fa123 block_invalidate_folio +EXPORT_SYMBOL vmlinux 0x33a1f560 md_bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x33a2469e tcf_block_netif_keep_dst +EXPORT_SYMBOL vmlinux 0x33a75ef1 dquot_resume +EXPORT_SYMBOL vmlinux 0x33a805ea call_fib_notifiers +EXPORT_SYMBOL vmlinux 0x33b9c7ad find_inode_nowait +EXPORT_SYMBOL vmlinux 0x33eb8ad6 xfrm6_rcv_tnl +EXPORT_SYMBOL vmlinux 0x33ee6073 flow_indr_dev_unregister +EXPORT_SYMBOL vmlinux 0x33f74de3 _ascebc_500 +EXPORT_SYMBOL vmlinux 0x33fa677f rename_lock +EXPORT_SYMBOL vmlinux 0x33fc1e82 touchscreen_parse_properties +EXPORT_SYMBOL vmlinux 0x33fc2a31 get_user_ifreq +EXPORT_SYMBOL vmlinux 0x3406b754 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x34180713 iov_iter_bvec +EXPORT_SYMBOL vmlinux 0x34380cd6 netdev_adjacent_change_commit +EXPORT_SYMBOL vmlinux 0x344a5073 __phy_resume +EXPORT_SYMBOL vmlinux 0x344bcb86 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x344d1c28 dma_resv_iter_next_unlocked +EXPORT_SYMBOL vmlinux 0x3452273f skb_push +EXPORT_SYMBOL vmlinux 0x3471db68 input_reset_device +EXPORT_SYMBOL vmlinux 0x34818477 flow_rule_match_enc_ipv6_addrs +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a44723 phy_get_pause +EXPORT_SYMBOL vmlinux 0x34adabca copy_page_to_iter +EXPORT_SYMBOL vmlinux 0x34b65c6a tcp_make_synack +EXPORT_SYMBOL vmlinux 0x34bc6ec8 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x34c7cdbc lookup_bdev +EXPORT_SYMBOL vmlinux 0x34cdcb5c page_mapped +EXPORT_SYMBOL vmlinux 0x34e1df02 __debug_sprintf_event +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f5c694 __folio_start_writeback +EXPORT_SYMBOL vmlinux 0x35073085 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35186bdb scsi_partsize +EXPORT_SYMBOL vmlinux 0x3527287c elv_rb_del +EXPORT_SYMBOL vmlinux 0x3589e046 devm_request_any_context_irq +EXPORT_SYMBOL vmlinux 0x3589e054 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x3590acc9 cpumask_any_distribute +EXPORT_SYMBOL vmlinux 0x35983bbf xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x35a88f28 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x35aa95da generic_writepages +EXPORT_SYMBOL vmlinux 0x35ac73f5 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x35b5b377 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x35bdd5ff blk_mq_rq_cpu +EXPORT_SYMBOL vmlinux 0x3602aba9 raw3270_register_notifier +EXPORT_SYMBOL vmlinux 0x36334a34 udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x364c0ceb jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x364d1898 seq_lseek +EXPORT_SYMBOL vmlinux 0x3651e166 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x3658e1d4 seq_read +EXPORT_SYMBOL vmlinux 0x365acda7 set_normalized_timespec64 +EXPORT_SYMBOL vmlinux 0x365e7911 kstrdup_const +EXPORT_SYMBOL vmlinux 0x36af6564 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x36c0fbc7 address_space_init_once +EXPORT_SYMBOL vmlinux 0x36dbca4e __inet_stream_connect +EXPORT_SYMBOL vmlinux 0x36ed98e1 add_to_pipe +EXPORT_SYMBOL vmlinux 0x36f210d9 register_filesystem +EXPORT_SYMBOL vmlinux 0x370756ff bitmap_print_bitmask_to_buf +EXPORT_SYMBOL vmlinux 0x3710c46e migrate_page_states +EXPORT_SYMBOL vmlinux 0x371e1953 __printk_cpu_sync_wait +EXPORT_SYMBOL vmlinux 0x372e9733 ccw_device_clear +EXPORT_SYMBOL vmlinux 0x37365012 load_nls +EXPORT_SYMBOL vmlinux 0x3736d025 down_read_killable +EXPORT_SYMBOL vmlinux 0x3741ad21 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL vmlinux 0x375ac910 gen_pool_add_owner +EXPORT_SYMBOL vmlinux 0x376494a0 xsk_tx_peek_desc +EXPORT_SYMBOL vmlinux 0x376f185b udp6_seq_ops +EXPORT_SYMBOL vmlinux 0x378677e0 dev_add_offload +EXPORT_SYMBOL vmlinux 0x379549dc dma_unmap_page_attrs +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bf4047 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x37d0a77a generic_file_write_iter +EXPORT_SYMBOL vmlinux 0x37d180f2 fwnode_get_mac_address +EXPORT_SYMBOL vmlinux 0x37da059c bio_kmalloc +EXPORT_SYMBOL vmlinux 0x37dbaff9 from_kgid +EXPORT_SYMBOL vmlinux 0x37e64cdd forget_cached_acl +EXPORT_SYMBOL vmlinux 0x37e95703 module_refcount +EXPORT_SYMBOL vmlinux 0x37ebe607 dst_destroy +EXPORT_SYMBOL vmlinux 0x38015e4e phy_ethtool_get_link_ksettings +EXPORT_SYMBOL vmlinux 0x380ec283 bit_waitqueue +EXPORT_SYMBOL vmlinux 0x38199405 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x3832522f __crc32c_le_shift +EXPORT_SYMBOL vmlinux 0x383ce150 key_link +EXPORT_SYMBOL vmlinux 0x3854774b kstrtoll +EXPORT_SYMBOL vmlinux 0x386bb1d2 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x3873f742 fb_set_var +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x3891ffc8 ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0x3899e725 ccw_device_set_online +EXPORT_SYMBOL vmlinux 0x389b688d nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x38a52db1 dma_fence_init +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38a9f7c5 in6addr_loopback +EXPORT_SYMBOL vmlinux 0x38ae56d8 cdev_add +EXPORT_SYMBOL vmlinux 0x38b497db dev_open +EXPORT_SYMBOL vmlinux 0x38cbee44 seq_printf +EXPORT_SYMBOL vmlinux 0x38e2a37a tcp_shutdown +EXPORT_SYMBOL vmlinux 0x38f48af7 put_user_ifreq +EXPORT_SYMBOL vmlinux 0x3910d019 sock_kzfree_s +EXPORT_SYMBOL vmlinux 0x391df80a netstamp_needed_key +EXPORT_SYMBOL vmlinux 0x39247cff netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x392833d4 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x39325077 sk_dst_check +EXPORT_SYMBOL vmlinux 0x39461d6a in_egroup_p +EXPORT_SYMBOL vmlinux 0x394a1e11 phy_sfp_attach +EXPORT_SYMBOL vmlinux 0x394fe344 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x3951ff27 sdev_prefix_printk +EXPORT_SYMBOL vmlinux 0x39580a4d close_fd_get_file +EXPORT_SYMBOL vmlinux 0x39735227 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x39780c1f blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x397e878b mod_node_page_state +EXPORT_SYMBOL vmlinux 0x39952d63 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x39991865 icmp_global_allow +EXPORT_SYMBOL vmlinux 0x39a3ca20 vif_device_init +EXPORT_SYMBOL vmlinux 0x39b12ea0 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x39b52d19 __bitmap_and +EXPORT_SYMBOL vmlinux 0x39c08519 __mmap_lock_do_trace_acquire_returned +EXPORT_SYMBOL vmlinux 0x39ce14e8 dcb_ieee_getapp_dscp_prio_mask_map +EXPORT_SYMBOL vmlinux 0x39dd97c2 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x39f02b14 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x39f55669 load_nls_default +EXPORT_SYMBOL vmlinux 0x39f91020 file_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x39fd2b63 zstd_reset_dstream +EXPORT_SYMBOL vmlinux 0x3a13f54a sgl_alloc +EXPORT_SYMBOL vmlinux 0x3a1733d0 dfltcc_inflate +EXPORT_SYMBOL vmlinux 0x3a2f6702 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x3a4654a3 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x3a4f9d28 rng_is_initialized +EXPORT_SYMBOL vmlinux 0x3a5a58bb netdev_get_xmit_slave +EXPORT_SYMBOL vmlinux 0x3a708f60 mntget +EXPORT_SYMBOL vmlinux 0x3a8f22ce gen_pool_alloc_algo_owner +EXPORT_SYMBOL vmlinux 0x3ab5f87a security_inet_conn_request +EXPORT_SYMBOL vmlinux 0x3ab7b1cc scsi_set_sense_field_pointer +EXPORT_SYMBOL vmlinux 0x3abe42e5 seq_pad +EXPORT_SYMBOL vmlinux 0x3acc7dee mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x3ad902c8 tcp_seq_stop +EXPORT_SYMBOL vmlinux 0x3af78716 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x3b0361a4 vm_map_ram +EXPORT_SYMBOL vmlinux 0x3b07d44c vmap +EXPORT_SYMBOL vmlinux 0x3b1469d2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x3b14fdc3 tcf_get_next_chain +EXPORT_SYMBOL vmlinux 0x3b176ce7 release_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0x3b2a327d mini_qdisc_pair_block_init +EXPORT_SYMBOL vmlinux 0x3b31a6d8 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x3b3804e2 netif_set_tso_max_segs +EXPORT_SYMBOL vmlinux 0x3b411180 nf_log_packet +EXPORT_SYMBOL vmlinux 0x3b4bc207 arp_send +EXPORT_SYMBOL vmlinux 0x3b644591 __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x3b6c41ea kstrtouint +EXPORT_SYMBOL vmlinux 0x3b74af56 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x3b756f6a crc32_le +EXPORT_SYMBOL vmlinux 0x3bb75480 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x3bbde49f cdrom_dummy_generic_packet +EXPORT_SYMBOL vmlinux 0x3bcc7b83 bio_chain +EXPORT_SYMBOL vmlinux 0x3be7643e security_xfrm_policy_free +EXPORT_SYMBOL vmlinux 0x3be82381 genphy_suspend +EXPORT_SYMBOL vmlinux 0x3beafe0a sclp +EXPORT_SYMBOL vmlinux 0x3bf66fc5 flow_rule_match_ipv4_addrs +EXPORT_SYMBOL vmlinux 0x3bfd2e07 ns_capable_setid +EXPORT_SYMBOL vmlinux 0x3c0180db simple_empty +EXPORT_SYMBOL vmlinux 0x3c03e68c __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x3c0b4eee __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x3c15d8cb __filemap_get_folio +EXPORT_SYMBOL vmlinux 0x3c185c61 page_put_link +EXPORT_SYMBOL vmlinux 0x3c26006c touch_buffer +EXPORT_SYMBOL vmlinux 0x3c280698 fscrypt_ioctl_set_policy +EXPORT_SYMBOL vmlinux 0x3c2eb92a flow_rule_match_vlan +EXPORT_SYMBOL vmlinux 0x3c3fce39 __local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0x3c3ff9fd sprintf +EXPORT_SYMBOL vmlinux 0x3c458311 fscrypt_has_permitted_context +EXPORT_SYMBOL vmlinux 0x3c4973f7 tcf_idr_search +EXPORT_SYMBOL vmlinux 0x3c531813 zstd_is_error +EXPORT_SYMBOL vmlinux 0x3c5abdd3 keyring_search +EXPORT_SYMBOL vmlinux 0x3c61035d skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x3c7162fe rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x3c768b51 xz_dec_microlzma_run +EXPORT_SYMBOL vmlinux 0x3c795af3 dev_mc_init +EXPORT_SYMBOL vmlinux 0x3c9b8a2d scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x3cb0f552 phy_validate_pause +EXPORT_SYMBOL vmlinux 0x3cb93b4a pci_scan_root_bus_bridge +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3ce84cb2 xp_alloc_batch +EXPORT_SYMBOL vmlinux 0x3ce8e03f sk_stop_timer_sync +EXPORT_SYMBOL vmlinux 0x3cf19779 ccw_device_tm_intrg +EXPORT_SYMBOL vmlinux 0x3cfe82e5 _copy_from_iter +EXPORT_SYMBOL vmlinux 0x3d02aa40 sget_fc +EXPORT_SYMBOL vmlinux 0x3d0e1283 kmem_cache_alloc_lru +EXPORT_SYMBOL vmlinux 0x3d117a60 itcw_calc_size +EXPORT_SYMBOL vmlinux 0x3d1fe0fc posix_acl_update_mode +EXPORT_SYMBOL vmlinux 0x3d21ac73 get_cached_acl +EXPORT_SYMBOL vmlinux 0x3d2981fa utf8_casefold_hash +EXPORT_SYMBOL vmlinux 0x3d45636e page_symlink +EXPORT_SYMBOL vmlinux 0x3d4cb9d1 airq_iv_create +EXPORT_SYMBOL vmlinux 0x3d5615d2 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x3d6b3755 empty_name +EXPORT_SYMBOL vmlinux 0x3d75282e mpage_readahead +EXPORT_SYMBOL vmlinux 0x3dabf271 memcg_sockets_enabled_key +EXPORT_SYMBOL vmlinux 0x3dac779a bpf_sk_lookup_enabled +EXPORT_SYMBOL vmlinux 0x3dad9978 cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x3dae193a jbd2_journal_inode_ranged_wait +EXPORT_SYMBOL vmlinux 0x3db3b5a6 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3deeae55 iget_failed +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1bf328 kern_unmount +EXPORT_SYMBOL vmlinux 0x3e3b822e netif_tx_unlock +EXPORT_SYMBOL vmlinux 0x3e3bad0a __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x3e4100f3 netdev_bind_sb_channel_queue +EXPORT_SYMBOL vmlinux 0x3e417e65 vfs_mkobj +EXPORT_SYMBOL vmlinux 0x3e4520ad pps_event +EXPORT_SYMBOL vmlinux 0x3e51135e kernel_sendpage_locked +EXPORT_SYMBOL vmlinux 0x3e5679e1 make_kgid +EXPORT_SYMBOL vmlinux 0x3e572682 __wake_up +EXPORT_SYMBOL vmlinux 0x3e64f36b path_put +EXPORT_SYMBOL vmlinux 0x3e811204 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x3e8a8611 softnet_data +EXPORT_SYMBOL vmlinux 0x3eb2fc7a tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x3ec22534 tcf_block_put_ext +EXPORT_SYMBOL vmlinux 0x3ec8c914 mr_dump +EXPORT_SYMBOL vmlinux 0x3eccab80 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x3eeef2a1 flow_block_cb_lookup +EXPORT_SYMBOL vmlinux 0x3efe1703 phy_unregister_fixup_for_id +EXPORT_SYMBOL vmlinux 0x3f2241a7 __blk_mq_end_request +EXPORT_SYMBOL vmlinux 0x3f3c3567 lease_modify +EXPORT_SYMBOL vmlinux 0x3f440d11 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f4a830e pcie_get_speed_cap +EXPORT_SYMBOL vmlinux 0x3f6bca35 phy_attach_direct +EXPORT_SYMBOL vmlinux 0x3f6c7e2d seg6_hmac_info_del +EXPORT_SYMBOL vmlinux 0x3f7bba62 ipmr_rule_default +EXPORT_SYMBOL vmlinux 0x3f89071b security_ib_pkey_access +EXPORT_SYMBOL vmlinux 0x3fa72ba7 skb_copy_datagram_iter +EXPORT_SYMBOL vmlinux 0x3fa913da strspn +EXPORT_SYMBOL vmlinux 0x3fb75abe unix_get_socket +EXPORT_SYMBOL vmlinux 0x3fcc3185 fs_param_is_fd +EXPORT_SYMBOL vmlinux 0x3fd78f3b register_chrdev_region +EXPORT_SYMBOL vmlinux 0x3fefa791 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x3ff31bcc scmd_printk +EXPORT_SYMBOL vmlinux 0x3ff3b745 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x3ffebbe5 bio_init_clone +EXPORT_SYMBOL vmlinux 0x402a960a jiffies_64 +EXPORT_SYMBOL vmlinux 0x403fad23 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x4074d876 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x40814589 fwnode_irq_get_byname +EXPORT_SYMBOL vmlinux 0x4096e20a neigh_direct_output +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40b24fb3 filp_close +EXPORT_SYMBOL vmlinux 0x40b77a89 fscrypt_fname_disk_to_usr +EXPORT_SYMBOL vmlinux 0x40b8700d seg6_hmac_info_lookup +EXPORT_SYMBOL vmlinux 0x40c0dbe5 __netif_napi_del +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d59096 unregister_restart_handler +EXPORT_SYMBOL vmlinux 0x40e8813a dump_skip +EXPORT_SYMBOL vmlinux 0x40eb305a unpin_user_pages_dirty_lock +EXPORT_SYMBOL vmlinux 0x41034e3a fb_set_suspend +EXPORT_SYMBOL vmlinux 0x410bda7a iucv_if +EXPORT_SYMBOL vmlinux 0x412f893c page_offline_begin +EXPORT_SYMBOL vmlinux 0x4138c6d6 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x413ee2f1 fwnode_get_phy_id +EXPORT_SYMBOL vmlinux 0x4147aa02 __tracepoint_s390_cio_msch +EXPORT_SYMBOL vmlinux 0x4147ad5c scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4149b396 s390_isolate_bp_guest +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4192583e netdev_features_change +EXPORT_SYMBOL vmlinux 0x41c7f80b rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x41c8ee70 kern_sys_bpf +EXPORT_SYMBOL vmlinux 0x41f8052c pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x41f94382 new_inode +EXPORT_SYMBOL vmlinux 0x42063759 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x420964e3 __nla_parse +EXPORT_SYMBOL vmlinux 0x422c7fa3 mdiobus_read +EXPORT_SYMBOL vmlinux 0x422dfb12 input_grab_device +EXPORT_SYMBOL vmlinux 0x4230a8d7 sg_nents_for_len +EXPORT_SYMBOL vmlinux 0x423e6934 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x4248ae3c single_task_running +EXPORT_SYMBOL vmlinux 0x424d3620 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x4259a0a6 eth_header_cache +EXPORT_SYMBOL vmlinux 0x426cf3fe request_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x4273899a tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x427f8798 file_ns_capable +EXPORT_SYMBOL vmlinux 0x42962415 flow_block_cb_setup_simple +EXPORT_SYMBOL vmlinux 0x42964d41 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x429db94d vlan_dev_vlan_proto +EXPORT_SYMBOL vmlinux 0x429dcdc0 xa_find_after +EXPORT_SYMBOL vmlinux 0x42ad3bdc proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x42ae6d99 xa_find +EXPORT_SYMBOL vmlinux 0x42b63eeb kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x42c4050a zstd_init_dstream +EXPORT_SYMBOL vmlinux 0x42daf4f5 d_move +EXPORT_SYMBOL vmlinux 0x42e53d7d dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x42f1b900 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x42fc23ac prepare_creds +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x431ec3a9 __nla_validate +EXPORT_SYMBOL vmlinux 0x4324bced bio_init +EXPORT_SYMBOL vmlinux 0x432fcf25 ptep_xchg_direct +EXPORT_SYMBOL vmlinux 0x433703e4 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x43388d60 eth_platform_get_mac_address +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43737fd1 __traceiter_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0x437a0d6d __sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x437d3111 mr_mfc_seq_next +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x43aa3d0e __udp_disconnect +EXPORT_SYMBOL vmlinux 0x43bdfa20 console_irq +EXPORT_SYMBOL vmlinux 0x43cf3bc3 dql_completed +EXPORT_SYMBOL vmlinux 0x43d22fb9 groups_alloc +EXPORT_SYMBOL vmlinux 0x43d3e9f9 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x43d9ba52 fault_in_readable +EXPORT_SYMBOL vmlinux 0x43da1ac3 ilookup +EXPORT_SYMBOL vmlinux 0x43e2859f input_register_device +EXPORT_SYMBOL vmlinux 0x4404db98 dm_table_get_size +EXPORT_SYMBOL vmlinux 0x441f6900 put_cmsg_scm_timestamping64 +EXPORT_SYMBOL vmlinux 0x44298c74 inode_init_owner +EXPORT_SYMBOL vmlinux 0x44331649 task_work_add +EXPORT_SYMBOL vmlinux 0x44450c65 param_get_charp +EXPORT_SYMBOL vmlinux 0x44469a76 crc_ccitt_false_table +EXPORT_SYMBOL vmlinux 0x4461996f xsk_clear_tx_need_wakeup +EXPORT_SYMBOL vmlinux 0x4477bfbc phy_free_interrupt +EXPORT_SYMBOL vmlinux 0x4488cc13 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x4499d547 tcp_sock_set_keepintvl +EXPORT_SYMBOL vmlinux 0x44a6e90a irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x44aa20e8 copy_page_from_iter_atomic +EXPORT_SYMBOL vmlinux 0x44b30fb5 csch +EXPORT_SYMBOL vmlinux 0x44d040ad md_bitmap_free +EXPORT_SYMBOL vmlinux 0x44d23375 input_inject_event +EXPORT_SYMBOL vmlinux 0x44d9e35c vfs_fileattr_get +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44e9b7d0 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x44f70cab filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x45006cee default_red +EXPORT_SYMBOL vmlinux 0x450d470a pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x452ba683 ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x453b517c netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4549340b jbd2_fc_get_buf +EXPORT_SYMBOL vmlinux 0x456733fe mini_qdisc_pair_init +EXPORT_SYMBOL vmlinux 0x4574b843 input_register_handle +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458ed11f xp_raw_get_dma +EXPORT_SYMBOL vmlinux 0x45a09be7 tcf_chain_put_by_act +EXPORT_SYMBOL vmlinux 0x45b9877f prepare_to_wait +EXPORT_SYMBOL vmlinux 0x45c1dd3e dcb_setapp +EXPORT_SYMBOL vmlinux 0x45ce2790 skb_checksum_setup +EXPORT_SYMBOL vmlinux 0x45d3c773 memdup_user_nul +EXPORT_SYMBOL vmlinux 0x45dfed8b fscrypt_encrypt_pagecache_blocks +EXPORT_SYMBOL vmlinux 0x45e791a9 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x45f17fb6 __var_waitqueue +EXPORT_SYMBOL vmlinux 0x45fdb146 dma_fence_enable_sw_signaling +EXPORT_SYMBOL vmlinux 0x4600af9e tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x46022397 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x46057206 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x460a57f0 tcp_prot +EXPORT_SYMBOL vmlinux 0x460f4a34 flow_hash_from_keys +EXPORT_SYMBOL vmlinux 0x4616213e gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x461d16ca sg_nents +EXPORT_SYMBOL vmlinux 0x462ddfd8 tcf_exts_validate_ex +EXPORT_SYMBOL vmlinux 0x462f2c0b request_key_tag +EXPORT_SYMBOL vmlinux 0x46444ced xsk_tx_peek_release_desc_batch +EXPORT_SYMBOL vmlinux 0x46460a62 sock_no_linger +EXPORT_SYMBOL vmlinux 0x46521679 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46794143 pgste_perform_essa +EXPORT_SYMBOL vmlinux 0x46895b1f tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x46932b50 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x46a60edc ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x46a8bf9e cond_set_guest_storage_key +EXPORT_SYMBOL vmlinux 0x46aca34a pci_set_power_state +EXPORT_SYMBOL vmlinux 0x46bbdfb3 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x46cd8fce iucv_message_send +EXPORT_SYMBOL vmlinux 0x46d59f7d smp_cpu_mt_shift +EXPORT_SYMBOL vmlinux 0x46dbcb36 phy_modify_paged_changed +EXPORT_SYMBOL vmlinux 0x46dfcbf2 param_get_invbool +EXPORT_SYMBOL vmlinux 0x46e319aa tcw_set_data +EXPORT_SYMBOL vmlinux 0x46e68ccb dma_fence_signal_timestamp_locked +EXPORT_SYMBOL vmlinux 0x46f52e1f param_ops_long +EXPORT_SYMBOL vmlinux 0x471c4df5 kset_unregister +EXPORT_SYMBOL vmlinux 0x4732c061 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x47392e76 sclp_ocf_cpc_name_copy +EXPORT_SYMBOL vmlinux 0x47624235 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x47680634 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x47709e42 free_anon_bdev +EXPORT_SYMBOL vmlinux 0x47723912 netdev_sk_get_lowest_dev +EXPORT_SYMBOL vmlinux 0x47756549 skb_flow_get_icmp_tci +EXPORT_SYMBOL vmlinux 0x477b5afb jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x477ea640 inode_io_list_del +EXPORT_SYMBOL vmlinux 0x4788ee77 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x4791c6ea gen_pool_create +EXPORT_SYMBOL vmlinux 0x47a0cdcb mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x47b1d49b xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x47b8cac9 page_pool_alloc_pages +EXPORT_SYMBOL vmlinux 0x47c20f8a refcount_dec_not_one +EXPORT_SYMBOL vmlinux 0x47c65bfc unregister_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0x47c86a18 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x47d2aae0 phy_attach +EXPORT_SYMBOL vmlinux 0x47d6f99a pci_match_id +EXPORT_SYMBOL vmlinux 0x47d70429 skb_put +EXPORT_SYMBOL vmlinux 0x47dfac7b __hw_addr_sync_dev +EXPORT_SYMBOL vmlinux 0x4802595b submit_bio_wait +EXPORT_SYMBOL vmlinux 0x480579dd file_path +EXPORT_SYMBOL vmlinux 0x4823819e raw3270_buffer_address +EXPORT_SYMBOL vmlinux 0x4829cf6b fscrypt_enqueue_decrypt_work +EXPORT_SYMBOL vmlinux 0x482b78cb input_register_handler +EXPORT_SYMBOL vmlinux 0x483cf756 cdev_device_del +EXPORT_SYMBOL vmlinux 0x484f6edf ktime_get_coarse_real_ts64 +EXPORT_SYMBOL vmlinux 0x484fc1cb dma_fence_chain_ops +EXPORT_SYMBOL vmlinux 0x487370a2 fault_in_writeable +EXPORT_SYMBOL vmlinux 0x489b3d7b nf_ct_attach +EXPORT_SYMBOL vmlinux 0x489f6e0b rdma_dim +EXPORT_SYMBOL vmlinux 0x48a91171 string_get_size +EXPORT_SYMBOL vmlinux 0x48be25f5 phy_get_internal_delay +EXPORT_SYMBOL vmlinux 0x48c074f2 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x48d27375 __bitmap_intersects +EXPORT_SYMBOL vmlinux 0x48f6905b zstd_dctx_workspace_bound +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x490dddac dq_data_lock +EXPORT_SYMBOL vmlinux 0x49222e43 inet_sk_set_state +EXPORT_SYMBOL vmlinux 0x492e1bb0 vfs_symlink +EXPORT_SYMBOL vmlinux 0x4932011e gen_pool_free_owner +EXPORT_SYMBOL vmlinux 0x49508703 bdi_register +EXPORT_SYMBOL vmlinux 0x495231ea mul_u64_u64_div_u64 +EXPORT_SYMBOL vmlinux 0x495990f3 hdmi_audio_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x49646058 kobject_del +EXPORT_SYMBOL vmlinux 0x49672828 node_states +EXPORT_SYMBOL vmlinux 0x498c0039 __register_chrdev +EXPORT_SYMBOL vmlinux 0x499dce09 xsk_clear_rx_need_wakeup +EXPORT_SYMBOL vmlinux 0x49a8455a start_tty +EXPORT_SYMBOL vmlinux 0x49bbd07b filemap_alloc_folio +EXPORT_SYMBOL vmlinux 0x49c6855c get_unmapped_area +EXPORT_SYMBOL vmlinux 0x49cc521b ap_send_online_uevent +EXPORT_SYMBOL vmlinux 0x49cd88a9 dma_fence_chain_find_seqno +EXPORT_SYMBOL vmlinux 0x49ceff70 unregister_console +EXPORT_SYMBOL vmlinux 0x49e5e7f3 hdmi_drm_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x49ed83ba pci_write_vpd_any +EXPORT_SYMBOL vmlinux 0x49ed9955 ccw_device_halt +EXPORT_SYMBOL vmlinux 0x49ef5943 sock_create_kern +EXPORT_SYMBOL vmlinux 0x49fba9a4 dm_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x4a04c9c5 simple_getattr +EXPORT_SYMBOL vmlinux 0x4a150fba complete_request_key +EXPORT_SYMBOL vmlinux 0x4a22c776 pci_enable_ptm +EXPORT_SYMBOL vmlinux 0x4a2f540b fwnode_phy_find_device +EXPORT_SYMBOL vmlinux 0x4a396e25 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x4a572e3a swake_up_all +EXPORT_SYMBOL vmlinux 0x4a649e66 netif_napi_add_weight +EXPORT_SYMBOL vmlinux 0x4a96a8eb xxh32_digest +EXPORT_SYMBOL vmlinux 0x4a9f7054 dma_resv_iter_first_unlocked +EXPORT_SYMBOL vmlinux 0x4ab2b4bb has_capability_noaudit +EXPORT_SYMBOL vmlinux 0x4ac71ef5 sock_no_sendpage_locked +EXPORT_SYMBOL vmlinux 0x4aee8ae3 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x4af6ddf0 kstrtou16 +EXPORT_SYMBOL vmlinux 0x4afe6383 scsi_device_get +EXPORT_SYMBOL vmlinux 0x4b0069f4 nla_put_64bit +EXPORT_SYMBOL vmlinux 0x4b081d00 cred_fscmp +EXPORT_SYMBOL vmlinux 0x4b0b019e add_device_randomness +EXPORT_SYMBOL vmlinux 0x4b1053db skb_eth_gso_segment +EXPORT_SYMBOL vmlinux 0x4b369167 __SCK__tp_func_s390_diagnose +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b64b97a __d_lookup_done +EXPORT_SYMBOL vmlinux 0x4b87be76 input_get_keycode +EXPORT_SYMBOL vmlinux 0x4b8f4e7a down_read_trylock +EXPORT_SYMBOL vmlinux 0x4b8fa685 phy_advertise_supported +EXPORT_SYMBOL vmlinux 0x4bbf3f2e xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x4bfde018 fuse_mount_destroy +EXPORT_SYMBOL vmlinux 0x4c036a4e vm_insert_pages +EXPORT_SYMBOL vmlinux 0x4c078dc1 from_kuid +EXPORT_SYMBOL vmlinux 0x4c348303 kernel_param_lock +EXPORT_SYMBOL vmlinux 0x4c416eb9 LZ4_decompress_fast +EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp +EXPORT_SYMBOL vmlinux 0x4c55995f inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x4c5870ea sock_i_ino +EXPORT_SYMBOL vmlinux 0x4c62f650 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x4c73c0dd phy_ethtool_ksettings_set +EXPORT_SYMBOL vmlinux 0x4c87000a mr_rtm_dumproute +EXPORT_SYMBOL vmlinux 0x4c87478b ccw_device_start_key +EXPORT_SYMBOL vmlinux 0x4c88777b security_path_unlink +EXPORT_SYMBOL vmlinux 0x4ca3a24c vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x4cae8449 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x4cc7bf0b blk_queue_max_secure_erase_sectors +EXPORT_SYMBOL vmlinux 0x4ccc5204 utf8_strncasecmp_folded +EXPORT_SYMBOL vmlinux 0x4cf09dad vfs_setpos +EXPORT_SYMBOL vmlinux 0x4d25aa98 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x4d3021f1 eth_type_trans +EXPORT_SYMBOL vmlinux 0x4d3df2df __mod_node_page_state +EXPORT_SYMBOL vmlinux 0x4d430ea6 file_open_root +EXPORT_SYMBOL vmlinux 0x4d5d0838 dev_pick_tx_cpu_id +EXPORT_SYMBOL vmlinux 0x4d5fe525 percpu_counter_add_batch +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4dc35441 pci_disable_device +EXPORT_SYMBOL vmlinux 0x4dc41c15 __napi_schedule_irqoff +EXPORT_SYMBOL vmlinux 0x4dd863f7 xfrm_input +EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy +EXPORT_SYMBOL vmlinux 0x4de6e46b unlock_page +EXPORT_SYMBOL vmlinux 0x4dea1053 memchr +EXPORT_SYMBOL vmlinux 0x4dede9a8 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x4df2ea84 gen_estimator_read +EXPORT_SYMBOL vmlinux 0x4df33128 do_clone_file_range +EXPORT_SYMBOL vmlinux 0x4df88965 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x4dfdb6ce register_qdisc +EXPORT_SYMBOL vmlinux 0x4e14fb7d __traceiter_s390_cio_msch +EXPORT_SYMBOL vmlinux 0x4e332902 nla_append +EXPORT_SYMBOL vmlinux 0x4e3400bd kern_path +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e36cdc4 __ubsan_handle_divrem_overflow +EXPORT_SYMBOL vmlinux 0x4e41212d ccw_device_clear_options +EXPORT_SYMBOL vmlinux 0x4e44f060 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x4e4924ea init_virt_timer +EXPORT_SYMBOL vmlinux 0x4e538af0 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x4e61a7ec param_get_int +EXPORT_SYMBOL vmlinux 0x4e68e9be rb_next_postorder +EXPORT_SYMBOL vmlinux 0x4e6ac1b4 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e84bb09 unregister_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0x4e89ce10 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x4e8e2703 zstd_decompress_dctx +EXPORT_SYMBOL vmlinux 0x4e9e6a05 downgrade_write +EXPORT_SYMBOL vmlinux 0x4ea6d749 bio_free_pages +EXPORT_SYMBOL vmlinux 0x4eada8f7 security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0x4ebe2cf8 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x4ec54e78 bitmap_to_arr32 +EXPORT_SYMBOL vmlinux 0x4ed3fcb9 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x4eda1da4 __register_nls +EXPORT_SYMBOL vmlinux 0x4ee70783 scsi_change_queue_depth +EXPORT_SYMBOL vmlinux 0x4f06f508 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x4f1ade73 seg6_hmac_validate_skb +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20d80b zstd_min_clevel +EXPORT_SYMBOL vmlinux 0x4f21b8b2 d_alloc_name +EXPORT_SYMBOL vmlinux 0x4f2cd1b5 __cpcmd +EXPORT_SYMBOL vmlinux 0x4f3c17a1 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x4f3ed12b set_user_nice +EXPORT_SYMBOL vmlinux 0x4f59fc49 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x4f5aa411 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0x4f7a0f7b inet_protos +EXPORT_SYMBOL vmlinux 0x4f7f2886 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x4f82db82 mdio_device_reset +EXPORT_SYMBOL vmlinux 0x4f84b873 dev_close +EXPORT_SYMBOL vmlinux 0x4fba9f21 fscrypt_setup_filename +EXPORT_SYMBOL vmlinux 0x4fbe3685 page_pool_release_page +EXPORT_SYMBOL vmlinux 0x4fd26564 skb_copy_and_csum_datagram_msg +EXPORT_SYMBOL vmlinux 0x4fd9e904 sock_no_listen +EXPORT_SYMBOL vmlinux 0x4ffb59bf __SCK__tp_func_kfree +EXPORT_SYMBOL vmlinux 0x5001fdca folio_account_redirty +EXPORT_SYMBOL vmlinux 0x5003d52a ap_perms_mutex +EXPORT_SYMBOL vmlinux 0x500797c4 dma_resv_init +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5009c71d glob_match +EXPORT_SYMBOL vmlinux 0x502a8acc get_ccwdev_by_busid +EXPORT_SYMBOL vmlinux 0x504eb131 pci_enable_atomic_ops_to_root +EXPORT_SYMBOL vmlinux 0x50624917 sha1_init +EXPORT_SYMBOL vmlinux 0x506dff1a __genradix_free +EXPORT_SYMBOL vmlinux 0x507144f4 lockref_get_not_zero +EXPORT_SYMBOL vmlinux 0x50723aaa kmem_cache_create_usercopy +EXPORT_SYMBOL vmlinux 0x507b25d0 kstrndup +EXPORT_SYMBOL vmlinux 0x508a8690 mr_mfc_find_any +EXPORT_SYMBOL vmlinux 0x50944630 seq_list_start_head_rcu +EXPORT_SYMBOL vmlinux 0x509b65c2 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x50a4698c fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0x50b64d30 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x50be748d security_ib_free_security +EXPORT_SYMBOL vmlinux 0x50c1fc52 prepare_to_swait_exclusive +EXPORT_SYMBOL vmlinux 0x50d035c2 vsscanf +EXPORT_SYMBOL vmlinux 0x50e087dc radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x50e15a75 bdi_alloc +EXPORT_SYMBOL vmlinux 0x50e4d6a3 tcp_sock_set_keepcnt +EXPORT_SYMBOL vmlinux 0x5106f68e blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x5119f18a fb_prepare_logo +EXPORT_SYMBOL vmlinux 0x513201d6 unpin_user_pages +EXPORT_SYMBOL vmlinux 0x513fdc5f param_set_ullong +EXPORT_SYMBOL vmlinux 0x51473316 __cpu_present_mask +EXPORT_SYMBOL vmlinux 0x515856ee t10_pi_type1_ip +EXPORT_SYMBOL vmlinux 0x51641162 opal_unlock_from_suspend +EXPORT_SYMBOL vmlinux 0x517180b0 __skb_checksum +EXPORT_SYMBOL vmlinux 0x518bb9e6 diag204 +EXPORT_SYMBOL vmlinux 0x519b94e8 seg6_push_hmac +EXPORT_SYMBOL vmlinux 0x51a99d4f set_posix_acl +EXPORT_SYMBOL vmlinux 0x51cb3b1f netlink_capable +EXPORT_SYMBOL vmlinux 0x51eb97a9 flow_block_cb_alloc +EXPORT_SYMBOL vmlinux 0x52087c78 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x520d907a __free_pages +EXPORT_SYMBOL vmlinux 0x521769bb crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x5220b195 dquot_get_next_dqblk +EXPORT_SYMBOL vmlinux 0x522541ec pci_write_config_word +EXPORT_SYMBOL vmlinux 0x52271cda netpoll_print_options +EXPORT_SYMBOL vmlinux 0x5234e8e4 reuseport_detach_sock +EXPORT_SYMBOL vmlinux 0x5242ea5a napi_get_frags +EXPORT_SYMBOL vmlinux 0x524d6bc4 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x527043b8 rt_dst_alloc +EXPORT_SYMBOL vmlinux 0x5273db04 __folio_lock +EXPORT_SYMBOL vmlinux 0x527503dc scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x52819990 kernel_cpumcf_alert +EXPORT_SYMBOL vmlinux 0x52bc869c linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x52c4dfd1 padata_alloc_shell +EXPORT_SYMBOL vmlinux 0x52c7ab2f tty_port_put +EXPORT_SYMBOL vmlinux 0x52cedc3c unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x52d717da xz_dec_init +EXPORT_SYMBOL vmlinux 0x52db1a14 zstd_init_dctx +EXPORT_SYMBOL vmlinux 0x52e2080c unregister_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0x53032ee9 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x530bbc96 __hsiphash_unaligned +EXPORT_SYMBOL vmlinux 0x530e02ca lock_rename +EXPORT_SYMBOL vmlinux 0x530f9566 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x5314ec0b locks_lock_inode_wait +EXPORT_SYMBOL vmlinux 0x531625b6 wait_for_completion +EXPORT_SYMBOL vmlinux 0x5338184f ethtool_sprintf +EXPORT_SYMBOL vmlinux 0x5339a0f3 kthread_create_worker +EXPORT_SYMBOL vmlinux 0x534ccc50 get_task_cred +EXPORT_SYMBOL vmlinux 0x536f7e1b pci_dev_driver +EXPORT_SYMBOL vmlinux 0x53761522 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x53a520f4 ap_queue_init_reply +EXPORT_SYMBOL vmlinux 0x53b4f636 __dev_set_mtu +EXPORT_SYMBOL vmlinux 0x53c24b01 mutex_is_locked +EXPORT_SYMBOL vmlinux 0x53fd6dc9 dma_fence_signal_locked +EXPORT_SYMBOL vmlinux 0x540862e2 diag14 +EXPORT_SYMBOL vmlinux 0x541a28f6 bh_submit_read +EXPORT_SYMBOL vmlinux 0x542a0ac4 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x542ad1ab t10_pi_type3_crc +EXPORT_SYMBOL vmlinux 0x542fae5e md_cluster_ops +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x5459ac9a iucv_bus +EXPORT_SYMBOL vmlinux 0x545b4d47 regset_get +EXPORT_SYMBOL vmlinux 0x548d17c4 airq_iv_alloc +EXPORT_SYMBOL vmlinux 0x54974325 vfs_fadvise +EXPORT_SYMBOL vmlinux 0x54a974d2 dm_io +EXPORT_SYMBOL vmlinux 0x54b1fac6 __ubsan_handle_load_invalid_value +EXPORT_SYMBOL vmlinux 0x54b741f5 __inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f68bb0 __module_put_and_kthread_exit +EXPORT_SYMBOL vmlinux 0x54f8a206 folio_wait_private_2 +EXPORT_SYMBOL vmlinux 0x54fff0d8 mr_table_alloc +EXPORT_SYMBOL vmlinux 0x5501c4bd netdev_offload_xstats_enable +EXPORT_SYMBOL vmlinux 0x5506b8f7 netlbl_bitmap_setbit +EXPORT_SYMBOL vmlinux 0x551668bc kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x552556a8 gen_pool_dma_alloc_algo +EXPORT_SYMBOL vmlinux 0x5528bad5 generic_block_bmap +EXPORT_SYMBOL vmlinux 0x552d839d blk_queue_chunk_sectors +EXPORT_SYMBOL vmlinux 0x554826c9 pagecache_get_page +EXPORT_SYMBOL vmlinux 0x554ae3a4 irq_poll_sched +EXPORT_SYMBOL vmlinux 0x555ccb97 up_read +EXPORT_SYMBOL vmlinux 0x55610521 vfs_iter_write +EXPORT_SYMBOL vmlinux 0x5561e016 ipv6_sock_mc_join +EXPORT_SYMBOL vmlinux 0x55620b30 set_pgste_bits +EXPORT_SYMBOL vmlinux 0x55773cb0 bdev_check_media_change +EXPORT_SYMBOL vmlinux 0x557845e4 dquot_file_open +EXPORT_SYMBOL vmlinux 0x558b281d aes_expandkey +EXPORT_SYMBOL vmlinux 0x55a3f3e0 sclp_add_request +EXPORT_SYMBOL vmlinux 0x55be8c7b param_get_hexint +EXPORT_SYMBOL vmlinux 0x55c4defc sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x55d63108 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x55da7e4f skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x55db73a4 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x55e31703 ethtool_convert_link_mode_to_legacy_u32 +EXPORT_SYMBOL vmlinux 0x55eccdf5 mod_virt_timer +EXPORT_SYMBOL vmlinux 0x55fbaf1d smsg_unregister_callback +EXPORT_SYMBOL vmlinux 0x55fd18a3 watchdog_unregister_governor +EXPORT_SYMBOL vmlinux 0x560376da pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x56083857 netdev_unbind_sb_channel +EXPORT_SYMBOL vmlinux 0x560b02b2 tcp_add_backlog +EXPORT_SYMBOL vmlinux 0x561ee68f __sk_mem_schedule +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 0x565671df posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x566094c8 irq_set_chip +EXPORT_SYMBOL vmlinux 0x5660f88f raw3270_add_view +EXPORT_SYMBOL vmlinux 0x567fd3c8 __netif_rx +EXPORT_SYMBOL vmlinux 0x56802ae8 rps_cpu_mask +EXPORT_SYMBOL vmlinux 0x5680db6d jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x56c3db64 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56cde0e0 __blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x56cfcbec __ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x56d50988 tty_unregister_device +EXPORT_SYMBOL vmlinux 0x56d78870 chsc +EXPORT_SYMBOL vmlinux 0x56eb346a skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x56f84773 gro_cells_init +EXPORT_SYMBOL vmlinux 0x56f9a10f kmem_cache_free_bulk +EXPORT_SYMBOL vmlinux 0x56fbacc3 make_kprojid +EXPORT_SYMBOL vmlinux 0x5702d940 noop_qdisc +EXPORT_SYMBOL vmlinux 0x571d3635 config_item_get_unless_zero +EXPORT_SYMBOL vmlinux 0x572096fb devm_ioremap +EXPORT_SYMBOL vmlinux 0x57247306 input_get_timestamp +EXPORT_SYMBOL vmlinux 0x574c2e74 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5785d8cc fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x578e8fa7 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x57b4b9a1 register_external_irq +EXPORT_SYMBOL vmlinux 0x57c3cbd6 cdev_device_add +EXPORT_SYMBOL vmlinux 0x57c615ec cpumask_any_but +EXPORT_SYMBOL vmlinux 0x57debe32 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x57f18433 swake_up_one +EXPORT_SYMBOL vmlinux 0x57f7660d blk_mq_requeue_request +EXPORT_SYMBOL vmlinux 0x5804c56e param_ops_short +EXPORT_SYMBOL vmlinux 0x5818fe3c posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0x581f98da zlib_inflate +EXPORT_SYMBOL vmlinux 0x58273b26 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x582b6275 xfrm_if_unregister_cb +EXPORT_SYMBOL vmlinux 0x58370633 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x584022d0 noop_fsync +EXPORT_SYMBOL vmlinux 0x586423dd tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x587b0954 kvasprintf +EXPORT_SYMBOL vmlinux 0x58acf24b mdiobus_register_board_info +EXPORT_SYMBOL vmlinux 0x58b4645c dev_close_many +EXPORT_SYMBOL vmlinux 0x58b73bc7 match_wildcard +EXPORT_SYMBOL vmlinux 0x58cd1b54 string_escape_mem +EXPORT_SYMBOL vmlinux 0x58d43269 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x58e30690 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x58e3306d bit_wait_io +EXPORT_SYMBOL vmlinux 0x58eae9ec gen_pool_dma_zalloc_align +EXPORT_SYMBOL vmlinux 0x590da2bb fscrypt_decrypt_block_inplace +EXPORT_SYMBOL vmlinux 0x591b2215 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x592fb7e5 ip_output +EXPORT_SYMBOL vmlinux 0x5983486f cdrom_release +EXPORT_SYMBOL vmlinux 0x598f0a95 udplite_table +EXPORT_SYMBOL vmlinux 0x59944d6b flow_rule_match_enc_ip +EXPORT_SYMBOL vmlinux 0x5994b0c1 param_set_long +EXPORT_SYMBOL vmlinux 0x59abc708 inet6_offloads +EXPORT_SYMBOL vmlinux 0x59b4ac3e tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x59b670b5 lock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x59d0ab2f __skb_vlan_pop +EXPORT_SYMBOL vmlinux 0x59de2ed4 debug_exception_common +EXPORT_SYMBOL vmlinux 0x59e1d90c scsi_print_command +EXPORT_SYMBOL vmlinux 0x59eb9ee8 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x5a082401 d_add_ci +EXPORT_SYMBOL vmlinux 0x5a0b73d0 zlib_deflateInit2 +EXPORT_SYMBOL vmlinux 0x5a10f98e del_virt_timer +EXPORT_SYMBOL vmlinux 0x5a14d6d4 netdev_port_same_parent_id +EXPORT_SYMBOL vmlinux 0x5a1a90f7 ccw_device_get_ciw +EXPORT_SYMBOL vmlinux 0x5a27ecc6 vlan_for_each +EXPORT_SYMBOL vmlinux 0x5a39a45b __folio_alloc +EXPORT_SYMBOL vmlinux 0x5a3f584e netpoll_poll_enable +EXPORT_SYMBOL vmlinux 0x5a4174d7 peernet2id +EXPORT_SYMBOL vmlinux 0x5a4a65c7 dcache_readdir +EXPORT_SYMBOL vmlinux 0x5a4d313e gf128mul_4k_lle +EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x5a5e87ad netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x5a630934 free_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x5a65fdb6 dst_alloc +EXPORT_SYMBOL vmlinux 0x5a7b6360 ap_queue_message +EXPORT_SYMBOL vmlinux 0x5a99a0d7 flow_get_u32_dst +EXPORT_SYMBOL vmlinux 0x5ac1778e security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0x5ac53902 kernel_param_unlock +EXPORT_SYMBOL vmlinux 0x5ac62670 netdev_next_lower_dev_rcu +EXPORT_SYMBOL vmlinux 0x5ae1154b __traceiter_kfree +EXPORT_SYMBOL vmlinux 0x5aea3f98 inet_release +EXPORT_SYMBOL vmlinux 0x5afaed8f kthread_stop +EXPORT_SYMBOL vmlinux 0x5b048748 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x5b2b28ab tcw_add_tidaw +EXPORT_SYMBOL vmlinux 0x5b4d6b3c input_event +EXPORT_SYMBOL vmlinux 0x5b604bd1 segment_type +EXPORT_SYMBOL vmlinux 0x5b745a3d xa_load +EXPORT_SYMBOL vmlinux 0x5b76ad7a brioctl_set +EXPORT_SYMBOL vmlinux 0x5b7a779e pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x5b7dad20 mdiobus_read_nested +EXPORT_SYMBOL vmlinux 0x5bc14f5e bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x5bd4ff88 flow_action_cookie_create +EXPORT_SYMBOL vmlinux 0x5bdb7603 sock_copy_user_timeval +EXPORT_SYMBOL vmlinux 0x5bdcabe7 gen_pool_first_fit_order_align +EXPORT_SYMBOL vmlinux 0x5bdcca02 mr_table_dump +EXPORT_SYMBOL vmlinux 0x5be63c5b crc32c_csum_stub +EXPORT_SYMBOL vmlinux 0x5becdd8f __dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x5bfdd329 netif_schedule_queue +EXPORT_SYMBOL vmlinux 0x5c2ab814 config_item_put +EXPORT_SYMBOL vmlinux 0x5c357065 netlink_net_capable +EXPORT_SYMBOL vmlinux 0x5c3c7387 kstrtoull +EXPORT_SYMBOL vmlinux 0x5c4a80d2 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x5c4f842b kill_fasync +EXPORT_SYMBOL vmlinux 0x5c673885 xp_can_alloc +EXPORT_SYMBOL vmlinux 0x5c743968 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x5c7e2dd9 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x5c89c78e tcp_disconnect +EXPORT_SYMBOL vmlinux 0x5c89dc12 km_query +EXPORT_SYMBOL vmlinux 0x5c8be505 follow_down_one +EXPORT_SYMBOL vmlinux 0x5ca51ee4 free_task +EXPORT_SYMBOL vmlinux 0x5cb4090a raw3270_request_set_cmd +EXPORT_SYMBOL vmlinux 0x5cc32bdc bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x5cc5c655 xfrm_input_register_afinfo +EXPORT_SYMBOL vmlinux 0x5cd6f99b completion_done +EXPORT_SYMBOL vmlinux 0x5ce21e40 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d16d8cd radix_tree_replace_slot +EXPORT_SYMBOL vmlinux 0x5d3f1694 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x5d3f4fa1 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x5d49aabc init_wait_var_entry +EXPORT_SYMBOL vmlinux 0x5d679bec input_flush_device +EXPORT_SYMBOL vmlinux 0x5d6d3327 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x5d7dee6b strscpy_pad +EXPORT_SYMBOL vmlinux 0x5da40afb qdisc_offload_dump_helper +EXPORT_SYMBOL vmlinux 0x5da51bd4 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x5da84b31 unregister_adapter_interrupt +EXPORT_SYMBOL vmlinux 0x5dd22874 kbd_ioctl +EXPORT_SYMBOL vmlinux 0x5ddf7d37 con_is_visible +EXPORT_SYMBOL vmlinux 0x5df756d7 __crypto_memneq +EXPORT_SYMBOL vmlinux 0x5e0ccb9f sha1_transform +EXPORT_SYMBOL vmlinux 0x5e218c0b config_group_init +EXPORT_SYMBOL vmlinux 0x5e21cb82 ap_send +EXPORT_SYMBOL vmlinux 0x5e24cef6 page_cache_prev_miss +EXPORT_SYMBOL vmlinux 0x5e373fb4 gf128mul_64k_bbe +EXPORT_SYMBOL vmlinux 0x5e40dcb7 xfrm_lookup_route +EXPORT_SYMBOL vmlinux 0x5e6207ee __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x5e744977 fib_notifier_ops_register +EXPORT_SYMBOL vmlinux 0x5e86171d raw3270_unregister_notifier +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5ea0f5b2 ip_mc_check_igmp +EXPORT_SYMBOL vmlinux 0x5ea31004 arch_spin_trylock_retry +EXPORT_SYMBOL vmlinux 0x5ea3d62a platform_get_ethdev_address +EXPORT_SYMBOL vmlinux 0x5eb18a73 security_sctp_assoc_established +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ec46d03 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5ec4aee6 put_sg_io_hdr +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 0x5efdd68b __tracepoint_mmap_lock_released +EXPORT_SYMBOL vmlinux 0x5f05625d fs_context_for_submount +EXPORT_SYMBOL vmlinux 0x5f089c4d bio_uninit +EXPORT_SYMBOL vmlinux 0x5f098b2a in6addr_interfacelocal_allrouters +EXPORT_SYMBOL vmlinux 0x5f0ad520 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x5f11c748 nmi_panic +EXPORT_SYMBOL vmlinux 0x5f2ba55e security_req_classify_flow +EXPORT_SYMBOL vmlinux 0x5f4ebac1 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x5f4f954b dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x5f508f4a dev_disable_lro +EXPORT_SYMBOL vmlinux 0x5f539c8e scsi_host_get +EXPORT_SYMBOL vmlinux 0x5f5441c8 __ubsan_handle_alignment_assumption +EXPORT_SYMBOL vmlinux 0x5f98bdb6 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0x5f9ede6c proc_dostring +EXPORT_SYMBOL vmlinux 0x5fa038e1 d_rehash +EXPORT_SYMBOL vmlinux 0x5fa8c911 request_firmware +EXPORT_SYMBOL vmlinux 0x5fa97f12 ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x5fbc2fd6 locks_delete_block +EXPORT_SYMBOL vmlinux 0x5fc3a00f input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x5fca0cbc input_close_device +EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr +EXPORT_SYMBOL vmlinux 0x5fe447a9 bitmap_print_list_to_buf +EXPORT_SYMBOL vmlinux 0x5fee34a1 tcf_em_register +EXPORT_SYMBOL vmlinux 0x5ff8c534 ip6_fraglist_prepare +EXPORT_SYMBOL vmlinux 0x6005c351 zpool_has_pool +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x6014da21 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602f3318 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x605790dc fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0x608d8c93 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x608f4cf2 dev_get_port_parent_id +EXPORT_SYMBOL vmlinux 0x6091b333 unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x609a4b35 sock_set_reuseport +EXPORT_SYMBOL vmlinux 0x609bcd98 in6_pton +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60c311d6 raw3270_start +EXPORT_SYMBOL vmlinux 0x60cc6263 blk_queue_split +EXPORT_SYMBOL vmlinux 0x60ccff73 dev_addr_del +EXPORT_SYMBOL vmlinux 0x60cf0d39 kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x60d6fed8 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x60f38515 __sk_mem_reduce_allocated +EXPORT_SYMBOL vmlinux 0x60f6414e set_binfmt +EXPORT_SYMBOL vmlinux 0x6101a85c elv_rb_add +EXPORT_SYMBOL vmlinux 0x6104e775 dm_put_device +EXPORT_SYMBOL vmlinux 0x610539b9 freeze_bdev +EXPORT_SYMBOL vmlinux 0x6108288f complete_all +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614e76c5 config_item_init_type_name +EXPORT_SYMBOL vmlinux 0x615911d7 __bitmap_set +EXPORT_SYMBOL vmlinux 0x6169e9f3 tso_build_hdr +EXPORT_SYMBOL vmlinux 0x6185457e scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x6188a420 key_revoke +EXPORT_SYMBOL vmlinux 0x61986b8e __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x619a8678 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bfa814 blkdev_put +EXPORT_SYMBOL vmlinux 0x61e272c9 sha256_final +EXPORT_SYMBOL vmlinux 0x61e90ecb param_set_short +EXPORT_SYMBOL vmlinux 0x61e9b831 __dev_direct_xmit +EXPORT_SYMBOL vmlinux 0x61ea189b fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x61fecfb1 jbd2_journal_put_journal_head +EXPORT_SYMBOL vmlinux 0x6208be5c ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62334977 inode_set_flags +EXPORT_SYMBOL vmlinux 0x62340946 nf_log_unset +EXPORT_SYMBOL vmlinux 0x624c45c1 trace_print_array_seq +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627bc1c4 smp_ctl_set_clear_bit +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x62a2bde2 skb_append +EXPORT_SYMBOL vmlinux 0x62b3bfb4 blk_rq_init +EXPORT_SYMBOL vmlinux 0x62bd1f37 dget_parent +EXPORT_SYMBOL vmlinux 0x62fa9377 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x6306225d skb_queue_head +EXPORT_SYMBOL vmlinux 0x6315c42c zstd_get_params +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631b83eb inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x631d06aa cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x632974e3 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x635264db may_setattr +EXPORT_SYMBOL vmlinux 0x63682b3d inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x636ace72 dma_fence_signal_timestamp +EXPORT_SYMBOL vmlinux 0x636b8c86 __do_once_slow_done +EXPORT_SYMBOL vmlinux 0x636cde9b netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x6371e098 cio_irb +EXPORT_SYMBOL vmlinux 0x6379e4f2 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x637feff8 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x63a58370 flow_action_cookie_destroy +EXPORT_SYMBOL vmlinux 0x63a64df9 __SCK__tp_func_s390_cio_msch +EXPORT_SYMBOL vmlinux 0x63a7c28c bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x63b5a3bd jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x63c4d61f __bitmap_weight +EXPORT_SYMBOL vmlinux 0x63d276a6 ccw_device_start +EXPORT_SYMBOL vmlinux 0x63d6ca5d mdiobus_get_phy +EXPORT_SYMBOL vmlinux 0x63daf408 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x63e2c915 seq_vprintf +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f6c8a0 pci_free_irq +EXPORT_SYMBOL vmlinux 0x640fe140 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x64127b67 bitmap_find_next_zero_area_off +EXPORT_SYMBOL vmlinux 0x6458f1e7 zstd_init_cstream +EXPORT_SYMBOL vmlinux 0x646e20df cpumask_any_and_distribute +EXPORT_SYMBOL vmlinux 0x647cdf4c pci_remove_bus +EXPORT_SYMBOL vmlinux 0x6481ffe0 hsiphash_1u32 +EXPORT_SYMBOL vmlinux 0x648a9938 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x648eb59d gc_inflight_list +EXPORT_SYMBOL vmlinux 0x64a317c9 netdev_change_features +EXPORT_SYMBOL vmlinux 0x64a9c928 default_blu +EXPORT_SYMBOL vmlinux 0x64e3f3cb get_acl +EXPORT_SYMBOL vmlinux 0x64e4858d __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x64edac63 __bforget +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x6514c1e6 flow_get_u32_src +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652032cb mac_pton +EXPORT_SYMBOL vmlinux 0x6520ea68 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x65224b9c __skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x65355dad clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x653e6192 __ClearPageMovable +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x6540dfdf inet_shutdown +EXPORT_SYMBOL vmlinux 0x65598a9a device_match_acpi_dev +EXPORT_SYMBOL vmlinux 0x655be438 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x656d4917 udp_read_sock +EXPORT_SYMBOL vmlinux 0x658ce1a8 xxh64_reset +EXPORT_SYMBOL vmlinux 0x658d6b5b kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x6593f278 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0x659ded26 xfrm_flush_gc +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65ed5e9d pci_release_resource +EXPORT_SYMBOL vmlinux 0x65fdc91d __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x65fea59c __block_write_begin +EXPORT_SYMBOL vmlinux 0x66009d02 page_pool_put_defragged_page +EXPORT_SYMBOL vmlinux 0x66080d98 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x661c134c sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x6623f2e3 vmalloc_array +EXPORT_SYMBOL vmlinux 0x6633681f submit_bh +EXPORT_SYMBOL vmlinux 0x665b04e5 xfrm_replay_seqhi +EXPORT_SYMBOL vmlinux 0x665e2513 zstd_max_clevel +EXPORT_SYMBOL vmlinux 0x66628bf3 ip_tunnel_metadata_cnt +EXPORT_SYMBOL vmlinux 0x66732fac phy_suspend +EXPORT_SYMBOL vmlinux 0x6673f96d xxh32_reset +EXPORT_SYMBOL vmlinux 0x668d80f8 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x66922c87 put_watch_queue +EXPORT_SYMBOL vmlinux 0x66d8760b security_path_mknod +EXPORT_SYMBOL vmlinux 0x66e69897 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0x66fe865b zstd_cstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x672144bd strlcpy +EXPORT_SYMBOL vmlinux 0x6748eaa2 xfrm4_protocol_deregister +EXPORT_SYMBOL vmlinux 0x6749d53f hdmi_vendor_infoframe_init +EXPORT_SYMBOL vmlinux 0x676155ff dotdot_name +EXPORT_SYMBOL vmlinux 0x6762e507 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x67720d36 __find_get_block +EXPORT_SYMBOL vmlinux 0x677e6098 pci_bus_claim_resources +EXPORT_SYMBOL vmlinux 0x678b96ec dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x678c62eb cpu_all_bits +EXPORT_SYMBOL vmlinux 0x67a0ccdb vfs_fileattr_set +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67bc5dca d_genocide +EXPORT_SYMBOL vmlinux 0x67c12a9e __dquot_free_space +EXPORT_SYMBOL vmlinux 0x67cadcc2 ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x67ce597c unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0x67e2272e refcount_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x67e3a88e netif_carrier_off +EXPORT_SYMBOL vmlinux 0x67e44691 flow_block_cb_decref +EXPORT_SYMBOL vmlinux 0x67e83f80 seq_open_private +EXPORT_SYMBOL vmlinux 0x67fddcd2 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x68407683 generic_listxattr +EXPORT_SYMBOL vmlinux 0x684ca3ee phy_connect_direct +EXPORT_SYMBOL vmlinux 0x6886f2ca skb_pull +EXPORT_SYMBOL vmlinux 0x6897ee2b napi_gro_frags +EXPORT_SYMBOL vmlinux 0x689a5d06 bmap +EXPORT_SYMBOL vmlinux 0x68aca85d mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x68ad9f41 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x68c22c0a ipv6_push_frag_opts +EXPORT_SYMBOL vmlinux 0x68c8a789 nexthop_res_grp_activity_update +EXPORT_SYMBOL vmlinux 0x68cb33c0 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x68e8fcd5 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0x68e9a1d6 inet_csk_reqsk_queue_drop_and_put +EXPORT_SYMBOL vmlinux 0x68f2a440 netdev_reset_tc +EXPORT_SYMBOL vmlinux 0x68fad6f0 ccw_device_get_id +EXPORT_SYMBOL vmlinux 0x68fe9e66 __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x6900617a mdiobus_register_device +EXPORT_SYMBOL vmlinux 0x6902cc2f blk_get_queue +EXPORT_SYMBOL vmlinux 0x69097457 crc32_be +EXPORT_SYMBOL vmlinux 0x690c387a __vlan_find_dev_deep_rcu +EXPORT_SYMBOL vmlinux 0x690f9dfa hdmi_infoframe_unpack +EXPORT_SYMBOL vmlinux 0x6917a77e __traceiter_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x691ddc17 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x69275b04 __bread_gfp +EXPORT_SYMBOL vmlinux 0x69668826 netdev_increment_features +EXPORT_SYMBOL vmlinux 0x696a56d7 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x697280ef netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x699536ea jbd2_journal_grab_journal_head +EXPORT_SYMBOL vmlinux 0x69b13d80 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x69b16eab sock_set_rcvbuf +EXPORT_SYMBOL vmlinux 0x69b8561a tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x69d7769c __tracepoint_s390_diagnose +EXPORT_SYMBOL vmlinux 0x6a03751f sgl_free_order +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a08daa0 clear_inode +EXPORT_SYMBOL vmlinux 0x6a18da06 dev_activate +EXPORT_SYMBOL vmlinux 0x6a1bc96a nlmsg_notify +EXPORT_SYMBOL vmlinux 0x6a2d46fd dquot_destroy +EXPORT_SYMBOL vmlinux 0x6a480bd6 single_open_size +EXPORT_SYMBOL vmlinux 0x6a5cb5ee __get_free_pages +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a6e05bf kstrtou8 +EXPORT_SYMBOL vmlinux 0x6aa11aa6 sgl_free_n_order +EXPORT_SYMBOL vmlinux 0x6aa8cfb7 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x6aaa98fb vfs_link +EXPORT_SYMBOL vmlinux 0x6ab23aa1 load_fpu_regs +EXPORT_SYMBOL vmlinux 0x6ac58718 inet_frag_reasm_prepare +EXPORT_SYMBOL vmlinux 0x6ac9b280 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x6ad077b1 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x6ad348e2 sk_capable +EXPORT_SYMBOL vmlinux 0x6ad4b7e7 __dynamic_ibdev_dbg +EXPORT_SYMBOL vmlinux 0x6aeefac4 zlib_deflateReset +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b422b7b inet6_bind +EXPORT_SYMBOL vmlinux 0x6b46e9f0 inet6_csk_route_req +EXPORT_SYMBOL vmlinux 0x6b55acd0 rtnl_lock_killable +EXPORT_SYMBOL vmlinux 0x6b5bbbd4 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x6b5c926d register_key_type +EXPORT_SYMBOL vmlinux 0x6b7dc1a6 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x6b84fc8e devm_request_resource +EXPORT_SYMBOL vmlinux 0x6b853d06 ns_to_kernel_old_timeval +EXPORT_SYMBOL vmlinux 0x6b8bf149 netif_receive_skb_list +EXPORT_SYMBOL vmlinux 0x6b8d2325 s390_epoch_delta_notifier +EXPORT_SYMBOL vmlinux 0x6ba43f92 tc_cleanup_offload_action +EXPORT_SYMBOL vmlinux 0x6bac671b __crc32c_le +EXPORT_SYMBOL vmlinux 0x6bbae18c __sk_mem_raise_allocated +EXPORT_SYMBOL vmlinux 0x6bbef91c vfs_mkdir +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bd38c56 blk_mq_alloc_tag_set +EXPORT_SYMBOL vmlinux 0x6bdb6263 fib6_info_hw_flags_set +EXPORT_SYMBOL vmlinux 0x6bdc7aee security_unix_may_send +EXPORT_SYMBOL vmlinux 0x6bf181c1 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x6bfb5041 skb_flow_dissect_tunnel_info +EXPORT_SYMBOL vmlinux 0x6bfe1653 iucv_message_receive +EXPORT_SYMBOL vmlinux 0x6c041e19 __xa_insert +EXPORT_SYMBOL vmlinux 0x6c11d261 md_update_sb +EXPORT_SYMBOL vmlinux 0x6c1602c1 sk_stream_error +EXPORT_SYMBOL vmlinux 0x6c17721c xfrm_policy_hash_rebuild +EXPORT_SYMBOL vmlinux 0x6c1fa293 path_has_submounts +EXPORT_SYMBOL vmlinux 0x6c257ac0 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0x6c288bc5 bdev_start_io_acct +EXPORT_SYMBOL vmlinux 0x6c3c5820 sg_miter_next +EXPORT_SYMBOL vmlinux 0x6c50054a dentry_path_raw +EXPORT_SYMBOL vmlinux 0x6c55911d jbd2_fc_release_bufs +EXPORT_SYMBOL vmlinux 0x6c56e65c dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x6c58b6c2 _dev_notice +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c64df73 phy_request_interrupt +EXPORT_SYMBOL vmlinux 0x6c70e63f genphy_c37_config_aneg +EXPORT_SYMBOL vmlinux 0x6c7a0323 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x6c9c2088 __mod_lruvec_page_state +EXPORT_SYMBOL vmlinux 0x6c9c8560 folio_wait_private_2_killable +EXPORT_SYMBOL vmlinux 0x6cb46525 netlbl_catmap_walk +EXPORT_SYMBOL vmlinux 0x6ccc34dd sort +EXPORT_SYMBOL vmlinux 0x6ce0f1e3 put_cmsg +EXPORT_SYMBOL vmlinux 0x6cf192df kvrealloc +EXPORT_SYMBOL vmlinux 0x6cf35ffb find_inode_by_ino_rcu +EXPORT_SYMBOL vmlinux 0x6cf9125c inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x6d1ea6ec strlcat +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d60a0d5 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x6d72b084 devm_of_iomap +EXPORT_SYMBOL vmlinux 0x6d7c7dcc bitmap_cut +EXPORT_SYMBOL vmlinux 0x6d87eb71 xfrm6_protocol_register +EXPORT_SYMBOL vmlinux 0x6d890784 bdev_end_io_acct +EXPORT_SYMBOL vmlinux 0x6d91462b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x6daea280 crc32_le_shift +EXPORT_SYMBOL vmlinux 0x6dba7c4d xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x6dba9051 xz_dec_microlzma_end +EXPORT_SYMBOL vmlinux 0x6dbc8b5c tty_do_resize +EXPORT_SYMBOL vmlinux 0x6dbeb723 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x6dcf857f uuid_null +EXPORT_SYMBOL vmlinux 0x6dd672c6 __SetPageMovable +EXPORT_SYMBOL vmlinux 0x6ddbe9a8 __blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x6de7bbcb scsi_vpd_lun_id +EXPORT_SYMBOL vmlinux 0x6ded0d27 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x6df1aaf1 kernel_sigaction +EXPORT_SYMBOL vmlinux 0x6df42dc6 genphy_write_mmd_unsupported +EXPORT_SYMBOL vmlinux 0x6e00b8cb _ebcasc +EXPORT_SYMBOL vmlinux 0x6e041f38 netdev_update_features +EXPORT_SYMBOL vmlinux 0x6e150d9f fs_param_is_string +EXPORT_SYMBOL vmlinux 0x6e2a5b87 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x6e2da197 arch_read_lock_wait +EXPORT_SYMBOL vmlinux 0x6e3260fb phy_write_mmd +EXPORT_SYMBOL vmlinux 0x6e3a16e6 tcf_qevent_validate_change +EXPORT_SYMBOL vmlinux 0x6e4c3473 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e7470bb key_alloc +EXPORT_SYMBOL vmlinux 0x6e9ad290 cpu_have_feature +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea9363b force_sig +EXPORT_SYMBOL vmlinux 0x6ef84303 kvmalloc_node +EXPORT_SYMBOL vmlinux 0x6f156c32 proc_set_size +EXPORT_SYMBOL vmlinux 0x6f20e8a0 nla_strscpy +EXPORT_SYMBOL vmlinux 0x6f2df3ef dma_fence_signal +EXPORT_SYMBOL vmlinux 0x6f53043d wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x6f5ef93d memchr_inv +EXPORT_SYMBOL vmlinux 0x6f659d36 tcp_seq_next +EXPORT_SYMBOL vmlinux 0x6f79375c mempool_free +EXPORT_SYMBOL vmlinux 0x6f81c5a2 param_ops_uint +EXPORT_SYMBOL vmlinux 0x6f84ce38 jbd2_journal_finish_inode_data_buffers +EXPORT_SYMBOL vmlinux 0x6f8efee0 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x6f8f674a bpf_dispatcher_xdp_func +EXPORT_SYMBOL vmlinux 0x6fac9c1c generic_write_end +EXPORT_SYMBOL vmlinux 0x6fb07ef1 skb_eth_pop +EXPORT_SYMBOL vmlinux 0x6fb49676 queue_rcu_work +EXPORT_SYMBOL vmlinux 0x6fb51225 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x6fb9adf2 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x6fc0c58d dma_fence_default_wait +EXPORT_SYMBOL vmlinux 0x6fd9c35a __clzdi2 +EXPORT_SYMBOL vmlinux 0x6fe851dc mini_qdisc_pair_swap +EXPORT_SYMBOL vmlinux 0x70002fe8 siphash_1u32 +EXPORT_SYMBOL vmlinux 0x702d94cf __alloc_skb +EXPORT_SYMBOL vmlinux 0x703247ef kthread_bind +EXPORT_SYMBOL vmlinux 0x7032d571 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x70336943 xa_set_mark +EXPORT_SYMBOL vmlinux 0x703a49a2 bio_endio +EXPORT_SYMBOL vmlinux 0x70828c8e inode_to_bdi +EXPORT_SYMBOL vmlinux 0x70845c6c tso_count_descs +EXPORT_SYMBOL vmlinux 0x70930acb padata_alloc +EXPORT_SYMBOL vmlinux 0x70957489 kobject_add +EXPORT_SYMBOL vmlinux 0x709a06eb kill_anon_super +EXPORT_SYMBOL vmlinux 0x70b723af mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x70f330c5 ip6_output +EXPORT_SYMBOL vmlinux 0x70f81b56 ap_max_msg_size +EXPORT_SYMBOL vmlinux 0x70f9ab8f tcp_set_rcvlowat +EXPORT_SYMBOL vmlinux 0x71003198 xfrm4_protocol_register +EXPORT_SYMBOL vmlinux 0x711e1491 ap_perms +EXPORT_SYMBOL vmlinux 0x7120f9bd LZ4_setStreamDecode +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x712baa98 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x7145aef0 segment_load +EXPORT_SYMBOL vmlinux 0x7150447b param_set_bint +EXPORT_SYMBOL vmlinux 0x715a5ed0 vprintk +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a26609 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x71a42c38 fs_param_is_blob +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71c27b9b scsi_print_sense +EXPORT_SYMBOL vmlinux 0x71c29d7b udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x71d2137d file_fdatawait_range +EXPORT_SYMBOL vmlinux 0x71d3a2c4 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x720a27a7 __register_blkdev +EXPORT_SYMBOL vmlinux 0x72250219 seq_escape_mem +EXPORT_SYMBOL vmlinux 0x72297f25 __alloc_bucket_spinlocks +EXPORT_SYMBOL vmlinux 0x7232840d jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x7242e96d strnchr +EXPORT_SYMBOL vmlinux 0x7249947d follow_down +EXPORT_SYMBOL vmlinux 0x7280f927 tcf_idrinfo_destroy +EXPORT_SYMBOL vmlinux 0x72b2cec0 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x72b9d287 default_grn +EXPORT_SYMBOL vmlinux 0x72d32a4b phy_modify_paged +EXPORT_SYMBOL vmlinux 0x72da70e2 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72eea841 netdev_txq_to_tc +EXPORT_SYMBOL vmlinux 0x7301dcf5 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x7303c29c pci_clear_master +EXPORT_SYMBOL vmlinux 0x730b096c ap_apqn_in_matrix_owned_by_def_drv +EXPORT_SYMBOL vmlinux 0x730d6de2 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x732d4a1d register_fib_notifier +EXPORT_SYMBOL vmlinux 0x732dd326 groups_free +EXPORT_SYMBOL vmlinux 0x7357b813 blk_mq_unique_tag +EXPORT_SYMBOL vmlinux 0x7357fc1b tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x73629cb9 netdev_adjacent_change_abort +EXPORT_SYMBOL vmlinux 0x7372941c fs_param_is_path +EXPORT_SYMBOL vmlinux 0x737e8085 skb_coalesce_rx_frag +EXPORT_SYMBOL vmlinux 0x7380dffa argv_split +EXPORT_SYMBOL vmlinux 0x7389706a __memset16 +EXPORT_SYMBOL vmlinux 0x738bcb9b arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x73999f39 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x7399c837 __skb_recv_udp +EXPORT_SYMBOL vmlinux 0x739a679a skb_pull_data +EXPORT_SYMBOL vmlinux 0x739fd00f __SCK__tp_func_module_get +EXPORT_SYMBOL vmlinux 0x73a3d22a fget +EXPORT_SYMBOL vmlinux 0x73abb180 alloc_contig_range +EXPORT_SYMBOL vmlinux 0x73b8c0a9 xfrm_input_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x73bf20c6 _ascebc +EXPORT_SYMBOL vmlinux 0x73f330bb md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x74093c01 sock_edemux +EXPORT_SYMBOL vmlinux 0x7410aba2 strreplace +EXPORT_SYMBOL vmlinux 0x74162d99 __netif_schedule +EXPORT_SYMBOL vmlinux 0x741f70a9 debug_stop_all +EXPORT_SYMBOL vmlinux 0x742578a5 wait_for_random_bytes +EXPORT_SYMBOL vmlinux 0x7429e20c kstrtos8 +EXPORT_SYMBOL vmlinux 0x742a93f5 kobject_put +EXPORT_SYMBOL vmlinux 0x7453d3e8 security_release_secctx +EXPORT_SYMBOL vmlinux 0x7459c759 __fib6_flush_trees +EXPORT_SYMBOL vmlinux 0x745f316f param_set_int +EXPORT_SYMBOL vmlinux 0x746c64d0 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x746e4f59 tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x7470b01a tsb_init +EXPORT_SYMBOL vmlinux 0x747363a7 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x7483dc59 pci_dev_present +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c782d9 con_is_bound +EXPORT_SYMBOL vmlinux 0x74d858a7 on_each_cpu_cond_mask +EXPORT_SYMBOL vmlinux 0x74d8afc7 sock_set_sndtimeo +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74ffeb8b commit_creds +EXPORT_SYMBOL vmlinux 0x750cd677 unregister_md_personality +EXPORT_SYMBOL vmlinux 0x7516d149 input_allocate_device +EXPORT_SYMBOL vmlinux 0x752f42bd __put_page +EXPORT_SYMBOL vmlinux 0x756726c9 set_cached_acl +EXPORT_SYMBOL vmlinux 0x759a0416 __memset64 +EXPORT_SYMBOL vmlinux 0x75b462ff md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x75b9cf29 hsch +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75ca61bc jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x75d0deb9 nsecs_to_jiffies64 +EXPORT_SYMBOL vmlinux 0x75d499dd vmcore_add_device_dump +EXPORT_SYMBOL vmlinux 0x75d66929 vfs_iocb_iter_write +EXPORT_SYMBOL vmlinux 0x75ebed01 generic_pipe_buf_try_steal +EXPORT_SYMBOL vmlinux 0x7603fadf netdev_offload_xstats_get +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760b34b8 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x760ce7f1 sock_no_bind +EXPORT_SYMBOL vmlinux 0x7618af39 hdmi_infoframe_check +EXPORT_SYMBOL vmlinux 0x7624249e dim_park_tired +EXPORT_SYMBOL vmlinux 0x76426845 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764de605 param_set_byte +EXPORT_SYMBOL vmlinux 0x765f1191 clear_nlink +EXPORT_SYMBOL vmlinux 0x7665f9b9 dec_node_page_state +EXPORT_SYMBOL vmlinux 0x76679b0c config_item_set_name +EXPORT_SYMBOL vmlinux 0x766a0927 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x767721ec alloc_file_pseudo +EXPORT_SYMBOL vmlinux 0x76800e1b vma_alloc_folio +EXPORT_SYMBOL vmlinux 0x7682ba4e __copy_overflow +EXPORT_SYMBOL vmlinux 0x769f6e64 errseq_check +EXPORT_SYMBOL vmlinux 0x76aa3201 trace_event_printf +EXPORT_SYMBOL vmlinux 0x76b6639b xfrm6_protocol_deregister +EXPORT_SYMBOL vmlinux 0x76b86b70 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x77046c3e xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x772020fe __netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x77247c5e ap_bus_force_rescan +EXPORT_SYMBOL vmlinux 0x772f0faf inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x7732159c free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x77358855 iomem_resource +EXPORT_SYMBOL vmlinux 0x773e7ada cdrom_open +EXPORT_SYMBOL vmlinux 0x7746ace6 ip6_xmit +EXPORT_SYMBOL vmlinux 0x774ab4b4 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x77640f05 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x7779de8d d_splice_alias +EXPORT_SYMBOL vmlinux 0x778948b9 genl_register_family +EXPORT_SYMBOL vmlinux 0x77a23ca5 fs_context_for_reconfigure +EXPORT_SYMBOL vmlinux 0x77a615ba vm_node_stat +EXPORT_SYMBOL vmlinux 0x77a966b8 empty_aops +EXPORT_SYMBOL vmlinux 0x77ae0435 simple_lookup +EXPORT_SYMBOL vmlinux 0x77bba121 fs_param_is_u64 +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77c0b17a jbd2_journal_inode_ranged_write +EXPORT_SYMBOL vmlinux 0x77cbe84d get_cached_acl_rcu +EXPORT_SYMBOL vmlinux 0x77d177fd dquot_load_quota_sb +EXPORT_SYMBOL vmlinux 0x77e55d36 vm_mmap +EXPORT_SYMBOL vmlinux 0x77e91227 qdisc_put_unlocked +EXPORT_SYMBOL vmlinux 0x77e9eb37 aes_encrypt +EXPORT_SYMBOL vmlinux 0x78018d1c __sk_receive_skb +EXPORT_SYMBOL vmlinux 0x7805d1a0 __put_cred +EXPORT_SYMBOL vmlinux 0x7807f0f8 schedule_timeout_idle +EXPORT_SYMBOL vmlinux 0x7819aea9 __kmalloc_node +EXPORT_SYMBOL vmlinux 0x7829c0d7 blk_mq_alloc_disk_for_queue +EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif +EXPORT_SYMBOL vmlinux 0x78569adf ida_alloc_range +EXPORT_SYMBOL vmlinux 0x78751528 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x78a16f48 aes_decrypt +EXPORT_SYMBOL vmlinux 0x78b887ed vsprintf +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f1475a __traceiter_s390_cio_rsch +EXPORT_SYMBOL vmlinux 0x78fcbfeb dm_register_target +EXPORT_SYMBOL vmlinux 0x7920ae39 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x7927342d kset_register +EXPORT_SYMBOL vmlinux 0x79478ff7 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x794bfe8d skb_trim +EXPORT_SYMBOL vmlinux 0x794d204f phy_support_asym_pause +EXPORT_SYMBOL vmlinux 0x7955915e register_framebuffer +EXPORT_SYMBOL vmlinux 0x795c3ad0 vm_insert_page +EXPORT_SYMBOL vmlinux 0x7961e000 tty_port_init +EXPORT_SYMBOL vmlinux 0x7970ef55 swake_up_locked +EXPORT_SYMBOL vmlinux 0x797ac108 ccw_device_set_options +EXPORT_SYMBOL vmlinux 0x797fe49c scsi_register_driver +EXPORT_SYMBOL vmlinux 0x79816357 dma_fence_wait_timeout +EXPORT_SYMBOL vmlinux 0x798ce604 netdev_set_sb_channel +EXPORT_SYMBOL vmlinux 0x79cd6498 down_write_killable +EXPORT_SYMBOL vmlinux 0x7a09a064 seg6_hmac_compute +EXPORT_SYMBOL vmlinux 0x7a100f46 phy_attached_info +EXPORT_SYMBOL vmlinux 0x7a105134 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x7a121986 vfs_copy_file_range +EXPORT_SYMBOL vmlinux 0x7a1bcd59 gf128mul_x8_ble +EXPORT_SYMBOL vmlinux 0x7a2ff57e security_current_getsecid_subj +EXPORT_SYMBOL vmlinux 0x7a3992bd scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x7a3eef72 sync_blockdev_range +EXPORT_SYMBOL vmlinux 0x7a499741 folio_clear_dirty_for_io +EXPORT_SYMBOL vmlinux 0x7a53a06d flow_indr_dev_exists +EXPORT_SYMBOL vmlinux 0x7a782f69 neigh_lookup +EXPORT_SYMBOL vmlinux 0x7a7d60e6 iucv_register +EXPORT_SYMBOL vmlinux 0x7a95e5ae do_settimeofday64 +EXPORT_SYMBOL vmlinux 0x7aa1756e kvfree +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7aba36f3 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x7abca3b6 _dev_printk +EXPORT_SYMBOL vmlinux 0x7ac59bf7 __hw_addr_unsync_dev +EXPORT_SYMBOL vmlinux 0x7ad050b9 qid_lt +EXPORT_SYMBOL vmlinux 0x7ad7ec50 nf_log_register +EXPORT_SYMBOL vmlinux 0x7adc0fbf rb_replace_node_rcu +EXPORT_SYMBOL vmlinux 0x7afba9fe ww_mutex_trylock +EXPORT_SYMBOL vmlinux 0x7afc796f open_with_fake_path +EXPORT_SYMBOL vmlinux 0x7b20e8d9 release_sock +EXPORT_SYMBOL vmlinux 0x7b37d4a7 _find_first_zero_bit +EXPORT_SYMBOL vmlinux 0x7b3b959f phy_start +EXPORT_SYMBOL vmlinux 0x7b3c4aed flow_rule_match_ports +EXPORT_SYMBOL vmlinux 0x7b5a7137 strncat +EXPORT_SYMBOL vmlinux 0x7b5b0134 ipv6_dev_mc_inc +EXPORT_SYMBOL vmlinux 0x7b5b8f31 sha256_update +EXPORT_SYMBOL vmlinux 0x7b812d4b datagram_poll +EXPORT_SYMBOL vmlinux 0x7b850d66 netdev_crit +EXPORT_SYMBOL vmlinux 0x7baffe15 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x7bb5fd41 fsync_bdev +EXPORT_SYMBOL vmlinux 0x7bb7340c tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x7bbc3492 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x7bbccd05 nr_node_ids +EXPORT_SYMBOL vmlinux 0x7bd7dfd0 ap_test_config_usage_domain +EXPORT_SYMBOL vmlinux 0x7bdeb5ec napi_consume_skb +EXPORT_SYMBOL vmlinux 0x7be2ec0f copy_page_from_iter +EXPORT_SYMBOL vmlinux 0x7bf8a554 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x7c04d187 seq_hex_dump +EXPORT_SYMBOL vmlinux 0x7c14f503 gen_pool_dma_alloc +EXPORT_SYMBOL vmlinux 0x7c173634 __bitmap_complement +EXPORT_SYMBOL vmlinux 0x7c17dae2 simple_fill_super +EXPORT_SYMBOL vmlinux 0x7c2130ae pci_iounmap +EXPORT_SYMBOL vmlinux 0x7c5d4a3a sclp_reactivate +EXPORT_SYMBOL vmlinux 0x7c5e9aa2 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x7c7a26ea tcp_mmap +EXPORT_SYMBOL vmlinux 0x7c860902 iov_iter_alignment +EXPORT_SYMBOL vmlinux 0x7c8a13ea security_path_mkdir +EXPORT_SYMBOL vmlinux 0x7c9ca58f __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x7cb5c89e dquot_alloc +EXPORT_SYMBOL vmlinux 0x7cbf0b0d tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x7ce18c9f from_kqid +EXPORT_SYMBOL vmlinux 0x7ceb5bd5 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x7cfe368d net_dim_get_def_tx_moderation +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d49ef3e iov_iter_init +EXPORT_SYMBOL vmlinux 0x7d4b176a netlbl_catmap_setbit +EXPORT_SYMBOL vmlinux 0x7d522361 mempool_create_node +EXPORT_SYMBOL vmlinux 0x7d69564e get_bitmap_from_slot +EXPORT_SYMBOL vmlinux 0x7d6c7303 pci_read_vpd_any +EXPORT_SYMBOL vmlinux 0x7d7f2799 try_module_get +EXPORT_SYMBOL vmlinux 0x7d8766fd clocksource_unregister +EXPORT_SYMBOL vmlinux 0x7da4aace register_mii_timestamper +EXPORT_SYMBOL vmlinux 0x7da700fc phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x7daece67 quota_send_warning +EXPORT_SYMBOL vmlinux 0x7dc5ffa7 tc_skb_ext_tc_disable +EXPORT_SYMBOL vmlinux 0x7dec65ff mempool_init +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7df6f26e fifo_set_limit +EXPORT_SYMBOL vmlinux 0x7e0cc440 flow_rule_match_enc_ports +EXPORT_SYMBOL vmlinux 0x7e151129 __neigh_create +EXPORT_SYMBOL vmlinux 0x7e1d2516 xfrm_state_lookup_byspi +EXPORT_SYMBOL vmlinux 0x7e3191f6 try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x7e5e4996 tcp_sock_set_user_timeout +EXPORT_SYMBOL vmlinux 0x7e705ddc shmem_aops +EXPORT_SYMBOL vmlinux 0x7e71ec2b dma_fence_allocate_private_stub +EXPORT_SYMBOL vmlinux 0x7e821ba1 crc_ccitt +EXPORT_SYMBOL vmlinux 0x7e91c4ac dst_release_immediate +EXPORT_SYMBOL vmlinux 0x7ea5ac64 dev_set_alias +EXPORT_SYMBOL vmlinux 0x7eab83f1 unlock_two_nondirectories +EXPORT_SYMBOL vmlinux 0x7eb6e525 xsk_tx_completed +EXPORT_SYMBOL vmlinux 0x7ecad787 module_put +EXPORT_SYMBOL vmlinux 0x7ef4e408 tcp_enter_cwr +EXPORT_SYMBOL vmlinux 0x7f02188f __msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x7f03b6a9 crc_ccitt_table +EXPORT_SYMBOL vmlinux 0x7f03eb52 tcp_filter +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f4c565b add_wait_queue +EXPORT_SYMBOL vmlinux 0x7f52071a net_dim +EXPORT_SYMBOL vmlinux 0x7f59d940 udp_set_csum +EXPORT_SYMBOL vmlinux 0x7f5b4fe4 sg_free_table +EXPORT_SYMBOL vmlinux 0x7f659bd4 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x7f683235 unload_nls +EXPORT_SYMBOL vmlinux 0x7f748089 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x7f775920 __cpuhp_setup_state +EXPORT_SYMBOL vmlinux 0x7f7d9598 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x7f7ea33d pci_disable_msix +EXPORT_SYMBOL vmlinux 0x7f7f7bb4 irq_poll_disable +EXPORT_SYMBOL vmlinux 0x7f957121 dma_fence_chain_walk +EXPORT_SYMBOL vmlinux 0x7f9ab385 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x7f9ab6c1 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x7fda9e00 blk_mq_destroy_queue +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe510d0 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x8025bf40 truncate_setsize +EXPORT_SYMBOL vmlinux 0x80318b30 sg_copy_buffer +EXPORT_SYMBOL vmlinux 0x803ddbb6 __posix_acl_create +EXPORT_SYMBOL vmlinux 0x804fd662 dma_fence_wait_any_timeout +EXPORT_SYMBOL vmlinux 0x8053525a sclp_register +EXPORT_SYMBOL vmlinux 0x805485ab __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x80587ef0 genphy_aneg_done +EXPORT_SYMBOL vmlinux 0x806076f0 phy_set_max_speed +EXPORT_SYMBOL vmlinux 0x806f2c92 tcw_set_tccb +EXPORT_SYMBOL vmlinux 0x807b6d5c simple_pin_fs +EXPORT_SYMBOL vmlinux 0x808ad6c1 bio_reset +EXPORT_SYMBOL vmlinux 0x80a5c079 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x80a716c0 skb_tunnel_check_pmtu +EXPORT_SYMBOL vmlinux 0x80c18345 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d7f717 sg_zero_buffer +EXPORT_SYMBOL vmlinux 0x80e5f86f fscrypt_fname_alloc_buffer +EXPORT_SYMBOL vmlinux 0x80f6eece ptep_xchg_lazy +EXPORT_SYMBOL vmlinux 0x80fffb69 flow_rule_match_eth_addrs +EXPORT_SYMBOL vmlinux 0x810bef7e sg_free_append_table +EXPORT_SYMBOL vmlinux 0x8112b3d2 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x81164daa __SCK__tp_func_s390_cio_rsch +EXPORT_SYMBOL vmlinux 0x8128c039 smsg_register_callback +EXPORT_SYMBOL vmlinux 0x812f78eb xxh64_update +EXPORT_SYMBOL vmlinux 0x813114e2 tty_unlock +EXPORT_SYMBOL vmlinux 0x8136d35b send_sig_mceerr +EXPORT_SYMBOL vmlinux 0x814bcaf8 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x8159fd94 fwnode_iomap +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x816c6a6e pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0x818416e1 scsi_set_sense_information +EXPORT_SYMBOL vmlinux 0x81844c9d vmemdup_user +EXPORT_SYMBOL vmlinux 0x81a1eb59 utf8_unload +EXPORT_SYMBOL vmlinux 0x81a58001 mempool_init_node +EXPORT_SYMBOL vmlinux 0x81b433f2 down +EXPORT_SYMBOL vmlinux 0x81bd3a0d pci_resize_resource +EXPORT_SYMBOL vmlinux 0x81c521ce proc_dobool +EXPORT_SYMBOL vmlinux 0x81cb08a2 xfrm_trans_queue_net +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81dd15db tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x822539c3 tty_vhangup +EXPORT_SYMBOL vmlinux 0x822f67c3 cont_write_begin +EXPORT_SYMBOL vmlinux 0x824fb883 nf_register_net_hook +EXPORT_SYMBOL vmlinux 0x8281f0f4 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x828af1dc dma_fence_chain_init +EXPORT_SYMBOL vmlinux 0x829af46b tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x82b3603c inet_recvmsg +EXPORT_SYMBOL vmlinux 0x82b86706 scsi_alloc_sgtables +EXPORT_SYMBOL vmlinux 0x82c2f005 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x82c87ad5 nr_online_nodes +EXPORT_SYMBOL vmlinux 0x82d68279 sock_no_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x82dbf24c ipv6_dev_find +EXPORT_SYMBOL vmlinux 0x82e77edc vfs_clone_file_range +EXPORT_SYMBOL vmlinux 0x833391fb would_dump +EXPORT_SYMBOL vmlinux 0x8340311d register_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x83425cd4 mdio_find_bus +EXPORT_SYMBOL vmlinux 0x83538ba9 __cpu_dying_mask +EXPORT_SYMBOL vmlinux 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL vmlinux 0x8364ad91 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x836d8ea0 param_get_long +EXPORT_SYMBOL vmlinux 0x8378ff20 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x837b7b09 __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0x837e3515 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x838d2bc8 siphash_3u32 +EXPORT_SYMBOL vmlinux 0x838de657 flow_keys_basic_dissector +EXPORT_SYMBOL vmlinux 0x83ac5c67 tcf_idr_cleanup +EXPORT_SYMBOL vmlinux 0x83bdb3e1 gen_pool_dma_zalloc +EXPORT_SYMBOL vmlinux 0x83cadff1 napi_complete_done +EXPORT_SYMBOL vmlinux 0x83de3aa4 io_uring_get_socket +EXPORT_SYMBOL vmlinux 0x83df572e debug_sprintf_view +EXPORT_SYMBOL vmlinux 0x83f6f70d param_ops_ushort +EXPORT_SYMBOL vmlinux 0x840342c6 sgl_free +EXPORT_SYMBOL vmlinux 0x841cc2f6 dma_fence_remove_callback +EXPORT_SYMBOL vmlinux 0x842d65e5 __skb_try_recv_datagram +EXPORT_SYMBOL vmlinux 0x8434a604 udp_ioctl +EXPORT_SYMBOL vmlinux 0x84563a08 folio_wait_bit +EXPORT_SYMBOL vmlinux 0x84589dcb ip6mr_rule_default +EXPORT_SYMBOL vmlinux 0x84654986 mdio_device_free +EXPORT_SYMBOL vmlinux 0x8473738f sock_queue_rcv_skb_reason +EXPORT_SYMBOL vmlinux 0x8499b061 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x84a0c33d ip_getsockopt +EXPORT_SYMBOL vmlinux 0x84a0ca4d bitmap_zalloc_node +EXPORT_SYMBOL vmlinux 0x84a5b65b reuseport_has_conns_set +EXPORT_SYMBOL vmlinux 0x84c03e9a rtnl_nla_parse_ifla +EXPORT_SYMBOL vmlinux 0x84c1ad08 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x84c8d95c padata_do_serial +EXPORT_SYMBOL vmlinux 0x84d4c8cc crc16 +EXPORT_SYMBOL vmlinux 0x84d9231a skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x84e54a3a vfs_iter_read +EXPORT_SYMBOL vmlinux 0x84ec937a show_init_ipc_ns +EXPORT_SYMBOL vmlinux 0x84f263ed dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x8551dea1 del_gendisk +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85a89bef register_netdevice +EXPORT_SYMBOL vmlinux 0x85abc85f strncmp +EXPORT_SYMBOL vmlinux 0x85bd1608 __request_region +EXPORT_SYMBOL vmlinux 0x85bd36b4 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x85c70ef5 folio_unlock +EXPORT_SYMBOL vmlinux 0x85d14264 trace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85ebd8f9 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x85efc7e0 zero_pfn +EXPORT_SYMBOL vmlinux 0x85f5dad6 block_read_full_folio +EXPORT_SYMBOL vmlinux 0x85f9ddb3 prepare_to_swait_event +EXPORT_SYMBOL vmlinux 0x860efa2c mutex_lock +EXPORT_SYMBOL vmlinux 0x86216acd __xa_set_mark +EXPORT_SYMBOL vmlinux 0x862a5318 inet_pton_with_scope +EXPORT_SYMBOL vmlinux 0x862c8035 bitmap_alloc_node +EXPORT_SYMBOL vmlinux 0x863a276a color_table +EXPORT_SYMBOL vmlinux 0x8647e28a vm_map_pages +EXPORT_SYMBOL vmlinux 0x866a62b2 gnet_stats_basic_sync_init +EXPORT_SYMBOL vmlinux 0x8676db46 get_random_bytes +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x868bde1d down_write_trylock +EXPORT_SYMBOL vmlinux 0x86998690 skb_expand_head +EXPORT_SYMBOL vmlinux 0x86a34793 _copy_to_user_key +EXPORT_SYMBOL vmlinux 0x86a4832c blk_integrity_register +EXPORT_SYMBOL vmlinux 0x86a8fb71 mutex_unlock +EXPORT_SYMBOL vmlinux 0x86bdbe46 __tracepoint_s390_cio_chsc +EXPORT_SYMBOL vmlinux 0x86cb39f6 param_ops_string +EXPORT_SYMBOL vmlinux 0x86d2335e mempool_create +EXPORT_SYMBOL vmlinux 0x86d52ba5 lookup_constant +EXPORT_SYMBOL vmlinux 0x86dd708d tc_skb_ext_tc_enable +EXPORT_SYMBOL vmlinux 0x86e2c3bd skb_seq_read +EXPORT_SYMBOL vmlinux 0x86e5f1da block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8729fc30 keyring_alloc +EXPORT_SYMBOL vmlinux 0x872d01a1 genphy_read_abilities +EXPORT_SYMBOL vmlinux 0x874addc0 phy_ethtool_get_stats +EXPORT_SYMBOL vmlinux 0x874dd26a follow_up +EXPORT_SYMBOL vmlinux 0x87532703 raw3270_start_irq +EXPORT_SYMBOL vmlinux 0x8754c8be dcb_getapp +EXPORT_SYMBOL vmlinux 0x875bdb38 d_invalidate +EXPORT_SYMBOL vmlinux 0x8761c87b rps_needed +EXPORT_SYMBOL vmlinux 0x87733a41 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x877e7798 debug_hex_ascii_view +EXPORT_SYMBOL vmlinux 0x87a21cb3 __ubsan_handle_out_of_bounds +EXPORT_SYMBOL vmlinux 0x87a5cc03 dev_deactivate +EXPORT_SYMBOL vmlinux 0x87aa00e0 vmf_insert_pfn +EXPORT_SYMBOL vmlinux 0x87acbf44 _dev_crit +EXPORT_SYMBOL vmlinux 0x87b8798d sg_next +EXPORT_SYMBOL vmlinux 0x87df2c32 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x87efa5b3 phy_ethtool_get_sset_count +EXPORT_SYMBOL vmlinux 0x87f7de06 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x87fcab48 hex2bin +EXPORT_SYMBOL vmlinux 0x88029e45 debug_unregister +EXPORT_SYMBOL vmlinux 0x880bfdc7 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x8810754a _find_first_bit +EXPORT_SYMBOL vmlinux 0x882edd12 file_check_and_advance_wb_err +EXPORT_SYMBOL vmlinux 0x88300dce pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x8833bc7e __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x8845621b __destroy_inode +EXPORT_SYMBOL vmlinux 0x8845d89a __kmalloc_track_caller +EXPORT_SYMBOL vmlinux 0x88548ae4 generic_file_llseek +EXPORT_SYMBOL vmlinux 0x8866e4a9 param_get_byte +EXPORT_SYMBOL vmlinux 0x886989dc vfs_dedupe_file_range_one +EXPORT_SYMBOL vmlinux 0x886ae1b6 generic_remap_file_range_prep +EXPORT_SYMBOL vmlinux 0x887e1860 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x887efc6f __traceiter_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0x88822d38 unregister_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0x888e4911 dma_set_mask +EXPORT_SYMBOL vmlinux 0x88999894 utf8_validate +EXPORT_SYMBOL vmlinux 0x88a94a77 dev_mc_flush +EXPORT_SYMBOL vmlinux 0x88b15123 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x88b28881 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x88c880b9 set_groups +EXPORT_SYMBOL vmlinux 0x88d0757d filemap_map_pages +EXPORT_SYMBOL vmlinux 0x88db9f48 __check_object_size +EXPORT_SYMBOL vmlinux 0x88e1d0f0 page_frag_free +EXPORT_SYMBOL vmlinux 0x88e39859 __dev_get_by_flags +EXPORT_SYMBOL vmlinux 0x88e40dcf nf_ct_get_tuple_skb +EXPORT_SYMBOL vmlinux 0x88e52cdb idr_for_each +EXPORT_SYMBOL vmlinux 0x89082ec6 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x891638db input_set_max_poll_interval +EXPORT_SYMBOL vmlinux 0x8939526a udp_disconnect +EXPORT_SYMBOL vmlinux 0x8951e362 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x895b5e8b fault_in_subpage_writeable +EXPORT_SYMBOL vmlinux 0x89621b96 __genradix_iter_peek +EXPORT_SYMBOL vmlinux 0x8966cdc6 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x89673dca noop_dirty_folio +EXPORT_SYMBOL vmlinux 0x896f2a56 set_anon_super_fc +EXPORT_SYMBOL vmlinux 0x8983266b iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x898b19cc utf8_strncasecmp +EXPORT_SYMBOL vmlinux 0x899ba9cf phy_detach +EXPORT_SYMBOL vmlinux 0x89a09837 ioremap_prot +EXPORT_SYMBOL vmlinux 0x89a5f332 phy_find_first +EXPORT_SYMBOL vmlinux 0x89a72572 __tracepoint_s390_cio_hsch +EXPORT_SYMBOL vmlinux 0x89a7d839 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x89bc0899 redraw_screen +EXPORT_SYMBOL vmlinux 0x89cf605b setattr_prepare +EXPORT_SYMBOL vmlinux 0x89dd1a23 pci_write_vpd +EXPORT_SYMBOL vmlinux 0x89f36a4b gnet_stats_copy_basic_hw +EXPORT_SYMBOL vmlinux 0x89fc544c msi_desc_to_pci_dev +EXPORT_SYMBOL vmlinux 0x8a1e82d7 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x8a215a9d mount_nodev +EXPORT_SYMBOL vmlinux 0x8a4f97eb block_write_end +EXPORT_SYMBOL vmlinux 0x8a65338b percpu_counter_sync +EXPORT_SYMBOL vmlinux 0x8a7094ba vm_brk_flags +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a7f40b9 nf_hook_slow_list +EXPORT_SYMBOL vmlinux 0x8a8bc311 devm_memremap +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aa9e206 qdisc_offload_graft_helper +EXPORT_SYMBOL vmlinux 0x8ac3334b net_dim_get_def_rx_moderation +EXPORT_SYMBOL vmlinux 0x8ac9a7cc vmf_insert_pfn_prot +EXPORT_SYMBOL vmlinux 0x8acba2a8 rt_mutex_base_init +EXPORT_SYMBOL vmlinux 0x8add3c2d flow_rule_match_ct +EXPORT_SYMBOL vmlinux 0x8ae7d40f rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x8b0088d1 LZ4_decompress_safe_usingDict +EXPORT_SYMBOL vmlinux 0x8b07d1ad sg_miter_stop +EXPORT_SYMBOL vmlinux 0x8b3af9ae km_policy_expired +EXPORT_SYMBOL vmlinux 0x8b55fd4f hdmi_spd_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b634242 vfs_iocb_iter_read +EXPORT_SYMBOL vmlinux 0x8b649625 neigh_proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x8b8059bd in_group_p +EXPORT_SYMBOL vmlinux 0x8b8fa1b8 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x8b910be2 errseq_sample +EXPORT_SYMBOL vmlinux 0x8bbc9dcf ip_cmsg_recv_offset +EXPORT_SYMBOL vmlinux 0x8bc89dff super_setup_bdi +EXPORT_SYMBOL vmlinux 0x8be45204 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x8bea172f rw_verify_area +EXPORT_SYMBOL vmlinux 0x8bf4fb0b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x8bf77a32 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x8c045303 get_tree_single_reconf +EXPORT_SYMBOL vmlinux 0x8c0f9151 mdiobus_is_registered_device +EXPORT_SYMBOL vmlinux 0x8c17ab1b xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x8c50975f pci_write_config_dword +EXPORT_SYMBOL vmlinux 0x8c6592fc hdmi_avi_infoframe_pack_only +EXPORT_SYMBOL vmlinux 0x8c816c50 override_creds +EXPORT_SYMBOL vmlinux 0x8c8569cb kstrtoint +EXPORT_SYMBOL vmlinux 0x8c875be0 tcw_init +EXPORT_SYMBOL vmlinux 0x8cae44de jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x8caf9305 uuid_is_valid +EXPORT_SYMBOL vmlinux 0x8cb062a8 iucv_message_reply +EXPORT_SYMBOL vmlinux 0x8cbf5e9d netdev_alert +EXPORT_SYMBOL vmlinux 0x8ccb72dc registered_fb +EXPORT_SYMBOL vmlinux 0x8cd9b33c skb_ext_add +EXPORT_SYMBOL vmlinux 0x8cdfc002 sclp_unregister +EXPORT_SYMBOL vmlinux 0x8ce448d9 fb_class +EXPORT_SYMBOL vmlinux 0x8cef78c1 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x8d0fd4ef idr_replace +EXPORT_SYMBOL vmlinux 0x8d1c2391 hmm_range_fault +EXPORT_SYMBOL vmlinux 0x8d230c67 netdev_offload_xstats_push_delta +EXPORT_SYMBOL vmlinux 0x8d44d20b dm_unregister_target +EXPORT_SYMBOL vmlinux 0x8d55bb8a qid_eq +EXPORT_SYMBOL vmlinux 0x8d63a28d input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x8d681790 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x8d73278e hex_asc_upper +EXPORT_SYMBOL vmlinux 0x8d93fd02 pci_restore_state +EXPORT_SYMBOL vmlinux 0x8d95c379 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x8da3b205 xfrm_lookup_with_ifid +EXPORT_SYMBOL vmlinux 0x8dad63df __xfrm_dst_lookup +EXPORT_SYMBOL vmlinux 0x8db13b1a try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x8db7d895 folio_wait_bit_killable +EXPORT_SYMBOL vmlinux 0x8dbb20b5 __skb_pad +EXPORT_SYMBOL vmlinux 0x8dc2d3dd blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x8dc425bb param_set_uint +EXPORT_SYMBOL vmlinux 0x8dcabfe3 ip6tun_encaps +EXPORT_SYMBOL vmlinux 0x8ddd8aad schedule_timeout +EXPORT_SYMBOL vmlinux 0x8ddef1e4 fqdir_init +EXPORT_SYMBOL vmlinux 0x8df9dd10 guid_null +EXPORT_SYMBOL vmlinux 0x8e22ec46 tcp_v4_mtu_reduced +EXPORT_SYMBOL vmlinux 0x8e241b73 crypto_sha1_finup +EXPORT_SYMBOL vmlinux 0x8e44db1e fb_pan_display +EXPORT_SYMBOL vmlinux 0x8e6b206e in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x8e73ebce proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x8e929cc0 blk_mq_stop_hw_queue +EXPORT_SYMBOL vmlinux 0x8e93bd24 security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x8eb050d7 param_get_ushort +EXPORT_SYMBOL vmlinux 0x8ec39417 configfs_depend_item_unlocked +EXPORT_SYMBOL vmlinux 0x8ecea520 watchdog_register_governor +EXPORT_SYMBOL vmlinux 0x8edf3cef add_watch_to_object +EXPORT_SYMBOL vmlinux 0x8f124b7f dev_mc_sync +EXPORT_SYMBOL vmlinux 0x8f12e77d pci_request_regions +EXPORT_SYMBOL vmlinux 0x8f1692bc generic_permission +EXPORT_SYMBOL vmlinux 0x8f1ee591 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x8f27a168 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x8f2e8039 zstd_find_frame_compressed_size +EXPORT_SYMBOL vmlinux 0x8f2f15f8 open_exec +EXPORT_SYMBOL vmlinux 0x8f641888 init_pseudo +EXPORT_SYMBOL vmlinux 0x8f96faf8 __fput_sync +EXPORT_SYMBOL vmlinux 0x8f996a30 ethtool_convert_legacy_u32_to_link_mode +EXPORT_SYMBOL vmlinux 0x8fa809a1 set_guest_storage_key +EXPORT_SYMBOL vmlinux 0x8fcba77b genphy_c37_read_status +EXPORT_SYMBOL vmlinux 0x8fd0849b utf8_normalize +EXPORT_SYMBOL vmlinux 0x8fd5fc62 dma_pool_create +EXPORT_SYMBOL vmlinux 0x8fde2ee1 blk_mq_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x8fed5f07 tcp_ld_RTO_revert +EXPORT_SYMBOL vmlinux 0x8ff08e8f thaw_super +EXPORT_SYMBOL vmlinux 0x8ff89ed0 seg6_hmac_exit +EXPORT_SYMBOL vmlinux 0x8ff94a1b ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x90006be6 dm_kcopyd_client_flush +EXPORT_SYMBOL vmlinux 0x90057b89 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x90162cad phy_config_aneg +EXPORT_SYMBOL vmlinux 0x90514d97 fscrypt_decrypt_bio +EXPORT_SYMBOL vmlinux 0x9051ccc5 dcb_ieee_getapp_default_prio_mask +EXPORT_SYMBOL vmlinux 0x9052bdfc kernel_accept +EXPORT_SYMBOL vmlinux 0x905401e9 lru_cache_add +EXPORT_SYMBOL vmlinux 0x907faabf zstd_compress_stream +EXPORT_SYMBOL vmlinux 0x90aac3eb md_done_sync +EXPORT_SYMBOL vmlinux 0x90aada8e eth_get_headlen +EXPORT_SYMBOL vmlinux 0x90abb542 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x90ac47a0 vfs_get_link +EXPORT_SYMBOL vmlinux 0x90af749e dmam_alloc_attrs +EXPORT_SYMBOL vmlinux 0x90b584ce pci_disable_ptm +EXPORT_SYMBOL vmlinux 0x90ba912b __nla_put_64bit +EXPORT_SYMBOL vmlinux 0x90be1e82 configfs_unregister_group +EXPORT_SYMBOL vmlinux 0x90c21ac8 request_partial_firmware_into_buf +EXPORT_SYMBOL vmlinux 0x90cdfac8 netdev_name_in_use +EXPORT_SYMBOL vmlinux 0x910c7a0c alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x9116b417 save_fpu_regs +EXPORT_SYMBOL vmlinux 0x9164440d debug_event_common +EXPORT_SYMBOL vmlinux 0x9166fc03 __flush_workqueue +EXPORT_SYMBOL vmlinux 0x917517ae nf_log_unregister +EXPORT_SYMBOL vmlinux 0x917609fe unregister_binfmt +EXPORT_SYMBOL vmlinux 0x919c58f3 __clzsi2 +EXPORT_SYMBOL vmlinux 0x91a488ac __netdev_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x91a7b1da qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x91ae82b2 __genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x91b9f3a3 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x91c4a4ae scsi_remove_device +EXPORT_SYMBOL vmlinux 0x91cd524b proc_symlink +EXPORT_SYMBOL vmlinux 0x91e0116c dma_alloc_attrs +EXPORT_SYMBOL vmlinux 0x91f4d6a1 security_locked_down +EXPORT_SYMBOL vmlinux 0x91f68ea1 __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x91ffc3f8 netif_tx_stop_all_queues +EXPORT_SYMBOL vmlinux 0x9211e6f6 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x921e1bbf devm_arch_io_reserve_memtype_wc +EXPORT_SYMBOL vmlinux 0x922f45a6 __bitmap_clear +EXPORT_SYMBOL vmlinux 0x924b8088 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x9260f06f __ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x9276ac4d tcp_parse_options +EXPORT_SYMBOL vmlinux 0x92774cf8 __kfence_pool +EXPORT_SYMBOL vmlinux 0x927e2955 xa_get_order +EXPORT_SYMBOL vmlinux 0x92997ed8 _printk +EXPORT_SYMBOL vmlinux 0x92a16af7 lockref_get +EXPORT_SYMBOL vmlinux 0x92a84020 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x92d5838e request_threaded_irq +EXPORT_SYMBOL vmlinux 0x92d6ea76 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x92e5bd52 noop_llseek +EXPORT_SYMBOL vmlinux 0x92ec510d jiffies64_to_msecs +EXPORT_SYMBOL vmlinux 0x92ec8993 md_flush_request +EXPORT_SYMBOL vmlinux 0x92ff3445 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x930e0983 cdev_alloc +EXPORT_SYMBOL vmlinux 0x9318fa66 vfs_parse_fs_string +EXPORT_SYMBOL vmlinux 0x931daa4f dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x9336b593 pci_choose_state +EXPORT_SYMBOL vmlinux 0x933afd98 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x934d86da tcp_stream_memory_free +EXPORT_SYMBOL vmlinux 0x935d3073 folio_mapped +EXPORT_SYMBOL vmlinux 0x935fffd6 nexthop_set_hw_flags +EXPORT_SYMBOL vmlinux 0x9364353a netlink_ns_capable +EXPORT_SYMBOL vmlinux 0x936ee1d0 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x93762aea tcp_rtx_synack +EXPORT_SYMBOL vmlinux 0x937733e3 qid_valid +EXPORT_SYMBOL vmlinux 0x9394da36 inet_getname +EXPORT_SYMBOL vmlinux 0x939d2a77 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93d14ee2 icmp_ndo_send +EXPORT_SYMBOL vmlinux 0x93d1b182 dev_get_iflink +EXPORT_SYMBOL vmlinux 0x93db1df7 security_sb_mnt_opts_compat +EXPORT_SYMBOL vmlinux 0x93e32688 d_alloc_parallel +EXPORT_SYMBOL vmlinux 0x93f24589 sync_blockdev +EXPORT_SYMBOL vmlinux 0x940513eb blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x9428f816 dim_turn +EXPORT_SYMBOL vmlinux 0x942f4c5c iucv_message_reject +EXPORT_SYMBOL vmlinux 0x944375db _totalram_pages +EXPORT_SYMBOL vmlinux 0x94466085 devm_memunmap +EXPORT_SYMBOL vmlinux 0x944a564d is_console_locked +EXPORT_SYMBOL vmlinux 0x945775a5 segment_save +EXPORT_SYMBOL vmlinux 0x94847565 block_dirty_folio +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a8beea xfrm_unregister_type_offload +EXPORT_SYMBOL vmlinux 0x94be9724 seq_puts +EXPORT_SYMBOL vmlinux 0x94bf03ca utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0x94c23397 skb_dequeue +EXPORT_SYMBOL vmlinux 0x94c9a54b fs_param_is_blockdev +EXPORT_SYMBOL vmlinux 0x94ceef47 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x94e2eaf8 fscrypt_zeroout_range +EXPORT_SYMBOL vmlinux 0x94e50ad4 call_fib_notifier +EXPORT_SYMBOL vmlinux 0x94f90afc phy_write_paged +EXPORT_SYMBOL vmlinux 0x9507c90f copy_fsxattr_to_user +EXPORT_SYMBOL vmlinux 0x9509f6c3 __cgroup_bpf_run_filter_sock_addr +EXPORT_SYMBOL vmlinux 0x9517937a sock_bindtoindex +EXPORT_SYMBOL vmlinux 0x95187659 regset_get_alloc +EXPORT_SYMBOL vmlinux 0x951a2dfe iucv_path_accept +EXPORT_SYMBOL vmlinux 0x9530365d __xa_clear_mark +EXPORT_SYMBOL vmlinux 0x954121b2 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x954cef6f init_on_alloc +EXPORT_SYMBOL vmlinux 0x954f099c idr_preload +EXPORT_SYMBOL vmlinux 0x956f2ea3 generic_write_checks +EXPORT_SYMBOL vmlinux 0x957891df devm_pci_remap_cfg_resource +EXPORT_SYMBOL vmlinux 0x95a1ae76 free_cgroup_ns +EXPORT_SYMBOL vmlinux 0x95b38ccc resource_list_create_entry +EXPORT_SYMBOL vmlinux 0x95beb204 netlbl_calipso_ops_register +EXPORT_SYMBOL vmlinux 0x95c07f01 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x95c337e0 rt6_lookup +EXPORT_SYMBOL vmlinux 0x95c3f8e5 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x95ce62f1 key_type_keyring +EXPORT_SYMBOL vmlinux 0x95ceb864 key_update +EXPORT_SYMBOL vmlinux 0x95e63ced prot_virt_host +EXPORT_SYMBOL vmlinux 0x95ecb8ae __seq_open_private +EXPORT_SYMBOL vmlinux 0x96018e96 phy_start_cable_test_tdr +EXPORT_SYMBOL vmlinux 0x960b93a5 flow_block_cb_free +EXPORT_SYMBOL vmlinux 0x961238f0 sock_release +EXPORT_SYMBOL vmlinux 0x962b872d add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x962e9b1e xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x963e0fa6 input_set_timestamp +EXPORT_SYMBOL vmlinux 0x96404e39 itcw_set_data +EXPORT_SYMBOL vmlinux 0x96419f73 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x96451641 kthread_create_on_cpu +EXPORT_SYMBOL vmlinux 0x964c9d31 folio_migrate_flags +EXPORT_SYMBOL vmlinux 0x96601de6 __page_frag_cache_drain +EXPORT_SYMBOL vmlinux 0x967b501d fs_bio_set +EXPORT_SYMBOL vmlinux 0x969963ba tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x969c35b2 dev_mc_del +EXPORT_SYMBOL vmlinux 0x96a5d018 blk_mq_free_tag_set +EXPORT_SYMBOL vmlinux 0x96a62381 mpage_writepage +EXPORT_SYMBOL vmlinux 0x96b378f5 dev_lstats_read +EXPORT_SYMBOL vmlinux 0x96be588d __scm_destroy +EXPORT_SYMBOL vmlinux 0x96be6ae5 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x96bffcec unregister_netdevice_notifier_net +EXPORT_SYMBOL vmlinux 0x96c17136 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0x96cc1111 dst_dev_put +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96fab350 dim_park_on_top +EXPORT_SYMBOL vmlinux 0x970398a4 filemap_fdatawait_keep_errors +EXPORT_SYMBOL vmlinux 0x970f17a7 ap_parse_mask_str +EXPORT_SYMBOL vmlinux 0x971dc906 migrate_page_move_mapping +EXPORT_SYMBOL vmlinux 0x97222f34 iov_iter_npages +EXPORT_SYMBOL vmlinux 0x9723a298 pci_map_rom +EXPORT_SYMBOL vmlinux 0x97418240 mr_mfc_find_parent +EXPORT_SYMBOL vmlinux 0x9749aeed end_page_writeback +EXPORT_SYMBOL vmlinux 0x974d0924 __kernel_cpumcf_begin +EXPORT_SYMBOL vmlinux 0x974f12eb sock_set_reuseaddr +EXPORT_SYMBOL vmlinux 0x975636da iov_iter_discard +EXPORT_SYMBOL vmlinux 0x977c505a md_bitmap_unplug +EXPORT_SYMBOL vmlinux 0x977f8bf9 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x9780c2d8 __traceiter_kmalloc +EXPORT_SYMBOL vmlinux 0x97934ecf del_timer_sync +EXPORT_SYMBOL vmlinux 0x979b5887 raw3270_start_locked +EXPORT_SYMBOL vmlinux 0x979ca437 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x97adb487 utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0x97bdfa60 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x97c6a46a inet_accept +EXPORT_SYMBOL vmlinux 0x97d0354a folio_end_writeback +EXPORT_SYMBOL vmlinux 0x97e81c4f rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x97f8d078 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x97fda345 jbd2_fc_end_commit_fallback +EXPORT_SYMBOL vmlinux 0x9823e0c2 simple_get_link +EXPORT_SYMBOL vmlinux 0x98464c96 flow_indr_dev_setup_offload +EXPORT_SYMBOL vmlinux 0x98557235 inet_frag_reasm_finish +EXPORT_SYMBOL vmlinux 0x986adaaa migrate_page_copy +EXPORT_SYMBOL vmlinux 0x9873188d iterate_dir +EXPORT_SYMBOL vmlinux 0x9877734b kmem_cache_create +EXPORT_SYMBOL vmlinux 0x987ca7e4 bpf_link_put +EXPORT_SYMBOL vmlinux 0x9883d158 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x989e1516 xa_destroy +EXPORT_SYMBOL vmlinux 0x98bd594c pci_enable_msix_range +EXPORT_SYMBOL vmlinux 0x98c2f539 d_add +EXPORT_SYMBOL vmlinux 0x98c4698a vfs_create_mount +EXPORT_SYMBOL vmlinux 0x98c89ade security_xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x98da86a4 sock_cmsg_send +EXPORT_SYMBOL vmlinux 0x98de1c15 snprintf +EXPORT_SYMBOL vmlinux 0x98e508ef ignore_console_lock_warning +EXPORT_SYMBOL vmlinux 0x98ee2a4f dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x98fcaac4 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x9900761a zstd_dstream_workspace_bound +EXPORT_SYMBOL vmlinux 0x990c7118 xp_alloc +EXPORT_SYMBOL vmlinux 0x990de9a3 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x992329a5 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x9942ec77 itcw_finalize +EXPORT_SYMBOL vmlinux 0x9943c90f inode_update_time +EXPORT_SYMBOL vmlinux 0x994adeed kill_litter_super +EXPORT_SYMBOL vmlinux 0x994e157e inet_frag_pull_head +EXPORT_SYMBOL vmlinux 0x994ee19d netdev_set_tc_queue +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99896baa skb_flow_dissect_hash +EXPORT_SYMBOL vmlinux 0x9996477b __nla_put +EXPORT_SYMBOL vmlinux 0x999cb5c5 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99bbbc8f dev_load +EXPORT_SYMBOL vmlinux 0x99ca74a6 xa_erase +EXPORT_SYMBOL vmlinux 0x99d472b1 net_dim_get_rx_moderation +EXPORT_SYMBOL vmlinux 0x99d5e06e blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x99d6bc80 ethtool_get_phc_vclocks +EXPORT_SYMBOL vmlinux 0x99d7e3c2 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99f9638f __napi_alloc_frag_align +EXPORT_SYMBOL vmlinux 0x99fb1181 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x9a0c03ff filemap_fdatawait_range_keep_errors +EXPORT_SYMBOL vmlinux 0x9a143672 genl_notify +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a3a8b7d ap_driver_register +EXPORT_SYMBOL vmlinux 0x9a3c9a81 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x9a4558a7 __blk_alloc_disk +EXPORT_SYMBOL vmlinux 0x9a583306 netlbl_bitmap_walk +EXPORT_SYMBOL vmlinux 0x9a64e30e blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x9a684448 do_wait_intr +EXPORT_SYMBOL vmlinux 0x9a69876d pagevec_lookup_range +EXPORT_SYMBOL vmlinux 0x9a700401 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x9a73d527 blkdev_compat_ptr_ioctl +EXPORT_SYMBOL vmlinux 0x9a906daf memscan +EXPORT_SYMBOL vmlinux 0x9aa397aa init_special_inode +EXPORT_SYMBOL vmlinux 0x9aa80f77 dev_driver_string +EXPORT_SYMBOL vmlinux 0x9aaeefce sysctl_nf_log_all_netns +EXPORT_SYMBOL vmlinux 0x9ac5305a kernel_sendmsg_locked +EXPORT_SYMBOL vmlinux 0x9ac5ed60 unregister_key_type +EXPORT_SYMBOL vmlinux 0x9acb7bac zpci_report_error +EXPORT_SYMBOL vmlinux 0x9acdfed1 security_inode_invalidate_secctx +EXPORT_SYMBOL vmlinux 0x9adc9c67 vsnprintf +EXPORT_SYMBOL vmlinux 0x9ae47436 _find_last_bit +EXPORT_SYMBOL vmlinux 0x9af58369 ethtool_notify +EXPORT_SYMBOL vmlinux 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b42ef0f dfltcc_reset +EXPORT_SYMBOL vmlinux 0x9b496b21 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0x9b5c2301 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9b5f91f2 param_get_short +EXPORT_SYMBOL vmlinux 0x9b6f1de8 netdev_set_num_tc +EXPORT_SYMBOL vmlinux 0x9b7290bd gpiochip_irq_relres +EXPORT_SYMBOL vmlinux 0x9b76b395 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x9b791d98 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x9b8d07aa strnlen +EXPORT_SYMBOL vmlinux 0x9b9bf91c key_task_permission +EXPORT_SYMBOL vmlinux 0x9b9c0d45 timestamp_truncate +EXPORT_SYMBOL vmlinux 0x9bc362e9 bpf_map_get +EXPORT_SYMBOL vmlinux 0x9bcb861b phy_trigger_machine +EXPORT_SYMBOL vmlinux 0x9bec81b9 dma_resv_copy_fences +EXPORT_SYMBOL vmlinux 0x9bedd673 dma_fence_get_status +EXPORT_SYMBOL vmlinux 0x9beee26d phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x9c2c21f9 sock_rfree +EXPORT_SYMBOL vmlinux 0x9c5737cb md_error +EXPORT_SYMBOL vmlinux 0x9c594c68 key_put +EXPORT_SYMBOL vmlinux 0x9c776ed6 xp_dma_unmap +EXPORT_SYMBOL vmlinux 0x9c82911a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x9c86b9ab fileattr_fill_flags +EXPORT_SYMBOL vmlinux 0x9cadbd3b __init_swait_queue_head +EXPORT_SYMBOL vmlinux 0x9cdfb3f7 sysctl_fb_tunnels_only_for_init_net +EXPORT_SYMBOL vmlinux 0x9ce40bac __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0x9cfa640d iput +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d158c4b ethtool_rx_flow_rule_create +EXPORT_SYMBOL vmlinux 0x9d1da73e raw3270_find_view +EXPORT_SYMBOL vmlinux 0x9d2ab8ac __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x9d2e7707 unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0x9d3e7f0f rt_dst_clone +EXPORT_SYMBOL vmlinux 0x9d503d43 proc_create_seq_private +EXPORT_SYMBOL vmlinux 0x9d509dca init_opal_dev +EXPORT_SYMBOL vmlinux 0x9d538175 __cgroup_bpf_run_filter_sk +EXPORT_SYMBOL vmlinux 0x9d615d47 component_match_add_release +EXPORT_SYMBOL vmlinux 0x9d6afab2 itcw_add_dcw +EXPORT_SYMBOL vmlinux 0x9d7ad0c8 __cpuhp_remove_state_cpuslocked +EXPORT_SYMBOL vmlinux 0x9d7b273e generic_read_dir +EXPORT_SYMBOL vmlinux 0x9dc8c7a3 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x9dce55aa xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9dea2bc7 blk_mq_delay_kick_requeue_list +EXPORT_SYMBOL vmlinux 0x9dec10dc ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x9df85e95 fs_context_for_mount +EXPORT_SYMBOL vmlinux 0x9dfcd5e4 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e0fa5ae hsiphash_3u32 +EXPORT_SYMBOL vmlinux 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL vmlinux 0x9e26c566 eth_gro_receive +EXPORT_SYMBOL vmlinux 0x9e3a4965 uv_info +EXPORT_SYMBOL vmlinux 0x9e48c3ae dquot_quota_off +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e56e175 inet_rcv_saddr_equal +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e672336 param_set_ushort +EXPORT_SYMBOL vmlinux 0x9e6a07ec device_match_acpi_handle +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e7e8b2a kill_pid +EXPORT_SYMBOL vmlinux 0x9e7fb6f4 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x9e84fbac napi_disable +EXPORT_SYMBOL vmlinux 0x9e91904b netdev_notice +EXPORT_SYMBOL vmlinux 0x9e9783e1 __tracepoint_s390_cio_ssch +EXPORT_SYMBOL vmlinux 0x9e9eab95 devcgroup_check_permission +EXPORT_SYMBOL vmlinux 0x9e9fdd9d memunmap +EXPORT_SYMBOL vmlinux 0x9ea25f6c xfrm_register_type_offload +EXPORT_SYMBOL vmlinux 0x9ec6ca96 ktime_get_real_ts64 +EXPORT_SYMBOL vmlinux 0x9ed93765 dev_get_mac_address +EXPORT_SYMBOL vmlinux 0x9f1224b4 phy_ethtool_set_link_ksettings +EXPORT_SYMBOL vmlinux 0x9f40f960 sock_sendmsg +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f48d80a qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x9f50b770 keyring_restrict +EXPORT_SYMBOL vmlinux 0x9f54ead7 gro_cells_destroy +EXPORT_SYMBOL vmlinux 0x9f55a43b n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x9f5e9837 inet6_protos +EXPORT_SYMBOL vmlinux 0x9f6b1fda security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fa7184a cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x9fb41842 netdev_offload_xstats_report_delta +EXPORT_SYMBOL vmlinux 0x9fc0b1e1 blk_mq_complete_request +EXPORT_SYMBOL vmlinux 0x9fcaf625 cdev_del +EXPORT_SYMBOL vmlinux 0x9fd0c6e2 page_readlink +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9feed7ce timer_reduce +EXPORT_SYMBOL vmlinux 0x9fefccc9 bdevname +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0x9ffc9cf0 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xa0145a4d inet_select_addr +EXPORT_SYMBOL vmlinux 0xa015978b ethtool_rx_flow_rule_destroy +EXPORT_SYMBOL vmlinux 0xa01ad8b5 sock_no_accept +EXPORT_SYMBOL vmlinux 0xa01d3df6 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0xa020d301 proc_create_mount_point +EXPORT_SYMBOL vmlinux 0xa033d747 next_arg +EXPORT_SYMBOL vmlinux 0xa0405684 __pskb_copy_fclone +EXPORT_SYMBOL vmlinux 0xa0436e98 in6addr_linklocal_allnodes +EXPORT_SYMBOL vmlinux 0xa05050bf unregister_qdisc +EXPORT_SYMBOL vmlinux 0xa053330e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xa054e8ed iucv_unregister +EXPORT_SYMBOL vmlinux 0xa05b6be2 psched_ppscfg_precompute +EXPORT_SYMBOL vmlinux 0xa061d248 iter_file_splice_write +EXPORT_SYMBOL vmlinux 0xa066d89f xa_store_range +EXPORT_SYMBOL vmlinux 0xa06cd65b generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xa06e587a release_firmware +EXPORT_SYMBOL vmlinux 0xa06fdecf vmemmap +EXPORT_SYMBOL vmlinux 0xa07d1b3c tasklet_setup +EXPORT_SYMBOL vmlinux 0xa084749a __bitmap_or +EXPORT_SYMBOL vmlinux 0xa08b9f80 __traceiter_kmalloc_node +EXPORT_SYMBOL vmlinux 0xa08c6c96 skb_vlan_untag +EXPORT_SYMBOL vmlinux 0xa08f7b47 __tty_insert_flip_char +EXPORT_SYMBOL vmlinux 0xa090905c cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xa095e02e generic_check_addressable +EXPORT_SYMBOL vmlinux 0xa099ddee vfs_parse_fs_param_source +EXPORT_SYMBOL vmlinux 0xa0a15b49 smp_call_function_many +EXPORT_SYMBOL vmlinux 0xa0ae1e73 siphash_3u64 +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c67eef pci_scan_bus +EXPORT_SYMBOL vmlinux 0xa0cbb9e2 ilookup5 +EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize +EXPORT_SYMBOL vmlinux 0xa0d87339 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xa0dad88e netdev_adjacent_get_private +EXPORT_SYMBOL vmlinux 0xa0e1cf60 inet_csk_reqsk_queue_add +EXPORT_SYMBOL vmlinux 0xa0eae826 smp_call_function +EXPORT_SYMBOL vmlinux 0xa0ebd14c sysctl_tcp_mem +EXPORT_SYMBOL vmlinux 0xa0ebd437 hdmi_drm_infoframe_check +EXPORT_SYMBOL vmlinux 0xa0f86b8f nf_unregister_net_hooks +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa10629a0 phy_device_register +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10a0439 kmalloc_order +EXPORT_SYMBOL vmlinux 0xa10bff7b qdisc_watchdog_schedule_range_ns +EXPORT_SYMBOL vmlinux 0xa10e40d5 neigh_carrier_down +EXPORT_SYMBOL vmlinux 0xa117a89b simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xa14a80ae netdev_class_remove_file_ns +EXPORT_SYMBOL vmlinux 0xa17f6832 dump_skip_to +EXPORT_SYMBOL vmlinux 0xa1856ba6 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xa1a8cc6c crc_ccitt_false +EXPORT_SYMBOL vmlinux 0xa1b87900 zstd_compress_cctx +EXPORT_SYMBOL vmlinux 0xa1ba2277 iov_iter_xarray +EXPORT_SYMBOL vmlinux 0xa1d5979b find_first_bit_inv +EXPORT_SYMBOL vmlinux 0xa1d91fc7 debug_register_view +EXPORT_SYMBOL vmlinux 0xa1e1cec9 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xa1ec8f1c __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa1f1d60c udp_seq_next +EXPORT_SYMBOL vmlinux 0xa1fd4681 mr_mfc_seq_idx +EXPORT_SYMBOL vmlinux 0xa1fee353 tcw_set_tsb +EXPORT_SYMBOL vmlinux 0xa2060911 inet_current_timestamp +EXPORT_SYMBOL vmlinux 0xa2093719 kernel_listen +EXPORT_SYMBOL vmlinux 0xa23ffc04 groups_sort +EXPORT_SYMBOL vmlinux 0xa24f23d8 __request_module +EXPORT_SYMBOL vmlinux 0xa2576756 skb_store_bits +EXPORT_SYMBOL vmlinux 0xa2603980 netif_set_tso_max_size +EXPORT_SYMBOL vmlinux 0xa263892b fscrypt_fname_free_buffer +EXPORT_SYMBOL vmlinux 0xa2660e90 __tracepoint_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xa2736afb user_path_at_empty +EXPORT_SYMBOL vmlinux 0xa28a4c97 send_sig_info +EXPORT_SYMBOL vmlinux 0xa28caf08 seq_release_private +EXPORT_SYMBOL vmlinux 0xa28cfcc0 gen_estimator_active +EXPORT_SYMBOL vmlinux 0xa28e1b49 __percpu_counter_compare +EXPORT_SYMBOL vmlinux 0xa2920693 param_array_ops +EXPORT_SYMBOL vmlinux 0xa29d457d neigh_ifdown +EXPORT_SYMBOL vmlinux 0xa2abfaf7 pci_dev_get +EXPORT_SYMBOL vmlinux 0xa2b4f2e3 scsi_done_direct +EXPORT_SYMBOL vmlinux 0xa2d7ec8d __SCK__tp_func_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xa2f58912 pci_iomap_range +EXPORT_SYMBOL vmlinux 0xa2f95a20 textsearch_prepare +EXPORT_SYMBOL vmlinux 0xa2fc75e7 trace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xa309c1bf pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xa31098a5 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xa310c844 _dev_alert +EXPORT_SYMBOL vmlinux 0xa31d1dea __xa_erase +EXPORT_SYMBOL vmlinux 0xa31ff0a3 kthread_destroy_worker +EXPORT_SYMBOL vmlinux 0xa3509ddc dev_base_lock +EXPORT_SYMBOL vmlinux 0xa3821c8b xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xa385f8da netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa38e7abf input_unregister_handler +EXPORT_SYMBOL vmlinux 0xa39358ea phy_read_paged +EXPORT_SYMBOL vmlinux 0xa3a0cc12 raw3270_wait_queue +EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove +EXPORT_SYMBOL vmlinux 0xa3b06dde percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0xa3b44d04 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xa3bcd2b8 unregister_mii_timestamper +EXPORT_SYMBOL vmlinux 0xa3be8342 __ubsan_handle_type_mismatch +EXPORT_SYMBOL vmlinux 0xa3e1fccf netdev_lower_state_changed +EXPORT_SYMBOL vmlinux 0xa3e39fd9 sk_filter_trim_cap +EXPORT_SYMBOL vmlinux 0xa3e3f906 __phy_read_mmd +EXPORT_SYMBOL vmlinux 0xa3f7aa51 __tracepoint_s390_cio_rsch +EXPORT_SYMBOL vmlinux 0xa3fea172 sha224_final +EXPORT_SYMBOL vmlinux 0xa401aa37 current_in_userns +EXPORT_SYMBOL vmlinux 0xa4051bf6 LZ4_decompress_safe_continue +EXPORT_SYMBOL vmlinux 0xa40ad00f mroute6_is_socket +EXPORT_SYMBOL vmlinux 0xa431c701 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xa43418d1 __mmap_lock_do_trace_start_locking +EXPORT_SYMBOL vmlinux 0xa434a677 md_write_inc +EXPORT_SYMBOL vmlinux 0xa444e69e pci_msix_vec_count +EXPORT_SYMBOL vmlinux 0xa44b520a __scsi_format_command +EXPORT_SYMBOL vmlinux 0xa45c59bd __SCK__tp_func_s390_cio_chsc +EXPORT_SYMBOL vmlinux 0xa463ffd6 devm_pci_alloc_host_bridge +EXPORT_SYMBOL vmlinux 0xa47f5deb nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xa48504b6 cdev_set_parent +EXPORT_SYMBOL vmlinux 0xa4a39389 security_d_instantiate +EXPORT_SYMBOL vmlinux 0xa4ab380f dma_fence_describe +EXPORT_SYMBOL vmlinux 0xa4b99901 sg_miter_start +EXPORT_SYMBOL vmlinux 0xa4c8da5a vfs_readlink +EXPORT_SYMBOL vmlinux 0xa4ccebc1 reuseport_select_sock +EXPORT_SYMBOL vmlinux 0xa4e188e7 strscpy +EXPORT_SYMBOL vmlinux 0xa50313fb blk_execute_rq +EXPORT_SYMBOL vmlinux 0xa503dd04 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xa50483fe __ksize +EXPORT_SYMBOL vmlinux 0xa50a3da7 _find_next_bit +EXPORT_SYMBOL vmlinux 0xa514bd50 tty_check_change +EXPORT_SYMBOL vmlinux 0xa533fc04 put_ipc_ns +EXPORT_SYMBOL vmlinux 0xa53e25b3 security_socket_socketpair +EXPORT_SYMBOL vmlinux 0xa543e0f6 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5621b66 tty_port_close +EXPORT_SYMBOL vmlinux 0xa568ee81 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xa5702d8a tcp_sock_set_nodelay +EXPORT_SYMBOL vmlinux 0xa5791211 generic_fadvise +EXPORT_SYMBOL vmlinux 0xa586c604 get_vm_area +EXPORT_SYMBOL vmlinux 0xa58b31da __wait_on_bit +EXPORT_SYMBOL vmlinux 0xa5a45301 devm_free_irq +EXPORT_SYMBOL vmlinux 0xa5e859e4 raw3270_deactivate_view +EXPORT_SYMBOL vmlinux 0xa603ea08 rdmacg_uncharge +EXPORT_SYMBOL vmlinux 0xa60fac16 generic_update_time +EXPORT_SYMBOL vmlinux 0xa61ced89 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0xa6386481 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xa648e561 __ubsan_handle_shift_out_of_bounds +EXPORT_SYMBOL vmlinux 0xa6495772 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xa64c7249 __printk_cpu_sync_try_get +EXPORT_SYMBOL vmlinux 0xa66e54b6 inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xa673c8e7 sock_wfree +EXPORT_SYMBOL vmlinux 0xa67d5921 dma_fence_free +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6859a23 md_write_end +EXPORT_SYMBOL vmlinux 0xa6a14157 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xa6b66b8d __lock_buffer +EXPORT_SYMBOL vmlinux 0xa6ba09c5 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xa6bd176c ccw_device_tm_start_key +EXPORT_SYMBOL vmlinux 0xa6c18b93 deactivate_super +EXPORT_SYMBOL vmlinux 0xa6c74b4a dquot_transfer +EXPORT_SYMBOL vmlinux 0xa6d267f7 generic_key_instantiate +EXPORT_SYMBOL vmlinux 0xa6e9c670 blake2s_compress_generic +EXPORT_SYMBOL vmlinux 0xa6fbe5f4 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0xa706c5b2 block_write_begin +EXPORT_SYMBOL vmlinux 0xa7200ade key_reject_and_link +EXPORT_SYMBOL vmlinux 0xa735b5cb filemap_fdatawrite_wbc +EXPORT_SYMBOL vmlinux 0xa7432421 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xa74a3ec9 tcp_openreq_init_rwin +EXPORT_SYMBOL vmlinux 0xa74c9877 refcount_dec_and_rtnl_lock +EXPORT_SYMBOL vmlinux 0xa76956d5 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xa76aa425 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xa7711e50 from_kprojid +EXPORT_SYMBOL vmlinux 0xa77bfd29 register_inet6addr_validator_notifier +EXPORT_SYMBOL vmlinux 0xa78aa009 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xa78fdd4b unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xa7a8c015 bd_abort_claiming +EXPORT_SYMBOL vmlinux 0xa7a9cfe0 iucv_message_send2way +EXPORT_SYMBOL vmlinux 0xa7ca5372 security_path_rename +EXPORT_SYMBOL vmlinux 0xa7d6c96f inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xa7e413de dev_set_mac_address_user +EXPORT_SYMBOL vmlinux 0xa7e87869 tcp_child_process +EXPORT_SYMBOL vmlinux 0xa7ec4082 kill_block_super +EXPORT_SYMBOL vmlinux 0xa7eedcc4 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xa7fcfd2c security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xa80bc5c7 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa834812a tcf_qevent_destroy +EXPORT_SYMBOL vmlinux 0xa83ea260 blk_start_plug +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84ce9e0 crypto_aes_inv_sbox +EXPORT_SYMBOL vmlinux 0xa8694ecd kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xa88818d8 dev_set_threaded +EXPORT_SYMBOL vmlinux 0xa8b0f4db scsi_host_busy +EXPORT_SYMBOL vmlinux 0xa8b3d8cd mdio_device_remove +EXPORT_SYMBOL vmlinux 0xa8c12800 genphy_read_status +EXPORT_SYMBOL vmlinux 0xa8dc036c bdi_put +EXPORT_SYMBOL vmlinux 0xa8e3fe19 radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0xa8f6c843 ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xa8f9c62e blk_mq_init_queue +EXPORT_SYMBOL vmlinux 0xa90c6396 __break_lease +EXPORT_SYMBOL vmlinux 0xa90ca0de flush_rcu_work +EXPORT_SYMBOL vmlinux 0xa90d613a pci_request_region +EXPORT_SYMBOL vmlinux 0xa92c89f4 alloc_pages +EXPORT_SYMBOL vmlinux 0xa92c9f8d __traceiter_s390_cio_tsch +EXPORT_SYMBOL vmlinux 0xa9392430 xa_clear_mark +EXPORT_SYMBOL vmlinux 0xa944b1c1 genphy_loopback +EXPORT_SYMBOL vmlinux 0xa944bb84 page_pool_return_skb_page +EXPORT_SYMBOL vmlinux 0xa95c4dc1 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0xa965ca81 reciprocal_value +EXPORT_SYMBOL vmlinux 0xa970351b dquot_commit +EXPORT_SYMBOL vmlinux 0xa976957d bitmap_remap +EXPORT_SYMBOL vmlinux 0xa9b026e0 nobh_write_begin +EXPORT_SYMBOL vmlinux 0xa9c562c5 phy_ethtool_get_strings +EXPORT_SYMBOL vmlinux 0xa9de5c6c scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xa9edaacd fs_lookup_param +EXPORT_SYMBOL vmlinux 0xaa0f0136 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xaa10cf7b no_seek_end_llseek +EXPORT_SYMBOL vmlinux 0xaa19e4aa _kstrtol +EXPORT_SYMBOL vmlinux 0xaa1c6624 raw3270_request_reset +EXPORT_SYMBOL vmlinux 0xaa1e246a xxh32_update +EXPORT_SYMBOL vmlinux 0xaa220a17 inc_node_page_state +EXPORT_SYMBOL vmlinux 0xaa4782c4 blk_mq_start_stopped_hw_queues +EXPORT_SYMBOL vmlinux 0xaa53b33c gen_pool_dma_zalloc_algo +EXPORT_SYMBOL vmlinux 0xaa5c9395 dma_fence_array_ops +EXPORT_SYMBOL vmlinux 0xaa74a0c3 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xaa7a1f77 __xa_cmpxchg +EXPORT_SYMBOL vmlinux 0xaa87b586 netif_set_real_num_queues +EXPORT_SYMBOL vmlinux 0xaa8a0b93 devm_ioremap_np +EXPORT_SYMBOL vmlinux 0xaa8f74f6 pci_get_class +EXPORT_SYMBOL vmlinux 0xaaa4b9bc hchacha_block_generic +EXPORT_SYMBOL vmlinux 0xaaa66739 ap_wait_init_apqn_bindings_complete +EXPORT_SYMBOL vmlinux 0xaaa6a880 fqdir_exit +EXPORT_SYMBOL vmlinux 0xaaa72f55 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xaacb43db vmf_insert_mixed_mkwrite +EXPORT_SYMBOL vmlinux 0xaad0ae78 __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0xaad8c7d6 default_wake_function +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab3697e4 irq_poll_init +EXPORT_SYMBOL vmlinux 0xab46c289 __SCK__tp_func_s390_cio_hsch +EXPORT_SYMBOL vmlinux 0xab63baa5 unregister_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xab64d2d8 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xab6d5b3b hex_to_bin +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xabbc796d sockfd_lookup +EXPORT_SYMBOL vmlinux 0xabe1431b trace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0xabe3fb91 proc_set_user +EXPORT_SYMBOL vmlinux 0xabf32f29 utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0xac0f9321 touch_atime +EXPORT_SYMBOL vmlinux 0xac12bb86 vfs_get_fsid +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac2d009e inode_dio_wait +EXPORT_SYMBOL vmlinux 0xac3201b0 udp_flow_hashrnd +EXPORT_SYMBOL vmlinux 0xac52c9fa vc_cons +EXPORT_SYMBOL vmlinux 0xac5fcec0 in4_pton +EXPORT_SYMBOL vmlinux 0xac613910 elv_rb_find +EXPORT_SYMBOL vmlinux 0xac6afa29 inet_sendpage +EXPORT_SYMBOL vmlinux 0xac75ffd7 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xac7873fb no_llseek +EXPORT_SYMBOL vmlinux 0xac8356d1 ram_aops +EXPORT_SYMBOL vmlinux 0xac8597d5 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xaca0aef0 complete +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb7d845 tty_port_close_end +EXPORT_SYMBOL vmlinux 0xacd76a39 nobh_writepage +EXPORT_SYMBOL vmlinux 0xacd81eb3 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xace26615 passthru_features_check +EXPORT_SYMBOL vmlinux 0xacea318c zstd_get_error_code +EXPORT_SYMBOL vmlinux 0xacea468a jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf649bf audit_log_task_info +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad128dc1 __tracepoint_dma_fence_enable_signal +EXPORT_SYMBOL vmlinux 0xad1441f0 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xad299b78 ioremap_wc +EXPORT_SYMBOL vmlinux 0xad3abfd4 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xad4aee39 strncpy +EXPORT_SYMBOL vmlinux 0xad4dee0e udp_prot +EXPORT_SYMBOL vmlinux 0xad566e01 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xad5e3544 register_netdevice_notifier_dev_net +EXPORT_SYMBOL vmlinux 0xad6c3f78 dqstats +EXPORT_SYMBOL vmlinux 0xad73041f autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xad82ea6c cad_pid +EXPORT_SYMBOL vmlinux 0xad925491 udplite_prot +EXPORT_SYMBOL vmlinux 0xada09ad2 dfltcc_can_inflate +EXPORT_SYMBOL vmlinux 0xadae6df8 blake2s_final +EXPORT_SYMBOL vmlinux 0xadbc2b35 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xadd139d4 rfs_needed +EXPORT_SYMBOL vmlinux 0xadfdfcef __bitmap_andnot +EXPORT_SYMBOL vmlinux 0xae04012c __vmalloc +EXPORT_SYMBOL vmlinux 0xae06002a kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xae201ac3 inode_permission +EXPORT_SYMBOL vmlinux 0xae207ed8 input_release_device +EXPORT_SYMBOL vmlinux 0xae316c11 icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0xae47a8f9 ip6_err_gen_icmpv6_unreach +EXPORT_SYMBOL vmlinux 0xae61a44d simple_unlink +EXPORT_SYMBOL vmlinux 0xae7559b1 pci_msi_vec_count +EXPORT_SYMBOL vmlinux 0xae7a455c dev_get_by_napi_id +EXPORT_SYMBOL vmlinux 0xae7bc8c5 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xaeac049a generate_random_guid +EXPORT_SYMBOL vmlinux 0xaebdf85f refcount_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0xaebfaa2a bpf_link_get_from_fd +EXPORT_SYMBOL vmlinux 0xaeca8967 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0xaeecb443 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0xaf07146e fib_notifier_ops_unregister +EXPORT_SYMBOL vmlinux 0xaf18af0e xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xaf235c00 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xaf2de963 kernel_write +EXPORT_SYMBOL vmlinux 0xaf30dc19 param_ops_byte +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4871e1 dump_align +EXPORT_SYMBOL vmlinux 0xaf4ce51a inet_frags_init +EXPORT_SYMBOL vmlinux 0xaf754b49 _dev_warn +EXPORT_SYMBOL vmlinux 0xaf8328fd tcp_get_cookie_sock +EXPORT_SYMBOL vmlinux 0xafb7f3da rtnl_offload_xstats_notify +EXPORT_SYMBOL vmlinux 0xafdec906 notify_change +EXPORT_SYMBOL vmlinux 0xafe4b16f __vfs_getxattr +EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn +EXPORT_SYMBOL vmlinux 0xb01bebf9 xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xb02f8ed5 inet_twsk_deschedule_put +EXPORT_SYMBOL vmlinux 0xb0454eb9 vfs_getattr_nosec +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb06598dc register_sysctl +EXPORT_SYMBOL vmlinux 0xb08eea7f d_set_fallthru +EXPORT_SYMBOL vmlinux 0xb0a55500 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb0b39d20 mdio_device_register +EXPORT_SYMBOL vmlinux 0xb0de4bf0 get_tree_keyed +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e3e5f5 get_pgste +EXPORT_SYMBOL vmlinux 0xb0e4a84b neigh_xmit +EXPORT_SYMBOL vmlinux 0xb0eda7e7 iucv_path_sever +EXPORT_SYMBOL vmlinux 0xb107fed3 lookup_one_len_unlocked +EXPORT_SYMBOL vmlinux 0xb10e7df4 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xb1176e59 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xb117a76d iov_iter_get_pages +EXPORT_SYMBOL vmlinux 0xb11e65fe pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xb120d01c nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0xb122d19d crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xb128c7ea pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb135a8d7 capable_wrt_inode_uidgid +EXPORT_SYMBOL vmlinux 0xb14ab1ef hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0xb14c6177 input_open_device +EXPORT_SYMBOL vmlinux 0xb14fc46a find_next_clump8 +EXPORT_SYMBOL vmlinux 0xb1695289 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xb1795b32 drop_super_exclusive +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1d0c090 d_delete +EXPORT_SYMBOL vmlinux 0xb1ddf995 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xb1e8126c down_timeout +EXPORT_SYMBOL vmlinux 0xb1eb8907 ccw_device_tm_start_timeout_key +EXPORT_SYMBOL vmlinux 0xb2043552 dev_pick_tx_zero +EXPORT_SYMBOL vmlinux 0xb2236bc2 mntput +EXPORT_SYMBOL vmlinux 0xb22ac65c finish_swait +EXPORT_SYMBOL vmlinux 0xb22e16d5 radix_tree_maybe_preload +EXPORT_SYMBOL vmlinux 0xb2646582 ping_prot +EXPORT_SYMBOL vmlinux 0xb2767bb2 tcp_sock_set_cork +EXPORT_SYMBOL vmlinux 0xb2b0d772 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0xb2f1fd15 vmf_insert_mixed_prot +EXPORT_SYMBOL vmlinux 0xb2f31d57 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xb2fcb56d queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xb300c22d sock_create +EXPORT_SYMBOL vmlinux 0xb308c97d wait_woken +EXPORT_SYMBOL vmlinux 0xb315cef4 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xb31a5652 param_get_ullong +EXPORT_SYMBOL vmlinux 0xb320cc0e sg_init_one +EXPORT_SYMBOL vmlinux 0xb3258f79 __ubsan_handle_type_mismatch_v1 +EXPORT_SYMBOL vmlinux 0xb3317665 blk_mq_delay_run_hw_queue +EXPORT_SYMBOL vmlinux 0xb35a44a9 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xb35ab7dc blk_mq_start_hw_queues +EXPORT_SYMBOL vmlinux 0xb3687850 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xb381ff9e ida_destroy +EXPORT_SYMBOL vmlinux 0xb38beebf sync_file_get_fence +EXPORT_SYMBOL vmlinux 0xb3a10b5d get_fs_type +EXPORT_SYMBOL vmlinux 0xb3a7ff68 kthread_complete_and_exit +EXPORT_SYMBOL vmlinux 0xb3d2c76d scsi_hostbyte_string +EXPORT_SYMBOL vmlinux 0xb3d8061d __check_sticky +EXPORT_SYMBOL vmlinux 0xb3dbf6f4 inet_frag_find +EXPORT_SYMBOL vmlinux 0xb3e5a9bb netif_receive_skb +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3fda1ec create_empty_buffers +EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact +EXPORT_SYMBOL vmlinux 0xb4159dce mark_info_dirty +EXPORT_SYMBOL vmlinux 0xb41ad2da redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb42bafd3 __netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xb4461532 touchscreen_report_pos +EXPORT_SYMBOL vmlinux 0xb4613282 dquot_disable +EXPORT_SYMBOL vmlinux 0xb487210c __nla_reserve +EXPORT_SYMBOL vmlinux 0xb48d4d22 security_sb_eat_lsm_opts +EXPORT_SYMBOL vmlinux 0xb491e58a __pagevec_release +EXPORT_SYMBOL vmlinux 0xb49c699d dma_fence_add_callback +EXPORT_SYMBOL vmlinux 0xb4a3e439 dma_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xb4a6b535 phy_set_asym_pause +EXPORT_SYMBOL vmlinux 0xb4c63838 ip_fraglist_prepare +EXPORT_SYMBOL vmlinux 0xb4cec9bc inet6_getname +EXPORT_SYMBOL vmlinux 0xb4d345a2 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xb4f13d2a abort +EXPORT_SYMBOL vmlinux 0xb4f9ef17 pin_user_pages +EXPORT_SYMBOL vmlinux 0xb50f109e ip6_fraglist_init +EXPORT_SYMBOL vmlinux 0xb51f6fc3 phy_init_eee +EXPORT_SYMBOL vmlinux 0xb534f61f __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xb54fb0bd mpage_writepages +EXPORT_SYMBOL vmlinux 0xb55fe8b8 security_sctp_sk_clone +EXPORT_SYMBOL vmlinux 0xb58aeaab kernel_cpustat +EXPORT_SYMBOL vmlinux 0xb58f6c01 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xb5931895 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xb5964347 udp6_set_csum +EXPORT_SYMBOL vmlinux 0xb597ebb1 __ip_options_compile +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a9c6d2 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5b07a2d pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xb5b63711 fileattr_fill_xflags +EXPORT_SYMBOL vmlinux 0xb5bc0afd flow_rule_alloc +EXPORT_SYMBOL vmlinux 0xb5c69fd6 eth_header +EXPORT_SYMBOL vmlinux 0xb5d3119d _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xb5dcefde kernel_sock_ip_overhead +EXPORT_SYMBOL vmlinux 0xb5e73116 flush_delayed_work +EXPORT_SYMBOL vmlinux 0xb5f8ff2d __alloc_pages +EXPORT_SYMBOL vmlinux 0xb5fb7358 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xb602e44a pcie_ptm_enabled +EXPORT_SYMBOL vmlinux 0xb6308446 __load_fpu_regs +EXPORT_SYMBOL vmlinux 0xb633f115 irq_poll_enable +EXPORT_SYMBOL vmlinux 0xb65dcc62 security_sctp_assoc_request +EXPORT_SYMBOL vmlinux 0xb661275b generic_copy_file_range +EXPORT_SYMBOL vmlinux 0xb66256ad generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xb66e96d8 netlbl_audit_start +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67f392e invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xb67fbf8a rdmacg_try_charge +EXPORT_SYMBOL vmlinux 0xb67fd079 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xb67fec0e uuid_parse +EXPORT_SYMBOL vmlinux 0xb681e2fd param_get_ulong +EXPORT_SYMBOL vmlinux 0xb6835578 simple_write_begin +EXPORT_SYMBOL vmlinux 0xb68a5658 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6acaa13 phy_sfp_detach +EXPORT_SYMBOL vmlinux 0xb6c47454 __kfree_skb +EXPORT_SYMBOL vmlinux 0xb6cb556a _find_first_and_bit +EXPORT_SYMBOL vmlinux 0xb6e0fc88 done_path_create +EXPORT_SYMBOL vmlinux 0xb6e36ce2 psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xb6e5e7dd inet_listen +EXPORT_SYMBOL vmlinux 0xb6f42579 pci_enable_msi +EXPORT_SYMBOL vmlinux 0xb6f4dbfc ___ratelimit +EXPORT_SYMBOL vmlinux 0xb6fbeefe xxh64 +EXPORT_SYMBOL vmlinux 0xb6fde909 close_fd +EXPORT_SYMBOL vmlinux 0xb70371c8 input_enable_softrepeat +EXPORT_SYMBOL vmlinux 0xb712286a __dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xb71589f0 skip_spaces +EXPORT_SYMBOL vmlinux 0xb71768f8 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xb71ed69f __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0xb73bfa97 debug_register +EXPORT_SYMBOL vmlinux 0xb7574f41 input_set_capability +EXPORT_SYMBOL vmlinux 0xb76c2b34 import_iovec +EXPORT_SYMBOL vmlinux 0xb77c03bd follow_pfn +EXPORT_SYMBOL vmlinux 0xb78530af ip_options_compile +EXPORT_SYMBOL vmlinux 0xb78700c3 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0xb78debe3 LZ4_decompress_fast_usingDict +EXPORT_SYMBOL vmlinux 0xb7c6db70 sysctl_max_skb_frags +EXPORT_SYMBOL vmlinux 0xb7c9d5c1 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xb7e23280 configfs_unregister_default_group +EXPORT_SYMBOL vmlinux 0xb7e76ff5 phy_print_status +EXPORT_SYMBOL vmlinux 0xb7ee2a2c diag26c +EXPORT_SYMBOL vmlinux 0xb8165152 stop_tty +EXPORT_SYMBOL vmlinux 0xb827d331 __cond_resched_rwlock_write +EXPORT_SYMBOL vmlinux 0xb82856c5 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xb8288a08 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xb828fdeb kobject_get +EXPORT_SYMBOL vmlinux 0xb82de40c pmdp_xchg_lazy +EXPORT_SYMBOL vmlinux 0xb84c8987 d_obtain_root +EXPORT_SYMBOL vmlinux 0xb868ac5c register_sysrq_key +EXPORT_SYMBOL vmlinux 0xb86a6c86 xfrm_trans_queue +EXPORT_SYMBOL vmlinux 0xb876e99a iptun_encaps +EXPORT_SYMBOL vmlinux 0xb8973027 get_tree_nodev +EXPORT_SYMBOL vmlinux 0xb89b6e6b guid_parse +EXPORT_SYMBOL vmlinux 0xb8b043f2 kfree_link +EXPORT_SYMBOL vmlinux 0xb8c9a9bf kernel_connect +EXPORT_SYMBOL vmlinux 0xb8da92dc vfs_ioctl +EXPORT_SYMBOL vmlinux 0xb8e36e06 flow_rule_match_enc_opts +EXPORT_SYMBOL vmlinux 0xb8e97783 proc_douintvec +EXPORT_SYMBOL vmlinux 0xb8f4e47c __skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xb9056bb6 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xb911bb58 minmax_running_max +EXPORT_SYMBOL vmlinux 0xb915ceca itcw_init +EXPORT_SYMBOL vmlinux 0xb9167093 tty_port_open +EXPORT_SYMBOL vmlinux 0xb928aa45 netdev_rss_key_fill +EXPORT_SYMBOL vmlinux 0xb94339c4 qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xb94b45f2 phy_do_ioctl_running +EXPORT_SYMBOL vmlinux 0xb94f4d5d __kmalloc_node_track_caller +EXPORT_SYMBOL vmlinux 0xb9511e55 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xb9585bce skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xb96c4f9e audit_log_subject_context +EXPORT_SYMBOL vmlinux 0xb97220ff bitmap_parse +EXPORT_SYMBOL vmlinux 0xb9803974 mr_vif_seq_idx +EXPORT_SYMBOL vmlinux 0xb9a20a67 security_inode_copy_up +EXPORT_SYMBOL vmlinux 0xb9b0c3eb sock_set_priority +EXPORT_SYMBOL vmlinux 0xb9b5b224 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xb9cf8940 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xb9de7b3d gro_cells_receive +EXPORT_SYMBOL vmlinux 0xb9e03caf gpiochip_irq_reqres +EXPORT_SYMBOL vmlinux 0xb9e7a9c5 phy_start_cable_test +EXPORT_SYMBOL vmlinux 0xb9e8e2cc in6addr_sitelocal_allrouters +EXPORT_SYMBOL vmlinux 0xba001f54 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xba02e923 register_service_level +EXPORT_SYMBOL vmlinux 0xba0676e2 vm_zone_stat +EXPORT_SYMBOL vmlinux 0xba087bd6 nla_reserve +EXPORT_SYMBOL vmlinux 0xba0e4d9b dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0xba2250d2 truncate_inode_pages_final +EXPORT_SYMBOL vmlinux 0xba4008b4 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xba466075 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba51ef50 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xba53adab nla_policy_len +EXPORT_SYMBOL vmlinux 0xba6932ec debug_unregister_view +EXPORT_SYMBOL vmlinux 0xba859f57 ip_tunnel_header_ops +EXPORT_SYMBOL vmlinux 0xba8917dd pci_irq_get_affinity +EXPORT_SYMBOL vmlinux 0xba96d6cd bpf_prog_get_type_path +EXPORT_SYMBOL vmlinux 0xba9f754f flow_indr_dev_register +EXPORT_SYMBOL vmlinux 0xbacdf6b3 __cgroup_bpf_run_filter_skb +EXPORT_SYMBOL vmlinux 0xbaf30556 poll_freewait +EXPORT_SYMBOL vmlinux 0xbb0540aa zlib_inflateReset +EXPORT_SYMBOL vmlinux 0xbb24f607 init_cdrom_command +EXPORT_SYMBOL vmlinux 0xbb28347e md_reload_sb +EXPORT_SYMBOL vmlinux 0xbb33a257 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xbb3e7461 ccw_device_start_timeout +EXPORT_SYMBOL vmlinux 0xbb42daba pci_ep_cfs_add_epc_group +EXPORT_SYMBOL vmlinux 0xbb442c7f jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xbb47e831 reuseport_alloc +EXPORT_SYMBOL vmlinux 0xbb5934be __wake_up_bit +EXPORT_SYMBOL vmlinux 0xbb628e23 phy_set_sym_pause +EXPORT_SYMBOL vmlinux 0xbb65a3e4 __napi_alloc_skb +EXPORT_SYMBOL vmlinux 0xbb756842 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0xbb7ac05f from_kgid_munged +EXPORT_SYMBOL vmlinux 0xbb7b6d63 __napi_schedule +EXPORT_SYMBOL vmlinux 0xbb9c03b6 tcf_get_next_proto +EXPORT_SYMBOL vmlinux 0xbb9d0dc5 bin2hex +EXPORT_SYMBOL vmlinux 0xbbb228c8 ccw_device_set_options_mask +EXPORT_SYMBOL vmlinux 0xbbb541c8 phy_loopback +EXPORT_SYMBOL vmlinux 0xbbcefc07 inet_csk_complete_hashdance +EXPORT_SYMBOL vmlinux 0xbbdde6ed unregister_fib_notifier +EXPORT_SYMBOL vmlinux 0xbc056422 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xbc0a6dc9 sock_alloc +EXPORT_SYMBOL vmlinux 0xbc101bfc netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xbc55401c inet_proto_csum_replace_by_diff +EXPORT_SYMBOL vmlinux 0xbc5e42dc xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0xbc6d57cf xfrm_register_km +EXPORT_SYMBOL vmlinux 0xbc76641a __SCK__tp_func_s390_cio_ssch +EXPORT_SYMBOL vmlinux 0xbcab31b4 __traceiter_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbcab6ee6 sscanf +EXPORT_SYMBOL vmlinux 0xbcb6fc8c unlock_new_inode +EXPORT_SYMBOL vmlinux 0xbd22500d tso_build_data +EXPORT_SYMBOL vmlinux 0xbd418e30 param_ops_bint +EXPORT_SYMBOL vmlinux 0xbd628752 __tracepoint_mmap_lock_start_locking +EXPORT_SYMBOL vmlinux 0xbd649a67 skb_set_owner_w +EXPORT_SYMBOL vmlinux 0xbd6c6ea9 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xbd93bcdd tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xbdb19d58 build_skb +EXPORT_SYMBOL vmlinux 0xbddd1d59 submit_bio_noacct +EXPORT_SYMBOL vmlinux 0xbdec64f2 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xbdf48621 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xbe118c52 __tracepoint_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xbe12c301 dquot_operations +EXPORT_SYMBOL vmlinux 0xbe22c9e1 md_bitmap_sync_with_cluster +EXPORT_SYMBOL vmlinux 0xbe4eb6ed secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xbe5a24e9 xxh32_copy_state +EXPORT_SYMBOL vmlinux 0xbe5e44a8 tty_devnum +EXPORT_SYMBOL vmlinux 0xbe881ac1 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xbe971ff7 qdisc_hash_add +EXPORT_SYMBOL vmlinux 0xbeaa8c8c phy_driver_register +EXPORT_SYMBOL vmlinux 0xbece3719 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0xbee34447 dentry_create +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbef53f33 scnprintf +EXPORT_SYMBOL vmlinux 0xbefee002 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xbf051a31 tcp_conn_request +EXPORT_SYMBOL vmlinux 0xbf0b003d dev_uc_add +EXPORT_SYMBOL vmlinux 0xbf1e0a64 sock_gettstamp +EXPORT_SYMBOL vmlinux 0xbf30cceb scsi_host_put +EXPORT_SYMBOL vmlinux 0xbf38542c jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xbf3b6571 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xbf49aafa percpu_counter_set +EXPORT_SYMBOL vmlinux 0xbf54fb20 __nlmsg_put +EXPORT_SYMBOL vmlinux 0xbf59c419 posix_acl_init +EXPORT_SYMBOL vmlinux 0xbf9a5a1e __init_rwsem +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa56cc6 find_vma +EXPORT_SYMBOL vmlinux 0xbfad5b3b lock_sock_nested +EXPORT_SYMBOL vmlinux 0xbfb05716 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xbfc02f65 sock_init_data +EXPORT_SYMBOL vmlinux 0xbfc0d310 blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0xbfcc3d24 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xbfd4dcf7 ipv6_sock_mc_drop +EXPORT_SYMBOL vmlinux 0xbfd50cc4 audit_log +EXPORT_SYMBOL vmlinux 0xbfd9f046 remove_wait_queue +EXPORT_SYMBOL vmlinux 0xbfee38b2 udp_gro_complete +EXPORT_SYMBOL vmlinux 0xbff701a8 flow_rule_match_basic +EXPORT_SYMBOL vmlinux 0xc0114e1d inet_add_offload +EXPORT_SYMBOL vmlinux 0xc01e0980 sk_alloc +EXPORT_SYMBOL vmlinux 0xc0230bbb folio_mark_accessed +EXPORT_SYMBOL vmlinux 0xc02c17d0 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xc02f3e02 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0xc0368772 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xc0383dae napi_enable +EXPORT_SYMBOL vmlinux 0xc03bb1db tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xc050ccca dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xc05208d3 flow_rule_match_meta +EXPORT_SYMBOL vmlinux 0xc06fa7e0 add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xc079feae may_umount +EXPORT_SYMBOL vmlinux 0xc07b0863 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0xc08d19b4 xfrm_parse_spi +EXPORT_SYMBOL vmlinux 0xc0954478 nla_put +EXPORT_SYMBOL vmlinux 0xc0ad338e xattr_full_name +EXPORT_SYMBOL vmlinux 0xc0afb5d7 cgroup_bpf_enabled_key +EXPORT_SYMBOL vmlinux 0xc0bfb9d4 VMALLOC_END +EXPORT_SYMBOL vmlinux 0xc0d6f59f clean_bdev_aliases +EXPORT_SYMBOL vmlinux 0xc0e5e4e6 itcw_get_tcw +EXPORT_SYMBOL vmlinux 0xc0f2437d tcf_exts_num_actions +EXPORT_SYMBOL vmlinux 0xc0fd237c xxh32 +EXPORT_SYMBOL vmlinux 0xc0fe9137 __printk_cpu_sync_put +EXPORT_SYMBOL vmlinux 0xc0ff12fb nla_strdup +EXPORT_SYMBOL vmlinux 0xc0ff21c1 input_get_new_minor +EXPORT_SYMBOL vmlinux 0xc100c64e pcie_set_mps +EXPORT_SYMBOL vmlinux 0xc1041093 param_get_string +EXPORT_SYMBOL vmlinux 0xc1198662 __warn_flushing_systemwide_wq +EXPORT_SYMBOL vmlinux 0xc120caa6 diag_stat_inc +EXPORT_SYMBOL vmlinux 0xc1394dbd mod_virt_timer_periodic +EXPORT_SYMBOL vmlinux 0xc1514a3b free_irq +EXPORT_SYMBOL vmlinux 0xc155e1f3 unix_attach_fds +EXPORT_SYMBOL vmlinux 0xc1675c63 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0xc16be39d iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xc17974f4 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xc19e74fa vm_map_pages_zero +EXPORT_SYMBOL vmlinux 0xc1a5140f phy_ethtool_ksettings_get +EXPORT_SYMBOL vmlinux 0xc1ab1e58 phy_ethtool_nway_reset +EXPORT_SYMBOL vmlinux 0xc1c5c8ef inet_bind +EXPORT_SYMBOL vmlinux 0xc1c8f8be raw3270_activate_view +EXPORT_SYMBOL vmlinux 0xc1cf677a pagecache_isize_extended +EXPORT_SYMBOL vmlinux 0xc1d5d504 scsi_cmd_allowed +EXPORT_SYMBOL vmlinux 0xc1d8cfaf __fdget +EXPORT_SYMBOL vmlinux 0xc213d31d tcf_qevent_dump +EXPORT_SYMBOL vmlinux 0xc226b040 mb_cache_entry_delete_or_get +EXPORT_SYMBOL vmlinux 0xc241d419 is_subdir +EXPORT_SYMBOL vmlinux 0xc250590f strnlen_user +EXPORT_SYMBOL vmlinux 0xc27ee138 __SCK__tp_func_s390_cio_stsch +EXPORT_SYMBOL vmlinux 0xc287bc79 set_blocksize +EXPORT_SYMBOL vmlinux 0xc28af58c udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0xc29a1878 abort_creds +EXPORT_SYMBOL vmlinux 0xc2b3edba sock_no_connect +EXPORT_SYMBOL vmlinux 0xc2c1080d hash_and_copy_to_iter +EXPORT_SYMBOL vmlinux 0xc2caa4be ip_local_deliver +EXPORT_SYMBOL vmlinux 0xc2cbb4d8 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xc2d93910 pudp_xchg_direct +EXPORT_SYMBOL vmlinux 0xc2e02703 ether_setup +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2ec69b2 mdiobus_write_nested +EXPORT_SYMBOL vmlinux 0xc30473e8 nf_register_net_hooks +EXPORT_SYMBOL vmlinux 0xc3055d20 usleep_range_state +EXPORT_SYMBOL vmlinux 0xc31111eb pci_find_capability +EXPORT_SYMBOL vmlinux 0xc31db0ce is_vmalloc_addr +EXPORT_SYMBOL vmlinux 0xc32c71af register_inetaddr_validator_notifier +EXPORT_SYMBOL vmlinux 0xc332f5ea eth_header_parse_protocol +EXPORT_SYMBOL vmlinux 0xc336bb0f neigh_update +EXPORT_SYMBOL vmlinux 0xc34bd8fb napi_build_skb +EXPORT_SYMBOL vmlinux 0xc38c83b8 mod_timer +EXPORT_SYMBOL vmlinux 0xc3a5dd49 kmem_cache_size +EXPORT_SYMBOL vmlinux 0xc3ad6613 set_create_files_as +EXPORT_SYMBOL vmlinux 0xc3be7aae tc_setup_cb_destroy +EXPORT_SYMBOL vmlinux 0xc3c1459b ip_defrag +EXPORT_SYMBOL vmlinux 0xc3e131af filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xc3e45457 down_killable +EXPORT_SYMBOL vmlinux 0xc3f3c3b4 debugfs_create_automount +EXPORT_SYMBOL vmlinux 0xc4205e2e dcb_ieee_getapp_prio_dscp_mask_map +EXPORT_SYMBOL vmlinux 0xc420a7fe key_move +EXPORT_SYMBOL vmlinux 0xc4212ab9 qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xc433a088 __read_overflow2_field +EXPORT_SYMBOL vmlinux 0xc438f1c8 try_lookup_one_len +EXPORT_SYMBOL vmlinux 0xc466b5a1 tcp_poll +EXPORT_SYMBOL vmlinux 0xc46a63d4 cpumask_next +EXPORT_SYMBOL vmlinux 0xc46bf411 request_key_rcu +EXPORT_SYMBOL vmlinux 0xc46f1100 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xc475471a raw3270_del_view +EXPORT_SYMBOL vmlinux 0xc4777aa9 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xc4a83cc3 zstd_cctx_workspace_bound +EXPORT_SYMBOL vmlinux 0xc4a85cc4 tcf_idr_create +EXPORT_SYMBOL vmlinux 0xc4eb2c4f jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xc4ee3383 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xc4f49afa d_mark_dontcache +EXPORT_SYMBOL vmlinux 0xc500fe31 flow_rule_match_enc_control +EXPORT_SYMBOL vmlinux 0xc502db25 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xc5376a69 tcp_peek_len +EXPORT_SYMBOL vmlinux 0xc5490f1a devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0xc55dedf6 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xc56c3609 xz_dec_microlzma_reset +EXPORT_SYMBOL vmlinux 0xc56d67a7 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xc57490b2 flow_block_cb_priv +EXPORT_SYMBOL vmlinux 0xc57b8611 diag210 +EXPORT_SYMBOL vmlinux 0xc586d03b dma_resv_add_fence +EXPORT_SYMBOL vmlinux 0xc599a772 security_xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xc5a3367a __tracepoint_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xc5ad93b8 sie_exit +EXPORT_SYMBOL vmlinux 0xc5b0d06f lockref_put_return +EXPORT_SYMBOL vmlinux 0xc5b6f236 queue_work_on +EXPORT_SYMBOL vmlinux 0xc5bcfa88 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xc5c8b56c raw_copy_to_user +EXPORT_SYMBOL vmlinux 0xc5d5a625 mpage_read_folio +EXPORT_SYMBOL vmlinux 0xc5e74216 release_resource +EXPORT_SYMBOL vmlinux 0xc5f7e801 sg_last +EXPORT_SYMBOL vmlinux 0xc5fc8537 netdev_lower_get_next +EXPORT_SYMBOL vmlinux 0xc602673e skb_csum_hwoffload_help +EXPORT_SYMBOL vmlinux 0xc609923b __invalidate_device +EXPORT_SYMBOL vmlinux 0xc60d0620 __num_online_cpus +EXPORT_SYMBOL vmlinux 0xc622ea97 stsi +EXPORT_SYMBOL vmlinux 0xc62ab2bc mempool_destroy +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc633d82d phy_unregister_fixup +EXPORT_SYMBOL vmlinux 0xc65e4e97 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0xc66a8304 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0xc67b9a23 arp_tbl +EXPORT_SYMBOL vmlinux 0xc68e1ffa scsi_remove_target +EXPORT_SYMBOL vmlinux 0xc69c4e46 input_match_device_id +EXPORT_SYMBOL vmlinux 0xc6adb130 xp_set_rxq_info +EXPORT_SYMBOL vmlinux 0xc6caedd2 tcf_block_get_ext +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6ce1d34 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xc6f3b3fc refcount_dec_if_one +EXPORT_SYMBOL vmlinux 0xc6f46339 init_timer_key +EXPORT_SYMBOL vmlinux 0xc6f8989b airq_iv_release +EXPORT_SYMBOL vmlinux 0xc70f2623 pci_wait_for_pending_transaction +EXPORT_SYMBOL vmlinux 0xc726d7bc blk_queue_flag_set +EXPORT_SYMBOL vmlinux 0xc72f7279 zstd_get_error_name +EXPORT_SYMBOL vmlinux 0xc72f9bbc reuseport_add_sock +EXPORT_SYMBOL vmlinux 0xc768c5c9 dquot_initialize +EXPORT_SYMBOL vmlinux 0xc774a491 __blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xc77be7d2 dump_emit +EXPORT_SYMBOL vmlinux 0xc77cffbc pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc7943eb6 __module_get +EXPORT_SYMBOL vmlinux 0xc797c492 netdev_offload_xstats_enabled +EXPORT_SYMBOL vmlinux 0xc79f207e revert_creds +EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0xc7a268fc irq_domain_set_info +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7b4fae1 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xc7c1107a LZ4_decompress_safe +EXPORT_SYMBOL vmlinux 0xc7c5d9d5 tcf_chain_get_by_act +EXPORT_SYMBOL vmlinux 0xc7c82acf ccw_driver_unregister +EXPORT_SYMBOL vmlinux 0xc7d094b5 dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xc7d2cf1a kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0xc7df42d7 tcp_sock_set_quickack +EXPORT_SYMBOL vmlinux 0xc7e7042b mdiobus_write +EXPORT_SYMBOL vmlinux 0xc7e7987d fuse_dequeue_forget +EXPORT_SYMBOL vmlinux 0xc7f78b47 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xc8106878 gen_pool_fixed_alloc +EXPORT_SYMBOL vmlinux 0xc81deeec tty_register_device +EXPORT_SYMBOL vmlinux 0xc836e7ca flow_keys_dissector +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84fddf6 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xc8569088 bioset_init +EXPORT_SYMBOL vmlinux 0xc86a6174 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xc871d29b vma_set_file +EXPORT_SYMBOL vmlinux 0xc872fd85 in6addr_interfacelocal_allnodes +EXPORT_SYMBOL vmlinux 0xc87913d1 proc_remove +EXPORT_SYMBOL vmlinux 0xc8827b75 sysctl_vals +EXPORT_SYMBOL vmlinux 0xc885f580 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xc890c008 zlib_deflateEnd +EXPORT_SYMBOL vmlinux 0xc8987ab7 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xc8a342f8 dev_add_pack +EXPORT_SYMBOL vmlinux 0xc8a91f5b cpumask_local_spread +EXPORT_SYMBOL vmlinux 0xc8b73834 inet_offloads +EXPORT_SYMBOL vmlinux 0xc8e8062c scsi_scan_host +EXPORT_SYMBOL vmlinux 0xc8f8ab83 csum_and_copy_from_iter +EXPORT_SYMBOL vmlinux 0xc8fd1ca0 blk_set_queue_depth +EXPORT_SYMBOL vmlinux 0xc901fb63 set_disk_ro +EXPORT_SYMBOL vmlinux 0xc907900c register_md_cluster_operations +EXPORT_SYMBOL vmlinux 0xc916dd46 __SCK__tp_func_kmalloc +EXPORT_SYMBOL vmlinux 0xc91de85e finalize_exec +EXPORT_SYMBOL vmlinux 0xc925e0c2 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0xc9269bec blk_put_queue +EXPORT_SYMBOL vmlinux 0xc92734e9 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xc94648d3 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xc94fdebf __genradix_ptr +EXPORT_SYMBOL vmlinux 0xc9590b68 input_copy_abs +EXPORT_SYMBOL vmlinux 0xc9634df9 in6addr_linklocal_allrouters +EXPORT_SYMBOL vmlinux 0xc96a172b netpoll_poll_dev +EXPORT_SYMBOL vmlinux 0xc96bf834 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xc972449f mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0xc97f0a42 zstd_get_frame_header +EXPORT_SYMBOL vmlinux 0xc9868422 drop_nlink +EXPORT_SYMBOL vmlinux 0xc9a9000d pskb_expand_head +EXPORT_SYMBOL vmlinux 0xc9b901e3 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xc9bf188a inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xc9df055a xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xc9e0fdc9 sk_net_capable +EXPORT_SYMBOL vmlinux 0xc9eabc27 get_ipc_ns_exported +EXPORT_SYMBOL vmlinux 0xca19393e generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xca21ebd3 bitmap_free +EXPORT_SYMBOL vmlinux 0xca2412cb tso_start +EXPORT_SYMBOL vmlinux 0xca354cbd phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xca393d03 dev_mc_add +EXPORT_SYMBOL vmlinux 0xca4103aa ihold +EXPORT_SYMBOL vmlinux 0xca431c05 wake_bit_function +EXPORT_SYMBOL vmlinux 0xca5fd3de tty_kref_put +EXPORT_SYMBOL vmlinux 0xca66f6fb dcache_dir_close +EXPORT_SYMBOL vmlinux 0xca73d1cc __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xca8ba453 generic_perform_write +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xca9da221 tcf_block_get +EXPORT_SYMBOL vmlinux 0xcaa324f4 page_pool_destroy +EXPORT_SYMBOL vmlinux 0xcaa4a66a configfs_unregister_subsystem +EXPORT_SYMBOL vmlinux 0xcab1bd23 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xcab3584b seq_path +EXPORT_SYMBOL vmlinux 0xcab682d1 tc_setup_cb_reoffload +EXPORT_SYMBOL vmlinux 0xcae3a07a sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xcae9b425 dquot_quotactl_sysfile_ops +EXPORT_SYMBOL vmlinux 0xcb0cd6ad genphy_read_mmd_unsupported +EXPORT_SYMBOL vmlinux 0xcb196b9d __vcalloc +EXPORT_SYMBOL vmlinux 0xcb1c4820 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xcb275a67 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xcb34a6e7 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xcb3ae215 call_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xcb497f44 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xcb5dd401 kbd_alloc +EXPORT_SYMBOL vmlinux 0xcb6aa591 readahead_expand +EXPORT_SYMBOL vmlinux 0xcb9fd535 param_get_bool +EXPORT_SYMBOL vmlinux 0xcba6550b __SCK__tp_func_s390_cio_xsch +EXPORT_SYMBOL vmlinux 0xcbabfca5 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc21008 flow_rule_match_tcp +EXPORT_SYMBOL vmlinux 0xcbd4898c fortify_panic +EXPORT_SYMBOL vmlinux 0xcbf73547 xsk_tx_release +EXPORT_SYMBOL vmlinux 0xcc328a5c reservation_ww_class +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 0xcc716aae netdev_pick_tx +EXPORT_SYMBOL vmlinux 0xcc87a5ee blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0xcca1aa67 phy_device_remove +EXPORT_SYMBOL vmlinux 0xcca28310 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xccb491e8 bsearch +EXPORT_SYMBOL vmlinux 0xccc578df md_handle_request +EXPORT_SYMBOL vmlinux 0xccd4c999 __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xccdff4f2 tty_name +EXPORT_SYMBOL vmlinux 0xccfb9e07 dst_default_metrics +EXPORT_SYMBOL vmlinux 0xccfd2ebc scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0xcd0c29d2 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xcd1eca4c pci_get_subsys +EXPORT_SYMBOL vmlinux 0xcd256667 tcp_md5_needed +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd3bae43 km_state_notify +EXPORT_SYMBOL vmlinux 0xcd3c86fc ccw_device_tm_start_timeout +EXPORT_SYMBOL vmlinux 0xcd676038 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xcd7a7d99 udp_poll +EXPORT_SYMBOL vmlinux 0xcd876d63 tcf_idr_check_alloc +EXPORT_SYMBOL vmlinux 0xcdba96ce sget +EXPORT_SYMBOL vmlinux 0xcdbb2860 flow_rule_match_ip +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde77bcc free_opal_dev +EXPORT_SYMBOL vmlinux 0xce05e61b ap_cancel_message +EXPORT_SYMBOL vmlinux 0xce0c1f34 dfltcc_deflate +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2f8b65 blk_mq_tagset_wait_completed_request +EXPORT_SYMBOL vmlinux 0xce308eb7 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xce42f1ce hdmi_infoframe_pack +EXPORT_SYMBOL vmlinux 0xce4cdb8e fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xce595ea2 pci_enable_device +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce835291 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xce8b41eb mem_section +EXPORT_SYMBOL vmlinux 0xce98268b request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xceab0311 strchrnul +EXPORT_SYMBOL vmlinux 0xcebb1ef2 gro_find_complete_by_type +EXPORT_SYMBOL vmlinux 0xcebe3bd9 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xcec321ea dqput +EXPORT_SYMBOL vmlinux 0xcec68b42 tcf_qevent_init +EXPORT_SYMBOL vmlinux 0xcece984c debug_register_mode +EXPORT_SYMBOL vmlinux 0xceec8abd __mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xcf04a298 netdev_offload_xstats_disable +EXPORT_SYMBOL vmlinux 0xcf0ac474 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xcf2cc292 vfs_llseek +EXPORT_SYMBOL vmlinux 0xcf3b69b3 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xcf4d66a9 ap_get_qdev +EXPORT_SYMBOL vmlinux 0xcf4f1768 vfs_getattr +EXPORT_SYMBOL vmlinux 0xcf64b0d5 raw3270_request_free +EXPORT_SYMBOL vmlinux 0xcf6a576c dma_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xcf8f3b49 ns_capable_noaudit +EXPORT_SYMBOL vmlinux 0xcf99b5c9 md_write_start +EXPORT_SYMBOL vmlinux 0xcf9b558d touchscreen_set_mt_pos +EXPORT_SYMBOL vmlinux 0xcfa269b2 put_cmsg_scm_timestamping +EXPORT_SYMBOL vmlinux 0xcfb0897e md_bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xcfba080c __debug_sprintf_exception +EXPORT_SYMBOL vmlinux 0xcfc8eed8 __zerocopy_sg_from_iter +EXPORT_SYMBOL vmlinux 0xcfca3972 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xcfdba002 mdio_device_create +EXPORT_SYMBOL vmlinux 0xcff047f9 dma_get_sgtable_attrs +EXPORT_SYMBOL vmlinux 0xd006b05c kthread_create_worker_on_cpu +EXPORT_SYMBOL vmlinux 0xd00a0724 jbd2_journal_submit_inode_data_buffers +EXPORT_SYMBOL vmlinux 0xd00d30e9 netdev_emerg +EXPORT_SYMBOL vmlinux 0xd04c1a64 sysctl_devconf_inherit_init_net +EXPORT_SYMBOL vmlinux 0xd0654aba woken_wake_function +EXPORT_SYMBOL vmlinux 0xd0693fa1 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xd0760fc0 kfree_sensitive +EXPORT_SYMBOL vmlinux 0xd0913425 pci_enable_wake +EXPORT_SYMBOL vmlinux 0xd0a0c56a d_set_d_op +EXPORT_SYMBOL vmlinux 0xd0a951fe xfrm_register_type +EXPORT_SYMBOL vmlinux 0xd0b67b5e _dev_info +EXPORT_SYMBOL vmlinux 0xd0c945b8 security_sctp_bind_connect +EXPORT_SYMBOL vmlinux 0xd0d9c0dd pneigh_lookup +EXPORT_SYMBOL vmlinux 0xd0eb8e61 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xd0ec9100 migrate_page +EXPORT_SYMBOL vmlinux 0xd0f42e81 dma_fence_array_next +EXPORT_SYMBOL vmlinux 0xd10c0f60 dquot_get_next_id +EXPORT_SYMBOL vmlinux 0xd11bac17 check_zeroed_user +EXPORT_SYMBOL vmlinux 0xd1277cf4 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xd133136a ns_capable +EXPORT_SYMBOL vmlinux 0xd14b8d6d rtnl_notify +EXPORT_SYMBOL vmlinux 0xd15948aa netpoll_poll_disable +EXPORT_SYMBOL vmlinux 0xd1696852 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xd17497b8 netdev_warn +EXPORT_SYMBOL vmlinux 0xd17d2071 d_find_alias +EXPORT_SYMBOL vmlinux 0xd17de455 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0xd187b791 security_binder_set_context_mgr +EXPORT_SYMBOL vmlinux 0xd18c3e3f dev_uc_init +EXPORT_SYMBOL vmlinux 0xd1b4b419 tcw_get_intrg +EXPORT_SYMBOL vmlinux 0xd1d87e92 scsi_mlreturn_string +EXPORT_SYMBOL vmlinux 0xd1dcda0b set_security_override +EXPORT_SYMBOL vmlinux 0xd1ec47c4 phy_get_c45_ids +EXPORT_SYMBOL vmlinux 0xd1f0027c inet_addr_type_dev_table +EXPORT_SYMBOL vmlinux 0xd1f6bdc9 padata_free +EXPORT_SYMBOL vmlinux 0xd209e848 memcpy_and_pad +EXPORT_SYMBOL vmlinux 0xd20d8b4b iterate_fd +EXPORT_SYMBOL vmlinux 0xd2260096 radix_tree_iter_delete +EXPORT_SYMBOL vmlinux 0xd22aa148 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0xd2327d69 fb_blank +EXPORT_SYMBOL vmlinux 0xd23e8a2c folio_write_one +EXPORT_SYMBOL vmlinux 0xd2504a8c arch_spin_lock_wait +EXPORT_SYMBOL vmlinux 0xd2510a63 up_write +EXPORT_SYMBOL vmlinux 0xd2582f8f __SCK__tp_func_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xd25accfe grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2800691 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0xd2ab02ac __ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xd2bf1c11 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd2d53a2f generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xd2d88506 netdev_offload_xstats_report_used +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e589c8 padata_do_parallel +EXPORT_SYMBOL vmlinux 0xd2ec3f87 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xd302368d sock_i_uid +EXPORT_SYMBOL vmlinux 0xd3189dd5 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xd31e91a4 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xd32dff35 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xd337b6d4 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd33ba3ec register_mii_tstamp_controller +EXPORT_SYMBOL vmlinux 0xd353b020 sg_alloc_table_from_pages_segment +EXPORT_SYMBOL vmlinux 0xd3543063 memcg_kmem_enabled_key +EXPORT_SYMBOL vmlinux 0xd35a6d31 mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xd36b8968 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xd36dc10c get_random_u32 +EXPORT_SYMBOL vmlinux 0xd37364f6 dst_discard_out +EXPORT_SYMBOL vmlinux 0xd37cbe97 __get_hash_from_flowi6 +EXPORT_SYMBOL vmlinux 0xd385e903 dquot_release +EXPORT_SYMBOL vmlinux 0xd38a8a73 flow_indr_block_cb_alloc +EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user +EXPORT_SYMBOL vmlinux 0xd3b48b1d vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xd3c64b17 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xd3cf1c01 down_write +EXPORT_SYMBOL vmlinux 0xd3daf58e put_disk +EXPORT_SYMBOL vmlinux 0xd3ededaa reuseport_detach_prog +EXPORT_SYMBOL vmlinux 0xd405a725 generic_parse_monolithic +EXPORT_SYMBOL vmlinux 0xd406d266 fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xd411ff79 crypto_sha256_finup +EXPORT_SYMBOL vmlinux 0xd41b20d3 skb_ensure_writable +EXPORT_SYMBOL vmlinux 0xd42db92b sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xd43cef97 vfs_unlink +EXPORT_SYMBOL vmlinux 0xd443305e begin_new_exec +EXPORT_SYMBOL vmlinux 0xd44a4f1f write_cache_pages +EXPORT_SYMBOL vmlinux 0xd44ba0cf jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xd44c1fc9 locks_free_lock +EXPORT_SYMBOL vmlinux 0xd46d0a21 dev_pre_changeaddr_notify +EXPORT_SYMBOL vmlinux 0xd482f63c genphy_read_status_fixed +EXPORT_SYMBOL vmlinux 0xd48f69c8 tcw_get_tsb +EXPORT_SYMBOL vmlinux 0xd49148a5 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xd4952cc0 cpumask_next_wrap +EXPORT_SYMBOL vmlinux 0xd4ac54eb locks_copy_conflock +EXPORT_SYMBOL vmlinux 0xd4bb4a82 inet6addr_validator_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xd4db06dd scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xd4dd4614 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xd4ede57d pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xd4fa5a87 __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0xd500d663 finish_open +EXPORT_SYMBOL vmlinux 0xd50739d7 tcp_check_req +EXPORT_SYMBOL vmlinux 0xd50c6afb blk_mq_stop_hw_queues +EXPORT_SYMBOL vmlinux 0xd50f334e tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xd5125c46 netdev_has_upper_dev_all_rcu +EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0xd5548554 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0xd566933c up +EXPORT_SYMBOL vmlinux 0xd584581b unlock_buffer +EXPORT_SYMBOL vmlinux 0xd587ea56 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xd589f45a sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xd5936c47 tcf_action_set_ctrlact +EXPORT_SYMBOL vmlinux 0xd59d2b65 flow_rule_match_control +EXPORT_SYMBOL vmlinux 0xd5a6b0a7 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xd5a890f5 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xd5b3d0d5 xxh64_copy_state +EXPORT_SYMBOL vmlinux 0xd5b620b4 sock_efree +EXPORT_SYMBOL vmlinux 0xd5b9020b dev_addr_mod +EXPORT_SYMBOL vmlinux 0xd5c41be5 tc_setup_cb_add +EXPORT_SYMBOL vmlinux 0xd5d209af pci_unregister_driver +EXPORT_SYMBOL vmlinux 0xd5e90454 ap_domain_index +EXPORT_SYMBOL vmlinux 0xd60198e6 generic_fillattr +EXPORT_SYMBOL vmlinux 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL vmlinux 0xd60c6f4d page_pool_update_nid +EXPORT_SYMBOL vmlinux 0xd63dff2f textsearch_register +EXPORT_SYMBOL vmlinux 0xd64426b5 __traceiter_s390_cio_hsch +EXPORT_SYMBOL vmlinux 0xd64968c5 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0xd66ff04f napi_schedule_prep +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd68c5a1f adjust_resource +EXPORT_SYMBOL vmlinux 0xd6a53c42 fscrypt_free_bounce_page +EXPORT_SYMBOL vmlinux 0xd6b1b33c flow_block_cb_incref +EXPORT_SYMBOL vmlinux 0xd6b1e29c do_SAK +EXPORT_SYMBOL vmlinux 0xd6bf3f5d zstd_init_cctx +EXPORT_SYMBOL vmlinux 0xd6c394d3 netdev_lower_dev_get_private +EXPORT_SYMBOL vmlinux 0xd6d78073 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xd6eaaea1 full_name_hash +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6fde043 is_module_sig_enforced +EXPORT_SYMBOL vmlinux 0xd704bdc6 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xd70d35a1 gf128mul_4k_bbe +EXPORT_SYMBOL vmlinux 0xd72c4b74 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xd738ca1b phy_unregister_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xd73c8c2b synchronize_shrinkers +EXPORT_SYMBOL vmlinux 0xd73d34e0 unregister_external_irq +EXPORT_SYMBOL vmlinux 0xd74478f1 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xd7489b05 ap_send_config_uevent +EXPORT_SYMBOL vmlinux 0xd74d6864 raw3270_request_add_data +EXPORT_SYMBOL vmlinux 0xd7825731 no_seek_end_llseek_size +EXPORT_SYMBOL vmlinux 0xd78ce9bd dev_uc_sync +EXPORT_SYMBOL vmlinux 0xd7987177 utf8_load +EXPORT_SYMBOL vmlinux 0xd7a795be simple_dir_operations +EXPORT_SYMBOL vmlinux 0xd7ca880d filemap_invalidate_lock_two +EXPORT_SYMBOL vmlinux 0xd7d03d02 module_layout +EXPORT_SYMBOL vmlinux 0xd7d280ad irq_poll_complete +EXPORT_SYMBOL vmlinux 0xd7e1c5e1 kstrtobool_from_user +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd80a0c64 phy_sfp_probe +EXPORT_SYMBOL vmlinux 0xd8167ebc nf_unregister_net_hook +EXPORT_SYMBOL vmlinux 0xd8199303 __d_drop +EXPORT_SYMBOL vmlinux 0xd81a2552 blk_mq_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xd821f93a sock_enable_timestamps +EXPORT_SYMBOL vmlinux 0xd827fff3 memremap +EXPORT_SYMBOL vmlinux 0xd82d3f28 input_set_poll_interval +EXPORT_SYMBOL vmlinux 0xd853dc7b d_lookup +EXPORT_SYMBOL vmlinux 0xd85c382f generic_file_mmap +EXPORT_SYMBOL vmlinux 0xd88dbbf4 refcount_dec_and_lock +EXPORT_SYMBOL vmlinux 0xd8920697 xsk_get_pool_from_qid +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a994eb scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0xd8ae7360 ethtool_virtdev_set_link_ksettings +EXPORT_SYMBOL vmlinux 0xd8b61304 get_default_font +EXPORT_SYMBOL vmlinux 0xd8d33d18 param_set_ulong +EXPORT_SYMBOL vmlinux 0xd8e41cc6 utf8_strncmp +EXPORT_SYMBOL vmlinux 0xd8fcda72 cpcmd +EXPORT_SYMBOL vmlinux 0xd8fea321 __xa_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xd9014277 fbcon_update_vcs +EXPORT_SYMBOL vmlinux 0xd904643f netdev_lower_get_next_private_rcu +EXPORT_SYMBOL vmlinux 0xd911e970 dev_change_flags +EXPORT_SYMBOL vmlinux 0xd925426f __brelse +EXPORT_SYMBOL vmlinux 0xd9255f23 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xd92c2afb zstd_decompress_stream +EXPORT_SYMBOL vmlinux 0xd93dd3c3 proc_dointvec +EXPORT_SYMBOL vmlinux 0xd943e74c tcf_action_exec +EXPORT_SYMBOL vmlinux 0xd9454bbc raw3270_reset +EXPORT_SYMBOL vmlinux 0xd95fa103 dentry_open +EXPORT_SYMBOL vmlinux 0xd96de8cb __sysfs_match_string +EXPORT_SYMBOL vmlinux 0xd978d7e7 configfs_remove_default_groups +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd989fcba may_umount_tree +EXPORT_SYMBOL vmlinux 0xd98b8b48 __dev_remove_pack +EXPORT_SYMBOL vmlinux 0xd990b717 netif_rx +EXPORT_SYMBOL vmlinux 0xd999f881 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0xd9ab9a30 simple_transaction_get +EXPORT_SYMBOL vmlinux 0xd9b3075a from_kuid_munged +EXPORT_SYMBOL vmlinux 0xd9b3f97d console_devno +EXPORT_SYMBOL vmlinux 0xd9b8eaea __SCK__tp_func_dma_fence_signaled +EXPORT_SYMBOL vmlinux 0xd9c65971 filp_open +EXPORT_SYMBOL vmlinux 0xd9d8fd16 register_restart_handler +EXPORT_SYMBOL vmlinux 0xd9d952d1 crypto_aes_sbox +EXPORT_SYMBOL vmlinux 0xd9dab3ac jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xd9e0e6aa udp6_csum_init +EXPORT_SYMBOL vmlinux 0xda045138 bpf_empty_prog_array +EXPORT_SYMBOL vmlinux 0xda28a9b7 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xda35253c ndisc_ns_create +EXPORT_SYMBOL vmlinux 0xda3a0c12 skb_dump +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda41b26d sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xda5d2b86 __scm_send +EXPORT_SYMBOL vmlinux 0xda6c0aef kern_path_create +EXPORT_SYMBOL vmlinux 0xda6fa05c _atomic_dec_and_lock_irqsave +EXPORT_SYMBOL vmlinux 0xda7ab042 class3270 +EXPORT_SYMBOL vmlinux 0xda7fc5e2 xfrm6_rcv_encap +EXPORT_SYMBOL vmlinux 0xda8eb740 kbd_free +EXPORT_SYMBOL vmlinux 0xdaa311c6 bio_copy_data_iter +EXPORT_SYMBOL vmlinux 0xdaa8ad1a param_set_invbool +EXPORT_SYMBOL vmlinux 0xdaac94ab setup_arg_pages +EXPORT_SYMBOL vmlinux 0xdabeed1c genphy_check_and_restart_aneg +EXPORT_SYMBOL vmlinux 0xdac4913a bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0xdad9b66d locks_copy_lock +EXPORT_SYMBOL vmlinux 0xdae162cb string_unescape +EXPORT_SYMBOL vmlinux 0xdaec288d pr_flush +EXPORT_SYMBOL vmlinux 0xdb203be9 genphy_resume +EXPORT_SYMBOL vmlinux 0xdb2abde4 __cpuhp_remove_state +EXPORT_SYMBOL vmlinux 0xdb5bc7dd jbd2_wait_inode_data +EXPORT_SYMBOL vmlinux 0xdb66a7de drop_super +EXPORT_SYMBOL vmlinux 0xdb6ef507 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7f3595 unregister_netdev +EXPORT_SYMBOL vmlinux 0xdb8f4844 vfs_tmpfile +EXPORT_SYMBOL vmlinux 0xdb981063 dma_set_coherent_mask +EXPORT_SYMBOL vmlinux 0xdb9e4bd2 phy_attached_print +EXPORT_SYMBOL vmlinux 0xdba16ece set_capacity +EXPORT_SYMBOL vmlinux 0xdbc80c5b wake_up_process +EXPORT_SYMBOL vmlinux 0xdbcfcf57 input_setup_polling +EXPORT_SYMBOL vmlinux 0xdbd22258 seg6_hmac_info_add +EXPORT_SYMBOL vmlinux 0xdbdd0696 seq_file_path +EXPORT_SYMBOL vmlinux 0xdbdf6c92 ioport_resource +EXPORT_SYMBOL vmlinux 0xdc05ba1e tcp_mtu_to_mss +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc49c198 reciprocal_value_adv +EXPORT_SYMBOL vmlinux 0xdc6081cc pskb_extract +EXPORT_SYMBOL vmlinux 0xdc8e8eec folio_end_private_2 +EXPORT_SYMBOL vmlinux 0xdc96f398 __SCK__tp_func_s390_cio_csch +EXPORT_SYMBOL vmlinux 0xdca05e28 _dev_err +EXPORT_SYMBOL vmlinux 0xdcb0a839 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xdcb8c41e free_buffer_head +EXPORT_SYMBOL vmlinux 0xdcd0315a key_payload_reserve +EXPORT_SYMBOL vmlinux 0xdcee6131 __next_node_in +EXPORT_SYMBOL vmlinux 0xdcf70e48 seq_write +EXPORT_SYMBOL vmlinux 0xdcf84646 sort_r +EXPORT_SYMBOL vmlinux 0xdd0a10ce fiemap_prep +EXPORT_SYMBOL vmlinux 0xdd0ec534 sk_wait_data +EXPORT_SYMBOL vmlinux 0xdd1dd655 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xdd205730 xfrm_lookup +EXPORT_SYMBOL vmlinux 0xdd276d50 scsi_add_device +EXPORT_SYMBOL vmlinux 0xdd2c169b mb_cache_create +EXPORT_SYMBOL vmlinux 0xdd3171f1 skb_clone_sk +EXPORT_SYMBOL vmlinux 0xdd38b098 phy_device_free +EXPORT_SYMBOL vmlinux 0xdd53565f seq_dentry +EXPORT_SYMBOL vmlinux 0xdd595635 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xdd66577d get_guest_storage_key +EXPORT_SYMBOL vmlinux 0xdd6e474f phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xdd849d51 scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0xddaf8302 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xddb6ef29 __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xddbfcd19 param_set_hexint +EXPORT_SYMBOL vmlinux 0xddc74f88 ipv4_specific +EXPORT_SYMBOL vmlinux 0xdddf2bb3 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xddf2dedc console_stop +EXPORT_SYMBOL vmlinux 0xddfd7fb4 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xde03b130 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xde0bdcff memset +EXPORT_SYMBOL vmlinux 0xde1371ce radix_tree_tagged +EXPORT_SYMBOL vmlinux 0xde412e58 get_user_pages_unlocked +EXPORT_SYMBOL vmlinux 0xde4d4ace dim_calc_stats +EXPORT_SYMBOL vmlinux 0xde5153f1 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xde6612f8 framebuffer_release +EXPORT_SYMBOL vmlinux 0xde74711a blk_mq_start_hw_queue +EXPORT_SYMBOL vmlinux 0xde80e8ce vlan_vid_del +EXPORT_SYMBOL vmlinux 0xde8dd54a jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0xdead2799 tcp_inbound_md5_hash +EXPORT_SYMBOL vmlinux 0xdeb70a96 scsi_target_resume +EXPORT_SYMBOL vmlinux 0xdeb98fa6 generic_write_checks_count +EXPORT_SYMBOL vmlinux 0xdebb8a67 gen_pool_dma_alloc_align +EXPORT_SYMBOL vmlinux 0xded39a6b gen_kill_estimator +EXPORT_SYMBOL vmlinux 0xdeda2ae2 tcw_get_data +EXPORT_SYMBOL vmlinux 0xdeeb2f29 igrab +EXPORT_SYMBOL vmlinux 0xdef0d558 logfc +EXPORT_SYMBOL vmlinux 0xdef7c893 fb_match_mode +EXPORT_SYMBOL vmlinux 0xdef84f9f radix_tree_lookup +EXPORT_SYMBOL vmlinux 0xdf0b6149 dquot_reclaim_space_nodirty +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf3668d4 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf552ff6 kobject_get_unless_zero +EXPORT_SYMBOL vmlinux 0xdf6175c2 param_ops_charp +EXPORT_SYMBOL vmlinux 0xdf6d476e __percpu_counter_init +EXPORT_SYMBOL vmlinux 0xdf6eedfb unregister_cdrom +EXPORT_SYMBOL vmlinux 0xdf83be3b flow_rule_match_icmp +EXPORT_SYMBOL vmlinux 0xdf84a749 dma_map_sg_attrs +EXPORT_SYMBOL vmlinux 0xdf8740f5 mr_mfc_find_any_parent +EXPORT_SYMBOL vmlinux 0xdf87d963 __sock_cmsg_send +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdf93b9d8 timespec64_to_jiffies +EXPORT_SYMBOL vmlinux 0xdfa9acca smp_cpu_mtid +EXPORT_SYMBOL vmlinux 0xdfcc992c current_work +EXPORT_SYMBOL vmlinux 0xdfdb5aa4 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xdffc80fc vesa_modes +EXPORT_SYMBOL vmlinux 0xe00ea4d0 jbd2_transaction_committed +EXPORT_SYMBOL vmlinux 0xe0419ac4 kstrtos16 +EXPORT_SYMBOL vmlinux 0xe056e375 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xe05c0277 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xe05d6daa sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xe0678f1c pcie_bandwidth_available +EXPORT_SYMBOL vmlinux 0xe068a91c gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xe070019a __cpuhp_setup_state_cpuslocked +EXPORT_SYMBOL vmlinux 0xe080e8f0 set_current_groups +EXPORT_SYMBOL vmlinux 0xe08c4a34 lookup_positive_unlocked +EXPORT_SYMBOL vmlinux 0xe091c977 list_sort +EXPORT_SYMBOL vmlinux 0xe09b6b3b folio_mark_dirty +EXPORT_SYMBOL vmlinux 0xe0a323f6 __do_once_slow_start +EXPORT_SYMBOL vmlinux 0xe0a8ad85 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xe0f11d08 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xe1053918 fb_get_mode +EXPORT_SYMBOL vmlinux 0xe10595c9 __tracepoint_s390_cio_tpi +EXPORT_SYMBOL vmlinux 0xe106e54d pid_task +EXPORT_SYMBOL vmlinux 0xe123f3d9 dma_fence_release +EXPORT_SYMBOL vmlinux 0xe124a899 tccb_add_dcw +EXPORT_SYMBOL vmlinux 0xe125cbde phy_do_ioctl +EXPORT_SYMBOL vmlinux 0xe1371af8 dev_get_flags +EXPORT_SYMBOL vmlinux 0xe13af26f sclp_pci_deconfigure +EXPORT_SYMBOL vmlinux 0xe14b7b56 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe1580129 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0xe16e119e scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xe17263e2 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xe18a4076 set_nlink +EXPORT_SYMBOL vmlinux 0xe196b6ef fscrypt_put_encryption_info +EXPORT_SYMBOL vmlinux 0xe19f174a vfs_fsync +EXPORT_SYMBOL vmlinux 0xe1cee888 devm_iounmap +EXPORT_SYMBOL vmlinux 0xe1dcf64a audit_log_format +EXPORT_SYMBOL vmlinux 0xe1ed478c arp_create +EXPORT_SYMBOL vmlinux 0xe21da4fd skb_copy_datagram_from_iter +EXPORT_SYMBOL vmlinux 0xe23fc8bf rtnl_kfree_skbs +EXPORT_SYMBOL vmlinux 0xe254f4f8 xa_get_mark +EXPORT_SYMBOL vmlinux 0xe257cd6e dquot_acquire +EXPORT_SYMBOL vmlinux 0xe258a340 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0xe273d75d alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0xe27d1e54 tcf_register_action +EXPORT_SYMBOL vmlinux 0xe27d87a4 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0xe2806211 proc_create_single_data +EXPORT_SYMBOL vmlinux 0xe280dcb4 genphy_setup_forced +EXPORT_SYMBOL vmlinux 0xe282cb05 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xe2942073 dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe294f4e9 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xe29d2d02 __genradix_ptr_alloc +EXPORT_SYMBOL vmlinux 0xe29f61fb genphy_soft_reset +EXPORT_SYMBOL vmlinux 0xe2a35869 release_pages +EXPORT_SYMBOL vmlinux 0xe2b52182 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xe2c1a867 jbd2_journal_invalidate_folio +EXPORT_SYMBOL vmlinux 0xe2cf2862 tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xe2d3e8e6 ipv6_chk_addr_and_flags +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e391ad nla_reserve_64bit +EXPORT_SYMBOL vmlinux 0xe2f565dc blkdev_issue_secure_erase +EXPORT_SYMBOL vmlinux 0xe2fb1257 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xe30be315 hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe3162e89 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xe3194dc2 mount_single +EXPORT_SYMBOL vmlinux 0xe32151de unregister_nexthop_notifier +EXPORT_SYMBOL vmlinux 0xe323ced7 pci_set_mwi +EXPORT_SYMBOL vmlinux 0xe328acd6 pcie_relaxed_ordering_enabled +EXPORT_SYMBOL vmlinux 0xe32ab4d8 xxh64_digest +EXPORT_SYMBOL vmlinux 0xe3423b36 ap_queue_init_state +EXPORT_SYMBOL vmlinux 0xe351168d eth_header_parse +EXPORT_SYMBOL vmlinux 0xe3513bb2 sk_ns_capable +EXPORT_SYMBOL vmlinux 0xe35fb609 kmemdup +EXPORT_SYMBOL vmlinux 0xe36e101c udp_seq_ops +EXPORT_SYMBOL vmlinux 0xe372733d iterate_supers_type +EXPORT_SYMBOL vmlinux 0xe3816fa4 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xe386feff __phy_write_mmd +EXPORT_SYMBOL vmlinux 0xe3874ebb nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xe39b2ea5 sha256 +EXPORT_SYMBOL vmlinux 0xe3ae088c dev_uc_del +EXPORT_SYMBOL vmlinux 0xe3e3eb00 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0xe3e76aca __ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xe3ec2f2b alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0xe3f0d1de fb_find_mode +EXPORT_SYMBOL vmlinux 0xe3feba56 tasklet_unlock_spin_wait +EXPORT_SYMBOL vmlinux 0xe3febed5 is_bad_inode +EXPORT_SYMBOL vmlinux 0xe3ff2c41 get_random_u64 +EXPORT_SYMBOL vmlinux 0xe400cb76 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xe4034471 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xe40ebb78 simple_recursive_removal +EXPORT_SYMBOL vmlinux 0xe411d16a read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xe42736ce remap_pfn_range +EXPORT_SYMBOL vmlinux 0xe4329092 __ctzdi2 +EXPORT_SYMBOL vmlinux 0xe4397eb2 folio_migrate_copy +EXPORT_SYMBOL vmlinux 0xe43d9ab2 slash_name +EXPORT_SYMBOL vmlinux 0xe44b8c23 km_policy_notify +EXPORT_SYMBOL vmlinux 0xe450ae0e neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xe46397d1 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xe4743eb9 icmp6_send +EXPORT_SYMBOL vmlinux 0xe48f9a68 generic_setlease +EXPORT_SYMBOL vmlinux 0xe49c1afe filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xe4df9aec hdmi_drm_infoframe_unpack_only +EXPORT_SYMBOL vmlinux 0xe4e596dc pcim_iomap +EXPORT_SYMBOL vmlinux 0xe5032177 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe5094832 page_table_allocate_pgste +EXPORT_SYMBOL vmlinux 0xe50f0629 read_cache_page +EXPORT_SYMBOL vmlinux 0xe51454fb try_to_release_page +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe523f2ab dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe524e3e2 bcmp +EXPORT_SYMBOL vmlinux 0xe536c025 bio_add_page +EXPORT_SYMBOL vmlinux 0xe555c7ab radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xe55d3e3c ip_sock_set_recverr +EXPORT_SYMBOL vmlinux 0xe56325dc nf_reinject +EXPORT_SYMBOL vmlinux 0xe5652e83 sie64a +EXPORT_SYMBOL vmlinux 0xe566a253 netpoll_setup +EXPORT_SYMBOL vmlinux 0xe567deb2 xfrm_dev_state_flush +EXPORT_SYMBOL vmlinux 0xe56b0d0f stsch +EXPORT_SYMBOL vmlinux 0xe574004f pci_ep_cfs_add_epf_group +EXPORT_SYMBOL vmlinux 0xe5788dfa current_time +EXPORT_SYMBOL vmlinux 0xe58090ca security_ib_endport_manage_subnet +EXPORT_SYMBOL vmlinux 0xe58b8263 unregister_service_level +EXPORT_SYMBOL vmlinux 0xe590dea3 sk_busy_loop_end +EXPORT_SYMBOL vmlinux 0xe5a56ecd idr_get_next +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5da0e23 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xe5e32831 iunique +EXPORT_SYMBOL vmlinux 0xe5ebf8de security_dentry_create_files_as +EXPORT_SYMBOL vmlinux 0xe613a798 inet_addr_is_any +EXPORT_SYMBOL vmlinux 0xe66ac127 __devm_mdiobus_register +EXPORT_SYMBOL vmlinux 0xe67e53a4 add_to_page_cache_lru +EXPORT_SYMBOL vmlinux 0xe690fac3 pci_free_irq_vectors +EXPORT_SYMBOL vmlinux 0xe69c3b94 textsearch_destroy +EXPORT_SYMBOL vmlinux 0xe6c6f651 nonseekable_open +EXPORT_SYMBOL vmlinux 0xe6d2458e do_trace_netlink_extack +EXPORT_SYMBOL vmlinux 0xe6e3f9a1 configfs_register_group +EXPORT_SYMBOL vmlinux 0xe6f1486d dql_reset +EXPORT_SYMBOL vmlinux 0xe7097721 __devm_request_region +EXPORT_SYMBOL vmlinux 0xe70a2ae7 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xe70e184a xa_store +EXPORT_SYMBOL vmlinux 0xe713a97a irq_subclass_unregister +EXPORT_SYMBOL vmlinux 0xe720a84f devm_pci_remap_iospace +EXPORT_SYMBOL vmlinux 0xe726687e page_pool_put_page_bulk +EXPORT_SYMBOL vmlinux 0xe73c29ea d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xe7549fd0 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xe777e808 sclp_ap_configure +EXPORT_SYMBOL vmlinux 0xe796ecac __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xe796f19a hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe798236d jiffies +EXPORT_SYMBOL vmlinux 0xe7d0036d forget_all_cached_acls +EXPORT_SYMBOL vmlinux 0xe7d14ff4 __skb_get_hash +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7f42a7c pci_read_config_byte +EXPORT_SYMBOL vmlinux 0xe8257ebd inetdev_by_index +EXPORT_SYMBOL vmlinux 0xe8332b4b __tracepoint_s390_cio_stsch +EXPORT_SYMBOL vmlinux 0xe83dc720 udp_seq_stop +EXPORT_SYMBOL vmlinux 0xe83dc826 file_modified +EXPORT_SYMBOL vmlinux 0xe8467d12 devm_alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xe84c243f scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xe8534f9b pipe_lock +EXPORT_SYMBOL vmlinux 0xe871a315 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0xe88f1764 tc_setup_cb_replace +EXPORT_SYMBOL vmlinux 0xe8a0a36f remove_proc_entry +EXPORT_SYMBOL vmlinux 0xe8a50640 sk_free +EXPORT_SYMBOL vmlinux 0xe8aace1d skb_flow_dissect_ct +EXPORT_SYMBOL vmlinux 0xe8b5c3c3 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xe8ba125d kmemdup_nul +EXPORT_SYMBOL vmlinux 0xe8bf66fc d_path +EXPORT_SYMBOL vmlinux 0xe8c10e62 vlan_filter_push_vids +EXPORT_SYMBOL vmlinux 0xe9020709 trace_seq_hex_dump +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe947b2f0 __tracepoint_s390_cio_xsch +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9598814 set_page_writeback +EXPORT_SYMBOL vmlinux 0xe95e7e22 cookie_timestamp_decode +EXPORT_SYMBOL vmlinux 0xe963570b take_dentry_name_snapshot +EXPORT_SYMBOL vmlinux 0xe97f0111 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe97fd85a crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xe990a250 remove_conflicting_pci_framebuffers +EXPORT_SYMBOL vmlinux 0xe994130a __xa_store +EXPORT_SYMBOL vmlinux 0xe995eee3 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xe998854e jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xe9c201d1 kfree_skb_reason +EXPORT_SYMBOL vmlinux 0xe9c58a09 tcw_finalize +EXPORT_SYMBOL vmlinux 0xe9d9abd3 sock_create_lite +EXPORT_SYMBOL vmlinux 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL vmlinux 0xe9fb538a dm_table_get_md +EXPORT_SYMBOL vmlinux 0xe9fcb616 mempool_alloc +EXPORT_SYMBOL vmlinux 0xea063abb xattr_supported_namespace +EXPORT_SYMBOL vmlinux 0xea10f5bf blk_mq_alloc_request +EXPORT_SYMBOL vmlinux 0xea1dfa62 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xea3a7a6c super_setup_bdi_name +EXPORT_SYMBOL vmlinux 0xea3c8e4e scsilun_to_int +EXPORT_SYMBOL vmlinux 0xea45e5e0 sock_pfree +EXPORT_SYMBOL vmlinux 0xea5cb64d __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xea69710e block_write_full_page +EXPORT_SYMBOL vmlinux 0xea6ebfee inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xea6f9a36 zlib_deflate_dfltcc_enabled +EXPORT_SYMBOL vmlinux 0xea872313 find_next_bit_inv +EXPORT_SYMBOL vmlinux 0xea8ce2ce pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xeaa876ae end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xeab9e044 md_register_thread +EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump +EXPORT_SYMBOL vmlinux 0xeafc141f __posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xeb19be65 sync_file_create +EXPORT_SYMBOL vmlinux 0xeb1d05a9 fscrypt_encrypt_block_inplace +EXPORT_SYMBOL vmlinux 0xeb25fbde phy_support_sym_pause +EXPORT_SYMBOL vmlinux 0xeb2d469c d_instantiate_new +EXPORT_SYMBOL vmlinux 0xeb3318d2 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xeb35c417 security_task_getsecid_obj +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb588ae0 kthread_associate_blkcg +EXPORT_SYMBOL vmlinux 0xeb65573b ccw_device_set_offline +EXPORT_SYMBOL vmlinux 0xeb72972c balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xeb9dc55b ap_owned_by_def_drv +EXPORT_SYMBOL vmlinux 0xeb9e913d sgl_alloc_order +EXPORT_SYMBOL vmlinux 0xeb9eef52 match_uint +EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp +EXPORT_SYMBOL vmlinux 0xebcb8bdc kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0xebcc6da9 security_sb_remount +EXPORT_SYMBOL vmlinux 0xebd96d7a tty_lock +EXPORT_SYMBOL vmlinux 0xebdf0a55 dma_mmap_attrs +EXPORT_SYMBOL vmlinux 0xebf053bd tcp_mss_to_mtu +EXPORT_SYMBOL vmlinux 0xec1b0e7f get_user_pages +EXPORT_SYMBOL vmlinux 0xec27090a kernel_read +EXPORT_SYMBOL vmlinux 0xec2abfbd console_start +EXPORT_SYMBOL vmlinux 0xec2c78de zpool_register_driver +EXPORT_SYMBOL vmlinux 0xec2c8a29 vfs_get_super +EXPORT_SYMBOL vmlinux 0xec739745 sg_miter_skip +EXPORT_SYMBOL vmlinux 0xec997ea5 netif_tx_wake_queue +EXPORT_SYMBOL vmlinux 0xec9d7c8a __traceiter_s390_diagnose +EXPORT_SYMBOL vmlinux 0xec9ea737 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xeca8156b single_release +EXPORT_SYMBOL vmlinux 0xeca8a562 proc_create_data +EXPORT_SYMBOL vmlinux 0xecc44c27 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf847be tcf_classify +EXPORT_SYMBOL vmlinux 0xed084683 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xed09f4bd security_skb_classify_flow +EXPORT_SYMBOL vmlinux 0xed266580 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xed350b6f mark_buffer_write_io_error +EXPORT_SYMBOL vmlinux 0xed361b90 dup_iter +EXPORT_SYMBOL vmlinux 0xed3b0670 simple_open +EXPORT_SYMBOL vmlinux 0xed511df6 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xed5e9fab skb_copy_expand +EXPORT_SYMBOL vmlinux 0xed656e30 udp_encap_disable +EXPORT_SYMBOL vmlinux 0xed7929cf phy_register_fixup +EXPORT_SYMBOL vmlinux 0xed8362ce tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xed91caf3 netif_tx_lock +EXPORT_SYMBOL vmlinux 0xed936c48 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0xedb764db __dec_node_page_state +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbf0836 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedd17b31 sock_get_timeout +EXPORT_SYMBOL vmlinux 0xedf11d39 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xedf11e65 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xedfc1dae node_data +EXPORT_SYMBOL vmlinux 0xedfc98fc pci_rebar_get_possible_sizes +EXPORT_SYMBOL vmlinux 0xee08cada iucv_message_purge +EXPORT_SYMBOL vmlinux 0xee19cf6b jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4de4fb __traceiter_s390_cio_csch +EXPORT_SYMBOL vmlinux 0xee52ab94 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0xee58e970 fb_add_videomode +EXPORT_SYMBOL vmlinux 0xee596ade cpu_rmap_update +EXPORT_SYMBOL vmlinux 0xee6653ec dquot_quota_on +EXPORT_SYMBOL vmlinux 0xee673fbc tcf_action_update_hw_stats +EXPORT_SYMBOL vmlinux 0xee7f9e5b nosteal_pipe_buf_ops +EXPORT_SYMBOL vmlinux 0xee8c02e9 vprintk_emit +EXPORT_SYMBOL vmlinux 0xee8d74d6 jiffies64_to_nsecs +EXPORT_SYMBOL vmlinux 0xee8e56d3 pipe_unlock +EXPORT_SYMBOL vmlinux 0xee91879b rb_first_postorder +EXPORT_SYMBOL vmlinux 0xeea6beee thaw_bdev +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb62568 pci_read_config_word +EXPORT_SYMBOL vmlinux 0xeec05b68 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xeece81c5 ccw_device_get_path_mask +EXPORT_SYMBOL vmlinux 0xeedff578 __traceiter_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0xeee5ab77 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xef45d32c __kfifo_init +EXPORT_SYMBOL vmlinux 0xef5954d3 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xef65b75c sk_mc_loop +EXPORT_SYMBOL vmlinux 0xef8014bc devm_kvasprintf +EXPORT_SYMBOL vmlinux 0xef946d1b iget5_locked +EXPORT_SYMBOL vmlinux 0xef9f7fab filemap_dirty_folio +EXPORT_SYMBOL vmlinux 0xefaf2e4f tcf_queue_work +EXPORT_SYMBOL vmlinux 0xefb2c93e blk_rq_map_user +EXPORT_SYMBOL vmlinux 0xefb67ced sock_alloc_file +EXPORT_SYMBOL vmlinux 0xefb7defa nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xefc67050 __cpu_active_mask +EXPORT_SYMBOL vmlinux 0xefe21798 seg6_hmac_net_exit +EXPORT_SYMBOL vmlinux 0xefeefc09 __SCK__tp_func_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01eca9e pci_assign_resource +EXPORT_SYMBOL vmlinux 0xf023a2d9 ap_flush_queue +EXPORT_SYMBOL vmlinux 0xf025fa05 param_ops_ullong +EXPORT_SYMBOL vmlinux 0xf032a1d4 path_get +EXPORT_SYMBOL vmlinux 0xf037d545 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0xf050a337 sock_set_mark +EXPORT_SYMBOL vmlinux 0xf05c64f8 iucv_path_connect +EXPORT_SYMBOL vmlinux 0xf06482e0 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0xf068bf9d security_inet_conn_established +EXPORT_SYMBOL vmlinux 0xf0745600 __block_write_full_page +EXPORT_SYMBOL vmlinux 0xf075d7ee __folio_cancel_dirty +EXPORT_SYMBOL vmlinux 0xf076a53a pci_select_bars +EXPORT_SYMBOL vmlinux 0xf0887fec ccw_device_is_pathgroup +EXPORT_SYMBOL vmlinux 0xf0970e31 ip_frag_init +EXPORT_SYMBOL vmlinux 0xf09b5d9a get_zeroed_page +EXPORT_SYMBOL vmlinux 0xf0a415ff inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xf0b1ee90 ccw_device_dma_free +EXPORT_SYMBOL vmlinux 0xf0ea2318 __mutex_init +EXPORT_SYMBOL vmlinux 0xf0fbd2b7 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0xf0fc9aa8 sclp_cpi_set_data +EXPORT_SYMBOL vmlinux 0xf114415a tty_register_driver +EXPORT_SYMBOL vmlinux 0xf11dd46e _page_poisoning_enabled_early +EXPORT_SYMBOL vmlinux 0xf14e0176 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf1690224 lockref_put_not_zero +EXPORT_SYMBOL vmlinux 0xf16d0e67 param_set_charp +EXPORT_SYMBOL vmlinux 0xf1808e2b call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1969a8e __usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xf1adc6d2 neigh_proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xf1b1ef3f free_netdev +EXPORT_SYMBOL vmlinux 0xf1b79e7a shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xf1b96974 posix_acl_valid +EXPORT_SYMBOL vmlinux 0xf1cb353a page_cache_next_miss +EXPORT_SYMBOL vmlinux 0xf1d3380d __post_watch_notification +EXPORT_SYMBOL vmlinux 0xf1d992eb radix_tree_delete +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e046cc panic +EXPORT_SYMBOL vmlinux 0xf1e42c5f md_bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xf1e60989 mdio_driver_unregister +EXPORT_SYMBOL vmlinux 0xf1e78a37 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1e9f0ac tcf_block_put +EXPORT_SYMBOL vmlinux 0xf1f912ef PageMovable +EXPORT_SYMBOL vmlinux 0xf20f4ee7 tcf_qevent_handle +EXPORT_SYMBOL vmlinux 0xf225f82e dma_fence_array_create +EXPORT_SYMBOL vmlinux 0xf231a179 __skb_wait_for_more_packets +EXPORT_SYMBOL vmlinux 0xf232fceb inc_nlink +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24d4fb7 page_pool_create +EXPORT_SYMBOL vmlinux 0xf258142c radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0xf25ed853 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xf26be231 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2872b0a find_inode_rcu +EXPORT_SYMBOL vmlinux 0xf28cf0ae __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf2ac47ef _copy_to_iter +EXPORT_SYMBOL vmlinux 0xf2ac839b phy_read_mmd +EXPORT_SYMBOL vmlinux 0xf2be901c iov_iter_get_pages_alloc +EXPORT_SYMBOL vmlinux 0xf2c43f3f zlib_deflate +EXPORT_SYMBOL vmlinux 0xf2c45e1c deactivate_locked_super +EXPORT_SYMBOL vmlinux 0xf2cdd063 alloc_skb_with_frags +EXPORT_SYMBOL vmlinux 0xf2ce7ef9 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xf2e5bd87 security_free_mnt_opts +EXPORT_SYMBOL vmlinux 0xf2e6c16c filemap_fault +EXPORT_SYMBOL vmlinux 0xf3107926 sha224_update +EXPORT_SYMBOL vmlinux 0xf31c0d52 ioremap +EXPORT_SYMBOL vmlinux 0xf326d354 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf3367dc4 gro_find_receive_by_type +EXPORT_SYMBOL vmlinux 0xf33a9435 raw3270_request_alloc +EXPORT_SYMBOL vmlinux 0xf34490b1 radix_tree_iter_resume +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34d612c inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf36a55ae proc_create +EXPORT_SYMBOL vmlinux 0xf36f9195 __register_binfmt +EXPORT_SYMBOL vmlinux 0xf37ea5d0 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xf384b628 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf393e9eb kmalloc_caches +EXPORT_SYMBOL vmlinux 0xf3ac9bef pci_iomap_wc_range +EXPORT_SYMBOL vmlinux 0xf3b74f79 __iucv_message_send +EXPORT_SYMBOL vmlinux 0xf3bcde23 cookie_ecn_ok +EXPORT_SYMBOL vmlinux 0xf3c5bbdf reuseport_migrate_sock +EXPORT_SYMBOL vmlinux 0xf3ca733b hdmi_drm_infoframe_pack +EXPORT_SYMBOL vmlinux 0xf3e0e1df allocate_resource +EXPORT_SYMBOL vmlinux 0xf3f61b4f xfrm_state_free +EXPORT_SYMBOL vmlinux 0xf3f6a4e8 has_capability +EXPORT_SYMBOL vmlinux 0xf40dde1d skb_flow_dissector_init +EXPORT_SYMBOL vmlinux 0xf43725fb s390_arch_random_counter +EXPORT_SYMBOL vmlinux 0xf4459e83 ip6_frag_init +EXPORT_SYMBOL vmlinux 0xf44a904a net_ns_barrier +EXPORT_SYMBOL vmlinux 0xf4513d84 sock_from_file +EXPORT_SYMBOL vmlinux 0xf474c21c bitmap_print_to_pagebuf +EXPORT_SYMBOL vmlinux 0xf474fdcb kfree_const +EXPORT_SYMBOL vmlinux 0xf475ecf6 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xf47d18dc ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xf48ab693 configfs_undepend_item +EXPORT_SYMBOL vmlinux 0xf4a66c9d user_revoke +EXPORT_SYMBOL vmlinux 0xf4bb992f inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xf4db35bc stpcpy +EXPORT_SYMBOL vmlinux 0xf4db8a9a path_is_mountpoint +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1d73f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xf4f66cbd inet_stream_ops +EXPORT_SYMBOL vmlinux 0xf52b84e7 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xf539f31a skb_copy +EXPORT_SYMBOL vmlinux 0xf53aa07a skb_checksum_trimmed +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf53ee3ea unix_destruct_scm +EXPORT_SYMBOL vmlinux 0xf5467936 filemap_invalidate_unlock_two +EXPORT_SYMBOL vmlinux 0xf54c7daf dev_addr_add +EXPORT_SYMBOL vmlinux 0xf55f2a40 sg_alloc_append_table_from_pages +EXPORT_SYMBOL vmlinux 0xf573e78d __vmalloc_array +EXPORT_SYMBOL vmlinux 0xf5a1ef32 init_net +EXPORT_SYMBOL vmlinux 0xf5c48efe vfs_parse_fs_param +EXPORT_SYMBOL vmlinux 0xf5d8adf8 pci_set_master +EXPORT_SYMBOL vmlinux 0xf5e7ea40 ktime_get_coarse_ts64 +EXPORT_SYMBOL vmlinux 0xf6006112 kbd_keycode +EXPORT_SYMBOL vmlinux 0xf6068b2e mr_vif_seq_next +EXPORT_SYMBOL vmlinux 0xf61a0b22 __lock_sock_fast +EXPORT_SYMBOL vmlinux 0xf62046de misc_register +EXPORT_SYMBOL vmlinux 0xf63d2520 skb_unlink +EXPORT_SYMBOL vmlinux 0xf643d104 hsiphash_4u32 +EXPORT_SYMBOL vmlinux 0xf649885b tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xf654c71b bio_split +EXPORT_SYMBOL vmlinux 0xf656ee7b dev_trans_start +EXPORT_SYMBOL vmlinux 0xf6584cdb single_open +EXPORT_SYMBOL vmlinux 0xf665f74f sock_load_diag_module +EXPORT_SYMBOL vmlinux 0xf66ba91e dma_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0xf68056fb device_get_ethdev_address +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf686e140 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xf68d63ee skb_free_datagram +EXPORT_SYMBOL vmlinux 0xf6a9af12 copy_string_kernel +EXPORT_SYMBOL vmlinux 0xf6ab2e8e bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xf6b73522 km_new_mapping +EXPORT_SYMBOL vmlinux 0xf6bfe636 write_inode_now +EXPORT_SYMBOL vmlinux 0xf6c3e4aa wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xf6ca1767 ip_sock_set_tos +EXPORT_SYMBOL vmlinux 0xf6ca3247 vfs_rename +EXPORT_SYMBOL vmlinux 0xf6e23170 ipv6_mc_check_mld +EXPORT_SYMBOL vmlinux 0xf6e4fbfb netif_skb_features +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6ed9ce1 pci_release_region +EXPORT_SYMBOL vmlinux 0xf6ee0046 pci_read_config_dword +EXPORT_SYMBOL vmlinux 0xf6f9d58d init_on_free +EXPORT_SYMBOL vmlinux 0xf6fc8791 __bitmap_xor +EXPORT_SYMBOL vmlinux 0xf714a71a alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xf714ca57 read_cache_folio +EXPORT_SYMBOL vmlinux 0xf7359186 fault_in_iov_iter_writeable +EXPORT_SYMBOL vmlinux 0xf7370f56 system_state +EXPORT_SYMBOL vmlinux 0xf738d1be register_blocking_lsm_notifier +EXPORT_SYMBOL vmlinux 0xf73d0a5d mdiobus_free +EXPORT_SYMBOL vmlinux 0xf74300d7 arch_vcpu_is_preempted +EXPORT_SYMBOL vmlinux 0xf745baff ip6_frag_next +EXPORT_SYMBOL vmlinux 0xf75d0e90 pps_register_source +EXPORT_SYMBOL vmlinux 0xf77337a1 hdmi_audio_infoframe_check +EXPORT_SYMBOL vmlinux 0xf79faab3 ip_send_check +EXPORT_SYMBOL vmlinux 0xf7aeb0b9 skb_split +EXPORT_SYMBOL vmlinux 0xf7c48778 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7d71918 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0xf7dbdcc2 zstd_end_stream +EXPORT_SYMBOL vmlinux 0xf7dfcbde register_quota_format +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf819309a d_make_root +EXPORT_SYMBOL vmlinux 0xf81fd636 arch_spin_relax +EXPORT_SYMBOL vmlinux 0xf828f479 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf82f728a ip_fraglist_init +EXPORT_SYMBOL vmlinux 0xf84bd6ee bpf_stats_enabled_key +EXPORT_SYMBOL vmlinux 0xf858b677 dquot_drop +EXPORT_SYMBOL vmlinux 0xf874bf41 __ip_select_ident +EXPORT_SYMBOL vmlinux 0xf888ca21 sg_init_table +EXPORT_SYMBOL vmlinux 0xf889477e I_BDEV +EXPORT_SYMBOL vmlinux 0xf891c81c neigh_table_init +EXPORT_SYMBOL vmlinux 0xf8998e5b cpumask_next_and +EXPORT_SYMBOL vmlinux 0xf8a2b380 make_kuid +EXPORT_SYMBOL vmlinux 0xf8d07858 bitmap_from_arr32 +EXPORT_SYMBOL vmlinux 0xf8d87021 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xf8dae2eb request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0xf8ec0080 put_fs_context +EXPORT_SYMBOL vmlinux 0xf8f61ebc wake_up_var +EXPORT_SYMBOL vmlinux 0xf8f6f92b napi_gro_receive +EXPORT_SYMBOL vmlinux 0xf909bf68 seq_putc +EXPORT_SYMBOL vmlinux 0xf93efb4c page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0xf93fd09c fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xf96a60d7 __cond_resched_rwlock_read +EXPORT_SYMBOL vmlinux 0xf98ddbe5 input_set_min_poll_interval +EXPORT_SYMBOL vmlinux 0xf9918667 blk_queue_virt_boundary +EXPORT_SYMBOL vmlinux 0xf994bd6a secure_tcpv6_ts_off +EXPORT_SYMBOL vmlinux 0xf9a06e0e ida_free +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9a989cc file_remove_privs +EXPORT_SYMBOL vmlinux 0xf9b711a6 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0xf9be270f mb_cache_entry_wait_unused +EXPORT_SYMBOL vmlinux 0xf9c19c46 tcp_connect +EXPORT_SYMBOL vmlinux 0xf9c6523a md_finish_reshape +EXPORT_SYMBOL vmlinux 0xf9cc86ae tcf_idr_release +EXPORT_SYMBOL vmlinux 0xf9d447f9 ccw_device_get_mdc +EXPORT_SYMBOL vmlinux 0xf9d8e78b scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0xfa042227 gnet_stats_add_basic +EXPORT_SYMBOL vmlinux 0xfa08c34a page_offline_end +EXPORT_SYMBOL vmlinux 0xfa11bf0a vlan_vid_add +EXPORT_SYMBOL vmlinux 0xfa1c059a proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xfa45db71 mdiobus_setup_mdiodev_from_board_info +EXPORT_SYMBOL vmlinux 0xfa506a15 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5e12c6 netif_device_attach +EXPORT_SYMBOL vmlinux 0xfa60cbc3 __neigh_set_probe_once +EXPORT_SYMBOL vmlinux 0xfa6188af skb_flow_dissect_meta +EXPORT_SYMBOL vmlinux 0xfa97ed07 zap_page_range +EXPORT_SYMBOL vmlinux 0xfa9f7963 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xfa9fca70 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xfaaa12d0 _page_poisoning_enabled +EXPORT_SYMBOL vmlinux 0xfac19588 __clear_user +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacd7bab tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xfad02a30 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xfadb241b md_integrity_register +EXPORT_SYMBOL vmlinux 0xfb16f28b xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xfb2bc287 scsi_vpd_tpg_id +EXPORT_SYMBOL vmlinux 0xfb384d37 kasprintf +EXPORT_SYMBOL vmlinux 0xfb46c42a iov_iter_zero +EXPORT_SYMBOL vmlinux 0xfb482dd1 __traceiter_s390_cio_stsch +EXPORT_SYMBOL vmlinux 0xfb506eb0 consume_skb +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb6e44b8 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xfb77dda7 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xfb8b3b97 md_bitmap_update_sb +EXPORT_SYMBOL vmlinux 0xfb8ca9db netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xfb8ed18d generic_file_open +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 0xfbe7dd34 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xfc063ba6 udp_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xfc08b064 netif_receive_skb_core +EXPORT_SYMBOL vmlinux 0xfc421e79 gnet_stats_add_queue +EXPORT_SYMBOL vmlinux 0xfc583064 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xfc792624 dns_query +EXPORT_SYMBOL vmlinux 0xfc79f011 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0xfc9ddbef pskb_trim_rcsum_slow +EXPORT_SYMBOL vmlinux 0xfc9e9c68 skb_udp_tunnel_segment +EXPORT_SYMBOL vmlinux 0xfca2084b km_report +EXPORT_SYMBOL vmlinux 0xfcd0581c fault_in_iov_iter_readable +EXPORT_SYMBOL vmlinux 0xfcd1819a hdmi_spd_infoframe_check +EXPORT_SYMBOL vmlinux 0xfcdb0455 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcf43df7 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xfd2385c2 should_remove_suid +EXPORT_SYMBOL vmlinux 0xfd40d809 pcie_get_mps +EXPORT_SYMBOL vmlinux 0xfd5a83cd __devm_release_region +EXPORT_SYMBOL vmlinux 0xfd619147 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xfd70c07c dma_map_resource +EXPORT_SYMBOL vmlinux 0xfd73a244 param_ops_int +EXPORT_SYMBOL vmlinux 0xfd76f166 lockref_put_or_lock +EXPORT_SYMBOL vmlinux 0xfd92ae58 fs_param_is_bool +EXPORT_SYMBOL vmlinux 0xfd98301d get_phy_device +EXPORT_SYMBOL vmlinux 0xfd9a9866 stfle_fac_list +EXPORT_SYMBOL vmlinux 0xfdb7f6a9 finish_wait +EXPORT_SYMBOL vmlinux 0xfdbf3a6e key_invalidate +EXPORT_SYMBOL vmlinux 0xfdc0638f __traceiter_dma_fence_emit +EXPORT_SYMBOL vmlinux 0xfdcc8a0e fb_find_best_display +EXPORT_SYMBOL vmlinux 0xfdcce5b7 proto_unregister +EXPORT_SYMBOL vmlinux 0xfdd79d43 flow_block_cb_is_busy +EXPORT_SYMBOL vmlinux 0xfde1dac8 blackhole_netdev +EXPORT_SYMBOL vmlinux 0xfdfecfdb tc_setup_offload_action +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe137a3a bio_copy_data +EXPORT_SYMBOL vmlinux 0xfe1ad1d8 get_user_pages_remote +EXPORT_SYMBOL vmlinux 0xfe487975 init_wait_entry +EXPORT_SYMBOL vmlinux 0xfe5a08f2 blk_queue_max_write_zeroes_sectors +EXPORT_SYMBOL vmlinux 0xfe5a3f37 simple_statfs +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe771463 __tracepoint_s390_cio_csch +EXPORT_SYMBOL vmlinux 0xfe90dc72 xfrm_if_register_cb +EXPORT_SYMBOL vmlinux 0xfe9d2843 skb_orphan_partial +EXPORT_SYMBOL vmlinux 0xfe9d54a0 dquot_get_state +EXPORT_SYMBOL vmlinux 0xfea7a35c elv_bio_merge_ok +EXPORT_SYMBOL vmlinux 0xfeb5d0aa verify_spi_info +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef6344f skb_copy_header +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff1f0ae2 add_virt_timer +EXPORT_SYMBOL vmlinux 0xff39b8dd inode_init_always +EXPORT_SYMBOL vmlinux 0xff461269 pci_write_config_byte +EXPORT_SYMBOL vmlinux 0xff49afee netdev_lower_get_next_private +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7ad1b5 krealloc +EXPORT_SYMBOL vmlinux 0xff7ec0ff dma_fence_get_stub +EXPORT_SYMBOL vmlinux 0xff82bb50 get_watch_queue +EXPORT_SYMBOL vmlinux 0xff890e41 pci_irq_vector +EXPORT_SYMBOL vmlinux 0xff8b56a9 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xff905a4e zero_fill_bio +EXPORT_SYMBOL vmlinux 0xff9f2315 do_splice_direct +EXPORT_SYMBOL vmlinux 0xffa402ca fs_param_is_enum +EXPORT_SYMBOL vmlinux 0xffa6005f devm_ioremap_wc +EXPORT_SYMBOL vmlinux 0xffbf5a41 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0xffbf7a45 security_binder_transfer_file +EXPORT_SYMBOL vmlinux 0xffcc4ec7 tcp_bpf_bypass_getsockopt +EXPORT_SYMBOL vmlinux 0xffe33617 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xffe4fe0f pci_free_host_bridge +EXPORT_SYMBOL vmlinux 0xffe57195 flush_signals +EXPORT_SYMBOL vmlinux 0xffee15a1 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xffeedf6a delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0xfff0973a crypto_kdf108_ctr_generate +EXPORT_SYMBOL vmlinux 0xfff63589 __traceiter_mmap_lock_acquire_returned +EXPORT_SYMBOL vmlinux 0xfffa4690 drm_firmware_drivers_only +EXPORT_SYMBOL_GPL arch/s390/crypto/sha_common 0x6ddce546 s390_sha_update +EXPORT_SYMBOL_GPL arch/s390/crypto/sha_common 0xfc1e0216 s390_sha_final +EXPORT_SYMBOL_GPL arch/s390/net/pnet 0x1d321d60 pnet_id_by_dev_port +EXPORT_SYMBOL_GPL crypto/af_alg 0x0db1ed36 af_alg_wait_for_data +EXPORT_SYMBOL_GPL crypto/af_alg 0x25497ffe af_alg_free_resources +EXPORT_SYMBOL_GPL crypto/af_alg 0x26b60341 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x4025a425 af_alg_sendmsg +EXPORT_SYMBOL_GPL crypto/af_alg 0x4deaa384 af_alg_async_cb +EXPORT_SYMBOL_GPL crypto/af_alg 0x68ff1a82 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x73d45ac7 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x8583d818 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x86c96ed5 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x8a7dad96 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x8dc1505f af_alg_count_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xa331736e af_alg_release_parent +EXPORT_SYMBOL_GPL crypto/af_alg 0xb7fdd1a0 af_alg_pull_tsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xcd89954b af_alg_alloc_areq +EXPORT_SYMBOL_GPL crypto/af_alg 0xda4390cf af_alg_get_rsgl +EXPORT_SYMBOL_GPL crypto/af_alg 0xe7c3811e af_alg_sendpage +EXPORT_SYMBOL_GPL crypto/af_alg 0xefc8a393 af_alg_wmem_wakeup +EXPORT_SYMBOL_GPL crypto/af_alg 0xfd0b16b3 af_alg_poll +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xb2d7ef20 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1a0b3c4f async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x925f291f async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe6bfb9e2 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xfa2d3c22 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x00ef7802 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x02abcf5e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x25748dac async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7f36ad3c async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x99da69df async_xor_val_offs +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xcfeedea5 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe54dbdae async_xor_offs +EXPORT_SYMBOL_GPL crypto/authenc 0x2479193e crypto_authenc_extractkeys +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x1aa21949 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x188d9d26 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xe4e3ff33 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0xef81a4af __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x20189fca cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x3dbae082 __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xcfce512f __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xd76a5716 __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x5609ce41 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0x5b17be06 cast_s4 +EXPORT_SYMBOL_GPL crypto/cast_common 0xb9cba57f cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xbd3e7542 cast_s1 +EXPORT_SYMBOL_GPL crypto/cryptd 0x093c6054 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x2c489184 cryptd_skcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x3bbdb569 cryptd_ahash_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x645d5e4a cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x66aa1d6f cryptd_skcipher_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0x9e2dfa32 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x9fa2a83c cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xbeb2bca4 cryptd_free_skcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xc2df2c13 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xc6e3deca cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf8e42818 cryptd_aead_queued +EXPORT_SYMBOL_GPL crypto/cryptd 0xfbba5cef cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xfc8e40bf cryptd_alloc_skcipher +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x06ed00c3 crypto_engine_exit +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0a48e038 crypto_engine_start +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x0b5a6cac crypto_engine_stop +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x4f5af041 crypto_engine_alloc_init +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x7c35fa18 crypto_engine_alloc_init_and_set +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x8193fbc6 crypto_finalize_skcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x91f3e25b crypto_transfer_hash_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0x962d268d crypto_finalize_akcipher_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xb0da01f8 crypto_transfer_akcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xbc8a5b04 crypto_transfer_aead_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xc23a0511 crypto_finalize_aead_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xc5f8fbe2 crypto_transfer_kpp_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xce0277b6 crypto_transfer_skcipher_request_to_engine +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xe1c0edbd crypto_finalize_hash_request +EXPORT_SYMBOL_GPL crypto/crypto_engine 0xeab5dae2 crypto_finalize_kpp_request +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x33b866ce crypto_ecdh_decode_key +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0x7475be8e crypto_ecdh_key_len +EXPORT_SYMBOL_GPL crypto/ecdh_generic 0xb230d2ec crypto_ecdh_encode_key +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x12244644 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x4eb4c55e __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbcc074f3 __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xd4c9681a __serpent_setkey +EXPORT_SYMBOL_GPL crypto/sm3 0xa98edad1 sm3_update +EXPORT_SYMBOL_GPL crypto/sm3 0xf04338f9 sm3_final +EXPORT_SYMBOL_GPL crypto/twofish_common 0xce4624d9 twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xe22b7787 __twofish_setkey +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i2c 0x93cd6400 __regmap_init_i2c +EXPORT_SYMBOL_GPL drivers/base/regmap/regmap-i2c 0x9b4ae5a3 __devm_regmap_init_i2c +EXPORT_SYMBOL_GPL drivers/dax/device_dax 0x63d36ef2 dev_dax_probe +EXPORT_SYMBOL_GPL drivers/fpga/altera-pr-ip-core 0x7684f443 alt_pr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x37b317a6 fpga_mgr_load +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x47a9342f devm_fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x498f8946 fpga_mgr_unregister +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x5530f781 fpga_mgr_lock +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x57722c2e fpga_mgr_put +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x65708337 of_fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0x7b5442ef fpga_image_info_alloc +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xba00ea2e fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc5334442 devm_fpga_mgr_register_full +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xc7f76a8e fpga_mgr_register +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xcb6d482b fpga_image_info_free +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xda9c1675 fpga_mgr_get +EXPORT_SYMBOL_GPL drivers/fpga/fpga-mgr 0xe92ad107 fpga_mgr_unlock +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x28cfdcc6 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x024e9a5d drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x0afda1db drm_bridge_detect +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1e99f1c0 drm_bridge_hpd_notify +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3e59825d drm_bridge_hpd_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x4c05fc28 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7d364589 drm_crtc_add_crc_entry +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8de5e230 drm_gem_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8f6920b8 drm_bridge_get_modes +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x9243e1fa drm_bridge_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb280b1c6 drm_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc709ad4c drm_do_get_edid +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd1dd56ad drmm_kstrdup +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd941c9a5 drm_bridge_hpd_enable +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x0ec1034c drm_gem_plane_helper_prepare_fb +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x0f008b22 drm_gem_fb_create_with_dirty +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x221587ba drm_bridge_connector_enable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x2434e0c9 drm_gem_fb_create_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x298cc6fe drm_bridge_connector_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7f74ee8c drm_gem_fb_init_with_funcs +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x8908303d drm_gem_fb_afbc_init +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xa0fcbcdd drm_gem_fb_get_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xc25afcf5 drm_gem_fb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xda3eb40d drm_bridge_connector_disable_hpd +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x104744da drm_gem_shmem_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x4b068886 drm_gem_shmem_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x4c46323d drm_gem_shmem_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0x530f30df drm_gem_shmem_free +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xab0f3343 drm_gem_shmem_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xcd8401ff drm_gem_shmem_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xe1fa749b drm_gem_shmem_get_pages_sgt +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_shmem_helper 0xe497956f drm_gem_shmem_mmap +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x5690f962 intel_th_alloc +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0x72eea047 intel_th_free +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xa55b4139 intel_th_set_output +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xac4fe4ee intel_th_trace_switch +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xb5cdb3fe intel_th_trace_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xba905e4b intel_th_trace_disable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xdffd7057 intel_th_driver_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xe2d7c9b8 intel_th_driver_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th 0xf52b93c1 intel_th_output_enable +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x0685ac74 intel_th_msc_window_unlock +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x80a4f0dc intel_th_msu_buffer_register +EXPORT_SYMBOL_GPL drivers/hwtracing/intel_th/intel_th_msu 0x9e741cc3 intel_th_msu_buffer_unregister +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x01951b16 stm_source_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x2c9f31a9 stm_source_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x543427dd stm_source_register_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x83be29c5 to_pdrv_policy_node +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x87aa2f69 stm_register_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0x9caf95c5 stm_unregister_device +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xa96378e9 stm_unregister_protocol +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xb3ae956e stm_data_write +EXPORT_SYMBOL_GPL drivers/hwtracing/stm/stm_core 0xe256fd78 stm_register_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x18b0461a i2c_adapter_depth +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x1935e2fd i2c_client_type +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x1c98bb90 i2c_new_smbus_alert_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x300ffae6 i2c_match_id +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x42041512 i2c_get_dma_safe_msg_buf +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4dae16e4 i2c_put_dma_safe_msg_buf +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4df4dabd i2c_new_client_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4f028c87 i2c_generic_scl_recovery +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x4f24fc3c i2c_parse_fw_timings +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x550f3e05 i2c_freq_mode_string +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x6fc2ba14 i2c_new_ancillary_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x6fe81949 i2c_adapter_type +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0x740c6b37 i2c_unregister_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xa671ec26 i2c_recover_bus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xb136f430 devm_i2c_new_dummy_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xb3de5653 i2c_for_each_dev +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xc1d35201 i2c_bus_type +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xc6bf0894 devm_i2c_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xd3a97475 i2c_handle_smbus_host_notify +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xd9ff04e3 i2c_new_dummy_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xe21af3d6 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xea14ea49 i2c_get_device_id +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xfe0a380f i2c_new_scanned_device +EXPORT_SYMBOL_GPL drivers/i2c/i2c-core 0xff85d356 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x39b1834e i2c_mux_del_adapters +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x65675820 i2c_mux_add_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbda2f19c i2c_mux_alloc +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xc3186059 i2c_root_adapter +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x23798054 rtrs_init_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x313d80d6 rtrs_iu_post_rdma_write_imm +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x3d4fa5d5 rtrs_iu_free +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x4a25f71d rtrs_cq_qp_create +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x5013c5c2 rtrs_iu_post_recv +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x64ec114c rtrs_cq_qp_destroy +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x6ad4b003 rtrs_post_recv_empty +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x7d710c59 rtrs_start_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x81dda609 rtrs_iu_post_send +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0x90c5997f rtrs_stop_hb +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xa6c491dd rtrs_iu_alloc +EXPORT_SYMBOL_GPL drivers/infiniband/ulp/rtrs/rtrs-core 0xed5d776a rtrs_send_hb_ack +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x051b2215 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x06bceaa1 __SCK__tp_func_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0826e917 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0bc0be45 __SCK__tp_func_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x141d64ec __traceiter_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x15f3de09 __SCK__tp_func_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x16ea7222 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x17a83e40 __traceiter_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x181a1930 __SCK__tp_func_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x18789205 __traceiter_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x191717af __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1934a9a9 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x19ba41aa __traceiter_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1b083369 __SCK__tp_func_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c599ebe __traceiter_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c71a406 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1c83d5b7 __SCK__tp_func_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x203e510d __traceiter_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x22ae6324 __SCK__tp_func_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2766fb04 __traceiter_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x284a6bff __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2909bc5d __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2a0e014e __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2af60833 __SCK__tp_func_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3257d343 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3d0d620b __traceiter_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3d350203 __traceiter_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40523991 __traceiter_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46bfabee __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x46c66897 __SCK__tp_func_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4a2d1241 __SCK__tp_func_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51d0e534 __SCK__tp_func_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x53b5e5e3 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x567c0007 __traceiter_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x59593117 __traceiter_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5a215f7c __traceiter_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5cc8cb86 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5d9c8fc8 __SCK__tp_func_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5fd7c423 __SCK__tp_func_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6026e276 __SCK__tp_func_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x64e39418 __traceiter_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6697827f __SCK__tp_func_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x690dd415 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6e74dca7 __SCK__tp_func_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x71721b5a __traceiter_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x79eeb380 __SCK__tp_func_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7a3c0ac3 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7c458f28 __traceiter_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7ef4b558 __traceiter_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x80e3881d __SCK__tp_func_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x830df522 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x862dfa21 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8ad20d61 __SCK__tp_func_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8d034d7a __traceiter_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8e2df105 __traceiter_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8eb8bdfb __traceiter_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x902cb523 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9865dbc4 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x99e780d9 __traceiter_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9a6f4d9f __SCK__tp_func_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9ce21c84 __SCK__tp_func_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa14fdbcf __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa187023e __SCK__tp_func_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa64134e4 __SCK__tp_func_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa842a5c8 __SCK__tp_func_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xad6440b4 __traceiter_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb4eb1ce6 __traceiter_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb5a62a8c __traceiter_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb912ae0b __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xba843c3f __SCK__tp_func_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc268695 __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc161eb4e __traceiter_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1857470 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc78d7102 __tracepoint_bcache_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc8ae4213 __SCK__tp_func_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce48d6f4 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd99bda41 __traceiter_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xda06fe86 __SCK__tp_func_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdafae6e4 __traceiter_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe16c06b3 __SCK__tp_func_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe202b8e6 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec29e22a __traceiter_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xec92a163 __SCK__tp_func_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed37c90e __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xed764dc6 __traceiter_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xee55d047 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef7eec02 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf3405811 __traceiter_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf6249e5f __SCK__tp_func_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf865c1a2 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb31daa9 __traceiter_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfb3d6c67 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfd6b5d80 __SCK__tp_func_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1c57681b dm_cell_lock_promote_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1cd00ea3 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2d47c4b8 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x552d8fdd dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6d151815 dm_cell_get_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x753e20b2 dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x84170f9a dm_cell_visit_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x90af9b8f dm_cell_lock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x9b12d35d dm_cell_unlock_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x9bfa0947 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xace9b57b dm_bio_prison_destroy_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb4cdee77 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 0xb847e97d dm_bio_prison_alloc_cell_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc31feefc dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc9fe52df 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 0xd5bebb6b dm_cell_quiesce_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd99e003d dm_bio_prison_create_v2 +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xde362650 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe06515d4 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xf14b3db9 dm_bio_prison_free_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 0x260cf323 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x2e0774dc dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aebce95 dm_bufio_issue_discard +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 0xf241a6eb dm_bufio_forget_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0efbca4c btracker_promotion_already_present +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4ca277f3 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 0x611a8cff dm_cache_policy_unregister +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 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-multipath 0xbe2f8f16 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xf095d885 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 0x3919f3d1 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x46f0e417 dm_rh_inc_pending +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 0xacc9e863 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbf7d149a dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf400aa36 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf92b8a3d dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfb1b7539 dm_rh_bio_to_region +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 0x0c2cb7f7 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11fbbe02 dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x15085586 dm_btree_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1816383d dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ae16d40 dm_tm_dec_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1b1be9e8 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1ba7cc87 dm_array_new +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x243ce1ad dm_array_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x24507fbf dm_array_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c5a02df dm_btree_find_lowest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2d38ecd9 dm_bitset_resize +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 0x30a26537 dm_btree_remove +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 0x382a0134 dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ad0f55b dm_bm_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3ae50a4a dm_tm_inc_range +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3b45ed28 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x3d6961ed dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x46768dbf dm_btree_remove_leaves +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x48e323be dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5475ba9e dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5736c9c5 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x586705e1 dm_btree_del +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 0x6b2357b6 dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c218062 dm_bitset_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x6c2c7ef4 dm_array_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7062014c dm_btree_cursor_skip +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 0x73420d49 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x75606d09 dm_btree_lookup +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 0x7bc7621f dm_btree_cursor_end +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7e29c59d dm_bitset_clear_bit +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 0x88998224 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x88a5c035 dm_bitset_cursor_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8db6f8f0 dm_tm_with_runs +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x8f5eefee dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x925f421d dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9341b376 dm_bitset_cursor_get_value +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 0x9955fef4 dm_bitset_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9ced228c dm_array_cursor_skip +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 0xa29d4c0c dm_bitset_cursor_skip +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2a74861 dm_array_set_value +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 0xa9cf611b dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xae600b00 dm_tm_open_with_sm +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 0xb3d7482b dm_bitset_new +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 0xb6879c01 dm_btree_lookup_next +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb720ee73 dm_array_cursor_begin +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0d7c2d1 dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc0fadb13 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xc36559ad dm_btree_cursor_next +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 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd237b9fb dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd39c0246 dm_btree_cursor_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe781f874 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe8438eb5 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf551114d dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5aada6c dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf82dba90 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xfce51d79 dm_array_empty +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x91401317 st_register +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xc3503d7f st_unregister +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x034bb770 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x044bbf5b mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0509c617 mlx4_FLOW_STEERING_IB_UC_QP_RANGE +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05199d9d mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0535f9a1 mlx4_phys_to_slaves_pport_actv +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05e16985 mlx4_get_active_ports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ccb451d mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0dcf04f4 mlx4_mr_hw_change_pd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0df31699 mlx4_mr_hw_put_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e1e053a mlx4_set_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e485242 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1508d22d mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18c20982 mlx4_replace_zero_macs +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d17caf3 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f8832fa mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x221c5e5e mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2362376a mlx4_mr_hw_get_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x251324e7 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x277292bd mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x284947be mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x294a03fd mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2d1456bd mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2fa0577d mlx4_unbond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3231d6ea mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x348f8eae mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x34d1d7c9 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a5bd5d9 mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3baf4fa9 mlx4_set_vf_rate +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3c9119bb mlx4_config_dev_retrieval +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3d713da9 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3e69470f mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47f88b99 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4804c2dc mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4b144b6f mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d203d19 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57adafa6 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x593102e8 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x604d630f mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x606a8c3c mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6405cf36 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x650c4c88 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a8aea1f mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a901b1e mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d43f174 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e5afb8c mlx4_phys_to_slaves_pport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fb9873a mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fed524f mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x705cb5d1 mlx4_get_counter_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7212d4b1 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x733912f0 mlx4_vf_smi_enabled +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75961e5b mlx4_config_roce_v2_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78898aa2 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7affe0c0 mlx4_mr_rereg_mem_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7ff40f8b mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x803b1ff6 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81dc58a2 mlx4_config_vxlan_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x83a5c3f2 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x83de62ec mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x857415e3 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x87d90de7 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a528d76 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8af8af59 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8d2a133f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e4630dc mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x90020167 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9282edd1 mlx4_ACCESS_PTYS_REG +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x949d1e85 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x96a7ab9d mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9904ef44 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99d3d70f mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b35aca6 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d4a2141 mlx4_mr_hw_write_mpt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9fd5d74b mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0096b0d mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa03cd3b6 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa11118d4 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa21f1ead __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa242122d mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa3f606f8 mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4d9069c mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa624e0e8 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6f55aa9 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa75dc9df mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa896503c mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaab79215 mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbd664a69 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbec73783 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc17b3a85 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8081a94 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcd7c6903 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd09ab39b mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3184799 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3c80ac9 mlx4_slave_convert_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd3ef64d7 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4556a99 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd5a8dc86 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd767fc6e mlx4_update_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7fa8d5e mlx4_get_vf_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd91fc812 mlx4_get_internal_clock_params +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd95bced4 mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde35f9fb mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xde9d5ca2 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe518d676 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6805dfd mlx4_vf_get_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe7126a40 mlx4_get_slave_default_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe93e6a9d mlx4_phys_to_slave_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea07cd2e mlx4_get_default_counter_index +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xea438794 mlx4_mr_hw_change_access +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb2c7a02 mlx4_port_map_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee1dc17b mlx4_mr_rereg_mem_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xefcbfbaf mlx4_find_cached_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeff6c7dd mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2e42d2a mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3026f98 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf33b419d mlx4_get_admin_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3b9233f mlx4_get_base_gid_ix +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf3e416d1 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf454005a mlx4_get_devlink_port +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf72a41e6 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf90139f9 mlx4_bond +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf91d1c38 mlx4_vf_set_enable_smi_admin +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x012219d2 mlx5_query_nic_vport_qkey_viol_cntr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x06688c70 mlx5_query_nic_vport_system_image_guid +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 0x09d8353e mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x12b92ebb mlx5_query_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x169cd0da mlx5_query_port_max_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x179ab2fa mlx5_query_hca_vport_pkey +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x1ee7c586 mlx5_set_port_pause +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x280de608 mlx5_query_hca_vport_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x299524d4 mlx5_set_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3052d263 mlx5_modify_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x30769a44 mlx5_query_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x31e8025a mlx5_query_module_eeprom_by_page +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x326f3c94 mlx5_query_port_oper_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x35908aad mlx5_query_port_ptys +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3ef720e1 mlx5_eswitch_get_total_vports +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x3f7c705b mlx5_core_query_ib_ppcnt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x430a18e8 mlx5_set_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x48aa7b54 mlx5_set_port_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4b422528 mlx5_query_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4cf314aa mlx5_query_hca_vport_gid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4dc9ea14 mlx5_query_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53511eae mlx5_frag_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x537c85bd mlx5_nic_vport_query_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x546e250f mlx5_query_nic_vport_mtu +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5a34dcf3 mlx5_set_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5e918ec7 mlx5_set_port_prio_tc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x612c50ee mlx5_query_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x62f856d6 mlx5_nic_vport_update_local_lb +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6794305b mlx5_query_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68663c70 mlx5_core_query_sq_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x68cd235f mlx5_set_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6e141161 mlx5_query_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6ee9ec82 mlx5_modify_nic_vport_promisc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6f73f348 mlx5_query_nic_vport_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x70fb7d74 mlx5_query_port_tc_bw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7cf0b25c mlx5_dm_sw_icm_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81aadc6a mlx5_fill_page_frag_array_perm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8647053e mlx5_ipsec_device_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x86727d1a mlx5_nic_vport_enable_roce +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8bb8d6fe mlx5_query_port_pfc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8f547266 mlx5_core_modify_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92c5e458 mlx5_query_port_vl_hw_cap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x93cd7be6 mlx5_query_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x96238dd4 mlx5_modify_port_ets_rate_limit +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x97f70fc9 mlx5_query_nic_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9cfd0218 mlx5_core_reserved_gids_count +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9fb677ce mlx5_set_port_admin_status +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa10c0618 mlx5_modify_nic_vport_mac_address +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa2238167 mlx5_query_hca_vport_context +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa247f669 mlx5_modify_nic_vport_mac_list +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa45e0b89 mlx5_query_nic_system_image_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa4652f54 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa7cace04 mlx5_core_query_vport_counter +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0b0dc84 mlx5_query_port_wol +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb7cec262 mlx5_frag_buf_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbdad8881 mlx5_query_port_tc_group +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcd2057be mlx5_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xce2cb3cd mlx5_query_hca_vport_node_guid +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdb90f3d2 mlx5_db_alloc_node +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdedefbc4 mlx5_query_module_eeprom +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe06b64b7 mlx5_modify_nic_vport_vlans +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe3b0cf36 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe4fdaa09 mlx5_nic_vport_unaffiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb683918 mlx5_nic_vport_affiliate_multiport +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf30fc04c mlx5_toggle_port_link +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4fb8551 mlx5_eswitch_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6b0a38f mlx5_query_min_inline +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf6fdac52 mlx5_dm_sw_icm_dealloc +EXPORT_SYMBOL_GPL drivers/net/geneve 0x55548b17 geneve_dev_create_fb +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0x356554eb ipvlan_link_delete +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xbd98b5c7 ipvlan_count_rx +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xbde8da0f ipvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xf81fec11 ipvlan_link_new +EXPORT_SYMBOL_GPL drivers/net/ipvlan/ipvlan 0xf9d1d47c ipvlan_link_setup +EXPORT_SYMBOL_GPL drivers/net/macsec 0x2c9a62be macsec_pn_wrapped +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x23f315ec macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x293b86c7 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x32a96de1 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc2e3c5c1 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/mdio/mdio-i2c 0x93f9abd7 mdio_i2c_alloc +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x46d9c73c net_failover_destroy +EXPORT_SYMBOL_GPL drivers/net/net_failover 0x83361ba8 net_failover_create +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x00b037b4 bcm_phy_r_rc_cal_reset +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x0edc93c3 bcm_phy_ack_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x10ffcb3f bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x135ab54d bcm_phy_read_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x1eb72eeb bcm_phy_read_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x201e64a6 bcm_phy_downshift_get +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x21e1e79b bcm_phy_write_shadow +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2300c6b4 bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x268b82e4 bcm_phy_28nm_a0b0_afe_config_init +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2bbce59d __bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x2c9f58b5 bcm_phy_get_strings +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x30bdb5c2 bcm_phy_enable_jumbo +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x3d81f469 __bcm_phy_write_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x531f914e bcm_phy_handle_interrupt +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x568a1334 __bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x62176d72 __bcm_phy_read_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x68b0e485 bcm_phy_cable_test_start_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x69133867 bcm_phy_get_sset_count +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x6997d7c4 bcm_phy_downshift_set +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8379f5cc bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8a2fa525 bcm_phy_modify_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x8c1f7b73 bcm_phy_cable_test_get_status_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0x9b33d442 bcm_phy_enable_apd +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb6b439bd bcm_phy_cable_test_get_status +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xb8d0d955 bcm_phy_cable_test_start +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc0a13746 bcm_phy_write_misc +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xc26e5e0a __bcm_phy_read_exp +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xd5571993 bcm_phy_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xde4034b3 bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xe9524a9b bcm54xx_auxctl_read +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf2eca1f7 bcm_phy_get_stats +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf312bf88 bcm_phy_config_intr +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf33e0be5 __bcm_phy_write_rdb +EXPORT_SYMBOL_GPL drivers/net/phy/bcm-phy-lib 0xf719538c bcm_phy_modify_exp +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x08213956 phylink_ethtool_get_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x12135396 phylink_mac_change +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x15c4e3e2 phylink_ethtool_set_pauseparam +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x16ca1a8a phylink_suspend +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x182541a9 phylink_ethtool_ksettings_get +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2330e744 phylink_generic_validate +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x2c8e28ee phylink_ethtool_get_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4386cacd phylink_get_linkmodes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x4ae2e3db phylink_connect_phy +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x57727285 phylink_ethtool_set_eee +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x59e0695d phylink_speed_down +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x5d0c4dcc phylink_speed_up +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x62104126 phylink_ethtool_set_wol +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x689cc042 phylink_fwnode_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6b13c205 phylink_mii_c45_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x6fa426d2 phylink_ethtool_nway_reset +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x76a9ce06 phylink_mii_c22_pcs_get_state +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x825c7340 phylink_get_eee_err +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x89ca0930 phylink_mii_c22_pcs_an_restart +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0x8df9a48e phylink_mii_c22_pcs_decode_state +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 0xa6389936 phylink_create +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xb384c13e phylink_ethtool_ksettings_set +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xbd0fa06d phylink_of_phy_connect +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc0a8f4be phylink_resume +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc1d15a4c phylink_set_port_modes +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xc85b7c9f phylink_mii_c22_pcs_encode_advertisement +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xcff1abd9 phylink_decode_usxgmii_word +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xdcb0a2c0 phylink_stop +EXPORT_SYMBOL_GPL drivers/net/phy/phylink 0xde66f4a7 phylink_mii_ioctl +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/phy/phylink 0xfcdbdc83 phylink_mii_c22_pcs_config +EXPORT_SYMBOL_GPL drivers/net/tap 0x1469c51d tap_get_ptr_ring +EXPORT_SYMBOL_GPL drivers/net/tap 0x721b8fff tap_destroy_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x81e4881c tap_create_cdev +EXPORT_SYMBOL_GPL drivers/net/tap 0x99215f9a tap_get_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0xabf88eca tap_free_minor +EXPORT_SYMBOL_GPL drivers/net/tap 0xde4e6cd5 tap_get_socket +EXPORT_SYMBOL_GPL drivers/net/tap 0xee29be7b tap_queue_resize +EXPORT_SYMBOL_GPL drivers/net/tap 0xf6e6e960 tap_del_queues +EXPORT_SYMBOL_GPL drivers/net/tap 0xf7d6953a tap_handle_frame +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x20b5af2f vxlan_fdb_replay +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x355ab021 vxlan_dev_create +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x3769e8b7 vxlan_fdb_find_uc +EXPORT_SYMBOL_GPL drivers/net/vxlan/vxlan 0x4072b3c7 vxlan_fdb_clear_offload +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0491ead9 nvme_cancel_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x06916877 nvme_unfreeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x0d346bd6 nvme_set_queue_count +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x11abc494 __SCK__tp_func_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1208157f nvme_complete_rq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x14322662 nvme_cancel_admin_tagset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x1f473d07 nvme_get_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2504c86c nvme_host_path_error +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2578708b nvme_try_sched_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x278ea9ec nvme_stop_keep_alive +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2c7e23e6 nvme_wait_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x2fa55ced nvme_sec_submit +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x341c5f5e nvme_reset_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x39a99162 nvme_wait_reset +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3c3a79a0 nvme_start_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3e448eb1 nvme_remove_namespaces +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x3eb729c9 nvme_start_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4426bbc5 nvme_init_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49224181 nvme_reset_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x49c9bd1c nvme_shutdown_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4e186d7b nvme_init_ctrl_finish +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x4e9c0743 nvme_stop_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x519a55d2 nvme_fail_nonready_command +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x56991d34 nvme_enable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x58867054 nvme_setup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x5ec7097c nvme_uninit_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x63f83e94 nvme_init_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x64b62862 nvme_wq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x6503c256 nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x67a4ee74 nvme_change_ctrl_state +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x73c6dc24 nvme_stop_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x75a2c2fd nvme_delete_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x79d8b998 nvme_complete_batch_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x813cf212 nvme_io_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8a965558 nvme_cleanup_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x8e7ec2b6 __tracepoint_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9a5b72d1 __nvme_submit_sync_cmd +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0x9c2a4788 nvme_wait_freeze_timeout +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa70a79dd __nvme_check_ready +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xa7e138cc nvme_complete_async_event +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xcf38a3ef __traceiter_nvme_sq +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xd35a7ced nvme_start_admin_queue +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 0xd5b3e0a1 nvme_sync_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xe2451c0b nvme_stop_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xebf8d798 nvme_sync_io_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xee298b34 nvme_set_features +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf1be5681 nvme_start_freeze +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf366e7e5 nvme_disable_ctrl +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xf545e917 nvme_kill_queues +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-core 0xfc83d6a6 nvme_cancel_request +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x01628c39 nvmf_ip_options_match +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x2abcb9fe nvmf_get_address +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x37e15190 nvmf_free_options +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x4450f211 nvmf_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0x856a6c6a nvmf_reg_write32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xa23e8f4a nvmf_connect_admin_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xafa5affb nvmf_connect_io_queue +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xbfda16ea nvmf_reg_read32 +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xd11439ef nvmf_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xdee7b587 nvmf_should_reconnect +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fabrics 0xf8655476 nvmf_reg_read64 +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 0x58e312f7 nvme_fc_io_getuuid +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0x7764fa61 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 0xbb0e18a6 nvme_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/host/nvme-fc 0xfca9dc99 nvme_fc_unregister_remoteport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x1ba963ab nvmet_req_complete +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x24ffaa90 nvmet_sq_destroy +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x2ee98b84 nvmet_register_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x3e0ef07a nvmet_wq +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x6d6dfbef nvmet_req_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x78429ab9 nvmet_req_uninit +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x80efcb6a nvmet_req_free_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0x9763b0a8 nvmet_sq_init +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xc6d6fa56 nvmet_req_alloc_sgls +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xd4d1510a nvmet_ctrl_fatal_error +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xdc29f4e4 nvmet_unregister_transport +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet 0xe657c3a7 nvmet_check_transfer_len +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x0b98123d nvmet_fc_rcv_ls_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x1048b92a nvmet_fc_rcv_fcp_req +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x4a013682 nvmet_fc_invalidate_host +EXPORT_SYMBOL_GPL drivers/nvme/target/nvmet-fc 0x78a146f7 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/switch/switchtec 0xb6c8842b switchtec_class +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x0c35138d dasd_generic_verify_path +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x14f3688c dasd_device_remove_stop_bits +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x1522f055 dasd_generic_notify +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x15e100b8 dasd_generic_uc_handler +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x19227556 dasd_nopav +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x21c7102e dasd_generic_path_operational +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x2854f2e5 dasd_generic_last_path_gone +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x29c04244 dasd_generic_handle_state_change +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x32c1be7d dasd_biodasdinfo +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x38d1d609 dasd_device_set_stop_bits +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x5087904d dasd_alloc_block +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x5a95fab2 dasd_get_sense +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x5d354421 dasd_generic_probe +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x62764119 dasd_generic_set_online +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x6e5fd9d7 dasd_generic_set_offline +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x75f043d6 dasd_generic_free_discipline +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x7c481293 dasd_generic_space_avail +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0x7ff1c1f4 dasd_device_is_ro +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xadb43d87 dasd_generic_remove +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xb38fe028 dasd_page_cache +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xb74b45a2 dasd_flush_device_queue +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xb8cf4bfa dasd_free_block +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xba4ffee9 dasd_generic_path_event +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xc3316d34 dasd_dev_groups +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xc52ba0ff dasd_generic_shutdown +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xddd02e02 dasd_put_device_wake +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xeab9d03c dasd_generic_read_dev_chars +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xeea15ffb dasd_wakeup_cb +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xf15784f5 dasd_nofcx +EXPORT_SYMBOL_GPL drivers/s390/block/dasd_mod 0xf3ca8f7f dasd_generic_space_exhaust +EXPORT_SYMBOL_GPL drivers/s390/cio/eadm_sch 0x85d9d140 eadm_start_aob +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x17da9146 qdio_shutdown +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x1d4cf954 qdio_inspect_output_queue +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x23c0e637 qdio_alloc_buffers +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x27488bbc qdio_reset_buffers +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x40200cd5 qdio_add_bufs_to_output_queue +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x41257c60 qdio_free +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x47f87d5a qdio_get_ssqd_desc +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x75f975ab qdio_establish +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0x9149a583 qdio_add_bufs_to_input_queue +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0xa04bb255 qdio_free_buffers +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0xc650b1e2 qdio_inspect_input_queue +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0xcf41f4ce qdio_allocate +EXPORT_SYMBOL_GPL drivers/s390/cio/qdio 0xe0471413 qdio_activate +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x00782bbe qeth_poll +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x09962842 qeth_ipa_alloc_cmd +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x18dcd474 qeth_stop +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x41f94d5b qeth_siocdevprivate +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x468878af qeth_setadp_promisc_mode +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x48311499 qeth_vm_request_mac +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x4de6944e qeth_set_features +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x62687670 qeth_dbf_longtext +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x6db8639d qeth_get_setassparms_cmd +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x6ec872df qeth_set_offline +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x7127997e qeth_do_ioctl +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x76a9bbe6 qeth_send_simple_setassparms_prot +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x7ae24bc3 qeth_set_real_num_tx_queues +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x8e4c6fa2 qeth_fix_features +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x97296ded qeth_open +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0x9ee86d9b qeth_dbf +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xa26b2a1f qeth_setadpparms_change_macaddr +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xb81308af qeth_enable_hw_features +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xb98083b9 qeth_features_check +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xc2bb6cd5 qeth_resize_buffer_pool +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xc6a8acdf qeth_get_stats64 +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xc6dbd162 qeth_threads_running +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xd229ef77 qeth_iqd_select_queue +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xd9f8e125 qeth_tx_timeout +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xde7ba35e qeth_xmit +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xdf414ac0 qeth_set_allowed_threads +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xe6708173 qeth_get_diag_cmd +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xeb9257dc qeth_osa_select_queue +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xf41835d6 qeth_configure_cq +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xf5d12703 qeth_setassparms_cb +EXPORT_SYMBOL_GPL drivers/s390/net/qeth 0xf9ecd52f qeth_send_ipa_cmd +EXPORT_SYMBOL_GPL drivers/s390/net/qeth_l2 0xd71dbf3a qeth_l2_discipline +EXPORT_SYMBOL_GPL drivers/s390/net/qeth_l3 0xb04e8374 qeth_l3_discipline +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1a74df2f fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x360d06a7 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4127b3d4 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4b0ff3bc fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6eb2c3ea fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7140ba3c fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7175f518 fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7935dee2 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7d61949d fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8a1c22e7 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa65ec1a4 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xbac58840 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc250b084 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc3f30cc0 fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc869c4a6 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe481d139 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe5c5a264 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf167cb7a fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf3c1b805 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x09774471 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x16390eae iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x3f566baf iscsi_boot_create_acpitbl +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4b5af25f iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x4e64f29f iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x6d639997 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x748919e8 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/libfc/libfc 0x09279ed6 fc_seq_els_rsp_send +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02f7e6f1 iscsi_host_get_max_scsi_cmds +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04772228 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x06ea7813 iscsi_conn_queue_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19dbc30c iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c71bcfc iscsi_conn_queue_recv +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23070473 iscsi_eh_cmd_timed_out +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23538712 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x25d1122d iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32dfb597 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3aefe777 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3be511eb iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bef2f73 iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3bfeed86 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d5bbb48 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x425ea704 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x42c8a323 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x472d4b7d iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4db0d3fe iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e0bb0f9 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4e5f37fb iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x505a9c12 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x595566ce iscsi_suspend_rx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6be0576d iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c45248a iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7231e5c3 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77531cc6 iscsi_conn_unbind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x797aaf6e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d303b1b iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e02f2e7 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96755ded iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99f2b631 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9cd91f03 iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e96bf4f iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8d4de12 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae1d06b6 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xafdc59ec iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2125760 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc8bea019 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce631758 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd01eb198 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc0a8fac iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1ace92d iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe20aa43a __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe791c2cf iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeab9cbd5 iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf29d52f2 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfa0aed5d iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfac61efa iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfbb3759b iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2ac398dc iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3b3ee9cb iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4a97c675 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5f91e129 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x75d1d018 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x92f48594 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9747b6e3 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9e01ebcc iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc1977d33 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcf4afcf4 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xde342a47 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe1e25ba6 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe2638604 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe27f5f50 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed2f57ab iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf67c1d79 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfca7fb66 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x05f73965 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0cd9c4f8 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13baa698 sas_abort_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x16313f32 sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c589202 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1cd379d5 sas_phy_enable +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d466c87 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x266e29a9 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ebcd5ea sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x458323b9 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a17c450 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4d09364b sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55d29aed sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57512421 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84f1770b dev_attr_phy_event_threshold +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x88934d02 sas_query_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9168e078 sas_lu_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e1a3ae8 sas_execute_internal_abort_dev +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9fcc65ce sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa4852de3 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0b86a4b sas_slave_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb80d81ba sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd507713e sas_notify_port_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb202be1 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdc90a720 sas_notify_phy_event +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdedacb54 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe0f84d09 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe2a4d48a sas_execute_internal_abort_single +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8f234df sas_eh_target_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xec06eba8 sas_clear_task_set +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed944819 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf2b289cb sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf2bd3950 sas_abort_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf364c805 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_fc 0xd6808831 fc_eh_should_retry_cmd +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0736dd10 __tracepoint_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0aa4f88e iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0f0d4f1c iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x13ff144e iscsi_dbg_trace +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x16569d0d iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1b5ccdae iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x25440a3f iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x279277de iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2ef900c1 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3785e561 __tracepoint_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4310b3c2 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x490ebf83 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49b1bd43 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x509886ec iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x584a31ab __SCK__tp_func_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5bfaa2c3 __tracepoint_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6928143a iscsi_put_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6b7f7edb iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ff6cc20 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70227542 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x71b768b0 __SCK__tp_func_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x74070e66 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x766ad65d iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x807e6929 iscsi_add_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84a005f1 iscsi_get_router_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86b0063e iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88768c48 __SCK__tp_func_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c21e279 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x93ac00bb iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9424c65d iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x99ddbcaf iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9f3235d6 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa6b03814 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa78a8690 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaa976bb3 __tracepoint_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab4674c8 __SCK__tp_func_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xafde71ee __traceiter_iscsi_dbg_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb0502fe8 iscsi_get_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb4ac6e4e iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb4e341b7 iscsi_remove_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb92277d8 iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbab57c74 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc071179 iscsi_get_ipaddress_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc512ea4 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd2b54cb __traceiter_iscsi_dbg_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc5890b84 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc631f2e4 iscsi_put_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc7bf084a iscsi_alloc_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcfd68f4d __traceiter_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd3ed31c2 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4e55f1e __tracepoint_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdac62ed4 iscsi_force_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe40c6abf iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4c79fa6 __SCK__tp_func_iscsi_dbg_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe6c55cd5 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed524fe1 __traceiter_iscsi_dbg_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf19b97d4 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf4e4b7bd iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf59ae939 __traceiter_iscsi_dbg_sw_tcp +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5c1b309 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x8cf2963d sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xb2f204ec sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcad4fe31 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xee0e49f9 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0d7cfbf4 spi_populate_tag_msg +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_srp 0x1902178a srp_tmo_valid +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x23b35187 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3c714a57 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x52a666dc srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x95c9136b srp_stop_rport_timers +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb7fb1a4d srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfeaf5127 srp_remove_host +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x20c01a06 siox_device_connected +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x218a48de siox_master_unregister +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x39eca4a0 siox_master_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x6b21c931 __siox_driver_register +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0x97d70c6e siox_device_synced +EXPORT_SYMBOL_GPL drivers/siox/siox-core 0xeced2946 siox_master_alloc +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x00be6dd4 slim_get_logical_addr +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x0a91041a slim_stream_free +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1831d7d7 slimbus_bus +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x1a5756c2 slim_register_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x2213b5b7 slim_stream_allocate +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3cebc7af slim_writeb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3d4cded3 slim_readb +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x3da534bd slim_ctrl_clk_pause +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x4bf8db82 slim_write +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x5d80fd86 slim_free_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x60edb2ec slim_report_absent +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x6c9db8cd slim_msg_response +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x723195cd slim_xfer_msg +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x80b69c50 of_slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x8d942ef2 slim_stream_enable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x93cd9068 slim_device_report_present +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0x99d6176c __slim_driver_register +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa509b300 slim_unregister_controller +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xa61ce739 slim_do_transfer +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xb09c9e08 slim_read +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xb2d087a2 slim_stream_prepare +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xc88b6720 slim_driver_unregister +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xd81316dc slim_stream_disable +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xe61c6c14 slim_get_device +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf3298840 slim_alloc_txn_tid +EXPORT_SYMBOL_GPL drivers/slimbus/slimbus 0xf59a80cd slim_stream_unprepare +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0x6237b577 target_init_cmd +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xcd998d1e target_queue_submission +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xe2ce6093 target_submit +EXPORT_SYMBOL_GPL drivers/target/target_core_mod 0xef4e976c target_submit_prep +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0x0040b08d uart_try_toggle_sysrq +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0x4d0fd325 uart_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0x847e1ebe uart_console_device +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0x9db3c99b uart_insert_char +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0xb72fb213 uart_get_rs485_mode +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0xdc1a2902 uart_xchar_out +EXPORT_SYMBOL_GPL drivers/tty/serial/serial_core 0xe6bfbbe2 uart_handle_cts_change +EXPORT_SYMBOL_GPL drivers/uio/uio 0x234b546a __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x3e2d462e __devm_uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0x8a26ad17 uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xdb4d2642 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/mdev/mdev 0xd1ad18e6 mdev_bus_type +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x0d9aae43 vfio_pci_core_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2504d750 vfio_pci_core_write +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2ba230c0 vfio_pci_core_finish_enable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x2c9b5050 vfio_pci_core_uninit_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x31fdbe07 vfio_pci_core_close_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x35e0ddaf vfio_pci_core_read +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x375edc46 vfio_pci_core_err_handlers +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3e1cf8e8 vfio_pci_register_dev_region +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x3ff5b036 vfio_pci_core_ioctl +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x4cf699b8 vfio_pci_core_set_params +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x5a273e57 vfio_pci_core_unregister_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x60a53b90 vfio_pci_core_match +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0x766e26c9 vfio_pci_core_mmap +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xaab0313b vfio_pci_core_init_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xccacf3bb vfio_pci_core_sriov_configure +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd141c72e vfio_pci_core_disable +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd22dfed6 vfio_pci_core_ioctl_feature +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd3737f7d vfio_pci_core_request +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xd6e49ae2 vfio_pci_core_register_device +EXPORT_SYMBOL_GPL drivers/vfio/pci/vfio-pci-core 0xf02022e0 vfio_pci_core_aer_err_detected +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0861524b vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x15e37782 vfio_file_set_kvm +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x1a8236a1 vfio_register_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x306ab1a9 vfio_unregister_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x37142408 vfio_uninit_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x3c8e54ac vfio_file_enforced_coherent +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x438dd846 vfio_register_emulated_iommu_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x44216eb7 vfio_init_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x529db99e vfio_info_cap_add +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x61138e6c vfio_assign_device_set +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x86ac204c vfio_mig_get_next_state +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x881d90c0 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xa8d82da7 vfio_file_has_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xe327d18b vfio_file_iommu_group +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x035dfb97 vfio_virqfd_disable +EXPORT_SYMBOL_GPL drivers/vfio/vfio_virqfd 0x4cb3027e vfio_virqfd_enable +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0dabf2d3 vhost_chr_read_iter +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0ffaf0ed vq_meta_prefetch +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1cf903a4 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x29023613 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2b85f3f0 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2e5a9ac8 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x34381903 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x345574ac vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3b8c7e88 vhost_dev_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3eaea7ff vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x438927eb vhost_enqueue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x46c441a9 vhost_vq_init_access +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x586c6dd5 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5bd5347a vhost_vq_avail_empty +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5f067af9 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f6bc979 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x748ae505 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x839d98ef vhost_has_work +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8ba7422f vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8f75b369 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x92287184 vhost_exceeds_weight +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x94cfe637 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9735fc31 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x99607cb9 vhost_set_backend_features +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9b1b5020 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9e25c090 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa909cfc5 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb59dd9a0 vhost_vq_is_setup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb5f435ff vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc2a504c8 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc8a5429f vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd06bb77c vhost_init_device_iotlb +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd20b7768 vhost_new_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd5c57659 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd743aada vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xda31806a vhost_dequeue_msg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe5231d8a vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xef9b6e08 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf029d332 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfd2b3e45 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xffec0041 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x38ff875f vhost_iotlb_add_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x5f4e5249 vhost_iotlb_reset +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x69e872f9 vhost_iotlb_itree_first +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x6bec0e66 vhost_iotlb_del_range +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x83be64b9 vhost_iotlb_itree_next +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x885512a2 vhost_iotlb_add_range_ctx +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0x8a7d8ee9 vhost_iotlb_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xa24517eb vhost_iotlb_free +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xc577832d vhost_iotlb_alloc +EXPORT_SYMBOL_GPL drivers/vhost/vhost_iotlb 0xf9deb0db vhost_iotlb_map_free +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x0f828a24 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fbdev/core/fb_sys_fops 0x5411a109 fb_sys_read +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x3d701393 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 0x9e51cecf 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/dlm/dlm 0xf4c4191a dlm_posix_get +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a363865 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3a50d2e9 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa1861979 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb1a918a4 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbdf2d3c2 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcb8fba47 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf31dfd67 lockd_up +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02109304 nfs_scan_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0294c6a2 nfs_callback_nr_threads +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03d11b9b nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03eacb8c nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x060743a9 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x083bf1de nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a135a42 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b9c243b nfs_check_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0eaecd48 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10962bc2 nfs_auth_info_match +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x123ed4f2 nfs_initiate_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13bc0525 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14b93d3c unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x174add04 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1750f5fd nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x177d00fc nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x183d68eb nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c4a377a nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1c64c0ee nfs_file_fsync +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d9ad39b nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e3daeed nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1f122b41 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x20a3d0e9 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x226a27c3 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22d795a8 _nfs_display_fhandle_hash +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23841c60 nfs_access_get_cached +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x271bd74d nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x279f42e9 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x27df6443 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28c3257c nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b21d5c5 nfs_add_or_obtain +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b22139f nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c612489 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2ce71199 nfs_fscache_open_file +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2dcd301d nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30496988 __tracepoint_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x36ced758 nfs_client_for_each_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3969fe69 nfs_request_add_commit_list_locked +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3afafbb3 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cb169d8 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3dc4f83d nfs_pgio_header_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x402e8cc7 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40739385 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x40b91ec2 nfs_sync_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x43437691 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44a7d942 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44cc3a41 __tracepoint_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x453df281 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46729d83 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x469c1b5a nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb9e001 recover_lost_locks +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cd1a5cb nfs_commit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4d5e9ffe nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4efd7996 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50299e30 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x545c5f98 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56d23388 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56d398e5 nfs_reconfigure +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x57acd0ac nfs_client_init_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x584b8482 nfs_inc_attr_generation_counter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x596bb092 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59923eb3 __tracepoint_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59b714c7 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a3df2c3 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e570ee6 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f2632fe __traceiter_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f4484ad nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x625c48f6 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x63822628 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6393cac5 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65a3bd2c nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x67daba5e nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b16b924 nfs_get_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b6b7b44 nfs_d_prune_case_insensitive_aliases +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e81f032 __SCK__tp_func_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6f451b66 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73bd7af0 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73dff4c0 __SCK__tp_func_nfs_xdr_status +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x747ebefa nfs_put_lock_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x748cd428 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75cc8f07 nfs_generic_pgio +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x770627ec nfs_filemap_write_and_wait_range +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x78f319d5 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7acb5666 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ea99c8f nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82fba7d3 nfs_probe_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8499de4f nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84ec9a23 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85e43a35 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x87270ade __traceiter_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b98e5f7 nfs_release_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8c61c5c3 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8f183346 nfs_pgio_header_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9192d454 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95007f7e __SCK__tp_func_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9740213c nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x98b0ece8 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9b6404b0 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9c684989 nfs_async_iocounter_wait +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9c92f72e nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9f313eca nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9fc6054a nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa071b461 __traceiter_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa3ae2d8d nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa41c617c nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa598dd83 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaae4e16c nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaafd4acc max_session_cb_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab051bb2 nfs_set_cache_invalid +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab80428e nfs_writeback_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaeec14b1 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0f30fdc nfs_clear_verifier_delegated +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb1f19e66 nfs_free_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2bc5a6a nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb61c6121 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6432cb3 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb6c097ea nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb7dd5514 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8698b13 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbbb0d453 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe80e225 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf3a8648 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbf4879dd nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3a2be67 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6c8b8f1 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8c376c0 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc9c2d15e nfs_server_remove_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcb97d9e9 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd2e06db nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0237551 __traceiter_nfs_fsync_exit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0b3bf16 nfs_alloc_fattr_with_label +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd21a337a nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd2f0d367 nfs_try_get_tree +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4c3a0ef nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd519adb3 nfs_set_verifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd7daf8e9 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb083d2d alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdb1c52e9 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbcfdae2 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xde7e97a9 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdee102ff nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe67174c8 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe70507df __tracepoint_nfs_xdr_bad_filehandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9023830 nfs_pgio_current_mirror +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb4072ae nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedd0ec92 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedd14343 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xee02708c nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0b50e5c nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf41a40a1 nfs_wait_on_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf96f04c4 __SCK__tp_func_nfs_fsync_enter +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9c6e209 nfs_pageio_resend +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf9da88eb nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa9bb72b nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfaa64487 nfs_client_init_is_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc619abd _nfs_display_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe96f6ab nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv3 0x878131b3 nfs3_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x000860ec nfs4_test_session_trunk +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x03fbc5c6 nfs4_schedule_migration_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x04b8f66e pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x054bef45 layoutstats_timer +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08b2c467 __SCK__tp_func_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x09b8e64e nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0aebca68 __tracepoint_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0c0c13a6 nfs4_decode_mp_ds_addr +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0e7ef49e pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f01076e __tracepoint_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0ff289f3 __SCK__tp_func_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x13b44aa6 pnfs_report_layoutstat +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x180bf0f9 __traceiter_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x193d6903 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x19dfc2f3 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c1c9d78 pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1dd7a1aa __traceiter_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1ea6b4a0 pnfs_generic_recover_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x24f4e49e pnfs_generic_pg_check_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x27ad47ea __SCK__tp_func_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x304b2499 pnfs_free_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30982702 pnfs_nfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30a44ac3 __SCK__tp_func_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x317c1310 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x31bb278f __traceiter_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x32bb6e05 __tracepoint_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x348a4180 pnfs_generic_scan_commit_lists +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x380a2cd1 pnfs_generic_ds_cinfo_release_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3bddfcf1 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3d30684d pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40925b09 nfs4_pnfs_ds_connect +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x461a5cab __traceiter_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x47b4602d nfs4_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4b45f105 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4d43cb52 nfs4_find_or_create_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4f02ecc7 pnfs_generic_commit_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x533c198f __SCK__tp_func_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x579126b8 __SCK__tp_func_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x59e99474 __traceiter_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5a4314e9 __SCK__tp_func_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5ce462a3 __tracepoint_pnfs_mds_fallback_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5d1e5b20 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69d3558d pnfs_generic_rw_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6dcddad3 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6e0ee40e __traceiter_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6ee7d1a6 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x723749d2 pnfs_alloc_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x728ba04c __traceiter_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72bfca49 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x77fb89ce pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x785c06ab __SCK__tp_func_ff_layout_read_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7a4e7f4e __SCK__tp_func_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7ab7bcc6 __tracepoint_ff_layout_commit_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7cd013a8 __SCK__tp_func_pnfs_mds_fallback_pg_get_mirror_count +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7df2085a pnfs_generic_pg_check_range +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x82409884 __tracepoint_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x89198005 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8e2f82bc __traceiter_ff_layout_write_error +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8f5f0e5b nfs4_mark_deviceid_available +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x974a1614 __tracepoint_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x97690b56 __traceiter_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x99dc4963 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9a1a74c3 __tracepoint_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ac20473 nfs4_pnfs_ds_add +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9bd7d4e7 nfs4_pnfs_ds_put +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa30549eb pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa7e55e7c nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xac041b74 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaef56409 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb1291d37 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb1dbe380 nfs4_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb2be08a5 pnfs_layoutcommit_inode +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb3546554 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb43cc57c nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb949595a pnfs_generic_clear_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb9f4837b pnfs_generic_pg_cleanup +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba53a1ef __SCK__tp_func_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbafd9388 pnfs_generic_search_commit_reqs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbc7a2ee2 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc0a2ac67 pnfs_generic_sync +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3331772 nfs_map_string_to_numeric +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc368dfd7 pnfs_generic_ds_cinfo_destroy +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3dd66dd pnfs_generic_layout_insert_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc7a9d954 __SCK__tp_func_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xca856e11 pnfs_generic_write_commit_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcd0054fb pnfs_error_mark_layout_for_return +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcf29b95f __tracepoint_pnfs_mds_fallback_read_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0b88415 __traceiter_pnfs_mds_fallback_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd0ecfaad __tracepoint_pnfs_mds_fallback_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd603d9dc pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdaf3c4cb __traceiter_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdbc9fd15 __traceiter_nfs4_pnfs_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf1c9a0a nfs4_schedule_lease_moved_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf31c3c5 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdf6991a4 __SCK__tp_func_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe19f5ee0 __tracepoint_pnfs_mds_fallback_write_pagelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe557a8f8 nfs41_sequence_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe887d471 pnfs_read_resend_pnfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe8aabab1 pnfs_layout_mark_request_commit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xea0cd552 pnfs_generic_prepare_to_resend_writes +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeaba1057 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xeae8522f __tracepoint_nfs4_pnfs_commit_ds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xede41327 __tracepoint_nfs4_pnfs_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf2cc2c46 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf5ab3344 nfs42_proc_layouterror +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7801360 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf8213ed6 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf91d7f97 pnfs_add_commit_array +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf999267e pnfs_generic_commit_release +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfe1eba67 __traceiter_pnfs_mds_fallback_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x0f8398db locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x1fe1e1ad locks_end_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x41f460fd opens_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/grace 0x9f95fb86 locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x33800efb nfsacl_decode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x37ce2141 nfs_stream_decode_acl +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xaa039120 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc4ea0e4a nfs_stream_encode_acl +EXPORT_SYMBOL_GPL fs/nfsd/nfsd 0x119aa50f nfsd4_ssc_init_umount_work +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0532d6c7 o2hb_unregister_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 0x4949e6ec o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x58c88ff2 o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6a0c3847 __mlog_printk +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x75ac7f24 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7b932895 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x90d69483 o2hb_setup_callback +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 0xbd22f131 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc4d99852 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xce299054 o2nm_node_get +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 0xf982e6db o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfa83d357 o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xfe1298f3 o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x098db81d dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1645199a dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6197e3f5 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8f5346f7 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc67708ec dlm_print_one_lock +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/dlm/ocfs2_dlm 0xfd796643 dlmlock +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 0x23501bdd ocfs2_kset +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2cb33f04 ocfs2_stack_glue_unregister +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 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 0xd2b1c89a ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd344e4ee ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd561d184 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd806a273 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xabd9af6d cifs_arc4_crypt +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_arc4 0xc4c73891 cifs_arc4_setkey +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0x798f3830 cifs_md4_init +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xceecd9e4 cifs_md4_final +EXPORT_SYMBOL_GPL fs/smbfs_common/cifs_md4 0xdef1096d cifs_md4_update +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/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/crypto/libpoly1305 0x31d4e581 poly1305_init_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xd7219de2 poly1305_update_generic +EXPORT_SYMBOL_GPL lib/crypto/libpoly1305 0xf3945fcd poly1305_final_generic +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x17a4ad6b notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x9ecc6b70 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x18efd32f raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x3e193101 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xa51bfd9f raid6_2data_recov +EXPORT_SYMBOL_GPL net/802/garp 0x103872e6 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x68a92067 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xa013d9a8 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xaab19376 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xaec82eca garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xe37ac557 garp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x1a640c73 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x204873ef mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x701022e1 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x7084de0b mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0xb8b51ff5 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xf630efec mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x3888839a stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x3d0661ea stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8b335554 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0xb2ae92e0 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/bridge/bridge 0x14e303ea br_port_get_stp_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1bc08522 br_vlan_get_pvid +EXPORT_SYMBOL_GPL net/bridge/bridge 0x1c0a43f4 br_forward_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0x34806aef br_fdb_find_port +EXPORT_SYMBOL_GPL net/bridge/bridge 0x3bd13a7c br_multicast_has_querier_anywhere +EXPORT_SYMBOL_GPL net/bridge/bridge 0x53af017e br_fdb_clear_offload +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7841a924 br_get_ageing_time +EXPORT_SYMBOL_GPL net/bridge/bridge 0x7b9d74ff br_dev_queue_push_xmit +EXPORT_SYMBOL_GPL net/bridge/bridge 0x81868111 br_forward +EXPORT_SYMBOL_GPL net/bridge/bridge 0x99b9ecfd br_vlan_get_pvid_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0x9d4fe0f7 nf_br_ops +EXPORT_SYMBOL_GPL net/bridge/bridge 0x9e8f8dce br_mst_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0xa97520b9 br_multicast_router +EXPORT_SYMBOL_GPL net/bridge/bridge 0xb1453da2 br_mst_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xbdb22110 br_handle_frame_finish +EXPORT_SYMBOL_GPL net/bridge/bridge 0xc3653cbc br_multicast_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xc505afe1 br_multicast_list_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xc9028a1b br_multicast_has_router_adjacent +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd4f08178 br_mst_get_state +EXPORT_SYMBOL_GPL net/bridge/bridge 0xd8286002 br_vlan_get_proto +EXPORT_SYMBOL_GPL net/bridge/bridge 0xe437b4e7 br_vlan_get_info +EXPORT_SYMBOL_GPL net/bridge/bridge 0xee0578e5 br_vlan_get_info_rcu +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf247e4ea br_vlan_enabled +EXPORT_SYMBOL_GPL net/bridge/bridge 0xf935b9b9 br_port_flag_is_set +EXPORT_SYMBOL_GPL net/bridge/bridge 0xff9b13e9 br_multicast_has_querier_adjacent +EXPORT_SYMBOL_GPL net/core/failover 0x91c47c42 failover_register +EXPORT_SYMBOL_GPL net/core/failover 0x922ba9b9 failover_unregister +EXPORT_SYMBOL_GPL net/core/failover 0xe2291f44 failover_slave_unregister +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0096615a dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x00c21cd2 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01d3b266 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x05c1555b dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1322ff5b dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x182ec2bf dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2942459a dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2da36619 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x376cee5c dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3817c3e2 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x382c0ddd dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x56f2819f dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x59814a84 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68527494 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x70c4d48e dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x72a4122a dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b4f8e6f dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bcf5385 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7dd15a58 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e2fa476 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7eff04c3 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x80993155 dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x85796b3a dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c52042a dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x916d45e1 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9820fc18 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa68e1a78 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8748a93 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xacbde801 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5cbc6fc dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd70f1baf dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd75b7072 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdadc456e dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe27a2f6b dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3ce4e62 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf36f90c1 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf983b62b dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2d48a242 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x53954a90 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6752277c dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9a4eb1e1 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9a6bd900 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xfcd01dec dccp_v4_send_check +EXPORT_SYMBOL_GPL net/ife/ife 0x23d6a1e3 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 0xd42f1719 ife_decode +EXPORT_SYMBOL_GPL net/ife/ife 0xe7888e98 ife_tlv_meta_encode +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x7669f0a5 esp_output_tail +EXPORT_SYMBOL_GPL net/ipv4/esp4 0x9e49756b esp_output_head +EXPORT_SYMBOL_GPL net/ipv4/esp4 0xdba6303a esp_input_done2 +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3a7e4aef gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x914565cf gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x00b66d3a inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0cff374d inet_diag_msg_common_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x4f1cd062 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x6aa1bdd4 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x717606ee inet_diag_msg_attrs_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9d541a43 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa31cd216 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xa5941e79 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xd4d09400 inet_diag_find_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_gre 0xfea15550 gretap_fb_dev_create +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x382dfa9b ip_tunnel_encap_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3c7029ae ip_md_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4a2a4015 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x61541c95 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6c2d6a9b ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6e6e230b ip_tunnel_siocdevprivate +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x73fc0679 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x83c1469d ip_tunnel_delete_nets +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8a48ce00 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8da61037 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x940f3748 ip_tunnel_ctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb739f813 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbfad5291 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xc93953f5 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xeccb129c __ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf6e7cfe3 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf9cfd408 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x5e076157 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x2f3d986b ipt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x198c57a8 nf_defrag_ipv4_enable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0xc900e2ac nf_defrag_ipv4_disable +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_dup_ipv4 0x6b299a07 nf_dup_ipv4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x3022b227 nf_send_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x3ae23a4b nf_reject_ip_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x46467f62 nf_reject_iphdr_put +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x521fa584 nf_reject_ip_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x6e2c958a nf_reject_skb_v4_tcp_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x74da810d nf_reject_skb_v4_unreach +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_reject_ipv4 0x9d3168e1 nf_send_reset +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_socket_ipv4 0xf1b8f9ef nf_sk_lookup_slow_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x4b54f914 nf_tproxy_get_sock_v4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0x8aa262e8 nf_tproxy_handle_time_wait4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_tproxy_ipv4 0xff2da30d nf_tproxy_laddr4 +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x1bb8e3cc nft_fib4_eval +EXPORT_SYMBOL_GPL net/ipv4/netfilter/nft_fib_ipv4 0x7472f6bd nft_fib4_eval_type +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x770e94e6 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd6eaf270 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe9e9a871 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xed1c65b5 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf568a230 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x06624140 udp_tunnel_drop_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x2020a465 setup_udp_tunnel_sock +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x269d02b2 udp_tunnel_notify_del_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0x8d68c6eb udp_tunnel_sock_release +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xaf8aed2b udp_tun_rx_dst +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xb4fe1777 udp_tunnel_push_rx_port +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xd94b203f udp_tunnel_xmit_skb +EXPORT_SYMBOL_GPL net/ipv4/udp_tunnel 0xed3cef24 udp_tunnel_notify_add_rx_port +EXPORT_SYMBOL_GPL net/ipv6/esp6 0x3e0f4a3d esp6_output_head +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xf25b7996 esp6_input_done2 +EXPORT_SYMBOL_GPL net/ipv6/esp6 0xfe8838ec esp6_output_tail +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x85f81a0b ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x87de9a33 ip6_tnl_encap_setup +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xbf0cb0be ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0x541409fc udp_sock_create6 +EXPORT_SYMBOL_GPL net/ipv6/ip6_udp_tunnel 0xf2d6103a udp_tunnel6_xmit_skb +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x62c500dd ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x4b2bb55b nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x58a3eb8b nf_defrag_ipv6_disable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0xf465ae46 nf_ct_frag6_gather +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_dup_ipv6 0xc474d04a nf_dup_ipv6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x2abc65e6 nf_reject_skb_v6_tcp_reset +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x5f04f61d nf_send_unreach6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0x7167a8f5 nf_send_reset6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xad9a36b5 nf_reject_ip6_tcphdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xbb46eaef nf_reject_ip6hdr_put +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xd1a4c1f4 nf_reject_skb_v6_unreach +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_reject_ipv6 0xda93480b nf_reject_ip6_tcphdr_get +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_socket_ipv6 0x76df5886 nf_sk_lookup_slow_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x1e6b3653 nf_tproxy_handle_time_wait6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x39bf42e4 nf_tproxy_get_sock_v6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_tproxy_ipv6 0x8569b519 nf_tproxy_laddr6 +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x0b707dc5 nft_fib6_eval +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nft_fib_ipv6 0x3aa4cb38 nft_fib6_eval_type +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0274e54a l2tp_session_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02a2c8e3 l2tp_session_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02f17e01 l2tp_session_set_header_len +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x03ac539d l2tp_tunnel_inc_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3340e9a0 l2tp_tunnel_get_session +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3c968edc l2tp_session_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3d064c4f l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x437702f9 l2tp_session_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c485003 l2tp_tunnel_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x50a7fa10 l2tp_session_dec_refcount +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x598d2936 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5fccadaa l2tp_session_get_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6bbc8d78 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x77b55059 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa0b9506e l2tp_tunnel_register +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa6d4cdab l2tp_sk_to_tunnel +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa979bf64 l2tp_tunnel_get_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbebf9f87 l2tp_recv_common +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc955d2a6 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xed0144bd l2tp_tunnel_get +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee8eba32 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_ip 0x1cf70221 l2tp_ioctl +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x34659d1c l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x5e3c26d6 mpls_dev_mtu +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x640e519d mpls_pkt_too_big +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7670b536 nla_get_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x7f10ea7e nla_put_labels +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0x8f39d59f mpls_stats_inc_outucastpkts +EXPORT_SYMBOL_GPL net/mpls/mpls_router 0xdc019dbe mpls_output_possible +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0b2310aa ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x102a1781 ip_set_init_comment +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x126d3e53 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x21662c58 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x22d966c6 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x2adb0e85 ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x5041aff4 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x552d3751 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6fe74951 ip_set_match_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7f79471f ip_set_put_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x816e5a17 ip_set_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8a5dd3fd ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x906f024e ip_set_put_flags +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 0xa6adb1f1 ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaa4d4c48 ip_set_elem_len +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xab97a0a8 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xbab7160f ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc0264a0e ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc958f5f2 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xda8019bb ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xee7acf20 ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x3ad54ec6 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x4f8673d7 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x783f65d1 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb8a9b517 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x183cd545 nf_conncount_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x419ab422 nf_conncount_list_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x4e2b5348 nf_conncount_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x4e956ea0 nf_conncount_gc_list +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x5c387cb0 nf_conncount_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0x87a194f3 nf_conncount_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conncount 0xf808bf82 nf_conncount_cache_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02729004 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x050cd141 nf_ct_netns_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07f7c126 nf_ct_netns_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x096d0d4d nf_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a922b79 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 0x0c30d08f nf_conntrack_count +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x132934b0 nf_ct_seqadj_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13ee9358 nf_ct_untimeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19c75e24 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a33228d nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22e75f27 nf_ct_remove_expect +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25008529 nf_ct_tmpl_free +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 0x2e19934a nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x342c6fb2 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38a87d22 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a4565dd nf_ct_tcp_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f286578 nf_nat_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x417908d5 nf_ct_acct_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4336ad51 nf_conn_pernet_ecache +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x435c4b76 nf_nat_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4ee232b8 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x537b6490 nf_ct_bridge_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x547b0c53 nf_ct_helper_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5826dff6 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e044bf2 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f0cc606 nf_ct_timeout_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65c9d6af nf_conntrack_helpers_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x660216a1 nf_ct_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7216334c nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78ecea8e __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e0232a3 nf_nat_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8388a05e nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8b58b88a nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8dfbbe89 nf_ct_expect_iterate_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e2416de nf_ct_ecache_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fa14454 nf_ct_iterate_cleanup_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ff4522c nf_ct_get_id +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90277faf nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90659e79 nf_connlabels_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9221b89f nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92b0af92 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94a1531f nf_ct_expect_iterate_net +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9514554a nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9617f279 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e6c14b6 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0142cb6 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa57e0c3d nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6503fdb nf_ct_destroy_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa0c92f5 nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab239746 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaba54f6a __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac5c4b63 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xafbd6cf5 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb58a4d06 nf_conntrack_eventmask_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb60a378e nf_ct_delete +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb682b2df nf_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb978d4e2 nf_ct_set_auto_assign_helper_warned +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbabc9665 nf_conntrack_helpers_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf06cd63 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0d8ce8e nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1b32c6c nf_ct_l4proto_log_invalid +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2cd342f nf_ct_seq_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc364c485 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9de42e5 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xceaaac37 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2f8e971 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3660282 nf_conntrack_helper_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4a56fe2 nf_ct_bridge_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd505c3e0 nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5a1be9f nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd60c12b9 nf_ct_seqadj_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9a702e3 nf_ct_tmpl_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd9cc99d7 nf_conntrack_expect_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb435c7d nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc215a2d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddae19c7 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xddbf77dd nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde828c8d nf_ct_set_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0aed48 nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1d19c67 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe27d1882 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2d6da89 nf_connlabels_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec8beba6 nf_ct_expect_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf05497af nf_ct_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf24e79d8 nf_conntrack_locks +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 0xffdeeb2c __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x84076e60 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x3de2435a nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x49cc7cc2 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0fc168d9 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2eb4dded set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x43cd0e49 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4f9a6739 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5db369bb nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x92ec506e nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcfb09c5c get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf66c48d9 nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf68e76dd set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfc4fb228 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x3f9176e8 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe5f4a976 nf_nat_pptp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x08305f8b ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x12306e76 nf_nat_sip_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3ad3295b ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5abd80b2 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x78e59738 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8597a241 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbaab0d4f ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xf3f151de nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x75a743f9 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x4d9985e6 nf_dup_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0x956de07b nf_fwd_netdev_egress +EXPORT_SYMBOL_GPL net/netfilter/nf_dup_netdev 0xb98b7883 nft_fwd_dup_netdev_offload +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x01fc4a39 flow_offload_add +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x0e9c5ca3 nf_flow_table_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2777697f nf_flow_dnat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x2cf82eef nf_flow_offload_ipv6_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x303677f7 flow_offload_teardown +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x31932fb5 flow_offload_refresh +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x34044d7d nf_flow_table_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x3a94b0fe nf_flow_table_offload_setup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x3fdb5d16 nf_flow_rule_route_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x4af5e3a8 nf_flow_snat_port +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x50a99c13 nf_flow_table_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x6955c8c0 flow_offload_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x7d6b0fab nf_flow_rule_route_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x8a41128d flow_offload_free +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0x9206effc nf_flow_offload_ip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xd78a13c4 flow_offload_route_init +EXPORT_SYMBOL_GPL net/netfilter/nf_flow_table 0xeecf6ebe flow_offload_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0b347e01 nf_nat_inet_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1500a4f8 nf_nat_ipv4_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x26389060 nf_nat_alloc_null_binding +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x277fc15c 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 0x422eb506 nf_nat_icmp_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4f0d221a nf_nat_ipv4_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5629d7ff nf_nat_redirect_ipv4 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x653ac2d4 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x69f536a3 nf_nat_masquerade_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x881a060f nf_nat_inet_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8c1b7583 nf_nat_redirect_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8f913cc7 nf_nat_ipv6_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xbe4077c8 nf_nat_ipv6_register_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc2033368 nf_ct_nat_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xce7ffe70 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd9c25654 nf_nat_masquerade_inet_unregister_notifiers +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xec755d10 nf_nat_inet_unregister_fn +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x070b2ea8 synproxy_recv_client_ack +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1c7f5677 nf_synproxy_ipv4_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x1f099794 synproxy_init_timestamp_cookie +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x34b8abec nf_synproxy_ipv6_init +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x56230123 nf_synproxy_ipv6_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7787a2fa synproxy_recv_client_ack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x77cdb874 synproxy_parse_options +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x7ee4fcb8 nf_synproxy_ipv4_fini +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x8127452d ipv4_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0x86567f9f ipv6_synproxy_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xc2976117 synproxy_send_client_synack_ipv6 +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xca9fc082 synproxy_net_id +EXPORT_SYMBOL_GPL net/netfilter/nf_synproxy_core 0xe647b3af synproxy_send_client_synack +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x054c322b nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x06c6ca47 nft_meta_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x08f7a6e5 nft_meta_set_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0ad8acf2 nf_tables_destroy_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x0ec37bd3 nft_data_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x13a0bbca __nft_reg_track_cancel +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x1dbb746d nft_meta_set_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x23022e80 nft_register_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x267d6f1e nft_obj_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x27d967d1 nft_register_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x2ae3bbb8 nft_chain_validate +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3251d762 nf_tables_trans_destroy_flush_work +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x3c46c8e6 nft_set_elem_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x41b71e65 nft_trace_enabled +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4351e5c0 nft_meta_get_reduce +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x46a5c076 nft_reg_track_update +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x46b6219f nft_unregister_obj +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x4865d405 nft_expr_reduce_bitwise +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x491d4eaa nft_chain_validate_dependency +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x530a0be7 nft_meta_get_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x5612ba9e nft_data_release +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x58b9a023 nft_data_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6e42ab33 nf_tables_bind_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x6ef38fa0 nft_set_catchall_gc +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x70a30cbf nft_register_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7173bbac nft_do_chain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x7767f406 nft_obj_notify +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x77ab5aef nf_tables_deactivate_flowtable +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8411dc76 nft_chain_validate_hooks +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x860569ab nft_meta_set_eval +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8ad36c60 nft_register_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8ba963f7 nft_request_module +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x8c136b4b __nft_release_basechain +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x90eab0d5 nft_dump_register +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0x94881893 nf_tables_deactivate_set +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xa9b98122 nft_meta_set_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xad6fc38b nft_set_lookup_global +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbbebcbad nft_meta_set_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xbbfdc92c nft_meta_get_dump +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xc2bf8ff2 nft_parse_register_store +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xd8344726 nft_flowtable_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xdce18309 nft_unregister_chain_type +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde3fd6a7 nft_meta_get_init +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xde57b5f5 nft_parse_u32_check +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe2b8cc13 nft_parse_register_load +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xe6e80c21 nft_set_catchall_lookup +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xedca87ff nft_unregister_expr +EXPORT_SYMBOL_GPL net/netfilter/nf_tables 0xf9f32f97 nft_unregister_flowtable_type +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x196b12dc nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6306695c nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x878dfccd nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa8b39e45 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe19d7082 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe72c9696 nfnetlink_broadcast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf737c450 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x1913a95d nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x56306170 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x81b0d086 nfnl_acct_overquota +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x35eff5e0 nf_osf_fingers +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x42595fbb nf_osf_match +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_osf 0x9d69f13e nf_osf_find +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x0df1b20a nft_fib_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x22505cbd nft_fib_dump +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0x8296972d nft_fib_reduce +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xad93419d nft_fib_init +EXPORT_SYMBOL_GPL net/netfilter/nft_fib 0xb1ca6ab3 nft_fib_store_result +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x1de558c1 nft_reject_icmpv6_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6081751d nft_reject_policy +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0x6b316509 nft_reject_init +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xe2c84666 nft_reject_icmp_code +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xfaf93331 nft_reject_validate +EXPORT_SYMBOL_GPL net/netfilter/nft_reject 0xfda24223 nft_reject_dump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x04e27719 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x07870b85 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x07e37b1e xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x24209dfc xt_hook_ops_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x37841a43 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x418d9129 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x49879835 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4b5fdfc2 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x55c0ab8a xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x657fd618 xt_table_unlock +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 0x89d3cce8 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x963a3606 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9b59a5ed xt_request_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9bd9824a xt_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9c995c69 xt_percpu_counter_alloc +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9d78e03f xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa7c94f1d xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaa5e9f24 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbf5fbdce xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbfacb837 xt_percpu_counter_free +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc178ca1a xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7a4c154 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7adbcff xt_compat_target_from_user +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 0xd1e40743 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd3fcc511 xt_tee_enabled +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bb821b xt_copy_counters +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xddf68fc6 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe41de56d xt_register_template +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf8bb4ceb xt_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xff005d3b xt_unregister_template +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1b0720b4 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x8976cbb8 xt_rateest_put +EXPORT_SYMBOL_GPL net/nsh/nsh 0x2fe1d4d8 nsh_push +EXPORT_SYMBOL_GPL net/nsh/nsh 0xbefdbbc5 nsh_pop +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x0891b651 ovs_vport_alloc +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x2a79e0a8 ovs_netdev_tunnel_destroy +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x4b9d3ad0 ovs_vport_ops_unregister +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0x508233a6 ovs_vport_free +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xc860cf6a __ovs_vport_ops_register +EXPORT_SYMBOL_GPL net/openvswitch/openvswitch 0xed7798de ovs_netdev_link +EXPORT_SYMBOL_GPL net/psample/psample 0x8e41bd9a psample_sample_packet +EXPORT_SYMBOL_GPL net/psample/psample 0xccc42f4c psample_group_take +EXPORT_SYMBOL_GPL net/psample/psample 0xd5480c96 psample_group_put +EXPORT_SYMBOL_GPL net/psample/psample 0xeff939cd psample_group_get +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x161bca52 rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x16819fb0 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x1f714190 rds_inc_path_init +EXPORT_SYMBOL_GPL net/rds/rds 0x2223ab68 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x2306bec1 rds_conn_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 0x40d2ce89 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x44733058 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x45a4781e rds_addr_cmp +EXPORT_SYMBOL_GPL net/rds/rds 0x4aa23f58 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x4f35f6f0 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x50cce13a rds_inc_put +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 0x5b14f8d4 rds_conn_path_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x5d46af82 rds_connect_path_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x5db6997e rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x671c6a41 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x675f2686 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x7b399e66 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x80ac0758 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8a10306b rds_conn_path_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x8debe465 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x96a32911 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xa520fc59 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xaf23b176 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xb425f114 rds_send_path_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xb76fa2d3 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xcb95131b rds_send_ping +EXPORT_SYMBOL_GPL net/rds/rds 0xccaf3d5c rds_send_path_reset +EXPORT_SYMBOL_GPL net/rds/rds 0xda170069 rds_send_xmit +EXPORT_SYMBOL_GPL net/rds/rds 0xe784a3fd rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xebbaf899 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0xf1bbab74 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xfe7b198e rds_message_unmapped +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x6ce9b467 pie_calculate_probability +EXPORT_SYMBOL_GPL net/sched/sch_pie 0x76d1f1a2 pie_drop_early +EXPORT_SYMBOL_GPL net/sched/sch_pie 0xe5da361b pie_process_dequeue +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x3aef7c97 taprio_offload_get +EXPORT_SYMBOL_GPL net/sched/sch_taprio 0x3dff2951 taprio_offload_free +EXPORT_SYMBOL_GPL net/sctp/sctp 0x69b88cd9 sctp_get_sctp_info +EXPORT_SYMBOL_GPL net/sctp/sctp 0x81cb77d6 sctp_for_each_endpoint +EXPORT_SYMBOL_GPL net/sctp/sctp 0xaa7b7ae5 sctp_transport_lookup_process +EXPORT_SYMBOL_GPL net/sctp/sctp 0xf28b5cfb sctp_transport_traverse_process +EXPORT_SYMBOL_GPL net/smc/smc 0x2692326b smc_proto6 +EXPORT_SYMBOL_GPL net/smc/smc 0x4c444668 smcd_free_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x707eba2a smcd_unregister_dev +EXPORT_SYMBOL_GPL net/smc/smc 0x7cf58f90 smcd_handle_irq +EXPORT_SYMBOL_GPL net/smc/smc 0x99e972f3 smc_unhash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0xa540a8f1 smcd_register_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xb0bc0267 smc_proto +EXPORT_SYMBOL_GPL net/smc/smc 0xd7700fe4 smcd_alloc_dev +EXPORT_SYMBOL_GPL net/smc/smc 0xdec226f7 smc_hash_sk +EXPORT_SYMBOL_GPL net/smc/smc 0xefc05991 smcd_handle_event +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1721991e gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x38d3dce5 g_make_token_header +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x40962a58 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 0x753be62e svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7b05637c gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7673035 g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00ae8225 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x028da0c3 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x047a4704 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04edc972 xprt_pin_rqst +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 0x06e9439c rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0816a7a8 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x082fe34a xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0868280a xprt_wake_up_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09dfde96 svc_encode_result_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a98ec41 sunrpc_cache_lookup_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a9e61c1 cache_seq_start_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ae47884 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d5b2658 svc_generic_rpcbind_set +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f4fbaf5 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x103944c1 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x113b12a6 rpc_clnt_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1171975c rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11cd03ca rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1348e37d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x137955bb auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1394bdad xdr_stream_decode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13f74c1a svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x158cd841 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18931d0f rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19c8d4fa rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19fc252d xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a2cbbc1 rpcauth_unwrap_resp_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a3a433f read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b59c652 rpc_clnt_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e119a79 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x215d5861 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x219456d0 xprt_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22a265ae xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2558aad6 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2757c3c8 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2775ba36 rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x278ad165 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2845c4ee rpc_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29d3685d rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a7565c4 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce0a9b9 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d0fa3fe rpc_task_release_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e14325f xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3068de85 rpc_init_pipe_dir_head +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30c74515 xprt_reconnect_backoff +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31023bff rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31cdded0 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32277b02 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3410dcb5 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34892dc8 svc_xprt_deferred_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x352a45b2 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35e5cf6a svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37b0f8f7 xdr_stream_decode_string_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37d71024 xdr_reserve_space_vec +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x391f5983 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a26359c xdr_expand_hole +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3acfa703 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c339185 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c5e963f rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d946318 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d94db18 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ec8b891 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f5895de rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f5943c0 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3f9a2b0b rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x414af1b0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42303e34 svc_xprt_received +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x425f21a3 xdr_page_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x432ee481 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4408688b svc_xprt_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x441258b9 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x445da1e8 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45d6f5bc xprt_unpin_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4637cfe1 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47cd4ba6 rpc_add_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48d40a09 xprt_wait_for_reply_request_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afedab1 xprtiod_workqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4bc2bd0b xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cedece3 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dac77f0 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e043a12 xprt_free_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e63a63b cache_seq_next_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e8f6ca7 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eee69a3 xprt_lock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50fa36f4 xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52ba5040 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x541aa441 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5474bc87 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55b923c5 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55d23a96 xdr_stream_decode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5640186e svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56926355 rpc_switch_client_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x569d4b30 xprt_add_backlog +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x573063ee xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5753edcf cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58437855 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x593d9d5e bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a45ba31 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a69a201 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b5e0575 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d712fc3 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5db5fe0f rpc_clnt_swap_deactivate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f2025cc xprt_request_get_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60bdec41 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6164fcce svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61d5d63e rpc_sleep_on_priority_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61fabcdc svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6277d790 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62b73489 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x645313ee xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x651a9fe2 svc_rpcbind_set_version +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x655861d8 xdr_align_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x666dd71d rpc_count_iostats_metrics +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66f1952b rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ab627ca cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c744534 rpc_prepare_reply_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c8a4cd3 rpc_sleep_on_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d209d3b xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e9516ec rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f356271 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f43c8ec xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f7430c5 svc_xprt_destroy_all +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70aac734 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72f98eec rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7371957f rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b2e275c rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b7233c6 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d911cb2 xprt_reconnect_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d9bcf15 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dbd9ef3 sunrpc_cache_pipe_upcall_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de40975 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7def632f xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ebd2290 rpc_clnt_show_stats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80861924 rpcauth_lookupcred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x816c18ad auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x825a2c69 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x831f65c9 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83be9857 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x842fa8c3 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84a3c79f xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85c90cce svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cc37ad rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8745e1bd write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x896be75a xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b133ebe xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c5f1631 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d761b19 rpc_clnt_iterate_for_each_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f88a7d2 svc_generic_init_request +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ff2f6c4 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90914f80 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9250b43f rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x934d91a9 xdr_stream_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bbab33 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94534761 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9472e08a rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9526bf6b xprt_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x959d59e9 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95f1da47 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9916823e xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x991bb87b xprt_unlock_connect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9934798b gssd_running +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99b281d2 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99c75eb4 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99e53ebc rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bce70ab xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6f4eab xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6fd55d rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa07bc0dd rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa086738d rpc_clnt_xprt_switch_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa087b0d7 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa183fa44 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6bdb357 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8145e9c xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa86d597a xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaabeca9d rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab05abd5 xprt_force_disconnect +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf208db5 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb000d38a svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2b49f9f sunrpc_cache_unhash +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb46276a1 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5797f63 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5afc6d3 rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5d71986 rpc_init_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8c2c518 rpc_max_bc_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba078c37 __xdr_commit_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba66f1f1 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbeaddcf4 rpc_task_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbee44db9 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0908dd0 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc17b7e6e rpcauth_stringify_acceptor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc27a7015 rpc_clnt_setup_test_and_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc316ea58 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc39c5436 cache_seq_stop_rcu +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc550666e svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5cec309 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5ed46cd svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc98a5918 svc_fill_symlink_pathname +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb6aa320 rpc_remove_pipe_dir_object +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd7ff003 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce678a59 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfdb77fc svc_rqst_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd06af116 rpc_clnt_swap_activate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd180e83e xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd313455a rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd33024b2 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd690092b rpc_clnt_xprt_switch_has_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8606e27 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd97d4d51 svc_age_temp_xprts_now +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda29b560 rpc_num_bc_slots +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda3817a1 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb0d9e2b svc_xprt_close +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb2960cc svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb5ea013 svc_rqst_replace_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd691402 xprt_find_transport_ident +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdd8835d5 xdr_stream_decode_opaque_dup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3c136b rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3170f33 rpc_clnt_xprt_switch_add_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3a066b6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4309e99 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6b84183 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ec61b3 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe78db72b rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea422bd8 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaf4909d svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb1d1c87 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec760092 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 0xf05e67af svc_fill_write_vector +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0771b92 svc_alien_sock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf255fc46 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf294e154 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf41b8994 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf493ef0f rpcauth_wrap_req_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4a19a13 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4eed5c3 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6e27bbb svc_rqst_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f2cd15 rpc_set_connect_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf74509af rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf75733cd xprt_wait_for_reply_request_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7fca26f rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf818cc8c svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8eba3a8 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa885610 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd84bfb5 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff2e79be rpc_find_or_alloc_pipe_dir_object +EXPORT_SYMBOL_GPL net/tls/tls 0x70149f01 tls_offload_tx_resync_request +EXPORT_SYMBOL_GPL net/tls/tls 0x79707cab tls_encrypt_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xbf59d6ff tls_validate_xmit_skb +EXPORT_SYMBOL_GPL net/tls/tls 0xcd9cc1b9 tls_device_sk_destruct +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 0x074a0930 virtio_transport_recv_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x08884746 virtio_transport_notify_send_pre_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x1248b839 virtio_transport_destruct +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x2732b445 virtio_transport_notify_buffer_size +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x40667a53 virtio_transport_dgram_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x4a35ac35 virtio_transport_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x51ce57de virtio_transport_get_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x555a491b virtio_transport_connect +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5b4905fa virtio_transport_free_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x5d744e8e virtio_transport_notify_send_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x6b751323 virtio_transport_seqpacket_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x7076f170 virtio_transport_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x77b53bf5 virtio_transport_release +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x78042528 virtio_transport_stream_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x786c5ce9 virtio_transport_notify_send_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0x9e48ad20 virtio_transport_notify_recv_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa01958aa virtio_transport_put_credit +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xa240727a virtio_transport_shutdown +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaa70aa43 virtio_transport_notify_recv_post_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xaf705855 virtio_transport_notify_send_post_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb3a49809 virtio_transport_seqpacket_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xb55cfbae 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 0xcd1a3f2a virtio_transport_do_socket_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xcd6f0aa2 virtio_transport_dgram_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xd3c848a6 virtio_transport_inc_tx_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xdc2aaa14 virtio_transport_notify_recv_pre_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xde9033f3 virtio_transport_notify_poll_out +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe378a3e5 virtio_transport_seqpacket_dequeue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xe633ef49 virtio_transport_stream_rcvhiwat +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf70c1c98 virtio_transport_stream_is_active +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xf78207cc virtio_transport_deliver_tap_pkt +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfbae3620 virtio_transport_notify_poll_in +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xfc25234b virtio_transport_stream_enqueue +EXPORT_SYMBOL_GPL net/vmw_vsock/vmw_vsock_virtio_transport_common 0xffce1936 virtio_transport_notify_recv_pre_block +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x055099c7 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0e9bc9b6 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x214ffcea vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x284e07d8 vsock_bind_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2e1462d5 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2efb9029 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3619f46b vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x3d4b0fca vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b99648c vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4fa5115b vsock_remove_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x540cc3d1 vsock_create_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x66f36c4a vsock_add_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x786d2a4c vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x79d61b16 vsock_core_get_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x90aa8549 vsock_find_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9bb6fd09 vsock_connected_table +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf2674b5 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xaf6764df vsock_deliver_tap +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb262e595 vsock_assign_transport +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb655b768 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb844b677 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd00a591 vsock_table_lock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc318a4ce vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc3b4d22f vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd128093e vsock_remove_sock +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdf3a4abe vsock_core_unregister +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xebe77232 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xec96eadf vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfb9f9ad3 vsock_core_register +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xfcdf9bc5 vsock_for_each_connected_socket +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 0x3c75de3b ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa787a0d7 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xad5e24b5 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbba0f28f ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0x4a0c7516 xfrm_msg_min +EXPORT_SYMBOL_GPL net/xfrm/xfrm_user 0xe2521b1c xfrma_policy +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 0x00007ace inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x00079bff irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x000fe2f5 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x00291373 vp_legacy_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x003e191f gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0x00513f58 get_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x0054c542 debugfs_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0099b8f0 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x00b3df19 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00c7c0aa kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x00f305eb crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x01004ee9 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x01413c5f css_schedule_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x014f004f serdev_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x015ddd09 pci_common_swizzle +EXPORT_SYMBOL_GPL vmlinux 0x0161ad90 __devm_pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x016c9894 fwnode_get_name +EXPORT_SYMBOL_GPL vmlinux 0x017a58c0 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x017c2641 serdev_device_write +EXPORT_SYMBOL_GPL vmlinux 0x0183b680 gpiod_enable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0x01b7bba2 fuse_init_fs_context_submount +EXPORT_SYMBOL_GPL vmlinux 0x01bced16 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x01c0e204 serdev_device_remove +EXPORT_SYMBOL_GPL vmlinux 0x01c31f3a subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x01d7b8ed dax_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x01d92a27 trace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x01dfd0a3 misc_cg_uncharge +EXPORT_SYMBOL_GPL vmlinux 0x02096560 kvm_put_kvm_no_destroy +EXPORT_SYMBOL_GPL vmlinux 0x0215fb90 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x02175cd0 seg6_do_srh_encap +EXPORT_SYMBOL_GPL vmlinux 0x02334a6d iommu_map_sg +EXPORT_SYMBOL_GPL vmlinux 0x02394899 play_idle_precise +EXPORT_SYMBOL_GPL vmlinux 0x023aab3f perf_pmu_register +EXPORT_SYMBOL_GPL vmlinux 0x026473e9 pci_epc_set_bar +EXPORT_SYMBOL_GPL vmlinux 0x0293e761 iomap_file_unshare +EXPORT_SYMBOL_GPL vmlinux 0x029dd543 inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x02a46feb blk_queue_set_zoned +EXPORT_SYMBOL_GPL vmlinux 0x02d80c00 zpci_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x02eb45c3 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x02f66b44 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x0336cce1 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035db564 __auxiliary_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x036650e8 crypto_grab_shash +EXPORT_SYMBOL_GPL vmlinux 0x0369e819 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x036de383 perf_event_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x038057ca gmap_shadow_valid +EXPORT_SYMBOL_GPL vmlinux 0x03952887 ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x039ee78c __fscrypt_encrypt_symlink +EXPORT_SYMBOL_GPL vmlinux 0x03b47e5b msg_zerocopy_put_abort +EXPORT_SYMBOL_GPL vmlinux 0x03c12dfe cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x03ce7234 sched_smt_present +EXPORT_SYMBOL_GPL vmlinux 0x03dd2b2e ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x03e5c237 gpiochip_get_data +EXPORT_SYMBOL_GPL vmlinux 0x03f800c7 add_hwgenerator_randomness +EXPORT_SYMBOL_GPL vmlinux 0x0402cbbf preempt_notifier_inc +EXPORT_SYMBOL_GPL vmlinux 0x040b70d9 perf_trace_run_bpf_submit +EXPORT_SYMBOL_GPL vmlinux 0x044c2928 atomic_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x046431e0 nf_hooks_lwtunnel_sysctl_handler +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0475626d scsi_internal_device_unblock_nowait +EXPORT_SYMBOL_GPL vmlinux 0x048c96af badblocks_set +EXPORT_SYMBOL_GPL vmlinux 0x048d446e devlink_dpipe_headers_register +EXPORT_SYMBOL_GPL vmlinux 0x049ffa0f __traceiter_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x04a6fee6 software_node_register +EXPORT_SYMBOL_GPL vmlinux 0x04a8f122 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04b0c0ab unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x04b80a39 fib_info_nh_uses_dev +EXPORT_SYMBOL_GPL vmlinux 0x04bf0092 io_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x04c41c60 devlink_flash_update_status_notify +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04c8aebf console_verbose +EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x050f7781 crypto_stats_init +EXPORT_SYMBOL_GPL vmlinux 0x05105bf9 ip6_pol_route +EXPORT_SYMBOL_GPL vmlinux 0x05137189 register_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x051a0bc1 stack_depot_fetch +EXPORT_SYMBOL_GPL vmlinux 0x052843c3 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x052b4013 register_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x052c9aed ktime_get_real_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x053c0e48 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x053d738a __SCK__tp_func_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0552a470 do_tcp_sendpages +EXPORT_SYMBOL_GPL vmlinux 0x0570667e virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x0582ed74 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x05883efb __traceiter_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0x058c6377 for_each_kernel_tracepoint +EXPORT_SYMBOL_GPL vmlinux 0x05abf17c addrconf_prefix_rcv_add_addr +EXPORT_SYMBOL_GPL vmlinux 0x05f57a67 bpf_trace_run5 +EXPORT_SYMBOL_GPL vmlinux 0x06055a23 __tracepoint_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x060c09d1 kvm_destroy_vcpus +EXPORT_SYMBOL_GPL vmlinux 0x061a6a17 rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0x06209f49 phy_lookup_setting +EXPORT_SYMBOL_GPL vmlinux 0x062f37c6 __traceiter_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x06494d74 fib_alias_hw_flags_set +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065a7a23 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x066c7113 crypto_alloc_sync_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x06cbf6cd gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x06cca30b ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0x06d7037c hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x070708c7 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x07147824 devm_platform_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0x0721e649 watchdog_notify_pretimeout +EXPORT_SYMBOL_GPL vmlinux 0x07231935 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x07242d92 put_dax +EXPORT_SYMBOL_GPL vmlinux 0x07389731 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x073a4f3e device_match_name +EXPORT_SYMBOL_GPL vmlinux 0x073f5ace find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x07483e13 cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0x074b05f0 gmap_get_enabled +EXPORT_SYMBOL_GPL vmlinux 0x0756a31c register_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0x0757eede stack_trace_snprint +EXPORT_SYMBOL_GPL vmlinux 0x0763569a kthread_data +EXPORT_SYMBOL_GPL vmlinux 0x0771534a __pci_epf_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x07728fa5 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x07823126 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x07865689 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x07922121 devm_gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x07a5e89f genphy_c45_pma_setup_forced +EXPORT_SYMBOL_GPL vmlinux 0x07a85473 ccw_device_get_iid +EXPORT_SYMBOL_GPL vmlinux 0x07a88625 trace_output_call +EXPORT_SYMBOL_GPL vmlinux 0x07b10430 folio_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07be6905 net_inc_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x07cb7afb sfp_parse_port +EXPORT_SYMBOL_GPL vmlinux 0x07d93d79 fwnode_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x08135613 dax_write_cache +EXPORT_SYMBOL_GPL vmlinux 0x081ba4c3 __dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x081dba29 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x083dcbca __bio_release_pages +EXPORT_SYMBOL_GPL vmlinux 0x08436119 klp_shadow_alloc +EXPORT_SYMBOL_GPL vmlinux 0x086deb30 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x0876bcfd devm_device_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x0880fc05 pci_iov_virtfn_devfn +EXPORT_SYMBOL_GPL vmlinux 0x08845714 __strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x088e92d9 xdp_return_frame_rx_napi +EXPORT_SYMBOL_GPL vmlinux 0x08aa3963 pci_host_probe +EXPORT_SYMBOL_GPL vmlinux 0x08b2e9aa hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x08b55809 nf_route +EXPORT_SYMBOL_GPL vmlinux 0x08bc28f7 gpiod_set_array_value +EXPORT_SYMBOL_GPL vmlinux 0x08c315a6 pci_msi_mask_irq +EXPORT_SYMBOL_GPL vmlinux 0x08c78cf7 offline_and_remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x08fc53c5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092f6af0 pci_epf_type_add_cfs +EXPORT_SYMBOL_GPL vmlinux 0x09578c37 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x0960ea04 vp_legacy_get_features +EXPORT_SYMBOL_GPL vmlinux 0x0976f832 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x098cef74 irq_create_mapping_affinity +EXPORT_SYMBOL_GPL vmlinux 0x09b53e14 interval_tree_remove +EXPORT_SYMBOL_GPL vmlinux 0x09fd62d8 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x0a0cfac0 xdp_rxq_info_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0a22bc4c gpiod_export +EXPORT_SYMBOL_GPL vmlinux 0x0a2b4861 blkcg_root_css +EXPORT_SYMBOL_GPL vmlinux 0x0a463293 __tracepoint_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x0a61e0f6 pci_dev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0a6c4041 cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0x0a7ceb30 __tracepoint_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x0a9478d9 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x0ab7e27a class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x0ac29984 mmu_interval_read_begin +EXPORT_SYMBOL_GPL vmlinux 0x0ac2f229 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x0acac120 iommu_fwspec_init +EXPORT_SYMBOL_GPL vmlinux 0x0af319e9 udp_destruct_sock +EXPORT_SYMBOL_GPL vmlinux 0x0af4c21e iomap_writepage +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b11a171 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0b15ceab msg_zerocopy_callback +EXPORT_SYMBOL_GPL vmlinux 0x0b2a1318 tcp_rate_check_app_limited +EXPORT_SYMBOL_GPL vmlinux 0x0b2db2d5 remove_resource +EXPORT_SYMBOL_GPL vmlinux 0x0b3b2474 iommu_enable_nesting +EXPORT_SYMBOL_GPL vmlinux 0x0b4f6b25 switchdev_handle_fdb_event_to_device +EXPORT_SYMBOL_GPL vmlinux 0x0b58faff ethnl_cable_test_fault_length +EXPORT_SYMBOL_GPL vmlinux 0x0b859d88 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x0ba215e1 proc_create_net_data_write +EXPORT_SYMBOL_GPL vmlinux 0x0ba49cb7 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc9b2 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0x0bc5481b clock_comparator_max +EXPORT_SYMBOL_GPL vmlinux 0x0bdbcf2d kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x0be6c5f0 irq_chip_set_type_parent +EXPORT_SYMBOL_GPL vmlinux 0x0bf32478 __SCK__tp_func_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c003673 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x0c038250 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x0c1886e7 auxiliary_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0c26bdd5 klist_next +EXPORT_SYMBOL_GPL vmlinux 0x0c2c5802 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0c795850 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x0c88c1c3 pci_vpd_find_id_string +EXPORT_SYMBOL_GPL vmlinux 0x0c8bcc89 bpfilter_umh_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x0cc9d36c iommu_group_claim_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0x0cd782d2 __gmap_zap +EXPORT_SYMBOL_GPL vmlinux 0x0cf3f466 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0cfcbb75 devm_release_action +EXPORT_SYMBOL_GPL vmlinux 0x0d258d4f tty_get_icount +EXPORT_SYMBOL_GPL vmlinux 0x0d2b5ffb screen_glyph_unicode +EXPORT_SYMBOL_GPL vmlinux 0x0d417b9e dm_internal_suspend_noflush +EXPORT_SYMBOL_GPL vmlinux 0x0d459213 work_on_cpu_safe +EXPORT_SYMBOL_GPL vmlinux 0x0d4961de nf_log_buf_open +EXPORT_SYMBOL_GPL vmlinux 0x0d57d2a1 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x0d6962c6 klp_enable_patch +EXPORT_SYMBOL_GPL vmlinux 0x0d95c658 gpiod_toggle_active_low +EXPORT_SYMBOL_GPL vmlinux 0x0d9f35ff debugfs_real_fops +EXPORT_SYMBOL_GPL vmlinux 0x0da16b00 fwnode_graph_get_endpoint_by_id +EXPORT_SYMBOL_GPL vmlinux 0x0dc50f1b crypto_req_done +EXPORT_SYMBOL_GPL vmlinux 0x0dcbb599 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x0dd2238a sock_gen_put +EXPORT_SYMBOL_GPL vmlinux 0x0ddb1cd7 llist_reverse_order +EXPORT_SYMBOL_GPL vmlinux 0x0de24517 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0df4f909 device_add +EXPORT_SYMBOL_GPL vmlinux 0x0dfdd051 crypto_stats_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x0e0c6a7d crypto_dh_encode_key +EXPORT_SYMBOL_GPL vmlinux 0x0e3b73c4 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x0e541f71 __alloc_percpu_gfp +EXPORT_SYMBOL_GPL vmlinux 0x0e55fb32 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0x0e5cc9d7 xdp_unreg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x0e608a2d blk_queue_zone_write_granularity +EXPORT_SYMBOL_GPL vmlinux 0x0e61998e nf_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x0e6b79af static_key_disable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x0eaaab6b ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x0ead55f4 pci_stop_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x0eb7f3de iommu_device_link +EXPORT_SYMBOL_GPL vmlinux 0x0ec53112 pci_vpd_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0f0c73ed udp_cmsg_send +EXPORT_SYMBOL_GPL vmlinux 0x0f180070 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x0f3b8882 rht_bucket_nested_insert +EXPORT_SYMBOL_GPL vmlinux 0x0f6b92d7 __netdev_watchdog_up +EXPORT_SYMBOL_GPL vmlinux 0x0f737dc9 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x0f7432fa xas_split_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0f78cb18 __traceiter_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x0f916c2a crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x0f9e15f2 devlink_port_linecard_set +EXPORT_SYMBOL_GPL vmlinux 0x0fa27bd7 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x0fa27f07 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x0faa6551 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x0fb3ef03 generic_online_page +EXPORT_SYMBOL_GPL vmlinux 0x0fbf5858 crypto_stats_decompress +EXPORT_SYMBOL_GPL vmlinux 0x0fd4610e kmem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0x0feb4a57 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x1004f895 devm_device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x101ad0e1 fat_update_time +EXPORT_SYMBOL_GPL vmlinux 0x101d423b fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x102550a2 ip6_route_output_flags +EXPORT_SYMBOL_GPL vmlinux 0x102c21e0 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x103bcb1b cookie_tcp_reqsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x106cde98 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x1072108f sk_msg_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x108e77f5 parse_OID +EXPORT_SYMBOL_GPL vmlinux 0x10b78188 blk_stat_enable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x10d9f317 stack_depot_init +EXPORT_SYMBOL_GPL vmlinux 0x10f52fbd clean_acked_data_enable +EXPORT_SYMBOL_GPL vmlinux 0x1102709e sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x1108fdbb klp_get_state +EXPORT_SYMBOL_GPL vmlinux 0x110c0604 bpf_prog_create_from_user +EXPORT_SYMBOL_GPL vmlinux 0x11152866 generic_device_group +EXPORT_SYMBOL_GPL vmlinux 0x111f2c25 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x1132b4fa tracing_cond_snapshot_data +EXPORT_SYMBOL_GPL vmlinux 0x113f2d08 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x116b5b5b rcuwait_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x117b8f41 housekeeping_affine +EXPORT_SYMBOL_GPL vmlinux 0x11837bd3 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x11ac6f45 devlink_port_type_eth_set +EXPORT_SYMBOL_GPL vmlinux 0x11acc487 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x11b41ae1 bpf_map_put +EXPORT_SYMBOL_GPL vmlinux 0x11d6b83a crypto_stats_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x11df0e75 devlink_fmsg_binary_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x11f664c5 crypto_unregister_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x11fc2039 crypto_unregister_rngs +EXPORT_SYMBOL_GPL vmlinux 0x1209b7e9 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x120b56a0 device_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x120da2f5 __iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1220343f pci_stop_and_remove_bus_device_locked +EXPORT_SYMBOL_GPL vmlinux 0x1234e483 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0x12537dae __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x12673e3e dev_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x126af83e elv_register +EXPORT_SYMBOL_GPL vmlinux 0x1280ab7a bpf_offload_dev_netdev_register +EXPORT_SYMBOL_GPL vmlinux 0x129e800c gpiod_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x12ba1cc1 regmap_field_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0x12cdbd51 verify_pkcs7_signature +EXPORT_SYMBOL_GPL vmlinux 0x12ee1173 memory_group_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12f11249 mmu_interval_notifier_remove +EXPORT_SYMBOL_GPL vmlinux 0x1312953a tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x131904fa sysfs_update_groups +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x132567a3 set_secondary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x13354bee __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x133969d7 __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x1339f28f screen_pos +EXPORT_SYMBOL_GPL vmlinux 0x1351f4c2 fscrypt_show_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x135be24c gpiochip_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x135c199b netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x13640660 get_cached_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0x1387ed38 devlink_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x138e0957 dax_write_cache_enabled +EXPORT_SYMBOL_GPL vmlinux 0x139b4462 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x13d19f48 lwtunnel_get_encap_size +EXPORT_SYMBOL_GPL vmlinux 0x13e7fd83 __wake_up_pollfree +EXPORT_SYMBOL_GPL vmlinux 0x13ed8784 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x141f38bf ktime_get_raw_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x146cc88f bpf_master_redirect_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x1496e003 tcp_reno_undo_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x14987a05 netdev_walk_all_lower_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x149ec8e4 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x14b9e621 __mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x14c0c88c skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x14d5bdc7 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x153b60a6 klist_del +EXPORT_SYMBOL_GPL vmlinux 0x15423039 skb_send_sock_locked +EXPORT_SYMBOL_GPL vmlinux 0x1543e909 devm_device_add_group +EXPORT_SYMBOL_GPL vmlinux 0x15510a89 devlink_fmsg_binary_put +EXPORT_SYMBOL_GPL vmlinux 0x157bc422 s390_enable_skey +EXPORT_SYMBOL_GPL vmlinux 0x157f26ad cgroup_path_ns +EXPORT_SYMBOL_GPL vmlinux 0x1580b2c0 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x159d5a81 devlink_resource_occ_get_register +EXPORT_SYMBOL_GPL vmlinux 0x15a62631 umd_cleanup_helper +EXPORT_SYMBOL_GPL vmlinux 0x15a89a1e enable_cmf +EXPORT_SYMBOL_GPL vmlinux 0x15ade1cc filter_irq_stacks +EXPORT_SYMBOL_GPL vmlinux 0x15b08902 sbitmap_queue_wake_up +EXPORT_SYMBOL_GPL vmlinux 0x15c60a71 __tracepoint_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x15d63831 dw_pcie_host_init +EXPORT_SYMBOL_GPL vmlinux 0x15d7c6f2 irq_chip_unmask_parent +EXPORT_SYMBOL_GPL vmlinux 0x15e8abc2 pci_epf_free_space +EXPORT_SYMBOL_GPL vmlinux 0x1605b794 devm_gpio_free +EXPORT_SYMBOL_GPL vmlinux 0x16131d30 iomap_release_folio +EXPORT_SYMBOL_GPL vmlinux 0x1633f6e0 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x16422a6e xdp_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x1644d1ed crypto_rng_reset +EXPORT_SYMBOL_GPL vmlinux 0x164f95d7 pskb_put +EXPORT_SYMBOL_GPL vmlinux 0x164f9d76 trace_array_init_printk +EXPORT_SYMBOL_GPL vmlinux 0x165140c7 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x166c290e crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x1676a2f5 blk_queue_max_discard_segments +EXPORT_SYMBOL_GPL vmlinux 0x1678f30c crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x167d430d devlink_dpipe_headers_unregister +EXPORT_SYMBOL_GPL vmlinux 0x16867178 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1687ec20 tty_get_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x1688d721 devm_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x168f86e6 vp_modern_probe +EXPORT_SYMBOL_GPL vmlinux 0x16a0dcd8 irq_set_chained_handler_and_data +EXPORT_SYMBOL_GPL vmlinux 0x16a665ee regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x16b69bc8 zpci_store +EXPORT_SYMBOL_GPL vmlinux 0x16c95109 handle_mm_fault +EXPORT_SYMBOL_GPL vmlinux 0x16cdcb14 wbc_account_cgroup_owner +EXPORT_SYMBOL_GPL vmlinux 0x16d0da99 rcu_read_unlock_trace_special +EXPORT_SYMBOL_GPL vmlinux 0x16da1f88 devlink_fmsg_u32_put +EXPORT_SYMBOL_GPL vmlinux 0x16dfbf36 add_interrupt_randomness +EXPORT_SYMBOL_GPL vmlinux 0x16fbeb41 vp_legacy_set_features +EXPORT_SYMBOL_GPL vmlinux 0x16fbed09 fork_usermode_driver +EXPORT_SYMBOL_GPL vmlinux 0x170cc36c put_timespec64 +EXPORT_SYMBOL_GPL vmlinux 0x170e3f4d __put_net +EXPORT_SYMBOL_GPL vmlinux 0x17131e29 sfp_register_socket +EXPORT_SYMBOL_GPL vmlinux 0x17149987 trace_print_bitmask_seq +EXPORT_SYMBOL_GPL vmlinux 0x171710c4 crypto_get_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x171d7858 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x17243a3c skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x1737575e irq_chip_eoi_parent +EXPORT_SYMBOL_GPL vmlinux 0x174c6274 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x175b7e2a __phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x176031a7 devlink_fmsg_string_put +EXPORT_SYMBOL_GPL vmlinux 0x17741c51 synth_event_add_val +EXPORT_SYMBOL_GPL vmlinux 0x17793d65 handle_fasteoi_nmi +EXPORT_SYMBOL_GPL vmlinux 0x17a5fdd3 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x17b42624 ptp_classify_raw +EXPORT_SYMBOL_GPL vmlinux 0x17baaca1 gpiochip_populate_parent_fwspec_twocell +EXPORT_SYMBOL_GPL vmlinux 0x17cae3b8 kvm_write_guest +EXPORT_SYMBOL_GPL vmlinux 0x17dacbfd swapcache_mapping +EXPORT_SYMBOL_GPL vmlinux 0x17ef9242 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x17fe080c kernel_read_file_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x18008c59 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0x1808feff __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x182656cc platform_has +EXPORT_SYMBOL_GPL vmlinux 0x1834e691 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x18381d62 tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x1841144c blk_crypto_has_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x1847cade __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x185c6a73 pci_msi_unmask_irq +EXPORT_SYMBOL_GPL vmlinux 0x186cddce kvm_vcpu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x188ef8c2 phy_10gbit_features +EXPORT_SYMBOL_GPL vmlinux 0x189a682a pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x18c37b34 access_process_vm +EXPORT_SYMBOL_GPL vmlinux 0x18ce3615 gpiod_set_config +EXPORT_SYMBOL_GPL vmlinux 0x18e4f8aa swphy_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x18f16790 trace_array_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0x18f42c32 genphy_c45_read_pma +EXPORT_SYMBOL_GPL vmlinux 0x18fb2caf cpus_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x193dfdf6 klp_get_prev_state +EXPORT_SYMBOL_GPL vmlinux 0x1941396c dma_resv_get_singleton +EXPORT_SYMBOL_GPL vmlinux 0x19455dd6 fscrypt_add_test_dummy_key +EXPORT_SYMBOL_GPL vmlinux 0x19808dda unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x19821689 __tracepoint_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x198da838 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x19da4ad3 gpiochip_generic_config +EXPORT_SYMBOL_GPL vmlinux 0x19dd087c sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x19f0fa74 device_set_of_node_from_dev +EXPORT_SYMBOL_GPL vmlinux 0x1a055815 blk_mq_pci_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x1a10c32b crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x1a112d72 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1a26df99 fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x1a310015 devm_watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1a3346e0 kvm_vcpu_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x1a6bf28f fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1a7c7a6a get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x1a7cac05 fib_add_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x1a83ed88 gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x1a876574 __tracepoint_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0x1aac6df6 blocking_notifier_chain_register_unique_prio +EXPORT_SYMBOL_GPL vmlinux 0x1abd9971 __fscrypt_prepare_rename +EXPORT_SYMBOL_GPL vmlinux 0x1acd18c8 cpuset_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x1ae066ff iommu_sva_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0x1af267f8 int_pow +EXPORT_SYMBOL_GPL vmlinux 0x1b0f70f3 crc64_be +EXPORT_SYMBOL_GPL vmlinux 0x1b1dd600 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x1b1f5ad0 gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x1b40f934 gmap_unmap_segment +EXPORT_SYMBOL_GPL vmlinux 0x1b4df63e nf_queue_entry_free +EXPORT_SYMBOL_GPL vmlinux 0x1b6c5a67 chsc_error_from_response +EXPORT_SYMBOL_GPL vmlinux 0x1b8263e4 __traceiter_block_split +EXPORT_SYMBOL_GPL vmlinux 0x1b92e41d inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x1b94eb9a dm_hold +EXPORT_SYMBOL_GPL vmlinux 0x1bc7b8bd software_node_register_nodes +EXPORT_SYMBOL_GPL vmlinux 0x1bda3f58 list_lru_walk_node +EXPORT_SYMBOL_GPL vmlinux 0x1be3981b phy_speed_up +EXPORT_SYMBOL_GPL vmlinux 0x1bee4974 sg_alloc_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x1bfad06e mpi_print +EXPORT_SYMBOL_GPL vmlinux 0x1c162e2b gmap_shadow_page +EXPORT_SYMBOL_GPL vmlinux 0x1c3477e5 dev_fill_forward_path +EXPORT_SYMBOL_GPL vmlinux 0x1c3fb207 genphy_c45_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x1c46e4c6 __dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x1c4d95e0 ccw_device_get_util_str +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c613a41 dw_pcie_setup_rc +EXPORT_SYMBOL_GPL vmlinux 0x1c6e8b9c unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x1c78ac3b devl_assert_locked +EXPORT_SYMBOL_GPL vmlinux 0x1c7c5e10 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c8be6da bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x1c9eec38 ccw_device_get_chid +EXPORT_SYMBOL_GPL vmlinux 0x1cbd92b0 cpu_mitigations_off +EXPORT_SYMBOL_GPL vmlinux 0x1cd86423 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x1d0758a7 devm_gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x1d10e356 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x1d222ced irq_get_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0x1d2fff0f fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x1d3af4b8 __skb_get_hash_symmetric +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1da2e0f2 add_disk_randomness +EXPORT_SYMBOL_GPL vmlinux 0x1dc8b50b vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x1dca8012 klist_prev +EXPORT_SYMBOL_GPL vmlinux 0x1dde3987 __regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x1dfa5dbd mpi_invm +EXPORT_SYMBOL_GPL vmlinux 0x1e050e96 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x1e1347a6 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x1e13b1bf vcpu_load +EXPORT_SYMBOL_GPL vmlinux 0x1e20f13f freq_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e2d2e14 io_cgrp_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1e397ee2 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x1e3e3dbd put_io_context +EXPORT_SYMBOL_GPL vmlinux 0x1e529fc6 scm_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x1e53f827 stack_depot_print +EXPORT_SYMBOL_GPL vmlinux 0x1e5c5079 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x1e66edbf fuse_get_unique +EXPORT_SYMBOL_GPL vmlinux 0x1e6d3f0f __blk_req_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0x1e71499b cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e8eb30c serdev_controller_remove +EXPORT_SYMBOL_GPL vmlinux 0x1eb10062 blk_mq_sched_mark_restart_hctx +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ed4d2eb percpu_ref_kill_and_confirm +EXPORT_SYMBOL_GPL vmlinux 0x1ee39a74 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x1eec1238 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1ef1418c pci_epf_add_vepf +EXPORT_SYMBOL_GPL vmlinux 0x1ef20793 stop_core_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x1effdc7f iomap_readahead +EXPORT_SYMBOL_GPL vmlinux 0x1f0671e7 component_bind_all +EXPORT_SYMBOL_GPL vmlinux 0x1f06bed1 __ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x1f0833ff perf_event_pause +EXPORT_SYMBOL_GPL vmlinux 0x1f0c2459 dm_audit_log_bio +EXPORT_SYMBOL_GPL vmlinux 0x1f0de8f9 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x1f2d801a alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0x1f2e02fd blkdev_report_zones +EXPORT_SYMBOL_GPL vmlinux 0x1f38a4f6 mpi_set_highbit +EXPORT_SYMBOL_GPL vmlinux 0x1f436eaf hrtimer_active +EXPORT_SYMBOL_GPL vmlinux 0x1f563160 bpf_offload_dev_priv +EXPORT_SYMBOL_GPL vmlinux 0x1f6679f5 pci_ignore_hotplug +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1fa1d95c sha256_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x1fc576b1 fwnode_count_parents +EXPORT_SYMBOL_GPL vmlinux 0x1fe6e504 gpiod_add_hogs +EXPORT_SYMBOL_GPL vmlinux 0x1fe7d730 irq_domain_push_irq +EXPORT_SYMBOL_GPL vmlinux 0x1feca050 genphy_c45_an_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x1ff12528 __traceiter_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0x2009e400 devlink_info_board_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x204b4f53 dm_submit_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x206109ec fsnotify_add_mark +EXPORT_SYMBOL_GPL vmlinux 0x20619b9b devlink_param_register +EXPORT_SYMBOL_GPL vmlinux 0x20835a9f __xdp_release_frame +EXPORT_SYMBOL_GPL vmlinux 0x20a33396 input_class +EXPORT_SYMBOL_GPL vmlinux 0x20e29948 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0x20e6176b freq_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x20e6f928 tnum_strn +EXPORT_SYMBOL_GPL vmlinux 0x20f56ae0 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x2130b07d cio_tm_intrg +EXPORT_SYMBOL_GPL vmlinux 0x21385a64 fib6_get_table +EXPORT_SYMBOL_GPL vmlinux 0x2143e220 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x216c1a4d tpm2_probe +EXPORT_SYMBOL_GPL vmlinux 0x216de4e1 rcu_get_gp_kthreads_prio +EXPORT_SYMBOL_GPL vmlinux 0x2176ba5e posix_acl_default_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0x21845802 iommu_dev_enable_feature +EXPORT_SYMBOL_GPL vmlinux 0x21999215 gpiod_set_transitory +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21cd536a crypto_put_default_null_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x21e5c880 xas_set_mark +EXPORT_SYMBOL_GPL vmlinux 0x21ead941 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2200061c __tracepoint_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0x2211a4c0 blk_op_str +EXPORT_SYMBOL_GPL vmlinux 0x222d9932 __fscrypt_prepare_readdir +EXPORT_SYMBOL_GPL vmlinux 0x224f322d ipv6_bpf_stub +EXPORT_SYMBOL_GPL vmlinux 0x22799cec tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x2286937c perf_event_sysfs_show +EXPORT_SYMBOL_GPL vmlinux 0x22881f1a serdev_device_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x229ee4c8 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x22a50f5e zpci_mod_fc +EXPORT_SYMBOL_GPL vmlinux 0x22ab7517 devl_unlock +EXPORT_SYMBOL_GPL vmlinux 0x22b8146b __wake_up_locked_key_bookmark +EXPORT_SYMBOL_GPL vmlinux 0x22d60537 tcf_frag_xmit_count +EXPORT_SYMBOL_GPL vmlinux 0x22d9409b iomap_sort_ioends +EXPORT_SYMBOL_GPL vmlinux 0x22ddbbbb bd_prepare_to_claim +EXPORT_SYMBOL_GPL vmlinux 0x22e11208 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x22e20b10 chsc_siosl +EXPORT_SYMBOL_GPL vmlinux 0x22fd08ba cpuacct_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x230bca5e key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x230cf5b8 fuse_dev_install +EXPORT_SYMBOL_GPL vmlinux 0x23188386 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x232dc171 gmap_put +EXPORT_SYMBOL_GPL vmlinux 0x233f5316 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x2341caa0 irq_chip_set_wake_parent +EXPORT_SYMBOL_GPL vmlinux 0x234cf416 devlink_fmsg_string_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x235fb024 xfrm_dev_state_add +EXPORT_SYMBOL_GPL vmlinux 0x2373434f irq_chip_retrigger_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x2379811e call_switchdev_blocking_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23b5684f regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x23c31d8c unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x23cab657 fwnode_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x2405e414 vp_modern_set_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x2413b0c1 ip6_route_input_lookup +EXPORT_SYMBOL_GPL vmlinux 0x242050b4 dw_pcie_host_deinit +EXPORT_SYMBOL_GPL vmlinux 0x2421097b mpi_const +EXPORT_SYMBOL_GPL vmlinux 0x2436e564 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x246e03bd debugfs_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x248bc867 raw_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x249b5024 fwnode_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x24a04fd0 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x24ac3a93 crypto_aead_setkey +EXPORT_SYMBOL_GPL vmlinux 0x24b5f647 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x24c4a6f0 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x24d276ad nfs_ssc_client_tbl +EXPORT_SYMBOL_GPL vmlinux 0x24da0093 rcu_inkernel_boot_has_ended +EXPORT_SYMBOL_GPL vmlinux 0x25116708 genphy_c45_fast_retrain +EXPORT_SYMBOL_GPL vmlinux 0x2524538c __traceiter_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x25284add list_lru_del +EXPORT_SYMBOL_GPL vmlinux 0x2532dd51 fwnode_graph_get_next_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x2549ad92 genphy_c45_pma_baset1_setup_master_slave +EXPORT_SYMBOL_GPL vmlinux 0x25501e72 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x2556f240 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x256026bf gpiod_set_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x25633397 device_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0x256362fd l3mdev_update_flow +EXPORT_SYMBOL_GPL vmlinux 0x2572b7d1 trace_event_ignore_this_pid +EXPORT_SYMBOL_GPL vmlinux 0x2588d9b9 skb_mpls_pop +EXPORT_SYMBOL_GPL vmlinux 0x2592fc6c console_printk +EXPORT_SYMBOL_GPL vmlinux 0x25bbfa9a security_kernel_load_data +EXPORT_SYMBOL_GPL vmlinux 0x25c537dc zpci_register_ioat +EXPORT_SYMBOL_GPL vmlinux 0x25f31bea misc_cg_try_charge +EXPORT_SYMBOL_GPL vmlinux 0x25f9202b iommu_device_register +EXPORT_SYMBOL_GPL vmlinux 0x261cfcec create_signature +EXPORT_SYMBOL_GPL vmlinux 0x26201c74 crypto_skcipher_setkey +EXPORT_SYMBOL_GPL vmlinux 0x262cf532 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x26520376 noop_direct_IO +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x26521894 device_match_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x265bbef9 kexec_crash_loaded +EXPORT_SYMBOL_GPL vmlinux 0x266a4b08 tasklet_unlock +EXPORT_SYMBOL_GPL vmlinux 0x267df662 smp_call_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0x26ab4755 put_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x26ad837d crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x26bc706c vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26ed2186 register_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0x26f46302 cio_resume +EXPORT_SYMBOL_GPL vmlinux 0x26ff7e4d serdev_device_write_buf +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x272a7e44 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x2739c30f ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x2741fe7d handle_fasteoi_irq +EXPORT_SYMBOL_GPL vmlinux 0x2745db5e verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x274d568e clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x274dd1a3 sg_free_table_chained +EXPORT_SYMBOL_GPL vmlinux 0x276d0ef7 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x2772d4ee pci_epc_map_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x2797635a scsi_dh_set_params +EXPORT_SYMBOL_GPL vmlinux 0x27c1e6fc fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x27c33acf unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x27d421a3 open_related_ns +EXPORT_SYMBOL_GPL vmlinux 0x27dc9471 __tracepoint_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0x27e6540a kick_process +EXPORT_SYMBOL_GPL vmlinux 0x27ed4351 ip_fib_metrics_init +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x28208b3f ip_valid_fib_dump_req +EXPORT_SYMBOL_GPL vmlinux 0x28365f28 devlink_dpipe_match_put +EXPORT_SYMBOL_GPL vmlinux 0x283d441f vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x28452000 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x2849c663 __wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x2864abc9 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x2867a24d dax_inode +EXPORT_SYMBOL_GPL vmlinux 0x286cc647 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0x28aa6a67 call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28ab8bf7 driver_set_override +EXPORT_SYMBOL_GPL vmlinux 0x28b929af dm_accept_partial_bio +EXPORT_SYMBOL_GPL vmlinux 0x28cb4374 devm_gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0x28d0285c rhashtable_walk_exit +EXPORT_SYMBOL_GPL vmlinux 0x28d8b49a chsc_scm_info +EXPORT_SYMBOL_GPL vmlinux 0x28f40035 md_find_rdev_rcu +EXPORT_SYMBOL_GPL vmlinux 0x28f413ad iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x291876f3 mpi_ec_get_affine +EXPORT_SYMBOL_GPL vmlinux 0x2921074c hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0x292213fd linear_hugepage_index +EXPORT_SYMBOL_GPL vmlinux 0x29295800 gmap_remove +EXPORT_SYMBOL_GPL vmlinux 0x292df164 device_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x29366b61 register_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x2943d950 vp_legacy_probe +EXPORT_SYMBOL_GPL vmlinux 0x295845e6 devm_get_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x296af488 perf_event_update_userpage +EXPORT_SYMBOL_GPL vmlinux 0x296b26d5 phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x29946de3 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x29a7da35 sk_msg_clone +EXPORT_SYMBOL_GPL vmlinux 0x29dcfd73 iomap_finish_ioends +EXPORT_SYMBOL_GPL vmlinux 0x29deb0ac add_wait_queue_priority +EXPORT_SYMBOL_GPL vmlinux 0x29e253cf cio_disable_subchannel +EXPORT_SYMBOL_GPL vmlinux 0x29eba37f current_is_async +EXPORT_SYMBOL_GPL vmlinux 0x29ebf549 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x2a36af95 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x2a3f009a kstrdup_quotable_cmdline +EXPORT_SYMBOL_GPL vmlinux 0x2a62cb3a ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2a7316da __SCK__tp_func_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x2a976d1c dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x2aa9c3dd __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0x2abccb50 crc64_rocksoft_generic +EXPORT_SYMBOL_GPL vmlinux 0x2abf51e7 phy_modify_mmd_changed +EXPORT_SYMBOL_GPL vmlinux 0x2ac20045 unwind_get_return_address +EXPORT_SYMBOL_GPL vmlinux 0x2b08f95a dm_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0x2b159cb4 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x2b16c183 sk_msg_memcopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x2b2774a6 gmap_shadow_r3t +EXPORT_SYMBOL_GPL vmlinux 0x2b4509dd devlink_health_reporter_state_update +EXPORT_SYMBOL_GPL vmlinux 0x2b6a0781 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x2ba27c06 kvm_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x2ba6b0b5 fwnode_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x2bcb8e12 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2bce85f3 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x2bd2915e kfree_strarray +EXPORT_SYMBOL_GPL vmlinux 0x2bd643d6 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x2bda936d __devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x2be7a54a proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x2bf60fd6 tracing_snapshot_cond_enable +EXPORT_SYMBOL_GPL vmlinux 0x2c3054f9 net_inc_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x2c365651 pci_epc_get_msi +EXPORT_SYMBOL_GPL vmlinux 0x2c36cc85 __tracepoint_unmap +EXPORT_SYMBOL_GPL vmlinux 0x2c3ae31a device_create +EXPORT_SYMBOL_GPL vmlinux 0x2c3eefcb tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x2c407f81 iommu_report_device_fault +EXPORT_SYMBOL_GPL vmlinux 0x2c5d250c vp_modern_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x2c66ac85 devlink_info_serial_number_put +EXPORT_SYMBOL_GPL vmlinux 0x2c6b57f0 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x2c6f2a4f gpiod_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x2c6fffa9 get_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x2c7256dc synth_event_add_field +EXPORT_SYMBOL_GPL vmlinux 0x2c779e50 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x2c790d4a __tracepoint_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2c7d13e2 __ioread32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c7f2327 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2caabecd net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x2ccc6a79 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0x2ce61f33 __SCK__tp_func_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2cf73210 regmap_noinc_read +EXPORT_SYMBOL_GPL vmlinux 0x2cf98dd9 watchdog_set_restart_priority +EXPORT_SYMBOL_GPL vmlinux 0x2d10246e dma_map_sgtable +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 0x2d550231 auxiliary_device_init +EXPORT_SYMBOL_GPL vmlinux 0x2d55bef2 tty_port_register_device_serdev +EXPORT_SYMBOL_GPL vmlinux 0x2d5f69b3 rcu_read_unlock_strict +EXPORT_SYMBOL_GPL vmlinux 0x2d609547 dax_direct_access +EXPORT_SYMBOL_GPL vmlinux 0x2d71bc81 debugfs_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x2d754ab6 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x2d78f42c sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2d8a197f crypto_stats_akcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x2d9f29c6 __kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x2d9fa7d3 ptp_parse_header +EXPORT_SYMBOL_GPL vmlinux 0x2db11bd9 cio_halt +EXPORT_SYMBOL_GPL vmlinux 0x2dbab62a pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x2dc64043 fsverity_cleanup_inode +EXPORT_SYMBOL_GPL vmlinux 0x2dd3f3b7 pci_aer_clear_nonfatal_status +EXPORT_SYMBOL_GPL vmlinux 0x2ddd5b55 devlink_is_reload_failed +EXPORT_SYMBOL_GPL vmlinux 0x2de3c8f2 device_match_devt +EXPORT_SYMBOL_GPL vmlinux 0x2de66ffa dma_mmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x2e028ae6 rcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x2e21a43d pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x2e21cbb2 switchdev_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2a22d4 wbt_disable_default +EXPORT_SYMBOL_GPL vmlinux 0x2e4544dd dax_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0x2e58ee6f nf_queue +EXPORT_SYMBOL_GPL vmlinux 0x2e66298c __SCK__tp_func_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x2e76369e vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x2e7f0499 seq_buf_printf +EXPORT_SYMBOL_GPL vmlinux 0x2e82fc7f kvm_io_bus_write +EXPORT_SYMBOL_GPL vmlinux 0x2e92045d bpf_prog_free +EXPORT_SYMBOL_GPL vmlinux 0x2ea97bf7 ksm_madvise +EXPORT_SYMBOL_GPL vmlinux 0x2ebb19fd execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec04e74 dma_need_sync +EXPORT_SYMBOL_GPL vmlinux 0x2ed489ec gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x2edffa28 vp_legacy_set_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x2f0b8bfe transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2f0bca6d kvm_arch_crypto_clear_masks +EXPORT_SYMBOL_GPL vmlinux 0x2f0ede09 get_ccwdev_by_dev_id +EXPORT_SYMBOL_GPL vmlinux 0x2f1ea064 __SCK__tp_func_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0x2f24a601 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x2f2c95c4 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x2f4880df static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x2f59286c gpiod_get_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x2f64be23 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0x2f9abe55 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x2fb28964 __traceiter_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0x2fbf535b __traceiter_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x2fc1e0fe kmem_valid_obj +EXPORT_SYMBOL_GPL vmlinux 0x2ff006f7 fat_time_fat2unix +EXPORT_SYMBOL_GPL vmlinux 0x3016ae1a dst_blackhole_redirect +EXPORT_SYMBOL_GPL vmlinux 0x302ca1f1 gmap_pmdp_idte_local +EXPORT_SYMBOL_GPL vmlinux 0x302f8fc5 devm_bitmap_zalloc +EXPORT_SYMBOL_GPL vmlinux 0x304eaf63 __fscrypt_inode_uses_inline_crypto +EXPORT_SYMBOL_GPL vmlinux 0x305e65df ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x3061cfce ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0x30696079 rhashtable_free_and_destroy +EXPORT_SYMBOL_GPL vmlinux 0x30a8e25d __vfs_setxattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0x30b497f3 ethnl_cable_test_finished +EXPORT_SYMBOL_GPL vmlinux 0x30b8b736 get_net_ns_by_id +EXPORT_SYMBOL_GPL vmlinux 0x30c0b56e fuse_dev_alloc +EXPORT_SYMBOL_GPL vmlinux 0x30c63fa0 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x30df910c of_phandle_args_to_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x30e4e23a tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x31019477 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31297a88 blk_mq_flush_busy_ctxs +EXPORT_SYMBOL_GPL vmlinux 0x3134f06c io_uring_cmd_complete_in_task +EXPORT_SYMBOL_GPL vmlinux 0x3138756c file_is_kvm +EXPORT_SYMBOL_GPL vmlinux 0x3138d73e sbitmap_queue_show +EXPORT_SYMBOL_GPL vmlinux 0x31784faf __traceiter_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x3187490a __SCK__tp_func_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x31986187 perf_event_addr_filters_sync +EXPORT_SYMBOL_GPL vmlinux 0x319fe496 crypto_register_scomp +EXPORT_SYMBOL_GPL vmlinux 0x31a95e8b ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x31abf042 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x31d3199b rhltable_init +EXPORT_SYMBOL_GPL vmlinux 0x31e8f517 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x31f5a0d6 skcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3206daf9 devm_register_power_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x3207d498 handle_bad_irq +EXPORT_SYMBOL_GPL vmlinux 0x32096d4d virtqueue_get_desc_addr +EXPORT_SYMBOL_GPL vmlinux 0x3224b2a9 mpi_read_raw_from_sgl +EXPORT_SYMBOL_GPL vmlinux 0x325888a3 __tracepoint_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x326ede5b regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x326f32b5 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x32836981 public_key_verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x32a5958c ethnl_cable_test_amplitude +EXPORT_SYMBOL_GPL vmlinux 0x32ab06cc irq_percpu_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0x32ab9b02 irq_chip_disable_parent +EXPORT_SYMBOL_GPL vmlinux 0x32bc0fcf preempt_notifier_dec +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32f8ecca tpm_chip_register +EXPORT_SYMBOL_GPL vmlinux 0x330010b6 cpuset_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x330ab79b blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x330d35e4 xfrm_dev_offload_ok +EXPORT_SYMBOL_GPL vmlinux 0x330f6116 set_dax_synchronous +EXPORT_SYMBOL_GPL vmlinux 0x3325205c exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x33304f4f md_start +EXPORT_SYMBOL_GPL vmlinux 0x33307f6f device_get_next_child_node +EXPORT_SYMBOL_GPL vmlinux 0x3335b2d3 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x335ac66c kvm_write_guest_offset_cached +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x33606eb3 gpiochip_relres_irq +EXPORT_SYMBOL_GPL vmlinux 0x337176bf component_compare_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x33b64eb6 devm_device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x33be2a71 __udp_gso_segment +EXPORT_SYMBOL_GPL vmlinux 0x33caad6b ping_close +EXPORT_SYMBOL_GPL vmlinux 0x33efc8c8 trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x33f90753 is_hash_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0x34054baf regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x3407cb0e fat_truncate_time +EXPORT_SYMBOL_GPL vmlinux 0x3413acc9 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x343d7502 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x34407691 crypto_has_ahash +EXPORT_SYMBOL_GPL vmlinux 0x3450ad94 mpi_set_ui +EXPORT_SYMBOL_GPL vmlinux 0x346a4152 ip_icmp_error_rfc4884 +EXPORT_SYMBOL_GPL vmlinux 0x346ac93b start_poll_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x34835c7e trace_put_event_file +EXPORT_SYMBOL_GPL vmlinux 0x349843d1 scm_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0x34c86b9c eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x34dccfc0 switchdev_bridge_port_unoffload +EXPORT_SYMBOL_GPL vmlinux 0x34fc4ad3 __tracepoint_block_split +EXPORT_SYMBOL_GPL vmlinux 0x34fc9e14 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x3504a5ca vp_legacy_get_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x350f6ce5 tasklet_unlock_wait +EXPORT_SYMBOL_GPL vmlinux 0x352ec68b bpf_offload_dev_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3537165e crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x35393217 mptcp_get_reset_option +EXPORT_SYMBOL_GPL vmlinux 0x353aa8f3 crypto_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x353b496c devlink_port_attrs_set +EXPORT_SYMBOL_GPL vmlinux 0x353f10e6 virtqueue_add_inbuf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x354ba678 iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x355b9fc8 skcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x3565a929 utf8_data_table +EXPORT_SYMBOL_GPL vmlinux 0x35721bdc input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x3575a142 devlink_traps_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3584114e alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x3586f653 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x358897d3 bsg_job_get +EXPORT_SYMBOL_GPL vmlinux 0x35993106 nexthop_select_path +EXPORT_SYMBOL_GPL vmlinux 0x359fa704 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x35a3fce6 __irq_resolve_mapping +EXPORT_SYMBOL_GPL vmlinux 0x35abbdad ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x35b57d9b sock_map_destroy +EXPORT_SYMBOL_GPL vmlinux 0x35d8ce23 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x35fe9873 iommu_register_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x3607c5d7 sthyi_fill +EXPORT_SYMBOL_GPL vmlinux 0x3614cfdc pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x36242943 switchdev_deferred_process +EXPORT_SYMBOL_GPL vmlinux 0x362931a1 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x364354ba rhashtable_destroy +EXPORT_SYMBOL_GPL vmlinux 0x365b45d1 __tracepoint_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x366f4f4e rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x36765b56 kobject_move +EXPORT_SYMBOL_GPL vmlinux 0x367b5f12 virtqueue_get_buf_ctx +EXPORT_SYMBOL_GPL vmlinux 0x36898d6f gpiod_remove_hogs +EXPORT_SYMBOL_GPL vmlinux 0x369a2c5e udp_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b0fa62 gpiod_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x36b69cba __vfs_removexattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x36c490dd gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0x36c68117 kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x36c80c36 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x36cf3136 dev_get_tstats64 +EXPORT_SYMBOL_GPL vmlinux 0x36d339e7 crypto_grab_ahash +EXPORT_SYMBOL_GPL vmlinux 0x36d69598 blk_mq_end_request_batch +EXPORT_SYMBOL_GPL vmlinux 0x36e5f104 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x36f6a9a1 x509_cert_parse +EXPORT_SYMBOL_GPL vmlinux 0x36fd6c56 lwtunnel_cmp_encap +EXPORT_SYMBOL_GPL vmlinux 0x3709cb2d kvm_get_running_vcpu +EXPORT_SYMBOL_GPL vmlinux 0x371484f8 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x37281a1d unmap_mapping_pages +EXPORT_SYMBOL_GPL vmlinux 0x3761d215 idr_find +EXPORT_SYMBOL_GPL vmlinux 0x377a646f bpf_redirect_info +EXPORT_SYMBOL_GPL vmlinux 0x378e9976 mdiobus_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0x378ed9ce bio_end_io_acct_remapped +EXPORT_SYMBOL_GPL vmlinux 0x37915bcc pci_epc_write_header +EXPORT_SYMBOL_GPL vmlinux 0x37a7fbd7 nexthop_for_each_fib6_nh +EXPORT_SYMBOL_GPL vmlinux 0x37bf7be3 percpu_ref_exit +EXPORT_SYMBOL_GPL vmlinux 0x37d114ac subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x37e803a5 device_add_groups +EXPORT_SYMBOL_GPL vmlinux 0x37fef2f2 irq_force_affinity +EXPORT_SYMBOL_GPL vmlinux 0x380b8cca phy_resolve_aneg_pause +EXPORT_SYMBOL_GPL vmlinux 0x380ffa25 alloc_dax +EXPORT_SYMBOL_GPL vmlinux 0x38280e7f rt_mutex_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0x38374815 clear_selection +EXPORT_SYMBOL_GPL vmlinux 0x38493a8b idr_alloc_u32 +EXPORT_SYMBOL_GPL vmlinux 0x384d79ce synth_event_trace_end +EXPORT_SYMBOL_GPL vmlinux 0x38505efc skb_consume_udp +EXPORT_SYMBOL_GPL vmlinux 0x386d6eff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x3876a20e shmem_file_setup_with_mnt +EXPORT_SYMBOL_GPL vmlinux 0x38846835 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0x389561cd __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x389b64a2 static_key_count +EXPORT_SYMBOL_GPL vmlinux 0x38aa1397 gpiod_add_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0x38b2e592 call_switchdev_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x38b91860 genphy_c45_pma_suspend +EXPORT_SYMBOL_GPL vmlinux 0x38e12d3b transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x38e1fde7 mpi_set +EXPORT_SYMBOL_GPL vmlinux 0x38fbc25c tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x39106fe7 irq_domain_create_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0x393ffa6f asymmetric_key_generate_id +EXPORT_SYMBOL_GPL vmlinux 0x395774c9 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x39579087 sfp_may_have_phy +EXPORT_SYMBOL_GPL vmlinux 0x39784052 device_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x397e2142 __SCK__tp_func_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x397f7803 phy_resolve_aneg_linkmode +EXPORT_SYMBOL_GPL vmlinux 0x398bc1fc sbitmap_queue_min_shallow_depth +EXPORT_SYMBOL_GPL vmlinux 0x39a7affc driver_deferred_probe_timeout +EXPORT_SYMBOL_GPL vmlinux 0x39b28c79 get_net_ns +EXPORT_SYMBOL_GPL vmlinux 0x39c32aca __SCK__tp_func_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x39c7048d lwtunnel_encap_del_ops +EXPORT_SYMBOL_GPL vmlinux 0x39cf0ef6 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x39ded098 rdma_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x39e47926 pkcs7_free_message +EXPORT_SYMBOL_GPL vmlinux 0x39fc425f switchdev_bridge_port_offload +EXPORT_SYMBOL_GPL vmlinux 0x39fd83db halt_poll_ns_shrink +EXPORT_SYMBOL_GPL vmlinux 0x3a1aeeaa dax_writeback_mapping_range +EXPORT_SYMBOL_GPL vmlinux 0x3a24fb2f percpu_ref_resurrect +EXPORT_SYMBOL_GPL vmlinux 0x3a32dc4b fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x3a47e56f blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x3a51cf87 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a55981a static_key_enable_cpuslocked +EXPORT_SYMBOL_GPL vmlinux 0x3a705954 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3a74e484 __tracepoint_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x3a792fc8 disable_cmf +EXPORT_SYMBOL_GPL vmlinux 0x3a8c3770 bdev_alignment_offset +EXPORT_SYMBOL_GPL vmlinux 0x3a995309 regmap_get_raw_write_max +EXPORT_SYMBOL_GPL vmlinux 0x3a9be019 asymmetric_key_id_partial +EXPORT_SYMBOL_GPL vmlinux 0x3aba94da gpiod_get_direction +EXPORT_SYMBOL_GPL vmlinux 0x3ae03d40 xas_pause +EXPORT_SYMBOL_GPL vmlinux 0x3ae6618e blk_req_zone_write_trylock +EXPORT_SYMBOL_GPL vmlinux 0x3b0eae7e mptcp_pm_get_add_addr_accept_max +EXPORT_SYMBOL_GPL vmlinux 0x3b403ed0 device_property_present +EXPORT_SYMBOL_GPL vmlinux 0x3b610584 __tracepoint_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x3b827f7b gpiod_get_raw_array_value +EXPORT_SYMBOL_GPL vmlinux 0x3b8cfbd4 zpci_aipb +EXPORT_SYMBOL_GPL vmlinux 0x3b95f543 klp_shadow_free +EXPORT_SYMBOL_GPL vmlinux 0x3ba01b47 get_compat_sigset +EXPORT_SYMBOL_GPL vmlinux 0x3bc08e41 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3bcb8552 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x3bdb5d28 alg_test +EXPORT_SYMBOL_GPL vmlinux 0x3bdc0e0c __tracepoint_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0x3bde4569 kern_mount +EXPORT_SYMBOL_GPL vmlinux 0x3bf17755 mpi_read_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3bf640ae tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3bf9d42e pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x3c1c3725 rcu_fwd_progress_check +EXPORT_SYMBOL_GPL vmlinux 0x3c23ede3 device_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x3c2deb0f l3mdev_master_upper_ifindex_by_index_rcu +EXPORT_SYMBOL_GPL vmlinux 0x3c3c85d8 __SCK__tp_func_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3c41c3b6 __dax_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x3c448c8e iomap_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x3c4b73c2 virtio_add_status +EXPORT_SYMBOL_GPL vmlinux 0x3c681dc4 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0x3c7fe48f cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x3c88d032 fwnode_get_phy_node +EXPORT_SYMBOL_GPL vmlinux 0x3c8a4327 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x3ca9ca0d devlink_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0x3cc0f0d4 fwnode_property_read_string_array +EXPORT_SYMBOL_GPL vmlinux 0x3cc60807 evm_set_key +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cd1b510 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x3cef6086 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x3d0abb2b ncsi_vlan_rx_kill_vid +EXPORT_SYMBOL_GPL vmlinux 0x3d0d920a devm_phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0x3d28e171 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x3d33ff44 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3d39a676 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x3d3be22a pfn_to_online_page +EXPORT_SYMBOL_GPL vmlinux 0x3d510a7b rcu_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0x3d866e05 __SCK__tp_func_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0x3da1b6b5 ncsi_stop_dev +EXPORT_SYMBOL_GPL vmlinux 0x3daa2540 nf_hooks_lwtunnel_enabled +EXPORT_SYMBOL_GPL vmlinux 0x3dd387f0 request_firmware_direct +EXPORT_SYMBOL_GPL vmlinux 0x3dd6321f bdi_dev_name +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3dff3957 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x3e0dcfd4 fscrypt_prepare_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3e15e2e1 gmap_translate +EXPORT_SYMBOL_GPL vmlinux 0x3e17de6e xas_find +EXPORT_SYMBOL_GPL vmlinux 0x3e1b79f0 tcp_register_ulp +EXPORT_SYMBOL_GPL vmlinux 0x3e1ca507 pci_epc_set_msix +EXPORT_SYMBOL_GPL vmlinux 0x3e1e1fdd pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x3e344dcf fscrypt_ioctl_remove_key_all_users +EXPORT_SYMBOL_GPL vmlinux 0x3e4c8ae4 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x3e5715d0 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x3e60d541 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0x3e697c9c fsnotify_destroy_mark +EXPORT_SYMBOL_GPL vmlinux 0x3e6ae7b1 security_kernel_post_read_file +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e8fde46 addrconf_add_linklocal +EXPORT_SYMBOL_GPL vmlinux 0x3eb7389a xdp_rxq_info_is_reg +EXPORT_SYMBOL_GPL vmlinux 0x3ed73a44 is_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x3ef051c8 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x3f041b8f device_get_dma_attr +EXPORT_SYMBOL_GPL vmlinux 0x3f04d121 irq_domain_update_bus_token +EXPORT_SYMBOL_GPL vmlinux 0x3f270ab7 mmu_notifier_put +EXPORT_SYMBOL_GPL vmlinux 0x3f46abfd __platform_register_drivers +EXPORT_SYMBOL_GPL vmlinux 0x3f67199e skcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x3f69b6a6 css_sched_sch_todo +EXPORT_SYMBOL_GPL vmlinux 0x3f71636e scsi_alloc_request +EXPORT_SYMBOL_GPL vmlinux 0x3f7e33c2 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x3f84bcd7 dax_alive +EXPORT_SYMBOL_GPL vmlinux 0x3fc6e514 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x3fcc61fe blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x3fd44ddf subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x3fe470a0 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3fe6c346 devlink_fmsg_binary_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x3ffdacf3 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0x4000bec4 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x4000df26 blk_mq_freeze_queue_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4002b44a scsi_host_block +EXPORT_SYMBOL_GPL vmlinux 0x40313b2b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x40335514 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x404bb59a dev_err_probe +EXPORT_SYMBOL_GPL vmlinux 0x406c4cb1 hrtimer_resolution +EXPORT_SYMBOL_GPL vmlinux 0x4071b517 out_of_line_wait_on_bit_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4086fa13 firmware_request_platform +EXPORT_SYMBOL_GPL vmlinux 0x4099d2a2 pci_epc_linkup +EXPORT_SYMBOL_GPL vmlinux 0x4099f919 tun_ptr_free +EXPORT_SYMBOL_GPL vmlinux 0x409d3f4d kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x40a13568 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x40a23395 register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0x40a602c2 iommu_sva_bind_device +EXPORT_SYMBOL_GPL vmlinux 0x40ac9788 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x40acca5b show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x40d5e2ae crypto_stats_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x40ed65e6 irq_domain_remove_sim +EXPORT_SYMBOL_GPL vmlinux 0x40f5a05a irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x40f8b94e ring_buffer_iter_dropped +EXPORT_SYMBOL_GPL vmlinux 0x40f8bd4e klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x40ff8139 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x410f47ef scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x411fc5c0 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x412779cc pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x412bc681 ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x416ab200 pci_epc_mem_alloc_addr +EXPORT_SYMBOL_GPL vmlinux 0x417d8076 dax_zero_page_range +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x4185fc64 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x41888cfc regmap_fields_read +EXPORT_SYMBOL_GPL vmlinux 0x418bb531 tty_buffer_set_limit +EXPORT_SYMBOL_GPL vmlinux 0x418f6abd fwnode_get_next_parent +EXPORT_SYMBOL_GPL vmlinux 0x41905c23 crypto_comp_decompress +EXPORT_SYMBOL_GPL vmlinux 0x419cad8e percpu_up_write +EXPORT_SYMBOL_GPL vmlinux 0x419e7efd sfp_module_stop +EXPORT_SYMBOL_GPL vmlinux 0x41b1a4df bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x41b9a6e6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x41d2948d property_entries_dup +EXPORT_SYMBOL_GPL vmlinux 0x41ed3cec eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x41fb68cb copy_from_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0x423b04f8 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x423cec19 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x425a2b37 genphy_c45_read_link +EXPORT_SYMBOL_GPL vmlinux 0x426d9818 kernfs_find_and_get_ns +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4293e9b2 regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x429c3f9c reboot_mode +EXPORT_SYMBOL_GPL vmlinux 0x42b0f7da is_skb_forwardable +EXPORT_SYMBOL_GPL vmlinux 0x42c00d62 __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x42e9d0da ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x430d88ec __traceiter_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x430fa18b cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x4321b949 poll_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x435ec5a0 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x43619e54 nf_ip_route +EXPORT_SYMBOL_GPL vmlinux 0x4365bbe4 wbc_attach_and_unlock_inode +EXPORT_SYMBOL_GPL vmlinux 0x436d817f mpi_clear_bit +EXPORT_SYMBOL_GPL vmlinux 0x437eb1df ipv6_mod_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4388497f xa_delete_node +EXPORT_SYMBOL_GPL vmlinux 0x43aa319e lease_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x43c33665 isc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x43e9f773 blk_stat_disable_accounting +EXPORT_SYMBOL_GPL vmlinux 0x43f92edd wait_for_initramfs +EXPORT_SYMBOL_GPL vmlinux 0x43f9837a kthread_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x43fb8a0f pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x4401e6c2 mpi_cmpabs +EXPORT_SYMBOL_GPL vmlinux 0x440be4b9 trace_seq_putmem +EXPORT_SYMBOL_GPL vmlinux 0x442deaa9 poll_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4439bcd2 __SCK__tp_func_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x443ac1fa debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0x443bb01e relay_late_setup_files +EXPORT_SYMBOL_GPL vmlinux 0x444a71ff fuse_dev_fiq_ops +EXPORT_SYMBOL_GPL vmlinux 0x44616512 tcp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x4464a12c device_link_remove +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4487511c devm_kmalloc +EXPORT_SYMBOL_GPL vmlinux 0x44987827 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x44bae227 bit_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0x44cf8cf0 blk_zone_cond_str +EXPORT_SYMBOL_GPL vmlinux 0x44e0ccaa zpci_set_irq_ctrl +EXPORT_SYMBOL_GPL vmlinux 0x4507f4a8 cpuhp_tasks_frozen +EXPORT_SYMBOL_GPL vmlinux 0x453c9fec crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x4541bb6d genphy_c45_baset1_read_status +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4576df51 __irq_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x45772084 md_kick_rdev_from_array +EXPORT_SYMBOL_GPL vmlinux 0x458b0722 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x459e944d pci_epf_alloc_space +EXPORT_SYMBOL_GPL vmlinux 0x45b761ad bio_blkcg_css +EXPORT_SYMBOL_GPL vmlinux 0x45c04efa user_free_preparse +EXPORT_SYMBOL_GPL vmlinux 0x45c38a81 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x45f18169 regmap_parse_val +EXPORT_SYMBOL_GPL vmlinux 0x45f35d92 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x45f53716 input_device_enabled +EXPORT_SYMBOL_GPL vmlinux 0x46013233 net_dec_ingress_queue +EXPORT_SYMBOL_GPL vmlinux 0x46269814 __tracepoint_neigh_event_send_dead +EXPORT_SYMBOL_GPL vmlinux 0x4629597e devm_platform_get_irqs_affinity +EXPORT_SYMBOL_GPL vmlinux 0x462e866c fuse_simple_background +EXPORT_SYMBOL_GPL vmlinux 0x46343ebb sbitmap_queue_clear +EXPORT_SYMBOL_GPL vmlinux 0x4688d367 virtio_break_device +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x469a7067 acct_bioset_init +EXPORT_SYMBOL_GPL vmlinux 0x46b9fd4e watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x46ebd7c1 tun_get_tx_ring +EXPORT_SYMBOL_GPL vmlinux 0x46edb904 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x4714ac80 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4723dcc3 device_add_software_node +EXPORT_SYMBOL_GPL vmlinux 0x4741da48 md_find_rdev_nr_rcu +EXPORT_SYMBOL_GPL vmlinux 0x47441feb devlink_port_attrs_pci_sf_set +EXPORT_SYMBOL_GPL vmlinux 0x4759d702 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477c023f watchdog_set_last_hw_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478a091e rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x478c5a4d kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x478e81f8 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x479c5dbb fwnode_graph_get_remote_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x47a9323c fw_devlink_purge_absent_suppliers +EXPORT_SYMBOL_GPL vmlinux 0x47b6a4ac genphy_c45_loopback +EXPORT_SYMBOL_GPL vmlinux 0x47b89a5f tpm1_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x47cdaa19 device_del +EXPORT_SYMBOL_GPL vmlinux 0x47dac43b devm_irq_domain_create_sim +EXPORT_SYMBOL_GPL vmlinux 0x47ea2eec fuse_fill_super_common +EXPORT_SYMBOL_GPL vmlinux 0x47ef3efe device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x47f07f16 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x47fd8a9c sbitmap_queue_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0x480305ca kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0x481f9b7d mpi_mulm +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x48692590 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x4869dd64 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x4874afa8 crypto_skcipher_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x48908735 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x4898e79d cio_start +EXPORT_SYMBOL_GPL vmlinux 0x48a09202 pgprot_writethrough +EXPORT_SYMBOL_GPL vmlinux 0x48c32847 __SCK__tp_func_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x48c9a43e iomap_read_folio +EXPORT_SYMBOL_GPL vmlinux 0x48e15b61 __devm_irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x48e5eb7b blkcg_set_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0x48ed1f69 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x48ed8ef7 devres_add +EXPORT_SYMBOL_GPL vmlinux 0x490b0432 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x49242bc7 freezer_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4930b84c xdp_rxq_info_unreg +EXPORT_SYMBOL_GPL vmlinux 0x4934bdd0 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x4939ebcd numa_map_to_online_node +EXPORT_SYMBOL_GPL vmlinux 0x4944f292 ncsi_start_dev +EXPORT_SYMBOL_GPL vmlinux 0x49608959 migrate_disable +EXPORT_SYMBOL_GPL vmlinux 0x4967e1cf __alloc_pages_bulk +EXPORT_SYMBOL_GPL vmlinux 0x4969afe8 crypto_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x49878e87 tty_buffer_space_avail +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x499bb94f relay_open +EXPORT_SYMBOL_GPL vmlinux 0x49ae09d8 iommu_unmap_fast +EXPORT_SYMBOL_GPL vmlinux 0x49c6c66c __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x49cd25ed alloc_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x49d0ca60 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x49d562a8 kvm_vcpu_halt +EXPORT_SYMBOL_GPL vmlinux 0x49d70fdb device_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x49e96999 cond_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x49ea931c __gfn_to_pfn_memslot +EXPORT_SYMBOL_GPL vmlinux 0x49f154ab dma_alloc_pages +EXPORT_SYMBOL_GPL vmlinux 0x4a152be7 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0x4a17ed66 sysrq_mask +EXPORT_SYMBOL_GPL vmlinux 0x4a24f10a irq_chip_set_vcpu_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0x4a2bb41d crypto_register_rngs +EXPORT_SYMBOL_GPL vmlinux 0x4a51a3d6 devm_kmemdup +EXPORT_SYMBOL_GPL vmlinux 0x4a51ae3b relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x4a65cf93 fwnode_graph_get_remote_port +EXPORT_SYMBOL_GPL vmlinux 0x4a7f853c crypto_register_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x4acf259f ima_inode_hash +EXPORT_SYMBOL_GPL vmlinux 0x4ae0dbe0 ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x4ae4161a gpiod_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x4ae92c0c device_rename +EXPORT_SYMBOL_GPL vmlinux 0x4b05d078 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x4b0ccaad skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x4b26e645 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4b2c1382 dw_pcie_upconfig_setup +EXPORT_SYMBOL_GPL vmlinux 0x4b40cab9 platform_irq_count +EXPORT_SYMBOL_GPL vmlinux 0x4b647f78 serdev_controller_add +EXPORT_SYMBOL_GPL vmlinux 0x4b810c99 iomap_invalidate_folio +EXPORT_SYMBOL_GPL vmlinux 0x4b9fc158 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x4ba88dcb chsc_sgib +EXPORT_SYMBOL_GPL vmlinux 0x4bc14365 blk_mq_sched_try_insert_merge +EXPORT_SYMBOL_GPL vmlinux 0x4bc459c1 dax_zero_range +EXPORT_SYMBOL_GPL vmlinux 0x4bd6f08b misc_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x4bd89c5a css_chsc_characteristics +EXPORT_SYMBOL_GPL vmlinux 0x4bdb8dcc housekeeping_test_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4bed46b0 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x4c08bd98 compat_only_sysfs_link_entry_to_kobj +EXPORT_SYMBOL_GPL vmlinux 0x4c0ad62b gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x4c152e52 serdev_device_set_baudrate +EXPORT_SYMBOL_GPL vmlinux 0x4c4f3f41 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x4c56bd15 stack_type_name +EXPORT_SYMBOL_GPL vmlinux 0x4c598261 blk_clear_pm_only +EXPORT_SYMBOL_GPL vmlinux 0x4c7ff1ac fscrypt_set_bio_crypt_ctx +EXPORT_SYMBOL_GPL vmlinux 0x4c903cd0 driver_deferred_probe_check_state +EXPORT_SYMBOL_GPL vmlinux 0x4c9d260a crypto_register_akcipher +EXPORT_SYMBOL_GPL vmlinux 0x4cb27100 ktime_get_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x4cb81fda __SCK__tp_func_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x4cbb4ba1 __xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0x4cbccd3f xfrm_state_mtu +EXPORT_SYMBOL_GPL vmlinux 0x4ce91483 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x4ce9b2ef inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x4d0015e2 cpu_hotplug_disable +EXPORT_SYMBOL_GPL vmlinux 0x4d09c3f0 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4d13e4f0 tty_port_register_device_attr_serdev +EXPORT_SYMBOL_GPL vmlinux 0x4d24b69e dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x4d263dcc debugfs_create_file_size +EXPORT_SYMBOL_GPL vmlinux 0x4d3f22b9 fsnotify_alloc_group +EXPORT_SYMBOL_GPL vmlinux 0x4d4d7b79 blk_mq_map_queues +EXPORT_SYMBOL_GPL vmlinux 0x4d5c3748 sched_set_fifo_low +EXPORT_SYMBOL_GPL vmlinux 0x4d6d0bbc iommu_group_ref_get +EXPORT_SYMBOL_GPL vmlinux 0x4d7272e4 migrate_enable +EXPORT_SYMBOL_GPL vmlinux 0x4d7c5fad css_sch_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x4d80cba4 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x4d8f5c1e inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x4da5bdb3 bsg_job_put +EXPORT_SYMBOL_GPL vmlinux 0x4da970cb gmap_mprotect_notify +EXPORT_SYMBOL_GPL vmlinux 0x4daf1f44 uprobe_register_refctr +EXPORT_SYMBOL_GPL vmlinux 0x4dd0da9c sysfs_create_groups +EXPORT_SYMBOL_GPL vmlinux 0x4dd9d14d cn_netlink_send_mult +EXPORT_SYMBOL_GPL vmlinux 0x4df3b560 dma_mmap_pages +EXPORT_SYMBOL_GPL vmlinux 0x4e0c515c pci_iov_get_pf_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x4e227afc __traceiter_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0x4e22c5f7 tracing_snapshot_cond +EXPORT_SYMBOL_GPL vmlinux 0x4e2bc62f __traceiter_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x4e3ea5b6 regmap_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x4e3fd1b4 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x4e481d34 genphy_c45_aneg_done +EXPORT_SYMBOL_GPL vmlinux 0x4e51b866 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x4e53e4c4 devlink_param_value_changed +EXPORT_SYMBOL_GPL vmlinux 0x4e72c8e9 bpf_prog_select_runtime +EXPORT_SYMBOL_GPL vmlinux 0x4e74878e __tracepoint_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x4e83ed88 crypto_unregister_skciphers +EXPORT_SYMBOL_GPL vmlinux 0x4e8ee685 ccw_device_get_chpid +EXPORT_SYMBOL_GPL vmlinux 0x4e8f0640 gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x4e953d15 __traceiter_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x4eac5fc1 cpu_mitigations_auto_nosmt +EXPORT_SYMBOL_GPL vmlinux 0x4eb39d4e __tracepoint_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0x4eb4aa33 set_primary_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x4eedd6f3 rhashtable_walk_stop +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4efcf021 mpi_normalize +EXPORT_SYMBOL_GPL vmlinux 0x4f321058 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x4f6a07fe show_rcu_gp_kthreads +EXPORT_SYMBOL_GPL vmlinux 0x4f6fb30f devl_rate_leaf_destroy +EXPORT_SYMBOL_GPL vmlinux 0x4f8b8e0b gmap_register_pte_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f91fd51 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x4fba4bc2 sched_set_fifo +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ff45574 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x4ff61fb3 dma_can_mmap +EXPORT_SYMBOL_GPL vmlinux 0x5006d60f pci_get_dsn +EXPORT_SYMBOL_GPL vmlinux 0x501220cc iomap_page_mkwrite +EXPORT_SYMBOL_GPL vmlinux 0x505df8f7 fuse_conn_destroy +EXPORT_SYMBOL_GPL vmlinux 0x50616e69 devlink_resources_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5080ca5d unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x5083f27b kvm_vcpu_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x50870531 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x509429fb register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x509cc789 finish_rcuwait +EXPORT_SYMBOL_GPL vmlinux 0x509f59c7 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x50a1763f component_compare_dev +EXPORT_SYMBOL_GPL vmlinux 0x50a7218d fwnode_property_present +EXPORT_SYMBOL_GPL vmlinux 0x50b20e2d dw_pcie_ep_raise_msi_irq +EXPORT_SYMBOL_GPL vmlinux 0x50be0b54 fwnode_connection_find_match +EXPORT_SYMBOL_GPL vmlinux 0x50e2f2d5 espintcp_push_skb +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50e791a7 bpf_trace_run8 +EXPORT_SYMBOL_GPL vmlinux 0x50eabfdf debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x50f85e6d inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x511e189a zpci_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x513090b4 pci_generic_config_write +EXPORT_SYMBOL_GPL vmlinux 0x5131a8f3 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x51390c96 rcu_barrier_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x513aa2bf xfrm_state_afinfo_get_rcu +EXPORT_SYMBOL_GPL vmlinux 0x515a4b2e crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x515b390f __SCK__tp_func_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x515bb702 skb_segment_list +EXPORT_SYMBOL_GPL vmlinux 0x5160a242 devlink_port_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x5167b418 do_xdp_generic +EXPORT_SYMBOL_GPL vmlinux 0x516960bd klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x517a7975 rsa_parse_pub_key +EXPORT_SYMBOL_GPL vmlinux 0x51842732 dma_vunmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x519acf95 sk_msg_free +EXPORT_SYMBOL_GPL vmlinux 0x51ac2324 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x51c83555 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x51ea0d2f arch_make_page_accessible +EXPORT_SYMBOL_GPL vmlinux 0x51eafcac inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x51ebb33c scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x51f13794 pci_epf_remove_vepf +EXPORT_SYMBOL_GPL vmlinux 0x52196f23 __traceiter_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x5223772a dm_bio_get_target_bio_nr +EXPORT_SYMBOL_GPL vmlinux 0x5236497d trace_clock +EXPORT_SYMBOL_GPL vmlinux 0x5239a878 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x5239b3bb fscrypt_limit_io_blocks +EXPORT_SYMBOL_GPL vmlinux 0x52701755 platform_clear +EXPORT_SYMBOL_GPL vmlinux 0x528670d6 cdrom_read_tocentry +EXPORT_SYMBOL_GPL vmlinux 0x5292114d blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x5292412d fixed_phy_register +EXPORT_SYMBOL_GPL vmlinux 0x52aa31c6 dev_xdp_prog_count +EXPORT_SYMBOL_GPL vmlinux 0x52b17c1f genphy_c45_pma_read_abilities +EXPORT_SYMBOL_GPL vmlinux 0x52b1e3c7 pci_flags +EXPORT_SYMBOL_GPL vmlinux 0x52b86a17 skb_mpls_push +EXPORT_SYMBOL_GPL vmlinux 0x52c19214 irq_domain_pop_irq +EXPORT_SYMBOL_GPL vmlinux 0x52c35e83 call_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x52d54fce devlink_info_version_stored_put +EXPORT_SYMBOL_GPL vmlinux 0x53123aaa mddev_unlock +EXPORT_SYMBOL_GPL vmlinux 0x533ffa2d bpf_offload_dev_netdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x534adc18 l3mdev_fib_table_rcu +EXPORT_SYMBOL_GPL vmlinux 0x534d8d13 irq_domain_free_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x5358864e devlink_fmsg_binary_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x5373ee50 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x537961a8 crypto_stats_get +EXPORT_SYMBOL_GPL vmlinux 0x53826118 fwnode_create_software_node +EXPORT_SYMBOL_GPL vmlinux 0x538d073d phy_duplex_to_str +EXPORT_SYMBOL_GPL vmlinux 0x538f8af9 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x539355dd fwnode_handle_put +EXPORT_SYMBOL_GPL vmlinux 0x53d7c01e __traceiter_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x544de702 pci_remove_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x5490f4b2 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a92146 tcp_abort +EXPORT_SYMBOL_GPL vmlinux 0x54aac082 __phy_modify +EXPORT_SYMBOL_GPL vmlinux 0x54bd83cd irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x54d49613 event_triggers_post_call +EXPORT_SYMBOL_GPL vmlinux 0x54eeb886 device_register +EXPORT_SYMBOL_GPL vmlinux 0x5521c879 kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0x55339365 flush_delayed_fput +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5546f795 sysfs_remove_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x555804cf kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x556a9ead xas_split +EXPORT_SYMBOL_GPL vmlinux 0x558fb45c task_cls_state +EXPORT_SYMBOL_GPL vmlinux 0x55b05756 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x55b0986c crypto_stats_akcipher_verify +EXPORT_SYMBOL_GPL vmlinux 0x55b990eb platform_unregister_drivers +EXPORT_SYMBOL_GPL vmlinux 0x55dd6f17 __xdp_rxq_info_reg +EXPORT_SYMBOL_GPL vmlinux 0x55eecff4 bit_wait_io_timeout +EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x55f91924 trace_seq_puts +EXPORT_SYMBOL_GPL vmlinux 0x55fba963 bio_associate_blkg +EXPORT_SYMBOL_GPL vmlinux 0x5602796a fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x56037dbe tcp_unregister_ulp +EXPORT_SYMBOL_GPL vmlinux 0x56054c05 crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x56256e8a orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x56265e78 synth_event_add_next_val +EXPORT_SYMBOL_GPL vmlinux 0x563185b5 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x56427660 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x5649d15b fscrypt_parse_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x5650c667 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x565db03d dma_vmap_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x56661849 msi_lock_descs +EXPORT_SYMBOL_GPL vmlinux 0x566f1d3d __class_register +EXPORT_SYMBOL_GPL vmlinux 0x567b3403 skb_splice_bits +EXPORT_SYMBOL_GPL vmlinux 0x567c69fb irq_find_matching_fwspec +EXPORT_SYMBOL_GPL vmlinux 0x5683ccfb metadata_dst_free_percpu +EXPORT_SYMBOL_GPL vmlinux 0x5698429f pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x569d423d fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x569e688b iommu_get_domain_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x56d0dc8a key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x56dc44e0 scsi_dh_activate +EXPORT_SYMBOL_GPL vmlinux 0x56de3603 tpm1_getcap +EXPORT_SYMBOL_GPL vmlinux 0x56dfd7e1 raw_abort +EXPORT_SYMBOL_GPL vmlinux 0x56eab867 kill_device +EXPORT_SYMBOL_GPL vmlinux 0x56ecd29f __get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x56eee29d pci_epc_stop +EXPORT_SYMBOL_GPL vmlinux 0x56f49391 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x56fbb130 no_hash_pointers +EXPORT_SYMBOL_GPL vmlinux 0x570f976e unregister_trace_event +EXPORT_SYMBOL_GPL vmlinux 0x57145cae mark_page_dirty_in_slot +EXPORT_SYMBOL_GPL vmlinux 0x57155619 fixed_phy_change_carrier +EXPORT_SYMBOL_GPL vmlinux 0x575670a0 lwtstate_free +EXPORT_SYMBOL_GPL vmlinux 0x575d7c77 gpiochip_free_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x576965b0 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x576a808a xdp_return_frame +EXPORT_SYMBOL_GPL vmlinux 0x5786e65d kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x578eeb4d hugetlb_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x578f4ab3 __traceiter_sched_util_est_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x5790e7a0 pci_unlock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57b27781 tpm2_flush_context +EXPORT_SYMBOL_GPL vmlinux 0x57c59187 devm_gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0x57e6e3f2 kvm_s390_gisc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x57f576b9 mpi_ec_curve_point +EXPORT_SYMBOL_GPL vmlinux 0x580db8bc dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x5831e062 cpus_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0x584599d3 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x585e1c69 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5879a27d sfp_get_module_info +EXPORT_SYMBOL_GPL vmlinux 0x588e6d84 ethnl_cable_test_result +EXPORT_SYMBOL_GPL vmlinux 0x58ab2f78 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x58cd4f1c tty_port_default_client_ops +EXPORT_SYMBOL_GPL vmlinux 0x58def6ca sfp_module_remove +EXPORT_SYMBOL_GPL vmlinux 0x58f31f10 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5914eac6 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x59498fd2 vc_scrolldelta_helper +EXPORT_SYMBOL_GPL vmlinux 0x594a34c3 kernfs_path_from_node +EXPORT_SYMBOL_GPL vmlinux 0x594af362 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x594d7fab dax_region_put +EXPORT_SYMBOL_GPL vmlinux 0x594fe160 tod_clock_base +EXPORT_SYMBOL_GPL vmlinux 0x595487bc xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x5977c5f3 gpiochip_irq_domain_activate +EXPORT_SYMBOL_GPL vmlinux 0x598b077b __unwind_start +EXPORT_SYMBOL_GPL vmlinux 0x59968a60 xdp_rxq_info_reg_mem_model +EXPORT_SYMBOL_GPL vmlinux 0x59aacd2a pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x59b7c718 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x59c43dc9 __traceiter_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x59c45c03 kvm_vcpu_gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0x59cd346d inet_ehash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x59e640c0 halt_poll_ns +EXPORT_SYMBOL_GPL vmlinux 0x59eeb11d ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x59f2d2d5 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x59f32720 mpi_subm +EXPORT_SYMBOL_GPL vmlinux 0x59fccc98 perf_get_aux +EXPORT_SYMBOL_GPL vmlinux 0x5a0ef747 __netpoll_free +EXPORT_SYMBOL_GPL vmlinux 0x5a12e60c __SCK__tp_func_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0x5a1c5ee0 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x5a1d134a rcu_momentary_dyntick_idle +EXPORT_SYMBOL_GPL vmlinux 0x5a37220b cmf_readall +EXPORT_SYMBOL_GPL vmlinux 0x5a49dbc9 timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x5a593802 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x5a6cdb52 nf_ct_zone_dflt +EXPORT_SYMBOL_GPL vmlinux 0x5a7182ff phy_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0x5a7beb47 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a92a0f0 xas_find_marked +EXPORT_SYMBOL_GPL vmlinux 0x5aa0afcf debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x5ab8203c regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x5ad0492c fib_nl_newrule +EXPORT_SYMBOL_GPL vmlinux 0x5ad3f843 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x5ae5287b simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x5aed94fb pci_proc_domain +EXPORT_SYMBOL_GPL vmlinux 0x5aeeab86 dma_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x5af59ac2 dw_pcie_read_dbi +EXPORT_SYMBOL_GPL vmlinux 0x5b02a4a6 crypto_stats_kpp_compute_shared_secret +EXPORT_SYMBOL_GPL vmlinux 0x5b08a77a dw_pcie_write_dbi +EXPORT_SYMBOL_GPL vmlinux 0x5b21ceff ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0x5b2b673a kvm_vcpu_map +EXPORT_SYMBOL_GPL vmlinux 0x5b5b339b __fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5b674736 pci_epc_raise_irq +EXPORT_SYMBOL_GPL vmlinux 0x5b6b0329 swiotlb_max_segment +EXPORT_SYMBOL_GPL vmlinux 0x5b788576 paste_selection +EXPORT_SYMBOL_GPL vmlinux 0x5b9db3b4 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x5ba63bef property_entries_free +EXPORT_SYMBOL_GPL vmlinux 0x5ba9c87f blk_crypto_keyslot_index +EXPORT_SYMBOL_GPL vmlinux 0x5baaf5c6 iomap_file_buffered_write +EXPORT_SYMBOL_GPL vmlinux 0x5bb6e31d iomap_ioend_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x5bbdfa26 scatterwalk_ffwd +EXPORT_SYMBOL_GPL vmlinux 0x5bc4dcb7 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x5bd0748f crypto_del_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x5bd674f4 xas_load +EXPORT_SYMBOL_GPL vmlinux 0x5bdbac4e rcu_unexpedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x5bfb2209 pci_set_host_bridge_release +EXPORT_SYMBOL_GPL vmlinux 0x5c04d404 strp_stop +EXPORT_SYMBOL_GPL vmlinux 0x5c0dec8b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x5c1b0a50 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5c2f1546 devlink_sb_register +EXPORT_SYMBOL_GPL vmlinux 0x5c3bbd06 __SCK__tp_func_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x5c57e221 __traceiter_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x5c7fd1ba gpiod_set_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x5c82016e __SCK__tp_func_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5c9f3491 sk_msg_trim +EXPORT_SYMBOL_GPL vmlinux 0x5cab36a1 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x5cb588c5 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x5cb85b4f debugfs_lookup_and_remove +EXPORT_SYMBOL_GPL vmlinux 0x5cce7921 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5ce4a1c4 dev_fill_metadata_dst +EXPORT_SYMBOL_GPL vmlinux 0x5cede0a7 xdp_flush_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x5cf94cbd cio_cancel_halt_clear +EXPORT_SYMBOL_GPL vmlinux 0x5cfe8ac5 crypto_stats_skcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x5d0a6968 __percpu_down_read +EXPORT_SYMBOL_GPL vmlinux 0x5d1ce338 dma_free_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0x5d3508f1 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0x5d376561 sysfs_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x5d544c0c crypto_register_templates +EXPORT_SYMBOL_GPL vmlinux 0x5d644983 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5d665e2e blkdev_nr_zones +EXPORT_SYMBOL_GPL vmlinux 0x5d6737f5 irq_chip_release_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0x5d757271 generic_handle_domain_irq +EXPORT_SYMBOL_GPL vmlinux 0x5d8476d3 bpf_sk_storage_diag_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5d9371a8 sk_msg_zerocopy_from_iter +EXPORT_SYMBOL_GPL vmlinux 0x5da2d0e2 __traceiter_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x5da67adc zs_compact +EXPORT_SYMBOL_GPL vmlinux 0x5dc0368a crypto_stats_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x5dd20c0e serdev_device_add +EXPORT_SYMBOL_GPL vmlinux 0x5dd2739d crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x5dd76e44 mutex_lock_io +EXPORT_SYMBOL_GPL vmlinux 0x5ddc19bf acomp_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x5de48224 skcipher_walk_aead_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x5def606b kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0x5df7b2a2 tcp_set_keepalive +EXPORT_SYMBOL_GPL vmlinux 0x5e173309 cpu_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x5e2ee4bf anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5e436c28 devm_request_pci_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0x5e50f41b gmap_make_secure +EXPORT_SYMBOL_GPL vmlinux 0x5e515be6 ktime_get_ts64 +EXPORT_SYMBOL_GPL vmlinux 0x5e591433 iommu_map_atomic +EXPORT_SYMBOL_GPL vmlinux 0x5e5e8c97 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x5e7f4219 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x5e85415b ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x5e8880da device_link_add +EXPORT_SYMBOL_GPL vmlinux 0x5eac116c devlink_dpipe_action_put +EXPORT_SYMBOL_GPL vmlinux 0x5eb417e0 __SCK__tp_func_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0x5edebfc6 gpiod_get_raw_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x5efb918d cgroup_get_e_css +EXPORT_SYMBOL_GPL vmlinux 0x5f1bf213 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x5f23e3fa insert_resource +EXPORT_SYMBOL_GPL vmlinux 0x5f37d9ad do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x5f478973 modify_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0x5f6e13a4 fuse_request_end +EXPORT_SYMBOL_GPL vmlinux 0x5f6f1e9e dax_get_private +EXPORT_SYMBOL_GPL vmlinux 0x5f8d3f24 devlink_param_driverinit_value_set +EXPORT_SYMBOL_GPL vmlinux 0x5f94bb53 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x5fa4ce72 xas_nomem +EXPORT_SYMBOL_GPL vmlinux 0x5fa625ed mpi_ec_mul_point +EXPORT_SYMBOL_GPL vmlinux 0x5fb726f1 gpiochip_line_is_open_drain +EXPORT_SYMBOL_GPL vmlinux 0x5fb8848b halt_poll_ns_grow_start +EXPORT_SYMBOL_GPL vmlinux 0x5fb92122 gpiod_get_value +EXPORT_SYMBOL_GPL vmlinux 0x5fdfcd57 __tracepoint_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x5fe14f6c kill_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x5ff9da03 proc_create_net_single +EXPORT_SYMBOL_GPL vmlinux 0x5ffe8f4e gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0x6029efd5 dax_flush +EXPORT_SYMBOL_GPL vmlinux 0x604722fd devices_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x604a0625 udp_bpf_update_proto +EXPORT_SYMBOL_GPL vmlinux 0x606b4aba devlink_linecard_provision_set +EXPORT_SYMBOL_GPL vmlinux 0x60716bd2 iommu_dev_disable_feature +EXPORT_SYMBOL_GPL vmlinux 0x607c4683 devlink_info_version_fixed_put +EXPORT_SYMBOL_GPL vmlinux 0x608386e9 tty_save_termios +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 0x60ac6af5 fuse_dax_cancel_work +EXPORT_SYMBOL_GPL vmlinux 0x60aec4d3 devm_kstrdup +EXPORT_SYMBOL_GPL vmlinux 0x60dcfbcc xdp_master_redirect +EXPORT_SYMBOL_GPL vmlinux 0x60dd5bcd hrtimer_sleeper_start_expires +EXPORT_SYMBOL_GPL vmlinux 0x60ebc96f ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x60feb465 mmu_notifier_get_locked +EXPORT_SYMBOL_GPL vmlinux 0x61161fcf gpiochip_request_own_desc +EXPORT_SYMBOL_GPL vmlinux 0x61174d08 metadata_dst_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6129fb93 sfp_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x612bfd89 errno_to_blk_status +EXPORT_SYMBOL_GPL vmlinux 0x61458cae sysfs_create_link_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x614a4cf9 __traceiter_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0x6168743e fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x6168b2c3 synth_event_trace +EXPORT_SYMBOL_GPL vmlinux 0x6177373f rhashtable_walk_peek +EXPORT_SYMBOL_GPL vmlinux 0x6181e79f timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x618967fa device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x6198dfea __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6199ad5d crypto_has_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x619fd268 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x61a5bb5b sk_msg_is_readable +EXPORT_SYMBOL_GPL vmlinux 0x61aa4d92 __platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x61ad8659 sbitmap_get +EXPORT_SYMBOL_GPL vmlinux 0x61c1ca29 __SCK__tp_func_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x61ccd94f phy_select_page +EXPORT_SYMBOL_GPL vmlinux 0x61f67c92 phy_gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0x61facc22 kobj_sysfs_ops +EXPORT_SYMBOL_GPL vmlinux 0x61fdac33 to_software_node +EXPORT_SYMBOL_GPL vmlinux 0x62251d5a cio_update_schib +EXPORT_SYMBOL_GPL vmlinux 0x62266cdb pcie_aspm_enabled +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x62377a7b blk_io_schedule +EXPORT_SYMBOL_GPL vmlinux 0x62416e96 page_cache_sync_ra +EXPORT_SYMBOL_GPL vmlinux 0x6246a629 synchronize_rcu_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0x62598cae raw_v6_match +EXPORT_SYMBOL_GPL vmlinux 0x625b7ab5 blk_mq_start_stopped_hw_queue +EXPORT_SYMBOL_GPL vmlinux 0x6286dcb7 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x62882cd8 platform_get_irq_byname_optional +EXPORT_SYMBOL_GPL vmlinux 0x629256a5 gpiochip_generic_request +EXPORT_SYMBOL_GPL vmlinux 0x62bb09bf clocks_calc_mult_shift +EXPORT_SYMBOL_GPL vmlinux 0x62d01462 iomap_is_partially_uptodate +EXPORT_SYMBOL_GPL vmlinux 0x62daa57e hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x62e6ca6e gmap_create +EXPORT_SYMBOL_GPL vmlinux 0x62f09927 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x62fe6b57 ipl_info +EXPORT_SYMBOL_GPL vmlinux 0x6303bbd4 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x631ba529 software_node_unregister_node_group +EXPORT_SYMBOL_GPL vmlinux 0x634b9d42 __SCK__tp_func_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x634c6082 freq_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x63710396 devlink_dpipe_table_unregister +EXPORT_SYMBOL_GPL vmlinux 0x637c3731 dax_layout_busy_page_range +EXPORT_SYMBOL_GPL vmlinux 0x63807188 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x6389efaf fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x638a69aa devlink_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6393e79e platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x63965481 fwnode_property_get_reference_args +EXPORT_SYMBOL_GPL vmlinux 0x639ff966 firmware_request_cache +EXPORT_SYMBOL_GPL vmlinux 0x63e543ca phy_10gbit_fec_features +EXPORT_SYMBOL_GPL vmlinux 0x63ee5886 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x640b1037 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x640d2513 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x64322c8c pci_device_is_present +EXPORT_SYMBOL_GPL vmlinux 0x643fe402 gmap_shadow_pgt_lookup +EXPORT_SYMBOL_GPL vmlinux 0x64609d25 __tracepoint_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0x6461cbd7 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x64786375 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x64953be4 pkcs7_verify +EXPORT_SYMBOL_GPL vmlinux 0x649fae80 task_cputime_adjusted +EXPORT_SYMBOL_GPL vmlinux 0x64ac83b2 devlink_trap_groups_unregister +EXPORT_SYMBOL_GPL vmlinux 0x64ad7556 regmap_get_max_register +EXPORT_SYMBOL_GPL vmlinux 0x64c236cb sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x64c3ad06 rhashtable_init +EXPORT_SYMBOL_GPL vmlinux 0x64c74b6d gpiochip_irqchip_add_domain +EXPORT_SYMBOL_GPL vmlinux 0x64e27c4f synth_event_delete +EXPORT_SYMBOL_GPL vmlinux 0x64f74abf __tracepoint_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0x64ff5302 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x6506a8ef housekeeping_cpumask +EXPORT_SYMBOL_GPL vmlinux 0x65086607 vp_modern_get_features +EXPORT_SYMBOL_GPL vmlinux 0x651d10e5 ktime_get_tai_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x65218d4a rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x6531a37f mpi_add +EXPORT_SYMBOL_GPL vmlinux 0x6545268e __tracepoint_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0x654dbd14 mdiobus_modify +EXPORT_SYMBOL_GPL vmlinux 0x65535a8a pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x65888092 __devres_alloc_node +EXPORT_SYMBOL_GPL vmlinux 0x658c3b94 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x65b8461d crypto_unregister_scomp +EXPORT_SYMBOL_GPL vmlinux 0x65c708a8 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d5ae41 iommu_fwspec_add_ids +EXPORT_SYMBOL_GPL vmlinux 0x65de3021 stack_depot_snprint +EXPORT_SYMBOL_GPL vmlinux 0x660cabdb pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x660eb6bd devlink_free +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x662df2df lwtunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x6636c3c9 irq_set_vcpu_affinity +EXPORT_SYMBOL_GPL vmlinux 0x663bb448 devlink_fmsg_obj_nest_end +EXPORT_SYMBOL_GPL vmlinux 0x664a2e22 kthread_use_mm +EXPORT_SYMBOL_GPL vmlinux 0x665dfbdb rtnl_get_net_ns_capable +EXPORT_SYMBOL_GPL vmlinux 0x666093a4 blk_crypto_register +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x6695cde5 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x669813c2 serdev_device_write_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x66ae79a3 pci_epc_mem_init +EXPORT_SYMBOL_GPL vmlinux 0x66b97421 sfp_link_up +EXPORT_SYMBOL_GPL vmlinux 0x66bf0d30 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x66c343e7 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x66d5678c devm_fwnode_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66df0d36 __cookie_v6_check +EXPORT_SYMBOL_GPL vmlinux 0x66f06c28 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x66f9c03b devm_register_restart_handler +EXPORT_SYMBOL_GPL vmlinux 0x67119687 blk_crypto_update_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x67429c91 __SCK__tp_func_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x67441f17 get_net_ns_by_fd +EXPORT_SYMBOL_GPL vmlinux 0x6760f209 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x676624f4 ncsi_vlan_rx_add_vid +EXPORT_SYMBOL_GPL vmlinux 0x676c6a05 nfs42_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x677856a5 device_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0x67886d1f fwnode_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x678a6525 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x679206bc fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x67936403 devl_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67b48e7c put_device +EXPORT_SYMBOL_GPL vmlinux 0x67c62df8 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x67d53463 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x67da9f7c sha512_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x67e102b2 kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x67fc7900 xdp_return_frame_bulk +EXPORT_SYMBOL_GPL vmlinux 0x68008e0b tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x6807723d fib6_new_table +EXPORT_SYMBOL_GPL vmlinux 0x6823d995 sbitmap_finish_wait +EXPORT_SYMBOL_GPL vmlinux 0x682efe31 crypto_alloc_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x682ff057 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x68364936 dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x6846c10b scsi_host_unblock +EXPORT_SYMBOL_GPL vmlinux 0x685d09ac __kprobe_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x6881e5ca fsl_mc_device_group +EXPORT_SYMBOL_GPL vmlinux 0x6892e3c3 kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x68952493 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x689c67c4 scsi_host_busy_iter +EXPORT_SYMBOL_GPL vmlinux 0x68a0c9c1 list_lru_destroy +EXPORT_SYMBOL_GPL vmlinux 0x68bf2923 pci_epc_mem_exit +EXPORT_SYMBOL_GPL vmlinux 0x68c659f8 cdrom_multisession +EXPORT_SYMBOL_GPL vmlinux 0x68c6cbc7 __fscrypt_prepare_lookup +EXPORT_SYMBOL_GPL vmlinux 0x68de418c sk_msg_alloc +EXPORT_SYMBOL_GPL vmlinux 0x68debf26 dw_pcie_own_conf_map_bus +EXPORT_SYMBOL_GPL vmlinux 0x68e0ddeb dm_audit_log_ti +EXPORT_SYMBOL_GPL vmlinux 0x68e9a2a0 set_selection_kernel +EXPORT_SYMBOL_GPL vmlinux 0x68ebac33 dm_copy_name_and_uuid +EXPORT_SYMBOL_GPL vmlinux 0x68ef1858 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x68f30a3e __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6908cfc7 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x690f585e phy_basic_ports_array +EXPORT_SYMBOL_GPL vmlinux 0x6913865a trace_clock_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x6914c1e4 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x6914d306 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x69305104 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x69381151 gmap_map_segment +EXPORT_SYMBOL_GPL vmlinux 0x69430629 platform_msi_domain_alloc_irqs +EXPORT_SYMBOL_GPL vmlinux 0x69637b2c __traceiter_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0x6977c540 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a2654 software_node_find_by_name +EXPORT_SYMBOL_GPL vmlinux 0x698b3e5c cgroup_get_from_path +EXPORT_SYMBOL_GPL vmlinux 0x69a73984 pci_generic_config_write32 +EXPORT_SYMBOL_GPL vmlinux 0x69cf0632 mpi_fromstr +EXPORT_SYMBOL_GPL vmlinux 0x69d0212c blk_mq_wait_quiesce_done +EXPORT_SYMBOL_GPL vmlinux 0x69d9f8c1 __tcp_send_ack +EXPORT_SYMBOL_GPL vmlinux 0x69e683de uuid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6a2dd8bc __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x6a453877 gpiochip_line_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x6a460dc5 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0x6a4f623b mmu_notifier_synchronize +EXPORT_SYMBOL_GPL vmlinux 0x6a7369b8 devm_kasprintf +EXPORT_SYMBOL_GPL vmlinux 0x6a73bf4b crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6aaf5c46 debugfs_create_devm_seqfile +EXPORT_SYMBOL_GPL vmlinux 0x6abfccfb __virtio_unbreak_device +EXPORT_SYMBOL_GPL vmlinux 0x6ac47487 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6ace25f5 firmware_request_nowarn +EXPORT_SYMBOL_GPL vmlinux 0x6acee083 devm_create_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0x6af5b455 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x6afe1d5a ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x6aff9474 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x6b00fc93 bpf_offload_dev_create +EXPORT_SYMBOL_GPL vmlinux 0x6b03cfdb get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x6b26b490 kernel_read_file_from_path_initns +EXPORT_SYMBOL_GPL vmlinux 0x6b2b69f7 static_key_enable +EXPORT_SYMBOL_GPL vmlinux 0x6b36e07d devlink_linecard_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6b3dac5d devm_serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x6b413c9b sfp_link_down +EXPORT_SYMBOL_GPL vmlinux 0x6b69dea8 crypto_register_acomps +EXPORT_SYMBOL_GPL vmlinux 0x6b703e74 pci_epc_start +EXPORT_SYMBOL_GPL vmlinux 0x6b967292 pcie_reset_flr +EXPORT_SYMBOL_GPL vmlinux 0x6baa828e devlink_health_reporter_create +EXPORT_SYMBOL_GPL vmlinux 0x6bb1d997 irqchip_fwnode_ops +EXPORT_SYMBOL_GPL vmlinux 0x6bcdedc0 mpi_point_init +EXPORT_SYMBOL_GPL vmlinux 0x6bd1aa56 stack_trace_save +EXPORT_SYMBOL_GPL vmlinux 0x6be2bb72 kernel_read_file_from_path +EXPORT_SYMBOL_GPL vmlinux 0x6be9e525 __irq_domain_alloc_fwnode +EXPORT_SYMBOL_GPL vmlinux 0x6bf02ac2 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x6bfd6785 wb_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x6c01f8b7 sysfs_groups_change_owner +EXPORT_SYMBOL_GPL vmlinux 0x6c3f70e0 guid_gen +EXPORT_SYMBOL_GPL vmlinux 0x6c4b39c4 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x6c5ad0cd kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0x6c698d33 kvm_vcpu_read_guest +EXPORT_SYMBOL_GPL vmlinux 0x6c7cfdb4 user_update +EXPORT_SYMBOL_GPL vmlinux 0x6c956075 __SCK__tp_func_devlink_hwerr +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cc7b413 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x6cd641f0 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0x6cd729e7 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x6cf20804 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x6cf76ff0 dst_cache_get +EXPORT_SYMBOL_GPL vmlinux 0x6cf8dc4f platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0x6d04228b blk_mq_freeze_queue_wait +EXPORT_SYMBOL_GPL vmlinux 0x6d09843f copy_bpf_fprog_from_user +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d47699c gpiod_unexport +EXPORT_SYMBOL_GPL vmlinux 0x6d5ce483 sfp_module_insert +EXPORT_SYMBOL_GPL vmlinux 0x6d6836ce __traceiter_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x6d6b6178 mmu_interval_notifier_insert_locked +EXPORT_SYMBOL_GPL vmlinux 0x6d6d74f2 public_key_signature_free +EXPORT_SYMBOL_GPL vmlinux 0x6d6fec1f ktime_mono_to_any +EXPORT_SYMBOL_GPL vmlinux 0x6d7832b7 __stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x6d7e951e rcu_exp_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x6d84c422 bpf_prog_get_type_dev +EXPORT_SYMBOL_GPL vmlinux 0x6d99181a bpf_map_inc_with_uref +EXPORT_SYMBOL_GPL vmlinux 0x6db94619 platform_get_mem_or_io +EXPORT_SYMBOL_GPL vmlinux 0x6dbaafd3 put_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6dd5680d sprint_symbol_build_id +EXPORT_SYMBOL_GPL vmlinux 0x6ded09e4 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x6e00fcfb modify_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0x6e09d93d __SCK__tp_func_map +EXPORT_SYMBOL_GPL vmlinux 0x6e3347ec devlink_priv +EXPORT_SYMBOL_GPL vmlinux 0x6e353c26 mpi_rshift +EXPORT_SYMBOL_GPL vmlinux 0x6e3c99a8 bpf_warn_invalid_xdp_action +EXPORT_SYMBOL_GPL vmlinux 0x6e59f821 __tracepoint_wbc_writepage +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e870f10 devm_gpiod_get_from_of_node +EXPORT_SYMBOL_GPL vmlinux 0x6e9a3f3e ip6_dst_lookup_tunnel +EXPORT_SYMBOL_GPL vmlinux 0x6eaefcd5 virtio_check_mem_acc_cb +EXPORT_SYMBOL_GPL vmlinux 0x6ebe366f ktime_get_mono_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ec7b94c gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x6ed28773 __traceiter_sched_cpu_capacity_tp +EXPORT_SYMBOL_GPL vmlinux 0x6ed446b9 component_del +EXPORT_SYMBOL_GPL vmlinux 0x6edf67d0 xdp_convert_zc_to_xdp_frame +EXPORT_SYMBOL_GPL vmlinux 0x6ee8c94b sfp_get_module_eeprom +EXPORT_SYMBOL_GPL vmlinux 0x6ef2b70d fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x6ef3b95c call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x6ef4259e fscrypt_set_test_dummy_encryption +EXPORT_SYMBOL_GPL vmlinux 0x6ef6b54f ktime_get_boot_fast_ns +EXPORT_SYMBOL_GPL vmlinux 0x6f0b5a96 blocking_notifier_call_chain_robust +EXPORT_SYMBOL_GPL vmlinux 0x6f12560a get_old_timespec32 +EXPORT_SYMBOL_GPL vmlinux 0x6f2017de misc_cg_set_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6f3e02fe blk_mq_alloc_request_hctx +EXPORT_SYMBOL_GPL vmlinux 0x6f3f24ba debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x6f48e095 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f523bd5 skcipher_alloc_instance_simple +EXPORT_SYMBOL_GPL vmlinux 0x6f683a71 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6f6b52e9 __ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x6f6d6b12 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6f7857a6 sysfs_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x6f7ada92 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x6f7cf0cb vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x6f7e6040 irq_has_action +EXPORT_SYMBOL_GPL vmlinux 0x6f9e763b timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x6faa2027 pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x6facad21 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x6fbcdf90 crypto_inst_setname +EXPORT_SYMBOL_GPL vmlinux 0x6fc6a016 pci_device_group +EXPORT_SYMBOL_GPL vmlinux 0x6fcef6ab ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0x6fde950a gpiod_export_link +EXPORT_SYMBOL_GPL vmlinux 0x6fe05a58 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x6ff46830 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7006586e iommu_get_group_resv_regions +EXPORT_SYMBOL_GPL vmlinux 0x70102315 devm_hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x70254356 crypto_alloc_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0x7073c04f phy_10_100_features_array +EXPORT_SYMBOL_GPL vmlinux 0x707d2807 ip6_datagram_connect_v6_only +EXPORT_SYMBOL_GPL vmlinux 0x709e68a5 fib_nl_delrule +EXPORT_SYMBOL_GPL vmlinux 0x70b2119a tty_port_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x70c2c7ea pids_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x70c3a5b9 debugfs_read_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x70c52dc5 nf_skb_duplicated +EXPORT_SYMBOL_GPL vmlinux 0x70d134cc devm_free_pages +EXPORT_SYMBOL_GPL vmlinux 0x70d81282 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x70f89d53 rsa_parse_priv_key +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7114e45a pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x711b3aea perf_aux_output_begin +EXPORT_SYMBOL_GPL vmlinux 0x712ee398 ccw_device_siosl +EXPORT_SYMBOL_GPL vmlinux 0x71321580 nfnl_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x7133b426 balloon_aops +EXPORT_SYMBOL_GPL vmlinux 0x715a43ce priv_to_devlink +EXPORT_SYMBOL_GPL vmlinux 0x715dbc3c trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7172c5e8 iommu_page_response +EXPORT_SYMBOL_GPL vmlinux 0x71794c8f __traceiter_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0x7179c31c zpci_iomap_start +EXPORT_SYMBOL_GPL vmlinux 0x71a20f4a __SCK__tp_func_non_standard_event +EXPORT_SYMBOL_GPL vmlinux 0x71a64223 blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x71b15008 lwtunnel_valid_encap_type +EXPORT_SYMBOL_GPL vmlinux 0x71b6cf94 dst_cache_reset_now +EXPORT_SYMBOL_GPL vmlinux 0x71db9f1c devm_blk_crypto_profile_init +EXPORT_SYMBOL_GPL vmlinux 0x71f69a66 software_node_unregister +EXPORT_SYMBOL_GPL vmlinux 0x720392e5 blk_crypto_profile_destroy +EXPORT_SYMBOL_GPL vmlinux 0x720dfa1f regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x7213e51a bus_register +EXPORT_SYMBOL_GPL vmlinux 0x7222e48c tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x7223aa50 shash_free_singlespawn_instance +EXPORT_SYMBOL_GPL vmlinux 0x7251a59b fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x7259a120 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x725a4f45 gpiod_get +EXPORT_SYMBOL_GPL vmlinux 0x7262702b sfp_get_module_eeprom_by_page +EXPORT_SYMBOL_GPL vmlinux 0x7265f2b0 pci_vpd_check_csum +EXPORT_SYMBOL_GPL vmlinux 0x7274f083 dax_add_host +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7283161b percpu_ref_switch_to_percpu +EXPORT_SYMBOL_GPL vmlinux 0x72a41a35 md_account_bio +EXPORT_SYMBOL_GPL vmlinux 0x72ba744a dax_finish_sync_fault +EXPORT_SYMBOL_GPL vmlinux 0x72ba891d ncsi_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x72e7f717 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x72edf918 __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x72f70145 devlink_port_type_ib_set +EXPORT_SYMBOL_GPL vmlinux 0x7330f70b receive_fd +EXPORT_SYMBOL_GPL vmlinux 0x7351fcb1 devlink_remote_reload_actions_performed +EXPORT_SYMBOL_GPL vmlinux 0x7362a859 dax_layout_busy_page +EXPORT_SYMBOL_GPL vmlinux 0x738ebd1a component_release_of +EXPORT_SYMBOL_GPL vmlinux 0x738ed724 pci_create_root_bus +EXPORT_SYMBOL_GPL vmlinux 0x739d5e53 __traceiter_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0x73a9e7a3 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x73c93090 rhashtable_insert_slow +EXPORT_SYMBOL_GPL vmlinux 0x73cc8631 oiap +EXPORT_SYMBOL_GPL vmlinux 0x73e426a7 kthread_cancel_delayed_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x74070b79 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x740d3428 device_for_each_child_reverse +EXPORT_SYMBOL_GPL vmlinux 0x74201852 l3mdev_table_lookup_register +EXPORT_SYMBOL_GPL vmlinux 0x74338162 switchdev_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0x743d5148 gpiochip_line_is_irq +EXPORT_SYMBOL_GPL vmlinux 0x745dcf50 srcu_torture_stats_print +EXPORT_SYMBOL_GPL vmlinux 0x74659979 device_remove_file_self +EXPORT_SYMBOL_GPL vmlinux 0x74680384 virtio_max_dma_size +EXPORT_SYMBOL_GPL vmlinux 0x7471447b class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x748af83e debugfs_file_put +EXPORT_SYMBOL_GPL vmlinux 0x74ac2304 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x74b5ea68 lcm_not_zero +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74d91942 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0x74e73871 housekeeping_overridden +EXPORT_SYMBOL_GPL vmlinux 0x74f4fba2 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x750d1b88 sk_psock_tls_strp_read +EXPORT_SYMBOL_GPL vmlinux 0x75186fd5 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7534d2bb devm_krealloc +EXPORT_SYMBOL_GPL vmlinux 0x753d8042 __traceiter_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x7554b896 zs_huge_class_size +EXPORT_SYMBOL_GPL vmlinux 0x7578c58a devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x757c1bbb housekeeping_any_cpu +EXPORT_SYMBOL_GPL vmlinux 0x757d8b8a filemap_range_has_writeback +EXPORT_SYMBOL_GPL vmlinux 0x75811867 fwnode_graph_get_port_parent +EXPORT_SYMBOL_GPL vmlinux 0x7586ac4c netif_carrier_event +EXPORT_SYMBOL_GPL vmlinux 0x75957046 folio_wait_stable +EXPORT_SYMBOL_GPL vmlinux 0x75a9c287 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x75b922a4 zpci_kvm_hook +EXPORT_SYMBOL_GPL vmlinux 0x75c37e35 bio_trim +EXPORT_SYMBOL_GPL vmlinux 0x75e51945 __SCK__tp_func_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0x75e9c735 pci_ats_disabled +EXPORT_SYMBOL_GPL vmlinux 0x75edf7b3 copy_from_kernel_nofault +EXPORT_SYMBOL_GPL vmlinux 0x7609b95e blk_mark_disk_dead +EXPORT_SYMBOL_GPL vmlinux 0x76178496 is_software_node +EXPORT_SYMBOL_GPL vmlinux 0x762f1da3 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x763fefcd device_match_of_node +EXPORT_SYMBOL_GPL vmlinux 0x764fa122 component_master_add_with_match +EXPORT_SYMBOL_GPL vmlinux 0x764ffefa page_reporting_register +EXPORT_SYMBOL_GPL vmlinux 0x7660c62e crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x76780279 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x768750f0 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x769cefb5 percpu_ref_switch_to_atomic +EXPORT_SYMBOL_GPL vmlinux 0x76ad12bf md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x76db5b28 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x76eeeb0f sha384_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x76f54d6c __cpuhp_state_add_instance +EXPORT_SYMBOL_GPL vmlinux 0x76f9eeb5 devlink_port_register +EXPORT_SYMBOL_GPL vmlinux 0x77189bb9 param_set_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0x774f16ef __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x7764b6f3 devm_pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x776eca24 ptp_msg_is_sync +EXPORT_SYMBOL_GPL vmlinux 0x77711b4d nf_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x777c2266 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x777d74d2 crypto_unregister_scomps +EXPORT_SYMBOL_GPL vmlinux 0x7791e066 dw_pcie_read +EXPORT_SYMBOL_GPL vmlinux 0x779a339f PageHeadHuge +EXPORT_SYMBOL_GPL vmlinux 0x77c462be pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x77cbcd00 crypto_alloc_acomp_node +EXPORT_SYMBOL_GPL vmlinux 0x77cddbdc crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x77e75be3 sfp_bus_put +EXPORT_SYMBOL_GPL vmlinux 0x77ecf68d memalloc_socks_key +EXPORT_SYMBOL_GPL vmlinux 0x78041b8f byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x78176ba1 devlink_param_unregister +EXPORT_SYMBOL_GPL vmlinux 0x781a2471 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x7823eaa5 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7829c15a __vfs_setxattr_locked +EXPORT_SYMBOL_GPL vmlinux 0x7832125d uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0x7834c019 phy_10gbit_full_features +EXPORT_SYMBOL_GPL vmlinux 0x784bfd91 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x7856caf2 ptep_notify +EXPORT_SYMBOL_GPL vmlinux 0x7857f13e init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x785a93b4 si_mem_available +EXPORT_SYMBOL_GPL vmlinux 0x785f4d38 debugfs_write_file_bool +EXPORT_SYMBOL_GPL vmlinux 0x786b166e gpiochip_populate_parent_fwspec_fourcell +EXPORT_SYMBOL_GPL vmlinux 0x787e66eb devlink_params_unregister +EXPORT_SYMBOL_GPL vmlinux 0x788bfbad ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0x78949b1b find_extend_vma +EXPORT_SYMBOL_GPL vmlinux 0x789c73d9 rcu_cpu_stall_suppress_at_boot +EXPORT_SYMBOL_GPL vmlinux 0x78a75227 irq_chip_set_parent_state +EXPORT_SYMBOL_GPL vmlinux 0x78ac4e0b bdev_discard_alignment +EXPORT_SYMBOL_GPL vmlinux 0x78b0d872 devl_port_register +EXPORT_SYMBOL_GPL vmlinux 0x78c30e70 gmap_get +EXPORT_SYMBOL_GPL vmlinux 0x78d1d908 iomap_dio_bio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x78f334f3 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x78fca451 crypto_alg_extsize +EXPORT_SYMBOL_GPL vmlinux 0x791f953f register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x7926740c devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x7928606d ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x792add82 pci_platform_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x792d1816 kthread_unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x79323767 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79470a2c TSS_authhmac +EXPORT_SYMBOL_GPL vmlinux 0x794738ba dax_remove_host +EXPORT_SYMBOL_GPL vmlinux 0x794b7271 orderly_reboot +EXPORT_SYMBOL_GPL vmlinux 0x799f26d9 fixed_phy_register_with_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x79b5a328 ccw_device_get_cssid +EXPORT_SYMBOL_GPL vmlinux 0x79c3fbfe skb_mpls_update_lse +EXPORT_SYMBOL_GPL vmlinux 0x79cf8162 sysfs_create_mount_point +EXPORT_SYMBOL_GPL vmlinux 0x79d963f2 vp_legacy_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0x79defbe1 kthread_should_park +EXPORT_SYMBOL_GPL vmlinux 0x79e1cddc cio_tm_start_key +EXPORT_SYMBOL_GPL vmlinux 0x7a10d0ad fscrypt_set_context +EXPORT_SYMBOL_GPL vmlinux 0x7a124031 pci_try_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x7a5f6927 kthread_mod_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x7a671c19 blk_crypto_intersect_capabilities +EXPORT_SYMBOL_GPL vmlinux 0x7a6a6161 dm_start_time_ns_from_clone +EXPORT_SYMBOL_GPL vmlinux 0x7a701ec8 skb_gso_validate_mac_len +EXPORT_SYMBOL_GPL vmlinux 0x7a81541b async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a9b0f72 relay_close +EXPORT_SYMBOL_GPL vmlinux 0x7a9e2ff2 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x7aa2be70 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0x7aa61950 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x7ab03446 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x7ab55488 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x7abb465a bpf_prog_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7ac0ff99 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ac722bd phy_all_ports_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7ad02a41 asn1_encode_tag +EXPORT_SYMBOL_GPL vmlinux 0x7ad30a82 smp_yield_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ae16380 s390_reset_acc +EXPORT_SYMBOL_GPL vmlinux 0x7ae338b1 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x7af835a1 gmap_fault +EXPORT_SYMBOL_GPL vmlinux 0x7afd3e8a task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x7afe324e halt_poll_ns_grow +EXPORT_SYMBOL_GPL vmlinux 0x7b4785a8 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x7b524c91 locks_owner_has_blockers +EXPORT_SYMBOL_GPL vmlinux 0x7b5a4926 sha1_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x7b7403cf pin_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x7b8910f4 kfence_sample_interval +EXPORT_SYMBOL_GPL vmlinux 0x7b9650c8 phy_start_machine +EXPORT_SYMBOL_GPL vmlinux 0x7b9793a2 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x7ba43b77 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7bb045a7 __request_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x7bb30b7b akcipher_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x7bbc4161 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x7bc0dc93 nfs42_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x7be224da blkg_rwstat_exit +EXPORT_SYMBOL_GPL vmlinux 0x7befe1fa virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x7bfe7e9b badblocks_clear +EXPORT_SYMBOL_GPL vmlinux 0x7c291e86 show_rcu_tasks_trace_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0x7c2a0293 kthread_cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x7c2d392d trace_seq_bprintf +EXPORT_SYMBOL_GPL vmlinux 0x7c35e60a stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x7c50361e page_endio +EXPORT_SYMBOL_GPL vmlinux 0x7c59d1d9 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x7c8943eb crypto_stats_akcipher_decrypt +EXPORT_SYMBOL_GPL vmlinux 0x7c914a35 perf_pmu_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c94c99a kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x7cab59f2 gmap_pmdp_invalidate +EXPORT_SYMBOL_GPL vmlinux 0x7cb168ae devm_regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7cb1aea1 devlink_dpipe_header_ethernet +EXPORT_SYMBOL_GPL vmlinux 0x7cceaf92 zs_pool_stats +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d01160b debugfs_file_get +EXPORT_SYMBOL_GPL vmlinux 0x7d1b27e6 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d1dc8cc pci_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0x7d293c45 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7d296505 dma_resv_describe +EXPORT_SYMBOL_GPL vmlinux 0x7d966305 __inode_attach_wb +EXPORT_SYMBOL_GPL vmlinux 0x7da21d9c pci_epc_destroy +EXPORT_SYMBOL_GPL vmlinux 0x7db9e78d splice_to_pipe +EXPORT_SYMBOL_GPL vmlinux 0x7dca4e2e pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x7dccbaab devres_find +EXPORT_SYMBOL_GPL vmlinux 0x7dda30af unregister_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7de39e07 phy_basic_t1_features_array +EXPORT_SYMBOL_GPL vmlinux 0x7de6cc23 io_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0x7de7bb20 kvm_make_all_cpus_request +EXPORT_SYMBOL_GPL vmlinux 0x7df02783 __auxiliary_device_add +EXPORT_SYMBOL_GPL vmlinux 0x7df31162 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x7e15142f evict_inodes +EXPORT_SYMBOL_GPL vmlinux 0x7e153342 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x7e1e3623 irq_domain_translate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x7e282e0a pci_generic_config_read +EXPORT_SYMBOL_GPL vmlinux 0x7e3bdecd __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0x7e43cc04 l3mdev_ifindex_lookup_by_table_id +EXPORT_SYMBOL_GPL vmlinux 0x7e46f298 find_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0x7e52cab0 ccw_device_get_schid +EXPORT_SYMBOL_GPL vmlinux 0x7e54fa3e pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x7e63e12c tcp_bpf_sendmsg_redir +EXPORT_SYMBOL_GPL vmlinux 0x7e79934f inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x7e7d17b1 filemap_read +EXPORT_SYMBOL_GPL vmlinux 0x7e7e3f58 ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7e7f8573 dev_queue_xmit_nit +EXPORT_SYMBOL_GPL vmlinux 0x7e917894 __SCK__tp_func_unmap +EXPORT_SYMBOL_GPL vmlinux 0x7e9dfea7 nf_checksum_partial +EXPORT_SYMBOL_GPL vmlinux 0x7eb1795e __tracepoint_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0x7eb6991b pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x7eb808d0 add_cpu +EXPORT_SYMBOL_GPL vmlinux 0x7ecbba00 simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x7edbb09e iomap_writepages +EXPORT_SYMBOL_GPL vmlinux 0x7edfdb92 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ef49e92 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x7ef8eb8d sbitmap_del_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x7f00bdac devlink_resource_register +EXPORT_SYMBOL_GPL vmlinux 0x7f0ca326 sk_psock_msg_verdict +EXPORT_SYMBOL_GPL vmlinux 0x7f291183 xas_store +EXPORT_SYMBOL_GPL vmlinux 0x7f4d73d8 phy_driver_is_genphy_10g +EXPORT_SYMBOL_GPL vmlinux 0x7f5260b4 vp_legacy_get_status +EXPORT_SYMBOL_GPL vmlinux 0x7f557586 badblocks_init +EXPORT_SYMBOL_GPL vmlinux 0x7f7cbc64 ip_tunnel_need_metadata +EXPORT_SYMBOL_GPL vmlinux 0x7f7e47ee virtio_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7f84f35d rcu_gp_slow_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f9e4497 pci_epc_add_epf +EXPORT_SYMBOL_GPL vmlinux 0x7fac6aab gpiod_get_index_optional +EXPORT_SYMBOL_GPL vmlinux 0x7fc147e5 inet_send_prepare +EXPORT_SYMBOL_GPL vmlinux 0x7ff26b53 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x80044796 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x80097a17 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x8015fa90 mmu_interval_notifier_insert +EXPORT_SYMBOL_GPL vmlinux 0x80265424 __synth_event_gen_cmd_start +EXPORT_SYMBOL_GPL vmlinux 0x80300fae __list_lru_init +EXPORT_SYMBOL_GPL vmlinux 0x80510a10 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x806807b1 vp_modern_generation +EXPORT_SYMBOL_GPL vmlinux 0x807fdcc4 call_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80badff4 __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80be4104 disk_force_media_change +EXPORT_SYMBOL_GPL vmlinux 0x80c68137 nf_log_buf_close +EXPORT_SYMBOL_GPL vmlinux 0x80c6e620 blk_mq_update_nr_hw_queues +EXPORT_SYMBOL_GPL vmlinux 0x80c8af2d page_cache_async_ra +EXPORT_SYMBOL_GPL vmlinux 0x80c993df fuse_dev_free +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80e2b9b6 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x80ec05d8 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x80fb44b1 software_node_register_node_group +EXPORT_SYMBOL_GPL vmlinux 0x812ea476 trace_seq_bitmask +EXPORT_SYMBOL_GPL vmlinux 0x815fda83 sed_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x816aade8 vtime_account_kernel +EXPORT_SYMBOL_GPL vmlinux 0x8180cede asn1_encode_sequence +EXPORT_SYMBOL_GPL vmlinux 0x81a7f541 percpu_ref_init +EXPORT_SYMBOL_GPL vmlinux 0x81a9a62d list_lru_walk_one +EXPORT_SYMBOL_GPL vmlinux 0x81dc3a23 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x81e2bdf4 generic_handle_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x81f372a2 unregister_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x82083bb9 kthread_park +EXPORT_SYMBOL_GPL vmlinux 0x8239c618 tpm_chip_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8255f9d5 lwtunnel_build_state +EXPORT_SYMBOL_GPL vmlinux 0x82682443 trace_remove_event_call +EXPORT_SYMBOL_GPL vmlinux 0x82800630 vp_modern_get_status +EXPORT_SYMBOL_GPL vmlinux 0x8281f3fe dynevent_create +EXPORT_SYMBOL_GPL vmlinux 0x82a29804 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x82a80545 __SCK__tp_func_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x82bbf30b __tracepoint_map +EXPORT_SYMBOL_GPL vmlinux 0x82cfa434 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x82d02309 vp_modern_get_num_queues +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82d80aa2 bpf_trace_run4 +EXPORT_SYMBOL_GPL vmlinux 0x83168909 ccw_device_pnso +EXPORT_SYMBOL_GPL vmlinux 0x832dcedc pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x8339df73 klist_add_behind +EXPORT_SYMBOL_GPL vmlinux 0x83857b16 hwrng_msleep +EXPORT_SYMBOL_GPL vmlinux 0x8393eaa2 device_find_child_by_name +EXPORT_SYMBOL_GPL vmlinux 0x83aa84da ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x83c09fd7 xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x83d991d4 crypto_unregister_aead +EXPORT_SYMBOL_GPL vmlinux 0x83fc8a89 cgroup_get_from_fd +EXPORT_SYMBOL_GPL vmlinux 0x84106f36 devlink_trap_ctx_priv +EXPORT_SYMBOL_GPL vmlinux 0x8420a787 ethnl_cable_test_alloc +EXPORT_SYMBOL_GPL vmlinux 0x84264ced fs_umode_to_ftype +EXPORT_SYMBOL_GPL vmlinux 0x84502a47 blk_status_to_errno +EXPORT_SYMBOL_GPL vmlinux 0x845dbf3b scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x847828b4 kvm_read_guest_offset_cached +EXPORT_SYMBOL_GPL vmlinux 0x84904343 __iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x84b0e2db list_lru_count_one +EXPORT_SYMBOL_GPL vmlinux 0x84ba4455 fwnode_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x84badd37 irq_domain_create_legacy +EXPORT_SYMBOL_GPL vmlinux 0x84e566be serdev_device_open +EXPORT_SYMBOL_GPL vmlinux 0x84e88188 dst_cache_set_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x8500a5d6 elv_rqhash_add +EXPORT_SYMBOL_GPL vmlinux 0x850bb6db devlink_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x850e3d31 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x851fe124 __SCK__tp_func_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x85270bad bpf_trace_run9 +EXPORT_SYMBOL_GPL vmlinux 0x853208a1 crypto_stats_kpp_generate_public_key +EXPORT_SYMBOL_GPL vmlinux 0x8534c85f s390_reset_cmma +EXPORT_SYMBOL_GPL vmlinux 0x85a2d4c2 sbitmap_init_node +EXPORT_SYMBOL_GPL vmlinux 0x85abf71f regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x85cbbeb3 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x85d6326a posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x85ef22f1 __nf_ip6_route +EXPORT_SYMBOL_GPL vmlinux 0x85f9ec76 disk_update_readahead +EXPORT_SYMBOL_GPL vmlinux 0x860dab33 wbt_enable_default +EXPORT_SYMBOL_GPL vmlinux 0x861a7a70 fscrypt_dummy_policies_equal +EXPORT_SYMBOL_GPL vmlinux 0x861f67a1 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x862258db timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x863555f0 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x864011ba tpm2_get_cc_attrs_tbl +EXPORT_SYMBOL_GPL vmlinux 0x86516581 raw_v4_match +EXPORT_SYMBOL_GPL vmlinux 0x86585a33 devlink_fmsg_obj_nest_start +EXPORT_SYMBOL_GPL vmlinux 0x86755738 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x8677245d unregister_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0x867b1dd5 device_iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0x867ef109 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x869376bf watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x86948426 vp_legacy_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0x86a442c1 pci_epf_bind +EXPORT_SYMBOL_GPL vmlinux 0x86b0b6ba zpci_barrier +EXPORT_SYMBOL_GPL vmlinux 0x86b666d7 crypto_register_aead +EXPORT_SYMBOL_GPL vmlinux 0x86c5baf7 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x86cf30cd fib_rules_seq_read +EXPORT_SYMBOL_GPL vmlinux 0x86d083a8 dst_blackhole_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x86d3b4fb mddev_init_writes_pending +EXPORT_SYMBOL_GPL vmlinux 0x86dda6ef rtm_getroute_parse_ip_proto +EXPORT_SYMBOL_GPL vmlinux 0x86f3ecbf register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f73647 nfs_ssc_register +EXPORT_SYMBOL_GPL vmlinux 0x86f85114 net_dec_egress_queue +EXPORT_SYMBOL_GPL vmlinux 0x8725ddfd gpio_to_desc +EXPORT_SYMBOL_GPL vmlinux 0x875e0193 dst_cache_get_ip4 +EXPORT_SYMBOL_GPL vmlinux 0x875efca6 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x876a03a1 component_add_typed +EXPORT_SYMBOL_GPL vmlinux 0x8772b95b cio_commit_config +EXPORT_SYMBOL_GPL vmlinux 0x87754681 ipv6_proxy_select_ident +EXPORT_SYMBOL_GPL vmlinux 0x877b5b51 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x87a6566e devlink_port_attrs_pci_pf_set +EXPORT_SYMBOL_GPL vmlinux 0x87bc3cd5 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x87da14cd devm_regmap_field_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x87f8ec62 iommu_device_unlink +EXPORT_SYMBOL_GPL vmlinux 0x881ce2f5 dax_recovery_write +EXPORT_SYMBOL_GPL vmlinux 0x8830d3f4 phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0x88376423 strp_unpause +EXPORT_SYMBOL_GPL vmlinux 0x88476f9f devl_lock +EXPORT_SYMBOL_GPL vmlinux 0x885528a6 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x88841403 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x8892a2f1 fsnotify_put_group +EXPORT_SYMBOL_GPL vmlinux 0x88a84404 dw_pcie_ep_reset_bar +EXPORT_SYMBOL_GPL vmlinux 0x88ab0f3d fscrypt_fname_siphash +EXPORT_SYMBOL_GPL vmlinux 0x88b4ae92 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x88da1e50 platform_set +EXPORT_SYMBOL_GPL vmlinux 0x88da9674 ethnl_cable_test_free +EXPORT_SYMBOL_GPL vmlinux 0x88dc3a08 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x8904cf00 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x890c2c35 devm_gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x8917cf15 devl_port_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8924a14a follow_pte +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x893273d0 vp_modern_get_queue_size +EXPORT_SYMBOL_GPL vmlinux 0x893abbdd devlink_fmsg_u32_pair_put +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x894912e7 pci_probe_reset_slot +EXPORT_SYMBOL_GPL vmlinux 0x8954dc8e __SCK__tp_func_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0x895d8d2d udp4_hwcsum +EXPORT_SYMBOL_GPL vmlinux 0x8960e189 genphy_c45_read_mdix +EXPORT_SYMBOL_GPL vmlinux 0x8964a2b7 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x898bcd2b sock_map_close +EXPORT_SYMBOL_GPL vmlinux 0x89b60306 blk_steal_bios +EXPORT_SYMBOL_GPL vmlinux 0x89bec8b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x89c429e4 __tracepoint_mc_event +EXPORT_SYMBOL_GPL vmlinux 0x89cb16e1 blk_mq_freeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x89ea5521 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0x8a47d2e4 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x8a556f75 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8a615a20 __kprobe_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0x8a62b81b sfp_upstream_stop +EXPORT_SYMBOL_GPL vmlinux 0x8a63bf7a gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x8a66cd97 phy_save_page +EXPORT_SYMBOL_GPL vmlinux 0x8a83fb45 mpi_point_free_parts +EXPORT_SYMBOL_GPL vmlinux 0x8a868e92 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x8a98fe22 scsi_check_sense +EXPORT_SYMBOL_GPL vmlinux 0x8a9a9cf0 iomap_bmap +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac41918 event_triggers_call +EXPORT_SYMBOL_GPL vmlinux 0x8ac87913 tpm_chip_start +EXPORT_SYMBOL_GPL vmlinux 0x8ad23f24 folio_wait_writeback +EXPORT_SYMBOL_GPL vmlinux 0x8ad3942a scsi_host_complete_all_commands +EXPORT_SYMBOL_GPL vmlinux 0x8afe95f5 fwnode_get_named_gpiod +EXPORT_SYMBOL_GPL vmlinux 0x8b2f2c25 __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8b3792aa srcutorture_get_gp_data +EXPORT_SYMBOL_GPL vmlinux 0x8b7a698b __tracepoint_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0x8b9eefcd crypto_unregister_ahashes +EXPORT_SYMBOL_GPL vmlinux 0x8bad4ff4 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x8bceabde pci_debug_msg_id +EXPORT_SYMBOL_GPL vmlinux 0x8bded20f zpci_load +EXPORT_SYMBOL_GPL vmlinux 0x8bfdc177 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x8c03c419 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c0ed103 rcu_check_boost_fail +EXPORT_SYMBOL_GPL vmlinux 0x8c23c054 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x8c47afca idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8c577943 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x8c6341fc umd_load_blob +EXPORT_SYMBOL_GPL vmlinux 0x8c645590 pci_epc_set_msi +EXPORT_SYMBOL_GPL vmlinux 0x8c6882e1 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x8c98d248 unregister_vmcore_cb +EXPORT_SYMBOL_GPL vmlinux 0x8cab7cdb dst_cache_get_ip6 +EXPORT_SYMBOL_GPL vmlinux 0x8cb26b6e tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x8cb500bb raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x8ce042f3 tcp_leave_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0x8ce2d446 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x8d0abf3a __tracepoint_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0x8d1951bc __traceiter_sched_util_est_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d3292f5 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x8d3330b6 cpuacct_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0x8d70ce98 blk_mq_alloc_sq_tag_set +EXPORT_SYMBOL_GPL vmlinux 0x8dafdded lwtunnel_valid_encap_type_attr +EXPORT_SYMBOL_GPL vmlinux 0x8db1121e __ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x8dbea0f6 bio_start_io_acct +EXPORT_SYMBOL_GPL vmlinux 0x8de610bb fsnotify_put_mark +EXPORT_SYMBOL_GPL vmlinux 0x8dea6a65 md_run +EXPORT_SYMBOL_GPL vmlinux 0x8dffde40 crypto_register_kpp +EXPORT_SYMBOL_GPL vmlinux 0x8e093c34 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x8e215273 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x8e257566 serdev_controller_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8e2dfb04 sbitmap_queue_wake_all +EXPORT_SYMBOL_GPL vmlinux 0x8e44823a sfp_select_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e4eb451 bpf_sk_storage_diag_free +EXPORT_SYMBOL_GPL vmlinux 0x8e6b1a9e net_selftest_get_count +EXPORT_SYMBOL_GPL vmlinux 0x8e92f7c4 static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x8ea624cb nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x8eba960f dma_resv_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x8ec11d01 kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0x8edfe171 gpiod_direction_output_raw +EXPORT_SYMBOL_GPL vmlinux 0x8ee654a0 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8eec19bd __SCK__tp_func_pelt_dl_tp +EXPORT_SYMBOL_GPL vmlinux 0x8eee3399 dax_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8ef0330d gpiod_set_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8f0748af rcu_expedite_gp +EXPORT_SYMBOL_GPL vmlinux 0x8f26638f bdev_disk_changed +EXPORT_SYMBOL_GPL vmlinux 0x8f51be1b sbitmap_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x8f545bd1 ext_pi_type1_crc64 +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 0x8f9d3467 iomap_swapfile_activate +EXPORT_SYMBOL_GPL vmlinux 0x8f9f3652 sk_msg_return +EXPORT_SYMBOL_GPL vmlinux 0x8fbbb122 devm_ioremap_uc +EXPORT_SYMBOL_GPL vmlinux 0x8fd8193e crypto_enqueue_request_head +EXPORT_SYMBOL_GPL vmlinux 0x8ff4a682 dev_fetch_sw_netstats +EXPORT_SYMBOL_GPL vmlinux 0x8ff60436 mpi_ec_add_points +EXPORT_SYMBOL_GPL vmlinux 0x8ff7ea2f devlink_region_snapshot_id_get +EXPORT_SYMBOL_GPL vmlinux 0x8ffe792f tracepoint_probe_register_prio_may_exist +EXPORT_SYMBOL_GPL vmlinux 0x903b627c list_lru_isolate_move +EXPORT_SYMBOL_GPL vmlinux 0x90412ada bpfilter_ops +EXPORT_SYMBOL_GPL vmlinux 0x90651683 gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x90653d38 tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x90688bcd devlink_info_driver_name_put +EXPORT_SYMBOL_GPL vmlinux 0x907a962b vp_modern_set_features +EXPORT_SYMBOL_GPL vmlinux 0x9087a3c4 dw_pcie_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x9087aa75 __ndisc_fill_addr_option +EXPORT_SYMBOL_GPL vmlinux 0x908c30db dma_resv_get_fences +EXPORT_SYMBOL_GPL vmlinux 0x908e582f xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x909a8abf nr_running +EXPORT_SYMBOL_GPL vmlinux 0x909fda42 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x90d937b4 __tracepoint_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0x90dcfd53 list_lru_add +EXPORT_SYMBOL_GPL vmlinux 0x90ea5aca skb_zerocopy_iter_stream +EXPORT_SYMBOL_GPL vmlinux 0x9103c963 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x911bd896 regmap_get_device +EXPORT_SYMBOL_GPL vmlinux 0x9121969d dm_internal_resume_fast +EXPORT_SYMBOL_GPL vmlinux 0x913ebd32 stack_depot_save +EXPORT_SYMBOL_GPL vmlinux 0x9156dfde pin_user_pages_fast_only +EXPORT_SYMBOL_GPL vmlinux 0x9168c83f tpm2_get_tpm_pt +EXPORT_SYMBOL_GPL vmlinux 0x91703da3 fwnode_handle_get +EXPORT_SYMBOL_GPL vmlinux 0x918e4644 blk_mq_sched_try_merge +EXPORT_SYMBOL_GPL vmlinux 0x91955a9f start_poll_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0x91a16e3d skcipher_walk_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0x91b774a1 mpi_scanval +EXPORT_SYMBOL_GPL vmlinux 0x91cbf751 gmap_pmdp_idte_global +EXPORT_SYMBOL_GPL vmlinux 0x91e4f08a synth_event_trace_start +EXPORT_SYMBOL_GPL vmlinux 0x91ea8726 asn1_encode_boolean +EXPORT_SYMBOL_GPL vmlinux 0x92074e3d irq_domain_translate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x920825cf shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x921f51a0 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x922c4874 __scsi_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x92302c65 skcipher_walk_async +EXPORT_SYMBOL_GPL vmlinux 0x923efa1a ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9241b358 __static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x925059e4 synth_event_gen_cmd_array_start +EXPORT_SYMBOL_GPL vmlinux 0x9261d1cb gen10g_config_aneg +EXPORT_SYMBOL_GPL vmlinux 0x92ab908a irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92db8f68 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x92e260e6 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x92e29175 fib6_check_nexthop +EXPORT_SYMBOL_GPL vmlinux 0x92e8e9ab fsverity_enqueue_verify_work +EXPORT_SYMBOL_GPL vmlinux 0x93185dfb fscrypt_file_open +EXPORT_SYMBOL_GPL vmlinux 0x93255b2b ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x932afdea perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0x933c5254 pci_find_vsec_capability +EXPORT_SYMBOL_GPL vmlinux 0x935464eb register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x9358b9a4 mptcp_pm_get_subflows_max +EXPORT_SYMBOL_GPL vmlinux 0x9364881b mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x936a9ead desc_to_gpio +EXPORT_SYMBOL_GPL vmlinux 0x936c7caf perf_trace_buf_alloc +EXPORT_SYMBOL_GPL vmlinux 0x93746f11 devlink_alloc_ns +EXPORT_SYMBOL_GPL vmlinux 0x937a92af securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x938c1d23 strp_check_rcv +EXPORT_SYMBOL_GPL vmlinux 0x93bad9c3 cio_cancel +EXPORT_SYMBOL_GPL vmlinux 0x93bb9846 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x93cee9a9 fwnode_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0x93d4e0aa iommu_set_pgtable_quirks +EXPORT_SYMBOL_GPL vmlinux 0x93edef07 devlink_health_report +EXPORT_SYMBOL_GPL vmlinux 0x93f85010 unwind_next_frame +EXPORT_SYMBOL_GPL vmlinux 0x93f8b8e6 fb_deferred_io_mmap +EXPORT_SYMBOL_GPL vmlinux 0x940ca141 trace_array_destroy +EXPORT_SYMBOL_GPL vmlinux 0x941e03fa cio_clear +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x94274ed1 metadata_dst_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x9430b198 trace_dump_stack +EXPORT_SYMBOL_GPL vmlinux 0x9436e405 memory_group_register_dynamic +EXPORT_SYMBOL_GPL vmlinux 0x9436e93e blk_crypto_reprogram_all_keys +EXPORT_SYMBOL_GPL vmlinux 0x9468ea70 schedule_hrtimeout_range_clock +EXPORT_SYMBOL_GPL vmlinux 0x946c0028 devlink_unregister +EXPORT_SYMBOL_GPL vmlinux 0x946dd559 sha224_zero_message_hash +EXPORT_SYMBOL_GPL vmlinux 0x947009fa pcie_aspm_capable +EXPORT_SYMBOL_GPL vmlinux 0x94746335 init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0x949b5176 devlink_region_snapshot_create +EXPORT_SYMBOL_GPL vmlinux 0x949bc32c get_state_synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x94ae6ad2 simple_attr_write_signed +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x95020c68 msg_zerocopy_realloc +EXPORT_SYMBOL_GPL vmlinux 0x9504df26 irq_wake_thread +EXPORT_SYMBOL_GPL vmlinux 0x951a2773 crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x953e1b9e ktime_get_real_seconds +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x9568f0bb __bio_add_page +EXPORT_SYMBOL_GPL vmlinux 0x956ac400 ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x95801fa1 __pci_epc_create +EXPORT_SYMBOL_GPL vmlinux 0x95843030 mpi_ec_init +EXPORT_SYMBOL_GPL vmlinux 0x95887c24 validate_xmit_skb_list +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593ef31 register_ftrace_export +EXPORT_SYMBOL_GPL vmlinux 0x95a15f43 sk_msg_free_nocharge +EXPORT_SYMBOL_GPL vmlinux 0x95a49194 user_preparse +EXPORT_SYMBOL_GPL vmlinux 0x95a81fd2 fwnode_find_reference +EXPORT_SYMBOL_GPL vmlinux 0x95a87c01 disk_set_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0x95ac75df device_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0x95b06499 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x95c8e03d fib_nh_common_init +EXPORT_SYMBOL_GPL vmlinux 0x95e102ab tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0x95ed3a9c ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x96031776 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x961286e0 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x962926eb pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0x962b5435 tty_release_struct +EXPORT_SYMBOL_GPL vmlinux 0x96344459 phy_restore_page +EXPORT_SYMBOL_GPL vmlinux 0x963eea62 __traceiter_fdb_delete +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x965811e0 device_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0x9678de87 __traceiter_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x96967099 mmput +EXPORT_SYMBOL_GPL vmlinux 0x969b9932 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x96a618d0 iocb_bio_iopoll +EXPORT_SYMBOL_GPL vmlinux 0x96b7e769 device_link_del +EXPORT_SYMBOL_GPL vmlinux 0x96c0ccb0 sfp_bus_add_upstream +EXPORT_SYMBOL_GPL vmlinux 0x96e1fe6f platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x96e448da mptcp_pm_get_local_addr_max +EXPORT_SYMBOL_GPL vmlinux 0x96e67c2b badblocks_exit +EXPORT_SYMBOL_GPL vmlinux 0x96e9dbb0 bpf_verifier_log_write +EXPORT_SYMBOL_GPL vmlinux 0x96ee9f7f ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x96f622cc device_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x96f9a01b __SCK__tp_func_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0x9714e0bb ktime_get_raw +EXPORT_SYMBOL_GPL vmlinux 0x97286546 ioc_find_get_icq +EXPORT_SYMBOL_GPL vmlinux 0x97295fc6 class_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0x9736a990 rtnl_register_module +EXPORT_SYMBOL_GPL vmlinux 0x973d9070 mm_unaccount_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x9745725c invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x9747fca4 cmf_read +EXPORT_SYMBOL_GPL vmlinux 0x9754dd66 __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x975519c1 asymmetric_key_id_same +EXPORT_SYMBOL_GPL vmlinux 0x9778873e mptcp_subflow_init_cookie_req +EXPORT_SYMBOL_GPL vmlinux 0x97a69e3a devm_gpiod_get_array_optional +EXPORT_SYMBOL_GPL vmlinux 0x97ae16bf subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x97b63f92 regmap_get_reg_stride +EXPORT_SYMBOL_GPL vmlinux 0x97ba23ba synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97e4026a fsverity_ioctl_measure +EXPORT_SYMBOL_GPL vmlinux 0x98190c32 vp_modern_queue_address +EXPORT_SYMBOL_GPL vmlinux 0x9823d02b md_rdev_init +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 0x98699fbd fsverity_ioctl_read_metadata +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x989074ff kmsg_dump_reason_str +EXPORT_SYMBOL_GPL vmlinux 0x98a36b64 l3mdev_table_lookup_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98b142fa blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x98ce0485 bpf_preload_ops +EXPORT_SYMBOL_GPL vmlinux 0x98dbd7f6 component_add +EXPORT_SYMBOL_GPL vmlinux 0x98ee62b2 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x98f70c88 devlink_dpipe_entry_ctx_prepare +EXPORT_SYMBOL_GPL vmlinux 0x98fa1e20 dm_get_reserved_rq_based_ios +EXPORT_SYMBOL_GPL vmlinux 0x99050f0d tcp_is_ulp_esp +EXPORT_SYMBOL_GPL vmlinux 0x990bba07 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x993ebac7 param_set_uint_minmax +EXPORT_SYMBOL_GPL vmlinux 0x993fc577 tty_kopen_shared +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9968aacb __audit_log_nfcfg +EXPORT_SYMBOL_GPL vmlinux 0x998e174e chp_get_sch_opm +EXPORT_SYMBOL_GPL vmlinux 0x999bfc98 get_device +EXPORT_SYMBOL_GPL vmlinux 0x99adbf5e nf_hook_entries_delete_raw +EXPORT_SYMBOL_GPL vmlinux 0x99c310a3 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x99c4ae5b iomap_seek_data +EXPORT_SYMBOL_GPL vmlinux 0x99c66ae1 bpf_map_inc +EXPORT_SYMBOL_GPL vmlinux 0x99dd730c page_reporting_unregister +EXPORT_SYMBOL_GPL vmlinux 0x99f2d00a sysfs_emit_at +EXPORT_SYMBOL_GPL vmlinux 0x99f4591c key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x99fb5966 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a27bc1e screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x9a35ae5c blk_freeze_queue_start +EXPORT_SYMBOL_GPL vmlinux 0x9a74d817 genphy_c45_read_status +EXPORT_SYMBOL_GPL vmlinux 0x9aa5c938 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x9ab9f014 blk_revalidate_disk_zones +EXPORT_SYMBOL_GPL vmlinux 0x9ac63600 pci_ioremap_wc_bar +EXPORT_SYMBOL_GPL vmlinux 0x9ad3de36 mm_account_pinned_pages +EXPORT_SYMBOL_GPL vmlinux 0x9adea2e6 kvm_arch_crypto_set_masks +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9aeacbe5 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9b283013 bpf_prog_sub +EXPORT_SYMBOL_GPL vmlinux 0x9b47fc42 trace_event_buffer_commit +EXPORT_SYMBOL_GPL vmlinux 0x9b5acc01 skb_complete_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x9b6ec967 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x9b70c6ff tracepoint_probe_register_prio +EXPORT_SYMBOL_GPL vmlinux 0x9b751d5c free_fib_info +EXPORT_SYMBOL_GPL vmlinux 0x9b887b18 __serdev_device_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x9b88c932 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x9b9071cb get_old_itimerspec32 +EXPORT_SYMBOL_GPL vmlinux 0x9b965106 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x9bb0f16c unix_table_locks +EXPORT_SYMBOL_GPL vmlinux 0x9be30d27 mhp_get_pluggable_range +EXPORT_SYMBOL_GPL vmlinux 0x9be7a8df fscrypt_d_revalidate +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c4356b9 sk_psock_drop +EXPORT_SYMBOL_GPL vmlinux 0x9c6febfc add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0x9c71eeec pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x9c8ea938 vp_modern_set_queue_enable +EXPORT_SYMBOL_GPL vmlinux 0x9c91a4ed register_btf_kfunc_id_set +EXPORT_SYMBOL_GPL vmlinux 0x9cb618ba blk_mq_quiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0x9cdd6a66 sysctl_long_vals +EXPORT_SYMBOL_GPL vmlinux 0x9cfb2c52 devlink_net +EXPORT_SYMBOL_GPL vmlinux 0x9cfb46d0 crypto_shash_tfm_digest +EXPORT_SYMBOL_GPL vmlinux 0x9d09e8ae ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x9d129756 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9d2f49ef __SCK__tp_func_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0x9d3508da crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x9d5ed3f3 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x9d75b8d7 fuse_mount_remove +EXPORT_SYMBOL_GPL vmlinux 0x9d88e5d1 device_match_any +EXPORT_SYMBOL_GPL vmlinux 0x9d8bb00e set_dax_nocache +EXPORT_SYMBOL_GPL vmlinux 0x9de31b2a phy_gbit_fibre_features +EXPORT_SYMBOL_GPL vmlinux 0x9df1b34e blk_mq_unfreeze_queue +EXPORT_SYMBOL_GPL vmlinux 0x9df4a2a8 idr_remove +EXPORT_SYMBOL_GPL vmlinux 0x9df620c9 sbitmap_weight +EXPORT_SYMBOL_GPL vmlinux 0x9e018752 pci_epc_get_first_free_bar +EXPORT_SYMBOL_GPL vmlinux 0x9e140152 dax_iomap_fault +EXPORT_SYMBOL_GPL vmlinux 0x9e197f84 chsc_scud +EXPORT_SYMBOL_GPL vmlinux 0x9e3611de crypto_register_scomps +EXPORT_SYMBOL_GPL vmlinux 0x9e472f5f snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0x9e567f2e fsverity_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0x9e5ff2b6 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x9e751aa4 blk_mq_quiesce_queue_nowait +EXPORT_SYMBOL_GPL vmlinux 0x9e9b913d __tracepoint_arm_event +EXPORT_SYMBOL_GPL vmlinux 0x9e9c4f24 set_dax_nomc +EXPORT_SYMBOL_GPL vmlinux 0x9eb2b3ec find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x9ec054d5 trace_seq_putc +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ee5ef4c subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x9eebdde7 mpi_point_new +EXPORT_SYMBOL_GPL vmlinux 0x9ef0a0ec pci_hp_add +EXPORT_SYMBOL_GPL vmlinux 0x9f05573b platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x9f408425 bpf_trace_run1 +EXPORT_SYMBOL_GPL vmlinux 0x9f46b280 bpf_sk_storage_diag_put +EXPORT_SYMBOL_GPL vmlinux 0x9f52bd67 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x9f56c4b9 __SCK__tp_func_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0x9f65d827 blk_mq_hctx_set_fq_lock_class +EXPORT_SYMBOL_GPL vmlinux 0x9f787727 __kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x9f9c7781 phy_basic_t1_features +EXPORT_SYMBOL_GPL vmlinux 0x9fadb061 gpiod_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x9fae6ad2 iommu_dev_feature_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9fb2e30b fuse_free_conn +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9fefc3e6 __cpuhp_state_remove_instance +EXPORT_SYMBOL_GPL vmlinux 0xa01a8af6 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xa01dbec1 kthread_func +EXPORT_SYMBOL_GPL vmlinux 0xa04f945a cpus_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xa05658d7 bio_associate_blkg_from_css +EXPORT_SYMBOL_GPL vmlinux 0xa0743a29 irq_chip_set_affinity_parent +EXPORT_SYMBOL_GPL vmlinux 0xa080c5e5 smp_call_function_single_async +EXPORT_SYMBOL_GPL vmlinux 0xa0a3e92d gmap_unregister_pte_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa0bc0590 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xa0d3456d nr_swap_pages +EXPORT_SYMBOL_GPL vmlinux 0xa0d4376c virtqueue_get_vring +EXPORT_SYMBOL_GPL vmlinux 0xa0e02b62 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xa0e6087b genphy_c45_read_lpa +EXPORT_SYMBOL_GPL vmlinux 0xa0f3a07b trace_array_printk +EXPORT_SYMBOL_GPL vmlinux 0xa0fc9d43 crypto_boot_test_finished +EXPORT_SYMBOL_GPL vmlinux 0xa111e665 pernet_ops_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xa11d461c perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xa155182b tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa15e2852 set_capacity_and_notify +EXPORT_SYMBOL_GPL vmlinux 0xa16740e6 __phy_modify_mmd +EXPORT_SYMBOL_GPL vmlinux 0xa178039d validate_xmit_xfrm +EXPORT_SYMBOL_GPL vmlinux 0xa179a866 scsi_free_sgtables +EXPORT_SYMBOL_GPL vmlinux 0xa18b485c devlink_resource_size_get +EXPORT_SYMBOL_GPL vmlinux 0xa1aed14c blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xa1b52a09 auxiliary_find_device +EXPORT_SYMBOL_GPL vmlinux 0xa1b53c0a blk_mq_free_request +EXPORT_SYMBOL_GPL vmlinux 0xa1c3bbaa platform_find_device_by_driver +EXPORT_SYMBOL_GPL vmlinux 0xa1c4231f kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0xa1c87495 pci_epc_get_features +EXPORT_SYMBOL_GPL vmlinux 0xa1ce249f device_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0xa1f60014 nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xa20d01ba __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xa21a663c gmap_shadow_r2t +EXPORT_SYMBOL_GPL vmlinux 0xa231f2a3 dma_resv_wait_timeout +EXPORT_SYMBOL_GPL vmlinux 0xa23c8eef blkcg_get_fc_appid +EXPORT_SYMBOL_GPL vmlinux 0xa24a00db balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xa2500ef6 __SCK__tp_func_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xa2667d64 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0xa26bed8e bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2b0820d __SCK__tp_func_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xa2dec81c component_master_del +EXPORT_SYMBOL_GPL vmlinux 0xa2e1b3ef trace_printk_init_buffers +EXPORT_SYMBOL_GPL vmlinux 0xa2e59188 gpiochip_lock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xa2e9028f scsi_ioctl_block_when_processing_errors +EXPORT_SYMBOL_GPL vmlinux 0xa32d207b pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xa34b9575 mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xa35a0aa5 devm_platform_ioremap_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xa35d1fdc anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xa3687f21 __traceiter_map +EXPORT_SYMBOL_GPL vmlinux 0xa3702939 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xa3757177 ima_file_hash +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3865b1f dw_pcie_ep_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xa38a9f71 get_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xa38f9a8e vfs_submount +EXPORT_SYMBOL_GPL vmlinux 0xa39257db blk_bio_list_merge +EXPORT_SYMBOL_GPL vmlinux 0xa3b0d5d6 __xas_next +EXPORT_SYMBOL_GPL vmlinux 0xa3b958ce reset_hung_task_detector +EXPORT_SYMBOL_GPL vmlinux 0xa3d8917b gpiochip_line_is_persistent +EXPORT_SYMBOL_GPL vmlinux 0xa3ece414 freezer_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xa3f0c760 vp_modern_set_status +EXPORT_SYMBOL_GPL vmlinux 0xa3f12f69 __crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0xa410a295 devlink_region_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa42389e9 dw_pcie_ep_raise_legacy_irq +EXPORT_SYMBOL_GPL vmlinux 0xa4414619 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xa44a1307 interval_tree_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xa45c7b90 stack_trace_print +EXPORT_SYMBOL_GPL vmlinux 0xa465ad64 io_uring_cmd_done +EXPORT_SYMBOL_GPL vmlinux 0xa4ab7c1c ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xa4b07fe7 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0xa4bf4f1f inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xa4c00324 asn1_encode_octet_string +EXPORT_SYMBOL_GPL vmlinux 0xa4e13b89 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0xa4ef3bde kvm_vcpu_wake_up +EXPORT_SYMBOL_GPL vmlinux 0xa4f82370 platform_get_irq_optional +EXPORT_SYMBOL_GPL vmlinux 0xa53566f7 blk_set_pm_only +EXPORT_SYMBOL_GPL vmlinux 0xa53d075b devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0xa5476436 cio_enable_subchannel +EXPORT_SYMBOL_GPL vmlinux 0xa54a2cba devlink_linecard_provision_clear +EXPORT_SYMBOL_GPL vmlinux 0xa54a899a devlink_port_attrs_pci_vf_set +EXPORT_SYMBOL_GPL vmlinux 0xa54af52a icmp_build_probe +EXPORT_SYMBOL_GPL vmlinux 0xa55ccb6e seg6_do_srh_inline +EXPORT_SYMBOL_GPL vmlinux 0xa5719305 kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0xa5745f0c gmap_mark_unmergeable +EXPORT_SYMBOL_GPL vmlinux 0xa58b18ca pci_status_get_and_clear_errors +EXPORT_SYMBOL_GPL vmlinux 0xa58f5ea5 __traceiter_detach_device_from_domain +EXPORT_SYMBOL_GPL vmlinux 0xa5c00a0a pci_generic_config_read32 +EXPORT_SYMBOL_GPL vmlinux 0xa5cf6280 devlink_trap_policers_register +EXPORT_SYMBOL_GPL vmlinux 0xa5edfd1d sk_msg_return_zero +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5fd0bde gmap_read_table +EXPORT_SYMBOL_GPL vmlinux 0xa61e4de7 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xa62c9e29 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xa649a69c gpiod_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xa64ff240 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xa65f3c8c __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa67259d7 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0xa6830993 folio_wait_writeback_killable +EXPORT_SYMBOL_GPL vmlinux 0xa6a7a071 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xa6af1e35 __SCK__tp_func_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xa6aff672 crypto_shash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xa6b5ee5b __SCK__tp_func_block_split +EXPORT_SYMBOL_GPL vmlinux 0xa6c8bf88 crypto_alloc_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xa6c94624 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xa6d6af37 of_css +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6f81a03 kvm_vcpu_read_guest_atomic +EXPORT_SYMBOL_GPL vmlinux 0xa709c835 fib6_info_destroy_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa7226f25 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xa7279e46 pktgen_xfrm_outer_mode_output +EXPORT_SYMBOL_GPL vmlinux 0xa75fd3ab freq_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xa771f0e7 blk_mq_rdma_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xa77cec0f crypto_alloc_rng +EXPORT_SYMBOL_GPL vmlinux 0xa7901745 get_device_system_crosststamp +EXPORT_SYMBOL_GPL vmlinux 0xa796d51c dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xa7a4de20 inode_dax +EXPORT_SYMBOL_GPL vmlinux 0xa7b85b7b md_bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xa8153543 kvm_s390_gisc_register +EXPORT_SYMBOL_GPL vmlinux 0xa84a8635 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa86cf25d pci_epf_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xa878b269 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xa89926dc crypto_dh_decode_key +EXPORT_SYMBOL_GPL vmlinux 0xa8a4be44 fib_nexthop_info +EXPORT_SYMBOL_GPL vmlinux 0xa8af38b9 sbitmap_get_shallow +EXPORT_SYMBOL_GPL vmlinux 0xa8bf2f0a tcp_sendmsg_locked +EXPORT_SYMBOL_GPL vmlinux 0xa8c6e050 devlink_port_region_create +EXPORT_SYMBOL_GPL vmlinux 0xa8ca5b47 kthread_unpark +EXPORT_SYMBOL_GPL vmlinux 0xa8d2a1a4 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xa8d405f8 fixup_user_fault +EXPORT_SYMBOL_GPL vmlinux 0xa91b608c blkg_lookup_slowpath +EXPORT_SYMBOL_GPL vmlinux 0xa931d8c3 device_get_child_node_count +EXPORT_SYMBOL_GPL vmlinux 0xa9320d27 ktime_get_seconds +EXPORT_SYMBOL_GPL vmlinux 0xa941a14a raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xa9657147 irq_chip_mask_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xa9892245 __folio_lock_killable +EXPORT_SYMBOL_GPL vmlinux 0xa98b5bcf md_submit_discard_bio +EXPORT_SYMBOL_GPL vmlinux 0xa98b9c7f blk_queue_can_use_dma_map_merging +EXPORT_SYMBOL_GPL vmlinux 0xa9948d8a debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xa99b8e70 __SCK__tp_func_xdp_exception +EXPORT_SYMBOL_GPL vmlinux 0xa99ef899 devlink_fmsg_bool_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xa9b0c818 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa9b5a942 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xa9c62420 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0xa9d0ab1f trace_seq_putmem_hex +EXPORT_SYMBOL_GPL vmlinux 0xa9d9822c user_read +EXPORT_SYMBOL_GPL vmlinux 0xa9da2420 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xa9dee308 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xa9ee4ea4 page_cache_ra_unbounded +EXPORT_SYMBOL_GPL vmlinux 0xa9ff15b9 s390_enable_sie +EXPORT_SYMBOL_GPL vmlinux 0xaa02afa8 strp_init +EXPORT_SYMBOL_GPL vmlinux 0xaa2ce23c wait_on_page_writeback +EXPORT_SYMBOL_GPL vmlinux 0xaa34a768 sfp_bus_find_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xaa3de3c3 pci_epf_create +EXPORT_SYMBOL_GPL vmlinux 0xaa46a075 dma_alloc_noncontiguous +EXPORT_SYMBOL_GPL vmlinux 0xaa61de11 irq_stat +EXPORT_SYMBOL_GPL vmlinux 0xaa676d1a exportfs_decode_fh_raw +EXPORT_SYMBOL_GPL vmlinux 0xaa6a50f9 __static_key_deferred_flush +EXPORT_SYMBOL_GPL vmlinux 0xaa95aca3 sched_set_normal +EXPORT_SYMBOL_GPL vmlinux 0xaa971d3a phy_gbit_features +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaac4ef23 lwtunnel_encap_add_ops +EXPORT_SYMBOL_GPL vmlinux 0xaaeabdde decrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0xaaf600f2 sysfs_remove_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xaafa5482 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xab0138fc tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xab3d5068 iommu_capable +EXPORT_SYMBOL_GPL vmlinux 0xab8383d5 trace_event_buffer_reserve +EXPORT_SYMBOL_GPL vmlinux 0xab89a6b8 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xabbaf8ab dm_bio_from_per_bio_data +EXPORT_SYMBOL_GPL vmlinux 0xabc52292 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xabc640f3 list_lru_isolate +EXPORT_SYMBOL_GPL vmlinux 0xabd2b46c sysfs_group_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xabe23aee devlink_rate_leaf_create +EXPORT_SYMBOL_GPL vmlinux 0xabf7e33a crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xabf9faf7 nexthop_find_by_id +EXPORT_SYMBOL_GPL vmlinux 0xac014d5c pci_find_host_bridge +EXPORT_SYMBOL_GPL vmlinux 0xac450aaa strp_done +EXPORT_SYMBOL_GPL vmlinux 0xac4f6f0a blk_req_needs_zone_write_lock +EXPORT_SYMBOL_GPL vmlinux 0xac5a789c trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0xac5c82e1 pci_epc_init_notify +EXPORT_SYMBOL_GPL vmlinux 0xac9b3f7b tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xaca025d6 fwnode_connection_find_matches +EXPORT_SYMBOL_GPL vmlinux 0xacad6586 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaccf41fb phy_modify_changed +EXPORT_SYMBOL_GPL vmlinux 0xad000f40 fuse_send_init +EXPORT_SYMBOL_GPL vmlinux 0xad25602f __tracepoint_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xad3b9226 __traceiter_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xad3dfa13 lgr_info_log +EXPORT_SYMBOL_GPL vmlinux 0xad401a24 static_dev_dax +EXPORT_SYMBOL_GPL vmlinux 0xad428aca irq_chip_get_parent_state +EXPORT_SYMBOL_GPL vmlinux 0xad42dff8 __SCK__tp_func_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xad47d5e1 switchdev_handle_port_attr_set +EXPORT_SYMBOL_GPL vmlinux 0xad4e6259 remove_cpu +EXPORT_SYMBOL_GPL vmlinux 0xad645234 register_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xad76a3f0 __SCK__tp_func_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xad896cbd css_sch_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xad961199 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xada38766 dst_cache_destroy +EXPORT_SYMBOL_GPL vmlinux 0xada9fe05 nf_queue_nf_hook_drop +EXPORT_SYMBOL_GPL vmlinux 0xadaaa3ae diag308 +EXPORT_SYMBOL_GPL vmlinux 0xadbd866e iomap_migrate_page +EXPORT_SYMBOL_GPL vmlinux 0xae1051b0 net_cls_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xae36e68e xdp_rxq_info_unused +EXPORT_SYMBOL_GPL vmlinux 0xae39f80e dst_cache_init +EXPORT_SYMBOL_GPL vmlinux 0xae496125 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0xae4d3dc7 __vfs_removexattr_noperm +EXPORT_SYMBOL_GPL vmlinux 0xae55d2db cio_start_key +EXPORT_SYMBOL_GPL vmlinux 0xae5c6c3b devm_init_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xae64f1dd __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae8c41f3 __blk_trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xaea7f1ef devlink_sb_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaede01f9 iptunnel_handle_offloads +EXPORT_SYMBOL_GPL vmlinux 0xaee2e36e skb_to_sgvec_nomark +EXPORT_SYMBOL_GPL vmlinux 0xaeea26f8 simple_rename_exchange +EXPORT_SYMBOL_GPL vmlinux 0xaf06f2ef fwnode_graph_get_endpoint_count +EXPORT_SYMBOL_GPL vmlinux 0xaf0e0871 ftrace_ops_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0xaf170a62 tracepoint_srcu +EXPORT_SYMBOL_GPL vmlinux 0xaf185742 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaf2cdd49 vring_create_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xaf353ca8 fwnode_get_next_available_child_node +EXPORT_SYMBOL_GPL vmlinux 0xaf3a44e9 __SCK__tp_func_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xaf488208 skb_clone_tx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xaf5aaceb platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xaf61091f dm_internal_resume +EXPORT_SYMBOL_GPL vmlinux 0xaf85dff3 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xaf97df8d attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xaf98c175 gpiod_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0xafc7a41d hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xafeb58c1 __SCK__tp_func_io_page_fault +EXPORT_SYMBOL_GPL vmlinux 0xb000d0d4 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0xb011e55d shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb049a294 __SCK__tp_func_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xb052ad28 phy_package_leave +EXPORT_SYMBOL_GPL vmlinux 0xb06741c2 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb0747ed2 rcu_cpu_stall_suppress +EXPORT_SYMBOL_GPL vmlinux 0xb079c9ef is_swiotlb_active +EXPORT_SYMBOL_GPL vmlinux 0xb083398e fwnode_property_read_u64_array +EXPORT_SYMBOL_GPL vmlinux 0xb085d21e msi_first_desc +EXPORT_SYMBOL_GPL vmlinux 0xb0aa000a switchdev_handle_port_obj_add_foreign +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0c2075c __trace_trigger_soft_disabled +EXPORT_SYMBOL_GPL vmlinux 0xb0ca3f84 device_get_named_child_node +EXPORT_SYMBOL_GPL vmlinux 0xb0deb0cb __blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xb0e938c4 fscrypt_match_name +EXPORT_SYMBOL_GPL vmlinux 0xb10d964d devlink_fmsg_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xb1147152 peernet2id_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb11d9000 tty_dev_name_to_number +EXPORT_SYMBOL_GPL vmlinux 0xb124b596 regmap_get_val_endian +EXPORT_SYMBOL_GPL vmlinux 0xb12aac7a fwnode_remove_software_node +EXPORT_SYMBOL_GPL vmlinux 0xb1334cd6 irq_domain_free_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xb1478c15 devlink_params_register +EXPORT_SYMBOL_GPL vmlinux 0xb15b552a sfp_parse_support +EXPORT_SYMBOL_GPL vmlinux 0xb1647fc2 devlink_info_version_running_put +EXPORT_SYMBOL_GPL vmlinux 0xb171fb42 irq_chip_enable_parent +EXPORT_SYMBOL_GPL vmlinux 0xb1753a56 devm_platform_get_and_ioremap_resource +EXPORT_SYMBOL_GPL vmlinux 0xb197926f __netif_set_xps_queue +EXPORT_SYMBOL_GPL vmlinux 0xb1b1c93e atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1baa71a devlink_linecard_provision_fail +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1fc1782 pci_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xb1feffbe ethnl_cable_test_pulse +EXPORT_SYMBOL_GPL vmlinux 0xb20d92e4 aead_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xb20ffd78 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xb239b95f xas_clear_mark +EXPORT_SYMBOL_GPL vmlinux 0xb23e9c34 crypto_grab_spawn +EXPORT_SYMBOL_GPL vmlinux 0xb2405efc secure_tcp_seq +EXPORT_SYMBOL_GPL vmlinux 0xb248fde2 regmap_noinc_write +EXPORT_SYMBOL_GPL vmlinux 0xb261feb0 trace_get_event_file +EXPORT_SYMBOL_GPL vmlinux 0xb2671fec pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xb26a1add elfcorehdr_addr +EXPORT_SYMBOL_GPL vmlinux 0xb29caa04 aead_init_geniv +EXPORT_SYMBOL_GPL vmlinux 0xb2a1d33a register_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0xb2c1732e rcu_gp_set_torture_wait +EXPORT_SYMBOL_GPL vmlinux 0xb2d00692 regmap_fields_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0xb2e1037a dev_nit_active +EXPORT_SYMBOL_GPL vmlinux 0xb2e368fa driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xb2e6038d udp_abort +EXPORT_SYMBOL_GPL vmlinux 0xb2f39d96 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xb2fd253c crypto_register_rng +EXPORT_SYMBOL_GPL vmlinux 0xb307c909 devlink_fmsg_u64_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xb30e0bae dm_post_suspending +EXPORT_SYMBOL_GPL vmlinux 0xb318d99f device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb32378cb inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0xb323ec07 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xb34095f2 gpiod_get_array_value +EXPORT_SYMBOL_GPL vmlinux 0xb3629573 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xb380e81a blk_mq_complete_request_remote +EXPORT_SYMBOL_GPL vmlinux 0xb3873cb0 regmap_multi_reg_write_bypassed +EXPORT_SYMBOL_GPL vmlinux 0xb3977097 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xb3a14502 device_move +EXPORT_SYMBOL_GPL vmlinux 0xb3b0016b folio_add_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xb3ba3b9e devlink_dpipe_table_register +EXPORT_SYMBOL_GPL vmlinux 0xb3bb796e fsnotify_find_mark +EXPORT_SYMBOL_GPL vmlinux 0xb3da2b69 bpf_trace_run12 +EXPORT_SYMBOL_GPL vmlinux 0xb3dbfed4 pci_find_dvsec_capability +EXPORT_SYMBOL_GPL vmlinux 0xb3ea6f1a md_bitmap_copy_from_slot +EXPORT_SYMBOL_GPL vmlinux 0xb3faa89d bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xb40290f3 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xb408ad0c scsi_dh_attach +EXPORT_SYMBOL_GPL vmlinux 0xb4339edb iomap_dio_complete +EXPORT_SYMBOL_GPL vmlinux 0xb436ec22 fib_new_table +EXPORT_SYMBOL_GPL vmlinux 0xb43893fd user_describe +EXPORT_SYMBOL_GPL vmlinux 0xb43f9365 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xb447935f driver_register +EXPORT_SYMBOL_GPL vmlinux 0xb44e18ea audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb46fbe0b klp_shadow_get_or_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb497dff8 security_kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4bd2a88 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xb4ed3d61 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xb4eda0da ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0xb4edb989 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4f43647 dma_resv_iter_first +EXPORT_SYMBOL_GPL vmlinux 0xb4fa8c18 acomp_request_free +EXPORT_SYMBOL_GPL vmlinux 0xb545519c crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xb55b15c6 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xb565723d gmap_shadow +EXPORT_SYMBOL_GPL vmlinux 0xb574d391 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xb5a4aecf gpiod_put +EXPORT_SYMBOL_GPL vmlinux 0xb5b756b6 balloon_page_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5bce0f8 pci_epc_put +EXPORT_SYMBOL_GPL vmlinux 0xb5c0aad9 gpiochip_unlock_as_irq +EXPORT_SYMBOL_GPL vmlinux 0xb5f6ecab br_ip6_fragment +EXPORT_SYMBOL_GPL vmlinux 0xb6088146 __cookie_v4_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0xb610b5d9 ethtool_params_from_link_mode +EXPORT_SYMBOL_GPL vmlinux 0xb610e1c9 disk_uevent +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb630ca36 kvm_vcpu_mark_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xb6410433 mpi_addm +EXPORT_SYMBOL_GPL vmlinux 0xb649dcf6 fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xb654cd93 ccw_device_get_chp_desc +EXPORT_SYMBOL_GPL vmlinux 0xb65b0a1e netdev_is_rx_handler_busy +EXPORT_SYMBOL_GPL vmlinux 0xb65f7d37 pci_epf_unbind +EXPORT_SYMBOL_GPL vmlinux 0xb6787346 sfp_unregister_socket +EXPORT_SYMBOL_GPL vmlinux 0xb67d985d smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0xb6805860 devlink_dpipe_entry_ctx_close +EXPORT_SYMBOL_GPL vmlinux 0xb699858f l3mdev_master_ifindex_rcu +EXPORT_SYMBOL_GPL vmlinux 0xb69afbb0 devlink_linecard_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xb703b72f filemap_add_folio +EXPORT_SYMBOL_GPL vmlinux 0xb730ef83 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0xb786bf75 pci_write_msi_msg +EXPORT_SYMBOL_GPL vmlinux 0xb7874378 virtio_config_changed +EXPORT_SYMBOL_GPL vmlinux 0xb7a387fc synchronize_rcu_tasks_rude +EXPORT_SYMBOL_GPL vmlinux 0xb7b350ed klist_init +EXPORT_SYMBOL_GPL vmlinux 0xb7b81a0b tpm_try_get_ops +EXPORT_SYMBOL_GPL vmlinux 0xb7bfa0ac ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xb7c69a63 unregister_vmap_purge_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb7cc0cff __tracepoint_br_fdb_add +EXPORT_SYMBOL_GPL vmlinux 0xb7cddd54 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0xb7d5f078 clean_acked_data_disable +EXPORT_SYMBOL_GPL vmlinux 0xb81053df gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xb85482ae iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xb856b040 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xb866da16 devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xb86a4df5 tpm_default_chip +EXPORT_SYMBOL_GPL vmlinux 0xb87f6451 irq_domain_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xb88dbfce irq_set_irqchip_state +EXPORT_SYMBOL_GPL vmlinux 0xb8993fac __tracepoint_remove_device_from_group +EXPORT_SYMBOL_GPL vmlinux 0xb89e69b1 jump_label_update_timeout +EXPORT_SYMBOL_GPL vmlinux 0xb8cd3a7f nf_logger_put +EXPORT_SYMBOL_GPL vmlinux 0xb8e9142c kthread_flush_work +EXPORT_SYMBOL_GPL vmlinux 0xb9092000 param_ops_bool_enable_only +EXPORT_SYMBOL_GPL vmlinux 0xb912560d static_key_disable +EXPORT_SYMBOL_GPL vmlinux 0xb9175787 devlink_linecard_create +EXPORT_SYMBOL_GPL vmlinux 0xb930efb4 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xb93a6a2e zpci_write_block +EXPORT_SYMBOL_GPL vmlinux 0xb9681621 xdp_do_flush +EXPORT_SYMBOL_GPL vmlinux 0xb96be5f6 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xb9852d11 __traceiter_mc_event +EXPORT_SYMBOL_GPL vmlinux 0xb98898e3 __traceiter_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xb9c252b0 bio_start_io_acct_time +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9ef15cb iptunnel_metadata_reply +EXPORT_SYMBOL_GPL vmlinux 0xba6b73f9 zpci_aif_sbv +EXPORT_SYMBOL_GPL vmlinux 0xba9969b2 espintcp_queue_out +EXPORT_SYMBOL_GPL vmlinux 0xba9f23f6 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xbaa05e3e fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbab78e74 tcp_enter_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xbabbfbbd __percpu_init_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xbaf22757 kvfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0xbaf6850c fsnotify_wait_marks_destroyed +EXPORT_SYMBOL_GPL vmlinux 0xbafc3ee4 devm_gpiod_get_array +EXPORT_SYMBOL_GPL vmlinux 0xbb028ad3 rcu_gp_slow_register +EXPORT_SYMBOL_GPL vmlinux 0xbb04ce3a tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb1f14af devlink_traps_register +EXPORT_SYMBOL_GPL vmlinux 0xbb1f8475 sched_show_task +EXPORT_SYMBOL_GPL vmlinux 0xbb24f372 __SCK__tp_func_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xbb32e49b css_general_characteristics +EXPORT_SYMBOL_GPL vmlinux 0xbb4442ec crypto_alloc_kpp +EXPORT_SYMBOL_GPL vmlinux 0xbb5170c5 irq_get_percpu_devid_partition +EXPORT_SYMBOL_GPL vmlinux 0xbb54dd9c __udp_enqueue_schedule_skb +EXPORT_SYMBOL_GPL vmlinux 0xbb64fa86 crypto_grab_kpp +EXPORT_SYMBOL_GPL vmlinux 0xbb6508da random_get_entropy_fallback +EXPORT_SYMBOL_GPL vmlinux 0xbb6a3cbd devlink_fmsg_arr_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xbb7195a5 xdp_warn +EXPORT_SYMBOL_GPL vmlinux 0xbb7b3f80 chp_ssd_get_mask +EXPORT_SYMBOL_GPL vmlinux 0xbb7e9690 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xbb82b09a iommu_alloc_resv_region +EXPORT_SYMBOL_GPL vmlinux 0xbbc40a71 x509_decode_time +EXPORT_SYMBOL_GPL vmlinux 0xbbf3e130 __traceiter_neigh_cleanup_and_release +EXPORT_SYMBOL_GPL vmlinux 0xbbff81f8 sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xbc0e23b0 fscrypt_prepare_new_inode +EXPORT_SYMBOL_GPL vmlinux 0xbc109178 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xbc3ace22 l3mdev_link_scope_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbc3f2cb0 timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xbc488b57 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xbc4c4bcc trace_seq_to_user +EXPORT_SYMBOL_GPL vmlinux 0xbc524b26 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xbc6bec66 free_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xbc7071de iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xbc75cbdb crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xbc94eb51 css_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0xbc959ec1 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xbca9bad6 gpiod_to_chip +EXPORT_SYMBOL_GPL vmlinux 0xbcab16db raw_v4_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0xbcba083d component_compare_of +EXPORT_SYMBOL_GPL vmlinux 0xbcbe3339 devlink_set_features +EXPORT_SYMBOL_GPL vmlinux 0xbcc01614 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xbcc15e75 ktime_get_coarse_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcf1f0e6 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xbd3bf717 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xbd3fe1e3 disable_hardirq +EXPORT_SYMBOL_GPL vmlinux 0xbd5704ec __tracepoint_xdp_bulk_tx +EXPORT_SYMBOL_GPL vmlinux 0xbd77e012 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xbd7aaaee add_memory +EXPORT_SYMBOL_GPL vmlinux 0xbdb0cca9 devm_gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xbdb72342 __tracepoint_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xbdc96ac2 tty_kopen_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xbdda1b5f vmalloc_huge +EXPORT_SYMBOL_GPL vmlinux 0xbdeafa69 s390_replace_asce +EXPORT_SYMBOL_GPL vmlinux 0xbdec0cf8 fscrypt_ioctl_get_policy_ex +EXPORT_SYMBOL_GPL vmlinux 0xbdf15423 sbitmap_bitmap_show +EXPORT_SYMBOL_GPL vmlinux 0xbdfb55d7 ip6_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xbe1b0721 devlink_to_dev +EXPORT_SYMBOL_GPL vmlinux 0xbe2d1cbc skb_zerocopy +EXPORT_SYMBOL_GPL vmlinux 0xbe57d9c3 perf_aux_output_skip +EXPORT_SYMBOL_GPL vmlinux 0xbe687e88 wake_up_all_idle_cpus +EXPORT_SYMBOL_GPL vmlinux 0xbe7e5dd4 fsverity_verify_bio +EXPORT_SYMBOL_GPL vmlinux 0xbe93269c tpm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbe9a83d5 dw_pcie_write +EXPORT_SYMBOL_GPL vmlinux 0xbe9cab10 device_phy_find_device +EXPORT_SYMBOL_GPL vmlinux 0xbe9ed009 ip6_input +EXPORT_SYMBOL_GPL vmlinux 0xbea5ff1e static_key_initialized +EXPORT_SYMBOL_GPL vmlinux 0xbeafb2c0 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbec15478 lwtunnel_output +EXPORT_SYMBOL_GPL vmlinux 0xbec59cbc fscrypt_mergeable_bio +EXPORT_SYMBOL_GPL vmlinux 0xbec7d2f3 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xbecb449f rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0xbee0803e _proc_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf158f2a fscrypt_ioctl_get_key_status +EXPORT_SYMBOL_GPL vmlinux 0xbf25844c l3mdev_fib_table_by_index +EXPORT_SYMBOL_GPL vmlinux 0xbf2e2e71 housekeeping_enabled +EXPORT_SYMBOL_GPL vmlinux 0xbf4513c3 devlink_linecard_activate +EXPORT_SYMBOL_GPL vmlinux 0xbf55ff2f pci_dev_lock +EXPORT_SYMBOL_GPL vmlinux 0xbf66b201 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf985613 phy_package_join +EXPORT_SYMBOL_GPL vmlinux 0xbfb38840 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xbfbe5a0a tcf_dev_queue_xmit +EXPORT_SYMBOL_GPL vmlinux 0xbfcb3815 irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xbfe5616d tick_broadcast_oneshot_control +EXPORT_SYMBOL_GPL vmlinux 0xbff8c46a phy_driver_is_genphy +EXPORT_SYMBOL_GPL vmlinux 0xbffa1bfe fscrypt_set_bio_crypt_ctx_bh +EXPORT_SYMBOL_GPL vmlinux 0xbffb3a8c anon_inode_getfd_secure +EXPORT_SYMBOL_GPL vmlinux 0xc00383b7 pkcs7_validate_trust +EXPORT_SYMBOL_GPL vmlinux 0xc00df838 dw_pcie_ep_init_complete +EXPORT_SYMBOL_GPL vmlinux 0xc022093b irq_chip_mask_parent +EXPORT_SYMBOL_GPL vmlinux 0xc03173bb dw_pcie_wait_for_link +EXPORT_SYMBOL_GPL vmlinux 0xc045988c rhashtable_walk_next +EXPORT_SYMBOL_GPL vmlinux 0xc090c376 net_selftest_get_strings +EXPORT_SYMBOL_GPL vmlinux 0xc0975fef sysfs_file_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xc0a12880 iommu_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0a5c3b7 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0xc0a5ecea fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xc0a83be0 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc0a96e14 rcu_gp_is_expedited +EXPORT_SYMBOL_GPL vmlinux 0xc0b2664d devlink_dpipe_header_ipv4 +EXPORT_SYMBOL_GPL vmlinux 0xc0cf8300 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xc0d880a5 dma_resv_test_signaled +EXPORT_SYMBOL_GPL vmlinux 0xc0de317f __traceiter_tcp_bad_csum +EXPORT_SYMBOL_GPL vmlinux 0xc0ece446 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc0f0458a ip_tunnel_unneed_metadata +EXPORT_SYMBOL_GPL vmlinux 0xc1086e0c sysrq_toggle_support +EXPORT_SYMBOL_GPL vmlinux 0xc10fddb8 name_to_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xc132c453 __wake_up_locked_sync_key +EXPORT_SYMBOL_GPL vmlinux 0xc14ca9c2 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0xc14eb3a7 pci_sriov_configure_simple +EXPORT_SYMBOL_GPL vmlinux 0xc1a41fcf virtqueue_is_broken +EXPORT_SYMBOL_GPL vmlinux 0xc1ad689e gmap_shadow_sgt +EXPORT_SYMBOL_GPL vmlinux 0xc1bf08ff int_active_memcg +EXPORT_SYMBOL_GPL vmlinux 0xc1c7389c gpiod_set_consumer_name +EXPORT_SYMBOL_GPL vmlinux 0xc1db6f92 serdev_device_set_parity +EXPORT_SYMBOL_GPL vmlinux 0xc1e7884c xdp_do_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc1edf1ac freq_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc1eef040 bpf_trace_run10 +EXPORT_SYMBOL_GPL vmlinux 0xc1efb218 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xc1fa3b11 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc2369a10 crypto_unregister_kpp +EXPORT_SYMBOL_GPL vmlinux 0xc23eb589 pci_probe_reset_bus +EXPORT_SYMBOL_GPL vmlinux 0xc24adb6f serdev_device_get_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xc264e50e pci_hp_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc287c455 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xc2904d85 crypto_unregister_rng +EXPORT_SYMBOL_GPL vmlinux 0xc2a3eb61 device_driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xc2a814db tcp_memory_pressure +EXPORT_SYMBOL_GPL vmlinux 0xc2b9773a __tracepoint_neigh_update_done +EXPORT_SYMBOL_GPL vmlinux 0xc2c1c427 perf_event_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc2d484ba xdp_return_buff +EXPORT_SYMBOL_GPL vmlinux 0xc2fb62ad skb_zerocopy_headlen +EXPORT_SYMBOL_GPL vmlinux 0xc31b3afd ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc321132a blockdev_superblock +EXPORT_SYMBOL_GPL vmlinux 0xc32e3bdf debugfs_create_file_unsafe +EXPORT_SYMBOL_GPL vmlinux 0xc33928aa kvm_vcpu_write_guest +EXPORT_SYMBOL_GPL vmlinux 0xc33e9fe2 vp_modern_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc3708747 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc3710e63 crypto_stats_compress +EXPORT_SYMBOL_GPL vmlinux 0xc37da155 cgrp_dfl_root +EXPORT_SYMBOL_GPL vmlinux 0xc3805cd1 fs_ftype_to_dtype +EXPORT_SYMBOL_GPL vmlinux 0xc3a8456f __sock_recv_cmsgs +EXPORT_SYMBOL_GPL vmlinux 0xc3bcf05b fsverity_verify_page +EXPORT_SYMBOL_GPL vmlinux 0xc3c3dcb0 unregister_ftrace_direct_multi +EXPORT_SYMBOL_GPL vmlinux 0xc3c4c6cc hash_algo_name +EXPORT_SYMBOL_GPL vmlinux 0xc3d1c770 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc3de65ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc3ea5305 iommu_default_passthrough +EXPORT_SYMBOL_GPL vmlinux 0xc3eb36c9 securityfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xc3f99379 init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xc405fcd3 badblocks_show +EXPORT_SYMBOL_GPL vmlinux 0xc40f493b gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0xc41a0c51 chsc_ssqd +EXPORT_SYMBOL_GPL vmlinux 0xc41d3ae8 trace_array_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc426c51f klp_shadow_free_all +EXPORT_SYMBOL_GPL vmlinux 0xc4334d21 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xc44992ee devlink_param_driverinit_value_get +EXPORT_SYMBOL_GPL vmlinux 0xc47a90b9 bpf_fentry_test1 +EXPORT_SYMBOL_GPL vmlinux 0xc480eb84 appldata_diag +EXPORT_SYMBOL_GPL vmlinux 0xc4810203 nr_iowait +EXPORT_SYMBOL_GPL vmlinux 0xc48f7eb5 is_binary_blacklisted +EXPORT_SYMBOL_GPL vmlinux 0xc498bdc9 devlink_register +EXPORT_SYMBOL_GPL vmlinux 0xc4a31146 rdma_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xc4c7271d regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc4c9c75a synth_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0xc4d7cd01 pcie_flr +EXPORT_SYMBOL_GPL vmlinux 0xc4e94f9a cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xc4f0da12 ktime_get_with_offset +EXPORT_SYMBOL_GPL vmlinux 0xc4f65e12 serdev_device_wait_until_sent +EXPORT_SYMBOL_GPL vmlinux 0xc50c6255 fib6_rule_default +EXPORT_SYMBOL_GPL vmlinux 0xc50ca288 bpf_offload_dev_match +EXPORT_SYMBOL_GPL vmlinux 0xc51ba197 serdev_device_set_flow_control +EXPORT_SYMBOL_GPL vmlinux 0xc53ba24f atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xc53cd7e4 ima_measure_critical_data +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc58537d6 vp_modern_map_vq_notify +EXPORT_SYMBOL_GPL vmlinux 0xc5865f4b fscrypt_drop_inode +EXPORT_SYMBOL_GPL vmlinux 0xc58d2984 thp_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xc5f7b4eb metadata_dst_free +EXPORT_SYMBOL_GPL vmlinux 0xc60e6d4d bpf_trace_run11 +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc618d89a crypto_create_tfm_node +EXPORT_SYMBOL_GPL vmlinux 0xc650835f kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xc662d101 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xc662ecda __tracepoint_br_fdb_external_learn_add +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc6779093 ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6b66293 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc6f0e483 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0xc6f1fe2c md_stop +EXPORT_SYMBOL_GPL vmlinux 0xc6f6d4c9 list_lru_count_node +EXPORT_SYMBOL_GPL vmlinux 0xc70218ab encrypt_blob +EXPORT_SYMBOL_GPL vmlinux 0xc7048038 percpu_down_write +EXPORT_SYMBOL_GPL vmlinux 0xc718fbf3 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xc73c3f09 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xc744643f regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xc74a9160 crypto_hash_alg_has_setkey +EXPORT_SYMBOL_GPL vmlinux 0xc755c93f trace_handle_return +EXPORT_SYMBOL_GPL vmlinux 0xc75c25de tcpv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xc76120cc tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xc7839710 kvm_init +EXPORT_SYMBOL_GPL vmlinux 0xc78c9ecd input_ff_flush +EXPORT_SYMBOL_GPL vmlinux 0xc78dfefd __irq_apply_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xc78f7550 devm_register_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c3fa8c blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xc7e428ec regmap_get_raw_read_max +EXPORT_SYMBOL_GPL vmlinux 0xc7e64fc2 asn1_encode_integer +EXPORT_SYMBOL_GPL vmlinux 0xc7fa4aa9 kobj_ns_drop +EXPORT_SYMBOL_GPL vmlinux 0xc80acfca chsc_sadc +EXPORT_SYMBOL_GPL vmlinux 0xc80f8e4a devlink_resource_occ_get_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc824f9d8 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xc82c721f klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xc8359402 bio_iov_iter_get_pages +EXPORT_SYMBOL_GPL vmlinux 0xc8580033 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xc87092ba __traceiter_pelt_thermal_tp +EXPORT_SYMBOL_GPL vmlinux 0xc8ac77d1 __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0xc8b4e865 sk_set_peek_off +EXPORT_SYMBOL_GPL vmlinux 0xc8ddd5b5 kstrdup_quotable +EXPORT_SYMBOL_GPL vmlinux 0xc8ec57d4 __traceiter_pelt_se_tp +EXPORT_SYMBOL_GPL vmlinux 0xc90dda47 irq_domain_free_irqs_common +EXPORT_SYMBOL_GPL vmlinux 0xc91ae725 ncsi_unregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xc91bd762 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xc91fdf58 percpu_ref_is_zero +EXPORT_SYMBOL_GPL vmlinux 0xc94f07f3 genphy_c45_pma_resume +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9593570 devm_hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc96b166a vcpu_put +EXPORT_SYMBOL_GPL vmlinux 0xc97113c4 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc975db04 __traceiter_br_fdb_update +EXPORT_SYMBOL_GPL vmlinux 0xc9827693 __bpf_call_base +EXPORT_SYMBOL_GPL vmlinux 0xc9957b19 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc99c2583 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xc9b09253 devm_kstrdup_const +EXPORT_SYMBOL_GPL vmlinux 0xc9b5fad0 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xc9e80c8a init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca163f67 serdev_device_write_room +EXPORT_SYMBOL_GPL vmlinux 0xca398e2b tpm_put_ops +EXPORT_SYMBOL_GPL vmlinux 0xca454a34 vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0xca5227ba fscrypt_ioctl_add_key +EXPORT_SYMBOL_GPL vmlinux 0xca541308 trusted_tpm_send +EXPORT_SYMBOL_GPL vmlinux 0xca693e74 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xca697704 gpiochip_generic_free +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca7ef54d nf_checksum +EXPORT_SYMBOL_GPL vmlinux 0xca9a1d5e ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0xcaa6a33c pci_d3cold_disable +EXPORT_SYMBOL_GPL vmlinux 0xcaaffd1a debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0xcad29180 pci_epc_get_next_free_bar +EXPORT_SYMBOL_GPL vmlinux 0xcaeffc32 iomap_dio_rw +EXPORT_SYMBOL_GPL vmlinux 0xcaf5fd3f devm_gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0xcb1804dd msi_unlock_descs +EXPORT_SYMBOL_GPL vmlinux 0xcb561441 mem_dump_obj +EXPORT_SYMBOL_GPL vmlinux 0xcbd2acbe net_selftest +EXPORT_SYMBOL_GPL vmlinux 0xcbe56bc2 zs_get_total_pages +EXPORT_SYMBOL_GPL vmlinux 0xcc29e05e irq_set_affinity +EXPORT_SYMBOL_GPL vmlinux 0xcc2ccf1d xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0xcc2dbfd8 irq_domain_check_msi_remap +EXPORT_SYMBOL_GPL vmlinux 0xcc3f54e5 net_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xcc3fe181 fwnode_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0xcc5ab50b scsi_unregister_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xcc795932 devlink_region_snapshot_id_put +EXPORT_SYMBOL_GPL vmlinux 0xcc7bea7e key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xcc83eb8e lwtunnel_fill_encap +EXPORT_SYMBOL_GPL vmlinux 0xcc935375 walk_iomem_res_desc +EXPORT_SYMBOL_GPL vmlinux 0xccadcdef __traceiter_pelt_irq_tp +EXPORT_SYMBOL_GPL vmlinux 0xccba524f pcie_port_find_device +EXPORT_SYMBOL_GPL vmlinux 0xccc7c935 cpu_device_create +EXPORT_SYMBOL_GPL vmlinux 0xccce5883 genphy_c45_an_disable_aneg +EXPORT_SYMBOL_GPL vmlinux 0xccf52bc9 sfp_upstream_start +EXPORT_SYMBOL_GPL vmlinux 0xccf95b91 umd_unload_blob +EXPORT_SYMBOL_GPL vmlinux 0xcd0d999d crypto_alloc_acomp +EXPORT_SYMBOL_GPL vmlinux 0xcd12d468 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xcd1f0587 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xcd24e146 hash_digest_size +EXPORT_SYMBOL_GPL vmlinux 0xcd2b4819 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xcd2c1012 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xcd38e2d2 ndo_dflt_bridge_getlink +EXPORT_SYMBOL_GPL vmlinux 0xcd54940b kvm_vcpu_gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0xcd5c2d54 bio_clone_blkg_association +EXPORT_SYMBOL_GPL vmlinux 0xcd6ccf67 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcd6f2dc9 nf_log_buf_add +EXPORT_SYMBOL_GPL vmlinux 0xcd715cac ext_pi_type3_crc64 +EXPORT_SYMBOL_GPL vmlinux 0xcd77b526 irq_create_fwspec_mapping +EXPORT_SYMBOL_GPL vmlinux 0xcd7f50f8 kvm_vcpu_gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0xcd87df6e msi_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd974f00 rcu_all_qs +EXPORT_SYMBOL_GPL vmlinux 0xcd991602 crypto_register_acomp +EXPORT_SYMBOL_GPL vmlinux 0xcd9cd2ff wakeme_after_rcu +EXPORT_SYMBOL_GPL vmlinux 0xcdb6adcc ras_userspace_consumers +EXPORT_SYMBOL_GPL vmlinux 0xcdbe89be synth_event_add_field_str +EXPORT_SYMBOL_GPL vmlinux 0xcdbf8680 switchdev_handle_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdf9df06 udp_tunnel_nic_ops +EXPORT_SYMBOL_GPL vmlinux 0xce00a348 fsverity_ioctl_enable +EXPORT_SYMBOL_GPL vmlinux 0xce040861 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xce495ee6 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0xce612552 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xce6db656 rcu_is_watching +EXPORT_SYMBOL_GPL vmlinux 0xce7f75a7 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xce825c86 xdp_do_redirect_frame +EXPORT_SYMBOL_GPL vmlinux 0xce939a70 crypto_aead_encrypt +EXPORT_SYMBOL_GPL vmlinux 0xce941f58 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0xce974d24 pci_epc_clear_bar +EXPORT_SYMBOL_GPL vmlinux 0xcea41753 __hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0xced2c04e md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0xcedb11df bio_poll +EXPORT_SYMBOL_GPL vmlinux 0xceeb39f0 tpm_chip_stop +EXPORT_SYMBOL_GPL vmlinux 0xcf059cf7 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xcf0afbfb copy_to_user_nofault +EXPORT_SYMBOL_GPL vmlinux 0xcf118b1f inet6_hash +EXPORT_SYMBOL_GPL vmlinux 0xcf28f55e trace_clock_global +EXPORT_SYMBOL_GPL vmlinux 0xcf2b2394 blk_mq_debugfs_rq_show +EXPORT_SYMBOL_GPL vmlinux 0xcf32ebc5 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcf4b1427 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xcf6ae092 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xcf8354cf iommu_sva_get_pasid +EXPORT_SYMBOL_GPL vmlinux 0xcf9dc1de kthread_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0xcfaeadaf klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xcfb7e605 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xcfbad1d6 devlink_trap_groups_register +EXPORT_SYMBOL_GPL vmlinux 0xcfbc44bd fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xcfc2486b device_get_match_data +EXPORT_SYMBOL_GPL vmlinux 0xcfc5108a devlink_fmsg_u8_pair_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc7b4e4 rcu_barrier_tasks_trace +EXPORT_SYMBOL_GPL vmlinux 0xcfeb033f sync_blockdev_nowait +EXPORT_SYMBOL_GPL vmlinux 0xd00f10e6 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd020ed71 rtnl_delete_link +EXPORT_SYMBOL_GPL vmlinux 0xd0301f07 alloc_dax_region +EXPORT_SYMBOL_GPL vmlinux 0xd031b589 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xd03eaf4c schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0xd04abd67 irq_domain_reset_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xd04aedfd __SCK__tp_func_arm_event +EXPORT_SYMBOL_GPL vmlinux 0xd0644e05 fwnode_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd06e89fe virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xd07ce816 genphy_c45_pma_baset1_read_master_slave +EXPORT_SYMBOL_GPL vmlinux 0xd0a4da16 component_unbind_all +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0cb3ff4 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xd0db0f12 run_dax +EXPORT_SYMBOL_GPL vmlinux 0xd1165dee regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xd11bcb03 fixed_phy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd12b40ad dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd1481de7 mpi_clear +EXPORT_SYMBOL_GPL vmlinux 0xd159586c net_prio_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xd15b5df9 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0xd15b6f57 lwtunnel_input +EXPORT_SYMBOL_GPL vmlinux 0xd16a8cef __tracepoint_add_device_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd177d04a tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xd17a5dd2 irq_get_default_host +EXPORT_SYMBOL_GPL vmlinux 0xd18192ad nl_table +EXPORT_SYMBOL_GPL vmlinux 0xd1a9ca15 __SCK__tp_func_neigh_update +EXPORT_SYMBOL_GPL vmlinux 0xd1cac7bf unregister_ftrace_direct +EXPORT_SYMBOL_GPL vmlinux 0xd1cb96be __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xd1cbc23c add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0xd1cebbc1 crypto_register_skciphers +EXPORT_SYMBOL_GPL vmlinux 0xd1f2eee2 nf_logger_find_get +EXPORT_SYMBOL_GPL vmlinux 0xd1f5d7d4 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xd2050501 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21b61bd async_schedule_node_domain +EXPORT_SYMBOL_GPL vmlinux 0xd21f1d35 __SCK__tp_func_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xd220f880 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xd223f2a0 fib_rule_matchall +EXPORT_SYMBOL_GPL vmlinux 0xd234bf48 __traceiter_sched_update_nr_running_tp +EXPORT_SYMBOL_GPL vmlinux 0xd24c7e89 crypto_stats_rng_seed +EXPORT_SYMBOL_GPL vmlinux 0xd260af0d ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0xd2643526 skcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd278e154 __sbitmap_queue_get +EXPORT_SYMBOL_GPL vmlinux 0xd2842dd2 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd29c1f10 __traceiter_error_report_end +EXPORT_SYMBOL_GPL vmlinux 0xd2c5e916 tpm_is_tpm2 +EXPORT_SYMBOL_GPL vmlinux 0xd2d7e59b unregister_platform_power_off +EXPORT_SYMBOL_GPL vmlinux 0xd2e79416 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xd3034428 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xd303c7c9 genphy_c45_check_and_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xd30834b4 bpf_trace_run6 +EXPORT_SYMBOL_GPL vmlinux 0xd31a2ac5 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xd3243ae8 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xd331a541 dm_report_zones +EXPORT_SYMBOL_GPL vmlinux 0xd3376148 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xd368987b ptep_test_and_clear_uc +EXPORT_SYMBOL_GPL vmlinux 0xd372350f pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xd398b299 devlink_dpipe_entry_ctx_append +EXPORT_SYMBOL_GPL vmlinux 0xd39bb312 pci_epc_mem_free_addr +EXPORT_SYMBOL_GPL vmlinux 0xd39e9848 put_itimerspec64 +EXPORT_SYMBOL_GPL vmlinux 0xd3bb2b2a genphy_c45_restart_aneg +EXPORT_SYMBOL_GPL vmlinux 0xd3ca4b3e regmap_field_bulk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd3d80c51 devm_gpiod_unhinge +EXPORT_SYMBOL_GPL vmlinux 0xd3e3289a fscrypt_get_symlink +EXPORT_SYMBOL_GPL vmlinux 0xd3eaf1ed devlink_dpipe_entry_clear +EXPORT_SYMBOL_GPL vmlinux 0xd3ebbbc0 xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0xd3f0cd42 misc_cg_res_total_usage +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd42f1d4e show_rcu_tasks_rude_gp_kthread +EXPORT_SYMBOL_GPL vmlinux 0xd45916ad badblocks_check +EXPORT_SYMBOL_GPL vmlinux 0xd4596f10 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0xd4692149 pci_epc_get_msix +EXPORT_SYMBOL_GPL vmlinux 0xd47db3c6 fscrypt_dio_supported +EXPORT_SYMBOL_GPL vmlinux 0xd4935851 __SCK__tp_func_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xd497ee84 ip6_route_output_flags_noref +EXPORT_SYMBOL_GPL vmlinux 0xd4b6157e devlink_health_reporter_recovery_done +EXPORT_SYMBOL_GPL vmlinux 0xd4bf483c inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4cbdbe3 __SCK__tp_func_devlink_trap_report +EXPORT_SYMBOL_GPL vmlinux 0xd4fe23f1 sbitmap_queue_recalculate_wake_batch +EXPORT_SYMBOL_GPL vmlinux 0xd509e5e6 dma_get_merge_boundary +EXPORT_SYMBOL_GPL vmlinux 0xd559e98d gpiod_set_value +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd57ae76e clockevents_unbind_device +EXPORT_SYMBOL_GPL vmlinux 0xd591fac2 s390_pci_dma_ops +EXPORT_SYMBOL_GPL vmlinux 0xd59a1587 linkmode_resolve_pause +EXPORT_SYMBOL_GPL vmlinux 0xd5be4b47 proc_dou8vec_minmax +EXPORT_SYMBOL_GPL vmlinux 0xd5d2af0c regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xd5e1a9e1 fwnode_device_is_available +EXPORT_SYMBOL_GPL vmlinux 0xd5e95c4b __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xd5fdfd1f pci_hp_del +EXPORT_SYMBOL_GPL vmlinux 0xd6008803 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd60d9660 phy_check_downshift +EXPORT_SYMBOL_GPL vmlinux 0xd612d775 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd61a221e tpm_transmit_cmd +EXPORT_SYMBOL_GPL vmlinux 0xd64ed259 __memcat_p +EXPORT_SYMBOL_GPL vmlinux 0xd653b126 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0xd65ecbb2 irq_chip_request_resources_parent +EXPORT_SYMBOL_GPL vmlinux 0xd669aaa4 nfs_ssc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd66fd78a fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0xd670f9d0 vmf_insert_pfn_pmd_prot +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd679a444 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd6a42a7d wbc_detach_inode +EXPORT_SYMBOL_GPL vmlinux 0xd6c6b1d9 netdev_walk_all_lower_dev +EXPORT_SYMBOL_GPL vmlinux 0xd6c784a3 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xd6d28484 strp_process +EXPORT_SYMBOL_GPL vmlinux 0xd6d45536 gpiochip_add_data_with_key +EXPORT_SYMBOL_GPL vmlinux 0xd710a206 crypto_unregister_templates +EXPORT_SYMBOL_GPL vmlinux 0xd71d99fe serdev_device_close +EXPORT_SYMBOL_GPL vmlinux 0xd720baa5 __traceiter_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0xd728c358 fscrypt_ioctl_remove_key +EXPORT_SYMBOL_GPL vmlinux 0xd7293ffc percpu_ref_reinit +EXPORT_SYMBOL_GPL vmlinux 0xd72ee47c kstrdup_quotable_file +EXPORT_SYMBOL_GPL vmlinux 0xd7343efc scm_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd73e2603 sysfs_remove_groups +EXPORT_SYMBOL_GPL vmlinux 0xd7493a47 gen_pool_get +EXPORT_SYMBOL_GPL vmlinux 0xd74ac781 dst_blackhole_mtu +EXPORT_SYMBOL_GPL vmlinux 0xd7533f5c __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xd75efded tcp_ca_openreq_child +EXPORT_SYMBOL_GPL vmlinux 0xd774957d mpi_write_to_sgl +EXPORT_SYMBOL_GPL vmlinux 0xd79f0aaf dummy_con +EXPORT_SYMBOL_GPL vmlinux 0xd7adfd2a __platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0xd7d7f2a7 devlink_port_health_reporter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd7dc7515 crc64_rocksoft +EXPORT_SYMBOL_GPL vmlinux 0xd7ee577b fscrypt_ioctl_get_nonce +EXPORT_SYMBOL_GPL vmlinux 0xd7fa3079 fsverity_file_open +EXPORT_SYMBOL_GPL vmlinux 0xd811d6a2 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xd824d3df crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xd8298724 fib4_rule_default +EXPORT_SYMBOL_GPL vmlinux 0xd82d1d21 net_ns_get_ownership +EXPORT_SYMBOL_GPL vmlinux 0xd84d35bd dax_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd8935c8a __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0xd8b0a137 mmu_notifier_range_update_to_read_only +EXPORT_SYMBOL_GPL vmlinux 0xd8b8a45a inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xd8c7a17e __vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xd8d0bf33 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xd8fbb14d net_cls_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xd906d15b __pci_hp_initialize +EXPORT_SYMBOL_GPL vmlinux 0xd91874b5 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd91dbd1f xdp_alloc_skb_bulk +EXPORT_SYMBOL_GPL vmlinux 0xd91ecf0a irq_chip_ack_parent +EXPORT_SYMBOL_GPL vmlinux 0xd92ef192 security_kernel_post_load_data +EXPORT_SYMBOL_GPL vmlinux 0xd933439e irq_domain_disconnect_hierarchy +EXPORT_SYMBOL_GPL vmlinux 0xd940185f bpf_prog_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xd96babb4 interval_tree_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xd9b8cfda alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xd9ccd4c3 ip_route_output_key_hash +EXPORT_SYMBOL_GPL vmlinux 0xd9d0a2af devlink_flash_update_timeout_notify +EXPORT_SYMBOL_GPL vmlinux 0xd9d65050 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xd9e24457 ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0xd9fe8229 gpiod_get_raw_value +EXPORT_SYMBOL_GPL vmlinux 0xda0947de kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xda12d543 pci_epc_get +EXPORT_SYMBOL_GPL vmlinux 0xda2e9893 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xda320d31 sfp_module_start +EXPORT_SYMBOL_GPL vmlinux 0xda3f3e8a isc_register +EXPORT_SYMBOL_GPL vmlinux 0xda667857 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0xda75edb2 folio_invalidate +EXPORT_SYMBOL_GPL vmlinux 0xda8afbf6 sbitmap_queue_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdaa7e154 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xdab5a1eb interval_tree_insert +EXPORT_SYMBOL_GPL vmlinux 0xdac53d12 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xdacb9c66 blk_mq_unquiesce_queue +EXPORT_SYMBOL_GPL vmlinux 0xdadc9280 vp_modern_get_driver_features +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaffae38 devm_bitmap_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdb08ac64 bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xdb0c0f7f kill_pid_usb_asyncio +EXPORT_SYMBOL_GPL vmlinux 0xdb0e51ac fs_dax_get_by_bdev +EXPORT_SYMBOL_GPL vmlinux 0xdb1a0cf2 dm_internal_suspend_fast +EXPORT_SYMBOL_GPL vmlinux 0xdb3d0950 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xdb5a477a xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xdb7d2eee pci_debug_err_id +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb96a975 gpiochip_irq_unmap +EXPORT_SYMBOL_GPL vmlinux 0xdb9b1a69 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xdba57a87 dw_pcie_find_capability +EXPORT_SYMBOL_GPL vmlinux 0xdbb0e3d0 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0xdbc78c05 alloc_skb_for_msg +EXPORT_SYMBOL_GPL vmlinux 0xdbc8ce3c fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xdbdb0e8b request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xdbe8d8a0 __SCK__tp_func_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xdbeeece6 tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdbfddad3 blk_mq_queue_inflight +EXPORT_SYMBOL_GPL vmlinux 0xdc0882b6 crypto_stats_rng_generate +EXPORT_SYMBOL_GPL vmlinux 0xdc135d84 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdc1d0907 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xdc43bdc6 pci_vpd_find_ro_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xdc4af4a5 sock_diag_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdc69193b synth_event_add_fields +EXPORT_SYMBOL_GPL vmlinux 0xdc6bac0d scsi_register_device_handler +EXPORT_SYMBOL_GPL vmlinux 0xdc841b74 misc_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdc94ded2 netdev_walk_all_upper_dev_rcu +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcc0a6b6 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xdcd31577 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xdd0762df set_worker_desc +EXPORT_SYMBOL_GPL vmlinux 0xdd10800a dm_table_set_type +EXPORT_SYMBOL_GPL vmlinux 0xdd239528 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xdd286d41 dma_max_mapping_size +EXPORT_SYMBOL_GPL vmlinux 0xdd2e18fa driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xdd43e316 gpiod_get_optional +EXPORT_SYMBOL_GPL vmlinux 0xdd450ef1 x509_free_certificate +EXPORT_SYMBOL_GPL vmlinux 0xdd5957a9 scsi_internal_device_block_nowait +EXPORT_SYMBOL_GPL vmlinux 0xdd6013f3 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xdd626ee3 fuse_len_args +EXPORT_SYMBOL_GPL vmlinux 0xdd81d8f6 __SCK__tp_func_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xdd8f8527 devlink_trap_policers_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdda2c034 gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xdda666fc elv_rqhash_del +EXPORT_SYMBOL_GPL vmlinux 0xddb38ad5 bpf_prog_alloc +EXPORT_SYMBOL_GPL vmlinux 0xddbeeecc pci_lock_rescan_remove +EXPORT_SYMBOL_GPL vmlinux 0xddf32520 __tracepoint_powernv_throttle +EXPORT_SYMBOL_GPL vmlinux 0xde052e95 fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xde0c4dad bpf_event_output +EXPORT_SYMBOL_GPL vmlinux 0xde31bf7e unregister_sys_off_handler +EXPORT_SYMBOL_GPL vmlinux 0xde34d3cd synth_event_create +EXPORT_SYMBOL_GPL vmlinux 0xde4d67a7 kernfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xde63abcf kernfs_get +EXPORT_SYMBOL_GPL vmlinux 0xde6f1851 TSS_checkhmac1 +EXPORT_SYMBOL_GPL vmlinux 0xde8295cf pci_epc_map_addr +EXPORT_SYMBOL_GPL vmlinux 0xde8c2bd7 mptcp_pm_get_add_addr_signal_max +EXPORT_SYMBOL_GPL vmlinux 0xde9380da fsnotify_init_mark +EXPORT_SYMBOL_GPL vmlinux 0xde9b8700 sock_map_unhash +EXPORT_SYMBOL_GPL vmlinux 0xdeda01a5 sk_psock_init +EXPORT_SYMBOL_GPL vmlinux 0xdeeac743 netlink_strict_get_check +EXPORT_SYMBOL_GPL vmlinux 0xdef43e67 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xdefd3581 crypto_unregister_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf25c94b blk_queue_flag_test_and_set +EXPORT_SYMBOL_GPL vmlinux 0xdf2738bb cpu_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xdf4c2ffe scsi_build_sense +EXPORT_SYMBOL_GPL vmlinux 0xdf50e243 pci_dev_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdf53ef52 tty_set_ldisc +EXPORT_SYMBOL_GPL vmlinux 0xdf67de22 irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xdf801fe2 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xdf861903 phy_gbit_all_ports_features +EXPORT_SYMBOL_GPL vmlinux 0xdf882e90 dw_pcie_ep_init +EXPORT_SYMBOL_GPL vmlinux 0xdf9bc82b sbitmap_any_bit_set +EXPORT_SYMBOL_GPL vmlinux 0xdfa79328 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfc0246e iommu_device_sysfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xdfc43ba9 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdfda26bc regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xdfe21918 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xdfe4eaf4 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xdff192e2 devm_kasprintf_strarray +EXPORT_SYMBOL_GPL vmlinux 0xdffd3161 __clocksource_update_freq_scale +EXPORT_SYMBOL_GPL vmlinux 0xe007f4a9 device_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xe0468d14 bpf_trace_run3 +EXPORT_SYMBOL_GPL vmlinux 0xe05e2f85 nexthop_free_rcu +EXPORT_SYMBOL_GPL vmlinux 0xe06ad0bc iommu_device_sysfs_add +EXPORT_SYMBOL_GPL vmlinux 0xe08ccf14 regmap_multi_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe09281f2 sk_msg_free_partial +EXPORT_SYMBOL_GPL vmlinux 0xe0952475 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe0ad0e07 disk_alloc_independent_access_ranges +EXPORT_SYMBOL_GPL vmlinux 0xe0f93464 sysfs_rename_link_ns +EXPORT_SYMBOL_GPL vmlinux 0xe108e6ab perf_aux_output_end +EXPORT_SYMBOL_GPL vmlinux 0xe10d12f2 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xe10d9ec7 appldata_unregister_ops +EXPORT_SYMBOL_GPL vmlinux 0xe1497be2 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe14ff46a yield_to +EXPORT_SYMBOL_GPL vmlinux 0xe16f3f25 __gmap_translate +EXPORT_SYMBOL_GPL vmlinux 0xe175efd2 skb_mpls_dec_ttl +EXPORT_SYMBOL_GPL vmlinux 0xe1775ee7 dm_get_reserved_bio_based_ios +EXPORT_SYMBOL_GPL vmlinux 0xe177997c pci_epf_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe182b168 ip_route_output_tunnel +EXPORT_SYMBOL_GPL vmlinux 0xe1c120a1 security_file_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe1c87a2f kernel_can_power_off +EXPORT_SYMBOL_GPL vmlinux 0xe1e2184e virtqueue_get_used_addr +EXPORT_SYMBOL_GPL vmlinux 0xe1f14ef8 dm_table_device_name +EXPORT_SYMBOL_GPL vmlinux 0xe1f9f1c7 gmap_enable +EXPORT_SYMBOL_GPL vmlinux 0xe211688d inet6_compat_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe2301741 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe233762a input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0xe260adef pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xe26d46e3 gpiod_set_raw_value +EXPORT_SYMBOL_GPL vmlinux 0xe2700c12 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xe2793c73 tty_buffer_unlock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xe2858ef1 __traceiter_neigh_event_send_done +EXPORT_SYMBOL_GPL vmlinux 0xe2997ce5 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xe29ec5f0 crypto_grab_akcipher +EXPORT_SYMBOL_GPL vmlinux 0xe2b3207a unregister_switchdev_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe2bb0fc5 crypto_comp_compress +EXPORT_SYMBOL_GPL vmlinux 0xe2f21bc1 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xe307205a bprintf +EXPORT_SYMBOL_GPL vmlinux 0xe3074ef9 iommu_unregister_device_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3176fae sbitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xe31d93a3 __cookie_v6_init_sequence +EXPORT_SYMBOL_GPL vmlinux 0xe325380a blk_queue_required_elevator_features +EXPORT_SYMBOL_GPL vmlinux 0xe3488a48 fscrypt_mergeable_bio_bh +EXPORT_SYMBOL_GPL vmlinux 0xe3840e18 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xe3b09712 kprobe_event_delete +EXPORT_SYMBOL_GPL vmlinux 0xe3e423ac iommu_group_release_dma_owner +EXPORT_SYMBOL_GPL vmlinux 0xe40bb23e devlink_health_reporter_priv +EXPORT_SYMBOL_GPL vmlinux 0xe41fbf5d query_asymmetric_key +EXPORT_SYMBOL_GPL vmlinux 0xe451d2f3 xas_init_marks +EXPORT_SYMBOL_GPL vmlinux 0xe4529cd3 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xe45f2fe2 debugfs_create_ulong +EXPORT_SYMBOL_GPL vmlinux 0xe484ff90 phy_speed_down +EXPORT_SYMBOL_GPL vmlinux 0xe4971ade tracing_alloc_snapshot +EXPORT_SYMBOL_GPL vmlinux 0xe4a95266 blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe4b064f9 pcie_link_speed +EXPORT_SYMBOL_GPL vmlinux 0xe4b4bd8f pkcs7_parse_message +EXPORT_SYMBOL_GPL vmlinux 0xe4b818c3 phy_speed_to_str +EXPORT_SYMBOL_GPL vmlinux 0xe4bfaef2 fbcon_modechange_possible +EXPORT_SYMBOL_GPL vmlinux 0xe4c7af1a raw_v6_hashinfo +EXPORT_SYMBOL_GPL vmlinux 0xe4c9dfd5 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xe4d4f103 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xe4ddd54c blk_next_bio +EXPORT_SYMBOL_GPL vmlinux 0xe4e48b12 swphy_validate_state +EXPORT_SYMBOL_GPL vmlinux 0xe50c5cf1 pci_assign_unassigned_bus_resources +EXPORT_SYMBOL_GPL vmlinux 0xe50dcd58 xfrm_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe5366e09 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xe5510e82 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xe56422b6 switchdev_port_obj_add +EXPORT_SYMBOL_GPL vmlinux 0xe56cc888 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5ab96ed irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xe5afdc9a blkdev_zone_mgmt +EXPORT_SYMBOL_GPL vmlinux 0xe5b0436a sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xe5b68a65 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xe5b76bac crypto_stats_kpp_set_secret +EXPORT_SYMBOL_GPL vmlinux 0xe5ea741c fwnode_get_nth_parent +EXPORT_SYMBOL_GPL vmlinux 0xe5fad476 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xe60a5e8d pids_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xe628bb9f phy_fibre_port_array +EXPORT_SYMBOL_GPL vmlinux 0xe645b79c mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xe64dc1f4 xas_find_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe6bcd7c0 gpiochip_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xe6e40502 rcu_get_gp_seq +EXPORT_SYMBOL_GPL vmlinux 0xe6e6b684 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xe72e844b __rht_bucket_nested +EXPORT_SYMBOL_GPL vmlinux 0xe752ab92 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xe753b68d devlink_fmsg_arr_pair_nest_end +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe77b4854 __traceiter_pelt_rt_tp +EXPORT_SYMBOL_GPL vmlinux 0xe783e261 sysfs_emit +EXPORT_SYMBOL_GPL vmlinux 0xe7849a53 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0xe79bf0c4 klp_shadow_get +EXPORT_SYMBOL_GPL vmlinux 0xe7b18a2d crypto_stats_akcipher_sign +EXPORT_SYMBOL_GPL vmlinux 0xe7b718df chsc_determine_channel_path_desc +EXPORT_SYMBOL_GPL vmlinux 0xe7bd7d83 css_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7c25d2f fib_rules_dump +EXPORT_SYMBOL_GPL vmlinux 0xe7c33c22 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xe7c9d18d pci_msi_create_irq_domain +EXPORT_SYMBOL_GPL vmlinux 0xe7d6d2d4 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0xe7f2bc62 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xe8300fde iomap_fiemap +EXPORT_SYMBOL_GPL vmlinux 0xe8715bd0 percpu_free_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xe88168d4 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xe8889761 crypto_unregister_aeads +EXPORT_SYMBOL_GPL vmlinux 0xe8a516c6 __skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe8a88607 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xe8c0065d memory_group_register_static +EXPORT_SYMBOL_GPL vmlinux 0xe8d60a80 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe8de5e47 __traceiter_attach_device_to_domain +EXPORT_SYMBOL_GPL vmlinux 0xe8f77567 sbitmap_queue_resize +EXPORT_SYMBOL_GPL vmlinux 0xe9073dc7 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xe911df29 eventfd_ctx_do_read +EXPORT_SYMBOL_GPL vmlinux 0xe920731c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe92b7630 pci_domain_nr +EXPORT_SYMBOL_GPL vmlinux 0xe935ac98 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe93a4569 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe95cf933 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0xe96a0441 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0xe9949976 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0xe999dda7 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe9b84f5a dw_pcie_ep_linkup +EXPORT_SYMBOL_GPL vmlinux 0xe9d247be rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xe9e2f6a9 __traceiter_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe9f5116f rcu_exp_jiffies_till_stall_check +EXPORT_SYMBOL_GPL vmlinux 0xea018bbb mpi_test_bit +EXPORT_SYMBOL_GPL vmlinux 0xea066330 rhashtable_walk_enter +EXPORT_SYMBOL_GPL vmlinux 0xea0c0fa8 sysfs_break_active_protection +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea327021 proc_create_net_data +EXPORT_SYMBOL_GPL vmlinux 0xea38036f ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0xea3a23f3 public_key_free +EXPORT_SYMBOL_GPL vmlinux 0xea412fff blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xea5749a3 aead_exit_geniv +EXPORT_SYMBOL_GPL vmlinux 0xea5777fe ethnl_cable_test_step +EXPORT_SYMBOL_GPL vmlinux 0xea7aede1 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xea937b9a __devm_alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0xea9ac050 inet_ehash_locks_alloc +EXPORT_SYMBOL_GPL vmlinux 0xeaabf919 nd_tbl +EXPORT_SYMBOL_GPL vmlinux 0xeab4bfe9 irq_domain_alloc_irqs_parent +EXPORT_SYMBOL_GPL vmlinux 0xeab98eb8 trace_array_put +EXPORT_SYMBOL_GPL vmlinux 0xeac4bdf1 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xead035ee __tracepoint_fib6_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xead3e41b __traceiter_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xeae0f496 clean_acked_data_flush +EXPORT_SYMBOL_GPL vmlinux 0xeae4ee4f regmap_attach_dev +EXPORT_SYMBOL_GPL vmlinux 0xeae77d3c bio_add_zone_append_page +EXPORT_SYMBOL_GPL vmlinux 0xeaeebadb xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0xeaf2d0f8 md_bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xeb2cf9e6 sk_free_unlock_clone +EXPORT_SYMBOL_GPL vmlinux 0xeb317ee6 __traceiter_unmap +EXPORT_SYMBOL_GPL vmlinux 0xeb40ce4e ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xeb41becf driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xeb496f37 __blk_req_zone_write_unlock +EXPORT_SYMBOL_GPL vmlinux 0xeb6325b9 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xeb675373 bpf_trace_run7 +EXPORT_SYMBOL_GPL vmlinux 0xeb69e625 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xeb6f82ac ftrace_set_filter_ips +EXPORT_SYMBOL_GPL vmlinux 0xeb78a360 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xeb9a96e1 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xebd30641 gpiochip_irq_domain_deactivate +EXPORT_SYMBOL_GPL vmlinux 0xebdf4491 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xec058910 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xec07b598 dax_iomap_rw +EXPORT_SYMBOL_GPL vmlinux 0xec13c83c si_swapinfo +EXPORT_SYMBOL_GPL vmlinux 0xec387c03 bpf_prog_create +EXPORT_SYMBOL_GPL vmlinux 0xec412763 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xec6bb621 sched_setattr_nocheck +EXPORT_SYMBOL_GPL vmlinux 0xeccd5eb1 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xecdb6b07 __account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xed08cabd __xas_prev +EXPORT_SYMBOL_GPL vmlinux 0xed154459 mptcp_token_get_sock +EXPORT_SYMBOL_GPL vmlinux 0xed188358 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xed2d9bee xas_get_mark +EXPORT_SYMBOL_GPL vmlinux 0xed48a163 __zpci_store_block +EXPORT_SYMBOL_GPL vmlinux 0xed4d9487 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xed64191b class_create_file_ns +EXPORT_SYMBOL_GPL vmlinux 0xed7bdb90 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xed7c39e5 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0xed817334 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xed8c384b netdev_xmit_skip_txqueue +EXPORT_SYMBOL_GPL vmlinux 0xed90d898 iomap_seek_hole +EXPORT_SYMBOL_GPL vmlinux 0xed97b156 irq_domain_set_hwirq_and_chip +EXPORT_SYMBOL_GPL vmlinux 0xedbf7976 skb_append_pagefrags +EXPORT_SYMBOL_GPL vmlinux 0xedc1f53e set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xedf55abb zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0xee06c587 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xee0898cf __page_mapcount +EXPORT_SYMBOL_GPL vmlinux 0xee1f5126 __tracepoint_neigh_timer_handler +EXPORT_SYMBOL_GPL vmlinux 0xee284d73 pci_epc_multi_mem_init +EXPORT_SYMBOL_GPL vmlinux 0xee38ef57 register_switchdev_blocking_notifier +EXPORT_SYMBOL_GPL vmlinux 0xee61b493 serdev_device_set_tiocm +EXPORT_SYMBOL_GPL vmlinux 0xee6c633a devices_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xee6eb1d3 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xee71f8c6 gpiod_is_active_low +EXPORT_SYMBOL_GPL vmlinux 0xeea834c0 kprobe_event_cmd_init +EXPORT_SYMBOL_GPL vmlinux 0xeec4029b sysfs_unbreak_active_protection +EXPORT_SYMBOL_GPL vmlinux 0xeedd987e phy_10gbit_features_array +EXPORT_SYMBOL_GPL vmlinux 0xeedda072 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xef13106c nr_threads +EXPORT_SYMBOL_GPL vmlinux 0xef2c0dc7 kvm_vcpu_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0xef36c50b perf_event_period +EXPORT_SYMBOL_GPL vmlinux 0xef442724 sbitmap_prepare_to_wait +EXPORT_SYMBOL_GPL vmlinux 0xef464c28 getboottime64 +EXPORT_SYMBOL_GPL vmlinux 0xef566a66 balloon_page_list_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef70eb7e ring_buffer_iter_advance +EXPORT_SYMBOL_GPL vmlinux 0xef7d6224 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xefa0fb12 nf_hook_entries_insert_raw +EXPORT_SYMBOL_GPL vmlinux 0xefa2c27d register_tracepoint_module_notifier +EXPORT_SYMBOL_GPL vmlinux 0xefb37d30 iomap_truncate_page +EXPORT_SYMBOL_GPL vmlinux 0xefef182b bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xf036dc4a debugfs_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xf05a52fe asn1_encode_oid +EXPORT_SYMBOL_GPL vmlinux 0xf05fbf09 pci_pio_to_address +EXPORT_SYMBOL_GPL vmlinux 0xf0648a85 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xf080db15 xas_create_range +EXPORT_SYMBOL_GPL vmlinux 0xf089b612 fscrypt_symlink_getattr +EXPORT_SYMBOL_GPL vmlinux 0xf0910075 sfp_bus_del_upstream +EXPORT_SYMBOL_GPL vmlinux 0xf0ac38e5 kernel_read_file +EXPORT_SYMBOL_GPL vmlinux 0xf0ae1726 gpiochip_irq_map +EXPORT_SYMBOL_GPL vmlinux 0xf0d8cce1 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xf0f2d8f1 software_node_unregister_nodes +EXPORT_SYMBOL_GPL vmlinux 0xf0f3c800 sfp_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xf101c303 device_create_managed_software_node +EXPORT_SYMBOL_GPL vmlinux 0xf102c0de tty_buffer_lock_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf103ea76 mptcp_token_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xf10e5b15 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xf10f5ffb switchdev_handle_port_obj_del +EXPORT_SYMBOL_GPL vmlinux 0xf126b288 proc_douintvec_minmax +EXPORT_SYMBOL_GPL vmlinux 0xf14317ef devl_rate_nodes_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf14ecc3d crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xf158a146 gmap_shadow_pgt +EXPORT_SYMBOL_GPL vmlinux 0xf167aa0c crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf198d634 blk_queue_max_zone_append_sectors +EXPORT_SYMBOL_GPL vmlinux 0xf19a9212 __inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xf19e202f devm_gpiod_put_array +EXPORT_SYMBOL_GPL vmlinux 0xf1f2f6cb tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xf1fd5267 posix_acl_create +EXPORT_SYMBOL_GPL vmlinux 0xf2062641 dst_cache_set_ip6 +EXPORT_SYMBOL_GPL vmlinux 0xf21b4e2a posix_acl_access_xattr_handler +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf227860e pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xf23ac2a0 pci_d3cold_enable +EXPORT_SYMBOL_GPL vmlinux 0xf2662931 crypto_unregister_acomps +EXPORT_SYMBOL_GPL vmlinux 0xf27809d2 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xf28404cf devlink_dpipe_header_ipv6 +EXPORT_SYMBOL_GPL vmlinux 0xf284c152 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xf2967796 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0xf2ada6a7 crypto_stats_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xf2b2e360 pkcs7_get_content_data +EXPORT_SYMBOL_GPL vmlinux 0xf2b33cb7 memory_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xf2b393ea __fscrypt_prepare_link +EXPORT_SYMBOL_GPL vmlinux 0xf2ce740c relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xf2ce862e mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf2d00767 ima_file_check +EXPORT_SYMBOL_GPL vmlinux 0xf2d8b6b2 virtio_require_restricted_mem_acc +EXPORT_SYMBOL_GPL vmlinux 0xf2ddf8ff perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xf2e72eb1 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xf2f68aa7 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf2fb61bd vprintk_default +EXPORT_SYMBOL_GPL vmlinux 0xf2fc9248 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xf311e156 key_being_used_for +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf3320e3c replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xf352023f memory_cgrp_subsys_enabled_key +EXPORT_SYMBOL_GPL vmlinux 0xf3797506 mpi_ec_deinit +EXPORT_SYMBOL_GPL vmlinux 0xf37fc0c7 account_locked_vm +EXPORT_SYMBOL_GPL vmlinux 0xf3808cb1 get_state_synchronize_rcu +EXPORT_SYMBOL_GPL vmlinux 0xf3862e62 lwtunnel_state_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf3c09e80 skb_gso_validate_network_len +EXPORT_SYMBOL_GPL vmlinux 0xf3cb7676 platform_msi_domain_free_irqs +EXPORT_SYMBOL_GPL vmlinux 0xf3cf86f4 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xf3ed98e9 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xf3f8fcfb kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0xf42ab557 kernfs_put +EXPORT_SYMBOL_GPL vmlinux 0xf42d7431 add_swap_extent +EXPORT_SYMBOL_GPL vmlinux 0xf43f2540 fib_nh_common_release +EXPORT_SYMBOL_GPL vmlinux 0xf4483b4f perf_aux_output_flag +EXPORT_SYMBOL_GPL vmlinux 0xf44a6e59 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xf4662a03 bpf_prog_add +EXPORT_SYMBOL_GPL vmlinux 0xf466d537 blk_mq_virtio_map_queues +EXPORT_SYMBOL_GPL vmlinux 0xf4689d50 linkmode_set_pause +EXPORT_SYMBOL_GPL vmlinux 0xf47654df irq_check_status_bit +EXPORT_SYMBOL_GPL vmlinux 0xf48e8955 gmap_discard +EXPORT_SYMBOL_GPL vmlinux 0xf4a00349 __tracepoint_block_rq_insert +EXPORT_SYMBOL_GPL vmlinux 0xf4a272fa kvm_get_dirty_log +EXPORT_SYMBOL_GPL vmlinux 0xf4af35c2 rcu_gp_is_normal +EXPORT_SYMBOL_GPL vmlinux 0xf4ed648b unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf50e192e platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf513aa50 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0xf515821d phy_basic_features +EXPORT_SYMBOL_GPL vmlinux 0xf5223683 blk_crypto_evict_key +EXPORT_SYMBOL_GPL vmlinux 0xf536954b anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xf546212b kset_find_obj +EXPORT_SYMBOL_GPL vmlinux 0xf54a9b1a bpf_prog_inc +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf556b788 ipv6_stub +EXPORT_SYMBOL_GPL vmlinux 0xf57851bc kvm_io_bus_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xf5792e17 kpp_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf5838d82 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xf586ad50 s390_unlist_old_asce +EXPORT_SYMBOL_GPL vmlinux 0xf594a659 mptcp_diag_fill_info +EXPORT_SYMBOL_GPL vmlinux 0xf5a067bf iommu_group_dma_owner_claimed +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b765ce appldata_register_ops +EXPORT_SYMBOL_GPL vmlinux 0xf5bd83f1 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0xf5c2e96a bpf_prog_put +EXPORT_SYMBOL_GPL vmlinux 0xf5d73dcf ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0xf5f370e0 async_schedule_node +EXPORT_SYMBOL_GPL vmlinux 0xf5fff299 vp_legacy_set_status +EXPORT_SYMBOL_GPL vmlinux 0xf61f3c12 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xf62ae674 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0xf62c5ae7 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0xf64e8d39 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xf65758a9 tracing_snapshot_cond_disable +EXPORT_SYMBOL_GPL vmlinux 0xf657be8f __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0xf65e7c0d netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0xf6632a7e __fscrypt_prepare_setattr +EXPORT_SYMBOL_GPL vmlinux 0xf6721978 virtqueue_get_avail_addr +EXPORT_SYMBOL_GPL vmlinux 0xf6beee37 __SCK__tp_func_pelt_cfs_tp +EXPORT_SYMBOL_GPL vmlinux 0xf6c296b2 crc64_rocksoft_update +EXPORT_SYMBOL_GPL vmlinux 0xf6c8dc62 cpu_hotplug_enable +EXPORT_SYMBOL_GPL vmlinux 0xf6d6e03e device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf6d768c3 proc_create_net_single_write +EXPORT_SYMBOL_GPL vmlinux 0xf70620c1 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xf70f1d89 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xf72a65ea tty_get_char_size +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 0xf7676098 cgroup_get_from_id +EXPORT_SYMBOL_GPL vmlinux 0xf782fb07 percpu_ref_switch_to_atomic_sync +EXPORT_SYMBOL_GPL vmlinux 0xf7bc95b0 devlink_fmsg_pair_nest_start +EXPORT_SYMBOL_GPL vmlinux 0xf7bd60e3 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xf7c6a15a fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xf7d23694 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xf7de8124 ccw_device_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xf7f021cf class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xf7ff825d regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xf81994a2 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf83e946e pci_iov_vf_id +EXPORT_SYMBOL_GPL vmlinux 0xf846acd4 gpiochip_irqchip_irq_valid +EXPORT_SYMBOL_GPL vmlinux 0xf846e70b __traceiter_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xf852d746 __tracepoint_tcp_send_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8548ca1 trace_add_event_call +EXPORT_SYMBOL_GPL vmlinux 0xf855ccce __zpci_store +EXPORT_SYMBOL_GPL vmlinux 0xf8638fb6 pci_bridge_secondary_bus_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8706890 bpf_trace_run2 +EXPORT_SYMBOL_GPL vmlinux 0xf871a532 report_iommu_fault +EXPORT_SYMBOL_GPL vmlinux 0xf87d8c2a kthread_flush_worker +EXPORT_SYMBOL_GPL vmlinux 0xf883bf93 crypto_dh_key_len +EXPORT_SYMBOL_GPL vmlinux 0xf886084c vp_legacy_remove +EXPORT_SYMBOL_GPL vmlinux 0xf89d2b93 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xf8a973f8 check_move_unevictable_pages +EXPORT_SYMBOL_GPL vmlinux 0xf8c3dc85 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0xf8e90fc2 badblocks_store +EXPORT_SYMBOL_GPL vmlinux 0xf9093f5b __tracepoint_cpu_frequency +EXPORT_SYMBOL_GPL vmlinux 0xf9283fb5 bpf_map_inc_not_zero +EXPORT_SYMBOL_GPL vmlinux 0xf94bd0a8 tcp_sendpage_locked +EXPORT_SYMBOL_GPL vmlinux 0xf9516b7a iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xf95322f4 kthread_parkme +EXPORT_SYMBOL_GPL vmlinux 0xf96ecc78 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xf9718867 crypto_unregister_acomp +EXPORT_SYMBOL_GPL vmlinux 0xf989547f __kthread_init_worker +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9afb62d trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xf9f33295 strp_data_ready +EXPORT_SYMBOL_GPL vmlinux 0xfa102628 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xfa1588c5 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa20174d gmap_disable +EXPORT_SYMBOL_GPL vmlinux 0xfa2872f2 trace_seq_path +EXPORT_SYMBOL_GPL vmlinux 0xfa2955c5 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0xfa359df7 device_set_node +EXPORT_SYMBOL_GPL vmlinux 0xfa5c30f4 __traceiter_devlink_hwmsg +EXPORT_SYMBOL_GPL vmlinux 0xfa5f2bbb vp_legacy_config_vector +EXPORT_SYMBOL_GPL vmlinux 0xfa666974 queue_work_node +EXPORT_SYMBOL_GPL vmlinux 0xfa6ca5f0 gmap_sync_dirty_log_pmd +EXPORT_SYMBOL_GPL vmlinux 0xfa7176ff __traceiter_sched_overutilized_tp +EXPORT_SYMBOL_GPL vmlinux 0xfa75adce gpiochip_get_desc +EXPORT_SYMBOL_GPL vmlinux 0xfa890dfa devm_gpiod_get_index +EXPORT_SYMBOL_GPL vmlinux 0xfa9a49b0 balloon_page_list_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xfaaf82de iommu_fwspec_free +EXPORT_SYMBOL_GPL vmlinux 0xfab1671a ethtool_set_ethtool_phy_ops +EXPORT_SYMBOL_GPL vmlinux 0xfab30dc0 mdio_bus_exit +EXPORT_SYMBOL_GPL vmlinux 0xfab3e40d tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xfad37ea4 sbitmap_show +EXPORT_SYMBOL_GPL vmlinux 0xfad9c827 kill_dax +EXPORT_SYMBOL_GPL vmlinux 0xfafd9d87 crypto_type_has_alg +EXPORT_SYMBOL_GPL vmlinux 0xfb073628 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb43d644 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xfb5cb000 inet_hashinfo2_init_mod +EXPORT_SYMBOL_GPL vmlinux 0xfb5e7463 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xfb60e97f acct_bioset_exit +EXPORT_SYMBOL_GPL vmlinux 0xfb625cad switchdev_handle_port_obj_del_foreign +EXPORT_SYMBOL_GPL vmlinux 0xfb62a86b scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xfb6c9ea1 kvm_vcpu_gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xfb8228a8 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xfb8c43c1 dw_pcie_link_up +EXPORT_SYMBOL_GPL vmlinux 0xfbbd41ca no_action +EXPORT_SYMBOL_GPL vmlinux 0xfbd0eec3 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0xfbd5be9f sysfs_change_owner +EXPORT_SYMBOL_GPL vmlinux 0xfbee1d4e gpiod_set_array_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xfbf9953c tpmm_chip_alloc +EXPORT_SYMBOL_GPL vmlinux 0xfbfa6a82 skb_defer_rx_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xfbffd601 net_prio_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc0a7376 tty_ldisc_receive_buf +EXPORT_SYMBOL_GPL vmlinux 0xfc14bb2e dm_get_dev_t +EXPORT_SYMBOL_GPL vmlinux 0xfc1a6cc9 tcp_get_syncookie_mss +EXPORT_SYMBOL_GPL vmlinux 0xfc2b1bfe css_driver_register +EXPORT_SYMBOL_GPL vmlinux 0xfc2bcf93 devlink_port_type_clear +EXPORT_SYMBOL_GPL vmlinux 0xfc4493c5 synth_event_trace_array +EXPORT_SYMBOL_GPL vmlinux 0xfc464ebd netdev_cmd_to_name +EXPORT_SYMBOL_GPL vmlinux 0xfc51c4d2 kvm_get_kvm_safe +EXPORT_SYMBOL_GPL vmlinux 0xfc6204ef gpiod_count +EXPORT_SYMBOL_GPL vmlinux 0xfc771215 vp_modern_queue_vector +EXPORT_SYMBOL_GPL vmlinux 0xfca7f934 devlink_region_create +EXPORT_SYMBOL_GPL vmlinux 0xfcb7f8af sch_frag_xmit_hook +EXPORT_SYMBOL_GPL vmlinux 0xfcbfccdb pci_ats_supported +EXPORT_SYMBOL_GPL vmlinux 0xfcbfec70 add_memory_driver_managed +EXPORT_SYMBOL_GPL vmlinux 0xfcc1edd3 memory_block_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0xfcf9ef73 hw_protection_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xfcfa622f msi_next_desc +EXPORT_SYMBOL_GPL vmlinux 0xfd2a481e lzorle1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0xfd2c62ad devlink_dpipe_table_counter_enabled +EXPORT_SYMBOL_GPL vmlinux 0xfd39848a fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xfd49b3bd fuse_dev_alloc_install +EXPORT_SYMBOL_GPL vmlinux 0xfd4bb4f3 crypto_register_aeads +EXPORT_SYMBOL_GPL vmlinux 0xfd4c428c gpiod_get_raw_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0xfd4f3a1c md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xfd56553e gmap_convert_to_secure +EXPORT_SYMBOL_GPL vmlinux 0xfd5b1c72 devlink_dpipe_table_resource_set +EXPORT_SYMBOL_GPL vmlinux 0xfd5cecf1 software_node_fwnode +EXPORT_SYMBOL_GPL vmlinux 0xfd8e6fa3 apply_to_existing_page_range +EXPORT_SYMBOL_GPL vmlinux 0xfd921da7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0xfd94f29a split_page +EXPORT_SYMBOL_GPL vmlinux 0xfda7e164 crypto_wait_for_test +EXPORT_SYMBOL_GPL vmlinux 0xfdbd7a17 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xfdd462ac gpiod_disable_hw_timestamp_ns +EXPORT_SYMBOL_GPL vmlinux 0xfdd71bd2 sock_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xfdf40615 regmap_update_bits_base +EXPORT_SYMBOL_GPL vmlinux 0xfdfefb5e __cookie_v4_check +EXPORT_SYMBOL_GPL vmlinux 0xfe01e7e2 blkg_rwstat_init +EXPORT_SYMBOL_GPL vmlinux 0xfe15c837 register_btf_id_dtor_kfuncs +EXPORT_SYMBOL_GPL vmlinux 0xfe1a7a7b mpi_point_release +EXPORT_SYMBOL_GPL vmlinux 0xfe2d7aac pci_epc_unmap_addr +EXPORT_SYMBOL_GPL vmlinux 0xfe378d9d device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xfe433284 tty_kclose +EXPORT_SYMBOL_GPL vmlinux 0xfe476039 ktime_get_resolution_ns +EXPORT_SYMBOL_GPL vmlinux 0xfe5ce0f1 handle_untracked_irq +EXPORT_SYMBOL_GPL vmlinux 0xfe6993b5 kvm_flush_remote_tlbs +EXPORT_SYMBOL_GPL vmlinux 0xfe8cdb84 ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfe992f5a pci_epc_remove_epf +EXPORT_SYMBOL_GPL vmlinux 0xfea8f006 irq_domain_create_simple +EXPORT_SYMBOL_GPL vmlinux 0xfec9c3c3 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xfed7d8d2 bsg_remove_queue +EXPORT_SYMBOL_GPL vmlinux 0xfede9222 __tracepoint_suspend_resume +EXPORT_SYMBOL_GPL vmlinux 0xfee6add7 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xfee91d42 xdp_attachment_setup +EXPORT_SYMBOL_GPL vmlinux 0xfeebf0eb vfs_fallocate +EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0b8100 xdp_build_skb_from_frame +EXPORT_SYMBOL_GPL vmlinux 0xff11ea7a fwnode_graph_get_remote_port_parent +EXPORT_SYMBOL_GPL vmlinux 0xff190f0e gmap_pmdp_csp +EXPORT_SYMBOL_GPL vmlinux 0xff351ac6 gpiochip_reqres_irq +EXPORT_SYMBOL_GPL vmlinux 0xff403774 region_intersects +EXPORT_SYMBOL_GPL vmlinux 0xff4d775f crypto_register_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xff5ff882 gpiochip_line_is_open_source +EXPORT_SYMBOL_GPL vmlinux 0xff633797 regmap_write_async +EXPORT_SYMBOL_GPL vmlinux 0xff7a2f70 vp_modern_remove +EXPORT_SYMBOL_GPL vmlinux 0xff7e33bf mpi_sub_ui +EXPORT_SYMBOL_GPL vmlinux 0xff81487d gpiod_remove_lookup_table +EXPORT_SYMBOL_GPL vmlinux 0xff8cbf4b rhashtable_walk_start_check +EXPORT_SYMBOL_GPL vmlinux 0xff9e23d1 hugetlb_cgrp_subsys_on_dfl_key +EXPORT_SYMBOL_GPL vmlinux 0xffae8e8b nsecs_to_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xffd3f66c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xffd9e5e4 blk_queue_write_cache +EXPORT_SYMBOL_GPL vmlinux 0xffdd6d3c regmap_async_complete +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0x07342898 unregister_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xae43feea register_firmware_config_sysctl vmlinux +FIRMWARE_LOADER_PRIVATE EXPORT_SYMBOL_GPL 0xd3ae7756 fw_fallback_config vmlinux +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x32ebbe0e nvme_command_effects drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x529ed46a nvme_execute_passthru_rq drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x6f1ec35a nvme_put_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x78bf751e nvme_ctrl_from_file drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0x8aa77935 nvme_find_get_ns drivers/nvme/host/nvme-core +NVME_TARGET_PASSTHRU EXPORT_SYMBOL_GPL 0xbb0c0b0c nvme_passthru_end drivers/nvme/host/nvme-core +TEST_FIRMWARE EXPORT_SYMBOL_GPL 0x46ed53c1 firmware_request_builtin vmlinux --- linux-5.19.0.orig/debian.master/abi/s390x/generic.compiler +++ linux-5.19.0/debian.master/abi/s390x/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu 12.2.0-3ubuntu1) 12.2.0 --- linux-5.19.0.orig/debian.master/abi/s390x/generic.modules +++ linux-5.19.0/debian.master/abi/s390x/generic.modules @@ -0,0 +1,974 @@ +8021q +842 +842_compress +842_decompress +9p +9pnet +9pnet_fd +9pnet_rdma +9pnet_virtio +act_bpf +act_connmark +act_csum +act_ct +act_ctinfo +act_gact +act_gate +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 +amlogic-gxl-crypto +amt +ansi_cprng +appldata_mem +appldata_net_sum +appldata_os +aquantia +arp_tables +arpt_mangle +arptable_filter +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +auth_rpcgss +authenc +authencesn +ba431-rng +bcache +bcm-phy-lib +bcm54140 +bcm7xxx +bcm87xx +bfq +binfmt_misc +blake2b_generic +blocklayoutdriver +blowfish_common +blowfish_generic +bochs +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 +chacha_s390 +chsc_sch +cicada +cifs +cifs_arc4 +cifs_md4 +cls_basic +cls_bpf +cls_cgroup +cls_flow +cls_flower +cls_fw +cls_matchall +cls_route +cls_rsvp +cls_rsvp6 +cls_u32 +cmac +coda +cordic +cortina +crc-itu-t +crc32-vx_s390 +crc32_generic +crc4 +crc7 +crc8 +cryptd +crypto_engine +crypto_user +ctcm +curve25519-generic +cuse +dasd_diag_mod +dasd_eckd_mod +dasd_fba_mod +dasd_mod +davicom +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dcssblk +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-ebs +dm-era +dm-flakey +dm-historical-service-time +dm-integrity +dm-io-affinity +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 +dp83869 +dp83tc811 +drbd +drm +drm_kms_helper +drm_panel_orientation_quirks +drm_shmem_helper +drm_ttm_helper +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 +ecdsa_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 +fou +fou6 +fpga-mgr +fs3270 +fscache +fsm +garp +geneve +genwqe_card +gfs2 +ghash_s390 +gpio-aggregator +gpio-bt8xx +gpio-generic +gpio-pci-idio-16 +gpio-pcie-idio-24 +gpio-sim +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 +kheaders +kmem +ksmbd +kyber-iosched +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +lcs +libceph +libchacha +libchacha20poly1305 +libcrc32c +libcurve25519 +libcurve25519-generic +libdes +libfc +libfcoe +libiscsi +libiscsi_tcp +libpoly1305 +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 +mdio-i2c +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 +monreader +monwriter +mpls_gso +mpls_iptunnel +mpls_router +mpt3sas +mptcp_diag +mrp +mscc +msdos +national +nbd +net_failover +netconsole +netdevsim +netfs +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_log_syslog +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_tproxy_ipv4 +nf_tproxy_ipv6 +nfnetlink +nfnetlink_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_hook +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_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_reject_netdev +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 +ntfs3 +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 +orangefs +overlay +p8022 +paes_s390 +parman +pcbc +pci-pf-stub +pci-stub +pcrypt +phylink +pkcs7_test_key +pkcs8_key_parser +pkey +pktgen +pnet +poly1305_generic +pretimeout_panic +prng +psample +psnap +ptp +ptp_clockmatrix +ptp_ines +qdio +qeth +qeth_l2 +qeth_l3 +qsemi +quota_tree +quota_v1 +quota_v2 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid_class +raw_diag +rbd +rdma_cm +rdma_rxe +rdma_ucm +rds +rds_rdma +rds_tcp +realtek +regmap-i2c +rmd160 +rnbd-client +rnbd-server +rockchip +rpcrdma +rpcsec_gss_krb5 +rtrs-client +rtrs-core +rtrs-server +rxrpc +s390-trng +sample-trace-array +sch_cake +sch_cbq +sch_cbs +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_etf +sch_ets +sch_fq +sch_fq_codel +sch_fq_pie +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 +serial_core +serpent_generic +sfp +sha1_s390 +sha256_s390 +sha3_256_s390 +sha3_512_s390 +sha3_generic +sha512_s390 +sha_common +shiftfs +simple-mfd-i2c +siox-bus-gpio +siox-core +sit +siw +slicoss +slim-qcom-ctrl +slimbus +sm2_generic +sm3 +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 +team +team_mode_activebackup +team_mode_broadcast +team_mode_loadbalance +team_mode_random +team_mode_roundrobin +teranetics +test_blackhole_dev +test_bpf +tipc +tls +tpm_vtpm_proxy +trace-printk +ts_bm +ts_fsm +ts_kmp +tsnep +ttm +tunnel4 +tunnel6 +twofish_common +twofish_generic +uPD60620 +uartlite +ubuntu-host +udf +udp_diag +udp_tunnel +uio +unix_diag +veth +vfio +vfio-pci +vfio-pci-core +vfio_ap +vfio_ccw +vfio_iommu_type1 +vfio_virqfd +vhost +vhost_iotlb +vhost_net +vhost_scsi +vhost_vsock +virtio-gpu +virtio-rng +virtio_blk +virtio_crypto +virtio_dma_buf +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 +vsock_loopback +vsockmon +vxlan +wireguard +wp512 +x_tables +xcbc +xfrm4_tunnel +xfrm6_tunnel +xfrm_algo +xfrm_interface +xfrm_ipcomp +xfrm_user +xfs +xilinx_emac +xilinx_gmii2rgmii +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 +zlua +znvpair +zonefs +zram +zstd +zunicode +zzstd --- linux-5.19.0.orig/debian.master/abi/s390x/generic.retpoline +++ linux-5.19.0/debian.master/abi/s390x/generic.retpoline @@ -0,0 +1 @@ +# RETPOLINE NOT ENABLED --- linux-5.19.0.orig/debian.master/abi/version +++ linux-5.19.0/debian.master/abi/version @@ -0,0 +1 @@ +5.19.0-40.41 --- linux-5.19.0.orig/debian.master/changelog +++ linux-5.19.0/debian.master/changelog @@ -0,0 +1,24203 @@ +linux (5.19.0-41.42) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-41.42 -proposed tracker (LP: #2016651) + + * CVE-2023-1829 + - net/sched: Retire tcindex classifier + - [Config]: Make sure CONFIG_NET_CLS_TCINDEX is not available + + * CVE-2023-0386 + - ovl: fail on invalid uid/gid mapping at copy up + + -- Thadeu Lima de Souza Cascardo Mon, 17 Apr 2023 11:56:45 -0300 + +linux (5.19.0-40.41) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-40.41 -proposed tracker (LP: #2012668) + + * CVE-2023-0468 + - io_uring: fix tw losing poll events + - io_uring: make poll refs more robust + + * Regression in ext4 during online resize (LP: #2003816) + - ext4: fix bad checksum after online resize + - ext4: fix corruption when online resizing a 1K bigalloc fs + - ext4: fix corrupt backup group descriptors after online resize + + -- Luke Nowakowski-Krijger Thu, 23 Mar 2023 13:36:46 -0700 + +linux (5.19.0-39.40) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-39.40 -proposed tracker (LP: #2011876) + + * CVE-2023-26545 + - net: mpls: fix stale pointer if allocation fails during device rename + + * CVE-2023-1032 + - net: avoid double iput when sock_alloc_file fails + + * CVE-2022-41218 // CVE-2022-41218 is assigned to those bugs above. + - media: dvb-core: Fix UAF due to refcount races at releasing + + * CVE-2023-1281 + - net/sched: tcindex: update imperfect hash filters respecting rcu + + * linux: CONFIG_SERIAL_8250_MID=y (LP: #2009283) + - [Config] enable CONFIG_SERIAL_8250_MID=y + + * apply the latest TDX attestation driver from Intel (LP: #2009437) + - Revert "UBUNTU: SAUCE: selftests: tdx: Test GetReport TDX attestation + feature" + - Revert "UBUNTU: SAUCE: x86/tdx: Add TDX Guest attestation interface driver" + - x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module + - virt: Add TDX guest driver + - selftests/tdx: Test TDX attestation GetReport support + - [Config] enable TDX attestation driver as module by default + + * cpufreq: intel_pstate: Update Balance performance EPP for Sapphire Rapids + (LP: #2008519) + - cpufreq: intel_pstate: Adjust balance_performance EPP for Sapphire Rapids + + * Fail to output sound to external monitor which connects via docking station + (LP: #2009024) + - [Config] Enable CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM + + * Fix mediatek wifi driver crash when loading wrong SAR table (LP: #2009118) + - wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read + + * CVE-2022-47929 + - net: sched: disallow noqueue for qdisc classes + + * Intel graphic driver is not probing[8086:468b] (LP: #1990242) + - drm/i915: Add new ADL-S pci id + + * Some QHD panels fail to refresh when PSR2 enabled (LP: #2009014) + - drm/i915/psr: Use full update In case of area calculation fails + - drm/i915: Ensure damage clip area is within pipe area + - SAUCE: drm/i915/psr: Use calculated io and fast wake lines + + * overlayfs mounts as R/O over idmapped mount (LP: #2009065) + - SAUCE: overlayfs: handle idmapped mounts in ovl_do_(set|remove)xattr + + * Kinetic update: upstream stable patchset 2023-02-28 (LP: #2008832) + - usb: musb: remove extra check in musb_gadget_vbus_draw + - arm64: dts: qcom: ipq6018-cp01-c1: use BLSPI1 pins + - arm64: dts: qcom: sm8250-sony-xperia-edo: fix touchscreen bias-disable + - arm64: dts: qcom: msm8996: Add MSM8996 Pro support + - arm64: dts: qcom: msm8996: fix supported-hw in cpufreq OPP tables + - arm64: dts: qcom: msm8996: fix GPU OPP table + - ARM: dts: qcom: apq8064: fix coresight compatible + - arm64: dts: qcom: sdm630: fix UART1 pin bias + - arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias + - arm64: dts: qcom: msm8916: Drop MSS fallback compatible + - objtool, kcsan: Add volatile read/write instrumentation to whitelist + - ARM: dts: stm32: Drop stm32mp15xc.dtsi from Avenger96 + - ARM: dts: stm32: Fix AV96 WLAN regulator gpio property + - drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static + - arm64: dts: qcom: pm660: Use unique ADC5_VCOIN address in node name + - arm64: dts: qcom: sm8250: correct LPASS pin pull down + - soc: qcom: llcc: make irq truly optional + - arm64: dts: qcom: sm8150: fix UFS PHY registers + - arm64: dts: qcom: sm8250: fix UFS PHY registers + - arm64: dts: qcom: sm8350: fix UFS PHY registers + - arm64: dts: qcom: sm8250: drop bogus DP PHY clock + - soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index + - arm64: dts: qcom: sm6125: fix SDHCI CQE reg names + - arm: dts: spear600: Fix clcd interrupt + - soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe + - soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe + - arm64: mm: kfence: only handle translation faults + - perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init() + - perf/arm_dmc620: Fix hotplug callback leak in dmc620_pmu_init() + - perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init() + - arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node + - arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node + - ARM: dts: nuvoton: Remove bogus unit addresses from fixed-partition nodes + - arm64: dts: mt6779: Fix devicetree build warnings + - arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators + - arm64: dts: mt2712e: Fix unit address for pinctrl node + - arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names + - arm64: dts: mt2712-evb: Fix usb vbus regulators unit names + - arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings + - arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name + - ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: turris-omnia: Add ethernet aliases + - ARM: dts: turris-omnia: Add switch port 6 node + - arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC + - seccomp: Move copy_seccomp() to no failure path. + - pstore/ram: Fix error return code in ramoops_probe() + - ARM: mmp: fix timer_read delay + - pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP + - tpm/tpm_ftpm_tee: Fix error handling in ftpm_mod_init() + - tpm/tpm_crb: Fix error message in __crb_relinquish_locality() + - ovl: remove privs in ovl_copyfile() + - ovl: remove privs in ovl_fallocate() + - sched/uclamp: Fix relationship between uclamp and migration margin + - sched/uclamp: Make task_fits_capacity() use util_fits_cpu() + - sched/uclamp: Make select_idle_capacity() use util_fits_cpu() + - sched/core: Introduce sched_asym_cpucap_active() + - sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() + - cpuidle: dt: Return the correct numbers of parsed idle states + - alpha: fix TIF_NOTIFY_SIGNAL handling + - alpha: fix syscall entry in !AUDUT_SYSCALL case + - x86/sgx: Reduce delay and interference of enclave release + - PM: hibernate: Fix mistake in kerneldoc comment + - fs: don't audit the capability check in simple_xattr_list() + - cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut() + - selftests/ftrace: event_triggers: wait longer for test_event_enable + - perf: Fix possible memleak in pmu_dev_alloc() + - lib/debugobjects: fix stat count and optimize debug_objects_mem_init + - platform/x86: huawei-wmi: fix return value calculation + - timerqueue: Use rb_entry_safe() in timerqueue_getnext() + - proc: fixup uptime selftest + - lib/fonts: fix undefined behavior in bit shift for get_default_font + - ocfs2: fix memory leak in ocfs2_stack_glue_init() + - MIPS: vpe-mt: fix possible memory leak while module exiting + - MIPS: vpe-cmp: fix possible memory leak while module exiting + - selftests/efivarfs: Add checking of the test return value + - PNP: fix name memory leak in pnp_alloc_dev() + - perf/x86/intel/uncore: Fix reference count leak in sad_cfg_iio_topology() + - perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox() + - perf/x86/intel/uncore: Fix reference count leak in snr_uncore_mmio_map() + - perf/x86/intel/uncore: Fix reference count leak in __uncore_imc_init_box() + - platform/chrome: cros_usbpd_notify: Fix error handling in + cros_usbpd_notify_init() + - thermal: core: fix some possible name leaks in error paths + - irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() + - irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() + - EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() + - NFSD: Finish converting the NFSv2 GETACL result encoder + - nfsd: don't call nfsd_file_put from client states seqfile display + - genirq/irqdesc: Don't try to remove non-existing sysfs files + - cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() + - libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value + - lib/notifier-error-inject: fix error when writing -errno to debugfs file + - debugfs: fix error when writing negative value to atomic_t debugfs file + - rapidio: fix possible name leaks when rio_add_device() fails + - rapidio: rio: fix possible name leak in rio_register_mport() + - clocksource/drivers/sh_cmt: Access registers according to spec + - mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem + - mips: ralink: mt7621: soc queries and tests as functions + - mips: ralink: mt7621: do not use kzalloc too early + - futex: Resend potentially swallowed owner death notification + - cpu/hotplug: Make target_store() a nop when target == state + - cpu/hotplug: Do not bail-out in DYING/STARTING sections + - clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in + dmtimer_systimer_init_clock() + - ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage() + - uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix + - x86/xen: Fix memory leak in xen_smp_intr_init{_pv}() + - x86/xen: Fix memory leak in xen_init_lock_cpu() + - xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource() + - PM: runtime: Do not call __rpm_callback() from rpm_idle() + - platform/chrome: cros_ec_typec: Cleanup switch handle return paths + - platform/chrome: cros_ec_typec: zero out stale pointers + - platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() + - platform/x86: intel_scu_ipc: fix possible name leak in + __intel_scu_ipc_register() + - MIPS: BCM63xx: Add check for NULL for clk in clk_enable + - MIPS: OCTEON: warn only once if deprecated link status is being used + - lockd: set other missing fields when unlocking files + - fs: sysv: Fix sysv_nblocks() returns wrong value + - rapidio: fix possible UAF when kfifo_alloc() fails + - eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD + - relay: fix type mismatch when allocating memory in relay_create_buf() + - hfs: Fix OOB Write in hfs_asc2mac + - rapidio: devices: fix missing put_device in mport_cdev_open + - platform/mellanox: mlxbf-pmc: Fix event typo + - wifi: ath9k: hif_usb: fix memory leak of urbs in + ath9k_hif_usb_dealloc_tx_urbs() + - wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb() + - wifi: rtl8xxxu: Fix reading the vendor of combo chips + - drm/bridge: adv7533: remove dynamic lane switching from adv7533 bridge + - libbpf: Fix use-after-free in btf_dump_name_dups + - libbpf: Fix null-pointer dereference in find_prog_by_sec_insn() + - ata: libata: fix NCQ autosense logic + - ipmi: kcs: Poll OBF briefly to reduce OBE latency + - drm/amdgpu/powerplay/psm: Fix memory leak in power state init + - media: v4l2-ctrls: Fix off-by-one error in integer menu control check + - media: coda: jpeg: Add check for kmalloc + - media: adv748x: afe: Select input port when initializing AFE + - media: i2c: ad5820: Fix error path + - venus: pm_helpers: Fix error check in vcodec_domains_get() + - soreuseport: Fix socket selection for SO_INCOMING_CPU. + - media: exynos4-is: don't rely on the v4l2_async_subdev internals + - libbpf: Btf dedup identical struct test needs check for nested + structs/arrays + - can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device + - can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to + {leaf,usbcan}_cmd_can_error_event + - can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT + - can: kvaser_usb_leaf: Set Warning state even without bus errors + - can: kvaser_usb_leaf: Fix improved state not being reported + - can: kvaser_usb_leaf: Fix wrong CAN state after stopping + - can: kvaser_usb_leaf: Fix bogus restart events + - can: kvaser_usb: Add struct kvaser_usb_busparams + - can: kvaser_usb: Compare requested bittiming parameters with actual + parameters in do_set_{,data}_bittiming + - drm/rockchip: lvds: fix PM usage counter unbalance in poweron + - clk: renesas: r9a06g032: Repair grave increment error + - spi: Update reference to struct spi_controller + - drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure + - drm/msm/hdmi: drop unused GPIO support + - drm/msm/hdmi: use devres helper for runtime PM management + - bpf: Fix slot type check in check_stack_write_var_off + - media: vivid: fix compose size exceed boundary + - media: platform: exynos4-is: fix return value check in fimc_md_probe() + - bpf: propagate precision in ALU/ALU64 operations + - bpf: propagate precision across all frames, not just the last one + - clk: qcom: gcc-sm8250: Use retention mode for USB GDSCs + - mtd: Fix device name leak when register device failed in add_mtd_device() + - Input: joystick - fix Kconfig warning for JOYSTICK_ADC + - wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port + - media: camss: Clean up received buffers on failed start of streaming + - net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write() + - rxrpc: Fix ack.bufferSize to be 0 when generating an ack + - bfq: fix waker_bfqq inconsistency crash + - drm/radeon: Add the missed acpi_put_table() to fix memory leak + - drm/mediatek: Modify dpi power on/off sequence. + - ASoC: pxa: fix null-pointer dereference in filter() + - nvmet: only allocate a single slab for bvecs + - regulator: core: fix unbalanced of node refcount in regulator_dev_lookup() + - amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table() + - nvme: return err on nvme_init_non_mdts_limits fail + - regulator: qcom-rpmh: Fix PMR735a S3 regulator spec + - drm/fourcc: Fix vsub/hsub for Q410 and Q401 + - integrity: Fix memory leakage in keyring allocation error path + - ima: Fix misuse of dereference of pointer in template_desc_init_fields() + - block: clear ->slave_dir when dropping the main slave_dir reference + - wifi: ath10k: Fix return value in ath10k_pci_init() + - drm/msm/a6xx: Fix speed-bin detection vs probe-defer + - mtd: lpddr2_nvm: Fix possible null-ptr-deref + - Input: elants_i2c - properly handle the reset GPIO when power is off + - media: vidtv: Fix use-after-free in vidtv_bridge_dvb_init() + - media: solo6x10: fix possible memory leak in solo_sysfs_init() + - media: platform: exynos4-is: Fix error handling in fimc_md_init() + - media: videobuf-dma-contig: use dma_mmap_coherent + - mtd: spi-nor: hide jedec_id sysfs attribute if not present + - mtd: spi-nor: Fix the number of bytes for the dummy cycles + - bpf: Move skb->len == 0 checks into __bpf_redirect + - HID: hid-sensor-custom: set fixed size for custom attributes + - pinctrl: k210: call of_node_put() + - ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT + - ALSA: seq: fix undefined behavior in bit shift for + SNDRV_SEQ_FILTER_USE_EVENT + - regulator: core: use kfree_const() to free space conditionally + - clk: rockchip: Fix memory leak in rockchip_clk_register_pll() + - drm/amdgpu: fix pci device refcount leak + - bonding: fix link recovery in mode 2 when updelay is nonzero + - mtd: maps: pxa2xx-flash: fix memory leak in probe + - drbd: remove call to memset before free device/resource/connection + - drbd: destroy workqueue when drbd device was freed + - ASoC: qcom: Add checks for devm_kcalloc + - media: vimc: Fix wrong function called when vimc_init() fails + - media: imon: fix a race condition in send_packet() + - clk: imx8mn: rename vpu_pll to m7_alt_pll + - clk: imx: replace osc_hdmi with dummy + - clk: imx8mn: fix imx8mn_sai2_sels clocks list + - clk: imx8mn: fix imx8mn_enet_phy_sels clocks list + - pinctrl: pinconf-generic: add missing of_node_put() + - media: dvb-core: Fix ignored return value in dvb_register_frontend() + - media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer() + - media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC + - drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe() + - ASoC: dt-bindings: wcd9335: fix reset line polarity in example + - ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd + - NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding + - NFSv4.2: Fix a memory stomp in decode_attr_security_label + - NFSv4.2: Fix initialisation of struct nfs4_label + - NFSv4: Fix a credential leak in _nfs4_discover_trunking() + - NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn + - NFS: Fix an Oops in nfs_d_automount() + - ALSA: asihpi: fix missing pci_disable_device() + - wifi: iwlwifi: mvm: fix double free on tx path. + - ASoC: mediatek: mt8173: Enable IRQ when pdata is ready + - drm/amd/pm/smu11: BACO is supported when it's in BACO state + - drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios() + - drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios() + - drm/amdkfd: Fix memory leakage + - ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe + - netfilter: conntrack: set icmpv6 redirects as RELATED + - Input: wistron_btns - disable on UML + - bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data + - bpf, sockmap: Fix missing BPF_F_INGRESS flag when using apply_bytes + - bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect + - bonding: uninitialized variable in bond_miimon_inspect() + - spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE + - wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys() + fails + - wifi: mt76: mt7921: fix reporting of TX AGGR histogram + - wifi: mt76: fix coverity overrun-call in mt76_get_txpower() + - regulator: core: fix module refcount leak in set_supply() + - clk: qcom: lpass-sc7180: Fix pm_runtime usage + - clk: qcom: clk-krait: fix wrong div2 functions + - hsr: Add a rcu-read lock to hsr_forward_skb(). + - hsr: Avoid double remove of a node. + - hsr: Disable netpoll. + - hsr: Synchronize sending frames to have always incremented outgoing seq nr. + - hsr: Synchronize sequence number updates. + - configfs: fix possible memory leak in configfs_create_dir() + - regulator: core: fix resource leak in regulator_register() + - hwmon: (jc42) Convert register access and caching to regmap/regcache + - hwmon: (jc42) Restore the min/max/critical temperatures on resume + - bpf, sockmap: fix race in sock_map_free() + - ALSA: pcm: Set missing stop_operating flag at undoing trigger start + - media: saa7164: fix missing pci_disable_device() + - ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt + - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create() + - SUNRPC: Fix missing release socket in rpc_sockname() + - NFSv4.x: Fail client initialisation if state manager thread can't run + - riscv, bpf: Emit fixed-length instructions for BPF_PSEUDO_FUNC + - mmc: alcor: fix return value check of mmc_add_host() + - mmc: moxart: fix return value check of mmc_add_host() + - mmc: mxcmmc: fix return value check of mmc_add_host() + - mmc: pxamci: fix return value check of mmc_add_host() + - mmc: rtsx_pci: fix return value check of mmc_add_host() + - mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host() + - mmc: toshsd: fix return value check of mmc_add_host() + - mmc: vub300: fix return value check of mmc_add_host() + - mmc: wmt-sdmmc: fix return value check of mmc_add_host() + - mmc: atmel-mci: fix return value check of mmc_add_host() + - mmc: omap_hsmmc: fix return value check of mmc_add_host() + - mmc: meson-gx: fix return value check of mmc_add_host() + - mmc: via-sdmmc: fix return value check of mmc_add_host() + - mmc: wbsd: fix return value check of mmc_add_host() + - mmc: mmci: fix return value check of mmc_add_host() + - mmc: renesas_sdhi: alway populate SCC pointer + - memstick/ms_block: Add check for alloc_ordered_workqueue + - mmc: core: Normalize the error handling branch in sd_read_ext_regs() + - regulator: qcom-labibb: Fix missing of_node_put() in + qcom_labibb_regulator_probe() + - media: c8sectpfe: Add of_node_put() when breaking out of loop + - media: coda: Add check for dcoda_iram_alloc + - media: coda: Add check for kmalloc + - clk: samsung: Fix memory leak in _samsung_clk_register_pll() + - spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode + - wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h + - wifi: rtl8xxxu: Fix the channel width reporting + - wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware() + - blktrace: Fix output non-blktrace event when blk_classic option enabled + - bpf: Do not zero-extend kfunc return values + - clk: socfpga: Fix memory leak in socfpga_gate_init() + - net: vmw_vsock: vmci: Check memcpy_from_msg() + - net: defxx: Fix missing err handling in dfx_init() + - net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload() + - net: stmmac: fix possible memory leak in stmmac_dvr_probe() + - drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init() + - of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() + and find_dup_cset_prop() + - ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: farsync: Fix kmemleak when rmmods farsync + - net/tunnel: wait until all sk_user_data reader finish before releasing the + sock + - net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() + - hamradio: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave() + - af_unix: call proto_unregister() in the error path in af_unix_init() + - net: amd-xgbe: Fix logic around active and passive cables + - net: amd-xgbe: Check only the minimum speed for active/passive cables + - can: tcan4x5x: Remove invalid write in clear_interrupts + - can: m_can: Call the RAM init directly from m_can_chip_config + - can: tcan4x5x: Fix use of register error status mask + - net: lan9303: Fix read error execution path + - ntb_netdev: Use dev_kfree_skb_any() in interrupt context + - sctp: sysctl: make extra pointers netns aware + - Bluetooth: MGMT: Fix error report for ADD_EXT_ADV_PARAMS + - Bluetooth: btintel: Fix missing free skb in btintel_setup_combined() + - Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave() + - stmmac: fix potential division by 0 + - i40e: Fix the inability to attach XDP program on downed interface + - net: dsa: tag_8021q: avoid leaking ctx on dsa_tag_8021q_register() error + path + - crypto: hisilicon/qm - fix missing destroy qp_idr + - crypto: sun8i-ss - use dma_addr instead u32 + - crypto: nitrox - avoid double free on error path in nitrox_sriov_init() + - scsi: core: Fix a race between scsi_done() and scsi_timeout() + - apparmor: Use pointer to struct aa_label for lbs_cred + - PCI: dwc: Fix n_fts[] array overrun + - RDMA/core: Fix order of nldev_exit call + - PCI: pci-epf-test: Register notifier if only core_init_notifier is enabled + - f2fs: Fix the race condition of resize flag between resizefs + - crypto: rockchip - do not do custom power management + - crypto: rockchip - do not store mode globally + - crypto: rockchip - add fallback for cipher + - crypto: rockchip - add fallback for ahash + - crypto: rockchip - better handle cipher key + - crypto: rockchip - remove non-aligned handling + - crypto: rockchip - rework by using crypto_engine + - apparmor: Fix memleak in alloc_ns() + - f2fs: fix to invalidate dcc->f2fs_issue_discard in error path + - f2fs: fix normal discard process + - f2fs: fix to destroy sbi->post_read_wq in error path of f2fs_fill_super() + - RDMA/irdma: Report the correct link speed + - scsi: qla2xxx: Fix set-but-not-used variable warnings + - RDMA/siw: Fix immediate work request flush to completion queue + - IB/mad: Don't call to function that might sleep while in atomic context + - RDMA/restrack: Release MR restrack when delete + - RDMA/core: Make sure "ib_port" is valid when access sysfs node + - RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port + - RDMA/siw: Set defined status for work completion with undefined status + - scsi: scsi_debug: Fix a warning in resp_write_scat() + - crypto: ccree - Remove debugfs when platform_driver_register failed + - crypto: cryptd - Use request context instead of stack for sub-request + - crypto: hisilicon/qm - add missing pci_dev_put() in q_num_set() + - RDMA/hns: Repacing 'dseg_len' by macros in fill_ext_sge_inl_data() + - RDMA/hns: Fix ext_sge num error when post send + - PCI: Check for alloc failure in pci_request_irq() + - RDMA/hfi: Decrease PCI device reference count in error path + - crypto: ccree - Make cc_debugfs_global_fini() available for module init + function + - RDMA/hns: fix memory leak in hns_roce_alloc_mr() + - RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create + failed + - dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq + - dt-bindings: visconti-pcie: Fix interrupts array max constraints + - scsi: hpsa: Fix possible memory leak in hpsa_init_one() + - crypto: tcrypt - Fix multibuffer skcipher speed test mem leak + - padata: Always leave BHs disabled when running ->parallel() + - padata: Fix list iterator in padata_do_serial() + - scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add() + - scsi: hpsa: Fix error handling in hpsa_add_sas_host() + - scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device() + - scsi: efct: Fix possible memleak in efct_device_init() + - scsi: scsi_debug: Fix a warning in resp_verify() + - scsi: scsi_debug: Fix a warning in resp_report_zones() + - scsi: fcoe: Fix possible name leak when device_register() fails + - scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() + - scsi: ipr: Fix WARNING in ipr_init() + - scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails + - scsi: snic: Fix possible UAF in snic_tgt_create() + - RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps() + - f2fs: avoid victim selection from previous victim section + - RDMA/nldev: Fix failure to send large messages + - crypto: amlogic - Remove kcalloc without check + - crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() + - riscv/mm: add arch hook arch_clear_hugepage_flags + - RDMA/hfi1: Fix error return code in parse_platform_config() + - RDMA/srp: Fix error return code in srp_parse_options() + - orangefs: Fix sysfs not cleanup when dev init failed + - RDMA/hns: Fix AH attr queried by query_qp + - RDMA/hns: Fix PBL page MTR find + - RDMA/hns: Fix page size cap from firmware + - RDMA/hns: Fix error code of CMD + - crypto: img-hash - Fix variable dereferenced before check 'hdev->req' + - hwrng: amd - Fix PCI device refcount leak + - hwrng: geode - Fix PCI device refcount leak + - IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces + - RISC-V: Align the shadow stack + - drivers: dio: fix possible memory leak in dio_init() + - serial: tegra: Read DMA status before terminating + - serial: 8250_bcm7271: Fix error handling in brcmuart_init() + - class: fix possible memory leak in __class_register() + - vfio: platform: Do not pass return buffer to ACPI _RST method + - uio: uio_dmem_genirq: Fix missing unlock in irq configuration + - uio: uio_dmem_genirq: Fix deadlock between irq config and handling + - usb: fotg210-udc: Fix ages old endianness issues + - staging: vme_user: Fix possible UAF in tsi148_dma_list_add + - usb: typec: Check for ops->exit instead of ops->enter in altmode_exit + - usb: typec: tcpci: fix of node refcount leak in tcpci_register_port() + - usb: typec: tipd: Cleanup resources if devm_tps6598_psy_register fails + - usb: typec: tipd: Fix spurious fwnode_handle_put in error path + - extcon: usbc-tusb320: Factor out extcon into dedicated functions + - extcon: usbc-tusb320: Add USB TYPE-C support + - extcon: usbc-tusb320: Update state on probe even if no IRQ pending + - serial: amba-pl011: avoid SBSA UART accessing DMACR register + - serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle. + - serial: stm32: move dma_request_chan() before clk_prepare_enable() + - serial: pch: Fix PCI device refcount leak in pch_request_dma() + - tty: serial: clean up stop-tx part in altera_uart_tx_chars() + - tty: serial: altera_uart_{r,t}x_chars() need only uart_port + - serial: altera_uart: fix locking in polling mode + - serial: sunsab: Fix error handling in sunsab_init() + - test_firmware: fix memory leak in test_firmware_init() + - misc: ocxl: fix possible name leak in ocxl_file_register_afu() + - ocxl: fix pci device refcount leak when calling get_function_0() + - misc: tifm: fix possible memory leak in tifm_7xx1_switch_media() + - misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault + and gru_handle_user_call_os + - firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe() + - cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter() + - cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter() + - iio: temperature: ltc2983: make bulk write buffer DMA-safe + - iio: adis: add '__adis_enable_irq()' implementation + - counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update + - coresight: trbe: remove cpuhp instance node before remove cpuhp state + - usb: roles: fix of node refcount leak in usb_role_switch_is_parent() + - usb: gadget: f_hid: fix f_hidg lifetime vs cdev + - usb: gadget: f_hid: fix refcount leak on error path + - drivers: mcb: fix resource leak in mcb_probe() + - mcb: mcb-parse: fix error handing in chameleon_parse_gdd() + - chardev: fix error handling in cdev_device_add() + - i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe + - staging: rtl8192u: Fix use after free in ieee80211_rx() + - staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor() + - vme: Fix error not catched in fake_init() + - gpiolib: cdev: fix NULL-pointer dereferences + - gpiolib: protect the GPIO device against being dropped while in use by user- + space + - i2c: mux: reg: check return value after calling platform_get_resource() + - i2c: ismt: Fix an out-of-bounds bug in ismt_access() + - usb: storage: Add check for kcalloc + - tracing/hist: Fix issue of losting command info in error_log + - ksmbd: Fix resource leak in ksmbd_session_rpc_open() + - samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe() + - thermal/drivers/imx8mm_thermal: Validate temperature range + - thermal/drivers/qcom/temp-alarm: Fix inaccurate warning for gen2 + - thermal/drivers/qcom/lmh: Fix irq handler return value + - fbdev: ssd1307fb: Drop optional dependency + - fbdev: pm2fb: fix missing pci_disable_device() + - fbdev: via: Fix error in via_core_init() + - fbdev: vermilion: decrease reference count in error path + - fbdev: ep93xx-fb: Add missing clk_disable_unprepare in ep93xxfb_probe() + - fbdev: geode: don't build on UML + - fbdev: uvesafb: don't build on UML + - fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() + - HSI: omap_ssi_core: fix unbalanced pm_runtime_disable() + - HSI: omap_ssi_core: fix possible memory leak in ssi_probe() + - power: supply: fix residue sysfs file in error handle route of + __power_supply_register() + - perf trace: Return error if a system call doesn't exist + - perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number + - perf trace: Handle failure when trace point folder is missed + - perf symbol: correction while adjusting symbol + - power: supply: z2_battery: Fix possible memleak in z2_batt_probe() + - HSI: omap_ssi_core: Fix error handling in ssi_init() + - power: supply: ab8500: Fix error handling in ab8500_charger_init() + - power: supply: fix null pointer dereferencing in + power_supply_get_battery_info + - perf stat: Refactor __run_perf_stat() common code + - perf stat: Do not delay the workload with --delay + - RDMA/siw: Fix pointer cast warning + - fs/ntfs3: Avoid UBSAN error on true_sectors_per_clst() + - fs/ntfs3: Harden against integer overflows + - iommu/sun50i: Fix reset release + - iommu/sun50i: Consider all fault sources for reset + - iommu/sun50i: Fix R/W permission check + - iommu/sun50i: Fix flush size + - iommu/rockchip: fix permission bits in page table entries v2 + - phy: usb: s2 WoL wakeup_count not incremented for USB->Eth devices + - include/uapi/linux/swab: Fix potentially missing __always_inline + - pwm: tegra: Improve required rate calculation + - fs/ntfs3: Fix slab-out-of-bounds read in ntfs_trim_fs + - dmaengine: idxd: Fix crc_val field for completion record + - rtc: rtc-cmos: Do not check ACPI_FADT_LOW_POWER_S0 + - rtc: cmos: Fix event handler registration ordering issue + - rtc: cmos: Fix wake alarm breakage + - rtc: cmos: fix build on non-ACPI platforms + - rtc: cmos: Call cmos_wake_setup() from cmos_do_probe() + - rtc: cmos: Call rtc_wake_setup() from cmos_do_probe() + - rtc: cmos: Eliminate forward declarations of some functions + - rtc: cmos: Rename ACPI-related functions + - rtc: cmos: Disable ACPI RTC event on removal + - rtc: snvs: Allow a time difference on clock register read + - rtc: pcf85063: Fix reading alarm + - iommu/amd: Fix pci device refcount leak in ppr_notifier() + - iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe() + - macintosh: fix possible memory leak in macio_add_one_device() + - macintosh/macio-adb: check the return value of ioremap() + - powerpc/52xx: Fix a resource leak in an error handling path + - cxl: Fix refcount leak in cxl_calc_capp_routing + - powerpc/xmon: Fix -Wswitch-unreachable warning in bpt_cmds + - powerpc/xive: add missing iounmap() in error path in + xive_spapr_populate_irq_data() + - powerpc/perf: callchain validate kernel stack pointer bounds + - powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in + of_fsl_spi_probe() + - powerpc/hv-gpci: Fix hv_gpci event list + - selftests/powerpc: Fix resource leaks + - iommu/sun50i: Remove IOMMU_DOMAIN_IDENTITY + - pwm: sifive: Call pwm_sifive_update_clock() while mutex is held + - pwm: mtk-disp: Fix the parameters calculated by the enabled flag of disp_pwm + - pwm: mediatek: always use bus clock for PWM on MT7622 + - remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() + - remoteproc: qcom: q6v5: Fix potential null-ptr-deref in + q6v5_wcss_init_mmio() + - remoteproc: qcom_q6v5_pas: disable wakeup on probe fail or remove + - remoteproc: qcom_q6v5_pas: detach power domains on remove + - remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in + adsp_alloc_memory_region() + - remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in + q6v5_wcss_qcs404_power_on() + - powerpc/pseries/eeh: use correct API for error log size + - mfd: bd957x: Fix Kconfig dependency on REGMAP_IRQ + - mfd: qcom_rpm: Fix an error handling path in qcom_rpm_probe() + - mfd: pm8008: Remove driver data structure pm8008_data + - mfd: pm8008: Fix return value check in pm8008_probe() + - netfilter: flowtable: really fix NAT IPv6 offload + - rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe() + - rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() + - rtc: pcf85063: fix pcf85063_clkout_control + - nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure + - net: macsec: fix net device access prior to holding a lock + - mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - block, bfq: fix possible uaf for 'bfqq->bic' + - net: enetc: avoid buffer leaks on xdp_do_redirect() failure + - nfc: pn533: Clear nfc_target before being used + - unix: Fix race in SOCK_SEQPACKET's unix_dgram_sendmsg() + - r6040: Fix kmemleak in probe and remove + - igc: Enhance Qbv scheduling by using first flag bit + - igc: Use strict cycles for Qbv scheduling + - igc: Add checking for basetime less than zero + - igc: allow BaseTime 0 enrollment for Qbv + - igc: recalculate Qbv end_time by considering cycle time + - igc: Lift TAPRIO schedule restriction + - igc: Set Qbv start_time and end_time to end_time if not being configured in + GCL + - rtc: mxc_v2: Add missing clk_disable_unprepare() + - selftests: devlink: fix the fd redirect in dummy_reporter_test + - openvswitch: Fix flow lookup to use unmasked key + - soc: mediatek: pm-domains: Fix the power glitch issue + - arm64: dts: mt8183: Fix Mali GPU clock + - skbuff: Account for tail adjustment during pull operations + - mailbox: mpfs: read the system controller's status + - mailbox: arm_mhuv2: Fix return value check in mhuv2_probe() + - mailbox: zynq-ipi: fix error handling while device_register() fails + - net_sched: reject TCF_EM_SIMPLE case for complex ematch module + - rxrpc: Fix missing unlock in rxrpc_do_sendmsg() + - myri10ge: Fix an error handling path in myri10ge_probe() + - net: stream: purge sk_error_queue in sk_stream_kill_queues() + - HID: amd_sfh: Add missing check for dma_alloc_coherent + - rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() + - arm64: make is_ttbrX_addr() noinstr-safe + - video: hyperv_fb: Avoid taking busy spinlock on panic path + - x86/hyperv: Remove unregister syscore call from Hyper-V cleanup + - binfmt_misc: fix shift-out-of-bounds in check_special_flags + - fs: jfs: fix shift-out-of-bounds in dbAllocAG + - udf: Avoid double brelse() in udf_rename() + - jfs: Fix fortify moan in symlink + - fs: jfs: fix shift-out-of-bounds in dbDiscardAG + - ACPICA: Fix error code path in acpi_ds_call_control_method() + - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset() + - nilfs2: fix shift-out-of-bounds due to too large exponent of block size + - acct: fix potential integer overflow in encode_comp_t() + - hfs: fix OOB Read in __hfs_brec_find + - drm/etnaviv: add missing quirks for GC300 + - media: imx-jpeg: Disable useless interrupt to avoid kernel panic + - brcmfmac: return error when getting invalid max_flowrings from dongle + - wifi: ath9k: verify the expected usb_endpoints are present + - wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out + - ASoC: codecs: rt298: Add quirk for KBL-R RVP platform + - ipmi: fix memleak when unload ipmi driver + - drm/amd/display: prevent memory leak + - Revert "drm/amd/display: Limit max DSC target bpp for specific monitors" + - qed (gcc13): use u16 for fid to be big enough + - bpf: make sure skb->len != 0 when redirecting to a tunneling device + - net: ethernet: ti: Fix return type of netcp_ndo_start_xmit() + - hamradio: baycom_epp: Fix return type of baycom_send_packet() + - wifi: brcmfmac: Fix potential shift-out-of-bounds in + brcmf_fw_alloc_request() + - igb: Do not free q_vector unless new one was allocated + - drm/amdgpu: Fix type of second parameter in trans_msg() callback + - drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback + - s390/ctcm: Fix return type of ctc{mp,}m_tx() + - s390/netiucv: Fix return type of netiucv_tx() + - s390/lcs: Fix return type of lcs_start_xmit() + - drm/msm: Use drm_mode_copy() + - drm/rockchip: Use drm_mode_copy() + - drm/sti: Use drm_mode_copy() + - drm/mediatek: Fix return type of mtk_hdmi_bridge_mode_valid() + - drivers/md/md-bitmap: check the return value of md_bitmap_get_counter() + - md/raid1: stop mdx_raid1 thread when raid1 array run failed + - drm/amd/display: fix array index out of bound error in bios parser + - net: add atomic_long_t to net_device_stats fields + - ipv6/sit: use DEV_STATS_INC() to avoid data-races + - mrp: introduce active flags to prevent UAF when applicant uninit + - ppp: associate skb with a device at tx + - bpf: Prevent decl_tag from being referenced in func_proto arg + - ethtool: avoiding integer overflow in ethtool_phys_id() + - media: dvb-frontends: fix leak of memory fw + - media: dvbdev: adopts refcnt to avoid UAF + - media: dvb-usb: fix memory leak in dvb_usb_adapter_init() + - blk-mq: fix possible memleak when register 'hctx' failed + - drm/amd/display: Use the largest vready_offset in pipe group + - libbpf: Avoid enum forward-declarations in public API in C++ mode + - regulator: core: fix use_count leakage when handling boot-on + - wifi: mt76: do not run mt76u_status_worker if the device is not running + - mmc: f-sdh30: Add quirks for broken timeout clock capability + - mmc: renesas_sdhi: better reset from HS400 mode + - media: si470x: Fix use-after-free in si470x_int_in_callback() + - clk: st: Fix memory leak in st_of_quadfs_setup() + - crypto: hisilicon/hpre - fix resource leak in remove process + - scsi: lpfc: Fix hard lockup when reading the rx_monitor from debugfs + - scsi: ufs: Reduce the START STOP UNIT timeout + - scsi: elx: libefc: Fix second parameter type in state callbacks + - hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param() + - drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid() + - drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid() + - orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string() + - orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init() + - KVM: selftests: Fix build regression by using accessor function + - hwmon: (jc42) Fix missing unlock on error in jc42_write() + - ALSA: hda: add snd_hdac_stop_streams() helper + - ASoC: Intel: Skylake: Fix driver hang during shutdown + - ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in + mt8173_rt5650_rt5514_dev_probe() + - ASoC: audio-graph-card: fix refcount leak of cpu_ep in + __graph_for_each_link() + - ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in + rockchip_pdm_runtime_resume() + - ASoC: mediatek: mt8183: fix refcount leak in + mt8183_mt6358_ts3a227_max98357_dev_probe() + - ASoC: wm8994: Fix potential deadlock + - ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in + rk_spdif_runtime_resume() + - ASoC: rt5670: Remove unbalanced pm_runtime_put() + - drm/i915/display: Don't disable DDI/Transcoder when setting phy test pattern + - LoadPin: Ignore the "contents" argument of the LSM hooks + - pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion + - perf debug: Set debug_peo_args and redirect_to_stderr variable to correct + values in perf_quiet_option() + - afs: Fix lost servers_outstanding count + - pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES + - ALSA: usb-audio: add the quirk for KT0206 device + - ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB + - ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list + - usb: cdnsp: fix lack of ZLP for ep0 + - usb: xhci-mtk: fix leakage of shared hcd when fail to set wakeup irq + - arm64: dts: qcom: sm8250: fix USB-DP PHY registers + - usb: dwc3: Fix race between dwc3_set_mode and __dwc3_set_mode + - usb: dwc3: core: defer probe on ulpi_read_id timeout + - xhci: Prevent infinite loop in transaction errors recovery for streams + - HID: wacom: Ensure bootloader PID is usable in hidraw mode + - HID: mcp2221: don't connect hidraw + - loop: Fix the max_loop commandline argument treatment when it is set to 0 + - 9p: set req refcount to zero to avoid uninitialized usage + - security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6 + - reiserfs: Add missing calls to reiserfs_security_free() + - iio: fix memory leak in iio_device_register_eventset() + - iio: adc: ad_sigma_delta: do not use internal iio_dev lock + - iio: adc128s052: add proper .data members in adc128_of_match table + - regulator: core: fix deadlock on regulator enable + - floppy: Fix memory leak in do_floppy_init() + - gcov: add support for checksum field + - fbdev: fbcon: release buffer when fbcon_do_set_font() failed + - ovl: fix use inode directly in rcu-walk mode + - btrfs: do not BUG_ON() on ENOMEM when dropping extent items for a range + - scsi: qla2xxx: Fix crash when I/O abort times out + - net: stmmac: fix errno when create_singlethread_workqueue() fails + - media: dvbdev: fix build warning due to comments + - media: dvbdev: fix refcnt bug + - extcon: usbc-tusb320: Call the Type-C IRQ handler only if a port is + registered + - mfd: qcom_rpm: Use devm_of_platform_populate() to simplify code + - pwm: tegra: Fix 32 bit build + - staging: r8188eu: fix led register settings + - arm64: dts: renesas: r8a779g0: Fix HSCIF0 "brg_int" clock + - memory: renesas-rpc-if: Clear HS bit during hardware initialization + - firmware: ti_sci: Fix polled mode during system suspend + - arm64: dts: qcom: sc7180-trogdor-homestar: fully configure secondary I2S + pins + - arm64: dts: qcom: sm8450: fix UFS PHY registers + - arm64: dts: qcom: sm6350: drop bogus DP PHY clock + - arm64: dts: qcom: pm6350: Include header for KEY_POWER + - arm64: dts: renesas: r9a09g011: Fix unit address format error + - dt-bindings: pwm: fix microchip corePWM's pwm-cells + - arm64: dts: mt7986: fix trng node name + - drivers: perf: marvell_cn10k: Fix hotplug callback leak in tad_pmu_init() + - arm64: dts: ti: k3-j721s2: Fix the interrupt ranges property for main & wkup + gpio intr + - arm64: dts: mediatek: mt8195: Fix CPUs capacity-dmips-mhz + - arm64: dts: mt7896a: Fix unit_address_vs_reg warning for oscillator + - soc: apple: sart: Stop casting function pointer signatures + - soc: apple: rtkit: Stop casting function pointer signatures + - drivers/perf: hisi: Fix some event id for hisi-pcie-pmu + - arch: arm64: apple: t8103: Use standard "iommu" node name + - sched/uclamp: Fix fits_capacity() check in feec() + - sched/uclamp: Make cpu_overutilized() use util_fits_cpu() + - sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit + condition + - sched/psi: Fix possible missing or delayed pending event + - x86/split_lock: Add sysctl to control the misery mode + - selftests: cgroup: fix unsigned comparison with less than zero + - cpufreq: qcom-hw: Fix the frequency returned by cpufreq_driver->get() + - mailbox: pcc: Reset pcc_chan_count to zero in case of PCC probe failure + - ACPI: pfr_telemetry: use ACPI_FREE() to free acpi_object + - ACPI: pfr_update: use ACPI_FREE() to free acpi_object + - NFSD: Finish converting the NFSv3 GETACL result encoder + - ocfs2: fix memory leak in ocfs2_mount_volume() + - erofs: Fix pcluster memleak when its block address is zero + - erofs: fix missing unmap if z_erofs_get_extent_compressedlen() fails + - NFSD: pass range end to vfs_fsync_range() instead of count + - ipc: fix memory leak in init_mqueue_fs() + - wifi: ath11k: fix firmware assert during bandwidth change for peer sta + - libbpf: Fix memory leak in parse_usdt_arg() + - selftest/bpf: Fix memory leak in kprobe_multi_test + - selftests/bpf: Fix error failure of case test_xdp_adjust_tail_grow + - selftest/bpf: Fix error usage of ASSERT_OK in xdp_adjust_tail.c + - libbpf: Use elf_getshdrnum() instead of e_shnum + - libbpf: Deal with section with no data gracefully + - ASoC: Intel: avs: Fix potential RX buffer overflow + - drm/bridge: it6505: Initialize AUX channel in it6505_i2c_probe + - Input: iqs7222 - set all ULP entry masks by default + - Input: iqs7222 - drop unused device node references + - Input: iqs7222 - report malformed properties + - Input: iqs7222 - protect against undefined slider size + - media: amphion: reset instance if it's aborted before codec header parsed + - media: mediatek: vcodec: fix h264 cavlc bitstream fail + - drm/i915: Fix compute pre-emption w/a to apply to compute engines + - media: i2c: hi846: Fix memory leak in hi846_parse_dt() + - media: i2c: ov5648: Free V4L2 fwnode data on unbind + - clk: renesas: r8a779a0: Fix SD0H clock name + - ASoC: dt-bindings: rt5682: Set sound-dai-cells to 1 + - dw9768: Enable low-power probe on ACPI + - drm/ttm: fix undefined behavior in bit shift for TTM_TT_FLAG_PRIV_POPULATED + - drm/msm/mdp5: stop overriding drvdata + - bpf: Clobber stack slot when writing over spilled PTR_TO_BTF_ID + - drm/msm/dpu1: Account for DSC's bits_per_pixel having 4 fractional bits + - drm/msm/dsi: Remove useless math in DSC calculations + - drm/msm/dsi: Remove repeated calculation of slice_per_intf + - drm/msm/dsi: Use DIV_ROUND_UP instead of conditional increment on modulo + - drm/msm/dsi: Reuse earlier computed dsc->slice_chunk_size + - drm/msm/dsi: Appropriately set dsc->mux_word_size based on bpc + - media: rkvdec: Add required padding + - clk: qcom: gcc-ipq806x: use parent_data for the last remaining entry + - clk: qcom: dispcc-sm6350: Add CLK_OPS_PARENT_ENABLE to pixel&byte src + - mtd: core: fix possible resource leak in init_mtd() + - clk: renesas: r8a779f0: Fix SCIF parent clocks + - virt/sev-guest: Add a MODULE_ALIAS + - wifi: rtw89: use u32_encode_bits() to fill MAC quota value + - drm: rcar-du: Drop leftovers dependencies from Kconfig + - drbd: use blk_queue_max_discard_sectors helper + - dt-bindings: pinctrl: update uart/mmc bindings for MT7986 SoC + - pinctrl: mediatek: fix the pinconf register offset of some pins + - wifi: iwlwifi: mei: make sure ownership confirmed message is sent + - wifi: iwlwifi: mei: don't send SAP commands if AMT is disabled + - wifi: iwlwifi: mei: fix tx DHCP packet for devices with new Tx API + - wifi: iwlwifi: mei: avoid blocking sap messages handling due to rtnl lock + - wifi: iwlwifi: mei: fix potential NULL-ptr deref after clone + - module: Fix NULL vs IS_ERR checking for module_get_next_page + - wifi: rtw89: Fix some error handling path in rtw89_core_sta_assoc() + - net: ethernet: mtk_eth_soc: do not overwrite mtu configuration running reset + routine + - media: amphion: add lock around vdec_g_fmt + - media: amphion: apply vb2_queue_error instead of setting manually + - media: amphion: Fix error handling in vpu_driver_init() + - net: ethernet: mtk_eth_soc: fix RSTCTRL_PPE{0,1} definitions + - clk: imx93: correct the flexspi1 clock setting + - HID: i2c: let RMI devices decide what constitutes wakeup event + - clk: imx93: unmap anatop base in error handling path + - clk: imx93: correct enet clock + - clk: imx: imxrt1050: fix IMXRT1050_CLK_LCDIF_APB offsets + - wifi: rtw89: fix physts IE page check + - ASoC: Intel: avs: Lock substream before snd_pcm_stop() + - drm/i915/guc: make default_lists const data + - mtd: core: Fix refcount error in del_mtd_device() + - media: imx: imx7-media-csi: Clear BIT_MIPI_DOUBLE_CMPNT for <16b formats + - x86/boot: Skip realmode init code when running as Xen PV guest + - media: amphion: try to wakeup vpu core to avoid failure + - media: amphion: cancel vpu before release instance + - media: amphion: lock and check m2m_ctx in event handler + - media: mediatek: vcodec: Fix getting NULL pointer for dst buffer + - media: mediatek: vcodec: Fix h264 set lat buffer error + - media: mediatek: vcodec: Setting lat buf to lat_list when lat decode error + - media: mediatek: vcodec: Core thread depends on core_list + - NFSv4.2: Always decode the security label + - wifi: plfxlc: fix potential memory leak in __lf_x_usb_enable_rx() + - wifi: rtl8xxxu: Fix use after rcu_read_unlock in rtl8xxxu_bss_info_changed + - clk: mediatek: fix dependency of MT7986 ADC clocks + - amdgpu/nv.c: Corrected typo in the video capabilities resolution + - drm/i915/bios: fix a memory leak in generate_lfp_data_ptrs + - clk: visconti: Fix memory leak in visconti_register_pll() + - wifi: mac80211: fix memory leak in ieee80211_if_add() + - wifi: mt76: mt7915: fix mt7915_mac_set_timing() + - wifi: mt76: mt7915: fix reporting of TX AGGR histogram + - mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2() + - dt-bindings: clock: Add resets for LPASS audio clock controller for SC7280 + - dt-bindings: clock: Add support for external MCLKs for LPASS on SC7280 + - clk: qcom: lpass: Add support for resets & external mclk for SC7280 + - pinctrl: thunderbay: fix possible memory leak in + thunderbay_build_functions() + - bpftool: Fix memory leak in do_build_table_cb + - mmc: litex_mmc: ensure `host->irq == 0` if polling + - ipvs: use u64_stats_t for the per-cpu counters + - net: setsockopt: fix IPV6_UNICAST_IF option for connected sockets + - net: ethernet: ti: am65-cpsw: Fix PM runtime leakage in + am65_cpsw_nuss_ndo_slave_open() + - crypto: hisilicon/qm - re-enable communicate interrupt before notifying PF + - fortify: Do not cast to "unsigned char" + - f2fs: allow to set compression for inlined file + - f2fs: fix the assign logic of iocb + - RDMA/irdma: Fix inline for multiple SGE's + - RDMA/irdma: Fix RQ completion opcode + - RDMA/irdma: Do not request 2-level PBLEs for CQ alloc + - RDMA/rxe: Fix mr->map double free + - RDMA/hns: Fix incorrect sge nums calculation + - RDMA/irdma: Initialize net_type before checking it + - scsi: ufs: core: Fix the polling implementation + - f2fs: set zstd compress level correctly + - f2fs: fix to enable compress for newly created file if extension matches + - crypto: qat - fix error return code in adf_probe + - RDMA: Disable IB HW for UML + - PCI: vmd: Fix secondary bus reset for Intel bridges + - RDMA/hns: Fix the gid problem caused by free mr + - RDMA/hns: Fix XRC caps on HIP08 + - RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path + - RISC-V: Fix MEMREMAP_WB for systems with Svpbmt + - riscv: Fix crash during early errata patching + - f2fs: fix iostat parameter for discard + - riscv: Fix P4D_SHIFT definition for 3-level page table mode + - interconnect: qcom: sc7180: fix dropped const of qcom_icc_bcm + - usb: typec: tipd: Fix typec_unregister_port error paths + - usb: musb: omap2430: Fix probe regression for missing resources + - USB: gadget: Fix use-after-free during usb config switch + - tracing/user_events: Fix call print_fmt leak + - usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe() + - thermal/drivers/k3_j72xx_bandgap: Fix the debug print message + - led: qcom-lpg: Fix sleeping in atomic + - watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running + - power: supply: cw2015: Fix potential null-ptr-deref in cw_bat_probe() + - perf off_cpu: Fix a typo in BTF tracepoint name, it should be + 'btf_trace_sched_switch' + - ftrace: Allow WITH_ARGS flavour of graph tracer with shadow call stack + - phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 + power on + - iommu/s390: Fix duplicate domain attachments + - iommu/sun50i: Implement .iotlb_sync_map + - phy: usb: Use slow clock for wake enabled suspend + - phy: usb: Fix clock imbalance for suspend/resume + - pwm: tegra: Ensure the clock rate is not less than needed + - rtc: rzn1: Check return value in rzn1_rtc_probe + - rtc: class: Fix potential memleak in devm_rtc_allocate_device() + - iommu/mediatek: Check return value after calling platform_get_resource() + - kprobes: Fix check for probe enabled in kill_kprobe() + - iommu/mediatek: Add platform_device_put for recovering the device refcnt + - iommu/mediatek: Use component_match_add + - iommu/mediatek: Add error path for loop of mm_dts_parse + - iommu/mediatek: Validate number of phandles associated with "mediatek,larbs" + - mfd: axp20x: Do not sleep in the power off handler + - selftests/bpf: Select CONFIG_FUNCTION_ERROR_INJECTION + - mctp: serial: Fix starting value for frame check sequence + - mctp: Remove device type check at unregister + - ASoC: sof_es8336: fix possible use-after-free in sof_es8336_remove() + - ALSA: hda/hdmi: fix i915 silent stream programming flow + - ALSA: hda/hdmi: set default audio parameters for KAE silent-stream + - ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend + - lkdtm: cfi: Make PAC test work with GCC 7 and 8 + - drm/amd/pm: avoid large variable on kernel stack + - MIPS: ralink: mt7621: avoid to init common ralink reset controller + - perf test: Fix "all PMU test" to skip parametrized events + - Input: iqs7222 - avoid sending empty SYN_REPORT events + - dt-bindings: input: iqs7222: Reduce 'linux,code' to optional + - dt-bindings: input: iqs7222: Correct minimum slider size + - dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+ + - Input: iqs7222 - trim force communication command + - Input: iqs7222 - add support for IQS7222A v1.13+ + - arm64: dts: qcom: sm6350: fix USB-DP PHY registers + - dt-bindings: clocks: imx8mp: Add ID for usb suspend clock + - clk: imx: imx8mp: add shared clk gate for usb suspend clk + - iio: addac: ad74413r: fix integer promotion bug in + ad74413_get_input_current_offset() + - mm/gup: disallow FOLL_FORCE|FOLL_WRITE on hugetlb mappings + + -- Luke Nowakowski-Krijger Tue, 21 Mar 2023 09:35:40 -0700 + +linux (5.19.0-38.39) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-38.39 -proposed tracker (LP: #2012088) + + * NFS deathlock with last Kernel 5.4.0-144.161 and 5.15.0-67.74 (LP: #2009325) + - NFS: Correct timing for assigning access cache timestamp + + -- Luke Nowakowski-Krijger Fri, 17 Mar 2023 10:12:45 -0700 + +linux (5.19.0-37.38) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-37.38 -proposed tracker (LP: #2008305) + + * XPS 9320 screen flicker on UHD panel 3840x2400 (LP: #2007516) + - SAUCE: drm/i915/display/psr: Disable PSR2 sel fetch on panel SHP 5457 + + * Fix speaker mute hotkey doesn't work on Dell G16 series (LP: #2003161) + - platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table + + * net:cmsg_ipv6.sh from ubuntu_kernel_selftests failed with K-5.19 + (LP: #2000709) + - selftest: net: Improve IPV6_TCLASS/IPV6_HOPLIMIT tests apparmor + compatibility + + * rtcpie in timers from ubuntu_kernel_selftests randomly failing + (LP: #1814234) + - SAUCE: selftest: rtcpie: Force passing unreliable subtest + + * CVE-2023-0469 + - io_uring/filetable: fix file reference underflow + + * Improve arp_ndisc_evict_nocarrier.sh test result processing (LP: #2006546) + - selftests: net: return non-zero for failures reported in + arp_ndisc_evict_nocarrier + + * Make cm32181 sensor work after system suspend (LP: #1981773) + - iio: light: cm32181: Add PM support + + * Fix Thunderbolt device hotplug fail when connect via thunderbolt dock + (LP: #1991366) + - PCI: Fix used_buses calculation in pci_scan_child_bus_extend() + - PCI: Pass available buses even if the bridge is already configured + - PCI: Move pci_assign_unassigned_root_bus_resources() + - PCI: Fix whitespace and indentation + - PCI: Fix typo in pci_scan_child_bus_extend() + + * arp_ndisc_evict_nocarrier.sh in net from ubuntu_kernel_selftests failed on + J-oem-5.17 / K (LP: #1968310) + - selftests: net: fix cleanup_v6() for arp_ndisc_evict_nocarrier + + * Screen freeze after resuming from suspend (nvme0: I/O timeout) + (LP: #1996048) + - PCI: vmd: Disable MSI remapping after suspend + + * RaptorLake: Fix the Screen is shaking by onboard HDMI port in mirror mode + (LP: #1993561) + - drm/i915/display: Drop check for doublescan mode in modevalid + - drm/i915/display: Prune Interlace modes for Display >=12 + + * udpgro_frglist.sh in net from ubuntu_kernel_selftests failed with K-5.19 + (Missing nat6to4 helper) (LP: #2000708) + - selftests/net: mv bpf/nat6to4.c to net folder + + * selftests/.../nat6to4 breaks the selftests build (LP: #1996536) + - selftests: net: Add cross-compilation support for BPF programs + - selftests: net: Fix O=dir builds + + * CVE-2023-0266 // CVE-2023-0266 was assigned for this issue. + - ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF + + * CVE-2022-4382 + - USB: gadgetfs: Fix race between mounting and unmounting + + * CVE-2022-2196 + - KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS + + * ubuntu_kernel_selftests: net:udpgso_bench.sh failed (LP: #1951447) + - selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs + + * Kinetic update: upstream stable patchset 2023-02-02 (LP: #2004602) + - clk: generalize devm_clk_get() a bit + - clk: Provide new devm_clk helpers for prepared and enabled clocks + - mmc: mtk-sd: Fix missing clk_disable_unprepare in msdc_of_clock_parse() + - arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4 + series + - arm: dts: rockchip: fix node name for hym8563 rtc + - arm: dts: rockchip: remove clock-frequency from rtc + - ARM: dts: rockchip: fix ir-receiver node names + - arm64: dts: rockchip: fix ir-receiver node names + - ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name + - fs: use acquire ordering in __fget_light() + - ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels + - ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation + - ASoC: wm8962: Wait for updated value of WM8962_CLOCKING1 register + - spi: mediatek: Fix DEVAPC Violation at KO Remove + - ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188 + - ASoC: rt711-sdca: fix the latency time of clock stop prepare state machine + transitions + - 9p/fd: Use P9_HDRSZ for header size + - regulator: slg51000: Wait after asserting CS pin + - ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event + - btrfs: send: avoid unaligned encoded writes when attempting to clone range + - ASoC: soc-pcm: Add NULL check in BE reparenting + - regulator: twl6030: fix get status of twl6032 regulators + - fbcon: Use kzalloc() in fbcon_prepare_logo() + - usb: dwc3: gadget: Disable GUSB2PHYCFG.SUSPHY for End Transfer + - 9p/xen: check logical size for buffer size + - net: usb: qmi_wwan: add u-blox 0x1342 composition + - mm/khugepaged: take the right locks for page table retraction + - mm/khugepaged: fix GUP-fast interaction by sending IPI + - mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths + - cifs: fix use-after-free caused by invalid pointer `hostname` + - xen/netback: do some code cleanup + - xen/netback: don't call kfree_skb() with interrupts disabled + - media: videobuf2-core: take mmap_lock in vb2_get_unmapped_area() + - soundwire: intel: Initialize clock stop timeout + - media: v4l2-dv-timings.c: fix too strict blanking sanity checks + - memcg: fix possible use-after-free in memcg_write_event_control() + - mm/gup: fix gup_pud_range() for dax + - Bluetooth: btusb: Add debug message for CSR controllers + - Bluetooth: Fix crash when replugging CSR fake controllers + - net: mana: Fix race on per-CQ variable napi work_done + - KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field + - drm/vmwgfx: Don't use screen objects when SEV is active + - drm/amdgpu/sdma_v4_0: turn off SDMA ring buffer in the s2idle suspend + - drm/shmem-helper: Remove errant put in error path + - drm/shmem-helper: Avoid vm_open error paths + - net: dsa: sja1105: avoid out of bounds access in sja1105_init_l2_policing() + - HID: usbhid: Add ALWAYS_POLL quirk for some mice + - HID: hid-lg4ff: Add check for empty lbuf + - HID: core: fix shift-out-of-bounds in hid_report_raw_event + - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10 + - can: af_can: fix NULL pointer dereference in can_rcv_filter + - clk: Fix pointer casting to prevent oops in devm_clk_release() + - gpiolib: fix memory leak in gpiochip_setup_dev() + - netfilter: nft_set_pipapo: Actually validate intervals in fields after the + first one + - drm/vmwgfx: Fix race issue calling pin_user_pages + - ieee802154: cc2520: Fix error return code in cc2520_hw_init() + - ca8210: Fix crash by zero initializing data + - netfilter: ctnetlink: fix compilation warning after data race fixes in ct + mark + - drm/bridge: ti-sn65dsi86: Fix output polarity setting bug + - gpio: amd8111: Fix PCI device reference count leak + - e1000e: Fix TX dispatch condition + - igb: Allocate MSI-X vector when testing + - net: broadcom: Add PTP_1588_CLOCK_OPTIONAL dependency for BCMGENET under + ARCH_BCM2835 + - drm: bridge: dw_hdmi: fix preference of RGB modes over YUV420 + - af_unix: Get user_ns from in_skb in unix_diag_get_exact(). + - vmxnet3: correctly report encapsulated LRO packet + - vmxnet3: use correct intrConf reference when using extended queues + - Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn() + - Bluetooth: Fix not cleanup led when bt_init fails + - net: dsa: ksz: Check return value + - net: dsa: hellcreek: Check return value + - net: dsa: sja1105: Check return value + - selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload + - mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add() + - net: encx24j600: Add parentheses to fix precedence + - net: encx24j600: Fix invalid logic in reading of MISTAT register + - net: mdiobus: fwnode_mdiobus_register_phy() rework error handling + - net: mdiobus: fix double put fwnode in the error path + - octeontx2-pf: Fix potential memory leak in otx2_init_tc() + - xen-netfront: Fix NULL sring after live migration + - net: mvneta: Prevent out of bounds read in mvneta_config_rss() + - i40e: Fix not setting default xps_cpus after reset + - i40e: Fix for VF MAC address 0 + - i40e: Disallow ip4 and ip6 l4_4_bytes + - NFC: nci: Bounds check struct nfc_target arrays + - nvme initialize core quirks before calling nvme_init_subsystem + - gpio/rockchip: fix refcount leak in rockchip_gpiolib_register() + - net: stmmac: fix "snps,axi-config" node property parsing + - ip_gre: do not report erspan version on GRE interface + - net: microchip: sparx5: Fix missing destroy_workqueue of mact_queue + - net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq + - net: hisilicon: Fix potential use-after-free in hisi_femac_rx() + - net: mdio: fix unbalanced fwnode reference count in mdio_device_release() + - net: hisilicon: Fix potential use-after-free in hix5hd2_rx() + - tipc: Fix potential OOB in tipc_link_proto_rcv() + - ipv4: Fix incorrect route flushing when source address is deleted + - ipv4: Fix incorrect route flushing when table ID 0 is used + - net: dsa: sja1105: fix memory leak in sja1105_setup_devlink_regions() + - tipc: call tipc_lxc_xmit without holding node_read_lock + - ethernet: aeroflex: fix potential skb leak in greth_init_rings() + - dpaa2-switch: Fix memory leak in dpaa2_switch_acl_entry_add() and + dpaa2_switch_acl_entry_remove() + - net: phy: mxl-gpy: fix version reporting + - net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq() + - ipv6: avoid use-after-free in ip6_fragment() + - net: thunderbolt: fix memory leak in tbnet_open() + - net: mvneta: Fix an out of bounds check + - macsec: add missing attribute validation for offload + - s390/qeth: fix use-after-free in hsci + - can: esd_usb: Allow REC and TEC to return to zero + - io_uring: Fix a null-ptr-deref in io_tctx_exit_cb() + - madvise: use zap_page_range_single for madvise dontneed + - drm/i915: Remove non-existent pipes from bigjoiner pipe mask + - arm64: dts: rockchip: Fix gmac failure of rgmii-id from rk3566-roc-pc + - arm64: dts: rockchip: Fix i2c3 pinctrl on rk3566-roc-pc + - arm64: dts: rockchip: remove i2c5 from rk3566-roc-pc + - arm64: dts: rockchip: fix node name for hym8563 rtc + - ARM: dts: rockchip: fix adc-keys sub node names + - arm64: dts: rockchip: fix adc-keys sub node names + - LoongArch: Makefile: Use "grep -E" instead of "egrep" + - LoongArch: Combine acpi_boot_table_init() and acpi_boot_init() + - LoongArch: Set _PAGE_DIRTY only if _PAGE_MODIFIED is set in + {pmd,pte}_mkwrite() + - net/mlx5: Lag, avoid lockdep warnings + - hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing + - crypto: ccp - Add a quirk to firmware update + - soundwire: dmi-quirks: add remapping for HP Omen 16-k0005TX + - platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum + - platform/x86: asus-wmi: Add support for ROG X13 tablet mode + - fscache: Fix oops due to race with cookie_lru and use_cookie + - tmpfs: fix data loss from failed fallocate + - selftests/tls: Fix tls selftests dependency to correct algorithm + - drm/amd/display: fix array index out of bound error in DCN32 DML + - HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk + - ARM: 9278/1: kfence: only handle translation faults + - netfilter: conntrack: fix using __this_cpu_add in preemptible + - net: ethernet: ti: am65-cpsw: Fix RGMII configuration at SPEED_10 + - inet: ping: use hlist_nulls rcu iterator during lookup + - Bluetooth: Remove codec id field in vendor codec definition + - Bluetooth: Fix support for Read Local Supported Codecs V2 + - nfp: correct desc type when header dma len is 4096 + - net: microchip: sparx5: correctly free skb in xmit + - net: wwan: iosm: fix memory leak in ipc_mux_init() + - ravb: Fix potential use-after-free in ravb_rx_gbeth() + - bonding: get correct NA dest address + - net: dsa: mv88e6xxx: accept phy-mode = "internal" for internal PHY ports + - drm/amdgpu/vcn: update vcn4 fw shared data structure + - x86/vdso: Conditionally export __vdso_sgx_enter_enclave() + - ASoC: fsl_micfil: explicitly clear software reset bit + - ASoC: fsl_micfil: explicitly clear CHnF flags + - ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx() + - libbpf: Use page size as max_entries when probing ring buffer map + - pinctrl: meditatek: Startup with the IRQs disabled + - can: sja1000: fix size of OCR_MODE_MASK define + - can: mcba_usb: Fix termination command argument + - net: fec: don't reset irq coalesce settings to defaults on "ip link up" + - ASoC: cs42l51: Correct PGA Volume minimum value + - perf: Fix perf_pending_task() UaF + - nvme-pci: clear the prp2 field when not used + - ASoC: ops: Correct bounds check for second channel on SX controls + - net: fec: properly guard irq coalesce setup + - libbpf: Fix uninitialized warning in btf_dump_dump_type_data + - udf: Discard preallocation before extending file with a hole + - udf: Fix preallocation discarding at indirect extent boundary + - udf: Do not bother looking for prealloc extents if i_lenExtents matches + i_size + - udf: Fix extending file within last block + - usb: gadget: uvc: Prevent buffer overflow in setup handler + - USB: serial: option: add Quectel EM05-G modem + - USB: serial: cp210x: add Kamstrup RF sniffer PIDs + - USB: serial: f81232: fix division by zero on line-speed change + - USB: serial: f81534: fix division by zero on line-speed change + - xhci: Apply XHCI_RESET_TO_DEFAULT quirk to ADL-N + - igb: Initialize mailbox message for VF reset + - usb: dwc3: pci: Update PCIe device ID for USB3 controller on CPU sub-system + for Raptor Lake + - selftests: net: Use "grep -E" instead of "egrep" + - net: loopback: use NET_NAME_PREDICTABLE for name_assign_type + - PCI: mt7621: Add sentinel to quirks table + - kallsyms: Make module_kallsyms_on_each_symbol generally available + - ftrace: Add support to resolve module symbols in ftrace_lookup_symbols + - bpf: Rename __bpf_kprobe_multi_cookie_cmp to bpf_kprobe_multi_addrs_cmp + - bpf: Take module reference on kprobe_multi link + - selftests/bpf: Add load_kallsyms_refresh function + - selftests/bpf: Add bpf_testmod_fentry_* functions + - selftests/bpf: Add kprobe_multi check to module attach test + - selftests/bpf: Add kprobe_multi kmod attach api tests + - usb: typec: ucsi: Resume in separate work + - KEYS: encrypted: fix key instantiation with user-provided data + + * Kinetic update: upstream stable patchset 2023-02-02 (LP: #2004602) // + net:fcnal-test.sh 'nettest' command not found on F/K (LP: #2006391) + - selftests/net: Find nettest in current directory + + * CVE-2023-23559 + - wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid + + * CVE-2023-0045 + - x86/bugs: Flush IBP in ib_prctl_set() + + -- Luke Nowakowski-Krijger Wed, 01 Mar 2023 09:03:07 -0800 + +linux (5.19.0-35.36) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-35.36 -proposed tracker (LP: #2004652) + + * CVE-2023-0461 + - SAUCE: Fix inet_csk_listen_start after CVE-2023-0461 + + -- Luke Nowakowski-Krijger Fri, 03 Feb 2023 10:16:50 -0800 + +linux (5.19.0-34.35) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-34.35 -proposed tracker (LP: #2004299) + + * LXD containers using shiftfs on ZFS or TMPFS broken on 5.15.0-48.54 + (LP: #1990849) + - [SAUCE] shiftfs: fix -EOVERFLOW inside the container + + * Kinetic update: upstream stable patchset 2023-01-27 (LP: #2004051) + - ASoC: fsl_sai: use local device pointer + - serial: Add rs485_supported to uart_port + - serial: fsl_lpuart: Fill in rs485_supported + - x86/sgx: Create utility to validate user provided offset and length + - x86/sgx: Add overflow check in sgx_validate_offset_length() + - binder: validate alloc->mm in ->mmap() handler + - ceph: Use kcalloc for allocating multiple elements + - ceph: fix NULL pointer dereference for req->r_session + - wifi: mac80211: fix memory free error when registering wiphy fail + - wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support + - riscv: dts: sifive unleashed: Add PWM controlled LEDs + - audit: fix undefined behavior in bit shift for AUDIT_BIT + - wifi: airo: do not assign -1 to unsigned char + - wifi: mac80211: Fix ack frame idr leak when mesh has no route + - wifi: ath11k: Fix QCN9074 firmware boot on x86 + - spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run + - selftests/bpf: Add verifier test for release_reference() + - Revert "net: macsec: report real_dev features when HW offloading is enabled" + - platform/x86: ideapad-laptop: Disable touchpad_switch + - platform/x86: touchscreen_dmi: Add info for the RCA Cambio W101 v2 2-in-1 + - platform/x86/intel/pmt: Sapphire Rapids PMT errata fix + - scsi: ibmvfc: Avoid path failures during live migration + - scsi: scsi_debug: Make the READ CAPACITY response compliant with ZBC + - drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017) + - block, bfq: fix null pointer dereference in bfq_bio_bfqg() + - arm64/syscall: Include asm/ptrace.h in syscall_wrapper header. + - nvmet: fix memory leak in nvmet_subsys_attr_model_store_locked + - Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 + properly"" + - ALSA: usb-audio: add quirk to fix Hamedal C20 disconnect issue + - RISC-V: vdso: Do not add missing symbols to version section in linker script + - MIPS: pic32: treat port as signed integer + - xfrm: fix "disable_policy" on ipv4 early demux + - xfrm: replay: Fix ESN wrap around for GSO + - af_key: Fix send_acquire race with pfkey_register + - ARM: dts: am335x-pcm-953: Define fixed regulators in root node + - ASoC: hdac_hda: fix hda pcm buffer overflow issue + - ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove + - ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open() + - x86/hyperv: Restore VP assist page after cpu offlining/onlining + - scsi: storvsc: Fix handling of srb_status and capacity change events + - ASoC: max98373: Add checks for devm_kcalloc + - regulator: core: fix kobject release warning and memory leak in + regulator_register() + - spi: dw-dma: decrease reference count in dw_spi_dma_init_mfld() + - regulator: core: fix UAF in destroy_regulator() + - bus: sunxi-rsb: Remove the shutdown callback + - bus: sunxi-rsb: Support atomic transfers + - tee: optee: fix possible memory leak in optee_register_device() + - ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl + - selftests: mptcp: fix mibit vs mbit mix up + - net: liquidio: simplify if expression + - rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI- + CAN-15975] + - net: dsa: sja1105: disallow C45 transactions on the BASE-TX MDIO bus + - nfc/nci: fix race with opening and closing + - net: pch_gbe: fix potential memleak in pch_gbe_tx_queue() + - 9p/fd: fix issue of list_del corruption in p9_fd_cancel() + - netfilter: conntrack: Fix data-races around ct mark + - netfilter: nf_tables: do not set up extensions for end interval + - iavf: Fix a crash during reset task + - iavf: Do not restart Tx queues after reset task failure + - iavf: Fix race condition between iavf_shutdown and iavf_remove + - ARM: mxs: fix memory leak in mxs_machine_init() + - ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties + - net: ethernet: mtk_eth_soc: fix error handling in mtk_open() + - net/mlx4: Check retval of mlx4_bitmap_init + - net: mvpp2: fix possible invalid pointer dereference + - net/qla3xxx: fix potential memleak in ql3xxx_send() + - octeontx2-af: debugsfs: fix pci device refcount leak + - net: pch_gbe: fix pci device refcount leak while module exiting + - nfp: fill splittable of devlink_port_attrs correctly + - nfp: add port from netdev validation for EEPROM access + - macsec: Fix invalid error code set + - Drivers: hv: vmbus: fix double free in the error path of + vmbus_add_channel_work() + - Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register() + - netfilter: ipset: regression in ip_set_hash_ip.c + - net/mlx5: Do not query pci info while pci disabled + - net/mlx5: Fix FW tracer timestamp calculation + - net/mlx5: Fix handling of entry refcount when command is not issued to FW + - tipc: set con sock in tipc_conn_alloc + - tipc: add an extra conn_get in tipc_conn_alloc + - tipc: check skb_linearize() return value in tipc_disc_rcv() + - xfrm: Fix oops in __xfrm_state_delete() + - xfrm: Fix ignored return value in xfrm6_init() + - net: wwan: iosm: use ACPI_FREE() but not kfree() in ipc_pcie_read_bios_cfg() + - sfc: fix potential memleak in __ef100_hard_start_xmit() + - net: sparx5: fix error handling in sparx5_port_open() + - net: sched: allow act_ct to be built without NF_NAT + - NFC: nci: fix memory leak in nci_rx_data_packet() + - regulator: twl6030: re-add TWL6032_SUBCLASS + - bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending() + - dma-buf: fix racing conflict of dma_heap_add() + - netfilter: ipset: restore allowing 64 clashing elements in hash:net,iface + - netfilter: flowtable_offload: add missing locking + - fs: do not update freeing inode i_io_list + - dccp/tcp: Reset saddr on failure after inet6?_hash_connect(). + - ipv4: Fix error return code in fib_table_insert() + - arcnet: fix potential memory leak in com20020_probe() + - s390/dasd: fix no record found for raw_track_access + - nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION + - nfc: st-nci: fix memory leaks in EVT_TRANSACTION + - nfc: st-nci: fix incorrect sizing calculations in EVT_TRANSACTION + - net: enetc: cache accesses to &priv->si->hw + - net: enetc: preserve TX ring priority across reconfiguration + - octeontx2-pf: Add check for devm_kcalloc + - octeontx2-af: Fix reference count issue in rvu_sdp_init() + - net: thunderx: Fix the ACPI memory leak + - s390/crashdump: fix TOD programmable field size + - lib/vdso: use "grep -E" instead of "egrep" + - [Config] updateconfigs for CC_HAS_ASM_GOTO_TIED_OUTPUT + - init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash + - nios2: add FORCE for vmlinuz.gz + - KVM: arm64: pkvm: Fixup boot mode to reflect that the kernel resumes from + EL1 + - usb: dwc3: exynos: Fix remove() function + - usb: cdnsp: Fix issue with Clear Feature Halt Endpoint + - usb: cdnsp: fix issue with ZLP - added TD_SIZE = 1 + - ext4: fix use-after-free in ext4_ext_shift_extents + - arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency + - iio: light: apds9960: fix wrong register for gesture gain + - iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails + - bus: ixp4xx: Don't touch bit 7 on IXP42x + - usb: dwc3: gadget: conditionally remove requests + - usb: dwc3: gadget: Return -ESHUTDOWN on ep disable + - usb: dwc3: gadget: Clear ep descriptor last + - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty + - gcov: clang: fix the buffer overflow issue + - mm: vmscan: fix extreme overreclaim and swap floods + - KVM: x86: nSVM: leave nested mode on vCPU free + - KVM: x86: forcibly leave nested mode on vCPU reset + - KVM: x86: nSVM: harden svm_free_nested against freeing vmcb02 while still in + use + - KVM: x86: add kvm_leave_nested + - KVM: x86: remove exit_int_info warning in svm_handle_exit + - x86/tsx: Add a feature bit for TSX control MSR support + - x86/pm: Add enumeration check before spec MSRs save/restore setup + - x86/ioremap: Fix page aligned size calculation in __ioremap_caller() + - Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode + - ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 + - tools: iio: iio_generic_buffer: Fix read size + - serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() + - Input: goodix - try resetting the controller when no config is set + - Input: soc_button_array - add use_low_level_irq module parameter + - Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] + - Input: i8042 - apply probe defer to more ASUS ZenBook models + - ASoC: stm32: dfsdm: manage cb buffers cleanup + - xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too + - xen/platform-pci: add missing free_irq() in error path + - platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() + - platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) + - drm/amdgpu: disable BACO support on more cards + - zonefs: fix zone report size in __zonefs_io_error() + - platform/x86: hp-wmi: Ignore Smart Experience App event + - platform/x86: ideapad-laptop: Fix interrupt storm on fn-lock toggle on some + Yoga laptops + - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER + - tcp: configurable source port perturb table size + - net: usb: qmi_wwan: add Telit 0x103a composition + - scsi: iscsi: Fix possible memory leak when device_register() failed + - gpu: host1x: Avoid trying to use GART on Tegra20 + - dm integrity: flush the journal on suspend + - dm integrity: clear the journal on suspend + - fuse: lock inode unconditionally in fuse_fallocate() + - wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute + - wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_CHANNEL_LIST attribute + - wifi: wilc1000: validate number of channels + - btrfs: free btrfs_path before copying root refs to userspace + - btrfs: free btrfs_path before copying fspath to userspace + - btrfs: free btrfs_path before copying subvol info to userspace + - btrfs: zoned: fix missing endianness conversion in sb_write_pointer + - btrfs: use kvcalloc in btrfs_get_dev_zone_info + - btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs() + - drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN + - drm/amdgpu: Enable Aldebaran devices to report CU Occupancy + - drm/amdgpu: always register an MMU notifier for userptr + - drm/i915: fix TLB invalidation for Gen12 video and compute engines + - wifi: cfg80211: Fix bitrates overflow issue + - spi: tegra210-quad: Don't initialise DMA if not supported + - s390/zcrypt: fix warning about field-spanning write + - selftests/net: give more time to udpgro bg processes to complete startup + - ACPI: video: Add backlight=native DMI quirk for Dell G15 5515 + - drm: panel-orientation-quirks: Add quirk for Nanote UMPC-01 + - s390: always build relocatable kernel + - nvme: quiet user passthrough command errors + - net: wwan: iosm: fix kernel test robot reported errors + - drm/amdgpu: Drop eviction lock when allocating PT BO + - arm64: dts: rockchip: fix quartz64-a bluetooth configuration + - power: supply: ip5xxx: Fix integer overflow in current_now calculation + - power: supply: ab8500: Defer thermal zone probe + - arm64: dts: rockchip: Fix Pine64 Quartz4-B PMIC interrupt + - regulator: rt5759: fix OOB in validate_desc() + - spi: tegra210-quad: Fix duplicate resource error + - selftests: mptcp: gives slow test-case more time + - selftests: mptcp: run mptcp_sockopt from a new netns + - bonding: fix ICMPv6 header handling when receiving IPv6 messages + - drm/i915: Fix warn in intel_display_power_*_domain() functions + - net/mlx5: SF: Fix probing active SFs during driver probe phase + - net/mlx5: cmdif, Print info on any firmware cmd failure to tracepoint + - net/mlx5: E-Switch, Set correctly vport destination + - net/mlx5e: Offload rule only when all encaps are valid + - net: phy: at803x: fix error return code in at803x_probe() + - zonefs: Fix race between modprobe and mount + - tsnep: Fix rotten packets + - blk-mq: fix queue reference leak on blk_mq_alloc_disk_for_queue failure + - test_kprobes: fix implicit declaration error of test_kprobes + - net: ethernet: mtk_eth_soc: fix resource leak in error path + - net: dm9051: Fix missing dev_kfree_skb() in dm9051_loop_rx() + - s390/ap: fix memory leak in ap_init_qci_info() + - fscache: fix OOB Read in __fscache_acquire_volume + - net: wwan: t7xx: Fix the ACPI memory leak + - virtio_net: Fix probe failed when modprobe virtio_net + - can: gs_usb: remove dma allocations + - cifs: fix missing unlock in cifs_file_copychunk_range() + - cifs: Use after free in debug code + - iio: adc: aspeed: Remove the trim valid dts property. + - dt-bindings: iio: adc: Remove the property "aspeed,trim-data-valid" + - mm/damon/sysfs-schemes: skip stats update if the scheme directory is removed + - virt/sev-guest: Prevent IV reuse in the SNP guest driver + - zonefs: Fix active zone accounting + - spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock + - spi: spi-imx: spi_imx_transfer_one(): check for DMA transfer first + - mm/cgroup/reclaim: fix dirty pages throttling on cgroup v1 + - KVM: x86/mmu: Fix race condition in direct_page_fault + - KVM: x86/xen: Only do in-kernel acceleration of hypercalls for guest CPL0 + - KVM: x86/xen: Validate port number in SCHEDOP_poll + - drm/i915/gvt: Get reference to KVM iff attachment to VM is successful + - KVM: Update gfn_to_pfn_cache khva when it moves within the same page + - mm: fix unexpected changes to {failslab|fail_page_alloc}.attr + - mm: correctly charge compressed memory to its memcg + - LoongArch: Clear FPU/SIMD thread info flags for kernel thread + - LoongArch: Set _PAGE_DIRTY only if _PAGE_WRITE is set in {pmd,pte}_mkdirty() + - ASoC: amd: yc: Add Alienware m17 R5 AMD into DMI table + - ASoC: Intel: soc-acpi: add ES83x6 support to IceLake + - ASoC: hda: intel-dsp-config: add ES83x6 quirk for IceLake + - ASoC: SOF: ipc3-topology: use old pipeline teardown flow with SOF2.1 and + older + - Revert "tty: n_gsm: avoid call of sleeping functions from atomic context" + - Revert "tty: n_gsm: replace kicktimer with delayed_work" + - ASoC: sof_es8336: reduce pop noise on speaker + - pinctrl: qcom: sc8280xp: Rectify UFS reset pins + - platform/x86: thinkpad_acpi: Enable s2idle quirk for 21A1 machine type + - platform/x86: ideapad-laptop: Add module parameters to match DMI quirk + tables + - block: make blk_set_default_limits() private + - scsi: mpi3mr: Suppress command reply debug prints + - btrfs: free btrfs_path before copying inodes to userspace + - btrfs: do not modify log tree while holding a leaf from fs tree locked + - drm/i915/ttm: never purge busy objects + - drm/display/dp_mst: Fix drm_dp_mst_add_affected_dsc_crtcs() return code + - drm/amdgpu/psp: don't free PSP buffers on suspend + - drm/amd/amdgpu: reserve vm invalidation engine for firmware + - drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly + when the edid is read" + - btrfs: sink iterator parameter to btrfs_ioctl_logical_to_ino + - btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit() + - iio: health: afe4403: Fix oob read in afe4403_read_raw + - iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw + - iio: light: rpr0521: add missing Kconfig dependencies + - bpf, perf: Use subprog name when reporting subprog ksymbol + - scripts/faddr2line: Fix regression in name resolution on ppc64le + - ARM: at91: rm9200: fix usb device clock id + - libbpf: Handle size overflow for ringbuf mmap + - hwmon: (ltc2947) fix temperature scaling + - hwmon: (ina3221) Fix shunt sum critical calculation + - hwmon: (i5500_temp) fix missing pci_disable_device() + - hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails + - bpf: Do not copy spin lock field from user in bpf_selem_alloc + - nvmem: rmem: Fix return value check in rmem_read() + - of: property: decrement node refcount in of_fwnode_get_reference_args() + - ixgbevf: Fix resource leak in ixgbevf_init_module() + - i40e: Fix error handling in i40e_init_module() + - fm10k: Fix error handling in fm10k_init_module() + - iavf: Fix error handling in iavf_init_module() + - e100: Fix possible use after free in e100_xmit_prepare + - net/mlx5: DR, Fix uninitialized var warning + - net/mlx5: Fix uninitialized variable bug in outlen_write() + - net/mlx5e: Fix use-after-free when reverting termination table + - can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev() + - can: cc770: cc770_isa_probe(): add missing free_cc770dev() + - can: etas_es58x: es58x_init_netdev(): free netdev when register_candev() + - can: m_can: pci: add missing m_can_class_free_dev() in probe/remove methods + - can: m_can: Add check for devm_clk_get + - qlcnic: fix sleep-in-atomic-context bugs caused by msleep + - aquantia: Do not purge addresses when setting the number of rings + - wifi: cfg80211: fix buffer overflow in elem comparison + - wifi: cfg80211: don't allow multi-BSSID in S1G + - wifi: mac8021: fix possible oob access in ieee80211_get_rate_duration + - net: phy: fix null-ptr-deref while probe() failed + - net: ethernet: ti: am65-cpsw: fix error handling in am65_cpsw_nuss_probe() + - net: net_netdev: Fix error handling in ntb_netdev_init_module() + - net/9p: Fix a potential socket leak in p9_socket_open + - net: ethernet: nixge: fix NULL dereference + - net: wwan: iosm: fix kernel test robot reported error + - net: wwan: iosm: fix dma_alloc_coherent incompatible pointer type + - dsa: lan9303: Correct stat name + - tipc: re-fetch skb cb after tipc_msg_validate + - net: hsr: Fix potential use-after-free + - net: mdiobus: fix unbalanced node reference count + - afs: Fix fileserver probe RTT handling + - net: tun: Fix use-after-free in tun_detach() + - packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE + - sctp: fix memory leak in sctp_stream_outq_migrate() + - net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed + - hwmon: (coretemp) Check for null before removing sysfs attrs + - hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() + - riscv: vdso: fix section overlapping under some conditions + - riscv: mm: Proper page permissions after initmem free + - ALSA: dice: fix regression for Lexicon I-ONIX FW810S + - error-injection: Add prompt for function error injection + - tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep" + - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry() + - x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3 + - pinctrl: intel: Save and restore pins in "direct IRQ" mode + - v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails + - net: stmmac: Set MAC's flow control register to reflect current settings + - mmc: mmc_test: Fix removal of debugfs file + - mmc: core: Fix ambiguous TRIM and DISCARD arg + - mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check + - mmc: sdhci-sprd: Fix no reset data and command after voltage switch + - mmc: sdhci: Fix voltage switch delay + - drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame + - drm/amdgpu: enable Vangogh VCN indirect sram mode + - drm/i915: Fix negative value passed as remaining time + - drm/i915: Never return 0 if not all requests retired + - tracing/osnoise: Fix duration type + - tracing: Fix race where histograms can be called before the event + - tracing: Free buffers when a used dynamic event is removed + - io_uring: cmpxchg for poll arm refs release + - io_uring/poll: fix poll_refs race with cancelation + - ASoC: ops: Fix bounds check for _sx controls + - pinctrl: single: Fix potential division by zero + - riscv: Sync efi page table's kernel mappings before switching + - riscv: fix race when vmap stack overflow + - riscv: kexec: Fixup irq controller broken in kexec crash path + - nvme: fix SRCU protection of nvme_ns_head list + - iommu/vt-d: Fix PCI device refcount leak in has_external_pci() + - iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init() + - mm: migrate: fix THP's mapcount on isolation + - Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is + enabled + - ipv4: Handle attempt to delete multipath route when fib_info contains an nh + reference + - ipv4: Fix route deletion when nexthop info is not specified + - i2c: npcm7xx: Fix error handling in npcm_i2c_init() + - i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set + - ACPI: HMAT: remove unnecessary variable initialization + - ACPI: HMAT: Fix initiator registration for single-initiator systems + - Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend" + - char: tpm: Protect tpm_pm_suspend with locks + - Input: raydium_ts_i2c - fix memory leak in raydium_i2c_send() + - ipc/sem: Fix dangling sem_array access in semtimedop race + - clk: samsung: exynos7885: Correct "div4" clock parents + - libbpf: Use correct return pointer in attach_raw_tp + - clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error + - clk: qcom: gcc-sc8280xp: add cxo as parent for three ufs ref clks + - vfs: fix copy_file_range() averts filesystem freeze protection + - net: wwan: iosm: fix crash in peek throughput test + - net: wwan: iosm: fix incorrect skb length + - mptcp: don't orphan ssk in mptcp_close() + - mptcp: fix sleep in atomic at close time + - hwmon: (asus-ec-sensors) Add checks for devm_kcalloc + - ASoC: tlv320adc3xxx: Fix build error for implicit function declaration + - mm/damon/sysfs: fix wrong empty schemes assumption under online tuning in + damon_sysfs_set_schemes() + - i2c: Restore initial power state if probe fails + - i2c: qcom-geni: fix error return code in geni_i2c_gpi_xfer + - powerpc/bpf/32: Fix Oops on tail call tests + + * 5.15.0-58.64 breaks xen bridge networking (pvh domU) (LP: #2002889) + - xen/netback: fix build warning + + * NFS: client permission error after adding user to permissible group + (LP: #2003053) + - NFS: Clear the file access cache upon login + - NFS: Judge the file access cache's timestamp in rcu path + - NFS: Fix up a sparse warning + + * cmsg_so_mark.sh / cmsg_time.sh / cmsg_ipv6.sh in net from + ubuntu_kernel_selftests hang with non-amd64 (LP: #2000667) + - selftests: net: fix cmsg_so_mark.sh test hang + + * Set explicit CC in the headers package (LP: #1999750) + - [Packaging] Set explicit CC in the headers package + + * powerpc-build in ubuntu_kernel_selftests failed on P9 with K-5.19 + (LP: #2000772) + - selftests/powerpc: Avoid GCC 12 uninitialised variable warning + + * [SRU] SoF for RPL platform support (LP: #1992714) + - ASoC: SOC: Intel: introduce cl_init callback + - ASoC: SOF: Intel: add MeteorLake machines + - ASoC: SOF: Intel: Add support for MeteorLake (MTL) + - ASoC: Intel: common: add ACPI matching tables for Raptor Lake + - ASoC: SOF: Intel: pci-tgl: use RPL specific firmware definitions + - [Config] Enable SND_SOC_SOF_METEORLAKE as module + + * Rear Audio port sometimes has no audio output after reboot(Cirrus Logic) + (LP: #1998905) + - ALSA: hda/cirrus: Add extra 10 ms delay to allow PLL settle and lock. + + * Fix SUT can't displayed after resume from WB/CB with dGFX + installed(FR:6/10)[RX6300][RX6500] (LP: #1999836) + - drm/amd/display: No display after resume from WB/CB + + * commit cf58599cded35cf4affed1e659c0e2c742d3fda7 seems to be missing in + kinetic master to remove "hio" reference from Makefile (LP: #1999556) + - Ubuntu: remove leftover reference to ubuntu/hio driver + + * Add additional Mediatek MT7922 BT device ID (LP: #1998885) + - Bluetooth: btusb: Add a new VID/PID 0489/e0f2 for MT7922 + + * Mute/mic LEDs no function on a HP platfrom (LP: #1998882) + - ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook + + * CVE-2023-0461 + - net/ulp: prevent ULP without clone op from entering the LISTEN status + - net/ulp: use consistent error code when blocking ULP + + * CVE-2023-0179 + - netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits + + * CVE-2022-20369 + - NFSD: fix use-after-free in __nfs42_ssc_open() + + * Kinetic update: upstream stable patchset 2023-01-23 (LP: #2003753) + - ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in + wm5102_probe" + - ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in + wm5110_probe" + - ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in + wm8997_probe" + - ASoC: mt6660: Keep the pm_runtime enables before component stuff in + mt6660_i2c_probe + - ASoC: rt1019: Fix the TDM settings + - ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK + - spi: intel: Fix the offset to get the 64K erase opcode + - ASoC: codecs: jz4725b: add missed Line In power control bit + - ASoC: codecs: jz4725b: fix reported volume for Master ctl + - ASoC: codecs: jz4725b: use right control for Capture Volume + - ASoC: codecs: jz4725b: fix capture selector naming + - ASoC: Intel: sof_sdw: add quirk variant for LAPBC710 NUC15 + - selftests/futex: fix build for clang + - selftests/intel_pstate: fix build for ARCH=x86_64 + - ASoC: rt1308-sdw: add the default value of some registers + - drm/amd/display: Remove wrong pipe control lock + - ACPI: scan: Add LATT2021 to acpi_ignore_dep_ids[] + - RDMA/efa: Add EFA 0xefa2 PCI ID + - btrfs: raid56: properly handle the error when unable to find the missing + stripe + - NFSv4: Retry LOCK on OLD_STATEID during delegation return + - ACPI: x86: Add another system to quirk list for forcing StorageD3Enable + - firmware: arm_scmi: Cleanup the core driver removal callback + - i2c: tegra: Allocate DMA memory for DMA engine + - i2c: i801: add lis3lv02d's I2C address for Vostro 5568 + - drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid + - btrfs: remove pointless and double ulist frees in error paths of qgroup + tests + - x86/cpu: Add several Intel server CPU model numbers + - ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" -> + "Route" + - KVM: x86/pmu: Do not speculatively query Intel GP PMCs that don't exist yet + - hugetlbfs: don't delete error page from pagecache + - arm64: dts: qcom: sa8155p-adp: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8150-xperia-kumano: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8250-xperia-edo: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8350-hdk: Specify which LDO modes are allowed + - spi: stm32: Print summary 'callbacks suppressed' message + - ARM: dts: at91: sama7g5: fix signal name of pin PB2 + - ASoC: core: Fix use-after-free in snd_soc_exit() + - ASoC: tas2770: Fix set_tdm_slot in case of single slot + - ASoC: tas2764: Fix set_tdm_slot in case of single slot + - ARM: at91: pm: avoid soft resetting AC DLL + - serial: 8250: omap: Fix missing PM runtime calls for omap8250_set_mctrl() + - serial: 8250_omap: remove wait loop from Errata i202 workaround + - serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove() + - serial: 8250: omap: Flush PM QOS work on remove + - serial: imx: Add missing .thaw_noirq hook + - tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send + - bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb() + - ASoC: soc-utils: Remove __exit for snd_soc_util_exit() + - pinctrl: rockchip: list all pins in a possible mux route for PX30 + - scsi: scsi_transport_sas: Fix error handling in sas_phy_add() + - block: sed-opal: kmalloc the cmd/resp buffers + - bpf: Fix memory leaks in __check_func_call + - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro + - siox: fix possible memory leak in siox_device_add() + - parport_pc: Avoid FIFO port location truncation + - pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map + - drm/vc4: kms: Fix IS_ERR() vs NULL check for vc4_kms + - drm/panel: simple: set bpc field for logic technologies displays + - drm/drv: Fix potential memory leak in drm_dev_init() + - drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() + - arm64: dts: imx8mm: Fix NAND controller size-cells + - arm64: dts: imx8mn: Fix NAND controller size-cells + - ata: libata-transport: fix double ata_host_put() in ata_tport_add() + - ata: libata-transport: fix error handling in ata_tport_add() + - ata: libata-transport: fix error handling in ata_tlink_add() + - ata: libata-transport: fix error handling in ata_tdev_add() + - nfp: change eeprom length to max length enumerators + - MIPS: fix duplicate definitions for exported symbols + - MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed + - bpf: Initialize same number of free nodes for each pcpu_freelist + - net: bgmac: Drop free_netdev() from bgmac_enet_remove() + - mISDN: fix possible memory leak in mISDN_dsp_element_register() + - net: hinic: Fix error handling in hinic_module_init() + - net: stmmac: ensure tx function is not running in stmmac_xdp_release() + - soc: imx8m: Enable OCOTP clock before reading the register + - net: liquidio: release resources when liquidio driver open failed + - mISDN: fix misuse of put_device() in mISDN_register_device() + - net: macvlan: Use built-in RCU list checking + - net: caif: fix double disconnect client in chnl_net_open() + - bnxt_en: Remove debugfs when pci_register_driver failed + - net: mhi: Fix memory leak in mhi_net_dellink() + - net: dsa: make dsa_master_ioctl() see through port_hwtstamp_get() shims + - xen/pcpu: fix possible memory leak in register_pcpu() + - net: ionic: Fix error handling in ionic_init_module() + - net: ena: Fix error handling in ena_init() + - net: hns3: fix setting incorrect phy link ksettings for firmware in + resetting process + - bridge: switchdev: Fix memory leaks when changing VLAN protocol + - drbd: use after free in drbd_create_device() + - platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when + virtualized + - platform/surface: aggregator: Do not check for repeated unsequenced packets + - cifs: add check for returning value of SMB2_close_init + - net: ag71xx: call phylink_disconnect_phy if ag71xx_hw_enable() fail in + ag71xx_open() + - net/x25: Fix skb leak in x25_lapb_receive_frame() + - cifs: Fix wrong return value checking when GETFLAGS + - net: microchip: sparx5: Fix potential null-ptr-deref in sparx_stats_init() + and sparx5_start() + - net: thunderbolt: Fix error handling in tbnet_init() + - cifs: add check for returning value of SMB2_set_info_init + - ftrace: Fix the possible incorrect kernel message + - ftrace: Optimize the allocation for mcount entries + - ftrace: Fix null pointer dereference in ftrace_add_mod() + - ring_buffer: Do not deactivate non-existant pages + - tracing: Fix memory leak in tracing_read_pipe() + - tracing/ring-buffer: Have polling block on watermark + - tracing: Fix memory leak in test_gen_synth_cmd() and + test_empty_synth_event() + - tracing: Fix wild-memory-access in register_synth_event() + - tracing: Fix race where eprobes can be called before the event + - tracing: kprobe: Fix potential null-ptr-deref on trace_event_file in + kprobe_event_gen_test_exit() + - tracing: kprobe: Fix potential null-ptr-deref on trace_array in + kprobe_event_gen_test_exit() + - drm/amd/display: Add HUBP surface flip interrupt handler + - ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open() + - ALSA: hda/realtek: fix speakers for Samsung Galaxy Book Pro + - ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360 + - Revert "usb: dwc3: disable USB core PHY management" + - slimbus: qcom-ngd: Fix build error when CONFIG_SLIM_QCOM_NGD_CTRL=y && + CONFIG_QCOM_RPROC_COMMON=m + - slimbus: stream: correct presence rate frequencies + - speakup: fix a segfault caused by switching consoles + - USB: bcma: Make GPIO explicitly optional + - USB: serial: option: add Sierra Wireless EM9191 + - USB: serial: option: remove old LARA-R6 PID + - USB: serial: option: add u-blox LARA-R6 00B modem + - USB: serial: option: add u-blox LARA-L6 modem + - USB: serial: option: add Fibocom FM160 0x0111 composition + - usb: add NO_LPM quirk for Realforce 87U Keyboard + - usb: chipidea: fix deadlock in ci_otg_del_timer + - usb: cdns3: host: fix endless superspeed hub port reset + - usb: typec: mux: Enter safe mode only when pins need to be reconfigured + - iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger() + - iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init() + - iio: adc: mp2629: fix wrong comparison of channel + - iio: adc: mp2629: fix potential array out of bound access + - iio: pressure: ms5611: changed hardcoded SPI speed to value limited + - dm ioctl: fix misbehavior if list_versions races with module loading + - serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs + - serial: 8250: Flush DMA Rx on RLSI + - serial: 8250_lpss: Configure DMA also w/o DMA filter + - Input: iforce - invert valid length check when fetching device IDs + - maccess: Fix writing offset in case of fault in + strncpy_from_kernel_nofault() + - net: phy: marvell: add sleep time after enabling the loopback bit + - scsi: zfcp: Fix double free of FSF request when qdio send fails + - iommu/vt-d: Preset Access bit for IOVA in FL non-leaf paging entries + - iommu/vt-d: Set SRE bit only when hardware has SRS cap + - firmware: coreboot: Register bus in module init + - mmc: core: properly select voltage range without power cycle + - mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce + timeout + - mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put() + - docs: update mediator contact information in CoC doc + - misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram() + - perf/x86/intel/pt: Fix sampling using single range output + - nvme: restrict management ioctls to admin + - nvme: ensure subsystem reset is single threaded + - serial: 8250_lpss: Use 16B DMA burst with Elkhart Lake + - perf: Improve missing SIGTRAP checking + - ring-buffer: Include dropped pages in counting dirty patches + - tracing: Fix warning on variable 'struct trace_array' + - net: use struct_group to copy ip/ipv6 header addresses + - scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus() + - scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper() + - kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case + - Input: i8042 - fix leaking of platform device on module removal + - macvlan: enforce a consistent minimal mtu + - tcp: cdg: allow tcp_cdg_release() to be called multiple times + - kcm: avoid potential race in kcm_tx_work + - kcm: close race conditions on sk_receive_queue + - 9p: trans_fd/p9_conn_cancel: drop client lock earlier + - gfs2: Check sb_bsize_shift after reading superblock + - gfs2: Switch from strlcpy to strscpy + - 9p/trans_fd: always use O_NONBLOCK read/write + - wifi: wext: use flex array destination for memcpy() + - mm: fs: initialize fsdata passed to write_begin/write_end interface + - net/9p: use a dedicated spinlock for trans_fd + - ntfs: fix use-after-free in ntfs_attr_find() + - ntfs: fix out-of-bounds read in ntfs_attr_find() + - ntfs: check overflow when iterating ATTR_RECORDs + - drm/msm/gpu: Fix crash during system suspend after unbind + - spi: tegra210-quad: Fix combined sequence + - ASoC: rt5682s: Fix the TDM Tx settings + - selftests/kexec: fix build for ARCH=x86_64 + - ASoC: Intel: sof_rt5682: Add quirk for Rex board + - ASoC: amd: yc: Adding Lenovo ThinkBook 14 Gen 4+ ARA and Lenovo ThinkBook 16 + Gen 4+ ARA to the Quirks List + - ASoC: amd: yc: Add Lenovo Thinkbook 14+ 2022 21D0 to quirks table + - drm/amdgpu: Adjust MES polling timeout for sriov + - platform/x86: thinkpad_acpi: Fix reporting a non present second fan on some + models + - drm/scheduler: fix fence ref counting + - cxl/mbox: Add a check on input payload size + - SUNRPC: Fix crasher in gss_unwrap_resp_integ() + - drm/rockchip: vop2: fix null pointer in plane_atomic_disable + - drm/rockchip: vop2: disable planes when disabling the crtc + - ksefltests: pidfd: Fix wait_states: Test terminated by timeout + - powerpc/64e: Fix amdgpu build on Book3E w/o AltiVec + - block: blk_add_rq_to_plug(): clear stale 'last' after flush + - firmware: arm_scmi: Make tx_prepare time out eventually + - drm/amd/display: Ignore Cable ID Feature + - drm/amdgpu: set fb_modifiers_not_supported in vkms + - drm/amd: Fail the suspend if resources can't be evicted + - cxl/pmem: Use size_add() against integer overflow + - tools/testing/cxl: Fix some error exits + - arm64/mm: fold check for KFENCE into can_set_direct_map() + - arm64: fix rodata=full again + - KVM: SVM: remove dead field from struct svm_cpu_data + - KVM: SVM: do not allocate struct svm_cpu_data dynamically + - KVM: SVM: restore host save area from assembly + - KVM: SVM: move MSR_IA32_SPEC_CTRL save/restore to assembly + - arm64: dts: qcom: sc7280: Add the reset reg for lpass audiocc on SC7280 + - ASoC: fsl_asrc fsl_esai fsl_sai: allow CONFIG_PM=N + - arm64: dts: qcom: sm8250: Disable the not yet supported cluster idle state + - tty: serial: fsl_lpuart: don't break the on-going transfer when global reset + - bnxt_en: refactor bnxt_cancel_reservations() + - bnxt_en: fix the handling of PCIE-AER + - mtd: onenand: omap2: add dependency on GPMC + - sctp: remove the unnecessary sinfo_stream check in sctp_prsctp_prune_unsent + - sctp: clear out_curr if all frag chunks of current msg are pruned + - erofs: clean up .read_folio() and .readahead() in fscache mode + - io_uring: calculate CQEs from the user visible value + - pinctrl: mediatek: common-v2: Fix bias-disable for PULL_PU_PD_RSEL_TYPE + - selftests/bpf: Fix test_progs compilation failure in 32-bit arch + - arm64: dts: imx8mm-tqma8mqml-mba8mx: Fix USB DR + - cifs: Fix connections leak when tlink setup failed + - ata: libata-core: do not issue non-internal commands once EH is pending + - net: phy: dp83867: Fix SGMII FIFO depth for non OF devices + - mctp i2c: don't count unused / invalid keys for flow release + - octeon_ep: delete unnecessary napi rollback under set_queues_err in + octep_open() + - octeon_ep: ensure octep_get_link_status() successfully before + octep_link_up() + - octeon_ep: fix potential memory leak in octep_device_setup() + - octeon_ep: ensure get mac address successfully before eth_hw_addr_set() + - erofs: fix missing xas_retry() in fscache mode + - mlxsw: Avoid warnings when not offloaded FDB entry with IPv6 is removed + - net: hns3: fix incorrect hw rss hash type of rx packet + - net: hns3: fix return value check bug of rx copybreak + - netfs: Fix missing xas_retry() calls in xarray iteration + - netfs: Fix dodgy maths + - net: dsa: don't leak tagger-owned storage on switch driver unbind + - net: lan966x: Fix potential null-ptr-deref in lan966x_stats_init() + - s390: avoid using global register for current_stack_pointer + - netdevsim: Fix memory leak of nsim_dev->fa_cookie + - rethook: fix a potential memleak in rethook_alloc() + - drm/amd/pm: fix SMU13 runpm hang due to unintentional workaround + - drm/display: Don't assume dual mode adaptors support i2c sub-addressing + - drm/amd/display: Fix invalid DPIA AUX reply causing system hang + - drm/amd/display: Fix access timeout to DPIA AUX at boot time + - drm/amd/display: Support parsing VRAM info v3.0 from VBIOS + - usb: dwc3: Do not get extcon device when usb-role-switch is used + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Micron Nitro + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Netac NV7000 + - usb: typec: tipd: Prevent uninitialized event{1,2} in IRQ handler + - iio: accel: bma400: Ensure VDDIO is enable defore reading the chip ID. + - iio: pressure: ms5611: fixed value compensation bug + - ceph: avoid putting the realm twice when decoding snaps fails + - s390/dcssblk: fix deadlock when adding a DCSS + - blk-cgroup: properly pin the parent in blkcg_css_online + - x86/fpu: Drop fpregs lock before inheriting FPU permissions + - ASoC: SOF: topology: No need to assign core ID if token parsing failed + - perf/x86/amd: Fix crash due to race between amd_pmu_enable_all, perf NMI and + throttling + - net: usb: smsc95xx: fix external PHY reset + - tracing: Fix potential null-pointer-access of entry in list 'tr->err_log' + - arm64/mm: fix incorrect file_map_count for non-leaf pmd/pud + - KVM: x86/xen: Fix eventfd error handling in kvm_xen_eventfd_assign() + - netlink: Bounds-check struct nlmsgerr creation + - bpf: Prevent bpf program recursion for raw tracepoint probes + + * Fix RPL-S support on powercap/intel_rapl (LP: #1990161) + - powercap: intel_rapl: Add support for RAPTORLAKE_P + - powercap: intel_rapl: Add support for RAPTORLAKE_S + + * Kinetic update: upstream stable patchset 2023-01-04 (LP: #2001726) + - drm/amdkfd: handle CPU fault on COW mapping + - drm/amdkfd: Fix NULL pointer dereference in svm_migrate_to_ram() + - hwspinlock: qcom: correct MMIO max register for newer SoCs + - phy: stm32: fix an error code in probe + - wifi: cfg80211: silence a sparse RCU warning + - wifi: cfg80211: fix memory leak in query_regdb_file() + - soundwire: qcom: reinit broadcast completion + - soundwire: qcom: check for outanding writes before doing a read + - bpf, verifier: Fix memory leak in array reallocation for stack state + - bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues + - wifi: mac80211: Set TWT Information Frame Disabled bit as 1 + - bpftool: Fix NULL pointer dereference when pin {PROG, MAP, LINK} without + FILE + - HID: hyperv: fix possible memory leak in mousevsc_probe() + - bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues + - bpf: Fix sockmap calling sleepable function in teardown path + - bpf, sock_map: Move cancel_work_sync() out of sock lock + - bpf: Add helper macro bpf_for_each_reg_in_vstate + - bpf: Fix wrong reg type conversion in release_reference() + - net: gso: fix panic on frag_list with mixed head alloc types + - macsec: delete new rxsc when offload fails + - macsec: fix secy->n_rx_sc accounting + - macsec: fix detection of RXSCs when toggling offloading + - macsec: clear encryption keys from the stack after setting up offload + - octeontx2-pf: NIX TX overwrites SQ_CTX_HW_S[SQ_INT] + - net: tun: Fix memory leaks of napi_get_frags + - bnxt_en: Fix possible crash in bnxt_hwrm_set_coal() + - bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer + - net: fman: Unregister ethernet device on removal + - capabilities: fix undefined behavior in bit shift for CAP_TO_MASK + - phy: ralink: mt7621-pci: add sentinel to quirks table + - KVM: s390: pv: don't allow userspace to set the clock under PV + - net: lapbether: fix issue of dev reference count leakage in + lapbeth_device_event() + - hamradio: fix issue of dev reference count leakage in bpq_device_event() + - net: wwan: iosm: fix memory leak in ipc_wwan_dellink + - net: wwan: mhi: fix memory leak in mhi_mbim_dellink + - drm/vc4: Fix missing platform_unregister_drivers() call in + vc4_drm_register() + - tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent + - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network + - can: af_can: fix NULL pointer dereference in can_rx_register() + - net: stmmac: dwmac-meson8b: fix meson8b_devm_clk_prepare_enable() + - net: broadcom: Fix BCMGENET Kconfig + - tipc: fix the msg->req tlv len check in + tipc_nl_compat_name_table_dump_header + - dmaengine: pxa_dma: use platform_get_irq_optional + - dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove() + - dmaengine: ti: k3-udma-glue: fix memory leak when register device fail + - net: lapbether: fix issue of invalid opcode in lapbeth_open() + - drivers: net: xgene: disable napi when register irq failed in + xgene_enet_open() + - perf stat: Fix printing os->prefix in CSV metrics output + - perf tools: Add the include/perf/ directory to .gitignore + - netfilter: nfnetlink: fix potential dead lock in nfnetlink_rcv_msg() + - netfilter: Cleanup nft_net->module_list from nf_tables_exit_net() + - net: marvell: prestera: fix memory leak in prestera_rxtx_switch_init() + - net: nixge: disable napi when enable interrupts failed in nixge_open() + - net: wwan: iosm: fix memory leak in ipc_pcie_read_bios_cfg + - net/mlx5: Bridge, verify LAG state when adding bond to bridge + - net/mlx5: Allow async trigger completion execution on single CPU systems + - net/mlx5e: E-Switch, Fix comparing termination table instance + - net: cpsw: disable napi in cpsw_ndo_open() + - net: cxgb3_main: disable napi when bind qsets failed in cxgb_up() + - stmmac: intel: Update PCH PTP clock rate from 200MHz to 204.8MHz + - mctp: Fix an error handling path in mctp_init() + - cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in + cxgb4vf_open() + - stmmac: dwmac-loongson: fix missing pci_disable_msi() while module exiting + - stmmac: dwmac-loongson: fix missing pci_disable_device() in + loongson_dwmac_probe() + - stmmac: dwmac-loongson: fix missing of_node_put() while module exiting + - net: phy: mscc: macsec: clear encryption keys when freeing a flow + - net: atlantic: macsec: clear encryption keys from the stack + - ethernet: s2io: disable napi when start nic failed in s2io_card_up() + - net: mv643xx_eth: disable napi when init rxq or txq failed in + mv643xx_eth_open() + - ethernet: tundra: free irq when alloc ring failed in tsi108_open() + - net: macvlan: fix memory leaks of macvlan_common_newlink + - riscv: process: fix kernel info leakage + - riscv: vdso: fix build with llvm + - riscv: fix reserved memory setup + - arm64: efi: Fix handling of misaligned runtime regions and drop warning + - MIPS: jump_label: Fix compat branch range check + - mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI + - mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA + - ALSA: hda/hdmi - enable runtime pm for more AMD display audio + - ALSA: hda/ca0132: add quirk for EVGA Z390 DARK + - ALSA: hda: fix potential memleak in 'add_widget_node' + - ALSA: hda/realtek: Add Positivo C6300 model quirk + - ALSA: usb-audio: Yet more regression for for the delayed card registration + - ALSA: usb-audio: Add quirk entry for M-Audio Micro + - ALSA: usb-audio: Add DSD support for Accuphase DAC-60 + - vmlinux.lds.h: Fix placement of '.data..decrypted' section + - ata: libata-scsi: fix SYNCHRONIZE CACHE (16) command failure + - nilfs2: fix deadlock in nilfs_count_free_blocks() + - nilfs2: fix use-after-free bug of ns_writer on remount + - drm/i915/dmabuf: fix sg_table handling in map_dma_buf + - drm/amdgpu: disable BACO on special BEIGE_GOBY card + - btrfs: fix match incorrectly in dev_args_match_device + - btrfs: selftests: fix wrong error check in btrfs_free_dummy_root() + - btrfs: zoned: initialize device's zone info for seeding + - mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI + - udf: Fix a slab-out-of-bounds write bug in udf_find_entry() + - mm/damon/dbgfs: check if rm_contexts input is for a real context + - mm/memremap.c: map FS_DAX device memory as decrypted + - mm/shmem: use page_mapping() to detect page cache for uffd continue + - can: j1939: j1939_send_one(): fix missing CAN header initialization + - dmaengine: at_hdmac: Fix at_lli struct definition + - dmaengine: at_hdmac: Don't start transactions at tx_submit level + - dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending + - dmaengine: at_hdmac: Fix premature completion of desc in issue_pending + - dmaengine: at_hdmac: Do not call the complete callback on + device_terminate_all + - dmaengine: at_hdmac: Protect atchan->status with the channel lock + - dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all() + - dmaengine: at_hdmac: Fix concurrency over descriptor + - dmaengine: at_hdmac: Free the memset buf without holding the chan lock + - dmaengine: at_hdmac: Fix concurrency over the active list + - dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware + - dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors + - dmaengine: at_hdmac: Don't allow CPU to reorder channel enable + - dmaengine: at_hdmac: Fix impossible condition + - dmaengine: at_hdmac: Check return code of dma_async_device_register + - drm/amdkfd: Migrate in CPU page fault use current mm + - net: tun: call napi_schedule_prep() to ensure we own a napi + - x86/cpu: Restore AMD's DE_CFG MSR after resume + - drm/i915/gvt: Add missing vfio_unregister_group_dev() call + - KVM: debugfs: Return retval of simple_attr_open() if it fails + - HID: wacom: Fix logic used for 3rd barrel switch emulation + - ALSA: arm: pxa: pxa2xx-ac97-lib: fix return value check of + platform_get_irq() + - spi: mediatek: Fix package division error + - drm/vc4: hdmi: Fix HSM clock too low on Pi4 + - PCI: hv: Fix the definition of vector in hv_compose_msi_msg() + - KVM: s390: pci: Fix allocation size of aift kzdev elements + - drm/i915/psr: Send update also on invalidate + - drm/i915: Do not set cache_dirty for DGFX + - dt-bindings: net: tsnep: Fix typo on generic nvmem property + - dmanegine: idxd: reformat opcap output to match bitmap_parse() input + - dmaengine: idxd: Fix max batch size for Intel IAA + - dmaengine: idxd: fix RO device state error after been disabled/reset + - dmaengine: stm32-dma: fix potential race between pause and resume + - net: ethernet: mtk-star-emac: disable napi when connect and start PHY failed + in mtk_star_enable() + - octeontx2-pf: Fix SQE threshold checking + - perf stat: Fix crash with --per-node --metric-only in CSV mode + - net: wwan: iosm: fix invalid mux header type + - net/mlx5e: Add missing sanity checks for max TX WQE size + - ice: Fix spurious interrupt during removal of trusted VF + - iavf: Fix VF driver counting VLAN 0 filters + - ALSA: memalloc: Don't fall back for SG-buffer with IOMMU + - eth: sp7021: drop free_netdev() from spl2sw_init_netdev() + - mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI + - ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41 + - drm/amdgpu: workaround for TLB seq race + - drm/amdkfd: Fix error handling in criu_checkpoint + - drm/amdkfd: Fix error handling in kfd_criu_restore_events + - btrfs: zoned: clone zoned device info when cloning a device + - net: ethernet: ti: am65-cpsw: Fix segmentation fault at module unload + - spi: intel: Use correct mask for flash and protected regions + - dmaengine: idxd: Do not enable user type Work Queue without Shared Virtual + Addressing + - can: isotp: fix tx state handling for echo tx processing + - can: rcar_canfd: Add missing ECC error checks for channels 2-7 + - KVM: x86: use a separate asm-offsets.c file + - KVM: SVM: replace regs argument of __svm_vcpu_run() with vcpu_svm + - KVM: SVM: adjust register allocation for __svm_vcpu_run() + - KVM: SVM: retrieve VMCB from assembly + - KVM: SVM: move guest vmsave/vmload back to assembly + + * AMD Rembrandt: DP tunneling fails with Thunderbolt monitors + (LP: #1983143) // Kinetic update: upstream stable patchset 2023-01-04 + (LP: #2001726) + - thunderbolt: Add DP OUT resource when DP tunnel is discovered + + * CVE-2022-47520 + - wifi: wilc1000: validate pairwise and authentication suite offsets + + * CVE-2022-3545 + - nfp: fix use-after-free in area_cache_get() + + -- Stefan Bader Wed, 01 Feb 2023 14:55:40 +0100 + +linux (5.19.0-31.32) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-31.32 -proposed tracker (LP: #2003423) + + * amdgpu: framebuffer is destroyed and the screen freezes with unsupported IP + blocks (LP: #2003524) + - drm/amd: Delay removal of the firmware framebuffer + + * Revoke & rotate to new signing key (LP: #2002812) + - [Packaging] Revoke and rotate to new signing key + + -- Stefan Bader Fri, 20 Jan 2023 14:57:58 +0100 + +linux (5.19.0-30.31) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-30.31 -proposed tracker (LP: #2001756) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - debian/dkms-versions -- update from kernel-versions (main/2023.01.02) + + * Add some ACPI device IDs for Intel HID device (LP: #1995453) + - platform/x86/intel/hid: Add some ACPI device IDs + + * Fix iosm: WWAN cannot build the connection (DW5823e) (LP: #1998115) + - net: wwan: iosm: fix driver not working with INTEL_IOMMU disabled + - [Config] CONFIG_IOSM update annotations on arm64 armhf ppc64el s390x riscv64 + + * BPF_[AND|OR|XOR|FETCH|XCHG|CMPXCHG] in net:test_bpf.sh from + ubuntu_kernel_selftests failed on K-5.19 P9 (LP: #2001618) + - powerpc/bpf/64: add support for BPF_ATOMIC bitwise operations + - powerpc/bpf/64: add support for atomic fetch operations + - powerpc/bpf/64: Add instructions for atomic_[cmp]xchg + + * [DEP-8] Run ADT regression suite for lowlatency kernels Jammy and later + (LP: #1999528) + - [DEP-8] Fix regression suite to run on lowlatency + + * Kinetic update: upstream stable patchset 2022-12-15 (LP: #1999828) + - serial: ar933x: Deassert Transmit Enable on ->rs485_config() + - KVM: x86: Trace re-injected exceptions + - RDMA/cma: Use output interface for net_dev check + - IB/hfi1: Correctly move list in sc_disable() + - RDMA/hns: Disable local invalidate operation + - NFSv4: Fix a potential state reclaim deadlock + - NFSv4.1: Handle RECLAIM_COMPLETE trunking errors + - NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot + - SUNRPC: Fix null-ptr-deref when xps sysfs alloc failed + - NFSv4.2: Fixup CLONE dest file size for zero-length count + - nfs4: Fix kmemleak when allocate slot failed + - net: dsa: Fix possible memory leaks in dsa_loop_init() + - RDMA/core: Fix null-ptr-deref in ib_core_cleanup() + - RDMA/qedr: clean up work queue on failure in qedr_alloc_resources() + - net: dsa: fall back to default tagger if we can't load the one from DT + - nfc: fdp: Fix potential memory leak in fdp_nci_send() + - nfc: nxp-nci: Fix potential memory leak in nxp_nci_send() + - nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send() + - nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send() + - net: fec: fix improper use of NETDEV_TX_BUSY + - ata: pata_legacy: fix pdc20230_set_piomode() + - net: sched: Fix use after free in red_enqueue() + - net: tun: fix bugs for oversize packet when napi frags enabled + - netfilter: nf_tables: netlink notifier might race to release objects + - netfilter: nf_tables: release flow rule object from commit path + - ipvs: use explicitly signed chars + - ipvs: fix WARNING in __ip_vs_cleanup_batch() + - ipvs: fix WARNING in ip_vs_app_net_cleanup() + - rose: Fix NULL pointer dereference in rose_send_frame() + - mISDN: fix possible memory leak in mISDN_register_device() + - isdn: mISDN: netjet: fix wrong check of device registration + - btrfs: fix inode list leak during backref walking at resolve_indirect_refs() + - btrfs: fix inode list leak during backref walking at find_parent_nodes() + - btrfs: fix ulist leaks in error paths of qgroup self tests + - netfilter: ipset: enforce documented limit to prevent allocating huge memory + - Bluetooth: virtio_bt: Use skb_put to set length + - Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del() + - Bluetooth: L2CAP: Fix memory leak in vhci_write + - net: mdio: fix undefined behavior in bit shift for __mdiobus_register + - ibmvnic: Free rwi on reset success + - stmmac: dwmac-loongson: fix invalid mdio_node + - net/smc: Fix possible leaked pernet namespace in smc_init() + - net, neigh: Fix null-ptr-deref in neigh_table_clear() + - ipv6: fix WARNING in ip6_route_net_exit_late() + - vsock: fix possible infinite sleep in vsock_connectible_wait_data() + - media: rkisp1: Don't pass the quantization to rkisp1_csm_config() + - media: rkisp1: Initialize color space on resizer sink and source pads + - media: rkisp1: Use correct macro for gradient registers + - media: rkisp1: Zero v4l2_subdev_format fields in when validating links + - media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE + - media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE + - media: dvb-frontends/drxk: initialize err to 0 + - media: meson: vdec: fix possible refcount leak in vdec_probe() + - media: v4l: subdev: Fail graciously when getting try data for NULL state + - ACPI: APEI: Fix integer overflow in ghes_estatus_pool_init() + - scsi: core: Restrict legal sdev_state transitions via sysfs + - HID: saitek: add madcatz variant of MMO7 mouse device ID + - drm/amdgpu: set vm_update_mode=0 as default for Sienna Cichlid in SRIOV case + - i2c: xiic: Add platform module alias + - efi/tpm: Pass correct address to memblock_reserve + - clk: qcom: Update the force mem core bit for GPU clocks + - ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset + - arm64: dts: imx8: correct clock order + - arm64: dts: lx2160a: specify clock frequencies for the MDIO controllers + - arm64: dts: ls1088a: specify clock frequencies for the MDIO controllers + - arm64: dts: ls208xa: specify clock frequencies for the MDIO controllers + - block: Fix possible memory leak for rq_wb on add_disk failure + - firmware: arm_scmi: Suppress the driver's bind attributes + - firmware: arm_scmi: Make Rx chan_setup fail on memory errors + - firmware: arm_scmi: Fix devres allocation device in virtio transport + - arm64: dts: juno: Add thermal critical trip points + - i2c: piix4: Fix adapter not be removed in piix4_remove() + - Bluetooth: L2CAP: Fix attempting to access uninitialized memory + - fscrypt: stop using keyrings subsystem for fscrypt_master_key + - fscrypt: fix keyring memory leak on mount failure + - btrfs: fix lost file sync on direct IO write with nowait and dsync iocb + - btrfs: fix tree mod log mishandling of reallocated nodes + - btrfs: fix type of parameter generation in btrfs_get_dentry + - ftrace: Fix use-after-free for dynamic ftrace_ops + - tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd() + - kprobe: reverse kp->flags when arm_kprobe failed + - ring-buffer: Check for NULL cpu_buffer in ring_buffer_wake_waiters() + - tools/nolibc/string: Fix memcmp() implementation + - tracing/histogram: Update document for KEYS_MAX size + - capabilities: fix potential memleak on error path from vfs_getxattr_alloc() + - fuse: add file_modified() to fallocate + - efi: random: reduce seed size to 32 bytes + - efi: random: Use 'ACPI reclaim' memory for random seed + - arm64: entry: avoid kprobe recursion + - perf/x86/intel: Fix pebs event constraints for ICL + - perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[] + - perf/x86/intel: Fix pebs event constraints for SPR + - parisc: Make 8250_gsc driver dependend on CONFIG_PARISC + - parisc: Export iosapic_serial_irq() symbol for serial port driver + - parisc: Avoid printing the hardware path twice + - ext4: fix warning in 'ext4_da_release_space' + - ext4: fix BUG_ON() when directory entry has invalid rec_len + - x86/syscall: Include asm/ptrace.h in syscall_wrapper header + - KVM: x86: Mask off reserved bits in CPUID.80000006H + - KVM: x86: Mask off reserved bits in CPUID.8000001AH + - KVM: x86: Mask off reserved bits in CPUID.80000008H + - KVM: x86: Mask off reserved bits in CPUID.80000001H + - KVM: x86: Mask off reserved bits in CPUID.8000001FH + - KVM: VMX: fully disable SGX if SECONDARY_EXEC_ENCLS_EXITING unavailable + - KVM: arm64: Fix bad dereference on MTE-enabled systems + - KVM: x86: emulator: em_sysexit should update ctxt->mode + - KVM: x86: emulator: introduce emulator_recalc_and_set_mode + - KVM: x86: emulator: update the emulation mode after rsm + - KVM: x86: emulator: update the emulation mode after CR0 write + - tee: Fix tee_shm_register() for kernel TEE drivers + - ext4,f2fs: fix readahead of verity data + - cifs: fix regression in very old smb1 mounts + - drm/rockchip: dsi: Clean up 'usage_mode' when failing to attach + - drm/rockchip: dsi: Force synchronous probe + - drm/i915/sdvo: Filter out invalid outputs more sensibly + - drm/i915/sdvo: Setup DDC fully before output init + - wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker() + - usb: dwc3: gadget: Don't delay End Transfer on delayed_status + - RDMA/hns: Fix NULL pointer problem in free_mr_init() + - docs/process/howto: Replace C89 with C11 + - RDMA/rxe: Fix mr leak in RESPST_ERR_RNR + - tools/nolibc: Fix missing strlen() definition and infinite loop with gcc-12 + - ata: palmld: fix return value check in palmld_pata_probe() + - net: lan966x: Fix the MTU calculation + - net: lan966x: Adjust maximum frame size when vlan is enabled/disabled + - net: lan966x: Fix FDMA when MTU is changed + - net: lan966x: Fix unmapping of received frames using FDMA + - bridge: Fix flushing of dynamic FDB entries + - iio: adc: stm32-adc: fix channel sampling time init + - drm/vc4: hdmi: Check the HSM rate at runtime_resume + - hwrng: bcm2835 - use hwrng_msleep() instead of cpu_relax() + - drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback + - drm/amdgpu: Program GC registers through RLCG interface in gfx_v11/gmc_v11 + - nvme-pci: disable write zeroes on various Kingston SSD + - bio: safeguard REQ_ALLOC_CACHE bio put + - clk: rs9: Fix I2C accessors + - arm64: dts: imx8mm: Enable CPLD_Dn pull down resistor on MX8Menlo + - clk: renesas: r8a779g0: Fix HSCIF parent clocks + - arm64: dts: verdin-imx8mp: fix ctrl_sleep_moci + - arm64: dts: imx8mm: remove otg1/2 power domain dependency on hsio + - arm64: dts: imx8mm: correct usb power domains + - arm64: dts: imx8mn: remove otg1 power domain dependency on hsio + - arm64: dts: imx8mn: Correct the usb power domain + - drm/rockchip: dw_hdmi: filter regulator -EPROBE_DEFER error messages + - drm/rockchip: fix fbdev on non-IOMMU devices + - drm/i915: stop abusing swiotlb_max_segment + - blk-mq: Fix kmemleak in blk_mq_init_allocated_queue + - firmware: arm_scmi: Fix deferred_tx_wq release on error paths + - clk: renesas: r8a779g0: Add SASYNCPER clocks + - btrfs: fix a memory allocation failure test in btrfs_submit_direct + - ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set + - tracing/fprobe: Fix to check whether fprobe is registered correctly + - fprobe: Check rethook_alloc() return in rethook initialization + - fuse: fix readdir cache race + - net/ulp: remove SOCK_SUPPORT_ZC from tls sockets + - ARM: dts: imx6dl-yapp4: Do not allow PM to switch PU regulator off on Q/QP + - net: remove SOCK_SUPPORT_ZC from sockmap + - net: also flag accepted sockets supporting msghdr originated zerocopy + - ext4: update the backup superblock's at the end of the online resize + - x86/tdx: Prepare for using "INFO" call for a second purpose + - x86/tdx: Panic on bad configs that #VE on "private" memory access + - KVM: VMX: Fold vmx_supported_debugctl() into vcpu_supported_debugctl() + - KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL + - KVM: Initialize gfn_to_pfn_cache locks in dedicated helper + - KVM: Reject attempts to consume or refresh inactive gfn_to_pfn_cache + - KVM: arm64: Fix SMPRI_EL1/TPIDR2_EL0 trapping on VHE + - drm/amdgpu: disable GFXOFF during compute for GFX11 + + * Kinetic update: upstream stable patchset 2022-12-07 (LP: #1999079) + - can: j1939: transport: j1939_session_skb_drop_old(): + spin_unlock_irqrestore() before kfree_skb() + - can: kvaser_usb: Fix possible completions during init_completion + - ALSA: Use del_timer_sync() before freeing timer + - ALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600 + - ALSA: au88x0: use explicitly signed char + - ALSA: rme9652: use explicitly signed char + - USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM + - usb: gadget: uvc: fix sg handling in error case + - usb: gadget: uvc: fix sg handling during video encode + - usb: dwc3: gadget: Stop processing more requests on IMI + - usb: dwc3: gadget: Don't set IMI for no_interrupt + - usb: bdc: change state when port disconnected + - usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 + controller + - mtd: rawnand: marvell: Use correct logic for nand-keep-config + - xhci: Add quirk to reset host back to default state at shutdown + - xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices + - xhci: Remove device endpoints from bandwidth list when freeing the device + - tools: iio: iio_utils: fix digit calculation + - iio: light: tsl2583: Fix module unloading + - iio: temperature: ltc2983: allocate iio channels once + - iio: adxl372: Fix unsafe buffer attributes + - fbdev: smscufx: Fix several use-after-free bugs + - cpufreq: intel_pstate: Read all MSRs on the target CPU + - cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores + - fs/binfmt_elf: Fix memory leak in load_elf_binary() + - exec: Copy oldsighand->action under spin-lock + - mac802154: Fix LQI recording + - scsi: qla2xxx: Use transport-defined speed mask for supported_speeds + - drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resume + - drm/msm/dsi: fix memory corruption with too many bridges + - drm/msm/hdmi: fix memory corruption with too many bridges + - drm/msm/dp: fix IRQ lifetime + - coresight: cti: Fix hang in cti_disable_hw() + - mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO + - mmc: core: Fix kernel panic when remove non-standard SDIO card + - mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake + - mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus + - counter: microchip-tcb-capture: Handle Signal1 read and Synapse + - kernfs: fix use-after-free in __kernfs_remove + - pinctrl: Ingenic: JZ4755 bug fixes + - ARC: mm: fix leakage of memory allocated for PTE + - perf auxtrace: Fix address filter symbol name match for modules + - s390/futex: add missing EX_TABLE entry to __futex_atomic_op() + - s390/pci: add missing EX_TABLE entries to + __pcistg_mio_inuser()/__pcilg_mio_inuser() + - mmc: block: Remove error check of hw_reset on reset + - ethtool: eeprom: fix null-deref on genl_info in dump + - net: ieee802154: fix error return code in dgram_bind() + - media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation + - media: atomisp: prevent integer overflow in sh_css_set_black_frame() + - drm/msm: Fix return type of mdp4_lvds_connector_mode_valid + - KVM: selftests: Fix number of pages for memory slot in + memslot_modification_stress_test + - ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile + - perf: Fix missing SIGTRAPs + - sched/core: Fix comparison in sched_group_cookie_match() + - arc: iounmap() arg is volatile + - mtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe() + - ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile + - ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() + - perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap() + - tipc: fix a null-ptr-deref in tipc_topsrv_accept + - net: netsec: fix error handling in netsec_register_mdio() + - net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg() + - net: hinic: fix memory leak when reading function table + - net: hinic: fix the issue of CMDQ memory leaks + - net: hinic: fix the issue of double release MBOX callback of VF + - net: macb: Specify PHY PM management done by MAC + - nfc: virtual_ncidev: Fix memory leak in virtual_nci_send() + - x86/unwind/orc: Fix unreliable stack dump with gcov + - amd-xgbe: fix the SFP compliance codes check for DAC cables + - amd-xgbe: add the bit rate quirk for Molex cables + - drm/i915/dp: Reset frl trained flag before restarting FRL training + - atlantic: fix deadlock at aq_nic_stop + - kcm: annotate data-races around kcm->rx_psock + - kcm: annotate data-races around kcm->rx_wait + - net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed + - net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY + - tcp: fix a signed-integer-overflow bug in tcp_add_backlog() + - tcp: fix indefinite deferral of RTO with SACK reneging + - net-memcg: avoid stalls when under memory pressure + - drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr() + - can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error + path + - can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error + path + - PM: hibernate: Allow hybrid sleep to work with s2idle + - media: vivid: s_fbuf: add more sanity checks + - media: vivid: dev->bitmap_cap wasn't freed in all cases + - media: v4l2-dv-timings: add sanity checks for blanking values + - media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced' + - media: vivid: set num_in/outputs to 0 if not supported + - perf vendor events power10: Fix hv-24x7 metric events + - ipv6: ensure sane device mtu in tunnels + - i40e: Fix ethtool rx-flow-hash setting for X722 + - i40e: Fix VF hang when reset is triggered on another VF + - i40e: Fix flow-type by setting GL_HASH_INSET registers + - net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() + - PM: domains: Fix handling of unavailable/disabled idle states + - perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics + - net: fec: limit register access on i.MX6UL + - net: ethernet: ave: Fix MAC to be in charge of PHY PM + - ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev() + - ALSA: aoa: Fix I2S device accounting + - openvswitch: switch from WARN to pr_warn + - net: ehea: fix possible memory leak in ehea_register_port() + - net: bcmsysport: Indicate MAC is in charge of PHY PM + - nh: fix scope used to find saddr when adding non gw nh + - net: broadcom: bcm4908_enet: update TX stats after actual transmission + - netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir + failed + - net/mlx5e: Do not increment ESN when updating IPsec ESN state + - net/mlx5e: Extend SKB room check to include PTP-SQ + - net/mlx5: Fix possible use-after-free in async command interface + - net/mlx5: Update fw fatal reporter state on PCI handlers successful recover + - net/mlx5: Fix crash during sync firmware reset + - net: do not sense pfmemalloc status in skb_append_pagefrags() + - kcm: do not sense pfmemalloc status in kcm_sendpage() + - net: enetc: survive memory pressure without crashing + - arm64: Add AMPERE1 to the Spectre-BHB affected list + - can: rcar_canfd: fix channel specific IRQ handling for RZ/G2L + - can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global + FIFO receive + - ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41 + - ALSA: hda/realtek: Add another HP ZBook G9 model quirks + - usb: gadget: uvc: limit isoc_sg to super speed gadgets + - usb: gadget: uvc: fix dropped frame after missed isoc + - usb: gadget: aspeed: Fix probe regression + - usb: dwc3: gadget: Force sending delayed status during soft disconnect + - usb: typec: ucsi: Check the connection on resume + - usb: typec: ucsi: acpi: Implement resume callback + - usb: dwc3: Don't switch OTG -> peripheral if extcon is present + - mtd: rawnand: tegra: Fix PM disable depth imbalance in probe + - mtd: parsers: bcm47xxpart: Fix halfblock reads + - iio: adxl367: Fix unsafe buffer attributes + - fbdev: stifb: Fall back to cfb_fillrect() on 32-bit HCRX cards + - drm/amdgpu: Fix VRAM BO swap issue + - drm/i915: Extend Wa_1607297627 to Alderlake-P + - drm/amdgpu: Remove ATC L2 access for MMHUB 2.1.x + - drm/amdgpu: fix pstate setting issue + - drm/amdkfd: update gfx1037 Lx cache setting + - drm/amdkfd: correct the cache info for gfx1036 + - drm/msm: fix use-after-free on probe deferral + - drm/msm/hdmi: fix IRQ lifetime + - drm/msm/dp: fix memory corruption with too many bridges + - drm/msm/dp: fix bridge lifetime + - mmc: queue: Cancel recovery work on cleanup + - mmc: core: Fix WRITE_ZEROES CQE handling + - counter: 104-quad-8: Fix race getting function mode and direction + - mm/uffd: fix vma check on userfault for wp + - mm: migrate: fix return value if all subpages of THPs are migrated + successfully + - mm,madvise,hugetlb: fix unexpected data loss with MADV_DONTNEED on hugetlbfs + - mm/huge_memory: do not clobber swp_entry_t during THP split + - s390/cio: fix out-of-bounds access on cio_ignore free + - s390/uaccess: add missing EX_TABLE entries to __clear_user() + - ACPI: PCC: Fix unintentional integer overflow + - powerpc/64s/interrupt: Fix clear of PACA_IRQS_HARD_DIS when returning to + soft-masked context + - media: amphion: release m2m ctx when releasing vpu instance + - media: ov8865: Fix an error handling path in ov8865_probe() + - media: sun6i-csi: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun4i-csi: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun8i-di: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun8i-rotate: Add a Kconfig dependency on RESET_CONTROLLER + - media: cedrus: Add a Kconfig dependency on RESET_CONTROLLER + - drm/msm/a6xx: Replace kcalloc() with kvzalloc() + - drm/msm/dp: add atomic_check to bridge ops + - drm/msm/dp: cleared DP_DOWNSPREAD_CTRL register before start link training + - ASoC: codec: tlv320adc3xxx: add GPIOLIB dependency + - pinctrl: qcom: Avoid glitching lines when we first mux to output + - spi: qup: support using GPIO as chip select line + - x86/fpu: Configure init_fpstate attributes orderly + - x86/fpu: Fix the init_fpstate size check with the actual size + - x86/fpu: Exclude dynamic states from init_fpstate + - bpf: prevent decl_tag from being referenced in func_proto + - mtd: rawnand: intel: Remove unused nand_pa member from ebu_nand_cs + - mtd: rawnand: intel: Use devm_platform_ioremap_resource_byname() + - ASoC: codecs: tlv320adc3xxx: Wrap adc3xxx_i2c_remove() in __exit_p() + - spi: aspeed: Fix window offset of CE1 + - net: lan966x: Fix the rx drop counter + - x86/fpu: Fix copy_xstate_to_uabi() to copy init states correctly + - amd-xgbe: Yellow carp devices do not need rrc + - drm/i915/dgfx: Keep PCI autosuspend control 'on' by default on all dGPU + - net: lan966x: Stop replacing tx dcbs and dcbs_buf when changing MTU + - mptcp: set msk local address earlier + - netdevsim: fix memory leak in nsim_bus_dev_new() + - net/mlx5: Wait for firmware to enable CRS before pci_restore_state + - net/mlx5: DR, Fix matcher disconnect error flow + - net/mlx5e: Update restore chain id for slow path packets + - net/mlx5e: TC, Reject forwarding from internal port to internal port + - riscv: mm: add missing memcpy in kasan_init + + * Virtual GPU driver packaging regression (LP: #1996112) + - [Packaging] Reintroduce VM DRM drivers into modules + + * Fix AMD-PState driver for Genoa CPU (LP: #1998106) + - Documentation: amd-pstate: Add unit test introduction + - cpufreq: amd-pstate: cpufreq: amd-pstate: reset MSR_AMD_PERF_CTL register at + init + - cpufreq: amd-pstate: change amd-pstate driver to be built-in type + - cpufreq: amd-pstate: add amd-pstate driver parameter for mode selection + - Documentation: amd-pstate: add driver working mode introduction + - Documentation: add amd-pstate kernel command line options + + * Kinetic update: upstream stable patchset 2022-11-30 (LP: #1998398) + - clk: tegra: Fix Tegra PWM parent clock + - Revert "btrfs: call __btrfs_remove_free_space_cache_locked on cache load + failure" + - ocfs2: clear dinode links count in case of error + - ocfs2: fix BUG when iput after ocfs2_mknod fails + - selinux: enable use of both GFP_KERNEL and GFP_ATOMIC in convert_context() + - cpufreq: qcom: fix writes in read-only memory region + - i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter + - x86/microcode/AMD: Apply the patch early on every logical thread + - hwmon/coretemp: Handle large core ID value + - ata: ahci-imx: Fix MODULE_ALIAS + - ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS + - x86/resctrl: Fix min_cbm_bits for AMD + - cpufreq: qcom: fix memory leak in error path + - drm/amdgpu: fix sdma doorbell init ordering on APUs + - mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages + - kvm: Add support for arch compat vm ioctls + - KVM: arm64: vgic: Fix exit condition in scan_its_table() + - media: ipu3-imgu: Fix NULL pointer dereference in active selection access + - media: mceusb: set timeout to at least timeout provided + - media: venus: dec: Handle the case where find_format fails + - x86/topology: Fix multiple packages shown on a single-package system + - x86/topology: Fix duplicated core ID within a package + - btrfs: fix processing of delayed data refs during backref walking + - btrfs: fix processing of delayed tree block refs during backref walking + - drm/vc4: Add module dependency on hdmi-codec + - ACPI: extlog: Handle multiple records + - tipc: Fix recognition of trial period + - tipc: fix an information leak in tipc_topsrv_kern_subscr + - i40e: Fix DMA mappings leak + - HID: magicmouse: Do not set BTN_MOUSE on double report + - sfc: Change VF mac via PF as first preference if available. + - net/atm: fix proc_mpc_write incorrect return value + - net: phy: dp83867: Extend RX strap quirk for SGMII mode + - net: phylink: add mac_managed_pm in phylink_config structure + - scsi: lpfc: Fix memory leak in lpfc_create_port() + - udp: Update reuse->has_conns under reuseport_lock. + - cifs: Fix xid leak in cifs_create() + - cifs: Fix xid leak in cifs_copy_file_range() + - cifs: Fix xid leak in cifs_flock() + - cifs: Fix xid leak in cifs_ses_add_channel() + - dm: remove unnecessary assignment statement in alloc_dev() + - net: hsr: avoid possible NULL deref in skb_clone() + - ionic: catch NULL pointer issue on reconfig + - netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirements + - nvme-hwmon: consistently ignore errors from nvme_hwmon_init + - nvme-hwmon: kmalloc the NVME SMART log buffer + - nvmet: fix workqueue MEM_RECLAIM flushing dependency + - net: sched: cake: fix null pointer access issue when cake_init() fails + - net: sched: delete duplicate cleanup of backlog and qlen + - net: sched: sfb: fix null pointer access issue when sfb_init() fails + - sfc: include vport_id in filter spec hash and equal() + - wwan_hwsim: fix possible memory leak in wwan_hwsim_dev_new() + - net: hns: fix possible memory leak in hnae_ae_register() + - net: sched: fix race condition in qdisc_graft() + - net: phy: dp83822: disable MDI crossover status change interrupt + - iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check() + - iommu/vt-d: Clean up si_domain in the init_dmars() error path + - ACPI: video: Force backlight native for more TongFang devices + - x86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB + - mm: /proc/pid/smaps_rollup: fix no vma's null-deref + - smb3: interface count displayed incorrectly + - cpufreq: tegra194: Fix module loading + - KVM: x86: Copy filter arg outside kvm_vm_ioctl_set_msr_filter() + - KVM: x86: Add compat handler for KVM_X86_SET_MSR_FILTER + - media: venus: Fix NV12 decoder buffer discovery on HFI_VERSION_1XX + - drm/vc4: hdmi: Enforce the minimum rate at runtime_resume + - net/smc: Fix an error code in smc_lgr_create() + - net: stmmac: Enable mac_managed_pm phylink config + - blk-mq: fix null pointer dereference in blk_mq_clear_rq_mapping() + - net: ethernet: mtk_eth_soc: fix possible memory leak in mtk_probe() + - net: ethernet: mtk_eth_wed: add missing put_device() in mtk_wed_add_hw() + - net: ethernet: mtk_eth_wed: add missing of_node_put() + - ip6mr: fix UAF issue in ip6mr_sk_done() when addrconf_init_net() failed + - cifs: Fix memory leak when build ntlmssp negotiate blob failed + - netfilter: rpfilter/fib: Populate flowic_l3mdev field + - netfilter: rpfilter/fib: Set ->flowic_uid correctly for user namespaces. + - net: Fix return value of qdisc ingress handling on success + - drbd: only clone bio if we have a backing device + - wifi: mt76: mt7921e: fix random fw download fail + + * Mediatek WLAN RZ616(MT7922) SAR table control (LP: #1997200) + - mt76: add 6 GHz band support in mt76_sar_freq_ranges + - mt76: mt7921: introduce ACPI SAR support + - mt76: mt7921: introduce ACPI SAR config in tx power + - wifi: mt76: mt7921: fix use after free in mt7921_acpi_read() + + * Kinetic update: upstream stable patchset 2022-11-14 (LP: #1996540) + - scsi: qla2xxx: Fix response queue handler reading stale packets + - Upstream stable to v5.15.74, v6.0.2 + - rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE() + - mmc: sdhci-msm: add compatible string check for sdm670 + - thermal: intel_powerclamp: Use first online CPU as control_cpu + - gcov: support GCC 12.1 and newer compilers + - io-wq: Fix memory leak in worker creation + - arm64: mte: Avoid setting PG_mte_tagged if no tags cleared or restored + - serial: Deassert Transmit Enable on probe in driver-specific way + - KVM: x86: Treat #DBs from the emulator as fault-like (code and DR7.GD=1) + - drm/amd/display: Enable dpia support for dcn314 + - drm/amdgpu: Enable F32_WPTR_POLL_ENABLE in mqd + - libbpf: Initialize err in probe_map_create + - libbpf: Fix crash if SEC("freplace") programs don't have attach_prog_fd set + - libbpf: Fix NULL pointer exception in API btf_dump__dump_type_data + - drm/vc4: drv: Call component_unbind_all() + - video/aperture: Disable and unregister sysfb devices via aperture helpers + - drm/bridge: anx7625: Fix refcount bug in anx7625_parse_dt() + - drm/i915/dg2: Bump up CDCLK for DG2 + - drm/panel: use 'select' for Ili9341 panel driver helpers + - drm: fix drm_mipi_dbi build errors + - ALSA: hda/hdmi: change type for the 'assigned' variable + - ALSA: hda/hdmi: Fix the converter allocation for the silent stream + - arm64: dts: qcom: sc7280: Cleanup the lpasscc node + - arm64: dts: qcom: sc7280: Update lpasscore node + - arm64: dts: qcom: pm8350c: Drop PWM reg declaration + - arm64: dts: qcom: sc7180-trogdor: Keep pm6150_adc enabled for TZ + - arm64: dts: qcom: sm8350-sagami: correct TS pin property + - soc/tegra: fuse: Add missing of_node_put() in tegra_init_fuse() + - arm64: dts: qcom: ipq8074: fix PCIe PHY serdes size + - arm64: dts: qcom: sm8450: fix UFS PHY serdes size + - arm64: dts: exynos: fix polarity of "enable" line of NFC chip in TM2 + - selftests/cpu-hotplug: Use return instead of exit + - selftests/cpu-hotplug: Delete fault injection related code + - selftests/cpu-hotplug: Reserve one cpu online at least + - usb: common: usb-conn-gpio: Simplify some error message + - HID: uclogic: Fix warning in uclogic_rdesc_template_apply + - tty: xilinx_uartps: Check clk_enable return value + - fpga: dfl-pci: Add IDs for Intel N6000, N6001 and C6100 cards + - iio: Use per-device lockdep class for mlock + - scsi: lpfc: Fix various issues reported by tools + - phy: qcom-qmp-usb: disable runtime PM on unbind + - block: Fix the enum blk_eh_timer_return documentation + - RDMA/rxe: Set pd early in mr alloc routines + - clk: imx8mp: tune the order of enet_qos_root_clk + - libbpf: Ensure functions with always_inline attribute are inline + - libbpf: Do not require executable permission for shared libraries + - micrel: ksz8851: fixes struct pointer issue + - net: ftmac100: fix endianness-related issues from 'sparse' + - net: sched: cls_u32: Avoid memcpy() false-positive warning + - libbpf: Fix overrun in netlink attribute iteration + - ALSA: usb-audio: Add quirk to enable Avid Mbox 3 support + - ASoC: sunxi: sun4i-codec: set debugfs_prefix for CPU DAI component + - ASoC: amd: yc: Add ASUS UM5302TA into DMI table + - ASoC: amd: yc: Add Lenovo Yoga Slim 7 Pro X to quirks table + - arm64: dts: qcom: sc7280-idp: correct ADC channel node name and unit address + - ARM: orion: fix include path + - hid: topre: Add driver fixing report descriptor + - [Config] updateconfigs for HID_TOPRE + - fsi: master-ast-cf: Fix missing of_node_put in fsi_master_acf_probe + - dmaengine: dw-edma: Remove runtime PM support + - HID: playstation: stop DualSense output work on remove. + - HID: playstation: add initial DualSense Edge controller support + - net: flag sockets supporting msghdr originated zerocopy + - drm/amd/pm: disable cstate feature for gpu reset scenario + - dm clone: Fix typo in block_device format specifier + + -- Luke Nowakowski-Krijger Fri, 06 Jan 2023 07:01:36 -0800 + +linux (5.19.0-29.30) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-29.30 -proposed tracker (LP: #1999799) + + * CVE-2022-3643 + - xen/netback: Ensure protocol headers don't fall in the non-linear area + + * CVE-2022-45934 + - Bluetooth: L2CAP: Fix u8 overflow + + * CVE-2022-4378 + - proc: proc_skip_spaces() shouldn't think it is working on C strings + - proc: avoid integer type confusion in get_proc_long + + * CVE-2022-42896 + - Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM + - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm + + -- Thadeu Lima de Souza Cascardo Wed, 04 Jan 2023 08:36:13 -0300 + +linux (5.19.0-28.29) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-28.29 -proposed tracker (LP: #1999746) + + * mm:vma05 in ubuntu_ltp fails with '[vdso] bug not patched' on kinetic/linux + 5.19.0-27.28 (LP: #1999094) + - fix coredump breakage + + -- Stefan Bader Thu, 15 Dec 2022 10:11:16 +0100 + +linux (5.19.0-27.28) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-27.28 -proposed tracker (LP: #1997794) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2022.11.14) + + * selftests/.../nat6to4 breaks the selftests build (LP: #1996536) + - [Config] Disable selftests/net/bpf/nat6to4 + + * Expose built-in trusted and revoked certificates (LP: #1996892) + - [Packaging] Expose built-in trusted and revoked certificates + + * support for same series backports versioning numbers (LP: #1993563) + - [Packaging] sameport -- add support for sameport versioning + + * Add cs35l41 firmware loading support (LP: #1995957) + - ASoC: cs35l41: Move cs35l41 exit hibernate function into shared code + - ASoC: cs35l41: Add common cs35l41 enter hibernate function + - ASoC: cs35l41: Do not print error when waking from hibernation + - ALSA: hda: cs35l41: Don't dereference fwnode handle + - ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations + - ALSA: hda: cs35l41: Drop wrong use of ACPI_PTR() + - ALSA: hda: cs35l41: Consolidate selections under SND_HDA_SCODEC_CS35L41 + - ALSA: hda: hda_cs_dsp_ctl: Add Library to support CS_DSP ALSA controls + - ALSA: hda: hda_cs_dsp_ctl: Add apis to write the controls directly + - ALSA: hda: cs35l41: Save codec object inside component struct + - ALSA: hda: cs35l41: Add initial DSP support and firmware loading + - ALSA: hda: cs35l41: Save Subsystem ID inside CS35L41 Driver + - ALSA: hda: cs35l41: Support reading subsystem id from ACPI + - ALSA: hda: cs35l41: Support multiple load paths for firmware + - ALSA: hda: cs35l41: Support Speaker ID for laptops + - ALSA: hda: cs35l41: Support Hibernation during Suspend + - ALSA: hda: cs35l41: Read Speaker Calibration data from UEFI variables + - ALSA: hda: hda_cs_dsp_ctl: Add fw id strings + - ALSA: hda: cs35l41: Add defaulted values into dsp bypass config sequence + - ALSA: hda: cs35l41: Support Firmware switching and reloading + - ALSA: hda: cs35l41: Add module parameter to control firmware load + - Revert "ALSA: hda: cs35l41: Allow compilation test on non-ACPI + configurations" + - ALSA: hda/realtek: More robust component matching for CS35L41 + - [Config] updateconfigs for SND_HDA_CS_DSP_CONTROLS + + * Fibocom WWAN FM350-GL suspend error (notebook not suspend) (LP: #1990700) + - net: wwan: t7xx: Add AP CLDMA + + * Screen cannot turn on after screen off with Matrox G200eW3 [102b:0536] + (LP: #1995573) + - drm/mgag200: Optimize damage clips + - drm/mgag200: Add FB_DAMAGE_CLIPS support + - drm/mgag200: Enable atomic gamma lut update + + * TEE Support for CCP driver (LP: #1991608) + - crypto: ccp: Add support for TEE for PCI ID 0x14CA + + * AMD Cezanne takes 5 minutes to wake up from suspend (LP: #1993715) + - platform/x86/amd: pmc: Read SMU version during suspend on Cezanne systems + + * Fix ath11k deadlock on WCN6855 (LP: #1995041) + - wifi: ath11k: avoid deadlock during regulatory update in + ath11k_regd_update() + + * intel_pmc_core not load on Raptor Lake (LP: #1988461) + - x86/cpu: Add new Raptor Lake CPU model number + - platform/x86/intel: pmc/core: Add Raptor Lake support to pmc core driver + + * [UBUNTU 20.04] boot: Add s390x secure boot trailer (LP: #1996071) + - s390/boot: add secure boot trailer + + * Fix rfkill causing soft blocked wifi (LP: #1996198) + - platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi + + * Support Icicle Kit reference design v2022.10 (LP: #1993148) + - riscv: dts: microchip: icicle: re-jig fabric peripheral addresses + - riscv: dts: microchip: reduce the fic3 clock rate + - riscv: dts: microchip: update memory configuration for v2022.10 + - riscv: dts: microchip: fix fabric i2c reg size + - SAUCE: riscv: dts: microchip: Disable PCIe on the Icicle Kit + + * Fix Turbostat is not working for fam: 6 model: 191: stepping: 2 CPU + (LP: #1991365) + - tools/power turbostat: Add support for RPL-S + + * armhf kernel compiled with gcc-12 fails to boot on pi 3/2 (LP: #1993120) + - [Packaging] Support arch-specific compilers in updateconfigs + + * Kinetic update: v5.19.17 upstream stable release (LP: #1994179) + - Revert "fs: check FMODE_LSEEK to control internal pipe splicing" + - ALSA: oss: Fix potential deadlock at unregistration + - ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free() + - ALSA: usb-audio: Fix potential memory leaks + - ALSA: usb-audio: Fix NULL dererence at error path + - ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530 + - ALSA: hda/realtek: Correct pin configs for ASUS G533Z + - ALSA: hda/realtek: Add quirk for ASUS GV601R laptop + - ALSA: hda/realtek: Add Intel Reference SSID to support headset keys + - mtd: rawnand: atmel: Unmap streaming DMA mappings + - io_uring/rw: fix unexpected link breakage + - io_uring/net: fix fast_iov assignment in io_setup_async_msg() + - io_uring/net: don't update msg_name if not provided + - io_uring: correct pinned_vm accounting + - hv_netvsc: Fix race between VF offering and VF association message from host + - cifs: destage dirty pages before re-reading them for cache=none + - cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message + - iio: dac: ad5593r: Fix i2c read protocol requirements + - iio: ltc2497: Fix reading conversion results + - iio: adc: ad7923: fix channel readings for some variants + - iio: pressure: dps310: Refactor startup procedure + - iio: pressure: dps310: Reset chip after timeout + - xhci: dbc: Fix memory leak in xhci_alloc_dbc() + - usb: gadget: uvc: Fix argument to sizeof() in uvc_register_video() + - usb: add quirks for Lenovo OneLink+ Dock + - mmc: core: Add SD card quirk for broken discard + - can: kvaser_usb: Fix use of uninitialized completion + - can: kvaser_usb_leaf: Fix overread with an invalid command + - can: kvaser_usb_leaf: Fix TX queue out of sync after restart + - can: kvaser_usb_leaf: Fix CAN state after restart + - mmc: renesas_sdhi: Fix rounding errors + - mmc: sdhci-tegra: Use actual clock rate for SW tuning correction + - mmc: sdhci-sprd: Fix minimum clock limit + - i2c: designware: Fix handling of real but unexpected device interrupts + - fs: dlm: fix race between test_bit() and queue_work() + - fs: dlm: handle -EBUSY first in lock arg validation + - fs: dlm: fix invalid derefence of sb_lvbptr + - btf: Export bpf_dynptr definition + - HID: multitouch: Add memory barriers + - quota: Check next/prev free block number after reading from quota file + - platform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failure + - arm64: dts: qcom: sdm845-mtp: correct ADC settle time + - ASoC: wcd9335: fix order of Slimbus unprepare/disable + - ASoC: wcd934x: fix order of Slimbus unprepare/disable + - hwmon: (gsc-hwmon) Call of_node_get() before of_find_xxx API + - net: thunderbolt: Enable DMA paths only after rings are enabled + - regulator: qcom_rpm: Fix circular deferral regression + - arm64: topology: move store_cpu_topology() to shared code + - riscv: topology: fix default topology reporting + - RISC-V: Re-enable counter access from userspace + - RISC-V: Make port I/O string accessors actually work + - parisc: fbdev/stifb: Align graphics memory size to 4MB + - parisc: Fix userspace graphics card breakage due to pgtable special bit + - riscv: vdso: fix NULL deference in vdso_join_timens() when vfork + - riscv: Make VM_WRITE imply VM_READ + - riscv: always honor the CONFIG_CMDLINE_FORCE when parsing dtb + - riscv: Pass -mno-relax only on lld < 15.0.0 + - UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - nvmem: core: Fix memleak in nvmem_register() + - nvme-multipath: fix possible hang in live ns resize with ANA access + - dmaengine: mxs: use platform_driver_register + - dmaengine: qcom-adm: fix wrong sizeof config in slave_config + - dmaengine: qcom-adm: fix wrong calling convention for prep_slave_sg + - drm/virtio: Check whether transferred 2D BO is shmem + - drm/virtio: Unlock reservations on virtio_gpu_object_shmem_init() error + - drm/virtio: Unlock reservations on dma_resv_reserve_fences() error + - drm/virtio: Use appropriate atomic state in virtio_gpu_plane_cleanup_fb() + - drm/udl: Restore display mode on resume + - arm64: mte: move register initialization to C + - [Config] updateconfigs for ARM64_ERRATUM_2441007 + - arm64: errata: Add Cortex-A55 to the repeat tlbi list + - clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value + - mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page + - mm/damon: validate if the pmd entry is present before accessing + - mm/uffd: fix warning without PTE_MARKER_UFFD_WP compiled in + - mm/mmap: undo ->mmap() when arch_validate_flags() fails + - xen/gntdev: Prevent leaking grants + - xen/gntdev: Accommodate VMA splitting + - PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge + - serial: cpm_uart: Don't request IRQ too early for console port + - serial: stm32: Deassert Transmit Enable on ->rs485_config() + - serial: 8250: Let drivers request full 16550A feature probing + - serial: 8250: Request full 16550A feature probing for OxSemi PCIe devices + - cpufreq: qcom-cpufreq-hw: Fix uninitialized throttled_freq warning + - powercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain + - powerpc/Kconfig: Fix non existing CONFIG_PPC_FSL_BOOKE + - powerpc/boot: Explicitly disable usage of SPE instructions + - slimbus: qcom-ngd: use correct error in message of pdr_add_lookup() failure + - slimbus: qcom-ngd: cleanup in probe error path + - scsi: lpfc: Rework MIB Rx Monitor debug info logic + - scsi: qedf: Populate sysfs attributes for vport + - gpio: rockchip: request GPIO mux to pinctrl when setting direction + - pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback + - fbdev: smscufx: Fix use-after-free in ufx_ops_open() + - hwrng: core - let sleep be interrupted when unregistering hwrng + - smb3: do not log confusing message when server returns no network interfaces + - ksmbd: fix incorrect handling of iterate_dir + - ksmbd: fix endless loop when encryption for response fails + - ksmbd: Fix wrong return value and message length check in smb2_ioctl() + - ksmbd: Fix user namespace mapping + - fs: record I_DIRTY_TIME even if inode already has I_DIRTY_INODE + - btrfs: fix alignment of VMA for memory mapped files on THP + - btrfs: enhance unsupported compat RO flags handling + - btrfs: fix race between quota enable and quota rescan ioctl + - btrfs: fix missed extent on fsync after dropping extent maps + - btrfs: set generation before calling btrfs_clean_tree_block in + btrfs_init_new_buffer + - f2fs: fix wrong continue condition in GC + - f2fs: complete checkpoints during remount + - f2fs: flush pending checkpoints when freezing super + - f2fs: increase the limit for reserve_root + - f2fs: fix to do sanity check on destination blkaddr during recovery + - f2fs: fix to do sanity check on summary info + - jbd2: wake up journal waiters in FIFO order, not LIFO + - jbd2: fix potential buffer head reference count leak + - jbd2: fix potential use-after-free in jbd2_fc_wait_bufs + - jbd2: add miss release buffer head in fc_do_one_pass() + - ext2: Add sanity checks for group and filesystem size + - ext4: avoid crash when inline data creation follows DIO write + - ext4: fix null-ptr-deref in ext4_write_info + - ext4: make ext4_lazyinit_thread freezable + - ext4: fix check for block being out of directory size + - ext4: don't increase iversion counter for ea_inodes + - ext4: unconditionally enable the i_version counter + - ext4: ext4_read_bh_lock() should submit IO if the buffer isn't uptodate + - ext4: place buffer head allocation before handle start + - ext4: fix i_version handling in ext4 + - ext4: fix dir corruption when ext4_dx_add_entry() fails + - ext4: fix miss release buffer head in ext4_fc_write_inode + - ext4: fix potential memory leak in ext4_fc_record_modified_inode() + - ext4: fix potential memory leak in ext4_fc_record_regions() + - ext4: update 'state->fc_regions_size' after successful memory allocation + - livepatch: fix race between fork and KLP transition + - ftrace: Properly unset FTRACE_HASH_FL_MOD + - ftrace: Still disable enabled records marked as disabled + - ring-buffer: Allow splice to read previous partially read pages + - ring-buffer: Have the shortest_full queue be the shortest not longest + - ring-buffer: Check pending waiters when doing wake ups as well + - ring-buffer: Add ring_buffer_wake_waiters() + - ring-buffer: Fix race between reset page and reading page + - tracing: Disable interrupt or preemption before acquiring arch_spinlock_t + - tracing: Wake up ring buffer waiters on closing of the file + - tracing: Wake up waiters when tracing is disabled + - tracing: Add ioctl() to force ring buffer waiters to wake up + - tracing: Do not free snapshot if tracer is on cmdline + - tracing: Move duplicate code of trace_kprobe/eprobe.c into header + - tracing: Add "(fault)" name injection to kernel probes + - tracing: Fix reading strings from synthetic events + - rpmsg: char: Avoid double destroy of default endpoint + - thunderbolt: Explicitly enable lane adapter hotplug events at startup + - efi: libstub: drop pointless get_memory_map() call + - media: cedrus: Set the platform driver data earlier + - media: cedrus: Fix endless loop in cedrus_h265_skip_bits() + - blk-throttle: fix that io throttle can only work for single bio + - blk-wbt: call rq_qos_add() after wb_normal is initialized + - KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility + - KVM: nVMX: Unconditionally purge queued/injected events on nested "exit" + - KVM: nVMX: Don't propagate vmcs12's PERF_GLOBAL_CTRL settings to vmcs02 + - KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS + - staging: greybus: audio_helper: remove unused and wrong debugfs usage + - drm/nouveau/kms/nv140-: Disable interlacing + - drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table() + - drm/i915/gt: Use i915_vm_put on ppgtt_create error paths + - drm/i915: Fix watermark calculations for gen12+ RC CCS modifier + - drm/i915: Fix watermark calculations for gen12+ MC CCS modifier + - drm/i915: Fix watermark calculations for gen12+ CCS+CC modifier + - drm/i915: Fix watermark calculations for DG2 CCS modifiers + - drm/i915: Fix watermark calculations for DG2 CCS+CC modifier + - drm/amd/display: Fix vblank refcount in vrr transition + - drm/amd/display: explicitly disable psr_feature_enable appropriately + - smb3: must initialize two ACL struct fields to zero + - selinux: use "grep -E" instead of "egrep" + - ima: fix blocking of security.ima xattrs of unsupported algorithms + - userfaultfd: open userfaultfds with O_RDONLY + - ntfs3: rework xattr handlers and switch to POSIX ACL VFS helpers + - thermal: cpufreq_cooling: Check the policy first in + cpufreq_cooling_register() + - cpufreq: amd-pstate: Fix initial highest_perf value + - sh: machvec: Use char[] for section boundaries + - MIPS: SGI-IP30: Fix platform-device leak in bridge_platform_create() + - MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create() + - erofs: fix order >= MAX_ORDER warning due to crafted negative i_size + - erofs: use kill_anon_super() to kill super in fscache mode + - ARM: 9243/1: riscpc: Unbreak the build + - ARM: 9244/1: dump: Fix wrong pg_level in walk_pmd() + - ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE + - ACPI: PCC: Release resources on address space setup failure path + - ACPI: PCC: replace wait_for_completion() + - ACPI: PCC: Fix Tx acknowledge in the PCC address space handler + - objtool: Preserve special st_shndx indexes in elf_update_symbol + - nfsd: Fix a memory leak in an error handling path + - NFSD: Fix handling of oversized NFSv4 COMPOUND requests + - x86/paravirt: add extra clobbers with ZERO_CALL_USED_REGS enabled + - wifi: rtlwifi: 8192de: correct checking of IQK reload + - wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state() + - bpf: Fix non-static bpf_func_proto struct definitions + - bpf: convert cgroup_bpf.progs to hlist + - bpf: Cleanup check_refcount_ok + - leds: lm3601x: Don't use mutex after it was destroyed + - tsnep: Fix TSNEP_INFO_TX_TIME register define + - bpf: Fix reference state management for synchronous callbacks + - wifi: cfg80211: get correct AP link chandef + - wifi: mac80211: allow bw change during channel switch in mesh + - bpftool: Fix a wrong type cast in btf_dumper_int + - audit: explicitly check audit_context->context enum value + - audit: free audit_proctitle only on task exit + - esp: choose the correct inner protocol for GSO on inter address family + tunnels + - spi: mt7621: Fix an error message in mt7621_spi_probe() + - x86/resctrl: Fix to restore to original value when re-enabling hardware + prefetch register + - xsk: Fix backpressure mechanism on Tx + - selftests/xsk: Add missing close() on netns fd + - bpf: Disable preemption when increasing per-cpu map_locked + - bpf: Propagate error from htab_lock_bucket() to userspace + - wifi: ath11k: Fix incorrect QMI message ID mappings + - bpf: Use this_cpu_{inc|dec|inc_return} for bpf_task_storage_busy + - bpf: Use this_cpu_{inc_return|dec} for prog->active + - Bluetooth: btusb: mediatek: fix WMT failure during runtime suspend + - wifi: rtw89: pci: fix interrupt stuck after leaving low power mode + - wifi: rtw89: pci: correct TX resource checking in low power mode + - wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse() + - wifi: wfx: prevent underflow in wfx_send_pds() + - wifi: rtw88: add missing destroy_workqueue() on error path in + rtw_core_init() + - selftests/xsk: Avoid use-after-free on ctx + - spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume() + - spi: qup: add missing clk_disable_unprepare on error in + spi_qup_pm_resume_runtime() + - wifi: rtl8xxxu: Fix skb misuse in TX queue selection + - spi: meson-spicc: do not rely on busy flag in pow2 clk ops + - bpf: btf: fix truncated last_member_type_id in btf_struct_resolve + - wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration + - wifi: rtl8xxxu: Remove copy-paste leftover in gen2_update_rate_mask + - wifi: mt76: mt7921e: fix race issue between reset and suspend/resume + - wifi: mt76: mt7921s: fix race issue between reset and suspend/resume + - wifi: mt76: mt7921u: fix race issue between reset and suspend/resume + - wifi: mt76: sdio: fix the deadlock caused by sdio->stat_work + - wifi: mt76: sdio: poll sta stat when device transmits data + - wifi: mt76: sdio: fix transmitting packet hangs + - wifi: mt76: mt7615: add mt7615_mutex_acquire/release in + mt7615_sta_set_decap_offload + - wifi: mt76: mt7915: fix possible unaligned access in + mt7915_mac_add_twt_setup + - wifi: mt76: connac: fix possible unaligned access in + mt76_connac_mcu_add_nested_tlv + - wifi: mt76: mt7921: add mt7921_mutex_acquire at mt7921_[start, stop]_ap + - wifi: mt76: mt7921: add mt7921_mutex_acquire at mt7921_sta_set_decap_offload + - wifi: mt76: mt7915: fix mcs value in ht mode + - wifi: mt76: mt7915: do not check state before configuring implicit beamform + - wifi: mt76: mt7921e: fix rmmod crash in driver reload test + - Bluetooth: RFCOMM: Fix possible deadlock on socket shutdown/release + - net: fs_enet: Fix wrong check in do_pd_setup + - bpf: Ensure correct locking around vulnerable function find_vpid() + - wifi: ath11k: Include STA_KEEPALIVE_ARP_RESPONSE TLV header by default + - Bluetooth: hci_{ldisc,serdev}: check percpu_init_rwsem() failure + - netfilter: conntrack: fix the gc rescheduling delay + - netfilter: conntrack: revisit the gc initial rescheduling bias + - flow_dissector: Do not count vlan tags inside tunnel payload + - wifi: ath11k: fix failed to find the peer with peer_id 0 when disconnected + - wifi: ath11k: fix number of VHT beamformee spatial streams + - mips: dts: ralink: mt7621: fix external phy on GB-PC2 + - x86/microcode/AMD: Track patch allocation size explicitly + - wifi: ath11k: fix peer addition/deletion error on sta band migration + - x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype + - spi: cadence-quadspi: Fix PM disable depth imbalance in cqspi_probe + - spi: dw: Fix PM disable depth imbalance in dw_spi_bt1_probe + - spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe + - skmsg: Schedule psock work if the cached skb exists on the psock + - cw1200: fix incorrect check to determine if no element is found in list + - i2c: mlxbf: support lock mechanism + - Bluetooth: hci_core: Fix not handling link timeouts propertly + - xfrm: Reinject transport-mode packets through workqueue + - netfilter: nft_fib: Fix for rpath check with VRF devices + - spi: s3c64xx: Fix large transfers with DMA + - wifi: rtl8xxxu: gen2: Enable 40 MHz channel width + - wifi: rtl8xxxu: Fix AIFS written to REG_EDCA_*_PARAM + - vhost/vsock: Use kvmalloc/kvfree for larger packets. + - eth: alx: take rtnl_lock on resume + - sctp: handle the error returned from sctp_auth_asoc_init_active_key + - tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited + - spi: Ensure that sg_table won't be used after being freed + - Bluetooth: hci_sync: Fix not indicating power state + - hwmon: (pmbus/mp2888) Fix sensors readouts for MPS Multi-phase mp2888 + controller + - net: rds: don't hold sock lock when cancelling work from + rds_tcp_reset_callbacks() + - af_unix: Fix memory leaks of the whole sk due to OOB skb. + - net: prestera: acl: Add check for kmemdup + - eth: lan743x: reject extts for non-pci11x1x devices + - bnx2x: fix potential memory leak in bnx2x_tpa_stop() + - eth: sp7021: fix use after free bug in spl2sw_nvmem_get_mac_address + - net: wwan: iosm: Call mutex_init before locking it + - net/ieee802154: reject zero-sized raw_sendmsg() + - once: add DO_ONCE_SLOW() for sleepable contexts + - net: mvpp2: fix mvpp2 debugfs leak + - drm: bridge: adv7511: fix CEC power down control register offset + - drm: bridge: adv7511: unregister cec i2c device after cec adapter + - drm/bridge: Avoid uninitialized variable warning + - drm/mipi-dsi: Detach devices when removing the host + - drm/bridge: it6505: Power on downstream device in .atomic_enable + - drm/virtio: Correct drm_gem_shmem_get_sg_table() error handling + - drm/bridge: tc358767: Add of_node_put() when breaking out of loop + - drm/bridge: parade-ps8640: Fix regulator supply order + - drm/dp_mst: fix drm_dp_dpcd_read return value checks + - drm:pl111: Add of_node_put() when breaking out of + for_each_available_child_of_node() + - ASoC: mt6359: fix tests for platform_get_irq() failure + - drm/msm: Make .remove and .shutdown HW shutdown consistent + - platform/chrome: fix double-free in chromeos_laptop_prepare() + - platform/chrome: fix memory corruption in ioctl + - drm/virtio: Fix same-context optimization + - ASoC: soc-pcm.c: call __soc_pcm_close() in soc_pcm_close() + - ASoC: tas2764: Allow mono streams + - ASoC: tas2764: Drop conflicting set_bias_level power setting + - ASoC: tas2764: Fix mute/unmute + - platform/x86: msi-laptop: Fix old-ec check for backlight registering + - platform/x86: msi-laptop: Fix resource cleanup + - platform/chrome: cros_ec_typec: Correct alt mode index + - drm/amdgpu: add missing pci_disable_device() in + amdgpu_pmops_runtime_resume() + - drm/bridge: megachips: Fix a null pointer dereference bug + - drm/bridge: it6505: Fix the order of DP_SET_POWER commands + - ASoC: rsnd: Add check for rsnd_mod_power_on + - ASoC: wm_adsp: Handle optional legacy support + - ALSA: hda: beep: Simplify keep-power-at-enable behavior + - drm/virtio: set fb_modifiers_not_supported + - drm/bochs: fix blanking + - ASoC: SOF: mediatek: mt8195: Import namespace SND_SOC_SOF_MTK_COMMON + - drm/omap: dss: Fix refcount leak bugs + - drm/amdgpu: Fix memory leak in hpd_rx_irq_create_workqueue() + - mmc: au1xmmc: Fix an error handling path in au1xmmc_probe() + - ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API + - drm/msm: lookup the ICC paths in both mdp5/dpu and mdss devices + - drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx + - drm/msm/dp: correct 1.62G link rate at dp_catalog_ctrl_config_msa() + - ALSA: usb-audio: Properly refcounting clock rate + - drm/vmwgfx: Fix memory leak in vmw_mksstat_add_ioctl() + - virtio-gpu: fix shift wrapping bug in virtio_gpu_fence_event_create() + - ASoC: codecs: tx-macro: fix kcontrol put + - ASoC: da7219: Fix an error handling path in da7219_register_dai_clks() + - ALSA: dmaengine: increment buffer pointer atomically + - mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe() + - ASoC: stm32: dfsdm: Fix PM disable depth imbalance in stm32_adfsdm_probe + - ASoC: stm32: spdifrx: Fix PM disable depth imbalance in stm32_spdifrx_probe + - ASoC: stm: Fix PM disable depth imbalance in stm32_i2s_probe + - ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe + - ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe + - ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe + - ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probe + - ALSA: hda/hdmi: Don't skip notification handling during PM operation + - memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe() + - memory: of: Fix refcount leak bug in of_get_ddr_timings() + - memory: of: Fix refcount leak bug in of_lpddr3_get_ddr_timings() + - locks: fix TOCTOU race when granting write lease + - soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe() + - soc: qcom: smem_state: Add refcounting for the 'state->of_node' + - ARM: dts: imx6qdl-kontron-samx6i: hook up DDC i2c bus + - arm64: dts: renesas: r9a07g044: Fix SCI{Rx,Tx} interrupt types + - arm64: dts: renesas: r9a07g054: Fix SCI{Rx,Tx} interrupt types + - arm64: dts: renesas: r9a07g043: Fix SCI{Rx,Tx} interrupt types + - dt-bindings: clock: exynosautov9: correct clock numbering of peric0/c1 + - ARM: dts: turris-omnia: Fix mpp26 pin name and comment + - ARM: dts: kirkwood: lsxl: fix serial line + - ARM: dts: kirkwood: lsxl: remove first ethernet port + - ia64: export memory_add_physaddr_to_nid to fix cxl build error + - soc/tegra: fuse: Drop Kconfig dependency on TEGRA20_APB_DMA + - arm64: dts: ti: k3-j7200: fix main pinmux range + - ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family + - ARM: Drop CMDLINE_* dependency on ATAGS + - ext4: don't run ext4lazyinit for read-only filesystems + - arm64: ftrace: fix module PLTs with mcount + - ARM: dts: exynos: fix polarity of VBUS GPIO of Origen + - iomap: iomap: fix memory corruption when recording errors during writeback + - iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX + - iio: adc: at91-sama5d2_adc: check return status for pressure and touch + - iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq + - iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume + - iio: inkern: only release the device node when done with it + - iio: inkern: fix return value in devm_of_iio_channel_get_by_name() + - iio: ABI: Fix wrong format of differential capacitance channel ABI. + - iio: magnetometer: yas530: Change data type of hard_offsets to signed + - RDMA/mlx5: Don't compare mkey tags in DEVX indirect mkey + - usb: common: debug: Check non-standard control requests + - clk: meson: Hold reference returned by of_get_parent() + - clk: st: Hold reference returned by of_get_parent() + - clk: oxnas: Hold reference returned by of_get_parent() + - clk: qoriq: Hold reference returned by of_get_parent() + - clk: berlin: Add of_node_put() for of_get_parent() + - clk: sprd: Hold reference returned by of_get_parent() + - clk: tegra: Fix refcount leak in tegra210_clock_init + - clk: tegra: Fix refcount leak in tegra114_clock_init + - clk: tegra20: Fix refcount leak in tegra20_clock_init + - clk: samsung: exynosautov9: correct register offsets of peric0/c1 + - HSI: omap_ssi: Fix refcount leak in ssi_probe + - HSI: omap_ssi_port: Fix dma_map_sg error check + - clk: qcom: gcc-sdm660: Use floor ops for SDCC1 clock + - media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop + - tty: xilinx_uartps: Fix the ignore_status + - media: amphion: insert picture startcode after seek for vc1g format + - media: amphion: adjust the encoder's value range of gop size + - media: amphion: don't change the colorspace reported by decoder. + - media: amphion: fix a bug that vpu core may not resume after suspend + - media: meson: vdec: add missing clk_disable_unprepare on error in + vdec_hevc_start() + - media: uvcvideo: Fix memory leak in uvc_gpio_parse + - media: uvcvideo: Use entity get_cur in uvc_ctrl_set + - media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init + - RDMA/rxe: Fix "kernel NULL pointer dereference" error + - RDMA/rxe: Fix the error caused by qp->sk + - clk: mediatek: clk-mt8195-vdo0: Set rate on vdo0_dp_intf0_dp_intf's parent + - clk: mediatek: clk-mt8195-vdo1: Reparent and set rate on vdo1_dpintf's + parent + - clk: mediatek: mt8195-infra_ao: Set pwrmcu clocks as critical + - misc: ocxl: fix possible refcount leak in afu_ioctl() + - fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() + - phy: rockchip-inno-usb2: Return zero after otg sync + - dmaengine: idxd: avoid deadlock in process_misc_interrupts() + - dmaengine: hisilicon: Disable channels when unregister hisi_dma + - dmaengine: hisilicon: Fix CQ head update + - dmaengine: hisilicon: Add multi-thread support for a DMA channel + - usb: gadget: f_fs: stricter integer overflow checks + - dyndbg: fix static_branch manipulation + - dyndbg: fix module.dyndbg handling + - dyndbg: let query-modname override actual module name + - dyndbg: drop EXPORTed dynamic_debug_exec_queries + - clk: qcom: sm6115: Select QCOM_GDSC + - mtd: devices: docg3: check the return value of devm_ioremap() in the probe + - remoteproc: Harden rproc_handle_vdev() against integer overflow + - phy: amlogic: phy-meson-axg-mipi-pcie-analog: Hold reference returned by + of_get_parent() + - phy: phy-mtk-tphy: fix the phy type setting issue + - mtd: rawnand: intel: Read the chip-select line from the correct OF node + - mtd: rawnand: intel: Remove undocumented compatible string + - mtd: rawnand: fsl_elbc: Fix none ECC mode + - RDMA/irdma: Align AE id codes to correct flush code and event + - RDMA/irdma: Validate udata inlen and outlen + - RDMA/srp: Fix srp_abort() + - RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall. + - RDMA/siw: Fix QP destroy to wait for all references dropped. + - ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting() + - ata: fix ata_id_has_devslp() + - ata: fix ata_id_has_ncq_autosense() + - ata: fix ata_id_has_dipm() + - mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct() + - md/raid5: Ensure stripe_fill happens on non-read IO with journal + - md/raid5: Remove unnecessary bio_put() in raid5_read_one_chunk() + - RDMA/cm: Use SLID in the work completion as the DLID in responder side + - IB: Set IOVA/LENGTH on IB_MR in core/uverbs layers + - xhci: Don't show warning for reinit on known broken suspend + - usb: gadget: function: fix dangling pnp_string in f_printer.c + - usb: dwc3: core: fix some leaks in probe + - drivers: serial: jsm: fix some leaks in probe + - serial: 8250: Toggle IER bits on only after irq has been set up + - tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown + - phy: qualcomm: call clk_disable_unprepare in the error handling + - staging: vt6655: fix some erroneous memory clean-up loops + - slimbus: qcom-ngd-ctrl: allow compile testing without QCOM_RPROC_COMMON + - slimbus: qcom-ngd: Add error handling in of_qcom_slim_ngd_register + - firmware: google: Test spinlock on panic path to avoid lockups + - serial: 8250: Fix restoring termios speed after suspend + - scsi: libsas: Fix use-after-free bug in smp_execute_task_sg() + - scsi: pm8001: Fix running_req for internal abort commands + - scsi: iscsi: Rename iscsi_conn_queue_work() + - scsi: iscsi: Add recv workqueue helpers + - scsi: iscsi: Run recv path from workqueue + - scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername() + - clk: qcom: apss-ipq6018: mark apcs_alias0_core_clk as critical + - clk: qcom: gcc-sm6115: Override default Alpha PLL regs + - RDMA/rxe: Fix resize_finish() in rxe_queue.c + - fsi: core: Check error number after calling ida_simple_get + - mfd: intel_soc_pmic: Fix an error handling path in + intel_soc_pmic_i2c_probe() + - mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq() + - mfd: lp8788: Fix an error handling path in lp8788_probe() + - mfd: lp8788: Fix an error handling path in lp8788_irq_init() and + lp8788_irq_init() + - mfd: fsl-imx25: Fix check for platform_get_irq() errors + - mfd: sm501: Add check for platform_driver_register() + - mfd: da9061: Fix Failed to set Two-Wire Bus Mode. + - clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent + - clk: mediatek: clk-mt8195-mfg: Reparent mfg_bg3d and propagate rate changes + - clk: mediatek: fix unregister function in mtk_clk_register_dividers cleanup + - clk: mediatek: Migrate remaining clk_unregister_*() to clk_hw_unregister_*() + - dmaengine: ioat: stop mod_timer from resurrecting deleted timer in + __cleanup() + - usb: mtu3: fix failed runtime suspend in host only mode + - spmi: pmic-arb: correct duplicate APID to PPID mapping logic + - clk: vc5: Fix 5P49V6901 outputs disabling when enabling FOD + - clk: baikal-t1: Fix invalid xGMAC PTP clock divider + - clk: baikal-t1: Add shared xGMAC ref/ptp clocks internal parent + - clk: baikal-t1: Add SATA internal ref clock buffer + - clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration + - clk: imx: scu: fix memleak on platform_device_add() fails + - clk: ti: Balance of_node_get() calls for of_find_node_by_name() + - clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe + - clk: ast2600: BCLK comes from EPLL + - mailbox: mpfs: fix handling of the reg property + - mailbox: mpfs: account for mbox offsets while sending + - mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg + - ipc: mqueue: fix possible memory leak in init_mqueue_fs() + - powerpc/configs: Properly enable PAPR_SCM in pseries_defconfig + - powerpc/math_emu/efp: Include module.h + - powerpc/sysdev/fsl_msi: Add missing of_node_put() + - powerpc/pci_dn: Add missing of_node_put() + - powerpc/powernv: add missing of_node_put() in opal_export_attrs() + - cpuidle: riscv-sbi: Fix CPU_PM_CPU_IDLE_ENTER_xyz() macro usage + - powerpc: Fix fallocate and fadvise64_64 compat parameter combination + - x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition + - powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5 + - powerpc/64: mark irqs hard disabled in boot paca + - powerpc/64/interrupt: Fix return to masked context after hard-mask irq + becomes pending + - powerpc: Fix SPE Power ISA properties for e500v1 platforms + - powerpc/kprobes: Fix null pointer reference in arch_prepare_kprobe() + - powerpc/pseries/vas: Pass hw_cpu_id to node associativity HCALL + - crypto: sahara - don't sleep when in softirq + - crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr + - hwrng: arm-smccc-trng - fix NO_ENTROPY handling + - crypto: ccp - Fail the PSP initialization when writing psp data file failed + - cgroup: Honor caller's cgroup NS when resolving path + - hwrng: imx-rngc - Moving IRQ handler registering after + imx_rngc_irq_mask_clear() + - crypto: qat - fix default value of WDT timer + - crypto: hisilicon/qm - fix missing put dfx access + - cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset + - iommu/omap: Fix buffer overflow in debugfs + - crypto: akcipher - default implementation for setting a private key + - crypto: ccp - Release dma channels before dmaengine unrgister + - crypto: inside-secure - Change swab to swab32 + - crypto: qat - fix DMA transfer direction + - clocksource/drivers/arm_arch_timer: Fix handling of ARM erratum 858921 + - clocksource/drivers/timer-gxp: Add missing error handling in gxp_timer_probe + - cifs: return correct error in ->calc_signature() + - iommu/iova: Fix module config properly + - tracing: kprobe: Fix kprobe event gen test module on exit + - tracing: kprobe: Make gen test module work in arm and riscv + - tracing/osnoise: Fix possible recursive locking in stop_per_cpu_kthreads + - kbuild: remove the target in signal traps when interrupted + - linux/export: use inline assembler to populate symbol CRCs + - kbuild: rpm-pkg: fix breakage when V=1 is used + - crypto: marvell/octeontx - prevent integer overflows + - crypto: cavium - prevent integer overflow loading firmware + - random: schedule jitter credit for next jiffy, not in two jiffies + - thermal/drivers/qcom/tsens-v0_1: Fix MSM8939 fourth sensor hw_id + - ACPI: APEI: do not add task_work to kernel thread to avoid memory leak + - f2fs: fix race condition on setting FI_NO_EXTENT flag + - f2fs: fix to account FS_CP_DATA_IO correctly + - selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle + - module: tracking: Keep a record of tainted unloaded modules only + - fs: dlm: fix race in lowcomms + - rcu: Avoid triggering strict-GP irq-work when RCU is idle + - rcu: Back off upon fill_page_cache_func() allocation failure + - cpufreq: amd_pstate: fix wrong lowest perf fetch + - ACPI: video: Add Toshiba Satellite/Portege Z830 quirk + - fortify: Fix __compiletime_strlen() under UBSAN_BOUNDS_LOCAL + - ACPI: tables: FPDT: Don't call acpi_os_map_memory() on invalid phys address + - cpufreq: intel_pstate: Add Tigerlake support in no-HWP mode + - MIPS: BCM47XX: Cast memcmp() of function to (void *) + - powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue + - thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to + avoid crash + - ARM: decompressor: Include .data.rel.ro.local + - ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable + - x86/entry: Work around Clang __bdos() bug + - NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data + - NFSD: fix use-after-free on source server when doing inter-server copy + - wifi: ath10k: Set tx credit to one for WCN3990 snoc based devices + - wifi: brcmfmac: fix invalid address access when enabling SCAN log level + - bpftool: Clear errno after libcap's checks + - ice: set tx_tstamps when creating new Tx rings via ethtool + - net: ethernet: ti: davinci_mdio: Add workaround for errata i2329 + - openvswitch: Fix double reporting of drops in dropwatch + - openvswitch: Fix overreporting of drops in dropwatch + - tcp: annotate data-race around tcp_md5sig_pool_populated + - x86/mce: Retrieve poison range from hardware + - wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg() + - thunderbolt: Add back Intel Falcon Ridge end-to-end flow control workaround + - x86/apic: Don't disable x2APIC if locked + - net: axienet: Switch to 64-bit RX/TX statistics + - net-next: Fix IP_UNICAST_IF option behavior for connected sockets + - xfrm: Update ipcomp_scratches with NULL when freed + - wifi: ath11k: Register shutdown handler for WCN6750 + - rtw89: ser: leave lps with mutex + - iavf: Fix race between iavf_close and iavf_reset_task + - wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit() + - Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk + - regulator: core: Prevent integer underflow + - wifi: ath11k: mhi: fix potential memory leak in ath11k_mhi_register() + - wifi: mt76: mt7921: reset msta->airtime_ac while clearing up hw value + - wifi: rtw89: free unused skb to prevent memory leak + - wifi: rtw89: fix rx filter after scan + - Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create() + - Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times + - bnxt_en: replace reset with config timestamps + - selftests/bpf: Free the allocated resources after test case succeeds + - can: bcm: check the result of can_send() in bcm_can_tx() + - wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620 + - wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620 + - wifi: rt2x00: set VGC gain for both chains of MT7620 + - wifi: rt2x00: set SoC wmac clock register + - wifi: rt2x00: correctly set BBP register 86 for MT7620 + - hwmon: (sht4x) do not overflow clamping operation on 32-bit platforms + - net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory + - bpf: Adjust kprobe_multi entry_ip for CONFIG_X86_KERNEL_IBT + - bpf: use bpf_prog_pack for bpf_dispatcher + - Bluetooth: L2CAP: Fix user-after-free + - i2c: designware-pci: Group AMD NAVI quirk parts together + - drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc() + - drm: Use size_t type for len variable in drm_copy_field() + - drm: Prevent drm_copy_field() to attempt copying a NULL pointer + - drm/komeda: Fix handling of atomic commits in the atomic_commit_tail hook + - gpu: lontium-lt9611: Fix NULL pointer dereference in lt9611_connector_init() + - drm/amd/display: fix overflow on MIN_I64 definition + - udmabuf: Set ubuf->sg = NULL if the creation of sg table fails + - platform/x86: pmc_atom: Improve quirk message to be less cryptic + - drm: bridge: dw_hdmi: only trigger hotplug event on link change + - drm/amdgpu: Skip the program of MMMC_VM_AGP_* in SRIOV on MMHUB v3_0_0 + - drm/admgpu: Skip CG/PG on SOC21 under SRIOV VF + - ALSA: usb-audio: Register card at the last interface + - drm/vc4: vec: Fix timings for VEC modes + - drm: panel-orientation-quirks: Add quirk for Anbernic Win600 + - drm: panel-orientation-quirks: Add quirk for Aya Neo Air + - platform/chrome: cros_ec: Notify the PM of wake events during resume + - platform/x86: hp-wmi: Setting thermal profile fails with 0x06 + - platform/x86: msi-laptop: Change DMI match / alias strings to fix module + autoloading + - ALSA: intel-dspconfig: add ES8336 support for AlderLake-PS + - ASoC: SOF: pci: Change DMI match info to support all Chrome platforms + - ASoC: SOF: add quirk to override topology mclk_id + - drm/amdgpu: SDMA update use unlocked iterator + - drm/amd/display: correct hostvm flag + - drm/amdgpu: fix initial connector audio value + - drm/meson: reorder driver deinit sequence to fix use-after-free bug + - drm/meson: explicitly remove aggregate driver at module unload time + - drm/meson: remove drm bridges at aggregate driver unbind time + - drm/dp: Don't rewrite link config when setting phy test pattern + - drm/amd/display: Remove interface for periodic interrupt 1 + - drm/amd/display: polling vid stream status in hpo dp blank + - drm/amdkfd: Fix UBSAN shift-out-of-bounds warning + - ARM: dts: imx6: delete interrupts property if interrupts-extended is set + - ARM: dts: imx7d-sdb: config the max pressure for tsc2046 + - ARM: dts: imx6q: add missing properties for sram + - ARM: dts: imx6dl: add missing properties for sram + - ARM: dts: imx6qp: add missing properties for sram + - ARM: dts: imx6sl: add missing properties for sram + - ARM: dts: imx6sll: add missing properties for sram + - ARM: dts: imx6sx: add missing properties for sram + - ARM: dts: imx6sl: use tabs for code indent + - ARM: dts: imx6sx-udoo-neo: don't use multiple blank lines + - kselftest/arm64: Fix validatation termination record after EXTRA_CONTEXT + - arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card IO + voltage + - arm64: dts: imx8mq-librem5: Add bq25895 as max17055's power supply + - btrfs: dump extra info if one free space cache has more bitmaps than it + should + - btrfs: scrub: properly report super block errors in system log + - btrfs: scrub: try to fix super block errors + - btrfs: don't print information about space cache or tree every remount + - btrfs: call __btrfs_remove_free_space_cache_locked on cache load failure + - ARM: 9233/1: stacktrace: Skip frame pointer boundary check for + call_with_stack() + - ARM: 9234/1: stacktrace: Avoid duplicate saving of exception PC value + - ARM: 9242/1: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n + - clk: zynqmp: Fix stack-out-of-bounds in strncpy` + - media: cx88: Fix a null-ptr-deref bug in buffer_prepare() + - media: platform: fix some double free in meson-ge2d and mtk-jpeg and s5p-mfc + - clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate + - RDMA/rxe: Delete error messages triggered by incoming Read requests + - usb: host: xhci-plat: suspend and resume clocks + - usb: host: xhci-plat: suspend/resume clks for brcm + - scsi: lpfc: Fix null ndlp ptr dereference in abnormal exit path for GFT_ID + - dmaengine: ti: k3-udma: Reset UDMA_CHAN_RT byte counters to prevent overflow + - scsi: 3w-9xxx: Avoid disabling device if failing to enable it + - nbd: Fix hung when signal interrupts nbd_start_device_ioctl() + - iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to + identity + - usb: gadget: uvc: increase worker prio to WQ_HIGHPRI + - power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type() + - staging: vt6655: fix potential memory leak + - blk-throttle: prevent overflow while calculating wait time + - ata: libahci_platform: Sanity check the DT child nodes number + - bcache: fix set_at_max_writeback_rate() for multiple attached devices + - soundwire: cadence: Don't overwrite msg->buf during write commands + - soundwire: intel: fix error handling on dai registration issues + - HID: roccat: Fix use-after-free in roccat_read() + - HSI: ssi_protocol: fix potential resource leak in ssip_pn_open() + - HID: nintendo: check analog user calibration for plausibility + - eventfd: guard wake_up in eventfd fs calls as well + - md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d + - usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info() + - usb: musb: Fix musb_gadget.c rxstate overflow bug + - usb: dwc3: core: add gfladj_refclk_lpm_sel quirk + - arm64: dts: imx8mp: Add snps,gfladj-refclk-lpm-sel quirk to USB nodes + - usb: dwc3: core: Enable GUCTL1 bit 10 for fixing termination error after + resume bug + - Revert "usb: storage: Add quirk for Samsung Fit flash" + - staging: rtl8723bs: fix potential memory leak in rtw_init_drv_sw() + - staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv() + - scsi: tracing: Fix compile error in trace_array calls when TRACING is + disabled + - ext2: Use kvmalloc() for group descriptor array + - nvme: handle effects after freeing the request + - nvme: copy firmware_rev on each init + - nvmet-tcp: add bounds check on Transfer Tag + - usb: idmouse: fix an uninit-value in idmouse_open + - blk-mq: use quiesced elevator switch when reinitializing queues + - hwmon (occ): Retry for checksum failure + - fsi: occ: Prevent use after free + - usb: typec: ucsi: Don't warn on probe deferral + - clk: bcm2835: Make peripheral PLLC critical + - clk: bcm2835: Round UART input clock up + - perf: Skip and warn on unknown format 'configN' attrs + - perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc + - perf intel-pt: Fix system_wide dummy event for hybrid + - mm: hugetlb: fix UAF in hugetlb_handle_userfault + - net: ieee802154: return -EINVAL for unknown addr type + - ALSA: usb-audio: Fix last interface check for registration + - blk-wbt: fix that 'rwb->wc' is always set to 1 in wbt_init() + - [Config] updateconfigs for MDIO_BITBANG + - net: ethernet: ti: davinci_mdio: fix build for mdio bitbang uses + - Revert "drm/amd/display: correct hostvm flag" + - Revert "net/ieee802154: reject zero-sized raw_sendmsg()" + - net/ieee802154: don't warn zero-sized raw_sendmsg() + - powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked + context + - drm/amd/display: Fix build breakage with CONFIG_DEBUG_FS=n + - kbuild: Add skip_encoding_btf_enum64 option to pahole + - Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5 + - Kconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT + - [Config] updateconfigs for AS_HAS_NON_CONST_LEB128 + - lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5 + - HID: uclogic: Add missing suffix for digitalizers + - ext4: continue to expand file system when the target size doesn't reach + - drm/i915: Rename block_size()/block_offset() + - drm/i915/bios: Validate fp_timing terminator presence + - drm/i915/bios: Use hardcoded fp_timing size for generating LFP data pointers + - Linux 5.19.17 + + * Kinetic update: v5.19.16 upstream stable release (LP: #1994164) + - nilfs2: fix use-after-free bug of struct nilfs_root + - nilfs2: fix leak of nilfs_root in case of writer thread creation failure + - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure + - ceph: don't truncate file in atomic_open + - nvme-pci: set min_align_mask before calculating max_hw_sectors + - random: restore O_NONBLOCK support + - random: clamp credited irq bits to maximum mixed + - ALSA: hda: Fix position reporting on Poulsbo + - ALSA: hda/realtek: Add quirk for HP Zbook Firefly 14 G9 model + - efi: Correct Macmini DMI match in uefi cert quirk + - USB: serial: qcserial: add new usb-id for Dell branded EM7455 + - Revert "USB: fixup for merge issue with "usb: dwc3: Don't switch OTG -> + peripheral if extcon is present"" + - Revert "usb: dwc3: Don't switch OTG -> peripheral if extcon is present" + - Revert "powerpc/rtas: Implement reentrant rtas call" + - Revert "crypto: qat - reduce size of mapped region" + - random: avoid reading two cache lines on irq randomness + - random: use expired timer rather than wq for mixing fast pool + - mctp: prevent double key removal and unref + - Input: xpad - add supported devices as contributed on github + - Input: xpad - fix wireless 360 controller breaking after suspend + - misc: pci_endpoint_test: Aggregate params checking for xfer + - misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic + - Linux 5.19.16 + + * Kinetic update: v5.19.15 upstream stable release (LP: #1994078) + - sparc: Unbreak the build + - Makefile.extrawarn: Move -Wcast-function-type-strict to W=1 + - [Config] updateconfigs for CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER + - hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero + - docs: update mediator information in CoC docs + - xsk: Inherit need_wakeup flag for shared sockets + - firmware: arm_scmi: Improve checks in the info_get operations + - firmware: arm_scmi: Harden accesses to the sensor domains + - firmware: arm_scmi: Add SCMI PM driver remove routine + - arm64: dts: rockchip: fix upper usb port on BPI-R2-Pro + - dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling + - dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property + - dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API + failure + - wifi: iwlwifi: don't spam logs with NSS>2 messages + - ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer + - drm/amdgpu/mes: zero the sdma_hqd_mask of 2nd SDMA engine for SDMA 6.0.1 + - scsi: qedf: Fix a UAF bug in __qedf_probe() + - net/ieee802154: fix uninit value bug in dgram_sendmsg + - net: marvell: prestera: add support for for Aldrin2 + - ALSA: hda/hdmi: Fix the converter reuse for the silent stream + - um: Cleanup syscall_handler_t cast in syscalls_32.h + - um: Cleanup compiler warning in arch/x86/um/tls_32.c + - gpio: ftgpio010: Make irqchip immutable + - arch: um: Mark the stack non-executable to fix a binutils warning + - net: atlantic: fix potential memory leak in aq_ndev_close() + - KVM: s390: Pass initialized arg even if unused + - drm/amd/display: Fix double cursor on non-video RGB MPO + - drm/amd/display: Assume an LTTPR is always present on fixed_vs links + - drm/amd/display: update gamut remap if plane has changed + - drm/amd/display: skip audio setup when audio stream is enabled + - drm/amd/display: Fix DP MST timeslot issue when fallback happened + - drm/amd/display: increase dcn315 pstate change latency + - perf/x86/intel: Fix unchecked MSR access error for Alder Lake N + - don't use __kernel_write() on kmap_local_page() + - i2c: davinci: fix PM disable depth imbalance in davinci_i2c_probe + - usb: mon: make mmapped memory read only + - USB: serial: ftdi_sio: fix 300 bps rate for SIO + - gpiolib: acpi: Add support to ignore programming an interrupt + - gpiolib: acpi: Add a quirk for Asus UM325UAZ + - mmc: core: Replace with already defined values for readability + - mmc: core: Terminate infinite loop in SD-UHS voltage switch + - rpmsg: qcom: glink: replace strncpy() with strscpy_pad() + - bpf: Gate dynptr API behind CAP_BPF + - net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear + - bpf: Fix resetting logic for unreferenced kptrs + - Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer works + - Revert "clk: ti: Stop using legacy clkctrl names for omap4 and 5" + - Linux 5.19.15 + + * Kinetic update: v5.19.14 upstream stable release (LP: #1994076) + - riscv: make t-head erratas depend on MMU + - tools/perf: Fix out of bound access to cpu mask array + - perf record: Fix cpu mask bit setting for mixed mmaps + - counter: 104-quad-8: Utilize iomap interface + - counter: 104-quad-8: Implement and utilize register structures + - counter: 104-quad-8: Fix skipped IRQ lines during events configuration + - uas: add no-uas quirk for Hiksemi usb_disk + - usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS + - uas: ignore UAS for Thinkplus chips + - usb: typec: ucsi: Remove incorrect warning + - thunderbolt: Explicitly reset plug events delay back to USB4 spec value + - net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455 + - Input: snvs_pwrkey - fix SNVS_HPVIDR1 register address + - can: c_can: don't cache TX messages for C_CAN cores + - clk: ingenic-tcu: Properly enable registers before accessing timers + - wifi: mac80211: ensure vif queues are operational after start + - x86/sgx: Do not fail on incomplete sanitization on premature stop of ksgxd + - frontswap: don't call ->init if no ops are registered + - ARM: dts: integrator: Tag PCI host with device_type + - ntfs: fix BUG_ON in ntfs_lookup_inode_by_name() + - x86/uaccess: avoid check_object_size() in copy_from_user_nmi() + - mm/damon/dbgfs: fix memory leak when using debugfs_lookup() + - net: mt7531: only do PLL once after the reset + - Revert "firmware: arm_scmi: Add clock management to the SCMI power domain" + - powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush + - drm/i915/gt: Restrict forced preemption to the active context + - drm/amdgpu: Add amdgpu suspend-resume code path under SRIOV + - vduse: prevent uninitialized memory accesses + - libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205 + - mm: fix BUG splat with kvmalloc + GFP_ATOMIC + - mptcp: factor out __mptcp_close() without socket lock + - mptcp: fix unreleased socket in accept queue + - mmc: moxart: fix 4-bit bus width and remove 8-bit bus width + - mmc: hsq: Fix data stomping during mmc recovery + - mm: gup: fix the fast GUP race against THP collapse + - mm/page_alloc: fix race condition between build_all_zonelists and page + allocation + - mm: prevent page_frag_alloc() from corrupting the memory + - mm/page_isolation: fix isolate_single_pageblock() isolation behavior + - mm: fix dereferencing possible ERR_PTR + - mm/migrate_device.c: flush TLB while holding PTL + - mm/migrate_device.c: add missing flush_cache_page() + - mm/migrate_device.c: copy pte dirty bit to page + - mm: fix madivse_pageout mishandling on non-LRU page + - mm: bring back update_mmu_cache() to finish_fault() + - mm/hugetlb: correct demote page offset logic + - mm,hwpoison: check mm when killing accessing process + - media: dvb_vb2: fix possible out of bound access + - media: rkvdec: Disable H.264 error detection + - media: mediatek: vcodec: Drop platform_get_resource(IORESOURCE_IRQ) + - media: v4l2-compat-ioctl32.c: zero buffer passed to + v4l2_compat_get_array_args() + - ARM: dts: am33xx: Fix MMCHS0 dma properties + - reset: imx7: Fix the iMX8MP PCIe PHY PERST support + - ARM: dts: am5748: keep usb4_tm disabled + - soc: sunxi: sram: Actually claim SRAM regions + - soc: sunxi: sram: Prevent the driver from being unbound + - soc: sunxi: sram: Fix probe function ordering issues + - soc: sunxi: sram: Fix debugfs info for A64 SRAM C + - ASoC: imx-card: Fix refcount issue with of_node_put + - clk: microchip: mpfs: fix clk_cfg array bounds violation + - clk: microchip: mpfs: make the rtc's ahb clock critical + - arm64: dts: qcom: sm8350: fix UFS PHY serdes size + - ASoC: tas2770: Reinit regcache on reset + - drm/bridge: lt8912b: add vsync hsync + - drm/bridge: lt8912b: set hdmi or dvi mode + - drm/bridge: lt8912b: fix corrupted image output + - net: macb: Fix ZynqMP SGMII non-wakeup source resume failure + - Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in + suspend/resume time" + - Input: melfas_mip4 - fix return value check in mip4_probe() + - gpio: mvebu: Fix check for pwm support on non-A8K platforms + - perf parse-events: Break out tracepoint and printing + - perf print-events: Fix "perf list" can not display the PMU prefix for some + hybrid cache events + - perf parse-events: Remove "not supported" hybrid cache events + - usbnet: Fix memory leak in usbnet_disconnect() + - net: sched: act_ct: fix possible refcount leak in tcf_ct_init() + - cxgb4: fix missing unlock on ETHOFLD desc collect fail path + - net/mlxbf_gige: Fix an IS_ERR() vs NULL bug in mlxbf_gige_mdio_probe + - nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices + - wifi: cfg80211: fix MCS divisor value + - wifi: mac80211: fix regression with non-QoS drivers + - wifi: mac80211: fix memory corruption in minstrel_ht_update_rates() + - net: stmmac: power up/down serdes in stmmac_open/release + - net: phy: Don't WARN for PHY_UP state in mdio_bus_phy_resume() + - selftests: Fix the if conditions of in test_extra_filter() + - ice: xsk: change batched Tx descriptor cleaning + - ice: xsk: drop power of 2 ring size restriction for AF_XDP + - vdpa/ifcvf: fix the calculation of queuepair + - virtio-blk: Fix WARN_ON_ONCE in virtio_queue_rq() + - vdpa/mlx5: Fix MQ to support non power of two num queues + - clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks + - drm/i915/gt: Perf_limit_reasons are only available for Gen11+ + - clk: iproc: Do not rely on node name for correct PLL setup + - clk: imx93: drop of_match_ptr + - net: mscc: ocelot: fix tagged VLAN refusal while under a VLAN-unaware bridge + - net: ethernet: mtk_eth_soc: fix mask of RX_DMA_GET_SPORT{,_V2} + - perf test: Fix test case 87 ("perf record tests") for hybrid systems + - perf tests record: Fail the test if the 'errs' counter is not zero + - KVM: x86: Hide IA32_PLATFORM_DCA_CAP[31:0] from the guest + - x86/cacheinfo: Add a cpu_llc_shared_mask() UP variant + - x86/alternative: Fix race in try_get_desc() + - damon/sysfs: fix possible memleak on damon_sysfs_add_target + - Linux 5.19.14 + + * Kinetic update: v5.19.13 upstream stable release (LP: #1994075) + - Linux 5.19.13 + + * Kinetic update: v5.19.12 upstream stable release (LP: #1994074) + - smb3: Move the flush out of smb2_copychunk_range() into its callers + - smb3: fix temporary data corruption in collapse range + - smb3: fix temporary data corruption in insert range + - usb: add quirks for Lenovo OneLink+ Dock + - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio + - smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait + - Revert "usb: add quirks for Lenovo OneLink+ Dock" + - Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" + - xfrm: fix XFRMA_LASTUSED comment + - block: remove QUEUE_FLAG_DEAD + - block: stop setting the nomerges flags in blk_cleanup_queue + - block: simplify disk shutdown + - scsi: core: Fix a use-after-free + - drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES + - USB: core: Fix RST error in hub.c + - USB: serial: option: add Quectel BG95 0x0203 composition + - USB: serial: option: add Quectel RM520N + - ALSA: core: Fix double-free at snd_card_new() + - ALSA: hda/tegra: set depop delay for tegra + - ALSA: hda: Fix hang at HD-audio codec unbinding due to refcount saturation + - ALSA: hda: Fix Nvidia dp infoframe + - ALSA: hda: add Intel 5 Series / 3400 PCI DID + - ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 + - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop + - ALSA: hda/realtek: Re-arrange quirk table entries + - ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack + - ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack + - ALSA: hda/realtek: Add quirk for ASUS GA503R laptop + - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop + - ALSA: hda/realtek: Add a quirk for HP OMEN 16 (8902) mute LED + - iommu/vt-d: Check correct capability for sagaw determination + - exfat: fix overflow for large capacity partition + - btrfs: fix hang during unmount when stopping block group reclaim worker + - btrfs: fix hang during unmount when stopping a space reclaim worker + - btrfs: zoned: wait for extent buffer IOs before finishing a zone + - libperf evlist: Fix polling of system-wide events + - media: flexcop-usb: fix endpoint type check + - usb: dwc3: core: leave default DMA if the controller does not support 64-bit + DMA + - thunderbolt: Add support for Intel Maple Ridge single port controller + - efi: x86: Wipe setup_data on pure EFI boot + - efi: libstub: check Shim mode using MokSBStateRT + - wifi: mt76: fix reading current per-tid starting sequence number for + aggregation + - gpio: mockup: fix NULL pointer dereference when removing debugfs + - gpio: mockup: Fix potential resource leakage when register a chip + - gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully + - riscv: fix a nasty sigreturn bug... + - riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning + - drm/i915/gem: Flush contexts on driver release + - drm/i915/gem: Really move i915_gem_context.link under ref protection + - xen/xenbus: fix xenbus_setup_ring() + - kasan: call kasan_malloc() from __kmalloc_*track_caller() + - can: flexcan: flexcan_mailbox_read() fix return value for drop = true + - net: mana: Add rmb after checking owner bits + - mm/slub: fix to return errno if kmalloc() fails + - mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context. + - KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 + - KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES + - KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled + - perf/arm-cmn: Add more bits to child node address offset field + - arm64: topology: fix possible overflow in amu_fie_setup() + - vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment + - batman-adv: Fix hang up with small MTU hard-interface + - firmware: arm_scmi: Harden accesses to the reset domains + - firmware: arm_scmi: Fix the asynchronous reset requests + - arm64: dts: rockchip: Lower sd speed on quartz64-b + - arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob + - arm64: dts: rockchip: Fix typo in lisense text for PX30.Core + - drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks + - arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo + - arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz + - arm64: dts: imx8mn: remove GPU power domain reset + - arm64: dts: imx8ulp: add #reset-cells for pcc + - dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() + - arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a + - arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10 + - arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma + - arm64: dts: rockchip: Remove 'enable-active-low' from rk3566-quartz64-a + - arm64: dts: imx8mm-verdin: extend pmic voltages + - netfilter: nf_conntrack_sip: fix ct_sip_walk_headers + - netfilter: nf_conntrack_irc: Tighten matching on DCC message + - netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() + - ice: Don't double unplug aux on peer initiated reset + - ice: Fix crash by keep old cfg when update TCs more than queues + - iavf: Fix cached head and tail value for iavf_get_tx_pending + - ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header + - net: core: fix flow symmetric hash + - wifi: iwlwifi: Mark IWLMEI as broken + - [Config] updateconfigs for IWLMEI + - arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header + - drm/mediatek: Fix wrong dither settings + - arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity + - arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port + - ARM: dts: lan966x: Fix the interrupt number for internal PHYs + - net: phy: aquantia: wait for the suspend/resume operations to finish + - arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation + - scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() + - scsi: mpt3sas: Fix return value check of dma_get_required_mask() + - net: bonding: Share lacpdu_mcast_addr definition + - net: bonding: Unsync device addresses on ndo_stop + - net: team: Unsync device addresses on ndo_stop + - drm/panel: simple: Fix innolux_g121i1_l01 bus_format + - mm/slab_common: fix possible double free of kmem_cache + - MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko + - MIPS: Loongson32: Fix PHY-mode being left unspecified + - um: fix default console kernel parameter + - iavf: Fix bad page state + - mlxbf_gige: clear MDIO gateway lock after read + - i40e: Fix set max_tx_rate when it is lower than 1 Mbps + - netdevsim: Fix hwstats debugfs file permissions + - sfc: fix TX channel offset when using legacy interrupts + - sfc: fix null pointer dereference in efx_hard_start_xmit + - bnxt_en: fix flags to check for supported fw version + - gve: Fix GFP flags when allocing pages + - drm/hisilicon: Add depends on MMU + - of: mdio: Add of_node_put() when breaking out of for_each_xx + - net: ipa: properly limit modem routing table use + - sfc/siena: fix TX channel offset when using legacy interrupts + - sfc/siena: fix null pointer dereference in efx_hard_start_xmit + - wireguard: ratelimiter: disable timings test by default + - wireguard: netlink: avoid variable-sized memcpy on sockaddr + - net: enetc: move enetc_set_psfp() out of the common enetc_set_features() + - net: enetc: deny offload of tc-based TSN features on VF interfaces + - ipv6: Fix crash when IPv6 is administratively disabled + - net/sched: taprio: avoid disabling offload when it was never enabled + - net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child + qdiscs + - ice: config netdev tc before setting queues number + - ice: Fix interface being down after reset with link-down-on-close flag on + - netfilter: nf_tables: fix nft_counters_enabled underflow at + nf_tables_addchain() + - netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain() + - netfilter: ebtables: fix memory leak when blob is malformed + - netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed + - net: ravb: Fix PHY state warning splat during system resume + - net: sh_eth: Fix PHY state warning splat during system resume + - gpio: tqmx86: fix uninitialized variable girq + - can: gs_usb: gs_can_open(): fix race dev->can.state condition + - perf stat: Fix BPF program section name + - perf stat: Fix cpu map index in bperf cgroup code + - perf jit: Include program header in ELF files + - perf kcore_copy: Do not check /proc/modules is unchanged + - perf tools: Honor namespace when synthesizing build-ids + - drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() + - ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient + - net/smc: Stop the CLC flow if no link to map buffers on + - net: phy: micrel: fix shared interrupt on LAN8814 + - bonding: fix NULL deref in bond_rr_gen_slave_id + - net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD + - net: sched: fix possible refcount leak in tc_new_tfilter() + - bnxt: prevent skb UAF after handing over to PTP worker + - selftests: forwarding: add shebang for sch_red.sh + - io_uring: ensure that cached task references are always put on exit + - serial: fsl_lpuart: Reset prior to registration + - serial: Create uart_xmit_advance() + - serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting + - serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting + - cgroup: cgroup_get_from_id() must check the looked-up kn is a directory + - phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support + - s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup + - blk-mq: fix error handling in __blk_mq_alloc_disk + - block: call blk_mq_exit_queue from disk_release for never added disks + - block: Do not call blk_put_queue() if gendisk allocation fails + - Drivers: hv: Never allocate anything besides framebuffer from framebuffer + memory region + - drm/gma500: Fix BUG: sleeping function called from invalid context errors + - drm/gma500: Fix WARN_ON(lock->magic != lock) error + - drm/gma500: Fix (vblank) IRQs not working after suspend/resume + - gpio: ixp4xx: Make irqchip immutable + - drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid + cards + - drm/amdgpu: change the alignment size of TMR BO to 1M + - drm/amdgpu: add HDP remap functionality to nbio 7.7 + - drm/amdgpu: Skip reset error status for psp v13_0_0 + - drm/amd/display: Limit user regamma to a valid value + - drm/amd/display: Reduce number of arguments of dml31's + CalculateWatermarksAndDRAMSpeedChangeSupport() + - drm/amd/display: Reduce number of arguments of dml31's + CalculateFlipSchedule() + - drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage + - drm/rockchip: Fix return type of cdn_dp_connector_mode_valid + - gpio: mt7621: Make the irqchip immutable + - pmem: fix a name collision + - fsdax: Fix infinite loop in dax_iomap_rw() + - workqueue: don't skip lockdep work dependency in cancel_work_sync() + - i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible + - i2c: mlxbf: incorrect base address passed during io write + - i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction() + - i2c: mlxbf: Fix frequency calculation + - i2c: mux: harden i2c_mux_alloc() against integer overflows + - drm/amdgpu: don't register a dirty callback for non-atomic + - certs: make system keyring depend on built-in x509 parser + - Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT + - Makefile.debug: re-enable debug info for .S files + - devdax: Fix soft-reservation memory description + - ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 + - ext4: limit the number of retries after discarding preallocations blocks + - ext4: make mballoc try target group first even with mb_optimize_scan + - ext4: avoid unnecessary spreading of allocations among groups + - ext4: use locality group preallocation for small closed files + - ext4: use buckets for cr 1 block scan instead of rbtree + - Revert "block: freeze the queue earlier in del_gendisk" + - ext4: fixup possible uninitialized variable access in + ext4_mb_choose_next_group_cr1() + - ext4: make directory inode spreading reflect flexbg size + - Linux 5.19.12 + + * Kinetic update: v5.19.11 upstream stable release (LP: #1994070) + - of: fdt: fix off-by-one error in unflatten_dt_nodes() + - pinctrl: qcom: sc8180x: Fix gpio_wakeirq_map + - pinctrl: qcom: sc8180x: Fix wrong pin numbers + - pinctrl: rockchip: Enhance support for IRQ_TYPE_EDGE_BOTH + - pinctrl: sunxi: Fix name for A100 R_PIO + - SUNRPC: Fix call completion races with call_decode() + - NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 + - gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx + - NFSv4.2: Update mode bits after ALLOCATE and DEALLOCATE + - Revert "SUNRPC: Remove unreachable error condition" + - drm/panel-edp: Fix delays for Innolux N116BCA-EA1 + - drm/meson: Correct OSD1 global alpha value + - drm/meson: Fix OSD1 RGB to YCbCr coefficient + - drm/rockchip: vop2: Fix eDP/HDMI sync polarities + - drm/i915/vdsc: Set VDSC PIC_HEIGHT before using for DP DSC + - drm/i915/guc: Don't update engine busyness stats too frequently + - drm/i915/guc: Cancel GuC engine busyness worker synchronously + - block: blk_queue_enter() / __bio_queue_enter() must return -EAGAIN for + nowait + - parisc: ccio-dma: Add missing iounmap in error path in ccio_probe() + - of/device: Fix up of_dma_configure_id() stub + - io_uring/msg_ring: check file type before putting + - cifs: revalidate mapping when doing direct writes + - cifs: don't send down the destination address to sendmsg for a SOCK_STREAM + - cifs: always initialize struct msghdr smb_msg completely + - blk-lib: fix blkdev_issue_secure_erase + - parisc: Allow CONFIG_64BIT with ARCH=parisc + - tools/include/uapi: Fix for parisc and xtensa + - drm/i915/gt: Fix perf limit reasons bit positions + - drm/i915: Set correct domains values at _i915_vma_move_to_active + - drm/amdgpu: make sure to init common IP before gmc + - drm/amdgpu: Don't enable LTR if not supported + - drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega + - drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega + - net: Find dst with sk's xfrm policy not ctl_sk + - dt-bindings: apple,aic: Fix required item "apple,fiq-index" in affinity + description + - cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all() + - ALSA: hda/sigmatel: Keep power up while beep is enabled + - ALSA: hda/sigmatel: Fix unused variable warning for beep power change + - Linux 5.19.11 + + * Kinetic update: v5.19.10 upstream stable release (LP: #1994069) + - iommu/vt-d: Fix kdump kernels boot failure with scalable mode + - net/mlx5: Introduce ifc bits for using software vhca id + - net/mlx5: Use software VHCA id when it's supported + - RDMA/mlx5: Rely on RoCE fw cap instead of devlink when setting profile + - RDMA/mlx5: Add a umr recovery flow + - RDMA/mlx5: Fix UMR cleanup on error flow of driver init + - ACPI: resource: skip IRQ override on AMD Zen platforms + - Input: goodix - add support for GT1158 + - platform/surface: aggregator_registry: Add support for Surface Laptop Go 2 + - drm/msm/rd: Fix FIFO-full deadlock + - peci: cpu: Fix use-after-free in adev_release() + - kvm: x86: mmu: Always flush TLBs when enabling dirty logging + - dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins + - HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo + - hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message + - Bluetooth: MGMT: Fix Get Device Flags + - tg3: Disable tg3 device on system reboot to avoid triggering AER + - r8152: add PID for the Lenovo OneLink+ Dock + - gpio: mockup: remove gpio debugfs when remove device + - ieee802154: cc2520: add rc code in cc2520_tx() + - Input: iforce - add support for Boeder Force Feedback Wheel + - drm/amdgpu: disable FRU access on special SIENNA CICHLID card + - drm/amd/pm: use vbios carried pptable for all SMU13.0.7 SKUs + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM610 + - nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() + - drm/amd/amdgpu: skip ucode loading if ucode_size == 0 + - net: dsa: hellcreek: Print warning only once + - perf/arm_pmu_platform: fix tests for platform_get_irq() failure + - platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes + - usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS + - platform/x86: asus-wmi: Increase FAN_CURVE_BUF_LEN to 32 + - LoongArch: Fix section mismatch due to acpi_os_ioremap() + - LoongArch: Fix arch_remove_memory() undefined build error + - gpio: 104-dio-48e: Make irq_chip immutable + - gpio: 104-idio-16: Make irq_chip immutable + - RDMA/irdma: Use s/g array in post send only when its valid + - Input: goodix - add compatible string for GT1158 + - Linux 5.19.10 + + * Kinetic update: v5.19.9 upstream stable release (LP: #1994068) + - efi: libstub: Disable struct randomization + - efi: capsule-loader: Fix use-after-free in efi_capsule_write + - wifi: mt76: mt7921e: fix crash in chip reset fail + - wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in + il4965_rs_fill_link_cmd() + - fs: only do a memory barrier for the first set_buffer_uptodate() + - soc: fsl: select FSL_GUTS driver for DPIO + - Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()" + - scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX + - scsi: core: Allow the ALUA transitioning state enough time + - scsi: megaraid_sas: Fix double kfree() + - drm/gem: Fix GEM handle release errors + - drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to + psp_hw_fini + - drm/amdgpu: fix hive reference leak when adding xgmi device + - drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup. + - drm/amdgpu: Remove the additional kfd pre reset call for sriov + - drm/radeon: add a force flush to delay work when radeon + - scsi: ufs: core: Reduce the power mode change timeout + - Revert "parisc: Show error if wrong 32/64-bit compiler is being used" + - parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources() + - parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines + - [Config] updateconfigs for ARM64_ERRATUM_2457168 + - arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly + - netfilter: conntrack: work around exceeded receive window + - thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR + - cpufreq: check only freq_table in __resolve_freq() + - net/core/skbuff: Check the return value of skb_copy_bits() + - md: Flush workqueue md_rdev_misc_wq in md_alloc() + - fbdev: omapfb: Fix tests for platform_get_irq() failure + - fbdev: fbcon: Destroy mutex on freeing struct fb_info + - fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init() + - x86/sev: Mark snp_abort() noreturn + - drm/amdgpu: add sdma instance check for gfx11 CGCG + - drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly + - ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC + - ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc() + - ALSA: hda: Once again fix regression of page allocations with IOMMU + - ALSA: aloop: Fix random zeros in capture data when using jiffies timer + - ALSA: usb-audio: Clear fixed clock rate at closing EP + - ALSA: usb-audio: Fix an out-of-bounds bug in + __snd_usb_parse_audio_interface() + - tracefs: Only clobber mode/uid/gid on remount if asked + - tracing: hold caller_addr to hardirq_{enable,disable}_ip + - tracing: Fix to check event_mutex is held while accessing trigger list + - btrfs: zoned: set pseudo max append zone limit in zone emulation mode + - btrfs: zoned: fix API misuse of zone finish waiting + - vfio/type1: Unpin zero pages + - kprobes: Prohibit probes in gate area + - perf: RISC-V: fix access beyond allocated array + - debugfs: add debugfs_lookup_and_remove() + - sched/debug: fix dentry leak in update_sched_domain_debugfs + - drm/amd/display: fix memory leak when using debugfs_lookup() + - driver core: fix driver_set_override() issue with empty strings + - nvmet: fix a use-after-free + - drm/i915/bios: Copy the whole MIPI sequence block + - drm/i915/slpc: Let's fix the PCODE min freq table setup for SLPC + - scsi: mpt3sas: Fix use-after-free warning + - scsi: lpfc: Add missing destroy_workqueue() in error path + - cgroup: Elide write-locking threadgroup_rwsem when updating csses on an + empty subtree + - cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock + - cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl() + - smb3: missing inode locks in zero range + - spi: bitbang: Fix lsb-first Rx + - ASoC: cs42l42: Only report button state if there was a button interrupt + - Revert "soc: imx: imx8m-blk-ctrl: set power device name" + - arm64: dts: imx8mm-verdin: update CAN clock to 40MHz + - arm64: dts: imx8mm-verdin: use level interrupt for mcp251xfd + - ASoC: qcom: sm8250: add missing module owner + - regmap: spi: Reserve space for register address/padding + - arm64: dts: imx8mp-venice-gw74xx: fix sai2 pin settings + - arm64: dts: imx8mq-tqma8mq: Remove superfluous interrupt-names + - RDMA/rtrs-clt: Use the right sg_cnt after ib_dma_map_sg + - RDMA/rtrs-srv: Pass the correct number of entries for dma mapped SGL + - ARM: dts: imx6qdl-vicut1.dtsi: Fix node name backlight_led + - ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node + - ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible + - arm64: dts: ls1028a-qds-65bb: don't use in-band autoneg for 2500base-x + - soc: imx: gpcv2: Assert reset before ungating clock + - arm64: dts: verdin-imx8mm: add otg2 pd to usbphy + - arm64: dts: imx8mm-venice-gw7901: fix port/phy validation + - arm64: dts: freescale: verdin-imx8mm: fix atmel_mxt_ts reset polarity + - arm64: dts: freescale: verdin-imx8mp: fix atmel_mxt_ts reset polarity + - regulator: core: Clean up on enable failure + - ASoC: SOF: Kconfig: Make IPC_FLOOD_TEST depend on SND_SOC_SOF + - ASoC: SOF: Kconfig: Make IPC_MESSAGE_INJECTOR depend on SND_SOC_SOF + - tee: fix compiler warning in tee_shm_register() + - RDMA/irdma: Fix drain SQ hang with no completion + - arm64: dts: renesas: r8a779g0: Fix HSCIF0 interrupt number + - RDMA/cma: Fix arguments order in net device validation + - soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs + - RDMA/hns: Fix supported page size + - RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift + - RDMA/hns: Remove the num_qpc_timer variable + - wifi: wilc1000: fix DMA on stack objects + - ARM: at91: pm: fix self-refresh for sama7g5 + - ARM: at91: pm: fix DDR recalibration when resuming from backup and self- + refresh + - ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges + - ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges + - ARM: dts: at91: sama7g5ek: specify proper regulator output ranges + - ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time + - ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time + - netfilter: br_netfilter: Drop dst references before setting. + - netfilter: nf_tables: clean up hook list when offload flags check fails + - riscv: dts: microchip: use an mpfs specific l2 compatible + - netfilter: nf_conntrack_irc: Fix forged IP logic + - RDMA/srp: Set scmnd->result only when scmnd is not NULL + - ALSA: usb-audio: Inform the delayed registration more properly + - ALSA: usb-audio: Register card again for iface over delayed_register option + - rxrpc: Fix ICMP/ICMP6 error handling + - rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2() + - afs: Use the operation issue time instead of the reply time for callbacks + - kunit: fix assert_type for comparison macros + - Revert "net: phy: meson-gxl: improve link-up behavior" + - sch_sfb: Don't assume the skb is still around after enqueueing to child + - tipc: fix shift wrapping bug in map_get() + - net: introduce __skb_fill_page_desc_noacc + - tcp: TX zerocopy should not sense pfmemalloc status + - ice: Fix DMA mappings leak + - ice: use bitmap_free instead of devm_kfree + - i40e: Fix kernel crash during module removal + - iavf: Detach device during reset task + - xen-netback: only remove 'hotplug-status' when the vif is actually destroyed + - block: don't add partitions if GD_SUPPRESS_PART_SCAN is set + - RDMA/siw: Pass a pointer to virt_to_page() + - bonding: use unspecified address if no available link local address + - bonding: add all node mcast address when slave up + - ipv6: sr: fix out-of-bounds read when setting HMAC data. + - IB/core: Fix a nested dead lock as part of ODP flow + - RDMA/mlx5: Set local port to one when accessing counters + - btrfs: zoned: fix mounting with conventional zones + - erofs: fix error return code in erofs_fscache_{meta_,}read_folio + - erofs: fix pcluster use-after-free on UP platforms + - nvme-tcp: fix UAF when detecting digest errors + - nvme-tcp: fix regression that causes sporadic requests to time out + - tcp: fix early ETIMEDOUT after spurious non-SACK RTO + - btrfs: fix the max chunk size and stripe length calculation + - nvmet: fix mar and mor off-by-one errors + - RDMA/irdma: Report the correct max cqes from query device + - RDMA/irdma: Return error on MR deregister CQP failure + - RDMA/irdma: Return correct WC error for bind operation failure + - RDMA/irdma: Report RNR NAK generation in device caps + - net: dsa: felix: disable cut-through forwarding for frames oversized for tc- + taprio + - net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in + vsc9959_sched_speed_set + - net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear + - net: ethernet: mtk_eth_soc: check max allowed hash in mtk_ppe_check_skb + - net/smc: Fix possible access to freed memory in link clear + - io_uring: recycle kbuf recycle on tw requeue + - net: phy: lan87xx: change interrupt src of link_up to comm_ready + - sch_sfb: Also store skb len before calling child enqueue + - libperf evlist: Fix per-thread mmaps for multi-threaded targets + - perf dlfilter dlfilter-show-cycles: Fix types for print format + - perf script: Fix Cannot print 'iregs' field for hybrid systems + - perf record: Fix synthesis failure warnings + - hwmon: (tps23861) fix byte order in resistance register + - ASoC: mchp-spdiftx: remove references to mchp_i2s_caps + - ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion + - MIPS: loongson32: ls1c: Fix hang during startup + - kbuild: disable header exports for UML in a straightforward way + - i40e: Refactor tc mqprio checks + - i40e: Fix ADQ rate limiting for PF + - net: bonding: replace dev_trans_start() with the jiffies of the last ARP/NS + - bonding: accept unsolicited NA message + - swiotlb: avoid potential left shift overflow + - iommu/amd: use full 64-bit value in build_completion_wait() + - s390/boot: fix absolute zero lowcore corruption on boot + - time64.h: consolidate uses of PSEC_PER_NSEC + - net: dsa: felix: tc-taprio intervals smaller than MTU should send at least + one packet + - hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined + - hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used + sensors + - hwmon: (mr75203) fix voltage equation for negative source input + - hwmon: (mr75203) fix multi-channel voltage reading + - hwmon: (mr75203) enable polling for all VM channels + - perf evlist: Always use arch_evlist__add_default_attrs() + - perf stat: Fix L2 Topdown metrics disappear for raw events + - Revert "arm64: kasan: Revert "arm64: mte: reset the page tag in + page->flags"" + - hwmon: (asus-ec-sensors) add support for Strix Z690-a D4 + - hwmon: (asus-ec-sensors) add support for Maximus XI Hero + - hwmon: (asus-ec-sensors) add missing sensors for X570-I GAMING + - hwmon: (asus-ec-sensors) add definitions for ROG ZENITH II EXTREME + - hwmon: (asus-ec-sensors) autoload module via DMI data + - arm64/bti: Disable in kernel BTI when cross section thunks are broken + - [Config] updateconfigs for ARM64_BTI_KERNEL + - iommu/vt-d: Correctly calculate sagaw value of IOMMU + - iommu/virtio: Fix interaction with VFIO + - iommu: Fix false ownership failure on AMD systems with PASID activated + - drm/amd/display: Add SMU logging code + - drm/amd/display: Removing assert statements for Linux + - Linux 5.19.9 + + * Kinetic update: v5.19.8 upstream stable release (LP: #1994061) + - drm/msm/dp: make eDP panel as the first connected connector + - drm/msm/dsi: fix the inconsistent indenting + - drm/msm/dpu: populate wb or intf before reset_intf_cfg + - drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4 + - drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg + - drm/msm/dsi: Fix number of regulators for SDM660 + - platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask + - platform/x86: x86-android-tablets: Fix broken touchscreen on Chuwi Hi8 with + Windows BIOS + - xsk: Fix corrupted packets for XDP_SHARED_UMEM + - drm/msm/gpu: Drop qos request if devm_devfreq_add_device() fails + - peci: aspeed: fix error check return value of platform_get_irq() + - iio: adc: mcp3911: make use of the sign bit + - skmsg: Fix wrong last sg check in sk_msg_recvmsg() + - bpf: Restrict bpf_sys_bpf to CAP_PERFMON + - ip_tunnel: Respect tunnel key's "flow_flags" in IP tunnels + - bpf, cgroup: Fix kernel BUG in purge_effective_progs + - drm/i915/gvt: Fix Comet Lake + - ieee802154/adf7242: defer destroy_workqueue call + - bpf: Fix a data-race around bpf_jit_limit. + - drm/i915/ttm: fix CCS handling + - drm/i915/display: avoid warnings when registering dual panel backlight + - ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array + - wifi: cfg80211: debugfs: fix return type in ht40allow_map_read() + - xhci: Fix null pointer dereference in remove if xHC has only one roothub + - Revert "xhci: turn off port power in shutdown" + - bpf: Allow helpers to accept pointers with a fixed size + - bpf: Tidy up verifier check_func_arg() + - bpf: Do mark_chain_precision for ARG_CONST_ALLOC_SIZE_OR_ZERO + - Bluetooth: hci_event: Fix vendor (unknown) opcode status handling + - Bluetooth: hci_sync: Fix suspend performance regression + - Bluetooth: hci_event: Fix checking conn for le_conn_complete_evt + - Bluetooth: hci_sync: hold hdev->lock when cleanup hci_conn + - net: sparx5: fix handling uneven length packets in manual extraction + - net: smsc911x: Stop and start PHY during suspend and resume + - openvswitch: fix memory leak at failed datapath creation + - nfp: flower: fix ingress police using matchall filter + - net: dsa: xrs700x: Use irqsave variant for u64 stats update + - net: sched: tbf: don't call qdisc_put() while holding tree lock + - net/sched: fix netdevice reference leaks in attach_default_qdiscs() + - net: phy: micrel: Make the GPIO to be non-exclusive + - net: lan966x: improve error handle in lan966x_fdma_rx_get_frame() + - ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler + - cachefiles: fix error return code in cachefiles_ondemand_copen() + - cachefiles: make on-demand request distribution fairer + - mlxbf_gige: compute MDIO period based on i1clk + - kcm: fix strp_init() order and cleanup + - sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb + - tcp: annotate data-race around challenge_timestamp + - Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb" + - net/smc: Remove redundant refcount increase + - soundwire: qcom: fix device status array range + - mm/slab_common: Deleting kobject in kmem_cache_destroy() without holding + slab_mutex/cpu_hotplug_lock + - platform/mellanox: mlxreg-lc: Fix coverity warning + - platform/mellanox: mlxreg-lc: Fix locking issue + - serial: fsl_lpuart: RS485 RTS polariy is inverse + - tty: serial: atmel: Preserve previous USART mode if RS485 disabled + - staging: rtl8712: fix use after free bugs + - staging: r8188eu: Add Rosewill USB-N150 Nano to device tables + - staging: r8188eu: add firmware dependency + - Revert "powerpc: Remove unused FW_FEATURE_NATIVE references" + - powerpc: align syscall table for ppc32 + - powerpc/rtas: Fix RTAS MSR[HV] handling for Cell + - vt: Clear selection before changing the font + - musb: fix USB_MUSB_TUSB6010 dependency + - tty: serial: lpuart: disable flow control while waiting for the transmit + engine to complete + - Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag + - iio: light: cm3605: Fix an error handling path in cm3605_probe() + - iio: ad7292: Prevent regulator double disable + - iio: adc: mcp3911: correct "microchip,device-addr" property + - iio: adc: mcp3911: use correct formula for AD conversion + - misc: fastrpc: fix memory corruption on probe + - misc: fastrpc: fix memory corruption on open + - firmware_loader: Fix use-after-free during unregister + - firmware_loader: Fix memory leak in firmware upload + - USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id + - landlock: Fix file reparenting without explicit LANDLOCK_ACCESS_FS_REFER + - mmc: core: Fix UHS-I SD 1.8V workaround branch + - mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure + - binder: fix UAF of ref->proc caused by race condition + - binder: fix alloc->vma_vm_mm null-ptr dereference + - cifs: fix small mempool leak in SMB2_negotiate() + - KVM: VMX: Heed the 'msr' argument in msr_write_intercepted() + - riscv: kvm: move extern sbi_ext declarations to a header + - clk: ti: Fix missing of_node_get() ti_find_clock_provider() + - drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported" + - clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops + - Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops" + - clk: core: Fix runtime PM sequence in clk_core_unprepare() + - Input: rk805-pwrkey - fix module autoloading + - powerpc/papr_scm: Fix nvdimm event mappings + - clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate + - clk: bcm: rpi: Prevent out-of-bounds access + - clk: bcm: rpi: Add missing newline + - hwmon: (gpio-fan) Fix array out of bounds access + - gpio: pca953x: Add mutex_lock for regcache sync in PM + - gpio: realtek-otto: switch to 32-bit I/O + - KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES + - powerpc/papr_scm: Ensure rc is always initialized in papr_scm_pmu_register() + - xen/grants: prevent integer overflow in gnttab_dma_alloc_pages() + - mm: pagewalk: Fix race between unmap and page walker + - xen-blkback: Advertise feature-persistent as user requested + - xen-blkfront: Advertise feature-persistent as user requested + - xen-blkfront: Cache feature_persistent value before advertisement + - thunderbolt: Use the actual buffer in tb_async_error() + - thunderbolt: Check router generation before connecting xHCI + - usb: dwc3: pci: Add support for Intel Raptor Lake + - media: mceusb: Use new usb_control_msg_*() routines + - xhci: Add grace period after xHC start to prevent premature runtime suspend. + - usb: dwc3: disable USB core PHY management + - usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop + - usb: dwc3: fix PHY disable sequence + - USB: serial: ch341: fix lost character on LCR updates + - USB: serial: ch341: fix disabled rx timer on older devices + - USB: serial: cp210x: add Decagon UCA device id + - USB: serial: option: add support for OPPO R11 diag port + - USB: serial: option: add Quectel EM060K modem + - USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode + - Revert "usb: typec: ucsi: add a common function + ucsi_unregister_connectors()" + - usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles + - usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device + - usb: typec: tcpm: Return ENOTSUPP for power supply prop writes + - usb: dwc2: fix wrong order of phy_power_on and phy_init + - usb: cdns3: fix issue with rearming ISO OUT endpoint + - usb: cdns3: fix incorrect handling TRB_SMM flag for ISOC transfer + - USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020) + - usb-storage: Add ignore-residue quirk for NXP PN7462AU + - s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages + - s390: fix nospec table alignments + - USB: core: Prevent nested device-reset calls + - usb: xhci-mtk: relax TT periodic bandwidth allocation + - usb: xhci-mtk: fix bandwidth release issue + - usb: gadget: f_uac2: fix superspeed transfer + - usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS + - USB: gadget: Fix obscure lockdep violation for udc_mutex + - dma-buf/dma-resv: check if the new fence is really later + - arm64/kexec: Fix missing extra range for crashkres_low. + - driver core: Don't probe devices after bus_type.match() probe deferral + - wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected + - wifi: mac80211: Fix UAF in ieee80211_scan_rx() + - ip: fix triggering of 'icmp redirect' + - net: Use u64_stats_fetch_begin_irq() for stats fetch. + - net: mac802154: Fix a condition in the receive path + - ALSA: memalloc: Revive x86-specific WC page allocations again + - ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298 + - ALSA: seq: oss: Fix data-race for max_midi_devs access + - ALSA: seq: Fix data-race at module auto-loading + - drm/i915/backlight: Disable pps power hook for aux based backlight + - drm/i915/guc: clear stalled request after a reset + - drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk + - drm/i915: Skip wm/ddb readout for disabled pipes + - tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf() + - tty: n_gsm: initialize more members at gsm_alloc_mux() + - tty: n_gsm: replace kicktimer with delayed_work + - tty: n_gsm: avoid call of sleeping functions from atomic context + - Linux 5.19.8 + + * md: Replace snprintf with scnprintf (LP: #1993315) + - md: Replace snprintf with scnprintf + + * ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel + systems (LP: #1990985) + - ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel + systems + + * iavf: SR-IOV VFs error with no traffic flow when MTU greater than 1500 + (LP: #1983656) + - iavf: Fix set max MTU size with port VLAN and jumbo frames + - i40e: Fix VF set max MTU size + + * Fix resume on AMD platforms when TBT monitor is plugged (LP: #1990920) + - drm/amd/display: Detect dpcd_rev when hotplug mst monitor + - drm/amd/display: Release remote dc_sink under mst scenario + + * [SRU][J/OEM-5.17][PATCH 0/1] Fix oled brightness set above frame-average + luminance (LP: #1978986) + - drm: New function to get luminance range based on static hdr metadata + - drm/amdgpu_dm: Rely on split out luminance calculation function + - drm/i915: Use luminance range calculated during edid parsing + + * Update Broadcom Emulex FC HBA lpfc driver to 14.2.0.5 for Ubuntu 22.04 + (LP: #1988711) + - scsi: lpfc: Fix uninitialized cqe field in lpfc_nvme_cancel_iocb() + - scsi: lpfc: Set PU field when providing D_ID in XMIT_ELS_RSP64_CX iocb + - scsi: lpfc: Fix lost NVMe paths during LIF bounce stress test + - scsi: lpfc: Refactor lpfc_nvmet_prep_abort_wqe() into + lpfc_sli_prep_abort_xri() + - scsi: lpfc: Update lpfc version to 14.2.0.5 + - scsi: lpfc: Copyright updates for 14.2.0.5 patches + + * input/keyboard: the keyboard on some Asus laptops can't work (LP: #1992266) + - ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA + - ACPI: resource: Add ASUS model S5402ZA to quirks + + * pcieport 0000:00:1b.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), + type=Transaction Layer, (Requester ID) (LP: #1988797) + - PCI/PTM: Cache PTM Capability offset + - PCI/PTM: Add pci_upstream_ptm() helper + - PCI/PTM: Separate configuration and enable + - PCI/PTM: Add pci_suspend_ptm() and pci_resume_ptm() + - PCI/PTM: Move pci_ptm_info() body into its only caller + - PCI/PTM: Preserve RsvdP bits in PTM Control register + - PCI/PTM: Reorder functions in logical order + - PCI/PTM: Consolidate PTM interface declarations + - PCI/PM: Always disable PTM for all devices during suspend + - PCI/PM: Simplify pci_pm_suspend_noirq() + + -- Stefan Bader Thu, 24 Nov 2022 17:16:15 +0100 + +linux (5.19.0-26.27) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-26.27 -proposed tracker (LP: #1997434) + + * CVE-2022-3566 + - tcp: Fix data races around icsk->icsk_af_ops. + + * CVE-2022-3567 + - ipv6: Fix data races around sk->sk_prot. + + * CVE-2022-3621 + - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level() + + * CVE-2022-3565 + - mISDN: fix use-after-free bugs in l1oip timer handlers + + * CVE-2022-3594 + - r8152: Rate limit overflow messages + + * CVE-2022-3564 + - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu + + * CVE-2022-3524 + - tcp/udp: Fix memory leak in ipv6_renew_options(). + + * CVE-2022-43945 + - SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation + - SUNRPC: Fix svcxdr_init_encode's buflen calculation + - NFSD: Protect against send buffer overflow in NFSv2 READDIR + - NFSD: Protect against send buffer overflow in NFSv3 READDIR + - NFSD: Protect against send buffer overflow in NFSv2 READ + - NFSD: Protect against send buffer overflow in NFSv3 READ + - NFSD: Remove "inline" directives on op_rsize_bop helpers + - NFSD: Cap rsize_bop result based on send buffer size + + -- Thadeu Lima de Souza Cascardo Wed, 23 Nov 2022 17:21:27 -0300 + +linux (5.19.0-23.24) kinetic; urgency=medium + + * CVE-2022-2602 + - SAUCE: io_uring/af_unix: defer registered files gc to io_uring release + - SAUCE: io_uring/af_unix: fix memleak during unix GC + + * CVE-2022-41674 + - SAUCE: wifi: cfg80211: fix u8 overflow in + cfg80211_update_notlisted_nontrans() + - SAUCE: wifi: cfg80211/mac80211: reject bad MBSSID elements + - SAUCE: wifi: cfg80211: ensure length byte is present before access + - SAUCE: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate + - SAUCE: wifi: cfg80211: update hidden BSSes to avoid WARN_ON + + * CVE-2022-42722 + - SAUCE: wifi: mac80211: fix crash in beacon protection for P2P-device + + * CVE-2022-42721 + - SAUCE: wifi: cfg80211: avoid nontransmitted BSS list corruption + + * CVE-2022-42720 + - SAUCE: wifi: cfg80211: fix BSS refcounting bugs + + * CVE-2022-42719 + - SAUCE: wifi: mac80211: fix MBSSID parsing use-after-free + + -- Thadeu Lima de Souza Cascardo Fri, 14 Oct 2022 09:58:08 -0300 + +linux (5.19.0-21.21) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-21.21 -proposed tracker (LP: #1992639) + + * cannot change mount namespace (LP: #1991691) + - SAUCE: apparmor: Fix getaatr mediation causing snap failures + + * Kernel regresses openjdk on riscv64 (LP: #1992484) + - SAUCE: Revert "riscv: mmap with PROT_WRITE but no PROT_READ is invalid" + + -- Andrea Righi Wed, 12 Oct 2022 19:53:36 +0200 + +linux (5.19.0-20.20) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-20.20 -proposed tracker (LP: #1992408) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Kinetic kernels 5.19.0-18/19-generic won't boot on Intel 11th/12th gen + (LP: #1991704) + - drm/i915: fix null pointer dereference + + * rcu_sched detected stalls on CPUs/tasks (LP: #1967130) + - [Config] Disable VMAP_STACK on riscv64 + + * Disable sv57 as the userspace is not ready (LP: #1991790) + - SAUCE: riscv: mm: Force disable sv57 + + * earlyconsole prints question marks on 5.19.0-1002-generic (LP: #1988984) + - [Config] Set CONFIG_PWM_SIFIVE=m for riscv64 + + * RCU stalls (LP: #1991951) + - [Config] Harmonize RCU_CPU_STALL_TIMEOUT + + * backport dkms fixes to build modules correctly for hwe-5.19+ kernels with + custom compiler (LP: #1991664) + - [Packaging] use versioned gcc-12 + - [Packaging] Update configs with versioned compiler version + + * FTBFS on kinetic (LP: #1990964) + - SAUCE: uapi: Fixup strace compile error + + * CVE-2022-40768 + - scsi: stex: Properly zero out the passthrough command structure + + * [22.10 FEAT] zKVM: Crypto Passthrough Hotplug - kernel part (LP: #1852741) + - s390/vfio-ap: use new AP bus interface to search for queue devices + - s390/vfio-ap: move probe and remove callbacks to vfio_ap_ops.c + - s390/vfio-ap: manage link between queue struct and matrix mdev + - s390/vfio-ap: introduce shadow APCB + - s390/vfio-ap: refresh guest's APCB by filtering AP resources assigned to + mdev + - s390/vfio-ap: allow assignment of unavailable AP queues to mdev device + - s390/vfio-ap: rename matrix_dev->lock mutex to matrix_dev->mdevs_lock + - s390/vfio-ap: introduce new mutex to control access to the KVM pointer + - s390/vfio-ap: use proper locking order when setting/clearing KVM pointer + - s390/vfio-ap: prepare for dynamic update of guest's APCB on assign/unassign + - s390/vfio-ap: prepare for dynamic update of guest's APCB on queue + probe/remove + - s390/vfio-ap: allow hot plug/unplug of AP devices when assigned/unassigned + - s390/vfio-ap: hot plug/unplug of AP devices when probed/removed + - s390/vfio-ap: reset queues after adapter/domain unassignment + - s390/vfio-ap: implement in-use callback for vfio_ap driver + - s390/vfio-ap: sysfs attribute to display the guest's matrix + - s390/vfio-ap: handle config changed and scan complete notification + - s390/vfio-ap: update docs to include dynamic config support + - s390/Docs: new doc describing lock usage by the vfio_ap device driver + - MAINTAINERS: pick up all vfio_ap docs for VFIO AP maintainers + + -- Andrea Righi Tue, 11 Oct 2022 09:50:23 +0200 + +linux (5.19.0-19.19) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-19.19 -proposed tracker (LP: #1990960) + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display + (using struct cred as input)""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk + parameter const""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + smk_netlbl_mls()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use + lsmblob""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to + kfree_sensitive()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check""" + - Revert "Revert "Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive + flag""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full + LSM context""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple + object LSM attributes""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline + function declration.""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Add new record for multiple + process LSM attributes""" + - Revert "Revert "Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a + lsmblob""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in + netlink netfilter""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_inode_getsecctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_secid_to_secctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context + releaser""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display""" + - Revert "Revert "Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to + use lsmblobs""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_cred_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_inode_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_task_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_ipc_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secid_to_secctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secctx_to_secid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: net: Prepare UDS for security module + stacking""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_kernel_act_as""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_audit_rule_match""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob + data structure.""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the + sock security""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from + SK_CTX() to aa_sock()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to + aa_unix_sk()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as + part of a secid to secctx""" + - Revert "Revert "Revert "apparmor: fix absroot causing audited secids to + begin with =""" + - Revert "Revert "Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating + locking non-fs, unix sockets""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: fix use after free in + sk_peer_label""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: af_unix mediation""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: patch to provide + compatibility with v2.x net rules""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash + string hex value""" + - SAUCE: upstream v6.0: apparmor: fix absroot causing audited secids to begin + with = + - SAUCE: upstream v6.0: apparmor: Fix kernel-doc + - SAUCE: upstream v6.0: lsm: Fix kernel-doc + - SAUCE: upstream v6.0: apparmor: Update help description of policy hash for + introspection + - SAUCE: upstream v6.0: apparmor: make export of raw binary profile to + userspace optional + - SAUCE: upstream v6.0: apparmor: Enable tuning of policy paranoid load for + embedded systems + - SAUCE: upstream v6.0: apparmor: don't create raw_sha1 symlink if sha1 + hashing is disabled + - SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol warnings in + policy_unpack_test.c + - SAUCE: upstream v6.0: security/apparmor: remove redundant ret variable + - SAUCE: upstream v6.0: apparmor: Use struct_size() helper in kmalloc() + - SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and match_mnt() + kernel-doc comment + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize' + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: test: Remove some casts which are no-longer + required + - SAUCE: upstream v6.0: apparmor: add a kernel label to use on kernel objects + - SAUCE: upstream v6.0: apparmor: Convert secid mapping to XArrays instead of + IDR + - SAUCE: upstream v6.0: apparmor: disable showing the mode as part of a secid + to secctx + - SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as static + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: allow label to carry debug flags + - SAUCE: upstream v6.0: apparmor: extend policydb permission set by making use + of the xbits + - SAUCE: upstream v6.0: apparmor: move ptrace mediation to more logical + task.{h,c} + - SAUCE: upstream v6.0: apparmor: correct config reference to intended one + - SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the new uring_cmd file + op + - SAUCE: upstream v6.0: selinux: implement the security_uring_cmd() LSM hook + - SAUCE: upstream v6.0: Smack: Provide read control for io_uring_cmd + - SAUCE: apparmor-next 6.1: apparmor: fix a memleak in multi_transaction_new() + - SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when removing a + namespace + - SAUCE: apparmor-next 6.1: apparmor: reserve mediation classes + - SAUCE: apparmor-next 6.1: apparmor: use zstd compression for profile data + - SAUCE: apparmor-next 6.1: apparmor: expose compression level limits in sysfs + - SAUCE: apparmor-next 6.1: apparmor: compute file permissions on profile load + - SAUCE: apparmor-next 6.1: apparmor: compute xmatch permissions on profile + load + - SAUCE: apparmor-next 6.1: apparmor: move fperm computation into + policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm computation + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use aa_perms structure + - SAUCE: apparmor-next 6.1: apparmor: compute policydb permission on profile + load + - SAUCE: apparmor-next 6.1: apparmor: combine file_rules and aa_policydb into + a single shared struct + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using the new shared + policydb struct + - SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to use accept as an + index + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: cleanup shared permission struct + - SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: preparse for state being more than just + an integer + - SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include v8 abi + - SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating locking non-fs + unix sockets + - SAUCE: apparmor-next 6.1: apparmor: extend policydb permission set by making + use of the xbits + - SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros into policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: extend xindex size + - SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards compatibility + to its own file + - SAUCE: apparmor-next 6.1: apparmor: extend permissions to support a label + and tag string + - SAUCE: apparmor-next 6.1: apparmor: add mediation class information to + auditing + - SAUCE: apparmor-next 6.1: apparmor: add user mode flag + - SAUCE: apparmor-next 6.1: apparmor: make transition table unpack generic so + it can be reused + - SAUCE: apparmor-next 6.1: apparmor: group dfa policydb unpacking + - SAUCE: apparmor-next 6.1: apparmor: make unpack_array return a trianary + value + - SAUCE: apparmor-next 6.1: apparmor: add the ability for policy to specify a + permission table + - SAUCE: apparmor-next 6.1: apparmor: verify permission table indexes + - SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes are accumulated + - SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm accumulation into + perms.h + - SAUCE: apparmor-next 6.1: apparmor: verify loaded permission bits masks + don't overlap + - SAUCE: apparmor-next 6.1: apparmor: refactor profile rules and attachments + - SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to be a list + - SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to match reserved + classes + - SAUCE: apparmor-next 6.1: apparmor: Fix regression in stacking due to label + flags + - SAUCE: apparmor-next 6.1: apparmor: Simplify obtain the newest label on a + cred + - SAUCE: apparmor-next 6.1: apparmor: make __aa_path_perm() static + - SAUCE: apparmor-next 6.1: apparmor: Fix doc comment for compute_fperms + - SAUCE: apparmor-next 6.1: apparmor: Remove unnecessary size check when + unpacking trans_table + - SAUCE: apparmor-next 6.1: apparmor: make sure the decompression ctx is + promperly initialized + - SAUCE: apparmor: add/use fns to print hash string hex value + - SAUCE: apparmor: patch to provide compatibility with v2.x net rules + - SAUCE: Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make + __aa_path_perm() static" + - SAUCE: apparmor: af_unix mediation + - SAUCE: fix shutdown unix socket owner conditional check + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: Add fine grained mediation of posix mqueues + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: lsm stacking v37: integrity: disassociate ima_filter_rule from + security_audit_rule + - SAUCE: lsm stacking v37: LSM: Infrastructure management of the sock security + - SAUCE: lsm stacking v37: LSM: Add the lsmblob data structure. + - SAUCE: lsm stacking v37: LSM: provide lsm name and id slot mappings + - SAUCE: lsm stacking v37: IMA: avoid label collisions with stacked LSMs + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_current_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context releaser + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a lsmblob + - SAUCE: lsm stacking v37: binder: Pass LSM identifier for confirmation + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx module selection + - SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in audit_names + - SAUCE: lsm stacking v37: Audit: Create audit_stamp structure + - SAUCE: lsm stacking v37: LSM: Add a function to report multiple LSMs + - SAUCE: lsm stacking v37: Audit: Allow multiple records in an audit_buffer + - SAUCE: lsm stacking v37: Audit: Add record for multiple task security + contexts + - SAUCE: lsm stacking v37: audit: multiple subject lsm values for netlabel + - SAUCE: lsm stacking v37: Audit: Add record for multiple object contexts + - SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in audit data + - SAUCE: lsm stacking v37: LSM: Removed scaffolding function lsmcontext_init + - SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full LSM context + - SAUCE: lsm stacking v37: AppArmor: Remove the exclusive flag + - SAUCE: security, lsm: Introduce security_create_user_ns() + - SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable + - SAUCE: selinux: Implement userns_create hook + - SAUCE: apparmor: add user namespace creation mediation + - [Config] update configs after apply new apparmor patch set + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) // + 5.19.0-17.17: kernel NULL pointer dereference, address: 0000000000000084 + (LP: #1990236) + - SAUCE: apparmor: fix oops in unix owner conditional setup + + * Miscellaneous Ubuntu changes + - [Config] make sure CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is enforced + + -- Andrea Righi Tue, 27 Sep 2022 16:51:09 +0200 + +linux (5.19.0-18.18) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-18.18 -proposed tracker (LP: #1990366) + + * 5.19.0-17.17: kernel NULL pointer dereference, address: 0000000000000084 + (LP: #1990236) + - Revert "UBUNTU: SAUCE: apparmor: Fix regression in stacking due to label + flags" + - Revert "UBUNTU: [Config] disable SECURITY_APPARMOR_RESTRICT_USERNS" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - add an internal buffer"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - don't wait on cleanup"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - don't waste entropy"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - always add a pending + request"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - unregister device before + reset"" + - Revert "UBUNTU: SAUCE: Revert "virtio-rng: make device ready before making + request"" + - Revert "UBUNTU: [Config] update configs after apply new apparmor patch set" + - Revert "UBUNTU: SAUCE: apparmor: add user namespace creation mediation" + - Revert "UBUNTU: SAUCE: selinux: Implement userns_create hook" + - Revert "UBUNTU: SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable" + - Revert "UBUNTU: SAUCE: security, lsm: Introduce security_create_user_ns()" + - Revert "UBUNTU: SAUCE: lsm stacking v37: AppArmor: Remove the exclusive + flag" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full + LSM context" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Removed scaffolding function + lsmcontext_init" + - Revert "UBUNTU: SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in + audit data" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Add record for multiple + object contexts" + - Revert "UBUNTU: SAUCE: lsm stacking v37: audit: multiple subject lsm values + for netlabel" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Add record for multiple task + security contexts" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Allow multiple records in an + audit_buffer" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add a function to report + multiple LSMs" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Create audit_stamp + structure" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in + audit_names" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: security_secid_to_secctx + module selection" + - Revert "UBUNTU: SAUCE: lsm stacking v37: binder: Pass LSM identifier for + confirmation" + - Revert "UBUNTU: SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a + lsmblob" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in + netlink netfilter" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_inode_getsecctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context + releaser" + - Revert "UBUNTU: SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to + display" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Specify which LSM to display" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_cred_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_inode_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_current_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_ipc_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_secctx_to_secid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_kernel_act_as" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_audit_rule_match" + - Revert "UBUNTU: SAUCE: lsm stacking v37: IMA: avoid label collisions with + stacked LSMs" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: provide lsm name and id slot + mappings" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add the lsmblob data + structure." + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Infrastructure management of + the sock security" + - Revert "UBUNTU: SAUCE: lsm stacking v37: integrity: disassociate + ima_filter_rule from security_audit_rule" + - Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() to + aa_sock()" + - Revert "UBUNTU: SAUCE: apparmor: Add fine grained mediation of posix + mqueues" + - Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()" + - Revert "UBUNTU: SAUCE: fix shutdown unix socket owner conditional check" + - Revert "UBUNTU: SAUCE: apparmor: af_unix mediation" + - Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with v2.x + net rules" + - Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string hex value" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to + match reserved classes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to + be a list" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: refactor profile rules + and attachments" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: verify loaded permission + bits masks don't overlap" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm + accumulation into perms.h" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes + are accumulated" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: verify permission table + indexes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add the ability for + policy to specify a permission table" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make unpack_array return + a trianary value" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: group dfa policydb + unpacking" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make transition table + unpack generic so it can be reused" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add user mode flag" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add mediation class + information to auditing" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend permissions to + support a label and tag string" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards + compatibility to its own file" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend xindex size" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros + into policy_unpack" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend policydb + permission set by making use of the xbits" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating + locking non-fs unix sockets" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include + v8 abi" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: preparse for state being + more than just an integer" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: cleanup shared + permission struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using + the new shared policydb struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: combine file_rules and + aa_policydb into a single shared struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute policydb + permission on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use + aa_perms structure" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm + computation" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: move fperm computation + into policy_unpack" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute xmatch + permissions on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute file permissions + on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: expose compression level + limits in sysfs" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: use zstd compression for + profile data" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: reserve mediation + classes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when + removing a namespace" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix a memleak in + multi_transaction_new()" + - Revert "UBUNTU: SAUCE: upstream v6.0: Smack: Provide read control for + io_uring_cmd" + - Revert "UBUNTU: SAUCE: upstream v6.0: selinux: implement the + security_uring_cmd() LSM hook" + - Revert "UBUNTU: SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the + new uring_cmd file op" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: correct config reference to + intended one" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: move ptrace mediation to + more logical task.{h,c}" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: extend policydb permission + set by making use of the xbits" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: allow label to carry debug + flags" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as + static" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: disable showing the mode as + part of a secid to secctx" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Convert secid mapping to + XArrays instead of IDR" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: add a kernel label to use on + kernel objects" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: test: Remove some casts + which are no-longer required" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize'" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and + match_mnt() kernel-doc comment" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Use struct_size() helper in + kmalloc()" + - Revert "UBUNTU: SAUCE: upstream v6.0: security/apparmor: remove redundant + ret variable" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol + warnings in policy_unpack_test.c" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: don't create raw_sha1 + symlink if sha1 hashing is disabled" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Enable tuning of policy + paranoid load for embedded systems" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: make export of raw binary + profile to userspace optional" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Update help description of + policy hash for introspection" + - Revert "UBUNTU: SAUCE: upstream v6.0: lsm: Fix kernel-doc" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix kernel-doc" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: fix absroot causing audited + secids to begin with =" + - Revert "Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string + hex value"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with + v2.x net rules"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: af_unix mediation"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: fix use after free in + sk_peer_label"" + - Revert "Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating locking non- + fs, unix sockets"" + - Revert "Revert "apparmor: fix absroot causing audited secids to begin with + ="" + - Revert "Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as part of + a secid to secctx"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() + to aa_sock()"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the sock + security"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob data + structure."" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_audit_rule_match"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_kernel_act_as"" + - Revert "Revert "UBUNTU: SAUCE: net: Prepare UDS for security module + stacking"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secctx_to_secid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secid_to_secctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_ipc_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_task_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_inode_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_cred_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to use + lsmblobs"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context + releaser"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_secid_to_secctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_inode_getsecctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in netlink + netfilter"" + - Revert "Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a lsmblob"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Add new record for multiple process + LSM attributes"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline function + declration."" + - Revert "Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple object + LSM attributes"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full LSM + context"" + - Revert "Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive flag"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to + kfree_sensitive()"" + - Revert "Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use lsmblob"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in smk_netlbl_mls()"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk parameter + const"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display (using + struct cred as input)"" + + * [22.04 FEAT] Enhanced Interpretation for PCI Functions on s390x - kernel + part (LP: #1853306) + - s390/sclp: detect the zPCI load/store interpretation facility + - s390/sclp: detect the AISII facility + - s390/sclp: detect the AENI facility + - s390/sclp: detect the AISI facility + - s390/airq: pass more TPI info to airq handlers + - s390/airq: allow for airq structure that uses an input vector + - s390/pci: externalize the SIC operation controls and routine + - s390/pci: stash associated GISA designation + - s390/pci: stash dtsm and maxstbl + - vfio/pci: introduce CONFIG_VFIO_PCI_ZDEV_KVM + - KVM: s390: pci: add basic kvm_zdev structure + - KVM: s390: pci: do initial setup for AEN interpretation + - KVM: s390: pci: enable host forwarding of Adapter Event Notifications + - KVM: s390: mechanism to enable guest zPCI Interpretation + - KVM: s390: pci: provide routines for enabling/disabling interrupt forwarding + - KVM: s390: pci: add routines to start/stop interpretive execution + - vfio-pci/zdev: add open/close device hooks + - vfio-pci/zdev: add function handle to clp base capability + - vfio-pci/zdev: different maxstbl for interpreted devices + - KVM: s390: add KVM_S390_ZPCI_OP to manage guest zPCI devices + - MAINTAINERS: additional files related kvm s390 pci passthrough + - Documentation: kvm: extend KVM_S390_ZPCI_OP subheading underline + - KVM: s390: pci: Hook to access KVM lowlevel from VFIO + + * [22.10 FEAT] [IO2201] Independent Usage of Secondary Physical Function + (LP: #1959542) + - PCI: Clean up pci_scan_slot() + - PCI: Split out next_ari_fn() from next_fn() + - PCI: Move jailhouse's isolated function handling to pci_scan_slot() + - PCI: Extend isolated function probing to s390 + - s390/pci: allow zPCI zbus without a function zero + + * AMD ACP 6.2 DMIC support (LP: #1989518) + - ASoC: amd: add Pink Sardine platform ACP IP register header + - ASoC: amd: add Pink Sardine ACP PCI driver + - ASoC: amd: add acp6.2 init/de-init functions + - ASoC: amd: add platform devices for acp6.2 pdm driver and dmic driver + - ASoC: amd: add acp6.2 pdm platform driver + - ASoC: amd: add acp6.2 irq handler + - ASoC: amd: add acp6.2 pdm driver dma ops + - ASoC: amd: add acp6.2 pci driver pm ops + - ASoC: amd: add acp6.2 pdm driver pm ops + - ASoC: amd: enable Pink Sardine acp6.2 drivers build + - ASoC: amd: create platform device for acp6.2 machine driver + - ASoC: amd: add Pink Sardine machine driver using dmic + - ASoC: amd: enable Pink sardine platform machine driver build. + - [Config] Enable audio for AMD PinkSardine + + * support independent clock and LED GPIOs for Intel IPU6 platforms + (LP: #1989046) + - SAUCE: platform/x86: int3472: support independent clock and LED GPIOs + + * CVE-2022-2978 + - SAUCE: fs: fix UAF/GPF bug in nilfs_mdt_destroy + + * Miscellaneous Ubuntu changes + - [Config] disable SECURITY_APPARMOR_RESTRICT_USERNS + - SAUCE: Add mdev_set_iommu_device() kABI. + - SAUCE: apparmor: Fix regression in stacking due to label flags + - [Config] update toolchain version + + * Miscellaneous upstream changes + - Revert "drm/i915/opregion: check port number bounds for SWSCI display power + state" + + -- Andrea Righi Wed, 21 Sep 2022 16:28:46 +0200 + +linux (5.19.0-17.17) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-17.17 -proposed tracker (LP: #1989987) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * multiple kernel oops regarding hung tasks delaying boot (LP: #1989258) + - SAUCE: Revert "virtio-rng: make device ready before making request" + - SAUCE: Revert "hwrng: virtio - unregister device before reset" + - SAUCE: Revert "hwrng: virtio - always add a pending request" + - SAUCE: Revert "hwrng: virtio - don't waste entropy" + - SAUCE: Revert "hwrng: virtio - don't wait on cleanup" + - SAUCE: Revert "hwrng: virtio - add an internal buffer" + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) + - Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display (using struct cred + as input)" + - Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk parameter const" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in smk_netlbl_mls()" + - Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use lsmblob" + - Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to kfree_sensitive()" + - Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check" + - Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive flag" + - Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full LSM context" + - Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple object LSM + attributes" + - Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline function + declration." + - Revert "UBUNTU: SAUCE: Audit: Add new record for multiple process LSM + attributes" + - Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a lsmblob" + - Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in netlink netfilter" + - Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in security_inode_getsecctx" + - Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context releaser" + - Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display" + - Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to use lsmblobs" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_cred_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_inode_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_task_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_ipc_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_secctx_to_secid" + - Revert "UBUNTU: SAUCE: net: Prepare UDS for security module stacking" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_kernel_act_as" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_audit_rule_match" + - Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob data structure." + - Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the sock security" + - Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() to + aa_sock()" + - Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()" + - Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as part of a secid + to secctx" + - Revert "apparmor: fix absroot causing audited secids to begin with =" + - Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating locking non-fs, unix + sockets" + - Revert "UBUNTU: SAUCE: apparmor: fix use after free in sk_peer_label" + - Revert "UBUNTU: SAUCE: apparmor: af_unix mediation" + - Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with v2.x + net rules" + - Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string hex value" + - SAUCE: upstream v6.0: apparmor: fix absroot causing audited secids to begin + with = + - SAUCE: upstream v6.0: apparmor: Fix kernel-doc + - SAUCE: upstream v6.0: lsm: Fix kernel-doc + - SAUCE: upstream v6.0: apparmor: Update help description of policy hash for + introspection + - SAUCE: upstream v6.0: apparmor: make export of raw binary profile to + userspace optional + - SAUCE: upstream v6.0: apparmor: Enable tuning of policy paranoid load for + embedded systems + - SAUCE: upstream v6.0: apparmor: don't create raw_sha1 symlink if sha1 + hashing is disabled + - SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol warnings in + policy_unpack_test.c + - SAUCE: upstream v6.0: security/apparmor: remove redundant ret variable + - SAUCE: upstream v6.0: apparmor: Use struct_size() helper in kmalloc() + - SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and match_mnt() + kernel-doc comment + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize' + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: test: Remove some casts which are no-longer + required + - SAUCE: upstream v6.0: apparmor: add a kernel label to use on kernel objects + - SAUCE: upstream v6.0: apparmor: Convert secid mapping to XArrays instead of + IDR + - SAUCE: upstream v6.0: apparmor: disable showing the mode as part of a secid + to secctx + - SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as static + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: allow label to carry debug flags + - SAUCE: upstream v6.0: apparmor: extend policydb permission set by making use + of the xbits + - SAUCE: upstream v6.0: apparmor: move ptrace mediation to more logical + task.{h,c} + - SAUCE: upstream v6.0: apparmor: correct config reference to intended one + - SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the new uring_cmd file + op + - SAUCE: upstream v6.0: selinux: implement the security_uring_cmd() LSM hook + - SAUCE: upstream v6.0: Smack: Provide read control for io_uring_cmd + - SAUCE: apparmor-next 6.1: apparmor: fix a memleak in multi_transaction_new() + - SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when removing a + namespace + - SAUCE: apparmor-next 6.1: apparmor: reserve mediation classes + - SAUCE: apparmor-next 6.1: apparmor: use zstd compression for profile data + - SAUCE: apparmor-next 6.1: apparmor: expose compression level limits in sysfs + - SAUCE: apparmor-next 6.1: apparmor: compute file permissions on profile load + - SAUCE: apparmor-next 6.1: apparmor: compute xmatch permissions on profile + load + - SAUCE: apparmor-next 6.1: apparmor: move fperm computation into + policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm computation + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use aa_perms structure + - SAUCE: apparmor-next 6.1: apparmor: compute policydb permission on profile + load + - SAUCE: apparmor-next 6.1: apparmor: combine file_rules and aa_policydb into + a single shared struct + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using the new shared + policydb struct + - SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to use accept as an + index + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: cleanup shared permission struct + - SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: preparse for state being more than just + an integer + - SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include v8 abi + - SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating locking non-fs + unix sockets + - SAUCE: apparmor-next 6.1: apparmor: extend policydb permission set by making + use of the xbits + - SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros into policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: extend xindex size + - SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards compatibility + to its own file + - SAUCE: apparmor-next 6.1: apparmor: extend permissions to support a label + and tag string + - SAUCE: apparmor-next 6.1: apparmor: add mediation class information to + auditing + - SAUCE: apparmor-next 6.1: apparmor: add user mode flag + - SAUCE: apparmor-next 6.1: apparmor: make transition table unpack generic so + it can be reused + - SAUCE: apparmor-next 6.1: apparmor: group dfa policydb unpacking + - SAUCE: apparmor-next 6.1: apparmor: make unpack_array return a trianary + value + - SAUCE: apparmor-next 6.1: apparmor: add the ability for policy to specify a + permission table + - SAUCE: apparmor-next 6.1: apparmor: verify permission table indexes + - SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes are accumulated + - SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm accumulation into + perms.h + - SAUCE: apparmor-next 6.1: apparmor: verify loaded permission bits masks + don't overlap + - SAUCE: apparmor-next 6.1: apparmor: refactor profile rules and attachments + - SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to be a list + - SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to match reserved + classes + - SAUCE: apparmor: add/use fns to print hash string hex value + - SAUCE: apparmor: patch to provide compatibility with v2.x net rules + - SAUCE: apparmor: af_unix mediation + - SAUCE: fix shutdown unix socket owner conditional check + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: Add fine grained mediation of posix mqueues + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: lsm stacking v37: integrity: disassociate ima_filter_rule from + security_audit_rule + - SAUCE: lsm stacking v37: LSM: Infrastructure management of the sock security + - SAUCE: lsm stacking v37: LSM: Add the lsmblob data structure. + - SAUCE: lsm stacking v37: LSM: provide lsm name and id slot mappings + - SAUCE: lsm stacking v37: IMA: avoid label collisions with stacked LSMs + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_current_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context releaser + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a lsmblob + - SAUCE: lsm stacking v37: binder: Pass LSM identifier for confirmation + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx module selection + - SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in audit_names + - SAUCE: lsm stacking v37: Audit: Create audit_stamp structure + - SAUCE: lsm stacking v37: LSM: Add a function to report multiple LSMs + - SAUCE: lsm stacking v37: Audit: Allow multiple records in an audit_buffer + - SAUCE: lsm stacking v37: Audit: Add record for multiple task security + contexts + - SAUCE: lsm stacking v37: audit: multiple subject lsm values for netlabel + - SAUCE: lsm stacking v37: Audit: Add record for multiple object contexts + - SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in audit data + - SAUCE: lsm stacking v37: LSM: Removed scaffolding function lsmcontext_init + - SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full LSM context + - SAUCE: lsm stacking v37: AppArmor: Remove the exclusive flag + - SAUCE: security, lsm: Introduce security_create_user_ns() + - SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable + - SAUCE: selinux: Implement userns_create hook + - SAUCE: apparmor: add user namespace creation mediation + - [Config] update configs after apply new apparmor patch set + + * [22.10 FEAT] KVM: Secure Execution guest dump encryption with customer keys + - kernel part (LP: #1959940) + - s390/uv: Add SE hdr query information + - s390/uv: Add dump fields to query + - KVM: s390: pv: Add query interface + - KVM: s390: pv: Add dump support definitions + - KVM: s390: pv: Add query dump information + - KVM: s390: Add configuration dump functionality + - KVM: s390: Add CPU dump functionality + - KVM: s390: Add KVM_CAP_S390_PROTECTED_DUMP + - Documentation: virt: Protected virtual machine dumps + - Documentation/virt/kvm/api.rst: Add protvirt dump/info api descriptions + - Documentation/virt/kvm/api.rst: Explain rc/rrc delivery + + * [SRU][OEM-5.14/Jammy/OEM-5.17][PATCH 0/1] Fix blank screen on Thinkpad ADL + 4K+ panel (LP: #1980621) + - SAUCE: drm/i915: Implement WaEdpLinkRateDataReload + - SAUCE: Revert "drm/i915/display: Re-add check for low voltage sku for max dp + source rate" + + * [UBUNTU 22.04] s390/qeth: cache link_info for ethtool (LP: #1984103) + - s390/qeth: cache link_info for ethtool + + * Kernel livepatch support for for s390x (LP: #1639924) + - [Config] Enable EXPOLINE_EXTERN on s390x + + * IWLMEI may cause device down at resuming from s2idle (LP: #1987312) + - [Config] Disable IWLMEI + + * Raise CONFIG_NR_CPUS (LP: #1967889) + - [Config] Raise riscv64 CONFIG_NR_CPUS to 32 + + * PolarFire Icicle Kit: missing USB support (LP: #1986970) + - usb: musb: Add support for PolarFire SoC's musb controller + - usb: musb: mpfs: Fix error codes in probe() + - usb: musb: mpfs: add missing clk_disable_unprepare() in mpfs_remove() + - [Config] Enable CONFIG_USB_MUSB_POLARFIRE_SOC on riscv64 + + * System freeze after resuming from suspend due to PCI ASPM settings + (LP: #1980829) + - SAUCE: PCI/ASPM: Save/restore L1SS Capability for suspend/resume + - SAUCE: whitelist platforms that needs save/restore ASPM L1SS for + suspend/resume + + * Please enable CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU (LP: #1980861) + - [Config] Switch from DECOMP_SINGLE to DECOMP_MULTI_PERCPU + + * Miscellaneous Ubuntu changes + - [Config] enable security-related configs + - [Packaging] Make stamp-install- target reentrant + - [Packaging] Pass kernel build_arch to dkms + - [Packaging] Enable building zfs during cross-compile + - [Packaging] temporarily disable signing for ppc64el + + -- Andrea Righi Fri, 16 Sep 2022 18:03:10 +0200 + +linux (5.19.0-16.16) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-16.16 -proposed tracker (LP: #1988707) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Kinetic update: v5.19.7 upstream stable release (LP: #1988733) + - drm/vc4: hdmi: Rework power up + - drm/vc4: hdmi: Depends on CONFIG_PM + - firmware: tegra: bpmp: Do only aligned access to IPC memory area + - crypto: lib - remove unneeded selection of XOR_BLOCKS + - docs: kerneldoc-preamble: Test xeCJK.sty before loading + - arm64: errata: Add Cortex-A510 to the repeat tlbi list + - Bluetooth: L2CAP: Fix build errors in some archs + - Revert "PCI/portdrv: Don't disable AER reporting in + get_port_device_capability()" + - HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report + - udmabuf: Set the DMA mask for the udmabuf device (v2) + - media: pvrusb2: fix memory leak in pvr_probe + - USB: gadget: Fix use-after-free Read in usb_udc_uevent() + - HID: hidraw: fix memory leak in hidraw_release() + - net: fix refcount bug in sk_psock_get (2) + - fbdev: fb_pm2fb: Avoid potential divide by zero error + - ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is + dead + - bpf: Don't redirect packets with invalid pkt_len + - mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse + - ALSA: usb-audio: Add quirk for LH Labs Geek Out HD Audio 1V5 + - HID: input: fix uclogic tablets + - HID: add Lenovo Yoga C630 battery quirk + - HID: AMD_SFH: Add a DMI quirk entry for Chromebooks + - HID: Add Apple Touchbar on T2 Macs in hid_have_special_driver list + - HID: asus: ROG NKey: Ignore portion of 0x5a report + - HID: nintendo: fix rumble worker null pointer deref + - HID: thrustmaster: Add sparco wheel and fix array length + - HID: intel-ish-hid: ipc: Add Meteor Lake PCI device ID + - mmc: mtk-sd: Clear interrupts when cqe off/disable + - mmc: sdhci-of-dwcmshc: add reset call back for rockchip Socs + - mmc: sdhci-of-dwcmshc: rename rk3568 to rk35xx + - mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3 SoC + - fs/ntfs3: Fix work with fragmented xattr + - ASoC: sh: rz-ssi: Improve error handling in rz_ssi_probe() error path + - ASoC: rt5640: Fix the JD voltage dropping issue + - rtla: Fix tracer name + - drm/amd/display: Add a missing register field for HPO DP stream encoder + - drm/amd/display: Device flash garbage before get in OS + - drm/amd/display: Avoid MPC infinite loop + - drm/amd/display: Fix HDMI VSIF V3 incorrect issue + - drm/amd/display: For stereo keep "FLIP_ANY_FRAME" + - drm/amd/display: clear optc underflow before turn off odm clock + - drm/amd/display: Fix TDR eDP and USB4 display light up issue + - drm/amd/pm: skip pptable override for smu_v13_0_7 + - drm/amdkfd: Handle restart of kfd_ioctl_wait_events + - drm/amd/pm: Fix a potential gpu_metrics_table memory leak + - ksmbd: return STATUS_BAD_NETWORK_NAME error status if share is not + configured + - net: lan966x: fix checking for return value of platform_get_irq_byname() + - neigh: fix possible DoS due to net iface start/stop loop + - ALSA: hda/realtek: Add quirks for ASUS Zenbooks using CS35L41 + - s390/hypfs: avoid error message under KVM + - ksmbd: don't remove dos attribute xattr on O_TRUNC open + - drm/amdgpu: disable 3DCGCG/CGLS temporarily due to stability issue + - drm/amd/pm: add missing ->fini_microcode interface for Sienna Cichlid + - drm/amd/pm: add missing ->fini_xxxx interfaces for some SMU13 asics + - drm/amd/display: Fix pixel clock programming + - drm/amdgpu: Increase tlb flush timeout for sriov + - drm/amd/display: Fix plug/unplug external monitor will hang while playback + MPO video + - drm/amd/display: avoid doing vm_init multiple time + - drm/amdgpu: Add decode_iv_ts helper for ih_v6 block + - drm/amdgpu: Add secure display TA load for Renoir + - drm/amdgpu: Fix interrupt handling on ih_soft ring + - netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y + - testing: selftests: nft_flowtable.sh: use random netns names + - platform/x86: serial-multi-instantiate: Add CLSA0101 Laptop + - ALSA: hda/cs8409: Support new Dolphin Variants + - btrfs: move lockdep class helpers to locking.c + - btrfs: fix lockdep splat with reloc root extent buffers + - btrfs: tree-checker: check for overlapping extent items + - android: binder: fix lockdep check on clearing vma + - net/af_packet: check len when min_header_len equals to 0 + - net: neigh: don't call kfree_skb() under spin_lock_irqsave() + - arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned + fw_level + - Linux 5.19.7 + + * Kinetic update: v5.19.6 upstream stable release (LP: #1988732) + - mm/gup: fix FOLL_FORCE COW security issue and remove FOLL_COW + - NFS: Fix another fsync() issue after a server reboot + - audit: fix potential double free on error path from fsnotify_add_inode_mark + - cgroup: Fix race condition at rebind_subsystems() + - parisc: Make CONFIG_64BIT available for ARCH=parisc64 only + - parisc: Fix exception handler for fldw and fstw instructions + - kernel/sys_ni: add compat entry for fadvise64_64 + - kprobes: don't call disarm_kprobe() for disabled kprobes + - mm/uffd: reset write protection when unregister with wp-mode + - mm/hugetlb: support write-faults in shared mappings + - mt76: mt7921: fix command timeout in AP stop period + - xfrm: fix refcount leak in __xfrm_policy_check() + - Revert "xfrm: update SA curlft.use_time" + - xfrm: clone missing x->lastused in xfrm_do_migrate + - af_key: Do not call xfrm_probe_algs in parallel + - xfrm: policy: fix metadata dst->dev xmit null pointer dereference + - fs: require CAP_SYS_ADMIN in target namespace for idmapped mounts + - Revert "net: macsec: update SCI upon MAC address change." + - NFSv4.2 fix problems with __nfs42_ssc_open + - SUNRPC: RPC level errors should set task->tk_rpc_status + - mm/smaps: don't access young/dirty bit if pte unpresent + - ntfs: fix acl handling + - rose: check NULL rose_loopback_neigh->loopback + - r8152: fix the units of some registers for RTL8156A + - r8152: fix the RX FIFO settings when suspending + - nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout + - ice: xsk: prohibit usage of non-balanced queue id + - ice: xsk: use Rx ring's XDP ring when picking NAPI context + - net/mlx5e: Properly disable vlan strip on non-UL reps + - net/mlx5: LAG, fix logic over MLX5_LAG_FLAG_NDEVS_READY + - net/mlx5: Eswitch, Fix forwarding decision to uplink + - net/mlx5: Disable irq when locking lag_lock + - net/mlx5: Fix cmd error logging for manage pages cmd + - net/mlx5: Avoid false positive lockdep warning by adding lock_class_key + - net/mlx5e: Fix wrong application of the LRO state + - net/mlx5e: Fix wrong tc flag used when set hw-tc-offload off + - net: dsa: microchip: ksz9477: cleanup the ksz9477_switch_detect + - net: dsa: microchip: move switch chip_id detection to ksz_common + - net: dsa: microchip: move tag_protocol to ksz_common + - net: dsa: microchip: move vlan functionality to ksz_common + - net: dsa: microchip: move the port mirror to ksz_common + - net: dsa: microchip: update the ksz_phylink_get_caps + - net: dsa: microchip: keep compatibility with device tree blobs with no phy- + mode + - net: ipa: don't assume SMEM is page-aligned + - net: phy: Don't WARN for PHY_READY state in mdio_bus_phy_resume() + - net: moxa: get rid of asymmetry in DMA mapping/unmapping + - bonding: 802.3ad: fix no transmission of LACPDUs + - net: ipvtap - add __init/__exit annotations to module init/exit funcs + - netfilter: ebtables: reject blobs that don't provide all entry points + - netfilter: nft_tproxy: restrict to prerouting hook + - bnxt_en: Use PAGE_SIZE to init buffer when multi buffer XDP is not in use + - bnxt_en: set missing reload flag in devlink features + - bnxt_en: fix NQ resource accounting during vf creation on 57500 chips + - bnxt_en: fix LRO/GRO_HW features in ndo_fix_features callback + - netfilter: nf_tables: disallow updates of implicit chain + - netfilter: nf_tables: make table handle allocation per-netns friendly + - netfilter: nft_payload: report ERANGE for too long offset and length + - netfilter: nft_payload: do not truncate csum_offset and csum_type + - netfilter: nf_tables: do not leave chain stats enabled on error + - netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families + - netfilter: nft_tunnel: restrict it to netdev family + - netfilter: nf_tables: disallow binding to already bound chain + - netfilter: flowtable: add function to invoke garbage collection immediately + - netfilter: flowtable: fix stuck flows on cleanup due to pending work + - net: Fix data-races around sysctl_[rw]mem_(max|default). + - net: Fix data-races around weight_p and dev_weight_[rt]x_bias. + - net: Fix data-races around netdev_max_backlog. + - net: Fix data-races around netdev_tstamp_prequeue. + - ratelimit: Fix data-races in ___ratelimit(). + - net: Fix data-races around sysctl_optmem_max. + - net: Fix a data-race around sysctl_tstamp_allow_data. + - net: Fix a data-race around sysctl_net_busy_poll. + - net: Fix a data-race around sysctl_net_busy_read. + - net: Fix a data-race around netdev_budget. + - net: Fix data-races around sysctl_max_skb_frags. + - net: Fix a data-race around netdev_budget_usecs. + - net: Fix data-races around sysctl_fb_tunnels_only_for_init_net. + - net: Fix data-races around sysctl_devconf_inherit_init_net. + - net: Fix a data-race around gro_normal_batch. + - net: Fix a data-race around netdev_unregister_timeout_secs. + - net: Fix a data-race around sysctl_somaxconn. + - ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter + - i40e: Fix incorrect address type for IPv6 flow rules + - net: ethernet: mtk_eth_soc: enable rx cksum offload for MTK_NETSYS_V2 + - net: ethernet: mtk_eth_soc: fix hw hash reporting for MTK_NETSYS_V2 + - rxrpc: Fix locking in rxrpc's sendmsg + - ionic: clear broken state on generation change + - ionic: fix up issues with handling EAGAIN on FW cmds + - ionic: VF initial random MAC address if no assigned mac + - net: stmmac: work around sporadic tx issue on link-up + - net: lantiq_xrx200: confirm skb is allocated before using + - net: lantiq_xrx200: fix lock under memory pressure + - net: lantiq_xrx200: restore buffer if memory allocation failed + - btrfs: fix silent failure when deleting root reference + - btrfs: replace: drop assert for suspended replace + - btrfs: add info when mount fails due to stale replace target + - btrfs: fix space cache corruption and potential double allocations + - btrfs: check if root is readonly while setting security xattr + - btrfs: fix possible memory leak in btrfs_get_dev_args_from_path() + - btrfs: update generation of hole file extent item when merging holes + - x86/boot: Don't propagate uninitialized boot_params->cc_blob_address + - perf/x86/intel: Fix pebs event constraints for ADL + - perf/x86/lbr: Enable the branch type for the Arch LBR by default + - x86/entry: Fix entry_INT80_compat for Xen PV guests + - x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry + - x86/sev: Don't use cc_platform_has() for early SEV-SNP calls + - x86/bugs: Add "unknown" reporting for MMIO Stale Data + - x86/nospec: Unwreck the RSB stuffing + - x86/PAT: Have pat_enabled() properly reflect state when running on Xen + - loop: Check for overflow while configuring loop + - writeback: avoid use-after-free after removing device + - audit: move audit_return_fixup before the filters + - asm-generic: sections: refactor memory_intersects + - mm/damon/dbgfs: avoid duplicate context directory creation + - s390/mm: do not trigger write fault when vma does not allow VM_WRITE + - bootmem: remove the vmemmap pages from kmemleak in put_page_bootmem + - mm/hugetlb: avoid corrupting page->mapping in hugetlb_mcopy_atomic_pte + - mm/mprotect: only reference swap pfn page if type match + - cifs: skip extra NULL byte in filenames + - s390: fix double free of GS and RI CBs on fork() failure + - fbdev: fbcon: Properly revert changes when vc_resize() failed + - Revert "memcg: cleanup racy sum avoidance code" + - shmem: update folio if shmem_replace_page() updates the page + - ACPI: processor: Remove freq Qos request for all CPUs + - nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf + - smb3: missing inode locks in punch hole + - ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown + - xen/privcmd: fix error exit of privcmd_ioctl_dm_op() + - riscv: signal: fix missing prototype warning + - riscv: traps: add missing prototype + - riscv: dts: microchip: correct L2 cache interrupts + - Revert "zram: remove double compression logic" + - io_uring: fix issue with io_write() not always undoing sb_start_write() + - mm/hugetlb: fix hugetlb not supporting softdirty tracking + - Revert "md-raid: destroy the bitmap after destroying the thread" + - md: call __md_stop_writes in md_stop + - arm64: Fix match_list for erratum 1286807 on Arm Cortex-A76 + - binder_alloc: add missing mmap_lock calls when using the VMA + - x86/nospec: Fix i386 RSB stuffing + - drm/amdkfd: Fix isa version for the GC 10.3.7 + - Documentation/ABI: Mention retbleed vulnerability info file for sysfs + - blk-mq: fix io hung due to missing commit_rqs + - perf python: Fix build when PYTHON_CONFIG is user supplied + - perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU + - perf/x86/intel/ds: Fix precise store latency handling + - perf stat: Clear evsel->reset_group for each stat run + - arm64: fix rodata=full + - arm64/signal: Flush FPSIMD register state when disabling streaming mode + - arm64/sme: Don't flush SVE register state when allocating SME storage + - arm64/sme: Don't flush SVE register state when handling SME traps + - scsi: ufs: core: Enable link lost interrupt + - scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq + - scsi: core: Fix passthrough retry counter handling + - riscv: dts: microchip: mpfs: fix incorrect pcie child node name + - riscv: dts: microchip: mpfs: remove ti,fifo-depth property + - riscv: dts: microchip: mpfs: remove bogus card-detect-delay + - riscv: dts: microchip: mpfs: remove pci axi address translation property + - bpf: Don't use tnum_range on array range checking for poke descriptors + - Linux 5.19.6 + + * Kinetic update: v5.19.5 upstream stable release (LP: #1988207) + - kbuild: dummy-tools: avoid tmpdir leak in dummy gcc + - Linux 5.19.5 + + * Support Intel TDX guest attestation driver (LP: #1988120) + - SAUCE: x86/tdx: Add TDX Guest attestation interface driver + - SAUCE: selftests: tdx: Test GetReport TDX attestation feature + + * Kinetic update: v5.19.4 upstream stable release (LP: #1987923) + - ALSA: info: Fix llseek return value when using callback + - ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU + - RDMA: Handle the return code from dma_resv_wait_timeout() properly + - KVM: Unconditionally get a ref to /dev/kvm module when creating a VM + - x86/mm: Use proper mask when setting PUD mapping + - rds: add missing barrier to release_refill + - drm/i915/gem: Remove shared locking on freeing objects + - locking/atomic: Make test_and_*_bit() ordered on failure + - drm/nouveau: recognise GA103 + - drm/ttm: Fix dummy res NULL ptr deref bug + - drm/amdgpu: Only disable prefer_shadow on hawaii + - drm/amd/display: Check correct bounds for stream encoder instances for + DCN303 + - s390/ap: fix crash on older machines based on QCI info missing + - ata: libata-eh: Add missing command name + - mmc: pxamci: Fix another error handling path in pxamci_probe() + - mmc: pxamci: Fix an error handling path in pxamci_probe() + - mmc: meson-gx: Fix an error handling path in meson_mmc_probe() + - btrfs: unset reloc control if transaction commit fails in + prepare_to_relocate() + - btrfs: reset RO counter on block group if we fail to relocate + - btrfs: fix lost error handling when looking up extended ref on log replay + - btrfs: fix warning during log replay when bumping inode link count + - drm/amdgpu: change vram width algorithm for vram_info v3_0 + - drm/i915/gt: Ignore TLB invalidations on idle engines + - drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations + - drm/i915/gt: Skip TLB invalidations once wedged + - drm/i915/gt: Batch TLB invalidations + - drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb() + - cifs: Fix memory leak on the deferred close + - x86/kprobes: Fix JNG/JNLE emulation + - tracing/perf: Fix double put of trace event when init fails + - tracing/eprobes: Do not allow eprobes to use $stack, or % for regs + - tracing/eprobes: Do not hardcode $comm as a string + - tracing/eprobes: Fix reading of string fields + - tracing/eprobes: Have event probes be consistent with kprobes and uprobes + - tracing/probes: Have kprobes and uprobes use $COMM too + - tracing: Have filter accept "common_cpu" to be consistent + - ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II + - ALSA: hda: Fix crash due to jack poll in suspend + - dt-bindings: usb: mtk-xhci: Allow wakeup interrupt-names to be optional + - can: ems_usb: fix clang's -Wunaligned-access warning + - apparmor: fix quiet_denied for file rules + - Revert "UBUNTU: SAUCE: apparmor: drop prefixing abs root labels with '='" + - apparmor: fix absroot causing audited secids to begin with = + - apparmor: Fix failed mount permission check error message + - apparmor: fix aa_label_asxprint return check + - apparmor: fix setting unconfined mode on a loaded profile + - apparmor: fix overlapping attachment computation + - apparmor: fix reference count leak in aa_pivotroot() + - apparmor: Fix memleak in aa_simple_write_to_buffer() + - Documentation: ACPI: EINJ: Fix obsolete example + - netfilter: nf_tables: fix crash when nf_trace is enabled + - net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev + is null + - NFSv4.1: Don't decrease the value of seq_nr_highest_sent + - NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly + - NFSv4: Fix races in the legacy idmapper upcall + - NFSv4.1: RECLAIM_COMPLETE must handle EACCES + - NFSv4/pnfs: Fix a use-after-free bug in open + - mptcp, btf: Add struct mptcp_sock definition when CONFIG_MPTCP is disabled + - mptcp: move subflow cleanup in mptcp_destroy_common() + - mptcp: do not queue data on closed subflows + - selftests: mptcp: make sendfile selftest work + - BPF: Fix potential bad pointer dereference in bpf_sys_bpf() + - bpf: Disallow bpf programs call prog_run command. + - bpf: Don't reinit map value in prealloc_lru_pop + - bpf: Acquire map uref in .init_seq_private for array map iterator + - bpf: Acquire map uref in .init_seq_private for hash map iterator + - bpf: Acquire map uref in .init_seq_private for sock local storage map + iterator + - bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator + - bpf: Check the validity of max_rdwr_access for sock local storage map + iterator + - can: mcp251x: Fix race condition on receive interrupt + - can: j1939: j1939_session_destroy(): fix memory leak of skbs + - net: atlantic: fix aq_vec index out of range error + - m68k: coldfire/device.c: protect FLEXCAN blocks + - sunrpc: fix expiry of auth creds + - SUNRPC: Fix xdr_encode_bool() + - SUNRPC: Reinitialise the backchannel request buffers before reuse + - SUNRPC: Don't reuse bvec on retransmission of the request + - ASoC: qdsp6: q6apm-dai: unprepare stream if its already prepared + - virtio: VIRTIO_HARDEN_NOTIFICATION is broken + - [Config] updateconfigs for VIRTIO_HARDEN_NOTIFICATION + - virtio_net: fix memory leak inside XPD_TX with mergeable + - virtio-blk: Avoid use-after-free on suspend/resume + - devlink: Fix use-after-free after a failed reload + - net: phy: Warn about incorrect mdio_bus_phy_resume() state + - net: bcmgenet: Indicate MAC is in charge of PHY PM + - net: phy: c45 baset1: do not skip aneg configuration if clock role is not + specified + - net: dsa: felix: suppress non-changes to the tagging protocol + - net: bgmac: Fix a BUG triggered by wrong bytes_compl + - net: atm: bring back zatm uAPI + - selftests: forwarding: Fix failing tests with old libnet + - dt-bindings: arm: qcom: fix Alcatel OneTouch Idol 3 compatibles + - pinctrl: renesas: rzg2l: Return -EINVAL for pins which have input disabled + - dt-bindings: pinctrl: mt8192: Add drive-strength-microamp + - dt-bindings: pinctrl: mt8192: Use generic bias instead of pull-*-adv + - pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map + - pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed + - pinctrl: amd: Don't save/restore interrupt status and wake status bits + - dt-bindings: pinctrl: mt8195: Fix name for mediatek,rsel-resistance-in-si- + unit + - dt-bindings: pinctrl: mt8195: Add and use drive-strength-microamp + - pinctrl: sunxi: Add I/O bias setting for H6 R-PIO + - dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp + - pinctrl: qcom: sm8250: Fix PDC map + - rtc: spear: set range max + - Input: exc3000 - fix return value check of wait_for_completion_timeout + - Input: mt6779-keypad - match hardware matrix organization + - Input: iqs7222 - correct slider event disable logic + - Input: iqs7222 - fortify slider event reporting + - Input: iqs7222 - protect volatile registers + - Input: iqs7222 - acknowledge reset before writing registers + - Input: iqs7222 - handle reset during ATI + - Input: iqs7222 - remove support for RF filter + - dt-bindings: input: iqs7222: Remove support for RF filter + - dt-bindings: input: iqs7222: Correct bottom speed step size + - dt-bindings: input: iqs7222: Extend slider-mapped GPIO to IQS7222C + - octeontx2-pf: Fix NIX_AF_TL3_TL2X_LINKX_CFG register configuration + - octeontx2-af: Apply tx nibble fixup always + - octeontx2-af: suppress external profile loading warning + - octeontx2-af: Fix mcam entry resource leak + - octeontx2-af: Fix key checking for source mac + - ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool + - geneve: do not use RT_TOS for IPv6 flowlabel + - vxlan: do not use RT_TOS for IPv6 flowlabel + - mlx5: do not use RT_TOS for IPv6 flowlabel + - ipv6: do not use RT_TOS for IPv6 flowlabel + - plip: avoid rcu debug splat + - vsock: Fix memory leak in vsock_connect() + - vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout() + - dt-bindings: gpio: zynq: Add missing compatible strings + - dt-bindings: arm: qcom: fix Longcheer L8150 compatibles + - dt-bindings: arm: qcom: fix MSM8916 MTP compatibles + - dt-bindings: arm: qcom: fix MSM8994 boards compatibles + - dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources + - dt-bindings: PCI: qcom: Fix reset conditional + - spi: dt-bindings: cadence: add missing 'required' + - spi: dt-bindings: zynqmp-qspi: add missing 'required' + - dt-bindings: opp: opp-v2-kryo-cpu: Fix example binding checks + - spi: dt-bindings: qcom,spi-geni-qcom: allow three interconnects + - ceph: use correct index when encoding client supported features + - tools/testing/cxl: Fix decoder default state + - tools/vm/slabinfo: use alphabetic order when two values are equal + - ceph: don't leak snap_rwsem in handle_cap_grant + - clk: imx93: Correct the edma1's parent clock + - vdpa_sim: use max_iotlb_entries as a limit in vhost_iotlb_init + - vdpa_sim_blk: set number of address spaces and virtqueue groups + - tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention + - kbuild: dummy-tools: avoid tmpdir leak in dummy gcc + - tools build: Switch to new openssl API for test-libcrypto + - NTB: ntb_tool: uninitialized heap data in tool_fn_write() + - nfp: ethtool: fix the display error of `ethtool -m DEVNAME` + - xen/xenbus: fix return type in xenbus_file_read() + - tsnep: Fix tsnep_tx_unmap() error path usage + - atm: idt77252: fix use-after-free bugs caused by tst_timer + - fscache: don't leak cookie access refs if invalidation is in progress or + failed + - geneve: fix TOS inheriting for ipv4 + - nvme-fc: fix the fc_appid_store return value + - perf probe: Fix an error handling path in 'parse_perf_probe_command()' + - i2c: qcom-geni: Fix GPI DMA buffer sync-back + - perf parse-events: Fix segfault when event parser gets an error + - perf tests: Fix Track with sched_switch test for hybrid case + - dpaa2-eth: trace the allocated address instead of page struct + - fs/ntfs3: Fix using uninitialized value n when calling indx_read + - fs/ntfs3: Fix NULL deref in ntfs_update_mftmirr + - fs/ntfs3: Don't clear upper bits accidentally in log_replay() + - fs/ntfs3: Fix double free on remount + - fs/ntfs3: Do not change mode if ntfs_set_ea failed + - fs/ntfs3: Fix missing i_op in ntfs_read_mft + - nios2: page fault et.al. are *not* restartable syscalls... + - nios2: don't leave NULLs in sys_call_table[] + - nios2: traced syscall does need to check the syscall number + - nios2: fix syscall restart checks + - nios2: restarts apply only to the first sigframe we build... + - nios2: add force_successful_syscall_return() + - iavf: Fix adminq error handling + - iavf: Fix NULL pointer dereference in iavf_get_link_ksettings + - iavf: Fix reset error handling + - iavf: Fix deadlock in initialization + - ASoC: Intel: avs: Fix potential buffer overflow by snprintf() + - ASoC: SOF: debug: Fix potential buffer overflow by snprintf() + - ASoC: SOF: Intel: hda: Fix potential buffer overflow by snprintf() + - ASoC: DPCM: Don't pick up BE without substream + - ASoC: tas2770: Set correct FSYNC polarity + - ASoC: tas2770: Allow mono streams + - ASoC: tas2770: Drop conflicting set_bias_level power setting + - ASoC: tas2770: Fix handling of mute/unmute + - ASoC: codec: tlv320aic32x4: fix mono playback via I2S + - IB/iser: Fix login with authentication + - RDMA/mlx5: Use the proper number of ports + - RDMA/cxgb4: fix accept failure due to increased cpl_t5_pass_accept_rpl size + - netfilter: nfnetlink: re-enable conntrack expectation events + - netfilter: nf_tables: use READ_ONCE and WRITE_ONCE for shared generation id + access + - fs/ntfs3: uninitialized variable in ntfs_set_acl_ex() + - netfilter: nf_tables: disallow NFTA_SET_ELEM_KEY_END with + NFT_SET_ELEM_INTERVAL_END flag + - netfilter: nf_ct_sane: remove pseudo skb linearization + - netfilter: nf_ct_h323: cap packet size at 64k + - netfilter: nf_ct_ftp: prefer skb_linearize + - netfilter: nf_ct_irc: cap packet search space to 4k + - netfilter: nf_tables: possible module reference underflow in error path + - netfilter: nf_tables: really skip inactive sets when allocating name + - netfilter: nf_tables: fix scheduling-while-atomic splat + - netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT + flag + - netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval + flags + - netfilter: nf_tables: disallow NFT_SET_ELEM_CATCHALL and + NFT_SET_ELEM_INTERVAL_END + - netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified + - powerpc/pci: Fix get_phb_number() locking + - spi: meson-spicc: add local pow2 clock ops to preserve rate between messages + - net/sunrpc: fix potential memory leaks in rpc_sysfs_xprt_state_change() + - net: dsa: mv88e6060: prevent crash on an unused port + - net: qrtr: start MHI channel after endpoit creation + - virtio_net: fix endian-ness for RSS + - mlxsw: spectrum: Clear PTP configuration after unregistering the netdevice + - net: moxa: pass pdev instead of ndev to DMA functions + - net: fix potential refcount leak in ndisc_router_discovery() + - net: rtnetlink: fix module reference count leak issue in rtnetlink_rcv_msg + - net: sched: fix misuse of qcpu->backlog in gnet_stats_add_queue_cpu + - net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry + - net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters + - net: mscc: ocelot: fix incorrect ndo_get_stats64 packet counters + - net: mscc: ocelot: fix address of SYS_COUNT_TX_AGING counter + - net: genl: fix error path memory leak in policy dumping + - net: dsa: don't warn in dsa_port_set_state_now() when driver doesn't support + it + - net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions() + - ice: Fix VSI rebuild WARN_ON check for VF + - ice: Fix call trace with null VSI during VF reset + - ice: Fix VF not able to send tagged traffic with no VLAN filters + - ice: Fix double VLAN error when entering promisc mode + - ice: Ignore EEXIST when setting promisc mode + - ice: Fix clearing of promisc mode with bridge over bond + - ice: Ignore error message when setting same promiscuous mode + - modpost: fix module versioning when a symbol lacks valid CRC + - i2c: imx: Make sure to unregister adapter on remove() + - i40e: Fix tunnel checksum offload with fragmented traffic + - regulator: pca9450: Remove restrictions for regulator-name + - i40e: Fix to stop tx_timeout recovery if GLOBR fails + - blk-mq: run queue no matter whether the request is the last request + - tools/rtla: Fix command symlinks + - fec: Fix timer capture timing in `fec_ptp_enable_pps()` + - dt-bindings: display: sun4i: Add D1 TCONs to conditionals + - stmmac: intel: Add a missing clk_disable_unprepare() call in + intel_eth_pci_remove() + - igb: Add lock to avoid data race + - kbuild: fix the modules order between drivers and libs + - gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file + - can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with + netdev_warn_once() + - drm/imx/dcss: get rid of HPD warning message + - drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() + - drm/i915/ttm: don't leak the ccs state + - drm/amdgpu: Avoid another list of reset devices + - drm/bridge: lvds-codec: Fix error checking of drm_of_lvds_get_data_mapping() + - drm/sun4i: dsi: Prevent underflow when computing packet sizes + - drm/amdgpu: Fix use-after-free on amdgpu_bo_list mutex + - KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems + - KVM: arm64: Reject 32bit user PSTATE on asymmetric systems + - net: mscc: ocelot: turn stats_lock into a spinlock + - net: mscc: ocelot: fix race between ndo_get_stats64 and + ocelot_check_stats_work + - net: mscc: ocelot: make struct ocelot_stat_layout array indexable + - net: mscc: ocelot: report ndo_get_stats64 from the wraparound-resistant + ocelot->stats + - x86/ibt, objtool: Add IBT_NOSEAL() + - x86/kvm: Fix "missing ENDBR" BUG for fastop functions + - thunderbolt: Change downstream router's TMU rate in both TMU uni/bidir mode + - HID: multitouch: new device class fix Lenovo X12 trackpad sticky + - PCI: Add ACS quirk for Broadcom BCM5750x NICs + - platform/chrome: cros_ec_proto: don't show MKBP version if unsupported + - staging: r8188eu: add error handling of rtw_read8 + - staging: r8188eu: add error handling of rtw_read16 + - staging: r8188eu: add error handling of rtw_read32 + - usb: cdns3 fix use-after-free at workaround 2 + - usb: gadget: uvc: calculate the number of request depending on framesize + - usb: gadget: uvc: call uvc uvcg_warn on completed status instead of + uvcg_info + - PCI: aardvark: Fix reporting Slot capabilities on emulated bridge + - scsi: ufs: core: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS + - scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO + - irqchip/tegra: Fix overflow implicit truncation warnings + - drm/meson: Fix overflow implicit truncation warnings + - clk: ti: Stop using legacy clkctrl names for omap4 and 5 + - scsi: ufs: ufs-mediatek: Fix the timing of configuring device regulators + - usb: typec: mux: Add CONFIG guards for functions + - usb: host: ohci-ppc-of: Fix refcount leak bug + - usb: renesas: Fix refcount leak bug + - scsi: iscsi: Fix HW conn removal use after free + - usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch + - vboxguest: Do not use devm for irq + - clk: qcom: ipq8074: dont disable gcc_sleep_clk_src + - uacce: Handle parent device removal or parent driver module rmmod + - zram: do not lookup algorithm in backends table + - clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description + - scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user + input + - scsi: lpfc: Fix possible memory leak when failing to issue CMF WQE + - gadgetfs: ep_io - wait until IRQ finishes + - coresight: etm4x: avoid build failure with unrolled loops + - habanalabs: add terminating NULL to attrs arrays + - habanalabs/gaudi: invoke device reset from one code block + - habanalabs/gaudi: fix shift out of bounds + - habanalabs/gaudi: mask constant value before cast + - mmc: tmio: avoid glitches when resetting + - scsi: ufs: ufs-exynos: Change ufs phy control sequence + - pinctrl: intel: Check against matching data instead of ACPI companion + - cxl: Fix a memory leak in an error handling path + - PCI/ACPI: Guard ARM64-specific mcfg_quirks + - um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups + - of: overlay: Move devicetree_corrupt() check up + - dmaengine: dw-axi-dmac: do not print NULL LLI during error + - dmaengine: dw-axi-dmac: ignore interrupt if no descriptor + - mmc: renesas_sdhi: newer SoCs don't need manual tap correction + - ACPI: PPTT: Leave the table mapped for the runtime usage + - RDMA/rxe: Limit the number of calls to each tasklet + - csky/kprobe: reclaim insn_slot on kprobe unregistration + - selftests/kprobe: Do not test for GRP/ without event failures + - dmaengine: tegra: Add terminate() for Tegra234 + - dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed + - Revert "RDMA/rxe: Create duplicate mapping tables for FMRs" + - openrisc: io: Define iounmap argument as volatile + - phy: samsung: phy-exynos-pcie: sanitize init/power_on callbacks + - md: Notify sysfs sync_completed in md_reap_sync_thread() + - md/raid5: Make logic blocking check consistent with logic that blocks + - nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown + - drivers:md:fix a potential use-after-free bug + - ext4: avoid remove directory when directory is corrupted + - ext4: block range must be validated before use in ext4_mb_clear_bb() + - ext4: avoid resizing to a partial cluster size + - lib/list_debug.c: Detect uninitialized lists + - tty: serial: Fix refcount leak bug in ucc_uart.c + - KVM: PPC: Book3S HV: Fix "rm_exit" entry in debugfs timings + - vfio: Clear the caps->buf to NULL after free + - mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start + - iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit + - ASoC: Intel: avs: Set max DMA segment size + - ALSA: hda: Fix page fault in snd_hda_codec_shutdown() + - modules: Ensure natural alignment for .altinstructions and __bug_table + sections + - ASoC: SOF: Intel: cnl: Do not process IPC reply before firmware boot + - ASoC: SOF: Intel: hda-ipc: Do not process IPC reply before firmware boot + - ASoC: SOF: sof-client-probes: Only load the driver if IPC3 is used + - ASoC: rsnd: care default case on rsnd_ssiu_busif_err_irq_ctrl() + - riscv: dts: sifive: Add fu740 topology information + - riscv: dts: canaan: Add k210 topology information + - ASoC: nau8821: Don't unconditionally free interrupt + - riscv: mmap with PROT_WRITE but no PROT_READ is invalid + - RISC-V: Add fast call path of crash_kexec() + - ALSA: hda/realtek: Enable speaker and mute LEDs for HP laptops + - ASoC: SOF: Intel: hda: add sanity check on SSP index reported by NHLT + - ASoC: Intel: sof_es8336: Fix GPIO quirks set via module option + - ASoC: Intel: sof_es8336: ignore GpioInt when looking for speaker/headset + GPIO lines + - ASoC: Intel: sof_nau8825: Move quirk check to the front in late probe + - watchdog: export lockup_detector_reconfigure + - powerpc/watchdog: introduce a NMI watchdog's factor + - powerpc/pseries/mobility: set NMI watchdog factor during an LPM + - powerpc/32: Set an IBAT covering up to _einittext during init + - powerpc/32: Don't always pass -mcpu=powerpc to the compiler + - ASoC: codecs: va-macro: use fsgen as clock + - ovl: warn if trusted xattr creation fails + - powerpc/ioda/iommu/debugfs: Generate unique debugfs entries + - ALSA: core: Add async signal helpers + - ALSA: timer: Use deferred fasync helper + - ALSA: pcm: Use deferred fasync helper + - ALSA: control: Use deferred fasync helper + - f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page() + - f2fs: fix to do sanity check on segment type in build_sit_entries() + - smb3: check xattr value length earlier + - powerpc/64: Init jump labels before parse_early_param() + - venus: pm_helpers: Fix warning in OPP during probe + - video: fbdev: i740fb: Check the argument of i740_calc_vclk() + - MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 + - f2fs: revive F2FS_IOC_ABORT_VOLATILE_WRITE + - f2fs: fix null-ptr-deref in f2fs_get_dnode_of_data + - scsi: ufs: ufs-mediatek: Fix build error and type mismatch + - Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" + - Linux 5.19.4 + + * RISC-V kernel config is out of sync with other archs (LP: #1981437) + - [Config] Align riscv64 CONFIG_LSM with other architectures + - [Config] Enable CONFIG_DRM_RCAR_USE_LVDS for riscv64 + - [Config] Enable CONFIG_DTPM for riscv64 + - [Config] Set CONFIG_MTD_RAW_NAND=m for riscv64 + + * Use upstream LED description on Unmatched (LP: #1987513) + - dt-bindings: leds: pwm-multicolor: Add active-low property + - leds: pwm-multicolor: Support active-low LEDs + - riscv: dts: sifive unmatched: Add PWM controlled LEDs + + * Fix invalid MAC address after hotplug tbt dock (LP: #1942999) + - SAUCE: igc: wait for the MAC copy when enabled MAC passthrough + + * Kinetic update: v5.19.3 upstream stable release (LP: #1987345) + - Revert "mm: kfence: apply kmemleak_ignore_phys on early allocated pool" + - tee: add overflow check in register_shm_helper() + - net_sched: cls_route: disallow handle of 0 + - btrfs: only write the sectors in the vertical stripe which has data stripes + - btrfs: raid56: don't trust any cached sector in __raid56_parity_recover() + - kexec, KEYS: make the code in bzImage64_verify_sig generic + - arm64: kexec_file: use more system keyrings to verify kernel image signature + - Linux 5.19.3 + + * [22.04 FEAT] Deactivitate CONFIG_QETH_OSX kernel config option + (LP: #1959890) + - [Config] disable CONFIG_QETH_OSX on s390x + + * Kinetic update: v5.19.2 upstream stable release (LP: #1986865) + - Makefile: link with -z noexecstack --no-warn-rwx-segments + - x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments + - Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" + - scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover" + - pNFS/flexfiles: Report RDMA connection errors to the server + - nfsd: eliminate the NFSD_FILE_BREAK_* flags + - ALSA: usb-audio: Add quirk for Behringer UMC202HD + - ALSA: bcd2000: Fix a UAF bug on the error path of probing + - ALSA: hda/realtek: Add quirk for Clevo NV45PZ + - ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx + - ALSA: hda/realtek: Add quirk for Lenovo Yoga9 14IAP7 + - ASoC: amd: yc: Update DMI table entries + - hwmon: (nct6775) Fix platform driver suspend regression + - wifi: mac80211_hwsim: fix race condition in pending packet + - wifi: mac80211_hwsim: add back erroneously removed cast + - wifi: mac80211_hwsim: use 32-bit skb cookie + - add barriers to buffer_uptodate and set_buffer_uptodate + - lockd: detect and reject lock arguments that overflow + - HID: hid-input: add Surface Go battery quirk + - HID: nintendo: Add missing array termination + - HID: wacom: Only report rotation for art pen + - HID: wacom: Don't register pad_input for touch switch + - KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case + - KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case + - KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0 + - KVM: s390: pv: don't present the ecall interrupt twice + - KVM: Drop unused @gpa param from gfn=>pfn cache's __release_gpc() helper + - KVM: Put the extra pfn reference when reusing a pfn in the gpc cache + - KVM: Fully serialize gfn=>pfn cache refresh via mutex + - KVM: Fix multiple races in gfn=>pfn cache refresh + - KVM: Do not incorporate page offset into gfn=>pfn cache user address + - KVM: x86: Split kvm_is_valid_cr4() and export only the non-vendor bits + - KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value + - KVM: nVMX: Account for KVM reserved CR4 bits in consistency checks + - KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4 + - KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks + - KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP + - KVM: x86/mmu: Treat NX as a valid SPTE bit for NPT + - KVM: SVM: Disable SEV-ES support if MMIO caching is disable + - KVM: x86: Tag kvm_mmu_x86_module_init() with __init + - KVM: x86/mmu: Fully re-evaluate MMIO caching when SPTE masks change + - KVM: x86: do not report preemption if the steal time cache is stale + - KVM: x86: revalidate steal time cache if MSR value changes + - KVM: x86/xen: Initialize Xen timer only once + - KVM: x86/xen: Stop Xen timer before changing IRQ + - ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model + - ALSA: hda/cirrus - support for iMac 12,1 model + - ALSA: hda/realtek: Add quirk for another Asus K42JZ model + - ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED + - LoongArch: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - tty: 8250: Add support for Brainboxes PX cards. + - tty: vt: initialize unicode screen buffer + - vfs: Check the truncate maximum size in inode_newsize_ok() + - fs: Add missing umask strip in vfs_tmpfile + - thermal: sysfs: Fix cooling_device_stats_setup() error code path + - fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters + - fbcon: Fix accelerated fbdev scrolling while logo is still shown + - usbnet: Fix linkwatch use-after-free on disconnect + - usbnet: smsc95xx: Fix deadlock on runtime resume + - fix short copy handling in copy_mc_pipe_to_iter() + - crypto: ccp - Use kzalloc for sev ioctl interfaces to prevent kernel memory + leak + - ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh() + - parisc: Fix device names in /proc/iomem + - parisc: Drop pa_swapper_pg_lock spinlock + - parisc: Check the return value of ioremap() in lba_driver_probe() + - parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode + - riscv:uprobe fix SR_SPIE set/clear handling + - riscv: lib: uaccess: fix CSR_STATUS SR_SUM bit + - dt-bindings: riscv: fix SiFive l2-cache's cache-sets + - riscv: dts: starfive: correct number of external interrupts + - RISC-V: cpu_ops_spinwait.c should include head.h + - RISC-V: Declare cpu_ops_spinwait in + - RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context + - RISC-V: Fixup get incorrect user mode PC for kernel mode regs + - RISC-V: Fixup schedule out issue in machine_crash_shutdown() + - RISC-V: Add modules to virtual kernel memory layout dump + - RISC-V: Fix counter restart during overflow for RV32 + - RISC-V: Fix SBI PMU calls for RV32 + - RISC-V: Update user page mapping only once during start + - wireguard: selftests: set CONFIG_NONPORTABLE on riscv32 + - rtc: rx8025: fix 12/24 hour mode detection on RX-8035 + - drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error + - drm/shmem-helper: Add missing vunmap on error + - drm/vc4: hdmi: Disable audio if dmas property is present but empty + - drm/ingenic: Use the highest possible DMA burst size + - drm/fb-helper: Fix out-of-bounds access + - drm/hyperv-drm: Include framebuffer and EDID headers + - drm/dp/mst: Read the extended DPCD capabilities during system resume + - drm/nouveau: fix another off-by-one in nvbios_addr + - drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend() + - drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime + - drm/nouveau/kms: Fix failure path for creating DP connectors + - drm/tegra: Fix vmapping of prime buffers + - drm/amdgpu: Check BO's requested pinning domains against its + preferred_domains + - bpf: Fix KASAN use-after-free Read in compute_effective_progs + - btrfs: reject log replay if there is unsupported RO compat flag + - mtd: rawnand: arasan: Fix clock rate in NV-DDR + - mtd: rawnand: arasan: Update NAND bus clock instead of system clock + - um: Remove straying parenthesis + - um: seed rng using host OS rng + - iio: fix iio_format_avail_range() printing for none IIO_VAL_INT + - iio: light: isl29028: Fix the warning in isl29028_remove() + - scsi: lpfc: Remove extra atomic_inc on cmd_pending in queuecommand after + VMID + - scsi: sg: Allow waiting for commands to complete on removed device + - scsi: qla2xxx: Fix incorrect display of max frame size + - scsi: qla2xxx: Zero undefined mailbox IN registers + - soundwire: qcom: Check device status before reading devid + - ksmbd: fix memory leak in smb2_handle_negotiate + - ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT + - ksmbd: prevent out of bound read for SMB2_WRITE + - ksmbd: fix use-after-free bug in smb2_tree_disconect + - ksmbd: fix heap-based overflow in set_ntacl_dacl() + - fuse: limit nsec + - fuse: ioctl: translate ENOSYS + - fuse: write inode in fuse_release() + - fuse: fix deadlock between atomic O_TRUNC and page invalidation + - serial: mvebu-uart: uart2 error bits clearing + - md-raid: destroy the bitmap after destroying the thread + - md-raid10: fix KASAN warning + - mbcache: don't reclaim used entries + - mbcache: add functions to delete entry if unused + - media: isl7998x: select V4L2_FWNODE to fix build error + - media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator + - ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() + - powerpc: Restore CONFIG_DEBUG_INFO in defconfigs + - powerpc/64e: Fix early TLB miss with KUAP + - powerpc/fsl-pci: Fix Class Code of PCIe Root Port + - powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E + - powerpc/powernv: Avoid crashing if rng is NULL + - MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - coresight: Clear the connection field properly + - usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion + - USB: HCD: Fix URB giveback issue in tasklet function + - Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP" + - ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC + - arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC + - usb: dwc3: gadget: refactor dwc3_repare_one_trb + - usb: dwc3: gadget: fix high speed multiplier setting + - netfilter: nf_tables: do not allow SET_ID to refer to another table + - netfilter: nf_tables: do not allow CHAIN_ID to refer to another table + - netfilter: nf_tables: do not allow RULE_ID to refer to another chain + - netfilter: nf_tables: upfront validation of data via nft_data_init() + - netfilter: nf_tables: disallow jump to implicit chain from set element + - netfilter: nf_tables: fix null deref due to zeroed list head + - epoll: autoremove wakers even more aggressively + - x86: Handle idle=nomwait cmdline properly for x86_idle + - arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic + - arm64: kasan: do not instrument stacktrace.c + - arm64: stacktrace: use non-atomic __set_bit + - arm64: Do not forget syscall when starting a new thread. + - arm64: fix oops in concurrently setting insn_emulation sysctls + - arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags" + - [Config] updateconfigs for ARM64_ERRATUM_1742098 + - arm64: errata: Remove AES hwcap for COMPAT tasks + - ext2: Add more validity checks for inode counts + - sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg + - genirq: Don't return error on missing optional irq_request_resources() + - irqchip/mips-gic: Only register IPI domain when SMP is enabled + - genirq: GENERIC_IRQ_IPI depends on SMP + - sched/fair: fix case with reduced capacity CPU + - sched/core: Always flush pending blk_plug + - irqchip/mips-gic: Check the return value of ioremap() in gic_of_init() + - ARM: dts: imx6ul: add missing properties for sram + - ARM: dts: imx6ul: change operating-points to uint32-matrix + - ARM: dts: imx6ul: fix keypad compatible + - ARM: dts: imx6ul: fix csi node compatible + - ARM: dts: imx6ul: fix lcdif node compatible + - ARM: dts: imx6ul: fix qspi node compatible + - ARM: dts: BCM5301X: Add DT for Meraki MR26 + - ARM: dts: ux500: Fix Janice accelerometer mounting matrix + - ARM: dts: ux500: Fix Codina accelerometer mounting matrix + - ARM: dts: ux500: Fix Gavini accelerometer mounting matrix + - arm64: dts: qcom: timer should use only 32-bit size + - spi: synquacer: Add missing clk_disable_unprepare() + - ARM: OMAP2+: display: Fix refcount leak bug + - ARM: OMAP2+: pdata-quirks: Fix refcount leak bug + - ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks + - ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk + - ACPI: PM: save NVS memory for Lenovo G40-45 + - ACPI: LPSS: Fix missing check in register_device_clock() + - ARM: dts: qcom: sdx55: Fix the IRQ trigger type for UART + - arm64: dts: qcom: sc7280: Rename sar sensor labels + - arm64: dts: qcom: add missing AOSS QMP compatible fallback + - arm64: dts: qcom: ipq8074: fix NAND node name + - arm64: dts: allwinner: a64: orangepi-win: Fix LED node name + - ARM: shmobile: rcar-gen2: Increase refcount for new reference + - firmware: tegra: Fix error check return value of debugfs_create_file() + - hwmon: (dell-smm) Add Dell XPS 13 7390 to fan control whitelist + - PM: EM: convert power field to micro-Watts precision and align drivers + - ACPI: video: Use native backlight on Dell Inspiron N4010 + - hwmon: (sht15) Fix wrong assumptions in device remove callback + - PM: hibernate: defer device probing when resuming from hibernation + - selinux: fix memleak in security_read_state_kernel() + - selinux: Add boundary check in put_entry() + - io_uring: fix io_uring_cqe_overflow trace format + - kasan: test: Silence GCC 12 warnings + - wait: Fix __wait_event_hrtimeout for RT/DL tasks + - meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init + - arm64: dts: renesas: beacon: Fix regulator node names + - spi: spi-altera-dfl: Fix an error handling path + - ARM: bcm: Fix refcount leak in bcm_kona_smc_init + - ACPI: processor/idle: Annotate more functions to live in cpuidle section + - ARM: dts: imx7d-colibri-emmc: add cpu1 supply + - ARM: dts: imx7-colibri: overhaul display/touch functionality + - ARM: dts: imx7-colibri: add usb dual-role switching using extcon + - ARM: dts: imx7-colibri: improve wake-up with gpio key + - ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys + - ARM: dts: imx7-colibri-eval-v3: correct can controller comment + - soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values + - soc: amlogic: Fix refcount leak in meson-secure-pwrc.c + - arm64: dts: renesas: Fix thermal-sensors on single-zone sensors + - Revert "ARM: dts: imx6qdl-apalis: Avoid underscore in node name" + - x86/pmem: Fix platform-device leak in error path + - ARM: dts: ast2500-evb: fix board compatible + - ARM: dts: ast2600-evb: fix board compatible + - ARM: dts: ast2600-evb-a1: fix board compatible + - arm64: dts: mt8192: Fix idle-states nodes naming scheme + - arm64: dts: mt8192: Fix idle-states entry-method + - arm64: select TRACE_IRQFLAGS_NMI_SUPPORT + - arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1 + - locking/lockdep: Fix lockdep_init_map_*() confusion + - arm64: dts: qcom: sc7180: Remove ipa_fw_mem node on trogdor + - soc: fsl: guts: machine variable might be unset + - spi: s3c64xx: constify fsd_spi_port_config + - block: fix infinite loop for invalid zone append + - arm64: dts: qcom: sdm845-akatsuki: Round down l22a regulator voltage + - ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg + - ARM: OMAP2+: Fix refcount leak in omapdss_init_of + - ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init + - arm64: dts: qcom: sdm630: disable GPU by default + - arm64: dts: qcom: sdm630: fix the qusb2phy ref clock + - arm64: dts: qcom: sdm630: fix gpu's interconnect path + - arm64: dts: qcom: sdm636-sony-xperia-ganges-mermaid: correct sdc2 pinconf + - cpufreq: zynq: Fix refcount leak in zynq_get_revision + - arm64: dts: renesas: r8a779m8: Drop operating points above 1.5 GHz + - arm64: dts: renesas: r9a07g054l2-smarc: Correct SoC name in comment + - regulator: qcom_smd: Fix pm8916_pldo range + - ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP + - ARM: dts: qcom: replace gcc PXO with pxo_board fixed clock + - ARM: dts: qcom-msm8974: fix irq type on blsp2_uart1 + - soc: qcom: ocmem: Fix refcount leak in of_get_ocmem + - soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register + - ARM: dts: qcom: msm8974: add required ranges to OCMEM + - ARM: dts: qcom: pm8841: add required thermal-sensor-cells + - bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() + - lib: overflow: Do not define 64-bit tests on 32-bit + - stack: Declare {randomize_,}kstack_offset to fix Sparse warnings + - arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node + - arm64: dts: qcom: msm8994: add required ranges to OCMEM + - perf/x86/intel: Fix PEBS memory access info encoding for ADL + - perf/x86/intel: Fix PEBS data source encoding for ADL + - arm64: dts: exynosautov9: correct spi11 pin names + - ACPI: VIOT: Fix ACS setup + - m68k: virt: Fix missing platform_device_unregister() on error in + virt_platform_init() + - arm64: dts: qcom: sm6125: Move sdc2 pinctrl from seine-pdx201 to sm6125 + - arm64: dts: qcom: sm6125: Append -state suffix to pinctrl nodes + - arm64: dts: qcom: msm8996: correct #clock-cells for QMP PHY nodes + - arm64: dts: qcom: sc7280: drop PCIe PHY clock index + - arm64: dts: qcom: sm8250: add missing PCIe PHY clock-cells + - arm64: dts: mt7622: fix BPI-R64 WPS button + - arm64: tegra: Mark BPMP channels as no-memory-wc + - arm64: tegra: Fix SDMMC1 CD on P2888 + - arm64: dts: qcom: sc7280: fix PCIe clock reference + - erofs: wake up all waiters after z_erofs_lzma_head ready + - erofs: avoid consecutive detection for Highmem memory + - spi: Return deferred probe error when controller isn't yet available + - blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created + - spi: dw: Fix IP-core versions macro + - spi: Fix simplification of devm_spi_register_controller + - spi: tegra20-slink: fix UAF in tegra_slink_remove() + - hwmon: (sch56xx-common) Add DMI override table + - hwmon: (drivetemp) Add module alias + - blktrace: Trace remapped requests correctly + - PM: domains: Ensure genpd_debugfs_dir exists before remove + - dm writecache: return void from functions + - dm writecache: count number of blocks read, not number of read bios + - dm writecache: count number of blocks written, not number of write bios + - dm writecache: count number of blocks discarded, not number of discard bios + - regulator: of: Fix refcount leak bug in of_get_regulation_constraints() + - soc: qcom: Make QCOM_RPMPD depend on PM + - soc: qcom: socinfo: Fix the id of SA8540P SoC + - arm64: dts: qcom: msm8998: Make regulator voltages multiple of step-size + - arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment + - ARM: dts: qcom: msm8974: Disable remoteprocs by default + - irqdomain: Report irq number for NOMAP domains + - perf: RISC-V: Add of_node_put() when breaking out of for_each_of_cpu_node() + - drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX + - nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt() + - sched: only perform capability check on privileged operation + - sched/numa: Initialise numa_migrate_retry + - x86/extable: Fix ex_handler_msr() print condition + - io_uring: move to separate directory + - io_uring: define a 'prep' and 'issue' handler for each opcode + - io_uring: Don't require reinitable percpu_ref + - selftests/seccomp: Fix compile warning when CC=clang + - thermal/tools/tmon: Include pthread and time headers in tmon.h + - tools/power turbostat: Fix file pointer leak + - dm: return early from dm_pr_call() if DM device is suspended + - pwm: sifive: Simplify offset calculation for PWMCMP registers + - pwm: sifive: Ensure the clk is enabled exactly once per running PWM + - pwm: sifive: Shut down hardware only after pwmchip_remove() completed + - pwm: lpc18xx: Fix period handling + - erofs: update ctx->pos for every emitted dirent + - dt-bindings: display: bridge: ldb: Fill in reg property + - drm/i915: remove unused GEM_DEBUG_DECL() and GEM_DEBUG_BUG_ON() + - drm/rockchip: vop2: unlock on error path in vop2_crtc_atomic_enable() + - [Config] updateconfigs for DRM_FSL_LDB + - drm: bridge: DRM_FSL_LDB should depend on ARCH_MXC + - drm/bridge: anx7625: Use DPI bus type + - drm/mgag200: Acquire I/O lock while reading EDID + - drm/meson: Fix refcount leak in meson_encoder_hdmi_init + - drm/dp: Export symbol / kerneldoc fixes for DP AUX bus + - drm/bridge: tc358767: Handle dsi_lanes == 0 as invalid + - drm/bridge: tc358767: Make sure Refclk clock are enabled + - ath10k: do not enforce interrupt trigger type + - ath11k: Fix warning on variable 'sar' dereference before check + - ath11k: Init hw_params before setting up AHB resources + - drm/edid: reset display info in drm_add_edid_modes() for NULL edid + - drm/bridge: lt9611: Use both bits for HDMI sensing + - drm/st7735r: Fix module autoloading for Okaya RH128128T + - drm/panel: Fix build error when CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=y && + CONFIG_DRM_DISPLAY_HELPER=m + - drm: bridge: adv7511: Move CEC definitions to adv7511_cec.c + - wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c() + - wifi: wilc1000: use correct sequence of RESET for chip Power-UP/Down + - ath11k: fix netdev open race + - ath11k: fix IRQ affinity warning on shutdown + - drm/mipi-dbi: align max_chunk to 2 in spi_transfer + - drm/ssd130x: Only define a SPI device ID table when built as a module + - selftests/bpf: Fix test_run logic in fexit_stress.c + - sample: bpf: xdp_router_ipv4: Allow the kernel to send arp requests + - selftests/bpf: Fix tc_redirect_dtime + - libbpf: Fix is_pow_of_2 + - ath11k: fix missing skb drop on htc_tx_completion error + - ath11k: Fix incorrect debug_mask mappings + - ath11k: Avoid REO CMD failed prints during firmware recovery + - drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers() + - drm/mediatek: Modify dsi funcs to atomic operations + - drm/mediatek: Separate poweron/poweroff from enable/disable and define new + funcs + - drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function + - drm/meson: encoder_cvbs: Fix refcount leak in meson_encoder_cvbs_init + - drm/meson: encoder_hdmi: Fix refcount leak in meson_encoder_hdmi_init + - drm/bridge: lt9611uxc: Cancel only driver's work + - drm/amdgpu: fix scratch register access method in SRIOV + - drm/amdgpu/display: Prepare for new interfaces + - i2c: npcm: Remove own slave addresses 2:10 + - i2c: npcm: Correct slave role behavior + - i2c: mxs: Silence a clang warning + - virtio-gpu: fix a missing check to avoid NULL dereference + - drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init + - libbpf: Fix uprobe symbol file offset calculation logic + - drm: adv7511: override i2c address of cec before accessing it + - crypto: sun8i-ss - fix error codes in allocate_flows() + - crypto: sun8i-ss - Fix error codes for dma_mapping_error() + - crypto: sun8i-ss - fix a NULL vs IS_ERR() check in sun8i_ss_hashkey + - net: fix sk_wmem_schedule() and sk_rmem_schedule() errors + - can: netlink: allow configuring of fixed bit rates without need for + do_set_bittiming callback + - drm/vkms: check plane_composer->map[0] before using it + - can: netlink: allow configuring of fixed data bit rates without need for + do_set_data_bittiming callback + - drm/bridge: anx7625: Zero error variable when panel bridge not present + - drm/bridge: it6505: Add missing CRYPTO_HASH dependency + - i2c: Fix a potential use after free + - libbpf: Fix internal USDT address translation logic for shared libraries + - selftests/bpf: Don't force lld on non-x86 architectures + - tcp: fix possible freeze in tx path under memory pressure + - crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs() + - net: ag71xx: fix discards 'const' qualifier warning + - ping: convert to RCU lookups, get rid of rwlock + - raw: use more conventional iterators + - raw: convert raw sockets to RCU + - raw: Fix mixed declarations error in raw_icmp_error(). + - media: atmel: atmel-sama7g5-isc: fix warning in configs without OF + - media: camss: csid: fix wrong size passed to devm_kmalloc_array() + - media: tw686x: Register the irq at the end of probe + - media: amphion: return error if format is unsupported by vpu + - media: Hantro: Correct G2 init qp field + - media: imx-jpeg: Correct some definition according specification + - media: imx-jpeg: Leave a blank space before the configuration data + - media: imx-jpeg: Align upwards buffer size + - media: imx-jpeg: Implement drain using v4l2-mem2mem helpers + - media: rcar-vin: Fix channel routing for Ebisu + - ath9k: fix use-after-free in ath9k_hif_usb_rx_cb + - wifi: mac80211: set STA deflink addresses + - wifi: iwlegacy: 4965: fix potential off-by-one overflow in + il4965_rs_fill_link_cmd() + - wifi: rtw89: 8852a: rfk: fix div 0 exception + - drm/radeon: fix incorrrect SPDX-License-Identifiers + - drm/amd: Don't show warning on reading vbios values for SMU13 3.1 + - drm/amdkfd: correct sdma queue number of sdma 6.0.1 + - torture: Adjust to again produce debugging information + - rcutorture: Fix ksoftirqd boosting timing and iteration + - test_bpf: fix incorrect netdev features + - drm/display: Fix build error without CONFIG_OF + - selftests/bpf: Fix rare segfault in sock_fields prog test + - crypto: ccp - During shutdown, check SEV data pointer before using + - drm: bridge: adv7511: Add check for mipi_dsi_driver_register + - media: imx-jpeg: Disable slot interrupt when frame done + - media: amphion: output firmware error message + - drm/mcde: Fix refcount leak in mcde_dsi_bind + - media: hdpvr: fix error value returns in hdpvr_read + - media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set + - media: sta2x11: remove VIRT_TO_BUS dependency + - media: mediatek: vcodec: Initialize decoder parameters after getting + dec_capability + - media: mediatek: vcodec: Skip SOURCE_CHANGE & EOS events for stateless + - media: driver/nxp/imx-jpeg: fix a unexpected return value problem + - media: tw686x: Fix memory leak in tw686x_video_init + - media: mediatek: vcodec: Fix non subdev architecture open power fail + - drm/vc4: kms: Use maximum FIFO load for the HVS clock rate + - drm/vc4: plane: Remove subpixel positioning check + - drm/vc4: plane: Fix margin calculations for the right/bottom edges + - drm/vc4: dsi: Release workaround buffer and DMA + - drm/vc4: dsi: Correct DSI divider calculations + - drm/vc4: dsi: Correct pixel order for DSI0 + - drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type + - drm/vc4: dsi: Fix dsi0 interrupt support + - drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable + iteration + - drm/vc4: hdmi: Add all the vc5 HDMI registers into the debugfs dumps + - drm/vc4: hdmi: Clear unused infoframe packet RAM registers + - drm/vc4: hdmi: Avoid full hdmi audio fifo writes + - drm/vc4: hdmi: Reset HDMI MISC_CONTROL register + - drm/vc4: hdmi: Switch to pm_runtime_status_suspended + - drm/vc4: hdmi: Move HDMI reset to pm_resume + - drm/vc4: hdmi: Fix timings for interlaced modes + - drm/vc4: hdmi: Force modeset when bpc or format changes + - drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes + - drm/vc4: hdmi: Move pixel doubling from Pixelvalve to HDMI block + - mm: Account dirty folios properly during splits + - crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE + - selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0 + - net: dsa: felix: update base time of time-aware shaper when adjusting PTP + time + - net: dsa: felix: keep reference on entire tc-taprio config + - net: dsa: felix: drop oversized frames with tc-taprio instead of hanging the + port + - selftests: net: fib_rule_tests: fix support for running individual tests + - drm/rockchip: vop: Don't crash for invalid duplicate_state() + - drm/rockchip: Fix an error handling path rockchip_dp_probe() + - drm/mediatek: dpi: Remove output format of YUV + - drm/mediatek: dpi: Only enable dpi after the bridge is enabled + - drm/msm/dpu: move intf and wb assignment to dpu_encoder_setup_display() + - drm/msm/dpu: fix maxlinewidth for writeback block + - drm/msm/dpu: remove hard-coded linewidth limit for writeback + - drm/msm/hdmi: fill the pwr_regs bulk regulators + - drm: bridge: sii8620: fix possible off-by-one + - drm/msm: Fix fence rollover issue + - net: sched: provide shim definitions for taprio_offload_{get,free} + - net: dsa: felix: build as module when tc-taprio is module + - hinic: Use the bitmap API when applicable + - net: hinic: fix bug that ethtool get wrong stats + - net: hinic: avoid kernel hung in hinic_get_stats64() + - drm/bridge: anx7625: Fix NULL pointer crash when using edp-panel + - drm/msm: Avoid unclocked GMU register access in 6xx gpu_busy + - libbpf, riscv: Use a0 for RC register + - drm/msm/mdp5: Fix global state lock backoff + - drm/radeon: avoid bogus "vram limit (0) must be a power of 2" warning + - crypto: hisilicon/sec - don't sleep when in softirq + - crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq + - media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment + - media: amphion: release core lock before reset vpu core + - drm/msm/dpu: Fix for non-visible planes + - media: atomisp: revert "don't pass a pointer to a local variable" + - media: mediatek: vcodec: decoder: Fix 4K frame size enumeration + - media: mediatek: vcodec: decoder: Fix resolution clamping in TRY_FMT + - media: mediatek: vcodec: decoder: Skip alignment for default resolution + - media: mediatek: vcodec: decoder: Drop max_{width,height} from + mtk_vcodec_ctx + - media: mediatek: vcodec: Initialize decoder parameters for each instance + - media: amphion: defer setting last_buffer_dequeued until resolution changes + are processed + - media: hantro: Be more accurate on pixel formats step_width constraints + - media: hantro: Fix RK3399 H.264 format advertising + - media: amphion: sync buffer status with firmware during abort + - media: amphion: only insert the first sequence startcode for vc1l format + - mt76: mt7915: fix endianness in mt7915_rf_regval_get + - mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg + - mt76: mt7915: fix endian bug in mt7915_rf_regval_set() + - mt76: mt7921s: fix firmware download random fail + - mt76: mt7921: not support beacon offload disable command + - wifi: mac80211: reject WEP or pairwise keys with key ID > 3 + - wifi: cfg80211: do some rework towards MLO link APIs + - wifi: mac80211: move some future per-link data to bss_conf + - mt76: mt7615: do not update pm stats in case of error + - mt76: mt7921: do not update pm states in case of error + - mt76: mt7921s: fix possible sdio deadlock in command fail + - mt76: mt7921: fix aggregation subframes setting to HE max + - mt76: mt7921: enlarge maximum VHT MPDU length to 11454 + - mt76: mt7921: rely on mt76_dev in mt7921_mac_write_txwi signature + - mt76: mt7915: rely on mt76_dev in mt7915_mac_write_txwi signature + - mt76: connac: move mac connac2 defs in mt76_connac2_mac.h + - mt76: connac: move connac2_mac_write_txwi in mt76_connac module + - mt76: mt7915: fix incorrect testmode ipg on band 1 caused by wmm_idx + - mt76: mt7615: fix throughput regression on DFS channels + - mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init() + - mediatek: mt76: eeprom: fix missing of_node_put() in + mt76_find_power_limits_node() + - skmsg: Fix invalid last sg check in sk_msg_recvmsg() + - drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed. + - bpf, x64: Add predicate for bpf2bpf with tailcalls support in JIT + - bpf, x86: fix freeing of not-finalized bpf_prog_pack + - tcp: make retransmitted SKB fit into the send window + - libbpf: Fix the name of a reused map + - kunit: executor: Fix a memory leak on failure in kunit_filter_tests + - selftests: timers: valid-adjtimex: build fix for newer toolchains + - selftests: timers: clocksource-switch: fix passing errors from child + - bpf: Fix subprog names in stack traces. + - wifi: nl80211: acquire wdev mutex for dump_survey + - media: v4l: async: Also match secondary fwnode endpoints + - media: ov7251: add missing disable functions on error in + ov7251_set_power_on() + - fs: check FMODE_LSEEK to control internal pipe splicing + - media: cedrus: h265: Fix flag name + - media: uapi: HEVC: Change pic_order_cnt definition in v4l2_hevc_dpb_entry + - media: cedrus: h265: Fix logic for not low delay flag + - wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() + - wifi: p54: Fix an error handling path in p54spi_probe() + - wifi: p54: add missing parentheses in p54_flush() + - drm/amdgpu: use the same HDP flush registers for all nbio 7.4.x + - drm/amdgpu: use the same HDP flush registers for all nbio 2.3.x + - drm/amdgpu: restore original stable pstate on ctx fini + - bpf: fix potential 32-bit overflow when accessing ARRAY map element + - libbpf: make RINGBUF map size adjustments more eagerly + - selftests/bpf: fix a test for snprintf() overflow + - libbpf: fix an snprintf() overflow check + - can: pch_can: do not report txerr and rxerr during bus-off + - can: rcar_can: do not report txerr and rxerr during bus-off + - can: sja1000: do not report txerr and rxerr during bus-off + - can: hi311x: do not report txerr and rxerr during bus-off + - can: sun4i_can: do not report txerr and rxerr during bus-off + - can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off + - can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off + - can: usb_8dev: do not report txerr and rxerr during bus-off + - can: error: specify the values of data[5..7] of CAN error frames + - libbpf: Fix str_has_sfx()'s return value + - can: pch_can: pch_can_error(): initialize errc before using it + - Bluetooth: hci_intel: Add check for platform_driver_register + - Bluetooth: When HCI work queue is drained, only queue chained work + - Bluetooth: mgmt: Fix refresh cached connection info + - Bluetooth: hci_sync: Fix resuming scan after suspend resume + - Bluetooth: hci_sync: Fix not updating privacy_mode + - Bluetooth: Add default wakeup callback for HCI UART driver + - i2c: cadence: Support PEC for SMBus block read + - i2c: qcom-geni: Use the correct return value + - btrfs: update stripe_sectors::uptodate in steal_rbio + - ip_tunnels: Add new flow flags field to ip_tunnel_key + - bpf: Set flow flag to allow any source IP in bpf_tunnel_key + - bpf: Fix bpf_xdp_pointer return pointer + - i2c: mux-gpmux: Add of_node_put() when breaking out of loop + - wifi: ath11k: Fix register write failure on QCN9074 + - wifi: wil6210: debugfs: fix uninitialized variable use in + `wil_write_file_wmi()` + - wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue + - wifi: libertas: Fix possible refcount leak in if_usb_probe() + - media: cedrus: hevc: Add check for invalid timestamp + - hantro: Remove incorrect HEVC SPS validation + - drm/amd/display: fix signedness bug in execute_synaptics_rc_command() + - net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS + cipher/version + - net/mlx5e: TC, Fix post_act to not match on in_port metadata + - net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS + - net/mlx5e: xsk: Account for XSK RQ UMRs when calculating ICOSQ size + - net/mlx5e: Fix calculations related to max MPWQE size + - net/mlx5e: Modify slow path rules to go to slow fdb + - net/mlx5: Adjust log_max_qp to be 18 at most + - net/mlx5: DR, Fix SMFS steering info dump format + - net/mlx5: Fix driver use of uninitialized timeout + - ax25: fix incorrect dev_tracker usage + - crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq + - crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of + - crypto: hisilicon/sec - fix auth key size error + - net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set + - netdevsim: fib: Fix reference count leak on route deletion failure + - wifi: rtw88: check the return value of alloc_workqueue() + - iavf: Fix max_rate limiting + - iavf: Fix 'tc qdisc show' listing too many queues + - netdevsim: Avoid allocation warnings triggered from user space + - net: rose: fix netdev reference changes + - net: ice: fix error NETIF_F_HW_VLAN_CTAG_FILTER check in ice_vsi_sync_fltr() + - net: ionic: fix error check for vlan flags in ionic_set_nic_features() + - dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock + - net: usb: make USB_RTL8153_ECM non user configurable + - net/mlx5e: xsk: Discard unaligned XSK frames on striding RQ + - wireguard: ratelimiter: use hrtimer in selftest + - wireguard: allowedips: don't corrupt stack when detecting overflow + - HID: amd_sfh: Don't show client init failed as error when discovery fails + - clk: renesas: r9a06g032: Fix UART clkgrp bitsel + - mtd: maps: Fix refcount leak in of_flash_probe_versatile + - mtd: maps: Fix refcount leak in ap_flash_init + - mtd: rawnand: meson: Fix a potential double free issue + - clk: renesas: rzg2l: Fix reset status function + - of: check previous kernel's ima-kexec-buffer against memory bounds + - scsi: qla2xxx: edif: Reduce Initiator-Initiator thrashing + - scsi: qla2xxx: edif: bsg refactor + - scsi: qla2xxx: edif: Wait for app to ack on sess down + - scsi: qla2xxx: edif: Add bsg interface to read doorbell events + - scsi: qla2xxx: edif: Fix potential stuck session in sa update + - scsi: qla2xxx: edif: Synchronize NPIV deletion with authentication + application + - scsi: qla2xxx: edif: Add retry for ELS passthrough + - scsi: qla2xxx: edif: Fix n2n discovery issue with secure target + - scsi: qla2xxx: edif: Fix n2n login retry for secure device + - KVM: SVM: Unwind "speculative" RIP advancement if INTn injection "fails" + - KVM: SVM: Stuff next_rip on emulated INT3 injection if NRIPS is supported + - KVM: x86/mmu: Drop RWX=0 SPTEs during ept_sync_page() + - phy: samsung: exynosautov9-ufs: correct TSRV register configurations + - PCI: microchip: Fix refcount leak in mc_pcie_init_irq_domains() + - PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep() + - HID: cp2112: prevent a buffer overflow in cp2112_xfer() + - mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release + - mtd: partitions: Fix refcount leak in parse_redboot_of + - mtd: parsers: ofpart: Fix refcount leak in bcm4908_partitions_fw_offset + - mtd: spear_smi: Don't skip cleanup after mtd_device_unregister() failed + - mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path + - mtd: spear_smi: Drop if with an always false condition + - mtd: st_spi_fsm: Warn about failure to unregister mtd device + - mtd: st_spi_fsm: Disable clock only after device was unregistered + - PCI: mediatek-gen3: Fix refcount leak in mtk_pcie_init_irq_domains() + - fpga: altera-pr-ip: fix unsigned comparison with less than zero + - usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe + - usb: cdns3: fix random warning message when driver load + - usb: gadget: uvc: Fix comment blocks style + - usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe + - usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init() + - usbip: vudc: Don't enable IRQs prematurely + - usb: host: ohci-at91: add support to enter suspend using SMC + - usb: xhci: tegra: Fix error check + - dmaengine: dw: dmamux: Export the module device table + - dmaengine: dw: dmamux: Fix build without CONFIG_OF + - netfilter: xtables: Bring SPDX identifier back + - scsi: qla2xxx: edif: Send LOGO for unexpected IKE message + - scsi: qla2xxx: edif: Reduce disruption due to multiple app start + - scsi: qla2xxx: edif: Fix no login after app start + - scsi: qla2xxx: edif: Tear down session if keys have been removed + - scsi: qla2xxx: edif: Fix session thrash + - scsi: qla2xxx: edif: Fix no logout on delete for N2N + - scsi: qla2xxx: edif: Reduce N2N thrashing at app_start time + - iio: accel: bma400: Fix the scale min and max macro values + - platform/chrome: cros_ec: Always expose last resume result + - iio: sx9324: Fix register field spelling + - iio: accel: bma400: Reordering of header files + - iio: accel: bma400: conversion to device-managed function + - iio: accel: bma400: Add triggered buffer support + - iio: core: Fix IIO_ALIGN and rename as it was not sufficiently large + - iio: accel: adxl313: Fix alignment for DMA safety + - iio: accel: adxl355: Fix alignment for DMA safety + - iio: accel: adxl367: Fix alignment for DMA safety + - iio: accel: bma220: Fix alignment for DMA safety + - iio: accel: sca3000: Fix alignment for DMA safety + - iio: accel: sca3300: Fix alignment for DMA safety + - iio: adc: ad7266: Fix alignment for DMA safety + - iio: adc: ad7280a: Fix alignment for DMA safety + - iio: adc: ad7292: Fix alignment for DMA safety + - iio: adc: ad7298: Fix alignment for DMA safety + - iio: adc: ad7476: Fix alignment for DMA safety + - iio: adc: ad7606: Fix alignment for DMA safety + - iio: adc: ad7766: Fix alignment for DMA safety + - iio: adc: ad7768-1: Fix alignment for DMA safety + - iio: adc: ad7887: Fix alignment for DMA safety + - iio: adc: ad7923: Fix alignment for DMA safety + - iio: adc: ad7949: Fix alignment for DMA safety + - iio: adc: hi8435: Fix alignment for DMA safety + - iio: adc: ltc2496: Fix alignment for DMA safety + - iio: adc: ltc2497: Fix alignment for DMA safety + - iio: adc: max1027: Fix alignment for DMA safety + - iio: adc: max11100: Fix alignment for DMA safety + - iio: adc: max1118: Fix alignment for DMA safety + - iio: adc: max1241: Fix alignment for DMA safety + - iio: adc: mcp320x: Fix alignment for DMA safety + - iio: adc: ti-adc0832: Fix alignment for DMA safety + - iio: adc: ti-adc084s021: Fix alignment for DMA safety + - iio: adc: ti-adc108s102: Fix alignment for DMA safety + - iio: adc: ti-adc12138: Fix alignment for DMA safety + - iio: adc: ti-adc128s052: Fix alignment for DMA safety + - iio: adc: ti-adc161s626: Fix alignment for DMA safety + - iio: adc: ti-ads124s08: Fix alignment for DMA safety + - iio: adc: ti-ads131e08: Fix alignment for DMA safety + - iio: adc: ti-ads7950: Fix alignment for DMA safety + - iio: adc: ti-ads8344: Fix alignment for DMA safety + - iio: adc: ti-ads8688: Fix alignment for DMA safety + - iio: adc: ti-tlc4541: Fix alignment for DMA safety + - iio: addac: ad74413r: Fix alignment for DMA safety + - iio: amplifiers: ad8366: Fix alignment for DMA safety + - iio: common: ssp: Fix alignment for DMA safety + - iio: dac: ad5064: Fix alignment for DMA safety + - iio: dac: ad5360: Fix alignment for DMA safety + - iio: dac: ad5421: Fix alignment for DMA safety + - iio: dac: ad5449: Fix alignment for DMA safety + - iio: dac: ad5504: Fix alignment for DMA safety + - iio: dac: ad5592r: Fix alignment for DMA safety + - iio: dac: ad5686: Fix alignment for DMA safety + - iio: dac: ad5755: Fix alignment for DMA safety + - iio: dac: ad5761: Fix alignment for DMA safety + - iio: dac: ad5764: Fix alignment for DMA safety + - iio: dac: ad5766: Fix alignment for DMA safety + - iio: dac: ad5770r: Fix alignment for DMA safety + - iio: dac: ad5791: Fix alignment for DMA saftey + - iio: dac: ad7293: Fix alignment for DMA safety + - iio: dac: ad7303: Fix alignment for DMA safety + - iio: dac: ad8801: Fix alignment for DMA safety + - iio: dac: ltc2688: Fix alignment for DMA safety + - iio: dac: mcp4922: Fix alignment for DMA safety + - iio: dac: ti-dac082s085: Fix alignment for DMA safety + - iio: dac: ti-dac5571: Fix alignment for DMA safety + - iio: dac: ti-dac7311: Fix alignment for DMA safety + - iio: dac: ti-dac7612: Fix alignment for DMA safety + - iio: frequency: ad9523: Fix alignment for DMA safety + - iio: frequency: adf4350: Fix alignment for DMA safety + - iio: frequency: adf4371: Fix alignment for DMA safety + - iio: frequency: admv1013: Fix alignment for DMA safety + - iio: frequency: admv1014: Fix alignment for DMA safety + - iio: frequency: admv4420: Fix alignment for DMA safety + - iio: frequency: adrf6780: Fix alignment for DMA safety + - iio: gyro: adis16080: Fix alignment for DMA safety + - iio: gyro: adis16130: Fix alignment for DMA safety + - iio: gyro: adxrs450: Fix alignment for DMA safety + - iio: gyro: fxas210002c: Fix alignment for DMA safety + - iio: imu: fxos8700: Fix alignment for DMA safety + - iio: imu: inv_icm42600: Fix alignment for DMA safety + - iio: imu: inv_icm42600: Fix alignment for DMA safety in buffer code. + - iio: imu: mpu6050: Fix alignment for DMA safety + - iio: potentiometer: ad5110: Fix alignment for DMA safety + - iio: potentiometer: ad5272: Fix alignment for DMA safety + - iio: potentiometer: max5481: Fix alignment for DMA safety + - iio: potentiometer: mcp41010: Fix alignment for DMA safety + - iio: potentiometer: mcp4131: Fix alignment for DMA safety + - iio: proximity: as3935: Fix alignment for DMA safety + - iio: resolver: ad2s1200: Fix alignment for DMA safety + - iio: resolver: ad2s90: Fix alignment for DMA safety + - iio: temp: ltc2983: Fix alignment for DMA safety + - iio: temp: max31865: Fix alignment for DMA safety + - iio: temp: maxim_thermocouple: Fix alignment for DMA safety + - clk: mediatek: reset: Fix written reset bit offset + - clk: imx93: use adc_root as the parent clock of adc1 + - clk: imx93: correct nic_media parent + - clk: imx: clk-fracn-gppll: fix mfd value + - clk: imx: clk-fracn-gppll: Return rate in rate table properly in + ->recalc_rate() + - clk: imx: clk-fracn-gppll: correct rdiv + - RDMA/rxe: fix xa_alloc_cycle() error return value check again + - lib/test_hmm: avoid accessing uninitialized pages + - mm/memremap: fix memunmap_pages() race with get_dev_pagemap() + - KVM: Don't set Accessed/Dirty bits for ZERO_PAGE + - KVM: selftests: Convert s390x/diag318_test_handler away from VCPU_ID + - KVM: selftests: Use vm_create_with_vcpus() in max_guest_memory_test + - devcoredump: remove the useless gfp_t parameter in dev_coredumpv and + dev_coredumpm + - mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv + - scsi: iscsi: Allow iscsi_if_stop_conn() to be called from kernel + - scsi: iscsi: Add helper to remove a session from the kernel + - scsi: iscsi: Fix session removal on shutdown + - dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics + - KVM: x86: Fix errant brace in KVM capability handling + - mtd: hyperbus: rpc-if: Fix RPM imbalance in probe error path + - mtd: dataflash: Add SPI ID table + - clk: qcom: camcc-sm8250: Fix halt on boot by reducing driver's init level + - misc: rtsx: Fix an error handling path in rtsx_pci_probe() + - driver core: fix potential deadlock in __driver_attach + - clk: qcom: clk-krait: unlock spin after mux completion + - coresight: configfs: Fix unload of configurations on module exit + - coresight: syscfg: Update load and unload operations + - usb: gadget: f_mass_storage: Make CD-ROM emulation works with Windows OS + - clk: qcom: gcc-msm8939: Add missing SYSTEM_MM_NOC_BFDCD_CLK_SRC + - clk: qcom: gcc-msm8939: Fix bimc_ddr_clk_src rcgr base address + - clk: qcom: gcc-msm8939: Add missing system_mm_noc_bfdcd_clk_src + - clk: qcom: gcc-msm8939: Point MM peripherals to system_mm_noc clock + - usb: host: xhci: use snprintf() in xhci_decode_trb() + - RDMA/rxe: Add a responder state for atomic reply + - RDMA/rxe: Fix deadlock in rxe_do_local_ops() + - clk: qcom: ipq8074: fix NSS core PLL-s + - clk: qcom: ipq8074: SW workaround for UBI32 PLL lock + - clk: qcom: ipq8074: fix NSS port frequency tables + - clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks + - clk: qcom: camcc-sdm845: Fix topology around titan_top power domain + - clk: qcom: camcc-sm8250: Fix topology around titan_top power domain + - clk: qcom: clk-rcg2: Fail Duty-Cycle configuration if MND divider is not + enabled. + - clk: qcom: clk-rcg2: Make sure to not write d=0 to the NMD register + - kernfs: fix potential NULL dereference in __kernfs_remove + - mm: rmap: use the correct parameter name for DEFINE_PAGE_VMA_WALK + - mm/migration: return errno when isolate_huge_page failed + - mm/migration: fix potential pte_unmap on an not mapped pte + - mm: introduce clear_highpage_kasan_tagged + - kasan: fix zeroing vmalloc memory with HW_TAGS + - mm/mempolicy: fix get_nodes out of bound access + - phy: ti: tusb1210: Don't check for write errors when powering on + - phy: rockchip-inno-usb2: Sync initial otg state + - PCI: dwc: Stop link on host_init errors and de-initialization + - PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu() + - PCI: dwc: Disable outbound windows only for controllers using iATU + - PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address + - PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors + - PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists + - soundwire: bus_type: fix remove and shutdown support + - soundwire: revisit driver bind/unbind and callbacks + - KVM: arm64: Don't return from void function + - dmaengine: sf-pdma: Add multithread support for a DMA channel + - PCI: endpoint: Don't stop controller when unbinding endpoint function + - phy: qcom-qmp: fix the QSERDES_V5_COM_CMN_MODE register + - scsi: qla2xxx: Check correct variable in qla24xx_async_gffid() + - scsi: lpfc: Revert RSCN_MEMENTO workaround for misbehaved configuration + - intel_th: Fix a resource leak in an error handling path + - intel_th: msu-sink: Potential dereference of null pointer + - intel_th: msu: Fix vmalloced buffers + - binder: fix redefinition of seq_file attributes + - staging: rtl8192u: Fix sleep in atomic context bug in + dm_fsync_timer_callback + - rtla/utils: Use calloc and check the potential memory allocation failure + - habanalabs: fix double unlock on error in map_device_va() + - dt-bindings: mmc: sdhci-msm: Fix issues in yaml bindings + - mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch + - mmc: mxcmmc: Silence a clang warning + - mmc: renesas_sdhi: Get the reset handle early in the probe + - memstick/ms_block: Fix some incorrect memory allocation + - memstick/ms_block: Fix a memory leak + - mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R + - of: device: Fix missing of_node_put() in of_dma_set_restricted_buffer + - mmc: block: Add single read for 4k sector cards + - KVM: s390: pv: leak the topmost page table when destroy fails + - PCI/portdrv: Don't disable AER reporting in get_port_device_capability() + - PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks + - scsi: smartpqi: Fix DMA direction for RAID requests + - xtensa: iss/network: provide release() callback + - xtensa: iss: fix handling error cases in iss_net_configure() + - usb: gadget: udc: amd5536 depends on HAS_DMA + - usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc() + - usb: dwc3: core: Deprecate GCTL.CORESOFTRESET + - usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup + - usb: dwc3: qcom: fix missing optional irq warnings + - eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write() + - phy: stm32: fix error return in stm32_usbphyc_phy_init + - phy: rockchip-inno-usb2: Ignore OTG IRQs in host mode + - interconnect: imx: fix max_node_id + - KVM: arm64: Fix hypervisor address symbolization + - um: random: Don't initialise hwrng struct with zero + - mm: percpu: use kmemleak_ignore_phys() instead of kmemleak_free() + - RDMA/irdma: Fix a window for use-after-free + - RDMA/irdma: Fix VLAN connection with wildcard address + - RDMA/irdma: Fix setting of QP context err_rq_idx_valid field + - RDMA/rtrs-srv: Fix modinfo output for stringify + - RDMA/rtrs-clt: Replace list_next_or_null_rr_rcu with an inline function + - RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr() + - RDMA/hns: Fix incorrect clearing of interrupt status register + - RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event + - RDMA/rxe: Fix BUG: KASAN: null-ptr-deref in rxe_qp_do_cleanup + - iio: cros: Register FIFO callback after sensor is registered + - clk: qcom: Drop mmcx gdsc supply for dispcc and videocc + - clk: qcom: gdsc: Bump parent usage count when GDSC is found enabled + - clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk + - RDMA/hfi1: fix potential memory leak in setup_base_ctxt() + - gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data() + - iio: adc: max1027: unlock on error path in max1027_read_single_value() + - HID: mcp2221: prevent a buffer overflow in mcp_smbus_write() + - HID: amd_sfh: Add NULL check for hid device + - dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t) + - scripts/gdb: fix 'lx-dmesg' on 32 bits arch + - RDMA/rxe: Fix mw bind to allow any consumer key portion + - mmc: core: quirks: Add of_node_put() when breaking out of loop + - mmc: cavium-octeon: Add of_node_put() when breaking out of loop + - mmc: cavium-thunderx: Add of_node_put() when breaking out of loop + - HID: alps: Declare U1_UNICORN_LEGACY support + - RDMA/rxe: For invalidate compare according to set keys in mr + - RDMA/rxe: Fix rnr retry behavior + - PCI: tegra194: Fix Root Port interrupt handling + - PCI: tegra194: Fix link up retry sequence + - HID: amd_sfh: Handle condition of "no sensors" + - USB: serial: fix tty-port initialized comments + - usb: xhci_plat_remove: avoid NULL dereference + - usb: cdns3: change place of 'priv_ep' assignment in + cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable() + - mtd: spi-nor: fix spi_nor_spimem_setup_op() call in + spi_nor_erase_{sector,chip}() + - staging: fbtft: core: set smem_len before fb_deferred_io_init call + - KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP + - tools/power/x86/intel-speed-select: Fix off by one check + - platform/x86: pmc_atom: Match all Lex BayTrail boards with critclk_systems + DMI table + - platform/mellanox: mlxreg-lc: Fix error flow and extend verbosity + - platform/olpc: Fix uninitialized data in debugfs write + - RDMA/srpt: Duplicate port name members + - RDMA/srpt: Introduce a reference count in struct srpt_device + - RDMA/srpt: Fix a use-after-free + - android: binder: stop saving a pointer to the VMA + - mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region + - selftests/vm: fix errno handling in mrelease_test + - tools/testing/selftests/vm/hugetlb-madvise.c: silence uninitialized variable + warning + - selftest/vm: uninitialized variable in main() + - rtla: Fix Makefile when called from -C tools/ + - rtla: Fix double free + - [Config] updateconfigs for VIRTIO_ANCHOR + - virtio: replace restricted mem access flag with callback + - [Config] updateconfigs for XEN_VIRTIO_FORCE_GRANT + - xen: don't require virtio with grants for non-PV guests + - selftests: kvm: set rax before vmcall + - of/fdt: declared return type does not match actual return type + - RDMA/mlx5: Add missing check for return value in get namespace flow + - RDMA/rxe: Fix error unwind in rxe_create_qp() + - block/rnbd-srv: Set keep_id to true after mutex_trylock + - null_blk: fix ida error handling in null_add_dev() + - nbd: add missing definition of pr_fmt + - mtip32xx: fix device removal + - nvme: use command_id instead of req->tag in trace_nvme_complete_rq() + - nvme: define compat_ioctl again to unbreak 32-bit userspace. + - nvme: catch -ENODEV from nvme_revalidate_zones again + - block/bio: remove duplicate append pages code + - block: ensure iov_iter advances for added pages + - jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction() + - ext4: recover csum seed of tmp_inode after migrating to extents + - jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted + - usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable() + - opp: Fix error check in dev_pm_opp_attach_genpd() + - ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe + - ASoC: samsung: Fix error handling in aries_audio_probe + - ASoC: imx-audmux: Silence a clang warning + - ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe + - ASoC: max98390: use linux/gpio/consumer.h to fix build + - ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe + - ASoC: codecs: da7210: add check for i2c_add_driver + - ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe + - serial: pic32: fix missing clk_disable_unprepare() on error in + pic32_uart_startup() + - serial: 8250: Create serial_lsr_in() + - serial: 8250: Get preserved flags using serial_lsr_in() + - serial: 8250_dw: Use serial_lsr_in() in dw8250_handle_irq() + - serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty() + - ASoC: SOF: make ctx_store and ctx_restore as optional + - ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV + - ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV + - ASoC: cs35l45: Add endianness flag in snd_soc_component_driver + - rpmsg: char: Add mutex protection for rpmsg_eptdev_open() + - rpmsg: mtk_rpmsg: Fix circular locking dependency + - remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init + - selftests/livepatch: better synchronize test_klp_callbacks_busy + - profiling: fix shift too large makes kernel panic + - remoteproc: imx_rproc: Fix refcount leak in imx_rproc_addr_init + - KVM: PPC: Book3s: Fix warning about xics_rm_h_xirr_x + - rpmsg: Fix possible refcount leak in rpmsg_register_device_override() + - selftests/powerpc: Skip energy_scale_info test on older firmware + - ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header + - powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI + check in power_pmu_disable + - ASoC: soc-core.c: fixup snd_soc_of_get_dai_link_cpus() + - ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to + static variables + - serial: 8250_dw: Take port lock while accessing LSR + - ASoC: codecs: wsa881x: handle timeouts in resume path + - vfio/mlx5: Protect mlx5vf_disable_fds() upon close device + - vfio: Split migration ops from main device ops + - net/ice: fix initializing the bitmap in the switch code + - tty: n_gsm: fix user open not possible at responder until initiator open + - tty: n_gsm: fix tty registration before control channel open + - tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output() + - tty: n_gsm: fix missing timer to handle stalled links + - tty: n_gsm: fix non flow control frames during mux flow off + - tty: n_gsm: fix packet re-transmission without open control channel + - tty: n_gsm: fix race condition in gsmld_write() + - tty: n_gsm: fix deadlock and link starvation in outgoing data path + - tty: n_gsm: fix resource allocation order in gsm_activate_mux() + - ASoC: qcom: Fix missing of_node_put() in + asoc_qcom_lpass_cpu_platform_probe() + - MIPS: Loongson64: Fix section mismatch warning + - ASoC: imx-card: Fix DSD/PDM mclk frequency + - remoteproc: qcom: wcnss: Fix handling of IRQs + - vfio/ccw: Remove UUID from s390 debug log + - vfio/ccw: Fix FSM state if mdev probe fails + - vfio/ccw: Do not change FSM state in subchannel event + - ASoC: audio-graph-card2.c: use of_property_read_u32() for rate + - serial: 8250_fsl: Don't report FE, PE and OE twice + - tty: n_gsm: fix wrong T1 retry count handling + - tty: n_gsm: fix DM command + - tty: n_gsm: fix flow control handling in tx path + - tty: n_gsm: fix missing corner cases in gsmld_poll() + - MIPS: vdso: Utilize __pa() for gic_pfn + - ASoC: SOF: mediatek: fix mt8195 StatvectorSel wrong setting + - swiotlb: fail map correctly with failed io_tlb_default_mem + - lib/bitmap: fix off-by-one in bitmap_to_arr64() + - ASoC: SOF: ipc3-topology: Prevent double freeing of ipc_control_data via + load_bytes + - cpufreq: mediatek: fix error return code in mtk_cpu_dvfs_info_init() + - ASoc: audio-graph-card2: Fix refcount leak bug in __graph_get_type() + - ASoC: mt6359: Fix refcount leak bug + - ASoC: SOF: ipc-msg-injector: fix copy in sof_msg_inject_ipc4_dfs_write() + - serial: 8250_bcm7271: Save/restore RTS in suspend/resume + - iommu/exynos: Handle failed IOMMU device registration properly + - 9p: Drop kref usage + - 9p: Add client parameter to p9_req_put() + - net: 9p: fix refcount leak in p9_read_work() error handling + - MIPS: Fixed __debug_virt_addr_valid() + - rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge + - leds: pwm-multicolor: Don't show -EPROBE_DEFER as errors + - kfifo: fix kfifo_to_user() return type + - lib/smp_processor_id: fix imbalanced instrumentation_end() call + - proc: fix a dentry lock race between release_task and lookup + - remoteproc: qcom: pas: Check if coredump is enabled + - remoteproc: sysmon: Wait for SSCTL service to come up + - mfd: t7l66xb: Drop platform disable callback + - mfd: max77620: Fix refcount leak in max77620_initialise_fps + - ASoC: amd: yc: Decrease level of error message + - iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop + - perf tools: Fix dso_id inode generation comparison + - riscv: spinwait: Fix hartid variable type + - s390/crash: fix incorrect number of bytes to copy to user space + - s390/zcore: fix race when reading from hardware system area + - perf test: Fix test case 83 ('perf stat CSV output linter') on s390 + - ASoC: fsl_asrc: force cast the asrc_format type + - ASoC: fsl-asoc-card: force cast the asrc_format type + - ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format + - ASoC: imx-card: use snd_pcm_format_t type for asrc_format + - ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp() + - fuse: Remove the control interface for virtio-fs + - ASoC: audio-graph-card: Add of_node_put() in fail path + - ASoC: audio-graph-card2: Add of_node_put() in fail path + - watchdog: f71808e_wdt: Add check for platform_driver_register + - watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource + - watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in + armada_37xx_wdt_probe() + - ASoC: Intel: sof_rt5682: Perform quirk check first in card late probe + - video: fbdev: amba-clcd: Fix refcount leak bugs + - video: fbdev: sis: fix typos in SiS_GetModeID() + - ASoC: mchp-spdifrx: disable end of block interrupt on failures + - powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping. + - powerpc/32s: Fix boot failure with KASAN + SMP + + JUMP_LABEL_FEATURE_CHECK_DEBUG + - powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 + - video: fbdev: offb: Include missing linux/platform_device.h + - pseries/iommu/ddw: Fix kdump to work in absence of ibm,dma-window + - powerpc/iommu: Fix iommu_table_in_use for a small default DMA window case + - powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and + alias + - selftests/powerpc: Fix matrix multiply assist test + - serial: 8250_bcm2835aux: Add missing clk_disable_unprepare() + - tty: serial: qcom-geni-serial: Fix get_clk_div_rate() which otherwise could + return a sub-optimal clock rate. + - tty: serial: fsl_lpuart: correct the count of break characters + - s390/smp: enforce lowcore protection on CPU restart + - perf stat: Revert "perf stat: Add default hybrid events" + - f2fs: fix to invalidate META_MAPPING before DIO write + - f2fs: fix to check inline_data during compressed inode conversion + - f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time + - cifs: Fix memory leak when using fscache + - powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader + - powerpc/xive: Fix refcount leak in xive_get_max_prio + - powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address + - perf symbol: Fail to read phdr workaround + - kprobes: Forbid probing on trampoline and BPF code areas + - x86/bus_lock: Don't assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to + be zero + - powerpc/pci: Fix PHB numbering when using opal-phbid + - genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO + - scripts/faddr2line: Fix vmlinux detection on arm64 + - tty: serial: qcom-geni-serial: Fix %lu -> %u in print statements + - powerpc/64e: Fix kexec build error + - sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed + - x86/numa: Use cpumask_available instead of hardcoded NULL check + - video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock() + - tools/thermal: Fix possible path truncations + - sched: Fix the check of nr_running at queue wakelist + - sched: Remove the limitation of WF_ON_CPU on wakelist if wakee cpu is idle + - sched/core: Do not requeue task on CPU excluded from cpus_mask + - f2fs: do not allow to decompress files have FI_COMPRESS_RELEASED + - video: fbdev: vt8623fb: Check the size of screen before memset_io() + - video: fbdev: arkfb: Check the size of screen before memset_io() + - video: fbdev: s3fb: Check the size of screen before memset_io() + - scsi: ufs: core: Correct ufshcd_shutdown() flow + - scsi: zfcp: Fix missing auto port scan and thus missing target ports + - scsi: qla2xxx: Fix imbalance vha->vref_count + - scsi: qla2xxx: Fix discovery issues in FC-AL topology + - scsi: qla2xxx: Turn off multi-queue for 8G adapters + - scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts + - scsi: qla2xxx: Fix excessive I/O error messages by default + - scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection + - scsi: qla2xxx: Wind down adapter after PCIe error + - scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os + - scsi: qla2xxx: Fix losing target when it reappears during delete + - scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests + - cifs: fix lock length calculation + - x86/bugs: Enable STIBP for IBPB mitigated RETBleed + - ftrace/x86: Add back ftrace_expected assignment + - x86/kprobes: Update kcb status flag after singlestepping + - x86/olpc: fix 'logical not is only applied to the left hand side' + - SMB3: fix lease break timeout when multiple deferred close handles for the + same file. + - posix-cpu-timers: Cleanup CPU timers before freeing them during exec + - Input: gscps2 - check return value of ioremap() in gscps2_probe() + - __follow_mount_rcu(): verify that mount_lock remains unchanged + - spmi: trace: fix stack-out-of-bound access in SPMI tracing functions + - csky: abiv1: Fixup compile error + - drivers/base: fix userspace break from using bin_attributes for cpumap and + cpulist + - drm/mediatek: Keep dsi as LP00 before dcs cmds transfer + - [Config] updateconfigs for CRYPTO_LIB_BLAKE2S + - crypto: blake2s - remove shash module + - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails + - intel_th: pci: Add Meteor Lake-P support + - intel_th: pci: Add Raptor Lake-S PCH support + - intel_th: pci: Add Raptor Lake-S CPU support + - KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors + - KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS) + - iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE) + - PCI/AER: Iterate over error counters instead of error strings + - PCI: qcom: Power on PHY before IPQ8074 DBI register accesses + - dm writecache: set a default MAX_WRITEBACK_JOBS + - kexec_file: drop weak attribute from functions + - kexec: clean up arch_kexec_kernel_verify_sig + - kexec, KEYS, s390: Make use of built-in and secondary keyring for signature + verification + - tracing/events: Add __vstring() and __assign_vstr() helper macros + - dm thin: fix use-after-free crash in dm_sm_register_threshold_callback + - net/9p: Initialize the iounit field during fid creation + - ARM: Marvell: Update PCIe fixup + - timekeeping: contribute wall clock to rng on time change + - locking/csd_lock: Change csdlock_debug from early_param to __setup + - block: don't allow the same type rq_qos add more than once + - btrfs: tree-log: make the return value for log syncing consistent + - btrfs: ensure pages are unlocked on cow_file_range() failure + - btrfs: fix error handling of fallback uncompress write + - btrfs: reset block group chunk force if we have to wait + - btrfs: properly flag filesystem with BTRFS_FEATURE_INCOMPAT_BIG_METADATA + - block: add bdev_max_segments() helper + - btrfs: zoned: revive max_zone_append_bytes + - btrfs: replace BTRFS_MAX_EXTENT_SIZE with fs_info->max_extent_size + - btrfs: convert count_max_extents() to use fs_info->max_extent_size + - btrfs: let can_allocate_chunk return error + - btrfs: zoned: finish least available block group on data bg allocation + - btrfs: zoned: disable metadata overcommit for zoned + - btrfs: store chunk size in space-info struct + - btrfs: zoned: introduce space_info->active_total_bytes + - btrfs: zoned: activate metadata block group on flush_space + - btrfs: zoned: activate necessary block group + - btrfs: zoned: write out partially allocated region + - btrfs: zoned: wait until zone is finished when allocation didn't progress + - btrfs: join running log transaction when logging new name + - intel_idle: make SPR C1 and C1E be independent + - ACPI: CPPC: Do not prevent CPPC from working in the future + - powerpc/powernv/kvm: Use darn for H_RANDOM on Power9 + - s390/unwind: fix fgraph return address recovery + - KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter + - KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU + - KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support + global_ctrl + - KVM: x86/pmu: Accept 0 for absent PMU MSRs when host-initiated if + !enable_pmu + - Revert "KVM: x86/pmu: Accept 0 for absent PMU MSRs when host-initiated if + !enable_pmu" + - KVM: VMX: Add helper to check if the guest PMU has PERF_GLOBAL_CTRL + - KVM: nVMX: Attempt to load PERF_GLOBAL_CTRL on nVMX xfer iff it exists + - dm raid: fix address sanitizer warning in raid_status + - dm raid: fix address sanitizer warning in raid_resume + - dm: fix dm-raid crash if md_handle_request() splits bio + - mm/damon/reclaim: fix potential memory leak in damon_reclaim_init() + - hugetlb_cgroup: fix wrong hugetlb cgroup numa stat + - batman-adv: tracing: Use the new __vstring() helper + - tracing: Use a struct alignof to determine trace event field alignment + - ext4: fix reading leftover inlined symlinks + - ext4: update s_overhead_clusters in the superblock during an on-line resize + - ext4: fix extent status tree race in writeback error recovery path + - ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h + - ext4: fix use-after-free in ext4_xattr_set_entry + - ext4: correct max_inline_xattr_value_size computing + - ext4: correct the misjudgment in ext4_iget_extra_inode + - ext4: fix warning in ext4_iomap_begin as race between bmap and write + - Documentation: ext4: fix cell spacing of table heading on blockmap table + - ext4: check if directory block is within i_size + - ext4: make sure ext4_append() always allocates new block + - ext4: remove EA inode entry from mbcache on inode eviction + - ext4: unindent codeblock in ext4_xattr_block_set() + - ext4: fix race when reusing xattr blocks + - KEYS: asymmetric: enforce SM2 signature use pkey algo + - tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH + - tpm: Add check for Failure mode for TPM2 modules + - xen-blkback: fix persistent grants negotiation + - xen-blkback: Apply 'feature_persistent' parameter when connect + - xen-blkfront: Apply 'feature_persistent' parameter when connect + - powerpc: Fix eh field when calling lwarx on PPC32 + - powerpc64/ftrace: Fix ftrace for clang builds + - net_sched: cls_route: remove from list when handle is 0 + - Revert "drm/bridge: anx7625: Use DPI bus type" + - tcp: fix over estimation in sk_forced_mem_schedule() + - crypto: lib/blake2s - reduce stack frame usage in self test + - raw: remove unused variables from raw6_icmp_error() + - raw: fix a typo in raw_icmp_error() + - Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv" + - Revert "devcoredump: remove the useless gfp_t parameter in dev_coredumpv and + dev_coredumpm" + - mptcp: refine memory scheduling + - wifi: cfg80211: handle IBSS in channel switch + - wifi: nl80211: hold wdev mutex for tid config + - wifi: nl80211: relax wdev mutex check in wdev_chandef() + - wifi: nl80211: acquire wdev mutex earlier in start_ap + - wifi: cfg80211: remove chandef check in cfg80211_cac_event() + - tracing: Use a copy of the va_list for __assign_vstr() + - net: dsa: felix: fix min gate len calculation for tc when its first gate is + closed + - Revert "s390/smp: enforce lowcore protection on CPU restart" + - powerpc/kexec: Fix build failure from uninitialised variable + - io_uring: mem-account pbuf buckets + - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression + - ASoC: Intel: avs: Use lookup table to create modules + - geneve: Use ip_tunnel_key flow flags in route lookups + - vxlan: Use ip_tunnel_key flow flags in route lookups + - Linux 5.19.2 + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) // Kinetic update: v5.19.2 upstream stable release + (LP: #1986865) + - x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + * Kinetic update: v5.19.1 upstream stable release (LP: #1986848) + - block: fix default IO priority handling again + - tools/vm/slabinfo: Handle files in debugfs + - ACPI: video: Force backlight native for some TongFang devices + - ACPI: video: Shortening quirk list by identifying Clevo by board_name only + - ACPI: APEI: Better fix to avoid spamming the console with old error logs + - crypto: arm64/poly1305 - fix a read out-of-bound + - ata: sata_mv: Fixes expected number of resources now IRQs are gone + - arm64: set UXN on swapper page tables + - Bluetooth: hci_qca: Return wakeup for qca_wakeup + - Bluetooth: hci_bcm: Add BCM4349B1 variant + - Bluetooth: hci_bcm: Add DT compatible for CYW55572 + - dt-bindings: bluetooth: broadcom: Add BCM4349B1 DT binding + - Bluetooth: btusb: Add support of IMC Networks PID 0x3568 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586 + - macintosh/adb: fix oob read in do_adb_query() function + - x86/speculation: Add RSB VM Exit protections + - x86/speculation: Add LFENCE to RSB fill sequence + - Linux 5.19.1 + + * refactoring of overlayfs fix to properly support shiftfs (LP: #1983640) + - SAUCE: for aufs mmap: print the virtual file path + - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files + + * ioam6.sh in net from ubuntu_kernel_selftests fails with 5.15 kernels in + Focal (LP: #1982930) + - selftests: net: fix IOAM test skip return code + + * Miscellaneous Ubuntu changes + - [Packaging]: always use fully qualified -gcc-VER toolchain + - [Config] update toolchain versions + - [Packaging] use unversioned default gcc + - [Packaging] Remove circular dependency between image & modules + - [Packaging] kernelconfig: drop stray 'set -x' + - SAUCE: Revert "perf tools: Use Python devtools for version autodetection + rather than runtime" + - [Config] update configs after applying stable updates + + -- Andrea Righi Mon, 05 Sep 2022 11:44:01 +0200 + +linux (5.19.0-15.15) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-15.15 -proposed tracker (LP: #1983335) + + * Miscellaneous Ubuntu changes + - [Config] update annotations to support both gcc-11 and gcc-12 + + -- Andrea Righi Tue, 02 Aug 2022 09:23:01 +0200 + +linux (5.19.0-14.14) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-14.14 -proposed tracker (LP: #1983273) + + * Miscellaneous Ubuntu changes + - [Packaging] module-signature-check: Check debian./signature-inclusion + - [Packaging] Introduce debian/scripts/sign-module + - SAUCE: Switch to using debian/scripts/sign-module + - [Config] update configs/annotations after rebase to 5.19 + - [Config] update configs after moving to gcc-12 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging]: always use fully qualified -gcc-VER + toolchain" + + [ Upstream Kernel Changes ] + + * Rebase to v5.19 + + -- Andrea Righi Mon, 01 Aug 2022 17:19:01 +0200 + +linux (5.19.0-13.13) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-13.13 -proposed tracker (LP: #1983033) + + * network-manager/1.36.4-2ubuntu1 ADT test failure with linux/5.15.0-28.29 + (LP: #1971418) + - Revert "rfkill: make new event layout opt-in" + + * Miscellaneous Ubuntu changes + - [Config] Tighten up LP bug links in annotations + - [Config] Use mark for CONFIG_DEVTMPFS + - [Config] Use flag for CONFIG_HIPPI + - [Config] Use note<> for CONFIG_XEN_ACPI_PROCESSOR + - [Config] Fix DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING annotation + - [Config] Fix CONFIG_CPU_LITTLE_ENDIAN annotation + - SAUCE: x86/bugs: Do not enable IBPB at firmware entry when IBPB is not + available + + -- Andrea Righi Thu, 28 Jul 2022 17:04:33 +0200 + +linux (5.19.0-12.12) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-12.12 -proposed tracker (LP: #1982741) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Packaging]: always use fully qualified -gcc-VER toolchain + + -- Andrea Righi Tue, 26 Jul 2022 15:07:13 +0200 + +linux (5.19.0-11.11) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-11.11 -proposed tracker (LP: #1982726) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + - debian/dkms-versions -- update from kernel-versions (main/master) + + * GPIO character device v1 API not enabled in kernel (LP: #1953613) + - [Config] Enable CONFIG_GPIO_CDEV_V1 + + * Use kernel-testing repo from launchpad for ADT tests (LP: #1968016) + - [Debian] Use kernel-testing repo from launchpad + + * Support AMD P-State cpufreq control mechanism (LP: #1956509) + - [Config] enable X86_AMD_PSTATE as built-in on amd64 + + * PCIE LnkCtl ASPM not enabled under VMD mode for Alder Lake platforms + (LP: #1942160) + - SAUCE: PCI/ASPM: Enable ASPM for links under VMD domain + - SAUCE: PCI/ASPM: Enable LTR for endpoints behind VMD + - SAUCE: vmd: fixup bridge ASPM by driver name instead + + * Miscellaneous Ubuntu changes + - [Packaging] Double the speed of updateconfigs + - Remove ubuntu/hio driver + - [Config] update config after rebase to 5.19-rc8 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc8 + + -- Andrea Righi Mon, 25 Jul 2022 08:54:21 +0200 + +linux (5.19.0-10.10) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-10.10 -proposed tracker (LP: #1982013) + + * enable config for fixing 5.17 kernel won't load mok (LP: #1972802) + - [Config] enable configs for fixing kernel won't load mok + + * RISC-V kernel config is out of sync with other archs (LP: #1981437) + - [Config] Disable CONFIG_CXL_MEM_RAW_COMMANDS on riscv64 + - [Config] Disable CONFIG_EROFS_FS_ZIP_LZMA on riscv64 + - [Config] Disable CONFIG_FONT_6x8 on riscv64 + - [Config] Disable CONFIG_NTFS3_64BIT_CLUSTER on riscv64 + - [Config] Disable CONFIG_SCSI_IZIP_EPP16 on riscv64 + - [Config] Disable CONFIG_SCSI_UFS_HWMON on riscv64 + - [Config] Disable CONFIG_SPI_AX88796C_COMPRESSION on riscv64 + - [Config] Disable CONFIG_VIDEO_ZORAN on riscv64 + - [Config] Enable CONFIG_BPF_KPROBE_OVERRIDE on riscv64 + - [Config] Enable CONFIG_CACHEFILES_ERROR_INJECTION on riscv64 + - [Config] Enable CONFIG_DRM_AMD_DC_SI on riscv64 + - [Config] Enable CONFIG_NUMA_BALANCING on riscv64 + - [Config] Enable CONFIG_PROC_VMCORE_DEVICE_DUMP on riscv64 + - [Config] Enable CONFIG_WLAN_VENDOR_MICROCHIP on riscv64 + - [Config] Set CONFIG_MHI_WWAN_CTRL=m on riscv64 + - [Config] Set CONFIG_NFC_S3FWRN82_UART=m on riscv64 + - [Config] Enable CONFIG_EFIVAR_FS on riscv64 + - [Config] Enable CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES on riscv64 + - [Config] Enable CONFIG_STRICT_DEVMEM on riscv64 + - [Config] Enable CONFIG_VMAP_STACK on riscv64 + - [Config] Enable CONFIG_KEXEC_FILE on riscv64 + - [Config] Set CONFIG_MTD_PSTORE=m on riscv64 + - [Config] Set CONFIG_KFENCE_SAMPLE_INTERVAL=0 on riscv64 + - [Config] Enable CONFIG_KEXEC_FILE on s390x + + * Ubuntu 22.04 and 20.04 DPC Fixes for Failure Cases of DownPort Containment + events (LP: #1965241) + - Enable config option CONFIG_PCIE_EDR + - Correct CONFIG_PCIE_EDR annotation on arm64 + + * config CONFIG_HISI_PMU for kunpeng920 (LP: #1956086) + - [Config] CONFIG_HISI_PMU=m + + * Skip setting ethernet LED on Dell EMC board (LP: #1971667) + - SAUCE: net: phy: marvell: Skip setting LED on Dell EMC board + + * Miscellaneous Ubuntu changes + - [Packaging] ignore warnings from the output of ld.bfd + - [Packaging] Fix bashism in dkms-build script + - [Packaging] Always catch errors in dkms-build scripts + - [Packaging] Fix dkms builds with linker @module.mod files + - [Packaging] mark dkms-build-configure--zfs executable + - [Config] update configs and annotations after rebase to 5.19-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc7 + + -- Andrea Righi Mon, 18 Jul 2022 23:45:28 +0200 + +linux (5.19.0-9.9) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-9.9 -proposed tracker (LP: #1980622) + + * Miscellaneous Ubuntu changes + - [Config] update config after rebase to 5.19-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc5 + + -- Andrea Righi Mon, 04 Jul 2022 12:05:04 +0200 + +linux (5.19.0-8.8) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-8.8 -proposed tracker (LP: #1980482) + + * temporarily disable CONFIG_X86_KERNEL_IBT (LP: #1980484) + - [Config] temporarily disable CONFIG_X86_KERNEL_IBT + + -- Andrea Righi Fri, 01 Jul 2022 11:58:56 +0200 + +linux (5.19.0-7.7) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-7.7 -proposed tracker (LP: #1980056) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * RISC-V enables CONFIG_COMPAT in the unstable branch (LP: #1980061) + - [Config] Disable CONFIG_COMPAT on RISC-V + + * No RISC-V configuration in the unstable tree (LP: #1979647) + - [Config] Merge riscv64 config and annotations + + -- Andrea Righi Tue, 28 Jun 2022 12:25:48 +0200 + +linux (5.19.0-6.6) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 28 Jun 2022 07:50:17 +0200 + +linux-unstable (5.19.0-6.6) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-6.6 -proposed tracker (LP: #1979948) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Packaging] Remove 'family=ubuntu' concept + - [Packaging] final-checks: Remove useless sourcing of kernelconfig + - [Config] update config after rebase to 5.19-rc4 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc4 + + -- Andrea Righi Mon, 27 Jun 2022 09:16:40 +0200 + +linux-unstable (5.19.0-5.5) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-5.5 -proposed tracker (LP: #1979611) + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable signing for ppc64el and + s390x" + + -- Andrea Righi Thu, 23 Jun 2022 11:13:32 +0200 + +linux-unstable (5.19.0-4.4) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-4.4 -proposed tracker (LP: #1979177) + + * Miscellaneous Ubuntu changes + - [Config] update configs after rebase to 5.19-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc3 + + -- Andrea Righi Mon, 20 Jun 2022 09:02:58 +0200 + +linux-unstable (5.19.0-3.3) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-3.3 -proposed tracker (LP: #1978439) + + * Miscellaneous Ubuntu changes + - [Config] update annotations for 5.19 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc2 + + -- Andrea Righi Mon, 13 Jun 2022 07:16:32 +0200 + +linux-unstable (5.19.0-2.2) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-2.2 -proposed tracker (LP: #1978313) + + -- Andrea Righi Fri, 10 Jun 2022 15:17:20 +0200 + +linux-unstable (5.19.0-1.1) kinetic; urgency=medium + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * linux: Staging modules should be unsigned (LP: #1642368) + - [Packaging] Move and update signature inclusion list + - [Packaging] Strip signatures from untrusted staging modules + - [Packaging] Add module-signature-check + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.19-rc1 + - [Packaging] move to kernel 5.19 + - [Packaging] workaround missing python3-dev dependency + - SAUCE: Revert "perf tools: Use Python devtools for version autodetection + rather than runtime" + - SAUCE: watchdog: gxp: Add missing MODULE_LICENSE + - [Packaging] add python3-dev as build dependency + + -- Andrea Righi Fri, 10 Jun 2022 14:43:46 +0200 + +linux-unstable (5.19.0-0.0) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Thu, 09 Jun 2022 12:13:06 +0200 + +linux (5.18.0-6.6) kinetic; urgency=medium + + * kinetic/linux: 5.18.0-6.6 -proposed tracker (LP: #1976327) + + * Miscellaneous Ubuntu changes + - [Packaging] temporarily disable signing for ppc64el and s390x + - [Config] update toolchain versions + - [Config] enable CONFIG_X86_KERNEL_IBT + + -- Andrea Righi Tue, 31 May 2022 11:05:51 +0200 + +linux (5.18.0-5.5) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 23 May 2022 16:59:47 +0200 + +linux-unstable (5.18.0-5.5) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-5.5 -proposed tracker (LP: #1975458) + + * enable CONFIG_DEVTMPFS_SAFE (LP: #1974442) + - [Config] enable CONFIG_DEVTMPFS_SAFE + + * build backport-iwlwifi-dkms as linux-modules-iwlwifi-ABI (LP: #1969434) + - [Packaging] drop do_ arch specific configs + + * prevent kernel panic with overlayfs + shiftfs (LP: #1973620) + - SAUCE: overlayfs: prevent dereferencing struct file in ovl_vm_prfile_set() + + * linux-image-5.0.0-35-generic breaks checkpointing of container + (LP: #1857257) // re-apply missing overlayfs SAUCE patch (LP: #1967924) + - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files + + [ Upstream Kernel Changes ] + + * Rebase to v5.18 + + -- Andrea Righi Mon, 23 May 2022 11:21:38 +0200 + +linux-unstable (5.18.0-4.4) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-4.4 -proposed tracker (LP: #1973587) + + * build backport-iwlwifi-dkms as linux-modules-iwlwifi-ABI (LP: #1969434) + - [Packaging] support standalone dkms module builds + + * Enable speakup kernel modules to allow the speakup screen reader to function + (LP: #1967702) + - [Config] CONFIG_SPEAKUP=m for all but s390x + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable v4l2loopback" + - Revert "UBUNTU: [Packaging] temporarily disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc7 + + -- Andrea Righi Mon, 16 May 2022 14:15:35 +0200 + +linux-unstable (5.18.0-3.3) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-3.3 -proposed tracker (LP: #1972162) + + * disable Intel DMA remapping by default (LP: #1971699) + - Revert "UBUNTU: [Config] enable Intel DMA remapping options by default" + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc6 + + -- Andrea Righi Mon, 09 May 2022 12:15:39 +0200 + +linux-unstable (5.18.0-2.2) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-2.2 -proposed tracker (LP: #1971340) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Config] update configs after rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc5 + + -- Andrea Righi Tue, 03 May 2022 12:24:49 +0200 + +linux-unstable (5.18.0-1.1) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 03 May 2022 09:38:06 +0200 + +linux-unstable (5.18.0-1.1) jammy; urgency=medium + + * kinetic/linux-unstable: 5.18.0-1.1 -proposed tracker (LP: #1969476) + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.18 + - [Packaging] temporarily disable zfs + - [Packaging] temporarily disable v4l2loopback + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc3 + + -- Andrea Righi Wed, 27 Apr 2022 20:26:42 +0200 + +linux-unstable (5.18.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 19 Apr 2022 16:20:00 +0200 + +linux-unstable (5.17.0-8.8) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-8.8 -proposed tracker (LP: #1969016) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + -- Andrea Righi Thu, 14 Apr 2022 10:30:39 +0200 + +linux-unstable (5.17.0-7.7) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-7.7 -proposed tracker (LP: #1968988) + + * zfcpdump-kernel update to v5.15 (LP: #1965766) + - SAUCE: Audit: Fix incorrect static inline function declration. + + * intel_iommu breaks Intel IPU6 camera: isys port open ready failed -16 + (LP: #1958004) + - SAUCE: iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs + + * Jammy update: v5.17.3 upstream stable release (LP: #1968986) + - lib/logic_iomem: correct fallback config references + - um: fix and optimize xor select template for CONFIG64 and timetravel mode + - rtc: wm8350: Handle error for wm8350_register_irq + - net: dsa: felix: fix possible NULL pointer dereference + - mm: kfence: fix objcgs vector allocation + - KVM: x86/pmu: Use different raw event masks for AMD and Intel + - KVM: SVM: Fix kvm_cache_regs.h inclusions for is_guest_mode() + - KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs + - KVM: x86/pmu: Fix and isolate TSX-specific performance event logic + - KVM: x86/emulator: Emulate RDPID only if it is enabled in guest + - drm: Add orientation quirk for GPD Win Max + - Bluetooth: hci_sync: Fix compilation warning + - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111 + - Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt + - drm/amd/display: Add signal type check when verify stream backends same + - drm/amdkfd: enable heavy-weight TLB flush on Arcturus + - drm/edid: remove non_desktop quirk for HPN-3515 and LEN-B800. + - drm/edid: improve non-desktop quirk logging + - Bluetooth: hci_event: Ignore multiple conn complete events + - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj + - drm/amd/display: Fix memory leak + - drm/amd/display: Use PSR version selected during set_psr_caps + - usb: gadget: tegra-xudc: Do not program SPARAM + - usb: gadget: tegra-xudc: Fix control endpoint's definitions + - usb: cdnsp: fix cdnsp_decode_trb function to properly handle ret value + - ptp: replace snprintf with sysfs_emit + - Bluetooth: hci_sync: Fix queuing commands when HCI_UNREGISTER is set + - selftests, xsk: Fix bpf_res cleanup test + - net/mlx5e: TC, Hold sample_attr on stack instead of pointer + - drm/amdkfd: Don't take process mutex for svm ioctls + - drm/amdkfd: Ensure mm remain valid in svm deferred_list work + - drm/amdkfd: svm range restore work deadlock when process exit + - drm/amdgpu: Fix an error message in rmmod + - mlxsw: spectrum: Guard against invalid local ports + - RDMA/rtrs-clt: Do stop and failover outside reconnect work. + - powerpc/xive: Export XIVE IPI information for online-only processors. + - powerpc: dts: t104xrdb: fix phy type for FMAN 4/5 + - ath11k: fix kernel panic during unload/load ath11k modules + - ath11k: pci: fix crash on suspend if board file is not found + - ath11k: mhi: use mhi_sync_power_up() + - net/smc: Send directly when TCP_CORK is cleared + - drm/bridge: Add missing pm_runtime_put_sync + - bpf: Make dst_port field in struct bpf_sock 16-bit wide + - scsi: mvsas: Replace snprintf() with sysfs_emit() + - scsi: bfa: Replace snprintf() with sysfs_emit() + - drm/v3d: fix missing unlock + - power: supply: axp20x_battery: properly report current when discharging + - mt76: mt7921: fix crash when startup fails. + - mt76: dma: initialize skip_unmap in mt76_dma_rx_fill + - i40e: Add sending commands in atomic context + - cfg80211: don't add non transmitted BSS to 6GHz scanned channels + - libbpf: Fix build issue with llvm-readelf + - ipv6: make mc_forwarding atomic + - ref_tracker: implement use-after-free detection + - net: initialize init_net earlier + - powerpc: Set crashkernel offset to mid of RMA region + - drm/amdgpu: Fix recursive locking warning + - scsi: smartpqi: Fix rmmod stack trace + - scsi: smartpqi: Fix kdump issue when controller is locked up + - PCI: aardvark: Fix support for MSI interrupts + - kvm: selftests: aarch64: fix assert in gicv3_access_reg + - kvm: selftests: aarch64: pass vgic_irq guest args as a pointer + - kvm: selftests: aarch64: fix the failure check in + kvm_set_gsi_routing_irqchip_check + - kvm: selftests: aarch64: fix some vgic related comments + - kvm: selftests: aarch64: use a tighter assert in vgic_poke_irq() + - iommu/arm-smmu-v3: fix event handling soft lockup + - usb: ehci: add pci device support for Aspeed platforms + - KVM: arm64: Do not change the PMU event filter after a VCPU has run + - libbpf: Fix accessing syscall arguments on powerpc + - libbpf: Fix accessing the first syscall argument on arm64 + - libbpf: Fix accessing the first syscall argument on s390 + - PCI: endpoint: Fix alignment fault error in copy tests + - tcp: Don't acquire inet_listen_hashbucket::lock with disabled BH. + - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum + - scsi: mpi3mr: Fix deadlock while canceling the fw event + - scsi: mpi3mr: Fix reporting of actual data transfer size + - scsi: mpi3mr: Fix memory leaks + - powerpc/set_memory: Avoid spinlock recursion in change_page_attr() + - power: supply: axp288-charger: Set Vhold to 4.4V + - drm/sprd: fix potential NULL dereference + - drm/sprd: check the platform_get_resource() return value + - drm/amd/display: reset lane settings after each PHY repeater LT + - net/mlx5e: Disable TX queues before registering the netdev + - HID: apple: Report Magic Keyboard 2021 battery over USB + - HID: apple: Report Magic Keyboard 2021 with fingerprint reader battery over + USB + - usb: dwc3: pci: Set the swnode from inside dwc3_pci_quirks() + - iwlwifi: mvm: Correctly set fragmented EBS + - iwlwifi: fix small doc mistake for iwl_fw_ini_addr_val + - iwlwifi: mvm: move only to an enabled channel + - ipv6: annotate some data-races around sk->sk_prot + - drm/msm/dsi: Remove spurious IRQF_ONESHOT flag + - x86/mce: Work around an erratum on fast string copy instructions + - rtw89: fix RCU usage in rtw89_core_txq_push() + - ath11k: Fix frames flush failure caused by deadlock + - ipv4: Invalidate neighbour for broadcast address upon address addition + - rtw88: change rtw_info() to proper message level + - dm ioctl: prevent potential spectre v1 gadget + - dm: requeue IO if mapping table not yet available + - drm/amdkfd: make CRAT table missing message informational only + - vfio/pci: Stub vfio_pci_vga_rw when !CONFIG_VFIO_PCI_VGA + - scsi: pm8001: Fix pm80xx_pci_mem_copy() interface + - scsi: pm8001: Fix pm8001_mpi_task_abort_resp() + - scsi: pm8001: Fix tag values handling + - scsi: pm8001: Fix task leak in pm8001_send_abort_all() + - scsi: pm8001: Fix tag leaks on error + - scsi: pm8001: Fix memory leak in pm8001_chip_fw_flash_update_req() + - mt76: mt7915: fix injected MPDU transmission to not use HW A-MSDU + - mctp: make __mctp_dev_get() take a refcount hold + - powerpc/64s/hash: Make hash faults work in NMI context + - mt76: mt7615: Fix assigning negative values to unsigned variable + - power: supply: axp288_charger: Use acpi_quirk_skip_acpi_ac_and_battery() + - power: supply: axp288_fuel_gauge: Use acpi_quirk_skip_acpi_ac_and_battery() + - scsi: aha152x: Fix aha152x_setup() __setup handler return value + - scsi: hisi_sas: Free irq vectors in order for v3 HW + - scsi: hisi_sas: Limit users changing debugfs BIST count value + - net/smc: correct settings of RMB window update limit + - mips: ralink: fix a refcount leak in ill_acc_of_setup() + - iavf: stop leaking iavf_status as "errno" values + - macvtap: advertise link netns via netlink + - platform/x86: thinkpad_acpi: Add dual fan probe + - tuntap: add sanity checks about msg_controllen in sendmsg + - Bluetooth: mediatek: fix the conflict between mtk and msft vendor event + - Bluetooth: Fix not checking for valid hdev on bt_dev_{info,warn,err,dbg} + - Bluetooth: use memset avoid memory leaks + - bnxt_en: Eliminate unintended link toggle during FW reset + - PCI: endpoint: Fix misused goto label + - MIPS: fix fortify panic when copying asm exception handlers + - powerpc/code-patching: Pre-map patch area + - powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E + - powerpc/secvar: fix refcount leak in format_show() + - scsi: libfc: Fix use after free in fc_exch_abts_resp() + - platform/x86: x86-android-tablets: Depend on EFI and SPI + - can: isotp: set default value for N_As to 50 micro seconds + - can: etas_es58x: es58x_fd_rx_event_msg(): initialize rx_event_msg before + calling es58x_check_msg_len() + - riscv: Fixed misaligned memory access. Fixed pointer comparison. + - net: account alternate interface name memory + - net: limit altnames to 64k total + - net/mlx5e: Remove overzealous validations in netlink EEPROM query + - platform/x86: hp-wmi: Fix SW_TABLET_MODE detection method + - platform/x86: hp-wmi: Fix 0x05 error code reported by several WMI calls + - net: sfp: add 2500base-X quirk for Lantech SFP module + - usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm + - xen/usb: harden xen_hcd against malicious backends + - mt76: fix monitor mode crash with sdio driver + - xtensa: fix DTC warning unit_address_format + - iwlwifi: mei: fix building iwlmei + - MIPS: ingenic: correct unit node address + - Bluetooth: Fix use after free in hci_send_acl + - netfilter: conntrack: revisit gc autotuning + - netlabel: fix out-of-bounds memory accesses + - ceph: fix inode reference leakage in ceph_get_snapdir() + - ceph: fix memory leak in ceph_readdir when note_last_dentry returns error + - lib/Kconfig.debug: add ARCH dependency for FUNCTION_ALIGN option + - init/main.c: return 1 from handled __setup() functions + - minix: fix bug when opening a file with O_DIRECT + - clk: si5341: fix reported clk_rate when output divider is 2 + - clk: mediatek: Fix memory leaks on probe + - staging: vchiq_arm: Avoid NULL ptr deref in vchiq_dump_platform_instances + - staging: vchiq_core: handle NULL result of find_service_by_handle + - phy: amlogic: phy-meson-gxl-usb2: fix shared reset controller use + - phy: amlogic: meson8b-usb2: Use dev_err_probe() + - phy: amlogic: meson8b-usb2: fix shared reset control use + - clk: rockchip: drop CLK_SET_RATE_PARENT from dclk_vop* on rk3568 + - cpufreq: CPPC: Fix performance/frequency conversion + - opp: Expose of-node's name in debugfs + - staging: wfx: apply the necessary SDIO quirks for the Silabs WF200 + - staging: wfx: fix an error handling in wfx_init_common() + - w1: w1_therm: fixes w1_seq for ds28ea00 sensors + - NFSv4.2: fix reference count leaks in _nfs42_proc_copy_notify() + - NFSv4: Protect the state recovery thread against direct reclaim + - habanalabs: fix possible memory leak in MMU DR fini + - habanalabs: reject host map with mmu disabled + - habanalabs/gaudi: handle axi errors from NIC engines + - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32 + - clk: ti: Preserve node in ti_dt_clocks_register() + - clk: Enforce that disjoints limits are invalid + - SUNRPC/xprt: async tasks mustn't block waiting for memory + - SUNRPC: remove scheduling boost for "SWAPPER" tasks. + - NFS: swap IO handling is slightly different for O_DIRECT IO + - NFS: swap-out must always use STABLE writes. + - x86: Annotate call_on_stack() + - x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy + - serial: samsung_tty: do not unlock port->lock for uart_write_wakeup() + - virtio_console: eliminate anonymous module_init & module_exit + - jfs: prevent NULL deref in diFree + - SUNRPC: Fix socket waits for write buffer space + - NFS: nfsiod should not block forever in mempool_alloc() + - NFS: Avoid writeback threads getting stuck in mempool_alloc() + - selftests: net: Add tls config dependency for tls selftests + - parisc: Fix CPU affinity for Lasi, WAX and Dino chips + - parisc: Fix patch code locking and flushing + - mm: fix race between MADV_FREE reclaim and blkdev direct IO read + - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire() + - Drivers: hv: vmbus: Fix initialization of device object in + vmbus_device_register() + - Drivers: hv: vmbus: Fix potential crash on module unload + - netfilter: bitwise: fix reduce comparisons + - Revert "NFSv4: Handle the special Linux file open access mode" + - NFSv4: fix open failure with O_ACCMODE flag + - scsi: core: scsi_logging: Fix a BUG + - scsi: sr: Fix typo in CDROM(CLOSETRAY|EJECT) handling + - scsi: core: Fix sbitmap depth in scsi_realloc_sdev_budget_map() + - scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() + - vdpa: mlx5: prevent cvq work from hogging CPU + - net: sfc: add missing xdp queue reinitialization + - net/tls: fix slab-out-of-bounds bug in decrypt_internal + - vrf: fix packet sniffing for traffic originating from ip tunnels + - skbuff: fix coalescing for page_pool fragment recycling + - Revert "net: dsa: stop updating master MTU from master.c" + - ice: Clear default forwarding VSI during VSI release + - ice: Fix MAC address setting + - mctp: Fix check for dev_hard_header() result + - mctp: Use output netdev to allocate skb headroom + - net: ipv4: fix route with nexthop object delete warning + - net: stmmac: Fix unset max_speed difference between DT and non-DT platforms + - drm/imx: imx-ldb: Check for null pointer after calling kmemdup + - drm/imx: Fix memory leak in imx_pd_connector_get_modes + - drm/imx: dw_hdmi-imx: Fix bailout in error cases of probe + - regulator: rtq2134: Fix missing active_discharge_on setting + - spi: rpc-if: Fix RPM imbalance in probe error path + - regulator: atc260x: Fix missing active_discharge_on setting + - arch/arm64: Fix topology initialization for core scheduling + - bnxt_en: Synchronize tx when xdp redirects happen on same ring + - bnxt_en: reserve space inside receive page for skb_shared_info + - bnxt_en: Prevent XDP redirect from running when stopping TX queue + - sfc: Do not free an empty page_ring + - RDMA/mlx5: Don't remove cache MRs when a delay is needed + - RDMA/mlx5: Add a missing update of cache->last_add + - IB/cm: Cancel mad on the DREQ event when the state is MRA_REP_RCVD + - cifs: fix potential race with cifsd thread + - IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition + - sctp: count singleton chunks in assoc user stats + - dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe + - ice: Set txq_teid to ICE_INVAL_TEID on ring creation + - ice: Do not skip not enabled queues in ice_vc_dis_qs_msg + - ipv6: Fix stats accounting in ip6_pkt_drop + - ice: synchronize_rcu() when terminating rings + - ice: xsk: fix VSI state check in ice_xsk_wakeup() + - ice: clear cmd_type_offset_bsz for TX rings + - net: openvswitch: don't send internal clone attribute to the userspace. + - net: ethernet: mv643xx: Fix over zealous checking of_get_mac_address() + - net: openvswitch: fix leak of nested actions + - rxrpc: fix a race in rxrpc_exit_net() + - net: sfc: fix using uninitialized xdp tx_queue + - net: phy: mscc-miim: reject clause 45 register accesses + - qede: confirm skb is allocated before using + - spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op() + - drm/amd/display: Fix for dmub outbox notification enable + - drm/amd/display: Remove redundant dsc power gating from init_hw + - bpf: Support dual-stack sockets in bpf_tcp_check_syncookie + - drbd: Fix five use after free bugs in get_initial_state + - scsi: sd: sd_read_cpr() requires VPD pages + - scsi: ufs: ufshpb: Fix a NULL check on list iterator + - io_uring: nospec index for tags on files update + - io_uring: don't touch scm_fp_list after queueing skb + - SUNRPC: Handle ENOMEM in call_transmit_status() + - SUNRPC: Handle low memory situations in call_status() + - SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec() + - iommu/omap: Fix regression in probe for NULL pointer dereference + - perf unwind: Don't show unwind error messages when augmenting frame pointer + stack + - perf: arm-spe: Fix perf report --mem-mode + - perf tools: Fix perf's libperf_print callback + - perf session: Remap buf if there is no space for event + - arm64: Add part number for Arm Cortex-A78AE + - scsi: mpt3sas: Fix use after free in _scsih_expander_node_remove() + - scsi: ufs: ufs-pci: Add support for Intel MTL + - Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" + - mmc: block: Check for errors after write on SPI + - mmc: mmci: stm32: correctly check all elements of sg list + - mmc: renesas_sdhi: special 4tap settings only apply to HS400 + - mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is + complete + - mmc: core: Fixup support for writeback-cache for eMMC and SD + - lz4: fix LZ4_decompress_safe_partial read out of bound + - highmem: fix checks in __kmap_local_sched_{in,out} + - mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0) + - mm/mempolicy: fix mpol_new leak in shared_policy_replace + - io_uring: don't check req->file in io_fsync_prep() + - io_uring: defer splice/tee file validity check until command issue + - io_uring: implement compat handling for IORING_REGISTER_IOWQ_AFF + - io_uring: fix race between timeout flush and removal + - x86/pm: Save the MSR validity status at context setup + - x86/speculation: Restore speculation related MSRs during S3 resume + - perf/x86/intel: Update the FRONTEND MSR mask on Sapphire Rapids + - btrfs: fix qgroup reserve overflow the qgroup limit + - btrfs: zoned: traverse devices under chunk_mutex in btrfs_can_activate_zone + - btrfs: remove device item and update super block in the same transaction + - btrfs: avoid defragging extents whose next extents are not targets + - btrfs: prevent subvol with swapfile from being deleted + - spi: core: add dma_map_dev for __spi_unmap_msg() + - cifs: force new session setup and tcon for dfs + - qed: fix ethtool register dump + - arm64: patch_text: Fixup last cpu should be master + - RDMA/hfi1: Fix use-after-free bug for mm struct + - drbd: fix an invalid memory access caused by incorrect use of list iterator + - gpio: Restrict usage of GPIO chip irq members before initialization + - x86/msi: Fix msi message data shadow struct + - x86/mm/tlb: Revert retpoline avoidance approach + - perf/x86/intel: Don't extend the pseudo-encoding to GP counters + - ata: sata_dwc_460ex: Fix crash due to OOB write + - perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator + - perf/core: Inherit event_caps + - irqchip/gic-v3: Fix GICR_CTLR.RWP polling + - fbdev: Fix unregistering of framebuffers without device + - amd/display: set backlight only if required + - drm/panel: ili9341: fix optional regulator handling + - drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw + - drm/amdgpu/display: change pipe policy for DCN 2.1 + - drm/amdgpu/smu10: fix SoC/fclk units in auto mode + - drm/amdgpu/vcn: Fix the register setting for vcn1 + - drm/nouveau/pmu: Add missing callbacks for Tegra devices + - drm/amdkfd: Create file descriptor after client is added to smi_clients list + - drm/amdgpu: don't use BACO for reset in S3 + - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free() + - Revert "ACPI: processor: idle: Only flush cache on entering C3" + - drm/amdkfd: Fix variable set but not used warning + - net/smc: send directly on setting TCP_NODELAY + - Revert "selftests: net: Add tls config dependency for tls selftests" + - bpf: Make remote_port field in struct bpf_sk_lookup 16-bit wide + - selftests/bpf: Fix u8 narrow load checks for bpf_sk_lookup remote_port + - bpf: Treat bpf_sk_lookup remote_port as a 2-byte field + - perf build: Don't use -ffat-lto-objects in the python feature test when + building with clang-13 + - perf python: Fix probing for some clang command line options + - tools build: Filter out options and warnings not supported by clang + - tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts + - dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error" + - KVM: avoid NULL pointer dereference in kvm_dirty_ring_push + - Drivers: hv: vmbus: Replace smp_store_mb() with virt_store_mb() + - powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit + - Revert "powerpc: Set max_mapnr correctly" + - x86/bug: Prevent shadowing in __WARN_FLAGS + - objtool: Fix SLS validation for kcov tail-call replacement + - sched/core: Fix forceidle balancing + - sched: Teach the forced-newidle balancer about CPU affinity limitation. + - x86,static_call: Fix __static_call_return0 for i386 + - x86/extable: Prefer local labels in .set directives + - irqchip/gic-v4: Wait for GICR_VPENDBASER.Dirty to clear before descheduling + - powerpc/64: Fix build failure with allyesconfig in book3s_64_entry.S + - irqchip/gic, gic-v3: Prevent GSI to SGI translations + - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning + - static_call: Don't make __static_call_return0 static + - io_uring: move read/write file prep state into actual opcode handler + - io_uring: propagate issue_flags state down to file assignment + - io_uring: defer file assignment + - io_uring: drop the old style inflight file tracking + - Linux 5.17.3 + + * Jammy update: v5.17.2 upstream stable release Edit (LP: #1968984) + - Revert "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" + - USB: serial: pl2303: add IBM device IDs + - dt-bindings: usb: hcd: correct usb-device path + - USB: serial: pl2303: fix GS type detection + - USB: serial: simple: add Nokia phone driver + - mm: kfence: fix missing objcg housekeeping for SLAB + - locking/lockdep: Avoid potential access of invalid memory in lock_class + - drm/amdgpu: move PX checking into amdgpu_device_ip_early_init + - drm/amdgpu: only check for _PR3 on dGPUs + - iommu/iova: Improve 32-bit free space estimate + - block: flush plug based on hardware and software queue order + - block: ensure plug merging checks the correct queue at least once + - usb: typec: tipd: Forward plug orientation to typec subsystem + - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c + - xhci: fix garbage USBSTS being logged in some cases + - xhci: fix runtime PM imbalance in USB2 resume + - xhci: make xhci_handshake timeout for xhci_reset() adjustable + - xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx() + - mei: me: disable driver on the ign firmware + - mei: me: add Alder Lake N device id. + - mei: avoid iterator usage outside of list_for_each_entry + - bus: mhi: pci_generic: Add mru_default for Quectel EM1xx series + - bus: mhi: Fix pm_state conversion to string + - bus: mhi: Fix MHI DMA structure endianness + - docs: sphinx/requirements: Limit jinja2<3.1 + - coresight: Fix TRCCONFIGR.QE sysfs interface + - coresight: syscfg: Fix memleak on registration failure in + cscfg_create_device + - dt-bindings: iio: adc: zynqmp_ams: Add clock entry + - iio: adc: xilinx-ams: Fix single channel switching sequence + - iio: accel: mma8452: use the correct logic to get mma8452_data + - iio: adc: aspeed: Add divider flag to fix incorrect voltage reading. + - iio: imu: st_lsm6dsx: use dev_to_iio_dev() to get iio_dev struct + - iio: afe: rescale: use s64 for temporary scale calculations + - iio: adc: xilinx-ams: Fixed missing PS channels + - iio: adc: xilinx-ams: Fixed wrong sequencer register settings + - iio: inkern: apply consumer scale on IIO_VAL_INT cases + - iio: inkern: apply consumer scale when no channel scale is available + - iio: inkern: make a best effort on offset calculation + - greybus: svc: fix an error handling bug in gb_svc_hello() + - clk: rockchip: re-add rational best approximation algorithm to the + fractional divider + - clk: uniphier: Fix fixed-rate initialization + - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE + - cifs: truncate the inode and mapping when we simulate fcollapse + - cifs: fix handlecache and multiuser + - cifs: we do not need a spinlock around the tree access during umount + - KEYS: fix length validation in keyctl_pkey_params_get_2() + - KEYS: asymmetric: enforce that sig algo matches key algo + - KEYS: asymmetric: properly validate hash_algo and encoding + - Documentation: add link to stable release candidate tree + - Documentation: update stable tree link + - firmware: stratix10-svc: add missing callback parameter on RSU + - firmware: sysfb: fix platform-device leak in error path + - HID: intel-ish-hid: Use dma_alloc_coherent for firmware update + - SUNRPC: avoid race between mod_timer() and del_timer_sync() + - SUNRPC: Do not dereference non-socket transports in sysfs + - NFS: NFSv2/v3 clients should never be setting NFS_CAP_XATTR + - NFSD: prevent underflow in nfssvc_decode_writeargs() + - NFSD: prevent integer overflow on 32 bit systems + - f2fs: fix to unlock page correctly in error path of is_alive() + - f2fs: quota: fix loop condition at f2fs_quota_sync() + - f2fs: fix to do sanity check on .cp_pack_total_block_count + - remoteproc: Fix count check in rproc_coredump_write() + - mm/mlock: fix two bugs in user_shm_lock() + - pinctrl: ingenic: Fix regmap on X series SoCs + - pinctrl: samsung: drop pin banks references on error paths + - net: bnxt_ptp: fix compilation error + - spi: mxic: Fix the transmit path + - mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set + - mtd: rawnand: protect access to rawnand devices while in suspend + - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path + - can: m_can: m_can_tx_handler(): fix use after free of skb + - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error + path + - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem + - jffs2: fix memory leak in jffs2_do_mount_fs + - jffs2: fix memory leak in jffs2_scan_medium + - mm: fs: fix lru_cache_disabled race in bh_lru + - mm: don't skip swap entry even if zap_details specified + - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node + - mm: invalidate hwpoison page cache page in fault path + - mempolicy: mbind_range() set_policy() after vma_merge() + - scsi: core: sd: Add silence_suspend flag to suppress some PM messages + - scsi: ufs: Fix runtime PM messages never-ending cycle + - scsi: scsi_transport_fc: Fix FPIN Link Integrity statistics counters + - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands + - qed: display VF trust config + - qed: validate and restrict untrusted VFs vlan promisc mode + - riscv: dts: canaan: Fix SPI3 bus width + - riscv: Fix fill_callchain return value + - riscv: Increase stack size under KASAN + - RISC-V: Declare per cpu boot data as static + - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" + - cifs: do not skip link targets when an I/O fails + - cifs: fix incorrect use of list iterator after the loop + - cifs: prevent bad output lengths in smb2_ioctl_query_info() + - cifs: fix NULL ptr dereference in smb2_ioctl_query_info() + - ALSA: cs4236: fix an incorrect NULL check on list iterator + - ALSA: hda: Avoid unsol event during RPM suspending + - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock + - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020 + - rtc: mc146818-lib: fix locking in mc146818_set_time + - rtc: pl031: fix rtc features null pointer dereference + - io_uring: ensure that fsnotify is always called + - ocfs2: fix crash when mount with quota enabled + - drm/simpledrm: Add "panel orientation" property on non-upright mounted LCD + panels + - mm: madvise: skip unmapped vma holes passed to process_madvise + - mm: madvise: return correct bytes advised with process_madvise + - Revert "mm: madvise: skip unmapped vma holes passed to process_madvise" + - mm,hwpoison: unmap poisoned page before invalidation + - mm: only re-generate demotion targets when a numa node changes its N_CPU + state + - mm/kmemleak: reset tag when compare object pointer + - dm stats: fix too short end duration_ns when using precise_timestamps + - dm: fix use-after-free in dm_cleanup_zoned_dev() + - dm: interlock pending dm_io and dm_wait_for_bios_completion + - dm: fix double accounting of flush with data + - dm integrity: set journal entry unused when shrinking device + - tracing: Have trace event string test handle zero length strings + - drbd: fix potential silent data corruption + - can: isotp: sanitize CAN ID checks in isotp_bind() + - PCI: fu740: Force 2.5GT/s for initial device probe + - arm64: signal: nofpsimd: Do not allocate fp/simd context when not available + - arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory + zones + - arm64: dts: qcom: sm8250: Fix MSI IRQ for PCIe1 and PCIe2 + - arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-am64: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j721s2: Fix gic-v3 compatible regs + - ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM + - mmc: core: use sysfs_emit() instead of sprintf() + - Revert "ACPI: Pass the same capabilities to the _OSC regardless of the query + flag" + - ACPI: properties: Consistently return -ENOENT if there are no more + references + - coredump: Also dump first pages of non-executable ELF libraries + - ext4: fix ext4_fc_stats trace point + - ext4: fix fs corruption when tring to remove a non-empty directory with IO + error + - ext4: make mb_optimize_scan option work with set/unset mount cmd + - ext4: make mb_optimize_scan performance mount option work with extents + - samples/landlock: Fix path_list memory leak + - landlock: Use square brackets around "landlock-ruleset" + - mailbox: tegra-hsp: Flush whole channel + - btrfs: zoned: put block group after final usage + - block: fix rq-qos breakage from skipping rq_qos_done_bio() + - block: limit request dispatch loop duration + - block: don't merge across cgroup boundaries if blkcg is enabled + - drm/edid: check basic audio support on CEA extension block + - fbdev: Hot-unplug firmware fb devices on forced removal + - video: fbdev: sm712fb: Fix crash in smtcfb_read() + - video: fbdev: atari: Atari 2 bpp (STe) palette bugfix + - rfkill: make new event layout opt-in + - ARM: dts: at91: sama7g5: Remove unused properties in i2c nodes + - ARM: dts: at91: sama5d2: Fix PMERRLOC resource size + - ARM: dts: exynos: fix UART3 pins configuration in Exynos5250 + - ARM: dts: exynos: add missing HDMI supplies on SMDK5250 + - ARM: dts: exynos: add missing HDMI supplies on SMDK5420 + - mgag200 fix memmapsl configuration in GCTL6 register + - carl9170: fix missing bit-wise or operator for tx_params + - pstore: Don't use semaphores in always-atomic-context code + - thermal: int340x: Increase bitmap size + - lib/raid6/test: fix multiple definition linking error + - exec: Force single empty string when argv is empty + - crypto: rsa-pkcs1pad - only allow with rsa + - crypto: rsa-pkcs1pad - correctly get hash from source scatterlist + - crypto: rsa-pkcs1pad - restore signature length check + - crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete() + - bcache: fixup multiple threads crash + - PM: domains: Fix sleep-in-atomic bug caused by genpd_debug_remove() + - DEC: Limit PMAX memory probing to R3k systems + - media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC + - media: omap3isp: Use struct_group() for memcpy() region + - media: venus: vdec: fixed possible memory leak issue + - media: venus: hfi_cmds: List HDR10 property as unsupported for v1 and v3 + - media: venus: venc: Fix h264 8x8 transform control + - media: davinci: vpif: fix unbalanced runtime PM get + - media: davinci: vpif: fix unbalanced runtime PM enable + - media: davinci: vpif: fix use-after-free on driver unbind + - mips: Always permit to build u-boot images + - btrfs: zoned: mark relocation as writing + - btrfs: extend locking to all space_info members accesses + - btrfs: verify the tranisd of the to-be-written dirty extent buffer + - xtensa: define update_mmu_tlb function + - xtensa: fix stop_machine_cpuslocked call in patch_text + - xtensa: fix xtensa_wsr always writing 0 + - KVM: s390x: fix SCK locking + - drm/syncobj: flatten dma_fence_chains on transfer + - drm/nouveau/backlight: Fix LVDS backlight detection on some laptops + - drm/nouveau/backlight: Just set all backlight types as RAW + - drm/fb-helper: Mark screen buffers in system memory with FBINFO_VIRTFB + - brcmfmac: firmware: Allocate space for default boardrev in nvram + - brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path + - brcmfmac: pcie: Declare missing firmware files in pcie.c + - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio + - brcmfmac: pcie: Fix crashes due to early IRQs + - drm/i915/opregion: check port number bounds for SWSCI display power state + - drm/i915/gem: add missing boundary check in vm_access + - PCI: imx6: Allow to probe when dw_pcie_wait_for_link() fails + - PCI: pciehp: Clear cmd_busy bit in polling mode + - PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup" + - PCI: xgene: Revert "PCI: xgene: Fix IB window setup" + - regulator: qcom_smd: fix for_each_child.cocci warnings + - selinux: access superblock_security_struct in LSM blob way + - selinux: check return value of sel_make_avc_files + - crypto: ccp - Ensure psp_ret is always init'd in + __sev_platform_init_locked() + - crypto: qat - fix a signedness bug in get_service_enabled() + - hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER + - crypto: sun8i-ss - really disable hash on A80 + - crypto: kdf - Select hmac in addition to sha256 + - crypto: qat - fix access to PFVF interrupt registers for GEN4 + - crypto: authenc - Fix sleep in atomic context in decrypt_tail + - crypto: octeontx2 - select CONFIG_NET_DEVLINK + - crypto: mxs-dcp - Fix scatterlist processing + - selinux: Fix selinux_sb_mnt_opts_compat() + - thermal: int340x: Check for NULL after calling kmemdup() + - crypto: octeontx2 - remove CONFIG_DM_CRYPT check + - spi: tegra114: Add missing IRQ check in tegra_spi_probe + - spi: tegra210-quad: Fix missin IRQ check in tegra_qspi_probe + - perf: MARVELL_CN10K_TAD_PMU should depend on ARCH_THUNDER + - selftests/sgx: Fix NULL-pointer-dereference upon early test failure + - selftests/sgx: Do not attempt enclave build without valid enclave + - selftests/sgx: Ensure enclave data available during debug print + - stack: Constrain and fix stack offset randomization with Clang builds + - arm64/mm: avoid fixmap race condition when create pud mapping + - security: add sctp_assoc_established hook + - blk-cgroup: set blkg iostat after percpu stat aggregation + - selftests/x86: Add validity check and allow field splitting + - selftests/sgx: Treat CC as one argument + - crypto: rockchip - ECB does not need IV + - block: update io_ticks when io hang + - audit: log AUDIT_TIME_* records only from rules + - EVM: fix the evm= __setup handler return value + - crypto: ccree - don't attempt 0 len DMA mappings + - crypto: hisilicon/sec - fix the aead software fallback for engine + - spi: pxa2xx-pci: Balance reference count for PCI DMA device + - hwmon: (pmbus) Add mutex to regulator ops + - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING + - nvme: cleanup __nvme_check_ids + - nvme: fix the check for duplicate unique identifiers + - block: don't delete queue kobject before its children + - PM: hibernate: fix __setup handler error handling + - PM: suspend: fix return value of __setup handler + - spi: spi-zynqmp-gqspi: Handle error for dma_set_mask + - hwrng: atmel - disable trng on failure path + - crypto: sun8i-ss - call finalize with bh disabled + - crypto: sun8i-ce - call finalize with bh disabled + - crypto: amlogic - call finalize with bh disabled + - crypto: gemini - call finalize with bh disabled + - crypto: vmx - add missing dependencies + - clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix + - clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts + - clocksource/drivers/timer-microchip-pit64b: Use notrace + - clocksource/drivers/timer-of: Check return value of of_iomap in + timer_of_base_init() + - arm64: prevent instrumentation of bp hardening callbacks + - perf/arm-cmn: Hide XP PUB events for CMN-600 + - perf/arm-cmn: Update watchpoint format + - KEYS: trusted: Fix trusted key backends when building as module + - KEYS: trusted: Avoid calling null function trusted_key_exit + - ACPI: APEI: fix return value of __setup handlers + - crypto: ccp - ccp_dmaengine_unregister release dma channels + - crypto: ccree - Fix use after free in cc_cipher_exit() + - crypto: qat - fix initialization of pfvf cap_msg structures + - crypto: qat - fix initialization of pfvf rts_map_msg structures + - hwrng: nomadik - Change clk_disable to clk_disable_unprepare + - hwmon: (pmbus) Add Vin unit off handling + - clocksource: acpi_pm: fix return value of __setup handler + - io_uring: don't check unrelated req->open.how in accept request + - io_uring: terminate manual loop iterator loop correctly for non-vecs + - watch_queue: Fix NULL dereference in error cleanup + - watch_queue: Actually free the watch + - f2fs: fix to enable ATGC correctly via gc_idle sysfs interface + - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa + - sched/core: Export pelt_thermal_tp + - sched/sugov: Ignore 'busy' filter when rq is capped by uclamp_max + - sched/uclamp: Fix iowait boost escaping uclamp restriction + - rseq: Remove broken uapi field layout on 32-bit little endian + - perf/core: Fix address filter parser for multiple filters + - perf/x86/intel/pt: Fix address filter config for 32-bit kernel + - sched/fair: Improve consistency of allowed NUMA balance calculations + - f2fs: fix missing free nid in f2fs_handle_failed_inode + - ext4: fix remount with 'abort' option + - nfsd: more robust allocation failure handling in nfsd_file_cache_init + - sched/cpuacct: Fix charge percpu cpuusage + - sched/rt: Plug rt_mutex_setprio() vs push_rt_task() race + - f2fs: fix to avoid potential deadlock + - btrfs: fix unexpected error path when reflinking an inline extent + - iomap: Fix iomap_invalidatepage tracepoint + - fs: erofs: add sanity check for kobject in erofs_unregister_sysfs + - f2fs: fix compressed file start atomic write may cause data corruption + - cifs: use a different reconnect helper for non-cifsd threads + - selftests, x86: fix how check_cc.sh is being invoked + - drivers/base/memory: add memory block to memory group after registration + succeeded + - kunit: make kunit_test_timeout compatible with comment + - pinctrl: samsung: Remove EINT handler for Exynos850 ALIVE and CMGP gpios + - media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size + - media: camss: csid-170: fix non-10bit formats + - media: camss: csid-170: don't enable unused irqs + - media: camss: csid-170: set the right HALT_CMD when disabled + - media: camss: vfe-170: fix "VFE halt timeout" error + - media: staging: media: imx: imx7-mipi-csis: Make subdev name unique + - media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls + - media: mtk-vcodec: potential dereference of null pointer + - media: imx: imx8mq-mipi-csi2: remove wrong irq config write operation + - media: imx: imx8mq-mipi_csi2: fix system resume + - media: bttv: fix WARNING regression on tunerless devices + - media: atmel: atmel-sama7g5-isc: fix ispck leftover + - ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively + - ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio + - ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting + - ASoC: simple-card-utils: Set sysclk on all components + - memory: tegra20-emc: Correct memory device mask + - media: coda: Fix missing put_device() call in coda_get_vdoa_data + - media: meson: vdec: potential dereference of null pointer + - media: hantro: Fix overfill bottom register field name + - media: ov6650: Fix set format try processing path + - media: v4l: Avoid unaligned access warnings when printing 4cc modifiers + - media: ov5648: Don't pack controls struct + - media: ov2740: identify module after subdev initialisation + - media: aspeed: Correct value for h-total-pixels + - video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to + avoid black screen + - video: fbdev: controlfb: Fix COMPILE_TEST build + - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe() + - video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe() + - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name() + - ARM: dts: Fix OpenBMC flash layout label addresses + - ASoC: max98927: add missing header file + - arm64: dts: qcom: sc7280: Fix gmu unit address + - firmware: qcom: scm: Remove reassignment to desc following initializer + - ARM: dts: qcom: ipq4019: fix sleep clock + - soc: qcom: rpmpd: Check for null return of devm_kcalloc + - soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem + - soc: qcom: aoss: Fix missing put_device call in qmp_get + - soc: qcom: aoss: remove spurious IRQF_ONESHOT flags + - arm64: dts: qcom: sdm845: fix microphone bias properties and values + - arm64: dts: qcom: sm8250: fix PCIe bindings to follow schema + - arm64: dts: qcom: msm8916-j5: Fix typo + - arm64: dts: broadcom: bcm4908: use proper TWD binding + - arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc + - arm64: dts: qcom: sm8350: Correct TCS configuration for apps rsc + - arm64: dts: qcom: sm8450: Update cpuidle states parameters + - arm64: dts: qcom: msm8994: Provide missing "xo_board" and "sleep_clk" to GCC + - arm64: dts: qcom: ipq6018: fix usb reference period + - firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not + defined + - soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe + - cpuidle: qcom-spm: Check if any CPU is managed by SPM + - ARM: dts: sun8i: v3s: Move the csi1 block to follow address order + - ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 + - vsprintf: Fix potential unaligned access + - ARM: dts: qcom: sdx55: Fix the address used for PCIe EP local addr space + - ARM: dts: imx: Add missing LVDS decoder on M53Menlo + - media: mexon-ge2d: fixup frames size in registers + - media: video/hdmi: handle short reads of hdmi info frame. + - media: ti-vpe: cal: Fix a NULL pointer dereference in + cal_ctx_v4l2_init_formats() + - media: em28xx: initialize refcount before kref_get + - media: uapi: Init VP9 stateless decode params + - media: usb: go7007: s2250-board: fix leak in probe() + - media: cedrus: H265: Fix neighbour info buffer size + - media: cedrus: h264: Fix neighbour info buffer size + - arm64: dts: ti: k3-j721s2-mcu-wakeup: Fix the interrupt-parent for + wkup_gpioX instances + - ASoC: codecs: rx-macro: fix accessing compander for aux + - ASoC: codecs: rx-macro: fix accessing array out of bounds for enum type + - ASoC: codecs: va-macro: fix accessing array out of bounds for enum type + - ASoC: codecs: wc938x: fix accessing array out of bounds for enum type + - ASoC: codecs: wcd938x: fix kcontrol max values + - ASoC: codecs: wcd934x: fix kcontrol max values + - ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_put + - media: v4l2-core: Initialize h264 scaling matrix + - media: hantro: sunxi: Fix VP9 steps + - media: ov5640: Fix set format, v4l2_mbus_pixelcode not updated + - selftests: vm: remove dependecy from internal kernel macros + - selftests/lkdtm: Add UBSAN config + - vsprintf: Fix %pK with kptr_restrict == 0 + - uaccess: fix nios2 and microblaze get_user_8() + - ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp() + - ASoC: acp: check the return value of devm_kzalloc() in + acp_legacy_dai_links_create() + - soc: mediatek: pm-domains: Add wakeup capacity support in power domain + - mmc: sdhci_am654: Fix the driver data of AM64 SoC + - ASoC: ti: davinci-i2s: Add check for clk_enable() + - ALSA: spi: Add check for clk_enable() + - arm64: dts: ns2: Fix spi-cpol and spi-cpha property + - arm64: dts: broadcom: Fix sata nodename + - printk: fix return value of printk.devkmsg __setup handler + - ASoC: mxs-saif: Handle errors for clk_enable + - ASoC: atmel_ssc_dai: Handle errors for clk_enable + - ASoC: dwc-i2s: Handle errors for clk_enable + - ASoC: soc-compress: prevent the potentially use of null pointer + - media: i2c: Fix pixel array positions in ov8865 + - memory: emif: Add check for setup_interrupts + - memory: emif: check the pointer temp in get_device_details() + - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction + - arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly + - m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined + - media: stk1160: If start stream fails, return buffers with + VB2_BUF_STATE_QUEUED + - media: vidtv: Check for null return of vzalloc + - ASoC: cs35l41: Fix GPIO2 configuration + - ASoC: cs35l41: Fix max number of TX channels + - ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe + - ASoC: wm8350: Handle error for wm8350_register_irq + - ASoC: fsi: Add check for clk_enable + - video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of + - media: saa7134: fix incorrect use to determine if list is empty + - ivtv: fix incorrect device_caps for ivtvfb + - ASoC: atmel: Fix error handling in snd_proto_probe + - ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in + rockchip_i2s_probe + - ASoC: SOF: Add missing of_node_put() in imx8m_probe + - ASoC: mediatek: mt8192-mt6359: Fix error handling in mt8192_mt6359_dev_probe + - ASoC: rk817: Fix missing clk_disable_unprepare() in rk817_platform_probe + - ASoC: dmaengine: do not use a NULL prepare_slave_config() callback + - ASoC: mxs: Fix error handling in mxs_sgtl5000_probe + - ASoC: fsl_spdif: Disable TX clock when stop + - ASoC: imx-es8328: Fix error return code in imx_es8328_probe() + - ASoC: SOF: Intel: enable DMI L1 for playback streams + - ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in + msm8916_wcd_digital_probe + - mmc: davinci_mmc: Handle error for clk_enable + - rtla/osnoise: Fix osnoise hist stop tracing message + - ASoC: rockchip: Fix PM usage reference of rockchip_i2s_tdm_resume + - ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe + - ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe + - ASoC: mediatek: mt8195: Fix error handling in + mt8195_mt6359_rt1019_rt5682_dev_probe + - ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data + - ASoC: amd: Fix reference to PCM buffer address + - ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS + - ARM: configs: multi_v5_defconfig: re-enable DRM_PANEL and FB_xxx + - drm/bridge: sn65dsi83: Fix an error handling path in sn65dsi83_probe() + - drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops + - drm/meson: Fix error handling when afbcd.ops->init fails + - drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev + - drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe + - drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe + - drm: bridge: adv7511: Fix ADV7535 HPD enablement + - ath11k: add missing of_node_put() to avoid leak + - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern + - drm/v3d/v3d_drv: Check for error num after setting mask + - Bluetooth: hci_sync: unlock on error in hci_inquiry_result_with_rssi_evt() + - ath11k: free peer for station when disconnect from AP for QCA6390/WCN6855 + - drm/panfrost: Check for error num after setting mask + - bpftool: Fix error check when calling hashmap__new() + - libbpf: Fix possible NULL pointer dereference when destroying skeleton + - bpftool: Only set obj->skeleton on complete success + - ath11k: fix error code in ath11k_qmi_assign_target_mem_chunk() + - udmabuf: validate ubuf->pagecount + - bpf: Fix UAF due to race between btf_try_get_module and load_module + - drm/selftests/test-drm_dp_mst_helper: Fix memory leak in + sideband_msg_req_encode_decode + - drm/locking: fix drm_modeset_acquire_ctx kernel-doc + - selftests: bpf: Fix bind on used port + - Bluetooth: btintel: Fix WBS setting for Intel legacy ROM products + - Bluetooth: hci_serdev: call init_rwsem() before p->open() + - Bluetooth: mt7921s: fix firmware coredump retrieve + - Bluetooth: mt7921s: fix bus hang with wrong privilege + - Bluetooth: btmtksdio: refactor btmtksdio_runtime_[suspend|resume]() + - Bluetooth: mt7921s: fix btmtksdio_[drv|fw]_pmctrl() + - Bluetooth: btmtksdio: mask out interrupt status + - mtd: onenand: Check for error irq + - mtd: rawnand: gpmi: fix controller timings setting + - selftests, xsk: Fix rx_full stats test + - drm/edid: Don't clear formats if using deep color + - drm/edid: Split deep color modes between RGB and YUV444 + - ionic: fix type complaint in ionic_dev_cmd_clean() + - ionic: start watchdog after all is setup + - ionic: Don't send reset commands if FW isn't running + - ionic: fix up printing of timeout error + - ionic: Correctly print AQ errors if completions aren't received + - net: dsa: Move VLAN filtering syncing out of dsa_switch_bridge_leave + - net: dsa: Avoid cross-chip syncing of VLAN filtering + - Bluetooth: hci_event: Fix HCI_EV_VENDOR max_len + - drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl() + - drm/amd/display: Call dc_stream_release for remove link enc assignment + - drm/amd/display: Fix a NULL pointer dereference in + amdgpu_dm_connector_add_common_modes() + - drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function + - net: phy: at803x: move page selection fix to config_init + - selftests/bpf/test_xdp_redirect_multi: use temp netns for testing + - ath9k_htc: fix uninit value bugs + - ath11k: set WMI_PEER_40MHZ while peer assoc for 6 GHz + - RDMA/core: Set MR type in ib_reg_user_mr + - KVM: PPC: Fix vmx/vsx mixup in mmio emulation + - selftests/net: timestamping: Fix bind_phc check + - rtw88: check for validity before using a pointer + - rtw88: fix idle mode flow for hw scan + - rtw88: fix memory overrun and memory leak during hw_scan + - drm/bridge: lt9611: Fix an error handling path in lt9611_probe() + - i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - i40e: respect metadata on XSK Rx to skb + - ice: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ice: respect metadata on XSK Rx to skb + - igc: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ixgbe: pass bi->xdp to ixgbe_construct_skb_zc() directly + - ixgbe: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ixgbe: respect metadata on XSK Rx to skb + - power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe + - ray_cs: Check ioremap return value + - powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch + - KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init + - powerpc/perf: Don't use perf_hw_context for trace IMC PMU + - mt76: connac: fix sta_rec_wtbl tag len + - mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta + mode + - mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv + - mt76: mt76_connac: fix MCU_CE_CMD_SET_ROC definition error + - mt76: mt7921: set EDCA parameters with the MCU CE command + - mt76: mt7921: do not always disable fw runtime-pm + - mt76: mt7921: fix a leftover race in runtime-pm + - mt76: mt7615: fix a leftover race in runtime-pm + - mt76: mt7915: fix ht mcs in mt7915_mac_add_txs_skb() + - mt76: mt7921: fix ht mcs in mt7921_mac_add_txs_skb() + - mt76: mt7921s: fix mt7921s_mcu_[fw|drv]_pmctrl + - mt76: mt7921e: fix possible probe failure after reboot + - mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update + - mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update + - mt76: mt7915: fix possible memory leak in mt7915_mcu_add_sta + - mt76: mt7921s: fix a possible memory leak in mt7921_load_patch + - mt76: mt7915: fix mcs_map in mt7915_mcu_set_sta_he_mcs() + - mt76: mt7915: fix the nss setting in bitrates + - ptp: unregister virtual clocks when unregistering physical clock. + - net: dsa: mv88e6xxx: Enable port policy support on 6097 + - bpf: Fix a btf decl_tag bug when tagging a function + - mac80211: limit bandwidth in HE capabilities + - scripts/dtc: Call pkg-config POSIXly correct + - livepatch: Fix build failure on 32 bits processors + - net: asix: add proper error handling of usb read errors + - i2c: bcm2835: Fix the error handling in 'bcm2835_i2c_probe()' + - mtd: mchp23k256: Add SPI ID table + - mtd: mchp48l640: Add SPI ID table + - selftests/bpf: Extract syscall wrapper + - selftests/bpf: Use "__se_" prefix on architectures without syscall wrapper + - igc: avoid kernel warning when changing RX ring parameters + - igb: refactor XDP registration + - drm/amdgpu: Don't offset by 2 in FRU EEPROM + - PCI: aardvark: Fix reading MSI interrupt number + - PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge + - RDMA/rxe: Check the last packet by RXE_END_MASK + - libbpf: Fix signedness bug in btf_dump_array_data() + - libbpf: Fix riscv register names + - cxl/core: Fix cxl_probe_component_regs() error message + - tools/testing/cxl: Fix root port to host bridge assignment + - cxl/regs: Fix size of CXL Capability Header Register + - Netvsc: Call hv_unmap_memory() in the netvsc_device_remove() + - net:enetc: allocate CBD ring data memory using DMA coherent methods + - libbpf: Fix compilation warning due to mismatched printf format + - rtw88: fix use after free in rtw_hw_scan_update_probe_req() + - drm/bridge: dw-hdmi: use safe format when first in bridge chain + - power: supply: ab8500: Swap max and overvoltage + - libbpf: Fix libbpf.map inheritance chain for LIBBPF_0.7.0 + - libbpf: Use dynamically allocated buffer when receiving netlink messages + - power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init + - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports + - iommu/ipmmu-vmsa: Check for error num after setting mask + - drm/bridge: anx7625: Fix overflow issue on reading EDID + - ath11k: fix uninitialized rate_idx in ath11k_dp_tx_update_txcompl() + - i2c: pasemi: Drop I2C classes from platform driver variant + - bpftool: Fix the error when lookup in no-btf maps + - drm/amd/pm: enable pm sysfs write for one VF mode + - drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug + - bpftool: Fix pretty print dump for maps without BTF loaded + - libbpf: Fix memleak in libbpf_netlink_recv() + - IB/cma: Allow XRC INI QPs to set their local ACK timeout + - cxl/core/port: Rename bus.c to port.c + - cxl/port: Hold port reference until decoder release + - dax: make sure inodes are flushed before destroy cache + - selftests: mptcp: add csum mib check for mptcp_connect + - iwlwifi: mvm: Don't call iwl_mvm_sta_from_mac80211() with NULL sta + - iwlwifi: mvm: don't iterate unadded vifs when handling FW SMPS req + - iwlwifi: mvm: align locking in D3 test debugfs + - iwlwifi: yoyo: remove DBGI_SRAM address reset writing + - iwlwifi: yoyo: Avoid using dram data if allocation failed + - iwlwifi: mvm: fix off by one in iwl_mvm_stat_iterator_all_macs() + - iwlwifi: Fix -EIO error code that is never returned + - iwlwifi: mvm: Fix an error code in iwl_mvm_up() + - mtd: rawnand: pl353: Set the nand chip node as the flash node + - drm/msm/dp: do not initialize phy until plugin interrupt received + - drm/msm/dp: populate connector of struct dp_panel + - drm/msm/dp: stop link training after link training 2 failed + - drm/msm/dp: always add fail-safe mode into connector mode list + - drm/msm/dsi: Use "ref" fw clock instead of global name for VCO parent + - drm/msm/dsi/phy: fix 7nm v4.0 settings for C-PHY mode + - drm/msm/dpu: add DSPP blocks teardown + - drm/msm/dpu: fix dp audio condition + - drm/msm/dpu: remove msm_dp cached in dpu_encoder_virt + - drm/msm/dp: fix panel bridge attachment + - i40e: remove dead stores on XSK hotpath + - ath11k: Invalidate cached reo ring entry before accessing it + - mips: Enable KCSAN + - dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS + - vfio/pci: fix memory leak during D3hot to D0 transition + - vfio/pci: wake-up devices around reset functions + - scsi: fnic: Fix a tracing statement + - scsi: pm8001: Fix command initialization in pm80XX_send_read_log() + - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req() + - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config() + - scsi: pm8001: Fix le32 values handling in + pm80xx_set_sas_protocol_timer_config() + - scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update() + - scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req() + - scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req() + - scsi: pm8001: Fix NCQ NON DATA command task initialization + - scsi: pm8001: Fix NCQ NON DATA command completion handling + - scsi: pm8001: Fix abort all task initialization + - mt76: do not always copy ethhdr in reverse_frag0_hdr_trans + - mt76: fix endianness errors in reverse_frag0_hdr_trans + - mt76: mt7921s: fix missing fc type/sub-type for 802.11 pkts + - net: dsa: realtek-smi: fix kdoc warnings + - net: dsa: realtek-smi: move to subdirectory + - RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR + - drm/amd/display: Remove vupdate_int_entry definition + - TOMOYO: fix __setup handlers return values + - power: supply: sbs-charger: Don't cancel work that is not initialized + - mt76: mt7915: enlarge wcid size to 544 + - mt76: mt7915: fix the muru tlv issue + - drm/dp: Fix OOB read when handling Post Cursor2 register + - ext2: correct max file size computing + - drm/tegra: Fix reference leak in tegra_dsi_ganged_probe + - power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false + return + - scsi: hisi_sas: Change permission of parameter prot_mask + - drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt + - bpf, arm64: Call build_prologue() first in first JIT pass + - bpf, arm64: Feed byte-offset into bpf line info + - xsk: Fix race at socket teardown + - RDMA/irdma: Fix netdev notifications for vlan's + - RDMA/irdma: Fix Passthrough mode in VM + - RDMA/irdma: Remove incorrect masking of PD + - libbpf: Fix BPF_MAP_TYPE_PERF_EVENT_ARRAY auto-pinning + - gpu: host1x: Fix an error handling path in 'host1x_probe()' + - gpu: host1x: Fix a memory leak in 'host1x_remove()' + - libbpf: Skip forward declaration when counting duplicated type names + - powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties() + - powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit + - KVM: x86: Fix emulation in writing cr8 + - KVM: x86/emulator: Defer not-present segment check in + __load_segment_descriptor() + - KVM: SVM: Exit to userspace on ENOMEM/EFAULT GHCB errors + - hv_balloon: rate-limit "Unhandled message" warning + - KVM: arm64: Enable Cortex-A510 erratum 2077057 by default + - i2c: xiic: Make bus names unique + - net: phy: micrel: Fix concurrent register access + - Bluetooth: hci_sync: fix undefined return of hci_disconnect_all_sync() + - Bluetooth: Fix skb allocation in mgmt_remote_name() & + mgmt_device_connected() + - power: supply: wm8350-power: Handle error for wm8350_register_irq + - power: supply: wm8350-power: Add missing free in free_charger_irq + - IB/hfi1: Allow larger MTU without AIP + - RDMA/core: Fix ib_qp_usecnt_dec() called when error + - PCI: Reduce warnings on possible RW1C corruption + - net: axienet: fix RX ring refill allocation failure handling + - drm/msm/a6xx: Fix missing ARRAY_SIZE() check + - mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n + - MIPS: Sanitise Cavium switch cases in TLB handler synthesizers + - powerpc/sysdev: fix incorrect use to determine if list is empty + - powerpc/64s: Don't use DSISR for SLB faults + - mfd: mc13xxx: Add check for mc13xxx_irq_request + - libbpf: Unmap rings when umem deleted + - selftests/bpf: Make test_lwt_ip_encap more stable and faster + - platform/x86: huawei-wmi: check the return value of device_create_file() + - scsi: mpt3sas: Fix incorrect 4GB boundary check + - powerpc: 8xx: fix a return value error in mpc8xx_pic_init + - xtensa: add missing XCHAL_HAVE_WINDOWED check + - iwlwifi: pcie: fix SW error MSI-X mapping + - vxcan: enable local echo for sent CAN frames + - ath10k: Fix error handling in ath10k_setup_msa_resources + - mips: cdmm: Fix refcount leak in mips_cdmm_phys_base + - MIPS: RB532: fix return value of __setup handler + - MIPS: pgalloc: fix memory leak caused by pgd_free() + - mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init + - power: ab8500_chargalg: Use CLOCK_MONOTONIC + - RDMA/irdma: Prevent some integer underflows + - Revert "RDMA/core: Fix ib_qp_usecnt_dec() called when error" + - RDMA/mlx5: Fix memory leak in error flow for subscribe event routine + - bpf, sockmap: Fix memleak in sk_psock_queue_msg + - bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full + - bpf, sockmap: Fix more uncharged while msg has more_data + - bpf, sockmap: Fix double uncharge the mem of sk_msg + - samples/bpf, xdpsock: Fix race when running for fix duration of time + - USB: storage: ums-realtek: fix error code in rts51x_read_mem() + - drm/amd/display: Fix double free during GPU reset on DC streams + - RDMA/rxe: Change variable and function argument to proper type + - RDMA/rxe: Fix ref error in rxe_av.c + - powerpc/xive: fix return value of __setup handler + - powerpc/time: Fix KVM host re-arming a timer beyond decrementer range + - drm/i915/display: Fix HPD short pulse handling for eDP + - drm/i915/display: Do not re-enable PSR after it was marked as not reliable + - netfilter: flowtable: Fix QinQ and pppoe support for inet table + - mt76: mt7921: fix mt7921_queues_acq implementation + - can: isotp: return -EADDRNOTAVAIL when reading from unbound socket + - can: isotp: support MSG_TRUNC flag when reading from socket + - bareudp: use ipv6_mod_enabled to check if IPv6 enabled + - PCI: imx6: Invoke the PHY exit function after PHY power off + - PCI: imx6: Assert i.MX8MM CLKREQ# even if no device present + - ibmvnic: fix race between xmit and reset + - af_unix: Fix some data-races around unix_sk(sk)->oob_skb. + - selftests/bpf: Fix error reporting from sock_fields programs + - Bluetooth: hci_uart: add missing NULL check in h5_enqueue + - Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed + - Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt + - RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit() + - ipv4: Fix route lookups when handling ICMP redirects and PMTU updates + - mptcp: Fix crash due to tcp_tsorted_anchor was initialized before release + skb + - af_netlink: Fix shift out of bounds in group mask calculation + - i2c: meson: Fix wrong speed use from probe + - netfilter: conntrack: Add and use nf_ct_set_auto_assign_helper_warned() + - i2c: mux: demux-pinctrl: do not deactivate a master that is not active + - powerpc/pseries: Fix use after free in remove_phb_dynamic() + - ax25: Fix refcount leaks caused by ax25_cb_del() + - ax25: Fix NULL pointer dereferences in ax25 timers + - drm/i915: Fix renamed struct field + - selftests/bpf/test_lirc_mode2.sh: Exit with proper code + - bpftool: Fix print error when show bpf map + - PCI: Avoid broken MSI on SB600 USB devices + - net: bcmgenet: Use stronger register read/writes to assure ordering + - tcp: ensure PMTU updates are processed during fastopen + - openvswitch: always update flow key after nat + - net: dsa: fix panic on shutdown if multi-chip tree failed to probe + - net: wwan: qcom_bam_dmux: fix wrong pointer passed to IS_ERR() + - tipc: fix the timer expires after interval 100ms + - mfd: asic3: Add missing iounmap() on error asic3_mfd_probe + - ice: fix 'scheduling while atomic' on aux critical err interrupt + - ice: don't allow to run ice_send_event_to_aux() in atomic ctx + - drivers: ethernet: cpsw: fix panic when interrupt coaleceing is set via + ethtool + - kernel/resource: fix kfree() of bootmem memory again + - clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3 + - staging: r8188eu: release_firmware is not called if allocation fails + - mxser: fix xmit_buf leak in activate when LSR == 0xff + - fsi: scom: Fix error handling + - fsi: scom: Remove retries in indirect scoms + - pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() + - pps: clients: gpio: Propagate return value from pps_gpio_probe + - fsi: Aspeed: Fix a potential double free + - misc: alcor_pci: Fix an error handling path + - cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse + - soundwire: intel: fix wrong register name in intel_shim_wake + - clk: qcom: ipq8074: fix PCI-E clock oops + - dmaengine: idxd: restore traffic class defaults after wq reset + - iio: mma8452: Fix probe failing when an i2c_device_id is used + - staging: qlge: add unregister_netdev in qlge_probe + - serial: 8250_aspeed_vuart: add PORT_ASPEED_VUART port type + - staging:iio:adc:ad7280a: Fix handing of device address bit reversing. + - clk: renesas: r8a779f0: Fix RSW2 clock divider + - pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel + - pinctrl: renesas: checker: Fix miscalculation of number of states + - clk: qcom: ipq8074: Use floor ops for SDCC1 clock + - phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) + - phy: phy-brcm-usb: fixup BCM4908 support + - serial: 8250_mid: Balance reference count for PCI DMA device + - serial: 8250_lpss: Balance reference count for PCI DMA device + - NFS: Use of mapping_set_error() results in spurious errors + - serial: 8250: Fix race condition in RTS-after-send handling + - iio: adc: Add check for devm_request_threaded_irq + - habanalabs: Add check for pci_enable_device + - NFS: Return valid errors from nfs2/3_decode_dirent() + - staging: r8188eu: fix endless loop in recv_func + - dma-debug: fix return value of __setup handlers + - clk: imx7d: Remove audio_mclk_root_clk + - clk: imx: off by one in imx_lpcg_parse_clks_from_dt() + - clk: at91: sama7g5: fix parents of PDMCs' GCLK + - clk: qcom: clk-rcg2: Update logic to calculate D value for RCG + - clk: qcom: clk-rcg2: Update the frac table for pixel clock + - clk: starfive: jh7100: Don't round divisor up twice + - clk: starfive: jh7100: Handle audio_div clock properly + - dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma + - remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region + - remoteproc: qcom_wcnss: Add missing of_node_put() in + wcnss_alloc_memory_region + - remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region + - nvdimm/region: Fix default alignment for small regions + - clk: actions: Terminate clk_div_table with sentinel element + - clk: loongson1: Terminate clk_div_table with sentinel element + - clk: hisilicon: Terminate clk_div_table with sentinel element + - clk: clps711x: Terminate clk_div_table with sentinel element + - clk: Fix clk_hw_get_clk() when dev is NULL + - clk: tegra: tegra124-emc: Fix missing put_device() call in + emc_ensure_emc_driver + - mailbox: imx: fix crash in resume on i.mx8ulp + - NFS: remove unneeded check in decode_devicenotify_args() + - staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree + - staging: mt7621-dts: fix formatting + - staging: mt7621-dts: fix pinctrl properties for ethernet + - staging: mt7621-dts: fix GB-PC2 devicetree + - pinctrl: ocelot: fix confops resource index + - pinctrl: ocelot: fix duplicate debugfs entry + - pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init + - pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback + - pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get() + - pinctrl: mediatek: paris: Fix pingroup pin config state readback + - pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual + GPIOs + - pinctrl: ocelot: Fix interrupt parsing + - pinctrl: microchip-sgpio: lock RMW access + - pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe + - pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe + - clk: visconti: prevent array overflow in visconti_clk_register_gates() + - tty: hvc: fix return value of __setup handler + - kgdboc: fix return value of __setup handler + - serial: 8250: fix XOFF/XON sending when DMA is used + - virt: acrn: obtain pa from VMA with PFNMAP flag + - virt: acrn: fix a memory leak in acrn_dev_ioctl() + - kgdbts: fix return value of __setup handler + - firmware: google: Properly state IOMEM dependency + - driver core: dd: fix return value of __setup handler + - perf test arm64: Test unwinding using fame-pointer (fp) mode + - jfs: fix divide error in dbNextAG + - SUNRPC/call_alloc: async tasks mustn't block waiting for memory + - SUNRPC: improve 'swap' handling: scheduling and PF_MEMALLOC + - SUNRPC: Don't call connect() more than once on a TCP socket + - perf parse-events: Move slots only with topdown + - netfilter: egress: Report interface as outgoing + - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options + - SUNRPC don't resend a task on an offlined transport + - NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error + - kdb: Fix the putarea helper function + - perf stat: Fix forked applications enablement of counters + - net: stmmac: dwmac-qcom-ethqos: Enable RGMII functional clock on resume + - clk: qcom: gcc-msm8994: Fix gpll4 width + - vsock/virtio: initialize vdev->priv before using VQs + - vsock/virtio: read the negotiated features before using VQs + - vsock/virtio: enable VQs early on probe + - clk: Initialize orphan req_rate + - xen: fix is_xen_pmu() + - net: enetc: report software timestamping via SO_TIMESTAMPING + - net: hns3: fix bug when PF set the duplicate MAC address for VFs + - net: hns3: fix port base vlan add fail when concurrent with reset + - net: hns3: add vlan list lock to protect vlan list + - net: hns3: refine the process when PF set VF VLAN + - net: phy: broadcom: Fix brcm_fet_config_init() + - selftests: test_vxlan_under_vrf: Fix broken test case + - NFS: Don't loop forever in nfs_do_recoalesce() + - libperf tests: Fix typo in perf_evlist__open() failure error messages + - net: hns3: fix ethtool tx copybreak buf size indicating not aligned issue + - net: hns3: add max order judgement for tx spare buffer + - net: hns3: clean residual vf config after disable sriov + - net: hns3: add netdev reset check for hns3_set_tunable() + - net: hns3: add NULL pointer check for hns3_set/get_ringparam() + - net: hns3: fix phy can not link up when autoneg off and reset + - net: sparx5: depends on PTP_1588_CLOCK_OPTIONAL + - qlcnic: dcb: default to returning -EOPNOTSUPP + - net/x25: Fix null-ptr-deref caused by x25_disconnect + - net: sparx5: switchdev: fix possible NULL pointer dereference + - octeontx2-af: initialize action variable + - selftests: tls: skip cmsg_to_pipe tests with TLS=n + - net/sched: act_ct: fix ref leak when switching zones + - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head + - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator + - fs: fd tables have to be multiples of BITS_PER_LONG + - lib/test: use after free in register_test_dev_kmod() + - fs: fix fd table size alignment properly + - LSM: general protection fault in legacy_parse_param + - regulator: rpi-panel: Handle I2C errors/timing to the Atmel + - crypto: hisilicon/qm - cleanup warning in qm_vf_read_qos + - crypto: octeontx2 - CN10K CPT to RNM workaround + - gcc-plugins/stackleak: Exactly match strings instead of prefixes + - rcu: Kill rnp->ofl_seq and use only rcu_state.ofl_lock for exclusion + - pinctrl: npcm: Fix broken references to chip->parent_device + - rcu: Mark writes to the rcu_segcblist structure's ->flags field + - block: throttle split bio in case of iops limit + - memstick/mspro_block: fix handling of read-only devices + - block/bfq_wf2q: correct weight to ioprio + - crypto: xts - Add softdep on ecb + - crypto: hisilicon/sec - not need to enable sm4 extra mode at HW V3 + - block, bfq: don't move oom_bfqq + - selinux: use correct type for context length + - powercap/dtpm_cpu: Reset per_cpu variable in the release function + - arm64: module: remove (NOLOAD) from linker script + - selinux: allow FIOCLEX and FIONCLEX with policy capability + - loop: use sysfs_emit() in the sysfs xxx show() + - Fix incorrect type in assignment of ipv6 port for audit + - irqchip/qcom-pdc: Fix broken locking + - irqchip/nvic: Release nvic_base upon failure + - fs/binfmt_elf: Fix AT_PHDR for unusual ELF files + - hwrng: cavium - fix NULL but dereferenced coccicheck error + - bfq: fix use-after-free in bfq_dispatch_request + - ACPICA: Avoid walking the ACPI Namespace if it is not there + - ACPI / x86: Add skip i2c clients quirk for Nextbook Ares 8 + - ACPI / x86: Add skip i2c clients quirk for Lenovo Yoga Tablet 1050F/L + - lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3 + - Revert "Revert "block, bfq: honor already-setup queue merges"" + - ACPI/APEI: Limit printable size of BERT table data + - PM: core: keep irq flags in device_pm_check_callbacks() + - parisc: Fix non-access data TLB cache flush faults + - parisc: Fix handling off probe non-access faults + - nvme-tcp: lockdep: annotate in-kernel sockets + - spi: tegra20: Use of_device_get_match_data() + - spi: fsi: Implement a timeout for polling status + - atomics: Fix atomic64_{read_acquire,set_release} fallbacks + - locking/lockdep: Iterate lock_classes directly when reading lockdep files + - ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb + - ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit + - sched/tracing: Report TASK_RTLOCK_WAIT tasks as TASK_UNINTERRUPTIBLE + - ext4: don't BUG if someone dirty pages without asking ext4 first + - f2fs: fix to do sanity check on curseg->alloc_type + - NFSD: Fix nfsd_breaker_owns_lease() return values + - f2fs: don't get FREEZE lock in f2fs_evict_inode in frozen fs + - btrfs: harden identification of a stale device + - btrfs: make search_csum_tree return 0 if we get -EFBIG + - btrfs: handle csum lookup errors properly on reads + - btrfs: do not double complete bio on errors during compressed reads + - btrfs: do not clean up repair bio if submit fails + - f2fs: use spin_lock to avoid hang + - f2fs: compress: fix to print raw data size in error path of lz4 + decompression + - Adjust cifssb maximum read size + - ntfs: add sanity check on allocation size + - media: staging: media: zoran: move videodev alloc + - media: staging: media: zoran: calculate the right buffer number for + zoran_reap_stat_com + - media: staging: media: zoran: fix various V4L2 compliance errors + - media: atmel: atmel-isc-base: report frame sizes as full supported range + - media: ir_toy: free before error exiting + - ASoC: sh: rz-ssi: Make the data structures available before registering the + handlers + - ASoC: cs42l42: Report full jack status when plug is detected + - ASoC: SOF: Intel: match sdw version on link_slaves_found + - media: imx-jpeg: Prevent decoding NV12M jpegs into single-planar buffers + - ASoC: SOF: Intel: hda: Remove link assignment limitation + - media: iommu/mediatek-v1: Free the existed fwspec if the master dev already + has + - media: iommu/mediatek: Return ENODEV if the device is NULL + - media: iommu/mediatek: Add device_link between the consumer and the larb + devices + - video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow + - video: fbdev: w100fb: Reset global state + - video: fbdev: cirrusfb: check pixclock to avoid divide by zero + - video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit + - ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960 + - ARM: dts: bcm2837: Add the missing L1/L2 cache information + - ASoC: madera: Add dependencies on MFD + - media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator + off on some boards + - media: atomisp: fix dummy_ptr check to avoid duplicate active_bo + - ARM: ftrace: avoid redundant loads or clobbering IP + - ALSA: hda: Fix driver index handling at re-binding + - ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk + - arm64: defconfig: build imx-sdma as a module + - video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf() + - video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of + snprintf() + - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit + - ARM: dts: bcm2711: Add the missing L1/L2 cache information + - ASoC: soc-core: skip zero num_dai component in searching dai name + - ASoC: Intel: sof_es8336: add quirk for Huawei D15 2021 + - media: imx-jpeg: fix a bug of accessing array out of bounds + - media: cx88-mpeg: clear interrupt status register before streaming video + - ASoC: rt5682s: Fix the wrong jack type detected + - ARM: tegra: transformer: Drop reg-shift for Tegra HS UART + - uaccess: fix type mismatch warnings from access_ok() + - lib/test_lockup: fix kernel pointer check for separate address spaces + - ARM: tegra: tamonten: Fix I2C3 pad setting + - ARM: mmp: Fix failure to remove sram device + - ASoC: amd: vg: fix for pm resume callback sequence + - ASoC: amd: vangogh: fix uninitialized symbol warning in machine driver + - video: fbdev: sm712fb: Fix crash in smtcfb_write() + - media: i2c: ov5648: Fix lockdep error + - media: Revert "media: em28xx: add missing em28xx_close_extension" + - media: hdpvr: initialize dev->worker at hdpvr_register_videodev + - ASoC: SOF: debug: clarify operator precedence + - ASoC: Intel: sof_sdw: fix quirks for 2022 HP Spectre x360 13" + - ASoC: SOF: Intel: hda: retrieve DMIC number for I2S boards + - ALSA: intel-nhlt: add helper to detect SSP link mask + - ALSA: intel-dsp-config: add more ACPI HIDs for ES83x6 devices + - ASoC: Intel: soc-acpi: add more ACPI HIDs for ES83x6 devices + - ALSA: intel-dspconfig: add ES8336 support for CNL + - ASoC: Intel: Revert "ASoC: Intel: sof_es8336: add quirk for Huawei D15 2021" + - ASoC: Intel: sof_es8336: log all quirks + - tracing: Have TRACE_DEFINE_ENUM affect trace event types as well + - mmc: host: Return an error when ->enable_sdio_irq() ops is missing + - ASoC: mediatek: Fix error handling in mt8183_da7219_max98357_dev_probe + - media: atomisp: fix bad usage at error handling logic + - ALSA: hda/realtek: Add alc256-samsung-headphone fixup + - KVM: SVM: Allow AVIC support on system w/ physical APIC ID > 255 + - KVM: x86: Reinitialize context if host userspace toggles EFER.LME + - KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook + - KVM: x86/mmu: Move "invalid" check out of kvm_tdp_mmu_get_root() + - KVM: x86/mmu: Zap _all_ roots when unmapping gfn range in TDP MMU + - KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU + - KVM: x86: hyper-v: Drop redundant 'ex' parameter from kvm_hv_send_ipi() + - KVM: x86: hyper-v: Drop redundant 'ex' parameter from kvm_hv_flush_tlb() + - KVM: x86: hyper-v: Fix the maximum number of sparse banks for XMM fast TLB + flush hypercalls + - KVM: x86: hyper-v: HVCALL_SEND_IPI_EX is an XMM fast hypercall + - powerpc/kasan: Fix early region not updated correctly + - powerpc/tm: Fix more userspace r13 corruption + - powerpc/lib/sstep: Fix 'sthcx' instruction + - powerpc/lib/sstep: Fix build errors with newer binutils + - powerpc: Add set_memory_{p/np}() and remove set_memory_attr() + - powerpc: Fix build errors with newer binutils + - drm/dp: Fix off-by-one in register cache size + - drm/i915: Treat SAGV block time 0 as SAGV disabled + - drm/i915: Fix PSF GV point mask when SAGV is not possible + - drm/i915: Reject unsupported TMDS rates on ICL+ + - scsi: qla2xxx: Refactor asynchronous command initialization + - scsi: qla2xxx: Implement ref count for SRB + - scsi: qla2xxx: Fix stuck session in gpdb + - scsi: qla2xxx: Fix warning message due to adisc being flushed + - scsi: qla2xxx: Fix scheduling while atomic + - scsi: qla2xxx: Fix premature hw access after PCI error + - scsi: qla2xxx: Fix wrong FDMI data for 64G adapter + - scsi: qla2xxx: Fix warning for missing error code + - scsi: qla2xxx: Fix device reconnect in loop topology + - scsi: qla2xxx: edif: Fix clang warning + - scsi: qla2xxx: Fix T10 PI tag escape and IP guard options for 28XX adapters + - scsi: qla2xxx: Add devids and conditionals for 28xx + - scsi: qla2xxx: Check for firmware dump already collected + - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair() + - scsi: qla2xxx: Fix disk failure to rediscover + - scsi: qla2xxx: Fix incorrect reporting of task management failure + - scsi: qla2xxx: Fix hang due to session stuck + - scsi: qla2xxx: Fix laggy FC remote port session recovery + - scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests + - scsi: qla2xxx: Fix crash during module load unload test + - scsi: qla2xxx: Fix N2N inconsistent PLOGI + - scsi: qla2xxx: Fix stuck session of PRLI reject + - scsi: qla2xxx: Reduce false trigger to login + - scsi: qla2xxx: Use correct feature type field during RFF_ID processing + - platform: chrome: Split trace include file + - MIPS: crypto: Fix CRC32 code + - KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq + - KVM: x86: Avoid theoretical NULL pointer dereference in + kvm_irq_delivery_to_apic_fast() + - KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated + - KVM: x86/mmu: do compare-and-exchange of gPTE via the user address + - KVM: Prevent module exit until all VMs are freed + - KVM: x86: fix sending PV IPI + - KVM: SVM: fix panic on out-of-bounds guest IRQ + - KVM: avoid double put_page with gfn-to-pfn cache + - ubifs: rename_whiteout: Fix double free for whiteout_ui->data + - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback + - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout + - ubifs: Rename whiteout atomically + - ubifs: Fix 'ui->dirty' race between do_tmpfile() and writeback work + - ubifs: Rectify space amount budget for mkdir/tmpfile operations + - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned + - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock() + - ubifs: Fix to add refcount once page is set private + - ubifs: rename_whiteout: correct old_dir size computing + - nvme: allow duplicate NSIDs for private namespaces + - nvme: fix the read-only state for zoned namespaces with unsupposed features + - wireguard: queueing: use CFI-safe ptr_ring cleanup function + - wireguard: socket: free skb in send6 when ipv6 is disabled + - wireguard: socket: ignore v6 endpoints when ipv6 is disabled + - XArray: Fix xas_create_range() when multi-order entry present + - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path + - can: mcba_usb: properly check endpoint type + - can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value + - XArray: Include bitmap.h from xarray.h + - XArray: Update the LRU list in xas_split() + - modpost: restore the warning message for missing symbol versions + - rtc: gamecube: Fix refcount leak in gamecube_rtc_read_offset_from_sram + - rtc: check if __rtc_read_time was successful + - loop: fix ioctl calls using compat_loop_info + - gfs2: gfs2_setattr_size error path fix + - gfs2: Fix gfs2_file_buffered_write endless loop workaround + - gfs2: Make sure FITRIM minlen is rounded up to fs block size + - net: hns3: fix the concurrency between functions reading debugfs + - net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware + - rxrpc: fix some null-ptr-deref bugs in server_key.c + - rxrpc: Fix call timer start racing with call destruction + - mailbox: imx: fix wakeup failure from freeze mode + - crypto: x86/poly1305 - Fixup SLS + - crypto: arm/aes-neonbs-cbc - Select generic cbc and aes + - watch_queue: Free the page array when watch_queue is dismantled + - pinctrl: pinconf-generic: Print arguments for bias-pull-* + - watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function + - net: sparx5: uses, depends on BRIDGE or !BRIDGE + - pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR() + - pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() + - ASoC: rockchip: i2s_tdm: Fixup config for SND_SOC_DAIFMT_DSP_A/B + - ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs + - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl + - ARM: iop32x: offset IRQ numbers by 1 + - block: Fix the maximum minor value is blk_alloc_ext_minor() + - block: restore the old set_task_ioprio() behaviour wrt PF_EXITING + - Revert "virtio-pci: harden INTX interrupts" + - Revert "virtio_pci: harden MSI-X interrupts" + - virtio: use virtio_device_ready() in virtio_device_restore() + - io_uring: remove poll entry from list when canceling all + - io_uring: bump poll refs to full 31-bits + - io_uring: fix memory leak of uid in files registration + - riscv module: remove (NOLOAD) + - ACPI: CPPC: Avoid out of bounds access when parsing _CPC data + - vhost: handle error while adding split ranges to iotlb + - spi: Fix Tegra QSPI example + - platform/chrome: cros_ec_typec: Check for EC device + - platform/x86: asus-wmi: Fix regression when probing for fan curve control + - can: isotp: restore accidentally removed MSG_PEEK feature + - proc: bootconfig: Add null pointer check + - x86/fpu/xstate: Fix the ARCH_REQ_XCOMP_PERM implementation + - x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO + - drm/connector: Fix typo in documentation + - scsi: qla2xxx: Add qla2x00_async_done() for async routines + - staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet + - docs: fix 'make htmldocs' warning in SCTP.rst + - arm64: mm: Drop 'const' from conditional arm64_dma_phys_limit definition + - ASoC: soc-compress: Change the check for codec_dai + - KVM: x86: SVM: fix avic spec based definitions again + - ax25: fix UAF bug in ax25_send_control() + - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" + - tracing: Have type enum modifications copy the strings + - mips: Enable KCSAN - take 2 + - net: add skb_set_end_offset() helper + - mm/mmap: return 1 from stack_guard_gap __setup() handler + - ARM: 9187/1: JIVE: fix return value of __setup handler + - mm/memcontrol: return 1 from cgroup.memory __setup() handler + - mm/usercopy: return 1 from hardened_usercopy __setup() handler + - af_unix: Support POLLPRI for OOB. + - libbpf: Define BTF_KIND_* constants in btf.h to avoid compilation errors + - bpf: Adjust BPF stack helper functions to accommodate skip > 0 + - bpf: Fix comment for helper bpf_current_task_under_cgroup() + - nbd: fix possible overflow on 'first_minor' in nbd_dev_add() + - mmc: rtsx: Use pm_runtime_{get,put}() to handle runtime PM + - dt-bindings: mtd: nand-controller: Fix the reg property description + - dt-bindings: mtd: nand-controller: Fix a comment in the examples + - dt-bindings: spi: mxic: The interrupt property is not mandatory + - media: dt-binding: media: hynix,hi846: use $defs/port-base port description + - media: dt-bindings: media: hynix,hi846: add link-frequencies description + - dt-bindings: memory: mtk-smi: Rename clock to clocks + - dt-bindings: memory: mtk-smi: No need mediatek,larb-id for mt8167 + - dt-bindings: memory: mtk-smi: Correct minItems to 2 for the gals clocks + - dt-bindings: pinctrl: mt8195: fix bias-pull-{up,down} checks + - dt-bindings: pinctrl: pinctrl-microchip-sgpio: Fix example + - ubi: fastmap: Return error code if memory allocation fails in add_aeb() + - net: preserve skb_end_offset() in skb_unclone_keeptruesize() + - ASoC: SOF: Intel: Fix build error without SND_SOC_SOF_PCI_DEV + - ASoC: topology: Allow TLV control to be either read or write + - perf vendor events: Update metrics for SkyLake Server + - media: ov6650: Add try support to selection API operations + - media: ov6650: Fix crop rectangle affected by set format + - pinctrl: canonical rsel resistance selection property + - spi: mediatek: support tick_delay without enhance_timing + - ARM: dts: spear1340: Update serial node properties + - ARM: dts: spear13xx: Update SPI dma properties + - arm64: dts: ls1043a: Update i2c dma properties + - arm64: dts: ls1046a: Update i2c node dma properties + - um: Fix uml_mconsole stop/go + - docs: sysctl/kernel: add missing bit to panic_print + - xsk: Do not write NULL in SW ring at allocation failure + - ice: xsk: Fix indexing in ice_tx_xsk_pool() + - vdpa/mlx5: Avoid processing works if workqueue was destroyed + - openvswitch: Fixed nd target mask field in the flow dump. + - torture: Make torture.sh help message match reality + - n64cart: convert bi_disk to bi_bdev->bd_disk fix build + - Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()" + - mmc: rtsx: Let MMC core handle runtime PM + - mmc: rtsx: Fix build errors/warnings for unused variable + - coredump: Snapshot the vmas in do_coredump + - coredump: Remove the WARN_ON in dump_vma_snapshot + - coredump/elf: Pass coredump_params into fill_note_info + - coredump: Use the vma snapshot in fill_files_note + - Linux 5.17.2 + + * Jammy update: v5.17.1 upstream stable release (LP: #1968982) + - tpm: Fix error handling in async work + - Bluetooth: btusb: Add another Realtek 8761BU + - llc: fix netdevice reference leaks in llc_ui_bind() + - ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call + - ALSA: oss: Fix PCM OSS buffer allocation overflow + - ALSA: usb-audio: add mapping for new Corsair Virtuoso SE + - ALSA: hda/realtek: Add quirk for Clevo NP70PNJ + - ALSA: hda/realtek: Add quirk for Clevo NP50PNJ + - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671 + - ALSA: hda/realtek: Add quirk for ASUS GA402 + - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls + - ALSA: pcm: Fix races among concurrent read/write and buffer changes + - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls + - ALSA: pcm: Fix races among concurrent prealloc proc writes + - ALSA: pcm: Add stream lock during PCM reset ioctl operations + - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB + - ALSA: cmipci: Restore aux vol on suspend/resume + - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec + - drivers: net: xgene: Fix regression in CRC stripping + - netfilter: nf_tables: initialize registers in nft_do_chain() + - netfilter: nf_tables: validate registers coming from userspace. + - ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board + - ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3 + - ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU + - crypto: qat - disable registration of algorithms + - Bluetooth: btusb: Add one more Bluetooth part for the Realtek RTL8852AE + - Bluetooth: hci_sync: Add a new quirk to skip HCI_FLT_CLEAR_ALL + - Bluetooth: btusb: Use quirk to skip HCI_FLT_CLEAR_ALL on fake CSR + controllers + - Revert "ath: add support for special 0x0 regulatory domain" + - drm/virtio: Ensure that objs is not NULL in virtio_gpu_array_put_free() + - jbd2: fix use-after-free of transaction_t race + - rcu: Don't deboost before reporting expedited quiescent state + - uaccess: fix integer overflow on access_ok() + - mac80211: fix potential double free on mesh join + - tpm: fix reference counting for struct tpm_chip + - tpm: use try_get_ops() in tpm-space.c + - wcn36xx: Differentiate wcn3660 from wcn3620 + - m68k: fix access_ok for coldfire + - nds32: fix access_ok() checks in get/put_user + - drm/msm/gpu: Fix crash on devices without devfreq support (v2) + - llc: only change llc->dev when bind() succeeds + - Linux 5.17.1 + + * Miscellaneous Ubuntu changes + - SAUCE: shiftfs: always rely on init_user_ns + - [Config] update configs and annotations after stable updates + - SAUCE: sfc: The size of the RX recycle ring should be more flexible + - [Packaging] remove references to lowlatency flavor + + -- Andrea Righi Thu, 14 Apr 2022 08:45:40 +0200 + +linux-unstable (5.17.0-6.6) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-6.6 -proposed tracker (LP: #1965731) + + * dependency on crda obsolete according to Debian (LP: #1958918) + - [Packaging] switch dependency from crda to wireless-regdb + + * Miscellaneous Ubuntu changes + - [Config] disable CONFIG_SYSFB_SIMPLEFB on amd64 + + [ Upstream Kernel Changes ] + + * Rebase to v5.17 + + -- Andrea Righi Mon, 21 Mar 2022 09:46:03 +0100 + +linux-unstable (5.17.0-5.5) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-5.5 -proposed tracker (LP: #1964766) + + * Packaging resync (LP: #1786013) + - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5 + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to v5.17-rc8 + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc8 + + -- Andrea Righi Mon, 14 Mar 2022 13:15:50 +0100 + +linux-unstable (5.17.0-4.4) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-4.4 -proposed tracker (LP: #1963880) + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc7 + + -- Andrea Righi Mon, 07 Mar 2022 10:20:48 +0100 + +linux-unstable (5.17.0-3.3) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-3.3 -proposed tracker (LP: #1962450) + + * 5.15 stuck at boot on c4.large (LP: #1956780) + - Revert "PCI/MSI: Mask MSI-X vectors only on success" + + * [22.04 FEAT] KVM: Enable storage key checking for intercepted instruction + handled by userspace (LP: #1933179) + - s390/uaccess: Add copy_from/to_user_key functions + - KVM: s390: Honor storage keys when accessing guest memory + - KVM: s390: handle_tprot: Honor storage keys + - KVM: s390: Add optional storage key checking to MEMOP IOCTL + - KVM: s390: Add vm IOCTL for key checked guest absolute memory access + - KVM: s390: Rename existing vcpu memop functions + - KVM: s390: Update api documentation for memop ioctl + - KVM: s390: Clarify key argument for MEM_OP in api docs + - KVM: s390: Add missing vm MEM_OP size check + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc6 + + -- Andrea Righi Mon, 28 Feb 2022 09:42:32 +0100 + +linux-unstable (5.17.0-2.2) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-2.2 -proposed tracker (LP: #1962137) + + * CVE-2022-25636 + - netfilter: nf_tables_offload: incorrect flow offload action array size + + * Packaging resync (LP: #1786013) + - [Packaging] resync getabis + - [Packaging] update Ubuntu.md + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Jammy update: v5.15.22 upstream stable release (LP: #1960516) + - Revert "ASoC: mediatek: Check for error clk pointer" + - [Config] disable FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION + + * Jammy update: v5.15.20 upstream stable release (LP: #1960509) + - Revert "UBUNTU: SAUCE: Revert "e1000e: Additional PHY power saving in S0ix"" + + * Jammy update: v5.15.19 upstream stable release (LP: #1959879) + - drm/etnaviv: relax submit size limits + + * Jammy update: v5.15.17 upstream stable release (LP: #1959376) + - net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports + - rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC + - ASoC: mediatek: Check for error clk pointer + - regulator: da9121: Prevent current limit change when enabled + - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream + - drm/etnaviv: limit submit sizes + - Bluetooth: hci_sync: Fix not setting adv set duration + - net: axienet: Wait for PhyRstCmplt after core reset + + * rtw88_8821ce causes freeze (LP: #1927808) // Jammy update: v5.15.17 upstream + stable release (LP: #1959376) + - rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE + + * Jammy update: v5.15.15 upstream stable release (LP: #1958418) + - Bluetooth: btusb: Add support for Foxconn MT7922A + - Bluetooth: btbcm: disable read tx power for MacBook Air 8,1 and 8,2 + - platform/x86/intel: hid: add quirk to support Surface Go 3 + + * Support USB4 DP alt mode for AMD Yellow Carp graphics card (LP: #1953008) + - SAUCE: drm/amd/display: Fixup previous PSR policy commit + + * alsa/sdw: add sdw audio machine driver for several ADL machines + (LP: #1951563) + - ASoC: Intel: sof_sdw: Add support for SKU 0B11 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B13 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B29 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B12 product + + * Improve performance and idle power consumption (LP: #1941893) + - x86: ACPI: cstate: Optimize C3 entry on AMD CPUs + + * Fix spurious wakeup caused by Intel 7560 WWAN (LP: #1956443) + - net: wwan: iosm: Keep device at D0 for s2idle case + + * Jammy update: v5.15.13 upstream stable release (LP: #1956926) + - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write() + - net/mlx5: Fix tc max supported prio for nic mode + + * Miscellaneous Ubuntu changes + - [Packaging] Update dependency of pahole / dwarves + - [packaging] unhook lowlatency flavours from the build + - [Packaging] use default zstd compression + - [Packaging] do not use compression for image packages + - [Packaging] use xz compression for ddebs + - SAUCE: Makefile: Remove inclusion of lbm header files + - SAUCE: Makefile: Fix compiler warnings + - [Config] drop unused lowlatency configs + - [Config] update configs and annotations after rebase to v5.17-rc5 + + * Miscellaneous upstream changes + - Revert "rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE" + - MAINTAINERS: Add scripts/pahole-flags.sh to BPF section + - kbuild: Add CONFIG_PAHOLE_VERSION + - lib/Kconfig.debug: Use CONFIG_PAHOLE_VERSION + - lib/Kconfig.debug: Allow BTF + DWARF5 with pahole 1.21+ + - Revert "UBUNTU: [Packaging] temporarily disable zfs" + + -- Andrea Righi Thu, 24 Feb 2022 09:41:40 +0100 + +linux-unstable (5.17.0-1.1) jammy; urgency=medium + + * Rebase to 5.17-rc1 + + -- Andrea Righi Mon, 21 Feb 2022 08:22:18 +0100 + +linux-unstable (5.17.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Fri, 28 Jan 2022 17:14:13 +0100 + +linux (5.15.0-18.18) jammy; urgency=medium + + * jammy/linux: 5.15.0-18.18 -proposed tracker (LP: #1958638) + + * CVE-2021-4155 + - xfs: map unwritten blocks in XFS_IOC_{ALLOC, FREE}SP just like fallocate + + * CVE-2022-0185 + - SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE + + * [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel - + kernel part (LP: #1953334) + - KVM: s390: add debug statement for diag 318 CPNC data + + * OOB write on BPF_RINGBUF (LP: #1956585) + - SAUCE: bpf: prevent helper argument PTR_TO_ALLOC_MEM to have offset other + than 0 + + * Miscellaneous Ubuntu changes + - [Config] re-enable shiftfs + - [SAUCE] shiftfs: support kernel 5.15 + - [Config] update toolchain versions + + * Miscellaneous upstream changes + - vfs: fs_context: fix up param length parsing in legacy_parse_param + + -- Andrea Righi Fri, 21 Jan 2022 13:32:27 +0100 + +linux (5.15.0-17.17) jammy; urgency=medium + + * jammy/linux: 5.15.0-17.17 -proposed tracker (LP: #1957809) + + -- Andrea Righi Thu, 13 Jan 2022 17:11:21 +0100 + +linux (5.15.0-16.16) jammy; urgency=medium + + * jammy/linux: 5.15.0-16.16 -proposed tracker (LP: #1956820) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * 5.15 stuck at boot on c4.large (LP: #1956780) + - Revert "PCI/MSI: Mask MSI-X vectors only on success" + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable signed v4l2loopback" + + -- Andrea Righi Sat, 08 Jan 2022 10:57:58 +0100 + +linux (5.15.0-15.15) jammy; urgency=medium + + * jammy/linux: 5.15.0-15.15 -proposed tracker (LP: #1956314) + + * Packaging resync (LP: #1786013) + - update dkms package versions + - debian/dkms-versions -- update from kernel-versions (main/master) + + * rtw88_8821ce causes freeze (LP: #1927808) + - rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE + + * alsa/sdw: fix the audio sdw codec parsing logic in the acpi table + (LP: #1955686) + - ALSA: hda: intel-sdw-acpi: go through HDAS ACPI at max depth of 2 + - ALSA: hda: intel-sdw-acpi: harden detection of controller + + * Got black screen when resume from s2idle with AMD dGPU (LP: #1955790) + - SAUCE: drm/amdgpu: put SMU into proper state on runpm suspending for BOCO + capable platform + - SAUCE: drm/amdgpu: always reset the asic in suspend (v2) + + * Fix USB3 detection on HP dock (LP: #1955443) + - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0 + + * support signed v4l2loopback dkms build (LP: #1938531) + - enable v4l2loopback builds on amd64 kernels + - support v4l2loopback dkms build + + * Jammy update: v5.15.12 upstream stable release (LP: #1956305) + - arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd + - net: usb: lan78xx: add Allied Telesis AT29M2-AF + - ext4: prevent partial update of the extent blocks + - ext4: check for out-of-order index extents in ext4_valid_extent_entries() + - ext4: check for inconsistent extents between index and leaf block + - selftests: KVM: Fix non-x86 compiling + - HID: holtek: fix mouse probing + - HID: potential dereference of null pointer + - NFSD: Fix READDIR buffer overflow + - PM: sleep: Fix error handling in dpm_prepare() + - arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode + - bus: sunxi-rsb: Fix shutdown + - spi: change clk_disable_unprepare to clk_unprepare + - ucounts: Fix rlimit max values check + - drm/mediatek: hdmi: Perform NULL pointer check for mtk_hdmi_conf + - ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent() + - RDMA/hns: Fix RNR retransmission issue for HIP08 + - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts() + - RDMA/hns: Replace kfree() with kvfree() + - netfilter: nf_tables: fix use-after-free in nft_set_catchall_destroy() + - netfilter: fix regression in looped (broad|multi)cast's MAC handling + - ARM: dts: imx6qdl-wandboard: Fix Ethernet support + - ice: Use xdp_buf instead of rx_buf for xsk zero-copy + - ice: xsk: return xsk buffers back to pool when cleaning the ring + - net: marvell: prestera: fix incorrect return of port_find + - net: marvell: prestera: fix incorrect structure access + - qlcnic: potential dereference null pointer of rx_queue->page_ring + - tcp: move inet->rx_dst_ifindex to sk->sk_rx_dst_ifindex + - ipv6: move inet6_sk(sk)->rx_dst_cookie to sk->sk_rx_dst_cookie + - inet: fully convert sk->sk_rx_dst to RCU rules + - net: accept UFOv6 packages in virtio_net_hdr_to_skb + - net: skip virtio_net_hdr_set_proto if protocol already set + - igb: fix deadlock caused by taking RTNL in RPM resume path + - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module + - gpio: virtio: remove timeout + - bonding: fix ad_actor_system option setting to default + - fjes: Check for error irq + - drivers: net: smc911x: Check for error irq + - net: ks8851: Check for error irq + - sfc: Check null pointer of rx_queue->page_ring + - sfc: falcon: Check null pointer of rx_queue->page_ring + - asix: fix uninit-value in asix_mdio_read() + - asix: fix wrong return value in asix_check_host_enable() + - io_uring: zero iocb->ki_pos for stream file types + - veth: ensure skb entering GRO are not cloned. + - net: stmmac: ptp: fix potentially overflowing expression + - net: bridge: Use array_size() helper in copy_to_user() + - net: bridge: fix ioctl old_deviceless bridge argument + - r8152: fix the force speed doesn't work for RTL8156 + - net: stmmac: dwmac-visconti: Fix value of ETHER_CLK_SEL_FREQ_SEL_2P5M + - pinctrl: bcm2835: Change init order for gpio hogs + - hwmon: (lm90) Fix usage of CONFIG2 register in detect function + - hwmon: (lm90) Prevent integer overflow/underflow in hysteresis calculations + - hwmon: (lm90) Introduce flag indicating extended temperature support + - hwmon: (lm90) Add basic support for TI TMP461 + - hwmon: (lm90) Drop critical attribute support for MAX6654 + - ARM: 9160/1: NOMMU: Reload __secondary_data after PROCINFO_INITFUNC + - uapi: Fix undefined __always_inline on non-glibc systems + - compiler.h: Fix annotation macro misplacement with Clang + - platform/x86/intel: Remove X86_PLATFORM_DRIVERS_INTEL + - kernel/crash_core: suppress unknown crashkernel parameter warning + - Revert "x86/boot: Pull up cmdline preparation and early param parsing" + - x86/boot: Move EFI range reservation after cmdline parsing + - ALSA: jack: Check the return value of kstrdup() + - ALSA: drivers: opl3: Fix incorrect use of vp->state + - ALSA: rawmidi - fix the uninitalized user_pversion + - ALSA: hda/hdmi: Disable silent stream on GLK + - ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6 + - ALSA: hda/realtek: Add new alc285-hp-amp-init model + - ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook + - ALSA: hda/realtek: Fix quirk for Clevo NJ51CU + - ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s + - ASoC: tegra: Add DAPM switches for headphones and mic jack + - ASoC: tegra: Restore headphones jack name on Nyan Big + - Input: atmel_mxt_ts - fix double free in mxt_read_info_block + - ipmi: bail out if init_srcu_struct fails + - ipmi: ssif: initialize ssif_info->client early + - ipmi: fix initialization when workqueue allocation fails + - parisc: Correct completer in lws start + - parisc: Fix mask used to select futex spinlock + - tee: handle lookup of shm with reference count 0 + - x86/pkey: Fix undefined behaviour with PKRU_WD_BIT + - platform/x86: amd-pmc: only use callbacks for suspend + - platform/x86: intel_pmc_core: fix memleak on registration failure + - KVM: x86: Always set kvm_run->if_flag + - KVM: x86/mmu: Don't advance iterator after restart due to yielding + - KVM: nVMX: Synthesize TRIPLE_FAULT for L2 if emulation is required + - KVM: VMX: Always clear vmx->fail on emulation_required + - KVM: VMX: Wake vCPU when delivering posted IRQ even if vCPU == this vCPU + - pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines + - gpio: dln2: Fix interrupts when replugging the device + - mmc: sdhci-tegra: Fix switch to HS400ES mode + - mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands + - mmc: core: Disable card detect during shutdown + - mmc: mmci: stm32: clear DLYB_CR after sending tuning command + - ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling + - ksmbd: fix error code in ndr_read_int32() + - ksmbd: fix uninitialized symbol 'pntsd_size' + - ksmbd: disable SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1 + - mac80211: fix locking in ieee80211_start_ap error path + - mm: mempolicy: fix THP allocations escaping mempolicy restrictions + - mm, hwpoison: fix condition in free hugetlb page path + - mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() + - mm/damon/dbgfs: protect targets destructions with kdamond_lock + - tee: optee: Fix incorrect page free bug + - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr() + - netfs: fix parameter of cleanup() + - KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state + - arm64: dts: lx2160a: fix scl-gpios property name + - kfence: fix memory leak when cat kfence objects + - Input: iqs626a - prohibit inlining of channel parsing functions + - Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312 + - Input: goodix - add id->model mapping for the "9111" model + - ASoC: tas2770: Fix setting of high sample rates + - ASoC: SOF: Intel: pci-tgl: add new ADL-P variant + - ASoC: SOF: Intel: pci-tgl: add ADL-N support + - ASoC: rt5682: fix the wrong jack type detected + - pinctrl: mediatek: fix global-out-of-bounds issue + - hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681 + - hwmon: (lm90) Do not report 'busy' status bit as alarm + - r8152: sync ocp base + - ax25: NPD bug when detaching AX25 device + - hamradio: defer ax25 kfree after unregister_netdev + - hamradio: improve the incomplete fix to avoid NPD + - tun: avoid double free in tun_free_netdev + - phonet/pep: refuse to enable an unbound pipe + - Linux 5.15.12 + + * Thinkpad E14 Gen2: Kernel panic with trackpad and trackpoint enabled + (LP: #1945590) // Jammy update: v5.15.12 upstream stable release + (LP: #1956305) + - Input: elantech - fix stack out of bound access in + elantech_change_report_id() + + * Jammy update: v5.15.11 upstream stable release (LP: #1956302) + - reset: tegra-bpmp: Revert Handle errors in BPMP response + - KVM: VMX: clear vmx_x86_ops.sync_pir_to_irr if APICv is disabled + - KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE + - KVM: downgrade two BUG_ONs to WARN_ON_ONCE + - x86/kvm: remove unused ack_notifier callbacks + - KVM: X86: Fix tlb flush for tdp in kvm_invalidate_pcid() + - mac80211: fix rate control for retransmitted frames + - mac80211: fix regression in SSN handling of addba tx + - mac80211: mark TX-during-stop for TX in in_reconfig + - mac80211: send ADDBA requests using the tid/queue of the aggregation session + - mac80211: validate extended element ID is present + - firmware: arm_scpi: Fix string overflow in SCPI genpd driver + - bpf: Fix kernel address leakage in atomic fetch + - bpf, selftests: Add test case for atomic fetch on spilled pointer + - bpf: Fix signed bounds propagation after mov32 + - bpf: Make 32->64 bounds propagation slightly more robust + - bpf, selftests: Add test case trying to taint map value pointer + - bpf: Fix kernel address leakage in atomic cmpxchg's r0 aux reg + - bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer + - vduse: fix memory corruption in vduse_dev_ioctl() + - vduse: check that offset is within bounds in get_config() + - virtio_ring: Fix querying of maximum DMA mapping size for virtio device + - vdpa: check that offsets are within bounds + - s390/entry: fix duplicate tracking of irq nesting level + - recordmcount.pl: look for jgnop instruction as well as bcrl on s390 + - arm64: dts: ten64: remove redundant interrupt declaration for gpio-keys + - ceph: fix up non-directory creation in SGID directories + - dm btree remove: fix use after free in rebalance_children() + - audit: improve robustness of the audit queue handling + - btrfs: convert latest_bdev type to btrfs_device and rename + - btrfs: use latest_dev in btrfs_show_devname + - btrfs: update latest_dev when we create a sprout device + - btrfs: remove stale comment about the btrfs_show_devname + - scsi: ufs: core: Retry START_STOP on UNIT_ATTENTION + - arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas- + edge + - arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply + - arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply + - arm64: dts: rockchip: fix audio-supply for Rock Pi 4 + - arm64: dts: rockchip: fix poweroff on helios64 + - dmaengine: idxd: add halt interrupt support + - dmaengine: idxd: fix calling wq quiesce inside spinlock + - mac80211: track only QoS data frames for admission control + - tee: amdtee: fix an IS_ERR() vs NULL bug + - ceph: fix duplicate increment of opened_inodes metric + - ceph: initialize pathlen variable in reconnect_caps_cb + - ARM: socfpga: dts: fix qspi node compatible + - arm64: dts: imx8mq: remove interconnect property from lcdif + - clk: Don't parent clks until the parent is fully registered + - soc: imx: Register SoC device only on i.MX boards + - iwlwifi: mvm: don't crash on invalid rate w/o STA + - virtio: always enter drivers/virtio/ + - virtio/vsock: fix the transport to work with VMADDR_CID_ANY + - vdpa: Consider device id larger than 31 + - Revert "drm/fb-helper: improve DRM fbdev emulation device names" + - selftests: net: Correct ping6 expected rc from 2 to 1 + - s390/kexec_file: fix error handling when applying relocations + - sch_cake: do not call cake_destroy() from cake_init() + - inet_diag: fix kernel-infoleak for UDP sockets + - netdevsim: don't overwrite read only ethtool parms + - selftests: icmp_redirect: pass xfail=0 to log_test() + - net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg + - net: hns3: fix race condition in debugfs + - selftests: Add duplicate config only for MD5 VRF tests + - selftests: Fix raw socket bind tests with VRF + - selftests: Fix IPv6 address bind tests + - dmaengine: idxd: fix missed completion on abort path + - dmaengine: st_fdma: fix MODULE_ALIAS + - drm: simpledrm: fix wrong unit with pixel clock + - net/sched: sch_ets: don't remove idle classes from the round-robin list + - selftests/net: toeplitz: fix udp option + - net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down() + - selftest/net/forwarding: declare NETIFS p9 p10 + - mptcp: never allow the PM to close a listener subflow + - drm/ast: potential dereference of null pointer + - drm/i915/display: Fix an unsigned subtraction which can never be negative. + - mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock + - cfg80211: Acquire wiphy mutex on regulatory work + - mac80211: fix lookup when adding AddBA extension element + - net: stmmac: fix tc flower deletion for VLAN priority Rx steering + - flow_offload: return EOPNOTSUPP for the unsupported mpls action type + - rds: memory leak in __rds_conn_create() + - ice: Use div64_u64 instead of div_u64 in adjfine + - ice: Don't put stale timestamps in the skb + - drm/amd/display: Set exit_optimized_pwr_state for DCN31 + - drm/amd/pm: fix a potential gpu_metrics_table memory leak + - mptcp: remove tcp ulp setsockopt support + - mptcp: clear 'kern' flag from fallback sockets + - mptcp: fix deadlock in __mptcp_push_pending() + - soc/tegra: fuse: Fix bitwise vs. logical OR warning + - igb: Fix removal of unicast MAC filters of VFs + - igbvf: fix double free in `igbvf_probe` + - igc: Fix typo in i225 LTR functions + - ixgbe: Document how to enable NBASE-T support + - ixgbe: set X550 MDIO speed before talking to PHY + - netdevsim: Zero-initialize memory for new map's value in function + nsim_bpf_map_alloc + - net/packet: rx_owner_map depends on pg_vec + - net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup + - sfc_ef100: potential dereference of null pointer + - dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED + - net: Fix double 0x prefix print in SKB dump + - net/smc: Prevent smc_release() from long blocking + - net: systemport: Add global locking for descriptor lifecycle + - sit: do not call ipip6_dev_free() from sit_init_net() + - afs: Fix mmap + - arm64: kexec: Fix missing error code 'ret' warning in load_other_segments() + - bpf: Fix extable fixup offset. + - bpf, selftests: Fix racing issue in btf_skc_cls_ingress test + - powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n + - USB: gadget: bRequestType is a bitfield, not a enum + - Revert "usb: early: convert to readl_poll_timeout_atomic()" + - KVM: x86: Drop guest CPUID check for host initiated writes to + MSR_IA32_PERF_CAPABILITIES + - tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous + - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04) + - usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe + - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error + - PCI/MSI: Mask MSI-X vectors only on success + - usb: xhci-mtk: fix list_del warning when enable list debug + - usb: xhci: Extend support for runtime power management for AMD's Yellow + carp. + - usb: cdnsp: Fix incorrect status for control request + - usb: cdnsp: Fix incorrect calling of cdnsp_died function + - usb: cdnsp: Fix issue in cdnsp_log_ep trace event + - usb: cdnsp: Fix lack of spin_lock_irqsave/spin_lock_restore + - usb: typec: tcpm: fix tcpm unregister port but leave a pending timer + - usb: gadget: u_ether: fix race in setting MAC address in setup phase + - USB: serial: cp210x: fix CP2105 GPIO registration + - USB: serial: option: add Telit FN990 compositions + - selinux: fix sleeping function called from invalid context + - btrfs: fix memory leak in __add_inode_ref() + - btrfs: fix double free of anon_dev after failure to create subvolume + - btrfs: check WRITE_ERR when trying to read an extent buffer + - btrfs: fix missing blkdev_put() call in btrfs_scan_one_device() + - zonefs: add MODULE_ALIAS_FS + - iocost: Fix divide-by-zero on donation from low hweight cgroup + - serial: 8250_fintek: Fix garbled text for console + - timekeeping: Really make sure wall_to_monotonic isn't positive + - cifs: sanitize multiple delimiters in prepath + - locking/rtmutex: Fix incorrect condition in rtmutex_spin_on_owner() + - riscv: dts: unleashed: Add gpio card detect to mmc-spi-slot + - riscv: dts: unmatched: Add gpio card detect to mmc-spi-slot + - perf inject: Fix segfault due to close without open + - perf inject: Fix segfault due to perf_data__fd() without open + - libata: if T_LENGTH is zero, dma direction should be DMA_NONE + - powerpc/module_64: Fix livepatching for RO modules + - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE + - drm/amdgpu: don't override default ECO_BITs setting + - drm/amd/pm: fix reading SMU FW version from amdgpu_firmware_info on YC + - Revert "can: m_can: remove support for custom bit timing" + - can: m_can: make custom bittiming fields const + - can: m_can: pci: use custom bit timings for Elkhart Lake + - ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name + - xsk: Do not sleep in poll() when need_wakeup set + - mptcp: add missing documented NL params + - bpf, x64: Factor out emission of REX byte in more cases + - bpf: Fix extable address check. + - USB: core: Make do_proc_control() and do_proc_bulk() killable + - media: mxl111sf: change mutex_init() location + - fuse: annotate lock in fuse_reverse_inval_entry() + - ovl: fix warning in ovl_create_real() + - scsi: scsi_debug: Don't call kcalloc() if size arg is zero + - scsi: scsi_debug: Fix type in min_t to avoid stack OOB + - scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select() + - io-wq: remove spurious bit clear on task_work addition + - io-wq: check for wq exit after adding new worker task_work + - rcu: Mark accesses to rcu_state.n_force_qs + - io-wq: drop wqe lock before creating new worker + - bus: ti-sysc: Fix variable set but not used warning for reinit_modules + - selftests/damon: test debugfs file reads/writes with huge count + - Revert "xsk: Do not sleep in poll() when need_wakeup set" + - xen/blkfront: harden blkfront against event channel storms + - xen/netfront: harden netfront against event channel storms + - xen/console: harden hvc_xen against event channel storms + - xen/netback: fix rx queue stall detection + - xen/netback: don't queue unlimited number of packages + - Linux 5.15.11 + + * Jammy update: v5.15.10 upstream stable release (LP: #1956301) + - nfc: fix segfault in nfc_genl_dump_devices_done + - hwmon: (corsair-psu) fix plain integer used as NULL pointer + - RDMA: Fix use-after-free in rxe_queue_cleanup + - RDMA/mlx5: Fix releasing unallocated memory in dereg MR flow + - mtd: rawnand: Fix nand_erase_op delay + - mtd: rawnand: Fix nand_choose_best_timings() on unsupported interface + - inet: use #ifdef CONFIG_SOCK_RX_QUEUE_MAPPING consistently + - dt-bindings: media: nxp,imx7-mipi-csi2: Drop bad if/then schema + - clk: qcom: sm6125-gcc: Swap ops of ice and apps on sdcc1 + - perf bpf_skel: Do not use typedef to avoid error on old clang + - netfs: Fix lockdep warning from taking sb_writers whilst holding mmap_lock + - RDMA/irdma: Fix a user-after-free in add_pble_prm + - RDMA/irdma: Fix a potential memory allocation issue in + 'irdma_prm_add_pble_mem()' + - RDMA/irdma: Report correct WC errors + - RDMA/irdma: Don't arm the CQ more than two times if no CE for this CQ + - ice: fix FDIR init missing when reset VF + - vmxnet3: fix minimum vectors alloc issue + - i2c: virtio: fix completion handling + - drm/msm: Fix null ptr access msm_ioctl_gem_submit() + - drm/msm/a6xx: Fix uinitialized use of gpu_scid + - drm/msm/dsi: set default num_data_lanes + - drm/msm/dp: Avoid unpowered AUX xfers that caused crashes + - KVM: arm64: Save PSTATE early on exit + - s390/test_unwind: use raw opcode instead of invalid instruction + - Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP" + - net/mlx4_en: Update reported link modes for 1/10G + - loop: Use pr_warn_once() for loop_control_remove() warning + - ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid + - ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P + - parisc/agp: Annotate parisc agp init functions with __init + - i2c: rk3x: Handle a spurious start completion interrupt flag + - net: netlink: af_netlink: Prevent empty skb by adding a check on len. + - drm/amdgpu: cancel the correct hrtimer on exit + - drm/amdgpu: check atomic flag to differeniate with legacy path + - drm/amd/display: Fix for the no Audio bug with Tiled Displays + - drm/amdkfd: fix double free mem structure + - drm/amd/display: add connector type check for CRC source set + - drm/amdkfd: process_info lock not needed for svm + - tracing: Fix a kmemleak false positive in tracing_map + - staging: most: dim2: use device release method + - fuse: make sure reclaim doesn't write the inode + - perf inject: Fix itrace space allowed for new attributes + - Linux 5.15.10 + + * Jammy update: v5.15.9 upstream stable release (LP: #1955161) + - netfilter: selftest: conntrack_vrf.sh: fix file permission + - Linux 5.15.9 + + * [SRU][I/J/OEM-5.13/OEM-5.14] Fix pci port lost when hotplug dock + (LP: #1954646) + - PCI: Re-enable Downstream Port LTR after reset or hotplug + + * Add support for NVIDIA EC backlight (LP: #1953286) + - platform/x86: Add driver for ACPI WMAA EC-based backlight control + - platform/x86: Remove "WMAA" from identifier names in wmaa-backlight-wmi.c + - platform/x86: Rename wmaa-backlight-wmi to nvidia-wmi-ec-backlight + - [Config] NVIDIA_WMI_EC_BACKLIGHT=m + + * Improve USB Type-C support (LP: #1950974) + - usb: typec: ucsi: Always cancel the command if PPM reports BUSY condition + - usb: typec: ucsi: Don't stop alt mode registration on busy condition + - usb: typec: ucsi: Add polling mechanism for partner tasks like alt mode + checking + - usb: typec: ucsi: acpi: Reduce the command completion timeout + - usb: typec: ucsi: Check the partner alt modes always if there is PD contract + - usb: typec: ucsi: Read the PDOs in separate work + - usb: typec: ucsi: Better fix for missing unplug events issue + + * Fix power button wakeup with shared IRQs on AMD platforms (LP: #1953540) + - pinctrl: amd: Fix wakeups when IRQ is shared with SCI + + * AMD: Suspend not working when some cores are disabled through cpufreq + (LP: #1954930) + - ACPI: processor idle: Allow playing dead in C3 state + + * Jammy update: v5.15.8 upstream stable release (LP: #1954931) + - Revert "UBUNTU: SAUCE: selftests: fib_tests: assign address to dummy1 for + rp_filter tests" + - usb: gadget: uvc: fix multiple opens + - HID: quirks: Add quirk for the Microsoft Surface 3 type-cover + - HID: google: add eel USB id + - HID: intel-ish-hid: ipc: only enable IRQ wakeup when requested + - HID: add hid_is_usb() function to make it simpler for USB detection + - HID: add USB_HID dependancy to hid-prodikeys + - HID: add USB_HID dependancy to hid-chicony + - HID: add USB_HID dependancy on some USB HID drivers + - HID: bigbenff: prevent null pointer dereference + - HID: wacom: fix problems when device is not a valid USB device + - HID: check for valid USB device for many HID drivers + - mtd: dataflash: Add device-tree SPI IDs + - mmc: spi: Add device-tree SPI IDs + - HID: sony: fix error path in probe + - HID: Ignore battery for Elan touchscreen on Asus UX550VE + - platform/x86/intel: hid: add quirk to support Surface Go 3 + - nft_set_pipapo: Fix bucket load in AVX2 lookup routine for six 8-bit groups + - IB/hfi1: Insure use of smp_processor_id() is preempt disabled + - IB/hfi1: Fix early init panic + - IB/hfi1: Fix leak of rcvhdrtail_dummy_kvaddr + - can: kvaser_usb: get CAN clock frequency from device + - can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct + stats->{rx,tx}_errors counter + - can: sja1000: fix use after free in ems_pcmcia_add_card() + - can: pch_can: pch_can_rx_normal: fix use after free + - can: m_can: m_can_read_fifo: fix memory leak in error branch + - can: m_can: pci: fix incorrect reference clock rate + - can: m_can: pci: fix iomap_read_fifo() and iomap_write_fifo() + - can: m_can: Disable and ignore ELO interrupt + - net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's" + - net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports + - x86/sme: Explicitly map new EFI memmap table as encrypted + - platform/x86: amd-pmc: Fix s2idle failures on certain AMD laptops + - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done + - selftests: netfilter: add a vrf+conntrack testcase + - vrf: don't run conntrack on vrf with !dflt qdisc + - bpf, x86: Fix "no previous prototype" warning + - bpf, sockmap: Attach map progs to psock early for feature probes + - bpf: Make sure bpf_disable_instrumentation() is safe vs preemption. + - bpf: Fix the off-by-two error in range markings + - ice: ignore dropped packets during init + - ethtool: do not perform operations on net devices being unregistered + - bonding: make tx_rebalance_counter an atomic + - nfp: Fix memory leak in nfp_cpp_area_cache_add() + - udp: using datalen to cap max gso segments + - netfilter: nft_exthdr: break evaluation if setting TCP option fails + - netfilter: conntrack: annotate data-races around ct->timeout + - iavf: restore MSI state on reset + - iavf: Fix reporting when setting descriptor count + - IB/hfi1: Correct guard on eager buffer deallocation + - devlink: fix netns refcount leak in devlink_nl_cmd_reload() + - net: bcm4908: Handle dma_set_coherent_mask error codes + - net: dsa: mv88e6xxx: error handling for serdes_power functions + - net: dsa: felix: Fix memory leak in felix_setup_mmio_filtering + - net/sched: fq_pie: prevent dismantle issue + - net: mvpp2: fix XDP rx queues registering + - KVM: x86: Don't WARN if userspace mucks with RCX during string I/O exit + - KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req + - KVM: x86: Wait for IPIs to be delivered when handling Hyper-V TLB flush + hypercall + - timers: implement usleep_idle_range() + - mm/damon/core: fix fake load reports due to uninterruptible sleeps + - mm/slub: fix endianness bug for alloc/free_traces attributes + - mm: bdi: initialize bdi_min_ratio when bdi is unregistered + - ALSA: ctl: Fix copy of updated id with element read/write + - ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform + - ALSA: hda/realtek: Fix quirk for TongFang PHxTxX1 + - ALSA: pcm: oss: Fix negative period/buffer sizes + - ALSA: pcm: oss: Limit the period size to 16MB + - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*() + - cifs: Fix crash on unload of cifs_arc4.ko + - scsi: qla2xxx: Format log strings only if needed + - btrfs: clear extent buffer uptodate when we fail to write it + - btrfs: fix re-dirty process of tree-log nodes + - btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling + - btrfs: free exchange changeset on failures + - perf intel-pt: Fix some PGE (packet generation enable/control flow packets) + usage + - perf intel-pt: Fix sync state when a PSB (synchronization) packet is found + - perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type + - perf intel-pt: Fix state setting when receiving overflow (OVF) packet + - perf intel-pt: Fix next 'err' value, walking trace + - perf intel-pt: Fix missing 'instruction' events with 'q' option + - perf intel-pt: Fix error timestamp setting on the decoder error path + - md: fix update super 1.0 on rdev size change + - nfsd: fix use-after-free due to delegation race + - nfsd: Fix nsfd startup race (again) + - tracefs: Have new files inherit the ownership of their parent + - selftests: KVM: avoid failures due to reserved HyperTransport region + - hwmon: (pwm-fan) Ensure the fan going on in .probe() + - mmc: renesas_sdhi: initialize variable properly when tuning + - clk: qcom: regmap-mux: fix parent clock lookup + - thermal: int340x: Fix VCoRefLow MMIO bit offset for TGL + - drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence. + - libata: add horkage for ASMedia 1092 + - io_uring: ensure task_work gets run as part of cancelations + - wait: add wake_up_pollfree() + - binder: use wake_up_pollfree() + - signalfd: use wake_up_pollfree() + - aio: keep poll requests on waitqueue until completed + - aio: fix use-after-free due to missing POLLFREE handling + - tracefs: Set all files to the same group ownership as the mount option + - i2c: mpc: Use atomic read and fix break condition + - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2) + - scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc() + - scsi: scsi_debug: Fix buffer size of REPORT ZONES command + - ALSA: usb-audio: Reorder snd_djm_devices[] entries + - qede: validate non LSO skb length + - PM: runtime: Fix pm_runtime_active() kerneldoc comment + - ASoC: rt5682: Fix crash due to out of scope stack vars + - ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer + - ASoC: codecs: wsa881x: fix return values from kcontrol put + - ASoC: codecs: wcd934x: handle channel mappping list correctly + - ASoC: codecs: wcd934x: return correct value from mixer put + - RDMA/hns: Do not halt commands during reset until later + - RDMA/hns: Do not destroy QP resources in the hw resetting phase + - hwmon: (dell-smm) Fix warning on /proc/i8k creation error + - clk: imx: use module_platform_driver + - clk: qcom: clk-alpha-pll: Don't reconfigure running Trion + - i40e: Fix failed opcode appearing if handling messages from VF + - i40e: Fix pre-set max number of queues for VF + - mtd: rawnand: fsmc: Take instruction delay into account + - mtd: rawnand: fsmc: Fix timing computation + - bpf, sockmap: Re-evaluate proto ops when psock is removed from sockmap + - i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc + - Revert "PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge" + - drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset + - perf tools: Fix SMT detection fast read path + - Documentation/locking/locktypes: Update migrate_disable() bits. + - dt-bindings: net: Reintroduce PHY no lane swap binding + - tools build: Remove needless libpython-version feature check that breaks + test-all fast path + - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero + - net: altera: set a couple error code in probe() + - net: fec: only clear interrupt of handling queue in fec_enet_rx_queue() + - net, neigh: clear whole pneigh_entry at alloc time + - net/qla3xxx: fix an error code in ql_adapter_up() + - selftests/fib_tests: Rework fib_rp_filter_test() + - USB: gadget: detect too-big endpoint 0 requests + - USB: gadget: zero allocate endpoint 0 buffers + - Revert "usb: dwc3: dwc3-qcom: Enable tx-fifo-resize property by default" + - usb: core: config: fix validation of wMaxPacketValue entries + - usb: core: config: using bit mask instead of individual bits + - xhci: avoid race between disable slot command and host runtime suspend + - iio: gyro: adxrs290: fix data signedness + - iio: trigger: Fix reference counting + - iio: trigger: stm32-timer: fix MODULE_ALIAS + - iio: stk3310: Don't return error code in interrupt handler + - iio: mma8452: Fix trigger reference couting + - iio: ltr501: Don't return error code in trigger handler + - iio: kxsd9: Don't return error code in trigger handler + - iio: itg3200: Call iio_trigger_notify_done() on error + - iio: dln2-adc: Fix lockdep complaint + - iio: dln2: Check return value of devm_iio_trigger_register() + - iio: at91-sama5d2: Fix incorrect sign extension + - iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda + - iio: adc: axp20x_adc: fix charging current reporting on AXP22x + - iio: ad7768-1: Call iio_trigger_notify_done() on error + - iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove + - nvmem: eeprom: at25: fix FRAM byte_len + - bus: mhi: pci_generic: Fix device recovery failed issue + - bus: mhi: core: Add support for forced PM resume + - csky: fix typo of fpu config macro + - irqchip/aspeed-scu: Replace update_bits with write_bits. + - irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc() + - irqchip/armada-370-xp: Fix support for Multi-MSI interrupts + - aio: Fix incorrect usage of eventfd_signal_allowed() + - irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL + - irqchip: nvic: Fix offset for Interrupt Priority Offsets + - misc: fastrpc: fix improper packet size calculation + - clocksource/drivers/dw_apb_timer_of: Fix probe failure + - bpf: Add selftests to cover packet access corner cases + - Linux 5.15.8 + + * Can't read/write SD card after running CPU offline test in 5.11.0 and 5.13.0 + (LP: #1951784) // Jammy update: v5.15.8 upstream stable release + (LP: #1954931) + - misc: rtsx: Avoid mangling IRQ during runtime PM + + * Enable Landlock by default (LP: #1953192) + - [Config] Enable Landlock by default + + * Add s0i3 RTC wake up for AMD systems (LP: #1950013) + - platform/x86: amd-pmc: Export Idlemask values based on the APU + - platform/x86: amd-pmc: adjust arguments for `amd_pmc_send_cmd` + - platform/x86: amd-pmc: Add special handling for timer based S0i3 wakeup + + * Fix runtime power management on USB controller with XHCI_RESET_ON_RESUME + flag (LP: #1954369) + - SAUCE: xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime + suspending + + * Fix System hangs on black screen when reboot (LP: #1949321) + - drm/i915/hdmi: convert intel_hdmi_to_dev to intel_hdmi_to_i915 + - drm/i915: Don't request GMBUS to generate irqs when called while irqs are + off + - drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() + + * require CAP_NET_ADMIN to attach N_HCI ldisc (LP: #1949516) + - Bluetooth: hci_ldisc: require CAP_NET_ADMIN to attach N_HCI ldisc + + * mt7921e: Failed to start WM firmware (LP: #1954300) + - SAUCE: Bluetooth: btusb: Handle download_firmware failure cases + - SAUCE: Bluetooth: btusb: Return error code when getting patch status failed + + * Miscellaneous Ubuntu changes + - [Packaging] Add list of built-in modules to the ABI + - [Packaging] abi-check: Process modules.builtin + - SAUCE: allow to use __wake_up_pollfree() from GPL modules + - [Packaging] enforce xz compression for debs + - [Config] update config after v5.15.12 + - [Packaging] temporarily disable signed v4l2loopback + + -- Andrea Righi Tue, 04 Jan 2022 11:22:10 +0100 + +linux (5.15.0-14.14) jammy; urgency=medium + + * jammy/linux: 5.15.0-14.14 -proposed tracker (LP: #1954627) + + * Jammy update: v5.15.7 upstream stable release (LP: #1953731) + - ALSA: usb-audio: Restrict rates for the shared clocks + - ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback + - ALSA: usb-audio: Disable low-latency playback for free-wheel mode + - ALSA: usb-audio: Disable low-latency mode for implicit feedback sync + - ALSA: usb-audio: Check available frames for the next packet size + - ALSA: usb-audio: Add spinlock to stop_urbs() + - ALSA: usb-audio: Improved lowlatency playback support + - ALSA: usb-audio: Avoid killing in-flight URBs during draining + - ALSA: usb-audio: Fix packet size calculation regression + - ALSA: usb-audio: Less restriction for low-latency playback mode + - ALSA: usb-audio: Switch back to non-latency mode at a later point + - ALSA: usb-audio: Don't start stream for capture at prepare + - gfs2: release iopen glock early in evict + - gfs2: Fix length of holes reported at end-of-file + - powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for + persistent memory" + - powerpc/pseries/ddw: Do not try direct mapping with persistent memory and + one window + - drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY + - mac80211: do not access the IV when it was stripped + - mac80211: fix throughput LED trigger + - x86/hyperv: Move required MSRs check to initial platform probing + - net/smc: Transfer remaining wait queue entries during fallback + - atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait + - net: return correct error code + - pinctrl: qcom: fix unmet dependencies on GPIOLIB for GPIOLIB_IRQCHIP + - platform/x86: dell-wmi-descriptor: disable by default + - platform/x86: thinkpad_acpi: Add support for dual fan control + - platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep + - s390/setup: avoid using memblock_enforce_memory_limit + - btrfs: silence lockdep when reading chunk tree during mount + - btrfs: check-integrity: fix a warning on write caching disabled disk + - thermal: core: Reset previous low and high trip during thermal zone init + - scsi: iscsi: Unblock session then wake up error handler + - drm/amd/pm: Remove artificial freq level on Navi1x + - drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again + - drm/amd/amdgpu: fix potential memleak + - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile + - ata: libahci: Adjust behavior when StorageD3Enable _DSD is set + - ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in + hns_dsaf_ge_srst_by_port() + - ipv6: check return value of ipv6_skip_exthdr + - net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of + bound + - net: ethernet: dec: tulip: de4x5: fix possible array overflows in + type3_infoblock() + - perf sort: Fix the 'weight' sort key behavior + - perf sort: Fix the 'ins_lat' sort key behavior + - perf sort: Fix the 'p_stage_cyc' sort key behavior + - perf inject: Fix ARM SPE handling + - perf hist: Fix memory leak of a perf_hpp_fmt + - perf report: Fix memory leaks around perf_tip() + - tracing: Don't use out-of-sync va_list in event printing + - net/smc: Avoid warning of possible recursive locking + - ACPI: Add stubs for wakeup handler functions + - net/tls: Fix authentication failure in CCM mode + - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit + - kprobes: Limit max data_size of the kretprobe instances + - ALSA: hda/cs8409: Set PMSG_ON earlier inside cs8409 driver + - rt2x00: do not mark device gone on EPROTO errors during start + - ipmi: Move remove_work to dedicated workqueue + - cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink() + - iwlwifi: mvm: retry init flow if failed + - dma-buf: system_heap: Use 'for_each_sgtable_sg' in pages free flow + - s390/pci: move pseudo-MMIO to prevent MIO overlap + - fget: check that the fd still exists after getting a ref to it + - sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl + - sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl + - scsi: lpfc: Fix non-recovery of remote ports following an unsolicited LOGO + - scsi: ufs: ufs-pci: Add support for Intel ADL + - ipv6: fix memory leak in fib6_rule_suppress + - drm/amd/display: Allow DSC on supported MST branch devices + - drm/i915/dp: Perform 30ms delay after source OUI write + - KVM: fix avic_set_running for preemptable kernels + - KVM: Disallow user memslot with size that exceeds "unsigned long" + - KVM: x86/mmu: Fix TLB flush range when handling disconnected pt + - KVM: Ensure local memslot copies operate on up-to-date arch-specific data + - KVM: x86: ignore APICv if LAPIC is not enabled + - KVM: nVMX: Emulate guest TLB flush on nested VM-Enter with new vpid12 + - KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST + - KVM: nVMX: Abide to KVM_REQ_TLB_FLUSH_GUEST request on nested vmentry/vmexit + - KVM: VMX: prepare sync_pir_to_irr for running with APICv disabled + - KVM: x86: Use a stable condition around all VT-d PI paths + - KVM: MMU: shadow nested paging does not have PKU + - KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1 + - KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg() + - KVM: x86: check PIR even for vCPUs with disabled APICv + - tracing/histograms: String compares should not care about signed values + - net: dsa: mv88e6xxx: Fix application of erratum 4.8 for 88E6393X + - net: dsa: mv88e6xxx: Drop unnecessary check in + mv88e6393x_serdes_erratum_4_6() + - net: dsa: mv88e6xxx: Save power by disabling SerDes trasmitter and receiver + - net: dsa: mv88e6xxx: Add fix for erratum 5.2 of 88E6393X family + - net: dsa: mv88e6xxx: Fix inband AN for 2500base-x on 88E6393X family + - net: dsa: mv88e6xxx: Link in pcs_get_state() if AN is bypassed + - wireguard: selftests: increase default dmesg log size + - wireguard: allowedips: add missing __rcu annotation to satisfy sparse + - wireguard: selftests: actually test for routing loops + - wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST + - wireguard: device: reset peer src endpoint when netns exits + - wireguard: receive: use ring buffer for incoming handshakes + - wireguard: receive: drop handshakes if queue lock is contended + - wireguard: ratelimiter: use kvcalloc() instead of kvzalloc() + - i2c: stm32f7: flush TX FIFO upon transfer errors + - i2c: stm32f7: recover the bus on access timeout + - i2c: stm32f7: stop dma transfer in case of NACK + - i2c: cbus-gpio: set atomic transfer callback + - natsemi: xtensa: fix section mismatch warnings + - tcp: fix page frag corruption on page fault + - net: qlogic: qlcnic: Fix a NULL pointer dereference in + qlcnic_83xx_add_rings() + - net: mpls: Fix notifications when deleting a device + - siphash: use _unaligned version by default + - arm64: ftrace: add missing BTIs + - iwlwifi: fix warnings produced by kernel debug options + - net/mlx5e: IPsec: Fix Software parser inner l3 type setting in case of + encapsulation + - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources() + - selftests: net: Correct case name + - net: dsa: b53: Add SPI ID table + - mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode + - ASoC: tegra: Fix wrong value type in ADMAIF + - ASoC: tegra: Fix wrong value type in I2S + - ASoC: tegra: Fix wrong value type in DMIC + - ASoC: tegra: Fix wrong value type in DSPK + - ASoC: tegra: Fix kcontrol put callback in ADMAIF + - ASoC: tegra: Fix kcontrol put callback in I2S + - ASoC: tegra: Fix kcontrol put callback in DMIC + - ASoC: tegra: Fix kcontrol put callback in DSPK + - ASoC: tegra: Fix kcontrol put callback in AHUB + - rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() + - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() + - ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec + - net: stmmac: Avoid DMA_CHAN_CONTROL write if no Split Header support + - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ + is available + - net: marvell: mvpp2: Fix the computation of shared CPUs + - dpaa2-eth: destroy workqueue at the end of remove function + - octeontx2-af: Fix a memleak bug in rvu_mbox_init() + - net: annotate data-races on txq->xmit_lock_owner + - ipv4: convert fib_num_tclassid_users to atomic_t + - net/smc: fix wrong list_del in smc_lgr_cleanup_early + - net/rds: correct socket tunable error in rds_tcp_tune() + - net/smc: Keep smc_close_final rc during active close + - drm/msm/a6xx: Allocate enough space for GMU registers + - drm/msm: Do hw_init() before capturing GPU state + - drm/vc4: kms: Wait for the commit before increasing our clock rate + - drm/vc4: kms: Fix return code check + - drm/vc4: kms: Add missing drm_crtc_commit_put + - drm/vc4: kms: Clear the HVS FIFO commit pointer once done + - drm/vc4: kms: Don't duplicate pending commit + - drm/vc4: kms: Fix previous HVS commit wait + - atlantic: Increase delay for fw transactions + - atlatnic: enable Nbase-t speeds with base-t + - atlantic: Fix to display FW bundle version instead of FW mac version. + - atlantic: Add missing DIDs and fix 115c. + - Remove Half duplex mode speed capabilities. + - atlantic: Fix statistics logic for production hardware + - atlantic: Remove warn trace message. + - KVM: x86/mmu: Skip tlb flush if it has been done in zap_gfn_range() + - KVM: x86/mmu: Pass parameter flush as false in + kvm_tdp_mmu_zap_collapsible_sptes() + - drm/msm/devfreq: Fix OPP refcnt leak + - drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP + - drm/msm: Fix wait_fence submitqueue leak + - drm/msm: Restore error return on invalid fence + - ASoC: rk817: Add module alias for rk817-codec + - iwlwifi: Fix memory leaks in error handling path + - KVM: X86: Fix when shadow_root_level=5 && guest root_level<4 + - KVM: SEV: initialize regions_list of a mirror VM + - net/mlx5e: Fix missing IPsec statistics on uplink representor + - net/mlx5: Move MODIFY_RQT command to ignore list in internal error state + - net/mlx5: E-switch, Respect BW share of the new group + - net/mlx5: E-Switch, fix single FDB creation on BlueField + - net/mlx5: E-Switch, Check group pointer before reading bw_share value + - KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register + - KVM: VMX: Set failure code in prepare_vmcs02() + - mctp: Don't let RTM_DELROUTE delete local routes + - Revert "drm/i915: Implement Wa_1508744258" + - io-wq: don't retry task_work creation failure on fatal conditions + - x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword + - x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry() + - x86/entry: Use the correct fence macro after swapgs in kernel CR3 + - x86/xen: Add xenpv_restore_regs_and_return_to_usermode() + - preempt/dynamic: Fix setup_preempt_mode() return value + - sched/uclamp: Fix rq->uclamp_max not set on first enqueue + - KVM: SEV: Return appropriate error codes if SEV-ES scratch setup fails + - KVM: x86/mmu: Rename slot_handle_leaf to slot_handle_level_4k + - KVM: x86/mmu: Remove spurious TLB flushes in TDP MMU zap collapsible path + - net/mlx5e: Rename lro_timeout to packet_merge_timeout + - net/mlx5e: Rename TIR lro functions to TIR packet merge functions + - net/mlx5e: Sync TIR params updates against concurrent create/modify + - serial: 8250_bcm7271: UART errors after resuming from S2 + - parisc: Fix KBUILD_IMAGE for self-extracting kernel + - parisc: Fix "make install" on newer debian releases + - parisc: Mark cr16 CPU clocksource unstable on all SMP machines + - vgacon: Propagate console boot parameters before calling `vc_resize' + - xhci: Fix commad ring abort, write all 64 bits to CRCR register. + - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub + - usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect + - usb: cdns3: gadget: fix new urb never complete if ep cancel previous + requests + - usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init() + - x86/tsc: Add a timer to make sure TSC_adjust is always checked + - x86/tsc: Disable clocksource watchdog for TSC on qualified platorms + - x86/64/mm: Map all kernel memory into trampoline_pgd + - tty: serial: msm_serial: Deactivate RX DMA for polling support + - serial: pl011: Add ACPI SBSA UART match id + - serial: tegra: Change lower tolerance baud rate limit for tegra20 and + tegra30 + - serial: core: fix transmit-buffer reset and memleak + - serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array + - serial: 8250_pci: rewrite pericom_do_set_divisor() + - serial: 8250: Fix RTS modem control while in rs485 mode + - serial: liteuart: Fix NULL pointer dereference in ->remove() + - serial: liteuart: fix use-after-free and memleak on unbind + - serial: liteuart: fix minor-number leak on probe errors + - ipmi: msghandler: Make symbol 'remove_work_wq' static + - Linux 5.15.7 + + * Updates to ib_peer_memory requested by Nvidia (LP: #1947206) + - SAUCE: RDMA/core: Updated ib_peer_memory + - SAUCE: RDMA/core: ib_peer_memory fix build errors + + * Jammy update: v5.15.6 upstream stable release (LP: #1953370) + - scsi: sd: Fix sd_do_mode_sense() buffer length handling + - ACPI: Get acpi_device's parent from the parent field + - ACPI: CPPC: Add NULL pointer check to cppc_get_perf() + - USB: serial: pl2303: fix GC type detection + - USB: serial: option: add Telit LE910S1 0x9200 composition + - USB: serial: option: add Fibocom FM101-GL variants + - usb: dwc2: gadget: Fix ISOC flow for elapsed frames + - usb: dwc2: hcd_queue: Fix use of floating point literal + - usb: dwc3: leave default DMA for PCI devices + - usb: dwc3: core: Revise GHWPARAMS9 offset + - usb: dwc3: gadget: Ignore NoStream after End Transfer + - usb: dwc3: gadget: Check for L1/L2/U3 for Start Transfer + - usb: dwc3: gadget: Fix null pointer exception + - net: usb: Correct PHY handling of smsc95xx + - net: nexthop: fix null pointer dereference when IPv6 is not enabled + - usb: chipidea: ci_hdrc_imx: fix potential error pointer dereference in probe + - usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts + - usb: xhci: tegra: Check padctrl interrupt presence in device tree + - usb: hub: Fix usb enumeration issue due to address0 race + - usb: hub: Fix locking issues with address0_mutex + - binder: fix test regression due to sender_euid change + - ALSA: ctxfi: Fix out-of-range access + - ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100 + - ALSA: hda/realtek: Fix LED on HP ProBook 435 G7 + - media: cec: copy sequence field for the reply + - Revert "parisc: Fix backtrace to always include init funtion names" + - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts + - staging/fbtft: Fix backlight + - staging: greybus: Add missing rwsem around snd_ctl_remove() calls + - staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect() + - staging: r8188eu: Use kzalloc() with GFP_ATOMIC in atomic context + - staging: r8188eu: Fix breakage introduced when 5G code was removed + - staging: r8188eu: use GFP_ATOMIC under spinlock + - staging: r8188eu: fix a memory leak in rtw_wx_read32() + - fuse: release pipe buf after last use + - xen: don't continue xenstore initialization in case of errors + - xen: detect uninitialized xenbus in xenbus_init + - io_uring: correct link-list traversal locking + - io_uring: fail cancellation for EXITING tasks + - io_uring: fix link traversal locking + - drm/amdgpu: IH process reset count when restart + - drm/amdgpu/pm: fix powerplay OD interface + - drm/nouveau: recognise GA106 + - ksmbd: downgrade addition info error msg to debug in smb2_get_info_sec() + - ksmbd: contain default data stream even if xattr is empty + - ksmbd: fix memleak in get_file_stream_info() + - KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB + - tracing/uprobe: Fix uprobe_perf_open probes iteration + - tracing: Fix pid filtering when triggers are attached + - mmc: sdhci-esdhc-imx: disable CMDQ support + - mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB + - mdio: aspeed: Fix "Link is Down" issue + - arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd + - cpufreq: intel_pstate: Fix active mode offline/online EPP handling + - powerpc/32: Fix hardlockup on vmap stack overflow + - iomap: Fix inline extent handling in iomap_readpage + - NFSv42: Fix pagecache invalidation after COPY/CLONE + - PCI: aardvark: Deduplicate code in advk_pcie_rd_conf() + - PCI: aardvark: Implement re-issuing config requests on CRS response + - PCI: aardvark: Simplify initialization of rootcap on virtual bridge + - PCI: aardvark: Fix link training + - drm/amd/display: Fix OLED brightness control on eDP + - proc/vmcore: fix clearing user buffer by properly using clear_user() + - ASoC: SOF: Intel: hda: fix hotplug when only codec is suspended + - netfilter: ctnetlink: fix filtering with CTA_TUPLE_REPLY + - netfilter: ctnetlink: do not erase error code with EINVAL + - netfilter: ipvs: Fix reuse connection if RS weight is 0 + - netfilter: flowtable: fix IPv6 tunnel addr match + - media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 + - firmware: arm_scmi: Fix null de-reference on error path + - ARM: dts: BCM5301X: Fix I2C controller interrupt + - ARM: dts: BCM5301X: Add interrupt properties to GPIO node + - ARM: dts: bcm2711: Fix PCIe interrupts + - ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer + - ASoC: qdsp6: q6asm: fix q6asm_dai_prepare error handling + - ASoC: topology: Add missing rwsem around snd_ctl_remove() calls + - ASoC: codecs: wcd938x: fix volatile register range + - ASoC: codecs: wcd934x: return error code correctly from hw_params + - ASoC: codecs: lpass-rx-macro: fix HPHR setting CLSH mask + - net: ieee802154: handle iftypes as u32 + - firmware: arm_scmi: Fix base agent discover response + - firmware: arm_scmi: pm: Propagate return value to caller + - ASoC: stm32: i2s: fix 32 bits channel length without mclk + - NFSv42: Don't fail clone() unless the OP_CLONE operation failed + - ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE + - drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks + - scsi: qla2xxx: edif: Fix off by one bug in qla_edif_app_getfcinfo() + - scsi: mpt3sas: Fix kernel panic during drive powercycle test + - scsi: mpt3sas: Fix system going into read-only mode + - scsi: mpt3sas: Fix incorrect system timestamp + - drm/vc4: fix error code in vc4_create_object() + - drm/aspeed: Fix vga_pw sysfs output + - net: marvell: prestera: fix brige port operation + - net: marvell: prestera: fix double free issue on err path + - HID: input: Fix parsing of HID_CP_CONSUMER_CONTROL fields + - HID: input: set usage type to key on keycode remap + - HID: magicmouse: prevent division by 0 on scroll + - iavf: Prevent changing static ITR values if adaptive moderation is on + - iavf: Fix refreshing iavf adapter stats on ethtool request + - iavf: Fix VLAN feature flags after VFR + - x86/pvh: add prototype for xen_pvh_init() + - xen/pvh: add missing prototype to header + - ALSA: intel-dsp-config: add quirk for JSL devices based on ES8336 codec + - mptcp: fix delack timer + - mptcp: use delegate action to schedule 3rd ack retrans + - af_unix: fix regression in read after shutdown + - firmware: smccc: Fix check for ARCH_SOC_ID not implemented + - ipv6: fix typos in __ip6_finish_output() + - nfp: checking parameter process for rx-usecs/tx-usecs is invalid + - net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls + - net: ipv6: add fib6_nh_release_dsts stub + - net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group + - ice: fix vsi->txq_map sizing + - ice: avoid bpf_prog refcount underflow + - scsi: core: sysfs: Fix setting device state to SDEV_RUNNING + - scsi: scsi_debug: Zero clear zones at reset write pointer + - erofs: fix deadlock when shrink erofs slab + - i2c: virtio: disable timeout handling + - net/smc: Ensure the active closing peer first closes clcsock + - mlxsw: spectrum: Protect driver from buggy firmware + - net: ipa: directly disable ipa-setup-ready interrupt + - net: ipa: separate disabling setup from modem stop + - net: ipa: kill ipa_cmd_pipeline_clear() + - net: marvell: mvpp2: increase MTU limit when XDP enabled + - cpufreq: intel_pstate: Add Ice Lake server to out-of-band IDs + - nvmet-tcp: fix incomplete data digest send + - drm/hyperv: Fix device removal on Gen1 VMs + - arm64: uaccess: avoid blocking within critical sections + - net/ncsi : Add payload to be 32-bit aligned to fix dropped packets + - PM: hibernate: use correct mode for swsusp_close() + - drm/amd/display: Fix DPIA outbox timeout after GPU reset + - drm/amd/display: Set plane update flags for all planes in reset + - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited + flows + - lan743x: fix deadlock in lan743x_phy_link_status_change() + - net: phylink: Force link down and retrigger resolve on interface change + - net: phylink: Force retrigger in case of latched link-fail indicator + - net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk() + - net/smc: Fix loop in smc_listen + - nvmet: use IOCB_NOWAIT only if the filesystem supports it + - igb: fix netpoll exit with traffic + - MIPS: loongson64: fix FTLB configuration + - MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48 + - tls: splice_read: fix record type check + - tls: splice_read: fix accessing pre-processed records + - tls: fix replacing proto_ops + - net: stmmac: Disable Tx queues when reconfiguring the interface + - net/sched: sch_ets: don't peek at classes beyond 'nbands' + - ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce() + - net: vlan: fix underflow for the real_dev refcnt + - net/smc: Don't call clcsock shutdown twice when smc shutdown + - net: hns3: fix VF RSS failed problem after PF enable multi-TCs + - net: hns3: fix incorrect components info of ethtool --reset command + - net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP + - net: mscc: ocelot: correctly report the timestamping RX filters in ethtool + - locking/rwsem: Make handoff bit handling more consistent + - perf: Ignore sigtrap for tracepoints destined for other tasks + - sched/scs: Reset task stack state in bringup_cpu() + - iommu/rockchip: Fix PAGE_DESC_HI_MASKs for RK3568 + - iommu/vt-d: Fix unmap_pages support + - f2fs: quota: fix potential deadlock + - f2fs: set SBI_NEED_FSCK flag when inconsistent node block found + - riscv: dts: microchip: fix board compatible + - riscv: dts: microchip: drop duplicated MMC/SDHC node + - cifs: nosharesock should not share socket with future sessions + - ceph: properly handle statfs on multifs setups + - iommu/amd: Clarify AMD IOMMUv2 initialization messages + - vdpa_sim: avoid putting an uninitialized iova_domain + - vhost/vsock: fix incorrect used length reported to the guest + - ksmbd: Fix an error handling path in 'smb2_sess_setup()' + - tracing: Check pid filtering when creating events + - cifs: nosharesock should be set on new server + - io_uring: fix soft lockup when call __io_remove_buffers + - firmware: arm_scmi: Fix type error assignment in voltage protocol + - firmware: arm_scmi: Fix type error in sensor protocol + - docs: accounting: update delay-accounting.rst reference + - blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and + disk_release() + - block: avoid to quiesce queue in elevator_init_mq + - drm/amdgpu/gfx10: add wraparound gpu counter check for APUs as well + - drm/amdgpu/gfx9: switch to golden tsc registers for renoir+ + - Linux 5.15.6 + + * Fix bogus HDMI audio interface (LP: #1953208) + - ALSA: hda/hdmi: Consider ELD is invalid when no SAD is present + + * Miscellaneous Ubuntu changes + - [Config] re-enabled UBSAN without TRAP + - SAUCE: ipv6: fix NULL pointer dereference in ip6_output() + - SAUCE: RDMA/core: Introduce peer memory interface + - [Config] toolchain version update + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] Temporarily disable signing for ppc64el and s390x" + - Revert "UBUNTU: SAUCE: vt -- maintain bootloader screen mode and content + until vt switch" + + -- Paolo Pisati Mon, 13 Dec 2021 12:13:17 +0100 + +linux (5.15.0-13.13) jammy; urgency=medium + + * jammy/linux: 5.15.0-13.13 -proposed tracker (LP: #1952583) + + * Packaging resync (LP: #1786013) + - [Packaging] resync update-dkms-versions helper + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Jammy update: v5.15.5 upstream stable release (LP: #1952579) + - arm64: zynqmp: Do not duplicate flash partition label property + - arm64: zynqmp: Fix serial compatible string + - clk: sunxi-ng: Unregister clocks/resets when unbinding + - ARM: dts: sunxi: Fix OPPs node name + - arm64: dts: allwinner: h5: Fix GPU thermal zone node name + - arm64: dts: allwinner: a100: Fix thermal zone node name + - staging: wfx: ensure IRQ is ready before enabling it + - ARM: dts: BCM5301X: Fix nodes names + - ARM: dts: BCM5301X: Fix MDIO mux binding + - ARM: dts: NSP: Fix mpcore, mmc node names + - arm64: dts: broadcom: bcm4908: Move reboot syscon out of bus + - scsi: pm80xx: Fix memory leak during rmmod + - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq() + - ASoC: mediatek: mt8195: Add missing of_node_put() + - arm64: dts: rockchip: Disable CDN DP on Pinebook Pro + - arm64: dts: hisilicon: fix arm,sp805 compatible string + - RDMA/bnxt_re: Check if the vlan is valid before reporting + - bus: ti-sysc: Add quirk handling for reinit on context lost + - bus: ti-sysc: Use context lost quirk for otg + - usb: musb: tusb6010: check return value after calling + platform_get_resource() + - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read + - ARM: dts: ux500: Skomer regulator fixes + - staging: rtl8723bs: remove possible deadlock when disconnect (v2) + - staging: rtl8723bs: remove a second possible deadlock + - staging: rtl8723bs: remove a third possible deadlock + - ARM: BCM53016: Specify switch ports for Meraki MR32 + - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency + - arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property + - arm64: dts: qcom: ipq8074: Fix qcom,controlled-remotely property + - arm64: dts: qcom: sdm845: Fix qcom,controlled-remotely property + - arm64: dts: freescale: fix arm,sp805 compatible string + - arm64: dts: ls1012a: Add serial alias for ls1012a-rdb + - RDMA/rxe: Separate HW and SW l/rkeys + - ASoC: SOF: Intel: hda-dai: fix potential locking issue + - scsi: core: Fix scsi_mode_sense() buffer length handling + - ALSA: usb-audio: disable implicit feedback sync for Behringer UFX1204 and + UFX1604 + - clk: imx: imx6ul: Move csi_sel mux to correct base register + - ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ + - ASoC: rt5651: Use IRQF_NO_AUTOEN when requesting the IRQ + - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect + - scsi: advansys: Fix kernel pointer leak + - scsi: smartpqi: Add controller handshake during kdump + - arm64: dts: imx8mm-kontron: Fix reset delays for ethernet PHY + - ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 + codec + - ASoC: Intel: soc-acpi: add missing quirk for TGL SDCA single amp + - ASoC: Intel: sof_sdw: add missing quirk for Dell SKU 0A45 + - firmware_loader: fix pre-allocated buf built-in firmware use + - HID: multitouch: disable sticky fingers for UPERFECT Y + - ALSA: usb-audio: Add support for the Pioneer DJM 750MK2 Mixer/Soundcard + - ARM: dts: omap: fix gpmc,mux-add-data type + - usb: host: ohci-tmio: check return value after calling + platform_get_resource() + - ASoC: rt5682: fix a little pop while playback + - ARM: dts: ls1021a: move thermal-zones node out of soc/ + - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash + - ALSA: ISA: not for M68K + - iommu/vt-d: Do not falsely log intel_iommu is unsupported kernel option + - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc + - MIPS: sni: Fix the build + - scsi: scsi_debug: Fix out-of-bound read in resp_readcap16() + - scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs() + - scsi: target: Fix ordered tag handling + - scsi: target: Fix alua_tg_pt_gps_count tracking + - iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr() + - RDMA/core: Use kvzalloc when allocating the struct ib_port + - scsi: lpfc: Fix use-after-free in lpfc_unreg_rpi() routine + - scsi: lpfc: Fix link down processing to address NULL pointer dereference + - scsi: lpfc: Allow fabric node recovery if recovery is in progress before + devloss + - memory: tegra20-emc: Add runtime dependency on devfreq governor module + - powerpc/5200: dts: fix memory node unit name + - ARM: dts: qcom: fix memory and mdio nodes naming for RB3011 + - arm64: dts: qcom: Fix node name of rpm-msg-ram device nodes + - ALSA: gus: fix null pointer dereference on pointer block + - ALSA: usb-audio: fix null pointer dereference on pointer cs_desc + - clk: at91: sama7g5: remove prescaler part of master clock + - iommu/dart: Initialize DART_STREAMS_ENABLE + - powerpc/dcr: Use cmplwi instead of 3-argument cmpli + - powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST + - sh: check return code of request_irq + - maple: fix wrong return value of maple_bus_init(). + - f2fs: fix up f2fs_lookup tracepoints + - f2fs: fix to use WHINT_MODE + - f2fs: fix wrong condition to trigger background checkpoint correctly + - sh: fix kconfig unmet dependency warning for FRAME_POINTER + - sh: math-emu: drop unused functions + - sh: define __BIG_ENDIAN for math-emu + - f2fs: compress: disallow disabling compress on non-empty compressed file + - f2fs: fix incorrect return value in f2fs_sanity_check_ckpt() + - clk: ingenic: Fix bugs with divided dividers + - clk/ast2600: Fix soc revision for AHB + - clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk + - KVM: arm64: Fix host stage-2 finalization + - mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set + - MIPS: boot/compressed/: add __bswapdi2() to target for ZSTD decompression + - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain() + - sched/fair: Prevent dead task groups from regaining cfs_rq's + - perf/x86/vlbr: Add c->flags to vlbr event constraints + - blkcg: Remove extra blkcg_bio_issue_init + - tracing/histogram: Do not copy the fixed-size char array field over the + field size + - perf bpf: Avoid memory leak from perf_env__insert_btf() + - perf bench futex: Fix memory leak of perf_cpu_map__new() + - perf tests: Remove bash construct from record+zstd_comp_decomp.sh + - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame + - bpf: Fix inner map state pruning regression. + - samples/bpf: Fix summary per-sec stats in xdp_sample_user + - samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu + - selftests: net: switch to socat in the GSO GRE test + - net/ipa: ipa_resource: Fix wrong for loop range + - tcp: Fix uninitialized access in skb frags array for Rx 0cp. + - tracing: Add length protection to histogram string copies + - nl80211: fix radio statistics in survey dump + - mac80211: fix monitor_sdata RCU/locking assertions + - net: ipa: HOLB register sometimes must be written twice + - net: ipa: disable HOLB drop when updating timer + - selftests: gpio: fix gpio compiling error + - net: bnx2x: fix variable dereferenced before check + - bnxt_en: reject indirect blk offload when hw-tc-offload is off + - tipc: only accept encrypted MSG_CRYPTO msgs + - sock: fix /proc/net/sockstat underflow in sk_clone_lock() + - net/smc: Make sure the link_id is unique + - NFSD: Fix exposure in nfsd4_decode_bitmap() + - iavf: Fix return of set the new channel count + - iavf: check for null in iavf_fix_features + - iavf: free q_vectors before queues in iavf_disable_vf + - iavf: don't clear a lock we don't hold + - iavf: Fix failure to exit out from last all-multicast mode + - iavf: prevent accidental free of filter structure + - iavf: validate pointers + - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset + - iavf: Fix for setting queues to 0 + - iavf: Restore VLAN filters after link down + - bpf: Fix toctou on read-only map's constant scalar tracking + - MIPS: generic/yamon-dt: fix uninitialized variable error + - mips: bcm63xx: add support for clk_get_parent() + - mips: lantiq: add support for clk_get_parent() + - gpio: rockchip: needs GENERIC_IRQ_CHIP to fix build errors + - platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()' + - platform/x86: think-lmi: Abort probe on analyze failure + - udp: Validate checksum in udp_read_sock() + - btrfs: make 1-bit bit-fields of scrub_page unsigned int + - RDMA/core: Set send and receive CQ before forwarding to the driver + - net/mlx5e: kTLS, Fix crash in RX resync flow + - net/mlx5e: Wait for concurrent flow deletion during neigh/fib events + - net/mlx5: E-Switch, Fix resetting of encap mode when entering switchdev + - net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove() + - net/mlx5: Update error handler for UCTX and UMEM + - net/mlx5: E-Switch, rebuild lag only when needed + - net/mlx5e: CT, Fix multiple allocations and memleak of mod acts + - net/mlx5: Lag, update tracker when state change event received + - net/mlx5: E-Switch, return error if encap isn't supported + - scsi: ufs: core: Improve SCSI abort handling + - scsi: core: sysfs: Fix hang when device state is set via sysfs + - scsi: ufs: core: Fix task management completion timeout race + - scsi: ufs: core: Fix another task management completion race + - net: mvmdio: fix compilation warning + - net: sched: act_mirred: drop dst for the direction from egress to ingress + - net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove + - net: virtio_net_hdr_to_skb: count transport header in UFO + - i40e: Fix correct max_pkt_size on VF RX queue + - i40e: Fix NULL ptr dereference on VSI filter sync + - i40e: Fix changing previously set num_queue_pairs for PFs + - i40e: Fix ping is lost after configuring ADq on VF + - RDMA/mlx4: Do not fail the registration on port stats + - i40e: Fix warning message and call stack during rmmod i40e driver + - i40e: Fix creation of first queue by omitting it if is not power of two + - i40e: Fix display error code in dmesg + - NFC: reorganize the functions in nci_request + - NFC: reorder the logic in nfc_{un,}register_device + - NFC: add NCI_UNREG flag to eliminate the race + - e100: fix device suspend/resume + - ptp: ocp: Fix a couple NULL vs IS_ERR() checks + - tools build: Fix removal of feature-sync-compare-and-swap feature detection + - riscv: fix building external modules + - KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr() + - powerpc: clean vdso32 and vdso64 directories + - powerpc/pseries: rename numa_dist_table to form2_distances + - powerpc/pseries: Fix numa FORM2 parsing fallback code + - pinctrl: qcom: sdm845: Enable dual edge errata + - pinctrl: qcom: sm8350: Correct UFS and SDC offsets + - perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server + - perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server + - perf/x86/intel/uncore: Fix IIO event constraints for Snowridge + - s390/kexec: fix return code handling + - blk-cgroup: fix missing put device in error path from blkg_conf_pref() + - dmaengine: remove debugfs #ifdef + - tun: fix bonding active backup with arp monitoring + - Revert "mark pstore-blk as broken" + - pstore/blk: Use "%lu" to format unsigned long + - hexagon: export raw I/O routines for modules + - hexagon: clean up timer-regs.h + - tipc: check for null after calling kmemdup + - ipc: WARN if trying to remove ipc object which is absent + - shm: extend forced shm destroy to support objects from several IPC nses + - mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag + - hugetlb, userfaultfd: fix reservation restore on userfaultfd error + - kmap_local: don't assume kmap PTEs are linear arrays in memory + - mm/damon/dbgfs: use '__GFP_NOWARN' for user-specified size buffer allocation + - mm/damon/dbgfs: fix missed use of damon_dbgfs_lock + - x86/boot: Pull up cmdline preparation and early param parsing + - x86/sgx: Fix free page accounting + - x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails + - KVM: x86: Assume a 64-bit hypercall for guests with protected state + - KVM: x86: Fix uninitialized eoi_exit_bitmap usage in vcpu_load_eoi_exitmap() + - KVM: x86/mmu: include EFER.LMA in extended mmu role + - KVM: x86/xen: Fix get_attr of KVM_XEN_ATTR_TYPE_SHARED_INFO + - powerpc/signal32: Fix sigset_t copy + - powerpc/xive: Change IRQ domain to a tree domain + - powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX + - Revert "drm/i915/tgl/dsi: Gate the ddi clocks after pll mapping" + - Revert "parisc: Reduce sigreturn trampoline to 3 instructions" + - ata: libata: improve ata_read_log_page() error message + - ata: libata: add missing ata_identify_page_supported() calls + - scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id() + - pinctrl: ralink: include 'ralink_regs.h' in 'pinctrl-mt7620.c' + - s390/setup: avoid reserving memory above identity mapping + - s390/boot: simplify and fix kernel memory layout setup + - s390/vdso: filter out -mstack-guard and -mstack-size + - s390/kexec: fix memory leak of ipl report buffer + - s390/dump: fix copying to user-space of swapped kdump oldmem + - block: Check ADMIN before NICE for IOPRIO_CLASS_RT + - fbdev: Prevent probing generic drivers if a FB is already registered + - KVM: SEV: Disallow COPY_ENC_CONTEXT_FROM if target has created vCPUs + - KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested + state load + - drm/cma-helper: Release non-coherent memory with dma_free_noncoherent() + - printk: restore flushing of NMI buffers on remote CPUs after NMI backtraces + - udf: Fix crash after seekdir + - spi: fix use-after-free of the add_lock mutex + - net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 + platform + - Drivers: hv: balloon: Use VMBUS_RING_SIZE() wrapper for dm_ring_size + - btrfs: fix memory ordering between normal and ordered work functions + - fs: handle circular mappings correctly + - net: stmmac: Fix signed/unsigned wreckage + - parisc/sticon: fix reverse colors + - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type + - mac80211: fix radiotap header generation + - mac80211: drop check for DONT_REORDER in __ieee80211_select_queue + - drm/amd/display: Update swizzle mode enums + - drm/amd/display: Limit max DSC target bpp for specific monitors + - drm/i915/guc: Fix outstanding G2H accounting + - drm/i915/guc: Don't enable scheduling on a banned context, guc_id invalid, + not registered + - drm/i915/guc: Workaround reset G2H is received after schedule done G2H + - drm/i915/guc: Don't drop ce->guc_active.lock when unwinding context + - drm/i915/guc: Unwind context requests in reverse order + - drm/udl: fix control-message timeout + - drm/prime: Fix use after free in mmap with drm_gem_ttm_mmap + - drm/nouveau: Add a dedicated mutex for the clients list + - drm/nouveau: use drm_dev_unplug() during device removal + - drm/nouveau: clean up all clients on device removal + - drm/i915/dp: Ensure sink rate values are always valid + - drm/i915/dp: Ensure max link params are always valid + - drm/i915: Fix type1 DVI DP dual mode adapter heuristic for modern platforms + - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga + and dvi connectors + - drm/amd/pm: avoid duplicate powergate/ungate setting + - signal: Implement force_fatal_sig + - exit/syscall_user_dispatch: Send ordinary signals on failure + - signal/powerpc: On swapcontext failure force SIGSEGV + - signal/s390: Use force_sigsegv in default_trap_handler + - signal/sparc32: Exit with a fatal signal when try_to_clear_window_buffer + fails + - signal/sparc32: In setup_rt_frame and setup_fram use force_fatal_sig + - signal/vm86_32: Properly send SIGSEGV when the vm86 state cannot be saved. + - signal/x86: In emulate_vsyscall force a signal instead of calling do_exit + - signal: Replace force_sigsegv(SIGSEGV) with force_fatal_sig(SIGSEGV) + - signal: Don't always set SA_IMMUTABLE for forced signals + - signal: Replace force_fatal_sig with force_exit_sig when in doubt + - hugetlbfs: flush TLBs correctly after huge_pmd_unshare + - RDMA/netlink: Add __maybe_unused to static inline in C file + - bpf: Forbid bpf_ktime_get_coarse_ns and bpf_timer_* in tracing progs + - selinux: fix NULL-pointer dereference when hashtab allocation fails + - ASoC: DAPM: Cover regression by kctl change notification fix + - ASoC: rsnd: fixup DMAEngine API + - usb: max-3421: Use driver data instead of maintaining a list of bound + devices + - ice: Fix VF true promiscuous mode + - ice: Delete always true check of PF pointer + - fs: export an inode_update_time helper + - btrfs: update device path inode time instead of bd_inode + - net: add and use skb_unclone_keeptruesize() helper + - x86/Kconfig: Fix an unused variable error in dell-smm-hwmon + - ALSA: hda: hdac_ext_stream: fix potential locking issues + - ALSA: hda: hdac_stream: fix potential locking issue in + snd_hdac_stream_assign() + - Linux 5.15.5 + + * Fix non-working e1000e device after resume (LP: #1951861) + - SAUCE: Revert "e1000e: Additional PHY power saving in S0ix" + - SAUCE: Revert "e1000e: Add polling mechanism to indicate CSME DPG exit" + - SAUCE: Revert "e1000e: Add handshake with the CSME to support S0ix" + + * [SRU][I/OEM-5.13/OEM-5.14] Add MAC passthrough support for more Lenovo docks + (LP: #1951767) + - net: usb: r8152: Add MAC passthrough support for more Lenovo Docks + + * [amdgpu] USB4 support for DP tunneling (LP: #1951868) + - drm/amd/display: Support for DMUB HPD interrupt handling + - drm/amd/display: Update link encoder object creation. + - drm/amd/display: USB4 DPIA enumeration and AUX Tunneling + - drm/amd/display: Support for DMUB HPD and HPD RX interrupt handling + - drm/amd/display: Set DPIA link endpoint type + - drm/amd/display: Stub out DPIA link training call + - drm/amd/display: Add stub to get DPIA tunneling device data + - drm/amd/display: Skip DPCD read for DPTX-to-DPIA hop + - drm/amd/display: Train DPIA links with fallback + - drm/amd/display: Implement DPIA training loop + - drm/amd/display: Implement DPIA link configuration + - drm/amd/display: Implement DPIA clock recovery phase + - drm/amd/display: Implement DPIA equalisation phase + - drm/amd/display: Implement end of training for hop in DPIA display path + - drm/amd/display: Support for SET_CONFIG processing with DMUB + - drm/amd/display: isolate link training setting override to its own function + - drm/amd/display: Read USB4 DP tunneling data from DPCD. + - drm/amd/display: Add dpia debug options + - drm/amd/display: Support for SET_CONFIG processing with DMUB + - drm/amd/display: Add DPCD writes at key points + - drm/amd/display: Fix DIG_HPD_SELECT for USB4 display endpoints. + - drm/amd/display: Add helper for blanking all dp displays + - drm/amd/display: Fix link training fallback logic + - drm/amd/display: Add debug flags for USB4 DP link training. + - drm/amd/display: Fix dynamic link encoder access. + - drm/amd/display: Fix concurrent dynamic encoder assignment + - drm/amd/display: Fix dynamic encoder reassignment + - drm/amd/display: Fix for access for ddc pin and aux engine. + - drm/amd/display: Deadlock/HPD Status/Crash Bug Fix + - drm/amd/display: Fix USB4 Aux via DMUB terminate unexpectedly + + * Miscellaneous Ubuntu changes + - [Packaging] Rewrite debian/scripts/module-check in Python + - [Config] update config and annotations after applying v5.15.5 + + -- Andrea Righi Mon, 29 Nov 2021 09:25:37 +0100 + +linux (5.15.0-12.12) jammy; urgency=medium + + * jammy/linux: 5.15.0-12.12 -proposed tracker (LP: #1951810) + + * Jammy update: v5.15.4 upstream stable release (LP: #1951820) + - string: uninline memcpy_and_pad + - Revert "drm: fb_helper: improve CONFIG_FB dependency" + - Revert "drm: fb_helper: fix CONFIG_FB dependency" + - KVM: Fix steal time asm constraints + - btrfs: introduce btrfs_is_data_reloc_root + - btrfs: zoned: add a dedicated data relocation block group + - btrfs: zoned: only allow one process to add pages to a relocation inode + - btrfs: zoned: use regular writes for relocation + - btrfs: check for relocation inodes on zoned btrfs in should_nocow + - btrfs: zoned: allow preallocation for relocation inodes + - fortify: Explicitly disable Clang support + - block: Add a helper to validate the block size + - loop: Use blk_validate_block_size() to validate block size + - Bluetooth: btusb: Add support for TP-Link UB500 Adapter + - parisc/entry: fix trace test in syscall exit path + - PCI/MSI: Deal with devices lying about their MSI mask capability + - PCI: Add MSI masking quirk for Nvidia ION AHCI + - perf/core: Avoid put_page() when GUP fails + - thermal: Fix NULL pointer dereferences in of_thermal_ functions + - Revert "ACPI: scan: Release PM resources blocked by unused objects" + - Linux 5.15.4 + + * Jammy update: v5.15.3 upstream stable release (LP: #1951822) + - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good + delay + - usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform + - Input: iforce - fix control-message timeout + - Input: elantench - fix misreporting trackpoint coordinates + - Input: i8042 - Add quirk for Fujitsu Lifebook T725 + - libata: fix read log timeout value + - ocfs2: fix data corruption on truncate + - scsi: scsi_ioctl: Validate command size + - scsi: core: Avoid leaving shost->last_reset with stale value if EH does not + run + - scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd() + - scsi: lpfc: Don't release final kref on Fport node while ABTS outstanding + - scsi: lpfc: Fix FCP I/O flush functionality for TMF routines + - scsi: qla2xxx: Fix crash in NVMe abort path + - scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file + - scsi: qla2xxx: Fix use after free in eh_abort path + - ce/gf100: fix incorrect CE0 address calculation on some GPUs + - char: xillybus: fix msg_ep UAF in xillyusb_probe() + - mmc: mtk-sd: Add wait dma stop done flow + - mmc: dw_mmc: Dont wait for DRTO on Write RSP error + - exfat: fix incorrect loading of i_blocks for large files + - io-wq: remove worker to owner tw dependency + - parisc: Fix set_fixmap() on PA1.x CPUs + - parisc: Fix ptrace check on syscall return + - tpm: Check for integer overflow in tpm2_map_response_body() + - firmware/psci: fix application of sizeof to pointer + - crypto: s5p-sss - Add error handling in s5p_aes_probe() + - media: rkvdec: Do not override sizeimage for output format + - media: ite-cir: IR receiver stop working after receive overflow + - media: rkvdec: Support dynamic resolution changes + - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers + - media: v4l2-ioctl: Fix check_ext_ctrls + - ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14 + - ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED + - ALSA: hda/realtek: Add quirk for Clevo PC70HS + - ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ + - ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N + - ALSA: hda/realtek: Add quirk for ASUS UX550VE + - ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED + - ALSA: ua101: fix division by zero at probe + - ALSA: 6fire: fix control and bulk message timeouts + - ALSA: line6: fix control and interrupt message timeouts + - ALSA: mixer: oss: Fix racy access to slots + - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume + - ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk + - ALSA: usb-audio: Add registration quirk for JBL Quantum 400 + - ALSA: hda: Free card instance properly at probe errors + - ALSA: synth: missing check for possible NULL after the call to kstrdup + - ALSA: pci: rme: Fix unaligned buffer addresses + - ALSA: PCM: Fix NULL dereference at mmap checks + - ALSA: timer: Fix use-after-free problem + - ALSA: timer: Unconditionally unlink slave instances, too + - Revert "ext4: enforce buffer head state assertion in ext4_da_map_blocks" + - ext4: fix lazy initialization next schedule time computation in more + granular unit + - ext4: ensure enough credits in ext4_ext_shift_path_extents + - ext4: refresh the ext4_ext_path struct after dropping i_data_sem. + - fuse: fix page stealing + - x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c + - x86/cpu: Fix migration safety with X86_BUG_NULL_SEL + - x86/irq: Ensure PI wakeup handler is unregistered before module unload + - x86/iopl: Fake iopl(3) CLI/STI usage + - btrfs: clear MISSING device status bit in btrfs_close_one_device + - btrfs: fix lost error handling when replaying directory deletes + - btrfs: call btrfs_check_rw_degradable only if there is a missing device + - KVM: x86/mmu: Drop a redundant, broken remote TLB flush + - KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup + - KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ + handling + - ia64: kprobes: Fix to pass correct trampoline address to the handler + - selinux: fix race condition when computing ocontext SIDs + - ipmi:watchdog: Set panic count to proper value on a panic + - md/raid1: only allocate write behind bio for WriteMostly device + - hwmon: (pmbus/lm25066) Add offset coefficients + - regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is + disabled + - regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default- + dvs-idx property + - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell + - mwifiex: fix division by zero in fw download path + - ath6kl: fix division by zero in send path + - ath6kl: fix control-message timeout + - ath10k: fix control-message timeout + - ath10k: fix division by zero in send path + - PCI: Mark Atheros QCA6174 to avoid bus reset + - rtl8187: fix control-message timeouts + - evm: mark evm_fixmode as __ro_after_init + - ifb: Depend on netfilter alternatively to tc + - platform/surface: aggregator_registry: Add support for Surface Laptop Studio + - mt76: mt7615: fix skb use-after-free on mac reset + - HID: surface-hid: Use correct event registry for managing HID events + - HID: surface-hid: Allow driver matching for target ID 1 devices + - wcn36xx: Fix HT40 capability for 2Ghz band + - wcn36xx: Fix tx_status mechanism + - wcn36xx: Fix (QoS) null data frame bitrate/modulation + - PM: sleep: Do not let "syscore" devices runtime-suspend during system + transitions + - mwifiex: Read a PCI register after writing the TX ring write pointer + - mwifiex: Try waking the firmware until we get an interrupt + - libata: fix checking of DMA state + - dma-buf: fix and rework dma_buf_poll v7 + - wcn36xx: handle connection loss indication + - rsi: fix occasional initialisation failure with BT coex + - rsi: fix key enabled check causing unwanted encryption for vap_id > 0 + - rsi: fix rate mask set leading to P2P failure + - rsi: Fix module dev_oper_mode parameter description + - perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server + - perf/x86/intel/uncore: Fix invalid unit check + - perf/x86/intel/uncore: Fix Intel ICX IIO event constraints + - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP + - ASoC: tegra: Set default card name for Trimslice + - ASoC: tegra: Restore AC97 support + - signal: Remove the bogus sigkill_pending in ptrace_stop + - memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode + - signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT + - soc: samsung: exynos-pmu: Fix compilation when nothing selects + CONFIG_MFD_CORE + - soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id + - soc: fsl: dpio: use the combined functions to protect critical zone + - mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines + - mctp: handle the struct sockaddr_mctp padding fields + - power: supply: max17042_battery: Prevent int underflow in set_soc_threshold + - power: supply: max17042_battery: use VFSOC for capacity when no rsns + - iio: core: fix double free in iio_device_unregister_sysfs() + - iio: core: check return value when calling dev_set_name() + - KVM: arm64: Extract ESR_ELx.EC only + - KVM: x86: Fix recording of guest steal time / preempted status + - KVM: x86: Add helper to consolidate core logic of SET_CPUID{2} flows + - KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use + - KVM: nVMX: Handle dynamic MSR intercept toggling + - can: peak_usb: always ask for BERR reporting for PCAN-USB devices + - can: mcp251xfd: mcp251xfd_irq(): add missing + can_rx_offload_threaded_irq_finish() in case of bus off + - can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport + - can: j1939: j1939_can_recv(): ignore messages with invalid source address + - can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM + - iio: adc: tsc2046: fix scan interval warning + - powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found + - io_uring: honour zeroes as io-wq worker limits + - ring-buffer: Protect ring_buffer_reset() from reentrancy + - serial: core: Fix initializing and restoring termios speed + - ifb: fix building without CONFIG_NET_CLS_ACT + - xen/balloon: add late_initcall_sync() for initial ballooning done + - ovl: fix use after free in struct ovl_aio_req + - ovl: fix filattr copy-up failure + - PCI: pci-bridge-emul: Fix emulation of W1C bits + - PCI: cadence: Add cdns_plat_pcie_probe() missing return + - cxl/pci: Fix NULL vs ERR_PTR confusion + - PCI: aardvark: Do not clear status bits of masked interrupts + - PCI: aardvark: Fix checking for link up via LTSSM state + - PCI: aardvark: Do not unmask unused interrupts + - PCI: aardvark: Fix reporting Data Link Layer Link Active + - PCI: aardvark: Fix configuring Reference clock + - PCI: aardvark: Fix return value of MSI domain .alloc() method + - PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG + - PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated + bridge + - PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge + - PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge + - PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge + - quota: check block number when reading the block in quota file + - quota: correct error number in free_dqentry() + - cifs: To match file servers, make sure the server hostname matches + - cifs: set a minimum of 120s for next dns resolution + - mfd: simple-mfd-i2c: Select MFD_CORE to fix build error + - pinctrl: core: fix possible memory leak in pinctrl_enable() + - coresight: cti: Correct the parameter for pm_runtime_put + - coresight: trbe: Fix incorrect access of the sink specific data + - coresight: trbe: Defer the probe on offline CPUs + - iio: buffer: check return value of kstrdup_const() + - iio: buffer: Fix memory leak in iio_buffers_alloc_sysfs_and_mask() + - iio: buffer: Fix memory leak in __iio_buffer_alloc_sysfs_and_mask() + - iio: buffer: Fix memory leak in iio_buffer_register_legacy_sysfs_groups() + - drivers: iio: dac: ad5766: Fix dt property name + - iio: dac: ad5446: Fix ad5622_write() return value + - iio: ad5770r: make devicetree property reading consistent + - Documentation:devicetree:bindings:iio:dac: Fix val + - USB: serial: keyspan: fix memleak on probe errors + - serial: 8250: fix racy uartclk update + - ksmbd: set unique value to volume serial field in FS_VOLUME_INFORMATION + - io-wq: serialize hash clear with wakeup + - serial: 8250: Fix reporting real baudrate value in c_ospeed field + - Revert "serial: 8250: Fix reporting real baudrate value in c_ospeed field" + - most: fix control-message timeouts + - USB: iowarrior: fix control-message timeouts + - USB: chipidea: fix interrupt deadlock + - power: supply: max17042_battery: Clear status bits in interrupt handler + - component: do not leave master devres group open after bind + - dma-buf: WARN on dmabuf release with pending attachments + - drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2) + - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1 + - drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6 + - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg() + - Bluetooth: fix use-after-free error in lock_sock_nested() + - Bluetooth: call sock_hold earlier in sco_conn_del + - drm/panel-orientation-quirks: add Valve Steam Deck + - rcutorture: Avoid problematic critical section nesting on PREEMPT_RT + - platform/x86: wmi: do not fail if disabling fails + - drm/amdgpu: move iommu_resume before ip init/resume + - MIPS: lantiq: dma: add small delay after reset + - MIPS: lantiq: dma: reset correct number of channel + - locking/lockdep: Avoid RCU-induced noinstr fail + - net: sched: update default qdisc visibility after Tx queue cnt changes + - rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop + - smackfs: Fix use-after-free in netlbl_catmap_walk() + - ath11k: Align bss_chan_info structure with firmware + - crypto: aesni - check walk.nbytes instead of err + - x86/mm/64: Improve stack overflow warnings + - x86: Increase exception stack sizes + - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type + - mwifiex: Properly initialize private structure on interface type changes + - spi: Check we have a spi_device_id for each DT compatible + - fscrypt: allow 256-bit master keys with AES-256-XTS + - drm/amdgpu: Fix MMIO access page fault + - drm/amd/display: Fix null pointer dereference for encoders + - selftests: net: fib_nexthops: Wait before checking reported idle time + - ath11k: Avoid reg rules update during firmware recovery + - ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED + - ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets + - ath10k: high latency fixes for beacon buffer + - octeontx2-pf: Enable promisc/allmulti match MCAM entries. + - media: mt9p031: Fix corrupted frame after restarting stream + - media: netup_unidvb: handle interrupt properly according to the firmware + - media: atomisp: Fix error handling in probe + - media: stm32: Potential NULL pointer dereference in dcmi_irq_thread() + - media: uvcvideo: Set capability in s_param + - media: uvcvideo: Return -EIO for control errors + - media: uvcvideo: Set unique vdev name based in type + - media: vidtv: Fix memory leak in remove + - media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe() + - media: s5p-mfc: Add checking to s5p_mfc_probe(). + - media: videobuf2: rework vb2_mem_ops API + - media: imx: set a media_device bus_info string + - media: rcar-vin: Use user provided buffers when starting + - media: mceusb: return without resubmitting URB in case of -EPROTO error. + - ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK + - rtw88: fix RX clock gate setting while fifo dump + - brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet + - media: rcar-csi2: Add checking to rcsi2_start_receiver() + - ipmi: Disable some operations during a panic + - fs/proc/uptime.c: Fix idle time reporting in /proc/uptime + - kselftests/sched: cleanup the child processes + - ACPICA: Avoid evaluating methods too early during system resume + - cpufreq: Make policy min/max hard requirements + - ice: Move devlink port to PF/VF struct + - media: imx-jpeg: Fix possible null pointer dereference + - media: ipu3-imgu: imgu_fmt: Handle properly try + - media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info + - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte() + - net-sysfs: try not to restart the syscall if it will fail eventually + - drm/amdkfd: rm BO resv on validation to avoid deadlock + - tracefs: Have tracefs directories not set OTH permission bits by default + - tracing: Disable "other" permission bits in the tracefs files + - ath: dfs_pattern_detector: Fix possible null-pointer dereference in + channel_detector_create() + - KVM: arm64: Propagate errors from __pkvm_prot_finalize hypercall + - mmc: moxart: Fix reference count leaks in moxart_probe + - iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value + - ACPI: battery: Accept charges over the design capacity as full + - ACPI: scan: Release PM resources blocked by unused objects + - drm/amd/display: fix null pointer deref when plugging in display + - drm/amdkfd: fix resume error when iommu disabled in Picasso + - net: phy: micrel: make *-skew-ps check more lenient + - leaking_addresses: Always print a trailing newline + - thermal/core: Fix null pointer dereference in thermal_release() + - drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture() + - thermal/drivers/tsens: Add timeout to get_temp_tsens_valid + - block: bump max plugged deferred size from 16 to 32 + - floppy: fix calling platform_device_unregister() on invalid drives + - md: update superblock after changing rdev flags in state_store + - memstick: r592: Fix a UAF bug when removing the driver + - locking/rwsem: Disable preemption for spinning region + - lib/xz: Avoid overlapping memcpy() with invalid input with in-place + decompression + - lib/xz: Validate the value before assigning it to an enum variable + - workqueue: make sysfs of unbound kworker cpumask more clever + - tracing/cfi: Fix cmp_entries_* functions signature mismatch + - mt76: mt7915: fix an off-by-one bound check + - mwl8k: Fix use-after-free in mwl8k_fw_state_machine() + - iwlwifi: change all JnP to NO-160 configuration + - block: remove inaccurate requeue check + - media: allegro: ignore interrupt if mailbox is not initialized + - drm/amdgpu/pm: properly handle sclk for profiling modes on vangogh + - nvmet: fix use-after-free when a port is removed + - nvmet-rdma: fix use-after-free when a port is removed + - nvmet-tcp: fix use-after-free when a port is removed + - nvme: drop scan_lock and always kick requeue list when removing namespaces + - samples/bpf: Fix application of sizeof to pointer + - arm64: vdso32: suppress error message for 'make mrproper' + - PM: hibernate: Get block device exclusively in swsusp_check() + - selftests: kvm: fix mismatched fclose() after popen() + - selftests/bpf: Fix perf_buffer test on system with offline cpus + - iwlwifi: mvm: disable RX-diversity in powersave + - smackfs: use __GFP_NOFAIL for smk_cipso_doi() + - ARM: clang: Do not rely on lr register for stacktrace + - gre/sit: Don't generate link-local addr if addr_gen_mode is + IN6_ADDR_GEN_MODE_NONE + - can: bittiming: can_fixup_bittiming(): change type of tseg1 and alltseg to + unsigned int + - gfs2: Cancel remote delete work asynchronously + - gfs2: Fix glock_hash_walk bugs + - ARM: 9136/1: ARMv7-M uses BE-8, not BE-32 + - tools/latency-collector: Use correct size when writing queue_full_warning + - vrf: run conntrack only in context of lower/physdev for locally generated + packets + - net: annotate data-race in neigh_output() + - ACPI: AC: Quirk GK45 to skip reading _PSR + - ACPI: resources: Add one more Medion model in IRQ override quirk + - btrfs: reflink: initialize return value to 0 in btrfs_extent_same() + - btrfs: do not take the uuid_mutex in btrfs_rm_device + - spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in + bcm_qspi_probe() + - wcn36xx: Correct band/freq reporting on RX + - wcn36xx: Fix packet drop on resume + - Revert "wcn36xx: Enable firmware link monitoring" + - ftrace: do CPU checking after preemption disabled + - inet: remove races in inet{6}_getname() + - x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted + - drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled + - perf/x86/intel: Fix ICL/SPR INST_RETIRED.PREC_DIST encodings + - parisc: fix warning in flush_tlb_all + - task_stack: Fix end_of_stack() for architectures with upwards-growing stack + - erofs: don't trigger WARN() when decompression fails + - parisc/unwind: fix unwinder when CONFIG_64BIT is enabled + - parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling + - netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream + state + - selftests/bpf: Fix strobemeta selftest regression + - fbdev/efifb: Release PCI device's runtime PM ref during FB destroy + - drm/bridge: anx7625: Propagate errors from sp_tx_rst_aux() + - perf/x86/intel/uncore: Fix Intel SPR CHA event constraints + - perf/x86/intel/uncore: Fix Intel SPR IIO event constraints + - perf/x86/intel/uncore: Fix Intel SPR M2PCIE event constraints + - perf/x86/intel/uncore: Fix Intel SPR M3UPI event constraints + - drm/bridge: it66121: Initialize {device,vendor}_ids + - drm/bridge: it66121: Wait for next bridge to be probed + - Bluetooth: fix init and cleanup of sco_conn.timeout_work + - libbpf: Don't crash on object files with no symbol tables + - Bluetooth: hci_uart: fix GPF in h5_recv + - rcu: Fix existing exp request check in sync_sched_exp_online_cleanup() + - MIPS: lantiq: dma: fix burst length for DEU + - x86/xen: Mark cpu_bringup_and_idle() as dead_end_function + - objtool: Handle __sanitize_cov*() tail calls + - net/mlx5: Publish and unpublish all devlink parameters at once + - drm/v3d: fix wait for TMU write combiner flush + - crypto: sm4 - Do not change section of ck and sbox + - virtio-gpu: fix possible memory allocation failure + - lockdep: Let lock_is_held_type() detect recursive read as read + - net: net_namespace: Fix undefined member in key_remove_domain() + - net: phylink: don't call netif_carrier_off() with NULL netdev + - drm: bridge: it66121: Fix return value it66121_probe + - spi: Fixed division by zero warning + - cgroup: Make rebind_subsystems() disable v2 controllers all at once + - wcn36xx: Fix Antenna Diversity Switching + - wilc1000: fix possible memory leak in cfg_scan_result() + - Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync + - drm/amdgpu: Fix crash on device remove/driver unload + - drm/amd/display: Pass display_pipe_params_st as const in DML + - drm/amdgpu: move amdgpu_virt_release_full_gpu to fini_early stage + - crypto: caam - disable pkc for non-E SoCs + - crypto: qat - power up 4xxx device + - Bluetooth: hci_h5: Fix (runtime)suspend issues on RTL8723BS HCIs + - bnxt_en: Check devlink allocation and registration status + - qed: Don't ignore devlink allocation failures + - rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() + - mptcp: do not shrink snd_nxt when recovering + - fortify: Fix dropped strcpy() compile-time write overflow check + - mac80211: twt: don't use potentially unaligned pointer + - cfg80211: always free wiphy specific regdomain + - net/mlx5: Accept devlink user input after driver initialization complete + - net: dsa: rtl8366rb: Fix off-by-one bug + - net: dsa: rtl8366: Fix a bug in deleting VLANs + - bpf/tests: Fix error in tail call limit tests + - ath11k: fix some sleeping in atomic bugs + - ath11k: Avoid race during regd updates + - ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status + - ath11k: Fix memory leak in ath11k_qmi_driver_event_work + - gve: DQO: avoid unused variable warnings + - ath10k: Fix missing frame timestamp for beacon/probe-resp + - ath10k: sdio: Add missing BH locking around napi_schdule() + - drm/ttm: stop calling tt_swapin in vm_access + - arm64: mm: update max_pfn after memory hotplug + - drm/amdgpu: fix warning for overflow check + - libbpf: Fix skel_internal.h to set errno on loader retval < 0 + - media: em28xx: add missing em28xx_close_extension + - media: meson-ge2d: Fix rotation parameter changes detection in + 'ge2d_s_ctrl()' + - media: cxd2880-spi: Fix a null pointer dereference on error handling path + - media: ttusb-dec: avoid release of non-acquired mutex + - media: dvb-usb: fix ununit-value in az6027_rc_query + - media: imx258: Fix getting clock frequency + - media: v4l2-ioctl: S_CTRL output the right value + - media: mtk-vcodec: venc: fix return value when start_streaming fails + - media: TDA1997x: handle short reads of hdmi info frame. + - media: mtk-vpu: Fix a resource leak in the error handling path of + 'mtk_vpu_probe()' + - media: imx-jpeg: Fix the error handling path of 'mxc_jpeg_probe()' + - media: i2c: ths8200 needs V4L2_ASYNC + - media: sun6i-csi: Allow the video device to be open multiple times + - media: radio-wl1273: Avoid card name truncation + - media: si470x: Avoid card name truncation + - media: tm6000: Avoid card name truncation + - media: cx23885: Fix snd_card_free call on null card pointer + - media: atmel: fix the ispck initialization + - scs: Release kasan vmalloc poison in scs_free process + - kprobes: Do not use local variable when creating debugfs file + - crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency + - drm: fb_helper: fix CONFIG_FB dependency + - cpuidle: Fix kobject memory leaks in error paths + - media: em28xx: Don't use ops->suspend if it is NULL + - ath10k: Don't always treat modem stop events as crashes + - ath9k: Fix potential interrupt storm on queue reset + - PM: EM: Fix inefficient states detection + - x86/insn: Use get_unaligned() instead of memcpy() + - EDAC/amd64: Handle three rank interleaving mode + - rcu: Always inline rcu_dynticks_task*_{enter,exit}() + - rcu: Fix rcu_dynticks_curr_cpu_in_eqs() vs noinstr + - netfilter: nft_dynset: relax superfluous check on set updates + - media: venus: fix vpp frequency calculation for decoder + - media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable() + - crypto: ccree - avoid out-of-range warnings from clang + - crypto: qat - detect PFVF collision after ACK + - crypto: qat - disregard spurious PFVF interrupts + - hwrng: mtk - Force runtime pm ops for sleep ops + - ima: fix deadlock when traversing "ima_default_rules". + - b43legacy: fix a lower bounds test + - b43: fix a lower bounds test + - gve: Recover from queue stall due to missed IRQ + - gve: Track RX buffer allocation failures + - mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured + - mmc: sdhci-omap: Fix context restore + - memstick: avoid out-of-range warning + - memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() + - net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE + - hwmon: Fix possible memleak in __hwmon_device_register() + - hwmon: (pmbus/lm25066) Let compiler determine outer dimension of + lm25066_coeff + - ath10k: fix max antenna gain unit + - kernel/sched: Fix sched_fork() access an invalid sched_task_group + - net: fealnx: fix build for UML + - net: intel: igc_ptp: fix build for UML + - net: tulip: winbond-840: fix build for UML + - tcp: switch orphan_count to bare per-cpu counters + - crypto: octeontx2 - set assoclen in aead_do_fallback() + - thermal/core: fix a UAF bug in __thermal_cooling_device_register() + - drm/msm/dsi: do not enable irq handler before powering up the host + - drm/msm: Fix potential Oops in a6xx_gmu_rpmh_init() + - drm/msm: potential error pointer dereference in init() + - drm/msm: unlock on error in get_sched_entity() + - drm/msm: fix potential NULL dereference in cleanup + - drm/msm: uninitialized variable in msm_gem_import() + - net: stream: don't purge sk_error_queue in sk_stream_kill_queues() + - thermal/drivers/qcom/lmh: make QCOM_LMH depends on QCOM_SCM + - mailbox: Remove WARN_ON for async_cb.cb in cmdq_exec_done + - media: ivtv: fix build for UML + - media: ir_toy: assignment to be16 should be of correct type + - mmc: mxs-mmc: disable regulator on error and in the remove function + - io-wq: Remove duplicate code in io_workqueue_create() + - block: ataflop: fix breakage introduced at blk-mq refactoring + - platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning + - mailbox: mtk-cmdq: Validate alias_id on probe + - mailbox: mtk-cmdq: Fix local clock ID usage + - ACPI: PM: Turn off unused wakeup power resources + - ACPI: PM: Fix sharing of wakeup power resources + - drm/amdkfd: Fix an inappropriate error handling in allloc memory of gpu + - mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event + - mt76: mt7915: fix endianness warning in mt7915_mac_add_txs_skb + - mt76: mt7921: fix endianness warning in mt7921_update_txs + - mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi + - mt76: mt7915: fix info leak in mt7915_mcu_set_pre_cal() + - mt76: connac: fix mt76_connac_gtk_rekey_tlv usage + - mt76: fix build error implicit enumeration conversion + - mt76: mt7921: fix survey-dump reporting + - mt76: mt76x02: fix endianness warnings in mt76x02_mac.c + - mt76: mt7921: Fix out of order process by invalid event pkt + - mt76: mt7915: fix potential overflow of eeprom page index + - mt76: mt7915: fix bit fields for HT rate idx + - mt76: mt7921: fix dma hang in rmmod + - mt76: connac: fix GTK rekey offload failure on WPA mixed mode + - mt76: overwrite default reg_ops if necessary + - mt76: mt7921: report HE MU radiotap + - mt76: mt7921: fix firmware usage of RA info using legacy rates + - mt76: mt7921: fix kernel warning from cfg80211_calculate_bitrate + - mt76: mt7921: always wake device if necessary in debugfs + - mt76: mt7915: fix hwmon temp sensor mem use-after-free + - mt76: mt7615: fix hwmon temp sensor mem use-after-free + - mt76: mt7915: fix possible infinite loop release semaphore + - mt76: mt7921: fix retrying release semaphore without end + - mt76: mt7615: fix monitor mode tear down crash + - mt76: connac: fix possible NULL pointer dereference in + mt76_connac_get_phy_mode_v2 + - mt76: mt7915: fix sta_rec_wtbl tag len + - mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req() + - rsi: stop thread firstly in rsi_91x_init() error handling + - mwifiex: Send DELBA requests according to spec + - iwlwifi: mvm: reset PM state on unsuccessful resume + - iwlwifi: pnvm: don't kmemdup() more than we have + - iwlwifi: pnvm: read EFI data only if long enough + - net: enetc: unmap DMA in enetc_send_cmd() + - phy: micrel: ksz8041nl: do not use power down mode + - nbd: Fix use-after-free in pid_show + - nvme-rdma: fix error code in nvme_rdma_setup_ctrl + - PM: hibernate: fix sparse warnings + - clocksource/drivers/timer-ti-dm: Select TIMER_OF + - x86/sev: Fix stack type check in vc_switch_off_ist() + - drm/msm: Fix potential NULL dereference in DPU SSPP + - drm/msm/dsi: fix wrong type in msm_dsi_host + - crypto: tcrypt - fix skcipher multi-buffer tests for 1420B blocks + - smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi + - KVM: selftests: Fix nested SVM tests when built with clang + - libbpf: Fix memory leak in btf__dedup() + - bpftool: Avoid leaking the JSON writer prepared for program metadata + - libbpf: Fix overflow in BTF sanity checks + - libbpf: Fix BTF header parsing checks + - mt76: mt7615: mt7622: fix ibss and meshpoint + - s390/gmap: validate VMA in __gmap_zap() + - s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap() + - s390/mm: validate VMA in PGSTE manipulation functions + - s390/mm: fix VMA and page table handling code in storage key handling + functions + - s390/uv: fully validate the VMA before calling follow_page() + - KVM: s390: pv: avoid double free of sida page + - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm + - irq: mips: avoid nested irq_enter() + - net: dsa: avoid refcount warnings when ->port_{fdb,mdb}_del returns error + - ARM: 9142/1: kasan: work around LPAE build warning + - ath10k: fix module load regression with iram-recovery feature + - block: ataflop: more blk-mq refactoring fixes + - blk-cgroup: synchronize blkg creation against policy deactivation + - libbpf: Fix off-by-one bug in bpf_core_apply_relo() + - tpm: fix Atmel TPM crash caused by too frequent queries + - tpm_tis_spi: Add missing SPI ID + - libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() + - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb() + - tracing: Fix missing trace_boot_init_histograms kstrdup NULL checks + - cpufreq: intel_pstate: Fix cpu->pstate.turbo_freq initialization + - spi: spi-rpc-if: Check return value of rpcif_sw_init() + - samples/kretprobes: Fix return value if register_kretprobe() failed + - KVM: s390: Fix handle_sske page fault handling + - libertas_tf: Fix possible memory leak in probe and disconnect + - libertas: Fix possible memory leak in probe and disconnect + - wcn36xx: add proper DMA memory barriers in rx path + - wcn36xx: Fix discarded frames due to wrong sequence number + - bpf: Avoid races in __bpf_prog_run() for 32bit arches + - bpf: Fixes possible race in update_prog_stats() for 32bit arches + - wcn36xx: Channel list update before hardware scan + - drm/amdgpu: fix a potential memory leak in amdgpu_device_fini_sw() + - drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits + - selftests/bpf: Fix fd cleanup in sk_lookup test + - selftests/bpf: Fix memory leak in test_ima + - sctp: allow IP fragmentation when PLPMTUD enters Error state + - sctp: reset probe_timer in sctp_transport_pl_update + - sctp: subtract sctphdr len in sctp_transport_pl_hlen + - sctp: return true only for pathmtu update in sctp_transport_pl_toobig + - net: amd-xgbe: Toggle PLL settings during rate change + - ipmi: kcs_bmc: Fix a memory leak in the error handling path of + 'kcs_bmc_serio_add_device()' + - nfp: fix NULL pointer access when scheduling dim work + - nfp: fix potential deadlock when canceling dim work + - net: phylink: avoid mvneta warning when setting pause parameters + - net: bridge: fix uninitialized variables when BRIDGE_CFM is disabled + - selftests: net: bridge: update IGMP/MLD membership interval value + - crypto: pcrypt - Delay write to padata->info + - selftests/bpf: Fix fclose/pclose mismatch in test_progs + - udp6: allow SO_MARK ctrl msg to affect routing + - ibmvnic: don't stop queue in xmit + - ibmvnic: Process crqs after enabling interrupts + - ibmvnic: delay complete() + - selftests: mptcp: fix proto type in link_failure tests + - skmsg: Lose offset info in sk_psock_skb_ingress + - cgroup: Fix rootcg cpu.stat guest double counting + - bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. + - bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit. + - of: unittest: fix EXPECT text for gpio hog errors + - cpufreq: Fix parameter in parse_perf_domain() + - staging: r8188eu: fix memory leak in rtw_set_key + - arm64: dts: meson: sm1: add Ethernet PHY reset line for ODROID-C4/HC4 + - iio: st_sensors: disable regulators after device unregistration + - RDMA/rxe: Fix wrong port_cap_flags + - ARM: dts: BCM5301X: Fix memory nodes names + - arm64: dts: broadcom: bcm4908: Fix UART clock name + - clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths + - scsi: pm80xx: Fix lockup in outbound queue management + - scsi: qla2xxx: edif: Use link event to wake up app + - scsi: lpfc: Fix NVMe I/O failover to non-optimized path + - ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc() + - arm64: dts: rockchip: Fix GPU register width for RK3328 + - ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY + - RDMA/bnxt_re: Fix query SRQ failure + - arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes + - arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe + - arm64: dts: ti: j7200-main: Fix "vendor-id"/"device-id" properties of pcie + node + - arm64: dts: ti: j7200-main: Fix "bus-range" upto 256 bus number for PCIe + - arm64: dts: meson-g12a: Fix the pwm regulator supply properties + - arm64: dts: meson-g12b: Fix the pwm regulator supply properties + - arm64: dts: meson-sm1: Fix the pwm regulator supply properties + - bus: ti-sysc: Fix timekeeping_suspended warning on resume + - ARM: dts: at91: tse850: the emac<->phy interface is rmii + - arm64: dts: qcom: sc7180: Base dynamic CPU power coefficients in reality + - soc: qcom: llcc: Disable MMUHWT retention + - arm64: dts: qcom: sc7280: fix display port phy reg property + - scsi: dc395: Fix error case unwinding + - MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT + - JFS: fix memleak in jfs_mount + - pinctrl: renesas: rzg2l: Fix missing port register 21h + - ASoC: wcd9335: Use correct version to initialize Class H + - arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock + - arm64: dts: renesas: beacon: Fix Ethernet PHY mode + - iommu/mediatek: Fix out-of-range warning with clang + - arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000 + - iommu/dma: Fix sync_sg with swiotlb + - iommu/dma: Fix arch_sync_dma for map + - ALSA: hda: Reduce udelay() at SKL+ position reporting + - ALSA: hda: Use position buffer for SKL+ again + - ALSA: usb-audio: Fix possible race at sync of urb completions + - soundwire: debugfs: use controller id and link_id for debugfs + - power: reset: at91-reset: check properly the return value of devm_of_iomap + - scsi: ufs: core: Fix ufshcd_probe_hba() prototype to match the definition + - scsi: ufs: core: Stop clearing UNIT ATTENTIONS + - scsi: megaraid_sas: Fix concurrent access to ISR between IRQ polling and + real interrupt + - scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp() + - driver core: Fix possible memory leak in device_link_add() + - arm: dts: omap3-gta04a4: accelerometer irq fix + - ASoC: SOF: topology: do not power down primary core during topology removal + - iio: st_pressure_spi: Add missing entries SPI to device ID table + - soc/tegra: Fix an error handling path in tegra_powergate_power_up() + - memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe + - clk: at91: check pmc node status before registering syscore ops + - powerpc/mem: Fix arch/powerpc/mm/mem.c:53:12: error: no previous prototype + for 'create_section_mapping' + - video: fbdev: chipsfb: use memset_io() instead of memset() + - powerpc: fix unbalanced node refcount in check_kvm_guest() + - powerpc/paravirt: correct preempt debug splat in vcpu_is_preempted() + - serial: 8250_dw: Drop wrong use of ACPI_PTR() + - usb: gadget: hid: fix error code in do_config() + - power: supply: rt5033_battery: Change voltage values to µV + - power: supply: max17040: fix null-ptr-deref in max17040_probe() + - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn() + - RDMA/mlx4: Return missed an error if device doesn't support steering + - usb: musb: select GENERIC_PHY instead of depending on it + - staging: most: dim2: do not double-register the same device + - staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC + - RDMA/core: Set sgtable nents when using ib_dma_virt_map_sg() + - dyndbg: make dyndbg a known cli param + - powerpc/perf: Fix cycles/instructions as PM_CYC/PM_INST_CMPL in power10 + - pinctrl: renesas: checker: Fix off-by-one bug in drive register check + - ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz + - ARM: dts: stm32: fix STUSB1600 Type-C irq level on stm32mp15xx-dkx + - ARM: dts: stm32: fix SAI sub nodes register range + - ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 + - ASoC: cs42l42: Always configure both ASP TX channels + - ASoC: cs42l42: Correct some register default values + - ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER + - soc: qcom: rpmhpd: Make power_on actually enable the domain + - soc: qcom: socinfo: add two missing PMIC IDs + - iio: buffer: Fix double-free in iio_buffers_alloc_sysfs_and_mask() + - usb: typec: STUSB160X should select REGMAP_I2C + - iio: adis: do not disabe IRQs in 'adis_init()' + - soundwire: bus: stop dereferencing invalid slave pointer + - scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer + - scsi: lpfc: Wait for successful restart of SLI3 adapter during host sg_reset + - serial: imx: fix detach/attach of serial console + - usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init + - usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled + - usb: dwc2: drd: reset current session before setting the new one + - powerpc/booke: Disable STRICT_KERNEL_RWX, DEBUG_PAGEALLOC and KFENCE + - usb: dwc3: gadget: Skip resizing EP's TX FIFO if already resized + - firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available() + - soc: qcom: rpmhpd: fix sm8350_mxc's peer domain + - soc: qcom: apr: Add of_node_put() before return + - arm64: dts: qcom: pmi8994: Fix "eternal"->"external" typo in WLED node + - arm64: dts: qcom: sdm845: Use RPMH_CE_CLK macro directly + - arm64: dts: qcom: sdm845: Fix Qualcomm crypto engine bus clock + - pinctrl: equilibrium: Fix function addition in multiple groups + - ASoC: topology: Fix stub for snd_soc_tplg_component_remove() + - phy: qcom-qusb2: Fix a memory leak on probe + - phy: ti: gmii-sel: check of_get_address() for failure + - phy: qcom-qmp: another fix for the sc8180x PCIe definition + - phy: qcom-snps: Correct the FSEL_MASK + - phy: Sparx5 Eth SerDes: Fix return value check in sparx5_serdes_probe() + - serial: xilinx_uartps: Fix race condition causing stuck TX + - clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL + - clk: at91: clk-master: check if div or pres is zero + - clk: at91: clk-master: fix prescaler logic + - HID: u2fzero: clarify error check and length calculations + - HID: u2fzero: properly handle timeouts in usb_submit_urb + - powerpc/nohash: Fix __ptep_set_access_flags() and ptep_set_wrprotect() + - powerpc/book3e: Fix set_memory_x() and set_memory_nx() + - powerpc/44x/fsp2: add missing of_node_put + - powerpc/xmon: fix task state output + - ALSA: oxfw: fix functional regression for Mackie Onyx 1640i in v5.14 or + later + - iommu/dma: Fix incorrect error return on iommu deferred attach + - powerpc: Don't provide __kernel_map_pages() without + ARCH_SUPPORTS_DEBUG_PAGEALLOC + - ASoC: cs42l42: Correct configuring of switch inversion from ts-inv + - RDMA/hns: Fix initial arm_st of CQ + - RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility + - ASoC: rsnd: Fix an error handling path in 'rsnd_node_count()' + - serial: cpm_uart: Protect udbg definitions by CONFIG_SERIAL_CPM_CONSOLE + - virtio_ring: check desc == NULL when using indirect with packed + - vdpa/mlx5: Fix clearing of VIRTIO_NET_F_MAC feature bit + - mips: cm: Convert to bitfield API to fix out-of-bounds access + - power: supply: bq27xxx: Fix kernel crash on IRQ handler register error + - RDMA/core: Require the driver to set the IOVA correctly during rereg_mr + - apparmor: fix error check + - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined + - mtd: rawnand: intel: Fix potential buffer overflow in probe + - nfsd: don't alloc under spinlock in rpc_parse_scope_id + - rtc: ds1302: Add SPI ID table + - rtc: ds1390: Add SPI ID table + - rtc: pcf2123: Add SPI ID table + - remoteproc: imx_rproc: Fix TCM io memory type + - i2c: i801: Use PCI bus rescan mutex to protect P2SB access + - dmaengine: idxd: move out percpu_ref_exit() to ensure it's outside + submission + - rtc: mcp795: Add SPI ID table + - Input: ariel-pwrbutton - add SPI device ID table + - i2c: mediatek: fixing the incorrect register offset + - NFS: Default change_attr_type to NFS4_CHANGE_TYPE_IS_UNDEFINED + - NFS: Don't set NFS_INO_DATA_INVAL_DEFER and NFS_INO_INVALID_DATA + - NFS: Ignore the directory size when marking for revalidation + - NFS: Fix dentry verifier races + - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds + - drm/bridge/lontium-lt9611uxc: fix provided connector suport + - drm/plane-helper: fix uninitialized variable reference + - PCI: aardvark: Don't spam about PIO Response Status + - PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge + - opp: Fix return in _opp_add_static_v2() + - NFS: Fix deadlocks in nfs_scan_commit_list() + - sparc: Add missing "FORCE" target when using if_changed + - fs: orangefs: fix error return code of orangefs_revalidate_lookup() + - Input: st1232 - increase "wait ready" timeout + - drm/bridge: nwl-dsi: Add atomic_get_input_bus_fmts + - mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare() + - PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation + - mtd: rawnand: arasan: Prevent an unsupported configuration + - mtd: core: don't remove debugfs directory if device is in use + - remoteproc: Fix a memory leak in an error handling path in + 'rproc_handle_vdev()' + - rtc: rv3032: fix error handling in rv3032_clkout_set_rate() + - dmaengine: at_xdmac: call at_xdmac_axi_config() on resume path + - dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro + - dmaengine: stm32-dma: fix stm32_dma_get_max_width + - NFS: Fix up commit deadlocks + - NFS: Fix an Oops in pnfs_mark_request_commit() + - Fix user namespace leak + - auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string + - auxdisplay: ht16k33: Connect backlight to fbdev + - auxdisplay: ht16k33: Fix frame buffer device blanking + - soc: fsl: dpaa2-console: free buffer before returning from + dpaa2_console_read + - netfilter: nfnetlink_queue: fix OOB when mac header was cleared + - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` + - dmaengine: tegra210-adma: fix pm runtime unbalance + - dmanegine: idxd: fix resource free ordering on driver removal + - dmaengine: idxd: reconfig device after device reset command + - signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL) + - m68k: set a default value for MEMORY_RESERVE + - watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT + - ar7: fix kernel builds for compiler test + - scsi: target: core: Remove from tmr_list during LUN unlink + - scsi: qla2xxx: Relogin during fabric disturbance + - scsi: qla2xxx: Fix gnl list corruption + - scsi: qla2xxx: Turn off target reset during issue_lip + - scsi: qla2xxx: edif: Fix app start fail + - scsi: qla2xxx: edif: Fix app start delay + - scsi: qla2xxx: edif: Flush stale events and msgs on session down + - scsi: qla2xxx: edif: Increase ELS payload + - scsi: qla2xxx: edif: Fix EDIF bsg + - NFSv4: Fix a regression in nfs_set_open_stateid_locked() + - dmaengine: idxd: fix resource leak on dmaengine driver disable + - i2c: xlr: Fix a resource leak in the error handling path of + 'xlr_i2c_probe()' + - gpio: realtek-otto: fix GPIO line IRQ offset + - xen-pciback: Fix return in pm_ctrl_init() + - nbd: fix max value for 'first_minor' + - nbd: fix possible overflow for 'first_minor' in nbd_dev_add() + - io-wq: fix max-workers not correctly set on multi-node system + - net: davinci_emac: Fix interrupt pacing disable + - kselftests/net: add missed icmp.sh test to Makefile + - kselftests/net: add missed setup_loopback.sh/setup_veth.sh to Makefile + - kselftests/net: add missed SRv6 tests + - kselftests/net: add missed vrf_strict_mode_test.sh test to Makefile + - kselftests/net: add missed toeplitz.sh/toeplitz_client.sh to Makefile + - ethtool: fix ethtool msg len calculation for pause stats + - openrisc: fix SMP tlb flush NULL pointer dereference + - net: vlan: fix a UAF in vlan_dev_real_dev() + - net: dsa: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge + - ice: Fix replacing VF hardware MAC to existing MAC filter + - ice: Fix not stopping Tx queues for VFs + - kdb: Adopt scheduler's task classification + - ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses + - PCI: j721e: Fix j721e_pcie_probe() error path + - nvdimm/btt: do not call del_gendisk() if not needed + - scsi: bsg: Fix errno when scsi_bsg_register_queue() fails + - scsi: ufs: ufshpb: Use proper power management API + - scsi: ufs: core: Fix NULL pointer dereference + - scsi: ufs: ufshpb: Properly handle max-single-cmd + - drm/nouveau/svm: Fix refcount leak bug and missing check against null bug + - nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned + - block/ataflop: use the blk_cleanup_disk() helper + - block/ataflop: add registration bool before calling del_gendisk() + - block/ataflop: provide a helper for cleanup up an atari disk + - ataflop: remove ataflop_probe_lock mutex + - PCI: Do not enable AtomicOps on VFs + - cpufreq: intel_pstate: Clear HWP desired on suspend/shutdown and offline + - net: phy: fix duplex out of sync problem while changing settings + - block: fix device_add_disk() kobject_create_and_add() error handling + - drm/ttm: remove ttm_bo_vm_insert_huge() + - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed + - octeontx2-pf: select CONFIG_NET_DEVLINK + - ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer + - mfd: core: Add missing of_node_put for loop iteration + - mfd: cpcap: Add SPI device ID table + - mfd: sprd: Add SPI device ID table + - mfd: altera-sysmgr: Fix a mistake caused by resource_size conversion + - ACPI: PM: Fix device wakeup power reference counting error + - libbpf: Fix lookup_and_delete_elem_flags error reporting + - selftests/bpf/xdp_redirect_multi: Put the logs to tmp folder + - selftests/bpf/xdp_redirect_multi: Use arping to accurate the arp number + - selftests/bpf/xdp_redirect_multi: Give tcpdump a chance to terminate cleanly + - selftests/bpf/xdp_redirect_multi: Limit the tests in netns + - drm: fb_helper: improve CONFIG_FB dependency + - Revert "drm/imx: Annotate dma-fence critical section in commit path" + - drm/amdgpu/powerplay: fix sysfs_emit/sysfs_emit_at handling + - can: etas_es58x: es58x_rx_err_msg(): fix memory leak in error path + - can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for + mcp251xfd_chip_rx_int_enable() + - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and + zs_unregister_migration() + - zram: off by one in read_block_state() + - perf bpf: Add missing free to bpf_event__print_bpf_prog_info() + - llc: fix out-of-bound array index in llc_sk_dev_hash() + - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails + - litex_liteeth: Fix a double free in the remove function + - arm64: arm64_ftr_reg->name may not be a human-readable string + - arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions + - bpf, sockmap: Remove unhash handler for BPF sockmap usage + - bpf, sockmap: Fix race in ingress receive verdict with redirect to self + - bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding + - bpf, sockmap: sk_skb data_end access incorrect when src_reg = dst_reg + - dmaengine: stm32-dma: fix burst in case of unaligned memory address + - dmaengine: stm32-dma: avoid 64-bit division in stm32_dma_get_max_width + - gve: Fix off by one in gve_tx_timeout() + - drm/i915/fb: Fix rounding error in subsampled plane size calculation + - init: make unknown command line param message clearer + - seq_file: fix passing wrong private data + - drm/amdgpu: fix uvd crash on Polaris12 during driver unloading + - net: dsa: mv88e6xxx: Don't support >1G speeds on 6191X on ports other than + 10 + - net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any + - net: hns3: fix ROCE base interrupt vector initialization bug + - net: hns3: fix pfc packet number incorrect after querying pfc parameters + - net: hns3: fix kernel crash when unload VF while it is being reset + - net: hns3: allow configure ETS bandwidth of all TCs + - net: stmmac: allow a tc-taprio base-time of zero + - net: ethernet: ti: cpsw_ale: Fix access to un-initialized memory + - net: marvell: mvpp2: Fix wrong SerDes reconfiguration order + - vsock: prevent unnecessary refcnt inc for nonblocking connect + - net/smc: fix sk_refcnt underflow on linkdown and fallback + - cxgb4: fix eeprom len when diagnostics not implemented + - selftests/net: udpgso_bench_rx: fix port argument + - thermal: int340x: fix build on 32-bit targets + - smb3: do not error on fsync when readonly + - ARM: 9155/1: fix early early_iounmap() + - ARM: 9156/1: drop cc-option fallbacks for architecture selection + - parisc: Fix backtrace to always include init funtion names + - parisc: Flush kernel data mapping in set_pte_at() when installing pte for + user page + - MIPS: fix duplicated slashes for Platform file path + - MIPS: fix *-pkg builds for loongson2ef platform + - MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL + - x86/mce: Add errata workaround for Skylake SKX37 + - PCI/MSI: Move non-mask check back into low level accessors + - PCI/MSI: Destroy sysfs before freeing entries + - KVM: x86: move guest_pv_has out of user_access section + - posix-cpu-timers: Clear task::posix_cputimers_work in copy_process() + - irqchip/sifive-plic: Fixup EOI failed when masked + - f2fs: should use GFP_NOFS for directory inodes + - f2fs: include non-compressed blocks in compr_written_block + - f2fs: fix UAF in f2fs_available_free_memory + - ceph: fix mdsmap decode when there are MDS's beyond max_mds + - erofs: fix unsafe pagevec reuse of hooked pclusters + - drm/i915/guc: Fix blocked context accounting + - block: Hold invalidate_lock in BLKDISCARD ioctl + - block: Hold invalidate_lock in BLKZEROOUT ioctl + - block: Hold invalidate_lock in BLKRESETZONE ioctl + - ksmbd: Fix buffer length check in fsctl_validate_negotiate_info() + - ksmbd: don't need 8byte alignment for request length in ksmbd_check_message + - dmaengine: ti: k3-udma: Set bchan to NULL if a channel request fail + - dmaengine: ti: k3-udma: Set r/tchan or rflow to NULL if request fail + - dmaengine: bestcomm: fix system boot lockups + - net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE + - 9p/net: fix missing error check in p9_check_errors + - mm/filemap.c: remove bogus VM_BUG_ON + - memcg: prohibit unconditional exceeding the limit of dying tasks + - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks + - mm, oom: do not trigger out_of_memory from the #PF + - mm, thp: lock filemap when truncating page cache + - mm, thp: fix incorrect unmap behavior for private pages + - mfd: dln2: Add cell for initializing DLN2 ADC + - video: backlight: Drop maximum brightness override for brightness zero + - bcache: fix use-after-free problem in bcache_device_free() + - bcache: Revert "bcache: use bvec_virt" + - PM: sleep: Avoid calling put_device() under dpm_list_mtx + - s390/cpumf: cpum_cf PMU displays invalid value after hotplug remove + - s390/cio: check the subchannel validity for dev_busid + - s390/tape: fix timer initialization in tape_std_assign() + - s390/ap: Fix hanging ioctl caused by orphaned replies + - s390/cio: make ccw_device_dma_* more robust + - remoteproc: elf_loader: Fix loading segment when is_iomem true + - remoteproc: Fix the wrong default value of is_iomem + - remoteproc: imx_rproc: Fix ignoring mapping vdev regions + - remoteproc: imx_rproc: Fix rsc-table name + - mtd: rawnand: fsmc: Fix use of SM ORDER + - mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines + - powerpc/vas: Fix potential NULL pointer dereference + - powerpc/bpf: Fix write protecting JIT code + - powerpc/32e: Ignore ESR in instruction storage interrupt handler + - powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload + - powerpc/security: Use a mutex for interrupt exit code patching + - powerpc/64s/interrupt: Fix check_return_regs_valid() false positive + - powerpc/pseries/mobility: ignore ibm, platform-facilities updates + - powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n + - drm/sun4i: Fix macros in sun8i_csc.h + - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros + - PCI: aardvark: Fix PCIe Max Payload Size setting + - SUNRPC: Partial revert of commit 6f9f17287e78 + - drm/amd/display: Look at firmware version to determine using dmub on dcn21 + - media: vidtv: move kfree(dvb) to vidtv_bridge_dev_release() + - cifs: fix memory leak of smb3_fs_context_dup::server_hostname + - ath10k: fix invalid dma_addr_t token assignment + - mmc: moxart: Fix null pointer dereference on pointer host + - selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage + - selftests/bpf: Fix also no-alu32 strobemeta selftest + - arch/cc: Introduce a function to check for confidential computing features + - x86/sev: Add an x86 version of cc_platform_has() + - x86/sev: Make the #VC exception stacks part of the default stacks storage + - media: videobuf2: always set buffer vb2 pointer + - media: videobuf2-dma-sg: Fix buf->vb NULL pointer dereference + - Linux 5.15.3 + + * kernel panic: NULL pointer dereference in wb_timer_f() (LP: #1947557) // + Jammy update: v5.15.3 upstream stable release (LP: #1951822) + - blk-wbt: prevent NULL pointer dereference in wb_timer_fn + + * Medion Notebook Keyboard not working (LP: #1909814) // Jammy update: v5.15.3 + upstream stable release (LP: #1951822) + - ACPI: resources: Add DMI-based legacy IRQ override quirk + + * Enable CONFIG_INTEL_IOMMU_DEFAULT_ON and + CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON on jammy 5.15 (LP: #1951440) + - [Config] enable Intel DMA remapping options by default + + * Thinkpad E14 Gen2: Kernel panic with trackpad and trackpoint enabled + (LP: #1945590) + - SAUCE: Input: elantech - Fix stack out of bound access in + elantech_change_report_id() + + * Miscellaneous Ubuntu changes + - SAUCE: LSM: Specify which LSM to display (using struct cred as input) + - SAUCE: selftests/seccomp: fix check of fds being assigned + - [Config] enable SUNRPC_DISABLE_INSECURE_ENCTYPES + - [Config] updateconfigs following v5.15.3, v5.15.4 import + + * Miscellaneous upstream changes + - binder: use cred instead of task for selinux checks + - binder: use cred instead of task for getsecid + - Revert "UBUNTU: SAUCE: storvsc: use small sg_tablesize on x86" + + -- Paolo Pisati Mon, 22 Nov 2021 13:14:15 +0100 + +linux (5.15.0-11.11) jammy; urgency=medium + + * jammy/linux: 5.15.0-11.11 -proposed tracker (LP: #1950948) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * OOPs on boot: invalid opcode: 0000 [#1] SMP NOPTI (LP: #1942215) + - SAUCE: ACPICA: prevent out-of-bound access with buggy DSDT + - [Config] disable UBSAN + - SAUCE: ACPICA: avoid accessing operands out-of-bounds + + * Jammy update: v5.15.2 upstream stable release (LP: #1950949) + - KVM: x86: avoid warning with -Wbitwise-instead-of-logical + - Revert "x86/kvm: fix vcpu-id indexed array sizes" + - usb: ehci: handshake CMD_RUN instead of STS_HALT + - usb: gadget: Mark USB_FSL_QE broken on 64-bit + - usb: musb: Balance list entry in musb_gadget_queue + - usb-storage: Add compatibility quirk flags for iODD 2531/2541 + - Revert "proc/wchan: use printk format instead of lookup_symbol_name()" + - binder: use euid from cred instead of using task + - binder: don't detect sender/target during buffer cleanup + - kfence: always use static branches to guard kfence_alloc() + - kfence: default to dynamic branch instead of static keys mode + - btrfs: fix lzo_decompress_bio() kmap leakage + - staging: rtl8712: fix use-after-free in rtl8712_dl_fw + - isofs: Fix out of bound access for corrupted isofs image + - comedi: dt9812: fix DMA buffers on stack + - comedi: ni_usb6501: fix NULL-deref in command paths + - comedi: vmk80xx: fix transfer-buffer overflows + - comedi: vmk80xx: fix bulk-buffer overflow + - comedi: vmk80xx: fix bulk and interrupt message timeouts + - staging: r8712u: fix control-message timeout + - staging: rtl8192u: fix control-message timeouts + - staging: r8188eu: fix memleak in rtw_wx_set_enc_ext + - media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init + - rsi: fix control-message timeout + - Linux 5.15.2 + + * reuseport_bpf_numa in net from ubuntu_kernel_selftests fails on ppc64le + (LP: #1867570) + - selftests/net: Fix reuseport_bpf_numa by skipping unavailable nodes + + * Miscellaneous Ubuntu changes + - packaging: switch getabis to the linux package name + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (no-up) rename the adv7511 drm driver to adv7511_drm" + - Revert "UBUNTU: SAUCE: drm/i915/dp: Use max params for older panels" + - Revert "UBUNTU: SAUCE: i915: Fix build error due to missing struct + definition" + - selftests/core: fix conflicting types compile error for close_range() + - selftests: net: test_vxlan_under_vrf: fix HV connectivity test + - Revert "UBUNTU: SAUCE: ACPICA: prevent out-of-bound access with buggy DSDT" + + -- Paolo Pisati Mon, 15 Nov 2021 10:12:47 +0100 + +linux (5.15.0-10.10) jammy; urgency=medium + + * jammy/linux: 5.15.0-10.10 -proposed tracker (LP: #1950133) + + * Jammy update: v5.15.1 upstream stable release (LP: #1950131) + - sfc: Fix reading non-legacy supported link modes + - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt() + - Revert "xhci: Set HCD flag to defer primary roothub registration" + - Revert "usb: core: hcd: Add support for deferring roothub registration" + - drm/amdkfd: fix boot failure when iommu is disabled in Picasso. + - Revert "soc: imx: gpcv2: move reset assert after requesting domain power up" + - ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" + - Revert "wcn36xx: Disable bmps when encryption is disabled" + - drm/amdgpu: revert "Add autodump debugfs node for gpu reset v8" + - drm/amd/display: Revert "Directly retrain link from debugfs" + - Revert "drm/i915/gt: Propagate change in error status to children on unhold" + - ALSA: usb-audio: Add quirk for Audient iD14 + - Linux 5.15.1 + + * Miscellaneous Ubuntu changes + - packaging: fixup previous ABI/spin to -9.9 + - [Packaging] Drop unused d-i build-deps and packaging + - [Packaging] Drop now unsupported d-i/ input files + + * Miscellaneous upstream changes + - selftests: net: properly support IPv6 in GSO GRE test + - signal: Add SA_IMMUTABLE to ensure forced siganls do not get changed + + -- Paolo Pisati Mon, 08 Nov 2021 14:43:24 +0100 + +linux (5.15.0-9.9) jammy; urgency=medium + + * jammy/linux: 5.15.0-1.1 -proposed tracker (LP: #1949876) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + - [Packaging] update Ubuntu.md + + * Add F81966 watchdog support (LP: #1949063) + - SAUCE: ODM: watchdog: f71808e_wdt: Add F81966 support + + * Miscellaneous Ubuntu changes + - [Packaging] Rewrite debian/scripts/misc/insert-changes.pl in Python + - [Packaging] change source package name to linux + + -- Andrea Righi Thu, 04 Nov 2021 18:47:19 +0100 + +linux (5.15.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Thu, 04 Nov 2021 16:47:16 +0100 + +linux-unstable (5.15.0-8.8) jammy; urgency=medium + + * jammy/linux-unstable: 5.15.0-8.8 -proposed tracker (LP: #1949436) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Drop "UBUNTU: SAUCE: cachefiles: Page leaking in + cachefiles_read_backing_file while vmscan is active" (LP: #1947709) + - Revert "UBUNTU: SAUCE: cachefiles: Page leaking in + cachefiles_read_backing_file while vmscan is active" + + * Add l2tp.sh in net from ubuntu_kernel_selftests back (LP: #1934293) + - Revert "UBUNTU: SAUCE: selftests/net -- disable l2tp.sh test" + + * Check for changes relevant for security certifications (LP: #1945989) + - [Packaging] Add fips-checks as part of finalchecks + + * Add final-checks to check certificates (LP: #1947174) + - [Packaging] Add system trusted and revocation keys final check + + * Can only reach PC3 when ethernet is plugged r8169 (LP: #1946433) + - r8169: Enable chip-specific ASPM regardless of PCIe ASPM status + - PCI/ASPM: Introduce a new helper to report ASPM capability + - r8169: Implement dynamic ASPM mechanism + + * rtw89 kernel module for Realtek 8852 wifi is missing (LP: #1945967) + - rtw89: add Realtek 802.11ax driver + - rtw89: Remove redundant check of ret after call to rtw89_mac_enable_bb_rf + - rtw89: fix return value check in rtw89_cam_send_sec_key_cmd() + - rtw89: remove unneeded semicolon + - [Config] RTW89=m + + * Fix A yellow screen pops up in an instant (< 1 second) and then disappears + before loading the system (LP: #1945932) + - drm/i915: Stop force enabling pipe bottom color gammma/csc + + * disable CONFIG_KFENCE_STATIC_KEYS in linux 5.15 (LP: #1948038) + - [Config] disable CONFIG_KFENCE_STATIC_KEYS + + * Miscellaneous Ubuntu changes + - [Debian] Remove old and unused firmware helper scripts + - [Packaging] Replace Perl oneliner with Bash statements + - rebase to v5.15 + + [ Upstream Kernel Changes ] + + * Rebase to v5.15 + + -- Paolo Pisati Tue, 02 Nov 2021 08:29:45 +0100 + +linux-unstable (5.15.0-7.7) jammy; urgency=medium + + * jammy/linux-unstable: 5.15.0-7.7 -proposed tracker (LP: #1948770) + + * Miscellaneous Ubuntu changes + - [Config] Temporarily disable signing for ppc64el and s390x + - packaging: switch release to Jammy + - rebase to v5.15-rc7 + - [Config] GCC version update + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc7 + + -- Paolo Pisati Tue, 26 Oct 2021 11:38:14 +0200 + +linux-unstable (5.15.0-6.6) jammy; urgency=medium + + * impish/linux-unstable: 5.15.0-6.6 -proposed tracker (LP: #1947565) + + * [impish] Remove the downstream xr-usb-uart driver (LP: #1945938) + - SAUCE: xr-usb-serial: remove driver + - [Config] update modules list + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc6 + - [Config] update config & annotations following v5.15-rc6 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: xr-usb-serial: switch to tty_alloc_driver() and + tty_driver_kref_put()" + - Revert "UBUNTU: SAUCE: xr-usb-serial: update return code for + xr_usb_serial_tty_write_room() and xr_usb_serial_tty_chars_in_buffer()" + - Revert "UBUNTU: [Packaging] FTBFS: disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc6 + + -- Paolo Pisati Mon, 18 Oct 2021 12:24:45 +0200 + +linux-unstable (5.15.0-5.5) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-5.5 -proposed tracker (LP: #1946338) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc5 + - [Config] FB_SIMPLE=m + - [Config] update annotations + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc5 + + -- Paolo Pisati Mon, 11 Oct 2021 12:14:02 +0200 + +linux-unstable (5.15.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-4.4 -proposed tracker (LP: #1945953) + + * Fix missing HDMI audio on Intel RKL (LP: #1945556) + - drm/i915/audio: Use BIOS provided value for RKL HDA link + + * Miscellaneous Ubuntu changes + - SAUCE: media: atomisp: add missing return type (fix -Werror=return-type) + - SAUCE: xr-usb-serial: switch to tty_alloc_driver() and tty_driver_kref_put() + - rebase to v5.15-rc4 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] FTBFS: disable INTEL_ATOMISP" + - Revert "UBUNTU: [Config] FTBFS: disable xr-usb-serial" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc4 + + -- Paolo Pisati Mon, 04 Oct 2021 10:52:41 +0200 + +linux-unstable (5.15.0-3.3) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-3.3 -proposed tracker (LP: #1944944) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc3 + - [Config] updateconfigs following v5.15-rc3 rebase + - [Packaging] correctly evaluate release in update-dkms-versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc3 + + -- Paolo Pisati Mon, 27 Sep 2021 16:48:03 +0200 + +linux-unstable (5.15.0-2.2) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-2.2 -proposed tracker (LP: #1944423) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc2 + - [Config] updateconfigs following v5.15-rc2 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc2 + + -- Paolo Pisati Tue, 21 Sep 2021 11:46:59 +0200 + +linux-unstable (5.15.0-1.1) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * LRMv5: switch primary version handling to kernel-versions data set + (LP: #1928921) + - [Packaging] switch to kernel-versions + + * Miscellaneous Ubuntu changes + - [Packaging] remove remaining references to ports + - [Packaging] drop x32 architecture configs + - [Config] mark CONFIG_BPF_UNPRIV_DEFAULT_OFF enforced + - [Packaging] bump kernel version to 5.15 + - rebase to v5.15-rc1 + - [Config] updateconfigs following v5.15-rc1 rebase + - [Config] FTBFS: disable INTEL_ATOMISP + - [Config] FTBFS: disable xr-usb-serial + - [Packaging] FTBFS: disable zfs + + * Miscellaneous upstream changes + - Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables + ASPM" + - Revert "UBUNTU: SAUCE: RDMA/core: Introduce peer memory interface" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc1 + + -- Paolo Pisati Fri, 17 Sep 2021 11:42:25 +0200 + +linux-unstable (5.15.0-0.0) impish; urgency=medium + + * Empty entry + + -- Paolo Pisati Wed, 15 Sep 2021 11:54:10 +0200 + +linux-unstable (5.14.0-9.9) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-9.9 -proposed tracker (LP: #1943022) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] NVIDIA -- Add the NVIDIA 470 driver + - [Packaging] NVIDIA: transition -460 and -465 to -470, transition -460-server + to -470-server + + * Miscellaneous upstream changes + - vt_kdsetmode: extend console locking + - Bluetooth: btusb: check conditions before enabling USB ALT 3 for WBS + - net: dsa: mt7530: fix VLAN traffic leaks again + - btrfs: fix NULL pointer dereference when deleting device by invalid id + - Revert "floppy: reintroduce O_NDELAY fix" + - fscrypt: add fscrypt_symlink_getattr() for computing st_size + - ext4: report correct st_size for encrypted symlinks + - f2fs: report correct st_size for encrypted symlinks + - ubifs: report correct st_size for encrypted symlinks + - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls + - audit: move put_tree() to avoid trim_trees refcount underflow and UAF + - Linux 5.14.1 + + -- Paolo Pisati Wed, 08 Sep 2021 12:20:18 +0200 + +linux-unstable (5.14.0-8.8) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-8.8 -proposed tracker (LP: #1941887) + + * Fix Intel AC9560 BT function cannot turn on if BT turn off before S3 entry + (LP: #1941696) + - SAUCE: Bluetooth: btusb: add a reject table to disable msft + + * Add USB4 support for AMD SoC (LP: #1941036) + - thunderbolt: Add vendor specific NHI quirk for auto-clearing interrupt + status + - thunderbolt: Handle ring interrupt by reading interrupt status register + - thunderbolt: Do not read control adapter config space + - thunderbolt: Fix port linking by checking all adapters + + * Support builtin revoked certificates (LP: #1932029) + - [Config] Enforce SYSTEM_TRUSTED_KEYS and SYSTEM_REVOCATION_KEYS + + * GPIO error logs in start and dmesg after update of kernel (LP: #1937897) + - ODM: mfd: Check AAEON BFPI version before adding device + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - [Config] enforce ZSTD compression + + * Miscellaneous Ubuntu changes + - rebase to v5.14 + - [Config] RESET_MCHP_SPARX5 depends on ARCH_SPARX5 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] FTBFS: disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14 + + -- Paolo Pisati Mon, 30 Aug 2021 12:57:19 +0200 + +linux-unstable (5.14.0-7.7) impish; urgency=medium + + * Please enable CONFIG_UBSAN_BOUNDS (LP: #1914685) + - [Config] Enable CONFIG_UBSAN_BOUNDS + + * CONFIG_HARDENED_USERCOPY_FALLBACK should be disabled (LP: #1855340) + - [Config] Disable CONFIG_HARDENED_USERCOPY_FALLBACK + + * fs: removing mandatory locks (LP: #1940392) + - [Config] Disable CONFIG_MANDATORY_FILE_LOCKING + + * Fix kernel panic caused by legacy devices on AMD platforms (LP: #1936682) + - SAUCE: iommu/amd: Keep swiotlb enabled to ensure devices with 32bit DMA + still work + + * ALSA: hda/cs8409: Add support for dolphin (LP: #1939541) + - ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module + - ALSA: hda/cs8409: Move arrays of configuration to a new file + - ALSA: hda/cs8409: Use enums for register names and coefficients + - ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization + - ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg + - ALSA: hda/cs8409: Disable unnecessary Ring Sense for Cyborg/Warlock/Bullseye + - ALSA: hda/cs8409: Disable unsolicited responses during suspend + - ALSA: hda/cs8409: Disable unsolicited response for the first boot + - ALSA: hda/cs8409: Mask CS42L42 wake events + - ALSA: hda/cs8409: Simplify CS42L42 jack detect. + - ALSA: hda/cs8409: Prevent I2C access during suspend time + - ALSA: hda/cs8409: Generalize volume controls + - ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses + - ALSA: hda/cs8409: Avoid setting the same I2C address for every access + - ALSA: hda/cs8409: Avoid re-setting the same page as the last access + - ALSA: hda/cs8409: Support i2c bulk read/write functions + - ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions + - ALSA: hda/cs8409: Move codec properties to its own struct + - ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol + events + - ALSA: hda/cs8409: Add Support to disable jack type detection for CS42L42 + - ALSA: hda/cs8409: Add support for dolphin + - ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on Dolphin + - ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42 + - ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction waits + - ALSA: hda/cs8409: Remove unnecessary delays + - ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for suspend + - ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops + - ALSA: hda/cs8409: Prevent pops and clicks during suspend + - SAUCE: ALSA: hda/cs8409: Prevent pops and clicks during reboot + - [Config] Enable Cirrus Logic HDA bridge support + + * e1000e: add handshake with the Intel CSME to support S0ix (LP: #1937252) + - SAUCE: e1000e: Add handshake with the CSME to support S0ix + - SAUCE: e1000e: Add polling mechanism to indicate CSME DPG exit + - SAUCE: e1000e: Additional PHY power saving in S0ix + + * AMDGPU: Fix System hang after resume from suspend (LP: #1940204) + - SAUCE: drm/amdgpu: disable BACO support for 699F:C7 polaris12 SKU + temporarily + + * [Regression] Audio card [8086:9d71] not detected after upgrade from linux + 5.4 to 5.8 (LP: #1915117) + - [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + + * Miscellaneous Ubuntu changes + - rebase to v5.14-rc7 + - [Config] updateconfigs following 5.14-rc7 rebase + - [Config] Enable CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT + - [Config] annotations: set CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT to y + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] annotations: set + CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y" + - Revert "UBUNTU: [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to + y" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc7 + + -- Paolo Pisati Tue, 24 Aug 2021 10:32:31 +0200 + +linux-unstable (5.14.0-6.6) impish; urgency=medium + + * Miscellaneous Ubuntu changes + - no changes upload (to avoid picking up libc6 from -proposed) + + * No changes upload (to avoid picking up libc6 from -proposed) + + -- Paolo Pisati Wed, 18 Aug 2021 13:41:16 +0200 + +linux-unstable (5.14.0-5.5) impish; urgency=medium + + * disable “CONFIG_HISI_DMA” config for ubuntu version (LP: #1936771) + - [Config] Disable CONFIG_HISI_DMA + + * Dell XPS 17 (9710) PCI/internal sound card not detected (LP: #1935850) + - ASoC: Intel: sof_sdw: include rt711.h for RT711 JD mode + - ASoC: Intel: sof_sdw: add quirk for Dell XPS 9710 + + * [regression] USB device is not detected during boot (LP: #1939638) + - SAUCE: Revert "usb: core: reduce power-on-good delay time of root hub" + + * armhf build failure (LP: #1939308) + - SAUCE: arm: Fix instruction set selection for GCC 11 + + * REGRESSION: shiftfs lets sendfile fail with EINVAL (LP: #1939301) + - SAUCE: shiftfs: fix sendfile() invocations + + * Wobbly graphics on built-in display since linux-image-5.11.0-22-generic + (LP: #1936708) + - SAUCE: drm/i915/dp: Use max params for older panels + + * [SRU][H/OEM-5.10/OEM-5.13/U] Fix system hang after unplug tbt dock + (LP: #1938689) + - SAUCE: igc: fix page fault when thunderbolt is unplugged + + * e1000e blocks the boot process when it tried to write checksum to its NVM + (LP: #1936998) + - SAUCE: e1000e: Do not take care about recovery NVM checksum + + * [Regression] Audio card [8086:9d71] not detected after upgrade from linux + 5.4 to 5.8 (LP: #1915117) + - [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + - [Config] annotations: set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs following 5.14-rc6 rebase + - rebase to v5.14-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc6 + + -- Paolo Pisati Tue, 17 Aug 2021 17:49:15 +0200 + +linux-unstable (5.14.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-4.4 -proposed tracker (LP: #1938566) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous upstream changes + - Revert "riscv: Get CPU manufacturer information" + + -- Paolo Pisati Tue, 03 Aug 2021 14:50:27 +0200 + +linux-unstable (5.14.0-3.3) impish; urgency=medium + + * Add additional Mediatek MT7921 WiFi/BT device IDs (LP: #1937004) + - SAUCE: Bluetooth: btusb: Add Mediatek MT7921 support for Foxconn + - SAUCE: Bluetooth: btusb: Add Mediatek MT7921 support for IMC Network + - SAUCE: Bluetooth: btusb: Add support for Foxconn Mediatek Chip + + * Fix display output on HP hybrid GFX laptops (LP: #1936296) + - drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops + + * Miscellaneous Ubuntu changes + - rebase to v5.14-rc3 + - [Config] updateconfigs following 5.14-rc3 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc3 + + -- Paolo Pisati Mon, 26 Jul 2021 12:52:38 +0200 + +linux-unstable (5.14.0-2.2) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - SAUCE: xr-usb-serial: update return code for xr_usb_serial_tty_write_room() + and xr_usb_serial_tty_chars_in_buffer() + - SAUCE: platform/x86: dell-uart-backlight: update return code for + uart_chars_in_buffer(() + - [Config] updateconfigs following 5.14-rc2 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] FTBFS: disable ubuntu/xr-usb-serial" + - Revert "UBUNTU: [Config] FTBFS: disable DELL_UART_BACKLIGHT" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc2 + + -- Paolo Pisati Thu, 22 Jul 2021 11:03:28 +0200 + +linux-unstable (5.14.0-1.1) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] bump kernel version to 5.14 + - [Config] updateconfigs following 5.14-rc1 rebase + - [Config] update annotations + - [Packaging] FTBFS: disable zfs + - [Config] FTBFS: disable DELL_UART_BACKLIGHT + - [Config] FTBFS: disable ubuntu/xr-usb-serial + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] update variants" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc1 + + -- Paolo Pisati Fri, 16 Jul 2021 15:20:04 +0200 + +linux-unstable (5.14.0-0.0) impish; urgency=medium + + * Empty entry + + -- Paolo Pisati Tue, 13 Jul 2021 12:15:35 +0200 + +linux (5.13.0-11.11) impish; urgency=medium + + * impish/linux: 5.13.0-11.11 -proposed tracker (LP: #1933854) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Support builtin revoked certificates (LP: #1932029) + - [Packaging] build canonical-revoked-certs.pem from branch/arch certs + - [Packaging] Revoke 2012 UEFI signing certificate as built-in + - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys + + * Miscellaneous Ubuntu changes + - [Packaging] Change source package name to linux + + * Miscellaneous upstream changes + - mm/page_alloc: Correct return value of populated elements if bulk array is + populated + + -- Andrea Righi Tue, 29 Jun 2021 07:50:25 +0200 + +linux (5.13.0-10.10) impish; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 28 Jun 2021 08:40:05 +0200 + +linux-unstable (5.13.0-10.10) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-10.10 -proposed tracker (LP: #1933795) + + * Pixel format change broken for Elgato Cam Link 4K (LP: #1932367) + - media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - s390/decompressor: correct BOOT_HEAP_SIZE condition + - s390/boot: add zstd support + - [Packaging] use ZSTD to compress s390 kernels + + * Miscellaneous Ubuntu changes + - SAUCE: selftests: tls: fix chacha+bidir tests + - SAUCE: selftests: icmp_redirect: support expected failures + - [Config] update configs and annotations after rebase to 5.13 + + * Miscellaneous upstream changes + - tls: prevent oversized sendfile() hangs by ignoring MSG_MORE + + [ Upstream Kernel Changes ] + + * Rebase to v5.13 + + -- Andrea Righi Mon, 28 Jun 2021 08:40:05 +0200 + +linux-unstable (5.13.0-9.9) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-9.9 -proposed tracker (LP: #1933070) + + * Add support for selective build of special drivers (LP: #1912789) + - [Packaging] Add support for ODM drivers + - [Packaging] Turn on ODM support for amd64 + - [Packaging] Fix ODM support in actual build + - [Packaging] Fix ODM DRIVERS Kconfig + + * Add support for IO functions of AAEON devices (LP: #1929504) + - ODM: [Config] update config for AAEON devices + - ODM: hwmon: add driver for AAEON devices + - ODM: leds: add driver for AAEON devices + - ODM: watchdog: add driver for AAEON devices + - ODM: gpio: add driver for AAEON devices + - ODM: mfd: Add support for IO functions of AAEON devices + + * Disable hv-kvp-daemon.service on certain instance types (LP: #1932081) + - [Packaging]: Add kernel command line condition to hv-kvp-daemon service + + * Fix non-working GPU on Some HP desktops (LP: #1931147) + - PCI: Coalesce host bridge contiguous apertures + + * Miscellaneous Ubuntu changes + - SAUCE: selftests: seccomp: bump up timeout to 5min + - SAUCE: Revert "net/tls(TLS_SW): Add selftest for 'chunked' sendfile test" + - [Config] update annotations after rebase to 5.13-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc7 + + -- Andrea Righi Mon, 21 Jun 2021 10:55:36 +0200 + +linux-unstable (5.13.0-8.8) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-8.8 -proposed tracker (LP: #1932018) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - [Config] use ZSTD to compress amd64 kernels + + * Miscellaneous Ubuntu changes + - [Config] enable signing for ppc64el + - SAUCE: powerpc: Fix initrd corruption with relative jump labels + + -- Andrea Righi Tue, 15 Jun 2021 15:07:34 +0200 + +linux-unstable (5.13.0-7.7) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-7.7 -proposed tracker (LP: #1931840) + + * Packaging resync (LP: #1786013) + - update dkms package versions + - [Packaging] resync getabis + - [Packaging] update helper scripts + - update dkms package versions + + * Intel ADL-S graphics feature enabling (LP: #1931240) + - SAUCE: drm/i915/adl_s: ADL-S platform Update PCI ids for Mobile BGA + + * Kernel package builds running out of space on builders (LP: #1930713) + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=n + + * Miscellaneous Ubuntu changes + - [Debian] remove nvidia dkms build support + - [Config] remove now unsued do_dkms_nvidia* build variables + - [Config] enable signing for s390x + - [Config] update annotations after configs review + - [Config] update toolchain versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc6 + + -- Andrea Righi Mon, 14 Jun 2021 11:53:08 +0200 + +linux-unstable (5.13.0-6.6) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-6.6 -proposed tracker (LP: #1931071) + + * Kernel package builds running out of space on builders (LP: #1930713) + - [Debian] use stamps for flavour install targets + - [Debian] run install-$(flavour) targets during build phase + - [Debian] remove dh_testroot from install targets + - [Debian] dkms-build -- use fakeroot if not running as root + - [Debian] exclude $(DEBIAN)/__abi.current from linux-source + + * [UBUNTU 21.04] tools/kvm_stat: Add restart delay (LP: #1921870) + - [Debian] install kvm_stat systemd service + + * Debugging symbols (dbgsym) packages are missing GDB kernel scripts + (LP: #1928715) + - [Packaging] Build and include GDB Python scripts into debug packages + + * Can't detect intel wifi 6235 (LP: #1920180) + - SAUCE: iwlwifi: add new pci id for 6235 + + * Select correct boot VGA when BIOS doesn't do it properly (LP: #1929217) + - vgaarb: Use ACPI HID name to find integrated GPU + + * Fix kernel panic on Intel Bluetooth (LP: #1928838) + - Bluetooth: Shutdown controller after workqueues are flushed or cancelled + + * build module CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m for 5.11, 5.13-rc2 + and later (LP: #1921632) + - [Config] enable soundwire audio mach driver + + * Miscellaneous Ubuntu changes + - [Config] CONFIG_SND_SOC_RT1308 can only be enabled on amd64 + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc5 + + -- Andrea Righi Mon, 07 Jun 2021 10:45:13 +0200 + +linux-unstable (5.13.0-5.5) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-5.5 -proposed tracker (LP: #1930205) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y + + -- Andrea Righi Mon, 31 May 2021 12:32:38 +0200 + +linux-unstable (5.13.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-4.4 -proposed tracker (LP: #1929404) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Support importing mokx keys into revocation list from the mok table + (LP: #1928679) + - SAUCE: integrity: add informational messages when revoking certs + + * Support importing mokx keys into revocation list from the mok table + (LP: #1928679) // CVE-2020-26541 when certificates are revoked via + MokListXRT. + - SAUCE: integrity: Load mokx certs from the EFI MOK config table + + * Miscellaneous Ubuntu changes + - [Config] Temporarily disable signing for ppc64el and s390x + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Be more careful about copying up + sxid files" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Propogate nosuid from lower and + upper mounts" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Enable user namespace mounts" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when + reading directories" + - SAUCE: Revert "UBUNTU: SAUCE: fs: Move SB_I_NOSUID to the top of s_iflags" + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc3 + + -- Andrea Righi Mon, 24 May 2021 13:06:17 +0200 + +linux-unstable (5.13.0-3.3) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-3.3 -proposed tracker (LP: #1928655) + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc2 + + -- Andrea Righi Mon, 17 May 2021 11:55:02 +0200 + +linux-unstable (5.13.0-2.2) impish; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] enable CONFIG_DEBUG_INFO_COMPRESSED + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] temporarily disable BPF JIT" + + -- Andrea Righi Fri, 14 May 2021 09:19:02 +0200 + +linux-unstable (5.13.0-1.1) impish; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc1 + + -- Andrea Righi Wed, 12 May 2021 11:35:23 +0200 + +linux-unstable (5.13.0-0.0) impish; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 11 May 2021 08:40:09 +0200 + +linux-unstable (5.12.0-11.11) impish; urgency=medium + + * Impish update: v5.12.1 upstream stable release (LP: #1927094) + - net: hso: fix NULL-deref on disconnect regression + - USB: CDC-ACM: fix poison/unpoison imbalance + - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() + - cfg80211: fix locking in netlink owner interface destruction + - mei: me: add Alder Lake P device id. + - Linux 5.12.1 + + * Packaging resync (LP: #1786013) // Impish update: v5.12.1 upstream stable + release (LP: #1927094) + - update dkms package versions + + * Gigabyte R120-T33 (ARM ThunderX SoC) fails to boot in ACPI mode + (LP: #1925075) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure + + * Fix kernel panic at boot on dual GFX systems (LP: #1926792) // Impish + update: v5.12.1 upstream stable release (LP: #1927094) + - drm/amdgpu: Register VGA clients after init can no longer fail + + * On TGL platforms screen shows garbage when browsing website by scrolling + mouse (LP: #1926579) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - SAUCE: drm/i915/display: Disable PSR2 if TGL Display stepping is B1 from A0 + + * CirrusLogic: Cracking noises appears in built-in speaker when output volume + is set >80% (LP: #1924997) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - SAUCE: ALSA: hda/cirrus: Use CS8409 Equalizer to fix abnormal sounds on + Bullseye + + * Enable mute/micmute LEDs and limit mic boost on EliteBook 845 G8 + (LP: #1925415) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on EliteBook + 845 G8 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: PCI: Disable broken RTIT_BAR of Intel TH" + - Revert "UBUNTU: [Config] temporarily disable ZFS" + + -- Paolo Pisati Tue, 04 May 2021 18:35:54 +0200 + +linux-unstable (5.12.0-10.10) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] Drop versioned ABI directory names + - [Packaging] getabis: Download ABIs into an unversioned directory + - [Packaging] final-checks: Handle unversioned ABI directories + - bump to impish + - [Config] GCC version update + + -- Paolo Pisati Thu, 29 Apr 2021 12:27:20 +0200 + +linux-unstable (5.12.0-9.9) impish; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc8 + + -- Seth Forshee Mon, 26 Apr 2021 11:14:16 -0500 + +linux-unstable (5.12.0-8.8) hirsute; urgency=medium + + * 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 + + * Fix no picture from HDMI when it's plugged after boot (LP: #1924238) + - drm/i915/display: Handle lane polarity for DDI port + + * hirsute beta desktop AMD64 ISO kernel panic on boot when booting using UEFI + (LP: #1922403) + - SAUCE: efifb: Check efifb_pci_dev before using it + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc8 + - [Config] updateconfigs following 5.12-rc8 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc8 + + -- Paolo Pisati Mon, 19 Apr 2021 11:37:27 +0200 + +linux-unstable (5.12.0-7.7) hirsute; urgency=medium + + * drm/i915: Drop force_probe requirement for Rocket Lake (LP: #1905466) + - drm/i915/rkl: Remove require_force_probe protection + + * HP m400 cartridges fail to find NIC when deploying hirsute (LP: #1918793) + - PCI: xgene: Fix cfg resource mapping + + * Update - Fix no screen show on display after S3 on CML-R (LP: #1922768) + - drm/i915/gen9bc: Handle TGP PCH during suspend/resume + + * Miscellaneous Ubuntu changes + - SAUCE: RDMA/core: Introduce peer memory interface + - Rebase to v5.12-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc7 + + -- Paolo Pisati Mon, 12 Apr 2021 11:48:07 +0200 + +linux-unstable (5.12.0-6.6) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * i915 doesn't support some high pixel clock 4k * 60Hz monitors (LP: #1922372) + - drm/i915/vbt: update DP max link rate table + + * Tegra "mmc0: Timeout waiting for hardware interrupt" (LP: #1921140) + - SAUCE: mmc: host: Add required callbacks to set/clear CQE_EN bit + + * Enable ath11k debugfs/tracing (LP: #1922033) + - [Config] enable ath11k debugfs/tracing + + * Fix mic on P620 after S3 resume (LP: #1921757) + - ALSA: usb-audio: Carve out connector value checking into a helper + - ALSA: usb-audio: Check connector value on resume + + * Miscellaneous Ubuntu changes + - [Config] amd64,arm64: build KFENCE support but disable it by default + (KFENCE_SAMPLE_INTERVAL=0) + - Rebase to v5.12-rc6 + + * Miscellaneous upstream changes + - drm/dp: add MSO related DPCD registers + - drm/i915/edp: reject modes with dimensions other than fixed mode + - drm/i915/edp: always add fixed mode to probed modes in ->get_modes() + - drm/i915/edp: read sink MSO configuration for eDP 1.4+ + - drm/i915/reg: add stream splitter configuration definitions + - drm/i915/mso: add splitter state readout for platforms that support it + - drm/i915/mso: add splitter state check + - drm/i915/edp: modify fixed and downclock modes for MSO + - drm/i915/edp: enable eDP MSO during link training + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc6 + + -- Paolo Pisati Wed, 07 Apr 2021 11:42:55 +0200 + +linux-unstable (5.12.0-5.5) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * alsa/realtek: extend the delay time in the determine_headset_type for a + Dell AIO (LP: #1920747) + - SAUCE: ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO + + * power off stress test will hang on the TGL machines (LP: #1919930) + - SAUCE: ASoC: SOF: Intel: TGL: set shutdown callback to hda_dsp_shutdown + - [Config] set SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 to n + + * lockdown on power (LP: #1855668) + - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode + + * Miscellaneous Ubuntu changes + - [Config] arm64 -- unify build_image and kernel_file values + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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: xr-usb-serial: clean up indentation + - SAUCE: xr-usb-serial: clean up build warnings + - SAUCE: apparmor: Fix build error, make sk parameter const + - Rebase to v5.12-rc5 + - [Config] updateconfigs following v5.12-rc5 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (lockdown) s390: Lock down the kernel when the IPL + secure flag is set" + - Revert "UBUNTU: SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to + indicate secure boot mode" + - Revert "UBUNTU: SAUCE: (lockdown) powerpc: lock down kernel in secure boot + mode" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: Make + CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT more generic" + - Revert "UBUNTU: SAUCE: (lockdown) arm64: Allow locking down the kernel under + EFI secure boot" + - Revert "UBUNTU: SAUCE: (lockdown) KEYS: Make use of platform keyring for + module signature verify" + - Revert "UBUNTU: SAUCE: (lockdown) efi: Lock down the kernel if booted in + secure boot mode" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: expose a hook to lock + the kernel down" + - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() use + efi_status_to_str() to print error messages." + - Revert "UBUNTU: SAUCE: (lockdown) Add efi_status_to_str() and rework + efi_status_to_err()." + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc5 + + -- Paolo Pisati Mon, 29 Mar 2021 12:59:38 +0200 + +linux-unstable (5.12.0-4.4) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix broken efifb on graphics device without driver (LP: #1914411) + - SAUCE: efifb: Ensure graphics device for efifb stays at PCI D0 + + * Fix system sleep on TGL systems with Intel ME (LP: #1919321) + - SAUCE: PCI: Serialize TGL e1000e PM ops + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc4 + - [Config] updateconfigs following v5.12-rc4 rebase + + * Miscellaneous upstream changes + - riscv: dts: fu740: fix cache-controller interrupts + - riscv: sifive: fu740: cpu{1, 2, 3, 4} set compatible to sifive, u74-mc + - riscv: sifive: unmatched: update for 16GB rev3 + - riscv: Add 3 SBI wrapper functions to get cpu manufacturer information + - riscv: Get CPU manufacturer information + - riscv: Introduce alternative mechanism to apply errata solution + - riscv: sifive: apply errata "cip-453" patch + - clk: sifive: Add pcie_aux clock in prci driver for PCIe driver + - clk: sifive: Use reset-simple in prci driver for PCIe driver + - MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver + - dt-bindings: PCI: Add SiFive FU740 PCIe host controller + - PCI: designware: Add SiFive FU740 PCIe host controller driver + - riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc4 + + -- Paolo Pisati Mon, 22 Mar 2021 12:43:14 +0100 + +linux-unstable (5.12.0-3.3) hirsute; urgency=medium + + * riscv: revert SiFive Unleashed CPUFreq (LP: #1917433) + - SAUCE: Revert "SiFive Unleashed CPUFreq" + + * Dell Precision 5550 takes up to 10 seconds to respond when coming out of + sleep (LP: #1919123) + - SAUCE: Input: i8042 - add dmi quirk + + * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key + (LP: #1918134) + - [Packaging] sync dkms-build et al from LRMv4 + + * curtin: install flash-kernel in arm64 UEFI unexpected (LP: #1918427) + - [Packaging] Allow grub-efi-arm* to satisfy recommends on ARM + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Enable Tegra support in arm64 for NVIDIA Jetson (LP: #1918471) + - [Config] enable ARCH_TEGRA and all Tegra SOC's + - [Packaging] include modern Tegra modules + + * Cirrus Audio Codec CS8409/CS42L42: Input Device does not switch to headset + Mic when a headset is inserted (LP: #1918378) + - SAUCE: ALSA: hda/cirrus: Fix Headset Mic volume control name + + * Cirrus Audio Codec CS8409/CS42L42 support (LP: #1916554) + - ALSA: hda/cirrus: Increase AUTO_CFG_MAX_INS from 8 to 18 + - ALSA: hda/cirrus: Add support for CS8409 HDA bridge and CS42L42 companion + codec. + - ALSA: hda/cirrus: Add jack detect interrupt support from CS42L42 companion + codec. + - ALSA: hda/cirrus: Add Headphone and Headset MIC Volume Control + + * drm/i915: Drop force_probe requirement for JSL (LP: #1917843) + - SAUCE: drm/i915: Drop require_force_probe from JSL + + * Miscellaneous Ubuntu changes + - [Packaging] Skip d-i code if udebs are disabled + - [Packaging] Disable udebs if $DEBIAN/d-i doesn't exist + - [Packaging] remove dh-systemd build dependency + - [Config] fix several annotaions with enforcement typos + - [Config] refresh annotations + - [Config] updateconfigs following v5.12-rc3 rebase + - annotations: fixup after v5.12-rc3 rebase + - Rebase to v5.12-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc3 + + -- Paolo Pisati Tue, 16 Mar 2021 18:43:03 +0100 + +linux-unstable (5.12.0-2.2) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc2 + - [Config] updateconfigs following v5.12-rc2 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc2 + + -- Paolo Pisati Mon, 08 Mar 2021 11:22:04 +0100 + +linux-unstable (5.12.0-1.1) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Support no udeb profile (LP: #1916095) + - [Packaging] replace custom filter script with dctrl-tools + - [Packaging] correctly implement noudeb build profiles. + + * Miscellaneous Ubuntu changes + - [Packaging] dkms-versions -- remove nvidia-graphics-drivers-440-server + - [Debian] run ubuntu-regression-suite for linux-unstable + - [Packaging] remove Provides: aufs-dkms + - [Config] update config and annotations following v5.12-rc1 rebase + - [Config] disable nvidia and nvidia_server builds + - [Config] temporarily disable ZFS + - temporarily disable modules check + - annotations: s390: temporarily remove CONFIG_KMSG_IDS + - [Config] amd64: FTBFS: disable HIO + - [Config] FTBFS: disable SHIFT_FS + - [Config] s390: temporarily remove CONFIG_KMSG_IDS + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] disable nvidia and nvidia_server builds" + - Revert "UBUNTU: SAUCE: s390: kernel message catalog" + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc1 + + -- Paolo Pisati Thu, 04 Mar 2021 18:26:12 +0100 + +linux-unstable (5.12.0-0.0) hirsute; urgency=medium + + * Empty entry + + -- Paolo Pisati Thu, 04 Mar 2021 18:17:32 +0100 + +linux-unstable (5.11.0-10.11) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Support CML-S CPU + TGP PCH (LP: #1909457) + - drm/i915/rkl: new rkl ddc map for different PCH + - SAUCE: drm/i915/gen9_bc : Add TGP PCH support + + * Use DCPD to control HP DreamColor panel (LP: #1911001) + - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix + + * Update nvidia dkms build for module linker script changes + - [Packaging] build-dkms--nvidia-N -- Update for preprocessed module linker + script + + * 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 + + * Miscellaneous Ubuntu changes + - [Config] re-enable nvidia dkms + - SAUCE: selftests: memory-hotplug: bump timeout to 10min + - [Debian] update-aufs.sh -- Don't apply tmpfs-idr.patch + - [Config] Update configs + - [Config] disable nvidia and nvidia_server builds + - SAUCE: Import aufs driver + - [Config] CONFIG_AUFS_FS=n + - [Config] refresh annotations file + - [Config] set CONFIG_MIPI_I3C_HCI=m consistently + - [Config] set CONFIG_PINCTRL_MSM8953=m on armhf generic-lpae + - [Packaging] Change source package name to linux-unstable + - [Config] update LD_VERSION in config due to toolchain update + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: tmpfs: Don't use 64-bit inodes by defulat with 32-bit + ino_t" + + -- Andrea Righi Mon, 22 Feb 2021 07:18:07 +0100 + +linux-unstable (5.11.0-9.10) hirsute; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 22 Feb 2021 07:02:45 +0100 + +linux (5.11.0-9.10) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] update configs/annotations after rebase to 5.11 + - zfs-modules.ignore: add zzstd + + [ Upstream Kernel Changes ] + + * Rebase to v5.11 + + -- Andrea Righi Mon, 15 Feb 2021 16:29:36 +0100 + +linux (5.11.0-8.9) hirsute; urgency=medium + + * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver + (LP: #1914543) + - SAUCE: HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID + + * Add support for new Realtek ethernet NIC (LP: #1914604) + - r8169: Add support for another RTL8168FP + + * Miscellaneous Ubuntu changes + - SAUCE: tmpfs: Don't use 64-bit inodes by defulat with 32-bit ino_t + - [Config] Set CONFIG_TMPFS_INODE64=n for s390x + - [Config] re-enable ZFS + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc7 + + -- Andrea Righi Mon, 08 Feb 2021 11:56:23 +0100 + +linux (5.11.0-7.8) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - SAUCE: x86/entry: build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + * Remove scary stack trace from Realtek WiFi driver (LP: #1913263) + - rtw88: reduce the log level for failure of tx report + + * Fix unexpected AER/DPC on PCH400 and PCH500 (LP: #1913691) + - Revert "UBUNTU: SAUCE: PCI: Enable ACS quirk on all CML root ports" + - Revert "UBUNTU: SAUCE: PCI: Enable ACS quirk on CML root port" + - SAUCE: PCI/AER: Disable AER interrupt during suspend + - SAUCE: PCI/DPC: Disable DPC interrupt during suspend + + * 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 + + * Introduce the new NVIDIA 460-server series and update the 460 series + (LP: #1913200) + - [Config] dkms-versions -- add the 460-server nvidia driver + + * Fix the video can't output through WD19TB connected with TGL platform during + cold-boot (LP: #1910211) + - SAUCE: drm/i915/dp: Prevent setting LTTPR mode if no LTTPR is detected + + * Stop using get_scalar_status command in Dell AIO uart backlight driver + (LP: #1865402) + - SAUCE: platform/x86: dell-uart-backlight: add get_display_mode command + + * Miscellaneous Ubuntu changes + - SAUCE: selftests/seccomp: Accept any valid fd in user_notification_addfd + - [Packaging] Don't disable CONFIG_DEBUG_INFO in headers packages + - [Config] update configs/annotations after rebase to 5.11-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc6 + + -- Andrea Righi Mon, 01 Feb 2021 10:27:52 +0100 + +linux (5.11.0-6.7) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Prevent thermal shutdown during boot process (LP: #1906168) + - thermal/drivers/acpi: Use hot and critical ops + - thermal/core: Remove notify ops + - thermal: int340x: Fix unexpected shutdown at critical temperature + - thermal: intel: pch: Fix unexpected shutdown at critical temperature + + * riscv: backport support for SiFive Unmatched (LP: #1910965) + - RISC-V: Update l2 cache DT documentation to add support for SiFive FU740 + - RISC-V: sifive_l2_cache: Update L2 cache driver to support SiFive FU740 + - dt-bindings: riscv: Update DT binding docs to support SiFive FU740 SoC + - riscv: dts: add initial support for the SiFive FU740-C000 SoC + - dt-bindings: riscv: Update YAML doc to support SiFive HiFive Unmatched board + - riscv: dts: add initial board data for the SiFive HiFive Unmatched + - PCI: microsemi: Add host driver for Microsemi PCIe controller + - Microsemi PCIe expansion board DT entry. + - SiFive Unleashed CPUFreq + - SiFive HiFive Unleashed: Add PWM LEDs (D1, D2, D3, D4) + + * initramfs unpacking failed (LP: #1835660) + - lib/decompress_unlz4.c: correctly handle zero-padding around initrds. + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.11-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc5 + + -- Andrea Righi Mon, 25 Jan 2021 09:31:31 +0100 + +linux (5.11.0-5.6) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] update config and annotations after rebase to 5.11-rc4 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc4 + + -- Andrea Righi Mon, 18 Jan 2021 10:46:10 +0100 + +linux (5.11.0-4.5) hirsute; urgency=medium + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - SAUCE: x86/entry: build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + -- Andrea Righi Thu, 14 Jan 2021 12:53:26 +0100 + +linux (5.11.0-3.4) hirsute; urgency=medium + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - bpf: Allow empty module BTFs + - libbpf: Allow loading empty BTFs + + -- Andrea Righi Thu, 14 Jan 2021 07:43:45 +0100 + +linux (5.11.0-2.3) hirsute; urgency=medium + + * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639) + - Input: i8042 - unbreak Pegatron C15B + + * 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 + + * debian/scripts/file-downloader does not handle positive failures correctly + (LP: #1878897) + - [Packaging] file-downloader not handling positive failures correctly + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * CVE-2021-1052 // CVE-2021-1053 + - [Packaging] NVIDIA -- Add the NVIDIA 460 driver + + * Miscellaneous Ubuntu changes + - [Packaging] Remove nvidia-455 dkms build + - SAUCE: ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP + machines + - [Config] update configs and annotations after rebase to 5.11-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc3 + + -- Andrea Righi Mon, 11 Jan 2021 09:52:27 +0100 + +linux (5.11.0-1.2) hirsute; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc2 + + -- Andrea Righi Thu, 07 Jan 2021 16:57:01 +0100 + +linux (5.11.0-0.1) hirsute; urgency=medium + + * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels + (LP: #1908529) + - [dep-8] Allow all hwe kernels + + * Fix reading speed and duplex sysfs on igc device (LP: #1906851) + - igc: Report speed and duplex as unknown when device is runtime suspended + + * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200) + - SAUCE: rtw88: 8723de: let cpu enter c10 + + * [21.04 FEAT] Deactivate CONFIG_QETH_OSN kernel config option (LP: #1906370) + - [Config] Deactivate CONFIG_QETH_OSN kernel config option + + * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663) + - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41 + + * disable building bpf selftests (LP: #1908144) + - SAUCE: selftests/bpf: Clarify build error if no vmlinux + - SAUCE: selftests: Skip BPF selftests by default + - disable building bpf selftests (no VMLINUX_BTF) + + * Miscellaneous Ubuntu changes + - SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure boot + mode + - SAUCE: (lockdown) s390: Lock down the kernel when the IPL secure flag is set + - [Config] update configs and annotations after rebase to v5.11-rc1 + - hio: fix build error with kernel 5.11 + - SAUCE: shiftfs: fix build error with 5.11 + - [Config] temporarily disable ZFS + - check-aliases: do not error if modules.alias does not exist + - ppc64el: don't build stripped vdso + + * Miscellaneous upstream changes + - irq: export irq_check_status_bit + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc1 + + -- Andrea Righi Mon, 04 Jan 2021 09:17:48 +0100 + +linux (5.11.0-0.0) hirsute; urgency=medium + + * Empty entry + + -- Andrea Righi Wed, 30 Dec 2020 09:04:41 +0100 + +linux (5.10.0-9.10) hirsute; urgency=medium + + * Use INTx for Pericom USB controllers (LP: #1906839) + - PCI: Disable MSI for Pericom PCIe-USB adapter + + * disable building bpf selftests (LP: #1908144) + - SAUCE: selftests/bpf: clarify build error if no vmlinux + - SAUCE: selftests: Skip BPF seftests by default + - disable building bpf selftests (no VMLINUX_BTF) + + * Miscellaneous Ubuntu changes + - [Config] Enable CONFIG_BPF_LSM + + * Miscellaneous upstream changes + - Revert "md: change mddev 'chunk_sectors' from int to unsigned" + - Revert "dm raid: fix discard limits for raid1 and raid10" + + -- Andrea Righi Tue, 15 Dec 2020 10:16:14 +0100 + +linux (5.10.0-8.9) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Fix bpf selftest compilation with clang 11 + - bpf: Fix selftest compilation on clang 11 + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to v5.10 + + [ Upstream Kernel Changes ] + + * Rebase to v5.10 + + -- Andrea Righi Mon, 14 Dec 2020 08:57:57 +0100 + +linux (5.10.0-7.8) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix linux-libc-dev build for hirsute forward port kernels (LP: #1904067) + - [Debian] Build linux-libc-dev for debian.master* branches + + * Update kernel packaging to support forward porting kernels (LP: #1902957) + - [Debian] Update for leader included in BACKPORT_SUFFIX + + * Introduce the new NVIDIA 455 series (LP: #1897751) + - [Packaging] NVIDIA -- Add signed modules for the 455 driver + + * 5.10 kernel fails to boot with secure boot disabled (LP: #1904906) + - [Config] CONFIG_RCU_SCALE_TEST=n + + * Miscellaneous Ubuntu changes + - [Config] s390x: disable GPIO_CDEV + - [Config] ARM_CMN=m + - [Config] disable GPIO_CDEV_V1 + - [Config] Reorder annotations after 5.10-rc6 rebase + - [Packaging] Remove nvidia-435 dkms build + - [Packaging] Change source package name to linux + - [Config] Update configs and annotations after rebase to v5.10-rc7 + - SAUCE: Revert "mm/filemap: add static for function + __add_to_page_cache_locked" + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc7 + + -- Seth Forshee Mon, 07 Dec 2020 00:15:20 -0600 + +linux (5.10.0-6.7) hirsute; urgency=medium + + * Empty entry. + + -- Seth Forshee Sun, 06 Dec 2020 22:13:46 -0600 + +linux-5.10 (5.10.0-6.7) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Avoid double newline when running insertchanges (LP: #1903293) + - [Packaging] insertchanges: avoid double newline + + * Miscellaneous Ubuntu changes + - [Packaging]: linux-modules should depend on linux-image + - [Packaging]: linux-image should suggest linux-modules-extra + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc6 + + -- Andrea Righi Mon, 30 Nov 2020 07:47:34 +0100 + +linux-5.10 (5.10.0-5.6) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] add CONFIG_INFINIBAND_VIRT_DMA + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc5 + + -- Andrea Righi Mon, 23 Nov 2020 13:17:44 +0100 + +linux-5.10 (5.10.0-4.5) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] reduce the size required to build packages + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc4 + + -- Andrea Righi Mon, 16 Nov 2020 08:33:54 +0100 + +linux-5.10 (5.10.0-3.4) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * e1000e: fix issues with S0ix (LP: #1902687) + - SAUCE: e1000e: fix S0ix flow to allow S0i3.2 subset entry + - SAUCE: e1000e: allow turning s0ix flows on for systems with ME + - SAUCE: e1000e: Add Dell's Comet Lake systems into s0ix heuristics + - SAUCE: e1000e: Add more Dell CML systems into s0ix heuristics + - [Config] Update CONFIG_E1000E for ppc64el in annotations + + * perf: Add support for Rocket Lake (LP: #1902004) + - SAUCE: perf/x86/intel: Add Rocket Lake CPU support + - SAUCE: perf/x86/cstate: Add Rocket Lake CPU support + - SAUCE: perf/x86/msr: Add Rocket Lake CPU support + - SAUCE: perf/x86/intel/uncore: Add Rocket Lake support + + * Miscellaneous Ubuntu changes + - [Config] Disable CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE + - [Config] update CONFIG_MST_IRQ after rebase to 5.10-rc3 + - [Config] drop obsolete SND_SST_IPC options + - [Config] re-enable ZFS + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc3 + + -- Andrea Righi Mon, 09 Nov 2020 09:37:08 +0100 + +linux-5.10 (5.10.0-2.3) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Switch arm64 default cpufreq governor to ondemand + - [Debian] Include scripts/module.lds from builddir in headers package + + -- Seth Forshee Tue, 03 Nov 2020 21:01:52 -0600 + +linux-5.10 (5.10.0-1.2) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix non-working Intel NVMe after S3 (LP: #1900847) + - SAUCE: PCI: Enable ACS quirk on all CML root ports + + * Miscellaneous Ubuntu changes + - [Packaging] move to hirsute + - [Config] Update configs and annotations after rebase to 5.10-rc2 + - [Config] Update numerous configs to conform with policy + - [Config] Switch default CPUFreq governer for arm64/armhf to schedultil + - [Config] Temporarily disable DEBUG_INFO_BTF for armhf + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc2 + + -- Seth Forshee Mon, 02 Nov 2020 13:18:27 -0600 + +linux-5.10 (5.10.0-0.1) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] Update configs and annotations for v5.10-rc1 + - SAUCE: platform/x86: dell-uart-backlight: rename kzfree() to + kfree_sensitive() + - SAUCE: apparmor: rename kzfree() to kfree_sensitive() + - SAUCE: LSM: change ima_read_file() to use lsmblob + - SAUCE: LSM: Use lsmblob in smk_netlbl_mls() + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] Change source package name to linux-5.10" + - s390: correct __bootdata / __bootdata_preserved macros + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc1 + + -- Paolo Pisati Tue, 27 Oct 2020 16:57:07 +0100 + +linux-5.10 (5.10.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Paolo Pisati Mon, 26 Oct 2020 14:55:48 +0100 + +linux-5.9 (5.9.0-2.3) groovy; urgency=medium + + * Fix system reboot when disconnecting WiFi (LP: #1899726) + - iwlwifi: msix: limit max RX queues for 9000 family + + * booting linux-generic-lpae armhf kernel under qemu results in relocation out + of range, and thus no modules can be loaded (LP: #1899519) + - [Config] armhf: ARM_MODULE_PLTS=y + + * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586) + - ALSA: hda: fix jack detection with Realtek codecs when in D3 + + * CVE-2020-16119 + - SAUCE: dccp: avoid double free of ccid on child socket + + * python3-venv is gone (LP: #1896801) + - SAUCE: doc: remove python3-venv dependency + + * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903) + - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/ + + * Enable brightness control on HP DreamColor panel (LP: #1898865) + - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD + quirk + - SAUCE: drm/dp: HP DreamColor panel brigntness fix + + * 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 + + * Wakeup the system by touching the touchpad (LP: #1888331) + - HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle + + * Enable LTR for endpoints behind VMD (LP: #1896598) + - SAUCE: PCI/ASPM: Enable LTR for endpoints behind VMD + + * [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 + + * 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 + + * Fix non-working NVMe after S3 (LP: #1895718) + - SAUCE: PCI: Enable ACS quirk on CML root port + + * Miscellaneous Ubuntu changes + - SAUCE: bpf: Check CONFIG_BPF option for resolve_btfids + - SAUCE: tools resolve_btfids: Always force HOSTARCH + - packaging: arm64: add a 64KB mem pages flavour called 'generic-64k' + - packaging: arm64: generic-64k: skip ABI, modules and retpoline checks + - SAUCE: drm/i915/display: Fix null deref in intel_psr_atomic_check() + - [Config] Update toolchain versions + - [Config] Refresh annotations + - Add ubuntu-host module + - CONFIG_UBUNTU_HOST=m + - SAUCE: apparmor: drop prefixing abs root labels with '=' + - SAUCE: apparmor: disable showing the mode as part of a secid to secctx + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: LSM: Infrastructure management of the sock security + - SAUCE: LSM: Create and manage the lsmblob data structure. + - SAUCE: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: net: Prepare UDS for security module stacking + - SAUCE: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: LSM: Use lsmblob in security_task_getsecid + - SAUCE: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: IMA: Change internal interfaces to use lsmblobs + - SAUCE: LSM: Specify which LSM to display + - SAUCE: LSM: Ensure the correct LSM context releaser + - SAUCE: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: NET: Store LSM netlabel data in a lsmblob + - SAUCE: LSM: Verify LSM display sanity in binder + - SAUCE: Audit: Add new record for multiple process LSM attributes + - SAUCE: Audit: Add a new record for multiple object LSM + - SAUCE: LSM: Add /proc attr entry for full LSM context + - SAUCE: AppArmor: Remove the exclusive flag + - SAUCE: Audit: Fix for missing NULL check + + * Miscellaneous upstream changes + - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup() + + [ Upstream Kernel Changes ] + + * Rebase to v5.9 + + -- Seth Forshee Wed, 14 Oct 2020 13:31:18 -0500 + +linux-5.9 (5.9.0-1.2) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Update configs after rebase to 5.9-rc6 + - SAUCE: dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX + - SAUCE: bpf: Use --no-fail option if CONFIG_BPF is not enabled + - SAUCE: tools resolve_btfids: Always force HOSTARCH + + [ Upstream Kernel Changes ] + + * Rebase to v5.9-rc6 + + -- Seth Forshee Mon, 21 Sep 2020 14:39:34 -0500 + +linux-5.9 (5.9.0-0.1) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Update configs and annotations for v5.9-rc1 + - SAUCE: i915: Fix build error due to missing struct definition + - hio -- Update blk_queue_split() calls for changes in 5.9-rc1 + - hio -- Updates for move of make_request_fn to struct block_device_operations + - [Config] Disable zfs dkms build + - [Config] Disable nvidia dkms build + - [Config] Disable nvidia server dkms builds + - SAUCE: remoteproc: qcom: Use div_u64() for 64-bit division + - SAUCE: PCI/ASPM: Enable ASPM for links under VMD domain + - [Packaging] Bind hv_vss_daemon startup to hv_vss device + - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device + - [Config] Re-enable UEFI signing for arm64 + - SAUCE: Revert "UBUNTU: SAUCE: export __get_vm_area_caller() and map_kernel_range()" + - [Config] Set the default CPU governor to ONDEMAND + - [Packaging] update variants + - [Packaging] update helper scripts + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.9-rc5 + + -- Seth Forshee Thu, 17 Sep 2020 15:01:21 -0500 + +linux-5.9 (5.9.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Tue, 18 Aug 2020 16:48:03 -0500 + +linux (5.8.0-16.17) groovy; urgency=medium + + * groovy/linux: 5.8.0-16.17 -proposed tracker (LP: #1891233) + + * Miscellaneous Ubuntu changes + - hio -- Update to use bio_{start,end}_io_acct with 5.8+ + - Enable hio driver + - [Packaging] Temporarily disable building doc package contents + + -- Seth Forshee Tue, 11 Aug 2020 15:32:58 -0500 + +linux (5.8.0-15.16) groovy; urgency=medium + + * groovy/linux: 5.8.0-15.16 -proposed tracker (LP: #1891177) + + * Miscellaneous Ubuntu changes + - SAUCE: Documentation: import error c_funcptr_sig_re, c_sig_re (sphinx- + doc/sphinx@0f49e30c) + + -- Seth Forshee Tue, 11 Aug 2020 09:29:58 -0500 + +linux (5.8.0-14.15) groovy; urgency=medium + + * groovy/linux: 5.8.0-14.15 -proposed tracker (LP: #1891085) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * msg_zerocopy.sh in net from ubuntu_kernel_selftests failed (LP: #1812620) + - selftests/net: relax cpu affinity requirement in msg_zerocopy test + + * Fix missing HDMI/DP Audio on an HP Desktop (LP: #1890441) + - ALSA: hda/hdmi: Add quirk to force connectivity + + * Add initial audio support for Lenovo ThinkStation P620 (LP: #1890317) + - ALSA: usb-audio: Add support for Lenovo ThinkStation P620 + + * Fix IOMMU error on AMD Radeon Pro W5700 (LP: #1890306) + - PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken + + * Enlarge hisi_sec2 capability (LP: #1890222) + - crypto: hisilicon - update SEC driver module parameter + + * Miscellaneous Ubuntu changes + - [Config] Re-enable signing for ppc64el + + -- Seth Forshee Mon, 10 Aug 2020 15:26:46 -0500 + +linux (5.8.0-13.14) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Remove i386 configs + - SAUCE: apply a workaround to re-enable CONFIG_CRYPTO_AEGIS128_SIMD + - SAUCE: export __get_vm_area_caller() and map_kernel_range() + - [Config] drop CONFIG_BINFMT_AOUT enforcement + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] disable CONFIG_CRYPTO_AEGIS128_SIMD" + + [ Upstream Kernel Changes ] + + * Rebase to v5.8 + + -- Andrea Righi Tue, 04 Aug 2020 09:51:50 +0200 + +linux (5.8.0-12.13) groovy; urgency=medium + + * groovy/linux: 5.8.0-12.13 -proposed tracker (LP: #1889481) + + * 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 + + * Add support for Atlantic NIC firmware v4 (LP: #1886908) + - Revert "UBUNTU: SAUCE: net: atlantic: Add support for firmware v4" + - net: atlantic: align return value of ver_match function with function name + - net: atlantic: add support for FW 4.x + + * Miscellaneous Ubuntu changes + - [Debian] Fix debian/tests for linux-5.8 -> linux rename + - SAUCE: selftests/powerpc: return skip code for spectre_v2 + + -- Seth Forshee Wed, 29 Jul 2020 16:58:47 -0500 + +linux (5.8.0-11.12) groovy; urgency=medium + + * groovy/linux: 5.8.0-11.12 -proposed tracker (LP: #1889336) + + * Miscellaneous Ubuntu changes + - [Packaging] dwarves is not required for linux-libc-dev or stage1 + + -- Seth Forshee Tue, 28 Jul 2020 22:33:24 -0500 + +linux (5.8.0-10.11) groovy; urgency=medium + + * groovy/linux: 5.8.0-10.11 -proposed tracker (LP: #1889316) + + * Miscellaneous Ubuntu changes + - [Packaging] Add more packages to Build-Depends-Indep for docs + - [Debian] Specify python executable in kmake + - [Debian] Don't treat warnings as errors during perf builds + - [Config] Disable signing for ppc64el + + -- Seth Forshee Tue, 28 Jul 2020 17:09:52 -0500 + +linux (5.8.0-9.10) groovy; urgency=medium + + * groovy/linux: 5.8.0-9.10 -proposed tracker (LP: #1889140) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * Miscellaneous Ubuntu changes + - SAUCE: Fix s390x compile error on F32 utils/stat-display.c + - [Packaging] Add python3-venv to Build-Depends-Indep + + -- Seth Forshee Mon, 27 Jul 2020 21:01:46 -0500 + +linux (5.8.0-8.9) groovy; urgency=medium + + * groovy/linux: 5.8.0-8.9 -proposed tracker (LP: #1889104) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + - [Packaging] update variants + + * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674) + - [Packaging] NVIDIA -- Add signed modules for 450 450-server + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "radix-tree: Use local_lock for protection" + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=n + - [Config] disable CONFIG_CRYPTO_AEGIS128_SIMD + - [Config] Enable nvidia dkms build + + * Miscellaneous upstream changes + - usbip: tools: fix build error for multiple definition + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc7 + + -- Seth Forshee Mon, 27 Jul 2020 11:18:12 -0500 + +linux (5.8.0-7.8) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Mon, 27 Jul 2020 09:22:19 +0200 + +linux-5.8 (5.8.0-7.8) groovy; urgency=medium + + * 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 + + * linux 4.15.0-109-generic network DoS regression vs -108 (LP: #1886668) + - SAUCE: Revert "netprio_cgroup: Fix unlimited memory leak of v2 cgroups" + + * Add support for Atlantic NIC firmware v4 (LP: #1886908) + - SAUCE: net: atlantic: Add support for firmware v4 + + * MGA G200e doesn't work under GDM Wayland (LP: #1886140) + - drm/mgag200: Remove HW cursor + - drm/mgag200: Clean up mga_set_start_address() + - drm/mgag200: Clean up mga_crtc_do_set_base() + - drm/mgag200: Move mode-setting code into separate helper function + - drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O + - drm/mgag200: Update mode registers after plane registers + - drm/mgag200: Set pitch in a separate helper function + - drm/mgag200: Set primary plane's format in separate helper function + - drm/mgag200: Move TAGFIFO reset into separate function + - drm/mgag200: Move hiprilvl setting into separate functions + - drm/mgag200: Move register initialization into separate function + - drm/mgag200: Remove out-commented suspend/resume helpers + - drm/mgag200: Use simple-display data structures + - drm/mgag200: Convert to simple KMS helper + - drm/mgag200: Replace VRAM helpers with SHMEM helpers + + * Miscellaneous Ubuntu changes + - SAUCE: s390/bpf: fix sign extension in branch_ku + - SAUCE: selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support + - SAUCE: selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion + - [packaging] debhelper-compat (= 10) (and retire debian/compat) + - [Config] Update configs after rebase to 5.8-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc6 + + -- Andrea Righi Mon, 20 Jul 2020 09:55:47 +0200 + +linux-5.8 (5.8.0-6.7) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * perf build broken after updating to bintuils 2.34.90.20200706-1ubuntu1 + (LP: #1887397) + - SAUCE: libtraceevent: Strip symbol version from nm output + + -- Seth Forshee Mon, 13 Jul 2020 14:07:53 -0500 + +linux-5.8 (5.8.0-5.6) groovy; urgency=medium + + * linux-libc-dev broken for crossbuilding, Multi-Arch:same violation + (LP: #1886188) + - [Packaging] Produce linux-libc-deb package for riscv64 + - [Debian] Disallow building linux-libc-dev from linux-riscv + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "UBUNTU: SAUCE: test_bpf: remove expected fail for Ctx heavy + transformations test on s390" + - SAUCE: Revert "test_bpf: flag tests that cannot be jited on s390" + - [Config] Update configs (gcc update) + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc5 + + -- Andrea Righi Mon, 13 Jul 2020 08:42:14 +0200 + +linux-5.8 (5.8.0-4.5) groovy; urgency=medium + + * Add generic LED class support for audio LED (LP: #1885896) + - ALSA: hda: generic: Always call led-trigger for mic mute LED + - ALSA: hda: generic: Add a helper for mic-mute LED with LED classdev + - ALSA: hda/realtek: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda/conexant: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda/sigmatel: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda: generic: Drop unused snd_hda_gen_fixup_micmute_led() + - ALSA: hda: generic: Drop the old mic-mute LED hook + - ALSA: hda: generic: Add vmaster mute LED helper + - ALSA: hda/realtek: Use the new vmaster mute LED helper + - ALSA: hda/conexant: Use the new vmaster mute LED helper + - ALSA: hda/sigmatel: Use the new vmaster mute LED helper + - ALSA: hda/realtek: Unify LED helper code + - ALSA: hda: Let LED cdev handling suspend/resume + + * seccomp_bpf fails on powerpc (LP: #1885757) + - SAUCE: selftests/seccomp: fix ptrace tests on powerpc + + * CVE-2020-11935 + - SAUCE: aufs: do not call i_readcount_inc() + + * Miscellaneous Ubuntu changes + - SAUCE: Update aufs to 5.x-rcN 20200622 + - [Config] Update configs to set CONFIG_SND_HDA_GENERIC_LEDS value + - [Config] CONFIG_SECURITY_DMESG_RESTRICT=y + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc4 + + -- Seth Forshee Mon, 06 Jul 2020 08:14:28 -0500 + +linux-5.8 (5.8.0-3.4) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + + * lxc 1:4.0.2-0ubuntu1 ADT test failure with linux-5.8 5.8.0-1.2 + (LP: #1884635) + - SAUCE: overlayfs: fix faulty rebase + + * 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" + + * Miscellaneous Ubuntu changes + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=y + - SAUCE: regulator: rename da903x to da903x-regulator + - [Config] Add da903x to modules.ignore + - [Config] Update configs for rebase to 5.8-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc3 + + -- Seth Forshee Mon, 29 Jun 2020 08:48:25 -0500 + +linux-5.8 (5.8.0-2.3) groovy; urgency=medium + + * Support Audio Mute LED for two new HP laptops (LP: #1884251) + - ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems + + * CVE-2019-16089 + - SAUCE: nbd_genl_status: null check for nla_nest_start + + * tpm: fix TIS locality timeout problems (LP: #1881710) + - SAUCE: tpm: fix TIS locality timeout problems + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - SAUCE: security,perf: Allow further restriction of perf_event_open + - [Config] CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y + - [Config] Update configs and annotations for 5.8-rc2 + - [Config] Enable zfs + - [Config] Enable CONFIG_DEBUG_INFO_BTF + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc2 + + -- Seth Forshee Mon, 22 Jun 2020 15:05:54 -0500 + +linux-5.8 (5.8.0-1.2) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Debian] Support linux-x.y in udeb package names + - [Packaging] Use SRCPKGNAME for udeb packages + + -- Seth Forshee Wed, 17 Jun 2020 19:34:32 -0500 + +linux-5.8 (5.8.0-0.1) groovy; urgency=medium + + * Docker registry doesn't stay up and keeps restarting (LP: #1879690) + - Revert "UBUNTU: SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay" + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Miscellaneous Ubuntu changes + - [Packaging] Update source package name to linux-5.8 + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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) powerpc: lock down kernel in secure boot mode + - SAUCE: Import aufs driver + - [Config] Update configs for v5.8-rc1 + - [Config] Update annotations for v5.8-rc1 config changes + - SAUCE: shiftfs -- Fix build errors from missing fiemap definitions + - Disable hio driver + + * Miscellaneous upstream changes + - acpi: disallow loading configfs acpi tables when locked down + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc1 + + -- Seth Forshee Wed, 17 Jun 2020 11:54:24 -0500 + +linux-5.8 (5.8.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Sun, 14 Jun 2020 22:40:35 -0500 + +linux-5.7 (5.7.0-8.9) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Enforce all config annotations (LP: #1879327) + - [Config]: do not enforce CONFIG_VERSION_SIGNATURE + - [Config]: prepare to enforce all + - [Config]: enforce all config options + + * Miscellaneous Ubuntu changes + - [Config]: annotations review after 5.7 rebase + - [Config] annotations: IXP4XX* depends on ARCH_IXP4XX + - [Config] THERMAL_GOV_POWER_ALLOCATOR=y + - [Config] annotations: SOC_CAMERA is marked as BROKEN + - [Config] annotations: NFSD_V4_2_INTER_SSC depends on NFS_FS=y + - [Config] annotations: CRYPTO_DEV_CHELSIO_TLS depends on legacy (and largely + unmantained) TLS_TOE + - [Config] annotations: SERIO_OLPC_APSP depends on ARCH_MMP + - [Config] RTW88_DEBUG=y + - [Config] annotations: ISDN_CAPI is a bool, and BT_CMTP depends on it + - [Config] annotations SND_SOC_SOF_DEVELOPER_SUPPORT depends on + SND_SOC_SOF_DEVELOPER_SUPPORT + - [Config] annotations: SND_SOC_SOF_BAYTRAIL_SUPPORT is mutually exclusive + with SND_SST_ATOM_HIFI2_PLATFORM_ACPI + - [Config] annotations: DEBUG_IMX_UART_PORT is defined only any + DEBUG_IMX*_UART is enabled + - [Config] annotations: HW_RANDOM_IMX_RNGC depends on SOC_IMX25 + - [Config] annotations: armhf: VIRTUALIZATION support was removed for arm32 + - [Config] annotations: arm64: remove DEBUG_ALIGN_RODATA + - [Config] annotations: ppc64: DATA_SHIFT defaults to PPC_PAGE_SHIFT + - [Config] arm64: enforce ARM64_USE_LSE_ATOMICS + - [Config] s390x: MOST is not set + - [Config] s390x: BCM84881_PHY is not set + - [Config] s390x: XILINX_LL_TEMAC is not set + - [Config] s390x: PHY_INTEL_EMMC requires GENERIC_PHY (off by default on + s390x) + - [Config] s390x: CHECK_STACK conflicts with VMAP_STACK + - [Config] annotations: s390x: NODES_SHIFT=1 + - [Config] annotations: import new symbols + - [Config] annotations: remove unmatched menu and options + + -- Paolo Pisati Fri, 12 Jun 2020 12:03:01 +0200 + +linux-5.7 (5.7.0-7.8) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + - [Packaging] update helper scripts + + * [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 + + * Miscellaneous Ubuntu changes + - [Config] Disable UEFI signing for arm64 + - Rebase to v5.7.1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.7.1 + + -- Paolo Pisati Mon, 08 Jun 2020 11:16:58 +0200 + +linux-5.7 (5.7.0-6.7) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + + * shiftfs: fix btrfs snapshot deletion (LP: #1879688) + - SAUCE: shiftfs: let userns root destroy subvolumes from other users + + * seccomp_benchmark times out on eoan (LP: #1881576) + - SAUCE: selftests/seccomp: use 90s as timeout + + * 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: 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 + + * 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 + + * Slow send speed with Intel I219-V on Ubuntu 18.04.1 (LP: #1802691) + - e1000e: Disable TSO for buffer overrun workaround + + * Fix incorrect speed/duplex when I210 device is runtime suspended + (LP: #1880656) + - igb: Report speed and duplex as unknown when device is runtime suspended + + * 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 + + * [UBUNTU 20.04] s390x/pci: enumerate pci functions per physical adapter + (LP: #1874056) + - 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 + + * add 16-bit width registers support for EEPROM at24 device (LP: #1876699) + - regmap-i2c: add 16-bit width registers support + + * Miscellaneous Ubuntu changes + - [Config] Enable virtualbox guest and shared-folder modules + + [ Upstream Kernel Changes ] + + * Rebase to v5.7 + + -- Seth Forshee Mon, 01 Jun 2020 16:11:24 -0500 + +linux-5.7 (5.7.0-5.6) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * [UBUNTU 20.04] PSI generates overhead on s390x (LP: #1876044) + - Ubuntu: [Config] CONFIG_PSI is enabled by default, but creates additional + overhead on s390x, hence should be disabled by default on s390x only. + + * Miscellaneous Ubuntu changes + - Rebase to v5.7-rc7 + - [Config] ppc64el: disable STRICT_KERNEL_RWX + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc7 + + -- Paolo Pisati Mon, 25 May 2020 11:44:09 +0200 + +linux-5.7 (5.7.0-4.5) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * update-initramfs complains of missing amdgpu firmware files (LP: #1873325) + - SAUCE: drm/amdgpu: Remove unreleased arcturus and navi12 firmware from + modinfo + + * 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() + + * 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) + - SAUCE: iwlwifi: pcie: handle QuZ configs with killer NICs as well + + * 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 + + * Unable to handle kernel pointer dereference in virtual kernel address space + on Eoan (LP: #1876645) + - SAUCE: overlayfs: fix shitfs special-casing + + * Miscellaneous Ubuntu changes + - SAUCE: skip building selftest 'runqslower' if kernel not built + - Rebase to v5.7-rc6 + - [Config] updateconfigs after 5.7-rc6 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc6 + + -- Paolo Pisati Mon, 18 May 2020 11:27:25 +0200 + +linux-5.7 (5.7.0-3.4) groovy; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc5 + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * getitimer returns it_value=0 erroneously (LP: #1349028) + - [Config] CONTEXT_TRACKING_FORCE policy should be unset + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: Import aufs driver + - [Config] Enable aufs + - [Config] annotations: remove SND_SOC_SOF_HDA_COMMON_HDMI_CODEC + - [Config] Remove CONFIG_SND_HDA_INTEL_DETECT_DMIC from annotations + - [Debian] final-checks -- Do not remove ~* from abi + - [Config] Enable 5-level page table support for x86 + - [Config] updateconfigs after 5.7-rc5 rebase + + -- Paolo Pisati Mon, 11 May 2020 10:25:42 +0200 + +linux-5.7 (5.7.0-2.3) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + - [Packaging] update helper scripts + + * ASUS T100HAN boots to a blank screen with a cursor [i965: Failed to submit + batchbuffer: Input/output error] (LP: #1860754) + - [Config] CONFIG_PMIC_OPREGION=y and CONFIG_GPIO_CRYSTAL_COVE=y for amd64 + + * 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 + + * built-using constraints preventing uploads (LP: #1875601) + - temporarily drop Built-Using data + + * dkms artifacts may expire from the pool (LP: #1850958) + - [Packaging] autoreconstruct -- manage executable debian files + - [packaging] handle downloads from the librarian better + + * Add signed modules for the 435 NVIDIA driver (LP: #1875888) + - [Packaging] NVIDIA -- add signed modules for the 435 NVIDIA driver + + * [Selftests] Apply various fixes and improvements (LP: #1870543) + - SAUCE: selftests/seccomp -- Disable timeout for seccomp tests + + * [17.04 FEAT] Integrate kernel message catalogue for s390x into Ubuntu + distribution (LP: #1628889) + - SAUCE: s390: kernel message catalog + + * Overlayfs in user namespace leaks directory content of inaccessible + directories (LP: #1793458) // CVE-2018-6559 + - SAUCE: overlayfs: ensure mounter privileges when reading directories + + * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570) + - SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th + + * [ICL] TC port in legacy/static mode can't be detected due TCCOLD + (LP: #1868936) + - drm/i915/display: Move out code to return the digital_port of the aux ch + - drm/i915/display: Add intel_legacy_aux_to_power_domain() + - drm/i915/display: Split hsw_power_well_enable() into two + - drm/i915/tc/icl: Implement TC cold sequences + - drm/i915/tc: Skip ref held check for TC legacy aux power wells + - drm/i915/tc/tgl: Implement TC cold sequences + - drm/i915/tc: Catch TC users accessing FIA registers without enable aux + - drm/i915/tc: Do not warn when aux power well of static TC ports timeout + + * 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" + + * 'Elan touchpad' not detected on 'Lenovo ThinkBook 15 IIL' (LP: #1861610) + - SAUCE: Input: elan_i2c - add more hardware ID for Lenovo laptop + + * linux-image-5.0.0-35-generic breaks checkpointing of container + (LP: #1857257) + - SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay + + * alsa/sof: kernel oops on the machine without Intel hdmi audio codec (a + regression in the asoc machine driver) (LP: #1874359) + - ASoC: intel/skl/hda - fix oops on systems without i915 audio codec + + * Add debian/rules targets to compile/run kernel selftests (LP: #1874286) + - [Packaging] add support to compile/run selftests + + * 5.4.0-24.28 does not seem to apply rtprio, whereas -21 does. (LP: #1873315) + - [Config] lowlatency: turn off RT_GROUP_SCHED + + * 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 + + * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757) + - SAUCE: shiftfs: fix dentry revalidation + + * shiftfs: broken shiftfs nesting (LP: #1872094) + - SAUCE: shiftfs: record correct creator credentials + + * lockdown on power (LP: #1855668) + - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode + + * Add support for Realtek 8723DE wireless adapter (LP: #1780590) + - SAUCE: rtw88: add adaptivity support for EU/JP regulatory + - SAUCE: rtw88: update tx descriptor of mgmt and rsvd page packets + - SAUCE: rtw88: sar: dump sar information via debugfs + - SAUCE: rtw88: 8723d: add IQ calibration + - SAUCE: rtw88: 8723d: Add power tracking + - SAUCE: rtw88: 8723d: implement flush queue + - SAUCE: rtw88: 8723d: set ltecoex register address in chip_info + - SAUCE: rtw88: 8723d: Add coex support + - SAUCE: rtw88: 8723d: Add shutdown callback to disable BT USB suspend + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: rtw88: fix 'const' mismatch in power suequence hooks + - SAUCE: rtw88: fix 'const' mismatch in + __priority_queue_cfg_legacy()/__priority_queue_cfg() + - [Config] RTW88=m + - SAUCE: (lockdown) Revert carried-forward lockdown patches + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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 + - [Config] Add back CONFIG_LOCK_DOWN_IN_SECURE_BOOT annotation for ppc64el + - [Config] CONFIG_RT_GROUP_SCHED=y + - [Packaging] Include modules.builtin.modinfo in linux-modules + - SAUCE: LSM: Infrastructure management of the sock security + - SAUCE: Fix-up af_unix mediation for sock infrastructure management + - 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: fixup secid map conversion to using IDR" + - SAUCE: Revert "apparmor: Use an IDR to allocate apparmor secids" + - SAUCE: Revert "apparmor: add support for mapping secids and using secctxes" + - Update dropped.txt for restored apparmor patches + - Remove lockdown patches from dropped.txt + - SAUCE: powerpc/ima: require IMA module signatures only if MODULE_SIG is not + enabled + - SAUCE: selftests/ftrace: Use printf instead of echo in kprobe syntax error + tests + - SAUCE: selftests/net -- disable l2tp.sh test + - SAUCE: selftests/net -- disable timeout + - SAUCE: tools: hv: Update shebang to use python3 instead of python + - Remove dropped.txt + - [Packaging] move linux-doc and linux-libc-dev stubs to debian.master + - [Debian] Support generating configs for riscv64 + - [Config] CONFIG_KMSG_IDS=y for s390x + - [Packaging] add libcap-dev dependency + - [Config] CONFIG_AD5770R=m + - [Config] CONFIG_AL3010=m + - [Config] CONFIG_APPLE_MFI_FASTCHARGE=m + - [Config] CONFIG_BAREUDP=m + - [Config] CONFIG_CRYPTO_DEV_OCTEONTX_CPT=m + - [Config] CONFIG_CRYPTO_DEV_ZYNQMP_AES=m + - [Config] CONFIG_DRM_DISPLAY_CONNECTOR=m + - [Config] CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m + - [Config] CONFIG_DRM_PANEL_ELIDA_KD35T133=m + - [Config] CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m + - [Config] CONFIG_DRM_PANEL_NOVATEK_NT35510=m + - [Config] CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m + - [Config] CONFIG_DRM_PARADE_PS8640=m + - [Config] CONFIG_DRM_SIMPLE_BRIDGE=m + - [Config] CONFIG_DRM_TIDSS=m + - [Config] CONFIG_DRM_TI_TPD12S015=m + - [Config] CONFIG_DRM_TOSHIBA_TC358768=m + - [Config] CONFIG_EDAC_DMC520=m + - [Config] CONFIG_EXFAT_FS=m + - [Config] CONFIG_GP2AP002=m + - [Config] CONFIG_GPIO_MLXBF2=m + - [Config] CONFIG_HID_GLORIOUS=m + - [Config] CONFIG_HID_MCP2221=m + - [Config] CONFIG_HMC425=m + - [Config] CONFIG_ICP10100=m + - [Config] CONFIG_IMX8MM_THERMAL=m + - [Config] CONFIG_IMX_SC_THERMAL=m + - [Config] CONFIG_INTERCONNECT_QCOM_OSM_L3=m + - [Config] CONFIG_INTERCONNECT_QCOM_SC7180=m + - [Config] CONFIG_K3_RTI_WATCHDOG=m + - [Config] CONFIG_MDIO_IPQ8064=m + - [Config] CONFIG_MDIO_MVUSB=m + - [Config] CONFIG_MHI_BUS=m + - [Config] CONFIG_OCTEONTX2_VF=m + - [Config] CONFIG_PHY_CADENCE_TORRENT=m + - [Config] CONFIG_PHY_QCOM_USB_HS_28NM=m + - [Config] CONFIG_PHY_QCOM_USB_SS=m + - [Config] CONFIG_PINCTRL_DA9062=m + - [Config] CONFIG_PINCTRL_IPQ6018=m + - [Config] CONFIG_PTP_1588_CLOCK_IDT82P33=m + - [Config] CONFIG_PTP_1588_CLOCK_VMW=m + - [Config] CONFIG_QCOM_IPA=m + - [Config] CONFIG_REGULATOR_MP5416=m + - [Config] CONFIG_REGULATOR_MP886X=m + - [Config] CONFIG_RN5T618_ADC=m + - [Config] CONFIG_RTC_DRV_MT2712=m + - [Config] CONFIG_RTC_DRV_RC5T619=m + - [Config] CONFIG_SC_MSS_7180=m + - [Config] CONFIG_SENSORS_AXI_FAN_CONTROL=m + - [Config] CONFIG_SM_GCC_8250=m + - [Config] CONFIG_SND_BCM63XX_I2S_WHISTLER=m + - [Config] CONFIG_SND_MESON_AIU=m + - [Config] CONFIG_SND_MESON_G12A_TOACODEC=m + - [Config] CONFIG_SND_MESON_GX_SOUND_CARD=m + - [Config] CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m + - [Config] CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m + - [Config] CONFIG_SND_SOC_MESON_T9015=m + - [Config] CONFIG_SND_SOC_RT5682_SDW=m + - [Config] CONFIG_SND_SOC_TLV320ADCX140=m + - [Config] CONFIG_SPI_FSI=m + - [Config] CONFIG_SPI_MTK_NOR=m + - [Config] CONFIG_SPI_MUX=m + - [Config] CONFIG_SPRD_THERMAL=m + - [Config] CONFIG_SURFACE_3_POWER_OPREGION=m + - [Config] CONFIG_TINYDRM_ILI9486=m + - [Config] CONFIG_TI_K3_AM65_CPSW_NUSS=m + - [Config] CONFIG_TYPEC_MUX_INTEL_PMC=m + - [Config] CONFIG_UACCE=m + - [Config] CONFIG_UNIPHIER_XDMAC=m + - [Config] CONFIG_USB_MAX3420_UDC=m + - [Config] CONFIG_USB_RAW_GADGET=m + - [Config] CONFIG_VHOST_VDPA=m + - [Config] CONFIG_VIDEO_IMX219=m + - [Config] CONFIG_VIDEO_SUN8I_ROTATE=m + - [Config] CONFIG_VIRTIO_VDPA=m + - [Config] CONFIG_MOST_COMPONENTS=m + - [Config] CONFIG_MFD_IQS62X=m + - packaging: getabis: switch to ckt-ppa:bootstrap/linux-5.7 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: rtw88: add rtw_read8_mask and rtw_read16_mask" + - Revert "UBUNTU: SAUCE: drm/i915/fbc: disable framebuffer compression on + IceLake" + - Revert "UBUNTU: SAUCE: platform/x86: dell-uart-backlight: move retry block" + + -- Paolo Pisati Mon, 04 May 2020 10:48:48 +0200 + +linux-5.7 (5.7.0-1.2) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * Miscellaneous Ubuntu changes + - SAUCE: hio: pass make_request ptr directly to blk_alloc_queue() + - SAUCE: hio: locally define disk_map_sector_rcu() + - SAUCE: hio: Revert "block: unexport disk_map_sector_rcu" + - SAUCE: hio: include + - [Config] amd64: i386: HIO=m + - [Config] updateconfigs after 5.7-rc3 rebase + + -- Paolo Pisati Mon, 27 Apr 2020 11:31:38 +0200 + +linux-5.7 (5.7.0-0.1) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.7-rc1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc1 + * Rebase to v5.7-rc2 + + -- Paolo Pisati Thu, 16 Apr 2020 11:53:58 +0200 + +linux-5.7 (5.7.0-0.0) focal; urgency=medium + + * Dummy entry + + -- Paolo Pisati Thu, 16 Apr 2020 11:53:58 +0200 + +linux-5.6 (5.6.0-7.7) focal; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Kernel Oops - general protection fault: 0000 [#1] SMP PTI after + disconnecting thunderbolt docking station (LP: #1864754) + - SAUCE: ptp: free ptp clock properly + + * 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() + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6 + + -- Andrea Righi Tue, 31 Mar 2020 10:45:09 +0200 + +linux-5.6 (5.6.0-6.6) focal; urgency=medium + + * 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 + + * update-version-dkms doesn't add a BugLink (LP: #1867790) + - [Packaging] Add BugLink to update-version-dkms commit + + * Add support for Realtek 8723DE wireless adapter (LP: #1780590) + - 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) + - 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 + + * 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 + + * 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 + + * Miscellaneous Ubuntu changes + - hio -- remove duplicated MODULE_DEVICE_TABLE declaration + - SAUCE: r8169: disable ASPM L1.1 + - [Config] update annotations from configs + - [Config] update configs after annotation file review + - SAUCE: Revert "tools/power turbostat: Fix 32-bit capabilities warning" + + * Miscellaneous upstream changes + - drm/i915: Fix eDP DPCD aux max backlight calculations + - drm/dp: Introduce EDID-based quirks + - drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED panel + - drm/i915: Force DPCD backlight mode for some Dell CML 2020 panels + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc7 + + -- Andrea Righi Wed, 25 Mar 2020 18:09:13 +0100 + +linux-5.6 (5.6.0-5.5) focal; urgency=medium + + * please help enable CONFIG_EROFS_FS_ZIP (LP: #1867099) + - [Config] CONFIG_EROFS_FS_ZIP=y + - [Config] CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1 + + * Miscellaneous Ubuntu changes + - Config: Fix SND_HDA_PREALLOC_SIZE annotations + - Config: Fix DATA_SHIFT annotations + - Config: remove ANDROID_VSOC from annotations + - Config: remove arm arch from annotations + - Config: Update SOC_R8A7796X annotations + - Config: Update CLK_R8A7796X annotations + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc6 + + -- Andrea Righi Wed, 18 Mar 2020 17:25:30 +0100 + +linux-5.6 (5.6.0-4.4) focal; urgency=medium + + * 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) + - [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 + + * [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 + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "UBUNTU: SAUCE: blk/core: Gracefully handle unset + make_request_fn" + - [Packaging] prevent duplicated entries in modules.ignore + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc5 + + -- Andrea Righi Mon, 09 Mar 2020 09:42:06 +0100 + +linux-5.6 (5.6.0-3.3) focal; urgency=medium + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Focal Fossa (20.04) feature request - Enable CONFIG_X86_UV (LP: #1863810) + - [Config] CONFIG_X86_UV=y + + * Miscellaneous Ubuntu changes + - debian: remove snapdragon config, rules and flavour + - remove snapdragon abi files + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc4 + + * Miscellaneous upstream changes + - updateconfigs following snapdragon removal + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc4 + + -- Andrea Righi Wed, 04 Mar 2020 08:21:10 +0100 + +linux-5.6 (5.6.0-2.2) focal; urgency=medium + + * Sometimes can't adjust brightness on Dell AIO (LP: #1862885) + - SAUCE: platform/x86: dell-uart-backlight: increase retry times + + * Dell XPS 13 (7390) Display Flickering - 19.10 (LP: #1849947) + - SAUCE: drm/i915: Disable PSR by default on all platforms + + * Miscellaneous Ubuntu changes + - [debian] ignore missing wireguard module + - SAUCE: (lockdown) Add efi_status_to_str() and rework efi_status_to_err(). + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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 + - [Config] CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc3 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (lockdown) s390/ipl: lockdown kernel when booted + secure" + - Revert "UBUNTU: SAUCE: (lockdown) KEYS: Make use of platform keyring for + module signature verify" + - Revert "UBUNTU: SAUCE: (lockdown) Add a SysRq option to lift kernel + lockdown" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: expose a hook to lock + the kernel down" + - Revert "UBUNTU: SAUCE: (lockdown) Add efi_status_to_str() and rework + efi_status_to_err()." + + -- Andrea Righi Mon, 24 Feb 2020 18:57:22 +0100 + +linux-5.6 (5.6.0-1.1) focal; urgency=medium + + * Integrate Intel SGX driver into linux-azure (LP: #1844245) + - [Packaging] Add systemd service to load intel_sgx + + * 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 + + * Miscellaneous Ubuntu changes + - update dkms package versions + - update dropped.txt after rebase to v5.6-rc1 + - [Config] updateconfigs after rebase to 5.6-rc1 + - hio -- proc_create() requires a "struct proc_ops" in 5.6 + - SAUCE: arm: fix build error in kvm tracepoint + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] Disable the uselib system call" + - Revert "UBUNTU: [Config] Disable legacy PTY naming" + - Revert "UBUNTU: [Config] Enforce filtered access to iomem" + - Revert "UBUNTU: [Config] Enable notifier call chain validations" + - Revert "UBUNTU: [Config] Enable scatterlist validation" + - Revert "UBUNTU: [Config] Enable cred sanity checks" + - Revert "UBUNTU: [Config] Enable linked list manipulation checks" + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc1 + + -- Andrea Righi Thu, 13 Feb 2020 17:20:27 +0100 + +linux-5.6 (5.6.0-0.0) focal; urgency=medium + + * Dummy entry + + -- Andrea Righi Mon, 10 Feb 2020 11:06:18 +0100 + +linux-5.5 (5.5.0-7.8) focal; urgency=medium + + * CONFIG_USELIB should be disabled (LP: #1855341) + - [Config] Disable the uselib system call + + * CONFIG_LEGACY_PTYS should be disabled (LP: #1855339) + - [Config] Disable legacy PTY naming + + * CONFIG_IO_STRICT_DEVMEM should be enabled (LP: #1855338) + - [Config] Enforce filtered access to iomem + + * CONFIG_DEBUG_NOTIFIERS should be enabled (LP: #1855337) + - [Config] Enable notifier call chain validations + + * CONFIG_DEBUG_SG should be enabled (LP: #1855336) + - [Config] Enable scatterlist validation + + * CONFIG_DEBUG_CREDENTIALS should be enabled (LP: #1855335) + - [Config] Enable cred sanity checks + + * CONFIG_DEBUG_LIST should be enabled (LP: #1855334) + - [Config] Enable linked list manipulation checks + + * 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 + + * 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 + + * Dell AIO can't adjust brightness (LP: #1858761) + - SAUCE: platform/x86: dell-uart-backlight: add retry for get scalar status + + * Miscellaneous Ubuntu changes + - [Config] Fix typo in annotations file + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5 + + -- Andrea Righi Mon, 27 Jan 2020 11:39:38 +0100 + +linux-5.5 (5.5.0-6.7) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Packaging] Update ubuntu-regression-suite dependency to python2 + - [Packaging] Fix ubuntu-regression-suite python dependency for hwe kernel + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc7 + + -- Andrea Righi Mon, 20 Jan 2020 10:16:01 +0100 + +linux-5.5 (5.5.0-5.6) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc6 + + -- Andrea Righi Mon, 13 Jan 2020 15:50:12 +0100 + +linux-5.5 (5.5.0-4.5) focal; urgency=medium + + * linux build and autopkg tests need to use python2 instead of python + (LP: #1858487) + - [Packaging] Remove python-dev build dependency + + -- Andrea Righi Wed, 08 Jan 2020 16:00:26 +0100 + +linux-5.5 (5.5.0-3.4) focal; urgency=medium + + * [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 + + * 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 + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Miscellaneous Ubuntu changes + - [Packaging] Change source package to linux-5.5 + - [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/* + - update dkms package versions + - [Config] updateconfigs after rebase to 5.5-rc3 + - [Config] disable PCI_MESON + - [Config] Add pinctrl-equilibrium to modules.ignore + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc5 + + -- Andrea Righi Wed, 08 Jan 2020 11:28:43 +0100 + +linux-5.5 (5.5.0-2.3) focal; urgency=medium + + * Empty entry. + + -- Seth Forshee Tue, 17 Dec 2019 22:33:59 -0600 + +linux (5.5.0-2.3) focal; urgency=medium + + * 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 + + * change kconfig of the soundwire bus driver from y to m (LP: #1855685) + - [Config]: SOUNDWIRE=m + + * 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 + + * Miscellaneous Ubuntu changes + - [Debian] add python depends to ubuntu-regression-suite + - SAUCE: selftests: net: tls: remove recv_rcvbuf test + - update dkms package versions + + * Miscellaneous upstream changes + - [Config] updateconfigs after rebase to 5.5-rc2 + + -- Andrea Righi Tue, 17 Dec 2019 16:02:43 +0100 + +linux (5.5.0-1.2) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] disable nvidia dkms build + - [Config] disable virtualbox dkms build + - [Config] disable zfs dkms build + - update dropped.txt after rebase to v5.5-rc1 + - 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 + - update dkms package versions + + -- Andrea Righi Thu, 12 Dec 2019 16:54:41 +0100 + +linux (5.5.0-0.1) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.5-rc1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc1 + + -- Andrea Righi Mon, 09 Dec 2019 19:03:35 +0100 + +linux (5.5.0-0.0) focal; urgency=medium + + * Dummy entry. + + -- Andrea Righi Mon, 09 Dec 2019 15:14:37 +0100 + +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 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 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 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 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 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 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 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 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 Fri, 11 Oct 2019 16:42:41 -0500 + +linux (5.4.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 23 Jul 2019 21:45:44 -0500 + +linux (5.3.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 Tue, 21 May 2019 11:18:43 -0500 + +linux (5.2.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 Thu, 25 Apr 2019 10:03:25 -0300 + +linux (5.1.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Thadeu Lima de Souza Cascardo 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Thu, 17 Jan 2019 12:31:29 -0600 + +linux (5.0.0-0.0) disco; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 Fri, 07 Dec 2018 07:13:42 -0600 + +linux (4.20.0-0.0) disco; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 Thu, 13 Sep 2018 07:54:47 -0500 + +linux (4.19.0-0.0) cosmic; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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=, not - 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 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 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 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 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 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 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 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 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 Fri, 06 Jul 2018 10:46:37 -0500 + +linux (4.18.0-0.0) cosmic; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 Tue, 08 May 2018 16:38:51 -0300 + +linux (4.17.0-0.0) bionic; urgency=medium + + * Dummy entry. + + -- Thadeu Lima de Souza Cascardo 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//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 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 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 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 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 Thu, 22 Feb 2018 08:58:57 -0600 + +linux (4.16.0-0.0) bionic; urgency=medium + + * Dummy entry + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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//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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 20 Mar 2017 05:15:32 -0600 + +linux (4.11.0-0.0) zesty; urgency=low + + * dummy entry + + -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600 --- linux-5.19.0.orig/debian.master/config/amd64/config.common.amd64 +++ linux-5.19.0/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,698 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_6LOWPAN=m +CONFIG_AC97_BUS=m +CONFIG_ACCESSIBILITY=y +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_ADIN1100_PHY=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_AQTION=m +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_NR_GPIO=1024 +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_BAREUDP=m +CONFIG_BATMAN_ADV=m +CONFIG_BCH=m +CONFIG_BCM84881_PHY=y +CONFIG_BCMA=m +CONFIG_BCM_KONA_USB2_PHY=m +CONFIG_BCM_VK=m +CONFIG_BE2ISCSI=m +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BSD_DISKLABEL=y +CONFIG_C2PORT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_CAIF=m +CONFIG_CAN=m +CONFIG_CB710_CORE=m +CONFIG_CC_VERSION_TEXT="x86_64-linux-gnu-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +CONFIG_CDROM_PKTCDVD=m +# CONFIG_CMA is not set +CONFIG_CMDLINE_PARTITION=y +CONFIG_COMEDI=m +CONFIG_COMMON_CLK=y +CONFIG_COMPAT=y +CONFIG_COUNTER=m +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y +CONFIG_CRAMFS=m +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO_DEV_ATMEL_ECC=m +CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_CXL_BUS=m +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DECNET=m +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_DMADEVICES=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DM_DEBUG is not set +CONFIG_DNET=m +CONFIG_DP83TD510_PHY=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +# 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_SIMPLEDRM=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DS1682=m +CONFIG_DUMMY_IRQ=m +CONFIG_DW_WATCHDOG=m +CONFIG_DW_XDATA_PCIE=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 is not set +CONFIG_EXFAT_FS=m +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=m +CONFIG_FB_SIS=m +CONFIG_FB_SM712=m +CONFIG_FB_SSD1307=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_FIRMWARE_MEMMAP=y +CONFIG_FORTIFY_SOURCE=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_GOLDFISH is not set +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_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_TPIC2810=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_GPIO_VIRTIO=m +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_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_HTE=y +CONFIG_HWMON=y +CONFIG_HWSPINLOCK=y +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_HZ=250 +# CONFIG_HZ_100 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=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_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_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_VIRTIO=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_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_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTERCONNECT=y +CONFIG_IOMMU_DEFAULT_DMA_LAZY=y +# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set +CONFIG_IOMMU_IOVA=y +CONFIG_IPACK_BUS=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_VS_TWOS=m +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_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_MARVELL_88X2222_PHY=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MCB=m +CONFIG_MCTP=y +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_THUNDER=m +CONFIG_MD_MULTIPATH=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MEDIA_CEC_SUPPORT=y +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_ATC260X_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_IQS62X=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_MP2629=m +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RT4831=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_VX855=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM8994=m +CONFIG_MHI_BUS=m +CONFIG_MHI_BUS_EP=m +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=m +CONFIG_MLX5_SF=y +CONFIG_MLX5_VFIO_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_CQHCI=m +# CONFIG_MMC_HSQ is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SPI=m +CONFIG_MOST=m +CONFIG_MOTORCOMM_PHY=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND_CORE=m +CONFIG_MTD_RAW_NAND=m +CONFIG_NET_DSA=m +# CONFIG_NET_DSA_REALTEK_MDIO is not set +# CONFIG_NET_DSA_REALTEK_SMI is not set +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_DAVICOM=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=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_NTB=m +# CONFIG_NTFS_RW is not set +CONFIG_NULL_TTY=m +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NVMEM=y +CONFIG_NVRAM=m +CONFIG_NXP_C45_TJA11XX_PHY=m +CONFIG_N_GSM=m +# CONFIG_OF is not set +CONFIG_OMFS_FS=m +CONFIG_OSF_PARTITION=y +CONFIG_PACKING=y +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_PAGE_POOL_STATS 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_EPF_NTB=m +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCMCIA=m +CONFIG_PCS_XPCS=m +CONFIG_PECI=m +CONFIG_PGTABLE_LEVELS=5 +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_PHY_CAN_TRANSCEIVER=m +CONFIG_PHY_PXA_28NM_HSIC=m +CONFIG_PHY_PXA_28NM_USB2=m +CONFIG_PINCTRL=y +CONFIG_PM=y +CONFIG_PMIC_OPREGION=y +CONFIG_PM_DEVFREQ=y +CONFIG_POWERCAP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +# 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_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_PVPANIC=y +CONFIG_PWM=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_RAPIDIO=y +CONFIG_RAVE_SP_CORE=m +CONFIG_RC_CORE=m +CONFIG_REED_SOLOMON=m +CONFIG_REGMAP_I2C=y +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_GOLDFISH=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_S2IO=m +CONFIG_SAMPLE_FTRACE_DIRECT=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_EFCT=m +CONFIG_SCSI_ESAS2R=m +CONFIG_SCSI_FDOMAIN_PCI=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_MPI3MR=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_Q54SJ108A2=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_SFC_SIENA=m +CONFIG_SGI_PARTITION=y +CONFIG_SLIP=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_DMAENGINE_PCM=m +CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y +CONFIG_SND_HDA_PREALLOC_SIZE=0 +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=m +CONFIG_SPI_SIFIVE=m +CONFIG_SPMI=m +CONFIG_SRAM=y +CONFIG_SSB=m +CONFIG_STAGING=y +# CONFIG_STANDALONE is not set +CONFIG_SUN_PARTITION=y +CONFIG_SURFACE_3_POWER_OPREGION=m +CONFIG_SURFACE_PRO3_BUTTON=m +# CONFIG_SYSFB_SIMPLEFB is not set +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSV_FS=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_CR50=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_TOUCHSCREEN_ELAN=y +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TTY_PRINTK=y +CONFIG_UACCE=m +CONFIG_UBSAN=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_USB4=m +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_GADGET=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_USB_SUPPORT=y +CONFIG_VDPA=m +CONFIG_VFIO=y +CONFIG_VFIO_IOMMU_TYPE1=y +CONFIG_VFIO_PCI=y +CONFIG_VFIO_PCI_CORE=y +CONFIG_VFIO_VIRQFD=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VMAP_STACK=y +CONFIG_VME_BUS=y +CONFIG_VMXNET3=m +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +CONFIG_W1=m +CONFIG_WAN=y +CONFIG_WDTPCI=m +CONFIG_WWAN=y +CONFIG_X25=m +CONFIG_XEN=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=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 --- linux-5.19.0.orig/debian.master/config/amd64/config.flavour.generic +++ linux-5.19.0/debian.master/config/amd64/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-5.19.0.orig/debian.master/config/annotations +++ linux-5.19.0/debian.master/config/annotations @@ -0,0 +1,14427 @@ +# Menu: HEADER +# FORMAT: 2 +# ARCH: x86 arm arm64 s390 powerpc riscv + +# Mark debugging symbols. +# exceptions +CONFIG_DEBUG_FS note +CONFIG_DEBUG_KERNEL note + +# Menu: ROOT +CONFIG_LIVEPATCH policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_COMPAT policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_ACPI_PRMT policy<{'amd64': 'y'}> + +# Menu: ACPI (Advanced Configuration and Power Interface) Support +CONFIG_ACPI policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_DEBUGGER policy<{'amd64': 'y', 'arm64': 'n'}> +CONFIG_ACPI_DEBUGGER_USER policy<{'amd64': 'y'}> +CONFIG_ACPI_SPCR_TABLE policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_FPDT policy<{'amd64': 'y'}> +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE policy<{'amd64': 'y'}> +CONFIG_ACPI_EC_DEBUGFS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ACPI_AC policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_BATTERY policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_BUTTON policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_VIDEO policy<{'amd64': 'm'}> +CONFIG_ACPI_FAN policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_TAD policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ACPI_DOCK policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_PROCESSOR policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_IPMI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ACPI_PROCESSOR_AGGREGATOR policy<{'amd64': 'm'}> +CONFIG_ACPI_THERMAL policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_TABLE_UPGRADE policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_DEBUG policy<{'amd64': 'y', 'arm64': 'n'}> +CONFIG_ACPI_PCI_SLOT policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_CONTAINER policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_HOTPLUG_MEMORY policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_SBS policy<{'amd64': 'm'}> +CONFIG_ACPI_HED policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_CUSTOM_METHOD policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_ACPI_BGRT policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_REDUCED_HARDWARE_ONLY policy<{'amd64': 'n', 'arm64': 'y'}> +CONFIG_ACPI_NFIT policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_NFIT_SECURITY_DEBUG policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_ACPI_NUMA policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_HMAT policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_EXTLOG policy<{'amd64': 'm'}> +CONFIG_ACPI_CONFIGFS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_TPS68470_PMIC_OPREGION policy<{'amd64': 'y'}> +CONFIG_X86_PM_TIMER policy<{'amd64': 'y'}> +# +CONFIG_ACPI_CUSTOM_METHOD mark note + +# Menu: ACPI (Advanced Configuration and Power Interface) Support >> ACPI Platform Error Interface (APEI) +CONFIG_ACPI_APEI policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_APEI_GHES policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_APEI_PCIEAER policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_APEI_MEMORY_FAILURE policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_ACPI_APEI_EINJ policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ACPI_APEI_ERST_DEBUG policy<{'amd64': 'n', 'arm64': 'n'}> + +# Menu: ACPI (Advanced Configuration and Power Interface) Support >> Intel DPTF (Dynamic Platform and Thermal Framework) Support +CONFIG_ACPI_DPTF policy<{'amd64': 'y'}> +CONFIG_DPTF_POWER policy<{'amd64': 'm'}> +CONFIG_DPTF_PCH_FIVR policy<{'amd64': 'm'}> + +# Menu: ACPI (Advanced Configuration and Power Interface) Support >> PMIC (Power Management Integrated Circuit) operation region support +CONFIG_PMIC_OPREGION policy<{'amd64': 'y', 'arm64': '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_BLAKE2S_ARM policy<{'armhf': 'y'}> +CONFIG_CRYPTO_BLAKE2B_NEON 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'}> +CONFIG_CRYPTO_POLY1305_ARM policy<{'armhf': 'm'}> +CONFIG_CRYPTO_CURVE25519_NEON 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_POLY1305_NEON 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', 'ppc64el': '0x00000000'}> + +# Menu: Advanced setup >> Prompt for advanced kernel configuration options >> Architecture: powerpc +CONFIG_PAGE_OFFSET policy<{'armhf': '0xC0000000', 'ppc64el': '0xc000000000000000', 'riscv64': '0xff60000000000000'}> +CONFIG_KERNEL_START policy<{'ppc64el': '0xc000000000000000'}> + +# Menu: Architecture: arm +CONFIG_ARM_DMA_IOMMU_ALIGNMENT policy<{'armhf': '8'}> +CONFIG_ARM_PATCH_PHYS_VIRT policy<{'armhf': 'y'}> + +# Menu: Architecture: powerpc +CONFIG_PPC64 policy<{'ppc64el': 'y'}> +CONFIG_NR_IRQS policy<{'ppc64el': '512'}> + +# Menu: Architecture: x86 +CONFIG_64BIT policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Binary Emulations >> Architecture: x86 +CONFIG_IA32_EMULATION policy<{'amd64': 'y'}> +CONFIG_IA32_AOUT policy<{'amd64': '-'}> +# +CONFIG_IA32_AOUT mark note + +# Menu: Boot options +CONFIG_CMDLINE policy<{'arm64': '"console=ttyAMA0"', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""'}> +CONFIG_EFI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_DMI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}> +CONFIG_KEXEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRASH_DUMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_CRASH_DUMP mark note +CONFIG_EFI flag + +# 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 + +# Menu: Boot options >> Architecture: arm64 +CONFIG_ARM64_ACPI_PARKING_PROTOCOL policy<{'arm64': 'y'}> + +# Menu: Boot options >> Kernel command line type +CONFIG_CMDLINE_FROM_BOOTLOADER policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CMDLINE_FORCE policy<{'arm64': 'n', 'armhf': '-'}> + +# 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: Boot options >> Kernel command line type >> Architecture: arm64 + +# Menu: Bus options + +# Menu: Bus options (PCI etc.) + +# Menu: Bus options (PCI etc.) >> Architecture: x86 +CONFIG_ISA_BUS policy<{'amd64': 'y'}> +CONFIG_ISA_DMA_API policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_PCI_MMCONFIG policy<{'amd64': 'y'}> +CONFIG_PCI_CNB20LE_QUIRK policy<{'amd64': 'n'}> + +# Menu: Bus options (PCI etc.) >> PCI access mode >> Architecture: x86 + +# Menu: Bus options >> Architecture: powerpc +CONFIG_FSL_LBC policy<{'ppc64el': 'y'}> + +# Menu: Bus support >> Architecture: arm +CONFIG_ARM_ERRATA_814220 policy<{'armhf': 'y'}> + +# Menu: CPU errata selection +CONFIG_ERRATA_SIFIVE_CIP_453 policy<{'riscv64': 'y'}> + +# Menu: Cryptographic API +CONFIG_CRYPTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_MANAGER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_USER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_NULL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_PCRYPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CRYPTD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_AUTHENC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_RSA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_DH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_ECDH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_ECDSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_ECRDSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_SM2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CURVE25519 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CURVE25519_X86 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_CCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_GCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_CHACHA20POLY1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_AEGIS128 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_ECHAINIV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CBC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_CFB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_CTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_ECB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_LRW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_OFB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_PCBC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_XTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_KEYWRAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_ESSIV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_HMAC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_XCBC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_VMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CRC32C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_CRC32C_INTEL policy<{'amd64': 'y'}> +CONFIG_CRYPTO_CRC32C_VPMSUM policy<{'ppc64el': 'm'}> +CONFIG_CRYPTO_CRC32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CRC32_PCLMUL policy<{'amd64': 'm'}> +CONFIG_CRYPTO_XXHASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_BLAKE2B policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_BLAKE2S_X86 policy<{'amd64': 'y'}> +CONFIG_CRYPTO_CRCT10DIF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_POLY1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_POLY1305_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_MD4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_MD5 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_MD5_PPC policy<{'ppc64el': 'm'}> +CONFIG_CRYPTO_MICHAEL_MIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_RMD160 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_SHA1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_SHA512 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_SHA3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_SM3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_STREEBOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_WP512 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL policy<{'amd64': 'm'}> +CONFIG_CRYPTO_AES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_AES_TI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_AES_NI_INTEL policy<{'amd64': 'm'}> +CONFIG_CRYPTO_BLOWFISH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_BLOWFISH_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_CAMELLIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CAST5_AVX_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_CAST6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CAST6_AVX_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_DES3_EDE_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_FCRYPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CHACHA20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_CHACHA20_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_SERPENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_SERPENT_SSE2_X86_64 policy<{'amd64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 policy<{'amd64': 'm'}> +CONFIG_CRYPTO_TWOFISH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_842 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_LZ4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_LZ4HC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_ZSTD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_ANSI_CPRNG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_JITTERENTROPY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_USER_API_HASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_USER_API_SKCIPHER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_USER_API_RNG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_USER_API_RNG_CAVP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_USER_API_AEAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_LIB_CHACHA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_LIB_CURVE25519 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_LIB_POLY1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_LIB_CHACHA20POLY1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS flag +CONFIG_CRYPTO_TEST flag +CONFIG_CRYPTO_SHA512 note +CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE mark note + +# Menu: Cryptographic API >> Asymmetric (public-key cryptographic) key type +CONFIG_ASYMMETRIC_KEY_TYPE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_X509_CERTIFICATE_PARSER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PKCS8_PRIVATE_KEY_PARSER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PKCS7_MESSAGE_PARSER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PKCS7_TEST_KEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SIGNED_PE_FILE_VERIFICATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_ASYMMETRIC_KEY_TYPE note +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE note +CONFIG_X509_CERTIFICATE_PARSER note + +# 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"', 'ppc64el': '"certs/signing_key.pem"', 'riscv64': '"certs/signing_key.pem"', 's390x': '"certs/signing_key.pem"'}> +CONFIG_SYSTEM_BLACKLIST_KEYRING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSTEM_BLACKLIST_HASH_LIST policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_SYSTEM_REVOCATION_LIST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSTEM_REVOCATION_KEYS policy<{'amd64': '"debian/canonical-revoked-certs.pem"', 'arm64': '"debian/canonical-revoked-certs.pem"', 'armhf': '"debian/canonical-revoked-certs.pem"', 'ppc64el': '"debian/canonical-revoked-certs.pem"', 'riscv64': '"debian/canonical-revoked-certs.pem"', 's390x': '"debian/canonical-revoked-certs.pem"'}> +# +CONFIG_SYSTEM_BLACKLIST_KEYRING mark +CONFIG_SYSTEM_REVOCATION_KEYS mark + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSTEM_TRUSTED_KEYS policy<{'amd64': '"debian/canonical-certs.pem"', 'arm64': '"debian/canonical-certs.pem"', 'armhf': '"debian/canonical-certs.pem"', 'ppc64el': '"debian/canonical-certs.pem"', 'riscv64': '"debian/canonical-certs.pem"', 'riscv64': '"debian/canonical-certs.pem"', 's390x': '"debian/canonical-certs.pem"'}> +CONFIG_SYSTEM_EXTRA_CERTIFICATE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSTEM_EXTRA_CERTIFICATE_SIZE policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'ppc64el': '4096', 'riscv64': '4096', 's390x': '4096'}> +CONFIG_SECONDARY_TRUSTED_KEYRING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SYSTEM_TRUSTED_KEYS mark + +# Menu: Cryptographic API >> Certificates for signature checking >> Type of module signing key to be generated +CONFIG_MODULE_SIG_KEY_TYPE_RSA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_SIG_KEY_TYPE_ECDSA policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Cryptographic API >> Hardware crypto devices +CONFIG_CRYPTO_HW policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_DEV_PADLOCK policy<{'amd64': 'y'}> +CONFIG_CRYPTO_DEV_PADLOCK_AES policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_PADLOCK_SHA policy<{'amd64': '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_HIFN_795X policy<{'armhf-generic': 'm', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_HIFN_795X_RNG policy<{'armhf-generic': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_FSL_CAAM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_SAHARA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CRYPTO_DEV_EXYNOS_RNG policy<{'armhf': 'n'}> +CONFIG_CRYPTO_DEV_S5P policy<{'armhf': 'n'}> +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', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_DEV_ATMEL_SHA204A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_DEV_CCP policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_CRYPTO_DEV_CCP_DD policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CRYPTO_DEV_SP_CCP policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_CRYPTO_DEV_CCP_CRYPTO policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CRYPTO_DEV_SP_PSP policy<{'amd64': 'y'}> +CONFIG_CRYPTO_DEV_CCP_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_CRYPTO_DEV_MXS_DCP policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_CRYPTO_DEV_QAT_DH895xCC policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_C3XXX policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_C62X policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_4XXX policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_DH895xCCVF policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_C3XXXVF policy<{'amd64': 'm'}> +CONFIG_CRYPTO_DEV_QAT_C62XVF policy<{'amd64': 'm'}> +CONFIG_CAVIUM_CPT policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_NITROX_CNN55XX policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CRYPTO_DEV_MARVELL_CESA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CRYPTO_DEV_OCTEONTX_CPT policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_OCTEONTX2_CPT policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_CAVIUM_ZIP policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_QCE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN policy<{'arm64': '512', 'armhf': '512'}> +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_ZYNQMP_AES policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_CHELSIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CRYPTO_DEV_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_DEV_BCM_SPU policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_SAFEXCEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_DEV_ARTPEC6 policy<{'armhf': 'm'}> +CONFIG_CRYPTO_DEV_CCREE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_TRNG policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_AMLOGIC_GXL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRYPTO_DEV_SA2UL policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4 policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_ECB policy<{'arm64': 'y'}> +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_CTS policy<{'arm64': 'y'}> +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU policy<{'arm64': 'm'}> +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU_HMAC_SHA224 policy<{'arm64': 'y'}> +# +CONFIG_CRYPTO_DEV_HISI_ZIP mark + +# Menu: Cryptographic API >> Hardware crypto devices >> Algorithms enabled for QCE acceleration +CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_CRYPTO_DEV_QCE_ENABLE_AEAD policy<{'arm64': 'n', 'armhf': 'n'}> + +# Menu: Cryptographic API >> Hardware crypto devices >> Freescale CAAM Job Ring driver backend +CONFIG_CRYPTO_DEV_FSL_CAAM_JR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE policy<{'arm64': '9', 'armhf': '9'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD policy<{'arm64': '255', 'armhf': '255'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD policy<{'arm64': '2048', 'armhf': '2048'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_QI policy<{'arm64': 'y'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API policy<{'arm64': 'y', 'armhf': 'y'}> + +# Menu: Cryptographic API >> Hardware crypto devices >> Support for Allwinner cryptographic offloader +CONFIG_CRYPTO_DEV_ALLWINNER policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN4I_SS policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN4I_SS_DEBUG policy<{'arm64': 'n', 'armhf': '-'}> + +# Menu: Cryptographic API >> Hardware crypto devices >> Support for Allwinner cryptographic offloader >> Support for Allwinner Crypto Engine cryptographic offloader +CONFIG_CRYPTO_DEV_SUN8I_CE policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_CE_HASH policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG policy<{'arm64': 'y', 'armhf': '-'}> + +# Menu: Cryptographic API >> Hardware crypto devices >> Support for Allwinner cryptographic offloader >> Support for Allwinner Security System cryptographic offloader +CONFIG_CRYPTO_DEV_SUN8I_SS policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CRYPTO_DEV_SUN8I_SS_HASH policy<{'arm64': 'y', 'armhf': '-'}> + +# 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 >> Hardware crypto devices >> Support for s390 cryptographic adapters +CONFIG_ZCRYPT policy<{'s390x': 'm'}> +CONFIG_ZCRYPT_DEBUG policy<{'s390x': 'n'}> +CONFIG_ZCRYPT_MULTIDEVNODES policy<{'s390x': 'y'}> +CONFIG_PKEY policy<{'s390x': 'm'}> +CONFIG_CRYPTO_PAES_S390 policy<{'s390x': 'm'}> +# +CONFIG_ZCRYPT_MULTIDEVNODES mark note + +# Menu: Cryptographic API >> NIST SP800-90A DRBG +CONFIG_CRYPTO_DRBG_MENU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_DRBG_HASH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRYPTO_DRBG_CTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Device Drivers +CONFIG_MEDIA_CEC_RC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CEC_PIN_ERROR_INJ policy<{'amd64': 'n', 'arm64': 'n', 'armhf': '-'}> +CONFIG_PANEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TEE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Accessibility support +CONFIG_ACCESSIBILITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_ACCESSIBILITY mark note + +# Menu: Device Drivers >> Accessibility support >> Speakup console speech + +# Menu: Device Drivers >> Accessibility support >> Speakup console speech >> Speakup core + +# Menu: Device Drivers >> Android +CONFIG_ANDROID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> + +# Menu: Device Drivers >> Android >> Android Binder IPC Driver +CONFIG_ANDROID_BINDER_IPC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ANDROID_BINDERFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ANDROID_BINDER_DEVICES policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""'}> +CONFIG_ANDROID_BINDER_IPC_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Auxiliary Display support +CONFIG_CHARLCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AUXDISPLAY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_HD44780_COMMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HD44780 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IMG_ASCII_LCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HT16K33 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LCD2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ARM_CHARLCD policy<{'armhf': 'y'}> +CONFIG_PANEL_CHANGE_MESSAGE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Auxiliary Display support >> Backlight initial state +CONFIG_CHARLCD_BL_OFF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CHARLCD_BL_ON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CHARLCD_BL_FLASH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Auxiliary Display support >> KS0108 LCD Controller +CONFIG_KS0108 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KS0108_PORT policy<{'amd64': '0x378', 'arm64': '0x378', 'armhf': '0x378', 'ppc64el': '0x378', 'riscv64': '0x378'}> +CONFIG_KS0108_DELAY policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2'}> +CONFIG_CFAG12864B policy<{'amd64': 'm'}> +CONFIG_CFAG12864B_RATE policy<{'amd64': '20'}> + +# Menu: Device Drivers >> Auxiliary Display support >> Parallel port LCD/Keypad Panel support +CONFIG_PARPORT_PANEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PANEL_PARPORT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_PANEL_PROFILE policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'ppc64el': '5', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_NULL_BLK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_FD policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_BLK_DEV_PCIESSD_MTIP32XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BLK_DEV_LOOP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_LOOP_MIN_COUNT policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8', 's390x': '8'}> +CONFIG_BLK_DEV_DRBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DRBD_FAULT_INJECTION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BLK_DEV_NBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_SX8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BLK_DEV_RAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_RAM_COUNT policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'ppc64el': '16', 'riscv64': '16', 's390x': '16'}> +CONFIG_BLK_DEV_RAM_SIZE policy<{'amd64': '65536', 'arm64': '65536', 'armhf': '65536', 'ppc64el': '65536', 'riscv64': '65536', 's390x': '65536'}> +CONFIG_CDROM_PKTCDVD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CDROM_PKTCDVD_BUFFERS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> +CONFIG_CDROM_PKTCDVD_WCACHE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATA_OVER_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DCSSBLK policy<{'s390x': 'm'}> +CONFIG_SCM_BLOCK policy<{'s390x': 'm'}> +CONFIG_XEN_BLKDEV_FRONTEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_BLKDEV_BACKEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_VIRTIO_BLK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_RBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_RNBD_CLIENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_RNBD_SERVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_CDROM_PKTCDVD_WCACHE mark +CONFIG_XEN_BLKDEV_FRONTEND note +CONFIG_VIRTIO_BLK note +CONFIG_BLK_DEV_RAM note +CONFIG_BLK_DEV_RAM_SIZE mark note flag + +# Menu: Device Drivers >> Block devices >> Compressed RAM block device support +CONFIG_ZRAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ZRAM_WRITEBACK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZRAM_MEMORY_TRACKING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Device Drivers >> Block devices >> Compressed RAM block device support >> Default zram compressor +CONFIG_ZRAM_DEF_COMP_LZORLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZRAM_DEF_COMP_ZSTD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZRAM_DEF_COMP_LZ4 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZRAM_DEF_COMP_LZO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZRAM_DEF_COMP_LZ4HC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZRAM_DEF_COMP_842 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> Block devices >> Parallel port IDE device support +CONFIG_PARIDE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_PD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_PCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_PF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_PT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_PG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_ATEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_BPCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_BPCK6 policy<{'armhf': 'm'}> +CONFIG_PARIDE_COMM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_DSTR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_FIT2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_FIT3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_EPAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_EPATC8 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PARIDE_EPIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_FRIQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_FRPW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_KBIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_KTTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_ON20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARIDE_ON26 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_POWER_RESET_AS3722 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_ATC260X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +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', 'riscv64': 'y'}> +CONFIG_POWER_RESET_GPIO_RESTART policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_HISI policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_POWER_RESET_LINKSTATION policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_POWER_RESET_MSM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_POWER_RESET_QCOM_PON policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_POWER_RESET_OCELOT_RESET policy<{'arm64': 'y'}> +CONFIG_POWER_RESET_LTC2952 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_MT6323 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_QNAP policy<{'armhf': 'n'}> +CONFIG_POWER_RESET_REGULATOR policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_RESTART policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_POWER_RESET_TPS65086 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'riscv64': 'y'}> +CONFIG_POWER_RESET_SYSCON_POWEROFF policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_POWER_RESET_RMOBILE policy<{'armhf': 'm'}> +CONFIG_SYSCON_REBOOT_MODE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_POWER_RESET_SC27XX policy<{'arm64': 'm'}> +CONFIG_NVMEM_REBOOT_MODE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Broadcom specific AMBA +CONFIG_BCMA_HOST_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BCMA_HOST_SOC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA_DRIVER_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA_SFLASH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA_DRIVER_GMAC_CMN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA_DRIVER_GPIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BCMA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Bus devices +CONFIG_BRCMSTB_GISB_ARB policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MOXTET policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HISILICON_LPC policy<{'arm64': 'y'}> +CONFIG_IMX_WEIM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_OMAP_INTERCONNECT policy<{'armhf': 'y'}> +CONFIG_OMAP_OCP2SCP policy<{'armhf': 'm'}> +CONFIG_QCOM_EBI2 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SUN50I_DE2_BUS policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SUNXI_RSB policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_TEGRA_ACONNECT policy<{'arm64': 'm'}> +CONFIG_TEGRA_GMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_TI_SYSC policy<{'armhf': 'y'}> +CONFIG_UNIPHIER_SYSTEM_BUS policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_VEXPRESS_CONFIG policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_FSL_MC_BUS policy<{'arm64': 'y', 'armhf': 'n'}> +CONFIG_FSL_MC_UAPI_SUPPORT policy<{'arm64': 'y'}> +CONFIG_MHI_BUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MHI_BUS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MHI_BUS_PCI_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> CXL (Compute Express Link) Devices Support +CONFIG_CXL_BUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CXL_MEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CXL_MEM_RAW_COMMANDS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CXL_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CXL_PMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Character devices +CONFIG_RANDOM_TRUST_CPU policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_RANDOM_TRUST_BOOTLOADER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TTY_PRINTK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_TTY_PRINTK_LEVEL policy<{'amd64': '6', 'arm64': '6', 'armhf': '6', 'ppc64el': '6', 'riscv64': '6'}> +CONFIG_PRINTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LP_CONSOLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PPDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIRTIO_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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_IPMI_KCS_BMC_CDEV_IPMI policy<{'armhf': 'm'}> +CONFIG_IPMI_KCS_BMC_SERIO policy<{'armhf': 'm'}> +CONFIG_ASPEED_BT_IPMI_BMC policy<{'armhf': 'm'}> +CONFIG_IPMB_DEVICE_INTERFACE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_APPLICOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MWAVE policy<{'amd64': 'm'}> +CONFIG_DEVMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NVRAM policy<{'amd64': 'm', 'ppc64el': 'y'}> +CONFIG_DEVPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HPET policy<{'amd64': 'y'}> +CONFIG_HPET_MMAP policy<{'amd64': 'y'}> +CONFIG_HPET_MMAP_DEFAULT policy<{'amd64': 'y'}> +CONFIG_HANGCHECK_TIMER policy<{'amd64': 'm', 'ppc64el': 'm', 's390x': 'm'}> +CONFIG_UV_MMTIMER policy<{'amd64': 'm'}> +CONFIG_TELCLOCK policy<{'amd64': 'm'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_XILLYBUS_PCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_XILLYBUS_OF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_XILLYUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_NVRAM mark note +CONFIG_SCLP_OFB mark note + +# Menu: Device Drivers >> Character devices >> Enable TTY +CONFIG_NULL_TTY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +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', 'armhf': '-'}> +CONFIG_HVC_XEN_FRONTEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_HVC_UDBG policy<{'ppc64el': 'n'}> +CONFIG_HVC_DCC policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_HVCS policy<{'ppc64el': 'm'}> +CONFIG_TTY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CONSOLE_TRANSLATIONS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VT_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VT_HW_CONSOLE_BINDING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UNIX98_PTYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LEGACY_PTYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LEGACY_PTY_COUNT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0', 's390x': '0'}> +CONFIG_GOLDFISH_TTY policy<{'riscv64': 'm'}> +CONFIG_NOZOMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_N_GSM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PPC_EPAPR_HV_BYTECHAN policy<{'ppc64el': 'n'}> +CONFIG_LDISC_AUTOLOAD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_HVC_UDBG mark note +CONFIG_N_GSM note + +# Menu: Device Drivers >> Character devices >> Enable TTY >> Non-standard serial port support +CONFIG_SERIAL_NONSTANDARD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MOXA_INTELLIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOXA_SMARTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SYNCLINK_GT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_N_HDLC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> 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_KGDB_NMI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_MESON policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_MESON_CONSOLE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_SAMSUNG policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SERIAL_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SERIAL_TEGRA_TCU policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_TEGRA_TCU_CONSOLE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_MAX3100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIAL_MAX310X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_IMX policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_IMX_CONSOLE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_IMX_EARLYCON policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_SERIAL_UARTLITE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SERIAL_UARTLITE_NR_UARTS policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1', 's390x': '1'}> +CONFIG_SERIAL_ICOM policy<{'ppc64el': 'm'}> +CONFIG_SERIAL_JSM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_QCOM_GENI_CONSOLE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_OMAP policy<{'armhf': '-'}> +CONFIG_SERIAL_OMAP_CONSOLE policy<{'armhf': '-'}> +CONFIG_SERIAL_SIFIVE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'y'}> +CONFIG_SERIAL_SIFIVE_CONSOLE policy<{'riscv64': 'y'}> +CONFIG_SERIAL_LANTIQ policy<{'amd64': 'm'}> +CONFIG_SERIAL_QE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_SERIAL_SCCNXP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SERIAL_SCCNXP_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_SC16IS7XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_SC16IS7XX_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_SC16IS7XX_SPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_ALTERA_JTAGUART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_XILINX_PS_UART policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_ARC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_ARC_NR_PORTS policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1'}> +CONFIG_SERIAL_RP2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_RP2_NR_UARTS policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32'}> +CONFIG_SERIAL_FSL_LPUART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_FSL_LINFLEXUART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SERIAL_CONEXANT_DIGICOLOR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_ST_ASC policy<{'armhf': 'm'}> +CONFIG_SERIAL_MEN_Z135 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_SPRD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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'}> +CONFIG_SERIAL_LITEUART policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_LITEUART_MAX_PORTS policy<{'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> Serial drivers >> 8250/16550 and compatible serial support +CONFIG_SERIAL_8250 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SERIAL_8250_PNP policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SERIAL_8250_16550A_VARIANTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_FINTEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_EXAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_8250_CS policy<{'amd64': 'm'}> +CONFIG_SERIAL_8250_MEN_MCB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_8250_NR_UARTS policy<{'amd64': '48', 'arm64': '48', 'armhf': '48', 'ppc64el': '48', 'riscv64': '48'}> +CONFIG_SERIAL_8250_RUNTIME_UARTS policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32'}> +CONFIG_SERIAL_8250_ASPEED_VUART policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_8250_DW policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_8250_RT288X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_OMAP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_8250_MT6577 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_8250_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_SERIAL_8250_LPSS policy<{'amd64': 'm'}> +CONFIG_SERIAL_8250_MID policy<{'amd64': 'y'}> +CONFIG_SERIAL_8250_MID note<'required to provide console on some Intel SoC platforms (LP: #2009283)'> +CONFIG_HSU_DMA policy<{'amd64': 'y'}> +CONFIG_HSU_DMA note<'required by CONFIG_SERIAL_8250_MID (LP: #2009283)'> +CONFIG_SERIAL_8250_TEGRA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SERIAL_8250_BCM7271 policy<{'arm64': 'm'}> +CONFIG_SERIAL_OF_PLATFORM policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_SHARE_IRQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_DETECT_IRQ policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SERIAL_8250_RSA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIAL_8250_BCM2835AUX policy<{'arm64': 'n'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> 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', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> Serial drivers >> AT91 on-chip serial port support + +# Menu: Device Drivers >> Character devices >> Enable TTY >> Serial drivers >> Altera UART support +CONFIG_SERIAL_ALTERA_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SERIAL_ALTERA_UART_MAXPORTS policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'ppc64el': '4', 'riscv64': '4'}> +CONFIG_SERIAL_ALTERA_UART_BAUDRATE policy<{'amd64': '115200', 'arm64': '115200', 'armhf': '115200', 'ppc64el': '115200', 'riscv64': '115200'}> + +# Menu: Device Drivers >> Character devices >> Enable TTY >> 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 >> Enable TTY >> Serial drivers >> TMPTX39XX/49XX SIO support + +# Menu: Device Drivers >> Character devices >> Hardware Random Number Generator Core support +CONFIG_HW_RANDOM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HW_RANDOM_TIMERIOMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HW_RANDOM_INTEL policy<{'amd64': 'm'}> +CONFIG_HW_RANDOM_AMD policy<{'amd64': 'm'}> +CONFIG_HW_RANDOM_BA431 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_HW_RANDOM_BCM2835 policy<{'arm64': 'm'}> +CONFIG_HW_RANDOM_IPROC_RNG200 policy<{'arm64': 'm'}> +CONFIG_HW_RANDOM_VIA policy<{'amd64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_HW_RANDOM_IMX_RNGC policy<{'armhf': '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_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': 'n'}> +CONFIG_HW_RANDOM_OPTEE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_HW_RANDOM_NPCM policy<{'armhf': 'm'}> +CONFIG_HW_RANDOM_CCTRNG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', 'riscv64': 'm'}> +CONFIG_HW_RANDOM_XIPHERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_IPMI_PANIC_EVENT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_IPMI_DEVICE_INTERFACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPMI_SI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPMI_SSIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPMI_POWERNV policy<{'ppc64el': 'm'}> +CONFIG_IPMI_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPMI_POWEROFF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Character devices >> PCMCIA character devices +CONFIG_SYNCLINK_CS policy<{'amd64': 'm'}> +CONFIG_CARDMAN_4000 policy<{'amd64': 'm'}> +CONFIG_CARDMAN_4040 policy<{'amd64': 'm'}> +CONFIG_SCR24X policy<{'amd64': 'm'}> +CONFIG_IPWIRELESS policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Character devices >> Serial device bus +CONFIG_SERIAL_DEV_BUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SERIAL_DEV_CTRL_TTYPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SERIAL_DEV_BUS note +CONFIG_SERIAL_DEV_CTRL_TTYPORT note + +# Menu: Device Drivers >> Character devices >> TPM Hardware Support +CONFIG_TCG_TPM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HW_RANDOM_TPM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TCG_TIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TCG_TIS_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TCG_TIS_SPI_CR50 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TCG_TIS_SYNQUACER policy<{'arm64': 'm'}> +CONFIG_TCG_TIS_I2C_CR50 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCG_TIS_I2C_ATMEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCG_TIS_I2C_INFINEON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCG_TIS_I2C_NUVOTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCG_NSC policy<{'amd64': 'm'}> +CONFIG_TCG_ATMEL policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TCG_INFINEON policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_TCG_IBMVTPM policy<{'ppc64el': 'y'}> +CONFIG_TCG_XEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_TCG_CRB policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_TCG_VTPM_PROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCG_FTPM_TEE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_TCG_TIS_ST33ZP24_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCG_TIS_ST33ZP24_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_TCG_TPM note +CONFIG_TCG_TIS_I2C_ATMEL note +CONFIG_TCG_TIS_I2C_INFINEON note +CONFIG_TCG_TIS_I2C_NUVOTON note + +# Menu: Device Drivers >> Clock Source drivers +CONFIG_DW_APB_TIMER policy<{'arm64': 'y', 'armhf': '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_SUN4I_TIMER policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_TEGRA_TIMER policy<{'arm64': 'y', 'armhf': '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_GT_INITIAL_PRESCALER_VAL policy<{'armhf': '1'}> +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', 'arm64': '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<{'armhf': 'y'}> +CONFIG_CLKSRC_IMX_GPT policy<{'armhf': 'y'}> +CONFIG_CLKSRC_IMX_TPM policy<{'armhf': 'y'}> +CONFIG_TIMER_IMX_SYS_CTR policy<{'arm64': 'y'}> +CONFIG_RISCV_TIMER policy<{'riscv64': 'y'}> +CONFIG_MILBEAUT_TIMER policy<{'armhf': 'y'}> +CONFIG_MICROCHIP_PIT64B policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +# +CONFIG_ARM64_ERRATUM_858921 mark note + +# Menu: Device Drivers >> Common Clock Framework +CONFIG_COMMON_CLK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_COMMON_CLK_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LMK04832 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_MAX77686 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_MAX9485 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_RK808 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_SI5351 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_SI514 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_SI544 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_SI570 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_BM1880 policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_CDCE706 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_CDCE925 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_CS2000_CP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_FSL_FLEXSPI policy<{'arm64': 'm'}> +CONFIG_COMMON_CLK_FSL_SAI policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_ASPEED policy<{'armhf': 'y'}> +CONFIG_COMMON_CLK_S2MPS11 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CLK_TWL6040 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_AXI_CLKGEN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CLK_QORIQ policy<{'arm64': 'y'}> +CONFIG_CLK_LS1028A_PLLDIG policy<{'arm64': 'm'}> +CONFIG_COMMON_CLK_XGENE policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_LOCHNAGAR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_PALMAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_PWM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_VC5 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_BD718XX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMMON_CLK_FIXED_MMIO policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CLK_BCM2711_DVP policy<{'arm64': 'm'}> +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_HI3559A policy<{'arm64': 'y', 'armhf': 'y'}> +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_MXC_CLK policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_IMX8MM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_IMX8MN policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_IMX8MP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_IMX8MQ policy<{'arm64': 'y', 'armhf': '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_TI_SYSCON_CLK policy<{'arm64': 'y'}> +CONFIG_MSTAR_MSC313_MPLL policy<{'armhf': 'y'}> +CONFIG_CLK_INTEL_SOCFPGA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_INTEL_SOCFPGA32 policy<{'armhf': 'y'}> +CONFIG_CLK_INTEL_SOCFPGA64 policy<{'arm64': 'y'}> +CONFIG_SPRD_COMMON_CLK policy<{'arm64': 'm'}> +CONFIG_SPRD_SC9860_CLK policy<{'arm64': 'm'}> +CONFIG_SPRD_SC9863A_CLK policy<{'arm64': 'm'}> +CONFIG_COMMON_CLK_TI_ADPLL policy<{'armhf': 'y'}> +CONFIG_CLK_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_XILINX_VCU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_COMMON_CLK_ZYNQMP policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> Common Clock Framework >> Clock driver for ARM Reference designs +CONFIG_CLK_SP810 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_CLK_VEXPRESS_OSC policy<{'arm64': 'y', 'armhf': '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_MT8173_MMSYS 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 MT6765 +CONFIG_COMMON_CLK_MT6765 policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_AUDIOSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_CAMSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_GCESYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MMSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_IMGSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_VCODECSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MFGSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI0ASYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI0BSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI1ASYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI1BSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI2ASYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT6765_MIPI2BSYS 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 MT8167 +CONFIG_COMMON_CLK_MT8167 policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8167_AUDSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8167_IMGSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8167_MFGCFG policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8167_MMSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8167_VDECSYS policy<{'arm64': '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 driver for MediaTek SoC >> Clock driver for MediaTek MT8192 +CONFIG_COMMON_CLK_MT8192 policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_AUDSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_CAMSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_IMGSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_IMP_IIC_WRAP policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_IPESYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_MDPSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_MFGCFG policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_MMSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_MSDC policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_SCP_ADSP policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_VDECSYS policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_MT8192_VENCSYS policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> Common Clock Framework >> Clock support for Allwinner SoCs +CONFIG_SUNXI_CCU policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SUN50I_A64_CCU policy<{'arm64': 'y'}> +CONFIG_SUN50I_A100_CCU policy<{'arm64': 'y'}> +CONFIG_SUN50I_A100_R_CCU policy<{'arm64': 'y'}> +CONFIG_SUN50I_H6_CCU policy<{'arm64': 'y'}> +CONFIG_SUN50I_H616_CCU policy<{'arm64': 'y'}> +CONFIG_SUN50I_H6_R_CCU policy<{'arm64': 'y'}> +CONFIG_SUN8I_H3_CCU policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SUN8I_DE2_CCU policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SUN8I_R_CCU policy<{'arm64': 'y', 'armhf': '-'}> + +# Menu: Device Drivers >> Common Clock Framework >> Clock support for Amlogic platforms +CONFIG_COMMON_CLK_MESON8B policy<{'armhf': 'y'}> +CONFIG_COMMON_CLK_GXBB policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_AXG policy<{'arm64': 'y'}> +CONFIG_COMMON_CLK_AXG_AUDIO policy<{'arm64': 'm', 'armhf': 'n'}> +CONFIG_COMMON_CLK_G12A 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', 'armhf': '-'}> +CONFIG_CLK_SUNXI_CLOCKS policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CLK_SUNXI_PRCM_SUN6I policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CLK_SUNXI_PRCM_SUN8I policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_CLK_SUNXI_PRCM_SUN9I policy<{'arm64': 'y', 'armhf': '-'}> + +# Menu: Device Drivers >> Common Clock Framework >> Renesas SoC clock support +CONFIG_CLK_RENESAS policy<{'arm64': 'y', '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_R8A7742 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_R8A774B1 policy<{'arm64': 'y'}> +CONFIG_CLK_R8A774C0 policy<{'arm64': 'y'}> +CONFIG_CLK_R8A774E1 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_R8A77960 policy<{'arm64': 'y'}> +CONFIG_CLK_R8A77961 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_R8A779A0 policy<{'arm64': 'y'}> +CONFIG_CLK_R9A06G032 policy<{'armhf': 'y'}> +CONFIG_CLK_R9A07G044 policy<{'arm64': 'y'}> +CONFIG_CLK_SH73A0 policy<{'armhf': 'y'}> +CONFIG_CLK_RCAR_CPG_LIB policy<{'arm64': '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_RZG2L policy<{'arm64': '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 >> Rockchip clock controller common support +CONFIG_COMMON_CLK_ROCKCHIP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_CLK_PX30 policy<{'arm64': 'y'}> +CONFIG_CLK_RV110X policy<{'armhf': 'y'}> +CONFIG_CLK_RK3036 policy<{'armhf': 'y'}> +CONFIG_CLK_RK312X policy<{'armhf': 'y'}> +CONFIG_CLK_RK3188 policy<{'armhf': 'y'}> +CONFIG_CLK_RK322X policy<{'armhf': 'y'}> +CONFIG_CLK_RK3288 policy<{'armhf': 'y'}> +CONFIG_CLK_RK3308 policy<{'arm64': 'y'}> +CONFIG_CLK_RK3328 policy<{'arm64': 'y'}> +CONFIG_CLK_RK3368 policy<{'arm64': 'y'}> +CONFIG_CLK_RK3399 policy<{'arm64': 'y'}> +CONFIG_CLK_RK3568 policy<{'arm64': 'y', 'armhf': '-'}> + +# Menu: Device Drivers >> Common Clock Framework >> Samsung Exynos clock controller support +CONFIG_COMMON_CLK_SAMSUNG policy<{'armhf': 'y'}> +CONFIG_EXYNOS_5250_COMMON_CLK policy<{'armhf': '-'}> +CONFIG_EXYNOS_5260_COMMON_CLK policy<{'armhf': '-'}> +CONFIG_EXYNOS_5410_COMMON_CLK policy<{'armhf': '-'}> +CONFIG_EXYNOS_5420_COMMON_CLK policy<{'armhf': '-'}> +CONFIG_EXYNOS_AUDSS_CLK_CON policy<{'armhf': 'n'}> +CONFIG_EXYNOS_CLKOUT policy<{'armhf': 'n'}> + +# Menu: Device Drivers >> Common Clock Framework >> SiFive SoC driver support +CONFIG_CLK_SIFIVE policy<{'riscv64': 'y'}> +CONFIG_CLK_SIFIVE_PRCI policy<{'riscv64': 'y'}> + +# 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_A7PLL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_CLK_APCS_MSM8916 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_CLK_APCC_MSM8996 policy<{'arm64': 'm'}> +CONFIG_QCOM_CLK_APCS_SDX55 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', 'armhf': 'm'}> +CONFIG_APQ_GCC_8084 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_APQ_MMCC_8084 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IPQ_APSS_PLL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IPQ_APSS_6018 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IPQ_GCC_4019 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IPQ_GCC_6018 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_8939 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_9607 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_8953 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_MMCC_8994 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_MSM_GPUCC_8998 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MSM_MMCC_8998 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCS_GCC_404 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_CAMCC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_DISPCC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_DISPCC_7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_GCC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_GCC_7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_GCC_8180X policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_LPASS_CORECC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_GPUCC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_GPUCC_7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_MSS_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_VIDEOCC_7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SC_VIDEOCC_7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SDM_CAMCC_845 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SDM_GCC_660 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SDM_MMCC_660 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SDM_GPUCC_660 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCS_TURING_404 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCS_Q6SSTOP_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_SDX_GCC_55 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_CAMCC_8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_DISPCC_8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_6115 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_6125 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_6350 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_8150 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GCC_8350 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GPUCC_8150 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_GPUCC_8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_VIDEOCC_8150 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SM_VIDEOCC_8250 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'}> +CONFIG_CLK_GFM_LPASS_SM8250 policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Connector - unified userspace <-> kernelspace linker +CONFIG_CONNECTOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_EVENTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Device Drivers >> Counter support +CONFIG_COUNTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_104_QUAD_8 policy<{'amd64': 'm'}> +CONFIG_INTERRUPT_CNT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_TI_EQEP policy<{'armhf-generic': 'm'}> +CONFIG_FTM_QUADDEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_MICROCHIP_TCB_CAPTURE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_INTEL_QEP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> + +# Menu: Device Drivers >> DAX: direct access to differentiated memory +CONFIG_DAX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEV_DAX policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DEV_DAX_PMEM policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}> +CONFIG_DEV_DAX_HMEM policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_DEV_DAX_KMEM policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> DMA Engine support +CONFIG_DMADEVICES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DMADEVICES_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ALTERA_MSGDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_AMBA_PL08X policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_AXI_DMAC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_BCM_SBA_RAID policy<{'arm64': 'm'}> +CONFIG_DMA_BCM2835 policy<{'arm64': 'y'}> +CONFIG_DMA_SUN6I policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DW_AXI_DMAC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSL_EDMA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSL_QDMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_HISI_DMA policy<{'arm64': 'n'}> +CONFIG_IMX_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_SDMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTEL_IDMA64 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INTEL_IDXD policy<{'amd64': 'm'}> +CONFIG_INTEL_IDXD_COMPAT policy<{'amd64': 'n'}> +CONFIG_INTEL_IDXD_SVM policy<{'amd64': 'y'}> +CONFIG_INTEL_IDXD_PERFMON policy<{'amd64': 'y'}> +CONFIG_INTEL_IOATDMA policy<{'amd64': 'm'}> +CONFIG_K3_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MILBEAUT_HDMAC policy<{'armhf': 'm'}> +CONFIG_MILBEAUT_XDMAC policy<{'armhf': 'm'}> +CONFIG_MV_XOR policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MV_XOR_V2 policy<{'arm64': 'y'}> +CONFIG_MXS_DMA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MX3_IPU policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MX3_IPU_IRQS policy<{'arm64': '4', 'armhf': '4'}> +CONFIG_NBPFAXI_DMA policy<{'armhf': 'm'}> +CONFIG_OWL_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PL330_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PLX_DMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPRD_DMA policy<{'arm64': 'm'}> +CONFIG_TEGRA20_APB_DMA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_TEGRA210_ADMA policy<{'arm64': 'm'}> +CONFIG_UNIPHIER_MDMAC policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_UNIPHIER_XDMAC policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_XGENE_DMA policy<{'arm64': 'm'}> +CONFIG_XILINX_DMA policy<{'arm64': 'm'}> +CONFIG_XILINX_ZYNQMP_DMA policy<{'arm64': 'm'}> +CONFIG_XILINX_ZYNQMP_DPDMA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_AMD_PTDMA policy<{'amd64': 'm'}> +CONFIG_QCOM_ADM policy<{'armhf-generic': 'm'}> +CONFIG_QCOM_BAM_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_GPI_DMA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_HIDMA_MGMT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_QCOM_HIDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DW_DMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DW_DMAC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DW_EDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DW_EDMA_PCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SF_PDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RCAR_DMAC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RENESAS_USB_DMAC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RZ_DMAC policy<{'arm64': 'm'}> +CONFIG_TI_CPPI41 policy<{'armhf': 'm'}> +CONFIG_TI_EDMA policy<{'armhf': 'y'}> +CONFIG_DMA_OMAP policy<{'armhf': 'y'}> +CONFIG_TI_K3_UDMA policy<{'arm64': 'y'}> +CONFIG_TI_K3_UDMA_GLUE_LAYER policy<{'arm64': 'y'}> +CONFIG_FSL_DPAA2_QDMA policy<{'arm64': 'm'}> +CONFIG_INTEL_LDMA policy<{'amd64': 'y'}> +CONFIG_ASYNC_TX_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DMATEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_DMATEST flag + +# Menu: Device Drivers >> DMABUF options +CONFIG_SYNC_FILE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SW_SYNC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UDMABUF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DMABUF_MOVE_NOTIFY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DMABUF_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DMABUF_SELFTESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DMABUF_SYSFS_STATS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> DMABUF options >> DMA-BUF Userland Memory Heaps +CONFIG_DMABUF_HEAPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DMABUF_HEAPS_SYSTEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DMABUF_HEAPS_CMA policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Dallas's 1-wire support +CONFIG_W1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_W1_CON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> + +# Menu: Device Drivers >> Dallas's 1-wire support >> 1-wire Bus Masters +CONFIG_W1_MASTER_MATROX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_MASTER_DS2490 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_MASTER_DS2482 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_MASTER_MXC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_W1_MASTER_DS1WM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_MASTER_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HDQ_MASTER_OMAP policy<{'armhf': 'm'}> +CONFIG_W1_MASTER_SGI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Dallas's 1-wire support >> 1-wire Slaves +CONFIG_W1_SLAVE_THERM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_SMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2405 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2408 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2408_READBACK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_W1_SLAVE_DS2413 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2406 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2423 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2805 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2430 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2431 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2433 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2433_CRC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2438 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS250X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2780 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS2781 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS28E04 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_W1_SLAVE_DS28E17 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) +CONFIG_COMEDI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_COMEDI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'ppc64el': '2048', 'riscv64': '2048'}> +CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB policy<{'amd64': '20480', 'arm64': '20480', 'armhf': '20480', 'ppc64el': '20480', 'riscv64': '20480'}> +CONFIG_COMEDI_8255_SA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_KCOMEDILIB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_TESTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_TESTS_EXAMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_TESTS_NI_ROUTES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) >> Comedi ISA and PC/104 drivers +CONFIG_COMEDI_ISA_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_COMEDI_PCL711 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL724 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL726 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL730 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL812 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL816 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCL818 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCM3724 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_DIO200_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PC236_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PC263_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_RTI800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_RTI802 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAC02 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS16M1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS08_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS16 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS1800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS6402 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT2801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT2811 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT2814 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT2815 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT2817 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT282X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DMM32AT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_FL512 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AIO_AIO12_8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AIO_IIRO_16 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_II_PCI20KC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_C6XDIGIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_MPC624 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADQ12B policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_AT_A2150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_AT_AO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_ATMIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_ATMIO16D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_LABPC_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCMAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCMDA12 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCMMIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PCMUIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_MULTIQ3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_S526 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) >> Comedi PCI drivers +CONFIG_COMEDI_PCI_DRIVERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_8255_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_1032 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_1500 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_1516 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_1564 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_16XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_2032 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_2200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_3120 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_3501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADDI_APCI_3XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADL_PCI6208 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADL_PCI7X3X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADL_PCI8164 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADL_PCI9111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADL_PCI9118 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI1710 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI1720 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI1723 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI1724 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI1760 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ADV_PCI_DIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_DIO200_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PC236_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PC263_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PCI224 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_AMPLC_PCI230 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CONTEC_PCI_DIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAS08_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DYNA_PCI10XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_GSC_HPDI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_MF6X4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ICP_MULTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DAQBOARD2000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_JR3_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_KE_COUNTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CB_PCIDAS64 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CB_PCIDAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CB_PCIDDA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CB_PCIMDAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_CB_PCIMDDA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ME4000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_ME_DAQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_6527 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_65XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_660X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_670X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_LABPC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_PCIDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_PCIMIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_RTD520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_S626 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) >> Comedi PCMCIA drivers +CONFIG_COMEDI_PCMCIA_DRIVERS policy<{'amd64': 'm'}> +CONFIG_COMEDI_CB_DAS16_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_DAS08_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_NI_DAQ_700_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_NI_DAQ_DIO24_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_NI_LABPC_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_NI_MIO_CS policy<{'amd64': 'm'}> +CONFIG_COMEDI_QUATECH_DAQP_CS policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) >> Comedi USB drivers +CONFIG_COMEDI_USB_DRIVERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_DT9812 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_NI_USB6501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_USBDUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_USBDUXFAST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_USBDUXSIGMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_VMK80XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Data acquisition support (comedi) >> Comedi misc drivers +CONFIG_COMEDI_MISC_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_COMEDI_BOND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_COMEDI_PARPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Device Tree and Open Firmware support +CONFIG_OF policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_OF_UNITTEST policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_OF_DYNAMIC policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_OF_OVERLAY policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +# +CONFIG_OF_UNITTEST flag + +# Menu: Device Drivers >> EDAC (Error Detection And Correction) reporting +CONFIG_EDAC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_EDAC_LEGACY_SYSFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_EDAC_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_EDAC_DECODE_MCE policy<{'amd64': 'm'}> +CONFIG_EDAC_GHES policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_EDAC_AMD64 policy<{'amd64': 'm'}> +CONFIG_EDAC_AL_MC policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_EDAC_E752X policy<{'amd64': 'm'}> +CONFIG_EDAC_I82975X policy<{'amd64': 'm'}> +CONFIG_EDAC_I3000 policy<{'amd64': 'm'}> +CONFIG_EDAC_I3200 policy<{'amd64': 'm'}> +CONFIG_EDAC_IE31200 policy<{'amd64': 'm'}> +CONFIG_EDAC_X38 policy<{'amd64': 'm'}> +CONFIG_EDAC_I5400 policy<{'amd64': 'm'}> +CONFIG_EDAC_I7CORE policy<{'amd64': 'm'}> +CONFIG_EDAC_I5000 policy<{'amd64': 'm'}> +CONFIG_EDAC_I5100 policy<{'amd64': 'm'}> +CONFIG_EDAC_I7300 policy<{'amd64': '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_IGEN6 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<{'riscv64': 'y'}> +CONFIG_EDAC_ARMADA_XP policy<{'armhf': 'y'}> +CONFIG_EDAC_SYNOPSYS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_EDAC_XGENE policy<{'arm64': 'm'}> +CONFIG_EDAC_TI policy<{'armhf': 'm'}> +CONFIG_EDAC_QCOM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_EDAC_ASPEED policy<{'armhf': 'm'}> +CONFIG_EDAC_BLUEFIELD policy<{'arm64': 'm'}> +CONFIG_EDAC_DMC520 policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> EDAC (Error Detection And Correction) reporting >> Altera SOCFPGA ECC +CONFIG_EDAC_ALTERA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_SDRAM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_L2C policy<{'armhf': 'y'}> +CONFIG_EDAC_ALTERA_OCRAM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_ETHERNET policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_NAND policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_USB policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_QSPI policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EDAC_ALTERA_SDMMC policy<{'arm64': 'y', 'armhf': 'y'}> + +# Menu: Device Drivers >> EISA support +CONFIG_EISA policy<{'amd64': 'y'}> +CONFIG_EISA_VLB_PRIMING policy<{'amd64': 'y'}> +CONFIG_EISA_PCI_EISA policy<{'amd64': 'y'}> +CONFIG_EISA_VIRTUAL_ROOT policy<{'amd64': 'y'}> +CONFIG_EISA_NAMES policy<{'amd64': 'y'}> + +# Menu: Device Drivers >> Eckelmann SIOX Support +CONFIG_SIOX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SIOX_BUS_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> External Connector Class (extcon) support +CONFIG_EXTCON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_EXTCON_ADC_JACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_EXTCON_AXP288 policy<{'amd64': 'm'}> +CONFIG_EXTCON_FSA9480 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_INTEL_INT3496 policy<{'amd64': 'm'}> +CONFIG_EXTCON_INTEL_CHT_WC policy<{'amd64': 'm'}> +CONFIG_EXTCON_INTEL_MRFLD policy<{'amd64': 'm'}> +CONFIG_EXTCON_MAX14577 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_MAX3355 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_MAX77693 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_MAX77843 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_MAX8997 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_PALMAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_PTN5150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_QCOM_SPMI_MISC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_EXTCON_RT8973A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_SM5502 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_USB_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EXTCON_USBC_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_EXTCON_USBC_TUSB320 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> FPGA Configuration Framework +CONFIG_FPGA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FPGA_MGR_SOCFPGA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_FPGA_MGR_SOCFPGA_A10 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ALTERA_PR_IP_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ALTERA_PR_IP_CORE_PLAT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_MGR_ALTERA_PS_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FPGA_MGR_ALTERA_CVP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FPGA_MGR_STRATIX10_SOC policy<{'arm64': 'm'}> +CONFIG_FPGA_MGR_XILINX_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FPGA_MGR_ICE40_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_MGR_MACHXO2_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FPGA_MGR_ZYNQMP_FPGA policy<{'arm64': 'm'}> +CONFIG_FPGA_MGR_VERSAL_FPGA policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> FPGA Configuration Framework >> FPGA Bridge Framework +CONFIG_FPGA_BRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SOCFPGA_FPGA_BRIDGE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ALTERA_FREEZE_BRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_XILINX_PR_DECOUPLER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_REGION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_OF_FPGA_REGION policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> FPGA Configuration Framework >> FPGA Device Feature List (DFL) support +CONFIG_FPGA_DFL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FPGA_DFL_AFU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_DFL_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_DFL_FME_MGR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_DFL_FME_BRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FPGA_DFL_FME_REGION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> FSI support +CONFIG_FSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_NEW_DEV_NODE policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_FSI_MASTER_GPIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_MASTER_HUB policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_MASTER_AST_CF policy<{'armhf': 'm'}> +CONFIG_FSI_MASTER_ASPEED policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_SCOM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_SBEFIFO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSI_OCC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Fusion MPT device support +CONFIG_FUSION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_FUSION_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FUSION_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FUSION_SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FUSION_MAX_SGE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128'}> +CONFIG_FUSION_CTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FUSION_LAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FUSION_LOGGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> GNSS receiver support +CONFIG_GNSS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GNSS_MTK_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GNSS_SIRF_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GNSS_UBX_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> GPIO Support +CONFIG_GPIOLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_GPIOLIB_FASTPATH_LIMIT policy<{'amd64': '512', 'arm64': '512', 'armhf': '512', 'ppc64el': '512', 'riscv64': '512', 's390x': '512'}> +CONFIG_DEBUG_GPIO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GPIO_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_GPIO_CDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_GPIO_CDEV_V1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +CONFIG_GPIO_CDEV_V1 note + +# Menu: Device Drivers >> GPIO Support >> I2C GPIO expanders +CONFIG_GPIO_ADP5588 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_ADNP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_GW_PLD policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MAX7300 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_MAX732X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_PCA953X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_PCA953X_IRQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_PCA9570 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_PCF857X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_TPIC2810 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_TS4900 policy<{'armhf': 'm'}> + +# Menu: Device Drivers >> GPIO Support >> MFD GPIO expanders +CONFIG_GPIO_ADP5520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_ALTERA_A10SR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_GPIO_ARIZONA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_BD71815 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_BD71828 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_BD9571MWV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_CRYSTAL_COVE policy<{'amd64': 'y'}> +CONFIG_GPIO_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_DA9055 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_DLN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HTC_EGPIO policy<{'armhf': 'y'}> +CONFIG_GPIO_JANZ_TTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_KEMPLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_LP3943 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_LP873X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_LP87565 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MADERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MAX77620 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MAX77650 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_PALMAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_RC5T583 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_SL28CPLD policy<{'arm64': 'm'}> +CONFIG_GPIO_STMPE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_TC3589X policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_TPS65086 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_TPS65218 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_TPS6586X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_TPS65910 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_TPS65912 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_TPS68470 policy<{'amd64': 'm'}> +CONFIG_GPIO_TQMX86 policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm'}> +CONFIG_GPIO_TWL4030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_TWL6040 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_UCB1400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_WHISKEY_COVE policy<{'amd64': 'm'}> +CONFIG_GPIO_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_WM8350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_WM8994 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_GPIO_TWL4030 mark note + +# Menu: Device Drivers >> GPIO Support >> Memory mapped GPIO drivers +CONFIG_GPIO_74XX_MMIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_ALTERA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_AMDPT policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_GPIO_ASPEED policy<{'armhf': 'm'}> +CONFIG_GPIO_ASPEED_SGPIO policy<{'armhf': 'y'}> +CONFIG_GPIO_RASPBERRYPI_EXP policy<{'arm64': 'm'}> +CONFIG_GPIO_BCM_XGS_IPROC policy<{'arm64': 'm'}> +CONFIG_GPIO_BRCMSTB policy<{'arm64': 'm'}> +CONFIG_GPIO_CADENCE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_DAVINCI policy<{'arm64': 'y'}> +CONFIG_GPIO_DWAPB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_FTGPIO010 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_GENERIC_PLATFORM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_GPIO_GRGPIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_HISI policy<{'arm64': 'm'}> +CONFIG_GPIO_HLWD policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_ICH policy<{'amd64': 'm'}> +CONFIG_GPIO_LOGICVC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MB86S7X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_MENZ127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MPC8XXX policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_GPIO_MXC 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_RDA policy<{'armhf': 'y'}> +CONFIG_GPIO_ROCKCHIP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_GPIO_SAMA5D2_PIOBU policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_SIFIVE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GPIO_SIOX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GPIO_SPRD policy<{'arm64': 'm'}> +CONFIG_GPIO_SYSCON policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_TEGRA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_GPIO_TEGRA186 policy<{'arm64': 'y'}> +CONFIG_GPIO_TS4800 policy<{'armhf': 'm'}> +CONFIG_GPIO_THUNDERX policy<{'arm64': 'm'}> +CONFIG_GPIO_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_GPIO_VISCONTI policy<{'arm64': 'm'}> +CONFIG_GPIO_VX855 policy<{'amd64': 'm'}> +CONFIG_GPIO_WCD934X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_XGENE policy<{'arm64': 'y'}> +CONFIG_GPIO_XGENE_SB policy<{'arm64': 'm'}> +CONFIG_GPIO_XILINX policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GPIO_MSC313 policy<{'armhf': 'y'}> +# +CONFIG_GPIO_EM note + +# Menu: Device Drivers >> GPIO Support >> PCI GPIO expanders +CONFIG_GPIO_AAEON policy<{'amd64': 'm'}> +CONFIG_GPIO_AMD8111 policy<{'amd64': 'm'}> +CONFIG_GPIO_BT8XX policy<{'s390x': 'm'}> +CONFIG_GPIO_MLXBF policy<{'arm64': 'm'}> +CONFIG_GPIO_MLXBF2 policy<{'arm64': 'm'}> +CONFIG_GPIO_ML_IOH policy<{'amd64': 'm'}> +CONFIG_GPIO_PCI_IDIO_16 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GPIO_PCIE_IDIO_24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GPIO_RDC321X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> GPIO Support >> Port-mapped I/O GPIO drivers +CONFIG_GPIO_104_DIO_48E policy<{'amd64': 'm'}> +CONFIG_GPIO_104_IDIO_16 policy<{'amd64': 'm'}> +CONFIG_GPIO_104_IDI_48 policy<{'amd64': 'm'}> +CONFIG_GPIO_F7188X policy<{'amd64': 'm'}> +CONFIG_GPIO_GPIO_MM policy<{'amd64': 'm'}> +CONFIG_GPIO_IT87 policy<{'amd64': 'm'}> +CONFIG_GPIO_SCH policy<{'amd64': 'm'}> +CONFIG_GPIO_SCH311X policy<{'amd64': 'm'}> +CONFIG_GPIO_WINBOND policy<{'amd64': 'm'}> +CONFIG_GPIO_WS16C48 policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> GPIO Support >> SPI GPIO expanders +CONFIG_GPIO_74X164 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_MAX3191X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_MAX7301 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_MC33880 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_PISOSR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_XRA1403 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GPIO_MOXTET policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> GPIO Support >> USB GPIO expanders +CONFIG_GPIO_VIPERBOARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> GPIO Support >> Virtual GPIO drivers +CONFIG_GPIO_AGGREGATOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GPIO_MOCKUP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GPIO_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> Generic Driver Options +CONFIG_UEVENT_HELPER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UEVENT_HELPER_PATH policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_DEVTMPFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEVTMPFS_MOUNT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEVTMPFS_SAFE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_STANDALONE policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PREVENT_FIRMWARE_BUILD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ALLOW_DEV_COREDUMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_DRIVER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_DEVRES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_TEST_DRIVER_REMOVE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_ASYNC_DRIVER_PROBE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DMA_FENCE_TRACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_DEVTMPFS mark note +CONFIG_DEVTMPFS_MOUNT mark note + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXTRA_FIRMWARE policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_FW_LOADER_USER_HELPER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FW_LOADER_USER_HELPER_FALLBACK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FW_LOADER_COMPRESS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FW_CACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +# +CONFIG_FW_LOADER_USER_HELPER_FALLBACK mark note + +# Menu: Device Drivers >> Generic Dynamic Voltage and Frequency Scaling (DVFS) support +CONFIG_PM_DEVFREQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEVFREQ_GOV_PERFORMANCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEVFREQ_GOV_POWERSAVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEVFREQ_GOV_USERSPACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEVFREQ_GOV_PASSIVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ARM_EXYNOS_BUS_DEVFREQ policy<{'armhf': 'n'}> +CONFIG_ARM_IMX_BUS_DEVFREQ policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_IMX8M_DDRC_DEVFREQ policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_TEGRA_DEVFREQ policy<{'arm64': 'm', 'armhf': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP policy<{'armhf': 'n'}> +CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU policy<{'armhf': 'n'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCM_IBLOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCM_FILEIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCM_PSCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCM_USER2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_LOOPBACK_TARGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCM_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ISCSI_TARGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ISCSI_TARGET_CXGB4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SBP_TARGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Generic powercap sysfs driver +CONFIG_POWERCAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_INTEL_RAPL policy<{'amd64': 'm'}> +CONFIG_IDLE_INJECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Graphics support +CONFIG_VGA_ARB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VGA_ARB_MAX_GPUS policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'ppc64el': '16', 'riscv64': '16'}> +CONFIG_VGA_SWITCHEROO policy<{'amd64': 'y'}> +CONFIG_TEGRA_HOST1X policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_TEGRA_HOST1X_FIREWALL policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_IMX_IPUV3_CORE policy<{'armhf': 'm'}> +CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> Graphics support >> /dev/agpgart (AGP Support) +CONFIG_AGP policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_AGP_AMD64 policy<{'amd64': 'y'}> +CONFIG_AGP_INTEL policy<{'amd64': 'y'}> +CONFIG_AGP_SIS policy<{'amd64': 'm'}> +CONFIG_AGP_VIA policy<{'amd64': 'y'}> +# +CONFIG_AGP note flag + +# 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', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BACKLIGHT_KTD253 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LM3533 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BACKLIGHT_CARILLO_RANCH policy<{'amd64': 'm'}> +CONFIG_BACKLIGHT_PWM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_DA903X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_MAX8925 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_APPLE policy<{'amd64': 'm'}> +CONFIG_BACKLIGHT_QCOM_WLED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_RT4831 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BACKLIGHT_SAHARA policy<{'amd64': 'm'}> +CONFIG_BACKLIGHT_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_ADP5520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_ADP8860 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_ADP8870 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_PCF50633 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BACKLIGHT_AAT2870 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LM3630A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LM3639 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LP855X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LP8788 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_PANDORA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_SKY81452 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BACKLIGHT_TPS65217 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': '-'}> +CONFIG_BACKLIGHT_AS3711 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_LV5207LP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_BD6107 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_ARCXCNN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BACKLIGHT_RAVE_SP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BACKLIGHT_LED policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Graphics support >> Backlight & LCD device support >> Lowlevel LCD controls +CONFIG_LCD_CLASS_DEVICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_LCD_L4F00242T03 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_LMS283GF05 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_LTV350QV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_ILI922X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_ILI9320 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_TDO24M policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_VGG2432A4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_AMS369FG06 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_LMS501KF03 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_HX8357 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LCD_OTM3225A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Graphics support >> Bootup logo +CONFIG_LOGO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> Graphics support >> Console display driver support +CONFIG_VGA_CONSOLE policy<{'amd64': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DUMMY_CONSOLE_COLUMNS policy<{'amd64': '80', 'arm64': '80', 'ppc64el': '80', 'riscv64': '80', 's390x': '80'}> +CONFIG_DUMMY_CONSOLE_ROWS policy<{'amd64': '25', 'arm64': '25', 'ppc64el': '25', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DRM_DP_AUX_CHARDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_DEBUG_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DRM_FBDEV_EMULATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DRM_FBDEV_OVERALLOC policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'ppc64el': '100', 'riscv64': '100', 's390x': '100'}> +CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DRM_LOAD_EDID_FIRMWARE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DRM_DP_CEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_RADEON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_RADEON_USERPTR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DRM_KMB_DISPLAY policy<{'arm64': 'm'}> +CONFIG_DRM_VGEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_VKMS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_VMWGFX policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_DRM_VMWGFX_FBCON policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_DRM_VMWGFX_MKSSTATS policy<{'amd64': 'n'}> +CONFIG_DRM_GMA500 policy<{'amd64': 'm'}> +CONFIG_DRM_UDL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRM_AST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_MGAG200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_CMM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_RCAR_DW_HDMI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_RCAR_LVDS policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': '-'}> +CONFIG_DRM_RCAR_VSP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_DRM_TILCDC policy<{'armhf': 'm'}> +CONFIG_DRM_QXL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_VIRTIO_GPU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DRM_FSL_DCU policy<{'armhf': 'm'}> +CONFIG_DRM_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_TEGRA_DEBUG policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_DRM_TEGRA_STAGING policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_DRM_STM policy<{'armhf': 'm'}> +CONFIG_DRM_STM_DSI policy<{'armhf': 'm'}> +CONFIG_DRM_STI policy<{'armhf': 'n'}> +CONFIG_DRM_IMX_DCSS policy<{'arm64': 'm'}> +CONFIG_DRM_VC4 policy<{'arm64': 'm'}> +CONFIG_DRM_VC4_HDMI_CEC policy<{'arm64': 'y'}> +CONFIG_DRM_ETNAVIV policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DRM_ETNAVIV_THERMAL policy<{'arm64': 'y', 'armhf': 'y'}> +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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_MESON policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_MESON_DW_HDMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_ARCPGU policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_BOCHS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DRM_CIRRUS_QEMU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_GM12U320 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRM_SIMPLEDRM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TINYDRM_HX8357D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_ILI9225 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_ILI9341 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_ILI9486 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_MI0283QT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_REPAPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_ST7586 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TINYDRM_ST7735R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRM_PL111 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_TVE200 policy<{'armhf': 'm'}> +CONFIG_DRM_XEN_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_DRM_VBOXVIDEO policy<{'amd64': '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_TIDSS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_ZYNQMP_DPSUB policy<{'arm64': 'm'}> +CONFIG_DRM_GUD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRM_HYPERV policy<{'amd64': 'm', 'arm64': 'm'}> +# +CONFIG_DRM_MGAG200 note +CONFIG_DRM_STI note +CONFIG_DRM_VBOXVIDEO note flag +CONFIG_DRM_HISI_HIBMC mark note + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_AMDGPU_SI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_AMDGPU_CIK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_AMDGPU_USERPTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HSA_AMD policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +CONFIG_HSA_AMD_SVM policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +# +CONFIG_DRM_AMDGPU_CIK note +CONFIG_DRM_AMDGPU_CIK note note + +# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> AMD GPU >> ACP (Audio CoProcessor) Configuration +CONFIG_DRM_AMD_ACP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_AMD_DC_HDCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_AMD_DC_SI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEBUG_KERNEL_DC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'armhf': '-'}> +CONFIG_DRM_SUN4I_HDMI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DRM_SUN4I_HDMI_CEC policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_DRM_SUN4I_BACKEND policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DRM_SUN6I_DSI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DRM_SUN8I_DW_HDMI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DRM_SUN8I_MIXER policy<{'arm64': 'm', 'armhf': '-'}> + +# 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_CDNS_DSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_CHIPONE_ICN6211 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_CHRONTEL_CH7033 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_CROS_EC_ANX7688 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DRM_DISPLAY_CONNECTOR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_LONTIUM_LT8912B policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_LONTIUM_LT9611 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_LONTIUM_LT9611UXC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_ITE_IT66121 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_LVDS_CODEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_NWL_MIPI_DSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_NXP_PTN3460 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PARADE_PS8622 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PARADE_PS8640 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_SIL_SII8620 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_SII902X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_SII9234 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_SIMPLE_BRIDGE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_THINE_THC63LVD1024 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TOSHIBA_TC358762 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TOSHIBA_TC358764 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TOSHIBA_TC358767 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TOSHIBA_TC358768 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TOSHIBA_TC358775 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TI_TFP410 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TI_SN65DSI83 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TI_SN65DSI86 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_TI_TPD12S015 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_ANALOGIX_ANX6345 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_ANALOGIX_ANX78XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_ANALOGIX_ANX7625 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_I2C_ADV7511 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_I2C_ADV7511_AUDIO policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_I2C_ADV7511_CEC policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_CDNS_MHDP8546 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_CDNS_MHDP8546_J721E policy<{'arm64': 'y'}> +CONFIG_DRM_DW_HDMI_AHB_AUDIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_DW_HDMI_I2S_AUDIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_DW_HDMI_CEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> Display Panels +CONFIG_DRM_PANEL_ABT_Y030XX067A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ARM_VERSATILE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_BOE_HIMAX8279D policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_DSI_CM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_LVDS policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SIMPLE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_DRM_PANEL_ELIDA_KD35T133 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ILITEK_IL9322 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ILITEK_ILI9341 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ILITEK_ILI9881C policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_INNOLUX_EJ030NA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_INNOLUX_P079ZCA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_JDI_LT070ME05000 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_KHADAS_TS050 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_LD9040 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_LG_LB035Q02 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_LG_LG4573 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_NEC_NL8048HL11 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_NOVATEK_NT35510 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_NOVATEK_NT36672A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_NOVATEK_NT39016 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_ORISETECH_OTM8009A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_RAYDIUM_RM67191 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_RAYDIUM_RM68200 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_RONBO_RB070D30 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_DB7430 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SEIKO_43WVF1G policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SHARP_LS037V7DW01 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SHARP_LS043T1LE01 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SITRONIX_ST7701 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SITRONIX_ST7703 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SITRONIX_ST7789V policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_SONY_ACX565AKM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_TDO_TL070WSH30 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_TPO_TD028TTEC1 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_TPO_TD043MTEA1 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_TPO_TPG110 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_VISIONOX_RM69299 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DRM_PANEL_WIDECHIPS_WS2401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRM_PANEL_XINPENG_XPP055C272 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_DRM_LEGACY flag note + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_I2C_SIL164 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_I2C_NXP_TDA998X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DRM_I2C_NXP_TDA9950 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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'}> +CONFIG_DRM_I915_FORCE_PROBE policy<{'amd64': '""'}> +CONFIG_DRM_I915_CAPTURE_ERROR policy<{'amd64': 'y'}> +CONFIG_DRM_I915_COMPRESS_ERROR policy<{'amd64': 'y'}> +CONFIG_DRM_I915_USERPTR policy<{'amd64': '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'}> +CONFIG_DRM_I915_DEBUG policy<{'amd64': 'n'}> +CONFIG_DRM_I915_DEBUG_MMIO policy<{'amd64': 'n'}> +CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS policy<{'amd64': 'n'}> +CONFIG_DRM_I915_SW_FENCE_CHECK_DAG policy<{'amd64': 'n'}> +CONFIG_DRM_I915_DEBUG_GUC policy<{'amd64': 'n'}> +CONFIG_DRM_I915_SELFTEST policy<{'amd64': 'n'}> +CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS policy<{'amd64': 'n'}> +CONFIG_DRM_I915_DEBUG_VBLANK_EVADE policy<{'amd64': 'n'}> +CONFIG_DRM_I915_DEBUG_RUNTIME_PM policy<{'amd64': '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_REQUEST_TIMEOUT policy<{'amd64': '20000'}> +CONFIG_DRM_I915_FENCE_TIMEOUT policy<{'amd64': '10000'}> +CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND policy<{'amd64': '250'}> +CONFIG_DRM_I915_HEARTBEAT_INTERVAL policy<{'amd64': '2500'}> +CONFIG_DRM_I915_PREEMPT_TIMEOUT policy<{'amd64': '640'}> +CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT policy<{'amd64': '8000'}> +CONFIG_DRM_I915_STOP_TIMEOUT policy<{'amd64': '100'}> +CONFIG_DRM_I915_TIMESLICE_DURATION policy<{'amd64': '1'}> + +# 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 Unstable Evolution + +# 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_GPU_SUDO policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_DRM_MSM_HDMI_HDCP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_DRM_MSM_DP 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_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'}> +CONFIG_DRM_MSM_DSI_7NM_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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NOUVEAU_PLATFORM_DRIVER policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_NOUVEAU_DEBUG policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'ppc64el': '5', 'riscv64': '5'}> +CONFIG_NOUVEAU_DEBUG_DEFAULT policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'ppc64el': '3', 'riscv64': '3'}> +CONFIG_NOUVEAU_DEBUG_MMU policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NOUVEAU_DEBUG_PUSH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DRM_NOUVEAU_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DRM_NOUVEAU_SVM policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n'}> +# +CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT flag note +CONFIG_DRM_NOUVEAU_SVM flag + +# Menu: Device Drivers >> Graphics support >> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) >> OMAP DRM +CONFIG_DRM_OMAP policy<{'armhf': 'n'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FIRMWARE_EDID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FB_MODE_HELPERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FB_TILEBLITTING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_FB_CIRRUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_PM2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_PM2_FIFO_DISCONNECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_ARMCLCD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_FB_IMX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_FB_CYBER2000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_CYBER2000_DDC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_ARC policy<{'amd64': 'm'}> +CONFIG_FB_OF policy<{'ppc64el': 'y'}> +CONFIG_FB_ASILIANT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_FB_IMSTT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_FB_VGA16 policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_FB_UVESA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_VESA policy<{'amd64': 'y'}> +CONFIG_FB_EFI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_FB_N411 policy<{'amd64': 'm'}> +CONFIG_FB_HGA policy<{'amd64': 'm'}> +CONFIG_FB_OPENCORES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_S1D13XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_I740 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_LE80578 policy<{'amd64': 'm'}> +CONFIG_FB_CARILLO_RANCH policy<{'amd64': 'm'}> +CONFIG_FB_INTEL policy<{'amd64': 'm'}> +CONFIG_FB_INTEL_DEBUG policy<{'amd64': 'n'}> +CONFIG_FB_INTEL_I2C policy<{'amd64': 'y'}> +CONFIG_FB_ATY128 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_ATY128_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_S3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_S3_DDC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_SAVAGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_SAVAGE_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_SAVAGE_ACCEL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_SIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_SIS_300 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_SIS_315 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_VIA policy<{'amd64': 'm'}> +CONFIG_FB_VIA_DIRECT_PROCFS policy<{'amd64': 'n'}> +CONFIG_FB_VIA_X_COMPATIBILITY policy<{'amd64': 'y'}> +CONFIG_FB_NEOMAGIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_KYRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_3DFX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_3DFX_ACCEL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_3DFX_I2C policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_VOODOO1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_VT8623 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_TRIDENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_ARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_PM3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_CARMINE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_SMSCUFX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FB_UDL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FB_IBM_GXT4500 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FB_XILINX policy<{'arm64': 'm'}> +CONFIG_FB_GOLDFISH policy<{'riscv64': 'm'}> +CONFIG_FB_DA8XX policy<{'armhf-generic': 'm'}> +CONFIG_FB_VIRTUAL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XEN_FBDEV_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_FB_METRONOME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_MB862XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_MB862XX_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_MX3 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_FB_HYPERV policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_FB_SIMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_SSD1307 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_SM712 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +# +CONFIG_FB_VIRTUAL flag + +# Menu: Device Drivers >> Graphics support >> Frame buffer Devices >> Support for frame buffer devices >> AMD Geode family framebuffer support + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_ATY_CT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_ATY_GENERIC_LCD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_ATY_GX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_ATY_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_RADEON_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_RADEON_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_RADEON_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CARMINE_DRAM_CUSTOM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_MATROX_MILLENIUM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_MATROX_MYSTIQUE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_MATROX_G policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_MATROX_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_MATROX_MAVEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_NVIDIA_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_NVIDIA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_NVIDIA_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FB_RIVA_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FB_RIVA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_FB_RIVA_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Greybus support +CONFIG_GREYBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GREYBUS_ES2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> + +# Menu: Device Drivers >> HDMI CEC drivers +CONFIG_MEDIA_CEC_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CEC_CH7322 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CEC_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CEC_MESON_AO policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CEC_MESON_G12A_AO policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CEC_GPIO policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CEC_SAMSUNG_S5P policy<{'armhf': 'n'}> +CONFIG_CEC_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CEC_SECO policy<{'amd64': 'm'}> +CONFIG_CEC_SECO_RC policy<{'amd64': 'y'}> +CONFIG_USB_PULSE8_CEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_RAINSHADOW_CEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> HID support + +# Menu: Device Drivers >> HID support >> HID bus support +CONFIG_HID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HID_BATTERY_STRENGTH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_HIDRAW policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_UHID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> HID support >> HID bus support >> AMD SFH HID Support +CONFIG_AMD_SFH_HID policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers +CONFIG_HID_A4TECH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ACCUTOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ACRUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ACRUX_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_APPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_APPLEIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ASUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_AUREAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_BELKIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_BETOP_FF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_BIGBEN_FF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_CHERRY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_CHICONY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_CORSAIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_COUGAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MACALLY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PRODIKEYS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_CMEDIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_CP2112 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_CREATIVE_SB0540 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_CYPRESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_DRAGONRISE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DRAGONRISE_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_EMS_FF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ELAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ELECOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ELO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_EZKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_FT260 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_GEMBIRD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GFRM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GLORIOUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_HOLTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HOLTEK_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_GOOGLE_HAMMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_HID_VIVALDI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GT683R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_KEYTOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_KYE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_UCLOGIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_WALTOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_VIEWSONIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GYRATION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ICADE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ITE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_JABRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_TWINHAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_KENSINGTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_LCPOWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_LED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_LENOVO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MAGICMOUSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MALTRON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MAYFLASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_REDRAGON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MICROSOFT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MONTEREY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MULTITOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_NTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_NTRIG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ORTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PANTHERLORD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PANTHERLORD_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PENMOUNT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_PETALYNX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PLANTRONICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PLAYSTATION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PLAYSTATION_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PRIMAX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_RETRODE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ROCCAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SAITEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_SAMSUNG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SEMITEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_SONY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SONY_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_SPEEDLINK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_STEAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_STEELSERIES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_SUNPLUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_RMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_GREENASIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GREENASIA_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_HYPERV_MOUSE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_HID_SMARTJOYPLUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SMARTJOYPLUS_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_TIVO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_TOPSEED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_THINGM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_THRUSTMASTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_THRUSTMASTER_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_UDRAW_PS3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_U2FZERO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_WACOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_WIIMOTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_XINMO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_ZEROPLUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ZEROPLUS_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_ZYDACRON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_SENSOR_HUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_SENSOR_CUSTOM_SENSOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_ALPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_MCP2221 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> HID support >> HID bus support >> Special HID drivers >> Logitech devices +CONFIG_HID_LOGITECH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_LOGITECH_DJ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_LOGITECH_HIDPP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LOGITECH_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LOGIRUMBLEPAD2_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LOGIG940_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LOGIWHEELS_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PICOLCD_FB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PICOLCD_BACKLIGHT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PICOLCD_LCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PICOLCD_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HID_PICOLCD_CIR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> HID support >> I2C HID support +CONFIG_I2C_HID_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_I2C_HID_OF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_HID_OF_GOODIX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# 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 >> Surface System Aggregator Module HID support +CONFIG_SURFACE_HID policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_KBD policy<{'amd64': 'm', 'arm64': 'm'}> + +# Menu: Device Drivers >> HID support >> USB HID support +CONFIG_USB_HID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HID_PID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_HIDDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> HID support >> USB HID support >> USB HID Boot Protocol drivers +CONFIG_USB_KBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MOUSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> HSI support +CONFIG_HSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_INTEL_TH_GTH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_STH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_MSU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_PTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_TH_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> HW tracing support >> System Trace Module devices +CONFIG_STM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_PROTO_BASIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_PROTO_SYS_T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_SOURCE_CONSOLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_SOURCE_HEARTBEAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STM_SOURCE_FTRACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Hardware Monitoring support +CONFIG_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_HWMON_DEBUG_CHIP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SENSORS_AAEON policy<{'amd64': 'm'}> +CONFIG_SENSORS_ABITUGURU policy<{'amd64': 'm'}> +CONFIG_SENSORS_ABITUGURU3 policy<{'amd64': 'm'}> +CONFIG_SENSORS_AD7314 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AD7414 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AD7418 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1021 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1025 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1026 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1029 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1031 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM1177 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADM9240 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7310 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7410 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7411 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7462 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7470 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADT7475 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AHT10 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AQUACOMPUTER_D5NEXT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_AS370 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ASC7621 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AXI_FAN_CONTROL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_K8TEMP policy<{'amd64': 'm'}> +CONFIG_SENSORS_K10TEMP policy<{'amd64': 'm'}> +CONFIG_SENSORS_FAM15H_POWER policy<{'amd64': 'm'}> +CONFIG_SENSORS_APPLESMC policy<{'amd64': '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'}> +CONFIG_SENSORS_ASPEED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ATXP1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_CORSAIR_CPRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_CORSAIR_PSU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DRIVETEMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DS620 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DS1621 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DELL_SMM policy<{'amd64': 'm'}> +CONFIG_SENSORS_DA9052_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DA9055 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_I5K_AMB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SPARX5 policy<{'arm64': 'm'}> +CONFIG_SENSORS_F71805F policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_F71882FG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_F75375S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_GSC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MC13783_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_FSCHMD policy<{'amd64': 'm'}> +CONFIG_SENSORS_FTSTEUTATES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_GL518SM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_GL520SM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_G760A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_G762 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_GPIO_FAN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_HIH6130 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_IBMAEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IBMPEX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IBMPOWERNV policy<{'ppc64el': 'm'}> +CONFIG_SENSORS_IIO_HWMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_I5500 policy<{'amd64': 'm'}> +CONFIG_SENSORS_CORETEMP policy<{'amd64': 'm'}> +CONFIG_SENSORS_IT87 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_JC42 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_POWR1220 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LINEAGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LOCHNAGAR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_LTC2945 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC2947_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC2947_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC2990 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC2992 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4151 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4215 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4222 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4245 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4260 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LTC4261 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX1111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX16065 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX1619 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX1668 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX197 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX31722 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX31730 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX6621 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX6639 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX6642 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX6650 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX6697 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MAX31790 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MCP3021 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MLXREG_FAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_SENSORS_TC654 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TPS23861 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_MENF21BMC_HWMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MR75203 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADCXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM63 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM70 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM73 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM75 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM77 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM78 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM80 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM83 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM85 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM87 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM90 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM92 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM93 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM95234 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM95241 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LM95245 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_PC87360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_PC87427 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NTC_THERMISTOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_NCT6683 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NCT6775 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NCT7802 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NCT7904 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NPCM7XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_NZXT_KRAKEN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_PWM_FAN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_RASPBERRYPI_HWMON policy<{'arm64': 'm'}> +CONFIG_SENSORS_SL28CPLD policy<{'arm64': 'm'}> +CONFIG_SENSORS_SBTSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SBRMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SHT15 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SHT21 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SHT3x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SHT4x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SHTC1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SIS5595 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_DME1737 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_EMC1403 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_EMC2103 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_EMC6W201 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SMSC47M1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SMSC47M192 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SMSC47B397 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SCH5627 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SCH5636 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_STTS751 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_SMM665 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADC128D818 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADS7828 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_ADS7871 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_AMC6821 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_INA209 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_INA2XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_INA3221 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TC74 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_THMC50 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP103 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP108 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP421 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_TMP513 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_VEXPRESS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SENSORS_VIA_CPUTEMP policy<{'amd64': 'm'}> +CONFIG_SENSORS_VIA686A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_VT1211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_VT8231 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83773G policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83781D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83791D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83792D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83793 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83795 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83795_FANCTRL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SENSORS_W83L785TS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83L786NG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83627HF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_W83627EHF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_WM8350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_XGENE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SENSORS_INTEL_M10_BMC_HWMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ACPI_POWER policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SENSORS_ATK0110 policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Hardware Monitoring support >> PMBus support +CONFIG_PMBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_PMBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ADM1266 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ADM1275 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_BEL_PFE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_BPA_RS600 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_FSP_3Y policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IBM_CFFPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_DPS920AB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_INSPUR_IPSPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IR35221 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IR36021 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IR38064 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_IRPS5401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ISL68137 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_LM25066 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_LTC2978 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_LTC2978_REGULATOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SENSORS_LTC3815 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX15301 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX16064 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX16601 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX20730 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX20751 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX31785 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX34440 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MAX8688 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MP2888 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_MP2975 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_PIM4328 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_PM6764TR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_PXE1610 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_Q54SJ108A2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_STPDDC60 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_TPS40422 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_TPS53679 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_UCD9000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_UCD9200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_XDPE122 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ZL6100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Hardware Spinlock drivers +CONFIG_HWSPINLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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'}> +CONFIG_HWSPINLOCK_SUN6I policy<{'arm64': 'm', 'armhf': '-'}> + +# Menu: Device Drivers >> I2C support + +# Menu: Device Drivers >> I2C support >> I2C support +CONFIG_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_ACPI_I2C_OPREGION policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_I2C_COMPAT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_I2C_CHARDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_I2C_MUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_I2C_HELPER_AUTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_I2C_SMBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_STUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_I2C_SLAVE policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_I2C_SLAVE_EEPROM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_SLAVE_TESTUNIT policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_I2C_DEBUG_CORE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_I2C_DEBUG_ALGO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_I2C_DEBUG_BUS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_I2C_CHARDEV note + +# Menu: Device Drivers >> I2C support >> I2C support >> I2C Algorithms +CONFIG_I2C_ALGOBIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_I2C_ALGOPCA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> I2C support >> I2C support >> I2C Hardware Bus support +CONFIG_I2C_ALI1535 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_ALI1563 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_ALI15X3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_AMD756 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_AMD756_S4882 policy<{'amd64': 'm'}> +CONFIG_I2C_AMD8111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_AMD_MP2 policy<{'amd64': 'm', 'arm64': 'n'}> +CONFIG_I2C_HIX5HD2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_I801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_ISCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_ISMT policy<{'amd64': 'm'}> +CONFIG_I2C_PIIX4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_CHT_WC policy<{'amd64': 'm'}> +CONFIG_I2C_NFORCE2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_NFORCE2_S4985 policy<{'amd64': 'm'}> +CONFIG_I2C_NVIDIA_GPU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_SIS5595 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_SIS630 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_SIS96X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_VIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_VIAPRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_SCMI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_I2C_ALTERA policy<{'arm64': 'm', 'armhf': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_DESIGNWARE_SLAVE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_I2C_DESIGNWARE_PLATFORM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_I2C_DESIGNWARE_BAYTRAIL policy<{'amd64': 'y'}> +CONFIG_I2C_DESIGNWARE_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_EMEV2 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_I2C_EXYNOS5 policy<{'armhf': 'n'}> +CONFIG_I2C_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_GPIO_FAULT_INJECTOR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_I2C_HISI policy<{'arm64': 'm'}> +CONFIG_I2C_IMX policy<{'arm64': 'm', 'armhf': 'y'}> +CONFIG_I2C_IMX_LPI2C policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_KEMPLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MLXBF policy<{'arm64': '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_NPCM7XX policy<{'armhf': 'm'}> +CONFIG_I2C_OCORES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_PXA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_PXA_SLAVE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_I2C_QCOM_CCI policy<{'arm64': 'm', 'armhf': 'm'}> +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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_S3C2410 policy<{'armhf': 'n'}> +CONFIG_I2C_SH_MOBILE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_SIMTEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_SPRD policy<{'arm64': 'y'}> +CONFIG_I2C_SYNQUACER policy<{'arm64': 'm'}> +CONFIG_I2C_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_TEGRA_BPMP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_I2C_UNIPHIER_F policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_I2C_VERSATILE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_THUNDERX policy<{'arm64': 'm'}> +CONFIG_I2C_XILINX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_I2C_DLN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_CP2615 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_I2C_PARPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_ROBOTFUZZ_OSIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_I2C_TAOS_EVM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_TINY_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_I2C_VIPERBOARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MLXCPLD policy<{'amd64': 'm'}> +CONFIG_I2C_CROS_EC_TUNNEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_I2C_XGENE_SLIMPRO policy<{'arm64': 'm'}> +CONFIG_I2C_OPAL policy<{'ppc64el': 'y'}> +CONFIG_I2C_FSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> I2C support >> I2C support >> Multiplexer I2C Chip support +CONFIG_I2C_ARB_GPIO_CHALLENGE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MUX_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_MUX_GPMUX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MUX_LTC4306 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_MUX_PCA9541 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_MUX_PCA954x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_MUX_PINCTRL policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MUX_REG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_I2C_DEMUX_PINCTRL policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_MUX_MLXCPLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> I3C support +CONFIG_I3C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CDNS_I3C_MASTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DW_I3C_MASTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SVC_I3C_MASTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MIPI_I3C_HCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> IEEE 1394 (FireWire) support +CONFIG_FIREWIRE_NOSY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> IEEE 1394 (FireWire) support >> FireWire driver stack +CONFIG_FIREWIRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FIREWIRE_OHCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FIREWIRE_SBP2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FIREWIRE_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> IOMMU Hardware Support +CONFIG_IOMMU_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IOMMU_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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_SUN50I_IOMMU policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_TEGRA_IOMMU_GART policy<{'armhf': 'y'}> +CONFIG_TEGRA_IOMMU_SMMU policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_EXYNOS_IOMMU policy<{'armhf': 'n'}> +CONFIG_EXYNOS_IOMMU_DEBUG policy<{'armhf': '-'}> +CONFIG_IPMMU_VMSA policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_SPAPR_TCE_IOMMU policy<{'ppc64el': 'y'}> +CONFIG_APPLE_DART policy<{'arm64': 'm'}> +CONFIG_ARM_SMMU policy<{'arm64': 'y', 'armhf': 'n'}> +CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_ARM_SMMU_V3 policy<{'arm64': 'y'}> +CONFIG_ARM_SMMU_V3_SVA 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'}> +CONFIG_VIRTIO_IOMMU policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SPRD_IOMMU policy<{'arm64': 'm'}> +# +CONFIG_IPMMU_VMSA note +CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT mark note +CONFIG_IOMMU_DEBUGFS mark note note + +# 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 >> IOMMU default domain type +CONFIG_IOMMU_DEFAULT_DMA_STRICT policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IOMMU_DEFAULT_DMA_LAZY policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IOMMU_DEFAULT_PASSTHROUGH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> IOMMU Hardware Support >> Support for Intel IOMMU using DMA Remapping Devices +CONFIG_INTEL_IOMMU policy<{'amd64': 'y'}> +CONFIG_INTEL_IOMMU_SVM policy<{'amd64': 'y'}> +CONFIG_INTEL_IOMMU_DEFAULT_ON policy<{'amd64': 'n'}> +CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON policy<{'amd64': 'n'}> +# +CONFIG_INTEL_IOMMU_DEFAULT_ON note flag + +# Menu: Device Drivers >> IRQ chip support +CONFIG_AL_FIC policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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': 'm'}> +CONFIG_QCOM_IRQ_COMBINER policy<{'arm64': 'y'}> +CONFIG_IRQ_UNIPHIER_AIDET policy<{'armhf-generic': 'y', 'armhf-generic-lpae': '-'}> +CONFIG_MESON_IRQ_GPIO policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_QCOM_PDC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_IMX_IRQSTEER policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_IMX_INTMUX policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RISCV_INTC policy<{'riscv64': 'y'}> +CONFIG_SIFIVE_PLIC policy<{'riscv64': 'y'}> +CONFIG_EXYNOS_IRQ_COMBINER policy<{'armhf': 'y'}> +CONFIG_MST_IRQ policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_APPLE_AIC policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> ISDN support +CONFIG_ISDN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> ISDN support >> Modular ISDN driver +CONFIG_MISDN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_DSP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_L1OIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_HFCPCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_HFCMULTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_HFCUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_AVMFRITZ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_SPEEDFAX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_INFINEON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_W6692 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MISDN_NETJET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support +CONFIG_IIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_IIO_CONFIGFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_TRIGGER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IIO_CONSUMERS_PER_TRIGGER policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2'}> +CONFIG_IIO_SW_DEVICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_SW_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_TRIGGERED_EVENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_CROS_EC_SENSORS_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_IIO_CROS_EC_SENSORS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Accelerometers +CONFIG_ADIS16201 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16209 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADXL372_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADXL372_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMA220 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMA400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMC150_ACCEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMI088_ACCEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DA280 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DA311 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DMARD06 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DMARD09 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DMARD10 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FXLS8962AF_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FXLS8962AF_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_ACCEL_3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_CROS_EC_ACCEL_LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_IIO_ST_ACCEL_3AXIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KXSD9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KXSD9_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KXSD9_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KXCJK1013 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MC3230 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA7455_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA7455_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA7660 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA8452 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA9551 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMA9553 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MXC4005 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MXC6255 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCA3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCA3300 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STK8312 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STK8BA50 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Amplifiers +CONFIG_AD8366 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HMC425 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Analog Front Ends +CONFIG_IIO_RESCALE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Analog to digital converters +CONFIG_AD7091R5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7124 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7192 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7266 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7291 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7292 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7298 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7476 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7606_IFACE_PARALLEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7606_IFACE_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7766 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7768_1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7780 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7791 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7793 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7887 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7923 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7949 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD799X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD9467 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADI_AXI_ADC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ASPEED_ADC policy<{'armhf': 'm'}> +CONFIG_AXP20X_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AXP288_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CPCAP_ADC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DA9150_GPADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DLN2_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ENVELOPE_DETECTOR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_EXYNOS_ADC policy<{'armhf': 'n'}> +CONFIG_HI8435 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HX711 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INA2XX_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INTEL_MRFLD_ADC policy<{'amd64': 'm'}> +CONFIG_IMX7D_ADC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_LP8788_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2471 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2485 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2496 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2497 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX1027 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX11100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX1118 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX1241 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX1363 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX9611 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP320X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP3422 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP3911 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIATEK_MT6360_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIATEK_MT6577_AUXADC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MEN_Z188_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MESON_SARADC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MP2629_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NAU7802 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NPCM_ADC policy<{'armhf': 'm'}> +CONFIG_PALMAS_GPADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QCOM_PM8XXX_XOADC policy<{'armhf': 'm'}> +CONFIG_QCOM_SPMI_IADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QCOM_SPMI_VADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QCOM_SPMI_ADC5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RCAR_GYRO_ADC policy<{'armhf': 'm'}> +CONFIG_RN5T618_ADC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ROCKCHIP_SARADC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RZG2L_ADC policy<{'arm64': 'm'}> +CONFIG_SC27XX_ADC policy<{'arm64': 'm'}> +CONFIG_SD_ADC_MODULATOR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STMPE_ADC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STX104 policy<{'amd64': 'm'}> +CONFIG_SUN4I_GPADC policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_TI_ADC081C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC0832 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC084S021 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC12138 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC108S102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC128S052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADC161S626 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS1015 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS7950 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS8344 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS8688 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS124S08 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_ADS131E08 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_AM335X_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_TLC4541 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_TSC2046 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TWL4030_MADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TWL6030_GPADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VF610_ADC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIPERBOARD_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_XILINX_XADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Capacitance to digital converters +CONFIG_AD7150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Chemical Sensors +CONFIG_ATLAS_PH_SENSOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATLAS_EZO_SENSOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BME680 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CCS811 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IAQCORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PMS7003 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCD30_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCD30_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCD30_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSIRION_SGP30 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSIRION_SGP40 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPS30_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPS30_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VZ89X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Digital gyroscope sensors +CONFIG_ADIS16080 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16130 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16136 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16260 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADXRS290 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADXRS450 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMG160 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FXAS21002C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_GYRO_3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MPU3050_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_ST_GYRO_3AXIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ITG3200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Digital potentiometers +CONFIG_AD5110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5272 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DS1803 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX5432 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX5481 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX5487 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP4018 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP4131 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP4531 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP41010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TPL0102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Digital potentiostats +CONFIG_LMP91000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Digital to analog converters +CONFIG_AD5064 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5380 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5421 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5446 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5449 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5592R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5593R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5504 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5624R_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5686_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5696_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5755 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5758 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5761 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5764 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5766 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5770R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD5791 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7303 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD8801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CIO_DAC policy<{'amd64': 'm'}> +CONFIG_DPOT_DAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DS4424 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC1660 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2632 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_M62332 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX517 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX5821 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP4725 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCP4922 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_DAC082S085 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_DAC5571 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_DAC7311 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TI_DAC7612 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VF610_DAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Enable buffer support within IIO +CONFIG_IIO_BUFFER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IIO_BUFFER_CB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_BUFFER_DMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_BUFFER_DMAENGINE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_BUFFER_HW_CONSUMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_KFIFO_BUF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_TRIGGERED_BUFFER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADF4371 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AFE4404 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX30100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX30102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Hid Sensor IIO Common +CONFIG_HID_SENSOR_IIO_COMMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_IIO_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Humidity sensors +CONFIG_AM2315 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DHT11 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDC100X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDC2010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_HUMIDITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HTS221 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HTU21 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SI7005 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SI7020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> IIO SCMI Sensors +CONFIG_IIO_SCMI policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> IIO dummy driver +CONFIG_IIO_SIMPLE_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_SIMPLE_DUMMY_EVENTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_IIO_SIMPLE_DUMMY_BUFFER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_IIO_SIMPLE_DUMMY_EVENTS note +CONFIG_IIO_SIMPLE_DUMMY_BUFFER note + +# Menu: Device Drivers >> Industrial I/O support >> Inclinometer sensors +CONFIG_HID_SENSOR_INCLINOMETER_3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_DEVICE_ROTATION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Inertial measurement units +CONFIG_ADIS16400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16460 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16475 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16480 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMI160_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMI160_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FXOS8700_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FXOS8700_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KMX61 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INV_ICM42600_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INV_ICM42600_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INV_MPU6050_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INV_MPU6050_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_ST_LSM6DSX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_ST_LSM9DS0 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Light sensors +CONFIG_ACPI_ALS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ADJD_S311 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADUX1020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AL3010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AL3320A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_APDS9300 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_APDS9960 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AS73211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BH1750 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BH1780 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CM32181 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CM3232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CM3323 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CM3605 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CM36651 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_CROS_EC_LIGHT_PROX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_GP2AP002 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GP2AP020A00F policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IQS621_ALS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ISL29018 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_ISL29028 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ISL29125 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_ALS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_PROX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JSA1212 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RPR0521 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_LM3533 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTR501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LV0104CS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX44000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX44009 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NOA1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_OPT3001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PA12203001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SI1133 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SI1145 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STK3310 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ST_UVIS25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TCS3414 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TCS3472 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_TSL2563 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSL2583 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSL2591 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSL2772 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSL4531 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_US5182D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VCNL4000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VCNL4035 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VEML6030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VEML6070 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VL6180 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ZOPT2201 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Lightning sensors +CONFIG_AS3935 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Linear and angular position sensors +CONFIG_IQS624_POS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Magnetometer sensors +CONFIG_AK8974 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AK8975 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AK09911 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMC150_MAGN_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMC150_MAGN_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAG3110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_MAGNETOMETER_3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC35240 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_ST_MAGN_3AXIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_HMC5843_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_HMC5843_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_RM3100_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SENSORS_RM3100_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_YAMAHA_YAS530 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Multiplexers +CONFIG_IIO_MUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Pressure sensors +CONFIG_ABP060MG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BMP280 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_CROS_EC_BARO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_DLHL60D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DPS310 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_PRESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HP03 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ICP10100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MPL115_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MPL115_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MPL3115 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MS5611 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MS5611_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MS5611_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MS5637 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_ST_PRESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_T5403 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HP206C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ZPA2326 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Proximity and distance sensors +CONFIG_CROS_EC_MKBP_PROXIMITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_ISL29501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIDAR_LITE_V2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MB1232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RFD77402 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SRF04 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SX9310 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SX9500 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SRF08 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VCNL3020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VL53L0X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Resolver to digital converters +CONFIG_AD2S1200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD2S90 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> SSP Sensor Common +CONFIG_IIO_SSP_SENSORS_COMMONS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_SSP_SENSORHUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Temperature sensors +CONFIG_IQS620AT_TEMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LTC2983 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAXIM_THERMOCOUPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HID_SENSOR_TEMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLX90614 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLX90632 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TMP006 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TMP007 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TMP117 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSYS01 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TSYS02D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX31856 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Industrial I/O support >> Triggers - standalone +CONFIG_IIO_HRTIMER_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_INTERRUPT_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_TIGHTLOOP_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IIO_SYSFS_TRIGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> IndustryPack bus support +CONFIG_IPACK_BUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BOARD_TPCI200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIAL_IPOCTAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> InfiniBand support +CONFIG_INFINIBAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_USER_MAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_ON_DEMAND_PAGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INFINIBAND_IPOIB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_IPOIB_CM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INFINIBAND_IPOIB_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_MTHCA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_MTHCA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_INFINIBAND_QIB policy<{'amd64': 'm'}> +CONFIG_INFINIBAND_QIB_DCA policy<{'amd64': 'y'}> +CONFIG_INFINIBAND_EFA policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INFINIBAND_IRDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLX4_INFINIBAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLX5_INFINIBAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_OCRDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INFINIBAND_VMWARE_PVRDMA policy<{'amd64': 'm', 'arm64-generic': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_INFINIBAND_USNIC policy<{'amd64': 'm'}> +CONFIG_INFINIBAND_HNS policy<{'arm64': 'm'}> +CONFIG_INFINIBAND_HNS_HIP08 policy<{'arm64': 'y'}> +CONFIG_INFINIBAND_BNXT_RE policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +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', 'riscv64': 'm'}> +CONFIG_INFINIBAND_RDMAVT policy<{'amd64': 'm'}> +CONFIG_RDMA_RXE policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RDMA_SIW policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> InfiniBand support >> RDMA/CM +CONFIG_INFINIBAND_ADDR_TRANS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INFINIBAND_CXGB4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INFINIBAND_SRP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_SRPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_ISER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_ISERT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_RTRS_CLIENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INFINIBAND_RTRS_SERVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INPUT_LEDS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_FF_MEMLESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INPUT_SPARSEKMAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INPUT_MATRIXKMAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INPUT_JOYDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INPUT_EVDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INPUT_EVBUG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_JOYSTICK_ANALOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_A3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_ADI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_COBRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_GF2K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_GRIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_GRIP_MP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_GUILLEMOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_INTERACT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_SIDEWINDER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_TMDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_IFORCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_IFORCE_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_IFORCE_232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_WARRIOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_MAGELLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_SPACEORB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_SPACEBALL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_STINGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_TWIDJOY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_ZHENHUA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_DB9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_GAMECON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_TURBOGRAFX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_AS5011 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_JOYDUMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_XPAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_XPAD_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JOYSTICK_XPAD_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JOYSTICK_WALKERA0701 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JOYSTICK_PSXPAD_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_PSXPAD_SPI_FF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JOYSTICK_PXRC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_QWIIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_JOYSTICK_FSIA6B policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Keyboards +CONFIG_INPUT_KEYBOARD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_KEYBOARD_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_ADP5520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_ADP5588 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_ADP5589 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_APPLESPI policy<{'amd64': 'm'}> +CONFIG_KEYBOARD_ATKBD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KEYBOARD_QT1050 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_QT1070 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_QT2160 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_DLINK_DIR685 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_LKKBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_GPIO_POLLED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_TCA6416 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_TCA8418 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_MATRIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_LM8323 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_LM8333 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_MAX7359 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_MCS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_MPR121 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_SNVS_PWRKEY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_IMX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_IMX_SC_KEY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_NEWTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_OPENCORES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_PMIC8XXX policy<{'armhf': 'm'}> +CONFIG_KEYBOARD_SAMSUNG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_GOLDFISH_EVENTS policy<{'riscv64': 'm'}> +CONFIG_KEYBOARD_STOWAWAY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_SUNKBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_STMPE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_SUN4I_LRADC policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_KEYBOARD_IQS62X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_OMAP4 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_TC3589X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_TM2_TOUCHKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_TWL4030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_XTKBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEYBOARD_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_CAP11XX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_BCM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_KEYBOARD_MTK_PMIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MOUSE_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_APPLETOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_BCM5974 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_CYAPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_ELAN_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_ELAN_I2C_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_ELAN_I2C_SMBUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_VSXXXAA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_SYNAPTICS_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_SYNAPTICS_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_MOUSE_INPORT note + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MOUSE_PS2_ALPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_BYD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_LOGIPS2PP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_SYNAPTICS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_CYPRESS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_LIFEBOOK policy<{'amd64': 'y'}> +CONFIG_MOUSE_PS2_TRACKPOINT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_ELANTECH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_ELANTECH_SMBUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_SENTELIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_TOUCHKIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_FOCALTECH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MOUSE_PS2_VMMOUSE policy<{'amd64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_INPUT_88PM860X_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_88PM80X_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_AD714X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_AD714X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_AD714X_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_ARIZONA_HAPTICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_ATC260X_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_ATMEL_CAPTOUCH policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_BMA150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_E3X0_BUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_PCSPKR policy<{'amd64': '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', 'riscv64': 'm'}> +CONFIG_INPUT_MAX77693_HAPTIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_MAX8925_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_MAX8997_HAPTIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_MC13783_PWRBUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_MMA8450 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_APANEL policy<{'amd64': 'm'}> +CONFIG_INPUT_GPIO_BEEPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_GPIO_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_GPIO_VIBRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_CPCAP_PWRBUTTON policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_ATLAS_BTNS policy<{'amd64': 'm'}> +CONFIG_INPUT_ATI_REMOTE2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_KEYSPAN_REMOTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_KXTJ9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_POWERMATE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_YEALINK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_CM109 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_REGULATOR_HAPTIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_RETU_PWRBUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_TPS65218_PWRBUTTON policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_AXP20X_PEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_TWL4030_PWRBUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_TWL4030_VIBRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_TWL6040_VIBRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_UINPUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_INPUT_PALMAS_PWRBUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_PCF50633_PMU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_PCF8574 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_PWM_BEEPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_PWM_VIBRA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_RK805_PWRKEY policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_GPIO_ROTARY_ENCODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DA7280_HAPTICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DA9052_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DA9055_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DA9063_ONKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_WM831X_ON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_PCAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_ADXL34X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_ADXL34X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_ADXL34X_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_IMS_PCU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_IQS269A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_IQS626A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_CMA3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_CMA3000_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_XEN_KBDDEV_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_INPUT_IDEAPAD_SLIDEBAR policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_INPUT_SOC_BUTTON_ARRAY policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_INPUT_DRV260X_HAPTICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DRV2665_HAPTICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_DRV2667_HAPTICS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_INPUT_HISI_POWERKEY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INPUT_RAVE_SP_PWRBUTTON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_INPUT_SC27XX_VIBRA policy<{'arm64': 'm'}> +CONFIG_INPUT_STPMIC1_ONKEY policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_INPUT_UINPUT mark note + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_INPUT_MOUSEDEV_PSAUX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_INPUT_MOUSEDEV_SCREEN_X policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'ppc64el': '1024', 'riscv64': '1024'}> +CONFIG_INPUT_MOUSEDEV_SCREEN_Y policy<{'amd64': '768', 'arm64': '768', 'armhf': '768', 'ppc64el': '768', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_RMI4_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RMI4_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RMI4_SMB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RMI4_F03 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F11 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F12 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F30 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F34 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F3A policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_RMI4_F54 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RMI4_F55 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Tablets +CONFIG_INPUT_TABLET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_TABLET_USB_ACECAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TABLET_USB_AIPTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TABLET_USB_HANWANG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TABLET_USB_KBTAB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TABLET_USB_PEGASUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TABLET_SERIAL_WACOM4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Input device support >> Generic input layer (needed for keyboard, mouse, ...) >> Touchscreens +CONFIG_INPUT_TOUCHSCREEN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_TOUCHSCREEN_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ADS7846 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_AD7877 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_AD7879 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_AD7879_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_AD7879_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_AR1021_I2C policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_ATMEL_MXT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_AUO_PIXCIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_BU21013 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_BU21029 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_TOUCHSCREEN_CY8CTMA140 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_CY8CTMG110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_CYTTSP_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_CYTTSP_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_CYTTSP_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_CYTTSP4_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_CYTTSP4_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_CYTTSP4_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_DA9034 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_DYNAPRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_HAMPSHIRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_EETI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_EGALAX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_EGALAX_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_EXC3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_FUJITSU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_GOODIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_HIDEEP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_HYCON_HY46XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ILI210X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ILITEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_IPROC policy<{'arm64': 'm'}> +CONFIG_TOUCHSCREEN_S6SY761 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_GUNZE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_EKTF2127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ELAN policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ELO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_WACOM_W8001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_WACOM_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MAX11801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MCS5000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MMS114 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MELFAS_MIP4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MSG2638 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MTOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_IMX6UL_TSC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_INEXIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MK712 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_PENMOUNT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_EDT_FT5X06 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_RASPBERRYPI_FW policy<{'arm64': 'm'}> +CONFIG_TOUCHSCREEN_TOUCHRIGHT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TOUCHWIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TI_AM335X_TSC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_UCB1400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_PIXCIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_WDT87XX_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_MC13783 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_TOUCHIT213 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TS4800 policy<{'armhf': 'm'}> +CONFIG_TOUCHSCREEN_TSC_SERIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TSC2004 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TSC2005 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TSC2007 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TSC2007_IIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_PCAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_RM_TS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_SILEAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_SIS_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ST1232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_STMFTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_STMPE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_SUN4I policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_TOUCHSCREEN_SUR40 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_SURFACE3_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_SX8654 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_TPS6507X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ZET6223 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ZFORCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_COLIBRI_VF50 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_ROHM_BU21023 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_IQS5XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_ZINITIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_TOUCHSCREEN_ELAN mark note + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TOUCHSCREEN_WM9705 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_WM9712 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_WM9713 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TOUCHSCREEN_USB_EGALAX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_PANJIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_3M policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_ITM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_ETURBO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_GUNZE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_DMC_TSC10 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_IRTOUCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_IDEALTEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_GOTOP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_JASTEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_ELO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_E2I policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_ZYTRONIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_ETT_TC45USB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_NEXIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TOUCHSCREEN_USB_EASYTOUCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GAMEPORT_NS558 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GAMEPORT_L4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GAMEPORT_EMU10K1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_GAMEPORT_FM801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Input device support >> Hardware I/O ports >> Serial I/O support +CONFIG_SERIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SERIO_I8042 policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_SERIO_SERPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_CT82C710 policy<{'amd64': 'm'}> +CONFIG_SERIO_PARKBD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SERIO_AMBAKMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SERIO_PCIPS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_LIBPS2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SERIO_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_XILINX_XPS_PS2 policy<{'ppc64el': 'm'}> +CONFIG_SERIO_ALTERA_PS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_PS2MULT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_ARC_PS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SERIO_APBPS2 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HYPERV_KEYBOARD policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SERIO_SUN4I_PS2 policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_SERIO_GPIO_PS2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USERIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> LED Support +CONFIG_NEW_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_LEDS_AAEON policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> LED Support >> LED Class Support +CONFIG_LEDS_CLASS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_BRIGHTNESS_HW_CHANGED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_AN30259A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_APU policy<{'amd64': 'm'}> +CONFIG_LEDS_AW2013 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_BCM6328 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_BCM6358 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_CR0014114 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_EL15203000 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LM3530 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LM3532 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LM3533 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LM3642 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LM3692X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_MT6323 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_PCA9532 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_PCA9532_GPIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LP3944 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LP3952 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LP8788 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LP8860 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_CLEVO_MAIL policy<{'amd64': 'm'}> +CONFIG_LEDS_PCA955X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_PCA955X_GPIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_PCA963X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_WM831X_STATUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_WM8350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_DA903X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_DAC124S085 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_PWM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_REGULATOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_BD2802 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_INTEL_SS4200 policy<{'amd64': 'm'}> +CONFIG_LEDS_LT3593 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_ADP5520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_MC13783 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_NS2 policy<{'armhf': 'm'}> +CONFIG_LEDS_ASIC3 policy<{'armhf': 'y'}> +CONFIG_LEDS_TCA6507 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TLC591XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_MAX77650 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_MAX8997 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LM355x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_MENF21BMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_IS31FL319X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_IS31FL32XX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_SC27XX_BLTC policy<{'arm64': 'm'}> +CONFIG_LEDS_BLINKM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_POWERNV policy<{'ppc64el': 'm'}> +CONFIG_LEDS_SYSCON policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_PM8058 policy<{'armhf': 'm'}> +CONFIG_LEDS_MLXCPLD policy<{'amd64': 'm'}> +CONFIG_LEDS_MLXREG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_USER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_NIC78BX policy<{'amd64': 'm'}> +CONFIG_LEDS_SPI_BYTE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_TI_LMU_COMMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_LM3697 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LM36274 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_TPS6105X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_ACER_A500 policy<{'armhf': 'm'}> + +# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Flash Class Support +CONFIG_LEDS_CLASS_FLASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_AAT1290 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_AS3645A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LM3601X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_MAX77693 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_KTD2692 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_SGM3140 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_RT4505 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_RT8515 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Multicolor Class Support +CONFIG_LEDS_CLASS_MULTICOLOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TURRIS_OMNIA policy<{'armhf': 'm'}> +CONFIG_LEDS_LP50XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Multicolor Class Support >> Common Driver for TI/National LP5521/5523/55231/5562/8501 +CONFIG_LEDS_LP55XX_COMMON policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LP5521 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LP5523 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LP5562 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LEDS_LP8501 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> LED Support >> LED Class Support >> LED Trigger support +CONFIG_LEDS_TRIGGERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_TRIGGER_TIMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_ONESHOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_DISK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_TRIGGER_MTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_TRIGGER_HEARTBEAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_BACKLIGHT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_CPU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_TRIGGER_ACTIVITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_DEFAULT_ON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_TRANSIENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_CAMERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_PANIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LEDS_TRIGGER_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_PATTERN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_AUDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LEDS_TRIGGER_TTY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> MCB support +CONFIG_MCB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MCB_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MCB_LPC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PWRSEQ_EMMC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWRSEQ_SD8787 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWRSEQ_SIMPLE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_BLOCK policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MMC_BLOCK_MINORS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> +CONFIG_SDIO_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MMC_CRYPTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MMC_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +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_SDHC policy<{'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', 'ppc64el': 'm'}> +CONFIG_MMC_ALCOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_MXC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MMC_TIFM_SD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_MVSDIO policy<{'armhf': 'm'}> +CONFIG_MMC_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MMC_SDRICOH_CS policy<{'amd64': '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': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_MMC_CB710 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_VIA_SDMMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_USHC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_USDHI6ROL0 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_REALTEK_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_REALTEK_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SUNXI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_MMC_CQHCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_HSQ policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_TOSHIBA_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_BCM2835 policy<{'arm64': 'm'}> +CONFIG_MMC_MTK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_OWL policy<{'arm64': 'm', 'armhf': 'm'}> +# +CONFIG_MMC_BLOCK note +CONFIG_MMC_TEST flag +CONFIG_MMC_OMAP_HS note + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MMC_SDHCI_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_RICOH_MMC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MMC_SDHCI_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_MMC_SDHCI_S3C policy<{'armhf': 'n'}> +CONFIG_MMC_SDHCI_S3C_DMA policy<{'armhf': '-'}> +# +CONFIG_MMC_SDHCI note + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OF_ARASAN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OF_ASPEED policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OF_AT91 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OF_ESDHC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_MMC_SDHCI_OF_HLWD policy<{'ppc64el': 'm'}> +CONFIG_MMC_SDHCI_OF_DWCMSHC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OF_SPARX5 policy<{'arm64': 'm'}> +CONFIG_MMC_SDHCI_CADENCE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_ESDHC_IMX policy<{'arm64': 'm', 'armhf': 'y'}> +CONFIG_MMC_SDHCI_DOVE policy<{'armhf': 'm'}> +CONFIG_MMC_SDHCI_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MMC_SDHCI_PXAV3 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MMC_SDHCI_F_SDH30 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_MILBEAUT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_OMAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MMC_SDHCI_AM654 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_MMC_SDHCI_PLTFM note + +# Menu: Device Drivers >> MMC/SD/SDIO card support >> Synopsys DesignWare Memory Card Interface +CONFIG_MMC_DW policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_PLTFM policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_BLUEFIELD policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_EXYNOS policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_HI3798CV200 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_K3 policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_PCI policy<{'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_MMC_DW_ROCKCHIP policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> MOST support +CONFIG_MOST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MOST_USB_HDM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_CDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_SND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Macintosh device drivers +CONFIG_MACINTOSH_DRIVERS policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_MAC_EMUMOUSEBTN policy<{'amd64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ARM_MHU policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_MHU_V2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_MBOX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PLATFORM_MHU policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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'}> +CONFIG_ALTERA_MBOX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'riscv64': 'm'}> +CONFIG_QCOM_APCS_IPC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_TEGRA_HSP_MBOX policy<{'arm64': 'y', 'armhf': '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'}> +CONFIG_SUN6I_MSGBOX policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SPRD_MBOX policy<{'arm64': 'm'}> +CONFIG_QCOM_IPCC policy<{'arm64': 'y', 'armhf': 'y'}> + +# Menu: Device Drivers >> Memory Controller drivers +CONFIG_MEMORY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ARM_PL172_MPMC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_BRCMSTB_DPFE policy<{'arm64': 'y'}> +CONFIG_TI_EMIF policy<{'armhf': 'm'}> +CONFIG_TI_EMIF_SRAM policy<{'armhf-generic': 'm'}> +CONFIG_FPGA_DFL_EMIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MVEBU_DEVBUS policy<{'armhf': 'y'}> +CONFIG_FSL_IFC policy<{'arm64': 'y'}> +CONFIG_MTK_SMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PL353_SMC policy<{'armhf': 'm'}> +CONFIG_RENESAS_RPCIF policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SAMSUNG_MC policy<{'armhf': 'y'}> +CONFIG_EXYNOS5422_DMC policy<{'armhf': 'n'}> +CONFIG_EXYNOS_SROM policy<{'armhf': 'y'}> + +# Menu: Device Drivers >> Memory Controller drivers >> NVIDIA Tegra Memory Controller support +CONFIG_TEGRA_MC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_TEGRA20_EMC policy<{'armhf': 'y'}> +CONFIG_TEGRA30_EMC policy<{'armhf': 'y'}> +CONFIG_TEGRA124_EMC policy<{'armhf': 'y'}> +CONFIG_TEGRA210_EMC policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support +CONFIG_MTD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MTD_TESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_BLOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MTD_BLOCK_RO policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'armhf': '-', 'riscv64': 'm'}> +CONFIG_FTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFTL_RW policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_INFTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RFD_FTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SSFDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SM_FTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_OOPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PSTORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_SWAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PARTITIONED_MASTER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_MTD note +CONFIG_MTD_BLOCK note + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Enable UBI - Unsorted block images +CONFIG_MTD_UBI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_UBI_WL_THRESHOLD policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'ppc64el': '4096', 'riscv64': '4096'}> +CONFIG_MTD_UBI_BEB_LIMIT policy<{'amd64': '20', 'arm64': '20', 'armhf': '20', 'ppc64el': '20', 'riscv64': '20'}> +CONFIG_MTD_UBI_FASTMAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_UBI_GLUEBI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_UBI_BLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> HyperBus support +CONFIG_MTD_HYPERBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_QINFO_PROBE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_LPDDR2_NVM policy<{'armhf': 'm'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access +CONFIG_MTD_AMD76XROM policy<{'amd64': 'm'}> +CONFIG_MTD_ICHXROM policy<{'amd64': 'm'}> +CONFIG_MTD_ESB2ROM policy<{'amd64': 'm'}> +CONFIG_MTD_CK804XROM policy<{'amd64': 'm'}> +CONFIG_MTD_SCB2_FLASH policy<{'amd64': 'm'}> +CONFIG_MTD_NETtel policy<{'amd64': 'm'}> +CONFIG_MTD_L440GX policy<{'amd64': 'm'}> +CONFIG_MTD_IMPA7 policy<{'armhf': 'm'}> +CONFIG_MTD_INTEL_VR_NOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PLATRAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PHYSMAP_GPIO_ADDR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Mapping drivers for chip access >> Flash device in physical memory map >> Memory device in physical memory map based on OF description +CONFIG_MTD_PHYSMAP_OF policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_PHYSMAP_VERSATILE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_MTD_PHYSMAP_GEMINI policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_MTD_PHYSMAP_IXP4XX policy<{'armhf': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_SBC_GXX policy<{'amd64': 'm'}> +CONFIG_MTD_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PCMCIA policy<{'amd64': 'm'}> +CONFIG_MTD_PCMCIA_ANONYMOUS policy<{'amd64': 'n'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND +CONFIG_MTD_SPI_NAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND >> ECC engine support +CONFIG_MTD_NAND_ECC_SW_HAMMING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_NAND_ECC_SW_BCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND >> OneNAND Device Support +CONFIG_MTD_ONENAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_ONENAND_VERIFY_WRITE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_ONENAND_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_ONENAND_OMAP2 policy<{'armhf-generic': 'm'}> +CONFIG_MTD_ONENAND_OTP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_ONENAND_2X_PROGRAM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +# +CONFIG_MTD_ONENAND_VERIFY_WRITE note +CONFIG_MTD_ONENAND_OTP flag + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND >> Raw/Parallel NAND Device Support +CONFIG_MTD_RAW_NAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MTD_NAND_DENALI_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_DENALI_DT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_CAFE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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': 'm'}> +CONFIG_MTD_NAND_FSL_IFC policy<{'arm64': 'm'}> +CONFIG_MTD_NAND_VF610_NFC policy<{'armhf': 'n'}> +CONFIG_MTD_NAND_MXC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_NAND_SUNXI policy<{'arm64': 'n', 'armhf': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_NAND_MESON policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_NAND_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_CADENCE policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_ARASAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_INTEL_LGM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_ROCKCHIP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_NAND_PL35X policy<{'armhf': 'm'}> +CONFIG_MTD_NAND_NANDSIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_RICOH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_DISKONCHIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_MTD_RAW_NAND note +CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE note + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> NAND >> Raw/Parallel NAND Device Support >> JZ4780 NAND controller + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Partition parsers +CONFIG_MTD_AR7_PARTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_CMDLINE_PARTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MTD_OF_PARTS policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_OF_PARTS_BCM4908 policy<{'arm64': 'y'}> +CONFIG_MTD_OF_PARTS_LINKSYS_NS policy<{'arm64': 'y'}> +CONFIG_MTD_AFS_PARTS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_PARSER_TRX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTD_SHARPSL_PARTS policy<{'armhf': 'm'}> +CONFIG_MTD_QCOMSMEM_PARTS policy<{'arm64': 'm', 'armhf': 'm'}> +# +CONFIG_MTD_CMDLINE_PARTS flag +CONFIG_MTD_OF_PARTS note + + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK policy<{'amd64': '-1', 'arm64': '-1', 'armhf': '-1', 'ppc64el': '-1', 'riscv64': '-1'}> +CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_REDBOOT_PARTS_READONLY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> RAM/ROM/Flash chip drivers +CONFIG_MTD_CFI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_JEDECPROBE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_CFI_INTELEXT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_CFI_AMDSTD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_CFI_STAA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_RAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_ROM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_ABSENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_MAP_BANK_WIDTH_2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_MAP_BANK_WIDTH_4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_CFI_I1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_CFI_I2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> SPI NOR device support +CONFIG_MTD_SPI_NOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SPI_ASPEED_SMC policy<{'armhf': 'm'}> +CONFIG_SPI_HISI_SFC policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> SPI NOR device support >> Software write protection at boot +CONFIG_MTD_SPI_NOR_SWP_DISABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_SPI_NOR_SWP_KEEP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Memory Technology Device (MTD) support >> Self-contained MTD device drivers +CONFIG_MTD_PMC551 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PMC551_BUGFIX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_PMC551_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_DATAFLASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_DATAFLASH_WRITE_VERIFY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MTD_DATAFLASH_OTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MTD_MCHP23K256 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_MCHP48L640 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_SST25L policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_BCM47XXSFLASH policy<{'armhf': 'm'}> +CONFIG_MTD_SLRAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_PHRAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_MTDRAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTDRAM_TOTAL_SIZE policy<{'amd64': '4096', 'arm64': '4096', 'armhf': '4096', 'ppc64el': '4096', 'riscv64': '4096'}> +CONFIG_MTDRAM_ERASE_SIZE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128'}> +CONFIG_MTD_BLOCK2MTD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MTD_POWERNV_FLASH policy<{'ppc64el': 'm'}> +CONFIG_MTD_DOCG3 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_MTD_DOCG3 mark note + +# Menu: Device Drivers >> Microsoft Hyper-V guest support +CONFIG_HYPERV policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_HYPERV_UTILS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_HYPERV_BALLOON policy<{'amd64': 'm', 'arm64': 'm'}> + +# Menu: Device Drivers >> Microsoft Surface Platform-Specific Device Drivers +CONFIG_SURFACE_PLATFORMS policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SURFACE3_WMI policy<{'amd64': 'm'}> +CONFIG_SURFACE_3_POWER_OPREGION policy<{'amd64': 'm', 'arm64': 'n'}> +CONFIG_SURFACE_ACPI_NOTIFY policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_AGGREGATOR_CDEV policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_AGGREGATOR_REGISTRY policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_DTX policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_GPE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_HOTPLUG policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_PLATFORM_PROFILE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_PRO3_BUTTON policy<{'amd64': 'm', 'arm64': 'n'}> + +# Menu: Device Drivers >> Microsoft Surface Platform-Specific Device Drivers >> Microsoft Surface System Aggregator Module Subsystem and Drivers +CONFIG_SURFACE_AGGREGATOR policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SURFACE_AGGREGATOR_BUS policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION policy<{'amd64': 'n', 'arm64': 'n'}> + +# Menu: Device Drivers >> Misc devices +CONFIG_AD525X_DPOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_AD525X_DPOT_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD525X_DPOT_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DUMMY_IRQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_IBM_ASM policy<{'amd64': 'm'}> +CONFIG_IBMVMC policy<{'ppc64el': 'm'}> +CONFIG_PHANTOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TIFM_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TIFM_7XX1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ICS932S401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ENCLOSURE_SERVICES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SGI_XP policy<{'amd64': 'm'}> +CONFIG_HI6421V600_IRQ policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HP_ILO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ISL29003 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ISL29020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SENSORS_TSL2550 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SENSORS_BH1770 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SENSORS_APDS990X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HMC6352 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DS1682 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_VMWARE_BALLOON policy<{'amd64': 'm'}> +CONFIG_LATTICE_ECP3_CONFIG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SRAM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DW_XDATA_PCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PCI_ENDPOINT_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XILINX_SDFEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_HISI_HIKEY_USB policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n'}> +CONFIG_CB710_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CB710_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SENSORS_LIS3_SPI policy<{'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SENSORS_LIS3_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ALTERA_STAPL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INTEL_MEI policy<{'amd64': 'm'}> +CONFIG_INTEL_MEI_ME policy<{'amd64': 'm'}> +CONFIG_INTEL_MEI_TXE policy<{'amd64': 'm'}> +CONFIG_INTEL_MEI_HDCP policy<{'amd64': 'm'}> +CONFIG_VMWARE_VMCI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ECHO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CXL policy<{'ppc64el': 'm'}> +CONFIG_OCXL policy<{'ppc64el': 'm'}> +CONFIG_BCM_VK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BCM_VK_TTY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MISC_ALCOR_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MISC_RTSX_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MISC_RTSX_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HABANA_AI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_UACCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PVPANIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PVPANIC_MMIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PVPANIC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_CS5535_MFGPT note + +# Menu: Device Drivers >> Misc devices >> EEPROM support +CONFIG_EEPROM_AT24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EEPROM_AT25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EEPROM_LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EEPROM_MAX6875 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EEPROM_93CX6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EEPROM_93XX46 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_EEPROM_IDT_89HPESX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EEPROM_EE1004 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> Misc devices >> GenWQE PCIe Accelerator +CONFIG_GENWQE policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY policy<{'amd64': '0', 'arm64': '0', 'ppc64el': '0', 'riscv64': '0', 's390x': '0'}> + +# Menu: Device Drivers >> Misc devices >> Silicon Labs C2 port support +CONFIG_C2PORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_C2PORT_DURAMAR_2150 policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Misc devices >> Texas Instruments shared transport line discipline +CONFIG_TI_ST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Multifunction device drivers +CONFIG_MFD_ALTERA_A10SR policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MFD_ALTERA_SYSMGR policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MFD_ACT8945A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_SUN4I_GPADC policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_MFD_AS3711 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_AS3722 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PMIC_ADP5520 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_AAT2870_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_ATMEL_FLEXCOM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_ATMEL_HLCDC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_BCM590XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_BD9571MWV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_AC100 policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_MFD_AXP20X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_AXP20X_RSB policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_MFD_CROS_EC_DEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_MFD_ASIC3 policy<{'armhf': 'y'}> +CONFIG_PMIC_DA903X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_DA9052_SPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_DA9052_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_DA9055 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_DA9062 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_DA9063 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MFD_DA9150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_DLN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MFD_EXYNOS_LPASS policy<{'armhf': 'n'}> +CONFIG_MFD_GATEWORKS_GSC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_MC13XXX_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MFD_MC13XXX_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_MP2629 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_HI6421_PMIC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_HI6421_SPMI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_HI655X_PMIC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_HTC_PASIC3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HTC_I2CPLD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_INTEL_QUARK_I2C_GPIO policy<{'amd64': 'm'}> +CONFIG_LPC_ICH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_LPC_SCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_INTEL_SOC_PMIC policy<{'amd64': 'y'}> +CONFIG_INTEL_SOC_PMIC_BXTWC policy<{'amd64': 'm'}> +CONFIG_INTEL_SOC_PMIC_CHTWC policy<{'amd64': 'y'}> +CONFIG_INTEL_SOC_PMIC_CHTDC_TI policy<{'amd64': 'm'}> +CONFIG_INTEL_SOC_PMIC_MRFLD policy<{'amd64': 'm'}> +CONFIG_MFD_INTEL_LPSS_ACPI policy<{'amd64': 'm'}> +CONFIG_MFD_INTEL_LPSS_PCI policy<{'amd64': 'm'}> +CONFIG_MFD_INTEL_PMC_BXT policy<{'amd64': 'm'}> +CONFIG_MFD_IQS62X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_JANZ_CMODIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_KEMPLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_88PM800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_88PM805 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_88PM860X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_MAX14577 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MFD_MAX77620 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_MAX77650 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_MAX77686 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_MAX77693 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MFD_MAX77843 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_MAX8907 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_MAX8925 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_MAX8997 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_MAX8998 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_MT6360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_MT6397 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_MENF21BMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EZX_PCAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_VIPERBOARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MFD_NTXEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_RETU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_PCF50633 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PCF50633_ADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCF50633_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_UCB1400_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_RT4831 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_RT5033 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_RC5T583 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_RK808 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_RN5T618 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_SEC_CORE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_SI476X_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_SL28CPLD policy<{'arm64': 'm'}> +CONFIG_MFD_SM501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_SM501_GPIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_SKY81452 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_SC27XX_PMIC policy<{'arm64': 'm'}> +CONFIG_MFD_STMPE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_SUN6I_PRCM policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_MFD_SYSCON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MFD_TI_AM335X_TSCADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_LP3943 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_LP8788 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_TI_LMU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_OMAP_USB_HOST policy<{'armhf': 'y'}> +CONFIG_MFD_PALMAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_TPS6105X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TPS65010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TPS6507X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_TPS65086 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_TPS65090 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_TPS65217 policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_MFD_TI_LP873X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_TI_LP87565 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_TPS65218 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_TPS6586X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_TPS65910 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_TPS65912_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MFD_TPS65912_SPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TWL4030_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_TWL4030_POWER policy<{'armhf': 'y'}> +CONFIG_MFD_TWL4030_AUDIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_TWL6040_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_WL1273_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_LM3533 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_TC3589X policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MFD_VX855 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_LOCHNAGAR policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_ARIZONA_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_ARIZONA_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MFD_CS47L24 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM5102 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM5110 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM8997 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM8998 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM8400 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_WM831X_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_WM831X_SPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_WM8350_I2C policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_MFD_WM8994 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_ROHM_BD718XX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_ROHM_BD71828 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_ROHM_BD957XMUF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_STPMIC1 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_STMFX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_WCD934X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_ATC260X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_KHADAS_MCU policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MFD_ACER_A500_EC policy<{'armhf': 'm'}> +CONFIG_MFD_QCOM_PM8008 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_AAEON policy<{'amd64': 'm'}> +CONFIG_MFD_VEXPRESS_SYSREG policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RAVE_SP_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_INTEL_M10_BMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MFD_RSMU_I2C policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_RSMU_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_MFD_SM501 note +CONFIG_MFD_TPS65217 mark note + +# Menu: Device Drivers >> Multifunction device drivers >> Cirrus Logic Madera codecs +CONFIG_MFD_MADERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MFD_MADERA_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_MADERA_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MFD_CS47L15 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_CS47L35 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_CS47L85 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_CS47L90 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MFD_CS47L92 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'riscv64': 'y'}> +CONFIG_STMPE_SPI policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support +CONFIG_MEDIA_SUPPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MEDIA_SUPPORT_FILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_SUBDRV_AUTOSELECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Digital TV options +CONFIG_DVB_MMAP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_NET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DVB_MAX_ADAPTERS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> +CONFIG_DVB_DYNAMIC_MINORS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DVB_DEMUX_SECTION_LOSS_LOG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_ULE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_DVB_ULE_DEBUG flag + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers +CONFIG_DVB_DUMMY_FE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IR_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_DVB_DUMMY_FE note + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Audio decoders, processors and mixers +CONFIG_VIDEO_TVAUDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TDA7432 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TDA9840 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TDA1997X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TEA6415C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TEA6420 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MSP3400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CS3308 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CS5345 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CS53L32A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TLV320AIC23B policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_UDA1342 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_WM8775 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_WM8739 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VP27SMPX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SONY_BTF_MPX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Audio/Video compression chips +CONFIG_VIDEO_SAA6752HS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Camera sensor devices +CONFIG_VIDEO_HI556 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX208 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX214 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX219 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX258 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX274 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX290 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX319 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX334 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX335 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX355 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IMX412 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV02A10 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV2640 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV2659 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV2680 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV2685 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV2740 policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_VIDEO_OV5640 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5645 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5647 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5648 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_VIDEO_OV6650 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5670 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5675 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV5695 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV7251 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV772X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV7640 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV7670 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV7740 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV8856 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV8865 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_VIDEO_OV9282 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV9640 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV9650 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_OV9734 policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_VIDEO_OV13858 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VS6624 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9M001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9M032 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9M111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9P031 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9T001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9T112 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9V011 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9V032 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MT9V111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SR030PC30 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_NOON010PC30 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_M5MOLS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_RDACM20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_RDACM21 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_RJ54N1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_S5K6AA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_S5K6A3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_S5K4ECGX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_S5K5BAF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CCS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ET8EK8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_S5C73M3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Customise DVB Frontends +CONFIG_DVB_STB0899 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STB6100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV090x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0910 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV6110x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV6111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MXL5XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_M88DS3103 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DRXK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA18271C2DD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_SI2165 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MN88472 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MN88473 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX24110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX24123 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MT312 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ZL10036 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ZL10039 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_S5H1420 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0288 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STB6000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0299 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV6110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0900 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA8083 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA10086 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA8261 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_VES1X93 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TUNER_ITD1000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TUNER_CX24113 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA826X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TUA6100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX24116 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX24117 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX24120 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_SI21XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TS2020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DS3000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MB86A16 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA10071 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_SP887X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX22700 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CX22702 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_S5H1432 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DRXD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_L64781 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA1004X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_NXT6000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MT352 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ZL10353 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB3000MB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB3000MC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB7000M policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB7000P policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB9000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA10048 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AF9013 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_EC100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0367 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CXD2820R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CXD2841ER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_RTL2830 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_RTL2832 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_RTL2832_SDR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_SI2168 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ZD1301_DEMOD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CXD2880 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_VES1820 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA10021 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA10023 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_STV0297 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_NXT200X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_OR51211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_OR51132 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_BCM3510 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LGDT330X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LGDT3305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LGDT3306A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LG2160 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_S5H1409 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AU8522_DTV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AU8522_V4L policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_S5H1411 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MXL692 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_S921 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DIB8000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MB86A20S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TC90522 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MN88443X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_PLL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TUNER_DIB0070 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TUNER_DIB0090 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DRX39XYJ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LNBH25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LNBH29 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LNBP21 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LNBP22 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ISL6405 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ISL6421 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ISL6423 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_A8293 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LGS8GL5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_LGS8GXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ATBM8830 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TDA665x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_IX2505V policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_M88RS2000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AF9033 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_HORUS3A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_ASCOT2E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_HELENE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_CXD2099 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_SP2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Customize TV tuners +CONFIG_MEDIA_TUNER_SIMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA18250 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA8290 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA827X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA18271 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA9887 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TEA5761 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TEA5767 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MSI001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MT20XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MT2060 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MT2063 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MT2266 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MT2131 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_QT1010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_XC2028 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_XC5000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_XC4000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MXL5005S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MXL5007T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MC44S803 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MAX2165 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA18218 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_FC0011 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_FC0012 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_FC0013 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TDA18212 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_E4000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_FC2580 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_M88RS6000T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_TUA9001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_SI2157 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_IT913X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_R820T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_MXL301RF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_QM1D1C0042 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_TUNER_QM1D1B0004 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Flash devices +CONFIG_VIDEO_ADP1653 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_LM3560 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_LM3646 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Lens drivers +CONFIG_VIDEO_AD5820 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_AK7375 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_DW9714 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_DW9768 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_DW9807_VCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Media SPI Adapters +CONFIG_CXD2880_SPI_DRV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Miscellaneous helper chips +CONFIG_VIDEO_THS7303 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_M52790 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ST_MIPID02 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> RDS decoders +CONFIG_VIDEO_SAA6588 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> SDR tuner chips +CONFIG_SDR_MAX2175 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> SPI helper chips +CONFIG_VIDEO_GS1662 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Video decoders +CONFIG_VIDEO_ADV7180 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7183 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV748X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7604 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7604_CEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_ADV7842 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7842_CEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_BT819 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_BT856 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_BT866 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_KS0127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ML86V7667 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA711X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TC358743 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TC358743_CEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_TVP514X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TVP5150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TVP7002 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW2804 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW9903 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW9906 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW9910 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VPX3220 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MAX9286 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA717X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX25840 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Video encoders +CONFIG_VIDEO_SAA7127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7185 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7170 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7175 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7343 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_ADV7393 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_AD9389B policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_AK881X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_THS8200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media ancillary drivers >> Video improvement chips +CONFIG_VIDEO_UPD64031A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_UPD64083 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media controller options +CONFIG_MEDIA_CONTROLLER_DVB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media core support +CONFIG_VIDEO_DEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_CONTROLLER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media device types +CONFIG_MEDIA_CAMERA_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_ANALOG_TV_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_DIGITAL_TV_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_RADIO_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_SDR_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_PLATFORM_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MEDIA_TEST_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers +CONFIG_SMS_SDIO_DRV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_FIREDTV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SMS_SIANO_RC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SMS_SIANO_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> DVB platform devices +CONFIG_DVB_PLATFORM_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DVB_C8SECTPFE policy<{'armhf': 'n'}> +# +CONFIG_DVB_C8SECTPFE flag + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> DVB test drivers +CONFIG_DVB_TEST_DRIVERS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media PCI Adapters +CONFIG_MEDIA_PCI_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_MEYE policy<{'amd64': 'm'}> +CONFIG_VIDEO_SOLO6X10 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW5864 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW68 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TW686X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_HEXIUM_GEMINI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_HEXIUM_ORION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MXB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_DT3155 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX18 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX18_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX23885 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEDIA_ALTERA_CI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX25821 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX25821_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_BT848 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_BT8XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7164 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_COBALT policy<{'amd64': 'm'}> +CONFIG_DVB_B2C2_FLEXCOP_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_PLUTO2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DM1105 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_PT1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_PT3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MANTIS_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_MANTIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_HOPPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_NGENE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DDBRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_DDBRIDGE_MSIENABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_SMIPCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_NETUP_UNIDVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IPU3_CIO2 policy<{'amd64': 'm'}> +CONFIG_CIO2_BRIDGE policy<{'amd64': 'y'}> +CONFIG_VIDEO_PCI_SKELETON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_VIDEO_IVTV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_IVTV_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_FB_IVTV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_FB_IVTV_FORCE_PAT policy<{'amd64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media PCI Adapters >> Conexant 2388x (bt878 successor) support +CONFIG_VIDEO_CX88 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX88_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX88_BLACKBIRD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX88_DVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX88_ENABLE_VP3054 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media PCI Adapters >> Philips SAA7134 support +CONFIG_VIDEO_SAA7134 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7134_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7134_RC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_SAA7134_DVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_SAA7134_GO7007 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media PCI Adapters >> SAA7146 DVB cards (aka Budget, Nova-PCI) +CONFIG_DVB_BUDGET_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_BUDGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_BUDGET_CI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_BUDGET_AV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters +CONFIG_MEDIA_USB_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_VIDEO_CLASS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_PWC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_PWC_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_PWC_INPUT_EVDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_CPIA2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_ZR364XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STKWEBCAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_S2255 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_USBTV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_PVRUSB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_PVRUSB2_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_PVRUSB2_DVB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_PVRUSB2_DEBUGIFC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_VIDEO_HDPVR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_STK1160_COMMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_GO7007 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_GO7007_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_GO7007_LOADER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_GO7007_USB_S2250_BOARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_AU0828 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_AU0828_V4L2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_AU0828_RC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_TM6000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TM6000_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_TM6000_DVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TTUSB_BUDGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_TTUSB_DEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SMS_USB_DRV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_B2C2_FLEXCOP_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_AS102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_AIRSPY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_HACKRF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MSI2500 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters >> Conexant cx231xx USB video capture support +CONFIG_VIDEO_CX231XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX231XX_RC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_CX231XX_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CX231XX_DVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters >> Empia EM28xx USB devices support +CONFIG_VIDEO_EM28XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_EM28XX_V4L2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_EM28XX_ALSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_EM28XX_DVB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_EM28XX_RC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters >> GSPCA based webcams +CONFIG_USB_GSPCA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_M5602 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STV06XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GL860 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_BENQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_CONEX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_CPIA1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_DTCS033 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_ETOMS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_FINEPIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_JEILINJ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_JL2005BCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_KINECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_KONICA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_MARS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_MR97310A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_NW80X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_OV519 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_OV534 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_OV534_9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_PAC207 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_PAC7302 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_PAC7311 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SE401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SN9C2028 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SN9C20X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SONIXB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SONIXJ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA500 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA501 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA505 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA506 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA508 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA561 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SPCA1528 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SQ905 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SQ905C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SQ930X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_STK014 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_STK1135 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_STV0680 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_SUNPLUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_T613 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_TOPRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_TOUPTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_TV8532 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_VC032X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_VICAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_XIRLINK_CIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GSPCA_ZC3XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters >> Support for various USB DVB devices +CONFIG_DVB_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_USB_A800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DIBUSB_MB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DIBUSB_MB_FAULTY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DVB_USB_DIBUSB_MC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DIB0700 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_UMT_010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_CXUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_CXUSB_ANALOG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DVB_USB_M920X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DIGITV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_VP7045 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_VP702X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_GP8PSK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_NOVA_T_USB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_TTUSB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DTT200U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_OPERA1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AF9005 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AF9005_REMOTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_PCTV452E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DW2102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_CINERGY_T2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DTV5100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AZ6027 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_TECHNISAT_USB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Media USB Adapters >> Support for various USB DVB devices v2 +CONFIG_DVB_USB_V2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AF9015 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AF9035 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_ANYSEE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AU6610 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_AZ6007 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_CE6230 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_EC168 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_GL861 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_LME2510 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_MXL111SF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_RTL28XXU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_DVBSKY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_USB_ZD1301 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Memory-to-memory multimedia devices +CONFIG_V4L_MEM2MEM_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_ALLEGRO_DVT policy<{'arm64': 'm'}> +CONFIG_VIDEO_CODA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_IMX_PXP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_IMX8_JPEG policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_MEDIATEK_VPU policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_MEM2MEM_DEINTERLACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MESON_GE2D policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_SAMSUNG_S5P_G2D policy<{'armhf': 'n'}> +CONFIG_VIDEO_SAMSUNG_S5P_JPEG policy<{'armhf': 'n'}> +CONFIG_VIDEO_SAMSUNG_S5P_MFC policy<{'armhf': 'n'}> +CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC policy<{'armhf': 'n'}> +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'}> +CONFIG_VIDEO_SUN8I_DEINTERLACE policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_VIDEO_SUN8I_ROTATE policy<{'arm64': 'm', 'armhf': '-'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Radio Adapters +CONFIG_RADIO_ADAPTERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_SI470X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SI470X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_SI470X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_SI476X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MR800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_DSBR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_MAXIRADIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_SHARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_SHARK2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_KEENE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_RAREMONO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MA901 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_TEA5764 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_SAA7706H policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_TEF6862 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_WL1273 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RADIO_WL128X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Radio Adapters >> ISA radio devices + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> Radio Adapters >> Silicon Labs Si4713 FM Radio with RDS Transmitter support +CONFIG_RADIO_SI4713 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SI4713 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PLATFORM_SI4713 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_I2C_SI4713 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> SDR platform devices +CONFIG_SDR_PLATFORM_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_RCAR_DRIF policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> V4L platform devices +CONFIG_V4L_PLATFORM_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_CAFE_CCIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VIA_CAMERA policy<{'amd64': 'm'}> +CONFIG_VIDEO_OMAP2_VOUT policy<{'armhf-generic': 'm'}> +CONFIG_VIDEO_ASPEED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CADENCE_CSI2RX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_CADENCE_CSI2TX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_MUX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_ROCKCHIP_ISP1 policy<{'arm64': 'm', 'armhf': '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', 'armhf': '-'}> +CONFIG_VIDEO_SUN6I_CSI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_VIDEO_TI_CAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_TI_CAL_MC policy<{'arm64': 'y', 'armhf-generic': 'n', 'armhf-generic-lpae': 'y'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> V4L platform devices >> Samsung S5P/EXYNOS4 SoC series Camera Subsystem driver +CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS policy<{'armhf': 'n'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> V4L platform devices >> Xilinx Video IP (EXPERIMENTAL) +CONFIG_VIDEO_XILINX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_XILINX_CSI2RXSS policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_XILINX_TPG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_XILINX_VTC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multimedia support >> Media drivers >> V4L test drivers +CONFIG_V4L_TEST_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_VIMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VIVID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VIVID_CEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_VIVID_MAX_DEVS policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'ppc64el': '64', 'riscv64': '64'}> +CONFIG_VIDEO_VIM2M policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIDEO_VICODEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_VIDEO_VIMC note + +# Menu: Device Drivers >> Multimedia support >> Video4Linux options +CONFIG_VIDEO_ADV_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_VIDEO_FIXED_MINOR_RANGES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_VIDEO_V4L2_SUBDEV_API policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_V4L2_FLASH_LED_CLASS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) +CONFIG_MD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> Block device as cache +CONFIG_BCACHE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BCACHE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BCACHE_CLOSURES_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BCACHE_ASYNC_REGISTRATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> Device mapper support +CONFIG_BLK_DEV_DM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DM_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_DM_UNSTRIPED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_CRYPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_SNAPSHOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_THIN_PROVISIONING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_CACHE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_CACHE_SMQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_WRITECACHE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_EBS policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_ERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_CLONE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_MIRROR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_LOG_USERSPACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_RAID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_ZERO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_DELAY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_DUST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DM_INIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DM_UEVENT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DM_FLAKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_VERITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DM_VERITY_FEC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DM_SWITCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_LOG_WRITES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_INTEGRITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_ZONED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_BLK_DEV_DM mark note + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> Device mapper support >> Multipath target +CONFIG_DM_MULTIPATH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_MULTIPATH_QL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_MULTIPATH_ST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_MULTIPATH_HST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DM_MULTIPATH_IOA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Multiple devices driver support (RAID and LVM) >> RAID support +CONFIG_BLK_DEV_MD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MD_AUTODETECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MD_LINEAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_RAID0 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_RAID1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_RAID10 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_RAID456 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_MULTIPATH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'y'}> +CONFIG_MD_FAULTY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MD_CLUSTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Multiplexer drivers +CONFIG_MUX_ADG792A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MUX_ADGS1408 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MUX_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MUX_MMIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> NVDIMM (Non-Volatile Memory Device) Support +CONFIG_LIBNVDIMM policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_BLK_DEV_PMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BTT policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NVDIMM_PFN policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +CONFIG_NVDIMM_DAX policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +CONFIG_OF_PMEM policy<{'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> NVME Support +CONFIG_BLK_DEV_NVME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_MULTIPATH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NVME_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NVME_RDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_TCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_BLK_DEV_NVME mark note + +# Menu: Device Drivers >> NVME Support >> NVMe Target support +CONFIG_NVME_TARGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_TARGET_PASSTHRU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NVME_TARGET_LOOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_TARGET_RDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_TARGET_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NVME_TARGET_FCLOOP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NVME_TARGET_TCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> NVMEM Support +CONFIG_NVMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NVMEM_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NVMEM_IMX_IIM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVMEM_IMX_OCOTP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVMEM_IMX_OCOTP_SCU policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTK_EFUSE policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_QCOM_QFPROM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVMEM_SPMI_SDAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ROCKCHIP_EFUSE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ROCKCHIP_OTP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVMEM_BCM_OCOTP policy<{'arm64': 'm'}> +CONFIG_NVMEM_SUNXI_SID policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_UNIPHIER_EFUSE policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_NVMEM_VF610_OCOTP policy<{'armhf': 'n'}> +CONFIG_MESON_EFUSE policy<{'arm64-generic': 'm'}> +CONFIG_MESON_MX_EFUSE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVMEM_SNVS_LPGPR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RAVE_SP_EEPROM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SC27XX_EFUSE policy<{'arm64': 'm'}> +CONFIG_NVMEM_ZYNQMP policy<{'arm64': 'y'}> +CONFIG_SPRD_EFUSE policy<{'arm64': 'm'}> +CONFIG_NVMEM_RMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_NVMEM flag note note + +# Menu: Device Drivers >> Network device support +CONFIG_NETDEVICES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HIPPI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_QCOM_IPA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NET_SB1000 policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_MICREL_KS8995MA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PLIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_XEN_NETDEV_FRONTEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_NETDEV_BACKEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_VMXNET3 policy<{'amd64': 'm', 'arm64-generic': 'm', 'armhf': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FUJITSU_ES policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_USB4_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HYPERV_NET policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_NETDEVSIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_FAILOVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_HIPPI flag +CONFIG_XEN_NETDEV_FRONTEND note + +# Menu: Device Drivers >> Network device support >> ARCnet support +CONFIG_ARCNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ARCNET_1201 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_1051 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_CAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_COM90xx policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_COM90xxIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_RIM_I policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> ARCnet support >> ARCnet COM20020 chipset driver +CONFIG_ARCNET_COM20020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_COM20020_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCNET_COM20020_CS policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Network device support >> ATM drivers +CONFIG_ATM_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATM_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_TCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_LANAI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_ENI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_ENI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_NICSTAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_NICSTAR_USE_SUNI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_NICSTAR_USE_IDT77105 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_IDT77252 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_IDT77252_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_IDT77252_RCV_ALL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_IA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_IA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_HE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_HE_USE_SUNI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATM_SOLOS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_ATM_NICSTAR_USE_IDT77105 flag + +# Menu: Device Drivers >> Network device support >> ATM drivers >> FORE Systems 200E-series +CONFIG_ATM_FORE200E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_FORE200E_USE_TASKLET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_FORE200E_TX_RETRY policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'ppc64el': '16', 'riscv64': '16'}> +CONFIG_ATM_FORE200E_DEBUG policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> CAIF transport drivers +CONFIG_CAIF_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CAIF_TTY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAIF_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers +CONFIG_NET_DSA_BCM_SF2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_LOOP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_LANTIQ_GSWIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MT7530 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MV88E6060 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MV88E6XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MV88E6XXX_PTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NET_DSA_MSCC_FELIX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n'}> +CONFIG_NET_DSA_MSCC_SEVILLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_AR9331 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_SJA1105 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_SJA1105_PTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NET_DSA_SJA1105_TAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NET_DSA_SJA1105_VL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NET_DSA_XRS700X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_XRS700X_MDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_QCA8K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_REALTEK_SMI policy<{'amd64': 'n', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_SMSC_LAN9303_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_SMSC_LAN9303_MDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_VITESSE_VSC73XX_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_NET_DSA_LOOP flag + +# Menu: Device Drivers >> Network device support >> Distributed Switch Architecture drivers >> Broadcom BCM53xx managed switch support +CONFIG_B53 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B53_SPI_DRIVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B53_MDIO_DRIVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B53_MMAP_DRIVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B53_SRAB_DRIVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B53_SERDES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MICROCHIP_KSZ8795_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MICROCHIP_KSZ8863_SMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MICROCHIP_KSZ9477_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_MICROCHIP_KSZ9477_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support +CONFIG_ETHERNET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_VENDOR_ACTIONS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_OWL_EMAC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NET_VENDOR_ADAPTEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ADAPTEC_STARFIRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_AGERE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ET131X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_ALACRITECH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLICOSS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_VENDOR_ALLWINNER policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_SUN4I_EMAC policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_NET_VENDOR_ALTEON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ACENIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ACENIC_OMIT_TIGON_I policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ALTERA_TSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_AMAZON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ENA_ETHERNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AQTION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_ARC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_EMAC_ROCKCHIP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NET_VENDOR_BROCADE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_BNA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_CADENCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MACB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MACB_USE_HWSTAMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MACB_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_CALXEDA_XGMAC policy<{'armhf': 'm'}> +CONFIG_NET_VENDOR_CISCO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ENIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_CORTINA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_GEMINI_ETHERNET policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CX_ECAT policy<{'amd64': 'm'}> +CONFIG_DM9000 policy<{'armhf': 'm'}> +CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL policy<{'armhf': 'n'}> +CONFIG_DNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_DEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NET_VENDOR_DLINK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DL2K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SUNDANCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SUNDANCE_MMIO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NET_VENDOR_EMULEX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NET_VENDOR_EZCHIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_EZCHIP_NPS_MANAGEMENT_ENET policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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'}> +CONFIG_PCMCIA_FMVJ18X policy<{'amd64': 'm'}> +CONFIG_NET_VENDOR_GOOGLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_GVE policy<{'amd64': 'm', 'armhf': 'm', 'arm64': 'm', 'ppc64el': 'm'}> +CONFIG_NET_VENDOR_HUAWEI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_HINIC policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_NET_VENDOR_MICROSOFT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MICROSOFT_MANA policy<{'amd64': 'm'}> +CONFIG_JME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_LITEX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_LITEX_LITEETH policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_VENDOR_MEDIATEK policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_NET_VENDOR_MICROSEMI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MSCC_OCELOT_SWITCH policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_VENDOR_MYRI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MYRI10GE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MYRI10GE_DCA policy<{'amd64': 'y'}> +CONFIG_FEALNX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_NETERION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_S2IO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_VXGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_VXGE_DEBUG_TRACE_ALL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NET_VENDOR_NETRONOME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_VENDOR_NI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NI_XGE_MANAGEMENT_ENET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_NVIDIA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_FORCEDETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_OKI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ETHOC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_PACKET_ENGINES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HAMACHI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_YELLOWFIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_VENDOR_PENSANDO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_IONIC policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_RDC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_R6040 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_RENESAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ROCKER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_SAMSUNG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SXGBE_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_SEEQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NET_VENDOR_SOLARFLARE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SFC_FALCON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SFC_FALCON_MTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NET_VENDOR_SILAN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SC92031 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_SIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SIS900 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SIS190 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_SOCIONEXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SNI_NETSEC policy<{'arm64': 'm'}> +CONFIG_NET_VENDOR_STMICRO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NET_VENDOR_SYNOPSYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DWC_XLGMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DWC_XLGMAC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_VENDOR_TEHUTI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_TEHUTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_VIA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_VIA_RHINE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VIA_RHINE_MMIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIA_VELOCITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NET_VENDOR_WIZNET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_WIZNET_W5100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WIZNET_W5300 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WIZNET_W5100_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_VENDOR_XIRCOM policy<{'amd64': 'y'}> +CONFIG_PCMCIA_XIRC2PS policy<{'amd64': 'm'}> +# +CONFIG_NET_VENDOR_EMULEX note + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> 3Com devices +CONFIG_NET_VENDOR_3COM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_EL3 policy<{'amd64': 'm'}> +CONFIG_PCMCIA_3C574 policy<{'amd64': 'm'}> +CONFIG_PCMCIA_3C589 policy<{'amd64': 'm'}> +CONFIG_VORTEX policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPHOON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> AMD devices +CONFIG_NET_VENDOR_AMD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_AMD8111_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PCNET32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PCMCIA_NMCLAN policy<{'amd64': 'm'}> +CONFIG_AMD_XGBE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_AMD_XGBE_DCB policy<{'amd64': 'y', 'arm64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ATL2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ATL1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ATL1E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ATL1C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ALX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Broadcom devices +CONFIG_NET_VENDOR_BROADCOM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_B44 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BCM4908_ENET policy<{'arm64': 'm'}> +CONFIG_BCMGENET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BNX2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CNIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TIGON3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TIGON3_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BNX2X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BNX2X_SRIOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BGMAC_PLATFORM policy<{'arm64': 'y'}> +CONFIG_SYSTEMPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_TIGON3 flag + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BNXT_SRIOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BNXT_FLOWER_OFFLOAD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BNXT_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BNXT_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Cavium ethernet drivers +CONFIG_NET_VENDOR_CAVIUM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_THUNDER_NIC_PF policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_THUNDER_NIC_VF policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_THUNDER_NIC_BGX policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_THUNDER_NIC_RGX policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CAVIUM_PTP policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LIQUIDIO policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LIQUIDIO_VF policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Chelsio devices +CONFIG_NET_VENDOR_CHELSIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CHELSIO_T1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHELSIO_T1_1G policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CHELSIO_T3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHELSIO_T4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHELSIO_T4_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CHELSIO_T4_FCOE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CHELSIO_T4VF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Chelsio devices >> Chelsio Inline Crypto support +CONFIG_CHELSIO_INLINE_CRYPTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CHELSIO_IPSEC_INLINE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHELSIO_TLS_DEVICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Cirrus devices +CONFIG_NET_VENDOR_CIRRUS policy<{'amd64': 'y', 'armhf': 'y'}> +CONFIG_CS89x0_PLATFORM policy<{'armhf': 'm'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> DEC - Tulip devices +CONFIG_NET_TULIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DE2104X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DE2104X_DSL policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_WINBOND_840 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DM9102 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ULI526X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PCMCIA_XIRCOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TULIP_MWI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_TULIP_MMIO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_TULIP_NAPI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_TULIP_NAPI flag + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Freescale devices +CONFIG_NET_VENDOR_FREESCALE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_FEC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_FSL_FMAN policy<{'arm64': 'y'}> +CONFIG_FSL_PQ_MDIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_XGMAC_MDIO policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_GIANFAR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_DPAA_ETH policy<{'arm64': 'm'}> +CONFIG_FSL_DPAA2_ETH policy<{'arm64': 'm'}> +CONFIG_FSL_DPAA2_ETH_DCB policy<{'arm64': 'y'}> +CONFIG_FSL_DPAA2_PTP_CLOCK policy<{'arm64': 'm'}> +CONFIG_FSL_DPAA2_SWITCH policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC_VF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC_IERB policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC_MDIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC_PTP_CLOCK policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_FSL_ENETC_QOS policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': '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_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 note + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Intel devices +CONFIG_NET_VENDOR_INTEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_E100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_E1000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_E1000E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_E1000E_HWTS policy<{'amd64': 'y'}> +CONFIG_IGB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IGB_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IGB_DCA policy<{'amd64': 'y'}> +CONFIG_IGBVF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IXGB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IXGBEVF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IXGBEVF_IPSEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_I40E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_I40E_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_I40EVF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FM10K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IGC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_IXGBE_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IXGBE_DCA policy<{'amd64': 'y'}> +CONFIG_IXGBE_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IXGBE_IPSEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Marvell devices +CONFIG_NET_VENDOR_MARVELL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MV643XX_ETH policy<{'armhf': 'm'}> +CONFIG_MVMDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MVNETA_BM_ENABLE policy<{'armhf': 'n'}> +CONFIG_MVNETA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MVPP2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MVPP2_PTP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PXA168_ETH policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SKGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SKGE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SKGE_GENESIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SKY2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SKY2_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_OCTEONTX2_AF policy<{'arm64': 'm'}> +CONFIG_NDC_DIS_DYNAMIC_CACHING policy<{'arm64': 'y'}> +CONFIG_OCTEONTX2_PF policy<{'arm64': 'm'}> +CONFIG_OCTEONTX2_VF policy<{'arm64': 'm'}> +CONFIG_PRESTERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PRESTERA_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Mellanox devices +CONFIG_NET_VENDOR_MELLANOX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX4_EN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLX4_EN_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX4_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX4_CORE_GEN2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLX5_FPGA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLXFW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLXBF_GIGE policy<{'arm64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_EN_ARFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_EN_RXNFC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_MPFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_ESWITCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_CLS_ACT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_TC_CT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_TC_SAMPLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_CORE_EN_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_CORE_IPOIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_EN_IPSEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_SW_STEERING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MLX5_SF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLXSW_CORE_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MLXSW_CORE_THERMAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MLXSW_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MLXSW_MINIMAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLXSW_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLXSW_SPECTRUM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MLXSW_SPECTRUM_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_KS8842 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KS8851 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KS8851_MLL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KSZ884X_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Microchip devices +CONFIG_NET_VENDOR_MICROCHIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ENC28J60 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_ENC28J60_WRITEVERIFY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ENCX24J600 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_LAN743X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPARX5_SWITCH policy<{'amd64': '-', 'arm64': 'm', 'armhf': '-', 'ppc64el': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> National Semiconductor 8390 devices +CONFIG_NET_VENDOR_8390 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCMCIA_AXNET policy<{'amd64': 'm'}> +CONFIG_AX88796 policy<{'armhf': 'm'}> +CONFIG_AX88796_93CX6 policy<{'armhf': 'n'}> +CONFIG_NE2K_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PCMCIA_PCNET policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> National Semiconductor devices +CONFIG_NET_VENDOR_NATSEMI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_NATSEMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NS83820 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Netronome(R) NFP4000/NFP6000 NIC driver +CONFIG_NFP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NFP_APP_FLOWER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NFP_APP_ABM_NIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NFP_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> QLogic devices +CONFIG_NET_VENDOR_QLOGIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_QLA3XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NETXEN_NIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_QED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_QED_SRIOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_QEDE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_QLCNIC_SRIOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_QLCNIC_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_QLCNIC_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Qualcomm devices +CONFIG_NET_VENDOR_QUALCOMM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_QCA7000_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QCA7000_UART policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QCOM_EMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RMNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Realtek devices +CONFIG_NET_VENDOR_REALTEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ATP policy<{'amd64': 'm'}> +CONFIG_8139CP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_R8169 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_8139TOO_PIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_8139TOO_TUNE_TWISTER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_8139TOO_8129 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_8139_OLD_RX_RESET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_8139TOO_TUNE_TWISTER flag + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SMC91X policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PCMCIA_SMC91C92 policy<{'amd64': 'm'}> +CONFIG_EPIC100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SMC911X policy<{'armhf': 'm'}> +CONFIG_SMSC911X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SMSC9420 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> STMicroelectronics Multi-Gigabit Ethernet driver +CONFIG_STMMAC_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_STMMAC_SELFTESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_DWMAC_INTEL policy<{'amd64': 'm'}> +CONFIG_DWMAC_LOONGSON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_STMMAC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DWMAC_DWC_QOS_ETH policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DWMAC_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'armhf': 'm'}> +CONFIG_DWMAC_SUNXI policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_DWMAC_SUN8I policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_DWMAC_IMX8 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_DWMAC_INTEL_PLAT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n'}> +CONFIG_DWMAC_VISCONTI 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BE2NET_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BE2NET_BE2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BE2NET_BE3 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BE2NET_LANCER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BE2NET_SKYHAWK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Solarflare SFC9000/SFC9100/EF100-family support +CONFIG_SFC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SFC_MTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SFC_MCDI_MON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SFC_SRIOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SFC_MCDI_LOGGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Sun devices +CONFIG_NET_VENDOR_SUN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_HAPPYMEAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SUNGEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CASSINI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NIU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Texas Instruments (TI) devices +CONFIG_NET_VENDOR_TI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_TI_DAVINCI_EMAC policy<{'armhf-generic': 'm'}> +CONFIG_TI_DAVINCI_MDIO policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_TI_CPSW_PHY_SEL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_TI_CPSW policy<{'armhf': 'y'}> +CONFIG_TI_CPSW_SWITCHDEV policy<{'armhf': 'm'}> +CONFIG_TI_CPTS policy<{'armhf': 'y'}> +CONFIG_TI_K3_AM65_CPSW_NUSS policy<{'arm64': 'm'}> +CONFIG_TI_K3_AM65_CPSW_SWITCHDEV policy<{'arm64': 'y'}> +CONFIG_TI_K3_AM65_CPTS policy<{'arm64': 'm'}> +CONFIG_TI_AM65_CPSW_TAS policy<{'arm64': 'y'}> +CONFIG_TLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_WIZNET_BUS_INDIRECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_WIZNET_BUS_ANY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Ethernet driver support >> Xilinx devices +CONFIG_NET_VENDOR_XILINX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XILINX_EMACLITE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_XILINX_AXI_EMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XILINX_LL_TEMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> Network device support >> FDDI driver support +CONFIG_FDDI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DEFXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SKFP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Network device support >> IEEE 802.15.4 drivers +CONFIG_IEEE802154_DRIVERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_FAKELB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_AT86RF230 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_MRF24J40 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_CC2520 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_ATUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_ADF7242 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_CA8210 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_CA8210_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IEEE802154_MCR20A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_HWSIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> MDIO bus device drivers +CONFIG_MDIO_DEVICE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MDIO_BITBANG policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MDIO_BUS_MUX_BCM_IPROC policy<{'arm64': 'y'}> +CONFIG_MDIO_BUS_MUX_GPIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_BUS_MUX_MESON_G12A policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MDIO_BUS_MUX_MMIOREG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_BUS_MUX_MULTIPLEXER policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_HISI_FEMAC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_IPQ4019 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_IPQ8064 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_MSCC_MIIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MDIO_MVUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MDIO_OCTEON policy<{'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MDIO_SUN4I policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_MDIO_THUNDER policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BONDING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_WIREGUARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_WIREGUARD_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_EQUALIZER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_FC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IFB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MACVLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MACVTAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPVLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPVTAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VXLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GENEVE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BAREUDP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_GTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MACSEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETCONSOLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETCONSOLE_DYNAMIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NTB_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RIONET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RIONET_TX_SIZE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128'}> +CONFIG_RIONET_RX_SIZE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128'}> +CONFIG_TUN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TUN_VNET_CROSS_LE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_VETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VIRTIO_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_VRF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VSOCKMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MHI_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_VIRTIO_NET note flag + +# Menu: Device Drivers >> Network device support >> Network core driver support >> Ethernet team driver support +CONFIG_NET_TEAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TEAM_MODE_BROADCAST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TEAM_MODE_ROUNDROBIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TEAM_MODE_RANDOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TEAM_MODE_ACTIVEBACKUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TEAM_MODE_LOADBALANCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Network device support >> PCS device drivers +CONFIG_PCS_XPCS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> Network device support >> PHY Device support and infrastructure +CONFIG_PHYLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LED_TRIGGER_PHY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_FIXED_PHY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SFP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_AMD_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MESON_GXL_PHY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ADIN_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_AQUANTIA_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_AX88796B_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BROADCOM_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BCM54140_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BCM7XXX_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BCM84881_PHY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BCM87XX_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CICADA_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CORTINA_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DAVICOM_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ICPLUS_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_LXT_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INTEL_XWAY_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_LSI_ET1011C_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MARVELL_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MARVELL_10G_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MARVELL_88X2222_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MAXLINEAR_GPHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MEDIATEK_GE_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MICREL_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MICROCHIP_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MICROCHIP_T1_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MICROSEMI_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MOTORCOMM_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NATIONAL_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NXP_C45_TJA11XX_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NXP_TJA11XX_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_AT803X_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_QSEMI_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_REALTEK_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RENESAS_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ROCKCHIP_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SMSC_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_STE10XP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TERANETICS_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DP83822_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DP83TC811_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DP83848_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DP83867_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DP83869_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VITESSE_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XILINX_GMII2RGMII policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> Network device support >> PPP (point-to-point protocol) support +CONFIG_PPP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PPP_BSDCOMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPP_DEFLATE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPP_FILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PPP_MPPE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPP_MULTILINK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PPPOATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PPPOE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPPOL2TP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPP_ASYNC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PPP_SYNC_TTY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# 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_ISM policy<{'s390x': 'm'}> +# +CONFIG_ISM mark note + +# Menu: Device Drivers >> Network device support >> S/390 network device drivers >> Gigabit Ethernet device support +CONFIG_QETH policy<{'s390x': 'm'}> +CONFIG_QETH_L2 policy<{'s390x': 'm'}> +CONFIG_QETH_L3 policy<{'s390x': 'm'}> +CONFIG_QETH_OSX policy<{'s390x': 'n'}> +# +CONFIG_QETH_OSX mark note + +# Menu: Device Drivers >> Network device support >> SLIP (serial line) support +CONFIG_SLIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SLIP_COMPRESSED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SLIP_SMART policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SLIP_MODE_SLIP6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> USB Network Adapters +CONFIG_USB_NET_DRIVERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CATC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_KAWETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_PEGASUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_RTL8150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_RTL8152 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_LAN78XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_HSO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_IPHETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_AX8817X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_AX88179_178A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CDCETHER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CDC_EEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CDC_NCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_HUAWEI_CDC_NCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CDC_MBIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_DM9601 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_SR9700 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_SR9800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_SMSC75XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_SMSC95XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_GL620A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_NET1080 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_PLUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_MCS7830 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_RNDIS_HOST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_ZAURUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CX82310_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_KALMIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_QMI_WWAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_INT51X1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CDC_PHONET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SIERRA_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_VL600 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_CH9200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_AQC111 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_RTL8153_ECM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_ALI_M5632 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_AN2720 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_BELKIN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ARMLINUX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_EPSON2888 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_KC2190 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wan interfaces support +CONFIG_WAN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SLIC_DS26522 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_LAPBETHER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wan interfaces support >> Generic HDLC layer +CONFIG_HDLC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HDLC_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDLC_RAW_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDLC_CISCO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDLC_FR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDLC_PPP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HDLC_X25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCI200SYN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WANXL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PC300TOO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FARSYNC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FSL_UCC_HDLC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN +CONFIG_WLAN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WLAN_VENDOR_ADMTEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ADM8211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLAN_VENDOR_ATMEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATMEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCI_ATMEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCMCIA_ATMEL policy<{'amd64': 'm'}> +CONFIG_AT76C50X_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLAN_VENDOR_CISCO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_AIRO policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_AIRO_CS policy<{'amd64': 'm'}> +CONFIG_WLAN_VENDOR_MICROCHIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WILC1000_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WILC1000_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WILC1000_HW_OOB_INTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WLAN_VENDOR_RALINK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WLAN_VENDOR_RSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WLAN_VENDOR_ST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CW1200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CW1200_WLAN_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CW1200_WLAN_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLAN_VENDOR_ZYDAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ZD1201 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ZD1211RW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ZD1211RW_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_WLAN_VENDOR_QUANTENNA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_QTNFMAC_PCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCMCIA_RAYCS policy<{'amd64': 'm'}> +CONFIG_PCMCIA_WL3501 policy<{'amd64': 'm'}> +CONFIG_MAC80211_HWSIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET_RNDIS_WLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIRT_WIFI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices +CONFIG_WLAN_VENDOR_ATH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH5K_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_BTCOEX_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_HTC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH9K_HTC_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_COMMON_SPECTRAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_AR5523 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WCN36XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WCN36XX_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH5K_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH5K_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH10K_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH10K_AHB policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH10K_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH10K_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH10K_SNOC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ATH10K_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH10K_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH10K_SPECTRAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH10K_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH9K_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_AHB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_STATION_STATISTICS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_DYNACK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH9K_WOW policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_ATH9K_RFKILL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_CHANNEL_CONTEXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_PCOEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH9K_PCI_NO_EEPROM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH9K_HWRNG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH6KL_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH6KL_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH6KL_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH6KL_TRACING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CARL9170_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CARL9170_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_CARL9170_HWRNG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Atheros/Qualcomm devices >> Qualcomm Technologies 802.11ax chipset support +CONFIG_ATH11K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH11K_AHB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_ATH11K_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATH11K_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_ATH11K_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH11K_SPECTRAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATH11K_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WIL6210_ISR_COR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WIL6210_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WIL6210_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices +CONFIG_WLAN_VENDOR_BROADCOM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B43LEGACY_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_BRCMSMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BRCM_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BRCMDBG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_BRCMDBG flag + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_B43_SDIO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_B43_PHY_G policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43_PHY_N policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43_PHY_LP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43_PHY_HT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43_BUSES_BCMA policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_B43_BUSES_SSB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_B43LEGACY_DMA_MODE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_B43LEGACY_PIO_MODE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Broadcom devices >> Broadcom FullMAC WLAN driver +CONFIG_BRCMFMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BRCMFMAC_SDIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BRCMFMAC_USB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BRCMFMAC_PCIE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intel devices +CONFIG_WLAN_VENDOR_INTEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPW2100_MONITOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2100_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_LIBIPW_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_IWL4965 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IWL3945 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPW2200_MONITOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2200_RADIOTAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2200_PROMISCUOUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2200_QOS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IPW2200_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IWLDVM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IWLMVM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# 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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_IWLWIFI_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IWLWIFI_DEVICE_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_IWLEGACY_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices +CONFIG_WLAN_VENDOR_INTERSIL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HERMES_PRISM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_HERMES_CACHE_FW_ON_INIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PLX_HERMES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TMD_HERMES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NORTEL_HERMES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PCMCIA_HERMES policy<{'amd64': 'm'}> +CONFIG_PCMCIA_SPECTRUM policy<{'amd64': 'm'}> +CONFIG_ORINOCO_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HOSTAP_FIRMWARE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HOSTAP_FIRMWARE_NVRAM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HOSTAP_PLX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HOSTAP_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HOSTAP_CS policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Intersil devices >> Softmac Prism54 support +CONFIG_P54_COMMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_P54_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_P54_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_P54_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_P54_SPI_DEFAULT_EEPROM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Marvell devices +CONFIG_WLAN_VENDOR_MARVELL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LIBERTAS_THINFIRM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIBERTAS_THINFIRM_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_LIBERTAS_THINFIRM_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MWL8K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIBERTAS_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIBERTAS_CS policy<{'amd64': 'm'}> +CONFIG_LIBERTAS_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIBERTAS_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIBERTAS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_LIBERTAS_MESH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Marvell devices >> Marvell WiFi-Ex Driver +CONFIG_MWIFIEX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MWIFIEX_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MWIFIEX_PCIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MWIFIEX_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> MediaTek devices +CONFIG_WLAN_VENDOR_MEDIATEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MT7601U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT76x0U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT76x0E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT76x2E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT76x2U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7603E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7615E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7622_WMAC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MT7663U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7663S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7915E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MT7921E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Ralink driver support +CONFIG_RT2X00 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2400PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2500PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT61PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2500USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT73USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2X00_LIB_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RT2X00_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2800PCI_RT33XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800PCI_RT35XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800PCI_RT53XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800PCI_RT3290 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RT2800USB_RT33XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800USB_RT35XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800USB_RT3573 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800USB_RT53XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800USB_RT55XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RT2800USB_UNKNOWN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek devices +CONFIG_WLAN_VENDOR_REALTEK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTL8180 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8187 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8XXXU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8XXXU_UNTESTED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW88_8822BE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW88_8822CE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW88_8723DE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW88_8821CE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW88_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTW88_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Realtek devices >> Realtek 802.11ax wireless chips support +CONFIG_RTW89 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW89_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW89_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW89_8852AE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTW89_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTW89_DEBUGMSG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTW89_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192CE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192SE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192DE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8723AE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8723BE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8188EE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192EE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8821AE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192CU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTLWIFI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RSI_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RSI_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RSI_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RSI_COEX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless LAN >> Texas Instrument devices +CONFIG_WLAN_VENDOR_TI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_WL1251 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WL1251_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WL1251_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WL12XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WL18XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLCORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLCORE_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WLCORE_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WILINK_PLATFORM_DATA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Network device support >> Wireless WAN + +# Menu: Device Drivers >> Network device support >> Wireless WAN >> WWAN Driver Core +CONFIG_WWAN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_WWAN_HWSIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MHI_WWAN_CTRL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MHI_WWAN_MBIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RPMSG_WWAN_CTRL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IOSM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Non-Transparent Bridge support +CONFIG_NTB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NTB_MSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NTB_AMD policy<{'amd64': 'n'}> +CONFIG_NTB_IDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_INTEL policy<{'amd64': 'm'}> +CONFIG_NTB_EPF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_SWITCHTEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_PINGPONG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_TOOL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_PERF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NTB_MSI_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_NTB_TRANSPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> On-Chip Interconnect management support +CONFIG_INTERCONNECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_INTERCONNECT_QCOM_SC7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SC7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SC8180X policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SDM845 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SDX55 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SM8150 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SM8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SM8350 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_SAMSUNG policy<{'armhf': 'n'}> +CONFIG_INTERCONNECT_EXYNOS policy<{'armhf': '-'}> + +# Menu: Device Drivers >> On-Chip Interconnect management support >> Qualcomm Network-on-Chip interconnect drivers +CONFIG_INTERCONNECT_QCOM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_INTERCONNECT_QCOM_MSM8916 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_MSM8939 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_MSM8974 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_OSM_L3 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_QCS404 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_QCOM_SDM660 policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> On-Chip Interconnect management support >> i.MX interconnect drivers +CONFIG_INTERCONNECT_IMX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_IMX8MM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_IMX8MN policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_INTERCONNECT_IMX8MQ policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support +CONFIG_PCCARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CARDBUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> + +# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support >> 16-bit PCMCIA support +CONFIG_PCMCIA policy<{'amd64': 'm', 'arm64': 'n', 'armhf': 'n', 'ppc64el': '-'}> +CONFIG_PCMCIA_LOAD_CIS policy<{'amd64': 'y'}> +CONFIG_PD6729 policy<{'amd64': 'm'}> +CONFIG_I82092 policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> PCCard (PCMCIA/CardBus) support >> CardBus yenta-compatible bridge support +CONFIG_YENTA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': '-'}> +CONFIG_YENTA_O2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_YENTA_RICOH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_YENTA_TI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_YENTA_ENE_TUNE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_YENTA_TOSHIBA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': '-'}> + +# Menu: Device Drivers >> PCI support +CONFIG_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCIEASPM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCIE_PTM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_MSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_QUIRKS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PCI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCI_REALLOC_ENABLE_AUTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_STUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PCI_PF_STUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XEN_PCIDEV_FRONTEND policy<{'amd64': 'm'}> +CONFIG_PCI_IOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_PRI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PCI_PASID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PCI_P2PDMA policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n'}> +CONFIG_PCI_HYPERV policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_PCIEPORTBUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HOTPLUG_PCI_PCIE policy<{'amd64': 'y', 'arm64': 'y', 'riscv64': 'y', 's390x': 'y', 'armhf': '-', 'ppc64el': '-'}> +# +CONFIG_PCI_P2PDMA flag +CONFIG_PCIEPORTBUS mark note +CONFIG_HOTPLUG_PCI_PCIE mark note + +# Menu: Device Drivers >> PCI support >> Default ASPM policy +CONFIG_PCIEASPM_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCIEASPM_POWERSAVE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIEASPM_POWER_SUPERSAVE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIEASPM_PERFORMANCE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_PCIEASPM_DEFAULT note + +# Menu: Device Drivers >> PCI support >> PCI Endpoint + +# Menu: Device Drivers >> PCI support >> PCI Endpoint >> PCI Endpoint Support +CONFIG_PCI_ENDPOINT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_ENDPOINT_CONFIGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_EPF_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCI_EPF_NTB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> PCI support >> PCI Express Advanced Error Reporting support +CONFIG_PCIEAER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y', 's390x': 'y', 'ppc64el': '-'}> +CONFIG_PCIEAER_INJECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': 'n', 'ppc64el': '-'}> +CONFIG_PCIE_ECRC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': 'n', 'ppc64el': '-'}> +CONFIG_PCIE_DPC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y', 's390x': 'y', 'ppc64el': '-'}> +CONFIG_PCIE_EDR policy<{'amd64': 'y', 'arm64': 'y'}> +# +CONFIG_PCIEAER_INJECT flag + +# Menu: Device Drivers >> PCI support >> PCI Express hierarchy optimization setting +CONFIG_PCIE_BUS_TUNE_OFF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIE_BUS_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCIE_BUS_SAFE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIE_BUS_PERFORMANCE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIE_BUS_PEER2PEER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# 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', 'riscv64': 'y'}> +CONFIG_PCI_IXP4XX policy<{'armhf': '-'}> +CONFIG_PCI_TEGRA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PCI_RCAR_GEN2 policy<{'armhf': 'y'}> +CONFIG_PCIE_RCAR_HOST policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PCIE_RCAR_EP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PCI_HOST_GENERIC policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCIE_XILINX policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCIE_XILINX_CPM policy<{'arm64': '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_MEDIATEK_GEN3 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VMD policy<{'amd64': 'm'}> +CONFIG_PCIE_BRCMSTB policy<{'arm64': 'm'}> +CONFIG_PCI_HYPERV_INTERFACE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_PCIE_MICROCHIP_HOST policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCIE_HISI_ERR policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> PCI support >> PCI controller drivers >> Cadence PCIe controllers support +CONFIG_PCIE_CADENCE_PLAT_HOST policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCIE_CADENCE_PLAT_EP policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCI_J721E_HOST policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PCI_J721E_EP policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> PCI support >> PCI controller drivers >> DesignWare PCI Core Support +CONFIG_PCI_DRA7XX_HOST policy<{'armhf': 'm'}> +CONFIG_PCI_DRA7XX_EP policy<{'armhf': 'm'}> +CONFIG_PCIE_DW_PLAT_HOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCIE_DW_PLAT_EP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCI_EXYNOS policy<{'armhf': 'n'}> +CONFIG_PCI_IMX6 policy<{'arm64': 'y', 'armhf': '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_ROCKCHIP_DW_HOST policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PCIE_KEEMBAY_HOST policy<{'arm64': 'y'}> +CONFIG_PCIE_KEEMBAY_EP policy<{'arm64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PCIE_TEGRA194_HOST policy<{'arm64': 'm'}> +CONFIG_PCIE_TEGRA194_EP policy<{'arm64': 'm'}> +CONFIG_PCIE_VISCONTI_HOST policy<{'arm64': 'y'}> +CONFIG_PCIE_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PCIE_UNIPHIER_EP policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PCIE_AL policy<{'arm64': 'y'}> +CONFIG_PCIE_FU740 policy<{'riscv64': 'y'}> + +# Menu: Device Drivers >> PCI support >> PCI controller drivers >> Mobiveil PCIe Core Support +CONFIG_PCIE_MOBIVEIL_PLAT policy<{'arm64': 'n'}> +CONFIG_PCIE_LAYERSCAPE_GEN4 policy<{'arm64': 'n'}> + +# Menu: Device Drivers >> PCI support >> PCI switch controller drivers +CONFIG_PCI_SW_SWITCHTEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> PCI support >> Support for PCI Hotplug +CONFIG_HOTPLUG_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HOTPLUG_PCI_ACPI policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_HOTPLUG_PCI_ACPI_IBM policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_HOTPLUG_PCI_CPCI policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y', 'armhf': '-'}> +CONFIG_HOTPLUG_PCI_CPCI_ZT5550 policy<{'amd64': 'm'}> +CONFIG_HOTPLUG_PCI_CPCI_GENERIC policy<{'amd64': 'm'}> +CONFIG_HOTPLUG_PCI_SHPC policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'n', 'armhf': '-'}> +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 + +# Menu: Device Drivers >> PHY Subsystem +CONFIG_GENERIC_PHY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PHY_XGENE policy<{'arm64': 'y'}> +CONFIG_USB_LGM_PHY policy<{'amd64': 'm'}> +CONFIG_PHY_CAN_TRANSCEIVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PHY_SUN4I_USB policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_PHY_SUN6I_MIPI_DPHY policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_PHY_SUN9I_USB policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_PHY_SUN50I_USB3 policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_PHY_MESON8B_USB2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_MESON_GXL_USB2 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_MESON_AXG_PCIE policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PHY_MESON_AXG_MIPI_DPHY 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', 'ppc64el': 'm', 'riscv64': '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_TORRENT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_CADENCE_DPHY policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_CADENCE_SIERRA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_CADENCE_SALVO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_FSL_IMX8MQ_USB policy<{'arm64': 'm'}> +CONFIG_PHY_MIXEL_MIPI_DPHY policy<{'arm64': 'm'}> +CONFIG_PHY_HI6220_USB policy<{'arm64': 'm'}> +CONFIG_PHY_HI3660_USB policy<{'arm64': 'm'}> +CONFIG_PHY_HI3670_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_ARMADA375_USBCLUSTER_PHY policy<{'armhf': 'y'}> +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_MVEBU_CP110_UTMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_PXA_28NM_HSIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PHY_PXA_28NM_USB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_MTK_HDMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_MTK_MIPI_DSI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_SPARX5_SERDES policy<{'amd64': '-', 'arm64': 'm', 'armhf': '-', 'ppc64el': '-'}> +CONFIG_PHY_CPCAP_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_MAPPHONE_MDM6600 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_OCELOT_SERDES policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_QCOM_APQ8064_SATA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_QCOM_IPQ4019_USB 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_USB_HS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_QCOM_USB_HSIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PHY_QCOM_USB_HS_28NM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_QCOM_USB_SS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_QCOM_IPQ806X_USB policy<{'arm64': 'm', 'armhf': '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_DPHY_RX0 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_INNO_CSIDPHY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY 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': 'n'}> +CONFIG_PHY_EXYNOS_MIPI_VIDEO policy<{'armhf': 'n'}> +CONFIG_PHY_EXYNOS_PCIE policy<{'armhf': 'n'}> +CONFIG_PHY_SAMSUNG_UFS policy<{'armhf': 'n'}> +CONFIG_PHY_SAMSUNG_USB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PHY_EXYNOS5250_SATA policy<{'armhf': '-'}> +CONFIG_PHY_UNIPHIER_USB2 policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PHY_UNIPHIER_PCIE policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PHY_UNIPHIER_AHCI policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PHY_TEGRA_XUSB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PHY_TEGRA194_P2U policy<{'arm64': 'm'}> +CONFIG_PHY_DM816X_USB policy<{'armhf': 'm'}> +CONFIG_PHY_AM654_SERDES policy<{'arm64': 'm'}> +CONFIG_PHY_J721E_WIZ 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TWL4030_USB policy<{'armhf': 'm'}> +CONFIG_PHY_INTEL_KEEMBAY_EMMC policy<{'arm64': 'm'}> +CONFIG_PHY_INTEL_KEEMBAY_USB policy<{'arm64': 'm'}> +CONFIG_PHY_INTEL_LGM_EMMC policy<{'amd64': 'm'}> +CONFIG_PHY_XILINX_ZYNQMP policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> PPS support +CONFIG_PPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PPS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PPS_CLIENT_KTIMER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PPS_CLIENT_LDISC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PPS_CLIENT_PARPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PPS_CLIENT_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +# +CONFIG_PPS_CLIENT_KTIMER flag +CONFIG_PPS flag + +# Menu: Device Drivers >> PTP clock support + +# Menu: Device Drivers >> PTP clock support >> PTP clock support +CONFIG_PTP_1588_CLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_PTP_1588_CLOCK_DTE policy<{'arm64': 'm'}> +CONFIG_PTP_1588_CLOCK_QORIQ policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_DP83640_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PTP_1588_CLOCK_INES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PTP_1588_CLOCK_KVM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_PTP_1588_CLOCK_IDT82P33 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PTP_1588_CLOCK_IDTCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PTP_1588_CLOCK_VMW policy<{'amd64': 'm'}> +CONFIG_PTP_1588_CLOCK_OCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Parallel port support +CONFIG_PARPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PARPORT_AX88796 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARPORT_1284 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Parallel port support >> PC-style hardware +CONFIG_PARPORT_PC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARPORT_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PARPORT_PC_FIFO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PARPORT_PC_SUPERIO policy<{'amd64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_PARPORT_PC_PCMCIA policy<{'amd64': '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_CMN policy<{'arm64': 'm'}> +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': 'm'}> +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'}> +CONFIG_ARM_DMC620_PMU policy<{'arm64': 'm'}> +CONFIG_HISI_PMU policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> Pin controllers +CONFIG_PINCTRL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PINMUX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCONF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DEBUG_PINCTRL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PINCTRL_AS3722 policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_AXP209 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_AMD policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_PINCTRL_BM1880 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_DA9062 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_MCP23S08 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PINCTRL_ROCKCHIP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_SINGLE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_SX150X policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_STMFX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_MAX77620 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_PALMAS policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_ZYNQMP policy<{'arm64': 'm'}> +CONFIG_PINCTRL_RK805 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_OCELOT policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_MICROCHIP_SGPIO policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PINCTRL_KEEMBAY policy<{'arm64': 'm'}> +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': 'y'}> +CONFIG_PINCTRL_IMX51 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX6Q policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX6SL policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX6SLL policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX6SX policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX6UL policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX7D policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX7ULP policy<{'armhf': 'y'}> +CONFIG_PINCTRL_IMX8MM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_IMX8MN policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_IMX8MP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_IMX8MQ policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_IMX8QM policy<{'arm64': 'y'}> +CONFIG_PINCTRL_IMX8QXP policy<{'arm64': 'y'}> +CONFIG_PINCTRL_IMX8DXL policy<{'arm64': 'y'}> +CONFIG_PINCTRL_IMX8ULP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_VF610 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_BAYTRAIL policy<{'amd64': 'y'}> +CONFIG_PINCTRL_CHERRYVIEW policy<{'amd64': 'y'}> +CONFIG_PINCTRL_LYNXPOINT policy<{'amd64': 'm'}> +CONFIG_PINCTRL_ALDERLAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_BROXTON policy<{'amd64': 'm'}> +CONFIG_PINCTRL_CANNONLAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_CEDARFORK policy<{'amd64': 'm'}> +CONFIG_PINCTRL_DENVERTON policy<{'amd64': 'm'}> +CONFIG_PINCTRL_ELKHARTLAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_EMMITSBURG policy<{'amd64': 'm'}> +CONFIG_PINCTRL_GEMINILAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_ICELAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_JASPERLAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_LAKEFIELD policy<{'amd64': 'm'}> +CONFIG_PINCTRL_LEWISBURG policy<{'amd64': 'm'}> +CONFIG_PINCTRL_SUNRISEPOINT policy<{'amd64': 'm'}> +CONFIG_PINCTRL_TIGERLAKE policy<{'amd64': 'm'}> +CONFIG_PINCTRL_NPCM7XX policy<{'armhf': 'y'}> +CONFIG_PINCTRL_QCOM_SPMI_PMIC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_QCOM_SSBI_PMIC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_LPASS_LPI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_EXYNOS policy<{'armhf': 'y'}> +CONFIG_PINCTRL_EXYNOS_ARM policy<{'armhf': 'y'}> +CONFIG_PINCTRL_SPRD_SC9860 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_SUN4I_A10 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN5I policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN6I_A31 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN6I_A31_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_A23 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_A33 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_A83T policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_A83T_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_A23_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_H3 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_H3_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN8I_V3S policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN9I_A80 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN9I_A80_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_A64 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_A64_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_A100 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_A100_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_H5 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_H6 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_H6_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_H616 policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_SUN50I_H616_R policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_PINCTRL_TI_IODELAY policy<{'armhf': 'y'}> +CONFIG_PINCTRL_LOCHNAGAR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PINCTRL_TMPV7700 policy<{'arm64': 'y'}> +# +CONFIG_PINCTRL_CHERRYVIEW mark note + +# Menu: Device Drivers >> Pin controllers >> Actions Semi OWL pinctrl driver +CONFIG_PINCTRL_OWL policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_S500 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_S700 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_S900 policy<{'arm64': 'y'}> + +# 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'}> +CONFIG_PINCTRL_MESON_A1 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_MT6779 policy<{'arm64': 'm'}> +CONFIG_PINCTRL_MT6797 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT7622 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8167 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8173 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8183 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8192 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8195 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8365 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT8516 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_MT6397 policy<{'arm64': 'y', 'armhf': 'y'}> +# +CONFIG_PINCTRL_MT8135 flag +CONFIG_PINCTRL_MT8127 flag + +# Menu: Device Drivers >> Pin controllers >> Qualcomm core pin controller driver +CONFIG_PINCTRL_MSM policy<{'arm64': 'y', '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_IPQ6018 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_MSM8226 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_MSM8660 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_MSM8960 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_MDM9607 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_MSM8953 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_MSM8976 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_SC7180 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SC7280 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SC8180X policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SDM660 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SDM845 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SDX55 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SM6115 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SM6125 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SM8150 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SM8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PINCTRL_SM8350 policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Pin controllers >> Ralink pinctrl drivers + +# Menu: Device Drivers >> Pin controllers >> Renesas pinctrl drivers +CONFIG_PINCTRL_RENESAS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_PINCTRL_PFC_EMEV2 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A77995 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A7794 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A77990 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A7779 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7790 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A77950 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A77951 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A7778 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7793 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7791 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A77965 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A77960 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A77961 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A7792 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A77980 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A77970 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A779A0 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A7740 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_RZA1 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_RZA2 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_RZG2L policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A77470 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7745 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7742 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7743 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A7744 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_R8A774C0 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A774E1 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A774A1 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_PFC_R8A774B1 policy<{'arm64': 'y'}> +CONFIG_PINCTRL_RZN1 policy<{'armhf': 'y'}> +CONFIG_PINCTRL_PFC_SH73A0 policy<{'armhf': 'y'}> + +# Menu: Device Drivers >> Pin controllers >> UniPhier SoC pinctrl drivers +CONFIG_PINCTRL_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_PINCTRL_UNIPHIER_LD4 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_PRO4 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_SLD8 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_PRO5 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_PXS2 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_LD6B policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_LD11 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_LD20 policy<{'armhf': '-'}> +CONFIG_PINCTRL_UNIPHIER_PXS3 policy<{'armhf': '-'}> + +# Menu: Device Drivers >> Platform support for Chrome hardware +CONFIG_CHROME_PLATFORMS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}> +CONFIG_CHROMEOS_LAPTOP policy<{'amd64': 'm'}> +CONFIG_CHROMEOS_PSTORE policy<{'amd64': 'm'}> +CONFIG_CHROMEOS_TBMC policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CROS_KBD_LED_BACKLIGHT policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CROS_EC_CHARDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_LIGHTBAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_VBC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_DEBUGFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_SENSORHUB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_SYSFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_TYPEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_USBPD_LOGGER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_USBPD_NOTIFY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Platform support for Chrome hardware >> ChromeOS Embedded Controller +CONFIG_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CROS_EC_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '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'}> +CONFIG_CROS_EC_LPC policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Platform support for Chrome hardware >> ChromeOS Embedded Controller >> ChromeOS Wilco Embedded Controller +CONFIG_WILCO_EC policy<{'amd64': 'm'}> +CONFIG_WILCO_EC_DEBUGFS policy<{'amd64': 'm'}> +CONFIG_WILCO_EC_EVENTS policy<{'amd64': 'm'}> +CONFIG_WILCO_EC_TELEMETRY policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Platform support for Goldfish virtual devices +CONFIG_GOLDFISH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_GOLDFISH_PIPE policy<{'riscv64': 'm'}> + +# Menu: Device Drivers >> Platform support for Mellanox hardware +CONFIG_MELLANOX_PLATFORM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}> +CONFIG_MLXREG_HOTPLUG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_MLXREG_IO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_MLXBF_TMFIFO policy<{'arm64': 'm'}> +CONFIG_MLXBF_BOOTCTL policy<{'arm64': 'm'}> +CONFIG_MLXBF_PMC 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'}> +CONFIG_PNP_DEBUG_MESSAGES policy<{'amd64': 'n', 'arm64': 'n'}> + +# Menu: Device Drivers >> Power supply class support +CONFIG_POWER_SUPPLY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_POWER_SUPPLY_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_POWER_SUPPLY_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PDA_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GENERIC_ADC_BATTERY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAX8925_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WM831X_BACKUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WM831X_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WM8350_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TEST_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_ADP5061 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_ACT8945A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_CW2015 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_DS2760 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_DS2780 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_DS2781 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_DS2782 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_SBS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_SBS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MANAGER_SBS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_BQ27XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_BQ27XXX_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_BQ27XXX_HDQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_BATTERY_DA9030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_DA9150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_DA9150 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_AXP20X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_AXP20X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AXP20X_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AXP288_CHARGER policy<{'amd64': 'm'}> +CONFIG_AXP288_FUEL_GAUGE policy<{'amd64': 'm'}> +CONFIG_BATTERY_MAX17040 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_MAX17042 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_MAX1721X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_TWL4030_MADC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_PCF50633 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_RX51 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_CPCAP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CHARGER_ISP1704 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MAX8903 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_TWL4030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_LP8727 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_LP8788 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_MANAGER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CHARGER_LT3651 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_LTC4162L policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_MAX14577 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_DETECTOR_MAX14656 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MAX77650 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MAX77693 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_MAX8997 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MAX8998 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MP2629 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_MT6360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_QCOM_SMBB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_CHARGER_BQ2415X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ24190 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ24257 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ24735 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ2515X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ25890 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ25980 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_BQ256XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_SMB347 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_TPS65090 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_TPS65217 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': '-'}> +CONFIG_BATTERY_GAUGE_LTC2941 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_GOLDFISH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BATTERY_RT5033 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_RT9455 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_CROS_USBPD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CHARGER_CROS_PCHG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_CHARGER_SC2731 policy<{'arm64': 'm'}> +CONFIG_FUEL_GAUGE_SC27XX policy<{'arm64': 'm'}> +CONFIG_CHARGER_UCS1002 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CHARGER_BD99954 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_CHARGER_WILCO policy<{'amd64': 'm'}> +CONFIG_RN5T618_POWER policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BATTERY_ACER_A500 policy<{'armhf': 'm'}> +CONFIG_BATTERY_SURFACE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_CHARGER_SURFACE policy<{'amd64': 'm', 'arm64': 'm'}> + +# Menu: Device Drivers >> Pulse-Width Modulation (PWM) Support +CONFIG_PWM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PWM_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PWM_ATMEL_HLCDC_PWM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWM_ATMEL_TCB policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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'}> +CONFIG_PWM_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_DWC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PWM_FSL_FTM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWM_HIBVT policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_IMX1 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_IMX27 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_IMX_TPM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_IQS620A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWM_KEEMBAY policy<{'arm64': 'm'}> +CONFIG_PWM_LP3943 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWM_LPSS_PCI policy<{'amd64': 'y'}> +CONFIG_PWM_LPSS_PLATFORM policy<{'amd64': '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_NTXEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PWM_OMAP_DMTIMER policy<{'armhf': 'm'}> +CONFIG_PWM_PCA9685 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PWM_RASPBERRYPI_POE policy<{'arm64': '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': 'n'}> +CONFIG_PWM_SIFIVE policy<{'riscv64': 'm'}> +CONFIG_PWM_SL28CPLD policy<{'arm64': 'm'}> +CONFIG_PWM_SPRD policy<{'arm64': 'm'}> +CONFIG_PWM_STMPE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PWM_SUN4I policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_PWM_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_TIECAP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_TIEHRPWM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PWM_TWL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PWM_TWL_LED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PWM_VISCONTI policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> RapidIO support +CONFIG_RAPIDIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_RAPIDIO_TSI721 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': '-', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RAPIDIO_DISC_TIMEOUT policy<{'amd64': '30', 'arm64': '30', 'armhf': '30', 'ppc64el': '30', 'riscv64': '30'}> +CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_RAPIDIO_DMA_ENGINE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RAPIDIO_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_RAPIDIO_CHMAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RAPIDIO_MPORT_CDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> RapidIO support >> Enumeration method +CONFIG_RAPIDIO_ENUM_BASIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> RapidIO support >> RapidIO Switch drivers +CONFIG_RAPIDIO_CPS_XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RAPIDIO_CPS_GEN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RAPIDIO_RXS_GEN3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Real Time Clock +CONFIG_RTC_CLASS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_HCTOSYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_HCTOSYS_DEVICE policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'ppc64el': '"rtc0"', 'riscv64': '"rtc0"'}> +CONFIG_RTC_SYSTOHC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_SYSTOHC_DEVICE policy<{'amd64': '"rtc0"', 'arm64': '"rtc0"', 'armhf': '"rtc0"', 'ppc64el': '"rtc0"', 'riscv64': '"rtc0"'}> +CONFIG_RTC_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_NVMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_INTF_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_INTF_PROC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_INTF_DEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_INTF_DEV_UIE_EMUL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_DRV_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_DRV_88PM860X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_88PM80X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ABB5ZES3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ABEOZ9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ABX80X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_BRCMSTB policy<{'arm64': 'm'}> +CONFIG_RTC_DRV_AS3722 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1307 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1307_CENTURY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_DS1374 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1374_WDT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_DS1672 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_HYM8563 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_LP8788 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX6900 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX8907 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX8925 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX8998 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX8997 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX77686 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RK808 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RS5C372 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ISL1208 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ISL12022 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_ISL12026 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_X1205 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF8523 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF85063 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF85363 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF8563 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF8583 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M41T80 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M41T80_WDT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_BD70528 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_BQ32K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_TWL4030 policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PALMAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_TPS6586X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_TPS65910 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RC5T583 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RC5T619 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_S35390A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_FM3130 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RX8010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RX8581 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RX8025 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_EM3027 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RV3028 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RV3032 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RV8803 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_S5M policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_SD3078 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M41T93 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M41T94 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1302 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1343 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1347 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1390 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX6916 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_R9701 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RX4581 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RS5C348 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MAX6902 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCF2123 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MCP795 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS3232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS3232_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_PCF2127 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RV3029C2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RV3029_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_RX6110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_CMOS policy<{'amd64': 'y', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_RTC_DRV_DS1286 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1511 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1553 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1685_FAMILY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS1742 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DS2404 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DA9055 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_DA9063 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_EFI policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'm'}> +CONFIG_RTC_DRV_STK17TA8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M48T86 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M48T35 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_M48T59 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MSM6242 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_BQ4802 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RP5C01 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_V3020 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_WM8350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_SC27XX policy<{'arm64': 'm'}> +CONFIG_RTC_DRV_PCF50633 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_OPAL policy<{'ppc64el': 'y'}> +CONFIG_RTC_DRV_ZYNQMP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_CROS_EC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_NTXEC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_IMXDI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_FSL_FTM_ALARM policy<{'arm64': 'm'}> +CONFIG_RTC_DRV_MESON policy<{'armhf': 'm'}> +CONFIG_RTC_DRV_MESON_VRTC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_OMAP policy<{'armhf': 'y'}> +CONFIG_RTC_DRV_S3C policy<{'armhf': 'n'}> +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', 'armhf': '-'}> +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', 'riscv64': 'm'}> +CONFIG_RTC_DRV_FTRTC010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PCAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_MC13XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_PM8XXX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_MXC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_MXC_V2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_SNVS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_IMX_SC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_MT2712 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RTC_DRV_MT6397 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'riscv64': 'm'}> +CONFIG_RTC_DRV_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_RTD119X policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RTC_DRV_ASPEED policy<{'armhf': 'm'}> +CONFIG_RTC_DRV_HID_SENSOR_TIME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTC_DRV_GOLDFISH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'y'}> +CONFIG_RTC_DRV_WILCO_EC policy<{'amd64': 'm'}> +# +CONFIG_RTC_DRV_TEST flag +CONFIG_RTC_DRV_CMOS note +CONFIG_RTC_DRV_EFI note +CONFIG_RTC_DRV_TWL4030 note + +# Menu: Device Drivers >> Real Time Clock >> Subtype +CONFIG_RTC_DRV_DS1685 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RTC_DRV_DS1689 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_DRV_DS17285 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_DRV_DS17485 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_RTC_DRV_DS17885 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Device Drivers >> Reliability, Availability and Serviceability (RAS) features +CONFIG_RAS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_RC_MAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_LIRC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> Remote Controller support >> Remote Controller devices +CONFIG_RC_DEVICES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RC_ATI_REMOTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_ENE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_IR_HIX5HD2 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_IMON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_IMON_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_MCEUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_ITE_CIR policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_IR_FINTEK policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_IR_MESON policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IR_MESON_TX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IR_MTK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IR_NUVOTON policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_IR_REDRAT3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SPI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_STREAMZAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_WINBOND_CIR policy<{'amd64': 'm'}> +CONFIG_IR_IGORPLUGUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_IGUANA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_TTUSBIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_RX51 policy<{'armhf': 'm'}> +CONFIG_RC_LOOPBACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_GPIO_CIR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_GPIO_TX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_PWM_TX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SUNXI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_IR_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SERIAL_TRANSMITTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RC_XBOX_DVD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_TOY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IR_NEC_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_RC5_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_RC6_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_JVC_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SONY_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SANYO_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_SHARP_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_MCE_KBD_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_XMP_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_IMON_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IR_RCMM_DECODER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_REMOTEPROC_CDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_IMX_REMOTEPROC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_MTK_SCP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_OMAP_REMOTEPROC policy<{'armhf': 'm'}> +CONFIG_OMAP_REMOTEPROC_WATCHDOG policy<{'armhf': 'n'}> +CONFIG_WKUP_M3_RPROC policy<{'armhf-generic': 'm'}> +CONFIG_PRU_REMOTEPROC policy<{'arm64': 'm', 'armhf': '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'}> +CONFIG_TI_K3_DSP_REMOTEPROC policy<{'arm64': 'm'}> +CONFIG_TI_K3_R5_REMOTEPROC policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> Reset Controller Support +CONFIG_RESET_CONTROLLER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_RESET_A10SR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RESET_BERLIN policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RESET_BRCMSTB policy<{'arm64': 'm'}> +CONFIG_RESET_BRCMSTB_RESCAL policy<{'arm64': 'y', 'riscv64': '-'}> +CONFIG_RESET_IMX7 policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RESET_MCHP_SPARX5 policy<{'arm64': 'y'}> +CONFIG_RESET_MESON policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RESET_MESON_AUDIO_ARB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RESET_NPCM policy<{'armhf': 'y'}> +CONFIG_RESET_QCOM_AOSS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_RESET_QCOM_PDC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RESET_RASPBERRYPI policy<{'arm64': 'm'}> +CONFIG_RESET_RZG2L_USBPHY_CTRL policy<{'arm64': 'm'}> +CONFIG_RESET_SCMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RESET_SIMPLE policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_RESET_SOCFPGA policy<{'armhf': 'y'}> +CONFIG_RESET_SUNXI policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_RESET_TI_SCI policy<{'arm64': 'm'}> +CONFIG_RESET_TI_SYSCON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_RESET_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_RESET_UNIPHIER_GLUE policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RPMSG_NS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RPMSG_MTK_SCP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RPMSG_QCOM_GLINK_RPM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> + +# Menu: Device Drivers >> SCSI device support +CONFIG_RAID_ATTRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Device Drivers >> SCSI device support >> SCSI device support +CONFIG_SCSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCSI_PROC_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_SD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CHR_DEV_ST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BLK_DEV_SR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CHR_DEV_SG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CHR_DEV_SCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_ENCLOSURE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_CONSTANTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCSI_LOGGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCSI_SCAN_ASYNC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_BSG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SCSI flag +CONFIG_CHR_DEV_SG note +CONFIG_BLK_DEV_SD mark note +CONFIG_BLK_DEV_SR mark note + +# Menu: Device Drivers >> SCSI device support >> SCSI device support >> SCSI Device Handlers +CONFIG_SCSI_DH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCSI_DH_RDAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_DH_HP_SW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_DH_EMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_DH_ALUA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_FC_ATTRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_ISCSI_ATTRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_SAS_ATTRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_SAS_LIBSAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_SAS_ATA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SCSI_SAS_HOST_SMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCSI_SRP_ATTRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'y', 'riscv64': 'm', '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ISCSI_TCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ISCSI_BOOT_SYSFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_CXGB3_ISCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_CXGB4_ISCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_BNX2_ISCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_BNX2X_FCOE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BE2ISCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CXLFLASH policy<{'ppc64el': 'm'}> +CONFIG_BLK_DEV_3W_XXXX_RAID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_HPSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_3W_9XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_3W_SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_ACARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_AHA1740 policy<{'amd64': 'm'}> +CONFIG_SCSI_AACRAID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_AIC94XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_AIC94XX_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SCSI_HISI_SAS policy<{'arm64': 'm'}> +CONFIG_SCSI_HISI_SAS_PCI policy<{'arm64': 'm'}> +CONFIG_SCSI_HISI_SAS_DEBUGFS_DEFAULT_ENABLE policy<{'arm64': 'n'}> +CONFIG_SCSI_MVSAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_MVSAS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SCSI_MVSAS_TASKLET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SCSI_MVUMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_DPT_I2O policy<{'amd64': 'm'}> +CONFIG_SCSI_ADVANSYS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_ARCMSR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_ESAS2R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MEGARAID_NEWGEN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MEGARAID_MM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_MEGARAID_MAILBOX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEGARAID_LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MEGARAID_SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_MPT3SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_MPT2SAS_MAX_SGE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128', 's390x': '128'}> +CONFIG_SCSI_MPT3SAS_MAX_SGE policy<{'amd64': '128', 'arm64': '128', 'armhf': '128', 'ppc64el': '128', 'riscv64': '128', 's390x': '128'}> +CONFIG_SCSI_MPT2SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_MPI3MR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_SMARTPQI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_TI_J721E policy<{'arm64': 'm'}> +CONFIG_SCSI_HPTIOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_BUSLOGIC policy<{'amd64': 'm'}> +CONFIG_SCSI_FLASHPOINT policy<{'amd64': 'y'}> +CONFIG_SCSI_MYRB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_MYRS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VMWARE_PVSCSI policy<{'amd64': 'm'}> +CONFIG_XEN_SCSI_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_HYPERV_STORAGE policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_LIBFC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_SNIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_SNIC_DEBUG_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SCSI_DMX3191D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_FDOMAIN_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SCSI_ISCI policy<{'amd64': 'm'}> +CONFIG_SCSI_IPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_INIA100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_PPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_IMM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_IZIP_EPP16 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SCSI_IZIP_SLOW_CTR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SCSI_STEX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_IPR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SCSI_IPR_TRACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SCSI_IPR_DUMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SCSI_QLOGIC_1280 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_QLA_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_TCM_QLA2XXX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TCM_QLA2XXX_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SCSI_QLA_ISCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_QEDI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_LPFC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_SCSI_LPFC_DEBUG_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_SCSI_EFCT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_SIM710 policy<{'amd64': 'm'}> +CONFIG_SCSI_DC395x policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_AM53C974 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_NSP32 policy<{'armhf': 'm'}> +CONFIG_SCSI_WD719X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_DEBUG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ZFCP policy<{'s390x': 'm'}> +CONFIG_SCSI_PMCRAID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_PM8001 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_BFA_FC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCSI_CHELSIO_FCOE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +# +CONFIG_SCSI_IPR_TRACE note +CONFIG_SCSI_IPR_DUMP note +CONFIG_SCSI_VIRTIO note + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_AIC79XX_CMDS_PER_DEVICE policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32'}> +CONFIG_AIC79XX_RESET_DELAY_MS policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'ppc64el': '5000', 'riscv64': '5000'}> +CONFIG_AIC79XX_DEBUG_ENABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_AIC79XX_DEBUG_MASK policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_AIC79XX_REG_PRETTY_PRINT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_AIC7XXX_CMDS_PER_DEVICE policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> +CONFIG_AIC7XXX_RESET_DELAY_MS policy<{'amd64': '5000', 'arm64': '5000', 'armhf': '5000', 'ppc64el': '5000', 'riscv64': '5000'}> +CONFIG_AIC7XXX_DEBUG_ENABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_AIC7XXX_DEBUG_MASK policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_AIC7XXX_REG_PRETTY_PRINT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FCOE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FCOE_FNIC policy<{'amd64': 'm'}> +CONFIG_QEDF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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'}> +CONFIG_PCMCIA_AHA152X policy<{'amd64': 'm'}> +CONFIG_PCMCIA_FDOMAIN policy<{'amd64': 'm'}> +CONFIG_PCMCIA_QLOGIC policy<{'amd64': 'm'}> +CONFIG_PCMCIA_SYM53C500 policy<{'amd64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1'}> +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS policy<{'amd64': '16', 'arm64': '16', 'armhf': '16', 'ppc64el': '16', 'riscv64': '16'}> +CONFIG_SCSI_SYM53C8XX_MAX_TAGS policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'ppc64el': '64', 'riscv64': '64'}> +CONFIG_SCSI_SYM53C8XX_MMIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SCSI_UFSHCD_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_DWC_TC_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_BSG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SCSI_UFS_CRYPTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SCSI_UFS_HPB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_CDNS_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_DWC_TC_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SCSI_UFS_QCOM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SCSI_UFS_MEDIATEK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SCSI_UFS_HISI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SCSI_UFS_EXYNOS policy<{'armhf': 'n'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SLIM_QCOM_CTRL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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_GRF policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ROCKCHIP_IODOMAIN policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ROCKCHIP_PM_DOMAINS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SIFIVE_L2 policy<{'riscv64': 'y'}> +CONFIG_ARCH_TEGRA_2x_SOC policy<{'armhf': 'y'}> +CONFIG_ARCH_TEGRA_3x_SOC policy<{'armhf': 'y'}> +CONFIG_ARCH_TEGRA_114_SOC policy<{'armhf': 'y'}> +CONFIG_ARCH_TEGRA_124_SOC policy<{'armhf': 'y'}> +CONFIG_ARCH_TEGRA_132_SOC policy<{'arm64': 'y'}> +CONFIG_ARCH_TEGRA_210_SOC policy<{'arm64': 'y'}> +CONFIG_ARCH_TEGRA_186_SOC policy<{'arm64': 'y'}> +CONFIG_ARCH_TEGRA_194_SOC policy<{'arm64': 'y'}> +CONFIG_ARCH_TEGRA_234_SOC policy<{'arm64': 'y'}> +CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER policy<{'armhf': 'y'}> +CONFIG_SOC_TEGRA30_VOLTAGE_COUPLER policy<{'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'}> +CONFIG_ASPEED_SOCINFO policy<{'armhf': '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'}> +CONFIG_MESON_GX_PM_DOMAINS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MESON_EE_PM_DOMAINS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MESON_SECURE_PM_DOMAINS policy<{'arm64-generic': 'y'}> +CONFIG_MESON_MX_SOCINFO policy<{'armhf': 'y'}> + +# 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_BCM_PMB policy<{'arm64': 'y'}> +CONFIG_BRCMSTB_PM policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Enable LiteX SoC Builder specific drivers +CONFIG_LITEX_SOC_CONTROLLER policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# 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_DEVAPC 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'}> +CONFIG_MTK_SCPSYS_PM_DOMAINS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MTK_MMSYS policy<{'arm64': 'y', 'armhf': 'y'}> + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> NXP/Freescale QorIQ SoC drivers +CONFIG_QUICC_ENGINE policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_FSL_MC_DPIO policy<{'arm64': 'm'}> +CONFIG_DPAA2_CONSOLE policy<{'arm64': 'm'}> +CONFIG_FSL_RCPM policy<{'arm64': 'y', 'armhf': 'y'}> + +# 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_CPR policy<{'arm64': 'm', 'armhf': 'm'}> +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_GSBI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_LLCC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_OCMEM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_RMTFS_MEM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_RPMH policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_QCOM_RPMHPD policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_QCOM_RPMPD policy<{'arm64': 'm', 'armhf': 'm'}> +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_R8A7794 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7779 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7790 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7778 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7793 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7791 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7792 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7740 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A73A4 policy<{'armhf': 'n'}> +CONFIG_ARCH_R7S72100 policy<{'armhf': 'y'}> +CONFIG_ARCH_R7S9210 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A77470 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7745 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7742 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7743 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A7744 policy<{'armhf': 'y'}> +CONFIG_ARCH_R9A06G032 policy<{'armhf': 'y'}> +CONFIG_ARCH_SH73A0 policy<{'armhf': 'y'}> +CONFIG_ARCH_R8A77995 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77990 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77950 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77951 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77965 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77960 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77961 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77980 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A77970 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A779A0 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A774C0 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A774E1 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A774A1 policy<{'arm64': 'y'}> +CONFIG_ARCH_R8A774B1 policy<{'arm64': 'y'}> +CONFIG_ARCH_R9A07G044 policy<{'arm64': 'y'}> +CONFIG_RST_RCAR policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SYSC_RCAR policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SYSC_R8A77995 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A7794 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A77990 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A7779 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A7790 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A7795 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A7791 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A77965 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A77960 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A77961 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A7792 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A77980 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A77970 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A779A0 policy<{'arm64': 'y'}> +CONFIG_SYSC_RMOBILE policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A77470 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A7745 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A7742 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A7743 policy<{'armhf': 'y'}> +CONFIG_SYSC_R8A774C0 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A774E1 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A774A1 policy<{'arm64': 'y'}> +CONFIG_SYSC_R8A774B1 policy<{'arm64': 'y'}> +# +CONFIG_ARCH_R8A73A4 flag + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Samsung SoC driver support +CONFIG_EXYNOS_ASV_ARM policy<{'armhf': '-'}> +CONFIG_EXYNOS_CHIPID policy<{'armhf': 'n'}> +CONFIG_EXYNOS_PMU policy<{'armhf': 'y'}> +CONFIG_EXYNOS_PMU_ARM_DRIVERS policy<{'armhf': 'y'}> +CONFIG_EXYNOS_PM_DOMAINS policy<{'armhf': 'y'}> +CONFIG_EXYNOS_REGULATOR_COUPLER policy<{'armhf': '-'}> + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> TI SOC drivers support +CONFIG_SOC_TI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_WKUP_M3_IPC policy<{'armhf-generic': 'n'}> +CONFIG_TI_SCI_PM_DOMAINS policy<{'arm64': 'm'}> +CONFIG_TI_K3_RINGACC policy<{'arm64': 'y'}> +CONFIG_TI_PRUSS policy<{'arm64': 'm', 'armhf': 'm'}> +# +CONFIG_SOC_TI flag + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> Xilinx SoC drivers +CONFIG_ZYNQMP_POWER policy<{'arm64': 'y'}> +CONFIG_ZYNQMP_PM_DOMAINS policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> SOC (System On Chip) specific Drivers >> i.MX SoC drivers +CONFIG_IMX_GPCV2_PM_DOMAINS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SOC_IMX8M policy<{'arm64': 'y', 'armhf': 'n'}> + +# Menu: Device Drivers >> SPI support +CONFIG_SPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SPI_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SPI_MEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SPI_ALTERA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_ALTERA_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_ALTERA_DFL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_ARMADA_3700 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_AXI_SPI_ENGINE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_BUTTERFLY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_CADENCE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_CADENCE_QUADSPI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_DLN2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_FSI policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_FSL_LPSPI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_FSL_QUADSPI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_HISI_KUNPENG policy<{'arm64': 'm'}> +CONFIG_SPI_HISI_SFC_V3XX policy<{'arm64': 'm'}> +CONFIG_SPI_NXP_FLEXSPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_IMX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_LM70_LLP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_FSL_SPI policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SPI_FSL_DSPI policy<{'arm64': 'm', 'armhf': '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_MTK_NOR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_NPCM_FIU policy<{'armhf': 'm'}> +CONFIG_SPI_NPCM_PSPI policy<{'armhf': 'm'}> +CONFIG_SPI_LANTIQ_SSC policy<{'amd64': 'm'}> +CONFIG_SPI_OC_TINY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_ROCKCHIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SPI_ROCKCHIP_SFC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_RPCIF policy<{'arm64': 'm', 'armhf': 'm'}> +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': 'n'}> +CONFIG_SPI_SC18IS602 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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', 'ppc64el': 'm', 'riscv64': 'y', 's390x': '-'}> +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', 'armhf': '-'}> +CONFIG_SPI_SUN6I policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_SPI_SYNQUACER policy<{'arm64': 'm'}> +CONFIG_SPI_MXIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_TEGRA210_QUAD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_TEGRA114 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_TEGRA20_SFLASH policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_TEGRA20_SLINK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPI_THUNDERX policy<{'arm64': 'm'}> +CONFIG_SPI_XCOMM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_XILINX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SPI_XLP policy<{'arm64': 'm'}> +CONFIG_SPI_ZYNQMP_GQSPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_AMD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_MUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_SPIDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_LOOPBACK_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_TLE62X0 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_SLAVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SPI_SLAVE_TIME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_SLAVE_SYSTEM_CONTROL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> SPI support >> DesignWare SPI controller core support +CONFIG_SPI_DESIGNWARE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SPI_DW_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SPI_DW_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPI_DW_MMIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> SPMI support +CONFIG_SPMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SPMI_MSM_PMIC_ARB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SPMI_HISI3670 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Serial ATA and Parallel ATA drivers (libata) +CONFIG_ATA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ATA_VERBOSE_ERROR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATA_FORCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATA_ACPI policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SATA_ZPODD policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_SATA_PMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SATA_AHCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_MOBILE_LPM_POLICY policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'ppc64el': '3', 'riscv64': '3'}> +CONFIG_SATA_AHCI_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_AHCI_BRCM policy<{'arm64': 'm'}> +CONFIG_AHCI_DM816 policy<{'armhf': 'm'}> +CONFIG_AHCI_IMX policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_AHCI_CEVA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AHCI_MTK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_AHCI_MVEBU policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_AHCI_SUNXI policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_AHCI_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_AHCI_XGENE policy<{'arm64': 'm'}> +CONFIG_AHCI_QORIQ policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SATA_AHCI_SEATTLE policy<{'arm64': 'm'}> +CONFIG_SATA_INIC162X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_ACARD_AHCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_SIL24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_SATA_AHCI_PLATFORM note + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PDC_ADMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_QSTOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_SX4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_CMD640_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_MPIIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_NS87410 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_OPTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_PCMCIA policy<{'amd64': 'm'}> +CONFIG_PATA_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_OF_PLATFORM policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_PATA_RZ1000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ATA_PIIX policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_DWC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_DWC_OLD_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SATA_HIGHBANK policy<{'armhf': 'y'}> +CONFIG_SATA_MV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_NV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_PROMISE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_RCAR policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SATA_SIL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_SIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_SVW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_ULI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_VIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_SATA_VITESSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_ALI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_AMD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_ARTOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_ATIIXP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_ATP867X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_CMD64X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_CYPRESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_EFAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_HPT366 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_HPT37X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_HPT3X2N policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_HPT3X3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_HPT3X3_DMA policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PATA_IMX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_PATA_IT8213 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_IT821X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_JMICRON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_MARVELL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_NETCELL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_NINJA32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_NS87415 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_OLDPIIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_OPTIDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_PDC2027X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_PDC_OLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_RADISYS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_RDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_SCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_SERVERWORKS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_SIL680 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_SIS policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_TOSHIBA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_TRIFLEX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_VIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_WINBOND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PATA_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ATA_GENERIC policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_SATA_HIGHBANK mark note +CONFIG_PATA_HPT3X3_DMA note +CONFIG_ATA_PIIX mark note + +# Menu: Device Drivers >> Sonics Silicon Backplane support +CONFIG_SSB_PCIHOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> +CONFIG_SSB_PCMCIAHOST policy<{'amd64': 'n'}> +CONFIG_SSB_SDIOHOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SSB_DRIVER_PCICORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SSB_DRIVER_GPIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': '-'}> + +# Menu: Device Drivers >> Sony MemoryStick card support +CONFIG_MEMSTICK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MEMSTICK_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MEMSTICK_UNSAFE_RESUME policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_MSPRO_BLOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MS_BLOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEMSTICK_TIFM_MS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEMSTICK_JMICRON_38X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEMSTICK_R592 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEMSTICK_REALTEK_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MEMSTICK_REALTEK_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Sound card support +CONFIG_SOUND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SOUND_OSS_CORE_PRECLAIM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_SOUND note +CONFIG_SOUND_OSS_CORE_PRECLAIM mark note note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture +CONFIG_SND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_OSSEMUL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_MIXER_OSS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_PCM_OSS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SND_PCM_TIMER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HRTIMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_DYNAMIC_MINORS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_MAX_CARDS policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32'}> +CONFIG_SND_SUPPORT_OLD_API policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_PROC_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_VERBOSE_PROCFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_VERBOSE_PRINTK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SND_HDA_PREALLOC_SIZE policy<{'amd64': '0', 'arm64': '64', 'armhf': '64', 'ppc64el': '64', 'riscv64': '64'}> +CONFIG_SND_INTEL_BYT_PREFER_SOF policy<{'amd64': 'y'}> +CONFIG_SND_XEN_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_SND_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_SND note +CONFIG_SND_PCM_OSS note + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADI_AXI_I2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADI_AXI_SPDIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AMD_ACP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SND_SOC_AMD_CZ_RT5645_MACH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AMD_ACP3x policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_RV_RT5682_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_RENOIR policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_RENOIR_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_ACP5x policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_PS policy<{'amd64': 'm'}> +CONFIG_SND_SOC_AMD_PS_MACH policy<{'amd64': 'm'}> +CONFIG_SND_BCM2835_SOC_I2S policy<{'arm64': 'm'}> +CONFIG_SND_BCM63XX_I2S_WHISTLER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_DESIGNWARE_I2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_DESIGNWARE_PCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_I2S_HI6210_I2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_KIRKWOOD_SOC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_INTEL_KEEMBAY policy<{'arm64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MT8192 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_MT8192_MT6359_RT1015_RT5682 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_MT8195 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_SPRD policy<{'arm64': 'm'}> +CONFIG_SND_SOC_SPRD_MCDT policy<{'arm64': 'm'}> +CONFIG_SND_SOC_XILINX_I2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_XILINX_SPDIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_XTFPGA_I2S policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SIMPLE_CARD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AUDIO_GRAPH_CARD policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_SND_SOC note +CONFIG_SND_SOC_AMD_RENOIR mark note +CONFIG_SND_SOC_AMD_RENOIR_MACH mark note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> ASoC support for Amlogic platforms +CONFIG_SND_MESON_AIU policy<{'arm64': 'm', 'armhf': 'm'}> +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_GX_SOUND_CARD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_MESON_G12A_TOACODEC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_MESON_G12A_TOHDMITX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_MESON_T9015 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 QCOM platforms +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_SM8250 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_SC7180 policy<{'arm64': 'm', 'armhf': 'm'}> + +# 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': 'n'}> +CONFIG_SND_SAMSUNG_PCM policy<{'armhf': '-'}> +CONFIG_SND_SAMSUNG_SPDIF policy<{'armhf': '-'}> +CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994 policy<{'armhf': '-'}> +CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF policy<{'armhf': '-'}> +CONFIG_SND_SOC_SMDK_WM8994_PCM policy<{'armhf': '-'}> +CONFIG_SND_SOC_SNOW policy<{'armhf': '-'}> +CONFIG_SND_SOC_ODROID policy<{'armhf': '-'}> +CONFIG_SND_SOC_ARNDALE policy<{'armhf': '-'}> +CONFIG_SND_SOC_SAMSUNG_TM2_WM5110 policy<{'armhf': '-'}> +CONFIG_SND_SOC_SAMSUNG_ARIES_WM8994 policy<{'armhf': '-'}> +CONFIG_SND_SOC_SAMSUNG_MIDAS_WM1811 policy<{'armhf': '-'}> + +# 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': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_SND_SOC_UNIPHIER_AIO policy<{'armhf': '-'}> +CONFIG_SND_SOC_UNIPHIER_LD11 policy<{'armhf': '-'}> +CONFIG_SND_SOC_UNIPHIER_PXS2 policy<{'armhf': '-'}> +CONFIG_SND_SOC_UNIPHIER_EVEA_CODEC policy<{'armhf': '-'}> + +# 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', 'armhf': '-'}> +CONFIG_SND_SUN8I_CODEC policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_SND_SUN8I_CODEC_ANALOG policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_SND_SUN50I_CODEC_ANALOG policy<{'arm64': 'm'}> +CONFIG_SND_SUN4I_I2S policy<{'arm64': 'n', 'armhf': '-'}> +CONFIG_SND_SUN4I_SPDIF policy<{'arm64': 'n', 'armhf': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_SOC_IMG_I2S_IN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMG_I2S_OUT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMG_PARALLEL_OUT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMG_SPDIF_IN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMG_SPDIF_OUT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMG_PISTACHIO_INTERNAL_DAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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<{'arm64': 'm', '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'}> +CONFIG_SND_SOC_J721E_EVM policy<{'arm64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU1372_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU1372_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU1701 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU1761_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU1761_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU7002 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU7118_HW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ADAU7118_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4104 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4118 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4458 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4554 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4613 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK4642 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK5386 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_AK5558 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ALC5623 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_BD28623 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_BT_SCO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CROS_EC_CODEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_CS35L32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS35L33 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS35L34 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS35L35 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS35L36 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42L42 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42L51_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42L52 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42L56 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42L73 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4234 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4265 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4270 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4271_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4271_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS42XX8_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS43130 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4341 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS4349 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CS53L30 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_CX2072X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_DA7213 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_DMIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ES7134 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ES7241 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ES8316 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ES8328_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ES8328_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_GTM601 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ICS43432 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_INNO_RK3036 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_LOCHNAGAR_SC policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98088 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98357A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98504 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX9867 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98927 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98373_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98373_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX98390 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX9860 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MSM8916_WCD_ANALOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MSM8916_WCD_DIGITAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM1681 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM1789_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM179X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM179X_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM186X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM186X_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM3060_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM3060_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM3168A_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM3168A_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM5102A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM512x_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_PCM512x_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RK3328 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RK817 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT1308_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT1316_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT5616 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT5631 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT5640 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT5659 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT5682_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT700_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT711_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT711_SDCA_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT715_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_RT715_SDCA_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SDW_MOCKUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SGTL5000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SIMPLE_AMPLIFIER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SIMPLE_MUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SPDIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SSM2305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SSM2518 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SSM2602_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SSM2602_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SSM4567 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_STA32X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_STA350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_STI_SAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS2552 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS2562 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS2764 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS2770 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS5086 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS571X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS5720 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TAS6424 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TDA7419 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TFA9879 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TFA989X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC23_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC23_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC31XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC32X4_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC32X4_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC3X_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320AIC3X_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TLV320ADCX140 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TS3A227E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TSCS42XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TSCS454 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_UDA1334 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WCD9335 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WCD934X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WCD938X_SDW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8510 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8523 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8524 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8580 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8711 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8728 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8731 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8737 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8741 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8750 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8753 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8770 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8776 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8782 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8804_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8804_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8903 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8904 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8960 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8962 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8974 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8978 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WM8985 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_WSA881X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_ZL38060 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MAX9759 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MT6351 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MT6358 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MT6359 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_MT6359_ACCDET policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_MT6660 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_NAU8315 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_NAU8540 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_NAU8810 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_NAU8822 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_NAU8824 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_TPA6130A2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_LPASS_WSA_MACRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_LPASS_VA_MACRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_LPASS_RX_MACRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_LPASS_TX_MACRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_SND_SOC_SGTL5000 flag + +# 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'}> +CONFIG_SND_SOC_INTEL_CATPT policy<{'amd64': 'm'}> +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI policy<{'amd64': 'm'}> +CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SKYLAKE policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_SKL policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_APL policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_GLK policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CNL policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_CFL policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_CML_H policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_CML_LP policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC policy<{'amd64': 'y'}> +# +CONFIG_SND_SOC_INTEL_SKYLAKE mark note +CONFIG_SND_SOC_INTEL_CNL mark note +CONFIG_SND_SOC_INTEL_CFL mark note +CONFIG_SND_SOC_INTEL_CML_H mark note +CONFIG_SND_SOC_INTEL_CML_LP mark note +CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC mark note + +# 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'}> +CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES policy<{'amd64': 'y'}> +CONFIG_SND_SOC_INTEL_HASWELL_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BROADWELL_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYTCR_WM5102_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH policy<{'amd64': 'n'}> +CONFIG_SND_SOC_INTEL_SKL_RT286_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_BXT_RT298_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH policy<{'amd64': 'm'}> +CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH policy<{'amd64': 'm'}> +# +CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES mark note +CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH mark note + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_SAI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_MQS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_AUDMIX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_SSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_SPDIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_ESAI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_MICFIL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_EASRC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_XCVR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_FSL_AUD2HTX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_FSL_RPMSG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_IMX_AUDMUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'armhf': 'y', 'riscv64': 'm'}> +# +CONFIG_SND_SOC_FSL_SSI flag +CONFIG_SND_SOC_IMX_AUDMUX flag + +# 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': 'y'}> +CONFIG_SND_SOC_EUKREA_TLV320 policy<{'armhf': 'm'}> +CONFIG_SND_SOC_IMX_ES8328 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_IMX_SGTL5000 policy<{'arm64': 'm', 'armhf': 'y'}> +CONFIG_SND_SOC_IMX_SPDIF policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_FSL_ASOC_CARD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_IMX_AUDMIX policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_IMX_HDMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_IMX_RPMSG policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_IMX_CARD policy<{'arm64': 'm', 'armhf': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_MIKROE_PROTO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA20_AC97 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA20_DAS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA20_I2S policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA20_SPDIF policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA30_AHUB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA30_I2S policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA210_AHUB policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA210_DMIC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA210_I2S policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA186_DSPK policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA210_ADMAIF policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_AUDIO_GRAPH_CARD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_RT5640 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_WM8753 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_WM8903 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_WM9712 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_TRIMSLICE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_ALC5632 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_MAX98090 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_RT5677 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_SOC_TEGRA_SGTL5000 policy<{'arm64': 'm', 'armhf': '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'}> +CONFIG_SND_SOC_RZ policy<{'arm64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_SOC_SOF_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SOF_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SND_SOC_SOF_OF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SOC_SOF_DEBUG_PROBES policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_IMX_TOPLEVEL policy<{'arm64': 'y'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support >> SOF developer options support +CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': '-', 'ppc64el': '-'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ALSA for SoC audio support >> Sound Open Firmware Support >> SOF developer options support >> SOF debugging features + +# 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'}> +CONFIG_SND_SOC_SOF_BAYTRAIL policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_BROADWELL policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_MERRIFIELD policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_APOLLOLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_GEMINILAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_CANNONLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_COFFEELAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_COMETLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_ICELAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_JASPERLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_TIGERLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_ELKHARTLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_ALDERLAKE policy<{'amd64': 'm'}> +CONFIG_SND_SOC_SOF_HDA_LINK policy<{'amd64': 'y'}> +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC policy<{'amd64': 'y'}> +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE policy<{'amd64': 'm'}> +# +CONFIG_SND_SOC_SOF_HDA_LINK mark note +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC mark note + +# 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 >> Debug +CONFIG_SND_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> FireWire sound devices +CONFIG_SND_FIREWIRE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_DICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_OXFW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ISIGHT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FIREWORKS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_BEBOB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FIREWIRE_DIGI00X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FIREWIRE_TASCAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FIREWIRE_MOTU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FIREFACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_PCSP policy<{'amd64': 'm'}> +CONFIG_SND_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ALOOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_VIRMIDI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MTPAV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MTS64 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SERIAL_U16550 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MPU401 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_PORTMAN2X4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AC97_POWER_SAVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_AC97_POWER_SAVE_DEFAULT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> HD-Audio +CONFIG_SND_HDA_INTEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SND_HDA_HWDEP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDA_RECONFIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDA_INPUT_BEEP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDA_INPUT_BEEP_MODE policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_SND_HDA_PATCH_LOADER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDA_CODEC_REALTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_ANALOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_SIGMATEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_VIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_HDMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CIRRUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CS8409 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CONEXANT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CA0110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CA0132 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_CA0132_DSP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDA_CODEC_CMEDIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_CODEC_SI3054 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDA_POWER_SAVE_DEFAULT policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1'}> +CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_SND_HDA_RECONFIG note +CONFIG_SND_HDA_POWER_SAVE_DEFAULT note + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> ISA sound devices + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_AD1889 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ALS300 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ALS4000 policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_SND_ALI5451 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ASIHPI policy<{'amd64': 'm'}> +CONFIG_SND_ATIIXP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ATIIXP_MODEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AU8810 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AU8820 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AU8830 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AW2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_AZT3328 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_BT87X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_BT87X_OVERCLOCK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SND_CA0106 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_CMIPCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_OXYGEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_CS4281 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_CS46XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_CS46XX_NEW_DSP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_CTXFI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_DARLA20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_GINA20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_LAYLA20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_DARLA24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_GINA24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_LAYLA24 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MONA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ECHO3G policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INDIGO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INDIGOIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INDIGODJ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INDIGOIOX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INDIGODJX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_EMU10K1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_EMU10K1X policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ENS1370 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ENS1371 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ES1938 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ES1968 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ES1968_INPUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y'}> +CONFIG_SND_ES1968_RADIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y'}> +CONFIG_SND_FM801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_FM801_TEA575X_BOOL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_HDSP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_HDSPM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_ICE1712 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_ICE1724 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INTEL8X0 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_INTEL8X0M policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_KORG1212 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_LOLA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_LX6464ES policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_MAESTRO3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_MAESTRO3_INPUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y'}> +CONFIG_SND_MIXART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_NM256 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_PCXHR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_RIPTIDE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_RME32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_RME96 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_RME9652 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SONICVIBES policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_TRIDENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm'}> +CONFIG_SND_VIA82XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_VIA82XX_MODEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_VIRTUOSO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_VX222 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_YMFPCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> PCMCIA sound devices +CONFIG_SND_PCMCIA policy<{'amd64': 'y'}> +CONFIG_SND_VXPOCKET policy<{'amd64': 'm'}> +CONFIG_SND_PDAUDIOCF policy<{'amd64': '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', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SEQ_DUMMY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_SEQUENCER_OSS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SND_SEQ_HRTIMER_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_USB_AUDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_UA101 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_USX2Y policy<{'amd64': 'm', 'ppc64el': 'm'}> +CONFIG_SND_USB_CAIAQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_CAIAQ_INPUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_SND_USB_US122L policy<{'amd64': 'm'}> +CONFIG_SND_USB_6FIRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_HIFACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_BCD2000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_POD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_PODHD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_TONEPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SND_USB_VARIAX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Sound card support >> Advanced Linux Sound Architecture >> X86 sound devices +CONFIG_SND_X86 policy<{'amd64': 'y'}> +CONFIG_HDMI_LPE_AUDIO policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> SoundWire support +CONFIG_SOUNDWIRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SOUNDWIRE_INTEL policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_SOUNDWIRE_QCOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_SOUNDWIRE mark note + +# Menu: Device Drivers >> Staging drivers +CONFIG_STAGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PRISM2_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8723BS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_R8712U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_R8188EU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTS5208 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VT6655 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VT6656 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_SM750 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_EMXX policy<{'arm64': 'm', 'armhf': 'y'}> +CONFIG_STAGING_BOARD policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_LTE_GDM724X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FIREWIRE_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FWTTY_MAX_TOTAL_PORTS policy<{'amd64': '64', 'arm64': '64', 'armhf': '64', 'ppc64el': '64', 'riscv64': '64'}> +CONFIG_FWTTY_MAX_CARD_PORTS policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32'}> +CONFIG_COMMON_CLK_XLNX_CLKWZRD policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n'}> +CONFIG_KS7010 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GREYBUS_AUDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_AUDIO_APB_CODEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_BOOTROM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_FIRMWARE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_HID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_LIGHT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_LOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_LOOPBACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_POWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_VIBRATOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_PI433 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_XIL_AXIS_FIFO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QLGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WFX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_STAGING flag + +# Menu: Device Drivers >> Staging drivers >> Broadcom VideoCore support +CONFIG_BCM_VIDEOCORE policy<{'arm64': 'm'}> +CONFIG_BCM2835_VCHIQ policy<{'arm64': 'm'}> +CONFIG_VCHIQ_CDEV policy<{'arm64': 'y'}> +CONFIG_SND_BCM2835 policy<{'arm64': 'm'}> +CONFIG_VIDEO_BCM2835 policy<{'arm64': 'm'}> +CONFIG_BCM2835_VCHIQ_MMAL policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Fieldbus Device Support +CONFIG_FIELDBUS_DEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_HMS_ANYBUSS_BUS policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ARCX_ANYBUS_CONTROLLER policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HMS_PROFINET policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Greybus Bridged PHY Class drivers +CONFIG_GREYBUS_BRIDGED_PHY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_PWM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_GREYBUS_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADIS16240 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Active energy metering IC +CONFIG_ADE7854 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADE7854_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADE7854_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Analog digital bi-direction converters +CONFIG_ADT7316 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADT7316_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ADT7316_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Analog to digital converters +CONFIG_AD7816 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD7280 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Capacitance to digital converters +CONFIG_AD7746 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Direct Digital Synthesis +CONFIG_AD9832 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AD9834 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Network Analyzer, Impedance Converters +CONFIG_AD5933 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> IIO staging drivers >> Resolver to digital converters +CONFIG_AD2S1210 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> MOST support +CONFIG_MOST_COMPONENTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_VIDEO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_DIM2 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MOST_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers +CONFIG_STAGING_MEDIA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VIDEO_IMX_MEDIA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_MESON_VDEC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_OMAP4 policy<{'armhf-generic': 'm'}> +CONFIG_VIDEO_ROCKCHIP_VDEC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_SUNXI policy<{'arm64': 'y', 'armhf': '-'}> +CONFIG_VIDEO_SUNXI_CEDRUS policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_VIDEO_TEGRA policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_TEGRA_TPG policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_VIDEO_IPU3_IMGU policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> AV7110 cards +CONFIG_DVB_SP8870 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AV7110 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DVB_AV7110_OSD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_DVB_BUDGET_PATCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> Enable support to Intel Atom ISP camera drivers +CONFIG_INTEL_ATOMISP policy<{'amd64': 'y'}> + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> Enable support to Intel Atom ISP camera drivers >> Intel Atom Image Signal Processor Driver + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> Hantro VPU driver +CONFIG_VIDEO_HANTRO policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VIDEO_HANTRO_IMX8M policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_VIDEO_HANTRO_ROCKCHIP policy<{'arm64': 'y', 'armhf': 'y'}> + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> Zoran ZR36060 + +# Menu: Device Drivers >> Staging drivers >> Media staging drivers >> i.MX5/6/7/8 Media Sub devices +CONFIG_VIDEO_IMX_CSI policy<{'armhf': 'm'}> +CONFIG_VIDEO_IMX7_CSI policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> NV Tegra Embedded Controller SMBus Interface +CONFIG_MFD_NVEC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_KEYBOARD_NVEC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_SERIO_NVEC_PS2 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVEC_POWER policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_NVEC_PAZ00 policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Support for rtllib wireless devices +CONFIG_RTLLIB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTLLIB_CRYPTO_CCMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTLLIB_CRYPTO_TKIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTLLIB_CRYPTO_WEP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_RTL8192E policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Staging drivers >> Support for small TFT LCD display modules +CONFIG_FB_TFT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_FB_TFT_AGM1264K_FL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_BD663474 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_HX8340BN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_HX8347D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_HX8353D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_HX8357D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9163 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9320 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9325 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9340 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9341 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9481 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ILI9486 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_PCD8544 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_RA8875 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_S6D02A1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_S6D1121 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SH1106 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SSD1289 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SSD1305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SSD1306 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SSD1331 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SSD1351 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ST7735R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_ST7789V policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_TINYLCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_TLS8204 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_UC1611 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_UC1701 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_UPD161704 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_FB_TFT_SEPS525 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> TEE drivers +CONFIG_OPTEE policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_AMDTEE policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> TI VLYNQ + +# Menu: Device Drivers >> Thermal drivers +CONFIG_THERMAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_THERMAL_NETLINK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_STATISTICS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_THERMAL_HWMON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_WRITABLE_TRIPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_GOV_FAIR_SHARE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_GOV_STEP_WISE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_GOV_BANG_BANG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_GOV_USER_SPACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_GOV_POWER_ALLOCATOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_DEVFREQ_THERMAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_EMULATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_MMIO policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_HISI_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_SC_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX8MM_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_K3_THERMAL policy<{'arm64': 'm'}> +CONFIG_MAX77620_THERMAL policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SUN8I_THERMAL policy<{'arm64': 'm', 'armhf': '-'}> +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', 'riscv64': 'm'}> +CONFIG_MTK_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_AMLOGIC_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_GENERIC_ADC_THERMAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SPRD_THERMAL policy<{'arm64': 'm'}> +CONFIG_KHADAS_MCU_FAN_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Thermal drivers >> APIs to parse thermal data out of device tree +CONFIG_THERMAL_OF policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_THERMAL policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_FREQ_THERMAL policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_IDLE_THERMAL policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_QORIQ_THERMAL policy<{'arm64': 'm'}> +CONFIG_UNIPHIER_THERMAL policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> + +# Menu: Device Drivers >> Thermal drivers >> Broadcom thermal drivers +CONFIG_BCM2711_THERMAL policy<{'arm64': 'm'}> +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 >> Thermal drivers >> Default Thermal governor +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> + +# Menu: Device Drivers >> Thermal drivers >> Intel thermal drivers +CONFIG_INTEL_POWERCLAMP policy<{'amd64': 'm'}> +CONFIG_X86_PKG_TEMP_THERMAL policy<{'amd64': 'm'}> +CONFIG_INTEL_SOC_DTS_THERMAL policy<{'amd64': 'm'}> +CONFIG_INTEL_BXT_PMIC_THERMAL policy<{'amd64': 'm'}> +CONFIG_INTEL_PCH_THERMAL policy<{'amd64': 'm'}> +CONFIG_INTEL_TCC_COOLING policy<{'amd64': 'm'}> +CONFIG_INTEL_MENLOW policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Thermal drivers >> Intel thermal drivers >> ACPI INT340X thermal drivers +CONFIG_INT340X_THERMAL policy<{'amd64': 'm'}> +CONFIG_INT3406_THERMAL policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Thermal drivers >> NVIDIA Tegra thermal drivers +CONFIG_TEGRA_SOCTHERM policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_TEGRA_BPMP_THERMAL policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_TEGRA30_TSENSOR policy<{'armhf': 'm'}> + +# Menu: Device Drivers >> Thermal drivers >> Qualcomm thermal drivers +CONFIG_QCOM_TSENS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_SPMI_ADC_TM5 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_SPMI_TEMP_ALARM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_QCOM_LMH policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Device Drivers >> Thermal drivers >> STMicroelectronics thermal drivers + +# Menu: Device Drivers >> Thermal drivers >> Samsung thermal drivers +CONFIG_EXYNOS_THERMAL policy<{'armhf': 'y'}> + +# Menu: Device Drivers >> Thermal drivers >> Texas Instruments thermal drivers + +# Menu: Device Drivers >> Thermal drivers >> Texas Instruments thermal drivers >> Texas Instruments SoCs temperature sensor driver +CONFIG_TI_SOC_THERMAL policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_TI_THERMAL policy<{'armhf': '-'}> +CONFIG_OMAP3_THERMAL policy<{'armhf': '-'}> +CONFIG_OMAP4_THERMAL policy<{'armhf': '-'}> +CONFIG_DRA752_THERMAL policy<{'armhf': '-'}> + +# Menu: Device Drivers >> USB support +CONFIG_USB_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_USB_LED_TRIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ULPI_BUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CONN_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_UHCI_HCD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ROLE_SWITCH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ROLES_INTEL_XHCI policy<{'amd64': 'm'}> +# +CONFIG_USB_UHCI_HCD mark note flag + +# Menu: Device Drivers >> USB support >> ChipIdea Highspeed Dual Role Controller +CONFIG_USB_CHIPIDEA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CHIPIDEA_UDC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CHIPIDEA_HOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CHIPIDEA_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CHIPIDEA_MSM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CHIPIDEA_IMX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CHIPIDEA_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CHIPIDEA_TEGRA policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> USB support >> Support for Host-side USB +CONFIG_USB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ANNOUNCE_NEW_DEVICES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_DEFAULT_PERSIST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_FEW_INIT_RETRIES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_DYNAMIC_MINORS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_OTG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_USB_OTG_PRODUCTLIST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_LEDS_TRIGGER_USBPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_AUTOSUSPEND_DELAY policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2'}> +CONFIG_USB_MON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_C67X00_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_BRCMSTB policy<{'arm64': 'm'}> +CONFIG_USB_OXU210HP_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_ISP116X_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_FOTG210_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MAX3421_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_FHCI_HCD policy<{'ppc64el': 'm'}> +CONFIG_FHCI_DEBUG policy<{'ppc64el': 'n'}> +CONFIG_USB_U132_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SL811_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_SL811_HCD_ISO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_SL811_CS policy<{'amd64': 'm'}> +CONFIG_USB_R8A66597_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_RENESAS_USBHS_HCD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_HCD_BCMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_HCD_SSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_HCD_TEST_MODE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_RENESAS_USBHS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_ACM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_PRINTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_WDM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_TMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MDC800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MICROTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CDNS_SUPPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CDNSP_PCI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_USB_CDNSP_GADGET policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_USB_CDNSP_HOST policy<{'amd64': 'y', 'arm64': 'y'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_USS720 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_EMI62 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_EMI26 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_ADUTUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_SEVSEG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_LEGOTOWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_LCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CYPRESS_CY7C63 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CYTHERM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_IDMOUSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_FTDI_ELAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_APPLEDISPLAY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_APPLE_MFI_FASTCHARGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_SISUSBVGA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_LD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_TRANCEVIBRATOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_IOWARRIOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_EHSET_TEST_FIXTURE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_ISIGHTFW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_YUREX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_EZUSB_FX2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_HUB_USB251XB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_HSIC_USB3503 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_HSIC_USB4604 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_LINK_LAYER_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_CHAOSKEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_BRCM_USB_PINMAP policy<{'arm64': 'm'}> +# +CONFIG_USB_OTG note note note +CONFIG_USB_HCD_BCMA note +CONFIG_USB_HCD_SSB note + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CDNS3_GADGET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CDNS3_HOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CDNS3_PCI_WRAP policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_USB_CDNS3_TI policy<{'arm64': 'm'}> +CONFIG_USB_CDNS3_IMX policy<{'arm64': 'm', 'armhf': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_DWC2_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_DWC2_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_DWC2_TRACK_MISSED_SOFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_DWC3_ULPI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_DWC3_OMAP policy<{'armhf': 'm'}> +CONFIG_USB_DWC3_EXYNOS policy<{'armhf': 'n'}> +CONFIG_USB_DWC3_PCI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_USB_DWC3_HAPS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_DWC3_QCOM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_DWC3_IMX8MP policy<{'arm64': 'm'}> +CONFIG_USB_DWC3_XILINX policy<{'arm64': '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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_DWC3_GADGET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_DWC3_DUAL_ROLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_EHCI_ROOT_HUB_TT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_EHCI_TT_NEWSCHED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_EHCI_FSL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_EHCI_HCD_PPC_OF policy<{'ppc64el': 'y'}> +CONFIG_USB_EHCI_EXYNOS policy<{'armhf': 'n'}> +CONFIG_USB_EHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_USB_EHCI_HCD_PLATFORM mark note flag +CONFIG_USB_EHCI_HCD mark note flag + +# 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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_ISP1760_GADGET_ROLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_ISP1760_DUAL_ROLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MUSB_SUNXI policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_USB_MUSB_TUSB6010 policy<{'armhf': 'm'}> +CONFIG_USB_MUSB_OMAP2PLUS policy<{'armhf': 'm'}> +CONFIG_USB_MUSB_POLARFIRE_SOC policy<{'riscv64': 'm'}> +CONFIG_USB_MUSB_AM35X policy<{'armhf': 'm'}> +CONFIG_USB_MUSB_DSPS policy<{'armhf': 'm'}> +CONFIG_USB_MUSB_MEDIATEK policy<{'arm64': 'm', 'armhf': 'm'}> +# +CONFIG_USB_MUSB_HDRC note flag + +# 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', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_MUSB_GADGET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_MUSB_DUAL_ROLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_OHCI_EXYNOS policy<{'armhf': 'n'}> +CONFIG_USB_OHCI_HCD_PLATFORM policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +# +CONFIG_USB_OHCI_HCD marknote +CONFIG_USB_OHCI_HCD_PPC_OF_LE flag + +# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB DSL modem support +CONFIG_USB_ATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SPEEDTOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CXACRU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_UEAGLEATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_XUSBATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_STORAGE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_STORAGE_REALTEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REALTEK_AUTOPM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_USB_STORAGE_DATAFAB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_FREECOM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_ISD200 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_USBAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_SDDR09 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_SDDR55 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_JUMPSHOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_ALAUDA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_ONETOUCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_KARMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_CYPRESS_ATACB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_STORAGE_ENE_UB6250 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_UAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_SERIAL_GENERIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_SERIAL_SIMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_AIRCABLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_ARK3116 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_BELKIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_CH341 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_WHITEHEAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_DIGI_ACCELEPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_CP210X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_CYPRESS_M8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_EMPEG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_FTDI_SIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_VISOR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_IPAQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_IR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_EDGEPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_EDGEPORT_TI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_F81232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_F8153X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_GARMIN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_IPW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_IUU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_KEYSPAN_PDA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_KEYSPAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_KLSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_KOBIL_SCT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_MCT_U232 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_METRO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_MOS7720 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_MOS7715_PARPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_SERIAL_MOS7840 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_MXUPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_NAVMAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_PL2303 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_OTI6858 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_QCAUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_QUALCOMM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_SPCP8X5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_SAFE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_SAFE_PADDED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB_SERIAL_SIERRAWIRELESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_SYMBOL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_TI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_CYBERJACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_OPTION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_OMNINET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_OPTICON policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_XSENS_MT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_WISHBONE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_SSU100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_QT2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_UPD78F0730 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_XR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SERIAL_DEBUG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_USB_SERIAL_DEBUG note + +# Menu: Device Drivers >> USB support >> Support for Host-side USB >> USB/IP support +CONFIG_USBIP_CORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USBIP_VHCI_HCD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USBIP_VHCI_HC_PORTS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8'}> +CONFIG_USBIP_VHCI_NR_HCS policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1'}> +CONFIG_USBIP_HOST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USBIP_VUDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USBIP_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_XHCI_DBGCAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_XHCI_PCI_RENESAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_XHCI_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +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<{'arm64': 'm', 'armhf': 'm'}> +# +CONFIG_USB_XHCI_HCD mark note flag +CONFIG_USB_XHCI_DBGCAP note + +# Menu: Device Drivers >> USB support >> USB Gadget Support +CONFIG_USB_GADGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_GADGET_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_GADGET_DEBUG_FILES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_GADGET_DEBUG_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_GADGET_VBUS_DRAW policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2'}> +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2'}> +CONFIG_U_SERIAL_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CONFIGFS_SERIAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_ACM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_OBEX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_NCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_ECM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_ECM_SUBSET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_RNDIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_EEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_PHONET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_MASS_STORAGE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_LB_SS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_UAC1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_UAC1_LEGACY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_UAC2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_MIDI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_HID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_UVC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_PRINTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_CONFIGFS_F_TCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Gadget precomposed configurations +CONFIG_USB_ZERO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_AUDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GADGET_UAC1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_GADGET_UAC1_LEGACY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_ETH_RNDIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ETH_EEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_G_NCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GADGETFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MASS_STORAGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GADGET_TARGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_SERIAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MIDI_GADGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_PRINTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_CDC_COMPOSITE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_NOKIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_ACM_MS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_MULTI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_G_MULTI_RNDIS policy<{'armhf': '-'}> +CONFIG_USB_G_MULTI_CDC policy<{'armhf': '-'}> +CONFIG_USB_G_HID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_DBGP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_G_WEBCAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_RAW_GADGET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_G_DBGP_SERIAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_FUNCTIONFS_ETH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_FUNCTIONFS_RNDIS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_FUNCTIONFS_GENERIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Device Drivers >> USB support >> USB Gadget Support >> USB Peripheral Controller +CONFIG_USB_FUSB300 policy<{'armhf-generic': 'm'}> +CONFIG_USB_FOTG210_UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GR_UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_R8A66597 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MV_UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MV_U3D policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_SNP_UDC_PLAT policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_M66592 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_USB_BDC_UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_AMD5536UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET2272 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_NET2272_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_NET2280 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GOKU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_EG20T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_GADGET_XILINX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_MAX3420_UDC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_USB_TEGRA_XUDC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_ASPEED_VHUB policy<{'armhf': 'm'}> +CONFIG_USB_DUMMY_HCD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_USB_M66592 note +CONFIG_USB_DUMMY_HCD flag + +# Menu: Device Drivers >> USB support >> USB Physical Layer drivers +CONFIG_NOP_USB_XCEIV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_AM335X_PHY_USB policy<{'armhf': 'm'}> +CONFIG_TWL6030_USB policy<{'armhf': 'm'}> +CONFIG_USB_GPIO_VBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TAHVO_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TAHVO_USB_HOST_BY_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_USB_ISP1301 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_USB_MXS_PHY policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_USB_TEGRA_PHY policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_USB_ULPI policy<{'arm64': 'y', 'armhf': 'y'}> +# +CONFIG_NOP_USB_XCEIV note + +# Menu: Device Drivers >> USB support >> USB Type-C Support +CONFIG_TYPEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TYPEC_UCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_UCSI_CCG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_UCSI_ACPI policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_TYPEC_HD3SS3220 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_TPS6598X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_STUSB160X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_QCOM_PMIC policy<{'arm64': 'm', 'armhf': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_NVIDIA_ALTMODE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_MUX_INTEL_PMC policy<{'amd64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_FUSB302 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> USB support >> USB Type-C Support >> USB Type-C Port Controller Manager >> Type-C Port Controller Interface driver +CONFIG_TYPEC_TCPCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_RT1711H policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_MT6360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TYPEC_TCPCI_MAXIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> Unified support for USB4 and Thunderbolt +CONFIG_USB4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_USB4_DEBUGFS_WRITE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_USB4_DMA_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Device Drivers >> Userspace I/O drivers +CONFIG_UIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_UIO_CIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_PDRV_GENIRQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_DMEM_GENIRQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_AEC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_SERCOS3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_PCI_GENERIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_NETX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_MF624 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UIO_HV_GENERIC policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_UIO_DFL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Device Drivers >> VFIO Non-Privileged userspace driver framework +CONFIG_VFIO policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VFIO_NOIOMMU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VFIO_MDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VFIO_FSL_MC policy<{'arm64': 'm'}> +CONFIG_VFIO_PCI policy<{'amd64': 'y', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VFIO_PCI_VGA policy<{'amd64': 'y'}> +CONFIG_VFIO_PCI_IGD policy<{'amd64': 'y'}> +# +CONFIG_VFIO mark note +CONFIG_VFIO_PCI mark note + +# 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 >> VHOST drivers +CONFIG_VHOST_MENU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VHOST_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VHOST_SCSI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VHOST_VSOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VHOST_VDPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VHOST_CROSS_ENDIAN_LEGACY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> VME bridge support +CONFIG_VME_BUS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_VME_CA91CX42 policy<{'amd64': 'm'}> +CONFIG_VME_TSI148 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VME_FAKE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VMIVME_7805 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VME_USER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Device Drivers >> Virtio drivers +CONFIG_VIRTIO_MENU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VIRTIO_PCI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VIRTIO_PCI_LEGACY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VIRTIO_VDPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VIRTIO_PMEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf-generic-lpae': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_VIRTIO_BALLOON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VIRTIO_MEM policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_VIRTIO_INPUT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VIRTIO_MMIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +# +CONFIG_VIRTIO_PCI flag +CONFIG_VIRTIO_MMIO note + +# Menu: Device Drivers >> Virtualization drivers +CONFIG_VIRT_DRIVERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VBOXGUEST policy<{'amd64': 'm'}> +CONFIG_NITRO_ENCLAVES policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_ACRN_HSM policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Voltage and Current Regulator Support +CONFIG_REGULATOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_REGULATOR_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_REGULATOR_FIXED_VOLTAGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_VIRTUAL_CONSUMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_USERSPACE_CONSUMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_88PG86X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_88PM800 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_88PM8607 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_ACT8865 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_ACT8945A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_AD5398 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_ANATOP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_AAT2870 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_ARIZONA_LDO1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_ARIZONA_MICSUPP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_ARM_SCMI policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_AS3711 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_AS3722 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_ATC260X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_AXP20X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BCM590XX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BD71815 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BD71828 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BD718XX policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BD9571MWV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_BD957XMUF policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_CPCAP policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_CROS_EC policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_DA903X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_DA9052 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_DA9055 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_DA9062 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_DA9063 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_DA9121 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_DA9210 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_DA9211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_FAN53555 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_FAN53880 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_HI6421 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_HI6421V530 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_HI655X policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_HI6421V600 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_ISL9305 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_ISL6271A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LM363X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_LOCHNAGAR policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_LP3971 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LP3972 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LP872X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LP873X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_LP8755 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LP87565 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_LP8788 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LTC3589 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_LTC3676 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX14577 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX1586 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX77620 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX77650 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX8649 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8660 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8893 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8907 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX8925 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8952 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8973 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX8997 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX8998 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX77686 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX77693 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MAX77802 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MAX77826 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MC13783 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MC13892 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MCP16502 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MP5416 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MP8859 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MP886X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MPQ7920 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6311 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_MT6315 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6323 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6358 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6359 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_MT6380 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_MT6397 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_PALMAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PBIAS policy<{'armhf': 'm'}> +CONFIG_REGULATOR_PCA9450 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PCAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PCF50633 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_PF8X00 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_PFUZE100 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_PV88060 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PV88080 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PV88090 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_PWM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_QCOM_RPM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_QCOM_RPMH policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_QCOM_SMD_RPM policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_QCOM_SPMI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_QCOM_USB_VBUS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_RC5T583 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RK808 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_RN5T618 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_RT4801 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RT4831 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_RT5033 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_RT6160 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RT6245 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RTQ2134 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RTMV20 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_RTQ6752 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_S2MPA01 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_S2MPS11 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_S5M8767 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_SC2731 policy<{'arm64': 'm'}> +CONFIG_REGULATOR_SKY81452 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_SLG51000 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_STPMIC1 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_TI_ABB policy<{'armhf': 'y'}> +CONFIG_REGULATOR_SY8106A policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_SY8824X policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_SY8827N policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_TPS51632 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS6105X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_TPS62360 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65023 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS6507X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65086 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_TPS65090 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65132 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65217 policy<{'arm64': 'm', 'armhf': 'y', 'ppc64el': '-'}> +CONFIG_REGULATOR_TPS65218 policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_TPS6524X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS6586X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65910 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TPS65912 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_TWL4030 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_UNIPHIER policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_REGULATOR_VCTRL policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_VEXPRESS policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_VQMMC_IPQ4019 policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_REGULATOR_WM831X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_WM8350 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_WM8400 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_REGULATOR_WM8994 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_REGULATOR_QCOM_LABIBB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +# +CONFIG_REGULATOR_FIXED_VOLTAGE note +CONFIG_REGULATOR_TWL4030 mark note +CONFIG_REGULATOR_TPS65217 mark note + +# Menu: Device Drivers >> Watchdog Timer Support +CONFIG_WATCHDOG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_NOWAYOUT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_OPEN_TIMEOUT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0', 's390x': '0'}> +CONFIG_WATCHDOG_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SOFT_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SOFT_WATCHDOG_PRETIMEOUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BD957XMUF_WATCHDOG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DA9052_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DA9055_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DA9063_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_DA9062_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_GPIO_WATCHDOG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MENF21BMC_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MENZ069_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_WDAT_WDT policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_WM831X_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_WM8350_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_XILINX_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ZIIRAVE_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_RAVE_SP_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLX_WDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_SL28CPLD_WATCHDOG policy<{'arm64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_FTWDT010_WATCHDOG policy<{'armhf': 'm'}> +CONFIG_S3C2410_WATCHDOG policy<{'armhf': 'n'}> +CONFIG_DW_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_OMAP_WATCHDOG policy<{'armhf': 'm'}> +CONFIG_K3_RTI_WATCHDOG policy<{'arm64': 'm'}> +CONFIG_ORION_WATCHDOG policy<{'armhf': 'm'}> +CONFIG_RN5T618_WATCHDOG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SUNXI_WATCHDOG policy<{'arm64': 'm', 'armhf': '-'}> +CONFIG_NPCM7XX_WATCHDOG policy<{'armhf': 'y'}> +CONFIG_TWL4030_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_TS4800_WATCHDOG policy<{'armhf': 'm'}> +CONFIG_MAX63XX_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MAX77620_WATCHDOG policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IMX2_WDT policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_SC_WDT policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX7ULP_WDT policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_RETU_WATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_TEGRA_WATCHDOG policy<{'arm64': 'm', 'armhf': '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_ARM_SMC_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', 'riscv64': 'm'}> +CONFIG_UNIPHIER_WATCHDOG policy<{'armhf': 'n', 'armhf-generic-lpae': '-'}> +CONFIG_RTD119X_WATCHDOG policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_SPRD_WATCHDOG policy<{'arm64': 'm'}> +CONFIG_PM8916_WATCHDOG policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_VISCONTI_WATCHDOG policy<{'arm64': 'm'}> +CONFIG_MSC313E_WATCHDOG policy<{'armhf': 'm'}> +CONFIG_ACQUIRE_WDT policy<{'amd64': 'm'}> +CONFIG_ADVANTECH_WDT policy<{'amd64': 'm'}> +CONFIG_ALIM1535_WDT policy<{'amd64': 'm'}> +CONFIG_ALIM7101_WDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EBC_C384_WDT policy<{'amd64': 'm'}> +CONFIG_F71808E_WDT policy<{'amd64': 'm'}> +CONFIG_SP5100_TCO policy<{'amd64': 'm'}> +CONFIG_SBC_FITPC2_WATCHDOG policy<{'amd64': 'm'}> +CONFIG_EUROTECH_WDT policy<{'amd64': 'm'}> +CONFIG_IB700_WDT policy<{'amd64': 'm'}> +CONFIG_IBMASR policy<{'amd64': 'm'}> +CONFIG_WAFER_WDT policy<{'amd64': 'm'}> +CONFIG_I6300ESB_WDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_IE6XX_WDT policy<{'amd64': 'm'}> +CONFIG_ITCO_WDT policy<{'amd64': 'm'}> +CONFIG_ITCO_VENDOR_SUPPORT policy<{'amd64': 'y'}> +CONFIG_IT8712F_WDT policy<{'amd64': 'm'}> +CONFIG_IT87_WDT policy<{'amd64': 'm'}> +CONFIG_HP_WATCHDOG policy<{'amd64': 'm'}> +CONFIG_HPWDT_NMI_DECODING policy<{'amd64': 'y'}> +CONFIG_KEMPLD_WDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_SC1200_WDT policy<{'amd64': 'm'}> +CONFIG_PC87413_WDT policy<{'amd64': 'm'}> +CONFIG_NV_TCO policy<{'amd64': 'm'}> +CONFIG_60XX_WDT policy<{'amd64': 'm'}> +CONFIG_CPU5_WDT policy<{'amd64': 'm'}> +CONFIG_SMSC_SCH311X_WDT policy<{'amd64': 'm'}> +CONFIG_SMSC37B787_WDT policy<{'amd64': 'm'}> +CONFIG_TQMX86_WDT policy<{'amd64': 'm'}> +CONFIG_VIA_WDT policy<{'amd64': 'm'}> +CONFIG_W83627HF_WDT policy<{'amd64': 'm'}> +CONFIG_W83877F_WDT policy<{'amd64': 'm'}> +CONFIG_W83977F_WDT policy<{'amd64': 'm'}> +CONFIG_MACHZ_WDT policy<{'amd64': 'm'}> +CONFIG_SBC_EPX_C3_WATCHDOG policy<{'amd64': 'm'}> +CONFIG_INTEL_MEI_WDT policy<{'amd64': 'm'}> +CONFIG_NI903X_WDT policy<{'amd64': 'm'}> +CONFIG_NIC7018_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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_WATCHDOG_RTAS policy<{'ppc64el': 'm'}> +CONFIG_DIAG288_WATCHDOG policy<{'s390x': 'm'}> +CONFIG_XEN_WDT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_PCIPCWATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_WDTPCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_USBPCWATCHDOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_KEEMBAY_WATCHDOG policy<{'arm64': 'm'}> + +# Menu: Device Drivers >> Watchdog Timer Support >> Enable watchdog pretimeout governors +CONFIG_WATCHDOG_PRETIMEOUT_GOV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_PRETIMEOUT_GOV_NOOP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_PRETIMEOUT_GOV_PANIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers +CONFIG_X86_PLATFORM_DEVICES policy<{'amd64': 'y'}> +CONFIG_UV_SYSFS policy<{'amd64': 'm'}> +CONFIG_ACERHDF policy<{'amd64': 'm'}> +CONFIG_ACER_WIRELESS policy<{'amd64': 'm'}> +CONFIG_AMD_PMC policy<{'amd64': 'm'}> +CONFIG_ADV_SWBUTTON policy<{'amd64': 'm'}> +CONFIG_APPLE_GMUX policy<{'amd64': 'm'}> +CONFIG_ASUS_LAPTOP policy<{'amd64': 'm'}> +CONFIG_ASUS_WIRELESS policy<{'amd64': 'm'}> +CONFIG_MERAKI_MX100 policy<{'amd64': 'm'}> +CONFIG_EEEPC_LAPTOP policy<{'amd64': 'm'}> +CONFIG_AMILO_RFKILL policy<{'amd64': 'm'}> +CONFIG_DELL_UART_BACKLIGHT policy<{'amd64': 'm'}> +CONFIG_FUJITSU_LAPTOP policy<{'amd64': 'm'}> +CONFIG_FUJITSU_TABLET policy<{'amd64': 'm'}> +CONFIG_GPD_POCKET_FAN policy<{'amd64': 'm'}> +CONFIG_HP_ACCEL policy<{'amd64': 'm'}> +CONFIG_WIRELESS_HOTKEY policy<{'amd64': 'm'}> +CONFIG_IBM_RTL policy<{'amd64': 'm'}> +CONFIG_SENSORS_HDAPS policy<{'amd64': 'm'}> +CONFIG_MSI_LAPTOP policy<{'amd64': 'm'}> +CONFIG_PCENGINES_APU2 policy<{'amd64': 'm'}> +CONFIG_SAMSUNG_LAPTOP policy<{'amd64': 'm'}> +CONFIG_SAMSUNG_Q10 policy<{'amd64': 'm'}> +CONFIG_TOSHIBA_BT_RFKILL policy<{'amd64': 'm'}> +CONFIG_TOSHIBA_HAPS policy<{'amd64': 'm'}> +CONFIG_ACPI_CMPC policy<{'amd64': 'm'}> +CONFIG_COMPAL_LAPTOP policy<{'amd64': 'm'}> +CONFIG_PANASONIC_LAPTOP policy<{'amd64': 'm'}> +CONFIG_SONY_LAPTOP policy<{'amd64': 'm'}> +CONFIG_SONYPI_COMPAT policy<{'amd64': 'y'}> +CONFIG_SYSTEM76_ACPI policy<{'amd64': 'm'}> +CONFIG_TOPSTAR_LAPTOP policy<{'amd64': 'm'}> +CONFIG_MLX_PLATFORM policy<{'amd64': 'm'}> +CONFIG_TOUCHSCREEN_DMI policy<{'amd64': 'y'}> +CONFIG_INTEL_IPS policy<{'amd64': 'm'}> +CONFIG_INTEL_SCU_PCI policy<{'amd64': 'y'}> +CONFIG_INTEL_SCU_PLATFORM policy<{'amd64': 'm'}> +CONFIG_INTEL_SCU_IPC_UTIL policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Dell X86 Platform Specific Device Drivers +CONFIG_X86_PLATFORM_DRIVERS_DELL policy<{'amd64': 'y'}> +CONFIG_ALIENWARE_WMI policy<{'amd64': 'm'}> +CONFIG_DCDBAS policy<{'amd64': 'm'}> +CONFIG_DELL_LAPTOP policy<{'amd64': 'm'}> +CONFIG_DELL_RBU policy<{'amd64': 'm'}> +CONFIG_DELL_RBTN policy<{'amd64': 'm'}> +CONFIG_DELL_SMO8800 policy<{'amd64': 'm'}> +CONFIG_DELL_WMI_AIO policy<{'amd64': 'm'}> +CONFIG_DELL_WMI_LED policy<{'amd64': 'm'}> +CONFIG_DELL_WMI_SYSMAN policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Dell X86 Platform Specific Device Drivers >> Dell SMBIOS driver +CONFIG_DELL_SMBIOS policy<{'amd64': 'm'}> +CONFIG_DELL_SMBIOS_WMI policy<{'amd64': 'y'}> +CONFIG_DELL_SMBIOS_SMM policy<{'amd64': 'y'}> +CONFIG_DELL_WMI policy<{'amd64': 'm'}> +CONFIG_DELL_WMI_PRIVACY policy<{'amd64': 'y'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Intel x86 Platform Specific Device Drivers +CONFIG_INTEL_ATOMISP2_LED policy<{'amd64': 'm'}> +CONFIG_INTEL_SAR_INT1092 policy<{'amd64': 'm'}> +CONFIG_INTEL_SKL_INT3472 policy<{'amd64': 'm'}> +CONFIG_INTEL_PMC_CORE policy<{'amd64': 'y'}> +CONFIG_INTEL_PMT_TELEMETRY policy<{'amd64': 'm'}> +CONFIG_INTEL_PMT_CRASHLOG policy<{'amd64': 'm'}> +CONFIG_INTEL_TELEMETRY policy<{'amd64': 'm'}> +CONFIG_INTEL_WMI_SBL_FW_UPDATE policy<{'amd64': 'm'}> +CONFIG_INTEL_WMI_THUNDERBOLT policy<{'amd64': 'm'}> +CONFIG_INTEL_HID_EVENT policy<{'amd64': 'm'}> +CONFIG_INTEL_VBTN policy<{'amd64': 'm'}> +CONFIG_INTEL_INT0002_VGPIO policy<{'amd64': 'm'}> +CONFIG_INTEL_OAKTRAIL policy<{'amd64': 'm'}> +CONFIG_INTEL_BXTWC_PMIC_TMU policy<{'amd64': 'm'}> +CONFIG_INTEL_CHTDC_TI_PWRBTN policy<{'amd64': 'm'}> +CONFIG_INTEL_MRFLD_PWRBTN policy<{'amd64': 'm'}> +CONFIG_INTEL_PUNIT_IPC policy<{'amd64': 'm'}> +CONFIG_INTEL_RST policy<{'amd64': 'm'}> +CONFIG_INTEL_SMARTCONNECT policy<{'amd64': 'm'}> +CONFIG_INTEL_TURBO_MAX_3 policy<{'amd64': 'y'}> +CONFIG_INTEL_UNCORE_FREQ_CONTROL policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> Intel 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'}> +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT policy<{'amd64': 'y'}> +CONFIG_THINKPAD_ACPI_DEBUGFACILITIES policy<{'amd64': 'y'}> +CONFIG_THINKPAD_ACPI_DEBUG policy<{'amd64': 'n'}> +CONFIG_THINKPAD_ACPI_UNSAFE_LEDS policy<{'amd64': 'n'}> +CONFIG_THINKPAD_ACPI_VIDEO policy<{'amd64': 'y'}> +CONFIG_THINKPAD_ACPI_HOTKEY_POLL policy<{'amd64': 'y'}> + +# Menu: Device Drivers >> X86 Platform Specific Device Drivers >> WMI +CONFIG_ACPI_WMI policy<{'amd64': 'm'}> +CONFIG_WMI_BMOF policy<{'amd64': 'm'}> +CONFIG_HUAWEI_WMI policy<{'amd64': 'm'}> +CONFIG_MXM_WMI policy<{'amd64': 'm'}> +CONFIG_PEAQ_WMI policy<{'amd64': 'm'}> +CONFIG_NVIDIA_WMI_EC_BACKLIGHT policy<{'amd64': 'm'}> +CONFIG_XIAOMI_WMI policy<{'amd64': 'm'}> +CONFIG_GIGABYTE_WMI policy<{'amd64': 'm'}> +CONFIG_ACER_WMI policy<{'amd64': 'm'}> +CONFIG_ASUS_WMI policy<{'amd64': 'm'}> +CONFIG_ASUS_NB_WMI policy<{'amd64': 'm'}> +CONFIG_EEEPC_WMI policy<{'amd64': 'm'}> +CONFIG_HP_WMI policy<{'amd64': 'm'}> +CONFIG_IDEAPAD_LAPTOP policy<{'amd64': 'm'}> +CONFIG_THINKPAD_LMI policy<{'amd64': 'm'}> +CONFIG_MSI_WMI policy<{'amd64': 'm'}> +CONFIG_ACPI_TOSHIBA policy<{'amd64': 'm'}> +CONFIG_TOSHIBA_WMI policy<{'amd64': 'n'}> +CONFIG_LG_LAPTOP policy<{'amd64': 'm'}> + +# Menu: Device Drivers >> Xen driver support +CONFIG_XEN_BALLOON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_XEN_MEMORY_HOTPLUG_LIMIT policy<{'amd64': '512'}> +CONFIG_XEN_SCRUB_PAGES_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_DEV_EVTCHN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_XENFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_XEN_COMPAT_XENFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_SYS_HYPERVISOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_GNTDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_XEN_GNTDEV_DMABUF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_GRANT_DEV_ALLOC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_XEN_GRANT_DMA_ALLOC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_PVCALLS_FRONTEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_XEN_ACPI_PROCESSOR policy<{'amd64': 'y'}> +CONFIG_XEN_MCE_LOG policy<{'amd64': 'y'}> +CONFIG_XEN_SYMS policy<{'amd64': 'y'}> +CONFIG_XEN_UNPOPULATED_ALLOC policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_XEN_VIRTIO policy<{'amd64': 'y', 'arm64': 'y'}> +# +CONFIG_XEN_ACPI_PROCESSOR mark note + +# Menu: Device Drivers >> Xen driver support >> Backend driver support +CONFIG_XEN_BACKEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_PCIDEV_BACKEND policy<{'amd64': 'm'}> +CONFIG_XEN_PVCALLS_BACKEND policy<{'amd64': 'n', 'arm64': 'n', 'armhf': '-'}> +CONFIG_XEN_SCSI_BACKEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> + +# Menu: Device Drivers >> vDPA drivers +CONFIG_VDPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_VDPA_SIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VDPA_SIM_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VDPA_SIM_BLOCK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VDPA_USER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IFCVF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MLX5_VDPA_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_VP_VDPA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Dump support +# + +# Menu: Dump support >> Architecture: s390 + +# Menu: Enable loadable module support +CONFIG_MODULES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_FORCE_LOAD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_UNLOAD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_FORCE_UNLOAD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODVERSIONS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_SRCVERSION_ALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODPROBE_PATH policy<{'amd64': '"/sbin/modprobe"', 'arm64': '"/sbin/modprobe"', 'armhf': '"/sbin/modprobe"', 'ppc64el': '"/sbin/modprobe"', 'riscv64': '"/sbin/modprobe"', 's390x': '"/sbin/modprobe"'}> +CONFIG_TRIM_UNUSED_KSYMS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_MODVERSIONS mark note note + +# Menu: Enable loadable module support >> Module compression mode +CONFIG_MODULE_COMPRESS_NONE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_COMPRESS_GZIP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_COMPRESS_XZ policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_COMPRESS_ZSTD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Enable loadable module support >> Module signature verification +CONFIG_MODULE_SIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_SIG_FORCE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_SIG_ALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_SIG_SHA224 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_SIG_SHA256 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_SIG_SHA384 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_SIG_SHA512 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Enable the block layer +CONFIG_BLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_BSGLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_INTEGRITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_ZONED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_THROTTLING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEV_THROTTLING_LOW policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BLK_WBT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_WBT_MQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_CGROUP_IOLATENCY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BLK_CGROUP_FC_APPID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_CGROUP_IOCOST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_CGROUP_IOPRIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_DEBUG_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_SED_OPAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_INLINE_ENCRYPTION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_BLK_DEV_THROTTLING note + +# Menu: Enable the block layer >> IO Schedulers +CONFIG_MQ_IOSCHED_DEADLINE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MQ_IOSCHED_KYBER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IOSCHED_BFQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BFQ_GROUP_IOSCHED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BFQ_CGROUP_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AIX_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_OSF_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_AMIGA_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ATARI_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_IBM_PARTITION policy<{'s390x': 'y'}> +CONFIG_MAC_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_LDM_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_LDM_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SGI_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_ULTRIX_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SUN_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_KARMA_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_EFI_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSV68_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CMDLINE_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +# +CONFIG_PARTITION_ADVANCED flag + +# Menu: Enable the block layer >> Partition Types >> Advanced partition selection >> Acorn partition support +CONFIG_ACORN_PARTITION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BSD_DISKLABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_MINIX_SUBPARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SOLARIS_X86_PARTITION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_UNIXWARE_DISKLABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> + +# Menu: Endianness selection +CONFIG_CPU_BIG_ENDIAN policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'y'}> +CONFIG_CPU_LITTLE_ENDIAN policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> + +# Menu: Endianness selection >> Architecture: powerpc + +# Menu: Executable file formats +CONFIG_BINFMT_ELF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BINFMT_ELF_FDPIC policy<{'armhf': 'y'}> +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BINFMT_SCRIPT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BINFMT_MISC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_COREDUMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_BINFMT_SCRIPT mark note + +# Menu: Executable file formats >> Kernel support for flat binaries +CONFIG_BINFMT_FLAT policy<{'armhf': 'y', 'riscv64': 'y'}> +CONFIG_BINFMT_FLAT_OLD policy<{'armhf': 'y', 'riscv64': 'y'}> +CONFIG_BINFMT_ZFLAT policy<{'armhf': 'y', 'riscv64': 'y'}> + +# Menu: File systems +CONFIG_VALIDATE_FS_PARSER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXT2_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_EXT3_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_JBD2_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GFS2_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GFS2_FS_LOCKING_DLM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NILFS2_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ZONEFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FS_DAX policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_EXPORTFS_BLOCK_OPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FILE_LOCKING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FS_ENCRYPTION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FS_ENCRYPTION_INLINE_CRYPT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FS_VERITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FS_VERITY_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FS_VERITY_BUILTIN_SIGNATURES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DNOTIFY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INOTIFY_USER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FANOTIFY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FANOTIFY_ACCESS_PERMISSIONS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_QUOTA_NETLINK_INTERFACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AUTOFS4_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'y'}> +CONFIG_AUTOFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'y'}> +CONFIG_FUSE_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CUSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VIRTIO_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FUSE_DAX policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_SHIFT_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SHIFT_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UNICODE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UNICODE_NORMALIZATION_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_EXT2_FS note +CONFIG_EXT3_FS note +CONFIG_FUSE_FS note flag + +# Menu: File systems >> Btrfs filesystem support +CONFIG_BTRFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BTRFS_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BTRFS_FS_CHECK_INTEGRITY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BTRFS_FS_RUN_SANITY_TESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BTRFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BTRFS_ASSERT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BTRFS_FS_REF_VERIFY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> CD-ROM/DVD Filesystems +CONFIG_ISO9660_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_JOLIET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZISOFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UDF_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: File systems >> Caches +CONFIG_NETFS_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CACHEFILES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CACHEFILES_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FSCACHE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FSCACHE_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FSCACHE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> DOS/FAT/EXFAT/NT Filesystems +CONFIG_MSDOS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_EXFAT_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EXFAT_DEFAULT_IOCHARSET policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'ppc64el': '"utf8"', 'riscv64': '"utf8"'}> +CONFIG_NTFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NTFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NTFS_RW policy<{'amd64': 'n', 'arm64-generic': 'n', 'armhf': 'n', 'ppc64el': '-', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_VFAT_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FAT_DEFAULT_CODEPAGE policy<{'amd64': '437', 'arm64': '437', 'armhf': '437', 'ppc64el': '437', 'riscv64': '437', 's390x': '437'}> +CONFIG_FAT_DEFAULT_IOCHARSET policy<{'amd64': '"iso8859-1"', 'arm64': '"iso8859-1"', 'armhf': '"iso8859-1"', 'ppc64el': '"iso8859-1"', 'riscv64': '"iso8859-1"', 's390x': '"iso8859-1"'}> +CONFIG_FAT_DEFAULT_UTF8 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_VFAT_FS mark note + +# Menu: File systems >> DOS/FAT/EXFAT/NT Filesystems >> NTFS Read-Write file system support +CONFIG_NTFS3_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NTFS3_64BIT_CLUSTER policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NTFS3_LZX_XPRESS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NTFS3_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> Distributed Lock Manager (DLM) +CONFIG_DLM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_DLM_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> F2FS filesystem support +CONFIG_F2FS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_F2FS_STAT_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_CHECK_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_F2FS_FAULT_INJECTION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_F2FS_IOSTAT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: File systems >> F2FS filesystem support >> F2FS compression feature +CONFIG_F2FS_FS_COMPRESSION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_LZ4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_LZ4HC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_ZSTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_F2FS_FS_LZORLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> JFS filesystem support +CONFIG_JFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_JFS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFS_STATISTICS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> Miscellaneous filesystems +CONFIG_MISC_FILESYSTEMS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ORANGEFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ADFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ADFS_FS_RW policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_AFFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ECRYPT_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ECRYPT_FS_MESSAGING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HFSPLUS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BEFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BEFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_BFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_EFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CRAMFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CRAMFS_BLOCKDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CRAMFS_MTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_VXFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MINIX_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_OMFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_HPFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_QNX4FS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_QNX6FS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_QNX6FS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ROMFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_SYSV_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_UFS_FS_WRITE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_UFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_VBOXSF_FS policy<{'amd64': 'm'}> +# +CONFIG_ECRYPT_FS mark note + +# Menu: File systems >> Miscellaneous filesystems >> Default pstore compression algorithm +CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> Miscellaneous filesystems >> EROFS filesystem support +CONFIG_EROFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_EROFS_FS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_EROFS_FS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EROFS_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EROFS_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EROFS_FS_ZIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> Miscellaneous filesystems >> Journalling Flash File System v2 (JFFS2) support +CONFIG_JFFS2_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_JFFS2_FS_DEBUG policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> +CONFIG_JFFS2_FS_WRITEBUFFER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_FS_WBUF_VERIFY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFFS2_SUMMARY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFFS2_FS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_ZLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_RTIME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_JFFS2_RUBIN policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFFS2_CMODE_PRIORITY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFFS2_CMODE_SIZE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_JFFS2_CMODE_FAVOURLZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> Miscellaneous filesystems >> Persistent store support +CONFIG_PSTORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PSTORE_DEFAULT_KMSG_BYTES policy<{'amd64': '10240', 'arm64': '10240', 'armhf': '10240', 'ppc64el': '10240', 'riscv64': '10240'}> +CONFIG_PSTORE_DEFLATE_COMPRESS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_PSTORE_LZO_COMPRESS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_LZ4_COMPRESS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_LZ4HC_COMPRESS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_842_COMPRESS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_ZSTD_COMPRESS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_CONSOLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_PMSG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_FTRACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_PSTORE_RAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PSTORE_BLK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_PSTORE_BLK_BLKDEV policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '-'}> +CONFIG_PSTORE_BLK_MAX_REASON policy<{'amd64': '2', 'arm64': '2', 'armhf': '2', 'ppc64el': '2', 'riscv64': '2', 's390x': '-'}> + +# Menu: File systems >> Miscellaneous filesystems >> Persistent store support >> Log panic/oops to a block device + +# Menu: File systems >> Miscellaneous filesystems >> RomFS backing stores +CONFIG_ROMFS_BACKED_BY_BLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ROMFS_BACKED_BY_MTD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ROMFS_BACKED_BY_BOTH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: File systems >> Miscellaneous filesystems >> SquashFS 4.0 - Squashed file system support +CONFIG_SQUASHFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_ZLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_LZ4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_XZ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_ZSTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_4K_DEVBLK_SIZE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SQUASHFS_EMBEDDED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE policy<{'amd64': '3', 'arm64': '3', 'armhf': '3', 'ppc64el': '3', 'riscv64': '3', 's390x': '3'}> +# +CONFIG_SQUASHFS_4K_DEVBLK_SIZE note +CONFIG_SQUASHFS mark note + +# Menu: File systems >> Miscellaneous filesystems >> SquashFS 4.0 - Squashed file system support >> Decompressor parallelisation options +CONFIG_SQUASHFS_DECOMP_SINGLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SQUASHFS_DECOMP_MULTI policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU mark note + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SQUASHFS_FILE_DIRECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> Miscellaneous filesystems >> UBIFS file system support +CONFIG_UBIFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_UBIFS_ATIME_SUPPORT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_UBIFS_FS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_UBIFS_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_UBIFS_FS_AUTHENTICATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_UBIFS_FS_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_UBIFS_FS_ZLIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_UBIFS_FS_ZSTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> Native language support +CONFIG_NLS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NLS_DEFAULT policy<{'amd64': '"utf8"', 'arm64': '"utf8"', 'armhf': '"utf8"', 'ppc64el': '"utf8"', 'riscv64': '"utf8"', 's390x': '"utf8"'}> +CONFIG_NLS_CODEPAGE_437 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NLS_CODEPAGE_737 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_775 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_850 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_852 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_855 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_857 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_860 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_861 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_862 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_863 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_864 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_865 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_866 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_869 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_936 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_950 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_932 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_949 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_874 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_1250 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_CODEPAGE_1251 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ASCII policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_7 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_9 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_13 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_14 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_ISO8859_15 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_KOI8_R policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_KOI8_U policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_ROMAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_CELTIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_CENTEURO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_CROATIAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_CYRILLIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_GAELIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_GREEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_ICELAND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_INUIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_ROMANIAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_MAC_TURKISH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NLS_UTF8 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_NLS note + +# Menu: File systems >> Network File Systems +CONFIG_NETWORK_FILESYSTEMS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFSD_V3_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RPCSEC_GSS_KRB5 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SUNRPC_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SUNRPC_XPRT_RDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CODA_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: File systems >> Network File Systems >> Andrew File System support (AFS) +CONFIG_AFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_AFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_AFS_FSCACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AFS_DEBUG_CURSOR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> Network File Systems >> Ceph distributed file system +CONFIG_CEPH_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CEPH_FSCACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CEPH_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CEPH_FS_SECURITY_LABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> Network File Systems >> NFS client support +CONFIG_NFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFS_V2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFS_V3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFS_V3_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_V4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFS_SWAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_FSCACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_USE_LEGACY_DNS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NFS_DISABLE_UDP_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_V4_2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN policy<{'amd64': '"kernel.org"', 'arm64': '"kernel.org"', 'armhf': '"kernel.org"', 'ppc64el': '"kernel.org"', 'riscv64': '"kernel.org"', 's390x': '"kernel.org"'}> +CONFIG_NFS_V4_1_MIGRATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFS_V4_2_READ_PLUS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> Network File Systems >> NFS server support for NFS version 4 +CONFIG_NFSD_V4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD_BLOCKLAYOUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD_SCSILAYOUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD_FLEXFILELAYOUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD_V4_2_INTER_SSC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFSD_V4_SECURITY_LABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_9P_FSCACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_9P_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_9P_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CIFS_STATS2 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CIFS_ALLOW_INSECURE_LEGACY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_UPCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_POSIX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_DEBUG2 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CIFS_DEBUG_DUMP_KEYS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CIFS_DFS_UPCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_SWN_UPCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CIFS_SMB_DIRECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CIFS_FSCACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_CIFS_ALLOW_INSECURE_LEGACY flag + +# Menu: File systems >> Network File Systems >> SMB3 server support (EXPERIMENTAL) +CONFIG_SMB_SERVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SMB_SERVER_SMBDIRECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SMB_SERVER_KERBEROS5 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> OCFS2 file system support +CONFIG_OCFS2_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OCFS2_FS_O2CB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OCFS2_FS_USERSPACE_CLUSTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OCFS2_FS_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_OCFS2_DEBUG_MASKLOG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_OCFS2_DEBUG_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> Overlay filesystem support +CONFIG_OVERLAY_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OVERLAY_FS_REDIRECT_DIR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_OVERLAY_FS_INDEX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_OVERLAY_FS_XINO_AUTO policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_OVERLAY_FS_METACOPY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_OVERLAY_FS_METACOPY flag + +# Menu: File systems >> Pseudo filesystems +CONFIG_PROC_CHILDREN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HUGETLBFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CONFIGFS_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EFIVAR_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +# +CONFIG_CONFIGFS_FS flag +CONFIG_EFIVAR_FS note + +# Menu: File systems >> Pseudo filesystems >> /proc file system support +CONFIG_PROC_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_KCORE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_VMCORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_VMCORE_DEVICE_DUMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_SYSCTL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_PAGE_MONITOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: File systems >> Pseudo filesystems >> Tmpfs virtual memory file system support (former shm fs) +CONFIG_TMPFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TMPFS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TMPFS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TMPFS_INODE64 policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_TMPFS_POSIX_ACL mark note + +# Menu: File systems >> Quota support +CONFIG_QUOTA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PRINT_QUOTA_WARNING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_QUOTA_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_QFMT_V1 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_QFMT_V2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: File systems >> Reiserfs support +CONFIG_REISERFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_REISERFS_CHECK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_REISERFS_PROC_INFO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_REISERFS_FS_XATTR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_REISERFS_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_REISERFS_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: File systems >> The Extended 4 (ext4) filesystem +CONFIG_EXT4_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXT4_USE_FOR_EXT2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXT4_FS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXT4_FS_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EXT4_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: File systems >> XFS filesystem support +CONFIG_XFS_FS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XFS_SUPPORT_V4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XFS_QUOTA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XFS_POSIX_ACL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XFS_RT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XFS_ONLINE_SCRUB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XFS_WARN policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XFS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Firmware Drivers +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'}> +CONFIG_EDD_OFF policy<{'amd64': 'y'}> +CONFIG_FIRMWARE_MEMMAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DMIID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}> +CONFIG_DMI_SYSFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm'}> +CONFIG_ISCSI_IBFT_FIND policy<{'amd64': 'y'}> +CONFIG_ISCSI_IBFT policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_RASPBERRYPI_FIRMWARE policy<{'arm64': 'y'}> +CONFIG_FW_CFG_SYSFS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_FW_CFG_SYSFS_CMDLINE policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_INTEL_STRATIX10_SERVICE policy<{'arm64': 'm'}> +CONFIG_INTEL_STRATIX10_RSU policy<{'arm64': 'm'}> +CONFIG_QCOM_SCM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_SYSFB_SIMPLEFB policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'riscv64': '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_FFA_TRANSPORT policy<{'arm64': 'm'}> +CONFIG_TEE_BNXT_FW policy<{'arm64': 'm'}> +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_IMX_DSP policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_IMX_SCU policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_IMX_SCU_PD policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_MESON_SM policy<{'arm64-generic': 'y'}> +CONFIG_ARM_PSCI_CHECKER policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_ARM_SMCCC_SOC_ID policy<{'arm64': 'y', 'armhf': 'y'}> +# +CONFIG_SYSFB_SIMPLEFB flag + +# Menu: Firmware Drivers >> ARM System Control and Management Interface Protocol + +# Menu: Firmware Drivers >> ARM System Control and Management Interface Protocol >> ARM System Control and Management Interface (SCMI) Message Protocol +CONFIG_ARM_SCMI_PROTOCOL policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_SCMI_TRANSPORT_MAILBOX policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_SCMI_TRANSPORT_SMC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_SCMI_TRANSPORT_VIRTIO policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_SCMI_POWER_DOMAIN policy<{'arm64': 'm', 'armhf': 'm'}> + +# Menu: Firmware Drivers >> EFI (Extensible Firmware Interface) Support +CONFIG_EFI_VARS policy<{'amd64': 'y'}> +CONFIG_EFI_VARS_PSTORE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n'}> +CONFIG_EFI_RUNTIME_MAP policy<{'amd64': 'y'}> +CONFIG_EFI_FAKE_MEMMAP policy<{'amd64': 'n'}> +CONFIG_EFI_SOFT_RESERVE policy<{'amd64': 'y', 'arm64': 'y'}> +CONFIG_EFI_ARMSTUB_DTB_LOADER policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y'}> +CONFIG_EFI_BOOTLOADER_CONTROL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_EFI_CAPSULE_LOADER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_EFI_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'riscv64': 'm'}> +CONFIG_APPLE_PROPERTIES policy<{'amd64': 'y'}> +CONFIG_RESET_ATTACK_MITIGATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_EFI_RCI2_TABLE policy<{'amd64': 'y'}> +CONFIG_EFI_DISABLE_PCI_DMA policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n'}> +# +CONFIG_EFI_VARS mark note note + +# Menu: Firmware Drivers >> Google Firmware Drivers +CONFIG_GOOGLE_FIRMWARE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Firmware Drivers >> Google Firmware Drivers >> Coreboot Table Access + +# Menu: Firmware Drivers >> Tegra firmware driver +CONFIG_TEGRA_IVC policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_TEGRA_BPMP policy<{'arm64': 'y', 'armhf': '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_KPROBES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_JUMP_LABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_STATIC_KEYS_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n', 'armhf': '-'}> +CONFIG_STATIC_CALL_SELFTEST policy<{'amd64': 'n'}> +CONFIG_SECCOMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECCOMP_CACHE_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_STACKPROTECTOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_STACKPROTECTOR_STRONG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_ARCH_MMAP_RND_BITS policy<{'amd64': '28', 'arm64': '18', 'armhf': '8', 'ppc64el': '28', 'riscv64': '18'}> +CONFIG_ARCH_MMAP_RND_COMPAT_BITS policy<{'amd64': '8', 'arm64': '11', 'ppc64el': '8'}> +CONFIG_COMPAT_32BIT_TIME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VMAP_STACK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_RANDOMIZE_KSTACK_OFFSET policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}> +CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}> +CONFIG_STRICT_KERNEL_RWX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_STRICT_MODULE_RWX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LOCK_EVENT_COUNTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FPROBE policy<{'amd64': 'y'}> +# +CONFIG_VMAP_STACK mark +CONFIG_SECCOMP mark +CONFIG_JUMP_LABEL flag +CONFIG_STRICT_KERNEL_RWX mark +CONFIG_STRICT_MODULE_RWX mark + +# Menu: General architecture-dependent options >> Architecture: arm + +# Menu: General architecture-dependent options >> Architecture: arm64 +CONFIG_SHADOW_CALL_STACK policy<{'arm64': 'y'}> + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) +CONFIG_LTO_NONE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) >> Architecture: arm + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) >> Architecture: arm64 + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) >> Architecture: powerpc + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) >> Architecture: s390 + +# Menu: General architecture-dependent options >> Link Time Optimization (LTO) >> Architecture: x86 + +# Menu: General setup +CONFIG_COMPILE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_WERROR policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LOCALVERSION policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_LOCALVERSION_AUTO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BUILD_SALT policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_DEFAULT_INIT policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_DEFAULT_HOSTNAME policy<{'amd64': '"(none)"', 'arm64': '"(none)"', 'armhf': '"(none)"', 'ppc64el': '"(none)"', 'riscv64': '"(none)"', 's390x': '"(none)"'}> +CONFIG_VERSION_SIGNATURE policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_SWAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSVIPC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_POSIX_MQUEUE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WATCH_QUEUE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CROSS_MEMORY_ATTACH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_USELIB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AUDIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCHED_CORE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y', 'armhf': '-'}> +CONFIG_CPU_ISOLATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IKCONFIG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IKHEADERS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_LOG_BUF_SHIFT policy<{'amd64': '18', 'arm64': '18', 'armhf': '17', 'ppc64el': '18', 'riscv64': '18', 's390x': '18'}> +CONFIG_LOG_CPU_MAX_BUF_SHIFT policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'ppc64el': '12', 'riscv64': '12', 's390x': '12'}> +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT policy<{'amd64': '13', 'arm64': '13', 'armhf': '13', 'ppc64el': '13', 'riscv64': '13', 's390x': '13'}> +CONFIG_PRINTK_INDEX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NUMA_BALANCING policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CHECKPOINT_RESTORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCHED_AUTOGROUP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSFS_DEPRECATED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RELAY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BOOT_CONFIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LD_DEAD_CODE_DATA_ELIMINATION policy<{'ppc64el': 'n'}> +CONFIG_USERFAULTFD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EMBEDDED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_COMPAT_BRK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SLAB_MERGE_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLAB_FREELIST_RANDOM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLAB_FREELIST_HARDENED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SHUFFLE_PAGE_ALLOCATOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLUB_CPU_PARTIAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROFILING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SYSFS_DEPRECATED mark note +CONFIG_COMPAT_BRK mark note +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED note +CONFIG_LOCALVERSION_AUTO mark note + +# Menu: General setup >> BPF subsystem +CONFIG_BPF_LSM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPF_SYSCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPF_JIT_ALWAYS_ON policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPF_UNPRIV_DEFAULT_OFF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPF_JIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_BPF_JIT_ALWAYS_ON flag +CONFIG_BPF_UNPRIV_DEFAULT_OFF mark note + +# Menu: General setup >> BPF subsystem >> Preload BPF file system with kernel specific program and map iterators +CONFIG_BPF_PRELOAD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General setup >> CPU/Task time and stats accounting +CONFIG_IRQ_TIME_ACCOUNTING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_BSD_PROCESS_ACCT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BSD_PROCESS_ACCT_V3 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TASKSTATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TASK_DELAY_ACCT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TASK_XACCT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TASK_IO_ACCOUNTING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PSI_DEFAULT_DISABLED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +# +CONFIG_PSI_DEFAULT_DISABLED note + +# Menu: General setup >> CPU/Task time and stats accounting >> Cputime accounting +CONFIG_TICK_CPU_ACCOUNTING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'riscv64': 'n'}> + +# Menu: General setup >> Choose SLAB allocator +CONFIG_SLAB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SLUB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLOB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General setup >> Compiler optimization level +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CC_OPTIMIZE_FOR_SIZE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General setup >> Configure standard kernel features (expert users) +CONFIG_EXPERT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UID16 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 's390x': 'y'}> +CONFIG_MULTIUSER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SGETMASK_SYSCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYSFS_SYSCALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FHANDLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_POSIX_TIMERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PRINTK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ELF_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PCSPKR_PLATFORM policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_BASE_FULL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FUTEX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EPOLL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SIGNALFD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TIMERFD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EVENTFD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SHMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IO_URING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ADVISE_SYSCALLS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MEMBARRIER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KALLSYMS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KALLSYMS_ALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KCMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RSEQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_RSEQ policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PC104 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_VM_EVENT_COUNTERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SLUB_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_FHANDLE mark note + +# Menu: General setup >> Control Group support +CONFIG_CGROUPS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MEMCG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BLK_CGROUP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_PIDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_RDMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_FREEZER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_HUGETLB policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CPUSETS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROC_PID_CPUSET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_DEVICE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_CPUACCT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_PERF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_BPF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_MISC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General setup >> Control Group support >> CPU controller +CONFIG_CGROUP_SCHED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FAIR_GROUP_SCHED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CFS_BANDWIDTH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RT_GROUP_SCHED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_UCLAMP_TASK_GROUP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +# +CONFIG_RT_GROUP_SCHED mark note note note + +# Menu: General setup >> IRQ subsystem +CONFIG_SPARSE_IRQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_GENERIC_IRQ_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_GZIP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_BZIP2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_LZMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_XZ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_LZ4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_RD_ZSTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_INITRAMFS_PRESERVE_MTIME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_PERF_USE_VMALLOC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: General setup >> Kernel compression mode +CONFIG_KERNEL_GZIP policy<{'amd64': 'n', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'n'}> +CONFIG_KERNEL_BZIP2 policy<{'amd64': 'n', 's390x': 'n'}> +CONFIG_KERNEL_LZMA policy<{'amd64': 'n', 'armhf': 'n', 's390x': 'n'}> +CONFIG_KERNEL_XZ policy<{'amd64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}> +CONFIG_KERNEL_LZO policy<{'amd64': 'n', 'armhf': 'n', 's390x': 'n'}> +CONFIG_KERNEL_LZ4 policy<{'amd64': 'n', 'armhf': 'n', 's390x': 'n'}> +CONFIG_KERNEL_ZSTD policy<{'amd64': 'y', 's390x': 'y'}> +CONFIG_KERNEL_UNCOMPRESSED policy<{'s390x': 'n'}> +# +CONFIG_KERNEL_ZSTD mark note + +# Menu: General setup >> Namespaces support +CONFIG_NAMESPACES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UTS_NS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TIME_NS policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPC_NS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_USER_NS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PID_NS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_NS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: General setup >> Preemption Model +CONFIG_PREEMPT_NONE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_PREEMPT_VOLUNTARY policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_PREEMPT policy<{'amd64-generic': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_PREEMPT_NONE note + +# Menu: General setup >> RCU Subsystem +# XXX + +# Menu: General setup >> RCU Subsystem >> Make expert-level adjustments to RCU configuration +CONFIG_RCU_EXPERT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_RCU_EXPERT flag + +# Menu: General setup >> Scheduler features +CONFIG_UCLAMP_TASK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_UCLAMP_BUCKETS_COUNT policy<{'amd64': '5', 'arm64': '5', 'armhf': '5', 'ppc64el': '5'}> +# +CONFIG_UCLAMP_TASK flag + +# Menu: General setup >> Timers subsystem +CONFIG_NO_HZ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CONTEXT_TRACKING_FORCE policy<{'amd64': '-', 'arm64': '-', 'armhf': '-', 'ppc64el': '-', 'riscv64': '-', 's390x': '-'}> +CONFIG_HIGH_RES_TIMERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_CONTEXT_TRACKING_FORCE note mark + +# Menu: General setup >> Timers subsystem >> Timer tick handling +CONFIG_HZ_PERIODIC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NO_HZ_IDLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NO_HZ_FULL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +# +CONFIG_NO_HZ_IDLE note + +# Menu: I/O subsystem >> Architecture: s390 +CONFIG_QDIO policy<{'s390x': 'm'}> +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 policy<{'s390x': '512'}> +# +CONFIG_PCI_NR_FUNCTIONS mark note + +# Menu: Kernel features +CONFIG_RISCV_SBI_V01 policy<{'riscv64': 'n'}> + +# Menu: Kernel hacking +CONFIG_DEBUG_TIMEKEEPING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_IRQFLAGS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_STACKTRACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_WARN_ALL_UNSEEDED_RANDOM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PROVIDE_OHCI1394_DMA_INIT policy<{'amd64': 'n'}> +CONFIG_STRICT_DEVMEM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IO_STRICT_DEVMEM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_STRICT_DEVMEM mark + +# Menu: Kernel hacking >> $(SRCARCH) Debugging +CONFIG_DEBUG_ENTRY policy<{'amd64': 'n', 's390x': 'n'}> +CONFIG_PID_IN_CONTEXTIDR policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_EARLY_PRINTK policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_DEBUG_WX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Architecture: arm +CONFIG_DEBUG_USER policy<{'armhf': 'n'}> +CONFIG_DEBUG_VF_UART_PORT policy<{'armhf': '1'}> +CONFIG_ARM_KPROBES_TEST policy<{'armhf': 'm'}> +CONFIG_ARM_PTDUMP_DEBUGFS policy<{'armhf': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Architecture: arm64 +CONFIG_DEBUG_EFI policy<{'arm64': 'n'}> +CONFIG_ARM64_RELOC_TEST policy<{'arm64': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Architecture: powerpc +CONFIG_PPC_DISABLE_WERROR policy<{'ppc64el': 'n'}> +CONFIG_PRINT_STACK_DEPTH policy<{'ppc64el': '64'}> +CONFIG_HCALL_STATS policy<{'ppc64el': 'n'}> +CONFIG_PPC_EMULATED_STATS policy<{'ppc64el': 'n'}> +CONFIG_CODE_PATCHING_SELFTEST policy<{'ppc64el': 'n'}> +CONFIG_JUMP_LABEL_FEATURE_CHECKS policy<{'ppc64el': 'y'}> +CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG policy<{'ppc64el': 'n'}> +CONFIG_FTR_FIXUP_SELFTEST policy<{'ppc64el': 'n'}> +CONFIG_MSI_BITMAP_SELFTEST policy<{'ppc64el': 'n'}> +CONFIG_PPC_IRQ_SOFT_MASK_DEBUG policy<{'ppc64el': 'n'}> +CONFIG_PPC_RFI_SRR_DEBUG policy<{'ppc64el': 'n'}> +CONFIG_BOOTX_TEXT policy<{'ppc64el': 'n'}> +CONFIG_PPC_EARLY_DEBUG policy<{'ppc64el': 'n'}> +CONFIG_PPC_FAST_ENDIAN_SWITCH policy<{'ppc64el': 'n'}> +# +CONFIG_PPC_DISABLE_WERROR flag + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Architecture: s390 +CONFIG_CIO_INJECT policy<{'s390x': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Architecture: x86 +CONFIG_X86_VERBOSE_BOOTUP policy<{'amd64': 'n'}> +CONFIG_EFI_PGT_DUMP policy<{'amd64': 'n'}> +CONFIG_PUNIT_ATOM_DEBUG policy<{'amd64': 'm'}> +CONFIG_EARLY_PRINTK_DBGP policy<{'amd64': 'y'}> +CONFIG_EARLY_PRINTK_USB_XDBC policy<{'amd64': 'y'}> +CONFIG_DEBUG_TLBFLUSH policy<{'amd64': 'n'}> +CONFIG_IOMMU_DEBUG policy<{'amd64': 'n'}> +CONFIG_X86_DECODER_SELFTEST policy<{'amd64': 'n'}> +CONFIG_DEBUG_BOOT_PARAMS policy<{'amd64': 'n'}> +CONFIG_CPA_DEBUG policy<{'amd64': 'n'}> +CONFIG_DEBUG_NMI_SELFTEST policy<{'amd64': 'n'}> +CONFIG_X86_DEBUG_FPU policy<{'amd64': 'y'}> +# +CONFIG_PUNIT_ATOM_DEBUG flag +CONFIG_X86_DECODER_SELFTEST flag +CONFIG_X86_DEBUG_FPU flag + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Choose kernel unwinder +CONFIG_UNWINDER_FRAME_POINTER policy<{'amd64': 'y', 'armhf': 'y'}> +# +CONFIG_UNWINDER_FRAME_POINTER mark note + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Choose kernel unwinder >> Architecture: arm + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Choose kernel unwinder >> Architecture: x86 +CONFIG_UNWINDER_ORC policy<{'amd64': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> CoreSight Tracing Support +CONFIG_CORESIGHT policy<{'arm64': 'n', 'armhf': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> CoreSight Tracing Support >> CoreSight Link and Sink drivers + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Early debugging console >> Architecture: powerpc + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> IO delay type >> Architecture: x86 +CONFIG_IO_DELAY_0X80 policy<{'amd64': 'n'}> +CONFIG_IO_DELAY_0XED policy<{'amd64': 'y'}> +CONFIG_IO_DELAY_UDELAY policy<{'amd64': 'n'}> +CONFIG_IO_DELAY_NONE policy<{'amd64': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) 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 >> $(SRCARCH) Debugging >> Kernel low-level debugging functions (read help!) + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Kernel low-level debugging functions (read help!) >> Architecture: arm +CONFIG_DEBUG_LL policy<{'armhf': 'n'}> + +# Menu: Kernel hacking >> $(SRCARCH) Debugging >> Kernel low-level debugging functions (read help!) >> Kernel low-level debugging port >> Architecture: arm + +# Menu: Kernel hacking >> Compile-time checks and compiler options +CONFIG_FRAME_WARN policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'ppc64el': '2048', 'riscv64': '1024', 's390x': '1024'}> +CONFIG_STRIP_ASM_SYMS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_READABLE_ASM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_HEADERS_INSTALL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_SECTION_MISMATCH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SECTION_MISMATCH_WARN_ONLY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FRAME_POINTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_STACK_VALIDATION policy<{'amd64': 'y'}> +CONFIG_VMLINUX_MAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_FORCE_WEAK_PER_CPU policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_STACK_VALIDATION mark note + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_INFO_REDUCED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_INFO_COMPRESSED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_INFO_SPLIT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_INFO_BTF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MODULE_ALLOW_BTF_MISMATCH policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GDB_SCRIPTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_DEBUG_INFO mark note +CONFIG_DEBUG_INFO_SPLIT note note +CONFIG_DEBUG_INFO_BTF flag note + +# Menu: Kernel hacking >> Compile-time checks and compiler options >> Compile the kernel with debug info >> DWARF version +CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_INFO_DWARF4 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_INFO_DWARF5 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Kernel hacking >> Debug Oops, Lockups and Hangs +CONFIG_PANIC_ON_OOPS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PANIC_TIMEOUT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '10', 'riscv64': '0', 's390x': '0'}> +CONFIG_SOFTLOCKUP_DETECTOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_HARDLOCKUP_DETECTOR policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC policy<{'amd64': 'n', 'ppc64el': 'n'}> +CONFIG_DETECT_HUNG_TASK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT policy<{'amd64': '120', 'arm64': '120', 'armhf': '120', 'ppc64el': '120', 'riscv64': '120', 's390x': '120'}> +CONFIG_BOOTPARAM_HUNG_TASK_PANIC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_WQ_WATCHDOG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_LOCKUP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_PANIC_ON_OOPS note + +# Menu: Kernel hacking >> Debug kernel data structures +CONFIG_BUG_ON_DATA_CORRUPTION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_LIST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_PLIST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_SG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_NOTIFIERS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_BUG_ON_DATA_CORRUPTION flag + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments +CONFIG_MAGIC_SYSRQ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE policy<{'amd64': '0x01b6', 'arm64': '0x01b6', 'armhf': '0x01b6', 'ppc64el': '0x01b6', 'riscv64': '0x01b6', 's390x': '0x01b6'}> +CONFIG_MAGIC_SYSRQ_SERIAL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE policy<{'amd64': '""', 'arm64': '""', 'armhf': '""', 'ppc64el': '""', 'riscv64': '""', 's390x': '""'}> +CONFIG_DEBUG_FS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> Debugfs default access +CONFIG_DEBUG_FS_ALLOW_ALL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_FS_DISALLOW_MOUNT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_FS_ALLOW_NONE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> KCSAN: dynamic data race detector + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> KCSAN: dynamic data race detector >> Strict data-race checking + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> KGDB: kernel debugger +CONFIG_KGDB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KGDB_HONOUR_BLOCKLIST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KGDB_SERIAL_CONSOLE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KGDB_TESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_KGDB_LOW_LEVEL_TRAP policy<{'amd64': 'y'}> +# +CONFIG_KGDB flag +CONFIG_KGDB_SERIAL_CONSOLE note + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> KGDB: kernel debugger >> KGDB_KDB: include kdb frontend for kgdb +CONFIG_KGDB_KDB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KDB_DEFAULT_ENABLE policy<{'amd64': '0x1', 'arm64': '0x1', 'armhf': '0x1', 'ppc64el': '0x1', 'riscv64': '0x1'}> +CONFIG_KDB_KEYBOARD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_KDB_CONTINUE_CATASTROPHIC policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> + +# Menu: Kernel hacking >> Generic Kernel Debugging Instruments >> Undefined behaviour sanity checker +CONFIG_UBSAN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_UBSAN_TRAP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}> +CONFIG_UBSAN mark note + +# Menu: Kernel hacking >> Kernel Testing and Coverage +CONFIG_MEMTEST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_HYPERV_TESTING policy<{'amd64': 'n', 'arm64': 'n'}> + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> Code coverage for fuzzing + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> Fault-injection framework +CONFIG_FAULT_INJECTION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> Fault-injection framework >> Debugfs entries for fault-injection capabilities + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> KUnit - Enable support for unit tests +CONFIG_KUNIT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> Notifier error injection +CONFIG_NOTIFIER_ERROR_INJECTION policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PM_NOTIFIER_ERROR_INJECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_OF_RECONFIG_NOTIFIER_ERROR_INJECT policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_NETDEV_NOTIFIER_ERROR_INJECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Kernel Testing and Coverage >> Runtime Testing +CONFIG_RUNTIME_TESTING_MENU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LKDTM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_MIN_HEAP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_SORT policy<{'amd64': '-', 'arm64': '-', 'armhf': '-', 'ppc64el': '-', 's390x': '-'}> +CONFIG_TEST_DIV64 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BACKTRACE_SELF_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RBTREE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_REED_SOLOMON_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_INTERVAL_TREE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PERCPU_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ATOMIC64_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ASYNC_RAID6_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_HEXDUMP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_STRING_HELPERS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_STRSCPY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_KSTRTOX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_PRINTF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_SCANF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_BITMAP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_UUID policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_XARRAY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_RHASHTABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_IDA policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_PARMAN policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_LKM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_BITOPS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_VMALLOC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_USER_COPY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_BPF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TEST_BLACKHOLE_DEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_FIND_BIT_BENCHMARK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_FIRMWARE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_SYSCTL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_UDELAY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_STATIC_KEYS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_KMOD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_MEMCAT_P policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_LIVEPATCH policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}> +CONFIG_TEST_OBJAGG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_MEMINIT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_HMM policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n'}> +CONFIG_TEST_FREE_PAGES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TEST_FPU policy<{'amd64': 'n'}> +CONFIG_TEST_CLOCKSOURCE_WATCHDOG policy<{'amd64': 'n'}> +CONFIG_STRING_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_RUNTIME_TESTING_MENU flag +CONFIG_LKDTM flag flag +CONFIG_TEST_LIST_SORT flag +CONFIG_TEST_SORT flag +CONFIG_KPROBES_SANITY_TEST flag +CONFIG_BACKTRACE_SELF_TEST flag +CONFIG_RBTREE_TEST flag +CONFIG_INTERVAL_TREE_TEST flag +CONFIG_PERCPU_TEST flag +CONFIG_ATOMIC64_SELFTEST flag +CONFIG_ASYNC_RAID6_TEST flag +CONFIG_TEST_HEXDUMP flag +CONFIG_TEST_STRING_HELPERS flag +CONFIG_TEST_STRSCPY flag +CONFIG_TEST_KSTRTOX flag +CONFIG_TEST_PRINTF flag +CONFIG_TEST_BITMAP flag +CONFIG_TEST_UUID flag +CONFIG_TEST_XARRAY flag +CONFIG_TEST_RHASHTABLE flag +CONFIG_TEST_HASH flag +CONFIG_TEST_IDA flag +CONFIG_TEST_PARMAN flag +CONFIG_TEST_LKM flag +CONFIG_TEST_BITOPS flag +CONFIG_TEST_VMALLOC flag +CONFIG_TEST_USER_COPY flag +CONFIG_TEST_BPF flag +CONFIG_TEST_BLACKHOLE_DEV flag note +CONFIG_FIND_BIT_BENCHMARK flag +CONFIG_TEST_FIRMWARE flag +CONFIG_TEST_SYSCTL flag +CONFIG_TEST_UDELAY flag +CONFIG_TEST_STATIC_KEYS flag +CONFIG_TEST_KMOD flag +CONFIG_TEST_MEMCAT_P flag +CONFIG_TEST_LIVEPATCH flag +CONFIG_TEST_OBJAGG flag +CONFIG_TEST_STACKINIT flag +CONFIG_TEST_MEMINIT flag +CONFIG_TEST_HMM flag +CONFIG_TEST_FPU flag + +# Menu: Kernel hacking >> Kernel debugging +CONFIG_DEBUG_KERNEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_MISC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_SHIRQ policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_PREEMPT policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_DEBUG_KOBJECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_CREDENTIALS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_WQ_FORCE_RR_CPU policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CPU_HOTPLUG_STATE_CONTROL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LATENCYTOP policy<{'amd64-generic': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CPU_IBPB_ENTRY policy<{'amd64': 'y'}> +CONFIG_CPU_IBRS_ENTRY policy<{'amd64': 'y'}> +CONFIG_CPU_UNRET_ENTRY policy<{'amd64': 'y'}> +CONFIG_SPECULATION_MITIGATIONS policy<{'amd64': 'y'}> +CONFIG_RETHUNK policy<{'amd64': 'y'}> +# +CONFIG_LATENCYTOP mark note note + +# Menu: Kernel hacking >> Lock Debugging (spinlocks, mutexes, etc...) +CONFIG_PROVE_LOCKING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LOCK_STAT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_RT_MUTEXES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_SPINLOCK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_MUTEXES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_WW_MUTEX_SLOWPATH policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_RWSEMS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_LOCK_ALLOC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_ATOMIC_SLEEP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_LOCKING_API_SELFTESTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LOCK_TORTURE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_WW_MUTEX_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SCF_TORTURE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CSD_LOCK_WAIT_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Memory Debugging +CONFIG_PAGE_EXTENSION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_PAGEALLOC policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PAGE_OWNER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PAGE_POISONING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_PAGE_REF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_RODATA_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PTDUMP_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_SLUB_DEBUG_ON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SLUB_STATS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_STACK_USAGE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SCHED_STACK_END_CHECK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_VM_PGTABLE policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_VIRTUAL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_DEBUG_MEMORY_INIT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MEMORY_NOTIFIER_ERROR_INJECT policy<{'amd64': 'm', 'arm64': 'm', 'ppc64el': 'm', 's390x': 'm'}> +CONFIG_DEBUG_PER_CPU_MAPS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_KMAP_LOCAL policy<{'armhf': 'n'}> +CONFIG_DEBUG_HIGHMEM policy<{'armhf': 'n'}> +CONFIG_DEBUG_STACKOVERFLOW policy<{'ppc64el': 'n'}> +# +CONFIG_PAGE_POISONING mark note + +# Menu: Kernel hacking >> Memory Debugging >> Debug VM +CONFIG_DEBUG_VM policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Memory Debugging >> Debug object operations +CONFIG_DEBUG_OBJECTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> Memory Debugging >> KASAN: runtime memory debugger +CONFIG_KASAN policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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 >> KFENCE: low-overhead sampling-based memory safety error detector +CONFIG_KFENCE policy<{'amd64': 'y', 'arm64': 'y', 'riscv64': 'y', 's390x': 'y', 'armhf': 'y'}> +CONFIG_KFENCE_STATIC_KEYS policy<{'amd64': 'n', 'arm64': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_KFENCE_DEFERRABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_KFENCE_SAMPLE_INTERVAL policy<{'amd64': '0', 'arm64': '0', 'riscv64': '0', 's390x': '0', 'armhf': '0'}> +CONFIG_KFENCE_NUM_OBJECTS policy<{'amd64': '255', 'arm64': '255', 'riscv64': '255', 's390x': '255', 'armhf': '255'}> +CONFIG_KFENCE_STRESS_TEST_FAULTS policy<{'amd64': '0', 'arm64': '0', 'riscv64': '0', 's390x': '0', 'armhf': '0'}> + +CONFIG_KFENCE_STATIC_KEYS mark note + +# Menu: Kernel hacking >> Memory Debugging >> Kernel memory leak detector +CONFIG_DEBUG_KMEMLEAK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> RCU Debugging +CONFIG_RCU_SCALE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RCU_TORTURE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RCU_REF_SCALE_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RCU_CPU_STALL_TIMEOUT policy<{'amd64': '60', 'arm64': '60', 'armhf': '60', 'ppc64el': '60', 'riscv64': '60', 's390x': '60'}> +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0', 's390x': '0'}> +CONFIG_RCU_TRACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RCU_EQS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_RCU_CPU_STALL_TIMEOUT flag + +# Menu: Kernel hacking >> Sample kernel code +CONFIG_SAMPLES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SAMPLE_AUXDISPLAY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_TRACE_EVENTS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_TRACE_PRINTK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SAMPLE_FTRACE_DIRECT policy<{'amd64': 'm', 's390x': 'n'}> +CONFIG_SAMPLE_TRACE_ARRAY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SAMPLE_KOBJECT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_KPROBES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_HW_BREAKPOINT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_SAMPLE_KFIFO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_KDB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_SAMPLE_QMI_CLIENT policy<{'arm64': 'n', 'armhf': 'n'}> +CONFIG_SAMPLE_RPMSG_CLIENT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_SAMPLE_LIVEPATCH policy<{'amd64': 'n', 'ppc64el': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_CONFIGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_VFIO_MDEV_MTTY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_VFIO_MDEV_MDPY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_VFIO_MDEV_MDPY_FB policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_VFIO_MDEV_MBOCHS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SAMPLE_WATCHDOG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_SAMPLE_TRACE_PRINTK mark note + +# Menu: Kernel hacking >> Scheduler Debugging +CONFIG_SCHED_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCHEDSTATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Kernel hacking >> Tracers +CONFIG_FTRACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BOOTTIME_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_STACK_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IRQSOFF_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PREEMPT_TRACER policy<{'amd64': 'n', 'arm64': 'n'}> +CONFIG_SCHED_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HWLAT_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_OSNOISE_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TIMERLAT_TRACER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MMIOTRACE policy<{'amd64': 'y'}> +CONFIG_FTRACE_SYSCALLS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TRACER_SNAPSHOT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BLK_DEV_IO_TRACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KPROBE_EVENTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KPROBE_EVENTS_ON_NOTRACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_UPROBE_EVENTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPF_KPROBE_OVERRIDE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYNTH_EVENTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HIST_TRIGGERS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_TRACE_EVENT_INJECT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TRACEPOINT_BENCHMARK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RING_BUFFER_BENCHMARK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TRACE_EVAL_MAP_FILE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FTRACE_STARTUP_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RING_BUFFER_STARTUP_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MMIOTRACE_TEST policy<{'amd64': 'n'}> +CONFIG_PREEMPTIRQ_DELAY_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SYNTH_EVENT_GEN_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_KPROBE_EVENT_GEN_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_HIST_TRIGGERS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 's390x': 'n'}> +# +CONFIG_FTRACE_STARTUP_TEST flag +CONFIG_MMIOTRACE_TEST flag +CONFIG_RING_BUFFER_BENCHMARK flag +CONFIG_RING_BUFFER_STARTUP_TEST flag +CONFIG_TRACE_EVAL_MAP_FILE flag + +# Menu: Kernel hacking >> Tracers >> Branch Profiling +CONFIG_BRANCH_PROFILE_NONE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PROFILE_ANNOTATED_BRANCHES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_PROFILE_ALL_BRANCHES policy<{'riscv64': 'n'}> + +# Menu: Kernel hacking >> Tracers >> Kernel Function Tracer +CONFIG_FUNCTION_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FUNCTION_GRAPH_TRACER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DYNAMIC_FTRACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FUNCTION_PROFILER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FTRACE_RECORD_RECURSION policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Kernel hacking >> printk and dmesg options +CONFIG_PRINTK_TIME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PRINTK_CALLER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_STACKTRACE_BUILD_ID policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CONSOLE_LOGLEVEL_DEFAULT policy<{'amd64': '7', 'arm64': '7', 'armhf': '7', 'ppc64el': '7', 'riscv64': '7', 's390x': '7'}> +CONFIG_CONSOLE_LOGLEVEL_QUIET policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'ppc64el': '4', 'riscv64': '4', 's390x': '4'}> +CONFIG_MESSAGE_LOGLEVEL_DEFAULT policy<{'amd64': '4', 'arm64': '4', 'armhf': '4', 'ppc64el': '4', 'riscv64': '4', 's390x': '4'}> +CONFIG_BOOT_PRINTK_DELAY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_DYNAMIC_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DYNAMIC_DEBUG_CORE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYMBOLIC_ERRNAME policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEBUG_BUGVERBOSE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Library routines +CONFIG_RAID6_PQ_BENCHMARK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PACKING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CORDIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_PRIME_NUMBERS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_INDIRECT_PIO policy<{'arm64': 'y'}> +CONFIG_CRC_CCITT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC16 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC_T10DIF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC_ITU_T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_CRC32 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC32_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRC64 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRC7 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'y', 's390x': 'm'}> +CONFIG_LIBCRC32C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CRC8 policy<{'amd64': 'm', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RANDOM32_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZLIB_DFLTCC policy<{'s390x': 'y'}> +CONFIG_DMA_RESTRICTED_POOL policy<{'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'y', 'armhf': '-', 'riscv64': 'y'}> +CONFIG_DMA_API_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DMA_MAP_BENCHMARK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CPUMASK_OFFSTACK policy<{'amd64': 'y'}> +CONFIG_GLOB_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IRQ_POLL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PARMAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OBJAGG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_ZLIB_DFLTCC mark note + +# Menu: Library routines >> CRC32 implementation +CONFIG_CRC32_SLICEBY8 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CRC32_SLICEBY4 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRC32_SARWATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CRC32_BIT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Library routines >> DMA Contiguous Memory Allocator +CONFIG_DMA_CMA policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_DMA_PERNUMA_CMA policy<{'arm64': 'y', 'armhf': 'n', 'riscv64': 'y', 's390x': '-'}> +CONFIG_CMA_SIZE_MBYTES policy<{'arm64': '32', 'armhf': '32', 'riscv64': '32'}> +CONFIG_CMA_ALIGNMENT policy<{'arm64': '8', 'armhf': '8', 'riscv64': '8'}> +# +CONFIG_DMA_CMA mark note note +CONFIG_CMA_SIZE_MBYTES mark note + +# Menu: Library routines >> DMA Contiguous Memory Allocator >> Selected region size +CONFIG_CMA_SIZE_SEL_MBYTES policy<{'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_CMA_SIZE_SEL_PERCENTAGE policy<{'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CMA_SIZE_SEL_MIN policy<{'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CMA_SIZE_SEL_MAX policy<{'arm64': 'n', 'armhf': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Library routines >> Select compiled-in fonts +CONFIG_FONTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_8x8 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_8x16 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_6x11 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_7x14 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_PEARL_8x8 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_ACORN_8x8 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_MINI_4x6 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_6x10 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_10x18 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_SUN8x16 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_SUN12x22 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FONT_TER16x32 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FONT_6x8 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Library routines >> XZ decompression support +CONFIG_XZ_DEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XZ_DEC_X86 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_POWERPC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_IA64 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_ARM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_ARMTHUMB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_SPARC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_XZ_DEC_TEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +# +CONFIG_XZ_DEC note flag + +# Menu: Memory Management options +CONFIG_SPARSEMEM_VMEMMAP policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MEMORY_HOTPLUG policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'n', 's390x': 'n'}> +CONFIG_MEMORY_HOTREMOVE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_BALLOON_COMPACTION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_COMPACTION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PAGE_REPORTING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MIGRATION policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BOUNCE policy<{'armhf': 'y'}> +CONFIG_KSM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEFAULT_MMAP_MIN_ADDR policy<{'amd64': '65536', 'arm64': '32768', 'armhf': '32768', 'ppc64el': '65536', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FRONTSWAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MEM_SOFT_DIRTY policy<{'amd64': 'y', 'ppc64el': 'n', 's390x': 'y'}> +CONFIG_ZPOOL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZBUD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_Z3FOLD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ZSMALLOC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZSMALLOC_STAT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEFERRED_STRUCT_PAGE_INIT policy<{'amd64': 'n', 'arm64': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IDLE_PAGE_TRACKING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZONE_DMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 's390x': 'y'}> +CONFIG_ZONE_DMA32 policy<{'amd64': 'y', 'arm64': 'y', 'riscv64': 'y'}> +CONFIG_ZONE_DEVICE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +CONFIG_DEVICE_PRIVATE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y'}> +CONFIG_PERCPU_STATS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_GUP_TEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_READ_ONLY_THP_FOR_FS policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_ZONE_DMA note +CONFIG_DEFAULT_MMAP_MIN_ADDR mark note note +CONFIG_TRANSPARENT_HUGEPAGE flag +CONFIG_MEM_SOFT_DIRTY flag +CONFIG_IDLE_PAGE_TRACKING flag note +CONFIG_PERCPU_STATS flag +CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE mark note note + +# Menu: Memory Management options >> Compressed cache for swap pages (EXPERIMENTAL) +CONFIG_ZSWAP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZSWAP_DEFAULT_ON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Memory Management options >> Compressed cache for swap pages (EXPERIMENTAL) >> Compressed cache for swap pages default allocator +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Memory Management options >> Compressed cache for swap pages (EXPERIMENTAL) >> Compressed cache for swap pages default compressor +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Memory Management options >> Contiguous Memory Allocator +CONFIG_CMA policy<{'amd64': 'n', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CMA_DEBUG policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CMA_DEBUGFS policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CMA_SYSFS policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CMA_AREAS policy<{'arm64': '7', 'armhf': '7', 'ppc64el': '7', 'riscv64': '7', 's390x': '7'}> +# +CONFIG_CMA mark note note + +# Menu: Memory Management options >> Data Access Monitoring +CONFIG_DAMON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Memory Management options >> Memory model +CONFIG_FLATMEM_MANUAL policy<{'armhf': 'n'}> +CONFIG_SPARSEMEM_MANUAL policy<{'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Memory Management options >> Transparent Hugepage Support sysfs defaults +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS policy<{'amd64': 'n', 'arm64': 'n', 'armhf-generic-lpae': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE policy<{'amd64': 'y', 'arm64': 'y', 'armhf-generic-lpae': 'y', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Memory setup >> Architecture: s390 +CONFIG_MAX_PHYSMEM_BITS policy<{'s390x': '46'}> + +# Menu: Networking support +CONFIG_NET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AF_KCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MCTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_CEPH_LIB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CEPH_LIB_PRETTYDEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CEPH_LIB_USE_DNS_RESOLVER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PSAMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_IFE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_LWTUNNEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LWTUNNEL_BPF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FAILOVER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_ETHTOOL_NETLINK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Networking support >> Amateur Radio support +CONFIG_HAMRADIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Networking support >> Amateur Radio support >> Amateur Radio AX.25 Level 2 protocol +CONFIG_AX25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_AX25_DAMA_SLAVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_NETROM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ROSE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6PACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BPQETHER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BAYCOM_SER_FDX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BAYCOM_SER_HDX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BAYCOM_PAR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BAYCOM_EPP policy<{'armhf': 'm'}> +CONFIG_YAM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Bluetooth subsystem support +CONFIG_BT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_LE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_6LOWPAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_MSFTEXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_AOSPEXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_SELFTEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth Classic (BR/EDR) features +CONFIG_BT_BREDR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_RFCOMM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_RFCOMM_TTY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_BNEP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_BNEP_MC_FILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_BNEP_PROTO_FILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_CMTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HIDP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers +CONFIG_BT_HCIBTSDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIUART_LL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIBCM203X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIBPA10X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIBFUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIDTL1 policy<{'amd64': 'm'}> +CONFIG_BT_HCIBT3C policy<{'amd64': 'm'}> +CONFIG_BT_HCIBLUECARD policy<{'amd64': 'm'}> +CONFIG_BT_HCIVHCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_MRVL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_MRVL_SDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_MTKSDIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_MTKUART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_QCOMSMD policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_BT_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers >> HCI UART driver +CONFIG_BT_HCIUART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIUART_H4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_NOKIA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm'}> +CONFIG_BT_HCIUART_BCSP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_ATH3K policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_3WIRE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_INTEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_BCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_RTL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_QCA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_AG6XX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIUART_MRVL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Networking support >> Bluetooth subsystem support >> Bluetooth device drivers >> HCI USB driver +CONFIG_BT_HCIBTUSB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_BT_HCIBTUSB_AUTOSUSPEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIBTUSB_BCM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIBTUSB_MTK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_HCIBTUSB_RTL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BT_ATH3K policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> CAIF support +CONFIG_CAIF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CAIF_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_CAIF_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAIF_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> CAN bus subsystem support +CONFIG_CAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_CAN_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_BCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_GW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_J1939 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_ISOTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers +CONFIG_CAN_VCAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_VXCAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_SLCAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_DEBUG_DEVICES policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_CALC_BITTIMING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CAN_FLEXCAN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_GRCAN policy<{'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_JANZ_ICAN3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_KVASER_PCIEFD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_TI_HECC policy<{'armhf': 'm'}> +CONFIG_CAN_XILINXCAN policy<{'arm64': 'm'}> +CONFIG_CAN_IFI_CANFD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_MSCAN policy<{'ppc64el': 'm'}> +CONFIG_CAN_PEAK_PCIEFD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_SOFTING_CS policy<{'amd64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_CC770_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_CC770_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_C_CAN_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_C_CAN_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> CAN bus subsystem support >> CAN Device Drivers >> Platform CAN drivers with Netlink support >> Bosch M_CAN support +CONFIG_CAN_M_CAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_M_CAN_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_M_CAN_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_M_CAN_TCAN4X5X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_MCP251X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_MCP251XFD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_MCP251XFD_SANITY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_EMS_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_ESD_USB2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_ETAS_ES58X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_GS_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_KVASER_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_MCBA_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_PEAK_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_UCAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_EMS_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_EMS_PCMCIA policy<{'amd64': 'm'}> +CONFIG_CAN_F81601 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_KVASER_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_PEAK_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_PEAK_PCIEC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CAN_PEAK_PCMCIA policy<{'amd64': 'm'}> +CONFIG_CAN_PLX_PCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_SJA1000_ISA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_CAN_SJA1000_PLATFORM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> NFC subsystem support +CONFIG_NFC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NFC_DIGITAL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_NCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_NCI_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_NCI_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_HCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_SHDLC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> + +# Menu: Networking support >> NFC subsystem support >> Near Field Communication (NFC) devices +CONFIG_NFC_TRF7970A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MEI_PHY policy<{'amd64': 'm'}> +CONFIG_NFC_SIM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_PORT100 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_VIRTUAL_NCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_FDP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_FDP_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_PN544_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_PN544_MEI policy<{'amd64': 'm'}> +CONFIG_NFC_PN533_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_PN533_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_PN532_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MICROREAD_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MICROREAD_MEI policy<{'amd64': 'm'}> +CONFIG_NFC_MRVL_USB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MRVL_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MRVL_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_MRVL_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_ST21NFCA_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_ST_NCI_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_ST_NCI_SPI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_NXP_NCI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_NXP_NCI_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_S3FWRN5_I2C policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_S3FWRN82_UART policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NFC_ST95HF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Networking options +CONFIG_PACKET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PACKET_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_UNIX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_UNIX_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TLS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TLS_DEVICE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TLS_TOE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XFRM_USER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XFRM_USER_COMPAT policy<{'amd64': 'm'}> +CONFIG_XFRM_INTERFACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XFRM_SUB_POLICY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XFRM_MIGRATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_XFRM_STATISTICS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_KEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_KEY_MIGRATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IUCV policy<{'s390x': 'y'}> +CONFIG_AFIUCV policy<{'s390x': 'm'}> +CONFIG_SMC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SMC_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_XDP_SOCKETS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_XDP_SOCKETS_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETWORK_SECMARK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NETWORK_PHY_TIMESTAMPING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VLAN_8021Q policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VLAN_8021Q_GVRP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_VLAN_8021Q_MVRP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DECNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_DECNET_ROUTER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_LLC2 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ATALK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_X25 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_LAPB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PHONET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_MAC802154 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_DCB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DNS_RESOLVER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NETLINK_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_NSH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_HSR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_PCPU_DEV_REFCNT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_NET_PRIO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_CGROUP_NET_CLASSID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SMC mark note +CONFIG_SMC_DIAG mark note +CONFIG_NETWORK_PHY_TIMESTAMPING mark note + +# Menu: Networking support >> Networking options >> 6LoWPAN Support +CONFIG_6LOWPAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_6LOWPAN_DEBUGFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Networking support >> Networking options >> 6LoWPAN Support >> Next Header and Generic Header Compression Support +CONFIG_6LOWPAN_NHC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_DEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_FRAGMENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_HOP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_MOBILITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_ROUTING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_NHC_UDP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_6LOWPAN_GHC_EXT_HDR_HOP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_6LOWPAN_GHC_UDP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_6LOWPAN_GHC_ICMPV6 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_6LOWPAN_GHC_EXT_HDR_DEST policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_6LOWPAN_GHC_EXT_HDR_FRAG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_6LOWPAN_GHC_EXT_HDR_ROUTE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Networking support >> Networking options >> 802.1d Ethernet Bridging +CONFIG_BRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_IGMP_SNOOPING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BRIDGE_VLAN_FILTERING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BRIDGE_MRP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BRIDGE_CFM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Networking support >> Networking options >> Appletalk interfaces support +CONFIG_DEV_APPLETALK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IPDDP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +# +CONFIG_IPDDP mark note + +# Menu: Networking support >> Networking options >> Asynchronous Transfer Mode (ATM) +CONFIG_ATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_ATM_CLIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_CLIP_NO_ICMP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_ATM_LANE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_MPOA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_BR2684 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_ATM_BR2684_IPFILTER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# Menu: Networking support >> Networking options >> B.A.T.M.A.N. Advanced Meshing Protocol +CONFIG_BATMAN_ADV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_BATMAN_ADV_BATMAN_V policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_BATMAN_ADV_BLA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BATMAN_ADV_DAT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BATMAN_ADV_NC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BATMAN_ADV_MCAST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_BATMAN_ADV_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_BATMAN_ADV_TRACING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_IEEE802154_NL802154_EXPERIMENTAL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': '-'}> +CONFIG_IEEE802154_SOCKET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_IEEE802154_6LOWPAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Networking options >> MultiProtocol Label Switching +CONFIG_MPLS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_MPLS_GSO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MPLS_ROUTING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_MPLS_IPTUNNEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> Network packet filtering framework (Netfilter) +CONFIG_NETFILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NETFILTER_ADVANCED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BRIDGE_NETFILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_BRIDGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NETFILTER_NETLINK_HOOK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_NETLINK_ACCT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_NETLINK_QUEUE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_NETLINK_LOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_NETLINK_OSF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_LOG_SYSLOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_FLOW_TABLE_INET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XTABLES_COMPAT policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': '-', 's390x': 'y'}> +CONFIG_NETFILTER_XT_MARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_CONNMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_SET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_AUDIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_CHECKSUM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_CLASSIFY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_CONNMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_CONNSECMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_CT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_DSCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_HL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_HMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_IDLETIMER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_LED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> +CONFIG_NETFILTER_XT_TARGET_LOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_MARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_NETMAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_NFLOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_NFQUEUE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_NOTRACK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NETFILTER_XT_TARGET_RATEEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_REDIRECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_MASQUERADE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_TEE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_TPROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_TRACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_SECMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_TCPMSS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_BPF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CGROUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CLUSTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_COMMENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CONNBYTES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CONNLABEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CONNLIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CONNMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CONNTRACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_CPU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_DCCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_DEVGROUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_DSCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_ECN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_ESP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_HASHLIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_HELPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_HL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_IPCOMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_IPRANGE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_IPVS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_L2TP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_LENGTH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_LIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_MAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_MARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_MULTIPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_NFACCT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_OSF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_OWNER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_POLICY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_PHYSDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_PKTTYPE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_QUOTA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_RATEEST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_REALM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_RECENT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_SCTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_SOCKET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_STATE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_STATISTIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_STRING policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_TCPMSS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_TIME policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_XT_MATCH_U32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_MARK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_SECMARK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_ZONES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_PROCFS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_NF_CONNTRACK_EVENTS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_TIMEOUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_TIMESTAMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_LABELS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CT_PROTO_DCCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CT_PROTO_SCTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CT_PROTO_UDPLITE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_CONNTRACK_AMANDA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_FTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_H323 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_IRC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_NETBIOS_NS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_SNMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_PPTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_SANE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_SIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CONNTRACK_TFTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CT_NETLINK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CT_NETLINK_TIMEOUT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_CT_NETLINK_HELPER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NETFILTER_NETLINK_GLUE_CT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# +CONFIG_NF_CONNTRACK_PROCFS flag + +# 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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TABLES_INET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFT_NUMGEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_CT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FLOW_OFFLOAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_CONNLIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_LOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_LIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_MASQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_REDIR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_TUNNEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_OBJREF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_QUEUE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_QUOTA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_REJECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_COMPAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_HASH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FIB_INET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_XFRM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_SOCKET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_OSF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_TPROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_SYNPROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_FLOW_TABLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_DUP_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_DUP_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FWD_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FIB_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_REJECT_NETDEV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_BRIDGE_META policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_BRIDGE_REJECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_BROUTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_T_FILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_T_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_802_3 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_AMONG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_ARP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_IP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_IP6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_LIMIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_MARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_PKTTYPE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_STP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_VLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_ARPREPLY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_DNAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_MARK_T policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_REDIRECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_SNAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_LOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_BRIDGE_EBT_NFLOG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_MAX policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'ppc64el': '256', 'riscv64': '256', 's390x': '256'}> +CONFIG_IP_SET_BITMAP_IP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_BITMAP_IPMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_BITMAP_PORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IPMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IPPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IPPORTIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IPPORTNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_IPMAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_MAC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_NETPORTNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_NET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_NETNET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_NETPORT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_HASH_NETIFACE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_SET_LIST_SET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IP_VS_TAB_BITS policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'ppc64el': '12', 'riscv64': '12', 's390x': '12'}> +CONFIG_IP_VS_PROTO_TCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_PROTO_UDP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_PROTO_ESP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_PROTO_AH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_PROTO_SCTP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_RR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_WRR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_LC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_WLC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_FO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_OVF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_LBLC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_LBLCR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_DH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_SH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_MH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_SED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_NQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_TWOS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IP_VS_SH_TAB_BITS policy<{'amd64': '8', 'arm64': '8', 'armhf': '8', 'ppc64el': '8', 'riscv64': '8', 's390x': '8'}> +CONFIG_IP_VS_MH_TAB_INDEX policy<{'amd64': '12', 'arm64': '12', 'armhf': '12', 'ppc64el': '12', 'riscv64': '12', 's390x': '12'}> +CONFIG_IP_VS_FTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_VS_NFCT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_VS_PE_SIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TPROXY_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TABLES_ARP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NF_DUP_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_LOG_ARP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_LOG_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_REJECT_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_ARPTABLES policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_ARPFILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_ARP_MANGLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_NAT_SNMP_BASIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TABLES_IPV4 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFT_DUP_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FIB_IPV4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_MATCH_AH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_MATCH_ECN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_MATCH_RPFILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_MATCH_TTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_FILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_REJECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_SYNPROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_SECURITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_CLUSTERIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_ECN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_TTL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_MASQUERADE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_NETMAP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP_NF_TARGET_REDIRECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TPROXY_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_DUP_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_REJECT_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_LOG_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NF_TABLES_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NFT_DUP_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NFT_FIB_IPV6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_AH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_EUI64 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_FRAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_OPTS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_HL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_IPV6HEADER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_MH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_RPFILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_RT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MATCH_SRH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_TARGET_HL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_FILTER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_TARGET_REJECT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_TARGET_SYNPROXY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_MANGLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_RAW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_SECURITY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_TARGET_MASQUERADE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IP6_NF_TARGET_NPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> Network testing +CONFIG_NET_PKTGEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_DROP_MONITOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_NET_DROP_MONITOR note + +# Menu: Networking support >> Networking options >> QoS and/or fair queueing +CONFIG_NET_SCHED policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_SCH_CBQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_HTB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_HFSC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_ATM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_SCH_PRIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_MULTIQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_RED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_SFB policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_SFQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_TEQL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_TBF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_CBS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_ETF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_TAPRIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_GRED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_DSMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_NETEM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_DRR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_MQPRIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_SKBPRIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_CHOKE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_QFQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_CODEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_FQ_CODEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_CAKE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_FQ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_HHF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_PIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_FQ_PIE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_INGRESS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_PLUG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_SCH_ETS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_BASIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_TCINDEX policy<{'amd64': '-', 'arm64': '-', 'armhf': '-', 'ppc64el': '-', 'riscv64': '-', 's390x': '-'}> +CONFIG_NET_CLS_ROUTE4 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_FW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_U32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_CLS_U32_PERF policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_CLS_U32_MARK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_CLS_RSVP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_RSVP6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_FLOW policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_CGROUP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_BPF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_FLOWER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_CLS_MATCHALL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_ACT_POLICE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_GACT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_GACT_PROB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_ACT_MIRRED policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_SAMPLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_IPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_NAT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_PEDIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_SIMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_SKBEDIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_CSUM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_MPLS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_VLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_BPF policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_CONNMARK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_CTINFO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_SKBMOD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_TUNNEL_KEY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_CT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_ACT_GATE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_TC_SKB_EXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_EMATCH_STACK policy<{'amd64': '32', 'arm64': '32', 'armhf': '32', 'ppc64el': '32', 'riscv64': '32', 's390x': '32'}> +CONFIG_NET_EMATCH_CMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_NBYTE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_U32 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_META policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_TEXT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_CANID policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_EMATCH_IPSET policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_EMATCH_IPT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> Qualcomm IPC Router support +CONFIG_QRTR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_QRTR_SMD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QRTR_TUN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_QRTR_MHI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking +CONFIG_INET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_MULTICAST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_IPIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_IPGRE_DEMUX policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_IPGRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_IPGRE_BROADCAST policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SYN_COOKIES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_IPVTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_FOU policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_FOU_IP_TUNNELS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INET_AH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_ESP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_ESP_OFFLOAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_ESPINTCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INET_IPCOMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_MD5SIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NETLABEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MPTCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_MPTCP_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_SWITCHDEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_L3_MASTER_DEV policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NET_NCSI policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NCSI_OEM_CMD_GET_MAC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NCSI_OEM_CMD_KEEP_PHY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BPF_STREAM_PARSER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SYN_COOKIES mark +CONFIG_NET_SWITCHDEV mark note note +CONFIG_NET_SWITCHDEV mark note note + +# Menu: Networking support >> Networking options >> TCP/IP networking >> BPF based packet filtering framework (BPFILTER) +CONFIG_BPFILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_BPFILTER_UMH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> Distributed Switch Architecture +CONFIG_NET_DSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'n'}> +CONFIG_NET_DSA_TAG_AR9331 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_BRCM policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_BRCM_LEGACY policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_BRCM_PREPEND policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_HELLCREEK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_GSWIP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_DSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_EDSA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_MTK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_KSZ policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_RTL4_A policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_OCELOT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_OCELOT_8021Q policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_QCA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_LAN9303 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_SJA1105 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_TRAILER policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NET_DSA_TAG_XRS700X policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> INET: socket monitoring interface +CONFIG_INET_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_UDP_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_RAW_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET_DIAG_DESTROY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_FIB_TRIE_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_MULTIPLE_TABLES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_ROUTE_MULTIPATH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_ROUTE_VERBOSE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_IP_PNP note + +# Menu: Networking support >> Networking options >> TCP/IP networking >> IP: multicast routing +CONFIG_IP_MROUTE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_MROUTE_MULTIPLE_TABLES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_PIMSM_V1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IP_PIMSM_V2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_L2TP_DEBUGFS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_L2TP_V3 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_L2TP_IP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_L2TP_ETH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> Open vSwitch +CONFIG_OPENVSWITCH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OPENVSWITCH_GRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OPENVSWITCH_VXLAN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_OPENVSWITCH_GENEVE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TCP_CONG_BIC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_CUBIC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TCP_CONG_WESTWOOD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_HTCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_HSTCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_HYBLA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_VEGAS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_NV policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_SCALABLE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_LP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_VENO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_YEAH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_ILLINOIS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_DCTCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_CDG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TCP_CONG_BBR policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEFAULT_RENO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> The DCCP Protocol +CONFIG_IP_DCCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IP_DCCP_CCID3 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +# +CONFIG_IP_DCCP_CCID3 flag + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> The IPv6 protocol +CONFIG_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_ROUTER_PREF policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_ROUTE_INFO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_OPTIMISTIC_DAD policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_INET6_AH policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET6_ESP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET6_ESP_OFFLOAD policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_INET6_ESPINTCP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INET6_IPCOMP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_MIP6 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_ILA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_VTI policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_SIT policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_SIT_6RD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_TUNNEL policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_GRE policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_IPV6_MULTIPLE_TABLES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_SUBTREES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_MROUTE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_PIMSM_V2 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_SEG6_LWTUNNEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_SEG6_HMAC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IPV6_RPL_LWTUNNEL policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IPV6_IOAM6_LWTUNNEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_IPV6_OPTIMISTIC_DAD flag +CONFIG_IPV6 mark note + +# Menu: Networking support >> Networking options >> TCP/IP networking >> The Reliable Datagram Sockets Protocol +CONFIG_RDS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RDS_RDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RDS_TCP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_RDS_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> The SCTP Protocol +CONFIG_IP_SCTP policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_SCTP_DBG_OBJCNT policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SCTP_COOKIE_HMAC_MD5 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCTP_COOKIE_HMAC_SHA1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SCTP_DBG_OBJCNT flag + +# 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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Networking support >> Networking options >> TCP/IP networking >> The TIPC Protocol +CONFIG_TIPC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_TIPC_MEDIA_IB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TIPC_MEDIA_UDP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TIPC_CRYPTO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TIPC_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> + +# Menu: Networking support >> Networking options >> Virtual Socket protocol +CONFIG_VSOCKETS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VSOCKETS_DIAG policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VSOCKETS_LOOPBACK policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_VMWARE_VMCI_VSOCKETS policy<{'amd64': 'm', 'arm64': 'm'}> +CONFIG_VIRTIO_VSOCKETS policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_HYPERV_VSOCKETS policy<{'amd64': 'm', 'arm64': 'm'}> + +# Menu: Networking support >> Plan 9 Resource Sharing Support (9P2000) +CONFIG_NET_9P policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_9P_VIRTIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_9P_XEN policy<{'amd64': 'm', 'arm64': 'm', 'armhf': '-'}> +CONFIG_NET_9P_RDMA policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_NET_9P_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_NET_9P note + +# Menu: Networking support >> RF switch subsystem support +CONFIG_RFKILL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_RFKILL_INPUT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_RFKILL_GPIO policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': '-'}> + +# Menu: Networking support >> RxRPC session sockets +CONFIG_AF_RXRPC policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +CONFIG_AF_RXRPC_IPV6 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_AF_RXRPC_INJECT_LOSS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_AF_RXRPC_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_RXKAD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Networking support >> Wireless +CONFIG_WIRELESS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_LIB80211_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> + +# Menu: Networking support >> Wireless >> Generic IEEE 802.11 Networking Stack (mac80211) +CONFIG_MAC80211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_MAC80211_RC_MINSTREL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MAC80211_MESH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MAC80211_LEDS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MAC80211_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_MAC80211_MESSAGE_TRACING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_MAC80211_STA_HASH_MAX_SIZE policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0'}> + +# Menu: Networking support >> Wireless >> cfg80211 - wireless configuration API +CONFIG_CFG80211 policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm'}> +CONFIG_NL80211_TESTMODE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_CFG80211_DEVELOPER_WARNINGS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_CFG80211_DEFAULT_PS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CFG80211_DEBUGFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CFG80211_CRDA_SUPPORT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CFG80211_WEXT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +# +CONFIG_CFG80211_WEXT flag + +# Menu: Networking support >> Wireless >> cfg80211 - wireless configuration API >> cfg80211 certification onus +CONFIG_CFG80211_CERTIFICATION_ONUS policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n'}> +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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-generic': 'y', 'armhf-generic-lpae': 'n'}> +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': 'y'}> +CONFIG_ARCH_QCOM policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_REALTEK policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_RENESAS policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_ROCKCHIP policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_INTEL_SOCFPGA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_TEGRA policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARCH_UNIPHIER policy<{'arm64': 'n', 'armhf-generic': 'y', 'armhf-generic-lpae': 'n'}> +CONFIG_ARCH_VEXPRESS policy<{'arm64': 'y', 'armhf': 'y'}> +# +CONFIG_ARCH_ROCKCHIP note note + +# Menu: Platform selection >> Architecture: arm64 +CONFIG_ARCH_APPLE policy<{'arm64': 'y'}> +CONFIG_ARCH_BCM4908 policy<{'arm64': 'y'}> +CONFIG_ARCH_BCM_IPROC policy<{'arm64': 'y'}> +CONFIG_ARCH_BITMAIN policy<{'arm64': 'y'}> +CONFIG_ARCH_SPARX5 policy<{'arm64': 'y'}> +CONFIG_ARCH_K3 policy<{'arm64': 'y'}> +CONFIG_ARCH_LAYERSCAPE policy<{'arm64': 'y'}> +CONFIG_ARCH_LG1K policy<{'arm64': 'y'}> +CONFIG_ARCH_KEEMBAY policy<{'arm64': 'y'}> +CONFIG_ARCH_S32 policy<{'arm64': 'y'}> +CONFIG_ARCH_SEATTLE 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_VISCONTI policy<{'arm64': 'y'}> +CONFIG_ARCH_XGENE policy<{'arm64': 'y'}> +CONFIG_ARCH_ZYNQMP policy<{'arm64': 'y'}> + +# Menu: Platform type +CONFIG_ARCH_RV32I policy<{'riscv64': 'n'}> +CONFIG_ARCH_RV64I policy<{'riscv64': 'y'}> +CONFIG_CMODEL_MEDLOW policy<{'riscv64': 'n'}> +CONFIG_CMODEL_MEDANY policy<{'riscv64': 'y'}> +CONFIG_TUNE_GENERIC policy<{'riscv64': 'y'}> +CONFIG_RISCV_ISA_C policy<{'riscv64': 'y'}> +CONFIG_FPU policy<{'riscv64': 'y'}> + +# Menu: Power management and ACPI options +CONFIG_SUSPEND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_SUSPEND_FREEZER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_SUSPEND_SKIP_SYNC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_HIBERNATION policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'y', 'ppc64el': 'n'}> +CONFIG_HIBERNATION_SNAPSHOT_DEV policy<{'amd64': 'y', 'armhf': 'y'}> +CONFIG_PM_STD_PARTITION policy<{'amd64': '""', 'armhf': '""'}> +CONFIG_PM_AUTOSLEEP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_PM_WAKELOCKS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_PM_WAKELOCKS_LIMIT policy<{'amd64': '100', 'arm64': '100', 'armhf': '100', 'ppc64el': '100'}> +CONFIG_PM_WAKELOCKS_GC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_PM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'n'}> +CONFIG_PM_TRACE_RTC policy<{'amd64': 'y'}> +CONFIG_APM_EMULATION policy<{'armhf': 'n'}> +CONFIG_WQ_POWER_EFFICIENT_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_ENERGY_MODEL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_KVM_GUEST policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_INTEL_IDLE policy<{'amd64': 'y'}> +# +CONFIG_HIBERNATION flag +CONFIG_HIBERNATION mark note +CONFIG_PM mark note + +# 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 >> Intel DPTF (Dynamic Platform and Thermal Framework) Support + +# 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 flag + +# 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_QE_GPIO policy<{'ppc64el': 'y'}> +CONFIG_GEN_RTC policy<{'ppc64el': 'y'}> +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 >> 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', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_STAT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_PERFORMANCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_POWERSAVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_USERSPACE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_ONDEMAND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_CONSERVATIVE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_GOV_SCHEDUTIL policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_X86_AMD_PSTATE policy<{'amd64': 'y'}> +CONFIG_X86_INTEL_PSTATE policy<{'amd64': 'y'}> +CONFIG_X86_PCC_CPUFREQ policy<{'amd64': 'y'}> +CONFIG_X86_SPEEDSTEP_CENTRINO policy<{'amd64': 'y'}> +CONFIG_X86_P4_CLOCKMOD policy<{'amd64': 'm'}> +CONFIG_ACPI_CPPC_CPUFREQ policy<{'arm64': 'm'}> +CONFIG_ACPI_CPPC_CPUFREQ_FIE policy<{'arm64': 'y'}> +CONFIG_ARM_ALLWINNER_SUN50I_CPUFREQ_NVMEM policy<{'arm64': 'm', 'armhf': '-'}> +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': 'm'}> +CONFIG_ARM_MEDIATEK_CPUFREQ policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_MEDIATEK_CPUFREQ_HW policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_OMAP2PLUS_CPUFREQ policy<{'armhf': 'y'}> +CONFIG_ARM_QCOM_CPUFREQ_NVMEM policy<{'arm64': 'm', 'armhf': '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_TEGRA186_CPUFREQ policy<{'arm64': 'm', 'armhf': 'm'}> +CONFIG_ARM_TEGRA194_CPUFREQ policy<{'arm64': 'm'}> +CONFIG_ARM_TI_CPUFREQ policy<{'armhf': 'y'}> +CONFIG_POWERNV_CPUFREQ policy<{'ppc64el': 'y'}> +CONFIG_QORIQ_CPUFREQ policy<{'arm64': 'm'}> +# +CONFIG_CPU_FREQ_STAT note +CONFIG_CPU_FREQ_GOV_PERFORMANCE note +CONFIG_CPU_FREQ_GOV_POWERSAVE note +CONFIG_CPU_FREQ_GOV_USERSPACE note +CONFIG_CPU_FREQ_GOV_ONDEMAND note +CONFIG_CPU_FREQ_GOV_CONSERVATIVE note +CONFIG_X86_PCC_CPUFREQ note +CONFIG_X86_SPEEDSTEP_CENTRINO note +CONFIG_X86_SPEEDSTEP_ICH note +CONFIG_X86_SPEEDSTEP_SMI note +CONFIG_X86_CPUFREQ_NFORCE2 note + +# Menu: Power management and ACPI options >> CPU Frequency scaling >> CPU Frequency scaling >> ACPI Processor P-States driver +CONFIG_X86_ACPI_CPUFREQ policy<{'amd64': 'y'}> +CONFIG_X86_ACPI_CPUFREQ_CPB policy<{'amd64': 'y'}> +CONFIG_X86_POWERNOW_K8 policy<{'amd64': 'y'}> +CONFIG_X86_AMD_FREQ_SENSITIVITY policy<{'amd64': 'm'}> +# +CONFIG_X86_ACPI_CPUFREQ note +CONFIG_X86_POWERNOW_K8 note + +# 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': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND policy<{'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE policy<{'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL policy<{'amd64': 'y', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +# +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE note + +# 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', 'ppc64el': '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': 'm'}> +CONFIG_ARM_TEGRA20_CPUFREQ policy<{'arm64': 'y', 'armhf': 'y'}> +CONFIG_ARM_TEGRA124_CPUFREQ policy<{'arm64': 'y', 'armhf': 'y'}> +# +CONFIG_CPUFREQ_DT note + +# 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', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_IDLE_GOV_LADDER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_IDLE_GOV_MENU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_IDLE_GOV_TEO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_CPU_IDLE_GOV_HALTPOLL policy<{'amd64': 'y', 'ppc64el': 'y'}> +CONFIG_HALTPOLL_CPUIDLE policy<{'amd64': '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_PSCI_CPUIDLE_DOMAIN 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': 'n'}> +CONFIG_ARM_MVEBU_V7_CPUIDLE policy<{'armhf': 'y'}> +CONFIG_ARM_TEGRA_CPUIDLE policy<{'armhf': 'n'}> +CONFIG_ARM_QCOM_SPM_CPUIDLE policy<{'armhf': 'y'}> +# +CONFIG_ARM_HIGHBANK_CPUIDLE note + +# 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 pSeries & new (POWER5-based) iSeries +CONFIG_CMM policy<{'ppc64el': 'm', 's390x': 'y'}> +# +CONFIG_CMM flag + +# 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_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 >> 8xx advanced setup >> Architecture: powerpc + +# 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', 'ppc64el': 'y'}> +CONFIG_PM_ADVANCED_DEBUG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y'}> +CONFIG_PM_TEST_SUSPEND policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +CONFIG_DPM_WATCHDOG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n'}> +# +CONFIG_PM_DEBUG flag + +# Menu: Power management and ACPI options >> Support for 47x variant >> Architecture: powerpc + +# Menu: Processor support +CONFIG_SMP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NR_CPUS policy<{'amd64': '8192', 'arm64': '256', 'armhf': '4', 'ppc64el': '2048', 'riscv64': '32', 's390x': '512'}> +# +CONFIG_NR_CPUS note + +# Menu: Processor support >> Architecture: powerpc +CONFIG_PPC_FPU policy<{'ppc64el': 'y'}> +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'}> +CONFIG_PMU_SYSFS 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_NUMA policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KEXEC_FILE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KEXEC_SIG policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}> +CONFIG_ARCH_RANDOM policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_RELOCATABLE policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_RANDOMIZE_BASE policy<{'amd64': 'y', 'arm64': 'y', 's390x': 'y'}> +CONFIG_SCHED_MC policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 's390x': 'y'}> +CONFIG_SCHED_SMT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_HOTPLUG_CPU policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_NODES_SHIFT policy<{'amd64': '10', 'arm64': '6', 'ppc64el': '8', 'riscv64': '2', 's390x': '1'}> +CONFIG_PARAVIRT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n'}> +CONFIG_PARAVIRT_TIME_ACCOUNTING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n'}> +CONFIG_XEN policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'n'}> +CONFIG_HIGHPTE policy<{'armhf': 'y'}> +CONFIG_COMPAT_VDSO policy<{'amd64': 'n'}> +CONFIG_HIGHMEM policy<{'armhf': 'y'}> +CONFIG_FORCE_MAX_ZONEORDER policy<{'arm64-generic': '13', 'arm64-generic-64k': '14', 'armhf-generic': '12', 'armhf-generic-lpae': '11', 'ppc64el': '9'}> +# +CONFIG_RELOCATABLE flag +CONFIG_HOTPLUG_CPU flag +CONFIG_NUMA note note +CONFIG_COMPAT_VDSO mark + +# 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_1319367 policy<{'arm64': 'y'}> +CONFIG_ARM64_ERRATUM_1530923 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_ARM64_ERRATUM_1508412 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_FUJITSU_ERRATUM_010001 policy<{'arm64': 'y'}> +CONFIG_HISILICON_ERRATUM_161600802 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_QCOM_FALKOR_ERRATUM_E1041 policy<{'arm64': 'y'}> +CONFIG_NVIDIA_CARMEL_CNP_ERRATUM policy<{'arm64': 'y'}> +CONFIG_SOCIONEXT_SYNQUACER_PREITS policy<{'arm64': 'y'}> +# +CONFIG_ARM64_ERRATUM_843419 mark note +CONFIG_QCOM_QDF2400_ERRATUM_0065 mark note + +# 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_USE_LSE_ATOMICS policy<{'arm64': 'y'}> +# +CONFIG_ARM64_USE_LSE_ATOMICS mark note + +# Menu: Processor type and features >> ARMv8.2 architectural features >> Architecture: arm64 +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'}> +CONFIG_ARM64_PTR_AUTH_KERNEL policy<{'arm64': 'y'}> + +# Menu: Processor type and features >> ARMv8.4 architectural features >> Architecture: arm64 +CONFIG_ARM64_AMU_EXTN policy<{'arm64': 'y'}> +CONFIG_ARM64_TLB_RANGE policy<{'arm64': 'y'}> + +# Menu: Processor type and features >> ARMv8.5 architectural features + +# Menu: Processor type and features >> ARMv8.5 architectural features >> Architecture: arm64 +CONFIG_ARM64_BTI policy<{'arm64': 'y'}> +CONFIG_ARM64_E0PD policy<{'arm64': 'y'}> +CONFIG_ARM64_MTE policy<{'arm64': 'y'}> + +# Menu: Processor type and features >> ARMv8.7 architectural features >> Architecture: arm64 +CONFIG_ARM64_EPAN 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': 'y'}> +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_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 + +# Menu: Processor type and features >> Architecture: powerpc +CONFIG_PPC_TRANSACTIONAL_MEM policy<{'ppc64el': 'y'}> +CONFIG_PPC_UV policy<{'ppc64el': 'y'}> +CONFIG_LD_HEAD_STUB_CATCH policy<{'ppc64el': 'n'}> +CONFIG_PPC_QUEUED_SPINLOCKS 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_DATA_SHIFT policy<{'ppc64el': '24'}> +CONFIG_PPC_SUBPAGE_PROT policy<{'ppc64el': 'y'}> +CONFIG_PPC_PROT_SAO_LPAR policy<{'ppc64el': 'n'}> +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_PPC_RTAS_FILTER policy<{'ppc64el': 'y'}> +# +CONFIG_FA_DUMP note +CONFIG_PPC_MEM_KEYS flag note +CONFIG_PPC_SECURE_BOOT mark note note +CONFIG_PPC_SECVAR_SYSFS mark note + +# Menu: Processor type and features >> Architecture: s390 +CONFIG_KERNEL_NOBP policy<{'s390x': 'n'}> +CONFIG_EXPOLINE policy<{'s390x': 'y'}> +CONFIG_EXPOLINE_EXTERN policy<{'s390x': 'y'}> +CONFIG_SCHED_TOPOLOGY policy<{'s390x': 'y'}> + +# Menu: Processor type and features >> Architecture: x86 +CONFIG_X86_FEATURE_NAMES policy<{'amd64': 'y'}> +CONFIG_X86_X2APIC policy<{'amd64': 'y'}> +CONFIG_X86_MPPARSE policy<{'amd64': 'y'}> +CONFIG_RETPOLINE policy<{'amd64': 'y'}> +CONFIG_X86_CPU_RESCTRL policy<{'amd64': 'y'}> +CONFIG_X86_EXTENDED_PLATFORM policy<{'amd64': 'y'}> +CONFIG_X86_INTEL_LPSS policy<{'amd64': 'y'}> +CONFIG_X86_AMD_PLATFORM_DEVICE policy<{'amd64': 'y'}> +CONFIG_IOSF_MBI policy<{'amd64': 'y'}> +CONFIG_IOSF_MBI_DEBUG policy<{'amd64': 'y'}> +CONFIG_SCHED_OMIT_FRAME_POINTER policy<{'amd64': 'y', 'ppc64el': 'y', 's390x': 'y'}> +CONFIG_HPET_TIMER policy<{'amd64': 'y'}> +CONFIG_GART_IOMMU policy<{'amd64': 'y'}> +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS policy<{'amd64': 'y'}> +CONFIG_X86_16BIT policy<{'amd64': 'y'}> +CONFIG_X86_VSYSCALL_EMULATION policy<{'amd64': 'y'}> +CONFIG_X86_IOPL_IOPERM policy<{'amd64': 'y'}> +CONFIG_X86_MSR policy<{'amd64': 'm'}> +CONFIG_X86_CPUID policy<{'amd64': 'm'}> +CONFIG_X86_5LEVEL policy<{'amd64': 'y'}> +CONFIG_X86_CPA_STATISTICS policy<{'amd64': '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'}> +CONFIG_X86_CHECK_BIOS_CORRUPTION policy<{'amd64': 'y'}> +CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK policy<{'amd64': 'y'}> +CONFIG_MTRR policy<{'amd64': 'y'}> +CONFIG_MTRR_SANITIZER policy<{'amd64': 'y'}> +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT policy<{'amd64': '1'}> +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT policy<{'amd64': '1'}> +CONFIG_X86_PAT policy<{'amd64': 'y'}> +CONFIG_X86_UMIP policy<{'amd64': 'y'}> +CONFIG_X86_KERNEL_IBT policy<{'amd64': 'n'}> +CONFIG_X86_X32_ABI policy<{'amd64': 'n'}> +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS policy<{'amd64': 'y'}> +CONFIG_X86_SGX policy<{'amd64': 'y'}> +CONFIG_EFI_STUB policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': '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'}> +CONFIG_PHYSICAL_ALIGN policy<{'amd64': '0x200000'}> +CONFIG_RANDOMIZE_MEMORY policy<{'amd64': 'y'}> +CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING policy<{'amd64': '0xa'}> +CONFIG_BOOTPARAM_HOTPLUG_CPU0 policy<{'amd64': 'n'}> +CONFIG_DEBUG_HOTPLUG_CPU0 policy<{'amd64': 'n'}> +CONFIG_CMDLINE_BOOL policy<{'amd64': 'n'}> +CONFIG_MODIFY_LDT_SYSCALL policy<{'amd64': 'y'}> +# +CONFIG_X86_KERNEL_IBT mark note +CONFIG_X86_LEGACY_VM86 note +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG flag note +CONFIG_MODIFY_LDT_SYSCALL flag note + +# Menu: Processor type and features >> CPU microcode loading support >> Architecture: x86 +CONFIG_MICROCODE policy<{'amd64': 'y'}> +CONFIG_MICROCODE_INTEL policy<{'amd64': 'y'}> +CONFIG_MICROCODE_AMD policy<{'amd64': 'y'}> + +# Menu: Processor type and features >> Endianness + +# Menu: Processor type and features >> Endianness >> Architecture: arm64 + +# 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 + +# Menu: Processor type and features >> Kernel command line type + +# Menu: Processor type and features >> Kernel command line type >> Architecture: powerpc + +# 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 >> Architecture: arm64 + +# 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 note +CONFIG_SWP_EMULATION mark note +CONFIG_CP15_BARRIER_EMULATION mark note +CONFIG_SETEND_EMULATION mark note + +# Menu: Processor type and features >> Linux guest support >> Architecture: x86 +CONFIG_HYPERVISOR_GUEST policy<{'amd64': 'y'}> +CONFIG_XEN_PVHVM_GUEST policy<{'amd64': 'y'}> +CONFIG_ARCH_CPUIDLE_HALTPOLL policy<{'amd64': 'y'}> +CONFIG_PVH policy<{'amd64': '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'}> +CONFIG_PARAVIRT_SPINLOCKS policy<{'amd64': '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'}> +CONFIG_XEN_DOM0 policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-'}> +CONFIG_XEN_512GB policy<{'amd64': 'y'}> +CONFIG_XEN_DEBUG_FS policy<{'amd64': 'n'}> +CONFIG_XEN_PVH policy<{'amd64': 'y'}> +# +CONFIG_XEN_512GB flag note + +# Menu: Processor type and features >> Machine Check / overheating reporting >> Architecture: x86 +CONFIG_X86_MCE policy<{'amd64': 'y'}> +CONFIG_X86_MCELOG_LEGACY policy<{'amd64': 'y'}> +CONFIG_X86_MCE_INTEL policy<{'amd64': 'y'}> +CONFIG_X86_MCE_AMD policy<{'amd64': 'y'}> +CONFIG_X86_MCE_INJECT policy<{'amd64': 'm'}> + +# Menu: Processor type and features >> Math emulation options >> Architecture: powerpc + +# Menu: Processor type and features >> Memory split +CONFIG_VMSPLIT_3G policy<{'armhf': 'y'}> +CONFIG_VMSPLIT_3G_OPT policy<{'armhf-generic': 'n'}> +CONFIG_VMSPLIT_2G policy<{'armhf': 'n'}> +CONFIG_VMSPLIT_1G policy<{'armhf': '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-generic': 'y', 'arm64-generic-64k': 'n'}> +CONFIG_ARM64_16K_PAGES policy<{'arm64': 'n'}> +CONFIG_ARM64_64K_PAGES policy<{'arm64-generic': 'n', 'arm64-generic-64k': 'y'}> + +# 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'}> +CONFIG_PERF_EVENTS_INTEL_RAPL policy<{'amd64': 'm'}> +CONFIG_PERF_EVENTS_INTEL_CSTATE policy<{'amd64': 'm'}> +CONFIG_PERF_EVENTS_AMD_POWER policy<{'amd64': 'n'}> +CONFIG_PERF_EVENTS_AMD_UNCORE policy<{'amd64': 'm'}> + +# Menu: Processor type and features >> Physical address space size >> Architecture: arm64 +CONFIG_ARM64_PA_BITS_48 policy<{'arm64': 'y'}> +CONFIG_ARM64_PA_BITS_52 policy<{'arm64-generic-64k': 'n'}> + +# 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_MK8 policy<{'amd64': 'n'}> +CONFIG_MPSC policy<{'amd64': 'n'}> +CONFIG_MCORE2 policy<{'amd64': 'n'}> +CONFIG_MATOM policy<{'amd64': 'n'}> + +# Menu: Processor type and features >> Processor type >> Architecture: s390 +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 >> 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'}> +CONFIG_X86_INTEL_MID policy<{'amd64': 'n'}> +# +CONFIG_X86_UV mark note + +# Menu: Processor type and features >> Supported processor vendors >> Architecture: x86 +CONFIG_PROCESSOR_SELECT policy<{'amd64': 'y'}> +CONFIG_CPU_SUP_INTEL policy<{'amd64': 'y'}> +CONFIG_CPU_SUP_AMD policy<{'amd64': 'y'}> +CONFIG_CPU_SUP_HYGON policy<{'amd64': 'y'}> +CONFIG_CPU_SUP_CENTAUR policy<{'amd64': 'y'}> +CONFIG_CPU_SUP_ZHAOXIN policy<{'amd64': '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'}> + +# Menu: Processor type and features >> Symmetric multi-processing support +# + +# Menu: Processor type and features >> Symmetric multi-processing support >> Architecture: x86 +CONFIG_MAXSMP policy<{'amd64': 'y'}> +CONFIG_SCHED_MC_PRIO policy<{'amd64': '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_NUMA_EMU policy<{'amd64': 'n'}> +CONFIG_AMD_NUMA policy<{'amd64': 'y'}> +CONFIG_X86_64_ACPI_NUMA policy<{'amd64': 'y'}> +# +CONFIG_NUMA_EMU note mark +CONFIG_NUMA_EMU note + +# Menu: Processor type and features >> TSX enable mode >> Architecture: x86 +CONFIG_X86_INTEL_TSX_MODE_OFF policy<{'amd64': 'y'}> +CONFIG_X86_INTEL_TSX_MODE_ON policy<{'amd64': 'n'}> +CONFIG_X86_INTEL_TSX_MODE_AUTO policy<{'amd64': 'n'}> + +# Menu: Processor type and features >> Timer frequency +CONFIG_HZ_100 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_HZ_250 policy<{'amd64-generic': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_HZ_300 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_HZ_1000 policy<{'amd64-generic': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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_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-generic': 'n'}> +CONFIG_ARM64_VA_BITS_42 policy<{'arm64-generic-64k': 'n'}> +CONFIG_ARM64_VA_BITS_48 policy<{'arm64': 'y'}> +CONFIG_ARM64_VA_BITS_52 policy<{'arm64-generic-64k': 'n'}> +# +CONFIG_ARM64_VA_BITS_48 mark note + +# Menu: Processor type and features >> vsyscall table for legacy applications >> Architecture: x86 +CONFIG_LEGACY_VSYSCALL_XONLY policy<{'amd64': 'y'}> +CONFIG_LEGACY_VSYSCALL_NONE policy<{'amd64': 'n'}> +# +CONFIG_LEGACY_VSYSCALL_XONLY flag + +# Menu: Security options +CONFIG_SLS policy<{'amd64': 'y'}> +CONFIG_SECURITY_DMESG_RESTRICT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_PERF_EVENTS_RESTRICT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITYFS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PAGE_TABLE_ISOLATION policy<{'amd64': 'y'}> +CONFIG_INTEL_TXT policy<{'amd64': 'y'}> +CONFIG_HARDENED_USERCOPY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_HARDEN_BRANCH_HISTORY policy<{'armhf': 'y'}> +CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY policy<{'arm64': 'y'}> +CONFIG_FORTIFY_SOURCE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'y'}> +CONFIG_STATIC_USERMODEHELPER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LSM policy<{'amd64': '"landlock,lockdown,yama,integrity,apparmor"', 'arm64': '"landlock,lockdown,yama,integrity,apparmor"', 'armhf': '"landlock,lockdown,yama,integrity,apparmor"', 'ppc64el': '"landlock,lockdown,yama,integrity,apparmor"', 'riscv64': '"landlock,lockdown,yama,integrity,apparmor"', 's390x': '"landlock,lockdown,yama,integrity,apparmor"'}> +# +CONFIG_SECURITY_DMESG_RESTRICT mark +CONFIG_LSM mark + +# Menu: Security options >> Enable access key retention support +CONFIG_KEYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KEYS_REQUEST_CACHE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_PERSISTENT_KEYRINGS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_TRUSTED_KEYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_ENCRYPTED_KEYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KEY_DH_OPERATIONS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_KEY_NOTIFICATIONS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Security options >> Enable different security models +CONFIG_SECURITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_NETWORK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_INFINIBAND policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_NETWORK_XFRM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_PATH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LSM_MMAP_MIN_ADDR policy<{'amd64': '0', 'arm64': '0', 'armhf': '0', 'ppc64el': '0', 'riscv64': '0', 's390x': '0'}> +CONFIG_SECURITY_LOADPIN policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SECURITY_YAMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SAFESETID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_LOCKDOWN_LSM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_LOCKDOWN_LSM_EARLY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LOCK_DOWN_IN_SECURE_BOOT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_LANDLOCK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SECURITY mark +CONFIG_LSM_MMAP_MIN_ADDR mark flag +CONFIG_SECURITY_YAMA mark +CONFIG_SECURITY_SAFESETID mark note +CONFIG_SECURITY_LOCKDOWN_LSM mark +CONFIG_SECURITY_LOCKDOWN_LSM_EARLY mark +CONFIG_LOCK_DOWN_IN_SECURE_BOOT mark + +# Menu: Security options >> Enable different security models >> AppArmor support +CONFIG_SECURITY_APPARMOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_APPARMOR_HASH policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_APPARMOR_HASH_DEFAULT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_APPARMOR_DEBUG policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Security options >> Enable different security models >> Integrity subsystem +CONFIG_INTEGRITY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INTEGRITY_SIGNATURE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INTEGRITY_AUDIT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Security options >> Enable different security models >> Integrity subsystem >> EVM support +CONFIG_EVM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EVM_ATTR_FSUUID policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EVM_EXTRA_SMACK_XATTRS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EVM_ADD_XATTRS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EVM_LOAD_X509 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_EVM_X509_PATH policy<{'ppc64el': '"/etc/keys/x509_evm.der"'}> +# +CONFIG_EVM note +CONFIG_EVM_ATTR_FSUUID note +CONFIG_EVM_LOAD_X509 note +CONFIG_EVM_X509_PATH note + +# Menu: Security options >> Enable different security models >> Integrity subsystem >> Enable asymmetric keys support +CONFIG_INTEGRITY_ASYMMETRIC_KEYS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INTEGRITY_TRUSTED_KEYRING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INTEGRITY_PLATFORM_KEYRING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_INTEGRITY_PLATFORM_KEYRING mark note +CONFIG_IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY mark note +CONFIG_LOAD_PPC_KEYS mark note + +# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) +CONFIG_IMA policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_KEXEC policy<{'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y'}> +CONFIG_IMA_WRITE_POLICY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IMA_READ_POLICY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IMA_DISABLE_HTABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_IMA mark note +CONFIG_IMA_KEXEC mark note +CONFIG_IMA_WRITE_POLICY mark note +CONFIG_IMA_READ_POLICY mark note note + +# 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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_APPRAISE_SIGNED_INIT policy<{'amd64': '-', 'arm64': '-', 'armhf': '-', 'ppc64el': 'n', 's390x': '-'}> +CONFIG_IMA_ARCH_POLICY policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT policy<{'amd64': 'y', 'arm64': 'y', 'armhf': '-', 'ppc64el': 'y', 'riscv64': '-', 's390x': 'y'}> +CONFIG_IMA_APPRAISE_BOOTPARAM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_APPRAISE_MODSIG policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_TRUSTED_KEYRING policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_BLACKLIST_KEYRING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IMA_LOAD_X509 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IMA_X509_PATH policy<{'ppc64el': '"/etc/keys/x509_ima.der"'}> +# +CONFIG_IMA_APPRAISE mark note +CONFIG_IMA_TRUSTED_KEYRING mark note +CONFIG_IMA_BLACKLIST_KEYRING mark note +CONFIG_IMA_LOAD_X509 mark note +CONFIG_IMA_X509_PATH mark note +CONFIG_IMA_APPRAISE_SIGNED_INIT mark note +CONFIG_IMA_ARCH_POLICY mark note + +# 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', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_DEFAULT_HASH_SHA256 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_IMA_DEFAULT_HASH_SHA512 policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_IMA_DEFAULT_HASH_SHA256 note + +# Menu: Security options >> Enable different security models >> Integrity subsystem >> Integrity Measurement Architecture(IMA) >> Default template +CONFIG_IMA_NG_TEMPLATE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'n', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_IMA_SIG_TEMPLATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'y', 'riscv64': 'n', 's390x': 'n'}> +# +CONFIG_IMA_SIG_TEMPLATE note + +# Menu: Security options >> Enable different security models >> Kernel default lockdown mode +CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Security options >> Enable different security models >> NSA SELinux Support +CONFIG_SECURITY_SELINUX policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SELINUX_BOOTPARAM policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'n'}> +CONFIG_SECURITY_SELINUX_DISABLE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SECURITY_SELINUX_DEVELOP policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SELINUX_AVC_STATS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE policy<{'amd64': '1', 'arm64': '1', 'armhf': '1', 'ppc64el': '1', 'riscv64': '1', 's390x': '1'}> +CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS policy<{'amd64': '9', 'arm64': '9', 'armhf': '9', 'ppc64el': '9', 'riscv64': '9', 's390x': '9'}> +CONFIG_SECURITY_SELINUX_SID2STR_CACHE_SIZE policy<{'amd64': '256', 'arm64': '256', 'armhf': '256', 'ppc64el': '256', 'riscv64': '256', 's390x': '256'}> +# +CONFIG_SECURITY_SELINUX mark +CONFIG_SECURITY_SELINUX_DISABLE mark note + +# Menu: Security options >> Enable different security models >> Simplified Mandatory Access Control Kernel Support +CONFIG_SECURITY_SMACK policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SMACK_BRINGUP policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SECURITY_SMACK_NETFILTER policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_SMACK_APPEND_SIGNALS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# +CONFIG_SECURITY_SMACK mark + +# Menu: Security options >> Enable different security models >> TOMOYO Linux Support +CONFIG_SECURITY_TOMOYO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY policy<{'amd64': '2048', 'arm64': '2048', 'armhf': '2048', 'ppc64el': '2048', 'riscv64': '2048', 's390x': '2048'}> +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG policy<{'amd64': '1024', 'arm64': '1024', 'armhf': '1024', 'ppc64el': '1024', 'riscv64': '1024', 's390x': '1024'}> +CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SECURITY_TOMOYO_POLICY_LOADER policy<{'amd64': '"/sbin/tomoyo-init"', 'arm64': '"/sbin/tomoyo-init"', 'armhf': '"/sbin/tomoyo-init"', 'ppc64el': '"/sbin/tomoyo-init"', 'riscv64': '"/sbin/tomoyo-init"', 's390x': '"/sbin/tomoyo-init"'}> +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER policy<{'amd64': '"/sbin/init"', 'arm64': '"/sbin/init"', 'armhf': '"/sbin/init"', 'ppc64el': '"/sbin/init"', 'riscv64': '"/sbin/init"', 's390x': '"/sbin/init"'}> +CONFIG_SECURITY_TOMOYO_INSECURE_BUILTIN_SETTING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> + +# Menu: Security options >> First legacy 'major LSM' to be initialized +CONFIG_DEFAULT_SECURITY_SELINUX policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEFAULT_SECURITY_SMACK policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEFAULT_SECURITY_TOMOYO policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEFAULT_SECURITY_APPARMOR policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_DEFAULT_SECURITY_DAC policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': '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', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_INIT_ON_FREE_DEFAULT_ON policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_ZERO_CALL_USED_REGS policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Security options >> Kernel hardening options >> Memory initialization >> Initialize kernel stack variables at function entry +CONFIG_INIT_STACK_ALL_ZERO policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> + +# Menu: Security options >> Kernel hardening options >> Memory initialization >> Poison kernel stack before returning from syscalls + +# Menu: Selftests >> Architecture: s390 + +# Menu: SoC selection +CONFIG_SOC_SIFIVE policy<{'riscv64': 'y'}> +CONFIG_SOC_VIRT policy<{'riscv64': 'y'}> + +# 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_FOOTBRIDGE policy<{'armhf': 'n'}> +CONFIG_ARCH_DOVE policy<{'armhf': 'n'}> +CONFIG_ARCH_RPC policy<{'armhf': '-'}> +CONFIG_ARCH_SA1100 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 + +# Menu: System Type >> Altera SOCFPGA family >> Architecture: arm +CONFIG_SOCFPGA_SUSPEND policy<{'armhf': 'y'}> + +# 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_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_HARDEN_BRANCH_PREDICTOR policy<{'armhf': 'y'}> +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-generic': 'y', 'armhf-generic-lpae': '-'}> +CONFIG_ARM_DMA_MEM_BUFFERABLE policy<{'armhf': 'y'}> +CONFIG_DEBUG_ALIGN_RODATA 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'}> + +# 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 >> 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': 'y'}> +CONFIG_SOC_IMX51 policy<{'armhf': 'y'}> +CONFIG_SOC_IMX53 policy<{'armhf': 'n'}> +CONFIG_SOC_IMX6Q policy<{'armhf': 'y'}> +CONFIG_SOC_IMX6SL policy<{'armhf': 'y'}> +CONFIG_SOC_IMX6SLL policy<{'armhf': 'y'}> +CONFIG_SOC_IMX6SX policy<{'armhf': 'y'}> +CONFIG_SOC_IMX6UL policy<{'armhf': 'y'}> +CONFIG_SOC_LS1021A policy<{'armhf': 'n'}> +CONFIG_SOC_IMX7D policy<{'armhf': 'y'}> +CONFIG_SOC_IMX7ULP policy<{'armhf': 'y'}> +CONFIG_SOC_VF610 policy<{'armhf': 'y'}> + +# Menu: System Type >> Freescale i.MX family >> Clocksource for scheduler clock >> Architecture: arm +CONFIG_VF_USE_ARM_GLOBAL_TIMER policy<{'armhf': 'y'}> +CONFIG_VF_USE_PIT_TIMER policy<{'armhf': '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', 'ppc64el': 'y', 'riscv64': '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 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 >> MStar/Sigmastar Armv7 SoC Support >> Architecture: arm +CONFIG_ARCH_MSTARV7 policy<{'armhf': 'y'}> +CONFIG_MACH_INFINITY policy<{'armhf': 'y'}> +CONFIG_MACH_MERCURY policy<{'armhf': 'y'}> + +# 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/MMP3 >> Architecture: arm +CONFIG_ARCH_MMP policy<{'armhf': 'n'}> + +# Menu: System Type >> Marvell PXA168/910/MMP2/MMP3 >> 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_IPQ40XX policy<{'armhf': 'n'}> +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 >> 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': 'n'}> +CONFIG_SOC_EXYNOS5250 policy<{'armhf': '-'}> +CONFIG_SOC_EXYNOS5260 policy<{'armhf': '-'}> +CONFIG_SOC_EXYNOS5410 policy<{'armhf': '-'}> +CONFIG_SOC_EXYNOS5420 policy<{'armhf': '-'}> +CONFIG_SOC_EXYNOS5800 policy<{'armhf': '-'}> + +# 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 >> 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_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_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_UBUNTU_HOST policy<{'amd64': 'm', 'arm64': 'm', 'armhf': 'm', 'ppc64el': 'm', 'riscv64': 'm', 's390x': 'm'}> +# + +# Menu: Virtualization +CONFIG_VIRTUALIZATION policy<{'amd64': 'y', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +# + +# 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 +CONFIG_KVM policy<{'amd64': 'm', 'arm64': 'y', 'ppc64el': 'y', 'riscv64': 'm', 's390x': 'y'}> +# +CONFIG_KVM note + +# 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: arm64 +CONFIG_NVHE_EL2_DEBUG policy<{'arm64': 'n'}> + +# Menu: Virtualization >> Kernel-based Virtual Machine (KVM) support >> Architecture: x86 +CONFIG_KVM_WERROR policy<{'amd64': 'y'}> +CONFIG_KVM_INTEL policy<{'amd64': 'm'}> +CONFIG_X86_SGX_KVM policy<{'amd64': 'y'}> +CONFIG_KVM_AMD policy<{'amd64': 'm'}> +CONFIG_KVM_AMD_SEV policy<{'amd64': 'y'}> +CONFIG_KVM_XEN policy<{'amd64': 'y'}> + +CONFIG_TDX_GUEST_DRIVER policy<{'amd64': 'm'}> +CONFIG_TDX_GUEST_DRIVER note + +# 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'}> + +# New configs options introduced in 5.19 +CONFIG_CACHEFILES_ONDEMAND policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_DEBUG_NET policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_BOOT_CONFIG_EMBED policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_MODULE_UNLOAD_TAINT_TRACKING policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'ppc64el': 'n', 'riscv64': 'n', 's390x': 'n'}> +CONFIG_FW_LOADER_COMPRESS_XZ policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_FW_LOADER_COMPRESS_ZSTD policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'ppc64el': 'y', 'riscv64': 'y', 's390x': 'y'}> +CONFIG_EFI_DISABLE_RUNTIME policy<{'amd64': 'n', 'arm64': 'n', 'armhf': 'n', 'riscv64': 'n'}> +CONFIG_EFI_COCO_SECRET policy<{'amd64': 'y', 'arm64': 'y', 'armhf': 'y', 'riscv64': 'y'}> +CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON policy<{'amd64': 'n', 'arm64': 'n'}> --- linux-5.19.0.orig/debian.master/config/arm64/config.common.arm64 +++ linux-5.19.0/debian.master/config/arm64/config.common.arm64 @@ -0,0 +1,728 @@ +# +# Config options for config.common.arm64 automatically generated by splitconfig.pl +# +CONFIG_6LOWPAN=m +CONFIG_AC97_BUS=m +CONFIG_ACCESSIBILITY=y +# 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_ADIN1100_PHY=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_AQTION=m +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_EXYNOS is not set +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_ARCH_NR_GPIO=2048 +CONFIG_ARCH_SUNXI=y +# 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_BAREUDP=m +CONFIG_BATMAN_ADV=m +CONFIG_BCH=m +CONFIG_BCM84881_PHY=y +CONFIG_BCMA=m +CONFIG_BCM_KONA_USB2_PHY=m +CONFIG_BCM_VK=m +CONFIG_BE2ISCSI=m +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BSD_DISKLABEL=y +CONFIG_C2PORT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_CAIF=m +CONFIG_CAN=m +CONFIG_CB710_CORE=m +CONFIG_CC_VERSION_TEXT="aarch64-linux-gnu-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +CONFIG_CDROM_PKTCDVD=m +CONFIG_CMA=y +CONFIG_CMDLINE="console=ttyAMA0" +CONFIG_CMDLINE_PARTITION=y +CONFIG_COMEDI=m +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_AXG_AUDIO=m +CONFIG_COMMON_CLK_XLNX_CLKWZRD=m +CONFIG_COMPAT=y +CONFIG_COUNTER=m +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CRAMFS=m +CONFIG_CRC7=m +CONFIG_CRC8=y +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO_DEV_ATMEL_ECC=m +CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_CXL_BUS=m +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DECNET=m +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_DMADEVICES=y +CONFIG_DMA_CMA=y +CONFIG_DMA_PERNUMA_CMA=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DM_DEBUG is not set +CONFIG_DNET=m +CONFIG_DP83TD510_PHY=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +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_SIMPLEDRM=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DS1682=m +CONFIG_DUMMY_IRQ=m +CONFIG_DWMAC_INTEL_PLAT=m +CONFIG_DW_WATCHDOG=m +CONFIG_DW_XDATA_PCIE=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 is not set +CONFIG_EXFAT_FS=m +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=m +CONFIG_FB_SIS=m +CONFIG_FB_SM712=m +CONFIG_FB_SSD1307=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_FIRMWARE_MEMMAP=y +CONFIG_FORTIFY_SOURCE=y +CONFIG_FPGA_BRIDGE=m +CONFIG_FPGA_DFL=m +CONFIG_FRAME_WARN=1024 +CONFIG_FSL_MC_BUS=y +CONFIG_FUSION=y +CONFIG_GAMEPORT=m +CONFIG_GENERIC_PHY=y +CONFIG_GNSS=m +# CONFIG_GOLDFISH is not set +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_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_TPIC2810=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_GPIO_VIRTIO=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_HISI_HIKEY_USB=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_HTE=y +CONFIG_HWMON=y +CONFIG_HWSPINLOCK=y +CONFIG_HW_RANDOM_CCTRNG=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_HZ=250 +# CONFIG_HZ_100 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_GPIO=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_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_VIRTIO=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_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_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTERCONNECT=y +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +CONFIG_IOMMU_IOVA=y +CONFIG_IPACK_BUS=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_VS_TWOS=m +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_KVM=y +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_MARVELL_88X2222_PHY=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MCB=m +CONFIG_MCTP=y +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX=y +CONFIG_MDIO_THUNDER=m +CONFIG_MD_MULTIPATH=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MEDIA_CEC_SUPPORT=y +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_ATC260X_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_IQS62X=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_MP2629=m +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RT4831=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_VX855=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM8994=m +CONFIG_MHI_BUS=m +CONFIG_MHI_BUS_EP=m +CONFIG_MII=y +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=m +CONFIG_MLX5_SF=y +CONFIG_MLX5_VFIO_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_CQHCI=m +CONFIG_MMC_HSQ=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_ESDHC_IMX=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SPI=m +CONFIG_MOST=m +CONFIG_MOTORCOMM_PHY=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_OMAP2=m +CONFIG_MTD_NAND_OMAP_BCH_BUILD=m +CONFIG_MTD_OF_PARTS=m +CONFIG_MTD_PHYSMAP_GEMINI=y +CONFIG_MTD_PHYSMAP_VERSATILE=y +CONFIG_MTD_RAW_NAND=m +CONFIG_NET_DSA=m +CONFIG_NET_DSA_MSCC_FELIX=m +CONFIG_NET_DSA_REALTEK_MDIO=m +CONFIG_NET_DSA_REALTEK_SMI=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_DAVICOM=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=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_NULL_TTY=m +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NVMEM=y +CONFIG_NXP_C45_TJA11XX_PHY=m +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_POOL_STATS=y +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_EPF_NTB=m +CONFIG_PCI_LAYERSCAPE=y +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCMCIA is not set +CONFIG_PCS_XPCS=m +CONFIG_PECI=m +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHY_CAN_TRANSCEIVER=m +CONFIG_PHY_PXA_28NM_HSIC=m +CONFIG_PHY_PXA_28NM_USB2=m +CONFIG_PHY_TI_GMII_SEL=m +CONFIG_PINCTRL=y +CONFIG_PM=y +# CONFIG_PMIC_OPREGION is not set +CONFIG_PM_DEVFREQ=y +CONFIG_POWERCAP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +# 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_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_PVPANIC=y +CONFIG_PWM=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_RAPIDIO=y +CONFIG_RAVE_SP_CORE=m +CONFIG_RC_CORE=m +CONFIG_REED_SOLOMON=m +CONFIG_REGMAP_I2C=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_EFI=y +CONFIG_RTC_DRV_GOLDFISH=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_EFCT=m +CONFIG_SCSI_ESAS2R=m +CONFIG_SCSI_FDOMAIN_PCI=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_MPI3MR=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_Q54SJ108A2=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_SERIAL_SIFIVE=m +CONFIG_SERIO=y +CONFIG_SFC=m +CONFIG_SFC_FALCON=m +CONFIG_SFC_SIENA=m +CONFIG_SGI_PARTITION=y +CONFIG_SLIP=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_DMAENGINE_PCM=m +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +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_IMX8M=y +CONFIG_SOC_TI=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SPI=y +CONFIG_SPI_ROCKCHIP=m +CONFIG_SPI_SIFIVE=m +CONFIG_SPMI=m +CONFIG_SRAM=y +CONFIG_SSB=m +CONFIG_STAGING=y +CONFIG_STANDALONE=y +CONFIG_SUN_PARTITION=y +# CONFIG_SURFACE_3_POWER_OPREGION is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +CONFIG_SYSFB_SIMPLEFB=y +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSV_FS=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_CR50=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_TOUCHSCREEN_ELAN=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TTY_PRINTK=y +CONFIG_UACCE=m +CONFIG_UBSAN=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_USB4=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_EMXX=m +CONFIG_USB_GADGET=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_SUPPORT=y +CONFIG_VDPA=m +CONFIG_VFIO=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_CORE=m +CONFIG_VFIO_VIRQFD=m +CONFIG_VIDEO_TI_CAL_MC=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VMAP_STACK=y +CONFIG_VME_BUS=y +CONFIG_VMXNET3=m +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +CONFIG_W1=m +CONFIG_WAN=y +CONFIG_WDTPCI=m +CONFIG_WWAN=y +CONFIG_X25=m +CONFIG_XEN=y +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=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 --- linux-5.19.0.orig/debian.master/config/arm64/config.flavour.generic +++ linux-5.19.0/debian.master/config/arm64/config.flavour.generic @@ -0,0 +1,13 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_64K_PAGES is not set +CONFIG_ARM64_CONT_PMD_SHIFT=4 +CONFIG_ARM64_CONT_PTE_SHIFT=4 +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_FORCE_MAX_ZONEORDER=13 +CONFIG_PGTABLE_LEVELS=4 --- linux-5.19.0.orig/debian.master/config/arm64/config.flavour.generic-64k +++ linux-5.19.0/debian.master/config/arm64/config.flavour.generic-64k @@ -0,0 +1,13 @@ +# +# Config options for config.flavour.generic-64k automatically generated by splitconfig.pl +# +CONFIG_ARCH_MMAP_RND_BITS_MAX=29 +CONFIG_ARCH_MMAP_RND_BITS_MIN=14 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=7 +# CONFIG_ARM64_4K_PAGES is not set +CONFIG_ARM64_64K_PAGES=y +CONFIG_ARM64_CONT_PMD_SHIFT=5 +CONFIG_ARM64_CONT_PTE_SHIFT=5 +CONFIG_ARM64_PAGE_SHIFT=16 +CONFIG_FORCE_MAX_ZONEORDER=14 +CONFIG_PGTABLE_LEVELS=3 --- linux-5.19.0.orig/debian.master/config/armhf/config.common.armhf +++ linux-5.19.0/debian.master/config/armhf/config.common.armhf @@ -0,0 +1,711 @@ +# +# Config options for config.common.armhf automatically generated by splitconfig.pl +# +CONFIG_6LOWPAN=m +CONFIG_AC97_BUS=y +CONFIG_ACCESSIBILITY=y +CONFIG_AD525X_DPOT=m +CONFIG_ADFS_FS=m +CONFIG_ADIN1100_PHY=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_AQTION=m +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_NR_GPIO=2048 +# CONFIG_ARCH_SUNXI is not set +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_BAREUDP=m +CONFIG_BATMAN_ADV=m +CONFIG_BCH=y +CONFIG_BCM84881_PHY=y +CONFIG_BCMA=m +CONFIG_BCM_KONA_USB2_PHY=m +CONFIG_BCM_VK=m +CONFIG_BE2ISCSI=m +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BSD_DISKLABEL=y +CONFIG_C2PORT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_CAIF=m +CONFIG_CAN=m +CONFIG_CB710_CORE=m +CONFIG_CC_VERSION_TEXT="arm-linux-gnueabihf-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +CONFIG_CDROM_PKTCDVD=m +CONFIG_CMA=y +CONFIG_CMDLINE="" +CONFIG_CMDLINE_PARTITION=y +CONFIG_COMEDI=m +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_AXG_AUDIO is not set +CONFIG_COMMON_CLK_XLNX_CLKWZRD=m +CONFIG_COUNTER=m +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CRAMFS=m +CONFIG_CRC7=m +CONFIG_CRC8=y +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO_DEV_ATMEL_ECC=m +CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_CXL_BUS=m +# CONFIG_DEBUG_INFO_BTF is not set +CONFIG_DECNET=m +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +CONFIG_DMADEVICES=y +CONFIG_DMA_CMA=y +# CONFIG_DMA_PERNUMA_CMA is not set +CONFIG_DMA_VIRTUAL_CHANNELS=y +# CONFIG_DM_DEBUG is not set +CONFIG_DNET=m +CONFIG_DP83TD510_PHY=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +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_SIMPLEDRM=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DS1682=m +CONFIG_DUMMY_IRQ=m +CONFIG_DWMAC_INTEL_PLAT=m +CONFIG_DW_WATCHDOG=m +CONFIG_DW_XDATA_PCIE=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 is not set +CONFIG_EXFAT_FS=m +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=m +CONFIG_FB_SIS=m +CONFIG_FB_SM712=m +CONFIG_FB_SSD1307=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_FIRMWARE_MEMMAP=y +CONFIG_FORTIFY_SOURCE=y +CONFIG_FPGA_BRIDGE=m +CONFIG_FPGA_DFL=m +CONFIG_FRAME_WARN=1024 +# CONFIG_FSL_MC_BUS is not set +CONFIG_FUSION=y +CONFIG_GAMEPORT=m +CONFIG_GENERIC_PHY=y +CONFIG_GNSS=m +# CONFIG_GOLDFISH is not set +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_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_TPIC2810=m +CONFIG_GPIO_TWL4030=y +CONFIG_GPIO_TWL6040=y +CONFIG_GPIO_VIRTIO=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_HISI_HIKEY_USB=m +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_HTE=y +CONFIG_HWMON=y +CONFIG_HWSPINLOCK=y +CONFIG_HW_RANDOM_CCTRNG=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_HZ=250 +# CONFIG_HZ_100 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_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_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_VIRTIO=m +CONFIG_I2C_XILINX=m +CONFIG_I3C=m +CONFIG_I6300ESB_WDT=m +CONFIG_ICS932S401=m +CONFIG_IEEE802154=m +CONFIG_IIO=m +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_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTERCONNECT=y +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +CONFIG_IOMMU_IOVA=m +CONFIG_IPACK_BUS=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_VS_TWOS=m +CONFIG_IRQ_BYPASS_MANAGER=m +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_LAPB=m +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_MARVELL_88X2222_PHY=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MCB=m +CONFIG_MCTP=y +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX=m +CONFIG_MD_MULTIPATH=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MEDIA_CEC_SUPPORT=y +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_ATC260X_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_IQS62X=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_MP2629=m +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RT4831=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_VX855=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM8994=m +CONFIG_MHI_BUS=m +CONFIG_MHI_BUS_EP=m +CONFIG_MII=y +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=m +CONFIG_MLX5_SF=y +CONFIG_MLX5_VFIO_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_CQHCI=y +# CONFIG_MMC_HSQ is not set +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SPI=m +CONFIG_MOST=m +CONFIG_MOTORCOMM_PHY=m +CONFIG_MTD=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_NAND_CORE=y +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH_BUILD=y +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_PHYSMAP_GEMINI=y +CONFIG_MTD_PHYSMAP_VERSATILE=y +CONFIG_MTD_RAW_NAND=y +CONFIG_NET_DSA=m +CONFIG_NET_DSA_MSCC_FELIX=m +CONFIG_NET_DSA_REALTEK_MDIO=m +CONFIG_NET_DSA_REALTEK_SMI=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_DAVICOM=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=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_NULL_TTY=m +CONFIG_NVMEM=y +CONFIG_NXP_C45_TJA11XX_PHY=m +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_PAGE_POOL_STATS=y +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_PARAVIRT is not set +CONFIG_PARPORT=m +CONFIG_PATA_SIS=m +CONFIG_PC104=y +CONFIG_PCCARD=m +CONFIG_PCIEPORTBUS=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_EPF_NTB=m +# CONFIG_PCI_LAYERSCAPE is not set +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCMCIA is not set +CONFIG_PCS_XPCS=m +CONFIG_PECI=m +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHY_CAN_TRANSCEIVER=m +CONFIG_PHY_PXA_28NM_HSIC=m +CONFIG_PHY_PXA_28NM_USB2=m +CONFIG_PHY_TI_GMII_SEL=y +CONFIG_PINCTRL=y +CONFIG_PM=y +CONFIG_PM_DEVFREQ=y +CONFIG_POWERCAP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +# 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_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_PVPANIC=y +CONFIG_PWM=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_RAPIDIO=y +CONFIG_RAVE_SP_CORE=m +CONFIG_RC_CORE=m +CONFIG_REED_SOLOMON=y +CONFIG_REGMAP_I2C=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +CONFIG_REGULATOR_TPS65217=y +CONFIG_REGULATOR_TWL4030=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_EFI=y +CONFIG_RTC_DRV_GOLDFISH=m +CONFIG_RTC_DRV_PCF8523=y +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_EFCT=m +CONFIG_SCSI_ESAS2R=m +CONFIG_SCSI_FDOMAIN_PCI=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_MPI3MR=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_Q54SJ108A2=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_SERIAL_SIFIVE=m +CONFIG_SERIO=y +CONFIG_SFC=m +CONFIG_SFC_FALCON=m +CONFIG_SFC_SIENA=m +CONFIG_SGI_PARTITION=y +CONFIG_SLIP=m +CONFIG_SND=y +CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_DMAENGINE_PCM=y +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_IMX_SOC=y +CONFIG_SND_PCM=y +CONFIG_SND_SOC=y +CONFIG_SND_SOC_FSL_SSI=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_SOC_IMX_AUDMUX=y +CONFIG_SND_SOC_IMX_PCM_DMA=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_SGTL5000=y +CONFIG_SND_TIMER=y +# CONFIG_SOC_BRCMSTB is not set +# CONFIG_SOC_IMX8M is not set +CONFIG_SOC_TI=y +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=y +CONFIG_SPI=y +CONFIG_SPI_ROCKCHIP=m +CONFIG_SPI_SIFIVE=m +CONFIG_SPMI=m +CONFIG_SRAM=y +CONFIG_SSB=m +CONFIG_STAGING=y +CONFIG_STANDALONE=y +CONFIG_SUN_PARTITION=y +CONFIG_SYSFB_SIMPLEFB=y +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSV_FS=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_CR50=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_TOUCHSCREEN_ELAN=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TTY_PRINTK=y +CONFIG_UACCE=m +CONFIG_UBSAN=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_USB4=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_EMXX=y +CONFIG_USB_GADGET=y +CONFIG_USB_MUSB_HDRC=y +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_SUPPORT=y +CONFIG_VDPA=m +CONFIG_VFIO=y +CONFIG_VFIO_IOMMU_TYPE1=y +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_CORE=m +CONFIG_VFIO_VIRQFD=m +CONFIG_VIRTIO_MMIO=y +CONFIG_VMAP_STACK=y +CONFIG_VME_BUS=y +CONFIG_VMXNET3=m +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +CONFIG_W1=m +CONFIG_WAN=y +CONFIG_WDTPCI=m +CONFIG_WWAN=y +CONFIG_X25=m +# CONFIG_XEN is not set +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=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 --- linux-5.19.0.orig/debian.master/config/armhf/config.flavour.generic +++ linux-5.19.0/debian.master/config/armhf/config.flavour.generic @@ -0,0 +1,15 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_ARCH_ALPINE=y +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +CONFIG_ARCH_UNIPHIER=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +# CONFIG_ARM_HIGHBANK_CPUIDLE is not set +CONFIG_ARM_L1_CACHE_SHIFT=7 +# CONFIG_ARM_LPAE is not set +CONFIG_FORCE_MAX_ZONEORDER=12 +CONFIG_PGTABLE_LEVELS=2 +CONFIG_SOC_AM33XX=y +# CONFIG_VIDEO_TI_CAL_MC is not set --- linux-5.19.0.orig/debian.master/config/armhf/config.flavour.generic-lpae +++ linux-5.19.0/debian.master/config/armhf/config.flavour.generic-lpae @@ -0,0 +1,15 @@ +# +# Config options for config.flavour.generic-lpae automatically generated by splitconfig.pl +# +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARM_ATAG_DTB_COMPAT is not set +CONFIG_ARM_HIGHBANK_CPUIDLE=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_LPAE=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_PGTABLE_LEVELS=3 +# CONFIG_SOC_AM33XX is not set +CONFIG_VIDEO_TI_CAL_MC=y --- linux-5.19.0.orig/debian.master/config/config.common.ubuntu +++ linux-5.19.0/debian.master/config/config.common.ubuntu @@ -0,0 +1,13309 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_104_QUAD_8=m +CONFIG_60XX_WDT=m +CONFIG_64BIT=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_9P_FS=m +CONFIG_9P_FSCACHE=y +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y +# CONFIG_A11Y_BRAILLE_CONSOLE is not set +CONFIG_ABP060MG=m +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_AGDI=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_CPUFREQ_FIE=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_DEBUGGER_USER=y +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_DPTF=y +CONFIG_ACPI_EC_DEBUGFS=m +CONFIG_ACPI_EXTLOG=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_FPDT=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_MDIO=y +CONFIG_ACPI_NFIT=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCC=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PFRUT=m +CONFIG_ACPI_PLATFORM_PROFILE=m +CONFIG_ACPI_PPTT=y +CONFIG_ACPI_PRMT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +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_LIB=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_VIOT=y +CONFIG_ACPI_WATCHDOG=y +CONFIG_ACPI_WMI=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACRN_GUEST=y +CONFIG_ACRN_HSM=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m +CONFIG_AD2S90=m +CONFIG_AD3552R=m +CONFIG_AD5064=m +CONFIG_AD5110=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_AD5766=m +CONFIG_AD5770R=m +CONFIG_AD5791=m +CONFIG_AD5933=m +CONFIG_AD7091R5=m +CONFIG_AD7124=m +CONFIG_AD7150=m +CONFIG_AD7192=m +CONFIG_AD7266=m +CONFIG_AD7280=m +CONFIG_AD7291=m +CONFIG_AD7292=m +CONFIG_AD7293=m +CONFIG_AD7298=m +CONFIG_AD7303=m +CONFIG_AD74413R=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_AD9467=m +CONFIG_AD9523=m +CONFIG_AD9832=m +CONFIG_AD9834=m +CONFIG_ADA4250=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_ADIS16475=m +CONFIG_ADIS16480=m +CONFIG_ADI_AXI_ADC=m +CONFIG_ADJD_S311=m +CONFIG_ADM8211=m +CONFIG_ADMV1013=m +CONFIG_ADMV1014=m +CONFIG_ADMV4420=m +CONFIG_ADMV8818=m +CONFIG_ADRF6780=m +CONFIG_ADT7316=m +CONFIG_ADT7316_I2C=m +CONFIG_ADT7316_SPI=m +CONFIG_ADUX1020=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ADVISE_SYSCALLS=y +CONFIG_ADV_SWBUTTON=m +CONFIG_ADXL313=m +CONFIG_ADXL313_I2C=m +CONFIG_ADXL313_SPI=m +CONFIG_ADXL355=m +CONFIG_ADXL355_I2C=m +CONFIG_ADXL355_SPI=m +CONFIG_ADXL367=m +CONFIG_ADXL367_I2C=m +CONFIG_ADXL367_SPI=m +CONFIG_ADXL372=m +CONFIG_ADXL372_I2C=m +CONFIG_ADXL372_SPI=m +CONFIG_ADXRS290=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_AF_UNIX_OOB=y +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=y +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=y +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_AL3010=m +CONFIG_AL3320A=m +CONFIG_ALIBABA_ENI_VDPA=m +CONFIG_ALIENWARE_WMI=m +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIM1535_WDT=m +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_ALTERNATE_USER_ADDRESS_SPACE=y +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_AMDTEE=m +CONFIG_AMD_HSMP=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_PMC=m +CONFIG_AMD_PTDMA=m +CONFIG_AMD_SFH_HID=m +CONFIG_AMD_XGBE=m +CONFIG_AMD_XGBE_DCB=y +CONFIG_AMD_XGBE_HAVE_ECC=y +CONFIG_AMILO_RFKILL=m +CONFIG_AMLOGIC_THERMAL=m +CONFIG_AMT=m +CONFIG_ANDROID_BINDERFS=m +CONFIG_ANDROID_BINDER_DEVICES="" +CONFIG_ANDROID_BINDER_IPC=m +# CONFIG_ANDROID_BINDER_IPC_SELFTEST is not set +CONFIG_ANON_VMA_NAME=y +CONFIG_APDS9300=m +CONFIG_APDS9960=m +# CONFIG_APM_EMULATION is not set +CONFIG_APPLDATA_BASE=y +CONFIG_APPLDATA_MEM=m +CONFIG_APPLDATA_NET_SUM=m +CONFIG_APPLDATA_OS=m +CONFIG_APPLE_AIC=y +CONFIG_APPLE_DART=m +CONFIG_APPLE_GMUX=m +CONFIG_APPLE_M1_CPU_PMU=y +CONFIG_APPLE_MAILBOX=m +CONFIG_APPLE_MFI_FASTCHARGE=m +CONFIG_APPLE_PMGR_PWRSTATE=y +CONFIG_APPLE_PROPERTIES=y +CONFIG_APPLE_RTKIT=m +CONFIG_APPLE_SART=m +CONFIG_APPLE_WATCHDOG=m +CONFIG_APQ_GCC_8084=m +CONFIG_APQ_MMCC_8084=m +CONFIG_AQUANTIA_PHY=m +CONFIG_AR5523=m +CONFIG_ARCH_32BIT_OFF_T=y +CONFIG_ARCH_32BIT_USTAT_F_TINODE=y +CONFIG_ARCH_ACTIONS=y +CONFIG_ARCH_AIROHA=y +CONFIG_ARCH_APPLE=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_BCM4908=y +CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BERLIN=y +CONFIG_ARCH_BINFMT_ELF_EXTRA_PHDRS=y +CONFIG_ARCH_BINFMT_ELF_STATE=y +CONFIG_ARCH_BITMAIN=y +CONFIG_ARCH_BRCMSTB=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y +CONFIG_ARCH_CPUIDLE_HALTPOLL=y +CONFIG_ARCH_CPU_PROBE_RELEASE=y +# CONFIG_ARCH_DIGICOLOR is not set +CONFIG_ARCH_DISABLE_KASAN_INLINE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# CONFIG_ARCH_DOVE 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_EXYNOS3 is not set +# CONFIG_ARCH_EXYNOS4 is not set +# CONFIG_ARCH_EXYNOS5 is not set +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_CC_PLATFORM=y +CONFIG_ARCH_HAS_COPY_MC=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_CURRENT_STACK_POINTER=y +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +CONFIG_ARCH_HAS_DEBUG_VM_PGTABLE=y +CONFIG_ARCH_HAS_DEBUG_WX=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +CONFIG_ARCH_HAS_DMA_MAP_DIRECT=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_ARCH_HAS_EARLY_DEBUG=y +CONFIG_ARCH_HAS_ELFCORE_COMPAT=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=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_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_MEMREMAP_COMPAT_ALIGN=y +CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_ARCH_HAS_MMIOWB=y +CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE=y +CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=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_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_SUBPAGE_FAULTS=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_UBSAN_SANITIZE_ALL=y +CONFIG_ARCH_HAS_VDSO_DATA=y +CONFIG_ARCH_HAS_VM_GET_PAGE_PROT=y +CONFIG_ARCH_HAS_ZONE_DMA_SET=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HAVE_ELF_PROT=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_HPE=y +CONFIG_ARCH_HPE_GXP=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_INTEL_SOCFPGA=y +# CONFIG_ARCH_IPQ40XX is not set +CONFIG_ARCH_K3=y +CONFIG_ARCH_KEEMBAY=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_MHP_MEMMAP_ON_MEMORY_ENABLE=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_MSM8916=y +CONFIG_ARCH_MSM8960=y +CONFIG_ARCH_MSM8974=y +CONFIG_ARCH_MSM8X60=y +CONFIG_ARCH_MSTARV7=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_MXC=y +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y +CONFIG_ARCH_NPCM=y +CONFIG_ARCH_NPCM7XX=y +CONFIG_ARCH_OMAP=y +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_QCOM=y +CONFIG_ARCH_R7S72100=y +CONFIG_ARCH_R7S9210=y +# CONFIG_ARCH_R8A73A4 is not set +CONFIG_ARCH_R8A7740=y +CONFIG_ARCH_R8A7742=y +CONFIG_ARCH_R8A7743=y +CONFIG_ARCH_R8A7744=y +CONFIG_ARCH_R8A7745=y +CONFIG_ARCH_R8A77470=y +CONFIG_ARCH_R8A774A1=y +CONFIG_ARCH_R8A774B1=y +CONFIG_ARCH_R8A774C0=y +CONFIG_ARCH_R8A774E1=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_R8A77950=y +CONFIG_ARCH_R8A77951=y +CONFIG_ARCH_R8A77960=y +CONFIG_ARCH_R8A77961=y +CONFIG_ARCH_R8A77965=y +CONFIG_ARCH_R8A77970=y +CONFIG_ARCH_R8A77980=y +CONFIG_ARCH_R8A77990=y +CONFIG_ARCH_R8A77995=y +CONFIG_ARCH_R8A779A0=y +CONFIG_ARCH_R8A779F0=y +CONFIG_ARCH_R8A779G0=y +CONFIG_ARCH_R9A06G032=y +CONFIG_ARCH_R9A07G043=y +CONFIG_ARCH_R9A07G044=y +CONFIG_ARCH_R9A07G054=y +CONFIG_ARCH_R9A09G011=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_RV32I is not set +CONFIG_ARCH_RV64I=y +CONFIG_ARCH_RZG2L=y +CONFIG_ARCH_RZN1=y +CONFIG_ARCH_S32=y +# 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_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARX5=y +CONFIG_ARCH_SPRD=y +CONFIG_ARCH_STACKWALK=y +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_STM32 is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_ARCH_SUPPORTS_CFI_CLANG=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_HUGETLBFS=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG=y +CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y +CONFIG_ARCH_SUPPORTS_SHADOW_CALL_STACK=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_NONZERO_CPU=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_SYNQUACER=y +CONFIG_ARCH_TEGRA=y +CONFIG_ARCH_TEGRA_114_SOC=y +CONFIG_ARCH_TEGRA_124_SOC=y +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_186_SOC=y +CONFIG_ARCH_TEGRA_194_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y +CONFIG_ARCH_TEGRA_234_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_GNU_PROPERTY=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +CONFIG_ARCH_USE_MEMTEST=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_SYM_ANNOTATIONS=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_VISCONTI=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_ARCH_WANTS_NO_INSTR=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_BPF_JIT=y +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=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_LD_ORPHAN_WARN=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_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_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_ACPI_PARKING_PROTOCOL=y +CONFIG_ARM64_AMU_EXTN=y +CONFIG_ARM64_AS_HAS_MTE=y +CONFIG_ARM64_BTI=y +CONFIG_ARM64_CNP=y +CONFIG_ARM64_CRYPTO=y +# CONFIG_ARM64_DEBUG_PRIORITY_MASKING is not set +CONFIG_ARM64_E0PD=y +CONFIG_ARM64_EPAN=y +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1165522=y +CONFIG_ARM64_ERRATUM_1286807=y +CONFIG_ARM64_ERRATUM_1319367=y +CONFIG_ARM64_ERRATUM_1418040=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_1508412=y +CONFIG_ARM64_ERRATUM_1530923=y +CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_ARM64_ERRATUM_1742098=y +CONFIG_ARM64_ERRATUM_2051678=y +CONFIG_ARM64_ERRATUM_2054223=y +CONFIG_ARM64_ERRATUM_2067961=y +# CONFIG_ARM64_ERRATUM_2077057 is not set +CONFIG_ARM64_ERRATUM_2441007=y +CONFIG_ARM64_ERRATUM_2441009=y +CONFIG_ARM64_ERRATUM_2457168=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_LD_HAS_FIX_ERRATUM_843419=y +CONFIG_ARM64_LSE_ATOMICS=y +CONFIG_ARM64_MODULE_PLTS=y +CONFIG_ARM64_MTE=y +CONFIG_ARM64_PAN=y +CONFIG_ARM64_PA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +# CONFIG_ARM64_PA_BITS_52 is not set +CONFIG_ARM64_PMEM=y +CONFIG_ARM64_PSEUDO_NMI=y +CONFIG_ARM64_PTR_AUTH=y +CONFIG_ARM64_PTR_AUTH_KERNEL=y +CONFIG_ARM64_RAS_EXTN=y +# CONFIG_ARM64_RELOC_TEST is not set +CONFIG_ARM64_SME=y +CONFIG_ARM64_SVE=y +CONFIG_ARM64_SW_TTBR0_PAN=y +CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_ARM64_TLB_RANGE=y +CONFIG_ARM64_USE_LSE_ATOMICS=y +CONFIG_ARM64_VA_BITS=48 +# CONFIG_ARM64_VA_BITS_39 is not set +# CONFIG_ARM64_VA_BITS_42 is not set +CONFIG_ARM64_VA_BITS_48=y +# CONFIG_ARM64_VA_BITS_52 is not set +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y +CONFIG_ARM64_WORKAROUND_TSB_FLUSH_FAILURE=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_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_CMN=m +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_DMC620_PMU=m +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_764319=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 is not set +# CONFIG_ARM_EXYNOS_CPUIDLE is not set +CONFIG_ARM_FFA_SMCCC=y +CONFIG_ARM_FFA_TRANSPORT=m +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_ARM_GIC_PM=y +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_GT_INITIAL_PRESCALER_VAL=1 +CONFIG_ARM_HAS_GROUP_RELOCS=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_ARM_HEAVY_MB=y +CONFIG_ARM_HIGHBANK_CPUFREQ=m +CONFIG_ARM_IMX6Q_CPUFREQ=m +CONFIG_ARM_IMX8M_DDRC_DEVFREQ=m +CONFIG_ARM_IMX_BUS_DEVFREQ=m +CONFIG_ARM_IMX_CPUFREQ_DT=m +CONFIG_ARM_KPROBES_TEST=m +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT_7=y +CONFIG_ARM_MEDIATEK_CPUFREQ=m +CONFIG_ARM_MEDIATEK_CPUFREQ_HW=m +CONFIG_ARM_MHU=m +CONFIG_ARM_MHU_V2=m +CONFIG_ARM_MODULE_PLTS=y +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_CPUIDLE_DOMAIN=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_QCOM_SPM_CPUIDLE=y +CONFIG_ARM_RASPBERRYPI_CPUFREQ=m +CONFIG_ARM_RK3399_DMC_DEVFREQ=m +CONFIG_ARM_SBSA_WATCHDOG=m +CONFIG_ARM_SCMI_CPUFREQ=m +CONFIG_ARM_SCMI_HAVE_MSG=y +CONFIG_ARM_SCMI_HAVE_SHMEM=y +CONFIG_ARM_SCMI_HAVE_TRANSPORT=y +CONFIG_ARM_SCMI_POWER_DOMAIN=m +CONFIG_ARM_SCMI_PROTOCOL=y +CONFIG_ARM_SCMI_TRANSPORT_MAILBOX=y +CONFIG_ARM_SCMI_TRANSPORT_SMC=y +CONFIG_ARM_SCMI_TRANSPORT_SMC_ATOMIC_ENABLE=y +CONFIG_ARM_SCMI_TRANSPORT_VIRTIO=y +CONFIG_ARM_SCMI_TRANSPORT_VIRTIO_ATOMIC_ENABLE=y +CONFIG_ARM_SCMI_TRANSPORT_VIRTIO_VERSION1_COMPLIANCE=y +CONFIG_ARM_SCPI_CPUFREQ=m +CONFIG_ARM_SCPI_POWER_DOMAIN=m +CONFIG_ARM_SCPI_PROTOCOL=m +CONFIG_ARM_SDE_INTERFACE=y +CONFIG_ARM_SMCCC_SOC_ID=y +CONFIG_ARM_SMC_WATCHDOG=m +# CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT is not set +# CONFIG_ARM_SMMU_LEGACY_DT_BINDINGS is not set +CONFIG_ARM_SMMU_QCOM=y +CONFIG_ARM_SMMU_V3=y +CONFIG_ARM_SMMU_V3_PMU=m +CONFIG_ARM_SMMU_V3_SVA=y +CONFIG_ARM_SP805_WATCHDOG=m +CONFIG_ARM_SPE_PMU=m +CONFIG_ARM_SUN8I_A33_MBUS_DEVFREQ=m +CONFIG_ARM_TEGRA124_CPUFREQ=y +CONFIG_ARM_TEGRA186_CPUFREQ=m +CONFIG_ARM_TEGRA194_CPUFREQ=m +CONFIG_ARM_TEGRA20_CPUFREQ=y +# CONFIG_ARM_TEGRA_CPUIDLE is not set +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_VIC=y +CONFIG_ARM_VIC_NR=2 +CONFIG_ARM_VIRT_EXT=y +CONFIG_AS3935=m +CONFIG_AS73211=m +CONFIG_ASM_MODVERSIONS=y +CONFIG_ASN1=y +CONFIG_ASN1_ENCODER=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_SOCINFO=y +CONFIG_ASPEED_UART_ROUTING=m +CONFIG_ASPEED_WATCHDOG=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_TF103C_DOCK=m +CONFIG_ASUS_WIRELESS=m +CONFIG_ASUS_WMI=m +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +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_AS_AVX512=y +CONFIG_AS_HAS_ARMV8_2=y +CONFIG_AS_HAS_ARMV8_4=y +CONFIG_AS_HAS_ARMV8_5=y +CONFIG_AS_HAS_CFI_NEGATE_RA_STATE=y +CONFIG_AS_HAS_LDAPR=y +CONFIG_AS_HAS_LSE_ATOMICS=y +CONFIG_AS_HAS_NON_CONST_LEB128=y +CONFIG_AS_HAS_PAC=y +CONFIG_AS_HAS_SHA3=y +CONFIG_AS_IS_GNU=y +CONFIG_AS_SHA1_NI=y +CONFIG_AS_SHA256_NI=y +CONFIG_AS_TPAUSE=y +CONFIG_AS_VERSION=23900 +CONFIG_AS_VFP_VMRS_FPINST=y +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_FORCE=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_ATH11K=m +CONFIG_ATH11K_AHB=m +# CONFIG_ATH11K_DEBUG is not set +CONFIG_ATH11K_DEBUGFS=y +CONFIG_ATH11K_PCI=m +CONFIG_ATH11K_SPECTRAL=y +CONFIG_ATH11K_TRACING=y +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_EZO_SENSOR=m +CONFIG_ATLAS_PH_SENSOR=m +CONFIG_ATMEL=m +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_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_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_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_AUTO_ZRELADDR=y +CONFIG_AUXILIARY_BUS=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_GPIO=m +CONFIG_BACKLIGHT_KTD253=m +CONFIG_BACKLIGHT_LED=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_PWM=m +CONFIG_BACKLIGHT_QCOM_WLED=m +CONFIG_BACKLIGHT_RAVE_SP=m +CONFIG_BACKLIGHT_RT4831=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_BACKTRACE_VERBOSE is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_BARCO_P50_GPIO=m +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_MCAST=y +CONFIG_BATMAN_ADV_NC=y +# CONFIG_BATMAN_ADV_TRACING is not set +CONFIG_BATTERY_88PM860X=m +CONFIG_BATTERY_ACER_A500=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_CW2015=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_GOLDFISH=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_MAX1721X=m +CONFIG_BATTERY_RT5033=m +CONFIG_BATTERY_RX51=m +CONFIG_BATTERY_SAMSUNG_SDI=y +CONFIG_BATTERY_SBS=m +CONFIG_BATTERY_SURFACE=m +CONFIG_BATTERY_TWL4030_MADC=m +CONFIG_BATTERY_UG3105=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCACHE=m +CONFIG_BCACHE_ASYNC_REGISTRATION=y +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +# CONFIG_BCACHE_DEBUG is not set +CONFIG_BCM2711_THERMAL=m +CONFIG_BCM2835_MBOX=y +CONFIG_BCM2835_POWER=y +CONFIG_BCM2835_THERMAL=m +CONFIG_BCM2835_VCHIQ=m +CONFIG_BCM2835_VCHIQ_MMAL=m +CONFIG_BCM2835_WDT=m +CONFIG_BCM4908_ENET=m +CONFIG_BCM54140_PHY=m +CONFIG_BCM7038_L1_IRQ=y +CONFIG_BCM7038_WDT=m +CONFIG_BCM7120_L2_IRQ=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_PMB=y +CONFIG_BCM_SBA_RAID=m +CONFIG_BCM_SR_THERMAL=m +CONFIG_BCM_VIDEOCORE=m +CONFIG_BCM_VK_TTY=y +CONFIG_BD957XMUF_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_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_ZFLAT=y +CONFIG_BITREVERSE=y +CONFIG_BLK_CGROUP=y +CONFIG_BLK_CGROUP_FC_APPID=y +CONFIG_BLK_CGROUP_IOCOST=y +# CONFIG_BLK_CGROUP_IOLATENCY is not set +CONFIG_BLK_CGROUP_IOPRIO=y +CONFIG_BLK_CGROUP_RWSTAT=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_BSG_COMMON=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_FD_RAWCMD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_INTEGRITY_T10=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_RNBD=y +CONFIG_BLK_DEV_RNBD_CLIENT=m +CONFIG_BLK_DEV_RNBD_SERVER=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_ZONED=y +CONFIG_BLK_ICQ=y +CONFIG_BLK_INLINE_ENCRYPTION=y +CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_RDMA=y +CONFIG_BLK_MQ_STACKING=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y +CONFIG_BLK_RQ_ALLOC_TIME=y +CONFIG_BLK_SED_OPAL=y +CONFIG_BLK_WBT=y +CONFIG_BLK_WBT_MQ=y +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BLOCK_HOLDER_DEPRECATED=y +CONFIG_BLOCK_LEGACY_AUTOLOAD=y +CONFIG_BL_SWITCHER=y +CONFIG_BL_SWITCHER_DUMMY_IF=m +CONFIG_BMA220=m +CONFIG_BMA400=m +CONFIG_BMA400_I2C=m +CONFIG_BMA400_SPI=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_BMI088_ACCEL=m +CONFIG_BMI088_ACCEL_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_HOTPLUG_CPU0 is not set +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTTIME_TRACING=y +# CONFIG_BOOTX_TEXT is not set +CONFIG_BOOT_CONFIG=y +# CONFIG_BOOT_CONFIG_EMBED is not set +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_BOOT_VESA_SUPPORT=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_JIT_DEFAULT_ON=y +CONFIG_BPF_KPROBE_OVERRIDE=y +CONFIG_BPF_LSM=y +# CONFIG_BPF_PRELOAD is not set +CONFIG_BPF_STREAM_PARSER=y +CONFIG_BPF_SYSCALL=y +CONFIG_BPF_UNPRIV_DEFAULT_OFF=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_BRCMSMAC_LEDS=y +CONFIG_BRCMSTB_DPFE=y +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_BRCM_USB_PINMAP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_CFM=y +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_MRP=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_AOSPEXT=y +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=y +CONFIG_BT_INTEL=m +CONFIG_BT_LE=y +CONFIG_BT_LEDS=y +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_MSFTEXT=y +CONFIG_BT_MTK=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_VIRTIO=m +CONFIG_BUG=y +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +CONFIG_BUILDTIME_MCOUNT_SORT=y +CONFIG_BUILDTIME_TABLE_SORT=y +CONFIG_BUILD_BIN2C=y +CONFIG_BUILD_SALT="" +CONFIG_BXT_WC_PMIC_OPREGION=y +CONFIG_BYTCRC_PMIC_OPREGION=y +CONFIG_C2PORT_DURAMAR_2150=m +CONFIG_CACHEFILES=m +# CONFIG_CACHEFILES_DEBUG is not set +CONFIG_CACHEFILES_ERROR_INJECTION=y +# CONFIG_CACHEFILES_ONDEMAND 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_DRIVERS=y +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_TTY=m +CONFIG_CAIF_USB=m +CONFIG_CAIF_VIRTIO=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_CTUCANFD=m +CONFIG_CAN_CTUCANFD_PCI=m +CONFIG_CAN_CTUCANFD_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_ETAS_ES58X=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_ISOTP=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_MCP251XFD=m +# CONFIG_CAN_MCP251XFD_SANITY is not set +CONFIG_CAN_MSCAN=m +CONFIG_CAN_M_CAN=m +CONFIG_CAN_M_CAN_PCI=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_UCAN=m +CONFIG_CAN_VCAN=m +CONFIG_CAN_VXCAN=m +CONFIG_CAN_XILINXCAN=m +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_CAN_LINK_STATIC=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_GOTO_OUTPUT=y +CONFIG_CC_HAS_ASM_GOTO_TIED_OUTPUT=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_BARE=y +CONFIG_CC_HAS_BRANCH_PROT_PAC_RET=y +CONFIG_CC_HAS_BRANCH_PROT_PAC_RET_BTI=y +CONFIG_CC_HAS_IBT=y +CONFIG_CC_HAS_INT128=y +CONFIG_CC_HAS_KASAN_GENERIC=y +CONFIG_CC_HAS_KASAN_SW_TAGS=y +CONFIG_CC_HAS_NO_PROFILE_FN_ATTR=y +CONFIG_CC_HAS_RETURN_THUNK=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y +CONFIG_CC_HAS_SIGN_RETURN_ADDRESS=y +CONFIG_CC_HAS_SLS=y +CONFIG_CC_HAS_UBSAN_BOUNDS=y +CONFIG_CC_HAS_WORKING_NOSANITIZE_ADDRESS=y +CONFIG_CC_HAS_ZERO_CALL_USED_REGS=y +CONFIG_CC_HAVE_SHADOW_CALL_STACK=y +CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y +CONFIG_CC_HAVE_STACKPROTECTOR_TLS=y +CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" +CONFIG_CC_IS_GCC=y +CONFIG_CC_NO_ARRAY_BOUNDS=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_CH7322=m +CONFIG_CEC_CORE=m +CONFIG_CEC_CROS_EC=m +CONFIG_CEC_GPIO=m +CONFIG_CEC_MESON_AO=m +CONFIG_CEC_MESON_G12A_AO=m +CONFIG_CEC_NOTIFIER=y +CONFIG_CEC_PIN=y +# CONFIG_CEC_PIN_ERROR_INJ is not set +# CONFIG_CEC_SAMSUNG_S5P is not set +CONFIG_CEC_SECO=m +CONFIG_CEC_SECO_RC=y +CONFIG_CEC_TEGRA=m +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_MISC=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_BD99954=m +CONFIG_CHARGER_BQ2415X=m +CONFIG_CHARGER_BQ24190=m +CONFIG_CHARGER_BQ24257=m +CONFIG_CHARGER_BQ24735=m +CONFIG_CHARGER_BQ2515X=m +CONFIG_CHARGER_BQ256XX=m +CONFIG_CHARGER_BQ25890=m +CONFIG_CHARGER_BQ25980=m +CONFIG_CHARGER_CPCAP=m +CONFIG_CHARGER_CROS_PCHG=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_LTC4162L=m +CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_MAX14577=m +CONFIG_CHARGER_MAX77650=m +CONFIG_CHARGER_MAX77693=m +CONFIG_CHARGER_MAX77976=m +CONFIG_CHARGER_MAX8903=m +CONFIG_CHARGER_MAX8997=m +CONFIG_CHARGER_MAX8998=m +CONFIG_CHARGER_MP2629=m +CONFIG_CHARGER_MT6360=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_SURFACE=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_INLINE_CRYPTO=y +CONFIG_CHELSIO_IPSEC_INLINE=m +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_CHELSIO_TLS_DEVICE=m +CONFIG_CHROMEOS_ACPI=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHROMEOS_PRIVACY_SCREEN=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_CHTCRC_PMIC_OPREGION=y +CONFIG_CHT_DC_TI_PMIC_OPREGION=y +CONFIG_CHT_WC_PMIC_OPREGION=y +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_SWN_UPCALL=y +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_XATTR=y +CONFIG_CIO2_BRIDGE=y +CONFIG_CIO_DAC=m +# CONFIG_CIO_INJECT is not set +CONFIG_CLANG_VERSION=0 +CONFIG_CLKBLD_I8253=y +CONFIG_CLKEVT_I8253=y +CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y +CONFIG_CLKSRC_EXYNOS_MCT=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_ANALOGBITS_WRPLL_CLN28HPC=y +CONFIG_CLK_BCM2711_DVP=m +CONFIG_CLK_BCM2835=y +CONFIG_CLK_BCM_NS2=y +CONFIG_CLK_BCM_SR=y +CONFIG_CLK_EMEV2=y +CONFIG_CLK_GFM_LPASS_SM8250=m +CONFIG_CLK_ICST=y +CONFIG_CLK_IMX5=y +CONFIG_CLK_IMX6Q=y +CONFIG_CLK_IMX6SL=y +CONFIG_CLK_IMX6SLL=y +CONFIG_CLK_IMX6SX=y +CONFIG_CLK_IMX6UL=y +CONFIG_CLK_IMX7D=y +CONFIG_CLK_IMX7ULP=y +CONFIG_CLK_IMX8MM=y +CONFIG_CLK_IMX8MN=y +CONFIG_CLK_IMX8MP=y +CONFIG_CLK_IMX8MQ=y +CONFIG_CLK_IMX8QXP=y +CONFIG_CLK_IMX8ULP=m +CONFIG_CLK_IMX93=m +CONFIG_CLK_INTEL_SOCFPGA=y +CONFIG_CLK_INTEL_SOCFPGA32=y +CONFIG_CLK_INTEL_SOCFPGA64=y +CONFIG_CLK_LS1028A_PLLDIG=m +CONFIG_CLK_OWL_S500=y +CONFIG_CLK_OWL_S700=y +CONFIG_CLK_OWL_S900=y +CONFIG_CLK_PX30=y +CONFIG_CLK_QORIQ=y +CONFIG_CLK_R7S9210=y +CONFIG_CLK_R8A7740=y +CONFIG_CLK_R8A7742=y +CONFIG_CLK_R8A7743=y +CONFIG_CLK_R8A7745=y +CONFIG_CLK_R8A77470=y +CONFIG_CLK_R8A774A1=y +CONFIG_CLK_R8A774B1=y +CONFIG_CLK_R8A774C0=y +CONFIG_CLK_R8A774E1=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_R8A77960=y +CONFIG_CLK_R8A77961=y +CONFIG_CLK_R8A77965=y +CONFIG_CLK_R8A77970=y +CONFIG_CLK_R8A77980=y +CONFIG_CLK_R8A77990=y +CONFIG_CLK_R8A77995=y +CONFIG_CLK_R8A779A0=y +CONFIG_CLK_R8A779F0=y +CONFIG_CLK_R8A779G0=y +CONFIG_CLK_R9A06G032=y +CONFIG_CLK_R9A07G043=y +CONFIG_CLK_R9A07G044=y +CONFIG_CLK_R9A07G054=y +CONFIG_CLK_R9A09G011=y +CONFIG_CLK_RASPBERRYPI=m +CONFIG_CLK_RCAR_CPG_LIB=y +CONFIG_CLK_RCAR_GEN2_CPG=y +CONFIG_CLK_RCAR_GEN3_CPG=y +CONFIG_CLK_RCAR_GEN4_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_RK3036=y +CONFIG_CLK_RK312X=y +CONFIG_CLK_RK3188=y +CONFIG_CLK_RK322X=y +CONFIG_CLK_RK3288=y +CONFIG_CLK_RK3308=y +CONFIG_CLK_RK3328=y +CONFIG_CLK_RK3368=y +CONFIG_CLK_RK3399=y +CONFIG_CLK_RK3568=y +CONFIG_CLK_RV110X=y +CONFIG_CLK_RZA1=y +CONFIG_CLK_RZG2L=y +CONFIG_CLK_SH73A0=y +CONFIG_CLK_SIFIVE=y +CONFIG_CLK_SIFIVE_PRCI=y +CONFIG_CLK_SP810=y +CONFIG_CLK_STARFIVE_JH7100=y +CONFIG_CLK_STARFIVE_JH7100_AUDIO=m +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 is not set +CONFIG_CLK_VEXPRESS_OSC=y +CONFIG_CLK_VF610=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 +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_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_CMA_SYSFS=y +# CONFIG_CMDLINE_BOOL is not set +# CONFIG_CMDLINE_FORCE is not set +CONFIG_CMDLINE_FROM_BOOTLOADER=y +CONFIG_CMM_IUCV=y +CONFIG_CMODEL_MEDANY=y +# CONFIG_CMODEL_MEDLOW is not set +CONFIG_CMT_SPEECH=m +CONFIG_CNIC=m +CONFIG_CODA_FS=m +# CONFIG_CODE_PATCHING_SELFTEST is not set +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_TESTS=m +CONFIG_COMEDI_TESTS_EXAMPLE=m +CONFIG_COMEDI_TESTS_NI_ROUTES=m +CONFIG_COMEDI_USBDUX=m +CONFIG_COMEDI_USBDUXFAST=m +CONFIG_COMEDI_USBDUXSIGMA=m +CONFIG_COMEDI_USB_DRIVERS=m +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMMAND_LINE_SIZE=4096 +CONFIG_COMMON_CLK_APPLE_NCO=m +CONFIG_COMMON_CLK_ASPEED=y +CONFIG_COMMON_CLK_AXG=y +CONFIG_COMMON_CLK_AXI_CLKGEN=m +CONFIG_COMMON_CLK_BD718XX=m +CONFIG_COMMON_CLK_BM1880=y +CONFIG_COMMON_CLK_CDCE706=m +CONFIG_COMMON_CLK_CDCE925=m +CONFIG_COMMON_CLK_CS2000_CP=m +CONFIG_COMMON_CLK_EN7523=y +CONFIG_COMMON_CLK_FIXED_MMIO=y +CONFIG_COMMON_CLK_FSL_FLEXSPI=m +CONFIG_COMMON_CLK_FSL_SAI=y +CONFIG_COMMON_CLK_G12A=y +CONFIG_COMMON_CLK_GXBB=y +CONFIG_COMMON_CLK_HI3516CV300=m +CONFIG_COMMON_CLK_HI3519=m +CONFIG_COMMON_CLK_HI3559A=y +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_MT6765=y +CONFIG_COMMON_CLK_MT6765_AUDIOSYS=y +CONFIG_COMMON_CLK_MT6765_CAMSYS=y +CONFIG_COMMON_CLK_MT6765_GCESYS=y +CONFIG_COMMON_CLK_MT6765_IMGSYS=y +CONFIG_COMMON_CLK_MT6765_MFGSYS=y +CONFIG_COMMON_CLK_MT6765_MIPI0ASYS=y +CONFIG_COMMON_CLK_MT6765_MIPI0BSYS=y +CONFIG_COMMON_CLK_MT6765_MIPI1ASYS=y +CONFIG_COMMON_CLK_MT6765_MIPI1BSYS=y +CONFIG_COMMON_CLK_MT6765_MIPI2ASYS=y +CONFIG_COMMON_CLK_MT6765_MIPI2BSYS=y +CONFIG_COMMON_CLK_MT6765_MMSYS=y +CONFIG_COMMON_CLK_MT6765_VCODECSYS=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_MT7986=y +CONFIG_COMMON_CLK_MT7986_ETHSYS=y +CONFIG_COMMON_CLK_MT8135=y +CONFIG_COMMON_CLK_MT8167=y +CONFIG_COMMON_CLK_MT8167_AUDSYS=y +CONFIG_COMMON_CLK_MT8167_IMGSYS=y +CONFIG_COMMON_CLK_MT8167_MFGCFG=y +CONFIG_COMMON_CLK_MT8167_MMSYS=y +CONFIG_COMMON_CLK_MT8167_VDECSYS=y +CONFIG_COMMON_CLK_MT8173=y +CONFIG_COMMON_CLK_MT8173_MMSYS=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_MT8186=y +CONFIG_COMMON_CLK_MT8192=y +CONFIG_COMMON_CLK_MT8192_AUDSYS=y +CONFIG_COMMON_CLK_MT8192_CAMSYS=y +CONFIG_COMMON_CLK_MT8192_IMGSYS=y +CONFIG_COMMON_CLK_MT8192_IMP_IIC_WRAP=y +CONFIG_COMMON_CLK_MT8192_IPESYS=y +CONFIG_COMMON_CLK_MT8192_MDPSYS=y +CONFIG_COMMON_CLK_MT8192_MFGCFG=y +CONFIG_COMMON_CLK_MT8192_MMSYS=y +CONFIG_COMMON_CLK_MT8192_MSDC=y +CONFIG_COMMON_CLK_MT8192_SCP_ADSP=y +CONFIG_COMMON_CLK_MT8192_VDECSYS=y +CONFIG_COMMON_CLK_MT8192_VENCSYS=y +CONFIG_COMMON_CLK_MT8195=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_ROCKCHIP=y +CONFIG_COMMON_CLK_RS9_PCIE=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_TPS68470=m +CONFIG_COMMON_CLK_VC5=m +CONFIG_COMMON_CLK_VISCONTI=y +CONFIG_COMMON_CLK_WM831X=m +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMMON_CLK_ZYNQMP=y +CONFIG_COMMON_RESET_HI3660=m +CONFIG_COMMON_RESET_HI6220=m +CONFIG_COMPACTION=y +CONFIG_COMPAL_LAPTOP=m +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_CORDIC=m +CONFIG_COREDUMP=y +# CONFIG_CORESIGHT is not set +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_CORTINA_PHY=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=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE 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_FREQ_THERMAL=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +CONFIG_CPU_IBPB_ENTRY=y +CONFIG_CPU_IBRS_ENTRY=y +# 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_IDLE_THERMAL=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_HYGON=y +CONFIG_CPU_SUP_INTEL=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_UNRET_ENTRY=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=y +CONFIG_CRC64_ROCKSOFT=y +CONFIG_CRC_CCITT=y +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_MKBP_PROXIMITY=m +CONFIG_CROS_EC_PROTO=y +CONFIG_CROS_EC_RPMSG=m +CONFIG_CROS_EC_SENSORHUB=m +CONFIG_CROS_EC_SPI=m +CONFIG_CROS_EC_SYSFS=m +CONFIG_CROS_EC_TYPEC=m +CONFIG_CROS_EC_VBC=m +CONFIG_CROS_KBD_LED_BACKLIGHT=m +CONFIG_CROS_USBPD_LOGGER=m +CONFIG_CROS_USBPD_NOTIFY=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_ARCH_HAVE_LIB_BLAKE2S=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m +CONFIG_CRYPTO_AUTHENC=m +CONFIG_CRYPTO_BLAKE2B=m +CONFIG_CRYPTO_BLAKE2B_NEON=m +CONFIG_CRYPTO_BLAKE2S_ARM=y +CONFIG_CRYPTO_BLAKE2S_X86=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_CHACHA_S390=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_CRC64_ROCKSOFT=y +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_CURVE25519=m +CONFIG_CRYPTO_CURVE25519_NEON=m +CONFIG_CRYPTO_CURVE25519_X86=m +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DES3_EDE_X86_64=m +CONFIG_CRYPTO_DES_S390=m +CONFIG_CRYPTO_DEV_ALLWINNER=y +CONFIG_CRYPTO_DEV_AMLOGIC_GXL=m +# CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG is not set +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_CPT=m +# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set +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_PRNG_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_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_TRNG=m +CONFIG_CRYPTO_DEV_HISI_ZIP=m +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4=m +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_CTS=y +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_AES_SM4_ECB=y +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_ECC=m +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU=m +CONFIG_CRYPTO_DEV_KEEMBAY_OCS_HCU_HMAC_SHA224=y +CONFIG_CRYPTO_DEV_MARVELL=m +CONFIG_CRYPTO_DEV_MARVELL_CESA=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_OCTEONTX2_CPT=m +CONFIG_CRYPTO_DEV_OCTEONTX_CPT=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_4XXX=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_QCE_AEAD=y +# CONFIG_CRYPTO_DEV_QCE_ENABLE_AEAD is not set +CONFIG_CRYPTO_DEV_QCE_ENABLE_ALL=y +# CONFIG_CRYPTO_DEV_QCE_ENABLE_SHA is not set +# CONFIG_CRYPTO_DEV_QCE_ENABLE_SKCIPHER is not set +CONFIG_CRYPTO_DEV_QCE_SHA=y +CONFIG_CRYPTO_DEV_QCE_SKCIPHER=y +CONFIG_CRYPTO_DEV_QCE_SW_MAX_LEN=512 +CONFIG_CRYPTO_DEV_QCOM_RNG=m +CONFIG_CRYPTO_DEV_ROCKCHIP=m +# CONFIG_CRYPTO_DEV_S5P is not set +CONFIG_CRYPTO_DEV_SA2UL=m +CONFIG_CRYPTO_DEV_SAHARA=m +CONFIG_CRYPTO_DEV_SP_CCP=y +CONFIG_CRYPTO_DEV_SP_PSP=y +CONFIG_CRYPTO_DEV_SUN4I_SS=m +# CONFIG_CRYPTO_DEV_SUN4I_SS_DEBUG is not set +CONFIG_CRYPTO_DEV_SUN4I_SS_PRNG=y +CONFIG_CRYPTO_DEV_SUN8I_CE=m +# CONFIG_CRYPTO_DEV_SUN8I_CE_DEBUG is not set +CONFIG_CRYPTO_DEV_SUN8I_CE_HASH=y +CONFIG_CRYPTO_DEV_SUN8I_CE_PRNG=y +CONFIG_CRYPTO_DEV_SUN8I_CE_TRNG=y +CONFIG_CRYPTO_DEV_SUN8I_SS=m +# CONFIG_CRYPTO_DEV_SUN8I_SS_DEBUG is not set +CONFIG_CRYPTO_DEV_SUN8I_SS_HASH=y +CONFIG_CRYPTO_DEV_SUN8I_SS_PRNG=y +CONFIG_CRYPTO_DEV_VIRTIO=m +CONFIG_CRYPTO_DEV_VMX=y +CONFIG_CRYPTO_DEV_VMX_ENCRYPT=m +CONFIG_CRYPTO_DEV_ZYNQMP_AES=m +CONFIG_CRYPTO_DEV_ZYNQMP_SHA3=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_ECDSA=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_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_KDF800108_CTR=y +CONFIG_CRYPTO_KEYWRAP=m +CONFIG_CRYPTO_KPP=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_DES=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=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_ARM=m +CONFIG_CRYPTO_POLY1305_NEON=m +CONFIG_CRYPTO_POLY1305_X86_64=m +CONFIG_CRYPTO_RMD160=m +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_RSA=y +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_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_SKCIPHER=y +CONFIG_CRYPTO_SKCIPHER2=y +CONFIG_CRYPTO_SM2=m +CONFIG_CRYPTO_SM3=m +CONFIG_CRYPTO_SM3_ARM64_CE=m +CONFIG_CRYPTO_SM3_AVX_X86_64=m +CONFIG_CRYPTO_SM4=m +CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_SM4_ARM64_CE=m +CONFIG_CRYPTO_SM4_ARM64_CE_BLK=m +CONFIG_CRYPTO_SM4_ARM64_NEON_BLK=m +CONFIG_CRYPTO_STATS=y +CONFIG_CRYPTO_STREEBOG=m +CONFIG_CRYPTO_TEST=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_ENABLE_OBSOLETE is not set +CONFIG_CRYPTO_USER_API_HASH=m +CONFIG_CRYPTO_USER_API_RNG=m +# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set +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_CS89x0=m +CONFIG_CS89x0_PLATFORM=m +# CONFIG_CSD_LOCK_WAIT_DEBUG is not set +CONFIG_CS_DSP=m +CONFIG_CTCM=m +CONFIG_CURRENT_POINTER_IN_TPIDRURO=y +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_ACPI=m +CONFIG_CXL_BASE=y +CONFIG_CXL_MEM=m +# CONFIG_CXL_MEM_RAW_COMMANDS is not set +CONFIG_CXL_PCI=m +CONFIG_CXL_PMEM=m +CONFIG_CXL_PORT=m +CONFIG_CXL_SUSPEND=y +CONFIG_CX_ECAT=m +CONFIG_CYPRESS_FIRMWARE=m +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_DAMON is not set +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=24 +CONFIG_DAVICOM_PHY=m +CONFIG_DAX=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_DEBUGGER=y +CONFIG_DEBUG_ALIGN_RODATA=y +# CONFIG_DEBUG_ATOMIC_SLEEP 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_FUNCTION_ALIGN_64B is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_DEBUG_FS=y +CONFIG_DEBUG_FS_ALLOW_ALL=y +# CONFIG_DEBUG_FS_ALLOW_NONE is not set +# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set +# 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_MODULES=y +# CONFIG_DEBUG_INFO_COMPRESSED is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +CONFIG_DEBUG_INFO_DWARF5=y +# CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT is not set +# CONFIG_DEBUG_INFO_NONE is not set +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_IRQFLAGS is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KERNEL_DC is not set +# CONFIG_DEBUG_KMAP_LOCAL 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_NET 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_VM_PGTABLE 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_DECOMPRESS_ZSTD=y +CONFIG_DEFAULT_CUBIC=y +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_DEFAULT_INIT="" +# 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_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_DELL_WMI_PRIVACY=y +CONFIG_DELL_WMI_SYSMAN=m +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_DETECT_HUNG_TASK=y +# CONFIG_DEVFREQ_EVENT_EXYNOS_NOCP is not set +# CONFIG_DEVFREQ_EVENT_EXYNOS_PPMU is not set +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_MIGRATION=y +CONFIG_DEVICE_PRIVATE=y +CONFIG_DEVMEM=y +CONFIG_DEVPORT=y +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEVTMPFS_SAFE=y +CONFIG_DEV_APPLETALK=m +CONFIG_DEV_COREDUMP=y +CONFIG_DEV_DAX=m +CONFIG_DEV_DAX_HMEM=m +CONFIG_DEV_DAX_HMEM_DEVICES=y +CONFIG_DEV_DAX_KMEM=m +CONFIG_DEV_DAX_PMEM=m +CONFIG_DHT11=m +CONFIG_DIAG288_WATCHDOG=m +CONFIG_DIMLIB=y +CONFIG_DL2K=m +CONFIG_DLHL60D=m +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_DM9051=m +CONFIG_DM9102=m +# CONFIG_DMABUF_DEBUG is not set +CONFIG_DMABUF_HEAPS=y +CONFIG_DMABUF_HEAPS_CMA=y +CONFIG_DMABUF_HEAPS_SYSTEM=y +# CONFIG_DMABUF_MOVE_NOTIFY is not set +# CONFIG_DMABUF_SELFTESTS is not set +# CONFIG_DMABUF_SYSFS_STATS 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_COHERENT_POOL=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_MAP_BENCHMARK is not set +CONFIG_DMA_NONCOHERENT_MMAP=y +CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +CONFIG_DMA_OPS=y +CONFIG_DMA_OPS_BYPASS=y +CONFIG_DMA_RESTRICTED_POOL=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_SUN6I=m +CONFIG_DMI=y +CONFIG_DMIID=y +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +CONFIG_DMI_SYSFS=m +CONFIG_DM_AUDIT=y +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_EBS=m +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_HST=m +CONFIG_DM_MULTIPATH_IOA=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_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING is not set +CONFIG_DM_WRITECACHE=m +CONFIG_DM_ZERO=m +CONFIG_DM_ZONED=m +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=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_DP83869_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_PCH_FIVR=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_CIK=y +CONFIG_DRM_AMDGPU_SI=y +CONFIG_DRM_AMDGPU_USERPTR=y +CONFIG_DRM_AMD_ACP=y +CONFIG_DRM_AMD_DC=y +CONFIG_DRM_AMD_DC_DCN=y +CONFIG_DRM_AMD_DC_HDCP=y +CONFIG_DRM_AMD_DC_SI=y +CONFIG_DRM_AMD_SECURE_DISPLAY=y +CONFIG_DRM_ANALOGIX_ANX6345=m +CONFIG_DRM_ANALOGIX_ANX7625=m +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_BUDDY=m +CONFIG_DRM_CDNS_DSI=m +CONFIG_DRM_CDNS_MHDP8546=m +CONFIG_DRM_CDNS_MHDP8546_J721E=y +CONFIG_DRM_CHIPONE_ICN6211=m +CONFIG_DRM_CHRONTEL_CH7033=m +CONFIG_DRM_CROS_EC_ANX7688=m +# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_DISPLAY_CONNECTOR=m +CONFIG_DRM_DISPLAY_DP_HELPER=y +CONFIG_DRM_DISPLAY_HDCP_HELPER=y +CONFIG_DRM_DISPLAY_HDMI_HELPER=y +CONFIG_DRM_DISPLAY_HELPER=m +CONFIG_DRM_DP_AUX_BUS=m +CONFIG_DRM_DP_AUX_CHARDEV=y +CONFIG_DRM_DP_CEC=y +CONFIG_DRM_DW_HDMI=m +CONFIG_DRM_DW_HDMI_AHB_AUDIO=m +CONFIG_DRM_DW_HDMI_CEC=m +CONFIG_DRM_DW_HDMI_GP_AUDIO=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_G2D=y +CONFIG_DRM_EXYNOS_GSC=y +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_FSL_LDB=m +CONFIG_DRM_GEM_CMA_HELPER=m +CONFIG_DRM_GEM_SHMEM_HELPER=m +CONFIG_DRM_GM12U320=m +CONFIG_DRM_GMA500=m +CONFIG_DRM_GUD=m +CONFIG_DRM_HDLCD=m +# CONFIG_DRM_HDLCD_SHOW_UNDERRUN is not set +CONFIG_DRM_HISI_HIBMC=m +CONFIG_DRM_HISI_KIRIN=m +CONFIG_DRM_HYPERV=m +CONFIG_DRM_I2C_ADV7511=m +CONFIG_DRM_I2C_ADV7511_AUDIO=y +CONFIG_DRM_I2C_ADV7511_CEC=y +CONFIG_DRM_I915=m +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_FENCE_TIMEOUT=10000 +CONFIG_DRM_I915_FORCE_PROBE="" +CONFIG_DRM_I915_GVT=y +CONFIG_DRM_I915_GVT_KVMGT=m +CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 +# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set +CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 +CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 +CONFIG_DRM_I915_PXP=y +CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 +# CONFIG_DRM_I915_SELFTEST is not set +CONFIG_DRM_I915_STOP_TIMEOUT=100 +# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set +# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set +CONFIG_DRM_I915_TIMESLICE_DURATION=1 +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_DCSS=m +CONFIG_DRM_IMX_HDMI=m +CONFIG_DRM_IMX_LDB=m +CONFIG_DRM_IMX_PARALLEL_DISPLAY=m +CONFIG_DRM_IMX_TVE=m +CONFIG_DRM_ITE_IT6505=m +CONFIG_DRM_ITE_IT66121=m +CONFIG_DRM_KMB_DISPLAY=m +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_LONTIUM_LT8912B=m +CONFIG_DRM_LONTIUM_LT9211=m +CONFIG_DRM_LONTIUM_LT9611=m +CONFIG_DRM_LONTIUM_LT9611UXC=m +CONFIG_DRM_LVDS_CODEC=m +CONFIG_DRM_MALI_DISPLAY=m +CONFIG_DRM_MCDE=m +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_DP=y +CONFIG_DRM_MSM_DPU=y +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_7NM_PHY=y +CONFIG_DRM_MSM_GPU_STATE=y +# CONFIG_DRM_MSM_GPU_SUDO is not set +CONFIG_DRM_MSM_HDMI=y +CONFIG_DRM_MSM_HDMI_HDCP=y +CONFIG_DRM_MSM_MDP4=y +CONFIG_DRM_MSM_MDP5=y +CONFIG_DRM_MSM_MDSS=y +CONFIG_DRM_MXS=y +CONFIG_DRM_MXSFB=m +CONFIG_DRM_NOMODESET=y +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +# CONFIG_DRM_NOUVEAU_SVM is not set +CONFIG_DRM_NWL_MIPI_DSI=m +CONFIG_DRM_NXP_PTN3460=m +# CONFIG_DRM_OMAP is not set +CONFIG_DRM_PANEL=y +CONFIG_DRM_PANEL_ABT_Y030XX067A=m +CONFIG_DRM_PANEL_ARM_VERSATILE=m +CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596=m +CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0=m +CONFIG_DRM_PANEL_BOE_HIMAX8279D=m +CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m +CONFIG_DRM_PANEL_BRIDGE=y +CONFIG_DRM_PANEL_DSI_CM=m +CONFIG_DRM_PANEL_EDP=m +CONFIG_DRM_PANEL_ELIDA_KD35T133=m +CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m +CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D=m +CONFIG_DRM_PANEL_ILITEK_IL9322=m +CONFIG_DRM_PANEL_ILITEK_ILI9341=m +CONFIG_DRM_PANEL_ILITEK_ILI9881C=m +CONFIG_DRM_PANEL_INNOLUX_EJ030NA=m +CONFIG_DRM_PANEL_INNOLUX_P079ZCA=m +CONFIG_DRM_PANEL_JDI_LT070ME05000=m +CONFIG_DRM_PANEL_JDI_R63452=m +CONFIG_DRM_PANEL_KHADAS_TS050=m +CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04=m +CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W=m +CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829=m +CONFIG_DRM_PANEL_LG_LB035Q02=m +CONFIG_DRM_PANEL_LG_LG4573=m +CONFIG_DRM_PANEL_LVDS=m +CONFIG_DRM_PANEL_MANTIX_MLAF057WE51=m +CONFIG_DRM_PANEL_MIPI_DBI=m +CONFIG_DRM_PANEL_NEC_NL8048HL11=m +CONFIG_DRM_PANEL_NEWVISION_NV3052C=m +CONFIG_DRM_PANEL_NOVATEK_NT35510=m +CONFIG_DRM_PANEL_NOVATEK_NT35560=m +CONFIG_DRM_PANEL_NOVATEK_NT35950=m +CONFIG_DRM_PANEL_NOVATEK_NT36672A=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_RONBO_RB070D30=m +CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=m +CONFIG_DRM_PANEL_SAMSUNG_DB7430=m +CONFIG_DRM_PANEL_SAMSUNG_LD9040=m +CONFIG_DRM_PANEL_SAMSUNG_S6D16D0=m +CONFIG_DRM_PANEL_SAMSUNG_S6D27A1=m +CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2=m +CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0=m +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_DSI=m +CONFIG_DRM_PANEL_SAMSUNG_S6E63M0_SPI=m +CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m +CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m +CONFIG_DRM_PANEL_SAMSUNG_SOFEF00=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_SHARP_LS060T1SX01=m +CONFIG_DRM_PANEL_SIMPLE=m +CONFIG_DRM_PANEL_SITRONIX_ST7701=m +CONFIG_DRM_PANEL_SITRONIX_ST7703=m +CONFIG_DRM_PANEL_SITRONIX_ST7789V=m +CONFIG_DRM_PANEL_SONY_ACX565AKM=m +CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521=m +CONFIG_DRM_PANEL_TDO_TL070WSH30=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_PANEL_VISIONOX_RM69299=m +CONFIG_DRM_PANEL_WIDECHIPS_WS2401=m +CONFIG_DRM_PANEL_XINPENG_XPP055C272=m +CONFIG_DRM_PANFROST=m +CONFIG_DRM_PARADE_PS8622=m +CONFIG_DRM_PARADE_PS8640=m +CONFIG_DRM_PL111=m +CONFIG_DRM_PRIVACY_SCREEN=y +# CONFIG_DRM_RADEON_USERPTR is not set +CONFIG_DRM_RCAR_CMM=m +CONFIG_DRM_RCAR_DU=m +CONFIG_DRM_RCAR_DW_HDMI=m +CONFIG_DRM_RCAR_LVDS=m +CONFIG_DRM_RCAR_MIPI_DSI=m +CONFIG_DRM_RCAR_USE_CMM=y +CONFIG_DRM_RCAR_USE_LVDS=y +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_SIMPLE_BRIDGE=m +CONFIG_DRM_SPRD=m +CONFIG_DRM_SSD130X_I2C=m +CONFIG_DRM_SSD130X_SPI=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_TIDSS=m +CONFIG_DRM_TILCDC=m +CONFIG_DRM_TI_SN65DSI83=m +CONFIG_DRM_TI_SN65DSI86=m +CONFIG_DRM_TI_TFP410=m +CONFIG_DRM_TI_TPD12S015=m +CONFIG_DRM_TOSHIBA_TC358762=m +CONFIG_DRM_TOSHIBA_TC358764=m +CONFIG_DRM_TOSHIBA_TC358767=m +CONFIG_DRM_TOSHIBA_TC358768=m +CONFIG_DRM_TOSHIBA_TC358775=m +CONFIG_DRM_TTM=m +CONFIG_DRM_TTM_HELPER=m +CONFIG_DRM_TVE200=m +CONFIG_DRM_UDL=m +CONFIG_DRM_V3D=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_VMWGFX_MKSSTATS is not set +CONFIG_DRM_VRAM_HELPER=m +CONFIG_DRM_XEN=y +CONFIG_DRM_XEN_FRONTEND=m +CONFIG_DRM_ZYNQMP_DPSUB=m +CONFIG_DS1803=m +CONFIG_DS4424=m +CONFIG_DST_CACHE=y +CONFIG_DTC=y +CONFIG_DTL=y +CONFIG_DTPM=y +CONFIG_DTPM_CPU=y +# CONFIG_DTPM_DEVFREQ is not set +CONFIG_DT_IDLE_GENPD=y +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_MXL692=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_TEST_DRIVERS is not set +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_IMX8=m +CONFIG_DWMAC_INTEL=m +CONFIG_DWMAC_IPQ806X=m +CONFIG_DWMAC_LOONGSON=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_DWMAC_VISCONTI=m +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_DEBUG_CORE=y +CONFIG_DYNAMIC_EVENTS=y +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y +CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_DYNAMIC_MEMORY_LAYOUT=y +CONFIG_DYNAMIC_PHYSICAL_MASK=y +CONFIG_DYNAMIC_SIGFRAME=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_L2C=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_AL_MC is not set +CONFIG_EDAC_AMD64=m +CONFIG_EDAC_ARMADA_XP=y +CONFIG_EDAC_ASPEED=m +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_DMC520=m +CONFIG_EDAC_E752X=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_I82975X=m +CONFIG_EDAC_IE31200=m +CONFIG_EDAC_IGEN6=m +CONFIG_EDAC_LAYERSCAPE=m +# CONFIG_EDAC_LEGACY_SYSFS is not set +CONFIG_EDAC_PND2=m +CONFIG_EDAC_QCOM=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_SIFIVE=y +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_DTB_LOADER is not set +CONFIG_EFI_BOOTLOADER_CONTROL=m +CONFIG_EFI_CAPSULE_LOADER=m +CONFIG_EFI_COCO_SECRET=y +CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y +CONFIG_EFI_DEV_PATH_PARSER=y +# CONFIG_EFI_DISABLE_PCI_DMA is not set +# CONFIG_EFI_DISABLE_RUNTIME is not set +CONFIG_EFI_DXE_MEM_ATTRIBUTES=y +CONFIG_EFI_EARLYCON=y +CONFIG_EFI_EMBEDDED_FIRMWARE=y +CONFIG_EFI_ESRT=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_GENERIC_STUB=y +CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y +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_SECRET=m +CONFIG_EFI_SOFT_RESERVE=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_ENA_ETHERNET=m +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_ENCRYPTED_KEYS=y +CONFIG_ENCX24J600=m +CONFIG_ENERGY_MODEL=y +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_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_EROFS_FS_ZIP_LZMA is not set +CONFIG_ERRATA_SIFIVE=y +CONFIG_ERRATA_SIFIVE_CIP_1200=y +CONFIG_ERRATA_SIFIVE_CIP_453=y +# CONFIG_ERRATA_THEAD is not set +CONFIG_ET131X=m +CONFIG_ETHERNET=y +CONFIG_ETHTOOL_NETLINK=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_EXCLUSIVE_SYSTEM_RAM=y +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_EXPERT=y +CONFIG_EXPOLINE=y +CONFIG_EXPOLINE_AUTO=y +CONFIG_EXPOLINE_EXTERN=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_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_USBC_TUSB320=m +CONFIG_EXTCON_USB_GPIO=m +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXTRA_TARGETS="" +# CONFIG_EXYNOS5422_DMC is not set +# CONFIG_EXYNOS_ADC is not set +# CONFIG_EXYNOS_AUDSS_CLK_CON is not set +# CONFIG_EXYNOS_CHIPID is not set +# CONFIG_EXYNOS_CLKOUT is not set +CONFIG_EXYNOS_CPU_SUSPEND=y +# CONFIG_EXYNOS_IOMMU is not set +CONFIG_EXYNOS_IRQ_COMBINER=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_EXYNOS_USI is not set +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_COMPRESSION=y +CONFIG_F2FS_FS_LZ4=y +CONFIG_F2FS_FS_LZ4HC=y +CONFIG_F2FS_FS_LZO=y +CONFIG_F2FS_FS_LZORLE=y +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_ZSTD=y +# CONFIG_F2FS_IOSTAT is not set +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_UNFAIR_RWSEM=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=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_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_GOLDFISH=m +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +CONFIG_FB_HYPERV=m +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_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_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_SEPS525=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_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_FHCI_DEBUG is not set +CONFIG_FIB_RULES=y +CONFIG_FIELDBUS_DEV=m +CONFIG_FILE_LOCKING=y +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_FIPS_SIGNATURE_SELFTEST 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_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FM10K=m +CONFIG_FONTS=y +# CONFIG_FONT_10x18 is not set +CONFIG_FONT_6x10=y +# CONFIG_FONT_6x11 is not set +# CONFIG_FONT_6x8 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_PCI=y +CONFIG_FORCE_SMP=y +CONFIG_FPGA=m +CONFIG_FPGA_DFL_AFU=m +CONFIG_FPGA_DFL_EMIF=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_NIOS_INTEL_PAC_N3000=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_SOCFPGA=m +CONFIG_FPGA_MGR_SOCFPGA_A10=m +CONFIG_FPGA_MGR_STRATIX10_SOC=m +CONFIG_FPGA_MGR_VERSAL_FPGA=m +CONFIG_FPGA_MGR_XILINX_SPI=m +CONFIG_FPGA_MGR_ZYNQMP_FPGA=m +CONFIG_FPGA_REGION=m +CONFIG_FPROBE=y +CONFIG_FPU=y +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y +CONFIG_FRAME_POINTER=y +CONFIG_FREEZER=y +CONFIG_FRONTSWAP=y +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +CONFIG_FSCACHE_STATS=y +CONFIG_FSI=m +CONFIG_FSI_MASTER_ASPEED=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_ETH=m +CONFIG_FSL_DPAA2_ETH_DCB=y +CONFIG_FSL_DPAA2_PTP_CLOCK=m +CONFIG_FSL_DPAA2_QDMA=m +CONFIG_FSL_DPAA2_SWITCH=m +CONFIG_FSL_DPAA_CHECKING=y +CONFIG_FSL_DPAA_ETH=m +CONFIG_FSL_EDMA=m +CONFIG_FSL_ENETC=m +CONFIG_FSL_ENETC_IERB=m +CONFIG_FSL_ENETC_MDIO=m +CONFIG_FSL_ENETC_PTP_CLOCK=m +CONFIG_FSL_ENETC_QOS=y +CONFIG_FSL_ENETC_VF=m +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_FSL_FMAN=y +CONFIG_FSL_GTM=y +CONFIG_FSL_GUTS=y +CONFIG_FSL_IFC=y +CONFIG_FSL_IMX8_DDR_PMU=m +CONFIG_FSL_LBC=y +CONFIG_FSL_MC_DPIO=m +CONFIG_FSL_MC_UAPI_SUPPORT=y +CONFIG_FSL_PQ_MDIO=m +CONFIG_FSL_QDMA=m +# CONFIG_FSL_QMAN_TEST is not set +CONFIG_FSL_RCPM=y +CONFIG_FSL_UCC_HDLC=m +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_ENCRYPTION_ALGS=y +CONFIG_FS_ENCRYPTION_INLINE_CRYPT=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_MCOUNT_USE_CC=y +CONFIG_FTRACE_MCOUNT_USE_PATCHABLE_FUNCTION_ENTRY=y +CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT=y +# CONFIG_FTRACE_RECORD_RECURSION is not set +# CONFIG_FTRACE_SORT_STARTUP_TEST is not set +# 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_FUN_CORE=m +CONFIG_FUN_ETH=m +CONFIG_FUSE_DAX=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_FWNODE_MDIO=y +CONFIG_FWTTY_MAX_CARD_PORTS=32 +CONFIG_FWTTY_MAX_TOTAL_PORTS=64 +CONFIG_FW_ATTR_CLASS=m +CONFIG_FW_CACHE=y +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_COMPRESS_XZ=y +CONFIG_FW_LOADER_COMPRESS_ZSTD=y +CONFIG_FW_LOADER_PAGED_BUF=y +CONFIG_FW_LOADER_SYSFS=y +CONFIG_FW_LOADER_USER_HELPER=y +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +# CONFIG_FW_UPLOAD is not set +CONFIG_FXAS21002C=m +CONFIG_FXAS21002C_I2C=m +CONFIG_FXAS21002C_SPI=m +CONFIG_FXLS8962AF=m +CONFIG_FXLS8962AF_I2C=m +CONFIG_FXLS8962AF_SPI=m +CONFIG_FXOS8700=m +CONFIG_FXOS8700_I2C=m +CONFIG_FXOS8700_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_GCC12_NO_ARRAY_BOUNDS=y +CONFIG_GCC_SUPPORTS_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_GCC_VERSION=120200 +# 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_NUMA=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_ENTRY=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IOREMAP=y +CONFIG_GENERIC_IRQ_CHIP=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_IPI=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_LIB_DEVMEM_IS_ALLOWED=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_PTDUMP=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_GENERIC_VDSO_TIME_NS=y +CONFIG_GENEVE=m +CONFIG_GENWQE=m +CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 +CONFIG_GEN_RTC=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=y +CONFIG_GIANFAR=m +CONFIG_GIGABYTE_WMI=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_GNSS_USB=m +CONFIG_GOLDFISH_PIPE=m +CONFIG_GOLDFISH_TTY=m +# CONFIG_GOOGLE_FIRMWARE is not set +CONFIG_GP2AP002=m +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_AAEON=m +CONFIG_GPIO_ACPI=y +CONFIG_GPIO_ADNP=m +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_AGGREGATOR=m +CONFIG_GPIO_ALTERA=m +CONFIG_GPIO_ALTERA_A10SR=m +CONFIG_GPIO_AMD8111=m +CONFIG_GPIO_AMDPT=m +CONFIG_GPIO_ARIZONA=m +CONFIG_GPIO_ASPEED=m +CONFIG_GPIO_ASPEED_SGPIO=y +CONFIG_GPIO_BCM_XGS_IPROC=m +CONFIG_GPIO_BD71815=m +CONFIG_GPIO_BD71828=m +CONFIG_GPIO_BD9571MWV=m +CONFIG_GPIO_BRCMSTB=m +CONFIG_GPIO_BT8XX=m +CONFIG_GPIO_CADENCE=m +CONFIG_GPIO_CDEV=y +CONFIG_GPIO_CDEV_V1=y +CONFIG_GPIO_CRYSTAL_COVE=y +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_EN7523=m +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_HISI=m +CONFIG_GPIO_HLWD=m +CONFIG_GPIO_ICH=m +CONFIG_GPIO_IT87=m +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_KEMPLD=m +CONFIG_GPIO_LOGICVC=m +CONFIG_GPIO_LP3943=m +CONFIG_GPIO_LP873X=m +CONFIG_GPIO_LP87565=m +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_MLXBF=m +CONFIG_GPIO_MLXBF2=m +CONFIG_GPIO_ML_IOH=m +# CONFIG_GPIO_MOCKUP is not set +CONFIG_GPIO_MOXTET=m +CONFIG_GPIO_MPC8XXX=y +CONFIG_GPIO_MSC313=y +CONFIG_GPIO_MVEBU=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_OMAP=y +CONFIG_GPIO_PALMAS=y +CONFIG_GPIO_PCA953X_IRQ=y +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_RDA=y +CONFIG_GPIO_REGMAP=m +CONFIG_GPIO_ROCKCHIP=m +CONFIG_GPIO_SAMA5D2_PIOBU=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_SCH311X=m +CONFIG_GPIO_SIFIVE=y +CONFIG_GPIO_SIM=m +CONFIG_GPIO_SL28CPLD=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_TEGRA186=y +CONFIG_GPIO_THUNDERX=m +CONFIG_GPIO_TPS65086=m +CONFIG_GPIO_TPS65218=m +CONFIG_GPIO_TPS6586X=y +CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TPS68470=m +CONFIG_GPIO_TQMX86=m +CONFIG_GPIO_TS4800=m +CONFIG_GPIO_TS4900=m +CONFIG_GPIO_UCB1400=m +# CONFIG_GPIO_UNIPHIER is not set +CONFIG_GPIO_VF610=y +CONFIG_GPIO_VIPERBOARD=m +CONFIG_GPIO_VISCONTI=m +CONFIG_GPIO_VX855=m +CONFIG_GPIO_WATCHDOG=m +CONFIG_GPIO_WCD934X=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_GPIO_ZYNQMP_MODEPIN=m +CONFIG_GRACE_PERIOD=m +CONFIG_GREENASIA_FF=y +CONFIG_GREYBUS_AUDIO=m +CONFIG_GREYBUS_AUDIO_APB_CODEC=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_GTP=m +CONFIG_GUEST_PERF_EVENTS=y +# CONFIG_GUP_TEST is not set +CONFIG_GVE=m +CONFIG_GXP_TIMER=y +CONFIG_GXP_WATCHDOG=m +CONFIG_HALTPOLL_CPUIDLE=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HARDENED_USERCOPY=y +CONFIG_HARDEN_BRANCH_HISTORY=y +CONFIG_HARDEN_BRANCH_PREDICTOR=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_64BIT_ALIGNED_ACCESS=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_COMPILER_H=y +CONFIG_HAVE_ARCH_HUGE_VMALLOC=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_HW_TAGS=y +CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y +CONFIG_HAVE_ARCH_KASAN_VMALLOC=y +CONFIG_HAVE_ARCH_KCSAN=y +CONFIG_HAVE_ARCH_KFENCE=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KGDB_QXFER_PKT=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y +CONFIG_HAVE_ARCH_NVRAM_OPS=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET=y +CONFIG_HAVE_ARCH_SECCOMP=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_USERFAULTFD_MINOR=y +CONFIG_HAVE_ARCH_USERFAULTFD_WP=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_SMCCC_DISCOVERY=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=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_CONTEXT_TRACKING_OFFSTACK=y +CONFIG_HAVE_C_RECORDMCOUNT=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_ARGS=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=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_ARCH=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_HW_BREAKPOINT=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_JUMP_LABEL_HACK=y +CONFIG_HAVE_KCSAN_COMPILER=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_KERNEL_ZSTD=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_DIRTY_RING=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_PFNCACHE=y +CONFIG_HAVE_KVM_PM_NOTIFIER=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_ZEC12_FEATURES=y +CONFIG_HAVE_MEMBLOCK_PHYS_MAP=y +CONFIG_HAVE_MEMORYLESS_NODES=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_MOVE_PUD=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_NMI_WATCHDOG=y +CONFIG_HAVE_NOINSTR_HACK=y +CONFIG_HAVE_NOINSTR_VALIDATION=y +CONFIG_HAVE_NOP_MCOUNT=y +CONFIG_HAVE_OBJTOOL=y +CONFIG_HAVE_OBJTOOL_MCOUNT=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_POSIX_CPU_TIMERS_TASK_WORK=y +CONFIG_HAVE_PREEMPT_DYNAMIC=y +CONFIG_HAVE_PREEMPT_DYNAMIC_CALL=y +CONFIG_HAVE_PREEMPT_DYNAMIC_KEY=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_HAVE_RETHOOK=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT=y +CONFIG_HAVE_SAMPLE_FTRACE_DIRECT_MULTI=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_SMP=y +CONFIG_HAVE_SOFTIRQ_ON_OWN_STACK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_STATIC_CALL=y +CONFIG_HAVE_STATIC_CALL_INLINE=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_UACCESS_VALIDATION=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_HAVE_VIRT_CPU_ACCOUNTING_IDLE=y +CONFIG_HBMC_AM654=m +# CONFIG_HCALL_STATS is not set +CONFIG_HD44780=m +CONFIG_HD44780_COMMON=m +CONFIG_HDC100X=m +CONFIG_HDC2010=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_HI6421V600_IRQ=m +CONFIG_HI8435=m +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION_SNAPSHOT_DEV=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_FT260=m +CONFIG_HID_GEMBIRD=m +CONFIG_HID_GENERIC=m +CONFIG_HID_GFRM=m +CONFIG_HID_GLORIOUS=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_LETSKETCH=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_MCP2221=m +CONFIG_HID_MEGAWORLD_FF=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=m +CONFIG_HID_MULTITOUCH=m +CONFIG_HID_NINTENDO=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_PLAYSTATION=m +CONFIG_HID_PRIMAX=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_RAZER=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_SEMITEK=m +CONFIG_HID_SENSOR_ACCEL_3D=m +CONFIG_HID_SENSOR_ALS=m +CONFIG_HID_SENSOR_CUSTOM_INTEL_HINGE=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_SIGMAMICRO=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_TOPRE is not set +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_VIVALDI=m +CONFIG_HID_VIVALDI_COMMON=m +CONFIG_HID_WACOM=m +CONFIG_HID_WALTOP=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_XIAOMI=m +CONFIG_HID_XINMO=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHMEM=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_ACC_VFIO_PCI=m +# CONFIG_HISI_DMA is not set +CONFIG_HISI_FEMAC=m +CONFIG_HISI_PCIE_PMU=m +CONFIG_HISI_PMU=m +CONFIG_HISI_THERMAL=m +CONFIG_HIST_TRIGGERS=y +# CONFIG_HIST_TRIGGERS_DEBUG is not set +CONFIG_HIX5HD2_GMAC=m +CONFIG_HMC425=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_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_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_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_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_WMI=m +CONFIG_HSA_AMD=y +CONFIG_HSA_AMD_SVM=y +CONFIG_HSI_BOARDINFO=y +CONFIG_HSI_CHAR=m +CONFIG_HSU_DMA=y +CONFIG_HT16K33=m +CONFIG_HTC_EGPIO=y +CONFIG_HTC_I2CPLD=y +CONFIG_HTE_TEGRA194=m +CONFIG_HTE_TEGRA194_TEST=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_HUGETLB_PAGE_OPTIMIZE_VMEMMAP=y +# CONFIG_HUGETLB_PAGE_OPTIMIZE_VMEMMAP_DEFAULT_ON is not set +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_HWSPINLOCK_SUN6I=m +CONFIG_HW_CONSOLE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_AMD=m +CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=m +CONFIG_HW_RANDOM_BA431=m +CONFIG_HW_RANDOM_BCM2835=m +CONFIG_HW_RANDOM_CAVIUM=m +CONFIG_HW_RANDOM_CN10K=m +# CONFIG_HW_RANDOM_EXYNOS is not set +CONFIG_HW_RANDOM_HISI=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_NPCM=m +CONFIG_HW_RANDOM_OMAP=m +CONFIG_HW_RANDOM_OMAP3_ROM=m +CONFIG_HW_RANDOM_OPTEE=m +CONFIG_HW_RANDOM_POLARFIRE_SOC=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_TESTING is not set +CONFIG_HYPERV_TIMER=y +CONFIG_HYPERV_UTILS=m +CONFIG_HYPERV_VSOCKETS=m +# CONFIG_HZ_1000 is not set +# 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_ALTERA=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_APPLE=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_CCGX_UCSI=m +CONFIG_I2C_CHT_WC=m +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CP2615=m +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_AMDPSP=y +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_EMEV2 is not set +# CONFIG_I2C_EXYNOS5 is not set +CONFIG_I2C_FSI=m +# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_HID_ACPI=m +CONFIG_I2C_HID_CORE=m +CONFIG_I2C_HID_OF=m +CONFIG_I2C_HID_OF_GOODIX=m +CONFIG_I2C_HISI=m +CONFIG_I2C_HIX5HD2=m +CONFIG_I2C_IMX_LPI2C=m +CONFIG_I2C_ISMT=m +CONFIG_I2C_KEMPLD=m +CONFIG_I2C_MESON=m +CONFIG_I2C_MLXBF=m +CONFIG_I2C_MLXCPLD=m +CONFIG_I2C_MPC=m +CONFIG_I2C_MT65XX=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_NPCM7XX=m +CONFIG_I2C_OMAP=y +CONFIG_I2C_OPAL=y +CONFIG_I2C_OWL=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PXA=m +CONFIG_I2C_PXA_SLAVE=y +CONFIG_I2C_QCOM_CCI=m +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 is not set +CONFIG_I2C_SCMI=m +CONFIG_I2C_SH_MOBILE=m +CONFIG_I2C_SI470X=m +CONFIG_I2C_SI4713=m +CONFIG_I2C_SLAVE_EEPROM=m +# CONFIG_I2C_SLAVE_TESTUNIT is not set +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_I8253_LOCK=y +CONFIG_I8K=y +CONFIG_IA32_EMULATION=y +CONFIG_IA32_FEAT_CTL=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_ICE_HWTS=y +CONFIG_ICE_SWITCHDEV=y +CONFIG_ICP10100=m +CONFIG_ICPLUS_PHY=m +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_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_IFCVF=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_DMA=m +CONFIG_IIO_BUFFER_DMAENGINE=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_SCMI=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_LSM9DS0=m +CONFIG_IIO_ST_LSM9DS0_I2C=m +CONFIG_IIO_ST_LSM9DS0_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_ARCH_POLICY=y +# CONFIG_IMA_BLACKLIST_KEYRING is not set +# CONFIG_IMA_DEFAULT_HASH_SHA512 is not set +# CONFIG_IMA_DISABLE_HTABLE 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_ASYMMETRIC_KEYS=y +CONFIG_IMA_MEASURE_PCR_IDX=10 +CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y +CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y +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_IMX8MM_THERMAL=m +CONFIG_IMX8QXP_ADC=m +CONFIG_IMX_DMA=m +CONFIG_IMX_DSP=m +CONFIG_IMX_DSP_REMOTEPROC=m +CONFIG_IMX_GPCV2=y +CONFIG_IMX_GPCV2_PM_DOMAINS=y +CONFIG_IMX_INTMUX=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_SC_THERMAL=m +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_ESPINTCP=y +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_ESPINTCP=y +CONFIG_INET_ESP_OFFLOAD=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_MPTCP_DIAG=m +CONFIG_INET_RAW_DIAG=m +CONFIG_INET_SCTP_DIAG=m +CONFIG_INET_TABLE_PERTURB_ORDER=16 +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_CXGB4=m +CONFIG_INFINIBAND_EFA=m +CONFIG_INFINIBAND_HFI1=m +CONFIG_INFINIBAND_HNS=m +CONFIG_INFINIBAND_HNS_HIP08=y +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +# CONFIG_INFINIBAND_IPOIB_DEBUG is not set +CONFIG_INFINIBAND_IRDMA=m +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_RTRS=m +CONFIG_INFINIBAND_RTRS_CLIENT=m +CONFIG_INFINIBAND_RTRS_SERVER=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_PRESERVE_MTIME=y +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_ALL_PATTERN is not set +CONFIG_INIT_STACK_ALL_ZERO=y +# CONFIG_INIT_STACK_NONE is not set +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_ATC260X_ONKEY=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_DA7280_HAPTICS=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_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_IQS269A=m +CONFIG_INPUT_IQS626A=m +CONFIG_INPUT_IQS7222=m +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +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_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_VIVALDIFMAP=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_MACHINE_KEYRING=y +CONFIG_INTEGRITY_PLATFORM_KEYRING=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEGRITY_TRUSTED_KEYRING=y +CONFIG_INTEL_ATOMISP=y +CONFIG_INTEL_ATOMISP2_LED=m +CONFIG_INTEL_ATOMISP2_PDX86=y +CONFIG_INTEL_BXTWC_PMIC_TMU=m +CONFIG_INTEL_BXT_PMIC_THERMAL=m +CONFIG_INTEL_CHTDC_TI_PWRBTN=m +CONFIG_INTEL_CHTWC_INT33FE=m +CONFIG_INTEL_GTT=y +CONFIG_INTEL_HFI_THERMAL=y +CONFIG_INTEL_HID_EVENT=m +CONFIG_INTEL_IDLE=y +CONFIG_INTEL_IDMA64=m +CONFIG_INTEL_IDXD=m +CONFIG_INTEL_IDXD_BUS=m +# CONFIG_INTEL_IDXD_COMPAT is not set +CONFIG_INTEL_IDXD_PERFMON=y +CONFIG_INTEL_IDXD_SVM=y +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_SCALABLE_MODE_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_SVM=y +CONFIG_INTEL_IPS=m +CONFIG_INTEL_ISHTP_ECLITE=m +CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER=m +CONFIG_INTEL_ISH_HID=m +CONFIG_INTEL_LDMA=y +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_GSC=m +CONFIG_INTEL_MEI_HDCP=m +CONFIG_INTEL_MEI_ME=m +CONFIG_INTEL_MEI_PXP=m +CONFIG_INTEL_MEI_TXE=m +CONFIG_INTEL_MEI_WDT=m +CONFIG_INTEL_MENLOW=m +CONFIG_INTEL_MRFLD_ADC=m +CONFIG_INTEL_MRFLD_PWRBTN=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_INTEL_PCH_THERMAL=m +CONFIG_INTEL_PMC_CORE=y +CONFIG_INTEL_PMT_CLASS=m +CONFIG_INTEL_PMT_CRASHLOG=m +CONFIG_INTEL_PMT_TELEMETRY=m +CONFIG_INTEL_POWERCLAMP=m +CONFIG_INTEL_PUNIT_IPC=m +CONFIG_INTEL_QEP=m +CONFIG_INTEL_RAPL=m +CONFIG_INTEL_RAPL_CORE=m +CONFIG_INTEL_RST=m +CONFIG_INTEL_SAR_INT1092=m +CONFIG_INTEL_SCU=y +CONFIG_INTEL_SCU_IPC=y +CONFIG_INTEL_SCU_IPC_UTIL=m +CONFIG_INTEL_SCU_PCI=y +CONFIG_INTEL_SCU_PLATFORM=m +CONFIG_INTEL_SDSI=m +CONFIG_INTEL_SKL_INT3472=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_SOC_PMIC_MRFLD=m +CONFIG_INTEL_SPEED_SELECT_INTERFACE=m +CONFIG_INTEL_STRATIX10_RSU=m +CONFIG_INTEL_STRATIX10_SERVICE=m +CONFIG_INTEL_TCC_COOLING=m +CONFIG_INTEL_TDX_GUEST=y +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_UNCORE_FREQ_CONTROL=m +CONFIG_INTEL_VBTN=m +CONFIG_INTEL_VSEC=m +CONFIG_INTEL_WMI=y +CONFIG_INTEL_WMI_SBL_FW_UPDATE=m +CONFIG_INTEL_WMI_THUNDERBOLT=m +CONFIG_INTEL_XWAY_PHY=m +CONFIG_INTERCONNECT_IMX=m +CONFIG_INTERCONNECT_IMX8MM=m +CONFIG_INTERCONNECT_IMX8MN=m +CONFIG_INTERCONNECT_IMX8MQ=m +CONFIG_INTERCONNECT_QCOM=y +CONFIG_INTERCONNECT_QCOM_BCM_VOTER=m +CONFIG_INTERCONNECT_QCOM_MSM8916=m +CONFIG_INTERCONNECT_QCOM_MSM8939=m +CONFIG_INTERCONNECT_QCOM_MSM8974=m +CONFIG_INTERCONNECT_QCOM_MSM8996=m +CONFIG_INTERCONNECT_QCOM_OSM_L3=m +CONFIG_INTERCONNECT_QCOM_QCM2290=m +CONFIG_INTERCONNECT_QCOM_QCS404=m +CONFIG_INTERCONNECT_QCOM_RPMH=m +CONFIG_INTERCONNECT_QCOM_RPMH_POSSIBLE=y +CONFIG_INTERCONNECT_QCOM_SC7180=m +CONFIG_INTERCONNECT_QCOM_SC7280=m +CONFIG_INTERCONNECT_QCOM_SC8180X=m +CONFIG_INTERCONNECT_QCOM_SC8280XP=m +CONFIG_INTERCONNECT_QCOM_SDM660=m +CONFIG_INTERCONNECT_QCOM_SDM845=m +CONFIG_INTERCONNECT_QCOM_SDX55=m +CONFIG_INTERCONNECT_QCOM_SDX65=m +CONFIG_INTERCONNECT_QCOM_SM8150=m +CONFIG_INTERCONNECT_QCOM_SM8250=m +CONFIG_INTERCONNECT_QCOM_SM8350=m +CONFIG_INTERCONNECT_QCOM_SM8450=m +CONFIG_INTERCONNECT_QCOM_SMD_RPM=m +# CONFIG_INTERCONNECT_SAMSUNG is not set +CONFIG_INTERRUPT_CNT=m +CONFIG_INTERVAL_TREE=y +# CONFIG_INTERVAL_TREE_TEST is not set +CONFIG_INV_ICM42600=m +CONFIG_INV_ICM42600_I2C=m +CONFIG_INV_ICM42600_SPI=m +CONFIG_INV_MPU6050_I2C=m +CONFIG_INV_MPU6050_IIO=m +CONFIG_INV_MPU6050_SPI=m +CONFIG_IOASID=y +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_IOMMU_SVA=y +CONFIG_IONIC=m +CONFIG_IOSCHED_BFQ=m +CONFIG_IOSF_MBI=y +CONFIG_IOSF_MBI_DEBUG=y +CONFIG_IOSM=m +# 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_IO_WQ=y +CONFIG_IP5XXX_POWER=m +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_IPMB=m +CONFIG_IPMI_KCS_BMC=m +CONFIG_IPMI_KCS_BMC_CDEV_IPMI=m +CONFIG_IPMI_KCS_BMC_SERIO=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_IPMMU_VMSA is not set +CONFIG_IPQ_APSS_6018=m +CONFIG_IPQ_APSS_PLL=m +CONFIG_IPQ_GCC_4019=m +CONFIG_IPQ_GCC_6018=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_IOAM6_LWTUNNEL=y +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_RPL_LWTUNNEL is not set +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_IQS620AT_TEMP=m +CONFIG_IQS621_ALS=m +CONFIG_IQS624_POS=m +CONFIG_IRQCHIP=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_IRQSTACKS=y +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_SIM=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_MESON_TX=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_SONY_DECODER=m +CONFIG_IR_SPI=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_SUNXI=m +CONFIG_IR_TOY=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=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +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_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_ADC=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_QWIIC=m +CONFIG_JOYSTICK_SENSEHAT=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_K3_RTI_WATCHDOG=m +CONFIG_K3_THERMAL=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +# CONFIG_KASAN is not set +CONFIG_KCMP=y +# CONFIG_KCOV is not set +# CONFIG_KCSAN is not set +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 +CONFIG_KDB_DEFAULT_ENABLE=0x1 +CONFIG_KDB_KEYBOARD=y +CONFIG_KEEMBAY_WATCHDOG=m +CONFIG_KEMPLD_WDT=m +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZ4 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_KERNEL_ZSTD=y +CONFIG_KERNFS=y +CONFIG_KEXEC=y +CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y +CONFIG_KEXEC_CORE=y +CONFIG_KEXEC_ELF=y +CONFIG_KEXEC_FILE=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_CYPRESS_SF=m +CONFIG_KEYBOARD_DLINK_DIR685=m +CONFIG_KEYBOARD_GOLDFISH_EVENTS=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +CONFIG_KEYBOARD_IMX=m +CONFIG_KEYBOARD_IMX_SC_KEY=m +CONFIG_KEYBOARD_IQS62X=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_MT6779=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_REQUEST_CACHE=y +CONFIG_KEY_DH_OPERATIONS=y +CONFIG_KEY_NOTIFICATIONS=y +CONFIG_KFENCE=y +# CONFIG_KFENCE_DEFERRABLE is not set +CONFIG_KFENCE_NUM_OBJECTS=255 +CONFIG_KFENCE_SAMPLE_INTERVAL=0 +# CONFIG_KFENCE_STATIC_KEYS is not set +CONFIG_KFENCE_STRESS_TEST_FAULTS=0 +CONFIG_KGDB=y +CONFIG_KGDB_HONOUR_BLOCKLIST=y +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KHADAS_MCU_FAN_THERMAL=m +CONFIG_KMAP_LOCAL=y +CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y +CONFIG_KMX61=m +CONFIG_KPROBES=y +CONFIG_KPROBES_ON_FTRACE=y +CONFIG_KPROBE_EVENTS=y +# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set +# CONFIG_KPROBE_EVENT_GEN_TEST is not set +CONFIG_KPSS_XCC=m +CONFIG_KRAITCC=m +CONFIG_KRAIT_CLOCKS=y +CONFIG_KRAIT_L2_ACCESSORS=y +CONFIG_KRETPROBES=y +CONFIG_KRETPROBE_ON_RETHOOK=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_KUNIT is not set +CONFIG_KUSER_HELPERS=y +CONFIG_KVM_AMD=m +CONFIG_KVM_AMD_SEV=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_NESTED_PMU_WORKAROUND=y +CONFIG_KVM_BOOK3S_HV_POSSIBLE=y +CONFIG_KVM_BOOK3S_PR_POSSIBLE=y +CONFIG_KVM_COMPAT=y +CONFIG_KVM_EXTERNAL_WRITE_TRACKING=y +CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y +CONFIG_KVM_GUEST=y +CONFIG_KVM_INTEL=m +CONFIG_KVM_MMIO=y +# CONFIG_KVM_S390_UCONTROL is not set +CONFIG_KVM_VFIO=y +CONFIG_KVM_WERROR=y +CONFIG_KVM_XEN=y +CONFIG_KVM_XFER_TO_GUEST_WORK=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_LAN966X_SWITCH=m +CONFIG_LAPBETHER=m +# CONFIG_LATENCYTOP is not set +CONFIG_LATTICE_ECP3_CONFIG=m +CONFIG_LCD2S=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_LD_IS_BFD=y +CONFIG_LD_ORPHAN_WARN=y +CONFIG_LD_VERSION=23900 +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_AAEON=m +CONFIG_LEDS_AAT1290=m +CONFIG_LEDS_ACER_A500=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_AN30259A=m +CONFIG_LEDS_APU=m +CONFIG_LEDS_AS3645A=m +CONFIG_LEDS_ASIC3=y +CONFIG_LEDS_AW2013=m +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_CLASS_MULTICOLOR=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_EL15203000=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_LP50XX=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_MT6360=m +CONFIG_LEDS_NIC78BX=m +CONFIG_LEDS_NS2=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_PWM_MULTICOLOR=m +CONFIG_LEDS_QCOM_LPG=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_RT4505=m +CONFIG_LEDS_RT8515=m +CONFIG_LEDS_SC27XX_BLTC=m +CONFIG_LEDS_SGM3140=m +CONFIG_LEDS_SIEMENS_SIMATIC_IPC=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_TPS6105X=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_TRIGGER_TTY=m +CONFIG_LEDS_TURRIS_OMNIA=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_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_LIB_MEMNEQ=y +CONFIG_LIDAR_LITE_V2=m +CONFIG_LINEAR_RANGES=y +CONFIG_LINEDISP=m +CONFIG_LIQUIDIO=m +CONFIG_LIQUIDIO_VF=m +CONFIG_LIRC=y +CONFIG_LITEX=y +CONFIG_LITEX_LITEETH=m +CONFIG_LITEX_SOC_CONTROLLER=m +CONFIG_LIVEPATCH=y +CONFIG_LIVEPATCH_64=y +# CONFIG_LKDTM is not set +CONFIG_LLC=m +CONFIG_LLD_VERSION=0 +CONFIG_LMK04832=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="landlock,lockdown,yama,integrity,apparmor" +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LS_EXTIRQ=y +CONFIG_LS_SCFG_MSI=y +CONFIG_LTC1660=m +CONFIG_LTC2471=m +CONFIG_LTC2485=m +CONFIG_LTC2496=m +CONFIG_LTC2497=m +CONFIG_LTC2632=m +CONFIG_LTC2688=m +CONFIG_LTC2983=m +CONFIG_LTE_GDM724X=m +CONFIG_LTO_NONE=y +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_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_INFINITY=y +CONFIG_MACH_MERCURY=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_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_MAGIC_SYSRQ_SERIAL_SEQUENCE="" +CONFIG_MAILBOX_TEST=m +CONFIG_MANAGER_SBS=m +CONFIG_MANTIS_CORE=m +CONFIG_MAPPING_DIRTY_HELPERS=y +# 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_Z16 is not set +# CONFIG_MARCH_Z196 is not set +# CONFIG_MARCH_ZEC12 is not set +CONFIG_MARVELL_10G_PHY=m +CONFIG_MARVELL_CN10K_DDR_PMU=m +CONFIG_MARVELL_CN10K_TAD_PMU=m +CONFIG_MARVELL_PHY=m +# CONFIG_MATOM is not set +CONFIG_MAX1027=m +CONFIG_MAX11100=m +CONFIG_MAX1118=m +CONFIG_MAX1241=m +CONFIG_MAX1363=m +CONFIG_MAX30100=m +CONFIG_MAX30102=m +CONFIG_MAX31856=m +CONFIG_MAX31865=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_MB1232=m +CONFIG_MC3230=m +CONFIG_MCB_LPC=m +CONFIG_MCB_PCI=m +CONFIG_MCHP_CLK_MPFS=y +# 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_MCTP_FLOWS=y +CONFIG_MCTP_SERIAL=m +CONFIG_MCTP_TRANSPORT_I2C=m +CONFIG_MD=y +CONFIG_MDIO=m +CONFIG_MDIO_ASPEED=m +# CONFIG_MDIO_BCM_IPROC is not set +CONFIG_MDIO_BUS=y +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_DEVRES=y +CONFIG_MDIO_GPIO=m +CONFIG_MDIO_HISI_FEMAC=m +CONFIG_MDIO_I2C=m +CONFIG_MDIO_IPQ4019=m +CONFIG_MDIO_IPQ8064=m +CONFIG_MDIO_MSCC_MIIM=m +CONFIG_MDIO_MVUSB=m +CONFIG_MDIO_OCTEON=m +# CONFIG_MDIO_SUN4I is not set +CONFIG_MDIO_XGENE=m +CONFIG_MDM_GCC_9607=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_MT6360_ADC=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_RC=y +CONFIG_MEDIA_COMMON_OPTIONS=y +CONFIG_MEDIA_CONTROLLER=y +CONFIG_MEDIA_CONTROLLER_DVB=y +CONFIG_MEDIA_CONTROLLER_REQUEST_API=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_PCI_SUPPORT=y +CONFIG_MEDIA_PLATFORM_DRIVERS=y +CONFIG_MEDIA_PLATFORM_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_SDR_SUPPORT=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_SUPPORT_FILTER=y +CONFIG_MEDIA_TEST_SUPPORT=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_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MELLANOX_PLATFORM=y +CONFIG_MEMBARRIER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_KMEM=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMFD_CREATE=y +CONFIG_MEMORY_BALLOON=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m +CONFIG_MEMREGION=y +# 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_MERAKI_MX100=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_AO_ARC_REMOTEPROC=m +CONFIG_MESON_MX_EFUSE=m +CONFIG_MESON_MX_SOCINFO=y +CONFIG_MESON_SARADC=m +CONFIG_MESON_SECURE_PM_DOMAINS=y +CONFIG_MESON_SM=y +CONFIG_MESON_WATCHDOG=m +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAEON=m +CONFIG_MFD_AAT2870_CORE=y +# CONFIG_MFD_AC100 is not set +CONFIG_MFD_ACER_A500_EC=m +CONFIG_MFD_ACT8945A=m +CONFIG_MFD_ALTERA_A10SR=y +CONFIG_MFD_ALTERA_SYSMGR=y +CONFIG_MFD_ARIZONA=m +CONFIG_MFD_ARIZONA_SPI=m +CONFIG_MFD_AS3711=y +CONFIG_MFD_AS3722=y +CONFIG_MFD_ASIC3=y +CONFIG_MFD_ATC260X=m +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_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_DLN2=m +# CONFIG_MFD_EXYNOS_LPASS is not set +CONFIG_MFD_GATEWORKS_GSC=m +CONFIG_MFD_HI6421_PMIC=m +CONFIG_MFD_HI6421_SPMI=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_M10_BMC=m +CONFIG_MFD_INTEL_PMC_BXT=m +CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m +CONFIG_MFD_KHADAS_MCU=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_MAX77714=m +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_NTXEC=m +CONFIG_MFD_NVEC=m +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MFD_PALMAS=y +CONFIG_MFD_PM8XXX=m +CONFIG_MFD_QCOM_PM8008=m +CONFIG_MFD_QCOM_RPM=m +CONFIG_MFD_RC5T583=y +CONFIG_MFD_RK808=m +CONFIG_MFD_RN5T618=m +CONFIG_MFD_ROHM_BD71828=m +CONFIG_MFD_ROHM_BD718XX=m +CONFIG_MFD_ROHM_BD957XMUF=m +CONFIG_MFD_RSMU_I2C=m +CONFIG_MFD_RSMU_SPI=m +CONFIG_MFD_SC27XX_PMIC=m +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_SIMPLE_MFD_I2C=m +CONFIG_MFD_SL28CPLD=m +CONFIG_MFD_SM501_GPIO=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_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_TWL4030_AUDIO=y +CONFIG_MFD_VEXPRESS_SYSREG=y +CONFIG_MFD_VIPERBOARD=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_MHI_BUS_DEBUG is not set +CONFIG_MHI_BUS_PCI_GENERIC=m +CONFIG_MHI_NET=m +CONFIG_MHI_WWAN_CTRL=m +CONFIG_MHI_WWAN_MBIM=m +CONFIG_MHP_MEMMAP_ON_MEMORY=y +CONFIG_MICREL_KS8995MA=m +CONFIG_MICREL_PHY=m +CONFIG_MICROCHIP_PHY=m +CONFIG_MICROCHIP_PIT64B=y +CONFIG_MICROCHIP_T1_PHY=m +CONFIG_MICROCHIP_TCB_CAPTURE=m +CONFIG_MICROCODE=y +CONFIG_MICROCODE_AMD=y +CONFIG_MICROCODE_INTEL=y +# CONFIG_MICROCODE_LATE_LOADING is not set +CONFIG_MICROSEMI_PHY=m +CONFIG_MICROSOFT_MANA=m +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGRATION=y +CONFIG_MILBEAUT_HDMAC=m +CONFIG_MILBEAUT_TIMER=y +CONFIG_MILBEAUT_XDMAC=m +CONFIG_MIPI_I3C_HCI=m +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_MITIGATE_SPECTRE_BRANCH_HISTORY=y +# 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_BRIDGE=y +CONFIG_MLX5_CLS_ACT=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_INFINIBAND=m +CONFIG_MLX5_MPFS=y +CONFIG_MLX5_SF_MANAGER=y +CONFIG_MLX5_SW_STEERING=y +CONFIG_MLX5_TC_CT=y +CONFIG_MLX5_TC_SAMPLE=y +CONFIG_MLX5_VDPA=y +CONFIG_MLX5_VDPA_NET=m +CONFIG_MLX90614=m +CONFIG_MLX90632=m +CONFIG_MLXBF_BOOTCTL=m +CONFIG_MLXBF_GIGE=m +CONFIG_MLXBF_PMC=m +CONFIG_MLXBF_TMFIFO=m +CONFIG_MLXFW=m +CONFIG_MLXREG_HOTPLUG=m +CONFIG_MLXREG_IO=m +CONFIG_MLXREG_LC=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_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_CRYPTO=y +# 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_LITEX=m +CONFIG_MMC_MESON_GX=m +CONFIG_MMC_MESON_MX_SDHC=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_OWL=m +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_EXTERNAL_DMA=y +CONFIG_MMC_SDHCI_F_SDH30=m +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_IPROC=m +CONFIG_MMC_SDHCI_MILBEAUT=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_OF_SPARX5=m +CONFIG_MMC_SDHCI_OMAP=m +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_PXAV3=m +# CONFIG_MMC_SDHCI_S3C is not set +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_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 is not set +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_GATHER_MERGE_VMAS=y +CONFIG_MMU_GATHER_NO_GATHER=y +CONFIG_MMU_GATHER_PAGE_SIZE=y +CONFIG_MMU_GATHER_RCU_TABLE_FREE=y +CONFIG_MMU_GATHER_TABLE_FREE=y +CONFIG_MMU_NOTIFIER=y +CONFIG_MODIFY_LDT_SYSCALL=y +CONFIG_MODPROBE_PATH="/sbin/modprobe" +CONFIG_MODULES=y +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_MODULES_USE_ELF_RELA=y +# CONFIG_MODULE_ALLOW_BTF_MISMATCH is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +# CONFIG_MODULE_COMPRESS_GZIP is not set +CONFIG_MODULE_COMPRESS_NONE=y +# CONFIG_MODULE_COMPRESS_XZ is not set +# CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SECTIONS=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_KEY_TYPE_ECDSA is not set +CONFIG_MODULE_SIG_KEY_TYPE_RSA=y +# 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_MODULE_UNLOAD_TAINT_TRACKING is not set +CONFIG_MODVERSIONS=y +CONFIG_MONREADER=m +CONFIG_MONWRITER=m +CONFIG_MOST_CDEV=m +CONFIG_MOST_COMPONENTS=m +CONFIG_MOST_DIM2=m +CONFIG_MOST_I2C=m +CONFIG_MOST_NET=m +CONFIG_MOST_SND=m +CONFIG_MOST_USB_HDM=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_MOXTET=m +CONFIG_MP2629_ADC=m +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_MPTCP=y +CONFIG_MPTCP_IPV6=y +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_MSC313E_WATCHDOG=m +CONFIG_MSCC_OCELOT_SWITCH=m +CONFIG_MSCC_OCELOT_SWITCH_LIB=m +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MSE102X=m +# 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_8939=m +CONFIG_MSM_GCC_8953=m +CONFIG_MSM_GCC_8960=m +CONFIG_MSM_GCC_8974=m +CONFIG_MSM_GCC_8976=m +CONFIG_MSM_GCC_8994=m +CONFIG_MSM_GCC_8996=m +CONFIG_MSM_GCC_8998=m +CONFIG_MSM_GPUCC_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_8994=m +CONFIG_MSM_MMCC_8996=m +CONFIG_MSM_MMCC_8998=m +CONFIG_MSPRO_BLOCK=m +CONFIG_MSTAR_MSC313_MPLL=y +CONFIG_MST_IRQ=y +CONFIG_MS_BLOCK=m +CONFIG_MT7601U=m +CONFIG_MT7603E=m +CONFIG_MT7615E=m +CONFIG_MT7615_COMMON=m +CONFIG_MT7622_WMAC=y +CONFIG_MT7663S=m +CONFIG_MT7663U=m +CONFIG_MT7663_USB_SDIO_COMMON=m +CONFIG_MT76_CONNAC_LIB=m +CONFIG_MT76_CORE=m +CONFIG_MT76_LEDS=y +CONFIG_MT76_SDIO=m +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_MT7915E=m +CONFIG_MT7921E=m +CONFIG_MT7921S=m +CONFIG_MT7921U=m +CONFIG_MT7921_COMMON=m +CONFIG_MT7986_WMAC=y +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_MCHP48L640=m +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND_ARASAN=m +CONFIG_MTD_NAND_BRCMNAND=m +CONFIG_MTD_NAND_CADENCE=m +CONFIG_MTD_NAND_CAFE=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=y +CONFIG_MTD_NAND_ECC_MEDIATEK=m +CONFIG_MTD_NAND_ECC_MXIC=y +CONFIG_MTD_NAND_ECC_SW_BCH=y +CONFIG_MTD_NAND_ECC_SW_HAMMING=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_INTEL_LGM=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_OMAP_BCH=y +CONFIG_MTD_NAND_ORION=m +CONFIG_MTD_NAND_PL35X=m +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_QCOM=m +CONFIG_MTD_NAND_RENESAS=m +CONFIG_MTD_NAND_RICOH=m +CONFIG_MTD_NAND_ROCKCHIP=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_OF_PARTS_BCM4908=y +CONFIG_MTD_OF_PARTS_LINKSYS_NS=y +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_PARSER_TRX=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_IXP4XX=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_PSTORE=m +CONFIG_MTD_QCOMSMEM_PARTS=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_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_SWP_DISABLE is not set +CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y +# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set +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_ADSP_IPC=m +CONFIG_MTK_ADSP_MBOX=m +CONFIG_MTK_CMDQ=m +CONFIG_MTK_CMDQ_MBOX=m +CONFIG_MTK_CQDMA=m +CONFIG_MTK_DEVAPC=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_MMSYS=y +CONFIG_MTK_PMIC_WRAP=m +CONFIG_MTK_SCP=m +CONFIG_MTK_SCPSYS=y +CONFIG_MTK_SCPSYS_PM_DOMAINS=y +CONFIG_MTK_SMI=m +CONFIG_MTK_T7XX=m +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_MVMDIO=m +CONFIG_MVNETA=m +# CONFIG_MVNETA_BM_ENABLE is not set +CONFIG_MVPP2=m +CONFIG_MVPP2_PTP=y +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_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_NAMESPACES=y +CONFIG_NATIONAL_PHY=m +CONFIG_NATSEMI=m +CONFIG_NAU7802=m +CONFIG_NBPFAXI_DMA=m +CONFIG_NCSI_OEM_CMD_GET_MAC=y +# CONFIG_NCSI_OEM_CMD_KEEP_PHY is not set +CONFIG_NDC_DIS_DYNAMIC_CACHING=y +CONFIG_ND_BTT=m +CONFIG_ND_CLAIM=y +CONFIG_ND_PFN=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_DMA_MAP_STATE=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_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_EGRESS=y +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_HOOK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_OSF=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_SKIP_EGRESS=y +CONFIG_NETFILTER_SYNPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XTABLES_COMPAT=y +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_NETFS_STATS=y +CONFIG_NETFS_SUPPORT=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_FD=m +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_GATE=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_U32=m +CONFIG_NET_CORE=y +CONFIG_NET_DEVLINK=y +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +CONFIG_NET_DROP_MONITOR=y +CONFIG_NET_DSA_AR9331=m +CONFIG_NET_DSA_BCM_SF2=m +CONFIG_NET_DSA_HIRSCHMANN_HELLCREEK=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_KSZ8863_SMI=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_MSCC_SEVILLE=m +CONFIG_NET_DSA_MT7530=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_MV88E6XXX=m +CONFIG_NET_DSA_MV88E6XXX_PTP=y +CONFIG_NET_DSA_QCA8K=m +CONFIG_NET_DSA_REALTEK=m +CONFIG_NET_DSA_REALTEK_RTL8365MB=m +CONFIG_NET_DSA_REALTEK_RTL8366RB=m +CONFIG_NET_DSA_SJA1105=m +CONFIG_NET_DSA_SJA1105_PTP=y +CONFIG_NET_DSA_SJA1105_TAS=y +CONFIG_NET_DSA_SJA1105_VL=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_AR9331=m +CONFIG_NET_DSA_TAG_BRCM=m +CONFIG_NET_DSA_TAG_BRCM_COMMON=m +CONFIG_NET_DSA_TAG_BRCM_LEGACY=m +CONFIG_NET_DSA_TAG_BRCM_PREPEND=m +CONFIG_NET_DSA_TAG_DSA=m +CONFIG_NET_DSA_TAG_DSA_COMMON=m +CONFIG_NET_DSA_TAG_EDSA=m +CONFIG_NET_DSA_TAG_GSWIP=m +CONFIG_NET_DSA_TAG_HELLCREEK=m +CONFIG_NET_DSA_TAG_KSZ=m +CONFIG_NET_DSA_TAG_LAN9303=m +CONFIG_NET_DSA_TAG_MTK=m +CONFIG_NET_DSA_TAG_OCELOT=m +CONFIG_NET_DSA_TAG_OCELOT_8021Q=m +CONFIG_NET_DSA_TAG_QCA=m +CONFIG_NET_DSA_TAG_RTL4_A=m +CONFIG_NET_DSA_TAG_RTL8_4=m +CONFIG_NET_DSA_TAG_SJA1105=m +CONFIG_NET_DSA_TAG_TRAILER=m +CONFIG_NET_DSA_TAG_XRS700X=m +CONFIG_NET_DSA_VITESSE_VSC73XX=m +CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM=m +CONFIG_NET_DSA_VITESSE_VSC73XX_SPI=m +CONFIG_NET_DSA_XRS700X=m +CONFIG_NET_DSA_XRS700X_I2C=m +CONFIG_NET_DSA_XRS700X_MDIO=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_NS_REFCNT_TRACKER is not set +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_ETS=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_FQ=m +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_FQ_PIE=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_SELFTESTS=y +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_ACTIONS=y +CONFIG_NET_VENDOR_ALACRITECH=y +CONFIG_NET_VENDOR_ALLWINNER=y +CONFIG_NET_VENDOR_AMAZON=y +CONFIG_NET_VENDOR_AQUANTIA=y +CONFIG_NET_VENDOR_ASIX=y +CONFIG_NET_VENDOR_CADENCE=y +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_NET_VENDOR_CORTINA=y +CONFIG_NET_VENDOR_ENGLEDER=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_VERTEXCOM=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_PN532_UART=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_S3FWRN82_UART=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_NFC_VIRTUAL_NCI=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_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_V4_2_INTER_SSC=y +CONFIG_NFSD_V4_SECURITY_LABEL=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_DEBUG=y +CONFIG_NFS_DISABLE_UDP_SUPPORT=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_2_READ_PLUS is not set +CONFIG_NFS_V4_2_SSC_HELPER=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_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_REJECT_NETDEV=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_LOG_ARP=m +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_LOG_IPV6=m +CONFIG_NF_LOG_SYSLOG=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_TPROXY_IPV4=m +CONFIG_NF_TPROXY_IPV6=m +CONFIG_NI903X_WDT=m +CONFIG_NIC7018_WDT=m +CONFIG_NILFS2_FS=m +CONFIG_NINTENDO_FF=y +CONFIG_NITRO_ENCLAVES=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_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_DEBUG_PUSH 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_CPUS_DEFAULT=8192 +CONFIG_NR_CPUS_RANGE_BEGIN=8192 +CONFIG_NR_CPUS_RANGE_END=8192 +CONFIG_NR_IRQS=512 +CONFIG_NS83820=m +# CONFIG_NTB_AMD is not set +CONFIG_NTB_EPF=m +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_NTFS3_64BIT_CLUSTER is not set +CONFIG_NTFS3_FS=m +CONFIG_NTFS3_FS_POSIX_ACL=y +CONFIG_NTFS3_LZX_XPRESS=y +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +# CONFIG_NUMA_EMU is not set +CONFIG_NUMA_KEEP_MEMINFO=y +CONFIG_NVDIMM_DAX=y +CONFIG_NVDIMM_KEYS=y +CONFIG_NVDIMM_PFN=y +CONFIG_NVEC_PAZ00=m +CONFIG_NVEC_POWER=m +# CONFIG_NVHE_EL2_DEBUG is not set +CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y +CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m +CONFIG_NVMEM_APPLE_EFUSES=m +CONFIG_NVMEM_BCM_OCOTP=m +CONFIG_NVMEM_IMX_IIM=m +CONFIG_NVMEM_IMX_OCOTP=m +CONFIG_NVMEM_IMX_OCOTP_SCU=m +CONFIG_NVMEM_LAYERSCAPE_SFP=m +CONFIG_NVMEM_REBOOT_MODE=m +CONFIG_NVMEM_RMEM=m +CONFIG_NVMEM_SNVS_LPGPR=m +CONFIG_NVMEM_SPMI_SDAM=m +CONFIG_NVMEM_SUNXI_SID=m +CONFIG_NVMEM_SYSFS=y +# CONFIG_NVMEM_VF610_OCOTP is not set +CONFIG_NVMEM_ZYNQMP=y +CONFIG_NVME_APPLE=m +CONFIG_NVME_CORE=m +CONFIG_NVME_FABRICS=m +CONFIG_NVME_FC=m +CONFIG_NVME_HWMON=y +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_PASSTHRU=y +CONFIG_NVME_TARGET_RDMA=m +CONFIG_NVME_TARGET_TCP=m +CONFIG_NVME_TCP=m +# CONFIG_NVME_VERBOSE_ERRORS is not set +CONFIG_NVSW_SN2201=m +CONFIG_NV_TCO=m +CONFIG_NXP_TJA11XX_PHY=m +CONFIG_N_HDLC=m +# CONFIG_OABI_COMPAT is not set +CONFIG_OBJAGG=m +CONFIG_OBJTOOL=y +# 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_OCTEONTX2_PF=m +CONFIG_OCTEONTX2_VF=m +CONFIG_OCTEON_EP=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_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_OMAP5_ERRATA_801819=y +CONFIG_OMAP_CONTROL_PHY=m +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_GPMC=y +# CONFIG_OMAP_GPMC_DEBUG is not set +CONFIG_OMAP_HWMOD=y +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_REMOTEPROC=m +# CONFIG_OMAP_REMOTEPROC_WATCHDOG is not set +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_OPEN_DICE=m +CONFIG_OPT3001=m +CONFIG_OPTEE=m +CONFIG_OPTPROBES=y +CONFIG_ORANGEFS_FS=m +CONFIG_ORINOCO_USB=m +CONFIG_ORION_IRQCHIP=y +CONFIG_ORION_TIMER=y +CONFIG_ORION_WATCHDOG=m +# CONFIG_OSNOISE_TRACER is not set +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=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_OWL_DMA=m +CONFIG_OWL_EMAC=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_PADATA=y +CONFIG_PAGE_COUNTER=y +CONFIG_PAGE_IDLE_FLAG=y +# CONFIG_PAGE_OWNER is not set +CONFIG_PAGE_POISONING=y +CONFIG_PAGE_POOL=y +CONFIG_PAGE_REPORTING=y +CONFIG_PAGE_SIZE_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y +CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +# CONFIG_PAGE_TABLE_CHECK is not set +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_PAHOLE_HAS_SPLIT_BTF=y +CONFIG_PAHOLE_VERSION=123 +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_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_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_RADISYS=m +CONFIG_PATA_RDC=m +CONFIG_PATA_RZ1000=m +CONFIG_PATA_SCH=m +CONFIG_PATA_SERVERWORKS=m +CONFIG_PATA_SIL680=m +CONFIG_PATA_TIMINGS=y +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PC300TOO=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_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_APPLE=m +CONFIG_PCIE_APPLE_MSI_DOORBELL_ADDR=0xfffff000 +CONFIG_PCIE_ARMADA_8K=y +CONFIG_PCIE_BRCMSTB=m +CONFIG_PCIE_BUS_DEFAULT=y +# CONFIG_PCIE_BUS_PEER2PEER is not set +# CONFIG_PCIE_BUS_PERFORMANCE is not set +# CONFIG_PCIE_BUS_SAFE is not set +# CONFIG_PCIE_BUS_TUNE_OFF is not set +CONFIG_PCIE_CADENCE=y +CONFIG_PCIE_CADENCE_EP=y +CONFIG_PCIE_CADENCE_HOST=y +CONFIG_PCIE_CADENCE_PLAT=y +CONFIG_PCIE_CADENCE_PLAT_EP=y +CONFIG_PCIE_CADENCE_PLAT_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_EDR=y +CONFIG_PCIE_FU740=y +CONFIG_PCIE_HISI_ERR=y +CONFIG_PCIE_HISI_STB=y +CONFIG_PCIE_IPROC=m +CONFIG_PCIE_IPROC_MSI=y +CONFIG_PCIE_IPROC_PLATFORM=m +CONFIG_PCIE_KEEMBAY=y +CONFIG_PCIE_KEEMBAY_EP=y +CONFIG_PCIE_KEEMBAY_HOST=y +CONFIG_PCIE_KIRIN=y +# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set +CONFIG_PCIE_MEDIATEK=y +CONFIG_PCIE_MEDIATEK_GEN3=m +CONFIG_PCIE_MICROCHIP_HOST=y +# CONFIG_PCIE_MOBIVEIL_PLAT is not set +CONFIG_PCIE_PME=y +CONFIG_PCIE_PTM=y +CONFIG_PCIE_QCOM=y +CONFIG_PCIE_QCOM_EP=m +CONFIG_PCIE_RCAR_EP=y +CONFIG_PCIE_RCAR_HOST=y +CONFIG_PCIE_ROCKCHIP=y +CONFIG_PCIE_ROCKCHIP_DW_HOST=y +CONFIG_PCIE_ROCKCHIP_EP=y +CONFIG_PCIE_ROCKCHIP_HOST=m +CONFIG_PCIE_TEGRA194=m +CONFIG_PCIE_TEGRA194_EP=m +CONFIG_PCIE_TEGRA194_HOST=m +# CONFIG_PCIE_UNIPHIER is not set +# CONFIG_PCIE_UNIPHIER_EP is not set +CONFIG_PCIE_VISCONTI_HOST=y +CONFIG_PCIE_XILINX=y +CONFIG_PCIE_XILINX_CPM=y +CONFIG_PCIE_XILINX_NWL=y +CONFIG_PCI_AARDVARK=y +CONFIG_PCI_ATMEL=m +CONFIG_PCI_ATS=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=m +CONFIG_PCI_DRA7XX_EP=m +CONFIG_PCI_DRA7XX_HOST=m +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_EXYNOS is not set +CONFIG_PCI_FTPCI100=y +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_J721E=y +CONFIG_PCI_J721E_EP=y +CONFIG_PCI_J721E_HOST=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_ARCH_FALLBACKS=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_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_PCPU_DEV_REFCNT=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PCS_LYNX=m +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PDC_ADMA=m +CONFIG_PEAQ_WMI=m +CONFIG_PECI_ASPEED=m +CONFIG_PECI_CPU=m +# CONFIG_PERCPU_STATS is not set +# CONFIG_PERCPU_TEST is not set +CONFIG_PERF_EVENTS=y +CONFIG_PERF_EVENTS_AMD_BRS=y +# CONFIG_PERF_EVENTS_AMD_POWER is not set +CONFIG_PERF_EVENTS_AMD_UNCORE=m +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_PHYLIB=y +CONFIG_PHYLINK=m +CONFIG_PHYSICAL_ALIGN=0x200000 +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PHYS_RAM_BASE_FIXED is not set +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_DPHY=m +CONFIG_PHY_CADENCE_DPHY_RX=m +CONFIG_PHY_CADENCE_SALVO=m +CONFIG_PHY_CADENCE_SIERRA=m +CONFIG_PHY_CADENCE_TORRENT=m +CONFIG_PHY_CPCAP_USB=m +CONFIG_PHY_DM816X_USB=m +# CONFIG_PHY_EXYNOS_DP_VIDEO is not set +# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set +# CONFIG_PHY_EXYNOS_PCIE is not set +CONFIG_PHY_FSL_IMX8MQ_USB=m +CONFIG_PHY_FSL_IMX8M_PCIE=m +CONFIG_PHY_FSL_LYNX_28G=m +CONFIG_PHY_HI3660_USB=m +CONFIG_PHY_HI3670_PCIE=m +CONFIG_PHY_HI3670_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_INTEL_KEEMBAY_EMMC=m +CONFIG_PHY_INTEL_KEEMBAY_USB=m +CONFIG_PHY_INTEL_LGM_EMMC=m +CONFIG_PHY_J721E_WIZ=m +CONFIG_PHY_LAN966X_SERDES=m +CONFIG_PHY_MAPPHONE_MDM6600=m +CONFIG_PHY_MESON8B_USB2=m +CONFIG_PHY_MESON8_HDMI_TX=m +CONFIG_PHY_MESON_AXG_MIPI_DPHY=m +CONFIG_PHY_MESON_AXG_MIPI_PCIE_ANALOG=y +CONFIG_PHY_MESON_AXG_PCIE=y +CONFIG_PHY_MESON_G12A_USB2=m +CONFIG_PHY_MESON_G12A_USB3_PCIE=m +CONFIG_PHY_MESON_GXL_USB2=m +CONFIG_PHY_MIXEL_MIPI_DPHY=m +CONFIG_PHY_MTK_HDMI=m +CONFIG_PHY_MTK_MIPI_DSI=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_CP110_UTMI=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_EDP=m +CONFIG_PHY_QCOM_IPQ4019_USB=m +CONFIG_PHY_QCOM_IPQ806X_SATA=m +CONFIG_PHY_QCOM_IPQ806X_USB=m +CONFIG_PHY_QCOM_PCIE2=m +CONFIG_PHY_QCOM_QMP=m +CONFIG_PHY_QCOM_QUSB2=m +CONFIG_PHY_QCOM_USB_HS=m +CONFIG_PHY_QCOM_USB_HSIC=m +CONFIG_PHY_QCOM_USB_HS_28NM=m +CONFIG_PHY_QCOM_USB_SNPS_FEMTO_V2=m +CONFIG_PHY_QCOM_USB_SS=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_DPHY_RX0=m +CONFIG_PHY_ROCKCHIP_EMMC=m +CONFIG_PHY_ROCKCHIP_INNO_CSIDPHY=m +CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY=m +CONFIG_PHY_ROCKCHIP_INNO_HDMI=m +CONFIG_PHY_ROCKCHIP_INNO_USB2=m +CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY=m +CONFIG_PHY_ROCKCHIP_PCIE=m +CONFIG_PHY_ROCKCHIP_TYPEC=m +CONFIG_PHY_ROCKCHIP_USB=m +# CONFIG_PHY_SAMSUNG_UFS is not set +CONFIG_PHY_SAMSUNG_USB2=m +CONFIG_PHY_SPARX5_SERDES=m +CONFIG_PHY_SUN4I_USB=m +CONFIG_PHY_SUN50I_USB3=m +CONFIG_PHY_SUN6I_MIPI_DPHY=m +# CONFIG_PHY_SUN9I_USB is not set +CONFIG_PHY_TEGRA194_P2U=m +CONFIG_PHY_TEGRA_XUSB=m +CONFIG_PHY_TUSB1210=m +# CONFIG_PHY_UNIPHIER_AHCI is not set +# CONFIG_PHY_UNIPHIER_PCIE is not set +# CONFIG_PHY_UNIPHIER_USB2 is not set +# CONFIG_PHY_UNIPHIER_USB3 is not set +CONFIG_PHY_XGENE=y +CONFIG_PHY_XILINX_ZYNQMP=m +CONFIG_PI433=m +# CONFIG_PID_IN_CONTEXTIDR is not set +CONFIG_PID_NS=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_ALDERLAKE=m +CONFIG_PINCTRL_AMD=y +CONFIG_PINCTRL_APPLE_GPIO=m +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_BCM4908=m +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_CHERRYVIEW=y +CONFIG_PINCTRL_CS47L15=y +CONFIG_PINCTRL_CS47L35=y +CONFIG_PINCTRL_CS47L85=y +CONFIG_PINCTRL_CS47L90=y +CONFIG_PINCTRL_CS47L92=y +CONFIG_PINCTRL_DA9062=m +CONFIG_PINCTRL_DENVERTON=m +CONFIG_PINCTRL_DOVE=y +CONFIG_PINCTRL_ELKHARTLAKE=m +CONFIG_PINCTRL_EMMITSBURG=m +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_IMX8DXL=y +CONFIG_PINCTRL_IMX8MM=y +CONFIG_PINCTRL_IMX8MN=y +CONFIG_PINCTRL_IMX8MP=y +CONFIG_PINCTRL_IMX8MQ=y +CONFIG_PINCTRL_IMX8QM=y +CONFIG_PINCTRL_IMX8QXP=y +CONFIG_PINCTRL_IMX8ULP=m +CONFIG_PINCTRL_IMX93=m +CONFIG_PINCTRL_IMXRT1050=y +CONFIG_PINCTRL_IMXRT1170=y +CONFIG_PINCTRL_IMX_SCU=y +CONFIG_PINCTRL_INTEL=y +CONFIG_PINCTRL_IPQ4019=m +CONFIG_PINCTRL_IPQ6018=m +CONFIG_PINCTRL_IPQ8064=m +CONFIG_PINCTRL_IPQ8074=m +CONFIG_PINCTRL_IPROC_GPIO=y +CONFIG_PINCTRL_JASPERLAKE=m +CONFIG_PINCTRL_KEEMBAY=m +CONFIG_PINCTRL_LAKEFIELD=m +CONFIG_PINCTRL_LEWISBURG=m +CONFIG_PINCTRL_LOCHNAGAR=m +CONFIG_PINCTRL_LPASS_LPI=m +CONFIG_PINCTRL_LYNXPOINT=m +CONFIG_PINCTRL_MADERA=m +CONFIG_PINCTRL_MAX77620=m +CONFIG_PINCTRL_MCP23S08=m +CONFIG_PINCTRL_MCP23S08_I2C=m +CONFIG_PINCTRL_MCP23S08_SPI=m +CONFIG_PINCTRL_MDM9607=m +CONFIG_PINCTRL_MDM9615=m +CONFIG_PINCTRL_MESON=y +CONFIG_PINCTRL_MESON8=y +CONFIG_PINCTRL_MESON8B=y +CONFIG_PINCTRL_MESON8_PMX=y +CONFIG_PINCTRL_MESON_A1=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_MESON_S4=m +CONFIG_PINCTRL_MICROCHIP_SGPIO=y +CONFIG_PINCTRL_MSM=y +CONFIG_PINCTRL_MSM8226=m +CONFIG_PINCTRL_MSM8660=m +CONFIG_PINCTRL_MSM8916=m +CONFIG_PINCTRL_MSM8953=m +CONFIG_PINCTRL_MSM8960=m +CONFIG_PINCTRL_MSM8976=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_MT6779=m +CONFIG_PINCTRL_MT6795=y +CONFIG_PINCTRL_MT6797=y +CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7623=y +CONFIG_PINCTRL_MT7629=y +CONFIG_PINCTRL_MT7986=y +CONFIG_PINCTRL_MT8127=y +CONFIG_PINCTRL_MT8135=y +CONFIG_PINCTRL_MT8167=y +CONFIG_PINCTRL_MT8173=y +CONFIG_PINCTRL_MT8183=y +CONFIG_PINCTRL_MT8186=y +CONFIG_PINCTRL_MT8192=y +CONFIG_PINCTRL_MT8195=y +CONFIG_PINCTRL_MT8365=y +CONFIG_PINCTRL_MT8516=y +CONFIG_PINCTRL_MTK=y +CONFIG_PINCTRL_MTK_MOORE=y +CONFIG_PINCTRL_MTK_PARIS=y +CONFIG_PINCTRL_MTK_V2=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_R8A7742=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_R8A774B1=y +CONFIG_PINCTRL_PFC_R8A774C0=y +CONFIG_PINCTRL_PFC_R8A774E1=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_R8A77950=y +CONFIG_PINCTRL_PFC_R8A77951=y +CONFIG_PINCTRL_PFC_R8A77960=y +CONFIG_PINCTRL_PFC_R8A77961=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_R8A779A0=y +CONFIG_PINCTRL_PFC_R8A779F0=y +CONFIG_PINCTRL_PFC_SH73A0=y +CONFIG_PINCTRL_QCM2290=m +CONFIG_PINCTRL_QCOM_SPMI_PMIC=m +CONFIG_PINCTRL_QCOM_SSBI_PMIC=m +CONFIG_PINCTRL_QCS404=m +CONFIG_PINCTRL_QDF2XXX=m +CONFIG_PINCTRL_RENESAS=y +CONFIG_PINCTRL_RK805=m +CONFIG_PINCTRL_ROCKCHIP=y +CONFIG_PINCTRL_RZA1=y +CONFIG_PINCTRL_RZA2=y +CONFIG_PINCTRL_RZG2L=y +CONFIG_PINCTRL_RZN1=y +CONFIG_PINCTRL_S500=y +CONFIG_PINCTRL_S700=y +CONFIG_PINCTRL_S900=y +CONFIG_PINCTRL_SAMSUNG=y +CONFIG_PINCTRL_SC7180=m +CONFIG_PINCTRL_SC7280=m +CONFIG_PINCTRL_SC7280_LPASS_LPI=m +CONFIG_PINCTRL_SC8180X=m +CONFIG_PINCTRL_SC8280XP=m +CONFIG_PINCTRL_SDM660=m +CONFIG_PINCTRL_SDM845=m +CONFIG_PINCTRL_SDX55=m +CONFIG_PINCTRL_SDX65=m +CONFIG_PINCTRL_SH_PFC=y +CONFIG_PINCTRL_SH_PFC_GPIO=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_SM6115=m +CONFIG_PINCTRL_SM6125=m +CONFIG_PINCTRL_SM6350=m +CONFIG_PINCTRL_SM8150=m +CONFIG_PINCTRL_SM8250=m +CONFIG_PINCTRL_SM8250_LPASS_LPI=m +CONFIG_PINCTRL_SM8350=m +CONFIG_PINCTRL_SM8450=m +CONFIG_PINCTRL_SPRD=y +CONFIG_PINCTRL_SPRD_SC9860=y +CONFIG_PINCTRL_STARFIVE=m +CONFIG_PINCTRL_STMFX=m +CONFIG_PINCTRL_SUN4I_A10=y +CONFIG_PINCTRL_SUN50I_A100=y +CONFIG_PINCTRL_SUN50I_A100_R=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_H616=y +CONFIG_PINCTRL_SUN50I_H616_R=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_TEGRA194=y +CONFIG_PINCTRL_TEGRA20=y +CONFIG_PINCTRL_TEGRA210=y +CONFIG_PINCTRL_TEGRA30=y +CONFIG_PINCTRL_TEGRA_XUSB=y +CONFIG_PINCTRL_TIGERLAKE=m +CONFIG_PINCTRL_TI_IODELAY=y +CONFIG_PINCTRL_TMPV7700=y +# CONFIG_PINCTRL_UNIPHIER is not set +CONFIG_PINCTRL_VF610=y +CONFIG_PINCTRL_VISCONTI=y +CONFIG_PINCTRL_ZYNQMP=m +CONFIG_PING=m +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_SPEAR is not set +CONFIG_PLAT_VERSATILE=y +CONFIG_PLAYSTATION_FF=y +CONFIG_PLDMFW=y +CONFIG_PLFXLC=m +CONFIG_PLIP=m +CONFIG_PLX_DMA=m +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_PMS7003=m +# CONFIG_PMU_SYSFS is not set +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_PNP_DEBUG_MESSAGES is not set +CONFIG_POLARFIRE_SOC_MAILBOX=m +CONFIG_POLARFIRE_SOC_SYS_CTRL=m +CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y +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_ATC260X=m +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_LINKSTATION=m +CONFIG_POWER_RESET_LTC2952=y +CONFIG_POWER_RESET_MSM=y +CONFIG_POWER_RESET_MT6323=y +CONFIG_POWER_RESET_OCELOT_RESET=y +CONFIG_POWER_RESET_QCOM_PON=m +# CONFIG_POWER_RESET_QNAP is not set +CONFIG_POWER_RESET_REGULATOR=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_RMOBILE=m +CONFIG_POWER_RESET_SC27XX=m +CONFIG_POWER_RESET_SYSCON=y +CONFIG_POWER_RESET_SYSCON_POWEROFF=y +CONFIG_POWER_RESET_TPS65086=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_ELF_ABI_V2=y +CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_PPC_4K_PAGES is not set +CONFIG_PPC_64K_PAGES=y +CONFIG_PPC_64S_HASH_MMU=y +CONFIG_PPC_BARRIER_NOSPEC=y +# CONFIG_PPC_BOOK3E_64 is not set +CONFIG_PPC_BOOK3S=y +CONFIG_PPC_BOOK3S_64=y +CONFIG_PPC_BOOK3S_IDLE=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_FPU_REGS=y +CONFIG_PPC_HASH_MMU_NATIVE=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_LONG_DOUBLE_128=y +CONFIG_PPC_MEMTRACE=y +# CONFIG_PPC_MEM_KEYS is not set +CONFIG_PPC_MSI_BITMAP=y +CONFIG_PPC_OF_BOOT_TRAMPOLINE=y +CONFIG_PPC_P7_NAP=y +CONFIG_PPC_PAGE_SHIFT=16 +CONFIG_PPC_PERF_CTRS=y +CONFIG_PPC_PKEY=y +CONFIG_PPC_POWERNV=y +# CONFIG_PPC_PROT_SAO_LPAR is not set +CONFIG_PPC_PSERIES=y +# CONFIG_PPC_QUEUED_SPINLOCKS is not set +CONFIG_PPC_RADIX_MMU=y +CONFIG_PPC_RADIX_MMU_DEFAULT=y +# CONFIG_PPC_RFI_SRR_DEBUG is not set +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_UV=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=y +# CONFIG_PPS_CLIENT_KTIMER is not set +CONFIG_PPS_CLIENT_PARPORT=m +# CONFIG_PPS_DEBUG is not set +CONFIG_PPTP=m +# CONFIG_PREEMPT is not set +CONFIG_PREEMPTION=y +# CONFIG_PREEMPTIRQ_DELAY_TEST is not set +CONFIG_PREEMPT_BUILD=y +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPT_DYNAMIC=y +CONFIG_PREEMPT_NONE_BUILD=y +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_PREEMPT_RCU=y +# CONFIG_PREEMPT_TRACER is not set +CONFIG_PREEMPT_VOLUNTARY_BUILD=y +CONFIG_PRESTERA=m +CONFIG_PRESTERA_PCI=m +CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_PRIME_NUMBERS is not set +CONFIG_PRINTER=m +CONFIG_PRINTK=y +# CONFIG_PRINTK_CALLER is not set +# CONFIG_PRINTK_INDEX is not set +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_PROBE_EVENTS=y +CONFIG_PROCESSOR_SELECT=y +CONFIG_PROC_CHILDREN=y +CONFIG_PROC_CPU_RESCTRL=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=m +CONFIG_PROC_VMCORE=y +CONFIG_PROC_VMCORE_DEVICE_DUMP=y +# CONFIG_PROFILE_ALL_BRANCHES is not set +# 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_PRU_REMOTEPROC=m +CONFIG_PSAMPLE=m +CONFIG_PSERIES_CPUIDLE=y +CONFIG_PSERIES_ENERGY=m +CONFIG_PSI=y +# CONFIG_PSTORE_842_COMPRESS is not set +CONFIG_PSTORE_BLK=m +CONFIG_PSTORE_BLK_BLKDEV="" +CONFIG_PSTORE_BLK_CONSOLE_SIZE=64 +CONFIG_PSTORE_BLK_KMSG_SIZE=64 +CONFIG_PSTORE_BLK_MAX_REASON=2 +CONFIG_PSTORE_COMPRESS=y +CONFIG_PSTORE_COMPRESS_DEFAULT="deflate" +CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 +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_ZONE=m +# CONFIG_PSTORE_ZSTD_COMPRESS is not set +CONFIG_PTDUMP_CORE=y +CONFIG_PTE_MARKER=y +CONFIG_PTE_MARKER_UFFD_WP=y +CONFIG_PTP_1588_CLOCK_DTE=m +CONFIG_PTP_1588_CLOCK_IDTCM=m +CONFIG_PTP_1588_CLOCK_INES=m +CONFIG_PTP_1588_CLOCK_KVM=m +CONFIG_PTP_1588_CLOCK_OCP=m +CONFIG_PTP_1588_CLOCK_QORIQ=m +CONFIG_PTP_1588_CLOCK_VMW=m +CONFIG_PUNIT_ATOM_DEBUG=m +CONFIG_PVH=y +CONFIG_PVPANIC_MMIO=m +CONFIG_PVPANIC_PCI=m +CONFIG_PWM_ATMEL_HLCDC_PWM=m +CONFIG_PWM_ATMEL_TCB=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_DEBUG is not set +CONFIG_PWM_DWC=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_IQS620A=m +CONFIG_PWM_KEEMBAY=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_NTXEC=m +CONFIG_PWM_OMAP_DMTIMER=m +CONFIG_PWM_PCA9685=m +CONFIG_PWM_RASPBERRYPI_POE=m +CONFIG_PWM_RCAR=m +CONFIG_PWM_RENESAS_TPU=m +CONFIG_PWM_ROCKCHIP=m +# CONFIG_PWM_SAMSUNG is not set +CONFIG_PWM_SIFIVE=m +CONFIG_PWM_SL28CPLD=m +CONFIG_PWM_SPRD=m +CONFIG_PWM_STMPE=y +CONFIG_PWM_SUN4I=m +CONFIG_PWM_SYSFS=y +CONFIG_PWM_TEGRA=m +CONFIG_PWM_TIECAP=m +CONFIG_PWM_TIEHRPWM=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_PWM_VISCONTI=m +CONFIG_PWM_XILINX=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_QCM_DISPCC_2290=m +CONFIG_QCM_GCC_2290=m +CONFIG_QCOM_A53PLL=m +CONFIG_QCOM_A7PLL=m +CONFIG_QCOM_ADM=m +CONFIG_QCOM_AOSS_QMP=m +CONFIG_QCOM_APCS_IPC=m +CONFIG_QCOM_APR=m +CONFIG_QCOM_BAM_DMA=m +CONFIG_QCOM_BAM_DMUX=m +CONFIG_QCOM_CLK_APCC_MSM8996=m +CONFIG_QCOM_CLK_APCS_MSM8916=m +CONFIG_QCOM_CLK_APCS_SDX55=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_CPR=m +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_GPI_DMA=m +CONFIG_QCOM_GSBI=m +CONFIG_QCOM_HFPLL=m +CONFIG_QCOM_HIDMA=m +CONFIG_QCOM_HIDMA_MGMT=m +CONFIG_QCOM_IOMMU=y +CONFIG_QCOM_IPA=m +CONFIG_QCOM_IPCC=y +CONFIG_QCOM_IRQ_COMBINER=y +CONFIG_QCOM_KRYO_L2_ACCESSORS=y +CONFIG_QCOM_L2_PMU=y +CONFIG_QCOM_L3_PMU=y +CONFIG_QCOM_LLCC=m +CONFIG_QCOM_LMH=m +CONFIG_QCOM_MDT_LOADER=m +CONFIG_QCOM_MPM=m +CONFIG_QCOM_OCMEM=m +CONFIG_QCOM_PDC=y +CONFIG_QCOM_PDR_HELPERS=m +CONFIG_QCOM_PIL_INFO=m +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_RPMPD=m +CONFIG_QCOM_RPROC_COMMON=m +CONFIG_QCOM_SCM=y +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set +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_SPM=y +CONFIG_QCOM_SPMI_ADC5=m +CONFIG_QCOM_SPMI_ADC_TM5=m +CONFIG_QCOM_SPMI_IADC=m +CONFIG_QCOM_SPMI_TEMP_ALARM=m +CONFIG_QCOM_SPMI_VADC=m +CONFIG_QCOM_SSC_BLOCK_BUS=y +CONFIG_QCOM_STATS=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_Q6SSTOP_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_QETH_OSX is not set +CONFIG_QE_GPIO=y +CONFIG_QE_TDM=y +CONFIG_QE_USB=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_QNX6FS_DEBUG is not set +CONFIG_QORIQ_CPUFREQ=m +CONFIG_QORIQ_THERMAL=m +CONFIG_QRTR_MHI=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_QUICC_ENGINE=y +CONFIG_QUOTA=y +CONFIG_QUOTACTL=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=m +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_KSTACK_OFFSET=y +CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=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_RANDSTRUCT_NONE=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_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_REMOTEPROC=m +CONFIG_RCAR_THERMAL=m +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_EQS_DEBUG is not set +# CONFIG_RCU_EXPERT is not set +CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 +CONFIG_RCU_NEED_SEGCBLIST=y +# CONFIG_RCU_REF_SCALE_TEST is not set +# CONFIG_RCU_SCALE_TEST is not set +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_RD_ZSTD=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_I3C=m +CONFIG_REGMAP_IRQ=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_SCCB=m +CONFIG_REGMAP_SLIMBUS=m +CONFIG_REGMAP_SOUNDWIRE=m +CONFIG_REGMAP_SOUNDWIRE_MBQ=m +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_SPI_AVMM=m +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_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_ARM_SCMI=m +CONFIG_REGULATOR_AS3711=m +CONFIG_REGULATOR_AS3722=m +CONFIG_REGULATOR_ATC260X=m +CONFIG_REGULATOR_AXP20X=m +CONFIG_REGULATOR_BCM590XX=m +CONFIG_REGULATOR_BD71815=m +CONFIG_REGULATOR_BD71828=m +CONFIG_REGULATOR_BD718XX=m +CONFIG_REGULATOR_BD9571MWV=m +CONFIG_REGULATOR_BD957XMUF=m +CONFIG_REGULATOR_CPCAP=m +CONFIG_REGULATOR_CROS_EC=m +CONFIG_REGULATOR_DA903X=m +CONFIG_REGULATOR_DA9052=m +CONFIG_REGULATOR_DA9055=m +CONFIG_REGULATOR_DA9062=m +CONFIG_REGULATOR_DA9063=m +CONFIG_REGULATOR_DA9121=m +CONFIG_REGULATOR_DA9210=m +CONFIG_REGULATOR_DA9211=m +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_FAN53880=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_HI6421=m +CONFIG_REGULATOR_HI6421V530=m +CONFIG_REGULATOR_HI6421V600=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_MAX20086=m +CONFIG_REGULATOR_MAX77620=m +CONFIG_REGULATOR_MAX77650=m +CONFIG_REGULATOR_MAX77686=m +CONFIG_REGULATOR_MAX77693=m +CONFIG_REGULATOR_MAX77802=m +CONFIG_REGULATOR_MAX77826=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8893=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_MP5416=m +CONFIG_REGULATOR_MP8859=m +CONFIG_REGULATOR_MP886X=m +CONFIG_REGULATOR_MPQ7920=m +CONFIG_REGULATOR_MT6311=m +CONFIG_REGULATOR_MT6315=m +CONFIG_REGULATOR_MT6323=m +CONFIG_REGULATOR_MT6358=m +CONFIG_REGULATOR_MT6359=m +CONFIG_REGULATOR_MT6360=m +CONFIG_REGULATOR_MT6380=m +CONFIG_REGULATOR_MT6397=m +CONFIG_REGULATOR_PALMAS=m +CONFIG_REGULATOR_PBIAS=m +CONFIG_REGULATOR_PCA9450=m +CONFIG_REGULATOR_PCAP=m +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_PF8X00=m +CONFIG_REGULATOR_PFUZE100=m +CONFIG_REGULATOR_PV88060=m +CONFIG_REGULATOR_PV88080=m +CONFIG_REGULATOR_PV88090=m +CONFIG_REGULATOR_PWM=m +CONFIG_REGULATOR_QCOM_LABIBB=m +CONFIG_REGULATOR_QCOM_RPM=m +CONFIG_REGULATOR_QCOM_RPMH=m +CONFIG_REGULATOR_QCOM_SMD_RPM=m +CONFIG_REGULATOR_QCOM_SPMI=m +CONFIG_REGULATOR_QCOM_USB_VBUS=m +CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY=m +CONFIG_REGULATOR_RC5T583=m +CONFIG_REGULATOR_RK808=m +CONFIG_REGULATOR_RN5T618=m +CONFIG_REGULATOR_ROHM=m +CONFIG_REGULATOR_RT4801=m +CONFIG_REGULATOR_RT4831=m +CONFIG_REGULATOR_RT5033=m +CONFIG_REGULATOR_RT5190A=m +CONFIG_REGULATOR_RT5759=m +CONFIG_REGULATOR_RT6160=m +CONFIG_REGULATOR_RT6245=m +CONFIG_REGULATOR_RTMV20=m +CONFIG_REGULATOR_RTQ2134=m +CONFIG_REGULATOR_RTQ6752=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_SY7636A=m +CONFIG_REGULATOR_SY8106A=m +CONFIG_REGULATOR_SY8824X=m +CONFIG_REGULATOR_SY8827N=m +CONFIG_REGULATOR_TI_ABB=y +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS6105X=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS6286X=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_TPS68470=m +# CONFIG_REGULATOR_UNIPHIER is not set +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VCTRL=m +CONFIG_REGULATOR_VEXPRESS=m +CONFIG_REGULATOR_VIRTUAL_CONSUMER=m +CONFIG_REGULATOR_VQMMC_IPQ4019=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_REMOTEPROC_CDEV=y +CONFIG_RENESAS_DMA=y +CONFIG_RENESAS_INTC_IRQPIN=y +CONFIG_RENESAS_IRQC=y +CONFIG_RENESAS_OSTM=y +CONFIG_RENESAS_PHY=m +CONFIG_RENESAS_RPCIF=m +CONFIG_RENESAS_RZA1_IRQC=y +CONFIG_RENESAS_RZAWDT=m +CONFIG_RENESAS_RZG2LWDT=m +CONFIG_RENESAS_RZN1WDT=m +CONFIG_RENESAS_USB_DMAC=m +CONFIG_RENESAS_WDT=m +CONFIG_RESET_A10SR=m +CONFIG_RESET_ATTACK_MITIGATION=y +CONFIG_RESET_BERLIN=y +CONFIG_RESET_BRCMSTB=m +CONFIG_RESET_BRCMSTB_RESCAL=y +CONFIG_RESET_HISI=y +CONFIG_RESET_IMX7=y +CONFIG_RESET_MCHP_SPARX5=y +CONFIG_RESET_MESON=y +CONFIG_RESET_MESON_AUDIO_ARB=m +CONFIG_RESET_NPCM=y +CONFIG_RESET_QCOM_AOSS=y +CONFIG_RESET_QCOM_PDC=m +CONFIG_RESET_RASPBERRYPI=m +CONFIG_RESET_RZG2L_USBPHY_CTRL=m +CONFIG_RESET_SCMI=m +CONFIG_RESET_SIMPLE=y +CONFIG_RESET_SOCFPGA=y +CONFIG_RESET_STARFIVE_JH7100=y +CONFIG_RESET_SUNXI=y +CONFIG_RESET_TEGRA_BPMP=y +CONFIG_RESET_TI_SCI=m +CONFIG_RESET_TI_SYSCON=m +# CONFIG_RESET_UNIPHIER is not set +# CONFIG_RESET_UNIPHIER_GLUE is not set +CONFIG_RETHOOK=y +CONFIG_RETHUNK=y +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_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set +CONFIG_RIONET=m +CONFIG_RIONET_RX_SIZE=128 +CONFIG_RIONET_TX_SIZE=128 +CONFIG_RISCV=y +CONFIG_RISCV_ALTERNATIVE=y +# CONFIG_RISCV_BOOT_SPINWAIT is not set +CONFIG_RISCV_INTC=y +CONFIG_RISCV_ISA_C=y +# CONFIG_RISCV_ISA_SVPBMT is not set +CONFIG_RISCV_PMU=y +CONFIG_RISCV_PMU_LEGACY=y +CONFIG_RISCV_PMU_SBI=y +CONFIG_RISCV_SBI=y +CONFIG_RISCV_SBI_CPUIDLE=y +# CONFIG_RISCV_SBI_V01 is not set +CONFIG_RISCV_TIMER=y +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_F3A=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_ADC=m +CONFIG_RN5T618_POWER=m +CONFIG_RN5T618_WATCHDOG=m +CONFIG_ROCKCHIP_ANALOGIX_DP=y +CONFIG_ROCKCHIP_CDN_DP=y +CONFIG_ROCKCHIP_DTPM=m +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_OTP=m +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_ROCKCHIP_VOP=y +CONFIG_ROCKCHIP_VOP2=y +CONFIG_ROCKER=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_CTRL=m +CONFIG_RPMSG_MTK_SCP=m +CONFIG_RPMSG_NS=m +CONFIG_RPMSG_QCOM_GLINK=m +CONFIG_RPMSG_QCOM_GLINK_RPM=m +CONFIG_RPMSG_QCOM_GLINK_SMEM=m +CONFIG_RPMSG_QCOM_SMD=m +CONFIG_RPMSG_TTY=m +CONFIG_RPMSG_WWAN_CTRL=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_ABB5ZES3=m +CONFIG_RTC_DRV_ABEOZ9=m +CONFIG_RTC_DRV_ABX80X=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_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_MSC313=m +CONFIG_RTC_DRV_MSM6242=m +CONFIG_RTC_DRV_MT2712=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_NTXEC=m +CONFIG_RTC_DRV_OMAP=y +CONFIG_RTC_DRV_OPAL=y +CONFIG_RTC_DRV_OPTEE=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_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_RC5T619=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_RV3032=m +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_RZN1=m +CONFIG_RTC_DRV_S35390A=m +# CONFIG_RTC_DRV_S3C is not set +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_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_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_8723D=m +CONFIG_RTW88_8723DE=m +CONFIG_RTW88_8821C=m +CONFIG_RTW88_8821CE=m +CONFIG_RTW88_8822B=m +CONFIG_RTW88_8822BE=m +CONFIG_RTW88_8822C=m +CONFIG_RTW88_8822CE=m +CONFIG_RTW88_CORE=m +CONFIG_RTW88_DEBUG=y +CONFIG_RTW88_DEBUGFS=y +CONFIG_RTW88_PCI=m +CONFIG_RTW89=m +CONFIG_RTW89_8852A=m +CONFIG_RTW89_8852AE=m +CONFIG_RTW89_8852C=m +CONFIG_RTW89_8852CE=m +CONFIG_RTW89_CORE=m +CONFIG_RTW89_DEBUG=y +CONFIG_RTW89_DEBUGFS=y +CONFIG_RTW89_DEBUGMSG=y +CONFIG_RTW89_PCI=m +# 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_RZG2L_ADC=m +CONFIG_RZG2L_THERMAL=m +CONFIG_RZN1_DMAMUX=m +CONFIG_RZ_DMAC=m +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_TAPE=m +CONFIG_S390_TAPE_34XX=m +CONFIG_S390_TAPE_3590=m +# CONFIG_S390_UV_UAPI is not set +CONFIG_S390_VMUR=m +# CONFIG_S3C2410_WATCHDOG is not set +CONFIG_S5P_DEV_MFC=y +CONFIG_SAMPLES=y +# CONFIG_SAMPLE_AUXDISPLAY is not set +# CONFIG_SAMPLE_CONFIGFS is not set +# CONFIG_SAMPLE_FPROBE is not set +# CONFIG_SAMPLE_FTRACE_DIRECT_MULTI 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_ARRAY=m +# CONFIG_SAMPLE_TRACE_CUSTOM_EVENTS 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_SAMPLE_WATCHDOG 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_OLD_DMA=y +CONFIG_SATA_HIGHBANK=y +CONFIG_SATA_HOST=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_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBC_FITPC2_WATCHDOG=m +CONFIG_SBITMAP=y +CONFIG_SBP_TARGET=m +CONFIG_SC1200_WDT=m +CONFIG_SC27XX_ADC=m +CONFIG_SC27XX_EFUSE=m +CONFIG_SC92031=m +CONFIG_SCA3000=m +CONFIG_SCA3300=m +CONFIG_SCD30_CORE=m +CONFIG_SCD30_I2C=m +CONFIG_SCD30_SERIAL=m +CONFIG_SCD4X=m +# CONFIG_SCF_TORTURE_TEST is not set +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_BOOK=y +CONFIG_SCHED_CLUSTER=y +CONFIG_SCHED_CORE=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_THERMAL_PRESSURE=y +CONFIG_SCHED_TOPOLOGY=y +CONFIG_SCHED_TRACER=y +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_AHA1740=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_COMMON=y +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_FLASHPOINT=y +CONFIG_SCSI_HISI_SAS=m +# CONFIG_SCSI_HISI_SAS_DEBUGFS_DEFAULT_ENABLE is not set +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=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_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_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_CRYPTO=y +CONFIG_SCSI_UFS_DWC_TC_PCI=m +CONFIG_SCSI_UFS_DWC_TC_PLATFORM=m +# CONFIG_SCSI_UFS_EXYNOS is not set +CONFIG_SCSI_UFS_HISI=m +CONFIG_SCSI_UFS_HPB=y +# CONFIG_SCSI_UFS_HWMON is not set +CONFIG_SCSI_UFS_MEDIATEK=m +CONFIG_SCSI_UFS_QCOM=m +CONFIG_SCSI_UFS_TI_J721E=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_SC_CAMCC_7180=m +CONFIG_SC_CAMCC_7280=m +CONFIG_SC_DISPCC_7180=m +CONFIG_SC_DISPCC_7280=m +CONFIG_SC_GCC_7180=m +CONFIG_SC_GCC_7280=m +CONFIG_SC_GCC_8180X=m +CONFIG_SC_GCC_8280XP=m +CONFIG_SC_GPUCC_7180=m +CONFIG_SC_GPUCC_7280=m +CONFIG_SC_LPASSCC_7280=m +CONFIG_SC_LPASS_CORECC_7180=m +CONFIG_SC_LPASS_CORECC_7280=m +CONFIG_SC_MSS_7180=m +CONFIG_SC_VIDEOCC_7180=m +CONFIG_SC_VIDEOCC_7280=m +CONFIG_SDIO_UART=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_660=m +CONFIG_SDM_GPUCC_845=m +CONFIG_SDM_LPASSCC_845=m +CONFIG_SDM_MMCC_660=m +CONFIG_SDM_VIDEOCC_845=m +CONFIG_SDR_MAX2175=m +CONFIG_SDR_PLATFORM_DRIVERS=y +CONFIG_SDX_GCC_55=m +CONFIG_SDX_GCC_65=m +CONFIG_SD_ADC_MODULATOR=m +CONFIG_SECCOMP=y +# CONFIG_SECCOMP_CACHE_DEBUG is not set +CONFIG_SECCOMP_FILTER=y +CONFIG_SECONDARY_TRUSTED_KEYRING=y +CONFIG_SECRETMEM=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_EXPORT_BINARY=y +CONFIG_SECURITY_APPARMOR_HASH=y +CONFIG_SECURITY_APPARMOR_HASH_DEFAULT=y +CONFIG_SECURITY_APPARMOR_INTROSPECT_POLICY=y +CONFIG_SECURITY_APPARMOR_PARANOID_LOAD=y +# CONFIG_SECURITY_APPARMOR_RESTRICT_USERNS is not set +CONFIG_SECURITY_DMESG_RESTRICT=y +CONFIG_SECURITY_INFINIBAND=y +CONFIG_SECURITY_LANDLOCK=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_SELINUX_SID2STR_CACHE_SIZE=256 +CONFIG_SECURITY_SELINUX_SIDTAB_HASH_BITS=9 +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_SENSEAIR_SUNRISE_CO2=m +CONFIG_SENSIRION_SGP30=m +CONFIG_SENSIRION_SGP40=m +CONFIG_SENSORS_AAEON=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_ADM1177=m +CONFIG_SENSORS_ADM1266=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_AHT10=m +CONFIG_SENSORS_AMC6821=m +CONFIG_SENSORS_APPLESMC=m +CONFIG_SENSORS_AQUACOMPUTER_D5NEXT=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_ASUS_EC=m +CONFIG_SENSORS_ASUS_WMI=m +CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_AXI_FAN_CONTROL=m +CONFIG_SENSORS_BEL_PFE=m +CONFIG_SENSORS_BPA_RS600=m +CONFIG_SENSORS_CORETEMP=m +CONFIG_SENSORS_CORSAIR_CPRO=m +CONFIG_SENSORS_CORSAIR_PSU=m +CONFIG_SENSORS_DA9052_ADC=m +CONFIG_SENSORS_DA9055=m +CONFIG_SENSORS_DELL_SMM=m +CONFIG_SENSORS_DELTA_AHE50DC_FAN=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DPS920AB=m +CONFIG_SENSORS_DRIVETEMP=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_FSP_3Y=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_GSC=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_INA238=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA3221=m +CONFIG_SENSORS_INSPUR_IPSPS=m +CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m +CONFIG_SENSORS_IR35221=m +CONFIG_SENSORS_IR36021=m +CONFIG_SENSORS_IR38064=m +CONFIG_SENSORS_IR38064_REGULATOR=y +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_LM25066_REGULATOR=y +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_LTC2947=m +CONFIG_SENSORS_LTC2947_I2C=m +CONFIG_SENSORS_LTC2947_SPI=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_LTC2978_REGULATOR=y +CONFIG_SENSORS_LTC2990=m +CONFIG_SENSORS_LTC2992=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_MAX127=m +CONFIG_SENSORS_MAX15301=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX16601=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX20730=m +CONFIG_SENSORS_MAX20751=m +CONFIG_SENSORS_MAX31722=m +CONFIG_SENSORS_MAX31730=m +CONFIG_SENSORS_MAX31785=m +CONFIG_SENSORS_MAX31790=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX6620=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_MP2888=m +CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP5023=m +CONFIG_SENSORS_MR75203=m +CONFIG_SENSORS_NCT6683=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NCT6775_CORE=m +CONFIG_SENSORS_NCT6775_I2C=m +CONFIG_SENSORS_NCT7802=m +CONFIG_SENSORS_NCT7904=m +CONFIG_SENSORS_NPCM7XX=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_NZXT_KRAKEN2=m +CONFIG_SENSORS_NZXT_SMART2=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_PECI=m +CONFIG_SENSORS_PECI_CPUTEMP=m +CONFIG_SENSORS_PECI_DIMMTEMP=m +CONFIG_SENSORS_PIM4328=m +CONFIG_SENSORS_PLI1209BC=m +CONFIG_SENSORS_PLI1209BC_REGULATOR=y +CONFIG_SENSORS_PM6764TR=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_SBRMI=m +CONFIG_SENSORS_SBTSI=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_SHT4x=m +CONFIG_SENSORS_SHTC1=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SL28CPLD=m +CONFIG_SENSORS_SMM665=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_SMSC47M192=m +CONFIG_SENSORS_SPARX5=m +CONFIG_SENSORS_STPDDC60=m +CONFIG_SENSORS_STTS751=m +CONFIG_SENSORS_SY7636A=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_TMP464=m +CONFIG_SENSORS_TMP513=m +CONFIG_SENSORS_TPS23861=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_XDPE122=m +CONFIG_SENSORS_XDPE122_REGULATOR=y +CONFIG_SENSORS_XDPE152=m +CONFIG_SENSORS_XGENE=m +CONFIG_SENSORS_ZL6100=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_16550A_VARIANTS=y +CONFIG_SERIAL_8250_ASPEED_VUART=m +# CONFIG_SERIAL_8250_BCM2835AUX is not set +CONFIG_SERIAL_8250_BCM7271=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_EXTENDED=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_LPSS=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_MEN_MCB=m +CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_MT6577=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_OMAP=y +CONFIG_SERIAL_8250_OMAP_TTYO_FIXUP=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PERICOM=m +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_TEGRA=y +# CONFIG_SERIAL_8250_UNIPHIER is not set +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_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +# CONFIG_SERIAL_IMX_EARLYCON is not set +CONFIG_SERIAL_IPOCTAL=m +CONFIG_SERIAL_KGDB_NMI=y +CONFIG_SERIAL_LANTIQ=m +CONFIG_SERIAL_LITEUART=m +CONFIG_SERIAL_LITEUART_MAX_PORTS=1 +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_MULTI_INSTANTIATE=m +CONFIG_SERIAL_MVEBU_CONSOLE=y +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OWL=y +CONFIG_SERIAL_OWL_CONSOLE=y +CONFIG_SERIAL_QCOM_GENI=m +CONFIG_SERIAL_QCOM_GENI_CONSOLE=y +CONFIG_SERIAL_QE=m +CONFIG_SERIAL_RDA=y +CONFIG_SERIAL_RDA_CONSOLE=y +CONFIG_SERIAL_RP2_NR_UARTS=32 +CONFIG_SERIAL_SAMSUNG=m +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +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_CONSOLE=y +CONFIG_SERIAL_SPRD=m +CONFIG_SERIAL_ST_ASC=m +CONFIG_SERIAL_TEGRA=m +CONFIG_SERIAL_TEGRA_TCU=y +CONFIG_SERIAL_TEGRA_TCU_CONSOLE=y +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_SEV_GUEST=m +CONFIG_SFC_FALCON_MTD=y +CONFIG_SFC_MCDI_LOGGING=y +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_MTD=y +CONFIG_SFC_SIENA_MCDI_LOGGING=y +CONFIG_SFC_SIENA_MCDI_MON=y +CONFIG_SFC_SIENA_MTD=y +CONFIG_SFC_SIENA_SRIOV=y +CONFIG_SFC_SRIOV=y +CONFIG_SFP=m +CONFIG_SF_PDMA=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_SHADOW_CALL_STACK=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_SIEMENS_SIMATIC_IPC=m +CONFIG_SIEMENS_SIMATIC_IPC_WDT=m +CONFIG_SIFIVE_L2=y +CONFIG_SIFIVE_PLIC=y +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_SL28CPLD_WATCHDOG=m +# 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_SLS=y +CONFIG_SLUB=y +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMBFS_COMMON=m +CONFIG_SMB_SERVER=m +CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y +CONFIG_SMB_SERVER_KERBEROS5=y +CONFIG_SMB_SERVER_SMBDIRECT=y +CONFIG_SMC=m +CONFIG_SMC911X=m +CONFIG_SMC91X=y +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_CAMCC_8250=m +CONFIG_SM_DISPCC_6125=m +CONFIG_SM_DISPCC_6350=m +CONFIG_SM_DISPCC_8250=m +CONFIG_SM_FTL=m +CONFIG_SM_GCC_6115=m +CONFIG_SM_GCC_6125=m +CONFIG_SM_GCC_6350=m +CONFIG_SM_GCC_8150=m +CONFIG_SM_GCC_8250=m +CONFIG_SM_GCC_8350=m +CONFIG_SM_GCC_8450=m +CONFIG_SM_GPUCC_6350=m +CONFIG_SM_GPUCC_8150=m +CONFIG_SM_GPUCC_8250=m +CONFIG_SM_VIDEOCC_8150=m +CONFIG_SM_VIDEOCC_8250=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_AMD_ACP_CONFIG=m +CONFIG_SND_AMD_ASOC_RENOIR=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_AUDIO_GRAPH_CARD2=m +CONFIG_SND_AUDIO_GRAPH_CARD2_CUSTOM_SAMPLE=m +CONFIG_SND_AW2=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BCD2000=m +CONFIG_SND_BCM2835=m +CONFIG_SND_BCM2835_SOC_I2S=m +CONFIG_SND_BCM63XX_I2S_WHISTLER=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_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CTL_LED=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_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_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_CS8409=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_CS_DSP_CONTROLS=m +CONFIG_SND_HDA_DSP_LOADER=y +CONFIG_SND_HDA_EXT_CORE=m +CONFIG_SND_HDA_GENERIC=m +CONFIG_SND_HDA_GENERIC_LEDS=y +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_RECONFIG=y +CONFIG_SND_HDA_SCODEC_CS35L41=m +CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m +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_BYT_PREFER_SOF=y +CONFIG_SND_INTEL_DSP_CONFIG=m +CONFIG_SND_INTEL_NHLT=y +CONFIG_SND_INTEL_SOUNDWIRE_ACPI=m +CONFIG_SND_ISIGHT=m +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +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_AIU=m +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_CARD_UTILS=m +CONFIG_SND_MESON_CODEC_GLUE=m +CONFIG_SND_MESON_G12A_TOACODEC=m +CONFIG_SND_MESON_G12A_TOHDMITX=m +CONFIG_SND_MESON_GX_SOUND_CARD=m +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_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_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_GENERIC=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SIMPLE_CARD_UTILS=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_ADAU1372=m +CONFIG_SND_SOC_ADAU1372_I2C=m +CONFIG_SND_SOC_ADAU1372_SPI=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_ADAU7118=m +CONFIG_SND_SOC_ADAU7118_HW=m +CONFIG_SND_SOC_ADAU7118_I2C=m +CONFIG_SND_SOC_ADAU_UTILS=m +CONFIG_SND_SOC_ADI=m +CONFIG_SND_SOC_ADI_AXI_I2S=m +CONFIG_SND_SOC_ADI_AXI_SPDIF=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4118=m +CONFIG_SND_SOC_AK4375=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_ACP5x=m +CONFIG_SND_SOC_AMD_ACP6x=m +CONFIG_SND_SOC_AMD_ACP_COMMON=m +CONFIG_SND_SOC_AMD_ACP_I2S=m +CONFIG_SND_SOC_AMD_ACP_PCI=m +CONFIG_SND_SOC_AMD_ACP_PCM=m +CONFIG_SND_SOC_AMD_ACP_PDM=m +CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m +CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m +CONFIG_SND_SOC_AMD_LEGACY_MACH=m +CONFIG_SND_SOC_AMD_MACH_COMMON=m +CONFIG_SND_SOC_AMD_PS=m +CONFIG_SND_SOC_AMD_PS_MACH=m +CONFIG_SND_SOC_AMD_RENOIR=m +CONFIG_SND_SOC_AMD_RENOIR_MACH=m +CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m +CONFIG_SND_SOC_AMD_SOF_MACH=m +CONFIG_SND_SOC_AMD_VANGOGH_MACH=m +CONFIG_SND_SOC_AMD_YC_MACH=m +CONFIG_SND_SOC_APQ8016_SBC=m +CONFIG_SND_SOC_ARIZONA=m +CONFIG_SND_SOC_AW8738=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_CS35L41=m +CONFIG_SND_SOC_CS35L41_I2C=m +CONFIG_SND_SOC_CS35L41_LIB=m +CONFIG_SND_SOC_CS35L41_SPI=m +CONFIG_SND_SOC_CS35L45=m +CONFIG_SND_SOC_CS35L45_I2C=m +CONFIG_SND_SOC_CS35L45_SPI=m +CONFIG_SND_SOC_CS35L45_TABLES=m +CONFIG_SND_SOC_CS4234=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_AUD2HTX=m +CONFIG_SND_SOC_FSL_AUDMIX=m +CONFIG_SND_SOC_FSL_EASRC=m +CONFIG_SND_SOC_FSL_ESAI=m +CONFIG_SND_SOC_FSL_MICFIL=m +CONFIG_SND_SOC_FSL_MQS=m +CONFIG_SND_SOC_FSL_RPMSG=m +CONFIG_SND_SOC_FSL_SAI=m +CONFIG_SND_SOC_FSL_SPDIF=m +CONFIG_SND_SOC_FSL_XCVR=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_ICS43432=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_AUDIO_RPMSG=m +CONFIG_SND_SOC_IMX_AUDMIX=m +CONFIG_SND_SOC_IMX_CARD=m +CONFIG_SND_SOC_IMX_ES8328=m +CONFIG_SND_SOC_IMX_HDMI=m +CONFIG_SND_SOC_IMX_PCM_FIQ=y +CONFIG_SND_SOC_IMX_PCM_RPMSG=m +CONFIG_SND_SOC_IMX_RPMSG=m +CONFIG_SND_SOC_IMX_SPDIF=m +CONFIG_SND_SOC_INNO_RK3036=m +CONFIG_SND_SOC_INTEL_APL=m +CONFIG_SND_SOC_INTEL_AVS=m +CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m +CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m +CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m +CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_COMMON=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_BYTCR_WM5102_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_CATPT=m +# 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_EHL_RT5660_MACH=m +CONFIG_SND_SOC_INTEL_GLK=m +CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m +CONFIG_SND_SOC_INTEL_HASWELL_MACH=m +CONFIG_SND_SOC_INTEL_HDA_DSP_COMMON=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_KEEMBAY=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=y +CONFIG_SND_SOC_INTEL_SKYLAKE_SSP_CLK=m +CONFIG_SND_SOC_INTEL_SOF_CIRRUS_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m +CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m +CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m +CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m +CONFIG_SND_SOC_INTEL_SOF_MAXIM_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m +CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m +CONFIG_SND_SOC_INTEL_SOF_REALTEK_COMMON=m +CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m +CONFIG_SND_SOC_INTEL_SOF_SSP_AMP_MACH=m +CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m +CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m +CONFIG_SND_SOC_INTEL_SST=m +CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y +CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y +CONFIG_SND_SOC_J721E_EVM=m +CONFIG_SND_SOC_LOCHNAGAR_SC=m +CONFIG_SND_SOC_LPASS_APQ8016=m +CONFIG_SND_SOC_LPASS_CDC_DMA=m +CONFIG_SND_SOC_LPASS_CPU=m +CONFIG_SND_SOC_LPASS_HDMI=m +CONFIG_SND_SOC_LPASS_IPQ806X=m +CONFIG_SND_SOC_LPASS_MACRO_COMMON=m +CONFIG_SND_SOC_LPASS_PLATFORM=m +CONFIG_SND_SOC_LPASS_RX_MACRO=m +CONFIG_SND_SOC_LPASS_SC7180=m +CONFIG_SND_SOC_LPASS_SC7280=m +CONFIG_SND_SOC_LPASS_TX_MACRO=m +CONFIG_SND_SOC_LPASS_VA_MACRO=m +CONFIG_SND_SOC_LPASS_WSA_MACRO=m +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_MAX98373_I2C=m +CONFIG_SND_SOC_MAX98373_SDW=m +CONFIG_SND_SOC_MAX98390=m +CONFIG_SND_SOC_MAX98396=m +CONFIG_SND_SOC_MAX98504=m +CONFIG_SND_SOC_MAX98520=m +CONFIG_SND_SOC_MAX9860=m +CONFIG_SND_SOC_MAX9867=m +CONFIG_SND_SOC_MAX98927=m +CONFIG_SND_SOC_MEDIATEK=m +CONFIG_SND_SOC_MESON_T9015=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_MT6359=m +CONFIG_SND_SOC_MT6359_ACCDET=m +CONFIG_SND_SOC_MT6660=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_MT8192=m +CONFIG_SND_SOC_MT8192_MT6359_RT1015_RT5682=m +CONFIG_SND_SOC_MT8195=m +CONFIG_SND_SOC_MT8195_MT6359=m +CONFIG_SND_SOC_MTK_BTCVSD=m +CONFIG_SND_SOC_NAU8315=m +CONFIG_SND_SOC_NAU8540=m +CONFIG_SND_SOC_NAU8810=m +CONFIG_SND_SOC_NAU8821=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_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_PCM5102A=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_CLOCKS=m +CONFIG_SND_SOC_QDSP6_AFE_DAI=m +CONFIG_SND_SOC_QDSP6_APM=m +CONFIG_SND_SOC_QDSP6_APM_DAI=m +CONFIG_SND_SOC_QDSP6_APM_LPASS_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_PRM=m +CONFIG_SND_SOC_QDSP6_PRM_LPASS_CLOCKS=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_RK817=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_I2S_TDM=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_RT1011=m +CONFIG_SND_SOC_RT1015=m +CONFIG_SND_SOC_RT1015P=m +CONFIG_SND_SOC_RT1019=m +CONFIG_SND_SOC_RT1308=m +CONFIG_SND_SOC_RT1308_SDW=m +CONFIG_SND_SOC_RT1316_SDW=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_RT5659=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_RT5682S=m +CONFIG_SND_SOC_RT5682_I2C=m +CONFIG_SND_SOC_RT5682_SDW=m +CONFIG_SND_SOC_RT700=m +CONFIG_SND_SOC_RT700_SDW=m +CONFIG_SND_SOC_RT711=m +CONFIG_SND_SOC_RT711_SDCA_SDW=m +CONFIG_SND_SOC_RT711_SDW=m +CONFIG_SND_SOC_RT715=m +CONFIG_SND_SOC_RT715_SDCA_SDW=m +CONFIG_SND_SOC_RT715_SDW=m +CONFIG_SND_SOC_RT9120=m +CONFIG_SND_SOC_RZ=m +# CONFIG_SND_SOC_SAMSUNG is not set +CONFIG_SND_SOC_SC7180=m +CONFIG_SND_SOC_SC7280=m +CONFIG_SND_SOC_SDM845=m +CONFIG_SND_SOC_SDW_MOCKUP=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_SIMPLE_MUX=m +CONFIG_SND_SOC_SM8250=m +CONFIG_SND_SOC_SOF=m +CONFIG_SND_SOC_SOF_ACPI=m +CONFIG_SND_SOC_SOF_ACPI_DEV=m +CONFIG_SND_SOC_SOF_ALDERLAKE=m +CONFIG_SND_SOC_SOF_AMD_COMMON=m +CONFIG_SND_SOC_SOF_AMD_RENOIR=m +CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m +CONFIG_SND_SOC_SOF_APOLLOLAKE=m +CONFIG_SND_SOC_SOF_BAYTRAIL=m +CONFIG_SND_SOC_SOF_BROADWELL=m +CONFIG_SND_SOC_SOF_CANNONLAKE=m +CONFIG_SND_SOC_SOF_CLIENT=m +CONFIG_SND_SOC_SOF_COFFEELAKE=m +CONFIG_SND_SOC_SOF_COMETLAKE=m +CONFIG_SND_SOC_SOF_COMPRESS=y +CONFIG_SND_SOC_SOF_DEBUG_PROBES=m +# CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set +CONFIG_SND_SOC_SOF_ELKHARTLAKE=m +CONFIG_SND_SOC_SOF_GEMINILAKE=m +CONFIG_SND_SOC_SOF_HDA=m +CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y +CONFIG_SND_SOC_SOF_HDA_COMMON=m +CONFIG_SND_SOC_SOF_HDA_LINK=y +CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_HDA_PROBES=m +CONFIG_SND_SOC_SOF_ICELAKE=m +CONFIG_SND_SOC_SOF_IMX8=m +CONFIG_SND_SOC_SOF_IMX8M=m +CONFIG_SND_SOC_SOF_IMX_COMMON=m +CONFIG_SND_SOC_SOF_IMX_TOPLEVEL=y +CONFIG_SND_SOC_SOF_INTEL_APL=m +CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m +CONFIG_SND_SOC_SOF_INTEL_CNL=m +CONFIG_SND_SOC_SOF_INTEL_COMMON=m +CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m +CONFIG_SND_SOC_SOF_INTEL_ICL=m +CONFIG_SND_SOC_SOF_INTEL_MTL=m +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE=m +CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m +CONFIG_SND_SOC_SOF_INTEL_TGL=m +CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y +CONFIG_SND_SOC_SOF_JASPERLAKE=m +CONFIG_SND_SOC_SOF_MERRIFIELD=m +CONFIG_SND_SOC_SOF_METEORLAKE=m +CONFIG_SND_SOC_SOF_MT8186=m +CONFIG_SND_SOC_SOF_MT8195=m +CONFIG_SND_SOC_SOF_MTK_COMMON=m +CONFIG_SND_SOC_SOF_MTK_TOPLEVEL=y +CONFIG_SND_SOC_SOF_OF=m +CONFIG_SND_SOC_SOF_OF_DEV=m +CONFIG_SND_SOC_SOF_PCI=m +CONFIG_SND_SOC_SOF_PCI_DEV=m +CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y +CONFIG_SND_SOC_SOF_TIGERLAKE=m +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=m +CONFIG_SND_SOC_SSM2305=m +CONFIG_SND_SOC_SSM2518=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_TAS2562=m +CONFIG_SND_SOC_TAS2764=m +CONFIG_SND_SOC_TAS2770=m +CONFIG_SND_SOC_TAS5086=m +CONFIG_SND_SOC_TAS571X=m +CONFIG_SND_SOC_TAS5720=m +CONFIG_SND_SOC_TAS5805M=m +CONFIG_SND_SOC_TAS6424=m +CONFIG_SND_SOC_TDA7419=m +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA186_ASRC=m +CONFIG_SND_SOC_TEGRA186_DSPK=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_TEGRA210_ADMAIF=m +CONFIG_SND_SOC_TEGRA210_ADX=m +CONFIG_SND_SOC_TEGRA210_AHUB=m +CONFIG_SND_SOC_TEGRA210_AMX=m +CONFIG_SND_SOC_TEGRA210_DMIC=m +CONFIG_SND_SOC_TEGRA210_I2S=m +CONFIG_SND_SOC_TEGRA210_MIXER=m +CONFIG_SND_SOC_TEGRA210_MVC=m +CONFIG_SND_SOC_TEGRA210_SFC=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_AUDIO_GRAPH_CARD=m +CONFIG_SND_SOC_TEGRA_MACHINE_DRV=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_TFA989X=m +CONFIG_SND_SOC_TI_EDMA_PCM=m +CONFIG_SND_SOC_TI_SDMA_PCM=m +CONFIG_SND_SOC_TI_UDMA_PCM=m +CONFIG_SND_SOC_TLV320ADC3XXX=m +CONFIG_SND_SOC_TLV320ADCX140=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_TLV320AIC3X_I2C=m +CONFIG_SND_SOC_TLV320AIC3X_SPI=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 is not set +CONFIG_SND_SOC_WCD9335=m +CONFIG_SND_SOC_WCD934X=m +CONFIG_SND_SOC_WCD938X=m +CONFIG_SND_SOC_WCD938X_SDW=m +CONFIG_SND_SOC_WCD_MBHC=m +CONFIG_SND_SOC_WM5102=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_WM8731_I2C=m +CONFIG_SND_SOC_WM8731_SPI=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_WM8940=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_WSA881X=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_ZL38060=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_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_TEST_COMPONENT=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_VIRTIO=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_SNI_AVE is not set +CONFIG_SNI_NETSEC=m +CONFIG_SOCFPGA_FPGA_BRIDGE=m +CONFIG_SOCFPGA_SUSPEND=y +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y +CONFIG_SOCK_CGROUP_DATA=y +CONFIG_SOCK_RX_QUEUE_MAPPING=y +CONFIG_SOCK_VALIDATE_XMIT=y +# CONFIG_SOC_AM43XX is not set +CONFIG_SOC_BUS=y +CONFIG_SOC_DRA7XX=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_MICROCHIP_POLARFIRE=y +CONFIG_SOC_OMAP3430=y +# CONFIG_SOC_OMAP5 is not set +CONFIG_SOC_RENESAS=y +CONFIG_SOC_SAMSUNG=y +CONFIG_SOC_SIFIVE=y +CONFIG_SOC_STARFIVE=y +CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER=y +CONFIG_SOC_TEGRA30_VOLTAGE_COUPLER=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_SOC_VIRT=y +CONFIG_SOFTLOCKUP_DETECTOR=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOFT_WATCHDOG_PRETIMEOUT=y +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_FF=y +CONFIG_SONY_LAPTOP=m +CONFIG_SOUNDWIRE=m +CONFIG_SOUNDWIRE_CADENCE=m +CONFIG_SOUNDWIRE_GENERIC_ALLOCATION=m +CONFIG_SOUNDWIRE_INTEL=m +CONFIG_SOUNDWIRE_QCOM=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_SPARX5_SWITCH=m +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_SPECULATION_MITIGATIONS=y +CONFIG_SPI_ALTERA=m +CONFIG_SPI_ALTERA_CORE=m +CONFIG_SPI_ALTERA_DFL=m +CONFIG_SPI_AMD=m +CONFIG_SPI_ARMADA_3700=m +CONFIG_SPI_ASPEED_SMC=m +CONFIG_SPI_AX88796C=m +# CONFIG_SPI_AX88796C_COMPRESSION is not set +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_CADENCE_XSPI=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DLN2=m +CONFIG_SPI_DW_DMA=y +CONFIG_SPI_DW_MMIO=m +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_DYNAMIC=y +CONFIG_SPI_FSI=m +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_KUNPENG=m +CONFIG_SPI_HISI_SFC=m +CONFIG_SPI_HISI_SFC_V3XX=m +CONFIG_SPI_IMX=m +CONFIG_SPI_INTEL=m +CONFIG_SPI_INTEL_PCI=m +CONFIG_SPI_INTEL_PLATFORM=m +CONFIG_SPI_LANTIQ_SSC=m +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_NOR=m +CONFIG_SPI_MTK_SNFI=m +CONFIG_SPI_MUX=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_ROCKCHIP_SFC=m +CONFIG_SPI_RPCIF=m +CONFIG_SPI_RSPI=m +# CONFIG_SPI_S3C64XX is not set +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_SH_HSPI=m +CONFIG_SPI_SH_MSIOF=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_TEGRA210_QUAD=m +CONFIG_SPI_THUNDERX=m +CONFIG_SPI_TI_QSPI=m +CONFIG_SPI_TLE62X0=m +# CONFIG_SPI_UNIPHIER is not set +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_HISI3670=m +CONFIG_SPMI_MSM_PMIC_ARB=m +CONFIG_SPMI_MTK_PMIF=m +CONFIG_SPMI_PMIC_CLKDIV=m +CONFIG_SPRD_COMMON_CLK=m +CONFIG_SPRD_DMA=m +CONFIG_SPRD_EFUSE=m +CONFIG_SPRD_IOMMU=m +CONFIG_SPRD_MBOX=m +CONFIG_SPRD_SC9860_CLK=m +CONFIG_SPRD_SC9863A_CLK=m +CONFIG_SPRD_THERMAL=m +CONFIG_SPRD_TIMER=y +CONFIG_SPRD_WATCHDOG=m +CONFIG_SPS30=m +CONFIG_SPS30_I2C=m +CONFIG_SPS30_SERIAL=m +CONFIG_SQUASHFS=y +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y +# CONFIG_SQUASHFS_DECOMP_SINGLE is not set +# 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_STACKDEPOT=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_PER_TASK=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_STACKTRACE=y +# CONFIG_STACKTRACE_BUILD_ID is not set +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_STACK_HASH_ORDER=20 +CONFIG_STACK_TRACER=y +CONFIG_STACK_VALIDATION=y +# CONFIG_STAGING_BOARD is not set +CONFIG_STAGING_MEDIA=y +# CONFIG_STATIC_CALL_SELFTEST 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_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_STRICT_SIGALTSTACK_SIZE is not set +# 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_SUN4I_TIMER=y +CONFIG_SUN50I_A100_CCU=y +CONFIG_SUN50I_A100_R_CCU=y +CONFIG_SUN50I_A64_CCU=y +CONFIG_SUN50I_DE2_BUS=y +CONFIG_SUN50I_ERRATUM_UNKNOWN1=y +CONFIG_SUN50I_H616_CCU=y +CONFIG_SUN50I_H6_CCU=y +CONFIG_SUN50I_H6_R_CCU=y +CONFIG_SUN50I_IOMMU=y +CONFIG_SUN6I_MSGBOX=y +CONFIG_SUN6I_RTC_CCU=m +CONFIG_SUN6I_R_INTC=y +CONFIG_SUN8I_DE2_CCU=y +CONFIG_SUN8I_H3_CCU=y +CONFIG_SUN8I_R_CCU=y +CONFIG_SUN8I_THERMAL=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=y +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_SWAP=y +CONFIG_SUNRPC_XPRT_RDMA=m +CONFIG_SUNXI_CCU=y +CONFIG_SUNXI_MBUS=y +CONFIG_SUNXI_NMI_INTC=y +CONFIG_SUNXI_RSB=m +CONFIG_SUNXI_SRAM=y +CONFIG_SUNXI_WATCHDOG=m +CONFIG_SURFACE3_WMI=m +CONFIG_SURFACE_ACPI_NOTIFY=m +CONFIG_SURFACE_AGGREGATOR=m +CONFIG_SURFACE_AGGREGATOR_BUS=y +CONFIG_SURFACE_AGGREGATOR_CDEV=m +# CONFIG_SURFACE_AGGREGATOR_ERROR_INJECTION is not set +CONFIG_SURFACE_AGGREGATOR_REGISTRY=m +CONFIG_SURFACE_DTX=m +CONFIG_SURFACE_GPE=m +CONFIG_SURFACE_HID=m +CONFIG_SURFACE_HID_CORE=m +CONFIG_SURFACE_HOTPLUG=m +CONFIG_SURFACE_KBD=m +CONFIG_SURFACE_PLATFORMS=y +CONFIG_SURFACE_PLATFORM_PROFILE=m +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +CONFIG_SVC_I3C_MASTER=m +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_SX9310=m +CONFIG_SX9324=m +CONFIG_SX9360=m +CONFIG_SX9500=m +CONFIG_SXGBE_ETH=m +CONFIG_SX_COMMON=m +CONFIG_SYMBOLIC_ERRNAME=y +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYNC_FILE=y +CONFIG_SYNTH_EVENTS=y +# CONFIG_SYNTH_EVENT_GEN_TEST is not set +CONFIG_SYN_COOKIES=y +CONFIG_SYSCON_REBOOT_MODE=m +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSC_R8A7742=y +CONFIG_SYSC_R8A7743=y +CONFIG_SYSC_R8A7745=y +CONFIG_SYSC_R8A77470=y +CONFIG_SYSC_R8A774A1=y +CONFIG_SYSC_R8A774B1=y +CONFIG_SYSC_R8A774C0=y +CONFIG_SYSC_R8A774E1=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_R8A77960=y +CONFIG_SYSC_R8A77961=y +CONFIG_SYSC_R8A77965=y +CONFIG_SYSC_R8A77970=y +CONFIG_SYSC_R8A77980=y +CONFIG_SYSC_R8A77990=y +CONFIG_SYSC_R8A77995=y +CONFIG_SYSC_R8A779A0=y +CONFIG_SYSC_R8A779F0=y +CONFIG_SYSC_R8A779G0=y +CONFIG_SYSC_RCAR=y +CONFIG_SYSC_RCAR_GEN4=y +CONFIG_SYSC_RMOBILE=y +CONFIG_SYSFB=y +CONFIG_SYSFS=y +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSTEM76_ACPI=m +CONFIG_SYSTEMPORT=m +# CONFIG_SYSTEM_BLACKLIST_AUTH_UPDATE is not set +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_REVOCATION_KEYS="debian/canonical-revoked-certs.pem" +CONFIG_SYSTEM_REVOCATION_LIST=y +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_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_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_TASKS_RCU_GENERIC=y +CONFIG_TASKS_RUDE_RCU=y +CONFIG_TASKS_TRACE_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_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_SPI_CR50=y +CONFIG_TCG_TIS_ST33ZP24=m +CONFIG_TCG_TIS_ST33ZP24_SPI=m +CONFIG_TCG_TIS_SYNQUACER=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_TDX_GUEST_DRIVER=m +CONFIG_TEE=m +CONFIG_TEE_BNXT_FW=m +CONFIG_TEGRA124_CLK_EMC=y +CONFIG_TEGRA124_EMC=y +CONFIG_TEGRA186_GPC_DMA=m +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA20_EMC=y +CONFIG_TEGRA210_ADMA=m +CONFIG_TEGRA210_EMC=m +CONFIG_TEGRA210_EMC_TABLE=y +CONFIG_TEGRA30_EMC=y +CONFIG_TEGRA30_TSENSOR=m +CONFIG_TEGRA_ACONNECT=m +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA_BPMP=y +CONFIG_TEGRA_BPMP_THERMAL=m +CONFIG_TEGRA_CLK_DFLL=y +CONFIG_TEGRA_GMI=m +CONFIG_TEGRA_HOST1X=m +CONFIG_TEGRA_HOST1X_CONTEXT_BUS=y +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_WATCHDOG=m +CONFIG_TEHUTI=m +CONFIG_TELCLOCK=m +CONFIG_TERANETICS_PHY=m +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_BITOPS is not set +CONFIG_TEST_BLACKHOLE_DEV=m +CONFIG_TEST_BPF=m +# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set +# CONFIG_TEST_DIV64 is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_FPU is not set +# CONFIG_TEST_FREE_PAGES is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_HMM is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_LIVEPATCH is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_LOCKUP is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_TEST_MIN_HEAP is not set +# CONFIG_TEST_OBJAGG is not set +# CONFIG_TEST_PARMAN is not set +CONFIG_TEST_POWER=m +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_REF_TRACKER is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_SCANF is not set +# CONFIG_TEST_SIPHASH 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_UBSAN 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_NETLINK=y +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_THINKPAD_LMI=m +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_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_TIMERFD=y +# CONFIG_TIMERLAT_TRACER is not set +CONFIG_TIMER_ACPI=y +CONFIG_TIMER_IMX_SYS_CTR=y +CONFIG_TIMER_OF=y +CONFIG_TIMER_PROBE=y +CONFIG_TIME_NS=y +CONFIG_TINYDRM_HX8357D=m +CONFIG_TINYDRM_ILI9163=m +CONFIG_TINYDRM_ILI9225=m +CONFIG_TINYDRM_ILI9341=m +CONFIG_TINYDRM_ILI9486=m +CONFIG_TINYDRM_MI0283QT=m +CONFIG_TINYDRM_REPAPER=m +CONFIG_TINYDRM_ST7586=m +CONFIG_TINYDRM_ST7735R=m +CONFIG_TIPC=m +CONFIG_TIPC_CRYPTO=y +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_ADS131E08=m +CONFIG_TI_ADS7950=m +CONFIG_TI_ADS8344=m +CONFIG_TI_ADS8688=m +CONFIG_TI_AM335X_ADC=m +CONFIG_TI_AM65_CPSW_TAS=y +CONFIG_TI_CPPI41=m +CONFIG_TI_CPSW=y +# CONFIG_TI_CPSW_PHY_SEL is not set +CONFIG_TI_CPSW_SWITCHDEV=m +CONFIG_TI_CPTS=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_EQEP=m +CONFIG_TI_K3_AM65_CPSW_NUSS=m +CONFIG_TI_K3_AM65_CPSW_SWITCHDEV=y +CONFIG_TI_K3_AM65_CPTS=m +CONFIG_TI_K3_DSP_REMOTEPROC=m +CONFIG_TI_K3_PSIL=y +CONFIG_TI_K3_R5_REMOTEPROC=m +CONFIG_TI_K3_RINGACC=y +CONFIG_TI_K3_SOCINFO=y +CONFIG_TI_K3_UDMA=y +CONFIG_TI_K3_UDMA_GLUE_LAYER=y +CONFIG_TI_MESSAGE_MANAGER=y +CONFIG_TI_PIPE3=m +CONFIG_TI_PRUSS=m +CONFIG_TI_PRUSS_INTC=m +CONFIG_TI_PWMSS=y +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 is not set +CONFIG_TI_ST=m +CONFIG_TI_SYSC=y +CONFIG_TI_SYSCON_CLK=y +CONFIG_TI_TLC4541=m +CONFIG_TI_TSC2046=m +CONFIG_TLAN=m +CONFIG_TLS=m +CONFIG_TLS_DEVICE=y +# CONFIG_TLS_TOE is not set +CONFIG_TMD_HERMES=m +CONFIG_TMP006=m +CONFIG_TMP007=m +CONFIG_TMP117=m +CONFIG_TMPFS=y +CONFIG_TMPFS_INODE64=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_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_CY8CTMA140=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_HYCON_HY46XX=m +CONFIG_TOUCHSCREEN_ILI210X=m +CONFIG_TOUCHSCREEN_ILITEK=m +CONFIG_TOUCHSCREEN_IMAGIS=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_MSG2638=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_PIXCIR=m +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_TOUCHSCREEN_ZINITIX=m +CONFIG_TPL0102=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_EVENT_INJECT=y +CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACING=y +CONFIG_TRACING_MAP=y +CONFIG_TRACING_SUPPORT=y +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANS_TABLE=y +CONFIG_TREE_RCU=y +CONFIG_TREE_SRCU=y +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_TRUSTED_FOUNDATIONS=y +CONFIG_TRUSTED_KEYS=y +CONFIG_TRUSTED_KEYS_TPM=y +CONFIG_TS4800_IRQ=m +CONFIG_TS4800_WATCHDOG=m +CONFIG_TSL2583=m +CONFIG_TSL2591=m +CONFIG_TSL2772=m +CONFIG_TSL4531=m +CONFIG_TSNEP=m +# CONFIG_TSNEP_SELFTESTS is not set +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_GENERIC=y +# CONFIG_TUNE_Z10 is not set +# CONFIG_TUNE_Z13 is not set +# CONFIG_TUNE_Z14 is not set +CONFIG_TUNE_Z15=y +# CONFIG_TUNE_Z16 is not set +# CONFIG_TUNE_Z196 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_HD3SS3220=m +CONFIG_TYPEC_MT6360=m +CONFIG_TYPEC_MUX_FSA4480=m +CONFIG_TYPEC_MUX_INTEL_PMC=m +CONFIG_TYPEC_MUX_PI3USB30532=m +CONFIG_TYPEC_NVIDIA_ALTMODE=m +CONFIG_TYPEC_QCOM_PMIC=m +CONFIG_TYPEC_RT1711H=m +CONFIG_TYPEC_RT1719=m +CONFIG_TYPEC_STUSB160X=m +CONFIG_TYPEC_TCPCI=m +CONFIG_TYPEC_TCPCI_MAXIM=m +CONFIG_TYPEC_TCPM=m +CONFIG_TYPEC_TPS6598X=m +CONFIG_TYPEC_UCSI=m +CONFIG_TYPEC_WCOVE=m +CONFIG_TYPEC_WUSB3801=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_ALIGNMENT is not set +CONFIG_UBSAN_BOOL=y +CONFIG_UBSAN_BOUNDS=y +# CONFIG_UBSAN_DIV_ZERO is not set +CONFIG_UBSAN_ENUM=y +CONFIG_UBSAN_ONLY_BOUNDS=y +CONFIG_UBSAN_SANITIZE_ALL=y +CONFIG_UBSAN_SHIFT=y +# CONFIG_UBSAN_TRAP is not set +# CONFIG_UBSAN_UNREACHABLE is not set +CONFIG_UBUNTU_HOST=m +CONFIG_UBUNTU_ODM_DRIVERS=y +CONFIG_UCB1400_CORE=m +CONFIG_UCC=y +CONFIG_UCC_FAST=y +CONFIG_UCC_SLOW=y +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_DFL=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_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_UNICODE=y +# CONFIG_UNICODE_NORMALIZATION_SELFTEST is not set +CONFIG_UNINLINE_SPIN_UNLOCK=y +# CONFIG_UNIPHIER_EFUSE is not set +# CONFIG_UNIPHIER_MDMAC is not set +# CONFIG_UNIPHIER_SYSTEM_BUS is not set +# CONFIG_UNIPHIER_THERMAL is not set +# CONFIG_UNIPHIER_WATCHDOG is not set +# CONFIG_UNIPHIER_XDMAC is not set +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIX_DIAG=m +CONFIG_UNIX_SCM=y +CONFIG_UNMAP_KERNEL_AT_EL0=y +# CONFIG_UNWINDER_ARM is not set +CONFIG_UNWINDER_FRAME_POINTER=y +# CONFIG_UNWINDER_ORC is not set +CONFIG_UPROBES=y +CONFIG_UPROBE_EVENTS=y +CONFIG_US5182D=m +CONFIG_USB=y +# CONFIG_USB4_DEBUGFS_WRITE is not set +# CONFIG_USB4_DMA_TEST is not set +CONFIG_USB4_NET=m +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_BRCMSTB=m +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_IMX=m +CONFIG_USB_CDNS3_PCI_WRAP=m +CONFIG_USB_CDNS3_TI=m +CONFIG_USB_CDNSP_GADGET=y +CONFIG_USB_CDNSP_HOST=y +CONFIG_USB_CDNSP_PCI=m +CONFIG_USB_CDNS_HOST=y +CONFIG_USB_CDNS_SUPPORT=m +CONFIG_USB_CHAOSKEY=m +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_CHIPIDEA_GENERIC=m +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_IMX=m +CONFIG_USB_CHIPIDEA_MSM=m +CONFIG_USB_CHIPIDEA_PCI=m +CONFIG_USB_CHIPIDEA_TEGRA=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_PCI=m +# CONFIG_USB_DWC2_PERIPHERAL is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +CONFIG_USB_DWC3=m +CONFIG_USB_DWC3_AM62=m +CONFIG_USB_DWC3_DUAL_ROLE=y +# CONFIG_USB_DWC3_EXYNOS is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_HAPS=m +# CONFIG_USB_DWC3_HOST is not set +CONFIG_USB_DWC3_IMX8MP=m +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_DWC3_XILINX=m +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EG20T=m +CONFIG_USB_EHCI_BRCMSTB=m +# CONFIG_USB_EHCI_EXYNOS is not set +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_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_FEW_INIT_RETRIES is not set +CONFIG_USB_FHCI_HCD=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_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 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_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_LGM_PHY=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_MAX3420_UDC=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_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_MEDIATEK=m +CONFIG_USB_MUSB_OMAP2PLUS=m +CONFIG_USB_MUSB_POLARFIRE_SOC=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 is not set +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_DISABLE_EXTERNAL_HUB is not set +# CONFIG_USB_OTG_PRODUCTLIST 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_QCOM_EUD=m +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RAINSHADOW_CEC=m +CONFIG_USB_RAREMONO=m +CONFIG_USB_RAW_GADGET=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_ROLE_SWITCH=y +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_RTL8153_ECM=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_XR=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_TEGRA_XUDC=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_XEN_HCD=m +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=m +CONFIG_USB_XHCI_PCI_RENESAS=m +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_USERMODE_DRIVER=y +CONFIG_USER_DECRYPTED_DATA=y +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_UV_SYSFS=m +CONFIG_U_SERIAL_CONSOLE=y +CONFIG_V4L2_ASYNC=m +CONFIG_V4L2_FLASH_LED_CLASS=m +CONFIG_V4L2_FWNODE=m +CONFIG_V4L2_H264=m +CONFIG_V4L2_JPEG_HELPER=m +CONFIG_V4L2_MEM2MEM_DEV=m +CONFIG_V4L2_VP9=m +CONFIG_V4L_MEM2MEM_DRIVERS=y +CONFIG_V4L_PLATFORM_DRIVERS=y +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VALIDATE_FS_PARSER=y +CONFIG_VBOXGUEST=m +CONFIG_VBOXSF_FS=m +CONFIG_VCHIQ_CDEV=y +CONFIG_VCNL3020=m +CONFIG_VCNL4000=m +CONFIG_VCNL4035=m +CONFIG_VDPA_SIM=m +CONFIG_VDPA_SIM_BLOCK=m +CONFIG_VDPA_SIM_NET=m +CONFIG_VDPA_USER=m +CONFIG_VDSO=y +CONFIG_VDSO32=y +CONFIG_VEML6030=m +CONFIG_VEML6070=m +CONFIG_VERSION_SIGNATURE="" +CONFIG_VETH=m +CONFIG_VEXPRESS_CONFIG=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_FSL_MC=m +CONFIG_VFIO_IOMMU_SPAPR_TCE=y +CONFIG_VFIO_MDEV=m +CONFIG_VFIO_NOIOMMU=y +CONFIG_VFIO_PCI_IGD=y +CONFIG_VFIO_PCI_INTX=y +CONFIG_VFIO_PCI_MMAP=y +CONFIG_VFIO_PCI_VGA=y +CONFIG_VFIO_PCI_ZDEV_KVM=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_IOTLB=m +CONFIG_VHOST_MENU=y +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m +CONFIG_VHOST_SCSI=m +CONFIG_VHOST_VDPA=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 is not set +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_AMPHION_VPU=m +CONFIG_VIDEO_APTINA_PLL=m +CONFIG_VIDEO_ASPEED=m +CONFIG_VIDEO_ATOMISP=m +CONFIG_VIDEO_ATOMISP_GC0310=m +CONFIG_VIDEO_ATOMISP_GC2235=m +CONFIG_VIDEO_ATOMISP_ISP2401=y +CONFIG_VIDEO_ATOMISP_LM3554=m +CONFIG_VIDEO_ATOMISP_MSRLIST_HELPER=m +CONFIG_VIDEO_ATOMISP_MT9M114=m +CONFIG_VIDEO_ATOMISP_OV2680=m +CONFIG_VIDEO_ATOMISP_OV2722=m +CONFIG_VIDEO_ATOMISP_OV5693=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_CSI2RX=m +CONFIG_VIDEO_CADENCE_CSI2TX=m +CONFIG_VIDEO_CAFE_CCIC=m +CONFIG_VIDEO_CCS=m +CONFIG_VIDEO_CCS_PLL=m +CONFIG_VIDEO_COBALT=m +CONFIG_VIDEO_CODA=m +CONFIG_VIDEO_CPIA2=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_DW9768=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_HANTRO=m +CONFIG_VIDEO_HANTRO_IMX8M=y +CONFIG_VIDEO_HANTRO_ROCKCHIP=y +CONFIG_VIDEO_HANTRO_SUNXI=y +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_HI556=m +CONFIG_VIDEO_HI846=m +CONFIG_VIDEO_HI847=m +CONFIG_VIDEO_I2C=m +CONFIG_VIDEO_IMX208=m +CONFIG_VIDEO_IMX214=m +CONFIG_VIDEO_IMX219=m +CONFIG_VIDEO_IMX258=m +CONFIG_VIDEO_IMX274=m +CONFIG_VIDEO_IMX290=m +CONFIG_VIDEO_IMX319=m +CONFIG_VIDEO_IMX334=m +CONFIG_VIDEO_IMX335=m +CONFIG_VIDEO_IMX355=m +CONFIG_VIDEO_IMX412=m +CONFIG_VIDEO_IMX7_CSI=m +CONFIG_VIDEO_IMX8_JPEG=m +CONFIG_VIDEO_IMX_CSI=m +CONFIG_VIDEO_IMX_MEDIA=m +CONFIG_VIDEO_IMX_MIPI_CSIS=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_ISL7998X=m +CONFIG_VIDEO_IVTV=m +CONFIG_VIDEO_IVTV_ALSA=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_LM3560=m +CONFIG_VIDEO_LM3646=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_M5MOLS=m +CONFIG_VIDEO_MAX9271_LIB=m +CONFIG_VIDEO_MAX9286=m +CONFIG_VIDEO_MAX96712=m +CONFIG_VIDEO_MEDIATEK_VPU=m +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_MESON_GE2D=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_OG01A1B=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_OV02A10=m +CONFIG_VIDEO_OV08D10=m +CONFIG_VIDEO_OV13858=m +CONFIG_VIDEO_OV13B10=m +CONFIG_VIDEO_OV2640=m +CONFIG_VIDEO_OV2659=m +CONFIG_VIDEO_OV2680=m +CONFIG_VIDEO_OV2685=m +CONFIG_VIDEO_OV2740=m +CONFIG_VIDEO_OV5640=m +CONFIG_VIDEO_OV5645=m +CONFIG_VIDEO_OV5647=m +CONFIG_VIDEO_OV5648=m +CONFIG_VIDEO_OV5670=m +CONFIG_VIDEO_OV5675=m +CONFIG_VIDEO_OV5693=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_OV8865=m +CONFIG_VIDEO_OV9282=m +CONFIG_VIDEO_OV9640=m +CONFIG_VIDEO_OV9650=m +CONFIG_VIDEO_OV9734=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_ISP=m +CONFIG_VIDEO_RCAR_VIN=m +CONFIG_VIDEO_RDACM20=m +CONFIG_VIDEO_RDACM21=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_ISP1=m +CONFIG_VIDEO_ROCKCHIP_RGA=m +CONFIG_VIDEO_ROCKCHIP_VDEC=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 is not set +# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set +# CONFIG_VIDEO_SAMSUNG_S5P_JPEG is not set +# CONFIG_VIDEO_SAMSUNG_S5P_MFC is not set +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_SUN8I_DEINTERLACE=m +CONFIG_VIDEO_SUN8I_ROTATE=m +CONFIG_VIDEO_SUNXI=y +CONFIG_VIDEO_SUNXI_CEDRUS=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_TEGRA=m +CONFIG_VIDEO_TEGRA_TPG=y +CONFIG_VIDEO_TEGRA_VDE=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_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_CSI2RXSS=m +CONFIG_VIDEO_XILINX_TPG=m +CONFIG_VIDEO_XILINX_VTC=m +# CONFIG_VIDEO_ZORAN is not set +CONFIG_VIPERBOARD_ADC=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_ANCHOR=y +CONFIG_VIRTIO_BALLOON=y +CONFIG_VIRTIO_BLK=m +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_DMA_SHARED_BUFFER=m +CONFIG_VIRTIO_FS=m +CONFIG_VIRTIO_INPUT=m +CONFIG_VIRTIO_IOMMU=y +CONFIG_VIRTIO_MEM=m +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_PCI_LIB=y +CONFIG_VIRTIO_PCI_LIB_LEGACY=y +CONFIG_VIRTIO_PMEM=m +CONFIG_VIRTIO_VDPA=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_VISCONTI_WATCHDOG=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_PFN=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_VMGENID=m +CONFIG_VMIVME_7805=m +CONFIG_VMLINUX_MAP=y +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_VORTEX=m +CONFIG_VP_VDPA=m +CONFIG_VSOCKETS=m +CONFIG_VSOCKETS_DIAG=m +CONFIG_VSOCKETS_LOOPBACK=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_DS2430=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_COMPAT_NETLINK_MESSAGES=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_HRTIMER_PRETIMEOUT is not set +# 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_WATCH_QUEUE=y +CONFIG_WCN36XX=m +# CONFIG_WCN36XX_DEBUGFS is not set +CONFIG_WDAT_WDT=m +# CONFIG_WERROR is not set +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WFX=m +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_WINBOND_840=m +CONFIG_WINDFARM=m +CONFIG_WINMATE_FM07_KEYS=m +CONFIG_WIREGUARD=m +# CONFIG_WIREGUARD_DEBUG is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIRELESS_HOTKEY=m +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_MICROCHIP=y +CONFIG_WLAN_VENDOR_PURELIFI=y +CONFIG_WLAN_VENDOR_QUANTENNA=y +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_WLAN_VENDOR_REALTEK=y +CONFIG_WLAN_VENDOR_RSI=y +CONFIG_WLAN_VENDOR_SILABS=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_WWAN_DEBUGFS=y +CONFIG_WWAN_HWSIM=m +# CONFIG_WW_MUTEX_SELFTEST is not set +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_X86=y +CONFIG_X86_16BIT=y +CONFIG_X86_5LEVEL=y +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_AMD_PSTATE=y +CONFIG_X86_ANDROID_TABLETS=m +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_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_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_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_IOPL_IOPERM=y +CONFIG_X86_IO_APIC=y +# CONFIG_X86_KERNEL_IBT is not set +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_MEM_ENCRYPT=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_PLATFORM_DRIVERS_DELL=y +CONFIG_X86_PMEM_LEGACY=y +CONFIG_X86_PMEM_LEGACY_DEVICE=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POWERNOW_K8=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +CONFIG_X86_SGX=y +CONFIG_X86_SGX_KVM=y +CONFIG_X86_SPEEDSTEP_CENTRINO=y +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_TSC=y +CONFIG_X86_UMIP=y +CONFIG_X86_UV=y +# CONFIG_X86_VERBOSE_BOOTUP is not set +CONFIG_X86_VMX_FEATURE_NAMES=y +# CONFIG_X86_VSMP is not set +CONFIG_X86_VSYSCALL_EMULATION=y +CONFIG_X86_X2APIC=y +# CONFIG_X86_X32_ABI is not set +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_GRANT_DMA_IOMMU=y +CONFIG_XEN_GRANT_DMA_OPS=y +CONFIG_XEN_HAVE_PVMMU=y +CONFIG_XEN_HAVE_VPMU=y +CONFIG_XEN_MCE_LOG=y +CONFIG_XEN_MEMORY_HOTPLUG_LIMIT=512 +CONFIG_XEN_NETDEV_BACKEND=m +CONFIG_XEN_NETDEV_FRONTEND=y +CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PCIDEV_STUB=m +CONFIG_XEN_PCI_STUB=y +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_GUEST=y +CONFIG_XEN_PVHVM_SMP=y +CONFIG_XEN_PV_DOM0=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_UNPOPULATED_ALLOC=y +CONFIG_XEN_VIRTIO=y +# CONFIG_XEN_VIRTIO_FORCE_GRANT is not set +CONFIG_XEN_WDT=m +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XFRM=y +CONFIG_XFRM_AH=m +CONFIG_XFRM_ALGO=m +CONFIG_XFRM_ESP=m +CONFIG_XFRM_ESPINTCP=y +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_XFRM_USER_COMPAT=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_SUPPORT_V4=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_AMS=m +CONFIG_XILINX_AXI_EMAC=m +CONFIG_XILINX_DMA=m +CONFIG_XILINX_GMII2RGMII=m +CONFIG_XILINX_INTC=y +CONFIG_XILINX_PR_DECOUPLER=m +CONFIG_XILINX_VCU=m +CONFIG_XILINX_XADC=m +CONFIG_XILINX_ZYNQMP_DMA=m +CONFIG_XILINX_ZYNQMP_DPDMA=m +CONFIG_XILLYBUS_CLASS=m +CONFIG_XILLYBUS_OF=m +CONFIG_XILLYBUS_PCIE=m +CONFIG_XILLYUSB=m +CONFIG_XIL_AXIS_FIFO=m +# CONFIG_XIP_KERNEL is not set +CONFIG_XLNX_EVENT_MANAGER=y +CONFIG_XMON=y +# CONFIG_XMON_DEFAULT is not set +CONFIG_XMON_DEFAULT_RO_MODE=y +CONFIG_XMON_DISASSEMBLY=y +CONFIG_XOR_BLOCKS=m +CONFIG_XPOWER_PMIC_OPREGION=y +CONFIG_XPS=y +CONFIG_XXHASH=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_BCJ=y +CONFIG_XZ_DEC_MICROLZMA=y +CONFIG_YAM=m +CONFIG_YAMAHA_YAS530=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_YOGABOOK_WMI=m +CONFIG_Z3FOLD=m +CONFIG_ZBOOT_ROM_BSS=0x0 +CONFIG_ZBOOT_ROM_TEXT=0x0 +CONFIG_ZBUD=y +CONFIG_ZCRYPT=m +# CONFIG_ZCRYPT_DEBUG is not set +CONFIG_ZCRYPT_MULTIDEVNODES=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZERO_CALL_USED_REGS=y +CONFIG_ZFCP=m +CONFIG_ZISOFS=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_ZLIB_DFLTCC=y +CONFIG_ZLIB_INFLATE=y +CONFIG_ZONEFS_FS=m +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_DEF_COMP="lzo-rle" +# CONFIG_ZRAM_DEF_COMP_842 is not set +# CONFIG_ZRAM_DEF_COMP_LZ4 is not set +# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set +# CONFIG_ZRAM_DEF_COMP_LZO is not set +CONFIG_ZRAM_DEF_COMP_LZORLE=y +# CONFIG_ZRAM_DEF_COMP_ZSTD is not set +CONFIG_ZRAM_MEMORY_TRACKING=y +CONFIG_ZRAM_WRITEBACK=y +CONFIG_ZSMALLOC=y +# CONFIG_ZSMALLOC_STAT is not set +CONFIG_ZSTD_COMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_ZSWAP=y +CONFIG_ZSWAP_COMPRESSOR_DEFAULT="lzo" +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_842 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_DEFLATE is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4 is not set +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZ4HC is not set +CONFIG_ZSWAP_COMPRESSOR_DEFAULT_LZO=y +# CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD is not set +# CONFIG_ZSWAP_DEFAULT_ON is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT="zbud" +# CONFIG_ZSWAP_ZPOOL_DEFAULT_Z3FOLD is not set +CONFIG_ZSWAP_ZPOOL_DEFAULT_ZBUD=y +# CONFIG_ZSWAP_ZPOOL_DEFAULT_ZSMALLOC is not set +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-5.19.0.orig/debian.master/config/ppc64el/config.common.ppc64el +++ linux-5.19.0/debian.master/config/ppc64el/config.common.ppc64el @@ -0,0 +1,700 @@ +# +# Config options for config.common.ppc64el automatically generated by splitconfig.pl +# +CONFIG_6LOWPAN=m +CONFIG_AC97_BUS=m +CONFIG_ACCESSIBILITY=y +CONFIG_AD525X_DPOT=m +CONFIG_ADFS_FS=m +CONFIG_ADIN1100_PHY=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_AQTION=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_BAREUDP=m +CONFIG_BATMAN_ADV=m +CONFIG_BCH=m +CONFIG_BCM84881_PHY=y +CONFIG_BCMA=m +CONFIG_BCM_KONA_USB2_PHY=m +CONFIG_BCM_VK=m +CONFIG_BE2ISCSI=m +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BSD_DISKLABEL=y +CONFIG_C2PORT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_CAIF=m +CONFIG_CAN=m +CONFIG_CB710_CORE=m +CONFIG_CC_VERSION_TEXT="powerpc64le-linux-gnu-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +CONFIG_CDROM_PKTCDVD=m +CONFIG_CMA=y +CONFIG_CMDLINE="" +CONFIG_CMDLINE_PARTITION=y +CONFIG_CMM=m +CONFIG_COMEDI=m +CONFIG_COMMON_CLK=y +CONFIG_COMMON_CLK_XLNX_CLKWZRD=m +CONFIG_COMPAT=y +CONFIG_COUNTER=m +# CONFIG_CPU_BIG_ENDIAN is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CRAMFS=m +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO_DEV_ATMEL_ECC=m +CONFIG_CRYPTO_DEV_ATMEL_SHA204A=m +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +CONFIG_CRYPTO_DEV_SAFEXCEL=m +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_CXL_BUS=m +CONFIG_DEBUG_INFO_BTF=y +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_DP83TD510_PHY=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +# 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_SIMPLEDRM=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DS1682=m +CONFIG_DUMMY_IRQ=m +CONFIG_DWMAC_INTEL_PLAT=m +CONFIG_DW_WATCHDOG=m +CONFIG_DW_XDATA_PCIE=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_EXFAT_FS=m +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=m +CONFIG_FB_SIS=m +CONFIG_FB_SM712=m +CONFIG_FB_SSD1307=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_FIRMWARE_MEMMAP=y +CONFIG_FORCE_MAX_ZONEORDER=9 +CONFIG_FORTIFY_SOURCE=y +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_GOLDFISH is not set +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_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_TPIC2810=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_GPIO_VIRTIO=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_HISI_HIKEY_USB=m +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_HTE=y +CONFIG_HWMON=y +CONFIG_HWSPINLOCK=y +# CONFIG_HW_RANDOM_CCTRNG is not set +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_HZ=250 +# CONFIG_HZ_100 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_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_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_VIRTIO=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_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_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_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTERCONNECT=y +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +CONFIG_IOMMU_IOVA=m +CONFIG_IPACK_BUS=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IP_DCCP_CCID3 is not set +CONFIG_IP_VS_TWOS=m +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=y +CONFIG_KVM=y +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_MARVELL_88X2222_PHY=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MCB=m +CONFIG_MCTP=y +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_THUNDER=m +CONFIG_MD_MULTIPATH=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MEDIA_CEC_SUPPORT=y +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_ATC260X_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_IQS62X=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_MP2629=m +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RT4831=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_VX855=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM8994=m +CONFIG_MHI_BUS=m +CONFIG_MHI_BUS_EP=m +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=m +CONFIG_MLX5_SF=y +CONFIG_MLX5_VFIO_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=m +CONFIG_MMC_CQHCI=m +# CONFIG_MMC_HSQ is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SPI=m +CONFIG_MOST=m +CONFIG_MOTORCOMM_PHY=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND_CORE=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_DSA=m +# CONFIG_NET_DSA_MSCC_FELIX is not set +CONFIG_NET_DSA_REALTEK_MDIO=m +CONFIG_NET_DSA_REALTEK_SMI=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_DAVICOM=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=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_NULL_TTY=m +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NVMEM=y +CONFIG_NVRAM=y +CONFIG_NXP_C45_TJA11XX_PHY=m +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_PAGE_POOL_STATS is not set +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_EPF_NTB=m +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCS_XPCS=m +CONFIG_PECI=m +CONFIG_PGTABLE_LEVELS=4 +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHYSICAL_START=0x00000000 +CONFIG_PHY_CAN_TRANSCEIVER=m +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_SUPPLY=y +CONFIG_PPP=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +# 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_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_PVPANIC=y +CONFIG_PWM=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_RAPIDIO=y +CONFIG_RAVE_SP_CORE=m +CONFIG_RC_CORE=m +CONFIG_REED_SOLOMON=m +CONFIG_REGMAP_I2C=y +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_GOLDFISH=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_EFCT=m +CONFIG_SCSI_ESAS2R=m +CONFIG_SCSI_FDOMAIN_PCI=m +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_MPI3MR=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_Q54SJ108A2 is not set +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_SERIAL_SIFIVE=m +CONFIG_SERIO=y +CONFIG_SFC=m +CONFIG_SFC_FALCON=m +CONFIG_SFC_SIENA=m +CONFIG_SGI_PARTITION=y +CONFIG_SLIP=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_DMAENGINE_PCM=m +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +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_SPI_SIFIVE=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=y +CONFIG_TCG_TIS_I2C_CR50=m +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_TOUCHSCREEN_ELAN=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_TTY_PRINTK=y +CONFIG_UACCE=m +CONFIG_UBSAN=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_USB4=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_GADGET=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_SUPPORT=y +CONFIG_VDPA=m +CONFIG_VFIO=y +CONFIG_VFIO_PCI=y +CONFIG_VFIO_PCI_CORE=y +CONFIG_VFIO_VIRQFD=y +CONFIG_VIRTIO_MMIO=y +# CONFIG_VIRT_CPU_ACCOUNTING_NATIVE is not set +CONFIG_VME_BUS=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +CONFIG_W1=m +CONFIG_WAN=y +CONFIG_WDTPCI=m +CONFIG_WWAN=y +CONFIG_X25=m +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=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 --- linux-5.19.0.orig/debian.master/config/ppc64el/config.flavour.generic +++ linux-5.19.0/debian.master/config/ppc64el/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-5.19.0.orig/debian.master/config/riscv64/config.common.riscv64 +++ linux-5.19.0/debian.master/config/riscv64/config.common.riscv64 @@ -0,0 +1,691 @@ +# +# Config options for config.common.riscv64 automatically generated by splitconfig.pl +# +CONFIG_6LOWPAN=m +CONFIG_AC97_BUS=m +# CONFIG_ACCESSIBILITY is not set +CONFIG_AD525X_DPOT=m +CONFIG_ADFS_FS=m +CONFIG_ADIN1100_PHY=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_AQTION=m +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=24 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=17 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +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=m +CONFIG_BAREUDP=m +CONFIG_BATMAN_ADV=m +CONFIG_BCH=m +CONFIG_BCM84881_PHY=m +CONFIG_BCMA=m +CONFIG_BCM_KONA_USB2_PHY=m +CONFIG_BCM_VK=m +CONFIG_BE2ISCSI=m +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BSD_DISKLABEL=y +CONFIG_C2PORT=m +CONFIG_CADENCE_WATCHDOG=m +CONFIG_CAIF=m +CONFIG_CAN=m +CONFIG_CB710_CORE=m +CONFIG_CC_VERSION_TEXT="riscv64-linux-gnu-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +CONFIG_CDROM_PKTCDVD=m +CONFIG_CMA=y +CONFIG_CMDLINE="" +CONFIG_CMDLINE_PARTITION=y +CONFIG_COMEDI=m +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_COMPAT is not set +# CONFIG_COUNTER is not set +CONFIG_CRAMFS=m +CONFIG_CRC7=y +CONFIG_CRC8=m +CONFIG_CRC_ITU_T=y +# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set +CONFIG_CRYPTO_DEV_NITROX_CNN55XX=m +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +CONFIG_CRYPTO_DH_RFC7919_GROUPS=y +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +CONFIG_CRYPTO_SM3_GENERIC=m +CONFIG_CRYPTO_SM4_GENERIC=m +CONFIG_CXL_BUS=m +CONFIG_DEBUG_INFO_BTF=y +CONFIG_DECNET=m +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_DMADEVICES=y +CONFIG_DMA_CMA=y +CONFIG_DMA_PERNUMA_CMA=y +CONFIG_DMA_VIRTUAL_CHANNELS=m +# CONFIG_DM_DEBUG is not set +CONFIG_DNET=m +CONFIG_DP83TD510_PHY=m +CONFIG_DRM_AMDGPU=m +CONFIG_DRM_ANALOGIX_ANX78XX=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +# 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_SIMPLEDRM=m +CONFIG_DRM_SSD130X=m +CONFIG_DRM_VGEM=m +CONFIG_DRM_VKMS=m +CONFIG_DS1682=m +CONFIG_DUMMY_IRQ=m +# CONFIG_DWMAC_INTEL_PLAT is not set +CONFIG_DW_WATCHDOG=m +CONFIG_DW_XDATA_PCIE=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 is not set +CONFIG_EXFAT_FS=m +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=m +CONFIG_FB_SIS=m +CONFIG_FB_SM712=m +CONFIG_FB_SSD1307=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_FIRMWARE_MEMMAP=y +# CONFIG_FORTIFY_SOURCE is not set +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_GOLDFISH=y +CONFIG_GPIO_ADP5588=m +# CONFIG_GPIO_AMD_FCH is not set +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_PCA9570=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SIOX=m +CONFIG_GPIO_TPIC2810=m +CONFIG_GPIO_TWL4030=m +CONFIG_GPIO_TWL6040=m +CONFIG_GPIO_VIRTIO=m +# CONFIG_GPIO_XILINX is not set +# CONFIG_GREYBUS is not set +# CONFIG_HABANA_AI is not set +CONFIG_HAMACHI=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +CONFIG_HID=m +# CONFIG_HISI_HIKEY_USB 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_HTE is not set +CONFIG_HWMON=y +CONFIG_HWSPINLOCK=y +CONFIG_HW_RANDOM_CCTRNG=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_XIPHERA=m +CONFIG_HZ=250 +# CONFIG_HZ_100 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_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_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_VIRTIO=m +CONFIG_I2C_XILINX=m +CONFIG_I3C=m +CONFIG_I6300ESB_WDT=m +CONFIG_ICS932S401=m +CONFIG_IEEE802154=m +CONFIG_IIO=m +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_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INTERCONNECT=y +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +CONFIG_IOMMU_IOVA=m +CONFIG_IPACK_BUS=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IP_DCCP_CCID3 is not set +# CONFIG_IP_VS_TWOS 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_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_MARVELL_88X2222_PHY=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAXLINEAR_GPHY=m +CONFIG_MCB=m +CONFIG_MCTP=y +CONFIG_MDIO_BCM_UNIMAC=m +CONFIG_MDIO_BITBANG=m +CONFIG_MDIO_BUS_MUX=m +CONFIG_MDIO_THUNDER=m +CONFIG_MD_MULTIPATH=m +CONFIG_MEDIATEK_GE_PHY=m +CONFIG_MEDIA_CEC_SUPPORT=y +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_ATC260X_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_IQS62X=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_MP2629=m +CONFIG_MFD_MT6360=m +CONFIG_MFD_MT6397=m +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RT4831=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 is not set +CONFIG_MFD_VX855=m +CONFIG_MFD_WCD934X=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM8994=m +CONFIG_MHI_BUS=m +CONFIG_MHI_BUS_EP=m +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISC_ALCOR_PCI=m +CONFIG_MISC_RTSX_PCI=m +CONFIG_MLX5_SF=y +CONFIG_MLX5_VFIO_PCI=m +CONFIG_MLXSW_I2C=m +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_CQHCI=m +CONFIG_MMC_HSQ=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MMC_SPI=y +CONFIG_MOST=m +CONFIG_MOTORCOMM_PHY=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND_CORE=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_DSA=m +CONFIG_NET_DSA_REALTEK_MDIO=m +CONFIG_NET_DSA_REALTEK_SMI=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_DAVICOM=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EZCHIP=y +CONFIG_NET_VENDOR_FUNGIBLE=y +CONFIG_NET_VENDOR_GOOGLE=y +CONFIG_NET_VENDOR_HUAWEI=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_LITEX=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MICROSEMI=y +CONFIG_NET_VENDOR_MICROSOFT=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=2 +CONFIG_NOP_USB_XCEIV=m +CONFIG_NOZOMI=m +CONFIG_NR_CPUS=32 +CONFIG_NTB=m +# CONFIG_NTFS_RW is not set +CONFIG_NULL_TTY=m +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_NVMEM=y +CONFIG_NXP_C45_TJA11XX_PHY=m +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=0xff60000000000000 +# CONFIG_PAGE_POOL_STATS is not set +CONFIG_PANIC_TIMEOUT=0 +CONFIG_PARPORT=m +CONFIG_PATA_SIS=m +CONFIG_PC104=y +# CONFIG_PCCARD is not set +CONFIG_PCIEPORTBUS=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_EPF_NTB=m +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCS_XPCS=m +CONFIG_PECI=m +CONFIG_PGTABLE_LEVELS=5 +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHY_CAN_TRANSCEIVER=m +CONFIG_PHY_PXA_28NM_HSIC=m +CONFIG_PHY_PXA_28NM_USB2=m +CONFIG_PINCTRL=y +# CONFIG_PM is not set +CONFIG_PM_DEVFREQ=y +CONFIG_POWERCAP=y +CONFIG_POWER_SUPPLY=y +CONFIG_PPP=y +CONFIG_PPS_CLIENT_GPIO=m +CONFIG_PPS_CLIENT_LDISC=m +# 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_PTDUMP_DEBUGFS is not set +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_IDT82P33=m +CONFIG_PTP_1588_CLOCK_OPTIONAL=y +CONFIG_PVPANIC=y +CONFIG_PWM=y +CONFIG_QNX4FS_FS=m +CONFIG_QNX6FS_FS=m +CONFIG_QRTR=m +CONFIG_RAPIDIO=y +CONFIG_RAVE_SP_CORE=m +CONFIG_RC_CORE=m +CONFIG_REED_SOLOMON=m +CONFIG_REGMAP_I2C=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_REGULATOR_TWL4030=m +CONFIG_REISERFS_FS=m +# CONFIG_REMOTEPROC is not set +CONFIG_RESET_CONTROLLER=y +CONFIG_RFKILL=y +CONFIG_RMI4_CORE=m +CONFIG_ROMFS_FS=m +CONFIG_RPMSG_VIRTIO=m +CONFIG_RTC_DRV_EFI=m +CONFIG_RTC_DRV_GOLDFISH=y +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_TWL4030=m +CONFIG_S2IO=m +CONFIG_SATA_AHCI_PLATFORM=m +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_EFCT=m +CONFIG_SCSI_ESAS2R=m +# CONFIG_SCSI_FDOMAIN_PCI is not set +CONFIG_SCSI_HPSA=m +CONFIG_SCSI_HPTIOP=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPS=m +CONFIG_SCSI_MPI3MR=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_Q54SJ108A2=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 is not set +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_SERIAL_SIFIVE=y +CONFIG_SERIO=y +CONFIG_SFC=m +CONFIG_SFC_FALCON=m +CONFIG_SFC_SIENA=m +CONFIG_SGI_PARTITION=y +CONFIG_SLIP=m +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_DMAENGINE_PCM=m +# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +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_SPI_SIFIVE=y +CONFIG_SPMI=m +CONFIG_SRAM=y +CONFIG_SSB=m +CONFIG_STAGING=y +CONFIG_STANDALONE=y +CONFIG_SUN_PARTITION=y +# CONFIG_SYSFB_SIMPLEFB is not set +CONFIG_SYSV68_PARTITION=y +CONFIG_SYSV_FS=m +CONFIG_TCG_TIS_I2C_ATMEL=m +CONFIG_TCG_TIS_I2C_CR50=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_TOUCHSCREEN_ELAN=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TTY_PRINTK=y +CONFIG_UACCE=m +# CONFIG_UBSAN is not set +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_USB4=m +CONFIG_USB_EHCI_HCD_PLATFORM=m +CONFIG_USB_GADGET=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_OHCI_HCD_PLATFORM=m +CONFIG_USB_SUPPORT=y +CONFIG_VDPA=m +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_CORE=m +CONFIG_VFIO_VIRQFD=m +CONFIG_VIRTIO_MMIO=y +# CONFIG_VMAP_STACK is not set +CONFIG_VME_BUS=y +CONFIG_VMXNET3=m +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +CONFIG_W1=m +CONFIG_WAN=y +CONFIG_WDTPCI=m +CONFIG_WWAN=m +CONFIG_X25=m +CONFIG_XILINX_EMACLITE=m +CONFIG_XILINX_LL_TEMAC=m +# CONFIG_XILINX_SDFEC is not set +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 --- linux-5.19.0.orig/debian.master/config/riscv64/config.flavour.generic +++ linux-5.19.0/debian.master/config/riscv64/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-5.19.0.orig/debian.master/config/s390x/config.common.s390x +++ linux-5.19.0/debian.master/config/s390x/config.common.s390x @@ -0,0 +1,623 @@ +# +# Config options for config.common.s390x automatically generated by splitconfig.pl +# +# CONFIG_6LOWPAN is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_ADFS_FS is not set +# CONFIG_ADIN1100_PHY 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_AQTION 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_BAREUDP is not set +# CONFIG_BATMAN_ADV is not set +# CONFIG_BCM84881_PHY is not set +# CONFIG_BCMA is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_BCM_VK 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_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_DEV_SX8 is not set +# 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_CC_VERSION_TEXT="s390x-linux-gnu-gcc-12 (Ubuntu 12.2.0-3ubuntu1) 12.2.0" +# CONFIG_CDROM_PKTCDVD is not set +CONFIG_CMA=y +# CONFIG_CMDLINE_PARTITION is not set +CONFIG_CMM=y +# CONFIG_COMEDI is not set +# CONFIG_COMMON_CLK is not set +CONFIG_COMPAT=y +# CONFIG_COUNTER is not set +CONFIG_CPU_BIG_ENDIAN=y +# CONFIG_CRAMFS is not set +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_ITU_T=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_CRYPTO_DH_RFC7919_GROUPS is not set +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=1 +# CONFIG_CRYPTO_SM3_GENERIC is not set +# CONFIG_CRYPTO_SM4_GENERIC is not set +# CONFIG_CXL_BUS is not set +CONFIG_DEBUG_INFO_BTF=y +# 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_DP83TD510_PHY 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_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_SIMPLEDRM is not set +# CONFIG_DRM_SSD130X 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_DW_XDATA_PCIE 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_EXFAT_FS 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_SSD1307 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_FIRMWARE_MEMMAP is not set +CONFIG_FORTIFY_SOURCE=y +# 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_GOLDFISH 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_PCA9570 is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_RDC321X is not set +# CONFIG_GPIO_SIOX is not set +# CONFIG_GPIO_TPIC2810 is not set +# CONFIG_GPIO_VIRTIO 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_HID 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_HTE is not set +# CONFIG_HWMON is not set +# CONFIG_HWSPINLOCK is not set +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_HW_RANDOM_XIPHERA is not set +CONFIG_HZ=100 +CONFIG_HZ_100=y +# 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_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_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_VIRTIO 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_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 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_SPARSEKMAP is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set +CONFIG_IOMMU_DEFAULT_DMA_STRICT=y +# CONFIG_IPACK_BUS is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_IP_DCCP_CCID3=y +# CONFIG_IP_VS_TWOS is not set +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_KVM=y +# CONFIG_LAPB 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_MARVELL_88X2222_PHY is not set +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MAXLINEAR_GPHY is not set +# CONFIG_MCB is not set +# CONFIG_MCTP is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_THUNDER is not set +CONFIG_MD_MULTIPATH=y +# CONFIG_MEDIATEK_GE_PHY is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +# 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_ATC260X_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_IQS62X 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_MP2629 is not set +# CONFIG_MFD_MT6360 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_RT4831 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_VX855 is not set +# CONFIG_MFD_WCD934X is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MHI_BUS is not set +# CONFIG_MHI_BUS_EP 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_MLX5_SF is not set +# CONFIG_MLX5_VFIO_PCI is not set +# CONFIG_MLXSW_I2C is not set +# CONFIG_MMC is not set +# CONFIG_MOST is not set +# CONFIG_MOTORCOMM_PHY is not set +# CONFIG_MTD is not set +# CONFIG_NET_DSA 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_DAVICOM 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_FUNGIBLE is not set +# CONFIG_NET_VENDOR_GOOGLE is not set +# CONFIG_NET_VENDOR_HUAWEI is not set +# CONFIG_NET_VENDOR_INTEL is not set +# CONFIG_NET_VENDOR_LITEX 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_MICROSOFT 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=1 +# CONFIG_NOZOMI is not set +CONFIG_NR_CPUS=512 +# CONFIG_NTB is not set +CONFIG_NTFS_RW=y +# CONFIG_NULL_TTY is not set +# CONFIG_NUMA_BALANCING_DEFAULT_ENABLED is not set +# CONFIG_NVMEM is not set +# CONFIG_NXP_C45_TJA11XX_PHY 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_PAGE_POOL_STATS 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_EPF_NTB is not set +# CONFIG_PCI_PASID is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_QUIRKS is not set +# CONFIG_PCS_XPCS is not set +# CONFIG_PECI is not set +CONFIG_PGTABLE_LEVELS=5 +# CONFIG_PHANTOM is not set +# CONFIG_PHONET is not set +# CONFIG_PHY_CAN_TRANSCEIVER is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PINCTRL is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_POWERCAP is not set +# CONFIG_POWER_SUPPLY is not set +# CONFIG_PPP is not set +# CONFIG_PPS_CLIENT_GPIO is not set +# CONFIG_PPS_CLIENT_LDISC is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PSI_DEFAULT_DISABLED=y +# CONFIG_PSTORE is not set +CONFIG_PTDUMP_DEBUGFS=y +CONFIG_PTP_1588_CLOCK=m +# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set +CONFIG_PTP_1588_CLOCK_OPTIONAL=m +# CONFIG_PVPANIC is not set +# CONFIG_PWM is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_QRTR is not set +# CONFIG_RAPIDIO is not set +# CONFIG_RAVE_SP_CORE is not set +# CONFIG_RC_CORE is not set +CONFIG_REGMAP_I2C=m +# 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_SAMPLE_FTRACE_DIRECT 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_EFCT is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_SCSI_FDOMAIN_PCI 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_MPI3MR 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_SFC_SIENA 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_CR50 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_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +# CONFIG_TTY_PRINTK is not set +# CONFIG_UACCE is not set +CONFIG_UBSAN=y +# 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_USB4 is not set +# CONFIG_USB_SUPPORT is not set +# CONFIG_VDPA is not set +CONFIG_VFIO=m +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_CORE=m +CONFIG_VFIO_VIRQFD=m +# CONFIG_VIRTIO_MMIO is not set +CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y +CONFIG_VMAP_STACK=y +# CONFIG_VME_BUS is not set +# CONFIG_VMXNET3 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_WWAN is not set +# CONFIG_X25 is not set +# CONFIG_XILINX_EMACLITE is not set +# CONFIG_XILINX_LL_TEMAC 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 --- linux-5.19.0.orig/debian.master/config/s390x/config.flavour.generic +++ linux-5.19.0/debian.master/config/s390x/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-5.19.0.orig/debian.master/control.d/flavour-control.stub +++ linux-5.19.0/debian.master/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: +Architecture: ARCH +Section: kernel +Priority: optional +Provides: linux-image, fuse-module, =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, linux-modules-extra-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: +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: +Architecture: ARCH +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-PKGVER-ABINUM-FLAVOUR, wireless-regdb +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: +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: +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: +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: +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-5.19.0.orig/debian.master/control.d/generic.inclusion-list +++ linux-5.19.0/debian.master/control.d/generic.inclusion-list @@ -0,0 +1,303 @@ +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/ahci_tegra.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/bus/tegra-aconnect.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/clk/clk-max77686.ko +drivers/cpufreq/tegra186-cpufreq.ko +drivers/cpufreq/tegra194-cpufreq.ko +drivers/crypto/nx/* +drivers/crypto/vmx/vmx-crypto.ko +drivers/dma/tegra210-adma.ko +drivers/firmware/efi/* +drivers/firmware/iscsi_ibft.ko +drivers/gpio/gpio-max77620.ko +drivers/gpu/drm/ast/ast.ko +drivers/gpu/drm/bochs/bochs-drm.ko +drivers/gpu/drm/cirrus/cirrus.ko +drivers/gpu/drm/drm.ko +drivers/gpu/drm/drm_kms_helper.ko +drivers/gpu/drm/tegra/tegra-drm.ko +drivers/gpu/drm/ttm/ttm.ko +drivers/gpu/drm/vboxvideo/vboxvideo.ko +drivers/gpu/drm/virtio/virtio-gpu.ko +drivers/gpu/drm/vmwgfx/vmwgfx.ko +drivers/gpu/drm/xen/drm_xen_front.ko +drivers/gpu/host1x/host1x.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/hwmon/pwm-fan.ko +drivers/i2c/busses/i2c-tegra-bpmp.ko +drivers/i2c/busses/i2c-tegra-bpmp.ko +drivers/i2c/busses/i2c-tegra.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/keyboard/gpio_keys.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/memory/tegra/tegra210-emc.ko +drivers/message/fusion* +drivers/misc/cxl/* +drivers/misc/eeprom/at24.ko +drivers/misc/vmw_balloon.ko +drivers/misc/vmw_vmci/vmw_vmci.ko +drivers/mmc/host/sdhci-tegra.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/ethernet/stmicro/stmmac/dwmac-dwc-qos-eth.ko +drivers/net/ethernet/stmicro/stmmac/stmmac-platform.ko +drivers/net/ethernet/stmicro/stmmac/stmmac.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/pcs/pcs-xpcs.ko +drivers/net/phy/marvell.ko +drivers/net/phy/phylink.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/wireguard/wireguard.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/controller/dwc/pcie-tegra194.ko +drivers/pci/host/vmd.ko +drivers/phy/tegra/phy-tegra194-p2u.ko +drivers/pinctrl/pinctrl-max77620.ko +drivers/platform/x86/pvpanic.ko +drivers/pps/pps_core.ko +drivers/ptp/ptp.ko +drivers/pwm/pwm-tegra.ko +drivers/regulator/fixed.ko +drivers/regulator/max77620-regulator.ko +drivers/rtc/rtc-max77686.ko +drivers/rtc/rtc-tegra.ko +drivers/s390/* +drivers/s390/block/xpram.ko +drivers/scsi/BusLogic.ko +drivers/scsi/aacraid/* +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/spi/spi-tegra114.ko +drivers/staging/media/tegra-video/tegra-video.ko +drivers/target/loopback/tcm_loop.ko +drivers/target/target_core*.ko +drivers/thermal/tegra/tegra-bpmp-thermal.ko +drivers/tty/serial/jsm/* +drivers/tty/serial/serial-tegra.ko +drivers/uio/uio.ko +drivers/uio/uio_pdrv_genirq.ko +drivers/usb/gadget/udc/tegra-xudc.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/virt/vboxguest/vboxguest.ko +drivers/virtio/* +drivers/watchdog/softdog.ko +drivers/xen/* +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/vboxsf/vboxsf.ko +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/* +! find sound/core -name oss -prune -o -name *.ko -print +sound/drivers/pcsp/snd-pcsp.ko +sound/pci/hda/snd-hda-tegra.ko +sound/pci/snd-ens1370.ko +sound/soc/tegra/snd-soc-tegra186-dspk.ko +sound/soc/tegra/snd-soc-tegra210-admaif.ko +sound/soc/tegra/snd-soc-tegra210-ahub.ko +sound/soc/tegra/snd-soc-tegra210-dmic.ko +sound/soc/tegra/snd-soc-tegra210-i2s.ko +sound/soundcore.ko +ubuntu/ubuntu-host/ubuntu-host.ko --- linux-5.19.0.orig/debian.master/control.d/linux-doc.stub +++ linux-5.19.0/debian.master/control.d/linux-doc.stub @@ -0,0 +1,12 @@ +Package: linux-doc +Build-Profiles: +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-5.19.0.orig/debian.master/control.d/linux-libc-dev.stub +++ linux-5.19.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-5.19.0.orig/debian.master/control.d/vars.generic +++ linux-5.19.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-efi-arm64 [arm64] | grub-efi-arm [armhf] | grub-ieee1275 [ppc64el]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64]" --- linux-5.19.0.orig/debian.master/control.d/vars.generic-64k +++ linux-5.19.0/debian.master/control.d/vars.generic-64k @@ -0,0 +1,6 @@ +arch="arm64" +supported="Generic 64K pages" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="grub-efi-arm64 [arm64] | flash-kernel [arm64]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-5.19.0.orig/debian.master/control.d/vars.generic-lpae +++ linux-5.19.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] | grub-efi-arm [armhf]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-5.19.0.orig/debian.master/control.stub.in +++ linux-5.19.0/debian.master/control.stub.in @@ -0,0 +1,156 @@ +Source: SRCPKGNAME +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: + debhelper-compat (= 10), + cpio, + kmod , + makedumpfile [amd64] , + libcap-dev , + libelf-dev , + libnewt-dev , + libiberty-dev , + default-jdk-headless , + java-common , + rsync , + libdw-dev , + libpci-dev , + pkg-config , + flex , + bison , + libunwind8-dev [amd64 arm64 armhf ppc64el] , + liblzma-dev , + openssl , + libssl-dev , + libaudit-dev , + bc , + gawk , + libudev-dev , + autoconf , + automake , + libtool , + uuid-dev , + libnuma-dev [amd64 arm64 ppc64el s390x] , + dkms , + curl , + zstd [amd64 s390x] , + pahole [amd64 arm64 armhf ppc64el s390x riscv64] | dwarves (>= 1.21) [amd64 arm64 armhf ppc64el s390x riscv64] , +Build-Depends-Indep: + xmlto , + docbook-utils , + ghostscript , + fig2dev , + bzip2 , + sharutils , + asciidoc , + python3-dev , + python3-sphinx , + python3-sphinx-rtd-theme , + fontconfig , + python3-docutils , + imagemagick , + graphviz , + dvipng , + fonts-noto-cjk , + latexmk , + librsvg2-bin , +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: +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: +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: +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends}, lsb-release +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: +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-. + +Package: SRCPKGNAME-cloud-tools-common +Build-Profiles: +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: +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-. + +Package: SRCPKGNAME-tools-host +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends}, python3 +Description: Linux kernel VM host tools + This package provides kernel tools useful for VM hosts. + --- linux-5.19.0.orig/debian.master/copyright +++ linux-5.19.0/debian.master/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +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 + +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-5.19.0.orig/debian.master/etc/getabis +++ linux-5.19.0/debian.master/etc/getabis @@ -0,0 +1,19 @@ +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/ppa2/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 +getall arm64 generic generic-64k +getall ppc64el generic +getall s390x generic --- linux-5.19.0.orig/debian.master/etc/kernelconfig +++ linux-5.19.0/debian.master/etc/kernelconfig @@ -0,0 +1 @@ +archs="amd64 armhf arm64 ppc64el riscv64 s390x" --- linux-5.19.0.orig/debian.master/modprobe.d/common.conf +++ linux-5.19.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-5.19.0.orig/debian.master/reconstruct +++ linux-5.19.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/arm/crypto/blake2s-shash.c' +rm -f 'arch/x86/crypto/blake2s-shash.c' +rm -f 'crypto/blake2s_generic.c' +rm -f 'fs/io-wq.c' +rm -f 'fs/io-wq.h' +rm -f 'fs/io_uring.c' +rm -f 'net/sched/cls_tcindex.c' +rm -f 'tools/testing/selftests/cpu-hotplug/config' +rm -f 'tools/testing/selftests/net/bpf/Makefile' +rm -f 'tools/testing/selftests/net/bpf/nat6to4.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/dkms-build-configure--zfs' +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/fw-to-ihex.sh' +chmod +x 'debian/scripts/misc/gen-auto-reconstruct' +chmod +x 'debian/scripts/misc/getabis' +chmod +x 'debian/scripts/misc/git-ubuntu-log' +chmod +x 'debian/scripts/misc/insert-changes' +chmod +x 'debian/scripts/misc/insert-mainline-changes' +chmod +x 'debian/scripts/misc/insert-ubuntu-changes' +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/module-signature-check' +chmod +x 'debian/scripts/retpoline-check' +chmod +x 'debian/scripts/retpoline-extract' +chmod +x 'debian/scripts/retpoline-extract-one' +chmod +x 'debian/scripts/sign-module' +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 'drivers/watchdog/f71808e_wdt.c' +chmod +x 'update-dkms-versions' +chmod +x 'update-version-dkms' +exit 0 --- linux-5.19.0.orig/debian.master/rules.d/amd64.mk +++ linux-5.19.0/debian.master/rules.d/amd64.mk @@ -0,0 +1,23 @@ +human_arch = 64 bit x86 +build_arch = x86 +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 +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_odm_drivers = true --- linux-5.19.0.orig/debian.master/rules.d/arm64.mk +++ linux-5.19.0/debian.master/rules.d/arm64.mk @@ -0,0 +1,21 @@ +human_arch = ARMv8 +build_arch = arm64 +header_arch = arm64 +defconfig = defconfig +flavours = generic generic-64k +build_image = Image.gz +kernel_file = arch/$(build_arch)/boot/Image.gz +install_file = vmlinuz +no_dumpfile = true +uefi_signed = true + +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 --- linux-5.19.0.orig/debian.master/rules.d/armhf.mk +++ linux-5.19.0/debian.master/rules.d/armhf.mk @@ -0,0 +1,17 @@ +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 + +do_tools_usbip = true +do_tools_cpupower = true +do_tools_perf = true +do_tools_perf_jvmti = true +do_tools_bpftool = true + +do_dtbs = true --- linux-5.19.0.orig/debian.master/rules.d/hooks.mk +++ linux-5.19.0/debian.master/rules.d/hooks.mk @@ -0,0 +1 @@ +do_enforce_all = true --- linux-5.19.0.orig/debian.master/rules.d/i386.mk +++ linux-5.19.0/debian.master/rules.d/i386.mk @@ -0,0 +1,18 @@ +human_arch = 32 bit x86 +build_arch = i386 +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_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-5.19.0.orig/debian.master/rules.d/ppc64el.mk +++ linux-5.19.0/debian.master/rules.d/ppc64el.mk @@ -0,0 +1,18 @@ +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 +do_extras_package = true +opal_signed = false +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 --- linux-5.19.0.orig/debian.master/rules.d/riscv64.mk +++ linux-5.19.0/debian.master/rules.d/riscv64.mk @@ -0,0 +1,20 @@ +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 + +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-5.19.0.orig/debian.master/rules.d/s390x.mk +++ linux-5.19.0/debian.master/rules.d/s390x.mk @@ -0,0 +1,19 @@ +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 --- linux-5.19.0.orig/debian.master/rules.d/x32.mk +++ linux-5.19.0/debian.master/rules.d/x32.mk @@ -0,0 +1,13 @@ +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 +vdso = vdso_install +no_dumpfile = true +uefi_signed = true + +do_flavour_image_package = false --- linux-5.19.0.orig/debian.master/tracking-bug +++ linux-5.19.0/debian.master/tracking-bug @@ -0,0 +1 @@ +2016651 2023.03.20-6 --- linux-5.19.0.orig/debian.master/upstream-stable +++ linux-5.19.0/debian.master/upstream-stable @@ -0,0 +1,5 @@ +# The following upstream stable releases have been ported: +[upstream-stable] + linux-5.15.y = v5.15.86 + linux-5.19.y = v5.19.17 + linux-6.0.y = v6.0.16 --- linux-5.19.0.orig/debian.master/variants +++ linux-5.19.0/debian.master/variants @@ -0,0 +1,3 @@ +-- +-hwe-22.04 +-hwe-22.04-edge --- linux-5.19.0.orig/debian/canonical-certs.pem +++ linux-5.19.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-5.19.0.orig/debian/canonical-revoked-certs.pem +++ linux-5.19.0/debian/canonical-revoked-certs.pem @@ -0,0 +1,688 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Apr 12 11:39:08 2012 GMT + Not After : Apr 11 11:39:08 2042 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:c9:5f:9b:62:8f:0b:b0:64:82:ac:be:c9:e2:62: + e3:4b:d2:9f:1e:8a:d5:61:1a:2b:5d:38:f4:b7:ce: + b9:9a:b8:43:b8:43:97:77:ab:4f:7f:0c:70:46:0b: + fc:7f:6d:c6:6d:ea:80:5e:01:d2:b7:66:1e:87:de: + 0d:6d:d0:41:97:a8:a5:af:0c:63:4f:f7:7c:c2:52: + cc:a0:31:a9:bb:89:5d:99:1e:46:6f:55:73:b9:76: + 69:ec:d7:c1:fc:21:d6:c6:07:e7:4f:bd:22:de:e4: + a8:5b:2d:db:95:34:19:97:d6:28:4b:21:4c:ca:bb: + 1d:79:a6:17:7f:5a:f9:67:e6:5c:78:45:3d:10:6d: + b0:17:59:26:11:c5:57:e3:7f:4e:82:ba:f6:2c:4e: + c8:37:4d:ff:85:15:84:47:e0:ed:3b:7c:7f:bc:af: + e9:01:05:a7:0c:6f:c3:e9:8d:a3:ce:be:a6:e3:cd: + 3c:b5:58:2c:9e:c2:03:1c:60:22:37:39:ff:41:02: + c1:29:a4:65:51:ff:33:34:aa:42:15:f9:95:78:fc: + 2d:f5:da:8a:85:7c:82:9d:fb:37:2c:6b:a5:a8:df: + 7c:55:0b:80:2e:3c:b0:63:e1:cd:38:48:89:e8:14: + 06:0b:82:bc:fd:d4:07:68:1b:0f:3e:d9:15:dd:94: + 11:1b + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 61:48:2A:A2:83:0D:0A:B2:AD:5A:F1:0B:72:50:DA:90:33:DD:CE:F0 + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 8f:8a:a1:06:1f:29:b7:0a:4a:d5:c5:fd:81:ab:25:ea:c0:7d: + e2:fc:6a:96:a0:79:93:67:ee:05:0e:25:12:25:e4:5a:f6:aa: + 1a:f1:12:f3:05:8d:87:5e:f1:5a:5c:cb:8d:23:73:65:1d:15: + b9:de:22:6b:d6:49:67:c9:a3:c6:d7:62:4e:5c:b5:f9:03:83: + 40:81:dc:87:9c:3c:3f:1c:0d:51:9f:94:65:0a:84:48:67:e4: + a2:f8:a6:4a:f0:e7:cd:cd:bd:94:e3:09:d2:5d:2d:16:1b:05: + 15:0b:cb:44:b4:3e:61:42:22:c4:2a:5c:4e:c5:1d:a3:e2:e0: + 52:b2:eb:f4:8b:2b:dc:38:39:5d:fb:88:a1:56:65:5f:2b:4f: + 26:ff:06:78:10:12:eb:8c:5d:32:e3:c6:45:af:25:9b:a0:ff: + 8e:ef:47:09:a3:e9:8b:37:92:92:69:76:7e:34:3b:92:05:67: + 4e:b0:25:ed:bc:5e:5f:8f:b4:d6:ca:40:ff:e4:e2:31:23:0c: + 85:25:ae:0c:55:01:ec:e5:47:5e:df:5b:bc:14:33:e3:c6:f5: + 18:b6:d9:f7:dd:b3:b4:a1:31:d3:5a:5c:5d:7d:3e:bf:0a:e4: + e4:e8:b4:59:7d:3b:b4:8c:a3:1b:b5:20:a3:b9:3e:84:6f:8c: + 21:00:c3:39 +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIBATANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xMjA0MTIxMTM5MDhaFw00MjA0MTEx +MTM5MDhaMH8xCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEXMBUG +A1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MSswKQYD +VQQDDCJDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyV+bYo8LsGSCrL7J4mLjS9KfHorVYRor +XTj0t865mrhDuEOXd6tPfwxwRgv8f23GbeqAXgHSt2Yeh94NbdBBl6ilrwxjT/d8 +wlLMoDGpu4ldmR5Gb1VzuXZp7NfB/CHWxgfnT70i3uSoWy3blTQZl9YoSyFMyrsd +eaYXf1r5Z+ZceEU9EG2wF1kmEcVX439Ogrr2LE7IN03/hRWER+DtO3x/vK/pAQWn +DG/D6Y2jzr6m4808tVgsnsIDHGAiNzn/QQLBKaRlUf8zNKpCFfmVePwt9dqKhXyC +nfs3LGulqN98VQuALjywY+HNOEiJ6BQGC4K8/dQHaBsPPtkV3ZQRGwIDAQABo4Gg +MIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUHAwMGCisGAQQBgjcK +AwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRl +MB0GA1UdDgQWBBRhSCqigw0Ksq1a8QtyUNqQM93O8DAfBgNVHSMEGDAWgBStkZkL +wiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEAj4qhBh8ptwpK1cX9 +gasl6sB94vxqlqB5k2fuBQ4lEiXkWvaqGvES8wWNh17xWlzLjSNzZR0Vud4ia9ZJ +Z8mjxtdiTly1+QODQIHch5w8PxwNUZ+UZQqESGfkovimSvDnzc29lOMJ0l0tFhsF +FQvLRLQ+YUIixCpcTsUdo+LgUrLr9Isr3Dg5XfuIoVZlXytPJv8GeBAS64xdMuPG +Ra8lm6D/ju9HCaPpizeSkml2fjQ7kgVnTrAl7bxeX4+01spA/+TiMSMMhSWuDFUB +7OVHXt9bvBQz48b1GLbZ992ztKEx01pcXX0+vwrk5Oi0WX07tIyjG7Ugo7k+hG+M +IQDDOQ== +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 2 (0x2) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Sep 26 21:52:11 2017 GMT + Not After : Sep 25 21:52:11 2047 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2017) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ef:9f:fa:9f:19:3a:9d:38:23:91:cc:c4:f9:42: + e0:f8:54:12:82:dc:97:2c:d6:5b:c1:35:eb:ff:4a: + 74:06:b5:9d:32:aa:7b:f3:fc:31:5a:34:3e:a1:a4: + 44:db:7b:6d:16:af:35:76:e0:9b:99:ad:21:11:c6: + 12:4b:ae:24:8f:bb:d3:b2:00:fe:c5:1d:9b:3a:1a: + 4a:6c:ca:fa:16:37:85:22:f9:ff:22:fc:40:e0:58: + 35:c1:39:27:b4:c6:42:1a:96:d8:a5:c5:95:2e:f7: + c5:1e:21:6e:36:84:f7:a9:a1:e1:f1:03:08:96:65: + 71:f8:eb:83:cf:82:f7:9a:44:58:72:00:14:39:29: + 4b:e9:78:2f:65:20:b3:80:76:3b:ba:0d:2d:46:f6: + 37:05:e7:05:fe:bd:6c:c7:a2:65:b5:06:6e:07:24: + 99:a1:c1:cf:e1:0e:5e:49:41:71:17:a8:50:e7:38: + 99:e5:6e:b6:db:9f:63:db:56:f4:9c:7d:89:f6:d2: + 03:6c:99:83:e0:99:23:39:36:bd:cb:b5:26:7c:7d: + b0:c6:fe:82:7c:52:ed:f9:2c:8f:79:71:3d:a9:2f: + b5:aa:7e:77:a0:fd:69:f9:97:10:a8:b2:c6:7d:88: + 9e:a2:19:bd:31:b8:02:2d:34:4d:9d:98:60:82:ad: + 04:ff + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 24:2A:DE:75:AC:4A:15:E5:0D:50:C8:4B:0D:45:FF:3E:AE:70:7A:03 + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 00:b2:b7:57:b5:2b:5d:16:d3:04:88:6a:d7:77:d5:0d:89:f1: + d2:6e:11:d1:8e:f5:62:05:c4:6a:57:df:eb:d2:86:68:f2:fd: + a7:37:11:3c:f4:ce:5d:fe:32:5f:31:a2:6b:3a:da:28:c2:88: + fa:7f:70:b5:25:99:ea:27:9a:56:6a:9d:b2:0f:14:99:e2:b7: + c6:39:1e:8e:a7:76:31:d9:ed:c5:05:8d:48:ae:1b:68:18:14: + 51:a1:7d:f6:c7:df:cb:9d:eb:a4:3b:0b:ff:c2:07:c5:42:bc: + 0d:b2:11:fa:37:17:2b:1c:b5:84:48:2d:f9:31:4a:57:49:8e: + 61:a6:82:11:06:4c:34:ea:9c:2a:47:4d:eb:e0:26:af:da:d2: + c2:08:a0:37:35:7b:73:71:de:0b:c4:ba:c8:34:de:20:04:03: + 6f:46:26:0d:b9:91:02:5b:71:76:cc:45:e4:08:d0:a6:dd:a4: + 50:d3:d9:04:91:2b:d9:5c:34:88:fc:c2:37:fd:c6:d4:3e:57: + f7:6b:ba:7b:d7:02:7a:84:0c:c8:c1:19:cc:bc:fa:52:d5:7f: + b3:35:c4:53:5d:70:0a:f6:44:60:8d:a9:11:7a:1b:7d:ae:7b: + 20:5a:4c:8d:44:f6:c1:a9:61:cb:dc:cb:90:37:d5:28:24:73: + 87:d0:e0:d8 +-----BEGIN CERTIFICATE----- +MIIEKDCCAxCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xNzA5MjYyMTUyMTFaFw00NzA5MjUy +MTUyMTFaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV +BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG +A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxNykw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDvn/qfGTqdOCORzMT5QuD4 +VBKC3Jcs1lvBNev/SnQGtZ0yqnvz/DFaND6hpETbe20WrzV24JuZrSERxhJLriSP +u9OyAP7FHZs6GkpsyvoWN4Ui+f8i/EDgWDXBOSe0xkIaltilxZUu98UeIW42hPep +oeHxAwiWZXH464PPgveaRFhyABQ5KUvpeC9lILOAdju6DS1G9jcF5wX+vWzHomW1 +Bm4HJJmhwc/hDl5JQXEXqFDnOJnlbrbbn2PbVvScfYn20gNsmYPgmSM5Nr3LtSZ8 +fbDG/oJ8Uu35LI95cT2pL7Wqfneg/Wn5lxCossZ9iJ6iGb0xuAItNE2dmGCCrQT/ +AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK +KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy +dGlmaWNhdGUwHQYDVR0OBBYEFCQq3nWsShXlDVDISw1F/z6ucHoDMB8GA1UdIwQY +MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQAAsrdX +tStdFtMEiGrXd9UNifHSbhHRjvViBcRqV9/r0oZo8v2nNxE89M5d/jJfMaJrOtoo +woj6f3C1JZnqJ5pWap2yDxSZ4rfGOR6Op3Yx2e3FBY1IrhtoGBRRoX32x9/Lneuk +Owv/wgfFQrwNshH6NxcrHLWESC35MUpXSY5hpoIRBkw06pwqR03r4Cav2tLCCKA3 +NXtzcd4LxLrINN4gBANvRiYNuZECW3F2zEXkCNCm3aRQ09kEkSvZXDSI/MI3/cbU +Plf3a7p71wJ6hAzIwRnMvPpS1X+zNcRTXXAK9kRgjakReht9rnsgWkyNRPbBqWHL +3MuQN9UoJHOH0ODY +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 3 (0x3) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Oct 26 18:31:14 2018 GMT + Not After : Oct 24 18:31:14 2048 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (ESM 2018) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:bf:6a:e5:6d:55:7a:ec:7a:11:37:45:9c:4c:8f: + 6b:2d:56:d3:74:2b:32:ac:84:2d:ba:cb:cc:ec:8d: + 92:22:69:48:a5:d4:f6:75:11:66:2f:cb:b2:fd:9e: + 56:ab:e6:f1:52:8e:75:3e:50:bd:25:b3:50:fc:ef: + 3d:76:f3:3f:7f:03:f6:e2:a1:25:69:5c:14:98:54: + bd:11:bf:e9:a5:ac:46:91:4b:1d:de:b7:18:2b:c8: + 22:83:15:a7:4a:00:8d:9d:e4:c0:da:f7:41:02:fd: + 9f:5f:79:93:56:cc:86:e1:b5:e0:39:0e:3c:a2:5b: + fe:c0:56:f0:92:50:5a:2b:67:67:93:56:d7:7a:75: + 99:6a:25:b4:63:a8:5f:69:7e:3a:49:58:2a:a7:80: + f6:5a:b4:be:b2:be:a8:8c:45:41:c9:f2:fc:76:a8: + 65:ef:99:29:0d:c9:9c:54:6b:0a:f0:4a:0e:61:0d: + ed:99:32:af:12:e2:12:7b:9f:7b:ec:05:c4:e0:b6: + d5:c3:71:28:ae:dd:0b:ba:97:ad:68:0b:76:e9:bf: + e7:01:7e:64:54:39:23:85:36:c8:9d:dd:27:a1:ff: + df:46:36:14:7e:cb:cc:a1:cd:49:0b:6d:c2:0c:45: + 99:56:58:7c:87:0d:59:9a:dc:4a:39:3b:1d:d9:15: + 2e:b5 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 36:51:88:C1:D3:74:D6:B0:7C:3C:8F:24:0F:8E:F7:22:43:3D:6A:8B + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 4c:0f:cd:77:60:b4:6f:53:87:f3:3c:4f:e6:81:5f:a7:1c:cc: + 60:29:b6:34:6c:4d:08:9b:e2:d2:bd:f6:17:1a:62:79:b8:17: + bc:a2:60:59:fd:03:51:c3:b7:6b:de:73:b3:48:95:f5:0b:aa: + b6:3c:b4:34:dc:1d:0b:c4:97:62:87:e7:48:d5:8f:c9:ea:e8: + 91:8f:2a:40:cd:b7:b3:ee:b2:98:9e:fb:37:31:29:e6:8e:2f: + 0a:39:99:1e:c6:aa:b8:05:62:85:d3:a8:3e:60:38:98:0f:f0: + fe:c7:ab:01:a5:6a:a5:7f:70:a6:26:94:76:23:2f:08:89:74: + 97:c2:2a:ca:22:3e:7a:ea:22:22:08:07:f4:bb:f6:bc:69:9c: + 4e:44:33:e2:8e:70:17:b0:9b:cb:33:94:66:6d:ff:9a:7d:e9: + 50:b2:e8:90:14:e4:2b:91:cb:a0:c5:2e:0e:cf:19:ef:44:ef: + 84:f0:bd:57:9e:26:c2:63:3d:df:fc:a1:84:de:5c:d7:5f:3b: + fb:94:61:f0:93:89:1f:cf:c3:b2:d1:90:97:35:7d:b9:8a:ad: + e6:05:f0:e8:3b:a1:7c:af:2b:c4:af:18:33:2e:5e:87:db:9d: + 80:b5:04:fd:00:d0:60:ab:ff:85:77:0f:cb:47:22:c9:b2:85: + a8:48:16:e2 +-----BEGIN CERTIFICATE----- +MIIELDCCAxSgAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xODEwMjYxODMxMTRaFw00ODEwMjQx +ODMxMTRaMIGKMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV +BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDE2MDQG +A1UEAwwtQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoRVNNIDIw +MTgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2rlbVV67HoRN0Wc +TI9rLVbTdCsyrIQtusvM7I2SImlIpdT2dRFmL8uy/Z5Wq+bxUo51PlC9JbNQ/O89 +dvM/fwP24qElaVwUmFS9Eb/ppaxGkUsd3rcYK8gigxWnSgCNneTA2vdBAv2fX3mT +VsyG4bXgOQ48olv+wFbwklBaK2dnk1bXenWZaiW0Y6hfaX46SVgqp4D2WrS+sr6o +jEVByfL8dqhl75kpDcmcVGsK8EoOYQ3tmTKvEuISe5977AXE4LbVw3Eort0Lupet +aAt26b/nAX5kVDkjhTbInd0nof/fRjYUfsvMoc1JC23CDEWZVlh8hw1ZmtxKOTsd +2RUutQIDAQABo4GgMIGdMAwGA1UdEwEB/wQCMAAwHwYDVR0lBBgwFgYIKwYBBQUH +AwMGCisGAQQBgjcKAwYwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJhdGVk +IENlcnRpZmljYXRlMB0GA1UdDgQWBBQ2UYjB03TWsHw8jyQPjvciQz1qizAfBgNV +HSMEGDAWgBStkZkLwiqx9RcEjCO2ZVomjjRaYzANBgkqhkiG9w0BAQsFAAOCAQEA +TA/Nd2C0b1OH8zxP5oFfpxzMYCm2NGxNCJvi0r32FxpiebgXvKJgWf0DUcO3a95z +s0iV9Quqtjy0NNwdC8SXYofnSNWPyerokY8qQM23s+6ymJ77NzEp5o4vCjmZHsaq +uAVihdOoPmA4mA/w/serAaVqpX9wpiaUdiMvCIl0l8IqyiI+euoiIggH9Lv2vGmc +TkQz4o5wF7CbyzOUZm3/mn3pULLokBTkK5HLoMUuDs8Z70TvhPC9V54mwmM93/yh +hN5c1187+5Rh8JOJH8/DstGQlzV9uYqt5gXw6DuhfK8rxK8YMy5eh9udgLUE/QDQ +YKv/hXcPy0ciybKFqEgW4g== +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 4 (0x4) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Sep 18 16:10:17 2019 GMT + Not After : Sep 16 16:10:17 2049 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2019) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:e6:47:d8:75:e5:87:59:26:87:83:7d:5b:7a:b8: + 58:3d:7c:ef:36:f8:a0:7a:b7:14:56:58:7d:01:f1: + 1c:3b:8c:e6:5b:03:77:7d:a0:ed:47:0a:45:e6:75: + 5c:de:95:38:0d:38:fa:41:79:89:56:31:87:e7:a3: + 9a:36:70:b6:cf:24:2f:99:26:89:08:39:0e:14:c3: + 35:be:02:8b:52:e1:8e:7b:0c:a6:9d:78:ff:01:60: + d7:f5:c3:d5:f0:5e:dc:e4:23:09:59:72:93:d3:b5: + 22:af:7c:cd:e0:84:0f:af:11:2d:bc:c6:72:42:af: + ea:67:63:c4:10:41:78:02:80:62:0d:43:74:b4:1c: + ed:50:d7:94:f1:b0:bb:f9:57:80:e4:69:0f:83:4b: + a2:e6:2c:4a:9a:e1:7d:7c:62:19:29:27:97:1f:4c: + f1:85:f0:39:f5:31:9f:3a:39:0e:d4:4d:07:3a:40: + 55:4b:a6:6c:9d:04:89:51:2d:7c:b0:ef:40:b5:42: + 29:16:cc:65:73:38:62:21:f6:e3:2c:17:50:9d:74: + 34:4e:df:7c:4a:33:a4:bb:40:cf:d5:e5:ed:05:07: + cd:4c:f9:af:7f:a6:5c:b9:f7:c5:16:45:4e:44:40: + d7:85:32:de:ac:e5:75:ad:9b:d7:c0:26:33:1f:77: + a5:37 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + C0:74:6F:D6:C5:DA:3A:E8:27:86:46:51:AD:66:AE:47:FE:24:B3:E8 + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + aa:12:6c:d1:9d:6a:da:f0:ec:7c:17:46:3b:57:b8:d6:76:5f: + 24:e6:06:a2:0a:55:1f:2f:d3:5e:8f:de:cf:02:f2:ff:e0:dd: + d3:c7:bd:75:59:aa:cd:34:f3:28:80:73:cc:28:69:e7:a2:70: + 88:a2:c7:dc:66:f0:92:0e:ff:64:bf:30:04:54:01:1b:96:ad: + 15:c5:61:fd:32:61:d7:5e:b5:ba:91:fd:31:fc:6b:15:df:ee: + 22:d9:e4:1f:f3:cc:8b:0c:9f:f5:e8:f7:e2:62:3f:40:52:c9: + f0:f1:1c:63:fc:6c:90:e1:5b:74:03:b9:df:d1:3e:a8:ec:db: + 2b:6e:83:6f:9f:7f:ba:b4:79:fc:3d:e7:12:2f:4a:e7:17:8c: + 2b:77:a5:90:74:3c:bd:cf:75:83:0d:1a:95:d5:56:ef:07:9b: + a6:b3:31:e3:8c:97:ce:68:11:b5:7b:25:03:72:1c:ea:67:e9: + 7c:3e:73:c7:7c:3e:fc:f5:ae:8a:b2:07:0d:15:6a:66:09:d7: + 23:b9:5d:80:7a:26:d6:b6:22:30:aa:84:af:c0:42:e9:75:c3: + 59:ab:a3:84:87:6b:0c:b7:ab:4e:92:69:ae:2c:82:6f:ab:01: + 24:ab:ff:78:6d:59:85:c2:3b:23:c0:bd:0d:d8:6e:3a:29:82: + e1:c4:5f:db +-----BEGIN CERTIFICATE----- +MIIEKDCCAxCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAeFw0xOTA5MTgxNjEwMTdaFw00OTA5MTYx +NjEwMTdaMIGGMQswCQYDVQQGEwJHQjEUMBIGA1UECAwLSXNsZSBvZiBNYW4xFzAV +BgNVBAoMDkNhbm9uaWNhbCBMdGQuMRQwEgYDVQQLDAtTZWN1cmUgQm9vdDEyMDAG +A1UEAwwpQ2Fub25pY2FsIEx0ZC4gU2VjdXJlIEJvb3QgU2lnbmluZyAoMjAxOSkw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDmR9h15YdZJoeDfVt6uFg9 +fO82+KB6txRWWH0B8Rw7jOZbA3d9oO1HCkXmdVzelTgNOPpBeYlWMYfno5o2cLbP +JC+ZJokIOQ4UwzW+AotS4Y57DKadeP8BYNf1w9XwXtzkIwlZcpPTtSKvfM3ghA+v +ES28xnJCr+pnY8QQQXgCgGINQ3S0HO1Q15TxsLv5V4DkaQ+DS6LmLEqa4X18Yhkp +J5cfTPGF8Dn1MZ86OQ7UTQc6QFVLpmydBIlRLXyw70C1QikWzGVzOGIh9uMsF1Cd +dDRO33xKM6S7QM/V5e0FB81M+a9/ply598UWRU5EQNeFMt6s5XWtm9fAJjMfd6U3 +AgMBAAGjgaAwgZ0wDAYDVR0TAQH/BAIwADAfBgNVHSUEGDAWBggrBgEFBQcDAwYK +KwYBBAGCNwoDBjAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2Vy +dGlmaWNhdGUwHQYDVR0OBBYEFMB0b9bF2jroJ4ZGUa1mrkf+JLPoMB8GA1UdIwQY +MBaAFK2RmQvCKrH1FwSMI7ZlWiaONFpjMA0GCSqGSIb3DQEBCwUAA4IBAQCqEmzR +nWra8Ox8F0Y7V7jWdl8k5gaiClUfL9Nej97PAvL/4N3Tx711WarNNPMogHPMKGnn +onCIosfcZvCSDv9kvzAEVAEblq0VxWH9MmHXXrW6kf0x/GsV3+4i2eQf88yLDJ/1 +6PfiYj9AUsnw8Rxj/GyQ4Vt0A7nf0T6o7NsrboNvn3+6tHn8PecSL0rnF4wrd6WQ +dDy9z3WDDRqV1VbvB5umszHjjJfOaBG1eyUDchzqZ+l8PnPHfD789a6KsgcNFWpm +CdcjuV2AeibWtiIwqoSvwELpdcNZq6OEh2sMt6tOkmmuLIJvqwEkq/94bVmFwjsj +wL0N2G46KYLhxF/b +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 6 (0x6) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Sep 23 19:29:32 2021 GMT + Not After : Sep 22 19:29:32 2051 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v1) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:aa:b8:34:5b:b6:ae:44:bf:41:e1:78:11:b9:7a: + c8:88:b3:b0:26:50:10:9c:98:d1:f3:98:9f:23:50: + 64:f6:39:dd:50:3a:23:44:53:65:fc:f3:9f:f5:a5: + 8b:ae:8b:df:47:9f:e9:d5:a0:92:19:f1:21:ea:cc: + 59:3a:74:df:45:71:bc:de:64:15:a5:f6:db:ca:71: + fa:19:d4:44:0d:12:ec:47:3a:43:e2:f2:dd:8b:fe: + 0d:7b:dc:4d:db:53:06:22:61:e5:8b:35:49:b6:33: + c4:0a:69:5f:5b:81:09:84:6b:42:33:18:09:9d:a0: + 35:f7:9c:1e:de:6e:de:90:69:1a:e8:32:e4:49:ad: + c3:31:e9:f8:4a:a2:28:1d:db:0d:29:b6:48:0a:44: + 93:86:41:62:8f:73:97:60:10:8a:74:46:66:55:fe: + a0:95:35:9e:ef:9f:af:11:fa:5b:a3:7c:c2:35:64: + 11:67:28:1e:14:0a:7d:68:61:9c:cd:c7:46:39:30: + 31:79:94:56:b3:45:16:9a:b5:77:66:fe:41:43:0f: + 00:48:6e:99:dd:0c:d4:47:2c:86:8c:50:04:61:20: + dd:aa:8e:73:4f:21:b4:ee:09:4d:d3:40:01:d0:f2: + a7:5b:7d:05:3d:c1:e7:65:26:aa:8c:9a:58:5a:7c: + 6d:6f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + A8:D5:4B:BB:38:25:CF:B9:4F:A1:3C:9F:8A:59:4A:19:5C:10:7B:8D + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 24:25:25:7e:01:a5:c8:3d:54:8c:1b:05:73:d1:06:d8:db:d4: + 3a:71:d5:19:9d:97:1c:85:3c:ca:38:5a:0c:25:25:39:1a:67: + bc:6c:9d:98:6c:f3:7d:5f:b7:40:f9:73:a0:f5:7b:40:a8:66: + a5:f1:53:b1:78:80:24:3f:19:50:2f:02:09:ec:a1:8a:e6:0d: + df:c4:ae:24:9e:69:0d:5c:dc:44:4c:38:3a:53:4e:4b:a1:4b: + 92:9f:43:a4:9d:1e:76:33:18:1b:bf:62:e5:f5:bc:93:3c:4e: + 21:d5:5b:20:69:11:28:c1:c5:93:b5:8e:96:1d:1b:ca:72:79: + 24:de:67:2a:50:9d:ce:8b:41:dd:3e:82:dd:a5:04:75:54:fb: + 35:70:98:87:b4:f3:ea:41:23:23:80:0e:99:d7:03:16:ee:7e: + 11:e2:c8:29:ab:73:c5:6d:5c:a8:2f:32:03:9f:8e:66:d6:cb: + 54:84:55:75:ab:9a:dd:95:fd:05:1e:11:85:37:1e:63:d2:f4: + 7f:34:64:32:a1:63:91:91:50:39:14:1a:ea:54:78:e6:0d:04: + 23:c7:83:51:c5:25:27:07:6c:f8:65:b7:da:95:89:76:83:cc: + f3:7e:06:74:d3:6c:ef:e9:17:de:29:1e:ab:5c:d7:ec:df:f1: + 98:b8:e9:66 +-----BEGIN CERTIFICATE----- +MIIELTCCAxWgAwIBAgIBBjANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5MzJaGA8yMDUxMDky +MjE5MjkzMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX +MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw +MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx +IHYxKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKq4NFu2rkS/QeF4 +Ebl6yIizsCZQEJyY0fOYnyNQZPY53VA6I0RTZfzzn/Wli66L30ef6dWgkhnxIerM +WTp030VxvN5kFaX228px+hnURA0S7Ec6Q+Ly3Yv+DXvcTdtTBiJh5Ys1SbYzxApp +X1uBCYRrQjMYCZ2gNfecHt5u3pBpGugy5EmtwzHp+EqiKB3bDSm2SApEk4ZBYo9z +l2AQinRGZlX+oJU1nu+frxH6W6N8wjVkEWcoHhQKfWhhnM3HRjkwMXmUVrNFFpq1 +d2b+QUMPAEhumd0M1EcshoxQBGEg3aqOc08htO4JTdNAAdDyp1t9BT3B52Umqoya +WFp8bW8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF +BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl +ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUqNVLuzglz7lPoTyfillKGVwQe40wHwYD +VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB +ACQlJX4Bpcg9VIwbBXPRBtjb1Dpx1RmdlxyFPMo4WgwlJTkaZ7xsnZhs831ft0D5 +c6D1e0CoZqXxU7F4gCQ/GVAvAgnsoYrmDd/EriSeaQ1c3ERMODpTTkuhS5KfQ6Sd +HnYzGBu/YuX1vJM8TiHVWyBpESjBxZO1jpYdG8pyeSTeZypQnc6LQd0+gt2lBHVU ++zVwmIe08+pBIyOADpnXAxbufhHiyCmrc8VtXKgvMgOfjmbWy1SEVXWrmt2V/QUe +EYU3HmPS9H80ZDKhY5GRUDkUGupUeOYNBCPHg1HFJScHbPhlt9qViXaDzPN+BnTT +bO/pF94pHqtc1+zf8Zi46WY= +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 7 (0x7) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Sep 23 19:29:42 2021 GMT + Not After : Sep 22 19:29:42 2051 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v2) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:ba:06:8b:ee:58:b7:8b:49:7b:53:7a:d1:df:02: + e3:f2:d8:b0:8c:03:5c:f4:2d:0b:d8:18:3b:23:fa: + 68:b0:e8:e9:9d:dc:a2:eb:5e:d3:06:a9:28:d4:9f: + 14:b6:1e:1c:1d:ef:69:0e:7f:44:f2:cc:4a:f1:b1: + d0:71:30:6a:50:1e:b0:d3:f8:a4:19:d0:4a:f1:e3: + eb:7a:e5:57:4c:a1:fb:d1:87:b9:48:e0:55:37:52: + f9:de:99:2e:95:85:36:ce:d3:1d:67:2f:14:cb:7f: + 05:82:75:21:b6:aa:a5:14:ac:da:4a:f4:fe:fa:5c: + 33:49:3d:6f:de:fd:9d:75:ba:e2:c4:02:38:b5:69: + f5:ff:a8:67:4b:3a:e0:34:f6:3b:07:03:a5:7e:59: + 6f:3a:d2:28:a4:2f:25:ac:d8:a9:1f:59:52:5d:24: + 36:58:51:b5:f0:12:a8:d3:78:56:57:b1:e0:a9:df: + 14:05:65:7c:b5:a5:00:f0:88:39:14:44:18:85:2d: + 0c:28:69:7b:b9:b4:1c:47:6f:43:66:4c:22:ad:f7: + f6:19:75:e1:14:2c:0d:33:3f:c1:3f:fc:73:56:b2: + 68:05:b5:92:03:9b:65:6b:81:80:92:35:03:9b:66: + 68:58:c5:66:11:b6:8c:7f:05:09:9a:45:a6:0e:5e: + 5f:bf + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 4C:F0:46:89:2D:6F:D3:C9:A5:B0:3F:98:D8:45:F9:08:51:DC:6A:8C + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 93:9d:49:7d:9f:3e:3e:27:79:97:d9:c2:fc:0b:f7:30:b7:f4: + 78:b2:c9:e4:5e:42:d3:27:26:70:cf:88:96:d1:f2:ea:a0:75: + 7e:3c:f6:b7:d2:e7:95:30:e3:a6:67:a7:ee:b9:53:8f:fd:b2: + cb:db:e1:98:32:be:98:79:09:46:c6:63:6a:57:87:4d:b2:26: + 46:f6:34:5e:18:75:ca:82:80:8e:33:c2:1d:c7:76:d7:14:57: + ef:2e:0e:9e:58:5c:81:8e:ed:53:2c:07:46:0a:8a:fc:2f:f5: + b2:c8:58:f5:fa:fa:bb:f9:7d:47:13:39:f0:f2:1c:15:9c:75: + 90:40:bd:08:04:b3:6a:de:c2:cd:34:21:7e:ba:31:48:bc:a1: + 23:bc:ee:93:b2:62:96:27:30:86:c2:d4:f7:b4:e6:3c:71:47: + 37:84:ff:3d:0c:1e:ec:f3:0e:da:6b:dc:64:7a:b8:c0:7e:45: + 13:09:bf:02:b3:b7:5b:6d:09:2d:6a:4e:0b:93:94:29:4c:a6: + c3:c7:05:fa:69:08:04:53:3c:4c:64:c0:7e:89:00:91:1b:a6: + c2:d7:ea:c4:db:86:38:fe:66:03:85:7b:fc:39:24:99:4c:2a: + 3e:10:8b:91:c3:6e:20:9d:0c:ee:51:70:b5:98:58:f3:5c:ac: + 16:98:7b:ce +-----BEGIN CERTIFICATE----- +MIIELTCCAxWgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTI5NDJaGA8yMDUxMDky +MjE5Mjk0MlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX +MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw +MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx +IHYyKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALoGi+5Yt4tJe1N6 +0d8C4/LYsIwDXPQtC9gYOyP6aLDo6Z3coute0wapKNSfFLYeHB3vaQ5/RPLMSvGx +0HEwalAesNP4pBnQSvHj63rlV0yh+9GHuUjgVTdS+d6ZLpWFNs7THWcvFMt/BYJ1 +IbaqpRSs2kr0/vpcM0k9b979nXW64sQCOLVp9f+oZ0s64DT2OwcDpX5ZbzrSKKQv +JazYqR9ZUl0kNlhRtfASqNN4Vlex4KnfFAVlfLWlAPCIORREGIUtDChpe7m0HEdv +Q2ZMIq339hl14RQsDTM/wT/8c1ayaAW1kgObZWuBgJI1A5tmaFjFZhG2jH8FCZpF +pg5eX78CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF +BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl +ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUTPBGiS1v08mlsD+Y2EX5CFHcaowwHwYD +VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB +AJOdSX2fPj4neZfZwvwL9zC39HiyyeReQtMnJnDPiJbR8uqgdX489rfS55Uw46Zn +p+65U4/9ssvb4Zgyvph5CUbGY2pXh02yJkb2NF4YdcqCgI4zwh3HdtcUV+8uDp5Y +XIGO7VMsB0YKivwv9bLIWPX6+rv5fUcTOfDyHBWcdZBAvQgEs2rews00IX66MUi8 +oSO87pOyYpYnMIbC1Pe05jxxRzeE/z0MHuzzDtpr3GR6uMB+RRMJvwKzt1ttCS1q +TguTlClMpsPHBfppCARTPExkwH6JAJEbpsLX6sTbhjj+ZgOFe/w5JJlMKj4Qi5HD +biCdDO5RcLWYWPNcrBaYe84= +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 8 (0x8) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Sep 23 19:30:02 2021 GMT + Not After : Sep 22 19:30:02 2051 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:d6:29:96:87:ae:07:42:45:bb:65:09:b2:9b:de: + 5d:8e:78:61:10:d5:6d:ae:ae:26:08:6a:06:ec:4a: + dd:2b:e7:1a:a9:ad:78:e3:fc:cf:8f:d1:47:bd:1e: + 33:d8:7a:e3:66:9b:e9:73:c1:5f:42:e2:fe:bc:c3: + 41:f7:cd:d7:85:d7:42:c9:ea:31:e5:47:b1:93:5b: + 43:2b:07:51:b8:75:08:ad:0f:e7:0d:81:38:5a:21: + df:b1:43:5b:db:37:c5:ac:aa:14:3a:33:19:6a:26: + e0:05:fe:cd:41:31:af:5d:a8:ab:31:77:44:fc:da: + 00:e2:7a:44:33:c3:a7:ed:13:54:9f:19:5d:c9:98: + a2:3b:af:4d:0d:87:29:9c:90:9e:42:9e:9a:06:6a: + 70:27:c5:aa:f7:a2:f2:88:e0:b9:66:9a:72:a0:f6: + 61:7e:30:8f:14:9f:44:0d:dd:54:ae:47:c8:82:ba: + d2:b2:db:6f:24:c1:f4:0a:81:07:90:47:49:5f:57: + d6:3f:bf:2a:73:98:f2:f6:24:1a:74:03:d7:35:f0: + 42:d8:14:c5:94:27:5d:3c:49:0c:b0:f0:7a:61:1b: + d7:5a:e3:a3:40:57:e9:a4:07:ee:02:a3:32:27:94: + bb:f3:36:c5:5f:ef:d3:07:04:3a:80:4c:9c:0a:b7: + 88:9f + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + 10:04:37:BB:6D:E6:E4:69:B5:81:E6:1C:D6:6B:CE:3E:F4:ED:53:AF + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 3b:37:d6:a8:8d:cd:d2:df:13:35:ac:8c:92:d6:b0:ac:d1:38: + a8:00:97:47:59:b8:4a:84:8c:80:a5:1d:c7:29:bf:00:66:e5: + 10:40:26:2e:31:f5:e1:13:c0:1b:29:f3:0b:7e:2d:71:d8:db: + e1:32:8f:79:8e:e3:97:0c:40:a9:a0:12:c1:fc:c2:50:88:72: + 44:c5:bc:8b:45:6e:28:fd:d2:37:d6:db:17:cf:4e:61:33:08: + 5a:5d:08:94:73:44:e2:76:00:44:1b:b8:00:a1:86:00:64:8a: + f1:42:32:3c:28:11:67:7c:8b:aa:06:34:74:58:e8:b3:3a:36: + 8d:f6:04:5d:37:f5:66:52:c9:48:b0:a7:6f:34:09:dd:60:2a: + 86:b9:14:f1:09:f6:06:16:56:e0:51:b1:e8:75:7f:fa:37:dc: + e0:98:a7:69:ae:7b:1a:73:89:0d:06:67:cc:01:ef:80:31:45: + 9e:bb:03:2a:eb:89:70:d6:19:b2:c7:ce:bc:81:df:da:c8:6f: + a9:4b:2d:d7:a7:e1:af:c6:e8:fb:f0:61:c9:cd:d2:91:cd:8b: + c2:6c:ef:e0:b6:7f:f1:c4:81:f9:bb:76:9c:26:e3:fa:a1:a0: + cd:5e:05:de:ee:f9:1b:5b:50:0a:8b:0f:47:e3:90:32:ac:2a: + e7:65:02:80 +-----BEGIN CERTIFICATE----- +MIIELTCCAxWgAwIBAgIBCDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMTA5MjMxOTMwMDJaGA8yMDUxMDky +MjE5MzAwMlowgYkxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX +MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MTUw +MwYDVQQDDCxDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nICgyMDIx +IHYzKTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANYploeuB0JFu2UJ +spveXY54YRDVba6uJghqBuxK3SvnGqmteOP8z4/RR70eM9h642ab6XPBX0Li/rzD +QffN14XXQsnqMeVHsZNbQysHUbh1CK0P5w2BOFoh37FDW9s3xayqFDozGWom4AX+ +zUExr12oqzF3RPzaAOJ6RDPDp+0TVJ8ZXcmYojuvTQ2HKZyQnkKemgZqcCfFqvei +8ojguWaacqD2YX4wjxSfRA3dVK5HyIK60rLbbyTB9AqBB5BHSV9X1j+/KnOY8vYk +GnQD1zXwQtgUxZQnXTxJDLDwemEb11rjo0BX6aQH7gKjMieUu/M2xV/v0wcEOoBM +nAq3iJ8CAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQYMBYGCCsGAQUF +BwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVyYXRl +ZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUEAQ3u23m5Gm1geYc1mvOPvTtU68wHwYD +VR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcNAQELBQADggEB +ADs31qiNzdLfEzWsjJLWsKzROKgAl0dZuEqEjIClHccpvwBm5RBAJi4x9eETwBsp +8wt+LXHY2+Eyj3mO45cMQKmgEsH8wlCIckTFvItFbij90jfW2xfPTmEzCFpdCJRz +ROJ2AEQbuAChhgBkivFCMjwoEWd8i6oGNHRY6LM6No32BF039WZSyUiwp280Cd1g +Koa5FPEJ9gYWVuBRseh1f/o33OCYp2muexpziQ0GZ8wB74AxRZ67AyrriXDWGbLH +zryB39rIb6lLLden4a/G6PvwYcnN0pHNi8Js7+C2f/HEgfm7dpwm4/qhoM1eBd7u ++RtbUAqLD0fjkDKsKudlAoA= +-----END CERTIFICATE----- +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 3 (0x3) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C = GB, ST = Isle of Man, L = Douglas, O = Canonical Ltd., CN = Canonical Ltd. Master Certificate Authority + Validity + Not Before: Mar 4 10:27:14 2020 GMT + Not After : Mar 3 10:27:14 2050 GMT + Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (Ubuntu Core 2019) + Subject Public Key Info: + Public Key Algorithm: rsaEncryption + Public-Key: (2048 bit) + Modulus: + 00:b9:10:47:2e:75:5d:f3:10:23:bb:a0:75:d2:fa: + 02:2d:ff:22:df:c1:e6:cd:38:7c:36:0f:ae:74:15: + 6e:a5:34:52:2b:c3:a4:3a:60:d7:06:ee:1d:99:93: + ff:66:91:a3:18:52:2c:8c:58:e6:b4:2f:4b:c5:fb: + 83:e6:f3:19:bd:1b:ca:23:ec:97:1f:d8:f1:9a:f1: + 04:da:da:10:04:53:4b:ec:1d:b6:26:47:7c:bb:8f: + a7:0a:6e:2e:e8:91:e6:c4:bb:64:34:78:3c:fa:09: + 15:1c:8f:9e:eb:04:99:36:22:c6:8d:07:15:0f:b9: + 69:08:fa:ff:4b:45:bd:ba:2b:cd:01:0e:e7:01:23: + c9:e5:7a:39:3b:91:b0:45:3c:d5:77:ba:ca:f9:29: + 3d:11:3f:1c:6b:5b:8e:6c:4b:3f:c9:29:05:cb:59: + d6:b1:c1:c0:2d:56:88:70:27:fa:73:05:5c:c2:11: + d4:27:11:f7:0b:c2:d5:68:d3:1a:cd:ed:d0:e4:10: + ff:34:cb:b7:45:70:34:2c:23:53:b6:9c:30:70:b4: + 5c:d1:e2:64:18:82:8f:62:b1:5e:aa:0b:d4:89:f2: + 1c:53:c4:32:7d:ef:53:ee:9b:6e:02:ab:78:bd:25: + 67:8b:39:36:d8:84:3b:06:99:02:d6:75:73:4e:f2: + f6:b9 + Exponent: 65537 (0x10001) + X509v3 extensions: + X509v3 Basic Constraints: critical + CA:FALSE + X509v3 Extended Key Usage: + Code Signing, 1.3.6.1.4.1.311.10.3.6 + Netscape Comment: + OpenSSL Generated Certificate + X509v3 Subject Key Identifier: + C1:D5:7B:8F:6B:74:3F:23:EE:41:F4:F7:EE:29:2F:06:EE:CA:DF:B9 + X509v3 Authority Key Identifier: + AD:91:99:0B:C2:2A:B1:F5:17:04:8C:23:B6:65:5A:26:8E:34:5A:63 + Signature Algorithm: sha256WithRSAEncryption + Signature Value: + 2d:b5:11:a8:d2:a0:af:81:a0:18:22:18:2c:08:d0:f4:63:e8: + 8f:9a:f4:f5:20:dd:eb:22:77:19:9a:1a:09:3d:7f:aa:7d:c9: + 81:bc:26:98:65:94:46:30:4b:c2:51:7c:f7:21:41:63:87:31: + fc:a4:c9:41:28:c7:2e:2a:2e:d8:a8:75:7a:72:77:3b:1b:9f: + 72:15:0d:0c:96:8d:8b:51:f3:ce:37:b6:ca:9f:ca:59:40:4a: + fc:73:7a:94:12:99:aa:c2:8d:52:ce:91:19:2e:b4:da:ff:e5: + 2c:67:74:d9:58:47:38:2f:61:88:c5:cf:a7:48:e1:08:ba:bc: + ec:d5:3a:47:d9:8c:dc:c3:bc:cb:98:2b:79:7a:02:46:ef:85: + 19:2f:03:4b:05:84:eb:56:98:5f:6d:cf:a5:8b:a2:b6:e5:50: + 51:7c:33:44:bd:7a:94:2e:0d:90:39:39:3e:62:60:ae:3a:e2: + f5:17:fa:f1:94:06:1d:ae:a3:f8:19:20:7f:4b:4c:07:c4:e6: + 2d:0d:e5:94:84:51:6d:6f:0f:c4:c6:79:1d:f0:e8:0e:23:9e: + fd:f9:46:2c:b9:ec:97:38:56:7e:b8:13:f6:d2:e1:8e:a5:93: + 02:7b:6e:dd:33:9a:bf:10:a8:1b:3d:fa:c4:f2:15:f0:27:73: + 26:a6:94:d1 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBAzANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMCR0Ix +FDASBgNVBAgMC0lzbGUgb2YgTWFuMRAwDgYDVQQHDAdEb3VnbGFzMRcwFQYDVQQK +DA5DYW5vbmljYWwgTHRkLjE0MDIGA1UEAwwrQ2Fub25pY2FsIEx0ZC4gTWFzdGVy +IENlcnRpZmljYXRlIEF1dGhvcml0eTAgFw0yMDAzMDQxMDI3MTRaGA8yMDUwMDMw +MzEwMjcxNFowgZIxCzAJBgNVBAYTAkdCMRQwEgYDVQQIDAtJc2xlIG9mIE1hbjEX +MBUGA1UECgwOQ2Fub25pY2FsIEx0ZC4xFDASBgNVBAsMC1NlY3VyZSBCb290MT4w +PAYDVQQDDDVDYW5vbmljYWwgTHRkLiBTZWN1cmUgQm9vdCBTaWduaW5nIChVYnVu +dHUgQ29yZSAyMDE5KTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALkQ +Ry51XfMQI7ugddL6Ai3/It/B5s04fDYPrnQVbqU0UivDpDpg1wbuHZmT/2aRoxhS +LIxY5rQvS8X7g+bzGb0byiPslx/Y8ZrxBNraEARTS+wdtiZHfLuPpwpuLuiR5sS7 +ZDR4PPoJFRyPnusEmTYixo0HFQ+5aQj6/0tFvborzQEO5wEjyeV6OTuRsEU81Xe6 +yvkpPRE/HGtbjmxLP8kpBctZ1rHBwC1WiHAn+nMFXMIR1CcR9wvC1WjTGs3t0OQQ +/zTLt0VwNCwjU7acMHC0XNHiZBiCj2KxXqoL1InyHFPEMn3vU+6bbgKreL0lZ4s5 +NtiEOwaZAtZ1c07y9rkCAwEAAaOBoDCBnTAMBgNVHRMBAf8EAjAAMB8GA1UdJQQY +MBYGCCsGAQUFBwMDBgorBgEEAYI3CgMGMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NM +IEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUwdV7j2t0PyPuQfT37ikv +Bu7K37kwHwYDVR0jBBgwFoAUrZGZC8IqsfUXBIwjtmVaJo40WmMwDQYJKoZIhvcN +AQELBQADggEBAC21EajSoK+BoBgiGCwI0PRj6I+a9PUg3esidxmaGgk9f6p9yYG8 +JphllEYwS8JRfPchQWOHMfykyUEoxy4qLtiodXpydzsbn3IVDQyWjYtR8843tsqf +yllASvxzepQSmarCjVLOkRkutNr/5SxndNlYRzgvYYjFz6dI4Qi6vOzVOkfZjNzD +vMuYK3l6AkbvhRkvA0sFhOtWmF9tz6WLorblUFF8M0S9epQuDZA5OT5iYK464vUX ++vGUBh2uo/gZIH9LTAfE5i0N5ZSEUW1vD8TGeR3w6A4jnv35Riy57Jc4Vn64E/bS +4Y6lkwJ7bt0zmr8QqBs9+sTyFfAncyamlNE= +-----END CERTIFICATE----- --- linux-5.19.0.orig/debian/certs/canonical-livepatch-all.pem +++ linux-5.19.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-5.19.0.orig/debian/certs/ubuntu-drivers-all.pem +++ linux-5.19.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-5.19.0.orig/debian/changelog +++ linux-5.19.0/debian/changelog @@ -0,0 +1,24203 @@ +linux (5.19.0-41.42) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-41.42 -proposed tracker (LP: #2016651) + + * CVE-2023-1829 + - net/sched: Retire tcindex classifier + - [Config]: Make sure CONFIG_NET_CLS_TCINDEX is not available + + * CVE-2023-0386 + - ovl: fail on invalid uid/gid mapping at copy up + + -- Thadeu Lima de Souza Cascardo Mon, 17 Apr 2023 11:56:45 -0300 + +linux (5.19.0-40.41) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-40.41 -proposed tracker (LP: #2012668) + + * CVE-2023-0468 + - io_uring: fix tw losing poll events + - io_uring: make poll refs more robust + + * Regression in ext4 during online resize (LP: #2003816) + - ext4: fix bad checksum after online resize + - ext4: fix corruption when online resizing a 1K bigalloc fs + - ext4: fix corrupt backup group descriptors after online resize + + -- Luke Nowakowski-Krijger Thu, 23 Mar 2023 13:36:46 -0700 + +linux (5.19.0-39.40) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-39.40 -proposed tracker (LP: #2011876) + + * CVE-2023-26545 + - net: mpls: fix stale pointer if allocation fails during device rename + + * CVE-2023-1032 + - net: avoid double iput when sock_alloc_file fails + + * CVE-2022-41218 // CVE-2022-41218 is assigned to those bugs above. + - media: dvb-core: Fix UAF due to refcount races at releasing + + * CVE-2023-1281 + - net/sched: tcindex: update imperfect hash filters respecting rcu + + * linux: CONFIG_SERIAL_8250_MID=y (LP: #2009283) + - [Config] enable CONFIG_SERIAL_8250_MID=y + + * apply the latest TDX attestation driver from Intel (LP: #2009437) + - Revert "UBUNTU: SAUCE: selftests: tdx: Test GetReport TDX attestation + feature" + - Revert "UBUNTU: SAUCE: x86/tdx: Add TDX Guest attestation interface driver" + - x86/tdx: Add a wrapper to get TDREPORT0 from the TDX Module + - virt: Add TDX guest driver + - selftests/tdx: Test TDX attestation GetReport support + - [Config] enable TDX attestation driver as module by default + + * cpufreq: intel_pstate: Update Balance performance EPP for Sapphire Rapids + (LP: #2008519) + - cpufreq: intel_pstate: Adjust balance_performance EPP for Sapphire Rapids + + * Fail to output sound to external monitor which connects via docking station + (LP: #2009024) + - [Config] Enable CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM + + * Fix mediatek wifi driver crash when loading wrong SAR table (LP: #2009118) + - wifi: mt76: mt7921: fix error code of return in mt7921_acpi_read + + * CVE-2022-47929 + - net: sched: disallow noqueue for qdisc classes + + * Intel graphic driver is not probing[8086:468b] (LP: #1990242) + - drm/i915: Add new ADL-S pci id + + * Some QHD panels fail to refresh when PSR2 enabled (LP: #2009014) + - drm/i915/psr: Use full update In case of area calculation fails + - drm/i915: Ensure damage clip area is within pipe area + - SAUCE: drm/i915/psr: Use calculated io and fast wake lines + + * overlayfs mounts as R/O over idmapped mount (LP: #2009065) + - SAUCE: overlayfs: handle idmapped mounts in ovl_do_(set|remove)xattr + + * Kinetic update: upstream stable patchset 2023-02-28 (LP: #2008832) + - usb: musb: remove extra check in musb_gadget_vbus_draw + - arm64: dts: qcom: ipq6018-cp01-c1: use BLSPI1 pins + - arm64: dts: qcom: sm8250-sony-xperia-edo: fix touchscreen bias-disable + - arm64: dts: qcom: msm8996: Add MSM8996 Pro support + - arm64: dts: qcom: msm8996: fix supported-hw in cpufreq OPP tables + - arm64: dts: qcom: msm8996: fix GPU OPP table + - ARM: dts: qcom: apq8064: fix coresight compatible + - arm64: dts: qcom: sdm630: fix UART1 pin bias + - arm64: dts: qcom: sdm845-cheza: fix AP suspend pin bias + - arm64: dts: qcom: msm8916: Drop MSS fallback compatible + - objtool, kcsan: Add volatile read/write instrumentation to whitelist + - ARM: dts: stm32: Drop stm32mp15xc.dtsi from Avenger96 + - ARM: dts: stm32: Fix AV96 WLAN regulator gpio property + - drivers: soc: ti: knav_qmss_queue: Mark knav_acc_firmwares as static + - arm64: dts: qcom: pm660: Use unique ADC5_VCOIN address in node name + - arm64: dts: qcom: sm8250: correct LPASS pin pull down + - soc: qcom: llcc: make irq truly optional + - arm64: dts: qcom: sm8150: fix UFS PHY registers + - arm64: dts: qcom: sm8250: fix UFS PHY registers + - arm64: dts: qcom: sm8350: fix UFS PHY registers + - arm64: dts: qcom: sm8250: drop bogus DP PHY clock + - soc: qcom: apr: Add check for idr_alloc and of_property_read_string_index + - arm64: dts: qcom: sm6125: fix SDHCI CQE reg names + - arm: dts: spear600: Fix clcd interrupt + - soc: ti: knav_qmss_queue: Fix PM disable depth imbalance in knav_queue_probe + - soc: ti: smartreflex: Fix PM disable depth imbalance in omap_sr_probe + - arm64: mm: kfence: only handle translation faults + - perf: arm_dsu: Fix hotplug callback leak in dsu_pmu_init() + - perf/arm_dmc620: Fix hotplug callback leak in dmc620_pmu_init() + - perf/smmuv3: Fix hotplug callback leak in arm_smmu_pmu_init() + - arm64: dts: ti: k3-am65-main: Drop dma-coherent in crypto node + - arm64: dts: ti: k3-j721e-main: Drop dma-coherent in crypto node + - ARM: dts: nuvoton: Remove bogus unit addresses from fixed-partition nodes + - arm64: dts: mt6779: Fix devicetree build warnings + - arm64: dts: mt2712e: Fix unit_address_vs_reg warning for oscillators + - arm64: dts: mt2712e: Fix unit address for pinctrl node + - arm64: dts: mt2712-evb: Fix vproc fixed regulators unit names + - arm64: dts: mt2712-evb: Fix usb vbus regulators unit names + - arm64: dts: mediatek: pumpkin-common: Fix devicetree warnings + - arm64: dts: mediatek: mt6797: Fix 26M oscillator unit name + - ARM: dts: dove: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-370: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-xp: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-375: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-38x: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: armada-39x: Fix assigned-addresses for every PCIe Root Port + - ARM: dts: turris-omnia: Add ethernet aliases + - ARM: dts: turris-omnia: Add switch port 6 node + - arm64: dts: armada-3720-turris-mox: Add missing interrupt for RTC + - seccomp: Move copy_seccomp() to no failure path. + - pstore/ram: Fix error return code in ramoops_probe() + - ARM: mmp: fix timer_read delay + - pstore: Avoid kcore oops by vmap()ing with VM_IOREMAP + - tpm/tpm_ftpm_tee: Fix error handling in ftpm_mod_init() + - tpm/tpm_crb: Fix error message in __crb_relinquish_locality() + - ovl: remove privs in ovl_copyfile() + - ovl: remove privs in ovl_fallocate() + - sched/uclamp: Fix relationship between uclamp and migration margin + - sched/uclamp: Make task_fits_capacity() use util_fits_cpu() + - sched/uclamp: Make select_idle_capacity() use util_fits_cpu() + - sched/core: Introduce sched_asym_cpucap_active() + - sched/uclamp: Make asym_fits_capacity() use util_fits_cpu() + - cpuidle: dt: Return the correct numbers of parsed idle states + - alpha: fix TIF_NOTIFY_SIGNAL handling + - alpha: fix syscall entry in !AUDUT_SYSCALL case + - x86/sgx: Reduce delay and interference of enclave release + - PM: hibernate: Fix mistake in kerneldoc comment + - fs: don't audit the capability check in simple_xattr_list() + - cpufreq: qcom-hw: Fix memory leak in qcom_cpufreq_hw_read_lut() + - selftests/ftrace: event_triggers: wait longer for test_event_enable + - perf: Fix possible memleak in pmu_dev_alloc() + - lib/debugobjects: fix stat count and optimize debug_objects_mem_init + - platform/x86: huawei-wmi: fix return value calculation + - timerqueue: Use rb_entry_safe() in timerqueue_getnext() + - proc: fixup uptime selftest + - lib/fonts: fix undefined behavior in bit shift for get_default_font + - ocfs2: fix memory leak in ocfs2_stack_glue_init() + - MIPS: vpe-mt: fix possible memory leak while module exiting + - MIPS: vpe-cmp: fix possible memory leak while module exiting + - selftests/efivarfs: Add checking of the test return value + - PNP: fix name memory leak in pnp_alloc_dev() + - perf/x86/intel/uncore: Fix reference count leak in sad_cfg_iio_topology() + - perf/x86/intel/uncore: Fix reference count leak in hswep_has_limit_sbox() + - perf/x86/intel/uncore: Fix reference count leak in snr_uncore_mmio_map() + - perf/x86/intel/uncore: Fix reference count leak in __uncore_imc_init_box() + - platform/chrome: cros_usbpd_notify: Fix error handling in + cros_usbpd_notify_init() + - thermal: core: fix some possible name leaks in error paths + - irqchip: gic-pm: Use pm_runtime_resume_and_get() in gic_probe() + - irqchip/wpcm450: Fix memory leak in wpcm450_aic_of_init() + - EDAC/i10nm: fix refcount leak in pci_get_dev_wrapper() + - NFSD: Finish converting the NFSv2 GETACL result encoder + - nfsd: don't call nfsd_file_put from client states seqfile display + - genirq/irqdesc: Don't try to remove non-existing sysfs files + - cpufreq: amd_freq_sensitivity: Add missing pci_dev_put() + - libfs: add DEFINE_SIMPLE_ATTRIBUTE_SIGNED for signed value + - lib/notifier-error-inject: fix error when writing -errno to debugfs file + - debugfs: fix error when writing negative value to atomic_t debugfs file + - rapidio: fix possible name leaks when rio_add_device() fails + - rapidio: rio: fix possible name leak in rio_register_mport() + - clocksource/drivers/sh_cmt: Access registers according to spec + - mips: ralink: mt7621: define MT7621_SYSC_BASE with __iomem + - mips: ralink: mt7621: soc queries and tests as functions + - mips: ralink: mt7621: do not use kzalloc too early + - futex: Resend potentially swallowed owner death notification + - cpu/hotplug: Make target_store() a nop when target == state + - cpu/hotplug: Do not bail-out in DYING/STARTING sections + - clocksource/drivers/timer-ti-dm: Fix missing clk_disable_unprepare in + dmtimer_systimer_init_clock() + - ACPICA: Fix use-after-free in acpi_ut_copy_ipackage_to_ipackage() + - uprobes/x86: Allow to probe a NOP instruction with 0x66 prefix + - x86/xen: Fix memory leak in xen_smp_intr_init{_pv}() + - x86/xen: Fix memory leak in xen_init_lock_cpu() + - xen/privcmd: Fix a possible warning in privcmd_ioctl_mmap_resource() + - PM: runtime: Do not call __rpm_callback() from rpm_idle() + - platform/chrome: cros_ec_typec: Cleanup switch handle return paths + - platform/chrome: cros_ec_typec: zero out stale pointers + - platform/x86: mxm-wmi: fix memleak in mxm_wmi_call_mx[ds|mx]() + - platform/x86: intel_scu_ipc: fix possible name leak in + __intel_scu_ipc_register() + - MIPS: BCM63xx: Add check for NULL for clk in clk_enable + - MIPS: OCTEON: warn only once if deprecated link status is being used + - lockd: set other missing fields when unlocking files + - fs: sysv: Fix sysv_nblocks() returns wrong value + - rapidio: fix possible UAF when kfifo_alloc() fails + - eventfd: change int to __u64 in eventfd_signal() ifndef CONFIG_EVENTFD + - relay: fix type mismatch when allocating memory in relay_create_buf() + - hfs: Fix OOB Write in hfs_asc2mac + - rapidio: devices: fix missing put_device in mport_cdev_open + - platform/mellanox: mlxbf-pmc: Fix event typo + - wifi: ath9k: hif_usb: fix memory leak of urbs in + ath9k_hif_usb_dealloc_tx_urbs() + - wifi: ath9k: hif_usb: Fix use-after-free in ath9k_hif_usb_reg_in_cb() + - wifi: rtl8xxxu: Fix reading the vendor of combo chips + - drm/bridge: adv7533: remove dynamic lane switching from adv7533 bridge + - libbpf: Fix use-after-free in btf_dump_name_dups + - libbpf: Fix null-pointer dereference in find_prog_by_sec_insn() + - ata: libata: fix NCQ autosense logic + - ipmi: kcs: Poll OBF briefly to reduce OBE latency + - drm/amdgpu/powerplay/psm: Fix memory leak in power state init + - media: v4l2-ctrls: Fix off-by-one error in integer menu control check + - media: coda: jpeg: Add check for kmalloc + - media: adv748x: afe: Select input port when initializing AFE + - media: i2c: ad5820: Fix error path + - venus: pm_helpers: Fix error check in vcodec_domains_get() + - soreuseport: Fix socket selection for SO_INCOMING_CPU. + - media: exynos4-is: don't rely on the v4l2_async_subdev internals + - libbpf: Btf dedup identical struct test needs check for nested + structs/arrays + - can: kvaser_usb: kvaser_usb_leaf: Get capabilities from device + - can: kvaser_usb: kvaser_usb_leaf: Rename {leaf,usbcan}_cmd_error_event to + {leaf,usbcan}_cmd_can_error_event + - can: kvaser_usb: kvaser_usb_leaf: Handle CMD_ERROR_EVENT + - can: kvaser_usb_leaf: Set Warning state even without bus errors + - can: kvaser_usb_leaf: Fix improved state not being reported + - can: kvaser_usb_leaf: Fix wrong CAN state after stopping + - can: kvaser_usb_leaf: Fix bogus restart events + - can: kvaser_usb: Add struct kvaser_usb_busparams + - can: kvaser_usb: Compare requested bittiming parameters with actual + parameters in do_set_{,data}_bittiming + - drm/rockchip: lvds: fix PM usage counter unbalance in poweron + - clk: renesas: r9a06g032: Repair grave increment error + - spi: Update reference to struct spi_controller + - drm/panel/panel-sitronix-st7701: Remove panel on DSI attach failure + - drm/msm/hdmi: drop unused GPIO support + - drm/msm/hdmi: use devres helper for runtime PM management + - bpf: Fix slot type check in check_stack_write_var_off + - media: vivid: fix compose size exceed boundary + - media: platform: exynos4-is: fix return value check in fimc_md_probe() + - bpf: propagate precision in ALU/ALU64 operations + - bpf: propagate precision across all frames, not just the last one + - clk: qcom: gcc-sm8250: Use retention mode for USB GDSCs + - mtd: Fix device name leak when register device failed in add_mtd_device() + - Input: joystick - fix Kconfig warning for JOYSTICK_ADC + - wifi: rsi: Fix handling of 802.3 EAPOL frames sent via control port + - media: camss: Clean up received buffers on failed start of streaming + - net, proc: Provide PROC_FS=n fallback for proc_create_net_single_write() + - rxrpc: Fix ack.bufferSize to be 0 when generating an ack + - bfq: fix waker_bfqq inconsistency crash + - drm/radeon: Add the missed acpi_put_table() to fix memory leak + - drm/mediatek: Modify dpi power on/off sequence. + - ASoC: pxa: fix null-pointer dereference in filter() + - nvmet: only allocate a single slab for bvecs + - regulator: core: fix unbalanced of node refcount in regulator_dev_lookup() + - amdgpu/pm: prevent array underflow in vega20_odn_edit_dpm_table() + - nvme: return err on nvme_init_non_mdts_limits fail + - regulator: qcom-rpmh: Fix PMR735a S3 regulator spec + - drm/fourcc: Fix vsub/hsub for Q410 and Q401 + - integrity: Fix memory leakage in keyring allocation error path + - ima: Fix misuse of dereference of pointer in template_desc_init_fields() + - block: clear ->slave_dir when dropping the main slave_dir reference + - wifi: ath10k: Fix return value in ath10k_pci_init() + - drm/msm/a6xx: Fix speed-bin detection vs probe-defer + - mtd: lpddr2_nvm: Fix possible null-ptr-deref + - Input: elants_i2c - properly handle the reset GPIO when power is off + - media: vidtv: Fix use-after-free in vidtv_bridge_dvb_init() + - media: solo6x10: fix possible memory leak in solo_sysfs_init() + - media: platform: exynos4-is: Fix error handling in fimc_md_init() + - media: videobuf-dma-contig: use dma_mmap_coherent + - mtd: spi-nor: hide jedec_id sysfs attribute if not present + - mtd: spi-nor: Fix the number of bytes for the dummy cycles + - bpf: Move skb->len == 0 checks into __bpf_redirect + - HID: hid-sensor-custom: set fixed size for custom attributes + - pinctrl: k210: call of_node_put() + - ALSA: pcm: fix undefined behavior in bit shift for SNDRV_PCM_RATE_KNOT + - ALSA: seq: fix undefined behavior in bit shift for + SNDRV_SEQ_FILTER_USE_EVENT + - regulator: core: use kfree_const() to free space conditionally + - clk: rockchip: Fix memory leak in rockchip_clk_register_pll() + - drm/amdgpu: fix pci device refcount leak + - bonding: fix link recovery in mode 2 when updelay is nonzero + - mtd: maps: pxa2xx-flash: fix memory leak in probe + - drbd: remove call to memset before free device/resource/connection + - drbd: destroy workqueue when drbd device was freed + - ASoC: qcom: Add checks for devm_kcalloc + - media: vimc: Fix wrong function called when vimc_init() fails + - media: imon: fix a race condition in send_packet() + - clk: imx8mn: rename vpu_pll to m7_alt_pll + - clk: imx: replace osc_hdmi with dummy + - clk: imx8mn: fix imx8mn_sai2_sels clocks list + - clk: imx8mn: fix imx8mn_enet_phy_sels clocks list + - pinctrl: pinconf-generic: add missing of_node_put() + - media: dvb-core: Fix ignored return value in dvb_register_frontend() + - media: dvb-usb: az6027: fix null-ptr-deref in az6027_i2c_xfer() + - media: s5p-mfc: Add variant data for MFC v7 hardware for Exynos 3250 SoC + - drm/tegra: Add missing clk_disable_unprepare() in tegra_dc_probe() + - ASoC: dt-bindings: wcd9335: fix reset line polarity in example + - ASoC: mediatek: mtk-btcvsd: Add checks for write and read of mtk_btcvsd_snd + - NFSv4.2: Clear FATTR4_WORD2_SECURITY_LABEL when done decoding + - NFSv4.2: Fix a memory stomp in decode_attr_security_label + - NFSv4.2: Fix initialisation of struct nfs4_label + - NFSv4: Fix a credential leak in _nfs4_discover_trunking() + - NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn + - NFS: Fix an Oops in nfs_d_automount() + - ALSA: asihpi: fix missing pci_disable_device() + - wifi: iwlwifi: mvm: fix double free on tx path. + - ASoC: mediatek: mt8173: Enable IRQ when pdata is ready + - drm/amd/pm/smu11: BACO is supported when it's in BACO state + - drm/radeon: Fix PCI device refcount leak in radeon_atrm_get_bios() + - drm/amdgpu: Fix PCI device refcount leak in amdgpu_atrm_get_bios() + - drm/amdkfd: Fix memory leakage + - ASoC: pcm512x: Fix PM disable depth imbalance in pcm512x_probe + - netfilter: conntrack: set icmpv6 redirects as RELATED + - Input: wistron_btns - disable on UML + - bpf, sockmap: Fix repeated calls to sock_put() when msg has more_data + - bpf, sockmap: Fix missing BPF_F_INGRESS flag when using apply_bytes + - bpf, sockmap: Fix data loss caused by using apply_bytes on ingress redirect + - bonding: uninitialized variable in bond_miimon_inspect() + - spi: spidev: mask SPI_CS_HIGH in SPI_IOC_RD_MODE + - wifi: cfg80211: Fix not unregister reg_pdev when load_builtin_regdb_keys() + fails + - wifi: mt76: mt7921: fix reporting of TX AGGR histogram + - wifi: mt76: fix coverity overrun-call in mt76_get_txpower() + - regulator: core: fix module refcount leak in set_supply() + - clk: qcom: lpass-sc7180: Fix pm_runtime usage + - clk: qcom: clk-krait: fix wrong div2 functions + - hsr: Add a rcu-read lock to hsr_forward_skb(). + - hsr: Avoid double remove of a node. + - hsr: Disable netpoll. + - hsr: Synchronize sending frames to have always incremented outgoing seq nr. + - hsr: Synchronize sequence number updates. + - configfs: fix possible memory leak in configfs_create_dir() + - regulator: core: fix resource leak in regulator_register() + - hwmon: (jc42) Convert register access and caching to regmap/regcache + - hwmon: (jc42) Restore the min/max/critical temperatures on resume + - bpf, sockmap: fix race in sock_map_free() + - ALSA: pcm: Set missing stop_operating flag at undoing trigger start + - media: saa7164: fix missing pci_disable_device() + - ALSA: mts64: fix possible null-ptr-defer in snd_mts64_interrupt + - xprtrdma: Fix regbuf data not freed in rpcrdma_req_create() + - SUNRPC: Fix missing release socket in rpc_sockname() + - NFSv4.x: Fail client initialisation if state manager thread can't run + - riscv, bpf: Emit fixed-length instructions for BPF_PSEUDO_FUNC + - mmc: alcor: fix return value check of mmc_add_host() + - mmc: moxart: fix return value check of mmc_add_host() + - mmc: mxcmmc: fix return value check of mmc_add_host() + - mmc: pxamci: fix return value check of mmc_add_host() + - mmc: rtsx_pci: fix return value check of mmc_add_host() + - mmc: rtsx_usb_sdmmc: fix return value check of mmc_add_host() + - mmc: toshsd: fix return value check of mmc_add_host() + - mmc: vub300: fix return value check of mmc_add_host() + - mmc: wmt-sdmmc: fix return value check of mmc_add_host() + - mmc: atmel-mci: fix return value check of mmc_add_host() + - mmc: omap_hsmmc: fix return value check of mmc_add_host() + - mmc: meson-gx: fix return value check of mmc_add_host() + - mmc: via-sdmmc: fix return value check of mmc_add_host() + - mmc: wbsd: fix return value check of mmc_add_host() + - mmc: mmci: fix return value check of mmc_add_host() + - mmc: renesas_sdhi: alway populate SCC pointer + - memstick/ms_block: Add check for alloc_ordered_workqueue + - mmc: core: Normalize the error handling branch in sd_read_ext_regs() + - regulator: qcom-labibb: Fix missing of_node_put() in + qcom_labibb_regulator_probe() + - media: c8sectpfe: Add of_node_put() when breaking out of loop + - media: coda: Add check for dcoda_iram_alloc + - media: coda: Add check for kmalloc + - clk: samsung: Fix memory leak in _samsung_clk_register_pll() + - spi: spi-gpio: Don't set MOSI as an input if not 3WIRE mode + - wifi: rtl8xxxu: Add __packed to struct rtl8723bu_c2h + - wifi: rtl8xxxu: Fix the channel width reporting + - wifi: brcmfmac: Fix error return code in brcmf_sdio_download_firmware() + - blktrace: Fix output non-blktrace event when blk_classic option enabled + - bpf: Do not zero-extend kfunc return values + - clk: socfpga: Fix memory leak in socfpga_gate_init() + - net: vmw_vsock: vmci: Check memcpy_from_msg() + - net: defxx: Fix missing err handling in dfx_init() + - net: stmmac: selftests: fix potential memleak in stmmac_test_arpoffload() + - net: stmmac: fix possible memory leak in stmmac_dvr_probe() + - drivers: net: qlcnic: Fix potential memory leak in qlcnic_sriov_init() + - of: overlay: fix null pointer dereferencing in find_dup_cset_node_entry() + and find_dup_cset_prop() + - ethernet: s2io: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: farsync: Fix kmemleak when rmmods farsync + - net/tunnel: wait until all sk_user_data reader finish before releasing the + sock + - net: apple: mace: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: apple: bmac: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: emaclite: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: ethernet: dnet: don't call dev_kfree_skb() under spin_lock_irqsave() + - hamradio: don't call dev_kfree_skb() under spin_lock_irqsave() + - net: amd: lance: don't call dev_kfree_skb() under spin_lock_irqsave() + - af_unix: call proto_unregister() in the error path in af_unix_init() + - net: amd-xgbe: Fix logic around active and passive cables + - net: amd-xgbe: Check only the minimum speed for active/passive cables + - can: tcan4x5x: Remove invalid write in clear_interrupts + - can: m_can: Call the RAM init directly from m_can_chip_config + - can: tcan4x5x: Fix use of register error status mask + - net: lan9303: Fix read error execution path + - ntb_netdev: Use dev_kfree_skb_any() in interrupt context + - sctp: sysctl: make extra pointers netns aware + - Bluetooth: MGMT: Fix error report for ADD_EXT_ADV_PARAMS + - Bluetooth: btintel: Fix missing free skb in btintel_setup_combined() + - Bluetooth: btusb: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_qca: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_ll: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_h5: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_bcsp: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: hci_core: don't call kfree_skb() under spin_lock_irqsave() + - Bluetooth: RFCOMM: don't call kfree_skb() under spin_lock_irqsave() + - stmmac: fix potential division by 0 + - i40e: Fix the inability to attach XDP program on downed interface + - net: dsa: tag_8021q: avoid leaking ctx on dsa_tag_8021q_register() error + path + - crypto: hisilicon/qm - fix missing destroy qp_idr + - crypto: sun8i-ss - use dma_addr instead u32 + - crypto: nitrox - avoid double free on error path in nitrox_sriov_init() + - scsi: core: Fix a race between scsi_done() and scsi_timeout() + - apparmor: Use pointer to struct aa_label for lbs_cred + - PCI: dwc: Fix n_fts[] array overrun + - RDMA/core: Fix order of nldev_exit call + - PCI: pci-epf-test: Register notifier if only core_init_notifier is enabled + - f2fs: Fix the race condition of resize flag between resizefs + - crypto: rockchip - do not do custom power management + - crypto: rockchip - do not store mode globally + - crypto: rockchip - add fallback for cipher + - crypto: rockchip - add fallback for ahash + - crypto: rockchip - better handle cipher key + - crypto: rockchip - remove non-aligned handling + - crypto: rockchip - rework by using crypto_engine + - apparmor: Fix memleak in alloc_ns() + - f2fs: fix to invalidate dcc->f2fs_issue_discard in error path + - f2fs: fix normal discard process + - f2fs: fix to destroy sbi->post_read_wq in error path of f2fs_fill_super() + - RDMA/irdma: Report the correct link speed + - scsi: qla2xxx: Fix set-but-not-used variable warnings + - RDMA/siw: Fix immediate work request flush to completion queue + - IB/mad: Don't call to function that might sleep while in atomic context + - RDMA/restrack: Release MR restrack when delete + - RDMA/core: Make sure "ib_port" is valid when access sysfs node + - RDMA/nldev: Return "-EAGAIN" if the cm_id isn't from expected port + - RDMA/siw: Set defined status for work completion with undefined status + - scsi: scsi_debug: Fix a warning in resp_write_scat() + - crypto: ccree - Remove debugfs when platform_driver_register failed + - crypto: cryptd - Use request context instead of stack for sub-request + - crypto: hisilicon/qm - add missing pci_dev_put() in q_num_set() + - RDMA/hns: Repacing 'dseg_len' by macros in fill_ext_sge_inl_data() + - RDMA/hns: Fix ext_sge num error when post send + - PCI: Check for alloc failure in pci_request_irq() + - RDMA/hfi: Decrease PCI device reference count in error path + - crypto: ccree - Make cc_debugfs_global_fini() available for module init + function + - RDMA/hns: fix memory leak in hns_roce_alloc_mr() + - RDMA/rxe: Fix NULL-ptr-deref in rxe_qp_do_cleanup() when socket create + failed + - dt-bindings: imx6q-pcie: Fix clock names for imx6sx and imx8mq + - dt-bindings: visconti-pcie: Fix interrupts array max constraints + - scsi: hpsa: Fix possible memory leak in hpsa_init_one() + - crypto: tcrypt - Fix multibuffer skcipher speed test mem leak + - padata: Always leave BHs disabled when running ->parallel() + - padata: Fix list iterator in padata_do_serial() + - scsi: mpt3sas: Fix possible resource leaks in mpt3sas_transport_port_add() + - scsi: hpsa: Fix error handling in hpsa_add_sas_host() + - scsi: hpsa: Fix possible memory leak in hpsa_add_sas_device() + - scsi: efct: Fix possible memleak in efct_device_init() + - scsi: scsi_debug: Fix a warning in resp_verify() + - scsi: scsi_debug: Fix a warning in resp_report_zones() + - scsi: fcoe: Fix possible name leak when device_register() fails + - scsi: scsi_debug: Fix possible name leak in sdebug_add_host_helper() + - scsi: ipr: Fix WARNING in ipr_init() + - scsi: fcoe: Fix transport not deattached when fcoe_if_init() fails + - scsi: snic: Fix possible UAF in snic_tgt_create() + - RDMA/nldev: Add checks for nla_nest_start() in fill_stat_counter_qps() + - f2fs: avoid victim selection from previous victim section + - RDMA/nldev: Fix failure to send large messages + - crypto: amlogic - Remove kcalloc without check + - crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() + - riscv/mm: add arch hook arch_clear_hugepage_flags + - RDMA/hfi1: Fix error return code in parse_platform_config() + - RDMA/srp: Fix error return code in srp_parse_options() + - orangefs: Fix sysfs not cleanup when dev init failed + - RDMA/hns: Fix AH attr queried by query_qp + - RDMA/hns: Fix PBL page MTR find + - RDMA/hns: Fix page size cap from firmware + - RDMA/hns: Fix error code of CMD + - crypto: img-hash - Fix variable dereferenced before check 'hdev->req' + - hwrng: amd - Fix PCI device refcount leak + - hwrng: geode - Fix PCI device refcount leak + - IB/IPoIB: Fix queue count inconsistency for PKEY child interfaces + - RISC-V: Align the shadow stack + - drivers: dio: fix possible memory leak in dio_init() + - serial: tegra: Read DMA status before terminating + - serial: 8250_bcm7271: Fix error handling in brcmuart_init() + - class: fix possible memory leak in __class_register() + - vfio: platform: Do not pass return buffer to ACPI _RST method + - uio: uio_dmem_genirq: Fix missing unlock in irq configuration + - uio: uio_dmem_genirq: Fix deadlock between irq config and handling + - usb: fotg210-udc: Fix ages old endianness issues + - staging: vme_user: Fix possible UAF in tsi148_dma_list_add + - usb: typec: Check for ops->exit instead of ops->enter in altmode_exit + - usb: typec: tcpci: fix of node refcount leak in tcpci_register_port() + - usb: typec: tipd: Cleanup resources if devm_tps6598_psy_register fails + - usb: typec: tipd: Fix spurious fwnode_handle_put in error path + - extcon: usbc-tusb320: Factor out extcon into dedicated functions + - extcon: usbc-tusb320: Add USB TYPE-C support + - extcon: usbc-tusb320: Update state on probe even if no IRQ pending + - serial: amba-pl011: avoid SBSA UART accessing DMACR register + - serial: pl011: Do not clear RX FIFO & RX interrupt in unthrottle. + - serial: stm32: move dma_request_chan() before clk_prepare_enable() + - serial: pch: Fix PCI device refcount leak in pch_request_dma() + - tty: serial: clean up stop-tx part in altera_uart_tx_chars() + - tty: serial: altera_uart_{r,t}x_chars() need only uart_port + - serial: altera_uart: fix locking in polling mode + - serial: sunsab: Fix error handling in sunsab_init() + - test_firmware: fix memory leak in test_firmware_init() + - misc: ocxl: fix possible name leak in ocxl_file_register_afu() + - ocxl: fix pci device refcount leak when calling get_function_0() + - misc: tifm: fix possible memory leak in tifm_7xx1_switch_media() + - misc: sgi-gru: fix use-after-free error in gru_set_context_option, gru_fault + and gru_handle_user_call_os + - firmware: raspberrypi: fix possible memory leak in rpi_firmware_probe() + - cxl: fix possible null-ptr-deref in cxl_guest_init_afu|adapter() + - cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter() + - iio: temperature: ltc2983: make bulk write buffer DMA-safe + - iio: adis: add '__adis_enable_irq()' implementation + - counter: stm32-lptimer-cnt: fix the check on arr and cmp registers update + - coresight: trbe: remove cpuhp instance node before remove cpuhp state + - usb: roles: fix of node refcount leak in usb_role_switch_is_parent() + - usb: gadget: f_hid: fix f_hidg lifetime vs cdev + - usb: gadget: f_hid: fix refcount leak on error path + - drivers: mcb: fix resource leak in mcb_probe() + - mcb: mcb-parse: fix error handing in chameleon_parse_gdd() + - chardev: fix error handling in cdev_device_add() + - i2c: pxa-pci: fix missing pci_disable_device() on error in ce4100_i2c_probe + - staging: rtl8192u: Fix use after free in ieee80211_rx() + - staging: rtl8192e: Fix potential use-after-free in rtllib_rx_Monitor() + - vme: Fix error not catched in fake_init() + - gpiolib: cdev: fix NULL-pointer dereferences + - gpiolib: protect the GPIO device against being dropped while in use by user- + space + - i2c: mux: reg: check return value after calling platform_get_resource() + - i2c: ismt: Fix an out-of-bounds bug in ismt_access() + - usb: storage: Add check for kcalloc + - tracing/hist: Fix issue of losting command info in error_log + - ksmbd: Fix resource leak in ksmbd_session_rpc_open() + - samples: vfio-mdev: Fix missing pci_disable_device() in mdpy_fb_probe() + - thermal/drivers/imx8mm_thermal: Validate temperature range + - thermal/drivers/qcom/temp-alarm: Fix inaccurate warning for gen2 + - thermal/drivers/qcom/lmh: Fix irq handler return value + - fbdev: ssd1307fb: Drop optional dependency + - fbdev: pm2fb: fix missing pci_disable_device() + - fbdev: via: Fix error in via_core_init() + - fbdev: vermilion: decrease reference count in error path + - fbdev: ep93xx-fb: Add missing clk_disable_unprepare in ep93xxfb_probe() + - fbdev: geode: don't build on UML + - fbdev: uvesafb: don't build on UML + - fbdev: uvesafb: Fixes an error handling path in uvesafb_probe() + - HSI: omap_ssi_core: fix unbalanced pm_runtime_disable() + - HSI: omap_ssi_core: fix possible memory leak in ssi_probe() + - power: supply: fix residue sysfs file in error handle route of + __power_supply_register() + - perf trace: Return error if a system call doesn't exist + - perf trace: Use macro RAW_SYSCALL_ARGS_NUM to replace number + - perf trace: Handle failure when trace point folder is missed + - perf symbol: correction while adjusting symbol + - power: supply: z2_battery: Fix possible memleak in z2_batt_probe() + - HSI: omap_ssi_core: Fix error handling in ssi_init() + - power: supply: ab8500: Fix error handling in ab8500_charger_init() + - power: supply: fix null pointer dereferencing in + power_supply_get_battery_info + - perf stat: Refactor __run_perf_stat() common code + - perf stat: Do not delay the workload with --delay + - RDMA/siw: Fix pointer cast warning + - fs/ntfs3: Avoid UBSAN error on true_sectors_per_clst() + - fs/ntfs3: Harden against integer overflows + - iommu/sun50i: Fix reset release + - iommu/sun50i: Consider all fault sources for reset + - iommu/sun50i: Fix R/W permission check + - iommu/sun50i: Fix flush size + - iommu/rockchip: fix permission bits in page table entries v2 + - phy: usb: s2 WoL wakeup_count not incremented for USB->Eth devices + - include/uapi/linux/swab: Fix potentially missing __always_inline + - pwm: tegra: Improve required rate calculation + - fs/ntfs3: Fix slab-out-of-bounds read in ntfs_trim_fs + - dmaengine: idxd: Fix crc_val field for completion record + - rtc: rtc-cmos: Do not check ACPI_FADT_LOW_POWER_S0 + - rtc: cmos: Fix event handler registration ordering issue + - rtc: cmos: Fix wake alarm breakage + - rtc: cmos: fix build on non-ACPI platforms + - rtc: cmos: Call cmos_wake_setup() from cmos_do_probe() + - rtc: cmos: Call rtc_wake_setup() from cmos_do_probe() + - rtc: cmos: Eliminate forward declarations of some functions + - rtc: cmos: Rename ACPI-related functions + - rtc: cmos: Disable ACPI RTC event on removal + - rtc: snvs: Allow a time difference on clock register read + - rtc: pcf85063: Fix reading alarm + - iommu/amd: Fix pci device refcount leak in ppr_notifier() + - iommu/fsl_pamu: Fix resource leak in fsl_pamu_probe() + - macintosh: fix possible memory leak in macio_add_one_device() + - macintosh/macio-adb: check the return value of ioremap() + - powerpc/52xx: Fix a resource leak in an error handling path + - cxl: Fix refcount leak in cxl_calc_capp_routing + - powerpc/xmon: Fix -Wswitch-unreachable warning in bpt_cmds + - powerpc/xive: add missing iounmap() in error path in + xive_spapr_populate_irq_data() + - powerpc/perf: callchain validate kernel stack pointer bounds + - powerpc/83xx/mpc832x_rdb: call platform_device_put() in error case in + of_fsl_spi_probe() + - powerpc/hv-gpci: Fix hv_gpci event list + - selftests/powerpc: Fix resource leaks + - iommu/sun50i: Remove IOMMU_DOMAIN_IDENTITY + - pwm: sifive: Call pwm_sifive_update_clock() while mutex is held + - pwm: mtk-disp: Fix the parameters calculated by the enabled flag of disp_pwm + - pwm: mediatek: always use bus clock for PWM on MT7622 + - remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev() + - remoteproc: qcom: q6v5: Fix potential null-ptr-deref in + q6v5_wcss_init_mmio() + - remoteproc: qcom_q6v5_pas: disable wakeup on probe fail or remove + - remoteproc: qcom_q6v5_pas: detach power domains on remove + - remoteproc: qcom_q6v5_pas: Fix missing of_node_put() in + adsp_alloc_memory_region() + - remoteproc: qcom: q6v5: Fix missing clk_disable_unprepare() in + q6v5_wcss_qcs404_power_on() + - powerpc/pseries/eeh: use correct API for error log size + - mfd: bd957x: Fix Kconfig dependency on REGMAP_IRQ + - mfd: qcom_rpm: Fix an error handling path in qcom_rpm_probe() + - mfd: pm8008: Remove driver data structure pm8008_data + - mfd: pm8008: Fix return value check in pm8008_probe() + - netfilter: flowtable: really fix NAT IPv6 offload + - rtc: st-lpc: Add missing clk_disable_unprepare in st_rtc_probe() + - rtc: pic32: Move devm_rtc_allocate_device earlier in pic32_rtc_probe() + - rtc: pcf85063: fix pcf85063_clkout_control + - nfsd: under NFSv4.1, fix double svc_xprt_put on rpc_create failure + - net: macsec: fix net device access prior to holding a lock + - mISDN: hfcsusb: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - mISDN: hfcpci: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - mISDN: hfcmulti: don't call dev_kfree_skb/kfree_skb() under + spin_lock_irqsave() + - block, bfq: fix possible uaf for 'bfqq->bic' + - net: enetc: avoid buffer leaks on xdp_do_redirect() failure + - nfc: pn533: Clear nfc_target before being used + - unix: Fix race in SOCK_SEQPACKET's unix_dgram_sendmsg() + - r6040: Fix kmemleak in probe and remove + - igc: Enhance Qbv scheduling by using first flag bit + - igc: Use strict cycles for Qbv scheduling + - igc: Add checking for basetime less than zero + - igc: allow BaseTime 0 enrollment for Qbv + - igc: recalculate Qbv end_time by considering cycle time + - igc: Lift TAPRIO schedule restriction + - igc: Set Qbv start_time and end_time to end_time if not being configured in + GCL + - rtc: mxc_v2: Add missing clk_disable_unprepare() + - selftests: devlink: fix the fd redirect in dummy_reporter_test + - openvswitch: Fix flow lookup to use unmasked key + - soc: mediatek: pm-domains: Fix the power glitch issue + - arm64: dts: mt8183: Fix Mali GPU clock + - skbuff: Account for tail adjustment during pull operations + - mailbox: mpfs: read the system controller's status + - mailbox: arm_mhuv2: Fix return value check in mhuv2_probe() + - mailbox: zynq-ipi: fix error handling while device_register() fails + - net_sched: reject TCF_EM_SIMPLE case for complex ematch module + - rxrpc: Fix missing unlock in rxrpc_do_sendmsg() + - myri10ge: Fix an error handling path in myri10ge_probe() + - net: stream: purge sk_error_queue in sk_stream_kill_queues() + - HID: amd_sfh: Add missing check for dma_alloc_coherent + - rcu: Fix __this_cpu_read() lockdep warning in rcu_force_quiescent_state() + - arm64: make is_ttbrX_addr() noinstr-safe + - video: hyperv_fb: Avoid taking busy spinlock on panic path + - x86/hyperv: Remove unregister syscore call from Hyper-V cleanup + - binfmt_misc: fix shift-out-of-bounds in check_special_flags + - fs: jfs: fix shift-out-of-bounds in dbAllocAG + - udf: Avoid double brelse() in udf_rename() + - jfs: Fix fortify moan in symlink + - fs: jfs: fix shift-out-of-bounds in dbDiscardAG + - ACPICA: Fix error code path in acpi_ds_call_control_method() + - nilfs2: fix shift-out-of-bounds/overflow in nilfs_sb2_bad_offset() + - nilfs2: fix shift-out-of-bounds due to too large exponent of block size + - acct: fix potential integer overflow in encode_comp_t() + - hfs: fix OOB Read in __hfs_brec_find + - drm/etnaviv: add missing quirks for GC300 + - media: imx-jpeg: Disable useless interrupt to avoid kernel panic + - brcmfmac: return error when getting invalid max_flowrings from dongle + - wifi: ath9k: verify the expected usb_endpoints are present + - wifi: ar5523: Fix use-after-free on ar5523_cmd() timed out + - ASoC: codecs: rt298: Add quirk for KBL-R RVP platform + - ipmi: fix memleak when unload ipmi driver + - drm/amd/display: prevent memory leak + - Revert "drm/amd/display: Limit max DSC target bpp for specific monitors" + - qed (gcc13): use u16 for fid to be big enough + - bpf: make sure skb->len != 0 when redirecting to a tunneling device + - net: ethernet: ti: Fix return type of netcp_ndo_start_xmit() + - hamradio: baycom_epp: Fix return type of baycom_send_packet() + - wifi: brcmfmac: Fix potential shift-out-of-bounds in + brcmf_fw_alloc_request() + - igb: Do not free q_vector unless new one was allocated + - drm/amdgpu: Fix type of second parameter in trans_msg() callback + - drm/amdgpu: Fix type of second parameter in odn_edit_dpm_table() callback + - s390/ctcm: Fix return type of ctc{mp,}m_tx() + - s390/netiucv: Fix return type of netiucv_tx() + - s390/lcs: Fix return type of lcs_start_xmit() + - drm/msm: Use drm_mode_copy() + - drm/rockchip: Use drm_mode_copy() + - drm/sti: Use drm_mode_copy() + - drm/mediatek: Fix return type of mtk_hdmi_bridge_mode_valid() + - drivers/md/md-bitmap: check the return value of md_bitmap_get_counter() + - md/raid1: stop mdx_raid1 thread when raid1 array run failed + - drm/amd/display: fix array index out of bound error in bios parser + - net: add atomic_long_t to net_device_stats fields + - ipv6/sit: use DEV_STATS_INC() to avoid data-races + - mrp: introduce active flags to prevent UAF when applicant uninit + - ppp: associate skb with a device at tx + - bpf: Prevent decl_tag from being referenced in func_proto arg + - ethtool: avoiding integer overflow in ethtool_phys_id() + - media: dvb-frontends: fix leak of memory fw + - media: dvbdev: adopts refcnt to avoid UAF + - media: dvb-usb: fix memory leak in dvb_usb_adapter_init() + - blk-mq: fix possible memleak when register 'hctx' failed + - drm/amd/display: Use the largest vready_offset in pipe group + - libbpf: Avoid enum forward-declarations in public API in C++ mode + - regulator: core: fix use_count leakage when handling boot-on + - wifi: mt76: do not run mt76u_status_worker if the device is not running + - mmc: f-sdh30: Add quirks for broken timeout clock capability + - mmc: renesas_sdhi: better reset from HS400 mode + - media: si470x: Fix use-after-free in si470x_int_in_callback() + - clk: st: Fix memory leak in st_of_quadfs_setup() + - crypto: hisilicon/hpre - fix resource leak in remove process + - scsi: lpfc: Fix hard lockup when reading the rx_monitor from debugfs + - scsi: ufs: Reduce the START STOP UNIT timeout + - scsi: elx: libefc: Fix second parameter type in state callbacks + - hugetlbfs: fix null-ptr-deref in hugetlbfs_parse_param() + - drm/fsl-dcu: Fix return type of fsl_dcu_drm_connector_mode_valid() + - drm/sti: Fix return type of sti_{dvo,hda,hdmi}_connector_mode_valid() + - orangefs: Fix kmemleak in orangefs_prepare_debugfs_help_string() + - orangefs: Fix kmemleak in orangefs_{kernel,client}_debug_init() + - KVM: selftests: Fix build regression by using accessor function + - hwmon: (jc42) Fix missing unlock on error in jc42_write() + - ALSA: hda: add snd_hdac_stop_streams() helper + - ASoC: Intel: Skylake: Fix driver hang during shutdown + - ASoC: mediatek: mt8173-rt5650-rt5514: fix refcount leak in + mt8173_rt5650_rt5514_dev_probe() + - ASoC: audio-graph-card: fix refcount leak of cpu_ep in + __graph_for_each_link() + - ASoC: rockchip: pdm: Add missing clk_disable_unprepare() in + rockchip_pdm_runtime_resume() + - ASoC: mediatek: mt8183: fix refcount leak in + mt8183_mt6358_ts3a227_max98357_dev_probe() + - ASoC: wm8994: Fix potential deadlock + - ASoC: rockchip: spdif: Add missing clk_disable_unprepare() in + rk_spdif_runtime_resume() + - ASoC: rt5670: Remove unbalanced pm_runtime_put() + - drm/i915/display: Don't disable DDI/Transcoder when setting phy test pattern + - LoadPin: Ignore the "contents" argument of the LSM hooks + - pstore: Switch pmsg_lock to an rt_mutex to avoid priority inversion + - perf debug: Set debug_peo_args and redirect_to_stderr variable to correct + values in perf_quiet_option() + - afs: Fix lost servers_outstanding count + - pstore: Make sure CONFIG_PSTORE_PMSG selects CONFIG_RT_MUTEXES + - ALSA: usb-audio: add the quirk for KT0206 device + - ALSA: hda/realtek: Add quirk for Lenovo TianYi510Pro-14IOB + - ALSA: hda/hdmi: Add HP Device 0x8711 to force connect list + - usb: cdnsp: fix lack of ZLP for ep0 + - usb: xhci-mtk: fix leakage of shared hcd when fail to set wakeup irq + - arm64: dts: qcom: sm8250: fix USB-DP PHY registers + - usb: dwc3: Fix race between dwc3_set_mode and __dwc3_set_mode + - usb: dwc3: core: defer probe on ulpi_read_id timeout + - xhci: Prevent infinite loop in transaction errors recovery for streams + - HID: wacom: Ensure bootloader PID is usable in hidraw mode + - HID: mcp2221: don't connect hidraw + - loop: Fix the max_loop commandline argument treatment when it is set to 0 + - 9p: set req refcount to zero to avoid uninitialized usage + - security: Restrict CONFIG_ZERO_CALL_USED_REGS to gcc or clang > 15.0.6 + - reiserfs: Add missing calls to reiserfs_security_free() + - iio: fix memory leak in iio_device_register_eventset() + - iio: adc: ad_sigma_delta: do not use internal iio_dev lock + - iio: adc128s052: add proper .data members in adc128_of_match table + - regulator: core: fix deadlock on regulator enable + - floppy: Fix memory leak in do_floppy_init() + - gcov: add support for checksum field + - fbdev: fbcon: release buffer when fbcon_do_set_font() failed + - ovl: fix use inode directly in rcu-walk mode + - btrfs: do not BUG_ON() on ENOMEM when dropping extent items for a range + - scsi: qla2xxx: Fix crash when I/O abort times out + - net: stmmac: fix errno when create_singlethread_workqueue() fails + - media: dvbdev: fix build warning due to comments + - media: dvbdev: fix refcnt bug + - extcon: usbc-tusb320: Call the Type-C IRQ handler only if a port is + registered + - mfd: qcom_rpm: Use devm_of_platform_populate() to simplify code + - pwm: tegra: Fix 32 bit build + - staging: r8188eu: fix led register settings + - arm64: dts: renesas: r8a779g0: Fix HSCIF0 "brg_int" clock + - memory: renesas-rpc-if: Clear HS bit during hardware initialization + - firmware: ti_sci: Fix polled mode during system suspend + - arm64: dts: qcom: sc7180-trogdor-homestar: fully configure secondary I2S + pins + - arm64: dts: qcom: sm8450: fix UFS PHY registers + - arm64: dts: qcom: sm6350: drop bogus DP PHY clock + - arm64: dts: qcom: pm6350: Include header for KEY_POWER + - arm64: dts: renesas: r9a09g011: Fix unit address format error + - dt-bindings: pwm: fix microchip corePWM's pwm-cells + - arm64: dts: mt7986: fix trng node name + - drivers: perf: marvell_cn10k: Fix hotplug callback leak in tad_pmu_init() + - arm64: dts: ti: k3-j721s2: Fix the interrupt ranges property for main & wkup + gpio intr + - arm64: dts: mediatek: mt8195: Fix CPUs capacity-dmips-mhz + - arm64: dts: mt7896a: Fix unit_address_vs_reg warning for oscillator + - soc: apple: sart: Stop casting function pointer signatures + - soc: apple: rtkit: Stop casting function pointer signatures + - drivers/perf: hisi: Fix some event id for hisi-pcie-pmu + - arch: arm64: apple: t8103: Use standard "iommu" node name + - sched/uclamp: Fix fits_capacity() check in feec() + - sched/uclamp: Make cpu_overutilized() use util_fits_cpu() + - sched/uclamp: Cater for uclamp in find_energy_efficient_cpu()'s early exit + condition + - sched/psi: Fix possible missing or delayed pending event + - x86/split_lock: Add sysctl to control the misery mode + - selftests: cgroup: fix unsigned comparison with less than zero + - cpufreq: qcom-hw: Fix the frequency returned by cpufreq_driver->get() + - mailbox: pcc: Reset pcc_chan_count to zero in case of PCC probe failure + - ACPI: pfr_telemetry: use ACPI_FREE() to free acpi_object + - ACPI: pfr_update: use ACPI_FREE() to free acpi_object + - NFSD: Finish converting the NFSv3 GETACL result encoder + - ocfs2: fix memory leak in ocfs2_mount_volume() + - erofs: Fix pcluster memleak when its block address is zero + - erofs: fix missing unmap if z_erofs_get_extent_compressedlen() fails + - NFSD: pass range end to vfs_fsync_range() instead of count + - ipc: fix memory leak in init_mqueue_fs() + - wifi: ath11k: fix firmware assert during bandwidth change for peer sta + - libbpf: Fix memory leak in parse_usdt_arg() + - selftest/bpf: Fix memory leak in kprobe_multi_test + - selftests/bpf: Fix error failure of case test_xdp_adjust_tail_grow + - selftest/bpf: Fix error usage of ASSERT_OK in xdp_adjust_tail.c + - libbpf: Use elf_getshdrnum() instead of e_shnum + - libbpf: Deal with section with no data gracefully + - ASoC: Intel: avs: Fix potential RX buffer overflow + - drm/bridge: it6505: Initialize AUX channel in it6505_i2c_probe + - Input: iqs7222 - set all ULP entry masks by default + - Input: iqs7222 - drop unused device node references + - Input: iqs7222 - report malformed properties + - Input: iqs7222 - protect against undefined slider size + - media: amphion: reset instance if it's aborted before codec header parsed + - media: mediatek: vcodec: fix h264 cavlc bitstream fail + - drm/i915: Fix compute pre-emption w/a to apply to compute engines + - media: i2c: hi846: Fix memory leak in hi846_parse_dt() + - media: i2c: ov5648: Free V4L2 fwnode data on unbind + - clk: renesas: r8a779a0: Fix SD0H clock name + - ASoC: dt-bindings: rt5682: Set sound-dai-cells to 1 + - dw9768: Enable low-power probe on ACPI + - drm/ttm: fix undefined behavior in bit shift for TTM_TT_FLAG_PRIV_POPULATED + - drm/msm/mdp5: stop overriding drvdata + - bpf: Clobber stack slot when writing over spilled PTR_TO_BTF_ID + - drm/msm/dpu1: Account for DSC's bits_per_pixel having 4 fractional bits + - drm/msm/dsi: Remove useless math in DSC calculations + - drm/msm/dsi: Remove repeated calculation of slice_per_intf + - drm/msm/dsi: Use DIV_ROUND_UP instead of conditional increment on modulo + - drm/msm/dsi: Reuse earlier computed dsc->slice_chunk_size + - drm/msm/dsi: Appropriately set dsc->mux_word_size based on bpc + - media: rkvdec: Add required padding + - clk: qcom: gcc-ipq806x: use parent_data for the last remaining entry + - clk: qcom: dispcc-sm6350: Add CLK_OPS_PARENT_ENABLE to pixel&byte src + - mtd: core: fix possible resource leak in init_mtd() + - clk: renesas: r8a779f0: Fix SCIF parent clocks + - virt/sev-guest: Add a MODULE_ALIAS + - wifi: rtw89: use u32_encode_bits() to fill MAC quota value + - drm: rcar-du: Drop leftovers dependencies from Kconfig + - drbd: use blk_queue_max_discard_sectors helper + - dt-bindings: pinctrl: update uart/mmc bindings for MT7986 SoC + - pinctrl: mediatek: fix the pinconf register offset of some pins + - wifi: iwlwifi: mei: make sure ownership confirmed message is sent + - wifi: iwlwifi: mei: don't send SAP commands if AMT is disabled + - wifi: iwlwifi: mei: fix tx DHCP packet for devices with new Tx API + - wifi: iwlwifi: mei: avoid blocking sap messages handling due to rtnl lock + - wifi: iwlwifi: mei: fix potential NULL-ptr deref after clone + - module: Fix NULL vs IS_ERR checking for module_get_next_page + - wifi: rtw89: Fix some error handling path in rtw89_core_sta_assoc() + - net: ethernet: mtk_eth_soc: do not overwrite mtu configuration running reset + routine + - media: amphion: add lock around vdec_g_fmt + - media: amphion: apply vb2_queue_error instead of setting manually + - media: amphion: Fix error handling in vpu_driver_init() + - net: ethernet: mtk_eth_soc: fix RSTCTRL_PPE{0,1} definitions + - clk: imx93: correct the flexspi1 clock setting + - HID: i2c: let RMI devices decide what constitutes wakeup event + - clk: imx93: unmap anatop base in error handling path + - clk: imx93: correct enet clock + - clk: imx: imxrt1050: fix IMXRT1050_CLK_LCDIF_APB offsets + - wifi: rtw89: fix physts IE page check + - ASoC: Intel: avs: Lock substream before snd_pcm_stop() + - drm/i915/guc: make default_lists const data + - mtd: core: Fix refcount error in del_mtd_device() + - media: imx: imx7-media-csi: Clear BIT_MIPI_DOUBLE_CMPNT for <16b formats + - x86/boot: Skip realmode init code when running as Xen PV guest + - media: amphion: try to wakeup vpu core to avoid failure + - media: amphion: cancel vpu before release instance + - media: amphion: lock and check m2m_ctx in event handler + - media: mediatek: vcodec: Fix getting NULL pointer for dst buffer + - media: mediatek: vcodec: Fix h264 set lat buffer error + - media: mediatek: vcodec: Setting lat buf to lat_list when lat decode error + - media: mediatek: vcodec: Core thread depends on core_list + - NFSv4.2: Always decode the security label + - wifi: plfxlc: fix potential memory leak in __lf_x_usb_enable_rx() + - wifi: rtl8xxxu: Fix use after rcu_read_unlock in rtl8xxxu_bss_info_changed + - clk: mediatek: fix dependency of MT7986 ADC clocks + - amdgpu/nv.c: Corrected typo in the video capabilities resolution + - drm/i915/bios: fix a memory leak in generate_lfp_data_ptrs + - clk: visconti: Fix memory leak in visconti_register_pll() + - wifi: mac80211: fix memory leak in ieee80211_if_add() + - wifi: mt76: mt7915: fix mt7915_mac_set_timing() + - wifi: mt76: mt7915: fix reporting of TX AGGR histogram + - mt76: mt7915: Fix PCI device refcount leak in mt7915_pci_init_hif2() + - dt-bindings: clock: Add resets for LPASS audio clock controller for SC7280 + - dt-bindings: clock: Add support for external MCLKs for LPASS on SC7280 + - clk: qcom: lpass: Add support for resets & external mclk for SC7280 + - pinctrl: thunderbay: fix possible memory leak in + thunderbay_build_functions() + - bpftool: Fix memory leak in do_build_table_cb + - mmc: litex_mmc: ensure `host->irq == 0` if polling + - ipvs: use u64_stats_t for the per-cpu counters + - net: setsockopt: fix IPV6_UNICAST_IF option for connected sockets + - net: ethernet: ti: am65-cpsw: Fix PM runtime leakage in + am65_cpsw_nuss_ndo_slave_open() + - crypto: hisilicon/qm - re-enable communicate interrupt before notifying PF + - fortify: Do not cast to "unsigned char" + - f2fs: allow to set compression for inlined file + - f2fs: fix the assign logic of iocb + - RDMA/irdma: Fix inline for multiple SGE's + - RDMA/irdma: Fix RQ completion opcode + - RDMA/irdma: Do not request 2-level PBLEs for CQ alloc + - RDMA/rxe: Fix mr->map double free + - RDMA/hns: Fix incorrect sge nums calculation + - RDMA/irdma: Initialize net_type before checking it + - scsi: ufs: core: Fix the polling implementation + - f2fs: set zstd compress level correctly + - f2fs: fix to enable compress for newly created file if extension matches + - crypto: qat - fix error return code in adf_probe + - RDMA: Disable IB HW for UML + - PCI: vmd: Fix secondary bus reset for Intel bridges + - RDMA/hns: Fix the gid problem caused by free mr + - RDMA/hns: Fix XRC caps on HIP08 + - RISC-V: Fix unannoted hardirqs-on in return to userspace slow-path + - RISC-V: Fix MEMREMAP_WB for systems with Svpbmt + - riscv: Fix crash during early errata patching + - f2fs: fix iostat parameter for discard + - riscv: Fix P4D_SHIFT definition for 3-level page table mode + - interconnect: qcom: sc7180: fix dropped const of qcom_icc_bcm + - usb: typec: tipd: Fix typec_unregister_port error paths + - usb: musb: omap2430: Fix probe regression for missing resources + - USB: gadget: Fix use-after-free during usb config switch + - tracing/user_events: Fix call print_fmt leak + - usb: typec: wusb3801: fix fwnode refcount leak in wusb3801_probe() + - thermal/drivers/k3_j72xx_bandgap: Fix the debug print message + - led: qcom-lpg: Fix sleeping in atomic + - watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running + - power: supply: cw2015: Fix potential null-ptr-deref in cw_bat_probe() + - perf off_cpu: Fix a typo in BTF tracepoint name, it should be + 'btf_trace_sched_switch' + - ftrace: Allow WITH_ARGS flavour of graph tracer with shadow call stack + - phy: marvell: phy-mvebu-a3700-comphy: Reset COMPHY registers before USB 3.0 + power on + - iommu/s390: Fix duplicate domain attachments + - iommu/sun50i: Implement .iotlb_sync_map + - phy: usb: Use slow clock for wake enabled suspend + - phy: usb: Fix clock imbalance for suspend/resume + - pwm: tegra: Ensure the clock rate is not less than needed + - rtc: rzn1: Check return value in rzn1_rtc_probe + - rtc: class: Fix potential memleak in devm_rtc_allocate_device() + - iommu/mediatek: Check return value after calling platform_get_resource() + - kprobes: Fix check for probe enabled in kill_kprobe() + - iommu/mediatek: Add platform_device_put for recovering the device refcnt + - iommu/mediatek: Use component_match_add + - iommu/mediatek: Add error path for loop of mm_dts_parse + - iommu/mediatek: Validate number of phandles associated with "mediatek,larbs" + - mfd: axp20x: Do not sleep in the power off handler + - selftests/bpf: Select CONFIG_FUNCTION_ERROR_INJECTION + - mctp: serial: Fix starting value for frame check sequence + - mctp: Remove device type check at unregister + - ASoC: sof_es8336: fix possible use-after-free in sof_es8336_remove() + - ALSA: hda/hdmi: fix i915 silent stream programming flow + - ALSA: hda/hdmi: set default audio parameters for KAE silent-stream + - ALSA: hda/hdmi: fix stream-id config keep-alive for rt suspend + - lkdtm: cfi: Make PAC test work with GCC 7 and 8 + - drm/amd/pm: avoid large variable on kernel stack + - MIPS: ralink: mt7621: avoid to init common ralink reset controller + - perf test: Fix "all PMU test" to skip parametrized events + - Input: iqs7222 - avoid sending empty SYN_REPORT events + - dt-bindings: input: iqs7222: Reduce 'linux,code' to optional + - dt-bindings: input: iqs7222: Correct minimum slider size + - dt-bindings: input: iqs7222: Add support for IQS7222A v1.13+ + - Input: iqs7222 - trim force communication command + - Input: iqs7222 - add support for IQS7222A v1.13+ + - arm64: dts: qcom: sm6350: fix USB-DP PHY registers + - dt-bindings: clocks: imx8mp: Add ID for usb suspend clock + - clk: imx: imx8mp: add shared clk gate for usb suspend clk + - iio: addac: ad74413r: fix integer promotion bug in + ad74413_get_input_current_offset() + - mm/gup: disallow FOLL_FORCE|FOLL_WRITE on hugetlb mappings + + -- Luke Nowakowski-Krijger Tue, 21 Mar 2023 09:35:40 -0700 + +linux (5.19.0-38.39) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-38.39 -proposed tracker (LP: #2012088) + + * NFS deathlock with last Kernel 5.4.0-144.161 and 5.15.0-67.74 (LP: #2009325) + - NFS: Correct timing for assigning access cache timestamp + + -- Luke Nowakowski-Krijger Fri, 17 Mar 2023 10:12:45 -0700 + +linux (5.19.0-37.38) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-37.38 -proposed tracker (LP: #2008305) + + * XPS 9320 screen flicker on UHD panel 3840x2400 (LP: #2007516) + - SAUCE: drm/i915/display/psr: Disable PSR2 sel fetch on panel SHP 5457 + + * Fix speaker mute hotkey doesn't work on Dell G16 series (LP: #2003161) + - platform/x86: dell-wmi: Add a keymap for KEY_MUTE in type 0x0010 table + + * net:cmsg_ipv6.sh from ubuntu_kernel_selftests failed with K-5.19 + (LP: #2000709) + - selftest: net: Improve IPV6_TCLASS/IPV6_HOPLIMIT tests apparmor + compatibility + + * rtcpie in timers from ubuntu_kernel_selftests randomly failing + (LP: #1814234) + - SAUCE: selftest: rtcpie: Force passing unreliable subtest + + * CVE-2023-0469 + - io_uring/filetable: fix file reference underflow + + * Improve arp_ndisc_evict_nocarrier.sh test result processing (LP: #2006546) + - selftests: net: return non-zero for failures reported in + arp_ndisc_evict_nocarrier + + * Make cm32181 sensor work after system suspend (LP: #1981773) + - iio: light: cm32181: Add PM support + + * Fix Thunderbolt device hotplug fail when connect via thunderbolt dock + (LP: #1991366) + - PCI: Fix used_buses calculation in pci_scan_child_bus_extend() + - PCI: Pass available buses even if the bridge is already configured + - PCI: Move pci_assign_unassigned_root_bus_resources() + - PCI: Fix whitespace and indentation + - PCI: Fix typo in pci_scan_child_bus_extend() + + * arp_ndisc_evict_nocarrier.sh in net from ubuntu_kernel_selftests failed on + J-oem-5.17 / K (LP: #1968310) + - selftests: net: fix cleanup_v6() for arp_ndisc_evict_nocarrier + + * Screen freeze after resuming from suspend (nvme0: I/O timeout) + (LP: #1996048) + - PCI: vmd: Disable MSI remapping after suspend + + * RaptorLake: Fix the Screen is shaking by onboard HDMI port in mirror mode + (LP: #1993561) + - drm/i915/display: Drop check for doublescan mode in modevalid + - drm/i915/display: Prune Interlace modes for Display >=12 + + * udpgro_frglist.sh in net from ubuntu_kernel_selftests failed with K-5.19 + (Missing nat6to4 helper) (LP: #2000708) + - selftests/net: mv bpf/nat6to4.c to net folder + + * selftests/.../nat6to4 breaks the selftests build (LP: #1996536) + - selftests: net: Add cross-compilation support for BPF programs + - selftests: net: Fix O=dir builds + + * CVE-2023-0266 // CVE-2023-0266 was assigned for this issue. + - ALSA: pcm: Move rwsem lock inside snd_ctl_elem_read to prevent UAF + + * CVE-2022-4382 + - USB: gadgetfs: Fix race between mounting and unmounting + + * CVE-2022-2196 + - KVM: VMX: Execute IBPB on emulated VM-exit when guest has IBRS + + * ubuntu_kernel_selftests: net:udpgso_bench.sh failed (LP: #1951447) + - selftests: net: udpgso_bench: Fix racing bug between the rx/tx programs + + * Kinetic update: upstream stable patchset 2023-02-02 (LP: #2004602) + - clk: generalize devm_clk_get() a bit + - clk: Provide new devm_clk helpers for prepared and enabled clocks + - mmc: mtk-sd: Fix missing clk_disable_unprepare in msdc_of_clock_parse() + - arm64: dts: rockchip: keep I2S1 disabled for GPIO function on ROCK Pi 4 + series + - arm: dts: rockchip: fix node name for hym8563 rtc + - arm: dts: rockchip: remove clock-frequency from rtc + - ARM: dts: rockchip: fix ir-receiver node names + - arm64: dts: rockchip: fix ir-receiver node names + - ARM: dts: rockchip: rk3188: fix lcdc1-rgb24 node name + - fs: use acquire ordering in __fget_light() + - ARM: 9251/1: perf: Fix stacktraces for tracepoint events in THUMB2 kernels + - ARM: 9266/1: mm: fix no-MMU ZERO_PAGE() implementation + - ASoC: wm8962: Wait for updated value of WM8962_CLOCKING1 register + - spi: mediatek: Fix DEVAPC Violation at KO Remove + - ARM: dts: rockchip: disable arm_global_timer on rk3066 and rk3188 + - ASoC: rt711-sdca: fix the latency time of clock stop prepare state machine + transitions + - 9p/fd: Use P9_HDRSZ for header size + - regulator: slg51000: Wait after asserting CS pin + - ALSA: seq: Fix function prototype mismatch in snd_seq_expand_var_event + - btrfs: send: avoid unaligned encoded writes when attempting to clone range + - ASoC: soc-pcm: Add NULL check in BE reparenting + - regulator: twl6030: fix get status of twl6032 regulators + - fbcon: Use kzalloc() in fbcon_prepare_logo() + - usb: dwc3: gadget: Disable GUSB2PHYCFG.SUSPHY for End Transfer + - 9p/xen: check logical size for buffer size + - net: usb: qmi_wwan: add u-blox 0x1342 composition + - mm/khugepaged: take the right locks for page table retraction + - mm/khugepaged: fix GUP-fast interaction by sending IPI + - mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths + - cifs: fix use-after-free caused by invalid pointer `hostname` + - xen/netback: do some code cleanup + - xen/netback: don't call kfree_skb() with interrupts disabled + - media: videobuf2-core: take mmap_lock in vb2_get_unmapped_area() + - soundwire: intel: Initialize clock stop timeout + - media: v4l2-dv-timings.c: fix too strict blanking sanity checks + - memcg: fix possible use-after-free in memcg_write_event_control() + - mm/gup: fix gup_pud_range() for dax + - Bluetooth: btusb: Add debug message for CSR controllers + - Bluetooth: Fix crash when replugging CSR fake controllers + - net: mana: Fix race on per-CQ variable napi work_done + - KVM: s390: vsie: Fix the initialization of the epoch extension (epdx) field + - drm/vmwgfx: Don't use screen objects when SEV is active + - drm/amdgpu/sdma_v4_0: turn off SDMA ring buffer in the s2idle suspend + - drm/shmem-helper: Remove errant put in error path + - drm/shmem-helper: Avoid vm_open error paths + - net: dsa: sja1105: avoid out of bounds access in sja1105_init_l2_policing() + - HID: usbhid: Add ALWAYS_POLL quirk for some mice + - HID: hid-lg4ff: Add check for empty lbuf + - HID: core: fix shift-out-of-bounds in hid_report_raw_event + - HID: ite: Enable QUIRK_TOUCHPAD_ON_OFF_REPORT on Acer Aspire Switch V 10 + - can: af_can: fix NULL pointer dereference in can_rcv_filter + - clk: Fix pointer casting to prevent oops in devm_clk_release() + - gpiolib: fix memory leak in gpiochip_setup_dev() + - netfilter: nft_set_pipapo: Actually validate intervals in fields after the + first one + - drm/vmwgfx: Fix race issue calling pin_user_pages + - ieee802154: cc2520: Fix error return code in cc2520_hw_init() + - ca8210: Fix crash by zero initializing data + - netfilter: ctnetlink: fix compilation warning after data race fixes in ct + mark + - drm/bridge: ti-sn65dsi86: Fix output polarity setting bug + - gpio: amd8111: Fix PCI device reference count leak + - e1000e: Fix TX dispatch condition + - igb: Allocate MSI-X vector when testing + - net: broadcom: Add PTP_1588_CLOCK_OPTIONAL dependency for BCMGENET under + ARCH_BCM2835 + - drm: bridge: dw_hdmi: fix preference of RGB modes over YUV420 + - af_unix: Get user_ns from in_skb in unix_diag_get_exact(). + - vmxnet3: correctly report encapsulated LRO packet + - vmxnet3: use correct intrConf reference when using extended queues + - Bluetooth: 6LoWPAN: add missing hci_dev_put() in get_l2cap_conn() + - Bluetooth: Fix not cleanup led when bt_init fails + - net: dsa: ksz: Check return value + - net: dsa: hellcreek: Check return value + - net: dsa: sja1105: Check return value + - selftests: rtnetlink: correct xfrm policy rule in kci_test_ipsec_offload + - mac802154: fix missing INIT_LIST_HEAD in ieee802154_if_add() + - net: encx24j600: Add parentheses to fix precedence + - net: encx24j600: Fix invalid logic in reading of MISTAT register + - net: mdiobus: fwnode_mdiobus_register_phy() rework error handling + - net: mdiobus: fix double put fwnode in the error path + - octeontx2-pf: Fix potential memory leak in otx2_init_tc() + - xen-netfront: Fix NULL sring after live migration + - net: mvneta: Prevent out of bounds read in mvneta_config_rss() + - i40e: Fix not setting default xps_cpus after reset + - i40e: Fix for VF MAC address 0 + - i40e: Disallow ip4 and ip6 l4_4_bytes + - NFC: nci: Bounds check struct nfc_target arrays + - nvme initialize core quirks before calling nvme_init_subsystem + - gpio/rockchip: fix refcount leak in rockchip_gpiolib_register() + - net: stmmac: fix "snps,axi-config" node property parsing + - ip_gre: do not report erspan version on GRE interface + - net: microchip: sparx5: Fix missing destroy_workqueue of mact_queue + - net: thunderx: Fix missing destroy_workqueue of nicvf_rx_mode_wq + - net: hisilicon: Fix potential use-after-free in hisi_femac_rx() + - net: mdio: fix unbalanced fwnode reference count in mdio_device_release() + - net: hisilicon: Fix potential use-after-free in hix5hd2_rx() + - tipc: Fix potential OOB in tipc_link_proto_rcv() + - ipv4: Fix incorrect route flushing when source address is deleted + - ipv4: Fix incorrect route flushing when table ID 0 is used + - net: dsa: sja1105: fix memory leak in sja1105_setup_devlink_regions() + - tipc: call tipc_lxc_xmit without holding node_read_lock + - ethernet: aeroflex: fix potential skb leak in greth_init_rings() + - dpaa2-switch: Fix memory leak in dpaa2_switch_acl_entry_add() and + dpaa2_switch_acl_entry_remove() + - net: phy: mxl-gpy: fix version reporting + - net: plip: don't call kfree_skb/dev_kfree_skb() under spin_lock_irq() + - ipv6: avoid use-after-free in ip6_fragment() + - net: thunderbolt: fix memory leak in tbnet_open() + - net: mvneta: Fix an out of bounds check + - macsec: add missing attribute validation for offload + - s390/qeth: fix use-after-free in hsci + - can: esd_usb: Allow REC and TEC to return to zero + - io_uring: Fix a null-ptr-deref in io_tctx_exit_cb() + - madvise: use zap_page_range_single for madvise dontneed + - drm/i915: Remove non-existent pipes from bigjoiner pipe mask + - arm64: dts: rockchip: Fix gmac failure of rgmii-id from rk3566-roc-pc + - arm64: dts: rockchip: Fix i2c3 pinctrl on rk3566-roc-pc + - arm64: dts: rockchip: remove i2c5 from rk3566-roc-pc + - arm64: dts: rockchip: fix node name for hym8563 rtc + - ARM: dts: rockchip: fix adc-keys sub node names + - arm64: dts: rockchip: fix adc-keys sub node names + - LoongArch: Makefile: Use "grep -E" instead of "egrep" + - LoongArch: Combine acpi_boot_table_init() and acpi_boot_init() + - LoongArch: Set _PAGE_DIRTY only if _PAGE_MODIFIED is set in + {pmd,pte}_mkwrite() + - net/mlx5: Lag, avoid lockdep warnings + - hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing + - crypto: ccp - Add a quirk to firmware update + - soundwire: dmi-quirks: add remapping for HP Omen 16-k0005TX + - platform/x86: asus-wmi: Adjust tablet/lidflip handling to use enum + - platform/x86: asus-wmi: Add support for ROG X13 tablet mode + - fscache: Fix oops due to race with cookie_lru and use_cookie + - tmpfs: fix data loss from failed fallocate + - selftests/tls: Fix tls selftests dependency to correct algorithm + - drm/amd/display: fix array index out of bound error in DCN32 DML + - HID: uclogic: Add HID_QUIRK_HIDINPUT_FORCE quirk + - ARM: 9278/1: kfence: only handle translation faults + - netfilter: conntrack: fix using __this_cpu_add in preemptible + - net: ethernet: ti: am65-cpsw: Fix RGMII configuration at SPEED_10 + - inet: ping: use hlist_nulls rcu iterator during lookup + - Bluetooth: Remove codec id field in vendor codec definition + - Bluetooth: Fix support for Read Local Supported Codecs V2 + - nfp: correct desc type when header dma len is 4096 + - net: microchip: sparx5: correctly free skb in xmit + - net: wwan: iosm: fix memory leak in ipc_mux_init() + - ravb: Fix potential use-after-free in ravb_rx_gbeth() + - bonding: get correct NA dest address + - net: dsa: mv88e6xxx: accept phy-mode = "internal" for internal PHY ports + - drm/amdgpu/vcn: update vcn4 fw shared data structure + - x86/vdso: Conditionally export __vdso_sgx_enter_enclave() + - ASoC: fsl_micfil: explicitly clear software reset bit + - ASoC: fsl_micfil: explicitly clear CHnF flags + - ASoC: ops: Check bounds for second channel in snd_soc_put_volsw_sx() + - libbpf: Use page size as max_entries when probing ring buffer map + - pinctrl: meditatek: Startup with the IRQs disabled + - can: sja1000: fix size of OCR_MODE_MASK define + - can: mcba_usb: Fix termination command argument + - net: fec: don't reset irq coalesce settings to defaults on "ip link up" + - ASoC: cs42l51: Correct PGA Volume minimum value + - perf: Fix perf_pending_task() UaF + - nvme-pci: clear the prp2 field when not used + - ASoC: ops: Correct bounds check for second channel on SX controls + - net: fec: properly guard irq coalesce setup + - libbpf: Fix uninitialized warning in btf_dump_dump_type_data + - udf: Discard preallocation before extending file with a hole + - udf: Fix preallocation discarding at indirect extent boundary + - udf: Do not bother looking for prealloc extents if i_lenExtents matches + i_size + - udf: Fix extending file within last block + - usb: gadget: uvc: Prevent buffer overflow in setup handler + - USB: serial: option: add Quectel EM05-G modem + - USB: serial: cp210x: add Kamstrup RF sniffer PIDs + - USB: serial: f81232: fix division by zero on line-speed change + - USB: serial: f81534: fix division by zero on line-speed change + - xhci: Apply XHCI_RESET_TO_DEFAULT quirk to ADL-N + - igb: Initialize mailbox message for VF reset + - usb: dwc3: pci: Update PCIe device ID for USB3 controller on CPU sub-system + for Raptor Lake + - selftests: net: Use "grep -E" instead of "egrep" + - net: loopback: use NET_NAME_PREDICTABLE for name_assign_type + - PCI: mt7621: Add sentinel to quirks table + - kallsyms: Make module_kallsyms_on_each_symbol generally available + - ftrace: Add support to resolve module symbols in ftrace_lookup_symbols + - bpf: Rename __bpf_kprobe_multi_cookie_cmp to bpf_kprobe_multi_addrs_cmp + - bpf: Take module reference on kprobe_multi link + - selftests/bpf: Add load_kallsyms_refresh function + - selftests/bpf: Add bpf_testmod_fentry_* functions + - selftests/bpf: Add kprobe_multi check to module attach test + - selftests/bpf: Add kprobe_multi kmod attach api tests + - usb: typec: ucsi: Resume in separate work + - KEYS: encrypted: fix key instantiation with user-provided data + + * Kinetic update: upstream stable patchset 2023-02-02 (LP: #2004602) // + net:fcnal-test.sh 'nettest' command not found on F/K (LP: #2006391) + - selftests/net: Find nettest in current directory + + * CVE-2023-23559 + - wifi: rndis_wlan: Prevent buffer overflow in rndis_query_oid + + * CVE-2023-0045 + - x86/bugs: Flush IBP in ib_prctl_set() + + -- Luke Nowakowski-Krijger Wed, 01 Mar 2023 09:03:07 -0800 + +linux (5.19.0-35.36) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-35.36 -proposed tracker (LP: #2004652) + + * CVE-2023-0461 + - SAUCE: Fix inet_csk_listen_start after CVE-2023-0461 + + -- Luke Nowakowski-Krijger Fri, 03 Feb 2023 10:16:50 -0800 + +linux (5.19.0-34.35) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-34.35 -proposed tracker (LP: #2004299) + + * LXD containers using shiftfs on ZFS or TMPFS broken on 5.15.0-48.54 + (LP: #1990849) + - [SAUCE] shiftfs: fix -EOVERFLOW inside the container + + * Kinetic update: upstream stable patchset 2023-01-27 (LP: #2004051) + - ASoC: fsl_sai: use local device pointer + - serial: Add rs485_supported to uart_port + - serial: fsl_lpuart: Fill in rs485_supported + - x86/sgx: Create utility to validate user provided offset and length + - x86/sgx: Add overflow check in sgx_validate_offset_length() + - binder: validate alloc->mm in ->mmap() handler + - ceph: Use kcalloc for allocating multiple elements + - ceph: fix NULL pointer dereference for req->r_session + - wifi: mac80211: fix memory free error when registering wiphy fail + - wifi: mac80211_hwsim: fix debugfs attribute ps with rc table support + - riscv: dts: sifive unleashed: Add PWM controlled LEDs + - audit: fix undefined behavior in bit shift for AUDIT_BIT + - wifi: airo: do not assign -1 to unsigned char + - wifi: mac80211: Fix ack frame idr leak when mesh has no route + - wifi: ath11k: Fix QCN9074 firmware boot on x86 + - spi: stm32: fix stm32_spi_prepare_mbr() that halves spi clk for every run + - selftests/bpf: Add verifier test for release_reference() + - Revert "net: macsec: report real_dev features when HW offloading is enabled" + - platform/x86: ideapad-laptop: Disable touchpad_switch + - platform/x86: touchscreen_dmi: Add info for the RCA Cambio W101 v2 2-in-1 + - platform/x86/intel/pmt: Sapphire Rapids PMT errata fix + - scsi: ibmvfc: Avoid path failures during live migration + - scsi: scsi_debug: Make the READ CAPACITY response compliant with ZBC + - drm: panel-orientation-quirks: Add quirk for Acer Switch V 10 (SW5-017) + - block, bfq: fix null pointer dereference in bfq_bio_bfqg() + - arm64/syscall: Include asm/ptrace.h in syscall_wrapper header. + - nvmet: fix memory leak in nvmet_subsys_attr_model_store_locked + - Revert "drm/amdgpu: Revert "drm/amdgpu: getting fan speed pwm for vega10 + properly"" + - ALSA: usb-audio: add quirk to fix Hamedal C20 disconnect issue + - RISC-V: vdso: Do not add missing symbols to version section in linker script + - MIPS: pic32: treat port as signed integer + - xfrm: fix "disable_policy" on ipv4 early demux + - xfrm: replay: Fix ESN wrap around for GSO + - af_key: Fix send_acquire race with pfkey_register + - ARM: dts: am335x-pcm-953: Define fixed regulators in root node + - ASoC: hdac_hda: fix hda pcm buffer overflow issue + - ASoC: sgtl5000: Reset the CHIP_CLK_CTRL reg on remove + - ASoC: soc-pcm: Don't zero TDM masks in __soc_pcm_open() + - x86/hyperv: Restore VP assist page after cpu offlining/onlining + - scsi: storvsc: Fix handling of srb_status and capacity change events + - ASoC: max98373: Add checks for devm_kcalloc + - regulator: core: fix kobject release warning and memory leak in + regulator_register() + - spi: dw-dma: decrease reference count in dw_spi_dma_init_mfld() + - regulator: core: fix UAF in destroy_regulator() + - bus: sunxi-rsb: Remove the shutdown callback + - bus: sunxi-rsb: Support atomic transfers + - tee: optee: fix possible memory leak in optee_register_device() + - ARM: dts: at91: sam9g20ek: enable udc vbus gpio pinctrl + - selftests: mptcp: fix mibit vs mbit mix up + - net: liquidio: simplify if expression + - rxrpc: Fix race between conn bundle lookup and bundle removal [ZDI- + CAN-15975] + - net: dsa: sja1105: disallow C45 transactions on the BASE-TX MDIO bus + - nfc/nci: fix race with opening and closing + - net: pch_gbe: fix potential memleak in pch_gbe_tx_queue() + - 9p/fd: fix issue of list_del corruption in p9_fd_cancel() + - netfilter: conntrack: Fix data-races around ct mark + - netfilter: nf_tables: do not set up extensions for end interval + - iavf: Fix a crash during reset task + - iavf: Do not restart Tx queues after reset task failure + - iavf: Fix race condition between iavf_shutdown and iavf_remove + - ARM: mxs: fix memory leak in mxs_machine_init() + - ARM: dts: imx6q-prti6q: Fix ref/tcxo-clock-frequency properties + - net: ethernet: mtk_eth_soc: fix error handling in mtk_open() + - net/mlx4: Check retval of mlx4_bitmap_init + - net: mvpp2: fix possible invalid pointer dereference + - net/qla3xxx: fix potential memleak in ql3xxx_send() + - octeontx2-af: debugsfs: fix pci device refcount leak + - net: pch_gbe: fix pci device refcount leak while module exiting + - nfp: fill splittable of devlink_port_attrs correctly + - nfp: add port from netdev validation for EEPROM access + - macsec: Fix invalid error code set + - Drivers: hv: vmbus: fix double free in the error path of + vmbus_add_channel_work() + - Drivers: hv: vmbus: fix possible memory leak in vmbus_device_register() + - netfilter: ipset: regression in ip_set_hash_ip.c + - net/mlx5: Do not query pci info while pci disabled + - net/mlx5: Fix FW tracer timestamp calculation + - net/mlx5: Fix handling of entry refcount when command is not issued to FW + - tipc: set con sock in tipc_conn_alloc + - tipc: add an extra conn_get in tipc_conn_alloc + - tipc: check skb_linearize() return value in tipc_disc_rcv() + - xfrm: Fix oops in __xfrm_state_delete() + - xfrm: Fix ignored return value in xfrm6_init() + - net: wwan: iosm: use ACPI_FREE() but not kfree() in ipc_pcie_read_bios_cfg() + - sfc: fix potential memleak in __ef100_hard_start_xmit() + - net: sparx5: fix error handling in sparx5_port_open() + - net: sched: allow act_ct to be built without NF_NAT + - NFC: nci: fix memory leak in nci_rx_data_packet() + - regulator: twl6030: re-add TWL6032_SUBCLASS + - bnx2x: fix pci device refcount leak in bnx2x_vf_is_pcie_pending() + - dma-buf: fix racing conflict of dma_heap_add() + - netfilter: ipset: restore allowing 64 clashing elements in hash:net,iface + - netfilter: flowtable_offload: add missing locking + - fs: do not update freeing inode i_io_list + - dccp/tcp: Reset saddr on failure after inet6?_hash_connect(). + - ipv4: Fix error return code in fib_table_insert() + - arcnet: fix potential memory leak in com20020_probe() + - s390/dasd: fix no record found for raw_track_access + - nfc: st-nci: fix incorrect validating logic in EVT_TRANSACTION + - nfc: st-nci: fix memory leaks in EVT_TRANSACTION + - nfc: st-nci: fix incorrect sizing calculations in EVT_TRANSACTION + - net: enetc: cache accesses to &priv->si->hw + - net: enetc: preserve TX ring priority across reconfiguration + - octeontx2-pf: Add check for devm_kcalloc + - octeontx2-af: Fix reference count issue in rvu_sdp_init() + - net: thunderx: Fix the ACPI memory leak + - s390/crashdump: fix TOD programmable field size + - lib/vdso: use "grep -E" instead of "egrep" + - [Config] updateconfigs for CC_HAS_ASM_GOTO_TIED_OUTPUT + - init/Kconfig: fix CC_HAS_ASM_GOTO_TIED_OUTPUT test with dash + - nios2: add FORCE for vmlinuz.gz + - KVM: arm64: pkvm: Fixup boot mode to reflect that the kernel resumes from + EL1 + - usb: dwc3: exynos: Fix remove() function + - usb: cdnsp: Fix issue with Clear Feature Halt Endpoint + - usb: cdnsp: fix issue with ZLP - added TD_SIZE = 1 + - ext4: fix use-after-free in ext4_ext_shift_extents + - arm64: dts: rockchip: lower rk3399-puma-haikou SD controller clock frequency + - iio: light: apds9960: fix wrong register for gesture gain + - iio: core: Fix entry not deleted when iio_register_sw_trigger_type() fails + - bus: ixp4xx: Don't touch bit 7 on IXP42x + - usb: dwc3: gadget: conditionally remove requests + - usb: dwc3: gadget: Return -ESHUTDOWN on ep disable + - usb: dwc3: gadget: Clear ep descriptor last + - nilfs2: fix nilfs_sufile_mark_dirty() not set segment usage as dirty + - gcov: clang: fix the buffer overflow issue + - mm: vmscan: fix extreme overreclaim and swap floods + - KVM: x86: nSVM: leave nested mode on vCPU free + - KVM: x86: forcibly leave nested mode on vCPU reset + - KVM: x86: nSVM: harden svm_free_nested against freeing vmcb02 while still in + use + - KVM: x86: add kvm_leave_nested + - KVM: x86: remove exit_int_info warning in svm_handle_exit + - x86/tsx: Add a feature bit for TSX control MSR support + - x86/pm: Add enumeration check before spec MSRs save/restore setup + - x86/ioremap: Fix page aligned size calculation in __ioremap_caller() + - Input: synaptics - switch touchpad on HP Laptop 15-da3001TU to RMI mode + - ASoC: Intel: bytcht_es8316: Add quirk for the Nanote UMPC-01 + - tools: iio: iio_generic_buffer: Fix read size + - serial: 8250: 8250_omap: Avoid RS485 RTS glitch on ->set_termios() + - Input: goodix - try resetting the controller when no config is set + - Input: soc_button_array - add use_low_level_irq module parameter + - Input: soc_button_array - add Acer Switch V 10 to dmi_use_low_level_irq[] + - Input: i8042 - apply probe defer to more ASUS ZenBook models + - ASoC: stm32: dfsdm: manage cb buffers cleanup + - xen-pciback: Allow setting PCI_MSIX_FLAGS_MASKALL too + - xen/platform-pci: add missing free_irq() in error path + - platform/x86: asus-wmi: add missing pci_dev_put() in asus_wmi_set_xusb2pr() + - platform/x86: acer-wmi: Enable SW_TABLET_MODE on Switch V 10 (SW5-017) + - drm/amdgpu: disable BACO support on more cards + - zonefs: fix zone report size in __zonefs_io_error() + - platform/x86: hp-wmi: Ignore Smart Experience App event + - platform/x86: ideapad-laptop: Fix interrupt storm on fn-lock toggle on some + Yoga laptops + - [Config] updateconfigs for INET_TABLE_PERTURB_ORDER + - tcp: configurable source port perturb table size + - net: usb: qmi_wwan: add Telit 0x103a composition + - scsi: iscsi: Fix possible memory leak when device_register() failed + - gpu: host1x: Avoid trying to use GART on Tegra20 + - dm integrity: flush the journal on suspend + - dm integrity: clear the journal on suspend + - fuse: lock inode unconditionally in fuse_fallocate() + - wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_OPER_CHANNEL attribute + - wifi: wilc1000: validate length of IEEE80211_P2P_ATTR_CHANNEL_LIST attribute + - wifi: wilc1000: validate number of channels + - btrfs: free btrfs_path before copying root refs to userspace + - btrfs: free btrfs_path before copying fspath to userspace + - btrfs: free btrfs_path before copying subvol info to userspace + - btrfs: zoned: fix missing endianness conversion in sb_write_pointer + - btrfs: use kvcalloc in btrfs_get_dev_zone_info + - btrfs: sysfs: normalize the error handling branch in btrfs_init_sysfs() + - drm/amd/dc/dce120: Fix audio register mapping, stop triggering KASAN + - drm/amdgpu: Enable Aldebaran devices to report CU Occupancy + - drm/amdgpu: always register an MMU notifier for userptr + - drm/i915: fix TLB invalidation for Gen12 video and compute engines + - wifi: cfg80211: Fix bitrates overflow issue + - spi: tegra210-quad: Don't initialise DMA if not supported + - s390/zcrypt: fix warning about field-spanning write + - selftests/net: give more time to udpgro bg processes to complete startup + - ACPI: video: Add backlight=native DMI quirk for Dell G15 5515 + - drm: panel-orientation-quirks: Add quirk for Nanote UMPC-01 + - s390: always build relocatable kernel + - nvme: quiet user passthrough command errors + - net: wwan: iosm: fix kernel test robot reported errors + - drm/amdgpu: Drop eviction lock when allocating PT BO + - arm64: dts: rockchip: fix quartz64-a bluetooth configuration + - power: supply: ip5xxx: Fix integer overflow in current_now calculation + - power: supply: ab8500: Defer thermal zone probe + - arm64: dts: rockchip: Fix Pine64 Quartz4-B PMIC interrupt + - regulator: rt5759: fix OOB in validate_desc() + - spi: tegra210-quad: Fix duplicate resource error + - selftests: mptcp: gives slow test-case more time + - selftests: mptcp: run mptcp_sockopt from a new netns + - bonding: fix ICMPv6 header handling when receiving IPv6 messages + - drm/i915: Fix warn in intel_display_power_*_domain() functions + - net/mlx5: SF: Fix probing active SFs during driver probe phase + - net/mlx5: cmdif, Print info on any firmware cmd failure to tracepoint + - net/mlx5: E-Switch, Set correctly vport destination + - net/mlx5e: Offload rule only when all encaps are valid + - net: phy: at803x: fix error return code in at803x_probe() + - zonefs: Fix race between modprobe and mount + - tsnep: Fix rotten packets + - blk-mq: fix queue reference leak on blk_mq_alloc_disk_for_queue failure + - test_kprobes: fix implicit declaration error of test_kprobes + - net: ethernet: mtk_eth_soc: fix resource leak in error path + - net: dm9051: Fix missing dev_kfree_skb() in dm9051_loop_rx() + - s390/ap: fix memory leak in ap_init_qci_info() + - fscache: fix OOB Read in __fscache_acquire_volume + - net: wwan: t7xx: Fix the ACPI memory leak + - virtio_net: Fix probe failed when modprobe virtio_net + - can: gs_usb: remove dma allocations + - cifs: fix missing unlock in cifs_file_copychunk_range() + - cifs: Use after free in debug code + - iio: adc: aspeed: Remove the trim valid dts property. + - dt-bindings: iio: adc: Remove the property "aspeed,trim-data-valid" + - mm/damon/sysfs-schemes: skip stats update if the scheme directory is removed + - virt/sev-guest: Prevent IV reuse in the SNP guest driver + - zonefs: Fix active zone accounting + - spi: spi-imx: Fix spi_bus_clk if requested clock is higher than input clock + - spi: spi-imx: spi_imx_transfer_one(): check for DMA transfer first + - mm/cgroup/reclaim: fix dirty pages throttling on cgroup v1 + - KVM: x86/mmu: Fix race condition in direct_page_fault + - KVM: x86/xen: Only do in-kernel acceleration of hypercalls for guest CPL0 + - KVM: x86/xen: Validate port number in SCHEDOP_poll + - drm/i915/gvt: Get reference to KVM iff attachment to VM is successful + - KVM: Update gfn_to_pfn_cache khva when it moves within the same page + - mm: fix unexpected changes to {failslab|fail_page_alloc}.attr + - mm: correctly charge compressed memory to its memcg + - LoongArch: Clear FPU/SIMD thread info flags for kernel thread + - LoongArch: Set _PAGE_DIRTY only if _PAGE_WRITE is set in {pmd,pte}_mkdirty() + - ASoC: amd: yc: Add Alienware m17 R5 AMD into DMI table + - ASoC: Intel: soc-acpi: add ES83x6 support to IceLake + - ASoC: hda: intel-dsp-config: add ES83x6 quirk for IceLake + - ASoC: SOF: ipc3-topology: use old pipeline teardown flow with SOF2.1 and + older + - Revert "tty: n_gsm: avoid call of sleeping functions from atomic context" + - Revert "tty: n_gsm: replace kicktimer with delayed_work" + - ASoC: sof_es8336: reduce pop noise on speaker + - pinctrl: qcom: sc8280xp: Rectify UFS reset pins + - platform/x86: thinkpad_acpi: Enable s2idle quirk for 21A1 machine type + - platform/x86: ideapad-laptop: Add module parameters to match DMI quirk + tables + - block: make blk_set_default_limits() private + - scsi: mpi3mr: Suppress command reply debug prints + - btrfs: free btrfs_path before copying inodes to userspace + - btrfs: do not modify log tree while holding a leaf from fs tree locked + - drm/i915/ttm: never purge busy objects + - drm/display/dp_mst: Fix drm_dp_mst_add_affected_dsc_crtcs() return code + - drm/amdgpu/psp: don't free PSP buffers on suspend + - drm/amd/amdgpu: reserve vm invalidation engine for firmware + - drm/amdgpu: Partially revert "drm/amdgpu: update drm_display_info correctly + when the edid is read" + - btrfs: sink iterator parameter to btrfs_ioctl_logical_to_ino + - btrfs: qgroup: fix sleep from invalid context bug in btrfs_qgroup_inherit() + - iio: health: afe4403: Fix oob read in afe4403_read_raw + - iio: health: afe4404: Fix oob read in afe4404_[read|write]_raw + - iio: light: rpr0521: add missing Kconfig dependencies + - bpf, perf: Use subprog name when reporting subprog ksymbol + - scripts/faddr2line: Fix regression in name resolution on ppc64le + - ARM: at91: rm9200: fix usb device clock id + - libbpf: Handle size overflow for ringbuf mmap + - hwmon: (ltc2947) fix temperature scaling + - hwmon: (ina3221) Fix shunt sum critical calculation + - hwmon: (i5500_temp) fix missing pci_disable_device() + - hwmon: (ibmpex) Fix possible UAF when ibmpex_register_bmc() fails + - bpf: Do not copy spin lock field from user in bpf_selem_alloc + - nvmem: rmem: Fix return value check in rmem_read() + - of: property: decrement node refcount in of_fwnode_get_reference_args() + - ixgbevf: Fix resource leak in ixgbevf_init_module() + - i40e: Fix error handling in i40e_init_module() + - fm10k: Fix error handling in fm10k_init_module() + - iavf: Fix error handling in iavf_init_module() + - e100: Fix possible use after free in e100_xmit_prepare + - net/mlx5: DR, Fix uninitialized var warning + - net/mlx5: Fix uninitialized variable bug in outlen_write() + - net/mlx5e: Fix use-after-free when reverting termination table + - can: sja1000_isa: sja1000_isa_probe(): add missing free_sja1000dev() + - can: cc770: cc770_isa_probe(): add missing free_cc770dev() + - can: etas_es58x: es58x_init_netdev(): free netdev when register_candev() + - can: m_can: pci: add missing m_can_class_free_dev() in probe/remove methods + - can: m_can: Add check for devm_clk_get + - qlcnic: fix sleep-in-atomic-context bugs caused by msleep + - aquantia: Do not purge addresses when setting the number of rings + - wifi: cfg80211: fix buffer overflow in elem comparison + - wifi: cfg80211: don't allow multi-BSSID in S1G + - wifi: mac8021: fix possible oob access in ieee80211_get_rate_duration + - net: phy: fix null-ptr-deref while probe() failed + - net: ethernet: ti: am65-cpsw: fix error handling in am65_cpsw_nuss_probe() + - net: net_netdev: Fix error handling in ntb_netdev_init_module() + - net/9p: Fix a potential socket leak in p9_socket_open + - net: ethernet: nixge: fix NULL dereference + - net: wwan: iosm: fix kernel test robot reported error + - net: wwan: iosm: fix dma_alloc_coherent incompatible pointer type + - dsa: lan9303: Correct stat name + - tipc: re-fetch skb cb after tipc_msg_validate + - net: hsr: Fix potential use-after-free + - net: mdiobus: fix unbalanced node reference count + - afs: Fix fileserver probe RTT handling + - net: tun: Fix use-after-free in tun_detach() + - packet: do not set TP_STATUS_CSUM_VALID on CHECKSUM_COMPLETE + - sctp: fix memory leak in sctp_stream_outq_migrate() + - net: ethernet: renesas: ravb: Fix promiscuous mode after system resumed + - hwmon: (coretemp) Check for null before removing sysfs attrs + - hwmon: (coretemp) fix pci device refcount leak in nv1a_ram_new() + - riscv: vdso: fix section overlapping under some conditions + - riscv: mm: Proper page permissions after initmem free + - ALSA: dice: fix regression for Lexicon I-ONIX FW810S + - error-injection: Add prompt for function error injection + - tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep" + - nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry() + - x86/bugs: Make sure MSR_SPEC_CTRL is updated properly upon resume from S3 + - pinctrl: intel: Save and restore pins in "direct IRQ" mode + - v4l2: don't fall back to follow_pfn() if pin_user_pages_fast() fails + - net: stmmac: Set MAC's flow control register to reflect current settings + - mmc: mmc_test: Fix removal of debugfs file + - mmc: core: Fix ambiguous TRIM and DISCARD arg + - mmc: sdhci-esdhc-imx: correct CQHCI exit halt state check + - mmc: sdhci-sprd: Fix no reset data and command after voltage switch + - mmc: sdhci: Fix voltage switch delay + - drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame + - drm/amdgpu: enable Vangogh VCN indirect sram mode + - drm/i915: Fix negative value passed as remaining time + - drm/i915: Never return 0 if not all requests retired + - tracing/osnoise: Fix duration type + - tracing: Fix race where histograms can be called before the event + - tracing: Free buffers when a used dynamic event is removed + - io_uring: cmpxchg for poll arm refs release + - io_uring/poll: fix poll_refs race with cancelation + - ASoC: ops: Fix bounds check for _sx controls + - pinctrl: single: Fix potential division by zero + - riscv: Sync efi page table's kernel mappings before switching + - riscv: fix race when vmap stack overflow + - riscv: kexec: Fixup irq controller broken in kexec crash path + - nvme: fix SRCU protection of nvme_ns_head list + - iommu/vt-d: Fix PCI device refcount leak in has_external_pci() + - iommu/vt-d: Fix PCI device refcount leak in dmar_dev_scope_init() + - mm: migrate: fix THP's mapcount on isolation + - Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is + enabled + - ipv4: Handle attempt to delete multipath route when fib_info contains an nh + reference + - ipv4: Fix route deletion when nexthop info is not specified + - i2c: npcm7xx: Fix error handling in npcm_i2c_init() + - i2c: imx: Only DMA messages with I2C_M_DMA_SAFE flag set + - ACPI: HMAT: remove unnecessary variable initialization + - ACPI: HMAT: Fix initiator registration for single-initiator systems + - Revert "clocksource/drivers/riscv: Events are stopped during CPU suspend" + - char: tpm: Protect tpm_pm_suspend with locks + - Input: raydium_ts_i2c - fix memory leak in raydium_i2c_send() + - ipc/sem: Fix dangling sem_array access in semtimedop race + - clk: samsung: exynos7885: Correct "div4" clock parents + - libbpf: Use correct return pointer in attach_raw_tp + - clocksource/drivers/arm_arch_timer: Fix XGene-1 TVAL register math error + - clk: qcom: gcc-sc8280xp: add cxo as parent for three ufs ref clks + - vfs: fix copy_file_range() averts filesystem freeze protection + - net: wwan: iosm: fix crash in peek throughput test + - net: wwan: iosm: fix incorrect skb length + - mptcp: don't orphan ssk in mptcp_close() + - mptcp: fix sleep in atomic at close time + - hwmon: (asus-ec-sensors) Add checks for devm_kcalloc + - ASoC: tlv320adc3xxx: Fix build error for implicit function declaration + - mm/damon/sysfs: fix wrong empty schemes assumption under online tuning in + damon_sysfs_set_schemes() + - i2c: Restore initial power state if probe fails + - i2c: qcom-geni: fix error return code in geni_i2c_gpi_xfer + - powerpc/bpf/32: Fix Oops on tail call tests + + * 5.15.0-58.64 breaks xen bridge networking (pvh domU) (LP: #2002889) + - xen/netback: fix build warning + + * NFS: client permission error after adding user to permissible group + (LP: #2003053) + - NFS: Clear the file access cache upon login + - NFS: Judge the file access cache's timestamp in rcu path + - NFS: Fix up a sparse warning + + * cmsg_so_mark.sh / cmsg_time.sh / cmsg_ipv6.sh in net from + ubuntu_kernel_selftests hang with non-amd64 (LP: #2000667) + - selftests: net: fix cmsg_so_mark.sh test hang + + * Set explicit CC in the headers package (LP: #1999750) + - [Packaging] Set explicit CC in the headers package + + * powerpc-build in ubuntu_kernel_selftests failed on P9 with K-5.19 + (LP: #2000772) + - selftests/powerpc: Avoid GCC 12 uninitialised variable warning + + * [SRU] SoF for RPL platform support (LP: #1992714) + - ASoC: SOC: Intel: introduce cl_init callback + - ASoC: SOF: Intel: add MeteorLake machines + - ASoC: SOF: Intel: Add support for MeteorLake (MTL) + - ASoC: Intel: common: add ACPI matching tables for Raptor Lake + - ASoC: SOF: Intel: pci-tgl: use RPL specific firmware definitions + - [Config] Enable SND_SOC_SOF_METEORLAKE as module + + * Rear Audio port sometimes has no audio output after reboot(Cirrus Logic) + (LP: #1998905) + - ALSA: hda/cirrus: Add extra 10 ms delay to allow PLL settle and lock. + + * Fix SUT can't displayed after resume from WB/CB with dGFX + installed(FR:6/10)[RX6300][RX6500] (LP: #1999836) + - drm/amd/display: No display after resume from WB/CB + + * commit cf58599cded35cf4affed1e659c0e2c742d3fda7 seems to be missing in + kinetic master to remove "hio" reference from Makefile (LP: #1999556) + - Ubuntu: remove leftover reference to ubuntu/hio driver + + * Add additional Mediatek MT7922 BT device ID (LP: #1998885) + - Bluetooth: btusb: Add a new VID/PID 0489/e0f2 for MT7922 + + * Mute/mic LEDs no function on a HP platfrom (LP: #1998882) + - ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook + + * CVE-2023-0461 + - net/ulp: prevent ULP without clone op from entering the LISTEN status + - net/ulp: use consistent error code when blocking ULP + + * CVE-2023-0179 + - netfilter: nft_payload: incorrect arithmetics when fetching VLAN header bits + + * CVE-2022-20369 + - NFSD: fix use-after-free in __nfs42_ssc_open() + + * Kinetic update: upstream stable patchset 2023-01-23 (LP: #2003753) + - ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in + wm5102_probe" + - ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in + wm5110_probe" + - ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in + wm8997_probe" + - ASoC: mt6660: Keep the pm_runtime enables before component stuff in + mt6660_i2c_probe + - ASoC: rt1019: Fix the TDM settings + - ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK + - spi: intel: Fix the offset to get the 64K erase opcode + - ASoC: codecs: jz4725b: add missed Line In power control bit + - ASoC: codecs: jz4725b: fix reported volume for Master ctl + - ASoC: codecs: jz4725b: use right control for Capture Volume + - ASoC: codecs: jz4725b: fix capture selector naming + - ASoC: Intel: sof_sdw: add quirk variant for LAPBC710 NUC15 + - selftests/futex: fix build for clang + - selftests/intel_pstate: fix build for ARCH=x86_64 + - ASoC: rt1308-sdw: add the default value of some registers + - drm/amd/display: Remove wrong pipe control lock + - ACPI: scan: Add LATT2021 to acpi_ignore_dep_ids[] + - RDMA/efa: Add EFA 0xefa2 PCI ID + - btrfs: raid56: properly handle the error when unable to find the missing + stripe + - NFSv4: Retry LOCK on OLD_STATEID during delegation return + - ACPI: x86: Add another system to quirk list for forcing StorageD3Enable + - firmware: arm_scmi: Cleanup the core driver removal callback + - i2c: tegra: Allocate DMA memory for DMA engine + - i2c: i801: add lis3lv02d's I2C address for Vostro 5568 + - drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid + - btrfs: remove pointless and double ulist frees in error paths of qgroup + tests + - x86/cpu: Add several Intel server CPU model numbers + - ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source", "Routee" -> + "Route" + - KVM: x86/pmu: Do not speculatively query Intel GP PMCs that don't exist yet + - hugetlbfs: don't delete error page from pagecache + - arm64: dts: qcom: sa8155p-adp: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8150-xperia-kumano: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8250-xperia-edo: Specify which LDO modes are allowed + - arm64: dts: qcom: sm8350-hdk: Specify which LDO modes are allowed + - spi: stm32: Print summary 'callbacks suppressed' message + - ARM: dts: at91: sama7g5: fix signal name of pin PB2 + - ASoC: core: Fix use-after-free in snd_soc_exit() + - ASoC: tas2770: Fix set_tdm_slot in case of single slot + - ASoC: tas2764: Fix set_tdm_slot in case of single slot + - ARM: at91: pm: avoid soft resetting AC DLL + - serial: 8250: omap: Fix missing PM runtime calls for omap8250_set_mctrl() + - serial: 8250_omap: remove wait loop from Errata i202 workaround + - serial: 8250: omap: Fix unpaired pm_runtime_put_sync() in omap8250_remove() + - serial: 8250: omap: Flush PM QOS work on remove + - serial: imx: Add missing .thaw_noirq hook + - tty: n_gsm: fix sleep-in-atomic-context bug in gsm_control_send + - bpf, test_run: Fix alignment problem in bpf_prog_test_run_skb() + - ASoC: soc-utils: Remove __exit for snd_soc_util_exit() + - pinctrl: rockchip: list all pins in a possible mux route for PX30 + - scsi: scsi_transport_sas: Fix error handling in sas_phy_add() + - block: sed-opal: kmalloc the cmd/resp buffers + - bpf: Fix memory leaks in __check_func_call + - arm64: Fix bit-shifting UB in the MIDR_CPU_MODEL() macro + - siox: fix possible memory leak in siox_device_add() + - parport_pc: Avoid FIFO port location truncation + - pinctrl: devicetree: fix null pointer dereferencing in pinctrl_dt_to_map + - drm/vc4: kms: Fix IS_ERR() vs NULL check for vc4_kms + - drm/panel: simple: set bpc field for logic technologies displays + - drm/drv: Fix potential memory leak in drm_dev_init() + - drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() + - arm64: dts: imx8mm: Fix NAND controller size-cells + - arm64: dts: imx8mn: Fix NAND controller size-cells + - ata: libata-transport: fix double ata_host_put() in ata_tport_add() + - ata: libata-transport: fix error handling in ata_tport_add() + - ata: libata-transport: fix error handling in ata_tlink_add() + - ata: libata-transport: fix error handling in ata_tdev_add() + - nfp: change eeprom length to max length enumerators + - MIPS: fix duplicate definitions for exported symbols + - MIPS: Loongson64: Add WARN_ON on kexec related kmalloc failed + - bpf: Initialize same number of free nodes for each pcpu_freelist + - net: bgmac: Drop free_netdev() from bgmac_enet_remove() + - mISDN: fix possible memory leak in mISDN_dsp_element_register() + - net: hinic: Fix error handling in hinic_module_init() + - net: stmmac: ensure tx function is not running in stmmac_xdp_release() + - soc: imx8m: Enable OCOTP clock before reading the register + - net: liquidio: release resources when liquidio driver open failed + - mISDN: fix misuse of put_device() in mISDN_register_device() + - net: macvlan: Use built-in RCU list checking + - net: caif: fix double disconnect client in chnl_net_open() + - bnxt_en: Remove debugfs when pci_register_driver failed + - net: mhi: Fix memory leak in mhi_net_dellink() + - net: dsa: make dsa_master_ioctl() see through port_hwtstamp_get() shims + - xen/pcpu: fix possible memory leak in register_pcpu() + - net: ionic: Fix error handling in ionic_init_module() + - net: ena: Fix error handling in ena_init() + - net: hns3: fix setting incorrect phy link ksettings for firmware in + resetting process + - bridge: switchdev: Fix memory leaks when changing VLAN protocol + - drbd: use after free in drbd_create_device() + - platform/x86/intel: pmc: Don't unconditionally attach Intel PMC when + virtualized + - platform/surface: aggregator: Do not check for repeated unsequenced packets + - cifs: add check for returning value of SMB2_close_init + - net: ag71xx: call phylink_disconnect_phy if ag71xx_hw_enable() fail in + ag71xx_open() + - net/x25: Fix skb leak in x25_lapb_receive_frame() + - cifs: Fix wrong return value checking when GETFLAGS + - net: microchip: sparx5: Fix potential null-ptr-deref in sparx_stats_init() + and sparx5_start() + - net: thunderbolt: Fix error handling in tbnet_init() + - cifs: add check for returning value of SMB2_set_info_init + - ftrace: Fix the possible incorrect kernel message + - ftrace: Optimize the allocation for mcount entries + - ftrace: Fix null pointer dereference in ftrace_add_mod() + - ring_buffer: Do not deactivate non-existant pages + - tracing: Fix memory leak in tracing_read_pipe() + - tracing/ring-buffer: Have polling block on watermark + - tracing: Fix memory leak in test_gen_synth_cmd() and + test_empty_synth_event() + - tracing: Fix wild-memory-access in register_synth_event() + - tracing: Fix race where eprobes can be called before the event + - tracing: kprobe: Fix potential null-ptr-deref on trace_event_file in + kprobe_event_gen_test_exit() + - tracing: kprobe: Fix potential null-ptr-deref on trace_array in + kprobe_event_gen_test_exit() + - drm/amd/display: Add HUBP surface flip interrupt handler + - ALSA: usb-audio: Drop snd_BUG_ON() from snd_usbmidi_output_open() + - ALSA: hda/realtek: fix speakers for Samsung Galaxy Book Pro + - ALSA: hda/realtek: Fix the speaker output on Samsung Galaxy Book Pro 360 + - Revert "usb: dwc3: disable USB core PHY management" + - slimbus: qcom-ngd: Fix build error when CONFIG_SLIM_QCOM_NGD_CTRL=y && + CONFIG_QCOM_RPROC_COMMON=m + - slimbus: stream: correct presence rate frequencies + - speakup: fix a segfault caused by switching consoles + - USB: bcma: Make GPIO explicitly optional + - USB: serial: option: add Sierra Wireless EM9191 + - USB: serial: option: remove old LARA-R6 PID + - USB: serial: option: add u-blox LARA-R6 00B modem + - USB: serial: option: add u-blox LARA-L6 modem + - USB: serial: option: add Fibocom FM160 0x0111 composition + - usb: add NO_LPM quirk for Realforce 87U Keyboard + - usb: chipidea: fix deadlock in ci_otg_del_timer + - usb: cdns3: host: fix endless superspeed hub port reset + - usb: typec: mux: Enter safe mode only when pins need to be reconfigured + - iio: adc: at91_adc: fix possible memory leak in at91_adc_allocate_trigger() + - iio: trigger: sysfs: fix possible memory leak in iio_sysfs_trig_init() + - iio: adc: mp2629: fix wrong comparison of channel + - iio: adc: mp2629: fix potential array out of bound access + - iio: pressure: ms5611: changed hardcoded SPI speed to value limited + - dm ioctl: fix misbehavior if list_versions races with module loading + - serial: 8250: Fall back to non-DMA Rx if IIR_RDI occurs + - serial: 8250: Flush DMA Rx on RLSI + - serial: 8250_lpss: Configure DMA also w/o DMA filter + - Input: iforce - invert valid length check when fetching device IDs + - maccess: Fix writing offset in case of fault in + strncpy_from_kernel_nofault() + - net: phy: marvell: add sleep time after enabling the loopback bit + - scsi: zfcp: Fix double free of FSF request when qdio send fails + - iommu/vt-d: Preset Access bit for IOVA in FL non-leaf paging entries + - iommu/vt-d: Set SRE bit only when hardware has SRS cap + - firmware: coreboot: Register bus in module init + - mmc: core: properly select voltage range without power cycle + - mmc: sdhci-pci-o2micro: fix card detect fail issue caused by CD# debounce + timeout + - mmc: sdhci-pci: Fix possible memory leak caused by missing pci_dev_put() + - docs: update mediator contact information in CoC doc + - misc/vmw_vmci: fix an infoleak in vmci_host_do_receive_datagram() + - perf/x86/intel/pt: Fix sampling using single range output + - nvme: restrict management ioctls to admin + - nvme: ensure subsystem reset is single threaded + - serial: 8250_lpss: Use 16B DMA burst with Elkhart Lake + - perf: Improve missing SIGTRAP checking + - ring-buffer: Include dropped pages in counting dirty patches + - tracing: Fix warning on variable 'struct trace_array' + - net: use struct_group to copy ip/ipv6 header addresses + - scsi: target: tcm_loop: Fix possible name leak in tcm_loop_setup_hba_bus() + - scsi: scsi_debug: Fix possible UAF in sdebug_add_host_helper() + - kprobes: Skip clearing aggrprobe's post_handler in kprobe-on-ftrace case + - Input: i8042 - fix leaking of platform device on module removal + - macvlan: enforce a consistent minimal mtu + - tcp: cdg: allow tcp_cdg_release() to be called multiple times + - kcm: avoid potential race in kcm_tx_work + - kcm: close race conditions on sk_receive_queue + - 9p: trans_fd/p9_conn_cancel: drop client lock earlier + - gfs2: Check sb_bsize_shift after reading superblock + - gfs2: Switch from strlcpy to strscpy + - 9p/trans_fd: always use O_NONBLOCK read/write + - wifi: wext: use flex array destination for memcpy() + - mm: fs: initialize fsdata passed to write_begin/write_end interface + - net/9p: use a dedicated spinlock for trans_fd + - ntfs: fix use-after-free in ntfs_attr_find() + - ntfs: fix out-of-bounds read in ntfs_attr_find() + - ntfs: check overflow when iterating ATTR_RECORDs + - drm/msm/gpu: Fix crash during system suspend after unbind + - spi: tegra210-quad: Fix combined sequence + - ASoC: rt5682s: Fix the TDM Tx settings + - selftests/kexec: fix build for ARCH=x86_64 + - ASoC: Intel: sof_rt5682: Add quirk for Rex board + - ASoC: amd: yc: Adding Lenovo ThinkBook 14 Gen 4+ ARA and Lenovo ThinkBook 16 + Gen 4+ ARA to the Quirks List + - ASoC: amd: yc: Add Lenovo Thinkbook 14+ 2022 21D0 to quirks table + - drm/amdgpu: Adjust MES polling timeout for sriov + - platform/x86: thinkpad_acpi: Fix reporting a non present second fan on some + models + - drm/scheduler: fix fence ref counting + - cxl/mbox: Add a check on input payload size + - SUNRPC: Fix crasher in gss_unwrap_resp_integ() + - drm/rockchip: vop2: fix null pointer in plane_atomic_disable + - drm/rockchip: vop2: disable planes when disabling the crtc + - ksefltests: pidfd: Fix wait_states: Test terminated by timeout + - powerpc/64e: Fix amdgpu build on Book3E w/o AltiVec + - block: blk_add_rq_to_plug(): clear stale 'last' after flush + - firmware: arm_scmi: Make tx_prepare time out eventually + - drm/amd/display: Ignore Cable ID Feature + - drm/amdgpu: set fb_modifiers_not_supported in vkms + - drm/amd: Fail the suspend if resources can't be evicted + - cxl/pmem: Use size_add() against integer overflow + - tools/testing/cxl: Fix some error exits + - arm64/mm: fold check for KFENCE into can_set_direct_map() + - arm64: fix rodata=full again + - KVM: SVM: remove dead field from struct svm_cpu_data + - KVM: SVM: do not allocate struct svm_cpu_data dynamically + - KVM: SVM: restore host save area from assembly + - KVM: SVM: move MSR_IA32_SPEC_CTRL save/restore to assembly + - arm64: dts: qcom: sc7280: Add the reset reg for lpass audiocc on SC7280 + - ASoC: fsl_asrc fsl_esai fsl_sai: allow CONFIG_PM=N + - arm64: dts: qcom: sm8250: Disable the not yet supported cluster idle state + - tty: serial: fsl_lpuart: don't break the on-going transfer when global reset + - bnxt_en: refactor bnxt_cancel_reservations() + - bnxt_en: fix the handling of PCIE-AER + - mtd: onenand: omap2: add dependency on GPMC + - sctp: remove the unnecessary sinfo_stream check in sctp_prsctp_prune_unsent + - sctp: clear out_curr if all frag chunks of current msg are pruned + - erofs: clean up .read_folio() and .readahead() in fscache mode + - io_uring: calculate CQEs from the user visible value + - pinctrl: mediatek: common-v2: Fix bias-disable for PULL_PU_PD_RSEL_TYPE + - selftests/bpf: Fix test_progs compilation failure in 32-bit arch + - arm64: dts: imx8mm-tqma8mqml-mba8mx: Fix USB DR + - cifs: Fix connections leak when tlink setup failed + - ata: libata-core: do not issue non-internal commands once EH is pending + - net: phy: dp83867: Fix SGMII FIFO depth for non OF devices + - mctp i2c: don't count unused / invalid keys for flow release + - octeon_ep: delete unnecessary napi rollback under set_queues_err in + octep_open() + - octeon_ep: ensure octep_get_link_status() successfully before + octep_link_up() + - octeon_ep: fix potential memory leak in octep_device_setup() + - octeon_ep: ensure get mac address successfully before eth_hw_addr_set() + - erofs: fix missing xas_retry() in fscache mode + - mlxsw: Avoid warnings when not offloaded FDB entry with IPv6 is removed + - net: hns3: fix incorrect hw rss hash type of rx packet + - net: hns3: fix return value check bug of rx copybreak + - netfs: Fix missing xas_retry() calls in xarray iteration + - netfs: Fix dodgy maths + - net: dsa: don't leak tagger-owned storage on switch driver unbind + - net: lan966x: Fix potential null-ptr-deref in lan966x_stats_init() + - s390: avoid using global register for current_stack_pointer + - netdevsim: Fix memory leak of nsim_dev->fa_cookie + - rethook: fix a potential memleak in rethook_alloc() + - drm/amd/pm: fix SMU13 runpm hang due to unintentional workaround + - drm/display: Don't assume dual mode adaptors support i2c sub-addressing + - drm/amd/display: Fix invalid DPIA AUX reply causing system hang + - drm/amd/display: Fix access timeout to DPIA AUX at boot time + - drm/amd/display: Support parsing VRAM info v3.0 from VBIOS + - usb: dwc3: Do not get extcon device when usb-role-switch is used + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Micron Nitro + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Netac NV7000 + - usb: typec: tipd: Prevent uninitialized event{1,2} in IRQ handler + - iio: accel: bma400: Ensure VDDIO is enable defore reading the chip ID. + - iio: pressure: ms5611: fixed value compensation bug + - ceph: avoid putting the realm twice when decoding snaps fails + - s390/dcssblk: fix deadlock when adding a DCSS + - blk-cgroup: properly pin the parent in blkcg_css_online + - x86/fpu: Drop fpregs lock before inheriting FPU permissions + - ASoC: SOF: topology: No need to assign core ID if token parsing failed + - perf/x86/amd: Fix crash due to race between amd_pmu_enable_all, perf NMI and + throttling + - net: usb: smsc95xx: fix external PHY reset + - tracing: Fix potential null-pointer-access of entry in list 'tr->err_log' + - arm64/mm: fix incorrect file_map_count for non-leaf pmd/pud + - KVM: x86/xen: Fix eventfd error handling in kvm_xen_eventfd_assign() + - netlink: Bounds-check struct nlmsgerr creation + - bpf: Prevent bpf program recursion for raw tracepoint probes + + * Fix RPL-S support on powercap/intel_rapl (LP: #1990161) + - powercap: intel_rapl: Add support for RAPTORLAKE_P + - powercap: intel_rapl: Add support for RAPTORLAKE_S + + * Kinetic update: upstream stable patchset 2023-01-04 (LP: #2001726) + - drm/amdkfd: handle CPU fault on COW mapping + - drm/amdkfd: Fix NULL pointer dereference in svm_migrate_to_ram() + - hwspinlock: qcom: correct MMIO max register for newer SoCs + - phy: stm32: fix an error code in probe + - wifi: cfg80211: silence a sparse RCU warning + - wifi: cfg80211: fix memory leak in query_regdb_file() + - soundwire: qcom: reinit broadcast completion + - soundwire: qcom: check for outanding writes before doing a read + - bpf, verifier: Fix memory leak in array reallocation for stack state + - bpf, sockmap: Fix the sk->sk_forward_alloc warning of sk_stream_kill_queues + - wifi: mac80211: Set TWT Information Frame Disabled bit as 1 + - bpftool: Fix NULL pointer dereference when pin {PROG, MAP, LINK} without + FILE + - HID: hyperv: fix possible memory leak in mousevsc_probe() + - bpf, sockmap: Fix sk->sk_forward_alloc warn_on in sk_stream_kill_queues + - bpf: Fix sockmap calling sleepable function in teardown path + - bpf, sock_map: Move cancel_work_sync() out of sock lock + - bpf: Add helper macro bpf_for_each_reg_in_vstate + - bpf: Fix wrong reg type conversion in release_reference() + - net: gso: fix panic on frag_list with mixed head alloc types + - macsec: delete new rxsc when offload fails + - macsec: fix secy->n_rx_sc accounting + - macsec: fix detection of RXSCs when toggling offloading + - macsec: clear encryption keys from the stack after setting up offload + - octeontx2-pf: NIX TX overwrites SQ_CTX_HW_S[SQ_INT] + - net: tun: Fix memory leaks of napi_get_frags + - bnxt_en: Fix possible crash in bnxt_hwrm_set_coal() + - bnxt_en: fix potentially incorrect return value for ndo_rx_flow_steer + - net: fman: Unregister ethernet device on removal + - capabilities: fix undefined behavior in bit shift for CAP_TO_MASK + - phy: ralink: mt7621-pci: add sentinel to quirks table + - KVM: s390: pv: don't allow userspace to set the clock under PV + - net: lapbether: fix issue of dev reference count leakage in + lapbeth_device_event() + - hamradio: fix issue of dev reference count leakage in bpq_device_event() + - net: wwan: iosm: fix memory leak in ipc_wwan_dellink + - net: wwan: mhi: fix memory leak in mhi_mbim_dellink + - drm/vc4: Fix missing platform_unregister_drivers() call in + vc4_drm_register() + - tcp: prohibit TCP_REPAIR_OPTIONS if data was already sent + - ipv6: addrlabel: fix infoleak when sending struct ifaddrlblmsg to network + - can: af_can: fix NULL pointer dereference in can_rx_register() + - net: stmmac: dwmac-meson8b: fix meson8b_devm_clk_prepare_enable() + - net: broadcom: Fix BCMGENET Kconfig + - tipc: fix the msg->req tlv len check in + tipc_nl_compat_name_table_dump_header + - dmaengine: pxa_dma: use platform_get_irq_optional + - dmaengine: mv_xor_v2: Fix a resource leak in mv_xor_v2_remove() + - dmaengine: ti: k3-udma-glue: fix memory leak when register device fail + - net: lapbether: fix issue of invalid opcode in lapbeth_open() + - drivers: net: xgene: disable napi when register irq failed in + xgene_enet_open() + - perf stat: Fix printing os->prefix in CSV metrics output + - perf tools: Add the include/perf/ directory to .gitignore + - netfilter: nfnetlink: fix potential dead lock in nfnetlink_rcv_msg() + - netfilter: Cleanup nft_net->module_list from nf_tables_exit_net() + - net: marvell: prestera: fix memory leak in prestera_rxtx_switch_init() + - net: nixge: disable napi when enable interrupts failed in nixge_open() + - net: wwan: iosm: fix memory leak in ipc_pcie_read_bios_cfg + - net/mlx5: Bridge, verify LAG state when adding bond to bridge + - net/mlx5: Allow async trigger completion execution on single CPU systems + - net/mlx5e: E-Switch, Fix comparing termination table instance + - net: cpsw: disable napi in cpsw_ndo_open() + - net: cxgb3_main: disable napi when bind qsets failed in cxgb_up() + - stmmac: intel: Update PCH PTP clock rate from 200MHz to 204.8MHz + - mctp: Fix an error handling path in mctp_init() + - cxgb4vf: shut down the adapter when t4vf_update_port_info() failed in + cxgb4vf_open() + - stmmac: dwmac-loongson: fix missing pci_disable_msi() while module exiting + - stmmac: dwmac-loongson: fix missing pci_disable_device() in + loongson_dwmac_probe() + - stmmac: dwmac-loongson: fix missing of_node_put() while module exiting + - net: phy: mscc: macsec: clear encryption keys when freeing a flow + - net: atlantic: macsec: clear encryption keys from the stack + - ethernet: s2io: disable napi when start nic failed in s2io_card_up() + - net: mv643xx_eth: disable napi when init rxq or txq failed in + mv643xx_eth_open() + - ethernet: tundra: free irq when alloc ring failed in tsi108_open() + - net: macvlan: fix memory leaks of macvlan_common_newlink + - riscv: process: fix kernel info leakage + - riscv: vdso: fix build with llvm + - riscv: fix reserved memory setup + - arm64: efi: Fix handling of misaligned runtime regions and drop warning + - MIPS: jump_label: Fix compat branch range check + - mmc: cqhci: Provide helper for resetting both SDHCI and CQHCI + - mmc: sdhci-of-arasan: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci_am654: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci-tegra: Fix SDHCI_RESET_ALL for CQHCI + - mmc: sdhci-esdhc-imx: use the correct host caps for MMC_CAP_8_BIT_DATA + - ALSA: hda/hdmi - enable runtime pm for more AMD display audio + - ALSA: hda/ca0132: add quirk for EVGA Z390 DARK + - ALSA: hda: fix potential memleak in 'add_widget_node' + - ALSA: hda/realtek: Add Positivo C6300 model quirk + - ALSA: usb-audio: Yet more regression for for the delayed card registration + - ALSA: usb-audio: Add quirk entry for M-Audio Micro + - ALSA: usb-audio: Add DSD support for Accuphase DAC-60 + - vmlinux.lds.h: Fix placement of '.data..decrypted' section + - ata: libata-scsi: fix SYNCHRONIZE CACHE (16) command failure + - nilfs2: fix deadlock in nilfs_count_free_blocks() + - nilfs2: fix use-after-free bug of ns_writer on remount + - drm/i915/dmabuf: fix sg_table handling in map_dma_buf + - drm/amdgpu: disable BACO on special BEIGE_GOBY card + - btrfs: fix match incorrectly in dev_args_match_device + - btrfs: selftests: fix wrong error check in btrfs_free_dummy_root() + - btrfs: zoned: initialize device's zone info for seeding + - mms: sdhci-esdhc-imx: Fix SDHCI_RESET_ALL for CQHCI + - udf: Fix a slab-out-of-bounds write bug in udf_find_entry() + - mm/damon/dbgfs: check if rm_contexts input is for a real context + - mm/memremap.c: map FS_DAX device memory as decrypted + - mm/shmem: use page_mapping() to detect page cache for uffd continue + - can: j1939: j1939_send_one(): fix missing CAN header initialization + - dmaengine: at_hdmac: Fix at_lli struct definition + - dmaengine: at_hdmac: Don't start transactions at tx_submit level + - dmaengine: at_hdmac: Start transfer for cyclic channels in issue_pending + - dmaengine: at_hdmac: Fix premature completion of desc in issue_pending + - dmaengine: at_hdmac: Do not call the complete callback on + device_terminate_all + - dmaengine: at_hdmac: Protect atchan->status with the channel lock + - dmaengine: at_hdmac: Fix concurrency problems by removing atc_complete_all() + - dmaengine: at_hdmac: Fix concurrency over descriptor + - dmaengine: at_hdmac: Free the memset buf without holding the chan lock + - dmaengine: at_hdmac: Fix concurrency over the active list + - dmaengine: at_hdmac: Fix descriptor handling when issuing it to hardware + - dmaengine: at_hdmac: Fix completion of unissued descriptor in case of errors + - dmaengine: at_hdmac: Don't allow CPU to reorder channel enable + - dmaengine: at_hdmac: Fix impossible condition + - dmaengine: at_hdmac: Check return code of dma_async_device_register + - drm/amdkfd: Migrate in CPU page fault use current mm + - net: tun: call napi_schedule_prep() to ensure we own a napi + - x86/cpu: Restore AMD's DE_CFG MSR after resume + - drm/i915/gvt: Add missing vfio_unregister_group_dev() call + - KVM: debugfs: Return retval of simple_attr_open() if it fails + - HID: wacom: Fix logic used for 3rd barrel switch emulation + - ALSA: arm: pxa: pxa2xx-ac97-lib: fix return value check of + platform_get_irq() + - spi: mediatek: Fix package division error + - drm/vc4: hdmi: Fix HSM clock too low on Pi4 + - PCI: hv: Fix the definition of vector in hv_compose_msi_msg() + - KVM: s390: pci: Fix allocation size of aift kzdev elements + - drm/i915/psr: Send update also on invalidate + - drm/i915: Do not set cache_dirty for DGFX + - dt-bindings: net: tsnep: Fix typo on generic nvmem property + - dmanegine: idxd: reformat opcap output to match bitmap_parse() input + - dmaengine: idxd: Fix max batch size for Intel IAA + - dmaengine: idxd: fix RO device state error after been disabled/reset + - dmaengine: stm32-dma: fix potential race between pause and resume + - net: ethernet: mtk-star-emac: disable napi when connect and start PHY failed + in mtk_star_enable() + - octeontx2-pf: Fix SQE threshold checking + - perf stat: Fix crash with --per-node --metric-only in CSV mode + - net: wwan: iosm: fix invalid mux header type + - net/mlx5e: Add missing sanity checks for max TX WQE size + - ice: Fix spurious interrupt during removal of trusted VF + - iavf: Fix VF driver counting VLAN 0 filters + - ALSA: memalloc: Don't fall back for SG-buffer with IOMMU + - eth: sp7021: drop free_netdev() from spl2sw_init_netdev() + - mmc: sdhci-brcmstb: Fix SDHCI_RESET_ALL for CQHCI + - ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41 + - drm/amdgpu: workaround for TLB seq race + - drm/amdkfd: Fix error handling in criu_checkpoint + - drm/amdkfd: Fix error handling in kfd_criu_restore_events + - btrfs: zoned: clone zoned device info when cloning a device + - net: ethernet: ti: am65-cpsw: Fix segmentation fault at module unload + - spi: intel: Use correct mask for flash and protected regions + - dmaengine: idxd: Do not enable user type Work Queue without Shared Virtual + Addressing + - can: isotp: fix tx state handling for echo tx processing + - can: rcar_canfd: Add missing ECC error checks for channels 2-7 + - KVM: x86: use a separate asm-offsets.c file + - KVM: SVM: replace regs argument of __svm_vcpu_run() with vcpu_svm + - KVM: SVM: adjust register allocation for __svm_vcpu_run() + - KVM: SVM: retrieve VMCB from assembly + - KVM: SVM: move guest vmsave/vmload back to assembly + + * AMD Rembrandt: DP tunneling fails with Thunderbolt monitors + (LP: #1983143) // Kinetic update: upstream stable patchset 2023-01-04 + (LP: #2001726) + - thunderbolt: Add DP OUT resource when DP tunnel is discovered + + * CVE-2022-47520 + - wifi: wilc1000: validate pairwise and authentication suite offsets + + * CVE-2022-3545 + - nfp: fix use-after-free in area_cache_get() + + -- Stefan Bader Wed, 01 Feb 2023 14:55:40 +0100 + +linux (5.19.0-31.32) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-31.32 -proposed tracker (LP: #2003423) + + * amdgpu: framebuffer is destroyed and the screen freezes with unsupported IP + blocks (LP: #2003524) + - drm/amd: Delay removal of the firmware framebuffer + + * Revoke & rotate to new signing key (LP: #2002812) + - [Packaging] Revoke and rotate to new signing key + + -- Stefan Bader Fri, 20 Jan 2023 14:57:58 +0100 + +linux (5.19.0-30.31) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-30.31 -proposed tracker (LP: #2001756) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - debian/dkms-versions -- update from kernel-versions (main/2023.01.02) + + * Add some ACPI device IDs for Intel HID device (LP: #1995453) + - platform/x86/intel/hid: Add some ACPI device IDs + + * Fix iosm: WWAN cannot build the connection (DW5823e) (LP: #1998115) + - net: wwan: iosm: fix driver not working with INTEL_IOMMU disabled + - [Config] CONFIG_IOSM update annotations on arm64 armhf ppc64el s390x riscv64 + + * BPF_[AND|OR|XOR|FETCH|XCHG|CMPXCHG] in net:test_bpf.sh from + ubuntu_kernel_selftests failed on K-5.19 P9 (LP: #2001618) + - powerpc/bpf/64: add support for BPF_ATOMIC bitwise operations + - powerpc/bpf/64: add support for atomic fetch operations + - powerpc/bpf/64: Add instructions for atomic_[cmp]xchg + + * [DEP-8] Run ADT regression suite for lowlatency kernels Jammy and later + (LP: #1999528) + - [DEP-8] Fix regression suite to run on lowlatency + + * Kinetic update: upstream stable patchset 2022-12-15 (LP: #1999828) + - serial: ar933x: Deassert Transmit Enable on ->rs485_config() + - KVM: x86: Trace re-injected exceptions + - RDMA/cma: Use output interface for net_dev check + - IB/hfi1: Correctly move list in sc_disable() + - RDMA/hns: Disable local invalidate operation + - NFSv4: Fix a potential state reclaim deadlock + - NFSv4.1: Handle RECLAIM_COMPLETE trunking errors + - NFSv4.1: We must always send RECLAIM_COMPLETE after a reboot + - SUNRPC: Fix null-ptr-deref when xps sysfs alloc failed + - NFSv4.2: Fixup CLONE dest file size for zero-length count + - nfs4: Fix kmemleak when allocate slot failed + - net: dsa: Fix possible memory leaks in dsa_loop_init() + - RDMA/core: Fix null-ptr-deref in ib_core_cleanup() + - RDMA/qedr: clean up work queue on failure in qedr_alloc_resources() + - net: dsa: fall back to default tagger if we can't load the one from DT + - nfc: fdp: Fix potential memory leak in fdp_nci_send() + - nfc: nxp-nci: Fix potential memory leak in nxp_nci_send() + - nfc: s3fwrn5: Fix potential memory leak in s3fwrn5_nci_send() + - nfc: nfcmrvl: Fix potential memory leak in nfcmrvl_i2c_nci_send() + - net: fec: fix improper use of NETDEV_TX_BUSY + - ata: pata_legacy: fix pdc20230_set_piomode() + - net: sched: Fix use after free in red_enqueue() + - net: tun: fix bugs for oversize packet when napi frags enabled + - netfilter: nf_tables: netlink notifier might race to release objects + - netfilter: nf_tables: release flow rule object from commit path + - ipvs: use explicitly signed chars + - ipvs: fix WARNING in __ip_vs_cleanup_batch() + - ipvs: fix WARNING in ip_vs_app_net_cleanup() + - rose: Fix NULL pointer dereference in rose_send_frame() + - mISDN: fix possible memory leak in mISDN_register_device() + - isdn: mISDN: netjet: fix wrong check of device registration + - btrfs: fix inode list leak during backref walking at resolve_indirect_refs() + - btrfs: fix inode list leak during backref walking at find_parent_nodes() + - btrfs: fix ulist leaks in error paths of qgroup self tests + - netfilter: ipset: enforce documented limit to prevent allocating huge memory + - Bluetooth: virtio_bt: Use skb_put to set length + - Bluetooth: L2CAP: fix use-after-free in l2cap_conn_del() + - Bluetooth: L2CAP: Fix memory leak in vhci_write + - net: mdio: fix undefined behavior in bit shift for __mdiobus_register + - ibmvnic: Free rwi on reset success + - stmmac: dwmac-loongson: fix invalid mdio_node + - net/smc: Fix possible leaked pernet namespace in smc_init() + - net, neigh: Fix null-ptr-deref in neigh_table_clear() + - ipv6: fix WARNING in ip6_route_net_exit_late() + - vsock: fix possible infinite sleep in vsock_connectible_wait_data() + - media: rkisp1: Don't pass the quantization to rkisp1_csm_config() + - media: rkisp1: Initialize color space on resizer sink and source pads + - media: rkisp1: Use correct macro for gradient registers + - media: rkisp1: Zero v4l2_subdev_format fields in when validating links + - media: s5p_cec: limit msg.len to CEC_MAX_MSG_SIZE + - media: cros-ec-cec: limit msg.len to CEC_MAX_MSG_SIZE + - media: dvb-frontends/drxk: initialize err to 0 + - media: meson: vdec: fix possible refcount leak in vdec_probe() + - media: v4l: subdev: Fail graciously when getting try data for NULL state + - ACPI: APEI: Fix integer overflow in ghes_estatus_pool_init() + - scsi: core: Restrict legal sdev_state transitions via sysfs + - HID: saitek: add madcatz variant of MMO7 mouse device ID + - drm/amdgpu: set vm_update_mode=0 as default for Sienna Cichlid in SRIOV case + - i2c: xiic: Add platform module alias + - efi/tpm: Pass correct address to memblock_reserve + - clk: qcom: Update the force mem core bit for GPU clocks + - ARM: dts: imx6qdl-gw59{10,13}: fix user pushbutton GPIO offset + - arm64: dts: imx8: correct clock order + - arm64: dts: lx2160a: specify clock frequencies for the MDIO controllers + - arm64: dts: ls1088a: specify clock frequencies for the MDIO controllers + - arm64: dts: ls208xa: specify clock frequencies for the MDIO controllers + - block: Fix possible memory leak for rq_wb on add_disk failure + - firmware: arm_scmi: Suppress the driver's bind attributes + - firmware: arm_scmi: Make Rx chan_setup fail on memory errors + - firmware: arm_scmi: Fix devres allocation device in virtio transport + - arm64: dts: juno: Add thermal critical trip points + - i2c: piix4: Fix adapter not be removed in piix4_remove() + - Bluetooth: L2CAP: Fix attempting to access uninitialized memory + - fscrypt: stop using keyrings subsystem for fscrypt_master_key + - fscrypt: fix keyring memory leak on mount failure + - btrfs: fix lost file sync on direct IO write with nowait and dsync iocb + - btrfs: fix tree mod log mishandling of reallocated nodes + - btrfs: fix type of parameter generation in btrfs_get_dentry + - ftrace: Fix use-after-free for dynamic ftrace_ops + - tracing: kprobe: Fix memory leak in test_gen_kprobe/kretprobe_cmd() + - kprobe: reverse kp->flags when arm_kprobe failed + - ring-buffer: Check for NULL cpu_buffer in ring_buffer_wake_waiters() + - tools/nolibc/string: Fix memcmp() implementation + - tracing/histogram: Update document for KEYS_MAX size + - capabilities: fix potential memleak on error path from vfs_getxattr_alloc() + - fuse: add file_modified() to fallocate + - efi: random: reduce seed size to 32 bytes + - efi: random: Use 'ACPI reclaim' memory for random seed + - arm64: entry: avoid kprobe recursion + - perf/x86/intel: Fix pebs event constraints for ICL + - perf/x86/intel: Add Cooper Lake stepping to isolation_ucodes[] + - perf/x86/intel: Fix pebs event constraints for SPR + - parisc: Make 8250_gsc driver dependend on CONFIG_PARISC + - parisc: Export iosapic_serial_irq() symbol for serial port driver + - parisc: Avoid printing the hardware path twice + - ext4: fix warning in 'ext4_da_release_space' + - ext4: fix BUG_ON() when directory entry has invalid rec_len + - x86/syscall: Include asm/ptrace.h in syscall_wrapper header + - KVM: x86: Mask off reserved bits in CPUID.80000006H + - KVM: x86: Mask off reserved bits in CPUID.8000001AH + - KVM: x86: Mask off reserved bits in CPUID.80000008H + - KVM: x86: Mask off reserved bits in CPUID.80000001H + - KVM: x86: Mask off reserved bits in CPUID.8000001FH + - KVM: VMX: fully disable SGX if SECONDARY_EXEC_ENCLS_EXITING unavailable + - KVM: arm64: Fix bad dereference on MTE-enabled systems + - KVM: x86: emulator: em_sysexit should update ctxt->mode + - KVM: x86: emulator: introduce emulator_recalc_and_set_mode + - KVM: x86: emulator: update the emulation mode after rsm + - KVM: x86: emulator: update the emulation mode after CR0 write + - tee: Fix tee_shm_register() for kernel TEE drivers + - ext4,f2fs: fix readahead of verity data + - cifs: fix regression in very old smb1 mounts + - drm/rockchip: dsi: Clean up 'usage_mode' when failing to attach + - drm/rockchip: dsi: Force synchronous probe + - drm/i915/sdvo: Filter out invalid outputs more sensibly + - drm/i915/sdvo: Setup DDC fully before output init + - wifi: brcmfmac: Fix potential buffer overflow in brcmf_fweh_event_worker() + - usb: dwc3: gadget: Don't delay End Transfer on delayed_status + - RDMA/hns: Fix NULL pointer problem in free_mr_init() + - docs/process/howto: Replace C89 with C11 + - RDMA/rxe: Fix mr leak in RESPST_ERR_RNR + - tools/nolibc: Fix missing strlen() definition and infinite loop with gcc-12 + - ata: palmld: fix return value check in palmld_pata_probe() + - net: lan966x: Fix the MTU calculation + - net: lan966x: Adjust maximum frame size when vlan is enabled/disabled + - net: lan966x: Fix FDMA when MTU is changed + - net: lan966x: Fix unmapping of received frames using FDMA + - bridge: Fix flushing of dynamic FDB entries + - iio: adc: stm32-adc: fix channel sampling time init + - drm/vc4: hdmi: Check the HSM rate at runtime_resume + - hwrng: bcm2835 - use hwrng_msleep() instead of cpu_relax() + - drm/amdkfd: Fix type of reset_type parameter in hqd_destroy() callback + - drm/amdgpu: Program GC registers through RLCG interface in gfx_v11/gmc_v11 + - nvme-pci: disable write zeroes on various Kingston SSD + - bio: safeguard REQ_ALLOC_CACHE bio put + - clk: rs9: Fix I2C accessors + - arm64: dts: imx8mm: Enable CPLD_Dn pull down resistor on MX8Menlo + - clk: renesas: r8a779g0: Fix HSCIF parent clocks + - arm64: dts: verdin-imx8mp: fix ctrl_sleep_moci + - arm64: dts: imx8mm: remove otg1/2 power domain dependency on hsio + - arm64: dts: imx8mm: correct usb power domains + - arm64: dts: imx8mn: remove otg1 power domain dependency on hsio + - arm64: dts: imx8mn: Correct the usb power domain + - drm/rockchip: dw_hdmi: filter regulator -EPROBE_DEFER error messages + - drm/rockchip: fix fbdev on non-IOMMU devices + - drm/i915: stop abusing swiotlb_max_segment + - blk-mq: Fix kmemleak in blk_mq_init_allocated_queue + - firmware: arm_scmi: Fix deferred_tx_wq release on error paths + - clk: renesas: r8a779g0: Add SASYNCPER clocks + - btrfs: fix a memory allocation failure test in btrfs_submit_direct + - ACPI: NUMA: Add CXL CFMWS 'nodes' to the possible nodes set + - tracing/fprobe: Fix to check whether fprobe is registered correctly + - fprobe: Check rethook_alloc() return in rethook initialization + - fuse: fix readdir cache race + - net/ulp: remove SOCK_SUPPORT_ZC from tls sockets + - ARM: dts: imx6dl-yapp4: Do not allow PM to switch PU regulator off on Q/QP + - net: remove SOCK_SUPPORT_ZC from sockmap + - net: also flag accepted sockets supporting msghdr originated zerocopy + - ext4: update the backup superblock's at the end of the online resize + - x86/tdx: Prepare for using "INFO" call for a second purpose + - x86/tdx: Panic on bad configs that #VE on "private" memory access + - KVM: VMX: Fold vmx_supported_debugctl() into vcpu_supported_debugctl() + - KVM: VMX: Ignore guest CPUID for host userspace writes to DEBUGCTL + - KVM: Initialize gfn_to_pfn_cache locks in dedicated helper + - KVM: Reject attempts to consume or refresh inactive gfn_to_pfn_cache + - KVM: arm64: Fix SMPRI_EL1/TPIDR2_EL0 trapping on VHE + - drm/amdgpu: disable GFXOFF during compute for GFX11 + + * Kinetic update: upstream stable patchset 2022-12-07 (LP: #1999079) + - can: j1939: transport: j1939_session_skb_drop_old(): + spin_unlock_irqrestore() before kfree_skb() + - can: kvaser_usb: Fix possible completions during init_completion + - ALSA: Use del_timer_sync() before freeing timer + - ALSA: usb-audio: Add quirks for M-Audio Fast Track C400/600 + - ALSA: au88x0: use explicitly signed char + - ALSA: rme9652: use explicitly signed char + - USB: add RESET_RESUME quirk for NVIDIA Jetson devices in RCM + - usb: gadget: uvc: fix sg handling in error case + - usb: gadget: uvc: fix sg handling during video encode + - usb: dwc3: gadget: Stop processing more requests on IMI + - usb: dwc3: gadget: Don't set IMI for no_interrupt + - usb: bdc: change state when port disconnected + - usb: xhci: add XHCI_SPURIOUS_SUCCESS to ASM1042 despite being a V0.96 + controller + - mtd: rawnand: marvell: Use correct logic for nand-keep-config + - xhci: Add quirk to reset host back to default state at shutdown + - xhci-pci: Set runtime PM as default policy on all xHC 1.2 or later devices + - xhci: Remove device endpoints from bandwidth list when freeing the device + - tools: iio: iio_utils: fix digit calculation + - iio: light: tsl2583: Fix module unloading + - iio: temperature: ltc2983: allocate iio channels once + - iio: adxl372: Fix unsafe buffer attributes + - fbdev: smscufx: Fix several use-after-free bugs + - cpufreq: intel_pstate: Read all MSRs on the target CPU + - cpufreq: intel_pstate: hybrid: Use known scaling factor for P-cores + - fs/binfmt_elf: Fix memory leak in load_elf_binary() + - exec: Copy oldsighand->action under spin-lock + - mac802154: Fix LQI recording + - scsi: qla2xxx: Use transport-defined speed mask for supported_speeds + - drm/amdgpu: disallow gfxoff until GC IP blocks complete s2idle resume + - drm/msm/dsi: fix memory corruption with too many bridges + - drm/msm/hdmi: fix memory corruption with too many bridges + - drm/msm/dp: fix IRQ lifetime + - coresight: cti: Fix hang in cti_disable_hw() + - mmc: sdhci_am654: 'select', not 'depends' REGMAP_MMIO + - mmc: core: Fix kernel panic when remove non-standard SDIO card + - mmc: sdhci-pci-core: Disable ES for ASUS BIOS on Jasper Lake + - mmc: sdhci-esdhc-imx: Propagate ESDHC_FLAG_HS400* only on 8bit bus + - counter: microchip-tcb-capture: Handle Signal1 read and Synapse + - kernfs: fix use-after-free in __kernfs_remove + - pinctrl: Ingenic: JZ4755 bug fixes + - ARC: mm: fix leakage of memory allocated for PTE + - perf auxtrace: Fix address filter symbol name match for modules + - s390/futex: add missing EX_TABLE entry to __futex_atomic_op() + - s390/pci: add missing EX_TABLE entries to + __pcistg_mio_inuser()/__pcilg_mio_inuser() + - mmc: block: Remove error check of hw_reset on reset + - ethtool: eeprom: fix null-deref on genl_info in dump + - net: ieee802154: fix error return code in dgram_bind() + - media: v4l2: Fix v4l2_i2c_subdev_set_name function documentation + - media: atomisp: prevent integer overflow in sh_css_set_black_frame() + - drm/msm: Fix return type of mdp4_lvds_connector_mode_valid + - KVM: selftests: Fix number of pages for memory slot in + memslot_modification_stress_test + - ASoC: qcom: lpass-cpu: mark HDMI TX registers as volatile + - perf: Fix missing SIGTRAPs + - sched/core: Fix comparison in sched_group_cookie_match() + - arc: iounmap() arg is volatile + - mtd: rawnand: intel: Add missing of_node_put() in ebu_nand_probe() + - ASoC: qcom: lpass-cpu: Mark HDMI TX parity register as volatile + - ALSA: ac97: fix possible memory leak in snd_ac97_dev_register() + - perf/x86/intel/lbr: Use setup_clear_cpu_cap() instead of clear_cpu_cap() + - tipc: fix a null-ptr-deref in tipc_topsrv_accept + - net: netsec: fix error handling in netsec_register_mdio() + - net: hinic: fix incorrect assignment issue in hinic_set_interrupt_cfg() + - net: hinic: fix memory leak when reading function table + - net: hinic: fix the issue of CMDQ memory leaks + - net: hinic: fix the issue of double release MBOX callback of VF + - net: macb: Specify PHY PM management done by MAC + - nfc: virtual_ncidev: Fix memory leak in virtual_nci_send() + - x86/unwind/orc: Fix unreliable stack dump with gcov + - amd-xgbe: fix the SFP compliance codes check for DAC cables + - amd-xgbe: add the bit rate quirk for Molex cables + - drm/i915/dp: Reset frl trained flag before restarting FRL training + - atlantic: fix deadlock at aq_nic_stop + - kcm: annotate data-races around kcm->rx_psock + - kcm: annotate data-races around kcm->rx_wait + - net: fix UAF issue in nfqnl_nf_hook_drop() when ops_init() failed + - net: lantiq_etop: don't free skb when returning NETDEV_TX_BUSY + - tcp: fix a signed-integer-overflow bug in tcp_add_backlog() + - tcp: fix indefinite deferral of RTO with SACK reneging + - net-memcg: avoid stalls when under memory pressure + - drm/amdkfd: Fix memory leak in kfd_mem_dmamap_userptr() + - can: mscan: mpc5xxx: mpc5xxx_can_probe(): add missing put_clock() in error + path + - can: mcp251x: mcp251x_can_probe(): add missing unregister_candev() in error + path + - PM: hibernate: Allow hybrid sleep to work with s2idle + - media: vivid: s_fbuf: add more sanity checks + - media: vivid: dev->bitmap_cap wasn't freed in all cases + - media: v4l2-dv-timings: add sanity checks for blanking values + - media: videodev2.h: V4L2_DV_BT_BLANKING_HEIGHT should check 'interlaced' + - media: vivid: set num_in/outputs to 0 if not supported + - perf vendor events power10: Fix hv-24x7 metric events + - ipv6: ensure sane device mtu in tunnels + - i40e: Fix ethtool rx-flow-hash setting for X722 + - i40e: Fix VF hang when reset is triggered on another VF + - i40e: Fix flow-type by setting GL_HASH_INSET registers + - net: ksz884x: fix missing pci_disable_device() on error in pcidev_init() + - PM: domains: Fix handling of unavailable/disabled idle states + - perf vendor events arm64: Fix incorrect Hisi hip08 L3 metrics + - net: fec: limit register access on i.MX6UL + - net: ethernet: ave: Fix MAC to be in charge of PHY PM + - ALSA: aoa: i2sbus: fix possible memory leak in i2sbus_add_dev() + - ALSA: aoa: Fix I2S device accounting + - openvswitch: switch from WARN to pr_warn + - net: ehea: fix possible memory leak in ehea_register_port() + - net: bcmsysport: Indicate MAC is in charge of PHY PM + - nh: fix scope used to find saddr when adding non gw nh + - net: broadcom: bcm4908_enet: update TX stats after actual transmission + - netdevsim: remove dir in nsim_dev_debugfs_init() when creating ports dir + failed + - net/mlx5e: Do not increment ESN when updating IPsec ESN state + - net/mlx5e: Extend SKB room check to include PTP-SQ + - net/mlx5: Fix possible use-after-free in async command interface + - net/mlx5: Update fw fatal reporter state on PCI handlers successful recover + - net/mlx5: Fix crash during sync firmware reset + - net: do not sense pfmemalloc status in skb_append_pagefrags() + - kcm: do not sense pfmemalloc status in kcm_sendpage() + - net: enetc: survive memory pressure without crashing + - arm64: Add AMPERE1 to the Spectre-BHB affected list + - can: rcar_canfd: fix channel specific IRQ handling for RZ/G2L + - can: rcar_canfd: rcar_canfd_handle_global_receive(): fix IRQ storm on global + FIFO receive + - ALSA: hda/realtek: Add quirk for ASUS Zenbook using CS35L41 + - ALSA: hda/realtek: Add another HP ZBook G9 model quirks + - usb: gadget: uvc: limit isoc_sg to super speed gadgets + - usb: gadget: uvc: fix dropped frame after missed isoc + - usb: gadget: aspeed: Fix probe regression + - usb: dwc3: gadget: Force sending delayed status during soft disconnect + - usb: typec: ucsi: Check the connection on resume + - usb: typec: ucsi: acpi: Implement resume callback + - usb: dwc3: Don't switch OTG -> peripheral if extcon is present + - mtd: rawnand: tegra: Fix PM disable depth imbalance in probe + - mtd: parsers: bcm47xxpart: Fix halfblock reads + - iio: adxl367: Fix unsafe buffer attributes + - fbdev: stifb: Fall back to cfb_fillrect() on 32-bit HCRX cards + - drm/amdgpu: Fix VRAM BO swap issue + - drm/i915: Extend Wa_1607297627 to Alderlake-P + - drm/amdgpu: Remove ATC L2 access for MMHUB 2.1.x + - drm/amdgpu: fix pstate setting issue + - drm/amdkfd: update gfx1037 Lx cache setting + - drm/amdkfd: correct the cache info for gfx1036 + - drm/msm: fix use-after-free on probe deferral + - drm/msm/hdmi: fix IRQ lifetime + - drm/msm/dp: fix memory corruption with too many bridges + - drm/msm/dp: fix bridge lifetime + - mmc: queue: Cancel recovery work on cleanup + - mmc: core: Fix WRITE_ZEROES CQE handling + - counter: 104-quad-8: Fix race getting function mode and direction + - mm/uffd: fix vma check on userfault for wp + - mm: migrate: fix return value if all subpages of THPs are migrated + successfully + - mm,madvise,hugetlb: fix unexpected data loss with MADV_DONTNEED on hugetlbfs + - mm/huge_memory: do not clobber swp_entry_t during THP split + - s390/cio: fix out-of-bounds access on cio_ignore free + - s390/uaccess: add missing EX_TABLE entries to __clear_user() + - ACPI: PCC: Fix unintentional integer overflow + - powerpc/64s/interrupt: Fix clear of PACA_IRQS_HARD_DIS when returning to + soft-masked context + - media: amphion: release m2m ctx when releasing vpu instance + - media: ov8865: Fix an error handling path in ov8865_probe() + - media: sun6i-csi: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun4i-csi: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun8i-di: Add a Kconfig dependency on RESET_CONTROLLER + - media: sun8i-rotate: Add a Kconfig dependency on RESET_CONTROLLER + - media: cedrus: Add a Kconfig dependency on RESET_CONTROLLER + - drm/msm/a6xx: Replace kcalloc() with kvzalloc() + - drm/msm/dp: add atomic_check to bridge ops + - drm/msm/dp: cleared DP_DOWNSPREAD_CTRL register before start link training + - ASoC: codec: tlv320adc3xxx: add GPIOLIB dependency + - pinctrl: qcom: Avoid glitching lines when we first mux to output + - spi: qup: support using GPIO as chip select line + - x86/fpu: Configure init_fpstate attributes orderly + - x86/fpu: Fix the init_fpstate size check with the actual size + - x86/fpu: Exclude dynamic states from init_fpstate + - bpf: prevent decl_tag from being referenced in func_proto + - mtd: rawnand: intel: Remove unused nand_pa member from ebu_nand_cs + - mtd: rawnand: intel: Use devm_platform_ioremap_resource_byname() + - ASoC: codecs: tlv320adc3xxx: Wrap adc3xxx_i2c_remove() in __exit_p() + - spi: aspeed: Fix window offset of CE1 + - net: lan966x: Fix the rx drop counter + - x86/fpu: Fix copy_xstate_to_uabi() to copy init states correctly + - amd-xgbe: Yellow carp devices do not need rrc + - drm/i915/dgfx: Keep PCI autosuspend control 'on' by default on all dGPU + - net: lan966x: Stop replacing tx dcbs and dcbs_buf when changing MTU + - mptcp: set msk local address earlier + - netdevsim: fix memory leak in nsim_bus_dev_new() + - net/mlx5: Wait for firmware to enable CRS before pci_restore_state + - net/mlx5: DR, Fix matcher disconnect error flow + - net/mlx5e: Update restore chain id for slow path packets + - net/mlx5e: TC, Reject forwarding from internal port to internal port + - riscv: mm: add missing memcpy in kasan_init + + * Virtual GPU driver packaging regression (LP: #1996112) + - [Packaging] Reintroduce VM DRM drivers into modules + + * Fix AMD-PState driver for Genoa CPU (LP: #1998106) + - Documentation: amd-pstate: Add unit test introduction + - cpufreq: amd-pstate: cpufreq: amd-pstate: reset MSR_AMD_PERF_CTL register at + init + - cpufreq: amd-pstate: change amd-pstate driver to be built-in type + - cpufreq: amd-pstate: add amd-pstate driver parameter for mode selection + - Documentation: amd-pstate: add driver working mode introduction + - Documentation: add amd-pstate kernel command line options + + * Kinetic update: upstream stable patchset 2022-11-30 (LP: #1998398) + - clk: tegra: Fix Tegra PWM parent clock + - Revert "btrfs: call __btrfs_remove_free_space_cache_locked on cache load + failure" + - ocfs2: clear dinode links count in case of error + - ocfs2: fix BUG when iput after ocfs2_mknod fails + - selinux: enable use of both GFP_KERNEL and GFP_ATOMIC in convert_context() + - cpufreq: qcom: fix writes in read-only memory region + - i2c: qcom-cci: Fix ordering of pm_runtime_xx and i2c_add_adapter + - x86/microcode/AMD: Apply the patch early on every logical thread + - hwmon/coretemp: Handle large core ID value + - ata: ahci-imx: Fix MODULE_ALIAS + - ata: ahci: Match EM_MAX_SLOTS with SATA_PMP_MAX_PORTS + - x86/resctrl: Fix min_cbm_bits for AMD + - cpufreq: qcom: fix memory leak in error path + - drm/amdgpu: fix sdma doorbell init ordering on APUs + - mm,hugetlb: take hugetlb_lock before decrementing h->resv_huge_pages + - kvm: Add support for arch compat vm ioctls + - KVM: arm64: vgic: Fix exit condition in scan_its_table() + - media: ipu3-imgu: Fix NULL pointer dereference in active selection access + - media: mceusb: set timeout to at least timeout provided + - media: venus: dec: Handle the case where find_format fails + - x86/topology: Fix multiple packages shown on a single-package system + - x86/topology: Fix duplicated core ID within a package + - btrfs: fix processing of delayed data refs during backref walking + - btrfs: fix processing of delayed tree block refs during backref walking + - drm/vc4: Add module dependency on hdmi-codec + - ACPI: extlog: Handle multiple records + - tipc: Fix recognition of trial period + - tipc: fix an information leak in tipc_topsrv_kern_subscr + - i40e: Fix DMA mappings leak + - HID: magicmouse: Do not set BTN_MOUSE on double report + - sfc: Change VF mac via PF as first preference if available. + - net/atm: fix proc_mpc_write incorrect return value + - net: phy: dp83867: Extend RX strap quirk for SGMII mode + - net: phylink: add mac_managed_pm in phylink_config structure + - scsi: lpfc: Fix memory leak in lpfc_create_port() + - udp: Update reuse->has_conns under reuseport_lock. + - cifs: Fix xid leak in cifs_create() + - cifs: Fix xid leak in cifs_copy_file_range() + - cifs: Fix xid leak in cifs_flock() + - cifs: Fix xid leak in cifs_ses_add_channel() + - dm: remove unnecessary assignment statement in alloc_dev() + - net: hsr: avoid possible NULL deref in skb_clone() + - ionic: catch NULL pointer issue on reconfig + - netfilter: nf_tables: relax NFTA_SET_ELEM_KEY_END set flags requirements + - nvme-hwmon: consistently ignore errors from nvme_hwmon_init + - nvme-hwmon: kmalloc the NVME SMART log buffer + - nvmet: fix workqueue MEM_RECLAIM flushing dependency + - net: sched: cake: fix null pointer access issue when cake_init() fails + - net: sched: delete duplicate cleanup of backlog and qlen + - net: sched: sfb: fix null pointer access issue when sfb_init() fails + - sfc: include vport_id in filter spec hash and equal() + - wwan_hwsim: fix possible memory leak in wwan_hwsim_dev_new() + - net: hns: fix possible memory leak in hnae_ae_register() + - net: sched: fix race condition in qdisc_graft() + - net: phy: dp83822: disable MDI crossover status change interrupt + - iommu/vt-d: Allow NVS regions in arch_rmrr_sanity_check() + - iommu/vt-d: Clean up si_domain in the init_dmars() error path + - ACPI: video: Force backlight native for more TongFang devices + - x86/Kconfig: Drop check for -mabi=ms for CONFIG_EFI_STUB + - mm: /proc/pid/smaps_rollup: fix no vma's null-deref + - smb3: interface count displayed incorrectly + - cpufreq: tegra194: Fix module loading + - KVM: x86: Copy filter arg outside kvm_vm_ioctl_set_msr_filter() + - KVM: x86: Add compat handler for KVM_X86_SET_MSR_FILTER + - media: venus: Fix NV12 decoder buffer discovery on HFI_VERSION_1XX + - drm/vc4: hdmi: Enforce the minimum rate at runtime_resume + - net/smc: Fix an error code in smc_lgr_create() + - net: stmmac: Enable mac_managed_pm phylink config + - blk-mq: fix null pointer dereference in blk_mq_clear_rq_mapping() + - net: ethernet: mtk_eth_soc: fix possible memory leak in mtk_probe() + - net: ethernet: mtk_eth_wed: add missing put_device() in mtk_wed_add_hw() + - net: ethernet: mtk_eth_wed: add missing of_node_put() + - ip6mr: fix UAF issue in ip6mr_sk_done() when addrconf_init_net() failed + - cifs: Fix memory leak when build ntlmssp negotiate blob failed + - netfilter: rpfilter/fib: Populate flowic_l3mdev field + - netfilter: rpfilter/fib: Set ->flowic_uid correctly for user namespaces. + - net: Fix return value of qdisc ingress handling on success + - drbd: only clone bio if we have a backing device + - wifi: mt76: mt7921e: fix random fw download fail + + * Mediatek WLAN RZ616(MT7922) SAR table control (LP: #1997200) + - mt76: add 6 GHz band support in mt76_sar_freq_ranges + - mt76: mt7921: introduce ACPI SAR support + - mt76: mt7921: introduce ACPI SAR config in tx power + - wifi: mt76: mt7921: fix use after free in mt7921_acpi_read() + + * Kinetic update: upstream stable patchset 2022-11-14 (LP: #1996540) + - scsi: qla2xxx: Fix response queue handler reading stale packets + - Upstream stable to v5.15.74, v6.0.2 + - rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE() + - mmc: sdhci-msm: add compatible string check for sdm670 + - thermal: intel_powerclamp: Use first online CPU as control_cpu + - gcov: support GCC 12.1 and newer compilers + - io-wq: Fix memory leak in worker creation + - arm64: mte: Avoid setting PG_mte_tagged if no tags cleared or restored + - serial: Deassert Transmit Enable on probe in driver-specific way + - KVM: x86: Treat #DBs from the emulator as fault-like (code and DR7.GD=1) + - drm/amd/display: Enable dpia support for dcn314 + - drm/amdgpu: Enable F32_WPTR_POLL_ENABLE in mqd + - libbpf: Initialize err in probe_map_create + - libbpf: Fix crash if SEC("freplace") programs don't have attach_prog_fd set + - libbpf: Fix NULL pointer exception in API btf_dump__dump_type_data + - drm/vc4: drv: Call component_unbind_all() + - video/aperture: Disable and unregister sysfb devices via aperture helpers + - drm/bridge: anx7625: Fix refcount bug in anx7625_parse_dt() + - drm/i915/dg2: Bump up CDCLK for DG2 + - drm/panel: use 'select' for Ili9341 panel driver helpers + - drm: fix drm_mipi_dbi build errors + - ALSA: hda/hdmi: change type for the 'assigned' variable + - ALSA: hda/hdmi: Fix the converter allocation for the silent stream + - arm64: dts: qcom: sc7280: Cleanup the lpasscc node + - arm64: dts: qcom: sc7280: Update lpasscore node + - arm64: dts: qcom: pm8350c: Drop PWM reg declaration + - arm64: dts: qcom: sc7180-trogdor: Keep pm6150_adc enabled for TZ + - arm64: dts: qcom: sm8350-sagami: correct TS pin property + - soc/tegra: fuse: Add missing of_node_put() in tegra_init_fuse() + - arm64: dts: qcom: ipq8074: fix PCIe PHY serdes size + - arm64: dts: qcom: sm8450: fix UFS PHY serdes size + - arm64: dts: exynos: fix polarity of "enable" line of NFC chip in TM2 + - selftests/cpu-hotplug: Use return instead of exit + - selftests/cpu-hotplug: Delete fault injection related code + - selftests/cpu-hotplug: Reserve one cpu online at least + - usb: common: usb-conn-gpio: Simplify some error message + - HID: uclogic: Fix warning in uclogic_rdesc_template_apply + - tty: xilinx_uartps: Check clk_enable return value + - fpga: dfl-pci: Add IDs for Intel N6000, N6001 and C6100 cards + - iio: Use per-device lockdep class for mlock + - scsi: lpfc: Fix various issues reported by tools + - phy: qcom-qmp-usb: disable runtime PM on unbind + - block: Fix the enum blk_eh_timer_return documentation + - RDMA/rxe: Set pd early in mr alloc routines + - clk: imx8mp: tune the order of enet_qos_root_clk + - libbpf: Ensure functions with always_inline attribute are inline + - libbpf: Do not require executable permission for shared libraries + - micrel: ksz8851: fixes struct pointer issue + - net: ftmac100: fix endianness-related issues from 'sparse' + - net: sched: cls_u32: Avoid memcpy() false-positive warning + - libbpf: Fix overrun in netlink attribute iteration + - ALSA: usb-audio: Add quirk to enable Avid Mbox 3 support + - ASoC: sunxi: sun4i-codec: set debugfs_prefix for CPU DAI component + - ASoC: amd: yc: Add ASUS UM5302TA into DMI table + - ASoC: amd: yc: Add Lenovo Yoga Slim 7 Pro X to quirks table + - arm64: dts: qcom: sc7280-idp: correct ADC channel node name and unit address + - ARM: orion: fix include path + - hid: topre: Add driver fixing report descriptor + - [Config] updateconfigs for HID_TOPRE + - fsi: master-ast-cf: Fix missing of_node_put in fsi_master_acf_probe + - dmaengine: dw-edma: Remove runtime PM support + - HID: playstation: stop DualSense output work on remove. + - HID: playstation: add initial DualSense Edge controller support + - net: flag sockets supporting msghdr originated zerocopy + - drm/amd/pm: disable cstate feature for gpu reset scenario + - dm clone: Fix typo in block_device format specifier + + -- Luke Nowakowski-Krijger Fri, 06 Jan 2023 07:01:36 -0800 + +linux (5.19.0-29.30) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-29.30 -proposed tracker (LP: #1999799) + + * CVE-2022-3643 + - xen/netback: Ensure protocol headers don't fall in the non-linear area + + * CVE-2022-45934 + - Bluetooth: L2CAP: Fix u8 overflow + + * CVE-2022-4378 + - proc: proc_skip_spaces() shouldn't think it is working on C strings + - proc: avoid integer type confusion in get_proc_long + + * CVE-2022-42896 + - Bluetooth: L2CAP: Fix accepting connection request for invalid SPSM + - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm + + -- Thadeu Lima de Souza Cascardo Wed, 04 Jan 2023 08:36:13 -0300 + +linux (5.19.0-28.29) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-28.29 -proposed tracker (LP: #1999746) + + * mm:vma05 in ubuntu_ltp fails with '[vdso] bug not patched' on kinetic/linux + 5.19.0-27.28 (LP: #1999094) + - fix coredump breakage + + -- Stefan Bader Thu, 15 Dec 2022 10:11:16 +0100 + +linux (5.19.0-27.28) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-27.28 -proposed tracker (LP: #1997794) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/2022.11.14) + + * selftests/.../nat6to4 breaks the selftests build (LP: #1996536) + - [Config] Disable selftests/net/bpf/nat6to4 + + * Expose built-in trusted and revoked certificates (LP: #1996892) + - [Packaging] Expose built-in trusted and revoked certificates + + * support for same series backports versioning numbers (LP: #1993563) + - [Packaging] sameport -- add support for sameport versioning + + * Add cs35l41 firmware loading support (LP: #1995957) + - ASoC: cs35l41: Move cs35l41 exit hibernate function into shared code + - ASoC: cs35l41: Add common cs35l41 enter hibernate function + - ASoC: cs35l41: Do not print error when waking from hibernation + - ALSA: hda: cs35l41: Don't dereference fwnode handle + - ALSA: hda: cs35l41: Allow compilation test on non-ACPI configurations + - ALSA: hda: cs35l41: Drop wrong use of ACPI_PTR() + - ALSA: hda: cs35l41: Consolidate selections under SND_HDA_SCODEC_CS35L41 + - ALSA: hda: hda_cs_dsp_ctl: Add Library to support CS_DSP ALSA controls + - ALSA: hda: hda_cs_dsp_ctl: Add apis to write the controls directly + - ALSA: hda: cs35l41: Save codec object inside component struct + - ALSA: hda: cs35l41: Add initial DSP support and firmware loading + - ALSA: hda: cs35l41: Save Subsystem ID inside CS35L41 Driver + - ALSA: hda: cs35l41: Support reading subsystem id from ACPI + - ALSA: hda: cs35l41: Support multiple load paths for firmware + - ALSA: hda: cs35l41: Support Speaker ID for laptops + - ALSA: hda: cs35l41: Support Hibernation during Suspend + - ALSA: hda: cs35l41: Read Speaker Calibration data from UEFI variables + - ALSA: hda: hda_cs_dsp_ctl: Add fw id strings + - ALSA: hda: cs35l41: Add defaulted values into dsp bypass config sequence + - ALSA: hda: cs35l41: Support Firmware switching and reloading + - ALSA: hda: cs35l41: Add module parameter to control firmware load + - Revert "ALSA: hda: cs35l41: Allow compilation test on non-ACPI + configurations" + - ALSA: hda/realtek: More robust component matching for CS35L41 + - [Config] updateconfigs for SND_HDA_CS_DSP_CONTROLS + + * Fibocom WWAN FM350-GL suspend error (notebook not suspend) (LP: #1990700) + - net: wwan: t7xx: Add AP CLDMA + + * Screen cannot turn on after screen off with Matrox G200eW3 [102b:0536] + (LP: #1995573) + - drm/mgag200: Optimize damage clips + - drm/mgag200: Add FB_DAMAGE_CLIPS support + - drm/mgag200: Enable atomic gamma lut update + + * TEE Support for CCP driver (LP: #1991608) + - crypto: ccp: Add support for TEE for PCI ID 0x14CA + + * AMD Cezanne takes 5 minutes to wake up from suspend (LP: #1993715) + - platform/x86/amd: pmc: Read SMU version during suspend on Cezanne systems + + * Fix ath11k deadlock on WCN6855 (LP: #1995041) + - wifi: ath11k: avoid deadlock during regulatory update in + ath11k_regd_update() + + * intel_pmc_core not load on Raptor Lake (LP: #1988461) + - x86/cpu: Add new Raptor Lake CPU model number + - platform/x86/intel: pmc/core: Add Raptor Lake support to pmc core driver + + * [UBUNTU 20.04] boot: Add s390x secure boot trailer (LP: #1996071) + - s390/boot: add secure boot trailer + + * Fix rfkill causing soft blocked wifi (LP: #1996198) + - platform/x86: hp_wmi: Fix rfkill causing soft blocked wifi + + * Support Icicle Kit reference design v2022.10 (LP: #1993148) + - riscv: dts: microchip: icicle: re-jig fabric peripheral addresses + - riscv: dts: microchip: reduce the fic3 clock rate + - riscv: dts: microchip: update memory configuration for v2022.10 + - riscv: dts: microchip: fix fabric i2c reg size + - SAUCE: riscv: dts: microchip: Disable PCIe on the Icicle Kit + + * Fix Turbostat is not working for fam: 6 model: 191: stepping: 2 CPU + (LP: #1991365) + - tools/power turbostat: Add support for RPL-S + + * armhf kernel compiled with gcc-12 fails to boot on pi 3/2 (LP: #1993120) + - [Packaging] Support arch-specific compilers in updateconfigs + + * Kinetic update: v5.19.17 upstream stable release (LP: #1994179) + - Revert "fs: check FMODE_LSEEK to control internal pipe splicing" + - ALSA: oss: Fix potential deadlock at unregistration + - ALSA: rawmidi: Drop register_mutex in snd_rawmidi_free() + - ALSA: usb-audio: Fix potential memory leaks + - ALSA: usb-audio: Fix NULL dererence at error path + - ALSA: hda/realtek: remove ALC289_FIXUP_DUAL_SPK for Dell 5530 + - ALSA: hda/realtek: Correct pin configs for ASUS G533Z + - ALSA: hda/realtek: Add quirk for ASUS GV601R laptop + - ALSA: hda/realtek: Add Intel Reference SSID to support headset keys + - mtd: rawnand: atmel: Unmap streaming DMA mappings + - io_uring/rw: fix unexpected link breakage + - io_uring/net: fix fast_iov assignment in io_setup_async_msg() + - io_uring/net: don't update msg_name if not provided + - io_uring: correct pinned_vm accounting + - hv_netvsc: Fix race between VF offering and VF association message from host + - cifs: destage dirty pages before re-reading them for cache=none + - cifs: Fix the error length of VALIDATE_NEGOTIATE_INFO message + - iio: dac: ad5593r: Fix i2c read protocol requirements + - iio: ltc2497: Fix reading conversion results + - iio: adc: ad7923: fix channel readings for some variants + - iio: pressure: dps310: Refactor startup procedure + - iio: pressure: dps310: Reset chip after timeout + - xhci: dbc: Fix memory leak in xhci_alloc_dbc() + - usb: gadget: uvc: Fix argument to sizeof() in uvc_register_video() + - usb: add quirks for Lenovo OneLink+ Dock + - mmc: core: Add SD card quirk for broken discard + - can: kvaser_usb: Fix use of uninitialized completion + - can: kvaser_usb_leaf: Fix overread with an invalid command + - can: kvaser_usb_leaf: Fix TX queue out of sync after restart + - can: kvaser_usb_leaf: Fix CAN state after restart + - mmc: renesas_sdhi: Fix rounding errors + - mmc: sdhci-tegra: Use actual clock rate for SW tuning correction + - mmc: sdhci-sprd: Fix minimum clock limit + - i2c: designware: Fix handling of real but unexpected device interrupts + - fs: dlm: fix race between test_bit() and queue_work() + - fs: dlm: handle -EBUSY first in lock arg validation + - fs: dlm: fix invalid derefence of sb_lvbptr + - btf: Export bpf_dynptr definition + - HID: multitouch: Add memory barriers + - quota: Check next/prev free block number after reading from quota file + - platform/chrome: cros_ec_proto: Update version on GET_NEXT_EVENT failure + - arm64: dts: qcom: sdm845-mtp: correct ADC settle time + - ASoC: wcd9335: fix order of Slimbus unprepare/disable + - ASoC: wcd934x: fix order of Slimbus unprepare/disable + - hwmon: (gsc-hwmon) Call of_node_get() before of_find_xxx API + - net: thunderbolt: Enable DMA paths only after rings are enabled + - regulator: qcom_rpm: Fix circular deferral regression + - arm64: topology: move store_cpu_topology() to shared code + - riscv: topology: fix default topology reporting + - RISC-V: Re-enable counter access from userspace + - RISC-V: Make port I/O string accessors actually work + - parisc: fbdev/stifb: Align graphics memory size to 4MB + - parisc: Fix userspace graphics card breakage due to pgtable special bit + - riscv: vdso: fix NULL deference in vdso_join_timens() when vfork + - riscv: Make VM_WRITE imply VM_READ + - riscv: always honor the CONFIG_CMDLINE_FORCE when parsing dtb + - riscv: Pass -mno-relax only on lld < 15.0.0 + - UM: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - nvmem: core: Fix memleak in nvmem_register() + - nvme-multipath: fix possible hang in live ns resize with ANA access + - dmaengine: mxs: use platform_driver_register + - dmaengine: qcom-adm: fix wrong sizeof config in slave_config + - dmaengine: qcom-adm: fix wrong calling convention for prep_slave_sg + - drm/virtio: Check whether transferred 2D BO is shmem + - drm/virtio: Unlock reservations on virtio_gpu_object_shmem_init() error + - drm/virtio: Unlock reservations on dma_resv_reserve_fences() error + - drm/virtio: Use appropriate atomic state in virtio_gpu_plane_cleanup_fb() + - drm/udl: Restore display mode on resume + - arm64: mte: move register initialization to C + - [Config] updateconfigs for ARM64_ERRATUM_2441007 + - arm64: errata: Add Cortex-A55 to the repeat tlbi list + - clocksource/drivers/arm_arch_timer: Fix CNTPCT_LO and CNTVCT_LO value + - mm/hugetlb: fix races when looking up a CONT-PTE/PMD size hugetlb page + - mm/damon: validate if the pmd entry is present before accessing + - mm/uffd: fix warning without PTE_MARKER_UFFD_WP compiled in + - mm/mmap: undo ->mmap() when arch_validate_flags() fails + - xen/gntdev: Prevent leaking grants + - xen/gntdev: Accommodate VMA splitting + - PCI: Sanitise firmware BAR assignments behind a PCI-PCI bridge + - serial: cpm_uart: Don't request IRQ too early for console port + - serial: stm32: Deassert Transmit Enable on ->rs485_config() + - serial: 8250: Let drivers request full 16550A feature probing + - serial: 8250: Request full 16550A feature probing for OxSemi PCIe devices + - cpufreq: qcom-cpufreq-hw: Fix uninitialized throttled_freq warning + - powercap: intel_rapl: Use standard Energy Unit for SPR Dram RAPL domain + - powerpc/Kconfig: Fix non existing CONFIG_PPC_FSL_BOOKE + - powerpc/boot: Explicitly disable usage of SPE instructions + - slimbus: qcom-ngd: use correct error in message of pdr_add_lookup() failure + - slimbus: qcom-ngd: cleanup in probe error path + - scsi: lpfc: Rework MIB Rx Monitor debug info logic + - scsi: qedf: Populate sysfs attributes for vport + - gpio: rockchip: request GPIO mux to pinctrl when setting direction + - pinctrl: rockchip: add pinmux_ops.gpio_set_direction callback + - fbdev: smscufx: Fix use-after-free in ufx_ops_open() + - hwrng: core - let sleep be interrupted when unregistering hwrng + - smb3: do not log confusing message when server returns no network interfaces + - ksmbd: fix incorrect handling of iterate_dir + - ksmbd: fix endless loop when encryption for response fails + - ksmbd: Fix wrong return value and message length check in smb2_ioctl() + - ksmbd: Fix user namespace mapping + - fs: record I_DIRTY_TIME even if inode already has I_DIRTY_INODE + - btrfs: fix alignment of VMA for memory mapped files on THP + - btrfs: enhance unsupported compat RO flags handling + - btrfs: fix race between quota enable and quota rescan ioctl + - btrfs: fix missed extent on fsync after dropping extent maps + - btrfs: set generation before calling btrfs_clean_tree_block in + btrfs_init_new_buffer + - f2fs: fix wrong continue condition in GC + - f2fs: complete checkpoints during remount + - f2fs: flush pending checkpoints when freezing super + - f2fs: increase the limit for reserve_root + - f2fs: fix to do sanity check on destination blkaddr during recovery + - f2fs: fix to do sanity check on summary info + - jbd2: wake up journal waiters in FIFO order, not LIFO + - jbd2: fix potential buffer head reference count leak + - jbd2: fix potential use-after-free in jbd2_fc_wait_bufs + - jbd2: add miss release buffer head in fc_do_one_pass() + - ext2: Add sanity checks for group and filesystem size + - ext4: avoid crash when inline data creation follows DIO write + - ext4: fix null-ptr-deref in ext4_write_info + - ext4: make ext4_lazyinit_thread freezable + - ext4: fix check for block being out of directory size + - ext4: don't increase iversion counter for ea_inodes + - ext4: unconditionally enable the i_version counter + - ext4: ext4_read_bh_lock() should submit IO if the buffer isn't uptodate + - ext4: place buffer head allocation before handle start + - ext4: fix i_version handling in ext4 + - ext4: fix dir corruption when ext4_dx_add_entry() fails + - ext4: fix miss release buffer head in ext4_fc_write_inode + - ext4: fix potential memory leak in ext4_fc_record_modified_inode() + - ext4: fix potential memory leak in ext4_fc_record_regions() + - ext4: update 'state->fc_regions_size' after successful memory allocation + - livepatch: fix race between fork and KLP transition + - ftrace: Properly unset FTRACE_HASH_FL_MOD + - ftrace: Still disable enabled records marked as disabled + - ring-buffer: Allow splice to read previous partially read pages + - ring-buffer: Have the shortest_full queue be the shortest not longest + - ring-buffer: Check pending waiters when doing wake ups as well + - ring-buffer: Add ring_buffer_wake_waiters() + - ring-buffer: Fix race between reset page and reading page + - tracing: Disable interrupt or preemption before acquiring arch_spinlock_t + - tracing: Wake up ring buffer waiters on closing of the file + - tracing: Wake up waiters when tracing is disabled + - tracing: Add ioctl() to force ring buffer waiters to wake up + - tracing: Do not free snapshot if tracer is on cmdline + - tracing: Move duplicate code of trace_kprobe/eprobe.c into header + - tracing: Add "(fault)" name injection to kernel probes + - tracing: Fix reading strings from synthetic events + - rpmsg: char: Avoid double destroy of default endpoint + - thunderbolt: Explicitly enable lane adapter hotplug events at startup + - efi: libstub: drop pointless get_memory_map() call + - media: cedrus: Set the platform driver data earlier + - media: cedrus: Fix endless loop in cedrus_h265_skip_bits() + - blk-throttle: fix that io throttle can only work for single bio + - blk-wbt: call rq_qos_add() after wb_normal is initialized + - KVM: x86/emulator: Fix handing of POP SS to correctly set interruptibility + - KVM: nVMX: Unconditionally purge queued/injected events on nested "exit" + - KVM: nVMX: Don't propagate vmcs12's PERF_GLOBAL_CTRL settings to vmcs02 + - KVM: VMX: Drop bits 31:16 when shoving exception error code into VMCS + - staging: greybus: audio_helper: remove unused and wrong debugfs usage + - drm/nouveau/kms/nv140-: Disable interlacing + - drm/nouveau: fix a use-after-free in nouveau_gem_prime_import_sg_table() + - drm/i915/gt: Use i915_vm_put on ppgtt_create error paths + - drm/i915: Fix watermark calculations for gen12+ RC CCS modifier + - drm/i915: Fix watermark calculations for gen12+ MC CCS modifier + - drm/i915: Fix watermark calculations for gen12+ CCS+CC modifier + - drm/i915: Fix watermark calculations for DG2 CCS modifiers + - drm/i915: Fix watermark calculations for DG2 CCS+CC modifier + - drm/amd/display: Fix vblank refcount in vrr transition + - drm/amd/display: explicitly disable psr_feature_enable appropriately + - smb3: must initialize two ACL struct fields to zero + - selinux: use "grep -E" instead of "egrep" + - ima: fix blocking of security.ima xattrs of unsupported algorithms + - userfaultfd: open userfaultfds with O_RDONLY + - ntfs3: rework xattr handlers and switch to POSIX ACL VFS helpers + - thermal: cpufreq_cooling: Check the policy first in + cpufreq_cooling_register() + - cpufreq: amd-pstate: Fix initial highest_perf value + - sh: machvec: Use char[] for section boundaries + - MIPS: SGI-IP30: Fix platform-device leak in bridge_platform_create() + - MIPS: SGI-IP27: Fix platform-device leak in bridge_platform_create() + - erofs: fix order >= MAX_ORDER warning due to crafted negative i_size + - erofs: use kill_anon_super() to kill super in fscache mode + - ARM: 9243/1: riscpc: Unbreak the build + - ARM: 9244/1: dump: Fix wrong pg_level in walk_pmd() + - ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE + - ACPI: PCC: Release resources on address space setup failure path + - ACPI: PCC: replace wait_for_completion() + - ACPI: PCC: Fix Tx acknowledge in the PCC address space handler + - objtool: Preserve special st_shndx indexes in elf_update_symbol + - nfsd: Fix a memory leak in an error handling path + - NFSD: Fix handling of oversized NFSv4 COMPOUND requests + - x86/paravirt: add extra clobbers with ZERO_CALL_USED_REGS enabled + - wifi: rtlwifi: 8192de: correct checking of IQK reload + - wifi: ath10k: add peer map clean up for peer delete in ath10k_sta_state() + - bpf: Fix non-static bpf_func_proto struct definitions + - bpf: convert cgroup_bpf.progs to hlist + - bpf: Cleanup check_refcount_ok + - leds: lm3601x: Don't use mutex after it was destroyed + - tsnep: Fix TSNEP_INFO_TX_TIME register define + - bpf: Fix reference state management for synchronous callbacks + - wifi: cfg80211: get correct AP link chandef + - wifi: mac80211: allow bw change during channel switch in mesh + - bpftool: Fix a wrong type cast in btf_dumper_int + - audit: explicitly check audit_context->context enum value + - audit: free audit_proctitle only on task exit + - esp: choose the correct inner protocol for GSO on inter address family + tunnels + - spi: mt7621: Fix an error message in mt7621_spi_probe() + - x86/resctrl: Fix to restore to original value when re-enabling hardware + prefetch register + - xsk: Fix backpressure mechanism on Tx + - selftests/xsk: Add missing close() on netns fd + - bpf: Disable preemption when increasing per-cpu map_locked + - bpf: Propagate error from htab_lock_bucket() to userspace + - wifi: ath11k: Fix incorrect QMI message ID mappings + - bpf: Use this_cpu_{inc|dec|inc_return} for bpf_task_storage_busy + - bpf: Use this_cpu_{inc_return|dec} for prog->active + - Bluetooth: btusb: mediatek: fix WMT failure during runtime suspend + - wifi: rtw89: pci: fix interrupt stuck after leaving low power mode + - wifi: rtw89: pci: correct TX resource checking in low power mode + - wifi: rtl8xxxu: tighten bounds checking in rtl8xxxu_read_efuse() + - wifi: wfx: prevent underflow in wfx_send_pds() + - wifi: rtw88: add missing destroy_workqueue() on error path in + rtw_core_init() + - selftests/xsk: Avoid use-after-free on ctx + - spi: qup: add missing clk_disable_unprepare on error in spi_qup_resume() + - spi: qup: add missing clk_disable_unprepare on error in + spi_qup_pm_resume_runtime() + - wifi: rtl8xxxu: Fix skb misuse in TX queue selection + - spi: meson-spicc: do not rely on busy flag in pow2 clk ops + - bpf: btf: fix truncated last_member_type_id in btf_struct_resolve + - wifi: rtl8xxxu: gen2: Fix mistake in path B IQ calibration + - wifi: rtl8xxxu: Remove copy-paste leftover in gen2_update_rate_mask + - wifi: mt76: mt7921e: fix race issue between reset and suspend/resume + - wifi: mt76: mt7921s: fix race issue between reset and suspend/resume + - wifi: mt76: mt7921u: fix race issue between reset and suspend/resume + - wifi: mt76: sdio: fix the deadlock caused by sdio->stat_work + - wifi: mt76: sdio: poll sta stat when device transmits data + - wifi: mt76: sdio: fix transmitting packet hangs + - wifi: mt76: mt7615: add mt7615_mutex_acquire/release in + mt7615_sta_set_decap_offload + - wifi: mt76: mt7915: fix possible unaligned access in + mt7915_mac_add_twt_setup + - wifi: mt76: connac: fix possible unaligned access in + mt76_connac_mcu_add_nested_tlv + - wifi: mt76: mt7921: add mt7921_mutex_acquire at mt7921_[start, stop]_ap + - wifi: mt76: mt7921: add mt7921_mutex_acquire at mt7921_sta_set_decap_offload + - wifi: mt76: mt7915: fix mcs value in ht mode + - wifi: mt76: mt7915: do not check state before configuring implicit beamform + - wifi: mt76: mt7921e: fix rmmod crash in driver reload test + - Bluetooth: RFCOMM: Fix possible deadlock on socket shutdown/release + - net: fs_enet: Fix wrong check in do_pd_setup + - bpf: Ensure correct locking around vulnerable function find_vpid() + - wifi: ath11k: Include STA_KEEPALIVE_ARP_RESPONSE TLV header by default + - Bluetooth: hci_{ldisc,serdev}: check percpu_init_rwsem() failure + - netfilter: conntrack: fix the gc rescheduling delay + - netfilter: conntrack: revisit the gc initial rescheduling bias + - flow_dissector: Do not count vlan tags inside tunnel payload + - wifi: ath11k: fix failed to find the peer with peer_id 0 when disconnected + - wifi: ath11k: fix number of VHT beamformee spatial streams + - mips: dts: ralink: mt7621: fix external phy on GB-PC2 + - x86/microcode/AMD: Track patch allocation size explicitly + - wifi: ath11k: fix peer addition/deletion error on sta band migration + - x86/cpu: Include the header of init_ia32_feat_ctl()'s prototype + - spi: cadence-quadspi: Fix PM disable depth imbalance in cqspi_probe + - spi: dw: Fix PM disable depth imbalance in dw_spi_bt1_probe + - spi/omap100k:Fix PM disable depth imbalance in omap1_spi100k_probe + - skmsg: Schedule psock work if the cached skb exists on the psock + - cw1200: fix incorrect check to determine if no element is found in list + - i2c: mlxbf: support lock mechanism + - Bluetooth: hci_core: Fix not handling link timeouts propertly + - xfrm: Reinject transport-mode packets through workqueue + - netfilter: nft_fib: Fix for rpath check with VRF devices + - spi: s3c64xx: Fix large transfers with DMA + - wifi: rtl8xxxu: gen2: Enable 40 MHz channel width + - wifi: rtl8xxxu: Fix AIFS written to REG_EDCA_*_PARAM + - vhost/vsock: Use kvmalloc/kvfree for larger packets. + - eth: alx: take rtnl_lock on resume + - sctp: handle the error returned from sctp_auth_asoc_init_active_key + - tcp: fix tcp_cwnd_validate() to not forget is_cwnd_limited + - spi: Ensure that sg_table won't be used after being freed + - Bluetooth: hci_sync: Fix not indicating power state + - hwmon: (pmbus/mp2888) Fix sensors readouts for MPS Multi-phase mp2888 + controller + - net: rds: don't hold sock lock when cancelling work from + rds_tcp_reset_callbacks() + - af_unix: Fix memory leaks of the whole sk due to OOB skb. + - net: prestera: acl: Add check for kmemdup + - eth: lan743x: reject extts for non-pci11x1x devices + - bnx2x: fix potential memory leak in bnx2x_tpa_stop() + - eth: sp7021: fix use after free bug in spl2sw_nvmem_get_mac_address + - net: wwan: iosm: Call mutex_init before locking it + - net/ieee802154: reject zero-sized raw_sendmsg() + - once: add DO_ONCE_SLOW() for sleepable contexts + - net: mvpp2: fix mvpp2 debugfs leak + - drm: bridge: adv7511: fix CEC power down control register offset + - drm: bridge: adv7511: unregister cec i2c device after cec adapter + - drm/bridge: Avoid uninitialized variable warning + - drm/mipi-dsi: Detach devices when removing the host + - drm/bridge: it6505: Power on downstream device in .atomic_enable + - drm/virtio: Correct drm_gem_shmem_get_sg_table() error handling + - drm/bridge: tc358767: Add of_node_put() when breaking out of loop + - drm/bridge: parade-ps8640: Fix regulator supply order + - drm/dp_mst: fix drm_dp_dpcd_read return value checks + - drm:pl111: Add of_node_put() when breaking out of + for_each_available_child_of_node() + - ASoC: mt6359: fix tests for platform_get_irq() failure + - drm/msm: Make .remove and .shutdown HW shutdown consistent + - platform/chrome: fix double-free in chromeos_laptop_prepare() + - platform/chrome: fix memory corruption in ioctl + - drm/virtio: Fix same-context optimization + - ASoC: soc-pcm.c: call __soc_pcm_close() in soc_pcm_close() + - ASoC: tas2764: Allow mono streams + - ASoC: tas2764: Drop conflicting set_bias_level power setting + - ASoC: tas2764: Fix mute/unmute + - platform/x86: msi-laptop: Fix old-ec check for backlight registering + - platform/x86: msi-laptop: Fix resource cleanup + - platform/chrome: cros_ec_typec: Correct alt mode index + - drm/amdgpu: add missing pci_disable_device() in + amdgpu_pmops_runtime_resume() + - drm/bridge: megachips: Fix a null pointer dereference bug + - drm/bridge: it6505: Fix the order of DP_SET_POWER commands + - ASoC: rsnd: Add check for rsnd_mod_power_on + - ASoC: wm_adsp: Handle optional legacy support + - ALSA: hda: beep: Simplify keep-power-at-enable behavior + - drm/virtio: set fb_modifiers_not_supported + - drm/bochs: fix blanking + - ASoC: SOF: mediatek: mt8195: Import namespace SND_SOC_SOF_MTK_COMMON + - drm/omap: dss: Fix refcount leak bugs + - drm/amdgpu: Fix memory leak in hpd_rx_irq_create_workqueue() + - mmc: au1xmmc: Fix an error handling path in au1xmmc_probe() + - ASoC: eureka-tlv320: Hold reference returned from of_find_xxx API + - drm/msm: lookup the ICC paths in both mdp5/dpu and mdss devices + - drm/msm/dpu: index dpu_kms->hw_vbif using vbif_idx + - drm/msm/dp: correct 1.62G link rate at dp_catalog_ctrl_config_msa() + - ALSA: usb-audio: Properly refcounting clock rate + - drm/vmwgfx: Fix memory leak in vmw_mksstat_add_ioctl() + - virtio-gpu: fix shift wrapping bug in virtio_gpu_fence_event_create() + - ASoC: codecs: tx-macro: fix kcontrol put + - ASoC: da7219: Fix an error handling path in da7219_register_dai_clks() + - ALSA: dmaengine: increment buffer pointer atomically + - mmc: wmt-sdmmc: Fix an error handling path in wmt_mci_probe() + - ASoC: stm32: dfsdm: Fix PM disable depth imbalance in stm32_adfsdm_probe + - ASoC: stm32: spdifrx: Fix PM disable depth imbalance in stm32_spdifrx_probe + - ASoC: stm: Fix PM disable depth imbalance in stm32_i2s_probe + - ASoC: wm8997: Fix PM disable depth imbalance in wm8997_probe + - ASoC: wm5110: Fix PM disable depth imbalance in wm5110_probe + - ASoC: wm5102: Fix PM disable depth imbalance in wm5102_probe + - ASoC: mt6660: Fix PM disable depth imbalance in mt6660_i2c_probe + - ALSA: hda/hdmi: Don't skip notification handling during PM operation + - memory: pl353-smc: Fix refcount leak bug in pl353_smc_probe() + - memory: of: Fix refcount leak bug in of_get_ddr_timings() + - memory: of: Fix refcount leak bug in of_lpddr3_get_ddr_timings() + - locks: fix TOCTOU race when granting write lease + - soc: qcom: smsm: Fix refcount leak bugs in qcom_smsm_probe() + - soc: qcom: smem_state: Add refcounting for the 'state->of_node' + - ARM: dts: imx6qdl-kontron-samx6i: hook up DDC i2c bus + - arm64: dts: renesas: r9a07g044: Fix SCI{Rx,Tx} interrupt types + - arm64: dts: renesas: r9a07g054: Fix SCI{Rx,Tx} interrupt types + - arm64: dts: renesas: r9a07g043: Fix SCI{Rx,Tx} interrupt types + - dt-bindings: clock: exynosautov9: correct clock numbering of peric0/c1 + - ARM: dts: turris-omnia: Fix mpp26 pin name and comment + - ARM: dts: kirkwood: lsxl: fix serial line + - ARM: dts: kirkwood: lsxl: remove first ethernet port + - ia64: export memory_add_physaddr_to_nid to fix cxl build error + - soc/tegra: fuse: Drop Kconfig dependency on TEGRA20_APB_DMA + - arm64: dts: ti: k3-j7200: fix main pinmux range + - ARM: dts: exynos: correct s5k6a3 reset polarity on Midas family + - ARM: Drop CMDLINE_* dependency on ATAGS + - ext4: don't run ext4lazyinit for read-only filesystems + - arm64: ftrace: fix module PLTs with mcount + - ARM: dts: exynos: fix polarity of VBUS GPIO of Origen + - iomap: iomap: fix memory corruption when recording errors during writeback + - iio: adc: at91-sama5d2_adc: fix AT91_SAMA5D2_MR_TRACKTIM_MAX + - iio: adc: at91-sama5d2_adc: check return status for pressure and touch + - iio: adc: at91-sama5d2_adc: lock around oversampling and sample freq + - iio: adc: at91-sama5d2_adc: disable/prepare buffer on suspend/resume + - iio: inkern: only release the device node when done with it + - iio: inkern: fix return value in devm_of_iio_channel_get_by_name() + - iio: ABI: Fix wrong format of differential capacitance channel ABI. + - iio: magnetometer: yas530: Change data type of hard_offsets to signed + - RDMA/mlx5: Don't compare mkey tags in DEVX indirect mkey + - usb: common: debug: Check non-standard control requests + - clk: meson: Hold reference returned by of_get_parent() + - clk: st: Hold reference returned by of_get_parent() + - clk: oxnas: Hold reference returned by of_get_parent() + - clk: qoriq: Hold reference returned by of_get_parent() + - clk: berlin: Add of_node_put() for of_get_parent() + - clk: sprd: Hold reference returned by of_get_parent() + - clk: tegra: Fix refcount leak in tegra210_clock_init + - clk: tegra: Fix refcount leak in tegra114_clock_init + - clk: tegra20: Fix refcount leak in tegra20_clock_init + - clk: samsung: exynosautov9: correct register offsets of peric0/c1 + - HSI: omap_ssi: Fix refcount leak in ssi_probe + - HSI: omap_ssi_port: Fix dma_map_sg error check + - clk: qcom: gcc-sdm660: Use floor ops for SDCC1 clock + - media: exynos4-is: fimc-is: Add of_node_put() when breaking out of loop + - tty: xilinx_uartps: Fix the ignore_status + - media: amphion: insert picture startcode after seek for vc1g format + - media: amphion: adjust the encoder's value range of gop size + - media: amphion: don't change the colorspace reported by decoder. + - media: amphion: fix a bug that vpu core may not resume after suspend + - media: meson: vdec: add missing clk_disable_unprepare on error in + vdec_hevc_start() + - media: uvcvideo: Fix memory leak in uvc_gpio_parse + - media: uvcvideo: Use entity get_cur in uvc_ctrl_set + - media: xilinx: vipp: Fix refcount leak in xvip_graph_dma_init + - RDMA/rxe: Fix "kernel NULL pointer dereference" error + - RDMA/rxe: Fix the error caused by qp->sk + - clk: mediatek: clk-mt8195-vdo0: Set rate on vdo0_dp_intf0_dp_intf's parent + - clk: mediatek: clk-mt8195-vdo1: Reparent and set rate on vdo1_dpintf's + parent + - clk: mediatek: mt8195-infra_ao: Set pwrmcu clocks as critical + - misc: ocxl: fix possible refcount leak in afu_ioctl() + - fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() + - phy: rockchip-inno-usb2: Return zero after otg sync + - dmaengine: idxd: avoid deadlock in process_misc_interrupts() + - dmaengine: hisilicon: Disable channels when unregister hisi_dma + - dmaengine: hisilicon: Fix CQ head update + - dmaengine: hisilicon: Add multi-thread support for a DMA channel + - usb: gadget: f_fs: stricter integer overflow checks + - dyndbg: fix static_branch manipulation + - dyndbg: fix module.dyndbg handling + - dyndbg: let query-modname override actual module name + - dyndbg: drop EXPORTed dynamic_debug_exec_queries + - clk: qcom: sm6115: Select QCOM_GDSC + - mtd: devices: docg3: check the return value of devm_ioremap() in the probe + - remoteproc: Harden rproc_handle_vdev() against integer overflow + - phy: amlogic: phy-meson-axg-mipi-pcie-analog: Hold reference returned by + of_get_parent() + - phy: phy-mtk-tphy: fix the phy type setting issue + - mtd: rawnand: intel: Read the chip-select line from the correct OF node + - mtd: rawnand: intel: Remove undocumented compatible string + - mtd: rawnand: fsl_elbc: Fix none ECC mode + - RDMA/irdma: Align AE id codes to correct flush code and event + - RDMA/irdma: Validate udata inlen and outlen + - RDMA/srp: Fix srp_abort() + - RDMA/siw: Always consume all skbuf data in sk_data_ready() upcall. + - RDMA/siw: Fix QP destroy to wait for all references dropped. + - ata: fix ata_id_sense_reporting_enabled() and ata_id_has_sense_reporting() + - ata: fix ata_id_has_devslp() + - ata: fix ata_id_has_ncq_autosense() + - ata: fix ata_id_has_dipm() + - mtd: rawnand: meson: fix bit map use in meson_nfc_ecc_correct() + - md/raid5: Ensure stripe_fill happens on non-read IO with journal + - md/raid5: Remove unnecessary bio_put() in raid5_read_one_chunk() + - RDMA/cm: Use SLID in the work completion as the DLID in responder side + - IB: Set IOVA/LENGTH on IB_MR in core/uverbs layers + - xhci: Don't show warning for reinit on known broken suspend + - usb: gadget: function: fix dangling pnp_string in f_printer.c + - usb: dwc3: core: fix some leaks in probe + - drivers: serial: jsm: fix some leaks in probe + - serial: 8250: Toggle IER bits on only after irq has been set up + - tty: serial: fsl_lpuart: disable dma rx/tx use flags in lpuart_dma_shutdown + - phy: qualcomm: call clk_disable_unprepare in the error handling + - staging: vt6655: fix some erroneous memory clean-up loops + - slimbus: qcom-ngd-ctrl: allow compile testing without QCOM_RPROC_COMMON + - slimbus: qcom-ngd: Add error handling in of_qcom_slim_ngd_register + - firmware: google: Test spinlock on panic path to avoid lockups + - serial: 8250: Fix restoring termios speed after suspend + - scsi: libsas: Fix use-after-free bug in smp_execute_task_sg() + - scsi: pm8001: Fix running_req for internal abort commands + - scsi: iscsi: Rename iscsi_conn_queue_work() + - scsi: iscsi: Add recv workqueue helpers + - scsi: iscsi: Run recv path from workqueue + - scsi: iscsi: iscsi_tcp: Fix null-ptr-deref while calling getpeername() + - clk: qcom: apss-ipq6018: mark apcs_alias0_core_clk as critical + - clk: qcom: gcc-sm6115: Override default Alpha PLL regs + - RDMA/rxe: Fix resize_finish() in rxe_queue.c + - fsi: core: Check error number after calling ida_simple_get + - mfd: intel_soc_pmic: Fix an error handling path in + intel_soc_pmic_i2c_probe() + - mfd: fsl-imx25: Fix an error handling path in mx25_tsadc_setup_irq() + - mfd: lp8788: Fix an error handling path in lp8788_probe() + - mfd: lp8788: Fix an error handling path in lp8788_irq_init() and + lp8788_irq_init() + - mfd: fsl-imx25: Fix check for platform_get_irq() errors + - mfd: sm501: Add check for platform_driver_register() + - mfd: da9061: Fix Failed to set Two-Wire Bus Mode. + - clk: mediatek: mt8183: mfgcfg: Propagate rate changes to parent + - clk: mediatek: clk-mt8195-mfg: Reparent mfg_bg3d and propagate rate changes + - clk: mediatek: fix unregister function in mtk_clk_register_dividers cleanup + - clk: mediatek: Migrate remaining clk_unregister_*() to clk_hw_unregister_*() + - dmaengine: ioat: stop mod_timer from resurrecting deleted timer in + __cleanup() + - usb: mtu3: fix failed runtime suspend in host only mode + - spmi: pmic-arb: correct duplicate APID to PPID mapping logic + - clk: vc5: Fix 5P49V6901 outputs disabling when enabling FOD + - clk: baikal-t1: Fix invalid xGMAC PTP clock divider + - clk: baikal-t1: Add shared xGMAC ref/ptp clocks internal parent + - clk: baikal-t1: Add SATA internal ref clock buffer + - clk: bcm2835: fix bcm2835_clock_rate_from_divisor declaration + - clk: imx: scu: fix memleak on platform_device_add() fails + - clk: ti: Balance of_node_get() calls for of_find_node_by_name() + - clk: ti: dra7-atl: Fix reference leak in of_dra7_atl_clk_probe + - clk: ast2600: BCLK comes from EPLL + - mailbox: mpfs: fix handling of the reg property + - mailbox: mpfs: account for mbox offsets while sending + - mailbox: bcm-ferxrm-mailbox: Fix error check for dma_map_sg + - ipc: mqueue: fix possible memory leak in init_mqueue_fs() + - powerpc/configs: Properly enable PAPR_SCM in pseries_defconfig + - powerpc/math_emu/efp: Include module.h + - powerpc/sysdev/fsl_msi: Add missing of_node_put() + - powerpc/pci_dn: Add missing of_node_put() + - powerpc/powernv: add missing of_node_put() in opal_export_attrs() + - cpuidle: riscv-sbi: Fix CPU_PM_CPU_IDLE_ENTER_xyz() macro usage + - powerpc: Fix fallocate and fadvise64_64 compat parameter combination + - x86/hyperv: Fix 'struct hv_enlightened_vmcs' definition + - powerpc/64s: Fix GENERIC_CPU build flags for PPC970 / G5 + - powerpc/64: mark irqs hard disabled in boot paca + - powerpc/64/interrupt: Fix return to masked context after hard-mask irq + becomes pending + - powerpc: Fix SPE Power ISA properties for e500v1 platforms + - powerpc/kprobes: Fix null pointer reference in arch_prepare_kprobe() + - powerpc/pseries/vas: Pass hw_cpu_id to node associativity HCALL + - crypto: sahara - don't sleep when in softirq + - crypto: hisilicon/zip - fix mismatch in get/set sgl_sge_nr + - hwrng: arm-smccc-trng - fix NO_ENTROPY handling + - crypto: ccp - Fail the PSP initialization when writing psp data file failed + - cgroup: Honor caller's cgroup NS when resolving path + - hwrng: imx-rngc - Moving IRQ handler registering after + imx_rngc_irq_mask_clear() + - crypto: qat - fix default value of WDT timer + - crypto: hisilicon/qm - fix missing put dfx access + - cgroup/cpuset: Enable update_tasks_cpumask() on top_cpuset + - iommu/omap: Fix buffer overflow in debugfs + - crypto: akcipher - default implementation for setting a private key + - crypto: ccp - Release dma channels before dmaengine unrgister + - crypto: inside-secure - Change swab to swab32 + - crypto: qat - fix DMA transfer direction + - clocksource/drivers/arm_arch_timer: Fix handling of ARM erratum 858921 + - clocksource/drivers/timer-gxp: Add missing error handling in gxp_timer_probe + - cifs: return correct error in ->calc_signature() + - iommu/iova: Fix module config properly + - tracing: kprobe: Fix kprobe event gen test module on exit + - tracing: kprobe: Make gen test module work in arm and riscv + - tracing/osnoise: Fix possible recursive locking in stop_per_cpu_kthreads + - kbuild: remove the target in signal traps when interrupted + - linux/export: use inline assembler to populate symbol CRCs + - kbuild: rpm-pkg: fix breakage when V=1 is used + - crypto: marvell/octeontx - prevent integer overflows + - crypto: cavium - prevent integer overflow loading firmware + - random: schedule jitter credit for next jiffy, not in two jiffies + - thermal/drivers/qcom/tsens-v0_1: Fix MSM8939 fourth sensor hw_id + - ACPI: APEI: do not add task_work to kernel thread to avoid memory leak + - f2fs: fix race condition on setting FI_NO_EXTENT flag + - f2fs: fix to account FS_CP_DATA_IO correctly + - selftest: tpm2: Add Client.__del__() to close /dev/tpm* handle + - module: tracking: Keep a record of tainted unloaded modules only + - fs: dlm: fix race in lowcomms + - rcu: Avoid triggering strict-GP irq-work when RCU is idle + - rcu: Back off upon fill_page_cache_func() allocation failure + - cpufreq: amd_pstate: fix wrong lowest perf fetch + - ACPI: video: Add Toshiba Satellite/Portege Z830 quirk + - fortify: Fix __compiletime_strlen() under UBSAN_BOUNDS_LOCAL + - ACPI: tables: FPDT: Don't call acpi_os_map_memory() on invalid phys address + - cpufreq: intel_pstate: Add Tigerlake support in no-HWP mode + - MIPS: BCM47XX: Cast memcmp() of function to (void *) + - powercap: intel_rapl: fix UBSAN shift-out-of-bounds issue + - thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to + avoid crash + - ARM: decompressor: Include .data.rel.ro.local + - ACPI: x86: Add a quirk for Dell Inspiron 14 2-in-1 for StorageD3Enable + - x86/entry: Work around Clang __bdos() bug + - NFSD: Return nfserr_serverfault if splice_ok but buf->pages have data + - NFSD: fix use-after-free on source server when doing inter-server copy + - wifi: ath10k: Set tx credit to one for WCN3990 snoc based devices + - wifi: brcmfmac: fix invalid address access when enabling SCAN log level + - bpftool: Clear errno after libcap's checks + - ice: set tx_tstamps when creating new Tx rings via ethtool + - net: ethernet: ti: davinci_mdio: Add workaround for errata i2329 + - openvswitch: Fix double reporting of drops in dropwatch + - openvswitch: Fix overreporting of drops in dropwatch + - tcp: annotate data-race around tcp_md5sig_pool_populated + - x86/mce: Retrieve poison range from hardware + - wifi: ath9k: avoid uninit memory read in ath9k_htc_rx_msg() + - thunderbolt: Add back Intel Falcon Ridge end-to-end flow control workaround + - x86/apic: Don't disable x2APIC if locked + - net: axienet: Switch to 64-bit RX/TX statistics + - net-next: Fix IP_UNICAST_IF option behavior for connected sockets + - xfrm: Update ipcomp_scratches with NULL when freed + - wifi: ath11k: Register shutdown handler for WCN6750 + - rtw89: ser: leave lps with mutex + - iavf: Fix race between iavf_close and iavf_reset_task + - wifi: brcmfmac: fix use-after-free bug in brcmf_netdev_start_xmit() + - Bluetooth: btintel: Mark Intel controller to support LE_STATES quirk + - regulator: core: Prevent integer underflow + - wifi: ath11k: mhi: fix potential memory leak in ath11k_mhi_register() + - wifi: mt76: mt7921: reset msta->airtime_ac while clearing up hw value + - wifi: rtw89: free unused skb to prevent memory leak + - wifi: rtw89: fix rx filter after scan + - Bluetooth: L2CAP: initialize delayed works at l2cap_chan_create() + - Bluetooth: hci_sysfs: Fix attempting to call device_add multiple times + - bnxt_en: replace reset with config timestamps + - selftests/bpf: Free the allocated resources after test case succeeds + - can: bcm: check the result of can_send() in bcm_can_tx() + - wifi: rt2x00: don't run Rt5592 IQ calibration on MT7620 + - wifi: rt2x00: set correct TX_SW_CFG1 MAC register for MT7620 + - wifi: rt2x00: set VGC gain for both chains of MT7620 + - wifi: rt2x00: set SoC wmac clock register + - wifi: rt2x00: correctly set BBP register 86 for MT7620 + - hwmon: (sht4x) do not overflow clamping operation on 32-bit platforms + - net: If sock is dead don't access sock's sk_wq in sk_stream_wait_memory + - bpf: Adjust kprobe_multi entry_ip for CONFIG_X86_KERNEL_IBT + - bpf: use bpf_prog_pack for bpf_dispatcher + - Bluetooth: L2CAP: Fix user-after-free + - i2c: designware-pci: Group AMD NAVI quirk parts together + - drm/nouveau/nouveau_bo: fix potential memory leak in nouveau_bo_alloc() + - drm: Use size_t type for len variable in drm_copy_field() + - drm: Prevent drm_copy_field() to attempt copying a NULL pointer + - drm/komeda: Fix handling of atomic commits in the atomic_commit_tail hook + - gpu: lontium-lt9611: Fix NULL pointer dereference in lt9611_connector_init() + - drm/amd/display: fix overflow on MIN_I64 definition + - udmabuf: Set ubuf->sg = NULL if the creation of sg table fails + - platform/x86: pmc_atom: Improve quirk message to be less cryptic + - drm: bridge: dw_hdmi: only trigger hotplug event on link change + - drm/amdgpu: Skip the program of MMMC_VM_AGP_* in SRIOV on MMHUB v3_0_0 + - drm/admgpu: Skip CG/PG on SOC21 under SRIOV VF + - ALSA: usb-audio: Register card at the last interface + - drm/vc4: vec: Fix timings for VEC modes + - drm: panel-orientation-quirks: Add quirk for Anbernic Win600 + - drm: panel-orientation-quirks: Add quirk for Aya Neo Air + - platform/chrome: cros_ec: Notify the PM of wake events during resume + - platform/x86: hp-wmi: Setting thermal profile fails with 0x06 + - platform/x86: msi-laptop: Change DMI match / alias strings to fix module + autoloading + - ALSA: intel-dspconfig: add ES8336 support for AlderLake-PS + - ASoC: SOF: pci: Change DMI match info to support all Chrome platforms + - ASoC: SOF: add quirk to override topology mclk_id + - drm/amdgpu: SDMA update use unlocked iterator + - drm/amd/display: correct hostvm flag + - drm/amdgpu: fix initial connector audio value + - drm/meson: reorder driver deinit sequence to fix use-after-free bug + - drm/meson: explicitly remove aggregate driver at module unload time + - drm/meson: remove drm bridges at aggregate driver unbind time + - drm/dp: Don't rewrite link config when setting phy test pattern + - drm/amd/display: Remove interface for periodic interrupt 1 + - drm/amd/display: polling vid stream status in hpo dp blank + - drm/amdkfd: Fix UBSAN shift-out-of-bounds warning + - ARM: dts: imx6: delete interrupts property if interrupts-extended is set + - ARM: dts: imx7d-sdb: config the max pressure for tsc2046 + - ARM: dts: imx6q: add missing properties for sram + - ARM: dts: imx6dl: add missing properties for sram + - ARM: dts: imx6qp: add missing properties for sram + - ARM: dts: imx6sl: add missing properties for sram + - ARM: dts: imx6sll: add missing properties for sram + - ARM: dts: imx6sx: add missing properties for sram + - ARM: dts: imx6sl: use tabs for code indent + - ARM: dts: imx6sx-udoo-neo: don't use multiple blank lines + - kselftest/arm64: Fix validatation termination record after EXTRA_CONTEXT + - arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card IO + voltage + - arm64: dts: imx8mq-librem5: Add bq25895 as max17055's power supply + - btrfs: dump extra info if one free space cache has more bitmaps than it + should + - btrfs: scrub: properly report super block errors in system log + - btrfs: scrub: try to fix super block errors + - btrfs: don't print information about space cache or tree every remount + - btrfs: call __btrfs_remove_free_space_cache_locked on cache load failure + - ARM: 9233/1: stacktrace: Skip frame pointer boundary check for + call_with_stack() + - ARM: 9234/1: stacktrace: Avoid duplicate saving of exception PC value + - ARM: 9242/1: kasan: Only map modules if CONFIG_KASAN_VMALLOC=n + - clk: zynqmp: Fix stack-out-of-bounds in strncpy` + - media: cx88: Fix a null-ptr-deref bug in buffer_prepare() + - media: platform: fix some double free in meson-ge2d and mtk-jpeg and s5p-mfc + - clk: zynqmp: pll: rectify rate rounding in zynqmp_pll_round_rate + - RDMA/rxe: Delete error messages triggered by incoming Read requests + - usb: host: xhci-plat: suspend and resume clocks + - usb: host: xhci-plat: suspend/resume clks for brcm + - scsi: lpfc: Fix null ndlp ptr dereference in abnormal exit path for GFT_ID + - dmaengine: ti: k3-udma: Reset UDMA_CHAN_RT byte counters to prevent overflow + - scsi: 3w-9xxx: Avoid disabling device if failing to enable it + - nbd: Fix hung when signal interrupts nbd_start_device_ioctl() + - iommu/arm-smmu-v3: Make default domain type of HiSilicon PTT device to + identity + - usb: gadget: uvc: increase worker prio to WQ_HIGHPRI + - power: supply: adp5061: fix out-of-bounds read in adp5061_get_chg_type() + - staging: vt6655: fix potential memory leak + - blk-throttle: prevent overflow while calculating wait time + - ata: libahci_platform: Sanity check the DT child nodes number + - bcache: fix set_at_max_writeback_rate() for multiple attached devices + - soundwire: cadence: Don't overwrite msg->buf during write commands + - soundwire: intel: fix error handling on dai registration issues + - HID: roccat: Fix use-after-free in roccat_read() + - HSI: ssi_protocol: fix potential resource leak in ssip_pn_open() + - HID: nintendo: check analog user calibration for plausibility + - eventfd: guard wake_up in eventfd fs calls as well + - md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d + - usb: host: xhci: Fix potential memory leak in xhci_alloc_stream_info() + - usb: musb: Fix musb_gadget.c rxstate overflow bug + - usb: dwc3: core: add gfladj_refclk_lpm_sel quirk + - arm64: dts: imx8mp: Add snps,gfladj-refclk-lpm-sel quirk to USB nodes + - usb: dwc3: core: Enable GUCTL1 bit 10 for fixing termination error after + resume bug + - Revert "usb: storage: Add quirk for Samsung Fit flash" + - staging: rtl8723bs: fix potential memory leak in rtw_init_drv_sw() + - staging: rtl8723bs: fix a potential memory leak in rtw_init_cmd_priv() + - scsi: tracing: Fix compile error in trace_array calls when TRACING is + disabled + - ext2: Use kvmalloc() for group descriptor array + - nvme: handle effects after freeing the request + - nvme: copy firmware_rev on each init + - nvmet-tcp: add bounds check on Transfer Tag + - usb: idmouse: fix an uninit-value in idmouse_open + - blk-mq: use quiesced elevator switch when reinitializing queues + - hwmon (occ): Retry for checksum failure + - fsi: occ: Prevent use after free + - usb: typec: ucsi: Don't warn on probe deferral + - clk: bcm2835: Make peripheral PLLC critical + - clk: bcm2835: Round UART input clock up + - perf: Skip and warn on unknown format 'configN' attrs + - perf intel-pt: Fix segfault in intel_pt_print_info() with uClibc + - perf intel-pt: Fix system_wide dummy event for hybrid + - mm: hugetlb: fix UAF in hugetlb_handle_userfault + - net: ieee802154: return -EINVAL for unknown addr type + - ALSA: usb-audio: Fix last interface check for registration + - blk-wbt: fix that 'rwb->wc' is always set to 1 in wbt_init() + - [Config] updateconfigs for MDIO_BITBANG + - net: ethernet: ti: davinci_mdio: fix build for mdio bitbang uses + - Revert "drm/amd/display: correct hostvm flag" + - Revert "net/ieee802154: reject zero-sized raw_sendmsg()" + - net/ieee802154: don't warn zero-sized raw_sendmsg() + - powerpc/64s/interrupt: Fix lost interrupts when returning to soft-masked + context + - drm/amd/display: Fix build breakage with CONFIG_DEBUG_FS=n + - kbuild: Add skip_encoding_btf_enum64 option to pahole + - Kconfig.debug: simplify the dependency of DEBUG_INFO_DWARF4/5 + - Kconfig.debug: add toolchain checks for DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT + - [Config] updateconfigs for AS_HAS_NON_CONST_LEB128 + - lib/Kconfig.debug: Add check for non-constant .{s,u}leb128 support to DWARF5 + - HID: uclogic: Add missing suffix for digitalizers + - ext4: continue to expand file system when the target size doesn't reach + - drm/i915: Rename block_size()/block_offset() + - drm/i915/bios: Validate fp_timing terminator presence + - drm/i915/bios: Use hardcoded fp_timing size for generating LFP data pointers + - Linux 5.19.17 + + * Kinetic update: v5.19.16 upstream stable release (LP: #1994164) + - nilfs2: fix use-after-free bug of struct nilfs_root + - nilfs2: fix leak of nilfs_root in case of writer thread creation failure + - nilfs2: replace WARN_ONs by nilfs_error for checkpoint acquisition failure + - ceph: don't truncate file in atomic_open + - nvme-pci: set min_align_mask before calculating max_hw_sectors + - random: restore O_NONBLOCK support + - random: clamp credited irq bits to maximum mixed + - ALSA: hda: Fix position reporting on Poulsbo + - ALSA: hda/realtek: Add quirk for HP Zbook Firefly 14 G9 model + - efi: Correct Macmini DMI match in uefi cert quirk + - USB: serial: qcserial: add new usb-id for Dell branded EM7455 + - Revert "USB: fixup for merge issue with "usb: dwc3: Don't switch OTG -> + peripheral if extcon is present"" + - Revert "usb: dwc3: Don't switch OTG -> peripheral if extcon is present" + - Revert "powerpc/rtas: Implement reentrant rtas call" + - Revert "crypto: qat - reduce size of mapped region" + - random: avoid reading two cache lines on irq randomness + - random: use expired timer rather than wq for mixing fast pool + - mctp: prevent double key removal and unref + - Input: xpad - add supported devices as contributed on github + - Input: xpad - fix wireless 360 controller breaking after suspend + - misc: pci_endpoint_test: Aggregate params checking for xfer + - misc: pci_endpoint_test: Fix pci_endpoint_test_{copy,write,read}() panic + - Linux 5.19.16 + + * Kinetic update: v5.19.15 upstream stable release (LP: #1994078) + - sparc: Unbreak the build + - Makefile.extrawarn: Move -Wcast-function-type-strict to W=1 + - [Config] updateconfigs for CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER + - hardening: Remove Clang's enable flag for -ftrivial-auto-var-init=zero + - docs: update mediator information in CoC docs + - xsk: Inherit need_wakeup flag for shared sockets + - firmware: arm_scmi: Improve checks in the info_get operations + - firmware: arm_scmi: Harden accesses to the sensor domains + - firmware: arm_scmi: Add SCMI PM driver remove routine + - arm64: dts: rockchip: fix upper usb port on BPI-R2-Pro + - dmaengine: xilinx_dma: Fix devm_platform_ioremap_resource error handling + - dmaengine: xilinx_dma: cleanup for fetching xlnx,num-fstores property + - dmaengine: xilinx_dma: Report error in case of dma_set_mask_and_coherent API + failure + - wifi: iwlwifi: don't spam logs with NSS>2 messages + - ARM: dts: fix Moxa SDIO 'compatible', remove 'sdhci' misnomer + - drm/amdgpu/mes: zero the sdma_hqd_mask of 2nd SDMA engine for SDMA 6.0.1 + - scsi: qedf: Fix a UAF bug in __qedf_probe() + - net/ieee802154: fix uninit value bug in dgram_sendmsg + - net: marvell: prestera: add support for for Aldrin2 + - ALSA: hda/hdmi: Fix the converter reuse for the silent stream + - um: Cleanup syscall_handler_t cast in syscalls_32.h + - um: Cleanup compiler warning in arch/x86/um/tls_32.c + - gpio: ftgpio010: Make irqchip immutable + - arch: um: Mark the stack non-executable to fix a binutils warning + - net: atlantic: fix potential memory leak in aq_ndev_close() + - KVM: s390: Pass initialized arg even if unused + - drm/amd/display: Fix double cursor on non-video RGB MPO + - drm/amd/display: Assume an LTTPR is always present on fixed_vs links + - drm/amd/display: update gamut remap if plane has changed + - drm/amd/display: skip audio setup when audio stream is enabled + - drm/amd/display: Fix DP MST timeslot issue when fallback happened + - drm/amd/display: increase dcn315 pstate change latency + - perf/x86/intel: Fix unchecked MSR access error for Alder Lake N + - don't use __kernel_write() on kmap_local_page() + - i2c: davinci: fix PM disable depth imbalance in davinci_i2c_probe + - usb: mon: make mmapped memory read only + - USB: serial: ftdi_sio: fix 300 bps rate for SIO + - gpiolib: acpi: Add support to ignore programming an interrupt + - gpiolib: acpi: Add a quirk for Asus UM325UAZ + - mmc: core: Replace with already defined values for readability + - mmc: core: Terminate infinite loop in SD-UHS voltage switch + - rpmsg: qcom: glink: replace strncpy() with strscpy_pad() + - bpf: Gate dynptr API behind CAP_BPF + - net: ethernet: mtk_eth_soc: fix state in __mtk_foe_entry_clear + - bpf: Fix resetting logic for unreferenced kptrs + - Bluetooth: use hdev->workqueue when queuing hdev->{cmd,ncmd}_timer works + - Revert "clk: ti: Stop using legacy clkctrl names for omap4 and 5" + - Linux 5.19.15 + + * Kinetic update: v5.19.14 upstream stable release (LP: #1994076) + - riscv: make t-head erratas depend on MMU + - tools/perf: Fix out of bound access to cpu mask array + - perf record: Fix cpu mask bit setting for mixed mmaps + - counter: 104-quad-8: Utilize iomap interface + - counter: 104-quad-8: Implement and utilize register structures + - counter: 104-quad-8: Fix skipped IRQ lines during events configuration + - uas: add no-uas quirk for Hiksemi usb_disk + - usb-storage: Add Hiksemi USB3-FW to IGNORE_UAS + - uas: ignore UAS for Thinkplus chips + - usb: typec: ucsi: Remove incorrect warning + - thunderbolt: Explicitly reset plug events delay back to USB4 spec value + - net: usb: qmi_wwan: Add new usb-id for Dell branded EM7455 + - Input: snvs_pwrkey - fix SNVS_HPVIDR1 register address + - can: c_can: don't cache TX messages for C_CAN cores + - clk: ingenic-tcu: Properly enable registers before accessing timers + - wifi: mac80211: ensure vif queues are operational after start + - x86/sgx: Do not fail on incomplete sanitization on premature stop of ksgxd + - frontswap: don't call ->init if no ops are registered + - ARM: dts: integrator: Tag PCI host with device_type + - ntfs: fix BUG_ON in ntfs_lookup_inode_by_name() + - x86/uaccess: avoid check_object_size() in copy_from_user_nmi() + - mm/damon/dbgfs: fix memory leak when using debugfs_lookup() + - net: mt7531: only do PLL once after the reset + - Revert "firmware: arm_scmi: Add clock management to the SCMI power domain" + - powerpc/64s/radix: don't need to broadcast IPI for radix pmd collapse flush + - drm/i915/gt: Restrict forced preemption to the active context + - drm/amdgpu: Add amdgpu suspend-resume code path under SRIOV + - vduse: prevent uninitialized memory accesses + - libata: add ATA_HORKAGE_NOLPM for Pioneer BDR-207M and BDR-205 + - mm: fix BUG splat with kvmalloc + GFP_ATOMIC + - mptcp: factor out __mptcp_close() without socket lock + - mptcp: fix unreleased socket in accept queue + - mmc: moxart: fix 4-bit bus width and remove 8-bit bus width + - mmc: hsq: Fix data stomping during mmc recovery + - mm: gup: fix the fast GUP race against THP collapse + - mm/page_alloc: fix race condition between build_all_zonelists and page + allocation + - mm: prevent page_frag_alloc() from corrupting the memory + - mm/page_isolation: fix isolate_single_pageblock() isolation behavior + - mm: fix dereferencing possible ERR_PTR + - mm/migrate_device.c: flush TLB while holding PTL + - mm/migrate_device.c: add missing flush_cache_page() + - mm/migrate_device.c: copy pte dirty bit to page + - mm: fix madivse_pageout mishandling on non-LRU page + - mm: bring back update_mmu_cache() to finish_fault() + - mm/hugetlb: correct demote page offset logic + - mm,hwpoison: check mm when killing accessing process + - media: dvb_vb2: fix possible out of bound access + - media: rkvdec: Disable H.264 error detection + - media: mediatek: vcodec: Drop platform_get_resource(IORESOURCE_IRQ) + - media: v4l2-compat-ioctl32.c: zero buffer passed to + v4l2_compat_get_array_args() + - ARM: dts: am33xx: Fix MMCHS0 dma properties + - reset: imx7: Fix the iMX8MP PCIe PHY PERST support + - ARM: dts: am5748: keep usb4_tm disabled + - soc: sunxi: sram: Actually claim SRAM regions + - soc: sunxi: sram: Prevent the driver from being unbound + - soc: sunxi: sram: Fix probe function ordering issues + - soc: sunxi: sram: Fix debugfs info for A64 SRAM C + - ASoC: imx-card: Fix refcount issue with of_node_put + - clk: microchip: mpfs: fix clk_cfg array bounds violation + - clk: microchip: mpfs: make the rtc's ahb clock critical + - arm64: dts: qcom: sm8350: fix UFS PHY serdes size + - ASoC: tas2770: Reinit regcache on reset + - drm/bridge: lt8912b: add vsync hsync + - drm/bridge: lt8912b: set hdmi or dvi mode + - drm/bridge: lt8912b: fix corrupted image output + - net: macb: Fix ZynqMP SGMII non-wakeup source resume failure + - Revert "drm: bridge: analogix/dp: add panel prepare/unprepare in + suspend/resume time" + - Input: melfas_mip4 - fix return value check in mip4_probe() + - gpio: mvebu: Fix check for pwm support on non-A8K platforms + - perf parse-events: Break out tracepoint and printing + - perf print-events: Fix "perf list" can not display the PMU prefix for some + hybrid cache events + - perf parse-events: Remove "not supported" hybrid cache events + - usbnet: Fix memory leak in usbnet_disconnect() + - net: sched: act_ct: fix possible refcount leak in tcf_ct_init() + - cxgb4: fix missing unlock on ETHOFLD desc collect fail path + - net/mlxbf_gige: Fix an IS_ERR() vs NULL bug in mlxbf_gige_mdio_probe + - nvme: Fix IOC_PR_CLEAR and IOC_PR_RELEASE ioctls for nvme devices + - wifi: cfg80211: fix MCS divisor value + - wifi: mac80211: fix regression with non-QoS drivers + - wifi: mac80211: fix memory corruption in minstrel_ht_update_rates() + - net: stmmac: power up/down serdes in stmmac_open/release + - net: phy: Don't WARN for PHY_UP state in mdio_bus_phy_resume() + - selftests: Fix the if conditions of in test_extra_filter() + - ice: xsk: change batched Tx descriptor cleaning + - ice: xsk: drop power of 2 ring size restriction for AF_XDP + - vdpa/ifcvf: fix the calculation of queuepair + - virtio-blk: Fix WARN_ON_ONCE in virtio_queue_rq() + - vdpa/mlx5: Fix MQ to support non power of two num queues + - clk: imx: imx6sx: remove the SET_RATE_PARENT flag for QSPI clocks + - drm/i915/gt: Perf_limit_reasons are only available for Gen11+ + - clk: iproc: Do not rely on node name for correct PLL setup + - clk: imx93: drop of_match_ptr + - net: mscc: ocelot: fix tagged VLAN refusal while under a VLAN-unaware bridge + - net: ethernet: mtk_eth_soc: fix mask of RX_DMA_GET_SPORT{,_V2} + - perf test: Fix test case 87 ("perf record tests") for hybrid systems + - perf tests record: Fail the test if the 'errs' counter is not zero + - KVM: x86: Hide IA32_PLATFORM_DCA_CAP[31:0] from the guest + - x86/cacheinfo: Add a cpu_llc_shared_mask() UP variant + - x86/alternative: Fix race in try_get_desc() + - damon/sysfs: fix possible memleak on damon_sysfs_add_target + - Linux 5.19.14 + + * Kinetic update: v5.19.13 upstream stable release (LP: #1994075) + - Linux 5.19.13 + + * Kinetic update: v5.19.12 upstream stable release (LP: #1994074) + - smb3: Move the flush out of smb2_copychunk_range() into its callers + - smb3: fix temporary data corruption in collapse range + - smb3: fix temporary data corruption in insert range + - usb: add quirks for Lenovo OneLink+ Dock + - usb: gadget: udc-xilinx: replace memcpy with memcpy_toio + - smb3: use filemap_write_and_wait_range instead of filemap_write_and_wait + - Revert "usb: add quirks for Lenovo OneLink+ Dock" + - Revert "usb: gadget: udc-xilinx: replace memcpy with memcpy_toio" + - xfrm: fix XFRMA_LASTUSED comment + - block: remove QUEUE_FLAG_DEAD + - block: stop setting the nomerges flags in blk_cleanup_queue + - block: simplify disk shutdown + - scsi: core: Fix a use-after-free + - drivers/base: Fix unsigned comparison to -1 in CPUMAP_FILE_MAX_BYTES + - USB: core: Fix RST error in hub.c + - USB: serial: option: add Quectel BG95 0x0203 composition + - USB: serial: option: add Quectel RM520N + - ALSA: core: Fix double-free at snd_card_new() + - ALSA: hda/tegra: set depop delay for tegra + - ALSA: hda: Fix hang at HD-audio codec unbinding due to refcount saturation + - ALSA: hda: Fix Nvidia dp infoframe + - ALSA: hda: add Intel 5 Series / 3400 PCI DID + - ALSA: hda/realtek: Add quirk for Huawei WRT-WX9 + - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5570 laptop + - ALSA: hda/realtek: Re-arrange quirk table entries + - ALSA: hda/realtek: Add pincfg for ASUS G513 HP jack + - ALSA: hda/realtek: Add pincfg for ASUS G533Z HP jack + - ALSA: hda/realtek: Add quirk for ASUS GA503R laptop + - ALSA: hda/realtek: Enable 4-speaker output Dell Precision 5530 laptop + - ALSA: hda/realtek: Add a quirk for HP OMEN 16 (8902) mute LED + - iommu/vt-d: Check correct capability for sagaw determination + - exfat: fix overflow for large capacity partition + - btrfs: fix hang during unmount when stopping block group reclaim worker + - btrfs: fix hang during unmount when stopping a space reclaim worker + - btrfs: zoned: wait for extent buffer IOs before finishing a zone + - libperf evlist: Fix polling of system-wide events + - media: flexcop-usb: fix endpoint type check + - usb: dwc3: core: leave default DMA if the controller does not support 64-bit + DMA + - thunderbolt: Add support for Intel Maple Ridge single port controller + - efi: x86: Wipe setup_data on pure EFI boot + - efi: libstub: check Shim mode using MokSBStateRT + - wifi: mt76: fix reading current per-tid starting sequence number for + aggregation + - gpio: mockup: fix NULL pointer dereference when removing debugfs + - gpio: mockup: Fix potential resource leakage when register a chip + - gpiolib: cdev: Set lineevent_state::irq after IRQ register successfully + - riscv: fix a nasty sigreturn bug... + - riscv: fix RISCV_ISA_SVPBMT kconfig dependency warning + - drm/i915/gem: Flush contexts on driver release + - drm/i915/gem: Really move i915_gem_context.link under ref protection + - xen/xenbus: fix xenbus_setup_ring() + - kasan: call kasan_malloc() from __kmalloc_*track_caller() + - can: flexcan: flexcan_mailbox_read() fix return value for drop = true + - net: mana: Add rmb after checking owner bits + - mm/slub: fix to return errno if kmalloc() fails + - mm: slub: fix flush_cpu_slab()/__free_slab() invocations in task context. + - KVM: x86: Reinstate kvm_vcpu_arch.guest_supported_xcr0 + - KVM: x86: Always enable legacy FP/SSE in allowed user XFEATURES + - KVM: x86: Inject #UD on emulated XSETBV if XSAVES isn't enabled + - perf/arm-cmn: Add more bits to child node address offset field + - arm64: topology: fix possible overflow in amu_fie_setup() + - vmlinux.lds.h: CFI: Reduce alignment of jump-table to function alignment + - batman-adv: Fix hang up with small MTU hard-interface + - firmware: arm_scmi: Harden accesses to the reset domains + - firmware: arm_scmi: Fix the asynchronous reset requests + - arm64: dts: rockchip: Lower sd speed on quartz64-b + - arm64: dts: rockchip: Pull up wlan wake# on Gru-Bob + - arm64: dts: rockchip: Fix typo in lisense text for PX30.Core + - drm/mediatek: dsi: Add atomic {destroy,duplicate}_state, reset callbacks + - arm64: dts: imx8mm: Reverse CPLD_Dn GPIO label mapping on MX8Menlo + - arm64: dts: rockchip: Set RK3399-Gru PCLK_EDP to 24 MHz + - arm64: dts: imx8mn: remove GPU power domain reset + - arm64: dts: imx8ulp: add #reset-cells for pcc + - dmaengine: ti: k3-udma-private: Fix refcount leak bug in of_xudma_dev_get() + - arm64: dts: rockchip: fix property for usb2 phy supply on rock-3a + - arm64: dts: rockchip: fix property for usb2 phy supply on rk3568-evb1-v10 + - arm64: dts: rockchip: Remove 'enable-active-low' from rk3399-puma + - arm64: dts: rockchip: Remove 'enable-active-low' from rk3566-quartz64-a + - arm64: dts: imx8mm-verdin: extend pmic voltages + - netfilter: nf_conntrack_sip: fix ct_sip_walk_headers + - netfilter: nf_conntrack_irc: Tighten matching on DCC message + - netfilter: nfnetlink_osf: fix possible bogus match in nf_osf_find() + - ice: Don't double unplug aux on peer initiated reset + - ice: Fix crash by keep old cfg when update TCs more than queues + - iavf: Fix cached head and tail value for iavf_get_tx_pending + - ipvlan: Fix out-of-bound bugs caused by unset skb->mac_header + - net: core: fix flow symmetric hash + - wifi: iwlwifi: Mark IWLMEI as broken + - [Config] updateconfigs for IWLMEI + - arm64: dts: tqma8mqml: Include phy-imx8-pcie.h header + - drm/mediatek: Fix wrong dither settings + - arm64: dts: imx8mp-venice-gw74xx: fix CAN STBY polarity + - arm64: dts: imx8mp-venice-gw74xx: fix ksz9477 cpu port + - ARM: dts: lan966x: Fix the interrupt number for internal PHYs + - net: phy: aquantia: wait for the suspend/resume operations to finish + - arm64: dts: imx8mp-venice-gw74xx: fix port/phy validation + - scsi: qla2xxx: Fix memory leak in __qlt_24xx_handle_abts() + - scsi: mpt3sas: Fix return value check of dma_get_required_mask() + - net: bonding: Share lacpdu_mcast_addr definition + - net: bonding: Unsync device addresses on ndo_stop + - net: team: Unsync device addresses on ndo_stop + - drm/panel: simple: Fix innolux_g121i1_l01 bus_format + - mm/slab_common: fix possible double free of kmem_cache + - MIPS: lantiq: export clk_get_io() for lantiq_wdt.ko + - MIPS: Loongson32: Fix PHY-mode being left unspecified + - um: fix default console kernel parameter + - iavf: Fix bad page state + - mlxbf_gige: clear MDIO gateway lock after read + - i40e: Fix set max_tx_rate when it is lower than 1 Mbps + - netdevsim: Fix hwstats debugfs file permissions + - sfc: fix TX channel offset when using legacy interrupts + - sfc: fix null pointer dereference in efx_hard_start_xmit + - bnxt_en: fix flags to check for supported fw version + - gve: Fix GFP flags when allocing pages + - drm/hisilicon: Add depends on MMU + - of: mdio: Add of_node_put() when breaking out of for_each_xx + - net: ipa: properly limit modem routing table use + - sfc/siena: fix TX channel offset when using legacy interrupts + - sfc/siena: fix null pointer dereference in efx_hard_start_xmit + - wireguard: ratelimiter: disable timings test by default + - wireguard: netlink: avoid variable-sized memcpy on sockaddr + - net: enetc: move enetc_set_psfp() out of the common enetc_set_features() + - net: enetc: deny offload of tc-based TSN features on VF interfaces + - ipv6: Fix crash when IPv6 is administratively disabled + - net/sched: taprio: avoid disabling offload when it was never enabled + - net/sched: taprio: make qdisc_leaf() see the per-netdev-queue pfifo child + qdiscs + - ice: config netdev tc before setting queues number + - ice: Fix interface being down after reset with link-down-on-close flag on + - netfilter: nf_tables: fix nft_counters_enabled underflow at + nf_tables_addchain() + - netfilter: nf_tables: fix percpu memory leak at nf_tables_addchain() + - netfilter: ebtables: fix memory leak when blob is malformed + - netfilter: nf_ct_ftp: fix deadlock when nat rewrite is needed + - net: ravb: Fix PHY state warning splat during system resume + - net: sh_eth: Fix PHY state warning splat during system resume + - gpio: tqmx86: fix uninitialized variable girq + - can: gs_usb: gs_can_open(): fix race dev->can.state condition + - perf stat: Fix BPF program section name + - perf stat: Fix cpu map index in bperf cgroup code + - perf jit: Include program header in ELF files + - perf kcore_copy: Do not check /proc/modules is unchanged + - perf tools: Honor namespace when synthesizing build-ids + - drm/mediatek: dsi: Move mtk_dsi_stop() call back to mtk_dsi_poweroff() + - ice: Fix ice_xdp_xmit() when XDP TX queue number is not sufficient + - net/smc: Stop the CLC flow if no link to map buffers on + - net: phy: micrel: fix shared interrupt on LAN8814 + - bonding: fix NULL deref in bond_rr_gen_slave_id + - net: sunhme: Fix packet reception for len < RX_COPY_THRESHOLD + - net: sched: fix possible refcount leak in tc_new_tfilter() + - bnxt: prevent skb UAF after handing over to PTP worker + - selftests: forwarding: add shebang for sch_red.sh + - io_uring: ensure that cached task references are always put on exit + - serial: fsl_lpuart: Reset prior to registration + - serial: Create uart_xmit_advance() + - serial: tegra: Use uart_xmit_advance(), fixes icount.tx accounting + - serial: tegra-tcu: Use uart_xmit_advance(), fixes icount.tx accounting + - cgroup: cgroup_get_from_id() must check the looked-up kn is a directory + - phy: marvell: phy-mvebu-a3700-comphy: Remove broken reset support + - s390/dasd: fix Oops in dasd_alias_get_start_dev due to missing pavgroup + - blk-mq: fix error handling in __blk_mq_alloc_disk + - block: call blk_mq_exit_queue from disk_release for never added disks + - block: Do not call blk_put_queue() if gendisk allocation fails + - Drivers: hv: Never allocate anything besides framebuffer from framebuffer + memory region + - drm/gma500: Fix BUG: sleeping function called from invalid context errors + - drm/gma500: Fix WARN_ON(lock->magic != lock) error + - drm/gma500: Fix (vblank) IRQs not working after suspend/resume + - gpio: ixp4xx: Make irqchip immutable + - drm/amd/pm: disable BACO entry/exit completely on several sienna cichlid + cards + - drm/amdgpu: change the alignment size of TMR BO to 1M + - drm/amdgpu: add HDP remap functionality to nbio 7.7 + - drm/amdgpu: Skip reset error status for psp v13_0_0 + - drm/amd/display: Limit user regamma to a valid value + - drm/amd/display: Reduce number of arguments of dml31's + CalculateWatermarksAndDRAMSpeedChangeSupport() + - drm/amd/display: Reduce number of arguments of dml31's + CalculateFlipSchedule() + - drm/amd/display: Mark dml30's UseMinimumDCFCLK() as noinline for stack usage + - drm/rockchip: Fix return type of cdn_dp_connector_mode_valid + - gpio: mt7621: Make the irqchip immutable + - pmem: fix a name collision + - fsdax: Fix infinite loop in dax_iomap_rw() + - workqueue: don't skip lockdep work dependency in cancel_work_sync() + - i2c: imx: If pm_runtime_get_sync() returned 1 device access is possible + - i2c: mlxbf: incorrect base address passed during io write + - i2c: mlxbf: prevent stack overflow in mlxbf_i2c_smbus_start_transaction() + - i2c: mlxbf: Fix frequency calculation + - i2c: mux: harden i2c_mux_alloc() against integer overflows + - drm/amdgpu: don't register a dirty callback for non-atomic + - certs: make system keyring depend on built-in x509 parser + - Makefile.debug: set -g unconditional on CONFIG_DEBUG_INFO_SPLIT + - Makefile.debug: re-enable debug info for .S files + - devdax: Fix soft-reservation memory description + - ext4: fix bug in extents parsing when eh_entries == 0 and eh_depth > 0 + - ext4: limit the number of retries after discarding preallocations blocks + - ext4: make mballoc try target group first even with mb_optimize_scan + - ext4: avoid unnecessary spreading of allocations among groups + - ext4: use locality group preallocation for small closed files + - ext4: use buckets for cr 1 block scan instead of rbtree + - Revert "block: freeze the queue earlier in del_gendisk" + - ext4: fixup possible uninitialized variable access in + ext4_mb_choose_next_group_cr1() + - ext4: make directory inode spreading reflect flexbg size + - Linux 5.19.12 + + * Kinetic update: v5.19.11 upstream stable release (LP: #1994070) + - of: fdt: fix off-by-one error in unflatten_dt_nodes() + - pinctrl: qcom: sc8180x: Fix gpio_wakeirq_map + - pinctrl: qcom: sc8180x: Fix wrong pin numbers + - pinctrl: rockchip: Enhance support for IRQ_TYPE_EDGE_BOTH + - pinctrl: sunxi: Fix name for A100 R_PIO + - SUNRPC: Fix call completion races with call_decode() + - NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0 + - gpio: mpc8xxx: Fix support for IRQ_TYPE_LEVEL_LOW flow_type in mpc85xx + - NFSv4.2: Update mode bits after ALLOCATE and DEALLOCATE + - Revert "SUNRPC: Remove unreachable error condition" + - drm/panel-edp: Fix delays for Innolux N116BCA-EA1 + - drm/meson: Correct OSD1 global alpha value + - drm/meson: Fix OSD1 RGB to YCbCr coefficient + - drm/rockchip: vop2: Fix eDP/HDMI sync polarities + - drm/i915/vdsc: Set VDSC PIC_HEIGHT before using for DP DSC + - drm/i915/guc: Don't update engine busyness stats too frequently + - drm/i915/guc: Cancel GuC engine busyness worker synchronously + - block: blk_queue_enter() / __bio_queue_enter() must return -EAGAIN for + nowait + - parisc: ccio-dma: Add missing iounmap in error path in ccio_probe() + - of/device: Fix up of_dma_configure_id() stub + - io_uring/msg_ring: check file type before putting + - cifs: revalidate mapping when doing direct writes + - cifs: don't send down the destination address to sendmsg for a SOCK_STREAM + - cifs: always initialize struct msghdr smb_msg completely + - blk-lib: fix blkdev_issue_secure_erase + - parisc: Allow CONFIG_64BIT with ARCH=parisc + - tools/include/uapi: Fix for parisc and xtensa + - drm/i915/gt: Fix perf limit reasons bit positions + - drm/i915: Set correct domains values at _i915_vma_move_to_active + - drm/amdgpu: make sure to init common IP before gmc + - drm/amdgpu: Don't enable LTR if not supported + - drm/amdgpu: move nbio ih_doorbell_range() into ih code for vega + - drm/amdgpu: move nbio sdma_doorbell_range() into sdma code for vega + - net: Find dst with sk's xfrm policy not ctl_sk + - dt-bindings: apple,aic: Fix required item "apple,fiq-index" in affinity + description + - cgroup: Add missing cpus_read_lock() to cgroup_attach_task_all() + - ALSA: hda/sigmatel: Keep power up while beep is enabled + - ALSA: hda/sigmatel: Fix unused variable warning for beep power change + - Linux 5.19.11 + + * Kinetic update: v5.19.10 upstream stable release (LP: #1994069) + - iommu/vt-d: Fix kdump kernels boot failure with scalable mode + - net/mlx5: Introduce ifc bits for using software vhca id + - net/mlx5: Use software VHCA id when it's supported + - RDMA/mlx5: Rely on RoCE fw cap instead of devlink when setting profile + - RDMA/mlx5: Add a umr recovery flow + - RDMA/mlx5: Fix UMR cleanup on error flow of driver init + - ACPI: resource: skip IRQ override on AMD Zen platforms + - Input: goodix - add support for GT1158 + - platform/surface: aggregator_registry: Add support for Surface Laptop Go 2 + - drm/msm/rd: Fix FIFO-full deadlock + - peci: cpu: Fix use-after-free in adev_release() + - kvm: x86: mmu: Always flush TLBs when enabling dirty logging + - dt-bindings: iio: gyroscope: bosch,bmg160: correct number of pins + - HID: ishtp-hid-clientHID: ishtp-hid-client: Fix comment typo + - hid: intel-ish-hid: ishtp: Fix ishtp client sending disordered message + - Bluetooth: MGMT: Fix Get Device Flags + - tg3: Disable tg3 device on system reboot to avoid triggering AER + - r8152: add PID for the Lenovo OneLink+ Dock + - gpio: mockup: remove gpio debugfs when remove device + - ieee802154: cc2520: add rc code in cc2520_tx() + - Input: iforce - add support for Boeder Force Feedback Wheel + - drm/amdgpu: disable FRU access on special SIENNA CICHLID card + - drm/amd/pm: use vbios carried pptable for all SMU13.0.7 SKUs + - nvme-pci: add NVME_QUIRK_BOGUS_NID for Lexar NM610 + - nvmet-tcp: fix unhandled tcp states in nvmet_tcp_state_change() + - drm/amd/amdgpu: skip ucode loading if ucode_size == 0 + - net: dsa: hellcreek: Print warning only once + - perf/arm_pmu_platform: fix tests for platform_get_irq() failure + - platform/x86: acer-wmi: Acer Aspire One AOD270/Packard Bell Dot keymap fixes + - usb: storage: Add ASUS <0x0b05:0x1932> to IGNORE_UAS + - platform/x86: asus-wmi: Increase FAN_CURVE_BUF_LEN to 32 + - LoongArch: Fix section mismatch due to acpi_os_ioremap() + - LoongArch: Fix arch_remove_memory() undefined build error + - gpio: 104-dio-48e: Make irq_chip immutable + - gpio: 104-idio-16: Make irq_chip immutable + - RDMA/irdma: Use s/g array in post send only when its valid + - Input: goodix - add compatible string for GT1158 + - Linux 5.19.10 + + * Kinetic update: v5.19.9 upstream stable release (LP: #1994068) + - efi: libstub: Disable struct randomization + - efi: capsule-loader: Fix use-after-free in efi_capsule_write + - wifi: mt76: mt7921e: fix crash in chip reset fail + - wifi: iwlegacy: 4965: corrected fix for potential off-by-one overflow in + il4965_rs_fill_link_cmd() + - fs: only do a memory barrier for the first set_buffer_uptodate() + - soc: fsl: select FSL_GUTS driver for DPIO + - Revert "mm: kmemleak: take a full lowmem check in kmemleak_*_phys()" + - scsi: qla2xxx: Disable ATIO interrupt coalesce for quad port ISP27XX + - scsi: core: Allow the ALUA transitioning state enough time + - scsi: megaraid_sas: Fix double kfree() + - drm/gem: Fix GEM handle release errors + - drm/amdgpu: Move psp_xgmi_terminate call from amdgpu_xgmi_remove_device to + psp_hw_fini + - drm/amdgpu: fix hive reference leak when adding xgmi device + - drm/amdgpu: Check num_gfx_rings for gfx v9_0 rb setup. + - drm/amdgpu: Remove the additional kfd pre reset call for sriov + - drm/radeon: add a force flush to delay work when radeon + - scsi: ufs: core: Reduce the power mode change timeout + - Revert "parisc: Show error if wrong 32/64-bit compiler is being used" + - parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources() + - parisc: Add runtime check to prevent PA2.0 kernels on PA1.x machines + - [Config] updateconfigs for ARM64_ERRATUM_2457168 + - arm64: errata: add detection for AMEVCNTR01 incrementing incorrectly + - netfilter: conntrack: work around exceeded receive window + - thermal/int340x_thermal: handle data_vault when the value is ZERO_SIZE_PTR + - cpufreq: check only freq_table in __resolve_freq() + - net/core/skbuff: Check the return value of skb_copy_bits() + - md: Flush workqueue md_rdev_misc_wq in md_alloc() + - fbdev: omapfb: Fix tests for platform_get_irq() failure + - fbdev: fbcon: Destroy mutex on freeing struct fb_info + - fbdev: chipsfb: Add missing pci_disable_device() in chipsfb_pci_init() + - x86/sev: Mark snp_abort() noreturn + - drm/amdgpu: add sdma instance check for gfx11 CGCG + - drm/amdgpu: mmVM_L2_CNTL3 register not initialized correctly + - ALSA: pcm: oss: Fix race at SNDCTL_DSP_SYNC + - ALSA: emu10k1: Fix out of bounds access in snd_emu10k1_pcm_channel_alloc() + - ALSA: hda: Once again fix regression of page allocations with IOMMU + - ALSA: aloop: Fix random zeros in capture data when using jiffies timer + - ALSA: usb-audio: Clear fixed clock rate at closing EP + - ALSA: usb-audio: Fix an out-of-bounds bug in + __snd_usb_parse_audio_interface() + - tracefs: Only clobber mode/uid/gid on remount if asked + - tracing: hold caller_addr to hardirq_{enable,disable}_ip + - tracing: Fix to check event_mutex is held while accessing trigger list + - btrfs: zoned: set pseudo max append zone limit in zone emulation mode + - btrfs: zoned: fix API misuse of zone finish waiting + - vfio/type1: Unpin zero pages + - kprobes: Prohibit probes in gate area + - perf: RISC-V: fix access beyond allocated array + - debugfs: add debugfs_lookup_and_remove() + - sched/debug: fix dentry leak in update_sched_domain_debugfs + - drm/amd/display: fix memory leak when using debugfs_lookup() + - driver core: fix driver_set_override() issue with empty strings + - nvmet: fix a use-after-free + - drm/i915/bios: Copy the whole MIPI sequence block + - drm/i915/slpc: Let's fix the PCODE min freq table setup for SLPC + - scsi: mpt3sas: Fix use-after-free warning + - scsi: lpfc: Add missing destroy_workqueue() in error path + - cgroup: Elide write-locking threadgroup_rwsem when updating csses on an + empty subtree + - cgroup: Fix threadgroup_rwsem <-> cpus_read_lock() deadlock + - cifs: remove useless parameter 'is_fsctl' from SMB2_ioctl() + - smb3: missing inode locks in zero range + - spi: bitbang: Fix lsb-first Rx + - ASoC: cs42l42: Only report button state if there was a button interrupt + - Revert "soc: imx: imx8m-blk-ctrl: set power device name" + - arm64: dts: imx8mm-verdin: update CAN clock to 40MHz + - arm64: dts: imx8mm-verdin: use level interrupt for mcp251xfd + - ASoC: qcom: sm8250: add missing module owner + - regmap: spi: Reserve space for register address/padding + - arm64: dts: imx8mp-venice-gw74xx: fix sai2 pin settings + - arm64: dts: imx8mq-tqma8mq: Remove superfluous interrupt-names + - RDMA/rtrs-clt: Use the right sg_cnt after ib_dma_map_sg + - RDMA/rtrs-srv: Pass the correct number of entries for dma mapped SGL + - ARM: dts: imx6qdl-vicut1.dtsi: Fix node name backlight_led + - ARM: dts: imx6qdl-kontron-samx6i: remove duplicated node + - ARM: dts: imx6qdl-kontron-samx6i: fix spi-flash compatible + - arm64: dts: ls1028a-qds-65bb: don't use in-band autoneg for 2500base-x + - soc: imx: gpcv2: Assert reset before ungating clock + - arm64: dts: verdin-imx8mm: add otg2 pd to usbphy + - arm64: dts: imx8mm-venice-gw7901: fix port/phy validation + - arm64: dts: freescale: verdin-imx8mm: fix atmel_mxt_ts reset polarity + - arm64: dts: freescale: verdin-imx8mp: fix atmel_mxt_ts reset polarity + - regulator: core: Clean up on enable failure + - ASoC: SOF: Kconfig: Make IPC_FLOOD_TEST depend on SND_SOC_SOF + - ASoC: SOF: Kconfig: Make IPC_MESSAGE_INJECTOR depend on SND_SOC_SOF + - tee: fix compiler warning in tee_shm_register() + - RDMA/irdma: Fix drain SQ hang with no completion + - arm64: dts: renesas: r8a779g0: Fix HSCIF0 interrupt number + - RDMA/cma: Fix arguments order in net device validation + - soc: brcmstb: pm-arm: Fix refcount leak and __iomem leak bugs + - RDMA/hns: Fix supported page size + - RDMA/hns: Fix wrong fixed value of qp->rq.wqe_shift + - RDMA/hns: Remove the num_qpc_timer variable + - wifi: wilc1000: fix DMA on stack objects + - ARM: at91: pm: fix self-refresh for sama7g5 + - ARM: at91: pm: fix DDR recalibration when resuming from backup and self- + refresh + - ARM: dts: at91: sama5d27_wlsom1: specify proper regulator output ranges + - ARM: dts: at91: sama5d2_icp: specify proper regulator output ranges + - ARM: dts: at91: sama7g5ek: specify proper regulator output ranges + - ARM: dts: at91: sama5d27_wlsom1: don't keep ldo2 enabled all the time + - ARM: dts: at91: sama5d2_icp: don't keep vdd_other enabled all the time + - netfilter: br_netfilter: Drop dst references before setting. + - netfilter: nf_tables: clean up hook list when offload flags check fails + - riscv: dts: microchip: use an mpfs specific l2 compatible + - netfilter: nf_conntrack_irc: Fix forged IP logic + - RDMA/srp: Set scmnd->result only when scmnd is not NULL + - ALSA: usb-audio: Inform the delayed registration more properly + - ALSA: usb-audio: Register card again for iface over delayed_register option + - rxrpc: Fix ICMP/ICMP6 error handling + - rxrpc: Fix an insufficiently large sglist in rxkad_verify_packet_2() + - afs: Use the operation issue time instead of the reply time for callbacks + - kunit: fix assert_type for comparison macros + - Revert "net: phy: meson-gxl: improve link-up behavior" + - sch_sfb: Don't assume the skb is still around after enqueueing to child + - tipc: fix shift wrapping bug in map_get() + - net: introduce __skb_fill_page_desc_noacc + - tcp: TX zerocopy should not sense pfmemalloc status + - ice: Fix DMA mappings leak + - ice: use bitmap_free instead of devm_kfree + - i40e: Fix kernel crash during module removal + - iavf: Detach device during reset task + - xen-netback: only remove 'hotplug-status' when the vif is actually destroyed + - block: don't add partitions if GD_SUPPRESS_PART_SCAN is set + - RDMA/siw: Pass a pointer to virt_to_page() + - bonding: use unspecified address if no available link local address + - bonding: add all node mcast address when slave up + - ipv6: sr: fix out-of-bounds read when setting HMAC data. + - IB/core: Fix a nested dead lock as part of ODP flow + - RDMA/mlx5: Set local port to one when accessing counters + - btrfs: zoned: fix mounting with conventional zones + - erofs: fix error return code in erofs_fscache_{meta_,}read_folio + - erofs: fix pcluster use-after-free on UP platforms + - nvme-tcp: fix UAF when detecting digest errors + - nvme-tcp: fix regression that causes sporadic requests to time out + - tcp: fix early ETIMEDOUT after spurious non-SACK RTO + - btrfs: fix the max chunk size and stripe length calculation + - nvmet: fix mar and mor off-by-one errors + - RDMA/irdma: Report the correct max cqes from query device + - RDMA/irdma: Return error on MR deregister CQP failure + - RDMA/irdma: Return correct WC error for bind operation failure + - RDMA/irdma: Report RNR NAK generation in device caps + - net: dsa: felix: disable cut-through forwarding for frames oversized for tc- + taprio + - net: dsa: felix: access QSYS_TAG_CONFIG under tas_lock in + vsc9959_sched_speed_set + - net: ethernet: mtk_eth_soc: fix typo in __mtk_foe_entry_clear + - net: ethernet: mtk_eth_soc: check max allowed hash in mtk_ppe_check_skb + - net/smc: Fix possible access to freed memory in link clear + - io_uring: recycle kbuf recycle on tw requeue + - net: phy: lan87xx: change interrupt src of link_up to comm_ready + - sch_sfb: Also store skb len before calling child enqueue + - libperf evlist: Fix per-thread mmaps for multi-threaded targets + - perf dlfilter dlfilter-show-cycles: Fix types for print format + - perf script: Fix Cannot print 'iregs' field for hybrid systems + - perf record: Fix synthesis failure warnings + - hwmon: (tps23861) fix byte order in resistance register + - ASoC: mchp-spdiftx: remove references to mchp_i2s_caps + - ASoC: mchp-spdiftx: Fix clang -Wbitfield-constant-conversion + - MIPS: loongson32: ls1c: Fix hang during startup + - kbuild: disable header exports for UML in a straightforward way + - i40e: Refactor tc mqprio checks + - i40e: Fix ADQ rate limiting for PF + - net: bonding: replace dev_trans_start() with the jiffies of the last ARP/NS + - bonding: accept unsolicited NA message + - swiotlb: avoid potential left shift overflow + - iommu/amd: use full 64-bit value in build_completion_wait() + - s390/boot: fix absolute zero lowcore corruption on boot + - time64.h: consolidate uses of PSEC_PER_NSEC + - net: dsa: felix: tc-taprio intervals smaller than MTU should send at least + one packet + - hwmon: (mr75203) fix VM sensor allocation when "intel,vm-map" not defined + - hwmon: (mr75203) update pvt->v_num and vm_num to the actual number of used + sensors + - hwmon: (mr75203) fix voltage equation for negative source input + - hwmon: (mr75203) fix multi-channel voltage reading + - hwmon: (mr75203) enable polling for all VM channels + - perf evlist: Always use arch_evlist__add_default_attrs() + - perf stat: Fix L2 Topdown metrics disappear for raw events + - Revert "arm64: kasan: Revert "arm64: mte: reset the page tag in + page->flags"" + - hwmon: (asus-ec-sensors) add support for Strix Z690-a D4 + - hwmon: (asus-ec-sensors) add support for Maximus XI Hero + - hwmon: (asus-ec-sensors) add missing sensors for X570-I GAMING + - hwmon: (asus-ec-sensors) add definitions for ROG ZENITH II EXTREME + - hwmon: (asus-ec-sensors) autoload module via DMI data + - arm64/bti: Disable in kernel BTI when cross section thunks are broken + - [Config] updateconfigs for ARM64_BTI_KERNEL + - iommu/vt-d: Correctly calculate sagaw value of IOMMU + - iommu/virtio: Fix interaction with VFIO + - iommu: Fix false ownership failure on AMD systems with PASID activated + - drm/amd/display: Add SMU logging code + - drm/amd/display: Removing assert statements for Linux + - Linux 5.19.9 + + * Kinetic update: v5.19.8 upstream stable release (LP: #1994061) + - drm/msm/dp: make eDP panel as the first connected connector + - drm/msm/dsi: fix the inconsistent indenting + - drm/msm/dpu: populate wb or intf before reset_intf_cfg + - drm/msm/dp: delete DP_RECOVERED_CLOCK_OUT_EN to fix tps4 + - drm/msm/dsi: Fix number of regulators for msm8996_dsi_cfg + - drm/msm/dsi: Fix number of regulators for SDM660 + - platform/x86: pmc_atom: Fix SLP_TYPx bitfield mask + - platform/x86: x86-android-tablets: Fix broken touchscreen on Chuwi Hi8 with + Windows BIOS + - xsk: Fix corrupted packets for XDP_SHARED_UMEM + - drm/msm/gpu: Drop qos request if devm_devfreq_add_device() fails + - peci: aspeed: fix error check return value of platform_get_irq() + - iio: adc: mcp3911: make use of the sign bit + - skmsg: Fix wrong last sg check in sk_msg_recvmsg() + - bpf: Restrict bpf_sys_bpf to CAP_PERFMON + - ip_tunnel: Respect tunnel key's "flow_flags" in IP tunnels + - bpf, cgroup: Fix kernel BUG in purge_effective_progs + - drm/i915/gvt: Fix Comet Lake + - ieee802154/adf7242: defer destroy_workqueue call + - bpf: Fix a data-race around bpf_jit_limit. + - drm/i915/ttm: fix CCS handling + - drm/i915/display: avoid warnings when registering dual panel backlight + - ALSA: hda: intel-nhlt: Correct the handling of fmt_config flexible array + - wifi: cfg80211: debugfs: fix return type in ht40allow_map_read() + - xhci: Fix null pointer dereference in remove if xHC has only one roothub + - Revert "xhci: turn off port power in shutdown" + - bpf: Allow helpers to accept pointers with a fixed size + - bpf: Tidy up verifier check_func_arg() + - bpf: Do mark_chain_precision for ARG_CONST_ALLOC_SIZE_OR_ZERO + - Bluetooth: hci_event: Fix vendor (unknown) opcode status handling + - Bluetooth: hci_sync: Fix suspend performance regression + - Bluetooth: hci_event: Fix checking conn for le_conn_complete_evt + - Bluetooth: hci_sync: hold hdev->lock when cleanup hci_conn + - net: sparx5: fix handling uneven length packets in manual extraction + - net: smsc911x: Stop and start PHY during suspend and resume + - openvswitch: fix memory leak at failed datapath creation + - nfp: flower: fix ingress police using matchall filter + - net: dsa: xrs700x: Use irqsave variant for u64 stats update + - net: sched: tbf: don't call qdisc_put() while holding tree lock + - net/sched: fix netdevice reference leaks in attach_default_qdiscs() + - net: phy: micrel: Make the GPIO to be non-exclusive + - net: lan966x: improve error handle in lan966x_fdma_rx_get_frame() + - ethernet: rocker: fix sleep in atomic context bug in neigh_timer_handler + - cachefiles: fix error return code in cachefiles_ondemand_copen() + - cachefiles: make on-demand request distribution fairer + - mlxbf_gige: compute MDIO period based on i1clk + - kcm: fix strp_init() order and cleanup + - sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb + - tcp: annotate data-race around challenge_timestamp + - Revert "sch_cake: Return __NET_XMIT_STOLEN when consuming enqueued skb" + - net/smc: Remove redundant refcount increase + - soundwire: qcom: fix device status array range + - mm/slab_common: Deleting kobject in kmem_cache_destroy() without holding + slab_mutex/cpu_hotplug_lock + - platform/mellanox: mlxreg-lc: Fix coverity warning + - platform/mellanox: mlxreg-lc: Fix locking issue + - serial: fsl_lpuart: RS485 RTS polariy is inverse + - tty: serial: atmel: Preserve previous USART mode if RS485 disabled + - staging: rtl8712: fix use after free bugs + - staging: r8188eu: Add Rosewill USB-N150 Nano to device tables + - staging: r8188eu: add firmware dependency + - Revert "powerpc: Remove unused FW_FEATURE_NATIVE references" + - powerpc: align syscall table for ppc32 + - powerpc/rtas: Fix RTAS MSR[HV] handling for Cell + - vt: Clear selection before changing the font + - musb: fix USB_MUSB_TUSB6010 dependency + - tty: serial: lpuart: disable flow control while waiting for the transmit + engine to complete + - Input: iforce - wake up after clearing IFORCE_XMIT_RUNNING flag + - iio: light: cm3605: Fix an error handling path in cm3605_probe() + - iio: ad7292: Prevent regulator double disable + - iio: adc: mcp3911: correct "microchip,device-addr" property + - iio: adc: mcp3911: use correct formula for AD conversion + - misc: fastrpc: fix memory corruption on probe + - misc: fastrpc: fix memory corruption on open + - firmware_loader: Fix use-after-free during unregister + - firmware_loader: Fix memory leak in firmware upload + - USB: serial: ftdi_sio: add Omron CS1W-CIF31 device id + - landlock: Fix file reparenting without explicit LANDLOCK_ACCESS_FS_REFER + - mmc: core: Fix UHS-I SD 1.8V workaround branch + - mmc: core: Fix inconsistent sd3_bus_mode at UHS-I SD voltage switch failure + - binder: fix UAF of ref->proc caused by race condition + - binder: fix alloc->vma_vm_mm null-ptr dereference + - cifs: fix small mempool leak in SMB2_negotiate() + - KVM: VMX: Heed the 'msr' argument in msr_write_intercepted() + - riscv: kvm: move extern sbi_ext declarations to a header + - clk: ti: Fix missing of_node_get() ti_find_clock_provider() + - drm/i915/reg: Fix spelling mistake "Unsupport" -> "Unsupported" + - clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops + - Revert "clk: core: Honor CLK_OPS_PARENT_ENABLE for clk gate ops" + - clk: core: Fix runtime PM sequence in clk_core_unprepare() + - Input: rk805-pwrkey - fix module autoloading + - powerpc/papr_scm: Fix nvdimm event mappings + - clk: bcm: rpi: Fix error handling of raspberrypi_fw_get_rate + - clk: bcm: rpi: Prevent out-of-bounds access + - clk: bcm: rpi: Add missing newline + - hwmon: (gpio-fan) Fix array out of bounds access + - gpio: pca953x: Add mutex_lock for regcache sync in PM + - gpio: realtek-otto: switch to 32-bit I/O + - KVM: x86: Mask off unsupported and unknown bits of IA32_ARCH_CAPABILITIES + - powerpc/papr_scm: Ensure rc is always initialized in papr_scm_pmu_register() + - xen/grants: prevent integer overflow in gnttab_dma_alloc_pages() + - mm: pagewalk: Fix race between unmap and page walker + - xen-blkback: Advertise feature-persistent as user requested + - xen-blkfront: Advertise feature-persistent as user requested + - xen-blkfront: Cache feature_persistent value before advertisement + - thunderbolt: Use the actual buffer in tb_async_error() + - thunderbolt: Check router generation before connecting xHCI + - usb: dwc3: pci: Add support for Intel Raptor Lake + - media: mceusb: Use new usb_control_msg_*() routines + - xhci: Add grace period after xHC start to prevent premature runtime suspend. + - usb: dwc3: disable USB core PHY management + - usb: dwc3: gadget: Avoid duplicate requests to enable Run/Stop + - usb: dwc3: fix PHY disable sequence + - USB: serial: ch341: fix lost character on LCR updates + - USB: serial: ch341: fix disabled rx timer on older devices + - USB: serial: cp210x: add Decagon UCA device id + - USB: serial: option: add support for OPPO R11 diag port + - USB: serial: option: add Quectel EM060K modem + - USB: serial: option: add support for Cinterion MV32-WA/WB RmNet mode + - Revert "usb: typec: ucsi: add a common function + ucsi_unregister_connectors()" + - usb: typec: altmodes/displayport: correct pin assignment for UFP receptacles + - usb: typec: intel_pmc_mux: Add new ACPI ID for Meteor Lake IOM device + - usb: typec: tcpm: Return ENOTSUPP for power supply prop writes + - usb: dwc2: fix wrong order of phy_power_on and phy_init + - usb: cdns3: fix issue with rearming ISO OUT endpoint + - usb: cdns3: fix incorrect handling TRB_SMM flag for ISOC transfer + - USB: cdc-acm: Add Icom PMR F3400 support (0c26:0020) + - usb-storage: Add ignore-residue quirk for NXP PN7462AU + - s390/hugetlb: fix prepare_hugepage_range() check for 2 GB hugepages + - s390: fix nospec table alignments + - USB: core: Prevent nested device-reset calls + - usb: xhci-mtk: relax TT periodic bandwidth allocation + - usb: xhci-mtk: fix bandwidth release issue + - usb: gadget: f_uac2: fix superspeed transfer + - usb: gadget: mass_storage: Fix cdrom data transfers on MAC-OS + - USB: gadget: Fix obscure lockdep violation for udc_mutex + - dma-buf/dma-resv: check if the new fence is really later + - arm64/kexec: Fix missing extra range for crashkres_low. + - driver core: Don't probe devices after bus_type.match() probe deferral + - wifi: mac80211: Don't finalize CSA in IBSS mode if state is disconnected + - wifi: mac80211: Fix UAF in ieee80211_scan_rx() + - ip: fix triggering of 'icmp redirect' + - net: Use u64_stats_fetch_begin_irq() for stats fetch. + - net: mac802154: Fix a condition in the receive path + - ALSA: memalloc: Revive x86-specific WC page allocations again + - ALSA: hda/realtek: Add speaker AMP init for Samsung laptops with ALC298 + - ALSA: seq: oss: Fix data-race for max_midi_devs access + - ALSA: seq: Fix data-race at module auto-loading + - drm/i915/backlight: Disable pps power hook for aux based backlight + - drm/i915/guc: clear stalled request after a reset + - drm/i915/glk: ECS Liva Q2 needs GLK HDMI port timing quirk + - drm/i915: Skip wm/ddb readout for disabled pipes + - tty: n_gsm: add sanity check for gsm->receive in gsm_receive_buf() + - tty: n_gsm: initialize more members at gsm_alloc_mux() + - tty: n_gsm: replace kicktimer with delayed_work + - tty: n_gsm: avoid call of sleeping functions from atomic context + - Linux 5.19.8 + + * md: Replace snprintf with scnprintf (LP: #1993315) + - md: Replace snprintf with scnprintf + + * ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel + systems (LP: #1990985) + - ACPI: processor idle: Practically limit "Dummy wait" workaround to old Intel + systems + + * iavf: SR-IOV VFs error with no traffic flow when MTU greater than 1500 + (LP: #1983656) + - iavf: Fix set max MTU size with port VLAN and jumbo frames + - i40e: Fix VF set max MTU size + + * Fix resume on AMD platforms when TBT monitor is plugged (LP: #1990920) + - drm/amd/display: Detect dpcd_rev when hotplug mst monitor + - drm/amd/display: Release remote dc_sink under mst scenario + + * [SRU][J/OEM-5.17][PATCH 0/1] Fix oled brightness set above frame-average + luminance (LP: #1978986) + - drm: New function to get luminance range based on static hdr metadata + - drm/amdgpu_dm: Rely on split out luminance calculation function + - drm/i915: Use luminance range calculated during edid parsing + + * Update Broadcom Emulex FC HBA lpfc driver to 14.2.0.5 for Ubuntu 22.04 + (LP: #1988711) + - scsi: lpfc: Fix uninitialized cqe field in lpfc_nvme_cancel_iocb() + - scsi: lpfc: Set PU field when providing D_ID in XMIT_ELS_RSP64_CX iocb + - scsi: lpfc: Fix lost NVMe paths during LIF bounce stress test + - scsi: lpfc: Refactor lpfc_nvmet_prep_abort_wqe() into + lpfc_sli_prep_abort_xri() + - scsi: lpfc: Update lpfc version to 14.2.0.5 + - scsi: lpfc: Copyright updates for 14.2.0.5 patches + + * input/keyboard: the keyboard on some Asus laptops can't work (LP: #1992266) + - ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA + - ACPI: resource: Add ASUS model S5402ZA to quirks + + * pcieport 0000:00:1b.0: PCIe Bus Error: severity=Uncorrected (Non-Fatal), + type=Transaction Layer, (Requester ID) (LP: #1988797) + - PCI/PTM: Cache PTM Capability offset + - PCI/PTM: Add pci_upstream_ptm() helper + - PCI/PTM: Separate configuration and enable + - PCI/PTM: Add pci_suspend_ptm() and pci_resume_ptm() + - PCI/PTM: Move pci_ptm_info() body into its only caller + - PCI/PTM: Preserve RsvdP bits in PTM Control register + - PCI/PTM: Reorder functions in logical order + - PCI/PTM: Consolidate PTM interface declarations + - PCI/PM: Always disable PTM for all devices during suspend + - PCI/PM: Simplify pci_pm_suspend_noirq() + + -- Stefan Bader Thu, 24 Nov 2022 17:16:15 +0100 + +linux (5.19.0-26.27) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-26.27 -proposed tracker (LP: #1997434) + + * CVE-2022-3566 + - tcp: Fix data races around icsk->icsk_af_ops. + + * CVE-2022-3567 + - ipv6: Fix data races around sk->sk_prot. + + * CVE-2022-3621 + - nilfs2: fix NULL pointer dereference at nilfs_bmap_lookup_at_level() + + * CVE-2022-3565 + - mISDN: fix use-after-free bugs in l1oip timer handlers + + * CVE-2022-3594 + - r8152: Rate limit overflow messages + + * CVE-2022-3564 + - Bluetooth: L2CAP: Fix use-after-free caused by l2cap_reassemble_sdu + + * CVE-2022-3524 + - tcp/udp: Fix memory leak in ipv6_renew_options(). + + * CVE-2022-43945 + - SUNRPC: Fix svcxdr_init_decode's end-of-buffer calculation + - SUNRPC: Fix svcxdr_init_encode's buflen calculation + - NFSD: Protect against send buffer overflow in NFSv2 READDIR + - NFSD: Protect against send buffer overflow in NFSv3 READDIR + - NFSD: Protect against send buffer overflow in NFSv2 READ + - NFSD: Protect against send buffer overflow in NFSv3 READ + - NFSD: Remove "inline" directives on op_rsize_bop helpers + - NFSD: Cap rsize_bop result based on send buffer size + + -- Thadeu Lima de Souza Cascardo Wed, 23 Nov 2022 17:21:27 -0300 + +linux (5.19.0-23.24) kinetic; urgency=medium + + * CVE-2022-2602 + - SAUCE: io_uring/af_unix: defer registered files gc to io_uring release + - SAUCE: io_uring/af_unix: fix memleak during unix GC + + * CVE-2022-41674 + - SAUCE: wifi: cfg80211: fix u8 overflow in + cfg80211_update_notlisted_nontrans() + - SAUCE: wifi: cfg80211/mac80211: reject bad MBSSID elements + - SAUCE: wifi: cfg80211: ensure length byte is present before access + - SAUCE: wifi: mac80211_hwsim: avoid mac80211 warning on bad rate + - SAUCE: wifi: cfg80211: update hidden BSSes to avoid WARN_ON + + * CVE-2022-42722 + - SAUCE: wifi: mac80211: fix crash in beacon protection for P2P-device + + * CVE-2022-42721 + - SAUCE: wifi: cfg80211: avoid nontransmitted BSS list corruption + + * CVE-2022-42720 + - SAUCE: wifi: cfg80211: fix BSS refcounting bugs + + * CVE-2022-42719 + - SAUCE: wifi: mac80211: fix MBSSID parsing use-after-free + + -- Thadeu Lima de Souza Cascardo Fri, 14 Oct 2022 09:58:08 -0300 + +linux (5.19.0-21.21) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-21.21 -proposed tracker (LP: #1992639) + + * cannot change mount namespace (LP: #1991691) + - SAUCE: apparmor: Fix getaatr mediation causing snap failures + + * Kernel regresses openjdk on riscv64 (LP: #1992484) + - SAUCE: Revert "riscv: mmap with PROT_WRITE but no PROT_READ is invalid" + + -- Andrea Righi Wed, 12 Oct 2022 19:53:36 +0200 + +linux (5.19.0-20.20) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-20.20 -proposed tracker (LP: #1992408) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Kinetic kernels 5.19.0-18/19-generic won't boot on Intel 11th/12th gen + (LP: #1991704) + - drm/i915: fix null pointer dereference + + * rcu_sched detected stalls on CPUs/tasks (LP: #1967130) + - [Config] Disable VMAP_STACK on riscv64 + + * Disable sv57 as the userspace is not ready (LP: #1991790) + - SAUCE: riscv: mm: Force disable sv57 + + * earlyconsole prints question marks on 5.19.0-1002-generic (LP: #1988984) + - [Config] Set CONFIG_PWM_SIFIVE=m for riscv64 + + * RCU stalls (LP: #1991951) + - [Config] Harmonize RCU_CPU_STALL_TIMEOUT + + * backport dkms fixes to build modules correctly for hwe-5.19+ kernels with + custom compiler (LP: #1991664) + - [Packaging] use versioned gcc-12 + - [Packaging] Update configs with versioned compiler version + + * FTBFS on kinetic (LP: #1990964) + - SAUCE: uapi: Fixup strace compile error + + * CVE-2022-40768 + - scsi: stex: Properly zero out the passthrough command structure + + * [22.10 FEAT] zKVM: Crypto Passthrough Hotplug - kernel part (LP: #1852741) + - s390/vfio-ap: use new AP bus interface to search for queue devices + - s390/vfio-ap: move probe and remove callbacks to vfio_ap_ops.c + - s390/vfio-ap: manage link between queue struct and matrix mdev + - s390/vfio-ap: introduce shadow APCB + - s390/vfio-ap: refresh guest's APCB by filtering AP resources assigned to + mdev + - s390/vfio-ap: allow assignment of unavailable AP queues to mdev device + - s390/vfio-ap: rename matrix_dev->lock mutex to matrix_dev->mdevs_lock + - s390/vfio-ap: introduce new mutex to control access to the KVM pointer + - s390/vfio-ap: use proper locking order when setting/clearing KVM pointer + - s390/vfio-ap: prepare for dynamic update of guest's APCB on assign/unassign + - s390/vfio-ap: prepare for dynamic update of guest's APCB on queue + probe/remove + - s390/vfio-ap: allow hot plug/unplug of AP devices when assigned/unassigned + - s390/vfio-ap: hot plug/unplug of AP devices when probed/removed + - s390/vfio-ap: reset queues after adapter/domain unassignment + - s390/vfio-ap: implement in-use callback for vfio_ap driver + - s390/vfio-ap: sysfs attribute to display the guest's matrix + - s390/vfio-ap: handle config changed and scan complete notification + - s390/vfio-ap: update docs to include dynamic config support + - s390/Docs: new doc describing lock usage by the vfio_ap device driver + - MAINTAINERS: pick up all vfio_ap docs for VFIO AP maintainers + + -- Andrea Righi Tue, 11 Oct 2022 09:50:23 +0200 + +linux (5.19.0-19.19) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-19.19 -proposed tracker (LP: #1990960) + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display + (using struct cred as input)""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk + parameter const""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + smk_netlbl_mls()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use + lsmblob""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to + kfree_sensitive()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check""" + - Revert "Revert "Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive + flag""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full + LSM context""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple + object LSM attributes""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline + function declration.""" + - Revert "Revert "Revert "UBUNTU: SAUCE: Audit: Add new record for multiple + process LSM attributes""" + - Revert "Revert "Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a + lsmblob""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in + netlink netfilter""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_inode_getsecctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_secid_to_secctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context + releaser""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display""" + - Revert "Revert "Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to + use lsmblobs""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_cred_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_inode_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_task_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_ipc_getsecid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secid_to_secctx""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secctx_to_secid""" + - Revert "Revert "Revert "UBUNTU: SAUCE: net: Prepare UDS for security module + stacking""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_kernel_act_as""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_audit_rule_match""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob + data structure.""" + - Revert "Revert "Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the + sock security""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from + SK_CTX() to aa_sock()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to + aa_unix_sk()""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as + part of a secid to secctx""" + - Revert "Revert "Revert "apparmor: fix absroot causing audited secids to + begin with =""" + - Revert "Revert "Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating + locking non-fs, unix sockets""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: fix use after free in + sk_peer_label""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: af_unix mediation""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: patch to provide + compatibility with v2.x net rules""" + - Revert "Revert "Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash + string hex value""" + - SAUCE: upstream v6.0: apparmor: fix absroot causing audited secids to begin + with = + - SAUCE: upstream v6.0: apparmor: Fix kernel-doc + - SAUCE: upstream v6.0: lsm: Fix kernel-doc + - SAUCE: upstream v6.0: apparmor: Update help description of policy hash for + introspection + - SAUCE: upstream v6.0: apparmor: make export of raw binary profile to + userspace optional + - SAUCE: upstream v6.0: apparmor: Enable tuning of policy paranoid load for + embedded systems + - SAUCE: upstream v6.0: apparmor: don't create raw_sha1 symlink if sha1 + hashing is disabled + - SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol warnings in + policy_unpack_test.c + - SAUCE: upstream v6.0: security/apparmor: remove redundant ret variable + - SAUCE: upstream v6.0: apparmor: Use struct_size() helper in kmalloc() + - SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and match_mnt() + kernel-doc comment + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize' + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: test: Remove some casts which are no-longer + required + - SAUCE: upstream v6.0: apparmor: add a kernel label to use on kernel objects + - SAUCE: upstream v6.0: apparmor: Convert secid mapping to XArrays instead of + IDR + - SAUCE: upstream v6.0: apparmor: disable showing the mode as part of a secid + to secctx + - SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as static + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: allow label to carry debug flags + - SAUCE: upstream v6.0: apparmor: extend policydb permission set by making use + of the xbits + - SAUCE: upstream v6.0: apparmor: move ptrace mediation to more logical + task.{h,c} + - SAUCE: upstream v6.0: apparmor: correct config reference to intended one + - SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the new uring_cmd file + op + - SAUCE: upstream v6.0: selinux: implement the security_uring_cmd() LSM hook + - SAUCE: upstream v6.0: Smack: Provide read control for io_uring_cmd + - SAUCE: apparmor-next 6.1: apparmor: fix a memleak in multi_transaction_new() + - SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when removing a + namespace + - SAUCE: apparmor-next 6.1: apparmor: reserve mediation classes + - SAUCE: apparmor-next 6.1: apparmor: use zstd compression for profile data + - SAUCE: apparmor-next 6.1: apparmor: expose compression level limits in sysfs + - SAUCE: apparmor-next 6.1: apparmor: compute file permissions on profile load + - SAUCE: apparmor-next 6.1: apparmor: compute xmatch permissions on profile + load + - SAUCE: apparmor-next 6.1: apparmor: move fperm computation into + policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm computation + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use aa_perms structure + - SAUCE: apparmor-next 6.1: apparmor: compute policydb permission on profile + load + - SAUCE: apparmor-next 6.1: apparmor: combine file_rules and aa_policydb into + a single shared struct + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using the new shared + policydb struct + - SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to use accept as an + index + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: cleanup shared permission struct + - SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: preparse for state being more than just + an integer + - SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include v8 abi + - SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating locking non-fs + unix sockets + - SAUCE: apparmor-next 6.1: apparmor: extend policydb permission set by making + use of the xbits + - SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros into policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: extend xindex size + - SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards compatibility + to its own file + - SAUCE: apparmor-next 6.1: apparmor: extend permissions to support a label + and tag string + - SAUCE: apparmor-next 6.1: apparmor: add mediation class information to + auditing + - SAUCE: apparmor-next 6.1: apparmor: add user mode flag + - SAUCE: apparmor-next 6.1: apparmor: make transition table unpack generic so + it can be reused + - SAUCE: apparmor-next 6.1: apparmor: group dfa policydb unpacking + - SAUCE: apparmor-next 6.1: apparmor: make unpack_array return a trianary + value + - SAUCE: apparmor-next 6.1: apparmor: add the ability for policy to specify a + permission table + - SAUCE: apparmor-next 6.1: apparmor: verify permission table indexes + - SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes are accumulated + - SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm accumulation into + perms.h + - SAUCE: apparmor-next 6.1: apparmor: verify loaded permission bits masks + don't overlap + - SAUCE: apparmor-next 6.1: apparmor: refactor profile rules and attachments + - SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to be a list + - SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to match reserved + classes + - SAUCE: apparmor-next 6.1: apparmor: Fix regression in stacking due to label + flags + - SAUCE: apparmor-next 6.1: apparmor: Simplify obtain the newest label on a + cred + - SAUCE: apparmor-next 6.1: apparmor: make __aa_path_perm() static + - SAUCE: apparmor-next 6.1: apparmor: Fix doc comment for compute_fperms + - SAUCE: apparmor-next 6.1: apparmor: Remove unnecessary size check when + unpacking trans_table + - SAUCE: apparmor-next 6.1: apparmor: make sure the decompression ctx is + promperly initialized + - SAUCE: apparmor: add/use fns to print hash string hex value + - SAUCE: apparmor: patch to provide compatibility with v2.x net rules + - SAUCE: Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make + __aa_path_perm() static" + - SAUCE: apparmor: af_unix mediation + - SAUCE: fix shutdown unix socket owner conditional check + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: Add fine grained mediation of posix mqueues + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: lsm stacking v37: integrity: disassociate ima_filter_rule from + security_audit_rule + - SAUCE: lsm stacking v37: LSM: Infrastructure management of the sock security + - SAUCE: lsm stacking v37: LSM: Add the lsmblob data structure. + - SAUCE: lsm stacking v37: LSM: provide lsm name and id slot mappings + - SAUCE: lsm stacking v37: IMA: avoid label collisions with stacked LSMs + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_current_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context releaser + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a lsmblob + - SAUCE: lsm stacking v37: binder: Pass LSM identifier for confirmation + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx module selection + - SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in audit_names + - SAUCE: lsm stacking v37: Audit: Create audit_stamp structure + - SAUCE: lsm stacking v37: LSM: Add a function to report multiple LSMs + - SAUCE: lsm stacking v37: Audit: Allow multiple records in an audit_buffer + - SAUCE: lsm stacking v37: Audit: Add record for multiple task security + contexts + - SAUCE: lsm stacking v37: audit: multiple subject lsm values for netlabel + - SAUCE: lsm stacking v37: Audit: Add record for multiple object contexts + - SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in audit data + - SAUCE: lsm stacking v37: LSM: Removed scaffolding function lsmcontext_init + - SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full LSM context + - SAUCE: lsm stacking v37: AppArmor: Remove the exclusive flag + - SAUCE: security, lsm: Introduce security_create_user_ns() + - SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable + - SAUCE: selinux: Implement userns_create hook + - SAUCE: apparmor: add user namespace creation mediation + - [Config] update configs after apply new apparmor patch set + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) // + 5.19.0-17.17: kernel NULL pointer dereference, address: 0000000000000084 + (LP: #1990236) + - SAUCE: apparmor: fix oops in unix owner conditional setup + + * Miscellaneous Ubuntu changes + - [Config] make sure CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is enforced + + -- Andrea Righi Tue, 27 Sep 2022 16:51:09 +0200 + +linux (5.19.0-18.18) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-18.18 -proposed tracker (LP: #1990366) + + * 5.19.0-17.17: kernel NULL pointer dereference, address: 0000000000000084 + (LP: #1990236) + - Revert "UBUNTU: SAUCE: apparmor: Fix regression in stacking due to label + flags" + - Revert "UBUNTU: [Config] disable SECURITY_APPARMOR_RESTRICT_USERNS" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - add an internal buffer"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - don't wait on cleanup"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - don't waste entropy"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - always add a pending + request"" + - Revert "UBUNTU: SAUCE: Revert "hwrng: virtio - unregister device before + reset"" + - Revert "UBUNTU: SAUCE: Revert "virtio-rng: make device ready before making + request"" + - Revert "UBUNTU: [Config] update configs after apply new apparmor patch set" + - Revert "UBUNTU: SAUCE: apparmor: add user namespace creation mediation" + - Revert "UBUNTU: SAUCE: selinux: Implement userns_create hook" + - Revert "UBUNTU: SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable" + - Revert "UBUNTU: SAUCE: security, lsm: Introduce security_create_user_ns()" + - Revert "UBUNTU: SAUCE: lsm stacking v37: AppArmor: Remove the exclusive + flag" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full + LSM context" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Removed scaffolding function + lsmcontext_init" + - Revert "UBUNTU: SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in + audit data" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Add record for multiple + object contexts" + - Revert "UBUNTU: SAUCE: lsm stacking v37: audit: multiple subject lsm values + for netlabel" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Add record for multiple task + security contexts" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Allow multiple records in an + audit_buffer" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add a function to report + multiple LSMs" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Create audit_stamp + structure" + - Revert "UBUNTU: SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in + audit_names" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: security_secid_to_secctx + module selection" + - Revert "UBUNTU: SAUCE: lsm stacking v37: binder: Pass LSM identifier for + confirmation" + - Revert "UBUNTU: SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a + lsmblob" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in + netlink netfilter" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_inode_getsecctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context + releaser" + - Revert "UBUNTU: SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to + display" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Specify which LSM to display" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_cred_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_inode_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_current_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_ipc_getsecid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_secctx_to_secid" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_kernel_act_as" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Use lsmblob in + security_audit_rule_match" + - Revert "UBUNTU: SAUCE: lsm stacking v37: IMA: avoid label collisions with + stacked LSMs" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: provide lsm name and id slot + mappings" + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Add the lsmblob data + structure." + - Revert "UBUNTU: SAUCE: lsm stacking v37: LSM: Infrastructure management of + the sock security" + - Revert "UBUNTU: SAUCE: lsm stacking v37: integrity: disassociate + ima_filter_rule from security_audit_rule" + - Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() to + aa_sock()" + - Revert "UBUNTU: SAUCE: apparmor: Add fine grained mediation of posix + mqueues" + - Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()" + - Revert "UBUNTU: SAUCE: fix shutdown unix socket owner conditional check" + - Revert "UBUNTU: SAUCE: apparmor: af_unix mediation" + - Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with v2.x + net rules" + - Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string hex value" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to + match reserved classes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to + be a list" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: refactor profile rules + and attachments" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: verify loaded permission + bits masks don't overlap" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm + accumulation into perms.h" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes + are accumulated" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: verify permission table + indexes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add the ability for + policy to specify a permission table" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make unpack_array return + a trianary value" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: group dfa policydb + unpacking" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: make transition table + unpack generic so it can be reused" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add user mode flag" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: add mediation class + information to auditing" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend permissions to + support a label and tag string" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards + compatibility to its own file" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend xindex size" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros + into policy_unpack" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: extend policydb + permission set by making use of the xbits" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating + locking non-fs unix sockets" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include + v8 abi" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: preparse for state being + more than just an integer" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: cleanup shared + permission struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to + use accept as an index" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using + the new shared policydb struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: combine file_rules and + aa_policydb into a single shared struct" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute policydb + permission on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use + aa_perms structure" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm + computation" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: move fperm computation + into policy_unpack" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute xmatch + permissions on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: compute file permissions + on profile load" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: expose compression level + limits in sysfs" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: use zstd compression for + profile data" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: reserve mediation + classes" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when + removing a namespace" + - Revert "UBUNTU: SAUCE: apparmor-next 6.1: apparmor: fix a memleak in + multi_transaction_new()" + - Revert "UBUNTU: SAUCE: upstream v6.0: Smack: Provide read control for + io_uring_cmd" + - Revert "UBUNTU: SAUCE: upstream v6.0: selinux: implement the + security_uring_cmd() LSM hook" + - Revert "UBUNTU: SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the + new uring_cmd file op" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: correct config reference to + intended one" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: move ptrace mediation to + more logical task.{h,c}" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: extend policydb permission + set by making use of the xbits" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: allow label to carry debug + flags" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as + static" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: disable showing the mode as + part of a secid to secctx" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Convert secid mapping to + XArrays instead of IDR" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: add a kernel label to use on + kernel objects" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: test: Remove some casts + which are no-longer required" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize'" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix some kernel-doc + comments" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and + match_mnt() kernel-doc comment" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Use struct_size() helper in + kmalloc()" + - Revert "UBUNTU: SAUCE: upstream v6.0: security/apparmor: remove redundant + ret variable" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol + warnings in policy_unpack_test.c" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: don't create raw_sha1 + symlink if sha1 hashing is disabled" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Enable tuning of policy + paranoid load for embedded systems" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: make export of raw binary + profile to userspace optional" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Update help description of + policy hash for introspection" + - Revert "UBUNTU: SAUCE: upstream v6.0: lsm: Fix kernel-doc" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: Fix kernel-doc" + - Revert "UBUNTU: SAUCE: upstream v6.0: apparmor: fix absroot causing audited + secids to begin with =" + - Revert "Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string + hex value"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with + v2.x net rules"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: af_unix mediation"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: fix use after free in + sk_peer_label"" + - Revert "Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating locking non- + fs, unix sockets"" + - Revert "Revert "apparmor: fix absroot causing audited secids to begin with + ="" + - Revert "Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as part of + a secid to secctx"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() + to aa_sock()"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the sock + security"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob data + structure."" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_audit_rule_match"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_kernel_act_as"" + - Revert "Revert "UBUNTU: SAUCE: net: Prepare UDS for security module + stacking"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secctx_to_secid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in + security_secid_to_secctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_ipc_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_task_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_inode_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_cred_getsecid"" + - Revert "Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to use + lsmblobs"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context + releaser"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_secid_to_secctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in + security_inode_getsecctx"" + - Revert "Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in netlink + netfilter"" + - Revert "Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a lsmblob"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Add new record for multiple process + LSM attributes"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline function + declration."" + - Revert "Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple object + LSM attributes"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full LSM + context"" + - Revert "Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive flag"" + - Revert "Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to + kfree_sensitive()"" + - Revert "Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use lsmblob"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Use lsmblob in smk_netlbl_mls()"" + - Revert "Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk parameter + const"" + - Revert "Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display (using + struct cred as input)"" + + * [22.04 FEAT] Enhanced Interpretation for PCI Functions on s390x - kernel + part (LP: #1853306) + - s390/sclp: detect the zPCI load/store interpretation facility + - s390/sclp: detect the AISII facility + - s390/sclp: detect the AENI facility + - s390/sclp: detect the AISI facility + - s390/airq: pass more TPI info to airq handlers + - s390/airq: allow for airq structure that uses an input vector + - s390/pci: externalize the SIC operation controls and routine + - s390/pci: stash associated GISA designation + - s390/pci: stash dtsm and maxstbl + - vfio/pci: introduce CONFIG_VFIO_PCI_ZDEV_KVM + - KVM: s390: pci: add basic kvm_zdev structure + - KVM: s390: pci: do initial setup for AEN interpretation + - KVM: s390: pci: enable host forwarding of Adapter Event Notifications + - KVM: s390: mechanism to enable guest zPCI Interpretation + - KVM: s390: pci: provide routines for enabling/disabling interrupt forwarding + - KVM: s390: pci: add routines to start/stop interpretive execution + - vfio-pci/zdev: add open/close device hooks + - vfio-pci/zdev: add function handle to clp base capability + - vfio-pci/zdev: different maxstbl for interpreted devices + - KVM: s390: add KVM_S390_ZPCI_OP to manage guest zPCI devices + - MAINTAINERS: additional files related kvm s390 pci passthrough + - Documentation: kvm: extend KVM_S390_ZPCI_OP subheading underline + - KVM: s390: pci: Hook to access KVM lowlevel from VFIO + + * [22.10 FEAT] [IO2201] Independent Usage of Secondary Physical Function + (LP: #1959542) + - PCI: Clean up pci_scan_slot() + - PCI: Split out next_ari_fn() from next_fn() + - PCI: Move jailhouse's isolated function handling to pci_scan_slot() + - PCI: Extend isolated function probing to s390 + - s390/pci: allow zPCI zbus without a function zero + + * AMD ACP 6.2 DMIC support (LP: #1989518) + - ASoC: amd: add Pink Sardine platform ACP IP register header + - ASoC: amd: add Pink Sardine ACP PCI driver + - ASoC: amd: add acp6.2 init/de-init functions + - ASoC: amd: add platform devices for acp6.2 pdm driver and dmic driver + - ASoC: amd: add acp6.2 pdm platform driver + - ASoC: amd: add acp6.2 irq handler + - ASoC: amd: add acp6.2 pdm driver dma ops + - ASoC: amd: add acp6.2 pci driver pm ops + - ASoC: amd: add acp6.2 pdm driver pm ops + - ASoC: amd: enable Pink Sardine acp6.2 drivers build + - ASoC: amd: create platform device for acp6.2 machine driver + - ASoC: amd: add Pink Sardine machine driver using dmic + - ASoC: amd: enable Pink sardine platform machine driver build. + - [Config] Enable audio for AMD PinkSardine + + * support independent clock and LED GPIOs for Intel IPU6 platforms + (LP: #1989046) + - SAUCE: platform/x86: int3472: support independent clock and LED GPIOs + + * CVE-2022-2978 + - SAUCE: fs: fix UAF/GPF bug in nilfs_mdt_destroy + + * Miscellaneous Ubuntu changes + - [Config] disable SECURITY_APPARMOR_RESTRICT_USERNS + - SAUCE: Add mdev_set_iommu_device() kABI. + - SAUCE: apparmor: Fix regression in stacking due to label flags + - [Config] update toolchain version + + * Miscellaneous upstream changes + - Revert "drm/i915/opregion: check port number bounds for SWSCI display power + state" + + -- Andrea Righi Wed, 21 Sep 2022 16:28:46 +0200 + +linux (5.19.0-17.17) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-17.17 -proposed tracker (LP: #1989987) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * multiple kernel oops regarding hung tasks delaying boot (LP: #1989258) + - SAUCE: Revert "virtio-rng: make device ready before making request" + - SAUCE: Revert "hwrng: virtio - unregister device before reset" + - SAUCE: Revert "hwrng: virtio - always add a pending request" + - SAUCE: Revert "hwrng: virtio - don't waste entropy" + - SAUCE: Revert "hwrng: virtio - don't wait on cleanup" + - SAUCE: Revert "hwrng: virtio - add an internal buffer" + + * kinetic: apply new apparmor and LSM stacking patch set (LP: #1989983) + - Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display (using struct cred + as input)" + - Revert "UBUNTU: SAUCE: apparmor: Fix build error, make sk parameter const" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in smk_netlbl_mls()" + - Revert "UBUNTU: SAUCE: LSM: change ima_read_file() to use lsmblob" + - Revert "UBUNTU: SAUCE: apparmor: rename kzfree() to kfree_sensitive()" + - Revert "UBUNTU: SAUCE: Audit: Fix for missing NULL check" + - Revert "UBUNTU: SAUCE: AppArmor: Remove the exclusive flag" + - Revert "UBUNTU: SAUCE: LSM: Add /proc attr entry for full LSM context" + - Revert "UBUNTU: SAUCE: Audit: Add a new record for multiple object LSM + attributes" + - Revert "UBUNTU: SAUCE: Audit: Fix incorrect static inline function + declration." + - Revert "UBUNTU: SAUCE: Audit: Add new record for multiple process LSM + attributes" + - Revert "UBUNTU: SAUCE: NET: Store LSM netlabel data in a lsmblob" + - Revert "UBUNTU: SAUCE: LSM: security_secid_to_secctx in netlink netfilter" + - Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in security_inode_getsecctx" + - Revert "UBUNTU: SAUCE: LSM: Use lsmcontext in security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: LSM: Ensure the correct LSM context releaser" + - Revert "UBUNTU: SAUCE: LSM: Specify which LSM to display" + - Revert "UBUNTU: SAUCE: IMA: Change internal interfaces to use lsmblobs" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_cred_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_inode_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_task_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_ipc_getsecid" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_secid_to_secctx" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_secctx_to_secid" + - Revert "UBUNTU: SAUCE: net: Prepare UDS for security module stacking" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_kernel_act_as" + - Revert "UBUNTU: SAUCE: LSM: Use lsmblob in security_audit_rule_match" + - Revert "UBUNTU: SAUCE: LSM: Create and manage the lsmblob data structure." + - Revert "UBUNTU: SAUCE: LSM: Infrastructure management of the sock security" + - Revert "UBUNTU: SAUCE: apparmor: LSM stacking: switch from SK_CTX() to + aa_sock()" + - Revert "UBUNTU: SAUCE: apparmor: rename aa_sock() to aa_unix_sk()" + - Revert "UBUNTU: SAUCE: apparmor: disable showing the mode as part of a secid + to secctx" + - Revert "apparmor: fix absroot causing audited secids to begin with =" + - Revert "UBUNTU SAUCE: apparmor: fix apparmor mediating locking non-fs, unix + sockets" + - Revert "UBUNTU: SAUCE: apparmor: fix use after free in sk_peer_label" + - Revert "UBUNTU: SAUCE: apparmor: af_unix mediation" + - Revert "UBUNTU: SAUCE: apparmor: patch to provide compatibility with v2.x + net rules" + - Revert "UBUNTU: SAUCE: apparmor: add/use fns to print hash string hex value" + - SAUCE: upstream v6.0: apparmor: fix absroot causing audited secids to begin + with = + - SAUCE: upstream v6.0: apparmor: Fix kernel-doc + - SAUCE: upstream v6.0: lsm: Fix kernel-doc + - SAUCE: upstream v6.0: apparmor: Update help description of policy hash for + introspection + - SAUCE: upstream v6.0: apparmor: make export of raw binary profile to + userspace optional + - SAUCE: upstream v6.0: apparmor: Enable tuning of policy paranoid load for + embedded systems + - SAUCE: upstream v6.0: apparmor: don't create raw_sha1 symlink if sha1 + hashing is disabled + - SAUCE: upstream v6.0: apparmor: resolve uninitialized symbol warnings in + policy_unpack_test.c + - SAUCE: upstream v6.0: security/apparmor: remove redundant ret variable + - SAUCE: upstream v6.0: apparmor: Use struct_size() helper in kmalloc() + - SAUCE: upstream v6.0: apparmor: Fix match_mnt_path_str() and match_mnt() + kernel-doc comment + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: Fix undefined reference to + `zlib_deflate_workspacesize' + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: test: Remove some casts which are no-longer + required + - SAUCE: upstream v6.0: apparmor: add a kernel label to use on kernel objects + - SAUCE: upstream v6.0: apparmor: Convert secid mapping to XArrays instead of + IDR + - SAUCE: upstream v6.0: apparmor: disable showing the mode as part of a secid + to secctx + - SAUCE: upstream v6.0: apparmor: Mark alloc_unconfined() as static + - SAUCE: upstream v6.0: apparmor: Fix some kernel-doc comments + - SAUCE: upstream v6.0: apparmor: allow label to carry debug flags + - SAUCE: upstream v6.0: apparmor: extend policydb permission set by making use + of the xbits + - SAUCE: upstream v6.0: apparmor: move ptrace mediation to more logical + task.{h,c} + - SAUCE: upstream v6.0: apparmor: correct config reference to intended one + - SAUCE: upstream v6.0: lsm,io_uring: add LSM hooks for the new uring_cmd file + op + - SAUCE: upstream v6.0: selinux: implement the security_uring_cmd() LSM hook + - SAUCE: upstream v6.0: Smack: Provide read control for io_uring_cmd + - SAUCE: apparmor-next 6.1: apparmor: fix a memleak in multi_transaction_new() + - SAUCE: apparmor-next 6.1: apparmor: fix lockdep warning when removing a + namespace + - SAUCE: apparmor-next 6.1: apparmor: reserve mediation classes + - SAUCE: apparmor-next 6.1: apparmor: use zstd compression for profile data + - SAUCE: apparmor-next 6.1: apparmor: expose compression level limits in sysfs + - SAUCE: apparmor-next 6.1: apparmor: compute file permissions on profile load + - SAUCE: apparmor-next 6.1: apparmor: compute xmatch permissions on profile + load + - SAUCE: apparmor-next 6.1: apparmor: move fperm computation into + policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: rework and cleanup fperm computation + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to use aa_perms structure + - SAUCE: apparmor-next 6.1: apparmor: compute policydb permission on profile + load + - SAUCE: apparmor-next 6.1: apparmor: combine file_rules and aa_policydb into + a single shared struct + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch to using the new shared + policydb struct + - SAUCE: apparmor-next 6.1: apparmor: convert fperm lookup to use accept as an + index + - SAUCE: apparmor-next 6.1: apparmor: convert xmatch lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: cleanup shared permission struct + - SAUCE: apparmor-next 6.1: apparmor: convert policy lookup to use accept as + an index + - SAUCE: apparmor-next 6.1: apparmor: preparse for state being more than just + an integer + - SAUCE: apparmor-next 6.1: apparmor: Fix abi check to include v8 abi + - SAUCE: apparmor-next 6.1: apparmor: fix apparmor mediating locking non-fs + unix sockets + - SAUCE: apparmor-next 6.1: apparmor: extend policydb permission set by making + use of the xbits + - SAUCE: apparmor-next 6.1: apparmor: move dfa perm macros into policy_unpack + - SAUCE: apparmor-next 6.1: apparmor: extend xindex size + - SAUCE: apparmor-next 6.1: apparmor: isolate policy backwards compatibility + to its own file + - SAUCE: apparmor-next 6.1: apparmor: extend permissions to support a label + and tag string + - SAUCE: apparmor-next 6.1: apparmor: add mediation class information to + auditing + - SAUCE: apparmor-next 6.1: apparmor: add user mode flag + - SAUCE: apparmor-next 6.1: apparmor: make transition table unpack generic so + it can be reused + - SAUCE: apparmor-next 6.1: apparmor: group dfa policydb unpacking + - SAUCE: apparmor-next 6.1: apparmor: make unpack_array return a trianary + value + - SAUCE: apparmor-next 6.1: apparmor: add the ability for policy to specify a + permission table + - SAUCE: apparmor-next 6.1: apparmor: verify permission table indexes + - SAUCE: apparmor-next 6.1: apparmor: make sure perm indexes are accumulated + - SAUCE: apparmor-next 6.1: apparmor: cleanup: move perm accumulation into + perms.h + - SAUCE: apparmor-next 6.1: apparmor: verify loaded permission bits masks + don't overlap + - SAUCE: apparmor-next 6.1: apparmor: refactor profile rules and attachments + - SAUCE: apparmor-next 6.1: apparmor: rework profile->rules to be a list + - SAUCE: apparmor-next 6.1: apparmor: fix aa_class_names[] to match reserved + classes + - SAUCE: apparmor: add/use fns to print hash string hex value + - SAUCE: apparmor: patch to provide compatibility with v2.x net rules + - SAUCE: apparmor: af_unix mediation + - SAUCE: fix shutdown unix socket owner conditional check + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: Add fine grained mediation of posix mqueues + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: lsm stacking v37: integrity: disassociate ima_filter_rule from + security_audit_rule + - SAUCE: lsm stacking v37: LSM: Infrastructure management of the sock security + - SAUCE: lsm stacking v37: LSM: Add the lsmblob data structure. + - SAUCE: lsm stacking v37: LSM: provide lsm name and id slot mappings + - SAUCE: lsm stacking v37: IMA: avoid label collisions with stacked LSMs + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_current_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: lsm stacking v37: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: fixup lsm stacking v37: LSM: Specify which LSM to display + - SAUCE: lsm stacking v37: LSM: Ensure the correct LSM context releaser + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: lsm stacking v37: LSM: Use lsmcontext in + security_dentry_init_security + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: lsm stacking v37: NET: Store LSM netlabel data in a lsmblob + - SAUCE: lsm stacking v37: binder: Pass LSM identifier for confirmation + - SAUCE: lsm stacking v37: LSM: security_secid_to_secctx module selection + - SAUCE: lsm stacking v37: Audit: Keep multiple LSM data in audit_names + - SAUCE: lsm stacking v37: Audit: Create audit_stamp structure + - SAUCE: lsm stacking v37: LSM: Add a function to report multiple LSMs + - SAUCE: lsm stacking v37: Audit: Allow multiple records in an audit_buffer + - SAUCE: lsm stacking v37: Audit: Add record for multiple task security + contexts + - SAUCE: lsm stacking v37: audit: multiple subject lsm values for netlabel + - SAUCE: lsm stacking v37: Audit: Add record for multiple object contexts + - SAUCE: lsm stacking v37: netlabel: Use a struct lsmblob in audit data + - SAUCE: lsm stacking v37: LSM: Removed scaffolding function lsmcontext_init + - SAUCE: lsm stacking v37: LSM: Add /proc attr entry for full LSM context + - SAUCE: lsm stacking v37: AppArmor: Remove the exclusive flag + - SAUCE: security, lsm: Introduce security_create_user_ns() + - SAUCE: bpf-lsm: Make bpf_lsm_userns_create() sleepable + - SAUCE: selinux: Implement userns_create hook + - SAUCE: apparmor: add user namespace creation mediation + - [Config] update configs after apply new apparmor patch set + + * [22.10 FEAT] KVM: Secure Execution guest dump encryption with customer keys + - kernel part (LP: #1959940) + - s390/uv: Add SE hdr query information + - s390/uv: Add dump fields to query + - KVM: s390: pv: Add query interface + - KVM: s390: pv: Add dump support definitions + - KVM: s390: pv: Add query dump information + - KVM: s390: Add configuration dump functionality + - KVM: s390: Add CPU dump functionality + - KVM: s390: Add KVM_CAP_S390_PROTECTED_DUMP + - Documentation: virt: Protected virtual machine dumps + - Documentation/virt/kvm/api.rst: Add protvirt dump/info api descriptions + - Documentation/virt/kvm/api.rst: Explain rc/rrc delivery + + * [SRU][OEM-5.14/Jammy/OEM-5.17][PATCH 0/1] Fix blank screen on Thinkpad ADL + 4K+ panel (LP: #1980621) + - SAUCE: drm/i915: Implement WaEdpLinkRateDataReload + - SAUCE: Revert "drm/i915/display: Re-add check for low voltage sku for max dp + source rate" + + * [UBUNTU 22.04] s390/qeth: cache link_info for ethtool (LP: #1984103) + - s390/qeth: cache link_info for ethtool + + * Kernel livepatch support for for s390x (LP: #1639924) + - [Config] Enable EXPOLINE_EXTERN on s390x + + * IWLMEI may cause device down at resuming from s2idle (LP: #1987312) + - [Config] Disable IWLMEI + + * Raise CONFIG_NR_CPUS (LP: #1967889) + - [Config] Raise riscv64 CONFIG_NR_CPUS to 32 + + * PolarFire Icicle Kit: missing USB support (LP: #1986970) + - usb: musb: Add support for PolarFire SoC's musb controller + - usb: musb: mpfs: Fix error codes in probe() + - usb: musb: mpfs: add missing clk_disable_unprepare() in mpfs_remove() + - [Config] Enable CONFIG_USB_MUSB_POLARFIRE_SOC on riscv64 + + * System freeze after resuming from suspend due to PCI ASPM settings + (LP: #1980829) + - SAUCE: PCI/ASPM: Save/restore L1SS Capability for suspend/resume + - SAUCE: whitelist platforms that needs save/restore ASPM L1SS for + suspend/resume + + * Please enable CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU (LP: #1980861) + - [Config] Switch from DECOMP_SINGLE to DECOMP_MULTI_PERCPU + + * Miscellaneous Ubuntu changes + - [Config] enable security-related configs + - [Packaging] Make stamp-install- target reentrant + - [Packaging] Pass kernel build_arch to dkms + - [Packaging] Enable building zfs during cross-compile + - [Packaging] temporarily disable signing for ppc64el + + -- Andrea Righi Fri, 16 Sep 2022 18:03:10 +0200 + +linux (5.19.0-16.16) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-16.16 -proposed tracker (LP: #1988707) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Kinetic update: v5.19.7 upstream stable release (LP: #1988733) + - drm/vc4: hdmi: Rework power up + - drm/vc4: hdmi: Depends on CONFIG_PM + - firmware: tegra: bpmp: Do only aligned access to IPC memory area + - crypto: lib - remove unneeded selection of XOR_BLOCKS + - docs: kerneldoc-preamble: Test xeCJK.sty before loading + - arm64: errata: Add Cortex-A510 to the repeat tlbi list + - Bluetooth: L2CAP: Fix build errors in some archs + - Revert "PCI/portdrv: Don't disable AER reporting in + get_port_device_capability()" + - HID: steam: Prevent NULL pointer dereference in steam_{recv,send}_report + - udmabuf: Set the DMA mask for the udmabuf device (v2) + - media: pvrusb2: fix memory leak in pvr_probe + - USB: gadget: Fix use-after-free Read in usb_udc_uevent() + - HID: hidraw: fix memory leak in hidraw_release() + - net: fix refcount bug in sk_psock_get (2) + - fbdev: fb_pm2fb: Avoid potential divide by zero error + - ftrace: Fix NULL pointer dereference in is_ftrace_trampoline when ftrace is + dead + - bpf: Don't redirect packets with invalid pkt_len + - mm/rmap: Fix anon_vma->degree ambiguity leading to double-reuse + - ALSA: usb-audio: Add quirk for LH Labs Geek Out HD Audio 1V5 + - HID: input: fix uclogic tablets + - HID: add Lenovo Yoga C630 battery quirk + - HID: AMD_SFH: Add a DMI quirk entry for Chromebooks + - HID: Add Apple Touchbar on T2 Macs in hid_have_special_driver list + - HID: asus: ROG NKey: Ignore portion of 0x5a report + - HID: nintendo: fix rumble worker null pointer deref + - HID: thrustmaster: Add sparco wheel and fix array length + - HID: intel-ish-hid: ipc: Add Meteor Lake PCI device ID + - mmc: mtk-sd: Clear interrupts when cqe off/disable + - mmc: sdhci-of-dwcmshc: add reset call back for rockchip Socs + - mmc: sdhci-of-dwcmshc: rename rk3568 to rk35xx + - mmc: sdhci-of-dwcmshc: Re-enable support for the BlueField-3 SoC + - fs/ntfs3: Fix work with fragmented xattr + - ASoC: sh: rz-ssi: Improve error handling in rz_ssi_probe() error path + - ASoC: rt5640: Fix the JD voltage dropping issue + - rtla: Fix tracer name + - drm/amd/display: Add a missing register field for HPO DP stream encoder + - drm/amd/display: Device flash garbage before get in OS + - drm/amd/display: Avoid MPC infinite loop + - drm/amd/display: Fix HDMI VSIF V3 incorrect issue + - drm/amd/display: For stereo keep "FLIP_ANY_FRAME" + - drm/amd/display: clear optc underflow before turn off odm clock + - drm/amd/display: Fix TDR eDP and USB4 display light up issue + - drm/amd/pm: skip pptable override for smu_v13_0_7 + - drm/amdkfd: Handle restart of kfd_ioctl_wait_events + - drm/amd/pm: Fix a potential gpu_metrics_table memory leak + - ksmbd: return STATUS_BAD_NETWORK_NAME error status if share is not + configured + - net: lan966x: fix checking for return value of platform_get_irq_byname() + - neigh: fix possible DoS due to net iface start/stop loop + - ALSA: hda/realtek: Add quirks for ASUS Zenbooks using CS35L41 + - s390/hypfs: avoid error message under KVM + - ksmbd: don't remove dos attribute xattr on O_TRUNC open + - drm/amdgpu: disable 3DCGCG/CGLS temporarily due to stability issue + - drm/amd/pm: add missing ->fini_microcode interface for Sienna Cichlid + - drm/amd/pm: add missing ->fini_xxxx interfaces for some SMU13 asics + - drm/amd/display: Fix pixel clock programming + - drm/amdgpu: Increase tlb flush timeout for sriov + - drm/amd/display: Fix plug/unplug external monitor will hang while playback + MPO video + - drm/amd/display: avoid doing vm_init multiple time + - drm/amdgpu: Add decode_iv_ts helper for ih_v6 block + - drm/amdgpu: Add secure display TA load for Renoir + - drm/amdgpu: Fix interrupt handling on ih_soft ring + - netfilter: conntrack: NF_CONNTRACK_PROCFS should no longer default to y + - testing: selftests: nft_flowtable.sh: use random netns names + - platform/x86: serial-multi-instantiate: Add CLSA0101 Laptop + - ALSA: hda/cs8409: Support new Dolphin Variants + - btrfs: move lockdep class helpers to locking.c + - btrfs: fix lockdep splat with reloc root extent buffers + - btrfs: tree-checker: check for overlapping extent items + - android: binder: fix lockdep check on clearing vma + - net/af_packet: check len when min_header_len equals to 0 + - net: neigh: don't call kfree_skb() under spin_lock_irqsave() + - arm64: cacheinfo: Fix incorrect assignment of signed error value to unsigned + fw_level + - Linux 5.19.7 + + * Kinetic update: v5.19.6 upstream stable release (LP: #1988732) + - mm/gup: fix FOLL_FORCE COW security issue and remove FOLL_COW + - NFS: Fix another fsync() issue after a server reboot + - audit: fix potential double free on error path from fsnotify_add_inode_mark + - cgroup: Fix race condition at rebind_subsystems() + - parisc: Make CONFIG_64BIT available for ARCH=parisc64 only + - parisc: Fix exception handler for fldw and fstw instructions + - kernel/sys_ni: add compat entry for fadvise64_64 + - kprobes: don't call disarm_kprobe() for disabled kprobes + - mm/uffd: reset write protection when unregister with wp-mode + - mm/hugetlb: support write-faults in shared mappings + - mt76: mt7921: fix command timeout in AP stop period + - xfrm: fix refcount leak in __xfrm_policy_check() + - Revert "xfrm: update SA curlft.use_time" + - xfrm: clone missing x->lastused in xfrm_do_migrate + - af_key: Do not call xfrm_probe_algs in parallel + - xfrm: policy: fix metadata dst->dev xmit null pointer dereference + - fs: require CAP_SYS_ADMIN in target namespace for idmapped mounts + - Revert "net: macsec: update SCI upon MAC address change." + - NFSv4.2 fix problems with __nfs42_ssc_open + - SUNRPC: RPC level errors should set task->tk_rpc_status + - mm/smaps: don't access young/dirty bit if pte unpresent + - ntfs: fix acl handling + - rose: check NULL rose_loopback_neigh->loopback + - r8152: fix the units of some registers for RTL8156A + - r8152: fix the RX FIFO settings when suspending + - nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout + - ice: xsk: prohibit usage of non-balanced queue id + - ice: xsk: use Rx ring's XDP ring when picking NAPI context + - net/mlx5e: Properly disable vlan strip on non-UL reps + - net/mlx5: LAG, fix logic over MLX5_LAG_FLAG_NDEVS_READY + - net/mlx5: Eswitch, Fix forwarding decision to uplink + - net/mlx5: Disable irq when locking lag_lock + - net/mlx5: Fix cmd error logging for manage pages cmd + - net/mlx5: Avoid false positive lockdep warning by adding lock_class_key + - net/mlx5e: Fix wrong application of the LRO state + - net/mlx5e: Fix wrong tc flag used when set hw-tc-offload off + - net: dsa: microchip: ksz9477: cleanup the ksz9477_switch_detect + - net: dsa: microchip: move switch chip_id detection to ksz_common + - net: dsa: microchip: move tag_protocol to ksz_common + - net: dsa: microchip: move vlan functionality to ksz_common + - net: dsa: microchip: move the port mirror to ksz_common + - net: dsa: microchip: update the ksz_phylink_get_caps + - net: dsa: microchip: keep compatibility with device tree blobs with no phy- + mode + - net: ipa: don't assume SMEM is page-aligned + - net: phy: Don't WARN for PHY_READY state in mdio_bus_phy_resume() + - net: moxa: get rid of asymmetry in DMA mapping/unmapping + - bonding: 802.3ad: fix no transmission of LACPDUs + - net: ipvtap - add __init/__exit annotations to module init/exit funcs + - netfilter: ebtables: reject blobs that don't provide all entry points + - netfilter: nft_tproxy: restrict to prerouting hook + - bnxt_en: Use PAGE_SIZE to init buffer when multi buffer XDP is not in use + - bnxt_en: set missing reload flag in devlink features + - bnxt_en: fix NQ resource accounting during vf creation on 57500 chips + - bnxt_en: fix LRO/GRO_HW features in ndo_fix_features callback + - netfilter: nf_tables: disallow updates of implicit chain + - netfilter: nf_tables: make table handle allocation per-netns friendly + - netfilter: nft_payload: report ERANGE for too long offset and length + - netfilter: nft_payload: do not truncate csum_offset and csum_type + - netfilter: nf_tables: do not leave chain stats enabled on error + - netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families + - netfilter: nft_tunnel: restrict it to netdev family + - netfilter: nf_tables: disallow binding to already bound chain + - netfilter: flowtable: add function to invoke garbage collection immediately + - netfilter: flowtable: fix stuck flows on cleanup due to pending work + - net: Fix data-races around sysctl_[rw]mem_(max|default). + - net: Fix data-races around weight_p and dev_weight_[rt]x_bias. + - net: Fix data-races around netdev_max_backlog. + - net: Fix data-races around netdev_tstamp_prequeue. + - ratelimit: Fix data-races in ___ratelimit(). + - net: Fix data-races around sysctl_optmem_max. + - net: Fix a data-race around sysctl_tstamp_allow_data. + - net: Fix a data-race around sysctl_net_busy_poll. + - net: Fix a data-race around sysctl_net_busy_read. + - net: Fix a data-race around netdev_budget. + - net: Fix data-races around sysctl_max_skb_frags. + - net: Fix a data-race around netdev_budget_usecs. + - net: Fix data-races around sysctl_fb_tunnels_only_for_init_net. + - net: Fix data-races around sysctl_devconf_inherit_init_net. + - net: Fix a data-race around gro_normal_batch. + - net: Fix a data-race around netdev_unregister_timeout_secs. + - net: Fix a data-race around sysctl_somaxconn. + - ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter + - i40e: Fix incorrect address type for IPv6 flow rules + - net: ethernet: mtk_eth_soc: enable rx cksum offload for MTK_NETSYS_V2 + - net: ethernet: mtk_eth_soc: fix hw hash reporting for MTK_NETSYS_V2 + - rxrpc: Fix locking in rxrpc's sendmsg + - ionic: clear broken state on generation change + - ionic: fix up issues with handling EAGAIN on FW cmds + - ionic: VF initial random MAC address if no assigned mac + - net: stmmac: work around sporadic tx issue on link-up + - net: lantiq_xrx200: confirm skb is allocated before using + - net: lantiq_xrx200: fix lock under memory pressure + - net: lantiq_xrx200: restore buffer if memory allocation failed + - btrfs: fix silent failure when deleting root reference + - btrfs: replace: drop assert for suspended replace + - btrfs: add info when mount fails due to stale replace target + - btrfs: fix space cache corruption and potential double allocations + - btrfs: check if root is readonly while setting security xattr + - btrfs: fix possible memory leak in btrfs_get_dev_args_from_path() + - btrfs: update generation of hole file extent item when merging holes + - x86/boot: Don't propagate uninitialized boot_params->cc_blob_address + - perf/x86/intel: Fix pebs event constraints for ADL + - perf/x86/lbr: Enable the branch type for the Arch LBR by default + - x86/entry: Fix entry_INT80_compat for Xen PV guests + - x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry + - x86/sev: Don't use cc_platform_has() for early SEV-SNP calls + - x86/bugs: Add "unknown" reporting for MMIO Stale Data + - x86/nospec: Unwreck the RSB stuffing + - x86/PAT: Have pat_enabled() properly reflect state when running on Xen + - loop: Check for overflow while configuring loop + - writeback: avoid use-after-free after removing device + - audit: move audit_return_fixup before the filters + - asm-generic: sections: refactor memory_intersects + - mm/damon/dbgfs: avoid duplicate context directory creation + - s390/mm: do not trigger write fault when vma does not allow VM_WRITE + - bootmem: remove the vmemmap pages from kmemleak in put_page_bootmem + - mm/hugetlb: avoid corrupting page->mapping in hugetlb_mcopy_atomic_pte + - mm/mprotect: only reference swap pfn page if type match + - cifs: skip extra NULL byte in filenames + - s390: fix double free of GS and RI CBs on fork() failure + - fbdev: fbcon: Properly revert changes when vc_resize() failed + - Revert "memcg: cleanup racy sum avoidance code" + - shmem: update folio if shmem_replace_page() updates the page + - ACPI: processor: Remove freq Qos request for all CPUs + - nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf + - smb3: missing inode locks in punch hole + - ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown + - xen/privcmd: fix error exit of privcmd_ioctl_dm_op() + - riscv: signal: fix missing prototype warning + - riscv: traps: add missing prototype + - riscv: dts: microchip: correct L2 cache interrupts + - Revert "zram: remove double compression logic" + - io_uring: fix issue with io_write() not always undoing sb_start_write() + - mm/hugetlb: fix hugetlb not supporting softdirty tracking + - Revert "md-raid: destroy the bitmap after destroying the thread" + - md: call __md_stop_writes in md_stop + - arm64: Fix match_list for erratum 1286807 on Arm Cortex-A76 + - binder_alloc: add missing mmap_lock calls when using the VMA + - x86/nospec: Fix i386 RSB stuffing + - drm/amdkfd: Fix isa version for the GC 10.3.7 + - Documentation/ABI: Mention retbleed vulnerability info file for sysfs + - blk-mq: fix io hung due to missing commit_rqs + - perf python: Fix build when PYTHON_CONFIG is user supplied + - perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU + - perf/x86/intel/ds: Fix precise store latency handling + - perf stat: Clear evsel->reset_group for each stat run + - arm64: fix rodata=full + - arm64/signal: Flush FPSIMD register state when disabling streaming mode + - arm64/sme: Don't flush SVE register state when allocating SME storage + - arm64/sme: Don't flush SVE register state when handling SME traps + - scsi: ufs: core: Enable link lost interrupt + - scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq + - scsi: core: Fix passthrough retry counter handling + - riscv: dts: microchip: mpfs: fix incorrect pcie child node name + - riscv: dts: microchip: mpfs: remove ti,fifo-depth property + - riscv: dts: microchip: mpfs: remove bogus card-detect-delay + - riscv: dts: microchip: mpfs: remove pci axi address translation property + - bpf: Don't use tnum_range on array range checking for poke descriptors + - Linux 5.19.6 + + * Kinetic update: v5.19.5 upstream stable release (LP: #1988207) + - kbuild: dummy-tools: avoid tmpdir leak in dummy gcc + - Linux 5.19.5 + + * Support Intel TDX guest attestation driver (LP: #1988120) + - SAUCE: x86/tdx: Add TDX Guest attestation interface driver + - SAUCE: selftests: tdx: Test GetReport TDX attestation feature + + * Kinetic update: v5.19.4 upstream stable release (LP: #1987923) + - ALSA: info: Fix llseek return value when using callback + - ALSA: hda/realtek: Add quirk for Clevo NS50PU, NS70PU + - RDMA: Handle the return code from dma_resv_wait_timeout() properly + - KVM: Unconditionally get a ref to /dev/kvm module when creating a VM + - x86/mm: Use proper mask when setting PUD mapping + - rds: add missing barrier to release_refill + - drm/i915/gem: Remove shared locking on freeing objects + - locking/atomic: Make test_and_*_bit() ordered on failure + - drm/nouveau: recognise GA103 + - drm/ttm: Fix dummy res NULL ptr deref bug + - drm/amdgpu: Only disable prefer_shadow on hawaii + - drm/amd/display: Check correct bounds for stream encoder instances for + DCN303 + - s390/ap: fix crash on older machines based on QCI info missing + - ata: libata-eh: Add missing command name + - mmc: pxamci: Fix another error handling path in pxamci_probe() + - mmc: pxamci: Fix an error handling path in pxamci_probe() + - mmc: meson-gx: Fix an error handling path in meson_mmc_probe() + - btrfs: unset reloc control if transaction commit fails in + prepare_to_relocate() + - btrfs: reset RO counter on block group if we fail to relocate + - btrfs: fix lost error handling when looking up extended ref on log replay + - btrfs: fix warning during log replay when bumping inode link count + - drm/amdgpu: change vram width algorithm for vram_info v3_0 + - drm/i915/gt: Ignore TLB invalidations on idle engines + - drm/i915/gt: Invalidate TLB of the OA unit at TLB invalidations + - drm/i915/gt: Skip TLB invalidations once wedged + - drm/i915/gt: Batch TLB invalidations + - drm/i915: pass a pointer for tlb seqno at vma_invalidate_tlb() + - cifs: Fix memory leak on the deferred close + - x86/kprobes: Fix JNG/JNLE emulation + - tracing/perf: Fix double put of trace event when init fails + - tracing/eprobes: Do not allow eprobes to use $stack, or % for regs + - tracing/eprobes: Do not hardcode $comm as a string + - tracing/eprobes: Fix reading of string fields + - tracing/eprobes: Have event probes be consistent with kprobes and uprobes + - tracing/probes: Have kprobes and uprobes use $COMM too + - tracing: Have filter accept "common_cpu" to be consistent + - ALSA: usb-audio: More comprehensive mixer map for ASUS ROG Zenith II + - ALSA: hda: Fix crash due to jack poll in suspend + - dt-bindings: usb: mtk-xhci: Allow wakeup interrupt-names to be optional + - can: ems_usb: fix clang's -Wunaligned-access warning + - apparmor: fix quiet_denied for file rules + - Revert "UBUNTU: SAUCE: apparmor: drop prefixing abs root labels with '='" + - apparmor: fix absroot causing audited secids to begin with = + - apparmor: Fix failed mount permission check error message + - apparmor: fix aa_label_asxprint return check + - apparmor: fix setting unconfined mode on a loaded profile + - apparmor: fix overlapping attachment computation + - apparmor: fix reference count leak in aa_pivotroot() + - apparmor: Fix memleak in aa_simple_write_to_buffer() + - Documentation: ACPI: EINJ: Fix obsolete example + - netfilter: nf_tables: fix crash when nf_trace is enabled + - net: tap: NULL pointer derefence in dev_parse_header_protocol when skb->dev + is null + - NFSv4.1: Don't decrease the value of seq_nr_highest_sent + - NFSv4.1: Handle NFS4ERR_DELAY replies to OP_SEQUENCE correctly + - NFSv4: Fix races in the legacy idmapper upcall + - NFSv4.1: RECLAIM_COMPLETE must handle EACCES + - NFSv4/pnfs: Fix a use-after-free bug in open + - mptcp, btf: Add struct mptcp_sock definition when CONFIG_MPTCP is disabled + - mptcp: move subflow cleanup in mptcp_destroy_common() + - mptcp: do not queue data on closed subflows + - selftests: mptcp: make sendfile selftest work + - BPF: Fix potential bad pointer dereference in bpf_sys_bpf() + - bpf: Disallow bpf programs call prog_run command. + - bpf: Don't reinit map value in prealloc_lru_pop + - bpf: Acquire map uref in .init_seq_private for array map iterator + - bpf: Acquire map uref in .init_seq_private for hash map iterator + - bpf: Acquire map uref in .init_seq_private for sock local storage map + iterator + - bpf: Acquire map uref in .init_seq_private for sock{map,hash} iterator + - bpf: Check the validity of max_rdwr_access for sock local storage map + iterator + - can: mcp251x: Fix race condition on receive interrupt + - can: j1939: j1939_session_destroy(): fix memory leak of skbs + - net: atlantic: fix aq_vec index out of range error + - m68k: coldfire/device.c: protect FLEXCAN blocks + - sunrpc: fix expiry of auth creds + - SUNRPC: Fix xdr_encode_bool() + - SUNRPC: Reinitialise the backchannel request buffers before reuse + - SUNRPC: Don't reuse bvec on retransmission of the request + - ASoC: qdsp6: q6apm-dai: unprepare stream if its already prepared + - virtio: VIRTIO_HARDEN_NOTIFICATION is broken + - [Config] updateconfigs for VIRTIO_HARDEN_NOTIFICATION + - virtio_net: fix memory leak inside XPD_TX with mergeable + - virtio-blk: Avoid use-after-free on suspend/resume + - devlink: Fix use-after-free after a failed reload + - net: phy: Warn about incorrect mdio_bus_phy_resume() state + - net: bcmgenet: Indicate MAC is in charge of PHY PM + - net: phy: c45 baset1: do not skip aneg configuration if clock role is not + specified + - net: dsa: felix: suppress non-changes to the tagging protocol + - net: bgmac: Fix a BUG triggered by wrong bytes_compl + - net: atm: bring back zatm uAPI + - selftests: forwarding: Fix failing tests with old libnet + - dt-bindings: arm: qcom: fix Alcatel OneTouch Idol 3 compatibles + - pinctrl: renesas: rzg2l: Return -EINVAL for pins which have input disabled + - dt-bindings: pinctrl: mt8192: Add drive-strength-microamp + - dt-bindings: pinctrl: mt8192: Use generic bias instead of pull-*-adv + - pinctrl: nomadik: Fix refcount leak in nmk_pinctrl_dt_subnode_to_map + - pinctrl: qcom: msm8916: Allow CAMSS GP clocks to be muxed + - pinctrl: amd: Don't save/restore interrupt status and wake status bits + - dt-bindings: pinctrl: mt8195: Fix name for mediatek,rsel-resistance-in-si- + unit + - dt-bindings: pinctrl: mt8195: Add and use drive-strength-microamp + - pinctrl: sunxi: Add I/O bias setting for H6 R-PIO + - dt-bindings: pinctrl: mt8186: Add and use drive-strength-microamp + - pinctrl: qcom: sm8250: Fix PDC map + - rtc: spear: set range max + - Input: exc3000 - fix return value check of wait_for_completion_timeout + - Input: mt6779-keypad - match hardware matrix organization + - Input: iqs7222 - correct slider event disable logic + - Input: iqs7222 - fortify slider event reporting + - Input: iqs7222 - protect volatile registers + - Input: iqs7222 - acknowledge reset before writing registers + - Input: iqs7222 - handle reset during ATI + - Input: iqs7222 - remove support for RF filter + - dt-bindings: input: iqs7222: Remove support for RF filter + - dt-bindings: input: iqs7222: Correct bottom speed step size + - dt-bindings: input: iqs7222: Extend slider-mapped GPIO to IQS7222C + - octeontx2-pf: Fix NIX_AF_TL3_TL2X_LINKX_CFG register configuration + - octeontx2-af: Apply tx nibble fixup always + - octeontx2-af: suppress external profile loading warning + - octeontx2-af: Fix mcam entry resource leak + - octeontx2-af: Fix key checking for source mac + - ACPI: property: Return type of acpi_add_nondev_subnodes() should be bool + - geneve: do not use RT_TOS for IPv6 flowlabel + - vxlan: do not use RT_TOS for IPv6 flowlabel + - mlx5: do not use RT_TOS for IPv6 flowlabel + - ipv6: do not use RT_TOS for IPv6 flowlabel + - plip: avoid rcu debug splat + - vsock: Fix memory leak in vsock_connect() + - vsock: Set socket state back to SS_UNCONNECTED in vsock_connect_timeout() + - dt-bindings: gpio: zynq: Add missing compatible strings + - dt-bindings: arm: qcom: fix Longcheer L8150 compatibles + - dt-bindings: arm: qcom: fix MSM8916 MTP compatibles + - dt-bindings: arm: qcom: fix MSM8994 boards compatibles + - dt-bindings: clock: qcom,gcc-msm8996: add more GCC clock sources + - dt-bindings: PCI: qcom: Fix reset conditional + - spi: dt-bindings: cadence: add missing 'required' + - spi: dt-bindings: zynqmp-qspi: add missing 'required' + - dt-bindings: opp: opp-v2-kryo-cpu: Fix example binding checks + - spi: dt-bindings: qcom,spi-geni-qcom: allow three interconnects + - ceph: use correct index when encoding client supported features + - tools/testing/cxl: Fix decoder default state + - tools/vm/slabinfo: use alphabetic order when two values are equal + - ceph: don't leak snap_rwsem in handle_cap_grant + - clk: imx93: Correct the edma1's parent clock + - vdpa_sim: use max_iotlb_entries as a limit in vhost_iotlb_init + - vdpa_sim_blk: set number of address spaces and virtqueue groups + - tools/testing/cxl: Fix cxl_hdm_decode_init() calling convention + - kbuild: dummy-tools: avoid tmpdir leak in dummy gcc + - tools build: Switch to new openssl API for test-libcrypto + - NTB: ntb_tool: uninitialized heap data in tool_fn_write() + - nfp: ethtool: fix the display error of `ethtool -m DEVNAME` + - xen/xenbus: fix return type in xenbus_file_read() + - tsnep: Fix tsnep_tx_unmap() error path usage + - atm: idt77252: fix use-after-free bugs caused by tst_timer + - fscache: don't leak cookie access refs if invalidation is in progress or + failed + - geneve: fix TOS inheriting for ipv4 + - nvme-fc: fix the fc_appid_store return value + - perf probe: Fix an error handling path in 'parse_perf_probe_command()' + - i2c: qcom-geni: Fix GPI DMA buffer sync-back + - perf parse-events: Fix segfault when event parser gets an error + - perf tests: Fix Track with sched_switch test for hybrid case + - dpaa2-eth: trace the allocated address instead of page struct + - fs/ntfs3: Fix using uninitialized value n when calling indx_read + - fs/ntfs3: Fix NULL deref in ntfs_update_mftmirr + - fs/ntfs3: Don't clear upper bits accidentally in log_replay() + - fs/ntfs3: Fix double free on remount + - fs/ntfs3: Do not change mode if ntfs_set_ea failed + - fs/ntfs3: Fix missing i_op in ntfs_read_mft + - nios2: page fault et.al. are *not* restartable syscalls... + - nios2: don't leave NULLs in sys_call_table[] + - nios2: traced syscall does need to check the syscall number + - nios2: fix syscall restart checks + - nios2: restarts apply only to the first sigframe we build... + - nios2: add force_successful_syscall_return() + - iavf: Fix adminq error handling + - iavf: Fix NULL pointer dereference in iavf_get_link_ksettings + - iavf: Fix reset error handling + - iavf: Fix deadlock in initialization + - ASoC: Intel: avs: Fix potential buffer overflow by snprintf() + - ASoC: SOF: debug: Fix potential buffer overflow by snprintf() + - ASoC: SOF: Intel: hda: Fix potential buffer overflow by snprintf() + - ASoC: DPCM: Don't pick up BE without substream + - ASoC: tas2770: Set correct FSYNC polarity + - ASoC: tas2770: Allow mono streams + - ASoC: tas2770: Drop conflicting set_bias_level power setting + - ASoC: tas2770: Fix handling of mute/unmute + - ASoC: codec: tlv320aic32x4: fix mono playback via I2S + - IB/iser: Fix login with authentication + - RDMA/mlx5: Use the proper number of ports + - RDMA/cxgb4: fix accept failure due to increased cpl_t5_pass_accept_rpl size + - netfilter: nfnetlink: re-enable conntrack expectation events + - netfilter: nf_tables: use READ_ONCE and WRITE_ONCE for shared generation id + access + - fs/ntfs3: uninitialized variable in ntfs_set_acl_ex() + - netfilter: nf_tables: disallow NFTA_SET_ELEM_KEY_END with + NFT_SET_ELEM_INTERVAL_END flag + - netfilter: nf_ct_sane: remove pseudo skb linearization + - netfilter: nf_ct_h323: cap packet size at 64k + - netfilter: nf_ct_ftp: prefer skb_linearize + - netfilter: nf_ct_irc: cap packet search space to 4k + - netfilter: nf_tables: possible module reference underflow in error path + - netfilter: nf_tables: really skip inactive sets when allocating name + - netfilter: nf_tables: fix scheduling-while-atomic splat + - netfilter: nf_tables: validate NFTA_SET_ELEM_OBJREF based on NFT_SET_OBJECT + flag + - netfilter: nf_tables: NFTA_SET_ELEM_KEY_END requires concat and interval + flags + - netfilter: nf_tables: disallow NFT_SET_ELEM_CATCHALL and + NFT_SET_ELEM_INTERVAL_END + - netfilter: nf_tables: check NFT_SET_CONCAT flag if field_count is specified + - powerpc/pci: Fix get_phb_number() locking + - spi: meson-spicc: add local pow2 clock ops to preserve rate between messages + - net/sunrpc: fix potential memory leaks in rpc_sysfs_xprt_state_change() + - net: dsa: mv88e6060: prevent crash on an unused port + - net: qrtr: start MHI channel after endpoit creation + - virtio_net: fix endian-ness for RSS + - mlxsw: spectrum: Clear PTP configuration after unregistering the netdevice + - net: moxa: pass pdev instead of ndev to DMA functions + - net: fix potential refcount leak in ndisc_router_discovery() + - net: rtnetlink: fix module reference count leak issue in rtnetlink_rcv_msg + - net: sched: fix misuse of qcpu->backlog in gnet_stats_add_queue_cpu + - net: dsa: microchip: ksz9477: fix fdb_dump last invalid entry + - net: dsa: felix: fix ethtool 256-511 and 512-1023 TX packet counters + - net: mscc: ocelot: fix incorrect ndo_get_stats64 packet counters + - net: mscc: ocelot: fix address of SYS_COUNT_TX_AGING counter + - net: genl: fix error path memory leak in policy dumping + - net: dsa: don't warn in dsa_port_set_state_now() when driver doesn't support + it + - net: dsa: sja1105: fix buffer overflow in sja1105_setup_devlink_regions() + - ice: Fix VSI rebuild WARN_ON check for VF + - ice: Fix call trace with null VSI during VF reset + - ice: Fix VF not able to send tagged traffic with no VLAN filters + - ice: Fix double VLAN error when entering promisc mode + - ice: Ignore EEXIST when setting promisc mode + - ice: Fix clearing of promisc mode with bridge over bond + - ice: Ignore error message when setting same promiscuous mode + - modpost: fix module versioning when a symbol lacks valid CRC + - i2c: imx: Make sure to unregister adapter on remove() + - i40e: Fix tunnel checksum offload with fragmented traffic + - regulator: pca9450: Remove restrictions for regulator-name + - i40e: Fix to stop tx_timeout recovery if GLOBR fails + - blk-mq: run queue no matter whether the request is the last request + - tools/rtla: Fix command symlinks + - fec: Fix timer capture timing in `fec_ptp_enable_pps()` + - dt-bindings: display: sun4i: Add D1 TCONs to conditionals + - stmmac: intel: Add a missing clk_disable_unprepare() call in + intel_eth_pci_remove() + - igb: Add lock to avoid data race + - kbuild: fix the modules order between drivers and libs + - gcc-plugins: Undefine LATENT_ENTROPY_PLUGIN when plugin disabled for a file + - can: j1939: j1939_sk_queue_activate_next_locked(): replace WARN_ON_ONCE with + netdev_warn_once() + - drm/imx/dcss: get rid of HPD warning message + - drm/meson: Fix refcount bugs in meson_vpu_has_available_connectors() + - drm/i915/ttm: don't leak the ccs state + - drm/amdgpu: Avoid another list of reset devices + - drm/bridge: lvds-codec: Fix error checking of drm_of_lvds_get_data_mapping() + - drm/sun4i: dsi: Prevent underflow when computing packet sizes + - drm/amdgpu: Fix use-after-free on amdgpu_bo_list mutex + - KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems + - KVM: arm64: Reject 32bit user PSTATE on asymmetric systems + - net: mscc: ocelot: turn stats_lock into a spinlock + - net: mscc: ocelot: fix race between ndo_get_stats64 and + ocelot_check_stats_work + - net: mscc: ocelot: make struct ocelot_stat_layout array indexable + - net: mscc: ocelot: report ndo_get_stats64 from the wraparound-resistant + ocelot->stats + - x86/ibt, objtool: Add IBT_NOSEAL() + - x86/kvm: Fix "missing ENDBR" BUG for fastop functions + - thunderbolt: Change downstream router's TMU rate in both TMU uni/bidir mode + - HID: multitouch: new device class fix Lenovo X12 trackpad sticky + - PCI: Add ACS quirk for Broadcom BCM5750x NICs + - platform/chrome: cros_ec_proto: don't show MKBP version if unsupported + - staging: r8188eu: add error handling of rtw_read8 + - staging: r8188eu: add error handling of rtw_read16 + - staging: r8188eu: add error handling of rtw_read32 + - usb: cdns3 fix use-after-free at workaround 2 + - usb: gadget: uvc: calculate the number of request depending on framesize + - usb: gadget: uvc: call uvc uvcg_warn on completed status instead of + uvcg_info + - PCI: aardvark: Fix reporting Slot capabilities on emulated bridge + - scsi: ufs: core: Add UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS + - scsi: ufs: core: Add UFSHCD_QUIRK_HIBERN_FASTAUTO + - irqchip/tegra: Fix overflow implicit truncation warnings + - drm/meson: Fix overflow implicit truncation warnings + - clk: ti: Stop using legacy clkctrl names for omap4 and 5 + - scsi: ufs: ufs-mediatek: Fix the timing of configuring device regulators + - usb: typec: mux: Add CONFIG guards for functions + - usb: host: ohci-ppc-of: Fix refcount leak bug + - usb: renesas: Fix refcount leak bug + - scsi: iscsi: Fix HW conn removal use after free + - usb: dwc2: gadget: remove D+ pull-up while no vbus with usb-role-switch + - vboxguest: Do not use devm for irq + - clk: qcom: ipq8074: dont disable gcc_sleep_clk_src + - uacce: Handle parent device removal or parent driver module rmmod + - zram: do not lookup algorithm in backends table + - clk: qcom: clk-alpha-pll: fix clk_trion_pll_configure description + - scsi: lpfc: Prevent buffer overflow crashes in debugfs with malformed user + input + - scsi: lpfc: Fix possible memory leak when failing to issue CMF WQE + - gadgetfs: ep_io - wait until IRQ finishes + - coresight: etm4x: avoid build failure with unrolled loops + - habanalabs: add terminating NULL to attrs arrays + - habanalabs/gaudi: invoke device reset from one code block + - habanalabs/gaudi: fix shift out of bounds + - habanalabs/gaudi: mask constant value before cast + - mmc: tmio: avoid glitches when resetting + - scsi: ufs: ufs-exynos: Change ufs phy control sequence + - pinctrl: intel: Check against matching data instead of ACPI companion + - cxl: Fix a memory leak in an error handling path + - PCI/ACPI: Guard ARM64-specific mcfg_quirks + - um: add "noreboot" command line option for PANIC_TIMEOUT=-1 setups + - of: overlay: Move devicetree_corrupt() check up + - dmaengine: dw-axi-dmac: do not print NULL LLI during error + - dmaengine: dw-axi-dmac: ignore interrupt if no descriptor + - mmc: renesas_sdhi: newer SoCs don't need manual tap correction + - ACPI: PPTT: Leave the table mapped for the runtime usage + - RDMA/rxe: Limit the number of calls to each tasklet + - csky/kprobe: reclaim insn_slot on kprobe unregistration + - selftests/kprobe: Do not test for GRP/ without event failures + - dmaengine: tegra: Add terminate() for Tegra234 + - dmaengine: sprd: Cleanup in .remove() after pm_runtime_get_sync() failed + - Revert "RDMA/rxe: Create duplicate mapping tables for FMRs" + - openrisc: io: Define iounmap argument as volatile + - phy: samsung: phy-exynos-pcie: sanitize init/power_on callbacks + - md: Notify sysfs sync_completed in md_reap_sync_thread() + - md/raid5: Make logic blocking check consistent with logic that blocks + - nvmet-tcp: fix lockdep complaint on nvmet_tcp_wq flush during queue teardown + - drivers:md:fix a potential use-after-free bug + - ext4: avoid remove directory when directory is corrupted + - ext4: block range must be validated before use in ext4_mb_clear_bb() + - ext4: avoid resizing to a partial cluster size + - lib/list_debug.c: Detect uninitialized lists + - tty: serial: Fix refcount leak bug in ucc_uart.c + - KVM: PPC: Book3S HV: Fix "rm_exit" entry in debugfs timings + - vfio: Clear the caps->buf to NULL after free + - mips: cavium-octeon: Fix missing of_node_put() in octeon2_usb_clocks_start + - iommu/io-pgtable-arm-v7s: Add a quirk to allow pgtable PA up to 35bit + - ASoC: Intel: avs: Set max DMA segment size + - ALSA: hda: Fix page fault in snd_hda_codec_shutdown() + - modules: Ensure natural alignment for .altinstructions and __bug_table + sections + - ASoC: SOF: Intel: cnl: Do not process IPC reply before firmware boot + - ASoC: SOF: Intel: hda-ipc: Do not process IPC reply before firmware boot + - ASoC: SOF: sof-client-probes: Only load the driver if IPC3 is used + - ASoC: rsnd: care default case on rsnd_ssiu_busif_err_irq_ctrl() + - riscv: dts: sifive: Add fu740 topology information + - riscv: dts: canaan: Add k210 topology information + - ASoC: nau8821: Don't unconditionally free interrupt + - riscv: mmap with PROT_WRITE but no PROT_READ is invalid + - RISC-V: Add fast call path of crash_kexec() + - ALSA: hda/realtek: Enable speaker and mute LEDs for HP laptops + - ASoC: SOF: Intel: hda: add sanity check on SSP index reported by NHLT + - ASoC: Intel: sof_es8336: Fix GPIO quirks set via module option + - ASoC: Intel: sof_es8336: ignore GpioInt when looking for speaker/headset + GPIO lines + - ASoC: Intel: sof_nau8825: Move quirk check to the front in late probe + - watchdog: export lockup_detector_reconfigure + - powerpc/watchdog: introduce a NMI watchdog's factor + - powerpc/pseries/mobility: set NMI watchdog factor during an LPM + - powerpc/32: Set an IBAT covering up to _einittext during init + - powerpc/32: Don't always pass -mcpu=powerpc to the compiler + - ASoC: codecs: va-macro: use fsgen as clock + - ovl: warn if trusted xattr creation fails + - powerpc/ioda/iommu/debugfs: Generate unique debugfs entries + - ALSA: core: Add async signal helpers + - ALSA: timer: Use deferred fasync helper + - ALSA: pcm: Use deferred fasync helper + - ALSA: control: Use deferred fasync helper + - f2fs: fix to avoid use f2fs_bug_on() in f2fs_new_node_page() + - f2fs: fix to do sanity check on segment type in build_sit_entries() + - smb3: check xattr value length earlier + - powerpc/64: Init jump labels before parse_early_param() + - venus: pm_helpers: Fix warning in OPP during probe + - video: fbdev: i740fb: Check the argument of i740_calc_vclk() + - MIPS: tlbex: Explicitly compare _PAGE_NO_EXEC against 0 + - f2fs: revive F2FS_IOC_ABORT_VOLATILE_WRITE + - f2fs: fix null-ptr-deref in f2fs_get_dnode_of_data + - scsi: ufs: ufs-mediatek: Fix build error and type mismatch + - Revert "ALSA: hda: Fix page fault in snd_hda_codec_shutdown()" + - Linux 5.19.4 + + * RISC-V kernel config is out of sync with other archs (LP: #1981437) + - [Config] Align riscv64 CONFIG_LSM with other architectures + - [Config] Enable CONFIG_DRM_RCAR_USE_LVDS for riscv64 + - [Config] Enable CONFIG_DTPM for riscv64 + - [Config] Set CONFIG_MTD_RAW_NAND=m for riscv64 + + * Use upstream LED description on Unmatched (LP: #1987513) + - dt-bindings: leds: pwm-multicolor: Add active-low property + - leds: pwm-multicolor: Support active-low LEDs + - riscv: dts: sifive unmatched: Add PWM controlled LEDs + + * Fix invalid MAC address after hotplug tbt dock (LP: #1942999) + - SAUCE: igc: wait for the MAC copy when enabled MAC passthrough + + * Kinetic update: v5.19.3 upstream stable release (LP: #1987345) + - Revert "mm: kfence: apply kmemleak_ignore_phys on early allocated pool" + - tee: add overflow check in register_shm_helper() + - net_sched: cls_route: disallow handle of 0 + - btrfs: only write the sectors in the vertical stripe which has data stripes + - btrfs: raid56: don't trust any cached sector in __raid56_parity_recover() + - kexec, KEYS: make the code in bzImage64_verify_sig generic + - arm64: kexec_file: use more system keyrings to verify kernel image signature + - Linux 5.19.3 + + * [22.04 FEAT] Deactivitate CONFIG_QETH_OSX kernel config option + (LP: #1959890) + - [Config] disable CONFIG_QETH_OSX on s390x + + * Kinetic update: v5.19.2 upstream stable release (LP: #1986865) + - Makefile: link with -z noexecstack --no-warn-rwx-segments + - x86: link vdso and boot with -z noexecstack --no-warn-rwx-segments + - Revert "pNFS: nfs3_set_ds_client should set NFS_CS_NOPING" + - scsi: Revert "scsi: qla2xxx: Fix disk failure to rediscover" + - pNFS/flexfiles: Report RDMA connection errors to the server + - nfsd: eliminate the NFSD_FILE_BREAK_* flags + - ALSA: usb-audio: Add quirk for Behringer UMC202HD + - ALSA: bcd2000: Fix a UAF bug on the error path of probing + - ALSA: hda/realtek: Add quirk for Clevo NV45PZ + - ALSA: hda/realtek: Add quirk for HP Spectre x360 15-eb0xxx + - ALSA: hda/realtek: Add quirk for Lenovo Yoga9 14IAP7 + - ASoC: amd: yc: Update DMI table entries + - hwmon: (nct6775) Fix platform driver suspend regression + - wifi: mac80211_hwsim: fix race condition in pending packet + - wifi: mac80211_hwsim: add back erroneously removed cast + - wifi: mac80211_hwsim: use 32-bit skb cookie + - add barriers to buffer_uptodate and set_buffer_uptodate + - lockd: detect and reject lock arguments that overflow + - HID: hid-input: add Surface Go battery quirk + - HID: nintendo: Add missing array termination + - HID: wacom: Only report rotation for art pen + - HID: wacom: Don't register pad_input for touch switch + - KVM: nVMX: Snapshot pre-VM-Enter BNDCFGS for !nested_run_pending case + - KVM: nVMX: Snapshot pre-VM-Enter DEBUGCTL for !nested_run_pending case + - KVM: SVM: Don't BUG if userspace injects an interrupt with GIF=0 + - KVM: s390: pv: don't present the ecall interrupt twice + - KVM: Drop unused @gpa param from gfn=>pfn cache's __release_gpc() helper + - KVM: Put the extra pfn reference when reusing a pfn in the gpc cache + - KVM: Fully serialize gfn=>pfn cache refresh via mutex + - KVM: Fix multiple races in gfn=>pfn cache refresh + - KVM: Do not incorporate page offset into gfn=>pfn cache user address + - KVM: x86: Split kvm_is_valid_cr4() and export only the non-vendor bits + - KVM: nVMX: Let userspace set nVMX MSR to any _host_ supported value + - KVM: nVMX: Account for KVM reserved CR4 bits in consistency checks + - KVM: nVMX: Inject #UD if VMXON is attempted with incompatible CR0/CR4 + - KVM: x86: Mark TSS busy during LTR emulation _after_ all fault checks + - KVM: x86: Set error code to segment selector on LLDT/LTR non-canonical #GP + - KVM: x86/mmu: Treat NX as a valid SPTE bit for NPT + - KVM: SVM: Disable SEV-ES support if MMIO caching is disable + - KVM: x86: Tag kvm_mmu_x86_module_init() with __init + - KVM: x86/mmu: Fully re-evaluate MMIO caching when SPTE masks change + - KVM: x86: do not report preemption if the steal time cache is stale + - KVM: x86: revalidate steal time cache if MSR value changes + - KVM: x86/xen: Initialize Xen timer only once + - KVM: x86/xen: Stop Xen timer before changing IRQ + - ALSA: hda/conexant: Add quirk for LENOVO 20149 Notebook model + - ALSA: hda/cirrus - support for iMac 12,1 model + - ALSA: hda/realtek: Add quirk for another Asus K42JZ model + - ALSA: hda/realtek: Add a quirk for HP OMEN 15 (8786) mute LED + - LoongArch: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - tty: 8250: Add support for Brainboxes PX cards. + - tty: vt: initialize unicode screen buffer + - vfs: Check the truncate maximum size in inode_newsize_ok() + - fs: Add missing umask strip in vfs_tmpfile + - thermal: sysfs: Fix cooling_device_stats_setup() error code path + - fbcon: Fix boundary checks for fbcon=vc:n1-n2 parameters + - fbcon: Fix accelerated fbdev scrolling while logo is still shown + - usbnet: Fix linkwatch use-after-free on disconnect + - usbnet: smsc95xx: Fix deadlock on runtime resume + - fix short copy handling in copy_mc_pipe_to_iter() + - crypto: ccp - Use kzalloc for sev ioctl interfaces to prevent kernel memory + leak + - ovl: drop WARN_ON() dentry is NULL in ovl_encode_fh() + - parisc: Fix device names in /proc/iomem + - parisc: Drop pa_swapper_pg_lock spinlock + - parisc: Check the return value of ioremap() in lba_driver_probe() + - parisc: io_pgetevents_time64() needs compat syscall in 32-bit compat mode + - riscv:uprobe fix SR_SPIE set/clear handling + - riscv: lib: uaccess: fix CSR_STATUS SR_SUM bit + - dt-bindings: riscv: fix SiFive l2-cache's cache-sets + - riscv: dts: starfive: correct number of external interrupts + - RISC-V: cpu_ops_spinwait.c should include head.h + - RISC-V: Declare cpu_ops_spinwait in + - RISC-V: kexec: Fixup use of smp_processor_id() in preemptible context + - RISC-V: Fixup get incorrect user mode PC for kernel mode regs + - RISC-V: Fixup schedule out issue in machine_crash_shutdown() + - RISC-V: Add modules to virtual kernel memory layout dump + - RISC-V: Fix counter restart during overflow for RV32 + - RISC-V: Fix SBI PMU calls for RV32 + - RISC-V: Update user page mapping only once during start + - wireguard: selftests: set CONFIG_NONPORTABLE on riscv32 + - rtc: rx8025: fix 12/24 hour mode detection on RX-8035 + - drm/gem: Properly annotate WW context on drm_gem_lock_reservations() error + - drm/shmem-helper: Add missing vunmap on error + - drm/vc4: hdmi: Disable audio if dmas property is present but empty + - drm/ingenic: Use the highest possible DMA burst size + - drm/fb-helper: Fix out-of-bounds access + - drm/hyperv-drm: Include framebuffer and EDID headers + - drm/dp/mst: Read the extended DPCD capabilities during system resume + - drm/nouveau: fix another off-by-one in nvbios_addr + - drm/nouveau: Don't pm_runtime_put_sync(), only pm_runtime_put_autosuspend() + - drm/nouveau/acpi: Don't print error when we get -EINPROGRESS from pm_runtime + - drm/nouveau/kms: Fix failure path for creating DP connectors + - drm/tegra: Fix vmapping of prime buffers + - drm/amdgpu: Check BO's requested pinning domains against its + preferred_domains + - bpf: Fix KASAN use-after-free Read in compute_effective_progs + - btrfs: reject log replay if there is unsupported RO compat flag + - mtd: rawnand: arasan: Fix clock rate in NV-DDR + - mtd: rawnand: arasan: Update NAND bus clock instead of system clock + - um: Remove straying parenthesis + - um: seed rng using host OS rng + - iio: fix iio_format_avail_range() printing for none IIO_VAL_INT + - iio: light: isl29028: Fix the warning in isl29028_remove() + - scsi: lpfc: Remove extra atomic_inc on cmd_pending in queuecommand after + VMID + - scsi: sg: Allow waiting for commands to complete on removed device + - scsi: qla2xxx: Fix incorrect display of max frame size + - scsi: qla2xxx: Zero undefined mailbox IN registers + - soundwire: qcom: Check device status before reading devid + - ksmbd: fix memory leak in smb2_handle_negotiate + - ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT + - ksmbd: prevent out of bound read for SMB2_WRITE + - ksmbd: fix use-after-free bug in smb2_tree_disconect + - ksmbd: fix heap-based overflow in set_ntacl_dacl() + - fuse: limit nsec + - fuse: ioctl: translate ENOSYS + - fuse: write inode in fuse_release() + - fuse: fix deadlock between atomic O_TRUNC and page invalidation + - serial: mvebu-uart: uart2 error bits clearing + - md-raid: destroy the bitmap after destroying the thread + - md-raid10: fix KASAN warning + - mbcache: don't reclaim used entries + - mbcache: add functions to delete entry if unused + - media: isl7998x: select V4L2_FWNODE to fix build error + - media: [PATCH] pci: atomisp_cmd: fix three missing checks on list iterator + - ia64, processor: fix -Wincompatible-pointer-types in ia64_get_irr() + - powerpc: Restore CONFIG_DEBUG_INFO in defconfigs + - powerpc/64e: Fix early TLB miss with KUAP + - powerpc/fsl-pci: Fix Class Code of PCIe Root Port + - powerpc/ptdump: Fix display of RW pages on FSL_BOOK3E + - powerpc/powernv: Avoid crashing if rng is NULL + - MIPS: cpuinfo: Fix a warning for CONFIG_CPUMASK_OFFSTACK + - coresight: Clear the connection field properly + - usb: typec: ucsi: Acknowledge the GET_ERROR_STATUS command completion + - USB: HCD: Fix URB giveback issue in tasklet function + - Revert "net: usb: ax88179_178a needs FLAG_SEND_ZLP" + - ARM: dts: uniphier: Fix USB interrupts for PXs2 SoC + - arm64: dts: uniphier: Fix USB interrupts for PXs3 SoC + - usb: dwc3: gadget: refactor dwc3_repare_one_trb + - usb: dwc3: gadget: fix high speed multiplier setting + - netfilter: nf_tables: do not allow SET_ID to refer to another table + - netfilter: nf_tables: do not allow CHAIN_ID to refer to another table + - netfilter: nf_tables: do not allow RULE_ID to refer to another chain + - netfilter: nf_tables: upfront validation of data via nft_data_init() + - netfilter: nf_tables: disallow jump to implicit chain from set element + - netfilter: nf_tables: fix null deref due to zeroed list head + - epoll: autoremove wakers even more aggressively + - x86: Handle idle=nomwait cmdline properly for x86_idle + - arch: make TRACE_IRQFLAGS_NMI_SUPPORT generic + - arm64: kasan: do not instrument stacktrace.c + - arm64: stacktrace: use non-atomic __set_bit + - arm64: Do not forget syscall when starting a new thread. + - arm64: fix oops in concurrently setting insn_emulation sysctls + - arm64: kasan: Revert "arm64: mte: reset the page tag in page->flags" + - [Config] updateconfigs for ARM64_ERRATUM_1742098 + - arm64: errata: Remove AES hwcap for COMPAT tasks + - ext2: Add more validity checks for inode counts + - sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg + - genirq: Don't return error on missing optional irq_request_resources() + - irqchip/mips-gic: Only register IPI domain when SMP is enabled + - genirq: GENERIC_IRQ_IPI depends on SMP + - sched/fair: fix case with reduced capacity CPU + - sched/core: Always flush pending blk_plug + - irqchip/mips-gic: Check the return value of ioremap() in gic_of_init() + - ARM: dts: imx6ul: add missing properties for sram + - ARM: dts: imx6ul: change operating-points to uint32-matrix + - ARM: dts: imx6ul: fix keypad compatible + - ARM: dts: imx6ul: fix csi node compatible + - ARM: dts: imx6ul: fix lcdif node compatible + - ARM: dts: imx6ul: fix qspi node compatible + - ARM: dts: BCM5301X: Add DT for Meraki MR26 + - ARM: dts: ux500: Fix Janice accelerometer mounting matrix + - ARM: dts: ux500: Fix Codina accelerometer mounting matrix + - ARM: dts: ux500: Fix Gavini accelerometer mounting matrix + - arm64: dts: qcom: timer should use only 32-bit size + - spi: synquacer: Add missing clk_disable_unprepare() + - ARM: OMAP2+: display: Fix refcount leak bug + - ARM: OMAP2+: pdata-quirks: Fix refcount leak bug + - ACPI: EC: Remove duplicate ThinkPad X1 Carbon 6th entry from DMI quirks + - ACPI: EC: Drop the EC_FLAGS_IGNORE_DSDT_GPE quirk + - ACPI: PM: save NVS memory for Lenovo G40-45 + - ACPI: LPSS: Fix missing check in register_device_clock() + - ARM: dts: qcom: sdx55: Fix the IRQ trigger type for UART + - arm64: dts: qcom: sc7280: Rename sar sensor labels + - arm64: dts: qcom: add missing AOSS QMP compatible fallback + - arm64: dts: qcom: ipq8074: fix NAND node name + - arm64: dts: allwinner: a64: orangepi-win: Fix LED node name + - ARM: shmobile: rcar-gen2: Increase refcount for new reference + - firmware: tegra: Fix error check return value of debugfs_create_file() + - hwmon: (dell-smm) Add Dell XPS 13 7390 to fan control whitelist + - PM: EM: convert power field to micro-Watts precision and align drivers + - ACPI: video: Use native backlight on Dell Inspiron N4010 + - hwmon: (sht15) Fix wrong assumptions in device remove callback + - PM: hibernate: defer device probing when resuming from hibernation + - selinux: fix memleak in security_read_state_kernel() + - selinux: Add boundary check in put_entry() + - io_uring: fix io_uring_cqe_overflow trace format + - kasan: test: Silence GCC 12 warnings + - wait: Fix __wait_event_hrtimeout for RT/DL tasks + - meson-mx-socinfo: Fix refcount leak in meson_mx_socinfo_init + - arm64: dts: renesas: beacon: Fix regulator node names + - spi: spi-altera-dfl: Fix an error handling path + - ARM: bcm: Fix refcount leak in bcm_kona_smc_init + - ACPI: processor/idle: Annotate more functions to live in cpuidle section + - ARM: dts: imx7d-colibri-emmc: add cpu1 supply + - ARM: dts: imx7-colibri: overhaul display/touch functionality + - ARM: dts: imx7-colibri: add usb dual-role switching using extcon + - ARM: dts: imx7-colibri: improve wake-up with gpio key + - ARM: dts: imx7-colibri: move aliases, chosen, extcon and gpio-keys + - ARM: dts: imx7-colibri-eval-v3: correct can controller comment + - soc: renesas: r8a779a0-sysc: Fix A2DP1 and A2CV[2357] PDR values + - soc: amlogic: Fix refcount leak in meson-secure-pwrc.c + - arm64: dts: renesas: Fix thermal-sensors on single-zone sensors + - Revert "ARM: dts: imx6qdl-apalis: Avoid underscore in node name" + - x86/pmem: Fix platform-device leak in error path + - ARM: dts: ast2500-evb: fix board compatible + - ARM: dts: ast2600-evb: fix board compatible + - ARM: dts: ast2600-evb-a1: fix board compatible + - arm64: dts: mt8192: Fix idle-states nodes naming scheme + - arm64: dts: mt8192: Fix idle-states entry-method + - arm64: select TRACE_IRQFLAGS_NMI_SUPPORT + - arm64: cpufeature: Allow different PMU versions in ID_DFR0_EL1 + - locking/lockdep: Fix lockdep_init_map_*() confusion + - arm64: dts: qcom: sc7180: Remove ipa_fw_mem node on trogdor + - soc: fsl: guts: machine variable might be unset + - spi: s3c64xx: constify fsd_spi_port_config + - block: fix infinite loop for invalid zone append + - arm64: dts: qcom: sdm845-akatsuki: Round down l22a regulator voltage + - ARM: dts: qcom: mdm9615: add missing PMIC GPIO reg + - ARM: OMAP2+: Fix refcount leak in omapdss_init_of + - ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init + - arm64: dts: qcom: sdm630: disable GPU by default + - arm64: dts: qcom: sdm630: fix the qusb2phy ref clock + - arm64: dts: qcom: sdm630: fix gpu's interconnect path + - arm64: dts: qcom: sdm636-sony-xperia-ganges-mermaid: correct sdc2 pinconf + - cpufreq: zynq: Fix refcount leak in zynq_get_revision + - arm64: dts: renesas: r8a779m8: Drop operating points above 1.5 GHz + - arm64: dts: renesas: r9a07g054l2-smarc: Correct SoC name in comment + - regulator: qcom_smd: Fix pm8916_pldo range + - ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP + - ARM: dts: qcom: replace gcc PXO with pxo_board fixed clock + - ARM: dts: qcom-msm8974: fix irq type on blsp2_uart1 + - soc: qcom: ocmem: Fix refcount leak in of_get_ocmem + - soc: qcom: aoss: Fix refcount leak in qmp_cooling_devices_register + - ARM: dts: qcom: msm8974: add required ranges to OCMEM + - ARM: dts: qcom: pm8841: add required thermal-sensor-cells + - bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe() + - lib: overflow: Do not define 64-bit tests on 32-bit + - stack: Declare {randomize_,}kstack_offset to fix Sparse warnings + - arm64: dts: qcom: msm8916: Fix typo in pronto remoteproc node + - arm64: dts: qcom: msm8994: add required ranges to OCMEM + - perf/x86/intel: Fix PEBS memory access info encoding for ADL + - perf/x86/intel: Fix PEBS data source encoding for ADL + - arm64: dts: exynosautov9: correct spi11 pin names + - ACPI: VIOT: Fix ACS setup + - m68k: virt: Fix missing platform_device_unregister() on error in + virt_platform_init() + - arm64: dts: qcom: sm6125: Move sdc2 pinctrl from seine-pdx201 to sm6125 + - arm64: dts: qcom: sm6125: Append -state suffix to pinctrl nodes + - arm64: dts: qcom: msm8996: correct #clock-cells for QMP PHY nodes + - arm64: dts: qcom: sc7280: drop PCIe PHY clock index + - arm64: dts: qcom: sm8250: add missing PCIe PHY clock-cells + - arm64: dts: mt7622: fix BPI-R64 WPS button + - arm64: tegra: Mark BPMP channels as no-memory-wc + - arm64: tegra: Fix SDMMC1 CD on P2888 + - arm64: dts: qcom: sc7280: fix PCIe clock reference + - erofs: wake up all waiters after z_erofs_lzma_head ready + - erofs: avoid consecutive detection for Highmem memory + - spi: Return deferred probe error when controller isn't yet available + - blk-mq: don't create hctx debugfs dir until q->debugfs_dir is created + - spi: dw: Fix IP-core versions macro + - spi: Fix simplification of devm_spi_register_controller + - spi: tegra20-slink: fix UAF in tegra_slink_remove() + - hwmon: (sch56xx-common) Add DMI override table + - hwmon: (drivetemp) Add module alias + - blktrace: Trace remapped requests correctly + - PM: domains: Ensure genpd_debugfs_dir exists before remove + - dm writecache: return void from functions + - dm writecache: count number of blocks read, not number of read bios + - dm writecache: count number of blocks written, not number of write bios + - dm writecache: count number of blocks discarded, not number of discard bios + - regulator: of: Fix refcount leak bug in of_get_regulation_constraints() + - soc: qcom: Make QCOM_RPMPD depend on PM + - soc: qcom: socinfo: Fix the id of SA8540P SoC + - arm64: dts: qcom: msm8998: Make regulator voltages multiple of step-size + - arm64: dts: qcom: qcs404: Fix incorrect USB2 PHYs assignment + - ARM: dts: qcom: msm8974: Disable remoteprocs by default + - irqdomain: Report irq number for NOMAP domains + - perf: RISC-V: Add of_node_put() when breaking out of for_each_of_cpu_node() + - drivers/perf: arm_spe: Fix consistency of SYS_PMSCR_EL1.CX + - nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt() + - sched: only perform capability check on privileged operation + - sched/numa: Initialise numa_migrate_retry + - x86/extable: Fix ex_handler_msr() print condition + - io_uring: move to separate directory + - io_uring: define a 'prep' and 'issue' handler for each opcode + - io_uring: Don't require reinitable percpu_ref + - selftests/seccomp: Fix compile warning when CC=clang + - thermal/tools/tmon: Include pthread and time headers in tmon.h + - tools/power turbostat: Fix file pointer leak + - dm: return early from dm_pr_call() if DM device is suspended + - pwm: sifive: Simplify offset calculation for PWMCMP registers + - pwm: sifive: Ensure the clk is enabled exactly once per running PWM + - pwm: sifive: Shut down hardware only after pwmchip_remove() completed + - pwm: lpc18xx: Fix period handling + - erofs: update ctx->pos for every emitted dirent + - dt-bindings: display: bridge: ldb: Fill in reg property + - drm/i915: remove unused GEM_DEBUG_DECL() and GEM_DEBUG_BUG_ON() + - drm/rockchip: vop2: unlock on error path in vop2_crtc_atomic_enable() + - [Config] updateconfigs for DRM_FSL_LDB + - drm: bridge: DRM_FSL_LDB should depend on ARCH_MXC + - drm/bridge: anx7625: Use DPI bus type + - drm/mgag200: Acquire I/O lock while reading EDID + - drm/meson: Fix refcount leak in meson_encoder_hdmi_init + - drm/dp: Export symbol / kerneldoc fixes for DP AUX bus + - drm/bridge: tc358767: Handle dsi_lanes == 0 as invalid + - drm/bridge: tc358767: Make sure Refclk clock are enabled + - ath10k: do not enforce interrupt trigger type + - ath11k: Fix warning on variable 'sar' dereference before check + - ath11k: Init hw_params before setting up AHB resources + - drm/edid: reset display info in drm_add_edid_modes() for NULL edid + - drm/bridge: lt9611: Use both bits for HDMI sensing + - drm/st7735r: Fix module autoloading for Okaya RH128128T + - drm/panel: Fix build error when CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20=y && + CONFIG_DRM_DISPLAY_HELPER=m + - drm: bridge: adv7511: Move CEC definitions to adv7511_cec.c + - wifi: rtlwifi: fix error codes in rtl_debugfs_set_write_h2c() + - wifi: wilc1000: use correct sequence of RESET for chip Power-UP/Down + - ath11k: fix netdev open race + - ath11k: fix IRQ affinity warning on shutdown + - drm/mipi-dbi: align max_chunk to 2 in spi_transfer + - drm/ssd130x: Only define a SPI device ID table when built as a module + - selftests/bpf: Fix test_run logic in fexit_stress.c + - sample: bpf: xdp_router_ipv4: Allow the kernel to send arp requests + - selftests/bpf: Fix tc_redirect_dtime + - libbpf: Fix is_pow_of_2 + - ath11k: fix missing skb drop on htc_tx_completion error + - ath11k: Fix incorrect debug_mask mappings + - ath11k: Avoid REO CMD failed prints during firmware recovery + - drm/radeon: fix potential buffer overflow in ni_set_mc_special_registers() + - drm/mediatek: Modify dsi funcs to atomic operations + - drm/mediatek: Separate poweron/poweroff from enable/disable and define new + funcs + - drm/mediatek: Add pull-down MIPI operation in mtk_dsi_poweroff function + - drm/meson: encoder_cvbs: Fix refcount leak in meson_encoder_cvbs_init + - drm/meson: encoder_hdmi: Fix refcount leak in meson_encoder_hdmi_init + - drm/bridge: lt9611uxc: Cancel only driver's work + - drm/amdgpu: fix scratch register access method in SRIOV + - drm/amdgpu/display: Prepare for new interfaces + - i2c: npcm: Remove own slave addresses 2:10 + - i2c: npcm: Correct slave role behavior + - i2c: mxs: Silence a clang warning + - virtio-gpu: fix a missing check to avoid NULL dereference + - drm/virtio: Fix NULL vs IS_ERR checking in virtio_gpu_object_shmem_init + - libbpf: Fix uprobe symbol file offset calculation logic + - drm: adv7511: override i2c address of cec before accessing it + - crypto: sun8i-ss - fix error codes in allocate_flows() + - crypto: sun8i-ss - Fix error codes for dma_mapping_error() + - crypto: sun8i-ss - fix a NULL vs IS_ERR() check in sun8i_ss_hashkey + - net: fix sk_wmem_schedule() and sk_rmem_schedule() errors + - can: netlink: allow configuring of fixed bit rates without need for + do_set_bittiming callback + - drm/vkms: check plane_composer->map[0] before using it + - can: netlink: allow configuring of fixed data bit rates without need for + do_set_data_bittiming callback + - drm/bridge: anx7625: Zero error variable when panel bridge not present + - drm/bridge: it6505: Add missing CRYPTO_HASH dependency + - i2c: Fix a potential use after free + - libbpf: Fix internal USDT address translation logic for shared libraries + - selftests/bpf: Don't force lld on non-x86 architectures + - tcp: fix possible freeze in tx path under memory pressure + - crypto: sun8i-ss - fix infinite loop in sun8i_ss_setup_ivs() + - net: ag71xx: fix discards 'const' qualifier warning + - ping: convert to RCU lookups, get rid of rwlock + - raw: use more conventional iterators + - raw: convert raw sockets to RCU + - raw: Fix mixed declarations error in raw_icmp_error(). + - media: atmel: atmel-sama7g5-isc: fix warning in configs without OF + - media: camss: csid: fix wrong size passed to devm_kmalloc_array() + - media: tw686x: Register the irq at the end of probe + - media: amphion: return error if format is unsupported by vpu + - media: Hantro: Correct G2 init qp field + - media: imx-jpeg: Correct some definition according specification + - media: imx-jpeg: Leave a blank space before the configuration data + - media: imx-jpeg: Align upwards buffer size + - media: imx-jpeg: Implement drain using v4l2-mem2mem helpers + - media: rcar-vin: Fix channel routing for Ebisu + - ath9k: fix use-after-free in ath9k_hif_usb_rx_cb + - wifi: mac80211: set STA deflink addresses + - wifi: iwlegacy: 4965: fix potential off-by-one overflow in + il4965_rs_fill_link_cmd() + - wifi: rtw89: 8852a: rfk: fix div 0 exception + - drm/radeon: fix incorrrect SPDX-License-Identifiers + - drm/amd: Don't show warning on reading vbios values for SMU13 3.1 + - drm/amdkfd: correct sdma queue number of sdma 6.0.1 + - torture: Adjust to again produce debugging information + - rcutorture: Fix ksoftirqd boosting timing and iteration + - test_bpf: fix incorrect netdev features + - drm/display: Fix build error without CONFIG_OF + - selftests/bpf: Fix rare segfault in sock_fields prog test + - crypto: ccp - During shutdown, check SEV data pointer before using + - drm: bridge: adv7511: Add check for mipi_dsi_driver_register + - media: imx-jpeg: Disable slot interrupt when frame done + - media: amphion: output firmware error message + - drm/mcde: Fix refcount leak in mcde_dsi_bind + - media: hdpvr: fix error value returns in hdpvr_read + - media: v4l2-mem2mem: prevent pollerr when last_buffer_dequeued is set + - media: sta2x11: remove VIRT_TO_BUS dependency + - media: mediatek: vcodec: Initialize decoder parameters after getting + dec_capability + - media: mediatek: vcodec: Skip SOURCE_CHANGE & EOS events for stateless + - media: driver/nxp/imx-jpeg: fix a unexpected return value problem + - media: tw686x: Fix memory leak in tw686x_video_init + - media: mediatek: vcodec: Fix non subdev architecture open power fail + - drm/vc4: kms: Use maximum FIFO load for the HVS clock rate + - drm/vc4: plane: Remove subpixel positioning check + - drm/vc4: plane: Fix margin calculations for the right/bottom edges + - drm/vc4: dsi: Release workaround buffer and DMA + - drm/vc4: dsi: Correct DSI divider calculations + - drm/vc4: dsi: Correct pixel order for DSI0 + - drm/vc4: dsi: Register dsi0 as the correct vc4 encoder type + - drm/vc4: dsi: Fix dsi0 interrupt support + - drm/vc4: dsi: Add correct stop condition to vc4_dsi_encoder_disable + iteration + - drm/vc4: hdmi: Add all the vc5 HDMI registers into the debugfs dumps + - drm/vc4: hdmi: Clear unused infoframe packet RAM registers + - drm/vc4: hdmi: Avoid full hdmi audio fifo writes + - drm/vc4: hdmi: Reset HDMI MISC_CONTROL register + - drm/vc4: hdmi: Switch to pm_runtime_status_suspended + - drm/vc4: hdmi: Move HDMI reset to pm_resume + - drm/vc4: hdmi: Fix timings for interlaced modes + - drm/vc4: hdmi: Force modeset when bpc or format changes + - drm/vc4: hdmi: Correct HDMI timing registers for interlaced modes + - drm/vc4: hdmi: Move pixel doubling from Pixelvalve to HDMI block + - mm: Account dirty folios properly during splits + - crypto: arm64/gcm - Select AEAD for GHASH_ARM64_CE + - selftests/xsk: Destroy BPF resources only when ctx refcount drops to 0 + - net: dsa: felix: update base time of time-aware shaper when adjusting PTP + time + - net: dsa: felix: keep reference on entire tc-taprio config + - net: dsa: felix: drop oversized frames with tc-taprio instead of hanging the + port + - selftests: net: fib_rule_tests: fix support for running individual tests + - drm/rockchip: vop: Don't crash for invalid duplicate_state() + - drm/rockchip: Fix an error handling path rockchip_dp_probe() + - drm/mediatek: dpi: Remove output format of YUV + - drm/mediatek: dpi: Only enable dpi after the bridge is enabled + - drm/msm/dpu: move intf and wb assignment to dpu_encoder_setup_display() + - drm/msm/dpu: fix maxlinewidth for writeback block + - drm/msm/dpu: remove hard-coded linewidth limit for writeback + - drm/msm/hdmi: fill the pwr_regs bulk regulators + - drm: bridge: sii8620: fix possible off-by-one + - drm/msm: Fix fence rollover issue + - net: sched: provide shim definitions for taprio_offload_{get,free} + - net: dsa: felix: build as module when tc-taprio is module + - hinic: Use the bitmap API when applicable + - net: hinic: fix bug that ethtool get wrong stats + - net: hinic: avoid kernel hung in hinic_get_stats64() + - drm/bridge: anx7625: Fix NULL pointer crash when using edp-panel + - drm/msm: Avoid unclocked GMU register access in 6xx gpu_busy + - libbpf, riscv: Use a0 for RC register + - drm/msm/mdp5: Fix global state lock backoff + - drm/radeon: avoid bogus "vram limit (0) must be a power of 2" warning + - crypto: hisilicon/sec - don't sleep when in softirq + - crypto: hisilicon - Kunpeng916 crypto driver don't sleep when in softirq + - media: platform: mtk-mdp: Fix mdp_ipi_comm structure alignment + - media: amphion: release core lock before reset vpu core + - drm/msm/dpu: Fix for non-visible planes + - media: atomisp: revert "don't pass a pointer to a local variable" + - media: mediatek: vcodec: decoder: Fix 4K frame size enumeration + - media: mediatek: vcodec: decoder: Fix resolution clamping in TRY_FMT + - media: mediatek: vcodec: decoder: Skip alignment for default resolution + - media: mediatek: vcodec: decoder: Drop max_{width,height} from + mtk_vcodec_ctx + - media: mediatek: vcodec: Initialize decoder parameters for each instance + - media: amphion: defer setting last_buffer_dequeued until resolution changes + are processed + - media: hantro: Be more accurate on pixel formats step_width constraints + - media: hantro: Fix RK3399 H.264 format advertising + - media: amphion: sync buffer status with firmware during abort + - media: amphion: only insert the first sequence startcode for vc1l format + - mt76: mt7915: fix endianness in mt7915_rf_regval_get + - mt76: mt76x02u: fix possible memory leak in __mt76x02u_mcu_send_msg + - mt76: mt7915: fix endian bug in mt7915_rf_regval_set() + - mt76: mt7921s: fix firmware download random fail + - mt76: mt7921: not support beacon offload disable command + - wifi: mac80211: reject WEP or pairwise keys with key ID > 3 + - wifi: cfg80211: do some rework towards MLO link APIs + - wifi: mac80211: move some future per-link data to bss_conf + - mt76: mt7615: do not update pm stats in case of error + - mt76: mt7921: do not update pm states in case of error + - mt76: mt7921s: fix possible sdio deadlock in command fail + - mt76: mt7921: fix aggregation subframes setting to HE max + - mt76: mt7921: enlarge maximum VHT MPDU length to 11454 + - mt76: mt7921: rely on mt76_dev in mt7921_mac_write_txwi signature + - mt76: mt7915: rely on mt76_dev in mt7915_mac_write_txwi signature + - mt76: connac: move mac connac2 defs in mt76_connac2_mac.h + - mt76: connac: move connac2_mac_write_txwi in mt76_connac module + - mt76: mt7915: fix incorrect testmode ipg on band 1 caused by wmm_idx + - mt76: mt7615: fix throughput regression on DFS channels + - mediatek: mt76: mac80211: Fix missing of_node_put() in mt76_led_init() + - mediatek: mt76: eeprom: fix missing of_node_put() in + mt76_find_power_limits_node() + - skmsg: Fix invalid last sg check in sk_msg_recvmsg() + - drm/exynos/exynos7_drm_decon: free resources when clk_set_parent() failed. + - bpf, x64: Add predicate for bpf2bpf with tailcalls support in JIT + - bpf, x86: fix freeing of not-finalized bpf_prog_pack + - tcp: make retransmitted SKB fit into the send window + - libbpf: Fix the name of a reused map + - kunit: executor: Fix a memory leak on failure in kunit_filter_tests + - selftests: timers: valid-adjtimex: build fix for newer toolchains + - selftests: timers: clocksource-switch: fix passing errors from child + - bpf: Fix subprog names in stack traces. + - wifi: nl80211: acquire wdev mutex for dump_survey + - media: v4l: async: Also match secondary fwnode endpoints + - media: ov7251: add missing disable functions on error in + ov7251_set_power_on() + - fs: check FMODE_LSEEK to control internal pipe splicing + - media: cedrus: h265: Fix flag name + - media: uapi: HEVC: Change pic_order_cnt definition in v4l2_hevc_dpb_entry + - media: cedrus: h265: Fix logic for not low delay flag + - wifi: wil6210: debugfs: fix info leak in wil_write_file_wmi() + - wifi: p54: Fix an error handling path in p54spi_probe() + - wifi: p54: add missing parentheses in p54_flush() + - drm/amdgpu: use the same HDP flush registers for all nbio 7.4.x + - drm/amdgpu: use the same HDP flush registers for all nbio 2.3.x + - drm/amdgpu: restore original stable pstate on ctx fini + - bpf: fix potential 32-bit overflow when accessing ARRAY map element + - libbpf: make RINGBUF map size adjustments more eagerly + - selftests/bpf: fix a test for snprintf() overflow + - libbpf: fix an snprintf() overflow check + - can: pch_can: do not report txerr and rxerr during bus-off + - can: rcar_can: do not report txerr and rxerr during bus-off + - can: sja1000: do not report txerr and rxerr during bus-off + - can: hi311x: do not report txerr and rxerr during bus-off + - can: sun4i_can: do not report txerr and rxerr during bus-off + - can: kvaser_usb_hydra: do not report txerr and rxerr during bus-off + - can: kvaser_usb_leaf: do not report txerr and rxerr during bus-off + - can: usb_8dev: do not report txerr and rxerr during bus-off + - can: error: specify the values of data[5..7] of CAN error frames + - libbpf: Fix str_has_sfx()'s return value + - can: pch_can: pch_can_error(): initialize errc before using it + - Bluetooth: hci_intel: Add check for platform_driver_register + - Bluetooth: When HCI work queue is drained, only queue chained work + - Bluetooth: mgmt: Fix refresh cached connection info + - Bluetooth: hci_sync: Fix resuming scan after suspend resume + - Bluetooth: hci_sync: Fix not updating privacy_mode + - Bluetooth: Add default wakeup callback for HCI UART driver + - i2c: cadence: Support PEC for SMBus block read + - i2c: qcom-geni: Use the correct return value + - btrfs: update stripe_sectors::uptodate in steal_rbio + - ip_tunnels: Add new flow flags field to ip_tunnel_key + - bpf: Set flow flag to allow any source IP in bpf_tunnel_key + - bpf: Fix bpf_xdp_pointer return pointer + - i2c: mux-gpmux: Add of_node_put() when breaking out of loop + - wifi: ath11k: Fix register write failure on QCN9074 + - wifi: wil6210: debugfs: fix uninitialized variable use in + `wil_write_file_wmi()` + - wifi: iwlwifi: mvm: fix double list_add at iwl_mvm_mac_wake_tx_queue + - wifi: libertas: Fix possible refcount leak in if_usb_probe() + - media: cedrus: hevc: Add check for invalid timestamp + - hantro: Remove incorrect HEVC SPS validation + - drm/amd/display: fix signedness bug in execute_synaptics_rc_command() + - net/mlx5e: Remove WARN_ON when trying to offload an unsupported TLS + cipher/version + - net/mlx5e: TC, Fix post_act to not match on in_port metadata + - net/mlx5e: Fix the value of MLX5E_MAX_RQ_NUM_MTTS + - net/mlx5e: xsk: Account for XSK RQ UMRs when calculating ICOSQ size + - net/mlx5e: Fix calculations related to max MPWQE size + - net/mlx5e: Modify slow path rules to go to slow fdb + - net/mlx5: Adjust log_max_qp to be 18 at most + - net/mlx5: DR, Fix SMFS steering info dump format + - net/mlx5: Fix driver use of uninitialized timeout + - ax25: fix incorrect dev_tracker usage + - crypto: hisilicon/hpre - don't use GFP_KERNEL to alloc mem during softirq + - crypto: inside-secure - Add missing MODULE_DEVICE_TABLE for of + - crypto: hisilicon/sec - fix auth key size error + - net: allow unbound socket for packets in VRF when tcp_l3mdev_accept set + - netdevsim: fib: Fix reference count leak on route deletion failure + - wifi: rtw88: check the return value of alloc_workqueue() + - iavf: Fix max_rate limiting + - iavf: Fix 'tc qdisc show' listing too many queues + - netdevsim: Avoid allocation warnings triggered from user space + - net: rose: fix netdev reference changes + - net: ice: fix error NETIF_F_HW_VLAN_CTAG_FILTER check in ice_vsi_sync_fltr() + - net: ionic: fix error check for vlan flags in ionic_set_nic_features() + - dccp: put dccp_qpolicy_full() and dccp_qpolicy_push() in the same lock + - net: usb: make USB_RTL8153_ECM non user configurable + - net/mlx5e: xsk: Discard unaligned XSK frames on striding RQ + - wireguard: ratelimiter: use hrtimer in selftest + - wireguard: allowedips: don't corrupt stack when detecting overflow + - HID: amd_sfh: Don't show client init failed as error when discovery fails + - clk: renesas: r9a06g032: Fix UART clkgrp bitsel + - mtd: maps: Fix refcount leak in of_flash_probe_versatile + - mtd: maps: Fix refcount leak in ap_flash_init + - mtd: rawnand: meson: Fix a potential double free issue + - clk: renesas: rzg2l: Fix reset status function + - of: check previous kernel's ima-kexec-buffer against memory bounds + - scsi: qla2xxx: edif: Reduce Initiator-Initiator thrashing + - scsi: qla2xxx: edif: bsg refactor + - scsi: qla2xxx: edif: Wait for app to ack on sess down + - scsi: qla2xxx: edif: Add bsg interface to read doorbell events + - scsi: qla2xxx: edif: Fix potential stuck session in sa update + - scsi: qla2xxx: edif: Synchronize NPIV deletion with authentication + application + - scsi: qla2xxx: edif: Add retry for ELS passthrough + - scsi: qla2xxx: edif: Fix n2n discovery issue with secure target + - scsi: qla2xxx: edif: Fix n2n login retry for secure device + - KVM: SVM: Unwind "speculative" RIP advancement if INTn injection "fails" + - KVM: SVM: Stuff next_rip on emulated INT3 injection if NRIPS is supported + - KVM: x86/mmu: Drop RWX=0 SPTEs during ept_sync_page() + - phy: samsung: exynosautov9-ufs: correct TSRV register configurations + - PCI: microchip: Fix refcount leak in mc_pcie_init_irq_domains() + - PCI: tegra194: Fix PM error handling in tegra_pcie_config_ep() + - HID: cp2112: prevent a buffer overflow in cp2112_xfer() + - mtd: sm_ftl: Fix deadlock caused by cancel_work_sync in sm_release + - mtd: partitions: Fix refcount leak in parse_redboot_of + - mtd: parsers: ofpart: Fix refcount leak in bcm4908_partitions_fw_offset + - mtd: spear_smi: Don't skip cleanup after mtd_device_unregister() failed + - mtd: st_spi_fsm: Add a clk_disable_unprepare() in .probe()'s error path + - mtd: spear_smi: Drop if with an always false condition + - mtd: st_spi_fsm: Warn about failure to unregister mtd device + - mtd: st_spi_fsm: Disable clock only after device was unregistered + - PCI: mediatek-gen3: Fix refcount leak in mtk_pcie_init_irq_domains() + - fpga: altera-pr-ip: fix unsigned comparison with less than zero + - usb: host: Fix refcount leak in ehci_hcd_ppc_of_probe + - usb: cdns3: fix random warning message when driver load + - usb: gadget: uvc: Fix comment blocks style + - usb: ohci-nxp: Fix refcount leak in ohci_hcd_nxp_probe + - usb: gadget: tegra-xudc: Fix error check in tegra_xudc_powerdomain_init() + - usbip: vudc: Don't enable IRQs prematurely + - usb: host: ohci-at91: add support to enter suspend using SMC + - usb: xhci: tegra: Fix error check + - dmaengine: dw: dmamux: Export the module device table + - dmaengine: dw: dmamux: Fix build without CONFIG_OF + - netfilter: xtables: Bring SPDX identifier back + - scsi: qla2xxx: edif: Send LOGO for unexpected IKE message + - scsi: qla2xxx: edif: Reduce disruption due to multiple app start + - scsi: qla2xxx: edif: Fix no login after app start + - scsi: qla2xxx: edif: Tear down session if keys have been removed + - scsi: qla2xxx: edif: Fix session thrash + - scsi: qla2xxx: edif: Fix no logout on delete for N2N + - scsi: qla2xxx: edif: Reduce N2N thrashing at app_start time + - iio: accel: bma400: Fix the scale min and max macro values + - platform/chrome: cros_ec: Always expose last resume result + - iio: sx9324: Fix register field spelling + - iio: accel: bma400: Reordering of header files + - iio: accel: bma400: conversion to device-managed function + - iio: accel: bma400: Add triggered buffer support + - iio: core: Fix IIO_ALIGN and rename as it was not sufficiently large + - iio: accel: adxl313: Fix alignment for DMA safety + - iio: accel: adxl355: Fix alignment for DMA safety + - iio: accel: adxl367: Fix alignment for DMA safety + - iio: accel: bma220: Fix alignment for DMA safety + - iio: accel: sca3000: Fix alignment for DMA safety + - iio: accel: sca3300: Fix alignment for DMA safety + - iio: adc: ad7266: Fix alignment for DMA safety + - iio: adc: ad7280a: Fix alignment for DMA safety + - iio: adc: ad7292: Fix alignment for DMA safety + - iio: adc: ad7298: Fix alignment for DMA safety + - iio: adc: ad7476: Fix alignment for DMA safety + - iio: adc: ad7606: Fix alignment for DMA safety + - iio: adc: ad7766: Fix alignment for DMA safety + - iio: adc: ad7768-1: Fix alignment for DMA safety + - iio: adc: ad7887: Fix alignment for DMA safety + - iio: adc: ad7923: Fix alignment for DMA safety + - iio: adc: ad7949: Fix alignment for DMA safety + - iio: adc: hi8435: Fix alignment for DMA safety + - iio: adc: ltc2496: Fix alignment for DMA safety + - iio: adc: ltc2497: Fix alignment for DMA safety + - iio: adc: max1027: Fix alignment for DMA safety + - iio: adc: max11100: Fix alignment for DMA safety + - iio: adc: max1118: Fix alignment for DMA safety + - iio: adc: max1241: Fix alignment for DMA safety + - iio: adc: mcp320x: Fix alignment for DMA safety + - iio: adc: ti-adc0832: Fix alignment for DMA safety + - iio: adc: ti-adc084s021: Fix alignment for DMA safety + - iio: adc: ti-adc108s102: Fix alignment for DMA safety + - iio: adc: ti-adc12138: Fix alignment for DMA safety + - iio: adc: ti-adc128s052: Fix alignment for DMA safety + - iio: adc: ti-adc161s626: Fix alignment for DMA safety + - iio: adc: ti-ads124s08: Fix alignment for DMA safety + - iio: adc: ti-ads131e08: Fix alignment for DMA safety + - iio: adc: ti-ads7950: Fix alignment for DMA safety + - iio: adc: ti-ads8344: Fix alignment for DMA safety + - iio: adc: ti-ads8688: Fix alignment for DMA safety + - iio: adc: ti-tlc4541: Fix alignment for DMA safety + - iio: addac: ad74413r: Fix alignment for DMA safety + - iio: amplifiers: ad8366: Fix alignment for DMA safety + - iio: common: ssp: Fix alignment for DMA safety + - iio: dac: ad5064: Fix alignment for DMA safety + - iio: dac: ad5360: Fix alignment for DMA safety + - iio: dac: ad5421: Fix alignment for DMA safety + - iio: dac: ad5449: Fix alignment for DMA safety + - iio: dac: ad5504: Fix alignment for DMA safety + - iio: dac: ad5592r: Fix alignment for DMA safety + - iio: dac: ad5686: Fix alignment for DMA safety + - iio: dac: ad5755: Fix alignment for DMA safety + - iio: dac: ad5761: Fix alignment for DMA safety + - iio: dac: ad5764: Fix alignment for DMA safety + - iio: dac: ad5766: Fix alignment for DMA safety + - iio: dac: ad5770r: Fix alignment for DMA safety + - iio: dac: ad5791: Fix alignment for DMA saftey + - iio: dac: ad7293: Fix alignment for DMA safety + - iio: dac: ad7303: Fix alignment for DMA safety + - iio: dac: ad8801: Fix alignment for DMA safety + - iio: dac: ltc2688: Fix alignment for DMA safety + - iio: dac: mcp4922: Fix alignment for DMA safety + - iio: dac: ti-dac082s085: Fix alignment for DMA safety + - iio: dac: ti-dac5571: Fix alignment for DMA safety + - iio: dac: ti-dac7311: Fix alignment for DMA safety + - iio: dac: ti-dac7612: Fix alignment for DMA safety + - iio: frequency: ad9523: Fix alignment for DMA safety + - iio: frequency: adf4350: Fix alignment for DMA safety + - iio: frequency: adf4371: Fix alignment for DMA safety + - iio: frequency: admv1013: Fix alignment for DMA safety + - iio: frequency: admv1014: Fix alignment for DMA safety + - iio: frequency: admv4420: Fix alignment for DMA safety + - iio: frequency: adrf6780: Fix alignment for DMA safety + - iio: gyro: adis16080: Fix alignment for DMA safety + - iio: gyro: adis16130: Fix alignment for DMA safety + - iio: gyro: adxrs450: Fix alignment for DMA safety + - iio: gyro: fxas210002c: Fix alignment for DMA safety + - iio: imu: fxos8700: Fix alignment for DMA safety + - iio: imu: inv_icm42600: Fix alignment for DMA safety + - iio: imu: inv_icm42600: Fix alignment for DMA safety in buffer code. + - iio: imu: mpu6050: Fix alignment for DMA safety + - iio: potentiometer: ad5110: Fix alignment for DMA safety + - iio: potentiometer: ad5272: Fix alignment for DMA safety + - iio: potentiometer: max5481: Fix alignment for DMA safety + - iio: potentiometer: mcp41010: Fix alignment for DMA safety + - iio: potentiometer: mcp4131: Fix alignment for DMA safety + - iio: proximity: as3935: Fix alignment for DMA safety + - iio: resolver: ad2s1200: Fix alignment for DMA safety + - iio: resolver: ad2s90: Fix alignment for DMA safety + - iio: temp: ltc2983: Fix alignment for DMA safety + - iio: temp: max31865: Fix alignment for DMA safety + - iio: temp: maxim_thermocouple: Fix alignment for DMA safety + - clk: mediatek: reset: Fix written reset bit offset + - clk: imx93: use adc_root as the parent clock of adc1 + - clk: imx93: correct nic_media parent + - clk: imx: clk-fracn-gppll: fix mfd value + - clk: imx: clk-fracn-gppll: Return rate in rate table properly in + ->recalc_rate() + - clk: imx: clk-fracn-gppll: correct rdiv + - RDMA/rxe: fix xa_alloc_cycle() error return value check again + - lib/test_hmm: avoid accessing uninitialized pages + - mm/memremap: fix memunmap_pages() race with get_dev_pagemap() + - KVM: Don't set Accessed/Dirty bits for ZERO_PAGE + - KVM: selftests: Convert s390x/diag318_test_handler away from VCPU_ID + - KVM: selftests: Use vm_create_with_vcpus() in max_guest_memory_test + - devcoredump: remove the useless gfp_t parameter in dev_coredumpv and + dev_coredumpm + - mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv + - scsi: iscsi: Allow iscsi_if_stop_conn() to be called from kernel + - scsi: iscsi: Add helper to remove a session from the kernel + - scsi: iscsi: Fix session removal on shutdown + - dmaengine: dw-edma: Fix eDMA Rd/Wr-channels and DMA-direction semantics + - KVM: x86: Fix errant brace in KVM capability handling + - mtd: hyperbus: rpc-if: Fix RPM imbalance in probe error path + - mtd: dataflash: Add SPI ID table + - clk: qcom: camcc-sm8250: Fix halt on boot by reducing driver's init level + - misc: rtsx: Fix an error handling path in rtsx_pci_probe() + - driver core: fix potential deadlock in __driver_attach + - clk: qcom: clk-krait: unlock spin after mux completion + - coresight: configfs: Fix unload of configurations on module exit + - coresight: syscfg: Update load and unload operations + - usb: gadget: f_mass_storage: Make CD-ROM emulation works with Windows OS + - clk: qcom: gcc-msm8939: Add missing SYSTEM_MM_NOC_BFDCD_CLK_SRC + - clk: qcom: gcc-msm8939: Fix bimc_ddr_clk_src rcgr base address + - clk: qcom: gcc-msm8939: Add missing system_mm_noc_bfdcd_clk_src + - clk: qcom: gcc-msm8939: Point MM peripherals to system_mm_noc clock + - usb: host: xhci: use snprintf() in xhci_decode_trb() + - RDMA/rxe: Add a responder state for atomic reply + - RDMA/rxe: Fix deadlock in rxe_do_local_ops() + - clk: qcom: ipq8074: fix NSS core PLL-s + - clk: qcom: ipq8074: SW workaround for UBI32 PLL lock + - clk: qcom: ipq8074: fix NSS port frequency tables + - clk: qcom: ipq8074: set BRANCH_HALT_DELAY flag for UBI clocks + - clk: qcom: camcc-sdm845: Fix topology around titan_top power domain + - clk: qcom: camcc-sm8250: Fix topology around titan_top power domain + - clk: qcom: clk-rcg2: Fail Duty-Cycle configuration if MND divider is not + enabled. + - clk: qcom: clk-rcg2: Make sure to not write d=0 to the NMD register + - kernfs: fix potential NULL dereference in __kernfs_remove + - mm: rmap: use the correct parameter name for DEFINE_PAGE_VMA_WALK + - mm/migration: return errno when isolate_huge_page failed + - mm/migration: fix potential pte_unmap on an not mapped pte + - mm: introduce clear_highpage_kasan_tagged + - kasan: fix zeroing vmalloc memory with HW_TAGS + - mm/mempolicy: fix get_nodes out of bound access + - phy: ti: tusb1210: Don't check for write errors when powering on + - phy: rockchip-inno-usb2: Sync initial otg state + - PCI: dwc: Stop link on host_init errors and de-initialization + - PCI: dwc: Add unroll iATU space support to dw_pcie_disable_atu() + - PCI: dwc: Disable outbound windows only for controllers using iATU + - PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address + - PCI: dwc: Deallocate EPC memory on dw_pcie_ep_init() errors + - PCI: dwc: Always enable CDM check if "snps,enable-cdm-check" exists + - soundwire: bus_type: fix remove and shutdown support + - soundwire: revisit driver bind/unbind and callbacks + - KVM: arm64: Don't return from void function + - dmaengine: sf-pdma: Add multithread support for a DMA channel + - PCI: endpoint: Don't stop controller when unbinding endpoint function + - phy: qcom-qmp: fix the QSERDES_V5_COM_CMN_MODE register + - scsi: qla2xxx: Check correct variable in qla24xx_async_gffid() + - scsi: lpfc: Revert RSCN_MEMENTO workaround for misbehaved configuration + - intel_th: Fix a resource leak in an error handling path + - intel_th: msu-sink: Potential dereference of null pointer + - intel_th: msu: Fix vmalloced buffers + - binder: fix redefinition of seq_file attributes + - staging: rtl8192u: Fix sleep in atomic context bug in + dm_fsync_timer_callback + - rtla/utils: Use calloc and check the potential memory allocation failure + - habanalabs: fix double unlock on error in map_device_va() + - dt-bindings: mmc: sdhci-msm: Fix issues in yaml bindings + - mmc: sdhci-of-esdhc: Fix refcount leak in esdhc_signal_voltage_switch + - mmc: mxcmmc: Silence a clang warning + - mmc: renesas_sdhi: Get the reset handle early in the probe + - memstick/ms_block: Fix some incorrect memory allocation + - memstick/ms_block: Fix a memory leak + - mmc: sdhci-of-at91: fix set_uhs_signaling rewriting of MC1R + - of: device: Fix missing of_node_put() in of_dma_set_restricted_buffer + - mmc: block: Add single read for 4k sector cards + - KVM: s390: pv: leak the topmost page table when destroy fails + - PCI/portdrv: Don't disable AER reporting in get_port_device_capability() + - PCI: qcom: Set up rev 2.1.0 PARF_PHY before enabling clocks + - scsi: smartpqi: Fix DMA direction for RAID requests + - xtensa: iss/network: provide release() callback + - xtensa: iss: fix handling error cases in iss_net_configure() + - usb: gadget: udc: amd5536 depends on HAS_DMA + - usb: aspeed-vhub: Fix refcount leak bug in ast_vhub_init_desc() + - usb: dwc3: core: Deprecate GCTL.CORESOFTRESET + - usb: dwc3: core: Do not perform GCTL_CORE_SOFTRESET during bootup + - usb: dwc3: qcom: fix missing optional irq warnings + - eeprom: idt_89hpesx: uninitialized data in idt_dbgfs_csr_write() + - phy: stm32: fix error return in stm32_usbphyc_phy_init + - phy: rockchip-inno-usb2: Ignore OTG IRQs in host mode + - interconnect: imx: fix max_node_id + - KVM: arm64: Fix hypervisor address symbolization + - um: random: Don't initialise hwrng struct with zero + - mm: percpu: use kmemleak_ignore_phys() instead of kmemleak_free() + - RDMA/irdma: Fix a window for use-after-free + - RDMA/irdma: Fix VLAN connection with wildcard address + - RDMA/irdma: Fix setting of QP context err_rq_idx_valid field + - RDMA/rtrs-srv: Fix modinfo output for stringify + - RDMA/rtrs-clt: Replace list_next_or_null_rr_rcu with an inline function + - RDMA/qedr: Fix potential memory leak in __qedr_alloc_mr() + - RDMA/hns: Fix incorrect clearing of interrupt status register + - RDMA/siw: Fix duplicated reported IW_CM_EVENT_CONNECT_REPLY event + - RDMA/rxe: Fix BUG: KASAN: null-ptr-deref in rxe_qp_do_cleanup + - iio: cros: Register FIFO callback after sensor is registered + - clk: qcom: Drop mmcx gdsc supply for dispcc and videocc + - clk: qcom: gdsc: Bump parent usage count when GDSC is found enabled + - clk: qcom: gcc-msm8939: Fix weird field spacing in ftbl_gcc_camss_cci_clk + - RDMA/hfi1: fix potential memory leak in setup_base_ctxt() + - gpio: gpiolib-of: Fix refcount bugs in of_mm_gpiochip_add_data() + - iio: adc: max1027: unlock on error path in max1027_read_single_value() + - HID: mcp2221: prevent a buffer overflow in mcp_smbus_write() + - HID: amd_sfh: Add NULL check for hid device + - dmaengine: imx-dma: Cast of_device_get_match_data() with (uintptr_t) + - scripts/gdb: fix 'lx-dmesg' on 32 bits arch + - RDMA/rxe: Fix mw bind to allow any consumer key portion + - mmc: core: quirks: Add of_node_put() when breaking out of loop + - mmc: cavium-octeon: Add of_node_put() when breaking out of loop + - mmc: cavium-thunderx: Add of_node_put() when breaking out of loop + - HID: alps: Declare U1_UNICORN_LEGACY support + - RDMA/rxe: For invalidate compare according to set keys in mr + - RDMA/rxe: Fix rnr retry behavior + - PCI: tegra194: Fix Root Port interrupt handling + - PCI: tegra194: Fix link up retry sequence + - HID: amd_sfh: Handle condition of "no sensors" + - USB: serial: fix tty-port initialized comments + - usb: xhci_plat_remove: avoid NULL dereference + - usb: cdns3: change place of 'priv_ep' assignment in + cdns3_gadget_ep_dequeue(), cdns3_gadget_ep_enable() + - mtd: spi-nor: fix spi_nor_spimem_setup_op() call in + spi_nor_erase_{sector,chip}() + - staging: fbtft: core: set smem_len before fb_deferred_io_init call + - KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP + - tools/power/x86/intel-speed-select: Fix off by one check + - platform/x86: pmc_atom: Match all Lex BayTrail boards with critclk_systems + DMI table + - platform/mellanox: mlxreg-lc: Fix error flow and extend verbosity + - platform/olpc: Fix uninitialized data in debugfs write + - RDMA/srpt: Duplicate port name members + - RDMA/srpt: Introduce a reference count in struct srpt_device + - RDMA/srpt: Fix a use-after-free + - android: binder: stop saving a pointer to the VMA + - mm/mmap.c: fix missing call to vm_unacct_memory in mmap_region + - selftests/vm: fix errno handling in mrelease_test + - tools/testing/selftests/vm/hugetlb-madvise.c: silence uninitialized variable + warning + - selftest/vm: uninitialized variable in main() + - rtla: Fix Makefile when called from -C tools/ + - rtla: Fix double free + - [Config] updateconfigs for VIRTIO_ANCHOR + - virtio: replace restricted mem access flag with callback + - [Config] updateconfigs for XEN_VIRTIO_FORCE_GRANT + - xen: don't require virtio with grants for non-PV guests + - selftests: kvm: set rax before vmcall + - of/fdt: declared return type does not match actual return type + - RDMA/mlx5: Add missing check for return value in get namespace flow + - RDMA/rxe: Fix error unwind in rxe_create_qp() + - block/rnbd-srv: Set keep_id to true after mutex_trylock + - null_blk: fix ida error handling in null_add_dev() + - nbd: add missing definition of pr_fmt + - mtip32xx: fix device removal + - nvme: use command_id instead of req->tag in trace_nvme_complete_rq() + - nvme: define compat_ioctl again to unbreak 32-bit userspace. + - nvme: catch -ENODEV from nvme_revalidate_zones again + - block/bio: remove duplicate append pages code + - block: ensure iov_iter advances for added pages + - jbd2: fix outstanding credits assert in jbd2_journal_commit_transaction() + - ext4: recover csum seed of tmp_inode after migrating to extents + - jbd2: fix assertion 'jh->b_frozen_data == NULL' failure when journal aborted + - usb: cdns3: Don't use priv_dev uninitialized in cdns3_gadget_ep_enable() + - opp: Fix error check in dev_pm_opp_attach_genpd() + - ASoC: cros_ec_codec: Fix refcount leak in cros_ec_codec_platform_probe + - ASoC: samsung: Fix error handling in aries_audio_probe + - ASoC: imx-audmux: Silence a clang warning + - ASoC: mediatek: mt8173: Fix refcount leak in mt8173_rt5650_rt5676_dev_probe + - ASoC: max98390: use linux/gpio/consumer.h to fix build + - ASoC: mt6797-mt6351: Fix refcount leak in mt6797_mt6351_dev_probe + - ASoC: codecs: da7210: add check for i2c_add_driver + - ASoC: mediatek: mt8173-rt5650: Fix refcount leak in mt8173_rt5650_dev_probe + - serial: pic32: fix missing clk_disable_unprepare() on error in + pic32_uart_startup() + - serial: 8250: Create serial_lsr_in() + - serial: 8250: Get preserved flags using serial_lsr_in() + - serial: 8250_dw: Use serial_lsr_in() in dw8250_handle_irq() + - serial: 8250_dw: Store LSR into lsr_saved_flags in dw8250_tx_wait_empty() + - ASoC: SOF: make ctx_store and ctx_restore as optional + - ASoC: codecs: msm8916-wcd-digital: move gains from SX_TLV to S8_TLV + - ASoC: codecs: wcd9335: move gains from SX_TLV to S8_TLV + - ASoC: cs35l45: Add endianness flag in snd_soc_component_driver + - rpmsg: char: Add mutex protection for rpmsg_eptdev_open() + - rpmsg: mtk_rpmsg: Fix circular locking dependency + - remoteproc: k3-r5: Fix refcount leak in k3_r5_cluster_of_init + - selftests/livepatch: better synchronize test_klp_callbacks_busy + - profiling: fix shift too large makes kernel panic + - remoteproc: imx_rproc: Fix refcount leak in imx_rproc_addr_init + - KVM: PPC: Book3s: Fix warning about xics_rm_h_xirr_x + - rpmsg: Fix possible refcount leak in rpmsg_register_device_override() + - selftests/powerpc: Skip energy_scale_info test on older firmware + - ASoC: samsung: h1940_uda1380: include proepr GPIO consumer header + - powerpc/perf: Optimize clearing the pending PMI and remove WARN_ON for PMI + check in power_pmu_disable + - ASoC: soc-core.c: fixup snd_soc_of_get_dai_link_cpus() + - ASoC: samsung: change gpiod_speaker_power and rx1950_audio from global to + static variables + - serial: 8250_dw: Take port lock while accessing LSR + - ASoC: codecs: wsa881x: handle timeouts in resume path + - vfio/mlx5: Protect mlx5vf_disable_fds() upon close device + - vfio: Split migration ops from main device ops + - net/ice: fix initializing the bitmap in the switch code + - tty: n_gsm: fix user open not possible at responder until initiator open + - tty: n_gsm: fix tty registration before control channel open + - tty: n_gsm: fix wrong queuing behavior in gsm_dlci_data_output() + - tty: n_gsm: fix missing timer to handle stalled links + - tty: n_gsm: fix non flow control frames during mux flow off + - tty: n_gsm: fix packet re-transmission without open control channel + - tty: n_gsm: fix race condition in gsmld_write() + - tty: n_gsm: fix deadlock and link starvation in outgoing data path + - tty: n_gsm: fix resource allocation order in gsm_activate_mux() + - ASoC: qcom: Fix missing of_node_put() in + asoc_qcom_lpass_cpu_platform_probe() + - MIPS: Loongson64: Fix section mismatch warning + - ASoC: imx-card: Fix DSD/PDM mclk frequency + - remoteproc: qcom: wcnss: Fix handling of IRQs + - vfio/ccw: Remove UUID from s390 debug log + - vfio/ccw: Fix FSM state if mdev probe fails + - vfio/ccw: Do not change FSM state in subchannel event + - ASoC: audio-graph-card2.c: use of_property_read_u32() for rate + - serial: 8250_fsl: Don't report FE, PE and OE twice + - tty: n_gsm: fix wrong T1 retry count handling + - tty: n_gsm: fix DM command + - tty: n_gsm: fix flow control handling in tx path + - tty: n_gsm: fix missing corner cases in gsmld_poll() + - MIPS: vdso: Utilize __pa() for gic_pfn + - ASoC: SOF: mediatek: fix mt8195 StatvectorSel wrong setting + - swiotlb: fail map correctly with failed io_tlb_default_mem + - lib/bitmap: fix off-by-one in bitmap_to_arr64() + - ASoC: SOF: ipc3-topology: Prevent double freeing of ipc_control_data via + load_bytes + - cpufreq: mediatek: fix error return code in mtk_cpu_dvfs_info_init() + - ASoc: audio-graph-card2: Fix refcount leak bug in __graph_get_type() + - ASoC: mt6359: Fix refcount leak bug + - ASoC: SOF: ipc-msg-injector: fix copy in sof_msg_inject_ipc4_dfs_write() + - serial: 8250_bcm7271: Save/restore RTS in suspend/resume + - iommu/exynos: Handle failed IOMMU device registration properly + - 9p: Drop kref usage + - 9p: Add client parameter to p9_req_put() + - net: 9p: fix refcount leak in p9_read_work() error handling + - MIPS: Fixed __debug_virt_addr_valid() + - rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge + - leds: pwm-multicolor: Don't show -EPROBE_DEFER as errors + - kfifo: fix kfifo_to_user() return type + - lib/smp_processor_id: fix imbalanced instrumentation_end() call + - proc: fix a dentry lock race between release_task and lookup + - remoteproc: qcom: pas: Check if coredump is enabled + - remoteproc: sysmon: Wait for SSCTL service to come up + - mfd: t7l66xb: Drop platform disable callback + - mfd: max77620: Fix refcount leak in max77620_initialise_fps + - ASoC: amd: yc: Decrease level of error message + - iommu/arm-smmu: qcom_iommu: Add of_node_put() when breaking out of loop + - perf tools: Fix dso_id inode generation comparison + - riscv: spinwait: Fix hartid variable type + - s390/crash: fix incorrect number of bytes to copy to user space + - s390/zcore: fix race when reading from hardware system area + - perf test: Fix test case 83 ('perf stat CSV output linter') on s390 + - ASoC: fsl_asrc: force cast the asrc_format type + - ASoC: fsl-asoc-card: force cast the asrc_format type + - ASoC: fsl_easrc: use snd_pcm_format_t type for sample_format + - ASoC: imx-card: use snd_pcm_format_t type for asrc_format + - ASoC: qcom: q6dsp: Fix an off-by-one in q6adm_alloc_copp() + - fuse: Remove the control interface for virtio-fs + - ASoC: audio-graph-card: Add of_node_put() in fail path + - ASoC: audio-graph-card2: Add of_node_put() in fail path + - watchdog: f71808e_wdt: Add check for platform_driver_register + - watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource + - watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in + armada_37xx_wdt_probe() + - ASoC: Intel: sof_rt5682: Perform quirk check first in card late probe + - video: fbdev: amba-clcd: Fix refcount leak bugs + - video: fbdev: sis: fix typos in SiS_GetModeID() + - ASoC: mchp-spdifrx: disable end of block interrupt on failures + - powerpc/32: Call mmu_mark_initmem_nx() regardless of data block mapping. + - powerpc/32s: Fix boot failure with KASAN + SMP + + JUMP_LABEL_FEATURE_CHECK_DEBUG + - powerpc/32: Do not allow selection of e5500 or e6500 CPUs on PPC32 + - video: fbdev: offb: Include missing linux/platform_device.h + - pseries/iommu/ddw: Fix kdump to work in absence of ibm,dma-window + - powerpc/iommu: Fix iommu_table_in_use for a small default DMA window case + - powerpc/pci: Prefer PCI domain assignment via DT 'linux,pci-domain' and + alias + - selftests/powerpc: Fix matrix multiply assist test + - serial: 8250_bcm2835aux: Add missing clk_disable_unprepare() + - tty: serial: qcom-geni-serial: Fix get_clk_div_rate() which otherwise could + return a sub-optimal clock rate. + - tty: serial: fsl_lpuart: correct the count of break characters + - s390/smp: enforce lowcore protection on CPU restart + - perf stat: Revert "perf stat: Add default hybrid events" + - f2fs: fix to invalidate META_MAPPING before DIO write + - f2fs: fix to check inline_data during compressed inode conversion + - f2fs: fix to remove F2FS_COMPR_FL and tag F2FS_NOCOMP_FL at the same time + - cifs: Fix memory leak when using fscache + - powerpc/spufs: Fix refcount leak in spufs_init_isolated_loader + - powerpc/xive: Fix refcount leak in xive_get_max_prio + - powerpc/cell/axon_msi: Fix refcount leak in setup_msi_msg_address + - perf symbol: Fail to read phdr workaround + - kprobes: Forbid probing on trampoline and BPF code areas + - x86/bus_lock: Don't assume the init value of DEBUGCTLMSR.BUS_LOCK_DETECT to + be zero + - powerpc/pci: Fix PHB numbering when using opal-phbid + - genelf: Use HAVE_LIBCRYPTO_SUPPORT, not the never defined HAVE_LIBCRYPTO + - scripts/faddr2line: Fix vmlinux detection on arm64 + - tty: serial: qcom-geni-serial: Fix %lu -> %u in print statements + - powerpc/64e: Fix kexec build error + - sched, cpuset: Fix dl_cpu_busy() panic due to empty cs->cpus_allowed + - x86/numa: Use cpumask_available instead of hardcoded NULL check + - video: fbdev: arkfb: Fix a divide-by-zero bug in ark_set_pixclock() + - tools/thermal: Fix possible path truncations + - sched: Fix the check of nr_running at queue wakelist + - sched: Remove the limitation of WF_ON_CPU on wakelist if wakee cpu is idle + - sched/core: Do not requeue task on CPU excluded from cpus_mask + - f2fs: do not allow to decompress files have FI_COMPRESS_RELEASED + - video: fbdev: vt8623fb: Check the size of screen before memset_io() + - video: fbdev: arkfb: Check the size of screen before memset_io() + - video: fbdev: s3fb: Check the size of screen before memset_io() + - scsi: ufs: core: Correct ufshcd_shutdown() flow + - scsi: zfcp: Fix missing auto port scan and thus missing target ports + - scsi: qla2xxx: Fix imbalance vha->vref_count + - scsi: qla2xxx: Fix discovery issues in FC-AL topology + - scsi: qla2xxx: Turn off multi-queue for 8G adapters + - scsi: qla2xxx: Fix crash due to stale SRB access around I/O timeouts + - scsi: qla2xxx: Fix excessive I/O error messages by default + - scsi: qla2xxx: Fix erroneous mailbox timeout after PCI error injection + - scsi: qla2xxx: Wind down adapter after PCIe error + - scsi: qla2xxx: Fix losing FCP-2 targets on long port disable with I/Os + - scsi: qla2xxx: Fix losing target when it reappears during delete + - scsi: qla2xxx: Fix losing FCP-2 targets during port perturbation tests + - cifs: fix lock length calculation + - x86/bugs: Enable STIBP for IBPB mitigated RETBleed + - ftrace/x86: Add back ftrace_expected assignment + - x86/kprobes: Update kcb status flag after singlestepping + - x86/olpc: fix 'logical not is only applied to the left hand side' + - SMB3: fix lease break timeout when multiple deferred close handles for the + same file. + - posix-cpu-timers: Cleanup CPU timers before freeing them during exec + - Input: gscps2 - check return value of ioremap() in gscps2_probe() + - __follow_mount_rcu(): verify that mount_lock remains unchanged + - spmi: trace: fix stack-out-of-bound access in SPMI tracing functions + - csky: abiv1: Fixup compile error + - drivers/base: fix userspace break from using bin_attributes for cpumap and + cpulist + - drm/mediatek: Keep dsi as LP00 before dcs cmds transfer + - [Config] updateconfigs for CRYPTO_LIB_BLAKE2S + - crypto: blake2s - remove shash module + - firmware: arm_scpi: Ensure scpi_info is not assigned if the probe fails + - intel_th: pci: Add Meteor Lake-P support + - intel_th: pci: Add Raptor Lake-S PCH support + - intel_th: pci: Add Raptor Lake-S CPU support + - KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors + - KVM: x86: Signal #GP, not -EPERM, on bad WRMSR(MCi_CTL/STATUS) + - iommu/vt-d: avoid invalid memory access via node_online(NUMA_NO_NODE) + - PCI/AER: Iterate over error counters instead of error strings + - PCI: qcom: Power on PHY before IPQ8074 DBI register accesses + - dm writecache: set a default MAX_WRITEBACK_JOBS + - kexec_file: drop weak attribute from functions + - kexec: clean up arch_kexec_kernel_verify_sig + - kexec, KEYS, s390: Make use of built-in and secondary keyring for signature + verification + - tracing/events: Add __vstring() and __assign_vstr() helper macros + - dm thin: fix use-after-free crash in dm_sm_register_threshold_callback + - net/9p: Initialize the iounit field during fid creation + - ARM: Marvell: Update PCIe fixup + - timekeeping: contribute wall clock to rng on time change + - locking/csd_lock: Change csdlock_debug from early_param to __setup + - block: don't allow the same type rq_qos add more than once + - btrfs: tree-log: make the return value for log syncing consistent + - btrfs: ensure pages are unlocked on cow_file_range() failure + - btrfs: fix error handling of fallback uncompress write + - btrfs: reset block group chunk force if we have to wait + - btrfs: properly flag filesystem with BTRFS_FEATURE_INCOMPAT_BIG_METADATA + - block: add bdev_max_segments() helper + - btrfs: zoned: revive max_zone_append_bytes + - btrfs: replace BTRFS_MAX_EXTENT_SIZE with fs_info->max_extent_size + - btrfs: convert count_max_extents() to use fs_info->max_extent_size + - btrfs: let can_allocate_chunk return error + - btrfs: zoned: finish least available block group on data bg allocation + - btrfs: zoned: disable metadata overcommit for zoned + - btrfs: store chunk size in space-info struct + - btrfs: zoned: introduce space_info->active_total_bytes + - btrfs: zoned: activate metadata block group on flush_space + - btrfs: zoned: activate necessary block group + - btrfs: zoned: write out partially allocated region + - btrfs: zoned: wait until zone is finished when allocation didn't progress + - btrfs: join running log transaction when logging new name + - intel_idle: make SPR C1 and C1E be independent + - ACPI: CPPC: Do not prevent CPPC from working in the future + - powerpc/powernv/kvm: Use darn for H_RANDOM on Power9 + - s390/unwind: fix fgraph return address recovery + - KVM: x86/pmu: Introduce the ctrl_mask value for fixed counter + - KVM: VMX: Mark all PERF_GLOBAL_(OVF)_CTRL bits reserved if there's no vPMU + - KVM: x86/pmu: Ignore pmu->global_ctrl check if vPMU doesn't support + global_ctrl + - KVM: x86/pmu: Accept 0 for absent PMU MSRs when host-initiated if + !enable_pmu + - Revert "KVM: x86/pmu: Accept 0 for absent PMU MSRs when host-initiated if + !enable_pmu" + - KVM: VMX: Add helper to check if the guest PMU has PERF_GLOBAL_CTRL + - KVM: nVMX: Attempt to load PERF_GLOBAL_CTRL on nVMX xfer iff it exists + - dm raid: fix address sanitizer warning in raid_status + - dm raid: fix address sanitizer warning in raid_resume + - dm: fix dm-raid crash if md_handle_request() splits bio + - mm/damon/reclaim: fix potential memory leak in damon_reclaim_init() + - hugetlb_cgroup: fix wrong hugetlb cgroup numa stat + - batman-adv: tracing: Use the new __vstring() helper + - tracing: Use a struct alignof to determine trace event field alignment + - ext4: fix reading leftover inlined symlinks + - ext4: update s_overhead_clusters in the superblock during an on-line resize + - ext4: fix extent status tree race in writeback error recovery path + - ext4: add EXT4_INODE_HAS_XATTR_SPACE macro in xattr.h + - ext4: fix use-after-free in ext4_xattr_set_entry + - ext4: correct max_inline_xattr_value_size computing + - ext4: correct the misjudgment in ext4_iget_extra_inode + - ext4: fix warning in ext4_iomap_begin as race between bmap and write + - Documentation: ext4: fix cell spacing of table heading on blockmap table + - ext4: check if directory block is within i_size + - ext4: make sure ext4_append() always allocates new block + - ext4: remove EA inode entry from mbcache on inode eviction + - ext4: unindent codeblock in ext4_xattr_block_set() + - ext4: fix race when reusing xattr blocks + - KEYS: asymmetric: enforce SM2 signature use pkey algo + - tpm: eventlog: Fix section mismatch for DEBUG_SECTION_MISMATCH + - tpm: Add check for Failure mode for TPM2 modules + - xen-blkback: fix persistent grants negotiation + - xen-blkback: Apply 'feature_persistent' parameter when connect + - xen-blkfront: Apply 'feature_persistent' parameter when connect + - powerpc: Fix eh field when calling lwarx on PPC32 + - powerpc64/ftrace: Fix ftrace for clang builds + - net_sched: cls_route: remove from list when handle is 0 + - Revert "drm/bridge: anx7625: Use DPI bus type" + - tcp: fix over estimation in sk_forced_mem_schedule() + - crypto: lib/blake2s - reduce stack frame usage in self test + - raw: remove unused variables from raw6_icmp_error() + - raw: fix a typo in raw_icmp_error() + - Revert "mwifiex: fix sleep in atomic context bugs caused by dev_coredumpv" + - Revert "devcoredump: remove the useless gfp_t parameter in dev_coredumpv and + dev_coredumpm" + - mptcp: refine memory scheduling + - wifi: cfg80211: handle IBSS in channel switch + - wifi: nl80211: hold wdev mutex for tid config + - wifi: nl80211: relax wdev mutex check in wdev_chandef() + - wifi: nl80211: acquire wdev mutex earlier in start_ap + - wifi: cfg80211: remove chandef check in cfg80211_cac_event() + - tracing: Use a copy of the va_list for __assign_vstr() + - net: dsa: felix: fix min gate len calculation for tc when its first gate is + closed + - Revert "s390/smp: enforce lowcore protection on CPU restart" + - powerpc/kexec: Fix build failure from uninitialised variable + - io_uring: mem-account pbuf buckets + - Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm regression + - ASoC: Intel: avs: Use lookup table to create modules + - geneve: Use ip_tunnel_key flow flags in route lookups + - vxlan: Use ip_tunnel_key flow flags in route lookups + - Linux 5.19.2 + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) // Kinetic update: v5.19.2 upstream stable release + (LP: #1986865) + - x86/entry: Build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + * Kinetic update: v5.19.1 upstream stable release (LP: #1986848) + - block: fix default IO priority handling again + - tools/vm/slabinfo: Handle files in debugfs + - ACPI: video: Force backlight native for some TongFang devices + - ACPI: video: Shortening quirk list by identifying Clevo by board_name only + - ACPI: APEI: Better fix to avoid spamming the console with old error logs + - crypto: arm64/poly1305 - fix a read out-of-bound + - ata: sata_mv: Fixes expected number of resources now IRQs are gone + - arm64: set UXN on swapper page tables + - Bluetooth: hci_qca: Return wakeup for qca_wakeup + - Bluetooth: hci_bcm: Add BCM4349B1 variant + - Bluetooth: hci_bcm: Add DT compatible for CYW55572 + - dt-bindings: bluetooth: broadcom: Add BCM4349B1 DT binding + - Bluetooth: btusb: Add support of IMC Networks PID 0x3568 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587 + - Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586 + - macintosh/adb: fix oob read in do_adb_query() function + - x86/speculation: Add RSB VM Exit protections + - x86/speculation: Add LFENCE to RSB fill sequence + - Linux 5.19.1 + + * refactoring of overlayfs fix to properly support shiftfs (LP: #1983640) + - SAUCE: for aufs mmap: print the virtual file path + - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files + + * ioam6.sh in net from ubuntu_kernel_selftests fails with 5.15 kernels in + Focal (LP: #1982930) + - selftests: net: fix IOAM test skip return code + + * Miscellaneous Ubuntu changes + - [Packaging]: always use fully qualified -gcc-VER toolchain + - [Config] update toolchain versions + - [Packaging] use unversioned default gcc + - [Packaging] Remove circular dependency between image & modules + - [Packaging] kernelconfig: drop stray 'set -x' + - SAUCE: Revert "perf tools: Use Python devtools for version autodetection + rather than runtime" + - [Config] update configs after applying stable updates + + -- Andrea Righi Mon, 05 Sep 2022 11:44:01 +0200 + +linux (5.19.0-15.15) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-15.15 -proposed tracker (LP: #1983335) + + * Miscellaneous Ubuntu changes + - [Config] update annotations to support both gcc-11 and gcc-12 + + -- Andrea Righi Tue, 02 Aug 2022 09:23:01 +0200 + +linux (5.19.0-14.14) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-14.14 -proposed tracker (LP: #1983273) + + * Miscellaneous Ubuntu changes + - [Packaging] module-signature-check: Check debian./signature-inclusion + - [Packaging] Introduce debian/scripts/sign-module + - SAUCE: Switch to using debian/scripts/sign-module + - [Config] update configs/annotations after rebase to 5.19 + - [Config] update configs after moving to gcc-12 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging]: always use fully qualified -gcc-VER + toolchain" + + [ Upstream Kernel Changes ] + + * Rebase to v5.19 + + -- Andrea Righi Mon, 01 Aug 2022 17:19:01 +0200 + +linux (5.19.0-13.13) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-13.13 -proposed tracker (LP: #1983033) + + * network-manager/1.36.4-2ubuntu1 ADT test failure with linux/5.15.0-28.29 + (LP: #1971418) + - Revert "rfkill: make new event layout opt-in" + + * Miscellaneous Ubuntu changes + - [Config] Tighten up LP bug links in annotations + - [Config] Use mark for CONFIG_DEVTMPFS + - [Config] Use flag for CONFIG_HIPPI + - [Config] Use note<> for CONFIG_XEN_ACPI_PROCESSOR + - [Config] Fix DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING annotation + - [Config] Fix CONFIG_CPU_LITTLE_ENDIAN annotation + - SAUCE: x86/bugs: Do not enable IBPB at firmware entry when IBPB is not + available + + -- Andrea Righi Thu, 28 Jul 2022 17:04:33 +0200 + +linux (5.19.0-12.12) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-12.12 -proposed tracker (LP: #1982741) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Packaging]: always use fully qualified -gcc-VER toolchain + + -- Andrea Righi Tue, 26 Jul 2022 15:07:13 +0200 + +linux (5.19.0-11.11) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-11.11 -proposed tracker (LP: #1982726) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + - debian/dkms-versions -- update from kernel-versions (main/master) + + * GPIO character device v1 API not enabled in kernel (LP: #1953613) + - [Config] Enable CONFIG_GPIO_CDEV_V1 + + * Use kernel-testing repo from launchpad for ADT tests (LP: #1968016) + - [Debian] Use kernel-testing repo from launchpad + + * Support AMD P-State cpufreq control mechanism (LP: #1956509) + - [Config] enable X86_AMD_PSTATE as built-in on amd64 + + * PCIE LnkCtl ASPM not enabled under VMD mode for Alder Lake platforms + (LP: #1942160) + - SAUCE: PCI/ASPM: Enable ASPM for links under VMD domain + - SAUCE: PCI/ASPM: Enable LTR for endpoints behind VMD + - SAUCE: vmd: fixup bridge ASPM by driver name instead + + * Miscellaneous Ubuntu changes + - [Packaging] Double the speed of updateconfigs + - Remove ubuntu/hio driver + - [Config] update config after rebase to 5.19-rc8 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc8 + + -- Andrea Righi Mon, 25 Jul 2022 08:54:21 +0200 + +linux (5.19.0-10.10) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-10.10 -proposed tracker (LP: #1982013) + + * enable config for fixing 5.17 kernel won't load mok (LP: #1972802) + - [Config] enable configs for fixing kernel won't load mok + + * RISC-V kernel config is out of sync with other archs (LP: #1981437) + - [Config] Disable CONFIG_CXL_MEM_RAW_COMMANDS on riscv64 + - [Config] Disable CONFIG_EROFS_FS_ZIP_LZMA on riscv64 + - [Config] Disable CONFIG_FONT_6x8 on riscv64 + - [Config] Disable CONFIG_NTFS3_64BIT_CLUSTER on riscv64 + - [Config] Disable CONFIG_SCSI_IZIP_EPP16 on riscv64 + - [Config] Disable CONFIG_SCSI_UFS_HWMON on riscv64 + - [Config] Disable CONFIG_SPI_AX88796C_COMPRESSION on riscv64 + - [Config] Disable CONFIG_VIDEO_ZORAN on riscv64 + - [Config] Enable CONFIG_BPF_KPROBE_OVERRIDE on riscv64 + - [Config] Enable CONFIG_CACHEFILES_ERROR_INJECTION on riscv64 + - [Config] Enable CONFIG_DRM_AMD_DC_SI on riscv64 + - [Config] Enable CONFIG_NUMA_BALANCING on riscv64 + - [Config] Enable CONFIG_PROC_VMCORE_DEVICE_DUMP on riscv64 + - [Config] Enable CONFIG_WLAN_VENDOR_MICROCHIP on riscv64 + - [Config] Set CONFIG_MHI_WWAN_CTRL=m on riscv64 + - [Config] Set CONFIG_NFC_S3FWRN82_UART=m on riscv64 + - [Config] Enable CONFIG_EFIVAR_FS on riscv64 + - [Config] Enable CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES on riscv64 + - [Config] Enable CONFIG_STRICT_DEVMEM on riscv64 + - [Config] Enable CONFIG_VMAP_STACK on riscv64 + - [Config] Enable CONFIG_KEXEC_FILE on riscv64 + - [Config] Set CONFIG_MTD_PSTORE=m on riscv64 + - [Config] Set CONFIG_KFENCE_SAMPLE_INTERVAL=0 on riscv64 + - [Config] Enable CONFIG_KEXEC_FILE on s390x + + * Ubuntu 22.04 and 20.04 DPC Fixes for Failure Cases of DownPort Containment + events (LP: #1965241) + - Enable config option CONFIG_PCIE_EDR + - Correct CONFIG_PCIE_EDR annotation on arm64 + + * config CONFIG_HISI_PMU for kunpeng920 (LP: #1956086) + - [Config] CONFIG_HISI_PMU=m + + * Skip setting ethernet LED on Dell EMC board (LP: #1971667) + - SAUCE: net: phy: marvell: Skip setting LED on Dell EMC board + + * Miscellaneous Ubuntu changes + - [Packaging] ignore warnings from the output of ld.bfd + - [Packaging] Fix bashism in dkms-build script + - [Packaging] Always catch errors in dkms-build scripts + - [Packaging] Fix dkms builds with linker @module.mod files + - [Packaging] mark dkms-build-configure--zfs executable + - [Config] update configs and annotations after rebase to 5.19-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc7 + + -- Andrea Righi Mon, 18 Jul 2022 23:45:28 +0200 + +linux (5.19.0-9.9) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-9.9 -proposed tracker (LP: #1980622) + + * Miscellaneous Ubuntu changes + - [Config] update config after rebase to 5.19-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc5 + + -- Andrea Righi Mon, 04 Jul 2022 12:05:04 +0200 + +linux (5.19.0-8.8) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-8.8 -proposed tracker (LP: #1980482) + + * temporarily disable CONFIG_X86_KERNEL_IBT (LP: #1980484) + - [Config] temporarily disable CONFIG_X86_KERNEL_IBT + + -- Andrea Righi Fri, 01 Jul 2022 11:58:56 +0200 + +linux (5.19.0-7.7) kinetic; urgency=medium + + * kinetic/linux: 5.19.0-7.7 -proposed tracker (LP: #1980056) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * RISC-V enables CONFIG_COMPAT in the unstable branch (LP: #1980061) + - [Config] Disable CONFIG_COMPAT on RISC-V + + * No RISC-V configuration in the unstable tree (LP: #1979647) + - [Config] Merge riscv64 config and annotations + + -- Andrea Righi Tue, 28 Jun 2022 12:25:48 +0200 + +linux (5.19.0-6.6) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 28 Jun 2022 07:50:17 +0200 + +linux-unstable (5.19.0-6.6) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-6.6 -proposed tracker (LP: #1979948) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Packaging] Remove 'family=ubuntu' concept + - [Packaging] final-checks: Remove useless sourcing of kernelconfig + - [Config] update config after rebase to 5.19-rc4 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc4 + + -- Andrea Righi Mon, 27 Jun 2022 09:16:40 +0200 + +linux-unstable (5.19.0-5.5) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-5.5 -proposed tracker (LP: #1979611) + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable signing for ppc64el and + s390x" + + -- Andrea Righi Thu, 23 Jun 2022 11:13:32 +0200 + +linux-unstable (5.19.0-4.4) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-4.4 -proposed tracker (LP: #1979177) + + * Miscellaneous Ubuntu changes + - [Config] update configs after rebase to 5.19-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc3 + + -- Andrea Righi Mon, 20 Jun 2022 09:02:58 +0200 + +linux-unstable (5.19.0-3.3) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-3.3 -proposed tracker (LP: #1978439) + + * Miscellaneous Ubuntu changes + - [Config] update annotations for 5.19 + + [ Upstream Kernel Changes ] + + * Rebase to v5.19-rc2 + + -- Andrea Righi Mon, 13 Jun 2022 07:16:32 +0200 + +linux-unstable (5.19.0-2.2) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.19.0-2.2 -proposed tracker (LP: #1978313) + + -- Andrea Righi Fri, 10 Jun 2022 15:17:20 +0200 + +linux-unstable (5.19.0-1.1) kinetic; urgency=medium + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * linux: Staging modules should be unsigned (LP: #1642368) + - [Packaging] Move and update signature inclusion list + - [Packaging] Strip signatures from untrusted staging modules + - [Packaging] Add module-signature-check + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.19-rc1 + - [Packaging] move to kernel 5.19 + - [Packaging] workaround missing python3-dev dependency + - SAUCE: Revert "perf tools: Use Python devtools for version autodetection + rather than runtime" + - SAUCE: watchdog: gxp: Add missing MODULE_LICENSE + - [Packaging] add python3-dev as build dependency + + -- Andrea Righi Fri, 10 Jun 2022 14:43:46 +0200 + +linux-unstable (5.19.0-0.0) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Thu, 09 Jun 2022 12:13:06 +0200 + +linux (5.18.0-6.6) kinetic; urgency=medium + + * kinetic/linux: 5.18.0-6.6 -proposed tracker (LP: #1976327) + + * Miscellaneous Ubuntu changes + - [Packaging] temporarily disable signing for ppc64el and s390x + - [Config] update toolchain versions + - [Config] enable CONFIG_X86_KERNEL_IBT + + -- Andrea Righi Tue, 31 May 2022 11:05:51 +0200 + +linux (5.18.0-5.5) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 23 May 2022 16:59:47 +0200 + +linux-unstable (5.18.0-5.5) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-5.5 -proposed tracker (LP: #1975458) + + * enable CONFIG_DEVTMPFS_SAFE (LP: #1974442) + - [Config] enable CONFIG_DEVTMPFS_SAFE + + * build backport-iwlwifi-dkms as linux-modules-iwlwifi-ABI (LP: #1969434) + - [Packaging] drop do_ arch specific configs + + * prevent kernel panic with overlayfs + shiftfs (LP: #1973620) + - SAUCE: overlayfs: prevent dereferencing struct file in ovl_vm_prfile_set() + + * linux-image-5.0.0-35-generic breaks checkpointing of container + (LP: #1857257) // re-apply missing overlayfs SAUCE patch (LP: #1967924) + - SAUCE: overlayfs: fix incorrect mnt_id of files opened from map_files + + [ Upstream Kernel Changes ] + + * Rebase to v5.18 + + -- Andrea Righi Mon, 23 May 2022 11:21:38 +0200 + +linux-unstable (5.18.0-4.4) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-4.4 -proposed tracker (LP: #1973587) + + * build backport-iwlwifi-dkms as linux-modules-iwlwifi-ABI (LP: #1969434) + - [Packaging] support standalone dkms module builds + + * Enable speakup kernel modules to allow the speakup screen reader to function + (LP: #1967702) + - [Config] CONFIG_SPEAKUP=m for all but s390x + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable v4l2loopback" + - Revert "UBUNTU: [Packaging] temporarily disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc7 + + -- Andrea Righi Mon, 16 May 2022 14:15:35 +0200 + +linux-unstable (5.18.0-3.3) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-3.3 -proposed tracker (LP: #1972162) + + * disable Intel DMA remapping by default (LP: #1971699) + - Revert "UBUNTU: [Config] enable Intel DMA remapping options by default" + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc6 + + -- Andrea Righi Mon, 09 May 2022 12:15:39 +0200 + +linux-unstable (5.18.0-2.2) kinetic; urgency=medium + + * kinetic/linux-unstable: 5.18.0-2.2 -proposed tracker (LP: #1971340) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - [Config] update configs after rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc5 + + -- Andrea Righi Tue, 03 May 2022 12:24:49 +0200 + +linux-unstable (5.18.0-1.1) kinetic; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 03 May 2022 09:38:06 +0200 + +linux-unstable (5.18.0-1.1) jammy; urgency=medium + + * kinetic/linux-unstable: 5.18.0-1.1 -proposed tracker (LP: #1969476) + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.18 + - [Packaging] temporarily disable zfs + - [Packaging] temporarily disable v4l2loopback + + [ Upstream Kernel Changes ] + + * Rebase to v5.18-rc3 + + -- Andrea Righi Wed, 27 Apr 2022 20:26:42 +0200 + +linux-unstable (5.18.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 19 Apr 2022 16:20:00 +0200 + +linux-unstable (5.17.0-8.8) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-8.8 -proposed tracker (LP: #1969016) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + -- Andrea Righi Thu, 14 Apr 2022 10:30:39 +0200 + +linux-unstable (5.17.0-7.7) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-7.7 -proposed tracker (LP: #1968988) + + * zfcpdump-kernel update to v5.15 (LP: #1965766) + - SAUCE: Audit: Fix incorrect static inline function declration. + + * intel_iommu breaks Intel IPU6 camera: isys port open ready failed -16 + (LP: #1958004) + - SAUCE: iommu: intel-ipu: use IOMMU passthrough mode for Intel IPUs + + * Jammy update: v5.17.3 upstream stable release (LP: #1968986) + - lib/logic_iomem: correct fallback config references + - um: fix and optimize xor select template for CONFIG64 and timetravel mode + - rtc: wm8350: Handle error for wm8350_register_irq + - net: dsa: felix: fix possible NULL pointer dereference + - mm: kfence: fix objcgs vector allocation + - KVM: x86/pmu: Use different raw event masks for AMD and Intel + - KVM: SVM: Fix kvm_cache_regs.h inclusions for is_guest_mode() + - KVM: x86/svm: Clear reserved bits written to PerfEvtSeln MSRs + - KVM: x86/pmu: Fix and isolate TSX-specific performance event logic + - KVM: x86/emulator: Emulate RDPID only if it is enabled in guest + - drm: Add orientation quirk for GPD Win Max + - Bluetooth: hci_sync: Fix compilation warning + - ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111 + - Bluetooth: fix null ptr deref on hci_sync_conn_complete_evt + - drm/amd/display: Add signal type check when verify stream backends same + - drm/amdkfd: enable heavy-weight TLB flush on Arcturus + - drm/edid: remove non_desktop quirk for HPN-3515 and LEN-B800. + - drm/edid: improve non-desktop quirk logging + - Bluetooth: hci_event: Ignore multiple conn complete events + - drm/amd/amdgpu/amdgpu_cs: fix refcount leak of a dma_fence obj + - drm/amd/display: Fix memory leak + - drm/amd/display: Use PSR version selected during set_psr_caps + - usb: gadget: tegra-xudc: Do not program SPARAM + - usb: gadget: tegra-xudc: Fix control endpoint's definitions + - usb: cdnsp: fix cdnsp_decode_trb function to properly handle ret value + - ptp: replace snprintf with sysfs_emit + - Bluetooth: hci_sync: Fix queuing commands when HCI_UNREGISTER is set + - selftests, xsk: Fix bpf_res cleanup test + - net/mlx5e: TC, Hold sample_attr on stack instead of pointer + - drm/amdkfd: Don't take process mutex for svm ioctls + - drm/amdkfd: Ensure mm remain valid in svm deferred_list work + - drm/amdkfd: svm range restore work deadlock when process exit + - drm/amdgpu: Fix an error message in rmmod + - mlxsw: spectrum: Guard against invalid local ports + - RDMA/rtrs-clt: Do stop and failover outside reconnect work. + - powerpc/xive: Export XIVE IPI information for online-only processors. + - powerpc: dts: t104xrdb: fix phy type for FMAN 4/5 + - ath11k: fix kernel panic during unload/load ath11k modules + - ath11k: pci: fix crash on suspend if board file is not found + - ath11k: mhi: use mhi_sync_power_up() + - net/smc: Send directly when TCP_CORK is cleared + - drm/bridge: Add missing pm_runtime_put_sync + - bpf: Make dst_port field in struct bpf_sock 16-bit wide + - scsi: mvsas: Replace snprintf() with sysfs_emit() + - scsi: bfa: Replace snprintf() with sysfs_emit() + - drm/v3d: fix missing unlock + - power: supply: axp20x_battery: properly report current when discharging + - mt76: mt7921: fix crash when startup fails. + - mt76: dma: initialize skip_unmap in mt76_dma_rx_fill + - i40e: Add sending commands in atomic context + - cfg80211: don't add non transmitted BSS to 6GHz scanned channels + - libbpf: Fix build issue with llvm-readelf + - ipv6: make mc_forwarding atomic + - ref_tracker: implement use-after-free detection + - net: initialize init_net earlier + - powerpc: Set crashkernel offset to mid of RMA region + - drm/amdgpu: Fix recursive locking warning + - scsi: smartpqi: Fix rmmod stack trace + - scsi: smartpqi: Fix kdump issue when controller is locked up + - PCI: aardvark: Fix support for MSI interrupts + - kvm: selftests: aarch64: fix assert in gicv3_access_reg + - kvm: selftests: aarch64: pass vgic_irq guest args as a pointer + - kvm: selftests: aarch64: fix the failure check in + kvm_set_gsi_routing_irqchip_check + - kvm: selftests: aarch64: fix some vgic related comments + - kvm: selftests: aarch64: use a tighter assert in vgic_poke_irq() + - iommu/arm-smmu-v3: fix event handling soft lockup + - usb: ehci: add pci device support for Aspeed platforms + - KVM: arm64: Do not change the PMU event filter after a VCPU has run + - libbpf: Fix accessing syscall arguments on powerpc + - libbpf: Fix accessing the first syscall argument on arm64 + - libbpf: Fix accessing the first syscall argument on s390 + - PCI: endpoint: Fix alignment fault error in copy tests + - tcp: Don't acquire inet_listen_hashbucket::lock with disabled BH. + - PCI: pciehp: Add Qualcomm quirk for Command Completed erratum + - scsi: mpi3mr: Fix deadlock while canceling the fw event + - scsi: mpi3mr: Fix reporting of actual data transfer size + - scsi: mpi3mr: Fix memory leaks + - powerpc/set_memory: Avoid spinlock recursion in change_page_attr() + - power: supply: axp288-charger: Set Vhold to 4.4V + - drm/sprd: fix potential NULL dereference + - drm/sprd: check the platform_get_resource() return value + - drm/amd/display: reset lane settings after each PHY repeater LT + - net/mlx5e: Disable TX queues before registering the netdev + - HID: apple: Report Magic Keyboard 2021 battery over USB + - HID: apple: Report Magic Keyboard 2021 with fingerprint reader battery over + USB + - usb: dwc3: pci: Set the swnode from inside dwc3_pci_quirks() + - iwlwifi: mvm: Correctly set fragmented EBS + - iwlwifi: fix small doc mistake for iwl_fw_ini_addr_val + - iwlwifi: mvm: move only to an enabled channel + - ipv6: annotate some data-races around sk->sk_prot + - drm/msm/dsi: Remove spurious IRQF_ONESHOT flag + - x86/mce: Work around an erratum on fast string copy instructions + - rtw89: fix RCU usage in rtw89_core_txq_push() + - ath11k: Fix frames flush failure caused by deadlock + - ipv4: Invalidate neighbour for broadcast address upon address addition + - rtw88: change rtw_info() to proper message level + - dm ioctl: prevent potential spectre v1 gadget + - dm: requeue IO if mapping table not yet available + - drm/amdkfd: make CRAT table missing message informational only + - vfio/pci: Stub vfio_pci_vga_rw when !CONFIG_VFIO_PCI_VGA + - scsi: pm8001: Fix pm80xx_pci_mem_copy() interface + - scsi: pm8001: Fix pm8001_mpi_task_abort_resp() + - scsi: pm8001: Fix tag values handling + - scsi: pm8001: Fix task leak in pm8001_send_abort_all() + - scsi: pm8001: Fix tag leaks on error + - scsi: pm8001: Fix memory leak in pm8001_chip_fw_flash_update_req() + - mt76: mt7915: fix injected MPDU transmission to not use HW A-MSDU + - mctp: make __mctp_dev_get() take a refcount hold + - powerpc/64s/hash: Make hash faults work in NMI context + - mt76: mt7615: Fix assigning negative values to unsigned variable + - power: supply: axp288_charger: Use acpi_quirk_skip_acpi_ac_and_battery() + - power: supply: axp288_fuel_gauge: Use acpi_quirk_skip_acpi_ac_and_battery() + - scsi: aha152x: Fix aha152x_setup() __setup handler return value + - scsi: hisi_sas: Free irq vectors in order for v3 HW + - scsi: hisi_sas: Limit users changing debugfs BIST count value + - net/smc: correct settings of RMB window update limit + - mips: ralink: fix a refcount leak in ill_acc_of_setup() + - iavf: stop leaking iavf_status as "errno" values + - macvtap: advertise link netns via netlink + - platform/x86: thinkpad_acpi: Add dual fan probe + - tuntap: add sanity checks about msg_controllen in sendmsg + - Bluetooth: mediatek: fix the conflict between mtk and msft vendor event + - Bluetooth: Fix not checking for valid hdev on bt_dev_{info,warn,err,dbg} + - Bluetooth: use memset avoid memory leaks + - bnxt_en: Eliminate unintended link toggle during FW reset + - PCI: endpoint: Fix misused goto label + - MIPS: fix fortify panic when copying asm exception handlers + - powerpc/code-patching: Pre-map patch area + - powerpc/64e: Tie PPC_BOOK3E_64 to PPC_FSL_BOOK3E + - powerpc/secvar: fix refcount leak in format_show() + - scsi: libfc: Fix use after free in fc_exch_abts_resp() + - platform/x86: x86-android-tablets: Depend on EFI and SPI + - can: isotp: set default value for N_As to 50 micro seconds + - can: etas_es58x: es58x_fd_rx_event_msg(): initialize rx_event_msg before + calling es58x_check_msg_len() + - riscv: Fixed misaligned memory access. Fixed pointer comparison. + - net: account alternate interface name memory + - net: limit altnames to 64k total + - net/mlx5e: Remove overzealous validations in netlink EEPROM query + - platform/x86: hp-wmi: Fix SW_TABLET_MODE detection method + - platform/x86: hp-wmi: Fix 0x05 error code reported by several WMI calls + - net: sfp: add 2500base-X quirk for Lantech SFP module + - usb: dwc3: omap: fix "unbalanced disables for smps10_out1" on omap5evm + - xen/usb: harden xen_hcd against malicious backends + - mt76: fix monitor mode crash with sdio driver + - xtensa: fix DTC warning unit_address_format + - iwlwifi: mei: fix building iwlmei + - MIPS: ingenic: correct unit node address + - Bluetooth: Fix use after free in hci_send_acl + - netfilter: conntrack: revisit gc autotuning + - netlabel: fix out-of-bounds memory accesses + - ceph: fix inode reference leakage in ceph_get_snapdir() + - ceph: fix memory leak in ceph_readdir when note_last_dentry returns error + - lib/Kconfig.debug: add ARCH dependency for FUNCTION_ALIGN option + - init/main.c: return 1 from handled __setup() functions + - minix: fix bug when opening a file with O_DIRECT + - clk: si5341: fix reported clk_rate when output divider is 2 + - clk: mediatek: Fix memory leaks on probe + - staging: vchiq_arm: Avoid NULL ptr deref in vchiq_dump_platform_instances + - staging: vchiq_core: handle NULL result of find_service_by_handle + - phy: amlogic: phy-meson-gxl-usb2: fix shared reset controller use + - phy: amlogic: meson8b-usb2: Use dev_err_probe() + - phy: amlogic: meson8b-usb2: fix shared reset control use + - clk: rockchip: drop CLK_SET_RATE_PARENT from dclk_vop* on rk3568 + - cpufreq: CPPC: Fix performance/frequency conversion + - opp: Expose of-node's name in debugfs + - staging: wfx: apply the necessary SDIO quirks for the Silabs WF200 + - staging: wfx: fix an error handling in wfx_init_common() + - w1: w1_therm: fixes w1_seq for ds28ea00 sensors + - NFSv4.2: fix reference count leaks in _nfs42_proc_copy_notify() + - NFSv4: Protect the state recovery thread against direct reclaim + - habanalabs: fix possible memory leak in MMU DR fini + - habanalabs: reject host map with mmu disabled + - habanalabs/gaudi: handle axi errors from NIC engines + - xen: delay xen_hvm_init_time_ops() if kdump is boot on vcpu>=32 + - clk: ti: Preserve node in ti_dt_clocks_register() + - clk: Enforce that disjoints limits are invalid + - SUNRPC/xprt: async tasks mustn't block waiting for memory + - SUNRPC: remove scheduling boost for "SWAPPER" tasks. + - NFS: swap IO handling is slightly different for O_DIRECT IO + - NFS: swap-out must always use STABLE writes. + - x86: Annotate call_on_stack() + - x86/Kconfig: Do not allow CONFIG_X86_X32_ABI=y with llvm-objcopy + - serial: samsung_tty: do not unlock port->lock for uart_write_wakeup() + - virtio_console: eliminate anonymous module_init & module_exit + - jfs: prevent NULL deref in diFree + - SUNRPC: Fix socket waits for write buffer space + - NFS: nfsiod should not block forever in mempool_alloc() + - NFS: Avoid writeback threads getting stuck in mempool_alloc() + - selftests: net: Add tls config dependency for tls selftests + - parisc: Fix CPU affinity for Lasi, WAX and Dino chips + - parisc: Fix patch code locking and flushing + - mm: fix race between MADV_FREE reclaim and blkdev direct IO read + - drm/amdgpu: fix off by one in amdgpu_gfx_kiq_acquire() + - Drivers: hv: vmbus: Fix initialization of device object in + vmbus_device_register() + - Drivers: hv: vmbus: Fix potential crash on module unload + - netfilter: bitwise: fix reduce comparisons + - Revert "NFSv4: Handle the special Linux file open access mode" + - NFSv4: fix open failure with O_ACCMODE flag + - scsi: core: scsi_logging: Fix a BUG + - scsi: sr: Fix typo in CDROM(CLOSETRAY|EJECT) handling + - scsi: core: Fix sbitmap depth in scsi_realloc_sdev_budget_map() + - scsi: zorro7xx: Fix a resource leak in zorro7xx_remove_one() + - vdpa: mlx5: prevent cvq work from hogging CPU + - net: sfc: add missing xdp queue reinitialization + - net/tls: fix slab-out-of-bounds bug in decrypt_internal + - vrf: fix packet sniffing for traffic originating from ip tunnels + - skbuff: fix coalescing for page_pool fragment recycling + - Revert "net: dsa: stop updating master MTU from master.c" + - ice: Clear default forwarding VSI during VSI release + - ice: Fix MAC address setting + - mctp: Fix check for dev_hard_header() result + - mctp: Use output netdev to allocate skb headroom + - net: ipv4: fix route with nexthop object delete warning + - net: stmmac: Fix unset max_speed difference between DT and non-DT platforms + - drm/imx: imx-ldb: Check for null pointer after calling kmemdup + - drm/imx: Fix memory leak in imx_pd_connector_get_modes + - drm/imx: dw_hdmi-imx: Fix bailout in error cases of probe + - regulator: rtq2134: Fix missing active_discharge_on setting + - spi: rpc-if: Fix RPM imbalance in probe error path + - regulator: atc260x: Fix missing active_discharge_on setting + - arch/arm64: Fix topology initialization for core scheduling + - bnxt_en: Synchronize tx when xdp redirects happen on same ring + - bnxt_en: reserve space inside receive page for skb_shared_info + - bnxt_en: Prevent XDP redirect from running when stopping TX queue + - sfc: Do not free an empty page_ring + - RDMA/mlx5: Don't remove cache MRs when a delay is needed + - RDMA/mlx5: Add a missing update of cache->last_add + - IB/cm: Cancel mad on the DREQ event when the state is MRA_REP_RCVD + - cifs: fix potential race with cifsd thread + - IB/rdmavt: add lock to call to rvt_error_qp to prevent a race condition + - sctp: count singleton chunks in assoc user stats + - dpaa2-ptp: Fix refcount leak in dpaa2_ptp_probe + - ice: Set txq_teid to ICE_INVAL_TEID on ring creation + - ice: Do not skip not enabled queues in ice_vc_dis_qs_msg + - ipv6: Fix stats accounting in ip6_pkt_drop + - ice: synchronize_rcu() when terminating rings + - ice: xsk: fix VSI state check in ice_xsk_wakeup() + - ice: clear cmd_type_offset_bsz for TX rings + - net: openvswitch: don't send internal clone attribute to the userspace. + - net: ethernet: mv643xx: Fix over zealous checking of_get_mac_address() + - net: openvswitch: fix leak of nested actions + - rxrpc: fix a race in rxrpc_exit_net() + - net: sfc: fix using uninitialized xdp tx_queue + - net: phy: mscc-miim: reject clause 45 register accesses + - qede: confirm skb is allocated before using + - spi: bcm-qspi: fix MSPI only access with bcm_qspi_exec_mem_op() + - drm/amd/display: Fix for dmub outbox notification enable + - drm/amd/display: Remove redundant dsc power gating from init_hw + - bpf: Support dual-stack sockets in bpf_tcp_check_syncookie + - drbd: Fix five use after free bugs in get_initial_state + - scsi: sd: sd_read_cpr() requires VPD pages + - scsi: ufs: ufshpb: Fix a NULL check on list iterator + - io_uring: nospec index for tags on files update + - io_uring: don't touch scm_fp_list after queueing skb + - SUNRPC: Handle ENOMEM in call_transmit_status() + - SUNRPC: Handle low memory situations in call_status() + - SUNRPC: svc_tcp_sendmsg() should handle errors from xdr_alloc_bvec() + - iommu/omap: Fix regression in probe for NULL pointer dereference + - perf unwind: Don't show unwind error messages when augmenting frame pointer + stack + - perf: arm-spe: Fix perf report --mem-mode + - perf tools: Fix perf's libperf_print callback + - perf session: Remap buf if there is no space for event + - arm64: Add part number for Arm Cortex-A78AE + - scsi: mpt3sas: Fix use after free in _scsih_expander_node_remove() + - scsi: ufs: ufs-pci: Add support for Intel MTL + - Revert "mmc: sdhci-xenon: fix annoying 1.8V regulator warning" + - mmc: block: Check for errors after write on SPI + - mmc: mmci: stm32: correctly check all elements of sg list + - mmc: renesas_sdhi: special 4tap settings only apply to HS400 + - mmc: renesas_sdhi: don't overwrite TAP settings when HS400 tuning is + complete + - mmc: core: Fixup support for writeback-cache for eMMC and SD + - lz4: fix LZ4_decompress_safe_partial read out of bound + - highmem: fix checks in __kmap_local_sched_{in,out} + - mmmremap.c: avoid pointless invalidate_range_start/end on mremap(old_size=0) + - mm/mempolicy: fix mpol_new leak in shared_policy_replace + - io_uring: don't check req->file in io_fsync_prep() + - io_uring: defer splice/tee file validity check until command issue + - io_uring: implement compat handling for IORING_REGISTER_IOWQ_AFF + - io_uring: fix race between timeout flush and removal + - x86/pm: Save the MSR validity status at context setup + - x86/speculation: Restore speculation related MSRs during S3 resume + - perf/x86/intel: Update the FRONTEND MSR mask on Sapphire Rapids + - btrfs: fix qgroup reserve overflow the qgroup limit + - btrfs: zoned: traverse devices under chunk_mutex in btrfs_can_activate_zone + - btrfs: remove device item and update super block in the same transaction + - btrfs: avoid defragging extents whose next extents are not targets + - btrfs: prevent subvol with swapfile from being deleted + - spi: core: add dma_map_dev for __spi_unmap_msg() + - cifs: force new session setup and tcon for dfs + - qed: fix ethtool register dump + - arm64: patch_text: Fixup last cpu should be master + - RDMA/hfi1: Fix use-after-free bug for mm struct + - drbd: fix an invalid memory access caused by incorrect use of list iterator + - gpio: Restrict usage of GPIO chip irq members before initialization + - x86/msi: Fix msi message data shadow struct + - x86/mm/tlb: Revert retpoline avoidance approach + - perf/x86/intel: Don't extend the pseudo-encoding to GP counters + - ata: sata_dwc_460ex: Fix crash due to OOB write + - perf: qcom_l2_pmu: fix an incorrect NULL check on list iterator + - perf/core: Inherit event_caps + - irqchip/gic-v3: Fix GICR_CTLR.RWP polling + - fbdev: Fix unregistering of framebuffers without device + - amd/display: set backlight only if required + - drm/panel: ili9341: fix optional regulator handling + - drm/amd/display: Fix by adding FPU protection for dcn30_internal_validate_bw + - drm/amdgpu/display: change pipe policy for DCN 2.1 + - drm/amdgpu/smu10: fix SoC/fclk units in auto mode + - drm/amdgpu/vcn: Fix the register setting for vcn1 + - drm/nouveau/pmu: Add missing callbacks for Tegra devices + - drm/amdkfd: Create file descriptor after client is added to smi_clients list + - drm/amdgpu: don't use BACO for reset in S3 + - SUNRPC: Ensure we flush any closed sockets before xs_xprt_free() + - Revert "ACPI: processor: idle: Only flush cache on entering C3" + - drm/amdkfd: Fix variable set but not used warning + - net/smc: send directly on setting TCP_NODELAY + - Revert "selftests: net: Add tls config dependency for tls selftests" + - bpf: Make remote_port field in struct bpf_sk_lookup 16-bit wide + - selftests/bpf: Fix u8 narrow load checks for bpf_sk_lookup remote_port + - bpf: Treat bpf_sk_lookup remote_port as a 2-byte field + - perf build: Don't use -ffat-lto-objects in the python feature test when + building with clang-13 + - perf python: Fix probing for some clang command line options + - tools build: Filter out options and warnings not supported by clang + - tools build: Use $(shell ) instead of `` to get embedded libperl's ccopts + - dmaengine: Revert "dmaengine: shdma: Fix runtime PM imbalance on error" + - KVM: avoid NULL pointer dereference in kvm_dirty_ring_push + - Drivers: hv: vmbus: Replace smp_store_mb() with virt_store_mb() + - powerpc: Fix virt_addr_valid() for 64-bit Book3E & 32-bit + - Revert "powerpc: Set max_mapnr correctly" + - x86/bug: Prevent shadowing in __WARN_FLAGS + - objtool: Fix SLS validation for kcov tail-call replacement + - sched/core: Fix forceidle balancing + - sched: Teach the forced-newidle balancer about CPU affinity limitation. + - x86,static_call: Fix __static_call_return0 for i386 + - x86/extable: Prefer local labels in .set directives + - irqchip/gic-v4: Wait for GICR_VPENDBASER.Dirty to clear before descheduling + - powerpc/64: Fix build failure with allyesconfig in book3s_64_entry.S + - irqchip/gic, gic-v3: Prevent GSI to SGI translations + - mm/sparsemem: fix 'mem_section' will never be NULL gcc 12 warning + - static_call: Don't make __static_call_return0 static + - io_uring: move read/write file prep state into actual opcode handler + - io_uring: propagate issue_flags state down to file assignment + - io_uring: defer file assignment + - io_uring: drop the old style inflight file tracking + - Linux 5.17.3 + + * Jammy update: v5.17.2 upstream stable release Edit (LP: #1968984) + - Revert "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" + - USB: serial: pl2303: add IBM device IDs + - dt-bindings: usb: hcd: correct usb-device path + - USB: serial: pl2303: fix GS type detection + - USB: serial: simple: add Nokia phone driver + - mm: kfence: fix missing objcg housekeeping for SLAB + - locking/lockdep: Avoid potential access of invalid memory in lock_class + - drm/amdgpu: move PX checking into amdgpu_device_ip_early_init + - drm/amdgpu: only check for _PR3 on dGPUs + - iommu/iova: Improve 32-bit free space estimate + - block: flush plug based on hardware and software queue order + - block: ensure plug merging checks the correct queue at least once + - usb: typec: tipd: Forward plug orientation to typec subsystem + - USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c + - xhci: fix garbage USBSTS being logged in some cases + - xhci: fix runtime PM imbalance in USB2 resume + - xhci: make xhci_handshake timeout for xhci_reset() adjustable + - xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx() + - mei: me: disable driver on the ign firmware + - mei: me: add Alder Lake N device id. + - mei: avoid iterator usage outside of list_for_each_entry + - bus: mhi: pci_generic: Add mru_default for Quectel EM1xx series + - bus: mhi: Fix pm_state conversion to string + - bus: mhi: Fix MHI DMA structure endianness + - docs: sphinx/requirements: Limit jinja2<3.1 + - coresight: Fix TRCCONFIGR.QE sysfs interface + - coresight: syscfg: Fix memleak on registration failure in + cscfg_create_device + - dt-bindings: iio: adc: zynqmp_ams: Add clock entry + - iio: adc: xilinx-ams: Fix single channel switching sequence + - iio: accel: mma8452: use the correct logic to get mma8452_data + - iio: adc: aspeed: Add divider flag to fix incorrect voltage reading. + - iio: imu: st_lsm6dsx: use dev_to_iio_dev() to get iio_dev struct + - iio: afe: rescale: use s64 for temporary scale calculations + - iio: adc: xilinx-ams: Fixed missing PS channels + - iio: adc: xilinx-ams: Fixed wrong sequencer register settings + - iio: inkern: apply consumer scale on IIO_VAL_INT cases + - iio: inkern: apply consumer scale when no channel scale is available + - iio: inkern: make a best effort on offset calculation + - greybus: svc: fix an error handling bug in gb_svc_hello() + - clk: rockchip: re-add rational best approximation algorithm to the + fractional divider + - clk: uniphier: Fix fixed-rate initialization + - ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE + - cifs: truncate the inode and mapping when we simulate fcollapse + - cifs: fix handlecache and multiuser + - cifs: we do not need a spinlock around the tree access during umount + - KEYS: fix length validation in keyctl_pkey_params_get_2() + - KEYS: asymmetric: enforce that sig algo matches key algo + - KEYS: asymmetric: properly validate hash_algo and encoding + - Documentation: add link to stable release candidate tree + - Documentation: update stable tree link + - firmware: stratix10-svc: add missing callback parameter on RSU + - firmware: sysfb: fix platform-device leak in error path + - HID: intel-ish-hid: Use dma_alloc_coherent for firmware update + - SUNRPC: avoid race between mod_timer() and del_timer_sync() + - SUNRPC: Do not dereference non-socket transports in sysfs + - NFS: NFSv2/v3 clients should never be setting NFS_CAP_XATTR + - NFSD: prevent underflow in nfssvc_decode_writeargs() + - NFSD: prevent integer overflow on 32 bit systems + - f2fs: fix to unlock page correctly in error path of is_alive() + - f2fs: quota: fix loop condition at f2fs_quota_sync() + - f2fs: fix to do sanity check on .cp_pack_total_block_count + - remoteproc: Fix count check in rproc_coredump_write() + - mm/mlock: fix two bugs in user_shm_lock() + - pinctrl: ingenic: Fix regmap on X series SoCs + - pinctrl: samsung: drop pin banks references on error paths + - net: bnxt_ptp: fix compilation error + - spi: mxic: Fix the transmit path + - mtd: spi-nor: Skip erase logic when SPI_NOR_NO_ERASE is set + - mtd: rawnand: protect access to rawnand devices while in suspend + - can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path + - can: m_can: m_can_tx_handler(): fix use after free of skb + - can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error + path + - jffs2: fix use-after-free in jffs2_clear_xattr_subsystem + - jffs2: fix memory leak in jffs2_do_mount_fs + - jffs2: fix memory leak in jffs2_scan_medium + - mm: fs: fix lru_cache_disabled race in bh_lru + - mm: don't skip swap entry even if zap_details specified + - mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node + - mm: invalidate hwpoison page cache page in fault path + - mempolicy: mbind_range() set_policy() after vma_merge() + - scsi: core: sd: Add silence_suspend flag to suppress some PM messages + - scsi: ufs: Fix runtime PM messages never-ending cycle + - scsi: scsi_transport_fc: Fix FPIN Link Integrity statistics counters + - scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands + - qed: display VF trust config + - qed: validate and restrict untrusted VFs vlan promisc mode + - riscv: dts: canaan: Fix SPI3 bus width + - riscv: Fix fill_callchain return value + - riscv: Increase stack size under KASAN + - RISC-V: Declare per cpu boot data as static + - Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" + - cifs: do not skip link targets when an I/O fails + - cifs: fix incorrect use of list iterator after the loop + - cifs: prevent bad output lengths in smb2_ioctl_query_info() + - cifs: fix NULL ptr dereference in smb2_ioctl_query_info() + - ALSA: cs4236: fix an incorrect NULL check on list iterator + - ALSA: hda: Avoid unsol event during RPM suspending + - ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock + - ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020 + - rtc: mc146818-lib: fix locking in mc146818_set_time + - rtc: pl031: fix rtc features null pointer dereference + - io_uring: ensure that fsnotify is always called + - ocfs2: fix crash when mount with quota enabled + - drm/simpledrm: Add "panel orientation" property on non-upright mounted LCD + panels + - mm: madvise: skip unmapped vma holes passed to process_madvise + - mm: madvise: return correct bytes advised with process_madvise + - Revert "mm: madvise: skip unmapped vma holes passed to process_madvise" + - mm,hwpoison: unmap poisoned page before invalidation + - mm: only re-generate demotion targets when a numa node changes its N_CPU + state + - mm/kmemleak: reset tag when compare object pointer + - dm stats: fix too short end duration_ns when using precise_timestamps + - dm: fix use-after-free in dm_cleanup_zoned_dev() + - dm: interlock pending dm_io and dm_wait_for_bios_completion + - dm: fix double accounting of flush with data + - dm integrity: set journal entry unused when shrinking device + - tracing: Have trace event string test handle zero length strings + - drbd: fix potential silent data corruption + - can: isotp: sanitize CAN ID checks in isotp_bind() + - PCI: fu740: Force 2.5GT/s for initial device probe + - arm64: signal: nofpsimd: Do not allocate fp/simd context when not available + - arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory + zones + - arm64: dts: qcom: sm8250: Fix MSI IRQ for PCIe1 and PCIe2 + - arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-am64: Fix gic-v3 compatible regs + - arm64: dts: ti: k3-j721s2: Fix gic-v3 compatible regs + - ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM + - mmc: core: use sysfs_emit() instead of sprintf() + - Revert "ACPI: Pass the same capabilities to the _OSC regardless of the query + flag" + - ACPI: properties: Consistently return -ENOENT if there are no more + references + - coredump: Also dump first pages of non-executable ELF libraries + - ext4: fix ext4_fc_stats trace point + - ext4: fix fs corruption when tring to remove a non-empty directory with IO + error + - ext4: make mb_optimize_scan option work with set/unset mount cmd + - ext4: make mb_optimize_scan performance mount option work with extents + - samples/landlock: Fix path_list memory leak + - landlock: Use square brackets around "landlock-ruleset" + - mailbox: tegra-hsp: Flush whole channel + - btrfs: zoned: put block group after final usage + - block: fix rq-qos breakage from skipping rq_qos_done_bio() + - block: limit request dispatch loop duration + - block: don't merge across cgroup boundaries if blkcg is enabled + - drm/edid: check basic audio support on CEA extension block + - fbdev: Hot-unplug firmware fb devices on forced removal + - video: fbdev: sm712fb: Fix crash in smtcfb_read() + - video: fbdev: atari: Atari 2 bpp (STe) palette bugfix + - rfkill: make new event layout opt-in + - ARM: dts: at91: sama7g5: Remove unused properties in i2c nodes + - ARM: dts: at91: sama5d2: Fix PMERRLOC resource size + - ARM: dts: exynos: fix UART3 pins configuration in Exynos5250 + - ARM: dts: exynos: add missing HDMI supplies on SMDK5250 + - ARM: dts: exynos: add missing HDMI supplies on SMDK5420 + - mgag200 fix memmapsl configuration in GCTL6 register + - carl9170: fix missing bit-wise or operator for tx_params + - pstore: Don't use semaphores in always-atomic-context code + - thermal: int340x: Increase bitmap size + - lib/raid6/test: fix multiple definition linking error + - exec: Force single empty string when argv is empty + - crypto: rsa-pkcs1pad - only allow with rsa + - crypto: rsa-pkcs1pad - correctly get hash from source scatterlist + - crypto: rsa-pkcs1pad - restore signature length check + - crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete() + - bcache: fixup multiple threads crash + - PM: domains: Fix sleep-in-atomic bug caused by genpd_debug_remove() + - DEC: Limit PMAX memory probing to R3k systems + - media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC + - media: omap3isp: Use struct_group() for memcpy() region + - media: venus: vdec: fixed possible memory leak issue + - media: venus: hfi_cmds: List HDR10 property as unsupported for v1 and v3 + - media: venus: venc: Fix h264 8x8 transform control + - media: davinci: vpif: fix unbalanced runtime PM get + - media: davinci: vpif: fix unbalanced runtime PM enable + - media: davinci: vpif: fix use-after-free on driver unbind + - mips: Always permit to build u-boot images + - btrfs: zoned: mark relocation as writing + - btrfs: extend locking to all space_info members accesses + - btrfs: verify the tranisd of the to-be-written dirty extent buffer + - xtensa: define update_mmu_tlb function + - xtensa: fix stop_machine_cpuslocked call in patch_text + - xtensa: fix xtensa_wsr always writing 0 + - KVM: s390x: fix SCK locking + - drm/syncobj: flatten dma_fence_chains on transfer + - drm/nouveau/backlight: Fix LVDS backlight detection on some laptops + - drm/nouveau/backlight: Just set all backlight types as RAW + - drm/fb-helper: Mark screen buffers in system memory with FBINFO_VIRTFB + - brcmfmac: firmware: Allocate space for default boardrev in nvram + - brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path + - brcmfmac: pcie: Declare missing firmware files in pcie.c + - brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio + - brcmfmac: pcie: Fix crashes due to early IRQs + - drm/i915/opregion: check port number bounds for SWSCI display power state + - drm/i915/gem: add missing boundary check in vm_access + - PCI: imx6: Allow to probe when dw_pcie_wait_for_link() fails + - PCI: pciehp: Clear cmd_busy bit in polling mode + - PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup" + - PCI: xgene: Revert "PCI: xgene: Fix IB window setup" + - regulator: qcom_smd: fix for_each_child.cocci warnings + - selinux: access superblock_security_struct in LSM blob way + - selinux: check return value of sel_make_avc_files + - crypto: ccp - Ensure psp_ret is always init'd in + __sev_platform_init_locked() + - crypto: qat - fix a signedness bug in get_service_enabled() + - hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER + - crypto: sun8i-ss - really disable hash on A80 + - crypto: kdf - Select hmac in addition to sha256 + - crypto: qat - fix access to PFVF interrupt registers for GEN4 + - crypto: authenc - Fix sleep in atomic context in decrypt_tail + - crypto: octeontx2 - select CONFIG_NET_DEVLINK + - crypto: mxs-dcp - Fix scatterlist processing + - selinux: Fix selinux_sb_mnt_opts_compat() + - thermal: int340x: Check for NULL after calling kmemdup() + - crypto: octeontx2 - remove CONFIG_DM_CRYPT check + - spi: tegra114: Add missing IRQ check in tegra_spi_probe + - spi: tegra210-quad: Fix missin IRQ check in tegra_qspi_probe + - perf: MARVELL_CN10K_TAD_PMU should depend on ARCH_THUNDER + - selftests/sgx: Fix NULL-pointer-dereference upon early test failure + - selftests/sgx: Do not attempt enclave build without valid enclave + - selftests/sgx: Ensure enclave data available during debug print + - stack: Constrain and fix stack offset randomization with Clang builds + - arm64/mm: avoid fixmap race condition when create pud mapping + - security: add sctp_assoc_established hook + - blk-cgroup: set blkg iostat after percpu stat aggregation + - selftests/x86: Add validity check and allow field splitting + - selftests/sgx: Treat CC as one argument + - crypto: rockchip - ECB does not need IV + - block: update io_ticks when io hang + - audit: log AUDIT_TIME_* records only from rules + - EVM: fix the evm= __setup handler return value + - crypto: ccree - don't attempt 0 len DMA mappings + - crypto: hisilicon/sec - fix the aead software fallback for engine + - spi: pxa2xx-pci: Balance reference count for PCI DMA device + - hwmon: (pmbus) Add mutex to regulator ops + - hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING + - nvme: cleanup __nvme_check_ids + - nvme: fix the check for duplicate unique identifiers + - block: don't delete queue kobject before its children + - PM: hibernate: fix __setup handler error handling + - PM: suspend: fix return value of __setup handler + - spi: spi-zynqmp-gqspi: Handle error for dma_set_mask + - hwrng: atmel - disable trng on failure path + - crypto: sun8i-ss - call finalize with bh disabled + - crypto: sun8i-ce - call finalize with bh disabled + - crypto: amlogic - call finalize with bh disabled + - crypto: gemini - call finalize with bh disabled + - crypto: vmx - add missing dependencies + - clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix + - clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts + - clocksource/drivers/timer-microchip-pit64b: Use notrace + - clocksource/drivers/timer-of: Check return value of of_iomap in + timer_of_base_init() + - arm64: prevent instrumentation of bp hardening callbacks + - perf/arm-cmn: Hide XP PUB events for CMN-600 + - perf/arm-cmn: Update watchpoint format + - KEYS: trusted: Fix trusted key backends when building as module + - KEYS: trusted: Avoid calling null function trusted_key_exit + - ACPI: APEI: fix return value of __setup handlers + - crypto: ccp - ccp_dmaengine_unregister release dma channels + - crypto: ccree - Fix use after free in cc_cipher_exit() + - crypto: qat - fix initialization of pfvf cap_msg structures + - crypto: qat - fix initialization of pfvf rts_map_msg structures + - hwrng: nomadik - Change clk_disable to clk_disable_unprepare + - hwmon: (pmbus) Add Vin unit off handling + - clocksource: acpi_pm: fix return value of __setup handler + - io_uring: don't check unrelated req->open.how in accept request + - io_uring: terminate manual loop iterator loop correctly for non-vecs + - watch_queue: Fix NULL dereference in error cleanup + - watch_queue: Actually free the watch + - f2fs: fix to enable ATGC correctly via gc_idle sysfs interface + - sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa + - sched/core: Export pelt_thermal_tp + - sched/sugov: Ignore 'busy' filter when rq is capped by uclamp_max + - sched/uclamp: Fix iowait boost escaping uclamp restriction + - rseq: Remove broken uapi field layout on 32-bit little endian + - perf/core: Fix address filter parser for multiple filters + - perf/x86/intel/pt: Fix address filter config for 32-bit kernel + - sched/fair: Improve consistency of allowed NUMA balance calculations + - f2fs: fix missing free nid in f2fs_handle_failed_inode + - ext4: fix remount with 'abort' option + - nfsd: more robust allocation failure handling in nfsd_file_cache_init + - sched/cpuacct: Fix charge percpu cpuusage + - sched/rt: Plug rt_mutex_setprio() vs push_rt_task() race + - f2fs: fix to avoid potential deadlock + - btrfs: fix unexpected error path when reflinking an inline extent + - iomap: Fix iomap_invalidatepage tracepoint + - fs: erofs: add sanity check for kobject in erofs_unregister_sysfs + - f2fs: fix compressed file start atomic write may cause data corruption + - cifs: use a different reconnect helper for non-cifsd threads + - selftests, x86: fix how check_cc.sh is being invoked + - drivers/base/memory: add memory block to memory group after registration + succeeded + - kunit: make kunit_test_timeout compatible with comment + - pinctrl: samsung: Remove EINT handler for Exynos850 ALIVE and CMGP gpios + - media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size + - media: camss: csid-170: fix non-10bit formats + - media: camss: csid-170: don't enable unused irqs + - media: camss: csid-170: set the right HALT_CMD when disabled + - media: camss: vfe-170: fix "VFE halt timeout" error + - media: staging: media: imx: imx7-mipi-csis: Make subdev name unique + - media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls + - media: mtk-vcodec: potential dereference of null pointer + - media: imx: imx8mq-mipi-csi2: remove wrong irq config write operation + - media: imx: imx8mq-mipi_csi2: fix system resume + - media: bttv: fix WARNING regression on tunerless devices + - media: atmel: atmel-sama7g5-isc: fix ispck leftover + - ASoC: sh: rz-ssi: Drop calling rz_ssi_pio_recv() recursively + - ASoC: codecs: Check for error pointer after calling devm_regmap_init_mmio + - ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting + - ASoC: simple-card-utils: Set sysclk on all components + - memory: tegra20-emc: Correct memory device mask + - media: coda: Fix missing put_device() call in coda_get_vdoa_data + - media: meson: vdec: potential dereference of null pointer + - media: hantro: Fix overfill bottom register field name + - media: ov6650: Fix set format try processing path + - media: v4l: Avoid unaligned access warnings when printing 4cc modifiers + - media: ov5648: Don't pack controls struct + - media: ov2740: identify module after subdev initialisation + - media: aspeed: Correct value for h-total-pixels + - video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to + avoid black screen + - video: fbdev: controlfb: Fix COMPILE_TEST build + - video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe() + - video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe() + - video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name() + - ARM: dts: Fix OpenBMC flash layout label addresses + - ASoC: max98927: add missing header file + - arm64: dts: qcom: sc7280: Fix gmu unit address + - firmware: qcom: scm: Remove reassignment to desc following initializer + - ARM: dts: qcom: ipq4019: fix sleep clock + - soc: qcom: rpmpd: Check for null return of devm_kcalloc + - soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem + - soc: qcom: aoss: Fix missing put_device call in qmp_get + - soc: qcom: aoss: remove spurious IRQF_ONESHOT flags + - arm64: dts: qcom: sdm845: fix microphone bias properties and values + - arm64: dts: qcom: sm8250: fix PCIe bindings to follow schema + - arm64: dts: qcom: msm8916-j5: Fix typo + - arm64: dts: broadcom: bcm4908: use proper TWD binding + - arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc + - arm64: dts: qcom: sm8350: Correct TCS configuration for apps rsc + - arm64: dts: qcom: sm8450: Update cpuidle states parameters + - arm64: dts: qcom: msm8994: Provide missing "xo_board" and "sleep_clk" to GCC + - arm64: dts: qcom: ipq6018: fix usb reference period + - firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not + defined + - soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe + - cpuidle: qcom-spm: Check if any CPU is managed by SPM + - ARM: dts: sun8i: v3s: Move the csi1 block to follow address order + - ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 + - vsprintf: Fix potential unaligned access + - ARM: dts: qcom: sdx55: Fix the address used for PCIe EP local addr space + - ARM: dts: imx: Add missing LVDS decoder on M53Menlo + - media: mexon-ge2d: fixup frames size in registers + - media: video/hdmi: handle short reads of hdmi info frame. + - media: ti-vpe: cal: Fix a NULL pointer dereference in + cal_ctx_v4l2_init_formats() + - media: em28xx: initialize refcount before kref_get + - media: uapi: Init VP9 stateless decode params + - media: usb: go7007: s2250-board: fix leak in probe() + - media: cedrus: H265: Fix neighbour info buffer size + - media: cedrus: h264: Fix neighbour info buffer size + - arm64: dts: ti: k3-j721s2-mcu-wakeup: Fix the interrupt-parent for + wkup_gpioX instances + - ASoC: codecs: rx-macro: fix accessing compander for aux + - ASoC: codecs: rx-macro: fix accessing array out of bounds for enum type + - ASoC: codecs: va-macro: fix accessing array out of bounds for enum type + - ASoC: codecs: wc938x: fix accessing array out of bounds for enum type + - ASoC: codecs: wcd938x: fix kcontrol max values + - ASoC: codecs: wcd934x: fix kcontrol max values + - ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_put + - media: v4l2-core: Initialize h264 scaling matrix + - media: hantro: sunxi: Fix VP9 steps + - media: ov5640: Fix set format, v4l2_mbus_pixelcode not updated + - selftests: vm: remove dependecy from internal kernel macros + - selftests/lkdtm: Add UBSAN config + - vsprintf: Fix %pK with kptr_restrict == 0 + - uaccess: fix nios2 and microblaze get_user_8() + - ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp() + - ASoC: acp: check the return value of devm_kzalloc() in + acp_legacy_dai_links_create() + - soc: mediatek: pm-domains: Add wakeup capacity support in power domain + - mmc: sdhci_am654: Fix the driver data of AM64 SoC + - ASoC: ti: davinci-i2s: Add check for clk_enable() + - ALSA: spi: Add check for clk_enable() + - arm64: dts: ns2: Fix spi-cpol and spi-cpha property + - arm64: dts: broadcom: Fix sata nodename + - printk: fix return value of printk.devkmsg __setup handler + - ASoC: mxs-saif: Handle errors for clk_enable + - ASoC: atmel_ssc_dai: Handle errors for clk_enable + - ASoC: dwc-i2s: Handle errors for clk_enable + - ASoC: soc-compress: prevent the potentially use of null pointer + - media: i2c: Fix pixel array positions in ov8865 + - memory: emif: Add check for setup_interrupts + - memory: emif: check the pointer temp in get_device_details() + - ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction + - arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly + - m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined + - media: stk1160: If start stream fails, return buffers with + VB2_BUF_STATE_QUEUED + - media: vidtv: Check for null return of vzalloc + - ASoC: cs35l41: Fix GPIO2 configuration + - ASoC: cs35l41: Fix max number of TX channels + - ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe + - ASoC: wm8350: Handle error for wm8350_register_irq + - ASoC: fsi: Add check for clk_enable + - video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of + - media: saa7134: fix incorrect use to determine if list is empty + - ivtv: fix incorrect device_caps for ivtvfb + - ASoC: atmel: Fix error handling in snd_proto_probe + - ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in + rockchip_i2s_probe + - ASoC: SOF: Add missing of_node_put() in imx8m_probe + - ASoC: mediatek: mt8192-mt6359: Fix error handling in mt8192_mt6359_dev_probe + - ASoC: rk817: Fix missing clk_disable_unprepare() in rk817_platform_probe + - ASoC: dmaengine: do not use a NULL prepare_slave_config() callback + - ASoC: mxs: Fix error handling in mxs_sgtl5000_probe + - ASoC: fsl_spdif: Disable TX clock when stop + - ASoC: imx-es8328: Fix error return code in imx_es8328_probe() + - ASoC: SOF: Intel: enable DMI L1 for playback streams + - ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in + msm8916_wcd_digital_probe + - mmc: davinci_mmc: Handle error for clk_enable + - rtla/osnoise: Fix osnoise hist stop tracing message + - ASoC: rockchip: Fix PM usage reference of rockchip_i2s_tdm_resume + - ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe + - ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe + - ASoC: mediatek: mt8195: Fix error handling in + mt8195_mt6359_rt1019_rt5682_dev_probe + - ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data + - ASoC: amd: Fix reference to PCM buffer address + - ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS + - ARM: configs: multi_v5_defconfig: re-enable DRM_PANEL and FB_xxx + - drm/bridge: sn65dsi83: Fix an error handling path in sn65dsi83_probe() + - drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops + - drm/meson: Fix error handling when afbcd.ops->init fails + - drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev + - drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe + - drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe + - drm: bridge: adv7511: Fix ADV7535 HPD enablement + - ath11k: add missing of_node_put() to avoid leak + - ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern + - drm/v3d/v3d_drv: Check for error num after setting mask + - Bluetooth: hci_sync: unlock on error in hci_inquiry_result_with_rssi_evt() + - ath11k: free peer for station when disconnect from AP for QCA6390/WCN6855 + - drm/panfrost: Check for error num after setting mask + - bpftool: Fix error check when calling hashmap__new() + - libbpf: Fix possible NULL pointer dereference when destroying skeleton + - bpftool: Only set obj->skeleton on complete success + - ath11k: fix error code in ath11k_qmi_assign_target_mem_chunk() + - udmabuf: validate ubuf->pagecount + - bpf: Fix UAF due to race between btf_try_get_module and load_module + - drm/selftests/test-drm_dp_mst_helper: Fix memory leak in + sideband_msg_req_encode_decode + - drm/locking: fix drm_modeset_acquire_ctx kernel-doc + - selftests: bpf: Fix bind on used port + - Bluetooth: btintel: Fix WBS setting for Intel legacy ROM products + - Bluetooth: hci_serdev: call init_rwsem() before p->open() + - Bluetooth: mt7921s: fix firmware coredump retrieve + - Bluetooth: mt7921s: fix bus hang with wrong privilege + - Bluetooth: btmtksdio: refactor btmtksdio_runtime_[suspend|resume]() + - Bluetooth: mt7921s: fix btmtksdio_[drv|fw]_pmctrl() + - Bluetooth: btmtksdio: mask out interrupt status + - mtd: onenand: Check for error irq + - mtd: rawnand: gpmi: fix controller timings setting + - selftests, xsk: Fix rx_full stats test + - drm/edid: Don't clear formats if using deep color + - drm/edid: Split deep color modes between RGB and YUV444 + - ionic: fix type complaint in ionic_dev_cmd_clean() + - ionic: start watchdog after all is setup + - ionic: Don't send reset commands if FW isn't running + - ionic: fix up printing of timeout error + - ionic: Correctly print AQ errors if completions aren't received + - net: dsa: Move VLAN filtering syncing out of dsa_switch_bridge_leave + - net: dsa: Avoid cross-chip syncing of VLAN filtering + - Bluetooth: hci_event: Fix HCI_EV_VENDOR max_len + - drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl() + - drm/amd/display: Call dc_stream_release for remove link enc assignment + - drm/amd/display: Fix a NULL pointer dereference in + amdgpu_dm_connector_add_common_modes() + - drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function + - net: phy: at803x: move page selection fix to config_init + - selftests/bpf/test_xdp_redirect_multi: use temp netns for testing + - ath9k_htc: fix uninit value bugs + - ath11k: set WMI_PEER_40MHZ while peer assoc for 6 GHz + - RDMA/core: Set MR type in ib_reg_user_mr + - KVM: PPC: Fix vmx/vsx mixup in mmio emulation + - selftests/net: timestamping: Fix bind_phc check + - rtw88: check for validity before using a pointer + - rtw88: fix idle mode flow for hw scan + - rtw88: fix memory overrun and memory leak during hw_scan + - drm/bridge: lt9611: Fix an error handling path in lt9611_probe() + - i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - i40e: respect metadata on XSK Rx to skb + - ice: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ice: respect metadata on XSK Rx to skb + - igc: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ixgbe: pass bi->xdp to ixgbe_construct_skb_zc() directly + - ixgbe: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb + - ixgbe: respect metadata on XSK Rx to skb + - power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe + - ray_cs: Check ioremap return value + - powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch + - KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init + - powerpc/perf: Don't use perf_hw_context for trace IMC PMU + - mt76: connac: fix sta_rec_wtbl tag len + - mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta + mode + - mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv + - mt76: mt76_connac: fix MCU_CE_CMD_SET_ROC definition error + - mt76: mt7921: set EDCA parameters with the MCU CE command + - mt76: mt7921: do not always disable fw runtime-pm + - mt76: mt7921: fix a leftover race in runtime-pm + - mt76: mt7615: fix a leftover race in runtime-pm + - mt76: mt7915: fix ht mcs in mt7915_mac_add_txs_skb() + - mt76: mt7921: fix ht mcs in mt7921_mac_add_txs_skb() + - mt76: mt7921s: fix mt7921s_mcu_[fw|drv]_pmctrl + - mt76: mt7921e: fix possible probe failure after reboot + - mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update + - mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update + - mt76: mt7915: fix possible memory leak in mt7915_mcu_add_sta + - mt76: mt7921s: fix a possible memory leak in mt7921_load_patch + - mt76: mt7915: fix mcs_map in mt7915_mcu_set_sta_he_mcs() + - mt76: mt7915: fix the nss setting in bitrates + - ptp: unregister virtual clocks when unregistering physical clock. + - net: dsa: mv88e6xxx: Enable port policy support on 6097 + - bpf: Fix a btf decl_tag bug when tagging a function + - mac80211: limit bandwidth in HE capabilities + - scripts/dtc: Call pkg-config POSIXly correct + - livepatch: Fix build failure on 32 bits processors + - net: asix: add proper error handling of usb read errors + - i2c: bcm2835: Fix the error handling in 'bcm2835_i2c_probe()' + - mtd: mchp23k256: Add SPI ID table + - mtd: mchp48l640: Add SPI ID table + - selftests/bpf: Extract syscall wrapper + - selftests/bpf: Use "__se_" prefix on architectures without syscall wrapper + - igc: avoid kernel warning when changing RX ring parameters + - igb: refactor XDP registration + - drm/amdgpu: Don't offset by 2 in FRU EEPROM + - PCI: aardvark: Fix reading MSI interrupt number + - PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge + - RDMA/rxe: Check the last packet by RXE_END_MASK + - libbpf: Fix signedness bug in btf_dump_array_data() + - libbpf: Fix riscv register names + - cxl/core: Fix cxl_probe_component_regs() error message + - tools/testing/cxl: Fix root port to host bridge assignment + - cxl/regs: Fix size of CXL Capability Header Register + - Netvsc: Call hv_unmap_memory() in the netvsc_device_remove() + - net:enetc: allocate CBD ring data memory using DMA coherent methods + - libbpf: Fix compilation warning due to mismatched printf format + - rtw88: fix use after free in rtw_hw_scan_update_probe_req() + - drm/bridge: dw-hdmi: use safe format when first in bridge chain + - power: supply: ab8500: Swap max and overvoltage + - libbpf: Fix libbpf.map inheritance chain for LIBBPF_0.7.0 + - libbpf: Use dynamically allocated buffer when receiving netlink messages + - power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init + - HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports + - iommu/ipmmu-vmsa: Check for error num after setting mask + - drm/bridge: anx7625: Fix overflow issue on reading EDID + - ath11k: fix uninitialized rate_idx in ath11k_dp_tx_update_txcompl() + - i2c: pasemi: Drop I2C classes from platform driver variant + - bpftool: Fix the error when lookup in no-btf maps + - drm/amd/pm: enable pm sysfs write for one VF mode + - drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug + - bpftool: Fix pretty print dump for maps without BTF loaded + - libbpf: Fix memleak in libbpf_netlink_recv() + - IB/cma: Allow XRC INI QPs to set their local ACK timeout + - cxl/core/port: Rename bus.c to port.c + - cxl/port: Hold port reference until decoder release + - dax: make sure inodes are flushed before destroy cache + - selftests: mptcp: add csum mib check for mptcp_connect + - iwlwifi: mvm: Don't call iwl_mvm_sta_from_mac80211() with NULL sta + - iwlwifi: mvm: don't iterate unadded vifs when handling FW SMPS req + - iwlwifi: mvm: align locking in D3 test debugfs + - iwlwifi: yoyo: remove DBGI_SRAM address reset writing + - iwlwifi: yoyo: Avoid using dram data if allocation failed + - iwlwifi: mvm: fix off by one in iwl_mvm_stat_iterator_all_macs() + - iwlwifi: Fix -EIO error code that is never returned + - iwlwifi: mvm: Fix an error code in iwl_mvm_up() + - mtd: rawnand: pl353: Set the nand chip node as the flash node + - drm/msm/dp: do not initialize phy until plugin interrupt received + - drm/msm/dp: populate connector of struct dp_panel + - drm/msm/dp: stop link training after link training 2 failed + - drm/msm/dp: always add fail-safe mode into connector mode list + - drm/msm/dsi: Use "ref" fw clock instead of global name for VCO parent + - drm/msm/dsi/phy: fix 7nm v4.0 settings for C-PHY mode + - drm/msm/dpu: add DSPP blocks teardown + - drm/msm/dpu: fix dp audio condition + - drm/msm/dpu: remove msm_dp cached in dpu_encoder_virt + - drm/msm/dp: fix panel bridge attachment + - i40e: remove dead stores on XSK hotpath + - ath11k: Invalidate cached reo ring entry before accessing it + - mips: Enable KCSAN + - dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS + - vfio/pci: fix memory leak during D3hot to D0 transition + - vfio/pci: wake-up devices around reset functions + - scsi: fnic: Fix a tracing statement + - scsi: pm8001: Fix command initialization in pm80XX_send_read_log() + - scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req() + - scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config() + - scsi: pm8001: Fix le32 values handling in + pm80xx_set_sas_protocol_timer_config() + - scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update() + - scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req() + - scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req() + - scsi: pm8001: Fix NCQ NON DATA command task initialization + - scsi: pm8001: Fix NCQ NON DATA command completion handling + - scsi: pm8001: Fix abort all task initialization + - mt76: do not always copy ethhdr in reverse_frag0_hdr_trans + - mt76: fix endianness errors in reverse_frag0_hdr_trans + - mt76: mt7921s: fix missing fc type/sub-type for 802.11 pkts + - net: dsa: realtek-smi: fix kdoc warnings + - net: dsa: realtek-smi: move to subdirectory + - RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR + - drm/amd/display: Remove vupdate_int_entry definition + - TOMOYO: fix __setup handlers return values + - power: supply: sbs-charger: Don't cancel work that is not initialized + - mt76: mt7915: enlarge wcid size to 544 + - mt76: mt7915: fix the muru tlv issue + - drm/dp: Fix OOB read when handling Post Cursor2 register + - ext2: correct max file size computing + - drm/tegra: Fix reference leak in tegra_dsi_ganged_probe + - power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false + return + - scsi: hisi_sas: Change permission of parameter prot_mask + - drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt + - bpf, arm64: Call build_prologue() first in first JIT pass + - bpf, arm64: Feed byte-offset into bpf line info + - xsk: Fix race at socket teardown + - RDMA/irdma: Fix netdev notifications for vlan's + - RDMA/irdma: Fix Passthrough mode in VM + - RDMA/irdma: Remove incorrect masking of PD + - libbpf: Fix BPF_MAP_TYPE_PERF_EVENT_ARRAY auto-pinning + - gpu: host1x: Fix an error handling path in 'host1x_probe()' + - gpu: host1x: Fix a memory leak in 'host1x_remove()' + - libbpf: Skip forward declaration when counting duplicated type names + - powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties() + - powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit + - KVM: x86: Fix emulation in writing cr8 + - KVM: x86/emulator: Defer not-present segment check in + __load_segment_descriptor() + - KVM: SVM: Exit to userspace on ENOMEM/EFAULT GHCB errors + - hv_balloon: rate-limit "Unhandled message" warning + - KVM: arm64: Enable Cortex-A510 erratum 2077057 by default + - i2c: xiic: Make bus names unique + - net: phy: micrel: Fix concurrent register access + - Bluetooth: hci_sync: fix undefined return of hci_disconnect_all_sync() + - Bluetooth: Fix skb allocation in mgmt_remote_name() & + mgmt_device_connected() + - power: supply: wm8350-power: Handle error for wm8350_register_irq + - power: supply: wm8350-power: Add missing free in free_charger_irq + - IB/hfi1: Allow larger MTU without AIP + - RDMA/core: Fix ib_qp_usecnt_dec() called when error + - PCI: Reduce warnings on possible RW1C corruption + - net: axienet: fix RX ring refill allocation failure handling + - drm/msm/a6xx: Fix missing ARRAY_SIZE() check + - mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n + - MIPS: Sanitise Cavium switch cases in TLB handler synthesizers + - powerpc/sysdev: fix incorrect use to determine if list is empty + - powerpc/64s: Don't use DSISR for SLB faults + - mfd: mc13xxx: Add check for mc13xxx_irq_request + - libbpf: Unmap rings when umem deleted + - selftests/bpf: Make test_lwt_ip_encap more stable and faster + - platform/x86: huawei-wmi: check the return value of device_create_file() + - scsi: mpt3sas: Fix incorrect 4GB boundary check + - powerpc: 8xx: fix a return value error in mpc8xx_pic_init + - xtensa: add missing XCHAL_HAVE_WINDOWED check + - iwlwifi: pcie: fix SW error MSI-X mapping + - vxcan: enable local echo for sent CAN frames + - ath10k: Fix error handling in ath10k_setup_msa_resources + - mips: cdmm: Fix refcount leak in mips_cdmm_phys_base + - MIPS: RB532: fix return value of __setup handler + - MIPS: pgalloc: fix memory leak caused by pgd_free() + - mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init + - power: ab8500_chargalg: Use CLOCK_MONOTONIC + - RDMA/irdma: Prevent some integer underflows + - Revert "RDMA/core: Fix ib_qp_usecnt_dec() called when error" + - RDMA/mlx5: Fix memory leak in error flow for subscribe event routine + - bpf, sockmap: Fix memleak in sk_psock_queue_msg + - bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full + - bpf, sockmap: Fix more uncharged while msg has more_data + - bpf, sockmap: Fix double uncharge the mem of sk_msg + - samples/bpf, xdpsock: Fix race when running for fix duration of time + - USB: storage: ums-realtek: fix error code in rts51x_read_mem() + - drm/amd/display: Fix double free during GPU reset on DC streams + - RDMA/rxe: Change variable and function argument to proper type + - RDMA/rxe: Fix ref error in rxe_av.c + - powerpc/xive: fix return value of __setup handler + - powerpc/time: Fix KVM host re-arming a timer beyond decrementer range + - drm/i915/display: Fix HPD short pulse handling for eDP + - drm/i915/display: Do not re-enable PSR after it was marked as not reliable + - netfilter: flowtable: Fix QinQ and pppoe support for inet table + - mt76: mt7921: fix mt7921_queues_acq implementation + - can: isotp: return -EADDRNOTAVAIL when reading from unbound socket + - can: isotp: support MSG_TRUNC flag when reading from socket + - bareudp: use ipv6_mod_enabled to check if IPv6 enabled + - PCI: imx6: Invoke the PHY exit function after PHY power off + - PCI: imx6: Assert i.MX8MM CLKREQ# even if no device present + - ibmvnic: fix race between xmit and reset + - af_unix: Fix some data-races around unix_sk(sk)->oob_skb. + - selftests/bpf: Fix error reporting from sock_fields programs + - Bluetooth: hci_uart: add missing NULL check in h5_enqueue + - Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed + - Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt + - RDMA/nldev: Prevent underflow in nldev_stat_set_counter_dynamic_doit() + - ipv4: Fix route lookups when handling ICMP redirects and PMTU updates + - mptcp: Fix crash due to tcp_tsorted_anchor was initialized before release + skb + - af_netlink: Fix shift out of bounds in group mask calculation + - i2c: meson: Fix wrong speed use from probe + - netfilter: conntrack: Add and use nf_ct_set_auto_assign_helper_warned() + - i2c: mux: demux-pinctrl: do not deactivate a master that is not active + - powerpc/pseries: Fix use after free in remove_phb_dynamic() + - ax25: Fix refcount leaks caused by ax25_cb_del() + - ax25: Fix NULL pointer dereferences in ax25 timers + - drm/i915: Fix renamed struct field + - selftests/bpf/test_lirc_mode2.sh: Exit with proper code + - bpftool: Fix print error when show bpf map + - PCI: Avoid broken MSI on SB600 USB devices + - net: bcmgenet: Use stronger register read/writes to assure ordering + - tcp: ensure PMTU updates are processed during fastopen + - openvswitch: always update flow key after nat + - net: dsa: fix panic on shutdown if multi-chip tree failed to probe + - net: wwan: qcom_bam_dmux: fix wrong pointer passed to IS_ERR() + - tipc: fix the timer expires after interval 100ms + - mfd: asic3: Add missing iounmap() on error asic3_mfd_probe + - ice: fix 'scheduling while atomic' on aux critical err interrupt + - ice: don't allow to run ice_send_event_to_aux() in atomic ctx + - drivers: ethernet: cpsw: fix panic when interrupt coaleceing is set via + ethtool + - kernel/resource: fix kfree() of bootmem memory again + - clk: renesas: r9a07g044: Update multiplier and divider values for PLL2/3 + - staging: r8188eu: release_firmware is not called if allocation fails + - mxser: fix xmit_buf leak in activate when LSR == 0xff + - fsi: scom: Fix error handling + - fsi: scom: Remove retries in indirect scoms + - pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() + - pps: clients: gpio: Propagate return value from pps_gpio_probe + - fsi: Aspeed: Fix a potential double free + - misc: alcor_pci: Fix an error handling path + - cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse + - soundwire: intel: fix wrong register name in intel_shim_wake + - clk: qcom: ipq8074: fix PCI-E clock oops + - dmaengine: idxd: restore traffic class defaults after wq reset + - iio: mma8452: Fix probe failing when an i2c_device_id is used + - staging: qlge: add unregister_netdev in qlge_probe + - serial: 8250_aspeed_vuart: add PORT_ASPEED_VUART port type + - staging:iio:adc:ad7280a: Fix handing of device address bit reversing. + - clk: renesas: r8a779f0: Fix RSW2 clock divider + - pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel + - pinctrl: renesas: checker: Fix miscalculation of number of states + - clk: qcom: ipq8074: Use floor ops for SDCC1 clock + - phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) + - phy: phy-brcm-usb: fixup BCM4908 support + - serial: 8250_mid: Balance reference count for PCI DMA device + - serial: 8250_lpss: Balance reference count for PCI DMA device + - NFS: Use of mapping_set_error() results in spurious errors + - serial: 8250: Fix race condition in RTS-after-send handling + - iio: adc: Add check for devm_request_threaded_irq + - habanalabs: Add check for pci_enable_device + - NFS: Return valid errors from nfs2/3_decode_dirent() + - staging: r8188eu: fix endless loop in recv_func + - dma-debug: fix return value of __setup handlers + - clk: imx7d: Remove audio_mclk_root_clk + - clk: imx: off by one in imx_lpcg_parse_clks_from_dt() + - clk: at91: sama7g5: fix parents of PDMCs' GCLK + - clk: qcom: clk-rcg2: Update logic to calculate D value for RCG + - clk: qcom: clk-rcg2: Update the frac table for pixel clock + - clk: starfive: jh7100: Don't round divisor up twice + - clk: starfive: jh7100: Handle audio_div clock properly + - dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma + - remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region + - remoteproc: qcom_wcnss: Add missing of_node_put() in + wcnss_alloc_memory_region + - remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region + - nvdimm/region: Fix default alignment for small regions + - clk: actions: Terminate clk_div_table with sentinel element + - clk: loongson1: Terminate clk_div_table with sentinel element + - clk: hisilicon: Terminate clk_div_table with sentinel element + - clk: clps711x: Terminate clk_div_table with sentinel element + - clk: Fix clk_hw_get_clk() when dev is NULL + - clk: tegra: tegra124-emc: Fix missing put_device() call in + emc_ensure_emc_driver + - mailbox: imx: fix crash in resume on i.mx8ulp + - NFS: remove unneeded check in decode_devicenotify_args() + - staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree + - staging: mt7621-dts: fix formatting + - staging: mt7621-dts: fix pinctrl properties for ethernet + - staging: mt7621-dts: fix GB-PC2 devicetree + - pinctrl: ocelot: fix confops resource index + - pinctrl: ocelot: fix duplicate debugfs entry + - pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init + - pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback + - pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get() + - pinctrl: mediatek: paris: Fix pingroup pin config state readback + - pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual + GPIOs + - pinctrl: ocelot: Fix interrupt parsing + - pinctrl: microchip-sgpio: lock RMW access + - pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe + - pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe + - clk: visconti: prevent array overflow in visconti_clk_register_gates() + - tty: hvc: fix return value of __setup handler + - kgdboc: fix return value of __setup handler + - serial: 8250: fix XOFF/XON sending when DMA is used + - virt: acrn: obtain pa from VMA with PFNMAP flag + - virt: acrn: fix a memory leak in acrn_dev_ioctl() + - kgdbts: fix return value of __setup handler + - firmware: google: Properly state IOMEM dependency + - driver core: dd: fix return value of __setup handler + - perf test arm64: Test unwinding using fame-pointer (fp) mode + - jfs: fix divide error in dbNextAG + - SUNRPC/call_alloc: async tasks mustn't block waiting for memory + - SUNRPC: improve 'swap' handling: scheduling and PF_MEMALLOC + - SUNRPC: Don't call connect() more than once on a TCP socket + - perf parse-events: Move slots only with topdown + - netfilter: egress: Report interface as outgoing + - netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options + - SUNRPC don't resend a task on an offlined transport + - NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error + - kdb: Fix the putarea helper function + - perf stat: Fix forked applications enablement of counters + - net: stmmac: dwmac-qcom-ethqos: Enable RGMII functional clock on resume + - clk: qcom: gcc-msm8994: Fix gpll4 width + - vsock/virtio: initialize vdev->priv before using VQs + - vsock/virtio: read the negotiated features before using VQs + - vsock/virtio: enable VQs early on probe + - clk: Initialize orphan req_rate + - xen: fix is_xen_pmu() + - net: enetc: report software timestamping via SO_TIMESTAMPING + - net: hns3: fix bug when PF set the duplicate MAC address for VFs + - net: hns3: fix port base vlan add fail when concurrent with reset + - net: hns3: add vlan list lock to protect vlan list + - net: hns3: refine the process when PF set VF VLAN + - net: phy: broadcom: Fix brcm_fet_config_init() + - selftests: test_vxlan_under_vrf: Fix broken test case + - NFS: Don't loop forever in nfs_do_recoalesce() + - libperf tests: Fix typo in perf_evlist__open() failure error messages + - net: hns3: fix ethtool tx copybreak buf size indicating not aligned issue + - net: hns3: add max order judgement for tx spare buffer + - net: hns3: clean residual vf config after disable sriov + - net: hns3: add netdev reset check for hns3_set_tunable() + - net: hns3: add NULL pointer check for hns3_set/get_ringparam() + - net: hns3: fix phy can not link up when autoneg off and reset + - net: sparx5: depends on PTP_1588_CLOCK_OPTIONAL + - qlcnic: dcb: default to returning -EOPNOTSUPP + - net/x25: Fix null-ptr-deref caused by x25_disconnect + - net: sparx5: switchdev: fix possible NULL pointer dereference + - octeontx2-af: initialize action variable + - selftests: tls: skip cmsg_to_pipe tests with TLS=n + - net/sched: act_ct: fix ref leak when switching zones + - NFSv4/pNFS: Fix another issue with a list iterator pointing to the head + - net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator + - fs: fd tables have to be multiples of BITS_PER_LONG + - lib/test: use after free in register_test_dev_kmod() + - fs: fix fd table size alignment properly + - LSM: general protection fault in legacy_parse_param + - regulator: rpi-panel: Handle I2C errors/timing to the Atmel + - crypto: hisilicon/qm - cleanup warning in qm_vf_read_qos + - crypto: octeontx2 - CN10K CPT to RNM workaround + - gcc-plugins/stackleak: Exactly match strings instead of prefixes + - rcu: Kill rnp->ofl_seq and use only rcu_state.ofl_lock for exclusion + - pinctrl: npcm: Fix broken references to chip->parent_device + - rcu: Mark writes to the rcu_segcblist structure's ->flags field + - block: throttle split bio in case of iops limit + - memstick/mspro_block: fix handling of read-only devices + - block/bfq_wf2q: correct weight to ioprio + - crypto: xts - Add softdep on ecb + - crypto: hisilicon/sec - not need to enable sm4 extra mode at HW V3 + - block, bfq: don't move oom_bfqq + - selinux: use correct type for context length + - powercap/dtpm_cpu: Reset per_cpu variable in the release function + - arm64: module: remove (NOLOAD) from linker script + - selinux: allow FIOCLEX and FIONCLEX with policy capability + - loop: use sysfs_emit() in the sysfs xxx show() + - Fix incorrect type in assignment of ipv6 port for audit + - irqchip/qcom-pdc: Fix broken locking + - irqchip/nvic: Release nvic_base upon failure + - fs/binfmt_elf: Fix AT_PHDR for unusual ELF files + - hwrng: cavium - fix NULL but dereferenced coccicheck error + - bfq: fix use-after-free in bfq_dispatch_request + - ACPICA: Avoid walking the ACPI Namespace if it is not there + - ACPI / x86: Add skip i2c clients quirk for Nextbook Ares 8 + - ACPI / x86: Add skip i2c clients quirk for Lenovo Yoga Tablet 1050F/L + - lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3 + - Revert "Revert "block, bfq: honor already-setup queue merges"" + - ACPI/APEI: Limit printable size of BERT table data + - PM: core: keep irq flags in device_pm_check_callbacks() + - parisc: Fix non-access data TLB cache flush faults + - parisc: Fix handling off probe non-access faults + - nvme-tcp: lockdep: annotate in-kernel sockets + - spi: tegra20: Use of_device_get_match_data() + - spi: fsi: Implement a timeout for polling status + - atomics: Fix atomic64_{read_acquire,set_release} fallbacks + - locking/lockdep: Iterate lock_classes directly when reading lockdep files + - ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb + - ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit + - sched/tracing: Report TASK_RTLOCK_WAIT tasks as TASK_UNINTERRUPTIBLE + - ext4: don't BUG if someone dirty pages without asking ext4 first + - f2fs: fix to do sanity check on curseg->alloc_type + - NFSD: Fix nfsd_breaker_owns_lease() return values + - f2fs: don't get FREEZE lock in f2fs_evict_inode in frozen fs + - btrfs: harden identification of a stale device + - btrfs: make search_csum_tree return 0 if we get -EFBIG + - btrfs: handle csum lookup errors properly on reads + - btrfs: do not double complete bio on errors during compressed reads + - btrfs: do not clean up repair bio if submit fails + - f2fs: use spin_lock to avoid hang + - f2fs: compress: fix to print raw data size in error path of lz4 + decompression + - Adjust cifssb maximum read size + - ntfs: add sanity check on allocation size + - media: staging: media: zoran: move videodev alloc + - media: staging: media: zoran: calculate the right buffer number for + zoran_reap_stat_com + - media: staging: media: zoran: fix various V4L2 compliance errors + - media: atmel: atmel-isc-base: report frame sizes as full supported range + - media: ir_toy: free before error exiting + - ASoC: sh: rz-ssi: Make the data structures available before registering the + handlers + - ASoC: cs42l42: Report full jack status when plug is detected + - ASoC: SOF: Intel: match sdw version on link_slaves_found + - media: imx-jpeg: Prevent decoding NV12M jpegs into single-planar buffers + - ASoC: SOF: Intel: hda: Remove link assignment limitation + - media: iommu/mediatek-v1: Free the existed fwspec if the master dev already + has + - media: iommu/mediatek: Return ENODEV if the device is NULL + - media: iommu/mediatek: Add device_link between the consumer and the larb + devices + - video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow + - video: fbdev: w100fb: Reset global state + - video: fbdev: cirrusfb: check pixclock to avoid divide by zero + - video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit + - ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960 + - ARM: dts: bcm2837: Add the missing L1/L2 cache information + - ASoC: madera: Add dependencies on MFD + - media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator + off on some boards + - media: atomisp: fix dummy_ptr check to avoid duplicate active_bo + - ARM: ftrace: avoid redundant loads or clobbering IP + - ALSA: hda: Fix driver index handling at re-binding + - ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk + - arm64: defconfig: build imx-sdma as a module + - video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf() + - video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of + snprintf() + - video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit + - ARM: dts: bcm2711: Add the missing L1/L2 cache information + - ASoC: soc-core: skip zero num_dai component in searching dai name + - ASoC: Intel: sof_es8336: add quirk for Huawei D15 2021 + - media: imx-jpeg: fix a bug of accessing array out of bounds + - media: cx88-mpeg: clear interrupt status register before streaming video + - ASoC: rt5682s: Fix the wrong jack type detected + - ARM: tegra: transformer: Drop reg-shift for Tegra HS UART + - uaccess: fix type mismatch warnings from access_ok() + - lib/test_lockup: fix kernel pointer check for separate address spaces + - ARM: tegra: tamonten: Fix I2C3 pad setting + - ARM: mmp: Fix failure to remove sram device + - ASoC: amd: vg: fix for pm resume callback sequence + - ASoC: amd: vangogh: fix uninitialized symbol warning in machine driver + - video: fbdev: sm712fb: Fix crash in smtcfb_write() + - media: i2c: ov5648: Fix lockdep error + - media: Revert "media: em28xx: add missing em28xx_close_extension" + - media: hdpvr: initialize dev->worker at hdpvr_register_videodev + - ASoC: SOF: debug: clarify operator precedence + - ASoC: Intel: sof_sdw: fix quirks for 2022 HP Spectre x360 13" + - ASoC: SOF: Intel: hda: retrieve DMIC number for I2S boards + - ALSA: intel-nhlt: add helper to detect SSP link mask + - ALSA: intel-dsp-config: add more ACPI HIDs for ES83x6 devices + - ASoC: Intel: soc-acpi: add more ACPI HIDs for ES83x6 devices + - ALSA: intel-dspconfig: add ES8336 support for CNL + - ASoC: Intel: Revert "ASoC: Intel: sof_es8336: add quirk for Huawei D15 2021" + - ASoC: Intel: sof_es8336: log all quirks + - tracing: Have TRACE_DEFINE_ENUM affect trace event types as well + - mmc: host: Return an error when ->enable_sdio_irq() ops is missing + - ASoC: mediatek: Fix error handling in mt8183_da7219_max98357_dev_probe + - media: atomisp: fix bad usage at error handling logic + - ALSA: hda/realtek: Add alc256-samsung-headphone fixup + - KVM: SVM: Allow AVIC support on system w/ physical APIC ID > 255 + - KVM: x86: Reinitialize context if host userspace toggles EFER.LME + - KVM: x86/mmu: Use common TDP MMU zap helper for MMU notifier unmap hook + - KVM: x86/mmu: Move "invalid" check out of kvm_tdp_mmu_get_root() + - KVM: x86/mmu: Zap _all_ roots when unmapping gfn range in TDP MMU + - KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU + - KVM: x86: hyper-v: Drop redundant 'ex' parameter from kvm_hv_send_ipi() + - KVM: x86: hyper-v: Drop redundant 'ex' parameter from kvm_hv_flush_tlb() + - KVM: x86: hyper-v: Fix the maximum number of sparse banks for XMM fast TLB + flush hypercalls + - KVM: x86: hyper-v: HVCALL_SEND_IPI_EX is an XMM fast hypercall + - powerpc/kasan: Fix early region not updated correctly + - powerpc/tm: Fix more userspace r13 corruption + - powerpc/lib/sstep: Fix 'sthcx' instruction + - powerpc/lib/sstep: Fix build errors with newer binutils + - powerpc: Add set_memory_{p/np}() and remove set_memory_attr() + - powerpc: Fix build errors with newer binutils + - drm/dp: Fix off-by-one in register cache size + - drm/i915: Treat SAGV block time 0 as SAGV disabled + - drm/i915: Fix PSF GV point mask when SAGV is not possible + - drm/i915: Reject unsupported TMDS rates on ICL+ + - scsi: qla2xxx: Refactor asynchronous command initialization + - scsi: qla2xxx: Implement ref count for SRB + - scsi: qla2xxx: Fix stuck session in gpdb + - scsi: qla2xxx: Fix warning message due to adisc being flushed + - scsi: qla2xxx: Fix scheduling while atomic + - scsi: qla2xxx: Fix premature hw access after PCI error + - scsi: qla2xxx: Fix wrong FDMI data for 64G adapter + - scsi: qla2xxx: Fix warning for missing error code + - scsi: qla2xxx: Fix device reconnect in loop topology + - scsi: qla2xxx: edif: Fix clang warning + - scsi: qla2xxx: Fix T10 PI tag escape and IP guard options for 28XX adapters + - scsi: qla2xxx: Add devids and conditionals for 28xx + - scsi: qla2xxx: Check for firmware dump already collected + - scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair() + - scsi: qla2xxx: Fix disk failure to rediscover + - scsi: qla2xxx: Fix incorrect reporting of task management failure + - scsi: qla2xxx: Fix hang due to session stuck + - scsi: qla2xxx: Fix laggy FC remote port session recovery + - scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests + - scsi: qla2xxx: Fix crash during module load unload test + - scsi: qla2xxx: Fix N2N inconsistent PLOGI + - scsi: qla2xxx: Fix stuck session of PRLI reject + - scsi: qla2xxx: Reduce false trigger to login + - scsi: qla2xxx: Use correct feature type field during RFF_ID processing + - platform: chrome: Split trace include file + - MIPS: crypto: Fix CRC32 code + - KVM: x86: Check lapic_in_kernel() before attempting to set a SynIC irq + - KVM: x86: Avoid theoretical NULL pointer dereference in + kvm_irq_delivery_to_apic_fast() + - KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated + - KVM: x86/mmu: do compare-and-exchange of gPTE via the user address + - KVM: Prevent module exit until all VMs are freed + - KVM: x86: fix sending PV IPI + - KVM: SVM: fix panic on out-of-bounds guest IRQ + - KVM: avoid double put_page with gfn-to-pfn cache + - ubifs: rename_whiteout: Fix double free for whiteout_ui->data + - ubifs: Fix deadlock in concurrent rename whiteout and inode writeback + - ubifs: Add missing iput if do_tmpfile() failed in rename whiteout + - ubifs: Rename whiteout atomically + - ubifs: Fix 'ui->dirty' race between do_tmpfile() and writeback work + - ubifs: Rectify space amount budget for mkdir/tmpfile operations + - ubifs: setflags: Make dirtied_ino_d 8 bytes aligned + - ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock() + - ubifs: Fix to add refcount once page is set private + - ubifs: rename_whiteout: correct old_dir size computing + - nvme: allow duplicate NSIDs for private namespaces + - nvme: fix the read-only state for zoned namespaces with unsupposed features + - wireguard: queueing: use CFI-safe ptr_ring cleanup function + - wireguard: socket: free skb in send6 when ipv6 is disabled + - wireguard: socket: ignore v6 endpoints when ipv6 is disabled + - XArray: Fix xas_create_range() when multi-order entry present + - can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path + - can: mcba_usb: properly check endpoint type + - can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value + - XArray: Include bitmap.h from xarray.h + - XArray: Update the LRU list in xas_split() + - modpost: restore the warning message for missing symbol versions + - rtc: gamecube: Fix refcount leak in gamecube_rtc_read_offset_from_sram + - rtc: check if __rtc_read_time was successful + - loop: fix ioctl calls using compat_loop_info + - gfs2: gfs2_setattr_size error path fix + - gfs2: Fix gfs2_file_buffered_write endless loop workaround + - gfs2: Make sure FITRIM minlen is rounded up to fs block size + - net: hns3: fix the concurrency between functions reading debugfs + - net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware + - rxrpc: fix some null-ptr-deref bugs in server_key.c + - rxrpc: Fix call timer start racing with call destruction + - mailbox: imx: fix wakeup failure from freeze mode + - crypto: x86/poly1305 - Fixup SLS + - crypto: arm/aes-neonbs-cbc - Select generic cbc and aes + - watch_queue: Free the page array when watch_queue is dismantled + - pinctrl: pinconf-generic: Print arguments for bias-pull-* + - watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function + - net: sparx5: uses, depends on BRIDGE or !BRIDGE + - pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR() + - pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() + - ASoC: rockchip: i2s_tdm: Fixup config for SND_SOC_DAIFMT_DSP_A/B + - ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs + - ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl + - ARM: iop32x: offset IRQ numbers by 1 + - block: Fix the maximum minor value is blk_alloc_ext_minor() + - block: restore the old set_task_ioprio() behaviour wrt PF_EXITING + - Revert "virtio-pci: harden INTX interrupts" + - Revert "virtio_pci: harden MSI-X interrupts" + - virtio: use virtio_device_ready() in virtio_device_restore() + - io_uring: remove poll entry from list when canceling all + - io_uring: bump poll refs to full 31-bits + - io_uring: fix memory leak of uid in files registration + - riscv module: remove (NOLOAD) + - ACPI: CPPC: Avoid out of bounds access when parsing _CPC data + - vhost: handle error while adding split ranges to iotlb + - spi: Fix Tegra QSPI example + - platform/chrome: cros_ec_typec: Check for EC device + - platform/x86: asus-wmi: Fix regression when probing for fan curve control + - can: isotp: restore accidentally removed MSG_PEEK feature + - proc: bootconfig: Add null pointer check + - x86/fpu/xstate: Fix the ARCH_REQ_XCOMP_PERM implementation + - x86/sev: Unroll string mmio with CC_ATTR_GUEST_UNROLL_STRING_IO + - drm/connector: Fix typo in documentation + - scsi: qla2xxx: Add qla2x00_async_done() for async routines + - staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet + - docs: fix 'make htmldocs' warning in SCTP.rst + - arm64: mm: Drop 'const' from conditional arm64_dma_phys_limit definition + - ASoC: soc-compress: Change the check for codec_dai + - KVM: x86: SVM: fix avic spec based definitions again + - ax25: fix UAF bug in ax25_send_control() + - Reinstate some of "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" + - tracing: Have type enum modifications copy the strings + - mips: Enable KCSAN - take 2 + - net: add skb_set_end_offset() helper + - mm/mmap: return 1 from stack_guard_gap __setup() handler + - ARM: 9187/1: JIVE: fix return value of __setup handler + - mm/memcontrol: return 1 from cgroup.memory __setup() handler + - mm/usercopy: return 1 from hardened_usercopy __setup() handler + - af_unix: Support POLLPRI for OOB. + - libbpf: Define BTF_KIND_* constants in btf.h to avoid compilation errors + - bpf: Adjust BPF stack helper functions to accommodate skip > 0 + - bpf: Fix comment for helper bpf_current_task_under_cgroup() + - nbd: fix possible overflow on 'first_minor' in nbd_dev_add() + - mmc: rtsx: Use pm_runtime_{get,put}() to handle runtime PM + - dt-bindings: mtd: nand-controller: Fix the reg property description + - dt-bindings: mtd: nand-controller: Fix a comment in the examples + - dt-bindings: spi: mxic: The interrupt property is not mandatory + - media: dt-binding: media: hynix,hi846: use $defs/port-base port description + - media: dt-bindings: media: hynix,hi846: add link-frequencies description + - dt-bindings: memory: mtk-smi: Rename clock to clocks + - dt-bindings: memory: mtk-smi: No need mediatek,larb-id for mt8167 + - dt-bindings: memory: mtk-smi: Correct minItems to 2 for the gals clocks + - dt-bindings: pinctrl: mt8195: fix bias-pull-{up,down} checks + - dt-bindings: pinctrl: pinctrl-microchip-sgpio: Fix example + - ubi: fastmap: Return error code if memory allocation fails in add_aeb() + - net: preserve skb_end_offset() in skb_unclone_keeptruesize() + - ASoC: SOF: Intel: Fix build error without SND_SOC_SOF_PCI_DEV + - ASoC: topology: Allow TLV control to be either read or write + - perf vendor events: Update metrics for SkyLake Server + - media: ov6650: Add try support to selection API operations + - media: ov6650: Fix crop rectangle affected by set format + - pinctrl: canonical rsel resistance selection property + - spi: mediatek: support tick_delay without enhance_timing + - ARM: dts: spear1340: Update serial node properties + - ARM: dts: spear13xx: Update SPI dma properties + - arm64: dts: ls1043a: Update i2c dma properties + - arm64: dts: ls1046a: Update i2c node dma properties + - um: Fix uml_mconsole stop/go + - docs: sysctl/kernel: add missing bit to panic_print + - xsk: Do not write NULL in SW ring at allocation failure + - ice: xsk: Fix indexing in ice_tx_xsk_pool() + - vdpa/mlx5: Avoid processing works if workqueue was destroyed + - openvswitch: Fixed nd target mask field in the flow dump. + - torture: Make torture.sh help message match reality + - n64cart: convert bi_disk to bi_bdev->bd_disk fix build + - Revert "nbd: fix possible overflow on 'first_minor' in nbd_dev_add()" + - mmc: rtsx: Let MMC core handle runtime PM + - mmc: rtsx: Fix build errors/warnings for unused variable + - coredump: Snapshot the vmas in do_coredump + - coredump: Remove the WARN_ON in dump_vma_snapshot + - coredump/elf: Pass coredump_params into fill_note_info + - coredump: Use the vma snapshot in fill_files_note + - Linux 5.17.2 + + * Jammy update: v5.17.1 upstream stable release (LP: #1968982) + - tpm: Fix error handling in async work + - Bluetooth: btusb: Add another Realtek 8761BU + - llc: fix netdevice reference leaks in llc_ui_bind() + - ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call + - ALSA: oss: Fix PCM OSS buffer allocation overflow + - ALSA: usb-audio: add mapping for new Corsair Virtuoso SE + - ALSA: hda/realtek: Add quirk for Clevo NP70PNJ + - ALSA: hda/realtek: Add quirk for Clevo NP50PNJ + - ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671 + - ALSA: hda/realtek: Add quirk for ASUS GA402 + - ALSA: pcm: Fix races among concurrent hw_params and hw_free calls + - ALSA: pcm: Fix races among concurrent read/write and buffer changes + - ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls + - ALSA: pcm: Fix races among concurrent prealloc proc writes + - ALSA: pcm: Add stream lock during PCM reset ioctl operations + - ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB + - ALSA: cmipci: Restore aux vol on suspend/resume + - ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec + - drivers: net: xgene: Fix regression in CRC stripping + - netfilter: nf_tables: initialize registers in nft_do_chain() + - netfilter: nf_tables: validate registers coming from userspace. + - ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board + - ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3 + - ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU + - crypto: qat - disable registration of algorithms + - Bluetooth: btusb: Add one more Bluetooth part for the Realtek RTL8852AE + - Bluetooth: hci_sync: Add a new quirk to skip HCI_FLT_CLEAR_ALL + - Bluetooth: btusb: Use quirk to skip HCI_FLT_CLEAR_ALL on fake CSR + controllers + - Revert "ath: add support for special 0x0 regulatory domain" + - drm/virtio: Ensure that objs is not NULL in virtio_gpu_array_put_free() + - jbd2: fix use-after-free of transaction_t race + - rcu: Don't deboost before reporting expedited quiescent state + - uaccess: fix integer overflow on access_ok() + - mac80211: fix potential double free on mesh join + - tpm: fix reference counting for struct tpm_chip + - tpm: use try_get_ops() in tpm-space.c + - wcn36xx: Differentiate wcn3660 from wcn3620 + - m68k: fix access_ok for coldfire + - nds32: fix access_ok() checks in get/put_user + - drm/msm/gpu: Fix crash on devices without devfreq support (v2) + - llc: only change llc->dev when bind() succeeds + - Linux 5.17.1 + + * Miscellaneous Ubuntu changes + - SAUCE: shiftfs: always rely on init_user_ns + - [Config] update configs and annotations after stable updates + - SAUCE: sfc: The size of the RX recycle ring should be more flexible + - [Packaging] remove references to lowlatency flavor + + -- Andrea Righi Thu, 14 Apr 2022 08:45:40 +0200 + +linux-unstable (5.17.0-6.6) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-6.6 -proposed tracker (LP: #1965731) + + * dependency on crda obsolete according to Debian (LP: #1958918) + - [Packaging] switch dependency from crda to wireless-regdb + + * Miscellaneous Ubuntu changes + - [Config] disable CONFIG_SYSFB_SIMPLEFB on amd64 + + [ Upstream Kernel Changes ] + + * Rebase to v5.17 + + -- Andrea Righi Mon, 21 Mar 2022 09:46:03 +0100 + +linux-unstable (5.17.0-5.5) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-5.5 -proposed tracker (LP: #1964766) + + * Packaging resync (LP: #1786013) + - [Packaging] resync dkms-build{,--nvidia-N} from LRMv5 + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to v5.17-rc8 + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc8 + + -- Andrea Righi Mon, 14 Mar 2022 13:15:50 +0100 + +linux-unstable (5.17.0-4.4) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-4.4 -proposed tracker (LP: #1963880) + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc7 + + -- Andrea Righi Mon, 07 Mar 2022 10:20:48 +0100 + +linux-unstable (5.17.0-3.3) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-3.3 -proposed tracker (LP: #1962450) + + * 5.15 stuck at boot on c4.large (LP: #1956780) + - Revert "PCI/MSI: Mask MSI-X vectors only on success" + + * [22.04 FEAT] KVM: Enable storage key checking for intercepted instruction + handled by userspace (LP: #1933179) + - s390/uaccess: Add copy_from/to_user_key functions + - KVM: s390: Honor storage keys when accessing guest memory + - KVM: s390: handle_tprot: Honor storage keys + - KVM: s390: Add optional storage key checking to MEMOP IOCTL + - KVM: s390: Add vm IOCTL for key checked guest absolute memory access + - KVM: s390: Rename existing vcpu memop functions + - KVM: s390: Update api documentation for memop ioctl + - KVM: s390: Clarify key argument for MEM_OP in api docs + - KVM: s390: Add missing vm MEM_OP size check + + [ Upstream Kernel Changes ] + + * Rebase to v5.17-rc6 + + -- Andrea Righi Mon, 28 Feb 2022 09:42:32 +0100 + +linux-unstable (5.17.0-2.2) jammy; urgency=medium + + * jammy/linux-unstable: 5.17.0-2.2 -proposed tracker (LP: #1962137) + + * CVE-2022-25636 + - netfilter: nf_tables_offload: incorrect flow offload action array size + + * Packaging resync (LP: #1786013) + - [Packaging] resync getabis + - [Packaging] update Ubuntu.md + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Jammy update: v5.15.22 upstream stable release (LP: #1960516) + - Revert "ASoC: mediatek: Check for error clk pointer" + - [Config] disable FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION + + * Jammy update: v5.15.20 upstream stable release (LP: #1960509) + - Revert "UBUNTU: SAUCE: Revert "e1000e: Additional PHY power saving in S0ix"" + + * Jammy update: v5.15.19 upstream stable release (LP: #1959879) + - drm/etnaviv: relax submit size limits + + * Jammy update: v5.15.17 upstream stable release (LP: #1959376) + - net: dsa: hellcreek: Allow PTP P2P measurements on blocked ports + - rtw88: add quirk to disable pci caps on HP 250 G7 Notebook PC + - ASoC: mediatek: Check for error clk pointer + - regulator: da9121: Prevent current limit change when enabled + - ath9k: Fix out-of-bound memcpy in ath9k_hif_usb_rx_stream + - drm/etnaviv: limit submit sizes + - Bluetooth: hci_sync: Fix not setting adv set duration + - net: axienet: Wait for PhyRstCmplt after core reset + + * rtw88_8821ce causes freeze (LP: #1927808) // Jammy update: v5.15.17 upstream + stable release (LP: #1959376) + - rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE + + * Jammy update: v5.15.15 upstream stable release (LP: #1958418) + - Bluetooth: btusb: Add support for Foxconn MT7922A + - Bluetooth: btbcm: disable read tx power for MacBook Air 8,1 and 8,2 + - platform/x86/intel: hid: add quirk to support Surface Go 3 + + * Support USB4 DP alt mode for AMD Yellow Carp graphics card (LP: #1953008) + - SAUCE: drm/amd/display: Fixup previous PSR policy commit + + * alsa/sdw: add sdw audio machine driver for several ADL machines + (LP: #1951563) + - ASoC: Intel: sof_sdw: Add support for SKU 0B11 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B13 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B29 product + - ASoC: Intel: sof_sdw: Add support for SKU 0B12 product + + * Improve performance and idle power consumption (LP: #1941893) + - x86: ACPI: cstate: Optimize C3 entry on AMD CPUs + + * Fix spurious wakeup caused by Intel 7560 WWAN (LP: #1956443) + - net: wwan: iosm: Keep device at D0 for s2idle case + + * Jammy update: v5.15.13 upstream stable release (LP: #1956926) + - scsi: lpfc: Terminate string in lpfc_debugfs_nvmeio_trc_write() + - net/mlx5: Fix tc max supported prio for nic mode + + * Miscellaneous Ubuntu changes + - [Packaging] Update dependency of pahole / dwarves + - [packaging] unhook lowlatency flavours from the build + - [Packaging] use default zstd compression + - [Packaging] do not use compression for image packages + - [Packaging] use xz compression for ddebs + - SAUCE: Makefile: Remove inclusion of lbm header files + - SAUCE: Makefile: Fix compiler warnings + - [Config] drop unused lowlatency configs + - [Config] update configs and annotations after rebase to v5.17-rc5 + + * Miscellaneous upstream changes + - Revert "rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE" + - MAINTAINERS: Add scripts/pahole-flags.sh to BPF section + - kbuild: Add CONFIG_PAHOLE_VERSION + - lib/Kconfig.debug: Use CONFIG_PAHOLE_VERSION + - lib/Kconfig.debug: Allow BTF + DWARF5 with pahole 1.21+ + - Revert "UBUNTU: [Packaging] temporarily disable zfs" + + -- Andrea Righi Thu, 24 Feb 2022 09:41:40 +0100 + +linux-unstable (5.17.0-1.1) jammy; urgency=medium + + * Rebase to 5.17-rc1 + + -- Andrea Righi Mon, 21 Feb 2022 08:22:18 +0100 + +linux-unstable (5.17.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Fri, 28 Jan 2022 17:14:13 +0100 + +linux (5.15.0-18.18) jammy; urgency=medium + + * jammy/linux: 5.15.0-18.18 -proposed tracker (LP: #1958638) + + * CVE-2021-4155 + - xfs: map unwritten blocks in XFS_IOC_{ALLOC, FREE}SP just like fallocate + + * CVE-2022-0185 + - SAUCE: vfs: test that one given mount param is not larger than PAGE_SIZE + + * [UBUNTU 20.04] KVM hardware diagnose data improvements for guest kernel - + kernel part (LP: #1953334) + - KVM: s390: add debug statement for diag 318 CPNC data + + * OOB write on BPF_RINGBUF (LP: #1956585) + - SAUCE: bpf: prevent helper argument PTR_TO_ALLOC_MEM to have offset other + than 0 + + * Miscellaneous Ubuntu changes + - [Config] re-enable shiftfs + - [SAUCE] shiftfs: support kernel 5.15 + - [Config] update toolchain versions + + * Miscellaneous upstream changes + - vfs: fs_context: fix up param length parsing in legacy_parse_param + + -- Andrea Righi Fri, 21 Jan 2022 13:32:27 +0100 + +linux (5.15.0-17.17) jammy; urgency=medium + + * jammy/linux: 5.15.0-17.17 -proposed tracker (LP: #1957809) + + -- Andrea Righi Thu, 13 Jan 2022 17:11:21 +0100 + +linux (5.15.0-16.16) jammy; urgency=medium + + * jammy/linux: 5.15.0-16.16 -proposed tracker (LP: #1956820) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * 5.15 stuck at boot on c4.large (LP: #1956780) + - Revert "PCI/MSI: Mask MSI-X vectors only on success" + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] temporarily disable signed v4l2loopback" + + -- Andrea Righi Sat, 08 Jan 2022 10:57:58 +0100 + +linux (5.15.0-15.15) jammy; urgency=medium + + * jammy/linux: 5.15.0-15.15 -proposed tracker (LP: #1956314) + + * Packaging resync (LP: #1786013) + - update dkms package versions + - debian/dkms-versions -- update from kernel-versions (main/master) + + * rtw88_8821ce causes freeze (LP: #1927808) + - rtw88: Disable PCIe ASPM while doing NAPI poll on 8821CE + + * alsa/sdw: fix the audio sdw codec parsing logic in the acpi table + (LP: #1955686) + - ALSA: hda: intel-sdw-acpi: go through HDAS ACPI at max depth of 2 + - ALSA: hda: intel-sdw-acpi: harden detection of controller + + * Got black screen when resume from s2idle with AMD dGPU (LP: #1955790) + - SAUCE: drm/amdgpu: put SMU into proper state on runpm suspending for BOCO + capable platform + - SAUCE: drm/amdgpu: always reset the asic in suspend (v2) + + * Fix USB3 detection on HP dock (LP: #1955443) + - usb: hub: Add delay for SuperSpeed hub resume to let links transit to U0 + + * support signed v4l2loopback dkms build (LP: #1938531) + - enable v4l2loopback builds on amd64 kernels + - support v4l2loopback dkms build + + * Jammy update: v5.15.12 upstream stable release (LP: #1956305) + - arm64: vdso32: require CROSS_COMPILE_COMPAT for gcc+bfd + - net: usb: lan78xx: add Allied Telesis AT29M2-AF + - ext4: prevent partial update of the extent blocks + - ext4: check for out-of-order index extents in ext4_valid_extent_entries() + - ext4: check for inconsistent extents between index and leaf block + - selftests: KVM: Fix non-x86 compiling + - HID: holtek: fix mouse probing + - HID: potential dereference of null pointer + - NFSD: Fix READDIR buffer overflow + - PM: sleep: Fix error handling in dpm_prepare() + - arm64: dts: allwinner: orangepi-zero-plus: fix PHY mode + - bus: sunxi-rsb: Fix shutdown + - spi: change clk_disable_unprepare to clk_unprepare + - ucounts: Fix rlimit max values check + - drm/mediatek: hdmi: Perform NULL pointer check for mtk_hdmi_conf + - ASoC: meson: aiu: fifo: Add missing dma_coerce_mask_and_coherent() + - RDMA/hns: Fix RNR retransmission issue for HIP08 + - IB/qib: Fix memory leak in qib_user_sdma_queue_pkts() + - RDMA/hns: Replace kfree() with kvfree() + - netfilter: nf_tables: fix use-after-free in nft_set_catchall_destroy() + - netfilter: fix regression in looped (broad|multi)cast's MAC handling + - ARM: dts: imx6qdl-wandboard: Fix Ethernet support + - ice: Use xdp_buf instead of rx_buf for xsk zero-copy + - ice: xsk: return xsk buffers back to pool when cleaning the ring + - net: marvell: prestera: fix incorrect return of port_find + - net: marvell: prestera: fix incorrect structure access + - qlcnic: potential dereference null pointer of rx_queue->page_ring + - tcp: move inet->rx_dst_ifindex to sk->sk_rx_dst_ifindex + - ipv6: move inet6_sk(sk)->rx_dst_cookie to sk->sk_rx_dst_cookie + - inet: fully convert sk->sk_rx_dst to RCU rules + - net: accept UFOv6 packages in virtio_net_hdr_to_skb + - net: skip virtio_net_hdr_set_proto if protocol already set + - igb: fix deadlock caused by taking RTNL in RPM resume path + - ipmi: Fix UAF when uninstall ipmi_si and ipmi_msghandler module + - gpio: virtio: remove timeout + - bonding: fix ad_actor_system option setting to default + - fjes: Check for error irq + - drivers: net: smc911x: Check for error irq + - net: ks8851: Check for error irq + - sfc: Check null pointer of rx_queue->page_ring + - sfc: falcon: Check null pointer of rx_queue->page_ring + - asix: fix uninit-value in asix_mdio_read() + - asix: fix wrong return value in asix_check_host_enable() + - io_uring: zero iocb->ki_pos for stream file types + - veth: ensure skb entering GRO are not cloned. + - net: stmmac: ptp: fix potentially overflowing expression + - net: bridge: Use array_size() helper in copy_to_user() + - net: bridge: fix ioctl old_deviceless bridge argument + - r8152: fix the force speed doesn't work for RTL8156 + - net: stmmac: dwmac-visconti: Fix value of ETHER_CLK_SEL_FREQ_SEL_2P5M + - pinctrl: bcm2835: Change init order for gpio hogs + - hwmon: (lm90) Fix usage of CONFIG2 register in detect function + - hwmon: (lm90) Prevent integer overflow/underflow in hysteresis calculations + - hwmon: (lm90) Introduce flag indicating extended temperature support + - hwmon: (lm90) Add basic support for TI TMP461 + - hwmon: (lm90) Drop critical attribute support for MAX6654 + - ARM: 9160/1: NOMMU: Reload __secondary_data after PROCINFO_INITFUNC + - uapi: Fix undefined __always_inline on non-glibc systems + - compiler.h: Fix annotation macro misplacement with Clang + - platform/x86/intel: Remove X86_PLATFORM_DRIVERS_INTEL + - kernel/crash_core: suppress unknown crashkernel parameter warning + - Revert "x86/boot: Pull up cmdline preparation and early param parsing" + - x86/boot: Move EFI range reservation after cmdline parsing + - ALSA: jack: Check the return value of kstrdup() + - ALSA: drivers: opl3: Fix incorrect use of vp->state + - ALSA: rawmidi - fix the uninitalized user_pversion + - ALSA: hda/hdmi: Disable silent stream on GLK + - ALSA: hda/realtek: Amp init fixup for HP ZBook 15 G6 + - ALSA: hda/realtek: Add new alc285-hp-amp-init model + - ALSA: hda/realtek: fix mute/micmute LEDs for a HP ProBook + - ALSA: hda/realtek: Fix quirk for Clevo NJ51CU + - ASoC: meson: aiu: Move AIU_I2S_MISC hold setting to aiu-fifo-i2s + - ASoC: tegra: Add DAPM switches for headphones and mic jack + - ASoC: tegra: Restore headphones jack name on Nyan Big + - Input: atmel_mxt_ts - fix double free in mxt_read_info_block + - ipmi: bail out if init_srcu_struct fails + - ipmi: ssif: initialize ssif_info->client early + - ipmi: fix initialization when workqueue allocation fails + - parisc: Correct completer in lws start + - parisc: Fix mask used to select futex spinlock + - tee: handle lookup of shm with reference count 0 + - x86/pkey: Fix undefined behaviour with PKRU_WD_BIT + - platform/x86: amd-pmc: only use callbacks for suspend + - platform/x86: intel_pmc_core: fix memleak on registration failure + - KVM: x86: Always set kvm_run->if_flag + - KVM: x86/mmu: Don't advance iterator after restart due to yielding + - KVM: nVMX: Synthesize TRIPLE_FAULT for L2 if emulation is required + - KVM: VMX: Always clear vmx->fail on emulation_required + - KVM: VMX: Wake vCPU when delivering posted IRQ even if vCPU == this vCPU + - pinctrl: stm32: consider the GPIO offset to expose all the GPIO lines + - gpio: dln2: Fix interrupts when replugging the device + - mmc: sdhci-tegra: Fix switch to HS400ES mode + - mmc: meson-mx-sdhc: Set MANUAL_STOP for multi-block SDIO commands + - mmc: core: Disable card detect during shutdown + - mmc: mmci: stm32: clear DLYB_CR after sending tuning command + - ARM: 9169/1: entry: fix Thumb2 bug in iWMMXt exception handling + - ksmbd: fix error code in ndr_read_int32() + - ksmbd: fix uninitialized symbol 'pntsd_size' + - ksmbd: disable SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1 + - mac80211: fix locking in ieee80211_start_ap error path + - mm: mempolicy: fix THP allocations escaping mempolicy restrictions + - mm, hwpoison: fix condition in free hugetlb page path + - mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() + - mm/damon/dbgfs: protect targets destructions with kdamond_lock + - tee: optee: Fix incorrect page free bug + - f2fs: fix to do sanity check on last xattr entry in __f2fs_setxattr() + - netfs: fix parameter of cleanup() + - KVM: VMX: Fix stale docs for kvm-intel.emulate_invalid_guest_state + - arm64: dts: lx2160a: fix scl-gpios property name + - kfence: fix memory leak when cat kfence objects + - Input: iqs626a - prohibit inlining of channel parsing functions + - Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312 + - Input: goodix - add id->model mapping for the "9111" model + - ASoC: tas2770: Fix setting of high sample rates + - ASoC: SOF: Intel: pci-tgl: add new ADL-P variant + - ASoC: SOF: Intel: pci-tgl: add ADL-N support + - ASoC: rt5682: fix the wrong jack type detected + - pinctrl: mediatek: fix global-out-of-bounds issue + - hwmom: (lm90) Fix citical alarm status for MAX6680/MAX6681 + - hwmon: (lm90) Do not report 'busy' status bit as alarm + - r8152: sync ocp base + - ax25: NPD bug when detaching AX25 device + - hamradio: defer ax25 kfree after unregister_netdev + - hamradio: improve the incomplete fix to avoid NPD + - tun: avoid double free in tun_free_netdev + - phonet/pep: refuse to enable an unbound pipe + - Linux 5.15.12 + + * Thinkpad E14 Gen2: Kernel panic with trackpad and trackpoint enabled + (LP: #1945590) // Jammy update: v5.15.12 upstream stable release + (LP: #1956305) + - Input: elantech - fix stack out of bound access in + elantech_change_report_id() + + * Jammy update: v5.15.11 upstream stable release (LP: #1956302) + - reset: tegra-bpmp: Revert Handle errors in BPMP response + - KVM: VMX: clear vmx_x86_ops.sync_pir_to_irr if APICv is disabled + - KVM: selftests: Make sure kvm_create_max_vcpus test won't hit RLIMIT_NOFILE + - KVM: downgrade two BUG_ONs to WARN_ON_ONCE + - x86/kvm: remove unused ack_notifier callbacks + - KVM: X86: Fix tlb flush for tdp in kvm_invalidate_pcid() + - mac80211: fix rate control for retransmitted frames + - mac80211: fix regression in SSN handling of addba tx + - mac80211: mark TX-during-stop for TX in in_reconfig + - mac80211: send ADDBA requests using the tid/queue of the aggregation session + - mac80211: validate extended element ID is present + - firmware: arm_scpi: Fix string overflow in SCPI genpd driver + - bpf: Fix kernel address leakage in atomic fetch + - bpf, selftests: Add test case for atomic fetch on spilled pointer + - bpf: Fix signed bounds propagation after mov32 + - bpf: Make 32->64 bounds propagation slightly more robust + - bpf, selftests: Add test case trying to taint map value pointer + - bpf: Fix kernel address leakage in atomic cmpxchg's r0 aux reg + - bpf, selftests: Update test case for atomic cmpxchg on r0 with pointer + - vduse: fix memory corruption in vduse_dev_ioctl() + - vduse: check that offset is within bounds in get_config() + - virtio_ring: Fix querying of maximum DMA mapping size for virtio device + - vdpa: check that offsets are within bounds + - s390/entry: fix duplicate tracking of irq nesting level + - recordmcount.pl: look for jgnop instruction as well as bcrl on s390 + - arm64: dts: ten64: remove redundant interrupt declaration for gpio-keys + - ceph: fix up non-directory creation in SGID directories + - dm btree remove: fix use after free in rebalance_children() + - audit: improve robustness of the audit queue handling + - btrfs: convert latest_bdev type to btrfs_device and rename + - btrfs: use latest_dev in btrfs_show_devname + - btrfs: update latest_dev when we create a sprout device + - btrfs: remove stale comment about the btrfs_show_devname + - scsi: ufs: core: Retry START_STOP on UNIT_ATTENTION + - arm64: dts: rockchip: remove mmc-hs400-enhanced-strobe from rk3399-khadas- + edge + - arm64: dts: rockchip: fix rk3308-roc-cc vcc-sd supply + - arm64: dts: rockchip: fix rk3399-leez-p710 vcc3v3-lan supply + - arm64: dts: rockchip: fix audio-supply for Rock Pi 4 + - arm64: dts: rockchip: fix poweroff on helios64 + - dmaengine: idxd: add halt interrupt support + - dmaengine: idxd: fix calling wq quiesce inside spinlock + - mac80211: track only QoS data frames for admission control + - tee: amdtee: fix an IS_ERR() vs NULL bug + - ceph: fix duplicate increment of opened_inodes metric + - ceph: initialize pathlen variable in reconnect_caps_cb + - ARM: socfpga: dts: fix qspi node compatible + - arm64: dts: imx8mq: remove interconnect property from lcdif + - clk: Don't parent clks until the parent is fully registered + - soc: imx: Register SoC device only on i.MX boards + - iwlwifi: mvm: don't crash on invalid rate w/o STA + - virtio: always enter drivers/virtio/ + - virtio/vsock: fix the transport to work with VMADDR_CID_ANY + - vdpa: Consider device id larger than 31 + - Revert "drm/fb-helper: improve DRM fbdev emulation device names" + - selftests: net: Correct ping6 expected rc from 2 to 1 + - s390/kexec_file: fix error handling when applying relocations + - sch_cake: do not call cake_destroy() from cake_init() + - inet_diag: fix kernel-infoleak for UDP sockets + - netdevsim: don't overwrite read only ethtool parms + - selftests: icmp_redirect: pass xfail=0 to log_test() + - net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg + - net: hns3: fix race condition in debugfs + - selftests: Add duplicate config only for MD5 VRF tests + - selftests: Fix raw socket bind tests with VRF + - selftests: Fix IPv6 address bind tests + - dmaengine: idxd: fix missed completion on abort path + - dmaengine: st_fdma: fix MODULE_ALIAS + - drm: simpledrm: fix wrong unit with pixel clock + - net/sched: sch_ets: don't remove idle classes from the round-robin list + - selftests/net: toeplitz: fix udp option + - net: dsa: mv88e6xxx: Unforce speed & duplex in mac_link_down() + - selftest/net/forwarding: declare NETIFS p9 p10 + - mptcp: never allow the PM to close a listener subflow + - drm/ast: potential dereference of null pointer + - drm/i915/display: Fix an unsigned subtraction which can never be negative. + - mac80211: agg-tx: don't schedule_and_wake_txq() under sta->lock + - cfg80211: Acquire wiphy mutex on regulatory work + - mac80211: fix lookup when adding AddBA extension element + - net: stmmac: fix tc flower deletion for VLAN priority Rx steering + - flow_offload: return EOPNOTSUPP for the unsupported mpls action type + - rds: memory leak in __rds_conn_create() + - ice: Use div64_u64 instead of div_u64 in adjfine + - ice: Don't put stale timestamps in the skb + - drm/amd/display: Set exit_optimized_pwr_state for DCN31 + - drm/amd/pm: fix a potential gpu_metrics_table memory leak + - mptcp: remove tcp ulp setsockopt support + - mptcp: clear 'kern' flag from fallback sockets + - mptcp: fix deadlock in __mptcp_push_pending() + - soc/tegra: fuse: Fix bitwise vs. logical OR warning + - igb: Fix removal of unicast MAC filters of VFs + - igbvf: fix double free in `igbvf_probe` + - igc: Fix typo in i225 LTR functions + - ixgbe: Document how to enable NBASE-T support + - ixgbe: set X550 MDIO speed before talking to PHY + - netdevsim: Zero-initialize memory for new map's value in function + nsim_bpf_map_alloc + - net/packet: rx_owner_map depends on pg_vec + - net: stmmac: dwmac-rk: fix oob read in rk_gmac_setup + - sfc_ef100: potential dereference of null pointer + - dsa: mv88e6xxx: fix debug print for SPEED_UNFORCED + - net: Fix double 0x prefix print in SKB dump + - net/smc: Prevent smc_release() from long blocking + - net: systemport: Add global locking for descriptor lifecycle + - sit: do not call ipip6_dev_free() from sit_init_net() + - afs: Fix mmap + - arm64: kexec: Fix missing error code 'ret' warning in load_other_segments() + - bpf: Fix extable fixup offset. + - bpf, selftests: Fix racing issue in btf_skc_cls_ingress test + - powerpc/85xx: Fix oops when CONFIG_FSL_PMC=n + - USB: gadget: bRequestType is a bitfield, not a enum + - Revert "usb: early: convert to readl_poll_timeout_atomic()" + - KVM: x86: Drop guest CPUID check for host initiated writes to + MSR_IA32_PERF_CAPABILITIES + - tty: n_hdlc: make n_hdlc_tty_wakeup() asynchronous + - USB: NO_LPM quirk Lenovo USB-C to Ethernet Adapher(RTL8153-04) + - usb: dwc2: fix STM ID/VBUS detection startup delay in dwc2_driver_probe + - PCI/MSI: Clear PCI_MSIX_FLAGS_MASKALL on error + - PCI/MSI: Mask MSI-X vectors only on success + - usb: xhci-mtk: fix list_del warning when enable list debug + - usb: xhci: Extend support for runtime power management for AMD's Yellow + carp. + - usb: cdnsp: Fix incorrect status for control request + - usb: cdnsp: Fix incorrect calling of cdnsp_died function + - usb: cdnsp: Fix issue in cdnsp_log_ep trace event + - usb: cdnsp: Fix lack of spin_lock_irqsave/spin_lock_restore + - usb: typec: tcpm: fix tcpm unregister port but leave a pending timer + - usb: gadget: u_ether: fix race in setting MAC address in setup phase + - USB: serial: cp210x: fix CP2105 GPIO registration + - USB: serial: option: add Telit FN990 compositions + - selinux: fix sleeping function called from invalid context + - btrfs: fix memory leak in __add_inode_ref() + - btrfs: fix double free of anon_dev after failure to create subvolume + - btrfs: check WRITE_ERR when trying to read an extent buffer + - btrfs: fix missing blkdev_put() call in btrfs_scan_one_device() + - zonefs: add MODULE_ALIAS_FS + - iocost: Fix divide-by-zero on donation from low hweight cgroup + - serial: 8250_fintek: Fix garbled text for console + - timekeeping: Really make sure wall_to_monotonic isn't positive + - cifs: sanitize multiple delimiters in prepath + - locking/rtmutex: Fix incorrect condition in rtmutex_spin_on_owner() + - riscv: dts: unleashed: Add gpio card detect to mmc-spi-slot + - riscv: dts: unmatched: Add gpio card detect to mmc-spi-slot + - perf inject: Fix segfault due to close without open + - perf inject: Fix segfault due to perf_data__fd() without open + - libata: if T_LENGTH is zero, dma direction should be DMA_NONE + - powerpc/module_64: Fix livepatching for RO modules + - drm/amdgpu: correct register access for RLC_JUMP_TABLE_RESTORE + - drm/amdgpu: don't override default ECO_BITs setting + - drm/amd/pm: fix reading SMU FW version from amdgpu_firmware_info on YC + - Revert "can: m_can: remove support for custom bit timing" + - can: m_can: make custom bittiming fields const + - can: m_can: pci: use custom bit timings for Elkhart Lake + - ARM: dts: imx6ull-pinfunc: Fix CSI_DATA07__ESAI_TX0 pad name + - xsk: Do not sleep in poll() when need_wakeup set + - mptcp: add missing documented NL params + - bpf, x64: Factor out emission of REX byte in more cases + - bpf: Fix extable address check. + - USB: core: Make do_proc_control() and do_proc_bulk() killable + - media: mxl111sf: change mutex_init() location + - fuse: annotate lock in fuse_reverse_inval_entry() + - ovl: fix warning in ovl_create_real() + - scsi: scsi_debug: Don't call kcalloc() if size arg is zero + - scsi: scsi_debug: Fix type in min_t to avoid stack OOB + - scsi: scsi_debug: Sanity check block descriptor length in resp_mode_select() + - io-wq: remove spurious bit clear on task_work addition + - io-wq: check for wq exit after adding new worker task_work + - rcu: Mark accesses to rcu_state.n_force_qs + - io-wq: drop wqe lock before creating new worker + - bus: ti-sysc: Fix variable set but not used warning for reinit_modules + - selftests/damon: test debugfs file reads/writes with huge count + - Revert "xsk: Do not sleep in poll() when need_wakeup set" + - xen/blkfront: harden blkfront against event channel storms + - xen/netfront: harden netfront against event channel storms + - xen/console: harden hvc_xen against event channel storms + - xen/netback: fix rx queue stall detection + - xen/netback: don't queue unlimited number of packages + - Linux 5.15.11 + + * Jammy update: v5.15.10 upstream stable release (LP: #1956301) + - nfc: fix segfault in nfc_genl_dump_devices_done + - hwmon: (corsair-psu) fix plain integer used as NULL pointer + - RDMA: Fix use-after-free in rxe_queue_cleanup + - RDMA/mlx5: Fix releasing unallocated memory in dereg MR flow + - mtd: rawnand: Fix nand_erase_op delay + - mtd: rawnand: Fix nand_choose_best_timings() on unsupported interface + - inet: use #ifdef CONFIG_SOCK_RX_QUEUE_MAPPING consistently + - dt-bindings: media: nxp,imx7-mipi-csi2: Drop bad if/then schema + - clk: qcom: sm6125-gcc: Swap ops of ice and apps on sdcc1 + - perf bpf_skel: Do not use typedef to avoid error on old clang + - netfs: Fix lockdep warning from taking sb_writers whilst holding mmap_lock + - RDMA/irdma: Fix a user-after-free in add_pble_prm + - RDMA/irdma: Fix a potential memory allocation issue in + 'irdma_prm_add_pble_mem()' + - RDMA/irdma: Report correct WC errors + - RDMA/irdma: Don't arm the CQ more than two times if no CE for this CQ + - ice: fix FDIR init missing when reset VF + - vmxnet3: fix minimum vectors alloc issue + - i2c: virtio: fix completion handling + - drm/msm: Fix null ptr access msm_ioctl_gem_submit() + - drm/msm/a6xx: Fix uinitialized use of gpu_scid + - drm/msm/dsi: set default num_data_lanes + - drm/msm/dp: Avoid unpowered AUX xfers that caused crashes + - KVM: arm64: Save PSTATE early on exit + - s390/test_unwind: use raw opcode instead of invalid instruction + - Revert "tty: serial: fsl_lpuart: drop earlycon entry for i.MX8QXP" + - net/mlx4_en: Update reported link modes for 1/10G + - loop: Use pr_warn_once() for loop_control_remove() warning + - ALSA: hda: Add Intel DG2 PCI ID and HDMI codec vid + - ALSA: hda/hdmi: fix HDA codec entry table order for ADL-P + - parisc/agp: Annotate parisc agp init functions with __init + - i2c: rk3x: Handle a spurious start completion interrupt flag + - net: netlink: af_netlink: Prevent empty skb by adding a check on len. + - drm/amdgpu: cancel the correct hrtimer on exit + - drm/amdgpu: check atomic flag to differeniate with legacy path + - drm/amd/display: Fix for the no Audio bug with Tiled Displays + - drm/amdkfd: fix double free mem structure + - drm/amd/display: add connector type check for CRC source set + - drm/amdkfd: process_info lock not needed for svm + - tracing: Fix a kmemleak false positive in tracing_map + - staging: most: dim2: use device release method + - fuse: make sure reclaim doesn't write the inode + - perf inject: Fix itrace space allowed for new attributes + - Linux 5.15.10 + + * Jammy update: v5.15.9 upstream stable release (LP: #1955161) + - netfilter: selftest: conntrack_vrf.sh: fix file permission + - Linux 5.15.9 + + * [SRU][I/J/OEM-5.13/OEM-5.14] Fix pci port lost when hotplug dock + (LP: #1954646) + - PCI: Re-enable Downstream Port LTR after reset or hotplug + + * Add support for NVIDIA EC backlight (LP: #1953286) + - platform/x86: Add driver for ACPI WMAA EC-based backlight control + - platform/x86: Remove "WMAA" from identifier names in wmaa-backlight-wmi.c + - platform/x86: Rename wmaa-backlight-wmi to nvidia-wmi-ec-backlight + - [Config] NVIDIA_WMI_EC_BACKLIGHT=m + + * Improve USB Type-C support (LP: #1950974) + - usb: typec: ucsi: Always cancel the command if PPM reports BUSY condition + - usb: typec: ucsi: Don't stop alt mode registration on busy condition + - usb: typec: ucsi: Add polling mechanism for partner tasks like alt mode + checking + - usb: typec: ucsi: acpi: Reduce the command completion timeout + - usb: typec: ucsi: Check the partner alt modes always if there is PD contract + - usb: typec: ucsi: Read the PDOs in separate work + - usb: typec: ucsi: Better fix for missing unplug events issue + + * Fix power button wakeup with shared IRQs on AMD platforms (LP: #1953540) + - pinctrl: amd: Fix wakeups when IRQ is shared with SCI + + * AMD: Suspend not working when some cores are disabled through cpufreq + (LP: #1954930) + - ACPI: processor idle: Allow playing dead in C3 state + + * Jammy update: v5.15.8 upstream stable release (LP: #1954931) + - Revert "UBUNTU: SAUCE: selftests: fib_tests: assign address to dummy1 for + rp_filter tests" + - usb: gadget: uvc: fix multiple opens + - HID: quirks: Add quirk for the Microsoft Surface 3 type-cover + - HID: google: add eel USB id + - HID: intel-ish-hid: ipc: only enable IRQ wakeup when requested + - HID: add hid_is_usb() function to make it simpler for USB detection + - HID: add USB_HID dependancy to hid-prodikeys + - HID: add USB_HID dependancy to hid-chicony + - HID: add USB_HID dependancy on some USB HID drivers + - HID: bigbenff: prevent null pointer dereference + - HID: wacom: fix problems when device is not a valid USB device + - HID: check for valid USB device for many HID drivers + - mtd: dataflash: Add device-tree SPI IDs + - mmc: spi: Add device-tree SPI IDs + - HID: sony: fix error path in probe + - HID: Ignore battery for Elan touchscreen on Asus UX550VE + - platform/x86/intel: hid: add quirk to support Surface Go 3 + - nft_set_pipapo: Fix bucket load in AVX2 lookup routine for six 8-bit groups + - IB/hfi1: Insure use of smp_processor_id() is preempt disabled + - IB/hfi1: Fix early init panic + - IB/hfi1: Fix leak of rcvhdrtail_dummy_kvaddr + - can: kvaser_usb: get CAN clock frequency from device + - can: kvaser_pciefd: kvaser_pciefd_rx_error_frame(): increase correct + stats->{rx,tx}_errors counter + - can: sja1000: fix use after free in ems_pcmcia_add_card() + - can: pch_can: pch_can_rx_normal: fix use after free + - can: m_can: m_can_read_fifo: fix memory leak in error branch + - can: m_can: pci: fix incorrect reference clock rate + - can: m_can: pci: fix iomap_read_fifo() and iomap_write_fifo() + - can: m_can: Disable and ignore ELO interrupt + - net: dsa: mv88e6xxx: fix "don't use PHY_DETECT on internal PHY's" + - net: dsa: mv88e6xxx: allow use of PHYs on CPU and DSA ports + - x86/sme: Explicitly map new EFI memmap table as encrypted + - platform/x86: amd-pmc: Fix s2idle failures on certain AMD laptops + - nfc: fix potential NULL pointer deref in nfc_genl_dump_ses_done + - selftests: netfilter: add a vrf+conntrack testcase + - vrf: don't run conntrack on vrf with !dflt qdisc + - bpf, x86: Fix "no previous prototype" warning + - bpf, sockmap: Attach map progs to psock early for feature probes + - bpf: Make sure bpf_disable_instrumentation() is safe vs preemption. + - bpf: Fix the off-by-two error in range markings + - ice: ignore dropped packets during init + - ethtool: do not perform operations on net devices being unregistered + - bonding: make tx_rebalance_counter an atomic + - nfp: Fix memory leak in nfp_cpp_area_cache_add() + - udp: using datalen to cap max gso segments + - netfilter: nft_exthdr: break evaluation if setting TCP option fails + - netfilter: conntrack: annotate data-races around ct->timeout + - iavf: restore MSI state on reset + - iavf: Fix reporting when setting descriptor count + - IB/hfi1: Correct guard on eager buffer deallocation + - devlink: fix netns refcount leak in devlink_nl_cmd_reload() + - net: bcm4908: Handle dma_set_coherent_mask error codes + - net: dsa: mv88e6xxx: error handling for serdes_power functions + - net: dsa: felix: Fix memory leak in felix_setup_mmio_filtering + - net/sched: fq_pie: prevent dismantle issue + - net: mvpp2: fix XDP rx queues registering + - KVM: x86: Don't WARN if userspace mucks with RCX during string I/O exit + - KVM: x86: Ignore sparse banks size for an "all CPUs", non-sparse IPI req + - KVM: x86: Wait for IPIs to be delivered when handling Hyper-V TLB flush + hypercall + - timers: implement usleep_idle_range() + - mm/damon/core: fix fake load reports due to uninterruptible sleeps + - mm/slub: fix endianness bug for alloc/free_traces attributes + - mm: bdi: initialize bdi_min_ratio when bdi is unregistered + - ALSA: ctl: Fix copy of updated id with element read/write + - ALSA: hda/realtek - Add headset Mic support for Lenovo ALC897 platform + - ALSA: hda/realtek: Fix quirk for TongFang PHxTxX1 + - ALSA: pcm: oss: Fix negative period/buffer sizes + - ALSA: pcm: oss: Limit the period size to 16MB + - ALSA: pcm: oss: Handle missing errors in snd_pcm_oss_change_params*() + - cifs: Fix crash on unload of cifs_arc4.ko + - scsi: qla2xxx: Format log strings only if needed + - btrfs: clear extent buffer uptodate when we fail to write it + - btrfs: fix re-dirty process of tree-log nodes + - btrfs: replace the BUG_ON in btrfs_del_root_ref with proper error handling + - btrfs: free exchange changeset on failures + - perf intel-pt: Fix some PGE (packet generation enable/control flow packets) + usage + - perf intel-pt: Fix sync state when a PSB (synchronization) packet is found + - perf intel-pt: Fix intel_pt_fup_event() assumptions about setting state type + - perf intel-pt: Fix state setting when receiving overflow (OVF) packet + - perf intel-pt: Fix next 'err' value, walking trace + - perf intel-pt: Fix missing 'instruction' events with 'q' option + - perf intel-pt: Fix error timestamp setting on the decoder error path + - md: fix update super 1.0 on rdev size change + - nfsd: fix use-after-free due to delegation race + - nfsd: Fix nsfd startup race (again) + - tracefs: Have new files inherit the ownership of their parent + - selftests: KVM: avoid failures due to reserved HyperTransport region + - hwmon: (pwm-fan) Ensure the fan going on in .probe() + - mmc: renesas_sdhi: initialize variable properly when tuning + - clk: qcom: regmap-mux: fix parent clock lookup + - thermal: int340x: Fix VCoRefLow MMIO bit offset for TGL + - drm/syncobj: Deal with signalled fences in drm_syncobj_find_fence. + - libata: add horkage for ASMedia 1092 + - io_uring: ensure task_work gets run as part of cancelations + - wait: add wake_up_pollfree() + - binder: use wake_up_pollfree() + - signalfd: use wake_up_pollfree() + - aio: keep poll requests on waitqueue until completed + - aio: fix use-after-free due to missing POLLFREE handling + - tracefs: Set all files to the same group ownership as the mount option + - i2c: mpc: Use atomic read and fix break condition + - block: fix ioprio_get(IOPRIO_WHO_PGRP) vs setuid(2) + - scsi: pm80xx: Do not call scsi_remove_host() in pm8001_alloc() + - scsi: scsi_debug: Fix buffer size of REPORT ZONES command + - ALSA: usb-audio: Reorder snd_djm_devices[] entries + - qede: validate non LSO skb length + - PM: runtime: Fix pm_runtime_active() kerneldoc comment + - ASoC: rt5682: Fix crash due to out of scope stack vars + - ASoC: qdsp6: q6routing: Fix return value from msm_routing_put_audio_mixer + - ASoC: codecs: wsa881x: fix return values from kcontrol put + - ASoC: codecs: wcd934x: handle channel mappping list correctly + - ASoC: codecs: wcd934x: return correct value from mixer put + - RDMA/hns: Do not halt commands during reset until later + - RDMA/hns: Do not destroy QP resources in the hw resetting phase + - hwmon: (dell-smm) Fix warning on /proc/i8k creation error + - clk: imx: use module_platform_driver + - clk: qcom: clk-alpha-pll: Don't reconfigure running Trion + - i40e: Fix failed opcode appearing if handling messages from VF + - i40e: Fix pre-set max number of queues for VF + - mtd: rawnand: fsmc: Take instruction delay into account + - mtd: rawnand: fsmc: Fix timing computation + - bpf, sockmap: Re-evaluate proto ops when psock is removed from sockmap + - i40e: Fix NULL pointer dereference in i40e_dbg_dump_desc + - Revert "PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge" + - drm/amd/display: Fix DPIA outbox timeout after S3/S4/reset + - perf tools: Fix SMT detection fast read path + - Documentation/locking/locktypes: Update migrate_disable() bits. + - dt-bindings: net: Reintroduce PHY no lane swap binding + - tools build: Remove needless libpython-version feature check that breaks + test-all fast path + - net: cdc_ncm: Allow for dwNtbOutMaxSize to be unset or zero + - net: altera: set a couple error code in probe() + - net: fec: only clear interrupt of handling queue in fec_enet_rx_queue() + - net, neigh: clear whole pneigh_entry at alloc time + - net/qla3xxx: fix an error code in ql_adapter_up() + - selftests/fib_tests: Rework fib_rp_filter_test() + - USB: gadget: detect too-big endpoint 0 requests + - USB: gadget: zero allocate endpoint 0 buffers + - Revert "usb: dwc3: dwc3-qcom: Enable tx-fifo-resize property by default" + - usb: core: config: fix validation of wMaxPacketValue entries + - usb: core: config: using bit mask instead of individual bits + - xhci: avoid race between disable slot command and host runtime suspend + - iio: gyro: adxrs290: fix data signedness + - iio: trigger: Fix reference counting + - iio: trigger: stm32-timer: fix MODULE_ALIAS + - iio: stk3310: Don't return error code in interrupt handler + - iio: mma8452: Fix trigger reference couting + - iio: ltr501: Don't return error code in trigger handler + - iio: kxsd9: Don't return error code in trigger handler + - iio: itg3200: Call iio_trigger_notify_done() on error + - iio: dln2-adc: Fix lockdep complaint + - iio: dln2: Check return value of devm_iio_trigger_register() + - iio: at91-sama5d2: Fix incorrect sign extension + - iio: adc: stm32: fix a current leak by resetting pcsel before disabling vdda + - iio: adc: axp20x_adc: fix charging current reporting on AXP22x + - iio: ad7768-1: Call iio_trigger_notify_done() on error + - iio: accel: kxcjk-1013: Fix possible memory leak in probe and remove + - nvmem: eeprom: at25: fix FRAM byte_len + - bus: mhi: pci_generic: Fix device recovery failed issue + - bus: mhi: core: Add support for forced PM resume + - csky: fix typo of fpu config macro + - irqchip/aspeed-scu: Replace update_bits with write_bits. + - irqchip/armada-370-xp: Fix return value of armada_370_xp_msi_alloc() + - irqchip/armada-370-xp: Fix support for Multi-MSI interrupts + - aio: Fix incorrect usage of eventfd_signal_allowed() + - irqchip/irq-gic-v3-its.c: Force synchronisation when issuing INVALL + - irqchip: nvic: Fix offset for Interrupt Priority Offsets + - misc: fastrpc: fix improper packet size calculation + - clocksource/drivers/dw_apb_timer_of: Fix probe failure + - bpf: Add selftests to cover packet access corner cases + - Linux 5.15.8 + + * Can't read/write SD card after running CPU offline test in 5.11.0 and 5.13.0 + (LP: #1951784) // Jammy update: v5.15.8 upstream stable release + (LP: #1954931) + - misc: rtsx: Avoid mangling IRQ during runtime PM + + * Enable Landlock by default (LP: #1953192) + - [Config] Enable Landlock by default + + * Add s0i3 RTC wake up for AMD systems (LP: #1950013) + - platform/x86: amd-pmc: Export Idlemask values based on the APU + - platform/x86: amd-pmc: adjust arguments for `amd_pmc_send_cmd` + - platform/x86: amd-pmc: Add special handling for timer based S0i3 wakeup + + * Fix runtime power management on USB controller with XHCI_RESET_ON_RESUME + flag (LP: #1954369) + - SAUCE: xhci: Remove CONFIG_USB_DEFAULT_PERSIST to prevent xHCI from runtime + suspending + + * Fix System hangs on black screen when reboot (LP: #1949321) + - drm/i915/hdmi: convert intel_hdmi_to_dev to intel_hdmi_to_i915 + - drm/i915: Don't request GMBUS to generate irqs when called while irqs are + off + - drm/i915/hdmi: Turn DP++ TMDS output buffers back on in encoder->shutdown() + + * require CAP_NET_ADMIN to attach N_HCI ldisc (LP: #1949516) + - Bluetooth: hci_ldisc: require CAP_NET_ADMIN to attach N_HCI ldisc + + * mt7921e: Failed to start WM firmware (LP: #1954300) + - SAUCE: Bluetooth: btusb: Handle download_firmware failure cases + - SAUCE: Bluetooth: btusb: Return error code when getting patch status failed + + * Miscellaneous Ubuntu changes + - [Packaging] Add list of built-in modules to the ABI + - [Packaging] abi-check: Process modules.builtin + - SAUCE: allow to use __wake_up_pollfree() from GPL modules + - [Packaging] enforce xz compression for debs + - [Config] update config after v5.15.12 + - [Packaging] temporarily disable signed v4l2loopback + + -- Andrea Righi Tue, 04 Jan 2022 11:22:10 +0100 + +linux (5.15.0-14.14) jammy; urgency=medium + + * jammy/linux: 5.15.0-14.14 -proposed tracker (LP: #1954627) + + * Jammy update: v5.15.7 upstream stable release (LP: #1953731) + - ALSA: usb-audio: Restrict rates for the shared clocks + - ALSA: usb-audio: Rename early_playback_start flag with lowlatency_playback + - ALSA: usb-audio: Disable low-latency playback for free-wheel mode + - ALSA: usb-audio: Disable low-latency mode for implicit feedback sync + - ALSA: usb-audio: Check available frames for the next packet size + - ALSA: usb-audio: Add spinlock to stop_urbs() + - ALSA: usb-audio: Improved lowlatency playback support + - ALSA: usb-audio: Avoid killing in-flight URBs during draining + - ALSA: usb-audio: Fix packet size calculation regression + - ALSA: usb-audio: Less restriction for low-latency playback mode + - ALSA: usb-audio: Switch back to non-latency mode at a later point + - ALSA: usb-audio: Don't start stream for capture at prepare + - gfs2: release iopen glock early in evict + - gfs2: Fix length of holes reported at end-of-file + - powerpc/pseries/ddw: Revert "Extend upper limit for huge DMA window for + persistent memory" + - powerpc/pseries/ddw: Do not try direct mapping with persistent memory and + one window + - drm/sun4i: fix unmet dependency on RESET_CONTROLLER for PHY_SUN6I_MIPI_DPHY + - mac80211: do not access the IV when it was stripped + - mac80211: fix throughput LED trigger + - x86/hyperv: Move required MSRs check to initial platform probing + - net/smc: Transfer remaining wait queue entries during fallback + - atlantic: Fix OOB read and write in hw_atl_utils_fw_rpc_wait + - net: return correct error code + - pinctrl: qcom: fix unmet dependencies on GPIOLIB for GPIOLIB_IRQCHIP + - platform/x86: dell-wmi-descriptor: disable by default + - platform/x86: thinkpad_acpi: Add support for dual fan control + - platform/x86: thinkpad_acpi: Fix WWAN device disabled issue after S3 deep + - s390/setup: avoid using memblock_enforce_memory_limit + - btrfs: silence lockdep when reading chunk tree during mount + - btrfs: check-integrity: fix a warning on write caching disabled disk + - thermal: core: Reset previous low and high trip during thermal zone init + - scsi: iscsi: Unblock session then wake up error handler + - drm/amd/pm: Remove artificial freq level on Navi1x + - drm/amd/amdkfd: Fix kernel panic when reset failed and been triggered again + - drm/amd/amdgpu: fix potential memleak + - ata: ahci: Add Green Sardine vendor ID as board_ahci_mobile + - ata: libahci: Adjust behavior when StorageD3Enable _DSD is set + - ethernet: hisilicon: hns: hns_dsaf_misc: fix a possible array overflow in + hns_dsaf_ge_srst_by_port() + - ipv6: check return value of ipv6_skip_exthdr + - net: tulip: de4x5: fix the problem that the array 'lp->phy[8]' may be out of + bound + - net: ethernet: dec: tulip: de4x5: fix possible array overflows in + type3_infoblock() + - perf sort: Fix the 'weight' sort key behavior + - perf sort: Fix the 'ins_lat' sort key behavior + - perf sort: Fix the 'p_stage_cyc' sort key behavior + - perf inject: Fix ARM SPE handling + - perf hist: Fix memory leak of a perf_hpp_fmt + - perf report: Fix memory leaks around perf_tip() + - tracing: Don't use out-of-sync va_list in event printing + - net/smc: Avoid warning of possible recursive locking + - ACPI: Add stubs for wakeup handler functions + - net/tls: Fix authentication failure in CCM mode + - vrf: Reset IPCB/IP6CB when processing outbound pkts in vrf dev xmit + - kprobes: Limit max data_size of the kretprobe instances + - ALSA: hda/cs8409: Set PMSG_ON earlier inside cs8409 driver + - rt2x00: do not mark device gone on EPROTO errors during start + - ipmi: Move remove_work to dedicated workqueue + - cpufreq: Fix get_cpu_device() failure in add_cpu_dev_symlink() + - iwlwifi: mvm: retry init flow if failed + - dma-buf: system_heap: Use 'for_each_sgtable_sg' in pages free flow + - s390/pci: move pseudo-MMIO to prevent MIO overlap + - fget: check that the fd still exists after getting a ref to it + - sata_fsl: fix UAF in sata_fsl_port_stop when rmmod sata_fsl + - sata_fsl: fix warning in remove_proc_entry when rmmod sata_fsl + - scsi: lpfc: Fix non-recovery of remote ports following an unsolicited LOGO + - scsi: ufs: ufs-pci: Add support for Intel ADL + - ipv6: fix memory leak in fib6_rule_suppress + - drm/amd/display: Allow DSC on supported MST branch devices + - drm/i915/dp: Perform 30ms delay after source OUI write + - KVM: fix avic_set_running for preemptable kernels + - KVM: Disallow user memslot with size that exceeds "unsigned long" + - KVM: x86/mmu: Fix TLB flush range when handling disconnected pt + - KVM: Ensure local memslot copies operate on up-to-date arch-specific data + - KVM: x86: ignore APICv if LAPIC is not enabled + - KVM: nVMX: Emulate guest TLB flush on nested VM-Enter with new vpid12 + - KVM: nVMX: Flush current VPID (L1 vs. L2) for KVM_REQ_TLB_FLUSH_GUEST + - KVM: nVMX: Abide to KVM_REQ_TLB_FLUSH_GUEST request on nested vmentry/vmexit + - KVM: VMX: prepare sync_pir_to_irr for running with APICv disabled + - KVM: x86: Use a stable condition around all VT-d PI paths + - KVM: MMU: shadow nested paging does not have PKU + - KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1 + - KVM: X86: Use vcpu->arch.walk_mmu for kvm_mmu_invlpg() + - KVM: x86: check PIR even for vCPUs with disabled APICv + - tracing/histograms: String compares should not care about signed values + - net: dsa: mv88e6xxx: Fix application of erratum 4.8 for 88E6393X + - net: dsa: mv88e6xxx: Drop unnecessary check in + mv88e6393x_serdes_erratum_4_6() + - net: dsa: mv88e6xxx: Save power by disabling SerDes trasmitter and receiver + - net: dsa: mv88e6xxx: Add fix for erratum 5.2 of 88E6393X family + - net: dsa: mv88e6xxx: Fix inband AN for 2500base-x on 88E6393X family + - net: dsa: mv88e6xxx: Link in pcs_get_state() if AN is bypassed + - wireguard: selftests: increase default dmesg log size + - wireguard: allowedips: add missing __rcu annotation to satisfy sparse + - wireguard: selftests: actually test for routing loops + - wireguard: selftests: rename DEBUG_PI_LIST to DEBUG_PLIST + - wireguard: device: reset peer src endpoint when netns exits + - wireguard: receive: use ring buffer for incoming handshakes + - wireguard: receive: drop handshakes if queue lock is contended + - wireguard: ratelimiter: use kvcalloc() instead of kvzalloc() + - i2c: stm32f7: flush TX FIFO upon transfer errors + - i2c: stm32f7: recover the bus on access timeout + - i2c: stm32f7: stop dma transfer in case of NACK + - i2c: cbus-gpio: set atomic transfer callback + - natsemi: xtensa: fix section mismatch warnings + - tcp: fix page frag corruption on page fault + - net: qlogic: qlcnic: Fix a NULL pointer dereference in + qlcnic_83xx_add_rings() + - net: mpls: Fix notifications when deleting a device + - siphash: use _unaligned version by default + - arm64: ftrace: add missing BTIs + - iwlwifi: fix warnings produced by kernel debug options + - net/mlx5e: IPsec: Fix Software parser inner l3 type setting in case of + encapsulation + - net/mlx4_en: Fix an use-after-free bug in mlx4_en_try_alloc_resources() + - selftests: net: Correct case name + - net: dsa: b53: Add SPI ID table + - mt76: mt7915: fix NULL pointer dereference in mt7915_get_phy_mode + - ASoC: tegra: Fix wrong value type in ADMAIF + - ASoC: tegra: Fix wrong value type in I2S + - ASoC: tegra: Fix wrong value type in DMIC + - ASoC: tegra: Fix wrong value type in DSPK + - ASoC: tegra: Fix kcontrol put callback in ADMAIF + - ASoC: tegra: Fix kcontrol put callback in I2S + - ASoC: tegra: Fix kcontrol put callback in DMIC + - ASoC: tegra: Fix kcontrol put callback in DSPK + - ASoC: tegra: Fix kcontrol put callback in AHUB + - rxrpc: Fix rxrpc_peer leak in rxrpc_look_up_bundle() + - rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() + - ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec + - net: stmmac: Avoid DMA_CHAN_CONTROL write if no Split Header support + - net: usb: lan78xx: lan78xx_phy_init(): use PHY_POLL instead of "0" if no IRQ + is available + - net: marvell: mvpp2: Fix the computation of shared CPUs + - dpaa2-eth: destroy workqueue at the end of remove function + - octeontx2-af: Fix a memleak bug in rvu_mbox_init() + - net: annotate data-races on txq->xmit_lock_owner + - ipv4: convert fib_num_tclassid_users to atomic_t + - net/smc: fix wrong list_del in smc_lgr_cleanup_early + - net/rds: correct socket tunable error in rds_tcp_tune() + - net/smc: Keep smc_close_final rc during active close + - drm/msm/a6xx: Allocate enough space for GMU registers + - drm/msm: Do hw_init() before capturing GPU state + - drm/vc4: kms: Wait for the commit before increasing our clock rate + - drm/vc4: kms: Fix return code check + - drm/vc4: kms: Add missing drm_crtc_commit_put + - drm/vc4: kms: Clear the HVS FIFO commit pointer once done + - drm/vc4: kms: Don't duplicate pending commit + - drm/vc4: kms: Fix previous HVS commit wait + - atlantic: Increase delay for fw transactions + - atlatnic: enable Nbase-t speeds with base-t + - atlantic: Fix to display FW bundle version instead of FW mac version. + - atlantic: Add missing DIDs and fix 115c. + - Remove Half duplex mode speed capabilities. + - atlantic: Fix statistics logic for production hardware + - atlantic: Remove warn trace message. + - KVM: x86/mmu: Skip tlb flush if it has been done in zap_gfn_range() + - KVM: x86/mmu: Pass parameter flush as false in + kvm_tdp_mmu_zap_collapsible_sptes() + - drm/msm/devfreq: Fix OPP refcnt leak + - drm/msm: Fix mmap to include VM_IO and VM_DONTDUMP + - drm/msm: Fix wait_fence submitqueue leak + - drm/msm: Restore error return on invalid fence + - ASoC: rk817: Add module alias for rk817-codec + - iwlwifi: Fix memory leaks in error handling path + - KVM: X86: Fix when shadow_root_level=5 && guest root_level<4 + - KVM: SEV: initialize regions_list of a mirror VM + - net/mlx5e: Fix missing IPsec statistics on uplink representor + - net/mlx5: Move MODIFY_RQT command to ignore list in internal error state + - net/mlx5: E-switch, Respect BW share of the new group + - net/mlx5: E-Switch, fix single FDB creation on BlueField + - net/mlx5: E-Switch, Check group pointer before reading bw_share value + - KVM: x86/pmu: Fix reserved bits for AMD PerfEvtSeln register + - KVM: VMX: Set failure code in prepare_vmcs02() + - mctp: Don't let RTM_DELROUTE delete local routes + - Revert "drm/i915: Implement Wa_1508744258" + - io-wq: don't retry task_work creation failure on fatal conditions + - x86/sev: Fix SEV-ES INS/OUTS instructions for word, dword, and qword + - x86/entry: Add a fence for kernel entry SWAPGS in paranoid_entry() + - x86/entry: Use the correct fence macro after swapgs in kernel CR3 + - x86/xen: Add xenpv_restore_regs_and_return_to_usermode() + - preempt/dynamic: Fix setup_preempt_mode() return value + - sched/uclamp: Fix rq->uclamp_max not set on first enqueue + - KVM: SEV: Return appropriate error codes if SEV-ES scratch setup fails + - KVM: x86/mmu: Rename slot_handle_leaf to slot_handle_level_4k + - KVM: x86/mmu: Remove spurious TLB flushes in TDP MMU zap collapsible path + - net/mlx5e: Rename lro_timeout to packet_merge_timeout + - net/mlx5e: Rename TIR lro functions to TIR packet merge functions + - net/mlx5e: Sync TIR params updates against concurrent create/modify + - serial: 8250_bcm7271: UART errors after resuming from S2 + - parisc: Fix KBUILD_IMAGE for self-extracting kernel + - parisc: Fix "make install" on newer debian releases + - parisc: Mark cr16 CPU clocksource unstable on all SMP machines + - vgacon: Propagate console boot parameters before calling `vc_resize' + - xhci: Fix commad ring abort, write all 64 bits to CRCR register. + - USB: NO_LPM quirk Lenovo Powered USB-C Travel Hub + - usb: typec: tcpm: Wait in SNK_DEBOUNCED until disconnect + - usb: cdns3: gadget: fix new urb never complete if ep cancel previous + requests + - usb: cdnsp: Fix a NULL pointer dereference in cdnsp_endpoint_init() + - x86/tsc: Add a timer to make sure TSC_adjust is always checked + - x86/tsc: Disable clocksource watchdog for TSC on qualified platorms + - x86/64/mm: Map all kernel memory into trampoline_pgd + - tty: serial: msm_serial: Deactivate RX DMA for polling support + - serial: pl011: Add ACPI SBSA UART match id + - serial: tegra: Change lower tolerance baud rate limit for tegra20 and + tegra30 + - serial: core: fix transmit-buffer reset and memleak + - serial: 8250_pci: Fix ACCES entries in pci_serial_quirks array + - serial: 8250_pci: rewrite pericom_do_set_divisor() + - serial: 8250: Fix RTS modem control while in rs485 mode + - serial: liteuart: Fix NULL pointer dereference in ->remove() + - serial: liteuart: fix use-after-free and memleak on unbind + - serial: liteuart: fix minor-number leak on probe errors + - ipmi: msghandler: Make symbol 'remove_work_wq' static + - Linux 5.15.7 + + * Updates to ib_peer_memory requested by Nvidia (LP: #1947206) + - SAUCE: RDMA/core: Updated ib_peer_memory + - SAUCE: RDMA/core: ib_peer_memory fix build errors + + * Jammy update: v5.15.6 upstream stable release (LP: #1953370) + - scsi: sd: Fix sd_do_mode_sense() buffer length handling + - ACPI: Get acpi_device's parent from the parent field + - ACPI: CPPC: Add NULL pointer check to cppc_get_perf() + - USB: serial: pl2303: fix GC type detection + - USB: serial: option: add Telit LE910S1 0x9200 composition + - USB: serial: option: add Fibocom FM101-GL variants + - usb: dwc2: gadget: Fix ISOC flow for elapsed frames + - usb: dwc2: hcd_queue: Fix use of floating point literal + - usb: dwc3: leave default DMA for PCI devices + - usb: dwc3: core: Revise GHWPARAMS9 offset + - usb: dwc3: gadget: Ignore NoStream after End Transfer + - usb: dwc3: gadget: Check for L1/L2/U3 for Start Transfer + - usb: dwc3: gadget: Fix null pointer exception + - net: usb: Correct PHY handling of smsc95xx + - net: nexthop: fix null pointer dereference when IPv6 is not enabled + - usb: chipidea: ci_hdrc_imx: fix potential error pointer dereference in probe + - usb: typec: fusb302: Fix masking of comparator and bc_lvl interrupts + - usb: xhci: tegra: Check padctrl interrupt presence in device tree + - usb: hub: Fix usb enumeration issue due to address0 race + - usb: hub: Fix locking issues with address0_mutex + - binder: fix test regression due to sender_euid change + - ALSA: ctxfi: Fix out-of-range access + - ALSA: hda/realtek: Add quirk for ASRock NUC Box 1100 + - ALSA: hda/realtek: Fix LED on HP ProBook 435 G7 + - media: cec: copy sequence field for the reply + - Revert "parisc: Fix backtrace to always include init funtion names" + - HID: wacom: Use "Confidence" flag to prevent reporting invalid contacts + - staging/fbtft: Fix backlight + - staging: greybus: Add missing rwsem around snd_ctl_remove() calls + - staging: rtl8192e: Fix use after free in _rtl92e_pci_disconnect() + - staging: r8188eu: Use kzalloc() with GFP_ATOMIC in atomic context + - staging: r8188eu: Fix breakage introduced when 5G code was removed + - staging: r8188eu: use GFP_ATOMIC under spinlock + - staging: r8188eu: fix a memory leak in rtw_wx_read32() + - fuse: release pipe buf after last use + - xen: don't continue xenstore initialization in case of errors + - xen: detect uninitialized xenbus in xenbus_init + - io_uring: correct link-list traversal locking + - io_uring: fail cancellation for EXITING tasks + - io_uring: fix link traversal locking + - drm/amdgpu: IH process reset count when restart + - drm/amdgpu/pm: fix powerplay OD interface + - drm/nouveau: recognise GA106 + - ksmbd: downgrade addition info error msg to debug in smb2_get_info_sec() + - ksmbd: contain default data stream even if xattr is empty + - ksmbd: fix memleak in get_file_stream_info() + - KVM: PPC: Book3S HV: Prevent POWER7/8 TLB flush flushing SLB + - tracing/uprobe: Fix uprobe_perf_open probes iteration + - tracing: Fix pid filtering when triggers are attached + - mmc: sdhci-esdhc-imx: disable CMDQ support + - mmc: sdhci: Fix ADMA for PAGE_SIZE >= 64KiB + - mdio: aspeed: Fix "Link is Down" issue + - arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd + - cpufreq: intel_pstate: Fix active mode offline/online EPP handling + - powerpc/32: Fix hardlockup on vmap stack overflow + - iomap: Fix inline extent handling in iomap_readpage + - NFSv42: Fix pagecache invalidation after COPY/CLONE + - PCI: aardvark: Deduplicate code in advk_pcie_rd_conf() + - PCI: aardvark: Implement re-issuing config requests on CRS response + - PCI: aardvark: Simplify initialization of rootcap on virtual bridge + - PCI: aardvark: Fix link training + - drm/amd/display: Fix OLED brightness control on eDP + - proc/vmcore: fix clearing user buffer by properly using clear_user() + - ASoC: SOF: Intel: hda: fix hotplug when only codec is suspended + - netfilter: ctnetlink: fix filtering with CTA_TUPLE_REPLY + - netfilter: ctnetlink: do not erase error code with EINVAL + - netfilter: ipvs: Fix reuse connection if RS weight is 0 + - netfilter: flowtable: fix IPv6 tunnel addr match + - media: v4l2-core: fix VIDIOC_DQEVENT handling on non-x86 + - firmware: arm_scmi: Fix null de-reference on error path + - ARM: dts: BCM5301X: Fix I2C controller interrupt + - ARM: dts: BCM5301X: Add interrupt properties to GPIO node + - ARM: dts: bcm2711: Fix PCIe interrupts + - ASoC: qdsp6: q6routing: Conditionally reset FrontEnd Mixer + - ASoC: qdsp6: q6asm: fix q6asm_dai_prepare error handling + - ASoC: topology: Add missing rwsem around snd_ctl_remove() calls + - ASoC: codecs: wcd938x: fix volatile register range + - ASoC: codecs: wcd934x: return error code correctly from hw_params + - ASoC: codecs: lpass-rx-macro: fix HPHR setting CLSH mask + - net: ieee802154: handle iftypes as u32 + - firmware: arm_scmi: Fix base agent discover response + - firmware: arm_scmi: pm: Propagate return value to caller + - ASoC: stm32: i2s: fix 32 bits channel length without mclk + - NFSv42: Don't fail clone() unless the OP_CLONE operation failed + - ARM: socfpga: Fix crash with CONFIG_FORTIRY_SOURCE + - drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks + - scsi: qla2xxx: edif: Fix off by one bug in qla_edif_app_getfcinfo() + - scsi: mpt3sas: Fix kernel panic during drive powercycle test + - scsi: mpt3sas: Fix system going into read-only mode + - scsi: mpt3sas: Fix incorrect system timestamp + - drm/vc4: fix error code in vc4_create_object() + - drm/aspeed: Fix vga_pw sysfs output + - net: marvell: prestera: fix brige port operation + - net: marvell: prestera: fix double free issue on err path + - HID: input: Fix parsing of HID_CP_CONSUMER_CONTROL fields + - HID: input: set usage type to key on keycode remap + - HID: magicmouse: prevent division by 0 on scroll + - iavf: Prevent changing static ITR values if adaptive moderation is on + - iavf: Fix refreshing iavf adapter stats on ethtool request + - iavf: Fix VLAN feature flags after VFR + - x86/pvh: add prototype for xen_pvh_init() + - xen/pvh: add missing prototype to header + - ALSA: intel-dsp-config: add quirk for JSL devices based on ES8336 codec + - mptcp: fix delack timer + - mptcp: use delegate action to schedule 3rd ack retrans + - af_unix: fix regression in read after shutdown + - firmware: smccc: Fix check for ARCH_SOC_ID not implemented + - ipv6: fix typos in __ip6_finish_output() + - nfp: checking parameter process for rx-usecs/tx-usecs is invalid + - net: stmmac: retain PTP clock time during SIOCSHWTSTAMP ioctls + - net: ipv6: add fib6_nh_release_dsts stub + - net: nexthop: release IPv6 per-cpu dsts when replacing a nexthop group + - ice: fix vsi->txq_map sizing + - ice: avoid bpf_prog refcount underflow + - scsi: core: sysfs: Fix setting device state to SDEV_RUNNING + - scsi: scsi_debug: Zero clear zones at reset write pointer + - erofs: fix deadlock when shrink erofs slab + - i2c: virtio: disable timeout handling + - net/smc: Ensure the active closing peer first closes clcsock + - mlxsw: spectrum: Protect driver from buggy firmware + - net: ipa: directly disable ipa-setup-ready interrupt + - net: ipa: separate disabling setup from modem stop + - net: ipa: kill ipa_cmd_pipeline_clear() + - net: marvell: mvpp2: increase MTU limit when XDP enabled + - cpufreq: intel_pstate: Add Ice Lake server to out-of-band IDs + - nvmet-tcp: fix incomplete data digest send + - drm/hyperv: Fix device removal on Gen1 VMs + - arm64: uaccess: avoid blocking within critical sections + - net/ncsi : Add payload to be 32-bit aligned to fix dropped packets + - PM: hibernate: use correct mode for swsusp_close() + - drm/amd/display: Fix DPIA outbox timeout after GPU reset + - drm/amd/display: Set plane update flags for all planes in reset + - tcp_cubic: fix spurious Hystart ACK train detections for not-cwnd-limited + flows + - lan743x: fix deadlock in lan743x_phy_link_status_change() + - net: phylink: Force link down and retrigger resolve on interface change + - net: phylink: Force retrigger in case of latched link-fail indicator + - net/smc: Fix NULL pointer dereferencing in smc_vlan_by_tcpsk() + - net/smc: Fix loop in smc_listen + - nvmet: use IOCB_NOWAIT only if the filesystem supports it + - igb: fix netpoll exit with traffic + - MIPS: loongson64: fix FTLB configuration + - MIPS: use 3-level pgtable for 64KB page size on MIPS_VA_BITS_48 + - tls: splice_read: fix record type check + - tls: splice_read: fix accessing pre-processed records + - tls: fix replacing proto_ops + - net: stmmac: Disable Tx queues when reconfiguring the interface + - net/sched: sch_ets: don't peek at classes beyond 'nbands' + - ethtool: ioctl: fix potential NULL deref in ethtool_set_coalesce() + - net: vlan: fix underflow for the real_dev refcnt + - net/smc: Don't call clcsock shutdown twice when smc shutdown + - net: hns3: fix VF RSS failed problem after PF enable multi-TCs + - net: hns3: fix incorrect components info of ethtool --reset command + - net: mscc: ocelot: don't downgrade timestamping RX filters in SIOCSHWTSTAMP + - net: mscc: ocelot: correctly report the timestamping RX filters in ethtool + - locking/rwsem: Make handoff bit handling more consistent + - perf: Ignore sigtrap for tracepoints destined for other tasks + - sched/scs: Reset task stack state in bringup_cpu() + - iommu/rockchip: Fix PAGE_DESC_HI_MASKs for RK3568 + - iommu/vt-d: Fix unmap_pages support + - f2fs: quota: fix potential deadlock + - f2fs: set SBI_NEED_FSCK flag when inconsistent node block found + - riscv: dts: microchip: fix board compatible + - riscv: dts: microchip: drop duplicated MMC/SDHC node + - cifs: nosharesock should not share socket with future sessions + - ceph: properly handle statfs on multifs setups + - iommu/amd: Clarify AMD IOMMUv2 initialization messages + - vdpa_sim: avoid putting an uninitialized iova_domain + - vhost/vsock: fix incorrect used length reported to the guest + - ksmbd: Fix an error handling path in 'smb2_sess_setup()' + - tracing: Check pid filtering when creating events + - cifs: nosharesock should be set on new server + - io_uring: fix soft lockup when call __io_remove_buffers + - firmware: arm_scmi: Fix type error assignment in voltage protocol + - firmware: arm_scmi: Fix type error in sensor protocol + - docs: accounting: update delay-accounting.rst reference + - blk-mq: cancel blk-mq dispatch work in both blk_cleanup_queue and + disk_release() + - block: avoid to quiesce queue in elevator_init_mq + - drm/amdgpu/gfx10: add wraparound gpu counter check for APUs as well + - drm/amdgpu/gfx9: switch to golden tsc registers for renoir+ + - Linux 5.15.6 + + * Fix bogus HDMI audio interface (LP: #1953208) + - ALSA: hda/hdmi: Consider ELD is invalid when no SAD is present + + * Miscellaneous Ubuntu changes + - [Config] re-enabled UBSAN without TRAP + - SAUCE: ipv6: fix NULL pointer dereference in ip6_output() + - SAUCE: RDMA/core: Introduce peer memory interface + - [Config] toolchain version update + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] Temporarily disable signing for ppc64el and s390x" + - Revert "UBUNTU: SAUCE: vt -- maintain bootloader screen mode and content + until vt switch" + + -- Paolo Pisati Mon, 13 Dec 2021 12:13:17 +0100 + +linux (5.15.0-13.13) jammy; urgency=medium + + * jammy/linux: 5.15.0-13.13 -proposed tracker (LP: #1952583) + + * Packaging resync (LP: #1786013) + - [Packaging] resync update-dkms-versions helper + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Jammy update: v5.15.5 upstream stable release (LP: #1952579) + - arm64: zynqmp: Do not duplicate flash partition label property + - arm64: zynqmp: Fix serial compatible string + - clk: sunxi-ng: Unregister clocks/resets when unbinding + - ARM: dts: sunxi: Fix OPPs node name + - arm64: dts: allwinner: h5: Fix GPU thermal zone node name + - arm64: dts: allwinner: a100: Fix thermal zone node name + - staging: wfx: ensure IRQ is ready before enabling it + - ARM: dts: BCM5301X: Fix nodes names + - ARM: dts: BCM5301X: Fix MDIO mux binding + - ARM: dts: NSP: Fix mpcore, mmc node names + - arm64: dts: broadcom: bcm4908: Move reboot syscon out of bus + - scsi: pm80xx: Fix memory leak during rmmod + - scsi: lpfc: Fix list_add() corruption in lpfc_drain_txq() + - ASoC: mediatek: mt8195: Add missing of_node_put() + - arm64: dts: rockchip: Disable CDN DP on Pinebook Pro + - arm64: dts: hisilicon: fix arm,sp805 compatible string + - RDMA/bnxt_re: Check if the vlan is valid before reporting + - bus: ti-sysc: Add quirk handling for reinit on context lost + - bus: ti-sysc: Use context lost quirk for otg + - usb: musb: tusb6010: check return value after calling + platform_get_resource() + - usb: typec: tipd: Remove WARN_ON in tps6598x_block_read + - ARM: dts: ux500: Skomer regulator fixes + - staging: rtl8723bs: remove possible deadlock when disconnect (v2) + - staging: rtl8723bs: remove a second possible deadlock + - staging: rtl8723bs: remove a third possible deadlock + - ARM: BCM53016: Specify switch ports for Meraki MR32 + - arm64: dts: qcom: msm8998: Fix CPU/L2 idle state latency and residency + - arm64: dts: qcom: ipq6018: Fix qcom,controlled-remotely property + - arm64: dts: qcom: ipq8074: Fix qcom,controlled-remotely property + - arm64: dts: qcom: sdm845: Fix qcom,controlled-remotely property + - arm64: dts: freescale: fix arm,sp805 compatible string + - arm64: dts: ls1012a: Add serial alias for ls1012a-rdb + - RDMA/rxe: Separate HW and SW l/rkeys + - ASoC: SOF: Intel: hda-dai: fix potential locking issue + - scsi: core: Fix scsi_mode_sense() buffer length handling + - ALSA: usb-audio: disable implicit feedback sync for Behringer UFX1204 and + UFX1604 + - clk: imx: imx6ul: Move csi_sel mux to correct base register + - ASoC: es8316: Use IRQF_NO_AUTOEN when requesting the IRQ + - ASoC: rt5651: Use IRQF_NO_AUTOEN when requesting the IRQ + - ASoC: nau8824: Add DMI quirk mechanism for active-high jack-detect + - scsi: advansys: Fix kernel pointer leak + - scsi: smartpqi: Add controller handshake during kdump + - arm64: dts: imx8mm-kontron: Fix reset delays for ethernet PHY + - ALSA: intel-dsp-config: add quirk for APL/GLK/TGL devices based on ES8336 + codec + - ASoC: Intel: soc-acpi: add missing quirk for TGL SDCA single amp + - ASoC: Intel: sof_sdw: add missing quirk for Dell SKU 0A45 + - firmware_loader: fix pre-allocated buf built-in firmware use + - HID: multitouch: disable sticky fingers for UPERFECT Y + - ALSA: usb-audio: Add support for the Pioneer DJM 750MK2 Mixer/Soundcard + - ARM: dts: omap: fix gpmc,mux-add-data type + - usb: host: ohci-tmio: check return value after calling + platform_get_resource() + - ASoC: rt5682: fix a little pop while playback + - ARM: dts: ls1021a: move thermal-zones node out of soc/ + - ARM: dts: ls1021a-tsn: use generic "jedec,spi-nor" compatible for flash + - ALSA: ISA: not for M68K + - iommu/vt-d: Do not falsely log intel_iommu is unsupported kernel option + - tty: tty_buffer: Fix the softlockup issue in flush_to_ldisc + - MIPS: sni: Fix the build + - scsi: scsi_debug: Fix out-of-bound read in resp_readcap16() + - scsi: scsi_debug: Fix out-of-bound read in resp_report_tgtpgs() + - scsi: target: Fix ordered tag handling + - scsi: target: Fix alua_tg_pt_gps_count tracking + - iio: imu: st_lsm6dsx: Avoid potential array overflow in st_lsm6dsx_set_odr() + - RDMA/core: Use kvzalloc when allocating the struct ib_port + - scsi: lpfc: Fix use-after-free in lpfc_unreg_rpi() routine + - scsi: lpfc: Fix link down processing to address NULL pointer dereference + - scsi: lpfc: Allow fabric node recovery if recovery is in progress before + devloss + - memory: tegra20-emc: Add runtime dependency on devfreq governor module + - powerpc/5200: dts: fix memory node unit name + - ARM: dts: qcom: fix memory and mdio nodes naming for RB3011 + - arm64: dts: qcom: Fix node name of rpm-msg-ram device nodes + - ALSA: gus: fix null pointer dereference on pointer block + - ALSA: usb-audio: fix null pointer dereference on pointer cs_desc + - clk: at91: sama7g5: remove prescaler part of master clock + - iommu/dart: Initialize DART_STREAMS_ENABLE + - powerpc/dcr: Use cmplwi instead of 3-argument cmpli + - powerpc/8xx: Fix Oops with STRICT_KERNEL_RWX without DEBUG_RODATA_TEST + - sh: check return code of request_irq + - maple: fix wrong return value of maple_bus_init(). + - f2fs: fix up f2fs_lookup tracepoints + - f2fs: fix to use WHINT_MODE + - f2fs: fix wrong condition to trigger background checkpoint correctly + - sh: fix kconfig unmet dependency warning for FRAME_POINTER + - sh: math-emu: drop unused functions + - sh: define __BIG_ENDIAN for math-emu + - f2fs: compress: disallow disabling compress on non-empty compressed file + - f2fs: fix incorrect return value in f2fs_sanity_check_ckpt() + - clk: ingenic: Fix bugs with divided dividers + - clk/ast2600: Fix soc revision for AHB + - clk: qcom: gcc-msm8996: Drop (again) gcc_aggre1_pnoc_ahb_clk + - KVM: arm64: Fix host stage-2 finalization + - mips: BCM63XX: ensure that CPU_SUPPORTS_32BIT_KERNEL is set + - MIPS: boot/compressed/: add __bswapdi2() to target for ZSTD decompression + - sched/core: Mitigate race cpus_share_cache()/update_top_cache_domain() + - sched/fair: Prevent dead task groups from regaining cfs_rq's + - perf/x86/vlbr: Add c->flags to vlbr event constraints + - blkcg: Remove extra blkcg_bio_issue_init + - tracing/histogram: Do not copy the fixed-size char array field over the + field size + - perf bpf: Avoid memory leak from perf_env__insert_btf() + - perf bench futex: Fix memory leak of perf_cpu_map__new() + - perf tests: Remove bash construct from record+zstd_comp_decomp.sh + - drm/nouveau: hdmigv100.c: fix corrupted HDMI Vendor InfoFrame + - bpf: Fix inner map state pruning regression. + - samples/bpf: Fix summary per-sec stats in xdp_sample_user + - samples/bpf: Fix incorrect use of strlen in xdp_redirect_cpu + - selftests: net: switch to socat in the GSO GRE test + - net/ipa: ipa_resource: Fix wrong for loop range + - tcp: Fix uninitialized access in skb frags array for Rx 0cp. + - tracing: Add length protection to histogram string copies + - nl80211: fix radio statistics in survey dump + - mac80211: fix monitor_sdata RCU/locking assertions + - net: ipa: HOLB register sometimes must be written twice + - net: ipa: disable HOLB drop when updating timer + - selftests: gpio: fix gpio compiling error + - net: bnx2x: fix variable dereferenced before check + - bnxt_en: reject indirect blk offload when hw-tc-offload is off + - tipc: only accept encrypted MSG_CRYPTO msgs + - sock: fix /proc/net/sockstat underflow in sk_clone_lock() + - net/smc: Make sure the link_id is unique + - NFSD: Fix exposure in nfsd4_decode_bitmap() + - iavf: Fix return of set the new channel count + - iavf: check for null in iavf_fix_features + - iavf: free q_vectors before queues in iavf_disable_vf + - iavf: don't clear a lock we don't hold + - iavf: Fix failure to exit out from last all-multicast mode + - iavf: prevent accidental free of filter structure + - iavf: validate pointers + - iavf: Fix for the false positive ASQ/ARQ errors while issuing VF reset + - iavf: Fix for setting queues to 0 + - iavf: Restore VLAN filters after link down + - bpf: Fix toctou on read-only map's constant scalar tracking + - MIPS: generic/yamon-dt: fix uninitialized variable error + - mips: bcm63xx: add support for clk_get_parent() + - mips: lantiq: add support for clk_get_parent() + - gpio: rockchip: needs GENERIC_IRQ_CHIP to fix build errors + - platform/x86: hp_accel: Fix an error handling path in 'lis3lv02d_probe()' + - platform/x86: think-lmi: Abort probe on analyze failure + - udp: Validate checksum in udp_read_sock() + - btrfs: make 1-bit bit-fields of scrub_page unsigned int + - RDMA/core: Set send and receive CQ before forwarding to the driver + - net/mlx5e: kTLS, Fix crash in RX resync flow + - net/mlx5e: Wait for concurrent flow deletion during neigh/fib events + - net/mlx5: E-Switch, Fix resetting of encap mode when entering switchdev + - net/mlx5e: nullify cq->dbg pointer in mlx5_debug_cq_remove() + - net/mlx5: Update error handler for UCTX and UMEM + - net/mlx5: E-Switch, rebuild lag only when needed + - net/mlx5e: CT, Fix multiple allocations and memleak of mod acts + - net/mlx5: Lag, update tracker when state change event received + - net/mlx5: E-Switch, return error if encap isn't supported + - scsi: ufs: core: Improve SCSI abort handling + - scsi: core: sysfs: Fix hang when device state is set via sysfs + - scsi: ufs: core: Fix task management completion timeout race + - scsi: ufs: core: Fix another task management completion race + - net: mvmdio: fix compilation warning + - net: sched: act_mirred: drop dst for the direction from egress to ingress + - net: dpaa2-eth: fix use-after-free in dpaa2_eth_remove + - net: virtio_net_hdr_to_skb: count transport header in UFO + - i40e: Fix correct max_pkt_size on VF RX queue + - i40e: Fix NULL ptr dereference on VSI filter sync + - i40e: Fix changing previously set num_queue_pairs for PFs + - i40e: Fix ping is lost after configuring ADq on VF + - RDMA/mlx4: Do not fail the registration on port stats + - i40e: Fix warning message and call stack during rmmod i40e driver + - i40e: Fix creation of first queue by omitting it if is not power of two + - i40e: Fix display error code in dmesg + - NFC: reorganize the functions in nci_request + - NFC: reorder the logic in nfc_{un,}register_device + - NFC: add NCI_UNREG flag to eliminate the race + - e100: fix device suspend/resume + - ptp: ocp: Fix a couple NULL vs IS_ERR() checks + - tools build: Fix removal of feature-sync-compare-and-swap feature detection + - riscv: fix building external modules + - KVM: PPC: Book3S HV: Use GLOBAL_TOC for kvmppc_h_set_dabr/xdabr() + - powerpc: clean vdso32 and vdso64 directories + - powerpc/pseries: rename numa_dist_table to form2_distances + - powerpc/pseries: Fix numa FORM2 parsing fallback code + - pinctrl: qcom: sdm845: Enable dual edge errata + - pinctrl: qcom: sm8350: Correct UFS and SDC offsets + - perf/x86/intel/uncore: Fix filter_tid mask for CHA events on Skylake Server + - perf/x86/intel/uncore: Fix IIO event constraints for Skylake Server + - perf/x86/intel/uncore: Fix IIO event constraints for Snowridge + - s390/kexec: fix return code handling + - blk-cgroup: fix missing put device in error path from blkg_conf_pref() + - dmaengine: remove debugfs #ifdef + - tun: fix bonding active backup with arp monitoring + - Revert "mark pstore-blk as broken" + - pstore/blk: Use "%lu" to format unsigned long + - hexagon: export raw I/O routines for modules + - hexagon: clean up timer-regs.h + - tipc: check for null after calling kmemdup + - ipc: WARN if trying to remove ipc object which is absent + - shm: extend forced shm destroy to support objects from several IPC nses + - mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag + - hugetlb, userfaultfd: fix reservation restore on userfaultfd error + - kmap_local: don't assume kmap PTEs are linear arrays in memory + - mm/damon/dbgfs: use '__GFP_NOWARN' for user-specified size buffer allocation + - mm/damon/dbgfs: fix missed use of damon_dbgfs_lock + - x86/boot: Pull up cmdline preparation and early param parsing + - x86/sgx: Fix free page accounting + - x86/hyperv: Fix NULL deref in set_hv_tscchange_cb() if Hyper-V setup fails + - KVM: x86: Assume a 64-bit hypercall for guests with protected state + - KVM: x86: Fix uninitialized eoi_exit_bitmap usage in vcpu_load_eoi_exitmap() + - KVM: x86/mmu: include EFER.LMA in extended mmu role + - KVM: x86/xen: Fix get_attr of KVM_XEN_ATTR_TYPE_SHARED_INFO + - powerpc/signal32: Fix sigset_t copy + - powerpc/xive: Change IRQ domain to a tree domain + - powerpc/8xx: Fix pinned TLBs with CONFIG_STRICT_KERNEL_RWX + - Revert "drm/i915/tgl/dsi: Gate the ddi clocks after pll mapping" + - Revert "parisc: Reduce sigreturn trampoline to 3 instructions" + - ata: libata: improve ata_read_log_page() error message + - ata: libata: add missing ata_identify_page_supported() calls + - scsi: qla2xxx: Fix mailbox direction flags in qla2xxx_get_adapter_id() + - pinctrl: ralink: include 'ralink_regs.h' in 'pinctrl-mt7620.c' + - s390/setup: avoid reserving memory above identity mapping + - s390/boot: simplify and fix kernel memory layout setup + - s390/vdso: filter out -mstack-guard and -mstack-size + - s390/kexec: fix memory leak of ipl report buffer + - s390/dump: fix copying to user-space of swapped kdump oldmem + - block: Check ADMIN before NICE for IOPRIO_CLASS_RT + - fbdev: Prevent probing generic drivers if a FB is already registered + - KVM: SEV: Disallow COPY_ENC_CONTEXT_FROM if target has created vCPUs + - KVM: nVMX: don't use vcpu->arch.efer when checking host state on nested + state load + - drm/cma-helper: Release non-coherent memory with dma_free_noncoherent() + - printk: restore flushing of NMI buffers on remote CPUs after NMI backtraces + - udf: Fix crash after seekdir + - spi: fix use-after-free of the add_lock mutex + - net: stmmac: socfpga: add runtime suspend/resume callback for stratix10 + platform + - Drivers: hv: balloon: Use VMBUS_RING_SIZE() wrapper for dm_ring_size + - btrfs: fix memory ordering between normal and ordered work functions + - fs: handle circular mappings correctly + - net: stmmac: Fix signed/unsigned wreckage + - parisc/sticon: fix reverse colors + - cfg80211: call cfg80211_stop_ap when switch from P2P_GO type + - mac80211: fix radiotap header generation + - mac80211: drop check for DONT_REORDER in __ieee80211_select_queue + - drm/amd/display: Update swizzle mode enums + - drm/amd/display: Limit max DSC target bpp for specific monitors + - drm/i915/guc: Fix outstanding G2H accounting + - drm/i915/guc: Don't enable scheduling on a banned context, guc_id invalid, + not registered + - drm/i915/guc: Workaround reset G2H is received after schedule done G2H + - drm/i915/guc: Don't drop ce->guc_active.lock when unwinding context + - drm/i915/guc: Unwind context requests in reverse order + - drm/udl: fix control-message timeout + - drm/prime: Fix use after free in mmap with drm_gem_ttm_mmap + - drm/nouveau: Add a dedicated mutex for the clients list + - drm/nouveau: use drm_dev_unplug() during device removal + - drm/nouveau: clean up all clients on device removal + - drm/i915/dp: Ensure sink rate values are always valid + - drm/i915/dp: Ensure max link params are always valid + - drm/i915: Fix type1 DVI DP dual mode adapter heuristic for modern platforms + - drm/amdgpu: fix set scaling mode Full/Full aspect/Center not works on vga + and dvi connectors + - drm/amd/pm: avoid duplicate powergate/ungate setting + - signal: Implement force_fatal_sig + - exit/syscall_user_dispatch: Send ordinary signals on failure + - signal/powerpc: On swapcontext failure force SIGSEGV + - signal/s390: Use force_sigsegv in default_trap_handler + - signal/sparc32: Exit with a fatal signal when try_to_clear_window_buffer + fails + - signal/sparc32: In setup_rt_frame and setup_fram use force_fatal_sig + - signal/vm86_32: Properly send SIGSEGV when the vm86 state cannot be saved. + - signal/x86: In emulate_vsyscall force a signal instead of calling do_exit + - signal: Replace force_sigsegv(SIGSEGV) with force_fatal_sig(SIGSEGV) + - signal: Don't always set SA_IMMUTABLE for forced signals + - signal: Replace force_fatal_sig with force_exit_sig when in doubt + - hugetlbfs: flush TLBs correctly after huge_pmd_unshare + - RDMA/netlink: Add __maybe_unused to static inline in C file + - bpf: Forbid bpf_ktime_get_coarse_ns and bpf_timer_* in tracing progs + - selinux: fix NULL-pointer dereference when hashtab allocation fails + - ASoC: DAPM: Cover regression by kctl change notification fix + - ASoC: rsnd: fixup DMAEngine API + - usb: max-3421: Use driver data instead of maintaining a list of bound + devices + - ice: Fix VF true promiscuous mode + - ice: Delete always true check of PF pointer + - fs: export an inode_update_time helper + - btrfs: update device path inode time instead of bd_inode + - net: add and use skb_unclone_keeptruesize() helper + - x86/Kconfig: Fix an unused variable error in dell-smm-hwmon + - ALSA: hda: hdac_ext_stream: fix potential locking issues + - ALSA: hda: hdac_stream: fix potential locking issue in + snd_hdac_stream_assign() + - Linux 5.15.5 + + * Fix non-working e1000e device after resume (LP: #1951861) + - SAUCE: Revert "e1000e: Additional PHY power saving in S0ix" + - SAUCE: Revert "e1000e: Add polling mechanism to indicate CSME DPG exit" + - SAUCE: Revert "e1000e: Add handshake with the CSME to support S0ix" + + * [SRU][I/OEM-5.13/OEM-5.14] Add MAC passthrough support for more Lenovo docks + (LP: #1951767) + - net: usb: r8152: Add MAC passthrough support for more Lenovo Docks + + * [amdgpu] USB4 support for DP tunneling (LP: #1951868) + - drm/amd/display: Support for DMUB HPD interrupt handling + - drm/amd/display: Update link encoder object creation. + - drm/amd/display: USB4 DPIA enumeration and AUX Tunneling + - drm/amd/display: Support for DMUB HPD and HPD RX interrupt handling + - drm/amd/display: Set DPIA link endpoint type + - drm/amd/display: Stub out DPIA link training call + - drm/amd/display: Add stub to get DPIA tunneling device data + - drm/amd/display: Skip DPCD read for DPTX-to-DPIA hop + - drm/amd/display: Train DPIA links with fallback + - drm/amd/display: Implement DPIA training loop + - drm/amd/display: Implement DPIA link configuration + - drm/amd/display: Implement DPIA clock recovery phase + - drm/amd/display: Implement DPIA equalisation phase + - drm/amd/display: Implement end of training for hop in DPIA display path + - drm/amd/display: Support for SET_CONFIG processing with DMUB + - drm/amd/display: isolate link training setting override to its own function + - drm/amd/display: Read USB4 DP tunneling data from DPCD. + - drm/amd/display: Add dpia debug options + - drm/amd/display: Support for SET_CONFIG processing with DMUB + - drm/amd/display: Add DPCD writes at key points + - drm/amd/display: Fix DIG_HPD_SELECT for USB4 display endpoints. + - drm/amd/display: Add helper for blanking all dp displays + - drm/amd/display: Fix link training fallback logic + - drm/amd/display: Add debug flags for USB4 DP link training. + - drm/amd/display: Fix dynamic link encoder access. + - drm/amd/display: Fix concurrent dynamic encoder assignment + - drm/amd/display: Fix dynamic encoder reassignment + - drm/amd/display: Fix for access for ddc pin and aux engine. + - drm/amd/display: Deadlock/HPD Status/Crash Bug Fix + - drm/amd/display: Fix USB4 Aux via DMUB terminate unexpectedly + + * Miscellaneous Ubuntu changes + - [Packaging] Rewrite debian/scripts/module-check in Python + - [Config] update config and annotations after applying v5.15.5 + + -- Andrea Righi Mon, 29 Nov 2021 09:25:37 +0100 + +linux (5.15.0-12.12) jammy; urgency=medium + + * jammy/linux: 5.15.0-12.12 -proposed tracker (LP: #1951810) + + * Jammy update: v5.15.4 upstream stable release (LP: #1951820) + - string: uninline memcpy_and_pad + - Revert "drm: fb_helper: improve CONFIG_FB dependency" + - Revert "drm: fb_helper: fix CONFIG_FB dependency" + - KVM: Fix steal time asm constraints + - btrfs: introduce btrfs_is_data_reloc_root + - btrfs: zoned: add a dedicated data relocation block group + - btrfs: zoned: only allow one process to add pages to a relocation inode + - btrfs: zoned: use regular writes for relocation + - btrfs: check for relocation inodes on zoned btrfs in should_nocow + - btrfs: zoned: allow preallocation for relocation inodes + - fortify: Explicitly disable Clang support + - block: Add a helper to validate the block size + - loop: Use blk_validate_block_size() to validate block size + - Bluetooth: btusb: Add support for TP-Link UB500 Adapter + - parisc/entry: fix trace test in syscall exit path + - PCI/MSI: Deal with devices lying about their MSI mask capability + - PCI: Add MSI masking quirk for Nvidia ION AHCI + - perf/core: Avoid put_page() when GUP fails + - thermal: Fix NULL pointer dereferences in of_thermal_ functions + - Revert "ACPI: scan: Release PM resources blocked by unused objects" + - Linux 5.15.4 + + * Jammy update: v5.15.3 upstream stable release (LP: #1951822) + - xhci: Fix USB 3.1 enumeration issues by increasing roothub power-on-good + delay + - usb: xhci: Enable runtime-pm by default on AMD Yellow Carp platform + - Input: iforce - fix control-message timeout + - Input: elantench - fix misreporting trackpoint coordinates + - Input: i8042 - Add quirk for Fujitsu Lifebook T725 + - libata: fix read log timeout value + - ocfs2: fix data corruption on truncate + - scsi: scsi_ioctl: Validate command size + - scsi: core: Avoid leaving shost->last_reset with stale value if EH does not + run + - scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd() + - scsi: lpfc: Don't release final kref on Fport node while ABTS outstanding + - scsi: lpfc: Fix FCP I/O flush functionality for TMF routines + - scsi: qla2xxx: Fix crash in NVMe abort path + - scsi: qla2xxx: Fix kernel crash when accessing port_speed sysfs file + - scsi: qla2xxx: Fix use after free in eh_abort path + - ce/gf100: fix incorrect CE0 address calculation on some GPUs + - char: xillybus: fix msg_ep UAF in xillyusb_probe() + - mmc: mtk-sd: Add wait dma stop done flow + - mmc: dw_mmc: Dont wait for DRTO on Write RSP error + - exfat: fix incorrect loading of i_blocks for large files + - io-wq: remove worker to owner tw dependency + - parisc: Fix set_fixmap() on PA1.x CPUs + - parisc: Fix ptrace check on syscall return + - tpm: Check for integer overflow in tpm2_map_response_body() + - firmware/psci: fix application of sizeof to pointer + - crypto: s5p-sss - Add error handling in s5p_aes_probe() + - media: rkvdec: Do not override sizeimage for output format + - media: ite-cir: IR receiver stop working after receive overflow + - media: rkvdec: Support dynamic resolution changes + - media: ir-kbd-i2c: improve responsiveness of hauppauge zilog receivers + - media: v4l2-ioctl: Fix check_ext_ctrls + - ALSA: hda/realtek: Fix mic mute LED for the HP Spectre x360 14 + - ALSA: hda/realtek: Add a quirk for HP OMEN 15 mute LED + - ALSA: hda/realtek: Add quirk for Clevo PC70HS + - ALSA: hda/realtek: Headset fixup for Clevo NH77HJQ + - ALSA: hda/realtek: Add a quirk for Acer Spin SP513-54N + - ALSA: hda/realtek: Add quirk for ASUS UX550VE + - ALSA: hda/realtek: Add quirk for HP EliteBook 840 G7 mute LED + - ALSA: ua101: fix division by zero at probe + - ALSA: 6fire: fix control and bulk message timeouts + - ALSA: line6: fix control and interrupt message timeouts + - ALSA: mixer: oss: Fix racy access to slots + - ALSA: mixer: fix deadlock in snd_mixer_oss_set_volume + - ALSA: usb-audio: Line6 HX-Stomp XL USB_ID for 48k-fixed quirk + - ALSA: usb-audio: Add registration quirk for JBL Quantum 400 + - ALSA: hda: Free card instance properly at probe errors + - ALSA: synth: missing check for possible NULL after the call to kstrdup + - ALSA: pci: rme: Fix unaligned buffer addresses + - ALSA: PCM: Fix NULL dereference at mmap checks + - ALSA: timer: Fix use-after-free problem + - ALSA: timer: Unconditionally unlink slave instances, too + - Revert "ext4: enforce buffer head state assertion in ext4_da_map_blocks" + - ext4: fix lazy initialization next schedule time computation in more + granular unit + - ext4: ensure enough credits in ext4_ext_shift_path_extents + - ext4: refresh the ext4_ext_path struct after dropping i_data_sem. + - fuse: fix page stealing + - x86/sme: Use #define USE_EARLY_PGTABLE_L5 in mem_encrypt_identity.c + - x86/cpu: Fix migration safety with X86_BUG_NULL_SEL + - x86/irq: Ensure PI wakeup handler is unregistered before module unload + - x86/iopl: Fake iopl(3) CLI/STI usage + - btrfs: clear MISSING device status bit in btrfs_close_one_device + - btrfs: fix lost error handling when replaying directory deletes + - btrfs: call btrfs_check_rw_degradable only if there is a missing device + - KVM: x86/mmu: Drop a redundant, broken remote TLB flush + - KVM: VMX: Unregister posted interrupt wakeup handler on hardware unsetup + - KVM: PPC: Tick accounting should defer vtime accounting 'til after IRQ + handling + - ia64: kprobes: Fix to pass correct trampoline address to the handler + - selinux: fix race condition when computing ocontext SIDs + - ipmi:watchdog: Set panic count to proper value on a panic + - md/raid1: only allocate write behind bio for WriteMostly device + - hwmon: (pmbus/lm25066) Add offset coefficients + - regulator: s5m8767: do not use reset value as DVS voltage if GPIO DVS is + disabled + - regulator: dt-bindings: samsung,s5m8767: correct s5m8767,pmic-buck-default- + dvs-idx property + - EDAC/sb_edac: Fix top-of-high-memory value for Broadwell/Haswell + - mwifiex: fix division by zero in fw download path + - ath6kl: fix division by zero in send path + - ath6kl: fix control-message timeout + - ath10k: fix control-message timeout + - ath10k: fix division by zero in send path + - PCI: Mark Atheros QCA6174 to avoid bus reset + - rtl8187: fix control-message timeouts + - evm: mark evm_fixmode as __ro_after_init + - ifb: Depend on netfilter alternatively to tc + - platform/surface: aggregator_registry: Add support for Surface Laptop Studio + - mt76: mt7615: fix skb use-after-free on mac reset + - HID: surface-hid: Use correct event registry for managing HID events + - HID: surface-hid: Allow driver matching for target ID 1 devices + - wcn36xx: Fix HT40 capability for 2Ghz band + - wcn36xx: Fix tx_status mechanism + - wcn36xx: Fix (QoS) null data frame bitrate/modulation + - PM: sleep: Do not let "syscore" devices runtime-suspend during system + transitions + - mwifiex: Read a PCI register after writing the TX ring write pointer + - mwifiex: Try waking the firmware until we get an interrupt + - libata: fix checking of DMA state + - dma-buf: fix and rework dma_buf_poll v7 + - wcn36xx: handle connection loss indication + - rsi: fix occasional initialisation failure with BT coex + - rsi: fix key enabled check causing unwanted encryption for vap_id > 0 + - rsi: fix rate mask set leading to P2P failure + - rsi: Fix module dev_oper_mode parameter description + - perf/x86/intel/uncore: Support extra IMC channel on Ice Lake server + - perf/x86/intel/uncore: Fix invalid unit check + - perf/x86/intel/uncore: Fix Intel ICX IIO event constraints + - RDMA/qedr: Fix NULL deref for query_qp on the GSI QP + - ASoC: tegra: Set default card name for Trimslice + - ASoC: tegra: Restore AC97 support + - signal: Remove the bogus sigkill_pending in ptrace_stop + - memory: renesas-rpc-if: Correct QSPI data transfer in Manual mode + - signal/mips: Update (_save|_restore)_fp_context to fail with -EFAULT + - soc: samsung: exynos-pmu: Fix compilation when nothing selects + CONFIG_MFD_CORE + - soc: fsl: dpio: replace smp_processor_id with raw_smp_processor_id + - soc: fsl: dpio: use the combined functions to protect critical zone + - mtd: rawnand: socrates: Keep the driver compatible with on-die ECC engines + - mctp: handle the struct sockaddr_mctp padding fields + - power: supply: max17042_battery: Prevent int underflow in set_soc_threshold + - power: supply: max17042_battery: use VFSOC for capacity when no rsns + - iio: core: fix double free in iio_device_unregister_sysfs() + - iio: core: check return value when calling dev_set_name() + - KVM: arm64: Extract ESR_ELx.EC only + - KVM: x86: Fix recording of guest steal time / preempted status + - KVM: x86: Add helper to consolidate core logic of SET_CPUID{2} flows + - KVM: nVMX: Query current VMCS when determining if MSR bitmaps are in use + - KVM: nVMX: Handle dynamic MSR intercept toggling + - can: peak_usb: always ask for BERR reporting for PCAN-USB devices + - can: mcp251xfd: mcp251xfd_irq(): add missing + can_rx_offload_threaded_irq_finish() in case of bus off + - can: j1939: j1939_tp_cmd_recv(): ignore abort message in the BAM transport + - can: j1939: j1939_can_recv(): ignore messages with invalid source address + - can: j1939: j1939_tp_cmd_recv(): check the dst address of TP.CM_BAM + - iio: adc: tsc2046: fix scan interval warning + - powerpc/85xx: Fix oops when mpc85xx_smp_guts_ids node cannot be found + - io_uring: honour zeroes as io-wq worker limits + - ring-buffer: Protect ring_buffer_reset() from reentrancy + - serial: core: Fix initializing and restoring termios speed + - ifb: fix building without CONFIG_NET_CLS_ACT + - xen/balloon: add late_initcall_sync() for initial ballooning done + - ovl: fix use after free in struct ovl_aio_req + - ovl: fix filattr copy-up failure + - PCI: pci-bridge-emul: Fix emulation of W1C bits + - PCI: cadence: Add cdns_plat_pcie_probe() missing return + - cxl/pci: Fix NULL vs ERR_PTR confusion + - PCI: aardvark: Do not clear status bits of masked interrupts + - PCI: aardvark: Fix checking for link up via LTSSM state + - PCI: aardvark: Do not unmask unused interrupts + - PCI: aardvark: Fix reporting Data Link Layer Link Active + - PCI: aardvark: Fix configuring Reference clock + - PCI: aardvark: Fix return value of MSI domain .alloc() method + - PCI: aardvark: Read all 16-bits from PCIE_MSI_PAYLOAD_REG + - PCI: aardvark: Fix support for bus mastering and PCI_COMMAND on emulated + bridge + - PCI: aardvark: Fix support for PCI_BRIDGE_CTL_BUS_RESET on emulated bridge + - PCI: aardvark: Set PCI Bridge Class Code to PCI Bridge + - PCI: aardvark: Fix support for PCI_ROM_ADDRESS1 on emulated bridge + - quota: check block number when reading the block in quota file + - quota: correct error number in free_dqentry() + - cifs: To match file servers, make sure the server hostname matches + - cifs: set a minimum of 120s for next dns resolution + - mfd: simple-mfd-i2c: Select MFD_CORE to fix build error + - pinctrl: core: fix possible memory leak in pinctrl_enable() + - coresight: cti: Correct the parameter for pm_runtime_put + - coresight: trbe: Fix incorrect access of the sink specific data + - coresight: trbe: Defer the probe on offline CPUs + - iio: buffer: check return value of kstrdup_const() + - iio: buffer: Fix memory leak in iio_buffers_alloc_sysfs_and_mask() + - iio: buffer: Fix memory leak in __iio_buffer_alloc_sysfs_and_mask() + - iio: buffer: Fix memory leak in iio_buffer_register_legacy_sysfs_groups() + - drivers: iio: dac: ad5766: Fix dt property name + - iio: dac: ad5446: Fix ad5622_write() return value + - iio: ad5770r: make devicetree property reading consistent + - Documentation:devicetree:bindings:iio:dac: Fix val + - USB: serial: keyspan: fix memleak on probe errors + - serial: 8250: fix racy uartclk update + - ksmbd: set unique value to volume serial field in FS_VOLUME_INFORMATION + - io-wq: serialize hash clear with wakeup + - serial: 8250: Fix reporting real baudrate value in c_ospeed field + - Revert "serial: 8250: Fix reporting real baudrate value in c_ospeed field" + - most: fix control-message timeouts + - USB: iowarrior: fix control-message timeouts + - USB: chipidea: fix interrupt deadlock + - power: supply: max17042_battery: Clear status bits in interrupt handler + - component: do not leave master devres group open after bind + - dma-buf: WARN on dmabuf release with pending attachments + - drm: panel-orientation-quirks: Update the Lenovo Ideapad D330 quirk (v2) + - drm: panel-orientation-quirks: Add quirk for KD Kurio Smart C15200 2-in-1 + - drm: panel-orientation-quirks: Add quirk for the Samsung Galaxy Book 10.6 + - Bluetooth: sco: Fix lock_sock() blockage by memcpy_from_msg() + - Bluetooth: fix use-after-free error in lock_sock_nested() + - Bluetooth: call sock_hold earlier in sco_conn_del + - drm/panel-orientation-quirks: add Valve Steam Deck + - rcutorture: Avoid problematic critical section nesting on PREEMPT_RT + - platform/x86: wmi: do not fail if disabling fails + - drm/amdgpu: move iommu_resume before ip init/resume + - MIPS: lantiq: dma: add small delay after reset + - MIPS: lantiq: dma: reset correct number of channel + - locking/lockdep: Avoid RCU-induced noinstr fail + - net: sched: update default qdisc visibility after Tx queue cnt changes + - rcu-tasks: Move RTGS_WAIT_CBS to beginning of rcu_tasks_kthread() loop + - smackfs: Fix use-after-free in netlbl_catmap_walk() + - ath11k: Align bss_chan_info structure with firmware + - crypto: aesni - check walk.nbytes instead of err + - x86/mm/64: Improve stack overflow warnings + - x86: Increase exception stack sizes + - mwifiex: Run SET_BSS_MODE when changing from P2P to STATION vif-type + - mwifiex: Properly initialize private structure on interface type changes + - spi: Check we have a spi_device_id for each DT compatible + - fscrypt: allow 256-bit master keys with AES-256-XTS + - drm/amdgpu: Fix MMIO access page fault + - drm/amd/display: Fix null pointer dereference for encoders + - selftests: net: fib_nexthops: Wait before checking reported idle time + - ath11k: Avoid reg rules update during firmware recovery + - ath11k: add handler for scan event WMI_SCAN_EVENT_DEQUEUED + - ath11k: Change DMA_FROM_DEVICE to DMA_TO_DEVICE when map reinjected packets + - ath10k: high latency fixes for beacon buffer + - octeontx2-pf: Enable promisc/allmulti match MCAM entries. + - media: mt9p031: Fix corrupted frame after restarting stream + - media: netup_unidvb: handle interrupt properly according to the firmware + - media: atomisp: Fix error handling in probe + - media: stm32: Potential NULL pointer dereference in dcmi_irq_thread() + - media: uvcvideo: Set capability in s_param + - media: uvcvideo: Return -EIO for control errors + - media: uvcvideo: Set unique vdev name based in type + - media: vidtv: Fix memory leak in remove + - media: s5p-mfc: fix possible null-pointer dereference in s5p_mfc_probe() + - media: s5p-mfc: Add checking to s5p_mfc_probe(). + - media: videobuf2: rework vb2_mem_ops API + - media: imx: set a media_device bus_info string + - media: rcar-vin: Use user provided buffers when starting + - media: mceusb: return without resubmitting URB in case of -EPROTO error. + - ia64: don't do IA64_CMPXCHG_DEBUG without CONFIG_PRINTK + - rtw88: fix RX clock gate setting while fifo dump + - brcmfmac: Add DMI nvram filename quirk for Cyberbook T116 tablet + - media: rcar-csi2: Add checking to rcsi2_start_receiver() + - ipmi: Disable some operations during a panic + - fs/proc/uptime.c: Fix idle time reporting in /proc/uptime + - kselftests/sched: cleanup the child processes + - ACPICA: Avoid evaluating methods too early during system resume + - cpufreq: Make policy min/max hard requirements + - ice: Move devlink port to PF/VF struct + - media: imx-jpeg: Fix possible null pointer dereference + - media: ipu3-imgu: imgu_fmt: Handle properly try + - media: ipu3-imgu: VIDIOC_QUERYCAP: Fix bus_info + - media: usb: dvd-usb: fix uninit-value bug in dibusb_read_eeprom_byte() + - net-sysfs: try not to restart the syscall if it will fail eventually + - drm/amdkfd: rm BO resv on validation to avoid deadlock + - tracefs: Have tracefs directories not set OTH permission bits by default + - tracing: Disable "other" permission bits in the tracefs files + - ath: dfs_pattern_detector: Fix possible null-pointer dereference in + channel_detector_create() + - KVM: arm64: Propagate errors from __pkvm_prot_finalize hypercall + - mmc: moxart: Fix reference count leaks in moxart_probe + - iov_iter: Fix iov_iter_get_pages{,_alloc} page fault return value + - ACPI: battery: Accept charges over the design capacity as full + - ACPI: scan: Release PM resources blocked by unused objects + - drm/amd/display: fix null pointer deref when plugging in display + - drm/amdkfd: fix resume error when iommu disabled in Picasso + - net: phy: micrel: make *-skew-ps check more lenient + - leaking_addresses: Always print a trailing newline + - thermal/core: Fix null pointer dereference in thermal_release() + - drm/msm: prevent NULL dereference in msm_gpu_crashstate_capture() + - thermal/drivers/tsens: Add timeout to get_temp_tsens_valid + - block: bump max plugged deferred size from 16 to 32 + - floppy: fix calling platform_device_unregister() on invalid drives + - md: update superblock after changing rdev flags in state_store + - memstick: r592: Fix a UAF bug when removing the driver + - locking/rwsem: Disable preemption for spinning region + - lib/xz: Avoid overlapping memcpy() with invalid input with in-place + decompression + - lib/xz: Validate the value before assigning it to an enum variable + - workqueue: make sysfs of unbound kworker cpumask more clever + - tracing/cfi: Fix cmp_entries_* functions signature mismatch + - mt76: mt7915: fix an off-by-one bound check + - mwl8k: Fix use-after-free in mwl8k_fw_state_machine() + - iwlwifi: change all JnP to NO-160 configuration + - block: remove inaccurate requeue check + - media: allegro: ignore interrupt if mailbox is not initialized + - drm/amdgpu/pm: properly handle sclk for profiling modes on vangogh + - nvmet: fix use-after-free when a port is removed + - nvmet-rdma: fix use-after-free when a port is removed + - nvmet-tcp: fix use-after-free when a port is removed + - nvme: drop scan_lock and always kick requeue list when removing namespaces + - samples/bpf: Fix application of sizeof to pointer + - arm64: vdso32: suppress error message for 'make mrproper' + - PM: hibernate: Get block device exclusively in swsusp_check() + - selftests: kvm: fix mismatched fclose() after popen() + - selftests/bpf: Fix perf_buffer test on system with offline cpus + - iwlwifi: mvm: disable RX-diversity in powersave + - smackfs: use __GFP_NOFAIL for smk_cipso_doi() + - ARM: clang: Do not rely on lr register for stacktrace + - gre/sit: Don't generate link-local addr if addr_gen_mode is + IN6_ADDR_GEN_MODE_NONE + - can: bittiming: can_fixup_bittiming(): change type of tseg1 and alltseg to + unsigned int + - gfs2: Cancel remote delete work asynchronously + - gfs2: Fix glock_hash_walk bugs + - ARM: 9136/1: ARMv7-M uses BE-8, not BE-32 + - tools/latency-collector: Use correct size when writing queue_full_warning + - vrf: run conntrack only in context of lower/physdev for locally generated + packets + - net: annotate data-race in neigh_output() + - ACPI: AC: Quirk GK45 to skip reading _PSR + - ACPI: resources: Add one more Medion model in IRQ override quirk + - btrfs: reflink: initialize return value to 0 in btrfs_extent_same() + - btrfs: do not take the uuid_mutex in btrfs_rm_device + - spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in + bcm_qspi_probe() + - wcn36xx: Correct band/freq reporting on RX + - wcn36xx: Fix packet drop on resume + - Revert "wcn36xx: Enable firmware link monitoring" + - ftrace: do CPU checking after preemption disabled + - inet: remove races in inet{6}_getname() + - x86/hyperv: Protect set_hv_tscchange_cb() against getting preempted + - drm/amd/display: dcn20_resource_construct reduce scope of FPU enabled + - perf/x86/intel: Fix ICL/SPR INST_RETIRED.PREC_DIST encodings + - parisc: fix warning in flush_tlb_all + - task_stack: Fix end_of_stack() for architectures with upwards-growing stack + - erofs: don't trigger WARN() when decompression fails + - parisc/unwind: fix unwinder when CONFIG_64BIT is enabled + - parisc/kgdb: add kgdb_roundup() to make kgdb work with idle polling + - netfilter: conntrack: set on IPS_ASSURED if flows enters internal stream + state + - selftests/bpf: Fix strobemeta selftest regression + - fbdev/efifb: Release PCI device's runtime PM ref during FB destroy + - drm/bridge: anx7625: Propagate errors from sp_tx_rst_aux() + - perf/x86/intel/uncore: Fix Intel SPR CHA event constraints + - perf/x86/intel/uncore: Fix Intel SPR IIO event constraints + - perf/x86/intel/uncore: Fix Intel SPR M2PCIE event constraints + - perf/x86/intel/uncore: Fix Intel SPR M3UPI event constraints + - drm/bridge: it66121: Initialize {device,vendor}_ids + - drm/bridge: it66121: Wait for next bridge to be probed + - Bluetooth: fix init and cleanup of sco_conn.timeout_work + - libbpf: Don't crash on object files with no symbol tables + - Bluetooth: hci_uart: fix GPF in h5_recv + - rcu: Fix existing exp request check in sync_sched_exp_online_cleanup() + - MIPS: lantiq: dma: fix burst length for DEU + - x86/xen: Mark cpu_bringup_and_idle() as dead_end_function + - objtool: Handle __sanitize_cov*() tail calls + - net/mlx5: Publish and unpublish all devlink parameters at once + - drm/v3d: fix wait for TMU write combiner flush + - crypto: sm4 - Do not change section of ck and sbox + - virtio-gpu: fix possible memory allocation failure + - lockdep: Let lock_is_held_type() detect recursive read as read + - net: net_namespace: Fix undefined member in key_remove_domain() + - net: phylink: don't call netif_carrier_off() with NULL netdev + - drm: bridge: it66121: Fix return value it66121_probe + - spi: Fixed division by zero warning + - cgroup: Make rebind_subsystems() disable v2 controllers all at once + - wcn36xx: Fix Antenna Diversity Switching + - wilc1000: fix possible memory leak in cfg_scan_result() + - Bluetooth: btmtkuart: fix a memleak in mtk_hci_wmt_sync + - drm/amdgpu: Fix crash on device remove/driver unload + - drm/amd/display: Pass display_pipe_params_st as const in DML + - drm/amdgpu: move amdgpu_virt_release_full_gpu to fini_early stage + - crypto: caam - disable pkc for non-E SoCs + - crypto: qat - power up 4xxx device + - Bluetooth: hci_h5: Fix (runtime)suspend issues on RTL8723BS HCIs + - bnxt_en: Check devlink allocation and registration status + - qed: Don't ignore devlink allocation failures + - rxrpc: Fix _usecs_to_jiffies() by using usecs_to_jiffies() + - mptcp: do not shrink snd_nxt when recovering + - fortify: Fix dropped strcpy() compile-time write overflow check + - mac80211: twt: don't use potentially unaligned pointer + - cfg80211: always free wiphy specific regdomain + - net/mlx5: Accept devlink user input after driver initialization complete + - net: dsa: rtl8366rb: Fix off-by-one bug + - net: dsa: rtl8366: Fix a bug in deleting VLANs + - bpf/tests: Fix error in tail call limit tests + - ath11k: fix some sleeping in atomic bugs + - ath11k: Avoid race during regd updates + - ath11k: fix packet drops due to incorrect 6 GHz freq value in rx status + - ath11k: Fix memory leak in ath11k_qmi_driver_event_work + - gve: DQO: avoid unused variable warnings + - ath10k: Fix missing frame timestamp for beacon/probe-resp + - ath10k: sdio: Add missing BH locking around napi_schdule() + - drm/ttm: stop calling tt_swapin in vm_access + - arm64: mm: update max_pfn after memory hotplug + - drm/amdgpu: fix warning for overflow check + - libbpf: Fix skel_internal.h to set errno on loader retval < 0 + - media: em28xx: add missing em28xx_close_extension + - media: meson-ge2d: Fix rotation parameter changes detection in + 'ge2d_s_ctrl()' + - media: cxd2880-spi: Fix a null pointer dereference on error handling path + - media: ttusb-dec: avoid release of non-acquired mutex + - media: dvb-usb: fix ununit-value in az6027_rc_query + - media: imx258: Fix getting clock frequency + - media: v4l2-ioctl: S_CTRL output the right value + - media: mtk-vcodec: venc: fix return value when start_streaming fails + - media: TDA1997x: handle short reads of hdmi info frame. + - media: mtk-vpu: Fix a resource leak in the error handling path of + 'mtk_vpu_probe()' + - media: imx-jpeg: Fix the error handling path of 'mxc_jpeg_probe()' + - media: i2c: ths8200 needs V4L2_ASYNC + - media: sun6i-csi: Allow the video device to be open multiple times + - media: radio-wl1273: Avoid card name truncation + - media: si470x: Avoid card name truncation + - media: tm6000: Avoid card name truncation + - media: cx23885: Fix snd_card_free call on null card pointer + - media: atmel: fix the ispck initialization + - scs: Release kasan vmalloc poison in scs_free process + - kprobes: Do not use local variable when creating debugfs file + - crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency + - drm: fb_helper: fix CONFIG_FB dependency + - cpuidle: Fix kobject memory leaks in error paths + - media: em28xx: Don't use ops->suspend if it is NULL + - ath10k: Don't always treat modem stop events as crashes + - ath9k: Fix potential interrupt storm on queue reset + - PM: EM: Fix inefficient states detection + - x86/insn: Use get_unaligned() instead of memcpy() + - EDAC/amd64: Handle three rank interleaving mode + - rcu: Always inline rcu_dynticks_task*_{enter,exit}() + - rcu: Fix rcu_dynticks_curr_cpu_in_eqs() vs noinstr + - netfilter: nft_dynset: relax superfluous check on set updates + - media: venus: fix vpp frequency calculation for decoder + - media: dvb-frontends: mn88443x: Handle errors of clk_prepare_enable() + - crypto: ccree - avoid out-of-range warnings from clang + - crypto: qat - detect PFVF collision after ACK + - crypto: qat - disregard spurious PFVF interrupts + - hwrng: mtk - Force runtime pm ops for sleep ops + - ima: fix deadlock when traversing "ima_default_rules". + - b43legacy: fix a lower bounds test + - b43: fix a lower bounds test + - gve: Recover from queue stall due to missed IRQ + - gve: Track RX buffer allocation failures + - mmc: sdhci-omap: Fix NULL pointer exception if regulator is not configured + - mmc: sdhci-omap: Fix context restore + - memstick: avoid out-of-range warning + - memstick: jmb38x_ms: use appropriate free function in jmb38x_ms_alloc_host() + - net, neigh: Fix NTF_EXT_LEARNED in combination with NTF_USE + - hwmon: Fix possible memleak in __hwmon_device_register() + - hwmon: (pmbus/lm25066) Let compiler determine outer dimension of + lm25066_coeff + - ath10k: fix max antenna gain unit + - kernel/sched: Fix sched_fork() access an invalid sched_task_group + - net: fealnx: fix build for UML + - net: intel: igc_ptp: fix build for UML + - net: tulip: winbond-840: fix build for UML + - tcp: switch orphan_count to bare per-cpu counters + - crypto: octeontx2 - set assoclen in aead_do_fallback() + - thermal/core: fix a UAF bug in __thermal_cooling_device_register() + - drm/msm/dsi: do not enable irq handler before powering up the host + - drm/msm: Fix potential Oops in a6xx_gmu_rpmh_init() + - drm/msm: potential error pointer dereference in init() + - drm/msm: unlock on error in get_sched_entity() + - drm/msm: fix potential NULL dereference in cleanup + - drm/msm: uninitialized variable in msm_gem_import() + - net: stream: don't purge sk_error_queue in sk_stream_kill_queues() + - thermal/drivers/qcom/lmh: make QCOM_LMH depends on QCOM_SCM + - mailbox: Remove WARN_ON for async_cb.cb in cmdq_exec_done + - media: ivtv: fix build for UML + - media: ir_toy: assignment to be16 should be of correct type + - mmc: mxs-mmc: disable regulator on error and in the remove function + - io-wq: Remove duplicate code in io_workqueue_create() + - block: ataflop: fix breakage introduced at blk-mq refactoring + - platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning + - mailbox: mtk-cmdq: Validate alias_id on probe + - mailbox: mtk-cmdq: Fix local clock ID usage + - ACPI: PM: Turn off unused wakeup power resources + - ACPI: PM: Fix sharing of wakeup power resources + - drm/amdkfd: Fix an inappropriate error handling in allloc memory of gpu + - mt76: mt7921: fix endianness in mt7921_mcu_tx_done_event + - mt76: mt7915: fix endianness warning in mt7915_mac_add_txs_skb + - mt76: mt7921: fix endianness warning in mt7921_update_txs + - mt76: mt7615: fix endianness warning in mt7615_mac_write_txwi + - mt76: mt7915: fix info leak in mt7915_mcu_set_pre_cal() + - mt76: connac: fix mt76_connac_gtk_rekey_tlv usage + - mt76: fix build error implicit enumeration conversion + - mt76: mt7921: fix survey-dump reporting + - mt76: mt76x02: fix endianness warnings in mt76x02_mac.c + - mt76: mt7921: Fix out of order process by invalid event pkt + - mt76: mt7915: fix potential overflow of eeprom page index + - mt76: mt7915: fix bit fields for HT rate idx + - mt76: mt7921: fix dma hang in rmmod + - mt76: connac: fix GTK rekey offload failure on WPA mixed mode + - mt76: overwrite default reg_ops if necessary + - mt76: mt7921: report HE MU radiotap + - mt76: mt7921: fix firmware usage of RA info using legacy rates + - mt76: mt7921: fix kernel warning from cfg80211_calculate_bitrate + - mt76: mt7921: always wake device if necessary in debugfs + - mt76: mt7915: fix hwmon temp sensor mem use-after-free + - mt76: mt7615: fix hwmon temp sensor mem use-after-free + - mt76: mt7915: fix possible infinite loop release semaphore + - mt76: mt7921: fix retrying release semaphore without end + - mt76: mt7615: fix monitor mode tear down crash + - mt76: connac: fix possible NULL pointer dereference in + mt76_connac_get_phy_mode_v2 + - mt76: mt7915: fix sta_rec_wtbl tag len + - mt76: mt7915: fix muar_idx in mt7915_mcu_alloc_sta_req() + - rsi: stop thread firstly in rsi_91x_init() error handling + - mwifiex: Send DELBA requests according to spec + - iwlwifi: mvm: reset PM state on unsuccessful resume + - iwlwifi: pnvm: don't kmemdup() more than we have + - iwlwifi: pnvm: read EFI data only if long enough + - net: enetc: unmap DMA in enetc_send_cmd() + - phy: micrel: ksz8041nl: do not use power down mode + - nbd: Fix use-after-free in pid_show + - nvme-rdma: fix error code in nvme_rdma_setup_ctrl + - PM: hibernate: fix sparse warnings + - clocksource/drivers/timer-ti-dm: Select TIMER_OF + - x86/sev: Fix stack type check in vc_switch_off_ist() + - drm/msm: Fix potential NULL dereference in DPU SSPP + - drm/msm/dsi: fix wrong type in msm_dsi_host + - crypto: tcrypt - fix skcipher multi-buffer tests for 1420B blocks + - smackfs: use netlbl_cfg_cipsov4_del() for deleting cipso_v4_doi + - KVM: selftests: Fix nested SVM tests when built with clang + - libbpf: Fix memory leak in btf__dedup() + - bpftool: Avoid leaking the JSON writer prepared for program metadata + - libbpf: Fix overflow in BTF sanity checks + - libbpf: Fix BTF header parsing checks + - mt76: mt7615: mt7622: fix ibss and meshpoint + - s390/gmap: validate VMA in __gmap_zap() + - s390/gmap: don't unconditionally call pte_unmap_unlock() in __gmap_zap() + - s390/mm: validate VMA in PGSTE manipulation functions + - s390/mm: fix VMA and page table handling code in storage key handling + functions + - s390/uv: fully validate the VMA before calling follow_page() + - KVM: s390: pv: avoid double free of sida page + - KVM: s390: pv: avoid stalls for kvm_s390_pv_init_vm + - irq: mips: avoid nested irq_enter() + - net: dsa: avoid refcount warnings when ->port_{fdb,mdb}_del returns error + - ARM: 9142/1: kasan: work around LPAE build warning + - ath10k: fix module load regression with iram-recovery feature + - block: ataflop: more blk-mq refactoring fixes + - blk-cgroup: synchronize blkg creation against policy deactivation + - libbpf: Fix off-by-one bug in bpf_core_apply_relo() + - tpm: fix Atmel TPM crash caused by too frequent queries + - tpm_tis_spi: Add missing SPI ID + - libbpf: Fix endianness detection in BPF_CORE_READ_BITFIELD_PROBED() + - tcp: don't free a FIN sk_buff in tcp_remove_empty_skb() + - tracing: Fix missing trace_boot_init_histograms kstrdup NULL checks + - cpufreq: intel_pstate: Fix cpu->pstate.turbo_freq initialization + - spi: spi-rpc-if: Check return value of rpcif_sw_init() + - samples/kretprobes: Fix return value if register_kretprobe() failed + - KVM: s390: Fix handle_sske page fault handling + - libertas_tf: Fix possible memory leak in probe and disconnect + - libertas: Fix possible memory leak in probe and disconnect + - wcn36xx: add proper DMA memory barriers in rx path + - wcn36xx: Fix discarded frames due to wrong sequence number + - bpf: Avoid races in __bpf_prog_run() for 32bit arches + - bpf: Fixes possible race in update_prog_stats() for 32bit arches + - wcn36xx: Channel list update before hardware scan + - drm/amdgpu: fix a potential memory leak in amdgpu_device_fini_sw() + - drm/amdgpu/gmc6: fix DMA mask from 44 to 40 bits + - selftests/bpf: Fix fd cleanup in sk_lookup test + - selftests/bpf: Fix memory leak in test_ima + - sctp: allow IP fragmentation when PLPMTUD enters Error state + - sctp: reset probe_timer in sctp_transport_pl_update + - sctp: subtract sctphdr len in sctp_transport_pl_hlen + - sctp: return true only for pathmtu update in sctp_transport_pl_toobig + - net: amd-xgbe: Toggle PLL settings during rate change + - ipmi: kcs_bmc: Fix a memory leak in the error handling path of + 'kcs_bmc_serio_add_device()' + - nfp: fix NULL pointer access when scheduling dim work + - nfp: fix potential deadlock when canceling dim work + - net: phylink: avoid mvneta warning when setting pause parameters + - net: bridge: fix uninitialized variables when BRIDGE_CFM is disabled + - selftests: net: bridge: update IGMP/MLD membership interval value + - crypto: pcrypt - Delay write to padata->info + - selftests/bpf: Fix fclose/pclose mismatch in test_progs + - udp6: allow SO_MARK ctrl msg to affect routing + - ibmvnic: don't stop queue in xmit + - ibmvnic: Process crqs after enabling interrupts + - ibmvnic: delay complete() + - selftests: mptcp: fix proto type in link_failure tests + - skmsg: Lose offset info in sk_psock_skb_ingress + - cgroup: Fix rootcg cpu.stat guest double counting + - bpf: Fix propagation of bounds from 64-bit min/max into 32-bit and var_off. + - bpf: Fix propagation of signed bounds from 64-bit min/max into 32-bit. + - of: unittest: fix EXPECT text for gpio hog errors + - cpufreq: Fix parameter in parse_perf_domain() + - staging: r8188eu: fix memory leak in rtw_set_key + - arm64: dts: meson: sm1: add Ethernet PHY reset line for ODROID-C4/HC4 + - iio: st_sensors: disable regulators after device unregistration + - RDMA/rxe: Fix wrong port_cap_flags + - ARM: dts: BCM5301X: Fix memory nodes names + - arm64: dts: broadcom: bcm4908: Fix UART clock name + - clk: mvebu: ap-cpu-clk: Fix a memory leak in error handling paths + - scsi: pm80xx: Fix lockup in outbound queue management + - scsi: qla2xxx: edif: Use link event to wake up app + - scsi: lpfc: Fix NVMe I/O failover to non-optimized path + - ARM: s3c: irq-s3c24xx: Fix return value check for s3c24xx_init_intc() + - arm64: dts: rockchip: Fix GPU register width for RK3328 + - ARM: dts: qcom: msm8974: Add xo_board reference clock to DSI0 PHY + - RDMA/bnxt_re: Fix query SRQ failure + - arm64: dts: ti: k3-j721e-main: Fix "max-virtual-functions" in PCIe EP nodes + - arm64: dts: ti: k3-j721e-main: Fix "bus-range" upto 256 bus number for PCIe + - arm64: dts: ti: j7200-main: Fix "vendor-id"/"device-id" properties of pcie + node + - arm64: dts: ti: j7200-main: Fix "bus-range" upto 256 bus number for PCIe + - arm64: dts: meson-g12a: Fix the pwm regulator supply properties + - arm64: dts: meson-g12b: Fix the pwm regulator supply properties + - arm64: dts: meson-sm1: Fix the pwm regulator supply properties + - bus: ti-sysc: Fix timekeeping_suspended warning on resume + - ARM: dts: at91: tse850: the emac<->phy interface is rmii + - arm64: dts: qcom: sc7180: Base dynamic CPU power coefficients in reality + - soc: qcom: llcc: Disable MMUHWT retention + - arm64: dts: qcom: sc7280: fix display port phy reg property + - scsi: dc395: Fix error case unwinding + - MIPS: loongson64: make CPU_LOONGSON64 depends on MIPS_FP_SUPPORT + - JFS: fix memleak in jfs_mount + - pinctrl: renesas: rzg2l: Fix missing port register 21h + - ASoC: wcd9335: Use correct version to initialize Class H + - arm64: dts: qcom: msm8916: Fix Secondary MI2S bit clock + - arm64: dts: renesas: beacon: Fix Ethernet PHY mode + - iommu/mediatek: Fix out-of-range warning with clang + - arm64: dts: qcom: pm8916: Remove wrong reg-names for rtc@6000 + - iommu/dma: Fix sync_sg with swiotlb + - iommu/dma: Fix arch_sync_dma for map + - ALSA: hda: Reduce udelay() at SKL+ position reporting + - ALSA: hda: Use position buffer for SKL+ again + - ALSA: usb-audio: Fix possible race at sync of urb completions + - soundwire: debugfs: use controller id and link_id for debugfs + - power: reset: at91-reset: check properly the return value of devm_of_iomap + - scsi: ufs: core: Fix ufshcd_probe_hba() prototype to match the definition + - scsi: ufs: core: Stop clearing UNIT ATTENTIONS + - scsi: megaraid_sas: Fix concurrent access to ISR between IRQ polling and + real interrupt + - scsi: pm80xx: Fix misleading log statement in pm8001_mpi_get_nvmd_resp() + - driver core: Fix possible memory leak in device_link_add() + - arm: dts: omap3-gta04a4: accelerometer irq fix + - ASoC: SOF: topology: do not power down primary core during topology removal + - iio: st_pressure_spi: Add missing entries SPI to device ID table + - soc/tegra: Fix an error handling path in tegra_powergate_power_up() + - memory: fsl_ifc: fix leak of irq and nand_irq in fsl_ifc_ctrl_probe + - clk: at91: check pmc node status before registering syscore ops + - powerpc/mem: Fix arch/powerpc/mm/mem.c:53:12: error: no previous prototype + for 'create_section_mapping' + - video: fbdev: chipsfb: use memset_io() instead of memset() + - powerpc: fix unbalanced node refcount in check_kvm_guest() + - powerpc/paravirt: correct preempt debug splat in vcpu_is_preempted() + - serial: 8250_dw: Drop wrong use of ACPI_PTR() + - usb: gadget: hid: fix error code in do_config() + - power: supply: rt5033_battery: Change voltage values to µV + - power: supply: max17040: fix null-ptr-deref in max17040_probe() + - scsi: csiostor: Uninitialized data in csio_ln_vnp_read_cbfn() + - RDMA/mlx4: Return missed an error if device doesn't support steering + - usb: musb: select GENERIC_PHY instead of depending on it + - staging: most: dim2: do not double-register the same device + - staging: ks7010: select CRYPTO_HASH/CRYPTO_MICHAEL_MIC + - RDMA/core: Set sgtable nents when using ib_dma_virt_map_sg() + - dyndbg: make dyndbg a known cli param + - powerpc/perf: Fix cycles/instructions as PM_CYC/PM_INST_CMPL in power10 + - pinctrl: renesas: checker: Fix off-by-one bug in drive register check + - ARM: dts: stm32: Reduce DHCOR SPI NOR frequency to 50 MHz + - ARM: dts: stm32: fix STUSB1600 Type-C irq level on stm32mp15xx-dkx + - ARM: dts: stm32: fix SAI sub nodes register range + - ARM: dts: stm32: fix AV96 board SAI2 pin muxing on stm32mp15 + - ASoC: cs42l42: Always configure both ASP TX channels + - ASoC: cs42l42: Correct some register default values + - ASoC: cs42l42: Defer probe if request_threaded_irq() returns EPROBE_DEFER + - soc: qcom: rpmhpd: Make power_on actually enable the domain + - soc: qcom: socinfo: add two missing PMIC IDs + - iio: buffer: Fix double-free in iio_buffers_alloc_sysfs_and_mask() + - usb: typec: STUSB160X should select REGMAP_I2C + - iio: adis: do not disabe IRQs in 'adis_init()' + - soundwire: bus: stop dereferencing invalid slave pointer + - scsi: ufs: ufshcd-pltfrm: Fix memory leak due to probe defer + - scsi: lpfc: Wait for successful restart of SLI3 adapter during host sg_reset + - serial: imx: fix detach/attach of serial console + - usb: dwc2: drd: fix dwc2_force_mode call in dwc2_ovr_init + - usb: dwc2: drd: fix dwc2_drd_role_sw_set when clock could be disabled + - usb: dwc2: drd: reset current session before setting the new one + - powerpc/booke: Disable STRICT_KERNEL_RWX, DEBUG_PAGEALLOC and KFENCE + - usb: dwc3: gadget: Skip resizing EP's TX FIFO if already resized + - firmware: qcom_scm: Fix error retval in __qcom_scm_is_call_available() + - soc: qcom: rpmhpd: fix sm8350_mxc's peer domain + - soc: qcom: apr: Add of_node_put() before return + - arm64: dts: qcom: pmi8994: Fix "eternal"->"external" typo in WLED node + - arm64: dts: qcom: sdm845: Use RPMH_CE_CLK macro directly + - arm64: dts: qcom: sdm845: Fix Qualcomm crypto engine bus clock + - pinctrl: equilibrium: Fix function addition in multiple groups + - ASoC: topology: Fix stub for snd_soc_tplg_component_remove() + - phy: qcom-qusb2: Fix a memory leak on probe + - phy: ti: gmii-sel: check of_get_address() for failure + - phy: qcom-qmp: another fix for the sc8180x PCIe definition + - phy: qcom-snps: Correct the FSEL_MASK + - phy: Sparx5 Eth SerDes: Fix return value check in sparx5_serdes_probe() + - serial: xilinx_uartps: Fix race condition causing stuck TX + - clk: at91: sam9x60-pll: use DIV_ROUND_CLOSEST_ULL + - clk: at91: clk-master: check if div or pres is zero + - clk: at91: clk-master: fix prescaler logic + - HID: u2fzero: clarify error check and length calculations + - HID: u2fzero: properly handle timeouts in usb_submit_urb + - powerpc/nohash: Fix __ptep_set_access_flags() and ptep_set_wrprotect() + - powerpc/book3e: Fix set_memory_x() and set_memory_nx() + - powerpc/44x/fsp2: add missing of_node_put + - powerpc/xmon: fix task state output + - ALSA: oxfw: fix functional regression for Mackie Onyx 1640i in v5.14 or + later + - iommu/dma: Fix incorrect error return on iommu deferred attach + - powerpc: Don't provide __kernel_map_pages() without + ARCH_SUPPORTS_DEBUG_PAGEALLOC + - ASoC: cs42l42: Correct configuring of switch inversion from ts-inv + - RDMA/hns: Fix initial arm_st of CQ + - RDMA/hns: Modify the value of MAX_LP_MSG_LEN to meet hardware compatibility + - ASoC: rsnd: Fix an error handling path in 'rsnd_node_count()' + - serial: cpm_uart: Protect udbg definitions by CONFIG_SERIAL_CPM_CONSOLE + - virtio_ring: check desc == NULL when using indirect with packed + - vdpa/mlx5: Fix clearing of VIRTIO_NET_F_MAC feature bit + - mips: cm: Convert to bitfield API to fix out-of-bounds access + - power: supply: bq27xxx: Fix kernel crash on IRQ handler register error + - RDMA/core: Require the driver to set the IOVA correctly during rereg_mr + - apparmor: fix error check + - rpmsg: Fix rpmsg_create_ept return when RPMSG config is not defined + - mtd: rawnand: intel: Fix potential buffer overflow in probe + - nfsd: don't alloc under spinlock in rpc_parse_scope_id + - rtc: ds1302: Add SPI ID table + - rtc: ds1390: Add SPI ID table + - rtc: pcf2123: Add SPI ID table + - remoteproc: imx_rproc: Fix TCM io memory type + - i2c: i801: Use PCI bus rescan mutex to protect P2SB access + - dmaengine: idxd: move out percpu_ref_exit() to ensure it's outside + submission + - rtc: mcp795: Add SPI ID table + - Input: ariel-pwrbutton - add SPI device ID table + - i2c: mediatek: fixing the incorrect register offset + - NFS: Default change_attr_type to NFS4_CHANGE_TYPE_IS_UNDEFINED + - NFS: Don't set NFS_INO_DATA_INVAL_DEFER and NFS_INO_INVALID_DATA + - NFS: Ignore the directory size when marking for revalidation + - NFS: Fix dentry verifier races + - pnfs/flexfiles: Fix misplaced barrier in nfs4_ff_layout_prepare_ds + - drm/bridge/lontium-lt9611uxc: fix provided connector suport + - drm/plane-helper: fix uninitialized variable reference + - PCI: aardvark: Don't spam about PIO Response Status + - PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge + - opp: Fix return in _opp_add_static_v2() + - NFS: Fix deadlocks in nfs_scan_commit_list() + - sparc: Add missing "FORCE" target when using if_changed + - fs: orangefs: fix error return code of orangefs_revalidate_lookup() + - Input: st1232 - increase "wait ready" timeout + - drm/bridge: nwl-dsi: Add atomic_get_input_bus_fmts + - mtd: spi-nor: hisi-sfc: Remove excessive clk_disable_unprepare() + - PCI: uniphier: Serialize INTx masking/unmasking and fix the bit operation + - mtd: rawnand: arasan: Prevent an unsupported configuration + - mtd: core: don't remove debugfs directory if device is in use + - remoteproc: Fix a memory leak in an error handling path in + 'rproc_handle_vdev()' + - rtc: rv3032: fix error handling in rv3032_clkout_set_rate() + - dmaengine: at_xdmac: call at_xdmac_axi_config() on resume path + - dmaengine: at_xdmac: fix AT_XDMAC_CC_PERID() macro + - dmaengine: stm32-dma: fix stm32_dma_get_max_width + - NFS: Fix up commit deadlocks + - NFS: Fix an Oops in pnfs_mark_request_commit() + - Fix user namespace leak + - auxdisplay: img-ascii-lcd: Fix lock-up when displaying empty string + - auxdisplay: ht16k33: Connect backlight to fbdev + - auxdisplay: ht16k33: Fix frame buffer device blanking + - soc: fsl: dpaa2-console: free buffer before returning from + dpaa2_console_read + - netfilter: nfnetlink_queue: fix OOB when mac header was cleared + - dmaengine: dmaengine_desc_callback_valid(): Check for `callback_result` + - dmaengine: tegra210-adma: fix pm runtime unbalance + - dmanegine: idxd: fix resource free ordering on driver removal + - dmaengine: idxd: reconfig device after device reset command + - signal/sh: Use force_sig(SIGKILL) instead of do_group_exit(SIGKILL) + - m68k: set a default value for MEMORY_RESERVE + - watchdog: f71808e_wdt: fix inaccurate report in WDIOC_GETTIMEOUT + - ar7: fix kernel builds for compiler test + - scsi: target: core: Remove from tmr_list during LUN unlink + - scsi: qla2xxx: Relogin during fabric disturbance + - scsi: qla2xxx: Fix gnl list corruption + - scsi: qla2xxx: Turn off target reset during issue_lip + - scsi: qla2xxx: edif: Fix app start fail + - scsi: qla2xxx: edif: Fix app start delay + - scsi: qla2xxx: edif: Flush stale events and msgs on session down + - scsi: qla2xxx: edif: Increase ELS payload + - scsi: qla2xxx: edif: Fix EDIF bsg + - NFSv4: Fix a regression in nfs_set_open_stateid_locked() + - dmaengine: idxd: fix resource leak on dmaengine driver disable + - i2c: xlr: Fix a resource leak in the error handling path of + 'xlr_i2c_probe()' + - gpio: realtek-otto: fix GPIO line IRQ offset + - xen-pciback: Fix return in pm_ctrl_init() + - nbd: fix max value for 'first_minor' + - nbd: fix possible overflow for 'first_minor' in nbd_dev_add() + - io-wq: fix max-workers not correctly set on multi-node system + - net: davinci_emac: Fix interrupt pacing disable + - kselftests/net: add missed icmp.sh test to Makefile + - kselftests/net: add missed setup_loopback.sh/setup_veth.sh to Makefile + - kselftests/net: add missed SRv6 tests + - kselftests/net: add missed vrf_strict_mode_test.sh test to Makefile + - kselftests/net: add missed toeplitz.sh/toeplitz_client.sh to Makefile + - ethtool: fix ethtool msg len calculation for pause stats + - openrisc: fix SMP tlb flush NULL pointer dereference + - net: vlan: fix a UAF in vlan_dev_real_dev() + - net: dsa: felix: fix broken VLAN-tagged PTP under VLAN-aware bridge + - ice: Fix replacing VF hardware MAC to existing MAC filter + - ice: Fix not stopping Tx queues for VFs + - kdb: Adopt scheduler's task classification + - ACPI: PMIC: Fix intel_pmic_regs_handler() read accesses + - PCI: j721e: Fix j721e_pcie_probe() error path + - nvdimm/btt: do not call del_gendisk() if not needed + - scsi: bsg: Fix errno when scsi_bsg_register_queue() fails + - scsi: ufs: ufshpb: Use proper power management API + - scsi: ufs: core: Fix NULL pointer dereference + - scsi: ufs: ufshpb: Properly handle max-single-cmd + - drm/nouveau/svm: Fix refcount leak bug and missing check against null bug + - nvdimm/pmem: cleanup the disk if pmem_release_disk() is yet assigned + - block/ataflop: use the blk_cleanup_disk() helper + - block/ataflop: add registration bool before calling del_gendisk() + - block/ataflop: provide a helper for cleanup up an atari disk + - ataflop: remove ataflop_probe_lock mutex + - PCI: Do not enable AtomicOps on VFs + - cpufreq: intel_pstate: Clear HWP desired on suspend/shutdown and offline + - net: phy: fix duplex out of sync problem while changing settings + - block: fix device_add_disk() kobject_create_and_add() error handling + - drm/ttm: remove ttm_bo_vm_insert_huge() + - bonding: Fix a use-after-free problem when bond_sysfs_slave_add() failed + - octeontx2-pf: select CONFIG_NET_DEVLINK + - ALSA: memalloc: Catch call with NULL snd_dma_buffer pointer + - mfd: core: Add missing of_node_put for loop iteration + - mfd: cpcap: Add SPI device ID table + - mfd: sprd: Add SPI device ID table + - mfd: altera-sysmgr: Fix a mistake caused by resource_size conversion + - ACPI: PM: Fix device wakeup power reference counting error + - libbpf: Fix lookup_and_delete_elem_flags error reporting + - selftests/bpf/xdp_redirect_multi: Put the logs to tmp folder + - selftests/bpf/xdp_redirect_multi: Use arping to accurate the arp number + - selftests/bpf/xdp_redirect_multi: Give tcpdump a chance to terminate cleanly + - selftests/bpf/xdp_redirect_multi: Limit the tests in netns + - drm: fb_helper: improve CONFIG_FB dependency + - Revert "drm/imx: Annotate dma-fence critical section in commit path" + - drm/amdgpu/powerplay: fix sysfs_emit/sysfs_emit_at handling + - can: etas_es58x: es58x_rx_err_msg(): fix memory leak in error path + - can: mcp251xfd: mcp251xfd_chip_start(): fix error handling for + mcp251xfd_chip_rx_int_enable() + - mm/zsmalloc.c: close race window between zs_pool_dec_isolated() and + zs_unregister_migration() + - zram: off by one in read_block_state() + - perf bpf: Add missing free to bpf_event__print_bpf_prog_info() + - llc: fix out-of-bound array index in llc_sk_dev_hash() + - nfc: pn533: Fix double free when pn533_fill_fragment_skbs() fails + - litex_liteeth: Fix a double free in the remove function + - arm64: arm64_ftr_reg->name may not be a human-readable string + - arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions + - bpf, sockmap: Remove unhash handler for BPF sockmap usage + - bpf, sockmap: Fix race in ingress receive verdict with redirect to self + - bpf: sockmap, strparser, and tls are reusing qdisc_skb_cb and colliding + - bpf, sockmap: sk_skb data_end access incorrect when src_reg = dst_reg + - dmaengine: stm32-dma: fix burst in case of unaligned memory address + - dmaengine: stm32-dma: avoid 64-bit division in stm32_dma_get_max_width + - gve: Fix off by one in gve_tx_timeout() + - drm/i915/fb: Fix rounding error in subsampled plane size calculation + - init: make unknown command line param message clearer + - seq_file: fix passing wrong private data + - drm/amdgpu: fix uvd crash on Polaris12 during driver unloading + - net: dsa: mv88e6xxx: Don't support >1G speeds on 6191X on ports other than + 10 + - net/sched: sch_taprio: fix undefined behavior in ktime_mono_to_any + - net: hns3: fix ROCE base interrupt vector initialization bug + - net: hns3: fix pfc packet number incorrect after querying pfc parameters + - net: hns3: fix kernel crash when unload VF while it is being reset + - net: hns3: allow configure ETS bandwidth of all TCs + - net: stmmac: allow a tc-taprio base-time of zero + - net: ethernet: ti: cpsw_ale: Fix access to un-initialized memory + - net: marvell: mvpp2: Fix wrong SerDes reconfiguration order + - vsock: prevent unnecessary refcnt inc for nonblocking connect + - net/smc: fix sk_refcnt underflow on linkdown and fallback + - cxgb4: fix eeprom len when diagnostics not implemented + - selftests/net: udpgso_bench_rx: fix port argument + - thermal: int340x: fix build on 32-bit targets + - smb3: do not error on fsync when readonly + - ARM: 9155/1: fix early early_iounmap() + - ARM: 9156/1: drop cc-option fallbacks for architecture selection + - parisc: Fix backtrace to always include init funtion names + - parisc: Flush kernel data mapping in set_pte_at() when installing pte for + user page + - MIPS: fix duplicated slashes for Platform file path + - MIPS: fix *-pkg builds for loongson2ef platform + - MIPS: Fix assembly error from MIPSr2 code used within MIPS_ISA_ARCH_LEVEL + - x86/mce: Add errata workaround for Skylake SKX37 + - PCI/MSI: Move non-mask check back into low level accessors + - PCI/MSI: Destroy sysfs before freeing entries + - KVM: x86: move guest_pv_has out of user_access section + - posix-cpu-timers: Clear task::posix_cputimers_work in copy_process() + - irqchip/sifive-plic: Fixup EOI failed when masked + - f2fs: should use GFP_NOFS for directory inodes + - f2fs: include non-compressed blocks in compr_written_block + - f2fs: fix UAF in f2fs_available_free_memory + - ceph: fix mdsmap decode when there are MDS's beyond max_mds + - erofs: fix unsafe pagevec reuse of hooked pclusters + - drm/i915/guc: Fix blocked context accounting + - block: Hold invalidate_lock in BLKDISCARD ioctl + - block: Hold invalidate_lock in BLKZEROOUT ioctl + - block: Hold invalidate_lock in BLKRESETZONE ioctl + - ksmbd: Fix buffer length check in fsctl_validate_negotiate_info() + - ksmbd: don't need 8byte alignment for request length in ksmbd_check_message + - dmaengine: ti: k3-udma: Set bchan to NULL if a channel request fail + - dmaengine: ti: k3-udma: Set r/tchan or rflow to NULL if request fail + - dmaengine: bestcomm: fix system boot lockups + - net, neigh: Enable state migration between NUD_PERMANENT and NTF_USE + - 9p/net: fix missing error check in p9_check_errors + - mm/filemap.c: remove bogus VM_BUG_ON + - memcg: prohibit unconditional exceeding the limit of dying tasks + - mm, oom: pagefault_out_of_memory: don't force global OOM for dying tasks + - mm, oom: do not trigger out_of_memory from the #PF + - mm, thp: lock filemap when truncating page cache + - mm, thp: fix incorrect unmap behavior for private pages + - mfd: dln2: Add cell for initializing DLN2 ADC + - video: backlight: Drop maximum brightness override for brightness zero + - bcache: fix use-after-free problem in bcache_device_free() + - bcache: Revert "bcache: use bvec_virt" + - PM: sleep: Avoid calling put_device() under dpm_list_mtx + - s390/cpumf: cpum_cf PMU displays invalid value after hotplug remove + - s390/cio: check the subchannel validity for dev_busid + - s390/tape: fix timer initialization in tape_std_assign() + - s390/ap: Fix hanging ioctl caused by orphaned replies + - s390/cio: make ccw_device_dma_* more robust + - remoteproc: elf_loader: Fix loading segment when is_iomem true + - remoteproc: Fix the wrong default value of is_iomem + - remoteproc: imx_rproc: Fix ignoring mapping vdev regions + - remoteproc: imx_rproc: Fix rsc-table name + - mtd: rawnand: fsmc: Fix use of SM ORDER + - mtd: rawnand: ams-delta: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: xway: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: mpc5121: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: gpio: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: pasemi: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: orion: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: plat_nand: Keep the driver compatible with on-die ECC engines + - mtd: rawnand: au1550nd: Keep the driver compatible with on-die ECC engines + - powerpc/vas: Fix potential NULL pointer dereference + - powerpc/bpf: Fix write protecting JIT code + - powerpc/32e: Ignore ESR in instruction storage interrupt handler + - powerpc/powernv/prd: Unregister OPAL_MSG_PRD2 notifier during module unload + - powerpc/security: Use a mutex for interrupt exit code patching + - powerpc/64s/interrupt: Fix check_return_regs_valid() false positive + - powerpc/pseries/mobility: ignore ibm, platform-facilities updates + - powerpc/85xx: fix timebase sync issue when CONFIG_HOTPLUG_CPU=n + - drm/sun4i: Fix macros in sun8i_csc.h + - PCI: Add PCI_EXP_DEVCTL_PAYLOAD_* macros + - PCI: aardvark: Fix PCIe Max Payload Size setting + - SUNRPC: Partial revert of commit 6f9f17287e78 + - drm/amd/display: Look at firmware version to determine using dmub on dcn21 + - media: vidtv: move kfree(dvb) to vidtv_bridge_dev_release() + - cifs: fix memory leak of smb3_fs_context_dup::server_hostname + - ath10k: fix invalid dma_addr_t token assignment + - mmc: moxart: Fix null pointer dereference on pointer host + - selftests/x86/iopl: Adjust to the faked iopl CLI/STI usage + - selftests/bpf: Fix also no-alu32 strobemeta selftest + - arch/cc: Introduce a function to check for confidential computing features + - x86/sev: Add an x86 version of cc_platform_has() + - x86/sev: Make the #VC exception stacks part of the default stacks storage + - media: videobuf2: always set buffer vb2 pointer + - media: videobuf2-dma-sg: Fix buf->vb NULL pointer dereference + - Linux 5.15.3 + + * kernel panic: NULL pointer dereference in wb_timer_f() (LP: #1947557) // + Jammy update: v5.15.3 upstream stable release (LP: #1951822) + - blk-wbt: prevent NULL pointer dereference in wb_timer_fn + + * Medion Notebook Keyboard not working (LP: #1909814) // Jammy update: v5.15.3 + upstream stable release (LP: #1951822) + - ACPI: resources: Add DMI-based legacy IRQ override quirk + + * Enable CONFIG_INTEL_IOMMU_DEFAULT_ON and + CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON on jammy 5.15 (LP: #1951440) + - [Config] enable Intel DMA remapping options by default + + * Thinkpad E14 Gen2: Kernel panic with trackpad and trackpoint enabled + (LP: #1945590) + - SAUCE: Input: elantech - Fix stack out of bound access in + elantech_change_report_id() + + * Miscellaneous Ubuntu changes + - SAUCE: LSM: Specify which LSM to display (using struct cred as input) + - SAUCE: selftests/seccomp: fix check of fds being assigned + - [Config] enable SUNRPC_DISABLE_INSECURE_ENCTYPES + - [Config] updateconfigs following v5.15.3, v5.15.4 import + + * Miscellaneous upstream changes + - binder: use cred instead of task for selinux checks + - binder: use cred instead of task for getsecid + - Revert "UBUNTU: SAUCE: storvsc: use small sg_tablesize on x86" + + -- Paolo Pisati Mon, 22 Nov 2021 13:14:15 +0100 + +linux (5.15.0-11.11) jammy; urgency=medium + + * jammy/linux: 5.15.0-11.11 -proposed tracker (LP: #1950948) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * OOPs on boot: invalid opcode: 0000 [#1] SMP NOPTI (LP: #1942215) + - SAUCE: ACPICA: prevent out-of-bound access with buggy DSDT + - [Config] disable UBSAN + - SAUCE: ACPICA: avoid accessing operands out-of-bounds + + * Jammy update: v5.15.2 upstream stable release (LP: #1950949) + - KVM: x86: avoid warning with -Wbitwise-instead-of-logical + - Revert "x86/kvm: fix vcpu-id indexed array sizes" + - usb: ehci: handshake CMD_RUN instead of STS_HALT + - usb: gadget: Mark USB_FSL_QE broken on 64-bit + - usb: musb: Balance list entry in musb_gadget_queue + - usb-storage: Add compatibility quirk flags for iODD 2531/2541 + - Revert "proc/wchan: use printk format instead of lookup_symbol_name()" + - binder: use euid from cred instead of using task + - binder: don't detect sender/target during buffer cleanup + - kfence: always use static branches to guard kfence_alloc() + - kfence: default to dynamic branch instead of static keys mode + - btrfs: fix lzo_decompress_bio() kmap leakage + - staging: rtl8712: fix use-after-free in rtl8712_dl_fw + - isofs: Fix out of bound access for corrupted isofs image + - comedi: dt9812: fix DMA buffers on stack + - comedi: ni_usb6501: fix NULL-deref in command paths + - comedi: vmk80xx: fix transfer-buffer overflows + - comedi: vmk80xx: fix bulk-buffer overflow + - comedi: vmk80xx: fix bulk and interrupt message timeouts + - staging: r8712u: fix control-message timeout + - staging: rtl8192u: fix control-message timeouts + - staging: r8188eu: fix memleak in rtw_wx_set_enc_ext + - media: staging/intel-ipu3: css: Fix wrong size comparison imgu_css_fw_init + - rsi: fix control-message timeout + - Linux 5.15.2 + + * reuseport_bpf_numa in net from ubuntu_kernel_selftests fails on ppc64le + (LP: #1867570) + - selftests/net: Fix reuseport_bpf_numa by skipping unavailable nodes + + * Miscellaneous Ubuntu changes + - packaging: switch getabis to the linux package name + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (no-up) rename the adv7511 drm driver to adv7511_drm" + - Revert "UBUNTU: SAUCE: drm/i915/dp: Use max params for older panels" + - Revert "UBUNTU: SAUCE: i915: Fix build error due to missing struct + definition" + - selftests/core: fix conflicting types compile error for close_range() + - selftests: net: test_vxlan_under_vrf: fix HV connectivity test + - Revert "UBUNTU: SAUCE: ACPICA: prevent out-of-bound access with buggy DSDT" + + -- Paolo Pisati Mon, 15 Nov 2021 10:12:47 +0100 + +linux (5.15.0-10.10) jammy; urgency=medium + + * jammy/linux: 5.15.0-10.10 -proposed tracker (LP: #1950133) + + * Jammy update: v5.15.1 upstream stable release (LP: #1950131) + - sfc: Fix reading non-legacy supported link modes + - media: firewire: firedtv-avc: fix a buffer overflow in avc_ca_pmt() + - Revert "xhci: Set HCD flag to defer primary roothub registration" + - Revert "usb: core: hcd: Add support for deferring roothub registration" + - drm/amdkfd: fix boot failure when iommu is disabled in Picasso. + - Revert "soc: imx: gpcv2: move reset assert after requesting domain power up" + - ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" + - Revert "wcn36xx: Disable bmps when encryption is disabled" + - drm/amdgpu: revert "Add autodump debugfs node for gpu reset v8" + - drm/amd/display: Revert "Directly retrain link from debugfs" + - Revert "drm/i915/gt: Propagate change in error status to children on unhold" + - ALSA: usb-audio: Add quirk for Audient iD14 + - Linux 5.15.1 + + * Miscellaneous Ubuntu changes + - packaging: fixup previous ABI/spin to -9.9 + - [Packaging] Drop unused d-i build-deps and packaging + - [Packaging] Drop now unsupported d-i/ input files + + * Miscellaneous upstream changes + - selftests: net: properly support IPv6 in GSO GRE test + - signal: Add SA_IMMUTABLE to ensure forced siganls do not get changed + + -- Paolo Pisati Mon, 08 Nov 2021 14:43:24 +0100 + +linux (5.15.0-9.9) jammy; urgency=medium + + * jammy/linux: 5.15.0-1.1 -proposed tracker (LP: #1949876) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + - [Packaging] update Ubuntu.md + + * Add F81966 watchdog support (LP: #1949063) + - SAUCE: ODM: watchdog: f71808e_wdt: Add F81966 support + + * Miscellaneous Ubuntu changes + - [Packaging] Rewrite debian/scripts/misc/insert-changes.pl in Python + - [Packaging] change source package name to linux + + -- Andrea Righi Thu, 04 Nov 2021 18:47:19 +0100 + +linux (5.15.0-0.0) jammy; urgency=medium + + * Empty entry + + -- Andrea Righi Thu, 04 Nov 2021 16:47:16 +0100 + +linux-unstable (5.15.0-8.8) jammy; urgency=medium + + * jammy/linux-unstable: 5.15.0-8.8 -proposed tracker (LP: #1949436) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Drop "UBUNTU: SAUCE: cachefiles: Page leaking in + cachefiles_read_backing_file while vmscan is active" (LP: #1947709) + - Revert "UBUNTU: SAUCE: cachefiles: Page leaking in + cachefiles_read_backing_file while vmscan is active" + + * Add l2tp.sh in net from ubuntu_kernel_selftests back (LP: #1934293) + - Revert "UBUNTU: SAUCE: selftests/net -- disable l2tp.sh test" + + * Check for changes relevant for security certifications (LP: #1945989) + - [Packaging] Add fips-checks as part of finalchecks + + * Add final-checks to check certificates (LP: #1947174) + - [Packaging] Add system trusted and revocation keys final check + + * Can only reach PC3 when ethernet is plugged r8169 (LP: #1946433) + - r8169: Enable chip-specific ASPM regardless of PCIe ASPM status + - PCI/ASPM: Introduce a new helper to report ASPM capability + - r8169: Implement dynamic ASPM mechanism + + * rtw89 kernel module for Realtek 8852 wifi is missing (LP: #1945967) + - rtw89: add Realtek 802.11ax driver + - rtw89: Remove redundant check of ret after call to rtw89_mac_enable_bb_rf + - rtw89: fix return value check in rtw89_cam_send_sec_key_cmd() + - rtw89: remove unneeded semicolon + - [Config] RTW89=m + + * Fix A yellow screen pops up in an instant (< 1 second) and then disappears + before loading the system (LP: #1945932) + - drm/i915: Stop force enabling pipe bottom color gammma/csc + + * disable CONFIG_KFENCE_STATIC_KEYS in linux 5.15 (LP: #1948038) + - [Config] disable CONFIG_KFENCE_STATIC_KEYS + + * Miscellaneous Ubuntu changes + - [Debian] Remove old and unused firmware helper scripts + - [Packaging] Replace Perl oneliner with Bash statements + - rebase to v5.15 + + [ Upstream Kernel Changes ] + + * Rebase to v5.15 + + -- Paolo Pisati Tue, 02 Nov 2021 08:29:45 +0100 + +linux-unstable (5.15.0-7.7) jammy; urgency=medium + + * jammy/linux-unstable: 5.15.0-7.7 -proposed tracker (LP: #1948770) + + * Miscellaneous Ubuntu changes + - [Config] Temporarily disable signing for ppc64el and s390x + - packaging: switch release to Jammy + - rebase to v5.15-rc7 + - [Config] GCC version update + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc7 + + -- Paolo Pisati Tue, 26 Oct 2021 11:38:14 +0200 + +linux-unstable (5.15.0-6.6) jammy; urgency=medium + + * impish/linux-unstable: 5.15.0-6.6 -proposed tracker (LP: #1947565) + + * [impish] Remove the downstream xr-usb-uart driver (LP: #1945938) + - SAUCE: xr-usb-serial: remove driver + - [Config] update modules list + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc6 + - [Config] update config & annotations following v5.15-rc6 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: xr-usb-serial: switch to tty_alloc_driver() and + tty_driver_kref_put()" + - Revert "UBUNTU: SAUCE: xr-usb-serial: update return code for + xr_usb_serial_tty_write_room() and xr_usb_serial_tty_chars_in_buffer()" + - Revert "UBUNTU: [Packaging] FTBFS: disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc6 + + -- Paolo Pisati Mon, 18 Oct 2021 12:24:45 +0200 + +linux-unstable (5.15.0-5.5) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-5.5 -proposed tracker (LP: #1946338) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc5 + - [Config] FB_SIMPLE=m + - [Config] update annotations + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc5 + + -- Paolo Pisati Mon, 11 Oct 2021 12:14:02 +0200 + +linux-unstable (5.15.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-4.4 -proposed tracker (LP: #1945953) + + * Fix missing HDMI audio on Intel RKL (LP: #1945556) + - drm/i915/audio: Use BIOS provided value for RKL HDA link + + * Miscellaneous Ubuntu changes + - SAUCE: media: atomisp: add missing return type (fix -Werror=return-type) + - SAUCE: xr-usb-serial: switch to tty_alloc_driver() and tty_driver_kref_put() + - rebase to v5.15-rc4 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] FTBFS: disable INTEL_ATOMISP" + - Revert "UBUNTU: [Config] FTBFS: disable xr-usb-serial" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc4 + + -- Paolo Pisati Mon, 04 Oct 2021 10:52:41 +0200 + +linux-unstable (5.15.0-3.3) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-3.3 -proposed tracker (LP: #1944944) + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc3 + - [Config] updateconfigs following v5.15-rc3 rebase + - [Packaging] correctly evaluate release in update-dkms-versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc3 + + -- Paolo Pisati Mon, 27 Sep 2021 16:48:03 +0200 + +linux-unstable (5.15.0-2.2) impish; urgency=medium + + * impish/linux-unstable: 5.15.0-2.2 -proposed tracker (LP: #1944423) + + * Miscellaneous Ubuntu changes + - rebase to v5.15-rc2 + - [Config] updateconfigs following v5.15-rc2 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc2 + + -- Paolo Pisati Tue, 21 Sep 2021 11:46:59 +0200 + +linux-unstable (5.15.0-1.1) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - debian/dkms-versions -- update from kernel-versions (main/master) + + * LRMv5: switch primary version handling to kernel-versions data set + (LP: #1928921) + - [Packaging] switch to kernel-versions + + * Miscellaneous Ubuntu changes + - [Packaging] remove remaining references to ports + - [Packaging] drop x32 architecture configs + - [Config] mark CONFIG_BPF_UNPRIV_DEFAULT_OFF enforced + - [Packaging] bump kernel version to 5.15 + - rebase to v5.15-rc1 + - [Config] updateconfigs following v5.15-rc1 rebase + - [Config] FTBFS: disable INTEL_ATOMISP + - [Config] FTBFS: disable xr-usb-serial + - [Packaging] FTBFS: disable zfs + + * Miscellaneous upstream changes + - Revert "r8169: avoid link-up interrupt issue on RTL8106e if user enables + ASPM" + - Revert "UBUNTU: SAUCE: RDMA/core: Introduce peer memory interface" + + [ Upstream Kernel Changes ] + + * Rebase to v5.15-rc1 + + -- Paolo Pisati Fri, 17 Sep 2021 11:42:25 +0200 + +linux-unstable (5.15.0-0.0) impish; urgency=medium + + * Empty entry + + -- Paolo Pisati Wed, 15 Sep 2021 11:54:10 +0200 + +linux-unstable (5.14.0-9.9) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-9.9 -proposed tracker (LP: #1943022) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] NVIDIA -- Add the NVIDIA 470 driver + - [Packaging] NVIDIA: transition -460 and -465 to -470, transition -460-server + to -470-server + + * Miscellaneous upstream changes + - vt_kdsetmode: extend console locking + - Bluetooth: btusb: check conditions before enabling USB ALT 3 for WBS + - net: dsa: mt7530: fix VLAN traffic leaks again + - btrfs: fix NULL pointer dereference when deleting device by invalid id + - Revert "floppy: reintroduce O_NDELAY fix" + - fscrypt: add fscrypt_symlink_getattr() for computing st_size + - ext4: report correct st_size for encrypted symlinks + - f2fs: report correct st_size for encrypted symlinks + - ubifs: report correct st_size for encrypted symlinks + - net: don't unconditionally copy_from_user a struct ifreq for socket ioctls + - audit: move put_tree() to avoid trim_trees refcount underflow and UAF + - Linux 5.14.1 + + -- Paolo Pisati Wed, 08 Sep 2021 12:20:18 +0200 + +linux-unstable (5.14.0-8.8) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-8.8 -proposed tracker (LP: #1941887) + + * Fix Intel AC9560 BT function cannot turn on if BT turn off before S3 entry + (LP: #1941696) + - SAUCE: Bluetooth: btusb: add a reject table to disable msft + + * Add USB4 support for AMD SoC (LP: #1941036) + - thunderbolt: Add vendor specific NHI quirk for auto-clearing interrupt + status + - thunderbolt: Handle ring interrupt by reading interrupt status register + - thunderbolt: Do not read control adapter config space + - thunderbolt: Fix port linking by checking all adapters + + * Support builtin revoked certificates (LP: #1932029) + - [Config] Enforce SYSTEM_TRUSTED_KEYS and SYSTEM_REVOCATION_KEYS + + * GPIO error logs in start and dmesg after update of kernel (LP: #1937897) + - ODM: mfd: Check AAEON BFPI version before adding device + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - [Config] enforce ZSTD compression + + * Miscellaneous Ubuntu changes + - rebase to v5.14 + - [Config] RESET_MCHP_SPARX5 depends on ARCH_SPARX5 + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] FTBFS: disable zfs" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14 + + -- Paolo Pisati Mon, 30 Aug 2021 12:57:19 +0200 + +linux-unstable (5.14.0-7.7) impish; urgency=medium + + * Please enable CONFIG_UBSAN_BOUNDS (LP: #1914685) + - [Config] Enable CONFIG_UBSAN_BOUNDS + + * CONFIG_HARDENED_USERCOPY_FALLBACK should be disabled (LP: #1855340) + - [Config] Disable CONFIG_HARDENED_USERCOPY_FALLBACK + + * fs: removing mandatory locks (LP: #1940392) + - [Config] Disable CONFIG_MANDATORY_FILE_LOCKING + + * Fix kernel panic caused by legacy devices on AMD platforms (LP: #1936682) + - SAUCE: iommu/amd: Keep swiotlb enabled to ensure devices with 32bit DMA + still work + + * ALSA: hda/cs8409: Add support for dolphin (LP: #1939541) + - ALSA: hda/cirrus: Move CS8409 HDA bridge to separate module + - ALSA: hda/cs8409: Move arrays of configuration to a new file + - ALSA: hda/cs8409: Use enums for register names and coefficients + - ALSA: hda/cs8409: Mask all CS42L42 interrupts on initialization + - ALSA: hda/cs8409: Reduce HS pops/clicks for Cyborg + - ALSA: hda/cs8409: Disable unnecessary Ring Sense for Cyborg/Warlock/Bullseye + - ALSA: hda/cs8409: Disable unsolicited responses during suspend + - ALSA: hda/cs8409: Disable unsolicited response for the first boot + - ALSA: hda/cs8409: Mask CS42L42 wake events + - ALSA: hda/cs8409: Simplify CS42L42 jack detect. + - ALSA: hda/cs8409: Prevent I2C access during suspend time + - ALSA: hda/cs8409: Generalize volume controls + - ALSA: hda/cs8409: Dont disable I2C clock between consecutive accesses + - ALSA: hda/cs8409: Avoid setting the same I2C address for every access + - ALSA: hda/cs8409: Avoid re-setting the same page as the last access + - ALSA: hda/cs8409: Support i2c bulk read/write functions + - ALSA: hda/cs8409: Separate CS8409, CS42L42 and project functions + - ALSA: hda/cs8409: Move codec properties to its own struct + - ALSA: hda/cs8409: Support multiple sub_codecs for Suspend/Resume/Unsol + events + - ALSA: hda/cs8409: Add Support to disable jack type detection for CS42L42 + - ALSA: hda/cs8409: Add support for dolphin + - ALSA: hda/cs8409: Enable Full Scale Volume for Line Out Codec on Dolphin + - ALSA: hda/cs8409: Set fixed sample rate of 48kHz for CS42L42 + - ALSA: hda/cs8409: Use timeout rather than retries for I2C transaction waits + - ALSA: hda/cs8409: Remove unnecessary delays + - ALSA: hda/cs8409: Follow correct CS42L42 power down sequence for suspend + - ALSA: hda/cs8409: Unmute/Mute codec when stream starts/stops + - ALSA: hda/cs8409: Prevent pops and clicks during suspend + - SAUCE: ALSA: hda/cs8409: Prevent pops and clicks during reboot + - [Config] Enable Cirrus Logic HDA bridge support + + * e1000e: add handshake with the Intel CSME to support S0ix (LP: #1937252) + - SAUCE: e1000e: Add handshake with the CSME to support S0ix + - SAUCE: e1000e: Add polling mechanism to indicate CSME DPG exit + - SAUCE: e1000e: Additional PHY power saving in S0ix + + * AMDGPU: Fix System hang after resume from suspend (LP: #1940204) + - SAUCE: drm/amdgpu: disable BACO support for 699F:C7 polaris12 SKU + temporarily + + * [Regression] Audio card [8086:9d71] not detected after upgrade from linux + 5.4 to 5.8 (LP: #1915117) + - [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + + * Miscellaneous Ubuntu changes + - rebase to v5.14-rc7 + - [Config] updateconfigs following 5.14-rc7 rebase + - [Config] Enable CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT + - [Config] annotations: set CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT to y + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] annotations: set + CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y" + - Revert "UBUNTU: [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to + y" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc7 + + -- Paolo Pisati Tue, 24 Aug 2021 10:32:31 +0200 + +linux-unstable (5.14.0-6.6) impish; urgency=medium + + * Miscellaneous Ubuntu changes + - no changes upload (to avoid picking up libc6 from -proposed) + + * No changes upload (to avoid picking up libc6 from -proposed) + + -- Paolo Pisati Wed, 18 Aug 2021 13:41:16 +0200 + +linux-unstable (5.14.0-5.5) impish; urgency=medium + + * disable “CONFIG_HISI_DMA” config for ubuntu version (LP: #1936771) + - [Config] Disable CONFIG_HISI_DMA + + * Dell XPS 17 (9710) PCI/internal sound card not detected (LP: #1935850) + - ASoC: Intel: sof_sdw: include rt711.h for RT711 JD mode + - ASoC: Intel: sof_sdw: add quirk for Dell XPS 9710 + + * [regression] USB device is not detected during boot (LP: #1939638) + - SAUCE: Revert "usb: core: reduce power-on-good delay time of root hub" + + * armhf build failure (LP: #1939308) + - SAUCE: arm: Fix instruction set selection for GCC 11 + + * REGRESSION: shiftfs lets sendfile fail with EINVAL (LP: #1939301) + - SAUCE: shiftfs: fix sendfile() invocations + + * Wobbly graphics on built-in display since linux-image-5.11.0-22-generic + (LP: #1936708) + - SAUCE: drm/i915/dp: Use max params for older panels + + * [SRU][H/OEM-5.10/OEM-5.13/U] Fix system hang after unplug tbt dock + (LP: #1938689) + - SAUCE: igc: fix page fault when thunderbolt is unplugged + + * e1000e blocks the boot process when it tried to write checksum to its NVM + (LP: #1936998) + - SAUCE: e1000e: Do not take care about recovery NVM checksum + + * [Regression] Audio card [8086:9d71] not detected after upgrade from linux + 5.4 to 5.8 (LP: #1915117) + - [Config] set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + - [Config] annotations: set CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC to y + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs following 5.14-rc6 rebase + - rebase to v5.14-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc6 + + -- Paolo Pisati Tue, 17 Aug 2021 17:49:15 +0200 + +linux-unstable (5.14.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.14.0-4.4 -proposed tracker (LP: #1938566) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous upstream changes + - Revert "riscv: Get CPU manufacturer information" + + -- Paolo Pisati Tue, 03 Aug 2021 14:50:27 +0200 + +linux-unstable (5.14.0-3.3) impish; urgency=medium + + * Add additional Mediatek MT7921 WiFi/BT device IDs (LP: #1937004) + - SAUCE: Bluetooth: btusb: Add Mediatek MT7921 support for Foxconn + - SAUCE: Bluetooth: btusb: Add Mediatek MT7921 support for IMC Network + - SAUCE: Bluetooth: btusb: Add support for Foxconn Mediatek Chip + + * Fix display output on HP hybrid GFX laptops (LP: #1936296) + - drm/i915: Invoke another _DSM to enable MUX on HP Workstation laptops + + * Miscellaneous Ubuntu changes + - rebase to v5.14-rc3 + - [Config] updateconfigs following 5.14-rc3 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc3 + + -- Paolo Pisati Mon, 26 Jul 2021 12:52:38 +0200 + +linux-unstable (5.14.0-2.2) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - SAUCE: xr-usb-serial: update return code for xr_usb_serial_tty_write_room() + and xr_usb_serial_tty_chars_in_buffer() + - SAUCE: platform/x86: dell-uart-backlight: update return code for + uart_chars_in_buffer(() + - [Config] updateconfigs following 5.14-rc2 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] FTBFS: disable ubuntu/xr-usb-serial" + - Revert "UBUNTU: [Config] FTBFS: disable DELL_UART_BACKLIGHT" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc2 + + -- Paolo Pisati Thu, 22 Jul 2021 11:03:28 +0200 + +linux-unstable (5.14.0-1.1) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] bump kernel version to 5.14 + - [Config] updateconfigs following 5.14-rc1 rebase + - [Config] update annotations + - [Packaging] FTBFS: disable zfs + - [Config] FTBFS: disable DELL_UART_BACKLIGHT + - [Config] FTBFS: disable ubuntu/xr-usb-serial + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] update variants" + + [ Upstream Kernel Changes ] + + * Rebase to v5.14-rc1 + + -- Paolo Pisati Fri, 16 Jul 2021 15:20:04 +0200 + +linux-unstable (5.14.0-0.0) impish; urgency=medium + + * Empty entry + + -- Paolo Pisati Tue, 13 Jul 2021 12:15:35 +0200 + +linux (5.13.0-11.11) impish; urgency=medium + + * impish/linux: 5.13.0-11.11 -proposed tracker (LP: #1933854) + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Support builtin revoked certificates (LP: #1932029) + - [Packaging] build canonical-revoked-certs.pem from branch/arch certs + - [Packaging] Revoke 2012 UEFI signing certificate as built-in + - [Config] Configure CONFIG_SYSTEM_REVOCATION_KEYS with revoked keys + + * Miscellaneous Ubuntu changes + - [Packaging] Change source package name to linux + + * Miscellaneous upstream changes + - mm/page_alloc: Correct return value of populated elements if bulk array is + populated + + -- Andrea Righi Tue, 29 Jun 2021 07:50:25 +0200 + +linux (5.13.0-10.10) impish; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 28 Jun 2021 08:40:05 +0200 + +linux-unstable (5.13.0-10.10) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-10.10 -proposed tracker (LP: #1933795) + + * Pixel format change broken for Elgato Cam Link 4K (LP: #1932367) + - media: uvcvideo: Fix pixel format change for Elgato Cam Link 4K + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - s390/decompressor: correct BOOT_HEAP_SIZE condition + - s390/boot: add zstd support + - [Packaging] use ZSTD to compress s390 kernels + + * Miscellaneous Ubuntu changes + - SAUCE: selftests: tls: fix chacha+bidir tests + - SAUCE: selftests: icmp_redirect: support expected failures + - [Config] update configs and annotations after rebase to 5.13 + + * Miscellaneous upstream changes + - tls: prevent oversized sendfile() hangs by ignoring MSG_MORE + + [ Upstream Kernel Changes ] + + * Rebase to v5.13 + + -- Andrea Righi Mon, 28 Jun 2021 08:40:05 +0200 + +linux-unstable (5.13.0-9.9) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-9.9 -proposed tracker (LP: #1933070) + + * Add support for selective build of special drivers (LP: #1912789) + - [Packaging] Add support for ODM drivers + - [Packaging] Turn on ODM support for amd64 + - [Packaging] Fix ODM support in actual build + - [Packaging] Fix ODM DRIVERS Kconfig + + * Add support for IO functions of AAEON devices (LP: #1929504) + - ODM: [Config] update config for AAEON devices + - ODM: hwmon: add driver for AAEON devices + - ODM: leds: add driver for AAEON devices + - ODM: watchdog: add driver for AAEON devices + - ODM: gpio: add driver for AAEON devices + - ODM: mfd: Add support for IO functions of AAEON devices + + * Disable hv-kvp-daemon.service on certain instance types (LP: #1932081) + - [Packaging]: Add kernel command line condition to hv-kvp-daemon service + + * Fix non-working GPU on Some HP desktops (LP: #1931147) + - PCI: Coalesce host bridge contiguous apertures + + * Miscellaneous Ubuntu changes + - SAUCE: selftests: seccomp: bump up timeout to 5min + - SAUCE: Revert "net/tls(TLS_SW): Add selftest for 'chunked' sendfile test" + - [Config] update annotations after rebase to 5.13-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc7 + + -- Andrea Righi Mon, 21 Jun 2021 10:55:36 +0200 + +linux-unstable (5.13.0-8.8) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-8.8 -proposed tracker (LP: #1932018) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * initramfs-tools & kernel: use zstd as the default compression method + (LP: #1931725) + - [Config] use ZSTD to compress amd64 kernels + + * Miscellaneous Ubuntu changes + - [Config] enable signing for ppc64el + - SAUCE: powerpc: Fix initrd corruption with relative jump labels + + -- Andrea Righi Tue, 15 Jun 2021 15:07:34 +0200 + +linux-unstable (5.13.0-7.7) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-7.7 -proposed tracker (LP: #1931840) + + * Packaging resync (LP: #1786013) + - update dkms package versions + - [Packaging] resync getabis + - [Packaging] update helper scripts + - update dkms package versions + + * Intel ADL-S graphics feature enabling (LP: #1931240) + - SAUCE: drm/i915/adl_s: ADL-S platform Update PCI ids for Mobile BGA + + * Kernel package builds running out of space on builders (LP: #1930713) + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=n + + * Miscellaneous Ubuntu changes + - [Debian] remove nvidia dkms build support + - [Config] remove now unsued do_dkms_nvidia* build variables + - [Config] enable signing for s390x + - [Config] update annotations after configs review + - [Config] update toolchain versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc6 + + -- Andrea Righi Mon, 14 Jun 2021 11:53:08 +0200 + +linux-unstable (5.13.0-6.6) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-6.6 -proposed tracker (LP: #1931071) + + * Kernel package builds running out of space on builders (LP: #1930713) + - [Debian] use stamps for flavour install targets + - [Debian] run install-$(flavour) targets during build phase + - [Debian] remove dh_testroot from install targets + - [Debian] dkms-build -- use fakeroot if not running as root + - [Debian] exclude $(DEBIAN)/__abi.current from linux-source + + * [UBUNTU 21.04] tools/kvm_stat: Add restart delay (LP: #1921870) + - [Debian] install kvm_stat systemd service + + * Debugging symbols (dbgsym) packages are missing GDB kernel scripts + (LP: #1928715) + - [Packaging] Build and include GDB Python scripts into debug packages + + * Can't detect intel wifi 6235 (LP: #1920180) + - SAUCE: iwlwifi: add new pci id for 6235 + + * Select correct boot VGA when BIOS doesn't do it properly (LP: #1929217) + - vgaarb: Use ACPI HID name to find integrated GPU + + * Fix kernel panic on Intel Bluetooth (LP: #1928838) + - Bluetooth: Shutdown controller after workqueues are flushed or cancelled + + * build module CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m for 5.11, 5.13-rc2 + and later (LP: #1921632) + - [Config] enable soundwire audio mach driver + + * Miscellaneous Ubuntu changes + - [Config] CONFIG_SND_SOC_RT1308 can only be enabled on amd64 + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc5 + + -- Andrea Righi Mon, 07 Jun 2021 10:45:13 +0200 + +linux-unstable (5.13.0-5.5) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-5.5 -proposed tracker (LP: #1930205) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] set CONFIG_BPF_UNPRIV_DEFAULT_OFF=y + + -- Andrea Righi Mon, 31 May 2021 12:32:38 +0200 + +linux-unstable (5.13.0-4.4) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-4.4 -proposed tracker (LP: #1929404) + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Support importing mokx keys into revocation list from the mok table + (LP: #1928679) + - SAUCE: integrity: add informational messages when revoking certs + + * Support importing mokx keys into revocation list from the mok table + (LP: #1928679) // CVE-2020-26541 when certificates are revoked via + MokListXRT. + - SAUCE: integrity: Load mokx certs from the EFI MOK config table + + * Miscellaneous Ubuntu changes + - [Config] Temporarily disable signing for ppc64el and s390x + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Be more careful about copying up + sxid files" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Propogate nosuid from lower and + upper mounts" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: Enable user namespace mounts" + - SAUCE: Revert "UBUNTU: SAUCE: overlayfs: ensure mounter privileges when + reading directories" + - SAUCE: Revert "UBUNTU: SAUCE: fs: Move SB_I_NOSUID to the top of s_iflags" + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc3 + + -- Andrea Righi Mon, 24 May 2021 13:06:17 +0200 + +linux-unstable (5.13.0-3.3) impish; urgency=medium + + * impish/linux-unstable: 5.13.0-3.3 -proposed tracker (LP: #1928655) + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc2 + + -- Andrea Righi Mon, 17 May 2021 11:55:02 +0200 + +linux-unstable (5.13.0-2.2) impish; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] enable CONFIG_DEBUG_INFO_COMPRESSED + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] temporarily disable BPF JIT" + + -- Andrea Righi Fri, 14 May 2021 09:19:02 +0200 + +linux-unstable (5.13.0-1.1) impish; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.13-rc1 + + -- Andrea Righi Wed, 12 May 2021 11:35:23 +0200 + +linux-unstable (5.13.0-0.0) impish; urgency=medium + + * Empty entry + + -- Andrea Righi Tue, 11 May 2021 08:40:09 +0200 + +linux-unstable (5.12.0-11.11) impish; urgency=medium + + * Impish update: v5.12.1 upstream stable release (LP: #1927094) + - net: hso: fix NULL-deref on disconnect regression + - USB: CDC-ACM: fix poison/unpoison imbalance + - iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd() + - cfg80211: fix locking in netlink owner interface destruction + - mei: me: add Alder Lake P device id. + - Linux 5.12.1 + + * Packaging resync (LP: #1786013) // Impish update: v5.12.1 upstream stable + release (LP: #1927094) + - update dkms package versions + + * Gigabyte R120-T33 (ARM ThunderX SoC) fails to boot in ACPI mode + (LP: #1925075) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure + + * Fix kernel panic at boot on dual GFX systems (LP: #1926792) // Impish + update: v5.12.1 upstream stable release (LP: #1927094) + - drm/amdgpu: Register VGA clients after init can no longer fail + + * On TGL platforms screen shows garbage when browsing website by scrolling + mouse (LP: #1926579) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - SAUCE: drm/i915/display: Disable PSR2 if TGL Display stepping is B1 from A0 + + * CirrusLogic: Cracking noises appears in built-in speaker when output volume + is set >80% (LP: #1924997) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - SAUCE: ALSA: hda/cirrus: Use CS8409 Equalizer to fix abnormal sounds on + Bullseye + + * Enable mute/micmute LEDs and limit mic boost on EliteBook 845 G8 + (LP: #1925415) // Impish update: v5.12.1 upstream stable release + (LP: #1927094) + - ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on EliteBook + 845 G8 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: PCI: Disable broken RTIT_BAR of Intel TH" + - Revert "UBUNTU: [Config] temporarily disable ZFS" + + -- Paolo Pisati Tue, 04 May 2021 18:35:54 +0200 + +linux-unstable (5.12.0-10.10) impish; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] Drop versioned ABI directory names + - [Packaging] getabis: Download ABIs into an unversioned directory + - [Packaging] final-checks: Handle unversioned ABI directories + - bump to impish + - [Config] GCC version update + + -- Paolo Pisati Thu, 29 Apr 2021 12:27:20 +0200 + +linux-unstable (5.12.0-9.9) impish; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc8 + + -- Seth Forshee Mon, 26 Apr 2021 11:14:16 -0500 + +linux-unstable (5.12.0-8.8) hirsute; urgency=medium + + * 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 + + * Fix no picture from HDMI when it's plugged after boot (LP: #1924238) + - drm/i915/display: Handle lane polarity for DDI port + + * hirsute beta desktop AMD64 ISO kernel panic on boot when booting using UEFI + (LP: #1922403) + - SAUCE: efifb: Check efifb_pci_dev before using it + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc8 + - [Config] updateconfigs following 5.12-rc8 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc8 + + -- Paolo Pisati Mon, 19 Apr 2021 11:37:27 +0200 + +linux-unstable (5.12.0-7.7) hirsute; urgency=medium + + * drm/i915: Drop force_probe requirement for Rocket Lake (LP: #1905466) + - drm/i915/rkl: Remove require_force_probe protection + + * HP m400 cartridges fail to find NIC when deploying hirsute (LP: #1918793) + - PCI: xgene: Fix cfg resource mapping + + * Update - Fix no screen show on display after S3 on CML-R (LP: #1922768) + - drm/i915/gen9bc: Handle TGP PCH during suspend/resume + + * Miscellaneous Ubuntu changes + - SAUCE: RDMA/core: Introduce peer memory interface + - Rebase to v5.12-rc7 + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc7 + + -- Paolo Pisati Mon, 12 Apr 2021 11:48:07 +0200 + +linux-unstable (5.12.0-6.6) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * i915 doesn't support some high pixel clock 4k * 60Hz monitors (LP: #1922372) + - drm/i915/vbt: update DP max link rate table + + * Tegra "mmc0: Timeout waiting for hardware interrupt" (LP: #1921140) + - SAUCE: mmc: host: Add required callbacks to set/clear CQE_EN bit + + * Enable ath11k debugfs/tracing (LP: #1922033) + - [Config] enable ath11k debugfs/tracing + + * Fix mic on P620 after S3 resume (LP: #1921757) + - ALSA: usb-audio: Carve out connector value checking into a helper + - ALSA: usb-audio: Check connector value on resume + + * Miscellaneous Ubuntu changes + - [Config] amd64,arm64: build KFENCE support but disable it by default + (KFENCE_SAMPLE_INTERVAL=0) + - Rebase to v5.12-rc6 + + * Miscellaneous upstream changes + - drm/dp: add MSO related DPCD registers + - drm/i915/edp: reject modes with dimensions other than fixed mode + - drm/i915/edp: always add fixed mode to probed modes in ->get_modes() + - drm/i915/edp: read sink MSO configuration for eDP 1.4+ + - drm/i915/reg: add stream splitter configuration definitions + - drm/i915/mso: add splitter state readout for platforms that support it + - drm/i915/mso: add splitter state check + - drm/i915/edp: modify fixed and downclock modes for MSO + - drm/i915/edp: enable eDP MSO during link training + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc6 + + -- Paolo Pisati Wed, 07 Apr 2021 11:42:55 +0200 + +linux-unstable (5.12.0-5.5) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * alsa/realtek: extend the delay time in the determine_headset_type for a + Dell AIO (LP: #1920747) + - SAUCE: ALSA: hda/realtek: fix a determine_headset_type issue for a Dell AIO + + * power off stress test will hang on the TGL machines (LP: #1919930) + - SAUCE: ASoC: SOF: Intel: TGL: set shutdown callback to hda_dsp_shutdown + - [Config] set SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 to n + + * lockdown on power (LP: #1855668) + - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode + + * Miscellaneous Ubuntu changes + - [Config] arm64 -- unify build_image and kernel_file values + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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: xr-usb-serial: clean up indentation + - SAUCE: xr-usb-serial: clean up build warnings + - SAUCE: apparmor: Fix build error, make sk parameter const + - Rebase to v5.12-rc5 + - [Config] updateconfigs following v5.12-rc5 rebase + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (lockdown) s390: Lock down the kernel when the IPL + secure flag is set" + - Revert "UBUNTU: SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to + indicate secure boot mode" + - Revert "UBUNTU: SAUCE: (lockdown) powerpc: lock down kernel in secure boot + mode" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: Make + CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT more generic" + - Revert "UBUNTU: SAUCE: (lockdown) arm64: Allow locking down the kernel under + EFI secure boot" + - Revert "UBUNTU: SAUCE: (lockdown) KEYS: Make use of platform keyring for + module signature verify" + - Revert "UBUNTU: SAUCE: (lockdown) efi: Lock down the kernel if booted in + secure boot mode" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: expose a hook to lock + the kernel down" + - Revert "UBUNTU: SAUCE: (lockdown) Make get_cert_list() use + efi_status_to_str() to print error messages." + - Revert "UBUNTU: SAUCE: (lockdown) Add efi_status_to_str() and rework + efi_status_to_err()." + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc5 + + -- Paolo Pisati Mon, 29 Mar 2021 12:59:38 +0200 + +linux-unstable (5.12.0-4.4) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix broken efifb on graphics device without driver (LP: #1914411) + - SAUCE: efifb: Ensure graphics device for efifb stays at PCI D0 + + * Fix system sleep on TGL systems with Intel ME (LP: #1919321) + - SAUCE: PCI: Serialize TGL e1000e PM ops + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc4 + - [Config] updateconfigs following v5.12-rc4 rebase + + * Miscellaneous upstream changes + - riscv: dts: fu740: fix cache-controller interrupts + - riscv: sifive: fu740: cpu{1, 2, 3, 4} set compatible to sifive, u74-mc + - riscv: sifive: unmatched: update for 16GB rev3 + - riscv: Add 3 SBI wrapper functions to get cpu manufacturer information + - riscv: Get CPU manufacturer information + - riscv: Introduce alternative mechanism to apply errata solution + - riscv: sifive: apply errata "cip-453" patch + - clk: sifive: Add pcie_aux clock in prci driver for PCIe driver + - clk: sifive: Use reset-simple in prci driver for PCIe driver + - MAINTAINERS: Add maintainers for SiFive FU740 PCIe driver + - dt-bindings: PCI: Add SiFive FU740 PCIe host controller + - PCI: designware: Add SiFive FU740 PCIe host controller driver + - riscv: dts: Add PCIe support for the SiFive FU740-C000 SoC + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc4 + + -- Paolo Pisati Mon, 22 Mar 2021 12:43:14 +0100 + +linux-unstable (5.12.0-3.3) hirsute; urgency=medium + + * riscv: revert SiFive Unleashed CPUFreq (LP: #1917433) + - SAUCE: Revert "SiFive Unleashed CPUFreq" + + * Dell Precision 5550 takes up to 10 seconds to respond when coming out of + sleep (LP: #1919123) + - SAUCE: Input: i8042 - add dmi quirk + + * LRMv4: switch to signing nvidia modules via the Ubuntu Modules signing key + (LP: #1918134) + - [Packaging] sync dkms-build et al from LRMv4 + + * curtin: install flash-kernel in arm64 UEFI unexpected (LP: #1918427) + - [Packaging] Allow grub-efi-arm* to satisfy recommends on ARM + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Enable Tegra support in arm64 for NVIDIA Jetson (LP: #1918471) + - [Config] enable ARCH_TEGRA and all Tegra SOC's + - [Packaging] include modern Tegra modules + + * Cirrus Audio Codec CS8409/CS42L42: Input Device does not switch to headset + Mic when a headset is inserted (LP: #1918378) + - SAUCE: ALSA: hda/cirrus: Fix Headset Mic volume control name + + * Cirrus Audio Codec CS8409/CS42L42 support (LP: #1916554) + - ALSA: hda/cirrus: Increase AUTO_CFG_MAX_INS from 8 to 18 + - ALSA: hda/cirrus: Add support for CS8409 HDA bridge and CS42L42 companion + codec. + - ALSA: hda/cirrus: Add jack detect interrupt support from CS42L42 companion + codec. + - ALSA: hda/cirrus: Add Headphone and Headset MIC Volume Control + + * drm/i915: Drop force_probe requirement for JSL (LP: #1917843) + - SAUCE: drm/i915: Drop require_force_probe from JSL + + * Miscellaneous Ubuntu changes + - [Packaging] Skip d-i code if udebs are disabled + - [Packaging] Disable udebs if $DEBIAN/d-i doesn't exist + - [Packaging] remove dh-systemd build dependency + - [Config] fix several annotaions with enforcement typos + - [Config] refresh annotations + - [Config] updateconfigs following v5.12-rc3 rebase + - annotations: fixup after v5.12-rc3 rebase + - Rebase to v5.12-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc3 + + -- Paolo Pisati Tue, 16 Mar 2021 18:43:03 +0100 + +linux-unstable (5.12.0-2.2) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - Rebase to v5.12-rc2 + - [Config] updateconfigs following v5.12-rc2 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc2 + + -- Paolo Pisati Mon, 08 Mar 2021 11:22:04 +0100 + +linux-unstable (5.12.0-1.1) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Support no udeb profile (LP: #1916095) + - [Packaging] replace custom filter script with dctrl-tools + - [Packaging] correctly implement noudeb build profiles. + + * Miscellaneous Ubuntu changes + - [Packaging] dkms-versions -- remove nvidia-graphics-drivers-440-server + - [Debian] run ubuntu-regression-suite for linux-unstable + - [Packaging] remove Provides: aufs-dkms + - [Config] update config and annotations following v5.12-rc1 rebase + - [Config] disable nvidia and nvidia_server builds + - [Config] temporarily disable ZFS + - temporarily disable modules check + - annotations: s390: temporarily remove CONFIG_KMSG_IDS + - [Config] amd64: FTBFS: disable HIO + - [Config] FTBFS: disable SHIFT_FS + - [Config] s390: temporarily remove CONFIG_KMSG_IDS + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] disable nvidia and nvidia_server builds" + - Revert "UBUNTU: SAUCE: s390: kernel message catalog" + + [ Upstream Kernel Changes ] + + * Rebase to v5.12-rc1 + + -- Paolo Pisati Thu, 04 Mar 2021 18:26:12 +0100 + +linux-unstable (5.12.0-0.0) hirsute; urgency=medium + + * Empty entry + + -- Paolo Pisati Thu, 04 Mar 2021 18:17:32 +0100 + +linux-unstable (5.11.0-10.11) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Support CML-S CPU + TGP PCH (LP: #1909457) + - drm/i915/rkl: new rkl ddc map for different PCH + - SAUCE: drm/i915/gen9_bc : Add TGP PCH support + + * Use DCPD to control HP DreamColor panel (LP: #1911001) + - SAUCE: drm/dp: Another HP DreamColor panel brigntness fix + + * Update nvidia dkms build for module linker script changes + - [Packaging] build-dkms--nvidia-N -- Update for preprocessed module linker + script + + * 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 + + * Miscellaneous Ubuntu changes + - [Config] re-enable nvidia dkms + - SAUCE: selftests: memory-hotplug: bump timeout to 10min + - [Debian] update-aufs.sh -- Don't apply tmpfs-idr.patch + - [Config] Update configs + - [Config] disable nvidia and nvidia_server builds + - SAUCE: Import aufs driver + - [Config] CONFIG_AUFS_FS=n + - [Config] refresh annotations file + - [Config] set CONFIG_MIPI_I3C_HCI=m consistently + - [Config] set CONFIG_PINCTRL_MSM8953=m on armhf generic-lpae + - [Packaging] Change source package name to linux-unstable + - [Config] update LD_VERSION in config due to toolchain update + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: tmpfs: Don't use 64-bit inodes by defulat with 32-bit + ino_t" + + -- Andrea Righi Mon, 22 Feb 2021 07:18:07 +0100 + +linux-unstable (5.11.0-9.10) hirsute; urgency=medium + + * Empty entry + + -- Andrea Righi Mon, 22 Feb 2021 07:02:45 +0100 + +linux (5.11.0-9.10) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] update configs/annotations after rebase to 5.11 + - zfs-modules.ignore: add zzstd + + [ Upstream Kernel Changes ] + + * Rebase to v5.11 + + -- Andrea Righi Mon, 15 Feb 2021 16:29:36 +0100 + +linux (5.11.0-8.9) hirsute; urgency=medium + + * Missing device id for Intel TGL-H ISH [8086:43fc] in intel-ish-hid driver + (LP: #1914543) + - SAUCE: HID: intel-ish-hid: ipc: Add Tiger Lake H PCI device ID + + * Add support for new Realtek ethernet NIC (LP: #1914604) + - r8169: Add support for another RTL8168FP + + * Miscellaneous Ubuntu changes + - SAUCE: tmpfs: Don't use 64-bit inodes by defulat with 32-bit ino_t + - [Config] Set CONFIG_TMPFS_INODE64=n for s390x + - [Config] re-enable ZFS + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc7 + + -- Andrea Righi Mon, 08 Feb 2021 11:56:23 +0100 + +linux (5.11.0-7.8) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - SAUCE: x86/entry: build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + * Remove scary stack trace from Realtek WiFi driver (LP: #1913263) + - rtw88: reduce the log level for failure of tx report + + * Fix unexpected AER/DPC on PCH400 and PCH500 (LP: #1913691) + - Revert "UBUNTU: SAUCE: PCI: Enable ACS quirk on all CML root ports" + - Revert "UBUNTU: SAUCE: PCI: Enable ACS quirk on CML root port" + - SAUCE: PCI/AER: Disable AER interrupt during suspend + - SAUCE: PCI/DPC: Disable DPC interrupt during suspend + + * 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 + + * Introduce the new NVIDIA 460-server series and update the 460 series + (LP: #1913200) + - [Config] dkms-versions -- add the 460-server nvidia driver + + * Fix the video can't output through WD19TB connected with TGL platform during + cold-boot (LP: #1910211) + - SAUCE: drm/i915/dp: Prevent setting LTTPR mode if no LTTPR is detected + + * Stop using get_scalar_status command in Dell AIO uart backlight driver + (LP: #1865402) + - SAUCE: platform/x86: dell-uart-backlight: add get_display_mode command + + * Miscellaneous Ubuntu changes + - SAUCE: selftests/seccomp: Accept any valid fd in user_notification_addfd + - [Packaging] Don't disable CONFIG_DEBUG_INFO in headers packages + - [Config] update configs/annotations after rebase to 5.11-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc6 + + -- Andrea Righi Mon, 01 Feb 2021 10:27:52 +0100 + +linux (5.11.0-6.7) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Prevent thermal shutdown during boot process (LP: #1906168) + - thermal/drivers/acpi: Use hot and critical ops + - thermal/core: Remove notify ops + - thermal: int340x: Fix unexpected shutdown at critical temperature + - thermal: intel: pch: Fix unexpected shutdown at critical temperature + + * riscv: backport support for SiFive Unmatched (LP: #1910965) + - RISC-V: Update l2 cache DT documentation to add support for SiFive FU740 + - RISC-V: sifive_l2_cache: Update L2 cache driver to support SiFive FU740 + - dt-bindings: riscv: Update DT binding docs to support SiFive FU740 SoC + - riscv: dts: add initial support for the SiFive FU740-C000 SoC + - dt-bindings: riscv: Update YAML doc to support SiFive HiFive Unmatched board + - riscv: dts: add initial board data for the SiFive HiFive Unmatched + - PCI: microsemi: Add host driver for Microsemi PCIe controller + - Microsemi PCIe expansion board DT entry. + - SiFive Unleashed CPUFreq + - SiFive HiFive Unleashed: Add PWM LEDs (D1, D2, D3, D4) + + * initramfs unpacking failed (LP: #1835660) + - lib/decompress_unlz4.c: correctly handle zero-padding around initrds. + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to 5.11-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc5 + + -- Andrea Righi Mon, 25 Jan 2021 09:31:31 +0100 + +linux (5.11.0-5.6) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] update config and annotations after rebase to 5.11-rc4 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc4 + + -- Andrea Righi Mon, 18 Jan 2021 10:46:10 +0100 + +linux (5.11.0-4.5) hirsute; urgency=medium + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - SAUCE: x86/entry: build thunk_$(BITS) only if CONFIG_PREEMPTION=y + + -- Andrea Righi Thu, 14 Jan 2021 12:53:26 +0100 + +linux (5.11.0-3.4) hirsute; urgency=medium + + * Boot fails: failed to validate module [nls_iso8859_1] BTF: -22 + (LP: #1911359) + - bpf: Allow empty module BTFs + - libbpf: Allow loading empty BTFs + + -- Andrea Righi Thu, 14 Jan 2021 07:43:45 +0100 + +linux (5.11.0-2.3) hirsute; urgency=medium + + * DMI entry syntax fix for Pegatron / ByteSpeed C15B (LP: #1910639) + - Input: i8042 - unbreak Pegatron C15B + + * 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 + + * debian/scripts/file-downloader does not handle positive failures correctly + (LP: #1878897) + - [Packaging] file-downloader not handling positive failures correctly + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * CVE-2021-1052 // CVE-2021-1053 + - [Packaging] NVIDIA -- Add the NVIDIA 460 driver + + * Miscellaneous Ubuntu changes + - [Packaging] Remove nvidia-455 dkms build + - SAUCE: ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP + machines + - [Config] update configs and annotations after rebase to 5.11-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc3 + + -- Andrea Righi Mon, 11 Jan 2021 09:52:27 +0100 + +linux (5.11.0-1.2) hirsute; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc2 + + -- Andrea Righi Thu, 07 Jan 2021 16:57:01 +0100 + +linux (5.11.0-0.1) hirsute; urgency=medium + + * dep-8 ubuntu-regression-suite tests are not run for all linux-hwe-* kernels + (LP: #1908529) + - [dep-8] Allow all hwe kernels + + * Fix reading speed and duplex sysfs on igc device (LP: #1906851) + - igc: Report speed and duplex as unknown when device is runtime suspended + + * rtwpci driver blocks the system to enter PC10, stuck at PC3 (LP: #1907200) + - SAUCE: rtw88: 8723de: let cpu enter c10 + + * [21.04 FEAT] Deactivate CONFIG_QETH_OSN kernel config option (LP: #1906370) + - [Config] Deactivate CONFIG_QETH_OSN kernel config option + + * Add dpcd backlight control for 0x4c83 0x4f41 (LP: #1905663) + - SAUCE: drm/dp: Add dpcd backlight control for 0x4c83 0x4f41 + + * disable building bpf selftests (LP: #1908144) + - SAUCE: selftests/bpf: Clarify build error if no vmlinux + - SAUCE: selftests: Skip BPF selftests by default + - disable building bpf selftests (no VMLINUX_BTF) + + * Miscellaneous Ubuntu changes + - SAUCE: (lockdown) efi: Add an EFI_SECURE_BOOT flag to indicate secure boot + mode + - SAUCE: (lockdown) s390: Lock down the kernel when the IPL secure flag is set + - [Config] update configs and annotations after rebase to v5.11-rc1 + - hio: fix build error with kernel 5.11 + - SAUCE: shiftfs: fix build error with 5.11 + - [Config] temporarily disable ZFS + - check-aliases: do not error if modules.alias does not exist + - ppc64el: don't build stripped vdso + + * Miscellaneous upstream changes + - irq: export irq_check_status_bit + + [ Upstream Kernel Changes ] + + * Rebase to v5.11-rc1 + + -- Andrea Righi Mon, 04 Jan 2021 09:17:48 +0100 + +linux (5.11.0-0.0) hirsute; urgency=medium + + * Empty entry + + -- Andrea Righi Wed, 30 Dec 2020 09:04:41 +0100 + +linux (5.10.0-9.10) hirsute; urgency=medium + + * Use INTx for Pericom USB controllers (LP: #1906839) + - PCI: Disable MSI for Pericom PCIe-USB adapter + + * disable building bpf selftests (LP: #1908144) + - SAUCE: selftests/bpf: clarify build error if no vmlinux + - SAUCE: selftests: Skip BPF seftests by default + - disable building bpf selftests (no VMLINUX_BTF) + + * Miscellaneous Ubuntu changes + - [Config] Enable CONFIG_BPF_LSM + + * Miscellaneous upstream changes + - Revert "md: change mddev 'chunk_sectors' from int to unsigned" + - Revert "dm raid: fix discard limits for raid1 and raid10" + + -- Andrea Righi Tue, 15 Dec 2020 10:16:14 +0100 + +linux (5.10.0-8.9) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Fix bpf selftest compilation with clang 11 + - bpf: Fix selftest compilation on clang 11 + + * Miscellaneous Ubuntu changes + - [Config] update configs and annotations after rebase to v5.10 + + [ Upstream Kernel Changes ] + + * Rebase to v5.10 + + -- Andrea Righi Mon, 14 Dec 2020 08:57:57 +0100 + +linux (5.10.0-7.8) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix linux-libc-dev build for hirsute forward port kernels (LP: #1904067) + - [Debian] Build linux-libc-dev for debian.master* branches + + * Update kernel packaging to support forward porting kernels (LP: #1902957) + - [Debian] Update for leader included in BACKPORT_SUFFIX + + * Introduce the new NVIDIA 455 series (LP: #1897751) + - [Packaging] NVIDIA -- Add signed modules for the 455 driver + + * 5.10 kernel fails to boot with secure boot disabled (LP: #1904906) + - [Config] CONFIG_RCU_SCALE_TEST=n + + * Miscellaneous Ubuntu changes + - [Config] s390x: disable GPIO_CDEV + - [Config] ARM_CMN=m + - [Config] disable GPIO_CDEV_V1 + - [Config] Reorder annotations after 5.10-rc6 rebase + - [Packaging] Remove nvidia-435 dkms build + - [Packaging] Change source package name to linux + - [Config] Update configs and annotations after rebase to v5.10-rc7 + - SAUCE: Revert "mm/filemap: add static for function + __add_to_page_cache_locked" + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc7 + + -- Seth Forshee Mon, 07 Dec 2020 00:15:20 -0600 + +linux (5.10.0-6.7) hirsute; urgency=medium + + * Empty entry. + + -- Seth Forshee Sun, 06 Dec 2020 22:13:46 -0600 + +linux-5.10 (5.10.0-6.7) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Avoid double newline when running insertchanges (LP: #1903293) + - [Packaging] insertchanges: avoid double newline + + * Miscellaneous Ubuntu changes + - [Packaging]: linux-modules should depend on linux-image + - [Packaging]: linux-image should suggest linux-modules-extra + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc6 + + -- Andrea Righi Mon, 30 Nov 2020 07:47:34 +0100 + +linux-5.10 (5.10.0-5.6) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] add CONFIG_INFINIBAND_VIRT_DMA + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc5 + + -- Andrea Righi Mon, 23 Nov 2020 13:17:44 +0100 + +linux-5.10 (5.10.0-4.5) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Packaging] reduce the size required to build packages + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc4 + + -- Andrea Righi Mon, 16 Nov 2020 08:33:54 +0100 + +linux-5.10 (5.10.0-3.4) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * e1000e: fix issues with S0ix (LP: #1902687) + - SAUCE: e1000e: fix S0ix flow to allow S0i3.2 subset entry + - SAUCE: e1000e: allow turning s0ix flows on for systems with ME + - SAUCE: e1000e: Add Dell's Comet Lake systems into s0ix heuristics + - SAUCE: e1000e: Add more Dell CML systems into s0ix heuristics + - [Config] Update CONFIG_E1000E for ppc64el in annotations + + * perf: Add support for Rocket Lake (LP: #1902004) + - SAUCE: perf/x86/intel: Add Rocket Lake CPU support + - SAUCE: perf/x86/cstate: Add Rocket Lake CPU support + - SAUCE: perf/x86/msr: Add Rocket Lake CPU support + - SAUCE: perf/x86/intel/uncore: Add Rocket Lake support + + * Miscellaneous Ubuntu changes + - [Config] Disable CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE + - [Config] update CONFIG_MST_IRQ after rebase to 5.10-rc3 + - [Config] drop obsolete SND_SST_IPC options + - [Config] re-enable ZFS + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc3 + + -- Andrea Righi Mon, 09 Nov 2020 09:37:08 +0100 + +linux-5.10 (5.10.0-2.3) hirsute; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Switch arm64 default cpufreq governor to ondemand + - [Debian] Include scripts/module.lds from builddir in headers package + + -- Seth Forshee Tue, 03 Nov 2020 21:01:52 -0600 + +linux-5.10 (5.10.0-1.2) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Fix non-working Intel NVMe after S3 (LP: #1900847) + - SAUCE: PCI: Enable ACS quirk on all CML root ports + + * Miscellaneous Ubuntu changes + - [Packaging] move to hirsute + - [Config] Update configs and annotations after rebase to 5.10-rc2 + - [Config] Update numerous configs to conform with policy + - [Config] Switch default CPUFreq governer for arm64/armhf to schedultil + - [Config] Temporarily disable DEBUG_INFO_BTF for armhf + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc2 + + -- Seth Forshee Mon, 02 Nov 2020 13:18:27 -0600 + +linux-5.10 (5.10.0-0.1) hirsute; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - [Config] Update configs and annotations for v5.10-rc1 + - SAUCE: platform/x86: dell-uart-backlight: rename kzfree() to + kfree_sensitive() + - SAUCE: apparmor: rename kzfree() to kfree_sensitive() + - SAUCE: LSM: change ima_read_file() to use lsmblob + - SAUCE: LSM: Use lsmblob in smk_netlbl_mls() + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Packaging] Change source package name to linux-5.10" + - s390: correct __bootdata / __bootdata_preserved macros + + [ Upstream Kernel Changes ] + + * Rebase to v5.10-rc1 + + -- Paolo Pisati Tue, 27 Oct 2020 16:57:07 +0100 + +linux-5.10 (5.10.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Paolo Pisati Mon, 26 Oct 2020 14:55:48 +0100 + +linux-5.9 (5.9.0-2.3) groovy; urgency=medium + + * Fix system reboot when disconnecting WiFi (LP: #1899726) + - iwlwifi: msix: limit max RX queues for 9000 family + + * booting linux-generic-lpae armhf kernel under qemu results in relocation out + of range, and thus no modules can be loaded (LP: #1899519) + - [Config] armhf: ARM_MODULE_PLTS=y + + * Fix broken MSI interrupt after HDA controller was suspended (LP: #1899586) + - ALSA: hda: fix jack detection with Realtek codecs when in D3 + + * CVE-2020-16119 + - SAUCE: dccp: avoid double free of ccid on child socket + + * python3-venv is gone (LP: #1896801) + - SAUCE: doc: remove python3-venv dependency + + * *-tools-common packages descriptions have typo "PGKVER" (LP: #1898903) + - [Packaging] Fix typo in -tools template s/PGKVER/PKGVER/ + + * Enable brightness control on HP DreamColor panel (LP: #1898865) + - SAUCE: drm/i915/dpcd_bl: Skip testing control capability with force DPCD + quirk + - SAUCE: drm/dp: HP DreamColor panel brigntness fix + + * 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 + + * Wakeup the system by touching the touchpad (LP: #1888331) + - HID: i2c-hid: Enable wakeup capability from Suspend-to-Idle + + * Enable LTR for endpoints behind VMD (LP: #1896598) + - SAUCE: PCI/ASPM: Enable LTR for endpoints behind VMD + + * [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 + + * 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 + + * Fix non-working NVMe after S3 (LP: #1895718) + - SAUCE: PCI: Enable ACS quirk on CML root port + + * Miscellaneous Ubuntu changes + - SAUCE: bpf: Check CONFIG_BPF option for resolve_btfids + - SAUCE: tools resolve_btfids: Always force HOSTARCH + - packaging: arm64: add a 64KB mem pages flavour called 'generic-64k' + - packaging: arm64: generic-64k: skip ABI, modules and retpoline checks + - SAUCE: drm/i915/display: Fix null deref in intel_psr_atomic_check() + - [Config] Update toolchain versions + - [Config] Refresh annotations + - Add ubuntu-host module + - CONFIG_UBUNTU_HOST=m + - SAUCE: apparmor: drop prefixing abs root labels with '=' + - SAUCE: apparmor: disable showing the mode as part of a secid to secctx + - SAUCE: apparmor: rename aa_sock() to aa_unix_sk() + - SAUCE: apparmor: LSM stacking: switch from SK_CTX() to aa_sock() + - SAUCE: LSM: Infrastructure management of the sock security + - SAUCE: LSM: Create and manage the lsmblob data structure. + - SAUCE: LSM: Use lsmblob in security_audit_rule_match + - SAUCE: LSM: Use lsmblob in security_kernel_act_as + - SAUCE: net: Prepare UDS for security module stacking + - SAUCE: LSM: Use lsmblob in security_secctx_to_secid + - SAUCE: LSM: Use lsmblob in security_secid_to_secctx + - SAUCE: LSM: Use lsmblob in security_ipc_getsecid + - SAUCE: LSM: Use lsmblob in security_task_getsecid + - SAUCE: LSM: Use lsmblob in security_inode_getsecid + - SAUCE: LSM: Use lsmblob in security_cred_getsecid + - SAUCE: IMA: Change internal interfaces to use lsmblobs + - SAUCE: LSM: Specify which LSM to display + - SAUCE: LSM: Ensure the correct LSM context releaser + - SAUCE: LSM: Use lsmcontext in security_secid_to_secctx + - SAUCE: LSM: Use lsmcontext in security_inode_getsecctx + - SAUCE: LSM: security_secid_to_secctx in netlink netfilter + - SAUCE: NET: Store LSM netlabel data in a lsmblob + - SAUCE: LSM: Verify LSM display sanity in binder + - SAUCE: Audit: Add new record for multiple process LSM attributes + - SAUCE: Audit: Add a new record for multiple object LSM + - SAUCE: LSM: Add /proc attr entry for full LSM context + - SAUCE: AppArmor: Remove the exclusive flag + - SAUCE: Audit: Fix for missing NULL check + + * Miscellaneous upstream changes + - tty: hvcs: Don't NULL tty->driver_data until hvcs_cleanup() + + [ Upstream Kernel Changes ] + + * Rebase to v5.9 + + -- Seth Forshee Wed, 14 Oct 2020 13:31:18 -0500 + +linux-5.9 (5.9.0-1.2) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Update configs after rebase to 5.9-rc6 + - SAUCE: dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX + - SAUCE: bpf: Use --no-fail option if CONFIG_BPF is not enabled + - SAUCE: tools resolve_btfids: Always force HOSTARCH + + [ Upstream Kernel Changes ] + + * Rebase to v5.9-rc6 + + -- Seth Forshee Mon, 21 Sep 2020 14:39:34 -0500 + +linux-5.9 (5.9.0-0.1) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Update configs and annotations for v5.9-rc1 + - SAUCE: i915: Fix build error due to missing struct definition + - hio -- Update blk_queue_split() calls for changes in 5.9-rc1 + - hio -- Updates for move of make_request_fn to struct block_device_operations + - [Config] Disable zfs dkms build + - [Config] Disable nvidia dkms build + - [Config] Disable nvidia server dkms builds + - SAUCE: remoteproc: qcom: Use div_u64() for 64-bit division + - SAUCE: PCI/ASPM: Enable ASPM for links under VMD domain + - [Packaging] Bind hv_vss_daemon startup to hv_vss device + - [Packaging] bind hv_fcopy_daemon startup to hv_fcopy device + - [Config] Re-enable UEFI signing for arm64 + - SAUCE: Revert "UBUNTU: SAUCE: export __get_vm_area_caller() and map_kernel_range()" + - [Config] Set the default CPU governor to ONDEMAND + - [Packaging] update variants + - [Packaging] update helper scripts + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.9-rc5 + + -- Seth Forshee Thu, 17 Sep 2020 15:01:21 -0500 + +linux-5.9 (5.9.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Tue, 18 Aug 2020 16:48:03 -0500 + +linux (5.8.0-16.17) groovy; urgency=medium + + * groovy/linux: 5.8.0-16.17 -proposed tracker (LP: #1891233) + + * Miscellaneous Ubuntu changes + - hio -- Update to use bio_{start,end}_io_acct with 5.8+ + - Enable hio driver + - [Packaging] Temporarily disable building doc package contents + + -- Seth Forshee Tue, 11 Aug 2020 15:32:58 -0500 + +linux (5.8.0-15.16) groovy; urgency=medium + + * groovy/linux: 5.8.0-15.16 -proposed tracker (LP: #1891177) + + * Miscellaneous Ubuntu changes + - SAUCE: Documentation: import error c_funcptr_sig_re, c_sig_re (sphinx- + doc/sphinx@0f49e30c) + + -- Seth Forshee Tue, 11 Aug 2020 09:29:58 -0500 + +linux (5.8.0-14.15) groovy; urgency=medium + + * groovy/linux: 5.8.0-14.15 -proposed tracker (LP: #1891085) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * msg_zerocopy.sh in net from ubuntu_kernel_selftests failed (LP: #1812620) + - selftests/net: relax cpu affinity requirement in msg_zerocopy test + + * Fix missing HDMI/DP Audio on an HP Desktop (LP: #1890441) + - ALSA: hda/hdmi: Add quirk to force connectivity + + * Add initial audio support for Lenovo ThinkStation P620 (LP: #1890317) + - ALSA: usb-audio: Add support for Lenovo ThinkStation P620 + + * Fix IOMMU error on AMD Radeon Pro W5700 (LP: #1890306) + - PCI: Mark AMD Navi10 GPU rev 0x00 ATS as broken + + * Enlarge hisi_sec2 capability (LP: #1890222) + - crypto: hisilicon - update SEC driver module parameter + + * Miscellaneous Ubuntu changes + - [Config] Re-enable signing for ppc64el + + -- Seth Forshee Mon, 10 Aug 2020 15:26:46 -0500 + +linux (5.8.0-13.14) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] Remove i386 configs + - SAUCE: apply a workaround to re-enable CONFIG_CRYPTO_AEGIS128_SIMD + - SAUCE: export __get_vm_area_caller() and map_kernel_range() + - [Config] drop CONFIG_BINFMT_AOUT enforcement + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] disable CONFIG_CRYPTO_AEGIS128_SIMD" + + [ Upstream Kernel Changes ] + + * Rebase to v5.8 + + -- Andrea Righi Tue, 04 Aug 2020 09:51:50 +0200 + +linux (5.8.0-12.13) groovy; urgency=medium + + * groovy/linux: 5.8.0-12.13 -proposed tracker (LP: #1889481) + + * 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 + + * Add support for Atlantic NIC firmware v4 (LP: #1886908) + - Revert "UBUNTU: SAUCE: net: atlantic: Add support for firmware v4" + - net: atlantic: align return value of ver_match function with function name + - net: atlantic: add support for FW 4.x + + * Miscellaneous Ubuntu changes + - [Debian] Fix debian/tests for linux-5.8 -> linux rename + - SAUCE: selftests/powerpc: return skip code for spectre_v2 + + -- Seth Forshee Wed, 29 Jul 2020 16:58:47 -0500 + +linux (5.8.0-11.12) groovy; urgency=medium + + * groovy/linux: 5.8.0-11.12 -proposed tracker (LP: #1889336) + + * Miscellaneous Ubuntu changes + - [Packaging] dwarves is not required for linux-libc-dev or stage1 + + -- Seth Forshee Tue, 28 Jul 2020 22:33:24 -0500 + +linux (5.8.0-10.11) groovy; urgency=medium + + * groovy/linux: 5.8.0-10.11 -proposed tracker (LP: #1889316) + + * Miscellaneous Ubuntu changes + - [Packaging] Add more packages to Build-Depends-Indep for docs + - [Debian] Specify python executable in kmake + - [Debian] Don't treat warnings as errors during perf builds + - [Config] Disable signing for ppc64el + + -- Seth Forshee Tue, 28 Jul 2020 17:09:52 -0500 + +linux (5.8.0-9.10) groovy; urgency=medium + + * groovy/linux: 5.8.0-9.10 -proposed tracker (LP: #1889140) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * Miscellaneous Ubuntu changes + - SAUCE: Fix s390x compile error on F32 utils/stat-display.c + - [Packaging] Add python3-venv to Build-Depends-Indep + + -- Seth Forshee Mon, 27 Jul 2020 21:01:46 -0500 + +linux (5.8.0-8.9) groovy; urgency=medium + + * groovy/linux: 5.8.0-8.9 -proposed tracker (LP: #1889104) + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + - [Packaging] update variants + + * Introduce the new NVIDIA 450-server and the 450 UDA series (LP: #1887674) + - [Packaging] NVIDIA -- Add signed modules for 450 450-server + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "radix-tree: Use local_lock for protection" + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=n + - [Config] disable CONFIG_CRYPTO_AEGIS128_SIMD + - [Config] Enable nvidia dkms build + + * Miscellaneous upstream changes + - usbip: tools: fix build error for multiple definition + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc7 + + -- Seth Forshee Mon, 27 Jul 2020 11:18:12 -0500 + +linux (5.8.0-7.8) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Mon, 27 Jul 2020 09:22:19 +0200 + +linux-5.8 (5.8.0-7.8) groovy; urgency=medium + + * 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 + + * linux 4.15.0-109-generic network DoS regression vs -108 (LP: #1886668) + - SAUCE: Revert "netprio_cgroup: Fix unlimited memory leak of v2 cgroups" + + * Add support for Atlantic NIC firmware v4 (LP: #1886908) + - SAUCE: net: atlantic: Add support for firmware v4 + + * MGA G200e doesn't work under GDM Wayland (LP: #1886140) + - drm/mgag200: Remove HW cursor + - drm/mgag200: Clean up mga_set_start_address() + - drm/mgag200: Clean up mga_crtc_do_set_base() + - drm/mgag200: Move mode-setting code into separate helper function + - drm/mgag200: Split MISC register update into PLL selection, SYNC and I/O + - drm/mgag200: Update mode registers after plane registers + - drm/mgag200: Set pitch in a separate helper function + - drm/mgag200: Set primary plane's format in separate helper function + - drm/mgag200: Move TAGFIFO reset into separate function + - drm/mgag200: Move hiprilvl setting into separate functions + - drm/mgag200: Move register initialization into separate function + - drm/mgag200: Remove out-commented suspend/resume helpers + - drm/mgag200: Use simple-display data structures + - drm/mgag200: Convert to simple KMS helper + - drm/mgag200: Replace VRAM helpers with SHMEM helpers + + * Miscellaneous Ubuntu changes + - SAUCE: s390/bpf: fix sign extension in branch_ku + - SAUCE: selftests: net: ip_defrag: modprobe missing nf_defrag_ipv6 support + - SAUCE: selftests: fib_nexthop_multiprefix: fix cleanup() netns deletion + - [packaging] debhelper-compat (= 10) (and retire debian/compat) + - [Config] Update configs after rebase to 5.8-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc6 + + -- Andrea Righi Mon, 20 Jul 2020 09:55:47 +0200 + +linux-5.8 (5.8.0-6.7) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * perf build broken after updating to bintuils 2.34.90.20200706-1ubuntu1 + (LP: #1887397) + - SAUCE: libtraceevent: Strip symbol version from nm output + + -- Seth Forshee Mon, 13 Jul 2020 14:07:53 -0500 + +linux-5.8 (5.8.0-5.6) groovy; urgency=medium + + * linux-libc-dev broken for crossbuilding, Multi-Arch:same violation + (LP: #1886188) + - [Packaging] Produce linux-libc-deb package for riscv64 + - [Debian] Disallow building linux-libc-dev from linux-riscv + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "UBUNTU: SAUCE: test_bpf: remove expected fail for Ctx heavy + transformations test on s390" + - SAUCE: Revert "test_bpf: flag tests that cannot be jited on s390" + - [Config] Update configs (gcc update) + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc5 + + -- Andrea Righi Mon, 13 Jul 2020 08:42:14 +0200 + +linux-5.8 (5.8.0-4.5) groovy; urgency=medium + + * Add generic LED class support for audio LED (LP: #1885896) + - ALSA: hda: generic: Always call led-trigger for mic mute LED + - ALSA: hda: generic: Add a helper for mic-mute LED with LED classdev + - ALSA: hda/realtek: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda/conexant: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda/sigmatel: Convert to cdev-variant of mic-mute LED controls + - ALSA: hda: generic: Drop unused snd_hda_gen_fixup_micmute_led() + - ALSA: hda: generic: Drop the old mic-mute LED hook + - ALSA: hda: generic: Add vmaster mute LED helper + - ALSA: hda/realtek: Use the new vmaster mute LED helper + - ALSA: hda/conexant: Use the new vmaster mute LED helper + - ALSA: hda/sigmatel: Use the new vmaster mute LED helper + - ALSA: hda/realtek: Unify LED helper code + - ALSA: hda: Let LED cdev handling suspend/resume + + * seccomp_bpf fails on powerpc (LP: #1885757) + - SAUCE: selftests/seccomp: fix ptrace tests on powerpc + + * CVE-2020-11935 + - SAUCE: aufs: do not call i_readcount_inc() + + * Miscellaneous Ubuntu changes + - SAUCE: Update aufs to 5.x-rcN 20200622 + - [Config] Update configs to set CONFIG_SND_HDA_GENERIC_LEDS value + - [Config] CONFIG_SECURITY_DMESG_RESTRICT=y + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc4 + + -- Seth Forshee Mon, 06 Jul 2020 08:14:28 -0500 + +linux-5.8 (5.8.0-3.4) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + + * lxc 1:4.0.2-0ubuntu1 ADT test failure with linux-5.8 5.8.0-1.2 + (LP: #1884635) + - SAUCE: overlayfs: fix faulty rebase + + * 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" + + * Miscellaneous Ubuntu changes + - [Config] CONFIG_DEBUG_INFO_COMPRESSED=y + - SAUCE: regulator: rename da903x to da903x-regulator + - [Config] Add da903x to modules.ignore + - [Config] Update configs for rebase to 5.8-rc3 + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc3 + + -- Seth Forshee Mon, 29 Jun 2020 08:48:25 -0500 + +linux-5.8 (5.8.0-2.3) groovy; urgency=medium + + * Support Audio Mute LED for two new HP laptops (LP: #1884251) + - ALSA: hda/realtek: Add mute LED and micmute LED support for HP systems + + * CVE-2019-16089 + - SAUCE: nbd_genl_status: null check for nla_nest_start + + * tpm: fix TIS locality timeout problems (LP: #1881710) + - SAUCE: tpm: fix TIS locality timeout problems + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Miscellaneous Ubuntu changes + - SAUCE: security,perf: Allow further restriction of perf_event_open + - [Config] CONFIG_SECURITY_PERF_EVENTS_RESTRICT=y + - [Config] Update configs and annotations for 5.8-rc2 + - [Config] Enable zfs + - [Config] Enable CONFIG_DEBUG_INFO_BTF + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc2 + + -- Seth Forshee Mon, 22 Jun 2020 15:05:54 -0500 + +linux-5.8 (5.8.0-1.2) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Debian] Support linux-x.y in udeb package names + - [Packaging] Use SRCPKGNAME for udeb packages + + -- Seth Forshee Wed, 17 Jun 2020 19:34:32 -0500 + +linux-5.8 (5.8.0-0.1) groovy; urgency=medium + + * Docker registry doesn't stay up and keeps restarting (LP: #1879690) + - Revert "UBUNTU: SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay" + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Miscellaneous Ubuntu changes + - [Packaging] Update source package name to linux-5.8 + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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) powerpc: lock down kernel in secure boot mode + - SAUCE: Import aufs driver + - [Config] Update configs for v5.8-rc1 + - [Config] Update annotations for v5.8-rc1 config changes + - SAUCE: shiftfs -- Fix build errors from missing fiemap definitions + - Disable hio driver + + * Miscellaneous upstream changes + - acpi: disallow loading configfs acpi tables when locked down + + [ Upstream Kernel Changes ] + + * Rebase to v5.8-rc1 + + -- Seth Forshee Wed, 17 Jun 2020 11:54:24 -0500 + +linux-5.8 (5.8.0-0.0) groovy; urgency=medium + + * Empty entry + + -- Seth Forshee Sun, 14 Jun 2020 22:40:35 -0500 + +linux-5.7 (5.7.0-8.9) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Enforce all config annotations (LP: #1879327) + - [Config]: do not enforce CONFIG_VERSION_SIGNATURE + - [Config]: prepare to enforce all + - [Config]: enforce all config options + + * Miscellaneous Ubuntu changes + - [Config]: annotations review after 5.7 rebase + - [Config] annotations: IXP4XX* depends on ARCH_IXP4XX + - [Config] THERMAL_GOV_POWER_ALLOCATOR=y + - [Config] annotations: SOC_CAMERA is marked as BROKEN + - [Config] annotations: NFSD_V4_2_INTER_SSC depends on NFS_FS=y + - [Config] annotations: CRYPTO_DEV_CHELSIO_TLS depends on legacy (and largely + unmantained) TLS_TOE + - [Config] annotations: SERIO_OLPC_APSP depends on ARCH_MMP + - [Config] RTW88_DEBUG=y + - [Config] annotations: ISDN_CAPI is a bool, and BT_CMTP depends on it + - [Config] annotations SND_SOC_SOF_DEVELOPER_SUPPORT depends on + SND_SOC_SOF_DEVELOPER_SUPPORT + - [Config] annotations: SND_SOC_SOF_BAYTRAIL_SUPPORT is mutually exclusive + with SND_SST_ATOM_HIFI2_PLATFORM_ACPI + - [Config] annotations: DEBUG_IMX_UART_PORT is defined only any + DEBUG_IMX*_UART is enabled + - [Config] annotations: HW_RANDOM_IMX_RNGC depends on SOC_IMX25 + - [Config] annotations: armhf: VIRTUALIZATION support was removed for arm32 + - [Config] annotations: arm64: remove DEBUG_ALIGN_RODATA + - [Config] annotations: ppc64: DATA_SHIFT defaults to PPC_PAGE_SHIFT + - [Config] arm64: enforce ARM64_USE_LSE_ATOMICS + - [Config] s390x: MOST is not set + - [Config] s390x: BCM84881_PHY is not set + - [Config] s390x: XILINX_LL_TEMAC is not set + - [Config] s390x: PHY_INTEL_EMMC requires GENERIC_PHY (off by default on + s390x) + - [Config] s390x: CHECK_STACK conflicts with VMAP_STACK + - [Config] annotations: s390x: NODES_SHIFT=1 + - [Config] annotations: import new symbols + - [Config] annotations: remove unmatched menu and options + + -- Paolo Pisati Fri, 12 Jun 2020 12:03:01 +0200 + +linux-5.7 (5.7.0-7.8) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + - [Packaging] update helper scripts + + * [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 + + * Miscellaneous Ubuntu changes + - [Config] Disable UEFI signing for arm64 + - Rebase to v5.7.1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.7.1 + + -- Paolo Pisati Mon, 08 Jun 2020 11:16:58 +0200 + +linux-5.7 (5.7.0-6.7) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + + * shiftfs: fix btrfs snapshot deletion (LP: #1879688) + - SAUCE: shiftfs: let userns root destroy subvolumes from other users + + * seccomp_benchmark times out on eoan (LP: #1881576) + - SAUCE: selftests/seccomp: use 90s as timeout + + * 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: 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 + + * 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 + + * Slow send speed with Intel I219-V on Ubuntu 18.04.1 (LP: #1802691) + - e1000e: Disable TSO for buffer overrun workaround + + * Fix incorrect speed/duplex when I210 device is runtime suspended + (LP: #1880656) + - igb: Report speed and duplex as unknown when device is runtime suspended + + * 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 + + * [UBUNTU 20.04] s390x/pci: enumerate pci functions per physical adapter + (LP: #1874056) + - 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 + + * add 16-bit width registers support for EEPROM at24 device (LP: #1876699) + - regmap-i2c: add 16-bit width registers support + + * Miscellaneous Ubuntu changes + - [Config] Enable virtualbox guest and shared-folder modules + + [ Upstream Kernel Changes ] + + * Rebase to v5.7 + + -- Seth Forshee Mon, 01 Jun 2020 16:11:24 -0500 + +linux-5.7 (5.7.0-5.6) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * [UBUNTU 20.04] PSI generates overhead on s390x (LP: #1876044) + - Ubuntu: [Config] CONFIG_PSI is enabled by default, but creates additional + overhead on s390x, hence should be disabled by default on s390x only. + + * Miscellaneous Ubuntu changes + - Rebase to v5.7-rc7 + - [Config] ppc64el: disable STRICT_KERNEL_RWX + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc7 + + -- Paolo Pisati Mon, 25 May 2020 11:44:09 +0200 + +linux-5.7 (5.7.0-4.5) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * update-initramfs complains of missing amdgpu firmware files (LP: #1873325) + - SAUCE: drm/amdgpu: Remove unreleased arcturus and navi12 firmware from + modinfo + + * 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() + + * 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) + - SAUCE: iwlwifi: pcie: handle QuZ configs with killer NICs as well + + * 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 + + * Unable to handle kernel pointer dereference in virtual kernel address space + on Eoan (LP: #1876645) + - SAUCE: overlayfs: fix shitfs special-casing + + * Miscellaneous Ubuntu changes + - SAUCE: skip building selftest 'runqslower' if kernel not built + - Rebase to v5.7-rc6 + - [Config] updateconfigs after 5.7-rc6 rebase + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc6 + + -- Paolo Pisati Mon, 18 May 2020 11:27:25 +0200 + +linux-5.7 (5.7.0-3.4) groovy; urgency=medium + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc5 + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * getitimer returns it_value=0 erroneously (LP: #1349028) + - [Config] CONTEXT_TRACKING_FORCE policy should be unset + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: Import aufs driver + - [Config] Enable aufs + - [Config] annotations: remove SND_SOC_SOF_HDA_COMMON_HDMI_CODEC + - [Config] Remove CONFIG_SND_HDA_INTEL_DETECT_DMIC from annotations + - [Debian] final-checks -- Do not remove ~* from abi + - [Config] Enable 5-level page table support for x86 + - [Config] updateconfigs after 5.7-rc5 rebase + + -- Paolo Pisati Mon, 11 May 2020 10:25:42 +0200 + +linux-5.7 (5.7.0-2.3) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + - update dkms package versions + - [Packaging] update helper scripts + + * ASUS T100HAN boots to a blank screen with a cursor [i965: Failed to submit + batchbuffer: Input/output error] (LP: #1860754) + - [Config] CONFIG_PMIC_OPREGION=y and CONFIG_GPIO_CRYSTAL_COVE=y for amd64 + + * 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 + + * built-using constraints preventing uploads (LP: #1875601) + - temporarily drop Built-Using data + + * dkms artifacts may expire from the pool (LP: #1850958) + - [Packaging] autoreconstruct -- manage executable debian files + - [packaging] handle downloads from the librarian better + + * Add signed modules for the 435 NVIDIA driver (LP: #1875888) + - [Packaging] NVIDIA -- add signed modules for the 435 NVIDIA driver + + * [Selftests] Apply various fixes and improvements (LP: #1870543) + - SAUCE: selftests/seccomp -- Disable timeout for seccomp tests + + * [17.04 FEAT] Integrate kernel message catalogue for s390x into Ubuntu + distribution (LP: #1628889) + - SAUCE: s390: kernel message catalog + + * Overlayfs in user namespace leaks directory content of inaccessible + directories (LP: #1793458) // CVE-2018-6559 + - SAUCE: overlayfs: ensure mounter privileges when reading directories + + * suspend only works once on ThinkPad X1 Carbon gen 7 (LP: #1865570) + - SAUCE: e1000e: Disable s0ix flow for X1 Carbon 7th + + * [ICL] TC port in legacy/static mode can't be detected due TCCOLD + (LP: #1868936) + - drm/i915/display: Move out code to return the digital_port of the aux ch + - drm/i915/display: Add intel_legacy_aux_to_power_domain() + - drm/i915/display: Split hsw_power_well_enable() into two + - drm/i915/tc/icl: Implement TC cold sequences + - drm/i915/tc: Skip ref held check for TC legacy aux power wells + - drm/i915/tc/tgl: Implement TC cold sequences + - drm/i915/tc: Catch TC users accessing FIA registers without enable aux + - drm/i915/tc: Do not warn when aux power well of static TC ports timeout + + * 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" + + * 'Elan touchpad' not detected on 'Lenovo ThinkBook 15 IIL' (LP: #1861610) + - SAUCE: Input: elan_i2c - add more hardware ID for Lenovo laptop + + * linux-image-5.0.0-35-generic breaks checkpointing of container + (LP: #1857257) + - SAUCE: overlayfs: use shiftfs hacks only with shiftfs as underlay + + * alsa/sof: kernel oops on the machine without Intel hdmi audio codec (a + regression in the asoc machine driver) (LP: #1874359) + - ASoC: intel/skl/hda - fix oops on systems without i915 audio codec + + * Add debian/rules targets to compile/run kernel selftests (LP: #1874286) + - [Packaging] add support to compile/run selftests + + * 5.4.0-24.28 does not seem to apply rtprio, whereas -21 does. (LP: #1873315) + - [Config] lowlatency: turn off RT_GROUP_SCHED + + * 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 + + * shiftfs: O_TMPFILE reports ESTALE (LP: #1872757) + - SAUCE: shiftfs: fix dentry revalidation + + * shiftfs: broken shiftfs nesting (LP: #1872094) + - SAUCE: shiftfs: record correct creator credentials + + * lockdown on power (LP: #1855668) + - SAUCE: (lockdown) powerpc: lock down kernel in secure boot mode + + * Add support for Realtek 8723DE wireless adapter (LP: #1780590) + - SAUCE: rtw88: add adaptivity support for EU/JP regulatory + - SAUCE: rtw88: update tx descriptor of mgmt and rsvd page packets + - SAUCE: rtw88: sar: dump sar information via debugfs + - SAUCE: rtw88: 8723d: add IQ calibration + - SAUCE: rtw88: 8723d: Add power tracking + - SAUCE: rtw88: 8723d: implement flush queue + - SAUCE: rtw88: 8723d: set ltecoex register address in chip_info + - SAUCE: rtw88: 8723d: Add coex support + - SAUCE: rtw88: 8723d: Add shutdown callback to disable BT USB suspend + + * 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 + + * Miscellaneous Ubuntu changes + - SAUCE: rtw88: fix 'const' mismatch in power suequence hooks + - SAUCE: rtw88: fix 'const' mismatch in + __priority_queue_cfg_legacy()/__priority_queue_cfg() + - [Config] RTW88=m + - SAUCE: (lockdown) Revert carried-forward lockdown patches + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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 + - [Config] Add back CONFIG_LOCK_DOWN_IN_SECURE_BOOT annotation for ppc64el + - [Config] CONFIG_RT_GROUP_SCHED=y + - [Packaging] Include modules.builtin.modinfo in linux-modules + - SAUCE: LSM: Infrastructure management of the sock security + - SAUCE: Fix-up af_unix mediation for sock infrastructure management + - 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: fixup secid map conversion to using IDR" + - SAUCE: Revert "apparmor: Use an IDR to allocate apparmor secids" + - SAUCE: Revert "apparmor: add support for mapping secids and using secctxes" + - Update dropped.txt for restored apparmor patches + - Remove lockdown patches from dropped.txt + - SAUCE: powerpc/ima: require IMA module signatures only if MODULE_SIG is not + enabled + - SAUCE: selftests/ftrace: Use printf instead of echo in kprobe syntax error + tests + - SAUCE: selftests/net -- disable l2tp.sh test + - SAUCE: selftests/net -- disable timeout + - SAUCE: tools: hv: Update shebang to use python3 instead of python + - Remove dropped.txt + - [Packaging] move linux-doc and linux-libc-dev stubs to debian.master + - [Debian] Support generating configs for riscv64 + - [Config] CONFIG_KMSG_IDS=y for s390x + - [Packaging] add libcap-dev dependency + - [Config] CONFIG_AD5770R=m + - [Config] CONFIG_AL3010=m + - [Config] CONFIG_APPLE_MFI_FASTCHARGE=m + - [Config] CONFIG_BAREUDP=m + - [Config] CONFIG_CRYPTO_DEV_OCTEONTX_CPT=m + - [Config] CONFIG_CRYPTO_DEV_ZYNQMP_AES=m + - [Config] CONFIG_DRM_DISPLAY_CONNECTOR=m + - [Config] CONFIG_DRM_PANEL_BOE_TV101WUM_NL6=m + - [Config] CONFIG_DRM_PANEL_ELIDA_KD35T133=m + - [Config] CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02=m + - [Config] CONFIG_DRM_PANEL_NOVATEK_NT35510=m + - [Config] CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01=m + - [Config] CONFIG_DRM_PARADE_PS8640=m + - [Config] CONFIG_DRM_SIMPLE_BRIDGE=m + - [Config] CONFIG_DRM_TIDSS=m + - [Config] CONFIG_DRM_TI_TPD12S015=m + - [Config] CONFIG_DRM_TOSHIBA_TC358768=m + - [Config] CONFIG_EDAC_DMC520=m + - [Config] CONFIG_EXFAT_FS=m + - [Config] CONFIG_GP2AP002=m + - [Config] CONFIG_GPIO_MLXBF2=m + - [Config] CONFIG_HID_GLORIOUS=m + - [Config] CONFIG_HID_MCP2221=m + - [Config] CONFIG_HMC425=m + - [Config] CONFIG_ICP10100=m + - [Config] CONFIG_IMX8MM_THERMAL=m + - [Config] CONFIG_IMX_SC_THERMAL=m + - [Config] CONFIG_INTERCONNECT_QCOM_OSM_L3=m + - [Config] CONFIG_INTERCONNECT_QCOM_SC7180=m + - [Config] CONFIG_K3_RTI_WATCHDOG=m + - [Config] CONFIG_MDIO_IPQ8064=m + - [Config] CONFIG_MDIO_MVUSB=m + - [Config] CONFIG_MHI_BUS=m + - [Config] CONFIG_OCTEONTX2_VF=m + - [Config] CONFIG_PHY_CADENCE_TORRENT=m + - [Config] CONFIG_PHY_QCOM_USB_HS_28NM=m + - [Config] CONFIG_PHY_QCOM_USB_SS=m + - [Config] CONFIG_PINCTRL_DA9062=m + - [Config] CONFIG_PINCTRL_IPQ6018=m + - [Config] CONFIG_PTP_1588_CLOCK_IDT82P33=m + - [Config] CONFIG_PTP_1588_CLOCK_VMW=m + - [Config] CONFIG_QCOM_IPA=m + - [Config] CONFIG_REGULATOR_MP5416=m + - [Config] CONFIG_REGULATOR_MP886X=m + - [Config] CONFIG_RN5T618_ADC=m + - [Config] CONFIG_RTC_DRV_MT2712=m + - [Config] CONFIG_RTC_DRV_RC5T619=m + - [Config] CONFIG_SC_MSS_7180=m + - [Config] CONFIG_SENSORS_AXI_FAN_CONTROL=m + - [Config] CONFIG_SM_GCC_8250=m + - [Config] CONFIG_SND_BCM63XX_I2S_WHISTLER=m + - [Config] CONFIG_SND_MESON_AIU=m + - [Config] CONFIG_SND_MESON_G12A_TOACODEC=m + - [Config] CONFIG_SND_MESON_GX_SOUND_CARD=m + - [Config] CONFIG_SND_SOC_AMD_RV_RT5682_MACH=m + - [Config] CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m + - [Config] CONFIG_SND_SOC_MESON_T9015=m + - [Config] CONFIG_SND_SOC_RT5682_SDW=m + - [Config] CONFIG_SND_SOC_TLV320ADCX140=m + - [Config] CONFIG_SPI_FSI=m + - [Config] CONFIG_SPI_MTK_NOR=m + - [Config] CONFIG_SPI_MUX=m + - [Config] CONFIG_SPRD_THERMAL=m + - [Config] CONFIG_SURFACE_3_POWER_OPREGION=m + - [Config] CONFIG_TINYDRM_ILI9486=m + - [Config] CONFIG_TI_K3_AM65_CPSW_NUSS=m + - [Config] CONFIG_TYPEC_MUX_INTEL_PMC=m + - [Config] CONFIG_UACCE=m + - [Config] CONFIG_UNIPHIER_XDMAC=m + - [Config] CONFIG_USB_MAX3420_UDC=m + - [Config] CONFIG_USB_RAW_GADGET=m + - [Config] CONFIG_VHOST_VDPA=m + - [Config] CONFIG_VIDEO_IMX219=m + - [Config] CONFIG_VIDEO_SUN8I_ROTATE=m + - [Config] CONFIG_VIRTIO_VDPA=m + - [Config] CONFIG_MOST_COMPONENTS=m + - [Config] CONFIG_MFD_IQS62X=m + - packaging: getabis: switch to ckt-ppa:bootstrap/linux-5.7 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: rtw88: add rtw_read8_mask and rtw_read16_mask" + - Revert "UBUNTU: SAUCE: drm/i915/fbc: disable framebuffer compression on + IceLake" + - Revert "UBUNTU: SAUCE: platform/x86: dell-uart-backlight: move retry block" + + -- Paolo Pisati Mon, 04 May 2020 10:48:48 +0200 + +linux-5.7 (5.7.0-1.2) groovy; urgency=medium + + * Packaging resync (LP: #1786013) + - [Packaging] update helper scripts + + * Miscellaneous Ubuntu changes + - SAUCE: hio: pass make_request ptr directly to blk_alloc_queue() + - SAUCE: hio: locally define disk_map_sector_rcu() + - SAUCE: hio: Revert "block: unexport disk_map_sector_rcu" + - SAUCE: hio: include + - [Config] amd64: i386: HIO=m + - [Config] updateconfigs after 5.7-rc3 rebase + + -- Paolo Pisati Mon, 27 Apr 2020 11:31:38 +0200 + +linux-5.7 (5.7.0-0.1) groovy; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.7-rc1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.7-rc1 + * Rebase to v5.7-rc2 + + -- Paolo Pisati Thu, 16 Apr 2020 11:53:58 +0200 + +linux-5.7 (5.7.0-0.0) focal; urgency=medium + + * Dummy entry + + -- Paolo Pisati Thu, 16 Apr 2020 11:53:58 +0200 + +linux-5.6 (5.6.0-7.7) focal; urgency=medium + + * Packaging resync (LP: #1786013) + - update dkms package versions + + * Kernel Oops - general protection fault: 0000 [#1] SMP PTI after + disconnecting thunderbolt docking station (LP: #1864754) + - SAUCE: ptp: free ptp clock properly + + * 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() + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6 + + -- Andrea Righi Tue, 31 Mar 2020 10:45:09 +0200 + +linux-5.6 (5.6.0-6.6) focal; urgency=medium + + * 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 + + * update-version-dkms doesn't add a BugLink (LP: #1867790) + - [Packaging] Add BugLink to update-version-dkms commit + + * Add support for Realtek 8723DE wireless adapter (LP: #1780590) + - 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) + - 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 + + * 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 + + * 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 + + * Miscellaneous Ubuntu changes + - hio -- remove duplicated MODULE_DEVICE_TABLE declaration + - SAUCE: r8169: disable ASPM L1.1 + - [Config] update annotations from configs + - [Config] update configs after annotation file review + - SAUCE: Revert "tools/power turbostat: Fix 32-bit capabilities warning" + + * Miscellaneous upstream changes + - drm/i915: Fix eDP DPCD aux max backlight calculations + - drm/dp: Introduce EDID-based quirks + - drm/i915: Force DPCD backlight mode on X1 Extreme 2nd Gen 4K AMOLED panel + - drm/i915: Force DPCD backlight mode for some Dell CML 2020 panels + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc7 + + -- Andrea Righi Wed, 25 Mar 2020 18:09:13 +0100 + +linux-5.6 (5.6.0-5.5) focal; urgency=medium + + * please help enable CONFIG_EROFS_FS_ZIP (LP: #1867099) + - [Config] CONFIG_EROFS_FS_ZIP=y + - [Config] CONFIG_EROFS_FS_CLUSTER_PAGE_LIMIT=1 + + * Miscellaneous Ubuntu changes + - Config: Fix SND_HDA_PREALLOC_SIZE annotations + - Config: Fix DATA_SHIFT annotations + - Config: remove ANDROID_VSOC from annotations + - Config: remove arm arch from annotations + - Config: Update SOC_R8A7796X annotations + - Config: Update CLK_R8A7796X annotations + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc6 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc6 + + -- Andrea Righi Wed, 18 Mar 2020 17:25:30 +0100 + +linux-5.6 (5.6.0-4.4) focal; urgency=medium + + * 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) + - [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 + + * [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 + + * Miscellaneous Ubuntu changes + - SAUCE: Revert "UBUNTU: SAUCE: blk/core: Gracefully handle unset + make_request_fn" + - [Packaging] prevent duplicated entries in modules.ignore + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc5 + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc5 + + -- Andrea Righi Mon, 09 Mar 2020 09:42:06 +0100 + +linux-5.6 (5.6.0-3.3) focal; urgency=medium + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * Focal Fossa (20.04) feature request - Enable CONFIG_X86_UV (LP: #1863810) + - [Config] CONFIG_X86_UV=y + + * Miscellaneous Ubuntu changes + - debian: remove snapdragon config, rules and flavour + - remove snapdragon abi files + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc4 + + * Miscellaneous upstream changes + - updateconfigs following snapdragon removal + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc4 + + -- Andrea Righi Wed, 04 Mar 2020 08:21:10 +0100 + +linux-5.6 (5.6.0-2.2) focal; urgency=medium + + * Sometimes can't adjust brightness on Dell AIO (LP: #1862885) + - SAUCE: platform/x86: dell-uart-backlight: increase retry times + + * Dell XPS 13 (7390) Display Flickering - 19.10 (LP: #1849947) + - SAUCE: drm/i915: Disable PSR by default on all platforms + + * Miscellaneous Ubuntu changes + - [debian] ignore missing wireguard module + - SAUCE: (lockdown) Add efi_status_to_str() and rework efi_status_to_err(). + - 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) s390: Lock down the kernel when the IPL secure flag is set + - 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 + - [Config] CONFIG_LOCK_DOWN_IN_SECURE_BOOT=y + - update dkms package versions + - [Config] updateconfigs after rebase to 5.6-rc3 + + * Miscellaneous upstream changes + - Revert "UBUNTU: SAUCE: (lockdown) s390/ipl: lockdown kernel when booted + secure" + - Revert "UBUNTU: SAUCE: (lockdown) KEYS: Make use of platform keyring for + module signature verify" + - Revert "UBUNTU: SAUCE: (lockdown) Add a SysRq option to lift kernel + lockdown" + - Revert "UBUNTU: SAUCE: (lockdown) security: lockdown: expose a hook to lock + the kernel down" + - Revert "UBUNTU: SAUCE: (lockdown) Add efi_status_to_str() and rework + efi_status_to_err()." + + -- Andrea Righi Mon, 24 Feb 2020 18:57:22 +0100 + +linux-5.6 (5.6.0-1.1) focal; urgency=medium + + * Integrate Intel SGX driver into linux-azure (LP: #1844245) + - [Packaging] Add systemd service to load intel_sgx + + * 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 + + * Miscellaneous Ubuntu changes + - update dkms package versions + - update dropped.txt after rebase to v5.6-rc1 + - [Config] updateconfigs after rebase to 5.6-rc1 + - hio -- proc_create() requires a "struct proc_ops" in 5.6 + - SAUCE: arm: fix build error in kvm tracepoint + + * Miscellaneous upstream changes + - Revert "UBUNTU: [Config] Disable the uselib system call" + - Revert "UBUNTU: [Config] Disable legacy PTY naming" + - Revert "UBUNTU: [Config] Enforce filtered access to iomem" + - Revert "UBUNTU: [Config] Enable notifier call chain validations" + - Revert "UBUNTU: [Config] Enable scatterlist validation" + - Revert "UBUNTU: [Config] Enable cred sanity checks" + - Revert "UBUNTU: [Config] Enable linked list manipulation checks" + + [ Upstream Kernel Changes ] + + * Rebase to v5.6-rc1 + + -- Andrea Righi Thu, 13 Feb 2020 17:20:27 +0100 + +linux-5.6 (5.6.0-0.0) focal; urgency=medium + + * Dummy entry + + -- Andrea Righi Mon, 10 Feb 2020 11:06:18 +0100 + +linux-5.5 (5.5.0-7.8) focal; urgency=medium + + * CONFIG_USELIB should be disabled (LP: #1855341) + - [Config] Disable the uselib system call + + * CONFIG_LEGACY_PTYS should be disabled (LP: #1855339) + - [Config] Disable legacy PTY naming + + * CONFIG_IO_STRICT_DEVMEM should be enabled (LP: #1855338) + - [Config] Enforce filtered access to iomem + + * CONFIG_DEBUG_NOTIFIERS should be enabled (LP: #1855337) + - [Config] Enable notifier call chain validations + + * CONFIG_DEBUG_SG should be enabled (LP: #1855336) + - [Config] Enable scatterlist validation + + * CONFIG_DEBUG_CREDENTIALS should be enabled (LP: #1855335) + - [Config] Enable cred sanity checks + + * CONFIG_DEBUG_LIST should be enabled (LP: #1855334) + - [Config] Enable linked list manipulation checks + + * 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 + + * 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 + + * Dell AIO can't adjust brightness (LP: #1858761) + - SAUCE: platform/x86: dell-uart-backlight: add retry for get scalar status + + * Miscellaneous Ubuntu changes + - [Config] Fix typo in annotations file + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5 + + -- Andrea Righi Mon, 27 Jan 2020 11:39:38 +0100 + +linux-5.5 (5.5.0-6.7) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Packaging] Update ubuntu-regression-suite dependency to python2 + - [Packaging] Fix ubuntu-regression-suite python dependency for hwe kernel + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc7 + + -- Andrea Righi Mon, 20 Jan 2020 10:16:01 +0100 + +linux-5.5 (5.5.0-5.6) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - update dkms package versions + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc6 + + -- Andrea Righi Mon, 13 Jan 2020 15:50:12 +0100 + +linux-5.5 (5.5.0-4.5) focal; urgency=medium + + * linux build and autopkg tests need to use python2 instead of python + (LP: #1858487) + - [Packaging] Remove python-dev build dependency + + -- Andrea Righi Wed, 08 Jan 2020 16:00:26 +0100 + +linux-5.5 (5.5.0-3.4) focal; urgency=medium + + * [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 + + * 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 + + * Packaging resync (LP: #1786013) + - [Packaging] update variants + + * Miscellaneous Ubuntu changes + - [Packaging] Change source package to linux-5.5 + - [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/* + - update dkms package versions + - [Config] updateconfigs after rebase to 5.5-rc3 + - [Config] disable PCI_MESON + - [Config] Add pinctrl-equilibrium to modules.ignore + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc5 + + -- Andrea Righi Wed, 08 Jan 2020 11:28:43 +0100 + +linux-5.5 (5.5.0-2.3) focal; urgency=medium + + * Empty entry. + + -- Seth Forshee Tue, 17 Dec 2019 22:33:59 -0600 + +linux (5.5.0-2.3) focal; urgency=medium + + * 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 + + * change kconfig of the soundwire bus driver from y to m (LP: #1855685) + - [Config]: SOUNDWIRE=m + + * 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 + + * Miscellaneous Ubuntu changes + - [Debian] add python depends to ubuntu-regression-suite + - SAUCE: selftests: net: tls: remove recv_rcvbuf test + - update dkms package versions + + * Miscellaneous upstream changes + - [Config] updateconfigs after rebase to 5.5-rc2 + + -- Andrea Righi Tue, 17 Dec 2019 16:02:43 +0100 + +linux (5.5.0-1.2) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] disable nvidia dkms build + - [Config] disable virtualbox dkms build + - [Config] disable zfs dkms build + - update dropped.txt after rebase to v5.5-rc1 + - 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 + - update dkms package versions + + -- Andrea Righi Thu, 12 Dec 2019 16:54:41 +0100 + +linux (5.5.0-0.1) focal; urgency=medium + + * Miscellaneous Ubuntu changes + - [Config] updateconfigs after rebase to 5.5-rc1 + + [ Upstream Kernel Changes ] + + * Rebase to v5.5-rc1 + + -- Andrea Righi Mon, 09 Dec 2019 19:03:35 +0100 + +linux (5.5.0-0.0) focal; urgency=medium + + * Dummy entry. + + -- Andrea Righi Mon, 09 Dec 2019 15:14:37 +0100 + +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 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 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 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 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 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 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 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 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 Fri, 11 Oct 2019 16:42:41 -0500 + +linux (5.4.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Tue, 23 Jul 2019 21:45:44 -0500 + +linux (5.3.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 Tue, 21 May 2019 11:18:43 -0500 + +linux (5.2.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 Thu, 25 Apr 2019 10:03:25 -0300 + +linux (5.1.0-0.0) eoan; urgency=medium + + * Dummy entry. + + -- Thadeu Lima de Souza Cascardo 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Thu, 17 Jan 2019 12:31:29 -0600 + +linux (5.0.0-0.0) disco; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 Fri, 07 Dec 2018 07:13:42 -0600 + +linux (4.20.0-0.0) disco; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 Thu, 13 Sep 2018 07:54:47 -0500 + +linux (4.19.0-0.0) cosmic; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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=, not - 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 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 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 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 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 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 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 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 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 Fri, 06 Jul 2018 10:46:37 -0500 + +linux (4.18.0-0.0) cosmic; urgency=medium + + * Dummy entry. + + -- Seth Forshee 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 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 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 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 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 Tue, 08 May 2018 16:38:51 -0300 + +linux (4.17.0-0.0) bionic; urgency=medium + + * Dummy entry. + + -- Thadeu Lima de Souza Cascardo 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//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 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 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 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 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 Thu, 22 Feb 2018 08:58:57 -0600 + +linux (4.16.0-0.0) bionic; urgency=medium + + * Dummy entry + + -- Seth Forshee 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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//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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Mon, 20 Mar 2017 05:15:32 -0600 + +linux (4.11.0-0.0) zesty; urgency=low + + * dummy entry + + -- Tim Gardner Mon, 20 Mar 2017 05:15:32 -0600 --- linux-5.19.0.orig/debian/cloud-tools/hv_get_dhcp_info +++ linux-5.19.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-5.19.0.orig/debian/cloud-tools/hv_get_dns_info +++ linux-5.19.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-5.19.0.orig/debian/cloud-tools/hv_set_ifconfig +++ linux-5.19.0/debian/cloud-tools/hv_set_ifconfig @@ -0,0 +1,288 @@ +#!/usr/bin/python3 +# +# hv_set_ifconfig -- 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 +if len(sys.argv) != 2 : + exit(errno.EINVAL) + +# +# Here is the format of the ip configuration file: +# +# HWADDR=macaddr +# DEVICE=interface name +# BOOTPROTO= (where 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-5.19.0.orig/debian/commit-templates/bumpabi +++ linux-5.19.0/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-5.19.0.orig/debian/commit-templates/config-updates +++ linux-5.19.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/ +# Ignore: yes +# Other text below here. --- linux-5.19.0.orig/debian/commit-templates/external-driver +++ linux-5.19.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-5.19.0.orig/debian/commit-templates/missing-modules +++ linux-5.19.0/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-5.19.0.orig/debian/commit-templates/newrelease +++ linux-5.19.0/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-5.19.0.orig/debian/commit-templates/sauce-patch +++ linux-5.19.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: + + + +# OriginalAuthor: +# OriginalLocation: +# BugLink: http://bugs.launchpad.net/bugs/ +# Ignore: yes +# Other text below here. --- linux-5.19.0.orig/debian/commit-templates/upstream-patch +++ linux-5.19.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/ +# Ignore: yes +# Other text below here. --- linux-5.19.0.orig/debian/control +++ linux-5.19.0/debian/control @@ -0,0 +1,758 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +XSC-Ubuntu-Compatible-Signing: ubuntu/4 pro/3 +Standards-Version: 3.9.4.0 +Build-Depends: + gcc-12, gcc-12-aarch64-linux-gnu [arm64] , gcc-12-arm-linux-gnueabihf [armhf] , gcc-12-powerpc64le-linux-gnu [ppc64el] , gcc-12-riscv64-linux-gnu [riscv64] , gcc-12-s390x-linux-gnu [s390x] , gcc-12-x86-64-linux-gnu [amd64] , + debhelper-compat (= 10), + cpio, + kmod , + makedumpfile [amd64] , + libcap-dev , + libelf-dev , + libnewt-dev , + libiberty-dev , + default-jdk-headless , + java-common , + rsync , + libdw-dev , + libpci-dev , + pkg-config , + flex , + bison , + libunwind8-dev [amd64 arm64 armhf ppc64el] , + liblzma-dev , + openssl , + libssl-dev , + libaudit-dev , + bc , + gawk , + libudev-dev , + autoconf , + automake , + libtool , + uuid-dev , + libnuma-dev [amd64 arm64 ppc64el s390x] , + dkms , + curl , + zstd [amd64 s390x] , + pahole [amd64 arm64 armhf ppc64el s390x riscv64] | dwarves (>= 1.21) [amd64 arm64 armhf ppc64el s390x riscv64] , +Build-Depends-Indep: + xmlto , + docbook-utils , + ghostscript , + fig2dev , + bzip2 , + sharutils , + asciidoc , + python3-dev , + python3-sphinx , + python3-sphinx-rtd-theme , + fontconfig , + python3-docutils , + imagemagick , + graphviz , + dvipng , + fonts-noto-cjk , + latexmk , + librsvg2-bin , +Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/kinetic +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-5.19.0 +Build-Profiles: +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 5.19.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 5.19.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-headers + package instead. + +Package: linux-headers-5.19.0-41 +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils +Description: Header files related to Linux kernel version 5.19.0 + This package provides kernel header files for version 5.19.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-5.19.0-41/debian.README.gz for details + +Package: linux-tools-common +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends}, lsb-release +Description: Linux kernel version specific tools for version 5.19.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 5.19.0. + +Package: linux-tools-5.19.0-41 +Build-Profiles: +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 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 5.19.0-41 on + 64 bit x86. + You probably want to install linux-tools-5.19.0-41-. + +Package: linux-cloud-tools-common +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends} +Description: Linux kernel version specific cloud tools for version 5.19.0 + This package provides the architecture independent parts for kernel + version locked tools for cloud tools for version 5.19.0. + +Package: linux-cloud-tools-5.19.0-41 +Build-Profiles: +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 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools for cloud tools for version 5.19.0-41 on + 64 bit x86. + You probably want to install linux-cloud-tools-5.19.0-41-. + +Package: linux-tools-host +Build-Profiles: +Architecture: all +Multi-Arch: foreign +Section: kernel +Priority: optional +Depends: ${misc:Depends}, python3 +Description: Linux kernel VM host tools + This package provides kernel tools useful for VM hosts. + + +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 linux-headers-* packages for that. + +Package: linux-doc +Build-Profiles: +Architecture: all +Section: doc +Priority: optional +Depends: ${misc:Depends} +Description: Linux kernel specific documentation for version 5.19.0 + This package provides the various documents in the 5.19.0 kernel + Documentation/ subdirectory. These document kernel subsystems, APIs, device + drivers, and so on. See + /usr/share/doc/linux-doc/00-INDEX for a list of what is + contained in each file. + + +Package: linux-image-unsigned-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Provides: linux-image, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, virtualbox-guest-modules [amd64], ${linux:rprovides} +Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.19.0-41-generic +Recommends: grub-pc [amd64] | grub-efi-amd64 [amd64] | grub-efi-ia32 [amd64] | grub [amd64] | lilo [amd64] | flash-kernel [armhf arm64] | grub-efi-arm64 [arm64] | grub-efi-arm [armhf] | 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.19.0-41-generic +Suggests: fdutils, linux-doc | linux-source-5.19.0, linux-tools, linux-headers-5.19.0-41-generic, linux-modules-extra-5.19.0-41-generic +Description: Linux kernel image for version 5.19.0 on 64 bit x86 SMP + This package contains the unsigned Linux kernel image for version 5.19.0 on + 64 bit x86 SMP. + . + Supports Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel extra modules for version 5.19.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 Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-extra-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-5.19.0-41-generic, wireless-regdb +Description: Linux kernel extra modules for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 5.19.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 Generic processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-5.19.0-41, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 5.19.0 on 64 bit x86 SMP + This package provides kernel header files for version 5.19.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-5.19.0-41/debian.README.gz for details. + +Package: linux-image-unsigned-5.19.0-41-generic-dbgsym +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 5.19.0 on 64 bit x86 SMP + This package provides the unsigned kernel debug image for version 5.19.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.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-5.19.0-41 +Description: Linux kernel version specific tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 5.19.0-41 on + 64 bit x86. + +Package: linux-cloud-tools-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-5.19.0-41 +Description: Linux kernel version specific cloud tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 5.19.0-41 on + 64 bit x86. + + +Package: linux-buildinfo-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel buildinfo for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel buildinfo for version 5.19.0 on + 64 bit x86 SMP. + . + You likely do not want to install this package. + + +Package: linux-modules-ipu6-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic | linux-image-unsigned-5.19.0-41-generic, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ipu6 modules for version 5.19.0-41 + This package provides the Linux kernel ipu6 modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ipu6-generic* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-ivsc-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic | linux-image-unsigned-5.19.0-41-generic, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ivsc modules for version 5.19.0-41 + This package provides the Linux kernel ivsc modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ivsc-generic* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-iwlwifi-5.19.0-41-generic +Build-Profiles: +Architecture: amd64 armhf arm64 ppc64el s390x +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic | linux-image-unsigned-5.19.0-41-generic, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel iwlwifi modules for version 5.19.0-41 + This package provides the Linux kernel iwlwifi modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-iwlwifi-generic* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-image-unsigned-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Provides: linux-image, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ${linux:rprovides} +Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.19.0-41-generic-64k +Recommends: grub-efi-arm64 [arm64] | flash-kernel [arm64], initramfs-tools | linux-initramfs-tool +Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x] +Conflicts: linux-image-5.19.0-41-generic-64k +Suggests: fdutils, linux-doc | linux-source-5.19.0, linux-tools, linux-headers-5.19.0-41-generic-64k, linux-modules-extra-5.19.0-41-generic-64k +Description: Linux kernel image for version 5.19.0 on 64 bit x86 SMP + This package contains the unsigned Linux kernel image for version 5.19.0 on + 64 bit x86 SMP. + . + Supports Generic 64K pages processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-64k meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel extra modules for version 5.19.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 Generic 64K pages processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-64k meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-extra-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-5.19.0-41-generic-64k, wireless-regdb +Description: Linux kernel extra modules for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 5.19.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 Generic 64K pages processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-64k meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-5.19.0-41, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 5.19.0 on 64 bit x86 SMP + This package provides kernel header files for version 5.19.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-5.19.0-41/debian.README.gz for details. + +Package: linux-image-unsigned-5.19.0-41-generic-64k-dbgsym +Build-Profiles: +Architecture: arm64 +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 5.19.0 on 64 bit x86 SMP + This package provides the unsigned kernel debug image for version 5.19.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.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-5.19.0-41 +Description: Linux kernel version specific tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 5.19.0-41 on + 64 bit x86. + +Package: linux-cloud-tools-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-5.19.0-41 +Description: Linux kernel version specific cloud tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 5.19.0-41 on + 64 bit x86. + + +Package: linux-buildinfo-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel buildinfo for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel buildinfo for version 5.19.0 on + 64 bit x86 SMP. + . + You likely do not want to install this package. + + +Package: linux-modules-ipu6-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-64k | linux-image-unsigned-5.19.0-41-generic-64k, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ipu6 modules for version 5.19.0-41 + This package provides the Linux kernel ipu6 modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ipu6-generic-64k* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-ivsc-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-64k | linux-image-unsigned-5.19.0-41-generic-64k, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ivsc modules for version 5.19.0-41 + This package provides the Linux kernel ivsc modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ivsc-generic-64k* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-iwlwifi-5.19.0-41-generic-64k +Build-Profiles: +Architecture: arm64 +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-64k | linux-image-unsigned-5.19.0-41-generic-64k, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel iwlwifi modules for version 5.19.0-41 + This package provides the Linux kernel iwlwifi modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-iwlwifi-generic-64k* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-image-unsigned-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Provides: linux-image, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules, ${linux:rprovides} +Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.04.1), linux-modules-5.19.0-41-generic-lpae +Recommends: flash-kernel [armhf] | grub-efi-arm [armhf], initramfs-tools | linux-initramfs-tool +Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x] +Conflicts: linux-image-5.19.0-41-generic-lpae +Suggests: fdutils, linux-doc | linux-source-5.19.0, linux-tools, linux-headers-5.19.0-41-generic-lpae, linux-modules-extra-5.19.0-41-generic-lpae +Description: Linux kernel image for version 5.19.0 on 64 bit x86 SMP + This package contains the unsigned Linux kernel image for version 5.19.0 on + 64 bit x86 SMP. + . + Supports Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel extra modules for version 5.19.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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-modules-extra-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-modules-5.19.0-41-generic-lpae, wireless-regdb +Description: Linux kernel extra modules for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 5.19.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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-5.19.0-41, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 5.19.0 on 64 bit x86 SMP + This package provides kernel header files for version 5.19.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-5.19.0-41/debian.README.gz for details. + +Package: linux-image-unsigned-5.19.0-41-generic-lpae-dbgsym +Build-Profiles: +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 5.19.0 on 64 bit x86 SMP + This package provides the unsigned kernel debug image for version 5.19.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.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-5.19.0-41 +Description: Linux kernel version specific tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 5.19.0-41 on + 64 bit x86. + +Package: linux-cloud-tools-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-cloud-tools-5.19.0-41 +Description: Linux kernel version specific cloud tools for version 5.19.0-41 + This package provides the architecture dependant parts for kernel + version locked tools for cloud for version 5.19.0-41 on + 64 bit x86. + + +Package: linux-buildinfo-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends} +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel buildinfo for version 5.19.0 on 64 bit x86 SMP + This package contains the Linux kernel buildinfo for version 5.19.0 on + 64 bit x86 SMP. + . + You likely do not want to install this package. + + +Package: linux-modules-ipu6-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-lpae | linux-image-unsigned-5.19.0-41-generic-lpae, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ipu6 modules for version 5.19.0-41 + This package provides the Linux kernel ipu6 modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ipu6-generic-lpae* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-ivsc-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-lpae | linux-image-unsigned-5.19.0-41-generic-lpae, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel ivsc modules for version 5.19.0-41 + This package provides the Linux kernel ivsc modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-ivsc-generic-lpae* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + + +Package: linux-modules-iwlwifi-5.19.0-41-generic-lpae +Build-Profiles: +Architecture: armhf +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-5.19.0-41-generic-lpae | linux-image-unsigned-5.19.0-41-generic-lpae, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel iwlwifi modules for version 5.19.0-41 + This package provides the Linux kernel iwlwifi modules for version + 5.19.0-41. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-iwlwifi-generic-lpae* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + --- linux-5.19.0.orig/debian/control.d/flavour-buildinfo.stub +++ linux-5.19.0/debian/control.d/flavour-buildinfo.stub @@ -0,0 +1,14 @@ + +Package: linux-buildinfo-PKGVER-ABINUM-FLAVOUR +Build-Profiles: +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-5.19.0.orig/debian/control.d/flavour-module.stub +++ linux-5.19.0/debian/control.d/flavour-module.stub @@ -0,0 +1,19 @@ + +Package: linux-modules-MODULE-PKGVER-ABINUM-FLAVOUR +Build-Profiles: +Architecture: ARCH +Section: kernel +Priority: optional +Depends: + ${misc:Depends}, + linux-image-PKGVER-ABINUM-FLAVOUR | linux-image-unsigned-PKGVER-ABINUM-FLAVOUR, +Built-Using: ${linux:BuiltUsing} +Description: Linux kernel MODULE modules for version PKGVER-ABINUM + This package provides the Linux kernel MODULE modules for version + PKGVER-ABINUM. + . + You likely do not want to install this package directly. Instead, install the + one of the linux-modules-MODULE-FLAVOUR* meta-packages, + which will ensure that upgrades work correctly, and that supporting packages are + also installed. + --- linux-5.19.0.orig/debian/copyright +++ linux-5.19.0/debian/copyright @@ -0,0 +1,29 @@ +This is the Ubuntu prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +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 + +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-5.19.0.orig/debian/debian.env +++ linux-5.19.0/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-5.19.0.orig/debian/dkms-versions +++ linux-5.19.0/debian/dkms-versions @@ -0,0 +1,5 @@ +zfs-linux 2.1.5-1ubuntu6 modulename=zfs debpath=pool/universe/z/%package%/zfs-dkms_%version%_all.deb arch=amd64 arch=arm64 arch=ppc64el arch=s390x rprovides=spl-modules rprovides=spl-dkms rprovides=zfs-modules rprovides=zfs-dkms +ipu6-drivers 0~git202211220708.278b7e3d-0ubuntu0.22.10.1 modulename=ipu6 debpath=pool/universe/i/%package%/intel-ipu6-dkms_%version%_amd64.deb arch=amd64 rprovides=ipu6-modules rprovides=intel-ipu6-dkms type=standalone +ivsc-driver 0~git202211241536.70d95269-0ubuntu0.22.10.1 modulename=ivsc debpath=pool/universe/i/%package%/intel-vsc-dkms_%version%_amd64.deb arch=amd64 rprovides=ivsc-modules rprovides=intel-vsc-dkms type=standalone +backport-iwlwifi-dkms 9904-0ubuntu3.1 modulename=iwlwifi debpath=pool/universe/b/%package%/backport-iwlwifi-dkms_%version%_all.deb arch=amd64 rprovides=iwlwifi-modules rprovides=backport-iwlwifi-dkms type=standalone +v4l2loopback 0.12.7-2ubuntu2 modulename=v4l2loopback debpath=pool/universe/v/%package%/v4l2loopback-dkms_%version%_all.deb arch=amd64 rprovides=v4l2loopback-modules rprovides=v4l2loopback-dkms --- linux-5.19.0.orig/debian/docs/README.inclusion-list +++ linux-5.19.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./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 +June 2, 2010 --- linux-5.19.0.orig/debian/gbp.conf +++ linux-5.19.0/debian/gbp.conf @@ -0,0 +1,2 @@ +[buildpackage] +debian-tag = Ubuntu-%(version)s --- linux-5.19.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.service +++ linux-5.19.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 " +[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-5.19.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.udev +++ linux-5.19.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-5.19.0.orig/debian/linux-cloud-tools-common.hv-fcopy-daemon.upstart +++ linux-5.19.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 " + +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 " +[Unit] +Description=Hyper-V KVP Protocol Daemon +ConditionVirtualization=microsoft +ConditionKernelCommandLine=!snapd_recovery_mode +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-5.19.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.udev +++ linux-5.19.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-5.19.0.orig/debian/linux-cloud-tools-common.hv-kvp-daemon.upstart +++ linux-5.19.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 " + +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 " +[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-5.19.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.udev +++ linux-5.19.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-5.19.0.orig/debian/linux-cloud-tools-common.hv-vss-daemon.upstart +++ linux-5.19.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 " + +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 +# + +DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' /dev/null || echo $$$$m >> $(prev_abidir)/../modules.ignore; done)) \ + ) \ +) + +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))) + +# 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 debian/canonical-revoked-certs.pem + dh_testdir + dh_testroot + dh_clean + + # normal build junk + rm -rf $(DEBIAN)/abi/$(release)-$(revision) + rm -rf $(builddir) + rm -f $(stampdir)/stamp-* + rm -rf $(DEBIAN)/linux-* + + 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 + +# 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 + +# Calculate Ubuntu Compatible Signing levels +UBUNTU_COMPATIBLE_SIGNING=$(shell grep -qx ' *Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3)' debian/canonical-revoked-certs.pem && echo ubuntu/4 pro/3) + +# Misc stuff +.PHONY: $(DEBIAN)/control.stub +$(DEBIAN)/control.stub: \ + $(DROOT)/scripts/control-create \ + $(control_files) \ + debian/canonical-revoked-certs.pem \ + $(DROOT)/control.d/flavour-module.stub \ + $(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' \ + -e 's|\(^Maintainer:.*\)|\1\nXSC-Ubuntu-Compatible-Signing: $(UBUNTU_COMPATIBLE_SIGNING)|g' \ + -e 's/\(^Build-Depends:$$\)/\1\n$(GCC_BUILD_DEPENDS)/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 + cp $(DEBIAN)/control.stub 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 >"$@" + +debian/canonical-revoked-certs.pem: $(wildcard $(DROOT)/revoked-certs/*-all.pem) $(wildcard $(DROOT)/revoked-certs/*-$(arch).pem) $(wildcard $(DEBIAN)/revoked-certs/*-all.pem) $(wildcard $(DEBIAN)/revoked-certs/*-$(arch).pem) + for cert in $(sort $(notdir $^)); \ + do \ + for dir in $(DEBIAN) $(DROOT); \ + do \ + if [ -f "$$dir/revoked-certs/$$cert" ]; then \ + cat "$$dir/revoked-certs/$$cert"; \ + break; \ + fi; \ + done; \ + done >"$@" --- linux-5.19.0.orig/debian/rules.d/0-common-vars.mk +++ linux-5.19.0/debian/rules.d/0-common-vars.mk @@ -0,0 +1,331 @@ +# 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)) +ifneq (,$(prev_revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) +endif + +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)" + +# 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) +CROSS_COMPILE ?= $(DEB_HOST_GNU_TYPE)- + +# +# Set consistent toolchain +# If a given kernel wants to change this, they can do so via their own +# $(DEBIAN)/rules.d/hooks.mk and $(DEBIAN)/rules.d/$(arch).mk files +# +export gcc?=gcc-12 +GCC_BUILD_DEPENDS=\ $(gcc), $(gcc)-aarch64-linux-gnu [arm64] , $(gcc)-arm-linux-gnueabihf [armhf] , $(gcc)-powerpc64le-linux-gnu [ppc64el] , $(gcc)-riscv64-linux-gnu [riscv64] , $(gcc)-s390x-linux-gnu [s390x] , $(gcc)-x86-64-linux-gnu [amd64] , + +abidir := $(CURDIR)/$(DEBIAN)/__abi.current/$(arch) +prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(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=false +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 + +# FIPS check +do_fips_checks=false + +# Support parallel= 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) + +PYTHON ?= $(firstword $(wildcard /usr/bin/python3) $(wildcard /usr/bin/python2) $(wildcard /usr/bin/python)) + +# target_flavour is filled in for each step +kmake = make ARCH=$(build_arch) \ + CROSS_COMPILE=$(CROSS_COMPILE) \ + HOSTCC=$(DEB_BUILD_GNU_TYPE)-$(gcc) \ + CC=$(CROSS_COMPILE)$(gcc) \ + KERNELVERSION=$(abi_release)-$(target_flavour) \ + CONFIG_DEBUG_SECTION_MISMATCH=y \ + KBUILD_BUILD_VERSION="$(uploadnum)" \ + LOCALVERSION= localver-extra= \ + CFLAGS_MODULE="-DPKG_ABI=$(abinum)" \ + PYTHON=$(PYTHON) +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 cpu-hotplug efivarfs memfd memory-hotplug mount net ptrace seccomp timers powerpc user ftrace + +# DKMS +all_dkms_modules = + +subst_paired = $(subst $(firstword $(subst =, ,$(1))),$(lastword $(subst =, ,$(1))),$(2)) +recursive_call = $(if $(2),$(call recursive_call,$(1),$(wordlist 2,$(words $(2)),$(2)),$(call $(1),$(firstword $(2)),$(3))),$(3)) + +$(foreach _line,$(shell gawk '{ OFS = "!"; $$1 = $$1; print }' $(DROOT)/dkms-versions), \ + $(eval _params = $(subst !, ,$(_line))) \ + $(eval _deb_pkgname = $(firstword $(_params))) \ + $(eval _deb_version = $(word 2,$(_params))) \ + $(if $(filter modulename=%,$(_params)), \ + $(eval _m = $(word 2,$(subst =, ,$(filter modulename=%,$(_params))))) \ + , \ + $(info modulename for $(_deb_pkgname) not specified in dkms-versions. Assume $(_deb_pkgname).) \ + $(eval _m = $(_deb_pkgname)) \ + ) \ + $(eval all_dkms_modules += $(_m)) \ + $(eval dkms_$(_m)_version = $(_deb_version)) \ + $(foreach _p,$(patsubst debpath=%,%,$(filter debpath=%,$(_params))), \ + $(eval dkms_$(_m)_debpath += $(strip \ + $(call recursive_call,subst_paired, \ + %module%=$(_m) \ + %package%=$(_deb_pkgname) \ + %version%=$(lastword $(subst :, ,$(_deb_version))) \ + , \ + $(_p) \ + ) \ + )) \ + ) \ + $(if $(dkms_$(_m)_debpath),,$(error debpath for $(_deb_pkgname) not specified.)) \ + $(if $(filter arch=%,$(_params)), \ + $(eval dkms_$(_m)_archs = $(patsubst arch=%,%,$(filter arch=%,$(_params)))) \ + , \ + $(eval dkms_$(_m)_archs = any) \ + ) \ + $(eval dkms_$(_m)_rprovides = $(patsubst rprovides=%,%,$(filter rprovides=%,$(_params)))) \ + $(eval dkms_$(_m)_type = $(word 1,$(patsubst type=%,%,$(filter type=%,$(_params))) built-in)) \ + $(eval all_$(dkms_$(_m)_type)_dkms_modules += $(_m)) \ + $(if $(filter standalone,$(dkms_$(_m)_type)), \ + $(eval dkms_$(_m)_pkg_name = linux-modules-$(_m)-$(abi_release)) \ + $(eval dkms_$(_m)_subdir = ubuntu) \ + , \ + $(eval dkms_$(_m)_pkg_name = $(mods_pkg_name)) \ + $(eval dkms_$(_m)_subdir = kernel) \ + ) \ +) --- linux-5.19.0.orig/debian/rules.d/1-maintainer.mk +++ linux-5.19.0/debian/rules.d/1-maintainer.mk @@ -0,0 +1,173 @@ +# 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 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 " 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; + conc_level=$(conc_level) $(SHELL) $(DROOT)/scripts/misc/kernelconfig $@ "$(do_enforce_all)" + 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 + $(DROOT)/scripts/misc/insert-changes $(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 +ifeq ($(do_fips_checks),true) + $(DROOT)/scripts/misc/fips-checks +endif + $(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 \ + rev=$(revision); \ + suffix=$$(echo "$${rev}" | sed 's/^[0-9]*\.[0-9]*//'); \ + abi=$${rev%%.*}; \ + upload=$${rev#*.}; \ + upload=$${upload%$${suffix}}; \ + ver=$(release)-$$((abi + 1)).$$((upload + 1))$${suffix}; \ + 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-5.19.0.orig/debian/rules.d/2-binary-arch.mk +++ linux-5.19.0/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,862 @@ +# 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 + +# TODO this is probably wrong, and should be using $(DEB_HOST_MULTIARCH) +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.ubuntu $(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-install-% + @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) + +ifneq ($(skipdbg),true) + # The target scripts_gdb is part of "all", so we need to call it manually + if grep -q CONFIG_GDB_SCRIPTS=y $(builddir)/build-$*/.config; then \ + $(build_cd) $(kmake) $(build_O) $(conc_level) scripts_gdb ; \ + fi +endif + + @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 = + ARCH=$(build_arch) 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 + +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 +$(stampdir)/stamp-install-%: pkgdir_bin = $(CURDIR)/debian/$(bin_pkg_name)-$* +$(stampdir)/stamp-install-%: pkgdir = $(CURDIR)/debian/$(mods_pkg_name)-$* +$(stampdir)/stamp-install-%: pkgdir_ex = $(CURDIR)/debian/$(mods_extra_pkg_name)-$* +$(stampdir)/stamp-install-%: pkgdir_bldinfo = $(CURDIR)/debian/$(bldinfo_pkg_name)-$* +$(stampdir)/stamp-install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* +$(stampdir)/stamp-install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +$(stampdir)/stamp-install-%: signingv = $(CURDIR)/debian/$(bin_pkg_name)-signing/$(release)-$(revision) +$(stampdir)/stamp-install-%: toolspkgdir = $(CURDIR)/debian/$(tools_flavour_pkg_name)-$* +$(stampdir)/stamp-install-%: cloudpkgdir = $(CURDIR)/debian/$(cloud_flavour_pkg_name)-$* +$(stampdir)/stamp-install-%: basepkg = $(hdrs_pkg_name) +$(stampdir)/stamp-install-%: indeppkg = $(indep_hdrs_pkg_name) +$(stampdir)/stamp-install-%: kernfile = $(call custom_override,kernel_file,$*) +$(stampdir)/stamp-install-%: instfile = $(call custom_override,install_file,$*) +$(stampdir)/stamp-install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +$(stampdir)/stamp-install-%: target_flavour = $* +$(stampdir)/stamp-install-%: MODHASHALGO=sha512 +$(stampdir)/stamp-install-%: MODSECKEY=$(builddir)/build-$*/certs/signing_key.pem +$(stampdir)/stamp-install-%: MODPUBKEY=$(builddir)/build-$*/certs/signing_key.x509 +$(stampdir)/stamp-install-%: build_dir=$(builddir)/build-$* +$(stampdir)/stamp-install-%: dkms_dir=$(call dkms_dir_prefix,$(builddir)/build-$*) +$(foreach _m,$(all_dkms_modules), \ + $(eval $$(stampdir)/stamp-install-%: enable_$(_m) = $$(filter true,$$(call custom_override,do_$(_m),$$*))) \ + $(eval $$(stampdir)/stamp-install-%: dkms_$(_m)_pkgdir = $$(CURDIR)/debian/$(dkms_$(_m)_pkg_name)-$$*) \ +) +$(stampdir)/stamp-install-%: dbgpkgdir_dkms = $(if $(filter true,$(skipdbg)),"",$(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/kernel) +$(stampdir)/stamp-install-%: $(stampdir)/stamp-build-% $(stampdir)/stamp-install-headers + @echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile) + dh_testdir + dh_prep -p$(bin_pkg_name)-$* + dh_prep -p$(mods_pkg_name)-$* + dh_prep -p$(hdrs_pkg_name)-$* + $(foreach _m,$(all_standalone_dkms_modules), \ + $(if $(enable_$(_m)),dh_prep -p$(dkms_$(_m)_pkg_name)-$*;)\ + ) +ifneq ($(skipdbg),true) + dh_prep -p$(bin_pkg_name)-$*-dbgsym +endif +ifeq ($(do_extras_package),true) + dh_prep -p$(mods_extra_pkg_name)-$* +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)-$* + +ifeq ($(do_dtbs),true) + $(build_cd) $(kmake) $(build_O) $(conc_level) dtbs_install \ + INSTALL_DTBS_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree +endif + +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 + $(foreach _m,$(all_standalone_dkms_modules), \ + $(if $(enable_$(_m)), \ + install -d $(dkms_$(_m)_pkgdir)/usr/lib/linux/triggers; \ + $(call install_control,$(dkms_$(_m)_pkg_name)-$*,extra,postinst postrm); \ + ) \ + ) + + # 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)-$* + if [ -d $(builddir)/build-$*/scripts/gdb/linux ]; then \ + install -m644 -D $(builddir)/build-$*/vmlinux-gdb.py \ + $(dbgpkgdir)/usr/share/gdb/auto-load/boot/vmlinux-$(abi_release)-$*/vmlinuz-$(abi_release)-$*-gdb.py; \ + install -m644 -D $(builddir)/build-$*/scripts/gdb/linux/* \ + --target-directory=$(dbgpkgdir)/usr/share/gdb/auto-load/boot/vmlinux-$(abi_release)-$*/scripts/gdb/linux; \ + fi + $(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) + cp $(builddir)/build-$*/.config $(hdrdir) + chmod 644 $(hdrdir)/.config + $(kmake) O=$(hdrdir) -j1 syncconfig prepare scripts + # Makefile may need per-arch-flavour CC settings, which are + # normally set via $(kmake) during build + rm -f $(hdrdir)/Makefile + cp -a $(indep_hdrdir)/Makefile $(hdrdir)/Makefile + sed -i 's|\(^HOSTCC = \)gcc$$|\1$(gcc)|' $(hdrdir)/Makefile + sed -i 's|\(^CC = $$(CROSS_COMPILE)\)gcc$$|\1$(gcc)|' $(hdrdir)/Makefile + # Quick check for successful substitutions + grep '^HOSTCC .*$(gcc)$$' $(hdrdir)/Makefile + grep '^CC .*$(gcc)$$' $(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 +ifeq ($(build_arch),s390) + mkdir -p $(hdrdir)/arch/s390/lib/expoline/ + cp $(builddir)/build-$*/arch/s390/lib/expoline/*.o $(hdrdir)/arch/s390/lib/expoline/ +endif + # Copy over scripts/module.lds for building external modules + cp $(builddir)/build-$*/scripts/module.lds $(hdrdir)/scripts + # 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" + + $(foreach _m,$(all_dkms_modules), \ + $(if $(enable_$(_m)), \ + $(call build_dkms,$(dkms_$(_m)_pkg_name)-$*,$(dkms_$(_m)_pkgdir)/lib/modules/$(abi_release)-$*/$(dkms_$(_m)_subdir),$(dbgpkgdir_dkms),$(_m),$(dkms_$(_m)_debpath)); \ + ) \ + ) + + +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 built-in modules information. + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \ + sed -e 's/.*\/\([^\/]*\)\.ko/\1/' $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin | \ + sort > $(abidir)/$*.modules.builtin; \ + fi + + # 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 built-in firmware information. + if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo ] ; then \ + cat $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin.modinfo | \ + tr '\0' '\n' | sed -n 's/^.*firmware=/firmware: /p' | \ + sort -u > $(abidir)/$*.fwinfo.builtin; \ + fi + + # 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 + if [ -f $(abidir)/$*.modules.builtin ] ; then \ + install -m644 $(abidir)/$*.modules.builtin \ + $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/modules.builtin; \ + fi + if [ -f $(abidir)/$*.fwinfo.builtin ] ; then \ + install -m644 $(abidir)/$*.fwinfo.builtin \ + $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/fwinfo.builtin; \ + fi + install -m644 $(DROOT)/canonical-certs.pem $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/canonical-certs.pem + install -m644 $(DROOT)/canonical-revoked-certs.pem $(pkgdir_bldinfo)/usr/lib/linux/$(abi_release)-$*/canonical-revoked-certs.pem + +ifneq ($(full_build),false) + # Clean out this flavours build directory. + rm -rf $(builddir)/build-$* +endif + @touch $@ + +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)' $(2) + dh_md5sums -p$(1) + dh_builddeb -p$(1) +endef +define newline + + +endef +define dh_all_inline + $(subst ${newline},; \${newline},$(call dh_all,$(1),$(2))) +endef + +binary-arch-headers: install-arch-headers + @echo Debug: $@ + dh_testdir + dh_testroot +ifeq ($(do_libc_dev_package),true) +ifeq ($(filter debian.master%,$(DEBIAN)),) + 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)-$* +$(foreach _m,$(all_dkms_modules), \ + $(eval binary-%: enable_$(_m) = $$(filter true,$$(call custom_override,do_$(_m),$$*))) \ +) +binary-%: rprovides = $(foreach _m,$(all_built-in_dkms_modules),$(if $(enable_$(_m)),$(foreach _r,$(dkms_$(_m)_rprovides),$(_r)$(comma) ))) +binary-%: target_flavour = $* +binary-%: checks-% + @echo Debug: $@ + dh_testdir + dh_testroot + + $(call dh_all,$(pkgimg)) -- -Znone + $(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 + + $(foreach _m,$(all_standalone_dkms_modules), \ + $(if $(enable_$(_m)),$(call dh_all,$(dkms_$(_m)_pkg_name)-$*);)\ + ) + + $(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)) -- -Zxz + + # 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 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 WERROR=0 +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-install-,$(flavours)) +build-arch: $(build-arch-deps-true) + @echo Debug: $@ + +ifeq ($(AUTOBUILD),) +binary-arch-deps-$(do_flavour_image_package) += binary-debs +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-5.19.0.orig/debian/rules.d/3-binary-indep.mk +++ linux-5.19.0/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,232 @@ +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) +$(stampdir)/stamp-install-headers: $(stampdir)/stamp-prepare-indep + @echo Debug: $@ + dh_testdir + +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 + @touch $@ + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: $(stampdir)/stamp-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: $(stampdir)/stamp-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 \ + -path './$(DEBIAN)/__abi.current' -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: hosttoolssystemd = $(CURDIR)/debian/$(hosttoolspkg)/lib/systemd/system +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: $(stampdir)/stamp-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 -d $(hosttoolssystemd) + + install -m 755 $(CURDIR)/tools/kvm/kvm_stat/kvm_stat $(hosttoolsbin)/ + install -m 644 $(CURDIR)/tools/kvm/kvm_stat/kvm_stat.service \ + $(hosttoolssystemd)/ + + cd $(builddir)/tools/tools/kvm/kvm_stat && make man + install -m644 $(builddir)/tools/tools/kvm/kvm_stat/*.1 \ + $(hosttoolsman)/man1 +endif + +$(stampdir)/stamp-prepare-indep: + @echo Debug: $@ + dh_prep -i + @touch $@ + +install-indep: $(stampdir)/stamp-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: $(stampdir)/stamp-prepare-indep $(stampdir)/stamp-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: hosttoolspkg = $(hosttools_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 +ifeq ($(do_tools_host),true) + # Keep kvm_stat.service disabled by default (after dh_systemd_enable + # and dh_systemd_start: + dh_installinit -p$(hosttoolspkg) --no-enable --no-start --name kvm_stat +endif + dh_installdeb -i + $(lockme) dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-5.19.0.orig/debian/rules.d/4-checks.mk +++ linux-5.19.0/debian/rules.d/4-checks.mk @@ -0,0 +1,35 @@ +# Check ABI for package against last release (if not same abinum) +abi-check-%: $(stampdir)/stamp-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-%: $(stampdir)/stamp-install-% + @echo Debug: $@ + $(DROOT)/scripts/module-check "$*" \ + "$(prev_abidir)" "$(abidir)" $(skipmodule) + +# Check the signature of staging modules +module-signature-check-%: $(stampdir)/stamp-install-% + @echo Debug: $@ + $(DROOT)/scripts/module-signature-check "$*" \ + "$(DROOT)/$(mods_pkg_name)-$*" \ + "$(DROOT)/$(mods_extra_pkg_name)-$*" + +# Check the reptoline jmp/call functions against the last release. +retpoline-check-%: $(stampdir)/stamp-install-% + @echo Debug: $@ + $(SHELL) $(DROOT)/scripts/retpoline-check "$*" \ + "$(prev_abidir)" "$(abidir)" "$(skipretpoline)" "$(builddir)/build-$*" + +checks-%: module-check-% module-signature-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-5.19.0.orig/debian/scripts/abi-check +++ linux-5.19.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") { + if (-f $file) { + open(IGNORE, "< $file") or + die "Could not open $file"; + while () { + 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 () { + 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 () { + 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-5.19.0.orig/debian/scripts/config-check +++ linux-5.19.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 \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 () { + # 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-5.19.0.orig/debian/scripts/control-create +++ linux-5.19.0/debian/scripts/control-create @@ -0,0 +1,67 @@ +#!/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" + +while read package version extras +do + module="$package" + module_type= + + # Module arch parameters are skipped here, so a package section will + # be generated for each flavour, and its Architecture will be set to + # all architectures with that flavour. Even that is being generated, + # it doesn't follow all of them will be built. That's to work-around + # dkms_exclude/dkms_include that manipulates supported architectures + # in $(DEBIAN)/rules.d/$(arch).mk. + for param in $extras; do + case "$param" in + modulename=*) module="${param#modulename=}" ;; + type=*) module_type="${param#type=}" ;; + *) continue ;; + esac + done + + [ "$module_type" = "standalone" ] || continue + + cat debian/control.d/flavour-module.stub | grep -v '^#' | sed \ + -e "s#ARCH#$arch#g" \ + -e "s#MODULE#$module#g" \ + -e "s#FLAVOUR#$flavour#g" +done <"debian/dkms-versions" --- linux-5.19.0.orig/debian/scripts/dkms-build +++ linux-5.19.0/debian/scripts/dkms-build @@ -0,0 +1,269 @@ +#!/bin/sh +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" + "$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-\* -o -name \*.mod | 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" +fakeroot="" +[ $(id -u) -ne 0 ] && fakeroot="/usr/bin/fakeroot" +rc=0 +$fakeroot /usr/sbin/dkms build --no-prepare-kernel --no-clean-kernel \ + -k "$abi_flavour" ${ARCH:+-a $ARCH} \ + --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@<>@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 + +# This assumes that .mod files are in the top level build tree +# If there are ever .mod files in sub-directories, the dirname of objectlist needs to be stripped as well +find "$dkms_dir/build/$dkms_package/$dkms_version/objects" -name \*.mod -print | \ +while read objectlist +do + sed "s|^$dkms_dir/build/$dkms_package/$dkms_version/build/||" -i $objectlist +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" + "$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-5.19.0.orig/debian/scripts/dkms-build--nvidia-N +++ linux-5.19.0/debian/scripts/dkms-build--nvidia-N @@ -0,0 +1,113 @@ +#!/bin/sh +set -e + +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. And .mod files for ld linking in recentish kernels. +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 -o -name \*.mod | \ + 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 | grep -v "warning:\|NOTE:" | 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-5.19.0.orig/debian/scripts/dkms-build-configure--zfs +++ linux-5.19.0/debian/scripts/dkms-build-configure--zfs @@ -0,0 +1,24 @@ +#!/bin/sh +set -e + +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-5.19.0.orig/debian/scripts/file-downloader +++ linux-5.19.0/debian/scripts/file-downloader @@ -0,0 +1,34 @@ +#!/bin/sh + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " 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-5.19.0.orig/debian/scripts/fix-filenames.c +++ linux-5.19.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 + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +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 \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-5.19.0.orig/debian/scripts/helpers/close +++ linux-5.19.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-5.19.0.orig/debian/scripts/helpers/open +++ linux-5.19.0/debian/scripts/helpers/open @@ -0,0 +1,234 @@ +#!/bin/bash -eu +export LC_ALL=C.UTF-8 + +out() +{ + local rc=${?} + + trap - EXIT INT TERM HUP + [ "${rc}" -eq 0 ] || echo "Error: Script failed" >&2 + + exit "${rc}" +} + +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 +} + +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 + +trap out EXIT INT TERM HUP + +# 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= +BACKPORT_NO_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" ] || [ -n "$BACKPORT_NO_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./" (`fdr clean` in trusty will +# usually generate changes in "debian./). 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 + if [ -f "$DEBIAN/abi/version" ]; then + # This is an unversioned ABI directory, so simply update the + # version file + echo "$new" > "$DEBIAN/abi/version" + git add "$DEBIAN/abi/version" + else + # 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" + fi + 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 + +# Mimic maint-startnewrelease +[ "$dry_run" -eq 0 ] && \ + hl "\n***** Now please inspect the commit before pushing *****" + +exit 0 --- linux-5.19.0.orig/debian/scripts/helpers/rebase +++ linux-5.19.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-5.19.0.orig/debian/scripts/link-headers +++ linux-5.19.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-5.19.0.orig/debian/scripts/misc/arch-has-odm-enabled.sh +++ linux-5.19.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-5.19.0.orig/debian/scripts/misc/final-checks +++ linux-5.19.0/debian/scripts/misc/final-checks @@ -0,0 +1,91 @@ +#!/bin/bash + +debian="$1" +abi="$2" + +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 +} + +abi_version="$debian/abi/version" +if ! [ -f "$abi_version" ] +then + failure "$abi_version ABI version file missing" +fi + +version=$(cat "$abi_version") +if [ "$abi" != "$version" ] +then + failure "$abi_version ABI version mismatch ($abi != $version)" +fi + +if [ -d debian/certs ]; then + if ! grep -q '^CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"$' $debian/config/config.common.ubuntu; then + failure "'CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"' is required" + fi +fi + +if [ -d debian/revoked-certs ]; then + if ! grep -q '^CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"$' $debian/config/config.common.ubuntu; then + failure "'CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"' is required" + fi +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" "$arch" "$flavour" + done +done + +exit "$fail" --- linux-5.19.0.orig/debian/scripts/misc/find-missing-sauce.sh +++ linux-5.19.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=focal +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-5.19.0.orig/debian/scripts/misc/fw-to-ihex.sh +++ linux-5.19.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-5.19.0.orig/debian/scripts/misc/gen-auto-reconstruct +++ linux-5.19.0/debian/scripts/misc/gen-auto-reconstruct @@ -0,0 +1,84 @@ +#!/bin/bash + +if [ "$#" -ne 3 ]; then + echo "Usage: $0 | " 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-5.19.0.orig/debian/scripts/misc/getabis +++ linux-5.19.0/debian/scripts/misc/getabis @@ -0,0 +1,219 @@ +#!/bin/bash + +export LC_ALL=C.UTF-8 + +if [ "$#" = "1" ]; then + set - $(echo "$1" | sed -e 's/-/ /') +fi +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + echo "Usage: $0 " 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" + +# Check if we use a flat (unversioned) ABI directory +if [ -f "${DEBIAN}/abi/version" ] || \ + grep -qP '^abidir\s+.*/__abi.current/' debian/rules.d/0-common-vars.mk ; then + echo "Using flat ABI directory" + flat_abi=1 + abidir=$(pwd)/${DEBIAN}/abi +else + echo "Using versioned ABI directory" + flat_abi=0 + abidir=$(pwd)/${DEBIAN}/abi/${verfull} +fi + +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" + if [ -e "${base}"/fwinfo.builtin ] ; then + cat "${base}"/fwinfo.builtin >> "${fwinfo}".builtin + fi + 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 +rm -rf "${abidir}" +mkdir -p $abidir +echo $abi > $abidir/abiname +if [ ${flat_abi} -eq 1 ] ; then + echo "${verfull}" > "${abidir}"/version +fi + +# 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 files +sort < $fwinfo | uniq > fwinfo.tmp +mv fwinfo.tmp $fwinfo +if [ -e "${fwinfo}".builtin ] ; then + sort < "${fwinfo}".builtin | uniq > fwinfo.tmp + mv fwinfo.tmp "${fwinfo}".builtin +fi + +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}" + if [ ${flat_abi} -eq 0 ] ; then + find "$DEBIAN"/abi/* -maxdepth 0 -type d | grep -v "$verfull" | while read f; do git rm -rf "$f"; done + fi +fi --- linux-5.19.0.orig/debian/scripts/misc/git-ubuntu-log +++ linux-5.19.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-5.19.0.orig/debian/scripts/misc/insert-changes +++ linux-5.19.0/debian/scripts/misc/insert-changes @@ -0,0 +1,42 @@ +#!/usr/bin/python3 + +import os +import sys + +from subprocess import check_output + +droot = 'debian' +if len(sys.argv) > 1: + droot = sys.argv[1] + +debian = 'debian.master' +if len(sys.argv) > 2: + debian = sys.argv[2] + +rules = os.path.join(droot, 'rules') +changelog = os.path.join(debian, 'changelog') +changelog_new = os.path.join(debian, 'changelog.new') + +# Generate the list of new changes +changes = check_output(['make', '-s', '-f', rules, 'printchanges']).decode('UTF-8') + +# Insert the new changes into the changelog +with open(changelog) as orig, open(changelog_new, 'w') as new: + printed = False + skip_newline = False + for line in orig: + if line.startswith(' CHANGELOG: '): + if not printed: + printed = True + if changes == '': + skip_newline = True + continue + new.write(changes) + else: + if skip_newline and line.strip() == '': + skip_newline = False + continue + new.write(line) + +# Replace the original changelog with the new one +os.rename(changelog_new, changelog) --- linux-5.19.0.orig/debian/scripts/misc/insert-mainline-changes +++ linux-5.19.0/debian/scripts/misc/insert-mainline-changes @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + warn "Usage: $0 \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 () { + 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 () { + if (/^ CHANGELOG: /) { + $printed--; + print NEW; + if ($printed == 0) { + print NEW @changes; + } + next; + } + print NEW; +} + +close(NEW); +close(CHANGELOG); + +rename("$changelog.new", "$changelog"); --- linux-5.19.0.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-5.19.0/debian/scripts/misc/insert-ubuntu-changes @@ -0,0 +1,83 @@ +#!/usr/bin/perl + +if ($#ARGV != 2 && $#ARGV != 3) { + die "Usage: $0 []\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, ") { + 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 () { + if (/^ CHANGELOG: /) { + $printed--; + print NEW; + if ($printed == 0) { + print NEW @changes; + } + next; + } + print NEW; +} + +close(NEW); +close(CHANGELOG); + +rename("$changelog.new", "$changelog"); --- linux-5.19.0.orig/debian/scripts/misc/kernelconfig +++ linux-5.19.0/debian/scripts/misc/kernelconfig @@ -0,0 +1,218 @@ +#!/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 + +if [ -z "$gcc" ]; then + echo "ERROR: gcc environment variable must be set" + exit 1 +fi + +kerneldir="`pwd`" +confdir="$kerneldir/${DEBIAN}/config" +variant="$2" + +. $DEBIAN/etc/kernelconfig + +bindir="`pwd`/${DROOT}/scripts/misc" +common_conf="$confdir/config.common.ubuntu" +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="$(dpkg-architecture -qDEB_HOST_GNU_TYPE -a$arch 2>/dev/null)-" + + # Arch-specific compiler, if any + archgcc=$(echo -e "show-%:\n\t@echo \$(\$*)\ninclude $DEBIAN/rules.d/$arch.mk" | make -s -f - show-gcc) + + # 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}${archgcc:-$gcc}" || true) + if [ "$compiler_path" != '' ]; then + env="$env CROSS_COMPILE=$cross_compile CC=$compiler_path" + 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. + + # config.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 $conc_level $env menuconfig + break ;; + n* | N* ) + # 'syncconfig' prevents + # errors for '-' options set + # in common config fragments + make O=`pwd`/build $conc_level $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 $conc_level $env "$mode" + else + make O=`pwd`/build $conc_level $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. 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 + +rc=0 +if [ "$fail" != 0 ]; then + rc=1 + echo "" + echo "*** ERROR: $fail config-check failures detected" + echo "" +fi + +rm -rf build + +if [ "$warning_partial" ]; then + rc=1 + echo "" + echo "WARNING: configuration operation applied only to a subset of architectures (skipped$warning_partial)" 1>&2 + echo "" +fi + +exit "${rc}" --- linux-5.19.0.orig/debian/scripts/misc/retag +++ linux-5.19.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 = ; +close(TAGS); + +open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log"; +my $commit = ""; + +while () { + 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-5.19.0.orig/debian/scripts/misc/splitconfig.pl +++ linux-5.19.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 () { + # 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-5.19.0.orig/debian/scripts/misc/tristate.sh +++ linux-5.19.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 < 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-5.19.0.orig/debian/scripts/misc/update-aufs.sh +++ linux-5.19.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-5.19.0.orig/debian/scripts/module-check +++ linux-5.19.0/debian/scripts/module-check @@ -0,0 +1,113 @@ +#!/usr/bin/python3 + +import os +import sys + +if len(sys.argv) < 4 or len(sys.argv) > 5: + print('Usage: module-check []') + sys.exit(2) + +flavor, prev_abidir, abidir = sys.argv[1:4] # pylint: disable=W0632 +if len(sys.argv) > 4: + skipmodule = sys.argv[4] +else: + skipmodule = '' + +print('II: Checking modules for {}...'.format(flavor), end='') + +if ((os.path.exists('{}/ignore.modules'.format(prev_abidir)) or + os.path.exists('{}/{}.ignore.modules'.format(prev_abidir, flavor)))): + print('explicitly ignoring modules') + sys.exit(0) + +curr_modules = '{}/{}.modules'.format(abidir, flavor) +prev_modules = '{}/{}.modules'.format(prev_abidir, flavor) +if not os.path.exists(curr_modules) or not os.path.exists(prev_modules): + print('previous or current modules file missing!') + print(' {}'.format(curr_modules)) + print(' {}'.format(prev_modules)) + sys.exit(0 if skipmodule else 1) + +print() + +modules = {} +modules_ignore = {} +missing = 0 +new = 0 +errors = 0 + +# See if we have any ignores +prev_modules_ignore = '{}/../modules.ignore'.format(prev_abidir) +if os.path.exists(prev_modules_ignore): + ignore = 0 + with open(prev_modules_ignore) as fh: + for mod in fh: + mod = mod.strip() + if mod.startswith('#'): + continue + modules_ignore[mod] = 1 + ignore += 1 + print('read {} modules.'.format(ignore)) + +# Read new modules first +print(' reading new modules...', end='') +new_count = 0 +for f in (curr_modules, curr_modules + '.builtin'): + if not os.path.exists(f): + continue + with open(f) as fh: + for mod in fh: + mod = mod.strip() + modules[mod] = 1 + new_count += 1 +print('read {} modules.'.format(new_count)) + +# Now the old modules, checking for missing ones +print(' reading old modules...', end='') +old_count = 0 +for f in (prev_modules, prev_modules + '.builtin'): + if not os.path.exists(f): + continue + with open(f) as fh: + for mod in fh: + mod = mod.strip() + if mod not in modules: + if not missing: + print() + missing += 1 + if mod not in modules_ignore: + print(' MISS: {}'.format(mod)) + errors += 1 + else: + print(' MISS: {} (ignored)'.format(mod)) + else: + modules[mod] += 1 + old_count += 1 +# Check for new modules +for mod, cnt in modules.items(): + if cnt < 2: + if not missing and not new: + print() + print(' NEW: {}'.format(mod)) + new += 1 +if new or missing: + print(' read {} modules : new({}) missing({})'.format(old_count, new, missing)) +else: + print('read {} modules.'.format(old_count)) + +# Let's see where we stand... +if errors: + if skipmodule: + print('WW: Explicitly asked to ignore failures') + else: + print('EE: Missing modules') + sys.exit(1) + +if new: + print('II: New modules') +else: + print('II: No new modules') + +print('II: Done') + +sys.exit(0) --- linux-5.19.0.orig/debian/scripts/module-inclusion +++ linux-5.19.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-5.19.0.orig/debian/scripts/module-signature-check +++ linux-5.19.0/debian/scripts/module-signature-check @@ -0,0 +1,76 @@ +#!/bin/bash -eu + +flavor="${1}" +mods_dir="${2}" +mods_extra_dir="${3}" + +echo "II: Checking signature of staging modules for ${flavor}..." + +root=$(dirname "$(realpath -e "${0}")")/../.. +. "${root}"/debian/debian.env + +# Collect the signature-inclusion files +sig_incs=() +for d in debian "${DEBIAN}" ; do + if [ -f "${root}"/"${d}"/signature-inclusion ] ; then + sig_incs+=("${root}"/"${d}"/signature-inclusion) + fi +done + +if [ "${#sig_incs[@]}" -gt 0 ] ; then + echo "II: Use signature inclusion file(s):" + printf " %s\n" "${sig_incs[@]}" + sig_all=0 +else + echo "WW: Signature inclusion file(s) missing" + echo "II: All modules must be signed" + sig_all=1 +fi + +if ! [ -d "${mods_dir}" ] ; then + echo "EE: Modules directory missing:" + echo " ${mods_dir}" + exit 1 +fi + +echo "II: Checking modules directory:" +echo " ${mods_dir}" +mods_dirs=("${mods_dir}") + +if [ -d "${mods_extra_dir}" ] ; then + echo " ${mods_extra_dir}" + mods_dirs+=("${mods_extra_dir}") +fi + +pass=0 +fail=0 +while IFS= read -r mod ; do + is=0 + if /sbin/modinfo "${mod}" | grep -q "^signature:" ; then + # Module is signed + is=1 + fi + + must=0 + if [ ${sig_all} -eq 1 ] || grep -qFx "${mod##*/}" "${sig_incs[@]}" ; then + # Module must be signed + must=1 + fi + + case "${is}${must}" in + 00) echo " PASS (unsigned) : ${mod##*/}" ; pass=$((pass + 1)) ;; + 01) echo " FAIL (unsigned) : ${mod##*/}" ; fail=$((fail + 1)) ;; + 10) echo " FAIL (signed) : ${mod##*/}" ; fail=$((fail + 1)) ;; + 11) echo " PASS (signed) : ${mod##*/}" ; pass=$((pass + 1)) ;; + esac +done < <(find "${mods_dirs[@]}" -path '*/drivers/staging/*.ko' | sort) + +echo "II: Checked $((pass + fail)) modules : ${pass} PASS, ${fail} FAIL" + +if [ ${fail} -eq 0 ] ; then + echo "II: Done" + exit 0 +else + echo "EE: Modules signature failures" + exit 1 +fi --- linux-5.19.0.orig/debian/scripts/retpoline-check +++ linux-5.19.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-5.19.0.orig/debian/scripts/retpoline-extract +++ linux-5.19.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-5.19.0.orig/debian/scripts/retpoline-extract-one +++ linux-5.19.0/debian/scripts/retpoline-extract-one @@ -0,0 +1,270 @@ +#!/bin/bash + +exec &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 add and + # shove that into in the segment of the . + # + # Format: + # 64 bits + # 32 bits + # 32 bits + # 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 and add that to the + # existing contents of in the segment of the . + # + # Format: + # 32 bits + # 24 bits + # 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-5.19.0.orig/debian/scripts/sign-module +++ linux-5.19.0/debian/scripts/sign-module @@ -0,0 +1,40 @@ +#!/bin/bash -eu +# +# Staging drivers must not be signed if they are not listed in a +# signature-inclusion file to prevent loading of 'unsafe' drivers in a +# Secure Boot environment. +# +# Exit with status 0 if the provided module needs to be signed, 1 otherwise +# + +mod=${1} + +# Sign the module if not a staging driver +if [ "${mod/\/drivers\/staging\//}" = "${mod}" ] ; then + exit 0 +fi + +root=$(dirname "$(realpath -e "${0}")")/../.. +. "${root}"/debian/debian.env + +# Collect the signature-inclusion files +sig_incls=() +for d in debian "${DEBIAN}" ; do + if [ -f "${root}"/"${d}"/signature-inclusion ] ; then + sig_incls+=("${root}"/"${d}"/signature-inclusion) + fi +done + +# Sign the module if no signature-inclusion files +if [ ${#sig_incls[@]} -eq 0 ] ; then + exit 0 +fi + +# Sign the module if listed in signature-inclusion files +if grep -qFx "${mod##*/}" "${sig_incls[@]}" ; then + exit 0 +fi + +# Don't sign the module +echo "UBUNTU: Not signing ${1}" +exit 1 --- linux-5.19.0.orig/debian/scripts/sub-flavour +++ linux-5.19.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-5.19.0.orig/debian/signature-inclusion +++ linux-5.19.0/debian/signature-inclusion @@ -0,0 +1,12 @@ +# +# This file lists the staging drivers that are safe for signing +# and loading in a secure boot environment with signed module enforcement. +# +r8188eu.ko +r8192e_pci.ko +r8192u_usb.ko +r8712u.ko +rtllib_crypt_ccmp.ko +rtllib_crypt_tkip.ko +rtllib_crypt_wep.ko +rtllib.ko --- linux-5.19.0.orig/debian/snapcraft.mk +++ linux-5.19.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-5.19.0.orig/debian/source/format +++ linux-5.19.0/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-5.19.0.orig/debian/source/options +++ linux-5.19.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-5.19.0.orig/debian/stamps/keep-dir +++ linux-5.19.0/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-5.19.0.orig/debian/templates/extra.postinst.in +++ linux-5.19.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 </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 </usr/lib/linux/triggers/$version </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-5.19.0.orig/debian/templates/image.preinst.in +++ linux-5.19.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-5.19.0.orig/debian/templates/image.prerm.in +++ linux-5.19.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-5.19.0.orig/debian/tests-build/README +++ linux-5.19.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-5.19.0.orig/debian/tests-build/check-aliases +++ linux-5.19.0/debian/tests-build/check-aliases @@ -0,0 +1,26 @@ +#!/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"; + +exit 0 unless (-e $aliases); + +open(ALIASES, "< $aliases") or die "Could not open $aliases"; + +while () { + 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-5.19.0.orig/debian/tests/control +++ linux-5.19.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-5.19.0.orig/debian/tests/rebuild +++ linux-5.19.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-5.19.0.orig/debian/tests/ubuntu-regression-suite +++ linux-5.19.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-unstable|linux-hwe*|linux-lowlatency*|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 &2 + exit 1 +fi + +git clone --depth=1 git://git.launchpad.net/~canonical-kernel-team/+git/kernel-testing +kernel-testing/run-dep8-tests --- linux-5.19.0.orig/debian/tools/generic +++ linux-5.19.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-" >&2 +$lts $cld echo " linux-cloud-tools$flavour-lts-" >&2 + +exit 2 --- linux-5.19.0.orig/debian/v4l2loopback-modules.ignore +++ linux-5.19.0/debian/v4l2loopback-modules.ignore @@ -0,0 +1 @@ +v4l2loopback --- linux-5.19.0.orig/debian/wireguard-modules.ignore +++ linux-5.19.0/debian/wireguard-modules.ignore @@ -0,0 +1 @@ +wireguard --- linux-5.19.0.orig/debian/zfs-modules.ignore +++ linux-5.19.0/debian/zfs-modules.ignore @@ -0,0 +1,11 @@ +icp +spl +splat +zavl +zcommon +zfs +zlua +znvpair +zpios +zunicode +zzstd --- linux-5.19.0.orig/drivers/Makefile +++ linux-5.19.0/drivers/Makefile @@ -59,14 +59,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-y += base/ block/ misc/ mfd/ nfc/ @@ -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-5.19.0.orig/drivers/accessibility/speakup/main.c +++ linux-5.19.0/drivers/accessibility/speakup/main.c @@ -1778,7 +1778,7 @@ { unsigned long flags; - if (!speakup_console[vc->vc_num] || spk_parked) + if (!speakup_console[vc->vc_num] || spk_parked || !synth) return; if (!spin_trylock_irqsave(&speakup_info.spinlock, flags)) /* Speakup output, discard */ --- linux-5.19.0.orig/drivers/acpi/acpi_extlog.c +++ linux-5.19.0/drivers/acpi/acpi_extlog.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -138,8 +139,8 @@ int cpu = mce->extcpu; struct acpi_hest_generic_status *estatus, *tmp; struct acpi_hest_generic_data *gdata; - const guid_t *fru_id = &guid_null; - char *fru_text = ""; + const guid_t *fru_id; + char *fru_text; guid_t *sec_type; static u32 err_seq; @@ -160,17 +161,23 @@ /* log event via trace */ err_seq++; - gdata = (struct acpi_hest_generic_data *)(tmp + 1); - if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID) - fru_id = (guid_t *)gdata->fru_id; - if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT) - fru_text = gdata->fru_text; - sec_type = (guid_t *)gdata->section_type; - if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) { - struct cper_sec_mem_err *mem = (void *)(gdata + 1); - if (gdata->error_data_length >= sizeof(*mem)) - trace_extlog_mem_event(mem, err_seq, fru_id, fru_text, - (u8)gdata->error_severity); + apei_estatus_for_each_section(tmp, gdata) { + if (gdata->validation_bits & CPER_SEC_VALID_FRU_ID) + fru_id = (guid_t *)gdata->fru_id; + else + fru_id = &guid_null; + if (gdata->validation_bits & CPER_SEC_VALID_FRU_TEXT) + fru_text = gdata->fru_text; + else + fru_text = ""; + sec_type = (guid_t *)gdata->section_type; + if (guid_equal(sec_type, &CPER_SEC_PLATFORM_MEM)) { + struct cper_sec_mem_err *mem = (void *)(gdata + 1); + + if (gdata->error_data_length >= sizeof(*mem)) + trace_extlog_mem_event(mem, err_seq, fru_id, fru_text, + (u8)gdata->error_severity); + } } out: --- linux-5.19.0.orig/drivers/acpi/acpi_fpdt.c +++ linux-5.19.0/drivers/acpi/acpi_fpdt.c @@ -143,6 +143,23 @@ static struct kobject *fpdt_kobj; +#if defined CONFIG_X86 && defined CONFIG_PHYS_ADDR_T_64BIT +#include +static bool fpdt_address_valid(u64 address) +{ + /* + * On some systems the table contains invalid addresses + * with unsuppored high address bits set, check for this. + */ + return !(address >> boot_cpu_data.x86_phys_bits); +} +#else +static bool fpdt_address_valid(u64 address) +{ + return true; +} +#endif + static int fpdt_process_subtable(u64 address, u32 subtable_type) { struct fpdt_subtable_header *subtable_header; @@ -151,6 +168,11 @@ u32 length, offset; int result; + if (!fpdt_address_valid(address)) { + pr_info(FW_BUG "invalid physical address: 0x%llx!\n", address); + return -EINVAL; + } + subtable_header = acpi_os_map_memory(address, sizeof(*subtable_header)); if (!subtable_header) return -ENOMEM; --- linux-5.19.0.orig/drivers/acpi/acpi_lpss.c +++ linux-5.19.0/drivers/acpi/acpi_lpss.c @@ -422,6 +422,9 @@ if (!lpss_clk_dev) lpt_register_clock_device(); + if (IS_ERR(lpss_clk_dev)) + return PTR_ERR(lpss_clk_dev); + clk_data = platform_get_drvdata(lpss_clk_dev); if (!clk_data) return -ENODEV; --- linux-5.19.0.orig/drivers/acpi/acpi_pcc.c +++ linux-5.19.0/drivers/acpi/acpi_pcc.c @@ -23,6 +23,12 @@ #include +/* + * Arbitrary retries in case the remote processor is slow to respond + * to PCC commands + */ +#define PCC_CMD_WAIT_RETRIES_NUM 500ULL + struct pcc_data { struct pcc_mbox_chan *pcc_chan; void __iomem *pcc_comm_addr; @@ -63,6 +69,7 @@ if (IS_ERR(data->pcc_chan)) { pr_err("Failed to find PCC channel for subspace %d\n", ctx->subspace_id); + kfree(data); return AE_NOT_FOUND; } @@ -72,6 +79,8 @@ if (!data->pcc_comm_addr) { pr_err("Failed to ioremap PCC comm region mem for %d\n", ctx->subspace_id); + pcc_mbox_free_channel(data->pcc_chan); + kfree(data); return AE_NO_MEMORY; } @@ -86,6 +95,7 @@ { int ret; struct pcc_data *data = region_context; + u64 usecs_lat; reinit_completion(&data->done); @@ -96,10 +106,22 @@ if (ret < 0) return AE_ERROR; - if (data->pcc_chan->mchan->mbox->txdone_irq) - wait_for_completion(&data->done); + if (data->pcc_chan->mchan->mbox->txdone_irq) { + /* + * pcc_chan->latency is just a Nominal value. In reality the remote + * processor could be much slower to reply. So add an arbitrary + * amount of wait on top of Nominal. + */ + usecs_lat = PCC_CMD_WAIT_RETRIES_NUM * data->pcc_chan->latency; + ret = wait_for_completion_timeout(&data->done, + usecs_to_jiffies(usecs_lat)); + if (ret == 0) { + pr_err("PCC command executed timeout!\n"); + return AE_TIME; + } + } - mbox_client_txdone(data->pcc_chan->mchan, ret); + mbox_chan_txdone(data->pcc_chan->mchan, ret); memcpy_fromio(value, data->pcc_comm_addr, data->ctx.length); --- linux-5.19.0.orig/drivers/acpi/acpi_video.c +++ linux-5.19.0/drivers/acpi/acpi_video.c @@ -496,6 +496,22 @@ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE R830"), }, }, + { + .callback = video_disable_backlight_sysfs_if, + .ident = "Toshiba Satellite Z830", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE Z830"), + }, + }, + { + .callback = video_disable_backlight_sysfs_if, + .ident = "Toshiba Portege Z830", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"), + DMI_MATCH(DMI_PRODUCT_NAME, "PORTEGE Z830"), + }, + }, /* * Some machine's _DOD IDs don't have bit 31(Device ID Scheme) set * but the IDs actually follow the Device ID Scheme. --- linux-5.19.0.orig/drivers/acpi/acpica/dsmethod.c +++ linux-5.19.0/drivers/acpi/acpica/dsmethod.c @@ -517,7 +517,7 @@ info = ACPI_ALLOCATE_ZEROED(sizeof(struct acpi_evaluate_info)); if (!info) { status = AE_NO_MEMORY; - goto cleanup; + goto pop_walk_state; } info->parameters = &this_walk_state->operands[0]; @@ -529,7 +529,7 @@ ACPI_FREE(info); if (ACPI_FAILURE(status)) { - goto cleanup; + goto pop_walk_state; } next_walk_state->method_nesting_depth = @@ -575,6 +575,12 @@ return_ACPI_STATUS(status); +pop_walk_state: + + /* On error, pop the walk state to be deleted from thread */ + + acpi_ds_pop_walk_state(thread); + cleanup: /* On error, we must terminate the method properly */ --- linux-5.19.0.orig/drivers/acpi/acpica/dswexec.c +++ linux-5.19.0/drivers/acpi/acpica/dswexec.c @@ -395,11 +395,11 @@ /* Resolve all operands */ + union acpi_operand_object **stack_ptr = NULL; + if (walk_state->num_operands > 0) + stack_ptr = ACPI_WALK_OPERANDS; status = acpi_ex_resolve_operands(walk_state->opcode, - &(walk_state-> - operands - [walk_state-> - num_operands - 1]), + stack_ptr, walk_state); } --- linux-5.19.0.orig/drivers/acpi/acpica/utcopy.c +++ linux-5.19.0/drivers/acpi/acpica/utcopy.c @@ -916,13 +916,6 @@ status = acpi_ut_walk_package_tree(source_obj, dest_obj, acpi_ut_copy_ielement_to_ielement, walk_state); - if (ACPI_FAILURE(status)) { - - /* On failure, delete the destination package object */ - - acpi_ut_remove_reference(dest_obj); - } - return_ACPI_STATUS(status); } --- linux-5.19.0.orig/drivers/acpi/apei/bert.c +++ linux-5.19.0/drivers/acpi/apei/bert.c @@ -29,16 +29,26 @@ #undef pr_fmt #define pr_fmt(fmt) "BERT: " fmt + +#define ACPI_BERT_PRINT_MAX_RECORDS 5 #define ACPI_BERT_PRINT_MAX_LEN 1024 static int bert_disable; +/* + * Print "all" the error records in the BERT table, but avoid huge spam to + * the console if the BIOS included oversize records, or too many records. + * Skipping some records here does not lose anything because the full + * data is available to user tools in: + * /sys/firmware/acpi/tables/data/BERT + */ static void __init bert_print_all(struct acpi_bert_region *region, unsigned int region_len) { struct acpi_hest_generic_status *estatus = (struct acpi_hest_generic_status *)region; int remain = region_len; + int printed = 0, skipped = 0; u32 estatus_len; while (remain >= sizeof(struct acpi_bert_region)) { @@ -46,24 +56,26 @@ if (remain < estatus_len) { pr_err(FW_BUG "Truncated status block (length: %u).\n", estatus_len); - return; + break; } /* No more error records. */ if (!estatus->block_status) - return; + break; if (cper_estatus_check(estatus)) { pr_err(FW_BUG "Invalid error record.\n"); - return; + break; } - pr_info_once("Error records from previous boot:\n"); - if (region_len < ACPI_BERT_PRINT_MAX_LEN) + if (estatus_len < ACPI_BERT_PRINT_MAX_LEN && + printed < ACPI_BERT_PRINT_MAX_RECORDS) { + pr_info_once("Error records from previous boot:\n"); cper_estatus_print(KERN_INFO HW_ERR, estatus); - else - pr_info_once("Max print length exceeded, table data is available at:\n" - "/sys/firmware/acpi/tables/data/BERT"); + printed++; + } else { + skipped++; + } /* * Because the boot error source is "one-time polled" type, @@ -75,6 +87,9 @@ estatus = (void *)estatus + estatus_len; remain -= estatus_len; } + + if (skipped) + pr_info(HW_ERR "Skipped %d error records\n", skipped); } static int __init setup_bert_disable(char *str) --- linux-5.19.0.orig/drivers/acpi/apei/einj.c +++ linux-5.19.0/drivers/acpi/apei/einj.c @@ -546,6 +546,8 @@ != REGION_INTERSECTS) && (region_intersects(base_addr, size, IORESOURCE_MEM, IORES_DESC_PERSISTENT_MEMORY) != REGION_INTERSECTS) && + (region_intersects(base_addr, size, IORESOURCE_MEM, IORES_DESC_SOFT_RESERVED) + != REGION_INTERSECTS) && !arch_is_platform_page(base_addr))) return -EINVAL; --- linux-5.19.0.orig/drivers/acpi/apei/ghes.c +++ linux-5.19.0/drivers/acpi/apei/ghes.c @@ -163,7 +163,7 @@ clear_fixmap(fixmap_idx); } -int ghes_estatus_pool_init(int num_ghes) +int ghes_estatus_pool_init(unsigned int num_ghes) { unsigned long addr, len; int rc; @@ -985,7 +985,7 @@ ghes_estatus_cache_add(generic, estatus); } - if (task_work_pending && current->mm != &init_mm) { + if (task_work_pending && current->mm) { estatus_node->task_work.func = ghes_kick_task_work; estatus_node->task_work_cpu = smp_processor_id(); ret = task_work_add(current, &estatus_node->task_work, --- linux-5.19.0.orig/drivers/acpi/bus.c +++ linux-5.19.0/drivers/acpi/bus.c @@ -1399,6 +1399,7 @@ pci_mmcfg_late_init(); acpi_iort_init(); + acpi_viot_early_init(); acpi_hest_init(); acpi_ghes_init(); acpi_scan_init(); --- linux-5.19.0.orig/drivers/acpi/cppc_acpi.c +++ linux-5.19.0/drivers/acpi/cppc_acpi.c @@ -618,33 +618,6 @@ return 0; } -/* Check if CPPC revision + num_ent combination is supported */ -static bool is_cppc_supported(int revision, int num_ent) -{ - int expected_num_ent; - - switch (revision) { - case CPPC_V2_REV: - expected_num_ent = CPPC_V2_NUM_ENT; - break; - case CPPC_V3_REV: - expected_num_ent = CPPC_V3_NUM_ENT; - break; - default: - pr_debug("Firmware exports unsupported CPPC revision: %d\n", - revision); - return false; - } - - if (expected_num_ent != num_ent) { - pr_debug("Firmware exports %d entries. Expected: %d for CPPC rev:%d\n", - num_ent, expected_num_ent, revision); - return false; - } - - return true; -} - /* * An example CPC table looks like the following. * @@ -733,7 +706,6 @@ cpc_obj->type, pr->id); goto out_free; } - cpc_ptr->num_entries = num_ent; /* Second entry should be revision. */ cpc_obj = &out_obj->package.elements[1]; @@ -744,10 +716,32 @@ cpc_obj->type, pr->id); goto out_free; } - cpc_ptr->version = cpc_rev; - if (!is_cppc_supported(cpc_rev, num_ent)) + if (cpc_rev < CPPC_V2_REV) { + pr_debug("Unsupported _CPC Revision (%d) for CPU:%d\n", cpc_rev, + pr->id); goto out_free; + } + + /* + * Disregard _CPC if the number of entries in the return pachage is not + * as expected, but support future revisions being proper supersets of + * the v3 and only causing more entries to be returned by _CPC. + */ + if ((cpc_rev == CPPC_V2_REV && num_ent != CPPC_V2_NUM_ENT) || + (cpc_rev == CPPC_V3_REV && num_ent != CPPC_V3_NUM_ENT) || + (cpc_rev > CPPC_V3_REV && num_ent <= CPPC_V3_NUM_ENT)) { + pr_debug("Unexpected number of _CPC return package entries (%d) for CPU:%d\n", + num_ent, pr->id); + goto out_free; + } + if (cpc_rev > CPPC_V3_REV) { + num_ent = CPPC_V3_NUM_ENT; + cpc_rev = CPPC_V3_REV; + } + + cpc_ptr->num_entries = num_ent; + cpc_ptr->version = cpc_rev; /* Iterate through remaining entries in _CPC */ for (i = 2; i < num_ent; i++) { --- linux-5.19.0.orig/drivers/acpi/ec.c +++ linux-5.19.0/drivers/acpi/ec.c @@ -180,7 +180,6 @@ static struct workqueue_struct *ec_query_wq; static int EC_FLAGS_CORRECT_ECDT; /* Needs ECDT port address correction */ -static int EC_FLAGS_IGNORE_DSDT_GPE; /* Needs ECDT GPE as correction setting */ static int EC_FLAGS_TRUST_DSDT_GPE; /* Needs DSDT GPE as correction setting */ static int EC_FLAGS_CLEAR_ON_RESUME; /* Needs acpi_ec_clear() on boot/resume */ @@ -1407,24 +1406,16 @@ if (ec->data_addr == 0 || ec->command_addr == 0) return AE_OK; - if (boot_ec && boot_ec_is_ecdt && EC_FLAGS_IGNORE_DSDT_GPE) { - /* - * Always inherit the GPE number setting from the ECDT - * EC. - */ - ec->gpe = boot_ec->gpe; - } else { - /* Get GPE bit assignment (EC events). */ - /* TODO: Add support for _GPE returning a package */ - status = acpi_evaluate_integer(handle, "_GPE", NULL, &tmp); - if (ACPI_SUCCESS(status)) - ec->gpe = tmp; + /* Get GPE bit assignment (EC events). */ + /* TODO: Add support for _GPE returning a package */ + status = acpi_evaluate_integer(handle, "_GPE", NULL, &tmp); + if (ACPI_SUCCESS(status)) + ec->gpe = tmp; + /* + * Errors are non-fatal, allowing for ACPI Reduced Hardware + * platforms which use GpioInt instead of GPE. + */ - /* - * 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; acpi_evaluate_integer(handle, "_GLK", NULL, &tmp); @@ -1862,60 +1853,12 @@ return 0; } -/* - * Some DSDTs contain wrong GPE setting. - * Asus FX502VD/VE, GL702VMK, X550VXK, X580VD - * https://bugzilla.kernel.org/show_bug.cgi?id=195651 - */ -static int ec_honor_ecdt_gpe(const struct dmi_system_id *id) -{ - pr_debug("Detected system needing ignore DSDT GPE setting.\n"); - EC_FLAGS_IGNORE_DSDT_GPE = 1; - return 0; -} - static const struct dmi_system_id ec_dmi_table[] __initconst = { { ec_correct_ecdt, "MSI MS-171F", { DMI_MATCH(DMI_SYS_VENDOR, "Micro-Star"), DMI_MATCH(DMI_PRODUCT_NAME, "MS-171F"),}, NULL}, { - ec_honor_ecdt_gpe, "ASUS FX502VD", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "FX502VD"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUS FX502VE", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "FX502VE"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUS GL702VMK", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "GL702VMK"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BA", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X505BA"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X505BP", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X505BP"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BA", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X542BA"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUSTeK COMPUTER INC. X542BP", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X542BP"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUS X550VXK", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X550VXK"),}, NULL}, - { - ec_honor_ecdt_gpe, "ASUS X580VD", { - DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "X580VD"),}, NULL}, - { /* https://bugzilla.kernel.org/show_bug.cgi?id=209989 */ ec_honor_dsdt_gpe, "HP Pavilion Gaming Laptop 15-cx0xxx", { DMI_MATCH(DMI_SYS_VENDOR, "HP"), @@ -2208,13 +2151,6 @@ }, }, { - .ident = "ThinkPad X1 Carbon 6th", - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_FAMILY, "ThinkPad X1 Carbon 6th"), - }, - }, - { .ident = "ThinkPad X1 Yoga 3rd", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), --- linux-5.19.0.orig/drivers/acpi/numa/hmat.c +++ linux-5.19.0/drivers/acpi/numa/hmat.c @@ -563,17 +563,26 @@ { struct memory_initiator *ia; struct memory_initiator *ib; - unsigned long *p_nodes = priv; ia = list_entry(a, struct memory_initiator, node); ib = list_entry(b, struct memory_initiator, node); - set_bit(ia->processor_pxm, p_nodes); - set_bit(ib->processor_pxm, p_nodes); - return ia->processor_pxm - ib->processor_pxm; } +static int initiators_to_nodemask(unsigned long *p_nodes) +{ + struct memory_initiator *initiator; + + if (list_empty(&initiators)) + return -ENXIO; + + list_for_each_entry(initiator, &initiators, node) + set_bit(initiator->processor_pxm, p_nodes); + + return 0; +} + static void hmat_register_target_initiators(struct memory_target *target) { static DECLARE_BITMAP(p_nodes, MAX_NUMNODES); @@ -610,7 +619,10 @@ * initiators. */ bitmap_zero(p_nodes, MAX_NUMNODES); - list_sort(p_nodes, &initiators, initiator_cmp); + list_sort(NULL, &initiators, initiator_cmp); + if (initiators_to_nodemask(p_nodes) < 0) + return; + if (!access0done) { for (i = WRITE_LATENCY; i <= READ_BANDWIDTH; i++) { loc = localities_types[i]; @@ -644,8 +656,9 @@ /* Access 1 ignores Generic Initiators */ bitmap_zero(p_nodes, MAX_NUMNODES); - list_sort(p_nodes, &initiators, initiator_cmp); - best = 0; + if (initiators_to_nodemask(p_nodes) < 0) + return; + for (i = WRITE_LATENCY; i <= READ_BANDWIDTH; i++) { loc = localities_types[i]; if (!loc) --- linux-5.19.0.orig/drivers/acpi/numa/srat.c +++ linux-5.19.0/drivers/acpi/numa/srat.c @@ -327,6 +327,7 @@ pr_warn("ACPI NUMA: Failed to add memblk for CFMWS node %d [mem %#llx-%#llx]\n", node, start, end); } + node_set(node, numa_nodes_parsed); /* Set the next available fake_pxm value */ (*fake_pxm)++; --- linux-5.19.0.orig/drivers/acpi/osi.c +++ linux-5.19.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-5.19.0.orig/drivers/acpi/pci_mcfg.c +++ linux-5.19.0/drivers/acpi/pci_mcfg.c @@ -41,6 +41,8 @@ static struct mcfg_fixup mcfg_quirks[] = { /* { OEM_ID, OEM_TABLE_ID, REV, SEGMENT, BUS_RANGE, ops, cfgres }, */ +#ifdef CONFIG_ARM64 + #define AL_ECAM(table_id, rev, seg, ops) \ { "AMAZON", table_id, rev, seg, MCFG_BUS_ANY, ops } @@ -169,6 +171,7 @@ ALTRA_ECAM_QUIRK(1, 13), ALTRA_ECAM_QUIRK(1, 14), ALTRA_ECAM_QUIRK(1, 15), +#endif /* ARM64 */ }; static char mcfg_oem_id[ACPI_OEM_ID_SIZE]; --- linux-5.19.0.orig/drivers/acpi/pfr_telemetry.c +++ linux-5.19.0/drivers/acpi/pfr_telemetry.c @@ -144,7 +144,7 @@ ret = 0; free_acpi_buffer: - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } @@ -180,7 +180,7 @@ ret = -EBUSY; } - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } @@ -218,7 +218,7 @@ ret = obj->integer.value; free_acpi_buffer: - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } --- linux-5.19.0.orig/drivers/acpi/pfr_update.c +++ linux-5.19.0/drivers/acpi/pfr_update.c @@ -178,7 +178,7 @@ ret = 0; free_acpi_buffer: - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } @@ -224,7 +224,7 @@ ret = 0; free_acpi_buffer: - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } @@ -385,7 +385,7 @@ ret = 0; free_acpi_buffer: - kfree(out_obj); + ACPI_FREE(out_obj); return ret; } --- linux-5.19.0.orig/drivers/acpi/pptt.c +++ linux-5.19.0/drivers/acpi/pptt.c @@ -532,21 +532,37 @@ return -ENOENT; } + +static struct acpi_table_header *acpi_get_pptt(void) +{ + static struct acpi_table_header *pptt; + acpi_status status; + + /* + * PPTT will be used at runtime on every CPU hotplug in path, so we + * don't need to call acpi_put_table() to release the table mapping. + */ + if (!pptt) { + status = acpi_get_table(ACPI_SIG_PPTT, 0, &pptt); + if (ACPI_FAILURE(status)) + acpi_pptt_warn_missing(); + } + + return pptt; +} + static int find_acpi_cpu_topology_tag(unsigned int cpu, int level, int flag) { struct acpi_table_header *table; - acpi_status status; int retval; - status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); - if (ACPI_FAILURE(status)) { - acpi_pptt_warn_missing(); + table = acpi_get_pptt(); + if (!table) return -ENOENT; - } + retval = topology_get_acpi_cpu_tag(table, cpu, level, flag); pr_debug("Topology Setup ACPI CPU %d, level %d ret = %d\n", cpu, level, retval); - acpi_put_table(table); return retval; } @@ -567,16 +583,13 @@ static int check_acpi_cpu_flag(unsigned int cpu, int rev, u32 flag) { struct acpi_table_header *table; - acpi_status status; u32 acpi_cpu_id = get_acpi_id_for_cpu(cpu); struct acpi_pptt_processor *cpu_node = NULL; int ret = -ENOENT; - status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); - if (ACPI_FAILURE(status)) { - acpi_pptt_warn_missing(); - return ret; - } + table = acpi_get_pptt(); + if (!table) + return -ENOENT; if (table->revision >= rev) cpu_node = acpi_find_processor_node(table, acpi_cpu_id); @@ -584,8 +597,6 @@ if (cpu_node) ret = (cpu_node->flags & flag) != 0; - acpi_put_table(table); - return ret; } @@ -604,18 +615,15 @@ u32 acpi_cpu_id; struct acpi_table_header *table; int number_of_levels = 0; - acpi_status status; + + table = acpi_get_pptt(); + if (!table) + return -ENOENT; pr_debug("Cache Setup find last level CPU=%d\n", cpu); acpi_cpu_id = get_acpi_id_for_cpu(cpu); - status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); - if (ACPI_FAILURE(status)) { - acpi_pptt_warn_missing(); - } else { - number_of_levels = acpi_find_cache_levels(table, acpi_cpu_id); - acpi_put_table(table); - } + number_of_levels = acpi_find_cache_levels(table, acpi_cpu_id); pr_debug("Cache Setup find last level level=%d\n", number_of_levels); return number_of_levels; @@ -637,20 +645,16 @@ int cache_setup_acpi(unsigned int cpu) { struct acpi_table_header *table; - acpi_status status; - pr_debug("Cache Setup ACPI CPU %d\n", cpu); - - status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); - if (ACPI_FAILURE(status)) { - acpi_pptt_warn_missing(); + table = acpi_get_pptt(); + if (!table) return -ENOENT; - } + + pr_debug("Cache Setup ACPI CPU %d\n", cpu); cache_setup_acpi_cpu(table, cpu); - acpi_put_table(table); - return status; + return 0; } /** @@ -766,50 +770,38 @@ int find_acpi_cpu_topology_cluster(unsigned int cpu) { struct acpi_table_header *table; - acpi_status status; struct acpi_pptt_processor *cpu_node, *cluster_node; u32 acpi_cpu_id; int retval; int is_thread; - status = acpi_get_table(ACPI_SIG_PPTT, 0, &table); - if (ACPI_FAILURE(status)) { - acpi_pptt_warn_missing(); + table = acpi_get_pptt(); + if (!table) return -ENOENT; - } acpi_cpu_id = get_acpi_id_for_cpu(cpu); cpu_node = acpi_find_processor_node(table, acpi_cpu_id); - if (cpu_node == NULL || !cpu_node->parent) { - retval = -ENOENT; - goto put_table; - } + if (!cpu_node || !cpu_node->parent) + return -ENOENT; is_thread = cpu_node->flags & ACPI_PPTT_ACPI_PROCESSOR_IS_THREAD; cluster_node = fetch_pptt_node(table, cpu_node->parent); - if (cluster_node == NULL) { - retval = -ENOENT; - goto put_table; - } + if (!cluster_node) + return -ENOENT; + if (is_thread) { - if (!cluster_node->parent) { - retval = -ENOENT; - goto put_table; - } + if (!cluster_node->parent) + return -ENOENT; + cluster_node = fetch_pptt_node(table, cluster_node->parent); - if (cluster_node == NULL) { - retval = -ENOENT; - goto put_table; - } + if (!cluster_node) + return -ENOENT; } if (cluster_node->flags & ACPI_PPTT_ACPI_PROCESSOR_ID_VALID) retval = cluster_node->acpi_processor_id; else retval = ACPI_PTR_DIFF(cluster_node, table); -put_table: - acpi_put_table(table); - return retval; } --- linux-5.19.0.orig/drivers/acpi/processor_idle.c +++ linux-5.19.0/drivers/acpi/processor_idle.c @@ -530,10 +530,27 @@ /* No delay is needed if we are in guest */ if (boot_cpu_has(X86_FEATURE_HYPERVISOR)) return; + /* + * Modern (>=Nehalem) Intel systems use ACPI via intel_idle, + * not this code. Assume that any Intel systems using this + * are ancient and may need the dummy wait. This also assumes + * that the motivating chipset issue was Intel-only. + */ + if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) + return; #endif - /* Dummy wait op - must do something useless after P_LVL2 read - because chipsets cannot guarantee that STPCLK# signal - gets asserted in time to freeze execution properly. */ + /* + * Dummy wait op - must do something useless after P_LVL2 read + * because chipsets cannot guarantee that STPCLK# signal gets + * asserted in time to freeze execution properly + * + * This workaround has been in place since the original ACPI + * implementation was merged, circa 2002. + * + * If a profile is pointing to this instruction, please first + * consider moving your system to a more modern idle + * mechanism. + */ inl(acpi_gbl_FADT.xpm_timer_block.address); } @@ -607,7 +624,7 @@ * @cx: Target state context * @index: index of target state */ -static int acpi_idle_enter_bm(struct cpuidle_driver *drv, +static int __cpuidle acpi_idle_enter_bm(struct cpuidle_driver *drv, struct acpi_processor *pr, struct acpi_processor_cx *cx, int index) @@ -664,7 +681,7 @@ return index; } -static int acpi_idle_enter(struct cpuidle_device *dev, +static int __cpuidle acpi_idle_enter(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { struct acpi_processor_cx *cx = per_cpu(acpi_cstate[index], dev->cpu); @@ -693,7 +710,7 @@ return index; } -static int acpi_idle_enter_s2idle(struct cpuidle_device *dev, +static int __cpuidle acpi_idle_enter_s2idle(struct cpuidle_device *dev, struct cpuidle_driver *drv, int index) { struct acpi_processor_cx *cx = per_cpu(acpi_cstate[index], dev->cpu); --- linux-5.19.0.orig/drivers/acpi/processor_thermal.c +++ linux-5.19.0/drivers/acpi/processor_thermal.c @@ -151,7 +151,7 @@ unsigned int cpu; for_each_cpu(cpu, policy->related_cpus) { - struct acpi_processor *pr = per_cpu(processors, policy->cpu); + struct acpi_processor *pr = per_cpu(processors, cpu); if (pr) freq_qos_remove_request(&pr->thermal_req); --- linux-5.19.0.orig/drivers/acpi/property.c +++ linux-5.19.0/drivers/acpi/property.c @@ -155,10 +155,10 @@ return acpi_nondev_subnode_data_ok(handle, link, list, parent); } -static int acpi_add_nondev_subnodes(acpi_handle scope, - const union acpi_object *links, - struct list_head *list, - struct fwnode_handle *parent) +static bool acpi_add_nondev_subnodes(acpi_handle scope, + const union acpi_object *links, + struct list_head *list, + struct fwnode_handle *parent) { bool ret = false; int i; --- linux-5.19.0.orig/drivers/acpi/resource.c +++ linux-5.19.0/drivers/acpi/resource.c @@ -399,6 +399,31 @@ { } }; +static const struct dmi_system_id asus_laptop[] = { + { + .ident = "Asus Vivobook K3402ZA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "K3402ZA"), + }, + }, + { + .ident = "Asus Vivobook K3502ZA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "K3502ZA"), + }, + }, + { + .ident = "Asus Vivobook S5402ZA", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_BOARD_NAME, "S5402ZA"), + }, + }, + { } +}; + struct irq_override_cmp { const struct dmi_system_id *system; unsigned char irq; @@ -409,6 +434,7 @@ static const struct irq_override_cmp skip_override_table[] = { { medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 }, + { asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 }, }; static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity, @@ -416,6 +442,16 @@ { int i; +#ifdef CONFIG_X86 + /* + * IRQ override isn't needed on modern AMD Zen systems and + * this override breaks active low IRQs on AMD Ryzen 6000 and + * newer systems. Skip it. + */ + if (boot_cpu_has(X86_FEATURE_ZEN)) + return false; +#endif + for (i = 0; i < ARRAY_SIZE(skip_override_table); i++) { const struct irq_override_cmp *entry = &skip_override_table[i]; --- linux-5.19.0.orig/drivers/acpi/scan.c +++ linux-5.19.0/drivers/acpi/scan.c @@ -811,6 +811,7 @@ static const char * const acpi_ignore_dep_ids[] = { "PNP0D80", /* Windows-compatible System Power Management Controller */ "INT33BD", /* Intel Baytrail Mailbox Device */ + "LATT2021", /* Lattice FW Update Client Driver */ NULL }; --- linux-5.19.0.orig/drivers/acpi/sleep.c +++ linux-5.19.0/drivers/acpi/sleep.c @@ -360,6 +360,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "80E3"), }, }, + { + .callback = init_nvs_save_s3, + .ident = "Lenovo G40-45", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "80E1"), + }, + }, /* * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using * the Low Power S0 Idle firmware interface (see --- linux-5.19.0.orig/drivers/acpi/video_detect.c +++ linux-5.19.0/drivers/acpi/video_detect.c @@ -349,6 +349,14 @@ }, { .callback = video_detect_force_native, + /* Dell Inspiron N4010 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron N4010"), + }, + }, + { + .callback = video_detect_force_native, /* Dell Vostro V131 */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), @@ -430,7 +438,6 @@ .callback = video_detect_force_native, .ident = "Clevo NL5xRU", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), }, }, @@ -438,56 +445,150 @@ .callback = video_detect_force_native, .ident = "Clevo NL5xRU", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"), - DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), + DMI_MATCH(DMI_BOARD_NAME, "AURA1501"), }, }, { .callback = video_detect_force_native, .ident = "Clevo NL5xRU", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Notebook"), - DMI_MATCH(DMI_BOARD_NAME, "NL5xRU"), + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), + DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"), }, }, { .callback = video_detect_force_native, - .ident = "Clevo NL5xRU", + .ident = "Clevo NL5xNU", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + }, + }, + /* + * The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10, + * Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo + * NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description + * above. + */ + { + .callback = video_detect_force_native, + .ident = "TongFang PF5PU1G", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "PF5PU1G"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang PF4NU1F", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "PF4NU1F"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang PF4NU1F", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), - DMI_MATCH(DMI_BOARD_NAME, "AURA1501"), + DMI_MATCH(DMI_BOARD_NAME, "PULSE1401"), }, }, { .callback = video_detect_force_native, - .ident = "Clevo NL5xRU", + .ident = "TongFang PF5NU1G", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "PF5NU1G"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang PF5NU1G", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), - DMI_MATCH(DMI_BOARD_NAME, "EDUBOOK1502"), + DMI_MATCH(DMI_BOARD_NAME, "PULSE1501"), }, }, { .callback = video_detect_force_native, - .ident = "Clevo NL5xNU", + .ident = "TongFang PF5LUXG", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "PF5LUXG"), + }, + }, + /* + * More Tongfang devices with the same issue as the Clevo NL5xRU and + * NL5xNU/TUXEDO Aura 15 Gen1 and Gen2. See the description above. + */ + { + .callback = video_detect_force_native, + .ident = "TongFang GKxNRxx", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GKxNRxx"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang GKxNRxx", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), - DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + DMI_MATCH(DMI_BOARD_NAME, "POLARIS1501A1650TI"), }, }, { .callback = video_detect_force_native, - .ident = "Clevo NL5xNU", + .ident = "TongFang GKxNRxx", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "SchenkerTechnologiesGmbH"), - DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), + DMI_MATCH(DMI_BOARD_NAME, "POLARIS1501A2060"), }, }, { .callback = video_detect_force_native, - .ident = "Clevo NL5xNU", + .ident = "TongFang GKxNRxx", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Notebook"), - DMI_MATCH(DMI_BOARD_NAME, "NL5xNU"), + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), + DMI_MATCH(DMI_BOARD_NAME, "POLARIS1701A1650TI"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang GKxNRxx", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "TUXEDO"), + DMI_MATCH(DMI_BOARD_NAME, "POLARIS1701A2060"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang GMxNGxx", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxNGxx"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang GMxZGxx", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxZGxx"), + }, + }, + { + .callback = video_detect_force_native, + .ident = "TongFang GMxRGxx", + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxRGxx"), + }, + }, + /* + * Models which have nvidia-ec-wmi support, but should not use it. + * Note this indicates a likely firmware bug on these models and should + * be revisited if/when Linux gets support for dynamic mux mode. + */ + { + .callback = video_detect_force_native, + /* Dell G15 5515 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Dell G15 5515"), }, }, --- linux-5.19.0.orig/drivers/acpi/viot.c +++ linux-5.19.0/drivers/acpi/viot.c @@ -249,6 +249,26 @@ } /** + * acpi_viot_early_init - Test the presence of VIOT and enable ACS + * + * If the VIOT does exist, ACS must be enabled. This cannot be + * done in acpi_viot_init() which is called after the bus scan + */ +void __init acpi_viot_early_init(void) +{ +#ifdef CONFIG_PCI + acpi_status status; + struct acpi_table_header *hdr; + + status = acpi_get_table(ACPI_SIG_VIOT, 0, &hdr); + if (ACPI_FAILURE(status)) + return; + pci_request_acs(); + acpi_put_table(hdr); +#endif +} + +/** * acpi_viot_init - Parse the VIOT table * * Parse the VIOT table, prepare the list of endpoints to be used during DMA @@ -319,12 +339,6 @@ epid = ((domain_nr - ep->segment_start) << 16) + dev_id - ep->bdf_start + ep->endpoint_id; - /* - * If we found a PCI range managed by the viommu, we're - * the one that has to request ACS. - */ - pci_request_acs(); - return viot_dev_iommu_init(&pdev->dev, ep->viommu, epid); } --- linux-5.19.0.orig/drivers/acpi/x86/utils.c +++ linux-5.19.0/drivers/acpi/x86/utils.c @@ -207,9 +207,32 @@ {} }; +static const struct dmi_system_id force_storage_d3_dmi[] = { + { + /* + * _ADR is ambiguous between GPP1.DEV0 and GPP1.NVME + * but .NVME is needed to get StorageD3Enable node + * https://bugzilla.kernel.org/show_bug.cgi?id=216440 + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 14 7425 2-in-1"), + } + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 16 5625"), + } + }, + {} +}; + bool force_storage_d3(void) { - return x86_match_cpu(storage_d3_cpu_ids); + const struct dmi_system_id *dmi_id = dmi_first_match(force_storage_d3_dmi); + + return dmi_id || x86_match_cpu(storage_d3_cpu_ids); } /* @@ -295,6 +318,27 @@ }, .driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS | ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY), + }, + { + /* Lenovo Yoga Tablet 1050F/L */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel Corp."), + DMI_MATCH(DMI_PRODUCT_NAME, "VALLEYVIEW C0 PLATFORM"), + DMI_MATCH(DMI_BOARD_NAME, "BYT-T FFD8"), + /* Partial match on beginning of BIOS version */ + DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21"), + }, + .driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS | + ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY), + }, + { + /* Nextbook Ares 8 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Insyde"), + DMI_MATCH(DMI_PRODUCT_NAME, "M890BAP"), + }, + .driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS | + ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY), }, { /* Nextbook Ares 8 */ --- linux-5.19.0.orig/drivers/android/Kconfig +++ linux-5.19.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-5.19.0.orig/drivers/android/Makefile +++ linux-5.19.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-5.19.0.orig/drivers/android/binder.c +++ linux-5.19.0/drivers/android/binder.c @@ -197,8 +197,32 @@ atomic_inc(&binder_stats.obj_created[type]); } -struct binder_transaction_log binder_transaction_log; -struct binder_transaction_log binder_transaction_log_failed; +struct binder_transaction_log_entry { + int debug_id; + int debug_id_done; + int call_type; + int from_proc; + int from_thread; + int target_handle; + int to_proc; + int to_thread; + int to_node; + int data_size; + int offsets_size; + int return_error_line; + uint32_t return_error; + uint32_t return_error_param; + char context_name[BINDERFS_MAX_NAME + 1]; +}; + +struct binder_transaction_log { + atomic_t cur; + bool full; + struct binder_transaction_log_entry entry[32]; +}; + +static struct binder_transaction_log binder_transaction_log; +static struct binder_transaction_log binder_transaction_log_failed; static struct binder_transaction_log_entry *binder_transaction_log_add( struct binder_transaction_log *log) @@ -1361,6 +1385,18 @@ } ret = binder_inc_ref_olocked(ref, strong, target_list); *rdata = ref->data; + if (ret && ref == new_ref) { + /* + * Cleanup the failed reference here as the target + * could now be dead and have already released its + * references by now. Calling on the new reference + * with strong=0 and a tmp_refs will not decrement + * the node. The new_ref gets kfree'd below. + */ + binder_cleanup_ref_olocked(new_ref); + ref = NULL; + } + binder_proc_unlock(proc); if (new_ref && ref != new_ref) /* @@ -2781,8 +2817,7 @@ binder_size_t last_fixup_min_off = 0; struct binder_context *context = proc->context; int t_debug_id = atomic_inc_return(&binder_last_id); - char *secctx = NULL; - u32 secctx_sz = 0; + struct lsmcontext lsmctx = { }; struct list_head sgc_head; struct list_head pf_head; const void __user *user_buffer = (const void __user *) @@ -3054,11 +3089,11 @@ t->priority = task_nice(current); if (target_node && target_node->txn_security_ctx) { - u32 secid; + struct lsmblob blob; size_t added_size; - security_cred_getsecid(proc->cred, &secid); - ret = security_secid_to_secctx(secid, &secctx, &secctx_sz); + security_cred_getsecid(proc->cred, &blob); + ret = security_secid_to_secctx(&blob, &lsmctx, LSMBLOB_DISPLAY); if (ret) { binder_txn_error("%d:%d failed to get security context\n", thread->pid, proc->pid); @@ -3067,7 +3102,7 @@ return_error_line = __LINE__; goto err_get_secctx_failed; } - added_size = ALIGN(secctx_sz, sizeof(u64)); + added_size = ALIGN(lsmctx.len, sizeof(u64)); extra_buffers_size += added_size; if (extra_buffers_size < added_size) { binder_txn_error("%d:%d integer overflow of extra_buffers_size\n", @@ -3101,23 +3136,23 @@ t->buffer = NULL; goto err_binder_alloc_buf_failed; } - if (secctx) { + if (lsmctx.context) { int err; size_t buf_offset = ALIGN(tr->data_size, sizeof(void *)) + ALIGN(tr->offsets_size, sizeof(void *)) + ALIGN(extra_buffers_size, sizeof(void *)) - - ALIGN(secctx_sz, sizeof(u64)); + ALIGN(lsmctx.len, sizeof(u64)); + t->security_interface = lsm_task_ilsm(current); t->security_ctx = (uintptr_t)t->buffer->user_data + buf_offset; err = binder_alloc_copy_to_buffer(&target_proc->alloc, t->buffer, buf_offset, - secctx, secctx_sz); + lsmctx.context, lsmctx.len); if (err) { t->security_ctx = 0; WARN_ON(1); } - security_release_secctx(secctx, secctx_sz); - secctx = NULL; + security_release_secctx(&lsmctx); } t->buffer->debug_id = t->debug_id; t->buffer->transaction = t; @@ -3161,7 +3196,7 @@ off_end_offset = off_start_offset + tr->offsets_size; sg_buf_offset = ALIGN(off_end_offset, sizeof(void *)); sg_buf_end_offset = sg_buf_offset + extra_buffers_size - - ALIGN(secctx_sz, sizeof(u64)); + ALIGN(lsmctx.len, sizeof(u64)); off_min = 0; for (buffer_offset = off_start_offset; buffer_offset < off_end_offset; buffer_offset += sizeof(binder_size_t)) { @@ -3532,8 +3567,8 @@ binder_alloc_free_buf(&target_proc->alloc, t->buffer); err_binder_alloc_buf_failed: err_bad_extra_size: - if (secctx) - security_release_secctx(secctx, secctx_sz); + if (lsmctx.context) + security_release_secctx(&lsmctx); err_get_secctx_failed: kfree(tcomplete); binder_stats_deleted(BINDER_STAT_TRANSACTION_COMPLETE); @@ -4554,6 +4589,26 @@ tr.secctx = t->security_ctx; if (t->security_ctx) { + int to_ilsm = lsm_task_ilsm(current); + int from_ilsm = t->security_interface; + + if (to_ilsm == LSMBLOB_INVALID) + to_ilsm = 0; + if (from_ilsm == LSMBLOB_INVALID) + from_ilsm = 0; + /* + * The sender provided a security context from + * a different security module than the one this + * process wants to report if these don't match. + */ + if (from_ilsm != to_ilsm) { + if (t_from) + binder_thread_dec_tmpref(t_from); + + binder_cleanup_transaction(t, "security context mismatch", + BR_FAILED_REPLY); + return -EINVAL; + } cmd = BR_TRANSACTION_SEC_CTX; trsize = sizeof(tr); } @@ -6197,8 +6252,7 @@ print_binder_stats(m, " ", &proc->stats); } - -int binder_state_show(struct seq_file *m, void *unused) +static int state_show(struct seq_file *m, void *unused) { struct binder_proc *proc; struct binder_node *node; @@ -6237,7 +6291,7 @@ return 0; } -int binder_stats_show(struct seq_file *m, void *unused) +static int stats_show(struct seq_file *m, void *unused) { struct binder_proc *proc; @@ -6253,7 +6307,7 @@ return 0; } -int binder_transactions_show(struct seq_file *m, void *unused) +static int transactions_show(struct seq_file *m, void *unused) { struct binder_proc *proc; @@ -6309,7 +6363,7 @@ "\n" : " (incomplete)\n"); } -int binder_transaction_log_show(struct seq_file *m, void *unused) +static int transaction_log_show(struct seq_file *m, void *unused) { struct binder_transaction_log *log = m->private; unsigned int log_cur = atomic_read(&log->cur); @@ -6341,6 +6395,45 @@ .release = binder_release, }; +DEFINE_SHOW_ATTRIBUTE(state); +DEFINE_SHOW_ATTRIBUTE(stats); +DEFINE_SHOW_ATTRIBUTE(transactions); +DEFINE_SHOW_ATTRIBUTE(transaction_log); + +const struct binder_debugfs_entry binder_debugfs_entries[] = { + { + .name = "state", + .mode = 0444, + .fops = &state_fops, + .data = NULL, + }, + { + .name = "stats", + .mode = 0444, + .fops = &stats_fops, + .data = NULL, + }, + { + .name = "transactions", + .mode = 0444, + .fops = &transactions_fops, + .data = NULL, + }, + { + .name = "transaction_log", + .mode = 0444, + .fops = &transaction_log_fops, + .data = &binder_transaction_log, + }, + { + .name = "failed_transaction_log", + .mode = 0444, + .fops = &transaction_log_fops, + .data = &binder_transaction_log_failed, + }, + {} /* terminator */ +}; + static int __init init_binder_device(const char *name) { int ret; @@ -6386,36 +6479,18 @@ atomic_set(&binder_transaction_log_failed.cur, ~0U); binder_debugfs_dir_entry_root = debugfs_create_dir("binder", NULL); - if (binder_debugfs_dir_entry_root) + if (binder_debugfs_dir_entry_root) { + const struct binder_debugfs_entry *db_entry; + + binder_for_each_debugfs_entry(db_entry) + debugfs_create_file(db_entry->name, + db_entry->mode, + binder_debugfs_dir_entry_root, + db_entry->data, + db_entry->fops); + binder_debugfs_dir_entry_proc = debugfs_create_dir("proc", binder_debugfs_dir_entry_root); - - if (binder_debugfs_dir_entry_root) { - debugfs_create_file("state", - 0444, - binder_debugfs_dir_entry_root, - NULL, - &binder_state_fops); - debugfs_create_file("stats", - 0444, - binder_debugfs_dir_entry_root, - NULL, - &binder_stats_fops); - debugfs_create_file("transactions", - 0444, - binder_debugfs_dir_entry_root, - NULL, - &binder_transactions_fops); - debugfs_create_file("transaction_log", - 0444, - binder_debugfs_dir_entry_root, - &binder_transaction_log, - &binder_transaction_log_fops); - debugfs_create_file("failed_transaction_log", - 0444, - binder_debugfs_dir_entry_root, - &binder_transaction_log_failed, - &binder_transaction_log_fops); } if (!IS_ENABLED(CONFIG_ANDROID_BINDERFS) && @@ -6459,9 +6534,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-5.19.0.orig/drivers/android/binder_alloc.c +++ linux-5.19.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 { \ @@ -213,7 +212,7 @@ if (mm) { mmap_read_lock(mm); - vma = alloc->vma; + vma = vma_lookup(mm, alloc->vma_addr); } if (!vma && need_mm) { @@ -313,16 +312,21 @@ static inline void binder_alloc_set_vma(struct binder_alloc *alloc, struct vm_area_struct *vma) { - if (vma) - alloc->vma_vm_mm = vma->vm_mm; + unsigned long vm_start = 0; + /* - * If we see alloc->vma is not NULL, buffer data structures set up - * completely. Look at smp_rmb side binder_alloc_get_vma. - * We also want to guarantee new alloc->vma_vm_mm is always visible - * if alloc->vma is set. + * Allow clearing the vma with holding just the read lock to allow + * munmapping downgrade of the write lock before freeing and closing the + * file using binder_alloc_vma_close(). */ - smp_wmb(); - alloc->vma = vma; + if (vma) { + vm_start = vma->vm_start; + mmap_assert_write_locked(alloc->vma_vm_mm); + } else { + mmap_assert_locked(alloc->vma_vm_mm); + } + + alloc->vma_addr = vm_start; } static inline struct vm_area_struct *binder_alloc_get_vma( @@ -330,11 +334,9 @@ { struct vm_area_struct *vma = NULL; - if (alloc->vma) { - /* Look at description in binder_alloc_set_vma */ - smp_rmb(); - vma = alloc->vma; - } + if (alloc->vma_addr) + vma = vma_lookup(alloc->vma_vm_mm, alloc->vma_addr); + return vma; } @@ -398,12 +400,15 @@ size_t size, data_offsets_size; int ret; + mmap_read_lock(alloc->vma_vm_mm); if (!binder_alloc_get_vma(alloc)) { + mmap_read_unlock(alloc->vma_vm_mm); binder_alloc_debug(BINDER_DEBUG_USER_ERROR, "%d: binder_alloc_buf, no vma\n", alloc->pid); return ERR_PTR(-ESRCH); } + mmap_read_unlock(alloc->vma_vm_mm); data_offsets_size = ALIGN(data_size, sizeof(void *)) + ALIGN(offsets_size, sizeof(void *)); @@ -754,6 +759,12 @@ const char *failure_string; struct binder_buffer *buffer; + if (unlikely(vma->vm_mm != alloc->vma_vm_mm)) { + ret = -EINVAL; + failure_string = "invalid vma->vm_mm"; + goto err_invalid_mm; + } + mutex_lock(&binder_alloc_mmap_lock); if (alloc->buffer_size) { ret = -EBUSY; @@ -788,7 +799,6 @@ binder_insert_free_buffer(alloc, buffer); alloc->free_async_space = alloc->buffer_size / 2; binder_alloc_set_vma(alloc, vma); - mmgrab(alloc->vma_vm_mm); return 0; @@ -801,6 +811,7 @@ alloc->buffer_size = 0; err_already_mapped: mutex_unlock(&binder_alloc_mmap_lock); +err_invalid_mm: binder_alloc_debug(BINDER_DEBUG_USER_ERROR, "%s: %d %lx-%lx %s failed %d\n", __func__, alloc->pid, vma->vm_start, vma->vm_end, @@ -817,7 +828,8 @@ buffers = 0; mutex_lock(&alloc->mutex); - BUG_ON(alloc->vma); + BUG_ON(alloc->vma_addr && + vma_lookup(alloc->vma_vm_mm, alloc->vma_addr)); while ((n = rb_first(&alloc->allocated_buffers))) { buffer = rb_entry(n, struct binder_buffer, rb_node); @@ -924,17 +936,25 @@ * 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++; - } + + mmap_read_lock(alloc->vma_vm_mm); + if (binder_alloc_get_vma(alloc) == NULL) { + mmap_read_unlock(alloc->vma_vm_mm); + goto uninitialized; + } + + mmap_read_unlock(alloc->vma_vm_mm); + 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++; } + +uninitialized: mutex_unlock(&alloc->mutex); seq_printf(m, " pages: %d:%d:%d\n", active, lru, free); seq_printf(m, " pages high watermark: %zu\n", alloc->pages_high); @@ -1075,6 +1095,8 @@ void binder_alloc_init(struct binder_alloc *alloc) { alloc->pid = current->group_leader->pid; + alloc->vma_vm_mm = current->mm; + mmgrab(alloc->vma_vm_mm); mutex_init(&alloc->mutex); INIT_LIST_HEAD(&alloc->buffers); } --- linux-5.19.0.orig/drivers/android/binder_alloc.h +++ linux-5.19.0/drivers/android/binder_alloc.h @@ -6,6 +6,7 @@ #ifndef _LINUX_BINDER_ALLOC_H #define _LINUX_BINDER_ALLOC_H +#include #include #include #include @@ -100,7 +101,7 @@ */ struct binder_alloc { struct mutex mutex; - struct vm_area_struct *vma; + unsigned long vma_addr; struct mm_struct *vma_vm_mm; void __user *buffer; struct list_head buffers; @@ -115,7 +116,7 @@ bool oneway_spam_detected; }; -#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-5.19.0.orig/drivers/android/binder_alloc_selftest.c +++ linux-5.19.0/drivers/android/binder_alloc_selftest.c @@ -287,7 +287,7 @@ if (!binder_selftest_run) return; mutex_lock(&binder_selftest_lock); - if (!binder_selftest_run || !alloc->vma) + if (!binder_selftest_run || !alloc->vma_addr) goto done; pr_info("STARTED\n"); binder_selftest_alloc_offset(alloc, end_offset, 0); --- linux-5.19.0.orig/drivers/android/binder_internal.h +++ linux-5.19.0/drivers/android/binder_internal.h @@ -5,6 +5,7 @@ #include #include +#include #include #include #include @@ -77,7 +78,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, @@ -98,7 +99,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) @@ -107,41 +108,19 @@ } #endif -int binder_stats_show(struct seq_file *m, void *unused); -DEFINE_SHOW_ATTRIBUTE(binder_stats); - -int binder_state_show(struct seq_file *m, void *unused); -DEFINE_SHOW_ATTRIBUTE(binder_state); - -int binder_transactions_show(struct seq_file *m, void *unused); -DEFINE_SHOW_ATTRIBUTE(binder_transactions); +struct binder_debugfs_entry { + const char *name; + umode_t mode; + const struct file_operations *fops; + void *data; +}; -int binder_transaction_log_show(struct seq_file *m, void *unused); -DEFINE_SHOW_ATTRIBUTE(binder_transaction_log); +extern const struct binder_debugfs_entry binder_debugfs_entries[]; -struct binder_transaction_log_entry { - int debug_id; - int debug_id_done; - int call_type; - int from_proc; - int from_thread; - int target_handle; - int to_proc; - int to_thread; - int to_node; - int data_size; - int offsets_size; - int return_error_line; - uint32_t return_error; - uint32_t return_error_param; - char context_name[BINDERFS_MAX_NAME + 1]; -}; - -struct binder_transaction_log { - atomic_t cur; - bool full; - struct binder_transaction_log_entry entry[32]; -}; +#define binder_for_each_debugfs_entry(entry) \ + for ((entry) = binder_debugfs_entries; \ + (entry)->name; \ + (entry)++) enum binder_stat_types { BINDER_STAT_PROC, @@ -550,6 +529,7 @@ long saved_priority; kuid_t sender_euid; struct list_head fd_fixups; + int security_interface; binder_uintptr_t security_ctx; /** * @lock: protects @from, @to_proc, and @to_thread @@ -580,6 +560,4 @@ }; }; -extern struct binder_transaction_log binder_transaction_log; -extern struct binder_transaction_log binder_transaction_log_failed; #endif /* _LINUX_BINDER_INTERNAL_H */ --- linux-5.19.0.orig/drivers/android/binderfs.c +++ linux-5.19.0/drivers/android/binderfs.c @@ -123,7 +123,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 @@ -412,7 +412,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 @@ -629,6 +629,7 @@ static int init_binder_logs(struct super_block *sb) { struct dentry *binder_logs_root_dir, *dentry, *proc_log_dir; + const struct binder_debugfs_entry *db_entry; struct binderfs_info *info; int ret = 0; @@ -639,43 +640,15 @@ goto out; } - dentry = binderfs_create_file(binder_logs_root_dir, "stats", - &binder_stats_fops, NULL); - if (IS_ERR(dentry)) { - ret = PTR_ERR(dentry); - goto out; - } - - dentry = binderfs_create_file(binder_logs_root_dir, "state", - &binder_state_fops, NULL); - if (IS_ERR(dentry)) { - ret = PTR_ERR(dentry); - goto out; - } - - dentry = binderfs_create_file(binder_logs_root_dir, "transactions", - &binder_transactions_fops, NULL); - if (IS_ERR(dentry)) { - ret = PTR_ERR(dentry); - goto out; - } - - dentry = binderfs_create_file(binder_logs_root_dir, - "transaction_log", - &binder_transaction_log_fops, - &binder_transaction_log); - if (IS_ERR(dentry)) { - ret = PTR_ERR(dentry); - goto out; - } - - dentry = binderfs_create_file(binder_logs_root_dir, - "failed_transaction_log", - &binder_transaction_log_fops, - &binder_transaction_log_failed); - if (IS_ERR(dentry)) { - ret = PTR_ERR(dentry); - goto out; + binder_for_each_debugfs_entry(db_entry) { + dentry = binderfs_create_file(binder_logs_root_dir, + db_entry->name, + db_entry->fops, + db_entry->data); + if (IS_ERR(dentry)) { + ret = PTR_ERR(dentry); + goto out; + } } proc_log_dir = binderfs_create_dir(binder_logs_root_dir, "proc"); @@ -725,7 +698,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); info->root_gid = make_kgid(sb->s_user_ns, 0); if (!gid_valid(info->root_gid)) --- linux-5.19.0.orig/drivers/ata/ahci.h +++ linux-5.19.0/drivers/ata/ahci.h @@ -252,7 +252,7 @@ PCS_7 = 0x94, /* 7+ port PCS (Denverton) */ /* em constants */ - EM_MAX_SLOTS = 8, + EM_MAX_SLOTS = SATA_PMP_MAX_PORTS, EM_MAX_RETRY = 5, /* em_ctl bits */ --- linux-5.19.0.orig/drivers/ata/ahci_imx.c +++ linux-5.19.0/drivers/ata/ahci_imx.c @@ -1230,4 +1230,4 @@ MODULE_DESCRIPTION("Freescale i.MX AHCI SATA platform driver"); MODULE_AUTHOR("Richard Zhu "); MODULE_LICENSE("GPL"); -MODULE_ALIAS("ahci:imx"); +MODULE_ALIAS("platform:" DRV_NAME); --- linux-5.19.0.orig/drivers/ata/libahci_platform.c +++ linux-5.19.0/drivers/ata/libahci_platform.c @@ -451,14 +451,24 @@ } } - hpriv->nports = child_nodes = of_get_child_count(dev->of_node); + /* + * Too many sub-nodes most likely means having something wrong with + * the firmware. + */ + child_nodes = of_get_child_count(dev->of_node); + if (child_nodes > AHCI_MAX_PORTS) { + rc = -EINVAL; + goto err_out; + } /* * If no sub-node was found, we still need to set nports to * one in order to be able to use the * ahci_platform_[en|dis]able_[phys|regulators] functions. */ - if (!child_nodes) + if (child_nodes) + hpriv->nports = child_nodes; + else hpriv->nports = 1; hpriv->phys = devm_kcalloc(dev, hpriv->nports, sizeof(*hpriv->phys), GFP_KERNEL); --- linux-5.19.0.orig/drivers/ata/libata-core.c +++ linux-5.19.0/drivers/ata/libata-core.c @@ -3988,6 +3988,10 @@ { "PIONEER DVD-RW DVR-212D", NULL, ATA_HORKAGE_NOSETXFER }, { "PIONEER DVD-RW DVR-216D", NULL, ATA_HORKAGE_NOSETXFER }, + /* These specific Pioneer models have LPM issues */ + { "PIONEER BD-RW BDR-207M", NULL, ATA_HORKAGE_NOLPM }, + { "PIONEER BD-RW BDR-205", NULL, ATA_HORKAGE_NOLPM }, + /* Crucial BX100 SSD 500GB has broken LPM support */ { "CT500BX100SSD1", NULL, ATA_HORKAGE_NOLPM }, --- linux-5.19.0.orig/drivers/ata/libata-eh.c +++ linux-5.19.0/drivers/ata/libata-eh.c @@ -2122,6 +2122,7 @@ { ATA_CMD_WRITE_QUEUED_FUA_EXT, "WRITE DMA QUEUED FUA EXT" }, { ATA_CMD_FPDMA_READ, "READ FPDMA QUEUED" }, { ATA_CMD_FPDMA_WRITE, "WRITE FPDMA QUEUED" }, + { ATA_CMD_NCQ_NON_DATA, "NCQ NON-DATA" }, { ATA_CMD_FPDMA_SEND, "SEND FPDMA QUEUED" }, { ATA_CMD_FPDMA_RECV, "RECEIVE FPDMA QUEUED" }, { ATA_CMD_PIO_READ, "READ SECTOR(S)" }, --- linux-5.19.0.orig/drivers/ata/libata-sata.c +++ linux-5.19.0/drivers/ata/libata-sata.c @@ -1392,7 +1392,8 @@ tf->hob_lbah = buf[10]; tf->nsect = buf[12]; tf->hob_nsect = buf[13]; - if (dev->class == ATA_DEV_ZAC && ata_id_has_ncq_autosense(dev->id)) + if (dev->class == ATA_DEV_ZAC && ata_id_has_ncq_autosense(dev->id) && + (tf->status & ATA_SENSE)) tf->auxiliary = buf[14] << 16 | buf[15] << 8 | buf[16]; return 0; @@ -1456,8 +1457,12 @@ memcpy(&qc->result_tf, &tf, sizeof(tf)); qc->result_tf.flags = ATA_TFLAG_ISADDR | ATA_TFLAG_LBA | ATA_TFLAG_LBA48; qc->err_mask |= AC_ERR_DEV | AC_ERR_NCQ; - if (dev->class == ATA_DEV_ZAC && - ((qc->result_tf.status & ATA_SENSE) || qc->result_tf.auxiliary)) { + + /* + * If the device supports NCQ autosense, ata_eh_read_log_10h() will have + * stored the sense data in qc->result_tf.auxiliary. + */ + if (qc->result_tf.auxiliary) { char sense_key, asc, ascq; sense_key = (qc->result_tf.auxiliary >> 16) & 0xff; --- linux-5.19.0.orig/drivers/ata/libata-scsi.c +++ linux-5.19.0/drivers/ata/libata-scsi.c @@ -3267,6 +3267,7 @@ case REPORT_LUNS: case REQUEST_SENSE: case SYNCHRONIZE_CACHE: + case SYNCHRONIZE_CACHE_16: case REZERO_UNIT: case SEEK_6: case SEEK_10: @@ -3925,6 +3926,7 @@ return ata_scsi_write_same_xlat; case SYNCHRONIZE_CACHE: + case SYNCHRONIZE_CACHE_16: if (ata_try_flush_cache(dev)) return ata_scsi_flush_xlat; break; @@ -3965,9 +3967,19 @@ int __ata_scsi_queuecmd(struct scsi_cmnd *scmd, struct ata_device *dev) { + struct ata_port *ap = dev->link->ap; u8 scsi_op = scmd->cmnd[0]; ata_xlat_func_t xlat_func; + /* + * scsi_queue_rq() will defer commands if scsi_host_in_recovery(). + * However, this check is done without holding the ap->lock (a libata + * specific lock), so we can have received an error irq since then, + * therefore we must check if EH is pending, while holding ap->lock. + */ + if (ap->pflags & (ATA_PFLAG_EH_PENDING | ATA_PFLAG_EH_IN_PROGRESS)) + return SCSI_MLQUEUE_DEVICE_BUSY; + if (unlikely(!scmd->cmd_len)) goto bad_cdb_len; @@ -4148,6 +4160,7 @@ * turning this into a no-op. */ case SYNCHRONIZE_CACHE: + case SYNCHRONIZE_CACHE_16: fallthrough; /* no-op's, complete with success */ --- linux-5.19.0.orig/drivers/ata/libata-transport.c +++ linux-5.19.0/drivers/ata/libata-transport.c @@ -301,7 +301,9 @@ pm_runtime_enable(dev); pm_runtime_forbid(dev); - transport_add_device(dev); + error = transport_add_device(dev); + if (error) + goto tport_transport_add_err; transport_configure_device(dev); error = ata_tlink_add(&ap->link); @@ -312,12 +314,12 @@ tport_link_err: transport_remove_device(dev); + tport_transport_add_err: device_del(dev); tport_err: transport_destroy_device(dev); put_device(dev); - ata_host_put(ap->host); return error; } @@ -456,7 +458,9 @@ goto tlink_err; } - transport_add_device(dev); + error = transport_add_device(dev); + if (error) + goto tlink_transport_err; transport_configure_device(dev); ata_for_each_dev(ata_dev, link, ALL) { @@ -471,6 +475,7 @@ ata_tdev_delete(ata_dev); } transport_remove_device(dev); + tlink_transport_err: device_del(dev); tlink_err: transport_destroy_device(dev); @@ -708,7 +713,13 @@ return error; } - transport_add_device(dev); + error = transport_add_device(dev); + if (error) { + device_del(dev); + ata_tdev_free(ata_dev); + return error; + } + transport_configure_device(dev); return 0; } --- linux-5.19.0.orig/drivers/ata/pata_legacy.c +++ linux-5.19.0/drivers/ata/pata_legacy.c @@ -315,9 +315,10 @@ outb(inb(0x1F4) & 0x07, 0x1F4); rt = inb(0x1F3); - rt &= 0x07 << (3 * adev->devno); + rt &= ~(0x07 << (3 * !adev->devno)); if (pio) - rt |= (1 + 3 * pio) << (3 * adev->devno); + rt |= (1 + 3 * pio) << (3 * !adev->devno); + outb(rt, 0x1F3); udelay(100); outb(inb(0x1F2) | 0x01, 0x1F2); --- linux-5.19.0.orig/drivers/ata/pata_palmld.c +++ linux-5.19.0/drivers/ata/pata_palmld.c @@ -63,8 +63,8 @@ /* remap drive's physical memory address */ mem = devm_platform_ioremap_resource(pdev, 0); - if (!mem) - return -ENOMEM; + if (IS_ERR(mem)) + return PTR_ERR(mem); /* request and activate power and reset GPIOs */ lda->power = devm_gpiod_get(dev, "power", GPIOD_OUT_HIGH); --- linux-5.19.0.orig/drivers/ata/sata_mv.c +++ linux-5.19.0/drivers/ata/sata_mv.c @@ -4057,7 +4057,7 @@ /* * Simple resource validation .. */ - if (unlikely(pdev->num_resources != 2)) { + if (unlikely(pdev->num_resources != 1)) { dev_err(&pdev->dev, "invalid number of resources\n"); return -EINVAL; } --- linux-5.19.0.orig/drivers/atm/idt77252.c +++ linux-5.19.0/drivers/atm/idt77252.c @@ -3752,6 +3752,7 @@ card = idt77252_chain; dev = card->atmdev; idt77252_chain = card->next; + del_timer_sync(&card->tst_timer); if (dev->phy->stop) dev->phy->stop(dev); --- linux-5.19.0.orig/drivers/base/arch_topology.c +++ linux-5.19.0/drivers/base/arch_topology.c @@ -791,4 +791,23 @@ else if (of_have_populated_dt() && parse_dt_topology()) reset_cpu_topology(); } + +void store_cpu_topology(unsigned int cpuid) +{ + struct cpu_topology *cpuid_topo = &cpu_topology[cpuid]; + + if (cpuid_topo->package_id != -1) + goto topology_populated; + + cpuid_topo->thread_id = -1; + cpuid_topo->core_id = cpuid; + cpuid_topo->package_id = cpu_to_node(cpuid); + + pr_debug("CPU%u: package %d core %d thread %d\n", + cpuid, cpuid_topo->package_id, cpuid_topo->core_id, + cpuid_topo->thread_id); + +topology_populated: + update_siblings_masks(cpuid); +} #endif --- linux-5.19.0.orig/drivers/base/class.c +++ linux-5.19.0/drivers/base/class.c @@ -192,6 +192,11 @@ } error = class_add_groups(class_get(cls), cls->class_groups); class_put(cls); + if (error) { + kobject_del(&cp->subsys.kobj); + kfree_const(cp->subsys.kobj.name); + kfree(cp); + } return error; } EXPORT_SYMBOL_GPL(__class_register); --- linux-5.19.0.orig/drivers/base/dd.c +++ linux-5.19.0/drivers/base/dd.c @@ -897,6 +897,11 @@ dev_dbg(dev, "Device match requests probe deferral\n"); dev->can_match = true; driver_deferred_probe_add(dev); + /* + * Device can't match with a driver right now, so don't attempt + * to match or bind with other drivers on the bus. + */ + return ret; } else if (ret < 0) { dev_dbg(dev, "Bus failed to match device: %d\n", ret); return ret; @@ -1115,6 +1120,7 @@ static int __driver_attach(struct device *dev, void *data) { struct device_driver *drv = data; + bool async = false; int ret; /* @@ -1135,6 +1141,11 @@ dev_dbg(dev, "Device match requests probe deferral\n"); dev->can_match = true; driver_deferred_probe_add(dev); + /* + * Driver could not match with device, but may match with + * another device on the bus. + */ + return 0; } else if (ret < 0) { dev_dbg(dev, "Bus failed to match device: %d\n", ret); return ret; @@ -1153,9 +1164,11 @@ if (!dev->driver && !dev->p->async_driver) { get_device(dev); dev->p->async_driver = drv; - async_schedule_dev(__driver_attach_async_helper, dev); + async = true; } device_unlock(dev); + if (async) + async_schedule_dev(__driver_attach_async_helper, dev); return 0; } --- linux-5.19.0.orig/drivers/base/driver.c +++ linux-5.19.0/drivers/base/driver.c @@ -63,6 +63,12 @@ if (len >= (PAGE_SIZE - 1)) return -EINVAL; + /* + * Compute the real length of the string in case userspace sends us a + * bunch of \0 characters like python likes to do. + */ + len = strlen(s); + if (!len) { /* Empty string passed - clear override */ device_lock(dev); --- linux-5.19.0.orig/drivers/base/firmware_loader/sysfs.c +++ linux-5.19.0/drivers/base/firmware_loader/sysfs.c @@ -93,10 +93,9 @@ { struct fw_sysfs *fw_sysfs = to_fw_sysfs(dev); - if (fw_sysfs->fw_upload_priv) { - free_fw_priv(fw_sysfs->fw_priv); - kfree(fw_sysfs->fw_upload_priv); - } + if (fw_sysfs->fw_upload_priv) + fw_upload_free(fw_sysfs); + kfree(fw_sysfs); } --- linux-5.19.0.orig/drivers/base/firmware_loader/sysfs.h +++ linux-5.19.0/drivers/base/firmware_loader/sysfs.h @@ -106,12 +106,17 @@ extern struct device_attribute dev_attr_remaining_size; int fw_upload_start(struct fw_sysfs *fw_sysfs); +void fw_upload_free(struct fw_sysfs *fw_sysfs); umode_t fw_upload_is_visible(struct kobject *kobj, struct attribute *attr, int n); #else static inline int fw_upload_start(struct fw_sysfs *fw_sysfs) { return 0; } + +static inline void fw_upload_free(struct fw_sysfs *fw_sysfs) +{ +} #endif #endif /* __FIRMWARE_SYSFS_H */ --- linux-5.19.0.orig/drivers/base/firmware_loader/sysfs_upload.c +++ linux-5.19.0/drivers/base/firmware_loader/sysfs_upload.c @@ -264,6 +264,15 @@ return 0; } +void fw_upload_free(struct fw_sysfs *fw_sysfs) +{ + struct fw_upload_priv *fw_upload_priv = fw_sysfs->fw_upload_priv; + + free_fw_priv(fw_sysfs->fw_priv); + kfree(fw_upload_priv->fw_upload); + kfree(fw_upload_priv); +} + /** * firmware_upload_register() - register for the firmware upload sysfs API * @module: kernel module of this device @@ -377,6 +386,7 @@ { struct fw_sysfs *fw_sysfs = fw_upload->priv; struct fw_upload_priv *fw_upload_priv = fw_sysfs->fw_upload_priv; + struct module *module = fw_upload_priv->module; mutex_lock(&fw_upload_priv->lock); if (fw_upload_priv->progress == FW_UPLOAD_PROG_IDLE) { @@ -392,6 +402,6 @@ unregister: device_unregister(&fw_sysfs->dev); - module_put(fw_upload_priv->module); + module_put(module); } EXPORT_SYMBOL_GPL(firmware_upload_unregister); --- linux-5.19.0.orig/drivers/base/node.c +++ linux-5.19.0/drivers/base/node.c @@ -45,7 +45,7 @@ return n; } -static BIN_ATTR_RO(cpumap, 0); +static BIN_ATTR_RO(cpumap, CPUMAP_FILE_MAX_BYTES); static inline ssize_t cpulist_read(struct file *file, struct kobject *kobj, struct bin_attribute *attr, char *buf, @@ -66,7 +66,7 @@ return n; } -static BIN_ATTR_RO(cpulist, 0); +static BIN_ATTR_RO(cpulist, CPULIST_FILE_MAX_BYTES); /** * struct node_access_nodes - Access class device to hold user visible --- linux-5.19.0.orig/drivers/base/power/domain.c +++ linux-5.19.0/drivers/base/power/domain.c @@ -222,6 +222,9 @@ { struct dentry *d; + if (!genpd_debugfs_dir) + return; + d = debugfs_lookup(genpd->name, genpd_debugfs_dir); debugfs_remove(d); } @@ -2947,6 +2950,10 @@ np = it.node; if (!of_match_node(idle_state_match, np)) continue; + + if (!of_device_is_available(np)) + continue; + if (states) { ret = genpd_parse_state(&states[i], np); if (ret) { --- linux-5.19.0.orig/drivers/base/power/runtime.c +++ linux-5.19.0/drivers/base/power/runtime.c @@ -484,7 +484,17 @@ dev->power.idle_notification = true; - retval = __rpm_callback(callback, dev); + if (dev->power.irq_safe) + spin_unlock(&dev->power.lock); + else + spin_unlock_irq(&dev->power.lock); + + retval = callback(dev); + + if (dev->power.irq_safe) + spin_lock(&dev->power.lock); + else + spin_lock_irq(&dev->power.lock); dev->power.idle_notification = false; wake_up_all(&dev->power.wait_queue); --- linux-5.19.0.orig/drivers/base/regmap/regmap-spi.c +++ linux-5.19.0/drivers/base/regmap/regmap-spi.c @@ -113,6 +113,7 @@ const struct regmap_config *config) { size_t max_size = spi_max_transfer_size(spi); + size_t max_msg_size, reg_reserve_size; struct regmap_bus *bus; if (max_size != SIZE_MAX) { @@ -120,9 +121,16 @@ if (!bus) return ERR_PTR(-ENOMEM); + max_msg_size = spi_max_message_size(spi); + reg_reserve_size = config->reg_bits / BITS_PER_BYTE + + config->pad_bits / BITS_PER_BYTE; + if (max_size + reg_reserve_size > max_msg_size) + max_size -= reg_reserve_size; + bus->free_on_exit = true; bus->max_raw_read = max_size; bus->max_raw_write = max_size; + return bus; } --- linux-5.19.0.orig/drivers/base/topology.c +++ linux-5.19.0/drivers/base/topology.c @@ -62,47 +62,47 @@ static DEVICE_ATTR_ADMIN_RO(ppin); define_siblings_read_func(thread_siblings, sibling_cpumask); -static BIN_ATTR_RO(thread_siblings, 0); -static BIN_ATTR_RO(thread_siblings_list, 0); +static BIN_ATTR_RO(thread_siblings, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(thread_siblings_list, CPULIST_FILE_MAX_BYTES); define_siblings_read_func(core_cpus, sibling_cpumask); -static BIN_ATTR_RO(core_cpus, 0); -static BIN_ATTR_RO(core_cpus_list, 0); +static BIN_ATTR_RO(core_cpus, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(core_cpus_list, CPULIST_FILE_MAX_BYTES); define_siblings_read_func(core_siblings, core_cpumask); -static BIN_ATTR_RO(core_siblings, 0); -static BIN_ATTR_RO(core_siblings_list, 0); +static BIN_ATTR_RO(core_siblings, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(core_siblings_list, CPULIST_FILE_MAX_BYTES); #ifdef TOPOLOGY_CLUSTER_SYSFS define_siblings_read_func(cluster_cpus, cluster_cpumask); -static BIN_ATTR_RO(cluster_cpus, 0); -static BIN_ATTR_RO(cluster_cpus_list, 0); +static BIN_ATTR_RO(cluster_cpus, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(cluster_cpus_list, CPULIST_FILE_MAX_BYTES); #endif #ifdef TOPOLOGY_DIE_SYSFS define_siblings_read_func(die_cpus, die_cpumask); -static BIN_ATTR_RO(die_cpus, 0); -static BIN_ATTR_RO(die_cpus_list, 0); +static BIN_ATTR_RO(die_cpus, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(die_cpus_list, CPULIST_FILE_MAX_BYTES); #endif define_siblings_read_func(package_cpus, core_cpumask); -static BIN_ATTR_RO(package_cpus, 0); -static BIN_ATTR_RO(package_cpus_list, 0); +static BIN_ATTR_RO(package_cpus, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(package_cpus_list, CPULIST_FILE_MAX_BYTES); #ifdef TOPOLOGY_BOOK_SYSFS define_id_show_func(book_id, "%d"); static DEVICE_ATTR_RO(book_id); define_siblings_read_func(book_siblings, book_cpumask); -static BIN_ATTR_RO(book_siblings, 0); -static BIN_ATTR_RO(book_siblings_list, 0); +static BIN_ATTR_RO(book_siblings, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(book_siblings_list, CPULIST_FILE_MAX_BYTES); #endif #ifdef TOPOLOGY_DRAWER_SYSFS define_id_show_func(drawer_id, "%d"); static DEVICE_ATTR_RO(drawer_id); define_siblings_read_func(drawer_siblings, drawer_cpumask); -static BIN_ATTR_RO(drawer_siblings, 0); -static BIN_ATTR_RO(drawer_siblings_list, 0); +static BIN_ATTR_RO(drawer_siblings, CPUMAP_FILE_MAX_BYTES); +static BIN_ATTR_RO(drawer_siblings_list, CPULIST_FILE_MAX_BYTES); #endif static struct bin_attribute *bin_attrs[] = { --- linux-5.19.0.orig/drivers/block/ataflop.c +++ linux-5.19.0/drivers/block/ataflop.c @@ -2045,7 +2045,6 @@ if (!unit[i].disk[type]) continue; del_gendisk(unit[i].disk[type]); - blk_cleanup_queue(unit[i].disk[type]->queue); put_disk(unit[i].disk[type]); } blk_mq_free_tag_set(&unit[i].tag_set); --- linux-5.19.0.orig/drivers/block/drbd/drbd_main.c +++ linux-5.19.0/drivers/block/drbd/drbd_main.c @@ -2217,7 +2217,8 @@ kref_put(&peer_device->connection->kref, drbd_destroy_connection); kfree(peer_device); } - memset(device, 0xfd, sizeof(*device)); + if (device->submit.wq) + destroy_workqueue(device->submit.wq); kfree(device); kref_put(&resource->kref, drbd_destroy_resource); } @@ -2309,7 +2310,6 @@ idr_destroy(&resource->devices); free_cpumask_var(resource->cpu_mask); kfree(resource->name); - memset(resource, 0xf2, sizeof(*resource)); kfree(resource); } @@ -2650,7 +2650,6 @@ drbd_free_socket(&connection->data); kfree(connection->int_dig_in); kfree(connection->int_dig_vv); - memset(connection, 0xfc, sizeof(*connection)); kfree(connection); kref_put(&resource->kref, drbd_destroy_resource); } @@ -2672,7 +2671,7 @@ enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsigned int minor) { struct drbd_resource *resource = adm_ctx->resource; - struct drbd_connection *connection; + struct drbd_connection *connection, *n; struct drbd_device *device; struct drbd_peer_device *peer_device, *tmp_peer_device; struct gendisk *disk; @@ -2774,7 +2773,7 @@ err = add_disk(disk); if (err) - goto out_idr_remove_from_resource; + goto out_destroy_workqueue; /* inherit the connection state */ device->state.conn = first_connection(resource)->cstate; @@ -2788,8 +2787,10 @@ drbd_debugfs_device_add(device); return NO_ERROR; +out_destroy_workqueue: + destroy_workqueue(device->submit.wq); out_idr_remove_from_resource: - for_each_connection(connection, resource) { + for_each_connection_safe(connection, n, resource) { peer_device = idr_remove(&connection->peer_devices, vnr); if (peer_device) kref_put(&connection->kref, drbd_destroy_connection); --- linux-5.19.0.orig/drivers/block/drbd/drbd_nl.c +++ linux-5.19.0/drivers/block/drbd/drbd_nl.c @@ -1210,6 +1210,7 @@ struct drbd_connection *connection = first_peer_device(device)->connection; struct request_queue *q = device->rq_queue; + unsigned int max_discard_sectors; if (bdev && !bdev_max_discard_sectors(bdev->backing_bdev)) goto not_supported; @@ -1230,15 +1231,14 @@ * topology on all peers. */ blk_queue_discard_granularity(q, 512); - q->limits.max_discard_sectors = drbd_max_discard_sectors(connection); - q->limits.max_write_zeroes_sectors = - drbd_max_discard_sectors(connection); + max_discard_sectors = drbd_max_discard_sectors(connection); + blk_queue_max_discard_sectors(q, max_discard_sectors); + blk_queue_max_write_zeroes_sectors(q, max_discard_sectors); return; not_supported: blk_queue_discard_granularity(q, 0); - q->limits.max_discard_sectors = 0; - q->limits.max_write_zeroes_sectors = 0; + blk_queue_max_discard_sectors(q, 0); } static void fixup_write_zeroes(struct drbd_device *device, struct request_queue *q) --- linux-5.19.0.orig/drivers/block/drbd/drbd_req.c +++ linux-5.19.0/drivers/block/drbd/drbd_req.c @@ -30,11 +30,6 @@ return NULL; memset(req, 0, sizeof(*req)); - req->private_bio = bio_alloc_clone(device->ldev->backing_bdev, bio_src, - GFP_NOIO, &drbd_io_bio_set); - req->private_bio->bi_private = req; - req->private_bio->bi_end_io = drbd_request_endio; - req->rq_state = (bio_data_dir(bio_src) == WRITE ? RQ_WRITE : 0) | (bio_op(bio_src) == REQ_OP_WRITE_ZEROES ? RQ_ZEROES : 0) | (bio_op(bio_src) == REQ_OP_DISCARD ? RQ_UNMAP : 0); @@ -1221,9 +1216,12 @@ /* Update disk stats */ req->start_jif = bio_start_io_acct(req->master_bio); - if (!get_ldev(device)) { - bio_put(req->private_bio); - req->private_bio = NULL; + if (get_ldev(device)) { + req->private_bio = bio_alloc_clone(device->ldev->backing_bdev, + bio, GFP_NOIO, + &drbd_io_bio_set); + req->private_bio->bi_private = req; + req->private_bio->bi_end_io = drbd_request_endio; } /* process discards always from our submitter thread */ --- linux-5.19.0.orig/drivers/block/floppy.c +++ linux-5.19.0/drivers/block/floppy.c @@ -4593,8 +4593,10 @@ goto out_put_disk; err = floppy_alloc_disk(drive, 0); - if (err) + if (err) { + blk_mq_free_tag_set(&tag_sets[drive]); goto out_put_disk; + } timer_setup(&motor_off_timer[drive], motor_off_callback, 0); } --- linux-5.19.0.orig/drivers/block/loop.c +++ linux-5.19.0/drivers/block/loop.c @@ -979,6 +979,11 @@ lo->lo_offset = info->lo_offset; lo->lo_sizelimit = info->lo_sizelimit; + + /* loff_t vars have been assigned __u64 */ + if (lo->lo_offset < 0 || lo->lo_sizelimit < 0) + return -EOVERFLOW; + memcpy(lo->lo_file_name, info->lo_file_name, LO_NAME_SIZE); lo->lo_file_name[LO_NAME_SIZE-1] = 0; lo->lo_flags = info->lo_flags; @@ -1768,7 +1773,16 @@ /* * And now the modules code and kernel interface. */ -static int max_loop; + +/* + * If max_loop is specified, create that many devices upfront. + * This also becomes a hard limit. If max_loop is not specified, + * create CONFIG_BLK_DEV_LOOP_MIN_COUNT loop devices at module + * init time. Loop devices can be requested on-demand with the + * /dev/loop-control interface, or be instantiated by accessing + * a 'dead' device node. + */ +static int max_loop = CONFIG_BLK_DEV_LOOP_MIN_COUNT; module_param(max_loop, int, 0444); MODULE_PARM_DESC(max_loop, "Maximum number of loop devices"); module_param(max_part, int, 0444); @@ -2057,7 +2071,6 @@ { /* Make this loop device unreachable from pathname. */ del_gendisk(lo->lo_disk); - blk_cleanup_queue(lo->lo_disk->queue); blk_mq_free_tag_set(&lo->tag_set); mutex_lock(&loop_ctl_mutex); @@ -2177,7 +2190,7 @@ static int __init loop_init(void) { - int i, nr; + int i; int err; part_shift = 0; @@ -2205,19 +2218,6 @@ goto err_out; } - /* - * If max_loop is specified, create that many devices upfront. - * This also becomes a hard limit. If max_loop is not specified, - * create CONFIG_BLK_DEV_LOOP_MIN_COUNT loop devices at module - * init time. Loop devices can be requested on-demand with the - * /dev/loop-control interface, or be instantiated by accessing - * a 'dead' device node. - */ - if (max_loop) - nr = max_loop; - else - nr = CONFIG_BLK_DEV_LOOP_MIN_COUNT; - err = misc_register(&loop_misc); if (err < 0) goto err_out; @@ -2229,7 +2229,7 @@ } /* pre-create number of devices given by config or max_loop */ - for (i = 0; i < nr; i++) + for (i = 0; i < max_loop; i++) loop_add(i); printk(KERN_INFO "loop: module loaded\n"); --- linux-5.19.0.orig/drivers/block/mtip32xx/mtip32xx.c +++ linux-5.19.0/drivers/block/mtip32xx/mtip32xx.c @@ -146,11 +146,8 @@ pci_read_config_word(dd->pdev, 0x00, &vendor_id); if (vendor_id == 0xFFFF) { dd->sr = true; - if (dd->queue) - blk_queue_flag_set(QUEUE_FLAG_DEAD, dd->queue); - else - dev_warn(&dd->pdev->dev, - "%s: dd->queue is NULL\n", __func__); + if (dd->disk) + blk_mark_disk_dead(dd->disk); return true; /* device removed */ } @@ -3297,26 +3294,12 @@ return 0; } -static int mtip_block_open(struct block_device *dev, fmode_t mode) +static void mtip_block_free_disk(struct gendisk *disk) { - struct driver_data *dd; - - if (dev && dev->bd_disk) { - dd = (struct driver_data *) dev->bd_disk->private_data; - - if (dd) { - if (test_bit(MTIP_DDF_REMOVAL_BIT, - &dd->dd_flag)) { - return -ENODEV; - } - return 0; - } - } - return -ENODEV; -} + struct driver_data *dd = disk->private_data; -static void mtip_block_release(struct gendisk *disk, fmode_t mode) -{ + ida_free(&rssd_index_ida, dd->index); + kfree(dd); } /* @@ -3326,13 +3309,12 @@ * layer. */ static const struct block_device_operations mtip_block_ops = { - .open = mtip_block_open, - .release = mtip_block_release, .ioctl = mtip_block_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = mtip_block_compat_ioctl, #endif .getgeo = mtip_block_getgeo, + .free_disk = mtip_block_free_disk, .owner = THIS_MODULE }; @@ -3673,72 +3655,6 @@ return rv; } -static bool mtip_no_dev_cleanup(struct request *rq, void *data, bool reserv) -{ - struct mtip_cmd *cmd = blk_mq_rq_to_pdu(rq); - - cmd->status = BLK_STS_IOERR; - blk_mq_complete_request(rq); - return true; -} - -/* - * Block layer deinitialization function. - * - * Called by the PCI layer as each P320 device is removed. - * - * @dd Pointer to the driver data structure. - * - * return value - * 0 - */ -static int mtip_block_remove(struct driver_data *dd) -{ - mtip_hw_debugfs_exit(dd); - - if (dd->mtip_svc_handler) { - set_bit(MTIP_PF_SVC_THD_STOP_BIT, &dd->port->flags); - wake_up_interruptible(&dd->port->svc_wait); - kthread_stop(dd->mtip_svc_handler); - } - - if (!dd->sr) { - /* - * Explicitly wait here for IOs to quiesce, - * as mtip_standby_drive usually won't wait for IOs. - */ - if (!mtip_quiesce_io(dd->port, MTIP_QUIESCE_IO_TIMEOUT_MS)) - mtip_standby_drive(dd); - } - else - dev_info(&dd->pdev->dev, "device %s surprise removal\n", - dd->disk->disk_name); - - blk_freeze_queue_start(dd->queue); - blk_mq_quiesce_queue(dd->queue); - blk_mq_tagset_busy_iter(&dd->tags, mtip_no_dev_cleanup, dd); - blk_mq_unquiesce_queue(dd->queue); - - if (dd->disk) { - if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) - del_gendisk(dd->disk); - if (dd->disk->queue) { - blk_cleanup_queue(dd->queue); - blk_mq_free_tag_set(&dd->tags); - dd->queue = NULL; - } - put_disk(dd->disk); - } - dd->disk = NULL; - - ida_free(&rssd_index_ida, dd->index); - - /* De-initialize the protocol layer. */ - mtip_hw_exit(dd); - - return 0; -} - /* * Function called by the PCI layer when just before the * machine shuts down. @@ -3755,23 +3671,14 @@ { mtip_hw_shutdown(dd); - /* Delete our gendisk structure, and cleanup the blk queue. */ - if (dd->disk) { - dev_info(&dd->pdev->dev, - "Shutting down %s ...\n", dd->disk->disk_name); + dev_info(&dd->pdev->dev, + "Shutting down %s ...\n", dd->disk->disk_name); - if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) - del_gendisk(dd->disk); - if (dd->disk->queue) { - blk_cleanup_queue(dd->queue); - blk_mq_free_tag_set(&dd->tags); - } - put_disk(dd->disk); - dd->disk = NULL; - dd->queue = NULL; - } + if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) + del_gendisk(dd->disk); - ida_free(&rssd_index_ida, dd->index); + blk_mq_free_tag_set(&dd->tags); + put_disk(dd->disk); return 0; } @@ -4087,8 +3994,6 @@ struct driver_data *dd = pci_get_drvdata(pdev); unsigned long flags, to; - set_bit(MTIP_DDF_REMOVAL_BIT, &dd->dd_flag); - spin_lock_irqsave(&dev_lock, flags); list_del_init(&dd->online_list); list_add(&dd->remove_list, &removing_list); @@ -4109,11 +4014,35 @@ "Completion workers still active!\n"); } - blk_mark_disk_dead(dd->disk); set_bit(MTIP_DDF_REMOVE_PENDING_BIT, &dd->dd_flag); - /* Clean up the block layer. */ - mtip_block_remove(dd); + if (test_bit(MTIP_DDF_INIT_DONE_BIT, &dd->dd_flag)) + del_gendisk(dd->disk); + + mtip_hw_debugfs_exit(dd); + + if (dd->mtip_svc_handler) { + set_bit(MTIP_PF_SVC_THD_STOP_BIT, &dd->port->flags); + wake_up_interruptible(&dd->port->svc_wait); + kthread_stop(dd->mtip_svc_handler); + } + + if (!dd->sr) { + /* + * Explicitly wait here for IOs to quiesce, + * as mtip_standby_drive usually won't wait for IOs. + */ + if (!mtip_quiesce_io(dd->port, MTIP_QUIESCE_IO_TIMEOUT_MS)) + mtip_standby_drive(dd); + } + else + dev_info(&dd->pdev->dev, "device %s surprise removal\n", + dd->disk->disk_name); + + blk_mq_free_tag_set(&dd->tags); + + /* De-initialize the protocol layer. */ + mtip_hw_exit(dd); if (dd->isr_workq) { destroy_workqueue(dd->isr_workq); @@ -4128,10 +4057,10 @@ list_del_init(&dd->remove_list); spin_unlock_irqrestore(&dev_lock, flags); - kfree(dd); - pcim_iounmap_regions(pdev, 1 << MTIP_ABAR); pci_set_drvdata(pdev, NULL); + + put_disk(dd->disk); } /* --- linux-5.19.0.orig/drivers/block/mtip32xx/mtip32xx.h +++ linux-5.19.0/drivers/block/mtip32xx/mtip32xx.h @@ -149,7 +149,6 @@ MTIP_DDF_RESUME_BIT = 6, MTIP_DDF_INIT_DONE_BIT = 7, MTIP_DDF_REBUILD_FAILED_BIT = 8, - MTIP_DDF_REMOVAL_BIT = 9, MTIP_DDF_STOP_IO = ((1 << MTIP_DDF_REMOVE_PENDING_BIT) | (1 << MTIP_DDF_SEC_LOCK_BIT) | --- linux-5.19.0.orig/drivers/block/nbd.c +++ linux-5.19.0/drivers/block/nbd.c @@ -11,6 +11,8 @@ * (part of code stolen from loop.c) */ +#define pr_fmt(fmt) "nbd: " fmt + #include #include @@ -1412,10 +1414,12 @@ 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); + nbd_clear_que(nbd); + } + flush_workqueue(nbd->recv_workq); mutex_lock(&nbd->config_lock); nbd_bdev_reset(nbd); /* user requested, ignore socket errors */ @@ -1951,7 +1955,7 @@ test_bit(NBD_DISCONNECT_REQUESTED, &nbd->flags)) || !refcount_inc_not_zero(&nbd->refs)) { mutex_unlock(&nbd_index_mutex); - pr_err("nbd: device at index %d is going down\n", + pr_err("device at index %d is going down\n", index); return -EINVAL; } @@ -1962,7 +1966,7 @@ if (!nbd) { nbd = nbd_dev_add(index, 2); if (IS_ERR(nbd)) { - pr_err("nbd: failed to add new device\n"); + pr_err("failed to add new device\n"); return PTR_ERR(nbd); } } @@ -2391,6 +2395,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-5.19.0.orig/drivers/block/null_blk/main.c +++ linux-5.19.0/drivers/block/null_blk/main.c @@ -2043,8 +2043,13 @@ blk_queue_flag_clear(QUEUE_FLAG_ADD_RANDOM, nullb->q); mutex_lock(&lock); - nullb->index = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL); - dev->index = nullb->index; + rv = ida_simple_get(&nullb_indexes, 0, 0, GFP_KERNEL); + if (rv < 0) { + mutex_unlock(&lock); + goto out_cleanup_zone; + } + nullb->index = rv; + dev->index = rv; mutex_unlock(&lock); blk_queue_logical_block_size(nullb->q, dev->blocksize); @@ -2070,7 +2075,7 @@ rv = null_gendisk_register(nullb); if (rv) - goto out_cleanup_zone; + goto out_ida_free; mutex_lock(&lock); list_add_tail(&nullb->list, &nullb_list); @@ -2079,6 +2084,9 @@ pr_info("disk %s created\n", nullb->disk_name); return 0; + +out_ida_free: + ida_free(&nullb_indexes, nullb->index); out_cleanup_zone: null_free_zoned_dev(dev); out_cleanup_disk: --- linux-5.19.0.orig/drivers/block/rnbd/rnbd-clt.c +++ linux-5.19.0/drivers/block/rnbd/rnbd-clt.c @@ -1755,7 +1755,7 @@ list_for_each_entry_safe(dev, tn, &sess->devs_list, list) { /* * Here unmap happens in parallel for only one reason: - * blk_cleanup_queue() takes around half a second, so + * del_gendisk() takes around half a second, so * on huge amount of devices the whole module unload * procedure takes minutes. */ --- linux-5.19.0.orig/drivers/block/rnbd/rnbd-srv.c +++ linux-5.19.0/drivers/block/rnbd/rnbd-srv.c @@ -323,10 +323,11 @@ { struct rnbd_srv_session *sess = sess_dev->sess; - sess_dev->keep_id = true; /* It is already started to close by client's close message. */ if (!mutex_trylock(&sess->lock)) return; + + sess_dev->keep_id = true; /* first remove sysfs itself to avoid deadlock */ sysfs_remove_file_self(&sess_dev->kobj, &attr->attr); rnbd_srv_destroy_dev_session_sysfs(sess_dev); --- linux-5.19.0.orig/drivers/block/sx8.c +++ linux-5.19.0/drivers/block/sx8.c @@ -1536,7 +1536,7 @@ clear_bit(0, &carm_major_alloc); else if (host->major == 161) clear_bit(1, &carm_major_alloc); - blk_cleanup_queue(host->oob_q); + blk_mq_destroy_queue(host->oob_q); blk_mq_free_tag_set(&host->tag_set); err_out_dma_free: dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma); @@ -1570,7 +1570,7 @@ clear_bit(0, &carm_major_alloc); else if (host->major == 161) clear_bit(1, &carm_major_alloc); - blk_cleanup_queue(host->oob_q); + blk_mq_destroy_queue(host->oob_q); blk_mq_free_tag_set(&host->tag_set); dma_free_coherent(&pdev->dev, CARM_SHM_SIZE, host->shm, host->shm_dma); iounmap(host->mmio); --- linux-5.19.0.orig/drivers/block/virtio_blk.c +++ linux-5.19.0/drivers/block/virtio_blk.c @@ -101,6 +101,14 @@ } } +static inline struct virtio_blk_vq *get_virtio_blk_vq(struct blk_mq_hw_ctx *hctx) +{ + struct virtio_blk *vblk = hctx->queue->queuedata; + struct virtio_blk_vq *vq = &vblk->vqs[hctx->queue_num]; + + return vq; +} + static int virtblk_add_req(struct virtqueue *vq, struct virtblk_req *vbr) { struct scatterlist hdr, status, *sgs[3]; @@ -314,14 +322,14 @@ if (unlikely(status)) return status; - blk_mq_start_request(req); - vbr->sg_table.nents = virtblk_map_data(hctx, req, vbr); if (unlikely(vbr->sg_table.nents < 0)) { virtblk_cleanup_cmd(req); return BLK_STS_RESOURCE; } + blk_mq_start_request(req); + return BLK_STS_OK; } @@ -383,8 +391,7 @@ } static bool virtblk_add_req_batch(struct virtio_blk_vq *vq, - struct request **rqlist, - struct request **requeue_list) + struct request **rqlist) { unsigned long flags; int err; @@ -400,7 +407,7 @@ if (err) { virtblk_unmap_data(req, vbr); virtblk_cleanup_cmd(req); - rq_list_add(requeue_list, req); + blk_mq_requeue_request(req, true); } } @@ -416,7 +423,7 @@ struct request *requeue_list = NULL; rq_list_for_each_safe(rqlist, req, next) { - struct virtio_blk_vq *vq = req->mq_hctx->driver_data; + struct virtio_blk_vq *vq = get_virtio_blk_vq(req->mq_hctx); bool kick; if (!virtblk_prep_rq_batch(req)) { @@ -428,7 +435,7 @@ if (!next || req->mq_hctx != next->mq_hctx) { req->rq_next = NULL; - kick = virtblk_add_req_batch(vq, rqlist, &requeue_list); + kick = virtblk_add_req_batch(vq, rqlist); if (kick) virtqueue_notify(vq->vq); @@ -837,7 +844,7 @@ static int virtblk_poll(struct blk_mq_hw_ctx *hctx, struct io_comp_batch *iob) { struct virtio_blk *vblk = hctx->queue->queuedata; - struct virtio_blk_vq *vq = hctx->driver_data; + struct virtio_blk_vq *vq = get_virtio_blk_vq(hctx); struct virtblk_req *vbr; unsigned long flags; unsigned int len; @@ -862,22 +869,10 @@ return found; } -static int virtblk_init_hctx(struct blk_mq_hw_ctx *hctx, void *data, - unsigned int hctx_idx) -{ - struct virtio_blk *vblk = data; - struct virtio_blk_vq *vq = &vblk->vqs[hctx_idx]; - - WARN_ON(vblk->tag_set.tags[hctx_idx] != hctx->tags); - hctx->driver_data = vq; - return 0; -} - static const struct blk_mq_ops virtio_mq_ops = { .queue_rq = virtio_queue_rq, .queue_rqs = virtio_queue_rqs, .commit_rqs = virtio_commit_rqs, - .init_hctx = virtblk_init_hctx, .complete = virtblk_request_done, .map_queues = virtblk_map_queues, .poll = virtblk_poll, @@ -1111,7 +1106,6 @@ flush_work(&vblk->config_work); del_gendisk(vblk->disk); - blk_cleanup_queue(vblk->disk->queue); blk_mq_free_tag_set(&vblk->tag_set); mutex_lock(&vblk->vdev_mutex); --- linux-5.19.0.orig/drivers/block/xen-blkback/common.h +++ linux-5.19.0/drivers/block/xen-blkback/common.h @@ -226,6 +226,9 @@ sector_t size; unsigned int flush_support:1; unsigned int discard_secure:1; + /* Connect-time cached feature_persistent parameter value */ + unsigned int feature_gnt_persistent_parm:1; + /* Persistent grants feature negotiation result */ unsigned int feature_gnt_persistent:1; unsigned int overflow_max_grants:1; }; --- linux-5.19.0.orig/drivers/block/xen-blkback/xenbus.c +++ linux-5.19.0/drivers/block/xen-blkback/xenbus.c @@ -157,6 +157,11 @@ return 0; } +/* Enable the persistent grants feature. */ +static bool feature_persistent = true; +module_param(feature_persistent, bool, 0644); +MODULE_PARM_DESC(feature_persistent, "Enables the persistent grants feature"); + static struct xen_blkif *xen_blkif_alloc(domid_t domid) { struct xen_blkif *blkif; @@ -472,12 +477,6 @@ vbd->bdev = NULL; } -/* Enable the persistent grants feature. */ -static bool feature_persistent = true; -module_param(feature_persistent, bool, 0644); -MODULE_PARM_DESC(feature_persistent, - "Enables the persistent grants feature"); - static int xen_vbd_create(struct xen_blkif *blkif, blkif_vdev_t handle, unsigned major, unsigned minor, int readonly, int cdrom) @@ -520,8 +519,6 @@ if (bdev_max_secure_erase_sectors(bdev)) vbd->discard_secure = true; - vbd->feature_gnt_persistent = feature_persistent; - pr_debug("Successful creation of handle=%04x (dom=%u)\n", handle, blkif->domid); return 0; @@ -910,7 +907,7 @@ xen_blkbk_barrier(xbt, be, be->blkif->vbd.flush_support); err = xenbus_printf(xbt, dev->nodename, "feature-persistent", "%u", - be->blkif->vbd.feature_gnt_persistent); + be->blkif->vbd.feature_gnt_persistent_parm); if (err) { xenbus_dev_fatal(dev, err, "writing %s/feature-persistent", dev->nodename); @@ -1087,10 +1084,11 @@ xenbus_dev_fatal(dev, err, "unknown fe protocol %s", protocol); return -ENOSYS; } - if (blkif->vbd.feature_gnt_persistent) - blkif->vbd.feature_gnt_persistent = - xenbus_read_unsigned(dev->otherend, - "feature-persistent", 0); + + blkif->vbd.feature_gnt_persistent_parm = feature_persistent; + blkif->vbd.feature_gnt_persistent = + blkif->vbd.feature_gnt_persistent_parm && + xenbus_read_unsigned(dev->otherend, "feature-persistent", 0); blkif->vbd.overflow_max_grants = 0; --- linux-5.19.0.orig/drivers/block/xen-blkfront.c +++ linux-5.19.0/drivers/block/xen-blkfront.c @@ -213,6 +213,9 @@ unsigned int feature_fua:1; unsigned int feature_discard:1; unsigned int feature_secdiscard:1; + /* Connect-time cached feature_persistent parameter */ + unsigned int feature_persistent_parm:1; + /* Persistent grants feature negotiation result */ unsigned int feature_persistent:1; unsigned int bounce:1; unsigned int discard_granularity; @@ -1756,6 +1759,12 @@ return err; } +/* Enable the persistent grants feature. */ +static bool feature_persistent = true; +module_param(feature_persistent, bool, 0644); +MODULE_PARM_DESC(feature_persistent, + "Enables the persistent grants feature"); + /* Common code used when first setting up, and when resuming. */ static int talk_to_blkback(struct xenbus_device *dev, struct blkfront_info *info) @@ -1847,8 +1856,9 @@ message = "writing protocol"; goto abort_transaction; } + info->feature_persistent_parm = feature_persistent; err = xenbus_printf(xbt, dev->nodename, "feature-persistent", "%u", - info->feature_persistent); + info->feature_persistent_parm); if (err) dev_warn(&dev->dev, "writing persistent grants feature to xenbus"); @@ -1916,12 +1926,6 @@ return 0; } -/* Enable the persistent grants feature. */ -static bool feature_persistent = true; -module_param(feature_persistent, bool, 0644); -MODULE_PARM_DESC(feature_persistent, - "Enables the persistent grants feature"); - /* * Entry point to this code when a new device is created. Allocate the basic * structures and the ring buffer for communication with the backend, and @@ -1988,8 +1992,6 @@ info->vdevice = vdevice; info->connected = BLKIF_STATE_DISCONNECTED; - info->feature_persistent = feature_persistent; - /* Front end dir is a number, which is used as the id. */ info->handle = simple_strtoul(strrchr(dev->nodename, '/')+1, NULL, 0); dev_set_drvdata(&dev->dev, info); @@ -2283,7 +2285,7 @@ if (xenbus_read_unsigned(info->xbdev->otherend, "feature-discard", 0)) blkfront_setup_discard(info); - if (info->feature_persistent) + if (info->feature_persistent_parm) info->feature_persistent = !!xenbus_read_unsigned(info->xbdev->otherend, "feature-persistent", 0); --- linux-5.19.0.orig/drivers/block/z2ram.c +++ linux-5.19.0/drivers/block/z2ram.c @@ -384,7 +384,6 @@ for (i = 0; i < Z2MINOR_COUNT; i++) { del_gendisk(z2ram_gendisk[i]); - blk_cleanup_queue(z2ram_gendisk[i]->queue); put_disk(z2ram_gendisk[i]); } blk_mq_free_tag_set(&tag_set); --- linux-5.19.0.orig/drivers/block/zram/zcomp.c +++ linux-5.19.0/drivers/block/zram/zcomp.c @@ -63,12 +63,6 @@ bool zcomp_available_algorithm(const char *comp) { - int i; - - i = sysfs_match_string(backends, comp); - if (i >= 0) - return true; - /* * Crypto does not ignore a trailing new line symbol, * so make sure you don't supply a string containing @@ -217,6 +211,11 @@ struct zcomp *comp; int error; + /* + * Crypto API will execute /sbin/modprobe if the compression module + * is not loaded yet. We must do it here, otherwise we are about to + * call /sbin/modprobe under CPU hot-plug lock. + */ if (!zcomp_available_algorithm(compress)) return ERR_PTR(-EINVAL); --- linux-5.19.0.orig/drivers/block/zram/zram_drv.c +++ linux-5.19.0/drivers/block/zram/zram_drv.c @@ -1144,14 +1144,15 @@ static ssize_t debug_stat_show(struct device *dev, struct device_attribute *attr, char *buf) { - int version = 2; + int version = 1; struct zram *zram = dev_to_zram(dev); ssize_t ret; down_read(&zram->init_lock); ret = scnprintf(buf, PAGE_SIZE, - "version: %d\n%8llu\n", + "version: %d\n%8llu %8llu\n", version, + (u64)atomic64_read(&zram->stats.writestall), (u64)atomic64_read(&zram->stats.miss_free)); up_read(&zram->init_lock); @@ -1367,6 +1368,7 @@ } kunmap_atomic(mem); +compress_again: zstrm = zcomp_stream_get(zram->comp); src = kmap_atomic(page); ret = zcomp_compress(zstrm, src, &comp_len); @@ -1375,20 +1377,39 @@ if (unlikely(ret)) { zcomp_stream_put(zram->comp); pr_err("Compression failed! err=%d\n", ret); + zs_free(zram->mem_pool, handle); return ret; } if (comp_len >= huge_class_size) comp_len = PAGE_SIZE; - - handle = zs_malloc(zram->mem_pool, comp_len, - __GFP_KSWAPD_RECLAIM | - __GFP_NOWARN | - __GFP_HIGHMEM | - __GFP_MOVABLE); - - if (unlikely(!handle)) { + /* + * handle allocation has 2 paths: + * a) fast path is executed with preemption disabled (for + * per-cpu streams) and has __GFP_DIRECT_RECLAIM bit clear, + * since we can't sleep; + * b) slow path enables preemption and attempts to allocate + * the page with __GFP_DIRECT_RECLAIM bit set. we have to + * put per-cpu compression stream and, thus, to re-do + * the compression once handle is allocated. + * + * if we have a 'non-null' handle here then we are coming + * from the slow path and handle has already been allocated. + */ + if (!handle) + handle = zs_malloc(zram->mem_pool, comp_len, + __GFP_KSWAPD_RECLAIM | + __GFP_NOWARN | + __GFP_HIGHMEM | + __GFP_MOVABLE); + if (!handle) { zcomp_stream_put(zram->comp); + atomic64_inc(&zram->stats.writestall); + handle = zs_malloc(zram->mem_pool, comp_len, + GFP_NOIO | __GFP_HIGHMEM | + __GFP_MOVABLE); + if (handle) + goto compress_again; return -ENOMEM; } @@ -1946,6 +1967,7 @@ if (ZRAM_LOGICAL_BLOCK_SIZE == PAGE_SIZE) blk_queue_max_write_zeroes_sectors(zram->disk->queue, UINT_MAX); + blk_queue_flag_set(QUEUE_FLAG_STABLE_WRITES, zram->disk->queue); ret = device_add_disk(NULL, zram->disk, zram_disk_groups); if (ret) goto out_cleanup_disk; --- linux-5.19.0.orig/drivers/block/zram/zram_drv.h +++ linux-5.19.0/drivers/block/zram/zram_drv.h @@ -81,6 +81,7 @@ atomic64_t huge_pages_since; /* no. of huge pages since zram set up */ atomic64_t pages_stored; /* no. of pages currently stored */ atomic_long_t max_used_pages; /* no. of maximum pages stored */ + atomic64_t writestall; /* no. of write slow paths */ atomic64_t miss_free; /* no. of missed free */ #ifdef CONFIG_ZRAM_WRITEBACK atomic64_t bd_count; /* no. of pages in backing device */ --- linux-5.19.0.orig/drivers/bluetooth/btbcm.c +++ linux-5.19.0/drivers/bluetooth/btbcm.c @@ -379,6 +379,18 @@ { .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "Apple Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir8,1"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Apple Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "MacBookAir8,2"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Apple Inc."), DMI_MATCH(DMI_PRODUCT_NAME, "iMac20,1"), }, }, @@ -454,6 +466,8 @@ { 0x6606, "BCM4345C5" }, /* 003.006.006 */ { 0x230f, "BCM4356A2" }, /* 001.003.015 */ { 0x220e, "BCM20702A1" }, /* 001.002.014 */ + { 0x420d, "BCM4349B1" }, /* 002.002.013 */ + { 0x420e, "BCM4349B1" }, /* 002.002.014 */ { 0x4217, "BCM4329B1" }, /* 002.002.023 */ { 0x6106, "BCM4359C0" }, /* 003.001.006 */ { 0x4106, "BCM4335A0" }, /* 002.001.006 */ --- linux-5.19.0.orig/drivers/bluetooth/btintel.c +++ linux-5.19.0/drivers/bluetooth/btintel.c @@ -2439,15 +2439,20 @@ INTEL_ROM_LEGACY_NO_WBS_SUPPORT)) set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); + if (ver.hw_variant == 0x08 && ver.fw_variant == 0x22) + set_bit(HCI_QUIRK_VALID_LE_STATES, + &hdev->quirks); err = btintel_legacy_rom_setup(hdev, &ver); break; case 0x0b: /* SfP */ - case 0x0c: /* WsP */ case 0x11: /* JfP */ case 0x12: /* ThP */ case 0x13: /* HrP */ case 0x14: /* CcP */ + set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); + fallthrough; + case 0x0c: /* WsP */ /* Apply the device specific HCI quirks * * All Legacy bootloader devices support WBS @@ -2455,11 +2460,6 @@ set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); - /* Valid LE States quirk for JfP/ThP familiy */ - if (ver.hw_variant == 0x11 || ver.hw_variant == 0x12) - set_bit(HCI_QUIRK_VALID_LE_STATES, - &hdev->quirks); - /* Setup MSFT Extension support */ btintel_set_msft_opcode(hdev, ver.hw_variant); @@ -2522,7 +2522,7 @@ */ err = btintel_read_version(hdev, &ver); if (err) - return err; + break; /* Apply the device specific HCI quirks * @@ -2530,9 +2530,8 @@ */ set_bit(HCI_QUIRK_WIDEBAND_SPEECH_SUPPORTED, &hdev->quirks); - /* Valid LE States quirk for JfP/ThP familiy */ - if (ver.hw_variant == 0x11 || ver.hw_variant == 0x12) - set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); + /* Set Valid LE States quirk */ + set_bit(HCI_QUIRK_VALID_LE_STATES, &hdev->quirks); /* Setup MSFT Extension support */ btintel_set_msft_opcode(hdev, ver.hw_variant); @@ -2564,7 +2563,8 @@ default: bt_dev_err(hdev, "Unsupported Intel hw variant (%u)", INTEL_HW_VARIANT(ver_tlv.cnvi_bt)); - return -EINVAL; + err = -EINVAL; + break; } exit_error: --- linux-5.19.0.orig/drivers/bluetooth/btusb.c +++ linux-5.19.0/drivers/bluetooth/btusb.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -427,6 +428,18 @@ { USB_DEVICE(0x04ca, 0x4006), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + /* Realtek 8852CE Bluetooth devices */ + { USB_DEVICE(0x04ca, 0x4007), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x04c5, 0x1675), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0cb8, 0xc558), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3587), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3586), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + /* Realtek Bluetooth devices */ { USB_VENDOR_AND_INTERFACE_INFO(0x0bda, 0xe0, 0x01, 0x01), .driver_info = BTUSB_REALTEK }, @@ -454,6 +467,9 @@ { USB_DEVICE(0x0489, 0xe0c8), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH | BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0cd), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, { USB_DEVICE(0x04ca, 0x3802), .driver_info = BTUSB_MEDIATEK | BTUSB_WIDEBAND_SPEECH | BTUSB_VALID_LE_STATES }, @@ -478,6 +494,20 @@ BTUSB_WIDEBAND_SPEECH | BTUSB_VALID_LE_STATES }, + /* MediaTek MT7922A Bluetooth devices */ + { USB_DEVICE(0x0489, 0xe0d8), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0d9), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x13d3, 0x3568), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + { USB_DEVICE(0x0489, 0xe0f2), .driver_info = BTUSB_MEDIATEK | + BTUSB_WIDEBAND_SPEECH | + BTUSB_VALID_LE_STATES }, + /* Additional Realtek 8723AE Bluetooth devices */ { USB_DEVICE(0x0930, 0x021d), .driver_info = BTUSB_REALTEK }, { USB_DEVICE(0x13d3, 0x3394), .driver_info = BTUSB_REALTEK }, @@ -770,13 +800,13 @@ spin_lock_irqsave(&data->rxlock, flags); - kfree_skb(data->evt_skb); + dev_kfree_skb_irq(data->evt_skb); data->evt_skb = NULL; - kfree_skb(data->acl_skb); + dev_kfree_skb_irq(data->acl_skb); data->acl_skb = NULL; - kfree_skb(data->sco_skb); + dev_kfree_skb_irq(data->sco_skb); data->sco_skb = NULL; spin_unlock_irqrestore(&data->rxlock, flags); @@ -2007,6 +2037,11 @@ rp = (struct hci_rp_read_local_version *)skb->data; + bt_dev_info(hdev, "CSR: Setting up dongle with HCI ver=%u rev=%04x; LMP ver=%u subver=%04x; manufacturer=%u", + le16_to_cpu(rp->hci_ver), le16_to_cpu(rp->hci_rev), + le16_to_cpu(rp->lmp_ver), le16_to_cpu(rp->lmp_subver), + le16_to_cpu(rp->manufacturer)); + /* Detect a wide host of Chinese controllers that aren't CSR. * * Known fake bcdDevices: 0x0100, 0x0134, 0x1915, 0x2520, 0x7558, 0x8891 @@ -2436,15 +2471,29 @@ set_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags); + /* WMT cmd/event doesn't follow up the generic HCI cmd/event handling, + * it needs constantly polling control pipe until the host received the + * WMT event, thus, we should require to specifically acquire PM counter + * on the USB to prevent the interface from entering auto suspended + * while WMT cmd/event in progress. + */ + err = usb_autopm_get_interface(data->intf); + if (err < 0) + goto err_free_wc; + err = __hci_cmd_send(hdev, 0xfc6f, hlen, wc); if (err < 0) { clear_bit(BTUSB_TX_WAIT_VND_EVT, &data->flags); + usb_autopm_put_interface(data->intf); goto err_free_wc; } /* Submit control IN URB on demand to process the WMT event */ err = btusb_mtk_submit_wmt_recv_urb(hdev); + + usb_autopm_put_interface(data->intf); + if (err < 0) goto err_free_wc; @@ -2956,6 +3005,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) { @@ -3785,8 +3863,18 @@ btintel_set_flag(hdev, INTEL_BROKEN_SHUTDOWN_LED); } - 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; + } + } if (IS_ENABLED(CONFIG_BT_HCIBTUSB_MTK) && (id->driver_info & BTUSB_MEDIATEK)) { --- linux-5.19.0.orig/drivers/bluetooth/hci_bcm.c +++ linux-5.19.0/drivers/bluetooth/hci_bcm.c @@ -1544,8 +1544,10 @@ { .compatible = "brcm,bcm43430a0-bt" }, { .compatible = "brcm,bcm43430a1-bt" }, { .compatible = "brcm,bcm43438-bt", .data = &bcm43438_device_data }, + { .compatible = "brcm,bcm4349-bt", .data = &bcm43438_device_data }, { .compatible = "brcm,bcm43540-bt", .data = &bcm4354_device_data }, { .compatible = "brcm,bcm4335a0" }, + { .compatible = "infineon,cyw55572-bt" }, { }, }; MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match); --- linux-5.19.0.orig/drivers/bluetooth/hci_bcsp.c +++ linux-5.19.0/drivers/bluetooth/hci_bcsp.c @@ -378,7 +378,7 @@ i++; __skb_unlink(skb, &bcsp->unack); - kfree_skb(skb); + dev_kfree_skb_irq(skb); } if (skb_queue_empty(&bcsp->unack)) --- linux-5.19.0.orig/drivers/bluetooth/hci_h5.c +++ linux-5.19.0/drivers/bluetooth/hci_h5.c @@ -313,7 +313,7 @@ break; __skb_unlink(skb, &h5->unack); - kfree_skb(skb); + dev_kfree_skb_irq(skb); } if (skb_queue_empty(&h5->unack)) --- linux-5.19.0.orig/drivers/bluetooth/hci_intel.c +++ linux-5.19.0/drivers/bluetooth/hci_intel.c @@ -1217,7 +1217,11 @@ int __init intel_init(void) { - platform_driver_register(&intel_driver); + int err; + + err = platform_driver_register(&intel_driver); + if (err) + return err; return hci_uart_register_proto(&intel_proto); } --- linux-5.19.0.orig/drivers/bluetooth/hci_ldisc.c +++ linux-5.19.0/drivers/bluetooth/hci_ldisc.c @@ -493,6 +493,11 @@ BT_ERR("Can't allocate control structure"); return -ENFILE; } + if (percpu_init_rwsem(&hu->proto_lock)) { + BT_ERR("Can't allocate semaphore structure"); + kfree(hu); + return -ENOMEM; + } tty->disc_data = hu; hu->tty = tty; @@ -505,8 +510,6 @@ INIT_WORK(&hu->init_ready, hci_uart_init_work); INIT_WORK(&hu->write_work, hci_uart_write_work); - percpu_init_rwsem(&hu->proto_lock); - /* Flush any pending characters in the driver */ tty_driver_flush_buffer(tty); --- linux-5.19.0.orig/drivers/bluetooth/hci_ll.c +++ linux-5.19.0/drivers/bluetooth/hci_ll.c @@ -345,7 +345,7 @@ default: BT_ERR("illegal hcill state: %ld (losing packet)", ll->hcill_state); - kfree_skb(skb); + dev_kfree_skb_irq(skb); break; } --- linux-5.19.0.orig/drivers/bluetooth/hci_qca.c +++ linux-5.19.0/drivers/bluetooth/hci_qca.c @@ -912,7 +912,7 @@ default: BT_ERR("Illegal tx state: %d (losing packet)", qca->tx_ibs_state); - kfree_skb(skb); + dev_kfree_skb_irq(skb); break; } @@ -1588,7 +1588,7 @@ wakeup = device_may_wakeup(hu->serdev->ctrl->dev.parent); bt_dev_dbg(hu->hdev, "wakeup status : %d", wakeup); - return !wakeup; + return wakeup; } static int qca_regulator_init(struct hci_uart *hu) --- linux-5.19.0.orig/drivers/bluetooth/hci_serdev.c +++ linux-5.19.0/drivers/bluetooth/hci_serdev.c @@ -231,6 +231,15 @@ return 0; } +/* Check if the device is wakeable */ +static bool hci_uart_wakeup(struct hci_dev *hdev) +{ + /* HCI UART devices are assumed to be wakeable by default. + * Implement wakeup callback to override this behavior. + */ + return true; +} + /** hci_uart_write_wakeup - transmit buffer wakeup * @serdev: serial device * @@ -301,11 +310,12 @@ serdev_device_set_client_ops(hu->serdev, &hci_serdev_client_ops); + if (percpu_init_rwsem(&hu->proto_lock)) + return -ENOMEM; + err = serdev_device_open(hu->serdev); if (err) - return err; - - percpu_init_rwsem(&hu->proto_lock); + goto err_rwsem; err = p->open(hu); if (err) @@ -342,6 +352,8 @@ hdev->flush = hci_uart_flush; hdev->send = hci_uart_send_frame; hdev->setup = hci_uart_setup; + if (!hdev->wakeup) + hdev->wakeup = hci_uart_wakeup; SET_HCIDEV_DEV(hdev, &hu->serdev->dev); if (test_bit(HCI_UART_NO_SUSPEND_NOTIFIER, &hu->flags)) @@ -378,6 +390,8 @@ p->close(hu); err_open: serdev_device_close(hu->serdev); +err_rwsem: + percpu_free_rwsem(&hu->proto_lock); return err; } EXPORT_SYMBOL_GPL(hci_uart_register_device); @@ -399,5 +413,6 @@ clear_bit(HCI_UART_PROTO_READY, &hu->flags); serdev_device_close(hu->serdev); } + percpu_free_rwsem(&hu->proto_lock); } EXPORT_SYMBOL_GPL(hci_uart_unregister_device); --- linux-5.19.0.orig/drivers/bluetooth/virtio_bt.c +++ linux-5.19.0/drivers/bluetooth/virtio_bt.c @@ -219,7 +219,7 @@ if (!skb) return; - skb->len = len; + skb_put(skb, len); virtbt_rx_handle(vbt, skb); if (virtbt_add_inbuf(vbt) < 0) --- linux-5.19.0.orig/drivers/bus/hisi_lpc.c +++ linux-5.19.0/drivers/bus/hisi_lpc.c @@ -503,13 +503,13 @@ { struct acpi_device *adev = ACPI_COMPANION(hostdev); struct acpi_device *child; + struct platform_device *pdev; int ret; /* Only consider the children of the host */ list_for_each_entry(child, &adev->children, node) { const char *hid = acpi_device_hid(child); const struct hisi_lpc_acpi_cell *cell; - struct platform_device *pdev; const struct resource *res; bool found = false; int num_res; @@ -571,22 +571,24 @@ ret = platform_device_add_resources(pdev, res, num_res); if (ret) - goto fail; + goto fail_put_device; ret = platform_device_add_data(pdev, cell->pdata, cell->pdata_size); if (ret) - goto fail; + goto fail_put_device; ret = platform_device_add(pdev); if (ret) - goto fail; + goto fail_put_device; acpi_device_set_enumerated(child); } return 0; +fail_put_device: + platform_device_put(pdev); fail: hisi_lpc_acpi_remove(hostdev); return ret; --- linux-5.19.0.orig/drivers/bus/intel-ixp4xx-eb.c +++ linux-5.19.0/drivers/bus/intel-ixp4xx-eb.c @@ -49,7 +49,7 @@ #define IXP4XX_EXP_SIZE_SHIFT 10 #define IXP4XX_EXP_CNFG_0 BIT(9) /* Always zero */ #define IXP43X_EXP_SYNC_INTEL BIT(8) /* Only on IXP43x */ -#define IXP43X_EXP_EXP_CHIP BIT(7) /* Only on IXP43x */ +#define IXP43X_EXP_EXP_CHIP BIT(7) /* Only on IXP43x, dangerous to touch on IXP42x */ #define IXP4XX_EXP_BYTE_RD16 BIT(6) #define IXP4XX_EXP_HRDY_POL BIT(5) /* Only on IXP42x */ #define IXP4XX_EXP_MUX_EN BIT(4) @@ -57,8 +57,6 @@ #define IXP4XX_EXP_WORD BIT(2) /* Always zero */ #define IXP4XX_EXP_WR_EN BIT(1) #define IXP4XX_EXP_BYTE_EN BIT(0) -#define IXP42X_RESERVED (BIT(30)|IXP4XX_EXP_CNFG_0|BIT(8)|BIT(7)|IXP4XX_EXP_WORD) -#define IXP43X_RESERVED (BIT(30)|IXP4XX_EXP_CNFG_0|BIT(5)|IXP4XX_EXP_WORD) #define IXP4XX_EXP_CNFG0 0x20 #define IXP4XX_EXP_CNFG0_MEM_MAP BIT(31) @@ -252,10 +250,9 @@ cs_cfg |= val << IXP4XX_EXP_CYC_TYPE_SHIFT; } - if (eb->is_42x) - cs_cfg &= ~IXP42X_RESERVED; if (eb->is_43x) { - cs_cfg &= ~IXP43X_RESERVED; + /* Should always be zero */ + cs_cfg &= ~IXP4XX_EXP_WORD; /* * This bit for Intel strata flash is currently unused, but let's * report it if we find one. --- linux-5.19.0.orig/drivers/bus/sunxi-rsb.c +++ linux-5.19.0/drivers/bus/sunxi-rsb.c @@ -271,6 +271,9 @@ /* common code that starts a transfer */ static int _sunxi_rsb_run_xfer(struct sunxi_rsb *rsb) { + u32 int_mask, status; + bool timeout; + if (readl(rsb->regs + RSB_CTRL) & RSB_CTRL_START_TRANS) { dev_dbg(rsb->dev, "RSB transfer still in progress\n"); return -EBUSY; @@ -278,13 +281,23 @@ reinit_completion(&rsb->complete); - writel(RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER, - rsb->regs + RSB_INTE); + int_mask = RSB_INTS_LOAD_BSY | RSB_INTS_TRANS_ERR | RSB_INTS_TRANS_OVER; + writel(int_mask, rsb->regs + RSB_INTE); writel(RSB_CTRL_START_TRANS | RSB_CTRL_GLOBAL_INT_ENB, rsb->regs + RSB_CTRL); - if (!wait_for_completion_io_timeout(&rsb->complete, - msecs_to_jiffies(100))) { + if (irqs_disabled()) { + timeout = readl_poll_timeout_atomic(rsb->regs + RSB_INTS, + status, (status & int_mask), + 10, 100000); + writel(status, rsb->regs + RSB_INTS); + } else { + timeout = !wait_for_completion_io_timeout(&rsb->complete, + msecs_to_jiffies(100)); + status = rsb->status; + } + + if (timeout) { dev_dbg(rsb->dev, "RSB timeout\n"); /* abort the transfer */ @@ -296,18 +309,18 @@ return -ETIMEDOUT; } - if (rsb->status & RSB_INTS_LOAD_BSY) { + if (status & RSB_INTS_LOAD_BSY) { dev_dbg(rsb->dev, "RSB busy\n"); return -EBUSY; } - if (rsb->status & RSB_INTS_TRANS_ERR) { - if (rsb->status & RSB_INTS_TRANS_ERR_ACK) { + if (status & RSB_INTS_TRANS_ERR) { + if (status & RSB_INTS_TRANS_ERR_ACK) { dev_dbg(rsb->dev, "RSB slave nack\n"); return -EINVAL; } - if (rsb->status & RSB_INTS_TRANS_ERR_DATA) { + if (status & RSB_INTS_TRANS_ERR_DATA) { dev_dbg(rsb->dev, "RSB transfer data error\n"); return -EIO; } @@ -816,14 +829,6 @@ return 0; } -static void sunxi_rsb_shutdown(struct platform_device *pdev) -{ - struct sunxi_rsb *rsb = platform_get_drvdata(pdev); - - pm_runtime_disable(&pdev->dev); - sunxi_rsb_hw_exit(rsb); -} - static const struct dev_pm_ops sunxi_rsb_dev_pm_ops = { SET_RUNTIME_PM_OPS(sunxi_rsb_runtime_suspend, sunxi_rsb_runtime_resume, NULL) @@ -839,7 +844,6 @@ static struct platform_driver sunxi_rsb_driver = { .probe = sunxi_rsb_probe, .remove = sunxi_rsb_remove, - .shutdown = sunxi_rsb_shutdown, .driver = { .name = RSB_CTRL_NAME, .of_match_table = sunxi_rsb_of_match_table, --- linux-5.19.0.orig/drivers/cdrom/cdrom.c +++ linux-5.19.0/drivers/cdrom/cdrom.c @@ -281,7 +281,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 */ --- linux-5.19.0.orig/drivers/cdrom/gdrom.c +++ linux-5.19.0/drivers/cdrom/gdrom.c @@ -831,7 +831,6 @@ static int remove_gdrom(struct platform_device *devptr) { - blk_cleanup_queue(gd.gdrom_rq); blk_mq_free_tag_set(&gd.tag_set); free_irq(HW_EVENT_GDROM_CMD, &gd); free_irq(HW_EVENT_GDROM_DMA, &gd); --- linux-5.19.0.orig/drivers/char/hw_random/amd-rng.c +++ linux-5.19.0/drivers/char/hw_random/amd-rng.c @@ -143,15 +143,19 @@ found: err = pci_read_config_dword(pdev, 0x58, &pmbase); if (err) - return err; + goto put_dev; pmbase &= 0x0000FF00; - if (pmbase == 0) - return -EIO; + if (pmbase == 0) { + err = -EIO; + goto put_dev; + } priv = kzalloc(sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; + if (!priv) { + err = -ENOMEM; + goto put_dev; + } if (!request_region(pmbase + PMBASE_OFFSET, PMBASE_SIZE, DRV_NAME)) { dev_err(&pdev->dev, DRV_NAME " region 0x%x already in use!\n", @@ -185,6 +189,8 @@ release_region(pmbase + PMBASE_OFFSET, PMBASE_SIZE); out: kfree(priv); +put_dev: + pci_dev_put(pdev); return err; } @@ -200,6 +206,8 @@ release_region(priv->pmbase + PMBASE_OFFSET, PMBASE_SIZE); + pci_dev_put(priv->pcidev); + kfree(priv); } --- linux-5.19.0.orig/drivers/char/hw_random/arm_smccc_trng.c +++ linux-5.19.0/drivers/char/hw_random/arm_smccc_trng.c @@ -71,8 +71,6 @@ MAX_BITS_PER_CALL); arm_smccc_1_1_invoke(ARM_SMCCC_TRNG_RND, bits, &res); - if ((int)res.a0 < 0) - return (int)res.a0; switch ((int)res.a0) { case SMCCC_RET_SUCCESS: @@ -88,6 +86,8 @@ return copied; cond_resched(); break; + default: + return -EIO; } } --- linux-5.19.0.orig/drivers/char/hw_random/bcm2835-rng.c +++ linux-5.19.0/drivers/char/hw_random/bcm2835-rng.c @@ -71,7 +71,7 @@ while ((rng_readl(priv, RNG_STATUS) >> 24) == 0) { if (!wait) return 0; - cpu_relax(); + hwrng_msleep(rng, 1000); } num_words = rng_readl(priv, RNG_STATUS) >> 24; --- linux-5.19.0.orig/drivers/char/hw_random/core.c +++ linux-5.19.0/drivers/char/hw_random/core.c @@ -507,16 +507,17 @@ rng->quality = current_quality; /* obsolete */ quality = rng->quality; mutex_unlock(&reading_mutex); + + if (rc <= 0) + hwrng_msleep(rng, 10000); + put_rng(rng); if (!quality) break; - if (rc <= 0) { - pr_warn("hwrng: no data available\n"); - msleep_interruptible(10000); + if (rc <= 0) continue; - } /* If we cannot credit at least one bit of entropy, * keep track of the remainder for the next iteration @@ -570,6 +571,7 @@ init_completion(&rng->cleanup_done); complete(&rng->cleanup_done); + init_completion(&rng->dying); if (!current_rng || (!cur_rng_set_by_user && rng->quality > current_rng->quality)) { @@ -617,6 +619,7 @@ old_rng = current_rng; list_del(&rng->list); + complete_all(&rng->dying); if (current_rng == rng) { err = enable_best_rng(); if (err) { @@ -685,6 +688,14 @@ } EXPORT_SYMBOL_GPL(devm_hwrng_unregister); +long hwrng_msleep(struct hwrng *rng, unsigned int msecs) +{ + unsigned long timeout = msecs_to_jiffies(msecs) + 1; + + return wait_for_completion_interruptible_timeout(&rng->dying, timeout); +} +EXPORT_SYMBOL_GPL(hwrng_msleep); + static int __init hwrng_modinit(void) { int ret; --- linux-5.19.0.orig/drivers/char/hw_random/geode-rng.c +++ linux-5.19.0/drivers/char/hw_random/geode-rng.c @@ -51,6 +51,10 @@ }; MODULE_DEVICE_TABLE(pci, pci_tbl); +struct amd_geode_priv { + struct pci_dev *pcidev; + void __iomem *membase; +}; static int geode_rng_data_read(struct hwrng *rng, u32 *data) { @@ -90,6 +94,7 @@ const struct pci_device_id *ent; void __iomem *mem; unsigned long rng_base; + struct amd_geode_priv *priv; for_each_pci_dev(pdev) { ent = pci_match_id(pci_tbl, pdev); @@ -97,17 +102,26 @@ goto found; } /* Device not found. */ - goto out; + return err; found: + priv = kzalloc(sizeof(*priv), GFP_KERNEL); + if (!priv) { + err = -ENOMEM; + goto put_dev; + } + rng_base = pci_resource_start(pdev, 0); if (rng_base == 0) - goto out; + goto free_priv; err = -ENOMEM; mem = ioremap(rng_base, 0x58); if (!mem) - goto out; - geode_rng.priv = (unsigned long)mem; + goto free_priv; + + geode_rng.priv = (unsigned long)priv; + priv->membase = mem; + priv->pcidev = pdev; pr_info("AMD Geode RNG detected\n"); err = hwrng_register(&geode_rng); @@ -116,20 +130,26 @@ err); goto err_unmap; } -out: return err; err_unmap: iounmap(mem); - goto out; +free_priv: + kfree(priv); +put_dev: + pci_dev_put(pdev); + return err; } static void __exit geode_rng_exit(void) { - void __iomem *mem = (void __iomem *)geode_rng.priv; + struct amd_geode_priv *priv; + priv = (struct amd_geode_priv *)geode_rng.priv; hwrng_unregister(&geode_rng); - iounmap(mem); + iounmap(priv->membase); + pci_dev_put(priv->pcidev); + kfree(priv); } module_init(geode_rng_init); --- linux-5.19.0.orig/drivers/char/hw_random/imx-rngc.c +++ linux-5.19.0/drivers/char/hw_random/imx-rngc.c @@ -270,13 +270,6 @@ goto err; } - ret = devm_request_irq(&pdev->dev, - irq, imx_rngc_irq, 0, pdev->name, (void *)rngc); - if (ret) { - dev_err(rngc->dev, "Can't get interrupt working.\n"); - goto err; - } - init_completion(&rngc->rng_op_done); rngc->rng.name = pdev->name; @@ -290,6 +283,13 @@ imx_rngc_irq_mask_clear(rngc); + ret = devm_request_irq(&pdev->dev, + irq, imx_rngc_irq, 0, pdev->name, (void *)rngc); + if (ret) { + dev_err(rngc->dev, "Can't get interrupt working.\n"); + return ret; + } + if (self_test) { ret = imx_rngc_self_test(rngc); if (ret) { --- linux-5.19.0.orig/drivers/char/ipmi/ipmi_msghandler.c +++ linux-5.19.0/drivers/char/ipmi/ipmi_msghandler.c @@ -3710,12 +3710,16 @@ struct ipmi_smi_msg *msg, unsigned char err) { + int rv; msg->rsp[0] = msg->data[0] | 4; msg->rsp[1] = msg->data[1]; msg->rsp[2] = err; msg->rsp_size = 3; - /* It's an error, so it will never requeue, no need to check return. */ - handle_one_recv_msg(intf, msg); + + /* This will never requeue, but it may ask us to free the message. */ + rv = handle_one_recv_msg(intf, msg); + if (rv == 0) + ipmi_free_smi_msg(msg); } static void cleanup_smi_msgs(struct ipmi_smi *intf) --- linux-5.19.0.orig/drivers/char/ipmi/kcs_bmc_aspeed.c +++ linux-5.19.0/drivers/char/ipmi/kcs_bmc_aspeed.c @@ -399,13 +399,31 @@ static void aspeed_kcs_irq_mask_update(struct kcs_bmc_device *kcs_bmc, u8 mask, u8 state) { struct aspeed_kcs_bmc *priv = to_aspeed_kcs_bmc(kcs_bmc); + int rc; + u8 str; /* We don't have an OBE IRQ, emulate it */ if (mask & KCS_BMC_EVENT_TYPE_OBE) { - if (KCS_BMC_EVENT_TYPE_OBE & state) - mod_timer(&priv->obe.timer, jiffies + OBE_POLL_PERIOD); - else + if (KCS_BMC_EVENT_TYPE_OBE & state) { + /* + * Given we don't have an OBE IRQ, delay by polling briefly to see if we can + * observe such an event before returning to the caller. This is not + * incorrect because OBF may have already become clear before enabling the + * IRQ if we had one, under which circumstance no event will be propagated + * anyway. + * + * The onus is on the client to perform a race-free check that it hasn't + * missed the event. + */ + rc = read_poll_timeout_atomic(aspeed_kcs_inb, str, + !(str & KCS_BMC_STR_OBF), 1, 100, false, + &priv->kcs_bmc, priv->kcs_bmc.ioreg.str); + /* Time for the slow path? */ + if (rc == -ETIMEDOUT) + mod_timer(&priv->obe.timer, jiffies + OBE_POLL_PERIOD); + } else { del_timer(&priv->obe.timer); + } } if (mask & KCS_BMC_EVENT_TYPE_IBF) { --- linux-5.19.0.orig/drivers/char/mem.c +++ linux-5.19.0/drivers/char/mem.c @@ -706,8 +706,8 @@ #endif [5] = { "zero", 0666, &zero_fops, FMODE_NOWAIT }, [7] = { "full", 0666, &full_fops, 0 }, - [8] = { "random", 0666, &random_fops, 0 }, - [9] = { "urandom", 0666, &urandom_fops, 0 }, + [8] = { "random", 0666, &random_fops, FMODE_NOWAIT }, + [9] = { "urandom", 0666, &urandom_fops, FMODE_NOWAIT }, #ifdef CONFIG_PRINTK [11] = { "kmsg", 0644, &kmsg_fops, 0 }, #endif --- linux-5.19.0.orig/drivers/char/random.c +++ linux-5.19.0/drivers/char/random.c @@ -903,20 +903,23 @@ #endif struct fast_pool { - struct work_struct mix; unsigned long pool[4]; unsigned long last; unsigned int count; + struct timer_list mix; }; +static void mix_interrupt_randomness(struct timer_list *work); + static DEFINE_PER_CPU(struct fast_pool, irq_randomness) = { #ifdef CONFIG_64BIT #define FASTMIX_PERM SIPHASH_PERMUTATION - .pool = { SIPHASH_CONST_0, SIPHASH_CONST_1, SIPHASH_CONST_2, SIPHASH_CONST_3 } + .pool = { SIPHASH_CONST_0, SIPHASH_CONST_1, SIPHASH_CONST_2, SIPHASH_CONST_3 }, #else #define FASTMIX_PERM HSIPHASH_PERMUTATION - .pool = { HSIPHASH_CONST_0, HSIPHASH_CONST_1, HSIPHASH_CONST_2, HSIPHASH_CONST_3 } + .pool = { HSIPHASH_CONST_0, HSIPHASH_CONST_1, HSIPHASH_CONST_2, HSIPHASH_CONST_3 }, #endif + .mix = __TIMER_INITIALIZER(mix_interrupt_randomness, 0) }; /* @@ -958,7 +961,7 @@ } #endif -static void mix_interrupt_randomness(struct work_struct *work) +static void mix_interrupt_randomness(struct timer_list *work) { struct fast_pool *fast_pool = container_of(work, struct fast_pool, mix); /* @@ -989,7 +992,7 @@ local_irq_enable(); mix_pool_bytes(pool, sizeof(pool)); - credit_init_bits(max(1u, (count & U16_MAX) / 64)); + credit_init_bits(clamp_t(unsigned int, (count & U16_MAX) / 64, 1, sizeof(pool) * 8)); memzero_explicit(pool, sizeof(pool)); } @@ -1012,10 +1015,11 @@ if (new_count < 1024 && !time_is_before_jiffies(fast_pool->last + HZ)) return; - if (unlikely(!fast_pool->mix.func)) - INIT_WORK(&fast_pool->mix, mix_interrupt_randomness); fast_pool->count |= MIX_INFLIGHT; - queue_work_on(raw_smp_processor_id(), system_highpri_wq, &fast_pool->mix); + if (!timer_pending(&fast_pool->mix)) { + fast_pool->mix.expires = jiffies; + add_timer_on(&fast_pool->mix, raw_smp_processor_id()); + } } EXPORT_SYMBOL_GPL(add_interrupt_randomness); @@ -1174,7 +1178,7 @@ */ static void __cold try_to_generate_entropy(void) { - enum { NUM_TRIAL_SAMPLES = 8192, MAX_SAMPLES_PER_BIT = HZ / 30 }; + enum { NUM_TRIAL_SAMPLES = 8192, MAX_SAMPLES_PER_BIT = HZ / 15 }; struct entropy_timer_state stack; unsigned int i, num_different = 0; unsigned long last = random_get_entropy(); @@ -1193,7 +1197,7 @@ timer_setup_on_stack(&stack.timer, entropy_timer, 0); while (!crng_ready() && !signal_pending(current)) { if (!timer_pending(&stack.timer)) - mod_timer(&stack.timer, jiffies + 1); + mod_timer(&stack.timer, jiffies); mix_pool_bytes(&stack.entropy, sizeof(stack.entropy)); schedule(); stack.entropy = random_get_entropy(); @@ -1330,6 +1334,11 @@ { int ret; + if (!crng_ready() && + ((kiocb->ki_flags & (IOCB_NOWAIT | IOCB_NOIO)) || + (kiocb->ki_filp->f_flags & O_NONBLOCK))) + return -EAGAIN; + ret = wait_for_random_bytes(); if (ret != 0) return ret; --- linux-5.19.0.orig/drivers/char/tpm/tpm-interface.c +++ linux-5.19.0/drivers/char/tpm/tpm-interface.c @@ -401,13 +401,14 @@ !pm_suspend_via_firmware()) goto suspended; - if (!tpm_chip_start(chip)) { + rc = tpm_try_get_ops(chip); + if (!rc) { if (chip->flags & TPM_CHIP_FLAG_TPM2) tpm2_shutdown(chip, TPM2_SU_STATE); else rc = tpm1_pm_suspend(chip, tpm_suspend_pcr); - tpm_chip_stop(chip); + tpm_put_ops(chip); } suspended: --- linux-5.19.0.orig/drivers/char/tpm/tpm2-cmd.c +++ linux-5.19.0/drivers/char/tpm/tpm2-cmd.c @@ -752,6 +752,12 @@ } rc = tpm2_get_cc_attrs_tbl(chip); + if (rc == TPM2_RC_FAILURE || (rc < 0 && rc != -ENOMEM)) { + dev_info(&chip->dev, + "TPM in field failure mode, requires firmware upgrade\n"); + chip->flags |= TPM_CHIP_FLAG_FIRMWARE_UPGRADE; + rc = 0; + } out: /* --- linux-5.19.0.orig/drivers/char/tpm/tpm_crb.c +++ linux-5.19.0/drivers/char/tpm/tpm_crb.c @@ -252,7 +252,7 @@ iowrite32(CRB_LOC_CTRL_RELINQUISH, &priv->regs_h->loc_ctrl); if (!crb_wait_for_reg_32(&priv->regs_h->loc_state, mask, value, TPM2_TIMEOUT_C)) { - dev_warn(dev, "TPM_LOC_STATE_x.requestAccess timed out\n"); + dev_warn(dev, "TPM_LOC_STATE_x.Relinquish timed out\n"); return -ETIME; } --- linux-5.19.0.orig/drivers/char/tpm/tpm_ftpm_tee.c +++ linux-5.19.0/drivers/char/tpm/tpm_ftpm_tee.c @@ -397,7 +397,13 @@ if (rc) return rc; - return driver_register(&ftpm_tee_driver.driver); + rc = driver_register(&ftpm_tee_driver.driver); + if (rc) { + platform_driver_unregister(&ftpm_tee_plat_driver); + return rc; + } + + return 0; } static void __exit ftpm_mod_exit(void) --- linux-5.19.0.orig/drivers/clk/at91/at91rm9200.c +++ linux-5.19.0/drivers/clk/at91/at91rm9200.c @@ -40,7 +40,7 @@ }; static const struct sck at91rm9200_systemck[] = { - { .n = "udpck", .p = "usbck", .id = 2 }, + { .n = "udpck", .p = "usbck", .id = 1 }, { .n = "uhpck", .p = "usbck", .id = 4 }, { .n = "pck0", .p = "prog0", .id = 8 }, { .n = "pck1", .p = "prog1", .id = 9 }, --- linux-5.19.0.orig/drivers/clk/baikal-t1/ccu-div.c +++ linux-5.19.0/drivers/clk/baikal-t1/ccu-div.c @@ -34,6 +34,7 @@ #define CCU_DIV_CTL_CLKDIV_MASK(_width) \ GENMASK((_width) + CCU_DIV_CTL_CLKDIV_FLD - 1, CCU_DIV_CTL_CLKDIV_FLD) #define CCU_DIV_CTL_LOCK_SHIFTED BIT(27) +#define CCU_DIV_CTL_GATE_REF_BUF BIT(28) #define CCU_DIV_CTL_LOCK_NORMAL BIT(31) #define CCU_DIV_RST_DELAY_US 1 @@ -170,6 +171,40 @@ return !!(val & CCU_DIV_CTL_EN); } +static int ccu_div_buf_enable(struct clk_hw *hw) +{ + struct ccu_div *div = to_ccu_div(hw); + unsigned long flags; + + spin_lock_irqsave(&div->lock, flags); + regmap_update_bits(div->sys_regs, div->reg_ctl, + CCU_DIV_CTL_GATE_REF_BUF, 0); + spin_unlock_irqrestore(&div->lock, flags); + + return 0; +} + +static void ccu_div_buf_disable(struct clk_hw *hw) +{ + struct ccu_div *div = to_ccu_div(hw); + unsigned long flags; + + spin_lock_irqsave(&div->lock, flags); + regmap_update_bits(div->sys_regs, div->reg_ctl, + CCU_DIV_CTL_GATE_REF_BUF, CCU_DIV_CTL_GATE_REF_BUF); + spin_unlock_irqrestore(&div->lock, flags); +} + +static int ccu_div_buf_is_enabled(struct clk_hw *hw) +{ + struct ccu_div *div = to_ccu_div(hw); + u32 val = 0; + + regmap_read(div->sys_regs, div->reg_ctl, &val); + + return !(val & CCU_DIV_CTL_GATE_REF_BUF); +} + static unsigned long ccu_div_var_recalc_rate(struct clk_hw *hw, unsigned long parent_rate) { @@ -323,6 +358,7 @@ CCU_DIV_DBGFS_BIT_ATTR("div_en", CCU_DIV_CTL_EN), CCU_DIV_DBGFS_BIT_ATTR("div_rst", CCU_DIV_CTL_RST), CCU_DIV_DBGFS_BIT_ATTR("div_bypass", CCU_DIV_CTL_SET_CLKDIV), + CCU_DIV_DBGFS_BIT_ATTR("div_buf", CCU_DIV_CTL_GATE_REF_BUF), CCU_DIV_DBGFS_BIT_ATTR("div_lock", CCU_DIV_CTL_LOCK_NORMAL) }; @@ -441,6 +477,9 @@ continue; } + if (!strcmp("div_buf", name)) + continue; + bits[didx] = ccu_div_bits[bidx]; bits[didx].div = div; @@ -477,6 +516,21 @@ &ccu_div_dbgfs_fixed_clkdiv_fops); } +static void ccu_div_buf_debug_init(struct clk_hw *hw, struct dentry *dentry) +{ + struct ccu_div *div = to_ccu_div(hw); + struct ccu_div_dbgfs_bit *bit; + + bit = kmalloc(sizeof(*bit), GFP_KERNEL); + if (!bit) + return; + + *bit = ccu_div_bits[3]; + bit->div = div; + debugfs_create_file_unsafe(bit->name, ccu_div_dbgfs_mode, dentry, bit, + &ccu_div_dbgfs_bit_fops); +} + static void ccu_div_fixed_debug_init(struct clk_hw *hw, struct dentry *dentry) { struct ccu_div *div = to_ccu_div(hw); @@ -489,6 +543,7 @@ #define ccu_div_var_debug_init NULL #define ccu_div_gate_debug_init NULL +#define ccu_div_buf_debug_init NULL #define ccu_div_fixed_debug_init NULL #endif /* !CONFIG_DEBUG_FS */ @@ -520,6 +575,13 @@ .debug_init = ccu_div_gate_debug_init }; +static const struct clk_ops ccu_div_buf_ops = { + .enable = ccu_div_buf_enable, + .disable = ccu_div_buf_disable, + .is_enabled = ccu_div_buf_is_enabled, + .debug_init = ccu_div_buf_debug_init +}; + static const struct clk_ops ccu_div_fixed_ops = { .recalc_rate = ccu_div_fixed_recalc_rate, .round_rate = ccu_div_fixed_round_rate, @@ -566,6 +628,8 @@ } else if (div_init->type == CCU_DIV_GATE) { hw_init.ops = &ccu_div_gate_ops; div->divider = div_init->divider; + } else if (div_init->type == CCU_DIV_BUF) { + hw_init.ops = &ccu_div_buf_ops; } else if (div_init->type == CCU_DIV_FIXED) { hw_init.ops = &ccu_div_fixed_ops; div->divider = div_init->divider; @@ -579,6 +643,7 @@ goto err_free_div; } parent_data.fw_name = div_init->parent_name; + parent_data.name = div_init->parent_name; hw_init.parent_data = &parent_data; hw_init.num_parents = 1; --- linux-5.19.0.orig/drivers/clk/baikal-t1/ccu-div.h +++ linux-5.19.0/drivers/clk/baikal-t1/ccu-div.h @@ -14,6 +14,14 @@ #include /* + * CCU Divider private clock IDs + * @CCU_SYS_SATA_CLK: CCU SATA internal clock + * @CCU_SYS_XGMAC_CLK: CCU XGMAC internal clock + */ +#define CCU_SYS_SATA_CLK -1 +#define CCU_SYS_XGMAC_CLK -2 + +/* * CCU Divider private flags * @CCU_DIV_SKIP_ONE: Due to some reason divider can't be set to 1. * It can be 0 though, which is functionally the same. @@ -31,11 +39,13 @@ * enum ccu_div_type - CCU Divider types * @CCU_DIV_VAR: Clocks gate with variable divider. * @CCU_DIV_GATE: Clocks gate with fixed divider. + * @CCU_DIV_BUF: Clock gate with no divider. * @CCU_DIV_FIXED: Ungateable clock with fixed divider. */ enum ccu_div_type { CCU_DIV_VAR, CCU_DIV_GATE, + CCU_DIV_BUF, CCU_DIV_FIXED }; --- linux-5.19.0.orig/drivers/clk/baikal-t1/clk-ccu-div.c +++ linux-5.19.0/drivers/clk/baikal-t1/clk-ccu-div.c @@ -76,6 +76,16 @@ .divider = _divider \ } +#define CCU_DIV_BUF_INFO(_id, _name, _pname, _base, _flags) \ + { \ + .id = _id, \ + .name = _name, \ + .parent_name = _pname, \ + .base = _base, \ + .type = CCU_DIV_BUF, \ + .flags = _flags \ + } + #define CCU_DIV_FIXED_INFO(_id, _name, _pname, _divider) \ { \ .id = _id, \ @@ -188,11 +198,14 @@ * for the SoC devices registers IO-operations. */ static const struct ccu_div_info sys_info[] = { - CCU_DIV_VAR_INFO(CCU_SYS_SATA_REF_CLK, "sys_sata_ref_clk", + CCU_DIV_VAR_INFO(CCU_SYS_SATA_CLK, "sys_sata_clk", "sata_clk", CCU_SYS_SATA_REF_BASE, 4, CLK_SET_RATE_GATE, CCU_DIV_SKIP_ONE | CCU_DIV_LOCK_SHIFTED | CCU_DIV_RESET_DOMAIN), + CCU_DIV_BUF_INFO(CCU_SYS_SATA_REF_CLK, "sys_sata_ref_clk", + "sys_sata_clk", CCU_SYS_SATA_REF_BASE, + CLK_SET_RATE_PARENT), CCU_DIV_VAR_INFO(CCU_SYS_APB_CLK, "sys_apb_clk", "pcie_clk", CCU_SYS_APB_BASE, 5, CLK_IS_CRITICAL, CCU_DIV_RESET_DOMAIN), @@ -204,10 +217,12 @@ "eth_clk", CCU_SYS_GMAC1_BASE, 5), CCU_DIV_FIXED_INFO(CCU_SYS_GMAC1_PTP_CLK, "sys_gmac1_ptp_clk", "eth_clk", 10), - CCU_DIV_GATE_INFO(CCU_SYS_XGMAC_REF_CLK, "sys_xgmac_ref_clk", - "eth_clk", CCU_SYS_XGMAC_BASE, 8), + CCU_DIV_GATE_INFO(CCU_SYS_XGMAC_CLK, "sys_xgmac_clk", + "eth_clk", CCU_SYS_XGMAC_BASE, 1), + CCU_DIV_FIXED_INFO(CCU_SYS_XGMAC_REF_CLK, "sys_xgmac_ref_clk", + "sys_xgmac_clk", 8), CCU_DIV_FIXED_INFO(CCU_SYS_XGMAC_PTP_CLK, "sys_xgmac_ptp_clk", - "eth_clk", 10), + "sys_xgmac_clk", 8), CCU_DIV_GATE_INFO(CCU_SYS_USB_CLK, "sys_usb_clk", "eth_clk", CCU_SYS_USB_BASE, 10), CCU_DIV_VAR_INFO(CCU_SYS_PVT_CLK, "sys_pvt_clk", @@ -396,6 +411,9 @@ init.base = info->base; init.sys_regs = data->sys_regs; init.divider = info->divider; + } else if (init.type == CCU_DIV_BUF) { + init.base = info->base; + init.sys_regs = data->sys_regs; } else { init.divider = info->divider; } --- linux-5.19.0.orig/drivers/clk/bcm/clk-bcm2835.c +++ linux-5.19.0/drivers/clk/bcm/clk-bcm2835.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -502,6 +503,8 @@ bool low_jitter; u32 tcnt_mux; + + bool round_up; }; struct bcm2835_gate_data { @@ -966,9 +969,9 @@ return div; } -static long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock, - unsigned long parent_rate, - u32 div) +static unsigned long bcm2835_clock_rate_from_divisor(struct bcm2835_clock *clock, + unsigned long parent_rate, + u32 div) { const struct bcm2835_clock_data *data = clock->data; u64 temp; @@ -993,12 +996,34 @@ return temp; } +static unsigned long bcm2835_round_rate(unsigned long rate) +{ + unsigned long scaler; + unsigned long limit; + + limit = rate / 100000; + + scaler = 1; + while (scaler < limit) + scaler *= 10; + + /* + * If increasing a clock by less than 0.1% changes it + * from ..999.. to ..000.., round up. + */ + if ((rate + scaler - 1) / scaler % 1000 == 0) + rate = roundup(rate, scaler); + + return rate; +} + static unsigned long bcm2835_clock_get_rate(struct clk_hw *hw, unsigned long parent_rate) { struct bcm2835_clock *clock = bcm2835_clock_from_hw(hw); struct bcm2835_cprman *cprman = clock->cprman; const struct bcm2835_clock_data *data = clock->data; + unsigned long rate; u32 div; if (data->int_bits == 0 && data->frac_bits == 0) @@ -1006,7 +1031,12 @@ div = cprman_read(cprman, data->div_reg); - return bcm2835_clock_rate_from_divisor(clock, parent_rate, div); + rate = bcm2835_clock_rate_from_divisor(clock, parent_rate, div); + + if (data->round_up) + rate = bcm2835_round_rate(rate); + + return rate; } static void bcm2835_clock_wait_busy(struct bcm2835_clock *clock) @@ -1784,7 +1814,7 @@ .load_mask = CM_PLLC_LOADPER, .hold_mask = CM_PLLC_HOLDPER, .fixed_divider = 1, - .flags = CLK_SET_RATE_PARENT), + .flags = CLK_IS_CRITICAL | CLK_SET_RATE_PARENT), /* * PLLD is the display PLL, used to drive DSI display panels. @@ -2143,7 +2173,8 @@ .div_reg = CM_UARTDIV, .int_bits = 10, .frac_bits = 12, - .tcnt_mux = 28), + .tcnt_mux = 28, + .round_up = true), /* TV encoder clock. Only operating frequency is 108Mhz. */ [BCM2835_CLOCK_VEC] = REGISTER_PER_CLK( --- linux-5.19.0.orig/drivers/clk/bcm/clk-iproc-pll.c +++ linux-5.19.0/drivers/clk/bcm/clk-iproc-pll.c @@ -736,6 +736,7 @@ const char *parent_name; struct iproc_clk *iclk_array; struct clk_hw_onecell_data *clk_data; + const char *clk_name; if (WARN_ON(!pll_ctrl) || WARN_ON(!clk_ctrl)) return; @@ -783,7 +784,12 @@ iclk = &iclk_array[0]; iclk->pll = pll; - init.name = node->name; + ret = of_property_read_string_index(node, "clock-output-names", + 0, &clk_name); + if (WARN_ON(ret)) + goto err_pll_register; + + init.name = clk_name; init.ops = &iproc_pll_ops; init.flags = 0; parent_name = of_clk_get_parent_name(node, 0); @@ -803,13 +809,11 @@ goto err_pll_register; clk_data->hws[0] = &iclk->hw; + parent_name = clk_name; /* now initialize and register all leaf clocks */ for (i = 1; i < num_clks; i++) { - const char *clk_name; - memset(&init, 0, sizeof(init)); - parent_name = node->name; ret = of_property_read_string_index(node, "clock-output-names", i, &clk_name); --- linux-5.19.0.orig/drivers/clk/bcm/clk-raspberrypi.c +++ linux-5.19.0/drivers/clk/bcm/clk-raspberrypi.c @@ -203,7 +203,7 @@ ret = raspberrypi_clock_property(rpi->firmware, data, RPI_FIRMWARE_GET_CLOCK_RATE, &val); if (ret) - return ret; + return 0; return val; } @@ -220,7 +220,7 @@ ret = raspberrypi_clock_property(rpi->firmware, data, RPI_FIRMWARE_SET_CLOCK_RATE, &_rate); if (ret) - dev_err_ratelimited(rpi->dev, "Failed to change %s frequency: %d", + dev_err_ratelimited(rpi->dev, "Failed to change %s frequency: %d\n", clk_hw_get_name(hw), ret); return ret; @@ -288,7 +288,7 @@ RPI_FIRMWARE_GET_MIN_CLOCK_RATE, &min_rate); if (ret) { - dev_err(rpi->dev, "Failed to get clock %d min freq: %d", + dev_err(rpi->dev, "Failed to get clock %d min freq: %d\n", id, ret); return ERR_PTR(ret); } @@ -344,8 +344,13 @@ struct rpi_firmware_get_clocks_response *clks; int ret; + /* + * The firmware doesn't guarantee that the last element of + * RPI_FIRMWARE_GET_CLOCKS is zeroed. So allocate an additional + * zero element as sentinel. + */ clks = devm_kcalloc(rpi->dev, - RPI_FIRMWARE_NUM_CLK_ID, sizeof(*clks), + RPI_FIRMWARE_NUM_CLK_ID + 1, sizeof(*clks), GFP_KERNEL); if (!clks) return -ENOMEM; @@ -360,7 +365,7 @@ struct raspberrypi_clk_variant *variant; if (clks->id > RPI_FIRMWARE_NUM_CLK_ID) { - dev_err(rpi->dev, "Unknown clock id: %u", clks->id); + dev_err(rpi->dev, "Unknown clock id: %u\n", clks->id); return -EINVAL; } --- linux-5.19.0.orig/drivers/clk/berlin/bg2.c +++ linux-5.19.0/drivers/clk/berlin/bg2.c @@ -500,12 +500,15 @@ int n, ret; clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL); - if (!clk_data) + if (!clk_data) { + of_node_put(parent_np); return; + } clk_data->num = MAX_CLKS; hws = clk_data->hws; gbase = of_iomap(parent_np, 0); + of_node_put(parent_np); if (!gbase) return; --- linux-5.19.0.orig/drivers/clk/berlin/bg2q.c +++ linux-5.19.0/drivers/clk/berlin/bg2q.c @@ -286,19 +286,23 @@ int n, ret; clk_data = kzalloc(struct_size(clk_data, hws, MAX_CLKS), GFP_KERNEL); - if (!clk_data) + if (!clk_data) { + of_node_put(parent_np); return; + } clk_data->num = MAX_CLKS; hws = clk_data->hws; gbase = of_iomap(parent_np, 0); if (!gbase) { + of_node_put(parent_np); pr_err("%pOF: Unable to map global base\n", np); return; } /* BG2Q CPU PLL is not part of global registers */ cpupll_base = of_iomap(parent_np, 1); + of_node_put(parent_np); if (!cpupll_base) { pr_err("%pOF: Unable to map cpupll base\n", np); iounmap(gbase); --- linux-5.19.0.orig/drivers/clk/clk-ast2600.c +++ linux-5.19.0/drivers/clk/clk-ast2600.c @@ -622,7 +622,7 @@ regmap_write(map, 0x308, 0x12000); /* 3x3 = 9 */ /* P-Bus (BCLK) clock divider */ - hw = clk_hw_register_divider_table(dev, "bclk", "hpll", 0, + hw = clk_hw_register_divider_table(dev, "bclk", "epll", 0, scu_g6_base + ASPEED_G6_CLK_SELECTION1, 20, 3, 0, ast2600_div_table, &aspeed_g6_clk_lock); --- linux-5.19.0.orig/drivers/clk/clk-devres.c +++ linux-5.19.0/drivers/clk/clk-devres.c @@ -4,42 +4,101 @@ #include #include +struct devm_clk_state { + struct clk *clk; + void (*exit)(struct clk *clk); +}; + static void devm_clk_release(struct device *dev, void *res) { - clk_put(*(struct clk **)res); + struct devm_clk_state *state = res; + + if (state->exit) + state->exit(state->clk); + + clk_put(state->clk); } -struct clk *devm_clk_get(struct device *dev, const char *id) +static struct clk *__devm_clk_get(struct device *dev, const char *id, + struct clk *(*get)(struct device *dev, const char *id), + int (*init)(struct clk *clk), + void (*exit)(struct clk *clk)) { - struct clk **ptr, *clk; + struct devm_clk_state *state; + struct clk *clk; + int ret; - ptr = devres_alloc(devm_clk_release, sizeof(*ptr), GFP_KERNEL); - if (!ptr) + state = devres_alloc(devm_clk_release, sizeof(*state), GFP_KERNEL); + if (!state) return ERR_PTR(-ENOMEM); - clk = clk_get(dev, id); - if (!IS_ERR(clk)) { - *ptr = clk; - devres_add(dev, ptr); - } else { - devres_free(ptr); + clk = get(dev, id); + if (IS_ERR(clk)) { + ret = PTR_ERR(clk); + goto err_clk_get; } + if (init) { + ret = init(clk); + if (ret) + goto err_clk_init; + } + + state->clk = clk; + state->exit = exit; + + devres_add(dev, state); + return clk; + +err_clk_init: + + clk_put(clk); +err_clk_get: + + devres_free(state); + return ERR_PTR(ret); +} + +struct clk *devm_clk_get(struct device *dev, const char *id) +{ + return __devm_clk_get(dev, id, clk_get, NULL, NULL); } EXPORT_SYMBOL(devm_clk_get); -struct clk *devm_clk_get_optional(struct device *dev, const char *id) +struct clk *devm_clk_get_prepared(struct device *dev, const char *id) { - struct clk *clk = devm_clk_get(dev, id); + return __devm_clk_get(dev, id, clk_get, clk_prepare, clk_unprepare); +} +EXPORT_SYMBOL_GPL(devm_clk_get_prepared); - if (clk == ERR_PTR(-ENOENT)) - return NULL; +struct clk *devm_clk_get_enabled(struct device *dev, const char *id) +{ + return __devm_clk_get(dev, id, clk_get, + clk_prepare_enable, clk_disable_unprepare); +} +EXPORT_SYMBOL_GPL(devm_clk_get_enabled); - return clk; +struct clk *devm_clk_get_optional(struct device *dev, const char *id) +{ + return __devm_clk_get(dev, id, clk_get_optional, NULL, NULL); } EXPORT_SYMBOL(devm_clk_get_optional); +struct clk *devm_clk_get_optional_prepared(struct device *dev, const char *id) +{ + return __devm_clk_get(dev, id, clk_get_optional, + clk_prepare, clk_unprepare); +} +EXPORT_SYMBOL_GPL(devm_clk_get_optional_prepared); + +struct clk *devm_clk_get_optional_enabled(struct device *dev, const char *id) +{ + return __devm_clk_get(dev, id, clk_get_optional, + clk_prepare_enable, clk_disable_unprepare); +} +EXPORT_SYMBOL_GPL(devm_clk_get_optional_enabled); + struct clk_bulk_devres { struct clk_bulk_data *clks; int num_clks; --- linux-5.19.0.orig/drivers/clk/clk-oxnas.c +++ linux-5.19.0/drivers/clk/clk-oxnas.c @@ -207,7 +207,7 @@ static int oxnas_stdclk_probe(struct platform_device *pdev) { - struct device_node *np = pdev->dev.of_node; + struct device_node *np = pdev->dev.of_node, *parent_np; const struct oxnas_stdclk_data *data; struct regmap *regmap; int ret; @@ -215,7 +215,9 @@ data = of_device_get_match_data(&pdev->dev); - regmap = syscon_node_to_regmap(of_get_parent(np)); + parent_np = of_get_parent(np); + regmap = syscon_node_to_regmap(parent_np); + of_node_put(parent_np); if (IS_ERR(regmap)) { dev_err(&pdev->dev, "failed to have parent regmap\n"); return PTR_ERR(regmap); --- linux-5.19.0.orig/drivers/clk/clk-qoriq.c +++ linux-5.19.0/drivers/clk/clk-qoriq.c @@ -1063,8 +1063,13 @@ */ static void __init legacy_init_clockgen(struct device_node *np) { - if (!clockgen.node) - _clockgen_init(of_get_parent(np), true); + if (!clockgen.node) { + struct device_node *parent_np; + + parent_np = of_get_parent(np); + _clockgen_init(parent_np, true); + of_node_put(parent_np); + } } /* Legacy node */ @@ -1159,6 +1164,7 @@ sysclk = of_get_child_by_name(clockgen.node, "sysclk"); if (sysclk) { clk = sysclk_from_fixed(sysclk, name); + of_node_put(sysclk); if (!IS_ERR(clk)) return clk; } --- linux-5.19.0.orig/drivers/clk/clk-renesas-pcie.c +++ linux-5.19.0/drivers/clk/clk-renesas-pcie.c @@ -90,13 +90,66 @@ .n_yes_ranges = ARRAY_SIZE(rs9_writeable_ranges), }; +static int rs9_regmap_i2c_write(void *context, + unsigned int reg, unsigned int val) +{ + struct i2c_client *i2c = context; + const u8 data[3] = { reg, 1, val }; + const int count = ARRAY_SIZE(data); + int ret; + + ret = i2c_master_send(i2c, data, count); + if (ret == count) + return 0; + else if (ret < 0) + return ret; + else + return -EIO; +} + +static int rs9_regmap_i2c_read(void *context, + unsigned int reg, unsigned int *val) +{ + struct i2c_client *i2c = context; + struct i2c_msg xfer[2]; + u8 txdata = reg; + u8 rxdata[2]; + int ret; + + xfer[0].addr = i2c->addr; + xfer[0].flags = 0; + xfer[0].len = 1; + xfer[0].buf = (void *)&txdata; + + xfer[1].addr = i2c->addr; + xfer[1].flags = I2C_M_RD; + xfer[1].len = 2; + xfer[1].buf = (void *)rxdata; + + ret = i2c_transfer(i2c->adapter, xfer, 2); + if (ret < 0) + return ret; + if (ret != 2) + return -EIO; + + /* + * Byte 0 is transfer length, which is always 1 due + * to BCP register programming to 1 in rs9_probe(), + * ignore it and use data from Byte 1. + */ + *val = rxdata[1]; + return 0; +} + static const struct regmap_config rs9_regmap_config = { .reg_bits = 8, .val_bits = 8, - .cache_type = REGCACHE_FLAT, - .max_register = 0x8, + .cache_type = REGCACHE_NONE, + .max_register = RS9_REG_BCP, .rd_table = &rs9_readable_table, .wr_table = &rs9_writeable_table, + .reg_write = rs9_regmap_i2c_write, + .reg_read = rs9_regmap_i2c_read, }; static int rs9_get_output_config(struct rs9_driver_data *rs9, int idx) @@ -242,11 +295,17 @@ return ret; } - rs9->regmap = devm_regmap_init_i2c(client, &rs9_regmap_config); + rs9->regmap = devm_regmap_init(&client->dev, NULL, + client, &rs9_regmap_config); if (IS_ERR(rs9->regmap)) return dev_err_probe(&client->dev, PTR_ERR(rs9->regmap), "Failed to allocate register map\n"); + /* Always read back 1 Byte via I2C */ + ret = regmap_write(rs9->regmap, RS9_REG_BCP, 1); + if (ret < 0) + return ret; + /* Register clock */ for (i = 0; i < rs9->chip_info->num_clks; i++) { snprintf(name, 5, "DIF%d", i); --- linux-5.19.0.orig/drivers/clk/clk-versaclock5.c +++ linux-5.19.0/drivers/clk/clk-versaclock5.c @@ -1204,7 +1204,7 @@ .model = IDT_VC6_5P49V6901, .clk_fod_cnt = 4, .clk_out_cnt = 5, - .flags = VC5_HAS_PFD_FREQ_DBL, + .flags = VC5_HAS_PFD_FREQ_DBL | VC5_HAS_BYPASS_SYNC_BIT, }; static const struct vc5_chip_info idt_5p49v6965_info = { --- linux-5.19.0.orig/drivers/clk/clk.c +++ linux-5.19.0/drivers/clk/clk.c @@ -840,10 +840,9 @@ if (core->ops->unprepare) core->ops->unprepare(core->hw); - clk_pm_runtime_put(core); - trace_clk_unprepare_complete(core); clk_core_unprepare(core->parent); + clk_pm_runtime_put(core); } static void clk_core_unprepare_lock(struct clk_core *core) --- linux-5.19.0.orig/drivers/clk/imx/clk-fracn-gppll.c +++ linux-5.19.0/drivers/clk/imx/clk-fracn-gppll.c @@ -64,10 +64,10 @@ * Fout = Fvco / (rdiv * odiv) */ static const struct imx_fracn_gppll_rate_table fracn_tbl[] = { - PLL_FRACN_GP(650000000U, 81, 0, 0, 0, 3), - PLL_FRACN_GP(594000000U, 198, 0, 0, 0, 8), - PLL_FRACN_GP(560000000U, 70, 0, 0, 0, 3), - PLL_FRACN_GP(400000000U, 50, 0, 0, 0, 3), + PLL_FRACN_GP(650000000U, 81, 0, 1, 0, 3), + PLL_FRACN_GP(594000000U, 198, 0, 1, 0, 8), + PLL_FRACN_GP(560000000U, 70, 0, 1, 0, 3), + PLL_FRACN_GP(400000000U, 50, 0, 1, 0, 3), PLL_FRACN_GP(393216000U, 81, 92, 100, 0, 5) }; @@ -131,18 +131,7 @@ mfi = FIELD_GET(PLL_MFI_MASK, pll_div); rdiv = FIELD_GET(PLL_RDIV_MASK, pll_div); - rdiv = rdiv + 1; odiv = FIELD_GET(PLL_ODIV_MASK, pll_div); - switch (odiv) { - case 0: - odiv = 2; - break; - case 1: - odiv = 3; - break; - default: - break; - } /* * Sometimes, the recalculated rate has deviation due to @@ -160,6 +149,20 @@ if (rate) return (unsigned long)rate; + if (!rdiv) + rdiv = rdiv + 1; + + switch (odiv) { + case 0: + odiv = 2; + break; + case 1: + odiv = 3; + break; + default: + break; + } + /* Fvco = Fref * (MFI + MFN / MFD) */ fvco = fvco * mfi * mfd + fvco * mfn; do_div(fvco, mfd * rdiv * odiv); --- linux-5.19.0.orig/drivers/clk/imx/clk-imx6sx.c +++ linux-5.19.0/drivers/clk/imx/clk-imx6sx.c @@ -280,13 +280,13 @@ hws[IMX6SX_CLK_SSI3_SEL] = imx_clk_hw_mux("ssi3_sel", base + 0x1c, 14, 2, ssi_sels, ARRAY_SIZE(ssi_sels)); hws[IMX6SX_CLK_SSI2_SEL] = imx_clk_hw_mux("ssi2_sel", base + 0x1c, 12, 2, ssi_sels, ARRAY_SIZE(ssi_sels)); hws[IMX6SX_CLK_SSI1_SEL] = imx_clk_hw_mux("ssi1_sel", base + 0x1c, 10, 2, ssi_sels, ARRAY_SIZE(ssi_sels)); - hws[IMX6SX_CLK_QSPI1_SEL] = imx_clk_hw_mux_flags("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels), CLK_SET_RATE_PARENT); + hws[IMX6SX_CLK_QSPI1_SEL] = imx_clk_hw_mux("qspi1_sel", base + 0x1c, 7, 3, qspi1_sels, ARRAY_SIZE(qspi1_sels)); hws[IMX6SX_CLK_PERCLK_SEL] = imx_clk_hw_mux("perclk_sel", base + 0x1c, 6, 1, perclk_sels, ARRAY_SIZE(perclk_sels)); hws[IMX6SX_CLK_VID_SEL] = imx_clk_hw_mux("vid_sel", base + 0x20, 21, 3, vid_sels, ARRAY_SIZE(vid_sels)); hws[IMX6SX_CLK_ESAI_SEL] = imx_clk_hw_mux("esai_sel", base + 0x20, 19, 2, audio_sels, ARRAY_SIZE(audio_sels)); hws[IMX6SX_CLK_CAN_SEL] = imx_clk_hw_mux("can_sel", base + 0x20, 8, 2, can_sels, ARRAY_SIZE(can_sels)); hws[IMX6SX_CLK_UART_SEL] = imx_clk_hw_mux("uart_sel", base + 0x24, 6, 1, uart_sels, ARRAY_SIZE(uart_sels)); - hws[IMX6SX_CLK_QSPI2_SEL] = imx_clk_hw_mux_flags("qspi2_sel", base + 0x2c, 15, 3, qspi2_sels, ARRAY_SIZE(qspi2_sels), CLK_SET_RATE_PARENT); + hws[IMX6SX_CLK_QSPI2_SEL] = imx_clk_hw_mux("qspi2_sel", base + 0x2c, 15, 3, qspi2_sels, ARRAY_SIZE(qspi2_sels)); hws[IMX6SX_CLK_SPDIF_SEL] = imx_clk_hw_mux("spdif_sel", base + 0x30, 20, 2, audio_sels, ARRAY_SIZE(audio_sels)); hws[IMX6SX_CLK_AUDIO_SEL] = imx_clk_hw_mux("audio_sel", base + 0x30, 7, 2, audio_sels, ARRAY_SIZE(audio_sels)); hws[IMX6SX_CLK_ENET_PRE_SEL] = imx_clk_hw_mux("enet_pre_sel", base + 0x34, 15, 3, enet_pre_sels, ARRAY_SIZE(enet_pre_sels)); --- linux-5.19.0.orig/drivers/clk/imx/clk-imx8mn.c +++ linux-5.19.0/drivers/clk/imx/clk-imx8mn.c @@ -30,7 +30,7 @@ static const char * const video_pll1_bypass_sels[] = {"video_pll1", "video_pll1_ref_sel", }; static const char * const dram_pll_bypass_sels[] = {"dram_pll", "dram_pll_ref_sel", }; static const char * const gpu_pll_bypass_sels[] = {"gpu_pll", "gpu_pll_ref_sel", }; -static const char * const vpu_pll_bypass_sels[] = {"vpu_pll", "vpu_pll_ref_sel", }; +static const char * const m7_alt_pll_bypass_sels[] = {"m7_alt_pll", "m7_alt_pll_ref_sel", }; static const char * const arm_pll_bypass_sels[] = {"arm_pll", "arm_pll_ref_sel", }; static const char * const sys_pll3_bypass_sels[] = {"sys_pll3", "sys_pll3_ref_sel", }; @@ -40,7 +40,7 @@ static const char * const imx8mn_a53_core_sels[] = {"arm_a53_div", "arm_pll_out", }; -static const char * const imx8mn_m7_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_250m", "vpu_pll_out", +static const char * const imx8mn_m7_sels[] = {"osc_24m", "sys_pll2_200m", "sys_pll2_250m", "m7_alt_pll_out", "sys_pll1_800m", "audio_pll1_out", "video_pll1_out", "sys_pll3_out", }; static const char * const imx8mn_gpu_core_sels[] = {"osc_24m", "gpu_pll_out", "sys_pll1_800m", @@ -108,27 +108,27 @@ "sys_pll3_out", "clk_ext4", }; static const char * const imx8mn_sai2_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", - "clk_ext3", "clk_ext4", }; + "video_pll1_out", "sys_pll1_133m", "dummy", + "clk_ext2", "clk_ext3", }; static const char * const imx8mn_sai3_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", + "video_pll1_out", "sys_pll1_133m", "dummy", "clk_ext3", "clk_ext4", }; static const char * const imx8mn_sai5_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", + "video_pll1_out", "sys_pll1_133m", "dummy", "clk_ext2", "clk_ext3", }; static const char * const imx8mn_sai6_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", + "video_pll1_out", "sys_pll1_133m", "dummy", "clk_ext3", "clk_ext4", }; static const char * const imx8mn_sai7_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", + "video_pll1_out", "sys_pll1_133m", "dummy", "clk_ext3", "clk_ext4", }; static const char * const imx8mn_spdif1_sels[] = {"osc_24m", "audio_pll1_out", "audio_pll2_out", - "video_pll1_out", "sys_pll1_133m", "osc_hdmi", + "video_pll1_out", "sys_pll1_133m", "dummy", "clk_ext2", "clk_ext3", }; static const char * const imx8mn_enet_ref_sels[] = {"osc_24m", "sys_pll2_125m", "sys_pll2_50m", @@ -140,8 +140,8 @@ "clk_ext4", "video_pll1_out", }; static const char * const imx8mn_enet_phy_sels[] = {"osc_24m", "sys_pll2_50m", "sys_pll2_125m", - "sys_pll2_200m", "sys_pll2_500m", "video_pll1_out", - "audio_pll2_out", }; + "sys_pll2_200m", "sys_pll2_500m", "audio_pll1_out", + "video_pll_out", "audio_pll2_out", }; static const char * const imx8mn_nand_sels[] = {"osc_24m", "sys_pll2_500m", "audio_pll1_out", "sys_pll1_400m", "audio_pll2_out", "sys_pll3_out", @@ -252,10 +252,10 @@ "audio_pll1_out", "clk_ext1", }; static const char * const imx8mn_wdog_sels[] = {"osc_24m", "sys_pll1_133m", "sys_pll1_160m", - "vpu_pll_out", "sys_pll2_125m", "sys_pll3_out", + "m7_alt_pll_out", "sys_pll2_125m", "sys_pll3_out", "sys_pll1_80m", "sys_pll2_166m", }; -static const char * const imx8mn_wrclk_sels[] = {"osc_24m", "sys_pll1_40m", "vpu_pll_out", +static const char * const imx8mn_wrclk_sels[] = {"osc_24m", "sys_pll1_40m", "m7_alt_pll_out", "sys_pll3_out", "sys_pll2_200m", "sys_pll1_266m", "sys_pll2_500m", "sys_pll1_100m", }; @@ -352,7 +352,7 @@ hws[IMX8MN_VIDEO_PLL1_REF_SEL] = imx_clk_hw_mux("video_pll1_ref_sel", base + 0x28, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); hws[IMX8MN_DRAM_PLL_REF_SEL] = imx_clk_hw_mux("dram_pll_ref_sel", base + 0x50, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); hws[IMX8MN_GPU_PLL_REF_SEL] = imx_clk_hw_mux("gpu_pll_ref_sel", base + 0x64, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); - hws[IMX8MN_VPU_PLL_REF_SEL] = imx_clk_hw_mux("vpu_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); + hws[IMX8MN_M7_ALT_PLL_REF_SEL] = imx_clk_hw_mux("m7_alt_pll_ref_sel", base + 0x74, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); hws[IMX8MN_ARM_PLL_REF_SEL] = imx_clk_hw_mux("arm_pll_ref_sel", base + 0x84, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); hws[IMX8MN_SYS_PLL3_REF_SEL] = imx_clk_hw_mux("sys_pll3_ref_sel", base + 0x114, 0, 2, pll_ref_sels, ARRAY_SIZE(pll_ref_sels)); @@ -361,7 +361,7 @@ hws[IMX8MN_VIDEO_PLL1] = imx_clk_hw_pll14xx("video_pll1", "video_pll1_ref_sel", base + 0x28, &imx_1443x_pll); hws[IMX8MN_DRAM_PLL] = imx_clk_hw_pll14xx("dram_pll", "dram_pll_ref_sel", base + 0x50, &imx_1443x_dram_pll); hws[IMX8MN_GPU_PLL] = imx_clk_hw_pll14xx("gpu_pll", "gpu_pll_ref_sel", base + 0x64, &imx_1416x_pll); - hws[IMX8MN_VPU_PLL] = imx_clk_hw_pll14xx("vpu_pll", "vpu_pll_ref_sel", base + 0x74, &imx_1416x_pll); + hws[IMX8MN_M7_ALT_PLL] = imx_clk_hw_pll14xx("m7_alt_pll", "m7_alt_pll_ref_sel", base + 0x74, &imx_1416x_pll); hws[IMX8MN_ARM_PLL] = imx_clk_hw_pll14xx("arm_pll", "arm_pll_ref_sel", base + 0x84, &imx_1416x_pll); hws[IMX8MN_SYS_PLL1] = imx_clk_hw_fixed("sys_pll1", 800000000); hws[IMX8MN_SYS_PLL2] = imx_clk_hw_fixed("sys_pll2", 1000000000); @@ -373,7 +373,7 @@ hws[IMX8MN_VIDEO_PLL1_BYPASS] = imx_clk_hw_mux_flags("video_pll1_bypass", base + 0x28, 16, 1, video_pll1_bypass_sels, ARRAY_SIZE(video_pll1_bypass_sels), CLK_SET_RATE_PARENT); hws[IMX8MN_DRAM_PLL_BYPASS] = imx_clk_hw_mux_flags("dram_pll_bypass", base + 0x50, 16, 1, dram_pll_bypass_sels, ARRAY_SIZE(dram_pll_bypass_sels), CLK_SET_RATE_PARENT); hws[IMX8MN_GPU_PLL_BYPASS] = imx_clk_hw_mux_flags("gpu_pll_bypass", base + 0x64, 28, 1, gpu_pll_bypass_sels, ARRAY_SIZE(gpu_pll_bypass_sels), CLK_SET_RATE_PARENT); - hws[IMX8MN_VPU_PLL_BYPASS] = imx_clk_hw_mux_flags("vpu_pll_bypass", base + 0x74, 28, 1, vpu_pll_bypass_sels, ARRAY_SIZE(vpu_pll_bypass_sels), CLK_SET_RATE_PARENT); + hws[IMX8MN_M7_ALT_PLL_BYPASS] = imx_clk_hw_mux_flags("m7_alt_pll_bypass", base + 0x74, 28, 1, m7_alt_pll_bypass_sels, ARRAY_SIZE(m7_alt_pll_bypass_sels), CLK_SET_RATE_PARENT); hws[IMX8MN_ARM_PLL_BYPASS] = imx_clk_hw_mux_flags("arm_pll_bypass", base + 0x84, 28, 1, arm_pll_bypass_sels, ARRAY_SIZE(arm_pll_bypass_sels), CLK_SET_RATE_PARENT); hws[IMX8MN_SYS_PLL3_BYPASS] = imx_clk_hw_mux_flags("sys_pll3_bypass", base + 0x114, 28, 1, sys_pll3_bypass_sels, ARRAY_SIZE(sys_pll3_bypass_sels), CLK_SET_RATE_PARENT); @@ -383,7 +383,7 @@ hws[IMX8MN_VIDEO_PLL1_OUT] = imx_clk_hw_gate("video_pll1_out", "video_pll1_bypass", base + 0x28, 13); hws[IMX8MN_DRAM_PLL_OUT] = imx_clk_hw_gate("dram_pll_out", "dram_pll_bypass", base + 0x50, 13); hws[IMX8MN_GPU_PLL_OUT] = imx_clk_hw_gate("gpu_pll_out", "gpu_pll_bypass", base + 0x64, 11); - hws[IMX8MN_VPU_PLL_OUT] = imx_clk_hw_gate("vpu_pll_out", "vpu_pll_bypass", base + 0x74, 11); + hws[IMX8MN_M7_ALT_PLL_OUT] = imx_clk_hw_gate("m7_alt_pll_out", "m7_alt_pll_bypass", base + 0x74, 11); hws[IMX8MN_ARM_PLL_OUT] = imx_clk_hw_gate("arm_pll_out", "arm_pll_bypass", base + 0x84, 11); hws[IMX8MN_SYS_PLL3_OUT] = imx_clk_hw_gate("sys_pll3_out", "sys_pll3_bypass", base + 0x114, 11); --- linux-5.19.0.orig/drivers/clk/imx/clk-imx8mp.c +++ linux-5.19.0/drivers/clk/imx/clk-imx8mp.c @@ -17,6 +17,7 @@ static u32 share_count_nand; static u32 share_count_media; +static u32 share_count_usb; static const char * const pll_ref_sels[] = { "osc_24m", "dummy", "dummy", "dummy", }; static const char * const audio_pll1_bypass_sels[] = {"audio_pll1", "audio_pll1_ref_sel", }; @@ -665,15 +666,16 @@ hws[IMX8MP_CLK_CAN1_ROOT] = imx_clk_hw_gate2("can1_root_clk", "can1", ccm_base + 0x4350, 0); hws[IMX8MP_CLK_CAN2_ROOT] = imx_clk_hw_gate2("can2_root_clk", "can2", ccm_base + 0x4360, 0); hws[IMX8MP_CLK_SDMA1_ROOT] = imx_clk_hw_gate4("sdma1_root_clk", "ipg_root", ccm_base + 0x43a0, 0); - hws[IMX8MP_CLK_ENET_QOS_ROOT] = imx_clk_hw_gate4("enet_qos_root_clk", "sim_enet_root_clk", ccm_base + 0x43b0, 0); hws[IMX8MP_CLK_SIM_ENET_ROOT] = imx_clk_hw_gate4("sim_enet_root_clk", "enet_axi", ccm_base + 0x4400, 0); + hws[IMX8MP_CLK_ENET_QOS_ROOT] = imx_clk_hw_gate4("enet_qos_root_clk", "sim_enet_root_clk", ccm_base + 0x43b0, 0); hws[IMX8MP_CLK_GPU2D_ROOT] = imx_clk_hw_gate4("gpu2d_root_clk", "gpu2d_core", ccm_base + 0x4450, 0); hws[IMX8MP_CLK_GPU3D_ROOT] = imx_clk_hw_gate4("gpu3d_root_clk", "gpu3d_core", ccm_base + 0x4460, 0); hws[IMX8MP_CLK_UART1_ROOT] = imx_clk_hw_gate4("uart1_root_clk", "uart1", ccm_base + 0x4490, 0); hws[IMX8MP_CLK_UART2_ROOT] = imx_clk_hw_gate4("uart2_root_clk", "uart2", ccm_base + 0x44a0, 0); hws[IMX8MP_CLK_UART3_ROOT] = imx_clk_hw_gate4("uart3_root_clk", "uart3", ccm_base + 0x44b0, 0); hws[IMX8MP_CLK_UART4_ROOT] = imx_clk_hw_gate4("uart4_root_clk", "uart4", ccm_base + 0x44c0, 0); - hws[IMX8MP_CLK_USB_ROOT] = imx_clk_hw_gate4("usb_root_clk", "hsio_axi", ccm_base + 0x44d0, 0); + hws[IMX8MP_CLK_USB_ROOT] = imx_clk_hw_gate2_shared2("usb_root_clk", "hsio_axi", ccm_base + 0x44d0, 0, &share_count_usb); + hws[IMX8MP_CLK_USB_SUSP] = imx_clk_hw_gate2_shared2("usb_suspend_clk", "osc_32k", ccm_base + 0x44d0, 0, &share_count_usb); hws[IMX8MP_CLK_USB_PHY_ROOT] = imx_clk_hw_gate4("usb_phy_root_clk", "usb_phy_ref", ccm_base + 0x44f0, 0); hws[IMX8MP_CLK_USDHC1_ROOT] = imx_clk_hw_gate4("usdhc1_root_clk", "usdhc1", ccm_base + 0x4510, 0); hws[IMX8MP_CLK_USDHC2_ROOT] = imx_clk_hw_gate4("usdhc2_root_clk", "usdhc2", ccm_base + 0x4520, 0); --- linux-5.19.0.orig/drivers/clk/imx/clk-imx93.c +++ linux-5.19.0/drivers/clk/imx/clk-imx93.c @@ -150,7 +150,7 @@ { IMX93_CLK_A55_GATE, "a55", "a55_root", 0x8000, }, /* M33 critical clk for system run */ { IMX93_CLK_CM33_GATE, "cm33", "m33_root", 0x8040, CLK_IS_CRITICAL }, - { IMX93_CLK_ADC1_GATE, "adc1", "osc_24m", 0x82c0, }, + { IMX93_CLK_ADC1_GATE, "adc1", "adc_root", 0x82c0, }, { IMX93_CLK_WDOG1_GATE, "wdog1", "osc_24m", 0x8300, }, { IMX93_CLK_WDOG2_GATE, "wdog2", "osc_24m", 0x8340, }, { IMX93_CLK_WDOG3_GATE, "wdog3", "osc_24m", 0x8380, }, @@ -160,9 +160,9 @@ { IMX93_CLK_SEMA2_GATE, "sema2", "bus_wakeup_root", 0x8480, }, { IMX93_CLK_MU_A_GATE, "mu_a", "bus_aon_root", 0x84c0, }, { IMX93_CLK_MU_B_GATE, "mu_b", "bus_aon_root", 0x8500, }, - { IMX93_CLK_EDMA1_GATE, "edma1", "wakeup_axi_root", 0x8540, }, + { IMX93_CLK_EDMA1_GATE, "edma1", "m33_root", 0x8540, }, { IMX93_CLK_EDMA2_GATE, "edma2", "wakeup_axi_root", 0x8580, }, - { IMX93_CLK_FLEXSPI1_GATE, "flexspi", "flexspi_root", 0x8640, }, + { IMX93_CLK_FLEXSPI1_GATE, "flexspi1", "flexspi1_root", 0x8640, }, { IMX93_CLK_GPIO1_GATE, "gpio1", "m33_root", 0x8880, }, { IMX93_CLK_GPIO2_GATE, "gpio2", "bus_wakeup_root", 0x88c0, }, { IMX93_CLK_GPIO3_GATE, "gpio3", "bus_wakeup_root", 0x8900, }, @@ -219,7 +219,7 @@ { IMX93_CLK_LCDIF_GATE, "lcdif", "media_apb_root", 0x9640, }, { IMX93_CLK_PXP_GATE, "pxp", "media_apb_root", 0x9680, }, { IMX93_CLK_ISI_GATE, "isi", "media_apb_root", 0x96c0, }, - { IMX93_CLK_NIC_MEDIA_GATE, "nic_media", "media_apb_root", 0x9700, }, + { IMX93_CLK_NIC_MEDIA_GATE, "nic_media", "media_axi_root", 0x9700, }, { IMX93_CLK_USB_CONTROLLER_GATE, "usb_controller", "hsio_root", 0x9a00, }, { IMX93_CLK_USB_TEST_60M_GATE, "usb_test_60m", "hsio_usb_test_60m_root", 0x9a40, }, { IMX93_CLK_HSIO_TROUT_24M_GATE, "hsio_trout_24m", "osc_24m", 0x9a80, }, @@ -229,7 +229,7 @@ { IMX93_CLK_AUD_XCVR_GATE, "aud_xcvr", "audio_xcvr_root", 0x9b80, }, { IMX93_CLK_SPDIF_GATE, "spdif", "spdif_root", 0x9c00, }, { IMX93_CLK_HSIO_32K_GATE, "hsio_32k", "osc_32k", 0x9dc0, }, - { IMX93_CLK_ENET1_GATE, "enet1", "enet_root", 0x9e00, }, + { IMX93_CLK_ENET1_GATE, "enet1", "wakeup_axi_root", 0x9e00, }, { IMX93_CLK_ENET_QOS_GATE, "enet_qos", "wakeup_axi_root", 0x9e40, }, { IMX93_CLK_SYS_CNT_GATE, "sys_cnt", "osc_24m", 0x9e80, }, { IMX93_CLK_TSTMR1_GATE, "tstmr1", "bus_aon_root", 0x9ec0, }, @@ -247,7 +247,7 @@ struct device_node *np = dev->of_node; const struct imx93_clk_root *root; const struct imx93_clk_ccgr *ccgr; - void __iomem *base = NULL; + void __iomem *base, *anatop_base; int i, ret; clk_hw_data = kzalloc(struct_size(clk_hw_data, hws, @@ -274,20 +274,22 @@ "sys_pll_pfd2", 1, 2); np = of_find_compatible_node(NULL, NULL, "fsl,imx93-anatop"); - base = of_iomap(np, 0); + anatop_base = of_iomap(np, 0); of_node_put(np); - if (WARN_ON(!base)) + if (WARN_ON(!anatop_base)) return -ENOMEM; - clks[IMX93_CLK_AUDIO_PLL] = imx_clk_fracn_gppll("audio_pll", "osc_24m", base + 0x1200, + clks[IMX93_CLK_AUDIO_PLL] = imx_clk_fracn_gppll("audio_pll", "osc_24m", anatop_base + 0x1200, &imx_fracn_gppll); - clks[IMX93_CLK_VIDEO_PLL] = imx_clk_fracn_gppll("video_pll", "osc_24m", base + 0x1400, + clks[IMX93_CLK_VIDEO_PLL] = imx_clk_fracn_gppll("video_pll", "osc_24m", anatop_base + 0x1400, &imx_fracn_gppll); np = dev->of_node; base = devm_platform_ioremap_resource(pdev, 0); - if (WARN_ON(IS_ERR(base))) + if (WARN_ON(IS_ERR(base))) { + iounmap(anatop_base); return PTR_ERR(base); + } for (i = 0; i < ARRAY_SIZE(root_array); i++) { root = &root_array[i]; @@ -317,6 +319,7 @@ unregister_hws: imx_unregister_hw_clocks(clks, IMX93_CLK_END); + iounmap(anatop_base); return ret; } @@ -332,7 +335,7 @@ .driver = { .name = "imx93-ccm", .suppress_bind_attrs = true, - .of_match_table = of_match_ptr(imx93_clk_of_match), + .of_match_table = imx93_clk_of_match, }, }; module_platform_driver(imx93_clk_driver); --- linux-5.19.0.orig/drivers/clk/imx/clk-imxrt1050.c +++ linux-5.19.0/drivers/clk/imx/clk-imxrt1050.c @@ -140,7 +140,7 @@ hws[IMXRT1050_CLK_USDHC1] = imx_clk_hw_gate2("usdhc1", "usdhc1_podf", ccm_base + 0x80, 2); hws[IMXRT1050_CLK_USDHC2] = imx_clk_hw_gate2("usdhc2", "usdhc2_podf", ccm_base + 0x80, 4); hws[IMXRT1050_CLK_LPUART1] = imx_clk_hw_gate2("lpuart1", "lpuart_podf", ccm_base + 0x7c, 24); - hws[IMXRT1050_CLK_LCDIF_APB] = imx_clk_hw_gate2("lcdif", "lcdif_podf", ccm_base + 0x74, 10); + hws[IMXRT1050_CLK_LCDIF_APB] = imx_clk_hw_gate2("lcdif", "lcdif_podf", ccm_base + 0x70, 28); hws[IMXRT1050_CLK_DMA] = imx_clk_hw_gate("dma", "ipg", ccm_base + 0x7C, 6); hws[IMXRT1050_CLK_DMA_MUX] = imx_clk_hw_gate("dmamux0", "ipg", ccm_base + 0x7C, 7); imx_check_clk_hws(hws, IMXRT1050_CLK_END); --- linux-5.19.0.orig/drivers/clk/imx/clk-scu.c +++ linux-5.19.0/drivers/clk/imx/clk-scu.c @@ -695,7 +695,11 @@ pr_warn("%s: failed to attached the power domain %d\n", name, ret); - platform_device_add(pdev); + ret = platform_device_add(pdev); + if (ret) { + platform_device_put(pdev); + return ERR_PTR(ret); + } /* For API backwards compatiblilty, simply return NULL for success */ return NULL; --- linux-5.19.0.orig/drivers/clk/ingenic/tcu.c +++ linux-5.19.0/drivers/clk/ingenic/tcu.c @@ -101,15 +101,11 @@ bool enabled = false; /* - * If the SoC has no global TCU clock, we must ungate the channel's - * clock to be able to access its registers. - * If we have a TCU clock, it will be enabled automatically as it has - * been attached to the regmap. + * According to the programming manual, a timer channel's registers can + * only be accessed when the channel's stop bit is clear. */ - if (!tcu->clk) { - enabled = !!ingenic_tcu_is_enabled(hw); - regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); - } + enabled = !!ingenic_tcu_is_enabled(hw); + regmap_write(tcu->map, TCU_REG_TSCR, BIT(info->gate_bit)); return enabled; } @@ -120,8 +116,7 @@ const struct ingenic_tcu_clk_info *info = tcu_clk->info; struct ingenic_tcu *tcu = tcu_clk->tcu; - if (!tcu->clk) - regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); + regmap_write(tcu->map, TCU_REG_TSSR, BIT(info->gate_bit)); } static u8 ingenic_tcu_get_parent(struct clk_hw *hw) --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt7986-infracfg.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt7986-infracfg.c @@ -153,7 +153,7 @@ 18), GATE_INFRA1(CLK_INFRA_MSDC_66M_CK, "infra_msdc_66m", "infra_sysaxi_d2", 19), - GATE_INFRA1(CLK_INFRA_ADC_26M_CK, "infra_adc_26m", "csw_f26m_sel", 20), + GATE_INFRA1(CLK_INFRA_ADC_26M_CK, "infra_adc_26m", "infra_adc_frc", 20), GATE_INFRA1(CLK_INFRA_ADC_FRC_CK, "infra_adc_frc", "csw_f26m_sel", 21), GATE_INFRA1(CLK_INFRA_FBIST2FPC_CK, "infra_fbist2fpc", "nfi1x_sel", 23), /* INFRA2 */ --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt8183-mfgcfg.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt8183-mfgcfg.c @@ -18,9 +18,9 @@ .sta_ofs = 0x0, }; -#define GATE_MFG(_id, _name, _parent, _shift) \ - GATE_MTK(_id, _name, _parent, &mfg_cg_regs, _shift, \ - &mtk_clk_gate_ops_setclr) +#define GATE_MFG(_id, _name, _parent, _shift) \ + GATE_MTK_FLAGS(_id, _name, _parent, &mfg_cg_regs, _shift, \ + &mtk_clk_gate_ops_setclr, CLK_SET_RATE_PARENT) static const struct mtk_gate mfg_clks[] = { GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "mfg_sel", 0) --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt8195-infra_ao.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt8195-infra_ao.c @@ -54,8 +54,12 @@ #define GATE_INFRA_AO1(_id, _name, _parent, _shift) \ GATE_INFRA_AO1_FLAGS(_id, _name, _parent, _shift, 0) +#define GATE_INFRA_AO2_FLAGS(_id, _name, _parent, _shift, _flag) \ + GATE_MTK_FLAGS(_id, _name, _parent, &infra_ao2_cg_regs, _shift, \ + &mtk_clk_gate_ops_setclr, _flag) + #define GATE_INFRA_AO2(_id, _name, _parent, _shift) \ - GATE_MTK(_id, _name, _parent, &infra_ao2_cg_regs, _shift, &mtk_clk_gate_ops_setclr) + GATE_INFRA_AO2_FLAGS(_id, _name, _parent, _shift, 0) #define GATE_INFRA_AO3_FLAGS(_id, _name, _parent, _shift, _flag) \ GATE_MTK_FLAGS(_id, _name, _parent, &infra_ao3_cg_regs, _shift, \ @@ -135,8 +139,11 @@ GATE_INFRA_AO2(CLK_INFRA_AO_UNIPRO_SYS, "infra_ao_unipro_sys", "top_ufs", 11), GATE_INFRA_AO2(CLK_INFRA_AO_UNIPRO_TICK, "infra_ao_unipro_tick", "top_ufs_tick1us", 12), GATE_INFRA_AO2(CLK_INFRA_AO_UFS_MP_SAP_B, "infra_ao_ufs_mp_sap_b", "top_ufs_mp_sap_cfg", 13), - GATE_INFRA_AO2(CLK_INFRA_AO_PWRMCU, "infra_ao_pwrmcu", "top_pwrmcu", 15), - GATE_INFRA_AO2(CLK_INFRA_AO_PWRMCU_BUS_H, "infra_ao_pwrmcu_bus_h", "top_axi", 17), + /* pwrmcu is used by ATF for platform PM: clocks must never be disabled by the kernel */ + GATE_INFRA_AO2_FLAGS(CLK_INFRA_AO_PWRMCU, "infra_ao_pwrmcu", "top_pwrmcu", 15, + CLK_IS_CRITICAL), + GATE_INFRA_AO2_FLAGS(CLK_INFRA_AO_PWRMCU_BUS_H, "infra_ao_pwrmcu_bus_h", "top_axi", 17, + CLK_IS_CRITICAL), GATE_INFRA_AO2(CLK_INFRA_AO_APDMA_B, "infra_ao_apdma_b", "top_axi", 18), GATE_INFRA_AO2(CLK_INFRA_AO_SPI4, "infra_ao_spi4", "top_spi", 25), GATE_INFRA_AO2(CLK_INFRA_AO_SPI5, "infra_ao_spi5", "top_spi", 26), --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt8195-mfg.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt8195-mfg.c @@ -17,10 +17,12 @@ }; #define GATE_MFG(_id, _name, _parent, _shift) \ - GATE_MTK(_id, _name, _parent, &mfg_cg_regs, _shift, &mtk_clk_gate_ops_setclr) + GATE_MTK_FLAGS(_id, _name, _parent, &mfg_cg_regs, \ + _shift, &mtk_clk_gate_ops_setclr, \ + CLK_SET_RATE_PARENT) static const struct mtk_gate mfg_clks[] = { - GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "top_mfg_core_tmp", 0), + GATE_MFG(CLK_MFG_BG3D, "mfg_bg3d", "mfg_ck_fast_ref", 0), }; static const struct mtk_clk_desc mfg_desc = { --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt8195-vdo0.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt8195-vdo0.c @@ -37,6 +37,10 @@ #define GATE_VDO0_2(_id, _name, _parent, _shift) \ GATE_MTK(_id, _name, _parent, &vdo0_2_cg_regs, _shift, &mtk_clk_gate_ops_setclr) +#define GATE_VDO0_2_FLAGS(_id, _name, _parent, _shift, _flags) \ + GATE_MTK_FLAGS(_id, _name, _parent, &vdo0_2_cg_regs, _shift, \ + &mtk_clk_gate_ops_setclr, _flags) + static const struct mtk_gate vdo0_clks[] = { /* VDO0_0 */ GATE_VDO0_0(CLK_VDO0_DISP_OVL0, "vdo0_disp_ovl0", "top_vpp", 0), @@ -85,7 +89,8 @@ /* VDO0_2 */ GATE_VDO0_2(CLK_VDO0_DSI0_DSI, "vdo0_dsi0_dsi", "top_dsi_occ", 0), GATE_VDO0_2(CLK_VDO0_DSI1_DSI, "vdo0_dsi1_dsi", "top_dsi_occ", 8), - GATE_VDO0_2(CLK_VDO0_DP_INTF0_DP_INTF, "vdo0_dp_intf0_dp_intf", "top_edp", 16), + GATE_VDO0_2_FLAGS(CLK_VDO0_DP_INTF0_DP_INTF, "vdo0_dp_intf0_dp_intf", + "top_edp", 16, CLK_SET_RATE_PARENT), }; static int clk_mt8195_vdo0_probe(struct platform_device *pdev) --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mt8195-vdo1.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mt8195-vdo1.c @@ -43,6 +43,10 @@ #define GATE_VDO1_2(_id, _name, _parent, _shift) \ GATE_MTK(_id, _name, _parent, &vdo1_2_cg_regs, _shift, &mtk_clk_gate_ops_setclr) +#define GATE_VDO1_2_FLAGS(_id, _name, _parent, _shift, _flags) \ + GATE_MTK_FLAGS(_id, _name, _parent, &vdo1_2_cg_regs, _shift, \ + &mtk_clk_gate_ops_setclr, _flags) + #define GATE_VDO1_3(_id, _name, _parent, _shift) \ GATE_MTK(_id, _name, _parent, &vdo1_3_cg_regs, _shift, &mtk_clk_gate_ops_setclr) @@ -99,7 +103,7 @@ GATE_VDO1_2(CLK_VDO1_DISP_MONITOR_DPI0, "vdo1_disp_monitor_dpi0", "top_vpp", 1), GATE_VDO1_2(CLK_VDO1_DPI1, "vdo1_dpi1", "top_vpp", 8), GATE_VDO1_2(CLK_VDO1_DISP_MONITOR_DPI1, "vdo1_disp_monitor_dpi1", "top_vpp", 9), - GATE_VDO1_2(CLK_VDO1_DPINTF, "vdo1_dpintf", "top_vpp", 16), + GATE_VDO1_2_FLAGS(CLK_VDO1_DPINTF, "vdo1_dpintf", "top_dp", 16, CLK_SET_RATE_PARENT), GATE_VDO1_2(CLK_VDO1_DISP_MONITOR_DPINTF, "vdo1_disp_monitor_dpintf", "top_vpp", 17), /* VDO1_3 */ GATE_VDO1_3(CLK_VDO1_26M_SLOW, "vdo1_26m_slow", "clk26m", 8), --- linux-5.19.0.orig/drivers/clk/mediatek/clk-mtk.c +++ linux-5.19.0/drivers/clk/mediatek/clk-mtk.c @@ -80,7 +80,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[rc->id])) continue; - clk_unregister_fixed_rate(clk_data->hws[rc->id]->clk); + clk_hw_unregister_fixed_rate(clk_data->hws[rc->id]); clk_data->hws[rc->id] = ERR_PTR(-ENOENT); } @@ -102,7 +102,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[rc->id])) continue; - clk_unregister_fixed_rate(clk_data->hws[rc->id]->clk); + clk_hw_unregister_fixed_rate(clk_data->hws[rc->id]); clk_data->hws[rc->id] = ERR_PTR(-ENOENT); } } @@ -146,7 +146,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[ff->id])) continue; - clk_unregister_fixed_factor(clk_data->hws[ff->id]->clk); + clk_hw_unregister_fixed_factor(clk_data->hws[ff->id]); clk_data->hws[ff->id] = ERR_PTR(-ENOENT); } @@ -168,7 +168,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[ff->id])) continue; - clk_unregister_fixed_factor(clk_data->hws[ff->id]->clk); + clk_hw_unregister_fixed_factor(clk_data->hws[ff->id]); clk_data->hws[ff->id] = ERR_PTR(-ENOENT); } } @@ -393,7 +393,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[mcd->id])) continue; - mtk_clk_unregister_composite(clk_data->hws[mcd->id]); + clk_hw_unregister_divider(clk_data->hws[mcd->id]); clk_data->hws[mcd->id] = ERR_PTR(-ENOENT); } @@ -414,7 +414,7 @@ if (IS_ERR_OR_NULL(clk_data->hws[mcd->id])) continue; - clk_unregister_divider(clk_data->hws[mcd->id]->clk); + clk_hw_unregister_divider(clk_data->hws[mcd->id]); clk_data->hws[mcd->id] = ERR_PTR(-ENOENT); } } --- linux-5.19.0.orig/drivers/clk/mediatek/reset.c +++ linux-5.19.0/drivers/clk/mediatek/reset.c @@ -25,7 +25,7 @@ struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); unsigned int reg = data->regofs + ((id / 32) << 4); - return regmap_write(data->regmap, reg, 1); + return regmap_write(data->regmap, reg, BIT(id % 32)); } static int mtk_reset_deassert_set_clr(struct reset_controller_dev *rcdev, @@ -34,7 +34,7 @@ struct mtk_reset *data = container_of(rcdev, struct mtk_reset, rcdev); unsigned int reg = data->regofs + ((id / 32) << 4) + 0x4; - return regmap_write(data->regmap, reg, 1); + return regmap_write(data->regmap, reg, BIT(id % 32)); } static int mtk_reset_assert(struct reset_controller_dev *rcdev, --- linux-5.19.0.orig/drivers/clk/meson/meson-aoclk.c +++ linux-5.19.0/drivers/clk/meson/meson-aoclk.c @@ -38,6 +38,7 @@ struct meson_aoclk_reset_controller *rstc; struct meson_aoclk_data *data; struct device *dev = &pdev->dev; + struct device_node *np; struct regmap *regmap; int ret, clkid; @@ -49,7 +50,9 @@ if (!rstc) return -ENOMEM; - regmap = syscon_node_to_regmap(of_get_parent(dev->of_node)); + np = of_get_parent(dev->of_node); + regmap = syscon_node_to_regmap(np); + of_node_put(np); if (IS_ERR(regmap)) { dev_err(dev, "failed to get regmap\n"); return PTR_ERR(regmap); --- linux-5.19.0.orig/drivers/clk/meson/meson-eeclk.c +++ linux-5.19.0/drivers/clk/meson/meson-eeclk.c @@ -18,6 +18,7 @@ { const struct meson_eeclkc_data *data; struct device *dev = &pdev->dev; + struct device_node *np; struct regmap *map; int ret, i; @@ -26,7 +27,9 @@ return -EINVAL; /* Get the hhi system controller node */ - map = syscon_node_to_regmap(of_get_parent(dev->of_node)); + np = of_get_parent(dev->of_node); + map = syscon_node_to_regmap(np); + of_node_put(np); if (IS_ERR(map)) { dev_err(dev, "failed to get HHI regmap\n"); --- linux-5.19.0.orig/drivers/clk/meson/meson8b.c +++ linux-5.19.0/drivers/clk/meson/meson8b.c @@ -3792,12 +3792,15 @@ struct clk_hw_onecell_data *clk_hw_onecell_data) { struct meson8b_clk_reset *rstc; + struct device_node *parent_np; const char *notifier_clk_name; struct clk *notifier_clk; struct regmap *map; int i, ret; - map = syscon_node_to_regmap(of_get_parent(np)); + parent_np = of_get_parent(np); + map = syscon_node_to_regmap(parent_np); + of_node_put(parent_np); if (IS_ERR(map)) { pr_err("failed to get HHI regmap - Trying obsolete regs\n"); return; --- linux-5.19.0.orig/drivers/clk/microchip/clk-mpfs.c +++ linux-5.19.0/drivers/clk/microchip/clk-mpfs.c @@ -239,6 +239,11 @@ .hw.init = CLK_HW_INIT(_name, _parent, &mpfs_clk_cfg_ops, 0), \ } +#define CLK_CPU_OFFSET 0u +#define CLK_AXI_OFFSET 1u +#define CLK_AHB_OFFSET 2u +#define CLK_RTCREF_OFFSET 3u + static struct mpfs_cfg_hw_clock mpfs_cfg_clks[] = { CLK_CFG(CLK_CPU, "clk_cpu", "clk_msspll", 0, 2, mpfs_div_cpu_axi_table, 0, REG_CLOCK_CONFIG_CR), @@ -362,7 +367,7 @@ _flags), \ } -#define PARENT_CLK(PARENT) (&mpfs_cfg_clks[CLK_##PARENT].hw) +#define PARENT_CLK(PARENT) (&mpfs_cfg_clks[CLK_##PARENT##_OFFSET].hw) /* * Critical clocks: @@ -370,6 +375,8 @@ * trap handler * - CLK_MMUART0: reserved by the hss * - CLK_DDRC: provides clock to the ddr subsystem + * - CLK_RTC: the onboard RTC's AHB bus clock must be kept running as the rtc will stop + * if the AHB interface clock is disabled * - CLK_FICx: these provide the processor side clocks to the "FIC" (Fabric InterConnect) * clock domain crossers which provide the interface to the FPGA fabric. Disabling them * causes the FPGA fabric to go into reset. @@ -394,7 +401,7 @@ CLK_PERIPH(CLK_CAN0, "clk_periph_can0", PARENT_CLK(AHB), 14, 0), CLK_PERIPH(CLK_CAN1, "clk_periph_can1", PARENT_CLK(AHB), 15, 0), CLK_PERIPH(CLK_USB, "clk_periph_usb", PARENT_CLK(AHB), 16, 0), - CLK_PERIPH(CLK_RTC, "clk_periph_rtc", PARENT_CLK(AHB), 18, 0), + CLK_PERIPH(CLK_RTC, "clk_periph_rtc", PARENT_CLK(AHB), 18, CLK_IS_CRITICAL), CLK_PERIPH(CLK_QSPI, "clk_periph_qspi", PARENT_CLK(AHB), 19, 0), CLK_PERIPH(CLK_GPIO0, "clk_periph_gpio0", PARENT_CLK(AHB), 20, 0), CLK_PERIPH(CLK_GPIO1, "clk_periph_gpio1", PARENT_CLK(AHB), 21, 0), --- linux-5.19.0.orig/drivers/clk/qcom/Kconfig +++ linux-5.19.0/drivers/clk/qcom/Kconfig @@ -637,6 +637,7 @@ config SM_GCC_6115 tristate "SM6115 and SM4250 Global Clock Controller" + select QCOM_GDSC help Support for the global clock controller on SM6115 and SM4250 devices. Say Y if you want to use peripheral devices such as UART, SPI, --- linux-5.19.0.orig/drivers/clk/qcom/apss-ipq6018.c +++ linux-5.19.0/drivers/clk/qcom/apss-ipq6018.c @@ -57,7 +57,7 @@ .parent_hws = (const struct clk_hw *[]){ &apcs_alias0_clk_src.clkr.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT, + .flags = CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, .ops = &clk_branch2_ops, }, }, --- linux-5.19.0.orig/drivers/clk/qcom/camcc-sdm845.c +++ linux-5.19.0/drivers/clk/qcom/camcc-sdm845.c @@ -1534,6 +1534,8 @@ }, }; +static struct gdsc titan_top_gdsc; + static struct gdsc bps_gdsc = { .gdscr = 0x6004, .pd = { @@ -1567,6 +1569,7 @@ .name = "ife_0_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, }; @@ -1576,6 +1579,7 @@ .name = "ife_1_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, }; --- linux-5.19.0.orig/drivers/clk/qcom/camcc-sm8250.c +++ linux-5.19.0/drivers/clk/qcom/camcc-sm8250.c @@ -2205,6 +2205,8 @@ }, }; +static struct gdsc titan_top_gdsc; + static struct gdsc bps_gdsc = { .gdscr = 0x7004, .pd = { @@ -2238,6 +2240,7 @@ .name = "ife_0_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, }; @@ -2247,6 +2250,7 @@ .name = "ife_1_gdsc", }, .flags = POLL_CFG_GDSCR, + .parent = &titan_top_gdsc.pd, .pwrsts = PWRSTS_OFF_ON, }; @@ -2440,17 +2444,7 @@ }, }; -static int __init cam_cc_sm8250_init(void) -{ - return platform_driver_register(&cam_cc_sm8250_driver); -} -subsys_initcall(cam_cc_sm8250_init); - -static void __exit cam_cc_sm8250_exit(void) -{ - platform_driver_unregister(&cam_cc_sm8250_driver); -} -module_exit(cam_cc_sm8250_exit); +module_platform_driver(cam_cc_sm8250_driver); MODULE_DESCRIPTION("QTI CAMCC SM8250 Driver"); MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/clk/qcom/clk-alpha-pll.c +++ linux-5.19.0/drivers/clk/qcom/clk-alpha-pll.c @@ -1439,7 +1439,7 @@ EXPORT_SYMBOL_GPL(clk_alpha_pll_postdiv_fabia_ops); /** - * clk_lucid_pll_configure - configure the lucid pll + * clk_trion_pll_configure - configure the trion pll * * @pll: clk alpha pll * @regmap: register map --- linux-5.19.0.orig/drivers/clk/qcom/clk-krait.c +++ linux-5.19.0/drivers/clk/qcom/clk-krait.c @@ -32,11 +32,16 @@ regval |= (sel & mux->mask) << (mux->shift + LPL_SHIFT); } krait_set_l2_indirect_reg(mux->offset, regval); - spin_unlock_irqrestore(&krait_clock_reg_lock, flags); /* Wait for switch to complete. */ mb(); udelay(1); + + /* + * Unlock now to make sure the mux register is not + * modified while switching to the new parent. + */ + spin_unlock_irqrestore(&krait_clock_reg_lock, flags); } static int krait_mux_set_parent(struct clk_hw *hw, u8 index) @@ -93,6 +98,8 @@ if (d->lpl) mask = mask << (d->shift + LPL_SHIFT) | mask << d->shift; + else + mask <<= d->shift; spin_lock_irqsave(&krait_clock_reg_lock, flags); val = krait_get_l2_indirect_reg(d->offset); --- linux-5.19.0.orig/drivers/clk/qcom/clk-rcg2.c +++ linux-5.19.0/drivers/clk/qcom/clk-rcg2.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -437,7 +438,7 @@ static int clk_rcg2_set_duty_cycle(struct clk_hw *hw, struct clk_duty *duty) { struct clk_rcg2 *rcg = to_clk_rcg2(hw); - u32 notn_m, n, m, d, not2d, mask, duty_per; + u32 notn_m, n, m, d, not2d, mask, duty_per, cfg; int ret; /* Duty-cycle cannot be modified for non-MND RCGs */ @@ -448,6 +449,11 @@ regmap_read(rcg->clkr.regmap, RCG_N_OFFSET(rcg), ¬n_m); regmap_read(rcg->clkr.regmap, RCG_M_OFFSET(rcg), &m); + regmap_read(rcg->clkr.regmap, RCG_CFG_OFFSET(rcg), &cfg); + + /* Duty-cycle cannot be modified if MND divider is in bypass mode. */ + if (!(cfg & CFG_MODE_MASK)) + return -EINVAL; n = (~(notn_m) + m) & mask; @@ -456,9 +462,11 @@ /* Calculate 2d value */ d = DIV_ROUND_CLOSEST(n * duty_per * 2, 100); - /* Check bit widths of 2d. If D is too big reduce duty cycle. */ - if (d > mask) - d = mask; + /* + * Check bit widths of 2d. If D is too big reduce duty cycle. + * Also make sure it is never zero. + */ + d = clamp_val(d, 1, mask); if ((d / 2) > (n - m)) d = (n - m) * 2; --- linux-5.19.0.orig/drivers/clk/qcom/dispcc-sm6350.c +++ linux-5.19.0/drivers/clk/qcom/dispcc-sm6350.c @@ -306,7 +306,7 @@ .name = "disp_cc_mdss_pclk0_clk_src", .parent_data = disp_cc_parent_data_5, .num_parents = ARRAY_SIZE(disp_cc_parent_data_5), - .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE, + .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE | CLK_OPS_PARENT_ENABLE, .ops = &clk_pixel_ops, }, }; @@ -385,7 +385,7 @@ &disp_cc_mdss_byte0_clk_src.clkr.hw, }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE, + .flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE | CLK_OPS_PARENT_ENABLE, .ops = &clk_branch2_ops, }, }, --- linux-5.19.0.orig/drivers/clk/qcom/dispcc-sm8250.c +++ linux-5.19.0/drivers/clk/qcom/dispcc-sm8250.c @@ -1134,7 +1134,6 @@ }, .pwrsts = PWRSTS_OFF_ON, .flags = HW_CTRL, - .supply = "mmcx", }; static struct clk_regmap *disp_cc_sm8250_clocks[] = { --- linux-5.19.0.orig/drivers/clk/qcom/gcc-ipq806x.c +++ linux-5.19.0/drivers/clk/qcom/gcc-ipq806x.c @@ -79,7 +79,9 @@ .enable_mask = BIT(4), .hw.init = &(struct clk_init_data){ .name = "pll4_vote", - .parent_names = (const char *[]){ "pll4" }, + .parent_data = &(const struct clk_parent_data){ + .fw_name = "pll4", .name = "pll4", + }, .num_parents = 1, .ops = &clk_pll_vote_ops, }, --- linux-5.19.0.orig/drivers/clk/qcom/gcc-ipq8074.c +++ linux-5.19.0/drivers/clk/qcom/gcc-ipq8074.c @@ -662,6 +662,7 @@ }, .num_parents = 1, .ops = &clk_branch2_ops, + .flags = CLK_IS_CRITICAL, }, }, }; @@ -1788,8 +1789,10 @@ static const struct freq_tbl ftbl_nss_port5_rx_clk_src[] = { F(19200000, P_XO, 1, 0, 0), F(25000000, P_UNIPHY1_RX, 12.5, 0, 0), + F(25000000, P_UNIPHY0_RX, 5, 0, 0), F(78125000, P_UNIPHY1_RX, 4, 0, 0), F(125000000, P_UNIPHY1_RX, 2.5, 0, 0), + F(125000000, P_UNIPHY0_RX, 1, 0, 0), F(156250000, P_UNIPHY1_RX, 2, 0, 0), F(312500000, P_UNIPHY1_RX, 1, 0, 0), { } @@ -1828,8 +1831,10 @@ static const struct freq_tbl ftbl_nss_port5_tx_clk_src[] = { F(19200000, P_XO, 1, 0, 0), F(25000000, P_UNIPHY1_TX, 12.5, 0, 0), + F(25000000, P_UNIPHY0_TX, 5, 0, 0), F(78125000, P_UNIPHY1_TX, 4, 0, 0), F(125000000, P_UNIPHY1_TX, 2.5, 0, 0), + F(125000000, P_UNIPHY0_TX, 1, 0, 0), F(156250000, P_UNIPHY1_TX, 2, 0, 0), F(312500000, P_UNIPHY1_TX, 1, 0, 0), { } @@ -1867,8 +1872,10 @@ static const struct freq_tbl ftbl_nss_port6_rx_clk_src[] = { F(19200000, P_XO, 1, 0, 0), + F(25000000, P_UNIPHY2_RX, 5, 0, 0), F(25000000, P_UNIPHY2_RX, 12.5, 0, 0), F(78125000, P_UNIPHY2_RX, 4, 0, 0), + F(125000000, P_UNIPHY2_RX, 1, 0, 0), F(125000000, P_UNIPHY2_RX, 2.5, 0, 0), F(156250000, P_UNIPHY2_RX, 2, 0, 0), F(312500000, P_UNIPHY2_RX, 1, 0, 0), @@ -1907,8 +1914,10 @@ static const struct freq_tbl ftbl_nss_port6_tx_clk_src[] = { F(19200000, P_XO, 1, 0, 0), + F(25000000, P_UNIPHY2_TX, 5, 0, 0), F(25000000, P_UNIPHY2_TX, 12.5, 0, 0), F(78125000, P_UNIPHY2_TX, 4, 0, 0), + F(125000000, P_UNIPHY2_TX, 1, 0, 0), F(125000000, P_UNIPHY2_TX, 2.5, 0, 0), F(156250000, P_UNIPHY2_TX, 2, 0, 0), F(312500000, P_UNIPHY2_TX, 1, 0, 0), @@ -3346,6 +3355,7 @@ static struct clk_branch gcc_ubi0_ahb_clk = { .halt_reg = 0x6820c, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x6820c, .enable_mask = BIT(0), @@ -3363,6 +3373,7 @@ static struct clk_branch gcc_ubi0_axi_clk = { .halt_reg = 0x68200, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68200, .enable_mask = BIT(0), @@ -3380,6 +3391,7 @@ static struct clk_branch gcc_ubi0_nc_axi_clk = { .halt_reg = 0x68204, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68204, .enable_mask = BIT(0), @@ -3397,6 +3409,7 @@ static struct clk_branch gcc_ubi0_core_clk = { .halt_reg = 0x68210, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68210, .enable_mask = BIT(0), @@ -3414,6 +3427,7 @@ static struct clk_branch gcc_ubi0_mpt_clk = { .halt_reg = 0x68208, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68208, .enable_mask = BIT(0), @@ -3431,6 +3445,7 @@ static struct clk_branch gcc_ubi1_ahb_clk = { .halt_reg = 0x6822c, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x6822c, .enable_mask = BIT(0), @@ -3448,6 +3463,7 @@ static struct clk_branch gcc_ubi1_axi_clk = { .halt_reg = 0x68220, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68220, .enable_mask = BIT(0), @@ -3465,6 +3481,7 @@ static struct clk_branch gcc_ubi1_nc_axi_clk = { .halt_reg = 0x68224, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68224, .enable_mask = BIT(0), @@ -3482,6 +3499,7 @@ static struct clk_branch gcc_ubi1_core_clk = { .halt_reg = 0x68230, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68230, .enable_mask = BIT(0), @@ -3499,6 +3517,7 @@ static struct clk_branch gcc_ubi1_mpt_clk = { .halt_reg = 0x68228, + .halt_check = BRANCH_HALT_DELAY, .clkr = { .enable_reg = 0x68228, .enable_mask = BIT(0), @@ -4371,6 +4390,33 @@ }, }; +static const struct alpha_pll_config ubi32_pll_config = { + .l = 0x4e, + .config_ctl_val = 0x200d4aa8, + .config_ctl_hi_val = 0x3c2, + .main_output_mask = BIT(0), + .aux_output_mask = BIT(1), + .pre_div_val = 0x0, + .pre_div_mask = BIT(12), + .post_div_val = 0x0, + .post_div_mask = GENMASK(9, 8), +}; + +static const struct alpha_pll_config nss_crypto_pll_config = { + .l = 0x3e, + .alpha = 0x0, + .alpha_hi = 0x80, + .config_ctl_val = 0x4001055b, + .main_output_mask = BIT(0), + .pre_div_val = 0x0, + .pre_div_mask = GENMASK(14, 12), + .post_div_val = 0x1 << 8, + .post_div_mask = GENMASK(11, 8), + .vco_mask = GENMASK(21, 20), + .vco_val = 0x0, + .alpha_en_mask = BIT(24), +}; + static struct clk_hw *gcc_ipq8074_hws[] = { &gpll0_out_main_div2.hw, &gpll6_out_main_div2.hw, @@ -4772,7 +4818,20 @@ static int gcc_ipq8074_probe(struct platform_device *pdev) { - return qcom_cc_probe(pdev, &gcc_ipq8074_desc); + struct regmap *regmap; + + regmap = qcom_cc_map(pdev, &gcc_ipq8074_desc); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); + + /* SW Workaround for UBI32 Huayra PLL */ + regmap_update_bits(regmap, 0x2501c, BIT(26), BIT(26)); + + clk_alpha_pll_configure(&ubi32_pll_main, regmap, &ubi32_pll_config); + clk_alpha_pll_configure(&nss_crypto_pll_main, regmap, + &nss_crypto_pll_config); + + return qcom_cc_really_probe(pdev, &gcc_ipq8074_desc, regmap); } static struct platform_driver gcc_ipq8074_driver = { --- linux-5.19.0.orig/drivers/clk/qcom/gcc-msm8939.c +++ linux-5.19.0/drivers/clk/qcom/gcc-msm8939.c @@ -632,7 +632,7 @@ }; static struct clk_rcg2 bimc_ddr_clk_src = { - .cmd_rcgr = 0x32004, + .cmd_rcgr = 0x32024, .hid_width = 5, .parent_map = gcc_xo_gpll0_bimc_map, .clkr.hw.init = &(struct clk_init_data){ @@ -644,6 +644,18 @@ }, }; +static struct clk_rcg2 system_mm_noc_bfdcd_clk_src = { + .cmd_rcgr = 0x2600c, + .hid_width = 5, + .parent_map = gcc_xo_gpll0_gpll6a_map, + .clkr.hw.init = &(struct clk_init_data){ + .name = "system_mm_noc_bfdcd_clk_src", + .parent_data = gcc_xo_gpll0_gpll6a_parent_data, + .num_parents = 3, + .ops = &clk_rcg2_ops, + }, +}; + static const struct freq_tbl ftbl_gcc_camss_ahb_clk[] = { F(40000000, P_GPLL0, 10, 1, 2), F(80000000, P_GPLL0, 10, 0, 0), @@ -1002,7 +1014,7 @@ }; static const struct freq_tbl ftbl_gcc_camss_cci_clk[] = { - F(19200000, P_XO, 1, 0, 0), + F(19200000, P_XO, 1, 0, 0), { } }; @@ -2441,7 +2453,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_camss_jpeg_axi_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -2645,7 +2657,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_camss_vfe_axi_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -2801,7 +2813,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_mdss_axi_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3193,7 +3205,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_mdp_tbu_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3211,7 +3223,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_venus_tbu_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3229,7 +3241,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_vfe_tbu_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3247,7 +3259,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_jpeg_tbu_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3484,7 +3496,7 @@ .hw.init = &(struct clk_init_data){ .name = "gcc_venus0_axi_clk", .parent_data = &(const struct clk_parent_data){ - .hw = &system_noc_bfdcd_clk_src.clkr.hw, + .hw = &system_mm_noc_bfdcd_clk_src.clkr.hw, }, .num_parents = 1, .flags = CLK_SET_RATE_PARENT, @@ -3623,6 +3635,7 @@ [GPLL2_VOTE] = &gpll2_vote, [PCNOC_BFDCD_CLK_SRC] = &pcnoc_bfdcd_clk_src.clkr, [SYSTEM_NOC_BFDCD_CLK_SRC] = &system_noc_bfdcd_clk_src.clkr, + [SYSTEM_MM_NOC_BFDCD_CLK_SRC] = &system_mm_noc_bfdcd_clk_src.clkr, [CAMSS_AHB_CLK_SRC] = &camss_ahb_clk_src.clkr, [APSS_AHB_CLK_SRC] = &apss_ahb_clk_src.clkr, [CSI0_CLK_SRC] = &csi0_clk_src.clkr, --- linux-5.19.0.orig/drivers/clk/qcom/gcc-sc7280.c +++ linux-5.19.0/drivers/clk/qcom/gcc-sc7280.c @@ -3486,6 +3486,7 @@ regmap_update_bits(regmap, 0x28004, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x28014, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x71004, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x7100C, BIT(13), BIT(13)); ret = qcom_cc_register_rcg_dfs(regmap, gcc_dfs_clocks, ARRAY_SIZE(gcc_dfs_clocks)); --- linux-5.19.0.orig/drivers/clk/qcom/gcc-sc8280xp.c +++ linux-5.19.0/drivers/clk/qcom/gcc-sc8280xp.c @@ -5423,6 +5423,8 @@ .enable_mask = BIT(0), .hw.init = &(const struct clk_init_data) { .name = "gcc_ufs_1_card_clkref_clk", + .parent_data = &gcc_parent_data_tcxo, + .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -5491,6 +5493,8 @@ .enable_mask = BIT(0), .hw.init = &(const struct clk_init_data) { .name = "gcc_ufs_card_clkref_clk", + .parent_data = &gcc_parent_data_tcxo, + .num_parents = 1, .ops = &clk_branch2_ops, }, }, @@ -5907,6 +5911,8 @@ .enable_mask = BIT(0), .hw.init = &(const struct clk_init_data) { .name = "gcc_ufs_ref_clkref_clk", + .parent_data = &gcc_parent_data_tcxo, + .num_parents = 1, .ops = &clk_branch2_ops, }, }, --- linux-5.19.0.orig/drivers/clk/qcom/gcc-sdm660.c +++ linux-5.19.0/drivers/clk/qcom/gcc-sdm660.c @@ -757,7 +757,7 @@ .name = "sdcc1_apps_clk_src", .parent_data = gcc_parent_data_xo_gpll0_gpll4_gpll0_early_div, .num_parents = ARRAY_SIZE(gcc_parent_data_xo_gpll0_gpll4_gpll0_early_div), - .ops = &clk_rcg2_ops, + .ops = &clk_rcg2_floor_ops, }, }; --- linux-5.19.0.orig/drivers/clk/qcom/gcc-sm6115.c +++ linux-5.19.0/drivers/clk/qcom/gcc-sm6115.c @@ -53,11 +53,25 @@ { 750000000, 1500000000, 1 }, }; +static const u8 clk_alpha_pll_regs_offset[][PLL_OFF_MAX_REGS] = { + [CLK_ALPHA_PLL_TYPE_DEFAULT] = { + [PLL_OFF_L_VAL] = 0x04, + [PLL_OFF_ALPHA_VAL] = 0x08, + [PLL_OFF_ALPHA_VAL_U] = 0x0c, + [PLL_OFF_TEST_CTL] = 0x10, + [PLL_OFF_TEST_CTL_U] = 0x14, + [PLL_OFF_USER_CTL] = 0x18, + [PLL_OFF_USER_CTL_U] = 0x1c, + [PLL_OFF_CONFIG_CTL] = 0x20, + [PLL_OFF_STATUS] = 0x24, + }, +}; + static struct clk_alpha_pll gpll0 = { .offset = 0x0, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(0), @@ -83,7 +97,7 @@ .post_div_table = post_div_table_gpll0_out_aux2, .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_aux2), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll0_out_aux2", .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, @@ -115,7 +129,7 @@ .post_div_table = post_div_table_gpll0_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll0_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll0_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll0.clkr.hw }, @@ -137,7 +151,7 @@ .offset = 0xa000, .vco_table = gpll10_vco, .num_vco = ARRAY_SIZE(gpll10_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(10), @@ -163,7 +177,7 @@ .post_div_table = post_div_table_gpll10_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll10_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll10_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll10.clkr.hw }, @@ -189,7 +203,7 @@ .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), .flags = SUPPORTS_DYNAMIC_UPDATE, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(11), @@ -215,7 +229,7 @@ .post_div_table = post_div_table_gpll11_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll11_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll11_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll11.clkr.hw }, @@ -229,7 +243,7 @@ .offset = 0x3000, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(3), @@ -248,7 +262,7 @@ .offset = 0x4000, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(4), @@ -274,7 +288,7 @@ .post_div_table = post_div_table_gpll4_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll4_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll4_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll4.clkr.hw }, @@ -287,7 +301,7 @@ .offset = 0x6000, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(6), @@ -313,7 +327,7 @@ .post_div_table = post_div_table_gpll6_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll6_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll6_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll6.clkr.hw }, @@ -326,7 +340,7 @@ .offset = 0x7000, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr = { .enable_reg = 0x79000, .enable_mask = BIT(7), @@ -352,7 +366,7 @@ .post_div_table = post_div_table_gpll7_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll7_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll7_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll7.clkr.hw }, @@ -380,7 +394,7 @@ .offset = 0x8000, .vco_table = default_vco, .num_vco = ARRAY_SIZE(default_vco), - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .flags = SUPPORTS_DYNAMIC_UPDATE, .clkr = { .enable_reg = 0x79000, @@ -407,7 +421,7 @@ .post_div_table = post_div_table_gpll8_out_main, .num_post_div = ARRAY_SIZE(post_div_table_gpll8_out_main), .width = 4, - .regs = clk_alpha_pll_regs[CLK_ALPHA_PLL_TYPE_DEFAULT], + .regs = clk_alpha_pll_regs_offset[CLK_ALPHA_PLL_TYPE_DEFAULT], .clkr.hw.init = &(struct clk_init_data){ .name = "gpll8_out_main", .parent_hws = (const struct clk_hw *[]){ &gpll8.clkr.hw }, --- linux-5.19.0.orig/drivers/clk/qcom/gcc-sm8250.c +++ linux-5.19.0/drivers/clk/qcom/gcc-sm8250.c @@ -3267,7 +3267,7 @@ .pd = { .name = "usb30_prim_gdsc", }, - .pwrsts = PWRSTS_OFF_ON, + .pwrsts = PWRSTS_RET_ON, }; static struct gdsc usb30_sec_gdsc = { @@ -3275,7 +3275,7 @@ .pd = { .name = "usb30_sec_gdsc", }, - .pwrsts = PWRSTS_OFF_ON, + .pwrsts = PWRSTS_RET_ON, }; static struct gdsc hlos1_vote_mmnoc_mmu_tbu_hf0_gdsc = { --- linux-5.19.0.orig/drivers/clk/qcom/gdsc.c +++ linux-5.19.0/drivers/clk/qcom/gdsc.c @@ -420,6 +420,14 @@ return ret; } + /* ...and the power-domain */ + ret = gdsc_pm_runtime_get(sc); + if (ret) { + if (sc->rsupply) + regulator_disable(sc->rsupply); + return ret; + } + /* * Votable GDSCs can be ON due to Vote from other masters. * If a Votable GDSC is ON, make sure we have a Vote. --- linux-5.19.0.orig/drivers/clk/qcom/gpucc-sc7280.c +++ linux-5.19.0/drivers/clk/qcom/gpucc-sc7280.c @@ -463,6 +463,7 @@ */ regmap_update_bits(regmap, 0x1170, BIT(0), BIT(0)); regmap_update_bits(regmap, 0x1098, BIT(0), BIT(0)); + regmap_update_bits(regmap, 0x1098, BIT(13), BIT(13)); return qcom_cc_really_probe(pdev, &gpu_cc_sc7280_desc, regmap); } --- linux-5.19.0.orig/drivers/clk/qcom/lpassaudiocc-sc7280.c +++ linux-5.19.0/drivers/clk/qcom/lpassaudiocc-sc7280.c @@ -22,6 +22,7 @@ #include "clk-regmap-mux.h" #include "common.h" #include "gdsc.h" +#include "reset.h" enum { P_BI_TCXO, @@ -221,7 +222,7 @@ .parent_data = lpass_aon_cc_parent_data_0, .num_parents = ARRAY_SIZE(lpass_aon_cc_parent_data_0), .flags = CLK_OPS_PARENT_ENABLE, - .ops = &clk_rcg2_ops, + .ops = &clk_rcg2_shared_ops, }, }; @@ -665,6 +666,18 @@ .num_clks = ARRAY_SIZE(lpass_audio_cc_sc7280_clocks), }; +static const struct qcom_reset_map lpass_audio_cc_sc7280_resets[] = { + [LPASS_AUDIO_SWR_RX_CGCR] = { 0xa0, 1 }, + [LPASS_AUDIO_SWR_TX_CGCR] = { 0xa8, 1 }, + [LPASS_AUDIO_SWR_WSA_CGCR] = { 0xb0, 1 }, +}; + +static const struct qcom_cc_desc lpass_audio_cc_reset_sc7280_desc = { + .config = &lpass_audio_cc_sc7280_regmap_config, + .resets = lpass_audio_cc_sc7280_resets, + .num_resets = ARRAY_SIZE(lpass_audio_cc_sc7280_resets), +}; + static const struct of_device_id lpass_audio_cc_sc7280_match_table[] = { { .compatible = "qcom,sc7280-lpassaudiocc" }, { } @@ -734,12 +747,19 @@ regmap_write(regmap, 0x4, 0x3b); regmap_write(regmap, 0x8, 0xff05); - ret = qcom_cc_really_probe(pdev, &lpass_audio_cc_sc7280_desc, regmap); + ret = qcom_cc_probe_by_index(pdev, 0, &lpass_audio_cc_sc7280_desc); if (ret) { dev_err(&pdev->dev, "Failed to register LPASS AUDIO CC clocks\n"); pm_runtime_disable(&pdev->dev); return ret; } + + ret = qcom_cc_probe_by_index(pdev, 1, &lpass_audio_cc_reset_sc7280_desc); + if (ret) { + dev_err(&pdev->dev, "Failed to register LPASS AUDIO CC Resets\n"); + pm_runtime_disable(&pdev->dev); + return ret; + } pm_runtime_mark_last_busy(&pdev->dev); pm_runtime_put_autosuspend(&pdev->dev); --- linux-5.19.0.orig/drivers/clk/qcom/lpasscorecc-sc7180.c +++ linux-5.19.0/drivers/clk/qcom/lpasscorecc-sc7180.c @@ -356,7 +356,7 @@ .num_gdscs = ARRAY_SIZE(lpass_audio_hm_sc7180_gdscs), }; -static int lpass_create_pm_clks(struct platform_device *pdev) +static int lpass_setup_runtime_pm(struct platform_device *pdev) { int ret; @@ -375,7 +375,7 @@ if (ret < 0) dev_err(&pdev->dev, "failed to acquire iface clock\n"); - return ret; + return pm_runtime_resume_and_get(&pdev->dev); } static int lpass_core_cc_sc7180_probe(struct platform_device *pdev) @@ -384,7 +384,7 @@ struct regmap *regmap; int ret; - ret = lpass_create_pm_clks(pdev); + ret = lpass_setup_runtime_pm(pdev); if (ret) return ret; @@ -392,12 +392,14 @@ desc = &lpass_audio_hm_sc7180_desc; ret = qcom_cc_probe_by_index(pdev, 1, desc); if (ret) - return ret; + goto exit; lpass_core_cc_sc7180_regmap_config.name = "lpass_core_cc"; regmap = qcom_cc_map(pdev, &lpass_core_cc_sc7180_desc); - if (IS_ERR(regmap)) - return PTR_ERR(regmap); + if (IS_ERR(regmap)) { + ret = PTR_ERR(regmap); + goto exit; + } /* * Keep the CLK always-ON @@ -415,6 +417,7 @@ ret = qcom_cc_really_probe(pdev, &lpass_core_cc_sc7180_desc, regmap); pm_runtime_mark_last_busy(&pdev->dev); +exit: pm_runtime_put_autosuspend(&pdev->dev); return ret; @@ -425,14 +428,19 @@ const struct qcom_cc_desc *desc; int ret; - ret = lpass_create_pm_clks(pdev); + ret = lpass_setup_runtime_pm(pdev); if (ret) return ret; lpass_core_cc_sc7180_regmap_config.name = "lpass_hm_core"; desc = &lpass_core_hm_sc7180_desc; - return qcom_cc_probe_by_index(pdev, 0, desc); + ret = qcom_cc_probe_by_index(pdev, 0, desc); + + pm_runtime_mark_last_busy(&pdev->dev); + pm_runtime_put_autosuspend(&pdev->dev); + + return ret; } static const struct of_device_id lpass_hm_sc7180_match_table[] = { --- linux-5.19.0.orig/drivers/clk/qcom/lpasscorecc-sc7280.c +++ linux-5.19.0/drivers/clk/qcom/lpasscorecc-sc7280.c @@ -190,6 +190,19 @@ }, }; +static struct clk_rcg2 lpass_core_cc_ext_mclk0_clk_src = { + .cmd_rcgr = 0x20000, + .mnd_width = 8, + .hid_width = 5, + .parent_map = lpass_core_cc_parent_map_0, + .freq_tbl = ftbl_lpass_core_cc_ext_if0_clk_src, + .clkr.hw.init = &(const struct clk_init_data){ + .name = "lpass_core_cc_ext_mclk0_clk_src", + .parent_data = lpass_core_cc_parent_data_0, + .num_parents = ARRAY_SIZE(lpass_core_cc_parent_data_0), + .ops = &clk_rcg2_ops, + }, +}; static struct clk_branch lpass_core_cc_core_clk = { .halt_reg = 0x1f000, @@ -283,6 +296,24 @@ }, }; +static struct clk_branch lpass_core_cc_ext_mclk0_clk = { + .halt_reg = 0x20014, + .halt_check = BRANCH_HALT, + .clkr = { + .enable_reg = 0x20014, + .enable_mask = BIT(0), + .hw.init = &(const struct clk_init_data){ + .name = "lpass_core_cc_ext_mclk0_clk", + .parent_hws = (const struct clk_hw*[]){ + &lpass_core_cc_ext_mclk0_clk_src.clkr.hw, + }, + .num_parents = 1, + .flags = CLK_SET_RATE_PARENT, + .ops = &clk_branch2_ops, + }, + }, +}; + static struct clk_branch lpass_core_cc_sysnoc_mport_core_clk = { .halt_reg = 0x23000, .halt_check = BRANCH_HALT_VOTED, @@ -326,6 +357,8 @@ [LPASS_CORE_CC_LPM_CORE_CLK] = &lpass_core_cc_lpm_core_clk.clkr, [LPASS_CORE_CC_LPM_MEM0_CORE_CLK] = &lpass_core_cc_lpm_mem0_core_clk.clkr, [LPASS_CORE_CC_SYSNOC_MPORT_CORE_CLK] = &lpass_core_cc_sysnoc_mport_core_clk.clkr, + [LPASS_CORE_CC_EXT_MCLK0_CLK] = &lpass_core_cc_ext_mclk0_clk.clkr, + [LPASS_CORE_CC_EXT_MCLK0_CLK_SRC] = &lpass_core_cc_ext_mclk0_clk_src.clkr, }; static struct regmap_config lpass_core_cc_sc7280_regmap_config = { --- linux-5.19.0.orig/drivers/clk/qcom/videocc-sm8250.c +++ linux-5.19.0/drivers/clk/qcom/videocc-sm8250.c @@ -277,7 +277,6 @@ }, .flags = 0, .pwrsts = PWRSTS_OFF_ON, - .supply = "mmcx", }; static struct gdsc mvs1c_gdsc = { @@ -287,7 +286,6 @@ }, .flags = 0, .pwrsts = PWRSTS_OFF_ON, - .supply = "mmcx", }; static struct gdsc mvs0_gdsc = { @@ -297,7 +295,6 @@ }, .flags = HW_CTRL, .pwrsts = PWRSTS_OFF_ON, - .supply = "mmcx", }; static struct gdsc mvs1_gdsc = { @@ -307,7 +304,6 @@ }, .flags = HW_CTRL, .pwrsts = PWRSTS_OFF_ON, - .supply = "mmcx", }; static struct clk_regmap *video_cc_sm8250_clocks[] = { --- linux-5.19.0.orig/drivers/clk/renesas/r8a779a0-cpg-mssr.c +++ linux-5.19.0/drivers/clk/renesas/r8a779a0-cpg-mssr.c @@ -116,7 +116,7 @@ DEF_FIXED("cp", R8A779A0_CLK_CP, CLK_EXTAL, 2, 1), DEF_FIXED("cl16mck", R8A779A0_CLK_CL16MCK, CLK_PLL1_DIV2, 64, 1), - DEF_GEN4_SDH("sdh0", R8A779A0_CLK_SD0H, CLK_SDSRC, 0x870), + DEF_GEN4_SDH("sd0h", R8A779A0_CLK_SD0H, CLK_SDSRC, 0x870), DEF_GEN4_SD("sd0", R8A779A0_CLK_SD0, R8A779A0_CLK_SD0H, 0x870), DEF_BASE("rpc", R8A779A0_CLK_RPC, CLK_TYPE_GEN4_RPC, CLK_RPCSRC), --- linux-5.19.0.orig/drivers/clk/renesas/r8a779f0-cpg-mssr.c +++ linux-5.19.0/drivers/clk/renesas/r8a779f0-cpg-mssr.c @@ -124,10 +124,10 @@ DEF_MOD("i2c3", 521, R8A779F0_CLK_S0D6_PER), DEF_MOD("i2c4", 522, R8A779F0_CLK_S0D6_PER), DEF_MOD("i2c5", 523, R8A779F0_CLK_S0D6_PER), - DEF_MOD("scif0", 702, R8A779F0_CLK_S0D12_PER), - DEF_MOD("scif1", 703, R8A779F0_CLK_S0D12_PER), - DEF_MOD("scif3", 704, R8A779F0_CLK_S0D12_PER), - DEF_MOD("scif4", 705, R8A779F0_CLK_S0D12_PER), + DEF_MOD("scif0", 702, R8A779F0_CLK_SASYNCPERD4), + DEF_MOD("scif1", 703, R8A779F0_CLK_SASYNCPERD4), + DEF_MOD("scif3", 704, R8A779F0_CLK_SASYNCPERD4), + DEF_MOD("scif4", 705, R8A779F0_CLK_SASYNCPERD4), DEF_MOD("sys-dmac0", 709, R8A779F0_CLK_S0D3_PER), DEF_MOD("sys-dmac1", 710, R8A779F0_CLK_S0D3_PER), DEF_MOD("wdt", 907, R8A779F0_CLK_R), --- linux-5.19.0.orig/drivers/clk/renesas/r8a779g0-cpg-mssr.c +++ linux-5.19.0/drivers/clk/renesas/r8a779g0-cpg-mssr.c @@ -47,6 +47,7 @@ CLK_S0_VIO, CLK_S0_VC, CLK_S0_HSC, + CLK_SASYNCPER, CLK_SV_VIP, CLK_SV_IR, CLK_SDSRC, @@ -84,6 +85,7 @@ DEF_FIXED(".s0_vio", CLK_S0_VIO, CLK_PLL1_DIV2, 2, 1), DEF_FIXED(".s0_vc", CLK_S0_VC, CLK_PLL1_DIV2, 2, 1), DEF_FIXED(".s0_hsc", CLK_S0_HSC, CLK_PLL1_DIV2, 2, 1), + DEF_FIXED(".sasyncper", CLK_SASYNCPER, CLK_PLL5_DIV4, 3, 1), DEF_FIXED(".sv_vip", CLK_SV_VIP, CLK_PLL1, 5, 1), DEF_FIXED(".sv_ir", CLK_SV_IR, CLK_PLL1, 5, 1), DEF_BASE(".sdsrc", CLK_SDSRC, CLK_TYPE_GEN4_SDSRC, CLK_PLL5), @@ -128,6 +130,9 @@ DEF_FIXED("s0d4_hsc", R8A779G0_CLK_S0D4_HSC, CLK_S0_HSC, 4, 1), DEF_FIXED("cl16m_hsc", R8A779G0_CLK_CL16M_HSC, CLK_S0_HSC, 48, 1), DEF_FIXED("s0d2_cc", R8A779G0_CLK_S0D2_CC, CLK_S0, 2, 1), + DEF_FIXED("sasyncperd1",R8A779G0_CLK_SASYNCPERD1, CLK_SASYNCPER,1, 1), + DEF_FIXED("sasyncperd2",R8A779G0_CLK_SASYNCPERD2, CLK_SASYNCPER,2, 1), + DEF_FIXED("sasyncperd4",R8A779G0_CLK_SASYNCPERD4, CLK_SASYNCPER,4, 1), DEF_FIXED("svd1_ir", R8A779G0_CLK_SVD1_IR, CLK_SV_IR, 1, 1), DEF_FIXED("svd2_ir", R8A779G0_CLK_SVD2_IR, CLK_SV_IR, 2, 1), DEF_FIXED("svd1_vip", R8A779G0_CLK_SVD1_VIP, CLK_SV_VIP, 1, 1), @@ -150,10 +155,10 @@ }; static const struct mssr_mod_clk r8a779g0_mod_clks[] __initconst = { - DEF_MOD("hscif0", 514, R8A779G0_CLK_S0D3_PER), - DEF_MOD("hscif1", 515, R8A779G0_CLK_S0D3_PER), - DEF_MOD("hscif2", 516, R8A779G0_CLK_S0D3_PER), - DEF_MOD("hscif3", 517, R8A779G0_CLK_S0D3_PER), + DEF_MOD("hscif0", 514, R8A779G0_CLK_SASYNCPERD1), + DEF_MOD("hscif1", 515, R8A779G0_CLK_SASYNCPERD1), + DEF_MOD("hscif2", 516, R8A779G0_CLK_SASYNCPERD1), + DEF_MOD("hscif3", 517, R8A779G0_CLK_SASYNCPERD1), }; /* --- linux-5.19.0.orig/drivers/clk/renesas/r9a06g032-clocks.c +++ linux-5.19.0/drivers/clk/renesas/r9a06g032-clocks.c @@ -290,8 +290,8 @@ .name = "uart_group_012", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_UART, - /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ - .dual.sel = ((0xec / 4) << 5) | 24, + /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ + .dual.sel = ((0x34 / 4) << 5) | 30, .dual.group = 0, }, { @@ -299,8 +299,8 @@ .name = "uart_group_34567", .type = K_BITSEL, .source = 1 + R9A06G032_DIV_P2_PG, - /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG0_0 */ - .dual.sel = ((0x34 / 4) << 5) | 30, + /* R9A06G032_SYSCTRL_REG_PWRCTRL_PG1_PR2 */ + .dual.sel = ((0xec / 4) << 5) | 24, .dual.group = 1, }, D_UGATE(CLK_UART0, "clk_uart0", UART_GROUP_012, 0, 0, 0x1b2, 0x1b3, 0x1b4, 0x1b5), @@ -414,7 +414,7 @@ int error; int index; - while (!of_parse_phandle_with_args(np, "clocks", "#clock-cells", i, + while (!of_parse_phandle_with_args(np, "clocks", "#clock-cells", i++, &clkspec)) { if (clkspec.np != pd->dev.of_node) continue; @@ -427,7 +427,6 @@ if (error) return error; } - i++; } return 0; --- linux-5.19.0.orig/drivers/clk/renesas/rzg2l-cpg.c +++ linux-5.19.0/drivers/clk/renesas/rzg2l-cpg.c @@ -1180,7 +1180,7 @@ s8 monbit = info->resets[id].monbit; if (info->has_clk_mon_regs) { - return !(readl(priv->base + CLK_MRST_R(reg)) & bitmask); + return !!(readl(priv->base + CLK_MRST_R(reg)) & bitmask); } else if (monbit >= 0) { u32 monbitmask = BIT(monbit); --- linux-5.19.0.orig/drivers/clk/rockchip/clk-pll.c +++ linux-5.19.0/drivers/clk/rockchip/clk-pll.c @@ -981,6 +981,7 @@ return mux_clk; err_pll: + kfree(pll->rate_table); clk_unregister(mux_clk); mux_clk = pll_clk; err_mux: --- linux-5.19.0.orig/drivers/clk/samsung/clk-exynos7885.c +++ linux-5.19.0/drivers/clk/samsung/clk-exynos7885.c @@ -182,7 +182,7 @@ CLK_CON_DIV_PLL_SHARED0_DIV2, 0, 1), DIV(CLK_DOUT_SHARED0_DIV3, "dout_shared0_div3", "fout_shared0_pll", CLK_CON_DIV_PLL_SHARED0_DIV3, 0, 2), - DIV(CLK_DOUT_SHARED0_DIV4, "dout_shared0_div4", "fout_shared0_pll", + DIV(CLK_DOUT_SHARED0_DIV4, "dout_shared0_div4", "dout_shared0_div2", CLK_CON_DIV_PLL_SHARED0_DIV4, 0, 1), DIV(CLK_DOUT_SHARED0_DIV5, "dout_shared0_div5", "fout_shared0_pll", CLK_CON_DIV_PLL_SHARED0_DIV5, 0, 3), @@ -190,7 +190,7 @@ CLK_CON_DIV_PLL_SHARED1_DIV2, 0, 1), DIV(CLK_DOUT_SHARED1_DIV3, "dout_shared1_div3", "fout_shared1_pll", CLK_CON_DIV_PLL_SHARED1_DIV3, 0, 2), - DIV(CLK_DOUT_SHARED1_DIV4, "dout_shared1_div4", "fout_shared1_pll", + DIV(CLK_DOUT_SHARED1_DIV4, "dout_shared1_div4", "dout_shared1_div2", CLK_CON_DIV_PLL_SHARED1_DIV4, 0, 1), /* CORE */ --- linux-5.19.0.orig/drivers/clk/samsung/clk-exynosautov9.c +++ linux-5.19.0/drivers/clk/samsung/clk-exynosautov9.c @@ -1170,9 +1170,9 @@ #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_2 0x2058 #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_3 0x205c #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_4 0x2060 -#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7 0x206c #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_5 0x2064 #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_6 0x2068 +#define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_7 0x206c #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_8 0x2070 #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_9 0x2074 #define CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_PCLK_10 0x204c @@ -1418,14 +1418,14 @@ #define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_IPCLK_11 0x2020 #define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_0 0x2044 #define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_1 0x2048 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2 0x2058 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3 0x205c -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4 0x2060 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7 0x206c -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5 0x2064 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6 0x2068 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8 0x2070 -#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9 0x2074 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2 0x2054 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3 0x2058 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4 0x205c +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5 0x2060 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6 0x2064 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7 0x2068 +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8 0x206c +#define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9 0x2070 #define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10 0x204c #define CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_11 0x2050 @@ -1463,9 +1463,9 @@ CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_2, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_3, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_4, - CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_5, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_6, + CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_7, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_8, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_9, CLK_CON_GAT_GOUT_BLK_PERIC1_UID_PERIC1_TOP0_IPCLKPORT_PCLK_10, --- linux-5.19.0.orig/drivers/clk/samsung/clk-pll.c +++ linux-5.19.0/drivers/clk/samsung/clk-pll.c @@ -1583,6 +1583,7 @@ if (ret) { pr_err("%s: failed to register pll clock %s : %d\n", __func__, pll_clk->name, ret); + kfree(pll->rate_table); kfree(pll); return; } --- linux-5.19.0.orig/drivers/clk/socfpga/clk-gate.c +++ linux-5.19.0/drivers/clk/socfpga/clk-gate.c @@ -188,8 +188,10 @@ return; ops = kmemdup(&gateclk_ops, sizeof(gateclk_ops), GFP_KERNEL); - if (WARN_ON(!ops)) + if (WARN_ON(!ops)) { + kfree(socfpga_clk); return; + } rc = of_property_read_u32_array(node, "clk-gate", clk_gate, 2); if (rc) @@ -243,6 +245,7 @@ err = clk_hw_register(NULL, hw_clk); if (err) { + kfree(ops); kfree(socfpga_clk); return; } --- linux-5.19.0.orig/drivers/clk/sprd/common.c +++ linux-5.19.0/drivers/clk/sprd/common.c @@ -41,7 +41,7 @@ { void __iomem *base; struct device *dev = &pdev->dev; - struct device_node *node = dev->of_node; + struct device_node *node = dev->of_node, *np; struct regmap *regmap; if (of_find_property(node, "sprd,syscon", NULL)) { @@ -50,9 +50,10 @@ pr_err("%s: failed to get syscon regmap\n", __func__); return PTR_ERR(regmap); } - } else if (of_device_is_compatible(of_get_parent(dev->of_node), - "syscon")) { - regmap = device_node_to_regmap(of_get_parent(dev->of_node)); + } else if (of_device_is_compatible(np = of_get_parent(node), "syscon") || + (of_node_put(np), 0)) { + regmap = device_node_to_regmap(np); + of_node_put(np); if (IS_ERR(regmap)) { dev_err(dev, "failed to get regmap from its parent.\n"); return PTR_ERR(regmap); --- linux-5.19.0.orig/drivers/clk/st/clkgen-fsyn.c +++ linux-5.19.0/drivers/clk/st/clkgen-fsyn.c @@ -987,6 +987,7 @@ const char *pll_name, *clk_parent_name; void __iomem *reg; spinlock_t *lock; + struct device_node *parent_np; /* * First check for reg property within the node to keep backward @@ -994,7 +995,9 @@ */ reg = of_iomap(np, 0); if (!reg) { - reg = of_iomap(of_get_parent(np), 0); + parent_np = of_get_parent(np); + reg = of_iomap(parent_np, 0); + of_node_put(parent_np); if (!reg) { pr_err("%s: Failed to get base address\n", __func__); return; @@ -1017,9 +1020,10 @@ clk = st_clk_register_quadfs_pll(pll_name, clk_parent_name, datac->data, reg, lock); - if (IS_ERR(clk)) + if (IS_ERR(clk)) { + kfree(lock); goto err_exit; - else + } else pr_debug("%s: parent %s rate %u\n", __clk_get_name(clk), __clk_get_name(clk_get_parent(clk)), --- linux-5.19.0.orig/drivers/clk/st/clkgen-mux.c +++ linux-5.19.0/drivers/clk/st/clkgen-mux.c @@ -56,6 +56,7 @@ void __iomem *reg; const char **parents; int num_parents = 0; + struct device_node *parent_np; /* * First check for reg property within the node to keep backward @@ -63,7 +64,9 @@ */ reg = of_iomap(np, 0); if (!reg) { - reg = of_iomap(of_get_parent(np), 0); + parent_np = of_get_parent(np); + reg = of_iomap(parent_np, 0); + of_node_put(parent_np); if (!reg) { pr_err("%s: Failed to get base address\n", __func__); return; --- linux-5.19.0.orig/drivers/clk/tegra/clk-tegra114.c +++ linux-5.19.0/drivers/clk/tegra/clk-tegra114.c @@ -1166,6 +1166,7 @@ { TEGRA114_CLK_I2S3_SYNC, TEGRA114_CLK_CLK_MAX, 24000000, 0 }, { TEGRA114_CLK_I2S4_SYNC, TEGRA114_CLK_CLK_MAX, 24000000, 0 }, { TEGRA114_CLK_VIMCLK_SYNC, TEGRA114_CLK_CLK_MAX, 24000000, 0 }, + { TEGRA114_CLK_PWM, TEGRA114_CLK_PLL_P, 408000000, 0 }, /* must be the last entry */ { TEGRA114_CLK_CLK_MAX, TEGRA114_CLK_CLK_MAX, 0, 0 }, }; @@ -1317,6 +1318,7 @@ } pmc_base = of_iomap(node, 0); + of_node_put(node); if (!pmc_base) { pr_err("Can't map pmc registers\n"); WARN_ON(1); --- linux-5.19.0.orig/drivers/clk/tegra/clk-tegra124.c +++ linux-5.19.0/drivers/clk/tegra/clk-tegra124.c @@ -1330,6 +1330,7 @@ { TEGRA124_CLK_I2S3_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 }, { TEGRA124_CLK_I2S4_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 }, { TEGRA124_CLK_VIMCLK_SYNC, TEGRA124_CLK_CLK_MAX, 24576000, 0 }, + { TEGRA124_CLK_PWM, TEGRA124_CLK_PLL_P, 408000000, 0 }, /* must be the last entry */ { TEGRA124_CLK_CLK_MAX, TEGRA124_CLK_CLK_MAX, 0, 0 }, }; --- linux-5.19.0.orig/drivers/clk/tegra/clk-tegra20.c +++ linux-5.19.0/drivers/clk/tegra/clk-tegra20.c @@ -1044,6 +1044,7 @@ { TEGRA20_CLK_GR2D, TEGRA20_CLK_PLL_C, 300000000, 0 }, { TEGRA20_CLK_GR3D, TEGRA20_CLK_PLL_C, 300000000, 0 }, { TEGRA20_CLK_VDE, TEGRA20_CLK_PLL_C, 300000000, 0 }, + { TEGRA20_CLK_PWM, TEGRA20_CLK_PLL_P, 48000000, 0 }, /* must be the last entry */ { TEGRA20_CLK_CLK_MAX, TEGRA20_CLK_CLK_MAX, 0, 0 }, }; @@ -1131,6 +1132,7 @@ } pmc_base = of_iomap(node, 0); + of_node_put(node); if (!pmc_base) { pr_err("Can't map pmc registers\n"); BUG(); --- linux-5.19.0.orig/drivers/clk/tegra/clk-tegra210.c +++ linux-5.19.0/drivers/clk/tegra/clk-tegra210.c @@ -3597,6 +3597,7 @@ { TEGRA210_CLK_VIMCLK_SYNC, TEGRA210_CLK_CLK_MAX, 24576000, 0 }, { TEGRA210_CLK_HDA, TEGRA210_CLK_PLL_P, 51000000, 0 }, { TEGRA210_CLK_HDA2CODEC_2X, TEGRA210_CLK_PLL_P, 48000000, 0 }, + { TEGRA210_CLK_PWM, TEGRA210_CLK_PLL_P, 48000000, 0 }, /* This MUST be the last entry. */ { TEGRA210_CLK_CLK_MAX, TEGRA210_CLK_CLK_MAX, 0, 0 }, }; @@ -3748,6 +3749,7 @@ } pmc_base = of_iomap(node, 0); + of_node_put(node); if (!pmc_base) { pr_err("Can't map pmc registers\n"); WARN_ON(1); --- linux-5.19.0.orig/drivers/clk/tegra/clk-tegra30.c +++ linux-5.19.0/drivers/clk/tegra/clk-tegra30.c @@ -1237,6 +1237,7 @@ { 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 }, + { TEGRA30_CLK_PWM, TEGRA30_CLK_PLL_P, 48000000, 0 }, /* must be the last entry */ { TEGRA30_CLK_CLK_MAX, TEGRA30_CLK_CLK_MAX, 0, 0 }, }; --- linux-5.19.0.orig/drivers/clk/ti/clk-dra7-atl.c +++ linux-5.19.0/drivers/clk/ti/clk-dra7-atl.c @@ -253,14 +253,16 @@ if (rc) { pr_err("%s: failed to lookup atl clock %d\n", __func__, i); - return -EINVAL; + ret = -EINVAL; + goto pm_put; } clk = of_clk_get_from_provider(&clkspec); if (IS_ERR(clk)) { pr_err("%s: failed to get atl clock %d from provider\n", __func__, i); - return PTR_ERR(clk); + ret = PTR_ERR(clk); + goto pm_put; } cdesc = to_atl_desc(__clk_get_hw(clk)); @@ -293,8 +295,9 @@ if (cdesc->enabled) atl_clk_enable(__clk_get_hw(clk)); } - pm_runtime_put_sync(cinfo->dev); +pm_put: + pm_runtime_put_sync(cinfo->dev); return ret; } --- linux-5.19.0.orig/drivers/clk/ti/clk.c +++ linux-5.19.0/drivers/clk/ti/clk.c @@ -143,15 +143,17 @@ continue; if (!strncmp(n, tmp, strlen(tmp))) { + of_node_get(np); found = true; break; } } - of_node_put(from); kfree(tmp); - if (found) + if (found) { + of_node_put(from); return np; + } /* Fall back to using old node name base provider name */ return of_find_node_by_name(from, name); --- linux-5.19.0.orig/drivers/clk/visconti/pll.c +++ linux-5.19.0/drivers/clk/visconti/pll.c @@ -277,6 +277,7 @@ ret = clk_hw_register(NULL, &pll->hw); if (ret) { pr_err("failed to register pll clock %s : %d\n", name, ret); + kfree(pll->rate_table); kfree(pll); pll_hw_clk = ERR_PTR(ret); } --- linux-5.19.0.orig/drivers/clk/zynqmp/clkc.c +++ linux-5.19.0/drivers/clk/zynqmp/clkc.c @@ -710,6 +710,13 @@ FIELD_PREP(CLK_ATTR_NODE_INDEX, i); zynqmp_pm_clock_get_name(clock[i].clk_id, &name); + + /* + * Terminate with NULL character in case name provided by firmware + * is longer and truncated due to size limit. + */ + name.name[sizeof(name.name) - 1] = '\0'; + if (!strcmp(name.name, RESERVED_CLK_NAME)) continue; strncpy(clock[i].clk_name, name.name, MAX_NAME_LEN); --- linux-5.19.0.orig/drivers/clk/zynqmp/pll.c +++ linux-5.19.0/drivers/clk/zynqmp/pll.c @@ -102,26 +102,25 @@ unsigned long *prate) { u32 fbdiv; - long rate_div, f; + u32 mult, div; - /* Enable the fractional mode if needed */ - rate_div = (rate * FRAC_DIV) / *prate; - f = rate_div % FRAC_DIV; - if (f) { - if (rate > PS_PLL_VCO_MAX) { - fbdiv = rate / PS_PLL_VCO_MAX; - rate = rate / (fbdiv + 1); - } - if (rate < PS_PLL_VCO_MIN) { - fbdiv = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate); - rate = rate * fbdiv; - } - return rate; + /* Let rate fall inside the range PS_PLL_VCO_MIN ~ PS_PLL_VCO_MAX */ + if (rate > PS_PLL_VCO_MAX) { + div = DIV_ROUND_UP(rate, PS_PLL_VCO_MAX); + rate = rate / div; + } + if (rate < PS_PLL_VCO_MIN) { + mult = DIV_ROUND_UP(PS_PLL_VCO_MIN, rate); + rate = rate * mult; } fbdiv = DIV_ROUND_CLOSEST(rate, *prate); - fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX); - return *prate * fbdiv; + if (fbdiv < PLL_FBDIV_MIN || fbdiv > PLL_FBDIV_MAX) { + fbdiv = clamp_t(u32, fbdiv, PLL_FBDIV_MIN, PLL_FBDIV_MAX); + rate = *prate * fbdiv; + } + + return rate; } /** --- linux-5.19.0.orig/drivers/clocksource/arm_arch_timer.c +++ linux-5.19.0/drivers/clocksource/arm_arch_timer.c @@ -44,8 +44,8 @@ #define CNTACR_RWVT BIT(4) #define CNTACR_RWPT BIT(5) -#define CNTVCT_LO 0x00 -#define CNTPCT_LO 0x08 +#define CNTPCT_LO 0x00 +#define CNTVCT_LO 0x08 #define CNTFRQ 0x10 #define CNTP_CVAL_LO 0x20 #define CNTP_CTL 0x2c @@ -473,6 +473,8 @@ .desc = "ARM erratum 858921", .read_cntpct_el0 = arm64_858921_read_cntpct_el0, .read_cntvct_el0 = arm64_858921_read_cntvct_el0, + .set_next_event_phys = erratum_set_next_event_phys, + .set_next_event_virt = erratum_set_next_event_virt, }, #endif #ifdef CONFIG_SUN50I_ERRATUM_UNKNOWN1 @@ -804,6 +806,9 @@ /* * XGene-1 implements CVAL in terms of TVAL, meaning * that the maximum timer range is 32bit. Shame on them. + * + * Note that TVAL is signed, thus has only 31 of its + * 32 bits to express magnitude. */ MIDR_ALL_VERSIONS(MIDR_CPU_MODEL(ARM_CPU_IMP_APM, APM_CPU_PART_POTENZA)), @@ -811,8 +816,8 @@ }; if (is_midr_in_range_list(read_cpuid_id(), broken_cval_midrs)) { - pr_warn_once("Broken CNTx_CVAL_EL1, limiting width to 32bits"); - return CLOCKSOURCE_MASK(32); + pr_warn_once("Broken CNTx_CVAL_EL1, using 31 bit TVAL instead.\n"); + return CLOCKSOURCE_MASK(31); } #endif return CLOCKSOURCE_MASK(arch_counter_get_width()); --- linux-5.19.0.orig/drivers/clocksource/sh_cmt.c +++ linux-5.19.0/drivers/clocksource/sh_cmt.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -116,6 +117,7 @@ void __iomem *mapbase; struct clk *clk; unsigned long rate; + unsigned int reg_delay; raw_spinlock_t lock; /* Protect the shared start/stop register */ @@ -247,10 +249,17 @@ static inline void sh_cmt_write_cmstr(struct sh_cmt_channel *ch, u32 value) { - if (ch->iostart) - ch->cmt->info->write_control(ch->iostart, 0, value); - else - ch->cmt->info->write_control(ch->cmt->mapbase, 0, value); + u32 old_value = sh_cmt_read_cmstr(ch); + + if (value != old_value) { + if (ch->iostart) { + ch->cmt->info->write_control(ch->iostart, 0, value); + udelay(ch->cmt->reg_delay); + } else { + ch->cmt->info->write_control(ch->cmt->mapbase, 0, value); + udelay(ch->cmt->reg_delay); + } + } } static inline u32 sh_cmt_read_cmcsr(struct sh_cmt_channel *ch) @@ -260,7 +269,12 @@ static inline void sh_cmt_write_cmcsr(struct sh_cmt_channel *ch, u32 value) { - ch->cmt->info->write_control(ch->ioctrl, CMCSR, value); + u32 old_value = sh_cmt_read_cmcsr(ch); + + if (value != old_value) { + ch->cmt->info->write_control(ch->ioctrl, CMCSR, value); + udelay(ch->cmt->reg_delay); + } } static inline u32 sh_cmt_read_cmcnt(struct sh_cmt_channel *ch) @@ -268,14 +282,33 @@ return ch->cmt->info->read_count(ch->ioctrl, CMCNT); } -static inline void sh_cmt_write_cmcnt(struct sh_cmt_channel *ch, u32 value) +static inline int sh_cmt_write_cmcnt(struct sh_cmt_channel *ch, u32 value) { + /* Tests showed that we need to wait 3 clocks here */ + unsigned int cmcnt_delay = DIV_ROUND_UP(3 * ch->cmt->reg_delay, 2); + u32 reg; + + if (ch->cmt->info->model > SH_CMT_16BIT) { + int ret = read_poll_timeout_atomic(sh_cmt_read_cmcsr, reg, + !(reg & SH_CMT32_CMCSR_WRFLG), + 1, cmcnt_delay, false, ch); + if (ret < 0) + return ret; + } + ch->cmt->info->write_count(ch->ioctrl, CMCNT, value); + udelay(cmcnt_delay); + return 0; } static inline void sh_cmt_write_cmcor(struct sh_cmt_channel *ch, u32 value) { - ch->cmt->info->write_count(ch->ioctrl, CMCOR, value); + u32 old_value = ch->cmt->info->read_count(ch->ioctrl, CMCOR); + + if (value != old_value) { + ch->cmt->info->write_count(ch->ioctrl, CMCOR, value); + udelay(ch->cmt->reg_delay); + } } static u32 sh_cmt_get_counter(struct sh_cmt_channel *ch, u32 *has_wrapped) @@ -319,7 +352,7 @@ static int sh_cmt_enable(struct sh_cmt_channel *ch) { - int k, ret; + int ret; dev_pm_syscore_device(&ch->cmt->pdev->dev, true); @@ -347,26 +380,9 @@ } sh_cmt_write_cmcor(ch, 0xffffffff); - sh_cmt_write_cmcnt(ch, 0); - - /* - * According to the sh73a0 user's manual, as CMCNT can be operated - * only by the RCLK (Pseudo 32 kHz), there's one restriction on - * modifying CMCNT register; two RCLK cycles are necessary before - * this register is either read or any modification of the value - * it holds is reflected in the LSI's actual operation. - * - * While at it, we're supposed to clear out the CMCNT as of this - * moment, so make sure it's processed properly here. This will - * take RCLKx2 at maximum. - */ - for (k = 0; k < 100; k++) { - if (!sh_cmt_read_cmcnt(ch)) - break; - udelay(1); - } + ret = sh_cmt_write_cmcnt(ch, 0); - if (sh_cmt_read_cmcnt(ch)) { + if (ret || sh_cmt_read_cmcnt(ch)) { dev_err(&ch->cmt->pdev->dev, "ch%u: cannot clear CMCNT\n", ch->index); ret = -ETIMEDOUT; @@ -987,8 +1003,8 @@ static int sh_cmt_setup(struct sh_cmt_device *cmt, struct platform_device *pdev) { - unsigned int mask; - unsigned int i; + unsigned int mask, i; + unsigned long rate; int ret; cmt->pdev = pdev; @@ -1024,10 +1040,16 @@ if (ret < 0) goto err_clk_unprepare; - if (cmt->info->width == 16) - cmt->rate = clk_get_rate(cmt->clk) / 512; - else - cmt->rate = clk_get_rate(cmt->clk) / 8; + rate = clk_get_rate(cmt->clk); + if (!rate) { + ret = -EINVAL; + goto err_clk_disable; + } + + /* We shall wait 2 input clks after register writes */ + if (cmt->info->model >= SH_CMT_48BIT) + cmt->reg_delay = DIV_ROUND_UP(2UL * USEC_PER_SEC, rate); + cmt->rate = rate / (cmt->info->width == 16 ? 512 : 8); /* Map the memory resource(s). */ ret = sh_cmt_map_memory(cmt); --- linux-5.19.0.orig/drivers/clocksource/timer-gxp.c +++ linux-5.19.0/drivers/clocksource/timer-gxp.c @@ -171,6 +171,7 @@ { struct platform_device *gxp_watchdog_device; struct device *dev = &pdev->dev; + int ret; if (!gxp_timer) { pr_err("Gxp Timer not initialized, cannot create watchdog"); @@ -187,7 +188,11 @@ gxp_watchdog_device->dev.platform_data = gxp_timer->counter; gxp_watchdog_device->dev.parent = dev; - return platform_device_add(gxp_watchdog_device); + ret = platform_device_add(gxp_watchdog_device); + if (ret) + platform_device_put(gxp_watchdog_device); + + return ret; } static const struct of_device_id gxp_timer_of_match[] = { --- linux-5.19.0.orig/drivers/clocksource/timer-riscv.c +++ linux-5.19.0/drivers/clocksource/timer-riscv.c @@ -34,7 +34,7 @@ static unsigned int riscv_clock_event_irq; static DEFINE_PER_CPU(struct clock_event_device, riscv_clock_event) = { .name = "riscv_timer_clockevent", - .features = CLOCK_EVT_FEAT_ONESHOT | CLOCK_EVT_FEAT_C3STOP, + .features = CLOCK_EVT_FEAT_ONESHOT, .rating = 100, .set_next_event = riscv_clock_next_event, }; --- linux-5.19.0.orig/drivers/clocksource/timer-ti-dm-systimer.c +++ linux-5.19.0/drivers/clocksource/timer-ti-dm-systimer.c @@ -345,8 +345,10 @@ return error; r = clk_get_rate(clock); - if (!r) + if (!r) { + clk_disable_unprepare(clock); return -ENODEV; + } if (is_ick) t->ick = clock; --- linux-5.19.0.orig/drivers/counter/104-quad-8.c +++ linux-5.19.0/drivers/counter/104-quad-8.c @@ -34,6 +34,36 @@ #define QUAD8_NUM_COUNTERS 8 /** + * struct channel_reg - channel register structure + * @data: Count data + * @control: Channel flags and control + */ +struct channel_reg { + u8 data; + u8 control; +}; + +/** + * struct quad8_reg - device register structure + * @channel: quadrature counter data and control + * @interrupt_status: channel interrupt status + * @channel_oper: enable/reset counters and interrupt functions + * @index_interrupt: enable channel interrupts + * @reserved: reserved for Factory Use + * @index_input_levels: index signal logical input level + * @cable_status: differential encoder cable status + */ +struct quad8_reg { + struct channel_reg channel[QUAD8_NUM_COUNTERS]; + u8 interrupt_status; + u8 channel_oper; + u8 index_interrupt; + u8 reserved[3]; + u8 index_input_levels; + u8 cable_status; +}; + +/** * struct quad8 - device private data structure * @lock: lock to prevent clobbering device states during R/W ops * @counter: instance of the counter_device @@ -48,7 +78,7 @@ * @synchronous_mode: array of index function synchronous mode configurations * @index_polarity: array of index function polarity configurations * @cable_fault_enable: differential encoder cable status enable configurations - * @base: base port address of the device + * @reg: I/O address offset for the device registers */ struct quad8 { spinlock_t lock; @@ -63,14 +93,9 @@ unsigned int synchronous_mode[QUAD8_NUM_COUNTERS]; unsigned int index_polarity[QUAD8_NUM_COUNTERS]; unsigned int cable_fault_enable; - unsigned int base; + struct quad8_reg __iomem *reg; }; -#define QUAD8_REG_INTERRUPT_STATUS 0x10 -#define QUAD8_REG_CHAN_OP 0x11 -#define QUAD8_REG_INDEX_INTERRUPT 0x12 -#define QUAD8_REG_INDEX_INPUT_LEVELS 0x16 -#define QUAD8_DIFF_ENCODER_CABLE_STATUS 0x17 /* Borrow Toggle flip-flop */ #define QUAD8_FLAG_BT BIT(0) /* Carry Toggle flip-flop */ @@ -118,8 +143,7 @@ if (signal->id < 16) return -EINVAL; - state = inb(priv->base + QUAD8_REG_INDEX_INPUT_LEVELS) - & BIT(signal->id - 16); + state = ioread8(&priv->reg->index_input_levels) & BIT(signal->id - 16); *level = (state) ? COUNTER_SIGNAL_LEVEL_HIGH : COUNTER_SIGNAL_LEVEL_LOW; @@ -130,14 +154,14 @@ struct counter_count *count, u64 *val) { struct quad8 *const priv = counter_priv(counter); - const int base_offset = priv->base + 2 * count->id; + struct channel_reg __iomem *const chan = priv->reg->channel + count->id; unsigned int flags; unsigned int borrow; unsigned int carry; unsigned long irqflags; int i; - flags = inb(base_offset + 1); + flags = ioread8(&chan->control); borrow = flags & QUAD8_FLAG_BT; carry = !!(flags & QUAD8_FLAG_CT); @@ -147,11 +171,11 @@ spin_lock_irqsave(&priv->lock, irqflags); /* Reset Byte Pointer; transfer Counter to Output Latch */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT, - base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_CNTR_OUT, + &chan->control); for (i = 0; i < 3; i++) - *val |= (unsigned long)inb(base_offset) << (8 * i); + *val |= (unsigned long)ioread8(&chan->data) << (8 * i); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -162,7 +186,7 @@ struct counter_count *count, u64 val) { struct quad8 *const priv = counter_priv(counter); - const int base_offset = priv->base + 2 * count->id; + struct channel_reg __iomem *const chan = priv->reg->channel + count->id; unsigned long irqflags; int i; @@ -173,27 +197,27 @@ spin_lock_irqsave(&priv->lock, irqflags); /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); /* Counter can only be set via Preset Register */ for (i = 0; i < 3; i++) - outb(val >> (8 * i), base_offset); + iowrite8(val >> (8 * i), &chan->data); /* Transfer Preset Register to Counter */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_PRESET_CNTR, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_PRESET_CNTR, &chan->control); /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); /* Set Preset Register back to original value */ val = priv->preset[count->id]; for (i = 0; i < 3; i++) - outb(val >> (8 * i), base_offset); + iowrite8(val >> (8 * i), &chan->data); /* Reset Borrow, Carry, Compare, and Sign flags */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_FLAGS, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_FLAGS, &chan->control); /* Reset Error flag */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, &chan->control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -207,34 +231,45 @@ COUNTER_FUNCTION_QUADRATURE_X4, }; +static int quad8_function_get(const struct quad8 *const priv, const size_t id, + enum counter_function *const function) +{ + if (!priv->quadrature_mode[id]) { + *function = COUNTER_FUNCTION_PULSE_DIRECTION; + return 0; + } + + switch (priv->quadrature_scale[id]) { + case 0: + *function = COUNTER_FUNCTION_QUADRATURE_X1_A; + return 0; + case 1: + *function = COUNTER_FUNCTION_QUADRATURE_X2_A; + return 0; + case 2: + *function = COUNTER_FUNCTION_QUADRATURE_X4; + return 0; + default: + /* should never reach this path */ + return -EINVAL; + } +} + static int quad8_function_read(struct counter_device *counter, struct counter_count *count, enum counter_function *function) { struct quad8 *const priv = counter_priv(counter); - const int id = count->id; unsigned long irqflags; + int retval; spin_lock_irqsave(&priv->lock, irqflags); - if (priv->quadrature_mode[id]) - switch (priv->quadrature_scale[id]) { - case 0: - *function = COUNTER_FUNCTION_QUADRATURE_X1_A; - break; - case 1: - *function = COUNTER_FUNCTION_QUADRATURE_X2_A; - break; - case 2: - *function = COUNTER_FUNCTION_QUADRATURE_X4; - break; - } - else - *function = COUNTER_FUNCTION_PULSE_DIRECTION; + retval = quad8_function_get(priv, count->id, function); spin_unlock_irqrestore(&priv->lock, irqflags); - return 0; + return retval; } static int quad8_function_write(struct counter_device *counter, @@ -246,7 +281,7 @@ unsigned int *const quadrature_mode = priv->quadrature_mode + id; unsigned int *const scale = priv->quadrature_scale + id; unsigned int *const synchronous_mode = priv->synchronous_mode + id; - const int base_offset = priv->base + 2 * id + 1; + u8 __iomem *const control = &priv->reg->channel[id].control; unsigned long irqflags; unsigned int mode_cfg; unsigned int idr_cfg; @@ -266,7 +301,7 @@ if (*synchronous_mode) { *synchronous_mode = 0; /* Disable synchronous function mode */ - outb(QUAD8_CTR_IDR | idr_cfg, base_offset); + iowrite8(QUAD8_CTR_IDR | idr_cfg, control); } } else { *quadrature_mode = 1; @@ -292,7 +327,7 @@ } /* Load mode configuration to Counter Mode Register */ - outb(QUAD8_CTR_CMR | mode_cfg, base_offset); + iowrite8(QUAD8_CTR_CMR | mode_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -305,10 +340,10 @@ { const struct quad8 *const priv = counter_priv(counter); unsigned int ud_flag; - const unsigned int flag_addr = priv->base + 2 * count->id + 1; + u8 __iomem *const flag_addr = &priv->reg->channel[count->id].control; /* U/D flag: nonzero = up, zero = down */ - ud_flag = inb(flag_addr) & QUAD8_FLAG_UD; + ud_flag = ioread8(flag_addr) & QUAD8_FLAG_UD; *direction = (ud_flag) ? COUNTER_COUNT_DIRECTION_FORWARD : COUNTER_COUNT_DIRECTION_BACKWARD; @@ -334,6 +369,7 @@ enum counter_synapse_action *action) { struct quad8 *const priv = counter_priv(counter); + unsigned long irqflags; int err; enum counter_function function; const size_t signal_a_id = count->synapses[0].signal->id; @@ -349,9 +385,21 @@ return 0; } - err = quad8_function_read(counter, count, &function); - if (err) + spin_lock_irqsave(&priv->lock, irqflags); + + /* Get Count function and direction atomically */ + err = quad8_function_get(priv, count->id, &function); + if (err) { + spin_unlock_irqrestore(&priv->lock, irqflags); + return err; + } + err = quad8_direction_read(counter, count, &direction); + if (err) { + spin_unlock_irqrestore(&priv->lock, irqflags); return err; + } + + spin_unlock_irqrestore(&priv->lock, irqflags); /* Default action mode */ *action = COUNTER_SYNAPSE_ACTION_NONE; @@ -364,10 +412,6 @@ return 0; case COUNTER_FUNCTION_QUADRATURE_X1_A: if (synapse->signal->id == signal_a_id) { - err = quad8_direction_read(counter, count, &direction); - if (err) - return err; - if (direction == COUNTER_COUNT_DIRECTION_FORWARD) *action = COUNTER_SYNAPSE_ACTION_RISING_EDGE; else @@ -402,7 +446,6 @@ struct counter_event_node *event_node; unsigned int next_irq_trigger; unsigned long ior_cfg; - unsigned long base_offset; spin_lock_irqsave(&priv->lock, irqflags); @@ -426,6 +469,9 @@ return -EINVAL; } + /* Enable IRQ line */ + irq_enabled |= BIT(event_node->channel); + /* Skip configuration if it is the same as previously set */ if (priv->irq_trigger[event_node->channel] == next_irq_trigger) continue; @@ -437,14 +483,11 @@ ior_cfg = priv->ab_enable[event_node->channel] | priv->preset_enable[event_node->channel] << 1 | priv->irq_trigger[event_node->channel] << 3; - base_offset = priv->base + 2 * event_node->channel + 1; - outb(QUAD8_CTR_IOR | ior_cfg, base_offset); - - /* Enable IRQ line */ - irq_enabled |= BIT(event_node->channel); + iowrite8(QUAD8_CTR_IOR | ior_cfg, + &priv->reg->channel[event_node->channel].control); } - outb(irq_enabled, priv->base + QUAD8_REG_INDEX_INTERRUPT); + iowrite8(irq_enabled, &priv->reg->index_interrupt); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -508,7 +551,7 @@ { struct quad8 *const priv = counter_priv(counter); const size_t channel_id = signal->id - 16; - const int base_offset = priv->base + 2 * channel_id + 1; + u8 __iomem *const control = &priv->reg->channel[channel_id].control; unsigned long irqflags; unsigned int idr_cfg = index_polarity << 1; @@ -519,7 +562,7 @@ priv->index_polarity[channel_id] = index_polarity; /* Load Index Control configuration to Index Control Register */ - outb(QUAD8_CTR_IDR | idr_cfg, base_offset); + iowrite8(QUAD8_CTR_IDR | idr_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -549,7 +592,7 @@ { struct quad8 *const priv = counter_priv(counter); const size_t channel_id = signal->id - 16; - const int base_offset = priv->base + 2 * channel_id + 1; + u8 __iomem *const control = &priv->reg->channel[channel_id].control; unsigned long irqflags; unsigned int idr_cfg = synchronous_mode; @@ -566,7 +609,7 @@ priv->synchronous_mode[channel_id] = synchronous_mode; /* Load Index Control configuration to Index Control Register */ - outb(QUAD8_CTR_IDR | idr_cfg, base_offset); + iowrite8(QUAD8_CTR_IDR | idr_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -614,7 +657,7 @@ struct quad8 *const priv = counter_priv(counter); unsigned int count_mode; unsigned int mode_cfg; - const int base_offset = priv->base + 2 * count->id + 1; + u8 __iomem *const control = &priv->reg->channel[count->id].control; unsigned long irqflags; /* Map Generic Counter count mode to 104-QUAD-8 count mode */ @@ -648,7 +691,7 @@ mode_cfg |= (priv->quadrature_scale[count->id] + 1) << 3; /* Load mode configuration to Counter Mode Register */ - outb(QUAD8_CTR_CMR | mode_cfg, base_offset); + iowrite8(QUAD8_CTR_CMR | mode_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -669,7 +712,7 @@ struct counter_count *count, u8 enable) { struct quad8 *const priv = counter_priv(counter); - const int base_offset = priv->base + 2 * count->id; + u8 __iomem *const control = &priv->reg->channel[count->id].control; unsigned long irqflags; unsigned int ior_cfg; @@ -681,7 +724,7 @@ priv->irq_trigger[count->id] << 3; /* Load I/O control configuration */ - outb(QUAD8_CTR_IOR | ior_cfg, base_offset + 1); + iowrite8(QUAD8_CTR_IOR | ior_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -697,9 +740,9 @@ struct counter_count *count, u32 *noise_error) { const struct quad8 *const priv = counter_priv(counter); - const int base_offset = priv->base + 2 * count->id + 1; + u8 __iomem *const flag_addr = &priv->reg->channel[count->id].control; - *noise_error = !!(inb(base_offset) & QUAD8_FLAG_E); + *noise_error = !!(ioread8(flag_addr) & QUAD8_FLAG_E); return 0; } @@ -717,17 +760,17 @@ static void quad8_preset_register_set(struct quad8 *const priv, const int id, const unsigned int preset) { - const unsigned int base_offset = priv->base + 2 * id; + struct channel_reg __iomem *const chan = priv->reg->channel + id; int i; priv->preset[id] = preset; /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); /* Set Preset Register */ for (i = 0; i < 3; i++) - outb(preset >> (8 * i), base_offset); + iowrite8(preset >> (8 * i), &chan->data); } static int quad8_count_preset_write(struct counter_device *counter, @@ -816,7 +859,7 @@ u8 preset_enable) { struct quad8 *const priv = counter_priv(counter); - const int base_offset = priv->base + 2 * count->id + 1; + u8 __iomem *const control = &priv->reg->channel[count->id].control; unsigned long irqflags; unsigned int ior_cfg; @@ -831,7 +874,7 @@ priv->irq_trigger[count->id] << 3; /* Load I/O control configuration to Input / Output Control Register */ - outb(QUAD8_CTR_IOR | ior_cfg, base_offset); + iowrite8(QUAD8_CTR_IOR | ior_cfg, control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -858,7 +901,7 @@ } /* Logic 0 = cable fault */ - status = inb(priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS); + status = ioread8(&priv->reg->cable_status); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -899,7 +942,7 @@ /* Enable is active low in Differential Encoder Cable Status register */ cable_fault_enable = ~priv->cable_fault_enable; - outb(cable_fault_enable, priv->base + QUAD8_DIFF_ENCODER_CABLE_STATUS); + iowrite8(cable_fault_enable, &priv->reg->cable_status); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -923,7 +966,7 @@ { struct quad8 *const priv = counter_priv(counter); const size_t channel_id = signal->id / 2; - const int base_offset = priv->base + 2 * channel_id; + struct channel_reg __iomem *const chan = priv->reg->channel + channel_id; unsigned long irqflags; spin_lock_irqsave(&priv->lock, irqflags); @@ -931,12 +974,12 @@ priv->fck_prescaler[channel_id] = prescaler; /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); /* Set filter clock factor */ - outb(prescaler, base_offset); - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC, - base_offset + 1); + iowrite8(prescaler, &chan->data); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC, + &chan->control); spin_unlock_irqrestore(&priv->lock, irqflags); @@ -1084,12 +1127,11 @@ { struct counter_device *counter = private; struct quad8 *const priv = counter_priv(counter); - const unsigned long base = priv->base; unsigned long irq_status; unsigned long channel; u8 event; - irq_status = inb(base + QUAD8_REG_INTERRUPT_STATUS); + irq_status = ioread8(&priv->reg->interrupt_status); if (!irq_status) return IRQ_NONE; @@ -1118,17 +1160,43 @@ } /* Clear pending interrupts on device */ - outb(QUAD8_CHAN_OP_ENABLE_INTERRUPT_FUNC, base + QUAD8_REG_CHAN_OP); + iowrite8(QUAD8_CHAN_OP_ENABLE_INTERRUPT_FUNC, &priv->reg->channel_oper); return IRQ_HANDLED; } +static void quad8_init_counter(struct channel_reg __iomem *const chan) +{ + unsigned long i; + + /* Reset Byte Pointer */ + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); + /* Reset filter clock factor */ + iowrite8(0, &chan->data); + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC, + &chan->control); + /* Reset Byte Pointer */ + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, &chan->control); + /* Reset Preset Register */ + for (i = 0; i < 3; i++) + iowrite8(0x00, &chan->data); + /* Reset Borrow, Carry, Compare, and Sign flags */ + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_FLAGS, &chan->control); + /* Reset Error flag */ + iowrite8(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, &chan->control); + /* Binary encoding; Normal count; non-quadrature mode */ + iowrite8(QUAD8_CTR_CMR, &chan->control); + /* Disable A and B inputs; preset on index; FLG1 as Carry */ + iowrite8(QUAD8_CTR_IOR, &chan->control); + /* Disable index function; negative index polarity */ + iowrite8(QUAD8_CTR_IDR, &chan->control); +} + static int quad8_probe(struct device *dev, unsigned int id) { struct counter_device *counter; struct quad8 *priv; - int i, j; - unsigned int base_offset; + unsigned long i; int err; if (!devm_request_region(dev, base[id], QUAD8_EXTENT, dev_name(dev))) { @@ -1142,6 +1210,10 @@ return -ENOMEM; priv = counter_priv(counter); + priv->reg = devm_ioport_map(dev, base[id], QUAD8_EXTENT); + if (!priv->reg) + return -ENOMEM; + /* Initialize Counter device and driver data */ counter->name = dev_name(dev); counter->parent = dev; @@ -1150,43 +1222,20 @@ counter->num_counts = ARRAY_SIZE(quad8_counts); counter->signals = quad8_signals; counter->num_signals = ARRAY_SIZE(quad8_signals); - priv->base = base[id]; spin_lock_init(&priv->lock); /* Reset Index/Interrupt Register */ - outb(0x00, base[id] + QUAD8_REG_INDEX_INTERRUPT); + iowrite8(0x00, &priv->reg->index_interrupt); /* Reset all counters and disable interrupt function */ - outb(QUAD8_CHAN_OP_RESET_COUNTERS, base[id] + QUAD8_REG_CHAN_OP); + iowrite8(QUAD8_CHAN_OP_RESET_COUNTERS, &priv->reg->channel_oper); /* Set initial configuration for all counters */ - for (i = 0; i < QUAD8_NUM_COUNTERS; i++) { - base_offset = base[id] + 2 * i; - /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); - /* Reset filter clock factor */ - outb(0, base_offset); - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP | QUAD8_RLD_PRESET_PSC, - base_offset + 1); - /* Reset Byte Pointer */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_BP, base_offset + 1); - /* Reset Preset Register */ - for (j = 0; j < 3; j++) - outb(0x00, base_offset); - /* Reset Borrow, Carry, Compare, and Sign flags */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_FLAGS, base_offset + 1); - /* Reset Error flag */ - outb(QUAD8_CTR_RLD | QUAD8_RLD_RESET_E, base_offset + 1); - /* Binary encoding; Normal count; non-quadrature mode */ - outb(QUAD8_CTR_CMR, base_offset + 1); - /* Disable A and B inputs; preset on index; FLG1 as Carry */ - outb(QUAD8_CTR_IOR, base_offset + 1); - /* Disable index function; negative index polarity */ - outb(QUAD8_CTR_IDR, base_offset + 1); - } + for (i = 0; i < QUAD8_NUM_COUNTERS; i++) + quad8_init_counter(priv->reg->channel + i); /* Disable Differential Encoder Cable Status for all channels */ - outb(0xFF, base[id] + QUAD8_DIFF_ENCODER_CABLE_STATUS); + iowrite8(0xFF, &priv->reg->cable_status); /* Enable all counters and enable interrupt function */ - outb(QUAD8_CHAN_OP_ENABLE_INTERRUPT_FUNC, base[id] + QUAD8_REG_CHAN_OP); + iowrite8(QUAD8_CHAN_OP_ENABLE_INTERRUPT_FUNC, &priv->reg->channel_oper); err = devm_request_irq(&counter->dev, irq[id], quad8_irq_handler, IRQF_SHARED, counter->name, counter); --- linux-5.19.0.orig/drivers/counter/microchip-tcb-capture.c +++ linux-5.19.0/drivers/counter/microchip-tcb-capture.c @@ -28,7 +28,6 @@ int qdec_mode; int num_channels; int channel[2]; - bool trig_inverted; }; static const enum counter_function mchp_tc_count_functions[] = { @@ -153,7 +152,7 @@ regmap_read(priv->regmap, ATMEL_TC_REG(priv->channel[0], SR), &sr); - if (priv->trig_inverted) + if (signal->id == 1) sigstatus = (sr & ATMEL_TC_MTIOB); else sigstatus = (sr & ATMEL_TC_MTIOA); @@ -171,6 +170,17 @@ struct mchp_tc_data *const priv = counter_priv(counter); u32 cmr; + if (priv->qdec_mode) { + *action = COUNTER_SYNAPSE_ACTION_BOTH_EDGES; + return 0; + } + + /* Only TIOA signal is evaluated in non-QDEC mode */ + if (synapse->signal->id != 0) { + *action = COUNTER_SYNAPSE_ACTION_NONE; + return 0; + } + regmap_read(priv->regmap, ATMEL_TC_REG(priv->channel[0], CMR), &cmr); switch (cmr & ATMEL_TC_ETRGEDG) { @@ -199,8 +209,8 @@ struct mchp_tc_data *const priv = counter_priv(counter); u32 edge = ATMEL_TC_ETRGEDG_NONE; - /* QDEC mode is rising edge only */ - if (priv->qdec_mode) + /* QDEC mode is rising edge only; only TIOA handled in non-QDEC mode */ + if (priv->qdec_mode || synapse->signal->id != 0) return -EINVAL; switch (action) { --- linux-5.19.0.orig/drivers/counter/stm32-lptimer-cnt.c +++ linux-5.19.0/drivers/counter/stm32-lptimer-cnt.c @@ -69,7 +69,7 @@ /* ensure CMP & ARR registers are properly written */ ret = regmap_read_poll_timeout(priv->regmap, STM32_LPTIM_ISR, val, - (val & STM32_LPTIM_CMPOK_ARROK), + (val & STM32_LPTIM_CMPOK_ARROK) == STM32_LPTIM_CMPOK_ARROK, 100, 1000); if (ret) return ret; --- linux-5.19.0.orig/drivers/cpufreq/Kconfig.x86 +++ linux-5.19.0/drivers/cpufreq/Kconfig.x86 @@ -35,7 +35,7 @@ If in doubt, say N. config X86_AMD_PSTATE - tristate "AMD Processor P-State driver" + bool "AMD Processor P-State driver" depends on X86 && ACPI select ACPI_PROCESSOR select ACPI_CPPC_LIB if X86_64 --- linux-5.19.0.orig/drivers/cpufreq/amd-pstate.c +++ linux-5.19.0/drivers/cpufreq/amd-pstate.c @@ -58,12 +58,8 @@ * we disable it by default to go acpi-cpufreq on these processors and add a * module parameter to be able to enable it manually for debugging. */ -static bool shared_mem = false; -module_param(shared_mem, bool, 0444); -MODULE_PARM_DESC(shared_mem, - "enable amd-pstate on processors with shared memory solution (false = disabled (default), true = enabled)"); - static struct cpufreq_driver amd_pstate_driver; +static int cppc_load __initdata; /** * struct amd_aperf_mperf @@ -152,6 +148,7 @@ static int pstate_init_perf(struct amd_cpudata *cpudata) { u64 cap1; + u32 highest_perf; int ret = rdmsrl_safe_on_cpu(cpudata->cpu, MSR_AMD_CPPC_CAP1, &cap1); @@ -163,7 +160,11 @@ * * CPPC entry doesn't indicate the highest performance in some ASICs. */ - WRITE_ONCE(cpudata->highest_perf, amd_get_highest_perf()); + highest_perf = amd_get_highest_perf(); + if (highest_perf > AMD_CPPC_HIGHEST_PERF(cap1)) + highest_perf = AMD_CPPC_HIGHEST_PERF(cap1); + + WRITE_ONCE(cpudata->highest_perf, highest_perf); WRITE_ONCE(cpudata->nominal_perf, AMD_CPPC_NOMINAL_PERF(cap1)); WRITE_ONCE(cpudata->lowest_nonlinear_perf, AMD_CPPC_LOWNONLIN_PERF(cap1)); @@ -175,12 +176,17 @@ static int cppc_init_perf(struct amd_cpudata *cpudata) { struct cppc_perf_caps cppc_perf; + u32 highest_perf; int ret = cppc_get_perf_caps(cpudata->cpu, &cppc_perf); if (ret) return ret; - WRITE_ONCE(cpudata->highest_perf, amd_get_highest_perf()); + highest_perf = amd_get_highest_perf(); + if (highest_perf > cppc_perf.highest_perf) + highest_perf = cppc_perf.highest_perf; + + WRITE_ONCE(cpudata->highest_perf, highest_perf); WRITE_ONCE(cpudata->nominal_perf, cppc_perf.nominal_perf); WRITE_ONCE(cpudata->lowest_nonlinear_perf, @@ -312,7 +318,7 @@ return -ENODEV; cap_perf = READ_ONCE(cpudata->highest_perf); - min_perf = READ_ONCE(cpudata->lowest_nonlinear_perf); + min_perf = READ_ONCE(cpudata->lowest_perf); max_perf = cap_perf; freqs.old = policy->cur; @@ -473,12 +479,22 @@ amd_pstate_driver.boost_enabled = true; } +static void amd_perf_ctl_reset(unsigned int cpu) +{ + wrmsrl_on_cpu(cpu, MSR_AMD_PERF_CTL, 0); +} + static int amd_pstate_cpu_init(struct cpufreq_policy *policy) { int min_freq, max_freq, nominal_freq, lowest_nonlinear_freq, ret; struct device *dev; struct amd_cpudata *cpudata; + /* + * Resetting PERF_CTL_MSR will put the CPU in P0 frequency, + * which is ideal for initialization process. + */ + amd_perf_ctl_reset(policy->cpu); dev = get_cpu_device(policy->cpu); if (!dev) return -ENODEV; @@ -671,6 +687,15 @@ if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD) return -ENODEV; + /* + * by default the pstate driver is disabled to load + * enable the amd_pstate passive mode driver explicitly + * with amd_pstate=passive in kernel command line + */ + if (!cppc_load) { + pr_debug("driver load is disabled, boot with amd_pstate=passive to enable this\n"); + return -ENODEV; + } if (!acpi_cpc_valid()) { pr_debug("the _CPC object is not present in SBIOS\n"); @@ -685,13 +710,11 @@ if (boot_cpu_has(X86_FEATURE_CPPC)) { pr_debug("AMD CPPC MSR based functionality is supported\n"); amd_pstate_driver.adjust_perf = amd_pstate_adjust_perf; - } else if (shared_mem) { + } else { + pr_debug("AMD CPPC shared memory based functionality is supported\n"); static_call_update(amd_pstate_enable, cppc_enable); static_call_update(amd_pstate_init_perf, cppc_init_perf); static_call_update(amd_pstate_update_perf, cppc_update_perf); - } else { - pr_info("This processor supports shared memory solution, you can enable it with amd_pstate.shared_mem=1\n"); - return -ENODEV; } /* enable amd pstate feature */ @@ -708,16 +731,22 @@ return ret; } +device_initcall(amd_pstate_init); -static void __exit amd_pstate_exit(void) +static int __init amd_pstate_param(char *str) { - cpufreq_unregister_driver(&amd_pstate_driver); + if (!str) + return -EINVAL; - amd_pstate_enable(false); -} + if (!strcmp(str, "disable")) { + cppc_load = 0; + pr_info("driver is explicitly disabled\n"); + } else if (!strcmp(str, "passive")) + cppc_load = 1; -module_init(amd_pstate_init); -module_exit(amd_pstate_exit); + return 0; +} +early_param("amd_pstate", amd_pstate_param); MODULE_AUTHOR("Huang Rui "); MODULE_DESCRIPTION("AMD Processor P-state Frequency Driver"); --- linux-5.19.0.orig/drivers/cpufreq/amd_freq_sensitivity.c +++ linux-5.19.0/drivers/cpufreq/amd_freq_sensitivity.c @@ -125,6 +125,8 @@ if (!pcidev) { if (!boot_cpu_has(X86_FEATURE_PROC_FEEDBACK)) return -ENODEV; + } else { + pci_dev_put(pcidev); } if (rdmsrl_safe(MSR_AMD64_FREQ_SENSITIVITY_ACTUAL, &val)) --- linux-5.19.0.orig/drivers/cpufreq/cpufreq.c +++ linux-5.19.0/drivers/cpufreq/cpufreq.c @@ -532,7 +532,7 @@ target_freq = clamp_val(target_freq, policy->min, policy->max); - if (!cpufreq_driver->target_index) + if (!policy->freq_table) return target_freq; idx = cpufreq_frequency_table_target(policy, target_freq, relation); @@ -2795,6 +2795,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# @@ -2829,7 +2843,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-5.19.0.orig/drivers/cpufreq/intel_pstate.c +++ linux-5.19.0/drivers/cpufreq/intel_pstate.c @@ -27,6 +27,7 @@ #include #include +#include #include #include #include @@ -280,10 +281,10 @@ * structure is used to store those callbacks. */ struct pstate_funcs { - int (*get_max)(void); - int (*get_max_physical)(void); - int (*get_min)(void); - int (*get_turbo)(void); + int (*get_max)(int cpu); + int (*get_max_physical)(int cpu); + int (*get_min)(int cpu); + int (*get_turbo)(int cpu); int (*get_scaling)(void); int (*get_cpu_scaling)(int cpu); int (*get_aperf_mperf_shift)(void); @@ -398,16 +399,6 @@ return cppc_perf.nominal_perf; } - -static u32 intel_pstate_cppc_nominal(int cpu) -{ - u64 nominal_perf; - - if (cppc_get_nominal_perf(cpu, &nominal_perf)) - return 0; - - return nominal_perf; -} #else /* CONFIG_ACPI_CPPC_LIB */ static inline void intel_pstate_set_itmt_prio(int cpu) { @@ -531,35 +522,18 @@ { int perf_ctl_max_phys = cpu->pstate.max_pstate_physical; int perf_ctl_scaling = cpu->pstate.perf_ctl_scaling; - int perf_ctl_turbo = pstate_funcs.get_turbo(); - int turbo_freq = perf_ctl_turbo * perf_ctl_scaling; + int perf_ctl_turbo = pstate_funcs.get_turbo(cpu->cpu); int scaling = cpu->pstate.scaling; pr_debug("CPU%d: perf_ctl_max_phys = %d\n", cpu->cpu, perf_ctl_max_phys); - pr_debug("CPU%d: perf_ctl_max = %d\n", cpu->cpu, pstate_funcs.get_max()); pr_debug("CPU%d: perf_ctl_turbo = %d\n", cpu->cpu, perf_ctl_turbo); pr_debug("CPU%d: perf_ctl_scaling = %d\n", cpu->cpu, perf_ctl_scaling); pr_debug("CPU%d: HWP_CAP guaranteed = %d\n", cpu->cpu, cpu->pstate.max_pstate); pr_debug("CPU%d: HWP_CAP highest = %d\n", cpu->cpu, cpu->pstate.turbo_pstate); pr_debug("CPU%d: HWP-to-frequency scaling factor: %d\n", cpu->cpu, scaling); - /* - * If the product of the HWP performance scaling factor and the HWP_CAP - * highest performance is greater than the maximum turbo frequency - * corresponding to the pstate_funcs.get_turbo() return value, the - * scaling factor is too high, so recompute it to make the HWP_CAP - * highest performance correspond to the maximum turbo frequency. - */ - cpu->pstate.turbo_freq = cpu->pstate.turbo_pstate * scaling; - if (turbo_freq < cpu->pstate.turbo_freq) { - cpu->pstate.turbo_freq = turbo_freq; - scaling = DIV_ROUND_UP(turbo_freq, cpu->pstate.turbo_pstate); - cpu->pstate.scaling = scaling; - - pr_debug("CPU%d: refined HWP-to-frequency scaling factor: %d\n", - cpu->cpu, scaling); - } - + cpu->pstate.turbo_freq = rounddown(cpu->pstate.turbo_pstate * scaling, + perf_ctl_scaling); cpu->pstate.max_freq = rounddown(cpu->pstate.max_pstate * scaling, perf_ctl_scaling); @@ -1740,7 +1714,7 @@ intel_pstate_update_epp_defaults(cpudata); } -static int atom_get_min_pstate(void) +static int atom_get_min_pstate(int not_used) { u64 value; @@ -1748,7 +1722,7 @@ return (value >> 8) & 0x7F; } -static int atom_get_max_pstate(void) +static int atom_get_max_pstate(int not_used) { u64 value; @@ -1756,7 +1730,7 @@ return (value >> 16) & 0x7F; } -static int atom_get_turbo_pstate(void) +static int atom_get_turbo_pstate(int not_used) { u64 value; @@ -1834,23 +1808,23 @@ cpudata->vid.turbo = value & 0x7f; } -static int core_get_min_pstate(void) +static int core_get_min_pstate(int cpu) { u64 value; - rdmsrl(MSR_PLATFORM_INFO, value); + rdmsrl_on_cpu(cpu, MSR_PLATFORM_INFO, &value); return (value >> 40) & 0xFF; } -static int core_get_max_pstate_physical(void) +static int core_get_max_pstate_physical(int cpu) { u64 value; - rdmsrl(MSR_PLATFORM_INFO, value); + rdmsrl_on_cpu(cpu, MSR_PLATFORM_INFO, &value); return (value >> 8) & 0xFF; } -static int core_get_tdp_ratio(u64 plat_info) +static int core_get_tdp_ratio(int cpu, u64 plat_info) { /* Check how many TDP levels present */ if (plat_info & 0x600000000) { @@ -1860,13 +1834,13 @@ int err; /* Get the TDP level (0, 1, 2) to get ratios */ - err = rdmsrl_safe(MSR_CONFIG_TDP_CONTROL, &tdp_ctrl); + err = rdmsrl_safe_on_cpu(cpu, MSR_CONFIG_TDP_CONTROL, &tdp_ctrl); if (err) return err; /* TDP MSR are continuous starting at 0x648 */ tdp_msr = MSR_CONFIG_TDP_NOMINAL + (tdp_ctrl & 0x03); - err = rdmsrl_safe(tdp_msr, &tdp_ratio); + err = rdmsrl_safe_on_cpu(cpu, tdp_msr, &tdp_ratio); if (err) return err; @@ -1883,7 +1857,7 @@ return -ENXIO; } -static int core_get_max_pstate(void) +static int core_get_max_pstate(int cpu) { u64 tar; u64 plat_info; @@ -1891,10 +1865,10 @@ int tdp_ratio; int err; - rdmsrl(MSR_PLATFORM_INFO, plat_info); + rdmsrl_on_cpu(cpu, MSR_PLATFORM_INFO, &plat_info); max_pstate = (plat_info >> 8) & 0xFF; - tdp_ratio = core_get_tdp_ratio(plat_info); + tdp_ratio = core_get_tdp_ratio(cpu, plat_info); if (tdp_ratio <= 0) return max_pstate; @@ -1903,7 +1877,7 @@ return tdp_ratio; } - err = rdmsrl_safe(MSR_TURBO_ACTIVATION_RATIO, &tar); + err = rdmsrl_safe_on_cpu(cpu, MSR_TURBO_ACTIVATION_RATIO, &tar); if (!err) { int tar_levels; @@ -1918,13 +1892,13 @@ return max_pstate; } -static int core_get_turbo_pstate(void) +static int core_get_turbo_pstate(int cpu) { u64 value; int nont, ret; - rdmsrl(MSR_TURBO_RATIO_LIMIT, value); - nont = core_get_max_pstate(); + rdmsrl_on_cpu(cpu, MSR_TURBO_RATIO_LIMIT, &value); + nont = core_get_max_pstate(cpu); ret = (value) & 255; if (ret <= nont) ret = nont; @@ -1952,50 +1926,37 @@ return 10; } -static int knl_get_turbo_pstate(void) +static int knl_get_turbo_pstate(int cpu) { u64 value; int nont, ret; - rdmsrl(MSR_TURBO_RATIO_LIMIT, value); - nont = core_get_max_pstate(); + rdmsrl_on_cpu(cpu, MSR_TURBO_RATIO_LIMIT, &value); + nont = core_get_max_pstate(cpu); ret = (((value) >> 8) & 0xFF); if (ret <= nont) ret = nont; return ret; } -#ifdef CONFIG_ACPI_CPPC_LIB -static u32 hybrid_ref_perf; - -static int hybrid_get_cpu_scaling(int cpu) +static void hybrid_get_type(void *data) { - return DIV_ROUND_UP(core_get_scaling() * hybrid_ref_perf, - intel_pstate_cppc_nominal(cpu)); + u8 *cpu_type = data; + + *cpu_type = get_this_hybrid_cpu_type(); } -static void intel_pstate_cppc_set_cpu_scaling(void) +static int hybrid_get_cpu_scaling(int cpu) { - u32 min_nominal_perf = U32_MAX; - int cpu; + u8 cpu_type = 0; - for_each_present_cpu(cpu) { - u32 nominal_perf = intel_pstate_cppc_nominal(cpu); + smp_call_function_single(cpu, hybrid_get_type, &cpu_type, 1); + /* P-cores have a smaller perf level-to-freqency scaling factor. */ + if (cpu_type == 0x40) + return 78741; - if (nominal_perf && nominal_perf < min_nominal_perf) - min_nominal_perf = nominal_perf; - } - - if (min_nominal_perf < U32_MAX) { - hybrid_ref_perf = min_nominal_perf; - pstate_funcs.get_cpu_scaling = hybrid_get_cpu_scaling; - } + return core_get_scaling(); } -#else -static inline void intel_pstate_cppc_set_cpu_scaling(void) -{ -} -#endif /* CONFIG_ACPI_CPPC_LIB */ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate) { @@ -2025,10 +1986,10 @@ static void intel_pstate_get_cpu_pstates(struct cpudata *cpu) { - int perf_ctl_max_phys = pstate_funcs.get_max_physical(); + int perf_ctl_max_phys = pstate_funcs.get_max_physical(cpu->cpu); int perf_ctl_scaling = pstate_funcs.get_scaling(); - cpu->pstate.min_pstate = pstate_funcs.get_min(); + cpu->pstate.min_pstate = pstate_funcs.get_min(cpu->cpu); cpu->pstate.max_pstate_physical = perf_ctl_max_phys; cpu->pstate.perf_ctl_scaling = perf_ctl_scaling; @@ -2044,8 +2005,8 @@ } } else { cpu->pstate.scaling = perf_ctl_scaling; - cpu->pstate.max_pstate = pstate_funcs.get_max(); - cpu->pstate.turbo_pstate = pstate_funcs.get_turbo(); + cpu->pstate.max_pstate = pstate_funcs.get_max(cpu->cpu); + cpu->pstate.turbo_pstate = pstate_funcs.get_turbo(cpu->cpu); } if (cpu->pstate.scaling == perf_ctl_scaling) { @@ -2416,6 +2377,7 @@ X86_MATCH(SKYLAKE_X, core_funcs), X86_MATCH(COMETLAKE, core_funcs), X86_MATCH(ICELAKE_X, core_funcs), + X86_MATCH(TIGERLAKE, core_funcs), {} }; MODULE_DEVICE_TABLE(x86cpu, intel_pstate_cpu_ids); @@ -3220,9 +3182,9 @@ static int __init intel_pstate_msrs_not_valid(void) { - if (!pstate_funcs.get_max() || - !pstate_funcs.get_min() || - !pstate_funcs.get_turbo()) + if (!pstate_funcs.get_max(0) || + !pstate_funcs.get_min(0) || + !pstate_funcs.get_turbo(0)) return -ENODEV; return 0; @@ -3408,6 +3370,7 @@ * AlderLake Mobile CPUs. */ X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, 102), + X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, 32), {} }; @@ -3449,7 +3412,7 @@ default_driver = &intel_pstate; if (boot_cpu_has(X86_FEATURE_HYBRID_CPU)) - intel_pstate_cppc_set_cpu_scaling(); + pstate_funcs.get_cpu_scaling = hybrid_get_cpu_scaling; goto hwp_cpu_matched; } --- linux-5.19.0.orig/drivers/cpufreq/mediatek-cpufreq-hw.c +++ linux-5.19.0/drivers/cpufreq/mediatek-cpufreq-hw.c @@ -51,7 +51,7 @@ }; static int __maybe_unused -mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *mW, +mtk_cpufreq_get_cpu_power(struct device *cpu_dev, unsigned long *uW, unsigned long *KHz) { struct mtk_cpufreq_data *data; @@ -71,8 +71,9 @@ i--; *KHz = data->table[i].frequency; - *mW = readl_relaxed(data->reg_bases[REG_EM_POWER_TBL] + - i * LUT_ROW_SIZE) / 1000; + /* Provide micro-Watts value to the Energy Model */ + *uW = readl_relaxed(data->reg_bases[REG_EM_POWER_TBL] + + i * LUT_ROW_SIZE); return 0; } --- linux-5.19.0.orig/drivers/cpufreq/mediatek-cpufreq.c +++ linux-5.19.0/drivers/cpufreq/mediatek-cpufreq.c @@ -478,6 +478,7 @@ if (info->soc_data->ccifreq_supported) { info->vproc_on_boot = regulator_get_voltage(info->proc_reg); if (info->vproc_on_boot < 0) { + ret = info->vproc_on_boot; dev_err(info->cpu_dev, "invalid Vproc value: %d\n", info->vproc_on_boot); goto out_disable_inter_clock; --- linux-5.19.0.orig/drivers/cpufreq/qcom-cpufreq-hw.c +++ linux-5.19.0/drivers/cpufreq/qcom-cpufreq-hw.c @@ -123,9 +123,37 @@ return 0; } +static unsigned long qcom_lmh_get_throttle_freq(struct qcom_cpufreq_data *data) +{ + unsigned int lval; + + if (data->soc_data->reg_current_vote) + lval = readl_relaxed(data->base + data->soc_data->reg_current_vote) & 0x3ff; + else + lval = readl_relaxed(data->base + data->soc_data->reg_domain_state) & 0xff; + + return lval * xo_rate; +} + +/* Get the current frequency of the CPU (after throttling) */ static unsigned int qcom_cpufreq_hw_get(unsigned int cpu) { struct qcom_cpufreq_data *data; + struct cpufreq_policy *policy; + + policy = cpufreq_cpu_get_raw(cpu); + if (!policy) + return 0; + + data = policy->driver_data; + + return qcom_lmh_get_throttle_freq(data) / HZ_PER_KHZ; +} + +/* Get the frequency requested by the cpufreq core for the CPU */ +static unsigned int qcom_cpufreq_get_freq(unsigned int cpu) +{ + struct qcom_cpufreq_data *data; const struct qcom_cpufreq_soc_data *soc_data; struct cpufreq_policy *policy; unsigned int index; @@ -191,6 +219,7 @@ } } else if (ret != -ENODEV) { dev_err(cpu_dev, "Invalid opp table in device tree\n"); + kfree(table); return ret; } else { policy->fast_switch_possible = true; @@ -284,18 +313,6 @@ } } -static unsigned long qcom_lmh_get_throttle_freq(struct qcom_cpufreq_data *data) -{ - unsigned int lval; - - if (data->soc_data->reg_current_vote) - lval = readl_relaxed(data->base + data->soc_data->reg_current_vote) & 0x3ff; - else - lval = readl_relaxed(data->base + data->soc_data->reg_domain_state) & 0xff; - - return lval * xo_rate; -} - static void qcom_lmh_dcvs_notify(struct qcom_cpufreq_data *data) { struct cpufreq_policy *policy = data->policy; @@ -317,14 +334,14 @@ if (IS_ERR(opp)) { dev_warn(dev, "Can't find the OPP for throttling: %pe!\n", opp); } else { - throttled_freq = freq_hz / HZ_PER_KHZ; - - /* Update thermal pressure (the boost frequencies are accepted) */ - arch_update_thermal_pressure(policy->related_cpus, throttled_freq); - dev_pm_opp_put(opp); } + throttled_freq = freq_hz / HZ_PER_KHZ; + + /* Update thermal pressure (the boost frequencies are accepted) */ + arch_update_thermal_pressure(policy->related_cpus, throttled_freq); + /* * In the unlikely case policy is unregistered do not enable * polling or h/w interrupt @@ -337,7 +354,7 @@ * If h/w throttled frequency is higher than what cpufreq has requested * for, then stop polling and switch back to interrupt mechanism. */ - if (throttled_freq >= qcom_cpufreq_hw_get(cpu)) + if (throttled_freq >= qcom_cpufreq_get_freq(cpu)) enable_irq(data->throttle_irq); else mod_delayed_work(system_highpri_wq, &data->throttle_work, --- linux-5.19.0.orig/drivers/cpufreq/qcom-cpufreq-nvmem.c +++ linux-5.19.0/drivers/cpufreq/qcom-cpufreq-nvmem.c @@ -215,6 +215,7 @@ int speed = 0, pvs = 0, pvs_ver = 0; u8 *speedbin; size_t len; + int ret = 0; speedbin = nvmem_cell_read(speedbin_nvmem, &len); @@ -232,7 +233,8 @@ break; default: dev_err(cpu_dev, "Unable to read nvmem data. Defaulting to 0!\n"); - return -ENODEV; + ret = -ENODEV; + goto len_error; } snprintf(*pvs_name, sizeof("speedXX-pvsXX-vXX"), "speed%d-pvs%d-v%d", @@ -240,8 +242,9 @@ drv->versions = (1 << speed); +len_error: kfree(speedbin); - return 0; + return ret; } static const struct qcom_cpufreq_match_data match_data_kryo = { @@ -264,7 +267,8 @@ struct nvmem_cell *speedbin_nvmem; struct device_node *np; struct device *cpu_dev; - char *pvs_name = "speedXX-pvsXX-vXX"; + char pvs_name_buffer[] = "speedXX-pvsXX-vXX"; + char *pvs_name = pvs_name_buffer; unsigned cpu; const struct of_device_id *match; int ret; --- linux-5.19.0.orig/drivers/cpufreq/scmi-cpufreq.c +++ linux-5.19.0/drivers/cpufreq/scmi-cpufreq.c @@ -19,6 +19,7 @@ #include #include #include +#include struct scmi_data { int domain_id; @@ -99,6 +100,7 @@ scmi_get_cpu_power(struct device *cpu_dev, unsigned long *power, unsigned long *KHz) { + bool power_scale_mw = perf_ops->power_scale_mw_get(ph); unsigned long Hz; int ret, domain; @@ -112,6 +114,10 @@ if (ret) return ret; + /* Provide bigger resolution power to the Energy Model */ + if (power_scale_mw) + *power *= MICROWATT_PER_MILLIWATT; + /* The EM framework specifies the frequency in KHz. */ *KHz = Hz / 1000; --- linux-5.19.0.orig/drivers/cpufreq/tegra194-cpufreq.c +++ linux-5.19.0/drivers/cpufreq/tegra194-cpufreq.c @@ -592,6 +592,7 @@ { .compatible = "nvidia,tegra234-ccplex-cluster", .data = &tegra234_cpufreq_soc }, { /* sentinel */ } }; +MODULE_DEVICE_TABLE(of, tegra194_cpufreq_of_match); static struct platform_driver tegra194_ccplex_driver = { .driver = { --- linux-5.19.0.orig/drivers/cpuidle/cpuidle-riscv-sbi.c +++ linux-5.19.0/drivers/cpuidle/cpuidle-riscv-sbi.c @@ -97,8 +97,13 @@ struct cpuidle_driver *drv, int idx) { u32 *states = __this_cpu_read(sbi_cpuidle_data.states); + u32 state = states[idx]; - return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, states[idx]); + if (state & SBI_HSM_SUSP_NON_RET_BIT) + return CPU_PM_CPU_IDLE_ENTER_PARAM(sbi_suspend, idx, state); + else + return CPU_PM_CPU_IDLE_ENTER_RETENTION_PARAM(sbi_suspend, + idx, state); } static int __sbi_enter_domain_idle_state(struct cpuidle_device *dev, --- linux-5.19.0.orig/drivers/cpuidle/dt_idle_states.c +++ linux-5.19.0/drivers/cpuidle/dt_idle_states.c @@ -223,6 +223,6 @@ * also be 0 on platforms with missing DT idle states or legacy DT * configuration predating the DT idle states bindings. */ - return i; + return state_idx - start_idx; } EXPORT_SYMBOL_GPL(dt_init_idle_driver); --- linux-5.19.0.orig/drivers/crypto/Kconfig +++ linux-5.19.0/drivers/crypto/Kconfig @@ -669,7 +669,12 @@ config CRYPTO_DEV_ROCKCHIP tristate "Rockchip's Cryptographic Engine driver" depends on OF && ARCH_ROCKCHIP + depends on PM + select CRYPTO_ECB + select CRYPTO_CBC + select CRYPTO_DES select CRYPTO_AES + select CRYPTO_ENGINE select CRYPTO_LIB_DES select CRYPTO_MD5 select CRYPTO_SHA1 --- linux-5.19.0.orig/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c +++ linux-5.19.0/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-cipher.c @@ -124,7 +124,7 @@ unsigned int ivsize = crypto_skcipher_ivsize(tfm); struct sun8i_ss_flow *sf = &ss->flows[rctx->flow]; int i = 0; - u32 a; + dma_addr_t a; int err; rctx->ivlen = ivsize; @@ -170,6 +170,7 @@ while (i >= 0) { dma_unmap_single(ss->dev, rctx->p_iv[i], ivsize, DMA_TO_DEVICE); memzero_explicit(sf->iv[i], ivsize); + i--; } return err; } --- linux-5.19.0.orig/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c +++ linux-5.19.0/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-core.c @@ -528,25 +528,33 @@ ss->flows[i].biv = devm_kmalloc(ss->dev, AES_BLOCK_SIZE, GFP_KERNEL | GFP_DMA); - if (!ss->flows[i].biv) + if (!ss->flows[i].biv) { + err = -ENOMEM; goto error_engine; + } for (j = 0; j < MAX_SG; j++) { ss->flows[i].iv[j] = devm_kmalloc(ss->dev, AES_BLOCK_SIZE, GFP_KERNEL | GFP_DMA); - if (!ss->flows[i].iv[j]) + if (!ss->flows[i].iv[j]) { + err = -ENOMEM; goto error_engine; + } } /* the padding could be up to two block. */ ss->flows[i].pad = devm_kmalloc(ss->dev, MAX_PAD_SIZE, GFP_KERNEL | GFP_DMA); - if (!ss->flows[i].pad) + if (!ss->flows[i].pad) { + err = -ENOMEM; goto error_engine; + } ss->flows[i].result = devm_kmalloc(ss->dev, SHA256_DIGEST_SIZE, GFP_KERNEL | GFP_DMA); - if (!ss->flows[i].result) + if (!ss->flows[i].result) { + err = -ENOMEM; goto error_engine; + } ss->flows[i].engine = crypto_engine_alloc_init(ss->dev, true); if (!ss->flows[i].engine) { --- linux-5.19.0.orig/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c +++ linux-5.19.0/drivers/crypto/allwinner/sun8i-ss/sun8i-ss-hash.c @@ -30,8 +30,8 @@ int ret = 0; xtfm = crypto_alloc_shash("sha1", 0, CRYPTO_ALG_NEED_FALLBACK); - if (!xtfm) - return -ENOMEM; + if (IS_ERR(xtfm)) + return PTR_ERR(xtfm); len = sizeof(*sdesc) + crypto_shash_descsize(xtfm); sdesc = kmalloc(len, GFP_KERNEL); @@ -586,7 +586,8 @@ rctx->t_dst[k + 1].len = rctx->t_dst[k].len; } addr_xpad = dma_map_single(ss->dev, tfmctx->ipad, bs, DMA_TO_DEVICE); - if (dma_mapping_error(ss->dev, addr_xpad)) { + err = dma_mapping_error(ss->dev, addr_xpad); + if (err) { dev_err(ss->dev, "Fail to create DMA mapping of ipad\n"); goto err_dma_xpad; } @@ -612,7 +613,8 @@ goto err_dma_result; } addr_xpad = dma_map_single(ss->dev, tfmctx->opad, bs, DMA_TO_DEVICE); - if (dma_mapping_error(ss->dev, addr_xpad)) { + err = dma_mapping_error(ss->dev, addr_xpad); + if (err) { dev_err(ss->dev, "Fail to create DMA mapping of opad\n"); goto err_dma_xpad; } --- linux-5.19.0.orig/drivers/crypto/amlogic/amlogic-gxl-core.c +++ linux-5.19.0/drivers/crypto/amlogic/amlogic-gxl-core.c @@ -237,7 +237,6 @@ return err; } - mc->irqs = devm_kcalloc(mc->dev, MAXFLOW, sizeof(int), GFP_KERNEL); for (i = 0; i < MAXFLOW; i++) { mc->irqs[i] = platform_get_irq(pdev, i); if (mc->irqs[i] < 0) --- linux-5.19.0.orig/drivers/crypto/amlogic/amlogic-gxl.h +++ linux-5.19.0/drivers/crypto/amlogic/amlogic-gxl.h @@ -95,7 +95,7 @@ struct device *dev; struct meson_flow *chanlist; atomic_t flow; - int *irqs; + int irqs[MAXFLOW]; #ifdef CONFIG_CRYPTO_DEV_AMLOGIC_GXL_DEBUG struct dentry *dbgfs_dir; #endif --- linux-5.19.0.orig/drivers/crypto/cavium/cpt/cptpf_main.c +++ linux-5.19.0/drivers/crypto/cavium/cpt/cptpf_main.c @@ -253,6 +253,7 @@ const struct firmware *fw_entry; struct device *dev = &cpt->pdev->dev; struct ucode_header *ucode; + unsigned int code_length; struct microcode *mcode; int j, ret = 0; @@ -263,11 +264,12 @@ ucode = (struct ucode_header *)fw_entry->data; mcode = &cpt->mcode[cpt->next_mc_idx]; memcpy(mcode->version, (u8 *)fw_entry->data, CPT_UCODE_VERSION_SZ); - mcode->code_size = ntohl(ucode->code_length) * 2; - if (!mcode->code_size) { + code_length = ntohl(ucode->code_length); + if (code_length == 0 || code_length >= INT_MAX / 2) { ret = -EINVAL; goto fw_release; } + mcode->code_size = code_length * 2; mcode->is_ae = is_ae; mcode->core_mask = 0ULL; --- linux-5.19.0.orig/drivers/crypto/cavium/nitrox/nitrox_mbx.c +++ linux-5.19.0/drivers/crypto/cavium/nitrox/nitrox_mbx.c @@ -195,6 +195,7 @@ ndev->iov.pf2vf_wq = alloc_workqueue("nitrox_pf2vf", 0, 0); if (!ndev->iov.pf2vf_wq) { kfree(ndev->iov.vfdev); + ndev->iov.vfdev = NULL; return -ENOMEM; } /* enable pf2vf mailbox interrupts */ --- linux-5.19.0.orig/drivers/crypto/ccp/ccp-dmaengine.c +++ linux-5.19.0/drivers/crypto/ccp/ccp-dmaengine.c @@ -641,6 +641,10 @@ for (i = 0; i < ccp->cmd_q_count; i++) { chan = ccp->ccp_dma_chan + i; dma_chan = &chan->dma_chan; + + if (dma_chan->client_count) + dma_release_channel(dma_chan); + tasklet_kill(&chan->cleanup_tasklet); list_del_rcu(&dma_chan->device_node); } @@ -766,8 +770,8 @@ if (!dmaengine) return; - dma_async_device_unregister(dma_dev); ccp_dma_release(ccp); + dma_async_device_unregister(dma_dev); kmem_cache_destroy(ccp->dma_desc_cache); kmem_cache_destroy(ccp->dma_cmd_cache); --- linux-5.19.0.orig/drivers/crypto/ccp/sev-dev.c +++ linux-5.19.0/drivers/crypto/ccp/sev-dev.c @@ -231,7 +231,7 @@ return 0; } -static void sev_write_init_ex_file(void) +static int sev_write_init_ex_file(void) { struct sev_device *sev = psp_master->sev_data; struct file *fp; @@ -241,14 +241,16 @@ lockdep_assert_held(&sev_cmd_mutex); if (!sev_init_ex_buffer) - return; + return 0; fp = open_file_as_root(init_ex_path, O_CREAT | O_WRONLY, 0600); if (IS_ERR(fp)) { + int ret = PTR_ERR(fp); + dev_err(sev->dev, - "SEV: could not open file for write, error %ld\n", - PTR_ERR(fp)); - return; + "SEV: could not open file for write, error %d\n", + ret); + return ret; } nwrite = kernel_write(fp, sev_init_ex_buffer, NV_LENGTH, &offset); @@ -259,18 +261,20 @@ dev_err(sev->dev, "SEV: failed to write %u bytes to non volatile memory area, ret %ld\n", NV_LENGTH, nwrite); - return; + return -EIO; } dev_dbg(sev->dev, "SEV: write successful to NV file\n"); + + return 0; } -static void sev_write_init_ex_file_if_required(int cmd_id) +static int sev_write_init_ex_file_if_required(int cmd_id) { lockdep_assert_held(&sev_cmd_mutex); if (!sev_init_ex_buffer) - return; + return 0; /* * Only a few platform commands modify the SPI/NV area, but none of the @@ -285,10 +289,10 @@ case SEV_CMD_PEK_GEN: break; default: - return; + return 0; } - sev_write_init_ex_file(); + return sev_write_init_ex_file(); } static int __sev_do_cmd_locked(int cmd, void *data, int *psp_ret) @@ -361,7 +365,7 @@ cmd, reg & PSP_CMDRESP_ERR_MASK); ret = -EIO; } else { - sev_write_init_ex_file_if_required(cmd); + ret = sev_write_init_ex_file_if_required(cmd); } print_hex_dump_debug("(out): ", DUMP_PREFIX_OFFSET, 16, 2, data, @@ -503,7 +507,7 @@ struct sev_device *sev = psp_master->sev_data; int ret; - if (sev->state == SEV_STATE_UNINIT) + if (!sev || sev->state == SEV_STATE_UNINIT) return 0; ret = __sev_do_cmd_locked(SEV_CMD_SHUTDOWN, NULL, error); @@ -577,6 +581,8 @@ struct sev_user_data_status data; int ret; + memset(&data, 0, sizeof(data)); + ret = __sev_do_cmd_locked(SEV_CMD_PLATFORM_STATUS, &data, &argp->error); if (ret) return ret; @@ -630,7 +636,7 @@ if (input.length > SEV_FW_BLOB_MAX_SIZE) return -EFAULT; - blob = kmalloc(input.length, GFP_KERNEL); + blob = kzalloc(input.length, GFP_KERNEL); if (!blob) return -ENOMEM; @@ -742,6 +748,11 @@ struct page *p; u64 data_size; + if (!sev_version_greater_or_equal(0, 15)) { + dev_dbg(dev, "DOWNLOAD_FIRMWARE not supported\n"); + return -1; + } + if (sev_get_firmware(dev, &firmware) == -ENOENT) { dev_dbg(dev, "No SEV firmware file present\n"); return -1; @@ -774,6 +785,14 @@ data->len = firmware->size; ret = sev_do_cmd(SEV_CMD_DOWNLOAD_FIRMWARE, data, &error); + + /* + * A quirk for fixing the committed TCB version, when upgrading from + * earlier firmware version than 1.50. + */ + if (!ret && !sev_version_greater_or_equal(1, 50)) + ret = sev_do_cmd(SEV_CMD_DOWNLOAD_FIRMWARE, data, &error); + if (ret) dev_dbg(dev, "Failed to update SEV firmware: %#x\n", error); else @@ -854,7 +873,7 @@ input_address = (void __user *)input.address; if (input.address && input.length) { - id_blob = kmalloc(input.length, GFP_KERNEL); + id_blob = kzalloc(input.length, GFP_KERNEL); if (!id_blob) return -ENOMEM; @@ -973,14 +992,14 @@ if (input.cert_chain_len > SEV_FW_BLOB_MAX_SIZE) return -EFAULT; - pdh_blob = kmalloc(input.pdh_cert_len, GFP_KERNEL); + pdh_blob = kzalloc(input.pdh_cert_len, GFP_KERNEL); if (!pdh_blob) return -ENOMEM; data.pdh_cert_address = __psp_pa(pdh_blob); data.pdh_cert_len = input.pdh_cert_len; - cert_blob = kmalloc(input.cert_chain_len, GFP_KERNEL); + cert_blob = kzalloc(input.cert_chain_len, GFP_KERNEL); if (!cert_blob) { ret = -ENOMEM; goto e_free_pdh; @@ -1283,8 +1302,7 @@ if (sev_get_api_version()) goto err; - if (sev_version_greater_or_equal(0, 15) && - sev_update_firmware(sev->dev) == 0) + if (sev_update_firmware(sev->dev) == 0) sev_get_api_version(); /* If an init_ex_path is provided rely on INIT_EX for PSP initialization --- linux-5.19.0.orig/drivers/crypto/ccp/sp-pci.c +++ linux-5.19.0/drivers/crypto/ccp/sp-pci.c @@ -381,6 +381,15 @@ .inten_reg = 0x10690, .intsts_reg = 0x10694, }; + +static const struct psp_vdata pspv4 = { + .sev = &sevv2, + .tee = &teev1, + .feature_reg = 0x109fc, + .inten_reg = 0x10690, + .intsts_reg = 0x10694, +}; + #endif static const struct sp_dev_vdata dev_vdata[] = { @@ -426,7 +435,7 @@ { /* 5 */ .bar = 2, #ifdef CONFIG_CRYPTO_DEV_SP_PSP - .psp_vdata = &pspv2, + .psp_vdata = &pspv4, #endif }, }; --- linux-5.19.0.orig/drivers/crypto/ccree/cc_debugfs.c +++ linux-5.19.0/drivers/crypto/ccree/cc_debugfs.c @@ -55,7 +55,7 @@ cc_debugfs_dir = debugfs_create_dir("ccree", NULL); } -void __exit cc_debugfs_global_fini(void) +void cc_debugfs_global_fini(void) { debugfs_remove(cc_debugfs_dir); } --- linux-5.19.0.orig/drivers/crypto/ccree/cc_driver.c +++ linux-5.19.0/drivers/crypto/ccree/cc_driver.c @@ -658,9 +658,17 @@ static int __init ccree_init(void) { + int rc; + cc_debugfs_global_init(); - return platform_driver_register(&ccree_driver); + rc = platform_driver_register(&ccree_driver); + if (rc) { + cc_debugfs_global_fini(); + return rc; + } + + return 0; } module_init(ccree_init); --- linux-5.19.0.orig/drivers/crypto/hisilicon/hpre/hpre_crypto.c +++ linux-5.19.0/drivers/crypto/hisilicon/hpre/hpre_crypto.c @@ -252,7 +252,7 @@ if (unlikely(shift < 0)) return -EINVAL; - ptr = dma_alloc_coherent(dev, ctx->key_sz, tmp, GFP_KERNEL); + ptr = dma_alloc_coherent(dev, ctx->key_sz, tmp, GFP_ATOMIC); if (unlikely(!ptr)) return -ENOMEM; --- linux-5.19.0.orig/drivers/crypto/hisilicon/hpre/hpre_main.c +++ linux-5.19.0/drivers/crypto/hisilicon/hpre/hpre_main.c @@ -1287,18 +1287,12 @@ static void hpre_remove(struct pci_dev *pdev) { struct hisi_qm *qm = pci_get_drvdata(pdev); - int ret; hisi_qm_pm_uninit(qm); hisi_qm_wait_task_finish(qm, &hpre_devices); hisi_qm_alg_unregister(qm, &hpre_devices); - if (qm->fun_type == QM_HW_PF && qm->vfs_num) { - ret = hisi_qm_sriov_disable(pdev, true); - if (ret) { - pci_err(pdev, "Disable SRIOV fail!\n"); - return; - } - } + if (qm->fun_type == QM_HW_PF && qm->vfs_num) + hisi_qm_sriov_disable(pdev, true); hpre_debugfs_exit(qm); hisi_qm_stop(qm, QM_NORMAL); --- linux-5.19.0.orig/drivers/crypto/hisilicon/qm.c +++ linux-5.19.0/drivers/crypto/hisilicon/qm.c @@ -2229,8 +2229,10 @@ return ret; /* Judge if the instance is being reset. */ - if (unlikely(atomic_read(&qm->status.flags) == QM_STOP)) - return 0; + if (unlikely(atomic_read(&qm->status.flags) == QM_STOP)) { + ret = 0; + goto put_dfx_access; + } if (count > QM_DBG_WRITE_LEN) { ret = -ENOSPC; @@ -5694,6 +5696,7 @@ cmd = QM_VF_START_FAIL; } + qm_cmd_init(qm); ret = qm->ops->ping_pf(qm, cmd); if (ret) dev_warn(&pdev->dev, "PF responds timeout in reset done!\n"); @@ -5755,7 +5758,6 @@ goto err_get_status; qm_pf_reset_vf_done(qm); - qm_cmd_init(qm); dev_info(dev, "device reset done.\n"); @@ -6085,8 +6087,8 @@ GFP_ATOMIC); dev_dbg(dev, "allocate qm dma buf size=%zx)\n", qm->qdma.size); if (!qm->qdma.va) { - ret = -ENOMEM; - goto err_alloc_qdma; + ret = -ENOMEM; + goto err_destroy_idr; } QM_INIT_BUF(qm, eqe, QM_EQ_DEPTH); @@ -6102,7 +6104,8 @@ err_alloc_qp_array: dma_free_coherent(dev, qm->qdma.size, qm->qdma.va, qm->qdma.dma); -err_alloc_qdma: +err_destroy_idr: + idr_destroy(&qm->qp_idr); kfree(qm->factor); return ret; --- linux-5.19.0.orig/drivers/crypto/hisilicon/sec/sec_algs.c +++ linux-5.19.0/drivers/crypto/hisilicon/sec/sec_algs.c @@ -449,7 +449,7 @@ */ } - mutex_lock(&ctx->queue->queuelock); + spin_lock_bh(&ctx->queue->queuelock); /* Put the IV in place for chained cases */ switch (ctx->cipher_alg) { case SEC_C_AES_CBC_128: @@ -509,7 +509,7 @@ list_del(&backlog_req->backlog_head); } } - mutex_unlock(&ctx->queue->queuelock); + spin_unlock_bh(&ctx->queue->queuelock); mutex_lock(&sec_req->lock); list_del(&sec_req_el->head); @@ -798,7 +798,7 @@ */ /* Grab a big lock for a long time to avoid concurrency issues */ - mutex_lock(&queue->queuelock); + spin_lock_bh(&queue->queuelock); /* * Can go on to queue if we have space in either: @@ -814,15 +814,15 @@ ret = -EBUSY; if ((skreq->base.flags & CRYPTO_TFM_REQ_MAY_BACKLOG)) { list_add_tail(&sec_req->backlog_head, &ctx->backlog); - mutex_unlock(&queue->queuelock); + spin_unlock_bh(&queue->queuelock); goto out; } - mutex_unlock(&queue->queuelock); + spin_unlock_bh(&queue->queuelock); goto err_free_elements; } ret = sec_send_request(sec_req, queue); - mutex_unlock(&queue->queuelock); + spin_unlock_bh(&queue->queuelock); if (ret) goto err_free_elements; @@ -881,7 +881,7 @@ if (IS_ERR(ctx->queue)) return PTR_ERR(ctx->queue); - mutex_init(&ctx->queue->queuelock); + spin_lock_init(&ctx->queue->queuelock); ctx->queue->havesoftqueue = false; return 0; --- linux-5.19.0.orig/drivers/crypto/hisilicon/sec/sec_drv.h +++ linux-5.19.0/drivers/crypto/hisilicon/sec/sec_drv.h @@ -347,7 +347,7 @@ DECLARE_BITMAP(unprocessed, SEC_QUEUE_LEN); DECLARE_KFIFO_PTR(softqueue, typeof(struct sec_request_el *)); bool havesoftqueue; - struct mutex queuelock; + spinlock_t queuelock; void *shadow[SEC_QUEUE_LEN]; }; --- linux-5.19.0.orig/drivers/crypto/hisilicon/sec2/sec.h +++ linux-5.19.0/drivers/crypto/hisilicon/sec2/sec.h @@ -119,7 +119,7 @@ struct idr req_idr; struct sec_alg_res res[QM_Q_DEPTH]; struct sec_ctx *ctx; - struct mutex req_lock; + spinlock_t req_lock; struct list_head backlog; struct hisi_acc_sgl_pool *c_in_pool; struct hisi_acc_sgl_pool *c_out_pool; --- linux-5.19.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.c +++ linux-5.19.0/drivers/crypto/hisilicon/sec2/sec_crypto.c @@ -127,11 +127,11 @@ { int req_id; - mutex_lock(&qp_ctx->req_lock); + spin_lock_bh(&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); + spin_unlock_bh(&qp_ctx->req_lock); if (unlikely(req_id < 0)) { dev_err(req->ctx->dev, "alloc req id fail!\n"); return req_id; @@ -156,9 +156,9 @@ qp_ctx->req_list[req_id] = NULL; req->qp_ctx = NULL; - mutex_lock(&qp_ctx->req_lock); + spin_lock_bh(&qp_ctx->req_lock); idr_remove(&qp_ctx->req_idr, req_id); - mutex_unlock(&qp_ctx->req_lock); + spin_unlock_bh(&qp_ctx->req_lock); } static u8 pre_parse_finished_bd(struct bd_status *status, void *resp) @@ -273,7 +273,7 @@ !(req->flag & CRYPTO_TFM_REQ_MAY_BACKLOG)) return -EBUSY; - mutex_lock(&qp_ctx->req_lock); + spin_lock_bh(&qp_ctx->req_lock); ret = hisi_qp_send(qp_ctx->qp, &req->sec_sqe); if (ctx->fake_req_limit <= @@ -281,10 +281,10 @@ list_add_tail(&req->backlog_head, &qp_ctx->backlog); atomic64_inc(&ctx->sec->debug.dfx.send_cnt); atomic64_inc(&ctx->sec->debug.dfx.send_busy_cnt); - mutex_unlock(&qp_ctx->req_lock); + spin_unlock_bh(&qp_ctx->req_lock); return -EBUSY; } - mutex_unlock(&qp_ctx->req_lock); + spin_unlock_bh(&qp_ctx->req_lock); if (unlikely(ret == -EBUSY)) return -ENOBUFS; @@ -487,7 +487,7 @@ qp->req_cb = sec_req_cb; - mutex_init(&qp_ctx->req_lock); + spin_lock_init(&qp_ctx->req_lock); idr_init(&qp_ctx->req_idr); INIT_LIST_HEAD(&qp_ctx->backlog); @@ -620,7 +620,7 @@ { struct sec_auth_ctx *a_ctx = &ctx->a_ctx; - a_ctx->a_key = dma_alloc_coherent(ctx->dev, SEC_MAX_KEY_SIZE, + a_ctx->a_key = dma_alloc_coherent(ctx->dev, SEC_MAX_AKEY_SIZE, &a_ctx->a_key_dma, GFP_KERNEL); if (!a_ctx->a_key) return -ENOMEM; @@ -632,8 +632,8 @@ { struct sec_auth_ctx *a_ctx = &ctx->a_ctx; - memzero_explicit(a_ctx->a_key, SEC_MAX_KEY_SIZE); - dma_free_coherent(ctx->dev, SEC_MAX_KEY_SIZE, + memzero_explicit(a_ctx->a_key, SEC_MAX_AKEY_SIZE); + dma_free_coherent(ctx->dev, SEC_MAX_AKEY_SIZE, a_ctx->a_key, a_ctx->a_key_dma); } @@ -1382,7 +1382,7 @@ { struct sec_req *backlog_req = NULL; - mutex_lock(&qp_ctx->req_lock); + spin_lock_bh(&qp_ctx->req_lock); if (ctx->fake_req_limit >= atomic_read(&qp_ctx->qp->qp_status.used) && !list_empty(&qp_ctx->backlog)) { @@ -1390,7 +1390,7 @@ typeof(*backlog_req), backlog_head); list_del(&backlog_req->backlog_head); } - mutex_unlock(&qp_ctx->req_lock); + spin_unlock_bh(&qp_ctx->req_lock); return backlog_req; } --- linux-5.19.0.orig/drivers/crypto/hisilicon/sec2/sec_crypto.h +++ linux-5.19.0/drivers/crypto/hisilicon/sec2/sec_crypto.h @@ -7,6 +7,7 @@ #define SEC_AIV_SIZE 12 #define SEC_IV_SIZE 24 #define SEC_MAX_KEY_SIZE 64 +#define SEC_MAX_AKEY_SIZE 128 #define SEC_COMM_SCENE 0 #define SEC_MIN_BLOCK_SZ 1 --- linux-5.19.0.orig/drivers/crypto/hisilicon/zip/zip_crypto.c +++ linux-5.19.0/drivers/crypto/hisilicon/zip/zip_crypto.c @@ -122,12 +122,12 @@ if (ret || n == 0 || n > HISI_ACC_SGL_SGE_NR_MAX) return -EINVAL; - return param_set_int(val, kp); + return param_set_ushort(val, kp); } static const struct kernel_param_ops sgl_sge_nr_ops = { .set = sgl_sge_nr_set, - .get = param_get_int, + .get = param_get_ushort, }; static u16 sgl_sge_nr = HZIP_SGL_SGE_NR; --- linux-5.19.0.orig/drivers/crypto/img-hash.c +++ linux-5.19.0/drivers/crypto/img-hash.c @@ -358,12 +358,16 @@ static void img_hash_dma_task(unsigned long d) { struct img_hash_dev *hdev = (struct img_hash_dev *)d; - struct img_hash_request_ctx *ctx = ahash_request_ctx(hdev->req); + struct img_hash_request_ctx *ctx; u8 *addr; size_t nbytes, bleft, wsend, len, tbc; struct scatterlist tsg; - if (!hdev->req || !ctx->sg) + if (!hdev->req) + return; + + ctx = ahash_request_ctx(hdev->req); + if (!ctx->sg) return; addr = sg_virt(ctx->sg); --- linux-5.19.0.orig/drivers/crypto/inside-secure/safexcel.c +++ linux-5.19.0/drivers/crypto/inside-secure/safexcel.c @@ -1831,6 +1831,8 @@ {}, }; +MODULE_DEVICE_TABLE(of, safexcel_of_match_table); + static struct platform_driver crypto_safexcel = { .probe = safexcel_probe, .remove = safexcel_remove, --- linux-5.19.0.orig/drivers/crypto/inside-secure/safexcel_hash.c +++ linux-5.19.0/drivers/crypto/inside-secure/safexcel_hash.c @@ -383,7 +383,7 @@ u32 x; x = ipad[i] ^ ipad[i + 4]; - cache[i] ^= swab(x); + cache[i] ^= swab32(x); } } cache_len = AES_BLOCK_SIZE; @@ -821,7 +821,7 @@ u32 *result = (void *)areq->result; /* K3 */ - result[i] = swab(ctx->base.ipad.word[i + 4]); + result[i] = swab32(ctx->base.ipad.word[i + 4]); } areq->result[0] ^= 0x80; // 10- padding crypto_cipher_encrypt_one(ctx->kaes, areq->result, areq->result); @@ -2106,7 +2106,7 @@ crypto_cipher_encrypt_one(ctx->kaes, (u8 *)key_tmp + AES_BLOCK_SIZE, "\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3\x3"); for (i = 0; i < 3 * AES_BLOCK_SIZE / sizeof(u32); i++) - ctx->base.ipad.word[i] = swab(key_tmp[i]); + ctx->base.ipad.word[i] = swab32(key_tmp[i]); crypto_cipher_clear_flags(ctx->kaes, CRYPTO_TFM_REQ_MASK); crypto_cipher_set_flags(ctx->kaes, crypto_ahash_get_flags(tfm) & @@ -2189,7 +2189,7 @@ return ret; for (i = 0; i < len / sizeof(u32); i++) - ctx->base.ipad.word[i + 8] = swab(aes.key_enc[i]); + ctx->base.ipad.word[i + 8] = swab32(aes.key_enc[i]); /* precompute the CMAC key material */ crypto_cipher_clear_flags(ctx->kaes, CRYPTO_TFM_REQ_MASK); --- linux-5.19.0.orig/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c +++ linux-5.19.0/drivers/crypto/marvell/octeontx/otx_cptpf_ucode.c @@ -286,6 +286,7 @@ struct tar_ucode_info_t *tar_info; struct otx_cpt_ucode_hdr *ucode_hdr; int ucode_type, ucode_size; + unsigned int code_length; /* * If size is less than microcode header size then don't report @@ -303,7 +304,13 @@ if (get_ucode_type(ucode_hdr, &ucode_type)) return 0; - ucode_size = ntohl(ucode_hdr->code_length) * 2; + code_length = ntohl(ucode_hdr->code_length); + if (code_length >= INT_MAX / 2) { + dev_err(dev, "Invalid code_length %u\n", code_length); + return -EINVAL; + } + + ucode_size = code_length * 2; if (!ucode_size || (size < round_up(ucode_size, 16) + sizeof(struct otx_cpt_ucode_hdr) + OTX_CPT_UCODE_SIGN_LEN)) { dev_err(dev, "Ucode %s invalid size\n", filename); @@ -886,6 +893,7 @@ { struct otx_cpt_ucode_hdr *ucode_hdr; const struct firmware *fw; + unsigned int code_length; int ret; set_ucode_filename(ucode, ucode_filename); @@ -896,7 +904,13 @@ ucode_hdr = (struct otx_cpt_ucode_hdr *) fw->data; memcpy(ucode->ver_str, ucode_hdr->ver_str, OTX_CPT_UCODE_VER_STR_SZ); ucode->ver_num = ucode_hdr->ver_num; - ucode->size = ntohl(ucode_hdr->code_length) * 2; + code_length = ntohl(ucode_hdr->code_length); + if (code_length >= INT_MAX / 2) { + dev_err(dev, "Ucode invalid code_length %u\n", code_length); + ret = -EINVAL; + goto release_fw; + } + ucode->size = code_length * 2; if (!ucode->size || (fw->size < round_up(ucode->size, 16) + sizeof(struct otx_cpt_ucode_hdr) + OTX_CPT_UCODE_SIGN_LEN)) { dev_err(dev, "Ucode %s invalid size\n", ucode_filename); --- linux-5.19.0.orig/drivers/crypto/omap-sham.c +++ linux-5.19.0/drivers/crypto/omap-sham.c @@ -2114,7 +2114,7 @@ pm_runtime_enable(dev); - err = pm_runtime_get_sync(dev); + err = pm_runtime_resume_and_get(dev); if (err < 0) { dev_err(dev, "failed to get sync: %d\n", err); goto err_pm; --- linux-5.19.0.orig/drivers/crypto/qat/qat_4xxx/adf_drv.c +++ linux-5.19.0/drivers/crypto/qat/qat_4xxx/adf_drv.c @@ -261,6 +261,7 @@ hw_data->accel_capabilities_mask = hw_data->get_accel_cap(accel_dev); if (!hw_data->accel_capabilities_mask) { dev_err(&pdev->dev, "Failed to get capabilities mask.\n"); + ret = -EINVAL; goto out_err; } --- linux-5.19.0.orig/drivers/crypto/qat/qat_common/adf_gen4_hw_data.h +++ linux-5.19.0/drivers/crypto/qat/qat_common/adf_gen4_hw_data.h @@ -107,7 +107,7 @@ * Timeout is in cycles. Clock speed may vary across products but this * value should be a few milli-seconds. */ -#define ADF_SSM_WDT_DEFAULT_VALUE 0x200000 +#define ADF_SSM_WDT_DEFAULT_VALUE 0x7000000ULL #define ADF_SSM_WDT_PKE_DEFAULT_VALUE 0x8000000 #define ADF_SSMWDTL_OFFSET 0x54 #define ADF_SSMWDTH_OFFSET 0x5C --- linux-5.19.0.orig/drivers/crypto/qat/qat_common/qat_algs.c +++ linux-5.19.0/drivers/crypto/qat/qat_common/qat_algs.c @@ -673,11 +673,14 @@ dma_addr_t blpout = qat_req->buf.bloutp; size_t sz = qat_req->buf.sz; size_t sz_out = qat_req->buf.sz_out; + int bl_dma_dir; int i; + bl_dma_dir = blp != blpout ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL; + for (i = 0; i < bl->num_bufs; i++) dma_unmap_single(dev, bl->bufers[i].addr, - bl->bufers[i].len, DMA_BIDIRECTIONAL); + bl->bufers[i].len, bl_dma_dir); dma_unmap_single(dev, blp, sz, DMA_TO_DEVICE); @@ -691,7 +694,7 @@ for (i = bufless; i < blout->num_bufs; i++) { dma_unmap_single(dev, blout->bufers[i].addr, blout->bufers[i].len, - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); } dma_unmap_single(dev, blpout, sz_out, DMA_TO_DEVICE); @@ -716,6 +719,7 @@ struct scatterlist *sg; size_t sz_out, sz = struct_size(bufl, bufers, n); int node = dev_to_node(&GET_DEV(inst->accel_dev)); + int bufl_dma_dir; if (unlikely(!n)) return -EINVAL; @@ -733,6 +737,8 @@ qat_req->buf.sgl_src_valid = true; } + bufl_dma_dir = sgl != sglout ? DMA_TO_DEVICE : DMA_BIDIRECTIONAL; + for_each_sg(sgl, sg, n, i) bufl->bufers[i].addr = DMA_MAPPING_ERROR; @@ -744,7 +750,7 @@ bufl->bufers[y].addr = dma_map_single(dev, sg_virt(sg), sg->length, - DMA_BIDIRECTIONAL); + bufl_dma_dir); bufl->bufers[y].len = sg->length; if (unlikely(dma_mapping_error(dev, bufl->bufers[y].addr))) goto err_in; @@ -787,7 +793,7 @@ bufers[y].addr = dma_map_single(dev, sg_virt(sg), sg->length, - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); if (unlikely(dma_mapping_error(dev, bufers[y].addr))) goto err_out; bufers[y].len = sg->length; @@ -817,7 +823,7 @@ if (!dma_mapping_error(dev, buflout->bufers[i].addr)) dma_unmap_single(dev, buflout->bufers[i].addr, buflout->bufers[i].len, - DMA_BIDIRECTIONAL); + DMA_FROM_DEVICE); if (!qat_req->buf.sgl_dst_valid) kfree(buflout); @@ -831,7 +837,7 @@ if (!dma_mapping_error(dev, bufl->bufers[i].addr)) dma_unmap_single(dev, bufl->bufers[i].addr, bufl->bufers[i].len, - DMA_BIDIRECTIONAL); + bufl_dma_dir); if (!qat_req->buf.sgl_src_valid) kfree(bufl); --- linux-5.19.0.orig/drivers/crypto/qat/qat_common/qat_asym_algs.c +++ linux-5.19.0/drivers/crypto/qat/qat_common/qat_asym_algs.c @@ -333,13 +333,13 @@ qat_req->out.dh.out_tab[1] = 0; /* Mapping in.in.b or in.in_g2.xa is the same */ qat_req->phy_in = dma_map_single(dev, &qat_req->in.dh.in.b, - sizeof(qat_req->in.dh.in.b), + sizeof(struct qat_dh_input_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_in))) goto unmap_dst; qat_req->phy_out = dma_map_single(dev, &qat_req->out.dh.r, - sizeof(qat_req->out.dh.r), + sizeof(struct qat_dh_output_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_out))) goto unmap_in_params; @@ -730,13 +730,13 @@ qat_req->in.rsa.in_tab[3] = 0; qat_req->out.rsa.out_tab[1] = 0; qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa.enc.m, - sizeof(qat_req->in.rsa.enc.m), + sizeof(struct qat_rsa_input_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_in))) goto unmap_dst; qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa.enc.c, - sizeof(qat_req->out.rsa.enc.c), + sizeof(struct qat_rsa_output_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_out))) goto unmap_in_params; @@ -876,13 +876,13 @@ qat_req->in.rsa.in_tab[3] = 0; qat_req->out.rsa.out_tab[1] = 0; qat_req->phy_in = dma_map_single(dev, &qat_req->in.rsa.dec.c, - sizeof(qat_req->in.rsa.dec.c), + sizeof(struct qat_rsa_input_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_in))) goto unmap_dst; qat_req->phy_out = dma_map_single(dev, &qat_req->out.rsa.dec.m, - sizeof(qat_req->out.rsa.dec.m), + sizeof(struct qat_rsa_output_params), DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, qat_req->phy_out))) goto unmap_in_params; --- linux-5.19.0.orig/drivers/crypto/rockchip/rk3288_crypto.c +++ linux-5.19.0/drivers/crypto/rockchip/rk3288_crypto.c @@ -65,186 +65,24 @@ clk_disable_unprepare(dev->sclk); } -static int check_alignment(struct scatterlist *sg_src, - struct scatterlist *sg_dst, - int align_mask) -{ - int in, out, align; - - in = IS_ALIGNED((uint32_t)sg_src->offset, 4) && - IS_ALIGNED((uint32_t)sg_src->length, align_mask); - if (!sg_dst) - return in; - out = IS_ALIGNED((uint32_t)sg_dst->offset, 4) && - IS_ALIGNED((uint32_t)sg_dst->length, align_mask); - align = in && out; - - return (align && (sg_src->length == sg_dst->length)); -} - -static int rk_load_data(struct rk_crypto_info *dev, - struct scatterlist *sg_src, - struct scatterlist *sg_dst) -{ - unsigned int count; - - dev->aligned = dev->aligned ? - check_alignment(sg_src, sg_dst, dev->align_size) : - dev->aligned; - if (dev->aligned) { - count = min(dev->left_bytes, sg_src->length); - dev->left_bytes -= count; - - if (!dma_map_sg(dev->dev, sg_src, 1, DMA_TO_DEVICE)) { - dev_err(dev->dev, "[%s:%d] dma_map_sg(src) error\n", - __func__, __LINE__); - return -EINVAL; - } - dev->addr_in = sg_dma_address(sg_src); - - if (sg_dst) { - if (!dma_map_sg(dev->dev, sg_dst, 1, DMA_FROM_DEVICE)) { - dev_err(dev->dev, - "[%s:%d] dma_map_sg(dst) error\n", - __func__, __LINE__); - dma_unmap_sg(dev->dev, sg_src, 1, - DMA_TO_DEVICE); - return -EINVAL; - } - dev->addr_out = sg_dma_address(sg_dst); - } - } else { - count = (dev->left_bytes > PAGE_SIZE) ? - PAGE_SIZE : dev->left_bytes; - - if (!sg_pcopy_to_buffer(dev->first, dev->src_nents, - dev->addr_vir, count, - dev->total - dev->left_bytes)) { - dev_err(dev->dev, "[%s:%d] pcopy err\n", - __func__, __LINE__); - return -EINVAL; - } - dev->left_bytes -= count; - sg_init_one(&dev->sg_tmp, dev->addr_vir, count); - if (!dma_map_sg(dev->dev, &dev->sg_tmp, 1, DMA_TO_DEVICE)) { - dev_err(dev->dev, "[%s:%d] dma_map_sg(sg_tmp) error\n", - __func__, __LINE__); - return -ENOMEM; - } - dev->addr_in = sg_dma_address(&dev->sg_tmp); - - if (sg_dst) { - if (!dma_map_sg(dev->dev, &dev->sg_tmp, 1, - DMA_FROM_DEVICE)) { - dev_err(dev->dev, - "[%s:%d] dma_map_sg(sg_tmp) error\n", - __func__, __LINE__); - dma_unmap_sg(dev->dev, &dev->sg_tmp, 1, - DMA_TO_DEVICE); - return -ENOMEM; - } - dev->addr_out = sg_dma_address(&dev->sg_tmp); - } - } - dev->count = count; - return 0; -} - -static void rk_unload_data(struct rk_crypto_info *dev) -{ - struct scatterlist *sg_in, *sg_out; - - sg_in = dev->aligned ? dev->sg_src : &dev->sg_tmp; - dma_unmap_sg(dev->dev, sg_in, 1, DMA_TO_DEVICE); - - if (dev->sg_dst) { - sg_out = dev->aligned ? dev->sg_dst : &dev->sg_tmp; - dma_unmap_sg(dev->dev, sg_out, 1, DMA_FROM_DEVICE); - } -} - static irqreturn_t rk_crypto_irq_handle(int irq, void *dev_id) { struct rk_crypto_info *dev = platform_get_drvdata(dev_id); u32 interrupt_status; - spin_lock(&dev->lock); interrupt_status = CRYPTO_READ(dev, RK_CRYPTO_INTSTS); CRYPTO_WRITE(dev, RK_CRYPTO_INTSTS, interrupt_status); + dev->status = 1; if (interrupt_status & 0x0a) { dev_warn(dev->dev, "DMA Error\n"); - dev->err = -EFAULT; + dev->status = 0; } - tasklet_schedule(&dev->done_task); + complete(&dev->complete); - spin_unlock(&dev->lock); return IRQ_HANDLED; } -static int rk_crypto_enqueue(struct rk_crypto_info *dev, - struct crypto_async_request *async_req) -{ - unsigned long flags; - int ret; - - spin_lock_irqsave(&dev->lock, flags); - ret = crypto_enqueue_request(&dev->queue, async_req); - if (dev->busy) { - spin_unlock_irqrestore(&dev->lock, flags); - return ret; - } - dev->busy = true; - spin_unlock_irqrestore(&dev->lock, flags); - tasklet_schedule(&dev->queue_task); - - return ret; -} - -static void rk_crypto_queue_task_cb(unsigned long data) -{ - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; - struct crypto_async_request *async_req, *backlog; - unsigned long flags; - int err = 0; - - dev->err = 0; - spin_lock_irqsave(&dev->lock, flags); - backlog = crypto_get_backlog(&dev->queue); - async_req = crypto_dequeue_request(&dev->queue); - - if (!async_req) { - dev->busy = false; - spin_unlock_irqrestore(&dev->lock, flags); - return; - } - spin_unlock_irqrestore(&dev->lock, flags); - - if (backlog) { - backlog->complete(backlog, -EINPROGRESS); - backlog = NULL; - } - - dev->async_req = async_req; - err = dev->start(dev); - if (err) - dev->complete(dev->async_req, err); -} - -static void rk_crypto_done_task_cb(unsigned long data) -{ - struct rk_crypto_info *dev = (struct rk_crypto_info *)data; - - if (dev->err) { - dev->complete(dev->async_req, dev->err); - return; - } - - dev->err = dev->update(dev); - if (dev->err) - dev->complete(dev->async_req, dev->err); -} - static struct rk_crypto_tmp *rk_cipher_algs[] = { &rk_ecb_aes_alg, &rk_cbc_aes_alg, @@ -337,8 +175,6 @@ if (err) goto err_crypto; - spin_lock_init(&crypto_info->lock); - crypto_info->reg = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(crypto_info->reg)) { err = PTR_ERR(crypto_info->reg); @@ -389,18 +225,11 @@ crypto_info->dev = &pdev->dev; platform_set_drvdata(pdev, crypto_info); - tasklet_init(&crypto_info->queue_task, - rk_crypto_queue_task_cb, (unsigned long)crypto_info); - tasklet_init(&crypto_info->done_task, - rk_crypto_done_task_cb, (unsigned long)crypto_info); - crypto_init_queue(&crypto_info->queue, 50); - - crypto_info->enable_clk = rk_crypto_enable_clk; - crypto_info->disable_clk = rk_crypto_disable_clk; - crypto_info->load_data = rk_load_data; - crypto_info->unload_data = rk_unload_data; - crypto_info->enqueue = rk_crypto_enqueue; - crypto_info->busy = false; + crypto_info->engine = crypto_engine_alloc_init(&pdev->dev, true); + crypto_engine_start(crypto_info->engine); + init_completion(&crypto_info->complete); + + rk_crypto_enable_clk(crypto_info); err = rk_crypto_register(crypto_info); if (err) { @@ -412,9 +241,9 @@ return 0; err_register_alg: - tasklet_kill(&crypto_info->queue_task); - tasklet_kill(&crypto_info->done_task); + crypto_engine_exit(crypto_info->engine); err_crypto: + dev_err(dev, "Crypto Accelerator not successfully registered\n"); return err; } @@ -423,8 +252,8 @@ struct rk_crypto_info *crypto_tmp = platform_get_drvdata(pdev); rk_crypto_unregister(); - tasklet_kill(&crypto_tmp->done_task); - tasklet_kill(&crypto_tmp->queue_task); + rk_crypto_disable_clk(crypto_tmp); + crypto_engine_exit(crypto_tmp->engine); return 0; } --- linux-5.19.0.orig/drivers/crypto/rockchip/rk3288_crypto.h +++ linux-5.19.0/drivers/crypto/rockchip/rk3288_crypto.h @@ -5,9 +5,11 @@ #include #include #include +#include #include #include #include +#include #include #include @@ -193,45 +195,15 @@ struct reset_control *rst; void __iomem *reg; int irq; - struct crypto_queue queue; - struct tasklet_struct queue_task; - struct tasklet_struct done_task; - struct crypto_async_request *async_req; - int err; - /* device lock */ - spinlock_t lock; - - /* the public variable */ - struct scatterlist *sg_src; - struct scatterlist *sg_dst; - struct scatterlist sg_tmp; - struct scatterlist *first; - unsigned int left_bytes; - void *addr_vir; - int aligned; - int align_size; - size_t src_nents; - size_t dst_nents; - unsigned int total; - unsigned int count; - dma_addr_t addr_in; - dma_addr_t addr_out; - bool busy; - int (*start)(struct rk_crypto_info *dev); - int (*update)(struct rk_crypto_info *dev); - void (*complete)(struct crypto_async_request *base, int err); - int (*enable_clk)(struct rk_crypto_info *dev); - void (*disable_clk)(struct rk_crypto_info *dev); - int (*load_data)(struct rk_crypto_info *dev, - struct scatterlist *sg_src, - struct scatterlist *sg_dst); - void (*unload_data)(struct rk_crypto_info *dev); - int (*enqueue)(struct rk_crypto_info *dev, - struct crypto_async_request *async_req); + + struct crypto_engine *engine; + struct completion complete; + int status; }; /* the private variable of hash */ struct rk_ahash_ctx { + struct crypto_engine_ctx enginectx; struct rk_crypto_info *dev; /* for fallback */ struct crypto_ahash *fallback_tfm; @@ -241,14 +213,23 @@ struct rk_ahash_rctx { struct ahash_request fallback_req; u32 mode; + int nrsg; }; /* the private variable of cipher */ struct rk_cipher_ctx { + struct crypto_engine_ctx enginectx; struct rk_crypto_info *dev; unsigned int keylen; - u32 mode; + u8 key[AES_MAX_KEY_SIZE]; u8 iv[AES_BLOCK_SIZE]; + struct crypto_skcipher *fallback_tfm; +}; + +struct rk_cipher_rctx { + u8 backup_iv[AES_BLOCK_SIZE]; + u32 mode; + struct skcipher_request fallback_req; // keep at the end }; enum alg_type { --- linux-5.19.0.orig/drivers/crypto/rockchip/rk3288_crypto_ahash.c +++ linux-5.19.0/drivers/crypto/rockchip/rk3288_crypto_ahash.c @@ -9,6 +9,7 @@ * Some ideas are from marvell/cesa.c and s5p-sss.c driver. */ #include +#include #include "rk3288_crypto.h" /* @@ -16,6 +17,40 @@ * so we put the fixed hash out when met zero message. */ +static bool rk_ahash_need_fallback(struct ahash_request *req) +{ + struct scatterlist *sg; + + sg = req->src; + while (sg) { + if (!IS_ALIGNED(sg->offset, sizeof(u32))) { + return true; + } + if (sg->length % 4) { + return true; + } + sg = sg_next(sg); + } + return false; +} + +static int rk_ahash_digest_fb(struct ahash_request *areq) +{ + struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct rk_ahash_ctx *tfmctx = crypto_ahash_ctx(tfm); + + ahash_request_set_tfm(&rctx->fallback_req, tfmctx->fallback_tfm); + rctx->fallback_req.base.flags = areq->base.flags & + CRYPTO_TFM_REQ_MAY_SLEEP; + + rctx->fallback_req.nbytes = areq->nbytes; + rctx->fallback_req.src = areq->src; + rctx->fallback_req.result = areq->result; + + return crypto_ahash_digest(&rctx->fallback_req); +} + static int zero_message_process(struct ahash_request *req) { struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); @@ -38,16 +73,12 @@ return 0; } -static void rk_ahash_crypto_complete(struct crypto_async_request *base, int err) -{ - if (base->complete) - base->complete(base, err); -} - -static void rk_ahash_reg_init(struct rk_crypto_info *dev) +static void rk_ahash_reg_init(struct ahash_request *req) { - struct ahash_request *req = ahash_request_cast(dev->async_req); struct rk_ahash_rctx *rctx = ahash_request_ctx(req); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(req); + struct rk_ahash_ctx *tctx = crypto_ahash_ctx(tfm); + struct rk_crypto_info *dev = tctx->dev; int reg_status; reg_status = CRYPTO_READ(dev, RK_CRYPTO_CTRL) | @@ -74,7 +105,7 @@ RK_CRYPTO_BYTESWAP_BRFIFO | RK_CRYPTO_BYTESWAP_BTFIFO); - CRYPTO_WRITE(dev, RK_CRYPTO_HASH_MSG_LEN, dev->total); + CRYPTO_WRITE(dev, RK_CRYPTO_HASH_MSG_LEN, req->nbytes); } static int rk_ahash_init(struct ahash_request *req) @@ -167,48 +198,64 @@ struct rk_ahash_ctx *tctx = crypto_tfm_ctx(req->base.tfm); struct rk_crypto_info *dev = tctx->dev; + if (rk_ahash_need_fallback(req)) + return rk_ahash_digest_fb(req); + if (!req->nbytes) return zero_message_process(req); - else - return dev->enqueue(dev, &req->base); + + return crypto_transfer_hash_request_to_engine(dev->engine, req); } -static void crypto_ahash_dma_start(struct rk_crypto_info *dev) +static void crypto_ahash_dma_start(struct rk_crypto_info *dev, struct scatterlist *sg) { - CRYPTO_WRITE(dev, RK_CRYPTO_HRDMAS, dev->addr_in); - CRYPTO_WRITE(dev, RK_CRYPTO_HRDMAL, (dev->count + 3) / 4); + CRYPTO_WRITE(dev, RK_CRYPTO_HRDMAS, sg_dma_address(sg)); + CRYPTO_WRITE(dev, RK_CRYPTO_HRDMAL, sg_dma_len(sg) / 4); CRYPTO_WRITE(dev, RK_CRYPTO_CTRL, RK_CRYPTO_HASH_START | (RK_CRYPTO_HASH_START << 16)); } -static int rk_ahash_set_data_start(struct rk_crypto_info *dev) +static int rk_hash_prepare(struct crypto_engine *engine, void *breq) +{ + struct ahash_request *areq = container_of(breq, struct ahash_request, base); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); + struct rk_ahash_ctx *tctx = crypto_ahash_ctx(tfm); + int ret; + + ret = dma_map_sg(tctx->dev->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE); + if (ret <= 0) + return -EINVAL; + + rctx->nrsg = ret; + + return 0; +} + +static int rk_hash_unprepare(struct crypto_engine *engine, void *breq) +{ + struct ahash_request *areq = container_of(breq, struct ahash_request, base); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); + struct rk_ahash_ctx *tctx = crypto_ahash_ctx(tfm); + + dma_unmap_sg(tctx->dev->dev, areq->src, rctx->nrsg, DMA_TO_DEVICE); + return 0; +} + +static int rk_hash_run(struct crypto_engine *engine, void *breq) { - int err; + struct ahash_request *areq = container_of(breq, struct ahash_request, base); + struct crypto_ahash *tfm = crypto_ahash_reqtfm(areq); + struct rk_ahash_rctx *rctx = ahash_request_ctx(areq); + struct rk_ahash_ctx *tctx = crypto_ahash_ctx(tfm); + struct scatterlist *sg = areq->src; + int err = 0; + int i; + u32 v; - err = dev->load_data(dev, dev->sg_src, NULL); - if (!err) - crypto_ahash_dma_start(dev); - return err; -} - -static int rk_ahash_start(struct rk_crypto_info *dev) -{ - struct ahash_request *req = ahash_request_cast(dev->async_req); - struct crypto_ahash *tfm; - struct rk_ahash_rctx *rctx; - - dev->total = req->nbytes; - dev->left_bytes = req->nbytes; - dev->aligned = 0; - dev->align_size = 4; - dev->sg_dst = NULL; - dev->sg_src = req->src; - dev->first = req->src; - dev->src_nents = sg_nents(req->src); - rctx = ahash_request_ctx(req); rctx->mode = 0; - tfm = crypto_ahash_reqtfm(req); switch (crypto_ahash_digestsize(tfm)) { case SHA1_DIGEST_SIZE: rctx->mode = RK_CRYPTO_HASH_SHA1; @@ -220,32 +267,26 @@ rctx->mode = RK_CRYPTO_HASH_MD5; break; default: - return -EINVAL; + err = -EINVAL; + goto theend; } - rk_ahash_reg_init(dev); - return rk_ahash_set_data_start(dev); -} - -static int rk_ahash_crypto_rx(struct rk_crypto_info *dev) -{ - int err = 0; - struct ahash_request *req = ahash_request_cast(dev->async_req); - struct crypto_ahash *tfm; + rk_ahash_reg_init(areq); - dev->unload_data(dev); - if (dev->left_bytes) { - if (dev->aligned) { - if (sg_is_last(dev->sg_src)) { - dev_warn(dev->dev, "[%s:%d], Lack of data\n", - __func__, __LINE__); - err = -ENOMEM; - goto out_rx; - } - dev->sg_src = sg_next(dev->sg_src); + while (sg) { + reinit_completion(&tctx->dev->complete); + tctx->dev->status = 0; + crypto_ahash_dma_start(tctx->dev, sg); + wait_for_completion_interruptible_timeout(&tctx->dev->complete, + msecs_to_jiffies(2000)); + if (!tctx->dev->status) { + dev_err(tctx->dev->dev, "DMA timeout\n"); + err = -EFAULT; + goto theend; } - err = rk_ahash_set_data_start(dev); - } else { + sg = sg_next(sg); + } + /* * it will take some time to process date after last dma * transmission. @@ -256,18 +297,20 @@ * efficiency, and make it response quickly when dma * complete. */ - while (!CRYPTO_READ(dev, RK_CRYPTO_HASH_STS)) - udelay(10); + while (!CRYPTO_READ(tctx->dev, RK_CRYPTO_HASH_STS)) + udelay(10); - tfm = crypto_ahash_reqtfm(req); - memcpy_fromio(req->result, dev->reg + RK_CRYPTO_HASH_DOUT_0, - crypto_ahash_digestsize(tfm)); - dev->complete(dev->async_req, 0); - tasklet_schedule(&dev->queue_task); + for (i = 0; i < crypto_ahash_digestsize(tfm) / 4; i++) { + v = readl(tctx->dev->reg + RK_CRYPTO_HASH_DOUT_0 + i * 4); + put_unaligned_le32(v, areq->result + i * 4); } -out_rx: - return err; +theend: + local_bh_disable(); + crypto_finalize_hash_request(engine, breq, err); + local_bh_enable(); + + return 0; } static int rk_cra_hash_init(struct crypto_tfm *tfm) @@ -281,14 +324,6 @@ algt = container_of(alg, struct rk_crypto_tmp, alg.hash); tctx->dev = algt->dev; - tctx->dev->addr_vir = (void *)__get_free_page(GFP_KERNEL); - if (!tctx->dev->addr_vir) { - dev_err(tctx->dev->dev, "failed to kmalloc for addr_vir\n"); - return -ENOMEM; - } - tctx->dev->start = rk_ahash_start; - tctx->dev->update = rk_ahash_crypto_rx; - tctx->dev->complete = rk_ahash_crypto_complete; /* for fallback */ tctx->fallback_tfm = crypto_alloc_ahash(alg_name, 0, @@ -297,19 +332,23 @@ dev_err(tctx->dev->dev, "Could not load fallback driver.\n"); return PTR_ERR(tctx->fallback_tfm); } + crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm), sizeof(struct rk_ahash_rctx) + crypto_ahash_reqsize(tctx->fallback_tfm)); - return tctx->dev->enable_clk(tctx->dev); + tctx->enginectx.op.do_one_request = rk_hash_run; + tctx->enginectx.op.prepare_request = rk_hash_prepare; + tctx->enginectx.op.unprepare_request = rk_hash_unprepare; + + return 0; } static void rk_cra_hash_exit(struct crypto_tfm *tfm) { struct rk_ahash_ctx *tctx = crypto_tfm_ctx(tfm); - free_page((unsigned long)tctx->dev->addr_vir); - return tctx->dev->disable_clk(tctx->dev); + crypto_free_ahash(tctx->fallback_tfm); } struct rk_crypto_tmp rk_ahash_sha1 = { --- linux-5.19.0.orig/drivers/crypto/rockchip/rk3288_crypto_skcipher.c +++ linux-5.19.0/drivers/crypto/rockchip/rk3288_crypto_skcipher.c @@ -9,23 +9,77 @@ * Some ideas are from marvell-cesa.c and s5p-sss.c driver. */ #include +#include #include "rk3288_crypto.h" #define RK_CRYPTO_DEC BIT(0) -static void rk_crypto_complete(struct crypto_async_request *base, int err) +static int rk_cipher_need_fallback(struct skcipher_request *req) { - if (base->complete) - base->complete(base, err); + struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); + unsigned int bs = crypto_skcipher_blocksize(tfm); + struct scatterlist *sgs, *sgd; + unsigned int stodo, dtodo, len; + + if (!req->cryptlen) + return true; + + len = req->cryptlen; + sgs = req->src; + sgd = req->dst; + while (sgs && sgd) { + if (!IS_ALIGNED(sgs->offset, sizeof(u32))) { + return true; + } + if (!IS_ALIGNED(sgd->offset, sizeof(u32))) { + return true; + } + stodo = min(len, sgs->length); + if (stodo % bs) { + return true; + } + dtodo = min(len, sgd->length); + if (dtodo % bs) { + return true; + } + if (stodo != dtodo) { + return true; + } + len -= stodo; + sgs = sg_next(sgs); + sgd = sg_next(sgd); + } + return false; +} + +static int rk_cipher_fallback(struct skcipher_request *areq) +{ + struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); + struct rk_cipher_ctx *op = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(areq); + int err; + + skcipher_request_set_tfm(&rctx->fallback_req, op->fallback_tfm); + skcipher_request_set_callback(&rctx->fallback_req, areq->base.flags, + areq->base.complete, areq->base.data); + skcipher_request_set_crypt(&rctx->fallback_req, areq->src, areq->dst, + areq->cryptlen, areq->iv); + if (rctx->mode & RK_CRYPTO_DEC) + err = crypto_skcipher_decrypt(&rctx->fallback_req); + else + err = crypto_skcipher_encrypt(&rctx->fallback_req); + return err; } static int rk_handle_req(struct rk_crypto_info *dev, struct skcipher_request *req) { - if (!IS_ALIGNED(req->cryptlen, dev->align_size)) - return -EINVAL; - else - return dev->enqueue(dev, &req->base); + struct crypto_engine *engine = dev->engine; + + if (rk_cipher_need_fallback(req)) + return rk_cipher_fallback(req); + + return crypto_transfer_skcipher_request_to_engine(engine, req); } static int rk_aes_setkey(struct crypto_skcipher *cipher, @@ -38,8 +92,9 @@ keylen != AES_KEYSIZE_256) return -EINVAL; ctx->keylen = keylen; - memcpy_toio(ctx->dev->reg + RK_CRYPTO_AES_KEY_0, key, keylen); - return 0; + memcpy(ctx->key, key, keylen); + + return crypto_skcipher_setkey(ctx->fallback_tfm, key, keylen); } static int rk_des_setkey(struct crypto_skcipher *cipher, @@ -53,8 +108,9 @@ return err; ctx->keylen = keylen; - memcpy_toio(ctx->dev->reg + RK_CRYPTO_TDES_KEY1_0, key, keylen); - return 0; + memcpy(ctx->key, key, keylen); + + return crypto_skcipher_setkey(ctx->fallback_tfm, key, keylen); } static int rk_tdes_setkey(struct crypto_skcipher *cipher, @@ -68,17 +124,19 @@ return err; ctx->keylen = keylen; - memcpy_toio(ctx->dev->reg + RK_CRYPTO_TDES_KEY1_0, key, keylen); - return 0; + memcpy(ctx->key, key, keylen); + + return crypto_skcipher_setkey(ctx->fallback_tfm, key, keylen); } static int rk_aes_ecb_encrypt(struct skcipher_request *req) { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_AES_ECB_MODE; + rctx->mode = RK_CRYPTO_AES_ECB_MODE; return rk_handle_req(dev, req); } @@ -86,9 +144,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_AES_ECB_MODE | RK_CRYPTO_DEC; + rctx->mode = RK_CRYPTO_AES_ECB_MODE | RK_CRYPTO_DEC; return rk_handle_req(dev, req); } @@ -96,9 +155,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_AES_CBC_MODE; + rctx->mode = RK_CRYPTO_AES_CBC_MODE; return rk_handle_req(dev, req); } @@ -106,9 +166,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_AES_CBC_MODE | RK_CRYPTO_DEC; + rctx->mode = RK_CRYPTO_AES_CBC_MODE | RK_CRYPTO_DEC; return rk_handle_req(dev, req); } @@ -116,9 +177,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = 0; + rctx->mode = 0; return rk_handle_req(dev, req); } @@ -126,9 +188,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_DEC; + rctx->mode = RK_CRYPTO_DEC; return rk_handle_req(dev, req); } @@ -136,9 +199,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_CHAINMODE_CBC; + rctx->mode = RK_CRYPTO_TDES_CHAINMODE_CBC; return rk_handle_req(dev, req); } @@ -146,9 +210,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_CHAINMODE_CBC | RK_CRYPTO_DEC; + rctx->mode = RK_CRYPTO_TDES_CHAINMODE_CBC | RK_CRYPTO_DEC; return rk_handle_req(dev, req); } @@ -156,9 +221,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_SELECT; + rctx->mode = RK_CRYPTO_TDES_SELECT; return rk_handle_req(dev, req); } @@ -166,9 +232,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_DEC; + rctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_DEC; return rk_handle_req(dev, req); } @@ -176,9 +243,10 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_TDES_CHAINMODE_CBC; + rctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_TDES_CHAINMODE_CBC; return rk_handle_req(dev, req); } @@ -186,43 +254,42 @@ { struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_crypto_info *dev = ctx->dev; - ctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_TDES_CHAINMODE_CBC | + rctx->mode = RK_CRYPTO_TDES_SELECT | RK_CRYPTO_TDES_CHAINMODE_CBC | RK_CRYPTO_DEC; return rk_handle_req(dev, req); } -static void rk_ablk_hw_init(struct rk_crypto_info *dev) +static void rk_ablk_hw_init(struct rk_crypto_info *dev, struct skcipher_request *req) { - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); struct crypto_skcipher *cipher = crypto_skcipher_reqtfm(req); struct crypto_tfm *tfm = crypto_skcipher_tfm(cipher); + struct rk_cipher_rctx *rctx = skcipher_request_ctx(req); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(cipher); - u32 ivsize, block, conf_reg = 0; + u32 block, conf_reg = 0; block = crypto_tfm_alg_blocksize(tfm); - ivsize = crypto_skcipher_ivsize(cipher); if (block == DES_BLOCK_SIZE) { - ctx->mode |= RK_CRYPTO_TDES_FIFO_MODE | + rctx->mode |= RK_CRYPTO_TDES_FIFO_MODE | RK_CRYPTO_TDES_BYTESWAP_KEY | RK_CRYPTO_TDES_BYTESWAP_IV; - CRYPTO_WRITE(dev, RK_CRYPTO_TDES_CTRL, ctx->mode); - memcpy_toio(dev->reg + RK_CRYPTO_TDES_IV_0, req->iv, ivsize); + CRYPTO_WRITE(dev, RK_CRYPTO_TDES_CTRL, rctx->mode); + memcpy_toio(ctx->dev->reg + RK_CRYPTO_TDES_KEY1_0, ctx->key, ctx->keylen); conf_reg = RK_CRYPTO_DESSEL; } else { - ctx->mode |= RK_CRYPTO_AES_FIFO_MODE | + rctx->mode |= RK_CRYPTO_AES_FIFO_MODE | RK_CRYPTO_AES_KEY_CHANGE | RK_CRYPTO_AES_BYTESWAP_KEY | RK_CRYPTO_AES_BYTESWAP_IV; if (ctx->keylen == AES_KEYSIZE_192) - ctx->mode |= RK_CRYPTO_AES_192BIT_key; + rctx->mode |= RK_CRYPTO_AES_192BIT_key; else if (ctx->keylen == AES_KEYSIZE_256) - ctx->mode |= RK_CRYPTO_AES_256BIT_key; - CRYPTO_WRITE(dev, RK_CRYPTO_AES_CTRL, ctx->mode); - memcpy_toio(dev->reg + RK_CRYPTO_AES_IV_0, req->iv, ivsize); + rctx->mode |= RK_CRYPTO_AES_256BIT_key; + CRYPTO_WRITE(dev, RK_CRYPTO_AES_CTRL, rctx->mode); + memcpy_toio(ctx->dev->reg + RK_CRYPTO_AES_KEY_0, ctx->key, ctx->keylen); } conf_reg |= RK_CRYPTO_BYTESWAP_BTFIFO | RK_CRYPTO_BYTESWAP_BRFIFO; @@ -231,146 +298,138 @@ RK_CRYPTO_BCDMA_ERR_ENA | RK_CRYPTO_BCDMA_DONE_ENA); } -static void crypto_dma_start(struct rk_crypto_info *dev) -{ - CRYPTO_WRITE(dev, RK_CRYPTO_BRDMAS, dev->addr_in); - CRYPTO_WRITE(dev, RK_CRYPTO_BRDMAL, dev->count / 4); - CRYPTO_WRITE(dev, RK_CRYPTO_BTDMAS, dev->addr_out); +static void crypto_dma_start(struct rk_crypto_info *dev, + struct scatterlist *sgs, + struct scatterlist *sgd, unsigned int todo) +{ + CRYPTO_WRITE(dev, RK_CRYPTO_BRDMAS, sg_dma_address(sgs)); + CRYPTO_WRITE(dev, RK_CRYPTO_BRDMAL, todo); + CRYPTO_WRITE(dev, RK_CRYPTO_BTDMAS, sg_dma_address(sgd)); CRYPTO_WRITE(dev, RK_CRYPTO_CTRL, RK_CRYPTO_BLOCK_START | _SBF(RK_CRYPTO_BLOCK_START, 16)); } -static int rk_set_data_start(struct rk_crypto_info *dev) +static int rk_cipher_run(struct crypto_engine *engine, void *async_req) { - int err; - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); - struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); + struct skcipher_request *areq = container_of(async_req, struct skcipher_request, base); + struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(areq); struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); - u32 ivsize = crypto_skcipher_ivsize(tfm); - u8 *src_last_blk = page_address(sg_page(dev->sg_src)) + - dev->sg_src->offset + dev->sg_src->length - ivsize; - - /* Store the iv that need to be updated in chain mode. - * And update the IV buffer to contain the next IV for decryption mode. - */ - if (ctx->mode & RK_CRYPTO_DEC) { - memcpy(ctx->iv, src_last_blk, ivsize); - sg_pcopy_to_buffer(dev->first, dev->src_nents, req->iv, - ivsize, dev->total - ivsize); - } - - err = dev->load_data(dev, dev->sg_src, dev->sg_dst); - if (!err) - crypto_dma_start(dev); - return err; -} - -static int rk_ablk_start(struct rk_crypto_info *dev) -{ - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); - unsigned long flags; + struct rk_cipher_rctx *rctx = skcipher_request_ctx(areq); + struct scatterlist *sgs, *sgd; int err = 0; + int ivsize = crypto_skcipher_ivsize(tfm); + int offset; + u8 iv[AES_BLOCK_SIZE]; + u8 biv[AES_BLOCK_SIZE]; + u8 *ivtouse = areq->iv; + unsigned int len = areq->cryptlen; + unsigned int todo; + + ivsize = crypto_skcipher_ivsize(tfm); + if (areq->iv && crypto_skcipher_ivsize(tfm) > 0) { + if (rctx->mode & RK_CRYPTO_DEC) { + offset = areq->cryptlen - ivsize; + scatterwalk_map_and_copy(rctx->backup_iv, areq->src, + offset, ivsize, 0); + } + } - dev->left_bytes = req->cryptlen; - dev->total = req->cryptlen; - dev->sg_src = req->src; - dev->first = req->src; - dev->src_nents = sg_nents(req->src); - dev->sg_dst = req->dst; - dev->dst_nents = sg_nents(req->dst); - dev->aligned = 1; - - spin_lock_irqsave(&dev->lock, flags); - rk_ablk_hw_init(dev); - err = rk_set_data_start(dev); - spin_unlock_irqrestore(&dev->lock, flags); - return err; -} + sgs = areq->src; + sgd = areq->dst; -static void rk_iv_copyback(struct rk_crypto_info *dev) -{ - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); - struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); - struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); - u32 ivsize = crypto_skcipher_ivsize(tfm); + while (sgs && sgd && len) { + if (!sgs->length) { + sgs = sg_next(sgs); + sgd = sg_next(sgd); + continue; + } + if (rctx->mode & RK_CRYPTO_DEC) { + /* we backup last block of source to be used as IV at next step */ + offset = sgs->length - ivsize; + scatterwalk_map_and_copy(biv, sgs, offset, ivsize, 0); + } + if (sgs == sgd) { + err = dma_map_sg(ctx->dev->dev, sgs, 1, DMA_BIDIRECTIONAL); + if (err <= 0) { + err = -EINVAL; + goto theend_iv; + } + } else { + err = dma_map_sg(ctx->dev->dev, sgs, 1, DMA_TO_DEVICE); + if (err <= 0) { + err = -EINVAL; + goto theend_iv; + } + err = dma_map_sg(ctx->dev->dev, sgd, 1, DMA_FROM_DEVICE); + if (err <= 0) { + err = -EINVAL; + goto theend_sgs; + } + } + err = 0; + rk_ablk_hw_init(ctx->dev, areq); + if (ivsize) { + if (ivsize == DES_BLOCK_SIZE) + memcpy_toio(ctx->dev->reg + RK_CRYPTO_TDES_IV_0, ivtouse, ivsize); + else + memcpy_toio(ctx->dev->reg + RK_CRYPTO_AES_IV_0, ivtouse, ivsize); + } + reinit_completion(&ctx->dev->complete); + ctx->dev->status = 0; - /* Update the IV buffer to contain the next IV for encryption mode. */ - if (!(ctx->mode & RK_CRYPTO_DEC)) { - if (dev->aligned) { - memcpy(req->iv, sg_virt(dev->sg_dst) + - dev->sg_dst->length - ivsize, ivsize); + todo = min(sg_dma_len(sgs), len); + len -= todo; + crypto_dma_start(ctx->dev, sgs, sgd, todo / 4); + wait_for_completion_interruptible_timeout(&ctx->dev->complete, + msecs_to_jiffies(2000)); + if (!ctx->dev->status) { + dev_err(ctx->dev->dev, "DMA timeout\n"); + err = -EFAULT; + goto theend; + } + if (sgs == sgd) { + dma_unmap_sg(ctx->dev->dev, sgs, 1, DMA_BIDIRECTIONAL); + } else { + dma_unmap_sg(ctx->dev->dev, sgs, 1, DMA_TO_DEVICE); + dma_unmap_sg(ctx->dev->dev, sgd, 1, DMA_FROM_DEVICE); + } + if (rctx->mode & RK_CRYPTO_DEC) { + memcpy(iv, biv, ivsize); + ivtouse = iv; } else { - memcpy(req->iv, dev->addr_vir + - dev->count - ivsize, ivsize); + offset = sgd->length - ivsize; + scatterwalk_map_and_copy(iv, sgd, offset, ivsize, 0); + ivtouse = iv; } + sgs = sg_next(sgs); + sgd = sg_next(sgd); } -} -static void rk_update_iv(struct rk_crypto_info *dev) -{ - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); - struct crypto_skcipher *tfm = crypto_skcipher_reqtfm(req); - struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); - u32 ivsize = crypto_skcipher_ivsize(tfm); - u8 *new_iv = NULL; - - if (ctx->mode & RK_CRYPTO_DEC) { - new_iv = ctx->iv; - } else { - new_iv = page_address(sg_page(dev->sg_dst)) + - dev->sg_dst->offset + dev->sg_dst->length - ivsize; + if (areq->iv && ivsize > 0) { + offset = areq->cryptlen - ivsize; + if (rctx->mode & RK_CRYPTO_DEC) { + memcpy(areq->iv, rctx->backup_iv, ivsize); + memzero_explicit(rctx->backup_iv, ivsize); + } else { + scatterwalk_map_and_copy(areq->iv, areq->dst, offset, + ivsize, 0); + } } - if (ivsize == DES_BLOCK_SIZE) - memcpy_toio(dev->reg + RK_CRYPTO_TDES_IV_0, new_iv, ivsize); - else if (ivsize == AES_BLOCK_SIZE) - memcpy_toio(dev->reg + RK_CRYPTO_AES_IV_0, new_iv, ivsize); -} - -/* return: - * true some err was occurred - * fault no err, continue - */ -static int rk_ablk_rx(struct rk_crypto_info *dev) -{ - int err = 0; - struct skcipher_request *req = - skcipher_request_cast(dev->async_req); +theend: + local_bh_disable(); + crypto_finalize_skcipher_request(engine, areq, err); + local_bh_enable(); + return 0; - dev->unload_data(dev); - if (!dev->aligned) { - if (!sg_pcopy_from_buffer(req->dst, dev->dst_nents, - dev->addr_vir, dev->count, - dev->total - dev->left_bytes - - dev->count)) { - err = -EINVAL; - goto out_rx; - } - } - if (dev->left_bytes) { - rk_update_iv(dev); - if (dev->aligned) { - if (sg_is_last(dev->sg_src)) { - dev_err(dev->dev, "[%s:%d] Lack of data\n", - __func__, __LINE__); - err = -ENOMEM; - goto out_rx; - } - dev->sg_src = sg_next(dev->sg_src); - dev->sg_dst = sg_next(dev->sg_dst); - } - err = rk_set_data_start(dev); +theend_sgs: + if (sgs == sgd) { + dma_unmap_sg(ctx->dev->dev, sgs, 1, DMA_BIDIRECTIONAL); } else { - rk_iv_copyback(dev); - /* here show the calculation is over without any err */ - dev->complete(dev->async_req, 0); - tasklet_schedule(&dev->queue_task); + dma_unmap_sg(ctx->dev->dev, sgs, 1, DMA_TO_DEVICE); + dma_unmap_sg(ctx->dev->dev, sgd, 1, DMA_FROM_DEVICE); } -out_rx: +theend_iv: return err; } @@ -378,26 +437,34 @@ { struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); struct skcipher_alg *alg = crypto_skcipher_alg(tfm); + const char *name = crypto_tfm_alg_name(&tfm->base); struct rk_crypto_tmp *algt; algt = container_of(alg, struct rk_crypto_tmp, alg.skcipher); ctx->dev = algt->dev; - ctx->dev->align_size = crypto_tfm_alg_alignmask(crypto_skcipher_tfm(tfm)) + 1; - ctx->dev->start = rk_ablk_start; - ctx->dev->update = rk_ablk_rx; - ctx->dev->complete = rk_crypto_complete; - ctx->dev->addr_vir = (char *)__get_free_page(GFP_KERNEL); - return ctx->dev->addr_vir ? ctx->dev->enable_clk(ctx->dev) : -ENOMEM; + ctx->fallback_tfm = crypto_alloc_skcipher(name, 0, CRYPTO_ALG_NEED_FALLBACK); + if (IS_ERR(ctx->fallback_tfm)) { + dev_err(ctx->dev->dev, "ERROR: Cannot allocate fallback for %s %ld\n", + name, PTR_ERR(ctx->fallback_tfm)); + return PTR_ERR(ctx->fallback_tfm); + } + + tfm->reqsize = sizeof(struct rk_cipher_rctx) + + crypto_skcipher_reqsize(ctx->fallback_tfm); + + ctx->enginectx.op.do_one_request = rk_cipher_run; + + return 0; } static void rk_ablk_exit_tfm(struct crypto_skcipher *tfm) { struct rk_cipher_ctx *ctx = crypto_skcipher_ctx(tfm); - free_page((unsigned long)ctx->dev->addr_vir); - ctx->dev->disable_clk(ctx->dev); + memzero_explicit(ctx->key, ctx->keylen); + crypto_free_skcipher(ctx->fallback_tfm); } struct rk_crypto_tmp rk_ecb_aes_alg = { @@ -406,7 +473,7 @@ .base.cra_name = "ecb(aes)", .base.cra_driver_name = "ecb-aes-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x0f, @@ -428,7 +495,7 @@ .base.cra_name = "cbc(aes)", .base.cra_driver_name = "cbc-aes-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = AES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x0f, @@ -451,7 +518,7 @@ .base.cra_name = "ecb(des)", .base.cra_driver_name = "ecb-des-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = DES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x07, @@ -473,7 +540,7 @@ .base.cra_name = "cbc(des)", .base.cra_driver_name = "cbc-des-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = DES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x07, @@ -496,7 +563,7 @@ .base.cra_name = "ecb(des3_ede)", .base.cra_driver_name = "ecb-des3-ede-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = DES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x07, @@ -518,7 +585,7 @@ .base.cra_name = "cbc(des3_ede)", .base.cra_driver_name = "cbc-des3-ede-rk", .base.cra_priority = 300, - .base.cra_flags = CRYPTO_ALG_ASYNC, + .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_NEED_FALLBACK, .base.cra_blocksize = DES_BLOCK_SIZE, .base.cra_ctxsize = sizeof(struct rk_cipher_ctx), .base.cra_alignmask = 0x07, --- linux-5.19.0.orig/drivers/crypto/sahara.c +++ linux-5.19.0/drivers/crypto/sahara.c @@ -26,10 +26,10 @@ #include #include #include -#include #include #include #include +#include #define SHA_BUFFER_LEN PAGE_SIZE #define SAHARA_MAX_SHA_BLOCK_SIZE SHA256_BLOCK_SIZE @@ -196,7 +196,7 @@ void __iomem *regs_base; struct clk *clk_ipg; struct clk *clk_ahb; - struct mutex queue_mutex; + spinlock_t queue_spinlock; struct task_struct *kthread; struct completion dma_completion; @@ -642,9 +642,9 @@ rctx->mode = mode; - mutex_lock(&dev->queue_mutex); + spin_lock_bh(&dev->queue_spinlock); err = crypto_enqueue_request(&dev->queue, &req->base); - mutex_unlock(&dev->queue_mutex); + spin_unlock_bh(&dev->queue_spinlock); wake_up_process(dev->kthread); @@ -1043,10 +1043,10 @@ do { __set_current_state(TASK_INTERRUPTIBLE); - mutex_lock(&dev->queue_mutex); + spin_lock_bh(&dev->queue_spinlock); backlog = crypto_get_backlog(&dev->queue); async_req = crypto_dequeue_request(&dev->queue); - mutex_unlock(&dev->queue_mutex); + spin_unlock_bh(&dev->queue_spinlock); if (backlog) backlog->complete(backlog, -EINPROGRESS); @@ -1092,9 +1092,9 @@ rctx->first = 1; } - mutex_lock(&dev->queue_mutex); + spin_lock_bh(&dev->queue_spinlock); ret = crypto_enqueue_request(&dev->queue, &req->base); - mutex_unlock(&dev->queue_mutex); + spin_unlock_bh(&dev->queue_spinlock); wake_up_process(dev->kthread); @@ -1449,7 +1449,7 @@ crypto_init_queue(&dev->queue, SAHARA_QUEUE_LENGTH); - mutex_init(&dev->queue_mutex); + spin_lock_init(&dev->queue_spinlock); dev_ptr = dev; --- linux-5.19.0.orig/drivers/cxl/core/mbox.c +++ linux-5.19.0/drivers/cxl/core/mbox.c @@ -174,7 +174,7 @@ }; int rc; - if (out_size > cxlds->payload_size) + if (in_size > cxlds->payload_size || out_size > cxlds->payload_size) return -E2BIG; rc = cxlds->mbox_send(cxlds, &mbox_cmd); --- linux-5.19.0.orig/drivers/cxl/pmem.c +++ linux-5.19.0/drivers/cxl/pmem.c @@ -130,7 +130,7 @@ return -EINVAL; /* 4-byte status follows the input data in the payload */ - if (struct_size(cmd, in_buf, cmd->in_length) + 4 > buf_len) + if (size_add(struct_size(cmd, in_buf, cmd->in_length), 4) > buf_len) return -EINVAL; set_lsa = --- linux-5.19.0.orig/drivers/dax/hmem/device.c +++ linux-5.19.0/drivers/dax/hmem/device.c @@ -15,6 +15,7 @@ .start = r->start, .end = r->end, .flags = IORESOURCE_MEM, + .desc = IORES_DESC_SOFT_RESERVED, }; struct platform_device *pdev; struct memregion_info info; --- linux-5.19.0.orig/drivers/dio/dio.c +++ linux-5.19.0/drivers/dio/dio.c @@ -109,6 +109,12 @@ #endif /* CONFIG_DIO_CONSTANTS */ +static void dio_dev_release(struct device *dev) +{ + struct dio_dev *ddev = container_of(dev, typeof(struct dio_dev), dev); + kfree(ddev); +} + int __init dio_find(int deviceid) { /* Called to find a DIO device before the full bus scan has run. @@ -225,6 +231,7 @@ dev->bus = &dio_bus; dev->dev.parent = &dio_bus.dev; dev->dev.bus = &dio_bus_type; + dev->dev.release = dio_dev_release; dev->scode = scode; dev->resource.start = pa; dev->resource.end = pa + DIO_SIZE(scode, va); @@ -252,6 +259,7 @@ if (error) { pr_err("DIO: Error registering device %s\n", dev->name); + put_device(&dev->dev); continue; } error = dio_create_sysfs_dev_files(dev); --- linux-5.19.0.orig/drivers/dma-buf/dma-heap.c +++ linux-5.19.0/drivers/dma-buf/dma-heap.c @@ -233,18 +233,6 @@ return ERR_PTR(-EINVAL); } - /* check the name is unique */ - mutex_lock(&heap_list_lock); - list_for_each_entry(h, &heap_list, list) { - if (!strcmp(h->name, exp_info->name)) { - mutex_unlock(&heap_list_lock); - pr_err("dma_heap: Already registered heap named %s\n", - exp_info->name); - return ERR_PTR(-EINVAL); - } - } - mutex_unlock(&heap_list_lock); - heap = kzalloc(sizeof(*heap), GFP_KERNEL); if (!heap) return ERR_PTR(-ENOMEM); @@ -283,13 +271,27 @@ err_ret = ERR_CAST(dev_ret); goto err2; } - /* Add heap to the list */ + mutex_lock(&heap_list_lock); + /* check the name is unique */ + list_for_each_entry(h, &heap_list, list) { + if (!strcmp(h->name, exp_info->name)) { + mutex_unlock(&heap_list_lock); + pr_err("dma_heap: Already registered heap named %s\n", + exp_info->name); + err_ret = ERR_PTR(-EINVAL); + goto err3; + } + } + + /* Add heap to the list */ list_add(&heap->list, &heap_list); mutex_unlock(&heap_list_lock); return heap; +err3: + device_destroy(dma_heap_class, heap->heap_devt); err2: cdev_del(&heap->heap_cdev); err1: --- linux-5.19.0.orig/drivers/dma-buf/dma-resv.c +++ linux-5.19.0/drivers/dma-buf/dma-resv.c @@ -295,7 +295,8 @@ enum dma_resv_usage old_usage; dma_resv_list_entry(fobj, i, obj, &old, &old_usage); - if ((old->context == fence->context && old_usage >= usage) || + if ((old->context == fence->context && old_usage >= usage && + dma_fence_is_later(fence, old)) || dma_fence_is_signaled(old)) { dma_resv_list_set(fobj, i, fence, usage); dma_fence_put(old); --- linux-5.19.0.orig/drivers/dma-buf/udmabuf.c +++ linux-5.19.0/drivers/dma-buf/udmabuf.c @@ -124,17 +124,20 @@ { struct udmabuf *ubuf = buf->priv; struct device *dev = ubuf->device->this_device; + int ret = 0; if (!ubuf->sg) { ubuf->sg = get_sg_table(dev, buf, direction); - if (IS_ERR(ubuf->sg)) - return PTR_ERR(ubuf->sg); + if (IS_ERR(ubuf->sg)) { + ret = PTR_ERR(ubuf->sg); + ubuf->sg = NULL; + } } else { dma_sync_sg_for_cpu(dev, ubuf->sg->sgl, ubuf->sg->nents, direction); } - return 0; + return ret; } static int end_cpu_udmabuf(struct dma_buf *buf, @@ -368,7 +371,23 @@ static int __init udmabuf_dev_init(void) { - return misc_register(&udmabuf_misc); + int ret; + + ret = misc_register(&udmabuf_misc); + if (ret < 0) { + pr_err("Could not initialize udmabuf device\n"); + return ret; + } + + ret = dma_coerce_mask_and_coherent(udmabuf_misc.this_device, + DMA_BIT_MASK(64)); + if (ret < 0) { + pr_err("Could not setup DMA mask for udmabuf device\n"); + misc_deregister(&udmabuf_misc); + return ret; + } + + return 0; } static void __exit udmabuf_dev_exit(void) --- linux-5.19.0.orig/drivers/dma/at_hdmac.c +++ linux-5.19.0/drivers/dma/at_hdmac.c @@ -256,6 +256,8 @@ ATC_SPIP_BOUNDARY(first->boundary)); channel_writel(atchan, DPIP, ATC_DPIP_HOLE(first->dst_hole) | ATC_DPIP_BOUNDARY(first->boundary)); + /* Don't allow CPU to reorder channel enable. */ + wmb(); dma_writel(atdma, CHER, atchan->mask); vdbg_dump_regs(atchan); @@ -316,7 +318,8 @@ struct at_desc *desc_first = atc_first_active(atchan); struct at_desc *desc; int ret; - u32 ctrla, dscr, trials; + u32 ctrla, dscr; + unsigned int i; /* * If the cookie doesn't match to the currently running transfer then @@ -386,7 +389,7 @@ dscr = channel_readl(atchan, DSCR); rmb(); /* ensure DSCR is read before CTRLA */ ctrla = channel_readl(atchan, CTRLA); - for (trials = 0; trials < ATC_MAX_DSCR_TRIALS; ++trials) { + for (i = 0; i < ATC_MAX_DSCR_TRIALS; ++i) { u32 new_dscr; rmb(); /* ensure DSCR is read after CTRLA */ @@ -412,7 +415,7 @@ rmb(); /* ensure DSCR is read before CTRLA */ ctrla = channel_readl(atchan, CTRLA); } - if (unlikely(trials >= ATC_MAX_DSCR_TRIALS)) + if (unlikely(i == ATC_MAX_DSCR_TRIALS)) return -ETIMEDOUT; /* for the first descriptor we can be more accurate */ @@ -462,18 +465,6 @@ if (!atc_chan_is_cyclic(atchan)) dma_cookie_complete(txd); - /* If the transfer was a memset, free our temporary buffer */ - if (desc->memset_buffer) { - dma_pool_free(atdma->memset_pool, desc->memset_vaddr, - desc->memset_paddr); - desc->memset_buffer = false; - } - - /* move children to free_list */ - list_splice_init(&desc->tx_list, &atchan->free_list); - /* move myself to free_list */ - list_move(&desc->desc_node, &atchan->free_list); - spin_unlock_irqrestore(&atchan->lock, flags); dma_descriptor_unmap(txd); @@ -483,42 +474,20 @@ dmaengine_desc_get_callback_invoke(txd, NULL); dma_run_dependencies(txd); -} - -/** - * atc_complete_all - finish work for all transactions - * @atchan: channel to complete transactions for - * - * Eventually submit queued descriptors if any - * - * Assume channel is idle while calling this function - * Called with atchan->lock held and bh disabled - */ -static void atc_complete_all(struct at_dma_chan *atchan) -{ - struct at_desc *desc, *_desc; - LIST_HEAD(list); - unsigned long flags; - - dev_vdbg(chan2dev(&atchan->chan_common), "complete all\n"); spin_lock_irqsave(&atchan->lock, flags); - - /* - * Submit queued descriptors ASAP, i.e. before we go through - * the completed ones. - */ - if (!list_empty(&atchan->queue)) - atc_dostart(atchan, atc_first_queued(atchan)); - /* empty active_list now it is completed */ - list_splice_init(&atchan->active_list, &list); - /* empty queue list by moving descriptors (if any) to active_list */ - list_splice_init(&atchan->queue, &atchan->active_list); - + /* move children to free_list */ + list_splice_init(&desc->tx_list, &atchan->free_list); + /* add myself to free_list */ + list_add(&desc->desc_node, &atchan->free_list); spin_unlock_irqrestore(&atchan->lock, flags); - list_for_each_entry_safe(desc, _desc, &list, desc_node) - atc_chain_complete(atchan, desc); + /* If the transfer was a memset, free our temporary buffer */ + if (desc->memset_buffer) { + dma_pool_free(atdma->memset_pool, desc->memset_vaddr, + desc->memset_paddr); + desc->memset_buffer = false; + } } /** @@ -527,26 +496,28 @@ */ static void atc_advance_work(struct at_dma_chan *atchan) { + struct at_desc *desc; unsigned long flags; - int ret; dev_vdbg(chan2dev(&atchan->chan_common), "advance_work\n"); spin_lock_irqsave(&atchan->lock, flags); - ret = atc_chan_is_enabled(atchan); - spin_unlock_irqrestore(&atchan->lock, flags); - if (ret) - return; - - if (list_empty(&atchan->active_list) || - list_is_singular(&atchan->active_list)) - return atc_complete_all(atchan); + if (atc_chan_is_enabled(atchan) || list_empty(&atchan->active_list)) + return spin_unlock_irqrestore(&atchan->lock, flags); - atc_chain_complete(atchan, atc_first_active(atchan)); + desc = atc_first_active(atchan); + /* Remove the transfer node from the active list. */ + list_del_init(&desc->desc_node); + spin_unlock_irqrestore(&atchan->lock, flags); + atc_chain_complete(atchan, desc); /* advance work */ spin_lock_irqsave(&atchan->lock, flags); - atc_dostart(atchan, atc_first_active(atchan)); + if (!list_empty(&atchan->active_list)) { + desc = atc_first_queued(atchan); + list_move_tail(&desc->desc_node, &atchan->active_list); + atc_dostart(atchan, desc); + } spin_unlock_irqrestore(&atchan->lock, flags); } @@ -558,6 +529,7 @@ static void atc_handle_error(struct at_dma_chan *atchan) { struct at_desc *bad_desc; + struct at_desc *desc; struct at_desc *child; unsigned long flags; @@ -570,13 +542,12 @@ bad_desc = atc_first_active(atchan); list_del_init(&bad_desc->desc_node); - /* As we are stopped, take advantage to push queued descriptors - * in active_list */ - list_splice_init(&atchan->queue, atchan->active_list.prev); - /* Try to restart the controller */ - if (!list_empty(&atchan->active_list)) - atc_dostart(atchan, atc_first_active(atchan)); + if (!list_empty(&atchan->active_list)) { + desc = atc_first_queued(atchan); + list_move_tail(&desc->desc_node, &atchan->active_list); + atc_dostart(atchan, desc); + } /* * KERN_CRITICAL may seem harsh, but since this only happens @@ -691,19 +662,11 @@ spin_lock_irqsave(&atchan->lock, flags); cookie = dma_cookie_assign(tx); - if (list_empty(&atchan->active_list)) { - dev_vdbg(chan2dev(tx->chan), "tx_submit: started %u\n", - desc->txd.cookie); - atc_dostart(atchan, desc); - list_add_tail(&desc->desc_node, &atchan->active_list); - } else { - dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u\n", - desc->txd.cookie); - list_add_tail(&desc->desc_node, &atchan->queue); - } - + list_add_tail(&desc->desc_node, &atchan->queue); spin_unlock_irqrestore(&atchan->lock, flags); + dev_vdbg(chan2dev(tx->chan), "tx_submit: queued %u\n", + desc->txd.cookie); return cookie; } @@ -1445,11 +1408,8 @@ struct at_dma_chan *atchan = to_at_dma_chan(chan); struct at_dma *atdma = to_at_dma(chan->device); int chan_id = atchan->chan_common.chan_id; - struct at_desc *desc, *_desc; unsigned long flags; - LIST_HEAD(list); - dev_vdbg(chan2dev(chan), "%s\n", __func__); /* @@ -1468,19 +1428,15 @@ cpu_relax(); /* active_list entries will end up before queued entries */ - list_splice_init(&atchan->queue, &list); - list_splice_init(&atchan->active_list, &list); - - spin_unlock_irqrestore(&atchan->lock, flags); - - /* Flush all pending and queued descriptors */ - list_for_each_entry_safe(desc, _desc, &list, desc_node) - atc_chain_complete(atchan, desc); + list_splice_tail_init(&atchan->queue, &atchan->free_list); + list_splice_tail_init(&atchan->active_list, &atchan->free_list); clear_bit(ATC_IS_PAUSED, &atchan->status); /* if channel dedicated to cyclic operations, free it */ clear_bit(ATC_IS_CYCLIC, &atchan->status); + spin_unlock_irqrestore(&atchan->lock, flags); + return 0; } @@ -1535,20 +1491,26 @@ } /** - * atc_issue_pending - try to finish work + * atc_issue_pending - takes the first transaction descriptor in the pending + * queue and starts the transfer. * @chan: target DMA channel */ static void atc_issue_pending(struct dma_chan *chan) { - struct at_dma_chan *atchan = to_at_dma_chan(chan); + struct at_dma_chan *atchan = to_at_dma_chan(chan); + struct at_desc *desc; + unsigned long flags; dev_vdbg(chan2dev(chan), "issue_pending\n"); - /* Not needed for cyclic transfers */ - if (atc_chan_is_cyclic(atchan)) - return; + spin_lock_irqsave(&atchan->lock, flags); + if (atc_chan_is_enabled(atchan) || list_empty(&atchan->queue)) + return spin_unlock_irqrestore(&atchan->lock, flags); - atc_advance_work(atchan); + desc = atc_first_queued(atchan); + list_move_tail(&desc->desc_node, &atchan->active_list); + atc_dostart(atchan, desc); + spin_unlock_irqrestore(&atchan->lock, flags); } /** @@ -1966,7 +1928,11 @@ dma_has_cap(DMA_SLAVE, atdma->dma_common.cap_mask) ? "slave " : "", plat_dat->nr_channels); - dma_async_device_register(&atdma->dma_common); + err = dma_async_device_register(&atdma->dma_common); + if (err) { + dev_err(&pdev->dev, "Unable to register: %d.\n", err); + goto err_dma_async_device_register; + } /* * Do not return an error if the dmac node is not present in order to @@ -1986,6 +1952,7 @@ err_of_dma_controller_register: dma_async_device_unregister(&atdma->dma_common); +err_dma_async_device_register: dma_pool_destroy(atdma->memset_pool); err_memset_pool_create: dma_pool_destroy(atdma->dma_desc_pool); --- linux-5.19.0.orig/drivers/dma/at_hdmac_regs.h +++ linux-5.19.0/drivers/dma/at_hdmac_regs.h @@ -186,13 +186,13 @@ /* LLI == Linked List Item; aka DMA buffer descriptor */ struct at_lli { /* values that are not changed by hardware */ - dma_addr_t saddr; - dma_addr_t daddr; + u32 saddr; + u32 daddr; /* value that may get written back: */ - u32 ctrla; + u32 ctrla; /* more values that are not changed by hardware */ - u32 ctrlb; - dma_addr_t dscr; /* chain to next lli */ + u32 ctrlb; + u32 dscr; /* chain to next lli */ }; /** --- linux-5.19.0.orig/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c +++ linux-5.19.0/drivers/dma/dw-axi-dmac/dw-axi-dmac-platform.c @@ -982,6 +982,11 @@ static void axi_chan_dump_lli(struct axi_dma_chan *chan, struct axi_dma_hw_desc *desc) { + if (!desc->lli) { + dev_err(dchan2dev(&chan->vc.chan), "NULL LLI\n"); + return; + } + dev_err(dchan2dev(&chan->vc.chan), "SAR: 0x%llx DAR: 0x%llx LLP: 0x%llx BTS 0x%x CTL: 0x%x:%08x", le64_to_cpu(desc->lli->sar), @@ -1049,6 +1054,11 @@ /* The completed descriptor currently is in the head of vc list */ vd = vchan_next_desc(&chan->vc); + if (!vd) { + dev_err(chan2dev(chan), "BUG: %s, IRQ with no descriptors\n", + axi_chan_name(chan)); + goto out; + } if (chan->cyclic) { desc = vd_to_axi_desc(vd); @@ -1078,6 +1088,7 @@ axi_chan_start_first_queued(chan); } +out: spin_unlock_irqrestore(&chan->vc.lock, flags); } --- linux-5.19.0.orig/drivers/dma/dw-edma/dw-edma-core.c +++ linux-5.19.0/drivers/dma/dw-edma/dw-edma-core.c @@ -9,7 +9,6 @@ #include #include #include -#include #include #include #include @@ -423,7 +422,7 @@ chunk->ll_region.sz += burst->sz; desc->alloc_sz += burst->sz; - if (chan->dir == EDMA_DIR_WRITE) { + if (dir == DMA_DEV_TO_MEM) { burst->sar = src_addr; if (xfer->type == EDMA_XFER_CYCLIC) { burst->dar = xfer->xfer.cyclic.paddr; @@ -663,15 +662,12 @@ if (chan->status != EDMA_ST_IDLE) return -EBUSY; - pm_runtime_get(chan->chip->dev); - return 0; } static void dw_edma_free_chan_resources(struct dma_chan *dchan) { unsigned long timeout = jiffies + msecs_to_jiffies(5000); - struct dw_edma_chan *chan = dchan2dw_edma_chan(dchan); int ret; while (time_before(jiffies, timeout)) { @@ -684,8 +680,6 @@ cpu_relax(); } - - pm_runtime_put(chan->chip->dev); } static int dw_edma_channel_setup(struct dw_edma_chip *chip, bool write, @@ -950,9 +944,6 @@ if (err) goto err_irq_free; - /* Power management */ - pm_runtime_enable(dev); - /* Turn debugfs on */ dw_edma_v0_core_debugfs_on(chip); @@ -982,9 +973,6 @@ for (i = (dw->nr_irqs - 1); i >= 0; i--) free_irq(dw->ops->irq_vector(dev, i), &dw->irq[i]); - /* Power management */ - pm_runtime_disable(dev); - /* Deregister eDMA device */ dma_async_device_unregister(&dw->wr_edma); list_for_each_entry_safe(chan, _chan, &dw->wr_edma.channels, --- linux-5.19.0.orig/drivers/dma/dw/rzn1-dmamux.c +++ linux-5.19.0/drivers/dma/dw/rzn1-dmamux.c @@ -102,10 +102,12 @@ return ERR_PTR(ret); } +#ifdef CONFIG_OF static const struct of_device_id rzn1_dmac_match[] = { { .compatible = "renesas,rzn1-dma" }, {} }; +#endif static int rzn1_dmamux_probe(struct platform_device *pdev) { @@ -140,6 +142,7 @@ { .compatible = "renesas,rzn1-dmamux" }, {} }; +MODULE_DEVICE_TABLE(of, rzn1_dmamux_match); static struct platform_driver rzn1_dmamux_driver = { .driver = { --- linux-5.19.0.orig/drivers/dma/hisi_dma.c +++ linux-5.19.0/drivers/dma/hisi_dma.c @@ -180,7 +180,8 @@ 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) +static void hisi_dma_reset_or_disable_hw_chan(struct hisi_dma_chan *chan, + bool disable) { struct hisi_dma_dev *hdma_dev = chan->hdma_dev; u32 index = chan->qp_num, tmp; @@ -201,8 +202,11 @@ 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); + + if (!disable) { + 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, @@ -218,7 +222,7 @@ 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); + hisi_dma_reset_or_disable_hw_chan(chan, false); vchan_free_chan_resources(&chan->vc); memset(chan->sq, 0, sizeof(struct hisi_dma_sqe) * hdma_dev->chan_depth); @@ -267,7 +271,6 @@ vd = vchan_next_desc(&chan->vc); if (!vd) { - dev_err(&hdma_dev->pdev->dev, "no issued task!\n"); chan->desc = NULL; return; } @@ -299,7 +302,7 @@ spin_lock_irqsave(&chan->vc.lock, flags); - if (vchan_issue_pending(&chan->vc)) + if (vchan_issue_pending(&chan->vc) && !chan->desc) hisi_dma_start_transfer(chan); spin_unlock_irqrestore(&chan->vc.lock, flags); @@ -394,7 +397,7 @@ 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]); + hisi_dma_reset_or_disable_hw_chan(&hdma_dev->chan[qp_index], true); } static void hisi_dma_enable_qps(struct hisi_dma_dev *hdma_dev) @@ -432,18 +435,15 @@ desc = chan->desc; cqe = chan->cq + chan->cq_head; if (desc) { + 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); 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); + hisi_dma_start_transfer(chan); } else { dev_err(&hdma_dev->pdev->dev, "task error!\n"); } - - chan->desc = NULL; } spin_unlock(&chan->vc.lock); --- linux-5.19.0.orig/drivers/dma/idxd/cdev.c +++ linux-5.19.0/drivers/dma/idxd/cdev.c @@ -312,6 +312,24 @@ if (idxd->state != IDXD_DEV_ENABLED) return -ENXIO; + /* + * User type WQ is enabled only when SVA is enabled for two reasons: + * - If no IOMMU or IOMMU Passthrough without SVA, userspace + * can directly access physical address through the WQ. + * - The IDXD cdev driver does not provide any ways to pin + * user pages and translate the address from user VA to IOVA or + * PA without IOMMU SVA. Therefore the application has no way + * to instruct the device to perform DMA function. This makes + * the cdev not usable for normal application usage. + */ + if (!device_user_pasid_enabled(idxd)) { + idxd->cmd_status = IDXD_SCMD_WQ_USER_NO_IOMMU; + dev_dbg(&idxd->pdev->dev, + "User type WQ cannot be enabled without SVA.\n"); + + return -EOPNOTSUPP; + } + mutex_lock(&wq->wq_lock); wq->type = IDXD_WQT_USER; rc = drv_enable_wq(wq); --- linux-5.19.0.orig/drivers/dma/idxd/device.c +++ linux-5.19.0/drivers/dma/idxd/device.c @@ -388,7 +388,7 @@ clear_bit(WQ_FLAG_BLOCK_ON_FAULT, &wq->flags); memset(wq->name, 0, WQ_NAME_SIZE); wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER; - wq->max_batch_size = WQ_DEFAULT_MAX_BATCH; + idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH); } static void idxd_wq_device_reset_cleanup(struct idxd_wq *wq) @@ -724,13 +724,21 @@ void idxd_device_clear_state(struct idxd_device *idxd) { - if (!test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) - return; + /* IDXD is always disabled. Other states are cleared only when IDXD is configurable. */ + if (test_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags)) { + /* + * Clearing wq state is protected by wq lock. + * So no need to be protected by device lock. + */ + idxd_device_wqs_clear_state(idxd); + + spin_lock(&idxd->dev_lock); + idxd_groups_clear_state(idxd); + idxd_engines_clear_state(idxd); + } else { + spin_lock(&idxd->dev_lock); + } - idxd_device_wqs_clear_state(idxd); - spin_lock(&idxd->dev_lock); - idxd_groups_clear_state(idxd); - idxd_engines_clear_state(idxd); idxd->state = IDXD_DEV_DISABLED; spin_unlock(&idxd->dev_lock); } @@ -863,7 +871,7 @@ /* bytes 12-15 */ wq->wqcfg->max_xfer_shift = ilog2(wq->max_xfer_bytes); - wq->wqcfg->max_batch_shift = ilog2(wq->max_batch_size); + idxd_wqcfg_set_max_batch_shift(idxd->data->type, wq->wqcfg, ilog2(wq->max_batch_size)); dev_dbg(dev, "WQ %d CFGs\n", wq->id); for (i = 0; i < WQCFG_STRIDES(idxd); i++) { @@ -1031,7 +1039,7 @@ wq->priority = wq->wqcfg->priority; wq->max_xfer_bytes = 1ULL << wq->wqcfg->max_xfer_shift; - wq->max_batch_size = 1ULL << wq->wqcfg->max_batch_shift; + idxd_wq_set_max_batch_size(idxd->data->type, wq, 1U << wq->wqcfg->max_batch_shift); for (i = 0; i < WQCFG_STRIDES(idxd); i++) { wqcfg_offset = WQCFG_OFFSET(idxd, wq->id, i); --- linux-5.19.0.orig/drivers/dma/idxd/idxd.h +++ linux-5.19.0/drivers/dma/idxd/idxd.h @@ -308,6 +308,8 @@ struct work_struct work; struct idxd_pmu *idxd_pmu; + + unsigned long *opcap_bmap; }; /* IDXD software descriptor */ @@ -540,6 +542,38 @@ return wq->client_count; }; +/* + * Intel IAA does not support batch processing. + * The max batch size of device, max batch size of wq and + * max batch shift of wqcfg should be always 0 on IAA. + */ +static inline void idxd_set_max_batch_size(int idxd_type, struct idxd_device *idxd, + u32 max_batch_size) +{ + if (idxd_type == IDXD_TYPE_IAX) + idxd->max_batch_size = 0; + else + idxd->max_batch_size = max_batch_size; +} + +static inline void idxd_wq_set_max_batch_size(int idxd_type, struct idxd_wq *wq, + u32 max_batch_size) +{ + if (idxd_type == IDXD_TYPE_IAX) + wq->max_batch_size = 0; + else + wq->max_batch_size = max_batch_size; +} + +static inline void idxd_wqcfg_set_max_batch_shift(int idxd_type, union wqcfg *wqcfg, + u32 max_batch_shift) +{ + if (idxd_type == IDXD_TYPE_IAX) + wqcfg->max_batch_shift = 0; + else + wqcfg->max_batch_shift = max_batch_shift; +} + int __must_check __idxd_driver_register(struct idxd_device_driver *idxd_drv, struct module *module, const char *mod_name); #define idxd_driver_register(driver) \ --- linux-5.19.0.orig/drivers/dma/idxd/init.c +++ linux-5.19.0/drivers/dma/idxd/init.c @@ -177,7 +177,7 @@ init_completion(&wq->wq_dead); init_completion(&wq->wq_resurrect); wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER; - wq->max_batch_size = WQ_DEFAULT_MAX_BATCH; + idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH); wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES; wq->wqcfg = kzalloc_node(idxd->wqcfg_size, GFP_KERNEL, dev_to_node(dev)); if (!wq->wqcfg) { @@ -369,6 +369,19 @@ dev_dbg(dev, "IDXD Perfmon Offset: %#x\n", idxd->perfmon_offset); } +static void multi_u64_to_bmap(unsigned long *bmap, u64 *val, int count) +{ + int i, j, nr; + + for (i = 0, nr = 0; i < count; i++) { + for (j = 0; j < BITS_PER_LONG_LONG; j++) { + if (val[i] & BIT(j)) + set_bit(nr, bmap); + nr++; + } + } +} + static void idxd_read_caps(struct idxd_device *idxd) { struct device *dev = &idxd->pdev->dev; @@ -389,7 +402,7 @@ idxd->max_xfer_bytes = 1ULL << idxd->hw.gen_cap.max_xfer_shift; dev_dbg(dev, "max xfer size: %llu bytes\n", idxd->max_xfer_bytes); - idxd->max_batch_size = 1U << idxd->hw.gen_cap.max_batch_shift; + idxd_set_max_batch_size(idxd->data->type, idxd, 1U << idxd->hw.gen_cap.max_batch_shift); dev_dbg(dev, "max batch size: %u\n", idxd->max_batch_size); if (idxd->hw.gen_cap.config_en) set_bit(IDXD_FLAG_CONFIGURABLE, &idxd->flags); @@ -427,6 +440,7 @@ IDXD_OPCAP_OFFSET + i * sizeof(u64)); dev_dbg(dev, "opcap[%d]: %#llx\n", i, idxd->hw.opcap.bits[i]); } + multi_u64_to_bmap(idxd->opcap_bmap, &idxd->hw.opcap.bits[0], 4); } static struct idxd_device *idxd_alloc(struct pci_dev *pdev, struct idxd_driver_data *data) @@ -448,6 +462,12 @@ if (idxd->id < 0) return NULL; + idxd->opcap_bmap = bitmap_zalloc_node(IDXD_MAX_OPCAP_BITS, GFP_KERNEL, dev_to_node(dev)); + if (!idxd->opcap_bmap) { + ida_free(&idxd_ida, idxd->id); + return NULL; + } + device_initialize(conf_dev); conf_dev->parent = dev; conf_dev->bus = &dsa_bus_type; --- linux-5.19.0.orig/drivers/dma/idxd/irq.c +++ linux-5.19.0/drivers/dma/idxd/irq.c @@ -324,13 +324,11 @@ idxd->state = IDXD_DEV_HALTED; idxd_wqs_quiesce(idxd); idxd_wqs_unmap_portal(idxd); - spin_lock(&idxd->dev_lock); idxd_device_clear_state(idxd); dev_err(&idxd->pdev->dev, "idxd halted, need %s.\n", gensts.reset_type == IDXD_DEVICE_RESET_FLR ? "FLR" : "system reset"); - spin_unlock(&idxd->dev_lock); return -ENXIO; } } --- linux-5.19.0.orig/drivers/dma/idxd/registers.h +++ linux-5.19.0/drivers/dma/idxd/registers.h @@ -90,6 +90,8 @@ u64 bits[4]; }; +#define IDXD_MAX_OPCAP_BITS 256U + #define IDXD_OPCAP_OFFSET 0x40 #define IDXD_TABLE_OFFSET 0x60 --- linux-5.19.0.orig/drivers/dma/idxd/sysfs.c +++ linux-5.19.0/drivers/dma/idxd/sysfs.c @@ -961,7 +961,7 @@ if (batch_size > idxd->max_batch_size) return -EINVAL; - wq->max_batch_size = (u32)batch_size; + idxd_wq_set_max_batch_size(idxd->data->type, wq, (u32)batch_size); return count; } @@ -1177,14 +1177,8 @@ struct device_attribute *attr, char *buf) { struct idxd_device *idxd = confdev_to_idxd(dev); - int i, rc = 0; - for (i = 0; i < 4; i++) - rc += sysfs_emit_at(buf, rc, "%#llx ", idxd->hw.opcap.bits[i]); - - rc--; - rc += sysfs_emit_at(buf, rc, "\n"); - return rc; + return sysfs_emit(buf, "%*pb\n", IDXD_MAX_OPCAP_BITS, idxd->opcap_bmap); } static DEVICE_ATTR_RO(op_cap); @@ -1408,6 +1402,7 @@ kfree(idxd->wqs); kfree(idxd->engines); ida_free(&idxd_ida, idxd->id); + bitmap_free(idxd->opcap_bmap); kfree(idxd); } --- linux-5.19.0.orig/drivers/dma/imx-dma.c +++ linux-5.19.0/drivers/dma/imx-dma.c @@ -1047,7 +1047,7 @@ return -ENOMEM; imxdma->dev = &pdev->dev; - imxdma->devtype = (enum imx_dma_type)of_device_get_match_data(&pdev->dev); + imxdma->devtype = (uintptr_t)of_device_get_match_data(&pdev->dev); res = platform_get_resource(pdev, IORESOURCE_MEM, 0); imxdma->base = devm_ioremap_resource(&pdev->dev, res); --- linux-5.19.0.orig/drivers/dma/ioat/dma.c +++ linux-5.19.0/drivers/dma/ioat/dma.c @@ -656,7 +656,7 @@ if (active - i == 0) { dev_dbg(to_dev(ioat_chan), "%s: cancel completion timeout\n", __func__); - mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); + mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); } /* microsecond delay by sysfs variable per pending descriptor */ @@ -682,7 +682,7 @@ if (chanerr & (IOAT_CHANERR_HANDLE_MASK | IOAT_CHANERR_RECOVER_MASK)) { - mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); + mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); ioat_eh(ioat_chan); } } @@ -879,7 +879,7 @@ } if (test_and_clear_bit(IOAT_CHAN_ACTIVE, &ioat_chan->state)) - mod_timer(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); + mod_timer_pending(&ioat_chan->timer, jiffies + IDLE_TIMEOUT); } static void ioat_reboot_chan(struct ioatdma_chan *ioat_chan) --- linux-5.19.0.orig/drivers/dma/mv_xor_v2.c +++ linux-5.19.0/drivers/dma/mv_xor_v2.c @@ -893,6 +893,7 @@ tasklet_kill(&xor_dev->irq_tasklet); clk_disable_unprepare(xor_dev->clk); + clk_disable_unprepare(xor_dev->reg_clk); return 0; } --- linux-5.19.0.orig/drivers/dma/mxs-dma.c +++ linux-5.19.0/drivers/dma/mxs-dma.c @@ -670,7 +670,7 @@ return mxs_chan->status; } -static int __init mxs_dma_init(struct mxs_dma_engine *mxs_dma) +static int mxs_dma_init(struct mxs_dma_engine *mxs_dma) { int ret; @@ -741,7 +741,7 @@ ofdma->of_node); } -static int __init mxs_dma_probe(struct platform_device *pdev) +static int mxs_dma_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; const struct mxs_dma_type *dma_type; @@ -839,10 +839,7 @@ .name = "mxs-dma", .of_match_table = mxs_dma_dt_ids, }, + .probe = mxs_dma_probe, }; -static int __init mxs_dma_module_init(void) -{ - return platform_driver_probe(&mxs_dma_driver, mxs_dma_probe); -} -subsys_initcall(mxs_dma_module_init); +builtin_platform_driver(mxs_dma_driver); --- linux-5.19.0.orig/drivers/dma/pxa_dma.c +++ linux-5.19.0/drivers/dma/pxa_dma.c @@ -1247,14 +1247,14 @@ return -ENOMEM; for (i = 0; i < nb_phy_chans; i++) - if (platform_get_irq(op, i) > 0) + if (platform_get_irq_optional(op, i) > 0) nr_irq++; for (i = 0; i < nb_phy_chans; i++) { phy = &pdev->phys[i]; phy->base = pdev->base; phy->idx = i; - irq = platform_get_irq(op, i); + irq = platform_get_irq_optional(op, i); if ((nr_irq > 1) && (irq > 0)) ret = devm_request_irq(&op->dev, irq, pxad_chan_handler, --- linux-5.19.0.orig/drivers/dma/qcom/qcom_adm.c +++ linux-5.19.0/drivers/dma/qcom/qcom_adm.c @@ -379,13 +379,13 @@ if (blk_size < 0) { dev_err(adev->dev, "invalid burst value: %d\n", burst); - return ERR_PTR(-EINVAL); + return NULL; } crci = achan->crci & 0xf; if (!crci || achan->crci > 0x1f) { dev_err(adev->dev, "invalid crci value\n"); - return ERR_PTR(-EINVAL); + return NULL; } } @@ -403,8 +403,10 @@ } async_desc = kzalloc(sizeof(*async_desc), GFP_NOWAIT); - if (!async_desc) - return ERR_PTR(-ENOMEM); + if (!async_desc) { + dev_err(adev->dev, "not enough memory for async_desc struct\n"); + return NULL; + } async_desc->mux = achan->mux ? ADM_CRCI_CTL_MUX_SEL : 0; async_desc->crci = crci; @@ -414,8 +416,10 @@ sizeof(*cple) + 2 * ADM_DESC_ALIGN; async_desc->cpl = kzalloc(async_desc->dma_len, GFP_NOWAIT); - if (!async_desc->cpl) + if (!async_desc->cpl) { + dev_err(adev->dev, "not enough memory for cpl struct\n"); goto free; + } async_desc->adev = adev; @@ -437,8 +441,10 @@ async_desc->dma_addr = dma_map_single(adev->dev, async_desc->cpl, async_desc->dma_len, DMA_TO_DEVICE); - if (dma_mapping_error(adev->dev, async_desc->dma_addr)) + if (dma_mapping_error(adev->dev, async_desc->dma_addr)) { + dev_err(adev->dev, "dma mapping error for cpl\n"); goto free; + } cple_addr = async_desc->dma_addr + ((void *)cple - async_desc->cpl); @@ -454,7 +460,7 @@ free: kfree(async_desc); - return ERR_PTR(-ENOMEM); + return NULL; } /** @@ -494,7 +500,7 @@ spin_lock_irqsave(&achan->vc.lock, flag); memcpy(&achan->slave, cfg, sizeof(struct dma_slave_config)); - if (cfg->peripheral_size == sizeof(config)) + if (cfg->peripheral_size == sizeof(*config)) achan->crci = config->crci; spin_unlock_irqrestore(&achan->vc.lock, flag); --- linux-5.19.0.orig/drivers/dma/sf-pdma/sf-pdma.c +++ linux-5.19.0/drivers/dma/sf-pdma/sf-pdma.c @@ -52,16 +52,6 @@ static struct sf_pdma_desc *sf_pdma_alloc_desc(struct sf_pdma_chan *chan) { struct sf_pdma_desc *desc; - unsigned long flags; - - spin_lock_irqsave(&chan->lock, flags); - - if (chan->desc && !chan->desc->in_use) { - spin_unlock_irqrestore(&chan->lock, flags); - return chan->desc; - } - - spin_unlock_irqrestore(&chan->lock, flags); desc = kzalloc(sizeof(*desc), GFP_NOWAIT); if (!desc) @@ -111,7 +101,6 @@ desc->async_tx = vchan_tx_prep(&chan->vchan, &desc->vdesc, flags); spin_lock_irqsave(&chan->vchan.lock, iflags); - chan->desc = desc; sf_pdma_fill_desc(desc, dest, src, len); spin_unlock_irqrestore(&chan->vchan.lock, iflags); @@ -170,11 +159,17 @@ unsigned long flags; u64 residue = 0; struct sf_pdma_desc *desc; - struct dma_async_tx_descriptor *tx; + struct dma_async_tx_descriptor *tx = NULL; spin_lock_irqsave(&chan->vchan.lock, flags); - tx = &chan->desc->vdesc.tx; + list_for_each_entry(vd, &chan->vchan.desc_submitted, node) + if (vd->tx.cookie == cookie) + tx = &vd->tx; + + if (!tx) + goto out; + if (cookie == tx->chan->completed_cookie) goto out; @@ -241,6 +236,19 @@ writel(v, regs->ctrl); } +static struct sf_pdma_desc *sf_pdma_get_first_pending_desc(struct sf_pdma_chan *chan) +{ + struct virt_dma_chan *vchan = &chan->vchan; + struct virt_dma_desc *vdesc; + + if (list_empty(&vchan->desc_issued)) + return NULL; + + vdesc = list_first_entry(&vchan->desc_issued, struct virt_dma_desc, node); + + return container_of(vdesc, struct sf_pdma_desc, vdesc); +} + static void sf_pdma_xfer_desc(struct sf_pdma_chan *chan) { struct sf_pdma_desc *desc = chan->desc; @@ -268,8 +276,11 @@ spin_lock_irqsave(&chan->vchan.lock, flags); - if (vchan_issue_pending(&chan->vchan) && chan->desc) + if (!chan->desc && vchan_issue_pending(&chan->vchan)) { + /* vchan_issue_pending has made a check that desc in not NULL */ + chan->desc = sf_pdma_get_first_pending_desc(chan); sf_pdma_xfer_desc(chan); + } spin_unlock_irqrestore(&chan->vchan.lock, flags); } @@ -298,6 +309,11 @@ spin_lock_irqsave(&chan->vchan.lock, flags); list_del(&chan->desc->vdesc.node); vchan_cookie_complete(&chan->desc->vdesc); + + chan->desc = sf_pdma_get_first_pending_desc(chan); + if (chan->desc) + sf_pdma_xfer_desc(chan); + spin_unlock_irqrestore(&chan->vchan.lock, flags); } --- linux-5.19.0.orig/drivers/dma/sprd-dma.c +++ linux-5.19.0/drivers/dma/sprd-dma.c @@ -1237,11 +1237,8 @@ { struct sprd_dma_dev *sdev = platform_get_drvdata(pdev); struct sprd_dma_chn *c, *cn; - int ret; - ret = pm_runtime_get_sync(&pdev->dev); - if (ret < 0) - return ret; + pm_runtime_get_sync(&pdev->dev); /* explicitly free the irq */ if (sdev->irq > 0) --- linux-5.19.0.orig/drivers/dma/stm32-dma.c +++ linux-5.19.0/drivers/dma/stm32-dma.c @@ -663,6 +663,8 @@ chan->chan_reg.dma_sndtr = stm32_dma_read(dmadev, STM32_DMA_SNDTR(chan->id)); + chan->status = DMA_PAUSED; + dev_dbg(chan2dev(chan), "vchan %pK: paused\n", &chan->vchan); } @@ -775,9 +777,7 @@ if (status & STM32_DMA_TCI) { stm32_dma_irq_clear(chan, STM32_DMA_TCI); if (scr & STM32_DMA_SCR_TCIE) { - if (chan->status == DMA_PAUSED && !(scr & STM32_DMA_SCR_EN)) - stm32_dma_handle_chan_paused(chan); - else + if (chan->status != DMA_PAUSED) stm32_dma_handle_chan_done(chan, scr); } status &= ~STM32_DMA_TCI; @@ -824,13 +824,11 @@ return -EPERM; spin_lock_irqsave(&chan->vchan.lock, flags); + ret = stm32_dma_disable_chan(chan); - /* - * A transfer complete flag is set to indicate the end of transfer due to the stream - * interruption, so wait for interrupt - */ if (!ret) - chan->status = DMA_PAUSED; + stm32_dma_handle_chan_paused(chan); + spin_unlock_irqrestore(&chan->vchan.lock, flags); return ret; --- linux-5.19.0.orig/drivers/dma/tegra186-gpc-dma.c +++ linux-5.19.0/drivers/dma/tegra186-gpc-dma.c @@ -157,8 +157,8 @@ * If any burst is in flight and DMA paused then this is the time to complete * on-flight burst and update DMA status register. */ -#define TEGRA_GPCDMA_BURST_COMPLETE_TIME 20 -#define TEGRA_GPCDMA_BURST_COMPLETION_TIMEOUT 100 +#define TEGRA_GPCDMA_BURST_COMPLETE_TIME 10 +#define TEGRA_GPCDMA_BURST_COMPLETION_TIMEOUT 5000 /* 5 msec */ /* Channel base address offset from GPCDMA base address */ #define TEGRA_GPCDMA_CHANNEL_BASE_ADD_OFFSET 0x20000 @@ -432,6 +432,17 @@ return 0; } +static inline int tegra_dma_pause_noerr(struct tegra_dma_channel *tdc) +{ + /* Return 0 irrespective of PAUSE status. + * This is useful to recover channels that can exit out of flush + * state when the channel is disabled. + */ + + tegra_dma_pause(tdc); + return 0; +} + static void tegra_dma_disable(struct tegra_dma_channel *tdc) { u32 csr, status; @@ -1292,6 +1303,14 @@ .terminate = tegra_dma_pause, }; +static const struct tegra_dma_chip_data tegra234_dma_chip_data = { + .nr_channels = 31, + .channel_reg_size = SZ_64K, + .max_dma_count = SZ_1G, + .hw_support_pause = true, + .terminate = tegra_dma_pause_noerr, +}; + static const struct of_device_id tegra_dma_of_match[] = { { .compatible = "nvidia,tegra186-gpcdma", @@ -1300,6 +1319,9 @@ .compatible = "nvidia,tegra194-gpcdma", .data = &tegra194_dma_chip_data, }, { + .compatible = "nvidia,tegra234-gpcdma", + .data = &tegra234_dma_chip_data, + }, { }, }; MODULE_DEVICE_TABLE(of, tegra_dma_of_match); --- linux-5.19.0.orig/drivers/dma/ti/k3-udma-glue.c +++ linux-5.19.0/drivers/dma/ti/k3-udma-glue.c @@ -299,6 +299,7 @@ ret = device_register(&tx_chn->common.chan_dev); if (ret) { dev_err(dev, "Channel Device registration failed %d\n", ret); + put_device(&tx_chn->common.chan_dev); tx_chn->common.chan_dev.parent = NULL; goto err; } @@ -917,6 +918,7 @@ ret = device_register(&rx_chn->common.chan_dev); if (ret) { dev_err(dev, "Channel Device registration failed %d\n", ret); + put_device(&rx_chn->common.chan_dev); rx_chn->common.chan_dev.parent = NULL; goto err; } @@ -1048,6 +1050,7 @@ ret = device_register(&rx_chn->common.chan_dev); if (ret) { dev_err(dev, "Channel Device registration failed %d\n", ret); + put_device(&rx_chn->common.chan_dev); rx_chn->common.chan_dev.parent = NULL; goto err; } --- linux-5.19.0.orig/drivers/dma/ti/k3-udma-private.c +++ linux-5.19.0/drivers/dma/ti/k3-udma-private.c @@ -31,14 +31,14 @@ } pdev = of_find_device_by_node(udma_node); + if (np != udma_node) + of_node_put(udma_node); + if (!pdev) { pr_debug("UDMA device not found\n"); return ERR_PTR(-EPROBE_DEFER); } - if (np != udma_node) - of_node_put(udma_node); - ud = platform_get_drvdata(pdev); if (!ud) { pr_debug("UDMA has not been probed\n"); --- linux-5.19.0.orig/drivers/dma/ti/k3-udma.c +++ linux-5.19.0/drivers/dma/ti/k3-udma.c @@ -300,8 +300,6 @@ struct udma_tx_drain tx_drain; - u32 bcnt; /* number of bytes completed since the start of the channel */ - /* Channel configuration parameters */ struct udma_chan_config config; @@ -757,6 +755,20 @@ } } +static void udma_decrement_byte_counters(struct udma_chan *uc, u32 val) +{ + if (uc->desc->dir == DMA_DEV_TO_MEM) { + udma_rchanrt_write(uc, UDMA_CHAN_RT_BCNT_REG, val); + udma_rchanrt_write(uc, UDMA_CHAN_RT_SBCNT_REG, val); + udma_rchanrt_write(uc, UDMA_CHAN_RT_PEER_BCNT_REG, val); + } else { + udma_tchanrt_write(uc, UDMA_CHAN_RT_BCNT_REG, val); + udma_tchanrt_write(uc, UDMA_CHAN_RT_SBCNT_REG, val); + if (!uc->bchan) + udma_tchanrt_write(uc, UDMA_CHAN_RT_PEER_BCNT_REG, val); + } +} + static void udma_reset_counters(struct udma_chan *uc) { u32 val; @@ -790,8 +802,6 @@ val = udma_rchanrt_read(uc, UDMA_CHAN_RT_PEER_BCNT_REG); udma_rchanrt_write(uc, UDMA_CHAN_RT_PEER_BCNT_REG, val); } - - uc->bcnt = 0; } static int udma_reset_chan(struct udma_chan *uc, bool hard) @@ -1115,7 +1125,7 @@ if (uc->desc) { struct udma_desc *d = uc->desc; - uc->bcnt += d->residue; + udma_decrement_byte_counters(uc, d->residue); udma_start(uc); vchan_cookie_complete(&d->vd); break; @@ -1168,7 +1178,7 @@ vchan_cyclic_callback(&d->vd); } else { if (udma_is_desc_really_done(uc, d)) { - uc->bcnt += d->residue; + udma_decrement_byte_counters(uc, d->residue); udma_start(uc); vchan_cookie_complete(&d->vd); } else { @@ -1204,7 +1214,7 @@ vchan_cyclic_callback(&d->vd); } else { /* TODO: figure out the real amount of data */ - uc->bcnt += d->residue; + udma_decrement_byte_counters(uc, d->residue); udma_start(uc); vchan_cookie_complete(&d->vd); } @@ -3809,7 +3819,6 @@ bcnt = udma_tchanrt_read(uc, UDMA_CHAN_RT_BCNT_REG); } - bcnt -= uc->bcnt; if (bcnt && !(bcnt % uc->desc->residue)) residue = 0; else --- linux-5.19.0.orig/drivers/dma/xilinx/xilinx_dma.c +++ linux-5.19.0/drivers/dma/xilinx/xilinx_dma.c @@ -3160,9 +3160,10 @@ /* Request and map I/O memory */ xdev->regs = devm_platform_ioremap_resource(pdev, 0); - if (IS_ERR(xdev->regs)) - return PTR_ERR(xdev->regs); - + if (IS_ERR(xdev->regs)) { + err = PTR_ERR(xdev->regs); + goto disable_clks; + } /* Retrieve the DMA engine properties from the device tree */ xdev->max_buffer_len = GENMASK(XILINX_DMA_MAX_TRANS_LEN_MAX - 1, 0); xdev->s2mm_chan_id = xdev->dma_config->max_channels / 2; @@ -3190,7 +3191,7 @@ if (err < 0) { dev_err(xdev->dev, "missing xlnx,num-fstores property\n"); - return err; + goto disable_clks; } err = of_property_read_u32(node, "xlnx,flush-fsync", @@ -3210,7 +3211,11 @@ xdev->ext_addr = false; /* Set the dma mask bits */ - dma_set_mask_and_coherent(xdev->dev, DMA_BIT_MASK(addr_width)); + err = dma_set_mask_and_coherent(xdev->dev, DMA_BIT_MASK(addr_width)); + if (err < 0) { + dev_err(xdev->dev, "DMA mask error %d\n", err); + goto disable_clks; + } /* Initialize the DMA engine */ xdev->common.dev = &pdev->dev; @@ -3259,7 +3264,7 @@ for_each_child_of_node(node, child) { err = xilinx_dma_child_probe(xdev, child); if (err < 0) - goto disable_clks; + goto error; } if (xdev->dma_config->dmatype == XDMA_TYPE_VDMA) { @@ -3294,12 +3299,12 @@ return 0; -disable_clks: - xdma_disable_allclks(xdev); error: for (i = 0; i < xdev->dma_config->max_channels; i++) if (xdev->chan[i]) xilinx_dma_chan_remove(xdev->chan[i]); +disable_clks: + xdma_disable_allclks(xdev); return err; } --- linux-5.19.0.orig/drivers/edac/i10nm_base.c +++ linux-5.19.0/drivers/edac/i10nm_base.c @@ -198,11 +198,10 @@ if (unlikely(pci_enable_device(pdev) < 0)) { edac_dbg(2, "Failed to enable device %02x:%02x.%x\n", bus, dev, fun); + pci_dev_put(pdev); return NULL; } - pci_dev_get(pdev); - return pdev; } --- linux-5.19.0.orig/drivers/extcon/Kconfig +++ linux-5.19.0/drivers/extcon/Kconfig @@ -183,7 +183,7 @@ config EXTCON_USBC_TUSB320 tristate "TI TUSB320 USB-C extcon support" - depends on I2C + depends on I2C && TYPEC select REGMAP_I2C help Say Y here to enable support for USB Type C cable detection extcon --- linux-5.19.0.orig/drivers/extcon/extcon-usbc-tusb320.c +++ linux-5.19.0/drivers/extcon/extcon-usbc-tusb320.c @@ -6,6 +6,7 @@ * Author: Michael Auchter */ +#include #include #include #include @@ -13,6 +14,24 @@ #include #include #include +#include + +#define TUSB320_REG8 0x8 +#define TUSB320_REG8_CURRENT_MODE_ADVERTISE GENMASK(7, 6) +#define TUSB320_REG8_CURRENT_MODE_ADVERTISE_USB 0x0 +#define TUSB320_REG8_CURRENT_MODE_ADVERTISE_15A 0x1 +#define TUSB320_REG8_CURRENT_MODE_ADVERTISE_30A 0x2 +#define TUSB320_REG8_CURRENT_MODE_DETECT GENMASK(5, 4) +#define TUSB320_REG8_CURRENT_MODE_DETECT_DEF 0x0 +#define TUSB320_REG8_CURRENT_MODE_DETECT_MED 0x1 +#define TUSB320_REG8_CURRENT_MODE_DETECT_ACC 0x2 +#define TUSB320_REG8_CURRENT_MODE_DETECT_HI 0x3 +#define TUSB320_REG8_ACCESSORY_CONNECTED GENMASK(3, 2) +#define TUSB320_REG8_ACCESSORY_CONNECTED_NONE 0x0 +#define TUSB320_REG8_ACCESSORY_CONNECTED_AUDIO 0x4 +#define TUSB320_REG8_ACCESSORY_CONNECTED_ACC 0x5 +#define TUSB320_REG8_ACCESSORY_CONNECTED_DEBUG 0x6 +#define TUSB320_REG8_ACTIVE_CABLE_DETECTION BIT(0) #define TUSB320_REG9 0x9 #define TUSB320_REG9_ATTACHED_STATE_SHIFT 6 @@ -55,6 +74,10 @@ struct extcon_dev *edev; struct tusb320_ops *ops; enum tusb320_attached_state state; + struct typec_port *port; + struct typec_capability cap; + enum typec_port_type port_type; + enum typec_pwr_opmode pwr_opmode; }; static const char * const tusb_attached_states[] = { @@ -184,19 +207,47 @@ .get_revision = tusb320l_get_revision, }; -static irqreturn_t tusb320_irq_handler(int irq, void *dev_id) +static int tusb320_set_adv_pwr_mode(struct tusb320_priv *priv) { - struct tusb320_priv *priv = dev_id; - int state, polarity; - unsigned reg; + u8 mode; - if (regmap_read(priv->regmap, TUSB320_REG9, ®)) { - dev_err(priv->dev, "error during i2c read!\n"); - return IRQ_NONE; - } + if (priv->pwr_opmode == TYPEC_PWR_MODE_USB) + mode = TUSB320_REG8_CURRENT_MODE_ADVERTISE_USB; + else if (priv->pwr_opmode == TYPEC_PWR_MODE_1_5A) + mode = TUSB320_REG8_CURRENT_MODE_ADVERTISE_15A; + else if (priv->pwr_opmode == TYPEC_PWR_MODE_3_0A) + mode = TUSB320_REG8_CURRENT_MODE_ADVERTISE_30A; + else /* No other mode is supported. */ + return -EINVAL; - if (!(reg & TUSB320_REG9_INTERRUPT_STATUS)) - return IRQ_NONE; + return regmap_write_bits(priv->regmap, TUSB320_REG8, + TUSB320_REG8_CURRENT_MODE_ADVERTISE, + FIELD_PREP(TUSB320_REG8_CURRENT_MODE_ADVERTISE, + mode)); +} + +static int tusb320_port_type_set(struct typec_port *port, + enum typec_port_type type) +{ + struct tusb320_priv *priv = typec_get_drvdata(port); + + if (type == TYPEC_PORT_SRC) + return priv->ops->set_mode(priv, TUSB320_MODE_DFP); + else if (type == TYPEC_PORT_SNK) + return priv->ops->set_mode(priv, TUSB320_MODE_UFP); + else if (type == TYPEC_PORT_DRP) + return priv->ops->set_mode(priv, TUSB320_MODE_DRP); + else + return priv->ops->set_mode(priv, TUSB320_MODE_PORT); +} + +static const struct typec_operations tusb320_typec_ops = { + .port_type_set = tusb320_port_type_set, +}; + +static void tusb320_extcon_irq_handler(struct tusb320_priv *priv, u8 reg) +{ + int state, polarity; state = (reg >> TUSB320_REG9_ATTACHED_STATE_SHIFT) & TUSB320_REG9_ATTACHED_STATE_MASK; @@ -219,19 +270,166 @@ extcon_sync(priv->edev, EXTCON_USB_HOST); priv->state = state; +} + +static void tusb320_typec_irq_handler(struct tusb320_priv *priv, u8 reg9) +{ + struct typec_port *port = priv->port; + struct device *dev = priv->dev; + u8 mode, role, state; + int ret, reg8; + bool ori; + + ori = reg9 & TUSB320_REG9_CABLE_DIRECTION; + typec_set_orientation(port, ori ? TYPEC_ORIENTATION_REVERSE : + TYPEC_ORIENTATION_NORMAL); + + state = (reg9 >> TUSB320_REG9_ATTACHED_STATE_SHIFT) & + TUSB320_REG9_ATTACHED_STATE_MASK; + if (state == TUSB320_ATTACHED_STATE_DFP) + role = TYPEC_SOURCE; + else + role = TYPEC_SINK; + + typec_set_vconn_role(port, role); + typec_set_pwr_role(port, role); + typec_set_data_role(port, role == TYPEC_SOURCE ? + TYPEC_HOST : TYPEC_DEVICE); + + ret = regmap_read(priv->regmap, TUSB320_REG8, ®8); + if (ret) { + dev_err(dev, "error during reg8 i2c read, ret=%d!\n", ret); + return; + } + + mode = FIELD_GET(TUSB320_REG8_CURRENT_MODE_DETECT, reg8); + if (mode == TUSB320_REG8_CURRENT_MODE_DETECT_DEF) + typec_set_pwr_opmode(port, TYPEC_PWR_MODE_USB); + else if (mode == TUSB320_REG8_CURRENT_MODE_DETECT_MED) + typec_set_pwr_opmode(port, TYPEC_PWR_MODE_1_5A); + else if (mode == TUSB320_REG8_CURRENT_MODE_DETECT_HI) + typec_set_pwr_opmode(port, TYPEC_PWR_MODE_3_0A); + else /* Charge through accessory */ + typec_set_pwr_opmode(port, TYPEC_PWR_MODE_USB); +} + +static irqreturn_t tusb320_state_update_handler(struct tusb320_priv *priv, + bool force_update) +{ + unsigned int reg; + + if (regmap_read(priv->regmap, TUSB320_REG9, ®)) { + dev_err(priv->dev, "error during i2c read!\n"); + return IRQ_NONE; + } + + if (!force_update && !(reg & TUSB320_REG9_INTERRUPT_STATUS)) + return IRQ_NONE; + + tusb320_extcon_irq_handler(priv, reg); + + /* + * Type-C support is optional. Only call the Type-C handler if a + * port had been registered previously. + */ + if (priv->port) + tusb320_typec_irq_handler(priv, reg); regmap_write(priv->regmap, TUSB320_REG9, reg); return IRQ_HANDLED; } +static irqreturn_t tusb320_irq_handler(int irq, void *dev_id) +{ + struct tusb320_priv *priv = dev_id; + + return tusb320_state_update_handler(priv, false); +} + static const struct regmap_config tusb320_regmap_config = { .reg_bits = 8, .val_bits = 8, }; -static int tusb320_extcon_probe(struct i2c_client *client, - const struct i2c_device_id *id) +static int tusb320_extcon_probe(struct tusb320_priv *priv) +{ + int ret; + + priv->edev = devm_extcon_dev_allocate(priv->dev, tusb320_extcon_cable); + if (IS_ERR(priv->edev)) { + dev_err(priv->dev, "failed to allocate extcon device\n"); + return PTR_ERR(priv->edev); + } + + ret = devm_extcon_dev_register(priv->dev, priv->edev); + if (ret < 0) { + dev_err(priv->dev, "failed to register extcon device\n"); + return ret; + } + + extcon_set_property_capability(priv->edev, EXTCON_USB, + EXTCON_PROP_USB_TYPEC_POLARITY); + extcon_set_property_capability(priv->edev, EXTCON_USB_HOST, + EXTCON_PROP_USB_TYPEC_POLARITY); + + return 0; +} + +static int tusb320_typec_probe(struct i2c_client *client, + struct tusb320_priv *priv) +{ + struct fwnode_handle *connector; + const char *cap_str; + int ret; + + /* The Type-C connector is optional, for backward compatibility. */ + connector = device_get_named_child_node(&client->dev, "connector"); + if (!connector) + return 0; + + /* Type-C connector found. */ + ret = typec_get_fw_cap(&priv->cap, connector); + if (ret) + return ret; + + priv->port_type = priv->cap.type; + + /* This goes into register 0x8 field CURRENT_MODE_ADVERTISE */ + ret = fwnode_property_read_string(connector, "typec-power-opmode", &cap_str); + if (ret) + return ret; + + ret = typec_find_pwr_opmode(cap_str); + if (ret < 0) + return ret; + if (ret == TYPEC_PWR_MODE_PD) + return -EINVAL; + + priv->pwr_opmode = ret; + + /* Initialize the hardware with the devicetree settings. */ + ret = tusb320_set_adv_pwr_mode(priv); + if (ret) + return ret; + + priv->cap.revision = USB_TYPEC_REV_1_1; + priv->cap.accessory[0] = TYPEC_ACCESSORY_AUDIO; + priv->cap.accessory[1] = TYPEC_ACCESSORY_DEBUG; + priv->cap.orientation_aware = true; + priv->cap.driver_data = priv; + priv->cap.ops = &tusb320_typec_ops; + priv->cap.fwnode = connector; + + priv->port = typec_register_port(&client->dev, &priv->cap); + if (IS_ERR(priv->port)) + return PTR_ERR(priv->port); + + return 0; +} + +static int tusb320_probe(struct i2c_client *client, + const struct i2c_device_id *id) { struct tusb320_priv *priv; const void *match_data; @@ -257,12 +455,6 @@ priv->ops = (struct tusb320_ops*)match_data; - priv->edev = devm_extcon_dev_allocate(priv->dev, tusb320_extcon_cable); - if (IS_ERR(priv->edev)) { - dev_err(priv->dev, "failed to allocate extcon device\n"); - return PTR_ERR(priv->edev); - } - if (priv->ops->get_revision) { ret = priv->ops->get_revision(priv, &revision); if (ret) @@ -272,19 +464,16 @@ dev_info(priv->dev, "chip revision %d\n", revision); } - ret = devm_extcon_dev_register(priv->dev, priv->edev); - if (ret < 0) { - dev_err(priv->dev, "failed to register extcon device\n"); + ret = tusb320_extcon_probe(priv); + if (ret) return ret; - } - extcon_set_property_capability(priv->edev, EXTCON_USB, - EXTCON_PROP_USB_TYPEC_POLARITY); - extcon_set_property_capability(priv->edev, EXTCON_USB_HOST, - EXTCON_PROP_USB_TYPEC_POLARITY); + ret = tusb320_typec_probe(client, priv); + if (ret) + return ret; /* update initial state */ - tusb320_irq_handler(client->irq, priv); + tusb320_state_update_handler(priv, true); /* Reset chip to its default state */ ret = tusb320_reset(priv); @@ -295,7 +484,7 @@ * State and polarity might change after a reset, so update * them again and make sure the interrupt status bit is cleared. */ - tusb320_irq_handler(client->irq, priv); + tusb320_state_update_handler(priv, true); ret = devm_request_threaded_irq(priv->dev, client->irq, NULL, tusb320_irq_handler, @@ -313,7 +502,7 @@ MODULE_DEVICE_TABLE(of, tusb320_extcon_dt_match); static struct i2c_driver tusb320_extcon_driver = { - .probe = tusb320_extcon_probe, + .probe = tusb320_probe, .driver = { .name = "extcon-tusb320", .of_match_table = tusb320_extcon_dt_match, --- linux-5.19.0.orig/drivers/firmware/arm_scmi/bus.c +++ linux-5.19.0/drivers/firmware/arm_scmi/bus.c @@ -216,9 +216,20 @@ device_unregister(&scmi_dev->dev); } +void scmi_device_link_add(struct device *consumer, struct device *supplier) +{ + struct device_link *link; + + link = device_link_add(consumer, supplier, DL_FLAG_AUTOREMOVE_CONSUMER); + + WARN_ON(!link); +} + void scmi_set_handle(struct scmi_device *scmi_dev) { scmi_dev->handle = scmi_handle_get(&scmi_dev->dev); + if (scmi_dev->handle) + scmi_device_link_add(&scmi_dev->dev, scmi_dev->handle->dev); } int scmi_protocol_register(const struct scmi_protocol *proto) --- linux-5.19.0.orig/drivers/firmware/arm_scmi/clock.c +++ linux-5.19.0/drivers/firmware/arm_scmi/clock.c @@ -450,9 +450,13 @@ static const struct scmi_clock_info * scmi_clock_info_get(const struct scmi_protocol_handle *ph, u32 clk_id) { + struct scmi_clock_info *clk; struct clock_info *ci = ph->get_priv(ph); - struct scmi_clock_info *clk = ci->clk + clk_id; + if (clk_id >= ci->num_clocks) + return NULL; + + clk = ci->clk + clk_id; if (!clk->name[0]) return NULL; --- linux-5.19.0.orig/drivers/firmware/arm_scmi/common.h +++ linux-5.19.0/drivers/firmware/arm_scmi/common.h @@ -97,6 +97,7 @@ struct scmi_revision_info * scmi_revision_area_get(const struct scmi_protocol_handle *ph); int scmi_handle_put(const struct scmi_handle *handle); +void scmi_device_link_add(struct device *consumer, struct device *supplier); struct scmi_handle *scmi_handle_get(struct device *dev); void scmi_set_handle(struct scmi_device *scmi_dev); void scmi_setup_protocol_implemented(const struct scmi_protocol_handle *ph, @@ -117,6 +118,7 @@ * * @dev: Reference to device in the SCMI hierarchy corresponding to this * channel + * @rx_timeout_ms: The configured RX timeout in milliseconds. * @handle: Pointer to SCMI entity handle * @no_completion_irq: Flag to indicate that this channel has no completion * interrupt mechanism for synchronous commands. @@ -126,6 +128,7 @@ */ struct scmi_chan_info { struct device *dev; + unsigned int rx_timeout_ms; struct scmi_handle *handle; bool no_completion_irq; void *transport_info; @@ -232,7 +235,7 @@ struct scmi_shared_mem; void shmem_tx_prepare(struct scmi_shared_mem __iomem *shmem, - struct scmi_xfer *xfer); + struct scmi_xfer *xfer, struct scmi_chan_info *cinfo); u32 shmem_read_header(struct scmi_shared_mem __iomem *shmem); void shmem_fetch_response(struct scmi_shared_mem __iomem *shmem, struct scmi_xfer *xfer); --- linux-5.19.0.orig/drivers/firmware/arm_scmi/driver.c +++ linux-5.19.0/drivers/firmware/arm_scmi/driver.c @@ -1783,6 +1783,7 @@ return -ENOMEM; cinfo->dev = dev; + cinfo->rx_timeout_ms = info->desc->max_rx_timeout_ms; ret = info->desc->ops->chan_setup(cinfo, info->dev, tx); if (ret) @@ -1814,8 +1815,12 @@ { int ret = scmi_chan_setup(info, dev, prot_id, true); - if (!ret) /* Rx is optional, hence no error check */ - scmi_chan_setup(info, dev, prot_id, false); + if (!ret) { + /* Rx is optional, report only memory errors */ + ret = scmi_chan_setup(info, dev, prot_id, false); + if (ret && ret != -ENOMEM) + ret = 0; + } return ret; } @@ -2025,10 +2030,16 @@ sdev = scmi_get_protocol_device(child, info, id_table->protocol_id, id_table->name); - /* Set handle if not already set: device existed */ - if (sdev && !sdev->handle) - sdev->handle = - scmi_handle_get_from_info_unlocked(info); + if (sdev) { + /* Set handle if not already set: device existed */ + if (!sdev->handle) + sdev->handle = + scmi_handle_get_from_info_unlocked(info); + /* Relink consumer and suppliers */ + if (sdev->handle) + scmi_device_link_add(&sdev->dev, + sdev->handle->dev); + } } else { dev_err(info->dev, "Failed. SCMI protocol %d not active.\n", @@ -2226,20 +2237,17 @@ static int scmi_remove(struct platform_device *pdev) { - int ret = 0, id; + int ret, id; struct scmi_info *info = platform_get_drvdata(pdev); struct device_node *child; mutex_lock(&scmi_list_mutex); if (info->users) - ret = -EBUSY; - else - list_del(&info->node); + dev_warn(&pdev->dev, + "Still active SCMI users will be forcibly unbound.\n"); + list_del(&info->node); mutex_unlock(&scmi_list_mutex); - if (ret) - return ret; - scmi_notification_exit(&info->handle); mutex_lock(&info->protocols_mtx); @@ -2251,7 +2259,11 @@ idr_destroy(&info->active_protocols); /* Safe to free channels since no more users */ - return scmi_cleanup_txrx_channels(info); + ret = scmi_cleanup_txrx_channels(info); + if (ret) + dev_warn(&pdev->dev, "Failed to cleanup SCMI channels.\n"); + + return 0; } static ssize_t protocol_version_show(struct device *dev, @@ -2322,6 +2334,7 @@ static struct platform_driver scmi_driver = { .driver = { .name = "arm-scmi", + .suppress_bind_attrs = true, .of_match_table = scmi_of_match, .dev_groups = versions_groups, }, --- linux-5.19.0.orig/drivers/firmware/arm_scmi/mailbox.c +++ linux-5.19.0/drivers/firmware/arm_scmi/mailbox.c @@ -36,7 +36,7 @@ { struct scmi_mailbox *smbox = client_to_scmi_mailbox(cl); - shmem_tx_prepare(smbox->shmem, m); + shmem_tx_prepare(smbox->shmem, m, smbox->cinfo); } static void rx_callback(struct mbox_client *cl, void *m) --- linux-5.19.0.orig/drivers/firmware/arm_scmi/optee.c +++ linux-5.19.0/drivers/firmware/arm_scmi/optee.c @@ -497,7 +497,7 @@ msg_tx_prepare(channel->req.msg, xfer); ret = invoke_process_msg_channel(channel, msg_command_size(xfer)); } else { - shmem_tx_prepare(channel->req.shmem, xfer); + shmem_tx_prepare(channel->req.shmem, xfer, cinfo); ret = invoke_process_smt_channel(channel); } --- linux-5.19.0.orig/drivers/firmware/arm_scmi/reset.c +++ linux-5.19.0/drivers/firmware/arm_scmi/reset.c @@ -166,9 +166,13 @@ struct scmi_xfer *t; struct scmi_msg_reset_domain_reset *dom; struct scmi_reset_info *pi = ph->get_priv(ph); - struct reset_dom_info *rdom = pi->dom_info + domain; + struct reset_dom_info *rdom; - if (rdom->async_reset) + if (domain >= pi->num_domains) + return -EINVAL; + + rdom = pi->dom_info + domain; + if (rdom->async_reset && flags & AUTONOMOUS_RESET) flags |= ASYNCHRONOUS_RESET; ret = ph->xops->xfer_get_init(ph, RESET, sizeof(*dom), 0, &t); @@ -180,7 +184,7 @@ dom->flags = cpu_to_le32(flags); dom->reset_state = cpu_to_le32(state); - if (rdom->async_reset) + if (flags & ASYNCHRONOUS_RESET) ret = ph->xops->do_xfer_with_response(ph, t); else ret = ph->xops->do_xfer(ph, t); --- linux-5.19.0.orig/drivers/firmware/arm_scmi/scmi_pm_domain.c +++ linux-5.19.0/drivers/firmware/arm_scmi/scmi_pm_domain.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #include @@ -53,27 +52,6 @@ return scmi_pd_power(domain, false); } -static int scmi_pd_attach_dev(struct generic_pm_domain *pd, struct device *dev) -{ - int ret; - - ret = pm_clk_create(dev); - if (ret) - return ret; - - ret = of_pm_clk_add_clks(dev); - if (ret >= 0) - return 0; - - pm_clk_destroy(dev); - return ret; -} - -static void scmi_pd_detach_dev(struct generic_pm_domain *pd, struct device *dev) -{ - pm_clk_destroy(dev); -} - static int scmi_pm_domain_probe(struct scmi_device *sdev) { int num_domains, i; @@ -124,10 +102,6 @@ scmi_pd->genpd.name = scmi_pd->name; scmi_pd->genpd.power_off = scmi_pd_power_off; scmi_pd->genpd.power_on = scmi_pd_power_on; - scmi_pd->genpd.attach_dev = scmi_pd_attach_dev; - scmi_pd->genpd.detach_dev = scmi_pd_detach_dev; - scmi_pd->genpd.flags = GENPD_FLAG_PM_CLK | - GENPD_FLAG_ACTIVE_WAKEUP; pm_genpd_init(&scmi_pd->genpd, NULL, state == SCMI_POWER_STATE_GENERIC_OFF); @@ -138,9 +112,28 @@ scmi_pd_data->domains = domains; scmi_pd_data->num_domains = num_domains; + dev_set_drvdata(dev, scmi_pd_data); + return of_genpd_add_provider_onecell(np, scmi_pd_data); } +static void scmi_pm_domain_remove(struct scmi_device *sdev) +{ + int i; + struct genpd_onecell_data *scmi_pd_data; + struct device *dev = &sdev->dev; + struct device_node *np = dev->of_node; + + of_genpd_del_provider(np); + + scmi_pd_data = dev_get_drvdata(dev); + for (i = 0; i < scmi_pd_data->num_domains; i++) { + if (!scmi_pd_data->domains[i]) + continue; + pm_genpd_remove(scmi_pd_data->domains[i]); + } +} + static const struct scmi_device_id scmi_id_table[] = { { SCMI_PROTOCOL_POWER, "genpd" }, { }, @@ -150,6 +143,7 @@ static struct scmi_driver scmi_power_domain_driver = { .name = "scmi-power-domain", .probe = scmi_pm_domain_probe, + .remove = scmi_pm_domain_remove, .id_table = scmi_id_table, }; module_scmi_driver(scmi_power_domain_driver); --- linux-5.19.0.orig/drivers/firmware/arm_scmi/sensors.c +++ linux-5.19.0/drivers/firmware/arm_scmi/sensors.c @@ -762,6 +762,10 @@ { int ret; struct scmi_xfer *t; + struct sensors_info *si = ph->get_priv(ph); + + if (sensor_id >= si->num_sensors) + return -EINVAL; ret = ph->xops->xfer_get_init(ph, SENSOR_CONFIG_GET, sizeof(__le32), sizeof(__le32), &t); @@ -771,7 +775,6 @@ put_unaligned_le32(sensor_id, t->tx.buf); ret = ph->xops->do_xfer(ph, t); if (!ret) { - struct sensors_info *si = ph->get_priv(ph); struct scmi_sensor_info *s = si->sensors + sensor_id; *sensor_config = get_unaligned_le64(t->rx.buf); @@ -788,6 +791,10 @@ int ret; struct scmi_xfer *t; struct scmi_msg_sensor_config_set *msg; + struct sensors_info *si = ph->get_priv(ph); + + if (sensor_id >= si->num_sensors) + return -EINVAL; ret = ph->xops->xfer_get_init(ph, SENSOR_CONFIG_SET, sizeof(*msg), 0, &t); @@ -800,7 +807,6 @@ ret = ph->xops->do_xfer(ph, t); if (!ret) { - struct sensors_info *si = ph->get_priv(ph); struct scmi_sensor_info *s = si->sensors + sensor_id; s->sensor_config = sensor_config; @@ -831,8 +837,11 @@ int ret; struct scmi_xfer *t; struct scmi_msg_sensor_reading_get *sensor; + struct scmi_sensor_info *s; struct sensors_info *si = ph->get_priv(ph); - struct scmi_sensor_info *s = si->sensors + sensor_id; + + if (sensor_id >= si->num_sensors) + return -EINVAL; ret = ph->xops->xfer_get_init(ph, SENSOR_READING_GET, sizeof(*sensor), 0, &t); @@ -841,6 +850,7 @@ sensor = t->tx.buf; sensor->id = cpu_to_le32(sensor_id); + s = si->sensors + sensor_id; if (s->async) { sensor->flags = cpu_to_le32(SENSOR_READ_ASYNC); ret = ph->xops->do_xfer_with_response(ph, t); @@ -895,9 +905,13 @@ int ret; struct scmi_xfer *t; struct scmi_msg_sensor_reading_get *sensor; + struct scmi_sensor_info *s; struct sensors_info *si = ph->get_priv(ph); - struct scmi_sensor_info *s = si->sensors + sensor_id; + if (sensor_id >= si->num_sensors) + return -EINVAL; + + s = si->sensors + sensor_id; if (!count || !readings || (!s->num_axis && count > 1) || (s->num_axis && count > s->num_axis)) return -EINVAL; @@ -948,6 +962,9 @@ { struct sensors_info *si = ph->get_priv(ph); + if (sensor_id >= si->num_sensors) + return NULL; + return si->sensors + sensor_id; } --- linux-5.19.0.orig/drivers/firmware/arm_scmi/shmem.c +++ linux-5.19.0/drivers/firmware/arm_scmi/shmem.c @@ -5,10 +5,13 @@ * Copyright (C) 2019 ARM Ltd. */ +#include #include #include #include +#include + #include "common.h" /* @@ -30,16 +33,36 @@ }; void shmem_tx_prepare(struct scmi_shared_mem __iomem *shmem, - struct scmi_xfer *xfer) + struct scmi_xfer *xfer, struct scmi_chan_info *cinfo) { + ktime_t stop; + /* * Ideally channel must be free by now unless OS timeout last * request and platform continued to process the same, wait * until it releases the shared memory, otherwise we may endup - * overwriting its response with new message payload or vice-versa + * overwriting its response with new message payload or vice-versa. + * Giving up anyway after twice the expected channel timeout so as + * not to bail-out on intermittent issues where the platform is + * occasionally a bit slower to answer. + * + * Note that after a timeout is detected we bail-out and carry on but + * the transport functionality is probably permanently compromised: + * this is just to ease debugging and avoid complete hangs on boot + * due to a misbehaving SCMI firmware. */ - spin_until_cond(ioread32(&shmem->channel_status) & - SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE); + stop = ktime_add_ms(ktime_get(), 2 * cinfo->rx_timeout_ms); + spin_until_cond((ioread32(&shmem->channel_status) & + SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE) || + ktime_after(ktime_get(), stop)); + if (!(ioread32(&shmem->channel_status) & + SCMI_SHMEM_CHAN_STAT_CHANNEL_FREE)) { + WARN_ON_ONCE(1); + dev_err(cinfo->dev, + "Timeout waiting for a free TX channel !\n"); + return; + } + /* Mark channel busy + clear error */ iowrite32(0x0, &shmem->channel_status); iowrite32(xfer->hdr.poll_completion ? 0 : SCMI_SHMEM_FLAG_INTR_ENABLED, --- linux-5.19.0.orig/drivers/firmware/arm_scmi/smc.c +++ linux-5.19.0/drivers/firmware/arm_scmi/smc.c @@ -188,7 +188,7 @@ */ smc_channel_lock_acquire(scmi_info, xfer); - shmem_tx_prepare(scmi_info->shmem, xfer); + shmem_tx_prepare(scmi_info->shmem, xfer, cinfo); arm_smccc_1_1_invoke(scmi_info->func_id, 0, 0, 0, 0, 0, 0, 0, &res); --- linux-5.19.0.orig/drivers/firmware/arm_scmi/virtio.c +++ linux-5.19.0/drivers/firmware/arm_scmi/virtio.c @@ -148,7 +148,6 @@ { unsigned long flags; DECLARE_COMPLETION_ONSTACK(vioch_shutdown_done); - void *deferred_wq = NULL; /* * Prepare to wait for the last release if not already released @@ -162,16 +161,11 @@ vioch->shutdown_done = &vioch_shutdown_done; virtio_break_device(vioch->vqueue->vdev); - if (!vioch->is_rx && vioch->deferred_tx_wq) { - deferred_wq = vioch->deferred_tx_wq; + if (!vioch->is_rx && vioch->deferred_tx_wq) /* Cannot be kicked anymore after this...*/ vioch->deferred_tx_wq = NULL; - } spin_unlock_irqrestore(&vioch->lock, flags); - if (deferred_wq) - destroy_workqueue(deferred_wq); - scmi_vio_channel_release(vioch); /* Let any possibly concurrent RX path release the channel */ @@ -416,6 +410,11 @@ return vioch && !vioch->cinfo; } +static void scmi_destroy_tx_workqueue(void *deferred_tx_wq) +{ + destroy_workqueue(deferred_tx_wq); +} + static int virtio_chan_setup(struct scmi_chan_info *cinfo, struct device *dev, bool tx) { @@ -430,6 +429,8 @@ /* Setup a deferred worker for polling. */ if (tx && !vioch->deferred_tx_wq) { + int ret; + vioch->deferred_tx_wq = alloc_workqueue(dev_name(&scmi_vdev->dev), WQ_UNBOUND | WQ_FREEZABLE | WQ_SYSFS, @@ -437,6 +438,11 @@ if (!vioch->deferred_tx_wq) return -ENOMEM; + ret = devm_add_action_or_reset(dev, scmi_destroy_tx_workqueue, + vioch->deferred_tx_wq); + if (ret) + return ret; + INIT_WORK(&vioch->deferred_tx_work, scmi_vio_deferred_tx_worker); } @@ -444,12 +450,12 @@ for (i = 0; i < vioch->max_msg; i++) { struct scmi_vio_msg *msg; - msg = devm_kzalloc(cinfo->dev, sizeof(*msg), GFP_KERNEL); + msg = devm_kzalloc(dev, sizeof(*msg), GFP_KERNEL); if (!msg) return -ENOMEM; if (tx) { - msg->request = devm_kzalloc(cinfo->dev, + msg->request = devm_kzalloc(dev, VIRTIO_SCMI_MAX_PDU_SIZE, GFP_KERNEL); if (!msg->request) @@ -458,7 +464,7 @@ refcount_set(&msg->users, 1); } - msg->input = devm_kzalloc(cinfo->dev, VIRTIO_SCMI_MAX_PDU_SIZE, + msg->input = devm_kzalloc(dev, VIRTIO_SCMI_MAX_PDU_SIZE, GFP_KERNEL); if (!msg->input) return -ENOMEM; --- linux-5.19.0.orig/drivers/firmware/arm_scpi.c +++ linux-5.19.0/drivers/firmware/arm_scpi.c @@ -815,7 +815,7 @@ info->firmware_version = le32_to_cpu(caps.platform_version); } /* Ignore error if not implemented */ - if (scpi_info->is_legacy && ret == -EOPNOTSUPP) + if (info->is_legacy && ret == -EOPNOTSUPP) return 0; return ret; @@ -913,13 +913,14 @@ struct resource res; struct device *dev = &pdev->dev; struct device_node *np = dev->of_node; + struct scpi_drvinfo *scpi_drvinfo; - scpi_info = devm_kzalloc(dev, sizeof(*scpi_info), GFP_KERNEL); - if (!scpi_info) + scpi_drvinfo = devm_kzalloc(dev, sizeof(*scpi_drvinfo), GFP_KERNEL); + if (!scpi_drvinfo) return -ENOMEM; if (of_match_device(legacy_scpi_of_match, &pdev->dev)) - scpi_info->is_legacy = true; + scpi_drvinfo->is_legacy = true; count = of_count_phandle_with_args(np, "mboxes", "#mbox-cells"); if (count < 0) { @@ -927,19 +928,19 @@ return -ENODEV; } - scpi_info->channels = devm_kcalloc(dev, count, sizeof(struct scpi_chan), - GFP_KERNEL); - if (!scpi_info->channels) + scpi_drvinfo->channels = + devm_kcalloc(dev, count, sizeof(struct scpi_chan), GFP_KERNEL); + if (!scpi_drvinfo->channels) return -ENOMEM; - ret = devm_add_action(dev, scpi_free_channels, scpi_info); + ret = devm_add_action(dev, scpi_free_channels, scpi_drvinfo); if (ret) return ret; - for (; scpi_info->num_chans < count; scpi_info->num_chans++) { + for (; scpi_drvinfo->num_chans < count; scpi_drvinfo->num_chans++) { resource_size_t size; - int idx = scpi_info->num_chans; - struct scpi_chan *pchan = scpi_info->channels + idx; + int idx = scpi_drvinfo->num_chans; + struct scpi_chan *pchan = scpi_drvinfo->channels + idx; struct mbox_client *cl = &pchan->cl; struct device_node *shmem = of_parse_phandle(np, "shmem", idx); @@ -986,45 +987,53 @@ return ret; } - scpi_info->commands = scpi_std_commands; + scpi_drvinfo->commands = scpi_std_commands; - platform_set_drvdata(pdev, scpi_info); + platform_set_drvdata(pdev, scpi_drvinfo); - if (scpi_info->is_legacy) { + if (scpi_drvinfo->is_legacy) { /* Replace with legacy variants */ scpi_ops.clk_set_val = legacy_scpi_clk_set_val; - scpi_info->commands = scpi_legacy_commands; + scpi_drvinfo->commands = scpi_legacy_commands; /* Fill priority bitmap */ for (idx = 0; idx < ARRAY_SIZE(legacy_hpriority_cmds); idx++) set_bit(legacy_hpriority_cmds[idx], - scpi_info->cmd_priority); + scpi_drvinfo->cmd_priority); } - ret = scpi_init_versions(scpi_info); + scpi_info = scpi_drvinfo; + + ret = scpi_init_versions(scpi_drvinfo); if (ret) { dev_err(dev, "incorrect or no SCP firmware found\n"); + scpi_info = NULL; return ret; } - if (scpi_info->is_legacy && !scpi_info->protocol_version && - !scpi_info->firmware_version) + if (scpi_drvinfo->is_legacy && !scpi_drvinfo->protocol_version && + !scpi_drvinfo->firmware_version) dev_info(dev, "SCP Protocol legacy pre-1.0 firmware\n"); else dev_info(dev, "SCP Protocol %lu.%lu Firmware %lu.%lu.%lu version\n", FIELD_GET(PROTO_REV_MAJOR_MASK, - scpi_info->protocol_version), + scpi_drvinfo->protocol_version), FIELD_GET(PROTO_REV_MINOR_MASK, - scpi_info->protocol_version), + scpi_drvinfo->protocol_version), FIELD_GET(FW_REV_MAJOR_MASK, - scpi_info->firmware_version), + scpi_drvinfo->firmware_version), FIELD_GET(FW_REV_MINOR_MASK, - scpi_info->firmware_version), + scpi_drvinfo->firmware_version), FIELD_GET(FW_REV_PATCH_MASK, - scpi_info->firmware_version)); - scpi_info->scpi_ops = &scpi_ops; + scpi_drvinfo->firmware_version)); + + scpi_drvinfo->scpi_ops = &scpi_ops; - return devm_of_platform_populate(dev); + ret = devm_of_platform_populate(dev); + if (ret) + scpi_info = NULL; + + return ret; } static const struct of_device_id scpi_of_match[] = { --- linux-5.19.0.orig/drivers/firmware/efi/Makefile +++ linux-5.19.0/drivers/firmware/efi/Makefile @@ -28,6 +28,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 obj-$(CONFIG_EFI_EMBEDDED_FIRMWARE) += embedded-firmware.o --- linux-5.19.0.orig/drivers/firmware/efi/capsule-loader.c +++ linux-5.19.0/drivers/firmware/efi/capsule-loader.c @@ -243,29 +243,6 @@ } /** - * efi_capsule_flush - called by file close or file flush - * @file: file pointer - * @id: not used - * - * If a capsule is being partially uploaded then calling this function - * will be treated as upload termination and will free those completed - * buffer pages and -ECANCELED will be returned. - **/ -static int efi_capsule_flush(struct file *file, fl_owner_t id) -{ - int ret = 0; - struct capsule_info *cap_info = file->private_data; - - if (cap_info->index > 0) { - pr_err("capsule upload not complete\n"); - efi_free_all_buff_pages(cap_info); - ret = -ECANCELED; - } - - return ret; -} - -/** * efi_capsule_release - called by file close * @inode: not used * @file: file pointer @@ -277,6 +254,13 @@ { struct capsule_info *cap_info = file->private_data; + if (cap_info->index > 0 && + (cap_info->header.headersize == 0 || + cap_info->count < cap_info->total_size)) { + pr_err("capsule upload not complete\n"); + efi_free_all_buff_pages(cap_info); + } + kfree(cap_info->pages); kfree(cap_info->phys); kfree(file->private_data); @@ -324,7 +308,6 @@ .owner = THIS_MODULE, .open = efi_capsule_open, .write = efi_capsule_write, - .flush = efi_capsule_flush, .release = efi_capsule_release, .llseek = no_llseek, }; --- linux-5.19.0.orig/drivers/firmware/efi/efi-init.c +++ linux-5.19.0/drivers/firmware/efi/efi-init.c @@ -19,6 +19,7 @@ #include #include #include +#include #include @@ -234,6 +235,13 @@ return; } + efi_set_secure_boot(efi_get__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(); /* * For memblock manipulation, the cap should come after the memblock_add(). --- linux-5.19.0.orig/drivers/firmware/efi/efi.c +++ linux-5.19.0/drivers/firmware/efi/efi.c @@ -31,6 +31,7 @@ #include #include #include +#include #include @@ -604,7 +605,7 @@ seed = early_memremap(efi_rng_seed, sizeof(*seed)); if (seed != NULL) { - size = READ_ONCE(seed->size); + size = min(seed->size, EFI_RANDOM_SEED_SIZE); early_memunmap(seed, sizeof(*seed)); } else { pr_err("Could not map UEFI random seed!\n"); @@ -862,40 +863,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); --- linux-5.19.0.orig/drivers/firmware/efi/fdtparams.c +++ linux-5.19.0/drivers/firmware/efi/fdtparams.c @@ -16,16 +16,24 @@ MMSIZE, DCSIZE, DCVERS, + SCBOOT, PARAMCOUNT }; +static u32 __secure_boot __initdata = efi_secureboot_mode_unset; +u32 __init efi_get__secure_boot(void) +{ + return __secure_boot; +} + static __initconst const char name[][22] = { [SYSTAB] = "System Table ", [MMBASE] = "MemMap Address ", [MMSIZE] = "MemMap Size ", [DCSIZE] = "MemMap Desc. Size ", [DCVERS] = "MemMap Desc. Version ", + [SCBOOT] = "Secure Boot Enabled ", }; static __initconst const struct { @@ -51,6 +59,7 @@ [MMSIZE] = "linux,uefi-mmap-size", [DCSIZE] = "linux,uefi-mmap-desc-size", [DCVERS] = "linux,uefi-mmap-desc-ver", + [SCBOOT] = "linux,uefi-secure-boot", } } }; @@ -93,6 +102,7 @@ [MMSIZE] = { &mm->size, sizeof(mm->size) }, [DCSIZE] = { &mm->desc_size, sizeof(mm->desc_size) }, [DCVERS] = { &mm->desc_version, sizeof(mm->desc_version) }, + [SCBOOT] = { &__secure_boot, sizeof(__secure_boot) }, }; BUILD_BUG_ON(ARRAY_SIZE(target) != ARRAY_SIZE(name)); --- linux-5.19.0.orig/drivers/firmware/efi/libstub/Makefile +++ linux-5.19.0/drivers/firmware/efi/libstub/Makefile @@ -37,6 +37,13 @@ $(call cc-option,-fno-addrsig) \ -D__DISABLE_EXPORTS +# +# struct randomization only makes sense for Linux internal types, which the EFI +# stub code never touches, so let's turn off struct randomization for the stub +# altogether +# +KBUILD_CFLAGS := $(filter-out $(RANDSTRUCT_CFLAGS), $(KBUILD_CFLAGS)) + # remove SCS flags from all objects in this directory KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_SCS), $(KBUILD_CFLAGS)) # disable LTO --- linux-5.19.0.orig/drivers/firmware/efi/libstub/efistub.h +++ linux-5.19.0/drivers/firmware/efi/libstub/efistub.h @@ -158,7 +158,7 @@ * the EFI memory map. Other related structures, e.g. x86 e820ext, need * to factor in this headroom requirement as well. */ -#define EFI_MMAP_NR_SLACK_SLOTS 8 +#define EFI_MMAP_NR_SLACK_SLOTS 16 struct efi_boot_memmap { efi_memory_desc_t **map; --- linux-5.19.0.orig/drivers/firmware/efi/libstub/fdt.c +++ linux-5.19.0/drivers/firmware/efi/libstub/fdt.c @@ -148,6 +148,12 @@ } } + fdt_val32 = cpu_to_fdt32(efi_get_secureboot()); + 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); @@ -280,14 +286,6 @@ goto fail; } - /* - * Now that we have done our final memory allocation (and free) - * we can get the memory map key needed for exit_boot_services(). - */ - status = efi_get_memory_map(&map); - if (status != EFI_SUCCESS) - goto fail_free_new_fdt; - status = update_fdt((void *)fdt_addr, fdt_size, (void *)*new_fdt_addr, MAX_FDT_SIZE, cmdline_ptr, initrd_addr, initrd_size); --- linux-5.19.0.orig/drivers/firmware/efi/libstub/random.c +++ linux-5.19.0/drivers/firmware/efi/libstub/random.c @@ -75,7 +75,12 @@ if (status != EFI_SUCCESS) return status; - status = efi_bs_call(allocate_pool, EFI_RUNTIME_SERVICES_DATA, + /* + * Use EFI_ACPI_RECLAIM_MEMORY here so that it is guaranteed that the + * allocation will survive a kexec reboot (although we refresh the seed + * beforehand) + */ + status = efi_bs_call(allocate_pool, EFI_ACPI_RECLAIM_MEMORY, sizeof(*seed) + EFI_RANDOM_SEED_SIZE, (void **)&seed); if (status != EFI_SUCCESS) --- linux-5.19.0.orig/drivers/firmware/efi/libstub/secureboot.c +++ linux-5.19.0/drivers/firmware/efi/libstub/secureboot.c @@ -14,7 +14,7 @@ /* SHIM variables */ static const efi_guid_t shim_guid = EFI_SHIM_LOCK_GUID; -static const efi_char16_t shim_MokSBState_name[] = L"MokSBState"; +static const efi_char16_t shim_MokSBState_name[] = L"MokSBStateRT"; static efi_status_t get_var(efi_char16_t *name, efi_guid_t *vendor, u32 *attr, unsigned long *data_size, void *data) @@ -43,8 +43,8 @@ /* * See if a user has put the shim into insecure mode. If so, and if the - * variable doesn't have the runtime attribute set, we might as well - * honor that. + * variable doesn't have the non-volatile attribute set, we might as + * well honor that. */ size = sizeof(moksbstate); status = get_efi_var(shim_MokSBState_name, &shim_guid, @@ -53,7 +53,7 @@ /* If it fails, we don't care why. Default to secure */ if (status != EFI_SUCCESS) goto secure_boot_enabled; - if (!(attr & EFI_VARIABLE_RUNTIME_ACCESS) && moksbstate == 1) + if (!(attr & EFI_VARIABLE_NON_VOLATILE) && moksbstate == 1) return efi_secureboot_mode_disabled; secure_boot_enabled: --- linux-5.19.0.orig/drivers/firmware/efi/libstub/x86-stub.c +++ linux-5.19.0/drivers/firmware/efi/libstub/x86-stub.c @@ -517,6 +517,13 @@ hdr->ramdisk_image = 0; hdr->ramdisk_size = 0; + /* + * Disregard any setup data that was provided by the bootloader: + * setup_data could be pointing anywhere, and we have no way of + * authenticating or validating the payload. + */ + hdr->setup_data = 0; + efi_stub_entry(handle, sys_table_arg, boot_params); /* not reached */ --- linux-5.19.0.orig/drivers/firmware/efi/secureboot.c +++ linux-5.19.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 +#include +#include + +/* + * 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_warn("Secure boot could not be determined (mode %u)\n", + mode); + break; + } + } +} --- linux-5.19.0.orig/drivers/firmware/efi/tpm.c +++ linux-5.19.0/drivers/firmware/efi/tpm.c @@ -97,7 +97,7 @@ goto out_calc; } - memblock_reserve((unsigned long)final_tbl, + memblock_reserve(efi.tpm_final_log, tbl_size + sizeof(*final_tbl)); efi_tpm_final_log_size = tbl_size; --- linux-5.19.0.orig/drivers/firmware/google/coreboot_table.c +++ linux-5.19.0/drivers/firmware/google/coreboot_table.c @@ -149,12 +149,8 @@ if (!ptr) return -ENOMEM; - ret = bus_register(&coreboot_bus_type); - if (!ret) { - ret = coreboot_table_populate(dev, ptr); - if (ret) - bus_unregister(&coreboot_bus_type); - } + ret = coreboot_table_populate(dev, ptr); + memunmap(ptr); return ret; @@ -169,7 +165,6 @@ static int coreboot_table_remove(struct platform_device *pdev) { bus_for_each_dev(&coreboot_bus_type, NULL, NULL, __cb_dev_unregister); - bus_unregister(&coreboot_bus_type); return 0; } @@ -199,6 +194,32 @@ .of_match_table = of_match_ptr(coreboot_of_match), }, }; -module_platform_driver(coreboot_table_driver); + +static int __init coreboot_table_driver_init(void) +{ + int ret; + + ret = bus_register(&coreboot_bus_type); + if (ret) + return ret; + + ret = platform_driver_register(&coreboot_table_driver); + if (ret) { + bus_unregister(&coreboot_bus_type); + return ret; + } + + return 0; +} + +static void __exit coreboot_table_driver_exit(void) +{ + platform_driver_unregister(&coreboot_table_driver); + bus_unregister(&coreboot_bus_type); +} + +module_init(coreboot_table_driver_init); +module_exit(coreboot_table_driver_exit); + MODULE_AUTHOR("Google, Inc."); MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/drivers/firmware/google/gsmi.c +++ linux-5.19.0/drivers/firmware/google/gsmi.c @@ -681,6 +681,15 @@ static int gsmi_panic_callback(struct notifier_block *nb, unsigned long reason, void *arg) { + + /* + * Panic callbacks are executed with all other CPUs stopped, + * so we must not attempt to spin waiting for gsmi_dev.lock + * to be released. + */ + if (spin_is_locked(&gsmi_dev.lock)) + return NOTIFY_DONE; + gsmi_shutdown_reason(GSMI_SHUTDOWN_PANIC); return NOTIFY_DONE; } --- linux-5.19.0.orig/drivers/firmware/raspberrypi.c +++ linux-5.19.0/drivers/firmware/raspberrypi.c @@ -272,6 +272,7 @@ int ret = PTR_ERR(fw->chan); if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to get mbox channel: %d\n", ret); + kfree(fw); return ret; } --- linux-5.19.0.orig/drivers/firmware/tegra/bpmp-debugfs.c +++ linux-5.19.0/drivers/firmware/tegra/bpmp-debugfs.c @@ -474,7 +474,7 @@ mode |= attrs & DEBUGFS_S_IWUSR ? 0200 : 0; dentry = debugfs_create_file(name, mode, parent, bpmp, &bpmp_debug_fops); - if (!dentry) { + if (IS_ERR(dentry)) { err = -ENOMEM; goto out; } @@ -725,7 +725,7 @@ if (t & DEBUGFS_S_ISDIR) { dentry = debugfs_create_dir(name, parent); - if (!dentry) + if (IS_ERR(dentry)) return -ENOMEM; err = bpmp_populate_dir(bpmp, seqbuf, dentry, depth+1); if (err < 0) @@ -738,7 +738,7 @@ dentry = debugfs_create_file(name, mode, parent, bpmp, &debugfs_fops); - if (!dentry) + if (IS_ERR(dentry)) return -ENOMEM; } } @@ -788,11 +788,11 @@ return 0; root = debugfs_create_dir("bpmp", NULL); - if (!root) + if (IS_ERR(root)) return -ENOMEM; bpmp->debugfs_mirror = debugfs_create_dir("debug", root); - if (!bpmp->debugfs_mirror) { + if (IS_ERR(bpmp->debugfs_mirror)) { err = -ENOMEM; goto out; } --- linux-5.19.0.orig/drivers/firmware/tegra/bpmp.c +++ linux-5.19.0/drivers/firmware/tegra/bpmp.c @@ -201,7 +201,7 @@ int err; if (data && size > 0) - memcpy(data, channel->ib->data, size); + memcpy_fromio(data, channel->ib->data, size); err = tegra_bpmp_ack_response(channel); if (err < 0) @@ -245,7 +245,7 @@ channel->ob->flags = flags; if (data && size > 0) - memcpy(channel->ob->data, data, size); + memcpy_toio(channel->ob->data, data, size); return tegra_bpmp_post_request(channel); } @@ -420,7 +420,7 @@ channel->ob->code = code; if (data && size > 0) - memcpy(channel->ob->data, data, size); + memcpy_toio(channel->ob->data, data, size); err = tegra_bpmp_post_response(channel); if (WARN_ON(err < 0)) --- linux-5.19.0.orig/drivers/firmware/ti_sci.c +++ linux-5.19.0/drivers/firmware/ti_sci.c @@ -429,15 +429,14 @@ * during noirq phase, so we must manually poll the completion. */ ret = read_poll_timeout_atomic(try_wait_for_completion, done_state, - true, 1, + done_state, 1, info->desc->max_rx_timeout_ms * 1000, false, &xfer->done); } - if (ret == -ETIMEDOUT || !done_state) { + if (ret == -ETIMEDOUT) dev_err(dev, "Mbox timedout in resp(caller: %pS)\n", (void *)_RET_IP_); - } /* * NOTE: we might prefer not to need the mailbox ticker to manage the --- linux-5.19.0.orig/drivers/fpga/altera-pr-ip-core.c +++ linux-5.19.0/drivers/fpga/altera-pr-ip-core.c @@ -108,7 +108,7 @@ u32 *buffer_32 = (u32 *)buf; size_t i = 0; - if (count <= 0) + if (!count) return -EINVAL; /* Write out the complete 32-bit chunks */ --- linux-5.19.0.orig/drivers/fpga/dfl-pci.c +++ linux-5.19.0/drivers/fpga/dfl-pci.c @@ -77,12 +77,18 @@ #define PCIE_DEVICE_ID_INTEL_PAC_D5005 0x0B2B #define PCIE_DEVICE_ID_SILICOM_PAC_N5010 0x1000 #define PCIE_DEVICE_ID_SILICOM_PAC_N5011 0x1001 +#define PCIE_DEVICE_ID_INTEL_DFL 0xbcce +/* PCI Subdevice ID for PCIE_DEVICE_ID_INTEL_DFL */ +#define PCIE_SUBDEVICE_ID_INTEL_N6000 0x1770 +#define PCIE_SUBDEVICE_ID_INTEL_N6001 0x1771 +#define PCIE_SUBDEVICE_ID_INTEL_C6100 0x17d4 /* VF Device */ #define PCIE_DEVICE_ID_VF_INT_5_X 0xBCBF #define PCIE_DEVICE_ID_VF_INT_6_X 0xBCC1 #define PCIE_DEVICE_ID_VF_DSC_1_X 0x09C5 #define PCIE_DEVICE_ID_INTEL_PAC_D5005_VF 0x0B2C +#define PCIE_DEVICE_ID_INTEL_DFL_VF 0xbccf static struct pci_device_id cci_pcie_id_tbl[] = { {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_PF_INT_5_X),}, @@ -96,6 +102,18 @@ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_PAC_D5005_VF),}, {PCI_DEVICE(PCI_VENDOR_ID_SILICOM_DENMARK, PCIE_DEVICE_ID_SILICOM_PAC_N5010),}, {PCI_DEVICE(PCI_VENDOR_ID_SILICOM_DENMARK, PCIE_DEVICE_ID_SILICOM_PAC_N5011),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_N6000),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL_VF, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_N6000),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_N6001),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL_VF, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_N6001),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_C6100),}, + {PCI_DEVICE_SUB(PCI_VENDOR_ID_INTEL, PCIE_DEVICE_ID_INTEL_DFL_VF, + PCI_VENDOR_ID_INTEL, PCIE_SUBDEVICE_ID_INTEL_C6100),}, {0,} }; MODULE_DEVICE_TABLE(pci, cci_pcie_id_tbl); --- linux-5.19.0.orig/drivers/fpga/dfl.c +++ linux-5.19.0/drivers/fpga/dfl.c @@ -1866,7 +1866,7 @@ return -EINVAL; fds = memdup_user((void __user *)(arg + sizeof(hdr)), - hdr.count * sizeof(s32)); + array_size(hdr.count, sizeof(s32))); if (IS_ERR(fds)) return PTR_ERR(fds); --- linux-5.19.0.orig/drivers/fsi/fsi-core.c +++ linux-5.19.0/drivers/fsi/fsi-core.c @@ -1314,6 +1314,9 @@ mutex_init(&master->scan_lock); master->idx = ida_simple_get(&master_ida, 0, INT_MAX, GFP_KERNEL); + if (master->idx < 0) + return master->idx; + dev_set_name(&master->dev, "fsi%d", master->idx); master->dev.class = &fsi_master_class; --- linux-5.19.0.orig/drivers/fsi/fsi-master-ast-cf.c +++ linux-5.19.0/drivers/fsi/fsi-master-ast-cf.c @@ -1324,12 +1324,14 @@ } master->cvic = devm_of_iomap(&pdev->dev, np, 0, NULL); if (IS_ERR(master->cvic)) { + of_node_put(np); rc = PTR_ERR(master->cvic); dev_err(&pdev->dev, "Error %d mapping CVIC\n", rc); goto err_free; } rc = of_property_read_u32(np, "copro-sw-interrupts", &master->cvic_sw_irq); + of_node_put(np); if (rc) { dev_err(&pdev->dev, "Can't find coprocessor SW interrupt\n"); goto err_free; --- linux-5.19.0.orig/drivers/fsi/fsi-occ.c +++ linux-5.19.0/drivers/fsi/fsi-occ.c @@ -94,6 +94,7 @@ client->occ = occ; mutex_init(&client->lock); file->private_data = client; + get_device(occ->dev); /* We allocate a 1-page buffer, make sure it all fits */ BUILD_BUG_ON((OCC_CMD_DATA_BYTES + 3) > PAGE_SIZE); @@ -197,6 +198,7 @@ { struct occ_client *client = file->private_data; + put_device(client->occ->dev); free_page((unsigned long)client->buffer); kfree(client); @@ -493,12 +495,19 @@ for (i = 1; i < req_len - 2; ++i) checksum += byte_request[i]; - mutex_lock(&occ->occ_lock); + rc = mutex_lock_interruptible(&occ->occ_lock); + if (rc) + return rc; occ->client_buffer = response; occ->client_buffer_size = user_resp_len; occ->client_response_size = 0; + if (!occ->buffer) { + rc = -ENOENT; + goto done; + } + /* * Get a sequence number and update the counter. Avoid a sequence * number of 0 which would pass the response check below even if the @@ -671,10 +680,13 @@ { struct occ *occ = platform_get_drvdata(pdev); - kvfree(occ->buffer); - misc_deregister(&occ->mdev); + mutex_lock(&occ->occ_lock); + kvfree(occ->buffer); + occ->buffer = NULL; + mutex_unlock(&occ->occ_lock); + device_for_each_child(&pdev->dev, NULL, occ_unregister_child); ida_simple_remove(&occ_ida, occ->idx); --- linux-5.19.0.orig/drivers/gpio/Kconfig +++ linux-5.19.0/drivers/gpio/Kconfig @@ -1481,6 +1481,18 @@ menu "PCI GPIO expanders" depends on PCI +config GPIO_AAEON + tristate "AAEON GPIO support" + depends on ASUS_WMI + depends on UBUNTU_ODM_DRIVERS + select MFD_AAEON + help + Say yes here to support GPIO pins on Single Board Computers produced + by AAEON. + + This driver leverages the ASUS WMI interface to access device + resources. + config GPIO_AMD8111 tristate "AMD 8111 GPIO driver" depends on X86 || COMPILE_TEST --- linux-5.19.0.orig/drivers/gpio/Makefile +++ linux-5.19.0/drivers/gpio/Makefile @@ -23,6 +23,7 @@ obj-$(CONFIG_GPIO_104_IDIO_16) += gpio-104-idio-16.o obj-$(CONFIG_GPIO_74X164) += gpio-74x164.o obj-$(CONFIG_GPIO_74XX_MMIO) += gpio-74xx-mmio.o +obj-$(CONFIG_GPIO_AAEON) += gpio-aaeon.o obj-$(CONFIG_GPIO_ADNP) += gpio-adnp.o obj-$(CONFIG_GPIO_ADP5520) += gpio-adp5520.o obj-$(CONFIG_GPIO_ADP5588) += gpio-adp5588.o --- linux-5.19.0.orig/drivers/gpio/gpio-104-dio-48e.c +++ linux-5.19.0/drivers/gpio/gpio-104-dio-48e.c @@ -271,6 +271,7 @@ dio48egpio->irq_mask &= ~BIT(0); else dio48egpio->irq_mask &= ~BIT(1); + gpiochip_disable_irq(chip, offset); if (!dio48egpio->irq_mask) /* disable interrupts */ @@ -298,6 +299,7 @@ iowrite8(0x00, dio48egpio->base + 0xB); } + gpiochip_enable_irq(chip, offset); if (offset == 19) dio48egpio->irq_mask |= BIT(0); else @@ -320,12 +322,14 @@ return 0; } -static struct irq_chip dio48e_irqchip = { +static const struct irq_chip dio48e_irqchip = { .name = "104-dio-48e", .irq_ack = dio48e_irq_ack, .irq_mask = dio48e_irq_mask, .irq_unmask = dio48e_irq_unmask, - .irq_set_type = dio48e_irq_set_type + .irq_set_type = dio48e_irq_set_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static irqreturn_t dio48e_irq_handler(int irq, void *dev_id) @@ -414,7 +418,7 @@ dio48egpio->chip.set_multiple = dio48e_gpio_set_multiple; girq = &dio48egpio->chip.irq; - girq->chip = &dio48e_irqchip; + gpio_irq_chip_set_chip(girq, &dio48e_irqchip); /* This will let us handle the parent IRQ in the driver */ girq->parent_handler = NULL; girq->num_parents = 0; --- linux-5.19.0.orig/drivers/gpio/gpio-104-idio-16.c +++ linux-5.19.0/drivers/gpio/gpio-104-idio-16.c @@ -150,10 +150,11 @@ { struct gpio_chip *chip = irq_data_get_irq_chip_data(data); struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip); - const unsigned long mask = BIT(irqd_to_hwirq(data)); + const unsigned long offset = irqd_to_hwirq(data); unsigned long flags; - idio16gpio->irq_mask &= ~mask; + idio16gpio->irq_mask &= ~BIT(offset); + gpiochip_disable_irq(chip, offset); if (!idio16gpio->irq_mask) { raw_spin_lock_irqsave(&idio16gpio->lock, flags); @@ -168,11 +169,12 @@ { struct gpio_chip *chip = irq_data_get_irq_chip_data(data); struct idio_16_gpio *const idio16gpio = gpiochip_get_data(chip); - const unsigned long mask = BIT(irqd_to_hwirq(data)); + const unsigned long offset = irqd_to_hwirq(data); const unsigned long prev_irq_mask = idio16gpio->irq_mask; unsigned long flags; - idio16gpio->irq_mask |= mask; + gpiochip_enable_irq(chip, offset); + idio16gpio->irq_mask |= BIT(offset); if (!prev_irq_mask) { raw_spin_lock_irqsave(&idio16gpio->lock, flags); @@ -193,12 +195,14 @@ return 0; } -static struct irq_chip idio_16_irqchip = { +static const struct irq_chip idio_16_irqchip = { .name = "104-idio-16", .irq_ack = idio_16_irq_ack, .irq_mask = idio_16_irq_mask, .irq_unmask = idio_16_irq_unmask, - .irq_set_type = idio_16_irq_set_type + .irq_set_type = idio_16_irq_set_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static irqreturn_t idio_16_irq_handler(int irq, void *dev_id) @@ -275,7 +279,7 @@ idio16gpio->out_state = 0xFFFF; girq = &idio16gpio->chip.irq; - girq->chip = &idio_16_irqchip; + gpio_irq_chip_set_chip(girq, &idio_16_irqchip); /* This will let us handle the parent IRQ in the driver */ girq->parent_handler = NULL; girq->num_parents = 0; --- linux-5.19.0.orig/drivers/gpio/gpio-aaeon.c +++ linux-5.19.0/drivers/gpio/gpio-aaeon.c @@ -0,0 +1,205 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * AAEON GPIO driver + * Copyright (c) 2021, AAEON Ltd. + * + * Author: Edward Lin + * + * 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. + */ +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRVNAME "gpio_aaeon" +#define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C" +#define AAEON_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66" + +#define GET_GPIO_NUMBER_ID 0x00010000 +#define GET_LEVEL_METHOD_ID 0x00010001 +#define SET_LEVEL_METHOD_ID 0x00010002 +#define GET_DIRECTION_METHOD_ID 0x00010003 +#define SET_DIRECTION_METHOD_ID 0x00010004 +#define GET_SIO_NUMBER_METHOD_ID 0xF0010 + +struct aaeon_gpio_bank { + struct gpio_chip chip; + unsigned int regbase; + struct aaeon_gpio_data *data; +}; + +struct aaeon_gpio_data { + int nr_bank; + struct aaeon_gpio_bank *bank; +}; + +static int aaeon_gpio_get_number(void); +static int aaeon_gpio_get_direction(struct gpio_chip *chip, + unsigned int offset); +static int aaeon_gpio_output_set_direction(struct gpio_chip *chip, + unsigned int offset, int value); +static int aaeon_gpio_input_set_direction(struct gpio_chip *chip, + unsigned int offset); +static int aaeon_gpio_get(struct gpio_chip *chip, + unsigned int offset); +static void aaeon_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value); + +#define AAEON_GPIO_BANK(_base, _ngpio, _regbase) \ +{ \ + .chip = { \ + .label = DRVNAME, \ + .owner = THIS_MODULE, \ + .get_direction = aaeon_gpio_get_direction, \ + .direction_input = aaeon_gpio_input_set_direction, \ + .direction_output = aaeon_gpio_output_set_direction, \ + .get = aaeon_gpio_get, \ + .set = aaeon_gpio_set, \ + .base = _base, \ + .ngpio = _ngpio, \ + .can_sleep = true, \ + }, \ + .regbase = _regbase, \ +} + +static struct aaeon_gpio_bank aaeon_gpio_bank[] = { + AAEON_GPIO_BANK(0, 0, 0xF0), +}; + +static int aaeon_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) +{ + int err, retval; + u32 dev_id = 0x0; + + dev_id |= offset; + err = asus_wmi_evaluate_method(GET_DIRECTION_METHOD_ID, dev_id, + 0, &retval); + if (err) + return err; + + return retval; +} + +static int aaeon_gpio_input_set_direction(struct gpio_chip *chip, + unsigned int offset) +{ + int err, retval; + u32 dev_id; + + dev_id = BIT(16) | offset; + err = asus_wmi_evaluate_method(SET_DIRECTION_METHOD_ID, dev_id, + 0, &retval); + if (err) + return err; + + return retval; +} + +static int aaeon_gpio_output_set_direction(struct gpio_chip *chip, + unsigned int offset, int value) +{ + int err, retval; + u32 dev_id = 0x0; + + dev_id |= offset; + err = asus_wmi_evaluate_method(SET_DIRECTION_METHOD_ID, dev_id, + 0, &retval); + if (err) + return err; + + return retval; +} + +static int aaeon_gpio_get(struct gpio_chip *chip, unsigned int offset) +{ + int err, retval; + u32 dev_id = 0x0; + + dev_id |= offset; + err = asus_wmi_evaluate_method(GET_LEVEL_METHOD_ID, dev_id, 0, &retval); + if (err) + return err; + + return retval; +} + +static void aaeon_gpio_set(struct gpio_chip *chip, unsigned int offset, + int value) +{ + int retval; + u32 dev_id = offset; + + if (value) + dev_id = BIT(16) | dev_id; + + asus_wmi_evaluate_method(SET_LEVEL_METHOD_ID, dev_id, 0, &retval); +} + +static int aaeon_gpio_get_number(void) +{ + int err, retval; + + err = asus_wmi_evaluate_method(GET_GPIO_NUMBER_ID, + GET_SIO_NUMBER_METHOD_ID, + 0, &retval); + if (err) + return err; + + return retval; +} + +static int __init aaeon_gpio_probe(struct platform_device *pdev) +{ + int err, i; + int dio_number = 0; + struct aaeon_gpio_data *data; + struct aaeon_gpio_bank *bank; + + /* Prevent other drivers adding this platfom device */ + if (!wmi_has_guid(AAEON_WMI_MGMT_GUID)) { + pr_debug("AAEON Management GUID not found\n"); + return -ENODEV; + } + + dio_number = aaeon_gpio_get_number(); + if (dio_number < 0) + return -ENODEV; + + data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + + data->nr_bank = ARRAY_SIZE(aaeon_gpio_bank); + data->bank = aaeon_gpio_bank; + platform_set_drvdata(pdev, data); + bank = &data->bank[0]; + bank->chip.parent = &pdev->dev; + bank->chip.ngpio = dio_number; + bank->data = data; + err = devm_gpiochip_add_data(&pdev->dev, &bank->chip, bank); + if (err) + pr_debug("Failed to register gpiochip %d: %d\n", i, err); + + return err; +} + +static struct platform_driver aaeon_gpio_driver = { + .driver = { + .name = "gpio-aaeon", + }, +}; + +module_platform_driver_probe(aaeon_gpio_driver, aaeon_gpio_probe); + +MODULE_ALIAS("platform:gpio-aaeon"); +MODULE_DESCRIPTION("AAEON GPIO Driver"); +MODULE_AUTHOR("Edward Lin "); +MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/gpio/gpio-amd8111.c +++ linux-5.19.0/drivers/gpio/gpio-amd8111.c @@ -226,7 +226,10 @@ ioport_unmap(gp.pm); goto out; } + return 0; + out: + pci_dev_put(pdev); return err; } @@ -234,6 +237,7 @@ { gpiochip_remove(&gp.chip); ioport_unmap(gp.pm); + pci_dev_put(gp.pdev); } module_init(amd_gpio_init); --- linux-5.19.0.orig/drivers/gpio/gpio-ftgpio010.c +++ linux-5.19.0/drivers/gpio/gpio-ftgpio010.c @@ -41,14 +41,12 @@ * struct ftgpio_gpio - Gemini GPIO state container * @dev: containing device for this instance * @gc: gpiochip for this instance - * @irq: irqchip for this instance * @base: remapped I/O-memory base * @clk: silicon clock */ struct ftgpio_gpio { struct device *dev; struct gpio_chip gc; - struct irq_chip irq; void __iomem *base; struct clk *clk; }; @@ -70,6 +68,7 @@ val = readl(g->base + GPIO_INT_EN); val &= ~BIT(irqd_to_hwirq(d)); writel(val, g->base + GPIO_INT_EN); + gpiochip_disable_irq(gc, irqd_to_hwirq(d)); } static void ftgpio_gpio_unmask_irq(struct irq_data *d) @@ -78,6 +77,7 @@ struct ftgpio_gpio *g = gpiochip_get_data(gc); u32 val; + gpiochip_enable_irq(gc, irqd_to_hwirq(d)); val = readl(g->base + GPIO_INT_EN); val |= BIT(irqd_to_hwirq(d)); writel(val, g->base + GPIO_INT_EN); @@ -221,6 +221,16 @@ return 0; } +static const struct irq_chip ftgpio_irq_chip = { + .name = "FTGPIO010", + .irq_ack = ftgpio_gpio_ack_irq, + .irq_mask = ftgpio_gpio_mask_irq, + .irq_unmask = ftgpio_gpio_unmask_irq, + .irq_set_type = ftgpio_gpio_set_irq_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, +}; + static int ftgpio_gpio_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -277,14 +287,8 @@ if (!IS_ERR(g->clk)) g->gc.set_config = ftgpio_gpio_set_config; - g->irq.name = "FTGPIO010"; - g->irq.irq_ack = ftgpio_gpio_ack_irq; - g->irq.irq_mask = ftgpio_gpio_mask_irq; - g->irq.irq_unmask = ftgpio_gpio_unmask_irq; - g->irq.irq_set_type = ftgpio_gpio_set_irq_type; - girq = &g->gc.irq; - girq->chip = &g->irq; + gpio_irq_chip_set_chip(girq, &ftgpio_irq_chip); girq->parent_handler = ftgpio_gpio_irq_handler; girq->num_parents = 1; girq->parents = devm_kcalloc(dev, 1, sizeof(*girq->parents), --- linux-5.19.0.orig/drivers/gpio/gpio-ixp4xx.c +++ linux-5.19.0/drivers/gpio/gpio-ixp4xx.c @@ -63,6 +63,14 @@ __raw_writel(BIT(d->hwirq), g->base + IXP4XX_REG_GPIS); } +static void ixp4xx_gpio_mask_irq(struct irq_data *d) +{ + struct gpio_chip *gc = irq_data_get_irq_chip_data(d); + + irq_chip_mask_parent(d); + gpiochip_disable_irq(gc, d->hwirq); +} + static void ixp4xx_gpio_irq_unmask(struct irq_data *d) { struct gpio_chip *gc = irq_data_get_irq_chip_data(d); @@ -72,6 +80,7 @@ if (!(g->irq_edge & BIT(d->hwirq))) ixp4xx_gpio_irq_ack(d); + gpiochip_enable_irq(gc, d->hwirq); irq_chip_unmask_parent(d); } @@ -149,12 +158,14 @@ return irq_chip_set_type_parent(d, IRQ_TYPE_LEVEL_HIGH); } -static struct irq_chip ixp4xx_gpio_irqchip = { +static const struct irq_chip ixp4xx_gpio_irqchip = { .name = "IXP4GPIO", .irq_ack = ixp4xx_gpio_irq_ack, - .irq_mask = irq_chip_mask_parent, + .irq_mask = ixp4xx_gpio_mask_irq, .irq_unmask = ixp4xx_gpio_irq_unmask, .irq_set_type = ixp4xx_gpio_irq_set_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, }; static int ixp4xx_gpio_child_to_parent_hwirq(struct gpio_chip *gc, @@ -263,7 +274,7 @@ g->gc.owner = THIS_MODULE; girq = &g->gc.irq; - girq->chip = &ixp4xx_gpio_irqchip; + gpio_irq_chip_set_chip(girq, &ixp4xx_gpio_irqchip); girq->fwnode = g->fwnode; girq->parent_domain = parent; girq->child_to_parent_hwirq = ixp4xx_gpio_child_to_parent_hwirq; --- linux-5.19.0.orig/drivers/gpio/gpio-mockup.c +++ linux-5.19.0/drivers/gpio/gpio-mockup.c @@ -373,6 +373,13 @@ } } +static void gpio_mockup_debugfs_cleanup(void *data) +{ + struct gpio_mockup_chip *chip = data; + + debugfs_remove_recursive(chip->dbg_dir); +} + static void gpio_mockup_dispose_mappings(void *data) { struct gpio_mockup_chip *chip = data; @@ -455,7 +462,7 @@ gpio_mockup_debugfs_setup(dev, chip); - return 0; + return devm_add_action_or_reset(dev, gpio_mockup_debugfs_cleanup, chip); } static const struct of_device_id gpio_mockup_of_match[] = { @@ -526,8 +533,10 @@ } fwnode = fwnode_create_software_node(properties, NULL); - if (IS_ERR(fwnode)) + if (IS_ERR(fwnode)) { + kfree_strarray(line_names, ngpio); return PTR_ERR(fwnode); + } pdevinfo.name = "gpio-mockup"; pdevinfo.id = idx; @@ -590,9 +599,9 @@ static void __exit gpio_mockup_exit(void) { + gpio_mockup_unregister_pdevs(); debugfs_remove_recursive(gpio_mockup_dbg_dir); platform_driver_unregister(&gpio_mockup_driver); - gpio_mockup_unregister_pdevs(); } module_init(gpio_mockup_init); --- linux-5.19.0.orig/drivers/gpio/gpio-mpc8xxx.c +++ linux-5.19.0/drivers/gpio/gpio-mpc8xxx.c @@ -172,6 +172,7 @@ switch (flow_type) { case IRQ_TYPE_EDGE_FALLING: + case IRQ_TYPE_LEVEL_LOW: raw_spin_lock_irqsave(&mpc8xxx_gc->lock, flags); gc->write_reg(mpc8xxx_gc->regs + GPIO_ICR, gc->read_reg(mpc8xxx_gc->regs + GPIO_ICR) --- linux-5.19.0.orig/drivers/gpio/gpio-mt7621.c +++ linux-5.19.0/drivers/gpio/gpio-mt7621.c @@ -112,6 +112,8 @@ unsigned long flags; u32 rise, fall, high, low; + gpiochip_enable_irq(gc, d->hwirq); + spin_lock_irqsave(&rg->lock, flags); rise = mtk_gpio_r32(rg, GPIO_REG_REDGE); fall = mtk_gpio_r32(rg, GPIO_REG_FEDGE); @@ -143,6 +145,8 @@ mtk_gpio_w32(rg, GPIO_REG_HLVL, high & ~BIT(pin)); mtk_gpio_w32(rg, GPIO_REG_LLVL, low & ~BIT(pin)); spin_unlock_irqrestore(&rg->lock, flags); + + gpiochip_disable_irq(gc, d->hwirq); } static int @@ -204,6 +208,16 @@ return gpio % MTK_BANK_WIDTH; } +static const struct irq_chip mt7621_irq_chip = { + .name = "mt7621-gpio", + .irq_mask_ack = mediatek_gpio_irq_mask, + .irq_mask = mediatek_gpio_irq_mask, + .irq_unmask = mediatek_gpio_irq_unmask, + .irq_set_type = mediatek_gpio_irq_type, + .flags = IRQCHIP_IMMUTABLE, + GPIOCHIP_IRQ_RESOURCE_HELPERS, +}; + static int mediatek_gpio_bank_probe(struct device *dev, int bank) { @@ -238,11 +252,6 @@ return -ENOMEM; rg->chip.offset = bank * MTK_BANK_WIDTH; - rg->irq_chip.name = dev_name(dev); - rg->irq_chip.irq_unmask = mediatek_gpio_irq_unmask; - rg->irq_chip.irq_mask = mediatek_gpio_irq_mask; - rg->irq_chip.irq_mask_ack = mediatek_gpio_irq_mask; - rg->irq_chip.irq_set_type = mediatek_gpio_irq_type; if (mtk->gpio_irq) { struct gpio_irq_chip *girq; @@ -262,7 +271,7 @@ } girq = &rg->chip.irq; - girq->chip = &rg->irq_chip; + gpio_irq_chip_set_chip(girq, &mt7621_irq_chip); /* This will let us handle the parent IRQ in the driver */ girq->parent_handler = NULL; girq->num_parents = 0; --- linux-5.19.0.orig/drivers/gpio/gpio-mvebu.c +++ linux-5.19.0/drivers/gpio/gpio-mvebu.c @@ -793,8 +793,12 @@ u32 offset; u32 set; - if (of_device_is_compatible(mvchip->chip.of_node, - "marvell,armada-370-gpio")) { + if (mvchip->soc_variant == MVEBU_GPIO_SOC_VARIANT_A8K) { + int ret = of_property_read_u32(dev->of_node, + "marvell,pwm-offset", &offset); + if (ret < 0) + return 0; + } else { /* * There are only two sets of PWM configuration registers for * all the GPIO lines on those SoCs which this driver reserves @@ -804,13 +808,6 @@ if (!platform_get_resource_byname(pdev, IORESOURCE_MEM, "pwm")) return 0; offset = 0; - } else if (mvchip->soc_variant == MVEBU_GPIO_SOC_VARIANT_A8K) { - int ret = of_property_read_u32(dev->of_node, - "marvell,pwm-offset", &offset); - if (ret < 0) - return 0; - } else { - return 0; } if (IS_ERR(mvchip->clk)) --- linux-5.19.0.orig/drivers/gpio/gpio-pca953x.c +++ linux-5.19.0/drivers/gpio/gpio-pca953x.c @@ -1175,7 +1175,9 @@ { struct pca953x_chip *chip = dev_get_drvdata(dev); + mutex_lock(&chip->i2c_lock); regcache_cache_only(chip->regmap, true); + mutex_unlock(&chip->i2c_lock); if (atomic_read(&chip->wakeup_path)) device_set_wakeup_path(dev); @@ -1198,13 +1200,17 @@ } } + mutex_lock(&chip->i2c_lock); regcache_cache_only(chip->regmap, false); regcache_mark_dirty(chip->regmap); ret = pca953x_regcache_sync(dev); - if (ret) + if (ret) { + mutex_unlock(&chip->i2c_lock); return ret; + } ret = regcache_sync(chip->regmap); + mutex_unlock(&chip->i2c_lock); if (ret) { dev_err(dev, "Failed to restore register map: %d\n", ret); return ret; --- linux-5.19.0.orig/drivers/gpio/gpio-realtek-otto.c +++ linux-5.19.0/drivers/gpio/gpio-realtek-otto.c @@ -46,10 +46,20 @@ * @lock: Lock for accessing the IRQ registers and values * @intr_mask: Mask for interrupts lines * @intr_type: Interrupt type selection + * @bank_read: Read a bank setting as a single 32-bit value + * @bank_write: Write a bank setting as a single 32-bit value + * @imr_line_pos: Bit shift of an IRQ line's IMR value. + * + * The DIR, DATA, and ISR registers consist of four 8-bit port values, packed + * into a single 32-bit register. Use @bank_read (@bank_write) to get (assign) + * a value from (to) these registers. The IMR register consists of four 16-bit + * port values, packed into two 32-bit registers. Use @imr_line_pos to get the + * bit shift of the 2-bit field for a line's IMR settings. Shifts larger than + * 32 overflow into the second register. * * Because the interrupt mask register (IMR) combines the function of IRQ type * selection and masking, two extra values are stored. @intr_mask is used to - * mask/unmask the interrupts for a GPIO port, and @intr_type is used to store + * mask/unmask the interrupts for a GPIO line, and @intr_type is used to store * the selected interrupt types. The logical AND of these values is written to * IMR on changes. */ @@ -59,10 +69,11 @@ void __iomem *cpumask_base; struct cpumask cpu_irq_maskable; raw_spinlock_t lock; - u16 intr_mask[REALTEK_GPIO_PORTS_PER_BANK]; - u16 intr_type[REALTEK_GPIO_PORTS_PER_BANK]; - unsigned int (*port_offset_u8)(unsigned int port); - unsigned int (*port_offset_u16)(unsigned int port); + u8 intr_mask[REALTEK_GPIO_MAX]; + u8 intr_type[REALTEK_GPIO_MAX]; + u32 (*bank_read)(void __iomem *reg); + void (*bank_write)(void __iomem *reg, u32 value); + unsigned int (*line_imr_pos)(unsigned int line); }; /* Expand with more flags as devices with other quirks are added */ @@ -101,14 +112,22 @@ * port. The two interrupt mask registers store two bits per GPIO, so use u16 * values. */ -static unsigned int realtek_gpio_port_offset_u8(unsigned int port) +static u32 realtek_gpio_bank_read_swapped(void __iomem *reg) { - return port; + return ioread32be(reg); } -static unsigned int realtek_gpio_port_offset_u16(unsigned int port) +static void realtek_gpio_bank_write_swapped(void __iomem *reg, u32 value) { - return 2 * port; + iowrite32be(value, reg); +} + +static unsigned int realtek_gpio_line_imr_pos_swapped(unsigned int line) +{ + unsigned int port_pin = line % 8; + unsigned int port = line / 8; + + return 2 * (8 * (port ^ 1) + port_pin); } /* @@ -119,66 +138,67 @@ * per GPIO, so use u16 values. The first register contains ports 1 and 0, the * second ports 3 and 2. */ -static unsigned int realtek_gpio_port_offset_u8_rev(unsigned int port) +static u32 realtek_gpio_bank_read(void __iomem *reg) { - return 3 - port; + return ioread32(reg); } -static unsigned int realtek_gpio_port_offset_u16_rev(unsigned int port) +static void realtek_gpio_bank_write(void __iomem *reg, u32 value) { - return 2 * (port ^ 1); + iowrite32(value, reg); } -static void realtek_gpio_write_imr(struct realtek_gpio_ctrl *ctrl, - unsigned int port, u16 irq_type, u16 irq_mask) +static unsigned int realtek_gpio_line_imr_pos(unsigned int line) { - iowrite16(irq_type & irq_mask, - ctrl->base + REALTEK_GPIO_REG_IMR + ctrl->port_offset_u16(port)); + return 2 * line; } -static void realtek_gpio_clear_isr(struct realtek_gpio_ctrl *ctrl, - unsigned int port, u8 mask) +static void realtek_gpio_clear_isr(struct realtek_gpio_ctrl *ctrl, u32 mask) { - iowrite8(mask, ctrl->base + REALTEK_GPIO_REG_ISR + ctrl->port_offset_u8(port)); + ctrl->bank_write(ctrl->base + REALTEK_GPIO_REG_ISR, mask); } -static u8 realtek_gpio_read_isr(struct realtek_gpio_ctrl *ctrl, unsigned int port) +static u32 realtek_gpio_read_isr(struct realtek_gpio_ctrl *ctrl) { - return ioread8(ctrl->base + REALTEK_GPIO_REG_ISR + ctrl->port_offset_u8(port)); + return ctrl->bank_read(ctrl->base + REALTEK_GPIO_REG_ISR); } -/* Set the rising and falling edge mask bits for a GPIO port pin */ -static u16 realtek_gpio_imr_bits(unsigned int pin, u16 value) +/* Set the rising and falling edge mask bits for a GPIO pin */ +static void realtek_gpio_update_line_imr(struct realtek_gpio_ctrl *ctrl, unsigned int line) { - return (value & REALTEK_GPIO_IMR_LINE_MASK) << 2 * pin; + void __iomem *reg = ctrl->base + REALTEK_GPIO_REG_IMR; + unsigned int line_shift = ctrl->line_imr_pos(line); + unsigned int shift = line_shift % 32; + u32 irq_type = ctrl->intr_type[line]; + u32 irq_mask = ctrl->intr_mask[line]; + u32 reg_val; + + reg += 4 * (line_shift / 32); + reg_val = ioread32(reg); + reg_val &= ~(REALTEK_GPIO_IMR_LINE_MASK << shift); + reg_val |= (irq_type & irq_mask & REALTEK_GPIO_IMR_LINE_MASK) << shift; + iowrite32(reg_val, reg); } static void realtek_gpio_irq_ack(struct irq_data *data) { struct realtek_gpio_ctrl *ctrl = irq_data_to_ctrl(data); irq_hw_number_t line = irqd_to_hwirq(data); - unsigned int port = line / 8; - unsigned int port_pin = line % 8; - realtek_gpio_clear_isr(ctrl, port, BIT(port_pin)); + realtek_gpio_clear_isr(ctrl, BIT(line)); } static void realtek_gpio_irq_unmask(struct irq_data *data) { struct realtek_gpio_ctrl *ctrl = irq_data_to_ctrl(data); unsigned int line = irqd_to_hwirq(data); - unsigned int port = line / 8; - unsigned int port_pin = line % 8; unsigned long flags; - u16 m; gpiochip_enable_irq(&ctrl->gc, line); raw_spin_lock_irqsave(&ctrl->lock, flags); - m = ctrl->intr_mask[port]; - m |= realtek_gpio_imr_bits(port_pin, REALTEK_GPIO_IMR_LINE_MASK); - ctrl->intr_mask[port] = m; - realtek_gpio_write_imr(ctrl, port, ctrl->intr_type[port], m); + ctrl->intr_mask[line] = REALTEK_GPIO_IMR_LINE_MASK; + realtek_gpio_update_line_imr(ctrl, line); raw_spin_unlock_irqrestore(&ctrl->lock, flags); } @@ -186,16 +206,11 @@ { struct realtek_gpio_ctrl *ctrl = irq_data_to_ctrl(data); unsigned int line = irqd_to_hwirq(data); - unsigned int port = line / 8; - unsigned int port_pin = line % 8; unsigned long flags; - u16 m; raw_spin_lock_irqsave(&ctrl->lock, flags); - m = ctrl->intr_mask[port]; - m &= ~realtek_gpio_imr_bits(port_pin, REALTEK_GPIO_IMR_LINE_MASK); - ctrl->intr_mask[port] = m; - realtek_gpio_write_imr(ctrl, port, ctrl->intr_type[port], m); + ctrl->intr_mask[line] = 0; + realtek_gpio_update_line_imr(ctrl, line); raw_spin_unlock_irqrestore(&ctrl->lock, flags); gpiochip_disable_irq(&ctrl->gc, line); @@ -205,10 +220,8 @@ { struct realtek_gpio_ctrl *ctrl = irq_data_to_ctrl(data); unsigned int line = irqd_to_hwirq(data); - unsigned int port = line / 8; - unsigned int port_pin = line % 8; unsigned long flags; - u16 type, t; + u8 type; switch (flow_type & IRQ_TYPE_SENSE_MASK) { case IRQ_TYPE_EDGE_FALLING: @@ -227,11 +240,8 @@ irq_set_handler_locked(data, handle_edge_irq); raw_spin_lock_irqsave(&ctrl->lock, flags); - t = ctrl->intr_type[port]; - t &= ~realtek_gpio_imr_bits(port_pin, REALTEK_GPIO_IMR_LINE_MASK); - t |= realtek_gpio_imr_bits(port_pin, type); - ctrl->intr_type[port] = t; - realtek_gpio_write_imr(ctrl, port, t, ctrl->intr_mask[port]); + ctrl->intr_type[line] = type; + realtek_gpio_update_line_imr(ctrl, line); raw_spin_unlock_irqrestore(&ctrl->lock, flags); return 0; @@ -242,28 +252,21 @@ struct gpio_chip *gc = irq_desc_get_handler_data(desc); struct realtek_gpio_ctrl *ctrl = gpiochip_get_data(gc); struct irq_chip *irq_chip = irq_desc_get_chip(desc); - unsigned int lines_done; - unsigned int port_pin_count; unsigned long status; int offset; chained_irq_enter(irq_chip, desc); - for (lines_done = 0; lines_done < gc->ngpio; lines_done += 8) { - status = realtek_gpio_read_isr(ctrl, lines_done / 8); - port_pin_count = min(gc->ngpio - lines_done, 8U); - for_each_set_bit(offset, &status, port_pin_count) - generic_handle_domain_irq(gc->irq.domain, offset + lines_done); - } + status = realtek_gpio_read_isr(ctrl); + for_each_set_bit(offset, &status, gc->ngpio) + generic_handle_domain_irq(gc->irq.domain, offset); chained_irq_exit(irq_chip, desc); } -static inline void __iomem *realtek_gpio_irq_cpu_mask(struct realtek_gpio_ctrl *ctrl, - unsigned int port, int cpu) +static inline void __iomem *realtek_gpio_irq_cpu_mask(struct realtek_gpio_ctrl *ctrl, int cpu) { - return ctrl->cpumask_base + ctrl->port_offset_u8(port) + - REALTEK_GPIO_PORTS_PER_BANK * cpu; + return ctrl->cpumask_base + REALTEK_GPIO_PORTS_PER_BANK * cpu; } static int realtek_gpio_irq_set_affinity(struct irq_data *data, @@ -271,12 +274,10 @@ { struct realtek_gpio_ctrl *ctrl = irq_data_to_ctrl(data); unsigned int line = irqd_to_hwirq(data); - unsigned int port = line / 8; - unsigned int port_pin = line % 8; void __iomem *irq_cpu_mask; unsigned long flags; int cpu; - u8 v; + u32 v; if (!ctrl->cpumask_base) return -ENXIO; @@ -284,15 +285,15 @@ raw_spin_lock_irqsave(&ctrl->lock, flags); for_each_cpu(cpu, &ctrl->cpu_irq_maskable) { - irq_cpu_mask = realtek_gpio_irq_cpu_mask(ctrl, port, cpu); - v = ioread8(irq_cpu_mask); + irq_cpu_mask = realtek_gpio_irq_cpu_mask(ctrl, cpu); + v = ctrl->bank_read(irq_cpu_mask); if (cpumask_test_cpu(cpu, dest)) - v |= BIT(port_pin); + v |= BIT(line); else - v &= ~BIT(port_pin); + v &= ~BIT(line); - iowrite8(v, irq_cpu_mask); + ctrl->bank_write(irq_cpu_mask, v); } raw_spin_unlock_irqrestore(&ctrl->lock, flags); @@ -305,16 +306,17 @@ static int realtek_gpio_irq_init(struct gpio_chip *gc) { struct realtek_gpio_ctrl *ctrl = gpiochip_get_data(gc); - unsigned int port; + u32 mask_all = GENMASK(gc->ngpio - 1, 0); + unsigned int line; int cpu; - for (port = 0; (port * 8) < gc->ngpio; port++) { - realtek_gpio_write_imr(ctrl, port, 0, 0); - realtek_gpio_clear_isr(ctrl, port, GENMASK(7, 0)); + for (line = 0; line < gc->ngpio; line++) + realtek_gpio_update_line_imr(ctrl, line); - for_each_cpu(cpu, &ctrl->cpu_irq_maskable) - iowrite8(GENMASK(7, 0), realtek_gpio_irq_cpu_mask(ctrl, port, cpu)); - } + realtek_gpio_clear_isr(ctrl, mask_all); + + for_each_cpu(cpu, &ctrl->cpu_irq_maskable) + ctrl->bank_write(realtek_gpio_irq_cpu_mask(ctrl, cpu), mask_all); return 0; } @@ -387,12 +389,14 @@ if (dev_flags & GPIO_PORTS_REVERSED) { bgpio_flags = 0; - ctrl->port_offset_u8 = realtek_gpio_port_offset_u8_rev; - ctrl->port_offset_u16 = realtek_gpio_port_offset_u16_rev; + ctrl->bank_read = realtek_gpio_bank_read; + ctrl->bank_write = realtek_gpio_bank_write; + ctrl->line_imr_pos = realtek_gpio_line_imr_pos; } else { bgpio_flags = BGPIOF_BIG_ENDIAN_BYTE_ORDER; - ctrl->port_offset_u8 = realtek_gpio_port_offset_u8; - ctrl->port_offset_u16 = realtek_gpio_port_offset_u16; + ctrl->bank_read = realtek_gpio_bank_read_swapped; + ctrl->bank_write = realtek_gpio_bank_write_swapped; + ctrl->line_imr_pos = realtek_gpio_line_imr_pos_swapped; } err = bgpio_init(&ctrl->gc, dev, 4, --- linux-5.19.0.orig/drivers/gpio/gpio-rockchip.c +++ linux-5.19.0/drivers/gpio/gpio-rockchip.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include @@ -155,6 +156,12 @@ unsigned long flags; u32 data = input ? 0 : 1; + + if (input) + pinctrl_gpio_direction_input(bank->pin_base + offset); + else + pinctrl_gpio_direction_output(bank->pin_base + offset); + raw_spin_lock_irqsave(&bank->slock, flags); rockchip_gpio_writel_bit(bank, offset, data, bank->gpio_regs->port_ddr); raw_spin_unlock_irqrestore(&bank->slock, flags); @@ -418,11 +425,11 @@ goto out; } else { bank->toggle_edge_mode |= mask; - level |= mask; + level &= ~mask; /* * Determine gpio state. If 1 next interrupt should be - * falling otherwise rising. + * low otherwise high. */ data = readl(bank->reg_base + bank->gpio_regs->ext_port); if (data & mask) @@ -613,6 +620,7 @@ return -ENODATA; pctldev = of_pinctrl_get(pctlnp); + of_node_put(pctlnp); if (!pctldev) return -ENODEV; --- linux-5.19.0.orig/drivers/gpio/gpio-tqmx86.c +++ linux-5.19.0/drivers/gpio/gpio-tqmx86.c @@ -307,6 +307,8 @@ girq->default_type = IRQ_TYPE_NONE; girq->handler = handle_simple_irq; girq->init_valid_mask = tqmx86_init_irq_valid_mask; + + irq_domain_set_pm_device(girq->domain, dev); } ret = devm_gpiochip_add_data(dev, chip, gpio); @@ -315,8 +317,6 @@ goto out_pm_dis; } - irq_domain_set_pm_device(girq->domain, dev); - dev_info(dev, "GPIO functionality initialized with %d pins\n", chip->ngpio); --- linux-5.19.0.orig/drivers/gpio/gpiolib-acpi.c +++ linux-5.19.0/drivers/gpio/gpiolib-acpi.c @@ -32,9 +32,16 @@ "controller@pin combos on which to ignore the ACPI wake flag " "ignore_wake=controller@pin[,controller@pin[,...]]"); +static char *ignore_interrupt; +module_param(ignore_interrupt, charp, 0444); +MODULE_PARM_DESC(ignore_interrupt, + "controller@pin combos on which to ignore interrupt " + "ignore_interrupt=controller@pin[,controller@pin[,...]]"); + struct acpi_gpiolib_dmi_quirk { bool no_edge_events_on_boot; char *ignore_wake; + char *ignore_interrupt; }; /** @@ -317,14 +324,15 @@ return desc; } -static bool acpi_gpio_in_ignore_list(const char *controller_in, unsigned int pin_in) +static bool acpi_gpio_in_ignore_list(const char *ignore_list, const char *controller_in, + unsigned int pin_in) { const char *controller, *pin_str; unsigned int pin; char *endp; int len; - controller = ignore_wake; + controller = ignore_list; while (controller) { pin_str = strchr(controller, '@'); if (!pin_str) @@ -348,7 +356,7 @@ return false; err: - pr_err_once("Error: Invalid value for gpiolib_acpi.ignore_wake: %s\n", ignore_wake); + pr_err_once("Error: Invalid value for gpiolib_acpi.ignore_...: %s\n", ignore_list); return false; } @@ -360,7 +368,7 @@ if (agpio->wake_capable != ACPI_WAKE_CAPABLE) return false; - if (acpi_gpio_in_ignore_list(dev_name(parent), pin)) { + if (acpi_gpio_in_ignore_list(ignore_wake, dev_name(parent), pin)) { dev_info(parent, "Ignoring wakeup on pin %u\n", pin); return false; } @@ -427,6 +435,11 @@ goto fail_unlock_irq; } + if (acpi_gpio_in_ignore_list(ignore_interrupt, dev_name(chip->parent), pin)) { + dev_info(chip->parent, "Ignoring interrupt on pin %u\n", pin); + return AE_OK; + } + event = kzalloc(sizeof(*event), GFP_KERNEL); if (!event) goto fail_unlock_irq; @@ -1560,6 +1573,20 @@ .ignore_wake = "INT33FF:01@0", }, }, + { + /* + * Interrupt storm caused from edge triggered floating pin + * Found in BIOS UX325UAZ.300 + * https://bugzilla.kernel.org/show_bug.cgi?id=216208 + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325UAZ_UM325UAZ"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_interrupt = "AMDI0030:00@18", + }, + }, {} /* Terminating entry */ }; @@ -1582,6 +1609,9 @@ if (ignore_wake == NULL && quirk && quirk->ignore_wake) ignore_wake = quirk->ignore_wake; + if (ignore_interrupt == NULL && quirk && quirk->ignore_interrupt) + ignore_interrupt = quirk->ignore_interrupt; + return 0; } --- linux-5.19.0.orig/drivers/gpio/gpiolib-cdev.c +++ linux-5.19.0/drivers/gpio/gpiolib-cdev.c @@ -55,6 +55,50 @@ * interface to gpiolib GPIOs via ioctl()s. */ +typedef __poll_t (*poll_fn)(struct file *, struct poll_table_struct *); +typedef long (*ioctl_fn)(struct file *, unsigned int, unsigned long); +typedef ssize_t (*read_fn)(struct file *, char __user *, + size_t count, loff_t *); + +static __poll_t call_poll_locked(struct file *file, + struct poll_table_struct *wait, + struct gpio_device *gdev, poll_fn func) +{ + __poll_t ret; + + down_read(&gdev->sem); + ret = func(file, wait); + up_read(&gdev->sem); + + return ret; +} + +static long call_ioctl_locked(struct file *file, unsigned int cmd, + unsigned long arg, struct gpio_device *gdev, + ioctl_fn func) +{ + long ret; + + down_read(&gdev->sem); + ret = func(file, cmd, arg); + up_read(&gdev->sem); + + return ret; +} + +static ssize_t call_read_locked(struct file *file, char __user *buf, + size_t count, loff_t *f_ps, + struct gpio_device *gdev, read_fn func) +{ + ssize_t ret; + + down_read(&gdev->sem); + ret = func(file, buf, count, f_ps); + up_read(&gdev->sem); + + return ret; +} + /* * GPIO line handle management */ @@ -191,8 +235,8 @@ return 0; } -static long linehandle_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) +static long linehandle_ioctl_unlocked(struct file *file, unsigned int cmd, + unsigned long arg) { struct linehandle_state *lh = file->private_data; void __user *ip = (void __user *)arg; @@ -201,6 +245,9 @@ unsigned int i; int ret; + if (!lh->gdev->chip) + return -ENODEV; + switch (cmd) { case GPIOHANDLE_GET_LINE_VALUES_IOCTL: /* NOTE: It's okay to read values of output lines */ @@ -247,6 +294,15 @@ } } +static long linehandle_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct linehandle_state *lh = file->private_data; + + return call_ioctl_locked(file, cmd, arg, lh->gdev, + linehandle_ioctl_unlocked); +} + #ifdef CONFIG_COMPAT static long linehandle_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) @@ -1366,12 +1422,15 @@ return ret; } -static long linereq_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) +static long linereq_ioctl_unlocked(struct file *file, unsigned int cmd, + unsigned long arg) { struct linereq *lr = file->private_data; void __user *ip = (void __user *)arg; + if (!lr->gdev->chip) + return -ENODEV; + switch (cmd) { case GPIO_V2_LINE_GET_VALUES_IOCTL: return linereq_get_values(lr, ip); @@ -1384,6 +1443,15 @@ } } +static long linereq_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct linereq *lr = file->private_data; + + return call_ioctl_locked(file, cmd, arg, lr->gdev, + linereq_ioctl_unlocked); +} + #ifdef CONFIG_COMPAT static long linereq_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) @@ -1392,12 +1460,15 @@ } #endif -static __poll_t linereq_poll(struct file *file, - struct poll_table_struct *wait) +static __poll_t linereq_poll_unlocked(struct file *file, + struct poll_table_struct *wait) { struct linereq *lr = file->private_data; __poll_t events = 0; + if (!lr->gdev->chip) + return EPOLLHUP | EPOLLERR; + poll_wait(file, &lr->wait, wait); if (!kfifo_is_empty_spinlocked_noirqsave(&lr->events, @@ -1407,16 +1478,25 @@ return events; } -static ssize_t linereq_read(struct file *file, - char __user *buf, - size_t count, - loff_t *f_ps) +static __poll_t linereq_poll(struct file *file, + struct poll_table_struct *wait) +{ + struct linereq *lr = file->private_data; + + return call_poll_locked(file, wait, lr->gdev, linereq_poll_unlocked); +} + +static ssize_t linereq_read_unlocked(struct file *file, char __user *buf, + size_t count, loff_t *f_ps) { struct linereq *lr = file->private_data; struct gpio_v2_line_event le; ssize_t bytes_read = 0; int ret; + if (!lr->gdev->chip) + return -ENODEV; + if (count < sizeof(le)) return -EINVAL; @@ -1461,6 +1541,15 @@ return bytes_read; } +static ssize_t linereq_read(struct file *file, char __user *buf, + size_t count, loff_t *f_ps) +{ + struct linereq *lr = file->private_data; + + return call_read_locked(file, buf, count, f_ps, lr->gdev, + linereq_read_unlocked); +} + static void linereq_free(struct linereq *lr) { unsigned int i; @@ -1681,12 +1770,15 @@ (GPIOEVENT_REQUEST_RISING_EDGE | \ GPIOEVENT_REQUEST_FALLING_EDGE) -static __poll_t lineevent_poll(struct file *file, - struct poll_table_struct *wait) +static __poll_t lineevent_poll_unlocked(struct file *file, + struct poll_table_struct *wait) { struct lineevent_state *le = file->private_data; __poll_t events = 0; + if (!le->gdev->chip) + return EPOLLHUP | EPOLLERR; + poll_wait(file, &le->wait, wait); if (!kfifo_is_empty_spinlocked_noirqsave(&le->events, &le->wait.lock)) @@ -1695,15 +1787,21 @@ return events; } +static __poll_t lineevent_poll(struct file *file, + struct poll_table_struct *wait) +{ + struct lineevent_state *le = file->private_data; + + return call_poll_locked(file, wait, le->gdev, lineevent_poll_unlocked); +} + struct compat_gpioeevent_data { compat_u64 timestamp; u32 id; }; -static ssize_t lineevent_read(struct file *file, - char __user *buf, - size_t count, - loff_t *f_ps) +static ssize_t lineevent_read_unlocked(struct file *file, char __user *buf, + size_t count, loff_t *f_ps) { struct lineevent_state *le = file->private_data; struct gpioevent_data ge; @@ -1711,6 +1809,9 @@ ssize_t ge_size; int ret; + if (!le->gdev->chip) + return -ENODEV; + /* * When compatible system call is being used the struct gpioevent_data, * in case of at least ia32, has different size due to the alignment @@ -1768,6 +1869,15 @@ return bytes_read; } +static ssize_t lineevent_read(struct file *file, char __user *buf, + size_t count, loff_t *f_ps) +{ + struct lineevent_state *le = file->private_data; + + return call_read_locked(file, buf, count, f_ps, le->gdev, + lineevent_read_unlocked); +} + static void lineevent_free(struct lineevent_state *le) { if (le->irq) @@ -1785,13 +1895,16 @@ return 0; } -static long lineevent_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) +static long lineevent_ioctl_unlocked(struct file *file, unsigned int cmd, + unsigned long arg) { struct lineevent_state *le = file->private_data; void __user *ip = (void __user *)arg; struct gpiohandle_data ghd; + if (!le->gdev->chip) + return -ENODEV; + /* * We can get the value for an event line but not set it, * because it is input by definition. @@ -1814,6 +1927,15 @@ return -EINVAL; } +static long lineevent_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct lineevent_state *le = file->private_data; + + return call_ioctl_locked(file, cmd, arg, le->gdev, + lineevent_ioctl_unlocked); +} + #ifdef CONFIG_COMPAT static long lineevent_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) @@ -1975,7 +2097,6 @@ ret = -ENODEV; goto out_free_le; } - le->irq = irq; if (eflags & GPIOEVENT_REQUEST_RISING_EDGE) irqflags |= test_bit(FLAG_ACTIVE_LOW, &desc->flags) ? @@ -1989,7 +2110,7 @@ init_waitqueue_head(&le->wait); /* Request a thread to read the events */ - ret = request_threaded_irq(le->irq, + ret = request_threaded_irq(irq, lineevent_irq_handler, lineevent_irq_thread, irqflags, @@ -1998,6 +2119,8 @@ if (ret) goto out_free_le; + le->irq = irq; + fd = get_unused_fd_flags(O_RDONLY | O_CLOEXEC); if (fd < 0) { ret = fd; @@ -2371,12 +2494,15 @@ return NOTIFY_OK; } -static __poll_t lineinfo_watch_poll(struct file *file, - struct poll_table_struct *pollt) +static __poll_t lineinfo_watch_poll_unlocked(struct file *file, + struct poll_table_struct *pollt) { struct gpio_chardev_data *cdev = file->private_data; __poll_t events = 0; + if (!cdev->gdev->chip) + return EPOLLHUP | EPOLLERR; + poll_wait(file, &cdev->wait, pollt); if (!kfifo_is_empty_spinlocked_noirqsave(&cdev->events, @@ -2386,8 +2512,17 @@ return events; } -static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, - size_t count, loff_t *off) +static __poll_t lineinfo_watch_poll(struct file *file, + struct poll_table_struct *pollt) +{ + struct gpio_chardev_data *cdev = file->private_data; + + return call_poll_locked(file, pollt, cdev->gdev, + lineinfo_watch_poll_unlocked); +} + +static ssize_t lineinfo_watch_read_unlocked(struct file *file, char __user *buf, + size_t count, loff_t *off) { struct gpio_chardev_data *cdev = file->private_data; struct gpio_v2_line_info_changed event; @@ -2395,6 +2530,9 @@ int ret; size_t event_size; + if (!cdev->gdev->chip) + return -ENODEV; + #ifndef CONFIG_GPIO_CDEV_V1 event_size = sizeof(struct gpio_v2_line_info_changed); if (count < event_size) @@ -2462,6 +2600,15 @@ return bytes_read; } +static ssize_t lineinfo_watch_read(struct file *file, char __user *buf, + size_t count, loff_t *off) +{ + struct gpio_chardev_data *cdev = file->private_data; + + return call_read_locked(file, buf, count, off, cdev->gdev, + lineinfo_watch_read_unlocked); +} + /** * gpio_chrdev_open() - open the chardev for ioctl operations * @inode: inode for this chardev @@ -2475,13 +2622,17 @@ struct gpio_chardev_data *cdev; int ret = -ENOMEM; + down_read(&gdev->sem); + /* Fail on open if the backing gpiochip is gone */ - if (!gdev->chip) - return -ENODEV; + if (!gdev->chip) { + ret = -ENODEV; + goto out_unlock; + } cdev = kzalloc(sizeof(*cdev), GFP_KERNEL); if (!cdev) - return -ENOMEM; + goto out_unlock; cdev->watched_lines = bitmap_zalloc(gdev->chip->ngpio, GFP_KERNEL); if (!cdev->watched_lines) @@ -2504,6 +2655,8 @@ if (ret) goto out_unregister_notifier; + up_read(&gdev->sem); + return ret; out_unregister_notifier: @@ -2513,6 +2666,8 @@ bitmap_free(cdev->watched_lines); out_free_cdev: kfree(cdev); +out_unlock: + up_read(&gdev->sem); return ret; } --- linux-5.19.0.orig/drivers/gpio/gpiolib-of.c +++ linux-5.19.0/drivers/gpio/gpiolib-of.c @@ -860,7 +860,8 @@ if (mm_gc->save_regs) mm_gc->save_regs(mm_gc); - mm_gc->gc.of_node = np; + of_node_put(mm_gc->gc.of_node); + mm_gc->gc.of_node = of_node_get(np); ret = gpiochip_add_data(gc, data); if (ret) @@ -868,6 +869,7 @@ return 0; err2: + of_node_put(np); iounmap(mm_gc->regs); err1: kfree(gc->label); --- linux-5.19.0.orig/drivers/gpio/gpiolib.c +++ linux-5.19.0/drivers/gpio/gpiolib.c @@ -526,12 +526,13 @@ if (ret) return ret; + /* From this point, the .release() function cleans up gpio_device */ + gdev->dev.release = gpiodevice_release; + ret = gpiochip_sysfs_register(gdev); if (ret) goto err_remove_device; - /* From this point, the .release() function cleans up gpio_device */ - gdev->dev.release = gpiodevice_release; dev_dbg(&gdev->dev, "registered GPIOs %d to %d on %s\n", gdev->base, gdev->base + gdev->ngpio - 1, gdev->chip->label ? : "generic"); @@ -597,10 +598,10 @@ struct fwnode_handle *fwnode = NULL; struct gpio_device *gdev; unsigned long flags; - int base = gc->base; unsigned int i; + u32 ngpios = 0; + int base = 0; int ret = 0; - u32 ngpios; if (gc->fwnode) fwnode = gc->fwnode; @@ -647,17 +648,12 @@ else gdev->owner = THIS_MODULE; - gdev->descs = kcalloc(gc->ngpio, sizeof(gdev->descs[0]), GFP_KERNEL); - if (!gdev->descs) { - ret = -ENOMEM; - goto err_free_dev_name; - } - /* * Try the device properties if the driver didn't supply the number * of GPIO lines. */ - if (gc->ngpio == 0) { + ngpios = gc->ngpio; + if (ngpios == 0) { ret = device_property_read_u32(&gdev->dev, "ngpios", &ngpios); if (ret == -ENODATA) /* @@ -668,7 +664,7 @@ */ ngpios = 0; else if (ret) - goto err_free_descs; + goto err_free_dev_name; gc->ngpio = ngpios; } @@ -676,13 +672,19 @@ if (gc->ngpio == 0) { chip_err(gc, "tried to insert a GPIO chip with zero lines\n"); ret = -EINVAL; - goto err_free_descs; + goto err_free_dev_name; } if (gc->ngpio > FASTPATH_NGPIO) chip_warn(gc, "line cnt %u is greater than fast path cnt %u\n", gc->ngpio, FASTPATH_NGPIO); + gdev->descs = kcalloc(gc->ngpio, sizeof(*gdev->descs), GFP_KERNEL); + if (!gdev->descs) { + ret = -ENOMEM; + goto err_free_dev_name; + } + gdev->label = kstrdup_const(gc->label ?: "unknown", GFP_KERNEL); if (!gdev->label) { ret = -ENOMEM; @@ -701,11 +703,13 @@ * it may be a pipe dream. It will not happen before we get rid * of the sysfs interface anyways. */ + base = gc->base; if (base < 0) { base = gpiochip_find_base(gc->ngpio); if (base < 0) { - ret = base; spin_unlock_irqrestore(&gpio_lock, flags); + ret = base; + base = 0; goto err_free_label; } /* @@ -731,6 +735,7 @@ spin_unlock_irqrestore(&gpio_lock, flags); BLOCKING_INIT_NOTIFIER_HEAD(&gdev->notifier); + init_rwsem(&gdev->sem); #ifdef CONFIG_PINCTRL INIT_LIST_HEAD(&gdev->pin_ranges); @@ -816,6 +821,11 @@ err_free_gpiochip_mask: gpiochip_remove_pin_ranges(gc); gpiochip_free_valid_mask(gc); + if (gdev->dev.release) { + /* release() has been registered by gpiochip_setup_dev() */ + put_device(&gdev->dev); + goto err_print_message; + } err_remove_from_list: spin_lock_irqsave(&gpio_lock, flags); list_del(&gdev->list); @@ -829,13 +839,14 @@ err_free_ida: ida_free(&gpio_ida, gdev->id); err_free_gdev: + kfree(gdev); +err_print_message: /* failures here can mean systems won't boot... */ if (ret != -EPROBE_DEFER) { pr_err("%s: GPIOs %d..%d (%s) failed to register, %d\n", __func__, - gdev->base, gdev->base + gdev->ngpio - 1, + base, base + (int)ngpios - 1, gc->label ? : "generic", ret); } - kfree(gdev); return ret; } EXPORT_SYMBOL_GPL(gpiochip_add_data_with_key); @@ -865,6 +876,8 @@ unsigned long flags; unsigned int i; + down_write(&gdev->sem); + /* FIXME: should the legacy sysfs handling be moved to gpio_device? */ gpiochip_sysfs_unregister(gdev); gpiochip_free_hogs(gc); @@ -899,6 +912,7 @@ * gone. */ gcdev_unregister(gdev); + up_write(&gdev->sem); put_device(&gdev->dev); } EXPORT_SYMBOL_GPL(gpiochip_remove); --- linux-5.19.0.orig/drivers/gpio/gpiolib.h +++ linux-5.19.0/drivers/gpio/gpiolib.h @@ -15,6 +15,7 @@ #include #include #include +#include #define GPIOCHIP_NAME "gpiochip" @@ -39,6 +40,9 @@ * @list: links gpio_device:s together for traversal * @notifier: used to notify subscribers about lines being requested, released * or reconfigured + * @sem: protects the structure from a NULL-pointer dereference of @chip by + * user-space operations when the device gets unregistered during + * a hot-unplug event * @pin_ranges: range of pins served by the GPIO driver * * This state container holds most of the runtime variable data @@ -60,6 +64,7 @@ void *data; struct list_head list; struct blocking_notifier_head notifier; + struct rw_semaphore sem; #ifdef CONFIG_PINCTRL /* --- linux-5.19.0.orig/drivers/gpu/drm/Kconfig +++ linux-5.19.0/drivers/gpu/drm/Kconfig @@ -31,6 +31,7 @@ config DRM_MIPI_DBI tristate depends on DRM + select DRM_KMS_HELPER config DRM_MIPI_DSI bool --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/aldebaran.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/aldebaran.c @@ -148,30 +148,22 @@ struct amdgpu_reset_context *reset_context) { struct amdgpu_device *adev = (struct amdgpu_device *)reset_ctl->handle; + struct list_head *reset_device_list = reset_context->reset_device_list; struct amdgpu_device *tmp_adev = NULL; - struct list_head reset_device_list; int r = 0; dev_dbg(adev->dev, "aldebaran perform hw reset\n"); + + if (reset_device_list == NULL) + return -EINVAL; + if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2) && reset_context->hive == NULL) { /* Wrong context, return error */ return -EINVAL; } - INIT_LIST_HEAD(&reset_device_list); - if (reset_context->hive) { - list_for_each_entry (tmp_adev, - &reset_context->hive->device_list, - gmc.xgmi.head) - list_add_tail(&tmp_adev->reset_list, - &reset_device_list); - } else { - list_add_tail(&reset_context->reset_req_dev->reset_list, - &reset_device_list); - } - - list_for_each_entry (tmp_adev, &reset_device_list, reset_list) { + list_for_each_entry(tmp_adev, reset_device_list, reset_list) { mutex_lock(&tmp_adev->reset_cntl->reset_lock); tmp_adev->reset_cntl->active_reset = AMD_RESET_METHOD_MODE2; } @@ -179,7 +171,7 @@ * Mode2 reset doesn't need any sync between nodes in XGMI hive, instead launch * them together so that they can be completed asynchronously on multiple nodes */ - list_for_each_entry (tmp_adev, &reset_device_list, reset_list) { + list_for_each_entry(tmp_adev, reset_device_list, reset_list) { /* For XGMI run all resets in parallel to speed up the process */ if (tmp_adev->gmc.xgmi.num_physical_nodes > 1) { if (!queue_work(system_unbound_wq, @@ -197,7 +189,7 @@ /* For XGMI wait for all resets to complete before proceed */ if (!r) { - list_for_each_entry (tmp_adev, &reset_device_list, reset_list) { + list_for_each_entry(tmp_adev, reset_device_list, reset_list) { if (tmp_adev->gmc.xgmi.num_physical_nodes > 1) { flush_work(&tmp_adev->reset_cntl->reset_work); r = tmp_adev->asic_reset_res; @@ -207,7 +199,7 @@ } } - list_for_each_entry (tmp_adev, &reset_device_list, reset_list) { + list_for_each_entry(tmp_adev, reset_device_list, reset_list) { mutex_unlock(&tmp_adev->reset_cntl->reset_lock); tmp_adev->reset_cntl->active_reset = AMD_RESET_METHOD_NONE; } @@ -339,10 +331,13 @@ aldebaran_mode2_restore_hwcontext(struct amdgpu_reset_control *reset_ctl, struct amdgpu_reset_context *reset_context) { + struct list_head *reset_device_list = reset_context->reset_device_list; struct amdgpu_device *tmp_adev = NULL; - struct list_head reset_device_list; int r; + if (reset_device_list == NULL) + return -EINVAL; + if (reset_context->reset_req_dev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 2) && reset_context->hive == NULL) { @@ -350,19 +345,7 @@ return -EINVAL; } - INIT_LIST_HEAD(&reset_device_list); - if (reset_context->hive) { - list_for_each_entry (tmp_adev, - &reset_context->hive->device_list, - gmc.xgmi.head) - list_add_tail(&tmp_adev->reset_list, - &reset_device_list); - } else { - list_add_tail(&reset_context->reset_req_dev->reset_list, - &reset_device_list); - } - - list_for_each_entry (tmp_adev, &reset_device_list, reset_list) { + list_for_each_entry(tmp_adev, reset_device_list, reset_list) { dev_info(tmp_adev->dev, "GPU reset succeeded, trying to resume\n"); r = aldebaran_mode2_restore_ip(tmp_adev); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -313,7 +313,7 @@ AMDGPU_CP_KIQ_IRQ_DRIVER0 = 0, AMDGPU_CP_KIQ_IRQ_LAST }; - +#define SRIOV_USEC_TIMEOUT 1200000 /* wait 12 * 100ms for SRIOV */ #define MAX_KIQ_REG_WAIT 5000 /* in usecs, 5ms */ #define MAX_KIQ_REG_BAILOUT_INTERVAL 5 /* in msecs, 5ms */ #define MAX_KIQ_REG_TRY 1000 --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c @@ -1056,6 +1056,10 @@ { if (adev->flags & AMD_IS_APU) return false; + + if (amdgpu_sriov_vf(adev)) + return false; + return pm_suspend_target_state != PM_SUSPEND_TO_IDLE; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c @@ -681,6 +681,13 @@ void amdgpu_amdkfd_set_compute_idle(struct amdgpu_device *adev, bool idle) { + /* Temporary workaround to fix issues observed in some + * compute applications when GFXOFF is enabled on GFX11. + */ + if (IP_VERSION_MAJ(adev->ip_versions[GC_HWIP][0]) == 11) { + pr_debug("GFXOFF is %s\n", idle ? "enabled" : "disabled"); + amdgpu_gfx_off_ctrl(adev, idle); + } amdgpu_dpm_switch_power_profile(adev, PP_SMC_POWER_PROFILE_COMPUTE, !idle); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_aldebaran.c @@ -41,5 +41,6 @@ .get_atc_vmid_pasid_mapping_info = kgd_gfx_v9_get_atc_vmid_pasid_mapping_info, .set_vm_context_page_table_base = kgd_gfx_v9_set_vm_context_page_table_base, + .get_cu_occupancy = kgd_gfx_v9_get_cu_occupancy, .program_trap_handler_settings = kgd_gfx_v9_program_trap_handler_settings }; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v11.c @@ -111,7 +111,7 @@ lock_srbm(adev, mec, pipe, 0, 0); - WREG32(SOC15_REG_OFFSET(GC, 0, regCPC_INT_CNTL), + WREG32_SOC15(GC, 0, regCPC_INT_CNTL, CP_INT_CNTL_RING0__TIME_STAMP_INT_ENABLE_MASK | CP_INT_CNTL_RING0__OPCODE_ERROR_INT_ENABLE_MASK); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c @@ -460,13 +460,13 @@ struct ttm_tt *ttm = bo->tbo.ttm; int ret; + if (WARN_ON(ttm->num_pages != src_ttm->num_pages)) + return -EINVAL; + ttm->sg = kmalloc(sizeof(*ttm->sg), GFP_KERNEL); if (unlikely(!ttm->sg)) return -ENOMEM; - if (WARN_ON(ttm->num_pages != src_ttm->num_pages)) - return -EINVAL; - /* Same sequence as in amdgpu_ttm_tt_pin_userptr */ ret = sg_alloc_table_from_pages(ttm->sg, src_ttm->pages, ttm->num_pages, 0, @@ -2007,7 +2007,7 @@ ret = drm_vma_node_allow(&obj->vma_node, drm_priv); if (ret) { - kfree(mem); + kfree(*mem); return ret; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_atomfirmware.c @@ -314,7 +314,7 @@ mem_channel_number = vram_info->v30.channel_num; mem_channel_width = vram_info->v30.channel_width; if (vram_width) - *vram_width = mem_channel_number * mem_channel_width; + *vram_width = mem_channel_number * (1 << mem_channel_width); break; default: return -EINVAL; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c @@ -317,6 +317,7 @@ if (!found) return false; + pci_dev_put(pdev); adev->bios = kmalloc(size, GFP_KERNEL); if (!adev->bios) { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c @@ -328,7 +328,6 @@ kfree(amdgpu_connector->edid); amdgpu_connector->edid = NULL; - drm_connector_update_edid_property(connector, NULL); } static int amdgpu_connector_ddc_get_modes(struct drm_connector *connector) @@ -1674,10 +1673,12 @@ adev->mode_info.dither_property, AMDGPU_FMT_DITHER_DISABLE); - if (amdgpu_audio != 0) + if (amdgpu_audio != 0) { drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.audio_property, AMDGPU_AUDIO_AUTO); + amdgpu_connector->audio = AMDGPU_AUDIO_AUTO; + } subpixel_order = SubPixelHorizontalRGB; connector->interlace_allowed = true; @@ -1799,6 +1800,7 @@ drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.audio_property, AMDGPU_AUDIO_AUTO); + amdgpu_connector->audio = AMDGPU_AUDIO_AUTO; } drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.dither_property, @@ -1852,6 +1854,7 @@ drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.audio_property, AMDGPU_AUDIO_AUTO); + amdgpu_connector->audio = AMDGPU_AUDIO_AUTO; } drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.dither_property, @@ -1902,6 +1905,7 @@ drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.audio_property, AMDGPU_AUDIO_AUTO); + amdgpu_connector->audio = AMDGPU_AUDIO_AUTO; } drm_object_attach_property(&amdgpu_connector->base.base, adev->mode_info.dither_property, --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c @@ -837,16 +837,12 @@ continue; r = amdgpu_vm_bo_update(adev, bo_va, false); - if (r) { - mutex_unlock(&p->bo_list->bo_list_mutex); + if (r) return r; - } r = amdgpu_sync_fence(&p->job->sync, bo_va->last_pt_update); - if (r) { - mutex_unlock(&p->bo_list->bo_list_mutex); + if (r) return r; - } } r = amdgpu_vm_handle_moved(adev, vm); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c @@ -271,32 +271,6 @@ return res; } -static int amdgpu_ctx_init(struct amdgpu_ctx_mgr *mgr, int32_t priority, - struct drm_file *filp, struct amdgpu_ctx *ctx) -{ - int r; - - r = amdgpu_ctx_priority_permit(filp, priority); - if (r) - return r; - - memset(ctx, 0, sizeof(*ctx)); - - kref_init(&ctx->refcount); - ctx->mgr = mgr; - spin_lock_init(&ctx->ring_lock); - mutex_init(&ctx->lock); - - ctx->reset_counter = atomic_read(&mgr->adev->gpu_reset_counter); - ctx->reset_counter_query = ctx->reset_counter; - ctx->vram_lost_counter = atomic_read(&mgr->adev->vram_lost_counter); - ctx->init_priority = priority; - ctx->override_priority = AMDGPU_CTX_PRIORITY_UNSET; - ctx->stable_pstate = AMDGPU_CTX_STABLE_PSTATE_NONE; - - return 0; -} - static int amdgpu_ctx_get_stable_pstate(struct amdgpu_ctx *ctx, u32 *stable_pstate) { @@ -325,6 +299,41 @@ return 0; } +static int amdgpu_ctx_init(struct amdgpu_ctx_mgr *mgr, int32_t priority, + struct drm_file *filp, struct amdgpu_ctx *ctx) +{ + u32 current_stable_pstate; + int r; + + r = amdgpu_ctx_priority_permit(filp, priority); + if (r) + return r; + + memset(ctx, 0, sizeof(*ctx)); + + kref_init(&ctx->refcount); + ctx->mgr = mgr; + spin_lock_init(&ctx->ring_lock); + mutex_init(&ctx->lock); + + ctx->reset_counter = atomic_read(&mgr->adev->gpu_reset_counter); + ctx->reset_counter_query = ctx->reset_counter; + ctx->vram_lost_counter = atomic_read(&mgr->adev->vram_lost_counter); + ctx->init_priority = priority; + ctx->override_priority = AMDGPU_CTX_PRIORITY_UNSET; + + r = amdgpu_ctx_get_stable_pstate(ctx, ¤t_stable_pstate); + if (r) + return r; + + if (mgr->adev->pm.stable_pstate_ctx) + ctx->stable_pstate = mgr->adev->pm.stable_pstate_ctx->stable_pstate; + else + ctx->stable_pstate = current_stable_pstate; + + return 0; +} + static int amdgpu_ctx_set_stable_pstate(struct amdgpu_ctx *ctx, u32 stable_pstate) { @@ -396,7 +405,7 @@ } if (drm_dev_enter(&adev->ddev, &idx)) { - amdgpu_ctx_set_stable_pstate(ctx, AMDGPU_CTX_STABLE_PSTATE_NONE); + amdgpu_ctx_set_stable_pstate(ctx, ctx->stable_pstate); drm_dev_exit(idx); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -33,6 +33,7 @@ #include #include +#include #include #include #include @@ -86,6 +87,8 @@ #define AMDGPU_MAX_RETRY_LIMIT 2 #define AMDGPU_RETRY_SRIOV_RESET(r) ((r) == -EBUSY || (r) == -ETIMEDOUT || (r) == -EINVAL) +static const struct drm_driver amdgpu_kms_driver; + const char *amdgpu_asic_name[] = { "TAHITI", "PITCAIRN", @@ -2391,8 +2394,16 @@ } adev->ip_blocks[i].status.sw = true; - /* need to do gmc hw init early so we can allocate gpu mem */ - if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) { + if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) { + /* need to do common hw init early so everything is set up for gmc */ + r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev); + if (r) { + DRM_ERROR("hw_init %d failed %d\n", i, r); + goto init_failed; + } + adev->ip_blocks[i].status.hw = true; + } else if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC) { + /* need to do gmc hw init early so we can allocate gpu mem */ /* Try to reserve bad pages early */ if (amdgpu_sriov_vf(adev)) amdgpu_virt_exchange_data(adev); @@ -2482,12 +2493,14 @@ if (!hive->reset_domain || !amdgpu_reset_get_reset_domain(hive->reset_domain)) { r = -ENOENT; + amdgpu_put_xgmi_hive(hive); goto init_failed; } /* Drop the early temporary reset domain we created for device */ amdgpu_reset_put_reset_domain(adev->reset_domain); adev->reset_domain = hive->reset_domain; + amdgpu_put_xgmi_hive(hive); } } @@ -2942,6 +2955,14 @@ amdgpu_device_set_pg_state(adev, AMD_PG_STATE_UNGATE); amdgpu_device_set_cg_state(adev, AMD_CG_STATE_UNGATE); + /* + * Per PMFW team's suggestion, driver needs to handle gfxoff + * and df cstate features disablement for gpu reset(e.g. Mode1Reset) + * scenario. Add the missing df cstate disablement here. + */ + if (amdgpu_dpm_set_df_cstate(adev, DF_CSTATE_DISALLOW)) + dev_warn(adev->dev, "Failed to disallow df cstate"); + for (i = adev->num_ip_blocks - 1; i >= 0; i--) { if (!adev->ip_blocks[i].status.valid) continue; @@ -3076,8 +3097,8 @@ int i, r; static enum amd_ip_block_type ip_order[] = { - AMD_IP_BLOCK_TYPE_GMC, AMD_IP_BLOCK_TYPE_COMMON, + AMD_IP_BLOCK_TYPE_GMC, AMD_IP_BLOCK_TYPE_PSP, AMD_IP_BLOCK_TYPE_IH, }; @@ -3168,7 +3189,8 @@ continue; if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON || adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_GMC || - adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH) { + adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH || + (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP && amdgpu_sriov_vf(adev))) { r = adev->ip_blocks[i].version->funcs->resume(adev); if (r) { @@ -3215,6 +3237,15 @@ return r; } adev->ip_blocks[i].status.hw = true; + + if (adev->in_s0ix && adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_SMC) { + /* disable gfxoff for IP resume. The gfxoff will be re-enabled in + * amdgpu_device_resume() after IP resume. + */ + amdgpu_gfx_off_ctrl(adev, false); + DRM_DEBUG("will disable gfxoff for re-initializing other blocks\n"); + } + } return 0; @@ -3698,6 +3729,11 @@ if (r) return r; + /* Get rid of things like offb */ + r = drm_aperture_remove_conflicting_pci_framebuffers(adev->pdev, &amdgpu_kms_driver); + if (r) + return r; + /* Enable TMZ based on IP_VERSION */ amdgpu_gmc_tmz_set(adev); @@ -4087,15 +4123,18 @@ * at suspend time. * */ -static void amdgpu_device_evict_resources(struct amdgpu_device *adev) +static int amdgpu_device_evict_resources(struct amdgpu_device *adev) { + int ret; + /* No need to evict vram on APUs for suspend to ram or s2idle */ if ((adev->in_s3 || adev->in_s0ix) && (adev->flags & AMD_IS_APU)) - return; + return 0; - if (amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM)) + ret = amdgpu_ttm_evict_resources(adev, TTM_PL_VRAM); + if (ret) DRM_WARN("evicting device resources failed\n"); - + return ret; } /* @@ -4114,17 +4153,32 @@ int amdgpu_device_suspend(struct drm_device *dev, bool fbcon) { struct amdgpu_device *adev = drm_to_adev(dev); + int r = 0; if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; adev->in_suspend = true; + if (amdgpu_sriov_vf(adev)) { + amdgpu_virt_fini_data_exchange(adev); + r = amdgpu_virt_request_full_gpu(adev, false); + if (r) + return r; + } + if (amdgpu_acpi_smart_shift_update(dev, AMDGPU_SS_DEV_D3)) DRM_WARN("smart shift update failed\n"); drm_kms_helper_poll_disable(dev); + if (adev->in_s0ix) { + /* re-enable gfxoff after IP resume. This re-enables gfxoff after + * it was disabled for IP resume in amdgpu_device_ip_resume_phase2(). + */ + amdgpu_gfx_off_ctrl(adev, true); + DRM_DEBUG("will enable gfxoff for the mission mode\n"); + } if (fbcon) drm_fb_helper_set_suspend_unlocked(adev_to_drm(adev)->fb_helper, true); @@ -4137,12 +4191,17 @@ if (!adev->in_s0ix) amdgpu_amdkfd_suspend(adev, adev->in_runpm); - amdgpu_device_evict_resources(adev); + r = amdgpu_device_evict_resources(adev); + if (r) + return r; amdgpu_fence_driver_hw_fini(adev); amdgpu_device_ip_suspend_phase2(adev); + if (amdgpu_sriov_vf(adev)) + amdgpu_virt_release_full_gpu(adev, false); + return 0; } @@ -4161,6 +4220,12 @@ struct amdgpu_device *adev = drm_to_adev(dev); int r = 0; + if (amdgpu_sriov_vf(adev)) { + r = amdgpu_virt_request_full_gpu(adev, true); + if (r) + return r; + } + if (dev->switch_power_state == DRM_SWITCH_POWER_OFF) return 0; @@ -4175,6 +4240,13 @@ } r = amdgpu_device_ip_resume(adev); + + /* no matter what r is, always need to properly release full GPU */ + if (amdgpu_sriov_vf(adev)) { + amdgpu_virt_init_data_exchange(adev); + amdgpu_virt_release_full_gpu(adev, true); + } + if (r) { dev_err(adev->dev, "amdgpu_device_ip_resume failed (%d).\n", r); return r; @@ -4473,8 +4545,6 @@ retry: amdgpu_amdkfd_pre_reset(adev); - amdgpu_amdkfd_pre_reset(adev); - if (from_hypervisor) r = amdgpu_virt_request_full_gpu(adev, true); else @@ -4746,6 +4816,8 @@ tmp_adev = list_first_entry(device_list_handle, struct amdgpu_device, reset_list); amdgpu_reset_reg_dumps(tmp_adev); + + reset_context->reset_device_list = device_list_handle; r = amdgpu_reset_perform_reset(tmp_adev, reset_context); /* If reset handler not implemented, continue; otherwise return */ if (r == -ENOSYS) @@ -4935,6 +5007,8 @@ pm_runtime_enable(&(p->dev)); pm_runtime_resume(&(p->dev)); } + + pci_dev_put(p); } static int amdgpu_device_suspend_display_audio(struct amdgpu_device *adev) @@ -4973,6 +5047,7 @@ if (expires < ktime_get_mono_fast_ns()) { dev_warn(adev->dev, "failed to suspend display audio\n"); + pci_dev_put(p); /* TODO: abort the succeeding gpu reset? */ return -ETIMEDOUT; } @@ -4980,6 +5055,7 @@ pm_runtime_disable(&(p->dev)); + pci_dev_put(p); return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c @@ -2194,12 +2194,9 @@ break; case IP_VERSION(7, 4, 0): case IP_VERSION(7, 4, 1): - adev->nbio.funcs = &nbio_v7_4_funcs; - adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg; - break; case IP_VERSION(7, 4, 4): adev->nbio.funcs = &nbio_v7_4_funcs; - adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg_ald; + adev->nbio.hdp_flush_reg = &nbio_v7_4_hdp_flush_reg; break; case IP_VERSION(7, 2, 0): case IP_VERSION(7, 2, 1): @@ -2213,15 +2210,12 @@ case IP_VERSION(2, 3, 0): case IP_VERSION(2, 3, 1): case IP_VERSION(2, 3, 2): - adev->nbio.funcs = &nbio_v2_3_funcs; - adev->nbio.hdp_flush_reg = &nbio_v2_3_hdp_flush_reg; - break; case IP_VERSION(3, 3, 0): case IP_VERSION(3, 3, 1): case IP_VERSION(3, 3, 2): case IP_VERSION(3, 3, 3): adev->nbio.funcs = &nbio_v2_3_funcs; - adev->nbio.hdp_flush_reg = &nbio_v2_3_hdp_flush_reg_sc; + adev->nbio.hdp_flush_reg = &nbio_v2_3_hdp_flush_reg; break; case IP_VERSION(4, 3, 0): case IP_VERSION(4, 3, 1): --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_display.c @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -495,6 +496,11 @@ .create_handle = drm_gem_fb_create_handle, }; +static const struct drm_framebuffer_funcs amdgpu_fb_funcs_atomic = { + .destroy = drm_gem_fb_destroy, + .create_handle = drm_gem_fb_create_handle, +}; + uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev, uint64_t bo_flags) { @@ -1069,7 +1075,10 @@ if (ret) goto err; - ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs); + if (drm_drv_uses_atomic_modeset(dev)) + ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs_atomic); + else + ret = drm_framebuffer_init(dev, &rfb->base, &amdgpu_fb_funcs); if (ret) goto err; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c @@ -23,7 +23,6 @@ */ #include -#include #include #include #include @@ -2057,11 +2056,6 @@ } #endif - /* Get rid of things like offb */ - ret = drm_aperture_remove_conflicting_pci_framebuffers(pdev, &amdgpu_kms_driver); - if (ret) - return ret; - adev = devm_drm_dev_alloc(&pdev->dev, &amdgpu_kms_driver, typeof(*adev), ddev); if (IS_ERR(adev)) return PTR_ERR(adev); @@ -2548,8 +2542,11 @@ amdgpu_device_baco_exit(drm_dev); } ret = amdgpu_device_resume(drm_dev, false); - if (ret) + if (ret) { + if (amdgpu_device_supports_px(drm_dev)) + pci_disable_device(pdev); return ret; + } if (amdgpu_device_supports_px(drm_dev)) drm_dev->switch_power_state = DRM_SWITCH_POWER_ON; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_fru_eeprom.c @@ -66,10 +66,15 @@ return true; case CHIP_SIENNA_CICHLID: if (strnstr(atom_ctx->vbios_version, "D603", + sizeof(atom_ctx->vbios_version))) { + if (strnstr(atom_ctx->vbios_version, "D603GLXE", sizeof(atom_ctx->vbios_version))) - return true; - else + return false; + else + return true; + } else { return false; + } default: return false; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -413,11 +413,9 @@ if (r) goto release_object; - if (args->flags & AMDGPU_GEM_USERPTR_REGISTER) { - r = amdgpu_mn_register(bo, args->addr); - if (r) - goto release_object; - } + r = amdgpu_mn_register(bo, args->addr); + if (r) + goto release_object; if (args->flags & AMDGPU_GEM_USERPTR_VALIDATE) { r = amdgpu_ttm_tt_get_user_pages(bo, bo->tbo.ttm->pages); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c @@ -479,6 +479,12 @@ unsigned i; unsigned vmhub, inv_eng; + if (adev->enable_mes) { + /* reserve engine 5 for firmware */ + for (vmhub = 0; vmhub < AMDGPU_MAX_VMHUBS; vmhub++) + vm_inv_engs[vmhub] &= ~(1 << 5); + } + for (i = 0; i < adev->num_rings; ++i) { ring = adev->rings[i]; vmhub = ring->funcs->vmhub; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c @@ -169,6 +169,9 @@ for (i = 0; i < AMDGPU_MES_MAX_SDMA_PIPES; i++) { if (adev->ip_versions[SDMA0_HWIP][0] < IP_VERSION(6, 0, 0)) adev->mes.sdma_hqd_mask[i] = i ? 0 : 0x3fc; + /* zero sdma_hqd_mask for non-existent engine */ + else if (adev->sdma.num_instances == 1) + adev->mes.sdma_hqd_mask[i] = i ? 0 : 0xfc; else adev->mes.sdma_hqd_mask[i] = 0xfc; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c @@ -882,6 +882,10 @@ if (WARN_ON_ONCE(min_offset > max_offset)) return -EINVAL; + /* Check domain to be pinned to against preferred domains */ + if (bo->preferred_domains & domain) + domain = bo->preferred_domains & domain; + /* A shared bo cannot be migrated to VRAM */ if (bo->tbo.base.import_attach) { if (domain & AMDGPU_GEM_DOMAIN_GTT) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -166,6 +166,7 @@ { amdgpu_bo_free_kernel(&mem_ctx->shared_bo, &mem_ctx->shared_mc_addr, &mem_ctx->shared_buf); + mem_ctx->shared_bo = NULL; } static void psp_free_shared_bufs(struct psp_context *psp) @@ -176,6 +177,7 @@ /* free TMR memory buffer */ pptr = amdgpu_sriov_vf(psp->adev) ? &tmr_buf : NULL; amdgpu_bo_free_kernel(&psp->tmr_bo, &psp->tmr_mc_addr, pptr); + psp->tmr_bo = NULL; /* free xgmi shared memory */ psp_ta_free_shared_buf(&psp->xgmi_context.context.mem_context); @@ -720,7 +722,7 @@ /* Set up Trusted Memory Region */ static int psp_tmr_init(struct psp_context *psp) { - int ret; + int ret = 0; int tmr_size; void *tmr_buf; void **pptr; @@ -747,10 +749,12 @@ } } - pptr = amdgpu_sriov_vf(psp->adev) ? &tmr_buf : NULL; - ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_SIZE(psp->adev), - AMDGPU_GEM_DOMAIN_VRAM, - &psp->tmr_bo, &psp->tmr_mc_addr, pptr); + if (!psp->tmr_bo) { + pptr = amdgpu_sriov_vf(psp->adev) ? &tmr_buf : NULL; + ret = amdgpu_bo_create_kernel(psp->adev, tmr_size, PSP_TMR_ALIGNMENT, + AMDGPU_GEM_DOMAIN_VRAM, + &psp->tmr_bo, &psp->tmr_mc_addr, pptr); + } return ret; } @@ -2372,7 +2376,7 @@ static bool fw_load_skip_check(struct psp_context *psp, struct amdgpu_firmware_info *ucode) { - if (!ucode->fw) + if (!ucode->fw || !ucode->ucode_size) return true; if (ucode->ucode_id == AMDGPU_UCODE_ID_SMC && @@ -2612,6 +2616,9 @@ psp_rap_terminate(psp); psp_dtm_terminate(psp); psp_hdcp_terminate(psp); + + if (adev->gmc.xgmi.num_physical_nodes > 1) + psp_xgmi_terminate(psp); } psp_asd_terminate(psp); @@ -2685,8 +2692,6 @@ } out: - psp_free_shared_bufs(psp); - return ret; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.h @@ -36,6 +36,7 @@ #define PSP_CMD_BUFFER_SIZE 0x1000 #define PSP_1_MEG 0x100000 #define PSP_TMR_SIZE(adev) ((adev)->asic_type == CHIP_ALDEBARAN ? 0x800000 : 0x400000) +#define PSP_TMR_ALIGNMENT 0x100000 #define PSP_FW_NAME_LEN 0x24 enum psp_shared_mem_size { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c @@ -1805,7 +1805,8 @@ amdgpu_ras_query_error_status(adev, &info); if (adev->ip_versions[MP0_HWIP][0] != IP_VERSION(11, 0, 2) && - adev->ip_versions[MP0_HWIP][0] != IP_VERSION(11, 0, 4)) { + adev->ip_versions[MP0_HWIP][0] != IP_VERSION(11, 0, 4) && + adev->ip_versions[MP0_HWIP][0] != IP_VERSION(13, 0, 0)) { if (amdgpu_ras_reset_error_status(adev, info.head.block)) dev_warn(adev->dev, "Failed to reset error counter and error status"); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_reset.h @@ -37,6 +37,7 @@ struct amdgpu_device *reset_req_dev; struct amdgpu_job *job; struct amdgpu_hive_info *hive; + struct list_head *reset_device_list; unsigned long flags; }; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -424,8 +424,9 @@ static bool amdgpu_mem_visible(struct amdgpu_device *adev, struct ttm_resource *mem) { - uint64_t mem_size = (u64)mem->num_pages << PAGE_SHIFT; + u64 mem_size = (u64)mem->num_pages << PAGE_SHIFT; struct amdgpu_res_cursor cursor; + u64 end; if (mem->mem_type == TTM_PL_SYSTEM || mem->mem_type == TTM_PL_TT) @@ -434,12 +435,18 @@ return false; amdgpu_res_first(mem, 0, mem_size, &cursor); + end = cursor.start + cursor.size; + while (cursor.remaining) { + amdgpu_res_next(&cursor, cursor.size); - /* ttm_resource_ioremap only supports contiguous memory */ - if (cursor.size != mem_size) - return false; + /* ttm_resource_ioremap only supports contiguous memory */ + if (end != cursor.start) + return false; + + end = cursor.start + cursor.size; + } - return cursor.start + cursor.size <= adev->gmc.visible_vram_size; + return end <= adev->gmc.visible_vram_size; } /* --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c @@ -154,6 +154,9 @@ break; case IP_VERSION(3, 0, 2): fw_name = FIRMWARE_VANGOGH; + if ((adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) && + (adev->pg_flags & AMD_PG_SUPPORT_VCN_DPG)) + adev->vcn.indirect_sram = true; break; case IP_VERSION(3, 0, 16): fw_name = FIRMWARE_DIMGREY_CAVEFISH; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.h @@ -161,6 +161,7 @@ #define AMDGPU_VCN_SW_RING_FLAG (1 << 9) #define AMDGPU_VCN_FW_LOGGING_FLAG (1 << 10) #define AMDGPU_VCN_SMU_VERSION_INFO_FLAG (1 << 11) +#define AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG (1 << 11) #define AMDGPU_VCN_IB_FLAG_DECODE_BUFFER 0x00000001 #define AMDGPU_VCN_CMD_FLAG_MSG_BUFFER 0x00000001 @@ -170,6 +171,9 @@ #define VCN_CODEC_DISABLE_MASK_HEVC (1 << 2) #define VCN_CODEC_DISABLE_MASK_H264 (1 << 3) +#define AMDGPU_VCN_SMU_DPM_INTERFACE_DGPU (0) +#define AMDGPU_VCN_SMU_DPM_INTERFACE_APU (1) + enum fw_queue_mode { FW_QUEUE_RING_RESET = 1, FW_QUEUE_DPG_HOLD_OFF = 2, @@ -323,6 +327,9 @@ struct amdgpu_fw_shared_unified_queue_struct sq; uint8_t pad1[8]; struct amdgpu_fw_shared_fw_logging fw_log; + uint8_t pad2[20]; + uint32_t pad3[13]; + struct amdgpu_fw_shared_smu_interface_info smu_dpm_interface; }; struct amdgpu_vcn_fwlog { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c @@ -720,6 +720,12 @@ adev->virt.caps |= AMDGPU_PASSTHROUGH_MODE; } + if (amdgpu_sriov_vf(adev) && adev->asic_type == CHIP_SIENNA_CICHLID) + /* VF MMIO access (except mailbox range) from CPU + * will be blocked during sriov runtime + */ + adev->virt.caps |= AMDGPU_VF_MMIO_ACCESS_PROTECT; + /* we have the ability to check now */ if (amdgpu_sriov_vf(adev)) { switch (adev->asic_type) { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h @@ -31,6 +31,7 @@ #define AMDGPU_SRIOV_CAPS_IS_VF (1 << 2) /* this GPU is a virtual function */ #define AMDGPU_PASSTHROUGH_MODE (1 << 3) /* thw whole GPU is pass through for VM */ #define AMDGPU_SRIOV_CAPS_RUNTIME (1 << 4) /* is out of full access mode */ +#define AMDGPU_VF_MMIO_ACCESS_PROTECT (1 << 5) /* MMIO write access is not allowed in sriov runtime */ /* flags for indirect register access path supported by rlcg for sriov */ #define AMDGPU_RLCG_GC_WRITE_LEGACY (0x8 << 28) @@ -74,6 +75,8 @@ uint64_t data[AMDGPU_VF_ERROR_ENTRY_SIZE]; }; +enum idh_request; + /** * struct amdgpu_virt_ops - amdgpu device virt operations */ @@ -83,7 +86,8 @@ int (*req_init_data)(struct amdgpu_device *adev); int (*reset_gpu)(struct amdgpu_device *adev); int (*wait_reset)(struct amdgpu_device *adev); - void (*trans_msg)(struct amdgpu_device *adev, u32 req, u32 data1, u32 data2, u32 data3); + void (*trans_msg)(struct amdgpu_device *adev, enum idh_request req, + u32 data1, u32 data2, u32 data3); }; /* @@ -294,6 +298,9 @@ #define amdgpu_passthrough(adev) \ ((adev)->virt.caps & AMDGPU_PASSTHROUGH_MODE) +#define amdgpu_sriov_vf_mmio_access_protection(adev) \ +((adev)->virt.caps & AMDGPU_VF_MMIO_ACCESS_PROTECT) + static inline bool is_virtual_machine(void) { #if defined(CONFIG_X86) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c @@ -496,11 +496,12 @@ adev_to_drm(adev)->mode_config.max_height = YRES_MAX; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + adev_to_drm(adev)->mode_config.prefer_shadow = 1; adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base; + adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; + r = amdgpu_display_modeset_create_props(adev); if (r) return r; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c @@ -143,32 +143,6 @@ return 0; } -/* - * vm eviction_lock can be taken in MMU notifiers. Make sure no reclaim-FS - * happens while holding this lock anywhere to prevent deadlocks when - * an MMU notifier runs in reclaim-FS context. - */ -static inline void amdgpu_vm_eviction_lock(struct amdgpu_vm *vm) -{ - mutex_lock(&vm->eviction_lock); - vm->saved_flags = memalloc_noreclaim_save(); -} - -static inline int amdgpu_vm_eviction_trylock(struct amdgpu_vm *vm) -{ - if (mutex_trylock(&vm->eviction_lock)) { - vm->saved_flags = memalloc_noreclaim_save(); - return 1; - } - return 0; -} - -static inline void amdgpu_vm_eviction_unlock(struct amdgpu_vm *vm) -{ - memalloc_noreclaim_restore(vm->saved_flags); - mutex_unlock(&vm->eviction_lock); -} - /** * amdgpu_vm_bo_evicted - vm_bo is evicted * @@ -2293,7 +2267,11 @@ */ #ifdef CONFIG_X86_64 if (amdgpu_vm_update_mode == -1) { - if (amdgpu_gmc_vram_full_visible(&adev->gmc)) + /* For asic with VF MMIO access protection + * avoid using CPU for VM table updates + */ + if (amdgpu_gmc_vram_full_visible(&adev->gmc) && + !amdgpu_sriov_vf_mmio_access_protection(adev)) adev->vm_manager.vm_update_mode = AMDGPU_VM_USE_CPU_FOR_COMPUTE; else --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.h @@ -485,7 +485,48 @@ */ static inline uint64_t amdgpu_vm_tlb_seq(struct amdgpu_vm *vm) { + unsigned long flags; + spinlock_t *lock; + + /* + * Workaround to stop racing between the fence signaling and handling + * the cb. The lock is static after initially setting it up, just make + * sure that the dma_fence structure isn't freed up. + */ + rcu_read_lock(); + lock = vm->last_tlb_flush->lock; + rcu_read_unlock(); + + spin_lock_irqsave(lock, flags); + spin_unlock_irqrestore(lock, flags); + return atomic64_read(&vm->tlb_seq); } +/* + * vm eviction_lock can be taken in MMU notifiers. Make sure no reclaim-FS + * happens while holding this lock anywhere to prevent deadlocks when + * an MMU notifier runs in reclaim-FS context. + */ +static inline void amdgpu_vm_eviction_lock(struct amdgpu_vm *vm) +{ + mutex_lock(&vm->eviction_lock); + vm->saved_flags = memalloc_noreclaim_save(); +} + +static inline bool amdgpu_vm_eviction_trylock(struct amdgpu_vm *vm) +{ + if (mutex_trylock(&vm->eviction_lock)) { + vm->saved_flags = memalloc_noreclaim_save(); + return true; + } + return false; +} + +static inline void amdgpu_vm_eviction_unlock(struct amdgpu_vm *vm) +{ + memalloc_noreclaim_restore(vm->saved_flags); + mutex_unlock(&vm->eviction_lock); +} + #endif --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c @@ -597,7 +597,9 @@ if (entry->bo) return 0; + amdgpu_vm_eviction_unlock(vm); r = amdgpu_vm_pt_create(adev, vm, cursor->level, immediate, &pt); + amdgpu_vm_eviction_lock(vm); if (r) return r; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_vm_sdma.c @@ -211,12 +211,15 @@ int r; /* Wait for PD/PT moves to be completed */ - dma_resv_for_each_fence(&cursor, bo->tbo.base.resv, - DMA_RESV_USAGE_KERNEL, fence) { + dma_resv_iter_begin(&cursor, bo->tbo.base.resv, DMA_RESV_USAGE_KERNEL); + dma_resv_for_each_fence_unlocked(&cursor, fence) { r = amdgpu_sync_fence(&p->job->sync, fence); - if (r) + if (r) { + dma_resv_iter_end(&cursor); return r; + } } + dma_resv_iter_end(&cursor); do { ndw = p->num_dw_left; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/amdgpu_xgmi.c @@ -742,7 +742,7 @@ amdgpu_put_xgmi_hive(hive); } - return psp_xgmi_terminate(&adev->psp); + return 0; } static int amdgpu_xgmi_ras_late_init(struct amdgpu_device *adev, struct ras_common_if *ras_block) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c @@ -2796,8 +2796,7 @@ adev_to_drm(adev)->mode_config.max_height = 16384; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + adev_to_drm(adev)->mode_config.prefer_shadow = 1; adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c @@ -2914,8 +2914,7 @@ adev_to_drm(adev)->mode_config.max_height = 16384; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + adev_to_drm(adev)->mode_config.prefer_shadow = 1; adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c @@ -2673,8 +2673,7 @@ adev_to_drm(adev)->mode_config.max_width = 16384; adev_to_drm(adev)->mode_config.max_height = 16384; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + adev_to_drm(adev)->mode_config.prefer_shadow = 1; adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; adev_to_drm(adev)->mode_config.fb_base = adev->gmc.aper_base; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c @@ -2693,8 +2693,11 @@ adev_to_drm(adev)->mode_config.max_height = 16384; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + if (adev->asic_type == CHIP_HAWAII) + /* disable prefer shadow for now due to hibernation issues */ + adev_to_drm(adev)->mode_config.prefer_shadow = 0; + else + adev_to_drm(adev)->mode_config.prefer_shadow = 1; adev_to_drm(adev)->mode_config.fb_modifiers_not_supported = true; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c @@ -3780,11 +3780,12 @@ static int gfx_v10_0_ring_test_ring(struct amdgpu_ring *ring) { struct amdgpu_device *adev = ring->adev; + uint32_t scratch = SOC15_REG_OFFSET(GC, 0, mmSCRATCH_REG0); uint32_t tmp = 0; unsigned i; int r; - WREG32_SOC15(GC, 0, mmSCRATCH_REG0, 0xCAFEDEAD); + WREG32(scratch, 0xCAFEDEAD); r = amdgpu_ring_alloc(ring, 3); if (r) { DRM_ERROR("amdgpu: cp failed to lock ring %d (%d).\n", @@ -3793,13 +3794,13 @@ } amdgpu_ring_write(ring, PACKET3(PACKET3_SET_UCONFIG_REG, 1)); - amdgpu_ring_write(ring, SOC15_REG_OFFSET(GC, 0, mmSCRATCH_REG0) - + amdgpu_ring_write(ring, scratch - PACKET3_SET_UCONFIG_REG_START); amdgpu_ring_write(ring, 0xDEADBEEF); amdgpu_ring_commit(ring); for (i = 0; i < adev->usec_timeout; i++) { - tmp = RREG32_SOC15(GC, 0, mmSCRATCH_REG0); + tmp = RREG32(scratch); if (tmp == 0xDEADBEEF) break; if (amdgpu_emu_mode == 1) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c @@ -1864,7 +1864,7 @@ WREG32_SOC15(GC, 0, regSH_MEM_BASES, sh_mem_bases); /* Enable trap for each kfd vmid. */ - data = RREG32(SOC15_REG_OFFSET(GC, 0, regSPI_GDBG_PER_VMID_CNTL)); + data = RREG32_SOC15(GC, 0, regSPI_GDBG_PER_VMID_CNTL); data = REG_SET_FIELD(data, SPI_GDBG_PER_VMID_CNTL, TRAP_EN, 1); } soc21_grbm_select(adev, 0, 0, 0, 0); @@ -5090,9 +5090,12 @@ data = REG_SET_FIELD(data, SDMA0_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1); WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data); - data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL); - data = REG_SET_FIELD(data, SDMA1_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1); - WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data); + /* Some ASICs only have one SDMA instance, not need to configure SDMA1 */ + if (adev->sdma.num_instances > 1) { + data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL); + data = REG_SET_FIELD(data, SDMA1_RLC_CGCG_CTRL, CGCG_INT_ENABLE, 1); + WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data); + } } else { /* Program RLC_CGCG_CGLS_CTRL */ def = data = RREG32_SOC15(GC, 0, regRLC_CGCG_CGLS_CTRL); @@ -5121,9 +5124,12 @@ data &= ~SDMA0_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK; WREG32_SOC15(GC, 0, regSDMA0_RLC_CGCG_CTRL, data); - data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL); - data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK; - WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data); + /* Some ASICs only have one SDMA instance, not need to configure SDMA1 */ + if (adev->sdma.num_instances > 1) { + data = RREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL); + data &= ~SDMA1_RLC_CGCG_CTRL__CGCG_INT_ENABLE_MASK; + WREG32_SOC15(GC, 0, regSDMA1_RLC_CGCG_CTRL, data); + } } } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c @@ -2587,7 +2587,8 @@ gfx_v9_0_tiling_mode_table_init(adev); - gfx_v9_0_setup_rb(adev); + if (adev->gfx.num_gfx_rings) + gfx_v9_0_setup_rb(adev); gfx_v9_0_get_cu_info(adev, &adev->gfx.cu_info); adev->gfx.config.db_debug2 = RREG32_SOC15(GC, 0, mmDB_DEBUG2); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c @@ -416,6 +416,7 @@ uint32_t seq; uint16_t queried_pasid; bool ret; + u32 usec_timeout = amdgpu_sriov_vf(adev) ? SRIOV_USEC_TIMEOUT : adev->usec_timeout; struct amdgpu_ring *ring = &adev->gfx.kiq.ring; struct amdgpu_kiq *kiq = &adev->gfx.kiq; @@ -434,7 +435,7 @@ amdgpu_ring_commit(ring); spin_unlock(&adev->gfx.kiq.ring_lock); - r = amdgpu_fence_wait_polling(ring, seq, adev->usec_timeout); + r = amdgpu_fence_wait_polling(ring, seq, usec_timeout); if (r < 1) { dev_err(adev->dev, "wait for kiq fence error: %ld.\n", r); return -ETIME; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c @@ -181,6 +181,10 @@ /* Use register 17 for GART */ const unsigned eng = 17; unsigned int i; + unsigned char hub_ip = 0; + + hub_ip = (vmhub == AMDGPU_GFXHUB_0) ? + GC_HWIP : MMHUB_HWIP; spin_lock(&adev->gmc.invalidate_lock); /* @@ -194,8 +198,8 @@ if (use_semaphore) { 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 + - hub->eng_distance * eng); + tmp = RREG32_RLC_NO_KIQ(hub->vm_inv_eng0_sem + + hub->eng_distance * eng, hub_ip); if (tmp & 0x1) break; udelay(1); @@ -205,12 +209,12 @@ DRM_ERROR("Timeout waiting for sem acquire in VM flush!\n"); } - WREG32_NO_KIQ(hub->vm_inv_eng0_req + hub->eng_distance * eng, inv_req); + WREG32_RLC_NO_KIQ(hub->vm_inv_eng0_req + hub->eng_distance * eng, inv_req, hub_ip); /* Wait for ACK with a delay.*/ for (i = 0; i < adev->usec_timeout; i++) { - tmp = RREG32_NO_KIQ(hub->vm_inv_eng0_ack + - hub->eng_distance * eng); + tmp = RREG32_RLC_NO_KIQ(hub->vm_inv_eng0_ack + + hub->eng_distance * eng, hub_ip); tmp &= 1 << vmid; if (tmp) break; @@ -224,8 +228,8 @@ * add semaphore release after invalidation, * write with 0 means semaphore release */ - WREG32_NO_KIQ(hub->vm_inv_eng0_sem + - hub->eng_distance * eng, 0); + WREG32_RLC_NO_KIQ(hub->vm_inv_eng0_sem + + hub->eng_distance * eng, 0, hub_ip); /* Issue additional private vm invalidation to MMHUB */ if ((vmhub != AMDGPU_GFXHUB_0) && --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c @@ -896,6 +896,7 @@ uint32_t seq; uint16_t queried_pasid; bool ret; + u32 usec_timeout = amdgpu_sriov_vf(adev) ? SRIOV_USEC_TIMEOUT : adev->usec_timeout; struct amdgpu_ring *ring = &adev->gfx.kiq.ring; struct amdgpu_kiq *kiq = &adev->gfx.kiq; @@ -935,7 +936,7 @@ amdgpu_ring_commit(ring); spin_unlock(&adev->gfx.kiq.ring_lock); - r = amdgpu_fence_wait_polling(ring, seq, adev->usec_timeout); + r = amdgpu_fence_wait_polling(ring, seq, usec_timeout); if (r < 1) { dev_err(adev->dev, "wait for kiq fence error: %ld.\n", r); up_read(&adev->reset_domain->sem); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/ih_v6_0.c @@ -727,6 +727,7 @@ static const struct amdgpu_ih_funcs ih_v6_0_funcs = { .get_wptr = ih_v6_0_get_wptr, .decode_iv = amdgpu_ih_decode_iv_helper, + .decode_iv_ts = amdgpu_ih_decode_iv_ts_helper, .set_rptr = ih_v6_0_set_rptr }; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/mes_v11_0.c @@ -93,7 +93,14 @@ union MESAPI__ADD_QUEUE *x_pkt = pkt; struct amdgpu_device *adev = mes->adev; struct amdgpu_ring *ring = &mes->ring; + signed long timeout = adev->usec_timeout; + if (amdgpu_emu_mode) { + timeout *= 100; + } else if (amdgpu_sriov_vf(adev)) { + /* Worst case in sriov where all other 15 VF timeout, each VF needs about 600ms */ + timeout = 15 * 600 * 1000; + } BUG_ON(size % 4 != 0); if (amdgpu_ring_alloc(ring, ndw)) @@ -105,7 +112,7 @@ DRM_DEBUG("MES msg=%d was emitted\n", x_pkt->header.opcode); r = amdgpu_fence_wait_polling(ring, ring->fence_drv.sync_seq, - adev->usec_timeout * (amdgpu_emu_mode ? 100 : 1)); + timeout); if (r < 1) { DRM_ERROR("MES failed to response msg=%d\n", x_pkt->header.opcode); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c @@ -176,6 +176,7 @@ tmp = REG_SET_FIELD(tmp, VM_L2_CNTL2, INVALIDATE_L2_CACHE, 1); WREG32_SOC15(MMHUB, 0, mmVM_L2_CNTL2, tmp); + tmp = mmVM_L2_CNTL3_DEFAULT; if (adev->gmc.translate_further) { tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, BANK_SELECT, 12); tmp = REG_SET_FIELD(tmp, VM_L2_CNTL3, --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c @@ -32,8 +32,6 @@ #include "gc/gc_10_1_0_offset.h" #include "soc15_common.h" -#define mmMM_ATC_L2_MISC_CG_Sienna_Cichlid 0x064d -#define mmMM_ATC_L2_MISC_CG_Sienna_Cichlid_BASE_IDX 0 #define mmDAGB0_CNTL_MISC2_Sienna_Cichlid 0x0070 #define mmDAGB0_CNTL_MISC2_Sienna_Cichlid_BASE_IDX 0 @@ -574,7 +572,6 @@ case IP_VERSION(2, 1, 0): case IP_VERSION(2, 1, 1): case IP_VERSION(2, 1, 2): - def = data = RREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG_Sienna_Cichlid); def1 = data1 = RREG32_SOC15(MMHUB, 0, mmDAGB0_CNTL_MISC2_Sienna_Cichlid); break; default: @@ -608,8 +605,6 @@ case IP_VERSION(2, 1, 0): case IP_VERSION(2, 1, 1): case IP_VERSION(2, 1, 2): - if (def != data) - WREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG_Sienna_Cichlid, data); if (def1 != data1) WREG32_SOC15(MMHUB, 0, mmDAGB0_CNTL_MISC2_Sienna_Cichlid, data1); break; @@ -634,8 +629,8 @@ case IP_VERSION(2, 1, 0): case IP_VERSION(2, 1, 1): case IP_VERSION(2, 1, 2): - def = data = RREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG_Sienna_Cichlid); - break; + /* There is no ATCL2 in MMHUB for 2.1.x */ + return; default: def = data = RREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG); break; @@ -646,18 +641,8 @@ else data &= ~MM_ATC_L2_MISC_CG__MEM_LS_ENABLE_MASK; - if (def != data) { - switch (adev->ip_versions[MMHUB_HWIP][0]) { - case IP_VERSION(2, 1, 0): - case IP_VERSION(2, 1, 1): - case IP_VERSION(2, 1, 2): - WREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG_Sienna_Cichlid, data); - break; - default: - WREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG, data); - break; - } - } + if (def != data) + WREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG, data); } static int mmhub_v2_0_set_clockgating(struct amdgpu_device *adev, @@ -695,7 +680,10 @@ case IP_VERSION(2, 1, 0): case IP_VERSION(2, 1, 1): case IP_VERSION(2, 1, 2): - data = RREG32_SOC15(MMHUB, 0, mmMM_ATC_L2_MISC_CG_Sienna_Cichlid); + /* There is no ATCL2 in MMHUB for 2.1.x. Keep the status + * based on DAGB + */ + data = MM_ATC_L2_MISC_CG__ENABLE_MASK; data1 = RREG32_SOC15(MMHUB, 0, mmDAGB0_CNTL_MISC2_Sienna_Cichlid); break; default: --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c @@ -169,17 +169,17 @@ uint64_t value; uint32_t tmp; - /* Disable AGP. */ - WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_BASE, 0); - WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_TOP, 0); - WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_BOT, 0x00FFFFFF); - if (!amdgpu_sriov_vf(adev)) { /* * the new L1 policy will block SRIOV guest from writing * these regs, and they will be programed at host. * so skip programing these regs. */ + /* Disable AGP. */ + WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_BASE, 0); + WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_TOP, 0); + WREG32_SOC15(MMHUB, 0, regMMMC_VM_AGP_BOT, 0x00FFFFFF); + /* Program the system aperture low logical page number. */ WREG32_SOC15(MMHUB, 0, regMMMC_VM_SYSTEM_APERTURE_LOW_ADDR, adev->gmc.vram_start >> 18); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/navi10_ih.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/navi10_ih.c @@ -409,9 +409,11 @@ u32 wptr, tmp; struct amdgpu_ih_regs *ih_regs; - if (ih == &adev->irq.ih) { + if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { /* Only ring0 supports writeback. On other rings fall back * to register-based code with overflow checking below. + * ih_soft ring doesn't have any backing hardware registers, + * update wptr and return. */ wptr = le32_to_cpu(*ih->wptr_cpu); @@ -483,6 +485,9 @@ { struct amdgpu_ih_regs *ih_regs; + if (ih == &adev->irq.ih_soft) + return; + if (ih->use_doorbell) { /* XXX check if swapping is necessary on BE */ *ih->rptr_cpu = ih->rptr; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c @@ -328,27 +328,6 @@ .ref_and_mask_sdma1 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__SDMA1_MASK, }; -const struct nbio_hdp_flush_reg nbio_v2_3_hdp_flush_reg_sc = { - .ref_and_mask_cp0 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP0_MASK, - .ref_and_mask_cp1 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP1_MASK, - .ref_and_mask_cp2 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP2_MASK, - .ref_and_mask_cp3 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP3_MASK, - .ref_and_mask_cp4 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP4_MASK, - .ref_and_mask_cp5 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP5_MASK, - .ref_and_mask_cp6 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP6_MASK, - .ref_and_mask_cp7 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP7_MASK, - .ref_and_mask_cp8 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP8_MASK, - .ref_and_mask_cp9 = BIF_BX_PF_GPU_HDP_FLUSH_DONE__CP9_MASK, - .ref_and_mask_sdma0 = GPU_HDP_FLUSH_DONE__RSVD_ENG1_MASK, - .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__RSVD_ENG2_MASK, - .ref_and_mask_sdma2 = GPU_HDP_FLUSH_DONE__RSVD_ENG3_MASK, - .ref_and_mask_sdma3 = GPU_HDP_FLUSH_DONE__RSVD_ENG4_MASK, - .ref_and_mask_sdma4 = GPU_HDP_FLUSH_DONE__RSVD_ENG5_MASK, - .ref_and_mask_sdma5 = GPU_HDP_FLUSH_DONE__RSVD_ENG6_MASK, - .ref_and_mask_sdma6 = GPU_HDP_FLUSH_DONE__RSVD_ENG7_MASK, - .ref_and_mask_sdma7 = GPU_HDP_FLUSH_DONE__RSVD_ENG8_MASK, -}; - static void nbio_v2_3_init_registers(struct amdgpu_device *adev) { uint32_t def, data; @@ -401,6 +380,7 @@ WREG32_PCIE(smnPCIE_LC_CNTL, data); } +#ifdef CONFIG_PCIEASPM static void nbio_v2_3_program_ltr(struct amdgpu_device *adev) { uint32_t def, data; @@ -422,9 +402,11 @@ if (def != data) WREG32_PCIE(smnBIF_CFG_DEV0_EPF0_DEVICE_CNTL2, data); } +#endif static void nbio_v2_3_program_aspm(struct amdgpu_device *adev) { +#ifdef CONFIG_PCIEASPM uint32_t def, data; def = data = RREG32_PCIE(smnPCIE_LC_CNTL); @@ -480,7 +462,10 @@ if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL6, data); - nbio_v2_3_program_ltr(adev); + /* Don't bother about LTR if LTR is not enabled + * in the path */ + if (adev->pdev->ltr_path) + nbio_v2_3_program_ltr(adev); def = data = RREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP3); data |= 0x5DE0 << RCC_BIF_STRAP3__STRAP_VLINK_ASPM_IDLE_TIMER__SHIFT; @@ -504,6 +489,7 @@ data &= ~PCIE_LC_CNTL3__LC_DSC_DONT_ENTER_L23_AFTER_PME_ACK_MASK; if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL3, data); +#endif } static void nbio_v2_3_apply_lc_spc_mode_wa(struct amdgpu_device *adev) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v2_3.h @@ -27,7 +27,6 @@ #include "soc15_common.h" extern const struct nbio_hdp_flush_reg nbio_v2_3_hdp_flush_reg; -extern const struct nbio_hdp_flush_reg nbio_v2_3_hdp_flush_reg_sc; extern const struct amdgpu_nbio_funcs nbio_v2_3_funcs; #endif --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v6_1.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v6_1.c @@ -282,6 +282,7 @@ mmBIF_BX_DEV0_EPF0_VF0_HDP_MEM_COHERENCY_FLUSH_CNTL) << 2; } +#ifdef CONFIG_PCIEASPM static void nbio_v6_1_program_ltr(struct amdgpu_device *adev) { uint32_t def, data; @@ -303,9 +304,11 @@ if (def != data) WREG32_PCIE(smnBIF_CFG_DEV0_EPF0_DEVICE_CNTL2, data); } +#endif static void nbio_v6_1_program_aspm(struct amdgpu_device *adev) { +#ifdef CONFIG_PCIEASPM uint32_t def, data; def = data = RREG32_PCIE(smnPCIE_LC_CNTL); @@ -361,7 +364,10 @@ if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL6, data); - nbio_v6_1_program_ltr(adev); + /* Don't bother about LTR if LTR is not enabled + * in the path */ + if (adev->pdev->ltr_path) + nbio_v6_1_program_ltr(adev); def = data = RREG32_PCIE(smnRCC_BIF_STRAP3); data |= 0x5DE0 << RCC_BIF_STRAP3__STRAP_VLINK_ASPM_IDLE_TIMER__SHIFT; @@ -385,6 +391,7 @@ data &= ~PCIE_LC_CNTL3__LC_DSC_DONT_ENTER_L23_AFTER_PME_ACK_MASK; if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL3, data); +#endif } const struct amdgpu_nbio_funcs nbio_v6_1_funcs = { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.c @@ -339,27 +339,6 @@ .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__SDMA1_MASK, }; -const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg_ald = { - .ref_and_mask_cp0 = GPU_HDP_FLUSH_DONE__CP0_MASK, - .ref_and_mask_cp1 = GPU_HDP_FLUSH_DONE__CP1_MASK, - .ref_and_mask_cp2 = GPU_HDP_FLUSH_DONE__CP2_MASK, - .ref_and_mask_cp3 = GPU_HDP_FLUSH_DONE__CP3_MASK, - .ref_and_mask_cp4 = GPU_HDP_FLUSH_DONE__CP4_MASK, - .ref_and_mask_cp5 = GPU_HDP_FLUSH_DONE__CP5_MASK, - .ref_and_mask_cp6 = GPU_HDP_FLUSH_DONE__CP6_MASK, - .ref_and_mask_cp7 = GPU_HDP_FLUSH_DONE__CP7_MASK, - .ref_and_mask_cp8 = GPU_HDP_FLUSH_DONE__CP8_MASK, - .ref_and_mask_cp9 = GPU_HDP_FLUSH_DONE__CP9_MASK, - .ref_and_mask_sdma0 = GPU_HDP_FLUSH_DONE__RSVD_ENG1_MASK, - .ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__RSVD_ENG2_MASK, - .ref_and_mask_sdma2 = GPU_HDP_FLUSH_DONE__RSVD_ENG3_MASK, - .ref_and_mask_sdma3 = GPU_HDP_FLUSH_DONE__RSVD_ENG4_MASK, - .ref_and_mask_sdma4 = GPU_HDP_FLUSH_DONE__RSVD_ENG5_MASK, - .ref_and_mask_sdma5 = GPU_HDP_FLUSH_DONE__RSVD_ENG6_MASK, - .ref_and_mask_sdma6 = GPU_HDP_FLUSH_DONE__RSVD_ENG7_MASK, - .ref_and_mask_sdma7 = GPU_HDP_FLUSH_DONE__RSVD_ENG8_MASK, -}; - static void nbio_v7_4_init_registers(struct amdgpu_device *adev) { uint32_t baco_cntl; @@ -694,6 +673,7 @@ }; +#ifdef CONFIG_PCIEASPM static void nbio_v7_4_program_ltr(struct amdgpu_device *adev) { uint32_t def, data; @@ -715,9 +695,11 @@ if (def != data) WREG32_PCIE(smnBIF_CFG_DEV0_EPF0_DEVICE_CNTL2, data); } +#endif static void nbio_v7_4_program_aspm(struct amdgpu_device *adev) { +#ifdef CONFIG_PCIEASPM uint32_t def, data; if (adev->ip_versions[NBIO_HWIP][0] == IP_VERSION(7, 4, 4)) @@ -776,7 +758,10 @@ if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL6, data); - nbio_v7_4_program_ltr(adev); + /* Don't bother about LTR if LTR is not enabled + * in the path */ + if (adev->pdev->ltr_path) + nbio_v7_4_program_ltr(adev); def = data = RREG32_PCIE(smnRCC_BIF_STRAP3); data |= 0x5DE0 << RCC_BIF_STRAP3__STRAP_VLINK_ASPM_IDLE_TIMER__SHIFT; @@ -800,6 +785,7 @@ data &= ~PCIE_LC_CNTL3__LC_DSC_DONT_ENTER_L23_AFTER_PME_ACK_MASK; if (def != data) WREG32_PCIE(smnPCIE_LC_CNTL3, data); +#endif } const struct amdgpu_nbio_funcs nbio_v7_4_funcs = { --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v7_4.h @@ -27,7 +27,6 @@ #include "soc15_common.h" extern const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg; -extern const struct nbio_hdp_flush_reg nbio_v7_4_hdp_flush_reg_ald; extern const struct amdgpu_nbio_funcs nbio_v7_4_funcs; extern struct amdgpu_nbio_ras nbio_v7_4_ras; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nbio_v7_7.c @@ -28,6 +28,14 @@ #include "nbio/nbio_7_7_0_sh_mask.h" #include +static void nbio_v7_7_remap_hdp_registers(struct amdgpu_device *adev) +{ + WREG32_SOC15(NBIO, 0, regBIF_BX0_REMAP_HDP_MEM_FLUSH_CNTL, + adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_MEM_FLUSH_CNTL); + WREG32_SOC15(NBIO, 0, regBIF_BX0_REMAP_HDP_REG_FLUSH_CNTL, + adev->rmmio_remap.reg_offset + KFD_MMIO_REMAP_HDP_REG_FLUSH_CNTL); +} + static u32 nbio_v7_7_get_rev_id(struct amdgpu_device *adev) { u32 tmp; @@ -237,4 +245,5 @@ .ih_doorbell_range = nbio_v7_7_ih_doorbell_range, .ih_control = nbio_v7_7_ih_control, .init_registers = nbio_v7_7_init_registers, + .remap_hdp_registers = nbio_v7_7_remap_hdp_registers, }; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/nv.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/nv.c @@ -82,10 +82,10 @@ /* Navi1x */ static const struct amdgpu_video_codec_info nv_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, @@ -100,10 +100,10 @@ /* Sienna Cichlid */ static const struct amdgpu_video_codec_info sc_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, @@ -125,10 +125,10 @@ static struct amdgpu_video_codec_info sriov_sc_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, @@ -149,7 +149,7 @@ /* Beige Goby*/ static const struct amdgpu_video_codec_info bg_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, }; @@ -166,7 +166,7 @@ /* Yellow Carp*/ static const struct amdgpu_video_codec_info yc_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/psp_v12_0.c @@ -101,6 +101,16 @@ adev->psp.dtm_context.context.bin_desc.start_addr = (uint8_t *)adev->psp.hdcp_context.context.bin_desc.start_addr + le32_to_cpu(ta_hdr->dtm.offset_bytes); + + if (adev->apu_flags & AMD_APU_IS_RENOIR) { + adev->psp.securedisplay_context.context.bin_desc.fw_version = + le32_to_cpu(ta_hdr->securedisplay.fw_version); + adev->psp.securedisplay_context.context.bin_desc.size_bytes = + le32_to_cpu(ta_hdr->securedisplay.size_bytes); + adev->psp.securedisplay_context.context.bin_desc.start_addr = + (uint8_t *)adev->psp.hdcp_context.context.bin_desc.start_addr + + le32_to_cpu(ta_hdr->securedisplay.offset_bytes); + } } return 0; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c @@ -980,13 +980,13 @@ /** - * sdma_v4_0_gfx_stop - stop the gfx async dma engines + * sdma_v4_0_gfx_enable - enable the gfx async dma engines * * @adev: amdgpu_device pointer - * - * Stop the gfx async dma ring buffers (VEGA10). + * @enable: enable SDMA RB/IB + * control the gfx async dma ring buffers (VEGA10). */ -static void sdma_v4_0_gfx_stop(struct amdgpu_device *adev) +static void sdma_v4_0_gfx_enable(struct amdgpu_device *adev, bool enable) { struct amdgpu_ring *sdma[AMDGPU_MAX_SDMA_INSTANCES]; u32 rb_cntl, ib_cntl; @@ -1001,10 +1001,10 @@ } rb_cntl = RREG32_SDMA(i, mmSDMA0_GFX_RB_CNTL); - rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_GFX_RB_CNTL, RB_ENABLE, 0); + rb_cntl = REG_SET_FIELD(rb_cntl, SDMA0_GFX_RB_CNTL, RB_ENABLE, enable ? 1 : 0); WREG32_SDMA(i, mmSDMA0_GFX_RB_CNTL, rb_cntl); ib_cntl = RREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL); - ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, IB_ENABLE, 0); + ib_cntl = REG_SET_FIELD(ib_cntl, SDMA0_GFX_IB_CNTL, IB_ENABLE, enable ? 1 : 0); WREG32_SDMA(i, mmSDMA0_GFX_IB_CNTL, ib_cntl); } } @@ -1131,7 +1131,7 @@ int i; if (!enable) { - sdma_v4_0_gfx_stop(adev); + sdma_v4_0_gfx_enable(adev, enable); sdma_v4_0_rlc_stop(adev); if (adev->sdma.has_page_queue) sdma_v4_0_page_stop(adev); @@ -2043,8 +2043,10 @@ struct amdgpu_device *adev = (struct amdgpu_device *)handle; /* SMU saves SDMA state for us */ - if (adev->in_s0ix) + if (adev->in_s0ix) { + sdma_v4_0_gfx_enable(adev, false); return 0; + } return sdma_v4_0_hw_fini(adev); } @@ -2054,8 +2056,12 @@ struct amdgpu_device *adev = (struct amdgpu_device *)handle; /* SMU restores SDMA state for us */ - if (adev->in_s0ix) + if (adev->in_s0ix) { + sdma_v4_0_enable(adev, true); + sdma_v4_0_gfx_enable(adev, true); + amdgpu_ttm_set_buffer_funcs_status(adev, true); return 0; + } return sdma_v4_0_hw_init(adev); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c @@ -854,7 +854,8 @@ m->sdmax_rlcx_rb_cntl = order_base_2(prop->queue_size / 4) << SDMA0_QUEUE0_RB_CNTL__RB_SIZE__SHIFT | 1 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_ENABLE__SHIFT | - 4 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_TIMER__SHIFT; + 4 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_TIMER__SHIFT | + 1 << SDMA0_QUEUE0_RB_CNTL__F32_WPTR_POLL_ENABLE__SHIFT; m->sdmax_rlcx_rb_base = lower_32_bits(prop->hqd_base_gpu_addr >> 8); m->sdmax_rlcx_rb_base_hi = upper_32_bits(prop->hqd_base_gpu_addr >> 8); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/soc15.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/soc15.c @@ -103,10 +103,10 @@ /* Vega */ static const struct amdgpu_video_codec_info vega_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 4096, 4096, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, }; @@ -120,10 +120,10 @@ /* Raven */ static const struct amdgpu_video_codec_info rv_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 4096, 4096, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 4096, 4096, 0)}, @@ -138,10 +138,10 @@ /* Renoir, Arcturus */ static const struct amdgpu_video_codec_info rn_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4906, 3)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4906, 5)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4906, 4)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG2, 4096, 4096, 3)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4, 4096, 4096, 5)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VC1, 4096, 4096, 4)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, @@ -1211,22 +1211,17 @@ return 0; } -static void soc15_doorbell_range_init(struct amdgpu_device *adev) +static void soc15_sdma_doorbell_range_init(struct amdgpu_device *adev) { int i; - struct amdgpu_ring *ring; - /* sdma/ih doorbell range are programed by hypervisor */ + /* sdma doorbell range is programed by hypervisor */ if (!amdgpu_sriov_vf(adev)) { for (i = 0; i < adev->sdma.num_instances; i++) { - ring = &adev->sdma.instance[i].ring; adev->nbio.funcs->sdma_doorbell_range(adev, i, - ring->use_doorbell, ring->doorbell_index, + true, adev->doorbell_index.sdma_engine[i] << 1, adev->doorbell_index.sdma_doorbell_range); } - - adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell, - adev->irq.ih.doorbell_index); } } @@ -1251,10 +1246,11 @@ soc15_enable_doorbell_aperture(adev, true); /* HW doorbell routing policy: doorbell writing not * in SDMA/IH/MM/ACV range will be routed to CP. So - * we need to init SDMA/IH/MM/ACV doorbell range prior - * to CP ip block init and ring test. + * we need to init SDMA doorbell range prior + * to CP ip block init and ring test. IH already + * happens before CP. */ - soc15_doorbell_range_init(adev); + soc15_sdma_doorbell_range_init(adev); return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/soc21.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/soc21.c @@ -61,7 +61,7 @@ static const struct amdgpu_video_codec_info vcn_4_0_0_video_codecs_decode_array[] = { - {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4906, 52)}, + {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_MPEG4_AVC, 4096, 4096, 52)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_HEVC, 8192, 4352, 186)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_JPEG, 4096, 4096, 0)}, {codec_info_build(AMDGPU_INFO_VIDEO_CAPS_CODEC_IDX_VP9, 8192, 4352, 0)}, @@ -530,8 +530,10 @@ case IP_VERSION(11, 0, 0): adev->cg_flags = AMD_CG_SUPPORT_GFX_CGCG | AMD_CG_SUPPORT_GFX_CGLS | +#if 0 AMD_CG_SUPPORT_GFX_3D_CGCG | AMD_CG_SUPPORT_GFX_3D_CGLS | +#endif AMD_CG_SUPPORT_GFX_MGCG | AMD_CG_SUPPORT_REPEATER_FGCG | AMD_CG_SUPPORT_GFX_FGCG | @@ -549,6 +551,10 @@ AMD_PG_SUPPORT_JPEG | AMD_PG_SUPPORT_ATHUB | AMD_PG_SUPPORT_MMHUB; + if (amdgpu_sriov_vf(adev)) { + adev->cg_flags = 0; + adev->pg_flags = 0; + } adev->external_rev_id = adev->rev_id + 0x1; // TODO: need update break; case IP_VERSION(11, 0, 2): --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c @@ -196,6 +196,10 @@ fw_shared->sq.is_enabled = 1; } + fw_shared->present_flag_0 |= cpu_to_le32(AMDGPU_VCN_SMU_DPM_INTERFACE_FLAG); + fw_shared->smu_dpm_interface.smu_interface_type = (adev->flags & AMD_IS_APU) ? + AMDGPU_VCN_SMU_DPM_INTERFACE_APU : AMDGPU_VCN_SMU_DPM_INTERFACE_DGPU; + if (amdgpu_vcnfw_log) amdgpu_vcn_fwlog_init(&adev->vcn.inst[i]); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/vega10_ih.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/vega10_ih.c @@ -289,6 +289,10 @@ } } + if (!amdgpu_sriov_vf(adev)) + adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell, + adev->irq.ih.doorbell_index); + pci_set_master(adev->pdev); /* enable interrupts */ @@ -334,9 +338,11 @@ u32 wptr, tmp; struct amdgpu_ih_regs *ih_regs; - if (ih == &adev->irq.ih) { + if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { /* Only ring0 supports writeback. On other rings fall back * to register-based code with overflow checking below. + * ih_soft ring doesn't have any backing hardware registers, + * update wptr and return. */ wptr = le32_to_cpu(*ih->wptr_cpu); @@ -409,6 +415,9 @@ { struct amdgpu_ih_regs *ih_regs; + if (ih == &adev->irq.ih_soft) + return; + if (ih->use_doorbell) { /* XXX check if swapping is necessary on BE */ *ih->rptr_cpu = ih->rptr; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdgpu/vega20_ih.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdgpu/vega20_ih.c @@ -340,6 +340,10 @@ } } + if (!amdgpu_sriov_vf(adev)) + adev->nbio.funcs->ih_doorbell_range(adev, adev->irq.ih.use_doorbell, + adev->irq.ih.doorbell_index); + pci_set_master(adev->pdev); /* enable interrupts */ @@ -385,9 +389,11 @@ u32 wptr, tmp; struct amdgpu_ih_regs *ih_regs; - if (ih == &adev->irq.ih) { + if (ih == &adev->irq.ih || ih == &adev->irq.ih_soft) { /* Only ring0 supports writeback. On other rings fall back * to register-based code with overflow checking below. + * ih_soft ring doesn't have any backing hardware registers, + * update wptr and return. */ wptr = le32_to_cpu(*ih->wptr_cpu); @@ -461,6 +467,9 @@ { struct amdgpu_ih_regs *ih_regs; + if (ih == &adev->irq.ih_soft) + return; + if (ih->use_doorbell) { /* XXX check if swapping is necessary on BE */ *ih->rptr_cpu = ih->rptr; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -814,7 +814,7 @@ err = kfd_wait_on_events(p, args->num_events, (void __user *)args->events_ptr, (args->wait_for_all != 0), - args->timeout, &args->wait_result); + &args->timeout, &args->wait_result); return err; } @@ -1855,7 +1855,7 @@ { int ret; uint32_t num_devices, num_bos, num_objects; - uint64_t priv_size, priv_offset = 0; + uint64_t priv_size, priv_offset = 0, bo_priv_offset; if (!args->devices || !args->bos || !args->priv_data) return -EINVAL; @@ -1899,38 +1899,34 @@ if (ret) goto exit_unlock; - ret = criu_checkpoint_bos(p, num_bos, (uint8_t __user *)args->bos, - (uint8_t __user *)args->priv_data, &priv_offset); - if (ret) - goto exit_unlock; + /* Leave room for BOs in the private data. They need to be restored + * before events, but we checkpoint them last to simplify the error + * handling. + */ + bo_priv_offset = priv_offset; + priv_offset += num_bos * sizeof(struct kfd_criu_bo_priv_data); if (num_objects) { ret = kfd_criu_checkpoint_queues(p, (uint8_t __user *)args->priv_data, &priv_offset); if (ret) - goto close_bo_fds; + goto exit_unlock; ret = kfd_criu_checkpoint_events(p, (uint8_t __user *)args->priv_data, &priv_offset); if (ret) - goto close_bo_fds; + goto exit_unlock; ret = kfd_criu_checkpoint_svm(p, (uint8_t __user *)args->priv_data, &priv_offset); if (ret) - goto close_bo_fds; + goto exit_unlock; } -close_bo_fds: - if (ret) { - /* If IOCTL returns err, user assumes all FDs opened in criu_dump_bos are closed */ - uint32_t i; - struct kfd_criu_bo_bucket *bo_buckets = (struct kfd_criu_bo_bucket *) args->bos; - - for (i = 0; i < num_bos; i++) { - if (bo_buckets[i].alloc_flags & KFD_IOC_ALLOC_MEM_FLAGS_VRAM) - close_fd(bo_buckets[i].dmabuf_fd); - } - } + /* This must be the last thing in this function that can fail. + * Otherwise we leak dmabuf file descriptors. + */ + ret = criu_checkpoint_bos(p, num_bos, (uint8_t __user *)args->bos, + (uint8_t __user *)args->priv_data, &bo_priv_offset); exit_unlock: mutex_unlock(&p->mutex); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_crat.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_crat.c @@ -795,6 +795,102 @@ }, }; +static struct kfd_gpu_cache_info gfx1037_cache_info[] = { + { + /* TCP L1 Cache per CU */ + .cache_size = 16, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 1, + }, + { + /* Scalar L1 Instruction Cache per SQC */ + .cache_size = 32, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_INST_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* Scalar L1 Data Cache per SQC */ + .cache_size = 16, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* GL1 Data Cache per SA */ + .cache_size = 128, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* L2 Data Cache per GPU (Total Tex Cache) */ + .cache_size = 256, + .cache_level = 2, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, +}; + +static struct kfd_gpu_cache_info gc_10_3_6_cache_info[] = { + { + /* TCP L1 Cache per CU */ + .cache_size = 16, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 1, + }, + { + /* Scalar L1 Instruction Cache per SQC */ + .cache_size = 32, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_INST_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* Scalar L1 Data Cache per SQC */ + .cache_size = 16, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* GL1 Data Cache per SA */ + .cache_size = 128, + .cache_level = 1, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, + { + /* L2 Data Cache per GPU (Total Tex Cache) */ + .cache_size = 256, + .cache_level = 2, + .flags = (CRAT_CACHE_FLAGS_ENABLED | + CRAT_CACHE_FLAGS_DATA_CACHE | + CRAT_CACHE_FLAGS_SIMD_CACHE), + .num_cu_shared = 2, + }, +}; + static void kfd_populated_cu_info_cpu(struct kfd_topology_device *dev, struct crat_subtype_computeunit *cu) { @@ -1516,11 +1612,17 @@ num_of_cache_types = ARRAY_SIZE(beige_goby_cache_info); break; case IP_VERSION(10, 3, 3): - case IP_VERSION(10, 3, 6): /* TODO: Double check these on production silicon */ - case IP_VERSION(10, 3, 7): /* TODO: Double check these on production silicon */ pcache_info = yellow_carp_cache_info; num_of_cache_types = ARRAY_SIZE(yellow_carp_cache_info); break; + case IP_VERSION(10, 3, 6): + pcache_info = gc_10_3_6_cache_info; + num_of_cache_types = ARRAY_SIZE(gc_10_3_6_cache_info); + break; + case IP_VERSION(10, 3, 7): + pcache_info = gfx1037_cache_info; + num_of_cache_types = ARRAY_SIZE(gfx1037_cache_info); + break; case IP_VERSION(11, 0, 0): case IP_VERSION(11, 0, 1): case IP_VERSION(11, 0, 2): --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_device.c @@ -75,7 +75,6 @@ case IP_VERSION(5, 2, 3):/* YELLOW_CARP */ case IP_VERSION(5, 2, 6):/* GC 10.3.6 */ case IP_VERSION(5, 2, 7):/* GC 10.3.7 */ - case IP_VERSION(6, 0, 1): kfd->device_info.num_sdma_queues_per_engine = 2; break; case IP_VERSION(4, 2, 0):/* VEGA20 */ @@ -90,6 +89,7 @@ case IP_VERSION(5, 2, 4):/* DIMGREY_CAVEFISH */ case IP_VERSION(5, 2, 5):/* BEIGE_GOBY */ case IP_VERSION(6, 0, 0): + case IP_VERSION(6, 0, 1): case IP_VERSION(6, 0, 2): kfd->device_info.num_sdma_queues_per_engine = 8; break; @@ -377,12 +377,8 @@ f2g = &gfx_v10_3_kfd2kgd; break; case IP_VERSION(10, 3, 6): - gfx_target_version = 100306; - if (!vf) - f2g = &gfx_v10_3_kfd2kgd; - break; case IP_VERSION(10, 3, 7): - gfx_target_version = 100307; + gfx_target_version = 100306; if (!vf) f2g = &gfx_v10_3_kfd2kgd; break; --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c @@ -1232,6 +1232,24 @@ dqm->dev->kfd2kgd->init_interrupts(dqm->dev->adev, i); } +static void init_sdma_bitmaps(struct device_queue_manager *dqm) +{ + unsigned int num_sdma_queues = + min_t(unsigned int, sizeof(dqm->sdma_bitmap)*8, + get_num_sdma_queues(dqm)); + unsigned int num_xgmi_sdma_queues = + min_t(unsigned int, sizeof(dqm->xgmi_sdma_bitmap)*8, + get_num_xgmi_sdma_queues(dqm)); + + if (num_sdma_queues) + dqm->sdma_bitmap = GENMASK_ULL(num_sdma_queues-1, 0); + if (num_xgmi_sdma_queues) + dqm->xgmi_sdma_bitmap = GENMASK_ULL(num_xgmi_sdma_queues-1, 0); + + dqm->sdma_bitmap &= ~get_reserved_sdma_queues_bitmap(dqm); + pr_info("sdma_bitmap: %llx\n", dqm->sdma_bitmap); +} + static int initialize_nocpsch(struct device_queue_manager *dqm) { int pipe, queue; @@ -1260,11 +1278,7 @@ memset(dqm->vmid_pasid, 0, sizeof(dqm->vmid_pasid)); - dqm->sdma_bitmap = ~0ULL >> (64 - get_num_sdma_queues(dqm)); - dqm->sdma_bitmap &= ~(get_reserved_sdma_queues_bitmap(dqm)); - pr_info("sdma_bitmap: %llx\n", dqm->sdma_bitmap); - - dqm->xgmi_sdma_bitmap = ~0ULL >> (64 - get_num_xgmi_sdma_queues(dqm)); + init_sdma_bitmaps(dqm); return 0; } @@ -1442,9 +1456,6 @@ static int initialize_cpsch(struct device_queue_manager *dqm) { - uint64_t num_sdma_queues; - uint64_t num_xgmi_sdma_queues; - pr_debug("num of pipes: %d\n", get_pipes_per_mec(dqm)); mutex_init(&dqm->lock_hidden); @@ -1453,24 +1464,10 @@ dqm->active_cp_queue_count = 0; dqm->gws_queue_count = 0; dqm->active_runlist = false; - - num_sdma_queues = get_num_sdma_queues(dqm); - if (num_sdma_queues >= BITS_PER_TYPE(dqm->sdma_bitmap)) - dqm->sdma_bitmap = ULLONG_MAX; - else - dqm->sdma_bitmap = (BIT_ULL(num_sdma_queues) - 1); - - dqm->sdma_bitmap &= ~(get_reserved_sdma_queues_bitmap(dqm)); - pr_info("sdma_bitmap: %llx\n", dqm->sdma_bitmap); - - num_xgmi_sdma_queues = get_num_xgmi_sdma_queues(dqm); - if (num_xgmi_sdma_queues >= BITS_PER_TYPE(dqm->xgmi_sdma_bitmap)) - dqm->xgmi_sdma_bitmap = ULLONG_MAX; - else - dqm->xgmi_sdma_bitmap = (BIT_ULL(num_xgmi_sdma_queues) - 1); - INIT_WORK(&dqm->hw_exception_work, kfd_process_hw_exception); + init_sdma_bitmaps(dqm); + return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_events.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_events.c @@ -507,6 +507,7 @@ ret = create_other_event(p, ev, &ev_priv->event_id); break; } + mutex_unlock(&p->event_mutex); exit: if (ret) @@ -514,8 +515,6 @@ kfree(ev_priv); - mutex_unlock(&p->event_mutex); - return ret; } @@ -895,7 +894,8 @@ return msecs_to_jiffies(user_timeout_ms) + 1; } -static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters) +static void free_waiters(uint32_t num_events, struct kfd_event_waiter *waiters, + bool undo_auto_reset) { uint32_t i; @@ -904,6 +904,9 @@ spin_lock(&waiters[i].event->lock); remove_wait_queue(&waiters[i].event->wq, &waiters[i].wait); + if (undo_auto_reset && waiters[i].activated && + waiters[i].event && waiters[i].event->auto_reset) + set_event(waiters[i].event); spin_unlock(&waiters[i].event->lock); } @@ -912,7 +915,7 @@ int kfd_wait_on_events(struct kfd_process *p, uint32_t num_events, void __user *data, - bool all, uint32_t user_timeout_ms, + bool all, uint32_t *user_timeout_ms, uint32_t *wait_result) { struct kfd_event_data __user *events = @@ -921,7 +924,7 @@ int ret = 0; struct kfd_event_waiter *event_waiters = NULL; - long timeout = user_timeout_to_jiffies(user_timeout_ms); + long timeout = user_timeout_to_jiffies(*user_timeout_ms); event_waiters = alloc_event_waiters(num_events); if (!event_waiters) { @@ -971,15 +974,11 @@ } if (signal_pending(current)) { - /* - * This is wrong when a nonzero, non-infinite timeout - * is specified. We need to use - * ERESTARTSYS_RESTARTBLOCK, but struct restart_block - * contains a union with data for each user and it's - * in generic kernel code that I don't want to - * touch yet. - */ ret = -ERESTARTSYS; + if (*user_timeout_ms != KFD_EVENT_TIMEOUT_IMMEDIATE && + *user_timeout_ms != KFD_EVENT_TIMEOUT_INFINITE) + *user_timeout_ms = jiffies_to_msecs( + max(0l, timeout-1)); break; } @@ -1020,7 +1019,7 @@ event_waiters, events); out_unlock: - free_waiters(num_events, event_waiters); + free_waiters(num_events, event_waiters, ret == -ERESTARTSYS); mutex_unlock(&p->event_mutex); out: if (ret) --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@ -857,7 +857,7 @@ static vm_fault_t svm_migrate_to_ram(struct vm_fault *vmf) { unsigned long addr = vmf->address; - struct vm_area_struct *vma; + struct svm_range_bo *svm_bo; enum svm_work_list_ops op; struct svm_range *parent; struct svm_range *prange; @@ -865,29 +865,42 @@ struct mm_struct *mm; int r = 0; - vma = vmf->vma; - mm = vma->vm_mm; + svm_bo = vmf->page->zone_device_data; + if (!svm_bo) { + pr_debug("failed get device page at addr 0x%lx\n", addr); + return VM_FAULT_SIGBUS; + } + if (!mmget_not_zero(svm_bo->eviction_fence->mm)) { + pr_debug("addr 0x%lx of process mm is detroyed\n", addr); + return VM_FAULT_SIGBUS; + } - p = kfd_lookup_process_by_mm(vma->vm_mm); + mm = svm_bo->eviction_fence->mm; + if (mm != vmf->vma->vm_mm) + pr_debug("addr 0x%lx is COW mapping in child process\n", addr); + + p = kfd_lookup_process_by_mm(mm); if (!p) { pr_debug("failed find process at fault address 0x%lx\n", addr); - return VM_FAULT_SIGBUS; + r = VM_FAULT_SIGBUS; + goto out_mmput; } if (READ_ONCE(p->svms.faulting_task) == current) { pr_debug("skipping ram migration\n"); - kfd_unref_process(p); - return 0; + r = 0; + goto out_unref_process; } - addr >>= PAGE_SHIFT; + pr_debug("CPU page fault svms 0x%p address 0x%lx\n", &p->svms, addr); + addr >>= PAGE_SHIFT; mutex_lock(&p->svms.lock); prange = svm_range_from_addr(&p->svms, addr, &parent); if (!prange) { - pr_debug("cannot find svm range at 0x%lx\n", addr); + pr_debug("failed get range svms 0x%p addr 0x%lx\n", &p->svms, addr); r = -EFAULT; - goto out; + goto out_unlock_svms; } mutex_lock(&parent->migrate_mutex); @@ -909,10 +922,10 @@ goto out_unlock_prange; } - r = svm_migrate_vram_to_ram(prange, mm); + r = svm_migrate_vram_to_ram(prange, vmf->vma->vm_mm); if (r) - pr_debug("failed %d migrate 0x%p [0x%lx 0x%lx] to ram\n", r, - prange, prange->start, prange->last); + pr_debug("failed %d migrate svms 0x%p range 0x%p [0x%lx 0x%lx]\n", + r, prange->svms, prange, prange->start, prange->last); /* xnack on, update mapping on GPUs with ACCESS_IN_PLACE */ if (p->xnack_enabled && parent == prange) @@ -926,12 +939,13 @@ if (prange != parent) mutex_unlock(&prange->migrate_mutex); mutex_unlock(&parent->migrate_mutex); -out: +out_unlock_svms: mutex_unlock(&p->svms.lock); - kfd_unref_process(p); - +out_unref_process: pr_debug("CPU fault svms 0x%p address 0x%lx done\n", &p->svms, addr); - + kfd_unref_process(p); +out_mmput: + mmput(mm); return r ? VM_FAULT_SIGBUS : 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager_v11.c @@ -371,7 +371,8 @@ << SDMA0_QUEUE0_RB_CNTL__RB_SIZE__SHIFT | q->vmid << SDMA0_QUEUE0_RB_CNTL__RB_VMID__SHIFT | 1 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_ENABLE__SHIFT | - 6 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_TIMER__SHIFT; + 6 << SDMA0_QUEUE0_RB_CNTL__RPTR_WRITEBACK_TIMER__SHIFT | + 1 << SDMA0_QUEUE0_RB_CNTL__F32_WPTR_POLL_ENABLE__SHIFT; m->sdmax_rlcx_rb_base = lower_32_bits(q->queue_address >> 8); m->sdmax_rlcx_rb_base_hi = upper_32_bits(q->queue_address >> 8); --- linux-5.19.0.orig/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ linux-5.19.0/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -1314,7 +1314,7 @@ int kfd_event_mmap(struct kfd_process *process, struct vm_area_struct *vma); int kfd_wait_on_events(struct kfd_process *p, uint32_t num_events, void __user *data, - bool all, uint32_t user_timeout_ms, + bool all, uint32_t *user_timeout_ms, uint32_t *wait_result); void kfd_signal_event_interrupt(u32 pasid, uint32_t partial_id, uint32_t valid_id_bits); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/Kconfig +++ linux-5.19.0/drivers/gpu/drm/amd/display/Kconfig @@ -5,6 +5,7 @@ config DRM_AMD_DC bool "AMD DC - Enable new display engine" default y + depends on BROKEN || !CC_IS_CLANG || X86_64 || SPARC64 || ARM64 select SND_HDA_COMPONENT if SND_HDA_CORE select DRM_AMD_DC_DCN if (X86 || PPC_LONG_DOUBLE_128) && !(KCOV_INSTRUMENT_ALL && KCOV_ENABLE_COMPARISONS) help @@ -12,6 +13,12 @@ support for AMDGPU. This adds required support for Vega and Raven ASICs. + calculate_bandwidth() is presently broken on all !(X86_64 || SPARC64 || ARM64) + architectures built with Clang (all released versions), whereby the stack + frame gets blown up to well over 5k. This would cause an immediate kernel + panic on most architectures. We'll revert this when the following bug report + has been resolved: https://github.com/llvm/llvm-project/issues/41896. + config DRM_AMD_DC_DCN def_bool n help --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -131,6 +131,14 @@ /* Number of bytes in PSP footer for firmware. */ #define PSP_FOOTER_BYTES 0x100 +/* + * DMUB Async to Sync Mechanism Status + */ +#define DMUB_ASYNC_TO_SYNC_ACCESS_FAIL 1 +#define DMUB_ASYNC_TO_SYNC_ACCESS_TIMEOUT 2 +#define DMUB_ASYNC_TO_SYNC_ACCESS_SUCCESS 3 +#define DMUB_ASYNC_TO_SYNC_ACCESS_INVALID 4 + /** * DOC: overview * @@ -1141,7 +1149,8 @@ hw_params.fb[i] = &fb_info->fb[i]; switch (adev->ip_versions[DCE_HWIP][0]) { - case IP_VERSION(3, 1, 3): /* Only for this asic hw internal rev B0 */ + case IP_VERSION(3, 1, 3): + case IP_VERSION(3, 1, 4): hw_params.dpia_supported = true; hw_params.disable_dpia = adev->dm.dc->debug.dpia_debug.bits.disable_dpia; break; @@ -1363,13 +1372,21 @@ if (hpd_rx_offload_wq[i].wq == NULL) { DRM_ERROR("create amdgpu_dm_hpd_rx_offload_wq fail!"); - return NULL; + goto out_err; } spin_lock_init(&hpd_rx_offload_wq[i].offload_lock); } return hpd_rx_offload_wq; + +out_err: + for (i = 0; i < max_caps; i++) { + if (hpd_rx_offload_wq[i].wq) + destroy_workqueue(hpd_rx_offload_wq[i].wq); + } + kfree(hpd_rx_offload_wq); + return NULL; } struct amdgpu_stutter_quirk { @@ -1422,7 +1439,44 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Precision 3460"), }, }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex Tower Plus 7010"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex Tower 7010"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex SFF Plus 7010"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex SFF 7010"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex Micro Plus 7010"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex Micro 7010"), + }, + }, {} + /* TODO: refactor this from a fixed table to a dynamic option */ }; static void retrieve_dmi_info(struct amdgpu_display_manager *dm) @@ -1563,6 +1617,8 @@ DRM_INFO("Seamless boot condition check passed\n"); } + init_data.flags.enable_mipi_converter_optimization = true; + INIT_LIST_HEAD(&adev->dm.da_list); retrieve_dmi_info(&adev->dm); @@ -1598,6 +1654,9 @@ if (amdgpu_dc_debug_mask & DC_DISABLE_CLOCK_GATING) adev->dm.dc->debug.disable_clock_gate = true; + /* TODO: Remove after DP2 receiver gets proper support of Cable ID feature */ + adev->dm.dc->debug.ignore_cable_id = true; + r = dm_dmub_hw_init(adev); if (r) { DRM_ERROR("DMUB interface failed to initialize: status=%d\n", r); @@ -1683,12 +1742,6 @@ } } - if (amdgpu_dm_initialize_drm_device(adev)) { - DRM_ERROR( - "amdgpu: failed to initialize sw for display support.\n"); - goto error; - } - /* Enable outbox notification only after IRQ handlers are registered and DMUB is alive. * It is expected that DMUB will resend any pending notifications at this point, for * example HPD from DPIA. @@ -1696,6 +1749,12 @@ if (dc_is_dmub_outbox_supported(adev->dm.dc)) dc_enable_dmub_outbox(adev->dm.dc); + if (amdgpu_dm_initialize_drm_device(adev)) { + DRM_ERROR( + "amdgpu: failed to initialize sw for display support.\n"); + goto error; + } + /* create fake encoders for MST */ dm_dp_create_fake_mst_encoders(adev); @@ -2236,7 +2295,8 @@ } else { ret = drm_dp_mst_topology_mgr_resume(mgr, true); if (ret < 0) { - drm_dp_mst_topology_mgr_set_mst(mgr, false); + dm_helpers_dp_mst_stop_top_mgr(aconnector->dc_link->ctx, + aconnector->dc_link); need_hotplug = true; } } @@ -2882,15 +2942,12 @@ static void update_connector_ext_caps(struct amdgpu_dm_connector *aconnector) { - u32 max_avg, min_cll, max, min, q, r; struct amdgpu_dm_backlight_caps *caps; struct amdgpu_display_manager *dm; struct drm_connector *conn_base; struct amdgpu_device *adev; struct dc_link *link = NULL; - static const u8 pre_computed_values[] = { - 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 68, 69, - 71, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 90, 92, 94, 96, 98}; + struct drm_luminance_range_info *luminance_range; int i; if (!aconnector || !aconnector->dc_link) @@ -2912,8 +2969,6 @@ caps = &dm->backlight_caps[i]; caps->ext_caps = &aconnector->dc_link->dpcd_sink_ext_caps; caps->aux_support = false; - max_avg = conn_base->hdr_sink_metadata.hdmi_type1.max_fall; - min_cll = conn_base->hdr_sink_metadata.hdmi_type1.min_cll; if (caps->ext_caps->bits.oled == 1 /*|| caps->ext_caps->bits.sdr_aux_backlight_control == 1 || @@ -2925,31 +2980,9 @@ else if (amdgpu_backlight == 1) caps->aux_support = true; - /* From the specification (CTA-861-G), for calculating the maximum - * luminance we need to use: - * Luminance = 50*2**(CV/32) - * Where CV is a one-byte value. - * For calculating this expression we may need float point precision; - * to avoid this complexity level, we take advantage that CV is divided - * by a constant. From the Euclids division algorithm, we know that CV - * can be written as: CV = 32*q + r. Next, we replace CV in the - * Luminance expression and get 50*(2**q)*(2**(r/32)), hence we just - * need to pre-compute the value of r/32. For pre-computing the values - * We just used the following Ruby line: - * (0...32).each {|cv| puts (50*2**(cv/32.0)).round} - * The results of the above expressions can be verified at - * pre_computed_values. - */ - q = max_avg >> 5; - r = max_avg % 32; - max = (1 << q) * pre_computed_values[r]; - - // min luminance: maxLum * (CV/255)^2 / 100 - q = DIV_ROUND_CLOSEST(min_cll, 255); - min = max * DIV_ROUND_CLOSEST((q * q), 100); - - caps->aux_max_input_signal = max; - caps->aux_min_input_signal = min; + luminance_range = &conn_base->display_info.luminance_range; + caps->aux_min_input_signal = luminance_range->min_luminance; + caps->aux_max_input_signal = luminance_range->max_luminance; } void amdgpu_dm_update_connector_after_detect( @@ -3892,8 +3925,11 @@ adev_to_drm(adev)->mode_config.max_height = 16384; adev_to_drm(adev)->mode_config.preferred_depth = 24; - /* disable prefer shadow for now due to hibernation issues */ - adev_to_drm(adev)->mode_config.prefer_shadow = 0; + if (adev->asic_type == CHIP_HAWAII) + /* disable prefer shadow for now due to hibernation issues */ + adev_to_drm(adev)->mode_config.prefer_shadow = 0; + else + adev_to_drm(adev)->mode_config.prefer_shadow = 1; /* indicates support for immediate flip */ adev_to_drm(adev)->mode_config.async_page_flip = true; @@ -4317,11 +4353,9 @@ /* Determine whether to enable PSR support by default. */ if (!(amdgpu_dc_debug_mask & DC_DISABLE_PSR)) { - switch (adev->ip_versions[DCE_HWIP][0]) { - case IP_VERSION(3, 1, 2): - case IP_VERSION(3, 1, 3): - case IP_VERSION(3, 1, 5): - case IP_VERSION(3, 1, 6): + switch (adev->asic_type) { + case CHIP_VANGOGH: + case CHIP_YELLOW_CARP: psr_feature_enabled = true; break; default: @@ -5624,7 +5658,7 @@ plane_info->visible = true; plane_info->stereo_format = PLANE_STEREO_FORMAT_NONE; - plane_info->layer_index = 0; + plane_info->layer_index = plane_state->normalized_zpos; ret = fill_plane_color_attributes(plane_state, plane_info->format, &plane_info->color_space); @@ -5692,7 +5726,7 @@ dc_plane_state->global_alpha = plane_info.global_alpha; dc_plane_state->global_alpha_value = plane_info.global_alpha_value; dc_plane_state->dcc = plane_info.dcc; - dc_plane_state->layer_index = plane_info.layer_index; // Always returns 0 + dc_plane_state->layer_index = plane_info.layer_index; dc_plane_state->flip_int_enabled = true; /* @@ -9152,15 +9186,15 @@ * We also need vupdate irq for the actual core vblank handling * at end of vblank. */ - dm_set_vupdate_irq(new_state->base.crtc, true); - drm_crtc_vblank_get(new_state->base.crtc); + WARN_ON(dm_set_vupdate_irq(new_state->base.crtc, true) != 0); + WARN_ON(drm_crtc_vblank_get(new_state->base.crtc) != 0); DRM_DEBUG_DRIVER("%s: crtc=%u VRR off->on: Get vblank ref\n", __func__, new_state->base.crtc->base.id); } else if (old_vrr_active && !new_vrr_active) { /* Transition VRR active -> inactive: * Allow vblank irq disable again for fixed refresh rate. */ - dm_set_vupdate_irq(new_state->base.crtc, false); + WARN_ON(dm_set_vupdate_irq(new_state->base.crtc, false) != 0); drm_crtc_vblank_put(new_state->base.crtc); DRM_DEBUG_DRIVER("%s: crtc=%u VRR on->off: Drop vblank ref\n", __func__, new_state->base.crtc->base.id); @@ -9911,23 +9945,6 @@ mutex_unlock(&dm->dc_lock); } - /* Count number of newly disabled CRTCs for dropping PM refs later. */ - for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, - new_crtc_state, i) { - if (old_crtc_state->active && !new_crtc_state->active) - crtc_disable_count++; - - dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); - dm_old_crtc_state = to_dm_crtc_state(old_crtc_state); - - /* For freesync config update on crtc state and params for irq */ - update_stream_irq_parameters(dm, dm_new_crtc_state); - - /* Handle vrr on->off / off->on transitions */ - amdgpu_dm_handle_vrr_transition(dm_old_crtc_state, - dm_new_crtc_state); - } - /** * Enable interrupts for CRTCs that are newly enabled or went through * a modeset. It was intentionally deferred until after the front end @@ -9937,16 +9954,29 @@ for_each_oldnew_crtc_in_state(state, crtc, old_crtc_state, new_crtc_state, i) { struct amdgpu_crtc *acrtc = to_amdgpu_crtc(crtc); #ifdef CONFIG_DEBUG_FS - bool configure_crc = false; enum amdgpu_dm_pipe_crc_source cur_crc_src; #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY) - struct crc_rd_work *crc_rd_wrk = dm->crc_rd_wrk; + struct crc_rd_work *crc_rd_wrk; +#endif +#endif + /* Count number of newly disabled CRTCs for dropping PM refs later. */ + if (old_crtc_state->active && !new_crtc_state->active) + crtc_disable_count++; + + dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); + dm_old_crtc_state = to_dm_crtc_state(old_crtc_state); + + /* For freesync config update on crtc state and params for irq */ + update_stream_irq_parameters(dm, dm_new_crtc_state); + +#ifdef CONFIG_DEBUG_FS +#if defined(CONFIG_DRM_AMD_SECURE_DISPLAY) + crc_rd_wrk = dm->crc_rd_wrk; #endif spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags); cur_crc_src = acrtc->dm_irq_params.crc_src; spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags); #endif - dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); if (new_crtc_state->active && (!old_crtc_state->active || @@ -9954,16 +9984,19 @@ dc_stream_retain(dm_new_crtc_state->stream); acrtc->dm_irq_params.stream = dm_new_crtc_state->stream; manage_dm_interrupts(adev, acrtc, true); + } + /* Handle vrr on->off / off->on transitions */ + amdgpu_dm_handle_vrr_transition(dm_old_crtc_state, dm_new_crtc_state); #ifdef CONFIG_DEBUG_FS + if (new_crtc_state->active && + (!old_crtc_state->active || + drm_atomic_crtc_needs_modeset(new_crtc_state))) { /** * Frontend may have changed so reapply the CRC capture * settings for the stream. */ - dm_new_crtc_state = to_dm_crtc_state(new_crtc_state); - if (amdgpu_dm_is_valid_crc_source(cur_crc_src)) { - configure_crc = true; #if defined(CONFIG_DRM_AMD_SECURE_DISPLAY) if (amdgpu_dm_crc_window_is_activated(crtc)) { spin_lock_irqsave(&adev_to_drm(adev)->event_lock, flags); @@ -9975,14 +10008,12 @@ spin_unlock_irqrestore(&adev_to_drm(adev)->event_lock, flags); } #endif - } - - if (configure_crc) if (amdgpu_dm_crtc_configure_crc_source( crtc, dm_new_crtc_state, cur_crc_src)) DRM_DEBUG_DRIVER("Failed to configure crc source"); -#endif + } } +#endif } for_each_new_crtc_in_state(state, crtc, new_crtc_state, j) @@ -10457,7 +10488,7 @@ * added MST connectors not found in existing crtc_state in the chained mode * TODO: need to dig out the root cause of that */ - if (!aconnector || (!aconnector->dc_sink && aconnector->mst_port)) + if (!aconnector) goto skip_modeset; if (modereset_required(new_crtc_state)) @@ -11142,6 +11173,14 @@ } } + /* + * DC consults the zpos (layer_index in DC terminology) to determine the + * hw plane on which to enable the hw cursor (see + * `dcn10_can_pipe_disable_cursor`). By now, all modified planes are in + * atomic state, so call drm helper to normalize zpos. + */ + drm_atomic_normalize_zpos(dev, state); + /* Remove exiting planes if they are modified */ for_each_oldnew_plane_in_state_reverse(state, plane, old_plane_state, new_plane_state, i) { ret = dm_update_plane_state(dc, state, plane, @@ -11783,6 +11822,8 @@ *operation_result = AUX_RET_ERROR_TIMEOUT; } else if (status_type == DMUB_ASYNC_TO_SYNC_ACCESS_FAIL) { *operation_result = AUX_RET_ERROR_ENGINE_ACQUIRE; + } else if (status_type == DMUB_ASYNC_TO_SYNC_ACCESS_INVALID) { + *operation_result = AUX_RET_ERROR_INVALID_REPLY; } else { *operation_result = AUX_RET_ERROR_UNKNOWN; } @@ -11830,6 +11871,16 @@ payload->reply[0] = adev->dm.dmub_notify->aux_reply.command; if (!payload->write && adev->dm.dmub_notify->aux_reply.length && payload->reply[0] == AUX_TRANSACTION_REPLY_AUX_ACK) { + + if (payload->length != adev->dm.dmub_notify->aux_reply.length) { + DRM_WARN("invalid read from DPIA AUX %x(%d) got length %d!\n", + payload->address, payload->length, + adev->dm.dmub_notify->aux_reply.length); + return amdgpu_dm_set_dmub_async_sync_status(is_cmd_aux, ctx, + DMUB_ASYNC_TO_SYNC_ACCESS_INVALID, + (uint32_t *)operation_result); + } + memcpy(payload->data, adev->dm.dmub_notify->aux_reply.data, adev->dm.dmub_notify->aux_reply.length); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h @@ -51,12 +51,6 @@ #define AMDGPU_DMUB_NOTIFICATION_MAX 5 /* - * DMUB Async to Sync Mechanism Status - */ -#define DMUB_ASYNC_TO_SYNC_ACCESS_FAIL 1 -#define DMUB_ASYNC_TO_SYNC_ACCESS_TIMEOUT 2 -#define DMUB_ASYNC_TO_SYNC_ACCESS_SUCCESS 3 -/* #include "include/amdgpu_dal_power_if.h" #include "amdgpu_dm_irq.h" */ --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c @@ -3188,7 +3188,7 @@ &crc_win_y_end_fops); debugfs_create_file_unsafe("crc_win_update", 0644, dir, crtc, &crc_win_update_fops); - + dput(dir); } #endif /* --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_helpers.c @@ -41,39 +41,6 @@ #include "dm_helpers.h" #include "ddc_service_types.h" -struct monitor_patch_info { - unsigned int manufacturer_id; - unsigned int product_id; - void (*patch_func)(struct dc_edid_caps *edid_caps, unsigned int param); - unsigned int patch_param; -}; -static void set_max_dsc_bpp_limit(struct dc_edid_caps *edid_caps, unsigned int param); - -static const struct monitor_patch_info monitor_patch_table[] = { -{0x6D1E, 0x5BBF, set_max_dsc_bpp_limit, 15}, -{0x6D1E, 0x5B9A, set_max_dsc_bpp_limit, 15}, -}; - -static void set_max_dsc_bpp_limit(struct dc_edid_caps *edid_caps, unsigned int param) -{ - if (edid_caps) - edid_caps->panel_patch.max_dsc_target_bpp_limit = param; -} - -static int amdgpu_dm_patch_edid_caps(struct dc_edid_caps *edid_caps) -{ - int i, ret = 0; - - for (i = 0; i < ARRAY_SIZE(monitor_patch_table); i++) - if ((edid_caps->manufacturer_id == monitor_patch_table[i].manufacturer_id) - && (edid_caps->product_id == monitor_patch_table[i].product_id)) { - monitor_patch_table[i].patch_func(edid_caps, monitor_patch_table[i].patch_param); - ret++; - } - - return ret; -} - /* dm_helpers_parse_edid_caps * * Parse edid caps @@ -148,8 +115,6 @@ kfree(sads); kfree(sadb); - amdgpu_dm_patch_edid_caps(edid_caps); - return result; } @@ -451,7 +416,6 @@ struct dc_link *link) { struct amdgpu_dm_connector *aconnector = link->priv; - uint8_t i; if (!aconnector) { DRM_ERROR("Failed to find connector for link!"); @@ -463,22 +427,7 @@ if (aconnector->mst_mgr.mst_state == true) { drm_dp_mst_topology_mgr_set_mst(&aconnector->mst_mgr, false); - - for (i = 0; i < MAX_SINKS_PER_LINK; i++) { - if (link->remote_sinks[i] == NULL) - continue; - - if (link->remote_sinks[i]->sink_signal == - SIGNAL_TYPE_DISPLAY_PORT_MST) { - dc_link_remove_remote_sink(link, link->remote_sinks[i]); - - if (aconnector->dc_sink) { - dc_sink_release(aconnector->dc_sink); - aconnector->dc_sink = NULL; - aconnector->dc_link->cur_link_settings.lane_count = 0; - } - } - } + link->cur_link_settings.lane_count = 0; } return false; @@ -571,7 +520,7 @@ unsigned char rc_cmd = 0; unsigned char rc_result = 0xFF; unsigned char i = 0; - uint8_t ret = 0; + int ret; if (is_write_cmd) { // write rc data --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c @@ -157,11 +157,28 @@ static void amdgpu_dm_mst_connector_early_unregister(struct drm_connector *connector) { - struct amdgpu_dm_connector *amdgpu_dm_connector = + struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector); - struct drm_dp_mst_port *port = amdgpu_dm_connector->port; + struct drm_dp_mst_port *port = aconnector->port; + struct amdgpu_dm_connector *root = aconnector->mst_port; + struct dc_link *dc_link = aconnector->dc_link; + struct dc_sink *dc_sink = aconnector->dc_sink; drm_dp_mst_connector_early_unregister(connector, port); + + /* + * Release dc_sink for connector which its attached port is + * no longer in the mst topology + */ + drm_modeset_lock(&root->mst_mgr.base.lock, NULL); + if (dc_sink) { + if (dc_link->sink_count) + dc_link_remove_remote_sink(dc_link, dc_sink); + + dc_sink_release(dc_sink); + aconnector->dc_sink = NULL; + } + drm_modeset_unlock(&root->mst_mgr.base.lock); } static const struct drm_connector_funcs dm_dp_mst_connector_funcs = { @@ -361,12 +378,59 @@ { struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector); struct amdgpu_dm_connector *master = aconnector->mst_port; + struct drm_dp_mst_port *port = aconnector->port; + int connection_status; if (drm_connector_is_unregistered(connector)) return connector_status_disconnected; - return drm_dp_mst_detect_port(connector, ctx, &master->mst_mgr, - aconnector->port); + connection_status = drm_dp_mst_detect_port(connector, ctx, &master->mst_mgr, + aconnector->port); + + if (port->pdt != DP_PEER_DEVICE_NONE && !port->dpcd_rev) { + uint8_t dpcd_rev; + int ret; + + ret = drm_dp_dpcd_readb(&port->aux, DP_DP13_DPCD_REV, &dpcd_rev); + + if (ret == 1) { + port->dpcd_rev = dpcd_rev; + + /* Could be DP1.2 DP Rx case*/ + if (!dpcd_rev) { + ret = drm_dp_dpcd_readb(&port->aux, DP_DPCD_REV, &dpcd_rev); + + if (ret == 1) + port->dpcd_rev = dpcd_rev; + } + + if (!dpcd_rev) + DRM_DEBUG_KMS("Can't decide DPCD revision number!"); + } + + /* + * Could be legacy sink, logical port etc on DP1.2. + * Will get Nack under these cases when issue remote + * DPCD read. + */ + if (ret != 1) + DRM_DEBUG_KMS("Can't access DPCD"); + } else if (port->pdt == DP_PEER_DEVICE_NONE) { + port->dpcd_rev = 0; + } + + /* + * Release dc_sink for connector which unplug event is notified by CSN msg + */ + if (connection_status == connector_status_disconnected && aconnector->dc_sink) { + if (aconnector->dc_link->sink_count) + dc_link_remove_remote_sink(aconnector->dc_link, aconnector->dc_sink); + + dc_sink_release(aconnector->dc_sink); + aconnector->dc_sink = NULL; + } + + return connection_status; } static int dm_dp_mst_atomic_check(struct drm_connector *connector, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c @@ -60,11 +60,15 @@ */ void amdgpu_dm_set_psr_caps(struct dc_link *link) { - if (!(link->connector_signal & SIGNAL_TYPE_EDP)) + if (!(link->connector_signal & SIGNAL_TYPE_EDP)) { + link->psr_settings.psr_feature_enabled = false; return; + } - if (link->type == dc_connection_none) + if (link->type == dc_connection_none) { + link->psr_settings.psr_feature_enabled = false; return; + } if (link->dpcd_caps.psr_info.psr_version == 0) { link->psr_settings.psr_version = DC_PSR_VERSION_UNSUPPORTED; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/bios/bios_parser2.c @@ -356,6 +356,7 @@ uint32_t count = 0; unsigned int table_index = 0; bool find_valid = false; + struct atom_gpio_pin_assignment *pin; if (!info) return BP_RESULT_BADINPUT; @@ -383,20 +384,17 @@ - sizeof(struct atom_common_table_header)) / sizeof(struct atom_gpio_pin_assignment); + pin = (struct atom_gpio_pin_assignment *) header->gpio_pin; + for (table_index = 0; table_index < count; table_index++) { - if (((record->i2c_id & I2C_HW_CAP) == ( - header->gpio_pin[table_index].gpio_id & - I2C_HW_CAP)) && - ((record->i2c_id & I2C_HW_ENGINE_ID_MASK) == - (header->gpio_pin[table_index].gpio_id & - I2C_HW_ENGINE_ID_MASK)) && - ((record->i2c_id & I2C_HW_LANE_MUX) == - (header->gpio_pin[table_index].gpio_id & - I2C_HW_LANE_MUX))) { + if (((record->i2c_id & I2C_HW_CAP) == (pin->gpio_id & I2C_HW_CAP)) && + ((record->i2c_id & I2C_HW_ENGINE_ID_MASK) == (pin->gpio_id & I2C_HW_ENGINE_ID_MASK)) && + ((record->i2c_id & I2C_HW_LANE_MUX) == (pin->gpio_id & I2C_HW_LANE_MUX))) { /* still valid */ find_valid = true; break; } + pin = (struct atom_gpio_pin_assignment *)((uint8_t *)pin + sizeof(struct atom_gpio_pin_assignment)); } /* If we don't find the entry that we are looking for then @@ -1867,6 +1865,26 @@ return result; } +static enum bp_result get_vram_info_v30( + struct bios_parser *bp, + struct dc_vram_info *info) +{ + struct atom_vram_info_header_v3_0 *info_v30; + enum bp_result result = BP_RESULT_OK; + + info_v30 = GET_IMAGE(struct atom_vram_info_header_v3_0, + DATA_TABLES(vram_info)); + + if (info_v30 == NULL) + return BP_RESULT_BADBIOSTABLE; + + info->num_chans = info_v30->channel_num; + info->dram_channel_width_bytes = (1 << info_v30->channel_width) / 8; + + return result; +} + + /* * get_integrated_info_v11 * @@ -2465,6 +2483,16 @@ break; default: break; + } + break; + + case 3: + switch (revision.minor) { + case 0: + result = get_vram_info_v30(bp, info); + break; + default: + break; } break; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn21/rn_clk_mgr_vbios_smu.c @@ -41,6 +41,12 @@ #define FN(reg_name, field) \ FD(reg_name##__##field) +#include "logger_types.h" +#undef DC_LOGGER +#define DC_LOGGER \ + CTX->logger +#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); } + #define VBIOSSMC_MSG_TestMessage 0x1 #define VBIOSSMC_MSG_GetSmuVersion 0x2 #define VBIOSSMC_MSG_PowerUpGfx 0x3 @@ -95,7 +101,13 @@ uint32_t result; result = rn_smu_wait_for_response(clk_mgr, 10, 200000); - ASSERT(result == VBIOSSMC_Result_OK); + + if (result != VBIOSSMC_Result_OK) + smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result); + + if (result == VBIOSSMC_Status_BUSY) { + return -1; + } /* First clear response register */ REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Status_BUSY); @@ -176,6 +188,10 @@ VBIOSSMC_MSG_SetHardMinDcfclkByFreq, khz_to_mhz_ceil(requested_dcfclk_khz)); +#ifdef DBG + smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000); +#endif + return actual_dcfclk_set_mhz * 1000; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn301/dcn301_smu.c @@ -41,6 +41,12 @@ #define FN(reg_name, field) \ FD(reg_name##__##field) +#include "logger_types.h" +#undef DC_LOGGER +#define DC_LOGGER \ + CTX->logger +#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); } + #define VBIOSSMC_MSG_GetSmuVersion 0x2 #define VBIOSSMC_MSG_SetDispclkFreq 0x4 #define VBIOSSMC_MSG_SetDprefclkFreq 0x5 @@ -96,6 +102,13 @@ result = dcn301_smu_wait_for_response(clk_mgr, 10, 200000); + if (result != VBIOSSMC_Result_OK) + smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result); + + if (result == VBIOSSMC_Status_BUSY) { + return -1; + } + /* First clear response register */ REG_WRITE(MP1_SMN_C2PMSG_91, VBIOSSMC_Status_BUSY); @@ -167,6 +180,10 @@ VBIOSSMC_MSG_SetHardMinDcfclkByFreq, khz_to_mhz_ceil(requested_dcfclk_khz)); +#ifdef DBG + smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000); +#endif + return actual_dcfclk_set_mhz * 1000; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn31/dcn31_smu.c @@ -40,6 +40,12 @@ #define FN(reg_name, field) \ FD(reg_name##__##field) +#include "logger_types.h" +#undef DC_LOGGER +#define DC_LOGGER \ + CTX->logger +#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); } + #define VBIOSSMC_MSG_TestMessage 0x1 #define VBIOSSMC_MSG_GetSmuVersion 0x2 #define VBIOSSMC_MSG_PowerUpGfx 0x3 @@ -102,7 +108,9 @@ uint32_t result; result = dcn31_smu_wait_for_response(clk_mgr, 10, 200000); - ASSERT(result == VBIOSSMC_Result_OK); + + if (result != VBIOSSMC_Result_OK) + smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result); if (result == VBIOSSMC_Status_BUSY) { return -1; @@ -194,6 +202,10 @@ VBIOSSMC_MSG_SetHardMinDcfclkByFreq, khz_to_mhz_ceil(requested_dcfclk_khz)); +#ifdef DBG + smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000); +#endif + return actual_dcfclk_set_mhz * 1000; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_clk_mgr.c @@ -46,6 +46,9 @@ #define TO_CLK_MGR_DCN315(clk_mgr)\ container_of(clk_mgr, struct clk_mgr_dcn315, base) +#define UNSUPPORTED_DCFCLK 10000000 +#define MIN_DPP_DISP_CLK 100000 + static int dcn315_get_active_display_cnt_wa( struct dc *dc, struct dc_state *context) @@ -146,6 +149,9 @@ } } + /* Lock pstate by requesting unsupported dcfclk if change is unsupported */ + if (!new_clocks->p_state_change_support) + new_clocks->dcfclk_khz = UNSUPPORTED_DCFCLK; if (should_set_clock(safe_to_lower, new_clocks->dcfclk_khz, clk_mgr_base->clks.dcfclk_khz)) { clk_mgr_base->clks.dcfclk_khz = new_clocks->dcfclk_khz; dcn315_smu_set_hard_min_dcfclk(clk_mgr, clk_mgr_base->clks.dcfclk_khz); @@ -159,10 +165,10 @@ // 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; - if (new_clocks->dispclk_khz < 100000) - new_clocks->dispclk_khz = 100000; + if (new_clocks->dppclk_khz < MIN_DPP_DISP_CLK) + new_clocks->dppclk_khz = MIN_DPP_DISP_CLK; + if (new_clocks->dispclk_khz < MIN_DPP_DISP_CLK) + new_clocks->dispclk_khz = MIN_DPP_DISP_CLK; } if (should_set_clock(safe_to_lower, new_clocks->dppclk_khz, clk_mgr->base.clks.dppclk_khz)) { @@ -272,7 +278,7 @@ { .wm_inst = WM_A, .wm_type = WM_TYPE_PSTATE_CHG, - .pstate_latency_us = 64.0, + .pstate_latency_us = 129.0, .sr_exit_time_us = 11.5, .sr_enter_plus_exit_time_us = 14.5, .valid = true, @@ -280,7 +286,7 @@ { .wm_inst = WM_B, .wm_type = WM_TYPE_PSTATE_CHG, - .pstate_latency_us = 64.0, + .pstate_latency_us = 129.0, .sr_exit_time_us = 11.5, .sr_enter_plus_exit_time_us = 14.5, .valid = true, @@ -288,7 +294,7 @@ { .wm_inst = WM_C, .wm_type = WM_TYPE_PSTATE_CHG, - .pstate_latency_us = 64.0, + .pstate_latency_us = 129.0, .sr_exit_time_us = 11.5, .sr_enter_plus_exit_time_us = 14.5, .valid = true, @@ -296,7 +302,7 @@ { .wm_inst = WM_D, .wm_type = WM_TYPE_PSTATE_CHG, - .pstate_latency_us = 64.0, + .pstate_latency_us = 129.0, .sr_exit_time_us = 11.5, .sr_enter_plus_exit_time_us = 14.5, .valid = true, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn315/dcn315_smu.c @@ -70,6 +70,12 @@ #define REG_NBIO(reg_name) \ (NBIO_BASE.instance[0].segment[regBIF_BX_PF2_ ## reg_name ## _BASE_IDX] + regBIF_BX_PF2_ ## reg_name) +#include "logger_types.h" +#undef DC_LOGGER +#define DC_LOGGER \ + CTX->logger +#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); } + #define mmMP1_C2PMSG_3 0x3B1050C #define VBIOSSMC_MSG_TestMessage 0x01 ///< To check if PMFW is alive and responding. Requirement specified by PMFW team @@ -130,7 +136,9 @@ uint32_t result; result = dcn315_smu_wait_for_response(clk_mgr, 10, 200000); - ASSERT(result == VBIOSSMC_Result_OK); + + if (result != VBIOSSMC_Result_OK) + smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result); if (result == VBIOSSMC_Status_BUSY) { return -1; @@ -197,6 +205,10 @@ VBIOSSMC_MSG_SetHardMinDcfclkByFreq, khz_to_mhz_ceil(requested_dcfclk_khz)); +#ifdef DBG + smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000); +#endif + return actual_dcfclk_set_mhz * 1000; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/clk_mgr/dcn316/dcn316_smu.c @@ -58,6 +58,12 @@ #define FN(reg_name, field) \ FD(reg_name##__##field) +#include "logger_types.h" +#undef DC_LOGGER +#define DC_LOGGER \ + CTX->logger +#define smu_print(str, ...) {DC_LOG_SMU(str, ##__VA_ARGS__); } + #define VBIOSSMC_MSG_TestMessage 0x01 ///< To check if PMFW is alive and responding. Requirement specified by PMFW team #define VBIOSSMC_MSG_GetPmfwVersion 0x02 ///< Get PMFW version #define VBIOSSMC_MSG_Spare0 0x03 ///< Spare0 @@ -118,7 +124,9 @@ uint32_t result; result = dcn316_smu_wait_for_response(clk_mgr, 10, 200000); - ASSERT(result == VBIOSSMC_Result_OK); + + if (result != VBIOSSMC_Result_OK) + smu_print("SMU Response was not OK. SMU response after wait received is: %d\n", result); if (result == VBIOSSMC_Status_BUSY) { return -1; @@ -183,6 +191,10 @@ VBIOSSMC_MSG_SetHardMinDcfclkByFreq, khz_to_mhz_ceil(requested_dcfclk_khz)); +#ifdef DBG + smu_print("actual_dcfclk_set_mhz %d is set to : %d\n", actual_dcfclk_set_mhz, actual_dcfclk_set_mhz * 1000); +#endif + return actual_dcfclk_set_mhz * 1000; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/core/dc.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1067,8 +1067,15 @@ struct dc_stream_state *old_stream = dc->current_state->res_ctx.pipe_ctx[i].stream; bool should_disable = true; - bool pipe_split_change = - context->res_ctx.pipe_ctx[i].top_pipe != dc->current_state->res_ctx.pipe_ctx[i].top_pipe; + bool pipe_split_change = false; + + if ((context->res_ctx.pipe_ctx[i].top_pipe) && + (dc->current_state->res_ctx.pipe_ctx[i].top_pipe)) + pipe_split_change = context->res_ctx.pipe_ctx[i].top_pipe->pipe_idx != + dc->current_state->res_ctx.pipe_ctx[i].top_pipe->pipe_idx; + else + pipe_split_change = context->res_ctx.pipe_ctx[i].top_pipe != + dc->current_state->res_ctx.pipe_ctx[i].top_pipe; for (j = 0; j < context->stream_count; j++) { if (old_stream == context->streams[j]) { @@ -2625,11 +2632,8 @@ if (update->abm_level) stream->abm_level = *update->abm_level; - if (update->periodic_interrupt0) - stream->periodic_interrupt0 = *update->periodic_interrupt0; - - if (update->periodic_interrupt1) - stream->periodic_interrupt1 = *update->periodic_interrupt1; + if (update->periodic_interrupt) + stream->periodic_interrupt = *update->periodic_interrupt; if (update->gamut_remap) stream->gamut_remap_matrix = *update->gamut_remap; @@ -2716,13 +2720,8 @@ if (!pipe_ctx->top_pipe && !pipe_ctx->prev_odm_pipe && pipe_ctx->stream == stream) { - if (stream_update->periodic_interrupt0 && - dc->hwss.setup_periodic_interrupt) - dc->hwss.setup_periodic_interrupt(dc, pipe_ctx, VLINE0); - - if (stream_update->periodic_interrupt1 && - dc->hwss.setup_periodic_interrupt) - dc->hwss.setup_periodic_interrupt(dc, pipe_ctx, VLINE1); + if (stream_update->periodic_interrupt && dc->hwss.setup_periodic_interrupt) + dc->hwss.setup_periodic_interrupt(dc, pipe_ctx); if ((stream_update->hdr_static_metadata && !stream->use_dynamic_meta) || stream_update->vrr_infopacket || @@ -3783,6 +3782,7 @@ struct dc_context *dc_ctx = dc->ctx; dmub_enable_outbox_notification(dc_ctx->dmub_srv); + DC_LOG_DC("%s: dmub outbox notifications enabled\n", __func__); } /** --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/core/dc_link.c @@ -235,7 +235,8 @@ if (link->connector_signal == SIGNAL_TYPE_EDP) { /*in case it is not on*/ - link->dc->hwss.edp_power_control(link, true); + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, true); link->dc->hwss.edp_wait_for_hpd_ready(link, true); } @@ -1016,6 +1017,7 @@ bool same_edid = false; enum dc_edid_status edid_status; struct dc_context *dc_ctx = link->ctx; + struct dc *dc = dc_ctx->dc; struct dc_sink *sink = NULL; struct dc_sink *prev_sink = NULL; struct dpcd_caps prev_dpcd_caps; @@ -1095,6 +1097,16 @@ detect_edp_sink_caps(link); read_current_link_settings_on_detect(link); + + /* Disable power sequence on MIPI panel + converter + */ + if (dc->config.enable_mipi_converter_optimization && + dc_ctx->dce_version == DCN_VERSION_3_01 && + link->dpcd_caps.sink_dev_id == DP_BRANCH_DEVICE_ID_0022B9 && + memcmp(&link->dpcd_caps.branch_dev_name, DP_SINK_BRANCH_DEV_NAME_7580, + sizeof(link->dpcd_caps.branch_dev_name)) == 0) + dc->config.edp_no_power_sequencing = true; + sink_caps.transaction_type = DDC_TRANSACTION_TYPE_I2C_OVER_AUX; sink_caps.signal = SIGNAL_TYPE_EDP; break; @@ -1993,7 +2005,8 @@ if (pipe_ctx->stream->signal == SIGNAL_TYPE_EDP) { /*in case it is not on*/ - link->dc->hwss.edp_power_control(link, true); + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, true); link->dc->hwss.edp_wait_for_hpd_ready(link, true); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c @@ -2074,7 +2074,8 @@ uint32_t wait_time = 0; union lane_align_status_updated dpcd_lane_status_updated = {0}; union lane_status dpcd_lane_status[LANE_COUNT_DP_MAX] = {0}; - enum link_training_result status = LINK_TRAINING_SUCCESS; + enum dc_status status = DC_OK; + enum link_training_result result = LINK_TRAINING_SUCCESS; union lane_adjust dpcd_lane_adjust[LANE_COUNT_DP_MAX] = {0}; /* Transmit 128b/132b_TPS1 over Main-Link */ @@ -2099,22 +2100,24 @@ lt_settings->pattern_for_eq, DPRX); /* poll for channel EQ done */ - while (status == LINK_TRAINING_SUCCESS) { + while (result == LINK_TRAINING_SUCCESS) { dp_wait_for_training_aux_rd_interval(link, aux_rd_interval); wait_time += aux_rd_interval; - dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, + status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, &dpcd_lane_status_updated, dpcd_lane_adjust, DPRX); dp_decide_lane_settings(lt_settings, dpcd_lane_adjust, lt_settings->hw_lane_settings, lt_settings->dpcd_lane_settings); dpcd_128b_132b_get_aux_rd_interval(link, &aux_rd_interval); - if (dp_is_ch_eq_done(lt_settings->link_settings.lane_count, + if (status != DC_OK) { + result = LINK_TRAINING_ABORT; + } else if (dp_is_ch_eq_done(lt_settings->link_settings.lane_count, dpcd_lane_status)) { /* pass */ break; } else if (loop_count >= lt_settings->eq_loop_count_limit) { - status = DP_128b_132b_MAX_LOOP_COUNT_REACHED; + result = DP_128b_132b_MAX_LOOP_COUNT_REACHED; } else if (dpcd_lane_status_updated.bits.LT_FAILED_128b_132b) { - status = DP_128b_132b_LT_FAILED; + result = DP_128b_132b_LT_FAILED; } else { dp_set_hw_lane_settings(link, link_res, lt_settings, DPRX); dpcd_set_lane_settings(link, lt_settings, DPRX); @@ -2123,24 +2126,26 @@ } /* poll for EQ interlane align done */ - while (status == LINK_TRAINING_SUCCESS) { - if (dpcd_lane_status_updated.bits.EQ_INTERLANE_ALIGN_DONE_128b_132b) { + while (result == LINK_TRAINING_SUCCESS) { + if (status != DC_OK) { + result = LINK_TRAINING_ABORT; + } else if (dpcd_lane_status_updated.bits.EQ_INTERLANE_ALIGN_DONE_128b_132b) { /* pass */ break; } else if (wait_time >= lt_settings->eq_wait_time_limit) { - status = DP_128b_132b_CHANNEL_EQ_DONE_TIMEOUT; + result = DP_128b_132b_CHANNEL_EQ_DONE_TIMEOUT; } else if (dpcd_lane_status_updated.bits.LT_FAILED_128b_132b) { - status = DP_128b_132b_LT_FAILED; + result = DP_128b_132b_LT_FAILED; } else { dp_wait_for_training_aux_rd_interval(link, lt_settings->eq_pattern_time); wait_time += lt_settings->eq_pattern_time; - dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, + status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, &dpcd_lane_status_updated, dpcd_lane_adjust, DPRX); } } - return status; + return result; } static enum link_training_result dp_perform_128b_132b_cds_done_sequence( @@ -2149,7 +2154,8 @@ struct link_training_settings *lt_settings) { /* Assumption: assume hardware has transmitted eq pattern */ - enum link_training_result status = LINK_TRAINING_SUCCESS; + enum dc_status status = DC_OK; + enum link_training_result result = LINK_TRAINING_SUCCESS; union lane_align_status_updated dpcd_lane_status_updated = {0}; union lane_status dpcd_lane_status[LANE_COUNT_DP_MAX] = {0}; union lane_adjust dpcd_lane_adjust[LANE_COUNT_DP_MAX] = { { {0} } }; @@ -2159,24 +2165,26 @@ dpcd_set_training_pattern(link, lt_settings->pattern_for_cds); /* poll for CDS interlane align done and symbol lock */ - while (status == LINK_TRAINING_SUCCESS) { + while (result == LINK_TRAINING_SUCCESS) { dp_wait_for_training_aux_rd_interval(link, lt_settings->cds_pattern_time); wait_time += lt_settings->cds_pattern_time; - dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, + status = dp_get_lane_status_and_lane_adjust(link, lt_settings, dpcd_lane_status, &dpcd_lane_status_updated, dpcd_lane_adjust, DPRX); - if (dp_is_symbol_locked(lt_settings->link_settings.lane_count, dpcd_lane_status) && + if (status != DC_OK) { + result = LINK_TRAINING_ABORT; + } else if (dp_is_symbol_locked(lt_settings->link_settings.lane_count, dpcd_lane_status) && dpcd_lane_status_updated.bits.CDS_INTERLANE_ALIGN_DONE_128b_132b) { /* pass */ break; } else if (dpcd_lane_status_updated.bits.LT_FAILED_128b_132b) { - status = DP_128b_132b_LT_FAILED; + result = DP_128b_132b_LT_FAILED; } else if (wait_time >= lt_settings->cds_wait_time_limit) { - status = DP_128b_132b_CDS_DONE_TIMEOUT; + result = DP_128b_132b_CDS_DONE_TIMEOUT; } } - return status; + return result; } static enum link_training_result dp_perform_8b_10b_link_training( @@ -2849,8 +2857,14 @@ skip_video_pattern); /* Transmit idle pattern once training successful. */ - if (status == LINK_TRAINING_SUCCESS && !is_link_bw_low) + if (status == LINK_TRAINING_SUCCESS && !is_link_bw_low) { dp_set_hw_test_pattern(link, &pipe_ctx->link_res, DP_TEST_PATTERN_VIDEO_MODE, NULL, 0); + /* Update verified link settings to current one + * Because DPIA LT might fallback to lower link setting. + */ + link->verified_link_cap.link_rate = link->cur_link_settings.link_rate; + link->verified_link_cap.lane_count = link->cur_link_settings.lane_count; + } } else { status = dc_link_dp_perform_link_training(link, &pipe_ctx->link_res, @@ -5203,6 +5217,14 @@ lttpr_dpcd_data[DP_PHY_REPEATER_128B132B_RATES - DP_LT_TUNABLE_PHY_REPEATER_FIELD_DATA_STRUCTURE_REV]; + /* If this chip cap is set, at least one retimer must exist in the chain + * Override count to 1 if we receive a known bad count (0 or an invalid value) */ + if (link->chip_caps & EXT_DISPLAY_PATH_CAPS__DP_FIXED_VS_EN && + (dp_convert_to_count(link->dpcd_caps.lttpr_caps.phy_repeater_cnt) == 0)) { + ASSERT(0); + link->dpcd_caps.lttpr_caps.phy_repeater_cnt = 0x80; + } + /* Attempt to train in LTTPR transparent mode if repeater count exceeds 8. */ is_lttpr_present = (link->dpcd_caps.lttpr_caps.max_lane_count > 0 && link->dpcd_caps.lttpr_caps.max_lane_count <= 4 && @@ -7099,7 +7121,8 @@ unsigned int i; if (link->connector_signal == SIGNAL_TYPE_EDP) { - link->dc->hwss.edp_power_control(link, true); + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, true); link->dc->hwss.edp_wait_for_hpd_ready(link, true); } @@ -7226,7 +7249,8 @@ link->dc->hwss.edp_backlight_control(link, false); if (link_hwss->ext.disable_dp_link_output) link_hwss->ext.disable_dp_link_output(link, link_res, signal); - link->dc->hwss.edp_power_control(link, false); + if (!link->dc->config.edp_no_power_sequencing) + link->dc->hwss.edp_power_control(link, false); } else { if (dmcu != NULL && dmcu->funcs->lock_phy) dmcu->funcs->lock_phy(dmcu); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dc.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dc.h @@ -337,6 +337,7 @@ bool is_single_rank_dimm; bool use_pipe_ctx_sync_logic; bool ignore_dpref_ss; + bool enable_mipi_converter_optimization; }; enum visual_confirm { --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dc_link.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dc_link.h @@ -337,6 +337,7 @@ DETECT_REASON_HPDRX, DETECT_REASON_FALLBACK, DETECT_REASON_RETRAIN, + DETECT_REASON_TDR, }; bool dc_link_detect(struct dc_link *dc_link, enum dc_detect_reason reason); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dc_stream.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dc_stream.h @@ -200,8 +200,7 @@ /* DMCU info */ unsigned int abm_level; - struct periodic_interrupt_config periodic_interrupt0; - struct periodic_interrupt_config periodic_interrupt1; + struct periodic_interrupt_config periodic_interrupt; /* from core_stream struct */ struct dc_context *ctx; @@ -268,8 +267,7 @@ struct dc_info_packet *hdr_static_metadata; unsigned int *abm_level; - struct periodic_interrupt_config *periodic_interrupt0; - struct periodic_interrupt_config *periodic_interrupt1; + struct periodic_interrupt_config *periodic_interrupt; struct dc_info_packet *vrr_infopacket; struct dc_info_packet *vsc_infopacket; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dce/dce_clock_source.c @@ -545,9 +545,11 @@ switch (pix_clk_params->color_depth) { case COLOR_DEPTH_101010: actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 5) >> 2; + actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10; break; case COLOR_DEPTH_121212: actual_pixel_clock_100hz = (actual_pixel_clock_100hz * 6) >> 2; + actual_pixel_clock_100hz -= actual_pixel_clock_100hz % 10; break; case COLOR_DEPTH_161616: actual_pixel_clock_100hz = actual_pixel_clock_100hz * 2; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c @@ -1245,8 +1245,18 @@ * has changed or they enter protection state and hang. */ msleep(60); - } else if (pipe_ctx->stream->signal == SIGNAL_TYPE_EDP) - edp_receiver_ready_T9(link); + } else if (pipe_ctx->stream->signal == SIGNAL_TYPE_EDP) { + if (!link->dc->config.edp_no_power_sequencing) { + /* + * Sometimes, DP receiver chip power-controlled externally by an + * Embedded Controller could be treated and used as eDP, + * if it drives mobile display. In this case, + * we shouldn't be doing power-sequencing, hence we can skip + * waiting for T9-ready. + */ + edp_receiver_ready_T9(link); + } + } } } @@ -2155,21 +2165,25 @@ continue; if (pipe_ctx->stream->signal != SIGNAL_TYPE_HDMI_TYPE_A) continue; - if (pipe_ctx->stream_res.audio != NULL) { + if (pipe_ctx->stream_res.audio != NULL && + pipe_ctx->stream_res.audio->enabled == false) { struct audio_output audio_output; build_audio_output(context, pipe_ctx, &audio_output); if (dc->res_pool->dccg && dc->res_pool->dccg->funcs->set_audio_dtbclk_dto) { - /* disable audio DTBCLK DTO */ - dc->res_pool->dccg->funcs->set_audio_dtbclk_dto( - dc->res_pool->dccg, 0); + struct dtbclk_dto_params dto_params = {0}; pipe_ctx->stream_res.audio->funcs->wall_dto_setup( pipe_ctx->stream_res.audio, pipe_ctx->stream->signal, &audio_output.crtc_info, &audio_output.pll_info); + + dc->res_pool->dccg->funcs->set_audio_dtbclk_dto( + dc->res_pool->dccg, + &dto_params); + } else pipe_ctx->stream_res.audio->funcs->wall_dto_setup( pipe_ctx->stream_res.audio, @@ -2194,7 +2208,8 @@ if (!dc_is_dp_signal(pipe_ctx->stream->signal)) continue; - if (pipe_ctx->stream_res.audio != NULL) { + if (pipe_ctx->stream_res.audio != NULL && + pipe_ctx->stream_res.audio->enabled == false) { struct audio_output audio_output; build_audio_output(context, pipe_ctx, &audio_output); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c @@ -361,7 +361,8 @@ audio_regs(2), audio_regs(3), audio_regs(4), - audio_regs(5) + audio_regs(5), + audio_regs(6), }; #define DCE120_AUD_COMMON_MASK_SH_LIST(mask_sh)\ --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dce60/dce60_resource.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dce60/dce60_resource.c @@ -1127,6 +1127,7 @@ if (dce60_construct(num_virtual_links, dc, pool)) return &pool->base; + kfree(pool); BREAK_TO_DEBUGGER(); return NULL; } @@ -1324,6 +1325,7 @@ if (dce61_construct(num_virtual_links, dc, pool)) return &pool->base; + kfree(pool); BREAK_TO_DEBUGGER(); return NULL; } @@ -1517,6 +1519,7 @@ if (dce64_construct(num_virtual_links, dc, pool)) return &pool->base; + kfree(pool); BREAK_TO_DEBUGGER(); return NULL; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c @@ -1138,6 +1138,7 @@ if (dce80_construct(num_virtual_links, dc, pool)) return &pool->base; + kfree(pool); BREAK_TO_DEBUGGER(); return NULL; } @@ -1337,6 +1338,7 @@ if (dce81_construct(num_virtual_links, dc, pool)) return &pool->base; + kfree(pool); BREAK_TO_DEBUGGER(); return NULL; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c @@ -108,6 +108,7 @@ */ if (pipe_ctx->top_pipe || !pipe_ctx->stream || + !pipe_ctx->plane_state || !tg->funcs->is_tg_enabled(tg)) continue; @@ -864,6 +865,32 @@ tg->funcs->clear_optc_underflow(tg); } +static int calculate_vready_offset_for_group(struct pipe_ctx *pipe) +{ + struct pipe_ctx *other_pipe; + int vready_offset = pipe->pipe_dlg_param.vready_offset; + + /* Always use the largest vready_offset of all connected pipes */ + for (other_pipe = pipe->bottom_pipe; other_pipe != NULL; other_pipe = other_pipe->bottom_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->top_pipe; other_pipe != NULL; other_pipe = other_pipe->top_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->next_odm_pipe; other_pipe != NULL; other_pipe = other_pipe->next_odm_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->prev_odm_pipe; other_pipe != NULL; other_pipe = other_pipe->prev_odm_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + + return vready_offset; +} + enum dc_status dcn10_enable_stream_timing( struct pipe_ctx *pipe_ctx, struct dc_state *context, @@ -898,7 +925,7 @@ pipe_ctx->stream_res.tg->funcs->program_timing( pipe_ctx->stream_res.tg, &stream->timing, - pipe_ctx->pipe_dlg_param.vready_offset, + calculate_vready_offset_for_group(pipe_ctx), pipe_ctx->pipe_dlg_param.vstartup_start, pipe_ctx->pipe_dlg_param.vupdate_offset, pipe_ctx->pipe_dlg_param.vupdate_width, @@ -2864,7 +2891,7 @@ pipe_ctx->stream_res.tg->funcs->program_global_sync( pipe_ctx->stream_res.tg, - pipe_ctx->pipe_dlg_param.vready_offset, + calculate_vready_offset_for_group(pipe_ctx), pipe_ctx->pipe_dlg_param.vstartup_start, pipe_ctx->pipe_dlg_param.vupdate_offset, pipe_ctx->pipe_dlg_param.vupdate_width); @@ -3622,7 +3649,7 @@ { const struct dc_crtc_timing *dc_crtc_timing = &pipe_ctx->stream->timing; int vline_int_offset_from_vupdate = - pipe_ctx->stream->periodic_interrupt0.lines_offset; + pipe_ctx->stream->periodic_interrupt.lines_offset; int vupdate_offset_from_vsync = dc->hwss.get_vupdate_offset_from_vsync(pipe_ctx); int start_position; @@ -3647,18 +3674,10 @@ static void dcn10_cal_vline_position( struct dc *dc, struct pipe_ctx *pipe_ctx, - enum vline_select vline, uint32_t *start_line, uint32_t *end_line) { - enum vertical_interrupt_ref_point ref_point = INVALID_POINT; - - if (vline == VLINE0) - ref_point = pipe_ctx->stream->periodic_interrupt0.ref_point; - else if (vline == VLINE1) - ref_point = pipe_ctx->stream->periodic_interrupt1.ref_point; - - switch (ref_point) { + switch (pipe_ctx->stream->periodic_interrupt.ref_point) { case START_V_UPDATE: dcn10_calc_vupdate_position( dc, @@ -3667,7 +3686,9 @@ end_line); break; case START_V_SYNC: - // Suppose to do nothing because vsync is 0; + // vsync is line 0 so start_line is just the requested line offset + *start_line = pipe_ctx->stream->periodic_interrupt.lines_offset; + *end_line = *start_line + 2; break; default: ASSERT(0); @@ -3677,24 +3698,15 @@ void dcn10_setup_periodic_interrupt( struct dc *dc, - struct pipe_ctx *pipe_ctx, - enum vline_select vline) + struct pipe_ctx *pipe_ctx) { struct timing_generator *tg = pipe_ctx->stream_res.tg; + uint32_t start_line = 0; + uint32_t end_line = 0; - if (vline == VLINE0) { - uint32_t start_line = 0; - uint32_t end_line = 0; - - dcn10_cal_vline_position(dc, pipe_ctx, vline, &start_line, &end_line); - - tg->funcs->setup_vertical_interrupt0(tg, start_line, end_line); - - } else if (vline == VLINE1) { - pipe_ctx->stream_res.tg->funcs->setup_vertical_interrupt1( - tg, - pipe_ctx->stream->periodic_interrupt1.lines_offset); - } + dcn10_cal_vline_position(dc, pipe_ctx, &start_line, &end_line); + + tg->funcs->setup_vertical_interrupt0(tg, start_line, end_line); } void dcn10_setup_vupdate_interrupt(struct dc *dc, struct pipe_ctx *pipe_ctx) --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.h @@ -175,8 +175,7 @@ void dcn10_set_cursor_sdr_white_level(struct pipe_ctx *pipe_ctx); void dcn10_setup_periodic_interrupt( struct dc *dc, - struct pipe_ctx *pipe_ctx, - enum vline_select vline); + struct pipe_ctx *pipe_ctx); enum dc_status dcn10_set_clock(struct dc *dc, enum dc_clock_type clock_type, uint32_t clk_khz, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_mpc.c @@ -126,6 +126,12 @@ while (tmp_mpcc != NULL) { if (tmp_mpcc->dpp_id == dpp_id) return tmp_mpcc; + + /* avoid circular linked list */ + ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot); + if (tmp_mpcc == tmp_mpcc->mpcc_bot) + break; + tmp_mpcc = tmp_mpcc->mpcc_bot; } return NULL; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_optc.c @@ -464,6 +464,11 @@ OTG_CLOCK_ON, 1, 1, 1000); } else { + + //last chance to clear underflow, otherwise, it will always there due to clock is off. + if (optc->funcs->is_optc_underflow_occurred(optc) == true) + optc->funcs->clear_optc_underflow(optc); + REG_UPDATE_2(OTG_CLOCK_CONTROL, OTG_CLOCK_GATE_DIS, 0, OTG_CLOCK_EN, 0); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c @@ -1520,6 +1520,7 @@ /* Any updates are handled in dc interface, just need * to apply existing for plane enable / opp change */ if (pipe_ctx->update_flags.bits.enable || pipe_ctx->update_flags.bits.opp_changed + || pipe_ctx->update_flags.bits.plane_changed || pipe_ctx->stream->update_flags.bits.gamut_remap || pipe_ctx->stream->update_flags.bits.out_csc) { /* dpp/cm gamut remap*/ @@ -1570,6 +1571,31 @@ hubp->funcs->set_blank(hubp, false); } +static int calculate_vready_offset_for_group(struct pipe_ctx *pipe) +{ + struct pipe_ctx *other_pipe; + int vready_offset = pipe->pipe_dlg_param.vready_offset; + + /* Always use the largest vready_offset of all connected pipes */ + for (other_pipe = pipe->bottom_pipe; other_pipe != NULL; other_pipe = other_pipe->bottom_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->top_pipe; other_pipe != NULL; other_pipe = other_pipe->top_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->next_odm_pipe; other_pipe != NULL; other_pipe = other_pipe->next_odm_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + for (other_pipe = pipe->prev_odm_pipe; other_pipe != NULL; other_pipe = other_pipe->prev_odm_pipe) { + if (other_pipe->pipe_dlg_param.vready_offset > vready_offset) + vready_offset = other_pipe->pipe_dlg_param.vready_offset; + } + + return vready_offset; +} static void dcn20_program_pipe( struct dc *dc, @@ -1588,7 +1614,7 @@ pipe_ctx->stream_res.tg->funcs->program_global_sync( pipe_ctx->stream_res.tg, - pipe_ctx->pipe_dlg_param.vready_offset, + calculate_vready_offset_for_group(pipe_ctx), pipe_ctx->pipe_dlg_param.vstartup_start, pipe_ctx->pipe_dlg_param.vupdate_offset, pipe_ctx->pipe_dlg_param.vupdate_width); @@ -1779,7 +1805,7 @@ for (j = 0; j < TIMEOUT_FOR_PIPE_ENABLE_MS*1000 && hubp->funcs->hubp_is_flip_pending(hubp); j++) - mdelay(1); + udelay(1); } } @@ -1914,7 +1940,7 @@ pipe_ctx->stream_res.tg->funcs->program_global_sync( pipe_ctx->stream_res.tg, - pipe_ctx->pipe_dlg_param.vready_offset, + calculate_vready_offset_for_group(pipe_ctx), pipe_ctx->pipe_dlg_param.vstartup_start, pipe_ctx->pipe_dlg_param.vupdate_offset, pipe_ctx->pipe_dlg_param.vupdate_width); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_mpc.c @@ -531,6 +531,12 @@ while (tmp_mpcc != NULL) { if (tmp_mpcc->dpp_id == 0xf || tmp_mpcc->dpp_id == dpp_id) return tmp_mpcc; + + /* avoid circular linked list */ + ASSERT(tmp_mpcc != tmp_mpcc->mpcc_bot); + if (tmp_mpcc == tmp_mpcc->mpcc_bot) + break; + tmp_mpcc = tmp_mpcc->mpcc_bot; } return NULL; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_hubbub.c @@ -67,9 +67,15 @@ void dcn21_dchvm_init(struct hubbub *hubbub) { struct dcn20_hubbub *hubbub1 = TO_DCN20_HUBBUB(hubbub); - uint32_t riommu_active; + uint32_t riommu_active, prefetch_done; int i; + REG_GET(DCHVM_RIOMMU_STAT0, HOSTVM_PREFETCH_DONE, &prefetch_done); + + if (prefetch_done) { + hubbub->riommu_active = true; + return; + } //Init DCHVM block REG_UPDATE(DCHVM_CTRL0, HOSTVM_INIT_REQ, 1); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hubp.c @@ -86,7 +86,7 @@ VMID, address->vmid); if (address->type == PLN_ADDR_TYPE_GRPH_STEREO) { - REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_MODE_FOR_STEREOSYNC, 0x1); + REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_MODE_FOR_STEREOSYNC, 0); REG_UPDATE(DCSURF_FLIP_CONTROL, SURFACE_FLIP_IN_STEREOSYNC, 0x1); } else { --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn303/dcn303_resource.c @@ -372,7 +372,7 @@ int afmt_inst; /* Mapping of VPG, AFMT, DME register blocks to DIO block instance */ - if (eng_id <= ENGINE_ID_DIGE) { + if (eng_id <= ENGINE_ID_DIGB) { vpg_inst = eng_id; afmt_inst = eng_id; } else --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.c @@ -513,7 +513,7 @@ /* Controls the generation of pixel valid for OTG in (OTG -> HPO case) */ static void dccg31_set_dtbclk_dto( struct dccg *dccg, - struct dtbclk_dto_params *params) + const struct dtbclk_dto_params *params) { struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg); int req_dtbclk_khz = params->pixclk_khz; @@ -579,18 +579,17 @@ void dccg31_set_audio_dtbclk_dto( struct dccg *dccg, - uint32_t req_audio_dtbclk_khz) + const struct dtbclk_dto_params *params) { struct dcn_dccg *dccg_dcn = TO_DCN_DCCG(dccg); - if (dccg->ref_dtbclk_khz && req_audio_dtbclk_khz) { + if (params->ref_dtbclk_khz && params->req_audio_dtbclk_khz) { uint32_t modulo, phase; // phase / modulo = dtbclk / dtbclk ref - modulo = dccg->ref_dtbclk_khz * 1000; - phase = div_u64((((unsigned long long)modulo * req_audio_dtbclk_khz) + dccg->ref_dtbclk_khz - 1), - dccg->ref_dtbclk_khz); - + modulo = params->ref_dtbclk_khz * 1000; + phase = div_u64((((unsigned long long)modulo * params->req_audio_dtbclk_khz) + params->ref_dtbclk_khz - 1), + params->ref_dtbclk_khz); REG_WRITE(DCCG_AUDIO_DTBCLK_DTO_MODULO, modulo); REG_WRITE(DCCG_AUDIO_DTBCLK_DTO_PHASE, phase); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_dccg.h @@ -192,7 +192,7 @@ void dccg31_set_audio_dtbclk_dto( struct dccg *dccg, - uint32_t req_audio_dtbclk_khz); + const struct dtbclk_dto_params *params); void dccg31_set_hdmistreamclk( struct dccg *dccg, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.c @@ -150,9 +150,9 @@ * 10us*5000=50ms. This covers 41.7ms of minimum 24 Hz mode + * a little more because we may not trust delay accuracy. */ - //REG_WAIT(DP_SYM32_ENC_VID_STREAM_CONTROL, - // VID_STREAM_STATUS, 0, - // 10, 5000); + REG_WAIT(DP_SYM32_ENC_VID_STREAM_CONTROL, + VID_STREAM_STATUS, 0, + 10, 5000); /* Disable SDP tranmission */ REG_UPDATE(DP_SYM32_ENC_SDP_CONTROL, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hpo_dp_stream_encoder.h @@ -162,7 +162,8 @@ SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_SDP_AUDIO_CONTROL0, AIP_ENABLE, mask_sh),\ SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_SDP_AUDIO_CONTROL0, ACM_ENABLE, mask_sh),\ SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_ENABLE, mask_sh),\ - SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_CONT_MODE_ENABLE, mask_sh) + SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_VID_CRC_CONTROL, CRC_CONT_MODE_ENABLE, mask_sh),\ + SE_SF(DP_SYM32_ENC0_DP_SYM32_ENC_HBLANK_CONTROL, HBLANK_MINIMUM_SYMBOL_WIDTH, mask_sh) #define DCN3_1_HPO_DP_STREAM_ENC_REG_FIELD_LIST(type) \ --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dcn31/dcn31_hubp.c @@ -87,6 +87,7 @@ .hubp_init = hubp3_init, .set_unbounded_requesting = hubp31_set_unbounded_requesting, .hubp_soft_reset = hubp31_soft_reset, + .hubp_set_flip_int = hubp1_set_flip_int, .hubp_in_blank = hubp1_in_blank, .program_extended_blank = hubp31_program_extended_blank, }; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dml/calcs/bw_fixed.c @@ -26,12 +26,12 @@ #include "bw_fixed.h" -#define MIN_I64 \ - (int64_t)(-(1LL << 63)) - #define MAX_I64 \ (int64_t)((1ULL << 63) - 1) +#define MIN_I64 \ + (-MAX_I64 - 1) + #define FRACTIONAL_PART_MASK \ ((1ULL << BW_FIXED_BITS_PER_FRACTIONAL_PART) - 1) --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c @@ -6651,8 +6651,7 @@ return ret; } - -static void UseMinimumDCFCLK( +static noinline_for_stack void UseMinimumDCFCLK( struct display_mode_lib *mode_lib, int MaxInterDCNTileRepeaters, int MaxPrefetchMode, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dml/dcn31/display_mode_vba_31.c @@ -261,33 +261,13 @@ static void CalculateFlipSchedule( struct display_mode_lib *mode_lib, + unsigned int k, double HostVMInefficiencyFactor, double UrgentExtraLatency, double UrgentLatency, - unsigned int GPUVMMaxPageTableLevels, - bool HostVMEnable, - unsigned int HostVMMaxNonCachedPageTableLevels, - bool GPUVMEnable, - double HostVMMinPageSize, double PDEAndMetaPTEBytesPerFrame, double MetaRowBytes, - double DPTEBytesPerRow, - double BandwidthAvailableForImmediateFlip, - unsigned int TotImmediateFlipBytes, - enum source_format_class SourcePixelFormat, - double LineTime, - double VRatio, - double VRatioChroma, - double Tno_bw, - bool DCCEnable, - unsigned int dpte_row_height, - unsigned int meta_row_height, - unsigned int dpte_row_height_chroma, - unsigned int meta_row_height_chroma, - double *DestinationLinesToRequestVMInImmediateFlip, - double *DestinationLinesToRequestRowInImmediateFlip, - double *final_flip_bw, - bool *ImmediateFlipSupportedForPipe); + double DPTEBytesPerRow); static double CalculateWriteBackDelay( enum source_format_class WritebackPixelFormat, double WritebackHRatio, @@ -321,64 +301,28 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport( struct display_mode_lib *mode_lib, unsigned int PrefetchMode, - unsigned int NumberOfActivePlanes, - unsigned int MaxLineBufferLines, - unsigned int LineBufferSize, - unsigned int WritebackInterfaceBufferSize, double DCFCLK, double ReturnBW, - bool SynchronizedVBlank, - unsigned int dpte_group_bytes[], - unsigned int MetaChunkSize, double UrgentLatency, double ExtraLatency, - double WritebackLatency, - double WritebackChunkSize, double SOCCLK, - double DRAMClockChangeLatency, - double SRExitTime, - double SREnterPlusExitTime, - double SRExitZ8Time, - double SREnterPlusExitZ8Time, double DCFCLKDeepSleep, unsigned int DETBufferSizeY[], unsigned int DETBufferSizeC[], unsigned int SwathHeightY[], unsigned int SwathHeightC[], - unsigned int LBBitPerPixel[], double SwathWidthY[], double SwathWidthC[], - double HRatio[], - double HRatioChroma[], - unsigned int vtaps[], - unsigned int VTAPsChroma[], - double VRatio[], - double VRatioChroma[], - unsigned int HTotal[], - double PixelClock[], - unsigned int BlendingAndTiming[], unsigned int DPPPerPlane[], double BytePerPixelDETY[], double BytePerPixelDETC[], - double DSTXAfterScaler[], - double DSTYAfterScaler[], - bool WritebackEnable[], - enum source_format_class WritebackPixelFormat[], - double WritebackDestinationWidth[], - double WritebackDestinationHeight[], - double WritebackSourceHeight[], bool UnboundedRequestEnabled, int unsigned CompressedBufferSizeInkByte, enum clock_change_support *DRAMClockChangeSupport, - double *UrgentWatermark, - double *WritebackUrgentWatermark, - double *DRAMClockChangeWatermark, - double *WritebackDRAMClockChangeWatermark, double *StutterExitWatermark, double *StutterEnterPlusExitWatermark, double *Z8StutterExitWatermark, - double *Z8StutterEnterPlusExitWatermark, - double *MinActiveDRAMClockChangeLatencySupported); + double *Z8StutterEnterPlusExitWatermark); static void CalculateDCFCLKDeepSleep( struct display_mode_lib *mode_lib, @@ -2914,33 +2858,13 @@ for (k = 0; k < v->NumberOfActivePlanes; ++k) { CalculateFlipSchedule( mode_lib, + k, HostVMInefficiencyFactor, v->UrgentExtraLatency, v->UrgentLatency, - v->GPUVMMaxPageTableLevels, - v->HostVMEnable, - v->HostVMMaxNonCachedPageTableLevels, - v->GPUVMEnable, - v->HostVMMinPageSize, v->PDEAndMetaPTEBytesFrame[k], v->MetaRowByte[k], - v->PixelPTEBytesPerRow[k], - v->BandwidthAvailableForImmediateFlip, - v->TotImmediateFlipBytes, - v->SourcePixelFormat[k], - v->HTotal[k] / v->PixelClock[k], - v->VRatio[k], - v->VRatioChroma[k], - v->Tno_bw[k], - v->DCCEnable[k], - v->dpte_row_height[k], - v->meta_row_height[k], - v->dpte_row_height_chroma[k], - v->meta_row_height_chroma[k], - &v->DestinationLinesToRequestVMInImmediateFlip[k], - &v->DestinationLinesToRequestRowInImmediateFlip[k], - &v->final_flip_bw[k], - &v->ImmediateFlipSupportedForPipe[k]); + v->PixelPTEBytesPerRow[k]); } v->total_dcn_read_bw_with_flip = 0.0; @@ -3027,64 +2951,28 @@ CalculateWatermarksAndDRAMSpeedChangeSupport( mode_lib, PrefetchMode, - v->NumberOfActivePlanes, - v->MaxLineBufferLines, - v->LineBufferSize, - v->WritebackInterfaceBufferSize, v->DCFCLK, v->ReturnBW, - v->SynchronizedVBlank, - v->dpte_group_bytes, - v->MetaChunkSize, v->UrgentLatency, v->UrgentExtraLatency, - v->WritebackLatency, - v->WritebackChunkSize, v->SOCCLK, - v->DRAMClockChangeLatency, - v->SRExitTime, - v->SREnterPlusExitTime, - v->SRExitZ8Time, - v->SREnterPlusExitZ8Time, v->DCFCLKDeepSleep, v->DETBufferSizeY, v->DETBufferSizeC, v->SwathHeightY, v->SwathHeightC, - v->LBBitPerPixel, v->SwathWidthY, v->SwathWidthC, - v->HRatio, - v->HRatioChroma, - v->vtaps, - v->VTAPsChroma, - v->VRatio, - v->VRatioChroma, - v->HTotal, - v->PixelClock, - v->BlendingAndTiming, v->DPPPerPlane, v->BytePerPixelDETY, v->BytePerPixelDETC, - v->DSTXAfterScaler, - v->DSTYAfterScaler, - v->WritebackEnable, - v->WritebackPixelFormat, - v->WritebackDestinationWidth, - v->WritebackDestinationHeight, - v->WritebackSourceHeight, v->UnboundedRequestEnabled, v->CompressedBufferSizeInkByte, &DRAMClockChangeSupport, - &v->UrgentWatermark, - &v->WritebackUrgentWatermark, - &v->DRAMClockChangeWatermark, - &v->WritebackDRAMClockChangeWatermark, &v->StutterExitWatermark, &v->StutterEnterPlusExitWatermark, &v->Z8StutterExitWatermark, - &v->Z8StutterEnterPlusExitWatermark, - &v->MinActiveDRAMClockChangeLatencySupported); + &v->Z8StutterEnterPlusExitWatermark); for (k = 0; k < v->NumberOfActivePlanes; ++k) { if (v->WritebackEnable[k] == true) { @@ -3696,61 +3584,43 @@ static void CalculateFlipSchedule( struct display_mode_lib *mode_lib, + unsigned int k, double HostVMInefficiencyFactor, double UrgentExtraLatency, double UrgentLatency, - unsigned int GPUVMMaxPageTableLevels, - bool HostVMEnable, - unsigned int HostVMMaxNonCachedPageTableLevels, - bool GPUVMEnable, - double HostVMMinPageSize, double PDEAndMetaPTEBytesPerFrame, double MetaRowBytes, - double DPTEBytesPerRow, - double BandwidthAvailableForImmediateFlip, - unsigned int TotImmediateFlipBytes, - enum source_format_class SourcePixelFormat, - double LineTime, - double VRatio, - double VRatioChroma, - double Tno_bw, - bool DCCEnable, - unsigned int dpte_row_height, - unsigned int meta_row_height, - unsigned int dpte_row_height_chroma, - unsigned int meta_row_height_chroma, - double *DestinationLinesToRequestVMInImmediateFlip, - double *DestinationLinesToRequestRowInImmediateFlip, - double *final_flip_bw, - bool *ImmediateFlipSupportedForPipe) + double DPTEBytesPerRow) { + struct vba_vars_st *v = &mode_lib->vba; double min_row_time = 0.0; unsigned int HostVMDynamicLevelsTrips; double TimeForFetchingMetaPTEImmediateFlip; double TimeForFetchingRowInVBlankImmediateFlip; double ImmediateFlipBW; + double LineTime = v->HTotal[k] / v->PixelClock[k]; - if (GPUVMEnable == true && HostVMEnable == true) { - HostVMDynamicLevelsTrips = HostVMMaxNonCachedPageTableLevels; + if (v->GPUVMEnable == true && v->HostVMEnable == true) { + HostVMDynamicLevelsTrips = v->HostVMMaxNonCachedPageTableLevels; } else { HostVMDynamicLevelsTrips = 0; } - if (GPUVMEnable == true || DCCEnable == true) { - ImmediateFlipBW = (PDEAndMetaPTEBytesPerFrame + MetaRowBytes + DPTEBytesPerRow) * BandwidthAvailableForImmediateFlip / TotImmediateFlipBytes; + if (v->GPUVMEnable == true || v->DCCEnable[k] == true) { + ImmediateFlipBW = (PDEAndMetaPTEBytesPerFrame + MetaRowBytes + DPTEBytesPerRow) * v->BandwidthAvailableForImmediateFlip / v->TotImmediateFlipBytes; } - if (GPUVMEnable == true) { + if (v->GPUVMEnable == true) { TimeForFetchingMetaPTEImmediateFlip = dml_max3( - Tno_bw + PDEAndMetaPTEBytesPerFrame * HostVMInefficiencyFactor / ImmediateFlipBW, - UrgentExtraLatency + UrgentLatency * (GPUVMMaxPageTableLevels * (HostVMDynamicLevelsTrips + 1) - 1), + v->Tno_bw[k] + PDEAndMetaPTEBytesPerFrame * HostVMInefficiencyFactor / ImmediateFlipBW, + UrgentExtraLatency + UrgentLatency * (v->GPUVMMaxPageTableLevels * (HostVMDynamicLevelsTrips + 1) - 1), LineTime / 4.0); } else { TimeForFetchingMetaPTEImmediateFlip = 0; } - *DestinationLinesToRequestVMInImmediateFlip = dml_ceil(4.0 * (TimeForFetchingMetaPTEImmediateFlip / LineTime), 1) / 4.0; - if ((GPUVMEnable == true || DCCEnable == true)) { + v->DestinationLinesToRequestVMInImmediateFlip[k] = dml_ceil(4.0 * (TimeForFetchingMetaPTEImmediateFlip / LineTime), 1) / 4.0; + if ((v->GPUVMEnable == true || v->DCCEnable[k] == true)) { TimeForFetchingRowInVBlankImmediateFlip = dml_max3( (MetaRowBytes + DPTEBytesPerRow * HostVMInefficiencyFactor) / ImmediateFlipBW, UrgentLatency * (HostVMDynamicLevelsTrips + 1), @@ -3759,54 +3629,54 @@ TimeForFetchingRowInVBlankImmediateFlip = 0; } - *DestinationLinesToRequestRowInImmediateFlip = dml_ceil(4.0 * (TimeForFetchingRowInVBlankImmediateFlip / LineTime), 1) / 4.0; - - if (GPUVMEnable == true) { - *final_flip_bw = dml_max( - PDEAndMetaPTEBytesPerFrame * HostVMInefficiencyFactor / (*DestinationLinesToRequestVMInImmediateFlip * LineTime), - (MetaRowBytes + DPTEBytesPerRow * HostVMInefficiencyFactor) / (*DestinationLinesToRequestRowInImmediateFlip * LineTime)); - } else if ((GPUVMEnable == true || DCCEnable == true)) { - *final_flip_bw = (MetaRowBytes + DPTEBytesPerRow * HostVMInefficiencyFactor) / (*DestinationLinesToRequestRowInImmediateFlip * LineTime); - } else { - *final_flip_bw = 0; - } + v->DestinationLinesToRequestRowInImmediateFlip[k] = dml_ceil(4.0 * (TimeForFetchingRowInVBlankImmediateFlip / LineTime), 1) / 4.0; - if (SourcePixelFormat == dm_420_8 || SourcePixelFormat == dm_420_10 || SourcePixelFormat == dm_rgbe_alpha) { - if (GPUVMEnable == true && DCCEnable != true) { - min_row_time = dml_min(dpte_row_height * LineTime / VRatio, dpte_row_height_chroma * LineTime / VRatioChroma); - } else if (GPUVMEnable != true && DCCEnable == true) { - min_row_time = dml_min(meta_row_height * LineTime / VRatio, meta_row_height_chroma * LineTime / VRatioChroma); + if (v->GPUVMEnable == true) { + v->final_flip_bw[k] = dml_max( + PDEAndMetaPTEBytesPerFrame * HostVMInefficiencyFactor / (v->DestinationLinesToRequestVMInImmediateFlip[k] * LineTime), + (MetaRowBytes + DPTEBytesPerRow * HostVMInefficiencyFactor) / (v->DestinationLinesToRequestRowInImmediateFlip[k] * LineTime)); + } else if ((v->GPUVMEnable == true || v->DCCEnable[k] == true)) { + v->final_flip_bw[k] = (MetaRowBytes + DPTEBytesPerRow * HostVMInefficiencyFactor) / (v->DestinationLinesToRequestRowInImmediateFlip[k] * LineTime); + } else { + v->final_flip_bw[k] = 0; + } + + if (v->SourcePixelFormat[k] == dm_420_8 || v->SourcePixelFormat[k] == dm_420_10 || v->SourcePixelFormat[k] == dm_rgbe_alpha) { + if (v->GPUVMEnable == true && v->DCCEnable[k] != true) { + min_row_time = dml_min(v->dpte_row_height[k] * LineTime / v->VRatio[k], v->dpte_row_height_chroma[k] * LineTime / v->VRatioChroma[k]); + } else if (v->GPUVMEnable != true && v->DCCEnable[k] == true) { + min_row_time = dml_min(v->meta_row_height[k] * LineTime / v->VRatio[k], v->meta_row_height_chroma[k] * LineTime / v->VRatioChroma[k]); } else { min_row_time = dml_min4( - dpte_row_height * LineTime / VRatio, - meta_row_height * LineTime / VRatio, - dpte_row_height_chroma * LineTime / VRatioChroma, - meta_row_height_chroma * LineTime / VRatioChroma); + v->dpte_row_height[k] * LineTime / v->VRatio[k], + v->meta_row_height[k] * LineTime / v->VRatio[k], + v->dpte_row_height_chroma[k] * LineTime / v->VRatioChroma[k], + v->meta_row_height_chroma[k] * LineTime / v->VRatioChroma[k]); } } else { - if (GPUVMEnable == true && DCCEnable != true) { - min_row_time = dpte_row_height * LineTime / VRatio; - } else if (GPUVMEnable != true && DCCEnable == true) { - min_row_time = meta_row_height * LineTime / VRatio; + if (v->GPUVMEnable == true && v->DCCEnable[k] != true) { + min_row_time = v->dpte_row_height[k] * LineTime / v->VRatio[k]; + } else if (v->GPUVMEnable != true && v->DCCEnable[k] == true) { + min_row_time = v->meta_row_height[k] * LineTime / v->VRatio[k]; } else { - min_row_time = dml_min(dpte_row_height * LineTime / VRatio, meta_row_height * LineTime / VRatio); + min_row_time = dml_min(v->dpte_row_height[k] * LineTime / v->VRatio[k], v->meta_row_height[k] * LineTime / v->VRatio[k]); } } - if (*DestinationLinesToRequestVMInImmediateFlip >= 32 || *DestinationLinesToRequestRowInImmediateFlip >= 16 + if (v->DestinationLinesToRequestVMInImmediateFlip[k] >= 32 || v->DestinationLinesToRequestRowInImmediateFlip[k] >= 16 || TimeForFetchingMetaPTEImmediateFlip + 2 * TimeForFetchingRowInVBlankImmediateFlip > min_row_time) { - *ImmediateFlipSupportedForPipe = false; + v->ImmediateFlipSupportedForPipe[k] = false; } else { - *ImmediateFlipSupportedForPipe = true; + v->ImmediateFlipSupportedForPipe[k] = true; } #ifdef __DML_VBA_DEBUG__ - dml_print("DML::%s: DestinationLinesToRequestVMInImmediateFlip = %f\n", __func__, *DestinationLinesToRequestVMInImmediateFlip); - dml_print("DML::%s: DestinationLinesToRequestRowInImmediateFlip = %f\n", __func__, *DestinationLinesToRequestRowInImmediateFlip); + dml_print("DML::%s: DestinationLinesToRequestVMInImmediateFlip = %f\n", __func__, v->DestinationLinesToRequestVMInImmediateFlip[k]); + dml_print("DML::%s: DestinationLinesToRequestRowInImmediateFlip = %f\n", __func__, v->DestinationLinesToRequestRowInImmediateFlip[k]); dml_print("DML::%s: TimeForFetchingMetaPTEImmediateFlip = %f\n", __func__, TimeForFetchingMetaPTEImmediateFlip); dml_print("DML::%s: TimeForFetchingRowInVBlankImmediateFlip = %f\n", __func__, TimeForFetchingRowInVBlankImmediateFlip); dml_print("DML::%s: min_row_time = %f\n", __func__, min_row_time); - dml_print("DML::%s: ImmediateFlipSupportedForPipe = %d\n", __func__, *ImmediateFlipSupportedForPipe); + dml_print("DML::%s: ImmediateFlipSupportedForPipe = %d\n", __func__, v->ImmediateFlipSupportedForPipe[k]); #endif } @@ -5397,33 +5267,13 @@ for (k = 0; k < v->NumberOfActivePlanes; k++) { CalculateFlipSchedule( mode_lib, + k, HostVMInefficiencyFactor, v->ExtraLatency, v->UrgLatency[i], - v->GPUVMMaxPageTableLevels, - v->HostVMEnable, - v->HostVMMaxNonCachedPageTableLevels, - v->GPUVMEnable, - v->HostVMMinPageSize, v->PDEAndMetaPTEBytesPerFrame[i][j][k], v->MetaRowBytes[i][j][k], - v->DPTEBytesPerRow[i][j][k], - v->BandwidthAvailableForImmediateFlip, - v->TotImmediateFlipBytes, - v->SourcePixelFormat[k], - v->HTotal[k] / v->PixelClock[k], - v->VRatio[k], - v->VRatioChroma[k], - v->Tno_bw[k], - v->DCCEnable[k], - v->dpte_row_height[k], - v->meta_row_height[k], - v->dpte_row_height_chroma[k], - v->meta_row_height_chroma[k], - &v->DestinationLinesToRequestVMInImmediateFlip[k], - &v->DestinationLinesToRequestRowInImmediateFlip[k], - &v->final_flip_bw[k], - &v->ImmediateFlipSupportedForPipe[k]); + v->DPTEBytesPerRow[i][j][k]); } v->total_dcn_read_bw_with_flip = 0.0; for (k = 0; k < v->NumberOfActivePlanes; k++) { @@ -5481,64 +5331,28 @@ CalculateWatermarksAndDRAMSpeedChangeSupport( mode_lib, v->PrefetchModePerState[i][j], - v->NumberOfActivePlanes, - v->MaxLineBufferLines, - v->LineBufferSize, - v->WritebackInterfaceBufferSize, v->DCFCLKState[i][j], v->ReturnBWPerState[i][j], - v->SynchronizedVBlank, - v->dpte_group_bytes, - v->MetaChunkSize, v->UrgLatency[i], v->ExtraLatency, - v->WritebackLatency, - v->WritebackChunkSize, v->SOCCLKPerState[i], - v->DRAMClockChangeLatency, - v->SRExitTime, - v->SREnterPlusExitTime, - v->SRExitZ8Time, - v->SREnterPlusExitZ8Time, v->ProjectedDCFCLKDeepSleep[i][j], v->DETBufferSizeYThisState, v->DETBufferSizeCThisState, v->SwathHeightYThisState, v->SwathHeightCThisState, - v->LBBitPerPixel, v->SwathWidthYThisState, v->SwathWidthCThisState, - v->HRatio, - v->HRatioChroma, - v->vtaps, - v->VTAPsChroma, - v->VRatio, - v->VRatioChroma, - v->HTotal, - v->PixelClock, - v->BlendingAndTiming, v->NoOfDPPThisState, v->BytePerPixelInDETY, v->BytePerPixelInDETC, - v->DSTXAfterScaler, - v->DSTYAfterScaler, - v->WritebackEnable, - v->WritebackPixelFormat, - v->WritebackDestinationWidth, - v->WritebackDestinationHeight, - v->WritebackSourceHeight, UnboundedRequestEnabledThisState, CompressedBufferSizeInkByteThisState, &v->DRAMClockChangeSupport[i][j], - &v->UrgentWatermark, - &v->WritebackUrgentWatermark, - &v->DRAMClockChangeWatermark, - &v->WritebackDRAMClockChangeWatermark, - &dummy, &dummy, &dummy, &dummy, - &v->MinActiveDRAMClockChangeLatencySupported); + &dummy); } } @@ -5663,64 +5477,28 @@ static void CalculateWatermarksAndDRAMSpeedChangeSupport( struct display_mode_lib *mode_lib, unsigned int PrefetchMode, - unsigned int NumberOfActivePlanes, - unsigned int MaxLineBufferLines, - unsigned int LineBufferSize, - unsigned int WritebackInterfaceBufferSize, double DCFCLK, double ReturnBW, - bool SynchronizedVBlank, - unsigned int dpte_group_bytes[], - unsigned int MetaChunkSize, double UrgentLatency, double ExtraLatency, - double WritebackLatency, - double WritebackChunkSize, double SOCCLK, - double DRAMClockChangeLatency, - double SRExitTime, - double SREnterPlusExitTime, - double SRExitZ8Time, - double SREnterPlusExitZ8Time, double DCFCLKDeepSleep, unsigned int DETBufferSizeY[], unsigned int DETBufferSizeC[], unsigned int SwathHeightY[], unsigned int SwathHeightC[], - unsigned int LBBitPerPixel[], double SwathWidthY[], double SwathWidthC[], - double HRatio[], - double HRatioChroma[], - unsigned int vtaps[], - unsigned int VTAPsChroma[], - double VRatio[], - double VRatioChroma[], - unsigned int HTotal[], - double PixelClock[], - unsigned int BlendingAndTiming[], unsigned int DPPPerPlane[], double BytePerPixelDETY[], double BytePerPixelDETC[], - double DSTXAfterScaler[], - double DSTYAfterScaler[], - bool WritebackEnable[], - enum source_format_class WritebackPixelFormat[], - double WritebackDestinationWidth[], - double WritebackDestinationHeight[], - double WritebackSourceHeight[], bool UnboundedRequestEnabled, int unsigned CompressedBufferSizeInkByte, enum clock_change_support *DRAMClockChangeSupport, - double *UrgentWatermark, - double *WritebackUrgentWatermark, - double *DRAMClockChangeWatermark, - double *WritebackDRAMClockChangeWatermark, double *StutterExitWatermark, double *StutterEnterPlusExitWatermark, double *Z8StutterExitWatermark, - double *Z8StutterEnterPlusExitWatermark, - double *MinActiveDRAMClockChangeLatencySupported) + double *Z8StutterEnterPlusExitWatermark) { struct vba_vars_st *v = &mode_lib->vba; double EffectiveLBLatencyHidingY; @@ -5740,103 +5518,103 @@ double TotalPixelBW = 0.0; int k, j; - *UrgentWatermark = UrgentLatency + ExtraLatency; + v->UrgentWatermark = UrgentLatency + ExtraLatency; #ifdef __DML_VBA_DEBUG__ dml_print("DML::%s: UrgentLatency = %f\n", __func__, UrgentLatency); dml_print("DML::%s: ExtraLatency = %f\n", __func__, ExtraLatency); - dml_print("DML::%s: UrgentWatermark = %f\n", __func__, *UrgentWatermark); + dml_print("DML::%s: UrgentWatermark = %f\n", __func__, v->UrgentWatermark); #endif - *DRAMClockChangeWatermark = DRAMClockChangeLatency + *UrgentWatermark; + v->DRAMClockChangeWatermark = v->DRAMClockChangeLatency + v->UrgentWatermark; #ifdef __DML_VBA_DEBUG__ - dml_print("DML::%s: DRAMClockChangeLatency = %f\n", __func__, DRAMClockChangeLatency); - dml_print("DML::%s: DRAMClockChangeWatermark = %f\n", __func__, *DRAMClockChangeWatermark); + dml_print("DML::%s: v->DRAMClockChangeLatency = %f\n", __func__, v->DRAMClockChangeLatency); + dml_print("DML::%s: DRAMClockChangeWatermark = %f\n", __func__, v->DRAMClockChangeWatermark); #endif v->TotalActiveWriteback = 0; - for (k = 0; k < NumberOfActivePlanes; ++k) { - if (WritebackEnable[k] == true) { + for (k = 0; k < v->NumberOfActivePlanes; ++k) { + if (v->WritebackEnable[k] == true) { v->TotalActiveWriteback = v->TotalActiveWriteback + 1; } } if (v->TotalActiveWriteback <= 1) { - *WritebackUrgentWatermark = WritebackLatency; + v->WritebackUrgentWatermark = v->WritebackLatency; } else { - *WritebackUrgentWatermark = WritebackLatency + WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; + v->WritebackUrgentWatermark = v->WritebackLatency + v->WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; } if (v->TotalActiveWriteback <= 1) { - *WritebackDRAMClockChangeWatermark = DRAMClockChangeLatency + WritebackLatency; + v->WritebackDRAMClockChangeWatermark = v->DRAMClockChangeLatency + v->WritebackLatency; } else { - *WritebackDRAMClockChangeWatermark = DRAMClockChangeLatency + WritebackLatency + WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; + v->WritebackDRAMClockChangeWatermark = v->DRAMClockChangeLatency + v->WritebackLatency + v->WritebackChunkSize * 1024.0 / 32.0 / SOCCLK; } - for (k = 0; k < NumberOfActivePlanes; ++k) { + for (k = 0; k < v->NumberOfActivePlanes; ++k) { TotalPixelBW = TotalPixelBW - + DPPPerPlane[k] * (SwathWidthY[k] * BytePerPixelDETY[k] * VRatio[k] + SwathWidthC[k] * BytePerPixelDETC[k] * VRatioChroma[k]) - / (HTotal[k] / PixelClock[k]); + + DPPPerPlane[k] * (SwathWidthY[k] * BytePerPixelDETY[k] * v->VRatio[k] + SwathWidthC[k] * BytePerPixelDETC[k] * v->VRatioChroma[k]) + / (v->HTotal[k] / v->PixelClock[k]); } - for (k = 0; k < NumberOfActivePlanes; ++k) { + for (k = 0; k < v->NumberOfActivePlanes; ++k) { double EffectiveDETBufferSizeY = DETBufferSizeY[k]; v->LBLatencyHidingSourceLinesY = dml_min( - (double) MaxLineBufferLines, - dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(HRatio[k], 1.0)), 1)) - (vtaps[k] - 1); + (double) v->MaxLineBufferLines, + dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthY[k] / dml_max(v->HRatio[k], 1.0)), 1)) - (v->vtaps[k] - 1); v->LBLatencyHidingSourceLinesC = dml_min( - (double) MaxLineBufferLines, - dml_floor(LineBufferSize / LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(HRatioChroma[k], 1.0)), 1)) - (VTAPsChroma[k] - 1); + (double) v->MaxLineBufferLines, + dml_floor(v->LineBufferSize / v->LBBitPerPixel[k] / (SwathWidthC[k] / dml_max(v->HRatioChroma[k], 1.0)), 1)) - (v->VTAPsChroma[k] - 1); - EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / VRatio[k] * (HTotal[k] / PixelClock[k]); + EffectiveLBLatencyHidingY = v->LBLatencyHidingSourceLinesY / v->VRatio[k] * (v->HTotal[k] / v->PixelClock[k]); - EffectiveLBLatencyHidingC = v->LBLatencyHidingSourceLinesC / VRatioChroma[k] * (HTotal[k] / PixelClock[k]); + EffectiveLBLatencyHidingC = v->LBLatencyHidingSourceLinesC / v->VRatioChroma[k] * (v->HTotal[k] / v->PixelClock[k]); if (UnboundedRequestEnabled) { EffectiveDETBufferSizeY = EffectiveDETBufferSizeY - + CompressedBufferSizeInkByte * 1024 * SwathWidthY[k] * BytePerPixelDETY[k] * VRatio[k] / (HTotal[k] / PixelClock[k]) / TotalPixelBW; + + CompressedBufferSizeInkByte * 1024 * SwathWidthY[k] * BytePerPixelDETY[k] * v->VRatio[k] / (v->HTotal[k] / v->PixelClock[k]) / TotalPixelBW; } LinesInDETY[k] = (double) EffectiveDETBufferSizeY / BytePerPixelDETY[k] / SwathWidthY[k]; LinesInDETYRoundedDownToSwath[k] = dml_floor(LinesInDETY[k], SwathHeightY[k]); - FullDETBufferingTimeY = LinesInDETYRoundedDownToSwath[k] * (HTotal[k] / PixelClock[k]) / VRatio[k]; + FullDETBufferingTimeY = LinesInDETYRoundedDownToSwath[k] * (v->HTotal[k] / v->PixelClock[k]) / v->VRatio[k]; if (BytePerPixelDETC[k] > 0) { LinesInDETC = v->DETBufferSizeC[k] / BytePerPixelDETC[k] / SwathWidthC[k]; LinesInDETCRoundedDownToSwath = dml_floor(LinesInDETC, SwathHeightC[k]); - FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (HTotal[k] / PixelClock[k]) / VRatioChroma[k]; + FullDETBufferingTimeC = LinesInDETCRoundedDownToSwath * (v->HTotal[k] / v->PixelClock[k]) / v->VRatioChroma[k]; } else { LinesInDETC = 0; FullDETBufferingTimeC = 999999; } ActiveDRAMClockChangeLatencyMarginY = EffectiveLBLatencyHidingY + FullDETBufferingTimeY - - ((double) DSTXAfterScaler[k] / HTotal[k] + DSTYAfterScaler[k]) * HTotal[k] / PixelClock[k] - *UrgentWatermark - *DRAMClockChangeWatermark; + - ((double) v->DSTXAfterScaler[k] / v->HTotal[k] + v->DSTYAfterScaler[k]) * v->HTotal[k] / v->PixelClock[k] - v->UrgentWatermark - v->DRAMClockChangeWatermark; - if (NumberOfActivePlanes > 1) { + if (v->NumberOfActivePlanes > 1) { ActiveDRAMClockChangeLatencyMarginY = ActiveDRAMClockChangeLatencyMarginY - - (1 - 1.0 / NumberOfActivePlanes) * SwathHeightY[k] * HTotal[k] / PixelClock[k] / VRatio[k]; + - (1 - 1.0 / v->NumberOfActivePlanes) * SwathHeightY[k] * v->HTotal[k] / v->PixelClock[k] / v->VRatio[k]; } if (BytePerPixelDETC[k] > 0) { ActiveDRAMClockChangeLatencyMarginC = EffectiveLBLatencyHidingC + FullDETBufferingTimeC - - ((double) DSTXAfterScaler[k] / HTotal[k] + DSTYAfterScaler[k]) * HTotal[k] / PixelClock[k] - *UrgentWatermark - *DRAMClockChangeWatermark; + - ((double) v->DSTXAfterScaler[k] / v->HTotal[k] + v->DSTYAfterScaler[k]) * v->HTotal[k] / v->PixelClock[k] - v->UrgentWatermark - v->DRAMClockChangeWatermark; - if (NumberOfActivePlanes > 1) { + if (v->NumberOfActivePlanes > 1) { ActiveDRAMClockChangeLatencyMarginC = ActiveDRAMClockChangeLatencyMarginC - - (1 - 1.0 / NumberOfActivePlanes) * SwathHeightC[k] * HTotal[k] / PixelClock[k] / VRatioChroma[k]; + - (1 - 1.0 / v->NumberOfActivePlanes) * SwathHeightC[k] * v->HTotal[k] / v->PixelClock[k] / v->VRatioChroma[k]; } v->ActiveDRAMClockChangeLatencyMargin[k] = dml_min(ActiveDRAMClockChangeLatencyMarginY, ActiveDRAMClockChangeLatencyMarginC); } else { v->ActiveDRAMClockChangeLatencyMargin[k] = ActiveDRAMClockChangeLatencyMarginY; } - if (WritebackEnable[k] == true) { - WritebackDRAMClockChangeLatencyHiding = WritebackInterfaceBufferSize * 1024 - / (WritebackDestinationWidth[k] * WritebackDestinationHeight[k] / (WritebackSourceHeight[k] * HTotal[k] / PixelClock[k]) * 4); - if (WritebackPixelFormat[k] == dm_444_64) { + if (v->WritebackEnable[k] == true) { + WritebackDRAMClockChangeLatencyHiding = v->WritebackInterfaceBufferSize * 1024 + / (v->WritebackDestinationWidth[k] * v->WritebackDestinationHeight[k] / (v->WritebackSourceHeight[k] * v->HTotal[k] / v->PixelClock[k]) * 4); + if (v->WritebackPixelFormat[k] == dm_444_64) { WritebackDRAMClockChangeLatencyHiding = WritebackDRAMClockChangeLatencyHiding / 2; } WritebackDRAMClockChangeLatencyMargin = WritebackDRAMClockChangeLatencyHiding - v->WritebackDRAMClockChangeWatermark; @@ -5846,14 +5624,14 @@ v->MinActiveDRAMClockChangeMargin = 999999; PlaneWithMinActiveDRAMClockChangeMargin = 0; - for (k = 0; k < NumberOfActivePlanes; ++k) { + for (k = 0; k < v->NumberOfActivePlanes; ++k) { if (v->ActiveDRAMClockChangeLatencyMargin[k] < v->MinActiveDRAMClockChangeMargin) { v->MinActiveDRAMClockChangeMargin = v->ActiveDRAMClockChangeLatencyMargin[k]; - if (BlendingAndTiming[k] == k) { + if (v->BlendingAndTiming[k] == k) { PlaneWithMinActiveDRAMClockChangeMargin = k; } else { - for (j = 0; j < NumberOfActivePlanes; ++j) { - if (BlendingAndTiming[k] == j) { + for (j = 0; j < v->NumberOfActivePlanes; ++j) { + if (v->BlendingAndTiming[k] == j) { PlaneWithMinActiveDRAMClockChangeMargin = j; } } @@ -5861,11 +5639,11 @@ } } - *MinActiveDRAMClockChangeLatencySupported = v->MinActiveDRAMClockChangeMargin + DRAMClockChangeLatency; + v->MinActiveDRAMClockChangeLatencySupported = v->MinActiveDRAMClockChangeMargin + v->DRAMClockChangeLatency ; SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank = 999999; - for (k = 0; k < NumberOfActivePlanes; ++k) { - if (!((k == PlaneWithMinActiveDRAMClockChangeMargin) && (BlendingAndTiming[k] == k)) && !(BlendingAndTiming[k] == PlaneWithMinActiveDRAMClockChangeMargin) + for (k = 0; k < v->NumberOfActivePlanes; ++k) { + if (!((k == PlaneWithMinActiveDRAMClockChangeMargin) && (v->BlendingAndTiming[k] == k)) && !(v->BlendingAndTiming[k] == PlaneWithMinActiveDRAMClockChangeMargin) && v->ActiveDRAMClockChangeLatencyMargin[k] < SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank) { SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank = v->ActiveDRAMClockChangeLatencyMargin[k]; } @@ -5873,25 +5651,25 @@ v->TotalNumberOfActiveOTG = 0; - for (k = 0; k < NumberOfActivePlanes; ++k) { - if (BlendingAndTiming[k] == k) { + for (k = 0; k < v->NumberOfActivePlanes; ++k) { + if (v->BlendingAndTiming[k] == k) { v->TotalNumberOfActiveOTG = v->TotalNumberOfActiveOTG + 1; } } if (v->MinActiveDRAMClockChangeMargin > 0 && PrefetchMode == 0) { *DRAMClockChangeSupport = dm_dram_clock_change_vactive; - } else if ((SynchronizedVBlank == true || v->TotalNumberOfActiveOTG == 1 + } else if ((v->SynchronizedVBlank == true || v->TotalNumberOfActiveOTG == 1 || SecondMinActiveDRAMClockChangeMarginOneDisplayInVBLank > 0) && PrefetchMode == 0) { *DRAMClockChangeSupport = dm_dram_clock_change_vblank; } else { *DRAMClockChangeSupport = dm_dram_clock_change_unsupported; } - *StutterExitWatermark = SRExitTime + ExtraLatency + 10 / DCFCLKDeepSleep; - *StutterEnterPlusExitWatermark = (SREnterPlusExitTime + ExtraLatency + 10 / DCFCLKDeepSleep); - *Z8StutterExitWatermark = SRExitZ8Time + ExtraLatency + 10 / DCFCLKDeepSleep; - *Z8StutterEnterPlusExitWatermark = SREnterPlusExitZ8Time + ExtraLatency + 10 / DCFCLKDeepSleep; + *StutterExitWatermark = v->SRExitTime + ExtraLatency + 10 / DCFCLKDeepSleep; + *StutterEnterPlusExitWatermark = (v->SREnterPlusExitTime + ExtraLatency + 10 / DCFCLKDeepSleep); + *Z8StutterExitWatermark = v->SRExitZ8Time + ExtraLatency + 10 / DCFCLKDeepSleep; + *Z8StutterEnterPlusExitWatermark = v->SREnterPlusExitZ8Time + ExtraLatency + 10 / DCFCLKDeepSleep; #ifdef __DML_VBA_DEBUG__ dml_print("DML::%s: StutterExitWatermark = %f\n", __func__, *StutterExitWatermark); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/dml/display_mode_vba.h @@ -952,7 +952,7 @@ double UrgBurstFactorLumaPre[DC__NUM_DPP__MAX]; double UrgBurstFactorChromaPre[DC__NUM_DPP__MAX]; bool NotUrgentLatencyHidingPre[DC__NUM_DPP__MAX]; - bool LinkCapacitySupport[DC__NUM_DPP__MAX]; + bool LinkCapacitySupport[DC__VOLTAGE_STATES]; bool VREADY_AT_OR_AFTER_VSYNC[DC__NUM_DPP__MAX]; unsigned int MIN_DST_Y_NEXT_START[DC__NUM_DPP__MAX]; unsigned int VFrontPorch[DC__NUM_DPP__MAX]; --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/inc/hw/dccg.h @@ -120,11 +120,11 @@ void (*set_dtbclk_dto)( struct dccg *dccg, - struct dtbclk_dto_params *dto_params); + const struct dtbclk_dto_params *params); void (*set_audio_dtbclk_dto)( struct dccg *dccg, - uint32_t req_audio_dtbclk_khz); + const struct dtbclk_dto_params *params); void (*set_dispclk_change_mode)( struct dccg *dccg, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/inc/hw/mpc.h @@ -346,6 +346,11 @@ int mpcc_id, const struct mpc_grph_gamut_adjustment *adjust); + bool (*program_1dlut)( + struct mpc *mpc, + const struct pwl_params *params, + uint32_t rmu_idx); + bool (*program_shaper)( struct mpc *mpc, const struct pwl_params *params, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h @@ -32,11 +32,6 @@ #include "inc/hw/link_encoder.h" #include "core_status.h" -enum vline_select { - VLINE0, - VLINE1 -}; - struct pipe_ctx; struct dc_state; struct dc_stream_status; @@ -116,8 +111,7 @@ int group_index, int group_size, struct pipe_ctx *grouped_pipes[]); void (*setup_periodic_interrupt)(struct dc *dc, - struct pipe_ctx *pipe_ctx, - enum vline_select vline); + struct pipe_ctx *pipe_ctx); void (*set_drr)(struct pipe_ctx **pipe_ctx, int num_pipes, struct dc_crtc_timing_adjust adjust); void (*set_static_screen_control)(struct pipe_ctx **pipe_ctx, --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer_private.h +++ linux-5.19.0/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer_private.h @@ -140,6 +140,8 @@ const struct dc_plane_state *plane_state); bool (*set_shaper_3dlut)(struct pipe_ctx *pipe_ctx, const struct dc_plane_state *plane_state); + bool (*set_mcm_luts)(struct pipe_ctx *pipe_ctx, + const struct dc_plane_state *plane_state); void (*PLAT_58856_wa)(struct dc_state *context, struct pipe_ctx *pipe_ctx); void (*setup_hpo_hw_control)(const struct dce_hwseq *hws, bool enable); --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/modules/color/color_gamma.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/modules/color/color_gamma.c @@ -1603,6 +1603,7 @@ struct fixed31_32 lut2; struct fixed31_32 delta_lut; struct fixed31_32 delta_index; + const struct fixed31_32 one = dc_fixpt_from_int(1); i = 0; /* fixed_pt library has problems handling too small values */ @@ -1631,6 +1632,9 @@ } else hw_x = coordinates_x[i].x; + if (dc_fixpt_le(one, hw_x)) + hw_x = one; + norm_x = dc_fixpt_mul(norm_factor, hw_x); index = dc_fixpt_floor(norm_x); if (index < 0 || index > 255) --- linux-5.19.0.orig/drivers/gpu/drm/amd/display/modules/freesync/freesync.c +++ linux-5.19.0/drivers/gpu/drm/amd/display/modules/freesync/freesync.c @@ -615,10 +615,6 @@ * Note: We should never go above the field rate of the mode timing set. */ infopacket->sb[8] = (unsigned char)((vrr->max_refresh_in_uhz + 500000) / 1000000); - - /* FreeSync HDR */ - infopacket->sb[9] = 0; - infopacket->sb[10] = 0; } static void build_vrr_infopacket_data_v3(const struct mod_vrr_params *vrr, @@ -686,10 +682,6 @@ /* PB16 : Reserved bits 7:1, FixedRate bit 0 */ infopacket->sb[16] = (vrr->state == VRR_STATE_ACTIVE_FIXED) ? 1 : 0; - - //FreeSync HDR - infopacket->sb[9] = 0; - infopacket->sb[10] = 0; } static void build_vrr_infopacket_fs2_data(enum color_transfer_func app_tf, @@ -774,8 +766,7 @@ /* HB2 = [Bits 7:5 = 0] [Bits 4:0 = Length = 0x09] */ infopacket->hb2 = 0x09; - *payload_size = 0x0A; - + *payload_size = 0x09; } else if (dc_is_dp_signal(signal)) { /* HEADER */ @@ -824,9 +815,9 @@ infopacket->hb1 = version; /* HB2 = [Bits 7:5 = 0] [Bits 4:0 = Length] */ - *payload_size = 0x10; - infopacket->hb2 = *payload_size - 1; //-1 for checksum + infopacket->hb2 = 0x10; + *payload_size = 0x10; } else if (dc_is_dp_signal(signal)) { /* HEADER */ --- linux-5.19.0.orig/drivers/gpu/drm/amd/include/kgd_kfd_interface.h +++ linux-5.19.0/drivers/gpu/drm/amd/include/kgd_kfd_interface.h @@ -262,8 +262,9 @@ uint32_t queue_id); int (*hqd_destroy)(struct amdgpu_device *adev, void *mqd, - uint32_t reset_type, unsigned int timeout, - uint32_t pipe_id, uint32_t queue_id); + enum kfd_preempt_type reset_type, + unsigned int timeout, uint32_t pipe_id, + uint32_t queue_id); bool (*hqd_sdma_is_occupied)(struct amdgpu_device *adev, void *mqd); --- linux-5.19.0.orig/drivers/gpu/drm/amd/include/kgd_pp_interface.h +++ linux-5.19.0/drivers/gpu/drm/amd/include/kgd_pp_interface.h @@ -354,7 +354,8 @@ int (*get_power_profile_mode)(void *handle, char *buf); int (*set_power_profile_mode)(void *handle, long *input, uint32_t size); int (*set_fine_grain_clk_vol)(void *handle, uint32_t type, long *input, uint32_t size); - int (*odn_edit_dpm_table)(void *handle, uint32_t type, long *input, uint32_t size); + int (*odn_edit_dpm_table)(void *handle, enum PP_OD_DPM_TABLE_COMMAND type, + long *input, uint32_t size); int (*set_mp1_state)(void *handle, enum pp_mp1_state mp1_state); int (*smu_i2c_bus_access)(void *handle, bool acquire); int (*gfx_state_change_set)(void *handle, uint32_t state); --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c @@ -838,7 +838,8 @@ return hwmgr->hwmgr_func->set_fine_grain_clk_vol(hwmgr, type, input, size); } -static int pp_odn_edit_dpm_table(void *handle, uint32_t type, long *input, uint32_t size) +static int pp_odn_edit_dpm_table(void *handle, enum PP_OD_DPM_TABLE_COMMAND type, + long *input, uint32_t size) { struct pp_hwmgr *hwmgr = handle; --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pp_psm.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/powerplay/hwmgr/pp_psm.c @@ -75,8 +75,10 @@ for (i = 0; i < table_entries; i++) { result = hwmgr->hwmgr_func->get_pp_table_entry(hwmgr, i, state); if (result) { + kfree(hwmgr->current_ps); kfree(hwmgr->request_ps); kfree(hwmgr->ps); + hwmgr->current_ps = NULL; hwmgr->request_ps = NULL; hwmgr->ps = NULL; return -EINVAL; --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega10_thermal.c @@ -67,22 +67,21 @@ int vega10_fan_ctrl_get_fan_speed_pwm(struct pp_hwmgr *hwmgr, uint32_t *speed) { - uint32_t current_rpm; - uint32_t percent = 0; + struct amdgpu_device *adev = hwmgr->adev; + uint32_t duty100, duty; + uint64_t tmp64; - if (hwmgr->thermal_controller.fanInfo.bNoFan) - return 0; + duty100 = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_FDO_CTRL1), + CG_FDO_CTRL1, FMAX_DUTY100); + duty = REG_GET_FIELD(RREG32_SOC15(THM, 0, mmCG_THERMAL_STATUS), + CG_THERMAL_STATUS, FDO_PWM_DUTY); - if (vega10_get_current_rpm(hwmgr, ¤t_rpm)) - return -1; + if (!duty100) + return -EINVAL; - if (hwmgr->thermal_controller. - advanceFanControlParameters.usMaxFanRPM != 0) - percent = current_rpm * 255 / - hwmgr->thermal_controller. - advanceFanControlParameters.usMaxFanRPM; - - *speed = MIN(percent, 255); + tmp64 = (uint64_t)duty * 255; + do_div(tmp64, duty100); + *speed = MIN((uint32_t)tmp64, 255); return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/powerplay/hwmgr/vega20_hwmgr.c @@ -2961,7 +2961,8 @@ data->od8_settings.od8_settings_array; OverDriveTable_t *od_table = &(data->smc_state_table.overdrive_table); - int32_t input_index, input_clk, input_vol, i; + int32_t input_clk, input_vol, i; + uint32_t input_index; int od8_id; int ret; --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c @@ -1122,22 +1122,21 @@ uint64_t features_supported; int ret = 0; - if (adev->in_suspend && smu_is_dpm_running(smu)) { - dev_info(adev->dev, "dpm has been enabled\n"); - /* this is needed specifically */ - switch (adev->ip_versions[MP1_HWIP][0]) { - case IP_VERSION(11, 0, 7): - case IP_VERSION(11, 0, 11): - case IP_VERSION(11, 5, 0): - case IP_VERSION(11, 0, 12): + switch (adev->ip_versions[MP1_HWIP][0]) { + case IP_VERSION(11, 0, 7): + case IP_VERSION(11, 0, 11): + case IP_VERSION(11, 5, 0): + case IP_VERSION(11, 0, 12): + if (adev->in_suspend && smu_is_dpm_running(smu)) { + dev_info(adev->dev, "dpm has been enabled\n"); ret = smu_system_features_control(smu, true); if (ret) dev_err(adev->dev, "Failed system features control!\n"); - break; - default: - break; + return ret; } - return ret; + break; + default: + break; } ret = smu_init_display_count(smu, 0); --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c @@ -2241,9 +2241,17 @@ static int arcturus_set_df_cstate(struct smu_context *smu, enum pp_df_cstate state) { + struct amdgpu_device *adev = smu->adev; uint32_t smu_version; int ret; + /* + * Arcturus does not need the cstate disablement + * prerequisite for gpu reset. + */ + if (amdgpu_in_reset(adev) || adev->in_suspend) + return 0; + ret = smu_cmn_get_smc_version(smu, NULL, &smu_version); if (ret) { dev_err(smu->adev->dev, "Failed to get smu version!\n"); --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c @@ -368,6 +368,23 @@ smu_baco->platform_support = (val & RCC_BIF_STRAP0__STRAP_PX_CAPABLE_MASK) ? true : false; + + /* + * Disable BACO entry/exit completely on below SKUs to + * avoid hardware intermittent failures. + */ + if (((adev->pdev->device == 0x73A1) && + (adev->pdev->revision == 0x00)) || + ((adev->pdev->device == 0x73BF) && + (adev->pdev->revision == 0xCF)) || + ((adev->pdev->device == 0x7422) && + (adev->pdev->revision == 0x00)) || + ((adev->pdev->device == 0x73A3) && + (adev->pdev->revision == 0x00)) || + ((adev->pdev->device == 0x73E3) && + (adev->pdev->revision == 0x00))) + smu_baco->platform_support = false; + } } @@ -4281,6 +4298,7 @@ .dump_pptable = sienna_cichlid_dump_pptable, .init_microcode = smu_v11_0_init_microcode, .load_microcode = smu_v11_0_load_microcode, + .fini_microcode = smu_v11_0_fini_microcode, .init_smc_tables = sienna_cichlid_init_smc_tables, .fini_smc_tables = smu_v11_0_fini_smc_tables, .init_power = smu_v11_0_init_power, --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c @@ -1588,6 +1588,10 @@ if (amdgpu_sriov_vf(smu->adev) || !smu_baco->platform_support) return false; + /* return true if ASIC is in BACO state already */ + if (smu_v11_0_baco_get_state(smu) == SMU_BACO_STATE_ENTER) + return true; + /* Arcturus does not support this bit mask */ if (smu_cmn_feature_is_supported(smu, SMU_FEATURE_BACO_BIT) && !smu_cmn_feature_is_enabled(smu, SMU_FEATURE_BACO_BIT)) --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu13/aldebaran_ppt.c @@ -1643,6 +1643,15 @@ static int aldebaran_set_df_cstate(struct smu_context *smu, enum pp_df_cstate state) { + struct amdgpu_device *adev = smu->adev; + + /* + * Aldebaran does not need the cstate disablement + * prerequisite for gpu reset. + */ + if (amdgpu_in_reset(adev) || adev->in_suspend) + return 0; + return smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_DFCstateControl, state, NULL); } --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c @@ -203,6 +203,9 @@ if (!adev->scpm_enabled) return 0; + if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7)) + return 0; + /* override pptable_id from driver parameter */ if (amdgpu_smu_pptable_id >= 0) { pptable_id = amdgpu_smu_pptable_id; @@ -210,13 +213,6 @@ } else { pptable_id = smu->smu_table.boot_values.pp_table_id; - if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7) && - pptable_id == 3667) - pptable_id = 36671; - - if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(13, 0, 7) && - pptable_id == 3688) - pptable_id = 36881; /* * Temporary solution for SMU V13.0.0 with SCPM enabled: * - use 36831 signed pptable when pp_table_id is 3683 @@ -714,6 +710,8 @@ smu->smu_table.boot_values.vclk = smu_info_v3_6->bootup_vclk_10khz; smu->smu_table.boot_values.dclk = smu_info_v3_6->bootup_dclk_10khz; smu->smu_table.boot_values.fclk = smu_info_v3_6->bootup_fclk_10khz; + } else if ((frev == 3) && (crev == 1)) { + return 0; } else if ((frev == 4) && (crev == 0)) { smu_info_v4_0 = (struct atom_smu_info_v4_0 *)header; --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c @@ -1583,7 +1583,9 @@ .dump_pptable = smu_v13_0_0_dump_pptable, .init_microcode = smu_v13_0_init_microcode, .load_microcode = smu_v13_0_load_microcode, + .fini_microcode = smu_v13_0_fini_microcode, .init_smc_tables = smu_v13_0_0_init_smc_tables, + .fini_smc_tables = smu_v13_0_fini_smc_tables, .init_power = smu_v13_0_init_power, .fini_power = smu_v13_0_fini_power, .check_fw_status = smu_v13_0_check_fw_status, --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_4_ppt.c @@ -190,6 +190,9 @@ kfree(smu_table->watermarks_table); smu_table->watermarks_table = NULL; + kfree(smu_table->gpu_metrics_table); + smu_table->gpu_metrics_table = NULL; + return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +++ linux-5.19.0/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c @@ -382,11 +382,27 @@ return 0; } +static int smu_v13_0_7_get_pptable_from_pmfw(struct smu_context *smu, + void **table, + uint32_t *size) +{ + struct smu_table_context *smu_table = &smu->smu_table; + void *combo_pptable = smu_table->combo_pptable; + int ret = 0; + + ret = smu_cmn_get_combo_pptable(smu); + if (ret) + return ret; + + *table = combo_pptable; + *size = sizeof(struct smu_13_0_7_powerplay_table); + + return 0; +} static int smu_v13_0_7_setup_pptable(struct smu_context *smu) { struct smu_table_context *smu_table = &smu->smu_table; - void *combo_pptable = smu_table->combo_pptable; struct amdgpu_device *adev = smu->adev; int ret = 0; @@ -395,18 +411,11 @@ * be used directly by driver. To get the raw pptable, we need to * rely on the combo pptable(and its revelant SMU message). */ - if (adev->scpm_enabled) { - ret = smu_cmn_get_combo_pptable(smu); - if (ret) - return ret; - - smu->smu_table.power_play_table = combo_pptable; - smu->smu_table.power_play_table_size = sizeof(struct smu_13_0_7_powerplay_table); - } else { - ret = smu_v13_0_setup_pptable(smu); - if (ret) - return ret; - } + ret = smu_v13_0_7_get_pptable_from_pmfw(smu, + &smu_table->power_play_table, + &smu_table->power_play_table_size); + if (ret) + return ret; ret = smu_v13_0_7_store_powerplay_table(smu); if (ret) @@ -1406,7 +1415,7 @@ static int smu_v13_0_7_get_power_profile_mode(struct smu_context *smu, char *buf) { - DpmActivityMonitorCoeffIntExternal_t activity_monitor_external[PP_SMC_POWER_PROFILE_COUNT]; + DpmActivityMonitorCoeffIntExternal_t *activity_monitor_external; uint32_t i, j, size = 0; int16_t workload_type = 0; int result = 0; @@ -1414,6 +1423,12 @@ if (!buf) return -EINVAL; + activity_monitor_external = kcalloc(PP_SMC_POWER_PROFILE_COUNT, + sizeof(*activity_monitor_external), + GFP_KERNEL); + if (!activity_monitor_external) + return -ENOMEM; + size += sysfs_emit_at(buf, size, " "); for (i = 0; i <= PP_SMC_POWER_PROFILE_WINDOW3D; i++) size += sysfs_emit_at(buf, size, "%-14s%s", amdgpu_pp_profile_name[i], @@ -1426,15 +1441,17 @@ workload_type = smu_cmn_to_asic_specific_index(smu, CMN2ASIC_MAPPING_WORKLOAD, i); - if (workload_type < 0) - return -EINVAL; + if (workload_type < 0) { + result = -EINVAL; + goto out; + } result = smu_cmn_update_table(smu, SMU_TABLE_ACTIVITY_MONITOR_COEFF, workload_type, (void *)(&activity_monitor_external[i]), false); if (result) { dev_err(smu->adev->dev, "[%s] Failed to get activity monitor!", __func__); - return result; + goto out; } } @@ -1462,7 +1479,10 @@ PRINT_DPM_MONITOR(Fclk_BoosterFreq); #undef PRINT_DPM_MONITOR - return size; + result = size; +out: + kfree(activity_monitor_external); + return result; } static int smu_v13_0_7_set_power_profile_mode(struct smu_context *smu, long *input, uint32_t size) @@ -1539,7 +1559,9 @@ .dump_pptable = smu_v13_0_7_dump_pptable, .init_microcode = smu_v13_0_init_microcode, .load_microcode = smu_v13_0_load_microcode, + .fini_microcode = smu_v13_0_fini_microcode, .init_smc_tables = smu_v13_0_7_init_smc_tables, + .fini_smc_tables = smu_v13_0_fini_smc_tables, .init_power = smu_v13_0_init_power, .check_fw_status = smu_v13_0_7_check_fw_status, .setup_pptable = smu_v13_0_7_setup_pptable, --- linux-5.19.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +++ linux-5.19.0/drivers/gpu/drm/arm/display/komeda/komeda_crtc.c @@ -235,7 +235,7 @@ crtc->state->event = NULL; drm_crtc_send_vblank_event(crtc, event); } else { - DRM_WARN("CRTC[%d]: FLIP happen but no pending commit.\n", + DRM_WARN("CRTC[%d]: FLIP happened but no pending commit.\n", drm_crtc_index(&kcrtc->base)); } spin_unlock_irqrestore(&crtc->dev->event_lock, flags); @@ -286,7 +286,7 @@ komeda_crtc_do_flush(crtc, old); } -static void +void komeda_crtc_flush_and_wait_for_flip_done(struct komeda_crtc *kcrtc, struct completion *input_flip_done) { --- linux-5.19.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_kms.c +++ linux-5.19.0/drivers/gpu/drm/arm/display/komeda/komeda_kms.c @@ -69,6 +69,25 @@ .minor = 1, }; +static void komeda_kms_atomic_commit_hw_done(struct drm_atomic_state *state) +{ + struct drm_device *dev = state->dev; + struct komeda_kms_dev *kms = to_kdev(dev); + int i; + + for (i = 0; i < kms->n_crtcs; i++) { + struct komeda_crtc *kcrtc = &kms->crtcs[i]; + + if (kcrtc->base.state->active) { + struct completion *flip_done = NULL; + if (kcrtc->base.state->event) + flip_done = kcrtc->base.state->event->base.completion; + komeda_crtc_flush_and_wait_for_flip_done(kcrtc, flip_done); + } + } + drm_atomic_helper_commit_hw_done(state); +} + static void komeda_kms_commit_tail(struct drm_atomic_state *old_state) { struct drm_device *dev = old_state->dev; @@ -81,7 +100,7 @@ drm_atomic_helper_commit_modeset_enables(dev, old_state); - drm_atomic_helper_commit_hw_done(old_state); + komeda_kms_atomic_commit_hw_done(old_state); drm_atomic_helper_wait_for_flip_done(dev, old_state); --- linux-5.19.0.orig/drivers/gpu/drm/arm/display/komeda/komeda_kms.h +++ linux-5.19.0/drivers/gpu/drm/arm/display/komeda/komeda_kms.h @@ -182,6 +182,8 @@ void komeda_crtc_handle_event(struct komeda_crtc *kcrtc, struct komeda_events *evts); +void komeda_crtc_flush_and_wait_for_flip_done(struct komeda_crtc *kcrtc, + struct completion *input_flip_done); struct komeda_kms_dev *komeda_kms_attach(struct komeda_dev *mdev); void komeda_kms_detach(struct komeda_kms_dev *kms); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/Kconfig +++ linux-5.19.0/drivers/gpu/drm/bridge/Kconfig @@ -78,6 +78,7 @@ config DRM_FSL_LDB tristate "Freescale i.MX8MP LDB bridge" depends on OF + depends on ARCH_MXC || COMPILE_TEST select DRM_KMS_HELPER select DRM_PANEL_BRIDGE help @@ -93,6 +94,8 @@ select DRM_KMS_HELPER select DRM_DP_HELPER select EXTCON + select CRYPTO + select CRYPTO_HASH help ITE IT6505 DisplayPort bridge chip driver. --- linux-5.19.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511.h +++ linux-5.19.0/drivers/gpu/drm/bridge/adv7511/adv7511.h @@ -226,18 +226,6 @@ #define ADV7511_REG_CEC_CLK_DIV 0x4e #define ADV7511_REG_CEC_SOFT_RESET 0x50 -static const u8 ADV7511_REG_CEC_RX_FRAME_HDR[] = { - ADV7511_REG_CEC_RX1_FRAME_HDR, - ADV7511_REG_CEC_RX2_FRAME_HDR, - ADV7511_REG_CEC_RX3_FRAME_HDR, -}; - -static const u8 ADV7511_REG_CEC_RX_FRAME_LEN[] = { - ADV7511_REG_CEC_RX1_FRAME_LEN, - ADV7511_REG_CEC_RX2_FRAME_LEN, - ADV7511_REG_CEC_RX3_FRAME_LEN, -}; - #define ADV7533_REG_CEC_OFFSET 0x70 enum adv7511_input_clock { @@ -406,10 +394,7 @@ #else static inline int adv7511_cec_init(struct device *dev, struct adv7511 *adv7511) { - unsigned int offset = adv7511->type == ADV7533 ? - ADV7533_REG_CEC_OFFSET : 0; - - regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, + regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, ADV7511_CEC_CTRL_POWER_DOWN); return 0; } @@ -417,7 +402,8 @@ void adv7533_dsi_power_on(struct adv7511 *adv); void adv7533_dsi_power_off(struct adv7511 *adv); -void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode); +enum drm_mode_status adv7533_mode_valid(struct adv7511 *adv, + const struct drm_display_mode *mode); int adv7533_patch_registers(struct adv7511 *adv); int adv7533_patch_cec_registers(struct adv7511 *adv); int adv7533_attach_dsi(struct adv7511 *adv); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c +++ linux-5.19.0/drivers/gpu/drm/bridge/adv7511/adv7511_cec.c @@ -15,6 +15,18 @@ #include "adv7511.h" +static const u8 ADV7511_REG_CEC_RX_FRAME_HDR[] = { + ADV7511_REG_CEC_RX1_FRAME_HDR, + ADV7511_REG_CEC_RX2_FRAME_HDR, + ADV7511_REG_CEC_RX3_FRAME_HDR, +}; + +static const u8 ADV7511_REG_CEC_RX_FRAME_LEN[] = { + ADV7511_REG_CEC_RX1_FRAME_LEN, + ADV7511_REG_CEC_RX2_FRAME_LEN, + ADV7511_REG_CEC_RX3_FRAME_LEN, +}; + #define ADV7511_INT1_CEC_MASK \ (ADV7511_INT1_CEC_TX_READY | ADV7511_INT1_CEC_TX_ARBIT_LOST | \ ADV7511_INT1_CEC_TX_RETRY_TIMEOUT | ADV7511_INT1_CEC_RX_READY1 | \ @@ -347,7 +359,7 @@ goto err_cec_alloc; } - regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, 0); + regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, 0); /* cec soft reset */ regmap_write(adv7511->regmap_cec, ADV7511_REG_CEC_SOFT_RESET + offset, 0x01); @@ -374,7 +386,7 @@ dev_info(dev, "Initializing CEC failed with error %d, disabling CEC\n", ret); err_cec_parse_dt: - regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL + offset, + regmap_write(adv7511->regmap, ADV7511_REG_CEC_CTRL, ADV7511_CEC_CTRL_POWER_DOWN); return ret == -EPROBE_DEFER ? ret : 0; } --- linux-5.19.0.orig/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c +++ linux-5.19.0/drivers/gpu/drm/bridge/adv7511/adv7511_drv.c @@ -697,7 +697,7 @@ } static enum drm_mode_status adv7511_mode_valid(struct adv7511 *adv7511, - struct drm_display_mode *mode) + const struct drm_display_mode *mode) { if (mode->clock > 165000) return MODE_CLOCK_HIGH; @@ -791,9 +791,6 @@ regmap_update_bits(adv7511->regmap, 0x17, 0x60, (vsync_polarity << 6) | (hsync_polarity << 5)); - if (adv7511->type == ADV7533 || adv7511->type == ADV7535) - adv7533_mode_set(adv7511, adj_mode); - drm_mode_copy(&adv7511->curr_mode, adj_mode); /* @@ -913,6 +910,18 @@ adv7511_mode_set(adv, mode, adj_mode); } +static enum drm_mode_status adv7511_bridge_mode_valid(struct drm_bridge *bridge, + const struct drm_display_info *info, + const struct drm_display_mode *mode) +{ + struct adv7511 *adv = bridge_to_adv7511(bridge); + + if (adv->type == ADV7533 || adv->type == ADV7535) + return adv7533_mode_valid(adv, mode); + else + return adv7511_mode_valid(adv, mode); +} + static int adv7511_bridge_attach(struct drm_bridge *bridge, enum drm_bridge_attach_flags flags) { @@ -960,6 +969,7 @@ .enable = adv7511_bridge_enable, .disable = adv7511_bridge_disable, .mode_set = adv7511_bridge_mode_set, + .mode_valid = adv7511_bridge_mode_valid, .attach = adv7511_bridge_attach, .detect = adv7511_bridge_detect, .get_edid = adv7511_bridge_get_edid, @@ -1065,6 +1075,10 @@ ADV7511_CEC_I2C_ADDR_DEFAULT); if (IS_ERR(adv->i2c_cec)) return PTR_ERR(adv->i2c_cec); + + regmap_write(adv->regmap, ADV7511_REG_CEC_I2C_ADDR, + adv->i2c_cec->addr << 1); + i2c_set_clientdata(adv->i2c_cec, adv); adv->regmap_cec = devm_regmap_init_i2c(adv->i2c_cec, @@ -1271,9 +1285,6 @@ if (ret) goto err_i2c_unregister_packet; - regmap_write(adv7511->regmap, ADV7511_REG_CEC_I2C_ADDR, - adv7511->i2c_cec->addr << 1); - INIT_WORK(&adv7511->hpd_work, adv7511_hpd_work); if (i2c->irq) { @@ -1339,9 +1350,6 @@ { struct adv7511 *adv7511 = i2c_get_clientdata(i2c); - i2c_unregister_device(adv7511->i2c_cec); - clk_disable_unprepare(adv7511->cec_clk); - adv7511_uninit_regulators(adv7511); drm_bridge_remove(&adv7511->bridge); @@ -1349,6 +1357,8 @@ adv7511_audio_exit(adv7511); cec_unregister_adapter(adv7511->cec_adap); + i2c_unregister_device(adv7511->i2c_cec); + clk_disable_unprepare(adv7511->cec_clk); i2c_unregister_device(adv7511->i2c_packet); i2c_unregister_device(adv7511->i2c_edid); @@ -1392,10 +1402,21 @@ static int __init adv7511_init(void) { - if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) - mipi_dsi_driver_register(&adv7533_dsi_driver); + int ret; + + if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) { + ret = mipi_dsi_driver_register(&adv7533_dsi_driver); + if (ret) + return ret; + } + + ret = i2c_add_driver(&adv7511_driver); + if (ret) { + if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) + mipi_dsi_driver_unregister(&adv7533_dsi_driver); + } - return i2c_add_driver(&adv7511_driver); + return ret; } module_init(adv7511_init); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/adv7511/adv7533.c +++ linux-5.19.0/drivers/gpu/drm/bridge/adv7511/adv7533.c @@ -100,26 +100,27 @@ regmap_write(adv->regmap_cec, 0x27, 0x0b); } -void adv7533_mode_set(struct adv7511 *adv, const struct drm_display_mode *mode) +enum drm_mode_status adv7533_mode_valid(struct adv7511 *adv, + const struct drm_display_mode *mode) { + int lanes; struct mipi_dsi_device *dsi = adv->dsi; - int lanes, ret; - - if (adv->num_dsi_lanes != 4) - return; if (mode->clock > 80000) lanes = 4; else lanes = 3; - if (lanes != dsi->lanes) { - mipi_dsi_detach(dsi); - dsi->lanes = lanes; - ret = mipi_dsi_attach(dsi); - if (ret) - dev_err(&dsi->dev, "failed to change host lanes\n"); - } + /* + * TODO: add support for dynamic switching of lanes + * by using the bridge pre_enable() op . Till then filter + * out the modes which shall need different number of lanes + * than what was configured in the device tree. + */ + if (lanes != dsi->lanes) + return MODE_BAD; + + return MODE_OK; } int adv7533_patch_registers(struct adv7511 *adv) --- linux-5.19.0.orig/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c +++ linux-5.19.0/drivers/gpu/drm/bridge/analogix/analogix_dp_core.c @@ -1863,12 +1863,6 @@ int analogix_dp_suspend(struct analogix_dp_device *dp) { clk_disable_unprepare(dp->clock); - - if (dp->plat_data->panel) { - if (drm_panel_unprepare(dp->plat_data->panel)) - DRM_ERROR("failed to turnoff the panel\n"); - } - return 0; } EXPORT_SYMBOL_GPL(analogix_dp_suspend); @@ -1883,13 +1877,6 @@ return ret; } - if (dp->plat_data->panel) { - if (drm_panel_prepare(dp->plat_data->panel)) { - DRM_ERROR("failed to setup the panel\n"); - return -EBUSY; - } - } - return 0; } EXPORT_SYMBOL_GPL(analogix_dp_resume); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/analogix/anx7625.c +++ linux-5.19.0/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1624,6 +1624,7 @@ anx7625_get_swing_setting(dev, pdata); pdata->is_dpi = 1; /* default dpi mode */ + of_node_put(pdata->mipi_host_node); pdata->mipi_host_node = of_graph_get_remote_node(np, 0, 0); if (!pdata->mipi_host_node) { DRM_DEV_ERROR(dev, "fail to get internal panel.\n"); @@ -1657,8 +1658,10 @@ pdata->panel_bridge = devm_drm_of_get_bridge(dev, np, 1, 0); if (IS_ERR(pdata->panel_bridge)) { - if (PTR_ERR(pdata->panel_bridge) == -ENODEV) + if (PTR_ERR(pdata->panel_bridge) == -ENODEV) { + pdata->panel_bridge = NULL; return 0; + } return PTR_ERR(pdata->panel_bridge); } @@ -2654,14 +2657,6 @@ platform->aux.dev = dev; platform->aux.transfer = anx7625_aux_transfer; drm_dp_aux_init(&platform->aux); - devm_of_dp_aux_populate_ep_devices(&platform->aux); - - ret = anx7625_parse_dt(dev, pdata); - if (ret) { - if (ret != -EPROBE_DEFER) - DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret); - goto free_wq; - } if (anx7625_register_i2c_dummy_clients(platform, client) != 0) { ret = -ENOMEM; @@ -2677,6 +2672,15 @@ if (ret) goto free_wq; + devm_of_dp_aux_populate_ep_devices(&platform->aux); + + ret = anx7625_parse_dt(dev, pdata); + if (ret) { + if (ret != -EPROBE_DEFER) + DRM_DEV_ERROR(dev, "fail to parse DT : %d\n", ret); + goto free_wq; + } + if (!platform->pdata.low_power_mode) { anx7625_disable_pd_protocol(platform); pm_runtime_get_sync(dev); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/ite-it6505.c +++ linux-5.19.0/drivers/gpu/drm/bridge/ite-it6505.c @@ -2854,10 +2854,7 @@ } /* Register aux channel */ - it6505->aux.name = "DP-AUX"; - it6505->aux.dev = dev; it6505->aux.drm_dev = bridge->dev; - it6505->aux.transfer = it6505_aux_transfer; ret = drm_dp_aux_register(&it6505->aux); @@ -2954,6 +2951,9 @@ it6505_int_mask_enable(it6505); it6505_video_reset(it6505); + + it6505_drm_dp_link_set_power(&it6505->aux, &it6505->link, + DP_SET_POWER_D0); } static void it6505_bridge_atomic_disable(struct drm_bridge *bridge, @@ -2965,9 +2965,9 @@ DRM_DEV_DEBUG_DRIVER(dev, "start"); if (it6505->powered) { - it6505_video_disable(it6505); it6505_drm_dp_link_set_power(&it6505->aux, &it6505->link, DP_SET_POWER_D3); + it6505_video_disable(it6505); } } @@ -3307,6 +3307,11 @@ DRM_DEV_DEBUG_DRIVER(dev, "it6505 device name: %s", dev_name(dev)); debugfs_init(it6505); + it6505->aux.name = "DP-AUX"; + it6505->aux.dev = dev; + it6505->aux.transfer = it6505_aux_transfer; + drm_dp_aux_init(&it6505->aux); + it6505->bridge.funcs = &it6505_bridge_funcs; it6505->bridge.type = DRM_MODE_CONNECTOR_DisplayPort; it6505->bridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID | --- linux-5.19.0.orig/drivers/gpu/drm/bridge/lontium-lt8912b.c +++ linux-5.19.0/drivers/gpu/drm/bridge/lontium-lt8912b.c @@ -186,7 +186,7 @@ {0x03, 0xff}, }; - return regmap_multi_reg_write(lt->regmap[I2C_CEC_DSI], seq, ARRAY_SIZE(seq)); + return regmap_multi_reg_write(lt->regmap[I2C_MAIN], seq, ARRAY_SIZE(seq)); }; static inline struct lt8912 *bridge_to_lt8912(struct drm_bridge *b) @@ -266,7 +266,7 @@ u32 hactive, h_total, hpw, hfp, hbp; u32 vactive, v_total, vpw, vfp, vbp; u8 settle = 0x08; - int ret; + int ret, hsync_activehigh, vsync_activehigh; if (!lt) return -EINVAL; @@ -276,12 +276,14 @@ hpw = lt->mode.hsync_len; hbp = lt->mode.hback_porch; h_total = hactive + hfp + hpw + hbp; + hsync_activehigh = lt->mode.flags & DISPLAY_FLAGS_HSYNC_HIGH; vactive = lt->mode.vactive; vfp = lt->mode.vfront_porch; vpw = lt->mode.vsync_len; vbp = lt->mode.vback_porch; v_total = vactive + vfp + vpw + vbp; + vsync_activehigh = lt->mode.flags & DISPLAY_FLAGS_VSYNC_HIGH; if (vactive <= 600) settle = 0x04; @@ -315,6 +317,13 @@ ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3e, hfp & 0xff); ret |= regmap_write(lt->regmap[I2C_CEC_DSI], 0x3f, hfp >> 8); + ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xab, BIT(0), + vsync_activehigh ? BIT(0) : 0); + ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xab, BIT(1), + hsync_activehigh ? BIT(1) : 0); + ret |= regmap_update_bits(lt->regmap[I2C_MAIN], 0xb2, BIT(0), + lt->connector.display_info.is_hdmi ? BIT(0) : 0); + return ret; } --- linux-5.19.0.orig/drivers/gpu/drm/bridge/lontium-lt9611.c +++ linux-5.19.0/drivers/gpu/drm/bridge/lontium-lt9611.c @@ -586,7 +586,7 @@ int connected = 0; regmap_read(lt9611->regmap, 0x825e, ®_val); - connected = (reg_val & BIT(0)); + connected = (reg_val & (BIT(2) | BIT(0))); lt9611->status = connected ? connector_status_connected : connector_status_disconnected; @@ -807,13 +807,14 @@ drm_connector_helper_add(<9611->connector, <9611_bridge_connector_helper_funcs); - drm_connector_attach_encoder(<9611->connector, bridge->encoder); if (!bridge->encoder) { DRM_ERROR("Parent encoder object not found"); return -ENODEV; } + drm_connector_attach_encoder(<9611->connector, bridge->encoder); + return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/bridge/lontium-lt9611uxc.c +++ linux-5.19.0/drivers/gpu/drm/bridge/lontium-lt9611uxc.c @@ -982,7 +982,7 @@ struct lt9611uxc *lt9611uxc = i2c_get_clientdata(client); disable_irq(client->irq); - flush_scheduled_work(); + cancel_work_sync(<9611uxc->work); lt9611uxc_audio_exit(lt9611uxc); drm_bridge_remove(<9611uxc->bridge); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/lvds-codec.c +++ linux-5.19.0/drivers/gpu/drm/bridge/lvds-codec.c @@ -180,7 +180,7 @@ of_node_put(bus_node); if (ret == -ENODEV) { dev_warn(dev, "missing 'data-mapping' DT property\n"); - } else if (ret) { + } else if (ret < 0) { dev_err(dev, "invalid 'data-mapping' DT property\n"); return ret; } else { --- linux-5.19.0.orig/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c +++ linux-5.19.0/drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c @@ -296,7 +296,9 @@ * This check is to avoid both the drivers * removing the bridge in their remove() function */ - if (!ge_b850v3_lvds_ptr) + if (!ge_b850v3_lvds_ptr || + !ge_b850v3_lvds_ptr->stdp2690_i2c || + !ge_b850v3_lvds_ptr->stdp4028_i2c) goto out; drm_bridge_remove(&ge_b850v3_lvds_ptr->bridge); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/parade-ps8640.c +++ linux-5.19.0/drivers/gpu/drm/bridge/parade-ps8640.c @@ -596,8 +596,8 @@ if (!ps_bridge) return -ENOMEM; - ps_bridge->supplies[0].supply = "vdd33"; - ps_bridge->supplies[1].supply = "vdd12"; + ps_bridge->supplies[0].supply = "vdd12"; + ps_bridge->supplies[1].supply = "vdd33"; ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(ps_bridge->supplies), ps_bridge->supplies); if (ret) --- linux-5.19.0.orig/drivers/gpu/drm/bridge/sil-sii8620.c +++ linux-5.19.0/drivers/gpu/drm/bridge/sil-sii8620.c @@ -605,7 +605,7 @@ u8 *buf = &ctx->burst.tx_buf[ctx->burst.tx_count]; int size = len + 2; - if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) { + if (ctx->burst.tx_count + size >= ARRAY_SIZE(ctx->burst.tx_buf)) { dev_err(ctx->dev, "TX-BLK buffer exhausted\n"); ctx->error = -EINVAL; return NULL; @@ -622,7 +622,7 @@ u8 *buf = &ctx->burst.rx_buf[ctx->burst.rx_count]; int size = len + 1; - if (ctx->burst.tx_count + size > ARRAY_SIZE(ctx->burst.tx_buf)) { + if (ctx->burst.rx_count + size >= ARRAY_SIZE(ctx->burst.rx_buf)) { dev_err(ctx->dev, "RX-BLK buffer exhausted\n"); ctx->error = -EINVAL; return NULL; --- linux-5.19.0.orig/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c +++ linux-5.19.0/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c @@ -2719,6 +2719,9 @@ * if supported. In any case the default RGB888 format is added */ + /* Default 8bit RGB fallback */ + output_fmts[i++] = MEDIA_BUS_FMT_RGB888_1X24; + if (max_bpc >= 16 && info->bpc == 16) { if (info->color_formats & DRM_COLOR_FORMAT_YCBCR444) output_fmts[i++] = MEDIA_BUS_FMT_YUV16_1X48; @@ -2752,9 +2755,6 @@ if (info->color_formats & DRM_COLOR_FORMAT_YCBCR444) output_fmts[i++] = MEDIA_BUS_FMT_YUV8_1X24; - /* Default 8bit RGB fallback */ - output_fmts[i++] = MEDIA_BUS_FMT_RGB888_1X24; - *num_output_fmts = i; return output_fmts; @@ -3095,6 +3095,7 @@ { struct dw_hdmi *hdmi = dev_id; u8 intr_stat, phy_int_pol, phy_pol_mask, phy_stat; + enum drm_connector_status status = connector_status_unknown; intr_stat = hdmi_readb(hdmi, HDMI_IH_PHY_STAT0); phy_int_pol = hdmi_readb(hdmi, HDMI_PHY_POL0); @@ -3133,13 +3134,15 @@ cec_notifier_phys_addr_invalidate(hdmi->cec_notifier); mutex_unlock(&hdmi->cec_notifier_mutex); } - } - if (intr_stat & HDMI_IH_PHY_STAT0_HPD) { - enum drm_connector_status status = phy_int_pol & HDMI_PHY_HPD - ? connector_status_connected - : connector_status_disconnected; + if (phy_stat & HDMI_PHY_HPD) + status = connector_status_connected; + + if (!(phy_stat & (HDMI_PHY_HPD | HDMI_PHY_RX_SENSE))) + status = connector_status_disconnected; + } + if (status != connector_status_unknown) { dev_dbg(hdmi->dev, "EVENT=%s\n", status == connector_status_connected ? "plugin" : "plugout"); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/tc358767.c +++ linux-5.19.0/drivers/gpu/drm/bridge/tc358767.c @@ -1871,7 +1871,7 @@ of_node_put(host_node); of_node_put(endpoint); - if (dsi_lanes < 0 || dsi_lanes > 4) + if (dsi_lanes <= 0 || dsi_lanes > 4) return -EINVAL; if (!host) @@ -1986,9 +1986,10 @@ for_each_endpoint_of_node(dev->of_node, node) { of_graph_parse_endpoint(node, &endpoint); - if (endpoint.port > 2) + if (endpoint.port > 2) { + of_node_put(node); return -EINVAL; - + } mode |= BIT(endpoint.port); } @@ -2004,6 +2005,13 @@ return -EINVAL; } +static void tc_clk_disable(void *data) +{ + struct clk *refclk = data; + + clk_disable_unprepare(refclk); +} + static int tc_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct device *dev = &client->dev; @@ -2020,6 +2028,24 @@ if (ret) return ret; + tc->refclk = devm_clk_get(dev, "ref"); + if (IS_ERR(tc->refclk)) { + ret = PTR_ERR(tc->refclk); + dev_err(dev, "Failed to get refclk: %d\n", ret); + return ret; + } + + ret = clk_prepare_enable(tc->refclk); + if (ret) + return ret; + + ret = devm_add_action_or_reset(dev, tc_clk_disable, tc->refclk); + if (ret) + return ret; + + /* tRSTW = 100 cycles , at 13 MHz that is ~7.69 us */ + usleep_range(10, 15); + /* Shut down GPIO is optional */ tc->sd_gpio = devm_gpiod_get_optional(dev, "shutdown", GPIOD_OUT_HIGH); if (IS_ERR(tc->sd_gpio)) @@ -2040,13 +2066,6 @@ usleep_range(5000, 10000); } - tc->refclk = devm_clk_get(dev, "ref"); - if (IS_ERR(tc->refclk)) { - ret = PTR_ERR(tc->refclk); - dev_err(dev, "Failed to get refclk: %d\n", ret); - return ret; - } - tc->regmap = devm_regmap_init_i2c(client, &tc_regmap_config); if (IS_ERR(tc->regmap)) { ret = PTR_ERR(tc->regmap); --- linux-5.19.0.orig/drivers/gpu/drm/bridge/ti-sn65dsi86.c +++ linux-5.19.0/drivers/gpu/drm/bridge/ti-sn65dsi86.c @@ -905,9 +905,9 @@ &pdata->bridge.encoder->crtc->state->adjusted_mode; u8 hsync_polarity = 0, vsync_polarity = 0; - if (mode->flags & DRM_MODE_FLAG_PHSYNC) + if (mode->flags & DRM_MODE_FLAG_NHSYNC) hsync_polarity = CHA_HSYNC_POLARITY; - if (mode->flags & DRM_MODE_FLAG_PVSYNC) + if (mode->flags & DRM_MODE_FLAG_NVSYNC) vsync_polarity = CHA_VSYNC_POLARITY; ti_sn65dsi86_write_u16(pdata, SN_CHA_ACTIVE_LINE_LENGTH_LOW_REG, --- linux-5.19.0.orig/drivers/gpu/drm/display/Kconfig +++ linux-5.19.0/drivers/gpu/drm/display/Kconfig @@ -3,7 +3,7 @@ config DRM_DP_AUX_BUS tristate depends on DRM - depends on OF + depends on OF || COMPILE_TEST config DRM_DISPLAY_HELPER tristate --- linux-5.19.0.orig/drivers/gpu/drm/display/drm_dp_aux_bus.c +++ linux-5.19.0/drivers/gpu/drm/display/drm_dp_aux_bus.c @@ -66,7 +66,6 @@ * @dev: The device to remove. * * Calls through to the endpoint driver remove. - * */ static void dp_aux_ep_remove(struct device *dev) { @@ -120,8 +119,6 @@ /** * dp_aux_ep_dev_release() - Free memory for the dp_aux_ep device * @dev: The device to free. - * - * Return: 0 if no error or negative error code. */ static void dp_aux_ep_dev_release(struct device *dev) { @@ -256,6 +253,7 @@ return 0; } +EXPORT_SYMBOL_GPL(of_dp_aux_populate_ep_devices); static void of_dp_aux_depopulate_ep_devices_void(void *data) { --- linux-5.19.0.orig/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c +++ linux-5.19.0/drivers/gpu/drm/display/drm_dp_dual_mode_helper.c @@ -63,23 +63,45 @@ ssize_t drm_dp_dual_mode_read(struct i2c_adapter *adapter, u8 offset, void *buffer, size_t size) { + u8 zero = 0; + char *tmpbuf = NULL; + /* + * As sub-addressing is not supported by all adaptors, + * always explicitly read from the start and discard + * any bytes that come before the requested offset. + * This way, no matter whether the adaptor supports it + * or not, we'll end up reading the proper data. + */ struct i2c_msg msgs[] = { { .addr = DP_DUAL_MODE_SLAVE_ADDRESS, .flags = 0, .len = 1, - .buf = &offset, + .buf = &zero, }, { .addr = DP_DUAL_MODE_SLAVE_ADDRESS, .flags = I2C_M_RD, - .len = size, + .len = size + offset, .buf = buffer, }, }; int ret; + if (offset) { + tmpbuf = kmalloc(size + offset, GFP_KERNEL); + if (!tmpbuf) + return -ENOMEM; + + msgs[1].buf = tmpbuf; + } + ret = i2c_transfer(adapter, msgs, ARRAY_SIZE(msgs)); + if (tmpbuf) + memcpy(buffer, tmpbuf + offset, size); + + kfree(tmpbuf); + if (ret < 0) return ret; if (ret != ARRAY_SIZE(msgs)) @@ -208,18 +230,6 @@ if (ret) return DRM_DP_DUAL_MODE_UNKNOWN; - /* - * Sigh. Some (maybe all?) type 1 adaptors are broken and ack - * the offset but ignore it, and instead they just always return - * data from the start of the HDMI ID buffer. So for a broken - * type 1 HDMI adaptor a single byte read will always give us - * 0x44, and for a type 1 DVI adaptor it should give 0x00 - * (assuming it implements any registers). Fortunately neither - * of those values will match the type 2 signature of the - * DP_DUAL_MODE_ADAPTOR_ID register so we can proceed with - * the type 2 adaptor detection safely even in the presence - * of broken type 1 adaptors. - */ ret = drm_dp_dual_mode_read(adapter, DP_DUAL_MODE_ADAPTOR_ID, &adaptor_id, sizeof(adaptor_id)); drm_dbg_kms(dev, "DP dual mode adaptor ID: %02x (err %zd)\n", adaptor_id, ret); @@ -233,11 +243,10 @@ return DRM_DP_DUAL_MODE_TYPE2_DVI; } /* - * If neither a proper type 1 ID nor a broken type 1 adaptor - * as described above, assume type 1, but let the user know - * that we may have misdetected the type. + * If not a proper type 1 ID, still assume type 1, but let + * the user know that we may have misdetected the type. */ - if (!is_type1_adaptor(adaptor_id) && adaptor_id != hdmi_id[0]) + if (!is_type1_adaptor(adaptor_id)) drm_err(dev, "Unexpected DP dual mode adaptor ID %02x\n", adaptor_id); } @@ -343,10 +352,8 @@ * @enable: enable (as opposed to disable) the TMDS output buffers * * Set the state of the TMDS output buffers in the adaptor. For - * type2 this is set via the DP_DUAL_MODE_TMDS_OEN register. As - * some type 1 adaptors have problems with registers (see comments - * in drm_dp_dual_mode_detect()) we avoid touching the register, - * making this function a no-op on type 1 adaptors. + * type2 this is set via the DP_DUAL_MODE_TMDS_OEN register. + * Type1 adaptors do not support any register writes. * * Returns: * 0 on success, negative error code on failure --- linux-5.19.0.orig/drivers/gpu/drm/display/drm_dp_helper.c +++ linux-5.19.0/drivers/gpu/drm/display/drm_dp_helper.c @@ -2636,17 +2636,8 @@ struct drm_dp_phy_test_params *data, u8 dp_rev) { int err, i; - u8 link_config[2]; u8 test_pattern; - link_config[0] = drm_dp_link_rate_to_bw_code(data->link_rate); - link_config[1] = data->num_lanes; - if (data->enhanced_frame_cap) - link_config[1] |= DP_LANE_COUNT_ENHANCED_FRAME_EN; - err = drm_dp_dpcd_write(aux, DP_LINK_BW_SET, link_config, 2); - if (err < 0) - return err; - test_pattern = data->phy_pattern; if (dp_rev < 0x12) { test_pattern = (test_pattern << 2) & --- linux-5.19.0.orig/drivers/gpu/drm/display/drm_dp_mst_topology.c +++ linux-5.19.0/drivers/gpu/drm/display/drm_dp_mst_topology.c @@ -3860,9 +3860,7 @@ if (!mgr->mst_primary) goto out_fail; - ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, mgr->dpcd, - DP_RECEIVER_CAP_SIZE); - if (ret != DP_RECEIVER_CAP_SIZE) { + if (drm_dp_read_dpcd_caps(mgr->aux, mgr->dpcd) < 0) { drm_dbg_kms(mgr->dev, "dpcd read failed - undocked during suspend?\n"); goto out_fail; } @@ -4911,22 +4909,21 @@ u8 buf[DP_PAYLOAD_TABLE_SIZE]; int ret; - ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE); - if (ret) { + if (drm_dp_read_dpcd_caps(mgr->aux, buf) < 0) { seq_printf(m, "dpcd read failed\n"); goto out; } seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf); ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2); - if (ret) { + if (ret != 2) { seq_printf(m, "faux/mst read failed\n"); goto out; } seq_printf(m, "faux/mst: %*ph\n", 2, buf); ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1); - if (ret) { + if (ret != 1) { seq_printf(m, "mst ctrl read failed\n"); goto out; } @@ -4934,7 +4931,7 @@ /* dump the standard OUI branch header */ ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE); - if (ret) { + if (ret != DP_BRANCH_OUI_HEADER_SIZE) { seq_printf(m, "branch oui read failed\n"); goto out; } @@ -5305,7 +5302,7 @@ mst_state = drm_atomic_get_mst_topology_state(state, mgr); if (IS_ERR(mst_state)) - return -EINVAL; + return PTR_ERR(mst_state); list_for_each_entry(pos, &mst_state->vcpis, next) { --- linux-5.19.0.orig/drivers/gpu/drm/drm_aperture.c +++ linux-5.19.0/drivers/gpu/drm/drm_aperture.c @@ -7,6 +7,7 @@ #include #include /* for firmware helpers */ #include +#include #include #include @@ -292,7 +293,20 @@ #if IS_REACHABLE(CONFIG_FB) struct apertures_struct *a; int ret; +#endif + /* + * If a driver asked to unregister a platform device registered by + * sysfb, then can be assumed that this is a driver for a display + * that is set up by the system firmware and has a generic driver. + * + * Drivers for devices that don't have a generic driver will never + * ask for this, so let's assume that a real driver for the display + * was already probed and prevent sysfb to register devices later. + */ + sysfb_disable(); + +#if IS_REACHABLE(CONFIG_FB) a = alloc_apertures(1); if (!a) return -ENOMEM; --- linux-5.19.0.orig/drivers/gpu/drm/drm_bridge.c +++ linux-5.19.0/drivers/gpu/drm/drm_bridge.c @@ -823,8 +823,8 @@ struct drm_connector_state *conn_state, u32 out_bus_fmt) { + unsigned int i, num_in_bus_fmts = 0; struct drm_bridge_state *cur_state; - unsigned int num_in_bus_fmts, i; struct drm_bridge *prev_bridge; u32 *in_bus_fmts; int ret; @@ -945,7 +945,7 @@ struct drm_connector *conn = conn_state->connector; struct drm_encoder *encoder = bridge->encoder; struct drm_bridge_state *last_bridge_state; - unsigned int i, num_out_bus_fmts; + unsigned int i, num_out_bus_fmts = 0; struct drm_bridge *last_bridge; u32 *out_bus_fmts; int ret = 0; --- linux-5.19.0.orig/drivers/gpu/drm/drm_drv.c +++ linux-5.19.0/drivers/gpu/drm/drm_drv.c @@ -615,7 +615,7 @@ mutex_init(&dev->clientlist_mutex); mutex_init(&dev->master_mutex); - ret = drmm_add_action(dev, drm_dev_init_release, NULL); + ret = drmm_add_action_or_reset(dev, drm_dev_init_release, NULL); if (ret) return ret; --- linux-5.19.0.orig/drivers/gpu/drm/drm_edid.c +++ linux-5.19.0/drivers/gpu/drm/drm_edid.c @@ -4577,6 +4577,51 @@ return true; } +static void drm_calculate_luminance_range(struct drm_connector *connector) +{ + struct hdr_static_metadata *hdr_metadata = &connector->hdr_sink_metadata.hdmi_type1; + struct drm_luminance_range_info *luminance_range = + &connector->display_info.luminance_range; + static const u8 pre_computed_values[] = { + 50, 51, 52, 53, 55, 56, 57, 58, 59, 61, 62, 63, 65, 66, 68, 69, + 71, 72, 74, 75, 77, 79, 81, 82, 84, 86, 88, 90, 92, 94, 96, 98 + }; + u32 max_avg, min_cll, max, min, q, r; + + if (!(hdr_metadata->metadata_type & BIT(HDMI_STATIC_METADATA_TYPE1))) + return; + + max_avg = hdr_metadata->max_fall; + min_cll = hdr_metadata->min_cll; + + /* + * From the specification (CTA-861-G), for calculating the maximum + * luminance we need to use: + * Luminance = 50*2**(CV/32) + * Where CV is a one-byte value. + * For calculating this expression we may need float point precision; + * to avoid this complexity level, we take advantage that CV is divided + * by a constant. From the Euclids division algorithm, we know that CV + * can be written as: CV = 32*q + r. Next, we replace CV in the + * Luminance expression and get 50*(2**q)*(2**(r/32)), hence we just + * need to pre-compute the value of r/32. For pre-computing the values + * We just used the following Ruby line: + * (0...32).each {|cv| puts (50*2**(cv/32.0)).round} + * The results of the above expressions can be verified at + * pre_computed_values. + */ + q = max_avg >> 5; + r = max_avg % 32; + max = (1 << q) * pre_computed_values[r]; + + /* min luminance: maxLum * (CV/255)^2 / 100 */ + q = DIV_ROUND_CLOSEST(min_cll, 255); + min = max * DIV_ROUND_CLOSEST((q * q), 100); + + luminance_range->min_luminance = min; + luminance_range->max_luminance = max; +} + static uint8_t eotf_supported(const u8 *edid_ext) { return edid_ext[2] & @@ -4608,8 +4653,12 @@ connector->hdr_sink_metadata.hdmi_type1.max_cll = db[4]; if (len >= 5) connector->hdr_sink_metadata.hdmi_type1.max_fall = db[5]; - if (len >= 6) + if (len >= 6) { connector->hdr_sink_metadata.hdmi_type1.min_cll = db[6]; + + /* Calculate only when all values are available */ + drm_calculate_luminance_range(connector); + } } static void @@ -5508,6 +5557,7 @@ info->non_desktop = 0; memset(&info->monitor_range, 0, sizeof(info->monitor_range)); + memset(&info->luminance_range, 0, sizeof(info->luminance_range)); info->mso_stream_count = 0; info->mso_pixel_overlap = 0; @@ -5697,6 +5747,7 @@ u32 quirks; if (edid == NULL) { + drm_reset_display_info(connector); clear_eld(connector); return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/drm_fb_helper.c +++ linux-5.19.0/drivers/gpu/drm/drm_fb_helper.c @@ -680,7 +680,11 @@ schedule_work(&helper->damage_work); } -/* Convert memory region into area of scanlines and pixels per scanline */ +/* + * Convert memory region into area of scanlines and pixels per + * scanline. The parameters off and len must not reach beyond + * the end of the framebuffer. + */ static void drm_fb_helper_memory_range_to_clip(struct fb_info *info, off_t off, size_t len, struct drm_rect *clip) { @@ -715,22 +719,29 @@ */ void drm_fb_helper_deferred_io(struct fb_info *info, struct list_head *pagereflist) { - unsigned long start, end, min, max; + unsigned long start, end, min_off, max_off; struct fb_deferred_io_pageref *pageref; struct drm_rect damage_area; - min = ULONG_MAX; - max = 0; + min_off = ULONG_MAX; + max_off = 0; list_for_each_entry(pageref, pagereflist, list) { start = pageref->offset; end = start + PAGE_SIZE; - min = min(min, start); - max = max(max, end); + min_off = min(min_off, start); + max_off = max(max_off, end); } - if (min >= max) + if (min_off >= max_off) return; - drm_fb_helper_memory_range_to_clip(info, min, max - min, &damage_area); + /* + * As we can only track pages, we might reach beyond the end + * of the screen and account for non-existing scanlines. Hence, + * keep the covered memory area within the screen buffer. + */ + max_off = min(max_off, info->screen_size); + + drm_fb_helper_memory_range_to_clip(info, min_off, max_off - min_off, &damage_area); drm_fb_helper_damage(info, damage_area.x1, damage_area.y1, drm_rect_width(&damage_area), drm_rect_height(&damage_area)); --- linux-5.19.0.orig/drivers/gpu/drm/drm_fourcc.c +++ linux-5.19.0/drivers/gpu/drm/drm_fourcc.c @@ -263,12 +263,12 @@ .vsub = 2, .is_yuv = true }, { .format = DRM_FORMAT_Q410, .depth = 0, .num_planes = 3, .char_per_block = { 2, 2, 2 }, - .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 0, - .vsub = 0, .is_yuv = true }, + .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 1, + .vsub = 1, .is_yuv = true }, { .format = DRM_FORMAT_Q401, .depth = 0, .num_planes = 3, .char_per_block = { 2, 2, 2 }, - .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 0, - .vsub = 0, .is_yuv = true }, + .block_w = { 1, 1, 1 }, .block_h = { 1, 1, 1 }, .hsub = 1, + .vsub = 1, .is_yuv = true }, { .format = DRM_FORMAT_P030, .depth = 0, .num_planes = 2, .char_per_block = { 4, 8, 0 }, .block_w = { 3, 3, 0 }, .block_h = { 1, 1, 0 }, .hsub = 2, .vsub = 2, .is_yuv = true}, --- linux-5.19.0.orig/drivers/gpu/drm/drm_gem.c +++ linux-5.19.0/drivers/gpu/drm/drm_gem.c @@ -168,21 +168,6 @@ } EXPORT_SYMBOL(drm_gem_private_object_init); -static void -drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) -{ - /* - * Note: obj->dma_buf can't disappear as long as we still hold a - * handle reference in obj->handle_count. - */ - mutex_lock(&filp->prime.lock); - if (obj->dma_buf) { - drm_prime_remove_buf_handle_locked(&filp->prime, - obj->dma_buf); - } - mutex_unlock(&filp->prime.lock); -} - /** * drm_gem_object_handle_free - release resources bound to userspace handles * @obj: GEM object to clean up. @@ -253,7 +238,7 @@ if (obj->funcs->close) obj->funcs->close(obj, file_priv); - drm_gem_remove_prime_handles(obj, file_priv); + drm_prime_remove_buf_handle(&file_priv->prime, id); drm_vma_node_revoke(&obj->vma_node, file_priv); drm_gem_object_handle_put_unlocked(obj); @@ -1226,7 +1211,7 @@ ret = dma_resv_lock_slow_interruptible(obj->resv, acquire_ctx); if (ret) { - ww_acquire_done(acquire_ctx); + ww_acquire_fini(acquire_ctx); return ret; } } @@ -1251,7 +1236,7 @@ goto retry; } - ww_acquire_done(acquire_ctx); + ww_acquire_fini(acquire_ctx); return ret; } } --- linux-5.19.0.orig/drivers/gpu/drm/drm_gem_shmem_helper.c +++ linux-5.19.0/drivers/gpu/drm/drm_gem_shmem_helper.c @@ -302,6 +302,7 @@ ret = dma_buf_vmap(obj->import_attach->dmabuf, map); if (!ret) { if (WARN_ON(map->is_iomem)) { + dma_buf_vunmap(obj->import_attach->dmabuf, map); ret = -EIO; goto err_put_pages; } @@ -570,12 +571,20 @@ { struct drm_gem_object *obj = vma->vm_private_data; struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); - int ret; WARN_ON(shmem->base.import_attach); - ret = drm_gem_shmem_get_pages(shmem); - WARN_ON_ONCE(ret != 0); + mutex_lock(&shmem->pages_lock); + + /* + * We should have already pinned the pages when the buffer was first + * mmap'd, vm_open() just grabs an additional reference for the new + * mm the vma is getting copied into (ie. on fork()). + */ + if (!WARN_ON_ONCE(!shmem->pages_use_count)) + shmem->pages_use_count++; + + mutex_unlock(&shmem->pages_lock); drm_gem_vm_open(vma); } @@ -621,10 +630,8 @@ } ret = drm_gem_shmem_get_pages(shmem); - if (ret) { - drm_gem_vm_close(vma); + if (ret) return ret; - } vma->vm_flags |= VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); --- linux-5.19.0.orig/drivers/gpu/drm/drm_internal.h +++ linux-5.19.0/drivers/gpu/drm/drm_internal.h @@ -74,8 +74,8 @@ void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv); void drm_prime_destroy_file_private(struct drm_prime_file_private *prime_fpriv); -void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv, - struct dma_buf *dma_buf); +void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv, + uint32_t handle); /* drm_drv.c */ struct drm_minor *drm_minor_acquire(unsigned int minor_id); @@ -104,7 +104,8 @@ static inline void drm_vblank_destroy_worker(struct drm_vblank_crtc *vblank) { - kthread_destroy_worker(vblank->worker); + if (vblank->worker) + kthread_destroy_worker(vblank->worker); } int drm_vblank_worker_init(struct drm_vblank_crtc *vblank); --- linux-5.19.0.orig/drivers/gpu/drm/drm_ioctl.c +++ linux-5.19.0/drivers/gpu/drm/drm_ioctl.c @@ -472,7 +472,13 @@ */ static int drm_copy_field(char __user *buf, size_t *buf_len, const char *value) { - int len; + size_t len; + + /* don't attempt to copy a NULL pointer */ + if (WARN_ONCE(!value, "BUG: the value to copy was not set!")) { + *buf_len = 0; + return 0; + } /* don't overflow userbuf */ len = strlen(value); --- linux-5.19.0.orig/drivers/gpu/drm/drm_mipi_dbi.c +++ linux-5.19.0/drivers/gpu/drm/drm_mipi_dbi.c @@ -1199,6 +1199,13 @@ size_t chunk; int ret; + /* In __spi_validate, there's a validation that no partial transfers + * are accepted (xfer->len % w_size must be zero). + * Here we align max_chunk to multiple of 2 (16bits), + * to prevent transfers from being rejected. + */ + max_chunk = ALIGN_DOWN(max_chunk, 2); + spi_message_init_with_transfers(&m, &tr, 1); while (len) { --- linux-5.19.0.orig/drivers/gpu/drm/drm_mipi_dsi.c +++ linux-5.19.0/drivers/gpu/drm/drm_mipi_dsi.c @@ -346,6 +346,7 @@ { struct mipi_dsi_device *dsi = to_mipi_dsi_device(dev); + mipi_dsi_detach(dsi); mipi_dsi_device_unregister(dsi); return 0; --- linux-5.19.0.orig/drivers/gpu/drm/drm_panel_orientation_quirks.c +++ linux-5.19.0/drivers/gpu/drm/drm_panel_orientation_quirks.c @@ -103,6 +103,12 @@ .orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP, }; +static const struct drm_dmi_panel_orientation_data lcd1080x1920_leftside_up = { + .width = 1080, + .height = 1920, + .orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP, +}; + static const struct drm_dmi_panel_orientation_data lcd1200x1920_rightside_up = { .width = 1200, .height = 1920, @@ -128,6 +134,18 @@ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "One S1003"), }, .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* Acer Switch V 10 (SW5-017) */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"), + }, + .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* Anbernic Win600 */ + .matches = { + DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Anbernic"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "Win600"), + }, + .driver_data = (void *)&lcd720x1280_rightside_up, }, { /* Asus T100HA */ .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), @@ -152,6 +170,12 @@ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "AYA NEO 2021"), }, .driver_data = (void *)&lcd800x1280_rightside_up, + }, { /* AYA NEO AIR */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "AYANEO"), + DMI_MATCH(DMI_BOARD_NAME, "AIR"), + }, + .driver_data = (void *)&lcd1080x1920_leftside_up, }, { /* AYA NEO NEXT */ .matches = { DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "AYANEO"), @@ -301,6 +325,12 @@ DMI_MATCH(DMI_BIOS_VERSION, "BLADE_21"), }, .driver_data = (void *)&lcd1200x1920_rightside_up, + }, { /* Nanote UMPC-01 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "RWC CO.,LTD"), + DMI_MATCH(DMI_PRODUCT_NAME, "UMPC-01"), + }, + .driver_data = (void *)&lcd1200x1920_rightside_up, }, { /* OneGX1 Pro */ .matches = { DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SYSTEM_MANUFACTURER"), --- linux-5.19.0.orig/drivers/gpu/drm/drm_prime.c +++ linux-5.19.0/drivers/gpu/drm/drm_prime.c @@ -190,29 +190,33 @@ return -ENOENT; } -void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpriv, - struct dma_buf *dma_buf) +void drm_prime_remove_buf_handle(struct drm_prime_file_private *prime_fpriv, + uint32_t handle) { struct rb_node *rb; - rb = prime_fpriv->dmabufs.rb_node; + mutex_lock(&prime_fpriv->lock); + + rb = prime_fpriv->handles.rb_node; while (rb) { struct drm_prime_member *member; - member = rb_entry(rb, struct drm_prime_member, dmabuf_rb); - if (member->dma_buf == dma_buf) { + member = rb_entry(rb, struct drm_prime_member, handle_rb); + if (member->handle == handle) { rb_erase(&member->handle_rb, &prime_fpriv->handles); rb_erase(&member->dmabuf_rb, &prime_fpriv->dmabufs); - dma_buf_put(dma_buf); + dma_buf_put(member->dma_buf); kfree(member); - return; - } else if (member->dma_buf < dma_buf) { + break; + } else if (member->handle < handle) { rb = rb->rb_right; } else { rb = rb->rb_left; } } + + mutex_unlock(&prime_fpriv->lock); } void drm_prime_init_file_private(struct drm_prime_file_private *prime_fpriv) --- linux-5.19.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c +++ linux-5.19.0/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c @@ -462,6 +462,12 @@ return -EINVAL; } + if (args->stream_size > SZ_128K || args->nr_relocs > SZ_128K || + args->nr_bos > SZ_128K || args->nr_pmrs > 128) { + DRM_ERROR("submit arguments out of size limits\n"); + return -EINVAL; + } + /* * Copy the command submission and bo array to kernel space in * one go, and do this outside of any locks. --- linux-5.19.0.orig/drivers/gpu/drm/etnaviv/etnaviv_gpu.c +++ linux-5.19.0/drivers/gpu/drm/etnaviv/etnaviv_gpu.c @@ -416,6 +416,12 @@ if (gpu->identity.model == chipModel_GC700) gpu->identity.features &= ~chipFeatures_FAST_CLEAR; + /* These models/revisions don't have the 2D pipe bit */ + if ((gpu->identity.model == chipModel_GC500 && + gpu->identity.revision <= 2) || + gpu->identity.model == chipModel_GC300) + gpu->identity.features |= chipFeatures_PIPE_2D; + if ((gpu->identity.model == chipModel_GC500 && gpu->identity.revision < 2) || (gpu->identity.model == chipModel_GC300 && @@ -449,8 +455,9 @@ gpu_read(gpu, VIVS_HI_CHIP_MINOR_FEATURE_5); } - /* GC600 idle register reports zero bits where modules aren't present */ - if (gpu->identity.model == chipModel_GC600) + /* GC600/300 idle register reports zero bits where modules aren't present */ + if (gpu->identity.model == chipModel_GC600 || + gpu->identity.model == chipModel_GC300) gpu->idle_mask = VIVS_HI_IDLE_STATE_TX | VIVS_HI_IDLE_STATE_RA | VIVS_HI_IDLE_STATE_SE | --- linux-5.19.0.orig/drivers/gpu/drm/exynos/exynos7_drm_decon.c +++ linux-5.19.0/drivers/gpu/drm/exynos/exynos7_drm_decon.c @@ -800,31 +800,40 @@ if (ret < 0) { DRM_DEV_ERROR(dev, "Failed to prepare_enable the pclk [%d]\n", ret); - return ret; + goto err_pclk_enable; } ret = clk_prepare_enable(ctx->aclk); if (ret < 0) { DRM_DEV_ERROR(dev, "Failed to prepare_enable the aclk [%d]\n", ret); - return ret; + goto err_aclk_enable; } ret = clk_prepare_enable(ctx->eclk); if (ret < 0) { DRM_DEV_ERROR(dev, "Failed to prepare_enable the eclk [%d]\n", ret); - return ret; + goto err_eclk_enable; } ret = clk_prepare_enable(ctx->vclk); if (ret < 0) { DRM_DEV_ERROR(dev, "Failed to prepare_enable the vclk [%d]\n", ret); - return ret; + goto err_vclk_enable; } return 0; + +err_vclk_enable: + clk_disable_unprepare(ctx->eclk); +err_eclk_enable: + clk_disable_unprepare(ctx->aclk); +err_aclk_enable: + clk_disable_unprepare(ctx->pclk); +err_pclk_enable: + return ret; } #endif --- linux-5.19.0.orig/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c +++ linux-5.19.0/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_rgb.c @@ -60,8 +60,9 @@ return drm_panel_get_modes(fsl_connector->panel, connector); } -static int fsl_dcu_drm_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +fsl_dcu_drm_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { if (mode->hdisplay & 0xf) return MODE_ERROR; --- linux-5.19.0.orig/drivers/gpu/drm/gma500/cdv_device.c +++ linux-5.19.0/drivers/gpu/drm/gma500/cdv_device.c @@ -581,11 +581,9 @@ static int cdv_chip_setup(struct drm_device *dev) { struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct pci_dev *pdev = to_pci_dev(dev->dev); INIT_WORK(&dev_priv->hotplug_work, cdv_hotplug_work_func); - if (pci_enable_msi(pdev)) - dev_warn(dev->dev, "Enabling MSI failed!\n"); + dev_priv->use_msi = true; dev_priv->regmap = cdv_regmap; gma_get_core_freq(dev); psb_intel_opregion_init(dev); --- linux-5.19.0.orig/drivers/gpu/drm/gma500/gem.c +++ linux-5.19.0/drivers/gpu/drm/gma500/gem.c @@ -112,12 +112,12 @@ { struct psb_gem_object *pobj = to_psb_gem_object(obj); - drm_gem_object_release(obj); - /* Undo the mmap pin if we are destroying the object */ if (pobj->mmapping) psb_gem_unpin(pobj); + drm_gem_object_release(obj); + WARN_ON(pobj->in_gart && !pobj->stolen); release_resource(&pobj->resource); --- linux-5.19.0.orig/drivers/gpu/drm/gma500/gma_display.c +++ linux-5.19.0/drivers/gpu/drm/gma500/gma_display.c @@ -531,15 +531,18 @@ WARN_ON(drm_crtc_vblank_get(crtc) != 0); gma_crtc->page_flip_event = event; + spin_unlock_irqrestore(&dev->event_lock, flags); /* Call this locked if we want an event at vblank interrupt. */ ret = crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y, old_fb); if (ret) { - gma_crtc->page_flip_event = NULL; - drm_crtc_vblank_put(crtc); + spin_lock_irqsave(&dev->event_lock, flags); + if (gma_crtc->page_flip_event) { + gma_crtc->page_flip_event = NULL; + drm_crtc_vblank_put(crtc); + } + spin_unlock_irqrestore(&dev->event_lock, flags); } - - spin_unlock_irqrestore(&dev->event_lock, flags); } else { ret = crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y, old_fb); } --- linux-5.19.0.orig/drivers/gpu/drm/gma500/oaktrail_device.c +++ linux-5.19.0/drivers/gpu/drm/gma500/oaktrail_device.c @@ -501,12 +501,9 @@ static int oaktrail_chip_setup(struct drm_device *dev) { struct drm_psb_private *dev_priv = to_drm_psb_private(dev); - struct pci_dev *pdev = to_pci_dev(dev->dev); int ret; - if (pci_enable_msi(pdev)) - dev_warn(dev->dev, "Enabling MSI failed!\n"); - + dev_priv->use_msi = true; dev_priv->regmap = oaktrail_regmap; ret = mid_chip_setup(dev); --- linux-5.19.0.orig/drivers/gpu/drm/gma500/power.c +++ linux-5.19.0/drivers/gpu/drm/gma500/power.c @@ -139,8 +139,6 @@ dev_priv->regs.saveBSM = bsm; pci_read_config_dword(pdev, 0xFC, &vbt); dev_priv->regs.saveVBT = vbt; - pci_read_config_dword(pdev, PSB_PCIx_MSI_ADDR_LOC, &dev_priv->msi_addr); - pci_read_config_dword(pdev, PSB_PCIx_MSI_DATA_LOC, &dev_priv->msi_data); pci_disable_device(pdev); pci_set_power_state(pdev, PCI_D3hot); @@ -168,9 +166,6 @@ pci_restore_state(pdev); pci_write_config_dword(pdev, 0x5c, dev_priv->regs.saveBSM); pci_write_config_dword(pdev, 0xFC, dev_priv->regs.saveVBT); - /* restoring MSI address and data in PCIx space */ - pci_write_config_dword(pdev, PSB_PCIx_MSI_ADDR_LOC, dev_priv->msi_addr); - pci_write_config_dword(pdev, PSB_PCIx_MSI_DATA_LOC, dev_priv->msi_data); ret = pci_enable_device(pdev); if (ret != 0) @@ -223,8 +218,7 @@ mutex_lock(&power_mutex); gma_resume_pci(pdev); gma_resume_display(pdev); - gma_irq_preinstall(dev); - gma_irq_postinstall(dev); + gma_irq_install(dev); mutex_unlock(&power_mutex); return 0; } --- linux-5.19.0.orig/drivers/gpu/drm/gma500/psb_drv.c +++ linux-5.19.0/drivers/gpu/drm/gma500/psb_drv.c @@ -383,7 +383,7 @@ PSB_WVDC32(0xFFFFFFFF, PSB_INT_MASK_R); spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); - gma_irq_install(dev, pdev->irq); + gma_irq_install(dev); dev->max_vblank_count = 0xffffff; /* only 24 bits of frame count */ --- linux-5.19.0.orig/drivers/gpu/drm/gma500/psb_drv.h +++ linux-5.19.0/drivers/gpu/drm/gma500/psb_drv.h @@ -490,6 +490,7 @@ int rpm_enabled; /* MID specific */ + bool use_msi; bool has_gct; struct oaktrail_gct_data gct_data; @@ -499,10 +500,6 @@ /* Register state */ struct psb_save_area regs; - /* MSI reg save */ - uint32_t msi_addr; - uint32_t msi_data; - /* Hotplug handling */ struct work_struct hotplug_work; --- linux-5.19.0.orig/drivers/gpu/drm/gma500/psb_irq.c +++ linux-5.19.0/drivers/gpu/drm/gma500/psb_irq.c @@ -316,17 +316,24 @@ spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); } -int gma_irq_install(struct drm_device *dev, unsigned int irq) +int gma_irq_install(struct drm_device *dev) { + struct drm_psb_private *dev_priv = to_drm_psb_private(dev); + struct pci_dev *pdev = to_pci_dev(dev->dev); int ret; - if (irq == IRQ_NOTCONNECTED) + if (dev_priv->use_msi && pci_enable_msi(pdev)) { + dev_warn(dev->dev, "Enabling MSI failed!\n"); + dev_priv->use_msi = false; + } + + if (pdev->irq == IRQ_NOTCONNECTED) return -ENOTCONN; gma_irq_preinstall(dev); /* PCI devices require shared interrupts. */ - ret = request_irq(irq, gma_irq_handler, IRQF_SHARED, dev->driver->name, dev); + ret = request_irq(pdev->irq, gma_irq_handler, IRQF_SHARED, dev->driver->name, dev); if (ret) return ret; @@ -369,6 +376,8 @@ spin_unlock_irqrestore(&dev_priv->irqmask_lock, irqflags); free_irq(pdev->irq, dev); + if (dev_priv->use_msi) + pci_disable_msi(pdev); } int gma_crtc_enable_vblank(struct drm_crtc *crtc) --- linux-5.19.0.orig/drivers/gpu/drm/gma500/psb_irq.h +++ linux-5.19.0/drivers/gpu/drm/gma500/psb_irq.h @@ -17,7 +17,7 @@ void gma_irq_preinstall(struct drm_device *dev); void gma_irq_postinstall(struct drm_device *dev); -int gma_irq_install(struct drm_device *dev, unsigned int irq); +int gma_irq_install(struct drm_device *dev); void gma_irq_uninstall(struct drm_device *dev); int gma_crtc_enable_vblank(struct drm_crtc *crtc); --- linux-5.19.0.orig/drivers/gpu/drm/hisilicon/hibmc/Kconfig +++ linux-5.19.0/drivers/gpu/drm/hisilicon/hibmc/Kconfig @@ -2,6 +2,7 @@ config DRM_HISI_HIBMC tristate "DRM Support for Hisilicon Hibmc" depends on DRM && PCI && (ARM64 || COMPILE_TEST) + depends on MMU select DRM_KMS_HELPER select DRM_VRAM_HELPER select DRM_TTM --- linux-5.19.0.orig/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c +++ linux-5.19.0/drivers/gpu/drm/hyperv/hyperv_drm_modeset.c @@ -7,9 +7,11 @@ #include #include +#include #include #include #include +#include #include #include #include --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/icl_dsi.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/icl_dsi.c @@ -1629,6 +1629,8 @@ /* FIXME: initialize from VBT */ vdsc_cfg->rc_model_size = DSC_RC_MODEL_SIZE_CONST; + vdsc_cfg->pic_height = crtc_state->hw.adjusted_mode.crtc_vdisplay; + ret = intel_dsc_compute_params(crtc_state); if (ret) return ret; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_backlight.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_backlight.c @@ -15,6 +15,7 @@ #include "intel_dsi_dcs_backlight.h" #include "intel_panel.h" #include "intel_pci_config.h" +#include "intel_pps.h" /** * scale - scale values from one range to another @@ -970,26 +971,24 @@ if (!name) return -ENOMEM; - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); - - /* - * Using the same name independent of the drm device or connector - * prevents registration of multiple backlight devices in the - * driver. However, we need to use the default name for backward - * compatibility. Use unique names for subsequent backlight devices as a - * fallback when the default name already exists. - */ - if (IS_ERR(bd) && PTR_ERR(bd) == -EEXIST) { + bd = backlight_device_get_by_name(name); + if (bd) { + put_device(&bd->dev); + /* + * Using the same name independent of the drm device or connector + * prevents registration of multiple backlight devices in the + * driver. However, we need to use the default name for backward + * compatibility. Use unique names for subsequent backlight devices as a + * fallback when the default name already exists. + */ kfree(name); name = kasprintf(GFP_KERNEL, "card%d-%s-backlight", i915->drm.primary->index, connector->base.name); if (!name) return -ENOMEM; - - bd = backlight_device_register(name, connector->base.kdev, connector, - &intel_backlight_device_ops, &props); } + bd = backlight_device_register(name, connector->base.kdev, connector, + &intel_backlight_device_ops, &props); if (IS_ERR(bd)) { drm_err(&i915->drm, @@ -1771,9 +1770,13 @@ panel->backlight.pwm_funcs = &i9xx_pwm_funcs; } - if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP && - intel_dp_aux_init_backlight_funcs(connector) == 0) - return; + if (connector->base.connector_type == DRM_MODE_CONNECTOR_eDP) { + if (intel_dp_aux_init_backlight_funcs(connector) == 0) + return; + + if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) + connector->panel.backlight.power = intel_pps_backlight_power; + } /* We're using a standard PWM backlight interface */ panel->backlight.funcs = &pwm_bl_funcs; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_bios.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_bios.c @@ -123,7 +123,7 @@ * Offset from the start of BDB to the start of the * block data (just past the block header). */ -static u32 block_offset(const void *bdb, enum bdb_block_id section_id) +static u32 raw_block_offset(const void *bdb, enum bdb_block_id section_id) { const void *block; @@ -134,18 +134,6 @@ return block - bdb; } -/* size of the block excluding the header */ -static u32 block_size(const void *bdb, enum bdb_block_id section_id) -{ - const void *block; - - block = find_raw_section(bdb, section_id); - if (!block) - return 0; - - return get_blocksize(block); -} - struct bdb_block_entry { struct list_head node; enum bdb_block_id section_id; @@ -230,9 +218,14 @@ { int fp_timing_size, dvo_timing_size, panel_pnp_id_size, panel_name_size; int data_block_size, lfp_data_size; + const void *data_block; int i; - data_block_size = block_size(bdb, BDB_LVDS_LFP_DATA); + data_block = find_raw_section(bdb, BDB_LVDS_LFP_DATA); + if (!data_block) + return false; + + data_block_size = get_blocksize(data_block); if (data_block_size == 0) return false; @@ -260,21 +253,6 @@ if (16 * lfp_data_size > data_block_size) return false; - /* - * Except for vlv/chv machines all real VBTs seem to have 6 - * unaccounted bytes in the fp_timing table. And it doesn't - * appear to be a really intentional hole as the fp_timing - * 0xffff terminator is always within those 6 missing bytes. - */ - if (fp_timing_size + dvo_timing_size + panel_pnp_id_size != lfp_data_size && - fp_timing_size + 6 + dvo_timing_size + panel_pnp_id_size != lfp_data_size) - return false; - - if (ptrs->ptr[0].fp_timing.offset + fp_timing_size > ptrs->ptr[0].dvo_timing.offset || - ptrs->ptr[0].dvo_timing.offset + dvo_timing_size != ptrs->ptr[0].panel_pnp_id.offset || - ptrs->ptr[0].panel_pnp_id.offset + panel_pnp_id_size != lfp_data_size) - return false; - /* make sure the table entries have uniform size */ for (i = 1; i < 16; i++) { if (ptrs->ptr[i].fp_timing.table_size != fp_timing_size || @@ -288,6 +266,23 @@ return false; } + /* + * Except for vlv/chv machines all real VBTs seem to have 6 + * unaccounted bytes in the fp_timing table. And it doesn't + * appear to be a really intentional hole as the fp_timing + * 0xffff terminator is always within those 6 missing bytes. + */ + if (fp_timing_size + 6 + dvo_timing_size + panel_pnp_id_size == lfp_data_size) + fp_timing_size += 6; + + if (fp_timing_size + dvo_timing_size + panel_pnp_id_size != lfp_data_size) + return false; + + if (ptrs->ptr[0].fp_timing.offset + fp_timing_size != ptrs->ptr[0].dvo_timing.offset || + ptrs->ptr[0].dvo_timing.offset + dvo_timing_size != ptrs->ptr[0].panel_pnp_id.offset || + ptrs->ptr[0].panel_pnp_id.offset + panel_pnp_id_size != lfp_data_size) + return false; + /* make sure the tables fit inside the data block */ for (i = 0; i < 16; i++) { if (ptrs->ptr[i].fp_timing.offset + fp_timing_size > data_block_size || @@ -299,6 +294,15 @@ if (ptrs->panel_name.offset + 16 * panel_name_size > data_block_size) return false; + /* make sure fp_timing terminators are present at expected locations */ + for (i = 0; i < 16; i++) { + const u16 *t = data_block + ptrs->ptr[i].fp_timing.offset + + fp_timing_size - 2; + + if (*t != 0xffff) + return false; + } + return true; } @@ -309,7 +313,7 @@ u32 offset; int i; - offset = block_offset(bdb, BDB_LVDS_LFP_DATA); + offset = raw_block_offset(bdb, BDB_LVDS_LFP_DATA); for (i = 0; i < 16; i++) { if (ptrs->ptr[i].fp_timing.offset < offset || @@ -332,18 +336,6 @@ return validate_lfp_data_ptrs(bdb, ptrs); } -static const void *find_fp_timing_terminator(const u8 *data, int size) -{ - int i; - - for (i = 0; i < size - 1; i++) { - if (data[i] == 0xff && data[i+1] == 0xff) - return &data[i]; - } - - return NULL; -} - static int make_lfp_data_ptr(struct lvds_lfp_data_ptr_table *table, int table_size, int total_size) { @@ -367,11 +359,22 @@ static void *generate_lfp_data_ptrs(struct drm_i915_private *i915, const void *bdb) { - int i, size, table_size, block_size, offset; - const void *t0, *t1, *block; + int i, size, table_size, block_size, offset, fp_timing_size; struct bdb_lvds_lfp_data_ptrs *ptrs; + const void *block; void *ptrs_block; + /* + * The hardcoded fp_timing_size is only valid for + * modernish VBTs. All older VBTs definitely should + * include block 41 and thus we don't need to + * generate one. + */ + if (i915->vbt.version < 155) + return NULL; + + fp_timing_size = 38; + block = find_raw_section(bdb, BDB_LVDS_LFP_DATA); if (!block) return NULL; @@ -380,17 +383,8 @@ block_size = get_blocksize(block); - size = block_size; - t0 = find_fp_timing_terminator(block, size); - if (!t0) - return NULL; - - size -= t0 - block - 2; - t1 = find_fp_timing_terminator(t0 + 2, size); - if (!t1) - return NULL; - - size = t1 - t0; + size = fp_timing_size + sizeof(struct lvds_dvo_timing) + + sizeof(struct lvds_pnp_id); if (size * 16 > block_size) return NULL; @@ -408,7 +402,7 @@ table_size = sizeof(struct lvds_dvo_timing); size = make_lfp_data_ptr(&ptrs->ptr[0].dvo_timing, table_size, size); - table_size = t0 - block + 2; + table_size = fp_timing_size; size = make_lfp_data_ptr(&ptrs->ptr[0].fp_timing, table_size, size); if (ptrs->ptr[0].fp_timing.table_size) @@ -419,18 +413,18 @@ ptrs->lvds_entries++; if (size != 0 || ptrs->lvds_entries != 3) { - kfree(ptrs); + kfree(ptrs_block); return NULL; } - size = t1 - t0; + size = fp_timing_size + sizeof(struct lvds_dvo_timing) + + sizeof(struct lvds_pnp_id); for (i = 1; i < 16; i++) { next_lfp_data_ptr(&ptrs->ptr[i].fp_timing, &ptrs->ptr[i-1].fp_timing, size); next_lfp_data_ptr(&ptrs->ptr[i].dvo_timing, &ptrs->ptr[i-1].dvo_timing, size); next_lfp_data_ptr(&ptrs->ptr[i].panel_pnp_id, &ptrs->ptr[i-1].panel_pnp_id, size); } - size = t1 - t0; table_size = sizeof(struct lvds_lfp_panel_name); if (16 * (size + table_size) <= block_size) { @@ -478,6 +472,13 @@ block_size = get_blocksize(block); + /* + * Version number and new block size are considered + * part of the header for MIPI sequenece block v3+. + */ + if (section_id == BDB_MIPI_SEQUENCE && *(const u8 *)block >= 3) + block_size += 5; + entry = kzalloc(struct_size(entry, data, max(min_size, block_size) + 3), GFP_KERNEL); if (!entry) { --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_bw.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_bw.c @@ -404,15 +404,17 @@ int clpchgroup; int j; - if (i < num_groups - 1) - bi_next = &dev_priv->max_bw[i + 1]; - clpchgroup = (sa->deburst * qi.deinterleave / num_channels) << i; - if (i < num_groups - 1 && clpchgroup < clperchgroup) - bi_next->num_planes = (ipqdepth - clpchgroup) / clpchgroup + 1; - else - bi_next->num_planes = 0; + if (i < num_groups - 1) { + bi_next = &dev_priv->max_bw[i + 1]; + + if (clpchgroup < clperchgroup) + bi_next->num_planes = (ipqdepth - clpchgroup) / + clpchgroup + 1; + else + bi_next->num_planes = 0; + } bi->num_qgv_points = qi.num_points; bi->num_psf_gv_points = qi.num_psf_points; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_cdclk.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -2300,7 +2300,7 @@ min_cdclk = max(min_cdclk, (int)crtc_state->pixel_rate); /* - * HACK. Currently for TGL platforms we calculate + * HACK. Currently for TGL/DG2 platforms we calculate * min_cdclk initially based on pixel_rate divided * by 2, accounting for also plane requirements, * however in some cases the lowest possible CDCLK @@ -2308,7 +2308,7 @@ * Explicitly stating here that this seems to be currently * rather a Hack, than final solution. */ - if (IS_TIGERLAKE(dev_priv)) { + if (IS_TIGERLAKE(dev_priv) || IS_DG2(dev_priv)) { /* * Clamp to max_cdclk_freq in case pixel rate is higher, * in order not to break an 8K, but still leave W/A at place. --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_display.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_display.c @@ -3822,12 +3822,16 @@ static u8 bigjoiner_pipes(struct drm_i915_private *i915) { + u8 pipes; + if (DISPLAY_VER(i915) >= 12) - return BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D); + pipes = BIT(PIPE_A) | BIT(PIPE_B) | BIT(PIPE_C) | BIT(PIPE_D); else if (DISPLAY_VER(i915) >= 11) - return BIT(PIPE_B) | BIT(PIPE_C); + pipes = BIT(PIPE_B) | BIT(PIPE_C); else - return 0; + pipes = 0; + + return pipes & INTEL_INFO(i915)->display.pipe_mask; } static bool transcoder_ddi_func_is_enabled(struct drm_i915_private *dev_priv, --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_display_power.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_display_power.c @@ -2425,7 +2425,7 @@ { const struct intel_ddi_port_domains *domains = intel_port_domains_for_port(i915, port); - if (drm_WARN_ON(&i915->drm, !domains) || domains->ddi_io == POWER_DOMAIN_INVALID) + if (drm_WARN_ON(&i915->drm, !domains || domains->ddi_io == POWER_DOMAIN_INVALID)) return POWER_DOMAIN_PORT_DDI_IO_A; return domains->ddi_io + (int)(port - domains->port_start); @@ -2436,7 +2436,7 @@ { const struct intel_ddi_port_domains *domains = intel_port_domains_for_port(i915, port); - if (drm_WARN_ON(&i915->drm, !domains) || domains->ddi_lanes == POWER_DOMAIN_INVALID) + if (drm_WARN_ON(&i915->drm, !domains || domains->ddi_lanes == POWER_DOMAIN_INVALID)) return POWER_DOMAIN_PORT_DDI_LANES_A; return domains->ddi_lanes + (int)(port - domains->port_start); @@ -2462,7 +2462,7 @@ { const struct intel_ddi_port_domains *domains = intel_port_domains_for_aux_ch(i915, aux_ch); - if (drm_WARN_ON(&i915->drm, !domains) || domains->aux_legacy_usbc == POWER_DOMAIN_INVALID) + if (drm_WARN_ON(&i915->drm, !domains || domains->aux_legacy_usbc == POWER_DOMAIN_INVALID)) return POWER_DOMAIN_AUX_A; return domains->aux_legacy_usbc + (int)(aux_ch - domains->aux_ch_start); @@ -2473,7 +2473,7 @@ { const struct intel_ddi_port_domains *domains = intel_port_domains_for_aux_ch(i915, aux_ch); - if (drm_WARN_ON(&i915->drm, !domains) || domains->aux_tbt == POWER_DOMAIN_INVALID) + if (drm_WARN_ON(&i915->drm, !domains || domains->aux_tbt == POWER_DOMAIN_INVALID)) return POWER_DOMAIN_AUX_TBT1; return domains->aux_tbt + (int)(aux_ch - domains->aux_ch_start); --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_display_types.h +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_display_types.h @@ -1528,6 +1528,8 @@ bool psr2_sel_fetch_cff_enabled; bool req_psr2_sdp_prior_scanline; u8 sink_sync_latency; + u8 io_wake_lines; + u8 fast_wake_lines; ktime_t last_entry_attempt; ktime_t last_exit; bool sink_not_reliable; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_dp.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_dp.c @@ -388,23 +388,13 @@ return intel_dp_is_edp(intel_dp) ? 810000 : 1350000; } -static bool is_low_voltage_sku(struct drm_i915_private *i915, enum phy phy) -{ - u32 voltage; - - voltage = intel_de_read(i915, ICL_PORT_COMP_DW3(phy)) & VOLTAGE_INFO_MASK; - - return voltage == VOLTAGE_INFO_0_85V; -} - static int icl_max_source_rate(struct intel_dp *intel_dp) { struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); enum phy phy = intel_port_to_phy(dev_priv, dig_port->base.port); - if (intel_phy_is_combo(dev_priv, phy) && - (is_low_voltage_sku(dev_priv, phy) || !intel_dp_is_edp(intel_dp))) + if (intel_phy_is_combo(dev_priv, phy) && !intel_dp_is_edp(intel_dp)) return 540000; return 810000; @@ -412,23 +402,7 @@ static int ehl_max_source_rate(struct intel_dp *intel_dp) { - struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); - struct drm_i915_private *dev_priv = to_i915(dig_port->base.base.dev); - enum phy phy = intel_port_to_phy(dev_priv, dig_port->base.port); - - if (intel_dp_is_edp(intel_dp) || is_low_voltage_sku(dev_priv, phy)) - return 540000; - - return 810000; -} - -static int dg1_max_source_rate(struct intel_dp *intel_dp) -{ - struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); - struct drm_i915_private *i915 = to_i915(dig_port->base.base.dev); - enum phy phy = intel_port_to_phy(i915, dig_port->base.port); - - if (intel_phy_is_combo(i915, phy) && is_low_voltage_sku(i915, phy)) + if (intel_dp_is_edp(intel_dp)) return 540000; return 810000; @@ -471,7 +445,7 @@ max_rate = dg2_max_source_rate(intel_dp); else if (IS_ALDERLAKE_P(dev_priv) || IS_ALDERLAKE_S(dev_priv) || IS_DG1(dev_priv) || IS_ROCKETLAKE(dev_priv)) - max_rate = dg1_max_source_rate(intel_dp); + max_rate = 810000; else if (IS_JSL_EHL(dev_priv)) max_rate = ehl_max_source_rate(intel_dp); else @@ -973,9 +947,6 @@ enum drm_mode_status status; bool dsc = false, bigjoiner = false; - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - if (mode->flags & DRM_MODE_FLAG_DBLCLK) return MODE_H_ILLEGAL; @@ -1379,6 +1350,7 @@ * DP_DSC_RC_BUF_SIZE for this. */ vdsc_cfg->rc_model_size = DSC_RC_MODEL_SIZE_CONST; + vdsc_cfg->pic_height = crtc_state->hw.adjusted_mode.crtc_vdisplay; /* * Slice Height of 8 works for all currently available panels. So start @@ -2009,7 +1981,7 @@ if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) return -EINVAL; - if (HAS_GMCH(dev_priv) && + if (!connector->base.interlace_allowed && adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) return -EINVAL; @@ -3626,61 +3598,6 @@ } } -static void -intel_dp_autotest_phy_ddi_disable(struct intel_dp *intel_dp, - const struct intel_crtc_state *crtc_state) -{ - struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); - struct drm_device *dev = dig_port->base.base.dev; - struct drm_i915_private *dev_priv = to_i915(dev); - struct intel_crtc *crtc = to_intel_crtc(dig_port->base.base.crtc); - enum pipe pipe = crtc->pipe; - u32 trans_ddi_func_ctl_value, trans_conf_value, dp_tp_ctl_value; - - trans_ddi_func_ctl_value = intel_de_read(dev_priv, - TRANS_DDI_FUNC_CTL(pipe)); - trans_conf_value = intel_de_read(dev_priv, PIPECONF(pipe)); - dp_tp_ctl_value = intel_de_read(dev_priv, TGL_DP_TP_CTL(pipe)); - - trans_ddi_func_ctl_value &= ~(TRANS_DDI_FUNC_ENABLE | - TGL_TRANS_DDI_PORT_MASK); - trans_conf_value &= ~PIPECONF_ENABLE; - dp_tp_ctl_value &= ~DP_TP_CTL_ENABLE; - - intel_de_write(dev_priv, PIPECONF(pipe), trans_conf_value); - intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(pipe), - trans_ddi_func_ctl_value); - intel_de_write(dev_priv, TGL_DP_TP_CTL(pipe), dp_tp_ctl_value); -} - -static void -intel_dp_autotest_phy_ddi_enable(struct intel_dp *intel_dp, - const struct intel_crtc_state *crtc_state) -{ - struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp); - struct drm_device *dev = dig_port->base.base.dev; - struct drm_i915_private *dev_priv = to_i915(dev); - enum port port = dig_port->base.port; - struct intel_crtc *crtc = to_intel_crtc(dig_port->base.base.crtc); - enum pipe pipe = crtc->pipe; - u32 trans_ddi_func_ctl_value, trans_conf_value, dp_tp_ctl_value; - - trans_ddi_func_ctl_value = intel_de_read(dev_priv, - TRANS_DDI_FUNC_CTL(pipe)); - trans_conf_value = intel_de_read(dev_priv, PIPECONF(pipe)); - dp_tp_ctl_value = intel_de_read(dev_priv, TGL_DP_TP_CTL(pipe)); - - trans_ddi_func_ctl_value |= TRANS_DDI_FUNC_ENABLE | - TGL_TRANS_DDI_SELECT_PORT(port); - trans_conf_value |= PIPECONF_ENABLE; - dp_tp_ctl_value |= DP_TP_CTL_ENABLE; - - intel_de_write(dev_priv, PIPECONF(pipe), trans_conf_value); - intel_de_write(dev_priv, TGL_DP_TP_CTL(pipe), dp_tp_ctl_value); - intel_de_write(dev_priv, TRANS_DDI_FUNC_CTL(pipe), - trans_ddi_func_ctl_value); -} - static void intel_dp_process_phy_request(struct intel_dp *intel_dp, const struct intel_crtc_state *crtc_state) { @@ -3699,14 +3616,10 @@ intel_dp_get_adjust_train(intel_dp, crtc_state, DP_PHY_DPRX, link_status); - intel_dp_autotest_phy_ddi_disable(intel_dp, crtc_state); - intel_dp_set_signal_levels(intel_dp, crtc_state, DP_PHY_DPRX); intel_dp_phy_pattern_update(intel_dp, crtc_state); - intel_dp_autotest_phy_ddi_enable(intel_dp, crtc_state); - drm_dp_dpcd_write(&intel_dp->aux, DP_TRAINING_LANE0_SET, intel_dp->train_set, crtc_state->lane_count); @@ -3908,6 +3821,8 @@ drm_dp_pcon_hdmi_frl_link_error_count(&intel_dp->aux, &intel_dp->attached_connector->base); + intel_dp->frl.is_trained = false; + /* Restart FRL training or fall back to TMDS mode */ intel_dp_check_frl_training(intel_dp); } @@ -4421,7 +4336,7 @@ return is_connected; } -static struct edid * +struct edid * intel_dp_get_edid(struct intel_dp *intel_dp) { struct intel_connector *intel_connector = intel_dp->attached_connector; @@ -5248,8 +5163,6 @@ intel_panel_init(intel_connector); - if (!(dev_priv->quirks & QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK)) - intel_connector->panel.backlight.power = intel_pps_backlight_power; intel_backlight_setup(intel_connector, pipe); intel_edp_add_properties(intel_dp); @@ -5351,7 +5264,7 @@ drm_connector_init(dev, connector, &intel_dp_connector_funcs, type); drm_connector_helper_add(connector, &intel_dp_connector_helper_funcs); - if (!HAS_GMCH(dev_priv)) + if (!HAS_GMCH(dev_priv) && DISPLAY_VER(dev_priv) < 12) connector->interlace_allowed = true; connector->doublescan_allowed = 0; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_dp.h +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_dp.h @@ -95,6 +95,8 @@ unsigned int type); bool intel_digital_port_connected(struct intel_encoder *encoder); +struct edid *intel_dp_get_edid(struct intel_dp *intel_dp); + static inline unsigned int intel_dp_unused_lane_mask(int lane_count) { return ~((1 << lane_count) - 1) & 0xf; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_dp_aux_backlight.c @@ -278,6 +278,8 @@ { struct drm_i915_private *i915 = to_i915(connector->base.dev); struct intel_panel *panel = &connector->panel; + struct drm_luminance_range_info *luminance_range = + &connector->base.display_info.luminance_range; int ret; if (panel->backlight.edp.intel.sdr_uses_aux) { @@ -293,8 +295,17 @@ } } - panel->backlight.max = 512; - panel->backlight.min = 0; + if (luminance_range->max_luminance) { + panel->backlight.max = luminance_range->max_luminance; + panel->backlight.min = luminance_range->min_luminance; + } else { + panel->backlight.max = 512; + panel->backlight.min = 0; + } + + drm_dbg_kms(&i915->drm, "Using backlight range %d..%d\n", panel->backlight.min, + panel->backlight.max); + panel->backlight.level = intel_dp_aux_hdr_get_backlight(connector, pipe); panel->backlight.enabled = panel->backlight.level != 0; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_dp_link_training.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_dp_link_training.c @@ -671,6 +671,28 @@ intel_dp_compute_rate(intel_dp, crtc_state->port_clock, &link_bw, &rate_select); + /* + * WaEdpLinkRateDataReload + * + * Parade PS8461E MUX (used on varius TGL+ laptops) needs + * to snoop the link rates reported by the sink when we + * use LINK_RATE_SET in order to operate in jitter cleaning + * mode (as opposed to redriver mode). Unfortunately it + * loses track of the snooped link rates when powered down, + * so we need to make it re-snoop often. Without this high + * link rates are not stable. + */ + if (!link_bw) { + struct intel_connector *connector = intel_dp->attached_connector; + __le16 sink_rates[DP_MAX_SUPPORTED_RATES]; + + drm_dbg_kms(&i915->drm, "[CONNECTOR:%d:%s] Reloading eDP link rates\n", + connector->base.base.id, connector->base.name); + + drm_dp_dpcd_read(&intel_dp->aux, DP_SUPPORTED_LINK_RATES, + sink_rates, sizeof(sink_rates)); + } + if (link_bw) drm_dbg_kms(&i915->drm, "[ENCODER:%d:%s] Using LINK_BW_SET value %02x\n", --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_hdmi.c @@ -1986,9 +1986,6 @@ bool has_hdmi_sink = intel_has_hdmi_sink(hdmi, connector->state); bool ycbcr_420_only; - if (mode->flags & DRM_MODE_FLAG_DBLSCAN) - return MODE_NO_DBLESCAN; - if ((mode->flags & DRM_MODE_FLAG_3D_MASK) == DRM_MODE_FLAG_3D_FRAME_PACKING) clock *= 2; @@ -2237,6 +2234,10 @@ if (adjusted_mode->flags & DRM_MODE_FLAG_DBLSCAN) return -EINVAL; + if (!connector->interlace_allowed && + adjusted_mode->flags & DRM_MODE_FLAG_INTERLACE) + return -EINVAL; + pipe_config->output_format = INTEL_OUTPUT_FORMAT_RGB; pipe_config->has_hdmi_sink = intel_has_hdmi_sink(intel_hdmi, conn_state); @@ -2946,9 +2947,12 @@ ddc); drm_connector_helper_add(connector, &intel_hdmi_connector_helper_funcs); - connector->interlace_allowed = 1; + if (DISPLAY_VER(dev_priv) < 12) + connector->interlace_allowed = true; + connector->doublescan_allowed = 0; - connector->stereo_allowed = 1; + + connector->stereo_allowed = true; if (DISPLAY_VER(dev_priv) >= 10) connector->ycbcr_420_allowed = true; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_lpe_audio.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_lpe_audio.c @@ -175,6 +175,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-5.19.0.orig/drivers/gpu/drm/i915/display/intel_psr.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_psr.c @@ -23,6 +23,7 @@ #include #include +#include #include "display/intel_dp.h" @@ -518,6 +519,14 @@ val |= EDP_PSR2_FRAME_BEFORE_SU(max_t(u8, intel_dp->psr.sink_sync_latency + 1, 2)); val |= intel_psr2_get_tp_time(intel_dp); + if (DISPLAY_VER(dev_priv) >= 12) { + if (intel_dp->psr.io_wake_lines < 9 && + intel_dp->psr.fast_wake_lines < 9) + val |= TGL_EDP_PSR2_BLOCK_COUNT_NUM_2; + else + val |= TGL_EDP_PSR2_BLOCK_COUNT_NUM_3; + } + /* Wa_22012278275:adl-p */ if (IS_ADLP_DISPLAY_STEP(dev_priv, STEP_A0, STEP_E0)) { static const u8 map[] = { @@ -534,31 +543,21 @@ * Still using the default IO_BUFFER_WAKE and FAST_WAKE, see * comments bellow for more information */ - u32 tmp, lines = 7; - - val |= TGL_EDP_PSR2_BLOCK_COUNT_NUM_2; + u32 tmp; - tmp = map[lines - TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES]; + tmp = map[intel_dp->psr.io_wake_lines - TGL_EDP_PSR2_IO_BUFFER_WAKE_MIN_LINES]; tmp = tmp << TGL_EDP_PSR2_IO_BUFFER_WAKE_SHIFT; val |= tmp; - tmp = map[lines - TGL_EDP_PSR2_FAST_WAKE_MIN_LINES]; + tmp = map[intel_dp->psr.fast_wake_lines - TGL_EDP_PSR2_FAST_WAKE_MIN_LINES]; tmp = tmp << TGL_EDP_PSR2_FAST_WAKE_MIN_SHIFT; val |= tmp; } else if (DISPLAY_VER(dev_priv) >= 12) { - /* - * TODO: 7 lines of IO_BUFFER_WAKE and FAST_WAKE are default - * values from BSpec. In order to setting an optimal power - * consumption, lower than 4k resoluition mode needs to decrese - * IO_BUFFER_WAKE and FAST_WAKE. And higher than 4K resolution - * mode needs to increase IO_BUFFER_WAKE and FAST_WAKE. - */ - val |= TGL_EDP_PSR2_BLOCK_COUNT_NUM_2; - val |= TGL_EDP_PSR2_IO_BUFFER_WAKE(7); - val |= TGL_EDP_PSR2_FAST_WAKE(7); + val |= TGL_EDP_PSR2_IO_BUFFER_WAKE(intel_dp->psr.io_wake_lines); + val |= TGL_EDP_PSR2_FAST_WAKE(intel_dp->psr.fast_wake_lines); } else if (DISPLAY_VER(dev_priv) >= 9) { - val |= EDP_PSR2_IO_BUFFER_WAKE(7); - val |= EDP_PSR2_FAST_WAKE(7); + val |= EDP_PSR2_IO_BUFFER_WAKE(intel_dp->psr.io_wake_lines); + val |= EDP_PSR2_FAST_WAKE(intel_dp->psr.fast_wake_lines); } if (intel_dp->psr.req_psr2_sdp_prior_scanline) @@ -727,6 +726,24 @@ struct intel_crtc_state *crtc_state) { struct drm_i915_private *dev_priv = dp_to_i915(intel_dp); + struct edid *edid; + + edid = intel_dp_get_edid(intel_dp); + + /* The mfg:prod can be obtained from EDID byte [8-11]. + * For instance, if the first bytes of EDID are + * "00 ff ff ff ff ff ff 00 4d 10 51 15 00 00 00 00", + * the mfg:prod is "4d 10 51 15". + * + * TODO: If the list grows more than three quirks, please make a quirk + * table. + */ + if (edid && edid->mfg_id[0] == 0x4d && edid->mfg_id[1] == 0x10 && + edid->prod_code[0] == 0x51 && edid->prod_code[1] == 0x15) { + drm_info_once(&dev_priv->drm, + "PSR2 sel fetch disabled\n"); + return false; + } if (!dev_priv->params.enable_psr2_sel_fetch && intel_dp->psr.debug != I915_PSR_DEBUG_ENABLE_SEL_FETCH) { @@ -812,6 +829,46 @@ return true; } +static bool _compute_psr2_wake_times(struct intel_dp *intel_dp, + struct intel_crtc_state *crtc_state) +{ + struct drm_i915_private *i915 = dp_to_i915(intel_dp); + int io_wake_lines, io_wake_time, fast_wake_lines, fast_wake_time; + u8 max_wake_lines; + + if (DISPLAY_VER(i915) >= 12) { + io_wake_time = 42; + /* + * According to Bspec it's 42us, but based on testing + * it is not enough -> use 45 us. + */ + fast_wake_time = 45; + max_wake_lines = 12; + } else { + io_wake_time = 50; + fast_wake_time = 32; + max_wake_lines = 8; + } + + io_wake_lines = intel_usecs_to_scanlines( + &crtc_state->uapi.adjusted_mode, io_wake_time); + fast_wake_lines = intel_usecs_to_scanlines( + &crtc_state->uapi.adjusted_mode, fast_wake_time); + + if (io_wake_lines > max_wake_lines || + fast_wake_lines > max_wake_lines) + return false; + + if (i915->params.psr_safest_params) + io_wake_lines = fast_wake_lines = max_wake_lines; + + /* According to Bspec lower limit should be set as 7 lines. */ + intel_dp->psr.io_wake_lines = max(io_wake_lines, 7); + intel_dp->psr.fast_wake_lines = max(fast_wake_lines, 7); + + return true; +} + static bool intel_psr2_config_valid(struct intel_dp *intel_dp, struct intel_crtc_state *crtc_state) { @@ -905,6 +962,12 @@ return false; } + if (!_compute_psr2_wake_times(intel_dp, crtc_state)) { + drm_dbg_kms(&dev_priv->drm, + "PSR2 not enabled, Unable to use long enough wake times\n"); + return false; + } + if (HAS_PSR2_SEL_FETCH(dev_priv)) { if (!intel_psr2_sel_fetch_config_valid(intel_dp, crtc_state) && !HAS_PSR_HW_TRACKING(dev_priv)) { @@ -1618,8 +1681,12 @@ } static void clip_area_update(struct drm_rect *overlap_damage_area, - struct drm_rect *damage_area) + struct drm_rect *damage_area, + struct drm_rect *pipe_src) { + if (!drm_rect_intersect(damage_area, pipe_src)) + return; + if (overlap_damage_area->y1 == -1) { overlap_damage_area->y1 = damage_area->y1; overlap_damage_area->y2 = damage_area->y2; @@ -1685,6 +1752,7 @@ int intel_psr2_sel_fetch_update(struct intel_atomic_state *state, struct intel_crtc *crtc) { + struct drm_i915_private *dev_priv = to_i915(state->base.dev); struct intel_crtc_state *crtc_state = intel_atomic_get_new_crtc_state(state, crtc); struct drm_rect pipe_clip = { .x1 = 0, .y1 = -1, .x2 = INT_MAX, .y2 = -1 }; struct intel_plane_state *new_plane_state, *old_plane_state; @@ -1708,7 +1776,8 @@ */ for_each_oldnew_intel_plane_in_state(state, plane, old_plane_state, new_plane_state, i) { - struct drm_rect src, damaged_area = { .y1 = -1 }; + struct drm_rect src, damaged_area = { .x1 = 0, .y1 = -1, + .x2 = INT_MAX }; struct drm_atomic_helper_damage_iter iter; struct drm_rect clip; @@ -1735,20 +1804,23 @@ if (old_plane_state->uapi.visible) { damaged_area.y1 = old_plane_state->uapi.dst.y1; damaged_area.y2 = old_plane_state->uapi.dst.y2; - clip_area_update(&pipe_clip, &damaged_area); + clip_area_update(&pipe_clip, &damaged_area, + &crtc_state->pipe_src); } if (new_plane_state->uapi.visible) { damaged_area.y1 = new_plane_state->uapi.dst.y1; damaged_area.y2 = new_plane_state->uapi.dst.y2; - clip_area_update(&pipe_clip, &damaged_area); + clip_area_update(&pipe_clip, &damaged_area, + &crtc_state->pipe_src); } continue; } else if (new_plane_state->uapi.alpha != old_plane_state->uapi.alpha) { /* If alpha changed mark the whole plane area as damaged */ damaged_area.y1 = new_plane_state->uapi.dst.y1; damaged_area.y2 = new_plane_state->uapi.dst.y2; - clip_area_update(&pipe_clip, &damaged_area); + clip_area_update(&pipe_clip, &damaged_area, + &crtc_state->pipe_src); continue; } @@ -1759,7 +1831,8 @@ &new_plane_state->uapi); drm_atomic_for_each_plane_damage(&iter, &clip) { if (drm_rect_intersect(&clip, &src)) - clip_area_update(&damaged_area, &clip); + clip_area_update(&damaged_area, &clip, + &crtc_state->pipe_src); } if (damaged_area.y1 == -1) @@ -1767,7 +1840,20 @@ damaged_area.y1 += new_plane_state->uapi.dst.y1 - src.y1; damaged_area.y2 += new_plane_state->uapi.dst.y1 - src.y1; - clip_area_update(&pipe_clip, &damaged_area); + clip_area_update(&pipe_clip, &damaged_area, &crtc_state->pipe_src); + } + + /* + * TODO: For now we are just using full update in case + * selective fetch area calculation fails. To optimize this we + * should identify cases where this happens and fix the area + * calculation for those. + */ + if (pipe_clip.y1 == -1) { + drm_info_once(&dev_priv->drm, + "Selective fetch area calculation failed in pipe %c\n", + pipe_name(crtc->pipe)); + full_update = true; } if (full_update) @@ -2159,8 +2245,11 @@ if (intel_dp->psr.psr2_sel_fetch_enabled) { u32 val; - if (intel_dp->psr.psr2_sel_fetch_cff_enabled) + if (intel_dp->psr.psr2_sel_fetch_cff_enabled) { + /* Send one update otherwise lag is observed in screen */ + intel_de_write(dev_priv, CURSURFLIVE(intel_dp->psr.pipe), 0); return; + } val = man_trk_ctl_enable_bit_get(dev_priv) | man_trk_ctl_partial_frame_bit_get(dev_priv) | --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_quirks.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_quirks.c @@ -191,6 +191,9 @@ /* ASRock ITX*/ { 0x3185, 0x1849, 0x2212, quirk_increase_ddi_disabled_time }, { 0x3184, 0x1849, 0x2212, quirk_increase_ddi_disabled_time }, + /* ECS Liva Q2 */ + { 0x3185, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, + { 0x3184, 0x1019, 0xa94d, quirk_increase_ddi_disabled_time }, }; void intel_init_quirks(struct drm_i915_private *i915) --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_sdvo.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_sdvo.c @@ -2747,13 +2747,10 @@ if (!intel_sdvo_connector) return false; - if (device == 0) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS0; + if (device == 0) intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS0; - } else if (device == 1) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_TMDS1; + else if (device == 1) intel_sdvo_connector->output_flag = SDVO_OUTPUT_TMDS1; - } intel_connector = &intel_sdvo_connector->base; connector = &intel_connector->base; @@ -2808,7 +2805,6 @@ encoder->encoder_type = DRM_MODE_ENCODER_TVDAC; connector->connector_type = DRM_MODE_CONNECTOR_SVIDEO; - intel_sdvo->controlled_output |= type; intel_sdvo_connector->output_flag = type; if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { @@ -2849,13 +2845,10 @@ encoder->encoder_type = DRM_MODE_ENCODER_DAC; connector->connector_type = DRM_MODE_CONNECTOR_VGA; - if (device == 0) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB0; + if (device == 0) intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB0; - } else if (device == 1) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_RGB1; + else if (device == 1) intel_sdvo_connector->output_flag = SDVO_OUTPUT_RGB1; - } if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { kfree(intel_sdvo_connector); @@ -2884,13 +2877,10 @@ encoder->encoder_type = DRM_MODE_ENCODER_LVDS; connector->connector_type = DRM_MODE_CONNECTOR_LVDS; - if (device == 0) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS0; + if (device == 0) intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS0; - } else if (device == 1) { - intel_sdvo->controlled_output |= SDVO_OUTPUT_LVDS1; + else if (device == 1) intel_sdvo_connector->output_flag = SDVO_OUTPUT_LVDS1; - } if (intel_sdvo_connector_init(intel_sdvo_connector, intel_sdvo) < 0) { kfree(intel_sdvo_connector); @@ -2923,16 +2913,39 @@ return false; } +static u16 intel_sdvo_filter_output_flags(u16 flags) +{ + flags &= SDVO_OUTPUT_MASK; + + /* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/ + if (!(flags & SDVO_OUTPUT_TMDS0)) + flags &= ~SDVO_OUTPUT_TMDS1; + + if (!(flags & SDVO_OUTPUT_RGB0)) + flags &= ~SDVO_OUTPUT_RGB1; + + if (!(flags & SDVO_OUTPUT_LVDS0)) + flags &= ~SDVO_OUTPUT_LVDS1; + + return flags; +} + static bool intel_sdvo_output_setup(struct intel_sdvo *intel_sdvo, u16 flags) { - /* SDVO requires XXX1 function may not exist unless it has XXX0 function.*/ + struct drm_i915_private *i915 = to_i915(intel_sdvo->base.base.dev); + + flags = intel_sdvo_filter_output_flags(flags); + + intel_sdvo->controlled_output = flags; + + intel_sdvo_select_ddc_bus(i915, intel_sdvo); if (flags & SDVO_OUTPUT_TMDS0) if (!intel_sdvo_dvi_init(intel_sdvo, 0)) return false; - if ((flags & SDVO_TMDS_MASK) == SDVO_TMDS_MASK) + if (flags & SDVO_OUTPUT_TMDS1) if (!intel_sdvo_dvi_init(intel_sdvo, 1)) return false; @@ -2953,7 +2966,7 @@ if (!intel_sdvo_analog_init(intel_sdvo, 0)) return false; - if ((flags & SDVO_RGB_MASK) == SDVO_RGB_MASK) + if (flags & SDVO_OUTPUT_RGB1) if (!intel_sdvo_analog_init(intel_sdvo, 1)) return false; @@ -2961,14 +2974,13 @@ if (!intel_sdvo_lvds_init(intel_sdvo, 0)) return false; - if ((flags & SDVO_LVDS_MASK) == SDVO_LVDS_MASK) + if (flags & SDVO_OUTPUT_LVDS1) if (!intel_sdvo_lvds_init(intel_sdvo, 1)) return false; - if ((flags & SDVO_OUTPUT_MASK) == 0) { + if (flags == 0) { unsigned char bytes[2]; - intel_sdvo->controlled_output = 0; memcpy(bytes, &intel_sdvo->caps.output_flags, 2); DRM_DEBUG_KMS("%s: Unknown SDVO output type (0x%02x%02x)\n", SDVO_NAME(intel_sdvo), @@ -3380,8 +3392,6 @@ */ intel_sdvo->base.cloneable = 0; - intel_sdvo_select_ddc_bus(dev_priv, intel_sdvo); - /* Set the input timing to the screen. Assume always input 0. */ if (!intel_sdvo_set_target_input(intel_sdvo)) goto err_output; --- linux-5.19.0.orig/drivers/gpu/drm/i915/display/intel_vdsc.c +++ linux-5.19.0/drivers/gpu/drm/i915/display/intel_vdsc.c @@ -460,7 +460,6 @@ u8 i = 0; vdsc_cfg->pic_width = pipe_config->hw.adjusted_mode.crtc_hdisplay; - vdsc_cfg->pic_height = pipe_config->hw.adjusted_mode.crtc_vdisplay; vdsc_cfg->slice_width = DIV_ROUND_UP(vdsc_cfg->pic_width, pipe_config->dsc.slice_count); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_context.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_context.c @@ -1269,6 +1269,10 @@ trace_i915_context_free(ctx); GEM_BUG_ON(!i915_gem_context_is_closed(ctx)); + spin_lock(&ctx->i915->gem.contexts.lock); + list_del(&ctx->link); + spin_unlock(&ctx->i915->gem.contexts.lock); + if (ctx->syncobj) drm_syncobj_put(ctx->syncobj); @@ -1514,10 +1518,6 @@ ctx->file_priv = ERR_PTR(-EBADF); - spin_lock(&ctx->i915->gem.contexts.lock); - list_del(&ctx->link); - spin_unlock(&ctx->i915->gem.contexts.lock); - client = ctx->client; if (client) { spin_lock(&client->ctx_lock); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c @@ -40,13 +40,13 @@ goto err; } - ret = sg_alloc_table(st, obj->mm.pages->nents, GFP_KERNEL); + ret = sg_alloc_table(st, obj->mm.pages->orig_nents, GFP_KERNEL); if (ret) goto err_free; src = obj->mm.pages->sgl; dst = st->sgl; - for (i = 0; i < obj->mm.pages->nents; i++) { + for (i = 0; i < obj->mm.pages->orig_nents; i++) { sg_set_page(dst, sg_page(src), src->length, 0); dst = sg_next(dst); src = sg_next(src); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_internal.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_internal.c @@ -6,7 +6,6 @@ #include #include -#include #include "i915_drv.h" #include "i915_gem.h" @@ -38,22 +37,12 @@ struct scatterlist *sg; unsigned int sg_page_sizes; unsigned int npages; - int max_order; + int max_order = MAX_ORDER; + unsigned int max_segment; gfp_t gfp; - max_order = MAX_ORDER; -#ifdef CONFIG_SWIOTLB - if (is_swiotlb_active(obj->base.dev->dev)) { - unsigned int max_segment; - - max_segment = swiotlb_max_segment(); - if (max_segment) { - max_segment = max_t(unsigned int, max_segment, - PAGE_SIZE) >> PAGE_SHIFT; - max_order = min(max_order, ilog2(max_segment)); - } - } -#endif + max_segment = i915_sg_segment_size(i915->drm.dev) >> PAGE_SHIFT; + max_order = min(max_order, get_order(max_segment)); gfp = GFP_KERNEL | __GFP_HIGHMEM | __GFP_RECLAIMABLE; if (IS_I965GM(i915) || IS_I965G(i915)) { --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_object.c @@ -268,7 +268,7 @@ */ void __i915_gem_object_pages_fini(struct drm_i915_gem_object *obj) { - assert_object_held(obj); + assert_object_held_shared(obj); if (!list_empty(&obj->vma.list)) { struct i915_vma *vma; @@ -331,15 +331,7 @@ continue; } - if (!i915_gem_object_trylock(obj, NULL)) { - /* busy, toss it back to the pile */ - if (llist_add(&obj->freed, &i915->mm.free_list)) - queue_delayed_work(i915->wq, &i915->mm.free_work, msecs_to_jiffies(10)); - continue; - } - __i915_gem_object_pages_fini(obj); - i915_gem_object_unlock(obj); __i915_gem_free_object(obj); /* But keep the pointer alive for RCU-protected lookups */ @@ -359,7 +351,7 @@ static void __i915_gem_free_work(struct work_struct *work) { struct drm_i915_private *i915 = - container_of(work, struct drm_i915_private, mm.free_work.work); + container_of(work, struct drm_i915_private, mm.free_work); i915_gem_flush_free_objects(i915); } @@ -391,7 +383,7 @@ */ if (llist_add(&obj->freed, &i915->mm.free_list)) - queue_delayed_work(i915->wq, &i915->mm.free_work, 0); + queue_work(i915->wq, &i915->mm.free_work); } void __i915_gem_object_flush_frontbuffer(struct drm_i915_gem_object *obj, @@ -719,7 +711,7 @@ void i915_gem_init__objects(struct drm_i915_private *i915) { - INIT_DELAYED_WORK(&i915->mm.free_work, __i915_gem_free_work); + INIT_WORK(&i915->mm.free_work, __i915_gem_free_work); } void i915_objects_module_exit(void) --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_object_types.h +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_object_types.h @@ -335,7 +335,6 @@ #define I915_BO_READONLY BIT(7) #define I915_TILING_QUIRK_BIT 8 /* unknown swizzling; do not release! */ #define I915_BO_PROTECTED BIT(9) -#define I915_BO_WAS_BOUND_BIT 10 /** * @mem_flags - Mutable placement-related flags * @@ -598,6 +597,8 @@ * pages were last acquired. */ bool dirty:1; + + u32 tlb; } mm; struct { --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_pages.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_pages.c @@ -6,14 +6,15 @@ #include +#include "gt/intel_gt.h" +#include "gt/intel_gt_pm.h" + #include "i915_drv.h" #include "i915_gem_object.h" #include "i915_scatterlist.h" #include "i915_gem_lmem.h" #include "i915_gem_mman.h" -#include "gt/intel_gt.h" - void __i915_gem_object_set_pages(struct drm_i915_gem_object *obj, struct sg_table *pages, unsigned int sg_page_sizes) @@ -190,6 +191,18 @@ vunmap(ptr); } +static void flush_tlb_invalidate(struct drm_i915_gem_object *obj) +{ + struct drm_i915_private *i915 = to_i915(obj->base.dev); + struct intel_gt *gt = to_gt(i915); + + if (!obj->mm.tlb) + return; + + intel_gt_invalidate_tlb(gt, obj->mm.tlb); + obj->mm.tlb = 0; +} + struct sg_table * __i915_gem_object_unset_pages(struct drm_i915_gem_object *obj) { @@ -215,13 +228,7 @@ __i915_gem_object_reset_page_iter(obj); obj->mm.page_sizes.phys = obj->mm.page_sizes.sg = 0; - if (test_and_clear_bit(I915_BO_WAS_BOUND_BIT, &obj->flags)) { - struct drm_i915_private *i915 = to_i915(obj->base.dev); - intel_wakeref_t wakeref; - - with_intel_runtime_pm_if_active(&i915->runtime_pm, wakeref) - intel_gt_invalidate_tlbs(to_gt(i915)); - } + flush_tlb_invalidate(obj); return pages; } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -194,7 +194,7 @@ struct intel_memory_region *mem = obj->mm.region; struct address_space *mapping = obj->base.filp->f_mapping; const unsigned long page_count = obj->base.size / PAGE_SIZE; - unsigned int max_segment = i915_sg_segment_size(); + unsigned int max_segment = i915_sg_segment_size(i915->drm.dev); struct sg_table *st; struct sgt_iter sgt_iter; struct page *page; @@ -369,14 +369,14 @@ __start_cpu_write(obj); /* - * On non-LLC platforms, force the flush-on-acquire if this is ever + * On non-LLC igfx platforms, force the flush-on-acquire if this is ever * swapped-in. Our async flush path is not trust worthy enough yet(and * happens in the wrong order), and with some tricks it's conceivable * for userspace to change the cache-level to I915_CACHE_NONE after the * pages are swapped-in, and since execbuf binds the object before doing * the async flush, we have a race window. */ - if (!HAS_LLC(i915)) + if (!HAS_LLC(i915) && !IS_DGFX(i915)) obj->cache_dirty = true; } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -189,7 +189,7 @@ struct drm_i915_private *i915 = container_of(bdev, typeof(*i915), bdev); struct intel_memory_region *mr = i915->mm.regions[INTEL_MEMORY_SYSTEM]; struct i915_ttm_tt *i915_tt = container_of(ttm, typeof(*i915_tt), ttm); - const unsigned int max_segment = i915_sg_segment_size(); + const unsigned int max_segment = i915_sg_segment_size(i915->drm.dev); const size_t size = (size_t)ttm->num_pages << PAGE_SHIFT; struct file *filp = i915_tt->filp; struct sgt_iter sgt_iter; @@ -586,7 +586,7 @@ ret = sg_alloc_table_from_pages_segment(st, ttm->pages, ttm->num_pages, 0, (unsigned long)ttm->num_pages << PAGE_SHIFT, - i915_sg_segment_size(), GFP_KERNEL); + i915_sg_segment_size(i915_tt->dev), GFP_KERNEL); if (ret) { st->sgl = NULL; return ERR_PTR(ret); @@ -660,6 +660,10 @@ WARN_ON_ONCE(obj->mm.madv == I915_MADV_WILLNEED); + err = ttm_bo_wait(bo, true, false); + if (err) + return err; + err = i915_ttm_move_notify(bo); if (err) return err; --- linux-5.19.0.orig/drivers/gpu/drm/i915/gem/i915_gem_userptr.c +++ linux-5.19.0/drivers/gpu/drm/i915/gem/i915_gem_userptr.c @@ -129,7 +129,7 @@ static int i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj) { const unsigned long num_pages = obj->base.size >> PAGE_SHIFT; - unsigned int max_segment = i915_sg_segment_size(); + unsigned int max_segment = i915_sg_segment_size(obj->base.dev->dev); struct sg_table *st; unsigned int sg_page_sizes; struct page **pvec; --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/gen6_ppgtt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/gen6_ppgtt.c @@ -247,6 +247,7 @@ i915_gem_object_put(vm->scratch[1]); err_scratch0: i915_gem_object_put(vm->scratch[0]); + vm->scratch[0] = NULL; return ret; } @@ -268,9 +269,10 @@ gen6_ppgtt_free_pd(ppgtt); free_scratch(vm); - mutex_destroy(&ppgtt->flush); + if (ppgtt->base.pd) + free_pd(&ppgtt->base.vm, ppgtt->base.pd); - free_pd(&ppgtt->base.vm, ppgtt->base.pd); + mutex_destroy(&ppgtt->flush); } static void pd_vma_bind(struct i915_address_space *vm, @@ -449,19 +451,17 @@ err = gen6_ppgtt_init_scratch(ppgtt); if (err) - goto err_free; + goto err_put; ppgtt->base.pd = gen6_alloc_top_pd(ppgtt); if (IS_ERR(ppgtt->base.pd)) { err = PTR_ERR(ppgtt->base.pd); - goto err_scratch; + goto err_put; } return &ppgtt->base; -err_scratch: - free_scratch(&ppgtt->base.vm); -err_free: - kfree(ppgtt); +err_put: + i915_vm_put(&ppgtt->base.vm); return ERR_PTR(err); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/gen8_ppgtt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/gen8_ppgtt.c @@ -196,7 +196,10 @@ if (intel_vgpu_active(vm->i915)) gen8_ppgtt_notify_vgt(ppgtt, false); - __gen8_ppgtt_cleanup(vm, ppgtt->pd, gen8_pd_top_count(vm), vm->top); + if (ppgtt->pd) + __gen8_ppgtt_cleanup(vm, ppgtt->pd, + gen8_pd_top_count(vm), vm->top); + free_scratch(vm); } @@ -803,8 +806,10 @@ struct drm_i915_gem_object *obj; obj = vm->alloc_pt_dma(vm, I915_GTT_PAGE_SIZE_4K); - if (IS_ERR(obj)) + if (IS_ERR(obj)) { + ret = PTR_ERR(obj); goto free_scratch; + } ret = map_pt_dma(vm, obj); if (ret) { @@ -823,7 +828,8 @@ free_scratch: while (i--) i915_gem_object_put(vm->scratch[i]); - return -ENOMEM; + vm->scratch[0] = NULL; + return ret; } static int gen8_preallocate_top_level_pdp(struct i915_ppgtt *ppgtt) @@ -901,6 +907,7 @@ struct i915_ppgtt *gen8_ppgtt_create(struct intel_gt *gt, unsigned long lmem_pt_obj_flags) { + struct i915_page_directory *pd; struct i915_ppgtt *ppgtt; int err; @@ -946,21 +953,7 @@ ppgtt->vm.alloc_scratch_dma = alloc_pt_dma; } - err = gen8_init_scratch(&ppgtt->vm); - if (err) - goto err_free; - - ppgtt->pd = gen8_alloc_top_pd(&ppgtt->vm); - if (IS_ERR(ppgtt->pd)) { - err = PTR_ERR(ppgtt->pd); - goto err_free_scratch; - } - - if (!i915_vm_is_4lvl(&ppgtt->vm)) { - err = gen8_preallocate_top_level_pdp(ppgtt); - if (err) - goto err_free_pd; - } + ppgtt->vm.pte_encode = gen8_pte_encode; ppgtt->vm.bind_async_flags = I915_VMA_LOCAL_BIND; ppgtt->vm.insert_entries = gen8_ppgtt_insert; @@ -971,22 +964,31 @@ ppgtt->vm.allocate_va_range = gen8_ppgtt_alloc; ppgtt->vm.clear_range = gen8_ppgtt_clear; ppgtt->vm.foreach = gen8_ppgtt_foreach; + ppgtt->vm.cleanup = gen8_ppgtt_cleanup; - ppgtt->vm.pte_encode = gen8_pte_encode; + err = gen8_init_scratch(&ppgtt->vm); + if (err) + goto err_put; + + pd = gen8_alloc_top_pd(&ppgtt->vm); + if (IS_ERR(pd)) { + err = PTR_ERR(pd); + goto err_put; + } + ppgtt->pd = pd; + + if (!i915_vm_is_4lvl(&ppgtt->vm)) { + err = gen8_preallocate_top_level_pdp(ppgtt); + if (err) + goto err_put; + } if (intel_vgpu_active(gt->i915)) gen8_ppgtt_notify_vgt(ppgtt, true); - ppgtt->vm.cleanup = gen8_ppgtt_cleanup; - return ppgtt; -err_free_pd: - __gen8_ppgtt_cleanup(&ppgtt->vm, ppgtt->pd, - gen8_pd_top_count(&ppgtt->vm), ppgtt->vm.top); -err_free_scratch: - free_scratch(&ppgtt->vm); -err_free: - kfree(ppgtt); +err_put: + i915_vm_put(&ppgtt->vm); return ERR_PTR(err); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_engine_cs.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_engine_cs.c @@ -421,6 +421,17 @@ engine->logical_mask = BIT(logical_instance); __sprint_engine_name(engine); + if ((engine->class == COMPUTE_CLASS && !RCS_MASK(engine->gt) && + __ffs(CCS_MASK(engine->gt)) == engine->instance) || + engine->class == RENDER_CLASS) + engine->flags |= I915_ENGINE_FIRST_RENDER_COMPUTE; + + /* features common between engines sharing EUs */ + if (engine->class == RENDER_CLASS || engine->class == COMPUTE_CLASS) { + engine->flags |= I915_ENGINE_HAS_RCS_REG_STATE; + engine->flags |= I915_ENGINE_HAS_EU_PRIORITY; + } + engine->props.heartbeat_interval_ms = CONFIG_DRM_I915_HEARTBEAT_INTERVAL; engine->props.max_busywait_duration_ns = @@ -433,20 +444,9 @@ CONFIG_DRM_I915_TIMESLICE_DURATION; /* Override to uninterruptible for OpenCL workloads. */ - if (GRAPHICS_VER(i915) == 12 && engine->class == RENDER_CLASS) + if (GRAPHICS_VER(i915) == 12 && (engine->flags & I915_ENGINE_HAS_RCS_REG_STATE)) engine->props.preempt_timeout_ms = 0; - if ((engine->class == COMPUTE_CLASS && !RCS_MASK(engine->gt) && - __ffs(CCS_MASK(engine->gt)) == engine->instance) || - engine->class == RENDER_CLASS) - engine->flags |= I915_ENGINE_FIRST_RENDER_COMPUTE; - - /* features common between engines sharing EUs */ - if (engine->class == RENDER_CLASS || engine->class == COMPUTE_CLASS) { - engine->flags |= I915_ENGINE_HAS_RCS_REG_STATE; - engine->flags |= I915_ENGINE_HAS_EU_PRIORITY; - } - engine->defaults = engine->props; /* never to change again */ engine->context_size = intel_engine_context_size(gt, engine->class); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_engine_types.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_engine_types.h @@ -156,6 +156,21 @@ struct timer_list preempt; /** + * @preempt_target: active request at the time of the preemption request + * + * We force a preemption to occur if the pending contexts have not + * been promoted to active upon receipt of the CS ack event within + * the timeout. This timeout maybe chosen based on the target, + * using a very short timeout if the context is no longer schedulable. + * That short timeout may not be applicable to other contexts, so + * if a context switch should happen within before the preemption + * timeout, we may shoot early at an innocent context. To prevent this, + * we record which context was active at the time of the preemption + * request and only reset that context upon the timeout. + */ + const struct i915_request *preempt_target; + + /** * @ccid: identifier for contexts submitted to this engine */ u32 ccid; --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_execlists_submission.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_execlists_submission.c @@ -1241,6 +1241,9 @@ if (!rq) return 0; + /* Only allow ourselves to force reset the currently active context */ + engine->execlists.preempt_target = rq; + /* Force a fast reset for terminated contexts (ignoring sysfs!) */ if (unlikely(intel_context_is_banned(rq->context) || bad_request(rq))) return 1; @@ -2427,8 +2430,24 @@ GEM_BUG_ON(inactive - post > ARRAY_SIZE(post)); if (unlikely(preempt_timeout(engine))) { + const struct i915_request *rq = *engine->execlists.active; + + /* + * If after the preempt-timeout expired, we are still on the + * same active request/context as before we initiated the + * preemption, reset the engine. + * + * However, if we have processed a CS event to switch contexts, + * but not yet processed the CS event for the pending + * preemption, reset the timer allowing the new context to + * gracefully exit. + */ cancel_timer(&engine->execlists.preempt); - engine->execlists.error_interrupt |= ERROR_PREEMPT; + if (rq == engine->execlists.preempt_target) + engine->execlists.error_interrupt |= ERROR_PREEMPT; + else + set_timer_ms(&engine->execlists.preempt, + active_preempt_timeout(engine, rq)); } if (unlikely(READ_ONCE(engine->execlists.error_interrupt))) { --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt.c @@ -10,7 +10,9 @@ #include "pxp/intel_pxp.h" #include "i915_drv.h" +#include "i915_perf_oa_regs.h" #include "intel_context.h" +#include "intel_engine_pm.h" #include "intel_engine_regs.h" #include "intel_gt.h" #include "intel_gt_buffer_pool.h" @@ -34,8 +36,6 @@ { spin_lock_init(>->irq_lock); - mutex_init(>->tlb_invalidate_lock); - INIT_LIST_HEAD(>->closed_vma); spin_lock_init(>->closed_lock); @@ -46,6 +46,8 @@ intel_gt_init_reset(gt); intel_gt_init_requests(gt); intel_gt_init_timelines(gt); + mutex_init(>->tlb.invalidate_lock); + seqcount_mutex_init(>->tlb.seqno, >->tlb.invalidate_lock); intel_gt_pm_init_early(gt); intel_uc_init_early(>->uc); @@ -677,8 +679,13 @@ return -EINTR; } - return timeout ? timeout : intel_uc_wait_for_idle(>->uc, - remaining_timeout); + if (timeout) + return timeout; + + if (remaining_timeout < 0) + remaining_timeout = 0; + + return intel_uc_wait_for_idle(>->uc, remaining_timeout); } int intel_gt_init(struct intel_gt *gt) @@ -831,6 +838,7 @@ intel_gt_fini_requests(gt); intel_gt_fini_reset(gt); intel_gt_fini_timelines(gt); + mutex_destroy(>->tlb.invalidate_lock); intel_engines_free(gt); } } @@ -1163,7 +1171,7 @@ return rb; } -void intel_gt_invalidate_tlbs(struct intel_gt *gt) +static void mmio_invalidate_full(struct intel_gt *gt) { static const i915_reg_t gen8_regs[] = { [RENDER_CLASS] = GEN8_RTCR, @@ -1181,13 +1189,11 @@ struct drm_i915_private *i915 = gt->i915; struct intel_uncore *uncore = gt->uncore; struct intel_engine_cs *engine; + intel_engine_mask_t awake, tmp; enum intel_engine_id id; const i915_reg_t *regs; unsigned int num = 0; - if (I915_SELFTEST_ONLY(gt->awake == -ENODEV)) - return; - if (GRAPHICS_VER(i915) == 12) { regs = gen12_regs; num = ARRAY_SIZE(gen12_regs); @@ -1202,28 +1208,45 @@ "Platform does not implement TLB invalidation!")) return; - GEM_TRACE("\n"); - - assert_rpm_wakelock_held(&i915->runtime_pm); - - mutex_lock(>->tlb_invalidate_lock); intel_uncore_forcewake_get(uncore, FORCEWAKE_ALL); spin_lock_irq(&uncore->lock); /* serialise invalidate with GT reset */ + awake = 0; for_each_engine(engine, gt, id) { struct reg_and_bit rb; + if (!intel_engine_pm_is_awake(engine)) + continue; + rb = get_reg_and_bit(engine, regs == gen8_regs, regs, num); if (!i915_mmio_reg_offset(rb.reg)) continue; + if (GRAPHICS_VER(i915) == 12 && (engine->class == VIDEO_DECODE_CLASS || + engine->class == VIDEO_ENHANCEMENT_CLASS)) + rb.bit = _MASKED_BIT_ENABLE(rb.bit); + intel_uncore_write_fw(uncore, rb.reg, rb.bit); + awake |= engine->mask; } + GT_TRACE(gt, "invalidated engines %08x\n", awake); + + /* Wa_2207587034:tgl,dg1,rkl,adl-s,adl-p */ + if (awake && + (IS_TIGERLAKE(i915) || + IS_DG1(i915) || + IS_ROCKETLAKE(i915) || + IS_ALDERLAKE_S(i915) || + IS_ALDERLAKE_P(i915))) + intel_uncore_write_fw(uncore, GEN12_OA_TLB_INV_CR, 1); + spin_unlock_irq(&uncore->lock); - for_each_engine(engine, gt, id) { + for_each_engine_masked(engine, gt, awake, tmp) { + struct reg_and_bit rb; + /* * HW architecture suggest typical invalidation time at 40us, * with pessimistic cases up to 100us and a recommendation to @@ -1231,12 +1254,8 @@ */ const unsigned int timeout_us = 100; const unsigned int timeout_ms = 4; - struct reg_and_bit rb; rb = get_reg_and_bit(engine, regs == gen8_regs, regs, num); - if (!i915_mmio_reg_offset(rb.reg)) - continue; - if (__intel_wait_for_register_fw(uncore, rb.reg, rb.bit, 0, timeout_us, timeout_ms, @@ -1253,5 +1272,38 @@ * transitions. */ intel_uncore_forcewake_put_delayed(uncore, FORCEWAKE_ALL); - mutex_unlock(>->tlb_invalidate_lock); +} + +static bool tlb_seqno_passed(const struct intel_gt *gt, u32 seqno) +{ + u32 cur = intel_gt_tlb_seqno(gt); + + /* Only skip if a *full* TLB invalidate barrier has passed */ + return (s32)(cur - ALIGN(seqno, 2)) > 0; +} + +void intel_gt_invalidate_tlb(struct intel_gt *gt, u32 seqno) +{ + intel_wakeref_t wakeref; + + if (I915_SELFTEST_ONLY(gt->awake == -ENODEV)) + return; + + if (intel_gt_is_wedged(gt)) + return; + + if (tlb_seqno_passed(gt, seqno)) + return; + + with_intel_gt_pm_if_awake(gt, wakeref) { + mutex_lock(>->tlb.invalidate_lock); + if (tlb_seqno_passed(gt, seqno)) + goto unlock; + + mmio_invalidate_full(gt); + + write_seqcount_invalidate(>->tlb.seqno); +unlock: + mutex_unlock(>->tlb.invalidate_lock); + } } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt.h @@ -123,7 +123,17 @@ void intel_gt_watchdog_work(struct work_struct *work); -void intel_gt_invalidate_tlbs(struct intel_gt *gt); +static inline u32 intel_gt_tlb_seqno(const struct intel_gt *gt) +{ + return seqprop_sequence(>->tlb.seqno); +} + +static inline u32 intel_gt_next_invalidate_tlb_full(const struct intel_gt *gt) +{ + return intel_gt_tlb_seqno(gt) | 1; +} + +void intel_gt_invalidate_tlb(struct intel_gt *gt, u32 seqno); struct resource intel_pci_resource(struct pci_dev *pdev, int bar); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt_pm.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt_pm.h @@ -55,6 +55,9 @@ for (tmp = 1, intel_gt_pm_get(gt); tmp; \ intel_gt_pm_put(gt), tmp = 0) +#define with_intel_gt_pm_if_awake(gt, wf) \ + for (wf = intel_gt_pm_get_if_awake(gt); wf; intel_gt_pm_put_async(gt), wf = 0) + static inline int intel_gt_pm_wait_for_idle(struct intel_gt *gt) { return intel_wakeref_wait_for_idle(>->wakeref); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt_requests.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt_requests.c @@ -199,7 +199,7 @@ if (remaining_timeout) *remaining_timeout = timeout; - return active_count ? timeout : 0; + return active_count ? timeout ?: -ETIME : 0; } static void retire_work_handler(struct work_struct *work) --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt_sysfs_pm.c @@ -544,8 +544,7 @@ static INTEL_GT_RPS_BOOL_ATTR_RO(throttle_reason_vr_thermalert, VR_THERMALERT_MASK); static INTEL_GT_RPS_BOOL_ATTR_RO(throttle_reason_vr_tdc, VR_TDC_MASK); -static const struct attribute *freq_attrs[] = { - &dev_attr_punit_req_freq_mhz.attr, +static const struct attribute *throttle_reason_attrs[] = { &attr_throttle_reason_status.attr, &attr_throttle_reason_pl1.attr, &attr_throttle_reason_pl2.attr, @@ -594,9 +593,17 @@ if (!is_object_gt(kobj)) return; - ret = sysfs_create_files(kobj, freq_attrs); + ret = sysfs_create_file(kobj, &dev_attr_punit_req_freq_mhz.attr); if (ret) drm_warn(>->i915->drm, - "failed to create gt%u throttle sysfs files (%pe)", + "failed to create gt%u punit_req_freq_mhz sysfs (%pe)", gt->info.id, ERR_PTR(ret)); + + if (GRAPHICS_VER(gt->i915) >= 11) { + ret = sysfs_create_files(kobj, throttle_reason_attrs); + if (ret) + drm_warn(>->i915->drm, + "failed to create gt%u throttle sysfs files (%pe)", + gt->info.id, ERR_PTR(ret)); + } } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gt_types.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gt_types.h @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -76,7 +77,22 @@ struct intel_uc uc; struct intel_gsc gsc; - struct mutex tlb_invalidate_lock; + struct { + /* Serialize global tlb invalidations */ + struct mutex invalidate_lock; + + /* + * Batch TLB invalidations + * + * After unbinding the PTE, we need to ensure the TLB + * are invalidated prior to releasing the physical pages. + * But we only need one such invalidation for all unbinds, + * so we track how many TLB invalidations have been + * performed since unbind the PTE and only emit an extra + * invalidate if no full barrier has been passed. + */ + seqcount_mutex_t seqno; + } tlb; struct i915_wa_list wa_list; --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_gtt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_gtt.c @@ -405,6 +405,9 @@ { int i; + if (!vm->scratch[0]) + return; + for (i = 0; i <= vm->top; i++) i915_gem_object_put(vm->scratch[i]); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_llc.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_llc.c @@ -12,6 +12,7 @@ #include "intel_llc.h" #include "intel_mchbar_regs.h" #include "intel_pcode.h" +#include "intel_rps.h" struct ia_constants { unsigned int min_gpu_freq; @@ -55,9 +56,6 @@ if (!HAS_LLC(i915) || IS_DGFX(i915)) return false; - if (rps->max_freq <= rps->min_freq) - return false; - consts->max_ia_freq = cpu_max_MHz(); consts->min_ring_freq = @@ -65,13 +63,8 @@ /* convert DDR frequency from units of 266.6MHz to bandwidth */ consts->min_ring_freq = mult_frac(consts->min_ring_freq, 8, 3); - consts->min_gpu_freq = rps->min_freq; - consts->max_gpu_freq = rps->max_freq; - if (GRAPHICS_VER(i915) >= 9) { - /* Convert GT frequency to 50 HZ units */ - consts->min_gpu_freq /= GEN9_FREQ_SCALER; - consts->max_gpu_freq /= GEN9_FREQ_SCALER; - } + consts->min_gpu_freq = intel_rps_get_min_raw_freq(rps); + consts->max_gpu_freq = intel_rps_get_max_raw_freq(rps); return true; } @@ -132,6 +125,12 @@ return; /* + * Although this is unlikely on any platform during initialization, + * let's ensure we don't get accidentally into infinite loop + */ + if (consts.max_gpu_freq <= consts.min_gpu_freq) + return; + /* * For each potential GPU frequency, load a ring frequency we'd like * to use for memory access. We do this by specifying the IA frequency * the PCU should use as a reference to determine the ring frequency. --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_migrate.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_migrate.c @@ -638,9 +638,9 @@ return 0; } -static int scatter_list_length(struct scatterlist *sg) +static u64 scatter_list_length(struct scatterlist *sg) { - int len = 0; + u64 len = 0; while (sg && sg_dma_len(sg)) { len += sg_dma_len(sg); @@ -650,28 +650,26 @@ return len; } -static void +static int calculate_chunk_sz(struct drm_i915_private *i915, bool src_is_lmem, - int *src_sz, u32 bytes_to_cpy, u32 ccs_bytes_to_cpy) + u64 bytes_to_cpy, u64 ccs_bytes_to_cpy) { - if (ccs_bytes_to_cpy) { - if (!src_is_lmem) - /* - * When CHUNK_SZ is passed all the pages upto CHUNK_SZ - * will be taken for the blt. in Flat-ccs supported - * platform Smem obj will have more pages than required - * for main meory hence limit it to the required size - * for main memory - */ - *src_sz = min_t(int, bytes_to_cpy, CHUNK_SZ); - } else { /* ccs handling is not required */ - *src_sz = CHUNK_SZ; - } + if (ccs_bytes_to_cpy && !src_is_lmem) + /* + * When CHUNK_SZ is passed all the pages upto CHUNK_SZ + * will be taken for the blt. in Flat-ccs supported + * platform Smem obj will have more pages than required + * for main meory hence limit it to the required size + * for main memory + */ + return min_t(u64, bytes_to_cpy, CHUNK_SZ); + else + return CHUNK_SZ; } -static void get_ccs_sg_sgt(struct sgt_dma *it, u32 bytes_to_cpy) +static void get_ccs_sg_sgt(struct sgt_dma *it, u64 bytes_to_cpy) { - u32 len; + u64 len; do { GEM_BUG_ON(!it->sg || !sg_dma_len(it->sg)); @@ -702,13 +700,13 @@ { struct sgt_dma it_src = sg_sgt(src), it_dst = sg_sgt(dst), it_ccs; struct drm_i915_private *i915 = ce->engine->i915; - u32 ccs_bytes_to_cpy = 0, bytes_to_cpy; + u64 ccs_bytes_to_cpy = 0, bytes_to_cpy; enum i915_cache_level ccs_cache_level; u32 src_offset, dst_offset; u8 src_access, dst_access; struct i915_request *rq; - int src_sz, dst_sz; - bool ccs_is_src; + u64 src_sz, dst_sz; + bool ccs_is_src, overwrite_ccs; int err; GEM_BUG_ON(ce->vm != ce->engine->gt->migrate.context->vm); @@ -749,6 +747,8 @@ get_ccs_sg_sgt(&it_ccs, bytes_to_cpy); } + overwrite_ccs = HAS_FLAT_CCS(i915) && !ccs_bytes_to_cpy && dst_is_lmem; + src_offset = 0; dst_offset = CHUNK_SZ; if (HAS_64K_PAGES(ce->engine->i915)) { @@ -788,8 +788,8 @@ if (err) goto out_rq; - calculate_chunk_sz(i915, src_is_lmem, &src_sz, - bytes_to_cpy, ccs_bytes_to_cpy); + src_sz = calculate_chunk_sz(i915, src_is_lmem, + bytes_to_cpy, ccs_bytes_to_cpy); len = emit_pte(rq, &it_src, src_cache_level, src_is_lmem, src_offset, src_sz); @@ -852,6 +852,25 @@ if (err) goto out_rq; ccs_bytes_to_cpy -= ccs_sz; + } else if (overwrite_ccs) { + err = rq->engine->emit_flush(rq, EMIT_INVALIDATE); + if (err) + goto out_rq; + + /* + * While we can't always restore/manage the CCS state, + * we still need to ensure we don't leak the CCS state + * from the previous user, so make sure we overwrite it + * with something. + */ + err = emit_copy_ccs(rq, dst_offset, INDIRECT_ACCESS, + dst_offset, DIRECT_ACCESS, len); + if (err) + goto out_rq; + + err = rq->engine->emit_flush(rq, EMIT_INVALIDATE); + if (err) + goto out_rq; } /* Arbitration is re-enabled between requests. */ --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_ppgtt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_ppgtt.c @@ -206,8 +206,12 @@ void ppgtt_unbind_vma(struct i915_address_space *vm, struct i915_vma_resource *vma_res) { - if (vma_res->allocated) - vm->clear_range(vm, vma_res->start, vma_res->vma_size); + if (!vma_res->allocated) + return; + + vm->clear_range(vm, vma_res->start, vma_res->vma_size); + if (vma_res->tlb) + vma_invalidate_tlb(vm, vma_res->tlb); } static unsigned long pd_count(u64 size, int shift) --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_rps.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_rps.c @@ -2123,6 +2123,31 @@ return intel_gpu_freq(rps, rps->max_freq_softlimit); } +/** + * intel_rps_get_max_raw_freq - returns the max frequency in some raw format. + * @rps: the intel_rps structure + * + * Returns the max frequency in a raw format. In newer platforms raw is in + * units of 50 MHz. + */ +u32 intel_rps_get_max_raw_freq(struct intel_rps *rps) +{ + struct intel_guc_slpc *slpc = rps_to_slpc(rps); + u32 freq; + + if (rps_uses_slpc(rps)) { + return DIV_ROUND_CLOSEST(slpc->rp0_freq, + GT_FREQUENCY_MULTIPLIER); + } else { + freq = rps->max_freq; + if (GRAPHICS_VER(rps_to_i915(rps)) >= 9) { + /* Convert GT frequency to 50 MHz units */ + freq /= GEN9_FREQ_SCALER; + } + return freq; + } +} + u32 intel_rps_get_rp0_frequency(struct intel_rps *rps) { struct intel_guc_slpc *slpc = rps_to_slpc(rps); @@ -2211,6 +2236,31 @@ return intel_gpu_freq(rps, rps->min_freq_softlimit); } +/** + * intel_rps_get_min_raw_freq - returns the min frequency in some raw format. + * @rps: the intel_rps structure + * + * Returns the min frequency in a raw format. In newer platforms raw is in + * units of 50 MHz. + */ +u32 intel_rps_get_min_raw_freq(struct intel_rps *rps) +{ + struct intel_guc_slpc *slpc = rps_to_slpc(rps); + u32 freq; + + if (rps_uses_slpc(rps)) { + return DIV_ROUND_CLOSEST(slpc->min_freq, + GT_FREQUENCY_MULTIPLIER); + } else { + freq = rps->min_freq; + if (GRAPHICS_VER(rps_to_i915(rps)) >= 9) { + /* Convert GT frequency to 50 MHz units */ + freq /= GEN9_FREQ_SCALER; + } + return freq; + } +} + static int set_min_freq(struct intel_rps *rps, u32 val) { int ret = 0; --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_rps.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_rps.h @@ -37,8 +37,10 @@ u32 intel_rps_read_actual_frequency(struct intel_rps *rps); u32 intel_rps_get_requested_frequency(struct intel_rps *rps); u32 intel_rps_get_min_frequency(struct intel_rps *rps); +u32 intel_rps_get_min_raw_freq(struct intel_rps *rps); int intel_rps_set_min_frequency(struct intel_rps *rps, u32 val); u32 intel_rps_get_max_frequency(struct intel_rps *rps); +u32 intel_rps_get_max_raw_freq(struct intel_rps *rps); int intel_rps_set_max_frequency(struct intel_rps *rps, u32 val); u32 intel_rps_get_rp0_frequency(struct intel_rps *rps); u32 intel_rps_get_rp1_frequency(struct intel_rps *rps); --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/intel_workarounds.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/intel_workarounds.c @@ -2224,11 +2224,11 @@ } if (IS_DG1_GRAPHICS_STEP(i915, STEP_A0, STEP_B0) || - IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915)) { + IS_ROCKETLAKE(i915) || IS_TIGERLAKE(i915) || IS_ALDERLAKE_P(i915)) { /* * Wa_1607030317:tgl * Wa_1607186500:tgl - * Wa_1607297627:tgl,rkl,dg1[a0] + * Wa_1607297627:tgl,rkl,dg1[a0],adlp * * On TGL and RKL there are multiple entries for this WA in the * BSpec; some indicate this is an A0-only WA, others indicate --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/uc/intel_guc.h +++ linux-5.19.0/drivers/gpu/drm/i915/gt/uc/intel_guc.h @@ -235,6 +235,14 @@ * @shift: Right shift value for the gpm timestamp */ u32 shift; + + /** + * @last_stat_jiffies: jiffies at last actual stats collection time + * We use this timestamp to ensure we don't oversample the + * stats because runtime power management events can trigger + * stats collection at much higher rates than required. + */ + unsigned long last_stat_jiffies; } timestamp; #ifdef CONFIG_DRM_I915_SELFTEST --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/uc/intel_guc_capture.c @@ -164,7 +164,7 @@ } /* List of lists */ -static struct __guc_mmio_reg_descr_group default_lists[] = { +static const struct __guc_mmio_reg_descr_group default_lists[] = { MAKE_REGLIST(default_global_regs, PF, GLOBAL, 0), MAKE_REGLIST(default_rc_class_regs, PF, ENGINE_CLASS, GUC_RENDER_CLASS), MAKE_REGLIST(xe_lpd_rc_inst_regs, PF, ENGINE_INSTANCE, GUC_RENDER_CLASS), --- linux-5.19.0.orig/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c +++ linux-5.19.0/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c @@ -1365,6 +1365,8 @@ unsigned long flags; ktime_t unused; + guc->timestamp.last_stat_jiffies = jiffies; + spin_lock_irqsave(&guc->timestamp.lock, flags); guc_update_pm_timestamp(guc, &unused); @@ -1436,7 +1438,23 @@ if (!guc_submission_initialized(guc)) return; - cancel_delayed_work(&guc->timestamp.work); + /* + * There is a race with suspend flow where the worker runs after suspend + * and causes an unclaimed register access warning. Cancel the worker + * synchronously here. + */ + cancel_delayed_work_sync(&guc->timestamp.work); + + /* + * Before parking, we should sample engine busyness stats if we need to. + * We can skip it if we are less than half a ping from the last time we + * sampled the busyness stats. + */ + if (guc->timestamp.last_stat_jiffies && + !time_after(jiffies, guc->timestamp.last_stat_jiffies + + (guc->timestamp.ping_delay / 2))) + return; + __update_guc_busyness_stats(guc); } @@ -4011,6 +4029,13 @@ xa_destroy(&guc->context_lookup); /* + * A reset might have occurred while we had a pending stalled request, + * so make sure we clean that up. + */ + guc->stalled_request = NULL; + guc->submission_stall_reason = STALL_NONE; + + /* * Some contexts might have been pinned before we enabled GuC * submission, so we need to add them to the GuC bookeeping. * Also, after a reset the of the GuC we want to make sure that the --- linux-5.19.0.orig/drivers/gpu/drm/i915/gvt/handlers.c +++ linux-5.19.0/drivers/gpu/drm/i915/gvt/handlers.c @@ -905,7 +905,7 @@ else if (FDI_RX_IMR_TO_PIPE(offset) != INVALID_INDEX) index = FDI_RX_IMR_TO_PIPE(offset); else { - gvt_vgpu_err("Unsupport registers %x\n", offset); + gvt_vgpu_err("Unsupported registers %x\n", offset); return -EINVAL; } --- linux-5.19.0.orig/drivers/gpu/drm/i915/gvt/kvmgt.c +++ linux-5.19.0/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -808,8 +808,6 @@ goto undo_iommu; } - kvm_get_kvm(vgpu->vfio_device.kvm); - ret = -EEXIST; if (__kvmgt_vgpu_exist(vgpu)) goto undo_iommu; @@ -821,6 +819,7 @@ vgpu->track_node.track_write = kvmgt_page_track_write; vgpu->track_node.track_flush_slot = kvmgt_page_track_flush_slot; + kvm_get_kvm(vgpu->vfio_device.kvm); kvm_page_track_register_notifier(vgpu->vfio_device.kvm, &vgpu->track_node); @@ -1651,6 +1650,9 @@ if (WARN_ON_ONCE(vgpu->attached)) return; + + vfio_unregister_group_dev(&vgpu->vfio_device); + vfio_uninit_group_dev(&vgpu->vfio_device); intel_gvt_destroy_vgpu(vgpu); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_drv.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_drv.h @@ -254,7 +254,7 @@ * List of objects which are pending destruction. */ struct llist_head free_list; - struct delayed_work free_work; + struct work_struct free_work; /** * Count of objects pending destructions. Used to skip needlessly * waiting on an RCU barrier if no objects are waiting to be freed. @@ -1415,7 +1415,7 @@ * armed the work again. */ while (atomic_read(&i915->mm.free_count)) { - flush_delayed_work(&i915->mm.free_work); + flush_work(&i915->mm.free_work); flush_delayed_work(&i915->bdev.wq); rcu_barrier(); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_gem.c +++ linux-5.19.0/drivers/gpu/drm/i915/i915_gem.c @@ -1191,7 +1191,8 @@ intel_uc_cleanup_firmwares(&to_gt(dev_priv)->uc); - i915_gem_drain_freed_objects(dev_priv); + /* Flush any outstanding work, including i915_gem_context.release_work. */ + i915_gem_drain_workqueue(dev_priv); drm_WARN_ON(&dev_priv->drm, !list_empty(&dev_priv->gem.contexts.list)); } --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_gem.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_gem.h @@ -54,9 +54,7 @@ } while(0) #define GEM_WARN_ON(expr) WARN_ON(expr) -#define GEM_DEBUG_DECL(var) var #define GEM_DEBUG_EXEC(expr) expr -#define GEM_DEBUG_BUG_ON(expr) GEM_BUG_ON(expr) #define GEM_DEBUG_WARN_ON(expr) GEM_WARN_ON(expr) #else @@ -66,9 +64,7 @@ #define GEM_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr) #define GEM_WARN_ON(expr) ({ unlikely(!!(expr)); }) -#define GEM_DEBUG_DECL(var) #define GEM_DEBUG_EXEC(expr) do { } while (0) -#define GEM_DEBUG_BUG_ON(expr) #define GEM_DEBUG_WARN_ON(expr) ({ BUILD_BUG_ON_INVALID(expr); 0; }) #endif --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_reg.h @@ -1849,14 +1849,14 @@ #define GT0_PERF_LIMIT_REASONS _MMIO(0x1381a8) #define GT0_PERF_LIMIT_REASONS_MASK 0xde3 -#define PROCHOT_MASK REG_BIT(1) -#define THERMAL_LIMIT_MASK REG_BIT(2) -#define RATL_MASK REG_BIT(6) -#define VR_THERMALERT_MASK REG_BIT(7) -#define VR_TDC_MASK REG_BIT(8) -#define POWER_LIMIT_4_MASK REG_BIT(9) -#define POWER_LIMIT_1_MASK REG_BIT(11) -#define POWER_LIMIT_2_MASK REG_BIT(12) +#define PROCHOT_MASK REG_BIT(0) +#define THERMAL_LIMIT_MASK REG_BIT(1) +#define RATL_MASK REG_BIT(5) +#define VR_THERMALERT_MASK REG_BIT(6) +#define VR_TDC_MASK REG_BIT(7) +#define POWER_LIMIT_4_MASK REG_BIT(8) +#define POWER_LIMIT_1_MASK REG_BIT(10) +#define POWER_LIMIT_2_MASK REG_BIT(11) #define CHV_CLK_CTL1 _MMIO(0x101100) #define VLV_CLK_CTL2 _MMIO(0x101104) --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_scatterlist.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_scatterlist.h @@ -9,7 +9,8 @@ #include #include -#include +#include +#include #include "i915_gem.h" @@ -127,19 +128,26 @@ return page_sizes; } -static inline unsigned int i915_sg_segment_size(void) +static inline unsigned int i915_sg_segment_size(struct device *dev) { - unsigned int size = swiotlb_max_segment(); + size_t max = min_t(size_t, UINT_MAX, dma_max_mapping_size(dev)); - if (size == 0) - size = UINT_MAX; - - size = rounddown(size, PAGE_SIZE); - /* swiotlb_max_segment_size can return 1 byte when it means one page. */ - if (size < PAGE_SIZE) - size = PAGE_SIZE; - - return size; + /* + * For Xen PV guests pages aren't contiguous in DMA (machine) address + * space. The DMA API takes care of that both in dma_alloc_* (by + * calling into the hypervisor to make the pages contiguous) and in + * dma_map_* (by bounce buffering). But i915 abuses ignores the + * coherency aspects of the DMA API and thus can't cope with bounce + * buffering actually happening, so add a hack here to force small + * allocations and mappings when running in PV mode on Xen. + * + * Note this will still break if bounce buffering is required for other + * reasons, like confidential computing hypervisors or PCIe root ports + * with addressing limitations. + */ + if (xen_pv_domain()) + max = PAGE_SIZE; + return round_down(max, PAGE_SIZE); } bool i915_sg_trim(struct sg_table *orig_st); --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_vma.c +++ linux-5.19.0/drivers/gpu/drm/i915/i915_vma.c @@ -537,8 +537,6 @@ bind_flags); } - set_bit(I915_BO_WAS_BOUND_BIT, &vma->obj->flags); - atomic_or(bind_flags, &vma->flags); return 0; } @@ -1301,6 +1299,19 @@ return err; } +void vma_invalidate_tlb(struct i915_address_space *vm, u32 *tlb) +{ + /* + * Before we release the pages that were bound by this vma, we + * must invalidate all the TLBs that may still have a reference + * back to our physical address. It only needs to be done once, + * so after updating the PTE to point away from the pages, record + * the most recent TLB invalidation seqno, and if we have not yet + * flushed the TLBs upon release, perform a full invalidation. + */ + WRITE_ONCE(*tlb, intel_gt_next_invalidate_tlb_full(vm->gt)); +} + static void __vma_put_pages(struct i915_vma *vma, unsigned int count) { /* We allocate under vma_get_pages, so beware the shrinker */ @@ -1859,12 +1870,13 @@ enum dma_resv_usage usage; int idx; - obj->read_domains = 0; if (flags & EXEC_OBJECT_WRITE) { usage = DMA_RESV_USAGE_WRITE; obj->write_domain = I915_GEM_DOMAIN_RENDER; + obj->read_domains = 0; } else { usage = DMA_RESV_USAGE_READ; + obj->write_domain = 0; } dma_fence_array_for_each(curr, idx, fence) @@ -1927,7 +1939,12 @@ vma->vm->skip_pte_rewrite; trace_i915_vma_unbind(vma); - unbind_fence = i915_vma_resource_unbind(vma_res); + if (async) + unbind_fence = i915_vma_resource_unbind(vma_res, + &vma->obj->mm.tlb); + else + unbind_fence = i915_vma_resource_unbind(vma_res, NULL); + vma->resource = NULL; atomic_and(~(I915_VMA_BIND_MASK | I915_VMA_ERROR | I915_VMA_GGTT_WRITE), @@ -1935,10 +1952,13 @@ i915_vma_detach(vma); - if (!async && unbind_fence) { - dma_fence_wait(unbind_fence, false); - dma_fence_put(unbind_fence); - unbind_fence = NULL; + if (!async) { + if (unbind_fence) { + dma_fence_wait(unbind_fence, false); + dma_fence_put(unbind_fence); + unbind_fence = NULL; + } + vma_invalidate_tlb(vma->vm, &vma->obj->mm.tlb); } /* --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_vma.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_vma.h @@ -213,6 +213,7 @@ u64 size, u64 alignment, u64 flags); void __i915_vma_set_map_and_fenceable(struct i915_vma *vma); void i915_vma_revoke_mmap(struct i915_vma *vma); +void vma_invalidate_tlb(struct i915_address_space *vm, u32 *tlb); struct dma_fence *__i915_vma_evict(struct i915_vma *vma, bool async); int __i915_vma_unbind(struct i915_vma *vma); int __must_check i915_vma_unbind(struct i915_vma *vma); --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_vma_resource.c +++ linux-5.19.0/drivers/gpu/drm/i915/i915_vma_resource.c @@ -223,10 +223,13 @@ * Return: A refcounted pointer to a dma-fence that signals when unbinding is * complete. */ -struct dma_fence *i915_vma_resource_unbind(struct i915_vma_resource *vma_res) +struct dma_fence *i915_vma_resource_unbind(struct i915_vma_resource *vma_res, + u32 *tlb) { struct i915_address_space *vm = vma_res->vm; + vma_res->tlb = tlb; + /* Reference for the sw fence */ i915_vma_resource_get(vma_res); --- linux-5.19.0.orig/drivers/gpu/drm/i915/i915_vma_resource.h +++ linux-5.19.0/drivers/gpu/drm/i915/i915_vma_resource.h @@ -67,6 +67,7 @@ * taken when the unbind is scheduled. * @skip_pte_rewrite: During ggtt suspend and vm takedown pte rewriting * needs to be skipped for unbind. + * @tlb: pointer for obj->mm.tlb, if async unbind. Otherwise, NULL * * The lifetime of a struct i915_vma_resource is from a binding request to * the actual possible asynchronous unbind has completed. @@ -119,6 +120,8 @@ bool immediate_unbind:1; bool needs_wakeref:1; bool skip_pte_rewrite:1; + + u32 *tlb; }; bool i915_vma_resource_hold(struct i915_vma_resource *vma_res, @@ -131,7 +134,8 @@ void i915_vma_resource_free(struct i915_vma_resource *vma_res); -struct dma_fence *i915_vma_resource_unbind(struct i915_vma_resource *vma_res); +struct dma_fence *i915_vma_resource_unbind(struct i915_vma_resource *vma_res, + u32 *tlb); void __i915_vma_resource_init(struct i915_vma_resource *vma_res); --- linux-5.19.0.orig/drivers/gpu/drm/i915/intel_gvt_mmio_table.c +++ linux-5.19.0/drivers/gpu/drm/i915/intel_gvt_mmio_table.c @@ -1074,7 +1074,8 @@ MMIO_D(GEN8_HDC_CHICKEN1); MMIO_D(GEN9_WM_CHICKEN3); - if (IS_KABYLAKE(dev_priv) || IS_COFFEELAKE(dev_priv)) + if (IS_KABYLAKE(dev_priv) || + IS_COFFEELAKE(dev_priv) || IS_COMETLAKE(dev_priv)) MMIO_D(GAMT_CHKN_BIT_REG); if (!IS_BROXTON(dev_priv)) MMIO_D(GEN9_CTX_PREEMPT_REG); --- linux-5.19.0.orig/drivers/gpu/drm/i915/intel_pm.c +++ linux-5.19.0/drivers/gpu/drm/i915/intel_pm.c @@ -5307,10 +5307,22 @@ modifier == I915_FORMAT_MOD_4_TILED || modifier == I915_FORMAT_MOD_Yf_TILED || modifier == I915_FORMAT_MOD_Y_TILED_CCS || - modifier == I915_FORMAT_MOD_Yf_TILED_CCS; + modifier == I915_FORMAT_MOD_Yf_TILED_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC || + modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS || + modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS || + modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC; wp->x_tiled = modifier == I915_FORMAT_MOD_X_TILED; wp->rc_surface = modifier == I915_FORMAT_MOD_Y_TILED_CCS || - modifier == I915_FORMAT_MOD_Yf_TILED_CCS; + modifier == I915_FORMAT_MOD_Yf_TILED_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS || + modifier == I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC || + modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS || + modifier == I915_FORMAT_MOD_4_TILED_DG2_MC_CCS || + modifier == I915_FORMAT_MOD_4_TILED_DG2_RC_CCS_CC; wp->is_planar = intel_format_info_is_yuv_semiplanar(format, modifier); wp->width = width; @@ -6560,7 +6572,10 @@ enum plane_id plane_id; u8 slices; - skl_pipe_wm_get_hw_state(crtc, &crtc_state->wm.skl.optimal); + memset(&crtc_state->wm.skl.optimal, 0, + sizeof(crtc_state->wm.skl.optimal)); + if (crtc_state->hw.active) + skl_pipe_wm_get_hw_state(crtc, &crtc_state->wm.skl.optimal); crtc_state->wm.skl.raw = crtc_state->wm.skl.optimal; memset(&dbuf_state->ddb[pipe], 0, sizeof(dbuf_state->ddb[pipe])); @@ -6571,6 +6586,9 @@ struct skl_ddb_entry *ddb_y = &crtc_state->wm.skl.plane_ddb_y[plane_id]; + if (!crtc_state->hw.active) + continue; + skl_ddb_get_hw_plane_state(dev_priv, crtc->pipe, plane_id, ddb, ddb_y); --- linux-5.19.0.orig/drivers/gpu/drm/i915/intel_runtime_pm.c +++ linux-5.19.0/drivers/gpu/drm/i915/intel_runtime_pm.c @@ -591,8 +591,15 @@ pm_runtime_use_autosuspend(kdev); } - /* Enable by default */ - pm_runtime_allow(kdev); + /* + * FIXME: Temp hammer to keep autosupend disable on lmem supported platforms. + * As per PCIe specs 5.3.1.4.1, all iomem read write request over a PCIe + * function will be unsupported in case PCIe endpoint function is in D3. + * Let's keep i915 autosuspend control 'on' till we fix all known issue + * with lmem access in D3. + */ + if (!IS_DGFX(i915)) + pm_runtime_allow(kdev); /* * The core calls the driver load handler with an RPM reference held. --- linux-5.19.0.orig/drivers/gpu/drm/imx/dcss/dcss-kms.c +++ linux-5.19.0/drivers/gpu/drm/imx/dcss/dcss-kms.c @@ -142,8 +142,6 @@ drm_kms_helper_poll_init(drm); - drm_bridge_connector_enable_hpd(kms->connector); - ret = drm_dev_register(drm, 0); if (ret) goto cleanup_crtc; --- linux-5.19.0.orig/drivers/gpu/drm/imx/imx-tve.c +++ linux-5.19.0/drivers/gpu/drm/imx/imx-tve.c @@ -217,8 +217,9 @@ return ret; } -static int imx_tve_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +imx_tve_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { struct imx_tve *tve = con_to_tve(connector); unsigned long rate; --- linux-5.19.0.orig/drivers/gpu/drm/ingenic/ingenic-drm-drv.c +++ linux-5.19.0/drivers/gpu/drm/ingenic/ingenic-drm-drv.c @@ -69,6 +69,7 @@ bool map_noncoherent; bool use_extended_hwdesc; bool plane_f0_not_working; + u32 max_burst; unsigned int max_width, max_height; const u32 *formats_f0, *formats_f1; unsigned int num_formats_f0, num_formats_f1; @@ -318,8 +319,9 @@ regmap_write(priv->map, JZ_REG_LCD_REV, mode->htotal << 16); } - regmap_set_bits(priv->map, JZ_REG_LCD_CTRL, - JZ_LCD_CTRL_OFUP | JZ_LCD_CTRL_BURST_16); + regmap_update_bits(priv->map, JZ_REG_LCD_CTRL, + JZ_LCD_CTRL_OFUP | JZ_LCD_CTRL_BURST_MASK, + JZ_LCD_CTRL_OFUP | priv->soc_info->max_burst); /* * IPU restart - specify how much time the LCDC will wait before @@ -1518,6 +1520,7 @@ .map_noncoherent = false, .max_width = 800, .max_height = 600, + .max_burst = JZ_LCD_CTRL_BURST_16, .formats_f1 = jz4740_formats, .num_formats_f1 = ARRAY_SIZE(jz4740_formats), /* JZ4740 has only one plane */ @@ -1529,6 +1532,7 @@ .map_noncoherent = false, .max_width = 800, .max_height = 600, + .max_burst = JZ_LCD_CTRL_BURST_16, .formats_f1 = jz4725b_formats_f1, .num_formats_f1 = ARRAY_SIZE(jz4725b_formats_f1), .formats_f0 = jz4725b_formats_f0, @@ -1541,6 +1545,7 @@ .map_noncoherent = true, .max_width = 1280, .max_height = 720, + .max_burst = JZ_LCD_CTRL_BURST_64, .formats_f1 = jz4770_formats_f1, .num_formats_f1 = ARRAY_SIZE(jz4770_formats_f1), .formats_f0 = jz4770_formats_f0, @@ -1555,6 +1560,7 @@ .plane_f0_not_working = true, /* REVISIT */ .max_width = 4096, .max_height = 2048, + .max_burst = JZ_LCD_CTRL_BURST_64, .formats_f1 = jz4770_formats_f1, .num_formats_f1 = ARRAY_SIZE(jz4770_formats_f1), .formats_f0 = jz4770_formats_f0, --- linux-5.19.0.orig/drivers/gpu/drm/ingenic/ingenic-drm.h +++ linux-5.19.0/drivers/gpu/drm/ingenic/ingenic-drm.h @@ -106,6 +106,9 @@ #define JZ_LCD_CTRL_BURST_4 (0x0 << 28) #define JZ_LCD_CTRL_BURST_8 (0x1 << 28) #define JZ_LCD_CTRL_BURST_16 (0x2 << 28) +#define JZ_LCD_CTRL_BURST_32 (0x3 << 28) +#define JZ_LCD_CTRL_BURST_64 (0x4 << 28) +#define JZ_LCD_CTRL_BURST_MASK (0x7 << 28) #define JZ_LCD_CTRL_RGB555 BIT(27) #define JZ_LCD_CTRL_OFUP BIT(26) #define JZ_LCD_CTRL_FRC_GRAYSCALE_16 (0x0 << 24) --- linux-5.19.0.orig/drivers/gpu/drm/mcde/mcde_dsi.c +++ linux-5.19.0/drivers/gpu/drm/mcde/mcde_dsi.c @@ -1111,6 +1111,7 @@ bridge = of_drm_find_bridge(child); if (!bridge) { dev_err(dev, "failed to find bridge\n"); + of_node_put(child); return -EINVAL; } } --- linux-5.19.0.orig/drivers/gpu/drm/mediatek/mtk_dpi.c +++ linux-5.19.0/drivers/gpu/drm/mediatek/mtk_dpi.c @@ -54,13 +54,7 @@ }; enum mtk_dpi_out_color_format { - MTK_DPI_COLOR_FORMAT_RGB, - MTK_DPI_COLOR_FORMAT_RGB_FULL, - MTK_DPI_COLOR_FORMAT_YCBCR_444, - MTK_DPI_COLOR_FORMAT_YCBCR_422, - MTK_DPI_COLOR_FORMAT_XV_YCC, - MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL, - MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL + MTK_DPI_COLOR_FORMAT_RGB }; struct mtk_dpi { @@ -364,24 +358,11 @@ static void mtk_dpi_config_color_format(struct mtk_dpi *dpi, enum mtk_dpi_out_color_format format) { - if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_444) || - (format == MTK_DPI_COLOR_FORMAT_YCBCR_444_FULL)) { - mtk_dpi_config_yuv422_enable(dpi, false); - mtk_dpi_config_csc_enable(dpi, true); - mtk_dpi_config_swap_input(dpi, false); - mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_BGR); - } else if ((format == MTK_DPI_COLOR_FORMAT_YCBCR_422) || - (format == MTK_DPI_COLOR_FORMAT_YCBCR_422_FULL)) { - mtk_dpi_config_yuv422_enable(dpi, true); - mtk_dpi_config_csc_enable(dpi, true); - mtk_dpi_config_swap_input(dpi, true); - mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB); - } else { - mtk_dpi_config_yuv422_enable(dpi, false); - mtk_dpi_config_csc_enable(dpi, false); - mtk_dpi_config_swap_input(dpi, false); - mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB); - } + /* only support RGB888 */ + mtk_dpi_config_yuv422_enable(dpi, false); + mtk_dpi_config_csc_enable(dpi, false); + mtk_dpi_config_swap_input(dpi, false); + mtk_dpi_config_channel_swap(dpi, MTK_DPI_OUT_CHANNEL_SWAP_RGB); } static void mtk_dpi_dual_edge(struct mtk_dpi *dpi) @@ -406,9 +387,6 @@ 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); @@ -433,10 +411,6 @@ goto err_pixel; } - if (dpi->pinctrl && dpi->pins_dpi) - pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi); - - mtk_dpi_enable(dpi); return 0; err_pixel: @@ -650,14 +624,21 @@ struct mtk_dpi *dpi = bridge_to_dpi(bridge); mtk_dpi_power_off(dpi); + + if (dpi->pinctrl && dpi->pins_gpio) + pinctrl_select_state(dpi->pinctrl, dpi->pins_gpio); } static void mtk_dpi_bridge_enable(struct drm_bridge *bridge) { struct mtk_dpi *dpi = bridge_to_dpi(bridge); + if (dpi->pinctrl && dpi->pins_dpi) + pinctrl_select_state(dpi->pinctrl, dpi->pins_dpi); + mtk_dpi_power_on(dpi); mtk_dpi_set_display_mode(dpi, &dpi->mode); + mtk_dpi_enable(dpi); } static enum drm_mode_status --- linux-5.19.0.orig/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c +++ linux-5.19.0/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.c @@ -151,7 +151,7 @@ { struct mtk_ddp_comp_dev *priv = dev_get_drvdata(dev); - mtk_ddp_write(cmdq_pkt, h << 16 | w, &priv->cmdq_reg, priv->regs, DISP_REG_DITHER_SIZE); + mtk_ddp_write(cmdq_pkt, w << 16 | h, &priv->cmdq_reg, priv->regs, DISP_REG_DITHER_SIZE); mtk_ddp_write(cmdq_pkt, DITHER_RELAY_MODE, &priv->cmdq_reg, priv->regs, DISP_REG_DITHER_CFG); mtk_dither_set_common(priv->regs, &priv->cmdq_reg, bpc, DISP_REG_DITHER_CFG, --- linux-5.19.0.orig/drivers/gpu/drm/mediatek/mtk_dsi.c +++ linux-5.19.0/drivers/gpu/drm/mediatek/mtk_dsi.c @@ -203,6 +203,7 @@ struct mtk_phy_timing phy_timing; int refcount; bool enabled; + bool lanes_ready; u32 irq_data; wait_queue_head_t irq_wait_queue; const struct mtk_dsi_driver_data *driver_data; @@ -661,18 +662,11 @@ mtk_dsi_reset_engine(dsi); mtk_dsi_phy_timconfig(dsi); - mtk_dsi_rxtx_control(dsi); - usleep_range(30, 100); - mtk_dsi_reset_dphy(dsi); mtk_dsi_ps_control_vact(dsi); mtk_dsi_set_vm_cmd(dsi); mtk_dsi_config_vdo_timing(dsi); mtk_dsi_set_interrupt_enable(dsi); - mtk_dsi_clk_ulp_mode_leave(dsi); - mtk_dsi_lane0_ulp_mode_leave(dsi); - mtk_dsi_clk_hs_mode(dsi, 0); - return 0; err_disable_engine_clk: clk_disable_unprepare(dsi->engine_clk); @@ -704,6 +698,8 @@ mtk_dsi_reset_engine(dsi); mtk_dsi_lane0_ulp_mode_enter(dsi); mtk_dsi_clk_ulp_mode_enter(dsi); + /* set the lane number as 0 to pull down mipi */ + writel(0, dsi->regs + DSI_TXRX_CTRL); mtk_dsi_disable(dsi); @@ -711,21 +707,31 @@ clk_disable_unprepare(dsi->digital_clk); phy_power_off(dsi->phy); + + dsi->lanes_ready = false; } -static void mtk_output_dsi_enable(struct mtk_dsi *dsi) +static void mtk_dsi_lane_ready(struct mtk_dsi *dsi) { - int ret; + if (!dsi->lanes_ready) { + dsi->lanes_ready = true; + mtk_dsi_rxtx_control(dsi); + usleep_range(30, 100); + mtk_dsi_reset_dphy(dsi); + mtk_dsi_clk_ulp_mode_leave(dsi); + mtk_dsi_lane0_ulp_mode_leave(dsi); + mtk_dsi_clk_hs_mode(dsi, 0); + msleep(20); + /* The reaction time after pulling up the mipi signal for dsi_rx */ + } +} +static void mtk_output_dsi_enable(struct mtk_dsi *dsi) +{ if (dsi->enabled) return; - ret = mtk_dsi_poweron(dsi); - if (ret < 0) { - DRM_ERROR("failed to power on dsi\n"); - return; - } - + mtk_dsi_lane_ready(dsi); mtk_dsi_set_mode(dsi); mtk_dsi_clk_hs_mode(dsi, 1); @@ -739,8 +745,6 @@ if (!dsi->enabled) return; - mtk_dsi_poweroff(dsi); - dsi->enabled = false; } @@ -763,24 +767,53 @@ drm_display_mode_to_videomode(adjusted, &dsi->vm); } -static void mtk_dsi_bridge_disable(struct drm_bridge *bridge) +static void mtk_dsi_bridge_atomic_disable(struct drm_bridge *bridge, + struct drm_bridge_state *old_bridge_state) { struct mtk_dsi *dsi = bridge_to_dsi(bridge); mtk_output_dsi_disable(dsi); } -static void mtk_dsi_bridge_enable(struct drm_bridge *bridge) +static void mtk_dsi_bridge_atomic_enable(struct drm_bridge *bridge, + struct drm_bridge_state *old_bridge_state) { struct mtk_dsi *dsi = bridge_to_dsi(bridge); + if (dsi->refcount == 0) + return; + mtk_output_dsi_enable(dsi); } +static void mtk_dsi_bridge_atomic_pre_enable(struct drm_bridge *bridge, + struct drm_bridge_state *old_bridge_state) +{ + struct mtk_dsi *dsi = bridge_to_dsi(bridge); + int ret; + + ret = mtk_dsi_poweron(dsi); + if (ret < 0) + DRM_ERROR("failed to power on dsi\n"); +} + +static void mtk_dsi_bridge_atomic_post_disable(struct drm_bridge *bridge, + struct drm_bridge_state *old_bridge_state) +{ + struct mtk_dsi *dsi = bridge_to_dsi(bridge); + + mtk_dsi_poweroff(dsi); +} + static const struct drm_bridge_funcs mtk_dsi_bridge_funcs = { .attach = mtk_dsi_bridge_attach, - .disable = mtk_dsi_bridge_disable, - .enable = mtk_dsi_bridge_enable, + .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, + .atomic_disable = mtk_dsi_bridge_atomic_disable, + .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, + .atomic_enable = mtk_dsi_bridge_atomic_enable, + .atomic_pre_enable = mtk_dsi_bridge_atomic_pre_enable, + .atomic_post_disable = mtk_dsi_bridge_atomic_post_disable, + .atomic_reset = drm_atomic_helper_bridge_reset, .mode_set = mtk_dsi_bridge_mode_set, }; @@ -1000,6 +1033,8 @@ if (MTK_DSI_HOST_IS_READ(msg->type)) irq_flag |= LPRX_RD_RDY_INT_FLAG; + mtk_dsi_lane_ready(dsi); + ret = mtk_dsi_host_send_cmd(dsi, msg, irq_flag); if (ret) goto restore_dsi_mode; --- linux-5.19.0.orig/drivers/gpu/drm/mediatek/mtk_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/mediatek/mtk_hdmi.c @@ -1203,9 +1203,10 @@ return mtk_hdmi_update_plugged_status(hdmi); } -static int mtk_hdmi_bridge_mode_valid(struct drm_bridge *bridge, - const struct drm_display_info *info, - const struct drm_display_mode *mode) +static enum drm_mode_status +mtk_hdmi_bridge_mode_valid(struct drm_bridge *bridge, + const struct drm_display_info *info, + const struct drm_display_mode *mode) { struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge); struct drm_bridge *next_bridge; --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_drv.c +++ linux-5.19.0/drivers/gpu/drm/meson/meson_drv.c @@ -115,8 +115,11 @@ for_each_endpoint_of_node(dev->of_node, ep) { /* If the endpoint node exists, consider it enabled */ remote = of_graph_get_remote_port(ep); - if (remote) + if (remote) { + of_node_put(remote); + of_node_put(ep); return true; + } } return false; @@ -385,10 +388,14 @@ drm_dev_unregister(drm); drm_kms_helper_poll_fini(drm); drm_atomic_helper_shutdown(drm); - component_unbind_all(dev, drm); free_irq(priv->vsync_irq, drm); drm_dev_put(drm); + meson_encoder_hdmi_remove(priv); + meson_encoder_cvbs_remove(priv); + + component_unbind_all(dev, drm); + if (priv->afbcd.ops) priv->afbcd.ops->exit(priv); } @@ -490,6 +497,13 @@ return 0; }; +static int meson_drv_remove(struct platform_device *pdev) +{ + component_master_del(&pdev->dev, &meson_drv_master_ops); + + return 0; +} + static struct meson_drm_match_data meson_drm_gxbb_data = { .compat = VPU_COMPATIBLE_GXBB, }; @@ -527,6 +541,7 @@ static struct platform_driver meson_drm_platform_driver = { .probe = meson_drv_probe, + .remove = meson_drv_remove, .shutdown = meson_drv_shutdown, .driver = { .name = "meson-drm", --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_drv.h +++ linux-5.19.0/drivers/gpu/drm/meson/meson_drv.h @@ -25,6 +25,12 @@ VPU_COMPATIBLE_G12A = 3, }; +enum { + MESON_ENC_CVBS = 0, + MESON_ENC_HDMI, + MESON_ENC_LAST, +}; + struct meson_drm_match_data { enum vpu_compatible compat; struct meson_afbcd_ops *afbcd_ops; @@ -51,6 +57,7 @@ struct drm_crtc *crtc; struct drm_plane *primary_plane; struct drm_plane *overlay_plane; + void *encoders[MESON_ENC_LAST]; const struct meson_drm_soc_limits *limits; --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_encoder_cvbs.c +++ linux-5.19.0/drivers/gpu/drm/meson/meson_encoder_cvbs.c @@ -238,6 +238,7 @@ } meson_encoder_cvbs->next_bridge = of_drm_find_bridge(remote); + of_node_put(remote); if (!meson_encoder_cvbs->next_bridge) { dev_err(priv->dev, "Failed to find CVBS Connector bridge\n"); return -EPROBE_DEFER; @@ -280,5 +281,18 @@ } drm_connector_attach_encoder(connector, &meson_encoder_cvbs->encoder); + priv->encoders[MESON_ENC_CVBS] = meson_encoder_cvbs; + return 0; } + +void meson_encoder_cvbs_remove(struct meson_drm *priv) +{ + struct meson_encoder_cvbs *meson_encoder_cvbs; + + if (priv->encoders[MESON_ENC_CVBS]) { + meson_encoder_cvbs = priv->encoders[MESON_ENC_CVBS]; + drm_bridge_remove(&meson_encoder_cvbs->bridge); + drm_bridge_remove(meson_encoder_cvbs->next_bridge); + } +} --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_encoder_cvbs.h +++ linux-5.19.0/drivers/gpu/drm/meson/meson_encoder_cvbs.h @@ -25,5 +25,6 @@ extern struct meson_cvbs_mode meson_cvbs_modes[MESON_CVBS_MODES_COUNT]; int meson_encoder_cvbs_init(struct meson_drm *priv); +void meson_encoder_cvbs_remove(struct meson_drm *priv); #endif /* __MESON_VENC_CVBS_H */ --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_encoder_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/meson/meson_encoder_hdmi.c @@ -365,7 +365,8 @@ meson_encoder_hdmi->next_bridge = of_drm_find_bridge(remote); if (!meson_encoder_hdmi->next_bridge) { dev_err(priv->dev, "Failed to find HDMI transceiver bridge\n"); - return -EPROBE_DEFER; + ret = -EPROBE_DEFER; + goto err_put_node; } /* HDMI Encoder Bridge */ @@ -383,7 +384,7 @@ DRM_MODE_ENCODER_TMDS); if (ret) { dev_err(priv->dev, "Failed to init HDMI encoder: %d\n", ret); - return ret; + goto err_put_node; } meson_encoder_hdmi->encoder.possible_crtcs = BIT(0); @@ -393,7 +394,7 @@ DRM_BRIDGE_ATTACH_NO_CONNECTOR); if (ret) { dev_err(priv->dev, "Failed to attach bridge: %d\n", ret); - return ret; + goto err_put_node; } /* Initialize & attach Bridge Connector */ @@ -401,7 +402,8 @@ &meson_encoder_hdmi->encoder); if (IS_ERR(meson_encoder_hdmi->connector)) { dev_err(priv->dev, "Unable to create HDMI bridge connector\n"); - return PTR_ERR(meson_encoder_hdmi->connector); + ret = PTR_ERR(meson_encoder_hdmi->connector); + goto err_put_node; } drm_connector_attach_encoder(meson_encoder_hdmi->connector, &meson_encoder_hdmi->encoder); @@ -428,6 +430,7 @@ meson_encoder_hdmi->connector->ycbcr_420_allowed = true; pdev = of_find_device_by_node(remote); + of_node_put(remote); if (pdev) { struct cec_connector_info conn_info; struct cec_notifier *notifier; @@ -435,13 +438,32 @@ cec_fill_conn_info_from_drm(&conn_info, meson_encoder_hdmi->connector); notifier = cec_notifier_conn_register(&pdev->dev, NULL, &conn_info); - if (!notifier) + if (!notifier) { + put_device(&pdev->dev); return -ENOMEM; + } meson_encoder_hdmi->cec_notifier = notifier; } + priv->encoders[MESON_ENC_HDMI] = meson_encoder_hdmi; + dev_dbg(priv->dev, "HDMI encoder initialized\n"); return 0; + +err_put_node: + of_node_put(remote); + return ret; +} + +void meson_encoder_hdmi_remove(struct meson_drm *priv) +{ + struct meson_encoder_hdmi *meson_encoder_hdmi; + + if (priv->encoders[MESON_ENC_HDMI]) { + meson_encoder_hdmi = priv->encoders[MESON_ENC_HDMI]; + drm_bridge_remove(&meson_encoder_hdmi->bridge); + drm_bridge_remove(meson_encoder_hdmi->next_bridge); + } } --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_encoder_hdmi.h +++ linux-5.19.0/drivers/gpu/drm/meson/meson_encoder_hdmi.h @@ -8,5 +8,6 @@ #define __MESON_ENCODER_HDMI_H int meson_encoder_hdmi_init(struct meson_drm *priv); +void meson_encoder_hdmi_remove(struct meson_drm *priv); #endif /* __MESON_ENCODER_HDMI_H */ --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_plane.c +++ linux-5.19.0/drivers/gpu/drm/meson/meson_plane.c @@ -168,7 +168,7 @@ /* Enable OSD and BLK0, set max global alpha */ priv->viu.osd1_ctrl_stat = OSD_ENABLE | - (0xFF << OSD_GLOBAL_ALPHA_SHIFT) | + (0x100 << OSD_GLOBAL_ALPHA_SHIFT) | OSD_BLK0_ENABLE; priv->viu.osd1_ctrl_stat2 = readl(priv->io_base + --- linux-5.19.0.orig/drivers/gpu/drm/meson/meson_viu.c +++ linux-5.19.0/drivers/gpu/drm/meson/meson_viu.c @@ -94,7 +94,7 @@ priv->io_base + _REG(VPP_WRAP_OSD1_MATRIX_COEF11_12)); writel(((m[9] & 0x1fff) << 16) | (m[10] & 0x1fff), priv->io_base + _REG(VPP_WRAP_OSD1_MATRIX_COEF20_21)); - writel((m[11] & 0x1fff) << 16, + writel((m[11] & 0x1fff), priv->io_base + _REG(VPP_WRAP_OSD1_MATRIX_COEF22)); writel(((m[18] & 0xfff) << 16) | (m[19] & 0xfff), @@ -469,17 +469,17 @@ priv->io_base + _REG(VD2_IF0_LUMA_FIFO_SIZE)); if (meson_vpu_is_compatible(priv, VPU_COMPATIBLE_G12A)) { - writel_relaxed(VIU_OSD_BLEND_REORDER(0, 1) | - VIU_OSD_BLEND_REORDER(1, 0) | - VIU_OSD_BLEND_REORDER(2, 0) | - VIU_OSD_BLEND_REORDER(3, 0) | - VIU_OSD_BLEND_DIN_EN(1) | - VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 | - VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 | - VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 | - VIU_OSD_BLEND_BLEN2_PREMULT_EN(1) | - VIU_OSD_BLEND_HOLD_LINES(4), - priv->io_base + _REG(VIU_OSD_BLEND_CTRL)); + u32 val = (u32)VIU_OSD_BLEND_REORDER(0, 1) | + (u32)VIU_OSD_BLEND_REORDER(1, 0) | + (u32)VIU_OSD_BLEND_REORDER(2, 0) | + (u32)VIU_OSD_BLEND_REORDER(3, 0) | + (u32)VIU_OSD_BLEND_DIN_EN(1) | + (u32)VIU_OSD_BLEND1_DIN3_BYPASS_TO_DOUT1 | + (u32)VIU_OSD_BLEND1_DOUT_BYPASS_TO_BLEND2 | + (u32)VIU_OSD_BLEND_DIN0_BYPASS_TO_DOUT0 | + (u32)VIU_OSD_BLEND_BLEN2_PREMULT_EN(1) | + (u32)VIU_OSD_BLEND_HOLD_LINES(4); + writel_relaxed(val, priv->io_base + _REG(VIU_OSD_BLEND_CTRL)); writel_relaxed(OSD_BLEND_PATH_SEL_ENABLE, priv->io_base + _REG(OSD1_BLEND_SRC_CTRL)); --- linux-5.19.0.orig/drivers/gpu/drm/mgag200/mgag200_mode.c +++ linux-5.19.0/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -32,57 +32,78 @@ * This file contains setup code for the CRTC. */ -static void mga_crtc_load_lut(struct drm_crtc *crtc) +static void mgag200_crtc_set_gamma_linear(struct mga_device *mdev, + const struct drm_format_info *format) { - struct drm_device *dev = crtc->dev; - struct mga_device *mdev = to_mga_device(dev); - struct drm_framebuffer *fb; - u16 *r_ptr, *g_ptr, *b_ptr; int i; - if (!crtc->enabled) - return; - - if (!mdev->display_pipe.plane.state) - return; + WREG8(DAC_INDEX + MGA1064_INDEX, 0); - fb = mdev->display_pipe.plane.state->fb; + switch (format->format) { + case DRM_FORMAT_RGB565: + /* Use better interpolation, to take 32 values from 0 to 255 */ + for (i = 0; i < MGAG200_LUT_SIZE / 8; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, i * 8 + i / 4); + WREG8(DAC_INDEX + MGA1064_COL_PAL, i * 4 + i / 16); + WREG8(DAC_INDEX + MGA1064_COL_PAL, i * 8 + i / 4); + } + /* Green has one more bit, so add padding with 0 for red and blue. */ + for (i = MGAG200_LUT_SIZE / 8; i < MGAG200_LUT_SIZE / 4; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, 0); + WREG8(DAC_INDEX + MGA1064_COL_PAL, i * 4 + i / 16); + WREG8(DAC_INDEX + MGA1064_COL_PAL, 0); + } + break; + case DRM_FORMAT_RGB888: + case DRM_FORMAT_XRGB8888: + for (i = 0; i < MGAG200_LUT_SIZE; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, i); + WREG8(DAC_INDEX + MGA1064_COL_PAL, i); + WREG8(DAC_INDEX + MGA1064_COL_PAL, i); + } + break; + default: + drm_warn_once(&mdev->base, "Unsupported format %p4cc for gamma correction\n", + &format->format); + break; + } +} - r_ptr = crtc->gamma_store; - g_ptr = r_ptr + crtc->gamma_size; - b_ptr = g_ptr + crtc->gamma_size; +static void mgag200_crtc_set_gamma(struct mga_device *mdev, + const struct drm_format_info *format, + struct drm_color_lut *lut) +{ + int i; WREG8(DAC_INDEX + MGA1064_INDEX, 0); - if (fb && fb->format->cpp[0] * 8 == 16) { - int inc = (fb->format->depth == 15) ? 8 : 4; - u8 r, b; - for (i = 0; i < MGAG200_LUT_SIZE; i += inc) { - if (fb->format->depth == 16) { - if (i > (MGAG200_LUT_SIZE >> 1)) { - r = b = 0; - } else { - r = *r_ptr++ >> 8; - b = *b_ptr++ >> 8; - r_ptr++; - b_ptr++; - } - } else { - r = *r_ptr++ >> 8; - b = *b_ptr++ >> 8; - } - /* VGA registers */ - WREG8(DAC_INDEX + MGA1064_COL_PAL, r); - WREG8(DAC_INDEX + MGA1064_COL_PAL, *g_ptr++ >> 8); - WREG8(DAC_INDEX + MGA1064_COL_PAL, b); + switch (format->format) { + case DRM_FORMAT_RGB565: + /* Use better interpolation, to take 32 values from lut[0] to lut[255] */ + for (i = 0; i < MGAG200_LUT_SIZE / 8; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i * 8 + i / 4].red >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i * 4 + i / 16].green >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i * 8 + i / 4].blue >> 8); } - return; - } - for (i = 0; i < MGAG200_LUT_SIZE; i++) { - /* VGA registers */ - WREG8(DAC_INDEX + MGA1064_COL_PAL, *r_ptr++ >> 8); - WREG8(DAC_INDEX + MGA1064_COL_PAL, *g_ptr++ >> 8); - WREG8(DAC_INDEX + MGA1064_COL_PAL, *b_ptr++ >> 8); + /* Green has one more bit, so add padding with 0 for red and blue. */ + for (i = MGAG200_LUT_SIZE / 8; i < MGAG200_LUT_SIZE / 4; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, 0); + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i * 4 + i / 16].green >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, 0); + } + break; + case DRM_FORMAT_RGB888: + case DRM_FORMAT_XRGB8888: + for (i = 0; i < MGAG200_LUT_SIZE; i++) { + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i].red >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i].green >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, lut[i].blue >> 8); + } + break; + default: + drm_warn_once(&mdev->base, "Unsupported format %p4cc for gamma correction\n", + &format->format); + break; } } @@ -667,16 +688,26 @@ static int mga_vga_get_modes(struct drm_connector *connector) { + struct mga_device *mdev = to_mga_device(connector->dev); struct mga_connector *mga_connector = to_mga_connector(connector); struct edid *edid; int ret = 0; + /* + * Protect access to I/O registers from concurrent modesetting + * by acquiring the I/O-register lock. + */ + mutex_lock(&mdev->rmmio_lock); + edid = drm_get_edid(connector, &mga_connector->i2c->adapter); if (edid) { drm_connector_update_edid_property(connector, edid); ret = drm_add_edid_modes(connector, edid); kfree(edid); } + + mutex_unlock(&mdev->rmmio_lock); + return ret; } @@ -855,10 +886,6 @@ dst += drm_fb_clip_offset(fb->pitches[0], fb->format, clip); drm_fb_memcpy_toio(dst, fb->pitches[0], vmap, fb, clip); - - /* Always scanout image at VRAM offset 0 */ - mgag200_set_startadd(mdev, (u32)0); - mgag200_set_offset(mdev, fb); } static void @@ -908,11 +935,19 @@ if (mdev->type == G200_WB || mdev->type == G200_EW3) mgag200_g200wb_release_bmc(mdev); - mga_crtc_load_lut(crtc); + if (crtc_state->gamma_lut) + mgag200_crtc_set_gamma(mdev, fb->format, crtc_state->gamma_lut->data); + else + mgag200_crtc_set_gamma_linear(mdev, fb->format); + mgag200_enable_display(mdev); mgag200_handle_damage(mdev, fb, &fullscreen, &shadow_plane_state->data[0]); + /* Always scanout image at VRAM offset 0 */ + mgag200_set_startadd(mdev, (u32)0); + mgag200_set_offset(mdev, fb); + mutex_unlock(&mdev->rmmio_lock); } @@ -955,6 +990,14 @@ return ret; } + if (crtc_state->color_mgmt_changed && crtc_state->gamma_lut) { + if (crtc_state->gamma_lut->length != + MGAG200_LUT_SIZE * sizeof(struct drm_color_lut)) { + drm_err(dev, "Wrong size for gamma_lut %zu\n", + crtc_state->gamma_lut->length); + return -EINVAL; + } + } return 0; } @@ -963,20 +1006,30 @@ struct drm_plane_state *old_state) { struct drm_plane *plane = &pipe->plane; + struct drm_crtc *crtc = &pipe->crtc; struct drm_device *dev = plane->dev; struct mga_device *mdev = to_mga_device(dev); struct drm_plane_state *state = plane->state; struct drm_shadow_plane_state *shadow_plane_state = to_drm_shadow_plane_state(state); struct drm_framebuffer *fb = state->fb; struct drm_rect damage; + struct drm_atomic_helper_damage_iter iter; if (!fb) return; mutex_lock(&mdev->rmmio_lock); - if (drm_atomic_helper_damage_merged(old_state, state, &damage)) + if (crtc->state->color_mgmt_changed && crtc->state->gamma_lut) + mgag200_crtc_set_gamma(mdev, fb->format, crtc->state->gamma_lut->data); + + drm_atomic_helper_damage_iter_init(&iter, old_state, state); + drm_atomic_for_each_plane_damage(&iter, &damage) { mgag200_handle_damage(mdev, fb, &damage, &shadow_plane_state->data[0]); + } + /* Always scanout image at VRAM offset 0 */ + mgag200_set_startadd(mdev, (u32)0); + mgag200_set_offset(mdev, fb); mutex_unlock(&mdev->rmmio_lock); } @@ -1121,9 +1174,13 @@ return ret; } - /* FIXME: legacy gamma tables; convert to CRTC state */ + drm_plane_enable_fb_damage_clips(&pipe->plane); + + /* FIXME: legacy gamma tables, but atomic gamma doesn't work without */ drm_mode_crtc_set_gamma_size(&pipe->crtc, MGAG200_LUT_SIZE); + drm_crtc_enable_color_mgmt(&pipe->crtc, 0, false, MGAG200_LUT_SIZE); + drm_mode_config_reset(dev); return 0; --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/a5xx_gpu.c +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/a5xx_gpu.c @@ -1666,18 +1666,10 @@ { u64 busy_cycles; - /* Only read the gpu busy if the hardware is already active */ - if (pm_runtime_get_if_in_use(&gpu->pdev->dev) == 0) { - *out_sample_rate = 1; - return 0; - } - busy_cycles = gpu_read64(gpu, REG_A5XX_RBBM_PERFCTR_RBBM_0_LO, REG_A5XX_RBBM_PERFCTR_RBBM_0_HI); *out_sample_rate = clk_get_rate(gpu->core_clk); - pm_runtime_put(&gpu->pdev->dev); - return busy_cycles; } --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gmu.c +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/a6xx_gmu.c @@ -102,7 +102,8 @@ A6XX_GMU_SPTPRAC_PWR_CLK_STATUS_GX_HM_CLK_OFF)); } -void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp) +void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp, + bool suspended) { struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu); @@ -127,15 +128,16 @@ /* * This can get called from devfreq while the hardware is idle. Don't - * bring up the power if it isn't already active + * bring up the power if it isn't already active. All we're doing here + * is updating the frequency so that when we come back online we're at + * the right rate. */ - if (pm_runtime_get_if_in_use(gmu->dev) == 0) + if (suspended) return; if (!gmu->legacy) { a6xx_hfi_set_freq(gmu, perf_index); dev_pm_opp_set_opp(&gpu->pdev->dev, opp); - pm_runtime_put(gmu->dev); return; } @@ -159,7 +161,6 @@ dev_err(gmu->dev, "GMU set GPU frequency error: %d\n", ret); dev_pm_opp_set_opp(&gpu->pdev->dev, opp); - pm_runtime_put(gmu->dev); } unsigned long a6xx_gmu_get_freq(struct msm_gpu *gpu) @@ -895,7 +896,7 @@ return; gmu->freq = 0; /* so a6xx_gmu_set_freq() doesn't exit early */ - a6xx_gmu_set_freq(gpu, gpu_opp); + a6xx_gmu_set_freq(gpu, gpu_opp, false); dev_pm_opp_put(gpu_opp); } --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -1658,27 +1658,21 @@ /* 19.2MHz */ *out_sample_rate = 19200000; - /* 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); - - pm_runtime_put(a6xx_gpu->gmu.dev); - return busy_cycles; } -static void a6xx_gpu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp) +static void a6xx_gpu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp, + bool suspended) { struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu); struct a6xx_gpu *a6xx_gpu = to_a6xx_gpu(adreno_gpu); mutex_lock(&a6xx_gpu->gmu.lock); - a6xx_gmu_set_freq(gpu, opp); + a6xx_gmu_set_freq(gpu, opp, suspended); mutex_unlock(&a6xx_gpu->gmu.lock); } @@ -1787,7 +1781,7 @@ if (val == UINT_MAX) { DRM_DEV_ERROR(dev, - "missing support for speed-bin: %u. Some OPPs may not be supported by hardware", + "missing support for speed-bin: %u. Some OPPs may not be supported by hardware\n", fuse); return UINT_MAX; } @@ -1797,7 +1791,7 @@ static int a6xx_set_supported_hw(struct device *dev, struct adreno_rev rev) { - u32 supp_hw = UINT_MAX; + u32 supp_hw; u32 speedbin; int ret; @@ -1809,15 +1803,13 @@ if (ret == -ENOENT) { return 0; } else if (ret) { - DRM_DEV_ERROR(dev, - "failed to read speed-bin (%d). Some OPPs may not be supported by hardware", - ret); - goto done; + dev_err_probe(dev, ret, + "failed to read speed-bin. Some OPPs may not be supported by hardware\n"); + return ret; } supp_hw = fuse_to_supp_hw(dev, rev, speedbin); -done: ret = devm_pm_opp_set_supported_hw(dev, &supp_hw, 1); if (ret) return ret; --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu.h +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/a6xx_gpu.h @@ -77,7 +77,8 @@ int a6xx_gmu_init(struct a6xx_gpu *a6xx_gpu, struct device_node *node); void a6xx_gmu_remove(struct a6xx_gpu *a6xx_gpu); -void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp); +void a6xx_gmu_set_freq(struct msm_gpu *gpu, struct dev_pm_opp *opp, + bool suspended); unsigned long a6xx_gmu_get_freq(struct msm_gpu *gpu); void a6xx_show(struct msm_gpu *gpu, struct msm_gpu_state *state, --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c @@ -91,7 +91,7 @@ static void *state_kcalloc(struct a6xx_gpu_state *a6xx_state, int nr, size_t objsize) { struct a6xx_state_memobj *obj = - kzalloc((nr * objsize) + sizeof(*obj), GFP_KERNEL); + kvzalloc((nr * objsize) + sizeof(*obj), GFP_KERNEL); if (!obj) return NULL; @@ -819,7 +819,7 @@ snapshot->iova = bo->iova; snapshot->size = bo->size; - snapshot->data = kvzalloc(snapshot->size, GFP_KERNEL); + snapshot->data = state_kcalloc(a6xx_state, 1, snapshot->size); if (!snapshot->data) return NULL; @@ -1034,14 +1034,8 @@ struct a6xx_gpu_state *a6xx_state = container_of(state, struct a6xx_gpu_state, base); - if (a6xx_state->gmu_log) - kvfree(a6xx_state->gmu_log->data); - - if (a6xx_state->gmu_hfi) - kvfree(a6xx_state->gmu_hfi->data); - list_for_each_entry_safe(obj, tmp, &a6xx_state->objs, node) - kfree(obj); + kvfree(obj); adreno_gpu_state_destroy(state); kfree(a6xx_state); --- linux-5.19.0.orig/drivers/gpu/drm/msm/adreno/adreno_device.c +++ linux-5.19.0/drivers/gpu/drm/msm/adreno/adreno_device.c @@ -656,6 +656,9 @@ struct msm_gpu *gpu = dev_to_gpu(dev); int remaining, ret; + if (!gpu) + return 0; + suspend_scheduler(gpu); remaining = wait_event_timeout(gpu->retire_event, @@ -677,7 +680,12 @@ static int adreno_system_resume(struct device *dev) { - resume_scheduler(dev_to_gpu(dev)); + struct msm_gpu *gpu = dev_to_gpu(dev); + + if (!gpu) + return 0; + + resume_scheduler(gpu); return pm_runtime_force_resume(dev); } --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c @@ -361,6 +361,9 @@ if (!state) continue; + if (!state->visible) + continue; + pstate = to_dpu_plane_state(state); fb = state->fb; @@ -1134,6 +1137,9 @@ if (cnt >= DPU_STAGE_MAX * 4) continue; + if (!pstate->visible) + continue; + pstates[cnt].dpu_pstate = dpu_pstate; pstates[cnt].drm_pstate = pstate; pstates[cnt].stage = pstate->normalized_zpos; --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c @@ -1048,24 +1048,6 @@ phys->hw_pp = dpu_enc->hw_pp[i]; phys->hw_ctl = to_dpu_hw_ctl(hw_ctl[i]); - if (phys->intf_idx >= INTF_0 && phys->intf_idx < INTF_MAX) - phys->hw_intf = dpu_rm_get_intf(&dpu_kms->rm, phys->intf_idx); - - if (phys->wb_idx >= WB_0 && phys->wb_idx < WB_MAX) - phys->hw_wb = dpu_rm_get_wb(&dpu_kms->rm, phys->wb_idx); - - if (!phys->hw_intf && !phys->hw_wb) { - DPU_ERROR_ENC(dpu_enc, - "no intf or wb block assigned at idx: %d\n", i); - return; - } - - if (phys->hw_intf && phys->hw_wb) { - DPU_ERROR_ENC(dpu_enc, - "invalid phys both intf and wb block at idx: %d\n", i); - return; - } - phys->cached_mode = crtc_state->adjusted_mode; if (phys->ops.atomic_mode_set) phys->ops.atomic_mode_set(phys, crtc_state, conn_state); @@ -2016,6 +1998,12 @@ intf_cfg.stream_sel = 0; /* Don't care value for video mode */ intf_cfg.mode_3d = dpu_encoder_helper_get_3d_blend_mode(phys_enc); + + if (phys_enc->hw_intf) + intf_cfg.intf = phys_enc->hw_intf->idx; + if (phys_enc->hw_wb) + intf_cfg.wb = phys_enc->hw_wb->idx; + if (phys_enc->hw_pp->merge_3d) intf_cfg.merge_3d = phys_enc->hw_pp->merge_3d->idx; @@ -2294,7 +2282,25 @@ struct dpu_encoder_phys *phys = dpu_enc->phys_encs[i]; atomic_set(&phys->vsync_cnt, 0); atomic_set(&phys->underrun_cnt, 0); + + if (phys->intf_idx >= INTF_0 && phys->intf_idx < INTF_MAX) + phys->hw_intf = dpu_rm_get_intf(&dpu_kms->rm, phys->intf_idx); + + if (phys->wb_idx >= WB_0 && phys->wb_idx < WB_MAX) + phys->hw_wb = dpu_rm_get_wb(&dpu_kms->rm, phys->wb_idx); + + if (!phys->hw_intf && !phys->hw_wb) { + DPU_ERROR_ENC(dpu_enc, "no intf or wb block assigned at idx: %d\n", i); + ret = -EINVAL; + } + + if (phys->hw_intf && phys->hw_wb) { + DPU_ERROR_ENC(dpu_enc, + "invalid phys both intf and wb block at idx: %d\n", i); + ret = -EINVAL; + } } + mutex_unlock(&dpu_enc->enc_lock); return ret; --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c @@ -20,8 +20,6 @@ #include "dpu_crtc.h" #include "disp/msm_disp_snapshot.h" -#define DEFAULT_MAX_WRITEBACK_WIDTH 2048 - #define to_dpu_encoder_phys_wb(x) \ container_of(x, struct dpu_encoder_phys_wb, base) @@ -278,9 +276,9 @@ DPU_ERROR("invalid fb h=%d, mode h=%d\n", fb->height, mode->vdisplay); return -EINVAL; - } else if (fb->width > DEFAULT_MAX_WRITEBACK_WIDTH) { + } else if (fb->width > phys_enc->hw_wb->caps->maxlinewidth) { DPU_ERROR("invalid fb w=%d, maxlinewidth=%u\n", - fb->width, DEFAULT_MAX_WRITEBACK_WIDTH); + fb->width, phys_enc->hw_wb->caps->maxlinewidth); return -EINVAL; } --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c @@ -1285,7 +1285,7 @@ * Writeback blocks config *************************************************************/ #define WB_BLK(_name, _id, _base, _features, _clk_ctrl, \ - __xin_id, vbif_id, _reg, _wb_done_bit) \ + __xin_id, vbif_id, _reg, _max_linewidth, _wb_done_bit) \ { \ .name = _name, .id = _id, \ .base = _base, .len = 0x2c8, \ @@ -1295,13 +1295,13 @@ .clk_ctrl = _clk_ctrl, \ .xin_id = __xin_id, \ .vbif_idx = vbif_id, \ - .maxlinewidth = DEFAULT_DPU_LINE_WIDTH, \ + .maxlinewidth = _max_linewidth, \ .intr_wb_done = DPU_IRQ_IDX(_reg, _wb_done_bit) \ } static const struct dpu_wb_cfg sm8250_wb[] = { WB_BLK("wb_2", WB_2, 0x65000, WB_SM8250_MASK, DPU_CLK_CTRL_WB2, 6, - VBIF_RT, MDP_SSPP_TOP0_INTR, 4), + VBIF_RT, MDP_SSPP_TOP0_INTR, 4096, 4), }; /************************************************************* --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c @@ -42,7 +42,7 @@ u32 initial_lines) { struct dpu_hw_blk_reg_map *c = &hw_dsc->hw; - u32 data, lsb, bpp; + u32 data; u32 slice_last_group_size; u32 det_thresh_flatness; bool is_cmd_mode = !(mode & DSC_MODE_VIDEO); @@ -56,14 +56,7 @@ data = (initial_lines << 20); data |= ((slice_last_group_size - 1) << 18); /* bpp is 6.4 format, 4 LSBs bits are for fractional part */ - data |= dsc->drm->bits_per_pixel << 12; - lsb = dsc->drm->bits_per_pixel % 4; - bpp = dsc->drm->bits_per_pixel / 4; - bpp *= 4; - bpp <<= 4; - bpp |= lsb; - - data |= bpp << 8; + data |= (dsc->drm->bits_per_pixel << 8); data |= (dsc->drm->block_pred_enable << 7); data |= (dsc->drm->line_buf_depth << 3); data |= (dsc->drm->simple_422 << 2); --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c @@ -383,12 +383,9 @@ struct icc_path *path1; struct drm_device *dev = dpu_kms->dev; struct device *dpu_dev = dev->dev; - struct device *mdss_dev = dpu_dev->parent; - /* Interconnects are a part of MDSS device tree binding, not the - * MDP/DPU device. */ - path0 = of_icc_get(mdss_dev, "mdp0-mem"); - path1 = of_icc_get(mdss_dev, "mdp1-mem"); + path0 = msm_icc_get(dpu_dev, "mdp0-mem"); + path1 = msm_icc_get(dpu_dev, "mdp1-mem"); if (IS_ERR_OR_NULL(path0)) return PTR_ERR_OR_ZERO(path0); @@ -828,12 +825,10 @@ _dpu_kms_mmu_destroy(dpu_kms); if (dpu_kms->catalog) { - for (i = 0; i < dpu_kms->catalog->vbif_count; i++) { - u32 vbif_idx = dpu_kms->catalog->vbif[i].id; - - if ((vbif_idx < VBIF_MAX) && dpu_kms->hw_vbif[vbif_idx]) { - dpu_hw_vbif_destroy(dpu_kms->hw_vbif[vbif_idx]); - dpu_kms->hw_vbif[vbif_idx] = NULL; + for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) { + if (dpu_kms->hw_vbif[i]) { + dpu_hw_vbif_destroy(dpu_kms->hw_vbif[i]); + dpu_kms->hw_vbif[i] = NULL; } } } @@ -1135,7 +1130,7 @@ for (i = 0; i < dpu_kms->catalog->vbif_count; i++) { u32 vbif_idx = dpu_kms->catalog->vbif[i].id; - dpu_kms->hw_vbif[i] = dpu_hw_vbif_init(vbif_idx, + dpu_kms->hw_vbif[vbif_idx] = dpu_hw_vbif_init(vbif_idx, dpu_kms->vbif[vbif_idx], dpu_kms->catalog); if (IS_ERR_OR_NULL(dpu_kms->hw_vbif[vbif_idx])) { rc = PTR_ERR(dpu_kms->hw_vbif[vbif_idx]); --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/dpu1/dpu_vbif.c @@ -11,6 +11,14 @@ #include "dpu_hw_vbif.h" #include "dpu_trace.h" +static struct dpu_hw_vbif *dpu_get_vbif(struct dpu_kms *dpu_kms, enum dpu_vbif vbif_idx) +{ + if (vbif_idx < ARRAY_SIZE(dpu_kms->hw_vbif)) + return dpu_kms->hw_vbif[vbif_idx]; + + return NULL; +} + /** * _dpu_vbif_wait_for_xin_halt - wait for the xin to halt * @vbif: Pointer to hardware vbif driver @@ -148,20 +156,15 @@ void dpu_vbif_set_ot_limit(struct dpu_kms *dpu_kms, struct dpu_vbif_set_ot_params *params) { - struct dpu_hw_vbif *vbif = NULL; + struct dpu_hw_vbif *vbif; struct dpu_hw_mdp *mdp; bool forced_on = false; u32 ot_lim; - int ret, i; + int ret; mdp = dpu_kms->hw_mdp; - for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) { - if (dpu_kms->hw_vbif[i] && - dpu_kms->hw_vbif[i]->idx == params->vbif_idx) - vbif = dpu_kms->hw_vbif[i]; - } - + vbif = dpu_get_vbif(dpu_kms, params->vbif_idx); if (!vbif || !mdp) { DRM_DEBUG_ATOMIC("invalid arguments vbif %d mdp %d\n", vbif != NULL, mdp != NULL); @@ -204,7 +207,7 @@ void dpu_vbif_set_qos_remap(struct dpu_kms *dpu_kms, struct dpu_vbif_set_qos_params *params) { - struct dpu_hw_vbif *vbif = NULL; + struct dpu_hw_vbif *vbif; struct dpu_hw_mdp *mdp; bool forced_on = false; const struct dpu_vbif_qos_tbl *qos_tbl; @@ -216,13 +219,7 @@ } mdp = dpu_kms->hw_mdp; - for (i = 0; i < ARRAY_SIZE(dpu_kms->hw_vbif); i++) { - if (dpu_kms->hw_vbif[i] && - dpu_kms->hw_vbif[i]->idx == params->vbif_idx) { - vbif = dpu_kms->hw_vbif[i]; - break; - } - } + vbif = dpu_get_vbif(dpu_kms, params->vbif_idx); if (!vbif || !vbif->cap) { DPU_ERROR("invalid vbif %d\n", params->vbif_idx); --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/mdp4/mdp4_lvds_connector.c @@ -56,8 +56,9 @@ return ret; } -static int mdp4_lvds_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +mdp4_lvds_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { struct mdp4_lvds_connector *mdp4_lvds_connector = to_mdp4_lvds_connector(connector); --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c @@ -203,7 +203,7 @@ slave_encoder); } -static void mdp5_destroy(struct platform_device *pdev); +static void mdp5_destroy(struct mdp5_kms *mdp5_kms); static void mdp5_kms_destroy(struct msm_kms *kms) { @@ -223,7 +223,7 @@ } mdp_kms_destroy(&mdp5_kms->base); - mdp5_destroy(mdp5_kms->pdev); + mdp5_destroy(mdp5_kms); } #ifdef CONFIG_DEBUG_FS @@ -519,9 +519,10 @@ struct device *dev = &mdp5_kms->pdev->dev; u32 version; - pm_runtime_get_sync(dev); + /* Manually enable the MDP5, as pm runtime isn't usable yet. */ + mdp5_enable(mdp5_kms); version = mdp5_read(mdp5_kms, REG_MDP5_HW_VERSION); - pm_runtime_put_sync(dev); + mdp5_disable(mdp5_kms); *major = FIELD(version, MDP5_HW_VERSION_MAJOR); *minor = FIELD(version, MDP5_HW_VERSION_MINOR); @@ -560,6 +561,8 @@ struct device *iommu_dev; ret = mdp5_init(to_platform_device(dev->dev), dev); + if (ret) + return ret; /* priv->kms would have been populated by the MDP5 driver */ kms = priv->kms; @@ -651,9 +654,8 @@ return ret; } -static void mdp5_destroy(struct platform_device *pdev) +static void mdp5_destroy(struct mdp5_kms *mdp5_kms) { - struct mdp5_kms *mdp5_kms = platform_get_drvdata(pdev); int i; if (mdp5_kms->ctlm) @@ -667,7 +669,7 @@ kfree(mdp5_kms->intfs[i]); if (mdp5_kms->rpm_enabled) - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(&mdp5_kms->pdev->dev); drm_atomic_private_obj_fini(&mdp5_kms->glob_state); drm_modeset_lock_fini(&mdp5_kms->glob_state_lock); @@ -816,8 +818,6 @@ goto fail; } - platform_set_drvdata(pdev, mdp5_kms); - spin_lock_init(&mdp5_kms->resource_lock); mdp5_kms->dev = dev; @@ -858,9 +858,6 @@ */ clk_set_rate(mdp5_kms->core_clk, 200000000); - pm_runtime_enable(&pdev->dev); - mdp5_kms->rpm_enabled = true; - read_mdp_hw_revision(mdp5_kms, &major, &minor); mdp5_kms->cfg = mdp5_cfg_init(mdp5_kms, major, minor); @@ -912,21 +909,21 @@ /* set uninit-ed kms */ priv->kms = &mdp5_kms->base.base; + pm_runtime_enable(&pdev->dev); + mdp5_kms->rpm_enabled = true; + return 0; fail: if (mdp5_kms) - mdp5_destroy(pdev); + mdp5_destroy(mdp5_kms); return ret; } static int mdp5_setup_interconnect(struct platform_device *pdev) { - /* Interconnects are a part of MDSS device tree binding, not the - * MDP5 device. */ - struct device *mdss_dev = pdev->dev.parent; - struct icc_path *path0 = of_icc_get(mdss_dev, "mdp0-mem"); - struct icc_path *path1 = of_icc_get(mdss_dev, "mdp1-mem"); - struct icc_path *path_rot = of_icc_get(mdss_dev, "rotator-mem"); + struct icc_path *path0 = msm_icc_get(&pdev->dev, "mdp0-mem"); + struct icc_path *path1 = msm_icc_get(&pdev->dev, "mdp1-mem"); + struct icc_path *path_rot = msm_icc_get(&pdev->dev, "rotator-mem"); if (IS_ERR(path0)) return PTR_ERR(path0); @@ -975,7 +972,8 @@ static __maybe_unused int mdp5_runtime_suspend(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); - struct mdp5_kms *mdp5_kms = platform_get_drvdata(pdev); + struct msm_drm_private *priv = platform_get_drvdata(pdev); + struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); DBG(""); @@ -985,7 +983,8 @@ static __maybe_unused int mdp5_runtime_resume(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); - struct mdp5_kms *mdp5_kms = platform_get_drvdata(pdev); + struct msm_drm_private *priv = platform_get_drvdata(pdev); + struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); DBG(""); --- linux-5.19.0.orig/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c +++ linux-5.19.0/drivers/gpu/drm/msm/disp/mdp5/mdp5_pipe.c @@ -123,12 +123,13 @@ { struct msm_drm_private *priv = s->dev->dev_private; struct mdp5_kms *mdp5_kms = to_mdp5_kms(to_mdp_kms(priv->kms)); - struct mdp5_global_state *state = mdp5_get_global_state(s); + struct mdp5_global_state *state; struct mdp5_hw_pipe_state *new_state; if (!hwpipe) return 0; + state = mdp5_get_global_state(s); if (IS_ERR(state)) return PTR_ERR(state); --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_catalog.c +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_catalog.c @@ -431,7 +431,7 @@ if (rate == link_rate_hbr3) pixel_div = 6; - else if (rate == 1620000 || rate == 270000) + else if (rate == 162000 || rate == 270000) pixel_div = 2; else if (rate == link_rate_hbr2) pixel_div = 4; --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_ctrl.c +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_ctrl.c @@ -1214,7 +1214,7 @@ if (ret) return ret; - dp_ctrl_train_pattern_set(ctrl, pattern | DP_RECOVERED_CLOCK_OUT_EN); + dp_ctrl_train_pattern_set(ctrl, pattern); for (tries = 0; tries <= maximum_retries; tries++) { drm_dp_link_train_channel_eq_delay(ctrl->aux, ctrl->panel->dpcd); @@ -1245,8 +1245,7 @@ { int ret = 0; const u8 *dpcd = ctrl->panel->dpcd; - u8 encoding = DP_SET_ANSI_8B10B; - u8 ssc; + u8 encoding[] = { 0, DP_SET_ANSI_8B10B }; u8 assr; struct dp_link_info link_info = {0}; @@ -1258,13 +1257,11 @@ dp_aux_link_configure(ctrl->aux, &link_info); - if (drm_dp_max_downspread(dpcd)) { - ssc = DP_SPREAD_AMP_0_5; - drm_dp_dpcd_write(ctrl->aux, DP_DOWNSPREAD_CTRL, &ssc, 1); - } + if (drm_dp_max_downspread(dpcd)) + encoding[0] |= DP_SPREAD_AMP_0_5; - drm_dp_dpcd_write(ctrl->aux, DP_MAIN_LINK_CHANNEL_CODING_SET, - &encoding, 1); + /* config DOWNSPREAD_CTRL and MAIN_LINK_CHANNEL_CODING_SET */ + drm_dp_dpcd_write(ctrl->aux, DP_DOWNSPREAD_CTRL, encoding, 2); if (drm_dp_alternate_scrambler_reset_cap(dpcd)) { assr = DP_ALTERNATE_SCRAMBLER_RESET_ENABLE; --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_display.c +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_display.c @@ -852,7 +852,7 @@ dp = container_of(dp_display, struct dp_display_private, dp_display); - dp->panel->dp_mode.drm_mode = mode->drm_mode; + drm_mode_copy(&dp->panel->dp_mode.drm_mode, &mode->drm_mode); dp->panel->dp_mode.bpp = mode->bpp; dp->panel->dp_mode.capabilities = mode->capabilities; dp_panel_init_panel_info(dp->panel); @@ -1254,7 +1254,7 @@ return -EINVAL; } - rc = devm_request_irq(&dp->pdev->dev, dp->irq, + rc = devm_request_irq(dp_display->drm_dev->dev, dp->irq, dp_display_irq_handler, IRQF_TRIGGER_HIGH, "dp_display_isr", dp); if (rc < 0) { @@ -1585,7 +1585,7 @@ * For DisplayPort interfaces external bridges are optional, so * silently ignore an error if one is not present (-ENODEV). */ - rc = dp_parser_find_next_bridge(dp_priv->parser); + rc = devm_dp_parser_find_next_bridge(dp->drm_dev->dev, dp_priv->parser); if (!dp->is_edp && rc == -ENODEV) return 0; @@ -1614,6 +1614,12 @@ return -EINVAL; priv = dev->dev_private; + + if (priv->num_bridges == ARRAY_SIZE(priv->bridges)) { + DRM_DEV_ERROR(dev->dev, "too many bridges\n"); + return -ENOSPC; + } + dp_display->drm_dev = dev; dp_priv = container_of(dp_display, struct dp_display_private, dp_display); --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_drm.c +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_drm.c @@ -31,6 +31,36 @@ connector_status_disconnected; } +static int dp_bridge_atomic_check(struct drm_bridge *bridge, + struct drm_bridge_state *bridge_state, + struct drm_crtc_state *crtc_state, + struct drm_connector_state *conn_state) +{ + struct msm_dp *dp; + + dp = to_dp_bridge(bridge)->dp_display; + + drm_dbg_dp(dp->drm_dev, "is_connected = %s\n", + (dp->is_connected) ? "true" : "false"); + + /* + * There is no protection in the DRM framework to check if the display + * pipeline has been already disabled before trying to disable it again. + * Hence if the sink is unplugged, the pipeline gets disabled, but the + * crtc->active is still true. Any attempt to set the mode or manually + * disable this encoder will result in the crash. + * + * TODO: add support for telling the DRM subsystem that the pipeline is + * disabled by the hardware and thus all access to it should be forbidden. + * After that this piece of code can be removed. + */ + if (bridge->ops & DRM_BRIDGE_OP_HPD) + return (dp->is_connected) ? 0 : -ENOTCONN; + + return 0; +} + + /** * dp_bridge_get_modes - callback to add drm modes via drm_mode_probed_add() * @bridge: Poiner to drm bridge @@ -61,6 +91,9 @@ } static const struct drm_bridge_funcs dp_bridge_ops = { + .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state, + .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state, + .atomic_reset = drm_atomic_helper_bridge_reset, .enable = dp_bridge_enable, .disable = dp_bridge_disable, .post_disable = dp_bridge_post_disable, @@ -68,6 +101,7 @@ .mode_valid = dp_bridge_mode_valid, .get_modes = dp_bridge_get_modes, .detect = dp_bridge_detect, + .atomic_check = dp_bridge_atomic_check, }; struct drm_bridge *dp_bridge_init(struct msm_dp *dp_display, struct drm_device *dev, --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_parser.c +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_parser.c @@ -263,12 +263,12 @@ return 0; } -int dp_parser_find_next_bridge(struct dp_parser *parser) +int devm_dp_parser_find_next_bridge(struct device *dev, struct dp_parser *parser) { - struct device *dev = &parser->pdev->dev; + struct platform_device *pdev = parser->pdev; struct drm_bridge *bridge; - bridge = devm_drm_of_get_bridge(dev, dev->of_node, 1, 0); + bridge = devm_drm_of_get_bridge(dev, pdev->dev.of_node, 1, 0); if (IS_ERR(bridge)) return PTR_ERR(bridge); --- linux-5.19.0.orig/drivers/gpu/drm/msm/dp/dp_parser.h +++ linux-5.19.0/drivers/gpu/drm/msm/dp/dp_parser.h @@ -142,8 +142,9 @@ struct dp_parser *dp_parser_get(struct platform_device *pdev); /** - * dp_parser_find_next_bridge() - find an additional bridge to DP + * devm_dp_parser_find_next_bridge() - find an additional bridge to DP * + * @dev: device to tie bridge lifetime to * @parser: dp_parser data from client * * This function is used to find any additional bridge attached to @@ -151,6 +152,6 @@ * * Return: 0 if able to get the bridge, otherwise negative errno for failure. */ -int dp_parser_find_next_bridge(struct dp_parser *parser); +int devm_dp_parser_find_next_bridge(struct device *dev, struct dp_parser *parser); #endif --- linux-5.19.0.orig/drivers/gpu/drm/msm/dsi/dsi.c +++ linux-5.19.0/drivers/gpu/drm/msm/dsi/dsi.c @@ -227,6 +227,12 @@ return -EINVAL; priv = dev->dev_private; + + if (priv->num_bridges == ARRAY_SIZE(priv->bridges)) { + DRM_DEV_ERROR(dev->dev, "too many bridges\n"); + return -ENOSPC; + } + msm_dsi->dev = dev; ret = msm_dsi_host_modeset_init(msm_dsi->host, dev); --- linux-5.19.0.orig/drivers/gpu/drm/msm/dsi/dsi_cfg.c +++ linux-5.19.0/drivers/gpu/drm/msm/dsi/dsi_cfg.c @@ -109,7 +109,7 @@ static const struct msm_dsi_config msm8996_dsi_cfg = { .io_offset = DSI_6G_REG_SHIFT, .reg_cfg = { - .num = 2, + .num = 3, .regs = { {"vdda", 18160, 1 }, /* 1.25 V */ {"vcca", 17000, 32 }, /* 0.925 V */ @@ -148,7 +148,7 @@ static const struct msm_dsi_config sdm660_dsi_cfg = { .io_offset = DSI_6G_REG_SHIFT, .reg_cfg = { - .num = 2, + .num = 1, .regs = { {"vdda", 12560, 4 }, /* 1.2 V */ }, --- linux-5.19.0.orig/drivers/gpu/drm/msm/dsi/dsi_host.c +++ linux-5.19.0/drivers/gpu/drm/msm/dsi/dsi_host.c @@ -915,17 +915,15 @@ static void dsi_update_dsc_timing(struct msm_dsi_host *msm_host, bool is_cmd_mode, u32 hdisplay) { struct msm_display_dsc_config *dsc = msm_host->dsc; - u32 reg, intf_width, reg_ctrl, reg_ctrl2; + u32 reg, reg_ctrl, reg_ctrl2; u32 slice_per_intf, total_bytes_per_intf; u32 pkt_per_line; - u32 bytes_in_slice; u32 eol_byte_num; /* first calculate dsc parameters and then program * compress mode registers */ - intf_width = hdisplay; - slice_per_intf = DIV_ROUND_UP(intf_width, dsc->drm->slice_width); + slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->drm->slice_width); /* If slice_per_pkt is greater than slice_per_intf * then default to 1. This can happen during partial @@ -934,12 +932,7 @@ if (slice_per_intf > dsc->drm->slice_count) dsc->drm->slice_count = 1; - slice_per_intf = DIV_ROUND_UP(hdisplay, dsc->drm->slice_width); - bytes_in_slice = DIV_ROUND_UP(dsc->drm->slice_width * dsc->drm->bits_per_pixel, 8); - - dsc->drm->slice_chunk_size = bytes_in_slice; - - total_bytes_per_intf = bytes_in_slice * slice_per_intf; + total_bytes_per_intf = dsc->drm->slice_chunk_size * slice_per_intf; eol_byte_num = total_bytes_per_intf % 3; pkt_per_line = slice_per_intf / dsc->drm->slice_count; @@ -965,7 +958,7 @@ reg_ctrl |= reg; reg_ctrl2 &= ~DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH__MASK; - reg_ctrl2 |= DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH(bytes_in_slice); + reg_ctrl2 |= DSI_COMMAND_COMPRESSION_MODE_CTRL2_STREAM0_SLICE_WIDTH(dsc->drm->slice_chunk_size); dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL, reg_ctrl); dsi_write(msm_host, REG_DSI_COMMAND_COMPRESSION_MODE_CTRL2, reg_ctrl2); @@ -1854,7 +1847,6 @@ int hrd_delay; int pre_num_extra_mux_bits, num_extra_mux_bits; int slice_bits; - int target_bpp_x16; int data; int final_value, final_scale; int i; @@ -1886,6 +1878,7 @@ if (dsc->drm->bits_per_component == 12) mux_words_size = 64; + dsc->drm->mux_word_size = mux_words_size; dsc->drm->initial_xmit_delay = 512; dsc->drm->initial_scale_value = 32; dsc->drm->first_line_bpg_offset = 12; @@ -1896,15 +1889,12 @@ dsc->drm->flatness_max_qp = 12; dsc->drm->rc_quant_incr_limit0 = 11; dsc->drm->rc_quant_incr_limit1 = 11; - dsc->drm->mux_word_size = DSC_MUX_WORD_SIZE_8_10_BPC; /* FIXME: need to call drm_dsc_compute_rc_parameters() so that rest of * params are calculated */ groups_per_line = DIV_ROUND_UP(dsc->drm->slice_width, 3); - dsc->drm->slice_chunk_size = dsc->drm->slice_width * dsc->drm->bits_per_pixel / 8; - if ((dsc->drm->slice_width * dsc->drm->bits_per_pixel) % 8) - dsc->drm->slice_chunk_size++; + dsc->drm->slice_chunk_size = DIV_ROUND_UP(dsc->drm->slice_width * dsc->drm->bits_per_pixel, 8); /* rbs-min */ min_rate_buffer_size = dsc->drm->rc_model_size - dsc->drm->initial_offset + @@ -1934,14 +1924,7 @@ data = 2048 * (dsc->drm->rc_model_size - dsc->drm->initial_offset + num_extra_mux_bits); dsc->drm->slice_bpg_offset = DIV_ROUND_UP(data, groups_total); - /* bpp * 16 + 0.5 */ - data = dsc->drm->bits_per_pixel * 16; - data *= 2; - data++; - data /= 2; - target_bpp_x16 = data; - - data = (dsc->drm->initial_xmit_delay * target_bpp_x16) / 16; + data = dsc->drm->initial_xmit_delay * dsc->drm->bits_per_pixel; final_value = dsc->drm->rc_model_size - data + num_extra_mux_bits; dsc->drm->final_offset = final_value; --- linux-5.19.0.orig/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c +++ linux-5.19.0/drivers/gpu/drm/msm/dsi/phy/dsi_phy.c @@ -347,7 +347,7 @@ } else { timing->shared_timings.clk_pre = linear_inter(tmax, tmin, pcnt2, 0, false); - timing->shared_timings.clk_pre_inc_by_2 = 0; + timing->shared_timings.clk_pre_inc_by_2 = 0; } timing->ta_go = 3; --- linux-5.19.0.orig/drivers/gpu/drm/msm/hdmi/hdmi.c +++ linux-5.19.0/drivers/gpu/drm/msm/hdmi/hdmi.c @@ -180,6 +180,9 @@ goto fail; } + for (i = 0; i < config->pwr_reg_cnt; i++) + hdmi->pwr_regs[i].supply = config->pwr_reg_names[i]; + ret = devm_regulator_bulk_get(&pdev->dev, config->pwr_reg_cnt, hdmi->pwr_regs); if (ret) { DRM_DEV_ERROR(&pdev->dev, "failed to get pwr regulator: %d\n", ret); @@ -230,7 +233,21 @@ hdmi->pwr_clks[i] = clk; } - pm_runtime_enable(&pdev->dev); + hdmi->hpd_gpiod = devm_gpiod_get_optional(&pdev->dev, "hpd", GPIOD_IN); + /* This will catch e.g. -EPROBE_DEFER */ + if (IS_ERR(hdmi->hpd_gpiod)) { + ret = PTR_ERR(hdmi->hpd_gpiod); + DRM_DEV_ERROR(&pdev->dev, "failed to get hpd gpio: (%d)\n", ret); + goto fail; + } + + if (!hdmi->hpd_gpiod) + DBG("failed to get HPD gpio"); + + if (hdmi->hpd_gpiod) + gpiod_set_consumer_name(hdmi->hpd_gpiod, "HDMI_HPD"); + + devm_pm_runtime_enable(&pdev->dev); hdmi->workq = alloc_ordered_workqueue("msm_hdmi", 0); @@ -278,6 +295,11 @@ struct platform_device *pdev = hdmi->pdev; int ret; + if (priv->num_bridges == ARRAY_SIZE(priv->bridges)) { + DRM_DEV_ERROR(dev->dev, "too many bridges\n"); + return -ENOSPC; + } + hdmi->dev = dev; hdmi->encoder = encoder; @@ -308,7 +330,7 @@ goto fail; } - ret = devm_request_irq(&pdev->dev, hdmi->irq, + ret = devm_request_irq(dev->dev, hdmi->irq, msm_hdmi_irq, IRQF_TRIGGER_HIGH, "hdmi_isr", hdmi); if (ret < 0) { @@ -406,20 +428,6 @@ .hpd_freq = hpd_clk_freq_8x74, }; -static const struct { - const char *name; - const bool output; - const int value; - const char *label; -} msm_hdmi_gpio_pdata[] = { - { "qcom,hdmi-tx-ddc-clk", true, 1, "HDMI_DDC_CLK" }, - { "qcom,hdmi-tx-ddc-data", true, 1, "HDMI_DDC_DATA" }, - { "qcom,hdmi-tx-hpd", false, 1, "HDMI_HPD" }, - { "qcom,hdmi-tx-mux-en", true, 1, "HDMI_MUX_EN" }, - { "qcom,hdmi-tx-mux-sel", true, 0, "HDMI_MUX_SEL" }, - { "qcom,hdmi-tx-mux-lpm", true, 1, "HDMI_MUX_LPM" }, -}; - /* * HDMI audio codec callbacks */ @@ -531,7 +539,7 @@ struct hdmi_platform_config *hdmi_cfg; struct hdmi *hdmi; struct device_node *of_node = dev->of_node; - int i, err; + int err; hdmi_cfg = (struct hdmi_platform_config *) of_device_get_match_data(dev); @@ -543,42 +551,6 @@ hdmi_cfg->mmio_name = "core_physical"; hdmi_cfg->qfprom_mmio_name = "qfprom_physical"; - for (i = 0; i < HDMI_MAX_NUM_GPIO; i++) { - const char *name = msm_hdmi_gpio_pdata[i].name; - struct gpio_desc *gpiod; - - /* - * We are fetching the GPIO lines "as is" since the connector - * code is enabling and disabling the lines. Until that point - * the power-on default value will be kept. - */ - gpiod = devm_gpiod_get_optional(dev, name, GPIOD_ASIS); - /* This will catch e.g. -PROBE_DEFER */ - if (IS_ERR(gpiod)) - return PTR_ERR(gpiod); - if (!gpiod) { - /* Try a second time, stripping down the name */ - char name3[32]; - - /* - * Try again after stripping out the "qcom,hdmi-tx" - * prefix. This is mainly to match "hpd-gpios" used - * in the upstream bindings. - */ - if (sscanf(name, "qcom,hdmi-tx-%s", name3)) - gpiod = devm_gpiod_get_optional(dev, name3, GPIOD_ASIS); - if (IS_ERR(gpiod)) - return PTR_ERR(gpiod); - if (!gpiod) - DBG("failed to get gpio: %s", name); - } - hdmi_cfg->gpios[i].gpiod = gpiod; - if (gpiod) - gpiod_set_consumer_name(gpiod, msm_hdmi_gpio_pdata[i].label); - hdmi_cfg->gpios[i].output = msm_hdmi_gpio_pdata[i].output; - hdmi_cfg->gpios[i].value = msm_hdmi_gpio_pdata[i].value; - } - dev->platform_data = hdmi_cfg; hdmi = msm_hdmi_init(to_platform_device(dev)); --- linux-5.19.0.orig/drivers/gpu/drm/msm/hdmi/hdmi.h +++ linux-5.19.0/drivers/gpu/drm/msm/hdmi/hdmi.h @@ -19,17 +19,9 @@ #include "msm_drv.h" #include "hdmi.xml.h" -#define HDMI_MAX_NUM_GPIO 6 - struct hdmi_phy; struct hdmi_platform_config; -struct hdmi_gpio_data { - struct gpio_desc *gpiod; - bool output; - int value; -}; - struct hdmi_audio { bool enabled; struct hdmi_audio_infoframe infoframe; @@ -61,6 +53,8 @@ struct clk **hpd_clks; struct clk **pwr_clks; + struct gpio_desc *hpd_gpiod; + struct hdmi_phy *phy; struct device *phy_dev; @@ -109,9 +103,6 @@ /* clks that need to be on for screen pwr (ie pixel clk): */ const char **pwr_clk_names; int pwr_clk_cnt; - - /* gpio's: */ - struct hdmi_gpio_data gpios[HDMI_MAX_NUM_GPIO]; }; struct hdmi_bridge { --- linux-5.19.0.orig/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c +++ linux-5.19.0/drivers/gpu/drm/msm/hdmi/hdmi_hpd.c @@ -60,48 +60,6 @@ } } -static int gpio_config(struct hdmi *hdmi, bool on) -{ - const struct hdmi_platform_config *config = hdmi->config; - int i; - - if (on) { - for (i = 0; i < HDMI_MAX_NUM_GPIO; i++) { - struct hdmi_gpio_data gpio = config->gpios[i]; - - if (gpio.gpiod) { - if (gpio.output) { - gpiod_direction_output(gpio.gpiod, - gpio.value); - } else { - gpiod_direction_input(gpio.gpiod); - gpiod_set_value_cansleep(gpio.gpiod, - gpio.value); - } - } - } - - DBG("gpio on"); - } else { - for (i = 0; i < HDMI_MAX_NUM_GPIO; i++) { - struct hdmi_gpio_data gpio = config->gpios[i]; - - if (!gpio.gpiod) - continue; - - if (gpio.output) { - int value = gpio.value ? 0 : 1; - - gpiod_set_value_cansleep(gpio.gpiod, value); - } - } - - DBG("gpio off"); - } - - return 0; -} - static void enable_hpd_clocks(struct hdmi *hdmi, bool enable) { const struct hdmi_platform_config *config = hdmi->config; @@ -154,11 +112,8 @@ goto fail; } - ret = gpio_config(hdmi, true); - if (ret) { - DRM_DEV_ERROR(dev, "failed to configure GPIOs: %d\n", ret); - goto fail; - } + if (hdmi->hpd_gpiod) + gpiod_set_value_cansleep(hdmi->hpd_gpiod, 1); pm_runtime_get_sync(dev); enable_hpd_clocks(hdmi, true); @@ -207,10 +162,6 @@ enable_hpd_clocks(hdmi, false); pm_runtime_put(dev); - ret = gpio_config(hdmi, false); - if (ret) - dev_warn(dev, "failed to unconfigure GPIOs: %d\n", ret); - ret = pinctrl_pm_select_sleep_state(dev); if (ret) dev_warn(dev, "pinctrl state chg failed: %d\n", ret); @@ -269,10 +220,7 @@ #define HPD_GPIO_INDEX 2 static enum drm_connector_status detect_gpio(struct hdmi *hdmi) { - const struct hdmi_platform_config *config = hdmi->config; - struct hdmi_gpio_data hpd_gpio = config->gpios[HPD_GPIO_INDEX]; - - return gpiod_get_value(hpd_gpio.gpiod) ? + return gpiod_get_value(hdmi->hpd_gpiod) ? connector_status_connected : connector_status_disconnected; } @@ -282,8 +230,6 @@ { struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge); struct hdmi *hdmi = hdmi_bridge->hdmi; - const struct hdmi_platform_config *config = hdmi->config; - struct hdmi_gpio_data hpd_gpio = config->gpios[HPD_GPIO_INDEX]; enum drm_connector_status stat_gpio, stat_reg; int retry = 20; @@ -291,7 +237,7 @@ * some platforms may not have hpd gpio. Rely only on the status * provided by REG_HDMI_HPD_INT_STATUS in this case. */ - if (!hpd_gpio.gpiod) + if (!hdmi->hpd_gpiod) return detect_reg(hdmi); do { --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_drv.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_drv.c @@ -240,6 +240,7 @@ for (i = 0; i < priv->num_bridges; i++) drm_bridge_remove(priv->bridges[i]); + priv->num_bridges = 0; pm_runtime_get_sync(dev); msm_irq_uninstall(ddev); @@ -424,6 +425,8 @@ } } + drm_helper_move_panel_connectors_to_head(ddev); + ddev->mode_config.funcs = &mode_config_funcs; ddev->mode_config.helper_private = &mode_config_helper_funcs; @@ -1167,10 +1170,15 @@ struct msm_drm_private *priv = platform_get_drvdata(pdev); struct drm_device *drm = priv ? priv->dev : NULL; - if (!priv || !priv->kms) - return; - - drm_atomic_helper_shutdown(drm); + /* + * Shutdown the hw if we're far enough along where things might be on. + * If we run this too early, we'll end up panicking in any variety of + * places. Since we don't register the drm device until late in + * msm_drm_init, drm_dev->registered is used as an indicator that the + * shutdown will be successful. + */ + if (drm && drm->registered) + drm_atomic_helper_shutdown(drm); } static struct platform_driver msm_platform_driver = { --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_drv.h +++ linux-5.19.0/drivers/gpu/drm/msm/msm_drv.h @@ -442,6 +442,8 @@ phys_addr_t *size); void __iomem *msm_ioremap_quiet(struct platform_device *pdev, const char *name); +struct icc_path *msm_icc_get(struct device *dev, const char *name); + #define msm_writel(data, addr) writel((data), (addr)) #define msm_readl(addr) readl((addr)) --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_fence.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_fence.c @@ -28,6 +28,14 @@ fctx->fenceptr = fenceptr; spin_lock_init(&fctx->spinlock); + /* + * Start out close to the 32b fence rollover point, so we can + * catch bugs with fence comparisons. + */ + fctx->last_fence = 0xffffff00; + fctx->completed_fence = fctx->last_fence; + *fctx->fenceptr = fctx->last_fence; + return fctx; } @@ -52,7 +60,8 @@ unsigned long flags; spin_lock_irqsave(&fctx->spinlock, flags); - fctx->completed_fence = max(fence, fctx->completed_fence); + if (fence_after(fence, fctx->completed_fence)) + fctx->completed_fence = fence; spin_unlock_irqrestore(&fctx->spinlock, flags); } --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_gpu.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_gpu.c @@ -992,4 +992,6 @@ } msm_devfreq_cleanup(gpu); + + platform_set_drvdata(gpu->pdev, NULL); } --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_gpu.h +++ linux-5.19.0/drivers/gpu/drm/msm/msm_gpu.h @@ -64,11 +64,14 @@ /* for generation specific debugfs: */ void (*debugfs_init)(struct msm_gpu *gpu, struct drm_minor *minor); #endif + /* note: gpu_busy() can assume that we have been pm_resumed */ u64 (*gpu_busy)(struct msm_gpu *gpu, unsigned long *out_sample_rate); struct msm_gpu_state *(*gpu_state_get)(struct msm_gpu *gpu); int (*gpu_state_put)(struct msm_gpu_state *state); unsigned long (*gpu_get_freq)(struct msm_gpu *gpu); - void (*gpu_set_freq)(struct msm_gpu *gpu, struct dev_pm_opp *opp); + /* note: gpu_set_freq() can assume that we have been pm_resumed */ + void (*gpu_set_freq)(struct msm_gpu *gpu, struct dev_pm_opp *opp, + bool suspended); struct msm_gem_address_space *(*create_address_space) (struct msm_gpu *gpu, struct platform_device *pdev); struct msm_gem_address_space *(*create_private_address_space) @@ -92,6 +95,9 @@ /** devfreq: devfreq instance */ struct devfreq *devfreq; + /** lock: lock for "suspended", "busy_cycles", and "time" */ + struct mutex lock; + /** * idle_constraint: * @@ -135,6 +141,9 @@ * elapsed */ struct msm_hrtimer_work boost_work; + + /** suspended: tracks if we're suspended */ + bool suspended; }; struct msm_gpu { @@ -273,6 +282,10 @@ static inline struct msm_gpu *dev_to_gpu(struct device *dev) { struct adreno_smmu_priv *adreno_smmu = dev_get_drvdata(dev); + + if (!adreno_smmu) + return NULL; + return container_of(adreno_smmu, struct msm_gpu, adreno_smmu); } --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_gpu_devfreq.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_gpu_devfreq.c @@ -20,6 +20,7 @@ u32 flags) { struct msm_gpu *gpu = dev_to_gpu(dev); + struct msm_gpu_devfreq *df = &gpu->devfreq; struct dev_pm_opp *opp; /* @@ -32,10 +33,13 @@ trace_msm_gpu_freq_change(dev_pm_opp_get_freq(opp)); - if (gpu->funcs->gpu_set_freq) - gpu->funcs->gpu_set_freq(gpu, opp); - else + if (gpu->funcs->gpu_set_freq) { + mutex_lock(&df->lock); + gpu->funcs->gpu_set_freq(gpu, opp, df->suspended); + mutex_unlock(&df->lock); + } else { clk_set_rate(gpu->core_clk, *freq); + } dev_pm_opp_put(opp); @@ -58,15 +62,24 @@ unsigned long sample_rate; ktime_t time; + mutex_lock(&df->lock); + status->current_frequency = get_freq(gpu); - busy_cycles = gpu->funcs->gpu_busy(gpu, &sample_rate); time = ktime_get(); - - busy_time = busy_cycles - df->busy_cycles; status->total_time = ktime_us_delta(time, df->time); + df->time = time; + if (df->suspended) { + mutex_unlock(&df->lock); + status->busy_time = 0; + return; + } + + busy_cycles = gpu->funcs->gpu_busy(gpu, &sample_rate); + busy_time = busy_cycles - df->busy_cycles; df->busy_cycles = busy_cycles; - df->time = time; + + mutex_unlock(&df->lock); busy_time *= USEC_PER_SEC; do_div(busy_time, sample_rate); @@ -175,6 +188,8 @@ if (!gpu->funcs->gpu_busy) return; + mutex_init(&df->lock); + dev_pm_qos_add_request(&gpu->pdev->dev, &df->idle_freq, DEV_PM_QOS_MAX_FREQUENCY, PM_QOS_MAX_FREQUENCY_DEFAULT_VALUE); @@ -198,6 +213,8 @@ if (IS_ERR(df->devfreq)) { DRM_DEV_ERROR(&gpu->pdev->dev, "Couldn't initialize GPU devfreq\n"); + dev_pm_qos_remove_request(&df->idle_freq); + dev_pm_qos_remove_request(&df->boost_freq); df->devfreq = NULL; return; } @@ -244,12 +261,16 @@ void msm_devfreq_resume(struct msm_gpu *gpu) { struct msm_gpu_devfreq *df = &gpu->devfreq; + unsigned long sample_rate; if (!has_devfreq(gpu)) return; - df->busy_cycles = 0; + mutex_lock(&df->lock); + df->busy_cycles = gpu->funcs->gpu_busy(gpu, &sample_rate); df->time = ktime_get(); + df->suspended = false; + mutex_unlock(&df->lock); devfreq_resume_device(df->devfreq); } @@ -261,6 +282,10 @@ if (!has_devfreq(gpu)) return; + mutex_lock(&df->lock); + df->suspended = true; + mutex_unlock(&df->lock); + devfreq_suspend_device(df->devfreq); cancel_idle_work(df); --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_io_utils.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_io_utils.c @@ -5,6 +5,8 @@ * Author: Rob Clark */ +#include + #include "msm_drv.h" /* @@ -124,3 +126,23 @@ work->worker = worker; kthread_init_work(&work->work, fn); } + +struct icc_path *msm_icc_get(struct device *dev, const char *name) +{ + struct device *mdss_dev = dev->parent; + struct icc_path *path; + + path = of_icc_get(dev, name); + if (path) + return path; + + /* + * If there are no interconnects attached to the corresponding device + * node, of_icc_get() will return NULL. + * + * If the MDP5/DPU device node doesn't have interconnects, lookup the + * path in the parent (MDSS) device. + */ + return of_icc_get(mdss_dev, name); + +} --- linux-5.19.0.orig/drivers/gpu/drm/msm/msm_rd.c +++ linux-5.19.0/drivers/gpu/drm/msm/msm_rd.c @@ -196,6 +196,9 @@ file->private_data = rd; rd->open = true; + /* Reset fifo to clear any previously unread data: */ + rd->fifo.head = rd->fifo.tail = 0; + /* the parsing tools need to know gpu-id to know which * register database to load. * --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nouveau_bo.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nouveau_bo.c @@ -281,8 +281,10 @@ break; } - if (WARN_ON(pi < 0)) + if (WARN_ON(pi < 0)) { + kfree(nvbo); return ERR_PTR(-EINVAL); + } /* Disable compression if suitable settings couldn't be found. */ if (nvbo->comp && !vmm->page[pi].comp) { @@ -820,6 +822,15 @@ if (ret == 0) { ret = nouveau_fence_new(chan, false, &fence); if (ret == 0) { + /* TODO: figure out a better solution here + * + * wait on the fence here explicitly as going through + * ttm_bo_move_accel_cleanup somehow doesn't seem to do it. + * + * Without this the operation can timeout and we'll fallback to a + * software copy, which might take several minutes to finish. + */ + nouveau_fence_wait(fence, false, false); ret = ttm_bo_move_accel_cleanup(bo, &fence->base, evict, false, --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nouveau_connector.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nouveau_connector.c @@ -503,7 +503,8 @@ connector->interlace_allowed = nv_encoder->caps.dp_interlace; else - connector->interlace_allowed = true; + connector->interlace_allowed = + drm->client.device.info.family < NV_DEVICE_INFO_V0_VOLTA; connector->doublescan_allowed = true; } else if (nv_encoder->dcb->type == DCB_OUTPUT_LVDS || @@ -1361,13 +1362,11 @@ snprintf(aux_name, sizeof(aux_name), "sor-%04x-%04x", dcbe->hasht, dcbe->hashm); nv_connector->aux.name = kstrdup(aux_name, GFP_KERNEL); - drm_dp_aux_init(&nv_connector->aux); - if (ret) { - NV_ERROR(drm, "Failed to init AUX adapter for sor-%04x-%04x: %d\n", - dcbe->hasht, dcbe->hashm, ret); + if (!nv_connector->aux.name) { kfree(nv_connector); - return ERR_PTR(ret); + return ERR_PTR(-ENOMEM); } + drm_dp_aux_init(&nv_connector->aux); fallthrough; default: funcs = &nouveau_connector_funcs; --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nouveau_display.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nouveau_display.c @@ -515,7 +515,7 @@ pm_runtime_mark_last_busy(drm->dev->dev); noop: - pm_runtime_put_sync(drm->dev->dev); + pm_runtime_put_autosuspend(dev->dev); } #ifdef CONFIG_ACPI @@ -537,7 +537,7 @@ * it's own hotplug events. */ pm_runtime_put_autosuspend(drm->dev->dev); - } else if (ret == 0) { + } else if (ret == 0 || ret == -EINPROGRESS) { /* We've started resuming the GPU already, so * it will handle scheduling a full reprobe * itself --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -466,7 +466,7 @@ if (state == FBINFO_STATE_RUNNING) { nouveau_fbcon_hotplug_resume(drm->fbcon); pm_runtime_mark_last_busy(drm->dev->dev); - pm_runtime_put_sync(drm->dev->dev); + pm_runtime_put_autosuspend(drm->dev->dev); } } --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nouveau_prime.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nouveau_prime.c @@ -71,7 +71,6 @@ ret = nouveau_bo_init(nvbo, size, align, NOUVEAU_GEM_DOMAIN_GART, sg, robj); if (ret) { - nouveau_bo_ref(NULL, &nvbo); obj = ERR_PTR(ret); goto unlock; } --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c @@ -2606,6 +2606,27 @@ }; static const struct nvkm_device_chip +nv173_chipset = { + .name = "GA103", + .bar = { 0x00000001, tu102_bar_new }, + .bios = { 0x00000001, nvkm_bios_new }, + .devinit = { 0x00000001, ga100_devinit_new }, + .fb = { 0x00000001, ga102_fb_new }, + .gpio = { 0x00000001, ga102_gpio_new }, + .i2c = { 0x00000001, gm200_i2c_new }, + .imem = { 0x00000001, nv50_instmem_new }, + .mc = { 0x00000001, ga100_mc_new }, + .mmu = { 0x00000001, tu102_mmu_new }, + .pci = { 0x00000001, gp100_pci_new }, + .privring = { 0x00000001, gm200_privring_new }, + .timer = { 0x00000001, gk20a_timer_new }, + .top = { 0x00000001, ga100_top_new }, + .disp = { 0x00000001, ga102_disp_new }, + .dma = { 0x00000001, gv100_dma_new }, + .fifo = { 0x00000001, ga102_fifo_new }, +}; + +static const struct nvkm_device_chip nv174_chipset = { .name = "GA104", .bar = { 0x00000001, tu102_bar_new }, @@ -3092,6 +3113,7 @@ case 0x167: device->chip = &nv167_chipset; break; case 0x168: device->chip = &nv168_chipset; break; case 0x172: device->chip = &nv172_chipset; break; + case 0x173: device->chip = &nv173_chipset; break; case 0x174: device->chip = &nv174_chipset; break; case 0x176: device->chip = &nv176_chipset; break; case 0x177: device->chip = &nv177_chipset; break; --- linux-5.19.0.orig/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c +++ linux-5.19.0/drivers/gpu/drm/nouveau/nvkm/subdev/bios/base.c @@ -33,7 +33,7 @@ { u32 p = *addr; - if (*addr > bios->image0_size && bios->imaged_addr) { + if (*addr >= bios->image0_size && bios->imaged_addr) { *addr -= bios->image0_size; *addr += bios->imaged_addr; } --- linux-5.19.0.orig/drivers/gpu/drm/omapdrm/dss/dss.c +++ linux-5.19.0/drivers/gpu/drm/omapdrm/dss/dss.c @@ -1176,6 +1176,7 @@ default: break; } + of_node_put(port); } } @@ -1208,11 +1209,13 @@ default: break; } + of_node_put(port); } return 0; error: + of_node_put(port); __dss_uninit_ports(dss, i); return r; } --- linux-5.19.0.orig/drivers/gpu/drm/panel/Kconfig +++ linux-5.19.0/drivers/gpu/drm/panel/Kconfig @@ -154,8 +154,8 @@ config DRM_PANEL_ILITEK_ILI9341 tristate "Ilitek ILI9341 240x320 QVGA panels" depends on OF && SPI - depends on DRM_KMS_HELPER - depends on DRM_GEM_CMA_HELPER + select DRM_KMS_HELPER + select DRM_GEM_DMA_HELPER depends on BACKLIGHT_CLASS_DEVICE select DRM_MIPI_DBI help @@ -438,6 +438,8 @@ depends on OF depends on BACKLIGHT_CLASS_DEVICE depends on PM + select DRM_DISPLAY_DP_HELPER + select DRM_DISPLAY_HELPER select DRM_DP_AUX_BUS help DRM panel driver for the Samsung ATNA33XC20 panel. This panel can't --- linux-5.19.0.orig/drivers/gpu/drm/panel/panel-edp.c +++ linux-5.19.0/drivers/gpu/drm/panel/panel-edp.c @@ -1270,7 +1270,8 @@ }, .delay = { .hpd_absent = 200, - .prepare_to_enable = 80, + .enable = 80, + .disable = 50, .unprepare = 500, }, }; --- linux-5.19.0.orig/drivers/gpu/drm/panel/panel-simple.c +++ linux-5.19.0/drivers/gpu/drm/panel/panel-simple.c @@ -2136,7 +2136,7 @@ .enable = 200, .disable = 20, }, - .bus_format = MEDIA_BUS_FMT_RGB888_1X7X4_SPWG, + .bus_format = MEDIA_BUS_FMT_RGB666_1X7X3_SPWG, .connector_type = DRM_MODE_CONNECTOR_LVDS, }; @@ -2384,6 +2384,7 @@ static const struct panel_desc logictechno_lt161010_2nh = { .timings = &logictechno_lt161010_2nh_timing, .num_timings = 1, + .bpc = 6, .size = { .width = 154, .height = 86, @@ -2413,6 +2414,7 @@ static const struct panel_desc logictechno_lt170410_2whc = { .timings = &logictechno_lt170410_2whc_timing, .num_timings = 1, + .bpc = 8, .size = { .width = 217, .height = 136, --- linux-5.19.0.orig/drivers/gpu/drm/panel/panel-sitronix-st7701.c +++ linux-5.19.0/drivers/gpu/drm/panel/panel-sitronix-st7701.c @@ -384,7 +384,15 @@ st7701->dsi = dsi; st7701->desc = desc; - return mipi_dsi_attach(dsi); + ret = mipi_dsi_attach(dsi); + if (ret) + goto err_attach; + + return 0; + +err_attach: + drm_panel_remove(&st7701->panel); + return ret; } static int st7701_dsi_remove(struct mipi_dsi_device *dsi) --- linux-5.19.0.orig/drivers/gpu/drm/pl111/pl111_versatile.c +++ linux-5.19.0/drivers/gpu/drm/pl111/pl111_versatile.c @@ -402,6 +402,7 @@ if (of_device_is_compatible(child, "arm,pl111")) { has_coretile_clcd = true; ct_clcd = child; + of_node_put(child); break; } if (of_device_is_compatible(child, "arm,hdlcd")) { --- linux-5.19.0.orig/drivers/gpu/drm/radeon/Kconfig +++ linux-5.19.0/drivers/gpu/drm/radeon/Kconfig @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: GPL-2.0-only +# SPDX-License-Identifier: MIT config DRM_RADEON_USERPTR bool "Always enable userptr support" depends on DRM_RADEON --- linux-5.19.0.orig/drivers/gpu/drm/radeon/Makefile +++ linux-5.19.0/drivers/gpu/drm/radeon/Makefile @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: GPL-2.0 +# SPDX-License-Identifier: MIT # # Makefile for the drm device driver. This driver provides support for the # Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher. --- linux-5.19.0.orig/drivers/gpu/drm/radeon/ni_dpm.c +++ linux-5.19.0/drivers/gpu/drm/radeon/ni_dpm.c @@ -2741,10 +2741,10 @@ table->mc_reg_table_entry[k].mc_data[j] |= 0x100; } j++; - if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE) - return -EINVAL; break; case MC_SEQ_RESERVE_M >> 2: + if (j >= SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE) + return -EINVAL; temp_reg = RREG32(MC_PMG_CMD_MRS1); table->mc_reg_address[j].s1 = MC_PMG_CMD_MRS1 >> 2; table->mc_reg_address[j].s0 = MC_SEQ_PMG_CMD_MRS1_LP >> 2; @@ -2753,8 +2753,6 @@ (temp_reg & 0xffff0000) | (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff); j++; - if (j > SMC_NISLANDS_MC_REGISTER_ARRAY_SIZE) - return -EINVAL; break; default: break; --- linux-5.19.0.orig/drivers/gpu/drm/radeon/radeon_bios.c +++ linux-5.19.0/drivers/gpu/drm/radeon/radeon_bios.c @@ -227,6 +227,7 @@ if (!found) return false; + pci_dev_put(pdev); rdev->bios = kmalloc(size, GFP_KERNEL); if (!rdev->bios) { @@ -612,13 +613,14 @@ acpi_size tbl_size; UEFI_ACPI_VFCT *vfct; unsigned offset; + bool r = false; if (!ACPI_SUCCESS(acpi_get_table("VFCT", 1, &hdr))) return false; tbl_size = hdr->length; if (tbl_size < sizeof(UEFI_ACPI_VFCT)) { DRM_ERROR("ACPI VFCT table present but broken (too short #1)\n"); - return false; + goto out; } vfct = (UEFI_ACPI_VFCT *)hdr; @@ -631,13 +633,13 @@ offset += sizeof(VFCT_IMAGE_HEADER); if (offset > tbl_size) { DRM_ERROR("ACPI VFCT image header truncated\n"); - return false; + goto out; } offset += vhdr->ImageLength; if (offset > tbl_size) { DRM_ERROR("ACPI VFCT image truncated\n"); - return false; + goto out; } if (vhdr->ImageLength && @@ -649,15 +651,18 @@ rdev->bios = kmemdup(&vbios->VbiosContent, vhdr->ImageLength, GFP_KERNEL); + if (rdev->bios) + r = true; - if (!rdev->bios) - return false; - return true; + goto out; } } DRM_ERROR("ACPI VFCT table present but broken (too short #2)\n"); - return false; + +out: + acpi_put_table(hdr); + return r; } #else static inline bool radeon_acpi_vfct_bios(struct radeon_device *rdev) --- linux-5.19.0.orig/drivers/gpu/drm/radeon/radeon_device.c +++ linux-5.19.0/drivers/gpu/drm/radeon/radeon_device.c @@ -1113,7 +1113,7 @@ static void radeon_check_arguments(struct radeon_device *rdev) { /* vramlimit must be a power of two */ - if (!is_power_of_2(radeon_vram_limit)) { + if (radeon_vram_limit != 0 && !is_power_of_2(radeon_vram_limit)) { dev_warn(rdev->dev, "vram limit (%d) must be a power of 2\n", radeon_vram_limit); radeon_vram_limit = 0; @@ -1604,6 +1604,9 @@ if (r) { /* delay GPU reset to resume */ radeon_fence_driver_force_completion(rdev, i); + } else { + /* finish executing delayed work */ + flush_delayed_work(&rdev->fence_drv[i].lockup_work); } } --- linux-5.19.0.orig/drivers/gpu/drm/rcar-du/Kconfig +++ linux-5.19.0/drivers/gpu/drm/rcar-du/Kconfig @@ -41,8 +41,6 @@ depends on DRM_RCAR_USE_LVDS select DRM_KMS_HELPER select DRM_PANEL - select OF_FLATTREE - select OF_OVERLAY config DRM_RCAR_MIPI_DSI tristate "R-Car DU MIPI DSI Encoder Support" --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/analogix_dp-rockchip.c @@ -408,7 +408,15 @@ if (IS_ERR(dp->adp)) return PTR_ERR(dp->adp); - return component_add(dev, &rockchip_dp_component_ops); + ret = component_add(dev, &rockchip_dp_component_ops); + if (ret) + goto err_dp_remove; + + return 0; + +err_dp_remove: + analogix_dp_remove(dp->adp); + return ret; } static int rockchip_dp_remove(struct platform_device *pdev) --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/cdn-dp-core.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/cdn-dp-core.c @@ -283,8 +283,9 @@ return ret; } -static int cdn_dp_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +cdn_dp_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { struct cdn_dp_device *dp = connector_to_dp(connector); struct drm_display_info *display_info = &dp->connector.display_info; @@ -570,7 +571,7 @@ video->v_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NVSYNC); video->h_sync_polarity = !!(mode->flags & DRM_MODE_FLAG_NHSYNC); - memcpy(&dp->mode, adjusted, sizeof(*mode)); + drm_mode_copy(&dp->mode, adjusted); } static bool cdn_dp_check_link_status(struct cdn_dp_device *dp) --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/dw-mipi-dsi-rockchip.c @@ -1031,23 +1031,31 @@ if (ret) { DRM_DEV_ERROR(dsi->dev, "Failed to register component: %d\n", ret); - return ret; + goto out; } second = dw_mipi_dsi_rockchip_find_second(dsi); - if (IS_ERR(second)) - return PTR_ERR(second); + if (IS_ERR(second)) { + ret = PTR_ERR(second); + goto out; + } if (second) { ret = component_add(second, &dw_mipi_dsi_rockchip_ops); if (ret) { DRM_DEV_ERROR(second, "Failed to register component: %d\n", ret); - return ret; + goto out; } } return 0; + +out: + mutex_lock(&dsi->usage_mutex); + dsi->usage_mode = DW_DSI_USAGE_IDLE; + mutex_unlock(&dsi->usage_mutex); + return ret; } static int dw_mipi_dsi_rockchip_host_detach(void *priv_data, @@ -1634,5 +1642,11 @@ .of_match_table = dw_mipi_dsi_rockchip_dt_ids, .pm = &dw_mipi_dsi_rockchip_pm_ops, .name = "dw-mipi-dsi-rockchip", + /* + * For dual-DSI display, one DSI pokes at the other DSI's + * drvdata in dw_mipi_dsi_rockchip_find_second(). This is not + * safe for asynchronous probe. + */ + .probe_type = PROBE_FORCE_SYNCHRONOUS, }, }; --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c @@ -565,7 +565,8 @@ ret = rockchip_hdmi_parse_dt(hdmi); if (ret) { - DRM_DEV_ERROR(hdmi->dev, "Unable to parse OF data\n"); + if (ret != -EPROBE_DEFER) + DRM_DEV_ERROR(hdmi->dev, "Unable to parse OF data\n"); return ret; } --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/inno_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/inno_hdmi.c @@ -499,7 +499,7 @@ inno_hdmi_setup(hdmi, adj_mode); /* Store the display mode for plugin/DPMS poweron events */ - memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode)); + drm_mode_copy(&hdmi->previous_mode, adj_mode); } static void inno_hdmi_encoder_enable(struct drm_encoder *encoder) --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/rk3066_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/rk3066_hdmi.c @@ -394,7 +394,7 @@ struct rk3066_hdmi *hdmi = encoder_to_rk3066_hdmi(encoder); /* Store the display mode for plugin/DPMS poweron events. */ - memcpy(&hdmi->previous_mode, adj_mode, sizeof(hdmi->previous_mode)); + drm_mode_copy(&hdmi->previous_mode, adj_mode); } static void rk3066_hdmi_encoder_enable(struct drm_encoder *encoder) --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -364,9 +364,12 @@ { struct rockchip_gem_object *rk_obj; struct drm_gem_object *obj; + bool is_framebuffer; int ret; - rk_obj = rockchip_gem_create_object(drm, size, false); + is_framebuffer = drm->fb_helper && file_priv == drm->fb_helper->client.file; + + rk_obj = rockchip_gem_create_object(drm, size, is_framebuffer); if (IS_ERR(rk_obj)) return ERR_CAST(rk_obj); --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1570,6 +1570,9 @@ { struct rockchip_crtc_state *rockchip_state; + if (WARN_ON(!crtc->state)) + return NULL; + rockchip_state = kzalloc(sizeof(*rockchip_state), GFP_KERNEL); if (!rockchip_state) return NULL; --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -875,10 +875,14 @@ { struct vop2_video_port *vp = to_vop2_video_port(crtc); struct vop2 *vop2 = vp->vop2; + struct drm_crtc_state *old_crtc_state; int ret; vop2_lock(vop2); + old_crtc_state = drm_atomic_get_old_crtc_state(state, crtc); + drm_atomic_helper_disable_planes_on_crtc(old_crtc_state, false); + drm_crtc_vblank_off(crtc); /* @@ -994,13 +998,15 @@ static void vop2_plane_atomic_disable(struct drm_plane *plane, struct drm_atomic_state *state) { - struct drm_plane_state *old_pstate = drm_atomic_get_old_plane_state(state, plane); + struct drm_plane_state *old_pstate = NULL; struct vop2_win *win = to_vop2_win(plane); struct vop2 *vop2 = win->vop2; drm_dbg(vop2->drm, "%s disable\n", win->data->name); - if (!old_pstate->crtc) + if (state) + old_pstate = drm_atomic_get_old_plane_state(state, plane); + if (old_pstate && !old_pstate->crtc) return; vop2_win_disable(win); @@ -1436,11 +1442,15 @@ die &= ~RK3568_SYS_DSP_INFACE_EN_HDMI_MUX; die |= RK3568_SYS_DSP_INFACE_EN_HDMI | FIELD_PREP(RK3568_SYS_DSP_INFACE_EN_HDMI_MUX, vp->id); + dip &= ~RK3568_DSP_IF_POL__HDMI_PIN_POL; + dip |= FIELD_PREP(RK3568_DSP_IF_POL__HDMI_PIN_POL, polflags); break; case ROCKCHIP_VOP2_EP_EDP0: die &= ~RK3568_SYS_DSP_INFACE_EN_EDP_MUX; die |= RK3568_SYS_DSP_INFACE_EN_EDP | FIELD_PREP(RK3568_SYS_DSP_INFACE_EN_EDP_MUX, vp->id); + dip &= ~RK3568_DSP_IF_POL__EDP_PIN_POL; + dip |= FIELD_PREP(RK3568_DSP_IF_POL__EDP_PIN_POL, polflags); break; case ROCKCHIP_VOP2_EP_MIPI0: die &= ~RK3568_SYS_DSP_INFACE_EN_MIPI0_MUX; @@ -1524,6 +1534,7 @@ if (ret < 0) { drm_err(vop2->drm, "failed to enable dclk for video port%d - %d\n", vp->id, ret); + vop2_unlock(vop2); return; } --- linux-5.19.0.orig/drivers/gpu/drm/rockchip/rockchip_lvds.c +++ linux-5.19.0/drivers/gpu/drm/rockchip/rockchip_lvds.c @@ -152,7 +152,7 @@ DRM_DEV_ERROR(lvds->dev, "failed to enable lvds pclk %d\n", ret); return ret; } - ret = pm_runtime_get_sync(lvds->dev); + ret = pm_runtime_resume_and_get(lvds->dev); if (ret < 0) { DRM_DEV_ERROR(lvds->dev, "failed to get pm runtime: %d\n", ret); clk_disable(lvds->pclk); @@ -336,16 +336,20 @@ { int ret; - ret = pm_runtime_get_sync(lvds->dev); + ret = pm_runtime_resume_and_get(lvds->dev); if (ret < 0) { DRM_DEV_ERROR(lvds->dev, "failed to get pm runtime: %d\n", ret); return ret; } /* Enable LVDS mode */ - return regmap_update_bits(lvds->grf, PX30_LVDS_GRF_PD_VO_CON1, + ret = regmap_update_bits(lvds->grf, PX30_LVDS_GRF_PD_VO_CON1, PX30_LVDS_MODE_EN(1) | PX30_LVDS_P2S_EN(1), PX30_LVDS_MODE_EN(1) | PX30_LVDS_P2S_EN(1)); + if (ret) + pm_runtime_put(lvds->dev); + + return ret; } static void px30_lvds_poweroff(struct rockchip_lvds *lvds) --- linux-5.19.0.orig/drivers/gpu/drm/scheduler/sched_entity.c +++ linux-5.19.0/drivers/gpu/drm/scheduler/sched_entity.c @@ -207,6 +207,7 @@ struct drm_sched_job *job = container_of(cb, struct drm_sched_job, finish_cb); + dma_fence_put(f); INIT_WORK(&job->work, drm_sched_entity_kill_jobs_work); schedule_work(&job->work); } @@ -234,8 +235,10 @@ struct drm_sched_fence *s_fence = job->s_fence; /* Wait for all dependencies to avoid data corruptions */ - while ((f = drm_sched_job_dependency(job, entity))) + while ((f = drm_sched_job_dependency(job, entity))) { dma_fence_wait(f, false); + dma_fence_put(f); + } drm_sched_fence_scheduled(s_fence); dma_fence_set_error(&s_fence->finished, -ESRCH); @@ -250,6 +253,7 @@ continue; } + dma_fence_get(entity->last_scheduled); r = dma_fence_add_callback(entity->last_scheduled, &job->finish_cb, drm_sched_entity_kill_jobs_cb); --- linux-5.19.0.orig/drivers/gpu/drm/solomon/ssd130x-spi.c +++ linux-5.19.0/drivers/gpu/drm/solomon/ssd130x-spi.c @@ -143,6 +143,7 @@ }; MODULE_DEVICE_TABLE(of, ssd130x_of_match); +#if IS_MODULE(CONFIG_DRM_SSD130X_SPI) /* * The SPI core always reports a MODALIAS uevent of the form "spi:", even * if the device was registered via OF. This means that the module will not be @@ -160,6 +161,7 @@ { /* sentinel */ } }; MODULE_DEVICE_TABLE(spi, ssd130x_spi_table); +#endif static struct spi_driver ssd130x_spi_driver = { .driver = { --- linux-5.19.0.orig/drivers/gpu/drm/sti/sti_dvo.c +++ linux-5.19.0/drivers/gpu/drm/sti/sti_dvo.c @@ -288,7 +288,7 @@ DRM_DEBUG_DRIVER("\n"); - memcpy(&dvo->mode, mode, sizeof(struct drm_display_mode)); + drm_mode_copy(&dvo->mode, mode); /* According to the path used (main or aux), the dvo clocks should * have a different parent clock. */ @@ -346,8 +346,9 @@ #define CLK_TOLERANCE_HZ 50 -static int sti_dvo_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +sti_dvo_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { int target = mode->clock * 1000; int target_min = target - CLK_TOLERANCE_HZ; --- linux-5.19.0.orig/drivers/gpu/drm/sti/sti_hda.c +++ linux-5.19.0/drivers/gpu/drm/sti/sti_hda.c @@ -523,7 +523,7 @@ DRM_DEBUG_DRIVER("\n"); - memcpy(&hda->mode, mode, sizeof(struct drm_display_mode)); + drm_mode_copy(&hda->mode, mode); if (!hda_get_mode_idx(hda->mode, &mode_idx)) { DRM_ERROR("Undefined mode\n"); @@ -600,8 +600,9 @@ #define CLK_TOLERANCE_HZ 50 -static int sti_hda_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +sti_hda_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { int target = mode->clock * 1000; int target_min = target - CLK_TOLERANCE_HZ; --- linux-5.19.0.orig/drivers/gpu/drm/sti/sti_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/sti/sti_hdmi.c @@ -940,7 +940,7 @@ DRM_DEBUG_DRIVER("\n"); /* Copy the drm display mode in the connector local structure */ - memcpy(&hdmi->mode, mode, sizeof(struct drm_display_mode)); + drm_mode_copy(&hdmi->mode, mode); /* Update clock framerate according to the selected mode */ ret = clk_set_rate(hdmi->clk_pix, mode->clock * 1000); @@ -1003,8 +1003,9 @@ #define CLK_TOLERANCE_HZ 50 -static int sti_hdmi_connector_mode_valid(struct drm_connector *connector, - struct drm_display_mode *mode) +static enum drm_mode_status +sti_hdmi_connector_mode_valid(struct drm_connector *connector, + struct drm_display_mode *mode) { int target = mode->clock * 1000; int target_min = target - CLK_TOLERANCE_HZ; --- linux-5.19.0.orig/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c +++ linux-5.19.0/drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c @@ -531,7 +531,7 @@ struct drm_display_mode *mode) { struct mipi_dsi_device *device = dsi->device; - unsigned int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; + int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; u16 hbp = 0, hfp = 0, hsa = 0, hblk = 0, vblk = 0; u32 basic_ctl = 0; size_t bytes; @@ -555,7 +555,7 @@ * (4 bytes). Its minimal size is therefore 10 bytes */ #define HSA_PACKET_OVERHEAD 10 - hsa = max((unsigned int)HSA_PACKET_OVERHEAD, + hsa = max(HSA_PACKET_OVERHEAD, (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); /* @@ -564,7 +564,7 @@ * therefore 6 bytes */ #define HBP_PACKET_OVERHEAD 6 - hbp = max((unsigned int)HBP_PACKET_OVERHEAD, + hbp = max(HBP_PACKET_OVERHEAD, (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); /* @@ -574,7 +574,7 @@ * 16 bytes */ #define HFP_PACKET_OVERHEAD 16 - hfp = max((unsigned int)HFP_PACKET_OVERHEAD, + hfp = max(HFP_PACKET_OVERHEAD, (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); /* @@ -583,7 +583,7 @@ * bytes). Its minimal size is therefore 10 bytes. */ #define HBLK_PACKET_OVERHEAD 10 - hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, + hblk = max(HBLK_PACKET_OVERHEAD, (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - HBLK_PACKET_OVERHEAD); --- linux-5.19.0.orig/drivers/gpu/drm/tegra/dc.c +++ linux-5.19.0/drivers/gpu/drm/tegra/dc.c @@ -3203,8 +3203,10 @@ usleep_range(2000, 4000); err = reset_control_assert(dc->rst); - if (err < 0) + if (err < 0) { + clk_disable_unprepare(dc->clk); return err; + } usleep_range(2000, 4000); --- linux-5.19.0.orig/drivers/gpu/drm/tegra/drm.c +++ linux-5.19.0/drivers/gpu/drm/tegra/drm.c @@ -1092,6 +1092,10 @@ struct host1x *host1x = dev_get_drvdata(dev->dev.parent); struct iommu_domain *domain; + /* Our IOMMU usage policy doesn't currently play well with GART */ + if (of_machine_is_compatible("nvidia,tegra20")) + return false; + /* * If the Tegra DRM clients are backed by an IOMMU, push buffers are * likely to be allocated beyond the 32-bit boundary if sufficient --- linux-5.19.0.orig/drivers/gpu/drm/tegra/gem.c +++ linux-5.19.0/drivers/gpu/drm/tegra/gem.c @@ -704,14 +704,23 @@ { struct drm_gem_object *gem = buf->priv; struct tegra_bo *bo = to_tegra_bo(gem); + void *vaddr; - iosys_map_set_vaddr(map, bo->vaddr); + vaddr = tegra_bo_mmap(&bo->base); + if (IS_ERR(vaddr)) + return PTR_ERR(vaddr); + + iosys_map_set_vaddr(map, vaddr); return 0; } static void tegra_gem_prime_vunmap(struct dma_buf *buf, struct iosys_map *map) { + struct drm_gem_object *gem = buf->priv; + struct tegra_bo *bo = to_tegra_bo(gem); + + tegra_bo_munmap(&bo->base, map->vaddr); } static const struct dma_buf_ops tegra_gem_prime_dmabuf_ops = { --- linux-5.19.0.orig/drivers/gpu/drm/tiny/bochs.c +++ linux-5.19.0/drivers/gpu/drm/tiny/bochs.c @@ -306,6 +306,8 @@ static void bochs_hw_blank(struct bochs_device *bochs, bool blank) { DRM_DEBUG_DRIVER("hw_blank %d\n", blank); + /* enable color bit (so VGA_IS1_RC access works) */ + bochs_vga_writeb(bochs, VGA_MIS_W, VGA_MIS_COLOR); /* discard ar_flip_flop */ (void)bochs_vga_readb(bochs, VGA_IS1_RC); /* blank or unblank; we need only update index and set 0x20 */ --- linux-5.19.0.orig/drivers/gpu/drm/tiny/st7735r.c +++ linux-5.19.0/drivers/gpu/drm/tiny/st7735r.c @@ -174,6 +174,7 @@ static const struct spi_device_id st7735r_id[] = { { "jd-t18003-t01", (uintptr_t)&jd_t18003_t01_cfg }, + { "rh128128t", (uintptr_t)&rh128128t_cfg }, { }, }; MODULE_DEVICE_TABLE(spi, st7735r_id); --- linux-5.19.0.orig/drivers/gpu/drm/ttm/ttm_bo.c +++ linux-5.19.0/drivers/gpu/drm/ttm/ttm_bo.c @@ -918,7 +918,7 @@ /* * We might need to add a TTM. */ - if (bo->resource->mem_type == TTM_PL_SYSTEM) { + if (!bo->resource || bo->resource->mem_type == TTM_PL_SYSTEM) { ret = ttm_tt_create(bo, true); if (ret) return ret; --- linux-5.19.0.orig/drivers/gpu/drm/udl/udl_modeset.c +++ linux-5.19.0/drivers/gpu/drm/udl/udl_modeset.c @@ -382,9 +382,6 @@ udl_handle_damage(fb, &shadow_plane_state->data[0], 0, 0, fb->width, fb->height); - if (!crtc_state->mode_changed) - return; - /* enable display */ udl_crtc_write_mode_to_hw(crtc); } --- linux-5.19.0.orig/drivers/gpu/drm/vc4/Kconfig +++ linux-5.19.0/drivers/gpu/drm/vc4/Kconfig @@ -8,6 +8,7 @@ depends on DRM depends on SND && SND_SOC depends on COMMON_CLK + depends on PM select DRM_DISPLAY_HDMI_HELPER select DRM_DISPLAY_HELPER select DRM_KMS_HELPER --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_crtc.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_crtc.c @@ -316,10 +316,13 @@ struct drm_crtc_state *crtc_state = crtc->state; struct drm_display_mode *mode = &crtc_state->adjusted_mode; bool interlace = mode->flags & DRM_MODE_FLAG_INTERLACE; - u32 pixel_rep = (mode->flags & DRM_MODE_FLAG_DBLCLK) ? 2 : 1; + bool is_hdmi = vc4_encoder->type == VC4_ENCODER_TYPE_HDMI0 || + vc4_encoder->type == VC4_ENCODER_TYPE_HDMI1; + u32 pixel_rep = ((mode->flags & DRM_MODE_FLAG_DBLCLK) && !is_hdmi) ? 2 : 1; bool is_dsi = (vc4_encoder->type == VC4_ENCODER_TYPE_DSI0 || vc4_encoder->type == VC4_ENCODER_TYPE_DSI1); - u32 format = is_dsi ? PV_CONTROL_FORMAT_DSIV_24 : PV_CONTROL_FORMAT_24; + bool is_dsi1 = vc4_encoder->type == VC4_ENCODER_TYPE_DSI1; + u32 format = is_dsi1 ? PV_CONTROL_FORMAT_DSIV_24 : PV_CONTROL_FORMAT_24; u8 ppc = pv_data->pixels_per_clock; bool debug_dump_regs = false; @@ -345,7 +348,8 @@ PV_HORZB_HACTIVE)); CRTC_WRITE(PV_VERTA, - VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, + VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + + interlace, PV_VERTA_VBP) | VC4_SET_FIELD(mode->crtc_vsync_end - mode->crtc_vsync_start, PV_VERTA_VSYNC)); @@ -357,7 +361,7 @@ if (interlace) { CRTC_WRITE(PV_VERTA_EVEN, VC4_SET_FIELD(mode->crtc_vtotal - - mode->crtc_vsync_end - 1, + mode->crtc_vsync_end, PV_VERTA_VBP) | VC4_SET_FIELD(mode->crtc_vsync_end - mode->crtc_vsync_start, @@ -377,7 +381,7 @@ PV_VCONTROL_CONTINUOUS | (is_dsi ? PV_VCONTROL_DSI : 0) | PV_VCONTROL_INTERLACE | - VC4_SET_FIELD(mode->htotal * pixel_rep / 2, + VC4_SET_FIELD(mode->htotal * pixel_rep / (2 * ppc), PV_VCONTROL_ODD_DELAY)); CRTC_WRITE(PV_VSYNCD_EVEN, 0); } else { --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_drv.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_drv.c @@ -267,6 +267,13 @@ } } +static void vc4_component_unbind_all(void *ptr) +{ + struct vc4_dev *vc4 = ptr; + + component_unbind_all(vc4->dev, &vc4->base); +} + static int vc4_drm_bind(struct device *dev) { struct platform_device *pdev = to_platform_device(dev); @@ -291,6 +298,7 @@ if (IS_ERR(vc4)) return PTR_ERR(vc4); vc4->is_vc5 = is_vc5; + vc4->dev = dev; drm = &vc4->base; platform_set_drvdata(pdev, drm); @@ -341,6 +349,10 @@ if (ret) return ret; + ret = devm_add_action_or_reset(dev, vc4_component_unbind_all, vc4); + if (ret) + return ret; + ret = vc4_plane_create_additional_planes(drm); if (ret) goto unbind_all; @@ -361,8 +373,6 @@ return 0; unbind_all: - component_unbind_all(dev, drm); - return ret; } @@ -447,7 +457,12 @@ if (ret) return ret; - return platform_driver_register(&vc4_platform_driver); + ret = platform_driver_register(&vc4_platform_driver); + if (ret) + platform_unregister_drivers(component_drivers, + ARRAY_SIZE(component_drivers)); + + return ret; } static void __exit vc4_drm_unregister(void) @@ -461,6 +476,7 @@ module_exit(vc4_drm_unregister); MODULE_ALIAS("platform:vc4-drm"); +MODULE_SOFTDEP("pre: snd-soc-hdmi-codec"); MODULE_DESCRIPTION("Broadcom VC4 DRM Driver"); MODULE_AUTHOR("Eric Anholt "); MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_drv.h +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_drv.h @@ -75,6 +75,7 @@ struct vc4_dev { struct drm_device base; + struct device *dev; bool is_vc5; --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_dsi.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_dsi.c @@ -181,8 +181,50 @@ #define DSI0_TXPKT_PIX_FIFO 0x20 /* AKA PIX_FIFO */ -#define DSI0_INT_STAT 0x24 -#define DSI0_INT_EN 0x28 +#define DSI0_INT_STAT 0x24 +#define DSI0_INT_EN 0x28 +# define DSI0_INT_FIFO_ERR BIT(25) +# define DSI0_INT_CMDC_DONE_MASK VC4_MASK(24, 23) +# define DSI0_INT_CMDC_DONE_SHIFT 23 +# define DSI0_INT_CMDC_DONE_NO_REPEAT 1 +# define DSI0_INT_CMDC_DONE_REPEAT 3 +# define DSI0_INT_PHY_DIR_RTF BIT(22) +# define DSI0_INT_PHY_D1_ULPS BIT(21) +# define DSI0_INT_PHY_D1_STOP BIT(20) +# define DSI0_INT_PHY_RXLPDT BIT(19) +# define DSI0_INT_PHY_RXTRIG BIT(18) +# define DSI0_INT_PHY_D0_ULPS BIT(17) +# define DSI0_INT_PHY_D0_LPDT BIT(16) +# define DSI0_INT_PHY_D0_FTR BIT(15) +# define DSI0_INT_PHY_D0_STOP BIT(14) +/* Signaled when the clock lane enters the given state. */ +# define DSI0_INT_PHY_CLK_ULPS BIT(13) +# define DSI0_INT_PHY_CLK_HS BIT(12) +# define DSI0_INT_PHY_CLK_FTR BIT(11) +/* Signaled on timeouts */ +# define DSI0_INT_PR_TO BIT(10) +# define DSI0_INT_TA_TO BIT(9) +# define DSI0_INT_LPRX_TO BIT(8) +# define DSI0_INT_HSTX_TO BIT(7) +/* Contention on a line when trying to drive the line low */ +# define DSI0_INT_ERR_CONT_LP1 BIT(6) +# define DSI0_INT_ERR_CONT_LP0 BIT(5) +/* Control error: incorrect line state sequence on data lane 0. */ +# define DSI0_INT_ERR_CONTROL BIT(4) +# define DSI0_INT_ERR_SYNC_ESC BIT(3) +# define DSI0_INT_RX2_PKT BIT(2) +# define DSI0_INT_RX1_PKT BIT(1) +# define DSI0_INT_CMD_PKT BIT(0) + +#define DSI0_INTERRUPTS_ALWAYS_ENABLED (DSI0_INT_ERR_SYNC_ESC | \ + DSI0_INT_ERR_CONTROL | \ + DSI0_INT_ERR_CONT_LP0 | \ + DSI0_INT_ERR_CONT_LP1 | \ + DSI0_INT_HSTX_TO | \ + DSI0_INT_LPRX_TO | \ + DSI0_INT_TA_TO | \ + DSI0_INT_PR_TO) + # define DSI1_INT_PHY_D3_ULPS BIT(30) # define DSI1_INT_PHY_D3_STOP BIT(29) # define DSI1_INT_PHY_D2_ULPS BIT(28) @@ -761,6 +803,9 @@ list_for_each_entry_reverse(iter, &dsi->bridge_chain, chain_node) { if (iter->funcs->disable) iter->funcs->disable(iter); + + if (iter == dsi->bridge) + break; } vc4_dsi_ulps(dsi, true); @@ -805,11 +850,9 @@ /* Find what divider gets us a faster clock than the requested * pixel clock. */ - for (divider = 1; divider < 8; divider++) { - if (parent_rate / divider < pll_clock) { - divider--; + for (divider = 1; divider < 255; divider++) { + if (parent_rate / (divider + 1) < pll_clock) break; - } } /* Now that we've picked a PLL divider, calculate back to its @@ -894,6 +937,9 @@ DSI_PORT_WRITE(PHY_AFEC0, afec0); + /* AFEC reset hold time */ + mdelay(1); + DSI_PORT_WRITE(PHY_AFEC1, VC4_SET_FIELD(6, DSI0_PHY_AFEC1_IDR_DLANE1) | VC4_SET_FIELD(6, DSI0_PHY_AFEC1_IDR_DLANE0) | @@ -1060,12 +1106,9 @@ DSI_PORT_WRITE(CTRL, DSI_PORT_READ(CTRL) | DSI1_CTRL_EN); /* Bring AFE out of reset. */ - if (dsi->variant->port == 0) { - } else { - DSI_PORT_WRITE(PHY_AFEC0, - DSI_PORT_READ(PHY_AFEC0) & - ~DSI1_PHY_AFEC0_RESET); - } + DSI_PORT_WRITE(PHY_AFEC0, + DSI_PORT_READ(PHY_AFEC0) & + ~DSI_PORT_BIT(PHY_AFEC0_RESET)); vc4_dsi_ulps(dsi, false); @@ -1184,13 +1227,28 @@ /* Enable the appropriate interrupt for the transfer completion. */ dsi->xfer_result = 0; reinit_completion(&dsi->xfer_completion); - DSI_PORT_WRITE(INT_STAT, DSI1_INT_TXPKT1_DONE | DSI1_INT_PHY_DIR_RTF); - if (msg->rx_len) { - DSI_PORT_WRITE(INT_EN, (DSI1_INTERRUPTS_ALWAYS_ENABLED | - DSI1_INT_PHY_DIR_RTF)); + if (dsi->variant->port == 0) { + DSI_PORT_WRITE(INT_STAT, + DSI0_INT_CMDC_DONE_MASK | DSI1_INT_PHY_DIR_RTF); + if (msg->rx_len) { + DSI_PORT_WRITE(INT_EN, (DSI0_INTERRUPTS_ALWAYS_ENABLED | + DSI0_INT_PHY_DIR_RTF)); + } else { + DSI_PORT_WRITE(INT_EN, + (DSI0_INTERRUPTS_ALWAYS_ENABLED | + VC4_SET_FIELD(DSI0_INT_CMDC_DONE_NO_REPEAT, + DSI0_INT_CMDC_DONE))); + } } else { - DSI_PORT_WRITE(INT_EN, (DSI1_INTERRUPTS_ALWAYS_ENABLED | - DSI1_INT_TXPKT1_DONE)); + DSI_PORT_WRITE(INT_STAT, + DSI1_INT_TXPKT1_DONE | DSI1_INT_PHY_DIR_RTF); + if (msg->rx_len) { + DSI_PORT_WRITE(INT_EN, (DSI1_INTERRUPTS_ALWAYS_ENABLED | + DSI1_INT_PHY_DIR_RTF)); + } else { + DSI_PORT_WRITE(INT_EN, (DSI1_INTERRUPTS_ALWAYS_ENABLED | + DSI1_INT_TXPKT1_DONE)); + } } /* Send the packet. */ @@ -1207,7 +1265,7 @@ ret = dsi->xfer_result; } - DSI_PORT_WRITE(INT_EN, DSI1_INTERRUPTS_ALWAYS_ENABLED); + DSI_PORT_WRITE(INT_EN, DSI_PORT_BIT(INTERRUPTS_ALWAYS_ENABLED)); if (ret) goto reset_fifo_and_return; @@ -1253,7 +1311,7 @@ DSI_PORT_BIT(CTRL_RESET_FIFOS)); DSI_PORT_WRITE(TXPKT1C, 0); - DSI_PORT_WRITE(INT_EN, DSI1_INTERRUPTS_ALWAYS_ENABLED); + DSI_PORT_WRITE(INT_EN, DSI_PORT_BIT(INTERRUPTS_ALWAYS_ENABLED)); return ret; } @@ -1390,26 +1448,28 @@ DSI_PORT_WRITE(INT_STAT, stat); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_ERR_SYNC_ESC, "LPDT sync"); + DSI_PORT_BIT(INT_ERR_SYNC_ESC), "LPDT sync"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_ERR_CONTROL, "data lane 0 sequence"); + DSI_PORT_BIT(INT_ERR_CONTROL), "data lane 0 sequence"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_ERR_CONT_LP0, "LP0 contention"); + DSI_PORT_BIT(INT_ERR_CONT_LP0), "LP0 contention"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_ERR_CONT_LP1, "LP1 contention"); + DSI_PORT_BIT(INT_ERR_CONT_LP1), "LP1 contention"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_HSTX_TO, "HSTX timeout"); + DSI_PORT_BIT(INT_HSTX_TO), "HSTX timeout"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_LPRX_TO, "LPRX timeout"); + DSI_PORT_BIT(INT_LPRX_TO), "LPRX timeout"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_TA_TO, "turnaround timeout"); + DSI_PORT_BIT(INT_TA_TO), "turnaround timeout"); dsi_handle_error(dsi, &ret, stat, - DSI1_INT_PR_TO, "peripheral reset timeout"); + DSI_PORT_BIT(INT_PR_TO), "peripheral reset timeout"); - if (stat & (DSI1_INT_TXPKT1_DONE | DSI1_INT_PHY_DIR_RTF)) { + if (stat & ((dsi->variant->port ? DSI1_INT_TXPKT1_DONE : + DSI0_INT_CMDC_DONE_MASK) | + DSI_PORT_BIT(INT_PHY_DIR_RTF))) { complete(&dsi->xfer_completion); ret = IRQ_HANDLED; - } else if (stat & DSI1_INT_HSTX_TO) { + } else if (stat & DSI_PORT_BIT(INT_HSTX_TO)) { complete(&dsi->xfer_completion); dsi->xfer_result = -ETIMEDOUT; ret = IRQ_HANDLED; @@ -1487,13 +1547,29 @@ dsi->clk_onecell); } +static void vc4_dsi_dma_mem_release(void *ptr) +{ + struct vc4_dsi *dsi = ptr; + struct device *dev = &dsi->pdev->dev; + + dma_free_coherent(dev, 4, dsi->reg_dma_mem, dsi->reg_dma_paddr); + dsi->reg_dma_mem = NULL; +} + +static void vc4_dsi_dma_chan_release(void *ptr) +{ + struct vc4_dsi *dsi = ptr; + + dma_release_channel(dsi->reg_dma_chan); + dsi->reg_dma_chan = NULL; +} + static int vc4_dsi_bind(struct device *dev, struct device *master, void *data) { struct platform_device *pdev = to_platform_device(dev); struct drm_device *drm = dev_get_drvdata(master); struct vc4_dsi *dsi = dev_get_drvdata(dev); struct vc4_dsi_encoder *vc4_dsi_encoder; - dma_cap_mask_t dma_mask; int ret; dsi->variant = of_device_get_match_data(dev); @@ -1504,7 +1580,8 @@ return -ENOMEM; INIT_LIST_HEAD(&dsi->bridge_chain); - vc4_dsi_encoder->base.type = VC4_ENCODER_TYPE_DSI1; + vc4_dsi_encoder->base.type = dsi->variant->port ? + VC4_ENCODER_TYPE_DSI1 : VC4_ENCODER_TYPE_DSI0; vc4_dsi_encoder->dsi = dsi; dsi->encoder = &vc4_dsi_encoder->base.base; @@ -1527,6 +1604,8 @@ * so set up a channel for talking to it. */ if (dsi->variant->broken_axi_workaround) { + dma_cap_mask_t dma_mask; + dsi->reg_dma_mem = dma_alloc_coherent(dev, 4, &dsi->reg_dma_paddr, GFP_KERNEL); @@ -1535,8 +1614,13 @@ return -ENOMEM; } + ret = devm_add_action_or_reset(dev, vc4_dsi_dma_mem_release, dsi); + if (ret) + return ret; + dma_cap_zero(dma_mask); dma_cap_set(DMA_MEMCPY, dma_mask); + dsi->reg_dma_chan = dma_request_chan_by_mask(&dma_mask); if (IS_ERR(dsi->reg_dma_chan)) { ret = PTR_ERR(dsi->reg_dma_chan); @@ -1546,6 +1630,10 @@ return ret; } + ret = devm_add_action_or_reset(dev, vc4_dsi_dma_chan_release, dsi); + if (ret) + return ret; + /* Get the physical address of the device's registers. The * struct resource for the regs gives us the bus address * instead. --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_hdmi.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_hdmi.c @@ -79,6 +79,11 @@ #define VC5_HDMI_VERTB_VSPO_SHIFT 16 #define VC5_HDMI_VERTB_VSPO_MASK VC4_MASK(29, 16) +#define VC4_HDMI_MISC_CONTROL_PIXEL_REP_SHIFT 0 +#define VC4_HDMI_MISC_CONTROL_PIXEL_REP_MASK VC4_MASK(3, 0) +#define VC5_HDMI_MISC_CONTROL_PIXEL_REP_SHIFT 0 +#define VC5_HDMI_MISC_CONTROL_PIXEL_REP_MASK VC4_MASK(3, 0) + #define VC5_HDMI_SCRAMBLER_CTL_ENABLE BIT(0) #define VC5_HDMI_DEEP_COLOR_CONFIG_1_INIT_PACK_PHASE_SHIFT 8 @@ -145,6 +150,12 @@ drm_print_regset32(&p, &vc4_hdmi->hdmi_regset); drm_print_regset32(&p, &vc4_hdmi->hd_regset); + drm_print_regset32(&p, &vc4_hdmi->cec_regset); + drm_print_regset32(&p, &vc4_hdmi->csc_regset); + drm_print_regset32(&p, &vc4_hdmi->dvp_regset); + drm_print_regset32(&p, &vc4_hdmi->phy_regset); + drm_print_regset32(&p, &vc4_hdmi->ram_regset); + drm_print_regset32(&p, &vc4_hdmi->rm_regset); return 0; } @@ -455,9 +466,11 @@ const struct vc4_hdmi_register *ram_packet_start = &vc4_hdmi->variant->registers[HDMI_RAM_PACKET_START]; u32 packet_reg = ram_packet_start->offset + VC4_HDMI_PACKET_STRIDE * packet_id; + u32 packet_reg_next = ram_packet_start->offset + + VC4_HDMI_PACKET_STRIDE * (packet_id + 1); void __iomem *base = __vc4_hdmi_get_field_base(vc4_hdmi, ram_packet_start->reg); - uint8_t buffer[VC4_HDMI_PACKET_STRIDE]; + uint8_t buffer[VC4_HDMI_PACKET_STRIDE] = {}; unsigned long flags; ssize_t len, i; int ret; @@ -493,6 +506,13 @@ packet_reg += 4; } + /* + * clear remainder of packet ram as it's included in the + * infoframe and triggers a checksum error on hdmi analyser + */ + for (; packet_reg < packet_reg_next; packet_reg += 4) + writel(0, base + packet_reg); + HDMI_WRITE(HDMI_RAM_PACKET_CONFIG, HDMI_READ(HDMI_RAM_PACKET_CONFIG) | BIT(packet_id)); @@ -970,14 +990,15 @@ VC4_HDMI_VERTA_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, VC4_HDMI_VERTA_VAL)); u32 vertb = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) | - VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, + VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end + + interlaced, VC4_HDMI_VERTB_VBP)); u32 vertb_even = (VC4_SET_FIELD(0, VC4_HDMI_VERTB_VSPO) | VC4_SET_FIELD(mode->crtc_vtotal - - mode->crtc_vsync_end - - interlaced, + mode->crtc_vsync_end, VC4_HDMI_VERTB_VBP)); unsigned long flags; + u32 reg; spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); @@ -1004,6 +1025,11 @@ HDMI_WRITE(HDMI_VERTB0, vertb_even); HDMI_WRITE(HDMI_VERTB1, vertb); + reg = HDMI_READ(HDMI_MISC_CONTROL); + reg &= ~VC4_HDMI_MISC_CONTROL_PIXEL_REP_MASK; + reg |= VC4_SET_FIELD(pixel_rep - 1, VC4_HDMI_MISC_CONTROL_PIXEL_REP); + HDMI_WRITE(HDMI_MISC_CONTROL, reg); + spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); } @@ -1022,13 +1048,13 @@ VC4_SET_FIELD(mode->crtc_vsync_start - mode->crtc_vdisplay, VC5_HDMI_VERTA_VFP) | VC4_SET_FIELD(mode->crtc_vdisplay, VC5_HDMI_VERTA_VAL)); - u32 vertb = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | + u32 vertb = (VC4_SET_FIELD(mode->htotal >> (2 - pixel_rep), + VC5_HDMI_VERTB_VSPO) | VC4_SET_FIELD(mode->crtc_vtotal - mode->crtc_vsync_end, VC4_HDMI_VERTB_VBP)); u32 vertb_even = (VC4_SET_FIELD(0, VC5_HDMI_VERTB_VSPO) | VC4_SET_FIELD(mode->crtc_vtotal - - mode->crtc_vsync_end - - interlaced, + mode->crtc_vsync_end - interlaced, VC4_HDMI_VERTB_VBP)); unsigned long flags; unsigned char gcp; @@ -1102,6 +1128,11 @@ reg |= gcp_en ? VC5_HDMI_GCP_CONFIG_GCP_ENABLE : 0; HDMI_WRITE(HDMI_GCP_CONFIG, reg); + reg = HDMI_READ(HDMI_MISC_CONTROL); + reg &= ~VC5_HDMI_MISC_CONTROL_PIXEL_REP_MASK; + reg |= VC4_SET_FIELD(pixel_rep - 1, VC5_HDMI_MISC_CONTROL_PIXEL_REP); + HDMI_WRITE(HDMI_MISC_CONTROL, reg); + HDMI_WRITE(HDMI_CLOCK_STOP, 0); spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); @@ -1597,18 +1628,37 @@ struct drm_crtc_state *crtc_state, struct drm_connector_state *conn_state) { + struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); + struct drm_connector *connector = &vc4_hdmi->connector; + struct drm_connector_state *old_conn_state = + drm_atomic_get_old_connector_state(conn_state->state, connector); + struct vc4_hdmi_connector_state *old_vc4_state = + conn_state_to_vc4_hdmi_conn_state(old_conn_state); struct vc4_hdmi_connector_state *vc4_state = conn_state_to_vc4_hdmi_conn_state(conn_state); struct drm_display_mode *mode = &crtc_state->adjusted_mode; - struct vc4_hdmi *vc4_hdmi = encoder_to_vc4_hdmi(encoder); unsigned long long tmds_char_rate = mode->clock * 1000; unsigned long long tmds_bit_rate; int ret; - if (vc4_hdmi->variant->unsupported_odd_h_timings && - !(mode->flags & DRM_MODE_FLAG_DBLCLK) && - ((mode->hdisplay % 2) || (mode->hsync_start % 2) || - (mode->hsync_end % 2) || (mode->htotal % 2))) - return -EINVAL; + if (vc4_hdmi->variant->unsupported_odd_h_timings) { + if (mode->flags & DRM_MODE_FLAG_DBLCLK) { + /* Only try to fixup DBLCLK modes to get 480i and 576i + * working. + * A generic solution for all modes with odd horizontal + * timing values seems impossible based on trying to + * solve it for 1366x768 monitors. + */ + if ((mode->hsync_start - mode->hdisplay) & 1) + mode->hsync_start--; + if ((mode->hsync_end - mode->hsync_start) & 1) + mode->hsync_end--; + } + + /* Now check whether we still have odd values remaining */ + if ((mode->hdisplay % 2) || (mode->hsync_start % 2) || + (mode->hsync_end % 2) || (mode->htotal % 2)) + return -EINVAL; + } /* * The 1440p@60 pixel rate is in the same range than the first @@ -1628,6 +1678,11 @@ if (ret) return ret; + /* vc4_hdmi_encoder_compute_config may have changed output_bpc and/or output_format */ + if (vc4_state->output_bpc != old_vc4_state->output_bpc || + vc4_state->output_format != old_vc4_state->output_format) + crtc_state->mode_changed = true; + return 0; } @@ -1941,10 +1996,10 @@ /* Set the MAI threshold */ HDMI_WRITE(HDMI_MAI_THR, - VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICHIGH) | - VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_PANICLOW) | - VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQHIGH) | - VC4_SET_FIELD(0x10, VC4_HD_MAI_THR_DREQLOW)); + VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICHIGH) | + VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_PANICLOW) | + VC4_SET_FIELD(0x06, VC4_HD_MAI_THR_DREQHIGH) | + VC4_SET_FIELD(0x08, VC4_HD_MAI_THR_DREQLOW)); HDMI_WRITE(HDMI_MAI_CONFIG, VC4_HDMI_MAI_CONFIG_BIT_REVERSE | @@ -2035,12 +2090,12 @@ struct device *dev = &vc4_hdmi->pdev->dev; struct platform_device *codec_pdev; const __be32 *addr; - int index; + int index, len; int ret; - if (!of_find_property(dev->of_node, "dmas", NULL)) { + if (!of_find_property(dev->of_node, "dmas", &len) || !len) { dev_warn(dev, - "'dmas' DT property is missing, no HDMI audio\n"); + "'dmas' DT property is missing or empty, no HDMI audio\n"); return 0; } @@ -2521,8 +2576,6 @@ struct cec_connector_info conn_info; struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; - unsigned long flags; - u32 value; int ret; if (!of_find_property(dev->of_node, "interrupts", NULL)) { @@ -2541,15 +2594,6 @@ cec_fill_conn_info_from_drm(&conn_info, &vc4_hdmi->connector); cec_s_conn_info(vc4_hdmi->cec_adap, &conn_info); - spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); - value = HDMI_READ(HDMI_CEC_CNTRL_1); - /* Set the logical address to Unregistered */ - value |= VC4_HDMI_CEC_ADDR_MASK; - HDMI_WRITE(HDMI_CEC_CNTRL_1, value); - spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); - - vc4_hdmi_cec_update_clk_div(vc4_hdmi); - if (vc4_hdmi->variant->external_irq_controller) { ret = request_threaded_irq(platform_get_irq_byname(pdev, "cec-rx"), vc4_cec_irq_handler_rx_bare, @@ -2565,10 +2609,6 @@ if (ret) goto err_remove_cec_rx_handler; } else { - spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); - HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, 0xffffffff); - spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); - ret = request_threaded_irq(platform_get_irq(pdev, 0), vc4_cec_irq_handler, vc4_cec_irq_handler_thread, 0, @@ -2619,7 +2659,6 @@ } static void vc4_hdmi_cec_exit(struct vc4_hdmi *vc4_hdmi) {}; - #endif static int vc4_hdmi_build_regset(struct vc4_hdmi *vc4_hdmi, @@ -2693,9 +2732,16 @@ DRM_ERROR("Failed to get HDMI state machine clock\n"); return PTR_ERR(vc4_hdmi->hsm_clock); } + vc4_hdmi->audio_clock = vc4_hdmi->hsm_clock; vc4_hdmi->cec_clock = vc4_hdmi->hsm_clock; + vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi"); + if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) { + DRM_ERROR("Failed to get HDMI state machine clock\n"); + return PTR_ERR(vc4_hdmi->hsm_rpm_clock); + } + return 0; } @@ -2704,6 +2750,7 @@ struct platform_device *pdev = vc4_hdmi->pdev; struct device *dev = &pdev->dev; struct resource *res; + int ret; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hdmi"); if (!res) @@ -2776,6 +2823,12 @@ return PTR_ERR(vc4_hdmi->hsm_clock); } + vc4_hdmi->hsm_rpm_clock = devm_clk_get(dev, "hdmi"); + if (IS_ERR(vc4_hdmi->hsm_rpm_clock)) { + DRM_ERROR("Failed to get HDMI state machine clock\n"); + return PTR_ERR(vc4_hdmi->hsm_rpm_clock); + } + vc4_hdmi->pixel_bvb_clock = devm_clk_get(dev, "bvb"); if (IS_ERR(vc4_hdmi->pixel_bvb_clock)) { DRM_ERROR("Failed to get pixel bvb clock\n"); @@ -2800,14 +2853,46 @@ return PTR_ERR(vc4_hdmi->reset); } + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->hdmi_regset, VC4_HDMI); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->hd_regset, VC4_HD); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->cec_regset, VC5_CEC); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->csc_regset, VC5_CSC); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->dvp_regset, VC5_DVP); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->phy_regset, VC5_PHY); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->ram_regset, VC5_RAM); + if (ret) + return ret; + + ret = vc4_hdmi_build_regset(vc4_hdmi, &vc4_hdmi->rm_regset, VC5_RM); + if (ret) + return ret; + return 0; } -static int __maybe_unused vc4_hdmi_runtime_suspend(struct device *dev) +static int vc4_hdmi_runtime_suspend(struct device *dev) { struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); - clk_disable_unprepare(vc4_hdmi->hsm_clock); + clk_disable_unprepare(vc4_hdmi->hsm_rpm_clock); return 0; } @@ -2815,13 +2900,64 @@ static int vc4_hdmi_runtime_resume(struct device *dev) { struct vc4_hdmi *vc4_hdmi = dev_get_drvdata(dev); + unsigned long __maybe_unused flags; + u32 __maybe_unused value; + unsigned long rate; int ret; - ret = clk_prepare_enable(vc4_hdmi->hsm_clock); + /* + * The HSM clock is in the HDMI power domain, so we need to set + * its frequency while the power domain is active so that it + * keeps its rate. + */ + ret = clk_set_min_rate(vc4_hdmi->hsm_rpm_clock, HSM_MIN_CLOCK_FREQ); + if (ret) + return ret; + + ret = clk_prepare_enable(vc4_hdmi->hsm_rpm_clock); if (ret) return ret; + /* + * Whenever the RaspberryPi boots without an HDMI monitor + * plugged in, the firmware won't have initialized the HSM clock + * rate and it will be reported as 0. + * + * If we try to access a register of the controller in such a + * case, it will lead to a silent CPU stall. Let's make sure we + * prevent such a case. + */ + rate = clk_get_rate(vc4_hdmi->hsm_rpm_clock); + if (!rate) { + ret = -EINVAL; + goto err_disable_clk; + } + + if (vc4_hdmi->variant->reset) + vc4_hdmi->variant->reset(vc4_hdmi); + +#ifdef CONFIG_DRM_VC4_HDMI_CEC + spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); + value = HDMI_READ(HDMI_CEC_CNTRL_1); + /* Set the logical address to Unregistered */ + value |= VC4_HDMI_CEC_ADDR_MASK; + HDMI_WRITE(HDMI_CEC_CNTRL_1, value); + spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); + + vc4_hdmi_cec_update_clk_div(vc4_hdmi); + + if (!vc4_hdmi->variant->external_irq_controller) { + spin_lock_irqsave(&vc4_hdmi->hw_lock, flags); + HDMI_WRITE(HDMI_CEC_CPU_MASK_SET, 0xffffffff); + spin_unlock_irqrestore(&vc4_hdmi->hw_lock, flags); + } +#endif + return 0; + +err_disable_clk: + clk_disable_unprepare(vc4_hdmi->hsm_clock); + return ret; } static int vc4_hdmi_bind(struct device *dev, struct device *master, void *data) @@ -2898,20 +3034,15 @@ vc4_hdmi->disable_4kp60 = true; } + pm_runtime_enable(dev); + /* - * We need to have the device powered up at this point to call - * our reset hook and for the CEC init. + * We need to have the device powered up at this point to call + * our reset hook and for the CEC init. */ - ret = vc4_hdmi_runtime_resume(dev); + ret = pm_runtime_resume_and_get(dev); if (ret) - goto err_put_ddc; - - pm_runtime_get_noresume(dev); - pm_runtime_set_active(dev); - pm_runtime_enable(dev); - - if (vc4_hdmi->variant->reset) - vc4_hdmi->variant->reset(vc4_hdmi); + goto err_disable_runtime_pm; if ((of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi0") || of_device_is_compatible(dev->of_node, "brcm,bcm2711-hdmi1")) && @@ -2957,6 +3088,7 @@ err_destroy_encoder: drm_encoder_cleanup(encoder); pm_runtime_put_sync(dev); +err_disable_runtime_pm: pm_runtime_disable(dev); err_put_ddc: put_device(&vc4_hdmi->ddc->dev); --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_hdmi.h +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_hdmi.h @@ -171,6 +171,7 @@ struct clk *cec_clock; struct clk *pixel_clock; struct clk *hsm_clock; + struct clk *hsm_rpm_clock; struct clk *audio_clock; struct clk *pixel_bvb_clock; @@ -179,6 +180,14 @@ struct debugfs_regset32 hdmi_regset; struct debugfs_regset32 hd_regset; + /* VC5 only */ + struct debugfs_regset32 cec_regset; + struct debugfs_regset32 csc_regset; + struct debugfs_regset32 dvp_regset; + struct debugfs_regset32 phy_regset; + struct debugfs_regset32 ram_regset; + struct debugfs_regset32 rm_regset; + /** * @hw_lock: Spinlock protecting device register access. */ --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_hdmi_regs.h +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_hdmi_regs.h @@ -127,6 +127,7 @@ HDMI_VERTB0, HDMI_VERTB1, HDMI_VID_CTL, + HDMI_MISC_CONTROL, }; struct vc4_hdmi_register { @@ -237,6 +238,7 @@ VC4_HDMI_REG(HDMI_VERTB0, 0x0f0), VC4_HDMI_REG(HDMI_VERTA1, 0x0f4), VC4_HDMI_REG(HDMI_VERTB1, 0x0f8), + VC4_HDMI_REG(HDMI_MISC_CONTROL, 0x100), VC4_HDMI_REG(HDMI_MAI_CHANNEL_MAP, 0x09c), VC4_HDMI_REG(HDMI_MAI_CONFIG, 0x0a0), VC4_HDMI_REG(HDMI_DEEP_COLOR_CONFIG_1, 0x170), @@ -319,6 +321,7 @@ VC4_HDMI_REG(HDMI_VERTB0, 0x0f0), VC4_HDMI_REG(HDMI_VERTA1, 0x0f4), VC4_HDMI_REG(HDMI_VERTB1, 0x0f8), + VC4_HDMI_REG(HDMI_MISC_CONTROL, 0x100), VC4_HDMI_REG(HDMI_MAI_CHANNEL_MAP, 0x09c), VC4_HDMI_REG(HDMI_MAI_CONFIG, 0x0a0), VC4_HDMI_REG(HDMI_DEEP_COLOR_CONFIG_1, 0x170), @@ -420,7 +423,7 @@ const struct vc4_hdmi_variant *variant = hdmi->variant; void __iomem *base; - WARN_ON(!pm_runtime_active(&hdmi->pdev->dev)); + WARN_ON(pm_runtime_status_suspended(&hdmi->pdev->dev)); if (reg >= variant->num_registers) { dev_warn(&hdmi->pdev->dev, @@ -450,7 +453,7 @@ lockdep_assert_held(&hdmi->hw_lock); - WARN_ON(!pm_runtime_active(&hdmi->pdev->dev)); + WARN_ON(pm_runtime_status_suspended(&hdmi->pdev->dev)); if (reg >= variant->num_registers) { dev_warn(&hdmi->pdev->dev, --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_kms.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_kms.c @@ -197,8 +197,8 @@ struct drm_private_state *priv_state; priv_state = drm_atomic_get_new_private_obj_state(state, &vc4->hvs_channels); - if (IS_ERR(priv_state)) - return ERR_CAST(priv_state); + if (!priv_state) + return ERR_PTR(-EINVAL); return to_vc4_hvs_state(priv_state); } @@ -210,8 +210,8 @@ struct drm_private_state *priv_state; priv_state = drm_atomic_get_old_private_obj_state(state, &vc4->hvs_channels); - if (IS_ERR(priv_state)) - return ERR_CAST(priv_state); + if (!priv_state) + return ERR_PTR(-EINVAL); return to_vc4_hvs_state(priv_state); } @@ -950,7 +950,9 @@ continue; num_outputs++; - cob_rate += hvs_new_state->fifo_state[i].fifo_load; + cob_rate = max_t(unsigned long, + hvs_new_state->fifo_state[i].fifo_load, + cob_rate); } pixel_rate = load_state->hvs_load; --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_plane.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_plane.c @@ -310,16 +310,16 @@ adjhdisplay, crtc_state->mode.hdisplay); vc4_pstate->crtc_x += left; - if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - left) - vc4_pstate->crtc_x = crtc_state->mode.hdisplay - left; + if (vc4_pstate->crtc_x > crtc_state->mode.hdisplay - right) + vc4_pstate->crtc_x = crtc_state->mode.hdisplay - right; adjvdisplay = crtc_state->mode.vdisplay - (top + bottom); vc4_pstate->crtc_y = DIV_ROUND_CLOSEST(vc4_pstate->crtc_y * adjvdisplay, crtc_state->mode.vdisplay); vc4_pstate->crtc_y += top; - if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - top) - vc4_pstate->crtc_y = crtc_state->mode.vdisplay - top; + if (vc4_pstate->crtc_y > crtc_state->mode.vdisplay - bottom) + vc4_pstate->crtc_y = crtc_state->mode.vdisplay - bottom; vc4_pstate->crtc_w = DIV_ROUND_CLOSEST(vc4_pstate->crtc_w * adjhdisplay, @@ -339,7 +339,6 @@ struct vc4_plane_state *vc4_state = to_vc4_plane_state(state); struct drm_framebuffer *fb = state->fb; struct drm_gem_cma_object *bo = drm_fb_cma_get_gem_obj(fb, 0); - u32 subpixel_src_mask = (1 << 16) - 1; int num_planes = fb->format->num_planes; struct drm_crtc_state *crtc_state; u32 h_subsample = fb->format->hsub; @@ -361,18 +360,15 @@ for (i = 0; i < num_planes; i++) vc4_state->offsets[i] = bo->paddr + fb->offsets[i]; - /* We don't support subpixel source positioning for scaling. */ - if ((state->src.x1 & subpixel_src_mask) || - (state->src.x2 & subpixel_src_mask) || - (state->src.y1 & subpixel_src_mask) || - (state->src.y2 & subpixel_src_mask)) { - return -EINVAL; - } - - vc4_state->src_x = state->src.x1 >> 16; - vc4_state->src_y = state->src.y1 >> 16; - vc4_state->src_w[0] = (state->src.x2 - state->src.x1) >> 16; - vc4_state->src_h[0] = (state->src.y2 - state->src.y1) >> 16; + /* + * We don't support subpixel source positioning for scaling, + * but fractional coordinates can be generated by clipping + * so just round for now + */ + vc4_state->src_x = DIV_ROUND_CLOSEST(state->src.x1, 1 << 16); + vc4_state->src_y = DIV_ROUND_CLOSEST(state->src.y1, 1 << 16); + vc4_state->src_w[0] = DIV_ROUND_CLOSEST(state->src.x2, 1 << 16) - vc4_state->src_x; + vc4_state->src_h[0] = DIV_ROUND_CLOSEST(state->src.y2, 1 << 16) - vc4_state->src_y; vc4_state->crtc_x = state->dst.x1; vc4_state->crtc_y = state->dst.y1; --- linux-5.19.0.orig/drivers/gpu/drm/vc4/vc4_vec.c +++ linux-5.19.0/drivers/gpu/drm/vc4/vc4_vec.c @@ -256,7 +256,7 @@ static const struct drm_display_mode ntsc_mode = { DRM_MODE("720x480", DRM_MODE_TYPE_DRIVER, 13500, 720, 720 + 14, 720 + 14 + 64, 720 + 14 + 64 + 60, 0, - 480, 480 + 3, 480 + 3 + 3, 480 + 3 + 3 + 16, 0, + 480, 480 + 7, 480 + 7 + 6, 525, 0, DRM_MODE_FLAG_INTERLACE) }; @@ -278,7 +278,7 @@ static const struct drm_display_mode pal_mode = { DRM_MODE("720x576", DRM_MODE_TYPE_DRIVER, 13500, 720, 720 + 20, 720 + 20 + 64, 720 + 20 + 64 + 60, 0, - 576, 576 + 2, 576 + 2 + 3, 576 + 2 + 3 + 20, 0, + 576, 576 + 4, 576 + 4 + 6, 625, 0, DRM_MODE_FLAG_INTERLACE) }; --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_display.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_display.c @@ -348,6 +348,8 @@ vgdev->ddev->mode_config.max_width = XRES_MAX; vgdev->ddev->mode_config.max_height = YRES_MAX; + vgdev->ddev->mode_config.fb_modifiers_not_supported = true; + for (i = 0 ; i < vgdev->num_scanouts; ++i) vgdev_output_init(vgdev, i); --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_gem.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_gem.c @@ -228,8 +228,10 @@ for (i = 0; i < objs->nents; ++i) { ret = dma_resv_reserve_fences(objs->objs[i]->resv, 1); - if (ret) + if (ret) { + virtio_gpu_array_unlock_resv(objs); return ret; + } } return ret; } --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_ioctl.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_ioctl.c @@ -47,7 +47,7 @@ struct virtio_gpu_fence_event *e = NULL; int ret; - if (!(vfpriv->ring_idx_mask & (1 << ring_idx))) + if (!(vfpriv->ring_idx_mask & BIT_ULL(ring_idx))) return 0; e = kzalloc(sizeof(*e), GFP_KERNEL); @@ -168,7 +168,7 @@ * array contains any fence from a foreign context. */ ret = 0; - if (!dma_fence_match_context(in_fence, vgdev->fence_drv.context)) + if (!dma_fence_match_context(in_fence, fence_ctx + ring_idx)) ret = dma_fence_wait(in_fence, true); dma_fence_put(in_fence); @@ -580,8 +580,10 @@ spin_unlock(&vgdev->display_info_lock); /* not in cache - need to talk to hw */ - virtio_gpu_cmd_get_capset(vgdev, found_valid, args->cap_set_ver, - &cache_ent); + ret = virtio_gpu_cmd_get_capset(vgdev, found_valid, args->cap_set_ver, + &cache_ent); + if (ret) + return ret; virtio_gpu_notify(vgdev); copy_exit: --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_object.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_object.c @@ -168,9 +168,10 @@ * since virtio_gpu doesn't support dma-buf import from other devices. */ shmem->pages = drm_gem_shmem_get_sg_table(&bo->base); - if (!shmem->pages) { + if (IS_ERR(shmem->pages)) { drm_gem_shmem_unpin(&bo->base); - return -EINVAL; + shmem->pages = NULL; + return PTR_ERR(shmem->pages); } if (use_dma_api) { @@ -248,6 +249,8 @@ ret = virtio_gpu_object_shmem_init(vgdev, bo, &ents, &nents); if (ret != 0) { + if (fence) + virtio_gpu_array_unlock_resv(objs); virtio_gpu_array_put_free(objs); virtio_gpu_free_object(&shmem_obj->base); return ret; --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_plane.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -266,14 +266,14 @@ } static void virtio_gpu_plane_cleanup_fb(struct drm_plane *plane, - struct drm_plane_state *old_state) + struct drm_plane_state *state) { struct virtio_gpu_framebuffer *vgfb; - if (!plane->state->fb) + if (!state->fb) return; - vgfb = to_virtio_gpu_framebuffer(plane->state->fb); + vgfb = to_virtio_gpu_framebuffer(state->fb); if (vgfb->fence) { dma_fence_put(&vgfb->fence->f); vgfb->fence = NULL; --- linux-5.19.0.orig/drivers/gpu/drm/virtio/virtgpu_vq.c +++ linux-5.19.0/drivers/gpu/drm/virtio/virtgpu_vq.c @@ -595,7 +595,7 @@ bool use_dma_api = !virtio_has_dma_quirk(vgdev->vdev); struct virtio_gpu_object_shmem *shmem = to_virtio_gpu_shmem(bo); - if (use_dma_api) + if (virtio_gpu_is_shmem(bo) && use_dma_api) dma_sync_sgtable_for_device(vgdev->vdev->dev.parent, shmem->pages, DMA_TO_DEVICE); --- linux-5.19.0.orig/drivers/gpu/drm/vkms/vkms_composer.c +++ linux-5.19.0/drivers/gpu/drm/vkms/vkms_composer.c @@ -157,7 +157,7 @@ void *vaddr; void (*pixel_blend)(const u8 *p_src, u8 *p_dst); - if (WARN_ON(iosys_map_is_null(&primary_composer->map[0]))) + if (WARN_ON(iosys_map_is_null(&plane_composer->map[0]))) return; vaddr = plane_composer->map[0].vaddr; --- linux-5.19.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c +++ linux-5.19.0/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c @@ -1076,6 +1076,7 @@ if (desc_len < 0) { atomic_set(&dev_priv->mksstat_user_pids[slot], 0); + __free_page(page); return -EFAULT; } @@ -1084,21 +1085,21 @@ reset_ppn_array(pdesc->strsPPNs, ARRAY_SIZE(pdesc->strsPPNs)); /* Pin mksGuestStat user pages and store those in the instance descriptor */ - nr_pinned_stat = pin_user_pages(arg->stat, num_pages_stat, FOLL_LONGTERM, pages_stat, NULL); + nr_pinned_stat = pin_user_pages_fast(arg->stat, num_pages_stat, FOLL_LONGTERM, pages_stat); if (num_pages_stat != nr_pinned_stat) goto err_pin_stat; for (i = 0; i < num_pages_stat; ++i) pdesc->statPPNs[i] = page_to_pfn(pages_stat[i]); - nr_pinned_info = pin_user_pages(arg->info, num_pages_info, FOLL_LONGTERM, pages_info, NULL); + nr_pinned_info = pin_user_pages_fast(arg->info, num_pages_info, FOLL_LONGTERM, pages_info); if (num_pages_info != nr_pinned_info) goto err_pin_info; for (i = 0; i < num_pages_info; ++i) pdesc->infoPPNs[i] = page_to_pfn(pages_info[i]); - nr_pinned_strs = pin_user_pages(arg->strs, num_pages_strs, FOLL_LONGTERM, pages_strs, NULL); + nr_pinned_strs = pin_user_pages_fast(arg->strs, num_pages_strs, FOLL_LONGTERM, pages_strs); if (num_pages_strs != nr_pinned_strs) goto err_pin_strs; --- linux-5.19.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +++ linux-5.19.0/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c @@ -950,6 +950,10 @@ struct drm_device *dev = &dev_priv->drm; int i, ret; + /* Screen objects won't work if GMR's aren't available */ + if (!dev_priv->has_gmr) + return -ENOSYS; + if (!(dev_priv->capabilities & SVGA_CAP_SCREEN_OBJECT_2)) { return -ENOSYS; } --- linux-5.19.0.orig/drivers/gpu/host1x/dev.c +++ linux-5.19.0/drivers/gpu/host1x/dev.c @@ -229,6 +229,10 @@ static bool host1x_wants_iommu(struct host1x *host1x) { + /* Our IOMMU usage policy doesn't currently play well with GART */ + if (of_machine_is_compatible("nvidia,tegra20")) + return false; + /* * If we support addressing a maximum of 32 bits of physical memory * and if the host1x firewall is enabled, there's no need to enable --- linux-5.19.0.orig/drivers/hid/Kconfig +++ linux-5.19.0/drivers/hid/Kconfig @@ -1141,6 +1141,12 @@ Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic CLLRCMCE remote control. +config HID_TOPRE + tristate "Topre REALFORCE keyboards" + depends on HID + help + Say Y for N-key rollover support on Topre REALFORCE R2 108 key keyboards. + config HID_THINGM tristate "ThingM blink(1) USB RGB LED" depends on HID --- linux-5.19.0.orig/drivers/hid/Makefile +++ linux-5.19.0/drivers/hid/Makefile @@ -123,6 +123,7 @@ obj-$(CONFIG_HID_THRUSTMASTER) += hid-tmff.o hid-thrustmaster.o obj-$(CONFIG_HID_TIVO) += hid-tivo.o obj-$(CONFIG_HID_TOPSEED) += hid-topseed.o +obj-$(CONFIG_HID_TOPRE) += hid-topre.o obj-$(CONFIG_HID_TWINHAN) += hid-twinhan.o obj-$(CONFIG_HID_U2FZERO) += hid-u2fzero.o hid-uclogic-objs := hid-uclogic-core.o \ --- linux-5.19.0.orig/drivers/hid/amd-sfh-hid/amd_sfh_client.c +++ linux-5.19.0/drivers/hid/amd-sfh-hid/amd_sfh_client.c @@ -173,6 +173,8 @@ dev = &privdata->pdev->dev; cl_data->num_hid_devices = amd_mp2_get_sensor_num(privdata, &cl_data->sensor_idx[0]); + if (cl_data->num_hid_devices == 0) + return -ENODEV; INIT_DELAYED_WORK(&cl_data->work, amd_sfh_work); INIT_DELAYED_WORK(&cl_data->work_buffer, amd_sfh_work_buffer); @@ -183,6 +185,10 @@ in_data->sensor_virt_addr[i] = dma_alloc_coherent(dev, sizeof(int) * 8, &cl_data->sensor_dma_addr[i], GFP_KERNEL); + if (!in_data->sensor_virt_addr[i]) { + rc = -ENOMEM; + goto cleanup; + } cl_data->sensor_sts[i] = SENSOR_DISABLED; cl_data->sensor_requested_cnt[i] = 0; cl_data->cur_hid_dev = i; --- linux-5.19.0.orig/drivers/hid/amd-sfh-hid/amd_sfh_hid.c +++ linux-5.19.0/drivers/hid/amd-sfh-hid/amd_sfh_hid.c @@ -101,11 +101,15 @@ void amdtp_hid_wakeup(struct hid_device *hid) { - struct amdtp_hid_data *hid_data = hid->driver_data; - struct amdtp_cl_data *cli_data = hid_data->cli_data; + struct amdtp_hid_data *hid_data; + struct amdtp_cl_data *cli_data; - cli_data->request_done[cli_data->cur_hid_dev] = true; - wake_up_interruptible(&hid_data->hid_wait); + if (hid) { + hid_data = hid->driver_data; + cli_data = hid_data->cli_data; + cli_data->request_done[cli_data->cur_hid_dev] = true; + wake_up_interruptible(&hid_data->hid_wait); + } } static struct hid_ll_driver amdtp_hid_ll_driver = { --- linux-5.19.0.orig/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c +++ linux-5.19.0/drivers/hid/amd-sfh-hid/amd_sfh_pcie.c @@ -285,11 +285,29 @@ return 0; } +static const struct dmi_system_id dmi_nodevs[] = { + { + /* + * Google Chromebooks use Chrome OS Embedded Controller Sensor + * Hub instead of Sensor Hub Fusion and leaves MP2 + * uninitialized, which disables all functionalities, even + * including the registers necessary for feature detections. + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Google"), + }, + }, + { } +}; + static int amd_mp2_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct amd_mp2_dev *privdata; int rc; + if (dmi_first_match(dmi_nodevs)) + return -ENODEV; + privdata = devm_kzalloc(&pdev->dev, sizeof(*privdata), GFP_KERNEL); if (!privdata) return -ENOMEM; @@ -327,7 +345,8 @@ rc = amd_sfh_hid_client_init(privdata); if (rc) { amd_sfh_clear_intr(privdata); - dev_err(&pdev->dev, "amd_sfh_hid_client_init failed\n"); + if (rc != -EOPNOTSUPP) + dev_err(&pdev->dev, "amd_sfh_hid_client_init failed\n"); return rc; } --- linux-5.19.0.orig/drivers/hid/hid-alps.c +++ linux-5.19.0/drivers/hid/hid-alps.c @@ -831,6 +831,8 @@ { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1) }, { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, + USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_U1_UNICORN_LEGACY) }, + { HID_DEVICE(HID_BUS_ANY, HID_GROUP_ANY, USB_VENDOR_ID_ALPS_JP, HID_DEVICE_ID_ALPS_T4_BTNLESS) }, { } }; --- linux-5.19.0.orig/drivers/hid/hid-asus.c +++ linux-5.19.0/drivers/hid/hid-asus.c @@ -1212,6 +1212,13 @@ rdesc = new_rdesc; } + if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD && + *rsize == 331 && rdesc[190] == 0x85 && rdesc[191] == 0x5a && + rdesc[204] == 0x95 && rdesc[205] == 0x05) { + hid_info(hdev, "Fixing up Asus N-KEY keyb report descriptor\n"); + rdesc[205] = 0x01; + } + return rdesc; } --- linux-5.19.0.orig/drivers/hid/hid-core.c +++ linux-5.19.0/drivers/hid/hid-core.c @@ -1315,6 +1315,9 @@ if (!value || !n) return 0; + if (n > 32) + n = 32; + switch (n) { case 8: return ((__s8)value); case 16: return ((__s16)value); --- linux-5.19.0.orig/drivers/hid/hid-cp2112.c +++ linux-5.19.0/drivers/hid/hid-cp2112.c @@ -790,6 +790,11 @@ data->word = le16_to_cpup((__le16 *)buf); break; case I2C_SMBUS_I2C_BLOCK_DATA: + if (read_length > I2C_SMBUS_BLOCK_MAX) { + ret = -EINVAL; + goto power_normal; + } + memcpy(data->block + 1, buf, read_length); break; case I2C_SMBUS_BLOCK_DATA: --- linux-5.19.0.orig/drivers/hid/hid-hyperv.c +++ linux-5.19.0/drivers/hid/hid-hyperv.c @@ -499,7 +499,7 @@ ret = hid_add_device(hid_dev); if (ret) - goto probe_err1; + goto probe_err2; ret = hid_parse(hid_dev); --- linux-5.19.0.orig/drivers/hid/hid-ids.h +++ linux-5.19.0/drivers/hid/hid-ids.h @@ -185,6 +185,8 @@ #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021 0x029c #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021 0x029a #define USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_NUMPAD_2021 0x029f +#define USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT 0x8102 +#define USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY 0x8302 #define USB_VENDOR_ID_ASUS 0x0486 #define USB_DEVICE_ID_ASUS_T91MT 0x0185 @@ -272,6 +274,7 @@ #define USB_DEVICE_ID_CH_AXIS_295 0x001c #define USB_VENDOR_ID_CHERRY 0x046a +#define USB_DEVICE_ID_CHERRY_MOUSE_000C 0x000c #define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 #define USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR 0x0027 @@ -413,6 +416,8 @@ #define USB_DEVICE_ID_ASUS_UX550VE_TOUCHSCREEN 0x2544 #define USB_DEVICE_ID_ASUS_UX550_TOUCHSCREEN 0x2706 #define I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN 0x261A +#define I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN 0x2A1C +#define I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN 0x279F #define USB_VENDOR_ID_ELECOM 0x056e #define USB_DEVICE_ID_ELECOM_BM084 0x0061 @@ -863,6 +868,7 @@ #define USB_DEVICE_ID_MADCATZ_BEATPAD 0x4540 #define USB_DEVICE_ID_MADCATZ_RAT5 0x1705 #define USB_DEVICE_ID_MADCATZ_RAT9 0x1709 +#define USB_DEVICE_ID_MADCATZ_MMO7 0x1713 #define USB_VENDOR_ID_MCC 0x09db #define USB_DEVICE_ID_MCC_PMD1024LS 0x0076 @@ -912,6 +918,7 @@ #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_DEVICE_ID_MS_MOUSE_0783 0x0783 #define USB_VENDOR_ID_MOJO 0x8282 #define USB_DEVICE_ID_RETRO_ADAPTER 0x3201 @@ -1138,6 +1145,7 @@ #define USB_DEVICE_ID_SONY_PS4_CONTROLLER_2 0x09cc #define USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE 0x0ba0 #define USB_DEVICE_ID_SONY_PS5_CONTROLLER 0x0ce6 +#define USB_DEVICE_ID_SONY_PS5_CONTROLLER_2 0x0df2 #define USB_DEVICE_ID_SONY_MOTION_CONTROLLER 0x03d5 #define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f #define USB_DEVICE_ID_SONY_BUZZ_CONTROLLER 0x0002 @@ -1209,6 +1217,7 @@ #define USB_DEVICE_ID_SYNAPTICS_DELL_K15A 0x6e21 #define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1002 0x73f4 #define USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003 0x73f5 +#define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5_017 0x73f6 #define USB_DEVICE_ID_SYNAPTICS_ACER_SWITCH5 0x81a7 #define USB_VENDOR_ID_TEXAS_INSTRUMENTS 0x2047 @@ -1227,6 +1236,9 @@ #define USB_DEVICE_ID_TIVO_SLIDE 0x1201 #define USB_DEVICE_ID_TIVO_SLIDE_PRO 0x1203 +#define USB_VENDOR_ID_TOPRE 0x0853 +#define USB_DEVICE_ID_TOPRE_REALFORCE_R2_108 0x0148 + #define USB_VENDOR_ID_TOPSEED 0x0766 #define USB_DEVICE_ID_TOPSEED_CYBERLINK 0x0204 @@ -1369,6 +1381,7 @@ #define USB_VENDOR_ID_PRIMAX 0x0461 #define USB_DEVICE_ID_PRIMAX_MOUSE_4D22 0x4d22 +#define USB_DEVICE_ID_PRIMAX_MOUSE_4E2A 0x4e2a #define USB_DEVICE_ID_PRIMAX_KEYBOARD 0x4e05 #define USB_DEVICE_ID_PRIMAX_REZEL 0x4e72 #define USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F 0x4d0f --- linux-5.19.0.orig/drivers/hid/hid-input.c +++ linux-5.19.0/drivers/hid/hid-input.c @@ -381,6 +381,10 @@ HID_BATTERY_QUIRK_IGNORE }, { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO_TOUCHSCREEN), HID_BATTERY_QUIRK_IGNORE }, + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_SURFACE_GO2_TOUCHSCREEN), + HID_BATTERY_QUIRK_IGNORE }, + { HID_I2C_DEVICE(USB_VENDOR_ID_ELAN, I2C_DEVICE_ID_LENOVO_YOGA_C630_TOUCHSCREEN), + HID_BATTERY_QUIRK_IGNORE }, {} }; @@ -1530,7 +1534,10 @@ * assume ours */ if (!report->tool) - hid_report_set_tool(report, input, usage->code); + report->tool = usage->code; + + /* drivers may have changed the value behind our back, resend it */ + hid_report_set_tool(report, input, report->tool); } else { hid_report_release_tool(report, input, usage->code); } --- linux-5.19.0.orig/drivers/hid/hid-ite.c +++ linux-5.19.0/drivers/hid/hid-ite.c @@ -121,6 +121,11 @@ USB_VENDOR_ID_SYNAPTICS, USB_DEVICE_ID_SYNAPTICS_ACER_ONE_S1003), .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_SWITCH5_017), + .driver_data = QUIRK_TOUCHPAD_ON_OFF_REPORT }, { } }; MODULE_DEVICE_TABLE(hid, ite_devices); --- linux-5.19.0.orig/drivers/hid/hid-lg4ff.c +++ linux-5.19.0/drivers/hid/hid-lg4ff.c @@ -872,6 +872,12 @@ return -ENOMEM; i = strlen(lbuf); + + if (i == 0) { + kfree(lbuf); + return -EINVAL; + } + if (lbuf[i-1] == '\n') { if (i == 1) { kfree(lbuf); --- linux-5.19.0.orig/drivers/hid/hid-magicmouse.c +++ linux-5.19.0/drivers/hid/hid-magicmouse.c @@ -480,7 +480,7 @@ magicmouse_raw_event(hdev, report, data + 2, data[1]); magicmouse_raw_event(hdev, report, data + 2 + data[1], size - 2 - data[1]); - break; + return 0; default: return 0; } --- linux-5.19.0.orig/drivers/hid/hid-mcp2221.c +++ linux-5.19.0/drivers/hid/hid-mcp2221.c @@ -385,6 +385,9 @@ data_len = 7; break; default: + if (len > I2C_SMBUS_BLOCK_MAX) + return -EINVAL; + memcpy(&mcp->txbuf[5], buf, len); data_len = len + 5; } @@ -837,12 +840,19 @@ return ret; } - ret = hid_hw_start(hdev, HID_CONNECT_HIDRAW); + /* + * This driver uses the .raw_event callback and therefore does not need any + * HID_CONNECT_xxx flags. + */ + ret = hid_hw_start(hdev, 0); if (ret) { hid_err(hdev, "can't start hardware\n"); return ret; } + hid_info(hdev, "USB HID v%x.%02x Device [%s] on %s\n", hdev->version >> 8, + hdev->version & 0xff, hdev->name, hdev->phys); + ret = hid_hw_open(hdev); if (ret) { hid_err(hdev, "can't open device\n"); @@ -867,8 +877,7 @@ mcp->adapter.retries = 1; mcp->adapter.dev.parent = &hdev->dev; snprintf(mcp->adapter.name, sizeof(mcp->adapter.name), - "MCP2221 usb-i2c bridge on hidraw%d", - ((struct hidraw *)hdev->hidraw)->minor); + "MCP2221 usb-i2c bridge"); ret = i2c_add_adapter(&mcp->adapter); if (ret) { --- linux-5.19.0.orig/drivers/hid/hid-multitouch.c +++ linux-5.19.0/drivers/hid/hid-multitouch.c @@ -194,6 +194,7 @@ #define MT_CLS_WIN_8_FORCE_MULTI_INPUT 0x0015 #define MT_CLS_WIN_8_DISABLE_WAKEUP 0x0016 #define MT_CLS_WIN_8_NO_STICKY_FINGERS 0x0017 +#define MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU 0x0018 /* vendor specific classes */ #define MT_CLS_3M 0x0101 @@ -286,6 +287,15 @@ MT_QUIRK_WIN8_PTP_BUTTONS | MT_QUIRK_FORCE_MULTI_INPUT, .export_all_inputs = true }, + { .name = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU, + .quirks = 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 | + MT_QUIRK_NOT_SEEN_MEANS_UP, + .export_all_inputs = true }, { .name = MT_CLS_WIN_8_DISABLE_WAKEUP, .quirks = MT_QUIRK_ALWAYS_VALID | MT_QUIRK_IGNORE_DUPLICATES | @@ -783,6 +793,7 @@ case HID_DG_CONFIDENCE: if ((cls->name == MT_CLS_WIN_8 || cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT || + cls->name == MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU || cls->name == MT_CLS_WIN_8_DISABLE_WAKEUP) && (field->application == HID_DG_TOUCHPAD || field->application == HID_DG_TOUCHSCREEN)) @@ -1175,7 +1186,7 @@ int contact_count = -1; /* sticky fingers release in progress, abort */ - if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags)) + if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags)) return; scantime = *app->scantime; @@ -1256,7 +1267,7 @@ del_timer(&td->release_timer); } - clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags); + clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags); } static int mt_touch_input_configured(struct hid_device *hdev, @@ -1688,11 +1699,11 @@ * An input report came in just before we release the sticky fingers, * it will take care of the sticky fingers. */ - if (test_and_set_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags)) + if (test_and_set_bit_lock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags)) return; if (test_bit(MT_IO_FLAGS_PENDING_SLOTS, &td->mt_io_flags)) mt_release_contacts(hdev); - clear_bit(MT_IO_FLAGS_RUNNING, &td->mt_io_flags); + clear_bit_unlock(MT_IO_FLAGS_RUNNING, &td->mt_io_flags); } static int mt_probe(struct hid_device *hdev, const struct hid_device_id *id) @@ -2035,7 +2046,7 @@ USB_DEVICE_ID_LENOVO_X1_TAB3) }, /* Lenovo X12 TAB Gen 1 */ - { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, + { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT_NSMU, HID_DEVICE(BUS_USB, HID_GROUP_MULTITOUCH_WIN_8, USB_VENDOR_ID_LENOVO, USB_DEVICE_ID_LENOVO_X12_TAB) }, --- linux-5.19.0.orig/drivers/hid/hid-nintendo.c +++ linux-5.19.0/drivers/hid/hid-nintendo.c @@ -761,12 +761,31 @@ cal_y->max = cal_y->center + y_max_above; cal_y->min = cal_y->center - y_min_below; - return 0; + /* check if calibration values are plausible */ + if (cal_x->min >= cal_x->center || cal_x->center >= cal_x->max || + cal_y->min >= cal_y->center || cal_y->center >= cal_y->max) + ret = -EINVAL; + + return ret; } static const u16 DFLT_STICK_CAL_CEN = 2000; static const u16 DFLT_STICK_CAL_MAX = 3500; static const u16 DFLT_STICK_CAL_MIN = 500; +static void joycon_use_default_calibration(struct hid_device *hdev, + struct joycon_stick_cal *cal_x, + struct joycon_stick_cal *cal_y, + const char *stick, int ret) +{ + hid_warn(hdev, + "Failed to read %s stick cal, using defaults; e=%d\n", + stick, ret); + + cal_x->center = cal_y->center = DFLT_STICK_CAL_CEN; + cal_x->max = cal_y->max = DFLT_STICK_CAL_MAX; + cal_x->min = cal_y->min = DFLT_STICK_CAL_MIN; +} + static int joycon_request_calibration(struct joycon_ctlr *ctlr) { u16 left_stick_addr = JC_CAL_FCT_DATA_LEFT_ADDR; @@ -794,38 +813,24 @@ &ctlr->left_stick_cal_x, &ctlr->left_stick_cal_y, true); - if (ret) { - hid_warn(ctlr->hdev, - "Failed to read left stick cal, using dflts; e=%d\n", - ret); - ctlr->left_stick_cal_x.center = DFLT_STICK_CAL_CEN; - ctlr->left_stick_cal_x.max = DFLT_STICK_CAL_MAX; - ctlr->left_stick_cal_x.min = DFLT_STICK_CAL_MIN; - - ctlr->left_stick_cal_y.center = DFLT_STICK_CAL_CEN; - ctlr->left_stick_cal_y.max = DFLT_STICK_CAL_MAX; - ctlr->left_stick_cal_y.min = DFLT_STICK_CAL_MIN; - } + if (ret) + joycon_use_default_calibration(ctlr->hdev, + &ctlr->left_stick_cal_x, + &ctlr->left_stick_cal_y, + "left", ret); /* read the right stick calibration data */ ret = joycon_read_stick_calibration(ctlr, right_stick_addr, &ctlr->right_stick_cal_x, &ctlr->right_stick_cal_y, false); - if (ret) { - hid_warn(ctlr->hdev, - "Failed to read right stick cal, using dflts; e=%d\n", - ret); - ctlr->right_stick_cal_x.center = DFLT_STICK_CAL_CEN; - ctlr->right_stick_cal_x.max = DFLT_STICK_CAL_MAX; - ctlr->right_stick_cal_x.min = DFLT_STICK_CAL_MIN; - - ctlr->right_stick_cal_y.center = DFLT_STICK_CAL_CEN; - ctlr->right_stick_cal_y.max = DFLT_STICK_CAL_MAX; - ctlr->right_stick_cal_y.min = DFLT_STICK_CAL_MIN; - } + if (ret) + joycon_use_default_calibration(ctlr->hdev, + &ctlr->right_stick_cal_x, + &ctlr->right_stick_cal_y, + "right", ret); hid_dbg(ctlr->hdev, "calibration:\n" "l_x_c=%d l_x_max=%d l_x_min=%d\n" @@ -1222,6 +1227,7 @@ spin_lock_irqsave(&ctlr->lock, flags); if (IS_ENABLED(CONFIG_NINTENDO_FF) && rep->vibrator_report && + ctlr->ctlr_state != JOYCON_CTLR_STATE_REMOVED && (msecs - ctlr->rumble_msecs) >= JC_RUMBLE_PERIOD_MS && (ctlr->rumble_queue_head != ctlr->rumble_queue_tail || ctlr->rumble_zero_countdown > 0)) { @@ -1546,12 +1552,13 @@ ctlr->rumble_queue_head = 0; memcpy(ctlr->rumble_data[ctlr->rumble_queue_head], data, JC_RUMBLE_DATA_SIZE); - spin_unlock_irqrestore(&ctlr->lock, flags); /* don't wait for the periodic send (reduces latency) */ - if (schedule_now) + if (schedule_now && ctlr->ctlr_state != JOYCON_CTLR_STATE_REMOVED) queue_work(ctlr->rumble_queue, &ctlr->rumble_worker); + spin_unlock_irqrestore(&ctlr->lock, flags); + return 0; } @@ -1586,6 +1593,7 @@ /* We report joy-con d-pad inputs as buttons and pro controller as a hat. */ static const unsigned int joycon_dpad_inputs_jc[] = { BTN_DPAD_UP, BTN_DPAD_DOWN, BTN_DPAD_LEFT, BTN_DPAD_RIGHT, + 0 /* 0 signals end of array */ }; static int joycon_input_create(struct joycon_ctlr *ctlr) --- linux-5.19.0.orig/drivers/hid/hid-playstation.c +++ linux-5.19.0/drivers/hid/hid-playstation.c @@ -46,6 +46,7 @@ uint32_t fw_version; int (*parse_report)(struct ps_device *dev, struct hid_report *report, u8 *data, int size); + void (*remove)(struct ps_device *dev); }; /* Calibration data for playstation motion sensors. */ @@ -174,6 +175,7 @@ struct led_classdev player_leds[5]; struct work_struct output_worker; + bool output_worker_initialized; void *output_report_dmabuf; uint8_t output_seq; /* Sequence number for output report. */ }; @@ -299,6 +301,7 @@ {0, 0}, }; +static inline void dualsense_schedule_work(struct dualsense *ds); static void dualsense_set_lightbar(struct dualsense *ds, uint8_t red, uint8_t green, uint8_t blue); /* @@ -792,6 +795,7 @@ return ret; } + static int dualsense_get_firmware_info(struct dualsense *ds) { uint8_t *buf; @@ -881,7 +885,7 @@ ds->update_player_leds = true; spin_unlock_irqrestore(&ds->base.lock, flags); - schedule_work(&ds->output_worker); + dualsense_schedule_work(ds); return 0; } @@ -925,6 +929,16 @@ } } +static inline void dualsense_schedule_work(struct dualsense *ds) +{ + unsigned long flags; + + spin_lock_irqsave(&ds->base.lock, flags); + if (ds->output_worker_initialized) + schedule_work(&ds->output_worker); + spin_unlock_irqrestore(&ds->base.lock, flags); +} + /* * Helper function to send DualSense output reports. Applies a CRC at the end of a report * for Bluetooth reports. @@ -1085,7 +1099,7 @@ spin_unlock_irqrestore(&ps_dev->lock, flags); /* Schedule updating of microphone state at hardware level. */ - schedule_work(&ds->output_worker); + dualsense_schedule_work(ds); } ds->last_btn_mic_state = btn_mic_state; @@ -1200,10 +1214,22 @@ ds->motor_right = effect->u.rumble.weak_magnitude / 256; spin_unlock_irqrestore(&ds->base.lock, flags); - schedule_work(&ds->output_worker); + dualsense_schedule_work(ds); return 0; } +static void dualsense_remove(struct ps_device *ps_dev) +{ + struct dualsense *ds = container_of(ps_dev, struct dualsense, base); + unsigned long flags; + + spin_lock_irqsave(&ds->base.lock, flags); + ds->output_worker_initialized = false; + spin_unlock_irqrestore(&ds->base.lock, flags); + + cancel_work_sync(&ds->output_worker); +} + static int dualsense_reset_leds(struct dualsense *ds) { struct dualsense_output_report report; @@ -1240,7 +1266,7 @@ ds->lightbar_blue = blue; spin_unlock_irqrestore(&ds->base.lock, flags); - schedule_work(&ds->output_worker); + dualsense_schedule_work(ds); } static void dualsense_set_player_leds(struct dualsense *ds) @@ -1263,7 +1289,7 @@ ds->update_player_leds = true; ds->player_leds_state = player_ids[player_id]; - schedule_work(&ds->output_worker); + dualsense_schedule_work(ds); } static struct ps_device *dualsense_create(struct hid_device *hdev) @@ -1302,7 +1328,9 @@ ps_dev->battery_capacity = 100; /* initial value until parse_report. */ ps_dev->battery_status = POWER_SUPPLY_STATUS_UNKNOWN; ps_dev->parse_report = dualsense_parse_report; + ps_dev->remove = dualsense_remove; INIT_WORK(&ds->output_worker, dualsense_output_worker); + ds->output_worker_initialized = true; hid_set_drvdata(hdev, ds); max_output_report_size = sizeof(struct dualsense_output_report_bt); @@ -1439,7 +1467,8 @@ goto err_stop; } - if (hdev->product == USB_DEVICE_ID_SONY_PS5_CONTROLLER) { + if (hdev->product == USB_DEVICE_ID_SONY_PS5_CONTROLLER || + hdev->product == USB_DEVICE_ID_SONY_PS5_CONTROLLER_2) { dev = dualsense_create(hdev); if (IS_ERR(dev)) { hid_err(hdev, "Failed to create dualsense.\n"); @@ -1470,6 +1499,9 @@ ps_devices_list_remove(dev); ps_device_release_player_id(dev); + if (dev->remove) + dev->remove(dev); + hid_hw_close(hdev); hid_hw_stop(hdev); } @@ -1477,6 +1509,8 @@ static const struct hid_device_id ps_devices[] = { { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS5_CONTROLLER) }, { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS5_CONTROLLER) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS5_CONTROLLER_2) }, + { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS5_CONTROLLER_2) }, { } }; MODULE_DEVICE_TABLE(hid, ps_devices); --- linux-5.19.0.orig/drivers/hid/hid-quirks.c +++ linux-5.19.0/drivers/hid/hid-quirks.c @@ -54,6 +54,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_FLIGHT_SIM_YOKE), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_PEDALS), HID_QUIRK_NOGET }, { HID_USB_DEVICE(USB_VENDOR_ID_CH, USB_DEVICE_ID_CH_PRO_THROTTLE), HID_QUIRK_NOGET }, + { HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_MOUSE_000C), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K65RGB), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K65RGB_RAPIDFIRE), HID_QUIRK_NO_INIT_REPORTS | HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K70RGB), HID_QUIRK_NO_INIT_REPORTS }, @@ -122,6 +123,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C05A), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_MOUSE_C06A), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_MCS, USB_DEVICE_ID_MCS_GAMEPADBLOCK), HID_QUIRK_MULTI_INPUT }, + { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_MOUSE_0783), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PIXART_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_POWER_COVER), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_SURFACE3_COVER), HID_QUIRK_NO_INIT_REPORTS }, @@ -146,6 +148,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_OPTICAL_TOUCH_SCREEN), HID_QUIRK_NO_INIT_REPORTS }, { HID_USB_DEVICE(USB_VENDOR_ID_PIXART, USB_DEVICE_ID_PIXART_USB_OPTICAL_MOUSE), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4D22), HID_QUIRK_ALWAYS_POLL }, + { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_MOUSE_4E2A), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D0F), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4D65), HID_QUIRK_ALWAYS_POLL }, { HID_USB_DEVICE(USB_VENDOR_ID_PRIMAX, USB_DEVICE_ID_PRIMAX_PIXART_MOUSE_4E22), HID_QUIRK_ALWAYS_POLL }, @@ -314,6 +317,8 @@ { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_2021) }, { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MAGIC_KEYBOARD_FINGERPRINT_2021) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_BACKLIGHT) }, + { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_TOUCHBAR_DISPLAY) }, #endif #if IS_ENABLED(CONFIG_HID_APPLEIR) { HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IRCONTROL) }, @@ -618,6 +623,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_MMO7) }, { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_RAT5) }, { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_RAT9) }, + { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_MMO7) }, #endif #if IS_ENABLED(CONFIG_HID_SAMSUNG) { HID_USB_DEVICE(USB_VENDOR_ID_SAMSUNG, USB_DEVICE_ID_SAMSUNG_IR_REMOTE) }, --- linux-5.19.0.orig/drivers/hid/hid-rmi.c +++ linux-5.19.0/drivers/hid/hid-rmi.c @@ -327,6 +327,8 @@ if (!(test_bit(RMI_STARTED, &hdata->flags))) return 0; + pm_wakeup_event(hdev->dev.parent, 0); + local_irq_save(flags); rmi_set_attn_data(rmi_dev, data[1], &data[2], size - 2); --- linux-5.19.0.orig/drivers/hid/hid-roccat.c +++ linux-5.19.0/drivers/hid/hid-roccat.c @@ -257,6 +257,8 @@ if (!new_value) return -ENOMEM; + mutex_lock(&device->cbuf_lock); + report = &device->cbuf[device->cbuf_end]; /* passing NULL is safe */ @@ -276,6 +278,8 @@ reader->cbuf_start = (reader->cbuf_start + 1) % ROCCAT_CBUF_SIZE; } + mutex_unlock(&device->cbuf_lock); + wake_up_interruptible(&device->wait); return 0; } --- linux-5.19.0.orig/drivers/hid/hid-saitek.c +++ linux-5.19.0/drivers/hid/hid-saitek.c @@ -187,6 +187,8 @@ .driver_data = SAITEK_RELEASE_MODE_RAT7 }, { HID_USB_DEVICE(USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_MMO7), .driver_data = SAITEK_RELEASE_MODE_MMO7 }, + { HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_MMO7), + .driver_data = SAITEK_RELEASE_MODE_MMO7 }, { } }; --- linux-5.19.0.orig/drivers/hid/hid-sensor-custom.c +++ linux-5.19.0/drivers/hid/hid-sensor-custom.c @@ -62,7 +62,7 @@ u32 raw_len; } __packed; -static struct attribute hid_custom_attrs[] = { +static struct attribute hid_custom_attrs[HID_CUSTOM_TOTAL_ATTRS] = { {.name = "name", .mode = S_IRUGO}, {.name = "units", .mode = S_IRUGO}, {.name = "unit-expo", .mode = S_IRUGO}, --- linux-5.19.0.orig/drivers/hid/hid-steam.c +++ linux-5.19.0/drivers/hid/hid-steam.c @@ -134,6 +134,11 @@ int ret; r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0]; + if (!r) { + hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted - nothing to read\n"); + return -EINVAL; + } + if (hid_report_len(r) < 64) return -EINVAL; @@ -165,6 +170,11 @@ int ret; r = steam->hdev->report_enum[HID_FEATURE_REPORT].report_id_hash[0]; + if (!r) { + hid_err(steam->hdev, "No HID_FEATURE_REPORT submitted - nothing to read\n"); + return -EINVAL; + } + if (hid_report_len(r) < 64) return -EINVAL; --- linux-5.19.0.orig/drivers/hid/hid-thrustmaster.c +++ linux-5.19.0/drivers/hid/hid-thrustmaster.c @@ -67,12 +67,13 @@ {0x0200, 0x0005, "Thrustmaster T300RS (Missing Attachment)"}, {0x0206, 0x0005, "Thrustmaster T300RS"}, {0x0209, 0x0005, "Thrustmaster T300RS (Open Wheel Attachment)"}, + {0x020a, 0x0005, "Thrustmaster T300RS (Sparco R383 Mod)"}, {0x0204, 0x0005, "Thrustmaster T300 Ferrari Alcantara Edition"}, {0x0002, 0x0002, "Thrustmaster T500RS"} //{0x0407, 0x0001, "Thrustmaster TMX"} }; -static const uint8_t tm_wheels_infos_length = 4; +static const uint8_t tm_wheels_infos_length = 7; /* * This structs contains (in little endian) the response data --- linux-5.19.0.orig/drivers/hid/hid-topre.c +++ linux-5.19.0/drivers/hid/hid-topre.c @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * HID driver for Topre REALFORCE Keyboards + * + * Copyright (c) 2022 Harry Stern + * + * Based on the hid-macally driver + */ + +#include +#include + +#include "hid-ids.h" + +MODULE_AUTHOR("Harry Stern "); +MODULE_DESCRIPTION("REALFORCE R2 Keyboard driver"); +MODULE_LICENSE("GPL"); + +/* + * Fix the REALFORCE R2's non-boot interface's report descriptor to match the + * events it's actually sending. It claims to send array events but is instead + * sending variable events. + */ +static __u8 *topre_report_fixup(struct hid_device *hdev, __u8 *rdesc, + unsigned int *rsize) +{ + if (*rsize >= 119 && rdesc[69] == 0x29 && rdesc[70] == 0xe7 && + rdesc[71] == 0x81 && rdesc[72] == 0x00) { + hid_info(hdev, + "fixing up Topre REALFORCE keyboard report descriptor\n"); + rdesc[72] = 0x02; + } + return rdesc; +} + +static const struct hid_device_id topre_id_table[] = { + { HID_USB_DEVICE(USB_VENDOR_ID_TOPRE, + USB_DEVICE_ID_TOPRE_REALFORCE_R2_108) }, + { } +}; +MODULE_DEVICE_TABLE(hid, topre_id_table); + +static struct hid_driver topre_driver = { + .name = "topre", + .id_table = topre_id_table, + .report_fixup = topre_report_fixup, +}; + +module_hid_driver(topre_driver); --- linux-5.19.0.orig/drivers/hid/hid-uclogic-core.c +++ linux-5.19.0/drivers/hid/hid-uclogic-core.c @@ -153,6 +153,7 @@ suffix = "Pad"; break; case HID_DG_PEN: + case HID_DG_DIGITIZER: suffix = "Pen"; break; case HID_CP_CONSUMER_CONTROL: @@ -191,6 +192,7 @@ * than the pen, so use QUIRK_MULTI_INPUT for all tablets. */ hdev->quirks |= HID_QUIRK_MULTI_INPUT; + hdev->quirks |= HID_QUIRK_HIDINPUT_FORCE; /* Allocate and assign driver data */ drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL); --- linux-5.19.0.orig/drivers/hid/hid-uclogic-rdesc.c +++ linux-5.19.0/drivers/hid/hid-uclogic-rdesc.c @@ -1009,7 +1009,7 @@ if (memcmp(p, head, sizeof(head)) == 0 && p[sizeof(head)] < param_num) { v = param_list[p[sizeof(head)]]; - put_unaligned(cpu_to_le32(v), (s32 *)p); + put_unaligned((__force u32)cpu_to_le32(v), (s32 *)p); p += sizeof(head) + 1; } else { p++; --- linux-5.19.0.orig/drivers/hid/hidraw.c +++ linux-5.19.0/drivers/hid/hidraw.c @@ -350,6 +350,8 @@ down_write(&minors_rwsem); spin_lock_irqsave(&hidraw_table[minor]->list_lock, flags); + for (int i = list->tail; i < list->head; i++) + kfree(list->buffer[i].value); list_del(&list->node); spin_unlock_irqrestore(&hidraw_table[minor]->list_lock, flags); kfree(list); --- linux-5.19.0.orig/drivers/hid/i2c-hid/i2c-hid-core.c +++ linux-5.19.0/drivers/hid/i2c-hid/i2c-hid-core.c @@ -554,7 +554,8 @@ i2c_hid_dbg(ihid, "input: %*ph\n", ret_size, ihid->inbuf); if (test_bit(I2C_HID_STARTED, &ihid->flags)) { - pm_wakeup_event(&ihid->client->dev, 0); + if (ihid->hid->group != HID_GROUP_RMI) + pm_wakeup_event(&ihid->client->dev, 0); hid_input_report(ihid->hid, HID_INPUT_REPORT, ihid->inbuf + sizeof(__le16), --- linux-5.19.0.orig/drivers/hid/intel-ish-hid/ipc/hw-ish.h +++ linux-5.19.0/drivers/hid/intel-ish-hid/ipc/hw-ish.h @@ -32,6 +32,7 @@ #define ADL_P_DEVICE_ID 0x51FC #define ADL_N_DEVICE_ID 0x54FC #define RPL_S_DEVICE_ID 0x7A78 +#define MTL_P_DEVICE_ID 0x7E45 #define REVISION_ID_CHT_A0 0x6 #define REVISION_ID_CHT_Ax_SI 0x0 --- linux-5.19.0.orig/drivers/hid/intel-ish-hid/ipc/pci-ish.c +++ linux-5.19.0/drivers/hid/intel-ish-hid/ipc/pci-ish.c @@ -43,6 +43,7 @@ {PCI_DEVICE(PCI_VENDOR_ID_INTEL, ADL_P_DEVICE_ID)}, {PCI_DEVICE(PCI_VENDOR_ID_INTEL, ADL_N_DEVICE_ID)}, {PCI_DEVICE(PCI_VENDOR_ID_INTEL, RPL_S_DEVICE_ID)}, + {PCI_DEVICE(PCI_VENDOR_ID_INTEL, MTL_P_DEVICE_ID)}, {0, } }; MODULE_DEVICE_TABLE(pci, ish_pci_tbl); --- linux-5.19.0.orig/drivers/hid/intel-ish-hid/ishtp-hid.h +++ linux-5.19.0/drivers/hid/intel-ish-hid/ishtp-hid.h @@ -105,7 +105,7 @@ * @multi_packet_cnt: Count of fragmented packet count * * This structure is used to store completion flags and per client data like - * like report description, number of HID devices etc. + * report description, number of HID devices etc. */ struct ishtp_cl_data { /* completion flags */ --- linux-5.19.0.orig/drivers/hid/intel-ish-hid/ishtp/client.c +++ linux-5.19.0/drivers/hid/intel-ish-hid/ishtp/client.c @@ -626,13 +626,14 @@ } /** - * ipc_tx_callback() - IPC tx callback function + * ipc_tx_send() - IPC tx send function * @prm: Pointer to client device instance * - * Send message over IPC either first time or on callback on previous message - * completion + * Send message over IPC. Message will be split into fragments + * if message size is bigger than IPC FIFO size, and all + * fragments will be sent one by one. */ -static void ipc_tx_callback(void *prm) +static void ipc_tx_send(void *prm) { struct ishtp_cl *cl = prm; struct ishtp_cl_tx_ring *cl_msg; @@ -677,32 +678,41 @@ list); rem = cl_msg->send_buf.size - cl->tx_offs; - ishtp_hdr.host_addr = cl->host_client_id; - ishtp_hdr.fw_addr = cl->fw_client_id; - ishtp_hdr.reserved = 0; - pmsg = cl_msg->send_buf.data + cl->tx_offs; - - if (rem <= dev->mtu) { - ishtp_hdr.length = rem; - ishtp_hdr.msg_complete = 1; - cl->sending = 0; - list_del_init(&cl_msg->list); /* Must be before write */ - spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); - /* Submit to IPC queue with no callback */ - ishtp_write_message(dev, &ishtp_hdr, pmsg); - spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags); - list_add_tail(&cl_msg->list, &cl->tx_free_list.list); - ++cl->tx_ring_free_size; - spin_unlock_irqrestore(&cl->tx_free_list_spinlock, - tx_free_flags); - } else { - /* Send IPC fragment */ - spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); - cl->tx_offs += dev->mtu; - ishtp_hdr.length = dev->mtu; - ishtp_hdr.msg_complete = 0; - ishtp_send_msg(dev, &ishtp_hdr, pmsg, ipc_tx_callback, cl); + while (rem > 0) { + ishtp_hdr.host_addr = cl->host_client_id; + ishtp_hdr.fw_addr = cl->fw_client_id; + ishtp_hdr.reserved = 0; + pmsg = cl_msg->send_buf.data + cl->tx_offs; + + if (rem <= dev->mtu) { + /* Last fragment or only one packet */ + ishtp_hdr.length = rem; + ishtp_hdr.msg_complete = 1; + /* Submit to IPC queue with no callback */ + ishtp_write_message(dev, &ishtp_hdr, pmsg); + cl->tx_offs = 0; + cl->sending = 0; + + break; + } else { + /* Send ipc fragment */ + ishtp_hdr.length = dev->mtu; + ishtp_hdr.msg_complete = 0; + /* All fregments submitted to IPC queue with no callback */ + ishtp_write_message(dev, &ishtp_hdr, pmsg); + cl->tx_offs += dev->mtu; + rem = cl_msg->send_buf.size - cl->tx_offs; + } } + + list_del_init(&cl_msg->list); + spin_unlock_irqrestore(&cl->tx_list_spinlock, tx_flags); + + spin_lock_irqsave(&cl->tx_free_list_spinlock, tx_free_flags); + list_add_tail(&cl_msg->list, &cl->tx_free_list.list); + ++cl->tx_ring_free_size; + spin_unlock_irqrestore(&cl->tx_free_list_spinlock, + tx_free_flags); } /** @@ -720,7 +730,7 @@ return; cl->tx_offs = 0; - ipc_tx_callback(cl); + ipc_tx_send(cl); ++cl->send_msg_cnt_ipc; } --- linux-5.19.0.orig/drivers/hid/wacom_sys.c +++ linux-5.19.0/drivers/hid/wacom_sys.c @@ -160,6 +160,9 @@ { struct wacom *wacom = hid_get_drvdata(hdev); + if (wacom->wacom_wac.features.type == BOOTLOADER) + return 0; + if (size > WACOM_PKGLEN_MAX) return 1; @@ -2121,7 +2124,7 @@ error = wacom_setup_pad_input_capabilities(pad_input_dev, wacom_wac); if (error) { - /* no pad in use on this interface */ + /* no pad events using this interface */ input_free_device(pad_input_dev); wacom_wac->pad_input = NULL; pad_input_dev = NULL; @@ -2789,6 +2792,11 @@ return error; } + if (features->type == BOOTLOADER) { + hid_warn(hdev, "Using device in hidraw-only mode"); + return hid_hw_start(hdev, HID_CONNECT_HIDRAW); + } + error = wacom_parse_and_register(wacom, false); if (error) return error; --- linux-5.19.0.orig/drivers/hid/wacom_wac.c +++ linux-5.19.0/drivers/hid/wacom_wac.c @@ -638,9 +638,26 @@ return (tool_id & ~0xFFF) << 4 | (tool_id & 0xFFF); } +static bool wacom_is_art_pen(int tool_id) +{ + bool is_art_pen = false; + + switch (tool_id) { + case 0x885: /* Intuos3 Marker Pen */ + case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */ + case 0x10804: /* Intuos4/5 13HD/24HD Art Pen */ + is_art_pen = true; + break; + } + return is_art_pen; +} + static int wacom_intuos_get_tool_type(int tool_id) { - int tool_type; + int tool_type = BTN_TOOL_PEN; + + if (wacom_is_art_pen(tool_id)) + return tool_type; switch (tool_id) { case 0x812: /* Inking pen */ @@ -655,12 +672,9 @@ case 0x852: case 0x823: /* Intuos3 Grip Pen */ case 0x813: /* Intuos3 Classic Pen */ - case 0x885: /* Intuos3 Marker Pen */ case 0x802: /* Intuos4/5 13HD/24HD General Pen */ - case 0x804: /* Intuos4/5 13HD/24HD Marker Pen */ case 0x8e2: /* IntuosHT2 pen */ case 0x022: - case 0x10804: /* Intuos4/5 13HD/24HD Art Pen */ case 0x10842: /* MobileStudio Pro Pro Pen slim */ case 0x14802: /* Intuos4/5 13HD/24HD Classic Pen */ case 0x16802: /* Cintiq 13HD Pro Pen */ @@ -718,10 +732,6 @@ case 0x10902: /* Intuos4/5 13HD/24HD Airbrush */ tool_type = BTN_TOOL_AIRBRUSH; break; - - default: /* Unknown tool */ - tool_type = BTN_TOOL_PEN; - break; } return tool_type; } @@ -2009,7 +2019,6 @@ wacom_wac->has_mute_touch_switch = true; usage->type = EV_SW; usage->code = SW_MUTE_DEVICE; - features->device_type |= WACOM_DEVICETYPE_PAD; break; case WACOM_HID_WD_TOUCHSTRIP: wacom_map_usage(input, usage, field, EV_ABS, ABS_RX, 0); @@ -2089,6 +2098,30 @@ wacom_wac->hid_data.inrange_state |= value; } + /* Process touch switch state first since it is reported through touch interface, + * which is indepentent of pad interface. In the case when there are no other pad + * events, the pad interface will not even be created. + */ + if ((equivalent_usage == WACOM_HID_WD_MUTE_DEVICE) || + (equivalent_usage == WACOM_HID_WD_TOUCHONOFF)) { + if (wacom_wac->shared->touch_input) { + bool *is_touch_on = &wacom_wac->shared->is_touch_on; + + if (equivalent_usage == WACOM_HID_WD_MUTE_DEVICE && value) + *is_touch_on = !(*is_touch_on); + else if (equivalent_usage == WACOM_HID_WD_TOUCHONOFF) + *is_touch_on = value; + + input_report_switch(wacom_wac->shared->touch_input, + SW_MUTE_DEVICE, !(*is_touch_on)); + input_sync(wacom_wac->shared->touch_input); + } + return; + } + + if (!input) + return; + switch (equivalent_usage) { case WACOM_HID_WD_TOUCHRING: /* @@ -2124,22 +2157,6 @@ input_event(input, usage->type, usage->code, 0); break; - case WACOM_HID_WD_MUTE_DEVICE: - case WACOM_HID_WD_TOUCHONOFF: - if (wacom_wac->shared->touch_input) { - bool *is_touch_on = &wacom_wac->shared->is_touch_on; - - if (equivalent_usage == WACOM_HID_WD_MUTE_DEVICE && value) - *is_touch_on = !(*is_touch_on); - else if (equivalent_usage == WACOM_HID_WD_TOUCHONOFF) - *is_touch_on = value; - - input_report_switch(wacom_wac->shared->touch_input, - SW_MUTE_DEVICE, !(*is_touch_on)); - input_sync(wacom_wac->shared->touch_input); - } - break; - case WACOM_HID_WD_MODE_CHANGE: if (wacom_wac->is_direct_mode != value) { wacom_wac->is_direct_mode = value; @@ -2336,6 +2353,9 @@ } return; case HID_DG_TWIST: + /* don't modify the value if the pen doesn't support the feature */ + if (!wacom_is_art_pen(wacom_wac->id[0])) return; + /* * Userspace expects pen twist to have its zero point when * the buttons/finger is on the tablet's left. HID values @@ -2463,11 +2483,12 @@ if (!delay_pen_events(wacom_wac) && wacom_wac->tool[0]) { int id = wacom_wac->id[0]; - if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3 && - wacom_wac->hid_data.barrelswitch & wacom_wac->hid_data.barrelswitch2) { - wacom_wac->hid_data.barrelswitch = 0; - wacom_wac->hid_data.barrelswitch2 = 0; - wacom_wac->hid_data.barrelswitch3 = 1; + if (wacom_wac->features.quirks & WACOM_QUIRK_PEN_BUTTON3) { + int sw_state = wacom_wac->hid_data.barrelswitch | + (wacom_wac->hid_data.barrelswitch2 << 1); + wacom_wac->hid_data.barrelswitch = sw_state == 1; + wacom_wac->hid_data.barrelswitch2 = sw_state == 2; + wacom_wac->hid_data.barrelswitch3 = sw_state == 3; } input_report_key(input, BTN_STYLUS, wacom_wac->hid_data.barrelswitch); input_report_key(input, BTN_STYLUS2, wacom_wac->hid_data.barrelswitch2); @@ -2822,7 +2843,7 @@ /* usage tests must precede field tests */ if (WACOM_BATTERY_USAGE(usage)) wacom_wac_battery_event(hdev, field, usage, value); - else if (WACOM_PAD_FIELD(field) && wacom->wacom_wac.pad_input) + else if (WACOM_PAD_FIELD(field)) wacom_wac_pad_event(hdev, field, usage, value); else if (WACOM_PEN_FIELD(field) && wacom->wacom_wac.pen_input) wacom_wac_pen_event(hdev, field, usage, value); @@ -4820,6 +4841,9 @@ static const struct wacom_features wacom_features_HID_ANY_ID = { "Wacom HID", .type = HID_GENERIC, .oVid = HID_ANY_ID, .oPid = HID_ANY_ID }; +static const struct wacom_features wacom_features_0x94 = + { "Wacom Bootloader", .type = BOOTLOADER }; + #define USB_DEVICE_WACOM(prod) \ HID_DEVICE(BUS_USB, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\ .driver_data = (kernel_ulong_t)&wacom_features_##prod @@ -4893,6 +4917,7 @@ { USB_DEVICE_WACOM(0x84) }, { USB_DEVICE_WACOM(0x90) }, { USB_DEVICE_WACOM(0x93) }, + { USB_DEVICE_WACOM(0x94) }, { USB_DEVICE_WACOM(0x97) }, { USB_DEVICE_WACOM(0x9A) }, { USB_DEVICE_WACOM(0x9F) }, --- linux-5.19.0.orig/drivers/hid/wacom_wac.h +++ linux-5.19.0/drivers/hid/wacom_wac.h @@ -245,6 +245,7 @@ MTTPC, MTTPC_B, HID_GENERIC, + BOOTLOADER, MAX_TYPE }; --- linux-5.19.0.orig/drivers/hsi/clients/ssi_protocol.c +++ linux-5.19.0/drivers/hsi/clients/ssi_protocol.c @@ -931,6 +931,7 @@ if (err < 0) { dev_err(&cl->device, "Register HSI port event failed (%d)\n", err); + hsi_release_port(cl); return err; } dev_dbg(&cl->device, "Configuring SSI port\n"); --- linux-5.19.0.orig/drivers/hsi/controllers/omap_ssi_core.c +++ linux-5.19.0/drivers/hsi/controllers/omap_ssi_core.c @@ -502,8 +502,10 @@ platform_set_drvdata(pd, ssi); err = ssi_add_controller(ssi, pd); - if (err < 0) + if (err < 0) { + hsi_put_controller(ssi); goto out1; + } pm_runtime_enable(&pd->dev); @@ -524,6 +526,7 @@ if (!childpdev) { err = -ENODEV; dev_err(&pd->dev, "failed to create ssi controller port\n"); + of_node_put(child); goto out3; } } @@ -535,9 +538,9 @@ device_for_each_child(&pd->dev, NULL, ssi_remove_ports); out2: ssi_remove_controller(ssi); + pm_runtime_disable(&pd->dev); out1: platform_set_drvdata(pd, NULL); - pm_runtime_disable(&pd->dev); return err; } @@ -628,7 +631,13 @@ if (ret) return ret; - return platform_driver_register(&ssi_port_pdriver); + ret = platform_driver_register(&ssi_port_pdriver); + if (ret) { + platform_driver_unregister(&ssi_pdriver); + return ret; + } + + return 0; } module_init(ssi_init); --- linux-5.19.0.orig/drivers/hsi/controllers/omap_ssi_port.c +++ linux-5.19.0/drivers/hsi/controllers/omap_ssi_port.c @@ -230,10 +230,10 @@ if (msg->ttype == HSI_MSG_READ) { err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, DMA_FROM_DEVICE); - if (err < 0) { + if (!err) { dev_dbg(&ssi->device, "DMA map SG failed !\n"); pm_runtime_put_autosuspend(omap_port->pdev); - return err; + return -EIO; } csdp = SSI_DST_BURST_4x32_BIT | SSI_DST_MEMORY_PORT | SSI_SRC_SINGLE_ACCESS0 | SSI_SRC_PERIPHERAL_PORT | @@ -247,10 +247,10 @@ } else { err = dma_map_sg(&ssi->device, msg->sgt.sgl, msg->sgt.nents, DMA_TO_DEVICE); - if (err < 0) { + if (!err) { dev_dbg(&ssi->device, "DMA map SG failed !\n"); pm_runtime_put_autosuspend(omap_port->pdev); - return err; + return -EIO; } csdp = SSI_SRC_BURST_4x32_BIT | SSI_SRC_MEMORY_PORT | SSI_DST_SINGLE_ACCESS0 | SSI_DST_PERIPHERAL_PORT | --- linux-5.19.0.orig/drivers/hv/channel_mgmt.c +++ linux-5.19.0/drivers/hv/channel_mgmt.c @@ -533,13 +533,17 @@ * Add the new device to the bus. This will kick off device-driver * binding which eventually invokes the device driver's AddDevice() * method. + * + * If vmbus_device_register() fails, the 'device_obj' is freed in + * vmbus_device_release() as called by device_unregister() in the + * error path of vmbus_device_register(). In the outside error + * path, there's no need to free it. */ ret = vmbus_device_register(newchannel->device_obj); if (ret != 0) { pr_err("unable to add child device object (relid %d)\n", newchannel->offermsg.child_relid); - kfree(newchannel->device_obj); goto err_deq_chan; } --- linux-5.19.0.orig/drivers/hv/ring_buffer.c +++ linux-5.19.0/drivers/hv/ring_buffer.c @@ -280,6 +280,19 @@ ring_info->pkt_buffer_size = 0; } +/* + * Check if the ring buffer spinlock is available to take or not; used on + * atomic contexts, like panic path (see the Hyper-V framebuffer driver). + */ + +bool hv_ringbuffer_spinlock_busy(struct vmbus_channel *channel) +{ + struct hv_ring_buffer_info *rinfo = &channel->outbound; + + return spin_is_locked(&rinfo->ring_lock); +} +EXPORT_SYMBOL_GPL(hv_ringbuffer_spinlock_busy); + /* Write to the ring buffer. */ int hv_ringbuffer_write(struct vmbus_channel *channel, const struct kvec *kv_list, u32 kv_count, --- linux-5.19.0.orig/drivers/hv/vmbus_drv.c +++ linux-5.19.0/drivers/hv/vmbus_drv.c @@ -2078,6 +2078,7 @@ ret = device_register(&child_device_obj->device); if (ret) { pr_err("Unable to register child device\n"); + put_device(&child_device_obj->device); return ret; } @@ -2309,7 +2310,7 @@ bool fb_overlap_ok) { struct resource *iter, *shadow; - resource_size_t range_min, range_max, start; + resource_size_t range_min, range_max, start, end; const char *dev_n = dev_name(&device_obj->device); int retval; @@ -2344,6 +2345,14 @@ range_max = iter->end; start = (range_min + align - 1) & ~(align - 1); for (; start + size - 1 <= range_max; start += align) { + end = start + size - 1; + + /* Skip the whole fb_mmio region if not fb_overlap_ok */ + if (!fb_overlap_ok && fb_mmio && + (((start >= fb_mmio->start) && (start <= fb_mmio->end)) || + ((end >= fb_mmio->start) && (end <= fb_mmio->end)))) + continue; + shadow = __request_region(iter, start, size, NULL, IORESOURCE_BUSY); if (!shadow) --- linux-5.19.0.orig/drivers/hwmon/Kconfig +++ linux-5.19.0/drivers/hwmon/Kconfig @@ -38,6 +38,18 @@ comment "Native drivers" +config SENSORS_AAEON + tristate "AAEON hwmon driver" + depends on X86 + depends on UBUNTU_ODM_DRIVERS + select MFD_AAEON + help + This hwmon driver adds support for reporting temperature or fan + speed and voltage on Single Board Computers produced by AAEON. + + This driver leverages the ASUS WMI interface to access device + resources. + config SENSORS_ABITUGURU tristate "Abit uGuru (rev 1 & 2)" depends on X86 && DMI @@ -797,6 +809,7 @@ config SENSORS_JC42 tristate "JEDEC JC42.4 compliant memory module temperature sensors" depends on I2C + select REGMAP_I2C help If you say yes here, you get support for JEDEC JC42.4 compliant temperature sensors, which are used on many DDR3 memory modules for --- linux-5.19.0.orig/drivers/hwmon/Makefile +++ linux-5.19.0/drivers/hwmon/Makefile @@ -84,6 +84,7 @@ obj-$(CONFIG_SENSORS_GSC) += gsc-hwmon.o obj-$(CONFIG_SENSORS_GPIO_FAN) += gpio-fan.o obj-$(CONFIG_SENSORS_HIH6130) += hih6130.o +obj-$(CONFIG_SENSORS_AAEON) += hwmon-aaeon.o obj-$(CONFIG_SENSORS_ULTRA45) += ultra45_env.o obj-$(CONFIG_SENSORS_I5500) += i5500_temp.o obj-$(CONFIG_SENSORS_I5K_AMB) += i5k_amb.o --- linux-5.19.0.orig/drivers/hwmon/asus-ec-sensors.c +++ linux-5.19.0/drivers/hwmon/asus-ec-sensors.c @@ -54,6 +54,10 @@ /* ACPI mutex for locking access to the EC for the firmware */ #define ASUS_HW_ACCESS_MUTEX_ASMX "\\AMW0.ASMX" +#define ASUS_HW_ACCESS_MUTEX_RMTW_ASMX "\\RMTW.ASMX" + +#define ASUS_HW_ACCESS_MUTEX_SB_PCI0_SBRG_SIO1_MUT0 "\\_SB_.PCI0.SBRG.SIO1.MUT0" + #define MAX_IDENTICAL_BOARD_VARIATIONS 3 /* Moniker for the ACPI global lock (':' is not allowed in ASL identifiers) */ @@ -119,6 +123,18 @@ ec_sensor_temp_water_in, /* "Water_Out" temperature sensor reading [℃] */ ec_sensor_temp_water_out, + /* "Water_Block_In" temperature sensor reading [℃] */ + ec_sensor_temp_water_block_in, + /* "Water_Block_Out" temperature sensor reading [℃] */ + ec_sensor_temp_water_block_out, + /* "T_sensor_2" temperature sensor reading [℃] */ + ec_sensor_temp_t_sensor_2, + /* "Extra_1" temperature sensor reading [℃] */ + ec_sensor_temp_sensor_extra_1, + /* "Extra_2" temperature sensor reading [℃] */ + ec_sensor_temp_sensor_extra_2, + /* "Extra_3" temperature sensor reading [℃] */ + ec_sensor_temp_sensor_extra_3, }; #define SENSOR_TEMP_CHIPSET BIT(ec_sensor_temp_chipset) @@ -134,11 +150,19 @@ #define SENSOR_CURR_CPU BIT(ec_sensor_curr_cpu) #define SENSOR_TEMP_WATER_IN BIT(ec_sensor_temp_water_in) #define SENSOR_TEMP_WATER_OUT BIT(ec_sensor_temp_water_out) +#define SENSOR_TEMP_WATER_BLOCK_IN BIT(ec_sensor_temp_water_block_in) +#define SENSOR_TEMP_WATER_BLOCK_OUT BIT(ec_sensor_temp_water_block_out) +#define SENSOR_TEMP_T_SENSOR_2 BIT(ec_sensor_temp_t_sensor_2) +#define SENSOR_TEMP_SENSOR_EXTRA_1 BIT(ec_sensor_temp_sensor_extra_1) +#define SENSOR_TEMP_SENSOR_EXTRA_2 BIT(ec_sensor_temp_sensor_extra_2) +#define SENSOR_TEMP_SENSOR_EXTRA_3 BIT(ec_sensor_temp_sensor_extra_3) enum board_family { family_unknown, family_amd_400_series, family_amd_500_series, + family_intel_300_series, + family_intel_600_series }; /* All the known sensors for ASUS EC controllers */ @@ -195,15 +219,54 @@ EC_SENSOR("Water_In", hwmon_temp, 1, 0x01, 0x00), [ec_sensor_temp_water_out] = EC_SENSOR("Water_Out", hwmon_temp, 1, 0x01, 0x01), + [ec_sensor_temp_water_block_in] = + EC_SENSOR("Water_Block_In", hwmon_temp, 1, 0x01, 0x02), + [ec_sensor_temp_water_block_out] = + EC_SENSOR("Water_Block_Out", hwmon_temp, 1, 0x01, 0x03), + [ec_sensor_temp_sensor_extra_1] = + EC_SENSOR("Extra_1", hwmon_temp, 1, 0x01, 0x09), + [ec_sensor_temp_t_sensor_2] = + EC_SENSOR("T_sensor_2", hwmon_temp, 1, 0x01, 0x0a), + [ec_sensor_temp_sensor_extra_2] = + EC_SENSOR("Extra_2", hwmon_temp, 1, 0x01, 0x0b), + [ec_sensor_temp_sensor_extra_3] = + EC_SENSOR("Extra_3", hwmon_temp, 1, 0x01, 0x0c), +}; + +static const struct ec_sensor_info sensors_family_intel_300[] = { + [ec_sensor_temp_chipset] = + EC_SENSOR("Chipset", hwmon_temp, 1, 0x00, 0x3a), + [ec_sensor_temp_cpu] = EC_SENSOR("CPU", hwmon_temp, 1, 0x00, 0x3b), + [ec_sensor_temp_mb] = + EC_SENSOR("Motherboard", hwmon_temp, 1, 0x00, 0x3c), + [ec_sensor_temp_t_sensor] = + EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x00, 0x3d), + [ec_sensor_temp_vrm] = EC_SENSOR("VRM", hwmon_temp, 1, 0x00, 0x3e), + [ec_sensor_fan_cpu_opt] = + EC_SENSOR("CPU_Opt", hwmon_fan, 2, 0x00, 0xb0), + [ec_sensor_fan_vrm_hs] = EC_SENSOR("VRM HS", hwmon_fan, 2, 0x00, 0xb2), + [ec_sensor_fan_water_flow] = + EC_SENSOR("Water_Flow", hwmon_fan, 2, 0x00, 0xbc), + [ec_sensor_temp_water_in] = + EC_SENSOR("Water_In", hwmon_temp, 1, 0x01, 0x00), + [ec_sensor_temp_water_out] = + EC_SENSOR("Water_Out", hwmon_temp, 1, 0x01, 0x01), +}; + +static const struct ec_sensor_info sensors_family_intel_600[] = { + [ec_sensor_temp_t_sensor] = + EC_SENSOR("T_Sensor", hwmon_temp, 1, 0x00, 0x3d), + [ec_sensor_temp_vrm] = EC_SENSOR("VRM", hwmon_temp, 1, 0x00, 0x3e), }; /* Shortcuts for common combinations */ #define SENSOR_SET_TEMP_CHIPSET_CPU_MB \ (SENSOR_TEMP_CHIPSET | SENSOR_TEMP_CPU | SENSOR_TEMP_MB) #define SENSOR_SET_TEMP_WATER (SENSOR_TEMP_WATER_IN | SENSOR_TEMP_WATER_OUT) +#define SENSOR_SET_WATER_BLOCK \ + (SENSOR_TEMP_WATER_BLOCK_IN | SENSOR_TEMP_WATER_BLOCK_OUT) struct ec_board_info { - const char *board_names[MAX_IDENTICAL_BOARD_VARIATIONS]; unsigned long sensors; /* * Defines which mutex to use for guarding access to the state and the @@ -216,121 +279,194 @@ enum board_family family; }; -static const struct ec_board_info board_info[] = { - { - .board_names = {"PRIME X470-PRO"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | - SENSOR_FAN_CPU_OPT | - SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, - .mutex_path = ACPI_GLOBAL_LOCK_PSEUDO_PATH, - .family = family_amd_400_series, - }, - { - .board_names = {"PRIME X570-PRO"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | - SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ProArt X570-CREATOR WIFI"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | - SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CPU_OPT | - SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, - }, - { - .board_names = {"Pro WS X570-ACE"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | - SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET | - SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG CROSSHAIR VIII DARK HERO"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | - SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | - SENSOR_FAN_CPU_OPT | SENSOR_FAN_WATER_FLOW | - SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = { - "ROG CROSSHAIR VIII FORMULA", - "ROG CROSSHAIR VIII HERO", - "ROG CROSSHAIR VIII HERO (WI-FI)", - }, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | - SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | - SENSOR_FAN_CPU_OPT | SENSOR_FAN_CHIPSET | - SENSOR_FAN_WATER_FLOW | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG CROSSHAIR VIII IMPACT"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | - SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX B550-E GAMING"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | - SENSOR_FAN_CPU_OPT, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX B550-I GAMING"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | - SENSOR_FAN_VRM_HS | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX X570-E GAMING"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | - SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX X570-E GAMING WIFI II"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX X570-F GAMING"}, - .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | - SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - { - .board_names = {"ROG STRIX X570-I GAMING"}, - .sensors = SENSOR_TEMP_T_SENSOR | SENSOR_FAN_VRM_HS | - SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU | - SENSOR_IN_CPU_CORE, - .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, - .family = family_amd_500_series, - }, - {} +static const struct ec_board_info board_info_prime_x470_pro = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | + SENSOR_FAN_CPU_OPT | + SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, + .mutex_path = ACPI_GLOBAL_LOCK_PSEUDO_PATH, + .family = family_amd_400_series, +}; + +static const struct ec_board_info board_info_prime_x570_pro = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | + SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_pro_art_x570_creator_wifi = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | + SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CPU_OPT | + SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_pro_ws_x570_ace = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_VRM | + SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET | + SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_crosshair_viii_dark_hero = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | + SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | + SENSOR_FAN_CPU_OPT | SENSOR_FAN_WATER_FLOW | + SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_crosshair_viii_hero = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | + SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | + SENSOR_FAN_CPU_OPT | SENSOR_FAN_CHIPSET | + SENSOR_FAN_WATER_FLOW | SENSOR_CURR_CPU | + SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_maximus_xi_hero = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | + SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | + SENSOR_FAN_CPU_OPT | SENSOR_FAN_WATER_FLOW, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_intel_300_series, +}; + +static const struct ec_board_info board_info_crosshair_viii_impact = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | + SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU | + SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_b550_e_gaming = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | + SENSOR_FAN_CPU_OPT, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_b550_i_gaming = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | + SENSOR_FAN_VRM_HS | SENSOR_CURR_CPU | + SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_x570_e_gaming = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM | + SENSOR_FAN_CHIPSET | SENSOR_CURR_CPU | + SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_x570_e_gaming_wifi_ii = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_CURR_CPU | + SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_x570_f_gaming = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | + SENSOR_TEMP_T_SENSOR | SENSOR_FAN_CHIPSET, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_x570_i_gaming = { + .sensors = SENSOR_TEMP_CHIPSET | SENSOR_TEMP_VRM | + SENSOR_TEMP_T_SENSOR | + SENSOR_FAN_VRM_HS | SENSOR_FAN_CHIPSET | + SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE, + .mutex_path = ASUS_HW_ACCESS_MUTEX_ASMX, + .family = family_amd_500_series, +}; + +static const struct ec_board_info board_info_strix_z690_a_gaming_wifi_d4 = { + .sensors = SENSOR_TEMP_T_SENSOR | SENSOR_TEMP_VRM, + .mutex_path = ASUS_HW_ACCESS_MUTEX_RMTW_ASMX, + .family = family_intel_600_series, +}; + +static const struct ec_board_info board_info_zenith_ii_extreme = { + .sensors = SENSOR_SET_TEMP_CHIPSET_CPU_MB | SENSOR_TEMP_T_SENSOR | + SENSOR_TEMP_VRM | SENSOR_SET_TEMP_WATER | + SENSOR_FAN_CPU_OPT | SENSOR_FAN_CHIPSET | SENSOR_FAN_VRM_HS | + SENSOR_FAN_WATER_FLOW | SENSOR_CURR_CPU | SENSOR_IN_CPU_CORE | + SENSOR_SET_WATER_BLOCK | + SENSOR_TEMP_T_SENSOR_2 | SENSOR_TEMP_SENSOR_EXTRA_1 | + SENSOR_TEMP_SENSOR_EXTRA_2 | SENSOR_TEMP_SENSOR_EXTRA_3, + .mutex_path = ASUS_HW_ACCESS_MUTEX_SB_PCI0_SBRG_SIO1_MUT0, + .family = family_amd_500_series, +}; + +#define DMI_EXACT_MATCH_ASUS_BOARD_NAME(name, board_info) \ + { \ + .matches = { \ + DMI_EXACT_MATCH(DMI_BOARD_VENDOR, \ + "ASUSTeK COMPUTER INC."), \ + DMI_EXACT_MATCH(DMI_BOARD_NAME, name), \ + }, \ + .driver_data = (void *)board_info, \ + } + +static const struct dmi_system_id dmi_table[] = { + DMI_EXACT_MATCH_ASUS_BOARD_NAME("PRIME X470-PRO", + &board_info_prime_x470_pro), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("PRIME X570-PRO", + &board_info_prime_x570_pro), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ProArt X570-CREATOR WIFI", + &board_info_pro_art_x570_creator_wifi), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("Pro WS X570-ACE", + &board_info_pro_ws_x570_ace), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII DARK HERO", + &board_info_crosshair_viii_dark_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII FORMULA", + &board_info_crosshair_viii_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII HERO", + &board_info_crosshair_viii_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII HERO (WI-FI)", + &board_info_crosshair_viii_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG MAXIMUS XI HERO", + &board_info_maximus_xi_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG MAXIMUS XI HERO (WI-FI)", + &board_info_maximus_xi_hero), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG CROSSHAIR VIII IMPACT", + &board_info_crosshair_viii_impact), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX B550-E GAMING", + &board_info_strix_b550_e_gaming), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX B550-I GAMING", + &board_info_strix_b550_i_gaming), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX X570-E GAMING", + &board_info_strix_x570_e_gaming), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX X570-E GAMING WIFI II", + &board_info_strix_x570_e_gaming_wifi_ii), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX X570-F GAMING", + &board_info_strix_x570_f_gaming), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX X570-I GAMING", + &board_info_strix_x570_i_gaming), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG STRIX Z690-A GAMING WIFI D4", + &board_info_strix_z690_a_gaming_wifi_d4), + DMI_EXACT_MATCH_ASUS_BOARD_NAME("ROG ZENITH II EXTREME", + &board_info_zenith_ii_extreme), + {}, }; struct ec_sensor { @@ -441,12 +577,12 @@ return -ENOENT; } -static int __init bank_compare(const void *a, const void *b) +static int bank_compare(const void *a, const void *b) { return *((const s8 *)a) - *((const s8 *)b); } -static void __init setup_sensor_data(struct ec_sensors_data *ec) +static void setup_sensor_data(struct ec_sensors_data *ec) { struct ec_sensor *s = ec->sensors; bool bank_found; @@ -478,7 +614,7 @@ sort(ec->banks, ec->nr_banks, 1, bank_compare, NULL); } -static void __init fill_ec_registers(struct ec_sensors_data *ec) +static void fill_ec_registers(struct ec_sensors_data *ec) { const struct ec_sensor_info *si; unsigned int i, j, register_idx = 0; @@ -493,7 +629,7 @@ } } -static int __init setup_lock_data(struct device *dev) +static int setup_lock_data(struct device *dev) { const char *mutex_path; int status; @@ -716,7 +852,7 @@ return find_ec_sensor_index(state, type, channel) >= 0 ? S_IRUGO : 0; } -static int __init +static int asus_ec_hwmon_add_chan_info(struct hwmon_channel_info *asus_ec_hwmon_chan, struct device *dev, int num, enum hwmon_sensor_types type, u32 config) @@ -745,27 +881,15 @@ .ops = &asus_ec_hwmon_ops, }; -static const struct ec_board_info * __init get_board_info(void) +static const struct ec_board_info *get_board_info(void) { - const char *dmi_board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR); - const char *dmi_board_name = dmi_get_system_info(DMI_BOARD_NAME); - const struct ec_board_info *board; - - if (!dmi_board_vendor || !dmi_board_name || - strcasecmp(dmi_board_vendor, "ASUSTeK COMPUTER INC.")) - return NULL; - - for (board = board_info; board->sensors; board++) { - if (match_string(board->board_names, - MAX_IDENTICAL_BOARD_VARIATIONS, - dmi_board_name) >= 0) - return board; - } + const struct dmi_system_id *dmi_entry; - return NULL; + dmi_entry = dmi_first_match(dmi_table); + return dmi_entry ? dmi_entry->driver_data : NULL; } -static int __init asus_ec_probe(struct platform_device *pdev) +static int asus_ec_probe(struct platform_device *pdev) { const struct hwmon_channel_info **ptr_asus_ec_ci; int nr_count[hwmon_max] = { 0 }, nr_types = 0; @@ -799,6 +923,12 @@ case family_amd_500_series: ec_data->sensors_info = sensors_family_amd_500; break; + case family_intel_300_series: + ec_data->sensors_info = sensors_family_intel_300; + break; + case family_intel_600_series: + ec_data->sensors_info = sensors_family_intel_600; + break; default: dev_err(dev, "Unknown board family: %d", ec_data->board_info->family); @@ -808,6 +938,8 @@ ec_data->nr_sensors = hweight_long(ec_data->board_info->sensors); ec_data->sensors = devm_kcalloc(dev, ec_data->nr_sensors, sizeof(struct ec_sensor), GFP_KERNEL); + if (!ec_data->sensors) + return -ENOMEM; status = setup_lock_data(dev); if (status) { @@ -868,29 +1000,37 @@ return PTR_ERR_OR_ZERO(hwdev); } - -static const struct acpi_device_id acpi_ec_ids[] = { - /* Embedded Controller Device */ - { "PNP0C09", 0 }, - {} -}; +MODULE_DEVICE_TABLE(dmi, dmi_table); static struct platform_driver asus_ec_sensors_platform_driver = { .driver = { .name = "asus-ec-sensors", - .acpi_match_table = acpi_ec_ids, }, + .probe = asus_ec_probe, }; -MODULE_DEVICE_TABLE(acpi, acpi_ec_ids); -/* - * we use module_platform_driver_probe() rather than module_platform_driver() - * because the probe function (and its dependants) are marked with __init, which - * means we can't put it into the .probe member of the platform_driver struct - * above, and we can't mark the asus_ec_sensors_platform_driver object as __init - * because the object is referenced from the module exit code. - */ -module_platform_driver_probe(asus_ec_sensors_platform_driver, asus_ec_probe); +static struct platform_device *asus_ec_sensors_platform_device; + +static int __init asus_ec_init(void) +{ + asus_ec_sensors_platform_device = + platform_create_bundle(&asus_ec_sensors_platform_driver, + asus_ec_probe, NULL, 0, NULL, 0); + + if (IS_ERR(asus_ec_sensors_platform_device)) + return PTR_ERR(asus_ec_sensors_platform_device); + + return 0; +} + +static void __exit asus_ec_exit(void) +{ + platform_device_unregister(asus_ec_sensors_platform_device); + platform_driver_unregister(&asus_ec_sensors_platform_driver); +} + +module_init(asus_ec_init); +module_exit(asus_ec_exit); module_param_named(mutex_path, mutex_path_override, charp, 0); MODULE_PARM_DESC(mutex_path, --- linux-5.19.0.orig/drivers/hwmon/coretemp.c +++ linux-5.19.0/drivers/hwmon/coretemp.c @@ -46,9 +46,6 @@ #define TOTAL_ATTRS (MAX_CORE_ATTRS + 1) #define MAX_CORE_DATA (NUM_REAL_CORES + BASE_SYSFS_ATTR_NO) -#define TO_CORE_ID(cpu) (cpu_data(cpu).cpu_core_id) -#define TO_ATTR_NO(cpu) (TO_CORE_ID(cpu) + BASE_SYSFS_ATTR_NO) - #ifdef CONFIG_SMP #define for_each_sibling(i, cpu) \ for_each_cpu(i, topology_sibling_cpumask(cpu)) @@ -91,6 +88,8 @@ struct platform_data { struct device *hwmon_dev; u16 pkg_id; + u16 cpu_map[NUM_REAL_CORES]; + struct ida ida; struct cpumask cpumask; struct temp_data *core_data[MAX_CORE_DATA]; struct device_attribute name_attr; @@ -243,10 +242,13 @@ */ if (host_bridge && host_bridge->vendor == PCI_VENDOR_ID_INTEL) { for (i = 0; i < ARRAY_SIZE(tjmax_pci_table); i++) { - if (host_bridge->device == tjmax_pci_table[i].device) + if (host_bridge->device == tjmax_pci_table[i].device) { + pci_dev_put(host_bridge); return tjmax_pci_table[i].tjmax; + } } } + pci_dev_put(host_bridge); for (i = 0; i < ARRAY_SIZE(tjmax_table); i++) { if (strstr(c->x86_model_id, tjmax_table[i].id)) @@ -441,7 +443,7 @@ MSR_IA32_THERM_STATUS; tdata->is_pkg_data = pkg_flag; tdata->cpu = cpu; - tdata->cpu_core_id = TO_CORE_ID(cpu); + tdata->cpu_core_id = topology_core_id(cpu); tdata->attr_size = MAX_CORE_ATTRS; mutex_init(&tdata->update_lock); return tdata; @@ -454,7 +456,7 @@ struct platform_data *pdata = platform_get_drvdata(pdev); struct cpuinfo_x86 *c = &cpu_data(cpu); u32 eax, edx; - int err, attr_no; + int err, index, attr_no; /* * Find attr number for sysfs: @@ -462,14 +464,26 @@ * The attr number is always core id + 2 * The Pkgtemp will always show up as temp1_*, if available */ - attr_no = pkg_flag ? PKG_SYSFS_ATTR_NO : TO_ATTR_NO(cpu); + if (pkg_flag) { + attr_no = PKG_SYSFS_ATTR_NO; + } else { + index = ida_alloc(&pdata->ida, GFP_KERNEL); + if (index < 0) + return index; + pdata->cpu_map[index] = topology_core_id(cpu); + attr_no = index + BASE_SYSFS_ATTR_NO; + } - if (attr_no > MAX_CORE_DATA - 1) - return -ERANGE; + if (attr_no > MAX_CORE_DATA - 1) { + err = -ERANGE; + goto ida_free; + } tdata = init_temp_data(cpu, pkg_flag); - if (!tdata) - return -ENOMEM; + if (!tdata) { + err = -ENOMEM; + goto ida_free; + } /* Test if we can access the status register */ err = rdmsr_safe_on_cpu(cpu, tdata->status_reg, &eax, &edx); @@ -505,6 +519,9 @@ exit_free: pdata->core_data[attr_no] = NULL; kfree(tdata); +ida_free: + if (!pkg_flag) + ida_free(&pdata->ida, index); return err; } @@ -519,11 +536,18 @@ { struct temp_data *tdata = pdata->core_data[indx]; + /* if we errored on add then this is already gone */ + if (!tdata) + return; + /* Remove the sysfs attributes */ sysfs_remove_group(&pdata->hwmon_dev->kobj, &tdata->attr_group); kfree(pdata->core_data[indx]); pdata->core_data[indx] = NULL; + + if (indx >= BASE_SYSFS_ATTR_NO) + ida_free(&pdata->ida, indx - BASE_SYSFS_ATTR_NO); } static int coretemp_probe(struct platform_device *pdev) @@ -537,6 +561,7 @@ return -ENOMEM; pdata->pkg_id = pdev->id; + ida_init(&pdata->ida); platform_set_drvdata(pdev, pdata); pdata->hwmon_dev = devm_hwmon_device_register_with_groups(dev, DRVNAME, @@ -553,6 +578,7 @@ if (pdata->core_data[i]) coretemp_remove_core(pdata, i); + ida_destroy(&pdata->ida); return 0; } @@ -647,7 +673,7 @@ struct platform_device *pdev = coretemp_get_pdev(cpu); struct platform_data *pd; struct temp_data *tdata; - int indx, target; + int i, indx = -1, target; /* * Don't execute this on suspend as the device remove locks @@ -660,12 +686,19 @@ if (!pdev) return 0; - /* The core id is too big, just return */ - indx = TO_ATTR_NO(cpu); - if (indx > MAX_CORE_DATA - 1) + pd = platform_get_drvdata(pdev); + + for (i = 0; i < NUM_REAL_CORES; i++) { + if (pd->cpu_map[i] == topology_core_id(cpu)) { + indx = i + BASE_SYSFS_ATTR_NO; + break; + } + } + + /* Too many cores and this core is not populated, just return */ + if (indx < 0) return 0; - pd = platform_get_drvdata(pdev); tdata = pd->core_data[indx]; cpumask_clear_cpu(cpu, &pd->cpumask); --- linux-5.19.0.orig/drivers/hwmon/dell-smm-hwmon.c +++ linux-5.19.0/drivers/hwmon/dell-smm-hwmon.c @@ -1365,6 +1365,14 @@ }, .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_34A3_35A3], }, + { + .ident = "Dell XPS 13 7390", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "XPS 13 7390"), + }, + .driver_data = (void *)&i8k_fan_control_data[I8K_FAN_34A3_35A3], + }, { } }; --- linux-5.19.0.orig/drivers/hwmon/drivetemp.c +++ linux-5.19.0/drivers/hwmon/drivetemp.c @@ -621,3 +621,4 @@ MODULE_AUTHOR("Guenter Roeck "); MODULE_DESCRIPTION("Hard drive temperature monitor"); MODULE_LICENSE("GPL"); +MODULE_ALIAS("platform:drivetemp"); --- linux-5.19.0.orig/drivers/hwmon/gpio-fan.c +++ linux-5.19.0/drivers/hwmon/gpio-fan.c @@ -391,6 +391,9 @@ if (!fan_data) return -EINVAL; + if (state >= fan_data->num_speed) + return -EINVAL; + set_fan_speed(fan_data, state); return 0; } --- linux-5.19.0.orig/drivers/hwmon/gsc-hwmon.c +++ linux-5.19.0/drivers/hwmon/gsc-hwmon.c @@ -267,6 +267,7 @@ pdata->nchannels = nchannels; /* fan controller base address */ + of_node_get(dev->parent->of_node); fan = of_find_compatible_node(dev->parent->of_node, NULL, "gw,gsc-fan"); if (fan && of_property_read_u32(fan, "reg", &pdata->fan_base)) { dev_err(dev, "fan node without base\n"); --- linux-5.19.0.orig/drivers/hwmon/hwmon-aaeon.c +++ linux-5.19.0/drivers/hwmon/hwmon-aaeon.c @@ -0,0 +1,568 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * AAEON HWMON driver + * Copyright (c) 2021, AAEON Ltd. + * + * Author: Edward Lin + * Author: Kunyang Fan + * + * 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. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DRVNAME "hwmon-aaeon" + +#define AAEON_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66" + +#define AAEON_VERSION_METHOD_ID 0x00000000 +#define HWM_INFORMATION_METHOD_ID 0x00030000 +#define HWM_METHOD_ID 0x00030001 + +#define BITMAP_TEMP_ARG 0x12 +#define BITMAP_FAN_ARG 0x13 +#define BITMAP_VOLTAGE_ARG 0x14 + +#define SENSOR_TEMP_NUMBER 0 +#define SENSOR_FAN_NUMBER 1 +#define SENSOR_VOLTAGE_NUMBER 2 +#define SENSOR_MAX_NUMBER 2 + +static ssize_t aaeon_show_sensor(struct device *dev, + struct device_attribute *devattr, char *buf); +static ssize_t aaeon_show_sensor_name(struct device *dev, + struct device_attribute *devattr, + char *buf); +static ssize_t aaeon_show_version(struct device *dev, + struct device_attribute *devattr, char *buf); +static ssize_t name_show(struct device *dev, struct device_attribute *devattr, + char *buf); +static int aaeon_get_version(void); +static int aaeon_hwmon_probe(struct platform_device *pdev); +static int aaeon_hwmon_remove(struct platform_device *pdev); + +static const char * const temp_sensors_name_table[] = { + "CPU_Temp", + "SYS1_Temp", + "SYS2_Temp", +}; + +static const char * const temp_sensors_name_table_V3[] = { + "SYS_Temp", + "CPU_Temp", +}; + +static const char * const fan_sensors_name_table[] = { + "CPU_FAN", + "SYS1_FAN", + "SYS2_FAN", + "Chasis1_FAN", + "Chasis2_FAN", +}; + +static const char * const fan_sensors_name_table_V3[] = { + "Chasis_FAN", + "CPU_FAN", +}; + +static const char * const voltage_sensors_name_table[] = { + "VCORE_Voltage", + "VMEM_Voltage", + "+12_Voltage", + "+5_Voltage", + "+3.3_Voltage", + "+1.8_Voltage", + "5VSB_Voltage", + "3VSB_Voltage", + "VBAT_Voltage", +}; + +static const char * const voltage_sensors_name_table_V3[] = { + "VCORE_Voltage", + "+5_Voltage", + "AVCC_Voltage", + "+3.3_Voltage", + "+12_Voltage", + "VCOREREFIN_Voltage", + "VIN4_Voltage", + "3VSB_Voltage", + "VBAT_Voltage", +}; + +struct aaeon_hwmon_data { + struct device *hwmon_dev; + int bfpi_version; + u32 temp_bitmap; + u32 fan_bitmap; + u32 voltage_bitmap; + unsigned int sensors_number[SENSOR_MAX_NUMBER + 1]; + const char * const *temp_names; + const char * const *fan_names; + const char * const *voltage_names; +}; + +/* Temperature attributes */ +static struct sensor_device_attribute_2 temp_sys_nodes_atts[] = { + SENSOR_ATTR_2(temp1_input, 0444, aaeon_show_sensor, NULL, + SENSOR_TEMP_NUMBER, 0), + SENSOR_ATTR_2(temp1_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_TEMP_NUMBER, 0), + SENSOR_ATTR_2(temp2_input, 0444, aaeon_show_sensor, NULL, + SENSOR_TEMP_NUMBER, 1), + SENSOR_ATTR_2(temp2_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_TEMP_NUMBER, 1), + SENSOR_ATTR_2(temp3_input, 0444, aaeon_show_sensor, NULL, + SENSOR_TEMP_NUMBER, 2), + SENSOR_ATTR_2(temp3_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_TEMP_NUMBER, 2), +}; + +/* Cooler Fan attributes */ +static struct sensor_device_attribute_2 fan_sys_nodes_atts[] = { + SENSOR_ATTR_2(fan1_input, 0444, aaeon_show_sensor, NULL, + SENSOR_FAN_NUMBER, 0), + SENSOR_ATTR_2(fan1_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_FAN_NUMBER, 0), + SENSOR_ATTR_2(fan2_input, 0444, aaeon_show_sensor, NULL, + SENSOR_FAN_NUMBER, 1), + SENSOR_ATTR_2(fan2_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_FAN_NUMBER, 1), + SENSOR_ATTR_2(fan3_input, 0444, aaeon_show_sensor, NULL, + SENSOR_FAN_NUMBER, 2), + SENSOR_ATTR_2(fan3_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_FAN_NUMBER, 2), + SENSOR_ATTR_2(fan4_input, 0444, aaeon_show_sensor, NULL, + SENSOR_FAN_NUMBER, 3), + SENSOR_ATTR_2(fan4_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_FAN_NUMBER, 3), + SENSOR_ATTR_2(fan5_input, 0444, aaeon_show_sensor, NULL, + SENSOR_FAN_NUMBER, 4), + SENSOR_ATTR_2(fan5_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_FAN_NUMBER, 4), +}; + +/* Voltage attributes */ +static struct sensor_device_attribute_2 voltage_sys_nodes_atts[] = { + SENSOR_ATTR_2(in1_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 0), + SENSOR_ATTR_2(in1_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 0), + SENSOR_ATTR_2(in2_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 1), + SENSOR_ATTR_2(in2_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 1), + SENSOR_ATTR_2(in3_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 2), + SENSOR_ATTR_2(in3_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 2), + SENSOR_ATTR_2(in4_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 3), + SENSOR_ATTR_2(in4_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 3), + SENSOR_ATTR_2(in5_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 4), + SENSOR_ATTR_2(in5_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 4), + SENSOR_ATTR_2(in6_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 5), + SENSOR_ATTR_2(in6_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 5), + SENSOR_ATTR_2(in7_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 6), + SENSOR_ATTR_2(in7_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 6), + SENSOR_ATTR_2(in8_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 7), + SENSOR_ATTR_2(in8_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 7), + SENSOR_ATTR_2(in9_input, 0444, aaeon_show_sensor, NULL, + SENSOR_VOLTAGE_NUMBER, 8), + SENSOR_ATTR_2(in9_label, 0444, aaeon_show_sensor_name, NULL, + SENSOR_VOLTAGE_NUMBER, 8), + +}; + +static struct sensor_device_attribute_2 info_sys_nodes_atts[] = { + /* WMI version Information */ + SENSOR_ATTR_2(AAEON_VERSION, 0444, aaeon_show_version, NULL, 0, 0), +}; + +DEVICE_ATTR_RO(name); +static ssize_t name_show(struct device *dev, struct device_attribute *devattr, + char *buf) +{ + return sprintf(buf, "%s\n", DRVNAME); +} + +static ssize_t aaeon_show_version(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + struct aaeon_hwmon_data *data = + (struct aaeon_hwmon_data *)dev_get_drvdata(dev); + + return sprintf(buf, "%d\n", data->bfpi_version); +} + +static ssize_t aaeon_show_sensor_name(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + u8 nr = to_sensor_dev_attr_2(devattr)->nr; + u8 index = to_sensor_dev_attr_2(devattr)->index; + struct aaeon_hwmon_data *data = + (struct aaeon_hwmon_data *)dev_get_drvdata(dev); + + if (nr > SENSOR_MAX_NUMBER || index >= data->sensors_number[nr]) { + pr_debug("Can not check the device"); + return -1; + } + + switch (nr) { + case SENSOR_TEMP_NUMBER: + return sprintf(buf, "%s\n", data->temp_names[index]); + case SENSOR_FAN_NUMBER: + return sprintf(buf, "%s\n", data->fan_names[index]); + case SENSOR_VOLTAGE_NUMBER: + return sprintf(buf, "%s\n", data->voltage_names[index]); + default: + break; + } + + return 0; +} + +static ssize_t aaeon_show_sensor(struct device *dev, + struct device_attribute *devattr, char *buf) +{ + u8 nr = to_sensor_dev_attr_2(devattr)->nr; + u8 index = to_sensor_dev_attr_2(devattr)->index; + u32 dev_id; + int retval, err; + struct aaeon_hwmon_data *data = + (struct aaeon_hwmon_data *)dev_get_drvdata(dev); + + if (nr > SENSOR_MAX_NUMBER || index >= data->sensors_number[nr]) { + pr_debug("Can not check the device"); + return -1; + } + + /* For the V3 version, index need offset */ + if (data->bfpi_version == 0x03 && nr != SENSOR_VOLTAGE_NUMBER) + index++; + + dev_id = (index << 12) | (nr << 8); + err = asus_wmi_evaluate_method(HWM_METHOD_ID, dev_id, 0, &retval); + if (err) + return err; + + /* For the V3 version, need to convert the raw value*/ + if (nr == SENSOR_VOLTAGE_NUMBER && data->bfpi_version == 0x03) { + switch (index) { + case 0: /* VCORE */ + retval = retval * 16; + break; + case 1: /* +5V */ + retval = (retval * 2008) / 50; + break; + case 2: /* AVCC */ + retval = retval * 16; + break; + case 3: /* +3.3V */ + retval = retval * 16; + break; + case 4: /* +12V */ + retval = retval * 96; + break; + case 5: /* VCOREREFIN */ + retval = (retval * 552) / 41; + break; + case 6: /* VIN4 */ + retval = retval * 8; + break; + case 7: /* 3VSB */ + retval = retval * 16; + break; + case 8: /* VBAT */ + retval = retval * 16; + break; + default: + break; + } + } else if (nr == SENSOR_TEMP_NUMBER && data->bfpi_version == 0x03) + retval = retval * 1000; + + return sprintf(buf, "%d\n", retval); +} + +static int aaeon_hwmon_create_sub_sysfs_fs(struct platform_device *pdev, + struct sensor_device_attribute_2 *attr, + int sensor_number, + u32 sensor_mask, + int bfpi_version) +{ + int i, err = 0; + + for (i = 0; i < sensor_number; i++) { + if (bfpi_version == 0x03 || sensor_mask & BIT(i)) { + err = device_create_file(&pdev->dev, &attr[2 * i].dev_attr); + if (err) + break; + err = device_create_file(&pdev->dev, &attr[2 * i + 1].dev_attr); + if (err) + break; + } + } + + return err; +} + +static int +aaeon_hwmon_create_sysfs_files(struct platform_device *pdev, struct aaeon_hwmon_data *data) +{ + int err; + + /* register sysfs interface files */ + err = device_create_file(&pdev->dev, &dev_attr_name); + if (err) + return err; + + /* registe sysfs to dump sensors BFPI version */ + err = device_create_file(&pdev->dev, &info_sys_nodes_atts[0].dev_attr); + if (err) + return err; + + /* create temperature name and value node */ + err = aaeon_hwmon_create_sub_sysfs_fs(pdev, temp_sys_nodes_atts, + data->sensors_number[SENSOR_TEMP_NUMBER], + data->temp_bitmap, data->bfpi_version); + if (err) + return err; + + /* create fan name and value node */ + err = aaeon_hwmon_create_sub_sysfs_fs(pdev, fan_sys_nodes_atts, + data->sensors_number[SENSOR_FAN_NUMBER], + data->fan_bitmap, data->bfpi_version); + if (err) + return err; + + /* create voltage name and value node */ + err = aaeon_hwmon_create_sub_sysfs_fs(pdev, voltage_sys_nodes_atts, + data->sensors_number[SENSOR_VOLTAGE_NUMBER], + data->voltage_bitmap, data->bfpi_version); + if (err) + return err; + + return 0; +} + +static void aaeon_hwmon_remove_sub_sysfs_fs(struct platform_device *pdev, + struct sensor_device_attribute_2 *attr, + int sensor_number, + u32 sensor_mask, + int bfpi_version) +{ + int i; + + for (i = 0; i < sensor_number; i++) { + if (bfpi_version == 0x03 || sensor_mask & BIT(i)) { + device_remove_file(&pdev->dev, &attr[2 * i].dev_attr); + device_remove_file(&pdev->dev, &attr[2 * i + 1].dev_attr); + } + } +} + +static void +aaeon_hwmon_remove_sysfs_files(struct platform_device *pdev, + struct aaeon_hwmon_data *data) +{ + /* degister sysfs interface files */ + device_remove_file(&pdev->dev, &dev_attr_name); + + /* degiste sysfs to dump sensors BFPI version */ + device_remove_file(&pdev->dev, &info_sys_nodes_atts[0].dev_attr); + + /* remove temperature name and value node */ + aaeon_hwmon_remove_sub_sysfs_fs(pdev, temp_sys_nodes_atts, + data->sensors_number[SENSOR_TEMP_NUMBER], + data->temp_bitmap, + data->bfpi_version); + + /* remove fan name and value node */ + aaeon_hwmon_remove_sub_sysfs_fs(pdev, fan_sys_nodes_atts, + data->sensors_number[SENSOR_FAN_NUMBER], + data->fan_bitmap, + data->bfpi_version); + + /* remove voltage name and value node */ + aaeon_hwmon_remove_sub_sysfs_fs(pdev, voltage_sys_nodes_atts, + data->sensors_number[SENSOR_VOLTAGE_NUMBER], + data->voltage_bitmap, + data->bfpi_version); +} + +static int aaeon_hwmon_remove(struct platform_device *pdev) +{ + struct aaeon_hwmon_data *data = platform_get_drvdata(pdev); + + if (data->hwmon_dev) + hwmon_device_unregister(data->hwmon_dev); + + aaeon_hwmon_remove_sysfs_files(pdev, data); + + return 0; +} + +static int aaeon_get_version(void) +{ + int err, retval; + u32 dev_id = 0x00; + + err = asus_wmi_evaluate_method(AAEON_VERSION_METHOD_ID, dev_id, 0, + &retval); + if (err) + return err; + + return retval; +} + +static int aaeon_hwmon_init_drv_data(struct aaeon_hwmon_data *data) +{ + int err; + + data->bfpi_version = aaeon_get_version(); + if (data->bfpi_version < 0) { + pr_debug("Error BFPI verion\n"); + return -1; + } + + if (data->bfpi_version == 0x03) { + /* set the number of bits in temp bitmap */ + data->sensors_number[SENSOR_TEMP_NUMBER] = + ARRAY_SIZE(temp_sensors_name_table_V3); + data->temp_names = temp_sensors_name_table_V3; + + /* set the number of bits in fan bitmap */ + data->sensors_number[SENSOR_FAN_NUMBER] = + ARRAY_SIZE(fan_sensors_name_table_V3); + data->fan_names = fan_sensors_name_table_V3; + + /* set the number of bits in voltage bitmap */ + data->sensors_number[SENSOR_VOLTAGE_NUMBER] = + ARRAY_SIZE(voltage_sensors_name_table_V3); + data->voltage_names = voltage_sensors_name_table_V3; + } else { + /* set the number of bits in temp bitmap */ + data->sensors_number[SENSOR_TEMP_NUMBER] = + ARRAY_SIZE(temp_sensors_name_table); + data->temp_names = temp_sensors_name_table; + + /* set the number of bits in fan bitmap */ + data->sensors_number[SENSOR_FAN_NUMBER] = + ARRAY_SIZE(fan_sensors_name_table); + data->fan_names = fan_sensors_name_table; + + /* set the number of bits in voltage bitmap */ + data->sensors_number[SENSOR_VOLTAGE_NUMBER] = + ARRAY_SIZE(voltage_sensors_name_table); + data->voltage_names = voltage_sensors_name_table; + } + + /* get temp supported bitmap */ + err = asus_wmi_evaluate_method(HWM_INFORMATION_METHOD_ID, + BITMAP_TEMP_ARG, 0, &data->temp_bitmap); + if (err) + return err; + + /* get fan supported bitmap */ + err = asus_wmi_evaluate_method(HWM_INFORMATION_METHOD_ID, + BITMAP_FAN_ARG, 0, &data->fan_bitmap); + if (err) + return err; + + /* get voltage supported bitmap */ + err = asus_wmi_evaluate_method(HWM_INFORMATION_METHOD_ID, + BITMAP_VOLTAGE_ARG, 0, &data->voltage_bitmap); + if (err) + return err; + + return 0; +} + +static int aaeon_hwmon_probe(struct platform_device *pdev) +{ + int err; + struct aaeon_hwmon_data *data; + + pr_debug("aaeon hwomon device probe (support V3)!\n"); + if (!wmi_has_guid(AAEON_WMI_MGMT_GUID)) { + pr_info("AAEON Management GUID not found\n"); + return -ENODEV; + } + + data = devm_kzalloc(&pdev->dev, sizeof(struct aaeon_hwmon_data), + GFP_KERNEL); + if (!data) + return -ENOMEM; + + err = aaeon_hwmon_init_drv_data(data); + if (err) { + pr_info("Error to get sensor support bitmap\n"); + goto exit; + } + + if (data->bfpi_version != 0x03 && data->temp_bitmap == 0 && + data->fan_bitmap == 0 && data->voltage_bitmap == 0) { + pr_debug("No sensors found\n"); + err = -ENODEV; + goto exit; + } + + platform_set_drvdata(pdev, data); + err = aaeon_hwmon_create_sysfs_files(pdev, data); + if (err) + goto exit; + + data->hwmon_dev = devm_hwmon_device_register_with_info(&pdev->dev, + "AAEON_HWM", + data, + NULL, + NULL); + if (IS_ERR(data->hwmon_dev)) { + err = PTR_ERR(data->hwmon_dev); + data->hwmon_dev = NULL; + goto exit_unregister_sysfs; + } + + return 0; + +exit_unregister_sysfs: + aaeon_hwmon_remove(pdev); +exit: + return err; +} + +static struct platform_driver aaeon_hwmon_driver = { + .driver = { + .name = DRVNAME, + .owner = THIS_MODULE, + }, + .probe = aaeon_hwmon_probe, + .remove = aaeon_hwmon_remove, +}; + +module_platform_driver_probe(aaeon_hwmon_driver, aaeon_hwmon_probe); + +MODULE_ALIAS("platform:hwmon-aaeon"); +MODULE_DESCRIPTION("AAEON Hardware Monitoring Driver"); +MODULE_AUTHOR("Edward Lin "); +MODULE_AUTHOR("Kunyang Fan "); +MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/hwmon/i5500_temp.c +++ linux-5.19.0/drivers/hwmon/i5500_temp.c @@ -117,7 +117,7 @@ u32 tstimer; s8 tsfsc; - err = pci_enable_device(pdev); + err = pcim_enable_device(pdev); if (err) { dev_err(&pdev->dev, "Failed to enable device\n"); return err; --- linux-5.19.0.orig/drivers/hwmon/ibmpex.c +++ linux-5.19.0/drivers/hwmon/ibmpex.c @@ -502,6 +502,7 @@ return; out_register: + list_del(&data->list); hwmon_device_unregister(data->hwmon_dev); out_user: ipmi_destroy_user(data->user); --- linux-5.19.0.orig/drivers/hwmon/ina3221.c +++ linux-5.19.0/drivers/hwmon/ina3221.c @@ -228,7 +228,7 @@ * Shunt Voltage Sum register has 14-bit value with 1-bit shift * Other Shunt Voltage registers have 12 bits with 3-bit shift */ - if (reg == INA3221_SHUNT_SUM) + if (reg == INA3221_SHUNT_SUM || reg == INA3221_CRIT_SUM) *val = sign_extend32(regval >> 1, 14); else *val = sign_extend32(regval >> 3, 12); @@ -465,7 +465,7 @@ * SHUNT_SUM: (1 / 40uV) << 1 = 1 / 20uV * SHUNT[1-3]: (1 / 40uV) << 3 = 1 / 5uV */ - if (reg == INA3221_SHUNT_SUM) + if (reg == INA3221_SHUNT_SUM || reg == INA3221_CRIT_SUM) regval = DIV_ROUND_CLOSEST(voltage_uv, 20) & 0xfffe; else regval = DIV_ROUND_CLOSEST(voltage_uv, 5) & 0xfff8; --- linux-5.19.0.orig/drivers/hwmon/jc42.c +++ linux-5.19.0/drivers/hwmon/jc42.c @@ -19,6 +19,7 @@ #include #include #include +#include /* Addresses to scan */ static const unsigned short normal_i2c[] = { @@ -199,31 +200,14 @@ { STM_MANID, STTS3000_DEVID, STTS3000_DEVID_MASK }, }; -enum temp_index { - t_input = 0, - t_crit, - t_min, - t_max, - t_num_temp -}; - -static const u8 temp_regs[t_num_temp] = { - [t_input] = JC42_REG_TEMP, - [t_crit] = JC42_REG_TEMP_CRITICAL, - [t_min] = JC42_REG_TEMP_LOWER, - [t_max] = JC42_REG_TEMP_UPPER, -}; - /* Each client has this additional data */ struct jc42_data { - struct i2c_client *client; struct mutex update_lock; /* protect register access */ + struct regmap *regmap; bool extended; /* true if extended range supported */ bool valid; - unsigned long last_updated; /* In jiffies */ u16 orig_config; /* original configuration */ u16 config; /* current configuration */ - u16 temp[t_num_temp];/* Temperatures */ }; #define JC42_TEMP_MIN_EXTENDED (-40000) @@ -248,85 +232,102 @@ return reg * 125 / 2; } -static struct jc42_data *jc42_update_device(struct device *dev) -{ - struct jc42_data *data = dev_get_drvdata(dev); - struct i2c_client *client = data->client; - struct jc42_data *ret = data; - int i, val; - - mutex_lock(&data->update_lock); - - if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { - for (i = 0; i < t_num_temp; i++) { - val = i2c_smbus_read_word_swapped(client, temp_regs[i]); - if (val < 0) { - ret = ERR_PTR(val); - goto abort; - } - data->temp[i] = val; - } - data->last_updated = jiffies; - data->valid = true; - } -abort: - mutex_unlock(&data->update_lock); - return ret; -} - static int jc42_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, long *val) { - struct jc42_data *data = jc42_update_device(dev); - int temp, hyst; + struct jc42_data *data = dev_get_drvdata(dev); + unsigned int regval; + int ret, temp, hyst; - if (IS_ERR(data)) - return PTR_ERR(data); + mutex_lock(&data->update_lock); switch (attr) { case hwmon_temp_input: - *val = jc42_temp_from_reg(data->temp[t_input]); - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP, ®val); + if (ret) + break; + + *val = jc42_temp_from_reg(regval); + break; case hwmon_temp_min: - *val = jc42_temp_from_reg(data->temp[t_min]); - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP_LOWER, ®val); + if (ret) + break; + + *val = jc42_temp_from_reg(regval); + break; case hwmon_temp_max: - *val = jc42_temp_from_reg(data->temp[t_max]); - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP_UPPER, ®val); + if (ret) + break; + + *val = jc42_temp_from_reg(regval); + break; case hwmon_temp_crit: - *val = jc42_temp_from_reg(data->temp[t_crit]); - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP_CRITICAL, + ®val); + if (ret) + break; + + *val = jc42_temp_from_reg(regval); + break; case hwmon_temp_max_hyst: - temp = jc42_temp_from_reg(data->temp[t_max]); + ret = regmap_read(data->regmap, JC42_REG_TEMP_UPPER, ®val); + if (ret) + break; + + temp = jc42_temp_from_reg(regval); hyst = jc42_hysteresis[(data->config & JC42_CFG_HYST_MASK) >> JC42_CFG_HYST_SHIFT]; *val = temp - hyst; - return 0; + break; case hwmon_temp_crit_hyst: - temp = jc42_temp_from_reg(data->temp[t_crit]); + ret = regmap_read(data->regmap, JC42_REG_TEMP_CRITICAL, + ®val); + if (ret) + break; + + temp = jc42_temp_from_reg(regval); hyst = jc42_hysteresis[(data->config & JC42_CFG_HYST_MASK) >> JC42_CFG_HYST_SHIFT]; *val = temp - hyst; - return 0; + break; case hwmon_temp_min_alarm: - *val = (data->temp[t_input] >> JC42_ALARM_MIN_BIT) & 1; - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP, ®val); + if (ret) + break; + + *val = (regval >> JC42_ALARM_MIN_BIT) & 1; + break; case hwmon_temp_max_alarm: - *val = (data->temp[t_input] >> JC42_ALARM_MAX_BIT) & 1; - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP, ®val); + if (ret) + break; + + *val = (regval >> JC42_ALARM_MAX_BIT) & 1; + break; case hwmon_temp_crit_alarm: - *val = (data->temp[t_input] >> JC42_ALARM_CRIT_BIT) & 1; - return 0; + ret = regmap_read(data->regmap, JC42_REG_TEMP, ®val); + if (ret) + break; + + *val = (regval >> JC42_ALARM_CRIT_BIT) & 1; + break; default: - return -EOPNOTSUPP; + ret = -EOPNOTSUPP; + break; } + + mutex_unlock(&data->update_lock); + + return ret; } static int jc42_write(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, long val) { struct jc42_data *data = dev_get_drvdata(dev); - struct i2c_client *client = data->client; + unsigned int regval; int diff, hyst; int ret; @@ -334,21 +335,23 @@ switch (attr) { case hwmon_temp_min: - data->temp[t_min] = jc42_temp_to_reg(val, data->extended); - ret = i2c_smbus_write_word_swapped(client, temp_regs[t_min], - data->temp[t_min]); + ret = regmap_write(data->regmap, JC42_REG_TEMP_LOWER, + jc42_temp_to_reg(val, data->extended)); break; case hwmon_temp_max: - data->temp[t_max] = jc42_temp_to_reg(val, data->extended); - ret = i2c_smbus_write_word_swapped(client, temp_regs[t_max], - data->temp[t_max]); + ret = regmap_write(data->regmap, JC42_REG_TEMP_UPPER, + jc42_temp_to_reg(val, data->extended)); break; case hwmon_temp_crit: - data->temp[t_crit] = jc42_temp_to_reg(val, data->extended); - ret = i2c_smbus_write_word_swapped(client, temp_regs[t_crit], - data->temp[t_crit]); + ret = regmap_write(data->regmap, JC42_REG_TEMP_CRITICAL, + jc42_temp_to_reg(val, data->extended)); break; case hwmon_temp_crit_hyst: + ret = regmap_read(data->regmap, JC42_REG_TEMP_CRITICAL, + ®val); + if (ret) + break; + /* * JC42.4 compliant chips only support four hysteresis values. * Pick best choice and go from there. @@ -356,7 +359,7 @@ val = clamp_val(val, (data->extended ? JC42_TEMP_MIN_EXTENDED : JC42_TEMP_MIN) - 6000, JC42_TEMP_MAX); - diff = jc42_temp_from_reg(data->temp[t_crit]) - val; + diff = jc42_temp_from_reg(regval) - val; hyst = 0; if (diff > 0) { if (diff < 2250) @@ -368,9 +371,8 @@ } data->config = (data->config & ~JC42_CFG_HYST_MASK) | (hyst << JC42_CFG_HYST_SHIFT); - ret = i2c_smbus_write_word_swapped(data->client, - JC42_REG_CONFIG, - data->config); + ret = regmap_write(data->regmap, JC42_REG_CONFIG, + data->config); break; default: ret = -EOPNOTSUPP; @@ -470,51 +472,80 @@ .info = jc42_info, }; +static bool jc42_readable_reg(struct device *dev, unsigned int reg) +{ + return (reg >= JC42_REG_CAP && reg <= JC42_REG_DEVICEID) || + reg == JC42_REG_SMBUS; +} + +static bool jc42_writable_reg(struct device *dev, unsigned int reg) +{ + return (reg >= JC42_REG_CONFIG && reg <= JC42_REG_TEMP_CRITICAL) || + reg == JC42_REG_SMBUS; +} + +static bool jc42_volatile_reg(struct device *dev, unsigned int reg) +{ + return reg == JC42_REG_CONFIG || reg == JC42_REG_TEMP; +} + +static const struct regmap_config jc42_regmap_config = { + .reg_bits = 8, + .val_bits = 16, + .val_format_endian = REGMAP_ENDIAN_BIG, + .max_register = JC42_REG_SMBUS, + .writeable_reg = jc42_writable_reg, + .readable_reg = jc42_readable_reg, + .volatile_reg = jc42_volatile_reg, + .cache_type = REGCACHE_RBTREE, +}; + static int jc42_probe(struct i2c_client *client) { struct device *dev = &client->dev; struct device *hwmon_dev; + unsigned int config, cap; struct jc42_data *data; - int config, cap; + int ret; data = devm_kzalloc(dev, sizeof(struct jc42_data), GFP_KERNEL); if (!data) return -ENOMEM; - data->client = client; + data->regmap = devm_regmap_init_i2c(client, &jc42_regmap_config); + if (IS_ERR(data->regmap)) + return PTR_ERR(data->regmap); + i2c_set_clientdata(client, data); mutex_init(&data->update_lock); - cap = i2c_smbus_read_word_swapped(client, JC42_REG_CAP); - if (cap < 0) - return cap; + ret = regmap_read(data->regmap, JC42_REG_CAP, &cap); + if (ret) + return ret; data->extended = !!(cap & JC42_CAP_RANGE); if (device_property_read_bool(dev, "smbus-timeout-disable")) { - int smbus; - /* * Not all chips support this register, but from a * quick read of various datasheets no chip appears * incompatible with the below attempt to disable * the timeout. And the whole thing is opt-in... */ - smbus = i2c_smbus_read_word_swapped(client, JC42_REG_SMBUS); - if (smbus < 0) - return smbus; - i2c_smbus_write_word_swapped(client, JC42_REG_SMBUS, - smbus | SMBUS_STMOUT); + ret = regmap_set_bits(data->regmap, JC42_REG_SMBUS, + SMBUS_STMOUT); + if (ret) + return ret; } - config = i2c_smbus_read_word_swapped(client, JC42_REG_CONFIG); - if (config < 0) - return config; + ret = regmap_read(data->regmap, JC42_REG_CONFIG, &config); + if (ret) + return ret; data->orig_config = config; if (config & JC42_CFG_SHUTDOWN) { config &= ~JC42_CFG_SHUTDOWN; - i2c_smbus_write_word_swapped(client, JC42_REG_CONFIG, config); + regmap_write(data->regmap, JC42_REG_CONFIG, config); } data->config = config; @@ -535,7 +566,7 @@ config = (data->orig_config & ~JC42_CFG_HYST_MASK) | (data->config & JC42_CFG_HYST_MASK); - i2c_smbus_write_word_swapped(client, JC42_REG_CONFIG, config); + regmap_write(data->regmap, JC42_REG_CONFIG, config); } return 0; } @@ -547,8 +578,11 @@ struct jc42_data *data = dev_get_drvdata(dev); data->config |= JC42_CFG_SHUTDOWN; - i2c_smbus_write_word_swapped(data->client, JC42_REG_CONFIG, - data->config); + regmap_write(data->regmap, JC42_REG_CONFIG, data->config); + + regcache_cache_only(data->regmap, true); + regcache_mark_dirty(data->regmap); + return 0; } @@ -556,10 +590,13 @@ { struct jc42_data *data = dev_get_drvdata(dev); + regcache_cache_only(data->regmap, false); + data->config &= ~JC42_CFG_SHUTDOWN; - i2c_smbus_write_word_swapped(data->client, JC42_REG_CONFIG, - data->config); - return 0; + regmap_write(data->regmap, JC42_REG_CONFIG, data->config); + + /* Restore cached register values to hardware */ + return regcache_sync(data->regmap); } static const struct dev_pm_ops jc42_dev_pm_ops = { --- linux-5.19.0.orig/drivers/hwmon/ltc2947-core.c +++ linux-5.19.0/drivers/hwmon/ltc2947-core.c @@ -396,7 +396,7 @@ return ret; /* in milidegrees celcius, temp is given by: */ - *val = (__val * 204) + 550; + *val = (__val * 204) + 5500; return 0; } --- linux-5.19.0.orig/drivers/hwmon/mr75203.c +++ linux-5.19.0/drivers/hwmon/mr75203.c @@ -68,8 +68,9 @@ /* VM Individual Macro Register */ #define VM_COM_REG_SIZE 0x200 -#define VM_SDIF_DONE(n) (VM_COM_REG_SIZE + 0x34 + 0x200 * (n)) -#define VM_SDIF_DATA(n) (VM_COM_REG_SIZE + 0x40 + 0x200 * (n)) +#define VM_SDIF_DONE(vm) (VM_COM_REG_SIZE + 0x34 + 0x200 * (vm)) +#define VM_SDIF_DATA(vm, ch) \ + (VM_COM_REG_SIZE + 0x40 + 0x200 * (vm) + 0x4 * (ch)) /* SDA Slave Register */ #define IP_CTRL 0x00 @@ -115,6 +116,7 @@ u32 t_num; u32 p_num; u32 v_num; + u32 c_num; u32 ip_freq; u8 *vm_idx; }; @@ -178,14 +180,15 @@ { struct pvt_device *pvt = dev_get_drvdata(dev); struct regmap *v_map = pvt->v_map; + u8 vm_idx, ch_idx; u32 n, stat; - u8 vm_idx; int ret; - if (channel >= pvt->v_num) + if (channel >= pvt->v_num * pvt->c_num) return -EINVAL; - vm_idx = pvt->vm_idx[channel]; + vm_idx = pvt->vm_idx[channel / pvt->c_num]; + ch_idx = channel % pvt->c_num; switch (attr) { case hwmon_in_input: @@ -196,13 +199,23 @@ if (ret) return ret; - ret = regmap_read(v_map, VM_SDIF_DATA(vm_idx), &n); + ret = regmap_read(v_map, VM_SDIF_DATA(vm_idx, ch_idx), &n); if(ret < 0) return ret; n &= SAMPLE_DATA_MSK; - /* Convert the N bitstream count into voltage */ - *val = (PVT_N_CONST * n - PVT_R_CONST) >> PVT_CONV_BITS; + /* + * Convert the N bitstream count into voltage. + * To support negative voltage calculation for 64bit machines + * n must be cast to long, since n and *val differ both in + * signedness and in size. + * Division is used instead of right shift, because for signed + * numbers, the sign bit is used to fill the vacated bit + * positions, and if the number is negative, 1 is used. + * BIT(x) may not be used instead of (1 << x) because it's + * unsigned. + */ + *val = (PVT_N_CONST * (long)n - PVT_R_CONST) / (1 << PVT_CONV_BITS); return 0; default: @@ -375,6 +388,19 @@ if (ret) return ret; + val = (BIT(pvt->c_num) - 1) | VM_CH_INIT | + IP_POLL << SDIF_ADDR_SFT | SDIF_WRN_W | SDIF_PROG; + ret = regmap_write(v_map, SDIF_W, val); + if (ret < 0) + return ret; + + ret = regmap_read_poll_timeout(v_map, SDIF_STAT, + val, !(val & SDIF_BUSY), + PVT_POLL_DELAY_US, + PVT_POLL_TIMEOUT_US); + if (ret) + return ret; + val = CFG1_VOL_MEAS_MODE | CFG1_PARALLEL_OUT | CFG1_14_BIT | IP_CFG << SDIF_ADDR_SFT | SDIF_WRN_W | SDIF_PROG; @@ -489,8 +515,8 @@ static int mr75203_probe(struct platform_device *pdev) { + u32 ts_num, vm_num, pd_num, ch_num, val, index, i; const struct hwmon_channel_info **pvt_info; - u32 ts_num, vm_num, pd_num, val, index, i; struct device *dev = &pdev->dev; u32 *temp_config, *in_config; struct device *hwmon_dev; @@ -531,9 +557,11 @@ ts_num = (val & TS_NUM_MSK) >> TS_NUM_SFT; pd_num = (val & PD_NUM_MSK) >> PD_NUM_SFT; vm_num = (val & VM_NUM_MSK) >> VM_NUM_SFT; + ch_num = (val & CH_NUM_MSK) >> CH_NUM_SFT; pvt->t_num = ts_num; pvt->p_num = pd_num; pvt->v_num = vm_num; + pvt->c_num = ch_num; val = 0; if (ts_num) val++; @@ -570,7 +598,7 @@ } if (vm_num) { - u32 num = vm_num; + u32 total_ch; ret = pvt_get_regmap(pdev, "vm", pvt); if (ret) @@ -584,30 +612,30 @@ ret = device_property_read_u8_array(dev, "intel,vm-map", pvt->vm_idx, vm_num); if (ret) { - num = 0; + /* + * Incase intel,vm-map property is not defined, we + * assume incremental channel numbers. + */ + for (i = 0; i < vm_num; i++) + pvt->vm_idx[i] = i; } else { for (i = 0; i < vm_num; i++) if (pvt->vm_idx[i] >= vm_num || pvt->vm_idx[i] == 0xff) { - num = i; + pvt->v_num = i; + vm_num = i; break; } } - /* - * Incase intel,vm-map property is not defined, we assume - * incremental channel numbers. - */ - for (i = num; i < vm_num; i++) - pvt->vm_idx[i] = i; - - in_config = devm_kcalloc(dev, num + 1, + total_ch = ch_num * vm_num; + in_config = devm_kcalloc(dev, total_ch + 1, sizeof(*in_config), GFP_KERNEL); if (!in_config) return -ENOMEM; - memset32(in_config, HWMON_I_INPUT, num); - in_config[num] = 0; + memset32(in_config, HWMON_I_INPUT, total_ch); + in_config[total_ch] = 0; pvt_in.config = in_config; pvt_info[index++] = &pvt_in; --- linux-5.19.0.orig/drivers/hwmon/nct6775-core.c +++ linux-5.19.0/drivers/hwmon/nct6775-core.c @@ -1480,7 +1480,7 @@ return 0; } -static struct nct6775_data *nct6775_update_device(struct device *dev) +struct nct6775_data *nct6775_update_device(struct device *dev) { struct nct6775_data *data = dev_get_drvdata(dev); int i, j, err = 0; @@ -1615,6 +1615,7 @@ mutex_unlock(&data->update_lock); return err ? ERR_PTR(err) : data; } +EXPORT_SYMBOL_GPL(nct6775_update_device); /* * Sysfs callback functions --- linux-5.19.0.orig/drivers/hwmon/nct6775-platform.c +++ linux-5.19.0/drivers/hwmon/nct6775-platform.c @@ -359,7 +359,7 @@ { int err; u16 tmp; - struct nct6775_data *data = dev_get_drvdata(dev); + struct nct6775_data *data = nct6775_update_device(dev); if (IS_ERR(data)) return PTR_ERR(data); --- linux-5.19.0.orig/drivers/hwmon/nct6775.h +++ linux-5.19.0/drivers/hwmon/nct6775.h @@ -196,6 +196,8 @@ return regmap_write(data->regmap, reg, value); } +struct nct6775_data *nct6775_update_device(struct device *dev); + bool nct6775_reg_is_word_sized(struct nct6775_data *data, u16 reg); int nct6775_probe(struct device *dev, struct nct6775_data *data, const struct regmap_config *regmapcfg); --- linux-5.19.0.orig/drivers/hwmon/occ/p9_sbe.c +++ linux-5.19.0/drivers/hwmon/occ/p9_sbe.c @@ -14,6 +14,8 @@ #include "common.h" +#define OCC_CHECKSUM_RETRIES 3 + struct p9_sbe_occ { struct occ occ; bool sbe_error; @@ -81,18 +83,23 @@ static int p9_sbe_occ_send_cmd(struct occ *occ, u8 *cmd, size_t len, void *resp, size_t resp_len) { + size_t original_resp_len = resp_len; struct p9_sbe_occ *ctx = to_p9_sbe_occ(occ); - int rc; + int rc, i; - rc = fsi_occ_submit(ctx->sbe, cmd, len, resp, &resp_len); - if (rc < 0) { + for (i = 0; i < OCC_CHECKSUM_RETRIES; ++i) { + rc = fsi_occ_submit(ctx->sbe, cmd, len, resp, &resp_len); + if (rc >= 0) + break; if (resp_len) { if (p9_sbe_occ_save_ffdc(ctx, resp, resp_len)) sysfs_notify(&occ->bus_dev->kobj, NULL, bin_attr_ffdc.attr.name); + return rc; } - - return rc; + if (rc != -EBADE) + return rc; + resp_len = original_resp_len; } switch (((struct occ_response *)resp)->return_status) { --- linux-5.19.0.orig/drivers/hwmon/pmbus/mp2888.c +++ linux-5.19.0/drivers/hwmon/pmbus/mp2888.c @@ -34,7 +34,7 @@ int curr_sense_gain; }; -#define to_mp2888_data(x) container_of(x, struct mp2888_data, info) +#define to_mp2888_data(x) container_of(x, struct mp2888_data, info) static int mp2888_read_byte_data(struct i2c_client *client, int page, int reg) { @@ -109,7 +109,7 @@ * - Kcs is the DrMOS current sense gain of power stage, which is obtained from the * register MP2888_MFR_VR_CONFIG1, bits 13-12 with the following selection of DrMOS * (data->curr_sense_gain): - * 00b - 5µA/A, 01b - 8.5µA/A, 10b - 9.7µA/A, 11b - 10µA/A. + * 00b - 8.5µA/A, 01b - 9.7µA/A, 1b - 10µA/A, 11b - 5µA/A. * - Rcs is the internal phase current sense resistor. This parameter depends on hardware * assembly. By default it is set to 1kΩ. In case of different assembly, user should * scale this parameter by dividing it by Rcs. @@ -118,10 +118,9 @@ * because sampling of current occurrence of bit weight has a big deviation, especially for * light load. */ - ret = DIV_ROUND_CLOSEST(ret * 100 - 9800, data->curr_sense_gain); - ret = (data->phase_curr_resolution) ? ret * 2 : ret; + ret = DIV_ROUND_CLOSEST(ret * 200 - 19600, data->curr_sense_gain); /* Scale according to total current resolution. */ - ret = (data->total_curr_resolution) ? ret * 8 : ret * 4; + ret = (data->total_curr_resolution) ? ret * 2 : ret; return ret; } @@ -212,7 +211,7 @@ ret = pmbus_read_word_data(client, page, phase, reg); if (ret < 0) return ret; - ret = data->total_curr_resolution ? ret * 2 : ret; + ret = data->total_curr_resolution ? ret : DIV_ROUND_CLOSEST(ret, 2); break; case PMBUS_POUT_OP_WARN_LIMIT: ret = pmbus_read_word_data(client, page, phase, reg); @@ -223,7 +222,7 @@ * set 1. Actual power is reported with 0.5W or 1W respectively resolution. Scaling * is needed to match both. */ - ret = data->total_curr_resolution ? ret * 4 : ret * 2; + ret = data->total_curr_resolution ? ret * 2 : ret; break; /* * The below registers are not implemented by device or implemented not according to the --- linux-5.19.0.orig/drivers/hwmon/sch56xx-common.c +++ linux-5.19.0/drivers/hwmon/sch56xx-common.c @@ -523,6 +523,28 @@ return PTR_ERR_OR_ZERO(sch56xx_pdev); } +static const struct dmi_system_id sch56xx_dmi_override_table[] __initconst = { + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "CELSIUS W380"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO P710"), + }, + }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU"), + DMI_MATCH(DMI_PRODUCT_NAME, "ESPRIMO E9900"), + }, + }, + { } +}; + /* For autoloading only */ static const struct dmi_system_id sch56xx_dmi_table[] __initconst = { { @@ -543,16 +565,18 @@ if (!dmi_check_system(sch56xx_dmi_table)) return -ENODEV; - /* - * Some machines like the Esprimo P720 and Esprimo C700 have - * onboard devices named " Antiope"/" Theseus" instead of - * "Antiope"/"Theseus", so we need to check for both. - */ - if (!dmi_find_device(DMI_DEV_TYPE_OTHER, "Antiope", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, " Antiope", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, "Theseus", NULL) && - !dmi_find_device(DMI_DEV_TYPE_OTHER, " Theseus", NULL)) - return -ENODEV; + if (!dmi_check_system(sch56xx_dmi_override_table)) { + /* + * Some machines like the Esprimo P720 and Esprimo C700 have + * onboard devices named " Antiope"/" Theseus" instead of + * "Antiope"/"Theseus", so we need to check for both. + */ + if (!dmi_find_device(DMI_DEV_TYPE_OTHER, "Antiope", NULL) && + !dmi_find_device(DMI_DEV_TYPE_OTHER, " Antiope", NULL) && + !dmi_find_device(DMI_DEV_TYPE_OTHER, "Theseus", NULL) && + !dmi_find_device(DMI_DEV_TYPE_OTHER, " Theseus", NULL)) + return -ENODEV; + } } /* --- linux-5.19.0.orig/drivers/hwmon/sht15.c +++ linux-5.19.0/drivers/hwmon/sht15.c @@ -1020,25 +1020,20 @@ static int sht15_remove(struct platform_device *pdev) { struct sht15_data *data = platform_get_drvdata(pdev); + int ret; - /* - * Make sure any reads from the device are done and - * prevent new ones beginning - */ - mutex_lock(&data->read_lock); - if (sht15_soft_reset(data)) { - mutex_unlock(&data->read_lock); - return -EFAULT; - } hwmon_device_unregister(data->hwmon_dev); sysfs_remove_group(&pdev->dev.kobj, &sht15_attr_group); + + ret = sht15_soft_reset(data); + if (ret) + dev_err(&pdev->dev, "Failed to reset device (%pe)\n", ERR_PTR(ret)); + if (!IS_ERR(data->reg)) { regulator_unregister_notifier(data->reg, &data->nb); regulator_disable(data->reg); } - mutex_unlock(&data->read_lock); - return 0; } --- linux-5.19.0.orig/drivers/hwmon/sht4x.c +++ linux-5.19.0/drivers/hwmon/sht4x.c @@ -129,7 +129,7 @@ static ssize_t sht4x_interval_write(struct sht4x_data *data, long val) { - data->update_interval = clamp_val(val, SHT4X_MIN_POLL_INTERVAL, UINT_MAX); + data->update_interval = clamp_val(val, SHT4X_MIN_POLL_INTERVAL, INT_MAX); return 0; } --- linux-5.19.0.orig/drivers/hwmon/tps23861.c +++ linux-5.19.0/drivers/hwmon/tps23861.c @@ -489,18 +489,20 @@ static int tps23861_port_resistance(struct tps23861_data *data, int port) { - u16 regval; + unsigned int raw_val; + __le16 regval; regmap_bulk_read(data->regmap, PORT_1_RESISTANCE_LSB + PORT_N_RESISTANCE_LSB_OFFSET * (port - 1), ®val, 2); - switch (FIELD_GET(PORT_RESISTANCE_RSN_MASK, regval)) { + raw_val = le16_to_cpu(regval); + switch (FIELD_GET(PORT_RESISTANCE_RSN_MASK, raw_val)) { case PORT_RESISTANCE_RSN_OTHER: - return (FIELD_GET(PORT_RESISTANCE_MASK, regval) * RESISTANCE_LSB) / 10000; + return (FIELD_GET(PORT_RESISTANCE_MASK, raw_val) * RESISTANCE_LSB) / 10000; case PORT_RESISTANCE_RSN_LOW: - return (FIELD_GET(PORT_RESISTANCE_MASK, regval) * RESISTANCE_LSB_LOW) / 10000; + return (FIELD_GET(PORT_RESISTANCE_MASK, raw_val) * RESISTANCE_LSB_LOW) / 10000; case PORT_RESISTANCE_RSN_SHORT: case PORT_RESISTANCE_RSN_OPEN: default: --- linux-5.19.0.orig/drivers/hwspinlock/qcom_hwspinlock.c +++ linux-5.19.0/drivers/hwspinlock/qcom_hwspinlock.c @@ -105,7 +105,7 @@ .reg_bits = 32, .reg_stride = 4, .val_bits = 32, - .max_register = 0x40000, + .max_register = 0x20000, .fast_io = true, }; --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-config.h +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-config.h @@ -134,6 +134,7 @@ * @active_cnt: ref count for activate on this configuration. * @load_owner: handle to load owner for dynamic load and unload of configs. * @fs_group: reference to configfs group for dynamic unload. + * @available: config can be activated - multi-stage load sets true on completion. */ struct cscfg_config_desc { const char *name; @@ -148,6 +149,7 @@ atomic_t active_cnt; void *load_owner; struct config_group *fs_group; + bool available; }; /** --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-core.c +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-core.c @@ -1424,6 +1424,7 @@ * platform data. */ fwnode_handle_put(conn->child_fwnode); + conn->child_fwnode = NULL; /* No need to continue */ break; } --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-cti-core.c +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-cti-core.c @@ -90,11 +90,9 @@ static int cti_enable_hw(struct cti_drvdata *drvdata) { struct cti_config *config = &drvdata->config; - struct device *dev = &drvdata->csdev->dev; unsigned long flags; int rc = 0; - pm_runtime_get_sync(dev->parent); spin_lock_irqsave(&drvdata->spinlock, flags); /* no need to do anything if enabled or unpowered*/ @@ -119,7 +117,6 @@ /* cannot enable due to error */ cti_err_not_enabled: spin_unlock_irqrestore(&drvdata->spinlock, flags); - pm_runtime_put(dev->parent); return rc; } @@ -153,7 +150,6 @@ static int cti_disable_hw(struct cti_drvdata *drvdata) { struct cti_config *config = &drvdata->config; - struct device *dev = &drvdata->csdev->dev; struct coresight_device *csdev = drvdata->csdev; spin_lock(&drvdata->spinlock); @@ -175,7 +171,6 @@ coresight_disclaim_device_unlocked(csdev); CS_LOCK(drvdata->base); spin_unlock(&drvdata->spinlock); - pm_runtime_put(dev->parent); return 0; /* not disabled this call */ --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-etm4x.h +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-etm4x.h @@ -7,6 +7,7 @@ #define _CORESIGHT_CORESIGHT_ETM_H #include +#include #include #include #include "coresight-priv.h" @@ -515,7 +516,7 @@ ({ \ u64 __val; \ \ - if (__builtin_constant_p((offset))) \ + if (__is_constexpr((offset))) \ __val = read_etm4x_sysreg_const_offset((offset)); \ else \ __val = etm4x_sysreg_read((offset), true, (_64bit)); \ --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-syscfg.c +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-syscfg.c @@ -415,6 +415,27 @@ } /* + * Unregister all configuration and features from configfs owned by load_owner. + * Although this is called without the list mutex being held, it is in the + * context of an unload operation which are strictly serialised, + * so the lists cannot change during this call. + */ +static void cscfg_fs_unregister_cfgs_feats(void *load_owner) +{ + struct cscfg_config_desc *config_desc; + struct cscfg_feature_desc *feat_desc; + + list_for_each_entry(config_desc, &cscfg_mgr->config_desc_list, item) { + if (config_desc->load_owner == load_owner) + cscfg_configfs_del_config(config_desc); + } + list_for_each_entry(feat_desc, &cscfg_mgr->feat_desc_list, item) { + if (feat_desc->load_owner == load_owner) + cscfg_configfs_del_feature(feat_desc); + } +} + +/* * removal is relatively easy - just remove from all lists, anything that * matches the owner. Memory for the descriptors will be managed by the owner, * memory for the csdev items is devm_ allocated with the individual csdev @@ -426,6 +447,8 @@ struct cscfg_feature_desc *feat_desc, *feat_tmp; struct cscfg_registered_csdev *csdev_item; + lockdep_assert_held(&cscfg_mutex); + /* remove from each csdev instance feature and config lists */ list_for_each_entry(csdev_item, &cscfg_mgr->csdev_desc_list, item) { /* @@ -439,7 +462,6 @@ /* remove from the config descriptor lists */ list_for_each_entry_safe(config_desc, cfg_tmp, &cscfg_mgr->config_desc_list, item) { if (config_desc->load_owner == load_owner) { - cscfg_configfs_del_config(config_desc); etm_perf_del_symlink_cscfg(config_desc); list_del(&config_desc->item); } @@ -448,12 +470,90 @@ /* remove from the feature descriptor lists */ list_for_each_entry_safe(feat_desc, feat_tmp, &cscfg_mgr->feat_desc_list, item) { if (feat_desc->load_owner == load_owner) { - cscfg_configfs_del_feature(feat_desc); list_del(&feat_desc->item); } } } +/* + * load the features and configs to the lists - called with list mutex held + */ +static int cscfg_load_owned_cfgs_feats(struct cscfg_config_desc **config_descs, + struct cscfg_feature_desc **feat_descs, + struct cscfg_load_owner_info *owner_info) +{ + int i, err; + + lockdep_assert_held(&cscfg_mutex); + + /* load features first */ + if (feat_descs) { + for (i = 0; feat_descs[i]; i++) { + err = cscfg_load_feat(feat_descs[i]); + if (err) { + pr_err("coresight-syscfg: Failed to load feature %s\n", + feat_descs[i]->name); + return err; + } + feat_descs[i]->load_owner = owner_info; + } + } + + /* next any configurations to check feature dependencies */ + if (config_descs) { + for (i = 0; config_descs[i]; i++) { + err = cscfg_load_config(config_descs[i]); + if (err) { + pr_err("coresight-syscfg: Failed to load configuration %s\n", + config_descs[i]->name); + return err; + } + config_descs[i]->load_owner = owner_info; + config_descs[i]->available = false; + } + } + return 0; +} + +/* set configurations as available to activate at the end of the load process */ +static void cscfg_set_configs_available(struct cscfg_config_desc **config_descs) +{ + int i; + + lockdep_assert_held(&cscfg_mutex); + + if (config_descs) { + for (i = 0; config_descs[i]; i++) + config_descs[i]->available = true; + } +} + +/* + * Create and register each of the configurations and features with configfs. + * Called without mutex being held. + */ +static int cscfg_fs_register_cfgs_feats(struct cscfg_config_desc **config_descs, + struct cscfg_feature_desc **feat_descs) +{ + int i, err; + + if (feat_descs) { + for (i = 0; feat_descs[i]; i++) { + err = cscfg_configfs_add_feature(feat_descs[i]); + if (err) + return err; + } + } + if (config_descs) { + for (i = 0; config_descs[i]; i++) { + err = cscfg_configfs_add_config(config_descs[i]); + if (err) + return err; + } + } + return 0; +} + /** * cscfg_load_config_sets - API function to load feature and config sets. * @@ -476,57 +576,63 @@ struct cscfg_feature_desc **feat_descs, struct cscfg_load_owner_info *owner_info) { - int err = 0, i = 0; + int err = 0; mutex_lock(&cscfg_mutex); - - /* load features first */ - if (feat_descs) { - while (feat_descs[i]) { - err = cscfg_load_feat(feat_descs[i]); - if (!err) - err = cscfg_configfs_add_feature(feat_descs[i]); - if (err) { - pr_err("coresight-syscfg: Failed to load feature %s\n", - feat_descs[i]->name); - cscfg_unload_owned_cfgs_feats(owner_info); - goto exit_unlock; - } - feat_descs[i]->load_owner = owner_info; - i++; - } + if (cscfg_mgr->load_state != CSCFG_NONE) { + mutex_unlock(&cscfg_mutex); + return -EBUSY; } + cscfg_mgr->load_state = CSCFG_LOAD; - /* next any configurations to check feature dependencies */ - i = 0; - if (config_descs) { - while (config_descs[i]) { - err = cscfg_load_config(config_descs[i]); - if (!err) - err = cscfg_configfs_add_config(config_descs[i]); - if (err) { - pr_err("coresight-syscfg: Failed to load configuration %s\n", - config_descs[i]->name); - cscfg_unload_owned_cfgs_feats(owner_info); - goto exit_unlock; - } - config_descs[i]->load_owner = owner_info; - i++; - } - } + /* first load and add to the lists */ + err = cscfg_load_owned_cfgs_feats(config_descs, feat_descs, owner_info); + if (err) + goto err_clean_load; /* add the load owner to the load order list */ list_add_tail(&owner_info->item, &cscfg_mgr->load_order_list); if (!list_is_singular(&cscfg_mgr->load_order_list)) { /* lock previous item in load order list */ err = cscfg_owner_get(list_prev_entry(owner_info, item)); - if (err) { - cscfg_unload_owned_cfgs_feats(owner_info); - list_del(&owner_info->item); - } + if (err) + goto err_clean_owner_list; } + /* + * make visible to configfs - configfs manipulation must occur outside + * the list mutex lock to avoid circular lockdep issues with configfs + * built in mutexes and semaphores. This is safe as it is not possible + * to start a new load/unload operation till the current one is done. + */ + mutex_unlock(&cscfg_mutex); + + /* create the configfs elements */ + err = cscfg_fs_register_cfgs_feats(config_descs, feat_descs); + mutex_lock(&cscfg_mutex); + + if (err) + goto err_clean_cfs; + + /* mark any new configs as available for activation */ + cscfg_set_configs_available(config_descs); + goto exit_unlock; + +err_clean_cfs: + /* cleanup after error registering with configfs */ + cscfg_fs_unregister_cfgs_feats(owner_info); + + if (!list_is_singular(&cscfg_mgr->load_order_list)) + cscfg_owner_put(list_prev_entry(owner_info, item)); + +err_clean_owner_list: + list_del(&owner_info->item); + +err_clean_load: + cscfg_unload_owned_cfgs_feats(owner_info); + exit_unlock: + cscfg_mgr->load_state = CSCFG_NONE; mutex_unlock(&cscfg_mutex); return err; } @@ -543,6 +649,9 @@ * 1) no configurations are active. * 2) the set being unloaded was the last to be loaded to maintain dependencies. * + * Once the unload operation commences, we disallow any configuration being + * made active until it is complete. + * * @owner_info: Information on owner for set being unloaded. */ int cscfg_unload_config_sets(struct cscfg_load_owner_info *owner_info) @@ -551,6 +660,13 @@ struct cscfg_load_owner_info *load_list_item = NULL; mutex_lock(&cscfg_mutex); + if (cscfg_mgr->load_state != CSCFG_NONE) { + mutex_unlock(&cscfg_mutex); + return -EBUSY; + } + + /* unload op in progress also prevents activation of any config */ + cscfg_mgr->load_state = CSCFG_UNLOAD; /* cannot unload if anything is active */ if (atomic_read(&cscfg_mgr->sys_active_cnt)) { @@ -571,7 +687,12 @@ goto exit_unlock; } - /* unload all belonging to load_owner */ + /* remove from configfs - again outside the scope of the list mutex */ + mutex_unlock(&cscfg_mutex); + cscfg_fs_unregister_cfgs_feats(owner_info); + mutex_lock(&cscfg_mutex); + + /* unload everything from lists belonging to load_owner */ cscfg_unload_owned_cfgs_feats(owner_info); /* remove from load order list */ @@ -582,6 +703,7 @@ list_del(&owner_info->item); exit_unlock: + cscfg_mgr->load_state = CSCFG_NONE; mutex_unlock(&cscfg_mutex); return err; } @@ -759,8 +881,15 @@ struct cscfg_config_desc *config_desc; int err = -EINVAL; + if (cscfg_mgr->load_state == CSCFG_UNLOAD) + return -EBUSY; + list_for_each_entry(config_desc, &cscfg_mgr->config_desc_list, item) { if ((unsigned long)config_desc->event_ea->var == cfg_hash) { + /* if we happen upon a partly loaded config, can't use it */ + if (config_desc->available == false) + return -EBUSY; + /* must ensure that config cannot be unloaded in use */ err = cscfg_owner_get(config_desc->load_owner); if (err) @@ -1022,8 +1151,10 @@ /* Must have a release function or the kernel will complain on module unload */ static void cscfg_dev_release(struct device *dev) { + mutex_lock(&cscfg_mutex); kfree(cscfg_mgr); cscfg_mgr = NULL; + mutex_unlock(&cscfg_mutex); } /* a device is needed to "own" some kernel elements such as sysfs entries. */ @@ -1042,6 +1173,14 @@ if (!cscfg_mgr) goto create_dev_exit_unlock; + /* initialise the cscfg_mgr structure */ + INIT_LIST_HEAD(&cscfg_mgr->csdev_desc_list); + INIT_LIST_HEAD(&cscfg_mgr->feat_desc_list); + INIT_LIST_HEAD(&cscfg_mgr->config_desc_list); + INIT_LIST_HEAD(&cscfg_mgr->load_order_list); + atomic_set(&cscfg_mgr->sys_active_cnt, 0); + cscfg_mgr->load_state = CSCFG_NONE; + /* setup the device */ dev = cscfg_device(); dev->release = cscfg_dev_release; @@ -1056,17 +1195,73 @@ return err; } -static void cscfg_clear_device(void) +/* + * Loading and unloading is generally on user discretion. + * If exiting due to coresight module unload, we need to unload any configurations that remain, + * before we unregister the configfs intrastructure. + * + * Do this by walking the load_owner list and taking appropriate action, depending on the load + * owner type. + */ +static void cscfg_unload_cfgs_on_exit(void) { - struct cscfg_config_desc *cfg_desc; + struct cscfg_load_owner_info *owner_info = NULL; + /* + * grab the mutex - even though we are exiting, some configfs files + * may still be live till we dump them, so ensure list data is + * protected from a race condition. + */ mutex_lock(&cscfg_mutex); - list_for_each_entry(cfg_desc, &cscfg_mgr->config_desc_list, item) { - etm_perf_del_symlink_cscfg(cfg_desc); + while (!list_empty(&cscfg_mgr->load_order_list)) { + + /* remove in reverse order of loading */ + owner_info = list_last_entry(&cscfg_mgr->load_order_list, + struct cscfg_load_owner_info, item); + + /* action according to type */ + switch (owner_info->type) { + case CSCFG_OWNER_PRELOAD: + /* + * preloaded descriptors are statically allocated in + * this module - just need to unload dynamic items from + * csdev lists, and remove from configfs directories. + */ + pr_info("cscfg: unloading preloaded configurations\n"); + break; + + case CSCFG_OWNER_MODULE: + /* + * this is an error - the loadable module must have been unloaded prior + * to the coresight module unload. Therefore that module has not + * correctly unloaded configs in its own exit code. + * Nothing to do other than emit an error string as the static descriptor + * references we need to unload will have disappeared with the module. + */ + pr_err("cscfg: ERROR: prior module failed to unload configuration\n"); + goto list_remove; + } + + /* remove from configfs - outside the scope of the list mutex */ + mutex_unlock(&cscfg_mutex); + cscfg_fs_unregister_cfgs_feats(owner_info); + mutex_lock(&cscfg_mutex); + + /* Next unload from csdev lists. */ + cscfg_unload_owned_cfgs_feats(owner_info); + +list_remove: + /* remove from load order list */ + list_del(&owner_info->item); } + mutex_unlock(&cscfg_mutex); +} + +static void cscfg_clear_device(void) +{ + cscfg_unload_cfgs_on_exit(); cscfg_configfs_release(cscfg_mgr); device_unregister(cscfg_device()); - mutex_unlock(&cscfg_mutex); } /* Initialise system config management API device */ @@ -1074,20 +1269,16 @@ { int err = 0; + /* create the device and init cscfg_mgr */ err = cscfg_create_device(); if (err) return err; + /* initialise configfs subsystem */ err = cscfg_configfs_init(cscfg_mgr); if (err) goto exit_err; - INIT_LIST_HEAD(&cscfg_mgr->csdev_desc_list); - INIT_LIST_HEAD(&cscfg_mgr->feat_desc_list); - INIT_LIST_HEAD(&cscfg_mgr->config_desc_list); - INIT_LIST_HEAD(&cscfg_mgr->load_order_list); - atomic_set(&cscfg_mgr->sys_active_cnt, 0); - /* preload built-in configurations */ err = cscfg_preload(THIS_MODULE); if (err) --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-syscfg.h +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-syscfg.h @@ -12,6 +12,17 @@ #include "coresight-config.h" +/* + * Load operation types. + * When loading or unloading, another load operation cannot be run. + * When unloading configurations cannot be activated. + */ +enum cscfg_load_ops { + CSCFG_NONE, + CSCFG_LOAD, + CSCFG_UNLOAD +}; + /** * System configuration manager device. * @@ -30,6 +41,7 @@ * @cfgfs_subsys: configfs subsystem used to manage configurations. * @sysfs_active_config:Active config hash used if CoreSight controlled from sysfs. * @sysfs_active_preset:Active preset index used if CoreSight controlled from sysfs. + * @load_state: A multi-stage load/unload operation is in progress. */ struct cscfg_manager { struct device dev; @@ -41,6 +53,7 @@ struct configfs_subsystem cfgfs_subsys; u32 sysfs_active_config; int sysfs_active_preset; + enum cscfg_load_ops load_state; }; /* get reference to dev in cscfg_manager */ --- linux-5.19.0.orig/drivers/hwtracing/coresight/coresight-trbe.c +++ linux-5.19.0/drivers/hwtracing/coresight/coresight-trbe.c @@ -1434,6 +1434,7 @@ static void arm_trbe_remove_cpuhp(struct trbe_drvdata *drvdata) { + cpuhp_state_remove_instance(drvdata->trbe_online, &drvdata->hotplug_node); cpuhp_remove_multi_state(drvdata->trbe_online); } --- linux-5.19.0.orig/drivers/hwtracing/intel_th/msu-sink.c +++ linux-5.19.0/drivers/hwtracing/intel_th/msu-sink.c @@ -71,6 +71,9 @@ block = dma_alloc_coherent(priv->dev->parent->parent, PAGE_SIZE, &sg_dma_address(sg_ptr), GFP_KERNEL); + if (!block) + return -ENOMEM; + sg_set_buf(sg_ptr, block, PAGE_SIZE); } --- linux-5.19.0.orig/drivers/hwtracing/intel_th/msu.c +++ linux-5.19.0/drivers/hwtracing/intel_th/msu.c @@ -1067,6 +1067,16 @@ static inline void msc_buffer_set_wb(struct msc *msc) {} #endif /* CONFIG_X86 */ +static struct page *msc_sg_page(struct scatterlist *sg) +{ + void *addr = sg_virt(sg); + + if (is_vmalloc_addr(addr)) + return vmalloc_to_page(addr); + + return sg_page(sg); +} + /** * msc_buffer_win_alloc() - alloc a window for a multiblock mode * @msc: MSC device @@ -1137,7 +1147,7 @@ int i; for_each_sg(win->sgt->sgl, sg, win->nr_segs, i) { - struct page *page = sg_page(sg); + struct page *page = msc_sg_page(sg); page->mapping = NULL; dma_free_coherent(msc_dev(win->msc)->parent->parent, PAGE_SIZE, @@ -1401,7 +1411,7 @@ pgoff -= win->pgoff; for_each_sg(win->sgt->sgl, sg, win->nr_segs, blk) { - struct page *page = sg_page(sg); + struct page *page = msc_sg_page(sg); size_t pgsz = PFN_DOWN(sg->length); if (pgoff < pgsz) --- linux-5.19.0.orig/drivers/hwtracing/intel_th/pci.c +++ linux-5.19.0/drivers/hwtracing/intel_th/pci.c @@ -100,8 +100,10 @@ } th = intel_th_alloc(&pdev->dev, drvdata, resource, r); - if (IS_ERR(th)) - return PTR_ERR(th); + if (IS_ERR(th)) { + err = PTR_ERR(th); + goto err_free_irq; + } th->activate = intel_th_pci_activate; th->deactivate = intel_th_pci_deactivate; @@ -109,6 +111,10 @@ pci_set_master(pdev); return 0; + +err_free_irq: + pci_free_irq_vectors(pdev); + return err; } static void intel_th_pci_remove(struct pci_dev *pdev) @@ -279,6 +285,21 @@ .driver_data = (kernel_ulong_t)&intel_th_2x, }, { + /* Meteor Lake-P */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7e24), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { + /* Raptor Lake-S */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x7a26), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { + /* Raptor Lake-S CPU */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xa76f), + .driver_data = (kernel_ulong_t)&intel_th_2x, + }, + { /* Alder Lake CPU */ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x466f), .driver_data = (kernel_ulong_t)&intel_th_2x, --- linux-5.19.0.orig/drivers/i2c/busses/i2c-cadence.c +++ linux-5.19.0/drivers/i2c/busses/i2c-cadence.c @@ -573,8 +573,13 @@ ctrl_reg = cdns_i2c_readreg(CDNS_I2C_CR_OFFSET); ctrl_reg |= CDNS_I2C_CR_RW | CDNS_I2C_CR_CLR_FIFO; + /* + * Receive up to I2C_SMBUS_BLOCK_MAX data bytes, plus one message length + * byte, plus one checksum byte if PEC is enabled. p_msg->len will be 2 if + * PEC is enabled, otherwise 1. + */ if (id->p_msg->flags & I2C_M_RECV_LEN) - id->recv_count = I2C_SMBUS_BLOCK_MAX + 1; + id->recv_count = I2C_SMBUS_BLOCK_MAX + id->p_msg->len; id->curr_recv_count = id->recv_count; @@ -789,6 +794,9 @@ if (id->err_status & CDNS_I2C_IXR_ARB_LOST) return -EAGAIN; + if (msg->flags & I2C_M_RECV_LEN) + msg->len += min_t(unsigned int, msg->buf[0], I2C_SMBUS_BLOCK_MAX); + return 0; } --- linux-5.19.0.orig/drivers/i2c/busses/i2c-davinci.c +++ linux-5.19.0/drivers/i2c/busses/i2c-davinci.c @@ -823,7 +823,7 @@ r = pm_runtime_resume_and_get(dev->dev); if (r < 0) { dev_err(dev->dev, "failed to runtime_get device: %d\n", r); - return r; + goto err_pm; } i2c_davinci_init(dev); @@ -882,6 +882,7 @@ err_unuse_clocks: pm_runtime_dont_use_autosuspend(dev->dev); pm_runtime_put_sync(dev->dev); +err_pm: pm_runtime_disable(dev->dev); return r; --- linux-5.19.0.orig/drivers/i2c/busses/i2c-designware-core.h +++ linux-5.19.0/drivers/i2c/busses/i2c-designware-core.h @@ -126,8 +126,9 @@ * status codes */ #define STATUS_IDLE 0x0 -#define STATUS_WRITE_IN_PROGRESS 0x1 -#define STATUS_READ_IN_PROGRESS 0x2 +#define STATUS_ACTIVE 0x1 +#define STATUS_WRITE_IN_PROGRESS 0x2 +#define STATUS_READ_IN_PROGRESS 0x4 /* * operation modes @@ -334,12 +335,14 @@ static inline void __i2c_dw_enable(struct dw_i2c_dev *dev) { + dev->status |= STATUS_ACTIVE; regmap_write(dev->map, DW_IC_ENABLE, 1); } static inline void __i2c_dw_disable_nowait(struct dw_i2c_dev *dev) { regmap_write(dev->map, DW_IC_ENABLE, 0); + dev->status &= ~STATUS_ACTIVE; } void __i2c_dw_disable(struct dw_i2c_dev *dev); --- linux-5.19.0.orig/drivers/i2c/busses/i2c-designware-master.c +++ linux-5.19.0/drivers/i2c/busses/i2c-designware-master.c @@ -716,6 +716,19 @@ u32 stat; stat = i2c_dw_read_clear_intrbits(dev); + + if (!(dev->status & STATUS_ACTIVE)) { + /* + * Unexpected interrupt in driver point of view. State + * variables are either unset or stale so acknowledge and + * disable interrupts for suppressing further interrupts if + * interrupt really came from this HW (E.g. firmware has left + * the HW active). + */ + regmap_write(dev->map, DW_IC_INTR_MASK, 0); + return 0; + } + if (stat & DW_IC_INTR_TX_ABRT) { dev->cmd_err |= DW_IC_ERR_TX_ABRT; dev->status = STATUS_IDLE; --- linux-5.19.0.orig/drivers/i2c/busses/i2c-designware-pcidrv.c +++ linux-5.19.0/drivers/i2c/busses/i2c-designware-pcidrv.c @@ -27,7 +27,6 @@ #include "i2c-ccgx-ucsi.h" #define DRIVER_NAME "i2c-designware-pci" -#define AMD_CLK_RATE_HZ 100000 enum dw_pci_ctl_id_t { medfield, @@ -100,11 +99,6 @@ return 25000; } -static u32 navi_amd_get_clk_rate_khz(struct dw_i2c_dev *dev) -{ - return AMD_CLK_RATE_HZ; -} - static int mfld_setup(struct pci_dev *pdev, struct dw_pci_controller *c) { struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev); @@ -126,15 +120,6 @@ return -ENODEV; } -static int navi_amd_setup(struct pci_dev *pdev, struct dw_pci_controller *c) -{ - struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev); - - dev->flags |= MODEL_AMD_NAVI_GPU; - dev->timings.bus_freq_hz = I2C_MAX_STANDARD_MODE_FREQ; - return 0; -} - static int mrfld_setup(struct pci_dev *pdev, struct dw_pci_controller *c) { /* @@ -159,6 +144,20 @@ return 100000; } +static u32 navi_amd_get_clk_rate_khz(struct dw_i2c_dev *dev) +{ + return 100000; +} + +static int navi_amd_setup(struct pci_dev *pdev, struct dw_pci_controller *c) +{ + struct dw_i2c_dev *dev = dev_get_drvdata(&pdev->dev); + + dev->flags |= MODEL_AMD_NAVI_GPU; + dev->timings.bus_freq_hz = I2C_MAX_STANDARD_MODE_FREQ; + return 0; +} + static struct dw_pci_controller dw_pci_controllers[] = { [medfield] = { .bus_num = -1, @@ -389,6 +388,7 @@ { PCI_VDEVICE(INTEL, 0x4bbe), elkhartlake }, { PCI_VDEVICE(INTEL, 0x4bbf), elkhartlake }, { PCI_VDEVICE(INTEL, 0x4bc0), elkhartlake }, + /* AMD NAVI */ { PCI_VDEVICE(ATI, 0x7314), navi_amd }, { PCI_VDEVICE(ATI, 0x73a4), navi_amd }, { PCI_VDEVICE(ATI, 0x73e4), navi_amd }, --- linux-5.19.0.orig/drivers/i2c/busses/i2c-i801.c +++ linux-5.19.0/drivers/i2c/busses/i2c-i801.c @@ -1240,6 +1240,7 @@ */ { "Latitude 5480", 0x29 }, { "Vostro V131", 0x1d }, + { "Vostro 5568", 0x29 }, }; static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv) --- linux-5.19.0.orig/drivers/i2c/busses/i2c-imx.c +++ linux-5.19.0/drivers/i2c/busses/i2c-imx.c @@ -1132,7 +1132,8 @@ int i, result; unsigned int temp; int block_data = msgs->flags & I2C_M_RECV_LEN; - int use_dma = i2c_imx->dma && msgs->len >= DMA_THRESHOLD && !block_data; + int use_dma = i2c_imx->dma && msgs->flags & I2C_M_DMA_SAFE && + msgs->len >= DMA_THRESHOLD && !block_data; dev_dbg(&i2c_imx->adapter.dev, "<%s> write slave address: addr=0x%x\n", @@ -1298,7 +1299,8 @@ result = i2c_imx_read(i2c_imx, &msgs[i], is_lastmsg, atomic); } else { if (!atomic && - i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD) + i2c_imx->dma && msgs[i].len >= DMA_THRESHOLD && + msgs[i].flags & I2C_M_DMA_SAFE) result = i2c_imx_dma_write(i2c_imx, &msgs[i]); else result = i2c_imx_write(i2c_imx, &msgs[i], atomic); @@ -1572,9 +1574,7 @@ struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev); int irq, ret; - ret = pm_runtime_resume_and_get(&pdev->dev); - if (ret < 0) - return ret; + ret = pm_runtime_get_sync(&pdev->dev); hrtimer_cancel(&i2c_imx->slave_timer); @@ -1585,17 +1585,21 @@ if (i2c_imx->dma) i2c_imx_dma_free(i2c_imx); - /* setup chip registers to defaults */ - imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IADR); - imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IFDR); - imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2CR); - imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR); + if (ret >= 0) { + /* setup chip registers to defaults */ + imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IADR); + imx_i2c_write_reg(0, i2c_imx, IMX_I2C_IFDR); + imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2CR); + imx_i2c_write_reg(0, i2c_imx, IMX_I2C_I2SR); + clk_disable(i2c_imx->clk); + } 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); + + clk_unprepare(i2c_imx->clk); pm_runtime_put_noidle(&pdev->dev); pm_runtime_disable(&pdev->dev); --- linux-5.19.0.orig/drivers/i2c/busses/i2c-ismt.c +++ linux-5.19.0/drivers/i2c/busses/i2c-ismt.c @@ -509,6 +509,9 @@ if (read_write == I2C_SMBUS_WRITE) { /* Block Write */ dev_dbg(dev, "I2C_SMBUS_BLOCK_DATA: WRITE\n"); + if (data->block[0] < 1 || data->block[0] > I2C_SMBUS_BLOCK_MAX) + return -EINVAL; + dma_size = data->block[0] + 1; dma_direction = DMA_TO_DEVICE; desc->wr_len_cmd = dma_size; --- linux-5.19.0.orig/drivers/i2c/busses/i2c-mlxbf.c +++ linux-5.19.0/drivers/i2c/busses/i2c-mlxbf.c @@ -6,6 +6,7 @@ */ #include +#include #include #include #include @@ -63,13 +64,14 @@ */ #define MLXBF_I2C_TYU_PLL_OUT_FREQ (400 * 1000 * 1000) /* Reference clock for Bluefield - 156 MHz. */ -#define MLXBF_I2C_PLL_IN_FREQ (156 * 1000 * 1000) +#define MLXBF_I2C_PLL_IN_FREQ 156250000ULL /* Constant used to determine the PLL frequency. */ -#define MLNXBF_I2C_COREPLL_CONST 16384 +#define MLNXBF_I2C_COREPLL_CONST 16384ULL + +#define MLXBF_I2C_FREQUENCY_1GHZ 1000000000ULL /* PLL registers. */ -#define MLXBF_I2C_CORE_PLL_REG0 0x0 #define MLXBF_I2C_CORE_PLL_REG1 0x4 #define MLXBF_I2C_CORE_PLL_REG2 0x8 @@ -181,22 +183,15 @@ #define MLXBF_I2C_COREPLL_FREQ MLXBF_I2C_TYU_PLL_OUT_FREQ /* Core PLL TYU configuration. */ -#define MLXBF_I2C_COREPLL_CORE_F_TYU_MASK GENMASK(12, 0) -#define MLXBF_I2C_COREPLL_CORE_OD_TYU_MASK GENMASK(3, 0) -#define MLXBF_I2C_COREPLL_CORE_R_TYU_MASK GENMASK(5, 0) - -#define MLXBF_I2C_COREPLL_CORE_F_TYU_SHIFT 3 -#define MLXBF_I2C_COREPLL_CORE_OD_TYU_SHIFT 16 -#define MLXBF_I2C_COREPLL_CORE_R_TYU_SHIFT 20 +#define MLXBF_I2C_COREPLL_CORE_F_TYU_MASK GENMASK(15, 3) +#define MLXBF_I2C_COREPLL_CORE_OD_TYU_MASK GENMASK(19, 16) +#define MLXBF_I2C_COREPLL_CORE_R_TYU_MASK GENMASK(25, 20) /* Core PLL YU configuration. */ #define MLXBF_I2C_COREPLL_CORE_F_YU_MASK GENMASK(25, 0) #define MLXBF_I2C_COREPLL_CORE_OD_YU_MASK GENMASK(3, 0) -#define MLXBF_I2C_COREPLL_CORE_R_YU_MASK GENMASK(5, 0) +#define MLXBF_I2C_COREPLL_CORE_R_YU_MASK GENMASK(31, 26) -#define MLXBF_I2C_COREPLL_CORE_F_YU_SHIFT 0 -#define MLXBF_I2C_COREPLL_CORE_OD_YU_SHIFT 1 -#define MLXBF_I2C_COREPLL_CORE_R_YU_SHIFT 26 /* Core PLL frequency. */ static u64 mlxbf_i2c_corepll_frequency; @@ -311,6 +306,7 @@ * exact. */ #define MLXBF_I2C_SMBUS_TIMEOUT (300 * 1000) /* 300ms */ +#define MLXBF_I2C_SMBUS_LOCK_POLL_TIMEOUT (300 * 1000) /* 300ms */ /* Encapsulates timing parameters. */ struct mlxbf_i2c_timings { @@ -479,8 +475,6 @@ #define MLXBF_I2C_MASK_8 GENMASK(7, 0) #define MLXBF_I2C_MASK_16 GENMASK(15, 0) -#define MLXBF_I2C_FREQUENCY_1GHZ 1000000000 - /* * Function to poll a set of bits at a specific address; it checks whether * the bits are equal to zero when eq_zero is set to 'true', and not equal @@ -521,6 +515,25 @@ return false; } +/* + * wait for the lock to be released before acquiring it. + */ +static bool mlxbf_i2c_smbus_master_lock(struct mlxbf_i2c_priv *priv) +{ + if (mlxbf_smbus_poll(priv->smbus->io, MLXBF_I2C_SMBUS_MASTER_GW, + MLXBF_I2C_MASTER_LOCK_BIT, true, + MLXBF_I2C_SMBUS_LOCK_POLL_TIMEOUT)) + return true; + + return false; +} + +static void mlxbf_i2c_smbus_master_unlock(struct mlxbf_i2c_priv *priv) +{ + /* Clear the gw to clear the lock */ + writel(0, priv->smbus->io + MLXBF_I2C_SMBUS_MASTER_GW); +} + static bool mlxbf_i2c_smbus_transaction_success(u32 master_status, u32 cause_status) { @@ -669,7 +682,7 @@ /* Clear status bits. */ writel(0x0, priv->smbus->io + MLXBF_I2C_SMBUS_MASTER_STATUS); /* Set the cause data. */ - writel(~0x0, priv->smbus->io + MLXBF_I2C_CAUSE_OR_CLEAR); + writel(~0x0, priv->mst_cause->io + MLXBF_I2C_CAUSE_OR_CLEAR); /* Zero PEC byte. */ writel(0x0, priv->smbus->io + MLXBF_I2C_SMBUS_MASTER_PEC); /* Zero byte count. */ @@ -712,10 +725,19 @@ slave = request->slave & GENMASK(6, 0); addr = slave << 1; - /* First of all, check whether the HW is idle. */ - if (WARN_ON(!mlxbf_smbus_master_wait_for_idle(priv))) + /* + * Try to acquire the smbus gw lock before any reads of the GW register since + * a read sets the lock. + */ + if (WARN_ON(!mlxbf_i2c_smbus_master_lock(priv))) return -EBUSY; + /* Check whether the HW is idle */ + if (WARN_ON(!mlxbf_smbus_master_wait_for_idle(priv))) { + ret = -EBUSY; + goto out_unlock; + } + /* Set first byte. */ data_desc[data_idx++] = addr; @@ -738,6 +760,11 @@ if (flags & MLXBF_I2C_F_WRITE) { write_en = 1; write_len += operation->length; + if (data_idx + operation->length > + MLXBF_I2C_MASTER_DATA_DESC_SIZE) { + ret = -ENOBUFS; + goto out_unlock; + } memcpy(data_desc + data_idx, operation->buffer, operation->length); data_idx += operation->length; @@ -769,7 +796,7 @@ ret = mlxbf_i2c_smbus_enable(priv, slave, write_len, block_en, pec_en, 0); if (ret) - return ret; + goto out_unlock; } if (read_en) { @@ -796,6 +823,9 @@ priv->smbus->io + MLXBF_I2C_SMBUS_MASTER_FSM); } +out_unlock: + mlxbf_i2c_smbus_master_unlock(priv); + return ret; } @@ -1407,24 +1437,19 @@ return 0; } -static u64 mlxbf_calculate_freq_from_tyu(struct mlxbf_i2c_resource *corepll_res) +static u64 mlxbf_i2c_calculate_freq_from_tyu(struct mlxbf_i2c_resource *corepll_res) { - u64 core_frequency, pad_frequency; + u64 core_frequency; u8 core_od, core_r; u32 corepll_val; u16 core_f; - pad_frequency = MLXBF_I2C_PLL_IN_FREQ; - corepll_val = readl(corepll_res->io + MLXBF_I2C_CORE_PLL_REG1); /* Get Core PLL configuration bits. */ - core_f = rol32(corepll_val, MLXBF_I2C_COREPLL_CORE_F_TYU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_F_TYU_MASK; - core_od = rol32(corepll_val, MLXBF_I2C_COREPLL_CORE_OD_TYU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_OD_TYU_MASK; - core_r = rol32(corepll_val, MLXBF_I2C_COREPLL_CORE_R_TYU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_R_TYU_MASK; + core_f = FIELD_GET(MLXBF_I2C_COREPLL_CORE_F_TYU_MASK, corepll_val); + core_od = FIELD_GET(MLXBF_I2C_COREPLL_CORE_OD_TYU_MASK, corepll_val); + core_r = FIELD_GET(MLXBF_I2C_COREPLL_CORE_R_TYU_MASK, corepll_val); /* * Compute PLL output frequency as follow: @@ -1436,31 +1461,26 @@ * Where PLL_OUT_FREQ and PLL_IN_FREQ refer to CoreFrequency * and PadFrequency, respectively. */ - core_frequency = pad_frequency * (++core_f); + core_frequency = MLXBF_I2C_PLL_IN_FREQ * (++core_f); core_frequency /= (++core_r) * (++core_od); return core_frequency; } -static u64 mlxbf_calculate_freq_from_yu(struct mlxbf_i2c_resource *corepll_res) +static u64 mlxbf_i2c_calculate_freq_from_yu(struct mlxbf_i2c_resource *corepll_res) { u32 corepll_reg1_val, corepll_reg2_val; - u64 corepll_frequency, pad_frequency; + u64 corepll_frequency; u8 core_od, core_r; u32 core_f; - pad_frequency = MLXBF_I2C_PLL_IN_FREQ; - corepll_reg1_val = readl(corepll_res->io + MLXBF_I2C_CORE_PLL_REG1); corepll_reg2_val = readl(corepll_res->io + MLXBF_I2C_CORE_PLL_REG2); /* Get Core PLL configuration bits */ - core_f = rol32(corepll_reg1_val, MLXBF_I2C_COREPLL_CORE_F_YU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_F_YU_MASK; - core_r = rol32(corepll_reg1_val, MLXBF_I2C_COREPLL_CORE_R_YU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_R_YU_MASK; - core_od = rol32(corepll_reg2_val, MLXBF_I2C_COREPLL_CORE_OD_YU_SHIFT) & - MLXBF_I2C_COREPLL_CORE_OD_YU_MASK; + core_f = FIELD_GET(MLXBF_I2C_COREPLL_CORE_F_YU_MASK, corepll_reg1_val); + core_r = FIELD_GET(MLXBF_I2C_COREPLL_CORE_R_YU_MASK, corepll_reg1_val); + core_od = FIELD_GET(MLXBF_I2C_COREPLL_CORE_OD_YU_MASK, corepll_reg2_val); /* * Compute PLL output frequency as follow: @@ -1472,7 +1492,7 @@ * Where PLL_OUT_FREQ and PLL_IN_FREQ refer to CoreFrequency * and PadFrequency, respectively. */ - corepll_frequency = (pad_frequency * core_f) / MLNXBF_I2C_COREPLL_CONST; + corepll_frequency = (MLXBF_I2C_PLL_IN_FREQ * core_f) / MLNXBF_I2C_COREPLL_CONST; corepll_frequency /= (++core_r) * (++core_od); return corepll_frequency; @@ -2180,14 +2200,14 @@ [1] = &mlxbf_i2c_corepll_res[MLXBF_I2C_CHIP_TYPE_1], [2] = &mlxbf_i2c_gpio_res[MLXBF_I2C_CHIP_TYPE_1] }, - .calculate_freq = mlxbf_calculate_freq_from_tyu + .calculate_freq = mlxbf_i2c_calculate_freq_from_tyu }, [MLXBF_I2C_CHIP_TYPE_2] = { .type = MLXBF_I2C_CHIP_TYPE_2, .shared_res = { [0] = &mlxbf_i2c_corepll_res[MLXBF_I2C_CHIP_TYPE_2] }, - .calculate_freq = mlxbf_calculate_freq_from_yu + .calculate_freq = mlxbf_i2c_calculate_freq_from_yu } }; --- linux-5.19.0.orig/drivers/i2c/busses/i2c-mxs.c +++ linux-5.19.0/drivers/i2c/busses/i2c-mxs.c @@ -799,7 +799,7 @@ if (!i2c) return -ENOMEM; - i2c->dev_type = (enum mxs_i2c_devtype)of_device_get_match_data(&pdev->dev); + i2c->dev_type = (uintptr_t)of_device_get_match_data(&pdev->dev); i2c->regs = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(i2c->regs)) --- linux-5.19.0.orig/drivers/i2c/busses/i2c-npcm7xx.c +++ linux-5.19.0/drivers/i2c/busses/i2c-npcm7xx.c @@ -123,11 +123,11 @@ * Since the addr regs are sprinkled all over the address space, * use this array to get the address or each register. */ -#define I2C_NUM_OWN_ADDR 10 +#define I2C_NUM_OWN_ADDR 2 +#define I2C_NUM_OWN_ADDR_SUPPORTED 2 + static const int npcm_i2caddr[I2C_NUM_OWN_ADDR] = { - NPCM_I2CADDR1, NPCM_I2CADDR2, NPCM_I2CADDR3, NPCM_I2CADDR4, - NPCM_I2CADDR5, NPCM_I2CADDR6, NPCM_I2CADDR7, NPCM_I2CADDR8, - NPCM_I2CADDR9, NPCM_I2CADDR10, + NPCM_I2CADDR1, NPCM_I2CADDR2, }; #endif @@ -392,14 +392,10 @@ #if IS_ENABLED(CONFIG_I2C_SLAVE) int i; - /* select bank 0 for I2C addresses */ - npcm_i2c_select_bank(bus, I2C_BANK_0); - /* Slave addresses removal */ - for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR; i++) + for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR_SUPPORTED; i++) iowrite8(0, bus->reg + npcm_i2caddr[i]); - npcm_i2c_select_bank(bus, I2C_BANK_1); #endif /* Disable module */ i2cctl2 = ioread8(bus->reg + NPCM_I2CCTL2); @@ -604,8 +600,7 @@ i2cctl1 &= ~NPCM_I2CCTL1_GCMEN; iowrite8(i2cctl1, bus->reg + NPCM_I2CCTL1); return 0; - } - if (addr_type == I2C_ARP_ADDR) { + } else if (addr_type == I2C_ARP_ADDR) { i2cctl3 = ioread8(bus->reg + NPCM_I2CCTL3); if (enable) i2cctl3 |= I2CCTL3_ARPMEN; @@ -614,16 +609,16 @@ iowrite8(i2cctl3, bus->reg + NPCM_I2CCTL3); return 0; } + if (addr_type > I2C_SLAVE_ADDR2 && addr_type <= I2C_SLAVE_ADDR10) + dev_err(bus->dev, "try to enable more than 2 SA not supported\n"); + if (addr_type >= I2C_ARP_ADDR) return -EFAULT; - /* select bank 0 for address 3 to 10 */ - if (addr_type > I2C_SLAVE_ADDR2) - npcm_i2c_select_bank(bus, I2C_BANK_0); + /* Set and enable the address */ iowrite8(sa_reg, bus->reg + npcm_i2caddr[addr_type]); npcm_i2c_slave_int_enable(bus, enable); - if (addr_type > I2C_SLAVE_ADDR2) - npcm_i2c_select_bank(bus, I2C_BANK_1); + return 0; } #endif @@ -846,15 +841,11 @@ { u8 slave_add; - /* select bank 0 for address 3 to 10 */ - if (addr_type > I2C_SLAVE_ADDR2) - npcm_i2c_select_bank(bus, I2C_BANK_0); + if (addr_type > I2C_SLAVE_ADDR2 && addr_type <= I2C_SLAVE_ADDR10) + dev_err(bus->dev, "get slave: try to use more than 2 SA not supported\n"); slave_add = ioread8(bus->reg + npcm_i2caddr[(int)addr_type]); - if (addr_type > I2C_SLAVE_ADDR2) - npcm_i2c_select_bank(bus, I2C_BANK_1); - return slave_add; } @@ -864,12 +855,12 @@ /* Set the enable bit */ slave_add |= 0x80; - npcm_i2c_select_bank(bus, I2C_BANK_0); - for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR; i++) { + + for (i = I2C_SLAVE_ADDR1; i < I2C_NUM_OWN_ADDR_SUPPORTED; i++) { if (ioread8(bus->reg + npcm_i2caddr[i]) == slave_add) iowrite8(0, bus->reg + npcm_i2caddr[i]); } - npcm_i2c_select_bank(bus, I2C_BANK_1); + return 0; } @@ -924,11 +915,15 @@ for (i = 0; i < I2C_HW_FIFO_SIZE; i++) { if (bus->slv_wr_size >= I2C_HW_FIFO_SIZE) break; - i2c_slave_event(bus->slave, I2C_SLAVE_READ_REQUESTED, &value); + if (bus->state == I2C_SLAVE_MATCH) { + i2c_slave_event(bus->slave, I2C_SLAVE_READ_REQUESTED, &value); + bus->state = I2C_OPER_STARTED; + } else { + i2c_slave_event(bus->slave, I2C_SLAVE_READ_PROCESSED, &value); + } ind = (bus->slv_wr_ind + bus->slv_wr_size) % I2C_HW_FIFO_SIZE; bus->slv_wr_buf[ind] = value; bus->slv_wr_size++; - i2c_slave_event(bus->slave, I2C_SLAVE_READ_PROCESSED, &value); } return I2C_HW_FIFO_SIZE - ret; } @@ -976,7 +971,6 @@ if (nwrite == 0) return; - bus->state = I2C_OPER_STARTED; bus->operation = I2C_WRITE_OPER; /* get the next buffer */ @@ -2371,8 +2365,17 @@ static int __init npcm_i2c_init(void) { + int ret; + npcm_i2c_debugfs_dir = debugfs_create_dir("npcm_i2c", NULL); - return platform_driver_register(&npcm_i2c_bus_driver); + + ret = platform_driver_register(&npcm_i2c_bus_driver); + if (ret) { + debugfs_remove_recursive(npcm_i2c_debugfs_dir); + return ret; + } + + return 0; } module_init(npcm_i2c_init); --- linux-5.19.0.orig/drivers/i2c/busses/i2c-piix4.c +++ linux-5.19.0/drivers/i2c/busses/i2c-piix4.c @@ -1080,6 +1080,7 @@ "", &piix4_main_adapters[0]); if (retval < 0) return retval; + piix4_adapter_count = 1; } /* Check for auxiliary SMBus on some AMD chipsets */ --- linux-5.19.0.orig/drivers/i2c/busses/i2c-pxa-pci.c +++ linux-5.19.0/drivers/i2c/busses/i2c-pxa-pci.c @@ -105,7 +105,7 @@ int i; struct ce4100_devices *sds; - ret = pci_enable_device_mem(dev); + ret = pcim_enable_device(dev); if (ret) return ret; @@ -114,10 +114,8 @@ return -EINVAL; } sds = kzalloc(sizeof(*sds), GFP_KERNEL); - if (!sds) { - ret = -ENOMEM; - goto err_mem; - } + if (!sds) + return -ENOMEM; for (i = 0; i < ARRAY_SIZE(sds->pdev); i++) { sds->pdev[i] = add_i2c_device(dev, i); @@ -133,8 +131,6 @@ err_dev_add: kfree(sds); -err_mem: - pci_disable_device(dev); return ret; } --- linux-5.19.0.orig/drivers/i2c/busses/i2c-qcom-cci.c +++ linux-5.19.0/drivers/i2c/busses/i2c-qcom-cci.c @@ -638,6 +638,11 @@ if (ret < 0) goto error; + pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC); + pm_runtime_use_autosuspend(dev); + pm_runtime_set_active(dev); + pm_runtime_enable(dev); + for (i = 0; i < cci->data->num_masters; i++) { if (!cci->master[i].cci) continue; @@ -649,14 +654,12 @@ } } - pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC); - pm_runtime_use_autosuspend(dev); - pm_runtime_set_active(dev); - pm_runtime_enable(dev); - return 0; error_i2c: + pm_runtime_disable(dev); + pm_runtime_dont_use_autosuspend(dev); + for (--i ; i >= 0; i--) { if (cci->master[i].cci) { i2c_del_adapter(&cci->master[i].adap); --- linux-5.19.0.orig/drivers/i2c/busses/i2c-qcom-geni.c +++ linux-5.19.0/drivers/i2c/busses/i2c-qcom-geni.c @@ -484,12 +484,12 @@ { if (tx_buf) { dma_unmap_single(gi2c->se.dev->parent, tx_addr, msg->len, DMA_TO_DEVICE); - i2c_put_dma_safe_msg_buf(tx_buf, msg, false); + i2c_put_dma_safe_msg_buf(tx_buf, msg, !gi2c->err); } if (rx_buf) { dma_unmap_single(gi2c->se.dev->parent, rx_addr, msg->len, DMA_FROM_DEVICE); - i2c_put_dma_safe_msg_buf(rx_buf, msg, false); + i2c_put_dma_safe_msg_buf(rx_buf, msg, !gi2c->err); } } @@ -553,6 +553,7 @@ desc->callback_param = gi2c; dmaengine_submit(desc); + *buf = dma_buf; *dma_addr_p = addr; return 0; @@ -615,7 +616,6 @@ dev_err(gi2c->se.dev, "I2C timeout gpi flags:%d addr:0x%x\n", gi2c->cur->flags, gi2c->cur->addr); gi2c->err = -ETIMEDOUT; - goto err; } if (gi2c->err) { @@ -688,7 +688,7 @@ pm_runtime_put_autosuspend(gi2c->se.dev); gi2c->cur = NULL; gi2c->err = 0; - return num; + return ret; } static u32 geni_i2c_func(struct i2c_adapter *adap) --- linux-5.19.0.orig/drivers/i2c/busses/i2c-tegra.c +++ linux-5.19.0/drivers/i2c/busses/i2c-tegra.c @@ -284,6 +284,7 @@ struct dma_chan *tx_dma_chan; struct dma_chan *rx_dma_chan; unsigned int dma_buf_size; + struct device *dma_dev; dma_addr_t dma_phys; void *dma_buf; @@ -420,7 +421,7 @@ static void tegra_i2c_release_dma(struct tegra_i2c_dev *i2c_dev) { if (i2c_dev->dma_buf) { - dma_free_coherent(i2c_dev->dev, i2c_dev->dma_buf_size, + dma_free_coherent(i2c_dev->dma_dev, i2c_dev->dma_buf_size, i2c_dev->dma_buf, i2c_dev->dma_phys); i2c_dev->dma_buf = NULL; } @@ -467,10 +468,13 @@ i2c_dev->tx_dma_chan = chan; + WARN_ON(i2c_dev->tx_dma_chan->device != i2c_dev->rx_dma_chan->device); + i2c_dev->dma_dev = chan->device->dev; + i2c_dev->dma_buf_size = i2c_dev->hw->quirks->max_write_len + I2C_PACKET_HEADER_SIZE; - dma_buf = dma_alloc_coherent(i2c_dev->dev, i2c_dev->dma_buf_size, + dma_buf = dma_alloc_coherent(i2c_dev->dma_dev, i2c_dev->dma_buf_size, &dma_phys, GFP_KERNEL | __GFP_NOWARN); if (!dma_buf) { dev_err(i2c_dev->dev, "failed to allocate DMA buffer\n"); @@ -1267,7 +1271,7 @@ if (i2c_dev->dma_mode) { if (i2c_dev->msg_read) { - dma_sync_single_for_device(i2c_dev->dev, + dma_sync_single_for_device(i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size, DMA_FROM_DEVICE); @@ -1275,7 +1279,7 @@ if (err) return err; } else { - dma_sync_single_for_cpu(i2c_dev->dev, + dma_sync_single_for_cpu(i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size, DMA_TO_DEVICE); } @@ -1288,7 +1292,7 @@ memcpy(i2c_dev->dma_buf + I2C_PACKET_HEADER_SIZE, msg->buf, msg->len); - dma_sync_single_for_device(i2c_dev->dev, + dma_sync_single_for_device(i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size, DMA_TO_DEVICE); @@ -1339,7 +1343,7 @@ } if (i2c_dev->msg_read && i2c_dev->msg_err == I2C_ERR_NONE) { - dma_sync_single_for_cpu(i2c_dev->dev, + dma_sync_single_for_cpu(i2c_dev->dma_dev, i2c_dev->dma_phys, xfer_size, DMA_FROM_DEVICE); --- linux-5.19.0.orig/drivers/i2c/busses/i2c-xiic.c +++ linux-5.19.0/drivers/i2c/busses/i2c-xiic.c @@ -920,6 +920,7 @@ module_platform_driver(xiic_i2c_driver); +MODULE_ALIAS("platform:" DRIVER_NAME); MODULE_AUTHOR("info@mocean-labs.com"); MODULE_DESCRIPTION("Xilinx I2C bus driver"); MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/i2c/i2c-core-base.c +++ linux-5.19.0/drivers/i2c/i2c-core-base.c @@ -467,6 +467,7 @@ { struct i2c_client *client = i2c_verify_client(dev); struct i2c_driver *driver; + bool do_power_on; int status; if (!client) @@ -541,8 +542,8 @@ if (status < 0) goto err_clear_wakeup_irq; - status = dev_pm_domain_attach(&client->dev, - !i2c_acpi_waive_d0_probe(dev)); + do_power_on = !i2c_acpi_waive_d0_probe(dev); + status = dev_pm_domain_attach(&client->dev, do_power_on); if (status) goto err_clear_wakeup_irq; @@ -581,7 +582,7 @@ err_release_driver_resources: devres_release_group(&client->dev, client->devres_group_id); err_detach_pm_domain: - dev_pm_domain_detach(&client->dev, !i2c_acpi_waive_d0_probe(dev)); + dev_pm_domain_detach(&client->dev, do_power_on); err_clear_wakeup_irq: dev_pm_clear_wake_irq(&client->dev); device_init_wakeup(&client->dev, false); @@ -610,7 +611,7 @@ devres_release_group(&client->dev, client->devres_group_id); - dev_pm_domain_detach(&client->dev, !i2c_acpi_waive_d0_probe(dev)); + dev_pm_domain_detach(&client->dev, true); dev_pm_clear_wake_irq(&client->dev); device_init_wakeup(&client->dev, false); @@ -2467,8 +2468,9 @@ if (!adap) return; - put_device(&adap->dev); module_put(adap->owner); + /* Should be last, otherwise we risk use-after-free with 'adap' */ + put_device(&adap->dev); } EXPORT_SYMBOL(i2c_put_adapter); --- linux-5.19.0.orig/drivers/i2c/i2c-mux.c +++ linux-5.19.0/drivers/i2c/i2c-mux.c @@ -243,9 +243,10 @@ int (*deselect)(struct i2c_mux_core *, u32)) { struct i2c_mux_core *muxc; + size_t mux_size; - muxc = devm_kzalloc(dev, struct_size(muxc, adapter, max_adapters) - + sizeof_priv, GFP_KERNEL); + mux_size = struct_size(muxc, adapter, max_adapters); + muxc = devm_kzalloc(dev, size_add(mux_size, sizeof_priv), GFP_KERNEL); if (!muxc) return NULL; if (sizeof_priv) --- linux-5.19.0.orig/drivers/i2c/muxes/i2c-mux-gpmux.c +++ linux-5.19.0/drivers/i2c/muxes/i2c-mux-gpmux.c @@ -134,6 +134,7 @@ return 0; err_children: + of_node_put(child); i2c_mux_del_adapters(muxc); err_parent: i2c_put_adapter(parent); --- linux-5.19.0.orig/drivers/i2c/muxes/i2c-mux-reg.c +++ linux-5.19.0/drivers/i2c/muxes/i2c-mux-reg.c @@ -183,13 +183,12 @@ if (!mux->data.reg) { dev_info(&pdev->dev, "Register not set, using platform resource\n"); - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - mux->data.reg_size = resource_size(res); - mux->data.reg = devm_ioremap_resource(&pdev->dev, res); + mux->data.reg = devm_platform_get_and_ioremap_resource(pdev, 0, &res); if (IS_ERR(mux->data.reg)) { ret = PTR_ERR(mux->data.reg); goto err_put_parent; } + mux->data.reg_size = resource_size(res); } if (mux->data.reg_size != 4 && mux->data.reg_size != 2 && --- linux-5.19.0.orig/drivers/idle/intel_idle.c +++ linux-5.19.0/drivers/idle/intel_idle.c @@ -911,16 +911,6 @@ .enter = NULL } }; -/* - * On Sapphire Rapids Xeon C1 has to be disabled if C1E is enabled, and vice - * versa. On SPR C1E is enabled only if "C1E promotion" bit is set in - * MSR_IA32_POWER_CTL. But in this case there effectively no C1, because C1 - * requests are promoted to C1E. If the "C1E promotion" bit is cleared, then - * both C1 and C1E requests end up with C1, so there is effectively no C1E. - * - * By default we enable C1 and disable C1E by marking it with - * 'CPUIDLE_FLAG_UNUSABLE'. - */ static struct cpuidle_state spr_cstates[] __initdata = { { .name = "C1", @@ -933,8 +923,7 @@ { .name = "C1E", .desc = "MWAIT 0x01", - .flags = MWAIT2flg(0x01) | CPUIDLE_FLAG_ALWAYS_ENABLE | - CPUIDLE_FLAG_UNUSABLE, + .flags = MWAIT2flg(0x01) | CPUIDLE_FLAG_ALWAYS_ENABLE, .exit_latency = 2, .target_residency = 4, .enter = &intel_idle, @@ -1756,17 +1745,6 @@ { unsigned long long msr; - /* Check if user prefers C1E over C1. */ - if ((preferred_states_mask & BIT(2)) && - !(preferred_states_mask & BIT(1))) { - /* Disable C1 and enable C1E. */ - spr_cstates[0].flags |= CPUIDLE_FLAG_UNUSABLE; - spr_cstates[1].flags &= ~CPUIDLE_FLAG_UNUSABLE; - - /* Enable C1E using the "C1E promotion" bit. */ - c1e_promotion = C1E_PROMOTION_ENABLE; - } - /* * By default, the C6 state assumes the worst-case scenario of package * C6. However, if PC6 is disabled, we update the numbers to match --- linux-5.19.0.orig/drivers/iio/accel/Kconfig +++ linux-5.19.0/drivers/iio/accel/Kconfig @@ -204,6 +204,8 @@ config BMA400 tristate "Bosch BMA400 3-Axis Accelerometer Driver" select REGMAP + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER select BMA400_I2C if I2C select BMA400_SPI if SPI help --- linux-5.19.0.orig/drivers/iio/accel/adxl313_core.c +++ linux-5.19.0/drivers/iio/accel/adxl313_core.c @@ -46,7 +46,7 @@ struct adxl313_data { struct regmap *regmap; struct mutex lock; /* lock to protect transf_buf */ - __le16 transf_buf ____cacheline_aligned; + __le16 transf_buf __aligned(IIO_DMA_MINALIGN); }; static const int adxl313_odr_freqs[][2] = { --- linux-5.19.0.orig/drivers/iio/accel/adxl355_core.c +++ linux-5.19.0/drivers/iio/accel/adxl355_core.c @@ -177,7 +177,7 @@ u8 buf[14]; s64 ts; } buffer; - } ____cacheline_aligned; + } __aligned(IIO_DMA_MINALIGN); }; static int adxl355_set_op_mode(struct adxl355_data *data, --- linux-5.19.0.orig/drivers/iio/accel/adxl367.c +++ linux-5.19.0/drivers/iio/accel/adxl367.c @@ -179,7 +179,7 @@ unsigned int fifo_set_size; unsigned int fifo_watermark; - __be16 fifo_buf[ADXL367_FIFO_SIZE] ____cacheline_aligned; + __be16 fifo_buf[ADXL367_FIFO_SIZE] __aligned(IIO_DMA_MINALIGN); __be16 sample_buf; u8 act_threshold_buf[2]; u8 inact_time_buf[2]; @@ -1211,17 +1211,30 @@ return sysfs_emit(buf, "%d\n", fifo_watermark); } -static IIO_CONST_ATTR(hwfifo_watermark_min, "1"); -static IIO_CONST_ATTR(hwfifo_watermark_max, - __stringify(ADXL367_FIFO_MAX_WATERMARK)); +static ssize_t hwfifo_watermark_min_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return sysfs_emit(buf, "%s\n", "1"); +} + +static ssize_t hwfifo_watermark_max_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return sysfs_emit(buf, "%s\n", __stringify(ADXL367_FIFO_MAX_WATERMARK)); +} + +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_min, 0); +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_max, 0); static IIO_DEVICE_ATTR(hwfifo_watermark, 0444, adxl367_get_fifo_watermark, NULL, 0); static IIO_DEVICE_ATTR(hwfifo_enabled, 0444, adxl367_get_fifo_enabled, NULL, 0); static const struct attribute *adxl367_fifo_attributes[] = { - &iio_const_attr_hwfifo_watermark_min.dev_attr.attr, - &iio_const_attr_hwfifo_watermark_max.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_min.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_max.dev_attr.attr, &iio_dev_attr_hwfifo_watermark.dev_attr.attr, &iio_dev_attr_hwfifo_enabled.dev_attr.attr, NULL, --- linux-5.19.0.orig/drivers/iio/accel/adxl367_spi.c +++ linux-5.19.0/drivers/iio/accel/adxl367_spi.c @@ -9,6 +9,8 @@ #include #include +#include + #include "adxl367.h" #define ADXL367_SPI_WRITE_COMMAND 0x0A @@ -28,10 +30,10 @@ struct spi_transfer fifo_xfer[2]; /* - * DMA (thus cache coherency maintenance) requires the - * transfer buffers to live in their own cache lines. + * DMA (thus cache coherency maintenance) may require the + * transfer buffers live in their own cache lines. */ - u8 reg_write_tx_buf[1] ____cacheline_aligned; + u8 reg_write_tx_buf[1] __aligned(IIO_DMA_MINALIGN); u8 reg_read_tx_buf[2]; u8 fifo_tx_buf[1]; }; --- linux-5.19.0.orig/drivers/iio/accel/adxl372.c +++ linux-5.19.0/drivers/iio/accel/adxl372.c @@ -998,17 +998,30 @@ return sprintf(buf, "%d\n", st->watermark); } -static IIO_CONST_ATTR(hwfifo_watermark_min, "1"); -static IIO_CONST_ATTR(hwfifo_watermark_max, - __stringify(ADXL372_FIFO_SIZE)); +static ssize_t hwfifo_watermark_min_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return sysfs_emit(buf, "%s\n", "1"); +} + +static ssize_t hwfifo_watermark_max_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return sysfs_emit(buf, "%s\n", __stringify(ADXL372_FIFO_SIZE)); +} + +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_min, 0); +static IIO_DEVICE_ATTR_RO(hwfifo_watermark_max, 0); static IIO_DEVICE_ATTR(hwfifo_watermark, 0444, adxl372_get_fifo_watermark, NULL, 0); static IIO_DEVICE_ATTR(hwfifo_enabled, 0444, adxl372_get_fifo_enabled, NULL, 0); static const struct attribute *adxl372_fifo_attributes[] = { - &iio_const_attr_hwfifo_watermark_min.dev_attr.attr, - &iio_const_attr_hwfifo_watermark_max.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_min.dev_attr.attr, + &iio_dev_attr_hwfifo_watermark_max.dev_attr.attr, &iio_dev_attr_hwfifo_watermark.dev_attr.attr, &iio_dev_attr_hwfifo_enabled.dev_attr.attr, NULL, --- linux-5.19.0.orig/drivers/iio/accel/bma220_spi.c +++ linux-5.19.0/drivers/iio/accel/bma220_spi.c @@ -67,7 +67,7 @@ /* Ensure timestamp is naturally aligned. */ s64 timestamp __aligned(8); } scan; - u8 tx_buf[2] ____cacheline_aligned; + u8 tx_buf[2] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec bma220_channels[] = { --- linux-5.19.0.orig/drivers/iio/accel/bma400.h +++ linux-5.19.0/drivers/iio/accel/bma400.h @@ -62,6 +62,13 @@ #define BMA400_ACC_CONFIG2_REG 0x1b #define BMA400_CMD_REG 0x7e +/* Interrupt registers */ +#define BMA400_INT_CONFIG0_REG 0x1f +#define BMA400_INT_CONFIG1_REG 0x20 +#define BMA400_INT1_MAP_REG 0x21 +#define BMA400_INT_IO_CTRL_REG 0x24 +#define BMA400_INT_DRDY_MSK BIT(7) + /* Chip ID of BMA 400 devices found in the chip ID register. */ #define BMA400_ID_REG_VAL 0x90 @@ -83,8 +90,27 @@ #define BMA400_ACC_ODR_MIN_WHOLE_HZ 25 #define BMA400_ACC_ODR_MIN_HZ 12 -#define BMA400_SCALE_MIN 38357 -#define BMA400_SCALE_MAX 306864 +/* + * BMA400_SCALE_MIN macro value represents m/s^2 for 1 LSB before + * converting to micro values for +-2g range. + * + * For +-2g - 1 LSB = 0.976562 milli g = 0.009576 m/s^2 + * For +-4g - 1 LSB = 1.953125 milli g = 0.019153 m/s^2 + * For +-16g - 1 LSB = 7.8125 milli g = 0.076614 m/s^2 + * + * The raw value which is used to select the different ranges is determined + * by the first bit set position from the scale value, so BMA400_SCALE_MIN + * should be odd. + * + * Scale values for +-2g, +-4g, +-8g and +-16g are populated into bma400_scales + * array by left shifting BMA400_SCALE_MIN. + * e.g.: + * To select +-2g = 9577 << 0 = raw value to write is 0. + * To select +-8g = 9577 << 2 = raw value to write is 2. + * To select +-16g = 9577 << 3 = raw value to write is 3. + */ +#define BMA400_SCALE_MIN 9577 +#define BMA400_SCALE_MAX 76617 #define BMA400_NUM_REGULATORS 2 #define BMA400_VDD_REGULATOR 0 @@ -92,8 +118,7 @@ extern const struct regmap_config bma400_regmap_config; -int bma400_probe(struct device *dev, struct regmap *regmap, const char *name); - -void bma400_remove(struct device *dev); +int bma400_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name); #endif --- linux-5.19.0.orig/drivers/iio/accel/bma400_core.c +++ linux-5.19.0/drivers/iio/accel/bma400_core.c @@ -11,16 +11,21 @@ * - Create channel for sensor time */ +#include #include #include -#include -#include #include #include #include #include #include +#include +#include +#include +#include +#include + #include "bma400.h" /* @@ -46,6 +51,13 @@ POWER_MODE_INVALID = 0x03, }; +enum bma400_scan { + BMA400_ACCL_X, + BMA400_ACCL_Y, + BMA400_ACCL_Z, + BMA400_TEMP, +}; + struct bma400_sample_freq { int hz; int uhz; @@ -61,6 +73,14 @@ struct bma400_sample_freq sample_freq; int oversampling_ratio; int scale; + struct iio_trigger *trig; + /* Correct time stamp alignment */ + struct { + __le16 buff[3]; + u8 temperature; + s64 ts __aligned(8); + } buffer __aligned(IIO_DMA_MINALIGN); + __le16 status; }; static bool bma400_is_writable_reg(struct device *dev, unsigned int reg) @@ -152,7 +172,7 @@ { } }; -#define BMA400_ACC_CHANNEL(_axis) { \ +#define BMA400_ACC_CHANNEL(_index, _axis) { \ .type = IIO_ACCEL, \ .modified = 1, \ .channel2 = IIO_MOD_##_axis, \ @@ -164,17 +184,32 @@ BIT(IIO_CHAN_INFO_SCALE) | \ BIT(IIO_CHAN_INFO_OVERSAMPLING_RATIO), \ .ext_info = bma400_ext_info, \ + .scan_index = _index, \ + .scan_type = { \ + .sign = 's', \ + .realbits = 12, \ + .storagebits = 16, \ + .endianness = IIO_LE, \ + }, \ } static const struct iio_chan_spec bma400_channels[] = { - BMA400_ACC_CHANNEL(X), - BMA400_ACC_CHANNEL(Y), - BMA400_ACC_CHANNEL(Z), + BMA400_ACC_CHANNEL(0, X), + BMA400_ACC_CHANNEL(1, Y), + BMA400_ACC_CHANNEL(2, Z), { .type = IIO_TEMP, .info_mask_separate = BIT(IIO_CHAN_INFO_PROCESSED), .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_SAMP_FREQ), + .scan_index = 3, + .scan_type = { + .sign = 's', + .realbits = 8, + .storagebits = 8, + .endianness = IIO_LE, + }, }, + IIO_CHAN_SOFT_TIMESTAMP(4), }; static int bma400_get_temp_reg(struct bma400_data *data, int *val, int *val2) @@ -560,23 +595,30 @@ } } -static int bma400_init(struct bma400_data *data) +static void bma400_regulators_disable(void *data_ptr) { - unsigned int val; + struct bma400_data *data = data_ptr; + + regulator_bulk_disable(ARRAY_SIZE(data->regulators), data->regulators); +} + +static void bma400_power_disable(void *data_ptr) +{ + struct bma400_data *data = data_ptr; int ret; - /* Try to read chip_id register. It must return 0x90. */ - ret = regmap_read(data->regmap, BMA400_CHIP_ID_REG, &val); - if (ret) { - dev_err(data->dev, "Failed to read chip id register\n"); - goto out; - } + mutex_lock(&data->mutex); + ret = bma400_set_power_mode(data, POWER_MODE_SLEEP); + mutex_unlock(&data->mutex); + if (ret) + dev_warn(data->dev, "Failed to put device into sleep mode (%pe)\n", + ERR_PTR(ret)); +} - if (val != BMA400_ID_REG_VAL) { - dev_err(data->dev, "Chip ID mismatch\n"); - ret = -ENODEV; - goto out; - } +static int bma400_init(struct bma400_data *data) +{ + unsigned int val; + int ret; data->regulators[BMA400_VDD_REGULATOR].supply = "vdd"; data->regulators[BMA400_VDDIO_REGULATOR].supply = "vddio"; @@ -589,27 +631,43 @@ "Failed to get regulators: %d\n", ret); - goto out; + return ret; } ret = regulator_bulk_enable(ARRAY_SIZE(data->regulators), data->regulators); if (ret) { dev_err(data->dev, "Failed to enable regulators: %d\n", ret); - goto out; + return ret; + } + + ret = devm_add_action_or_reset(data->dev, bma400_regulators_disable, data); + if (ret) + return ret; + + /* Try to read chip_id register. It must return 0x90. */ + ret = regmap_read(data->regmap, BMA400_CHIP_ID_REG, &val); + if (ret) { + dev_err(data->dev, "Failed to read chip id register\n"); + return ret; + } + + if (val != BMA400_ID_REG_VAL) { + dev_err(data->dev, "Chip ID mismatch\n"); + return -ENODEV; } ret = bma400_get_power_mode(data); if (ret) { dev_err(data->dev, "Failed to get the initial power-mode\n"); - goto err_reg_disable; + return ret; } if (data->power_mode != POWER_MODE_NORMAL) { ret = bma400_set_power_mode(data, POWER_MODE_NORMAL); if (ret) { dev_err(data->dev, "Failed to wake up the device\n"); - goto err_reg_disable; + return ret; } /* * TODO: The datasheet waits 1500us here in the example, but @@ -618,20 +676,28 @@ usleep_range(1500, 2000); } + ret = devm_add_action_or_reset(data->dev, bma400_power_disable, data); + if (ret) + return ret; + bma400_init_tables(); ret = bma400_get_accel_output_data_rate(data); if (ret) - goto err_reg_disable; + return ret; ret = bma400_get_accel_oversampling_ratio(data); if (ret) - goto err_reg_disable; + return ret; ret = bma400_get_accel_scale(data); if (ret) - goto err_reg_disable; + return ret; + /* Configure INT1 pin to open drain */ + ret = regmap_write(data->regmap, BMA400_INT_IO_CTRL_REG, 0x06); + if (ret) + return ret; /* * Once the interrupt engine is supported we might use the * data_src_reg, but for now ensure this is set to the @@ -639,12 +705,6 @@ * channel. */ return regmap_write(data->regmap, BMA400_ACC_CONFIG2_REG, 0x00); - -err_reg_disable: - regulator_bulk_disable(ARRAY_SIZE(data->regulators), - data->regulators); -out: - return ret; } static int bma400_read_raw(struct iio_dev *indio_dev, @@ -786,6 +846,31 @@ } } +static int bma400_data_rdy_trigger_set_state(struct iio_trigger *trig, + bool state) +{ + struct iio_dev *indio_dev = iio_trigger_get_drvdata(trig); + struct bma400_data *data = iio_priv(indio_dev); + int ret; + + ret = regmap_update_bits(data->regmap, BMA400_INT_CONFIG0_REG, + BMA400_INT_DRDY_MSK, + FIELD_PREP(BMA400_INT_DRDY_MSK, state)); + if (ret) + return ret; + + return regmap_update_bits(data->regmap, BMA400_INT1_MAP_REG, + BMA400_INT_DRDY_MSK, + FIELD_PREP(BMA400_INT_DRDY_MSK, state)); +} + +static const unsigned long bma400_avail_scan_masks[] = { + BIT(BMA400_ACCL_X) | BIT(BMA400_ACCL_Y) | BIT(BMA400_ACCL_Z), + BIT(BMA400_ACCL_X) | BIT(BMA400_ACCL_Y) | BIT(BMA400_ACCL_Z) + | BIT(BMA400_TEMP), + 0 +}; + static const struct iio_info bma400_info = { .read_raw = bma400_read_raw, .read_avail = bma400_read_avail, @@ -793,7 +878,78 @@ .write_raw_get_fmt = bma400_write_raw_get_fmt, }; -int bma400_probe(struct device *dev, struct regmap *regmap, const char *name) +static const struct iio_trigger_ops bma400_trigger_ops = { + .set_trigger_state = &bma400_data_rdy_trigger_set_state, + .validate_device = &iio_trigger_validate_own_device, +}; + +static irqreturn_t bma400_trigger_handler(int irq, void *p) +{ + struct iio_poll_func *pf = p; + struct iio_dev *indio_dev = pf->indio_dev; + struct bma400_data *data = iio_priv(indio_dev); + int ret, temp; + + /* Lock to protect the data->buffer */ + mutex_lock(&data->mutex); + + /* bulk read six registers, with the base being the LSB register */ + ret = regmap_bulk_read(data->regmap, BMA400_X_AXIS_LSB_REG, + &data->buffer.buff, sizeof(data->buffer.buff)); + if (ret) + goto unlock_err; + + if (test_bit(BMA400_TEMP, indio_dev->active_scan_mask)) { + ret = regmap_read(data->regmap, BMA400_TEMP_DATA_REG, &temp); + if (ret) + goto unlock_err; + + data->buffer.temperature = temp; + } + + iio_push_to_buffers_with_timestamp(indio_dev, &data->buffer, + iio_get_time_ns(indio_dev)); + + mutex_unlock(&data->mutex); + iio_trigger_notify_done(indio_dev->trig); + return IRQ_HANDLED; + +unlock_err: + mutex_unlock(&data->mutex); + return IRQ_NONE; +} + +static irqreturn_t bma400_interrupt(int irq, void *private) +{ + struct iio_dev *indio_dev = private; + struct bma400_data *data = iio_priv(indio_dev); + int ret; + + /* Lock to protect the data->status */ + mutex_lock(&data->mutex); + ret = regmap_bulk_read(data->regmap, BMA400_INT_STAT0_REG, + &data->status, + sizeof(data->status)); + /* + * if none of the bit is set in the status register then it is + * spurious interrupt. + */ + if (ret || !data->status) + goto unlock_err; + + if (FIELD_GET(BMA400_INT_DRDY_MSK, le16_to_cpu(data->status))) { + mutex_unlock(&data->mutex); + iio_trigger_poll_chained(data->trig); + return IRQ_HANDLED; + } + +unlock_err: + mutex_unlock(&data->mutex); + return IRQ_NONE; +} + +int bma400_probe(struct device *dev, struct regmap *regmap, int irq, + const char *name) { struct iio_dev *indio_dev; struct bma400_data *data; @@ -820,33 +976,43 @@ indio_dev->info = &bma400_info; indio_dev->channels = bma400_channels; indio_dev->num_channels = ARRAY_SIZE(bma400_channels); + indio_dev->available_scan_masks = bma400_avail_scan_masks; indio_dev->modes = INDIO_DIRECT_MODE; - dev_set_drvdata(dev, indio_dev); + if (irq > 0) { + data->trig = devm_iio_trigger_alloc(dev, "%s-dev%d", + indio_dev->name, + iio_device_id(indio_dev)); + if (!data->trig) + return -ENOMEM; - return iio_device_register(indio_dev); -} -EXPORT_SYMBOL_NS(bma400_probe, IIO_BMA400); + data->trig->ops = &bma400_trigger_ops; + iio_trigger_set_drvdata(data->trig, indio_dev); -void bma400_remove(struct device *dev) -{ - struct iio_dev *indio_dev = dev_get_drvdata(dev); - struct bma400_data *data = iio_priv(indio_dev); - int ret; + ret = devm_iio_trigger_register(data->dev, data->trig); + if (ret) + return dev_err_probe(data->dev, ret, + "iio trigger register fail\n"); - mutex_lock(&data->mutex); - ret = bma400_set_power_mode(data, POWER_MODE_SLEEP); - mutex_unlock(&data->mutex); + indio_dev->trig = iio_trigger_get(data->trig); + ret = devm_request_threaded_irq(dev, irq, NULL, + &bma400_interrupt, + IRQF_TRIGGER_RISING | IRQF_ONESHOT, + indio_dev->name, indio_dev); + if (ret) + return dev_err_probe(data->dev, ret, + "request irq %d failed\n", irq); + } + ret = devm_iio_triggered_buffer_setup(dev, indio_dev, NULL, + &bma400_trigger_handler, NULL); if (ret) - dev_warn(dev, "Failed to put device into sleep mode (%pe)\n", ERR_PTR(ret)); - - regulator_bulk_disable(ARRAY_SIZE(data->regulators), - data->regulators); + return dev_err_probe(data->dev, ret, + "iio triggered buffer setup failed\n"); - iio_device_unregister(indio_dev); + return devm_iio_device_register(dev, indio_dev); } -EXPORT_SYMBOL_NS(bma400_remove, IIO_BMA400); +EXPORT_SYMBOL_NS(bma400_probe, IIO_BMA400); MODULE_AUTHOR("Dan Robertson "); MODULE_DESCRIPTION("Bosch BMA400 triaxial acceleration sensor core"); --- linux-5.19.0.orig/drivers/iio/accel/bma400_i2c.c +++ linux-5.19.0/drivers/iio/accel/bma400_i2c.c @@ -24,14 +24,7 @@ return PTR_ERR(regmap); } - return bma400_probe(&client->dev, regmap, id->name); -} - -static int bma400_i2c_remove(struct i2c_client *client) -{ - bma400_remove(&client->dev); - - return 0; + return bma400_probe(&client->dev, regmap, client->irq, id->name); } static const struct i2c_device_id bma400_i2c_ids[] = { @@ -52,7 +45,6 @@ .of_match_table = bma400_of_i2c_match, }, .probe = bma400_i2c_probe, - .remove = bma400_i2c_remove, .id_table = bma400_i2c_ids, }; --- linux-5.19.0.orig/drivers/iio/accel/bma400_spi.c +++ linux-5.19.0/drivers/iio/accel/bma400_spi.c @@ -84,12 +84,7 @@ if (ret) dev_err(&spi->dev, "Failed to read chip id register\n"); - return bma400_probe(&spi->dev, regmap, id->name); -} - -static void bma400_spi_remove(struct spi_device *spi) -{ - bma400_remove(&spi->dev); + return bma400_probe(&spi->dev, regmap, spi->irq, id->name); } static const struct spi_device_id bma400_spi_ids[] = { @@ -110,7 +105,6 @@ .of_match_table = bma400_of_spi_match, }, .probe = bma400_spi_probe, - .remove = bma400_spi_remove, .id_table = bma400_spi_ids, }; --- linux-5.19.0.orig/drivers/iio/accel/cros_ec_accel_legacy.c +++ linux-5.19.0/drivers/iio/accel/cros_ec_accel_legacy.c @@ -215,7 +215,7 @@ return -ENOMEM; ret = cros_ec_sensors_core_init(pdev, indio_dev, true, - cros_ec_sensors_capture, NULL); + cros_ec_sensors_capture); if (ret) return ret; @@ -235,7 +235,7 @@ state->sign[CROS_EC_SENSOR_Z] = -1; } - return devm_iio_device_register(dev, indio_dev); + return cros_ec_sensors_core_register(dev, indio_dev, NULL); } static struct platform_driver cros_ec_accel_platform_driver = { --- linux-5.19.0.orig/drivers/iio/accel/sca3000.c +++ linux-5.19.0/drivers/iio/accel/sca3000.c @@ -167,8 +167,8 @@ int mo_det_use_count; struct mutex lock; /* Can these share a cacheline ? */ - u8 rx[384] ____cacheline_aligned; - u8 tx[6] ____cacheline_aligned; + u8 rx[384] __aligned(IIO_DMA_MINALIGN); + u8 tx[6] __aligned(IIO_DMA_MINALIGN); }; /** --- linux-5.19.0.orig/drivers/iio/accel/sca3300.c +++ linux-5.19.0/drivers/iio/accel/sca3300.c @@ -115,7 +115,7 @@ s16 channels[4]; s64 ts __aligned(sizeof(s64)); } scan; - u8 txbuf[4] ____cacheline_aligned; + u8 txbuf[4] __aligned(IIO_DMA_MINALIGN); u8 rxbuf[4]; }; --- linux-5.19.0.orig/drivers/iio/adc/ad7266.c +++ linux-5.19.0/drivers/iio/adc/ad7266.c @@ -37,7 +37,7 @@ struct gpio_desc *gpios[3]; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * The buffer needs to be large enough to hold two samples (4 bytes) and * the naturally aligned timestamp (8 bytes). @@ -45,7 +45,7 @@ struct { __be16 sample[2]; s64 timestamp; - } data ____cacheline_aligned; + } data __aligned(IIO_DMA_MINALIGN); }; static int ad7266_wakeup(struct ad7266_state *st) --- linux-5.19.0.orig/drivers/iio/adc/ad7280a.c +++ linux-5.19.0/drivers/iio/adc/ad7280a.c @@ -183,7 +183,7 @@ unsigned char cb_mask[AD7280A_MAX_CHAIN]; struct mutex lock; /* protect sensor state */ - __be32 tx ____cacheline_aligned; + __be32 tx __aligned(IIO_DMA_MINALIGN); __be32 rx; }; --- linux-5.19.0.orig/drivers/iio/adc/ad7292.c +++ linux-5.19.0/drivers/iio/adc/ad7292.c @@ -80,7 +80,7 @@ struct regulator *reg; unsigned short vref_mv; - __be16 d16 ____cacheline_aligned; + __be16 d16 __aligned(IIO_DMA_MINALIGN); u8 d8[2]; }; @@ -287,10 +287,8 @@ ret = devm_add_action_or_reset(&spi->dev, ad7292_regulator_disable, st); - if (ret) { - regulator_disable(st->reg); + if (ret) return ret; - } ret = regulator_get_voltage(st->reg); if (ret < 0) --- linux-5.19.0.orig/drivers/iio/adc/ad7298.c +++ linux-5.19.0/drivers/iio/adc/ad7298.c @@ -49,7 +49,7 @@ * DMA (thus cache coherency maintenance) requires the * transfer buffers to live in their own cache lines. */ - __be16 rx_buf[12] ____cacheline_aligned; + __be16 rx_buf[12] __aligned(IIO_DMA_MINALIGN); __be16 tx_buf[2]; }; --- linux-5.19.0.orig/drivers/iio/adc/ad7476.c +++ linux-5.19.0/drivers/iio/adc/ad7476.c @@ -44,13 +44,12 @@ struct spi_transfer xfer; struct spi_message msg; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * Make the buffer large enough for one 16 bit sample and one 64 bit * aligned 64 bit timestamp. */ - unsigned char data[ALIGN(2, sizeof(s64)) + sizeof(s64)] - ____cacheline_aligned; + unsigned char data[ALIGN(2, sizeof(s64)) + sizeof(s64)] __aligned(IIO_DMA_MINALIGN); }; enum ad7476_supported_device_ids { --- linux-5.19.0.orig/drivers/iio/adc/ad7606.h +++ linux-5.19.0/drivers/iio/adc/ad7606.h @@ -116,11 +116,11 @@ struct completion completion; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * 16 * 16-bit samples + 64-bit timestamp */ - unsigned short data[20] ____cacheline_aligned; + unsigned short data[20] __aligned(IIO_DMA_MINALIGN); __be16 d16[2]; }; --- linux-5.19.0.orig/drivers/iio/adc/ad7766.c +++ linux-5.19.0/drivers/iio/adc/ad7766.c @@ -45,13 +45,12 @@ struct spi_message msg; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * Make the buffer large enough for one 24 bit sample and one 64 bit * aligned 64 bit timestamp. */ - unsigned char data[ALIGN(3, sizeof(s64)) + sizeof(s64)] - ____cacheline_aligned; + unsigned char data[ALIGN(3, sizeof(s64)) + sizeof(s64)] __aligned(IIO_DMA_MINALIGN); }; /* --- linux-5.19.0.orig/drivers/iio/adc/ad7768-1.c +++ linux-5.19.0/drivers/iio/adc/ad7768-1.c @@ -163,7 +163,7 @@ struct gpio_desc *gpio_sync_in; const char *labels[ARRAY_SIZE(ad7768_channels)]; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { @@ -173,7 +173,7 @@ } scan; __be32 d32; u8 d8[2]; - } data ____cacheline_aligned; + } data __aligned(IIO_DMA_MINALIGN); }; static int ad7768_spi_reg_read(struct ad7768_state *st, unsigned int addr, --- linux-5.19.0.orig/drivers/iio/adc/ad7887.c +++ linux-5.19.0/drivers/iio/adc/ad7887.c @@ -66,13 +66,12 @@ unsigned char tx_cmd_buf[4]; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * Buffer needs to be large enough to hold two 16 bit samples and a * 64 bit aligned 64 bit timestamp. */ - unsigned char data[ALIGN(4, sizeof(s64)) + sizeof(s64)] - ____cacheline_aligned; + unsigned char data[ALIGN(4, sizeof(s64)) + sizeof(s64)] __aligned(IIO_DMA_MINALIGN); }; enum ad7887_supported_device_ids { --- linux-5.19.0.orig/drivers/iio/adc/ad7923.c +++ linux-5.19.0/drivers/iio/adc/ad7923.c @@ -57,12 +57,12 @@ unsigned int settings; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * Ensure rx_buf can be directly used in iio_push_to_buffers_with_timetamp * Length = 8 channels + 4 extra for 8 byte timestamp */ - __be16 rx_buf[12] ____cacheline_aligned; + __be16 rx_buf[12] __aligned(IIO_DMA_MINALIGN); __be16 tx_buf[4]; }; @@ -93,6 +93,7 @@ .sign = 'u', \ .realbits = (bits), \ .storagebits = 16, \ + .shift = 12 - (bits), \ .endianness = IIO_BE, \ }, \ } @@ -268,7 +269,8 @@ return ret; if (chan->address == EXTRACT(ret, 12, 4)) - *val = EXTRACT(ret, 0, 12); + *val = EXTRACT(ret, chan->scan_type.shift, + chan->scan_type.realbits); else return -EIO; --- linux-5.19.0.orig/drivers/iio/adc/ad7949.c +++ linux-5.19.0/drivers/iio/adc/ad7949.c @@ -86,7 +86,7 @@ u8 resolution; u16 cfg; unsigned int current_channel; - u16 buffer ____cacheline_aligned; + u16 buffer __aligned(IIO_DMA_MINALIGN); __be16 buf8b; }; --- linux-5.19.0.orig/drivers/iio/adc/ad_sigma_delta.c +++ linux-5.19.0/drivers/iio/adc/ad_sigma_delta.c @@ -281,10 +281,10 @@ unsigned int data_reg; int ret = 0; - if (iio_buffer_enabled(indio_dev)) - return -EBUSY; + ret = iio_device_claim_direct_mode(indio_dev); + if (ret) + return ret; - mutex_lock(&indio_dev->mlock); ad_sigma_delta_set_channel(sigma_delta, chan->address); spi_bus_lock(sigma_delta->spi->master); @@ -323,7 +323,7 @@ ad_sigma_delta_set_mode(sigma_delta, AD_SD_MODE_IDLE); sigma_delta->bus_locked = false; spi_bus_unlock(sigma_delta->spi->master); - mutex_unlock(&indio_dev->mlock); + iio_device_release_direct_mode(indio_dev); if (ret) return ret; --- linux-5.19.0.orig/drivers/iio/adc/adi-axi-adc.c +++ linux-5.19.0/drivers/iio/adc/adi-axi-adc.c @@ -84,7 +84,8 @@ { struct adi_axi_adc_client *cl = conv_to_client(conv); - return (char *)cl + ALIGN(sizeof(struct adi_axi_adc_client), IIO_ALIGN); + return (char *)cl + ALIGN(sizeof(struct adi_axi_adc_client), + IIO_DMA_MINALIGN); } EXPORT_SYMBOL_GPL(adi_axi_adc_conv_priv); @@ -169,9 +170,9 @@ struct adi_axi_adc_client *cl; size_t alloc_size; - alloc_size = ALIGN(sizeof(struct adi_axi_adc_client), IIO_ALIGN); + alloc_size = ALIGN(sizeof(struct adi_axi_adc_client), IIO_DMA_MINALIGN); if (sizeof_priv) - alloc_size += ALIGN(sizeof_priv, IIO_ALIGN); + alloc_size += ALIGN(sizeof_priv, IIO_DMA_MINALIGN); cl = kzalloc(alloc_size, GFP_KERNEL); if (!cl) --- linux-5.19.0.orig/drivers/iio/adc/aspeed_adc.c +++ linux-5.19.0/drivers/iio/adc/aspeed_adc.c @@ -202,6 +202,8 @@ ((scu_otp) & (data->model_data->trim_locate->field)) >> __ffs(data->model_data->trim_locate->field); + if (!trimming_val) + trimming_val = 0x8; } dev_dbg(data->dev, "trimming val = %d, offset = %08x, fields = %08x\n", @@ -563,12 +565,9 @@ if (ret) return ret; - if (of_find_property(data->dev->of_node, "aspeed,trim-data-valid", - NULL)) { - ret = aspeed_adc_set_trim_data(indio_dev); - if (ret) - return ret; - } + ret = aspeed_adc_set_trim_data(indio_dev); + if (ret) + return ret; if (of_find_property(data->dev->of_node, "aspeed,battery-sensing", NULL)) { --- linux-5.19.0.orig/drivers/iio/adc/at91-sama5d2_adc.c +++ linux-5.19.0/drivers/iio/adc/at91-sama5d2_adc.c @@ -77,7 +77,7 @@ #define AT91_SAMA5D2_MR_ANACH BIT(23) /* Tracking Time */ #define AT91_SAMA5D2_MR_TRACKTIM(v) ((v) << 24) -#define AT91_SAMA5D2_MR_TRACKTIM_MAX 0xff +#define AT91_SAMA5D2_MR_TRACKTIM_MAX 0xf /* Transfer Time */ #define AT91_SAMA5D2_MR_TRANSFER(v) ((v) << 28) #define AT91_SAMA5D2_MR_TRANSFER_MAX 0x3 @@ -1542,10 +1542,12 @@ ret = at91_adc_read_position(st, chan->channel, &tmp_val); *val = tmp_val; + if (ret > 0) + ret = at91_adc_adjust_val_osr(st, val); mutex_unlock(&st->lock); iio_device_release_direct_mode(indio_dev); - return at91_adc_adjust_val_osr(st, val); + return ret; } if (chan->type == IIO_PRESSURE) { ret = iio_device_claim_direct_mode(indio_dev); @@ -1556,10 +1558,12 @@ ret = at91_adc_read_pressure(st, chan->channel, &tmp_val); *val = tmp_val; + if (ret > 0) + ret = at91_adc_adjust_val_osr(st, val); mutex_unlock(&st->lock); iio_device_release_direct_mode(indio_dev); - return at91_adc_adjust_val_osr(st, val); + return ret; } /* in this case we have a voltage channel */ @@ -1646,16 +1650,20 @@ /* if no change, optimize out */ if (val == st->oversampling_ratio) return 0; + mutex_lock(&st->lock); st->oversampling_ratio = val; /* update ratio */ at91_adc_config_emr(st); + mutex_unlock(&st->lock); return 0; case IIO_CHAN_INFO_SAMP_FREQ: if (val < st->soc_info.min_sample_rate || val > st->soc_info.max_sample_rate) return -EINVAL; + mutex_lock(&st->lock); at91_adc_setup_samp_freq(indio_dev, val); + mutex_unlock(&st->lock); return 0; default: return -EINVAL; @@ -2108,6 +2116,9 @@ struct iio_dev *indio_dev = dev_get_drvdata(dev); struct at91_adc_state *st = iio_priv(indio_dev); + if (iio_buffer_enabled(indio_dev)) + at91_adc_buffer_postdisable(indio_dev); + /* * Do a sofware reset of the ADC before we go to suspend. * this will ensure that all pins are free from being muxed by the ADC @@ -2151,14 +2162,11 @@ if (!iio_buffer_enabled(indio_dev)) return 0; - /* check if we are enabling triggered buffer or the touchscreen */ - if (at91_adc_current_chan_is_touch(indio_dev)) - return at91_adc_configure_touch(st, true); - else - return at91_adc_configure_trigger(st->trig, true); + ret = at91_adc_buffer_prepare(indio_dev); + if (ret) + goto vref_disable_resume; - /* not needed but more explicit */ - return 0; + return at91_adc_configure_trigger(st->trig, true); vref_disable_resume: regulator_disable(st->vref); --- linux-5.19.0.orig/drivers/iio/adc/at91_adc.c +++ linux-5.19.0/drivers/iio/adc/at91_adc.c @@ -634,8 +634,10 @@ trig->ops = &at91_adc_trigger_ops; ret = iio_trigger_register(trig); - if (ret) + if (ret) { + iio_trigger_free(trig); return NULL; + } return trig; } --- linux-5.19.0.orig/drivers/iio/adc/hi8435.c +++ linux-5.19.0/drivers/iio/adc/hi8435.c @@ -49,7 +49,7 @@ unsigned threshold_lo[2]; /* GND-Open and Supply-Open thresholds */ unsigned threshold_hi[2]; /* GND-Open and Supply-Open thresholds */ - u8 reg_buffer[3] ____cacheline_aligned; + u8 reg_buffer[3] __aligned(IIO_DMA_MINALIGN); }; static int hi8435_readb(struct hi8435_priv *priv, u8 reg, u8 *val) --- linux-5.19.0.orig/drivers/iio/adc/ltc2496.c +++ linux-5.19.0/drivers/iio/adc/ltc2496.c @@ -24,10 +24,10 @@ struct spi_device *spi; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - unsigned char rxbuf[3] ____cacheline_aligned; + unsigned char rxbuf[3] __aligned(IIO_DMA_MINALIGN); unsigned char txbuf[3]; }; --- linux-5.19.0.orig/drivers/iio/adc/ltc2497.c +++ linux-5.19.0/drivers/iio/adc/ltc2497.c @@ -20,10 +20,10 @@ struct ltc2497core_driverdata common_ddata; struct i2c_client *client; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - __be32 buf ____cacheline_aligned; + __be32 buf __aligned(IIO_DMA_MINALIGN); }; static int ltc2497_result_and_measure(struct ltc2497core_driverdata *ddata, @@ -41,6 +41,19 @@ } *val = (be32_to_cpu(st->buf) >> 14) - (1 << 17); + + /* + * The part started a new conversion at the end of the above i2c + * transfer, so if the address didn't change since the last call + * everything is fine and we can return early. + * If not (which should only happen when some sort of bulk + * conversion is implemented) we have to program the new + * address. Note that this probably fails as the conversion that + * was triggered above is like not complete yet and the two + * operations have to be done in a single transfer. + */ + if (ddata->addr_prev == address) + return 0; } ret = i2c_smbus_write_byte(st->client, --- linux-5.19.0.orig/drivers/iio/adc/max1027.c +++ linux-5.19.0/drivers/iio/adc/max1027.c @@ -272,7 +272,7 @@ struct mutex lock; struct completion complete; - u8 reg ____cacheline_aligned; + u8 reg __aligned(IIO_DMA_MINALIGN); }; static int max1027_wait_eoc(struct iio_dev *indio_dev) @@ -349,8 +349,7 @@ if (ret < 0) { dev_err(&indio_dev->dev, "Failed to configure conversion register\n"); - iio_device_release_direct_mode(indio_dev); - return ret; + goto release; } /* @@ -360,11 +359,12 @@ */ ret = max1027_wait_eoc(indio_dev); if (ret) - return ret; + goto release; /* Read result */ ret = spi_read(st->spi, st->buffer, (chan->type == IIO_TEMP) ? 4 : 2); +release: iio_device_release_direct_mode(indio_dev); if (ret < 0) --- linux-5.19.0.orig/drivers/iio/adc/max11100.c +++ linux-5.19.0/drivers/iio/adc/max11100.c @@ -33,10 +33,10 @@ struct spi_device *spi; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - u8 buffer[3] ____cacheline_aligned; + u8 buffer[3] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec max11100_channels[] = { --- linux-5.19.0.orig/drivers/iio/adc/max1118.c +++ linux-5.19.0/drivers/iio/adc/max1118.c @@ -42,7 +42,7 @@ s64 ts __aligned(8); } scan; - u8 data ____cacheline_aligned; + u8 data __aligned(IIO_DMA_MINALIGN); }; #define MAX1118_CHANNEL(ch) \ --- linux-5.19.0.orig/drivers/iio/adc/max1241.c +++ linux-5.19.0/drivers/iio/adc/max1241.c @@ -26,7 +26,7 @@ struct regulator *vref; struct gpio_desc *shutdown; - __be16 data ____cacheline_aligned; + __be16 data __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec max1241_channels[] = { --- linux-5.19.0.orig/drivers/iio/adc/mcp320x.c +++ linux-5.19.0/drivers/iio/adc/mcp320x.c @@ -92,7 +92,7 @@ struct mutex lock; const struct mcp320x_chip_info *chip_info; - u8 tx_buf ____cacheline_aligned; + u8 tx_buf __aligned(IIO_DMA_MINALIGN); u8 rx_buf[4]; }; --- linux-5.19.0.orig/drivers/iio/adc/mcp3911.c +++ linux-5.19.0/drivers/iio/adc/mcp3911.c @@ -40,8 +40,8 @@ #define MCP3911_CHANNEL(x) (MCP3911_REG_CHANNEL0 + x * 3) #define MCP3911_OFFCAL(x) (MCP3911_REG_OFFCAL_CH0 + x * 6) -/* Internal voltage reference in uV */ -#define MCP3911_INT_VREF_UV 1200000 +/* Internal voltage reference in mV */ +#define MCP3911_INT_VREF_MV 1200 #define MCP3911_REG_READ(reg, id) ((((reg) << 1) | ((id) << 5) | (1 << 0)) & 0xff) #define MCP3911_REG_WRITE(reg, id) ((((reg) << 1) | ((id) << 5) | (0 << 0)) & 0xff) @@ -113,6 +113,8 @@ if (ret) goto out; + *val = sign_extend32(*val, 23); + ret = IIO_VAL_INT; break; @@ -137,11 +139,18 @@ *val = ret / 1000; } else { - *val = MCP3911_INT_VREF_UV; + *val = MCP3911_INT_VREF_MV; } - *val2 = 24; - ret = IIO_VAL_FRACTIONAL_LOG2; + /* + * For 24bit Conversion + * Raw = ((Voltage)/(Vref) * 2^23 * Gain * 1.5 + * Voltage = Raw * (Vref)/(2^23 * Gain * 1.5) + */ + + /* val2 = (2^23 * 1.5) */ + *val2 = 12582912; + ret = IIO_VAL_FRACTIONAL; break; } @@ -208,7 +217,14 @@ u32 configreg; int ret; - device_property_read_u32(dev, "device-addr", &adc->dev_addr); + ret = device_property_read_u32(dev, "microchip,device-addr", &adc->dev_addr); + + /* + * Fallback to "device-addr" due to historical mismatch between + * dt-bindings and implementation + */ + if (ret) + device_property_read_u32(dev, "device-addr", &adc->dev_addr); if (adc->dev_addr > 3) { dev_err(&adc->spi->dev, "invalid device address (%i). Must be in range 0-3.\n", --- linux-5.19.0.orig/drivers/iio/adc/mp2629_adc.c +++ linux-5.19.0/drivers/iio/adc/mp2629_adc.c @@ -56,7 +56,8 @@ MP2629_MAP(SYSTEM_VOLT, "system-volt"), MP2629_MAP(INPUT_VOLT, "input-volt"), MP2629_MAP(BATT_CURRENT, "batt-current"), - MP2629_MAP(INPUT_CURRENT, "input-current") + MP2629_MAP(INPUT_CURRENT, "input-current"), + { } }; static int mp2629_read_raw(struct iio_dev *indio_dev, @@ -73,7 +74,7 @@ if (ret) return ret; - if (chan->address == MP2629_INPUT_VOLT) + if (chan->channel == MP2629_INPUT_VOLT) rval &= GENMASK(6, 0); *val = rval; return IIO_VAL_INT; --- linux-5.19.0.orig/drivers/iio/adc/stm32-adc.c +++ linux-5.19.0/drivers/iio/adc/stm32-adc.c @@ -2058,18 +2058,19 @@ stm32_adc_chan_init_one(indio_dev, &channels[scan_index], val, vin[1], scan_index, differential); + val = 0; ret = of_property_read_u32(child, "st,min-sample-time-ns", &val); /* st,min-sample-time-ns is optional */ - if (!ret) { - stm32_adc_smpr_init(adc, channels[scan_index].channel, val); - if (differential) - stm32_adc_smpr_init(adc, vin[1], val); - } else if (ret != -EINVAL) { + if (ret && ret != -EINVAL) { dev_err(&indio_dev->dev, "Invalid st,min-sample-time-ns property %d\n", ret); goto err; } + stm32_adc_smpr_init(adc, channels[scan_index].channel, val); + if (differential) + stm32_adc_smpr_init(adc, vin[1], val); + scan_index++; } --- linux-5.19.0.orig/drivers/iio/adc/ti-adc0832.c +++ linux-5.19.0/drivers/iio/adc/ti-adc0832.c @@ -36,7 +36,7 @@ */ u8 data[24] __aligned(8); - u8 tx_buf[2] ____cacheline_aligned; + u8 tx_buf[2] __aligned(IIO_DMA_MINALIGN); u8 rx_buf[2]; }; --- linux-5.19.0.orig/drivers/iio/adc/ti-adc084s021.c +++ linux-5.19.0/drivers/iio/adc/ti-adc084s021.c @@ -32,10 +32,10 @@ s64 ts __aligned(8); } scan; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache line. */ - u16 tx_buf[4] ____cacheline_aligned; + u16 tx_buf[4] __aligned(IIO_DMA_MINALIGN); __be16 rx_buf[5]; /* First 16-bits are trash */ }; --- linux-5.19.0.orig/drivers/iio/adc/ti-adc108s102.c +++ linux-5.19.0/drivers/iio/adc/ti-adc108s102.c @@ -77,8 +77,8 @@ * tx_buf: 8 channel read commands, plus 1 dummy command * rx_buf: 1 dummy response, 8 channel responses */ - __be16 rx_buf[9] ____cacheline_aligned; - __be16 tx_buf[9] ____cacheline_aligned; + __be16 rx_buf[9] __aligned(IIO_DMA_MINALIGN); + __be16 tx_buf[9] __aligned(IIO_DMA_MINALIGN); }; #define ADC108S102_V_CHAN(index) \ --- linux-5.19.0.orig/drivers/iio/adc/ti-adc12138.c +++ linux-5.19.0/drivers/iio/adc/ti-adc12138.c @@ -55,7 +55,7 @@ */ __be16 data[20] __aligned(8); - u8 tx_buf[2] ____cacheline_aligned; + u8 tx_buf[2] __aligned(IIO_DMA_MINALIGN); u8 rx_buf[2]; }; --- linux-5.19.0.orig/drivers/iio/adc/ti-adc128s052.c +++ linux-5.19.0/drivers/iio/adc/ti-adc128s052.c @@ -29,7 +29,7 @@ struct regulator *reg; struct mutex lock; - u8 buffer[2] ____cacheline_aligned; + u8 buffer[2] __aligned(IIO_DMA_MINALIGN); }; static int adc128_adc_conversion(struct adc128 *adc, u8 channel) @@ -181,13 +181,13 @@ } static const struct of_device_id adc128_of_match[] = { - { .compatible = "ti,adc128s052", }, - { .compatible = "ti,adc122s021", }, - { .compatible = "ti,adc122s051", }, - { .compatible = "ti,adc122s101", }, - { .compatible = "ti,adc124s021", }, - { .compatible = "ti,adc124s051", }, - { .compatible = "ti,adc124s101", }, + { .compatible = "ti,adc128s052", .data = (void*)0L, }, + { .compatible = "ti,adc122s021", .data = (void*)1L, }, + { .compatible = "ti,adc122s051", .data = (void*)1L, }, + { .compatible = "ti,adc122s101", .data = (void*)1L, }, + { .compatible = "ti,adc124s021", .data = (void*)2L, }, + { .compatible = "ti,adc124s051", .data = (void*)2L, }, + { .compatible = "ti,adc124s101", .data = (void*)2L, }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, adc128_of_match); --- linux-5.19.0.orig/drivers/iio/adc/ti-adc161s626.c +++ linux-5.19.0/drivers/iio/adc/ti-adc161s626.c @@ -71,7 +71,7 @@ u8 read_size; u8 shift; - u8 buffer[16] ____cacheline_aligned; + u8 buffer[16] __aligned(IIO_DMA_MINALIGN); }; static int ti_adc_read_measurement(struct ti_adc_data *data, --- linux-5.19.0.orig/drivers/iio/adc/ti-ads124s08.c +++ linux-5.19.0/drivers/iio/adc/ti-ads124s08.c @@ -106,7 +106,7 @@ * timestamp is maintained. */ u32 buffer[ADS124S08_MAX_CHANNELS + sizeof(s64)/sizeof(u32)] __aligned(8); - u8 data[5] ____cacheline_aligned; + u8 data[5] __aligned(IIO_DMA_MINALIGN); }; #define ADS124S08_CHAN(index) \ --- linux-5.19.0.orig/drivers/iio/adc/ti-ads131e08.c +++ linux-5.19.0/drivers/iio/adc/ti-ads131e08.c @@ -105,7 +105,7 @@ s64 ts __aligned(8); } tmp_buf; - u8 tx_buf[3] ____cacheline_aligned; + u8 tx_buf[3] __aligned(IIO_DMA_MINALIGN); /* * Add extra one padding byte to be able to access the last channel * value using u32 pointer --- linux-5.19.0.orig/drivers/iio/adc/ti-ads7950.c +++ linux-5.19.0/drivers/iio/adc/ti-ads7950.c @@ -102,11 +102,11 @@ unsigned int gpio_cmd_settings_bitmask; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ u16 rx_buf[TI_ADS7950_MAX_CHAN + 2 + TI_ADS7950_TIMESTAMP_SIZE] - ____cacheline_aligned; + __aligned(IIO_DMA_MINALIGN); u16 tx_buf[TI_ADS7950_MAX_CHAN + 2]; u16 single_tx; u16 single_rx; --- linux-5.19.0.orig/drivers/iio/adc/ti-ads8344.c +++ linux-5.19.0/drivers/iio/adc/ti-ads8344.c @@ -28,7 +28,7 @@ */ struct mutex lock; - u8 tx_buf ____cacheline_aligned; + u8 tx_buf __aligned(IIO_DMA_MINALIGN); u8 rx_buf[3]; }; --- linux-5.19.0.orig/drivers/iio/adc/ti-ads8688.c +++ linux-5.19.0/drivers/iio/adc/ti-ads8688.c @@ -71,7 +71,7 @@ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; enum ads8688_id { --- linux-5.19.0.orig/drivers/iio/adc/ti-tlc4541.c +++ linux-5.19.0/drivers/iio/adc/ti-tlc4541.c @@ -37,12 +37,12 @@ struct spi_message scan_single_msg; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * 2 bytes data + 6 bytes padding + 8 bytes timestamp when * call iio_push_to_buffers_with_timestamp. */ - __be16 rx_buf[8] ____cacheline_aligned; + __be16 rx_buf[8] __aligned(IIO_DMA_MINALIGN); }; struct tlc4541_chip_info { --- linux-5.19.0.orig/drivers/iio/addac/ad74413r.c +++ linux-5.19.0/drivers/iio/addac/ad74413r.c @@ -77,13 +77,13 @@ struct spi_transfer adc_samples_xfer[AD74413R_CHANNEL_MAX + 1]; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ struct { u8 rx_buf[AD74413R_FRAME_SIZE * AD74413R_CHANNEL_MAX]; s64 timestamp; - } adc_samples_buf ____cacheline_aligned; + } adc_samples_buf __aligned(IIO_DMA_MINALIGN); u8 adc_samples_tx_buf[AD74413R_FRAME_SIZE * AD74413R_CHANNEL_MAX]; u8 reg_tx_buf[AD74413R_FRAME_SIZE]; @@ -691,7 +691,7 @@ if (ret) return ret; - *val = voltage_offset * AD74413R_ADC_RESULT_MAX / voltage_range; + *val = voltage_offset * (int)AD74413R_ADC_RESULT_MAX / voltage_range; return IIO_VAL_INT; } --- linux-5.19.0.orig/drivers/iio/amplifiers/ad8366.c +++ linux-5.19.0/drivers/iio/amplifiers/ad8366.c @@ -45,10 +45,10 @@ enum ad8366_type type; struct ad8366_info *info; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - unsigned char data[2] ____cacheline_aligned; + unsigned char data[2] __aligned(IIO_DMA_MINALIGN); }; static struct ad8366_info ad8366_infos[] = { --- linux-5.19.0.orig/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c +++ linux-5.19.0/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c @@ -97,7 +97,7 @@ if (!indio_dev) return -ENOMEM; - ret = cros_ec_sensors_core_init(pdev, indio_dev, false, NULL, NULL); + ret = cros_ec_sensors_core_init(pdev, indio_dev, false, NULL); if (ret) return ret; @@ -113,7 +113,7 @@ if (ret) return ret; - return devm_iio_device_register(dev, indio_dev); + return cros_ec_sensors_core_register(dev, indio_dev, NULL); } static const struct platform_device_id cros_ec_lid_angle_ids[] = { --- linux-5.19.0.orig/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c +++ linux-5.19.0/drivers/iio/common/cros_ec_sensors/cros_ec_sensors.c @@ -235,8 +235,7 @@ return -ENOMEM; ret = cros_ec_sensors_core_init(pdev, indio_dev, true, - cros_ec_sensors_capture, - cros_ec_sensors_push_data); + cros_ec_sensors_capture); if (ret) return ret; @@ -297,7 +296,8 @@ else state->core.read_ec_sensors_data = cros_ec_sensors_read_cmd; - return devm_iio_device_register(dev, indio_dev); + return cros_ec_sensors_core_register(dev, indio_dev, + cros_ec_sensors_push_data); } static const struct platform_device_id cros_ec_sensors_ids[] = { --- linux-5.19.0.orig/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c +++ linux-5.19.0/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c @@ -234,21 +234,18 @@ /** * cros_ec_sensors_core_init() - basic initialization of the core structure - * @pdev: platform device created for the sensors + * @pdev: platform device created for the sensor * @indio_dev: iio device structure of the device * @physical_device: true if the device refers to a physical device * @trigger_capture: function pointer to call buffer is triggered, * for backward compatibility. - * @push_data: function to call when cros_ec_sensorhub receives - * a sample for that sensor. * * Return: 0 on success, -errno on failure. */ int cros_ec_sensors_core_init(struct platform_device *pdev, struct iio_dev *indio_dev, bool physical_device, - cros_ec_sensors_capture_t trigger_capture, - cros_ec_sensorhub_push_data_cb_t push_data) + cros_ec_sensors_capture_t trigger_capture) { struct device *dev = &pdev->dev; struct cros_ec_sensors_core_state *state = iio_priv(indio_dev); @@ -338,17 +335,6 @@ if (ret) return ret; - ret = cros_ec_sensorhub_register_push_data( - sensor_hub, sensor_platform->sensor_num, - indio_dev, push_data); - if (ret) - return ret; - - ret = devm_add_action_or_reset( - dev, cros_ec_sensors_core_clean, pdev); - if (ret) - return ret; - /* Timestamp coming from FIFO are in ns since boot. */ ret = iio_device_set_clock(indio_dev, CLOCK_BOOTTIME); if (ret) @@ -371,6 +357,46 @@ EXPORT_SYMBOL_GPL(cros_ec_sensors_core_init); /** + * cros_ec_sensors_core_register() - Register callback to FIFO and IIO when + * sensor is ready. + * It must be called at the end of the sensor probe routine. + * @dev: device created for the sensor + * @indio_dev: iio device structure of the device + * @push_data: function to call when cros_ec_sensorhub receives + * a sample for that sensor. + * + * Return: 0 on success, -errno on failure. + */ +int cros_ec_sensors_core_register(struct device *dev, + struct iio_dev *indio_dev, + cros_ec_sensorhub_push_data_cb_t push_data) +{ + struct cros_ec_sensor_platform *sensor_platform = dev_get_platdata(dev); + struct cros_ec_sensorhub *sensor_hub = dev_get_drvdata(dev->parent); + struct platform_device *pdev = to_platform_device(dev); + struct cros_ec_dev *ec = sensor_hub->ec; + int ret; + + ret = devm_iio_device_register(dev, indio_dev); + if (ret) + return ret; + + if (!push_data || + !cros_ec_check_features(ec, EC_FEATURE_MOTION_SENSE_FIFO)) + return 0; + + ret = cros_ec_sensorhub_register_push_data( + sensor_hub, sensor_platform->sensor_num, + indio_dev, push_data); + if (ret) + return ret; + + return devm_add_action_or_reset( + dev, cros_ec_sensors_core_clean, pdev); +} +EXPORT_SYMBOL_GPL(cros_ec_sensors_core_register); + +/** * cros_ec_motion_send_host_cmd() - send motion sense host command * @state: pointer to state information for device * @opt_length: optional length to reduce the response size, useful on the data --- linux-5.19.0.orig/drivers/iio/common/ssp_sensors/ssp.h +++ linux-5.19.0/drivers/iio/common/ssp_sensors/ssp.h @@ -221,8 +221,7 @@ struct iio_dev *sensor_devs[SSP_SENSOR_MAX]; atomic_t enable_refcount; - __le16 header_buffer[SSP_HEADER_BUFFER_SIZE / sizeof(__le16)] - ____cacheline_aligned; + __le16 header_buffer[SSP_HEADER_BUFFER_SIZE / sizeof(__le16)] __aligned(IIO_DMA_MINALIGN); }; void ssp_clean_pending_list(struct ssp_data *data); --- linux-5.19.0.orig/drivers/iio/dac/ad5064.c +++ linux-5.19.0/drivers/iio/dac/ad5064.c @@ -115,13 +115,13 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { u8 i2c[3]; __be32 spi; - } data ____cacheline_aligned; + } data __aligned(IIO_DMA_MINALIGN); }; enum ad5064_type { --- linux-5.19.0.orig/drivers/iio/dac/ad5360.c +++ linux-5.19.0/drivers/iio/dac/ad5360.c @@ -79,13 +79,13 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; enum ad5360_type { --- linux-5.19.0.orig/drivers/iio/dac/ad5421.c +++ linux-5.19.0/drivers/iio/dac/ad5421.c @@ -72,13 +72,13 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_event_spec ad5421_current_event[] = { --- linux-5.19.0.orig/drivers/iio/dac/ad5449.c +++ linux-5.19.0/drivers/iio/dac/ad5449.c @@ -68,10 +68,10 @@ uint16_t dac_cache[AD5449_MAX_CHANNELS]; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - __be16 data[2] ____cacheline_aligned; + __be16 data[2] __aligned(IIO_DMA_MINALIGN); }; enum ad5449_type { --- linux-5.19.0.orig/drivers/iio/dac/ad5504.c +++ linux-5.19.0/drivers/iio/dac/ad5504.c @@ -54,7 +54,7 @@ unsigned pwr_down_mask; unsigned pwr_down_mode; - __be16 data[2] ____cacheline_aligned; + __be16 data[2] __aligned(IIO_DMA_MINALIGN); }; /* --- linux-5.19.0.orig/drivers/iio/dac/ad5592r-base.h +++ linux-5.19.0/drivers/iio/dac/ad5592r-base.h @@ -14,6 +14,8 @@ #include #include +#include + struct device; struct ad5592r_state; @@ -65,7 +67,7 @@ u8 gpio_in; u8 gpio_val; - __be16 spi_msg ____cacheline_aligned; + __be16 spi_msg __aligned(IIO_DMA_MINALIGN); __be16 spi_msg_nop; }; --- linux-5.19.0.orig/drivers/iio/dac/ad5593r.c +++ linux-5.19.0/drivers/iio/dac/ad5593r.c @@ -13,6 +13,8 @@ #include #include +#include + #define AD5593R_MODE_CONF (0 << 4) #define AD5593R_MODE_DAC_WRITE (1 << 4) #define AD5593R_MODE_ADC_READBACK (4 << 4) @@ -20,6 +22,24 @@ #define AD5593R_MODE_GPIO_READBACK (6 << 4) #define AD5593R_MODE_REG_READBACK (7 << 4) +static int ad5593r_read_word(struct i2c_client *i2c, u8 reg, u16 *value) +{ + int ret; + u8 buf[2]; + + ret = i2c_smbus_write_byte(i2c, reg); + if (ret < 0) + return ret; + + ret = i2c_master_recv(i2c, buf, sizeof(buf)); + if (ret < 0) + return ret; + + *value = get_unaligned_be16(buf); + + return 0; +} + static int ad5593r_write_dac(struct ad5592r_state *st, unsigned chan, u16 value) { struct i2c_client *i2c = to_i2c_client(st->dev); @@ -38,13 +58,7 @@ if (val < 0) return (int) val; - val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_ADC_READBACK); - if (val < 0) - return (int) val; - - *value = (u16) val; - - return 0; + return ad5593r_read_word(i2c, AD5593R_MODE_ADC_READBACK, value); } static int ad5593r_reg_write(struct ad5592r_state *st, u8 reg, u16 value) @@ -58,25 +72,19 @@ static int ad5593r_reg_read(struct ad5592r_state *st, u8 reg, u16 *value) { struct i2c_client *i2c = to_i2c_client(st->dev); - s32 val; - - val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_REG_READBACK | reg); - if (val < 0) - return (int) val; - *value = (u16) val; - - return 0; + return ad5593r_read_word(i2c, AD5593R_MODE_REG_READBACK | reg, value); } static int ad5593r_gpio_read(struct ad5592r_state *st, u8 *value) { struct i2c_client *i2c = to_i2c_client(st->dev); - s32 val; + u16 val; + int ret; - val = i2c_smbus_read_word_swapped(i2c, AD5593R_MODE_GPIO_READBACK); - if (val < 0) - return (int) val; + ret = ad5593r_read_word(i2c, AD5593R_MODE_GPIO_READBACK, &val); + if (ret) + return ret; *value = (u8) val; --- linux-5.19.0.orig/drivers/iio/dac/ad5686.h +++ linux-5.19.0/drivers/iio/dac/ad5686.h @@ -13,6 +13,8 @@ #include #include +#include + #define AD5310_CMD(x) ((x) << 12) #define AD5683_DATA(x) ((x) << 4) @@ -137,7 +139,7 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ @@ -145,7 +147,7 @@ __be32 d32; __be16 d16; u8 d8[4]; - } data[3] ____cacheline_aligned; + } data[3] __aligned(IIO_DMA_MINALIGN); }; --- linux-5.19.0.orig/drivers/iio/dac/ad5755.c +++ linux-5.19.0/drivers/iio/dac/ad5755.c @@ -189,14 +189,14 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; enum ad5755_type { --- linux-5.19.0.orig/drivers/iio/dac/ad5761.c +++ linux-5.19.0/drivers/iio/dac/ad5761.c @@ -70,13 +70,13 @@ enum ad5761_voltage_range range; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[3] ____cacheline_aligned; + } data[3] __aligned(IIO_DMA_MINALIGN); }; static const struct ad5761_range_params ad5761_range_params[] = { --- linux-5.19.0.orig/drivers/iio/dac/ad5764.c +++ linux-5.19.0/drivers/iio/dac/ad5764.c @@ -56,13 +56,13 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; enum ad5764_type { --- linux-5.19.0.orig/drivers/iio/dac/ad5766.c +++ linux-5.19.0/drivers/iio/dac/ad5766.c @@ -123,7 +123,7 @@ u32 d32; u16 w16[2]; u8 b8[4]; - } data[3] ____cacheline_aligned; + } data[3] __aligned(IIO_DMA_MINALIGN); }; struct ad5766_span_tbl { --- linux-5.19.0.orig/drivers/iio/dac/ad5770r.c +++ linux-5.19.0/drivers/iio/dac/ad5770r.c @@ -140,7 +140,7 @@ bool ch_pwr_down[AD5770R_MAX_CHANNELS]; bool internal_ref; bool external_res; - u8 transf_buf[2] ____cacheline_aligned; + u8 transf_buf[2] __aligned(IIO_DMA_MINALIGN); }; static const struct regmap_config ad5770r_spi_regmap_config = { --- linux-5.19.0.orig/drivers/iio/dac/ad5791.c +++ linux-5.19.0/drivers/iio/dac/ad5791.c @@ -95,7 +95,7 @@ union { __be32 d32; u8 d8[4]; - } data[3] ____cacheline_aligned; + } data[3] __aligned(IIO_DMA_MINALIGN); }; enum ad5791_supported_device_ids { --- linux-5.19.0.orig/drivers/iio/dac/ad7293.c +++ linux-5.19.0/drivers/iio/dac/ad7293.c @@ -144,7 +144,7 @@ struct regulator *reg_avdd; struct regulator *reg_vdrive; u8 page_select; - u8 data[3] ____cacheline_aligned; + u8 data[3] __aligned(IIO_DMA_MINALIGN); }; static int ad7293_page_select(struct ad7293_state *st, unsigned int reg) --- linux-5.19.0.orig/drivers/iio/dac/ad7303.c +++ linux-5.19.0/drivers/iio/dac/ad7303.c @@ -44,10 +44,10 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - __be16 data ____cacheline_aligned; + __be16 data __aligned(IIO_DMA_MINALIGN); }; static int ad7303_write(struct ad7303_state *st, unsigned int chan, --- linux-5.19.0.orig/drivers/iio/dac/ad8801.c +++ linux-5.19.0/drivers/iio/dac/ad8801.c @@ -26,7 +26,7 @@ struct regulator *vrefh_reg; struct regulator *vrefl_reg; - __be16 data ____cacheline_aligned; + __be16 data __aligned(IIO_DMA_MINALIGN); }; static int ad8801_spi_write(struct ad8801_state *state, --- linux-5.19.0.orig/drivers/iio/dac/ltc2688.c +++ linux-5.19.0/drivers/iio/dac/ltc2688.c @@ -91,10 +91,10 @@ struct mutex lock; int vref; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - u8 tx_data[6] ____cacheline_aligned; + u8 tx_data[6] __aligned(IIO_DMA_MINALIGN); u8 rx_data[3]; }; --- linux-5.19.0.orig/drivers/iio/dac/mcp4922.c +++ linux-5.19.0/drivers/iio/dac/mcp4922.c @@ -29,7 +29,7 @@ unsigned int value[MCP4922_NUM_CHANNELS]; unsigned int vref_mv; struct regulator *vref_reg; - u8 mosi[2] ____cacheline_aligned; + u8 mosi[2] __aligned(IIO_DMA_MINALIGN); }; #define MCP4922_CHAN(chan, bits) { \ --- linux-5.19.0.orig/drivers/iio/dac/ti-dac082s085.c +++ linux-5.19.0/drivers/iio/dac/ti-dac082s085.c @@ -55,7 +55,7 @@ bool powerdown; u8 powerdown_mode; u8 resolution; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; #define WRITE_NOT_UPDATE(chan) (0x00 | (chan) << 6) --- linux-5.19.0.orig/drivers/iio/dac/ti-dac5571.c +++ linux-5.19.0/drivers/iio/dac/ti-dac5571.c @@ -52,7 +52,7 @@ struct dac5571_spec const *spec; int (*dac5571_cmd)(struct dac5571_data *data, int channel, u16 val); int (*dac5571_pwrdwn)(struct dac5571_data *data, int channel, u8 pwrdwn); - u8 buf[3] ____cacheline_aligned; + u8 buf[3] __aligned(IIO_DMA_MINALIGN); }; #define DAC5571_POWERDOWN(mode) ((mode) + 1) --- linux-5.19.0.orig/drivers/iio/dac/ti-dac7311.c +++ linux-5.19.0/drivers/iio/dac/ti-dac7311.c @@ -52,7 +52,7 @@ bool powerdown; u8 powerdown_mode; u8 resolution; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; static u8 ti_dac_get_power(struct ti_dac_chip *ti_dac, bool powerdown) --- linux-5.19.0.orig/drivers/iio/dac/ti-dac7612.c +++ linux-5.19.0/drivers/iio/dac/ti-dac7612.c @@ -31,10 +31,10 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - uint8_t data[2] ____cacheline_aligned; + uint8_t data[2] __aligned(IIO_DMA_MINALIGN); }; static int dac7612_cmd_single(struct dac7612 *priv, int channel, u16 val) --- linux-5.19.0.orig/drivers/iio/frequency/ad9523.c +++ linux-5.19.0/drivers/iio/frequency/ad9523.c @@ -287,13 +287,13 @@ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the - * transfer buffers to live in their own cache lines. + * DMA (thus cache coherency maintenance) may require that + * transfer buffers live in their own cache lines. */ union { __be32 d32; u8 d8[4]; - } data[2] ____cacheline_aligned; + } data[2] __aligned(IIO_DMA_MINALIGN); }; static int ad9523_read(struct iio_dev *indio_dev, unsigned int addr) --- linux-5.19.0.orig/drivers/iio/frequency/adf4350.c +++ linux-5.19.0/drivers/iio/frequency/adf4350.c @@ -56,10 +56,10 @@ */ struct mutex lock; /* - * DMA (thus cache coherency maintenance) requires the - * transfer buffers to live in their own cache lines. + * DMA (thus cache coherency maintenance) may require that + * transfer buffers live in their own cache lines. */ - __be32 val ____cacheline_aligned; + __be32 val __aligned(IIO_DMA_MINALIGN); }; static struct adf4350_platform_data default_pdata = { --- linux-5.19.0.orig/drivers/iio/frequency/adf4371.c +++ linux-5.19.0/drivers/iio/frequency/adf4371.c @@ -175,7 +175,7 @@ unsigned int mod2; unsigned int rf_div_sel; unsigned int ref_div_factor; - u8 buf[10] ____cacheline_aligned; + u8 buf[10] __aligned(IIO_DMA_MINALIGN); }; static unsigned long long adf4371_pll_fract_n_get_rate(struct adf4371_state *st, --- linux-5.19.0.orig/drivers/iio/frequency/admv1013.c +++ linux-5.19.0/drivers/iio/frequency/admv1013.c @@ -100,7 +100,7 @@ unsigned int input_mode; unsigned int quad_se_mode; bool det_en; - u8 data[3] ____cacheline_aligned; + u8 data[3] __aligned(IIO_DMA_MINALIGN); }; static int __admv1013_spi_read(struct admv1013_state *st, unsigned int reg, --- linux-5.19.0.orig/drivers/iio/frequency/admv1014.c +++ linux-5.19.0/drivers/iio/frequency/admv1014.c @@ -127,7 +127,7 @@ unsigned int quad_se_mode; unsigned int p1db_comp; bool det_en; - u8 data[3] ____cacheline_aligned; + u8 data[3] __aligned(IIO_DMA_MINALIGN); }; static const int mixer_vgate_table[] = {106, 107, 108, 110, 111, 112, 113, 114, --- linux-5.19.0.orig/drivers/iio/frequency/admv4420.c +++ linux-5.19.0/drivers/iio/frequency/admv4420.c @@ -113,7 +113,7 @@ struct admv4420_n_counter n_counter; enum admv4420_mux_sel mux_sel; struct mutex lock; - u8 transf_buf[4] ____cacheline_aligned; + u8 transf_buf[4] __aligned(IIO_DMA_MINALIGN); }; static const struct regmap_config admv4420_regmap_config = { --- linux-5.19.0.orig/drivers/iio/frequency/adrf6780.c +++ linux-5.19.0/drivers/iio/frequency/adrf6780.c @@ -86,7 +86,7 @@ bool uc_bias_en; bool lo_sideband; bool vdet_out_en; - u8 data[3] ____cacheline_aligned; + u8 data[3] __aligned(IIO_DMA_MINALIGN); }; static int __adrf6780_spi_read(struct adrf6780_state *st, unsigned int reg, --- linux-5.19.0.orig/drivers/iio/gyro/adis16080.c +++ linux-5.19.0/drivers/iio/gyro/adis16080.c @@ -45,7 +45,7 @@ const struct adis16080_chip_info *info; struct mutex lock; - __be16 buf ____cacheline_aligned; + __be16 buf __aligned(IIO_DMA_MINALIGN); }; static int adis16080_read_sample(struct iio_dev *indio_dev, --- linux-5.19.0.orig/drivers/iio/gyro/adis16130.c +++ linux-5.19.0/drivers/iio/gyro/adis16130.c @@ -41,7 +41,7 @@ struct adis16130_state { struct spi_device *us; struct mutex buf_lock; - u8 buf[4] ____cacheline_aligned; + u8 buf[4] __aligned(IIO_DMA_MINALIGN); }; static int adis16130_spi_read(struct iio_dev *indio_dev, u8 reg_addr, u32 *val) --- linux-5.19.0.orig/drivers/iio/gyro/adxrs450.c +++ linux-5.19.0/drivers/iio/gyro/adxrs450.c @@ -73,7 +73,7 @@ struct adxrs450_state { struct spi_device *us; struct mutex buf_lock; - __be32 tx ____cacheline_aligned; + __be32 tx __aligned(IIO_DMA_MINALIGN); __be32 rx; }; --- linux-5.19.0.orig/drivers/iio/gyro/fxas21002c_core.c +++ linux-5.19.0/drivers/iio/gyro/fxas21002c_core.c @@ -150,10 +150,10 @@ struct regulator *vddio; /* - * DMA (thus cache coherency maintenance) requires the - * transfer buffers to live in their own cache lines. + * DMA (thus cache coherency maintenance) may require the + * transfer buffers live in their own cache lines. */ - s16 buffer[8] ____cacheline_aligned; + s16 buffer[8] __aligned(IIO_DMA_MINALIGN); }; enum fxas21002c_channel_index { --- linux-5.19.0.orig/drivers/iio/health/afe4403.c +++ linux-5.19.0/drivers/iio/health/afe4403.c @@ -245,14 +245,14 @@ int *val, int *val2, long mask) { struct afe4403_data *afe = iio_priv(indio_dev); - unsigned int reg = afe4403_channel_values[chan->address]; - unsigned int field = afe4403_channel_leds[chan->address]; + unsigned int reg, field; int ret; switch (chan->type) { case IIO_INTENSITY: switch (mask) { case IIO_CHAN_INFO_RAW: + reg = afe4403_channel_values[chan->address]; ret = afe4403_read(afe, reg, val); if (ret) return ret; @@ -262,6 +262,7 @@ case IIO_CURRENT: switch (mask) { case IIO_CHAN_INFO_RAW: + field = afe4403_channel_leds[chan->address]; ret = regmap_field_read(afe->fields[field], val); if (ret) return ret; --- linux-5.19.0.orig/drivers/iio/health/afe4404.c +++ linux-5.19.0/drivers/iio/health/afe4404.c @@ -250,20 +250,20 @@ int *val, int *val2, long mask) { struct afe4404_data *afe = iio_priv(indio_dev); - unsigned int value_reg = afe4404_channel_values[chan->address]; - unsigned int led_field = afe4404_channel_leds[chan->address]; - unsigned int offdac_field = afe4404_channel_offdacs[chan->address]; + unsigned int value_reg, led_field, offdac_field; int ret; switch (chan->type) { case IIO_INTENSITY: switch (mask) { case IIO_CHAN_INFO_RAW: + value_reg = afe4404_channel_values[chan->address]; ret = regmap_read(afe->regmap, value_reg, val); if (ret) return ret; return IIO_VAL_INT; case IIO_CHAN_INFO_OFFSET: + offdac_field = afe4404_channel_offdacs[chan->address]; ret = regmap_field_read(afe->fields[offdac_field], val); if (ret) return ret; @@ -273,6 +273,7 @@ case IIO_CURRENT: switch (mask) { case IIO_CHAN_INFO_RAW: + led_field = afe4404_channel_leds[chan->address]; ret = regmap_field_read(afe->fields[led_field], val); if (ret) return ret; @@ -295,19 +296,20 @@ int val, int val2, long mask) { struct afe4404_data *afe = iio_priv(indio_dev); - unsigned int led_field = afe4404_channel_leds[chan->address]; - unsigned int offdac_field = afe4404_channel_offdacs[chan->address]; + unsigned int led_field, offdac_field; switch (chan->type) { case IIO_INTENSITY: switch (mask) { case IIO_CHAN_INFO_OFFSET: + offdac_field = afe4404_channel_offdacs[chan->address]; return regmap_field_write(afe->fields[offdac_field], val); } break; case IIO_CURRENT: switch (mask) { case IIO_CHAN_INFO_RAW: + led_field = afe4404_channel_leds[chan->address]; return regmap_field_write(afe->fields[led_field], val); } break; --- linux-5.19.0.orig/drivers/iio/imu/adis.c +++ linux-5.19.0/drivers/iio/imu/adis.c @@ -270,23 +270,19 @@ #endif /** - * adis_enable_irq() - Enable or disable data ready IRQ + * __adis_enable_irq() - Enable or disable data ready IRQ (unlocked) * @adis: The adis device * @enable: Whether to enable the IRQ * * Returns 0 on success, negative error code otherwise */ -int adis_enable_irq(struct adis *adis, bool enable) +int __adis_enable_irq(struct adis *adis, bool enable) { - int ret = 0; + int ret; u16 msc; - mutex_lock(&adis->state_lock); - - if (adis->data->enable_irq) { - ret = adis->data->enable_irq(adis, enable); - goto out_unlock; - } + if (adis->data->enable_irq) + return adis->data->enable_irq(adis, enable); if (adis->data->unmasked_drdy) { if (enable) @@ -294,12 +290,12 @@ else disable_irq(adis->spi->irq); - goto out_unlock; + return 0; } ret = __adis_read_reg_16(adis, adis->data->msc_ctrl_reg, &msc); if (ret) - goto out_unlock; + return ret; msc |= ADIS_MSC_CTRL_DATA_RDY_POL_HIGH; msc &= ~ADIS_MSC_CTRL_DATA_RDY_DIO2; @@ -308,13 +304,9 @@ else msc &= ~ADIS_MSC_CTRL_DATA_RDY_EN; - ret = __adis_write_reg_16(adis, adis->data->msc_ctrl_reg, msc); - -out_unlock: - mutex_unlock(&adis->state_lock); - return ret; + return __adis_write_reg_16(adis, adis->data->msc_ctrl_reg, msc); } -EXPORT_SYMBOL_NS(adis_enable_irq, IIO_ADISLIB); +EXPORT_SYMBOL_NS(__adis_enable_irq, IIO_ADISLIB); /** * __adis_check_status() - Check the device for error conditions (unlocked) @@ -445,7 +437,7 @@ * with 'IRQF_NO_AUTOEN' anyways. */ if (!adis->data->unmasked_drdy) - adis_enable_irq(adis, false); + __adis_enable_irq(adis, false); if (!adis->data->prod_id_reg) return 0; --- linux-5.19.0.orig/drivers/iio/imu/fxos8700_core.c +++ linux-5.19.0/drivers/iio/imu/fxos8700_core.c @@ -167,7 +167,7 @@ struct fxos8700_data { struct regmap *regmap; struct iio_trigger *trig; - __be16 buf[FXOS8700_DATA_BUF_SIZE] ____cacheline_aligned; + __be16 buf[FXOS8700_DATA_BUF_SIZE] __aligned(IIO_DMA_MINALIGN); }; /* Regmap info */ --- linux-5.19.0.orig/drivers/iio/imu/inv_icm42600/inv_icm42600.h +++ linux-5.19.0/drivers/iio/imu/inv_icm42600/inv_icm42600.h @@ -141,7 +141,7 @@ struct inv_icm42600_suspended suspended; struct iio_dev *indio_gyro; struct iio_dev *indio_accel; - uint8_t buffer[2] ____cacheline_aligned; + uint8_t buffer[2] __aligned(IIO_DMA_MINALIGN); struct inv_icm42600_fifo fifo; struct { int64_t gyro; --- linux-5.19.0.orig/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h +++ linux-5.19.0/drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h @@ -39,7 +39,7 @@ size_t accel; size_t total; } nb; - uint8_t data[2080] ____cacheline_aligned; + uint8_t data[2080] __aligned(IIO_DMA_MINALIGN); }; /* FIFO data packet */ --- linux-5.19.0.orig/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h +++ linux-5.19.0/drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h @@ -204,7 +204,7 @@ s32 magn_raw_to_gauss[3]; struct iio_mount_matrix magn_orient; unsigned int suspended_sensors; - u8 data[INV_MPU6050_OUTPUT_DATA_SIZE] ____cacheline_aligned; + u8 data[INV_MPU6050_OUTPUT_DATA_SIZE] __aligned(IIO_DMA_MINALIGN); }; /*register and associated bit definition*/ --- linux-5.19.0.orig/drivers/iio/industrialio-core.c +++ linux-5.19.0/drivers/iio/industrialio-core.c @@ -835,7 +835,23 @@ static ssize_t iio_format_avail_range(char *buf, const int *vals, int type) { - return iio_format_list(buf, vals, type, 3, "[", "]"); + int length; + + /* + * length refers to the array size , not the number of elements. + * The purpose is to print the range [min , step ,max] so length should + * be 3 in case of int, and 6 for other types. + */ + switch (type) { + case IIO_VAL_INT: + length = 3; + break; + default: + length = 6; + break; + } + + return iio_format_list(buf, vals, type, length, "[", "]"); } static ssize_t iio_read_channel_info_avail(struct device *dev, @@ -1631,6 +1647,8 @@ iio_device_detach_buffers(indio_dev); + lockdep_unregister_key(&iio_dev_opaque->mlock_key); + ida_simple_remove(&iio_ida, iio_dev_opaque->id); kfree(iio_dev_opaque); } @@ -1653,7 +1671,7 @@ alloc_size = sizeof(struct iio_dev_opaque); if (sizeof_priv) { - alloc_size = ALIGN(alloc_size, IIO_ALIGN); + alloc_size = ALIGN(alloc_size, IIO_DMA_MINALIGN); alloc_size += sizeof_priv; } @@ -1663,7 +1681,7 @@ indio_dev = &iio_dev_opaque->indio_dev; indio_dev->priv = (char *)iio_dev_opaque + - ALIGN(sizeof(struct iio_dev_opaque), IIO_ALIGN); + ALIGN(sizeof(struct iio_dev_opaque), IIO_DMA_MINALIGN); indio_dev->dev.parent = parent; indio_dev->dev.type = &iio_device_type; @@ -1690,6 +1708,9 @@ INIT_LIST_HEAD(&iio_dev_opaque->buffer_list); INIT_LIST_HEAD(&iio_dev_opaque->ioctl_handlers); + lockdep_register_key(&iio_dev_opaque->mlock_key); + lockdep_set_class(&indio_dev->mlock, &iio_dev_opaque->mlock_key); + return indio_dev; } EXPORT_SYMBOL(iio_device_alloc); --- linux-5.19.0.orig/drivers/iio/industrialio-event.c +++ linux-5.19.0/drivers/iio/industrialio-event.c @@ -550,7 +550,7 @@ ret = iio_device_register_sysfs_group(indio_dev, &ev_int->group); if (ret) - goto error_free_setup_event_lines; + goto error_free_group_attrs; ev_int->ioctl_handler.ioctl = iio_event_ioctl; iio_device_ioctl_handler_register(&iio_dev_opaque->indio_dev, @@ -558,6 +558,8 @@ return 0; +error_free_group_attrs: + kfree(ev_int->group.attrs); error_free_setup_event_lines: iio_free_chan_devattr_list(&ev_int->dev_attr_list); kfree(ev_int); --- linux-5.19.0.orig/drivers/iio/industrialio-sw-trigger.c +++ linux-5.19.0/drivers/iio/industrialio-sw-trigger.c @@ -58,8 +58,12 @@ t->group = configfs_register_default_group(iio_triggers_group, t->name, &iio_trigger_type_group_type); - if (IS_ERR(t->group)) + if (IS_ERR(t->group)) { + mutex_lock(&iio_trigger_types_lock); + list_del(&t->list); + mutex_unlock(&iio_trigger_types_lock); ret = PTR_ERR(t->group); + } return ret; } --- linux-5.19.0.orig/drivers/iio/inkern.c +++ linux-5.19.0/drivers/iio/inkern.c @@ -165,9 +165,10 @@ idev = bus_find_device(&iio_bus_type, NULL, iiospec.np, iio_dev_node_match); - of_node_put(iiospec.np); - if (idev == NULL) + if (idev == NULL) { + of_node_put(iiospec.np); return -EPROBE_DEFER; + } indio_dev = dev_to_iio_dev(idev); channel->indio_dev = indio_dev; @@ -175,6 +176,7 @@ index = indio_dev->info->of_xlate(indio_dev, &iiospec); else index = __of_iio_simple_xlate(indio_dev, &iiospec); + of_node_put(iiospec.np); if (index < 0) goto err_put; channel->channel = &indio_dev->channels[index]; @@ -410,6 +412,8 @@ channel = of_iio_channel_get_by_name(np, channel_name); if (IS_ERR(channel)) return channel; + if (!channel) + return ERR_PTR(-ENODEV); ret = devm_add_action_or_reset(dev, devm_iio_channel_free, channel); if (ret) --- linux-5.19.0.orig/drivers/iio/light/Kconfig +++ linux-5.19.0/drivers/iio/light/Kconfig @@ -293,6 +293,8 @@ tristate "ROHM RPR0521 ALS and proximity sensor driver" depends on I2C select REGMAP_I2C + select IIO_BUFFER + select IIO_TRIGGERED_BUFFER help Say Y here if you want to build support for ROHM's RPR0521 ambient light and proximity sensor device. --- linux-5.19.0.orig/drivers/iio/light/apds9960.c +++ linux-5.19.0/drivers/iio/light/apds9960.c @@ -54,9 +54,6 @@ #define APDS9960_REG_CONTROL_PGAIN_MASK_SHIFT 2 #define APDS9960_REG_CONFIG_2 0x90 -#define APDS9960_REG_CONFIG_2_GGAIN_MASK 0x60 -#define APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT 5 - #define APDS9960_REG_ID 0x92 #define APDS9960_REG_STATUS 0x93 @@ -77,6 +74,9 @@ #define APDS9960_REG_GCONF_1_GFIFO_THRES_MASK_SHIFT 6 #define APDS9960_REG_GCONF_2 0xa3 +#define APDS9960_REG_GCONF_2_GGAIN_MASK 0x60 +#define APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT 5 + #define APDS9960_REG_GOFFSET_U 0xa4 #define APDS9960_REG_GOFFSET_D 0xa5 #define APDS9960_REG_GPULSE 0xa6 @@ -396,9 +396,9 @@ } ret = regmap_update_bits(data->regmap, - APDS9960_REG_CONFIG_2, - APDS9960_REG_CONFIG_2_GGAIN_MASK, - idx << APDS9960_REG_CONFIG_2_GGAIN_MASK_SHIFT); + APDS9960_REG_GCONF_2, + APDS9960_REG_GCONF_2_GGAIN_MASK, + idx << APDS9960_REG_GCONF_2_GGAIN_MASK_SHIFT); if (!ret) data->pxs_gain = idx; mutex_unlock(&data->lock); --- linux-5.19.0.orig/drivers/iio/light/cm32181.c +++ linux-5.19.0/drivers/iio/light/cm32181.c @@ -460,6 +460,8 @@ return PTR_ERR(client); } + i2c_set_clientdata(client, indio_dev); + cm32181 = iio_priv(indio_dev); cm32181->client = client; cm32181->dev = dev; @@ -486,6 +488,25 @@ return 0; } +static int cm32181_suspend(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + + return i2c_smbus_write_word_data(client, CM32181_REG_ADDR_CMD, + CM32181_CMD_ALS_DISABLE); +} + +static int cm32181_resume(struct device *dev) +{ + struct i2c_client *client = to_i2c_client(dev); + struct cm32181_chip *cm32181 = iio_priv(dev_get_drvdata(dev)); + + return i2c_smbus_write_word_data(client, CM32181_REG_ADDR_CMD, + cm32181->conf_regs[CM32181_REG_ADDR_CMD]); +} + +DEFINE_SIMPLE_DEV_PM_OPS(cm32181_pm_ops, cm32181_suspend, cm32181_resume); + static const struct of_device_id cm32181_of_match[] = { { .compatible = "capella,cm3218" }, { .compatible = "capella,cm32181" }, @@ -506,6 +527,7 @@ .name = "cm32181", .acpi_match_table = ACPI_PTR(cm32181_acpi_match), .of_match_table = cm32181_of_match, + .pm = pm_sleep_ptr(&cm32181_pm_ops), }, .probe_new = cm32181_probe, }; --- linux-5.19.0.orig/drivers/iio/light/cm3605.c +++ linux-5.19.0/drivers/iio/light/cm3605.c @@ -226,8 +226,10 @@ } irq = platform_get_irq(pdev, 0); - if (irq < 0) - return dev_err_probe(dev, irq, "failed to get irq\n"); + if (irq < 0) { + ret = dev_err_probe(dev, irq, "failed to get irq\n"); + goto out_disable_aset; + } ret = devm_request_threaded_irq(dev, irq, cm3605_prox_irq, NULL, 0, "cm3605", indio_dev); --- linux-5.19.0.orig/drivers/iio/light/cros_ec_light_prox.c +++ linux-5.19.0/drivers/iio/light/cros_ec_light_prox.c @@ -181,8 +181,7 @@ return -ENOMEM; ret = cros_ec_sensors_core_init(pdev, indio_dev, true, - cros_ec_sensors_capture, - cros_ec_sensors_push_data); + cros_ec_sensors_capture); if (ret) return ret; @@ -240,7 +239,8 @@ state->core.read_ec_sensors_data = cros_ec_sensors_read_cmd; - return devm_iio_device_register(dev, indio_dev); + return cros_ec_sensors_core_register(dev, indio_dev, + cros_ec_sensors_push_data); } static const struct platform_device_id cros_ec_light_prox_ids[] = { --- linux-5.19.0.orig/drivers/iio/light/isl29028.c +++ linux-5.19.0/drivers/iio/light/isl29028.c @@ -625,7 +625,7 @@ ISL29028_POWER_OFF_DELAY_MS); pm_runtime_use_autosuspend(&client->dev); - ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); + ret = iio_device_register(indio_dev); if (ret < 0) { dev_err(&client->dev, "%s(): iio registration failed with error %d\n", --- linux-5.19.0.orig/drivers/iio/light/tsl2583.c +++ linux-5.19.0/drivers/iio/light/tsl2583.c @@ -858,7 +858,7 @@ TSL2583_POWER_OFF_DELAY_MS); pm_runtime_use_autosuspend(&clientp->dev); - ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev); + ret = iio_device_register(indio_dev); if (ret) { dev_err(&clientp->dev, "%s: iio registration failed\n", __func__); --- linux-5.19.0.orig/drivers/iio/magnetometer/yamaha-yas530.c +++ linux-5.19.0/drivers/iio/magnetometer/yamaha-yas530.c @@ -132,7 +132,7 @@ unsigned int version; char name[16]; struct yas5xx_calibration calibration; - u8 hard_offsets[3]; + s8 hard_offsets[3]; struct iio_mount_matrix orientation; struct regmap *map; struct regulator_bulk_data regs[2]; --- linux-5.19.0.orig/drivers/iio/potentiometer/ad5110.c +++ linux-5.19.0/drivers/iio/potentiometer/ad5110.c @@ -63,10 +63,10 @@ struct mutex lock; const struct ad5110_cfg *cfg; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. */ - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec ad5110_channels[] = { --- linux-5.19.0.orig/drivers/iio/potentiometer/ad5272.c +++ linux-5.19.0/drivers/iio/potentiometer/ad5272.c @@ -50,7 +50,7 @@ struct i2c_client *client; struct mutex lock; const struct ad5272_cfg *cfg; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec ad5272_channel = { --- linux-5.19.0.orig/drivers/iio/potentiometer/max5481.c +++ linux-5.19.0/drivers/iio/potentiometer/max5481.c @@ -44,7 +44,7 @@ struct max5481_data { struct spi_device *spi; const struct max5481_cfg *cfg; - u8 msg[3] ____cacheline_aligned; + u8 msg[3] __aligned(IIO_DMA_MINALIGN); }; #define MAX5481_CHANNEL { \ --- linux-5.19.0.orig/drivers/iio/potentiometer/mcp41010.c +++ linux-5.19.0/drivers/iio/potentiometer/mcp41010.c @@ -60,7 +60,7 @@ const struct mcp41010_cfg *cfg; struct mutex lock; /* Protect write sequences */ unsigned int value[MCP41010_MAX_WIPERS]; /* Cache wiper values */ - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; #define MCP41010_CHANNEL(ch) { \ --- linux-5.19.0.orig/drivers/iio/potentiometer/mcp4131.c +++ linux-5.19.0/drivers/iio/potentiometer/mcp4131.c @@ -129,7 +129,7 @@ struct spi_device *spi; const struct mcp4131_cfg *cfg; struct mutex lock; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; #define MCP4131_CHANNEL(ch) { \ --- linux-5.19.0.orig/drivers/iio/pressure/cros_ec_baro.c +++ linux-5.19.0/drivers/iio/pressure/cros_ec_baro.c @@ -138,8 +138,7 @@ return -ENOMEM; ret = cros_ec_sensors_core_init(pdev, indio_dev, true, - cros_ec_sensors_capture, - cros_ec_sensors_push_data); + cros_ec_sensors_capture); if (ret) return ret; @@ -186,7 +185,8 @@ state->core.read_ec_sensors_data = cros_ec_sensors_read_cmd; - return devm_iio_device_register(dev, indio_dev); + return cros_ec_sensors_core_register(dev, indio_dev, + cros_ec_sensors_push_data); } static const struct platform_device_id cros_ec_baro_ids[] = { --- linux-5.19.0.orig/drivers/iio/pressure/dps310.c +++ linux-5.19.0/drivers/iio/pressure/dps310.c @@ -89,6 +89,7 @@ s32 c00, c10, c20, c30, c01, c11, c21; s32 pressure_raw; s32 temp_raw; + bool timeout_recovery_failed; }; static const struct iio_chan_spec dps310_channels[] = { @@ -159,6 +160,102 @@ return 0; } +/* + * Some versions of the chip will read temperatures in the ~60C range when + * it's actually ~20C. This is the manufacturer recommended workaround + * to correct the issue. The registers used below are undocumented. + */ +static int dps310_temp_workaround(struct dps310_data *data) +{ + int rc; + int reg; + + rc = regmap_read(data->regmap, 0x32, ®); + if (rc) + return rc; + + /* + * If bit 1 is set then the device is okay, and the workaround does not + * need to be applied + */ + if (reg & BIT(1)) + return 0; + + rc = regmap_write(data->regmap, 0x0e, 0xA5); + if (rc) + return rc; + + rc = regmap_write(data->regmap, 0x0f, 0x96); + if (rc) + return rc; + + rc = regmap_write(data->regmap, 0x62, 0x02); + if (rc) + return rc; + + rc = regmap_write(data->regmap, 0x0e, 0x00); + if (rc) + return rc; + + return regmap_write(data->regmap, 0x0f, 0x00); +} + +static int dps310_startup(struct dps310_data *data) +{ + int rc; + int ready; + + /* + * Set up pressure sensor in single sample, one measurement per second + * mode + */ + rc = regmap_write(data->regmap, DPS310_PRS_CFG, 0); + if (rc) + return rc; + + /* + * Set up external (MEMS) temperature sensor in single sample, one + * measurement per second mode + */ + rc = regmap_write(data->regmap, DPS310_TMP_CFG, DPS310_TMP_EXT); + if (rc) + return rc; + + /* Temp and pressure shifts are disabled when PRC <= 8 */ + rc = regmap_write_bits(data->regmap, DPS310_CFG_REG, + DPS310_PRS_SHIFT_EN | DPS310_TMP_SHIFT_EN, 0); + if (rc) + return rc; + + /* MEAS_CFG doesn't update correctly unless first written with 0 */ + rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG, + DPS310_MEAS_CTRL_BITS, 0); + if (rc) + return rc; + + /* Turn on temperature and pressure measurement in the background */ + rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG, + DPS310_MEAS_CTRL_BITS, DPS310_PRS_EN | + DPS310_TEMP_EN | DPS310_BACKGROUND); + if (rc) + return rc; + + /* + * Calibration coefficients required for reporting temperature. + * They are available 40ms after the device has started + */ + rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, + ready & DPS310_COEF_RDY, 10000, 40000); + if (rc) + return rc; + + rc = dps310_get_coefs(data); + if (rc) + return rc; + + return dps310_temp_workaround(data); +} + static int dps310_get_pres_precision(struct dps310_data *data) { int rc; @@ -297,11 +394,69 @@ return scale_factors[ilog2(rc)]; } +static int dps310_reset_wait(struct dps310_data *data) +{ + int rc; + + rc = regmap_write(data->regmap, DPS310_RESET, DPS310_RESET_MAGIC); + if (rc) + return rc; + + /* Wait for device chip access: 2.5ms in specification */ + usleep_range(2500, 12000); + return 0; +} + +static int dps310_reset_reinit(struct dps310_data *data) +{ + int rc; + + rc = dps310_reset_wait(data); + if (rc) + return rc; + + return dps310_startup(data); +} + +static int dps310_ready_status(struct dps310_data *data, int ready_bit, int timeout) +{ + int sleep = DPS310_POLL_SLEEP_US(timeout); + int ready; + + return regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, ready & ready_bit, + sleep, timeout); +} + +static int dps310_ready(struct dps310_data *data, int ready_bit, int timeout) +{ + int rc; + + rc = dps310_ready_status(data, ready_bit, timeout); + if (rc) { + if (rc == -ETIMEDOUT && !data->timeout_recovery_failed) { + /* Reset and reinitialize the chip. */ + if (dps310_reset_reinit(data)) { + data->timeout_recovery_failed = true; + } else { + /* Try again to get sensor ready status. */ + if (dps310_ready_status(data, ready_bit, timeout)) + data->timeout_recovery_failed = true; + else + return 0; + } + } + + return rc; + } + + data->timeout_recovery_failed = false; + return 0; +} + static int dps310_read_pres_raw(struct dps310_data *data) { int rc; int rate; - int ready; int timeout; s32 raw; u8 val[3]; @@ -313,9 +468,7 @@ timeout = DPS310_POLL_TIMEOUT_US(rate); /* Poll for sensor readiness; base the timeout upon the sample rate. */ - rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, - ready & DPS310_PRS_RDY, - DPS310_POLL_SLEEP_US(timeout), timeout); + rc = dps310_ready(data, DPS310_PRS_RDY, timeout); if (rc) goto done; @@ -352,7 +505,6 @@ { int rc; int rate; - int ready; int timeout; if (mutex_lock_interruptible(&data->lock)) @@ -362,10 +514,8 @@ timeout = DPS310_POLL_TIMEOUT_US(rate); /* Poll for sensor readiness; base the timeout upon the sample rate. */ - rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, - ready & DPS310_TMP_RDY, - DPS310_POLL_SLEEP_US(timeout), timeout); - if (rc < 0) + rc = dps310_ready(data, DPS310_TMP_RDY, timeout); + if (rc) goto done; rc = dps310_read_temp_ready(data); @@ -660,7 +810,7 @@ { struct dps310_data *data = action_data; - regmap_write(data->regmap, DPS310_RESET, DPS310_RESET_MAGIC); + dps310_reset_wait(data); } static const struct regmap_config dps310_regmap_config = { @@ -677,52 +827,12 @@ .write_raw = dps310_write_raw, }; -/* - * Some verions of chip will read temperatures in the ~60C range when - * its actually ~20C. This is the manufacturer recommended workaround - * to correct the issue. The registers used below are undocumented. - */ -static int dps310_temp_workaround(struct dps310_data *data) -{ - int rc; - int reg; - - rc = regmap_read(data->regmap, 0x32, ®); - if (rc < 0) - return rc; - - /* - * If bit 1 is set then the device is okay, and the workaround does not - * need to be applied - */ - if (reg & BIT(1)) - return 0; - - rc = regmap_write(data->regmap, 0x0e, 0xA5); - if (rc < 0) - return rc; - - rc = regmap_write(data->regmap, 0x0f, 0x96); - if (rc < 0) - return rc; - - rc = regmap_write(data->regmap, 0x62, 0x02); - if (rc < 0) - return rc; - - rc = regmap_write(data->regmap, 0x0e, 0x00); - if (rc < 0) - return rc; - - return regmap_write(data->regmap, 0x0f, 0x00); -} - static int dps310_probe(struct i2c_client *client, const struct i2c_device_id *id) { struct dps310_data *data; struct iio_dev *iio; - int rc, ready; + int rc; iio = devm_iio_device_alloc(&client->dev, sizeof(*data)); if (!iio) @@ -747,54 +857,8 @@ if (rc) return rc; - /* - * Set up pressure sensor in single sample, one measurement per second - * mode - */ - rc = regmap_write(data->regmap, DPS310_PRS_CFG, 0); - - /* - * Set up external (MEMS) temperature sensor in single sample, one - * measurement per second mode - */ - rc = regmap_write(data->regmap, DPS310_TMP_CFG, DPS310_TMP_EXT); - if (rc < 0) - return rc; - - /* Temp and pressure shifts are disabled when PRC <= 8 */ - rc = regmap_write_bits(data->regmap, DPS310_CFG_REG, - DPS310_PRS_SHIFT_EN | DPS310_TMP_SHIFT_EN, 0); - if (rc < 0) - return rc; - - /* MEAS_CFG doesn't update correctly unless first written with 0 */ - rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG, - DPS310_MEAS_CTRL_BITS, 0); - if (rc < 0) - return rc; - - /* Turn on temperature and pressure measurement in the background */ - rc = regmap_write_bits(data->regmap, DPS310_MEAS_CFG, - DPS310_MEAS_CTRL_BITS, DPS310_PRS_EN | - DPS310_TEMP_EN | DPS310_BACKGROUND); - if (rc < 0) - return rc; - - /* - * Calibration coefficients required for reporting temperature. - * They are available 40ms after the device has started - */ - rc = regmap_read_poll_timeout(data->regmap, DPS310_MEAS_CFG, ready, - ready & DPS310_COEF_RDY, 10000, 40000); - if (rc < 0) - return rc; - - rc = dps310_get_coefs(data); - if (rc < 0) - return rc; - - rc = dps310_temp_workaround(data); - if (rc < 0) + rc = dps310_startup(data); + if (rc) return rc; rc = devm_iio_device_register(&client->dev, iio); --- linux-5.19.0.orig/drivers/iio/pressure/ms5611.h +++ linux-5.19.0/drivers/iio/pressure/ms5611.h @@ -25,13 +25,6 @@ MS5607, }; -struct ms5611_chip_info { - u16 prom[MS5611_PROM_WORDS_NB]; - - int (*temp_and_pressure_compensate)(struct ms5611_chip_info *chip_info, - s32 *temp, s32 *pressure); -}; - /* * OverSampling Rate descriptor. * Warning: cmd MUST be kept aligned on a word boundary (see @@ -50,12 +43,15 @@ const struct ms5611_osr *pressure_osr; const struct ms5611_osr *temp_osr; + u16 prom[MS5611_PROM_WORDS_NB]; + int (*reset)(struct ms5611_state *st); int (*read_prom_word)(struct ms5611_state *st, int index, u16 *word); int (*read_adc_temp_and_pressure)(struct ms5611_state *st, s32 *temp, s32 *pressure); - struct ms5611_chip_info *chip_info; + int (*compensate_temp_and_pressure)(struct ms5611_state *st, s32 *temp, + s32 *pressure); struct regulator *vdd; }; --- linux-5.19.0.orig/drivers/iio/pressure/ms5611_core.c +++ linux-5.19.0/drivers/iio/pressure/ms5611_core.c @@ -85,7 +85,7 @@ struct ms5611_state *st = iio_priv(indio_dev); for (i = 0; i < MS5611_PROM_WORDS_NB; i++) { - ret = st->read_prom_word(st, i, &st->chip_info->prom[i]); + ret = st->read_prom_word(st, i, &st->prom[i]); if (ret < 0) { dev_err(&indio_dev->dev, "failed to read prom at %d\n", i); @@ -93,7 +93,7 @@ } } - if (!ms5611_prom_is_valid(st->chip_info->prom, MS5611_PROM_WORDS_NB)) { + if (!ms5611_prom_is_valid(st->prom, MS5611_PROM_WORDS_NB)) { dev_err(&indio_dev->dev, "PROM integrity check failed\n"); return -ENODEV; } @@ -114,21 +114,20 @@ return ret; } - return st->chip_info->temp_and_pressure_compensate(st->chip_info, - temp, pressure); + return st->compensate_temp_and_pressure(st, temp, pressure); } -static int ms5611_temp_and_pressure_compensate(struct ms5611_chip_info *chip_info, +static int ms5611_temp_and_pressure_compensate(struct ms5611_state *st, s32 *temp, s32 *pressure) { s32 t = *temp, p = *pressure; s64 off, sens, dt; - dt = t - (chip_info->prom[5] << 8); - off = ((s64)chip_info->prom[2] << 16) + ((chip_info->prom[4] * dt) >> 7); - sens = ((s64)chip_info->prom[1] << 15) + ((chip_info->prom[3] * dt) >> 8); + dt = t - (st->prom[5] << 8); + off = ((s64)st->prom[2] << 16) + ((st->prom[4] * dt) >> 7); + sens = ((s64)st->prom[1] << 15) + ((st->prom[3] * dt) >> 8); - t = 2000 + ((chip_info->prom[6] * dt) >> 23); + t = 2000 + ((st->prom[6] * dt) >> 23); if (t < 2000) { s64 off2, sens2, t2; @@ -154,17 +153,17 @@ return 0; } -static int ms5607_temp_and_pressure_compensate(struct ms5611_chip_info *chip_info, +static int ms5607_temp_and_pressure_compensate(struct ms5611_state *st, s32 *temp, s32 *pressure) { s32 t = *temp, p = *pressure; s64 off, sens, dt; - dt = t - (chip_info->prom[5] << 8); - off = ((s64)chip_info->prom[2] << 17) + ((chip_info->prom[4] * dt) >> 6); - sens = ((s64)chip_info->prom[1] << 16) + ((chip_info->prom[3] * dt) >> 7); + dt = t - (st->prom[5] << 8); + off = ((s64)st->prom[2] << 17) + ((st->prom[4] * dt) >> 6); + sens = ((s64)st->prom[1] << 16) + ((st->prom[3] * dt) >> 7); - t = 2000 + ((chip_info->prom[6] * dt) >> 23); + t = 2000 + ((st->prom[6] * dt) >> 23); if (t < 2000) { s64 off2, sens2, t2, tmp; @@ -342,15 +341,6 @@ static const unsigned long ms5611_scan_masks[] = {0x3, 0}; -static struct ms5611_chip_info chip_info_tbl[] = { - [MS5611] = { - .temp_and_pressure_compensate = ms5611_temp_and_pressure_compensate, - }, - [MS5607] = { - .temp_and_pressure_compensate = ms5607_temp_and_pressure_compensate, - } -}; - static const struct iio_chan_spec ms5611_channels[] = { { .type = IIO_PRESSURE, @@ -433,7 +423,20 @@ struct ms5611_state *st = iio_priv(indio_dev); mutex_init(&st->lock); - st->chip_info = &chip_info_tbl[type]; + + switch (type) { + case MS5611: + st->compensate_temp_and_pressure = + ms5611_temp_and_pressure_compensate; + break; + case MS5607: + st->compensate_temp_and_pressure = + ms5607_temp_and_pressure_compensate; + break; + default: + return -EINVAL; + } + st->temp_osr = &ms5611_avail_temp_osr[ARRAY_SIZE(ms5611_avail_temp_osr) - 1]; st->pressure_osr = --- linux-5.19.0.orig/drivers/iio/pressure/ms5611_spi.c +++ linux-5.19.0/drivers/iio/pressure/ms5611_spi.c @@ -91,7 +91,7 @@ spi_set_drvdata(spi, indio_dev); spi->mode = SPI_MODE_0; - spi->max_speed_hz = 20000000; + spi->max_speed_hz = min(spi->max_speed_hz, 20000000U); spi->bits_per_word = 8; ret = spi_setup(spi); if (ret < 0) --- linux-5.19.0.orig/drivers/iio/proximity/as3935.c +++ linux-5.19.0/drivers/iio/proximity/as3935.c @@ -65,7 +65,7 @@ u8 chan; s64 timestamp __aligned(8); } scan; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; static const struct iio_chan_spec as3935_channels[] = { --- linux-5.19.0.orig/drivers/iio/proximity/sx9324.c +++ linux-5.19.0/drivers/iio/proximity/sx9324.c @@ -93,7 +93,7 @@ #define SX9324_REG_PROX_CTRL4_AVGNEGFILT_MASK GENMASK(5, 3) #define SX9324_REG_PROX_CTRL4_AVGNEG_FILT_2 0x08 #define SX9324_REG_PROX_CTRL4_AVGPOSFILT_MASK GENMASK(2, 0) -#define SX9324_REG_PROX_CTRL3_AVGPOS_FILT_256 0x04 +#define SX9324_REG_PROX_CTRL4_AVGPOS_FILT_256 0x04 #define SX9324_REG_PROX_CTRL5 0x35 #define SX9324_REG_PROX_CTRL5_HYST_MASK GENMASK(5, 4) #define SX9324_REG_PROX_CTRL5_CLOSE_DEBOUNCE_MASK GENMASK(3, 2) @@ -810,7 +810,7 @@ { SX9324_REG_PROX_CTRL3, SX9324_REG_PROX_CTRL3_AVGDEB_2SAMPLES | SX9324_REG_PROX_CTRL3_AVGPOS_THRESH_16K }, { SX9324_REG_PROX_CTRL4, SX9324_REG_PROX_CTRL4_AVGNEG_FILT_2 | - SX9324_REG_PROX_CTRL3_AVGPOS_FILT_256 }, + SX9324_REG_PROX_CTRL4_AVGPOS_FILT_256 }, { SX9324_REG_PROX_CTRL5, 0x00 }, { SX9324_REG_PROX_CTRL6, SX9324_REG_PROX_CTRL6_PROXTHRESH_32 }, { SX9324_REG_PROX_CTRL7, SX9324_REG_PROX_CTRL6_PROXTHRESH_32 }, --- linux-5.19.0.orig/drivers/iio/resolver/ad2s1200.c +++ linux-5.19.0/drivers/iio/resolver/ad2s1200.c @@ -41,7 +41,7 @@ struct spi_device *sdev; struct gpio_desc *sample; struct gpio_desc *rdvel; - __be16 rx ____cacheline_aligned; + __be16 rx __aligned(IIO_DMA_MINALIGN); }; static int ad2s1200_read_raw(struct iio_dev *indio_dev, --- linux-5.19.0.orig/drivers/iio/resolver/ad2s90.c +++ linux-5.19.0/drivers/iio/resolver/ad2s90.c @@ -24,7 +24,7 @@ struct ad2s90_state { struct mutex lock; /* lock to protect rx buffer */ struct spi_device *sdev; - u8 rx[2] ____cacheline_aligned; + u8 rx[2] __aligned(IIO_DMA_MINALIGN); }; static int ad2s90_read_raw(struct iio_dev *indio_dev, --- linux-5.19.0.orig/drivers/iio/temperature/ltc2983.c +++ linux-5.19.0/drivers/iio/temperature/ltc2983.c @@ -204,11 +204,12 @@ u8 num_channels; u8 iio_channels; /* - * DMA (thus cache coherency maintenance) requires the + * DMA (thus cache coherency maintenance) may require the * transfer buffers to live in their own cache lines. * Holds the converted temperature */ - __be32 temp ____cacheline_aligned; + __be32 temp __aligned(IIO_DMA_MINALIGN); + __be32 chan_val; }; struct ltc2983_sensor { @@ -313,19 +314,18 @@ return 0; } -static int __ltc2983_chan_assign_common(const struct ltc2983_data *st, +static int __ltc2983_chan_assign_common(struct ltc2983_data *st, const struct ltc2983_sensor *sensor, u32 chan_val) { u32 reg = LTC2983_CHAN_START_ADDR(sensor->chan); - __be32 __chan_val; chan_val |= LTC2983_CHAN_TYPE(sensor->type); dev_dbg(&st->spi->dev, "Assign reg:0x%04X, val:0x%08X\n", reg, chan_val); - __chan_val = cpu_to_be32(chan_val); - return regmap_bulk_write(st->regmap, reg, &__chan_val, - sizeof(__chan_val)); + st->chan_val = cpu_to_be32(chan_val); + return regmap_bulk_write(st->regmap, reg, &st->chan_val, + sizeof(st->chan_val)); } static int __ltc2983_chan_custom_sensor_assign(struct ltc2983_data *st, @@ -1385,13 +1385,6 @@ return ret; } - st->iio_chan = devm_kzalloc(&st->spi->dev, - st->iio_channels * sizeof(*st->iio_chan), - GFP_KERNEL); - - if (!st->iio_chan) - return -ENOMEM; - ret = regmap_update_bits(st->regmap, LTC2983_GLOBAL_CONFIG_REG, LTC2983_NOTCH_FREQ_MASK, LTC2983_NOTCH_FREQ(st->filter_notch_freq)); @@ -1514,6 +1507,12 @@ gpiod_set_value_cansleep(gpio, 0); } + st->iio_chan = devm_kzalloc(&spi->dev, + st->iio_channels * sizeof(*st->iio_chan), + GFP_KERNEL); + if (!st->iio_chan) + return -ENOMEM; + ret = ltc2983_setup(st, true); if (ret) return ret; --- linux-5.19.0.orig/drivers/iio/temperature/max31865.c +++ linux-5.19.0/drivers/iio/temperature/max31865.c @@ -55,7 +55,7 @@ struct mutex lock; bool filter_50hz; bool three_wire; - u8 buf[2] ____cacheline_aligned; + u8 buf[2] __aligned(IIO_DMA_MINALIGN); }; static int max31865_read(struct max31865_data *data, u8 reg, --- linux-5.19.0.orig/drivers/iio/temperature/maxim_thermocouple.c +++ linux-5.19.0/drivers/iio/temperature/maxim_thermocouple.c @@ -122,7 +122,7 @@ struct spi_device *spi; const struct maxim_thermocouple_chip *chip; - u8 buffer[16] ____cacheline_aligned; + u8 buffer[16] __aligned(IIO_DMA_MINALIGN); char tc_type; }; --- linux-5.19.0.orig/drivers/iio/trigger/iio-trig-sysfs.c +++ linux-5.19.0/drivers/iio/trigger/iio-trig-sysfs.c @@ -203,9 +203,13 @@ static int __init iio_sysfs_trig_init(void) { + int ret; device_initialize(&iio_sysfs_trig_dev); dev_set_name(&iio_sysfs_trig_dev, "iio_sysfs_trigger"); - return device_add(&iio_sysfs_trig_dev); + ret = device_add(&iio_sysfs_trig_dev); + if (ret) + put_device(&iio_sysfs_trig_dev); + return ret; } module_init(iio_sysfs_trig_init); --- linux-5.19.0.orig/drivers/infiniband/Kconfig +++ linux-5.19.0/drivers/infiniband/Kconfig @@ -78,6 +78,7 @@ def_bool !HIGHMEM if INFINIBAND_USER_ACCESS || !INFINIBAND_USER_ACCESS +if !UML source "drivers/infiniband/hw/mthca/Kconfig" source "drivers/infiniband/hw/qib/Kconfig" source "drivers/infiniband/hw/cxgb4/Kconfig" @@ -93,6 +94,7 @@ source "drivers/infiniband/hw/hfi1/Kconfig" source "drivers/infiniband/hw/qedr/Kconfig" source "drivers/infiniband/sw/rdmavt/Kconfig" +endif # !UML source "drivers/infiniband/sw/rxe/Kconfig" source "drivers/infiniband/sw/siw/Kconfig" endif --- linux-5.19.0.orig/drivers/infiniband/core/Makefile +++ linux-5.19.0/drivers/infiniband/core/Makefile @@ -40,5 +40,5 @@ uverbs_std_types_srq.o \ uverbs_std_types_wq.o \ uverbs_std_types_qp.o -ib_uverbs-$(CONFIG_INFINIBAND_USER_MEM) += umem.o umem_dmabuf.o +ib_uverbs-$(CONFIG_INFINIBAND_USER_MEM) += umem.o umem_dmabuf.o peer_mem.o ib_uverbs-$(CONFIG_INFINIBAND_ON_DEMAND_PAGING) += umem_odp.o --- linux-5.19.0.orig/drivers/infiniband/core/cm.c +++ linux-5.19.0/drivers/infiniband/core/cm.c @@ -1632,14 +1632,13 @@ static void cm_format_path_lid_from_req(struct cm_req_msg *req_msg, struct sa_path_rec *primary_path, - struct sa_path_rec *alt_path) + struct sa_path_rec *alt_path, + struct ib_wc *wc) { u32 lid; if (primary_path->rec_type != SA_PATH_REC_TYPE_OPA) { - sa_path_set_dlid(primary_path, - IBA_GET(CM_REQ_PRIMARY_LOCAL_PORT_LID, - req_msg)); + sa_path_set_dlid(primary_path, wc->slid); sa_path_set_slid(primary_path, IBA_GET(CM_REQ_PRIMARY_REMOTE_PORT_LID, req_msg)); @@ -1676,7 +1675,8 @@ static void cm_format_paths_from_req(struct cm_req_msg *req_msg, struct sa_path_rec *primary_path, - struct sa_path_rec *alt_path) + struct sa_path_rec *alt_path, + struct ib_wc *wc) { primary_path->dgid = *IBA_GET_MEM_PTR(CM_REQ_PRIMARY_LOCAL_PORT_GID, req_msg); @@ -1734,7 +1734,7 @@ if (sa_path_is_roce(alt_path)) alt_path->roce.route_resolved = false; } - cm_format_path_lid_from_req(req_msg, primary_path, alt_path); + cm_format_path_lid_from_req(req_msg, primary_path, alt_path, wc); } static u16 cm_get_bth_pkey(struct cm_work *work) @@ -2148,7 +2148,7 @@ if (cm_req_has_alt_path(req_msg)) work->path[1].rec_type = work->path[0].rec_type; cm_format_paths_from_req(req_msg, &work->path[0], - &work->path[1]); + &work->path[1], work->mad_recv_wc->wc); if (cm_id_priv->av.ah_attr.type == RDMA_AH_ATTR_TYPE_ROCE) sa_path_set_dmac(&work->path[0], cm_id_priv->av.ah_attr.roce.dmac); --- linux-5.19.0.orig/drivers/infiniband/core/cma.c +++ linux-5.19.0/drivers/infiniband/core/cma.c @@ -1434,7 +1434,7 @@ return false; memset(&fl4, 0, sizeof(fl4)); - fl4.flowi4_iif = net_dev->ifindex; + fl4.flowi4_oif = net_dev->ifindex; fl4.daddr = daddr; fl4.saddr = saddr; @@ -1719,8 +1719,8 @@ } if (!validate_net_dev(*net_dev, - (struct sockaddr *)&req->listen_addr_storage, - (struct sockaddr *)&req->src_addr_storage)) { + (struct sockaddr *)&req->src_addr_storage, + (struct sockaddr *)&req->listen_addr_storage)) { id_priv = ERR_PTR(-EHOSTUNREACH); goto err; } --- linux-5.19.0.orig/drivers/infiniband/core/device.c +++ linux-5.19.0/drivers/infiniband/core/device.c @@ -2815,10 +2815,18 @@ nldev_init(); rdma_nl_register(RDMA_NL_LS, ibnl_ls_cb_table); - roce_gid_mgmt_init(); + ret = roce_gid_mgmt_init(); + if (ret) { + pr_warn("Couldn't init RoCE GID management\n"); + goto err_parent; + } return 0; +err_parent: + rdma_nl_unregister(RDMA_NL_LS); + nldev_exit(); + unregister_pernet_device(&rdma_dev_net_ops); err_compat: unregister_blocking_lsm_notifier(&ibdev_lsm_nb); err_sa: @@ -2843,8 +2851,8 @@ static void __exit ib_core_cleanup(void) { roce_gid_mgmt_cleanup(); - nldev_exit(); rdma_nl_unregister(RDMA_NL_LS); + nldev_exit(); unregister_pernet_device(&rdma_dev_net_ops); unregister_blocking_lsm_notifier(&ibdev_lsm_nb); ib_sa_cleanup(); --- linux-5.19.0.orig/drivers/infiniband/core/ib_peer_mem.h +++ linux-5.19.0/drivers/infiniband/core/ib_peer_mem.h @@ -0,0 +1,65 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ +/* + * Copyright (c) 2014-2020, Mellanox Technologies. All rights reserved. + */ +#ifndef RDMA_IB_PEER_MEM_H +#define RDMA_IB_PEER_MEM_H + +#include +#include +#include +#include + +struct ib_peer_memory_statistics { + atomic64_t num_alloc_mrs; + atomic64_t num_dealloc_mrs; + atomic64_t num_reg_pages; + atomic64_t num_dereg_pages; + atomic64_t num_reg_bytes; + atomic64_t num_dereg_bytes; + unsigned long num_free_callbacks; +}; + +struct ib_peer_memory_client { + struct kobject kobj; + refcount_t usecnt; + struct completion usecnt_zero; + const struct peer_memory_client *peer_mem; + struct list_head core_peer_list; + struct ib_peer_memory_statistics stats; + struct xarray umem_xa; + u32 xa_cyclic_next; + bool invalidation_required; +}; + +enum ib_umem_mapped_state { + UMEM_PEER_UNMAPPED, + UMEM_PEER_MAPPED, + UMEM_PEER_INVALIDATED, +}; + +struct ib_umem_peer { + struct ib_umem umem; + struct kref kref; + /* peer memory that manages this umem */ + struct ib_peer_memory_client *ib_peer_client; + void *peer_client_context; + umem_invalidate_func_t invalidation_func; + void *invalidation_private; + struct mutex mapping_lock; + enum ib_umem_mapped_state mapped_state; + u32 xa_id; + struct scatterlist *first_sg; + dma_addr_t first_dma_address; + unsigned int first_dma_length; + unsigned int first_length; + struct scatterlist *last_sg; + unsigned int last_dma_length; + unsigned int last_length; +}; + +struct ib_umem *ib_peer_umem_get(struct ib_umem *old_umem, int old_ret, + unsigned long peer_mem_flags); +void ib_peer_umem_release(struct ib_umem *umem); + +#endif --- linux-5.19.0.orig/drivers/infiniband/core/mad.c +++ linux-5.19.0/drivers/infiniband/core/mad.c @@ -59,9 +59,6 @@ struct ib_mad_qp_info *qp_info, struct trace_event_raw_ib_mad_send_template *entry) { - u16 pkey; - struct ib_device *dev = qp_info->port_priv->device; - u32 pnum = qp_info->port_priv->port_num; struct ib_ud_wr *wr = &mad_send_wr->send_wr; struct rdma_ah_attr attr = {}; @@ -69,8 +66,6 @@ /* These are common */ entry->sl = attr.sl; - ib_query_pkey(dev, pnum, wr->pkey_index, &pkey); - entry->pkey = pkey; entry->rqpn = wr->remote_qpn; entry->rqkey = wr->remote_qkey; entry->dlid = rdma_ah_get_dlid(&attr); --- linux-5.19.0.orig/drivers/infiniband/core/nldev.c +++ linux-5.19.0/drivers/infiniband/core/nldev.c @@ -513,7 +513,7 @@ /* In create_qp() port is not set yet */ if (qp->port && nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, qp->port)) - return -EINVAL; + return -EMSGSIZE; ret = nla_put_u32(msg, RDMA_NLDEV_ATTR_RES_LQPN, qp->qp_num); if (ret) @@ -552,7 +552,7 @@ struct rdma_cm_id *cm_id = &id_priv->id; if (port && port != cm_id->port_num) - return 0; + return -EAGAIN; if (cm_id->port_num && nla_put_u32(msg, RDMA_NLDEV_ATTR_PORT_INDEX, cm_id->port_num)) @@ -894,6 +894,8 @@ int ret = 0; table_attr = nla_nest_start(msg, RDMA_NLDEV_ATTR_RES_QP); + if (!table_attr) + return -EMSGSIZE; rt = &counter->device->res[RDMA_RESTRACK_QP]; xa_lock(&rt->xa); @@ -2537,7 +2539,7 @@ rdma_nl_register(RDMA_NL_NLDEV, nldev_cb_table); } -void __exit nldev_exit(void) +void nldev_exit(void) { rdma_nl_unregister(RDMA_NL_NLDEV); } --- linux-5.19.0.orig/drivers/infiniband/core/peer_mem.c +++ linux-5.19.0/drivers/infiniband/core/peer_mem.c @@ -0,0 +1,689 @@ +// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB +/* + * Copyright (c) 2014-2020, Mellanox Technologies. All rights reserved. + */ + +#include +#include +#include +#include "ib_peer_mem.h" + +static DEFINE_MUTEX(peer_memory_mutex); +static LIST_HEAD(peer_memory_list); +static struct kobject *peers_kobj; +#define PEER_NO_INVALIDATION_ID U32_MAX + +static int ib_invalidate_peer_memory(void *reg_handle, u64 core_context); + +struct peer_mem_attribute { + struct attribute attr; + ssize_t (*show)(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf); + ssize_t (*store)(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, const char *buf, + size_t count); +}; +#define PEER_ATTR_RO(_name) \ + struct peer_mem_attribute peer_attr_ ## _name = __ATTR_RO(_name) + +static ssize_t version_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf(buf, PAGE_SIZE, "%s\n", + ib_peer_client->peer_mem->version); +} +static PEER_ATTR_RO(version); + +static ssize_t num_alloc_mrs_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_alloc_mrs)); +} +static PEER_ATTR_RO(num_alloc_mrs); + +static ssize_t +num_dealloc_mrs_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) + +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_dealloc_mrs)); +} +static PEER_ATTR_RO(num_dealloc_mrs); + +static ssize_t num_reg_pages_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_reg_pages)); +} +static PEER_ATTR_RO(num_reg_pages); + +static ssize_t +num_dereg_pages_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_dereg_pages)); +} +static PEER_ATTR_RO(num_dereg_pages); + +static ssize_t num_reg_bytes_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_reg_bytes)); +} +static PEER_ATTR_RO(num_reg_bytes); + +static ssize_t +num_dereg_bytes_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf( + buf, PAGE_SIZE, "%llu\n", + (u64)atomic64_read(&ib_peer_client->stats.num_dereg_bytes)); +} +static PEER_ATTR_RO(num_dereg_bytes); + +static ssize_t +num_free_callbacks_show(struct ib_peer_memory_client *ib_peer_client, + struct peer_mem_attribute *attr, char *buf) +{ + return scnprintf(buf, PAGE_SIZE, "%lu\n", + ib_peer_client->stats.num_free_callbacks); +} +static PEER_ATTR_RO(num_free_callbacks); + +static struct attribute *peer_mem_attrs[] = { + &peer_attr_version.attr, + &peer_attr_num_alloc_mrs.attr, + &peer_attr_num_dealloc_mrs.attr, + &peer_attr_num_reg_pages.attr, + &peer_attr_num_dereg_pages.attr, + &peer_attr_num_reg_bytes.attr, + &peer_attr_num_dereg_bytes.attr, + &peer_attr_num_free_callbacks.attr, + NULL, +}; + +static const struct attribute_group peer_mem_attr_group = { + .attrs = peer_mem_attrs, +}; + +static ssize_t peer_attr_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + struct peer_mem_attribute *peer_attr = + container_of(attr, struct peer_mem_attribute, attr); + + if (!peer_attr->show) + return -EIO; + return peer_attr->show(container_of(kobj, struct ib_peer_memory_client, + kobj), + peer_attr, buf); +} + +static const struct sysfs_ops peer_mem_sysfs_ops = { + .show = peer_attr_show, +}; + +static void ib_peer_memory_client_release(struct kobject *kobj) +{ + struct ib_peer_memory_client *ib_peer_client = + container_of(kobj, struct ib_peer_memory_client, kobj); + + kfree(ib_peer_client); +} + +static struct kobj_type peer_mem_type = { + .sysfs_ops = &peer_mem_sysfs_ops, + .release = ib_peer_memory_client_release, +}; + +static int ib_memory_peer_check_mandatory(const struct peer_memory_client + *peer_client) +{ +#define PEER_MEM_MANDATORY_FUNC(x) {offsetof(struct peer_memory_client, x), #x} + int i; + static const struct { + size_t offset; + char *name; + } mandatory_table[] = { + PEER_MEM_MANDATORY_FUNC(acquire), + PEER_MEM_MANDATORY_FUNC(get_pages), + PEER_MEM_MANDATORY_FUNC(put_pages), + PEER_MEM_MANDATORY_FUNC(dma_map), + PEER_MEM_MANDATORY_FUNC(dma_unmap), + }; + + for (i = 0; i < ARRAY_SIZE(mandatory_table); ++i) { + if (!*(void **)((void *)peer_client + + mandatory_table[i].offset)) { + pr_err("Peer memory %s is missing mandatory function %s\n", + peer_client->name, mandatory_table[i].name); + return -EINVAL; + } + } + + return 0; +} + +void * +ib_register_peer_memory_client(const struct peer_memory_client *peer_client, + invalidate_peer_memory *invalidate_callback) +{ + struct ib_peer_memory_client *ib_peer_client; + int ret; + + if (ib_memory_peer_check_mandatory(peer_client)) + return NULL; + + ib_peer_client = kzalloc(sizeof(*ib_peer_client), GFP_KERNEL); + if (!ib_peer_client) + return NULL; + kobject_init(&ib_peer_client->kobj, &peer_mem_type); + refcount_set(&ib_peer_client->usecnt, 1); + init_completion(&ib_peer_client->usecnt_zero); + ib_peer_client->peer_mem = peer_client; + xa_init_flags(&ib_peer_client->umem_xa, XA_FLAGS_ALLOC); + + /* + * If the peer wants the invalidation_callback then all memory users + * linked to that peer must support invalidation. + */ + if (invalidate_callback) { + *invalidate_callback = ib_invalidate_peer_memory; + ib_peer_client->invalidation_required = true; + } + + mutex_lock(&peer_memory_mutex); + if (!peers_kobj) { + /* Created under /sys/kernel/mm */ + peers_kobj = kobject_create_and_add("memory_peers", mm_kobj); + if (!peers_kobj) + goto err_unlock; + } + + ret = kobject_add(&ib_peer_client->kobj, peers_kobj, peer_client->name); + if (ret) + goto err_parent; + + ret = sysfs_create_group(&ib_peer_client->kobj, + &peer_mem_attr_group); + if (ret) + goto err_parent; + list_add_tail(&ib_peer_client->core_peer_list, &peer_memory_list); + mutex_unlock(&peer_memory_mutex); + return ib_peer_client; + +err_parent: + if (list_empty(&peer_memory_list)) { + kobject_put(peers_kobj); + peers_kobj = NULL; + } +err_unlock: + mutex_unlock(&peer_memory_mutex); + kobject_put(&ib_peer_client->kobj); + return NULL; +} +EXPORT_SYMBOL(ib_register_peer_memory_client); + +void ib_unregister_peer_memory_client(void *reg_handle) +{ + struct ib_peer_memory_client *ib_peer_client = reg_handle; + + mutex_lock(&peer_memory_mutex); + list_del(&ib_peer_client->core_peer_list); + if (list_empty(&peer_memory_list)) { + kobject_put(peers_kobj); + peers_kobj = NULL; + } + mutex_unlock(&peer_memory_mutex); + + /* + * Wait for all umems to be destroyed before returning. Once + * ib_unregister_peer_memory_client() returns no umems will call any + * peer_mem ops. + */ + if (refcount_dec_and_test(&ib_peer_client->usecnt)) + complete(&ib_peer_client->usecnt_zero); + wait_for_completion(&ib_peer_client->usecnt_zero); + + kobject_put(&ib_peer_client->kobj); +} +EXPORT_SYMBOL(ib_unregister_peer_memory_client); + +static struct ib_peer_memory_client * +ib_get_peer_client(unsigned long addr, size_t size, + unsigned long peer_mem_flags, void **peer_client_context) +{ + struct ib_peer_memory_client *ib_peer_client; + int ret = 0; + + mutex_lock(&peer_memory_mutex); + list_for_each_entry(ib_peer_client, &peer_memory_list, + core_peer_list) { + if (ib_peer_client->invalidation_required && + (!(peer_mem_flags & IB_PEER_MEM_INVAL_SUPP))) + continue; + ret = ib_peer_client->peer_mem->acquire(addr, size, NULL, NULL, + peer_client_context); + if (ret > 0) { + refcount_inc(&ib_peer_client->usecnt); + mutex_unlock(&peer_memory_mutex); + return ib_peer_client; + } + } + mutex_unlock(&peer_memory_mutex); + return NULL; +} + +static void ib_put_peer_client(struct ib_peer_memory_client *ib_peer_client, + void *peer_client_context) +{ + if (ib_peer_client->peer_mem->release) + ib_peer_client->peer_mem->release(peer_client_context); + if (refcount_dec_and_test(&ib_peer_client->usecnt)) + complete(&ib_peer_client->usecnt_zero); +} + +static void ib_peer_umem_kref_release(struct kref *kref) +{ + struct ib_umem_peer *umem_p = + container_of(kref, struct ib_umem_peer, kref); + + mutex_destroy(&umem_p->mapping_lock); + kfree(umem_p); +} + +static void ib_unmap_peer_client(struct ib_umem_peer *umem_p, + enum ib_umem_mapped_state cur_state, + enum ib_umem_mapped_state to_state) +{ + struct ib_peer_memory_client *ib_peer_client = umem_p->ib_peer_client; + const struct peer_memory_client *peer_mem = ib_peer_client->peer_mem; + struct ib_umem *umem = &umem_p->umem; + + if (cur_state == UMEM_PEER_MAPPED && + (to_state == UMEM_PEER_UNMAPPED || + to_state == UMEM_PEER_INVALIDATED)) { + /* + * In the invalidated state we will never touch the sg again, + * but the client might, so fix it anyhow. + */ + if (umem_p->last_sg) { + umem_p->last_sg->length = umem_p->last_length; + sg_dma_len(umem_p->last_sg) = umem_p->last_dma_length; + } + + if (umem_p->first_sg) { + umem_p->first_sg->dma_address = + umem_p->first_dma_address; + umem_p->first_sg->length = umem_p->first_length; + sg_dma_len(umem_p->first_sg) = umem_p->first_dma_length; + } + + if (to_state == UMEM_PEER_UNMAPPED) { + peer_mem->dma_unmap(&umem_p->umem.sgt_append.sgt, + umem_p->peer_client_context, + umem_p->umem.ibdev->dma_device); + peer_mem->put_pages(&umem_p->umem.sgt_append.sgt, + umem_p->peer_client_context); + } + + memset(&umem->sgt_append.sgt, 0, sizeof(umem->sgt_append)); + atomic64_inc(&ib_peer_client->stats.num_dealloc_mrs); + } + + if ((cur_state == UMEM_PEER_MAPPED && to_state == UMEM_PEER_UNMAPPED) || + (cur_state == UMEM_PEER_INVALIDATED && + to_state == UMEM_PEER_UNMAPPED)) { + atomic64_add(umem->sgt_append.sgt.nents, + &ib_peer_client->stats.num_dereg_pages); + atomic64_add(umem->length, + &ib_peer_client->stats.num_dereg_bytes); + } + umem_p->mapped_state = to_state; +} + +/* + * True if the client should do unmap itself after the invalidate callback + * returns. Clients operating in this mode need to use this locking pattern: + * + * client_invalidate: + * mutex_lock(&client_lock) + * invalidate_callback(): + * mutex_lock(mapping_lock) + * mutex_unlock(mapping_lock) + * client_dma_unmap() + * client_put_pages() + * mutex_unlock(&client_lock) + * + * ib_umem_stop_invalidation_notifier(): + * mutex_lock(mapping_lock) + * mutex_unlock(mapping_lock) + * peer_mem->dma_unmap(): + * mutex_lock(&client_lock) + * client_dma_unmap() + * mutex_unlock(&client_lock) + * peer_mem->put_pages(): + * mutex_lock(&client_lock) + * client_put_pages() + * mutex_unlock(&client_lock) + * + * ib_peer_umem_release(): + * peer_mem->release(): + * mutex_lock(&client_lock) + * mutex_unlock(&client_lock) + * + * Noting that dma_unmap/put_pages can be called even though invalidate has + * already done the unmap, and release() can be called concurrently with + * invalidate. The client must protect itself against these races. + */ +static bool ib_peer_unmap_on_invalidate(struct ib_umem_peer *umem_p) +{ + const struct peer_memory_client *peer_mem = + umem_p->ib_peer_client->peer_mem; + const struct peer_memory_client_ex *peer_mem_ex; + + if (peer_mem->version[IB_PEER_MEMORY_VER_MAX - 1] == 0) + return false; + peer_mem_ex = container_of(peer_mem, const struct peer_memory_client_ex, + client); + if (peer_mem_ex->ex_size < + offsetofend(struct peer_memory_client_ex, flags)) + return false; + return peer_mem_ex->flags & PEER_MEM_INVALIDATE_UNMAPS; +} + +static int ib_invalidate_peer_memory(void *reg_handle, u64 core_context) +{ + struct ib_peer_memory_client *ib_peer_client = reg_handle; + struct ib_umem_peer *umem_p; + + /* + * The client is not required to fence against invalidation during + * put_pages() as that would deadlock when we call put_pages() here. + * Thus the core_context cannot be a umem pointer as we have no control + * over the lifetime. Since we won't change the kABI for this to add a + * proper kref, an xarray is used. + */ + xa_lock(&ib_peer_client->umem_xa); + ib_peer_client->stats.num_free_callbacks += 1; + umem_p = xa_load(&ib_peer_client->umem_xa, core_context); + if (!umem_p) + goto out_unlock; + kref_get(&umem_p->kref); + xa_unlock(&ib_peer_client->umem_xa); + + mutex_lock(&umem_p->mapping_lock); + /* + * For flows that require invalidation the invalidation_func should not + * be NULL while the device can be doing DMA. The mapping_lock ensures + * that the device is ready to receive an invalidation before one is + * triggered here. + */ + if (umem_p->mapped_state == UMEM_PEER_MAPPED && + umem_p->invalidation_func) + umem_p->invalidation_func(&umem_p->umem, + umem_p->invalidation_private); + if (ib_peer_unmap_on_invalidate(umem_p)) + ib_unmap_peer_client(umem_p, umem_p->mapped_state, + UMEM_PEER_INVALIDATED); + else + ib_unmap_peer_client(umem_p, umem_p->mapped_state, + UMEM_PEER_UNMAPPED); + mutex_unlock(&umem_p->mapping_lock); + kref_put(&umem_p->kref, ib_peer_umem_kref_release); + return 0; + +out_unlock: + xa_unlock(&ib_peer_client->umem_xa); + return 0; +} + +void ib_umem_activate_invalidation_notifier(struct ib_umem *umem, + umem_invalidate_func_t func, + void *priv) +{ + struct ib_umem_peer *umem_p = + container_of(umem, struct ib_umem_peer, umem); + + if (WARN_ON(!umem->is_peer)) + return; + if (umem_p->xa_id == PEER_NO_INVALIDATION_ID) + return; + + umem_p->invalidation_func = func; + umem_p->invalidation_private = priv; + /* Pairs with the lock in ib_peer_umem_get() */ + mutex_unlock(&umem_p->mapping_lock); + + /* At this point func can be called asynchronously */ +} +EXPORT_SYMBOL(ib_umem_activate_invalidation_notifier); + +/* + * Caller has blocked DMA and will no longer be able to handle invalidate + * callbacks. Callers using invalidation must call this function before calling + * ib_peer_umem_release(). ib_umem_activate_invalidation_notifier() is optional + * before doing this. + */ +void ib_umem_stop_invalidation_notifier(struct ib_umem *umem) +{ + struct ib_umem_peer *umem_p = + container_of(umem, struct ib_umem_peer, umem); + bool unmap_on_invalidate = ib_peer_unmap_on_invalidate(umem_p); + enum ib_umem_mapped_state cur_state; + + if (umem_p->invalidation_func) { + mutex_lock(&umem_p->mapping_lock); + umem_p->invalidation_func = NULL; + } else if (umem_p->xa_id != PEER_NO_INVALIDATION_ID) { + mutex_lock(&umem_p->mapping_lock); + } else { + /* + * Haven't called ib_umem_activate_invalidation_notifier() yet, + * still have the lock + */ + } + + if (!unmap_on_invalidate) { + ib_unmap_peer_client(umem_p, umem_p->mapped_state, + UMEM_PEER_UNMAPPED); + } else { + /* Block ib_invalidate_peer_memory() */ + cur_state = umem_p->mapped_state; + umem_p->mapped_state = UMEM_PEER_UNMAPPED; + } + mutex_unlock(&umem_p->mapping_lock); + + if (unmap_on_invalidate) + ib_unmap_peer_client(umem_p, cur_state, UMEM_PEER_UNMAPPED); + +} +EXPORT_SYMBOL(ib_umem_stop_invalidation_notifier); + +static void fix_peer_sgls(struct ib_umem_peer *umem_p, unsigned long peer_page_size) +{ + struct ib_umem *umem = &umem_p->umem; + struct scatterlist *sg; + int i; + + for_each_sg(umem_p->umem.sgt_append.sgt.sgl, sg, + umem_p->umem.sgt_append.sgt.nents, i) { + if (i == 0) { + unsigned long offset; + + umem_p->first_sg = sg; + umem_p->first_dma_address = sg->dma_address; + umem_p->first_dma_length = sg_dma_len(sg); + umem_p->first_length = sg->length; + + offset = ALIGN_DOWN(umem->address, PAGE_SIZE) - + ALIGN_DOWN(umem->address, peer_page_size); + sg->dma_address += offset; + sg_dma_len(sg) -= offset; + sg->length -= offset; + } + + if (i == umem_p->umem.sgt_append.sgt.nents - 1) { + unsigned long trim; + + umem_p->last_sg = sg; + umem_p->last_dma_length = sg_dma_len(sg); + umem_p->last_length = sg->length; + + trim = ALIGN(umem->address + umem->length, + peer_page_size) - + ALIGN(umem->address + umem->length, PAGE_SIZE); + sg_dma_len(sg) -= trim; + sg->length -= trim; + } + } +} + +struct ib_umem *ib_peer_umem_get(struct ib_umem *old_umem, int old_ret, + unsigned long peer_mem_flags) +{ + struct ib_peer_memory_client *ib_peer_client; + unsigned long peer_page_size; + void *peer_client_context; + struct ib_umem_peer *umem_p; + int ret; + + ib_peer_client = + ib_get_peer_client(old_umem->address, old_umem->length, + peer_mem_flags, &peer_client_context); + if (!ib_peer_client) + return ERR_PTR(old_ret); + + umem_p = kzalloc(sizeof(*umem_p), GFP_KERNEL); + if (!umem_p) { + ret = -ENOMEM; + goto err_client; + } + + kref_init(&umem_p->kref); + umem_p->umem = *old_umem; + memset(&umem_p->umem.sgt_append.sgt, 0, sizeof(umem_p->umem.sgt_append)); + umem_p->umem.is_peer = 1; + umem_p->ib_peer_client = ib_peer_client; + umem_p->peer_client_context = peer_client_context; + mutex_init(&umem_p->mapping_lock); + umem_p->xa_id = PEER_NO_INVALIDATION_ID; + + mutex_lock(&umem_p->mapping_lock); + if (ib_peer_client->invalidation_required) { + ret = xa_alloc_cyclic(&ib_peer_client->umem_xa, &umem_p->xa_id, + umem_p, + XA_LIMIT(0, PEER_NO_INVALIDATION_ID - 1), + &ib_peer_client->xa_cyclic_next, + GFP_KERNEL); + if (ret < 0) + goto err_umem; + } + + /* + * We always request write permissions to the pages, to force breaking + * of any CoW during the registration of the MR. For read-only MRs we + * use the "force" flag to indicate that CoW breaking is required but + * the registration should not fail if referencing read-only areas. + */ + ret = ib_peer_client->peer_mem->get_pages(umem_p->umem.address, + umem_p->umem.length, 1, + !umem_p->umem.writable, NULL, + peer_client_context, + umem_p->xa_id); + if (ret) + goto err_xa; + + ret = ib_peer_client->peer_mem->dma_map(&umem_p->umem.sgt_append.sgt, + peer_client_context, + umem_p->umem.ibdev->dma_device, + 0, &umem_p->umem.sgt_append.sgt.nents); + if (ret) + goto err_pages; + + peer_page_size = ib_peer_client->peer_mem->get_page_size(peer_client_context); + if (peer_page_size != PAGE_SIZE) + fix_peer_sgls(umem_p, peer_page_size); + + umem_p->mapped_state = UMEM_PEER_MAPPED; + atomic64_add(umem_p->umem.sgt_append.sgt.nents, &ib_peer_client->stats.num_reg_pages); + atomic64_add(umem_p->umem.length, &ib_peer_client->stats.num_reg_bytes); + atomic64_inc(&ib_peer_client->stats.num_alloc_mrs); + + /* + * If invalidation is allowed then the caller must call + * ib_umem_activate_invalidation_notifier() or ib_peer_umem_release() to + * unlock this mutex. This call should be done after the last read to + * sg_head, once the caller is ready for the invalidation function to be + * called. + */ + if (umem_p->xa_id == PEER_NO_INVALIDATION_ID) + mutex_unlock(&umem_p->mapping_lock); + + /* + * On success the old umem is replaced with the new, larger, allocation + */ + kfree(old_umem); + return &umem_p->umem; + +err_pages: + ib_peer_client->peer_mem->put_pages(&umem_p->umem.sgt_append.sgt, + umem_p->peer_client_context); +err_xa: + if (umem_p->xa_id != PEER_NO_INVALIDATION_ID) + xa_erase(&umem_p->ib_peer_client->umem_xa, umem_p->xa_id); +err_umem: + mutex_unlock(&umem_p->mapping_lock); + kref_put(&umem_p->kref, ib_peer_umem_kref_release); +err_client: + ib_put_peer_client(ib_peer_client, peer_client_context); + return ERR_PTR(ret); +} + +void ib_peer_umem_release(struct ib_umem *umem) +{ + struct ib_umem_peer *umem_p = + container_of(umem, struct ib_umem_peer, umem); + + /* + * If ib_umem_activate_invalidation_notifier() is called then + * ib_umem_stop_invalidation_notifier() must be called before release. + */ + WARN_ON(umem_p->invalidation_func); + + /* For no invalidation cases, make sure it is unmapped */ + ib_unmap_peer_client(umem_p, umem_p->mapped_state, UMEM_PEER_UNMAPPED); + + if (umem_p->xa_id != PEER_NO_INVALIDATION_ID) + xa_erase(&umem_p->ib_peer_client->umem_xa, umem_p->xa_id); + ib_put_peer_client(umem_p->ib_peer_client, umem_p->peer_client_context); + umem_p->ib_peer_client = NULL; + + /* Must match ib_umem_release() */ + atomic64_sub(ib_umem_num_pages(umem), &umem->owning_mm->pinned_vm); + mmdrop(umem->owning_mm); + + kref_put(&umem_p->kref, ib_peer_umem_kref_release); +} + +/* Use it like this: +struct peer_memory_client_ex peer_memory_test = { + .client = { + .version = "1.0", + .version[IB_PEER_MEMORY_VER_MAX-1] = 1, + }, + .ex_size = sizeof(struct peer_memory_client_ex), + .flags = PEER_MEM_INVALIDATE_UNMAPS, +}; +*/ --- linux-5.19.0.orig/drivers/infiniband/core/restrack.c +++ linux-5.19.0/drivers/infiniband/core/restrack.c @@ -343,8 +343,6 @@ rt = &dev->res[res->type]; old = xa_erase(&rt->xa, res->id); - if (res->type == RDMA_RESTRACK_MR) - return; WARN_ON(old != res); out: --- linux-5.19.0.orig/drivers/infiniband/core/sysfs.c +++ linux-5.19.0/drivers/infiniband/core/sysfs.c @@ -1213,6 +1213,9 @@ p->port_num = port_num; kobject_init(&p->kobj, &port_type); + if (device->port_data && is_full_dev) + device->port_data[port_num].sysfs = p; + cur_group = p->groups_list; ret = alloc_port_table_group("gids", &p->groups[0], p->attrs_list, attr->gid_tbl_len, show_port_gid); @@ -1258,9 +1261,6 @@ } list_add_tail(&p->kobj.entry, &coredev->port_list); - if (device->port_data && is_full_dev) - device->port_data[port_num].sysfs = p; - return p; err_groups: @@ -1268,6 +1268,8 @@ err_del: kobject_del(&p->kobj); err_put: + if (device->port_data && is_full_dev) + device->port_data[port_num].sysfs = NULL; kobject_put(&p->kobj); return ERR_PTR(ret); } @@ -1276,14 +1278,17 @@ { bool is_full_dev = &port->ibdev->coredev == coredev; - if (port->ibdev->port_data && - port->ibdev->port_data[port->port_num].sysfs == port) - port->ibdev->port_data[port->port_num].sysfs = NULL; list_del(&port->kobj.entry); if (is_full_dev) sysfs_remove_groups(&port->kobj, port->ibdev->ops.port_groups); + sysfs_remove_groups(&port->kobj, port->groups_list); kobject_del(&port->kobj); + + if (port->ibdev->port_data && + port->ibdev->port_data[port->port_num].sysfs == port) + port->ibdev->port_data[port->port_num].sysfs = NULL; + kobject_put(&port->kobj); } --- linux-5.19.0.orig/drivers/infiniband/core/umem.c +++ linux-5.19.0/drivers/infiniband/core/umem.c @@ -45,6 +45,8 @@ #include "uverbs.h" +#include "ib_peer_mem.h" + static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int dirty) { bool make_dirty = umem->writable && dirty; @@ -137,15 +139,17 @@ EXPORT_SYMBOL(ib_umem_find_best_pgsz); /** - * ib_umem_get - Pin and DMA map userspace memory. + * __ib_umem_get - Pin and DMA map userspace memory. * * @device: IB device to connect UMEM * @addr: userspace virtual address to start at * @size: length of region to pin * @access: IB_ACCESS_xxx flags for memory being pinned + * @peer_mem_flags: IB_PEER_MEM_xxx flags for memory being used */ -struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr, - size_t size, int access) +static struct ib_umem *__ib_umem_get(struct ib_device *device, + unsigned long addr, size_t size, int access, + unsigned long peer_mem_flags) { struct ib_umem *umem; struct page **page_list; @@ -248,6 +252,26 @@ umem_release: __ib_umem_release(device, umem, 0); + + /* + * If the address belongs to peer memory client, then the first + * call to get_user_pages will fail. In this case, try to get + * these pages from the peers. + */ + //FIXME: this placement is horrible + if (ret < 0 && peer_mem_flags & IB_PEER_MEM_ALLOW) { + struct ib_umem *new_umem; + + new_umem = ib_peer_umem_get(umem, ret, peer_mem_flags); + if (IS_ERR(new_umem)) { + ret = PTR_ERR(new_umem); + goto vma; + } + umem = new_umem; + ret = 0; + goto out; + } +vma: atomic64_sub(ib_umem_num_pages(umem), &mm->pinned_vm); out: free_page((unsigned long) page_list); @@ -258,8 +282,23 @@ } return ret ? ERR_PTR(ret) : umem; } + +struct ib_umem *ib_umem_get(struct ib_device *device, unsigned long addr, + size_t size, int access) +{ + return __ib_umem_get(device, addr, size, access, 0); +} EXPORT_SYMBOL(ib_umem_get); +struct ib_umem *ib_umem_get_peer(struct ib_device *device, unsigned long addr, + size_t size, int access, + unsigned long peer_mem_flags) +{ + return __ib_umem_get(device, addr, size, access, + IB_PEER_MEM_ALLOW | peer_mem_flags); +} +EXPORT_SYMBOL(ib_umem_get_peer); + /** * ib_umem_release - release memory pinned with ib_umem_get * @umem: umem struct to release @@ -273,6 +312,8 @@ if (umem->is_odp) return ib_umem_odp_release(to_ib_umem_odp(umem)); + if (umem->is_peer) + return ib_peer_umem_release(umem); __ib_umem_release(umem->ibdev, umem, 1); atomic64_sub(ib_umem_num_pages(umem), &umem->owning_mm->pinned_vm); --- linux-5.19.0.orig/drivers/infiniband/core/umem_dmabuf.c +++ linux-5.19.0/drivers/infiniband/core/umem_dmabuf.c @@ -18,6 +18,7 @@ struct scatterlist *sg; unsigned long start, end, cur = 0; unsigned int nmap = 0; + long ret; int i; dma_resv_assert_held(umem_dmabuf->attach->dmabuf->resv); @@ -67,9 +68,14 @@ * may be not up-to-date. Wait for the exporter to finish * the migration. */ - return dma_resv_wait_timeout(umem_dmabuf->attach->dmabuf->resv, + ret = dma_resv_wait_timeout(umem_dmabuf->attach->dmabuf->resv, DMA_RESV_USAGE_KERNEL, false, MAX_SCHEDULE_TIMEOUT); + if (ret < 0) + return ret; + if (ret == 0) + return -ETIMEDOUT; + return 0; } EXPORT_SYMBOL(ib_umem_dmabuf_map_pages); --- linux-5.19.0.orig/drivers/infiniband/core/umem_odp.c +++ linux-5.19.0/drivers/infiniband/core/umem_odp.c @@ -462,7 +462,7 @@ mutex_unlock(&umem_odp->umem_mutex); out_put_mm: - mmput(owning_mm); + mmput_async(owning_mm); out_put_task: if (owning_process) put_task_struct(owning_process); --- linux-5.19.0.orig/drivers/infiniband/core/uverbs_cmd.c +++ linux-5.19.0/drivers/infiniband/core/uverbs_cmd.c @@ -739,6 +739,7 @@ mr->uobject = uobj; atomic_inc(&pd->usecnt); mr->iova = cmd.hca_va; + mr->length = cmd.length; rdma_restrack_new(&mr->res, RDMA_RESTRACK_MR); rdma_restrack_set_name(&mr->res, NULL); @@ -861,8 +862,10 @@ mr->pd = new_pd; atomic_inc(&new_pd->usecnt); } - if (cmd.flags & IB_MR_REREG_TRANS) + if (cmd.flags & IB_MR_REREG_TRANS) { mr->iova = cmd.hca_va; + mr->length = cmd.length; + } } memset(&resp, 0, sizeof(resp)); --- linux-5.19.0.orig/drivers/infiniband/core/verbs.c +++ linux-5.19.0/drivers/infiniband/core/verbs.c @@ -2149,6 +2149,8 @@ mr->pd = pd; mr->dm = NULL; atomic_inc(&pd->usecnt); + mr->iova = virt_addr; + mr->length = length; rdma_restrack_new(&mr->res, RDMA_RESTRACK_MR); rdma_restrack_parent_name(&mr->res, &pd->res); --- linux-5.19.0.orig/drivers/infiniband/hw/cxgb4/cm.c +++ linux-5.19.0/drivers/infiniband/hw/cxgb4/cm.c @@ -2468,31 +2468,24 @@ opt2 |= CCTRL_ECN_V(1); } - skb_get(skb); - rpl = cplhdr(skb); if (!is_t4(adapter_type)) { - BUILD_BUG_ON(sizeof(*rpl5) != roundup(sizeof(*rpl5), 16)); - skb_trim(skb, sizeof(*rpl5)); - rpl5 = (void *)rpl; - INIT_TP_WR(rpl5, ep->hwtid); - } else { - skb_trim(skb, sizeof(*rpl)); - INIT_TP_WR(rpl, ep->hwtid); - } - OPCODE_TID(rpl) = cpu_to_be32(MK_OPCODE_TID(CPL_PASS_ACCEPT_RPL, - ep->hwtid)); - - if (CHELSIO_CHIP_VERSION(adapter_type) > CHELSIO_T4) { u32 isn = (prandom_u32() & ~7UL) - 1; + + skb = get_skb(skb, roundup(sizeof(*rpl5), 16), GFP_KERNEL); + rpl5 = __skb_put_zero(skb, roundup(sizeof(*rpl5), 16)); + rpl = (void *)rpl5; + INIT_TP_WR_CPL(rpl5, CPL_PASS_ACCEPT_RPL, ep->hwtid); opt2 |= T5_OPT_2_VALID_F; opt2 |= CONG_CNTRL_V(CONG_ALG_TAHOE); opt2 |= T5_ISS_F; - rpl5 = (void *)rpl; - memset_after(rpl5, 0, iss); if (peer2peer) isn += 4; rpl5->iss = cpu_to_be32(isn); pr_debug("iss %u\n", be32_to_cpu(rpl5->iss)); + } else { + skb = get_skb(skb, sizeof(*rpl), GFP_KERNEL); + rpl = __skb_put_zero(skb, sizeof(*rpl)); + INIT_TP_WR_CPL(rpl, CPL_PASS_ACCEPT_RPL, ep->hwtid); } rpl->opt0 = cpu_to_be64(opt0); --- linux-5.19.0.orig/drivers/infiniband/hw/efa/efa_main.c +++ linux-5.19.0/drivers/infiniband/hw/efa/efa_main.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause /* - * Copyright 2018-2021 Amazon.com, Inc. or its affiliates. All rights reserved. + * Copyright 2018-2022 Amazon.com, Inc. or its affiliates. All rights reserved. */ #include @@ -14,10 +14,12 @@ #define PCI_DEV_ID_EFA0_VF 0xefa0 #define PCI_DEV_ID_EFA1_VF 0xefa1 +#define PCI_DEV_ID_EFA2_VF 0xefa2 static const struct pci_device_id efa_pci_tbl[] = { { PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA0_VF) }, { PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA1_VF) }, + { PCI_VDEVICE(AMAZON, PCI_DEV_ID_EFA2_VF) }, { } }; --- linux-5.19.0.orig/drivers/infiniband/hw/hfi1/affinity.c +++ linux-5.19.0/drivers/infiniband/hw/hfi1/affinity.c @@ -177,6 +177,8 @@ for (node = 0; node < node_affinity.num_possible_nodes; node++) hfi1_per_node_cntr[node] = 1; + pci_dev_put(dev); + return 0; } --- linux-5.19.0.orig/drivers/infiniband/hw/hfi1/file_ops.c +++ linux-5.19.0/drivers/infiniband/hw/hfi1/file_ops.c @@ -1179,8 +1179,10 @@ goto done; ret = init_user_ctxt(fd, uctxt); - if (ret) + if (ret) { + hfi1_free_ctxt_rcv_groups(uctxt); goto done; + } user_init(uctxt); --- linux-5.19.0.orig/drivers/infiniband/hw/hfi1/firmware.c +++ linux-5.19.0/drivers/infiniband/hw/hfi1/firmware.c @@ -1743,6 +1743,7 @@ if (!dd->platform_config.data) { dd_dev_err(dd, "%s: Missing config file\n", __func__); + ret = -EINVAL; goto bail; } ptr = (u32 *)dd->platform_config.data; @@ -1751,6 +1752,7 @@ ptr++; if (magic_num != PLATFORM_CONFIG_MAGIC_NUM) { dd_dev_err(dd, "%s: Bad config file\n", __func__); + ret = -EINVAL; goto bail; } @@ -1774,6 +1776,7 @@ if (file_length > dd->platform_config.size) { dd_dev_info(dd, "%s:File claims to be larger than read size\n", __func__); + ret = -EINVAL; goto bail; } else if (file_length < dd->platform_config.size) { dd_dev_info(dd, @@ -1794,6 +1797,7 @@ dd_dev_err(dd, "%s: Failed validation at offset %ld\n", __func__, (ptr - (u32 *) dd->platform_config.data)); + ret = -EINVAL; goto bail; } @@ -1837,6 +1841,7 @@ __func__, table_type, (ptr - (u32 *) dd->platform_config.data)); + ret = -EINVAL; goto bail; /* We don't trust this file now */ } pcfgcache->config_tables[table_type].table = ptr; @@ -1856,6 +1861,7 @@ __func__, table_type, (ptr - (u32 *)dd->platform_config.data)); + ret = -EINVAL; goto bail; /* We don't trust this file now */ } pcfgcache->config_tables[table_type].table_metadata = --- linux-5.19.0.orig/drivers/infiniband/hw/hfi1/pio.c +++ linux-5.19.0/drivers/infiniband/hw/hfi1/pio.c @@ -913,8 +913,7 @@ spin_unlock(&sc->release_lock); write_seqlock(&sc->waitlock); - if (!list_empty(&sc->piowait)) - list_move(&sc->piowait, &wake_list); + list_splice_init(&sc->piowait, &wake_list); write_sequnlock(&sc->waitlock); while (!list_empty(&wake_list)) { struct iowait *wait; --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_device.h +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_device.h @@ -202,6 +202,7 @@ struct list_head page_list; struct mutex page_mutex; struct hns_user_mmap_entry *db_mmap_entry; + u32 config; }; struct hns_roce_pd { @@ -335,6 +336,7 @@ u32 head; u32 tail; void __iomem *db_reg; + u32 ext_sge_cnt; }; struct hns_roce_sge { @@ -637,6 +639,7 @@ 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_user_mmap_entry *dwqe_mmap_entry; + u32 config; }; struct hns_roce_ib_iboe { @@ -730,7 +733,6 @@ u32 num_qps; u32 num_pi_qps; u32 reserved_qps; - int num_qpc_timer; u32 num_srqs; u32 max_wqes; u32 max_srq_wrs; --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.c +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.c @@ -82,7 +82,6 @@ HR_OPC_MAP(ATOMIC_CMP_AND_SWP, ATOM_CMP_AND_SWAP), HR_OPC_MAP(ATOMIC_FETCH_AND_ADD, ATOM_FETCH_AND_ADD), HR_OPC_MAP(SEND_WITH_INV, SEND_WITH_INV), - HR_OPC_MAP(LOCAL_INV, LOCAL_INV), HR_OPC_MAP(MASKED_ATOMIC_CMP_AND_SWP, ATOM_MSK_CMP_AND_SWAP), HR_OPC_MAP(MASKED_ATOMIC_FETCH_AND_ADD, ATOM_MSK_FETCH_AND_ADD), HR_OPC_MAP(REG_MR, FAST_REG_PMR), @@ -157,8 +156,6 @@ unsigned int *sge_idx, u32 msg_len) { struct ib_device *ibdev = &(to_hr_dev(qp->ibqp.device))->ib_dev; - unsigned int dseg_len = sizeof(struct hns_roce_v2_wqe_data_seg); - unsigned int ext_sge_sz = qp->sq.max_gs * dseg_len; unsigned int left_len_in_pg; unsigned int idx = *sge_idx; unsigned int i = 0; @@ -166,7 +163,7 @@ void *addr; void *dseg; - if (msg_len > ext_sge_sz) { + if (msg_len > qp->sq.ext_sge_cnt * HNS_ROCE_SGE_SIZE) { ibdev_err(ibdev, "no enough extended sge space for inline data.\n"); return -EINVAL; @@ -186,7 +183,7 @@ if (len <= left_len_in_pg) { memcpy(dseg, addr, len); - idx += len / dseg_len; + idx += len / HNS_ROCE_SGE_SIZE; i++; if (i >= wr->num_sge) @@ -201,7 +198,7 @@ len -= left_len_in_pg; addr += left_len_in_pg; - idx += left_len_in_pg / dseg_len; + idx += left_len_in_pg / HNS_ROCE_SGE_SIZE; dseg = hns_roce_get_extend_sge(qp, idx & (qp->sge.sge_cnt - 1)); left_len_in_pg = 1 << HNS_HW_PAGE_SHIFT; @@ -524,9 +521,6 @@ else ret = -EOPNOTSUPP; break; - case IB_WR_LOCAL_INV: - hr_reg_enable(rc_sq_wqe, RC_SEND_WQE_SO); - fallthrough; case IB_WR_SEND_WITH_INV: rc_sq_wqe->inv_key = cpu_to_le32(wr->ex.invalidate_rkey); break; @@ -1243,6 +1237,30 @@ hr_dev->cmd.state = HNS_ROCE_CMDQ_STATE_FATAL_ERR; } +static int hns_roce_cmd_err_convert_errno(u16 desc_ret) +{ + struct hns_roce_cmd_errcode errcode_table[] = { + {CMD_EXEC_SUCCESS, 0}, + {CMD_NO_AUTH, -EPERM}, + {CMD_NOT_EXIST, -EOPNOTSUPP}, + {CMD_CRQ_FULL, -EXFULL}, + {CMD_NEXT_ERR, -ENOSR}, + {CMD_NOT_EXEC, -ENOTBLK}, + {CMD_PARA_ERR, -EINVAL}, + {CMD_RESULT_ERR, -ERANGE}, + {CMD_TIMEOUT, -ETIME}, + {CMD_HILINK_ERR, -ENOLINK}, + {CMD_INFO_ILLEGAL, -ENXIO}, + {CMD_INVALID, -EBADR}, + }; + u16 i; + + for (i = 0; i < ARRAY_SIZE(errcode_table); i++) + if (desc_ret == errcode_table[i].return_status) + return errcode_table[i].errno; + return -EIO; +} + static int __hns_roce_cmq_send(struct hns_roce_dev *hr_dev, struct hns_roce_cmq_desc *desc, int num) { @@ -1288,7 +1306,7 @@ dev_err_ratelimited(hr_dev->dev, "Cmdq IO error, opcode = 0x%x, return = 0x%x.\n", desc->opcode, desc_ret); - ret = -EIO; + ret = hns_roce_cmd_err_convert_errno(desc_ret); } } else { /* FW/HW reset or incorrect number of desc */ @@ -1941,7 +1959,7 @@ caps->num_mtpts = HNS_ROCE_V2_MAX_MTPT_NUM; caps->num_pds = HNS_ROCE_V2_MAX_PD_NUM; - caps->num_qpc_timer = HNS_ROCE_V2_MAX_QPC_TIMER_NUM; + caps->qpc_timer_bt_num = HNS_ROCE_V2_MAX_QPC_TIMER_BT_NUM; caps->cqc_timer_bt_num = HNS_ROCE_V2_MAX_CQC_TIMER_BT_NUM; caps->max_qp_init_rdma = HNS_ROCE_V2_MAX_QP_INIT_RDMA; @@ -1995,13 +2013,14 @@ 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 | HNS_ROCE_CAP_FLAG_XRC; + HNS_ROCE_CAP_FLAG_QP_FLOW_CTRL; caps->gid_table_len[0] = HNS_ROCE_V2_GID_INDEX_NUM; if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP09) { caps->flags |= HNS_ROCE_CAP_FLAG_STASH | - HNS_ROCE_CAP_FLAG_DIRECT_WQE; + HNS_ROCE_CAP_FLAG_DIRECT_WQE | + HNS_ROCE_CAP_FLAG_XRC; caps->max_sq_inline = HNS_ROCE_V3_MAX_SQ_INLINE; } else { caps->max_sq_inline = HNS_ROCE_V2_MAX_SQ_INLINE; @@ -2237,7 +2256,6 @@ caps->max_rq_sg = le16_to_cpu(resp_a->max_rq_sg); caps->max_rq_sg = roundup_pow_of_two(caps->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->max_srq_sges = le16_to_cpu(resp_a->max_srq_sges); caps->max_srq_sges = roundup_pow_of_two(caps->max_srq_sges); caps->num_aeq_vectors = resp_a->num_aeq_vectors; @@ -2315,6 +2333,9 @@ caps->wqe_sge_hop_num = hr_reg_read(resp_d, PF_CAPS_D_EX_SGE_HOP_NUM); caps->wqe_rq_hop_num = hr_reg_read(resp_d, PF_CAPS_D_RQWQE_HOP_NUM); + if (!(caps->page_size_cap & PAGE_SIZE)) + caps->page_size_cap = HNS_ROCE_V2_PAGE_SIZE_SUPPORTED; + return 0; } @@ -2604,31 +2625,124 @@ spin_unlock_irqrestore(&hr_dev->dip_list_lock, flags); } -static void free_mr_exit(struct hns_roce_dev *hr_dev) +static struct ib_pd *free_mr_init_pd(struct hns_roce_dev *hr_dev) +{ + struct hns_roce_v2_priv *priv = hr_dev->priv; + struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; + struct ib_device *ibdev = &hr_dev->ib_dev; + struct hns_roce_pd *hr_pd; + struct ib_pd *pd; + + hr_pd = kzalloc(sizeof(*hr_pd), GFP_KERNEL); + if (ZERO_OR_NULL_PTR(hr_pd)) + return NULL; + pd = &hr_pd->ibpd; + pd->device = ibdev; + + if (hns_roce_alloc_pd(pd, NULL)) { + ibdev_err(ibdev, "failed to create pd for free mr.\n"); + kfree(hr_pd); + return NULL; + } + free_mr->rsv_pd = to_hr_pd(pd); + free_mr->rsv_pd->ibpd.device = &hr_dev->ib_dev; + free_mr->rsv_pd->ibpd.uobject = NULL; + free_mr->rsv_pd->ibpd.__internal_mr = NULL; + atomic_set(&free_mr->rsv_pd->ibpd.usecnt, 0); + + return pd; +} + +static struct ib_cq *free_mr_init_cq(struct hns_roce_dev *hr_dev) { struct hns_roce_v2_priv *priv = hr_dev->priv; struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; + struct ib_device *ibdev = &hr_dev->ib_dev; + struct ib_cq_init_attr cq_init_attr = {}; + struct hns_roce_cq *hr_cq; + struct ib_cq *cq; + + cq_init_attr.cqe = HNS_ROCE_FREE_MR_USED_CQE_NUM; + + hr_cq = kzalloc(sizeof(*hr_cq), GFP_KERNEL); + if (ZERO_OR_NULL_PTR(hr_cq)) + return NULL; + + cq = &hr_cq->ib_cq; + cq->device = ibdev; + + if (hns_roce_create_cq(cq, &cq_init_attr, NULL)) { + ibdev_err(ibdev, "failed to create cq for free mr.\n"); + kfree(hr_cq); + return NULL; + } + free_mr->rsv_cq = to_hr_cq(cq); + free_mr->rsv_cq->ib_cq.device = &hr_dev->ib_dev; + free_mr->rsv_cq->ib_cq.uobject = NULL; + free_mr->rsv_cq->ib_cq.comp_handler = NULL; + free_mr->rsv_cq->ib_cq.event_handler = NULL; + free_mr->rsv_cq->ib_cq.cq_context = NULL; + atomic_set(&free_mr->rsv_cq->ib_cq.usecnt, 0); + + return cq; +} + +static int free_mr_init_qp(struct hns_roce_dev *hr_dev, struct ib_cq *cq, + struct ib_qp_init_attr *init_attr, int i) +{ + struct hns_roce_v2_priv *priv = hr_dev->priv; + struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; + struct ib_device *ibdev = &hr_dev->ib_dev; + struct hns_roce_qp *hr_qp; + struct ib_qp *qp; int ret; + + hr_qp = kzalloc(sizeof(*hr_qp), GFP_KERNEL); + if (ZERO_OR_NULL_PTR(hr_qp)) + return -ENOMEM; + + qp = &hr_qp->ibqp; + qp->device = ibdev; + + ret = hns_roce_create_qp(qp, init_attr, NULL); + if (ret) { + ibdev_err(ibdev, "failed to create qp for free mr.\n"); + kfree(hr_qp); + return ret; + } + + free_mr->rsv_qp[i] = hr_qp; + free_mr->rsv_qp[i]->ibqp.recv_cq = cq; + free_mr->rsv_qp[i]->ibqp.send_cq = cq; + + return 0; +} + +static void free_mr_exit(struct hns_roce_dev *hr_dev) +{ + struct hns_roce_v2_priv *priv = hr_dev->priv; + struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; + struct ib_qp *qp; int i; for (i = 0; i < ARRAY_SIZE(free_mr->rsv_qp); i++) { if (free_mr->rsv_qp[i]) { - ret = ib_destroy_qp(free_mr->rsv_qp[i]); - if (ret) - ibdev_err(&hr_dev->ib_dev, - "failed to destroy qp in free mr.\n"); - + qp = &free_mr->rsv_qp[i]->ibqp; + hns_roce_v2_destroy_qp(qp, NULL); + kfree(free_mr->rsv_qp[i]); free_mr->rsv_qp[i] = NULL; } } if (free_mr->rsv_cq) { - ib_destroy_cq(free_mr->rsv_cq); + hns_roce_destroy_cq(&free_mr->rsv_cq->ib_cq, NULL); + kfree(free_mr->rsv_cq); free_mr->rsv_cq = NULL; } if (free_mr->rsv_pd) { - ib_dealloc_pd(free_mr->rsv_pd); + hns_roce_dealloc_pd(&free_mr->rsv_pd->ibpd, NULL); + kfree(free_mr->rsv_pd); free_mr->rsv_pd = NULL; } } @@ -2637,55 +2751,46 @@ { struct hns_roce_v2_priv *priv = hr_dev->priv; struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; - struct ib_device *ibdev = &hr_dev->ib_dev; - struct ib_cq_init_attr cq_init_attr = {}; struct ib_qp_init_attr qp_init_attr = {}; struct ib_pd *pd; struct ib_cq *cq; - struct ib_qp *qp; int ret; int i; - pd = ib_alloc_pd(ibdev, 0); - if (IS_ERR(pd)) { - ibdev_err(ibdev, "failed to create pd for free mr.\n"); - return PTR_ERR(pd); - } - free_mr->rsv_pd = pd; + pd = free_mr_init_pd(hr_dev); + if (!pd) + return -ENOMEM; - cq_init_attr.cqe = HNS_ROCE_FREE_MR_USED_CQE_NUM; - cq = ib_create_cq(ibdev, NULL, NULL, NULL, &cq_init_attr); - if (IS_ERR(cq)) { - ibdev_err(ibdev, "failed to create cq for free mr.\n"); - ret = PTR_ERR(cq); - goto create_failed; + cq = free_mr_init_cq(hr_dev); + if (!cq) { + ret = -ENOMEM; + goto create_failed_cq; } - free_mr->rsv_cq = cq; qp_init_attr.qp_type = IB_QPT_RC; qp_init_attr.sq_sig_type = IB_SIGNAL_ALL_WR; - qp_init_attr.send_cq = free_mr->rsv_cq; - qp_init_attr.recv_cq = free_mr->rsv_cq; + qp_init_attr.send_cq = cq; + qp_init_attr.recv_cq = cq; for (i = 0; i < ARRAY_SIZE(free_mr->rsv_qp); i++) { qp_init_attr.cap.max_send_wr = HNS_ROCE_FREE_MR_USED_SQWQE_NUM; qp_init_attr.cap.max_send_sge = HNS_ROCE_FREE_MR_USED_SQSGE_NUM; qp_init_attr.cap.max_recv_wr = HNS_ROCE_FREE_MR_USED_RQWQE_NUM; qp_init_attr.cap.max_recv_sge = HNS_ROCE_FREE_MR_USED_RQSGE_NUM; - qp = ib_create_qp(free_mr->rsv_pd, &qp_init_attr); - if (IS_ERR(qp)) { - ibdev_err(ibdev, "failed to create qp for free mr.\n"); - ret = PTR_ERR(qp); - goto create_failed; - } - - free_mr->rsv_qp[i] = qp; + ret = free_mr_init_qp(hr_dev, cq, &qp_init_attr, i); + if (ret) + goto create_failed_qp; } return 0; -create_failed: - free_mr_exit(hr_dev); +create_failed_qp: + hns_roce_destroy_cq(cq, NULL); + kfree(cq); + +create_failed_cq: + hns_roce_dealloc_pd(pd, NULL); + kfree(pd); return ret; } @@ -2701,14 +2806,17 @@ int mask; int ret; - hr_qp = to_hr_qp(free_mr->rsv_qp[sl_num]); + hr_qp = to_hr_qp(&free_mr->rsv_qp[sl_num]->ibqp); hr_qp->free_mr_en = 1; + hr_qp->ibqp.device = ibdev; + hr_qp->ibqp.qp_type = IB_QPT_RC; mask = IB_QP_STATE | IB_QP_PKEY_INDEX | IB_QP_PORT | IB_QP_ACCESS_FLAGS; attr->qp_state = IB_QPS_INIT; attr->port_num = 1; attr->qp_access_flags = IB_ACCESS_REMOTE_WRITE; - ret = ib_modify_qp(&hr_qp->ibqp, attr, mask); + ret = hr_dev->hw->modify_qp(&hr_qp->ibqp, attr, mask, IB_QPS_INIT, + IB_QPS_INIT); if (ret) { ibdev_err(ibdev, "failed to modify qp to init, ret = %d.\n", ret); @@ -2729,7 +2837,8 @@ rdma_ah_set_sl(&attr->ah_attr, (u8)sl_num); - ret = ib_modify_qp(&hr_qp->ibqp, attr, mask); + ret = hr_dev->hw->modify_qp(&hr_qp->ibqp, attr, mask, IB_QPS_INIT, + IB_QPS_RTR); hr_dev->loop_idc = loopback; if (ret) { ibdev_err(ibdev, "failed to modify qp to rtr, ret = %d.\n", @@ -2743,7 +2852,8 @@ attr->sq_psn = HNS_ROCE_FREE_MR_USED_PSN; attr->retry_cnt = HNS_ROCE_FREE_MR_USED_QP_RETRY_CNT; attr->timeout = HNS_ROCE_FREE_MR_USED_QP_TIMEOUT; - ret = ib_modify_qp(&hr_qp->ibqp, attr, mask); + ret = hr_dev->hw->modify_qp(&hr_qp->ibqp, attr, mask, IB_QPS_RTR, + IB_QPS_RTS); if (ret) ibdev_err(ibdev, "failed to modify qp to rts, ret = %d.\n", ret); @@ -2774,8 +2884,12 @@ static int free_mr_init(struct hns_roce_dev *hr_dev) { + struct hns_roce_v2_priv *priv = hr_dev->priv; + struct hns_roce_v2_free_mr *free_mr = &priv->free_mr; int ret; + mutex_init(&free_mr->mutex); + ret = free_mr_alloc_res(hr_dev); if (ret) return ret; @@ -3155,7 +3269,8 @@ int i, count; count = hns_roce_mtr_find(hr_dev, &mr->pbl_mtr, 0, pages, - ARRAY_SIZE(pages), &pbl_ba); + min_t(int, ARRAY_SIZE(pages), mr->npages), + &pbl_ba); if (count < 1) { ibdev_err(ibdev, "failed to find PBL mtr, count = %d.\n", count); @@ -3191,7 +3306,6 @@ hr_reg_write(mpt_entry, MPT_ST, V2_MPT_ST_VALID); hr_reg_write(mpt_entry, MPT_PD, mr->pd); - hr_reg_enable(mpt_entry, MPT_L_INV_EN); hr_reg_write_bool(mpt_entry, MPT_BIND_EN, mr->access & IB_ACCESS_MW_BIND); @@ -3282,7 +3396,6 @@ hr_reg_enable(mpt_entry, MPT_RA_EN); hr_reg_enable(mpt_entry, MPT_R_INV_EN); - hr_reg_enable(mpt_entry, MPT_L_INV_EN); hr_reg_enable(mpt_entry, MPT_FRE); hr_reg_clear(mpt_entry, MPT_MR_MW); @@ -3314,7 +3427,6 @@ hr_reg_write(mpt_entry, MPT_PD, mw->pdn); hr_reg_enable(mpt_entry, MPT_R_INV_EN); - hr_reg_enable(mpt_entry, MPT_L_INV_EN); hr_reg_enable(mpt_entry, MPT_LW_EN); hr_reg_enable(mpt_entry, MPT_MR_MW); @@ -3386,7 +3498,7 @@ mutex_lock(&free_mr->mutex); for (i = 0; i < ARRAY_SIZE(free_mr->rsv_qp); i++) { - hr_qp = to_hr_qp(free_mr->rsv_qp[i]); + hr_qp = free_mr->rsv_qp[i]; ret = free_mr_post_send_lp_wqe(hr_qp); if (ret) { @@ -3401,7 +3513,7 @@ end = msecs_to_jiffies(HNS_ROCE_V2_FREE_MR_TIMEOUT) + jiffies; while (cqe_cnt) { - npolled = hns_roce_v2_poll_cq(free_mr->rsv_cq, cqe_cnt, wc); + npolled = hns_roce_v2_poll_cq(&free_mr->rsv_cq->ib_cq, cqe_cnt, wc); if (npolled < 0) { ibdev_err(ibdev, "failed to poll cqe for free mr, remain %d cqe.\n", @@ -3763,7 +3875,6 @@ HR_WC_OP_MAP(RDMA_READ, RDMA_READ), HR_WC_OP_MAP(RDMA_WRITE, RDMA_WRITE), HR_WC_OP_MAP(RDMA_WRITE_WITH_IMM, RDMA_WRITE), - HR_WC_OP_MAP(LOCAL_INV, LOCAL_INV), HR_WC_OP_MAP(ATOM_CMP_AND_SWAP, COMP_SWAP), HR_WC_OP_MAP(ATOM_FETCH_AND_ADD, FETCH_ADD), HR_WC_OP_MAP(ATOM_MSK_CMP_AND_SWAP, MASKED_COMP_SWAP), @@ -3813,9 +3924,6 @@ case HNS_ROCE_V2_WQE_OP_RDMA_WRITE_WITH_IMM: wc->wc_flags |= IB_WC_WITH_IMM; break; - case HNS_ROCE_V2_WQE_OP_LOCAL_INV: - wc->wc_flags |= IB_WC_WITH_INVALIDATE; - break; case HNS_ROCE_V2_WQE_OP_ATOM_CMP_AND_SWAP: case HNS_ROCE_V2_WQE_OP_ATOM_FETCH_AND_ADD: case HNS_ROCE_V2_WQE_OP_ATOM_MSK_CMP_AND_SWAP: @@ -5355,6 +5463,8 @@ rdma_ah_set_sl(&qp_attr->ah_attr, hr_reg_read(&context, QPC_SL)); + rdma_ah_set_port_num(&qp_attr->ah_attr, hr_qp->port + 1); + rdma_ah_set_ah_flags(&qp_attr->ah_attr, IB_AH_GRH); grh->flow_label = hr_reg_read(&context, QPC_FL); grh->sgid_index = hr_reg_read(&context, QPC_GMV_IDX); grh->hop_limit = hr_reg_read(&context, QPC_HOPLIMIT); @@ -5448,7 +5558,7 @@ return ret; } -static int hns_roce_v2_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata) +int hns_roce_v2_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata) { struct hns_roce_dev *hr_dev = to_hr_dev(ibqp->device); struct hns_roce_qp *hr_qp = to_hr_qp(ibqp); @@ -6000,8 +6110,8 @@ dev_err(dev, "AEQ overflow!\n"); - int_st |= 1 << HNS_ROCE_V2_VF_INT_ST_AEQ_OVERFLOW_S; - roce_write(hr_dev, ROCEE_VF_ABN_INT_ST_REG, int_st); + roce_write(hr_dev, ROCEE_VF_ABN_INT_ST_REG, + 1 << HNS_ROCE_V2_VF_INT_ST_AEQ_OVERFLOW_S); /* Set reset level for reset_event() */ if (ops->set_default_reset_request) --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_hw_v2.h +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_hw_v2.h @@ -36,11 +36,11 @@ #include #define HNS_ROCE_V2_MAX_QP_NUM 0x1000 -#define HNS_ROCE_V2_MAX_QPC_TIMER_NUM 0x200 #define HNS_ROCE_V2_MAX_WQE_NUM 0x8000 #define HNS_ROCE_V2_MAX_SRQ_WR 0x8000 #define HNS_ROCE_V2_MAX_SRQ_SGE 64 #define HNS_ROCE_V2_MAX_CQ_NUM 0x100000 +#define HNS_ROCE_V2_MAX_QPC_TIMER_BT_NUM 0x100 #define HNS_ROCE_V2_MAX_CQC_TIMER_BT_NUM 0x100 #define HNS_ROCE_V2_MAX_SRQ_NUM 0x100000 #define HNS_ROCE_V2_MAX_CQE_NUM 0x400000 @@ -83,7 +83,7 @@ #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_PAGE_SIZE_SUPPORTED 0xFFFF000 #define HNS_ROCE_V2_MAX_INNER_MTPT_NUM 2 #define HNS_ROCE_INVALID_LKEY 0x0 #define HNS_ROCE_INVALID_SGE_LENGTH 0x80000000 @@ -182,7 +182,6 @@ HNS_ROCE_V2_WQE_OP_ATOM_MSK_CMP_AND_SWAP = 0x8, HNS_ROCE_V2_WQE_OP_ATOM_MSK_FETCH_AND_ADD = 0x9, HNS_ROCE_V2_WQE_OP_FAST_REG_PMR = 0xa, - HNS_ROCE_V2_WQE_OP_LOCAL_INV = 0xb, HNS_ROCE_V2_WQE_OP_BIND_MW = 0xc, HNS_ROCE_V2_WQE_OP_MASK = 0x1f, }; @@ -275,6 +274,11 @@ CMD_OTHER_ERR = 0xff }; +struct hns_roce_cmd_errcode { + enum hns_roce_cmd_return_status return_status; + int errno; +}; + enum hns_roce_sgid_type { GID_TYPE_FLAG_ROCE_V1 = 0, GID_TYPE_FLAG_ROCE_V2_IPV4, @@ -915,7 +919,6 @@ #define RC_SEND_WQE_OWNER RC_SEND_WQE_FIELD_LOC(7, 7) #define RC_SEND_WQE_CQE RC_SEND_WQE_FIELD_LOC(8, 8) #define RC_SEND_WQE_FENCE RC_SEND_WQE_FIELD_LOC(9, 9) -#define RC_SEND_WQE_SO RC_SEND_WQE_FIELD_LOC(10, 10) #define RC_SEND_WQE_SE RC_SEND_WQE_FIELD_LOC(11, 11) #define RC_SEND_WQE_INLINE RC_SEND_WQE_FIELD_LOC(12, 12) #define RC_SEND_WQE_WQE_INDEX RC_SEND_WQE_FIELD_LOC(30, 15) @@ -1324,9 +1327,9 @@ #define HNS_ROCE_EXT_LLM_MIN_PAGES(que_num) ((que_num) * 4 + 2) struct hns_roce_v2_free_mr { - struct ib_qp *rsv_qp[HNS_ROCE_FREE_MR_USED_QP_NUM]; - struct ib_cq *rsv_cq; - struct ib_pd *rsv_pd; + struct hns_roce_qp *rsv_qp[HNS_ROCE_FREE_MR_USED_QP_NUM]; + struct hns_roce_cq *rsv_cq; + struct hns_roce_pd *rsv_pd; struct mutex mutex; }; @@ -1454,6 +1457,8 @@ int hns_roce_v2_query_cqc_info(struct hns_roce_dev *hr_dev, u32 cqn, int *buffer); +int hns_roce_v2_destroy_qp(struct ib_qp *ibqp, struct ib_udata *udata); + static inline void hns_roce_write64(struct hns_roce_dev *hr_dev, __le32 val[2], void __iomem *dest) { --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_main.c +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_main.c @@ -354,10 +354,11 @@ static int hns_roce_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata) { - int ret; struct hns_roce_ucontext *context = to_hr_ucontext(uctx); - struct hns_roce_ib_alloc_ucontext_resp resp = {}; struct hns_roce_dev *hr_dev = to_hr_dev(uctx->device); + struct hns_roce_ib_alloc_ucontext_resp resp = {}; + struct hns_roce_ib_alloc_ucontext ucmd = {}; + int ret; if (!hr_dev->active) return -EAGAIN; @@ -365,6 +366,19 @@ resp.qp_tab_size = hr_dev->caps.num_qps; resp.srq_tab_size = hr_dev->caps.num_srqs; + ret = ib_copy_from_udata(&ucmd, udata, + min(udata->inlen, sizeof(ucmd))); + if (ret) + return ret; + + if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP09) + context->config = ucmd.config & HNS_ROCE_EXSGE_FLAGS; + + if (context->config & HNS_ROCE_EXSGE_FLAGS) { + resp.config |= HNS_ROCE_RSP_EXSGE_FLAGS; + resp.max_inline_data = hr_dev->caps.max_sq_inline; + } + ret = hns_roce_uar_alloc(hr_dev, &context->uar); if (ret) goto error_fail_uar_alloc; @@ -725,7 +739,7 @@ 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); + hr_dev->caps.qpc_timer_bt_num, 1); if (ret) { dev_err(dev, "Failed to init QPC timer memory, aborting.\n"); --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_mr.c +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_mr.c @@ -249,7 +249,6 @@ goto err_alloc_pbl; mr->ibmr.rkey = mr->ibmr.lkey = mr->key; - mr->ibmr.length = length; return &mr->ibmr; @@ -393,10 +392,10 @@ return &mr->ibmr; -err_key: - free_mr_key(hr_dev, mr); err_pbl: free_mr_pbl(hr_dev, mr); +err_key: + free_mr_key(hr_dev, mr); err_free: kfree(mr); return ERR_PTR(ret); --- linux-5.19.0.orig/drivers/infiniband/hw/hns/hns_roce_qp.c +++ linux-5.19.0/drivers/infiniband/hw/hns/hns_roce_qp.c @@ -462,11 +462,8 @@ hr_qp->rq.max_gs = roundup_pow_of_two(max(1U, cap->max_recv_sge) + hr_qp->rq.rsv_sge); - 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); + hr_qp->rq.wqe_shift = ilog2(hr_dev->caps.max_rq_desc_sz * + hr_qp->rq.max_gs); hr_qp->rq.wqe_cnt = cnt; if (hr_dev->caps.flags & HNS_ROCE_CAP_FLAG_RQ_INLINE && @@ -482,38 +479,109 @@ return 0; } -static u32 get_wqe_ext_sge_cnt(struct hns_roce_qp *qp) +static u32 get_max_inline_data(struct hns_roce_dev *hr_dev, + struct ib_qp_cap *cap) { - /* GSI/UD QP only has extended sge */ - if (qp->ibqp.qp_type == IB_QPT_GSI || qp->ibqp.qp_type == IB_QPT_UD) - return qp->sq.max_gs; - - if (qp->sq.max_gs > HNS_ROCE_SGE_IN_WQE) - return qp->sq.max_gs - HNS_ROCE_SGE_IN_WQE; + if (cap->max_inline_data) { + cap->max_inline_data = roundup_pow_of_two(cap->max_inline_data); + return min(cap->max_inline_data, + hr_dev->caps.max_sq_inline); + } return 0; } +static void update_inline_data(struct hns_roce_qp *hr_qp, + struct ib_qp_cap *cap) +{ + u32 sge_num = hr_qp->sq.ext_sge_cnt; + + if (hr_qp->config & HNS_ROCE_EXSGE_FLAGS) { + if (!(hr_qp->ibqp.qp_type == IB_QPT_GSI || + hr_qp->ibqp.qp_type == IB_QPT_UD)) + sge_num = max((u32)HNS_ROCE_SGE_IN_WQE, sge_num); + + cap->max_inline_data = max(cap->max_inline_data, + sge_num * HNS_ROCE_SGE_SIZE); + } + + hr_qp->max_inline_data = cap->max_inline_data; +} + +static u32 get_sge_num_from_max_send_sge(bool is_ud_or_gsi, + u32 max_send_sge) +{ + unsigned int std_sge_num; + unsigned int min_sge; + + std_sge_num = is_ud_or_gsi ? 0 : HNS_ROCE_SGE_IN_WQE; + min_sge = is_ud_or_gsi ? 1 : 0; + return max_send_sge > std_sge_num ? (max_send_sge - std_sge_num) : + min_sge; +} + +static unsigned int get_sge_num_from_max_inl_data(bool is_ud_or_gsi, + u32 max_inline_data) +{ + unsigned int inline_sge; + + inline_sge = roundup_pow_of_two(max_inline_data) / HNS_ROCE_SGE_SIZE; + + /* + * if max_inline_data less than + * HNS_ROCE_SGE_IN_WQE * HNS_ROCE_SGE_SIZE, + * In addition to ud's mode, no need to extend sge. + */ + if (!is_ud_or_gsi && inline_sge <= HNS_ROCE_SGE_IN_WQE) + inline_sge = 0; + + return inline_sge; +} + static void set_ext_sge_param(struct hns_roce_dev *hr_dev, u32 sq_wqe_cnt, struct hns_roce_qp *hr_qp, struct ib_qp_cap *cap) { + bool is_ud_or_gsi = (hr_qp->ibqp.qp_type == IB_QPT_GSI || + hr_qp->ibqp.qp_type == IB_QPT_UD); + unsigned int std_sge_num; + u32 inline_ext_sge = 0; + u32 ext_wqe_sge_cnt; u32 total_sge_cnt; - u32 wqe_sge_cnt; + + cap->max_inline_data = get_max_inline_data(hr_dev, cap); hr_qp->sge.sge_shift = HNS_ROCE_SGE_SHIFT; + std_sge_num = is_ud_or_gsi ? 0 : HNS_ROCE_SGE_IN_WQE; + ext_wqe_sge_cnt = get_sge_num_from_max_send_sge(is_ud_or_gsi, + cap->max_send_sge); + + if (hr_qp->config & HNS_ROCE_EXSGE_FLAGS) { + inline_ext_sge = max(ext_wqe_sge_cnt, + get_sge_num_from_max_inl_data(is_ud_or_gsi, + cap->max_inline_data)); + hr_qp->sq.ext_sge_cnt = inline_ext_sge ? + roundup_pow_of_two(inline_ext_sge) : 0; - hr_qp->sq.max_gs = max(1U, cap->max_send_sge); + hr_qp->sq.max_gs = max(1U, (hr_qp->sq.ext_sge_cnt + std_sge_num)); + hr_qp->sq.max_gs = min(hr_qp->sq.max_gs, hr_dev->caps.max_sq_sg); - wqe_sge_cnt = get_wqe_ext_sge_cnt(hr_qp); + ext_wqe_sge_cnt = hr_qp->sq.ext_sge_cnt; + } else { + hr_qp->sq.max_gs = max(1U, cap->max_send_sge); + hr_qp->sq.max_gs = min(hr_qp->sq.max_gs, hr_dev->caps.max_sq_sg); + hr_qp->sq.ext_sge_cnt = hr_qp->sq.max_gs; + } /* If the number of extended sge is not zero, they MUST use the * space of HNS_HW_PAGE_SIZE at least. */ - if (wqe_sge_cnt) { - total_sge_cnt = roundup_pow_of_two(sq_wqe_cnt * wqe_sge_cnt); + if (ext_wqe_sge_cnt) { + total_sge_cnt = roundup_pow_of_two(sq_wqe_cnt * ext_wqe_sge_cnt); hr_qp->sge.sge_cnt = max(total_sge_cnt, (u32)HNS_HW_PAGE_SIZE / HNS_ROCE_SGE_SIZE); } + + update_inline_data(hr_qp, cap); } static int check_sq_size_with_integrity(struct hns_roce_dev *hr_dev, @@ -562,6 +630,7 @@ hr_qp->sq.wqe_shift = ucmd->log_sq_stride; hr_qp->sq.wqe_cnt = cnt; + cap->max_send_sge = hr_qp->sq.max_gs; return 0; } @@ -992,13 +1061,9 @@ struct hns_roce_ib_create_qp *ucmd) { struct ib_device *ibdev = &hr_dev->ib_dev; + struct hns_roce_ucontext *uctx; int ret; - if (init_attr->cap.max_inline_data > hr_dev->caps.max_sq_inline) - init_attr->cap.max_inline_data = hr_dev->caps.max_sq_inline; - - hr_qp->max_inline_data = init_attr->cap.max_inline_data; - if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR) hr_qp->sq_signal_bits = IB_SIGNAL_ALL_WR; else @@ -1021,12 +1086,17 @@ return ret; } + uctx = rdma_udata_to_drv_context(udata, struct hns_roce_ucontext, + ibucontext); + hr_qp->config = uctx->config; ret = set_user_sq_size(hr_dev, &init_attr->cap, hr_qp, ucmd); if (ret) ibdev_err(ibdev, "failed to set user SQ size, ret = %d.\n", ret); } else { + if (hr_dev->pci_dev->revision >= PCI_REVISION_ID_HIP09) + hr_qp->config = HNS_ROCE_EXSGE_FLAGS; ret = set_kernel_sq_size(hr_dev, &init_attr->cap, hr_qp); if (ret) ibdev_err(ibdev, --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/cm.c +++ linux-5.19.0/drivers/infiniband/hw/irdma/cm.c @@ -1477,12 +1477,13 @@ list_for_each_entry (listen_node, &cm_core->listen_list, list) { memcpy(listen_addr, listen_node->loc_addr, sizeof(listen_addr)); listen_port = listen_node->loc_port; + if (listen_port != dst_port || + !(listener_state & listen_node->listener_state)) + continue; /* compare node pair, return node handle if a match */ - if ((!memcmp(listen_addr, dst_addr, sizeof(listen_addr)) || - !memcmp(listen_addr, ip_zero, sizeof(listen_addr))) && - listen_port == dst_port && - vlan_id == listen_node->vlan_id && - (listener_state & listen_node->listener_state)) { + if (!memcmp(listen_addr, ip_zero, sizeof(listen_addr)) || + (!memcmp(listen_addr, dst_addr, sizeof(listen_addr)) && + vlan_id == listen_node->vlan_id)) { refcount_inc(&listen_node->refcnt); spin_unlock_irqrestore(&cm_core->listen_list_lock, flags); --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/defs.h +++ linux-5.19.0/drivers/infiniband/hw/irdma/defs.h @@ -314,6 +314,7 @@ #define IRDMA_AE_IB_REMOTE_ACCESS_ERROR 0x020d #define IRDMA_AE_IB_REMOTE_OP_ERROR 0x020e #define IRDMA_AE_WQE_LSMM_TOO_LONG 0x0220 +#define IRDMA_AE_INVALID_REQUEST 0x0223 #define IRDMA_AE_DDP_INVALID_MSN_GAP_IN_MSN 0x0301 #define IRDMA_AE_DDP_UBE_DDP_MESSAGE_TOO_LONG_FOR_AVAILABLE_BUFFER 0x0303 #define IRDMA_AE_DDP_UBE_INVALID_DDP_VERSION 0x0304 --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/hw.c +++ linux-5.19.0/drivers/infiniband/hw/irdma/hw.c @@ -138,59 +138,68 @@ qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; switch (info->ae_id) { - case IRDMA_AE_AMP_UNALLOCATED_STAG: case IRDMA_AE_AMP_BOUNDS_VIOLATION: case IRDMA_AE_AMP_INVALID_STAG: - qp->event_type = IRDMA_QP_EVENT_ACCESS_ERR; - fallthrough; + case IRDMA_AE_AMP_RIGHTS_VIOLATION: + case IRDMA_AE_AMP_UNALLOCATED_STAG: case IRDMA_AE_AMP_BAD_PD: - case IRDMA_AE_UDA_XMIT_BAD_PD: + case IRDMA_AE_AMP_BAD_QP: + case IRDMA_AE_AMP_BAD_STAG_KEY: + case IRDMA_AE_AMP_BAD_STAG_INDEX: + case IRDMA_AE_AMP_TO_WRAP: + case IRDMA_AE_PRIV_OPERATION_DENIED: qp->flush_code = FLUSH_PROT_ERR; + qp->event_type = IRDMA_QP_EVENT_ACCESS_ERR; break; - case IRDMA_AE_AMP_BAD_QP: + case IRDMA_AE_UDA_XMIT_BAD_PD: case IRDMA_AE_WQE_UNEXPECTED_OPCODE: qp->flush_code = FLUSH_LOC_QP_OP_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; + break; + case IRDMA_AE_UDA_XMIT_DGRAM_TOO_LONG: + case IRDMA_AE_UDA_XMIT_DGRAM_TOO_SHORT: + case IRDMA_AE_UDA_L4LEN_INVALID: + case IRDMA_AE_DDP_UBE_INVALID_MO: + case IRDMA_AE_DDP_UBE_DDP_MESSAGE_TOO_LONG_FOR_AVAILABLE_BUFFER: + qp->flush_code = FLUSH_LOC_LEN_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; break; - case IRDMA_AE_AMP_BAD_STAG_KEY: - case IRDMA_AE_AMP_BAD_STAG_INDEX: - case IRDMA_AE_AMP_TO_WRAP: - case IRDMA_AE_AMP_RIGHTS_VIOLATION: case IRDMA_AE_AMP_INVALIDATE_NO_REMOTE_ACCESS_RIGHTS: - case IRDMA_AE_PRIV_OPERATION_DENIED: - case IRDMA_AE_IB_INVALID_REQUEST: case IRDMA_AE_IB_REMOTE_ACCESS_ERROR: qp->flush_code = FLUSH_REM_ACCESS_ERR; qp->event_type = IRDMA_QP_EVENT_ACCESS_ERR; break; case IRDMA_AE_LLP_SEGMENT_TOO_SMALL: - case IRDMA_AE_DDP_UBE_DDP_MESSAGE_TOO_LONG_FOR_AVAILABLE_BUFFER: - case IRDMA_AE_UDA_XMIT_DGRAM_TOO_LONG: - case IRDMA_AE_UDA_XMIT_DGRAM_TOO_SHORT: - case IRDMA_AE_UDA_L4LEN_INVALID: + case IRDMA_AE_LLP_RECEIVED_MPA_CRC_ERROR: case IRDMA_AE_ROCE_RSP_LENGTH_ERROR: - qp->flush_code = FLUSH_LOC_LEN_ERR; + case IRDMA_AE_IB_REMOTE_OP_ERROR: + qp->flush_code = FLUSH_REM_OP_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; break; case IRDMA_AE_LCE_QP_CATASTROPHIC: qp->flush_code = FLUSH_FATAL_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; break; - case IRDMA_AE_DDP_UBE_INVALID_MO: case IRDMA_AE_IB_RREQ_AND_Q1_FULL: - case IRDMA_AE_LLP_RECEIVED_MPA_CRC_ERROR: qp->flush_code = FLUSH_GENERAL_ERR; break; case IRDMA_AE_LLP_TOO_MANY_RETRIES: qp->flush_code = FLUSH_RETRY_EXC_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; break; case IRDMA_AE_AMP_MWBIND_INVALID_RIGHTS: case IRDMA_AE_AMP_MWBIND_BIND_DISABLED: case IRDMA_AE_AMP_MWBIND_INVALID_BOUNDS: qp->flush_code = FLUSH_MW_BIND_ERR; + qp->event_type = IRDMA_QP_EVENT_ACCESS_ERR; break; - case IRDMA_AE_IB_REMOTE_OP_ERROR: - qp->flush_code = FLUSH_REM_OP_ERR; + case IRDMA_AE_IB_INVALID_REQUEST: + qp->flush_code = FLUSH_REM_INV_REQ_ERR; + qp->event_type = IRDMA_QP_EVENT_REQ_ERR; break; default: - qp->flush_code = FLUSH_FATAL_ERR; + qp->flush_code = FLUSH_GENERAL_ERR; + qp->event_type = IRDMA_QP_EVENT_CATASTROPHIC; break; } } @@ -257,10 +266,6 @@ iwqp->last_aeq = info->ae_id; spin_unlock_irqrestore(&iwqp->lock, flags); ctx_info = &iwqp->ctx_info; - if (rdma_protocol_roce(&iwqp->iwdev->ibdev, 1)) - ctx_info->roce_info->err_rq_idx_valid = true; - else - ctx_info->iwarp_info->err_rq_idx_valid = true; } else { if (info->ae_id != IRDMA_AE_CQ_OPERATION_ERROR) continue; @@ -370,16 +375,12 @@ case IRDMA_AE_LCE_FUNCTION_CATASTROPHIC: case IRDMA_AE_LCE_CQ_CATASTROPHIC: case IRDMA_AE_UDA_XMIT_DGRAM_TOO_LONG: - if (rdma_protocol_roce(&iwdev->ibdev, 1)) - ctx_info->roce_info->err_rq_idx_valid = false; - else - ctx_info->iwarp_info->err_rq_idx_valid = false; - fallthrough; default: ibdev_err(&iwdev->ibdev, "abnormal ae_id = 0x%x bool qp=%d qp_id = %d\n", info->ae_id, info->qp, info->qp_cq_id); if (rdma_protocol_roce(&iwdev->ibdev, 1)) { - if (!info->sq && ctx_info->roce_info->err_rq_idx_valid) { + ctx_info->roce_info->err_rq_idx_valid = info->rq; + if (info->rq) { ctx_info->roce_info->err_rq_idx = info->wqe_idx; irdma_sc_qp_setctx_roce(&iwqp->sc_qp, iwqp->host_ctx.va, ctx_info); @@ -388,7 +389,8 @@ irdma_cm_disconn(iwqp); break; } - if (!info->sq && ctx_info->iwarp_info->err_rq_idx_valid) { + ctx_info->iwarp_info->err_rq_idx_valid = info->rq; + if (info->rq) { ctx_info->iwarp_info->err_rq_idx = info->wqe_idx; ctx_info->tcp_info_valid = false; ctx_info->iwarp_info_valid = true; --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/type.h +++ linux-5.19.0/drivers/infiniband/hw/irdma/type.h @@ -98,6 +98,7 @@ enum irdma_qp_event_type { IRDMA_QP_EVENT_CATASTROPHIC, IRDMA_QP_EVENT_ACCESS_ERR, + IRDMA_QP_EVENT_REQ_ERR, }; enum irdma_hw_stats_index_32b { --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/uk.c +++ linux-5.19.0/drivers/infiniband/hw/irdma/uk.c @@ -497,7 +497,8 @@ FIELD_PREP(IRDMAQPSQ_IMMDATA, info->imm_data)); i = 0; } else { - qp->wqe_ops.iw_set_fragment(wqe, 0, op_info->sg_list, + qp->wqe_ops.iw_set_fragment(wqe, 0, + frag_cnt ? op_info->sg_list : NULL, qp->swqe_polarity); i = 1; } @@ -565,21 +566,37 @@ /** * irdma_copy_inline_data_gen_1 - Copy inline data to wqe - * @dest: pointer to wqe - * @src: pointer to inline data - * @len: length of inline data to copy + * @wqe: pointer to wqe + * @sge_list: table of pointers to inline data + * @num_sges: Total inline data length * @polarity: compatibility parameter */ -static void irdma_copy_inline_data_gen_1(u8 *dest, u8 *src, u32 len, - u8 polarity) +static void irdma_copy_inline_data_gen_1(u8 *wqe, struct ib_sge *sge_list, + u32 num_sges, u8 polarity) { - if (len <= 16) { - memcpy(dest, src, len); - } else { - memcpy(dest, src, 16); - src += 16; - dest = dest + 32; - memcpy(dest, src, len - 16); + u32 quanta_bytes_remaining = 16; + int i; + + for (i = 0; i < num_sges; i++) { + u8 *cur_sge = (u8 *)(uintptr_t)sge_list[i].addr; + u32 sge_len = sge_list[i].length; + + while (sge_len) { + u32 bytes_copied; + + bytes_copied = min(sge_len, quanta_bytes_remaining); + memcpy(wqe, cur_sge, bytes_copied); + wqe += bytes_copied; + cur_sge += bytes_copied; + quanta_bytes_remaining -= bytes_copied; + sge_len -= bytes_copied; + + if (!quanta_bytes_remaining) { + /* Remaining inline bytes reside after hdr */ + wqe += 16; + quanta_bytes_remaining = 32; + } + } } } @@ -611,35 +628,51 @@ /** * irdma_copy_inline_data - Copy inline data to wqe - * @dest: pointer to wqe - * @src: pointer to inline data - * @len: length of inline data to copy + * @wqe: pointer to wqe + * @sge_list: table of pointers to inline data + * @num_sges: number of SGE's * @polarity: polarity of wqe valid bit */ -static void irdma_copy_inline_data(u8 *dest, u8 *src, u32 len, u8 polarity) +static void irdma_copy_inline_data(u8 *wqe, struct ib_sge *sge_list, + u32 num_sges, u8 polarity) { u8 inline_valid = polarity << IRDMA_INLINE_VALID_S; - u32 copy_size; - - dest += 8; - if (len <= 8) { - memcpy(dest, src, len); - return; - } - - *((u64 *)dest) = *((u64 *)src); - len -= 8; - src += 8; - dest += 24; /* point to additional 32 byte quanta */ - - while (len) { - copy_size = len < 31 ? len : 31; - memcpy(dest, src, copy_size); - *(dest + 31) = inline_valid; - len -= copy_size; - dest += 32; - src += copy_size; + u32 quanta_bytes_remaining = 8; + bool first_quanta = true; + int i; + + wqe += 8; + + for (i = 0; i < num_sges; i++) { + u8 *cur_sge = (u8 *)(uintptr_t)sge_list[i].addr; + u32 sge_len = sge_list[i].length; + + while (sge_len) { + u32 bytes_copied; + + bytes_copied = min(sge_len, quanta_bytes_remaining); + memcpy(wqe, cur_sge, bytes_copied); + wqe += bytes_copied; + cur_sge += bytes_copied; + quanta_bytes_remaining -= bytes_copied; + sge_len -= bytes_copied; + + if (!quanta_bytes_remaining) { + quanta_bytes_remaining = 31; + + /* Remaining inline bytes reside after hdr */ + if (first_quanta) { + first_quanta = false; + wqe += 16; + } else { + *wqe = inline_valid; + wqe++; + } + } + } } + if (!first_quanta && quanta_bytes_remaining < 31) + *(wqe + quanta_bytes_remaining) = inline_valid; } /** @@ -678,20 +711,27 @@ struct irdma_post_sq_info *info, bool post_sq) { __le64 *wqe; - struct irdma_inline_rdma_write *op_info; + struct irdma_rdma_write *op_info; u64 hdr = 0; u32 wqe_idx; bool read_fence = false; + u32 i, total_size = 0; u16 quanta; info->push_wqe = qp->push_db ? true : false; - op_info = &info->op.inline_rdma_write; + op_info = &info->op.rdma_write; - if (op_info->len > qp->max_inline_data) + if (unlikely(qp->max_sq_frag_cnt < op_info->num_lo_sges)) return -EINVAL; - quanta = qp->wqe_ops.iw_inline_data_size_to_quanta(op_info->len); - wqe = irdma_qp_get_next_send_wqe(qp, &wqe_idx, quanta, op_info->len, + for (i = 0; i < op_info->num_lo_sges; i++) + total_size += op_info->lo_sg_list[i].length; + + if (unlikely(total_size > qp->max_inline_data)) + return -EINVAL; + + quanta = qp->wqe_ops.iw_inline_data_size_to_quanta(total_size); + wqe = irdma_qp_get_next_send_wqe(qp, &wqe_idx, quanta, total_size, info); if (!wqe) return -ENOMEM; @@ -704,7 +744,7 @@ hdr = FIELD_PREP(IRDMAQPSQ_REMSTAG, op_info->rem_addr.lkey) | FIELD_PREP(IRDMAQPSQ_OPCODE, info->op_type) | - FIELD_PREP(IRDMAQPSQ_INLINEDATALEN, op_info->len) | + FIELD_PREP(IRDMAQPSQ_INLINEDATALEN, total_size) | FIELD_PREP(IRDMAQPSQ_REPORTRTT, info->report_rtt ? 1 : 0) | FIELD_PREP(IRDMAQPSQ_INLINEDATAFLAG, 1) | FIELD_PREP(IRDMAQPSQ_IMMDATAFLAG, info->imm_data_valid ? 1 : 0) | @@ -718,7 +758,8 @@ set_64bit_val(wqe, 0, FIELD_PREP(IRDMAQPSQ_IMMDATA, info->imm_data)); - qp->wqe_ops.iw_copy_inline_data((u8 *)wqe, op_info->data, op_info->len, + qp->wqe_ops.iw_copy_inline_data((u8 *)wqe, op_info->lo_sg_list, + op_info->num_lo_sges, qp->swqe_polarity); dma_wmb(); /* make sure WQE is populated before valid bit is set */ @@ -744,20 +785,27 @@ struct irdma_post_sq_info *info, bool post_sq) { __le64 *wqe; - struct irdma_post_inline_send *op_info; + struct irdma_post_send *op_info; u64 hdr; u32 wqe_idx; bool read_fence = false; + u32 i, total_size = 0; u16 quanta; info->push_wqe = qp->push_db ? true : false; - op_info = &info->op.inline_send; + op_info = &info->op.send; + + if (unlikely(qp->max_sq_frag_cnt < op_info->num_sges)) + return -EINVAL; + + for (i = 0; i < op_info->num_sges; i++) + total_size += op_info->sg_list[i].length; - if (op_info->len > qp->max_inline_data) + if (unlikely(total_size > qp->max_inline_data)) return -EINVAL; - quanta = qp->wqe_ops.iw_inline_data_size_to_quanta(op_info->len); - wqe = irdma_qp_get_next_send_wqe(qp, &wqe_idx, quanta, op_info->len, + quanta = qp->wqe_ops.iw_inline_data_size_to_quanta(total_size); + wqe = irdma_qp_get_next_send_wqe(qp, &wqe_idx, quanta, total_size, info); if (!wqe) return -ENOMEM; @@ -772,7 +820,7 @@ hdr = FIELD_PREP(IRDMAQPSQ_REMSTAG, info->stag_to_inv) | FIELD_PREP(IRDMAQPSQ_AHID, op_info->ah_id) | FIELD_PREP(IRDMAQPSQ_OPCODE, info->op_type) | - FIELD_PREP(IRDMAQPSQ_INLINEDATALEN, op_info->len) | + FIELD_PREP(IRDMAQPSQ_INLINEDATALEN, total_size) | FIELD_PREP(IRDMAQPSQ_IMMDATAFLAG, (info->imm_data_valid ? 1 : 0)) | FIELD_PREP(IRDMAQPSQ_REPORTRTT, (info->report_rtt ? 1 : 0)) | @@ -788,8 +836,8 @@ if (info->imm_data_valid) set_64bit_val(wqe, 0, FIELD_PREP(IRDMAQPSQ_IMMDATA, info->imm_data)); - qp->wqe_ops.iw_copy_inline_data((u8 *)wqe, op_info->data, op_info->len, - qp->swqe_polarity); + qp->wqe_ops.iw_copy_inline_data((u8 *)wqe, op_info->sg_list, + op_info->num_sges, qp->swqe_polarity); dma_wmb(); /* make sure WQE is populated before valid bit is set */ @@ -1001,7 +1049,7 @@ __le64 *cqe; struct irdma_qp_uk *qp; struct irdma_ring *pring = NULL; - u32 wqe_idx, q_type; + u32 wqe_idx; int ret_code; bool move_cq_head = true; u8 polarity; @@ -1072,7 +1120,7 @@ info->ud_vlan_valid = false; } - q_type = (u8)FIELD_GET(IRDMA_CQ_SQ, qword3); + info->q_type = (u8)FIELD_GET(IRDMA_CQ_SQ, qword3); info->error = (bool)FIELD_GET(IRDMA_CQ_ERROR, qword3); info->push_dropped = (bool)FIELD_GET(IRDMACQ_PSHDROP, qword3); info->ipv4 = (bool)FIELD_GET(IRDMACQ_IPV4, qword3); @@ -1111,8 +1159,9 @@ } wqe_idx = (u32)FIELD_GET(IRDMA_CQ_WQEIDX, qword3); info->qp_handle = (irdma_qp_handle)(unsigned long)qp; + info->op_type = (u8)FIELD_GET(IRDMA_CQ_SQ, qword3); - if (q_type == IRDMA_CQE_QTYPE_RQ) { + if (info->q_type == IRDMA_CQE_QTYPE_RQ) { u32 array_idx; array_idx = wqe_idx / qp->rq_wqe_size_multiplier; @@ -1132,10 +1181,6 @@ info->bytes_xfered = (u32)FIELD_GET(IRDMACQ_PAYLDLEN, qword0); - if (info->imm_valid) - info->op_type = IRDMA_OP_TYPE_REC_IMM; - else - info->op_type = IRDMA_OP_TYPE_REC; if (qword3 & IRDMACQ_STAG) { info->stag_invalid_set = true; info->inv_stag = (u32)FIELD_GET(IRDMACQ_INVSTAG, qword2); @@ -1187,23 +1232,25 @@ do { __le64 *sw_wqe; u64 wqe_qword; - u8 op_type; u32 tail; tail = qp->sq_ring.tail; sw_wqe = qp->sq_base[tail].elem; get_64bit_val(sw_wqe, 24, &wqe_qword); - op_type = (u8)FIELD_GET(IRDMAQPSQ_OPCODE, wqe_qword); - info->op_type = op_type; + info->op_type = (u8)FIELD_GET(IRDMAQPSQ_OPCODE, + wqe_qword); IRDMA_RING_SET_TAIL(qp->sq_ring, tail + qp->sq_wrtrk_array[tail].quanta); - if (op_type != IRDMAQP_OP_NOP) { + if (info->op_type != IRDMAQP_OP_NOP) { info->wr_id = qp->sq_wrtrk_array[tail].wrid; info->bytes_xfered = qp->sq_wrtrk_array[tail].wr_len; break; } } while (1); + if (info->op_type == IRDMA_OP_TYPE_BIND_MW && + info->minor_err == FLUSH_PROT_ERR) + info->minor_err = FLUSH_MW_BIND_ERR; qp->sq_flush_seen = true; if (!IRDMA_RING_MORE_WORK(qp->sq_ring)) qp->sq_flush_complete = true; --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/user.h +++ linux-5.19.0/drivers/infiniband/hw/irdma/user.h @@ -103,6 +103,7 @@ FLUSH_FATAL_ERR, FLUSH_RETRY_EXC_ERR, FLUSH_MW_BIND_ERR, + FLUSH_REM_INV_REQ_ERR, }; enum irdma_cmpl_status { @@ -172,14 +173,6 @@ u32 ah_id; }; -struct irdma_post_inline_send { - void *data; - u32 len; - u32 qkey; - u32 dest_qp; - u32 ah_id; -}; - struct irdma_post_rq_info { u64 wr_id; struct ib_sge *sg_list; @@ -192,12 +185,6 @@ struct ib_sge rem_addr; }; -struct irdma_inline_rdma_write { - void *data; - u32 len; - struct ib_sge rem_addr; -}; - struct irdma_rdma_read { struct ib_sge *lo_sg_list; u32 num_lo_sges; @@ -240,8 +227,6 @@ struct irdma_rdma_read rdma_read; struct irdma_bind_window bind_window; struct irdma_inv_local_stag inv_local_stag; - struct irdma_inline_rdma_write inline_rdma_write; - struct irdma_post_inline_send inline_send; } op; }; @@ -260,6 +245,7 @@ u16 ud_vlan; u8 ud_smac[6]; u8 op_type; + u8 q_type; bool stag_invalid_set:1; /* or L_R_Key set */ bool push_dropped:1; bool error:1; @@ -290,7 +276,8 @@ bool post_sq); struct irdma_wqe_uk_ops { - void (*iw_copy_inline_data)(u8 *dest, u8 *src, u32 len, u8 polarity); + void (*iw_copy_inline_data)(u8 *dest, struct ib_sge *sge_list, + u32 num_sges, u8 polarity); u16 (*iw_inline_data_size_to_quanta)(u32 data_size); void (*iw_set_fragment)(__le64 *wqe, u32 offset, struct ib_sge *sge, u8 valid); --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/utils.c +++ linux-5.19.0/drivers/infiniband/hw/irdma/utils.c @@ -590,11 +590,14 @@ cqp_error = cqp_request->compl_info.error; if (cqp_error) { err_code = -EIO; - if (cqp_request->compl_info.maj_err_code == 0xFFFF && - cqp_request->compl_info.min_err_code == 0x8029) { - if (!rf->reset) { - rf->reset = true; - rf->gen_ops.request_reset(rf); + if (cqp_request->compl_info.maj_err_code == 0xFFFF) { + if (cqp_request->compl_info.min_err_code == 0x8002) + err_code = -EBUSY; + else if (cqp_request->compl_info.min_err_code == 0x8029) { + if (!rf->reset) { + rf->reset = true; + rf->gen_ops.request_reset(rf); + } } } } @@ -2475,6 +2478,9 @@ case IRDMA_QP_EVENT_ACCESS_ERR: ibevent.event = IB_EVENT_QP_ACCESS_ERR; break; + case IRDMA_QP_EVENT_REQ_ERR: + ibevent.event = IB_EVENT_QP_REQ_ERR; + break; } ibevent.device = iwqp->ibqp.device; ibevent.element.qp = &iwqp->ibqp; @@ -2584,6 +2590,7 @@ sw_wqe = qp->sq_base[wqe_idx].elem; get_64bit_val(sw_wqe, 24, &wqe_qword); cmpl->cpi.op_type = (u8)FIELD_GET(IRDMAQPSQ_OPCODE, IRDMAQPSQ_OPCODE); + cmpl->cpi.q_type = IRDMA_CQE_QTYPE_SQ; /* remove the SQ WR by moving SQ tail*/ IRDMA_RING_SET_TAIL(*sq_ring, sq_ring->tail + qp->sq_wrtrk_array[sq_ring->tail].quanta); @@ -2597,7 +2604,7 @@ spin_unlock_irqrestore(&iwqp->lock, flags2); spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1); if (compl_generated) - irdma_comp_handler(iwqp->iwrcq); + irdma_comp_handler(iwqp->iwscq); } else { spin_unlock_irqrestore(&iwqp->iwscq->lock, flags1); mod_delayed_work(iwqp->iwdev->cleanup_wq, &iwqp->dwork_flush, @@ -2622,6 +2629,7 @@ cmpl->cpi.wr_id = qp->rq_wrid_array[wqe_idx]; cmpl->cpi.op_type = IRDMA_OP_TYPE_REC; + cmpl->cpi.q_type = IRDMA_CQE_QTYPE_RQ; /* remove the RQ WR by moving RQ tail */ IRDMA_RING_SET_TAIL(*rq_ring, rq_ring->tail + 1); ibdev_dbg(iwqp->iwrcq->ibcq.device, --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/verbs.c +++ linux-5.19.0/drivers/infiniband/hw/irdma/verbs.c @@ -39,15 +39,18 @@ props->max_send_sge = hw_attrs->uk_attrs.max_hw_wq_frags; props->max_recv_sge = hw_attrs->uk_attrs.max_hw_wq_frags; props->max_cq = rf->max_cq - rf->used_cqs; - props->max_cqe = rf->max_cqe; + props->max_cqe = rf->max_cqe - 1; props->max_mr = rf->max_mr - rf->used_mrs; props->max_mw = props->max_mr; props->max_pd = rf->max_pd - rf->used_pds; props->max_sge_rd = hw_attrs->uk_attrs.max_hw_read_sges; props->max_qp_rd_atom = hw_attrs->max_hw_ird; props->max_qp_init_rd_atom = hw_attrs->max_hw_ord; - if (rdma_protocol_roce(ibdev, 1)) + if (rdma_protocol_roce(ibdev, 1)) { + props->device_cap_flags |= IB_DEVICE_RC_RNR_NAK_GEN; props->max_pkeys = IRDMA_PKEY_TBL_SZ; + } + props->max_ah = rf->max_ah; props->max_mcast_grp = rf->max_mcg; props->max_mcast_qp_attach = IRDMA_MAX_MGS_PER_CTX; @@ -61,36 +64,6 @@ } /** - * irdma_get_eth_speed_and_width - Get IB port speed and width from netdev speed - * @link_speed: netdev phy link speed - * @active_speed: IB port speed - * @active_width: IB port width - */ -static void irdma_get_eth_speed_and_width(u32 link_speed, u16 *active_speed, - u8 *active_width) -{ - if (link_speed <= SPEED_1000) { - *active_width = IB_WIDTH_1X; - *active_speed = IB_SPEED_SDR; - } else if (link_speed <= SPEED_10000) { - *active_width = IB_WIDTH_1X; - *active_speed = IB_SPEED_FDR10; - } else if (link_speed <= SPEED_20000) { - *active_width = IB_WIDTH_4X; - *active_speed = IB_SPEED_DDR; - } else if (link_speed <= SPEED_25000) { - *active_width = IB_WIDTH_1X; - *active_speed = IB_SPEED_EDR; - } else if (link_speed <= SPEED_40000) { - *active_width = IB_WIDTH_4X; - *active_speed = IB_SPEED_FDR10; - } else { - *active_width = IB_WIDTH_4X; - *active_speed = IB_SPEED_EDR; - } -} - -/** * irdma_query_port - get port attributes * @ibdev: device pointer from stack * @port: port number for query @@ -117,8 +90,9 @@ props->state = IB_PORT_DOWN; props->phys_state = IB_PORT_PHYS_STATE_DISABLED; } - irdma_get_eth_speed_and_width(SPEED_100000, &props->active_speed, - &props->active_width); + + ib_get_eth_speed(ibdev, port, &props->active_speed, + &props->active_width); if (rdma_protocol_roce(ibdev, 1)) { props->gid_tbl_len = 32; @@ -296,13 +270,19 @@ static int irdma_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata) { +#define IRDMA_ALLOC_UCTX_MIN_REQ_LEN offsetofend(struct irdma_alloc_ucontext_req, rsvd8) +#define IRDMA_ALLOC_UCTX_MIN_RESP_LEN offsetofend(struct irdma_alloc_ucontext_resp, rsvd) struct ib_device *ibdev = uctx->device; struct irdma_device *iwdev = to_iwdev(ibdev); - struct irdma_alloc_ucontext_req req; + struct irdma_alloc_ucontext_req req = {}; struct irdma_alloc_ucontext_resp uresp = {}; struct irdma_ucontext *ucontext = to_ucontext(uctx); struct irdma_uk_attrs *uk_attrs; + if (udata->inlen < IRDMA_ALLOC_UCTX_MIN_REQ_LEN || + udata->outlen < IRDMA_ALLOC_UCTX_MIN_RESP_LEN) + return -EINVAL; + if (ib_copy_from_udata(&req, udata, min(sizeof(req), udata->inlen))) return -EINVAL; @@ -314,7 +294,7 @@ uk_attrs = &iwdev->rf->sc_dev.hw_attrs.uk_attrs; /* GEN_1 legacy support with libi40iw */ - if (udata->outlen < sizeof(uresp)) { + if (udata->outlen == IRDMA_ALLOC_UCTX_MIN_RESP_LEN) { if (uk_attrs->hw_rev != IRDMA_GEN_1) return -EOPNOTSUPP; @@ -386,6 +366,7 @@ */ static int irdma_alloc_pd(struct ib_pd *pd, struct ib_udata *udata) { +#define IRDMA_ALLOC_PD_MIN_RESP_LEN offsetofend(struct irdma_alloc_pd_resp, rsvd) struct irdma_pd *iwpd = to_iwpd(pd); struct irdma_device *iwdev = to_iwdev(pd->device); struct irdma_sc_dev *dev = &iwdev->rf->sc_dev; @@ -395,6 +376,9 @@ u32 pd_id = 0; int err; + if (udata && udata->outlen < IRDMA_ALLOC_PD_MIN_RESP_LEN) + return -EINVAL; + err = irdma_alloc_rsrc(rf, rf->allocated_pds, rf->max_pd, &pd_id, &rf->next_pd); if (err) @@ -811,12 +795,14 @@ struct ib_qp_init_attr *init_attr, struct ib_udata *udata) { +#define IRDMA_CREATE_QP_MIN_REQ_LEN offsetofend(struct irdma_create_qp_req, user_compl_ctx) +#define IRDMA_CREATE_QP_MIN_RESP_LEN offsetofend(struct irdma_create_qp_resp, rsvd) struct ib_pd *ibpd = ibqp->pd; struct irdma_pd *iwpd = to_iwpd(ibpd); struct irdma_device *iwdev = to_iwdev(ibpd->device); struct irdma_pci_f *rf = iwdev->rf; struct irdma_qp *iwqp = to_iwqp(ibqp); - struct irdma_create_qp_req req; + struct irdma_create_qp_req req = {}; struct irdma_create_qp_resp uresp = {}; u32 qp_num = 0; int err_code; @@ -833,6 +819,10 @@ if (err_code) return err_code; + if (udata && (udata->inlen < IRDMA_CREATE_QP_MIN_REQ_LEN || + udata->outlen < IRDMA_CREATE_QP_MIN_RESP_LEN)) + return -EINVAL; + sq_size = init_attr->cap.max_send_wr; rq_size = init_attr->cap.max_recv_wr; @@ -1117,6 +1107,8 @@ int irdma_modify_qp_roce(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask, struct ib_udata *udata) { +#define IRDMA_MODIFY_QP_MIN_REQ_LEN offsetofend(struct irdma_modify_qp_req, rq_flush) +#define IRDMA_MODIFY_QP_MIN_RESP_LEN offsetofend(struct irdma_modify_qp_resp, push_valid) struct irdma_pd *iwpd = to_iwpd(ibqp->pd); struct irdma_qp *iwqp = to_iwqp(ibqp); struct irdma_device *iwdev = iwqp->iwdev; @@ -1135,6 +1127,13 @@ roce_info = &iwqp->roce_info; udp_info = &iwqp->udp_info; + if (udata) { + /* udata inlen/outlen can be 0 when supporting legacy libi40iw */ + if ((udata->inlen && udata->inlen < IRDMA_MODIFY_QP_MIN_REQ_LEN) || + (udata->outlen && udata->outlen < IRDMA_MODIFY_QP_MIN_RESP_LEN)) + return -EINVAL; + } + if (attr_mask & ~IB_QP_ATTR_STANDARD_BITS) return -EOPNOTSUPP; @@ -1214,6 +1213,7 @@ av->attrs = attr->ah_attr; rdma_gid2ip((struct sockaddr *)&av->sgid_addr, &sgid_attr->gid); rdma_gid2ip((struct sockaddr *)&av->dgid_addr, &attr->ah_attr.grh.dgid); + av->net_type = rdma_gid_attr_network_type(sgid_attr); if (av->net_type == RDMA_NETWORK_IPV6) { __be32 *daddr = av->dgid_addr.saddr_in6.sin6_addr.in6_u.u6_addr32; @@ -1371,7 +1371,7 @@ if (iwqp->iwarp_state == IRDMA_QP_STATE_ERROR) { spin_unlock_irqrestore(&iwqp->lock, flags); - if (udata) { + if (udata && udata->inlen) { if (ib_copy_from_udata(&ureq, udata, min(sizeof(ureq), udata->inlen))) return -EINVAL; @@ -1423,7 +1423,7 @@ } else { iwqp->ibqp_state = attr->qp_state; } - if (udata && dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_2) { + if (udata && udata->outlen && dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_2) { struct irdma_ucontext *ucontext; ucontext = rdma_udata_to_drv_context(udata, @@ -1463,6 +1463,8 @@ int irdma_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask, struct ib_udata *udata) { +#define IRDMA_MODIFY_QP_MIN_REQ_LEN offsetofend(struct irdma_modify_qp_req, rq_flush) +#define IRDMA_MODIFY_QP_MIN_RESP_LEN offsetofend(struct irdma_modify_qp_resp, push_valid) struct irdma_qp *iwqp = to_iwqp(ibqp); struct irdma_device *iwdev = iwqp->iwdev; struct irdma_sc_dev *dev = &iwdev->rf->sc_dev; @@ -1477,6 +1479,13 @@ int err; unsigned long flags; + if (udata) { + /* udata inlen/outlen can be 0 when supporting legacy libi40iw */ + if ((udata->inlen && udata->inlen < IRDMA_MODIFY_QP_MIN_REQ_LEN) || + (udata->outlen && udata->outlen < IRDMA_MODIFY_QP_MIN_RESP_LEN)) + return -EINVAL; + } + if (attr_mask & ~IB_QP_ATTR_STANDARD_BITS) return -EOPNOTSUPP; @@ -1562,7 +1571,7 @@ case IB_QPS_RESET: if (iwqp->iwarp_state == IRDMA_QP_STATE_ERROR) { spin_unlock_irqrestore(&iwqp->lock, flags); - if (udata) { + if (udata && udata->inlen) { if (ib_copy_from_udata(&ureq, udata, min(sizeof(ureq), udata->inlen))) return -EINVAL; @@ -1659,7 +1668,7 @@ } } } - if (attr_mask & IB_QP_STATE && udata && + if (attr_mask & IB_QP_STATE && udata && udata->outlen && dev->hw_attrs.uk_attrs.hw_rev >= IRDMA_GEN_2) { struct irdma_ucontext *ucontext; @@ -1776,11 +1785,11 @@ spin_unlock_irqrestore(&iwcq->lock, flags); irdma_cq_wq_destroy(iwdev->rf, cq); - irdma_cq_free_rsrc(iwdev->rf, iwcq); spin_lock_irqsave(&iwceq->ce_lock, flags); irdma_sc_cleanup_ceqes(cq, ceq); spin_unlock_irqrestore(&iwceq->ce_lock, flags); + irdma_cq_free_rsrc(iwdev->rf, iwcq); return 0; } @@ -1794,6 +1803,7 @@ static int irdma_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata) { +#define IRDMA_RESIZE_CQ_MIN_REQ_LEN offsetofend(struct irdma_resize_cq_req, user_cq_buffer) struct irdma_cq *iwcq = to_iwcq(ibcq); struct irdma_sc_dev *dev = iwcq->sc_cq.dev; struct irdma_cqp_request *cqp_request; @@ -1816,6 +1826,9 @@ IRDMA_FEATURE_CQ_RESIZE)) return -EOPNOTSUPP; + if (udata && udata->inlen < IRDMA_RESIZE_CQ_MIN_REQ_LEN) + return -EINVAL; + if (entries > rf->max_cqe) return -EINVAL; @@ -1948,6 +1961,8 @@ const struct ib_cq_init_attr *attr, struct ib_udata *udata) { +#define IRDMA_CREATE_CQ_MIN_REQ_LEN offsetofend(struct irdma_create_cq_req, user_cq_buf) +#define IRDMA_CREATE_CQ_MIN_RESP_LEN offsetofend(struct irdma_create_cq_resp, cq_size) struct ib_device *ibdev = ibcq->device; struct irdma_device *iwdev = to_iwdev(ibdev); struct irdma_pci_f *rf = iwdev->rf; @@ -1966,6 +1981,11 @@ err_code = cq_validate_flags(attr->flags, dev->hw_attrs.uk_attrs.hw_rev); if (err_code) return err_code; + + if (udata && (udata->inlen < IRDMA_CREATE_CQ_MIN_REQ_LEN || + udata->outlen < IRDMA_CREATE_CQ_MIN_RESP_LEN)) + return -EINVAL; + err_code = irdma_alloc_rsrc(rf, rf->allocated_cqs, rf->max_cq, &cq_num, &rf->next_cq); if (err_code) @@ -2310,9 +2330,10 @@ * @rf: RDMA PCI function * @iwmr: mr pointer for this memory registration * @use_pbles: flag if to use pble's + * @lvl_1_only: request only level 1 pble if true */ static int irdma_setup_pbles(struct irdma_pci_f *rf, struct irdma_mr *iwmr, - bool use_pbles) + bool use_pbles, bool lvl_1_only) { struct irdma_pbl *iwpbl = &iwmr->iwpbl; struct irdma_pble_alloc *palloc = &iwpbl->pble_alloc; @@ -2323,7 +2344,7 @@ if (use_pbles) { status = irdma_get_pble(rf->pble_rsrc, palloc, iwmr->page_cnt, - false); + lvl_1_only); if (status) return status; @@ -2366,16 +2387,10 @@ bool ret = true; pg_size = iwmr->page_size; - err = irdma_setup_pbles(iwdev->rf, iwmr, use_pbles); + err = irdma_setup_pbles(iwdev->rf, iwmr, use_pbles, true); if (err) return err; - if (use_pbles && palloc->level != PBLE_LEVEL_1) { - irdma_free_pble(iwdev->rf->pble_rsrc, palloc); - iwpbl->pbl_allocated = false; - return -ENOMEM; - } - if (use_pbles) arr = palloc->level1.addr; @@ -2735,6 +2750,7 @@ u64 virt, int access, struct ib_udata *udata) { +#define IRDMA_MEM_REG_MIN_REQ_LEN offsetofend(struct irdma_mem_reg_req, sq_pages) struct irdma_device *iwdev = to_iwdev(pd->device); struct irdma_ucontext *ucontext; struct irdma_pble_alloc *palloc; @@ -2752,6 +2768,9 @@ if (len > iwdev->rf->sc_dev.hw_attrs.max_mr_size) return ERR_PTR(-EINVAL); + if (udata->inlen < IRDMA_MEM_REG_MIN_REQ_LEN) + return ERR_PTR(-EINVAL); + region = ib_umem_get(pd->device, start, len, access); if (IS_ERR(region)) { @@ -2839,7 +2858,7 @@ case IRDMA_MEMREG_TYPE_MEM: use_pbles = (iwmr->page_cnt != 1); - err = irdma_setup_pbles(iwdev->rf, iwmr, use_pbles); + err = irdma_setup_pbles(iwdev->rf, iwmr, use_pbles, false); if (err) goto error; @@ -3001,6 +3020,7 @@ struct irdma_pble_alloc *palloc = &iwpbl->pble_alloc; struct irdma_cqp_request *cqp_request; struct cqp_cmds_info *cqp_info; + int status; if (iwmr->type != IRDMA_MEMREG_TYPE_MEM) { if (iwmr->region) { @@ -3031,8 +3051,11 @@ cqp_info->post_sq = 1; cqp_info->in.u.dealloc_stag.dev = &iwdev->rf->sc_dev; cqp_info->in.u.dealloc_stag.scratch = (uintptr_t)cqp_request; - irdma_handle_cqp_op(iwdev->rf, cqp_request); + status = irdma_handle_cqp_op(iwdev->rf, cqp_request); irdma_put_cqp_request(&iwdev->rf->cqp, cqp_request); + if (status) + return status; + irdma_free_stag(iwdev, iwmr->stag); done: if (iwpbl->pbl_allocated) @@ -3101,30 +3124,20 @@ info.stag_to_inv = ib_wr->ex.invalidate_rkey; } - if (ib_wr->send_flags & IB_SEND_INLINE) { - info.op.inline_send.data = (void *)(unsigned long) - ib_wr->sg_list[0].addr; - info.op.inline_send.len = ib_wr->sg_list[0].length; - if (iwqp->ibqp.qp_type == IB_QPT_UD || - iwqp->ibqp.qp_type == IB_QPT_GSI) { - ah = to_iwah(ud_wr(ib_wr)->ah); - info.op.inline_send.ah_id = ah->sc_ah.ah_info.ah_idx; - info.op.inline_send.qkey = ud_wr(ib_wr)->remote_qkey; - info.op.inline_send.dest_qp = ud_wr(ib_wr)->remote_qpn; - } + info.op.send.num_sges = ib_wr->num_sge; + info.op.send.sg_list = ib_wr->sg_list; + if (iwqp->ibqp.qp_type == IB_QPT_UD || + iwqp->ibqp.qp_type == IB_QPT_GSI) { + ah = to_iwah(ud_wr(ib_wr)->ah); + info.op.send.ah_id = ah->sc_ah.ah_info.ah_idx; + info.op.send.qkey = ud_wr(ib_wr)->remote_qkey; + info.op.send.dest_qp = ud_wr(ib_wr)->remote_qpn; + } + + if (ib_wr->send_flags & IB_SEND_INLINE) err = irdma_uk_inline_send(ukqp, &info, false); - } else { - info.op.send.num_sges = ib_wr->num_sge; - info.op.send.sg_list = ib_wr->sg_list; - if (iwqp->ibqp.qp_type == IB_QPT_UD || - iwqp->ibqp.qp_type == IB_QPT_GSI) { - ah = to_iwah(ud_wr(ib_wr)->ah); - info.op.send.ah_id = ah->sc_ah.ah_info.ah_idx; - info.op.send.qkey = ud_wr(ib_wr)->remote_qkey; - info.op.send.dest_qp = ud_wr(ib_wr)->remote_qpn; - } + else err = irdma_uk_send(ukqp, &info, false); - } break; case IB_WR_RDMA_WRITE_WITH_IMM: if (ukqp->qp_caps & IRDMA_WRITE_WITH_IMM) { @@ -3141,22 +3154,15 @@ else info.op_type = IRDMA_OP_TYPE_RDMA_WRITE; - if (ib_wr->send_flags & IB_SEND_INLINE) { - info.op.inline_rdma_write.data = (void *)(uintptr_t)ib_wr->sg_list[0].addr; - info.op.inline_rdma_write.len = - ib_wr->sg_list[0].length; - info.op.inline_rdma_write.rem_addr.addr = - rdma_wr(ib_wr)->remote_addr; - info.op.inline_rdma_write.rem_addr.lkey = - rdma_wr(ib_wr)->rkey; + info.op.rdma_write.num_lo_sges = ib_wr->num_sge; + info.op.rdma_write.lo_sg_list = ib_wr->sg_list; + info.op.rdma_write.rem_addr.addr = + rdma_wr(ib_wr)->remote_addr; + info.op.rdma_write.rem_addr.lkey = rdma_wr(ib_wr)->rkey; + if (ib_wr->send_flags & IB_SEND_INLINE) err = irdma_uk_inline_rdma_write(ukqp, &info, false); - } else { - info.op.rdma_write.lo_sg_list = (void *)ib_wr->sg_list; - info.op.rdma_write.num_lo_sges = ib_wr->num_sge; - info.op.rdma_write.rem_addr.addr = rdma_wr(ib_wr)->remote_addr; - info.op.rdma_write.rem_addr.lkey = rdma_wr(ib_wr)->rkey; + else err = irdma_uk_rdma_write(ukqp, &info, false); - } break; case IB_WR_RDMA_READ_WITH_INV: inv_stag = true; @@ -3300,6 +3306,8 @@ return IB_WC_RETRY_EXC_ERR; case FLUSH_MW_BIND_ERR: return IB_WC_MW_BIND_ERR; + case FLUSH_REM_INV_REQ_ERR: + return IB_WC_REM_INV_REQ_ERR; case FLUSH_FATAL_ERR: default: return IB_WC_FATAL_ERR; @@ -3314,7 +3322,6 @@ static void irdma_process_cqe(struct ib_wc *entry, struct irdma_cq_poll_info *cq_poll_info) { - struct irdma_qp *iwqp; struct irdma_sc_qp *qp; entry->wc_flags = 0; @@ -3322,7 +3329,6 @@ entry->wr_id = cq_poll_info->wr_id; qp = cq_poll_info->qp_handle; - iwqp = qp->qp_uk.back_qp; entry->qp = qp->qp_uk.back_qp; if (cq_poll_info->error) { @@ -3355,42 +3361,17 @@ } } - switch (cq_poll_info->op_type) { - case IRDMA_OP_TYPE_RDMA_WRITE: - case IRDMA_OP_TYPE_RDMA_WRITE_SOL: - entry->opcode = IB_WC_RDMA_WRITE; - break; - case IRDMA_OP_TYPE_RDMA_READ_INV_STAG: - case IRDMA_OP_TYPE_RDMA_READ: - entry->opcode = IB_WC_RDMA_READ; - break; - case IRDMA_OP_TYPE_SEND_INV: - case IRDMA_OP_TYPE_SEND_SOL: - case IRDMA_OP_TYPE_SEND_SOL_INV: - case IRDMA_OP_TYPE_SEND: - entry->opcode = IB_WC_SEND; - break; - case IRDMA_OP_TYPE_FAST_REG_NSMR: - entry->opcode = IB_WC_REG_MR; - break; - case IRDMA_OP_TYPE_INV_STAG: - entry->opcode = IB_WC_LOCAL_INV; - break; - case IRDMA_OP_TYPE_REC_IMM: - case IRDMA_OP_TYPE_REC: - entry->opcode = cq_poll_info->op_type == IRDMA_OP_TYPE_REC_IMM ? - IB_WC_RECV_RDMA_WITH_IMM : IB_WC_RECV; + if (cq_poll_info->q_type == IRDMA_CQE_QTYPE_SQ) { + set_ib_wc_op_sq(cq_poll_info, entry); + } else { + set_ib_wc_op_rq(cq_poll_info, entry, + qp->qp_uk.qp_caps & IRDMA_SEND_WITH_IMM ? + true : false); if (qp->qp_uk.qp_type != IRDMA_QP_TYPE_ROCE_UD && cq_poll_info->stag_invalid_set) { entry->ex.invalidate_rkey = cq_poll_info->inv_stag; entry->wc_flags |= IB_WC_WITH_INVALIDATE; } - break; - default: - ibdev_err(&iwqp->iwdev->ibdev, - "Invalid opcode = %d in CQE\n", cq_poll_info->op_type); - entry->status = IB_WC_GENERAL_ERR; - return; } if (qp->qp_uk.qp_type == IRDMA_QP_TYPE_ROCE_UD) { @@ -4281,12 +4262,16 @@ struct rdma_ah_init_attr *attr, struct ib_udata *udata) { +#define IRDMA_CREATE_AH_MIN_RESP_LEN offsetofend(struct irdma_create_ah_resp, rsvd) struct irdma_ah *ah = container_of(ibah, struct irdma_ah, ibah); struct irdma_device *iwdev = to_iwdev(ibah->pd->device); struct irdma_create_ah_resp uresp; struct irdma_ah *parent_ah; int err; + if (udata && udata->outlen < IRDMA_CREATE_AH_MIN_RESP_LEN) + return -EINVAL; + err = irdma_setup_ah(ibah, attr); if (err) return err; --- linux-5.19.0.orig/drivers/infiniband/hw/irdma/verbs.h +++ linux-5.19.0/drivers/infiniband/hw/irdma/verbs.h @@ -232,6 +232,59 @@ return (u16)FIELD_GET(IRDMA_FW_VER_MINOR, dev->feature_info[IRDMA_FEATURE_FW_INFO]); } +static inline void set_ib_wc_op_sq(struct irdma_cq_poll_info *cq_poll_info, + struct ib_wc *entry) +{ + switch (cq_poll_info->op_type) { + case IRDMA_OP_TYPE_RDMA_WRITE: + case IRDMA_OP_TYPE_RDMA_WRITE_SOL: + entry->opcode = IB_WC_RDMA_WRITE; + break; + case IRDMA_OP_TYPE_RDMA_READ_INV_STAG: + case IRDMA_OP_TYPE_RDMA_READ: + entry->opcode = IB_WC_RDMA_READ; + break; + case IRDMA_OP_TYPE_SEND_SOL: + case IRDMA_OP_TYPE_SEND_SOL_INV: + case IRDMA_OP_TYPE_SEND_INV: + case IRDMA_OP_TYPE_SEND: + entry->opcode = IB_WC_SEND; + break; + case IRDMA_OP_TYPE_FAST_REG_NSMR: + entry->opcode = IB_WC_REG_MR; + break; + case IRDMA_OP_TYPE_INV_STAG: + entry->opcode = IB_WC_LOCAL_INV; + break; + default: + entry->status = IB_WC_GENERAL_ERR; + } +} + +static inline void set_ib_wc_op_rq(struct irdma_cq_poll_info *cq_poll_info, + struct ib_wc *entry, bool send_imm_support) +{ + /** + * iWARP does not support sendImm, so the presence of Imm data + * must be WriteImm. + */ + if (!send_imm_support) { + entry->opcode = cq_poll_info->imm_valid ? + IB_WC_RECV_RDMA_WITH_IMM : + IB_WC_RECV; + return; + } + + switch (cq_poll_info->op_type) { + case IB_OPCODE_RDMA_WRITE_ONLY_WITH_IMMEDIATE: + case IB_OPCODE_RDMA_WRITE_LAST_WITH_IMMEDIATE: + entry->opcode = IB_WC_RECV_RDMA_WITH_IMM; + break; + default: + entry->opcode = IB_WC_RECV; + } +} + void irdma_mcast_mac(u32 *ip_addr, u8 *mac, bool ipv4); int irdma_ib_register_device(struct irdma_device *iwdev); void irdma_ib_unregister_device(struct irdma_device *iwdev); --- linux-5.19.0.orig/drivers/infiniband/hw/mlx4/mr.c +++ linux-5.19.0/drivers/infiniband/hw/mlx4/mr.c @@ -439,7 +439,6 @@ goto err_mr; mr->ibmr.rkey = mr->ibmr.lkey = mr->mmr.key; - mr->ibmr.length = length; mr->ibmr.page_size = 1U << shift; return &mr->ibmr; --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/cq.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/cq.c @@ -523,6 +523,10 @@ "Requestor" : "Responder", cq->mcq.cqn); mlx5_ib_dbg(dev, "syndrome 0x%x, vendor syndrome 0x%x\n", err_cqe->syndrome, err_cqe->vendor_err_synd); + if (wc->status != IB_WC_WR_FLUSH_ERR && + (*cur_qp)->type == MLX5_IB_QPT_REG_UMR) + dev->umrc.state = MLX5_UMR_STATE_RECOVER; + if (opcode == MLX5_CQE_REQ_ERR) { wq = &(*cur_qp)->sq; wqe_ctr = be16_to_cpu(cqe64->wqe_counter); @@ -738,9 +742,9 @@ *cqe_size = ucmd.cqe_size; - cq->buf.umem = - ib_umem_get(&dev->ib_dev, ucmd.buf_addr, - entries * ucmd.cqe_size, IB_ACCESS_LOCAL_WRITE); + cq->buf.umem = ib_umem_get_peer(&dev->ib_dev, ucmd.buf_addr, + entries * ucmd.cqe_size, + IB_ACCESS_LOCAL_WRITE, 0); if (IS_ERR(cq->buf.umem)) { err = PTR_ERR(cq->buf.umem); return err; @@ -1161,9 +1165,9 @@ if (ucmd.cqe_size && SIZE_MAX / ucmd.cqe_size <= entries - 1) return -EINVAL; - umem = ib_umem_get(&dev->ib_dev, ucmd.buf_addr, - (size_t)ucmd.cqe_size * entries, - IB_ACCESS_LOCAL_WRITE); + umem = ib_umem_get_peer(&dev->ib_dev, ucmd.buf_addr, + (size_t)ucmd.cqe_size * entries, + IB_ACCESS_LOCAL_WRITE, 0); if (IS_ERR(umem)) { err = PTR_ERR(umem); return err; --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/devx.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/devx.c @@ -2181,7 +2181,7 @@ if (err) return err; - obj->umem = ib_umem_get(&dev->ib_dev, addr, size, access); + obj->umem = ib_umem_get_peer(&dev->ib_dev, addr, size, access, 0); if (IS_ERR(obj->umem)) return PTR_ERR(obj->umem); return 0; @@ -2270,6 +2270,8 @@ order_base_2(page_size) - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET(umem, umem, page_offset, ib_umem_dma_offset(obj->umem, page_size)); + if (obj->umem->is_peer) + MLX5_SET(umem, umem, ats, MLX5_CAP_GEN(dev->mdev, ats)); mlx5_ib_populate_pas(obj->umem, page_size, mtt, (obj->umem->writable ? MLX5_IB_MTT_WRITE : 0) | --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/doorbell.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/doorbell.c @@ -66,8 +66,9 @@ page->user_virt = (virt & PAGE_MASK); page->refcnt = 0; - page->umem = ib_umem_get(context->ibucontext.device, virt & PAGE_MASK, - PAGE_SIZE, 0); + page->umem = + ib_umem_get_peer(context->ibucontext.device, virt & PAGE_MASK, + PAGE_SIZE, 0, 0); if (IS_ERR(page->umem)) { err = PTR_ERR(page->umem); kfree(page); --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/fs.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/fs.c @@ -2050,12 +2050,10 @@ if (err) return err; - if (flags) { - mlx5_ib_ft_type_to_namespace( + if (flags) + return mlx5_ib_ft_type_to_namespace( MLX5_IB_UAPI_FLOW_TABLE_TYPE_NIC_TX, &obj->ns_type); - return 0; - } } obj->ns_type = MLX5_FLOW_NAMESPACE_BYPASS; --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/mad.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/mad.c @@ -166,6 +166,12 @@ mdev = dev->mdev; mdev_port_num = 1; } + if (MLX5_CAP_GEN(dev->mdev, num_ports) == 1) { + /* set local port to one for Function-Per-Port HCA. */ + mdev = dev->mdev; + mdev_port_num = 1; + } + /* Declaring support of extended counters */ if (in_mad->mad_hdr.attr_id == IB_PMA_CLASS_PORT_INFO) { struct ib_class_port_info cpi = {}; --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/main.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/main.c @@ -1826,6 +1826,9 @@ if (MLX5_CAP_GEN(dev->mdev, drain_sigerr)) resp->comp_mask |= MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS; + resp->comp_mask |= + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG; + return 0; } @@ -2738,26 +2741,24 @@ int err; int port; - for (port = 1; port <= ARRAY_SIZE(dev->port_caps); port++) { - dev->port_caps[port - 1].has_smi = false; - if (MLX5_CAP_GEN(dev->mdev, port_type) == - MLX5_CAP_PORT_TYPE_IB) { - if (MLX5_CAP_GEN(dev->mdev, ib_virt)) { - err = mlx5_query_hca_vport_context(dev->mdev, 0, - port, 0, - &vport_ctx); - if (err) { - mlx5_ib_err(dev, "query_hca_vport_context for port=%d failed %d\n", - port, err); - return err; - } - dev->port_caps[port - 1].has_smi = - vport_ctx.has_smi; - } else { - dev->port_caps[port - 1].has_smi = true; - } + if (MLX5_CAP_GEN(dev->mdev, port_type) != MLX5_CAP_PORT_TYPE_IB) + return 0; + + for (port = 1; port <= dev->num_ports; port++) { + if (!MLX5_CAP_GEN(dev->mdev, ib_virt)) { + dev->port_caps[port - 1].has_smi = true; + continue; } + err = mlx5_query_hca_vport_context(dev->mdev, 0, port, 0, + &vport_ctx); + if (err) { + mlx5_ib_err(dev, "query_hca_vport_context for port=%d failed %d\n", + port, err); + return err; + } + dev->port_caps[port - 1].has_smi = vport_ctx.has_smi; } + return 0; } @@ -4338,7 +4339,7 @@ dev->mdev = mdev; dev->num_ports = num_ports; - if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_is_roce_init_enabled(mdev)) + if (ll == IB_LINK_LAYER_ETHERNET && !mlx5_get_roce_state(mdev)) profile = &raw_eth_profile; else profile = &pf_profile; --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/mlx5_ib.h +++ linux-5.19.0/drivers/infiniband/hw/mlx5/mlx5_ib.h @@ -717,13 +717,24 @@ struct completion done; }; +enum { + MLX5_UMR_STATE_UNINIT, + MLX5_UMR_STATE_ACTIVE, + MLX5_UMR_STATE_RECOVER, + MLX5_UMR_STATE_ERR, +}; + struct umr_common { struct ib_pd *pd; struct ib_cq *cq; struct ib_qp *qp; - /* control access to UMR QP + /* Protects from UMR QP overflow */ struct semaphore sem; + /* Protects from using UMR while the UMR is not active + */ + struct mutex lock; + unsigned int state; }; struct mlx5_cache_ent { --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/mr.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/mr.c @@ -46,6 +46,8 @@ #include "mlx5_ib.h" #include "umr.h" +static void mlx5_invalidate_umem(struct ib_umem *umem, void *priv); + enum { MAX_PENDING_REG_MR = 8, }; @@ -976,6 +978,9 @@ MLX5_SET(mkc, mkc, translations_octword_size, get_octo_len(iova, umem->length, mr->page_shift)); MLX5_SET(mkc, mkc, log_page_size, mr->page_shift); + if (umem->is_peer) + MLX5_SET(mkc, mkc, ma_translation_mode, + MLX5_CAP_GEN(dev->mdev, ats)); if (populate) { MLX5_SET(create_mkey_in, in, translations_octword_actual_size, get_octo_len(iova, umem->length, mr->page_shift)); @@ -1105,17 +1110,20 @@ int err; xlt_with_umr = mlx5r_umr_can_load_pas(dev, umem->length); - if (xlt_with_umr) { + if (xlt_with_umr && !umem->is_peer) { mr = alloc_cacheable_mr(pd, umem, iova, access_flags); } else { unsigned int page_size = mlx5_umem_find_best_pgsz( umem, mkc, log_page_size, 0, iova); mutex_lock(&dev->slow_path_mutex); - mr = reg_create(pd, umem, iova, access_flags, page_size, true); + mr = reg_create(pd, umem, iova, access_flags, page_size, + !xlt_with_umr); mutex_unlock(&dev->slow_path_mutex); } if (IS_ERR(mr)) { + if (umem->is_peer) + ib_umem_stop_invalidation_notifier(umem); ib_umem_release(umem); return ERR_CAST(mr); } @@ -1136,6 +1144,11 @@ return ERR_PTR(err); } } + + if (umem->is_peer) + ib_umem_activate_invalidation_notifier( + umem, mlx5_invalidate_umem, mr); + return &mr->ibmr; } @@ -1213,7 +1226,8 @@ if (access_flags & IB_ACCESS_ON_DEMAND) return create_user_odp_mr(pd, start, length, iova, access_flags, udata); - umem = ib_umem_get(&dev->ib_dev, start, length, access_flags); + umem = ib_umem_get_peer(&dev->ib_dev, start, length, access_flags, + IB_PEER_MEM_INVAL_SUPP); if (IS_ERR(umem)) return ERR_CAST(umem); return create_real_mr(pd, umem, iova, access_flags); @@ -1374,6 +1388,10 @@ return err; } + if (new_umem->is_peer) + ib_umem_activate_invalidation_notifier( + new_umem, mlx5_invalidate_umem, mr); + atomic_sub(ib_umem_num_pages(old_umem), &dev->mdev->priv.reg_pages); ib_umem_release(old_umem); atomic_add(ib_umem_num_pages(new_umem), &dev->mdev->priv.reg_pages); @@ -1417,8 +1435,13 @@ return ERR_PTR(err); return NULL; } - /* DM or ODP MR's don't have a normal umem so we can't re-use it */ - if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr)) + /* + * DM or ODP MR's don't have a normal umem so we can't re-use it. + * Peer umems cannot have their MR's changed once created due + * to races with invalidation. + */ + if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr) || + mr->umem->is_peer) goto recreate; /* @@ -1437,10 +1460,11 @@ } /* - * DM doesn't have a PAS list so we can't re-use it, odp/dmabuf does - * but the logic around releasing the umem is different + * DM doesn't have a PAS list so we can't re-use it, odp/dmabuf does but + * the logic around releasing the umem is different, peer memory + * invalidation semantics are incompatible. */ - if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr)) + if (!mr->umem || is_odp_mr(mr) || is_dmabuf_mr(mr) || mr->umem->is_peer) goto recreate; if (!(new_access_flags & IB_ACCESS_ON_DEMAND) && @@ -1448,8 +1472,9 @@ struct ib_umem *new_umem; unsigned long page_size; - new_umem = ib_umem_get(&dev->ib_dev, start, length, - new_access_flags); + new_umem = ib_umem_get_peer(&dev->ib_dev, start, length, + new_access_flags, + IB_PEER_MEM_INVAL_SUPP); if (IS_ERR(new_umem)) return ERR_CAST(new_umem); @@ -1569,14 +1594,23 @@ } /* Stop DMA */ - if (mr->cache_ent) { - if (mlx5r_umr_revoke_mr(mr)) { - spin_lock_irq(&mr->cache_ent->lock); - mr->cache_ent->total_mrs--; - spin_unlock_irq(&mr->cache_ent->lock); - mr->cache_ent = NULL; + rc = 0; + if (mr->cache_ent || (mr->umem && mr->umem->is_peer)) { + rc = mlx5r_umr_revoke_mr(mr); + if (mr->umem && mr->umem->is_peer) { + if (rc) + return rc; + ib_umem_stop_invalidation_notifier(mr->umem); } } + + if (mr->cache_ent && rc) { + spin_lock_irq(&mr->cache_ent->lock); + mr->cache_ent->total_mrs--; + spin_unlock_irq(&mr->cache_ent->lock); + mr->cache_ent = NULL; + } + if (!mr->cache_ent) { rc = destroy_mkey(to_mdev(mr->ibmr.device), mr); if (rc) @@ -2299,3 +2333,15 @@ return n; } + +static void mlx5_invalidate_umem(struct ib_umem *umem, void *priv) +{ + struct mlx5_ib_mr *mr = priv; + + /* + * DMA is turned off for the mkey, but the mkey remains otherwise + * untouched until the normal flow of dereg_mr happens. Any access to + * this mkey will generate CQEs. + */ + mlx5r_umr_revoke_mr(mr); +} --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/odp.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/odp.c @@ -795,7 +795,8 @@ { if (!mmkey) return false; - if (mmkey->type == MLX5_MKEY_MW) + if (mmkey->type == MLX5_MKEY_MW || + mmkey->type == MLX5_MKEY_INDIRECT_DEVX) return mlx5_base_mkey(mmkey->key) == mlx5_base_mkey(key); return mmkey->key == key; } --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/qp.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/qp.c @@ -809,7 +809,7 @@ if (!ucmd->buf_addr) return -EINVAL; - rwq->umem = ib_umem_get(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0); + rwq->umem = ib_umem_get_peer(&dev->ib_dev, ucmd->buf_addr, rwq->buf_size, 0, 0); if (IS_ERR(rwq->umem)) { mlx5_ib_dbg(dev, "umem_get failed\n"); err = PTR_ERR(rwq->umem); @@ -919,8 +919,9 @@ if (ucmd->buf_addr && ubuffer->buf_size) { ubuffer->buf_addr = ucmd->buf_addr; - ubuffer->umem = ib_umem_get(&dev->ib_dev, ubuffer->buf_addr, - ubuffer->buf_size, 0); + ubuffer->umem = + ib_umem_get_peer(&dev->ib_dev, ubuffer->buf_addr, + ubuffer->buf_size, 0, 0); if (IS_ERR(ubuffer->umem)) { err = PTR_ERR(ubuffer->umem); goto err_bfreg; @@ -1271,8 +1272,8 @@ if (ts_format < 0) return ts_format; - sq->ubuffer.umem = ib_umem_get(&dev->ib_dev, ubuffer->buf_addr, - ubuffer->buf_size, 0); + sq->ubuffer.umem = ib_umem_get_peer(&dev->ib_dev, ubuffer->buf_addr, + ubuffer->buf_size, 0, 0); if (IS_ERR(sq->ubuffer.umem)) return PTR_ERR(sq->ubuffer.umem); page_size = mlx5_umem_find_best_quantized_pgoff( --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/srq.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/srq.c @@ -75,7 +75,7 @@ srq->wq_sig = !!(ucmd.flags & MLX5_SRQ_FLAG_SIGNATURE); - srq->umem = ib_umem_get(pd->device, ucmd.buf_addr, buf_size, 0); + srq->umem = ib_umem_get_peer(pd->device, ucmd.buf_addr, buf_size, 0, 0); if (IS_ERR(srq->umem)) { mlx5_ib_dbg(dev, "failed umem get, size %d\n", buf_size); err = PTR_ERR(srq->umem); --- linux-5.19.0.orig/drivers/infiniband/hw/mlx5/umr.c +++ linux-5.19.0/drivers/infiniband/hw/mlx5/umr.c @@ -176,6 +176,8 @@ dev->umrc.pd = pd; sema_init(&dev->umrc.sem, MAX_UMR_WR); + mutex_init(&dev->umrc.lock); + dev->umrc.state = MLX5_UMR_STATE_ACTIVE; return 0; @@ -190,11 +192,38 @@ void mlx5r_umr_resource_cleanup(struct mlx5_ib_dev *dev) { + if (dev->umrc.state == MLX5_UMR_STATE_UNINIT) + return; ib_destroy_qp(dev->umrc.qp); ib_free_cq(dev->umrc.cq); ib_dealloc_pd(dev->umrc.pd); } +static int mlx5r_umr_recover(struct mlx5_ib_dev *dev) +{ + struct umr_common *umrc = &dev->umrc; + struct ib_qp_attr attr; + int err; + + attr.qp_state = IB_QPS_RESET; + err = ib_modify_qp(umrc->qp, &attr, IB_QP_STATE); + if (err) { + mlx5_ib_dbg(dev, "Couldn't modify UMR QP\n"); + goto err; + } + + err = mlx5r_umr_qp_rst2rts(dev, umrc->qp); + if (err) + goto err; + + umrc->state = MLX5_UMR_STATE_ACTIVE; + return 0; + +err: + umrc->state = MLX5_UMR_STATE_ERR; + return err; +} + static int mlx5r_umr_post_send(struct ib_qp *ibqp, u32 mkey, struct ib_cqe *cqe, struct mlx5r_umr_wqe *wqe, bool with_data) { @@ -231,7 +260,7 @@ id.ib_cqe = cqe; mlx5r_finish_wqe(qp, ctrl, seg, size, cur_edge, idx, id.wr_id, 0, - MLX5_FENCE_MODE_NONE, MLX5_OPCODE_UMR); + MLX5_FENCE_MODE_INITIATOR_SMALL, MLX5_OPCODE_UMR); mlx5r_ring_db(qp, 1, ctrl); @@ -270,17 +299,49 @@ mlx5r_umr_init_context(&umr_context); down(&umrc->sem); - err = mlx5r_umr_post_send(umrc->qp, mkey, &umr_context.cqe, wqe, - with_data); - if (err) - mlx5_ib_warn(dev, "UMR post send failed, err %d\n", err); - else { - wait_for_completion(&umr_context.done); - if (umr_context.status != IB_WC_SUCCESS) { - mlx5_ib_warn(dev, "reg umr failed (%u)\n", - umr_context.status); + while (true) { + mutex_lock(&umrc->lock); + if (umrc->state == MLX5_UMR_STATE_ERR) { + mutex_unlock(&umrc->lock); err = -EFAULT; + break; + } + + if (umrc->state == MLX5_UMR_STATE_RECOVER) { + mutex_unlock(&umrc->lock); + usleep_range(3000, 5000); + continue; + } + + err = mlx5r_umr_post_send(umrc->qp, mkey, &umr_context.cqe, wqe, + with_data); + mutex_unlock(&umrc->lock); + if (err) { + mlx5_ib_warn(dev, "UMR post send failed, err %d\n", + err); + break; } + + wait_for_completion(&umr_context.done); + + if (umr_context.status == IB_WC_SUCCESS) + break; + + if (umr_context.status == IB_WC_WR_FLUSH_ERR) + continue; + + WARN_ON_ONCE(1); + mlx5_ib_warn(dev, + "reg umr failed (%u). Trying to recover and resubmit the flushed WQEs\n", + umr_context.status); + mutex_lock(&umrc->lock); + err = mlx5r_umr_recover(dev); + mutex_unlock(&umrc->lock); + if (err) + mlx5_ib_warn(dev, "couldn't recover UMR, err %d\n", + err); + err = -EFAULT; + break; } up(&umrc->sem); return err; --- linux-5.19.0.orig/drivers/infiniband/hw/qedr/main.c +++ linux-5.19.0/drivers/infiniband/hw/qedr/main.c @@ -344,6 +344,10 @@ if (IS_IWARP(dev)) { xa_init(&dev->qps); dev->iwarp_wq = create_singlethread_workqueue("qedr_iwarpq"); + if (!dev->iwarp_wq) { + rc = -ENOMEM; + goto err1; + } } /* Allocate Status blocks for CNQ */ @@ -351,7 +355,7 @@ GFP_KERNEL); if (!dev->sb_array) { rc = -ENOMEM; - goto err1; + goto err_destroy_wq; } dev->cnq_array = kcalloc(dev->num_cnq, @@ -402,6 +406,9 @@ kfree(dev->cnq_array); err2: kfree(dev->sb_array); +err_destroy_wq: + if (IS_IWARP(dev)) + destroy_workqueue(dev->iwarp_wq); err1: kfree(dev->sgid_tbl); return rc; --- linux-5.19.0.orig/drivers/infiniband/hw/qedr/verbs.c +++ linux-5.19.0/drivers/infiniband/hw/qedr/verbs.c @@ -3084,7 +3084,7 @@ else DP_ERR(dev, "roce alloc tid returned error %d\n", rc); - goto err0; + goto err1; } /* Index only, 18 bit long, lkey = itid << 8 | key */ @@ -3108,7 +3108,7 @@ rc = dev->ops->rdma_register_tid(dev->rdma_ctx, &mr->hw_mr); if (rc) { DP_ERR(dev, "roce register tid returned an error %d\n", rc); - goto err1; + goto err2; } mr->ibmr.lkey = mr->hw_mr.itid << 8 | mr->hw_mr.key; @@ -3117,8 +3117,10 @@ DP_DEBUG(dev, QEDR_MSG_MR, "alloc frmr: %x\n", mr->ibmr.lkey); return mr; -err1: +err2: dev->ops->rdma_free_tid(dev->rdma_ctx, mr->hw_mr.itid); +err1: + qedr_free_pbl(dev, &mr->info.pbl_info, mr->info.pbl_table); err0: kfree(mr); return ERR_PTR(rc); --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_comp.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_comp.c @@ -114,6 +114,8 @@ { struct rxe_qp *qp = from_timer(qp, t, retrans_timer); + pr_debug("%s: fired for qp#%d\n", __func__, qp->elem.index); + if (qp->valid) { qp->comp.timeout = 1; rxe_run_task(&qp->comp.task, 1); @@ -730,11 +732,15 @@ break; case COMPST_RNR_RETRY: + /* we come here if we received an RNR NAK */ if (qp->comp.rnr_retry > 0) { if (qp->comp.rnr_retry != 7) qp->comp.rnr_retry--; - qp->req.need_retry = 1; + /* don't start a retry flow until the + * rnr timer has fired + */ + qp->req.wait_for_rnr_timer = 1; pr_debug("qp#%d set rnr nak timer\n", qp_num(qp)); mod_timer(&qp->rnr_nak_timer, --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_loc.h +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_loc.h @@ -64,10 +64,10 @@ /* rxe_mr.c */ u8 rxe_get_next_key(u32 last_key); -void rxe_mr_init_dma(struct rxe_pd *pd, int access, struct rxe_mr *mr); -int rxe_mr_init_user(struct rxe_pd *pd, u64 start, u64 length, u64 iova, +void rxe_mr_init_dma(int access, struct rxe_mr *mr); +int rxe_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, u64 iova, int access, struct rxe_mr *mr); -int rxe_mr_init_fast(struct rxe_pd *pd, int max_pages, struct rxe_mr *mr); +int rxe_mr_init_fast(int max_pages, struct rxe_mr *mr); int rxe_mr_copy(struct rxe_mr *mr, u64 iova, void *addr, int length, enum rxe_mr_copy_dir dir); int copy_data(struct rxe_pd *pd, int access, struct rxe_dma_info *dma, @@ -77,9 +77,8 @@ enum rxe_mr_lookup_type type); int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length); int advance_dma_data(struct rxe_dma_info *dma, unsigned int length); -int rxe_invalidate_mr(struct rxe_qp *qp, u32 rkey); +int rxe_invalidate_mr(struct rxe_qp *qp, u32 key); int rxe_reg_fast_mr(struct rxe_qp *qp, struct rxe_send_wqe *wqe); -int rxe_mr_set_page(struct ib_mr *ibmr, u64 addr); int rxe_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata); void rxe_mr_cleanup(struct rxe_pool_elem *elem); --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_mr.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_mr.c @@ -24,7 +24,7 @@ int mr_check_range(struct rxe_mr *mr, u64 iova, size_t length) { - struct rxe_map_set *set = mr->cur_map_set; + switch (mr->type) { case IB_MR_TYPE_DMA: @@ -32,8 +32,8 @@ case IB_MR_TYPE_USER: case IB_MR_TYPE_MEM_REG: - if (iova < set->iova || length > set->length || - iova > set->iova + set->length - length) + if (iova < mr->iova || length > mr->length || + iova > mr->iova + mr->length - length) return -EFAULT; return 0; @@ -65,106 +65,57 @@ mr->map_shift = ilog2(RXE_BUF_PER_MAP); } -static void rxe_mr_free_map_set(int num_map, struct rxe_map_set *set) -{ - int i; - - for (i = 0; i < num_map; i++) - kfree(set->map[i]); - - kfree(set->map); - kfree(set); -} - -static int rxe_mr_alloc_map_set(int num_map, struct rxe_map_set **setp) +static int rxe_mr_alloc(struct rxe_mr *mr, int num_buf) { int i; - struct rxe_map_set *set; + int num_map; + struct rxe_map **map = mr->map; - set = kmalloc(sizeof(*set), GFP_KERNEL); - if (!set) - goto err_out; + num_map = (num_buf + RXE_BUF_PER_MAP - 1) / RXE_BUF_PER_MAP; - set->map = kmalloc_array(num_map, sizeof(struct rxe_map *), GFP_KERNEL); - if (!set->map) - goto err_free_set; + mr->map = kmalloc_array(num_map, sizeof(*map), GFP_KERNEL); + if (!mr->map) + goto err1; for (i = 0; i < num_map; i++) { - set->map[i] = kmalloc(sizeof(struct rxe_map), GFP_KERNEL); - if (!set->map[i]) - goto err_free_map; + mr->map[i] = kmalloc(sizeof(**map), GFP_KERNEL); + if (!mr->map[i]) + goto err2; } - *setp = set; - - return 0; - -err_free_map: - for (i--; i >= 0; i--) - kfree(set->map[i]); - - kfree(set->map); -err_free_set: - kfree(set); -err_out: - return -ENOMEM; -} - -/** - * rxe_mr_alloc() - Allocate memory map array(s) for MR - * @mr: Memory region - * @num_buf: Number of buffer descriptors to support - * @both: If non zero allocate both mr->map and mr->next_map - * else just allocate mr->map. Used for fast MRs - * - * Return: 0 on success else an error - */ -static int rxe_mr_alloc(struct rxe_mr *mr, int num_buf, int both) -{ - int ret; - int num_map; - BUILD_BUG_ON(!is_power_of_2(RXE_BUF_PER_MAP)); - num_map = (num_buf + RXE_BUF_PER_MAP - 1) / RXE_BUF_PER_MAP; mr->map_shift = ilog2(RXE_BUF_PER_MAP); mr->map_mask = RXE_BUF_PER_MAP - 1; + mr->num_buf = num_buf; - mr->max_buf = num_map * RXE_BUF_PER_MAP; mr->num_map = num_map; - - ret = rxe_mr_alloc_map_set(num_map, &mr->cur_map_set); - if (ret) - return -ENOMEM; - - if (both) { - ret = rxe_mr_alloc_map_set(num_map, &mr->next_map_set); - if (ret) - goto err_free; - } + mr->max_buf = num_map * RXE_BUF_PER_MAP; return 0; -err_free: - rxe_mr_free_map_set(mr->num_map, mr->cur_map_set); - mr->cur_map_set = NULL; +err2: + for (i--; i >= 0; i--) + kfree(mr->map[i]); + + kfree(mr->map); + mr->map = NULL; +err1: return -ENOMEM; } -void rxe_mr_init_dma(struct rxe_pd *pd, int access, struct rxe_mr *mr) +void rxe_mr_init_dma(int access, struct rxe_mr *mr) { rxe_mr_init(access, mr); - mr->ibmr.pd = &pd->ibpd; mr->access = access; mr->state = RXE_MR_STATE_VALID; mr->type = IB_MR_TYPE_DMA; } -int rxe_mr_init_user(struct rxe_pd *pd, u64 start, u64 length, u64 iova, +int rxe_mr_init_user(struct rxe_dev *rxe, u64 start, u64 length, u64 iova, int access, struct rxe_mr *mr) { - struct rxe_map_set *set; struct rxe_map **map; struct rxe_phys_buf *buf = NULL; struct ib_umem *umem; @@ -173,7 +124,7 @@ void *vaddr; int err; - umem = ib_umem_get(pd->ibpd.device, start, length, access); + umem = ib_umem_get(&rxe->ib_dev, start, length, access); if (IS_ERR(umem)) { pr_warn("%s: Unable to pin memory region err = %d\n", __func__, (int)PTR_ERR(umem)); @@ -185,20 +136,18 @@ rxe_mr_init(access, mr); - err = rxe_mr_alloc(mr, num_buf, 0); + err = rxe_mr_alloc(mr, num_buf); if (err) { pr_warn("%s: Unable to allocate memory for map\n", __func__); goto err_release_umem; } - set = mr->cur_map_set; - set->page_shift = PAGE_SHIFT; - set->page_mask = PAGE_SIZE - 1; - - num_buf = 0; - map = set->map; + mr->page_shift = PAGE_SHIFT; + mr->page_mask = PAGE_SIZE - 1; + num_buf = 0; + map = mr->map; if (length > 0) { buf = map[0]->buf; @@ -216,25 +165,23 @@ err = -ENOMEM; goto err_release_umem; } - buf->addr = (uintptr_t)vaddr; buf->size = PAGE_SIZE; num_buf++; buf++; + } } - mr->ibmr.pd = &pd->ibpd; mr->umem = umem; mr->access = access; + mr->length = length; + mr->iova = iova; + mr->va = start; + mr->offset = ib_umem_offset(umem); mr->state = RXE_MR_STATE_VALID; mr->type = IB_MR_TYPE_USER; - set->length = length; - set->iova = iova; - set->va = start; - set->offset = ib_umem_offset(umem); - return 0; err_release_umem: @@ -243,18 +190,17 @@ return err; } -int rxe_mr_init_fast(struct rxe_pd *pd, int max_pages, struct rxe_mr *mr) +int rxe_mr_init_fast(int max_pages, struct rxe_mr *mr) { int err; /* always allow remote access for FMRs */ rxe_mr_init(IB_ACCESS_REMOTE, mr); - err = rxe_mr_alloc(mr, max_pages, 1); + err = rxe_mr_alloc(mr, max_pages); if (err) goto err1; - mr->ibmr.pd = &pd->ibpd; mr->max_buf = max_pages; mr->state = RXE_MR_STATE_FREE; mr->type = IB_MR_TYPE_MEM_REG; @@ -268,24 +214,21 @@ static void lookup_iova(struct rxe_mr *mr, u64 iova, int *m_out, int *n_out, size_t *offset_out) { - struct rxe_map_set *set = mr->cur_map_set; - size_t offset = iova - set->iova + set->offset; + size_t offset = iova - mr->iova + mr->offset; int map_index; int buf_index; u64 length; - struct rxe_map *map; - if (likely(set->page_shift)) { - *offset_out = offset & set->page_mask; - offset >>= set->page_shift; + if (likely(mr->page_shift)) { + *offset_out = offset & mr->page_mask; + offset >>= mr->page_shift; *n_out = offset & mr->map_mask; *m_out = offset >> mr->map_shift; } else { map_index = 0; buf_index = 0; - map = set->map[map_index]; - length = map->buf[buf_index].size; + length = mr->map[map_index]->buf[buf_index].size; while (offset >= length) { offset -= length; @@ -295,8 +238,7 @@ map_index++; buf_index = 0; } - map = set->map[map_index]; - length = map->buf[buf_index].size; + length = mr->map[map_index]->buf[buf_index].size; } *m_out = map_index; @@ -317,7 +259,7 @@ goto out; } - if (!mr->cur_map_set) { + if (!mr->map) { addr = (void *)(uintptr_t)iova; goto out; } @@ -330,13 +272,13 @@ lookup_iova(mr, iova, &m, &n, &offset); - if (offset + length > mr->cur_map_set->map[m]->buf[n].size) { + if (offset + length > mr->map[m]->buf[n].size) { pr_warn("crosses page boundary\n"); addr = NULL; goto out; } - addr = (void *)(uintptr_t)mr->cur_map_set->map[m]->buf[n].addr + offset; + addr = (void *)(uintptr_t)mr->map[m]->buf[n].addr + offset; out: return addr; @@ -372,7 +314,7 @@ return 0; } - WARN_ON_ONCE(!mr->cur_map_set); + WARN_ON_ONCE(!mr->map); err = mr_check_range(mr, iova, length); if (err) { @@ -382,7 +324,7 @@ lookup_iova(mr, iova, &m, &i, &offset); - map = mr->cur_map_set->map + m; + map = mr->map + m; buf = map[0]->buf + i; while (length > 0) { @@ -576,22 +518,22 @@ return mr; } -int rxe_invalidate_mr(struct rxe_qp *qp, u32 rkey) +int rxe_invalidate_mr(struct rxe_qp *qp, u32 key) { struct rxe_dev *rxe = to_rdev(qp->ibqp.device); struct rxe_mr *mr; int ret; - mr = rxe_pool_get_index(&rxe->mr_pool, rkey >> 8); + mr = rxe_pool_get_index(&rxe->mr_pool, key >> 8); if (!mr) { - pr_err("%s: No MR for rkey %#x\n", __func__, rkey); + pr_err("%s: No MR for key %#x\n", __func__, key); ret = -EINVAL; goto err; } - if (rkey != mr->rkey) { - pr_err("%s: rkey (%#x) doesn't match mr->rkey (%#x)\n", - __func__, rkey, mr->rkey); + if (mr->rkey ? (key != mr->rkey) : (key != mr->lkey)) { + pr_err("%s: wr key (%#x) doesn't match mr key (%#x)\n", + __func__, key, (mr->rkey ? mr->rkey : mr->lkey)); ret = -EINVAL; goto err_drop_ref; } @@ -628,9 +570,8 @@ int rxe_reg_fast_mr(struct rxe_qp *qp, struct rxe_send_wqe *wqe) { struct rxe_mr *mr = to_rmr(wqe->wr.wr.reg.mr); - u32 key = wqe->wr.wr.reg.key & 0xff; + u32 key = wqe->wr.wr.reg.key; u32 access = wqe->wr.wr.reg.access; - struct rxe_map_set *set; /* user can only register MR in free state */ if (unlikely(mr->state != RXE_MR_STATE_FREE)) { @@ -646,36 +587,19 @@ return -EINVAL; } + /* user is only allowed to change key portion of l/rkey */ + if (unlikely((mr->lkey & ~0xff) != (key & ~0xff))) { + pr_warn("%s: key = 0x%x has wrong index mr->lkey = 0x%x\n", + __func__, key, mr->lkey); + return -EINVAL; + } + mr->access = access; - mr->lkey = (mr->lkey & ~0xff) | key; - mr->rkey = (access & IB_ACCESS_REMOTE) ? mr->lkey : 0; + mr->lkey = key; + mr->rkey = (access & IB_ACCESS_REMOTE) ? key : 0; + mr->iova = wqe->wr.wr.reg.mr->iova; mr->state = RXE_MR_STATE_VALID; - set = mr->cur_map_set; - mr->cur_map_set = mr->next_map_set; - mr->cur_map_set->iova = wqe->wr.wr.reg.mr->iova; - mr->next_map_set = set; - - return 0; -} - -int rxe_mr_set_page(struct ib_mr *ibmr, u64 addr) -{ - struct rxe_mr *mr = to_rmr(ibmr); - struct rxe_map_set *set = mr->next_map_set; - struct rxe_map *map; - struct rxe_phys_buf *buf; - - if (unlikely(set->nbuf == mr->num_buf)) - return -ENOMEM; - - map = set->map[set->nbuf / RXE_BUF_PER_MAP]; - buf = &map->buf[set->nbuf % RXE_BUF_PER_MAP]; - - buf->addr = addr; - buf->size = ibmr->page_size; - set->nbuf++; - return 0; } @@ -695,14 +619,15 @@ void rxe_mr_cleanup(struct rxe_pool_elem *elem) { struct rxe_mr *mr = container_of(elem, typeof(*mr), elem); + int i; rxe_put(mr_pd(mr)); - ib_umem_release(mr->umem); - if (mr->cur_map_set) - rxe_mr_free_map_set(mr->num_map, mr->cur_map_set); + if (mr->map) { + for (i = 0; i < mr->num_map; i++) + kfree(mr->map[i]); - if (mr->next_map_set) - rxe_mr_free_map_set(mr->num_map, mr->next_map_set); + kfree(mr->map); + } } --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_mw.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_mw.c @@ -48,8 +48,6 @@ static int rxe_check_bind_mw(struct rxe_qp *qp, struct rxe_send_wqe *wqe, struct rxe_mw *mw, struct rxe_mr *mr) { - u32 key = wqe->wr.wr.mw.rkey & 0xff; - if (mw->ibmw.type == IB_MW_TYPE_1) { if (unlikely(mw->state != RXE_MW_STATE_VALID)) { pr_err_once( @@ -87,11 +85,6 @@ } } - if (unlikely(key == (mw->rkey & 0xff))) { - pr_err_once("attempt to bind MW with same key\n"); - return -EINVAL; - } - /* remaining checks only apply to a nonzero MR */ if (!mr) return 0; @@ -119,15 +112,15 @@ /* C10-75 */ if (mw->access & IB_ZERO_BASED) { - if (unlikely(wqe->wr.wr.mw.length > mr->cur_map_set->length)) { + if (unlikely(wqe->wr.wr.mw.length > mr->length)) { pr_err_once( "attempt to bind a ZB MW outside of the MR\n"); return -EINVAL; } } else { - if (unlikely((wqe->wr.wr.mw.addr < mr->cur_map_set->iova) || + if (unlikely((wqe->wr.wr.mw.addr < mr->iova) || ((wqe->wr.wr.mw.addr + wqe->wr.wr.mw.length) > - (mr->cur_map_set->iova + mr->cur_map_set->length)))) { + (mr->iova + mr->length)))) { pr_err_once( "attempt to bind a VA MW outside of the MR\n"); return -EINVAL; --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_param.h +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_param.h @@ -105,6 +105,12 @@ RXE_INFLIGHT_SKBS_PER_QP_HIGH = 64, RXE_INFLIGHT_SKBS_PER_QP_LOW = 16, + /* Max number of interations of each tasklet + * before yielding the cpu to let other + * work make progress + */ + RXE_MAX_ITERATIONS = 1024, + /* Delay before calling arbiter timer */ RXE_NSEC_ARB_TIMER_DELAY = 200, --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_pool.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_pool.c @@ -139,7 +139,7 @@ err = xa_alloc_cyclic(&pool->xa, &elem->index, elem, pool->limit, &pool->next, GFP_KERNEL); - if (err) + if (err < 0) goto err_free; return obj; @@ -167,7 +167,7 @@ err = xa_alloc_cyclic(&pool->xa, &elem->index, elem, pool->limit, &pool->next, GFP_KERNEL); - if (err) + if (err < 0) goto err_cnt; return 0; --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_qp.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_qp.c @@ -174,6 +174,14 @@ spin_lock_init(&qp->state_lock); + spin_lock_init(&qp->req.task.state_lock); + spin_lock_init(&qp->resp.task.state_lock); + spin_lock_init(&qp->comp.task.state_lock); + + spin_lock_init(&qp->sq.sq_lock); + spin_lock_init(&qp->rq.producer_lock); + spin_lock_init(&qp->rq.consumer_lock); + atomic_set(&qp->ssn, 0); atomic_set(&qp->skb_out, 0); } @@ -233,7 +241,6 @@ qp->req.opcode = -1; qp->comp.opcode = -1; - spin_lock_init(&qp->sq.sq_lock); skb_queue_head_init(&qp->req_pkts); rxe_init_task(rxe, &qp->req.task, qp, @@ -284,9 +291,6 @@ } } - spin_lock_init(&qp->rq.producer_lock); - spin_lock_init(&qp->rq.consumer_lock); - skb_queue_head_init(&qp->resp_pkts); rxe_init_task(rxe, &qp->resp.task, qp, @@ -507,6 +511,7 @@ atomic_set(&qp->ssn, 0); qp->req.opcode = -1; qp->req.need_retry = 0; + qp->req.wait_for_rnr_timer = 0; qp->req.noack_pkts = 0; qp->resp.msn = 0; qp->resp.opcode = -1; @@ -789,7 +794,9 @@ rxe_cleanup_task(&qp->comp.task); /* flush out any receive wr's or pending requests */ - __rxe_do_task(&qp->req.task); + if (qp->req.task.func) + __rxe_do_task(&qp->req.task); + if (qp->sq.queue) { __rxe_do_task(&qp->comp.task); __rxe_do_task(&qp->req.task); @@ -804,13 +811,15 @@ if (qp->rq.queue) rxe_queue_cleanup(qp->rq.queue); - atomic_dec(&qp->scq->num_wq); - if (qp->scq) + if (qp->scq) { + atomic_dec(&qp->scq->num_wq); rxe_put(qp->scq); + } - atomic_dec(&qp->rcq->num_wq); - if (qp->rcq) + if (qp->rcq) { + atomic_dec(&qp->rcq->num_wq); rxe_put(qp->rcq); + } if (qp->pd) rxe_put(qp->pd); @@ -818,13 +827,15 @@ if (qp->resp.mr) rxe_put(qp->resp.mr); - if (qp_type(qp) == IB_QPT_RC) - sk_dst_reset(qp->sk->sk); - free_rd_atomic_resources(qp); - kernel_sock_shutdown(qp->sk, SHUT_RDWR); - sock_release(qp->sk); + if (qp->sk) { + if (qp_type(qp) == IB_QPT_RC) + sk_dst_reset(qp->sk->sk); + + kernel_sock_shutdown(qp->sk, SHUT_RDWR); + sock_release(qp->sk); + } } /* called when the last reference to the qp is dropped */ --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_queue.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_queue.c @@ -112,23 +112,25 @@ unsigned int num_elem) { enum queue_type type = q->type; + u32 new_prod; u32 prod; u32 cons; if (!queue_empty(q, q->type) && (num_elem < queue_count(q, type))) return -EINVAL; - prod = queue_get_producer(new_q, type); + new_prod = queue_get_producer(new_q, type); + prod = queue_get_producer(q, type); cons = queue_get_consumer(q, type); - while (!queue_empty(q, type)) { - memcpy(queue_addr_from_index(new_q, prod), + while ((prod - cons) & q->index_mask) { + memcpy(queue_addr_from_index(new_q, new_prod), queue_addr_from_index(q, cons), new_q->elem_size); - prod = queue_next_index(new_q, prod); + new_prod = queue_next_index(new_q, new_prod); cons = queue_next_index(q, cons); } - new_q->buf->producer_index = prod; + new_q->buf->producer_index = new_prod; q->buf->consumer_index = cons; /* update private index copies */ --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_req.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_req.c @@ -101,7 +101,11 @@ { struct rxe_qp *qp = from_timer(qp, t, rnr_nak_timer); - pr_debug("qp#%d rnr nak timer fired\n", qp_num(qp)); + pr_debug("%s: fired for qp#%d\n", __func__, qp_num(qp)); + + /* request a send queue retry */ + qp->req.need_retry = 1; + qp->req.wait_for_rnr_timer = 0; rxe_run_task(&qp->req.task, 1); } @@ -581,9 +585,11 @@ wqe->status = IB_WC_SUCCESS; qp->req.wqe_index = queue_next_index(qp->sq.queue, qp->req.wqe_index); - if ((wqe->wr.send_flags & IB_SEND_SIGNALED) || - qp->sq_sig_type == IB_SIGNAL_ALL_WR) - rxe_run_task(&qp->comp.task, 1); + /* There is no ack coming for local work requests + * which can lead to a deadlock. So go ahead and complete + * it now. + */ + rxe_run_task(&qp->comp.task, 1); return 0; } @@ -620,10 +626,17 @@ qp->req.need_rd_atomic = 0; qp->req.wait_psn = 0; qp->req.need_retry = 0; + qp->req.wait_for_rnr_timer = 0; goto exit; } - if (unlikely(qp->req.need_retry)) { + /* we come here if the retransmot timer has fired + * or if the rnr timer has fired. If the retransmit + * timer fires while we are processing an RNR NAK wait + * until the rnr timer has fired before starting the + * retry flow + */ + if (unlikely(qp->req.need_retry && !qp->req.wait_for_rnr_timer)) { req_retry(qp); qp->req.need_retry = 0; } --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_resp.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_resp.c @@ -21,6 +21,7 @@ RESPST_CHK_RKEY, RESPST_EXECUTE, RESPST_READ_REPLY, + RESPST_ATOMIC_REPLY, RESPST_COMPLETE, RESPST_ACKNOWLEDGE, RESPST_CLEANUP, @@ -55,6 +56,7 @@ [RESPST_CHK_RKEY] = "CHK_RKEY", [RESPST_EXECUTE] = "EXECUTE", [RESPST_READ_REPLY] = "READ_REPLY", + [RESPST_ATOMIC_REPLY] = "ATOMIC_REPLY", [RESPST_COMPLETE] = "COMPLETE", [RESPST_ACKNOWLEDGE] = "ACKNOWLEDGE", [RESPST_CLEANUP] = "CLEANUP", @@ -552,8 +554,8 @@ /* Guarantee atomicity of atomic operations at the machine level. */ static DEFINE_SPINLOCK(atomic_ops_lock); -static enum resp_states process_atomic(struct rxe_qp *qp, - struct rxe_pkt_info *pkt) +static enum resp_states rxe_atomic_reply(struct rxe_qp *qp, + struct rxe_pkt_info *pkt) { u64 *vaddr; enum resp_states ret; @@ -585,7 +587,16 @@ spin_unlock_bh(&atomic_ops_lock); - ret = RESPST_NONE; + qp->resp.msn++; + + /* next expected psn, read handles this separately */ + qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; + qp->resp.ack_psn = qp->resp.psn; + + qp->resp.opcode = pkt->opcode; + qp->resp.status = IB_WC_SUCCESS; + + ret = RESPST_ACKNOWLEDGE; out: return ret; } @@ -773,13 +784,13 @@ skb = prepare_ack_packet(qp, req_pkt, &ack_pkt, opcode, payload, res->cur_psn, AETH_ACK_UNLIMITED); - if (!skb) + if (!skb) { + rxe_put(mr); return RESPST_ERR_RNR; + } - err = rxe_mr_copy(mr, res->read.va, payload_addr(&ack_pkt), - payload, RXE_FROM_MR_OBJ); - if (err) - pr_err("Failed copying memory\n"); + rxe_mr_copy(mr, res->read.va, payload_addr(&ack_pkt), + payload, RXE_FROM_MR_OBJ); if (mr) rxe_put(mr); @@ -790,10 +801,8 @@ } err = rxe_xmit_packet(qp, &ack_pkt, skb); - if (err) { - pr_err("Failed sending RDMA reply.\n"); + if (err) return RESPST_ERR_RNR; - } res->read.va += payload; res->read.resid -= payload; @@ -858,9 +867,7 @@ qp->resp.msn++; return RESPST_READ_REPLY; } else if (pkt->mask & RXE_ATOMIC_MASK) { - err = process_atomic(qp, pkt); - if (err) - return err; + return RESPST_ATOMIC_REPLY; } else { /* Unreachable */ WARN_ON_ONCE(1); @@ -1316,6 +1323,9 @@ case RESPST_READ_REPLY: state = read_reply(qp, pkt); break; + case RESPST_ATOMIC_REPLY: + state = rxe_atomic_reply(qp, pkt); + break; case RESPST_ACKNOWLEDGE: state = acknowledge(qp, pkt); break; --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_task.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_task.c @@ -8,7 +8,7 @@ #include #include -#include "rxe_task.h" +#include "rxe.h" int __rxe_do_task(struct rxe_task *task) @@ -33,6 +33,7 @@ int cont; int ret; struct rxe_task *task = from_tasklet(task, t, tasklet); + unsigned int iterations = RXE_MAX_ITERATIONS; spin_lock_bh(&task->state_lock); switch (task->state) { @@ -61,13 +62,20 @@ spin_lock_bh(&task->state_lock); switch (task->state) { case TASK_STATE_BUSY: - if (ret) + if (ret) { task->state = TASK_STATE_START; - else + } else if (iterations--) { cont = 1; + } else { + /* reschedule the tasklet and exit + * the loop to give up the cpu + */ + tasklet_schedule(&task->tasklet); + task->state = TASK_STATE_START; + } break; - /* soneone tried to run the task since the last time we called + /* someone tried to run the task since the last time we called * func, so we will call one more time regardless of the * return value */ --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_verbs.c +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_verbs.c @@ -897,7 +897,9 @@ return ERR_PTR(-ENOMEM); rxe_get(pd); - rxe_mr_init_dma(pd, access, mr); + mr->ibmr.pd = ibpd; + + rxe_mr_init_dma(access, mr); return &mr->ibmr; } @@ -921,15 +923,15 @@ rxe_get(pd); + mr->ibmr.pd = ibpd; - err = rxe_mr_init_user(pd, start, length, iova, access, mr); + err = rxe_mr_init_user(rxe, start, length, iova, access, mr); if (err) goto err3; return &mr->ibmr; err3: - rxe_put(pd); rxe_put(mr); err2: return ERR_PTR(err); @@ -953,40 +955,55 @@ } rxe_get(pd); + mr->ibmr.pd = ibpd; - err = rxe_mr_init_fast(pd, max_num_sg, mr); + err = rxe_mr_init_fast(max_num_sg, mr); if (err) goto err2; return &mr->ibmr; err2: - rxe_put(pd); rxe_put(mr); err1: return ERR_PTR(err); } -/* build next_map_set from scatterlist - * The IB_WR_REG_MR WR will swap map_sets - */ +static int rxe_set_page(struct ib_mr *ibmr, u64 addr) +{ + struct rxe_mr *mr = to_rmr(ibmr); + struct rxe_map *map; + struct rxe_phys_buf *buf; + + if (unlikely(mr->nbuf == mr->num_buf)) + return -ENOMEM; + + map = mr->map[mr->nbuf / RXE_BUF_PER_MAP]; + buf = &map->buf[mr->nbuf % RXE_BUF_PER_MAP]; + + buf->addr = addr; + buf->size = ibmr->page_size; + mr->nbuf++; + + return 0; +} + static int rxe_map_mr_sg(struct ib_mr *ibmr, struct scatterlist *sg, int sg_nents, unsigned int *sg_offset) { struct rxe_mr *mr = to_rmr(ibmr); - struct rxe_map_set *set = mr->next_map_set; int n; - set->nbuf = 0; + mr->nbuf = 0; - n = ib_sg_to_pages(ibmr, sg, sg_nents, sg_offset, rxe_mr_set_page); + n = ib_sg_to_pages(ibmr, sg, sg_nents, sg_offset, rxe_set_page); - set->va = ibmr->iova; - set->iova = ibmr->iova; - set->length = ibmr->length; - set->page_shift = ilog2(ibmr->page_size); - set->page_mask = ibmr->page_size - 1; - set->offset = set->iova & set->page_mask; + mr->va = ibmr->iova; + mr->iova = ibmr->iova; + mr->length = ibmr->length; + mr->page_shift = ilog2(ibmr->page_size); + mr->page_mask = ibmr->page_size - 1; + mr->offset = mr->iova & mr->page_mask; return n; } --- linux-5.19.0.orig/drivers/infiniband/sw/rxe/rxe_verbs.h +++ linux-5.19.0/drivers/infiniband/sw/rxe/rxe_verbs.h @@ -124,6 +124,7 @@ int need_rd_atomic; int wait_psn; int need_retry; + int wait_for_rnr_timer; int noack_pkts; struct rxe_task task; }; @@ -288,17 +289,6 @@ struct rxe_phys_buf buf[RXE_BUF_PER_MAP]; }; -struct rxe_map_set { - struct rxe_map **map; - u64 va; - u64 iova; - size_t length; - u32 offset; - u32 nbuf; - int page_shift; - int page_mask; -}; - static inline int rkey_is_mw(u32 rkey) { u32 index = rkey >> 8; @@ -316,20 +306,26 @@ u32 rkey; enum rxe_mr_state state; enum ib_mr_type type; + u64 va; + u64 iova; + size_t length; + u32 offset; int access; + int page_shift; + int page_mask; int map_shift; int map_mask; u32 num_buf; + u32 nbuf; u32 max_buf; u32 num_map; atomic_t num_mw; - struct rxe_map_set *cur_map_set; - struct rxe_map_set *next_map_set; + struct rxe_map **map; }; enum rxe_mw_state { --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw.h +++ linux-5.19.0/drivers/infiniband/sw/siw/siw.h @@ -418,6 +418,7 @@ struct ib_qp base_qp; struct siw_device *sdev; struct kref ref; + struct completion qp_free; struct list_head devq; int tx_cpu; struct siw_qp_attrs attrs; --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_cm.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_cm.c @@ -725,11 +725,11 @@ enum mpa_v2_ctrl mpa_p2p_mode = MPA_V2_RDMA_NO_RTR; rv = siw_recv_mpa_rr(cep); - if (rv != -EAGAIN) - siw_cancel_mpatimer(cep); if (rv) goto out_err; + siw_cancel_mpatimer(cep); + rep = &cep->mpa.hdr; if (__mpa_rr_revision(rep->params.bits) > MPA_REVISION_2) { @@ -895,7 +895,8 @@ } out_err: - siw_cm_upcall(cep, IW_CM_EVENT_CONNECT_REPLY, -EINVAL); + if (rv != -EAGAIN) + siw_cm_upcall(cep, IW_CM_EVENT_CONNECT_REPLY, -EINVAL); return rv; } --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_cq.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_cq.c @@ -56,8 +56,6 @@ if (READ_ONCE(cqe->flags) & SIW_WQE_VALID) { memset(wc, 0, sizeof(*wc)); wc->wr_id = cqe->id; - wc->status = map_cqe_status[cqe->status].ib; - wc->opcode = map_wc_opcode[cqe->opcode]; wc->byte_len = cqe->bytes; /* @@ -71,10 +69,32 @@ wc->wc_flags = IB_WC_WITH_INVALIDATE; } wc->qp = cqe->base_qp; + wc->opcode = map_wc_opcode[cqe->opcode]; + wc->status = map_cqe_status[cqe->status].ib; siw_dbg_cq(cq, "idx %u, type %d, flags %2x, id 0x%pK\n", cq->cq_get % cq->num_cqe, cqe->opcode, cqe->flags, (void *)(uintptr_t)cqe->id); + } else { + /* + * A malicious user may set invalid opcode or + * status in the user mmapped CQE array. + * Sanity check and correct values in that case + * to avoid out-of-bounds access to global arrays + * for opcode and status mapping. + */ + u8 opcode = cqe->opcode; + u16 status = cqe->status; + + if (opcode >= SIW_NUM_OPCODES) { + opcode = 0; + status = SIW_WC_GENERAL_ERR; + } else if (status >= SIW_NUM_WC_STATUS) { + status = SIW_WC_GENERAL_ERR; + } + wc->opcode = map_wc_opcode[opcode]; + wc->status = map_cqe_status[status].ib; + } WRITE_ONCE(cqe->flags, 0); cq->cq_get++; --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_qp.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_qp.c @@ -1342,6 +1342,6 @@ vfree(qp->orq); siw_put_tx_cpu(qp->tx_cpu); - + complete(&qp->qp_free); atomic_dec(&sdev->num_qp); } --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_qp_rx.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_qp_rx.c @@ -961,27 +961,28 @@ static int siw_get_trailer(struct siw_qp *qp, struct siw_rx_stream *srx) { struct sk_buff *skb = srx->skb; + int avail = min(srx->skb_new, srx->fpdu_part_rem); u8 *tbuf = (u8 *)&srx->trailer.crc - srx->pad; __wsum crc_in, crc_own = 0; siw_dbg_qp(qp, "expected %d, available %d, pad %u\n", srx->fpdu_part_rem, srx->skb_new, srx->pad); - if (srx->skb_new < srx->fpdu_part_rem) - return -EAGAIN; - - skb_copy_bits(skb, srx->skb_offset, tbuf, srx->fpdu_part_rem); + skb_copy_bits(skb, srx->skb_offset, tbuf, avail); - if (srx->mpa_crc_hd && srx->pad) - crypto_shash_update(srx->mpa_crc_hd, tbuf, srx->pad); + srx->skb_new -= avail; + srx->skb_offset += avail; + srx->skb_copied += avail; + srx->fpdu_part_rem -= avail; - srx->skb_new -= srx->fpdu_part_rem; - srx->skb_offset += srx->fpdu_part_rem; - srx->skb_copied += srx->fpdu_part_rem; + if (srx->fpdu_part_rem) + return -EAGAIN; if (!srx->mpa_crc_hd) return 0; + if (srx->pad) + crypto_shash_update(srx->mpa_crc_hd, tbuf, srx->pad); /* * CRC32 is computed, transmitted and received directly in NBO, * so there's never a reason to convert byte order. @@ -1083,10 +1084,9 @@ * completely received. */ if (iwarp_pktinfo[opcode].hdr_len > sizeof(struct iwarp_ctrl_tagged)) { - bytes = iwarp_pktinfo[opcode].hdr_len - MIN_DDP_HDR; + int hdrlen = iwarp_pktinfo[opcode].hdr_len; - if (srx->skb_new < bytes) - return -EAGAIN; + bytes = min_t(int, hdrlen - MIN_DDP_HDR, srx->skb_new); skb_copy_bits(skb, srx->skb_offset, (char *)c_hdr + srx->fpdu_part_rcvd, bytes); @@ -1096,6 +1096,9 @@ srx->skb_new -= bytes; srx->skb_offset += bytes; srx->skb_copied += bytes; + + if (srx->fpdu_part_rcvd < hdrlen) + return -EAGAIN; } /* --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_qp_tx.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_qp_tx.c @@ -29,7 +29,7 @@ dma_addr_t paddr = siw_pbl_get_buffer(pbl, offset, NULL, idx); if (paddr) - return virt_to_page(paddr); + return virt_to_page((void *)(uintptr_t)paddr); return NULL; } @@ -533,13 +533,23 @@ kunmap_local(kaddr); } } else { - u64 va = sge->laddr + sge_off; - - page_array[seg] = virt_to_page(va & PAGE_MASK); + /* + * Cast to an uintptr_t to preserve all 64 bits + * in sge->laddr. + */ + uintptr_t va = (uintptr_t)(sge->laddr + sge_off); + + /* + * virt_to_page() takes a (void *) pointer + * so cast to a (void *) meaning it will be 64 + * bits on a 64 bit platform and 32 bits on a + * 32 bit platform. + */ + page_array[seg] = virt_to_page((void *)(va & PAGE_MASK)); if (do_crc) crypto_shash_update( c_tx->mpa_crc_hd, - (void *)(uintptr_t)va, + (void *)va, plen); } --- linux-5.19.0.orig/drivers/infiniband/sw/siw/siw_verbs.c +++ linux-5.19.0/drivers/infiniband/sw/siw/siw_verbs.c @@ -480,6 +480,8 @@ list_add_tail(&qp->devq, &sdev->qp_list); spin_unlock_irqrestore(&sdev->lock, flags); + init_completion(&qp->qp_free); + return 0; err_out_xa: @@ -624,6 +626,7 @@ qp->scq = qp->rcq = NULL; siw_qp_put(qp); + wait_for_completion(&qp->qp_free); return 0; } @@ -673,13 +676,45 @@ 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); + struct siw_sqe sqe = {}; + + switch (wr->opcode) { + case IB_WR_RDMA_WRITE: + sqe.opcode = SIW_OP_WRITE; + break; + case IB_WR_RDMA_READ: + sqe.opcode = SIW_OP_READ; + break; + case IB_WR_RDMA_READ_WITH_INV: + sqe.opcode = SIW_OP_READ_LOCAL_INV; + break; + case IB_WR_SEND: + sqe.opcode = SIW_OP_SEND; + break; + case IB_WR_SEND_WITH_IMM: + sqe.opcode = SIW_OP_SEND_WITH_IMM; + break; + case IB_WR_SEND_WITH_INV: + sqe.opcode = SIW_OP_SEND_REMOTE_INV; + break; + case IB_WR_LOCAL_INV: + sqe.opcode = SIW_OP_INVAL_STAG; + break; + case IB_WR_REG_MR: + sqe.opcode = SIW_OP_REG_MR; + break; + default: + rv = -EINVAL; + break; + } + if (!rv) { + sqe.id = wr->wr_id; + rv = siw_sqe_complete(qp, &sqe, 0, + SIW_WC_WR_FLUSH_ERR); + } if (rv) { if (bad_wr) *bad_wr = wr; --- linux-5.19.0.orig/drivers/infiniband/ulp/ipoib/ipoib_netlink.c +++ linux-5.19.0/drivers/infiniband/ulp/ipoib/ipoib_netlink.c @@ -41,6 +41,11 @@ [IFLA_IPOIB_UMCAST] = { .type = NLA_U16 }, }; +static unsigned int ipoib_get_max_num_queues(void) +{ + return min_t(unsigned int, num_possible_cpus(), 128); +} + static int ipoib_fill_info(struct sk_buff *skb, const struct net_device *dev) { struct ipoib_dev_priv *priv = ipoib_priv(dev); @@ -172,6 +177,8 @@ .changelink = ipoib_changelink, .get_size = ipoib_get_size, .fill_info = ipoib_fill_info, + .get_num_rx_queues = ipoib_get_max_num_queues, + .get_num_tx_queues = ipoib_get_max_num_queues, }; struct rtnl_link_ops *ipoib_get_link_ops(void) --- linux-5.19.0.orig/drivers/infiniband/ulp/iser/iscsi_iser.c +++ linux-5.19.0/drivers/infiniband/ulp/iser/iscsi_iser.c @@ -568,7 +568,7 @@ struct Scsi_Host *shost = iscsi_session_to_shost(cls_session); iscsi_session_teardown(cls_session); - iscsi_host_remove(shost); + iscsi_host_remove(shost, false); iscsi_host_free(shost); } @@ -685,7 +685,7 @@ return cls_session; remove_host: - iscsi_host_remove(shost); + iscsi_host_remove(shost, false); free_host: iscsi_host_free(shost); return NULL; --- linux-5.19.0.orig/drivers/infiniband/ulp/iser/iser_initiator.c +++ linux-5.19.0/drivers/infiniband/ulp/iser/iser_initiator.c @@ -537,6 +537,7 @@ struct iscsi_hdr *hdr; char *data; int length; + bool full_feature_phase; if (unlikely(wc->status != IB_WC_SUCCESS)) { iser_err_comp(wc, "login_rsp"); @@ -550,6 +551,9 @@ hdr = desc->rsp + sizeof(struct iser_ctrl); data = desc->rsp + ISER_HEADERS_LEN; length = wc->byte_len - ISER_HEADERS_LEN; + full_feature_phase = ((hdr->flags & ISCSI_FULL_FEATURE_PHASE) == + ISCSI_FULL_FEATURE_PHASE) && + (hdr->flags & ISCSI_FLAG_CMD_FINAL); iser_dbg("op 0x%x itt 0x%x dlen %d\n", hdr->opcode, hdr->itt, length); @@ -560,7 +564,8 @@ desc->rsp_dma, ISER_RX_LOGIN_SIZE, DMA_FROM_DEVICE); - if (iser_conn->iscsi_conn->session->discovery_sess) + if (!full_feature_phase || + iser_conn->iscsi_conn->session->discovery_sess) return; /* Post the first RX buffer that is skipped in iser_post_rx_bufs() */ --- linux-5.19.0.orig/drivers/infiniband/ulp/rtrs/rtrs-clt.c +++ linux-5.19.0/drivers/infiniband/ulp/rtrs/rtrs-clt.c @@ -740,25 +740,25 @@ struct rtrs_clt_path *(*next_path)(struct path_it *it); }; -/** - * list_next_or_null_rr_rcu - get next list element in round-robin fashion. +/* + * rtrs_clt_get_next_path_or_null - get clt path from the list or return NULL * @head: the head for the list. - * @ptr: the list head to take the next element from. - * @type: the type of the struct this is embedded in. - * @memb: the name of the list_head within the struct. + * @clt_path: The element to take the next clt_path from. * - * Next element returned in round-robin fashion, i.e. head will be skipped, + * Next clt path returned in round-robin fashion, i.e. head will be skipped, * but if list is observed as empty, NULL will be returned. * - * This primitive may safely run concurrently with the _rcu list-mutation + * This function may safely run concurrently with the _rcu list-mutation * primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock(). */ -#define list_next_or_null_rr_rcu(head, ptr, type, memb) \ -({ \ - list_next_or_null_rcu(head, ptr, type, memb) ?: \ - list_next_or_null_rcu(head, READ_ONCE((ptr)->next), \ - type, memb); \ -}) +static inline struct rtrs_clt_path * +rtrs_clt_get_next_path_or_null(struct list_head *head, struct rtrs_clt_path *clt_path) +{ + return list_next_or_null_rcu(head, &clt_path->s.entry, typeof(*clt_path), s.entry) ?: + list_next_or_null_rcu(head, + READ_ONCE((&clt_path->s.entry)->next), + typeof(*clt_path), s.entry); +} /** * get_next_path_rr() - Returns path in round-robin fashion. @@ -789,10 +789,8 @@ path = list_first_or_null_rcu(&clt->paths_list, typeof(*path), s.entry); else - path = list_next_or_null_rr_rcu(&clt->paths_list, - &path->s.entry, - typeof(*path), - s.entry); + path = rtrs_clt_get_next_path_or_null(&clt->paths_list, path); + rcu_assign_pointer(*ppcpu_path, path); return path; @@ -1006,7 +1004,8 @@ static int rtrs_post_rdma_write_sg(struct rtrs_clt_con *con, struct rtrs_clt_io_req *req, struct rtrs_rbuf *rbuf, bool fr_en, - u32 size, u32 imm, struct ib_send_wr *wr, + u32 count, u32 size, u32 imm, + struct ib_send_wr *wr, struct ib_send_wr *tail) { struct rtrs_clt_path *clt_path = to_clt_path(con->c.path); @@ -1026,12 +1025,12 @@ num_sge = 2; ptail = tail; } else { - for_each_sg(req->sglist, sg, req->sg_cnt, i) { + for_each_sg(req->sglist, sg, count, i) { sge[i].addr = sg_dma_address(sg); sge[i].length = sg_dma_len(sg); sge[i].lkey = clt_path->s.dev->ib_pd->local_dma_lkey; } - num_sge = 1 + req->sg_cnt; + num_sge = 1 + count; } sge[i].addr = req->iu->dma_addr; sge[i].length = size; @@ -1144,7 +1143,7 @@ */ rtrs_clt_update_all_stats(req, WRITE); - ret = rtrs_post_rdma_write_sg(req->con, req, rbuf, fr_en, + ret = rtrs_post_rdma_write_sg(req->con, req, rbuf, fr_en, count, req->usr_len + sizeof(*msg), imm, wr, &inv_wr); if (ret) { @@ -2277,8 +2276,7 @@ * removed. If @sess is the last element, then @next is NULL. */ rcu_read_lock(); - next = list_next_or_null_rr_rcu(&clt->paths_list, &clt_path->s.entry, - typeof(*next), s.entry); + next = rtrs_clt_get_next_path_or_null(&clt->paths_list, clt_path); rcu_read_unlock(); /* --- linux-5.19.0.orig/drivers/infiniband/ulp/rtrs/rtrs-pri.h +++ linux-5.19.0/drivers/infiniband/ulp/rtrs/rtrs-pri.h @@ -23,6 +23,17 @@ #define RTRS_PROTO_VER_STRING __stringify(RTRS_PROTO_VER_MAJOR) "." \ __stringify(RTRS_PROTO_VER_MINOR) +/* + * Max IB immediate data size is 2^28 (MAX_IMM_PAYL_BITS) + * and the minimum chunk size is 4096 (2^12). + * So the maximum sess_queue_depth is 65536 (2^16) in theory. + * But mempool_create, create_qp and ib_post_send fail with + * "cannot allocate memory" error if sess_queue_depth is too big. + * Therefore the pratical max value of sess_queue_depth is + * somewhere between 1 and 65534 and it depends on the system. + */ +#define MAX_SESS_QUEUE_DEPTH 65535 + enum rtrs_imm_const { MAX_IMM_TYPE_BITS = 4, MAX_IMM_TYPE_MASK = ((1 << MAX_IMM_TYPE_BITS) - 1), @@ -46,16 +57,6 @@ MAX_PATHS_NUM = 128, - /* - * Max IB immediate data size is 2^28 (MAX_IMM_PAYL_BITS) - * and the minimum chunk size is 4096 (2^12). - * So the maximum sess_queue_depth is 65536 (2^16) in theory. - * But mempool_create, create_qp and ib_post_send fail with - * "cannot allocate memory" error if sess_queue_depth is too big. - * Therefore the pratical max value of sess_queue_depth is - * somewhere between 1 and 65534 and it depends on the system. - */ - MAX_SESS_QUEUE_DEPTH = 65535, MIN_CHUNK_SIZE = 8192, RTRS_HB_INTERVAL_MS = 5000, --- linux-5.19.0.orig/drivers/infiniband/ulp/rtrs/rtrs-srv.c +++ linux-5.19.0/drivers/infiniband/ulp/rtrs/rtrs-srv.c @@ -600,7 +600,7 @@ struct sg_table *sgt = &srv_mr->sgt; struct scatterlist *s; struct ib_mr *mr; - int nr, chunks; + int nr, nr_sgt, chunks; chunks = chunks_per_mr * mri; if (!always_invalidate) @@ -615,19 +615,19 @@ sg_set_page(s, srv->chunks[chunks + i], max_chunk_size, 0); - nr = ib_dma_map_sg(srv_path->s.dev->ib_dev, sgt->sgl, + nr_sgt = ib_dma_map_sg(srv_path->s.dev->ib_dev, sgt->sgl, sgt->nents, DMA_BIDIRECTIONAL); - if (nr < sgt->nents) { - err = nr < 0 ? nr : -EINVAL; + if (!nr_sgt) { + err = -EINVAL; goto free_sg; } mr = ib_alloc_mr(srv_path->s.dev->ib_pd, IB_MR_TYPE_MEM_REG, - sgt->nents); + nr_sgt); if (IS_ERR(mr)) { err = PTR_ERR(mr); goto unmap_sg; } - nr = ib_map_mr_sg(mr, sgt->sgl, sgt->nents, + nr = ib_map_mr_sg(mr, sgt->sgl, nr_sgt, NULL, max_chunk_size); if (nr < 0 || nr < sgt->nents) { err = nr < 0 ? nr : -EINVAL; @@ -646,7 +646,7 @@ } } /* Eventually dma addr for each chunk can be cached */ - for_each_sg(sgt->sgl, s, sgt->orig_nents, i) + for_each_sg(sgt->sgl, s, nr_sgt, i) srv_path->dma_addr[chunks + i] = sg_dma_address(s); ib_update_fast_reg_key(mr, ib_inc_rkey(mr->rkey)); --- linux-5.19.0.orig/drivers/infiniband/ulp/srp/ib_srp.c +++ linux-5.19.0/drivers/infiniband/ulp/srp/ib_srp.c @@ -1962,7 +1962,8 @@ if (scmnd) { req = scsi_cmd_priv(scmnd); scmnd = srp_claim_req(ch, req, NULL, scmnd); - } else { + } + if (!scmnd) { shost_printk(KERN_ERR, target->scsi_host, "Null scmnd for RSP w/tag %#016llx received on ch %td / QP %#x\n", rsp->tag, ch - target->ch, ch->qp->qp_num); @@ -2789,7 +2790,7 @@ static int srp_abort(struct scsi_cmnd *scmnd) { struct srp_target_port *target = host_to_target(scmnd->device->host); - struct srp_request *req = (struct srp_request *) scmnd->host_scribble; + struct srp_request *req = scsi_cmd_priv(scmnd); u32 tag; u16 ch_idx; struct srp_rdma_ch *ch; @@ -2797,8 +2798,6 @@ shost_printk(KERN_ERR, target->scsi_host, "SRP abort called\n"); - if (!req) - return SUCCESS; tag = blk_mq_unique_tag(scsi_cmd_to_rq(scmnd)); ch_idx = blk_mq_unique_tag_to_hwq(tag); if (WARN_ON_ONCE(ch_idx >= target->ch_count)) @@ -3407,7 +3406,8 @@ break; case SRP_OPT_PKEY: - if (match_hex(args, &token)) { + ret = match_hex(args, &token); + if (ret) { pr_warn("bad P_Key parameter '%s'\n", p); goto out; } @@ -3467,7 +3467,8 @@ break; case SRP_OPT_MAX_SECT: - if (match_int(args, &token)) { + ret = match_int(args, &token); + if (ret) { pr_warn("bad max sect parameter '%s'\n", p); goto out; } @@ -3475,8 +3476,15 @@ break; case SRP_OPT_QUEUE_SIZE: - if (match_int(args, &token) || token < 1) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for queue_size parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1) { pr_warn("bad queue_size parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->scsi_host->can_queue = token; @@ -3487,25 +3495,40 @@ break; case SRP_OPT_MAX_CMD_PER_LUN: - if (match_int(args, &token) || token < 1) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for max cmd_per_lun parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1) { pr_warn("bad max cmd_per_lun parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->scsi_host->cmd_per_lun = token; break; case SRP_OPT_TARGET_CAN_QUEUE: - if (match_int(args, &token) || token < 1) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for max target_can_queue parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1) { pr_warn("bad max target_can_queue parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->target_can_queue = token; break; case SRP_OPT_IO_CLASS: - if (match_hex(args, &token)) { + ret = match_hex(args, &token); + if (ret) { pr_warn("bad IO class parameter '%s'\n", p); goto out; } @@ -3514,6 +3537,7 @@ pr_warn("unknown IO class parameter value %x specified (use %x or %x).\n", token, SRP_REV10_IB_IO_CLASS, SRP_REV16A_IB_IO_CLASS); + ret = -EINVAL; goto out; } target->io_class = token; @@ -3536,16 +3560,24 @@ break; case SRP_OPT_CMD_SG_ENTRIES: - if (match_int(args, &token) || token < 1 || token > 255) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for max cmd_sg_entries parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1 || token > 255) { pr_warn("bad max cmd_sg_entries parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->cmd_sg_cnt = token; break; case SRP_OPT_ALLOW_EXT_SG: - if (match_int(args, &token)) { + ret = match_int(args, &token); + if (ret) { pr_warn("bad allow_ext_sg parameter '%s'\n", p); goto out; } @@ -3553,43 +3585,77 @@ break; case SRP_OPT_SG_TABLESIZE: - if (match_int(args, &token) || token < 1 || - token > SG_MAX_SEGMENTS) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for max sg_tablesize parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1 || token > SG_MAX_SEGMENTS) { pr_warn("bad max sg_tablesize parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->sg_tablesize = token; break; case SRP_OPT_COMP_VECTOR: - if (match_int(args, &token) || token < 0) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for comp_vector parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 0) { pr_warn("bad comp_vector parameter '%s'\n", p); + ret = -EINVAL; goto out; } target->comp_vector = token; break; case SRP_OPT_TL_RETRY_COUNT: - if (match_int(args, &token) || token < 2 || token > 7) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for tl_retry_count parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 2 || token > 7) { pr_warn("bad tl_retry_count parameter '%s' (must be a number between 2 and 7)\n", p); + ret = -EINVAL; goto out; } target->tl_retry_count = token; break; case SRP_OPT_MAX_IT_IU_SIZE: - if (match_int(args, &token) || token < 0) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for max it_iu_size parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 0) { pr_warn("bad maximum initiator to target IU size '%s'\n", p); + ret = -EINVAL; goto out; } target->max_it_iu_size = token; break; case SRP_OPT_CH_COUNT: - if (match_int(args, &token) || token < 1) { + ret = match_int(args, &token); + if (ret) { + pr_warn("match_int() failed for channel count parameter '%s', Error %d\n", + p, ret); + goto out; + } + if (token < 1) { pr_warn("bad channel count %s\n", p); + ret = -EINVAL; goto out; } target->ch_count = token; @@ -3598,6 +3664,7 @@ default: pr_warn("unknown parameter or missing value '%s' in target creation request\n", p); + ret = -EINVAL; goto out; } } --- linux-5.19.0.orig/drivers/infiniband/ulp/srpt/ib_srpt.c +++ linux-5.19.0/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -565,12 +565,9 @@ if (ret) return ret; - sport->port_guid_id.wwn.priv = sport; - srpt_format_guid(sport->port_guid_id.name, - sizeof(sport->port_guid_id.name), + srpt_format_guid(sport->guid_name, ARRAY_SIZE(sport->guid_name), &sport->gid.global.interface_id); - sport->port_gid_id.wwn.priv = sport; - snprintf(sport->port_gid_id.name, sizeof(sport->port_gid_id.name), + snprintf(sport->gid_name, ARRAY_SIZE(sport->gid_name), "0x%016llx%016llx", be64_to_cpu(sport->gid.global.subnet_prefix), be64_to_cpu(sport->gid.global.interface_id)); @@ -2314,31 +2311,35 @@ tag_num = ch->rq_size; tag_size = 1; /* ib_srpt does not use se_sess->sess_cmd_map */ - mutex_lock(&sport->port_guid_id.mutex); - list_for_each_entry(stpg, &sport->port_guid_id.tpg_list, entry) { - if (!IS_ERR_OR_NULL(ch->sess)) - break; - ch->sess = target_setup_session(&stpg->tpg, tag_num, + if (sport->guid_id) { + mutex_lock(&sport->guid_id->mutex); + list_for_each_entry(stpg, &sport->guid_id->tpg_list, entry) { + if (!IS_ERR_OR_NULL(ch->sess)) + break; + ch->sess = target_setup_session(&stpg->tpg, tag_num, tag_size, TARGET_PROT_NORMAL, ch->sess_name, ch, NULL); + } + mutex_unlock(&sport->guid_id->mutex); } - mutex_unlock(&sport->port_guid_id.mutex); - mutex_lock(&sport->port_gid_id.mutex); - list_for_each_entry(stpg, &sport->port_gid_id.tpg_list, entry) { - if (!IS_ERR_OR_NULL(ch->sess)) - break; - ch->sess = target_setup_session(&stpg->tpg, tag_num, + if (sport->gid_id) { + mutex_lock(&sport->gid_id->mutex); + list_for_each_entry(stpg, &sport->gid_id->tpg_list, entry) { + if (!IS_ERR_OR_NULL(ch->sess)) + break; + ch->sess = target_setup_session(&stpg->tpg, tag_num, tag_size, TARGET_PROT_NORMAL, i_port_id, ch, NULL); - if (!IS_ERR_OR_NULL(ch->sess)) - break; - /* Retry without leading "0x" */ - ch->sess = target_setup_session(&stpg->tpg, tag_num, + if (!IS_ERR_OR_NULL(ch->sess)) + break; + /* Retry without leading "0x" */ + ch->sess = target_setup_session(&stpg->tpg, tag_num, tag_size, TARGET_PROT_NORMAL, i_port_id + 2, ch, NULL); + } + mutex_unlock(&sport->gid_id->mutex); } - mutex_unlock(&sport->port_gid_id.mutex); if (IS_ERR_OR_NULL(ch->sess)) { WARN_ON_ONCE(ch->sess == NULL); @@ -2983,7 +2984,12 @@ return 0; } -static struct se_wwn *__srpt_lookup_wwn(const char *name) +struct port_and_port_id { + struct srpt_port *sport; + struct srpt_port_id **port_id; +}; + +static struct port_and_port_id __srpt_lookup_port(const char *name) { struct ib_device *dev; struct srpt_device *sdev; @@ -2998,25 +3004,38 @@ for (i = 0; i < dev->phys_port_cnt; i++) { sport = &sdev->port[i]; - if (strcmp(sport->port_guid_id.name, name) == 0) - return &sport->port_guid_id.wwn; - if (strcmp(sport->port_gid_id.name, name) == 0) - return &sport->port_gid_id.wwn; + if (strcmp(sport->guid_name, name) == 0) { + kref_get(&sdev->refcnt); + return (struct port_and_port_id){ + sport, &sport->guid_id}; + } + if (strcmp(sport->gid_name, name) == 0) { + kref_get(&sdev->refcnt); + return (struct port_and_port_id){ + sport, &sport->gid_id}; + } } } - return NULL; + return (struct port_and_port_id){}; } -static struct se_wwn *srpt_lookup_wwn(const char *name) +/** + * srpt_lookup_port() - Look up an RDMA port by name + * @name: ASCII port name + * + * Increments the RDMA port reference count if an RDMA port pointer is returned. + * The caller must drop that reference count by calling srpt_port_put_ref(). + */ +static struct port_and_port_id srpt_lookup_port(const char *name) { - struct se_wwn *wwn; + struct port_and_port_id papi; spin_lock(&srpt_dev_lock); - wwn = __srpt_lookup_wwn(name); + papi = __srpt_lookup_port(name); spin_unlock(&srpt_dev_lock); - return wwn; + return papi; } static void srpt_free_srq(struct srpt_device *sdev) @@ -3101,6 +3120,18 @@ return ret; } +static void srpt_free_sdev(struct kref *refcnt) +{ + struct srpt_device *sdev = container_of(refcnt, typeof(*sdev), refcnt); + + kfree(sdev); +} + +static void srpt_sdev_put(struct srpt_device *sdev) +{ + kref_put(&sdev->refcnt, srpt_free_sdev); +} + /** * srpt_add_one - InfiniBand device addition callback function * @device: Describes a HCA. @@ -3119,6 +3150,7 @@ if (!sdev) return -ENOMEM; + kref_init(&sdev->refcnt); sdev->device = device; mutex_init(&sdev->sdev_mutex); @@ -3182,10 +3214,6 @@ sport->port_attrib.srp_sq_size = DEF_SRPT_SQ_SIZE; sport->port_attrib.use_srq = false; INIT_WORK(&sport->work, srpt_refresh_port_work); - mutex_init(&sport->port_guid_id.mutex); - INIT_LIST_HEAD(&sport->port_guid_id.tpg_list); - mutex_init(&sport->port_gid_id.mutex); - INIT_LIST_HEAD(&sport->port_gid_id.tpg_list); ret = srpt_refresh_port(sport); if (ret) { @@ -3214,7 +3242,7 @@ srpt_free_srq(sdev); ib_dealloc_pd(sdev->pd); free_dev: - kfree(sdev); + srpt_sdev_put(sdev); pr_info("%s(%s) failed.\n", __func__, dev_name(&device->dev)); return ret; } @@ -3258,7 +3286,7 @@ ib_dealloc_pd(sdev->pd); - kfree(sdev); + srpt_sdev_put(sdev); } static struct ib_client srpt_client = { @@ -3286,10 +3314,10 @@ { struct srpt_port *sport = wwn->priv; - if (wwn == &sport->port_guid_id.wwn) - return &sport->port_guid_id; - if (wwn == &sport->port_gid_id.wwn) - return &sport->port_gid_id; + if (sport->guid_id && &sport->guid_id->wwn == wwn) + return sport->guid_id; + if (sport->gid_id && &sport->gid_id->wwn == wwn) + return sport->gid_id; WARN_ON_ONCE(true); return NULL; } @@ -3774,7 +3802,31 @@ struct config_group *group, const char *name) { - return srpt_lookup_wwn(name) ? : ERR_PTR(-EINVAL); + struct port_and_port_id papi = srpt_lookup_port(name); + struct srpt_port *sport = papi.sport; + struct srpt_port_id *port_id; + + if (!papi.port_id) + return ERR_PTR(-EINVAL); + if (*papi.port_id) { + /* Attempt to create a directory that already exists. */ + WARN_ON_ONCE(true); + return &(*papi.port_id)->wwn; + } + port_id = kzalloc(sizeof(*port_id), GFP_KERNEL); + if (!port_id) { + srpt_sdev_put(sport->sdev); + return ERR_PTR(-ENOMEM); + } + mutex_init(&port_id->mutex); + INIT_LIST_HEAD(&port_id->tpg_list); + port_id->wwn.priv = sport; + memcpy(port_id->name, port_id == sport->guid_id ? sport->guid_name : + sport->gid_name, ARRAY_SIZE(port_id->name)); + + *papi.port_id = port_id; + + return &port_id->wwn; } /** @@ -3783,6 +3835,18 @@ */ static void srpt_drop_tport(struct se_wwn *wwn) { + struct srpt_port_id *port_id = container_of(wwn, typeof(*port_id), wwn); + struct srpt_port *sport = wwn->priv; + + if (sport->guid_id == port_id) + sport->guid_id = NULL; + else if (sport->gid_id == port_id) + sport->gid_id = NULL; + else + WARN_ON_ONCE(true); + + srpt_sdev_put(sport->sdev); + kfree(port_id); } static ssize_t srpt_wwn_version_show(struct config_item *item, char *buf) --- linux-5.19.0.orig/drivers/infiniband/ulp/srpt/ib_srpt.h +++ linux-5.19.0/drivers/infiniband/ulp/srpt/ib_srpt.h @@ -376,7 +376,7 @@ }; /** - * struct srpt_port_id - information about an RDMA port name + * struct srpt_port_id - LIO RDMA port information * @mutex: Protects @tpg_list changes. * @tpg_list: TPGs associated with the RDMA port name. * @wwn: WWN associated with the RDMA port name. @@ -393,7 +393,7 @@ }; /** - * struct srpt_port - information associated by SRPT with a single IB port + * struct srpt_port - SRPT RDMA port information * @sdev: backpointer to the HCA information. * @mad_agent: per-port management datagram processing information. * @enabled: Whether or not this target port is enabled. @@ -402,8 +402,10 @@ * @lid: cached value of the port's lid. * @gid: cached value of the port's gid. * @work: work structure for refreshing the aforementioned cached values. - * @port_guid_id: target port GUID - * @port_gid_id: target port GID + * @guid_name: port name in GUID format. + * @guid_id: LIO target port information for the port name in GUID format. + * @gid_name: port name in GID format. + * @gid_id: LIO target port information for the port name in GID format. * @port_attrib: Port attributes that can be accessed through configfs. * @refcount: Number of objects associated with this port. * @freed_channels: Completion that will be signaled once @refcount becomes 0. @@ -419,8 +421,10 @@ u32 lid; union ib_gid gid; struct work_struct work; - struct srpt_port_id port_guid_id; - struct srpt_port_id port_gid_id; + char guid_name[64]; + struct srpt_port_id *guid_id; + char gid_name[64]; + struct srpt_port_id *gid_id; struct srpt_port_attrib port_attrib; atomic_t refcount; struct completion *freed_channels; @@ -430,6 +434,7 @@ /** * struct srpt_device - information associated by SRPT with a single HCA + * @refcnt: Reference count for this device. * @device: Backpointer to the struct ib_device managed by the IB core. * @pd: IB protection domain. * @lkey: L_Key (local key) with write access to all local memory. @@ -445,6 +450,7 @@ * @port: Information about the ports owned by this HCA. */ struct srpt_device { + struct kref refcnt; struct ib_device *device; struct ib_pd *pd; u32 lkey; --- linux-5.19.0.orig/drivers/input/joystick/Kconfig +++ linux-5.19.0/drivers/input/joystick/Kconfig @@ -46,6 +46,7 @@ config JOYSTICK_ADC tristate "Simple joystick connected over ADC" depends on IIO + select IIO_BUFFER select IIO_BUFFER_CB help Say Y here if you have a simple joystick connected over ADC. --- linux-5.19.0.orig/drivers/input/joystick/iforce/iforce-main.c +++ linux-5.19.0/drivers/input/joystick/iforce/iforce-main.c @@ -50,6 +50,7 @@ { 0x046d, 0xc291, "Logitech WingMan Formula Force", btn_wheel, abs_wheel, ff_iforce }, { 0x05ef, 0x020a, "AVB Top Shot Pegasus", btn_joystick_avb, abs_avb_pegasus, ff_iforce }, { 0x05ef, 0x8884, "AVB Mag Turbo Force", btn_wheel, abs_wheel, ff_iforce }, + { 0x05ef, 0x8886, "Boeder Force Feedback Wheel", btn_wheel, abs_wheel, ff_iforce }, { 0x05ef, 0x8888, "AVB Top Shot Force Feedback Racing Wheel", btn_wheel, abs_wheel, ff_iforce }, //? { 0x061c, 0xc0a4, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, //? { 0x061c, 0xc084, "ACT LABS Force RS", btn_wheel, abs_wheel, ff_iforce }, @@ -272,22 +273,22 @@ * Get device info. */ - if (!iforce_get_id_packet(iforce, 'M', buf, &len) || len < 3) + if (!iforce_get_id_packet(iforce, 'M', buf, &len) && len >= 3) input_dev->id.vendor = get_unaligned_le16(buf + 1); else dev_warn(&iforce->dev->dev, "Device does not respond to id packet M\n"); - if (!iforce_get_id_packet(iforce, 'P', buf, &len) || len < 3) + if (!iforce_get_id_packet(iforce, 'P', buf, &len) && len >= 3) input_dev->id.product = get_unaligned_le16(buf + 1); else dev_warn(&iforce->dev->dev, "Device does not respond to id packet P\n"); - if (!iforce_get_id_packet(iforce, 'B', buf, &len) || len < 3) + if (!iforce_get_id_packet(iforce, 'B', buf, &len) && len >= 3) iforce->device_memory.end = get_unaligned_le16(buf + 1); else dev_warn(&iforce->dev->dev, "Device does not respond to id packet B\n"); - if (!iforce_get_id_packet(iforce, 'N', buf, &len) || len < 2) + if (!iforce_get_id_packet(iforce, 'N', buf, &len) && len >= 2) ff_effects = buf[1]; else dev_warn(&iforce->dev->dev, "Device does not respond to id packet N\n"); --- linux-5.19.0.orig/drivers/input/joystick/iforce/iforce-serio.c +++ linux-5.19.0/drivers/input/joystick/iforce/iforce-serio.c @@ -39,7 +39,7 @@ again: if (iforce->xmit.head == iforce->xmit.tail) { - clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); + iforce_clear_xmit_and_wake(iforce); spin_unlock_irqrestore(&iforce->xmit_lock, flags); return; } @@ -64,7 +64,7 @@ if (test_and_clear_bit(IFORCE_XMIT_AGAIN, iforce->xmit_flags)) goto again; - clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); + iforce_clear_xmit_and_wake(iforce); spin_unlock_irqrestore(&iforce->xmit_lock, flags); } @@ -169,7 +169,7 @@ iforce_serio->cmd_response_len = iforce_serio->len; /* Signal that command is done */ - wake_up(&iforce->wait); + wake_up_all(&iforce->wait); } else if (likely(iforce->type)) { iforce_process_packet(iforce, iforce_serio->id, iforce_serio->data_in, --- linux-5.19.0.orig/drivers/input/joystick/iforce/iforce-usb.c +++ linux-5.19.0/drivers/input/joystick/iforce/iforce-usb.c @@ -30,7 +30,7 @@ spin_lock_irqsave(&iforce->xmit_lock, flags); if (iforce->xmit.head == iforce->xmit.tail) { - clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); + iforce_clear_xmit_and_wake(iforce); spin_unlock_irqrestore(&iforce->xmit_lock, flags); return; } @@ -58,9 +58,9 @@ XMIT_INC(iforce->xmit.tail, n); if ( (n=usb_submit_urb(iforce_usb->out, GFP_ATOMIC)) ) { - clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); dev_warn(&iforce_usb->intf->dev, "usb_submit_urb failed %d\n", n); + iforce_clear_xmit_and_wake(iforce); } /* The IFORCE_XMIT_RUNNING bit is not cleared here. That's intended. @@ -175,15 +175,15 @@ struct iforce *iforce = &iforce_usb->iforce; if (urb->status) { - clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); dev_dbg(&iforce_usb->intf->dev, "urb->status %d, exiting\n", urb->status); + iforce_clear_xmit_and_wake(iforce); return; } __iforce_usb_xmit(iforce); - wake_up(&iforce->wait); + wake_up_all(&iforce->wait); } static int iforce_usb_probe(struct usb_interface *intf, --- linux-5.19.0.orig/drivers/input/joystick/iforce/iforce.h +++ linux-5.19.0/drivers/input/joystick/iforce/iforce.h @@ -119,6 +119,12 @@ response_data, response_len); } +static inline void iforce_clear_xmit_and_wake(struct iforce *iforce) +{ + clear_bit(IFORCE_XMIT_RUNNING, iforce->xmit_flags); + wake_up_all(&iforce->wait); +} + /* Public functions */ /* iforce-main.c */ int iforce_init_device(struct device *parent, u16 bustype, --- linux-5.19.0.orig/drivers/input/joystick/xpad.c +++ linux-5.19.0/drivers/input/joystick/xpad.c @@ -113,6 +113,8 @@ u8 xtype; } xpad_device[] = { { 0x0079, 0x18d4, "GPD Win 2 X-Box Controller", 0, XTYPE_XBOX360 }, + { 0x03eb, 0xff01, "Wooting One (Legacy)", 0, XTYPE_XBOX360 }, + { 0x03eb, 0xff02, "Wooting Two (Legacy)", 0, XTYPE_XBOX360 }, { 0x044f, 0x0f00, "Thrustmaster Wheel", 0, XTYPE_XBOX }, { 0x044f, 0x0f03, "Thrustmaster Wheel", 0, XTYPE_XBOX }, { 0x044f, 0x0f07, "Thrustmaster, Inc. Controller", 0, XTYPE_XBOX }, @@ -244,6 +246,7 @@ { 0x0f0d, 0x0063, "Hori Real Arcade Pro Hayabusa (USA) Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x0f0d, 0x0067, "HORIPAD ONE", 0, XTYPE_XBOXONE }, { 0x0f0d, 0x0078, "Hori Real Arcade Pro V Kai Xbox One", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, + { 0x0f0d, 0x00c5, "Hori Fighting Commander ONE", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x0f30, 0x010b, "Philips Recoil", 0, XTYPE_XBOX }, { 0x0f30, 0x0202, "Joytech Advanced Controller", 0, XTYPE_XBOX }, { 0x0f30, 0x8888, "BigBen XBMiniPad Controller", 0, XTYPE_XBOX }, @@ -260,6 +263,7 @@ { 0x1430, 0x8888, "TX6500+ Dance Pad (first generation)", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX }, { 0x1430, 0xf801, "RedOctane Controller", 0, XTYPE_XBOX360 }, { 0x146b, 0x0601, "BigBen Interactive XBOX 360 Controller", 0, XTYPE_XBOX360 }, + { 0x146b, 0x0604, "Bigben Interactive DAIJA Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x1532, 0x0037, "Razer Sabertooth", 0, XTYPE_XBOX360 }, { 0x1532, 0x0a00, "Razer Atrox Arcade Stick", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOXONE }, { 0x1532, 0x0a03, "Razer Wildcat", 0, XTYPE_XBOXONE }, @@ -325,6 +329,7 @@ { 0x24c6, 0x5502, "Hori Fighting Stick VX Alt", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x5503, "Hori Fighting Edge", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x5506, "Hori SOULCALIBUR V Stick", 0, XTYPE_XBOX360 }, + { 0x24c6, 0x5510, "Hori Fighting Commander ONE (Xbox 360/PC Mode)", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x550d, "Hori GEM Xbox controller", 0, XTYPE_XBOX360 }, { 0x24c6, 0x550e, "Hori Real Arcade Pro V Kai 360", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 }, { 0x24c6, 0x551a, "PowerA FUSION Pro Controller", 0, XTYPE_XBOXONE }, @@ -334,6 +339,14 @@ { 0x24c6, 0x5b03, "Thrustmaster Ferrari 458 Racing Wheel", 0, XTYPE_XBOX360 }, { 0x24c6, 0x5d04, "Razer Sabertooth", 0, XTYPE_XBOX360 }, { 0x24c6, 0xfafe, "Rock Candy Gamepad for Xbox 360", 0, XTYPE_XBOX360 }, + { 0x2563, 0x058d, "OneXPlayer Gamepad", 0, XTYPE_XBOX360 }, + { 0x2dc8, 0x2000, "8BitDo Pro 2 Wired Controller fox Xbox", 0, XTYPE_XBOXONE }, + { 0x31e3, 0x1100, "Wooting One", 0, XTYPE_XBOX360 }, + { 0x31e3, 0x1200, "Wooting Two", 0, XTYPE_XBOX360 }, + { 0x31e3, 0x1210, "Wooting Lekker", 0, XTYPE_XBOX360 }, + { 0x31e3, 0x1220, "Wooting Two HE", 0, XTYPE_XBOX360 }, + { 0x31e3, 0x1300, "Wooting 60HE (AVR)", 0, XTYPE_XBOX360 }, + { 0x31e3, 0x1310, "Wooting 60HE (ARM)", 0, XTYPE_XBOX360 }, { 0x3285, 0x0607, "Nacon GC-100", 0, XTYPE_XBOX360 }, { 0x3767, 0x0101, "Fanatec Speedster 3 Forceshock Wheel", 0, XTYPE_XBOX }, { 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX }, @@ -419,6 +432,7 @@ static const struct usb_device_id xpad_table[] = { { USB_INTERFACE_INFO('X', 'B', 0) }, /* X-Box USB-IF not approved class */ XPAD_XBOX360_VENDOR(0x0079), /* GPD Win 2 Controller */ + XPAD_XBOX360_VENDOR(0x03eb), /* Wooting Keyboards (Legacy) */ XPAD_XBOX360_VENDOR(0x044f), /* Thrustmaster X-Box 360 controllers */ XPAD_XBOX360_VENDOR(0x045e), /* Microsoft X-Box 360 controllers */ XPAD_XBOXONE_VENDOR(0x045e), /* Microsoft X-Box One controllers */ @@ -429,6 +443,7 @@ { USB_DEVICE(0x0738, 0x4540) }, /* Mad Catz Beat Pad */ XPAD_XBOXONE_VENDOR(0x0738), /* Mad Catz FightStick TE 2 */ XPAD_XBOX360_VENDOR(0x07ff), /* Mad Catz GamePad */ + XPAD_XBOX360_VENDOR(0x0c12), /* Zeroplus X-Box 360 controllers */ XPAD_XBOX360_VENDOR(0x0e6f), /* 0x0e6f X-Box 360 controllers */ XPAD_XBOXONE_VENDOR(0x0e6f), /* 0x0e6f X-Box One controllers */ XPAD_XBOX360_VENDOR(0x0f0d), /* Hori Controllers */ @@ -450,8 +465,12 @@ XPAD_XBOXONE_VENDOR(0x20d6), /* PowerA Controllers */ XPAD_XBOX360_VENDOR(0x24c6), /* PowerA Controllers */ XPAD_XBOXONE_VENDOR(0x24c6), /* PowerA Controllers */ + XPAD_XBOX360_VENDOR(0x2563), /* OneXPlayer Gamepad */ + XPAD_XBOX360_VENDOR(0x260d), /* Dareu H101 */ + XPAD_XBOXONE_VENDOR(0x2dc8), /* 8BitDo Pro 2 Wired Controller for Xbox */ XPAD_XBOXONE_VENDOR(0x2e24), /* Hyperkin Duke X-Box One pad */ XPAD_XBOX360_VENDOR(0x2f24), /* GameSir Controllers */ + XPAD_XBOX360_VENDOR(0x31e3), /* Wooting Keyboards */ XPAD_XBOX360_VENDOR(0x3285), /* Nacon GC-100 */ { } }; @@ -1972,7 +1991,6 @@ .disconnect = xpad_disconnect, .suspend = xpad_suspend, .resume = xpad_resume, - .reset_resume = xpad_resume, .id_table = xpad_table, }; --- linux-5.19.0.orig/drivers/input/keyboard/mt6779-keypad.c +++ linux-5.19.0/drivers/input/keyboard/mt6779-keypad.c @@ -42,7 +42,7 @@ const unsigned short *keycode = keypad->input_dev->keycode; DECLARE_BITMAP(new_state, MTK_KPD_NUM_BITS); DECLARE_BITMAP(change, MTK_KPD_NUM_BITS); - unsigned int bit_nr; + unsigned int bit_nr, key; unsigned int row, col; unsigned int scancode; unsigned int row_shift = get_count_order(keypad->n_cols); @@ -61,8 +61,10 @@ if (bit_nr % 32 >= 16) continue; - row = bit_nr / 32; - col = bit_nr % 32; + key = bit_nr / 32 * 16 + bit_nr % 32; + row = key / 9; + col = key % 9; + scancode = MATRIX_SCAN_CODE(row, col, row_shift); /* 1: not pressed, 0: pressed */ pressed = !test_bit(bit_nr, new_state); --- linux-5.19.0.orig/drivers/input/keyboard/snvs_pwrkey.c +++ linux-5.19.0/drivers/input/keyboard/snvs_pwrkey.c @@ -20,7 +20,7 @@ #include #include -#define SNVS_HPVIDR1_REG 0xF8 +#define SNVS_HPVIDR1_REG 0xBF8 #define SNVS_LPSR_REG 0x4C /* LP Status Register */ #define SNVS_LPCR_REG 0x38 /* LP Control Register */ #define SNVS_HPSR_REG 0x14 --- linux-5.19.0.orig/drivers/input/misc/Kconfig +++ linux-5.19.0/drivers/input/misc/Kconfig @@ -330,7 +330,7 @@ config INPUT_WISTRON_BTNS tristate "x86 Wistron laptop button interface" - depends on X86_32 + depends on X86_32 && !UML select INPUT_SPARSEKMAP select NEW_LEDS select LEDS_CLASS --- linux-5.19.0.orig/drivers/input/misc/iqs7222.c +++ linux-5.19.0/drivers/input/misc/iqs7222.c @@ -40,7 +40,6 @@ #define IQS7222_SLDR_SETUP_2_RES_MASK GENMASK(15, 8) #define IQS7222_SLDR_SETUP_2_RES_SHIFT 8 #define IQS7222_SLDR_SETUP_2_TOP_SPEED_MASK GENMASK(7, 0) -#define IQS7222_SLDR_SETUP_3_CHAN_SEL_MASK GENMASK(9, 0) #define IQS7222_GPIO_SETUP_0_GPIO_EN BIT(0) @@ -54,6 +53,9 @@ #define IQS7222_SYS_SETUP_ACK_RESET BIT(0) #define IQS7222_EVENT_MASK_ATI BIT(12) +#define IQS7222_EVENT_MASK_SLDR BIT(10) +#define IQS7222_EVENT_MASK_TOUCH BIT(1) +#define IQS7222_EVENT_MASK_PROX BIT(0) #define IQS7222_COMMS_HOLD BIT(0) #define IQS7222_COMMS_ERROR 0xEEEE @@ -84,7 +86,9 @@ IQS7222_REG_KEY_TOUCH, IQS7222_REG_KEY_DEBOUNCE, IQS7222_REG_KEY_TAP, + IQS7222_REG_KEY_TAP_LEGACY, IQS7222_REG_KEY_AXIAL, + IQS7222_REG_KEY_AXIAL_LEGACY, IQS7222_REG_KEY_WHEEL, IQS7222_REG_KEY_NO_WHEEL, IQS7222_REG_KEY_RESERVED @@ -92,25 +96,25 @@ enum iqs7222_reg_grp_id { IQS7222_REG_GRP_STAT, + IQS7222_REG_GRP_FILT, IQS7222_REG_GRP_CYCLE, IQS7222_REG_GRP_GLBL, IQS7222_REG_GRP_BTN, IQS7222_REG_GRP_CHAN, - IQS7222_REG_GRP_FILT, IQS7222_REG_GRP_SLDR, IQS7222_REG_GRP_GPIO, IQS7222_REG_GRP_SYS, IQS7222_NUM_REG_GRPS }; -static const char * const iqs7222_reg_grp_names[] = { +static const char * const iqs7222_reg_grp_names[IQS7222_NUM_REG_GRPS] = { [IQS7222_REG_GRP_CYCLE] = "cycle", [IQS7222_REG_GRP_CHAN] = "channel", [IQS7222_REG_GRP_SLDR] = "slider", [IQS7222_REG_GRP_GPIO] = "gpio", }; -static const unsigned int iqs7222_max_cols[] = { +static const unsigned int iqs7222_max_cols[IQS7222_NUM_REG_GRPS] = { [IQS7222_REG_GRP_STAT] = IQS7222_MAX_COLS_STAT, [IQS7222_REG_GRP_CYCLE] = IQS7222_MAX_COLS_CYCLE, [IQS7222_REG_GRP_GLBL] = IQS7222_MAX_COLS_GLBL, @@ -135,12 +139,12 @@ static const struct iqs7222_event_desc iqs7222_kp_events[] = { { .name = "event-prox", - .enable = BIT(0), + .enable = IQS7222_EVENT_MASK_PROX, .reg_key = IQS7222_REG_KEY_PROX, }, { .name = "event-touch", - .enable = BIT(1), + .enable = IQS7222_EVENT_MASK_TOUCH, .reg_key = IQS7222_REG_KEY_TOUCH, }, }; @@ -200,6 +204,7 @@ int allow_offset; int event_offset; int comms_offset; + bool legacy_gesture; struct iqs7222_reg_grp_desc reg_grps[IQS7222_NUM_REG_GRPS]; }; @@ -207,12 +212,70 @@ { .prod_num = IQS7222_PROD_NUM_A, .fw_major = 1, + .fw_minor = 13, + .sldr_res = U8_MAX * 16, + .touch_link = 1768, + .allow_offset = 9, + .event_offset = 10, + .comms_offset = 12, + .reg_grps = { + [IQS7222_REG_GRP_STAT] = { + .base = IQS7222_SYS_STATUS, + .num_row = 1, + .num_col = 8, + }, + [IQS7222_REG_GRP_CYCLE] = { + .base = 0x8000, + .num_row = 7, + .num_col = 3, + }, + [IQS7222_REG_GRP_GLBL] = { + .base = 0x8700, + .num_row = 1, + .num_col = 3, + }, + [IQS7222_REG_GRP_BTN] = { + .base = 0x9000, + .num_row = 12, + .num_col = 3, + }, + [IQS7222_REG_GRP_CHAN] = { + .base = 0xA000, + .num_row = 12, + .num_col = 6, + }, + [IQS7222_REG_GRP_FILT] = { + .base = 0xAC00, + .num_row = 1, + .num_col = 2, + }, + [IQS7222_REG_GRP_SLDR] = { + .base = 0xB000, + .num_row = 2, + .num_col = 11, + }, + [IQS7222_REG_GRP_GPIO] = { + .base = 0xC000, + .num_row = 1, + .num_col = 3, + }, + [IQS7222_REG_GRP_SYS] = { + .base = IQS7222_SYS_SETUP, + .num_row = 1, + .num_col = 13, + }, + }, + }, + { + .prod_num = IQS7222_PROD_NUM_A, + .fw_major = 1, .fw_minor = 12, .sldr_res = U8_MAX * 16, .touch_link = 1768, .allow_offset = 9, .event_offset = 10, .comms_offset = 12, + .legacy_gesture = true, .reg_grps = { [IQS7222_REG_GRP_STAT] = { .base = IQS7222_SYS_STATUS, @@ -556,13 +619,6 @@ .label = "current reference trim", }, { - .name = "azoteq,rf-filt-enable", - .reg_grp = IQS7222_REG_GRP_GLBL, - .reg_offset = 0, - .reg_shift = 15, - .reg_width = 1, - }, - { .name = "azoteq,max-counts", .reg_grp = IQS7222_REG_GRP_GLBL, .reg_offset = 0, @@ -879,6 +935,16 @@ .reg_offset = 9, .reg_shift = 8, .reg_width = 8, + .val_pitch = 16, + .label = "maximum gesture time", + }, + { + .name = "azoteq,gesture-max-ms", + .reg_grp = IQS7222_REG_GRP_SLDR, + .reg_key = IQS7222_REG_KEY_TAP_LEGACY, + .reg_offset = 9, + .reg_shift = 8, + .reg_width = 8, .val_pitch = 4, .label = "maximum gesture time", }, @@ -889,6 +955,16 @@ .reg_offset = 9, .reg_shift = 3, .reg_width = 5, + .val_pitch = 16, + .label = "minimum gesture time", + }, + { + .name = "azoteq,gesture-min-ms", + .reg_grp = IQS7222_REG_GRP_SLDR, + .reg_key = IQS7222_REG_KEY_TAP_LEGACY, + .reg_offset = 9, + .reg_shift = 3, + .reg_width = 5, .val_pitch = 4, .label = "minimum gesture time", }, @@ -903,12 +979,32 @@ .label = "gesture distance", }, { + .name = "azoteq,gesture-dist", + .reg_grp = IQS7222_REG_GRP_SLDR, + .reg_key = IQS7222_REG_KEY_AXIAL_LEGACY, + .reg_offset = 10, + .reg_shift = 8, + .reg_width = 8, + .val_pitch = 16, + .label = "gesture distance", + }, + { .name = "azoteq,gesture-max-ms", .reg_grp = IQS7222_REG_GRP_SLDR, .reg_key = IQS7222_REG_KEY_AXIAL, .reg_offset = 10, .reg_shift = 0, .reg_width = 8, + .val_pitch = 16, + .label = "maximum gesture time", + }, + { + .name = "azoteq,gesture-max-ms", + .reg_grp = IQS7222_REG_GRP_SLDR, + .reg_key = IQS7222_REG_KEY_AXIAL_LEGACY, + .reg_offset = 10, + .reg_shift = 0, + .reg_width = 8, .val_pitch = 4, .label = "maximum gesture time", }, @@ -1082,7 +1178,7 @@ static int iqs7222_force_comms(struct iqs7222_private *iqs7222) { - u8 msg_buf[] = { 0xFF, 0x00, }; + u8 msg_buf[] = { 0xFF, }; int ret; /* @@ -1272,9 +1368,22 @@ struct i2c_client *client = iqs7222->client; ktime_t ati_timeout; u16 sys_status = 0; - u16 sys_setup = iqs7222->sys_setup[0] & ~IQS7222_SYS_SETUP_ACK_RESET; + u16 sys_setup; int error, i; + /* + * The reserved fields of the system setup register may have changed + * as a result of other registers having been written. As such, read + * the register's latest value to avoid unexpected behavior when the + * register is written in the loop that follows. + */ + error = iqs7222_read_word(iqs7222, IQS7222_SYS_SETUP, &sys_setup); + if (error) + return error; + + sys_setup &= ~IQS7222_SYS_SETUP_INTF_MODE_MASK; + sys_setup &= ~IQS7222_SYS_SETUP_PWR_MODE_MASK; + for (i = 0; i < IQS7222_NUM_RETRIES; i++) { /* * Trigger ATI from streaming and normal-power modes so that @@ -1299,12 +1408,15 @@ if (error) return error; - if (sys_status & IQS7222_SYS_STATUS_ATI_ACTIVE) - continue; + if (sys_status & IQS7222_SYS_STATUS_RESET) + return 0; if (sys_status & IQS7222_SYS_STATUS_ATI_ERROR) break; + if (sys_status & IQS7222_SYS_STATUS_ATI_ACTIVE) + continue; + /* * Use stream-in-touch mode if either slider reports * absolute position. @@ -1321,7 +1433,7 @@ dev_err(&client->dev, "ATI attempt %d of %d failed with status 0x%02X, %s\n", i + 1, IQS7222_NUM_RETRIES, (u8)sys_status, - i < IQS7222_NUM_RETRIES ? "retrying..." : "stopping"); + i + 1 < IQS7222_NUM_RETRIES ? "retrying" : "stopping"); } return -ETIMEDOUT; @@ -1334,6 +1446,34 @@ int error, i, j, k; /* + * Acknowledge reset before writing any registers in case the device + * suffers a spurious reset during initialization. Because this step + * may change the reserved fields of the second filter beta register, + * its cache must be updated. + * + * Writing the second filter beta register, in turn, may clobber the + * system status register. As such, the filter beta register pair is + * written first to protect against this hazard. + */ + if (dir == WRITE) { + u16 reg = dev_desc->reg_grps[IQS7222_REG_GRP_FILT].base + 1; + u16 filt_setup; + + error = iqs7222_write_word(iqs7222, IQS7222_SYS_SETUP, + iqs7222->sys_setup[0] | + IQS7222_SYS_SETUP_ACK_RESET); + if (error) + return error; + + error = iqs7222_read_word(iqs7222, reg, &filt_setup); + if (error) + return error; + + iqs7222->filt_setup[1] &= GENMASK(7, 0); + iqs7222->filt_setup[1] |= (filt_setup & ~GENMASK(7, 0)); + } + + /* * Take advantage of the stop-bit disable function, if available, to * save the trouble of having to reopen a communication window after * each burst read or write. @@ -1528,56 +1668,17 @@ } static int iqs7222_parse_props(struct iqs7222_private *iqs7222, - struct fwnode_handle **child_node, - int child_index, + struct fwnode_handle *reg_grp_node, + int reg_grp_index, enum iqs7222_reg_grp_id reg_grp, enum iqs7222_reg_key_id reg_key) { - u16 *setup = iqs7222_setup(iqs7222, reg_grp, child_index); + u16 *setup = iqs7222_setup(iqs7222, reg_grp, reg_grp_index); struct i2c_client *client = iqs7222->client; - struct fwnode_handle *reg_grp_node; - char reg_grp_name[16]; int i; - switch (reg_grp) { - case IQS7222_REG_GRP_CYCLE: - case IQS7222_REG_GRP_CHAN: - case IQS7222_REG_GRP_SLDR: - case IQS7222_REG_GRP_GPIO: - case IQS7222_REG_GRP_BTN: - /* - * These groups derive a child node and return it to the caller - * for additional group-specific processing. In some cases, the - * child node may have already been derived. - */ - reg_grp_node = *child_node; - if (reg_grp_node) - break; - - snprintf(reg_grp_name, sizeof(reg_grp_name), "%s-%d", - iqs7222_reg_grp_names[reg_grp], child_index); - - reg_grp_node = device_get_named_child_node(&client->dev, - reg_grp_name); - if (!reg_grp_node) - return 0; - - *child_node = reg_grp_node; - break; - - case IQS7222_REG_GRP_GLBL: - case IQS7222_REG_GRP_FILT: - case IQS7222_REG_GRP_SYS: - /* - * These groups are not organized beneath a child node, nor are - * they subject to any additional processing by the caller. - */ - reg_grp_node = dev_fwnode(&client->dev); - break; - - default: - return -EINVAL; - } + if (!setup) + return 0; for (i = 0; i < ARRAY_SIZE(iqs7222_props); i++) { const char *name = iqs7222_props[i].name; @@ -1647,11 +1748,66 @@ return 0; } -static int iqs7222_parse_cycle(struct iqs7222_private *iqs7222, int cycle_index) +static int iqs7222_parse_event(struct iqs7222_private *iqs7222, + struct fwnode_handle *event_node, + int reg_grp_index, + enum iqs7222_reg_grp_id reg_grp, + enum iqs7222_reg_key_id reg_key, + u16 event_enable, u16 event_link, + unsigned int *event_type, + unsigned int *event_code) +{ + struct i2c_client *client = iqs7222->client; + int error; + + error = iqs7222_parse_props(iqs7222, event_node, reg_grp_index, + reg_grp, reg_key); + if (error) + return error; + + error = iqs7222_gpio_select(iqs7222, event_node, event_enable, + event_link); + if (error) + return error; + + error = fwnode_property_read_u32(event_node, "linux,code", event_code); + if (error == -EINVAL) { + return 0; + } else if (error) { + dev_err(&client->dev, "Failed to read %s code: %d\n", + fwnode_get_name(event_node), error); + return error; + } + + if (!event_type) { + input_set_capability(iqs7222->keypad, EV_KEY, *event_code); + return 0; + } + + error = fwnode_property_read_u32(event_node, "linux,input-type", + event_type); + if (error == -EINVAL) { + *event_type = EV_KEY; + } else if (error) { + dev_err(&client->dev, "Failed to read %s input type: %d\n", + fwnode_get_name(event_node), error); + return error; + } else if (*event_type != EV_KEY && *event_type != EV_SW) { + dev_err(&client->dev, "Invalid %s input type: %d\n", + fwnode_get_name(event_node), *event_type); + return -EINVAL; + } + + input_set_capability(iqs7222->keypad, *event_type, *event_code); + + return 0; +} + +static int iqs7222_parse_cycle(struct iqs7222_private *iqs7222, + struct fwnode_handle *cycle_node, int cycle_index) { u16 *cycle_setup = iqs7222->cycle_setup[cycle_index]; struct i2c_client *client = iqs7222->client; - struct fwnode_handle *cycle_node = NULL; unsigned int pins[9]; int error, count, i; @@ -1659,17 +1815,7 @@ * Each channel shares a cycle with one other channel; the mapping of * channels to cycles is fixed. Properties defined for a cycle impact * both channels tied to the cycle. - */ - error = iqs7222_parse_props(iqs7222, &cycle_node, cycle_index, - IQS7222_REG_GRP_CYCLE, - IQS7222_REG_KEY_NONE); - if (error) - return error; - - if (!cycle_node) - return 0; - - /* + * * Unlike channels which are restricted to a select range of CRx pins * based on channel number, any cycle can claim any of the device's 9 * CTx pins (CTx0-8). @@ -1711,11 +1857,11 @@ return 0; } -static int iqs7222_parse_chan(struct iqs7222_private *iqs7222, int chan_index) +static int iqs7222_parse_chan(struct iqs7222_private *iqs7222, + struct fwnode_handle *chan_node, int chan_index) { const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc; struct i2c_client *client = iqs7222->client; - struct fwnode_handle *chan_node = NULL; int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row; int ext_chan = rounddown(num_chan, 10); int error, i; @@ -1723,20 +1869,9 @@ u16 *sys_setup = iqs7222->sys_setup; unsigned int val; - error = iqs7222_parse_props(iqs7222, &chan_node, chan_index, - IQS7222_REG_GRP_CHAN, - IQS7222_REG_KEY_NONE); - if (error) - return error; - - if (!chan_node) - return 0; - - if (dev_desc->allow_offset) { - sys_setup[dev_desc->allow_offset] |= BIT(chan_index); - if (fwnode_property_present(chan_node, "azoteq,ulp-allow")) - sys_setup[dev_desc->allow_offset] &= ~BIT(chan_index); - } + if (dev_desc->allow_offset && + fwnode_property_present(chan_node, "azoteq,ulp-allow")) + sys_setup[dev_desc->allow_offset] &= ~BIT(chan_index); chan_setup[0] |= IQS7222_CHAN_SETUP_0_CHAN_EN; @@ -1773,8 +1908,9 @@ chan_setup[0] |= IQS7222_CHAN_SETUP_0_REF_MODE_FOLLOW; chan_setup[4] = val * 42 + 1048; - if (!fwnode_property_read_u32(chan_node, "azoteq,ref-weight", - &val)) { + error = fwnode_property_read_u32(chan_node, "azoteq,ref-weight", + &val); + if (!error) { if (val > U16_MAX) { dev_err(&client->dev, "Invalid %s reference weight: %u\n", @@ -1783,6 +1919,11 @@ } chan_setup[5] = val; + } else if (error != -EINVAL) { + dev_err(&client->dev, + "Failed to read %s reference weight: %d\n", + fwnode_get_name(chan_node), error); + return error; } /* @@ -1855,21 +1996,10 @@ if (!event_node) continue; - error = iqs7222_parse_props(iqs7222, &event_node, chan_index, - IQS7222_REG_GRP_BTN, - iqs7222_kp_events[i].reg_key); - if (error) - return error; - - error = iqs7222_gpio_select(iqs7222, event_node, - BIT(chan_index), - dev_desc->touch_link - (i ? 0 : 2)); - if (error) - return error; - - if (!fwnode_property_read_u32(event_node, - "azoteq,timeout-press-ms", - &val)) { + error = fwnode_property_read_u32(event_node, + "azoteq,timeout-press-ms", + &val); + if (!error) { /* * The IQS7222B employs a global pair of press timeout * registers as opposed to channel-specific registers. @@ -1882,57 +2012,31 @@ if (val > U8_MAX * 500) { dev_err(&client->dev, "Invalid %s press timeout: %u\n", - fwnode_get_name(chan_node), val); + fwnode_get_name(event_node), val); + fwnode_handle_put(event_node); return -EINVAL; } *setup &= ~(U8_MAX << i * 8); *setup |= (val / 500 << i * 8); - } - - error = fwnode_property_read_u32(event_node, "linux,code", - &val); - if (error) { - dev_err(&client->dev, "Failed to read %s code: %d\n", - fwnode_get_name(chan_node), error); + } else if (error != -EINVAL) { + dev_err(&client->dev, + "Failed to read %s press timeout: %d\n", + fwnode_get_name(event_node), error); + fwnode_handle_put(event_node); return error; } - iqs7222->kp_code[chan_index][i] = val; - iqs7222->kp_type[chan_index][i] = EV_KEY; - - if (fwnode_property_present(event_node, "linux,input-type")) { - error = fwnode_property_read_u32(event_node, - "linux,input-type", - &val); - if (error) { - dev_err(&client->dev, - "Failed to read %s input type: %d\n", - fwnode_get_name(chan_node), error); - return error; - } - - if (val != EV_KEY && val != EV_SW) { - dev_err(&client->dev, - "Invalid %s input type: %u\n", - fwnode_get_name(chan_node), val); - return -EINVAL; - } - - iqs7222->kp_type[chan_index][i] = val; - } - - /* - * Reference channels can opt out of event reporting by using - * KEY_RESERVED in place of a true key or switch code. - */ - if (iqs7222->kp_type[chan_index][i] == EV_KEY && - iqs7222->kp_code[chan_index][i] == KEY_RESERVED) - continue; - - input_set_capability(iqs7222->keypad, - iqs7222->kp_type[chan_index][i], - iqs7222->kp_code[chan_index][i]); + error = iqs7222_parse_event(iqs7222, event_node, chan_index, + IQS7222_REG_GRP_BTN, + iqs7222_kp_events[i].reg_key, + BIT(chan_index), + dev_desc->touch_link - (i ? 0 : 2), + &iqs7222->kp_type[chan_index][i], + &iqs7222->kp_code[chan_index][i]); + fwnode_handle_put(event_node); + if (error) + return error; if (!dev_desc->event_offset) continue; @@ -1944,32 +2048,23 @@ * The following call handles a special pair of properties that apply * to a channel node, but reside within the button (event) group. */ - return iqs7222_parse_props(iqs7222, &chan_node, chan_index, + return iqs7222_parse_props(iqs7222, chan_node, chan_index, IQS7222_REG_GRP_BTN, IQS7222_REG_KEY_DEBOUNCE); } -static int iqs7222_parse_sldr(struct iqs7222_private *iqs7222, int sldr_index) +static int iqs7222_parse_sldr(struct iqs7222_private *iqs7222, + struct fwnode_handle *sldr_node, int sldr_index) { const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc; struct i2c_client *client = iqs7222->client; - struct fwnode_handle *sldr_node = NULL; int num_chan = dev_desc->reg_grps[IQS7222_REG_GRP_CHAN].num_row; int ext_chan = rounddown(num_chan, 10); int count, error, reg_offset, i; + u16 *event_mask = &iqs7222->sys_setup[dev_desc->event_offset]; u16 *sldr_setup = iqs7222->sldr_setup[sldr_index]; - u16 *sys_setup = iqs7222->sys_setup; unsigned int chan_sel[4], val; - error = iqs7222_parse_props(iqs7222, &sldr_node, sldr_index, - IQS7222_REG_GRP_SLDR, - IQS7222_REG_KEY_NONE); - if (error) - return error; - - if (!sldr_node) - return 0; - /* * Each slider can be spread across 3 to 4 channels. It is possible to * select only 2 channels, but doing so prevents the slider from using @@ -2003,7 +2098,7 @@ reg_offset = dev_desc->sldr_res < U16_MAX ? 0 : 1; sldr_setup[0] |= count; - sldr_setup[3 + reg_offset] &= ~IQS7222_SLDR_SETUP_3_CHAN_SEL_MASK; + sldr_setup[3 + reg_offset] &= ~GENMASK(ext_chan - 1, 0); for (i = 0; i < ARRAY_SIZE(chan_sel); i++) { sldr_setup[5 + reg_offset + i] = 0; @@ -2028,8 +2123,9 @@ if (fwnode_property_present(sldr_node, "azoteq,use-prox")) sldr_setup[4 + reg_offset] -= 2; - if (!fwnode_property_read_u32(sldr_node, "azoteq,slider-size", &val)) { - if (!val || val > dev_desc->sldr_res) { + error = fwnode_property_read_u32(sldr_node, "azoteq,slider-size", &val); + if (!error) { + if (val > dev_desc->sldr_res) { dev_err(&client->dev, "Invalid %s size: %u\n", fwnode_get_name(sldr_node), val); return -EINVAL; @@ -2042,9 +2138,21 @@ sldr_setup[2] |= (val / 16 << IQS7222_SLDR_SETUP_2_RES_SHIFT); } + } else if (error != -EINVAL) { + dev_err(&client->dev, "Failed to read %s size: %d\n", + fwnode_get_name(sldr_node), error); + return error; + } + + if (!(reg_offset ? sldr_setup[3] + : sldr_setup[2] & IQS7222_SLDR_SETUP_2_RES_MASK)) { + dev_err(&client->dev, "Undefined %s size\n", + fwnode_get_name(sldr_node)); + return -EINVAL; } - if (!fwnode_property_read_u32(sldr_node, "azoteq,top-speed", &val)) { + error = fwnode_property_read_u32(sldr_node, "azoteq,top-speed", &val); + if (!error) { if (val > (reg_offset ? U16_MAX : U8_MAX * 4)) { dev_err(&client->dev, "Invalid %s top speed: %u\n", fwnode_get_name(sldr_node), val); @@ -2057,9 +2165,14 @@ sldr_setup[2] &= ~IQS7222_SLDR_SETUP_2_TOP_SPEED_MASK; sldr_setup[2] |= (val / 4); } + } else if (error != -EINVAL) { + dev_err(&client->dev, "Failed to read %s top speed: %d\n", + fwnode_get_name(sldr_node), error); + return error; } - if (!fwnode_property_read_u32(sldr_node, "linux,axis", &val)) { + error = fwnode_property_read_u32(sldr_node, "linux,axis", &val); + if (!error) { u16 sldr_max = sldr_setup[3] - 1; if (!reg_offset) { @@ -2073,6 +2186,10 @@ input_set_abs_params(iqs7222->keypad, val, 0, sldr_max, 0, 0); iqs7222->sl_axis[sldr_index] = val; + } else if (error != -EINVAL) { + dev_err(&client->dev, "Failed to read %s axis: %d\n", + fwnode_get_name(sldr_node), error); + return error; } if (dev_desc->wheel_enable) { @@ -2081,109 +2198,150 @@ sldr_setup[0] |= dev_desc->wheel_enable; } + /* + * The absence of a register offset makes it safe to assume the device + * supports gestures, each of which is first disabled until explicitly + * enabled. + */ + if (!reg_offset) + for (i = 0; i < ARRAY_SIZE(iqs7222_sl_events); i++) + sldr_setup[9] &= ~iqs7222_sl_events[i].enable; + for (i = 0; i < ARRAY_SIZE(iqs7222_sl_events); i++) { const char *event_name = iqs7222_sl_events[i].name; struct fwnode_handle *event_node; - - /* - * The absence of a register offset means the remaining fields - * in the group represent gesture settings. - */ - if (iqs7222_sl_events[i].enable && !reg_offset) - sldr_setup[9] &= ~iqs7222_sl_events[i].enable; + enum iqs7222_reg_key_id reg_key; event_node = fwnode_get_named_child_node(sldr_node, event_name); if (!event_node) continue; - error = iqs7222_parse_props(iqs7222, &event_node, sldr_index, - IQS7222_REG_GRP_SLDR, - reg_offset ? - IQS7222_REG_KEY_RESERVED : - iqs7222_sl_events[i].reg_key); - if (error) - return error; - - error = fwnode_property_read_u32(event_node, "linux,code", - &val); - if (error) { - dev_err(&client->dev, "Failed to read %s code: %d\n", - fwnode_get_name(sldr_node), error); - return error; - } - - iqs7222->sl_code[sldr_index][i] = val; - input_set_capability(iqs7222->keypad, EV_KEY, val); - /* - * The press/release event is determined based on whether the - * coordinate field reports 0xFFFF and has no explicit enable - * control. + * Depending on the device, gestures are either offered using + * one of two timing resolutions, or are not supported at all. */ - if (!iqs7222_sl_events[i].enable || reg_offset) - continue; + if (reg_offset) + reg_key = IQS7222_REG_KEY_RESERVED; + else if (dev_desc->legacy_gesture && + iqs7222_sl_events[i].reg_key == IQS7222_REG_KEY_TAP) + reg_key = IQS7222_REG_KEY_TAP_LEGACY; + else if (dev_desc->legacy_gesture && + iqs7222_sl_events[i].reg_key == IQS7222_REG_KEY_AXIAL) + reg_key = IQS7222_REG_KEY_AXIAL_LEGACY; + else + reg_key = iqs7222_sl_events[i].reg_key; - sldr_setup[9] |= iqs7222_sl_events[i].enable; - - error = iqs7222_gpio_select(iqs7222, event_node, - iqs7222_sl_events[i].enable, - 1568 + sldr_index * 30); + /* + * The press/release event does not expose a direct GPIO link, + * but one can be emulated by tying each of the participating + * channels to the same GPIO. + */ + error = iqs7222_parse_event(iqs7222, event_node, sldr_index, + IQS7222_REG_GRP_SLDR, reg_key, + i ? iqs7222_sl_events[i].enable + : sldr_setup[3 + reg_offset], + i ? 1568 + sldr_index * 30 + : sldr_setup[4 + reg_offset], + NULL, + &iqs7222->sl_code[sldr_index][i]); + fwnode_handle_put(event_node); if (error) return error; + if (!reg_offset) + sldr_setup[9] |= iqs7222_sl_events[i].enable; + if (!dev_desc->event_offset) continue; - sys_setup[dev_desc->event_offset] |= BIT(10 + sldr_index); + /* + * The press/release event is determined based on whether the + * coordinate field reports 0xFFFF and solely relies on touch + * or proximity interrupts to be unmasked. + */ + if (i && !reg_offset) + *event_mask |= (IQS7222_EVENT_MASK_SLDR << sldr_index); + else if (sldr_setup[4 + reg_offset] == dev_desc->touch_link) + *event_mask |= IQS7222_EVENT_MASK_TOUCH; + else + *event_mask |= IQS7222_EVENT_MASK_PROX; } /* * The following call handles a special pair of properties that shift * to make room for a wheel enable control in the case of IQS7222C. */ - return iqs7222_parse_props(iqs7222, &sldr_node, sldr_index, + return iqs7222_parse_props(iqs7222, sldr_node, sldr_index, IQS7222_REG_GRP_SLDR, dev_desc->wheel_enable ? IQS7222_REG_KEY_WHEEL : IQS7222_REG_KEY_NO_WHEEL); } +static int (*iqs7222_parse_extra[IQS7222_NUM_REG_GRPS]) + (struct iqs7222_private *iqs7222, + struct fwnode_handle *reg_grp_node, + int reg_grp_index) = { + [IQS7222_REG_GRP_CYCLE] = iqs7222_parse_cycle, + [IQS7222_REG_GRP_CHAN] = iqs7222_parse_chan, + [IQS7222_REG_GRP_SLDR] = iqs7222_parse_sldr, +}; + +static int iqs7222_parse_reg_grp(struct iqs7222_private *iqs7222, + enum iqs7222_reg_grp_id reg_grp, + int reg_grp_index) +{ + struct i2c_client *client = iqs7222->client; + struct fwnode_handle *reg_grp_node; + int error; + + if (iqs7222_reg_grp_names[reg_grp]) { + char reg_grp_name[16]; + + snprintf(reg_grp_name, sizeof(reg_grp_name), "%s-%d", + iqs7222_reg_grp_names[reg_grp], reg_grp_index); + + reg_grp_node = device_get_named_child_node(&client->dev, + reg_grp_name); + } else { + reg_grp_node = fwnode_handle_get(dev_fwnode(&client->dev)); + } + + if (!reg_grp_node) + return 0; + + error = iqs7222_parse_props(iqs7222, reg_grp_node, reg_grp_index, + reg_grp, IQS7222_REG_KEY_NONE); + + if (!error && iqs7222_parse_extra[reg_grp]) + error = iqs7222_parse_extra[reg_grp](iqs7222, reg_grp_node, + reg_grp_index); + + fwnode_handle_put(reg_grp_node); + + return error; +} + static int iqs7222_parse_all(struct iqs7222_private *iqs7222) { const struct iqs7222_dev_desc *dev_desc = iqs7222->dev_desc; const struct iqs7222_reg_grp_desc *reg_grps = dev_desc->reg_grps; u16 *sys_setup = iqs7222->sys_setup; - int error, i; + int error, i, j; + + if (dev_desc->allow_offset) + sys_setup[dev_desc->allow_offset] = U16_MAX; if (dev_desc->event_offset) sys_setup[dev_desc->event_offset] = IQS7222_EVENT_MASK_ATI; - for (i = 0; i < reg_grps[IQS7222_REG_GRP_CYCLE].num_row; i++) { - error = iqs7222_parse_cycle(iqs7222, i); - if (error) - return error; - } - - error = iqs7222_parse_props(iqs7222, NULL, 0, IQS7222_REG_GRP_GLBL, - IQS7222_REG_KEY_NONE); - if (error) - return error; - for (i = 0; i < reg_grps[IQS7222_REG_GRP_GPIO].num_row; i++) { - struct fwnode_handle *gpio_node = NULL; u16 *gpio_setup = iqs7222->gpio_setup[i]; - int j; gpio_setup[0] &= ~IQS7222_GPIO_SETUP_0_GPIO_EN; gpio_setup[1] = 0; gpio_setup[2] = 0; - error = iqs7222_parse_props(iqs7222, &gpio_node, i, - IQS7222_REG_GRP_GPIO, - IQS7222_REG_KEY_NONE); - if (error) - return error; - if (reg_grps[IQS7222_REG_GRP_GPIO].num_row == 1) continue; @@ -2206,34 +2364,21 @@ chan_setup[5] = 0; } - for (i = 0; i < reg_grps[IQS7222_REG_GRP_CHAN].num_row; i++) { - error = iqs7222_parse_chan(iqs7222, i); - if (error) - return error; - } - - error = iqs7222_parse_props(iqs7222, NULL, 0, IQS7222_REG_GRP_FILT, - IQS7222_REG_KEY_NONE); - if (error) - return error; - for (i = 0; i < reg_grps[IQS7222_REG_GRP_SLDR].num_row; i++) { u16 *sldr_setup = iqs7222->sldr_setup[i]; sldr_setup[0] &= ~IQS7222_SLDR_SETUP_0_CHAN_CNT_MASK; - - error = iqs7222_parse_sldr(iqs7222, i); - if (error) - return error; } - sys_setup[0] &= ~IQS7222_SYS_SETUP_INTF_MODE_MASK; - sys_setup[0] &= ~IQS7222_SYS_SETUP_PWR_MODE_MASK; - - sys_setup[0] |= IQS7222_SYS_SETUP_ACK_RESET; + for (i = 0; i < IQS7222_NUM_REG_GRPS; i++) { + for (j = 0; j < reg_grps[i].num_row; j++) { + error = iqs7222_parse_reg_grp(iqs7222, i, j); + if (error) + return error; + } + } - return iqs7222_parse_props(iqs7222, NULL, 0, IQS7222_REG_GRP_SYS, - IQS7222_REG_KEY_NONE); + return 0; } static int iqs7222_report(struct iqs7222_private *iqs7222) @@ -2280,6 +2425,9 @@ int k = 2 + j * (num_chan > 16 ? 2 : 1); u16 state = le16_to_cpu(status[k + i / 16]); + if (!iqs7222->kp_type[i][j]) + continue; + input_event(iqs7222->keypad, iqs7222->kp_type[i][j], iqs7222->kp_code[i][j], @@ -2299,29 +2447,37 @@ input_report_abs(iqs7222->keypad, iqs7222->sl_axis[i], sldr_pos); - for (j = 0; j < ARRAY_SIZE(iqs7222_sl_events); j++) { - u16 mask = iqs7222_sl_events[j].mask; - u16 val = iqs7222_sl_events[j].val; + input_report_key(iqs7222->keypad, iqs7222->sl_code[i][0], + sldr_pos < dev_desc->sldr_res); - if (!iqs7222_sl_events[j].enable) { - input_report_key(iqs7222->keypad, - iqs7222->sl_code[i][j], - sldr_pos < dev_desc->sldr_res); - continue; - } + /* + * A maximum resolution indicates the device does not support + * gestures, in which case the remaining fields are ignored. + */ + if (dev_desc->sldr_res == U16_MAX) + continue; - /* - * The remaining offsets represent gesture state, and - * are discarded in the case of IQS7222C because only - * absolute position is reported. - */ - if (num_stat < IQS7222_MAX_COLS_STAT) - continue; + if (!(le16_to_cpu(status[1]) & IQS7222_EVENT_MASK_SLDR << i)) + continue; + + /* + * Skip the press/release event, as it does not have separate + * status fields and is handled separately. + */ + for (j = 1; j < ARRAY_SIZE(iqs7222_sl_events); j++) { + u16 mask = iqs7222_sl_events[j].mask; + u16 val = iqs7222_sl_events[j].val; input_report_key(iqs7222->keypad, iqs7222->sl_code[i][j], (state & mask) == val); } + + input_sync(iqs7222->keypad); + + for (j = 1; j < ARRAY_SIZE(iqs7222_sl_events); j++) + input_report_key(iqs7222->keypad, + iqs7222->sl_code[i][j], 0); } input_sync(iqs7222->keypad); --- linux-5.19.0.orig/drivers/input/misc/rk805-pwrkey.c +++ linux-5.19.0/drivers/input/misc/rk805-pwrkey.c @@ -98,6 +98,7 @@ }; module_platform_driver(rk805_pwrkey_driver); +MODULE_ALIAS("platform:rk805-pwrkey"); MODULE_AUTHOR("Joseph Chen "); MODULE_DESCRIPTION("RK805 PMIC Power Key driver"); MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/drivers/input/misc/soc_button_array.c +++ linux-5.19.0/drivers/input/misc/soc_button_array.c @@ -18,6 +18,10 @@ #include #include +static bool use_low_level_irq; +module_param(use_low_level_irq, bool, 0444); +MODULE_PARM_DESC(use_low_level_irq, "Use low-level triggered IRQ instead of edge triggered"); + struct soc_button_info { const char *name; int acpi_index; @@ -74,6 +78,13 @@ }, }, { + /* Acer Switch V 10 SW5-017, same issue as Acer Switch 10 SW5-012. */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "SW5-017"), + }, + }, + { /* * Acer One S1003. _LID method messes with power-button GPIO * IRQ settings, leading to a non working power-button. @@ -164,7 +175,8 @@ } /* See dmi_use_low_level_irq[] comment */ - if (!autorepeat && dmi_check_system(dmi_use_low_level_irq)) { + if (!autorepeat && (use_low_level_irq || + dmi_check_system(dmi_use_low_level_irq))) { irq_set_irq_type(irq, IRQ_TYPE_LEVEL_LOW); gpio_keys[n_buttons].irq = irq; gpio_keys[n_buttons].gpio = -ENOENT; --- linux-5.19.0.orig/drivers/input/mouse/cypress_ps2.c +++ linux-5.19.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; icontact_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-5.19.0.orig/drivers/input/mouse/cypress_ps2.h +++ linux-5.19.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-5.19.0.orig/drivers/input/mouse/synaptics.c +++ linux-5.19.0/drivers/input/mouse/synaptics.c @@ -192,6 +192,7 @@ "SYN3221", /* HP 15-ay000 */ "SYN323d", /* HP Spectre X360 13-w013dx */ "SYN3257", /* HP Envy 13-ad105ng */ + "SYN3286", /* HP Laptop 15-da3001TU */ NULL }; --- linux-5.19.0.orig/drivers/input/serio/gscps2.c +++ linux-5.19.0/drivers/input/serio/gscps2.c @@ -350,6 +350,10 @@ ps2port->port = serio; ps2port->padev = dev; ps2port->addr = ioremap(hpa, GSC_STATUS + 4); + if (!ps2port->addr) { + ret = -ENOMEM; + goto fail_nomem; + } spin_lock_init(&ps2port->lock); gscps2_reset(ps2port); --- linux-5.19.0.orig/drivers/input/serio/i8042-x86ia64io.h +++ linux-5.19.0/drivers/input/serio/i8042-x86ia64io.h @@ -997,17 +997,17 @@ static const struct dmi_system_id i8042_dmi_probe_defer_table[] __initconst = { { - /* ASUS ZenBook UX425UA */ + /* ASUS ZenBook UX425UA/QA */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX425UA"), + DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX425"), }, }, { - /* ASUS ZenBook UM325UA */ + /* ASUS ZenBook UM325UA/QA */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), - DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325UA_UM325UA"), + DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325"), }, }, { } --- linux-5.19.0.orig/drivers/input/serio/i8042.c +++ linux-5.19.0/drivers/input/serio/i8042.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -178,6 +179,24 @@ static bool (*i8042_platform_filter)(unsigned char data, unsigned char str, struct serio *serio); +static int __init i8042_set_noaux(const struct dmi_system_id *dmi) +{ + i8042_noaux = true; + return 1; +} + +static const struct dmi_system_id i8042_quirks[] __initconst = { + { + .callback = i8042_set_noaux, + .ident = "Dell laptop", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Precision 5550"), + }, + }, + {}, +}; + void i8042_lock_chip(void) { mutex_lock(&i8042_mutex); @@ -621,7 +640,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; } @@ -640,7 +659,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; } @@ -732,7 +751,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; } @@ -947,25 +966,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 { - - if (i8042_command(¶m, I8042_CMD_CTL_TEST)) { - pr_err("i8042 controller selftest timeout\n"); - return -ENODEV; - } + while (i++ < 5) { - if (param == I8042_RET_CTL_TEST) + ret = i8042_command(¶m, 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 /* @@ -977,7 +999,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 } @@ -1543,8 +1565,6 @@ { int error; - i8042_platform_device = dev; - if (i8042_reset == I8042_RESET_ALWAYS) { error = i8042_controller_selftest(); if (error) @@ -1560,6 +1580,8 @@ i8042_dritek_enable(); #endif + dmi_check_system(i8042_quirks); + if (!i8042_noaux) { error = i8042_setup_aux(); if (error && error != -ENODEV && error != -EBUSY) @@ -1582,7 +1604,6 @@ i8042_free_aux_ports(); /* in case KBD failed but AUX not */ i8042_free_irqs(); i8042_controller_reset(false); - i8042_platform_device = NULL; return error; } @@ -1592,7 +1613,6 @@ i8042_unregister_ports(); i8042_free_irqs(); i8042_controller_reset(false); - i8042_platform_device = NULL; return 0; } --- linux-5.19.0.orig/drivers/input/touchscreen/elants_i2c.c +++ linux-5.19.0/drivers/input/touchscreen/elants_i2c.c @@ -1329,14 +1329,12 @@ if (IS_ERR_OR_NULL(ts->reset_gpio)) return 0; - gpiod_set_value_cansleep(ts->reset_gpio, 1); - error = regulator_enable(ts->vcc33); if (error) { dev_err(&ts->client->dev, "failed to enable vcc33 regulator: %d\n", error); - goto release_reset_gpio; + return error; } error = regulator_enable(ts->vccio); @@ -1345,7 +1343,7 @@ "failed to enable vccio regulator: %d\n", error); regulator_disable(ts->vcc33); - goto release_reset_gpio; + return error; } /* @@ -1354,7 +1352,6 @@ */ udelay(ELAN_POWERON_DELAY_USEC); -release_reset_gpio: gpiod_set_value_cansleep(ts->reset_gpio, 0); if (error) return error; @@ -1462,7 +1459,7 @@ return error; } - ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_LOW); + ts->reset_gpio = devm_gpiod_get(&client->dev, "reset", GPIOD_OUT_HIGH); if (IS_ERR(ts->reset_gpio)) { error = PTR_ERR(ts->reset_gpio); --- linux-5.19.0.orig/drivers/input/touchscreen/exc3000.c +++ linux-5.19.0/drivers/input/touchscreen/exc3000.c @@ -220,6 +220,7 @@ { u8 buf[EXC3000_LEN_VENDOR_REQUEST] = { 0x67, 0x00, 0x42, 0x00, 0x03 }; int ret; + unsigned long time_left; mutex_lock(&data->query_lock); @@ -233,9 +234,9 @@ goto out_unlock; if (response) { - ret = wait_for_completion_timeout(&data->wait_event, - timeout * HZ); - if (ret <= 0) { + time_left = wait_for_completion_timeout(&data->wait_event, + timeout * HZ); + if (time_left == 0) { ret = -ETIMEDOUT; goto out_unlock; } --- linux-5.19.0.orig/drivers/input/touchscreen/goodix.c +++ linux-5.19.0/drivers/input/touchscreen/goodix.c @@ -95,6 +95,7 @@ static const struct goodix_chip_id goodix_chip_ids[] = { { .id = "1151", .data = >1x_chip_data }, + { .id = "1158", .data = >1x_chip_data }, { .id = "5663", .data = >1x_chip_data }, { .id = "5688", .data = >1x_chip_data }, { .id = "917S", .data = >1x_chip_data }, @@ -1163,6 +1164,7 @@ input_set_abs_params(ts->input_dev, ABS_MT_WIDTH_MAJOR, 0, 255, 0, 0); input_set_abs_params(ts->input_dev, ABS_MT_TOUCH_MAJOR, 0, 255, 0, 0); +retry_read_config: /* Read configuration and apply touchscreen parameters */ goodix_read_config(ts); @@ -1170,6 +1172,16 @@ touchscreen_parse_properties(ts->input_dev, true, &ts->prop); if (!ts->prop.max_x || !ts->prop.max_y || !ts->max_touch_num) { + if (!ts->reset_controller_at_probe && + ts->irq_pin_access_method != IRQ_PIN_ACCESS_NONE) { + dev_info(&ts->client->dev, "Config not set, resetting controller\n"); + /* Retry after a controller reset */ + ts->reset_controller_at_probe = true; + error = goodix_reset(ts); + if (error) + return error; + goto retry_read_config; + } dev_err(&ts->client->dev, "Invalid config (%d, %d, %d), using defaults\n", ts->prop.max_x, ts->prop.max_y, ts->max_touch_num); @@ -1514,6 +1526,7 @@ #ifdef CONFIG_OF static const struct of_device_id goodix_of_match[] = { { .compatible = "goodix,gt1151" }, + { .compatible = "goodix,gt1158" }, { .compatible = "goodix,gt5663" }, { .compatible = "goodix,gt5688" }, { .compatible = "goodix,gt911" }, --- linux-5.19.0.orig/drivers/input/touchscreen/melfas_mip4.c +++ linux-5.19.0/drivers/input/touchscreen/melfas_mip4.c @@ -1453,7 +1453,7 @@ "ce", GPIOD_OUT_LOW); if (IS_ERR(ts->gpio_ce)) { error = PTR_ERR(ts->gpio_ce); - if (error != EPROBE_DEFER) + if (error != -EPROBE_DEFER) dev_err(&client->dev, "Failed to get gpio: %d\n", error); return error; --- linux-5.19.0.orig/drivers/input/touchscreen/raydium_i2c_ts.c +++ linux-5.19.0/drivers/input/touchscreen/raydium_i2c_ts.c @@ -211,12 +211,14 @@ error = raydium_i2c_xfer(client, addr, xfer, ARRAY_SIZE(xfer)); if (likely(!error)) - return 0; + goto out; msleep(RM_RETRY_DELAY_MS); } while (++tries < RM_MAX_RETRIES); dev_err(&client->dev, "%s failed: %d\n", __func__, error); +out: + kfree(tx_buf); return error; } --- linux-5.19.0.orig/drivers/interconnect/imx/imx.c +++ linux-5.19.0/drivers/interconnect/imx/imx.c @@ -234,16 +234,16 @@ struct device *dev = &pdev->dev; struct icc_onecell_data *data; struct icc_provider *provider; - int max_node_id; + int num_nodes; int ret; /* icc_onecell_data is indexed by node_id, unlike nodes param */ - max_node_id = get_max_node_id(nodes, nodes_count); - data = devm_kzalloc(dev, struct_size(data, nodes, max_node_id), + num_nodes = get_max_node_id(nodes, nodes_count) + 1; + data = devm_kzalloc(dev, struct_size(data, nodes, num_nodes), GFP_KERNEL); if (!data) return -ENOMEM; - data->num_nodes = max_node_id; + data->num_nodes = num_nodes; provider = devm_kzalloc(dev, sizeof(*provider), GFP_KERNEL); if (!provider) --- linux-5.19.0.orig/drivers/interconnect/qcom/sc7180.c +++ linux-5.19.0/drivers/interconnect/qcom/sc7180.c @@ -369,7 +369,7 @@ .num_bcms = ARRAY_SIZE(gem_noc_bcms), }; -static struct qcom_icc_bcm *mc_virt_bcms[] = { +static struct qcom_icc_bcm * const mc_virt_bcms[] = { &bcm_acv, &bcm_mc0, }; --- linux-5.19.0.orig/drivers/iommu/amd/iommu.c +++ linux-5.19.0/drivers/iommu/amd/iommu.c @@ -874,7 +874,8 @@ memset(cmd, 0, sizeof(*cmd)); cmd->data[0] = lower_32_bits(paddr) | CMD_COMPL_WAIT_STORE_MASK; cmd->data[1] = upper_32_bits(paddr); - cmd->data[2] = data; + cmd->data[2] = lower_32_bits(data); + cmd->data[3] = upper_32_bits(data); CMD_SET_TYPE(cmd, CMD_COMPL_WAIT); } --- linux-5.19.0.orig/drivers/iommu/amd/iommu_v2.c +++ linux-5.19.0/drivers/iommu/amd/iommu_v2.c @@ -596,6 +596,7 @@ put_device_state(dev_state); out: + pci_dev_put(pdev); return ret; } @@ -786,6 +787,8 @@ if (dev_state->domain == NULL) goto out_free_states; + /* See iommu_is_default_domain() */ + dev_state->domain->type = IOMMU_DOMAIN_IDENTITY; amd_iommu_domain_direct_map(dev_state->domain); ret = amd_iommu_domain_enable_v2(dev_state->domain, pasids); --- linux-5.19.0.orig/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +++ linux-5.19.0/drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c @@ -2839,6 +2839,26 @@ } } +/* + * HiSilicon PCIe tune and trace device can be used to trace TLP headers on the + * PCIe link and save the data to memory by DMA. The hardware is restricted to + * use identity mapping only. + */ +#define IS_HISI_PTT_DEVICE(pdev) ((pdev)->vendor == PCI_VENDOR_ID_HUAWEI && \ + (pdev)->device == 0xa12e) + +static int arm_smmu_def_domain_type(struct device *dev) +{ + if (dev_is_pci(dev)) { + struct pci_dev *pdev = to_pci_dev(dev); + + if (IS_HISI_PTT_DEVICE(pdev)) + return IOMMU_DOMAIN_IDENTITY; + } + + return 0; +} + static struct iommu_ops arm_smmu_ops = { .capable = arm_smmu_capable, .domain_alloc = arm_smmu_domain_alloc, @@ -2856,6 +2876,7 @@ .sva_unbind = arm_smmu_sva_unbind, .sva_get_pasid = arm_smmu_sva_get_pasid, .page_response = arm_smmu_page_response, + .def_domain_type = arm_smmu_def_domain_type, .pgsize_bitmap = -1UL, /* Restricted during device attach */ .owner = THIS_MODULE, .default_domain_ops = &(const struct iommu_domain_ops) { --- linux-5.19.0.orig/drivers/iommu/arm/arm-smmu/qcom_iommu.c +++ linux-5.19.0/drivers/iommu/arm/arm-smmu/qcom_iommu.c @@ -750,9 +750,12 @@ { struct device_node *child; - for_each_child_of_node(qcom_iommu->dev->of_node, child) - if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec")) + for_each_child_of_node(qcom_iommu->dev->of_node, child) { + if (of_device_is_compatible(child, "qcom,msm-iommu-v1-sec")) { + of_node_put(child); return true; + } + } return false; } --- linux-5.19.0.orig/drivers/iommu/exynos-iommu.c +++ linux-5.19.0/drivers/iommu/exynos-iommu.c @@ -630,7 +630,7 @@ ret = iommu_device_register(&data->iommu, &exynos_iommu_ops, dev); if (ret) - return ret; + goto err_iommu_register; platform_set_drvdata(pdev, data); @@ -657,6 +657,10 @@ pm_runtime_enable(dev); return 0; + +err_iommu_register: + iommu_device_sysfs_remove(&data->iommu); + return ret; } static int __maybe_unused exynos_sysmmu_suspend(struct device *dev) --- linux-5.19.0.orig/drivers/iommu/fsl_pamu.c +++ linux-5.19.0/drivers/iommu/fsl_pamu.c @@ -868,7 +868,7 @@ ret = create_csd(ppaact_phys, mem_size, csd_port_id); if (ret) { dev_err(dev, "could not create coherence subdomain\n"); - return ret; + goto error; } } --- linux-5.19.0.orig/drivers/iommu/intel/dmar.c +++ linux-5.19.0/drivers/iommu/intel/dmar.c @@ -494,7 +494,7 @@ if (drhd->reg_base_addr == rhsa->base_address) { int node = pxm_to_node(rhsa->proximity_domain); - if (!node_online(node)) + if (node != NUMA_NO_NODE && !node_online(node)) node = NUMA_NO_NODE; drhd->iommu->node = node; return 0; @@ -820,6 +820,7 @@ info = dmar_alloc_pci_notify_info(dev, BUS_NOTIFY_ADD_DEVICE); if (!info) { + pci_dev_put(dev); return dmar_dev_scope_status; } else { dmar_pci_bus_add_dev(info); --- linux-5.19.0.orig/drivers/iommu/intel/iommu.c +++ linux-5.19.0/drivers/iommu/intel/iommu.c @@ -37,6 +37,12 @@ #define IS_GFX_DEVICE(pdev) ((pdev->class >> 16) == PCI_BASE_CLASS_DISPLAY) #define IS_USB_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_SERIAL_USB) #define IS_ISA_DEVICE(pdev) ((pdev->class >> 8) == PCI_CLASS_BRIDGE_ISA) +#define IS_INTEL_IPU(pdev) ((pdev)->vendor == PCI_VENDOR_ID_INTEL && \ + ((pdev)->device == 0x9a19 || \ + (pdev)->device == 0x9a39 || \ + (pdev)->device == 0x4e19 || \ + (pdev)->device == 0x465d || \ + (pdev)->device == 0x1919)) #define IS_AZALIA(pdev) ((pdev)->vendor == 0x8086 && (pdev)->device == 0x3a3e) #define IOAPIC_RANGE_START (0xfee00000) @@ -168,38 +174,6 @@ return re->hi & VTD_PAGE_MASK; } -static inline void context_clear_pasid_enable(struct context_entry *context) -{ - context->lo &= ~(1ULL << 11); -} - -static inline bool context_pasid_enabled(struct context_entry *context) -{ - return !!(context->lo & (1ULL << 11)); -} - -static inline void context_set_copied(struct context_entry *context) -{ - context->hi |= (1ull << 3); -} - -static inline bool context_copied(struct context_entry *context) -{ - return !!(context->hi & (1ULL << 3)); -} - -static inline bool __context_present(struct context_entry *context) -{ - return (context->lo & 1); -} - -bool context_present(struct context_entry *context) -{ - return context_pasid_enabled(context) ? - __context_present(context) : - __context_present(context) && !context_copied(context); -} - static inline void context_set_present(struct context_entry *context) { context->lo |= 1; @@ -247,6 +221,26 @@ context->hi = 0; } +static inline bool context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) +{ + if (!iommu->copied_tables) + return false; + + return test_bit(((long)bus << 8) | devfn, iommu->copied_tables); +} + +static inline void +set_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) +{ + set_bit(((long)bus << 8) | devfn, iommu->copied_tables); +} + +static inline void +clear_context_copied(struct intel_iommu *iommu, u8 bus, u8 devfn) +{ + clear_bit(((long)bus << 8) | devfn, iommu->copied_tables); +} + /* * This domain is a statically identity mapping domain. * 1. This domain creats a static 1:1 mapping to all usable memory. @@ -307,12 +301,14 @@ EXPORT_SYMBOL_GPL(intel_iommu_enabled); static int dmar_map_gfx = 1; +static int dmar_map_ipu = 1; static int intel_iommu_superpage = 1; static int iommu_identity_mapping; static int iommu_skip_te_disable; #define IDENTMAP_GFX 2 #define IDENTMAP_AZALIA 4 +#define IDENTMAP_IPU 8 int intel_iommu_gfx_mapped; EXPORT_SYMBOL_GPL(intel_iommu_gfx_mapped); @@ -422,14 +418,36 @@ return !(addr_width < BITS_PER_LONG && pfn >> addr_width); } +/* + * Calculate the Supported Adjusted Guest Address Widths of an IOMMU. + * Refer to 11.4.2 of the VT-d spec for the encoding of each bit of + * the returned SAGAW. + */ +static unsigned long __iommu_calculate_sagaw(struct intel_iommu *iommu) +{ + unsigned long fl_sagaw, sl_sagaw; + + fl_sagaw = BIT(2) | (cap_5lp_support(iommu->cap) ? BIT(3) : 0); + sl_sagaw = cap_sagaw(iommu->cap); + + /* Second level only. */ + if (!sm_supported(iommu) || !ecap_flts(iommu->ecap)) + return sl_sagaw; + + /* First level only. */ + if (!ecap_slts(iommu->ecap)) + return fl_sagaw; + + return fl_sagaw & sl_sagaw; +} + static int __iommu_calculate_agaw(struct intel_iommu *iommu, int max_gaw) { unsigned long sagaw; int agaw; - sagaw = cap_sagaw(iommu->cap); - for (agaw = width_to_agaw(max_gaw); - agaw >= 0; agaw--) { + sagaw = __iommu_calculate_sagaw(iommu); + for (agaw = width_to_agaw(max_gaw); agaw >= 0; agaw--) { if (test_bit(agaw, &sagaw)) break; } @@ -622,6 +640,13 @@ struct context_entry *context; u64 *entry; + /* + * Except that the caller requested to allocate a new entry, + * returning a copied context entry makes no sense. + */ + if (!alloc && context_copied(iommu, bus, devfn)) + return NULL; + entry = &root->lo; if (sm_supported(iommu)) { if (devfn >= 0x80) { @@ -989,11 +1014,9 @@ domain_flush_cache(domain, tmp_page, VTD_PAGE_SIZE); pteval = ((uint64_t)virt_to_dma_pfn(tmp_page) << VTD_PAGE_SHIFT) | DMA_PTE_READ | DMA_PTE_WRITE; - if (domain_use_first_level(domain)) { - pteval |= DMA_FL_PTE_XD | DMA_FL_PTE_US; - if (iommu_is_dma_domain(&domain->domain)) - pteval |= DMA_FL_PTE_ACCESS; - } + if (domain_use_first_level(domain)) + pteval |= DMA_FL_PTE_XD | DMA_FL_PTE_US | DMA_FL_PTE_ACCESS; + if (cmpxchg64(&pte->val, 0ULL, pteval)) /* Someone else set it while we were thinking; use theirs. */ free_pgtable_page(tmp_page); @@ -1748,6 +1771,11 @@ iommu->domain_ids = NULL; } + if (iommu->copied_tables) { + bitmap_free(iommu->copied_tables); + iommu->copied_tables = NULL; + } + g_iommus[iommu->seq_id] = NULL; /* free context mapping */ @@ -1956,7 +1984,7 @@ goto out_unlock; ret = 0; - if (context_present(context)) + if (context_present(context) && !context_copied(iommu, bus, devfn)) goto out_unlock; /* @@ -1968,7 +1996,7 @@ * in-flight DMA will exist, and we don't need to worry anymore * hereafter. */ - if (context_copied(context)) { + if (context_copied(iommu, bus, devfn)) { u16 did_old = context_domain_id(context); if (did_old < cap_ndoms(iommu->cap)) { @@ -1979,6 +2007,8 @@ iommu->flush.flush_iotlb(iommu, did_old, 0, 0, DMA_TLB_DSI_FLUSH); } + + clear_context_copied(iommu, bus, devfn); } context_clear_entry(context); @@ -2451,6 +2481,7 @@ if (md_domain_init(si_domain, DEFAULT_DOMAIN_ADDRESS_WIDTH)) { domain_exit(si_domain); + si_domain = NULL; return -EFAULT; } @@ -2659,6 +2690,9 @@ if ((iommu_identity_mapping & IDENTMAP_GFX) && IS_GFX_DEVICE(pdev)) return IOMMU_DOMAIN_IDENTITY; + + if ((iommu_identity_mapping & IDENTMAP_IPU) && IS_INTEL_IPU(pdev)) + return IOMMU_DOMAIN_IDENTITY; } return 0; @@ -2761,32 +2795,14 @@ /* Now copy the context entry */ memcpy(&ce, old_ce + idx, sizeof(ce)); - if (!__context_present(&ce)) + if (!context_present(&ce)) continue; did = context_domain_id(&ce); if (did >= 0 && did < cap_ndoms(iommu->cap)) set_bit(did, iommu->domain_ids); - /* - * We need a marker for copied context entries. This - * marker needs to work for the old format as well as - * for extended context entries. - * - * Bit 67 of the context entry is used. In the old - * format this bit is available to software, in the - * extended format it is the PGE bit, but PGE is ignored - * by HW if PASIDs are disabled (and thus still - * available). - * - * So disable PASIDs first and then mark the entry - * copied. This means that we don't copy PASID - * translations from the old kernel, but this is fine as - * faults there are not fatal. - */ - context_clear_pasid_enable(&ce); - context_set_copied(&ce); - + set_context_copied(iommu, bus, devfn); new_ce[idx] = ce; } @@ -2813,8 +2829,8 @@ bool new_ext, ext; rtaddr_reg = dmar_readq(iommu->reg + DMAR_RTADDR_REG); - ext = !!(rtaddr_reg & DMA_RTADDR_RTT); - new_ext = !!ecap_ecs(iommu->ecap); + ext = !!(rtaddr_reg & DMA_RTADDR_SMT); + new_ext = !!sm_supported(iommu); /* * The RTT bit can only be changed when translation is disabled, @@ -2825,6 +2841,10 @@ if (new_ext != ext) return -EINVAL; + iommu->copied_tables = bitmap_zalloc(BIT_ULL(16), GFP_KERNEL); + if (!iommu->copied_tables) + return -ENOMEM; + old_rt_phys = rtaddr_reg & VTD_PAGE_MASK; if (!old_rt_phys) return -EINVAL; @@ -3095,6 +3115,9 @@ if (!dmar_map_gfx) iommu_identity_mapping |= IDENTMAP_GFX; + if (!dmar_map_ipu) + iommu_identity_mapping |= IDENTMAP_IPU; + check_tylersburg_isoch(); ret = si_domain_init(hw_pass_through); @@ -3146,6 +3169,10 @@ disable_dmar_iommu(iommu); free_dmar_iommu(iommu); } + if (si_domain) { + domain_exit(si_domain); + si_domain = NULL; + } kfree(g_iommus); @@ -3952,8 +3979,10 @@ struct pci_dev *pdev = NULL; for_each_pci_dev(pdev) - if (pdev->external_facing) + if (pdev->external_facing) { + pci_dev_put(pdev); return true; + } return false; } @@ -4923,6 +4952,18 @@ dmar_map_gfx = 0; } +static void quirk_iommu_ipu(struct pci_dev *dev) +{ + if (!IS_INTEL_IPU(dev)) + return; + + if (risky_device(dev)) + return; + + pci_info(dev, "Passthrough IOMMU for integrated Intel IPU\n"); + dmar_map_ipu = 0; +} + /* G4x/GM45 integrated gfx dmar support is totally busted. */ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2a40, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x2e00, quirk_iommu_igfx); @@ -4958,6 +4999,9 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163A, quirk_iommu_igfx); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x163D, quirk_iommu_igfx); +/* disable IPU dmar support */ +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, quirk_iommu_ipu); + static void quirk_iommu_rwbf(struct pci_dev *dev) { if (risky_device(dev)) --- linux-5.19.0.orig/drivers/iommu/intel/pasid.c +++ linux-5.19.0/drivers/iommu/intel/pasid.c @@ -651,7 +651,7 @@ * Since it is a second level only translation setup, we should * set SRE bit as well (addresses are expected to be GPAs). */ - if (pasid != PASID_RID2PASID) + if (pasid != PASID_RID2PASID && ecap_srs(iommu->ecap)) pasid_set_sre(pte); pasid_set_present(pte); pasid_flush_caches(iommu, pte, pasid, did); @@ -690,7 +690,8 @@ * We should set SRE bit as well since the addresses are expected * to be GPAs. */ - pasid_set_sre(pte); + if (ecap_srs(iommu->ecap)) + pasid_set_sre(pte); pasid_set_present(pte); pasid_flush_caches(iommu, pte, pasid, did); --- linux-5.19.0.orig/drivers/iommu/io-pgtable-arm-v7s.c +++ linux-5.19.0/drivers/iommu/io-pgtable-arm-v7s.c @@ -182,14 +182,8 @@ (cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_EXT); } -static arm_v7s_iopte paddr_to_iopte(phys_addr_t paddr, int lvl, - struct io_pgtable_cfg *cfg) +static arm_v7s_iopte to_mtk_iopte(phys_addr_t paddr, arm_v7s_iopte pte) { - arm_v7s_iopte pte = paddr & ARM_V7S_LVL_MASK(lvl); - - if (!arm_v7s_is_mtk_enabled(cfg)) - return pte; - if (paddr & BIT_ULL(32)) pte |= ARM_V7S_ATTR_MTK_PA_BIT32; if (paddr & BIT_ULL(33)) @@ -199,6 +193,17 @@ return pte; } +static arm_v7s_iopte paddr_to_iopte(phys_addr_t paddr, int lvl, + struct io_pgtable_cfg *cfg) +{ + arm_v7s_iopte pte = paddr & ARM_V7S_LVL_MASK(lvl); + + if (arm_v7s_is_mtk_enabled(cfg)) + return to_mtk_iopte(paddr, pte); + + return pte; +} + static phys_addr_t iopte_to_paddr(arm_v7s_iopte pte, int lvl, struct io_pgtable_cfg *cfg) { @@ -240,10 +245,17 @@ dma_addr_t dma; size_t size = ARM_V7S_TABLE_SIZE(lvl, cfg); void *table = NULL; + gfp_t gfp_l1; + + /* + * ARM_MTK_TTBR_EXT extend the translation table base support larger + * memory address. + */ + gfp_l1 = cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT ? + GFP_KERNEL : ARM_V7S_TABLE_GFP_DMA; if (lvl == 1) - table = (void *)__get_free_pages( - __GFP_ZERO | ARM_V7S_TABLE_GFP_DMA, get_order(size)); + table = (void *)__get_free_pages(gfp_l1 | __GFP_ZERO, get_order(size)); else if (lvl == 2) table = kmem_cache_zalloc(data->l2_tables, gfp); @@ -251,7 +263,8 @@ return NULL; phys = virt_to_phys(table); - if (phys != (arm_v7s_iopte)phys) { + if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT ? + phys >= (1ULL << cfg->oas) : phys != (arm_v7s_iopte)phys) { /* Doesn't fit in PTE */ dev_err(dev, "Page table does not fit in PTE: %pa", &phys); goto out_free; @@ -457,9 +470,14 @@ arm_v7s_iopte curr, struct io_pgtable_cfg *cfg) { + phys_addr_t phys = virt_to_phys(table); arm_v7s_iopte old, new; - new = virt_to_phys(table) | ARM_V7S_PTE_TYPE_TABLE; + new = phys | ARM_V7S_PTE_TYPE_TABLE; + + if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT) + new = to_mtk_iopte(phys, new); + if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_NS) new |= ARM_V7S_ATTR_NS_TABLE; @@ -779,6 +797,8 @@ void *cookie) { struct arm_v7s_io_pgtable *data; + slab_flags_t slab_flag; + phys_addr_t paddr; if (cfg->ias > (arm_v7s_is_mtk_enabled(cfg) ? 34 : ARM_V7S_ADDR_BITS)) return NULL; @@ -788,7 +808,8 @@ if (cfg->quirks & ~(IO_PGTABLE_QUIRK_ARM_NS | IO_PGTABLE_QUIRK_NO_PERMS | - IO_PGTABLE_QUIRK_ARM_MTK_EXT)) + IO_PGTABLE_QUIRK_ARM_MTK_EXT | + IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT)) return NULL; /* If ARM_MTK_4GB is enabled, the NO_PERMS is also expected. */ @@ -796,15 +817,27 @@ !(cfg->quirks & IO_PGTABLE_QUIRK_NO_PERMS)) return NULL; + if ((cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT) && + !arm_v7s_is_mtk_enabled(cfg)) + return NULL; + data = kmalloc(sizeof(*data), GFP_KERNEL); if (!data) return NULL; spin_lock_init(&data->split_lock); + + /* + * ARM_MTK_TTBR_EXT extend the translation table base support larger + * memory address. + */ + slab_flag = cfg->quirks & IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT ? + 0 : ARM_V7S_TABLE_SLAB_FLAGS; + data->l2_tables = kmem_cache_create("io-pgtable_armv7s_l2", ARM_V7S_TABLE_SIZE(2, cfg), ARM_V7S_TABLE_SIZE(2, cfg), - ARM_V7S_TABLE_SLAB_FLAGS, NULL); + slab_flag, NULL); if (!data->l2_tables) goto out_free_data; @@ -850,12 +883,16 @@ wmb(); /* TTBR */ - cfg->arm_v7s_cfg.ttbr = virt_to_phys(data->pgd) | ARM_V7S_TTBR_S | - (cfg->coherent_walk ? (ARM_V7S_TTBR_NOS | - ARM_V7S_TTBR_IRGN_ATTR(ARM_V7S_RGN_WBWA) | - ARM_V7S_TTBR_ORGN_ATTR(ARM_V7S_RGN_WBWA)) : - (ARM_V7S_TTBR_IRGN_ATTR(ARM_V7S_RGN_NC) | - ARM_V7S_TTBR_ORGN_ATTR(ARM_V7S_RGN_NC))); + paddr = virt_to_phys(data->pgd); + if (arm_v7s_is_mtk_enabled(cfg)) + cfg->arm_v7s_cfg.ttbr = paddr | upper_32_bits(paddr); + else + cfg->arm_v7s_cfg.ttbr = paddr | ARM_V7S_TTBR_S | + (cfg->coherent_walk ? (ARM_V7S_TTBR_NOS | + ARM_V7S_TTBR_IRGN_ATTR(ARM_V7S_RGN_WBWA) | + ARM_V7S_TTBR_ORGN_ATTR(ARM_V7S_RGN_WBWA)) : + (ARM_V7S_TTBR_IRGN_ATTR(ARM_V7S_RGN_NC) | + ARM_V7S_TTBR_ORGN_ATTR(ARM_V7S_RGN_NC))); return &data->iop; out_free_data: --- linux-5.19.0.orig/drivers/iommu/iommu.c +++ linux-5.19.0/drivers/iommu/iommu.c @@ -3089,6 +3089,24 @@ return ret; } +static bool iommu_is_default_domain(struct iommu_group *group) +{ + if (group->domain == group->default_domain) + return true; + + /* + * If the default domain was set to identity and it is still an identity + * domain then we consider this a pass. This happens because of + * amd_iommu_init_device() replacing the default idenytity domain with an + * identity domain that has a different configuration for AMDGPU. + */ + if (group->default_domain && + group->default_domain->type == IOMMU_DOMAIN_IDENTITY && + group->domain && group->domain->type == IOMMU_DOMAIN_IDENTITY) + return true; + return false; +} + /** * iommu_device_use_default_domain() - Device driver wants to handle device * DMA through the kernel DMA API. @@ -3107,8 +3125,7 @@ mutex_lock(&group->mutex); if (group->owner_cnt) { - if (group->domain != group->default_domain || - group->owner) { + if (group->owner || !iommu_is_default_domain(group)) { ret = -EBUSY; goto unlock_out; } --- linux-5.19.0.orig/drivers/iommu/mtk_iommu.c +++ linux-5.19.0/drivers/iommu/mtk_iommu.c @@ -1045,20 +1045,24 @@ struct mtk_iommu_data *data) { struct device_node *larbnode, *smicomm_node, *smi_subcomm_node; - struct platform_device *plarbdev; + struct platform_device *plarbdev, *pcommdev; struct device_link *link; int i, larb_nr, ret; larb_nr = of_count_phandle_with_args(dev->of_node, "mediatek,larbs", NULL); if (larb_nr < 0) return larb_nr; + if (larb_nr == 0 || larb_nr > MTK_LARB_NR_MAX) + return -EINVAL; for (i = 0; i < larb_nr; i++) { u32 id; larbnode = of_parse_phandle(dev->of_node, "mediatek,larbs", i); - if (!larbnode) - return -EINVAL; + if (!larbnode) { + ret = -EINVAL; + goto err_larbdev_put; + } if (!of_device_is_available(larbnode)) { of_node_put(larbnode); @@ -1068,20 +1072,32 @@ ret = of_property_read_u32(larbnode, "mediatek,larb-id", &id); if (ret)/* The id is consecutive if there is no this property */ id = i; + if (id >= MTK_LARB_NR_MAX) { + of_node_put(larbnode); + ret = -EINVAL; + goto err_larbdev_put; + } plarbdev = of_find_device_by_node(larbnode); + of_node_put(larbnode); if (!plarbdev) { - of_node_put(larbnode); - return -ENODEV; + ret = -ENODEV; + goto err_larbdev_put; } - if (!plarbdev->dev.driver) { - of_node_put(larbnode); - return -EPROBE_DEFER; + if (data->larb_imu[id].dev) { + platform_device_put(plarbdev); + ret = -EEXIST; + goto err_larbdev_put; } data->larb_imu[id].dev = &plarbdev->dev; - component_match_add_release(dev, match, component_release_of, - component_compare_of, larbnode); + if (!plarbdev->dev.driver) { + ret = -EPROBE_DEFER; + goto err_larbdev_put; + } + + component_match_add(dev, match, component_compare_dev, &plarbdev->dev); + platform_device_put(plarbdev); } /* Get smi-(sub)-common dev from the last larb. */ @@ -1099,17 +1115,29 @@ else smicomm_node = smi_subcomm_node; - plarbdev = of_find_device_by_node(smicomm_node); + pcommdev = of_find_device_by_node(smicomm_node); of_node_put(smicomm_node); - data->smicomm_dev = &plarbdev->dev; + if (!pcommdev) + return -ENODEV; + data->smicomm_dev = &pcommdev->dev; link = device_link_add(data->smicomm_dev, dev, DL_FLAG_STATELESS | DL_FLAG_PM_RUNTIME); + platform_device_put(pcommdev); if (!link) { dev_err(dev, "Unable to link %s.\n", dev_name(data->smicomm_dev)); return -EINVAL; } return 0; + +err_larbdev_put: + /* id may be not linear mapping, loop whole the array */ + for (i = MTK_LARB_NR_MAX - 1; i >= 0; i++) { + if (!data->larb_imu[i].dev) + continue; + put_device(data->larb_imu[i].dev); + } + return ret; } static int mtk_iommu_probe(struct platform_device *pdev) @@ -1164,6 +1192,8 @@ banks_num = data->plat_data->banks_num; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return -EINVAL; if (resource_size(res) < banks_num * MTK_IOMMU_BANK_SZ) { dev_err(dev, "banknr %d. res %pR is not enough.\n", banks_num, res); return -EINVAL; --- linux-5.19.0.orig/drivers/iommu/omap-iommu-debug.c +++ linux-5.19.0/drivers/iommu/omap-iommu-debug.c @@ -32,12 +32,12 @@ ssize_t bytes; \ const char *str = "%20s: %08x\n"; \ const int maxcol = 32; \ - bytes = snprintf(p, maxcol, str, __stringify(name), \ + if (len < maxcol) \ + goto out; \ + bytes = scnprintf(p, maxcol, str, __stringify(name), \ iommu_read_reg(obj, MMU_##name)); \ p += bytes; \ len -= bytes; \ - if (len < maxcol) \ - goto out; \ } while (0) static ssize_t --- linux-5.19.0.orig/drivers/iommu/rockchip-iommu.c +++ linux-5.19.0/drivers/iommu/rockchip-iommu.c @@ -280,19 +280,17 @@ * 11:9 - Page address bit 34:32 * 8:4 - Page address bit 39:35 * 3 - Security - * 2 - Readable - * 1 - Writable + * 2 - Writable + * 1 - Readable * 0 - 1 if Page @ Page address is valid */ -#define RK_PTE_PAGE_READABLE_V2 BIT(2) -#define RK_PTE_PAGE_WRITABLE_V2 BIT(1) static u32 rk_mk_pte_v2(phys_addr_t page, int prot) { u32 flags = 0; - flags |= (prot & IOMMU_READ) ? RK_PTE_PAGE_READABLE_V2 : 0; - flags |= (prot & IOMMU_WRITE) ? RK_PTE_PAGE_WRITABLE_V2 : 0; + flags |= (prot & IOMMU_READ) ? RK_PTE_PAGE_READABLE : 0; + flags |= (prot & IOMMU_WRITE) ? RK_PTE_PAGE_WRITABLE : 0; return rk_mk_dte_v2(page) | flags; } --- linux-5.19.0.orig/drivers/iommu/s390-iommu.c +++ linux-5.19.0/drivers/iommu/s390-iommu.c @@ -79,10 +79,36 @@ { struct s390_domain *s390_domain = to_s390_domain(domain); + WARN_ON(!list_empty(&s390_domain->devices)); dma_cleanup_tables(s390_domain->dma_table); kfree(s390_domain); } +static void __s390_iommu_detach_device(struct zpci_dev *zdev) +{ + struct s390_domain *s390_domain = zdev->s390_domain; + struct s390_domain_device *domain_device, *tmp; + unsigned long flags; + + if (!s390_domain) + return; + + spin_lock_irqsave(&s390_domain->list_lock, flags); + list_for_each_entry_safe(domain_device, tmp, &s390_domain->devices, + list) { + if (domain_device->zdev == zdev) { + list_del(&domain_device->list); + kfree(domain_device); + break; + } + } + spin_unlock_irqrestore(&s390_domain->list_lock, flags); + + zpci_unregister_ioat(zdev, 0); + zdev->s390_domain = NULL; + zdev->dma_table = NULL; +} + static int s390_iommu_attach_device(struct iommu_domain *domain, struct device *dev) { @@ -90,7 +116,7 @@ struct zpci_dev *zdev = to_zpci_dev(dev); struct s390_domain_device *domain_device; unsigned long flags; - int cc, rc; + int cc, rc = 0; if (!zdev) return -ENODEV; @@ -99,24 +125,18 @@ if (!domain_device) return -ENOMEM; - if (zdev->dma_table && !zdev->s390_domain) { - cc = zpci_dma_exit_device(zdev); - if (cc) { - rc = -EIO; - goto out_free; - } - } - if (zdev->s390_domain) - zpci_unregister_ioat(zdev, 0); + __s390_iommu_detach_device(zdev); + else if (zdev->dma_table) + zpci_dma_exit_device(zdev); - zdev->dma_table = s390_domain->dma_table; cc = zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma, - virt_to_phys(zdev->dma_table)); + virt_to_phys(s390_domain->dma_table)); if (cc) { rc = -EIO; - goto out_restore; + goto out_free; } + zdev->dma_table = s390_domain->dma_table; spin_lock_irqsave(&s390_domain->list_lock, flags); /* First device defines the DMA range limits */ @@ -127,9 +147,9 @@ /* Allow only devices with identical DMA range limits */ } else if (domain->geometry.aperture_start != zdev->start_dma || domain->geometry.aperture_end != zdev->end_dma) { - rc = -EINVAL; spin_unlock_irqrestore(&s390_domain->list_lock, flags); - goto out_restore; + rc = -EINVAL; + goto out_unregister; } domain_device->zdev = zdev; zdev->s390_domain = s390_domain; @@ -138,14 +158,9 @@ return 0; -out_restore: - if (!zdev->s390_domain) { - zpci_dma_init_device(zdev); - } else { - zdev->dma_table = zdev->s390_domain->dma_table; - zpci_register_ioat(zdev, 0, zdev->start_dma, zdev->end_dma, - virt_to_phys(zdev->dma_table)); - } +out_unregister: + zpci_unregister_ioat(zdev, 0); + zdev->dma_table = NULL; out_free: kfree(domain_device); @@ -155,32 +170,12 @@ static void s390_iommu_detach_device(struct iommu_domain *domain, struct device *dev) { - struct s390_domain *s390_domain = to_s390_domain(domain); struct zpci_dev *zdev = to_zpci_dev(dev); - struct s390_domain_device *domain_device, *tmp; - unsigned long flags; - int found = 0; - if (!zdev) - return; - - spin_lock_irqsave(&s390_domain->list_lock, flags); - list_for_each_entry_safe(domain_device, tmp, &s390_domain->devices, - list) { - if (domain_device->zdev == zdev) { - list_del(&domain_device->list); - kfree(domain_device); - found = 1; - break; - } - } - spin_unlock_irqrestore(&s390_domain->list_lock, flags); + WARN_ON(zdev->s390_domain != to_s390_domain(domain)); - if (found && (zdev->s390_domain == s390_domain)) { - zdev->s390_domain = NULL; - zpci_unregister_ioat(zdev, 0); - zpci_dma_init_device(zdev); - } + __s390_iommu_detach_device(zdev); + zpci_dma_init_device(zdev); } static struct iommu_device *s390_iommu_probe_device(struct device *dev) @@ -193,24 +188,13 @@ static void s390_iommu_release_device(struct device *dev) { struct zpci_dev *zdev = to_zpci_dev(dev); - struct iommu_domain *domain; /* - * This is a workaround for a scenario where the IOMMU API common code - * "forgets" to call the detach_dev callback: After binding a device - * to vfio-pci and completing the VFIO_SET_IOMMU ioctl (which triggers - * the attach_dev), removing the device via - * "echo 1 > /sys/bus/pci/devices/.../remove" won't trigger detach_dev, - * only release_device will be called via the BUS_NOTIFY_REMOVED_DEVICE - * notifier. - * - * So let's call detach_dev from here if it hasn't been called before. + * release_device is expected to detach any domain currently attached + * to the device, but keep it attached to other devices in the group. */ - if (zdev && zdev->s390_domain) { - domain = iommu_get_domain_for_dev(dev); - if (domain) - s390_iommu_detach_device(domain, dev); - } + if (zdev) + __s390_iommu_detach_device(zdev); } static int s390_iommu_update_trans(struct s390_domain *s390_domain, --- linux-5.19.0.orig/drivers/iommu/sun50i-iommu.c +++ linux-5.19.0/drivers/iommu/sun50i-iommu.c @@ -27,6 +27,7 @@ #include #define IOMMU_RESET_REG 0x010 +#define IOMMU_RESET_RELEASE_ALL 0xffffffff #define IOMMU_ENABLE_REG 0x020 #define IOMMU_ENABLE_ENABLE BIT(0) @@ -92,6 +93,8 @@ #define NUM_PT_ENTRIES 256 #define PT_SIZE (NUM_PT_ENTRIES * PT_ENTRY_SIZE) +#define SPAGE_SIZE 4096 + struct sun50i_iommu { struct iommu_device iommu; @@ -270,7 +273,7 @@ enum sun50i_iommu_aci aci; u32 flags = 0; - if (prot & (IOMMU_READ | IOMMU_WRITE)) + if ((prot & (IOMMU_READ | IOMMU_WRITE)) == (IOMMU_READ | IOMMU_WRITE)) aci = SUN50I_IOMMU_ACI_RD_WR; else if (prot & IOMMU_READ) aci = SUN50I_IOMMU_ACI_RD; @@ -294,6 +297,62 @@ dma_sync_single_for_device(iommu->dev, dma, size, DMA_TO_DEVICE); } +static void sun50i_iommu_zap_iova(struct sun50i_iommu *iommu, + unsigned long iova) +{ + u32 reg; + int ret; + + iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_REG, iova); + iommu_write(iommu, IOMMU_TLB_IVLD_ADDR_MASK_REG, GENMASK(31, 12)); + iommu_write(iommu, IOMMU_TLB_IVLD_ENABLE_REG, + IOMMU_TLB_IVLD_ENABLE_ENABLE); + + ret = readl_poll_timeout_atomic(iommu->base + IOMMU_TLB_IVLD_ENABLE_REG, + reg, !reg, 1, 2000); + if (ret) + dev_warn(iommu->dev, "TLB invalidation timed out!\n"); +} + +static void sun50i_iommu_zap_ptw_cache(struct sun50i_iommu *iommu, + unsigned long iova) +{ + u32 reg; + int ret; + + iommu_write(iommu, IOMMU_PC_IVLD_ADDR_REG, iova); + iommu_write(iommu, IOMMU_PC_IVLD_ENABLE_REG, + IOMMU_PC_IVLD_ENABLE_ENABLE); + + ret = readl_poll_timeout_atomic(iommu->base + IOMMU_PC_IVLD_ENABLE_REG, + reg, !reg, 1, 2000); + if (ret) + dev_warn(iommu->dev, "PTW cache invalidation timed out!\n"); +} + +static void sun50i_iommu_zap_range(struct sun50i_iommu *iommu, + unsigned long iova, size_t size) +{ + assert_spin_locked(&iommu->iommu_lock); + + iommu_write(iommu, IOMMU_AUTO_GATING_REG, 0); + + sun50i_iommu_zap_iova(iommu, iova); + sun50i_iommu_zap_iova(iommu, iova + SPAGE_SIZE); + if (size > SPAGE_SIZE) { + sun50i_iommu_zap_iova(iommu, iova + size); + sun50i_iommu_zap_iova(iommu, iova + size + SPAGE_SIZE); + } + sun50i_iommu_zap_ptw_cache(iommu, iova); + sun50i_iommu_zap_ptw_cache(iommu, iova + SZ_1M); + if (size > SZ_1M) { + sun50i_iommu_zap_ptw_cache(iommu, iova + size); + sun50i_iommu_zap_ptw_cache(iommu, iova + size + SZ_1M); + } + + iommu_write(iommu, IOMMU_AUTO_GATING_REG, IOMMU_AUTO_GATING_ENABLE); +} + static int sun50i_iommu_flush_all_tlb(struct sun50i_iommu *iommu) { u32 reg; @@ -343,6 +402,18 @@ spin_unlock_irqrestore(&iommu->iommu_lock, flags); } +static void sun50i_iommu_iotlb_sync_map(struct iommu_domain *domain, + unsigned long iova, size_t size) +{ + struct sun50i_iommu_domain *sun50i_domain = to_sun50i_domain(domain); + struct sun50i_iommu *iommu = sun50i_domain->iommu; + unsigned long flags; + + spin_lock_irqsave(&iommu->iommu_lock, flags); + sun50i_iommu_zap_range(iommu, iova, size); + spin_unlock_irqrestore(&iommu->iommu_lock, flags); +} + static void sun50i_iommu_iotlb_sync(struct iommu_domain *domain, struct iommu_iotlb_gather *gather) { @@ -511,7 +582,7 @@ sun50i_iommu_free_page_table(iommu, drop_pt); } - sun50i_table_flush(sun50i_domain, page_table, PT_SIZE); + sun50i_table_flush(sun50i_domain, page_table, NUM_PT_ENTRIES); sun50i_table_flush(sun50i_domain, dte_addr, 1); return page_table; @@ -601,7 +672,6 @@ struct sun50i_iommu_domain *sun50i_domain; if (type != IOMMU_DOMAIN_DMA && - type != IOMMU_DOMAIN_IDENTITY && type != IOMMU_DOMAIN_UNMANAGED) return NULL; @@ -769,6 +839,7 @@ .attach_dev = sun50i_iommu_attach_device, .detach_dev = sun50i_iommu_detach_device, .flush_iotlb_all = sun50i_iommu_flush_iotlb_all, + .iotlb_sync_map = sun50i_iommu_iotlb_sync_map, .iotlb_sync = sun50i_iommu_iotlb_sync, .iova_to_phys = sun50i_iommu_iova_to_phys, .map = sun50i_iommu_map, @@ -788,6 +859,8 @@ report_iommu_fault(iommu->domain, iommu->dev, iova, prot); else dev_err(iommu->dev, "Page fault while iommu not attached to any domain?\n"); + + sun50i_iommu_zap_range(iommu, iova, SPAGE_SIZE); } static phys_addr_t sun50i_iommu_handle_pt_irq(struct sun50i_iommu *iommu, @@ -871,8 +944,8 @@ static irqreturn_t sun50i_iommu_irq(int irq, void *dev_id) { + u32 status, l1_status, l2_status, resets; struct sun50i_iommu *iommu = dev_id; - u32 status; spin_lock(&iommu->iommu_lock); @@ -882,6 +955,9 @@ return IRQ_NONE; } + l1_status = iommu_read(iommu, IOMMU_L1PG_INT_REG); + l2_status = iommu_read(iommu, IOMMU_L2PG_INT_REG); + if (status & IOMMU_INT_INVALID_L2PG) sun50i_iommu_handle_pt_irq(iommu, IOMMU_INT_ERR_ADDR_L2_REG, @@ -895,8 +971,9 @@ iommu_write(iommu, IOMMU_INT_CLR_REG, status); - iommu_write(iommu, IOMMU_RESET_REG, ~status); - iommu_write(iommu, IOMMU_RESET_REG, status); + resets = (status | l1_status | l2_status) & IOMMU_INT_MASTER_MASK; + iommu_write(iommu, IOMMU_RESET_REG, ~resets); + iommu_write(iommu, IOMMU_RESET_REG, IOMMU_RESET_RELEASE_ALL); spin_unlock(&iommu->iommu_lock); --- linux-5.19.0.orig/drivers/iommu/virtio-iommu.c +++ linux-5.19.0/drivers/iommu/virtio-iommu.c @@ -1006,7 +1006,18 @@ return iommu_fwspec_add_ids(dev, args->args, 1); } +static bool viommu_capable(enum iommu_cap cap) +{ + switch (cap) { + case IOMMU_CAP_CACHE_COHERENCY: + return true; + default: + return false; + } +} + static struct iommu_ops viommu_ops = { + .capable = viommu_capable, .domain_alloc = viommu_domain_alloc, .probe_device = viommu_probe_device, .probe_finalize = viommu_probe_finalize, --- linux-5.19.0.orig/drivers/irqchip/Kconfig +++ linux-5.19.0/drivers/irqchip/Kconfig @@ -177,7 +177,7 @@ config IRQ_MIPS_CPU bool select GENERIC_IRQ_CHIP - select GENERIC_IRQ_IPI if SYS_SUPPORTS_MULTITHREADING + select GENERIC_IRQ_IPI if SMP && SYS_SUPPORTS_MULTITHREADING select IRQ_DOMAIN select GENERIC_IRQ_EFFECTIVE_AFF_MASK @@ -322,7 +322,8 @@ config MIPS_GIC bool - select GENERIC_IRQ_IPI + select GENERIC_IRQ_IPI if SMP + select IRQ_DOMAIN_HIERARCHY select MIPS_CM config INGENIC_IRQ --- linux-5.19.0.orig/drivers/irqchip/irq-gic-pm.c +++ linux-5.19.0/drivers/irqchip/irq-gic-pm.c @@ -102,7 +102,7 @@ pm_runtime_enable(dev); - ret = pm_runtime_get_sync(dev); + ret = pm_runtime_resume_and_get(dev); if (ret < 0) goto rpm_disable; --- linux-5.19.0.orig/drivers/irqchip/irq-mips-gic.c +++ linux-5.19.0/drivers/irqchip/irq-mips-gic.c @@ -52,13 +52,15 @@ static DEFINE_SPINLOCK(gic_lock); static struct irq_domain *gic_irq_domain; -static struct irq_domain *gic_ipi_domain; static int gic_shared_intrs; static unsigned int gic_cpu_pin; static unsigned int timer_cpu_pin; static struct irq_chip gic_level_irq_controller, gic_edge_irq_controller; + +#ifdef CONFIG_GENERIC_IRQ_IPI static DECLARE_BITMAP(ipi_resrv, GIC_MAX_INTRS); static DECLARE_BITMAP(ipi_available, GIC_MAX_INTRS); +#endif /* CONFIG_GENERIC_IRQ_IPI */ static struct gic_all_vpes_chip_data { u32 map; @@ -472,9 +474,11 @@ u32 map; if (hwirq >= GIC_SHARED_HWIRQ_BASE) { +#ifdef CONFIG_GENERIC_IRQ_IPI /* verify that shared irqs don't conflict with an IPI irq */ if (test_bit(GIC_HWIRQ_TO_SHARED(hwirq), ipi_resrv)) return -EBUSY; +#endif /* CONFIG_GENERIC_IRQ_IPI */ err = irq_domain_set_hwirq_and_chip(d, virq, hwirq, &gic_level_irq_controller, @@ -567,6 +571,8 @@ .map = gic_irq_domain_map, }; +#ifdef CONFIG_GENERIC_IRQ_IPI + static int gic_ipi_domain_xlate(struct irq_domain *d, struct device_node *ctrlr, const u32 *intspec, unsigned int intsize, irq_hw_number_t *out_hwirq, @@ -670,6 +676,48 @@ .match = gic_ipi_domain_match, }; +static int gic_register_ipi_domain(struct device_node *node) +{ + struct irq_domain *gic_ipi_domain; + unsigned int v[2], num_ipis; + + gic_ipi_domain = irq_domain_add_hierarchy(gic_irq_domain, + IRQ_DOMAIN_FLAG_IPI_PER_CPU, + GIC_NUM_LOCAL_INTRS + gic_shared_intrs, + node, &gic_ipi_domain_ops, NULL); + if (!gic_ipi_domain) { + pr_err("Failed to add IPI domain"); + return -ENXIO; + } + + irq_domain_update_bus_token(gic_ipi_domain, DOMAIN_BUS_IPI); + + if (node && + !of_property_read_u32_array(node, "mti,reserved-ipi-vectors", v, 2)) { + bitmap_set(ipi_resrv, v[0], v[1]); + } else { + /* + * Reserve 2 interrupts per possible CPU/VP for use as IPIs, + * meeting the requirements of arch/mips SMP. + */ + num_ipis = 2 * num_possible_cpus(); + bitmap_set(ipi_resrv, gic_shared_intrs - num_ipis, num_ipis); + } + + bitmap_copy(ipi_available, ipi_resrv, GIC_MAX_INTRS); + + return 0; +} + +#else /* !CONFIG_GENERIC_IRQ_IPI */ + +static inline int gic_register_ipi_domain(struct device_node *node) +{ + return 0; +} + +#endif /* !CONFIG_GENERIC_IRQ_IPI */ + static int gic_cpu_startup(unsigned int cpu) { /* Enable or disable EIC */ @@ -688,11 +736,12 @@ static int __init gic_of_init(struct device_node *node, struct device_node *parent) { - unsigned int cpu_vec, i, gicconfig, v[2], num_ipis; + unsigned int cpu_vec, i, gicconfig; unsigned long reserved; phys_addr_t gic_base; struct resource res; size_t gic_len; + int ret; /* Find the first available CPU vector. */ i = 0; @@ -734,6 +783,10 @@ } mips_gic_base = ioremap(gic_base, gic_len); + if (!mips_gic_base) { + pr_err("Failed to ioremap gic_base\n"); + return -ENOMEM; + } gicconfig = read_gic_config(); gic_shared_intrs = FIELD_GET(GIC_CONFIG_NUMINTERRUPTS, gicconfig); @@ -780,30 +833,9 @@ return -ENXIO; } - gic_ipi_domain = irq_domain_add_hierarchy(gic_irq_domain, - IRQ_DOMAIN_FLAG_IPI_PER_CPU, - GIC_NUM_LOCAL_INTRS + gic_shared_intrs, - node, &gic_ipi_domain_ops, NULL); - if (!gic_ipi_domain) { - pr_err("Failed to add IPI domain"); - return -ENXIO; - } - - irq_domain_update_bus_token(gic_ipi_domain, DOMAIN_BUS_IPI); - - if (node && - !of_property_read_u32_array(node, "mti,reserved-ipi-vectors", v, 2)) { - bitmap_set(ipi_resrv, v[0], v[1]); - } else { - /* - * Reserve 2 interrupts per possible CPU/VP for use as IPIs, - * meeting the requirements of arch/mips SMP. - */ - num_ipis = 2 * num_possible_cpus(); - bitmap_set(ipi_resrv, gic_shared_intrs - num_ipis, num_ipis); - } - - bitmap_copy(ipi_available, ipi_resrv, GIC_MAX_INTRS); + ret = gic_register_ipi_domain(node); + if (ret) + return ret; board_bind_eic_interrupt = &gic_bind_eic_interrupt; --- linux-5.19.0.orig/drivers/irqchip/irq-tegra.c +++ linux-5.19.0/drivers/irqchip/irq-tegra.c @@ -148,10 +148,10 @@ lic->cop_iep[i] = readl_relaxed(ictlr + ICTLR_COP_IEP_CLASS); /* Disable COP interrupts */ - writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR); + writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR); /* Disable CPU interrupts */ - writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR); + writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR); /* Enable the wakeup sources of ictlr */ writel_relaxed(lic->ictlr_wake_mask[i], ictlr + ICTLR_CPU_IER_SET); @@ -172,12 +172,12 @@ writel_relaxed(lic->cpu_iep[i], ictlr + ICTLR_CPU_IEP_CLASS); - writel_relaxed(~0ul, ictlr + ICTLR_CPU_IER_CLR); + writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_CPU_IER_CLR); writel_relaxed(lic->cpu_ier[i], ictlr + ICTLR_CPU_IER_SET); writel_relaxed(lic->cop_iep[i], ictlr + ICTLR_COP_IEP_CLASS); - writel_relaxed(~0ul, ictlr + ICTLR_COP_IER_CLR); + writel_relaxed(GENMASK(31, 0), ictlr + ICTLR_COP_IER_CLR); writel_relaxed(lic->cop_ier[i], ictlr + ICTLR_COP_IER_SET); } @@ -312,7 +312,7 @@ lic->base[i] = base; /* Disable all interrupts */ - writel_relaxed(~0UL, base + ICTLR_CPU_IER_CLR); + writel_relaxed(GENMASK(31, 0), base + ICTLR_CPU_IER_CLR); /* All interrupts target IRQ */ writel_relaxed(0, base + ICTLR_CPU_IEP_CLASS); --- linux-5.19.0.orig/drivers/irqchip/irq-wpcm450-aic.c +++ linux-5.19.0/drivers/irqchip/irq-wpcm450-aic.c @@ -146,6 +146,7 @@ aic->regs = of_iomap(node, 0); if (!aic->regs) { pr_err("Failed to map WPCM450 AIC registers\n"); + kfree(aic); return -ENOMEM; } --- linux-5.19.0.orig/drivers/isdn/hardware/mISDN/hfcmulti.c +++ linux-5.19.0/drivers/isdn/hardware/mISDN/hfcmulti.c @@ -3217,6 +3217,7 @@ hfcm_l1callback(struct dchannel *dch, u_int cmd) { struct hfc_multi *hc = dch->hw; + struct sk_buff_head free_queue; u_long flags; switch (cmd) { @@ -3245,6 +3246,7 @@ l1_event(dch->l1, HW_POWERUP_IND); break; case HW_DEACT_REQ: + __skb_queue_head_init(&free_queue); /* start deactivation */ spin_lock_irqsave(&hc->lock, flags); if (hc->ctype == HFC_TYPE_E1) { @@ -3264,20 +3266,21 @@ plxsd_checksync(hc, 0); } } - skb_queue_purge(&dch->squeue); + skb_queue_splice_init(&dch->squeue, &free_queue); if (dch->tx_skb) { - dev_kfree_skb(dch->tx_skb); + __skb_queue_tail(&free_queue, dch->tx_skb); dch->tx_skb = NULL; } dch->tx_idx = 0; if (dch->rx_skb) { - dev_kfree_skb(dch->rx_skb); + __skb_queue_tail(&free_queue, dch->rx_skb); dch->rx_skb = NULL; } test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); if (test_and_clear_bit(FLG_BUSY_TIMER, &dch->Flags)) del_timer(&dch->timer); spin_unlock_irqrestore(&hc->lock, flags); + __skb_queue_purge(&free_queue); break; case HW_POWERUP_REQ: spin_lock_irqsave(&hc->lock, flags); @@ -3384,6 +3387,9 @@ case PH_DEACTIVATE_REQ: test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags); if (dch->dev.D.protocol != ISDN_P_TE_S0) { + struct sk_buff_head free_queue; + + __skb_queue_head_init(&free_queue); spin_lock_irqsave(&hc->lock, flags); if (debug & DEBUG_HFCMULTI_MSG) printk(KERN_DEBUG @@ -3405,14 +3411,14 @@ /* deactivate */ dch->state = 1; } - skb_queue_purge(&dch->squeue); + skb_queue_splice_init(&dch->squeue, &free_queue); if (dch->tx_skb) { - dev_kfree_skb(dch->tx_skb); + __skb_queue_tail(&free_queue, dch->tx_skb); dch->tx_skb = NULL; } dch->tx_idx = 0; if (dch->rx_skb) { - dev_kfree_skb(dch->rx_skb); + __skb_queue_tail(&free_queue, dch->rx_skb); dch->rx_skb = NULL; } test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); @@ -3424,6 +3430,7 @@ #endif ret = 0; spin_unlock_irqrestore(&hc->lock, flags); + __skb_queue_purge(&free_queue); } else ret = l1_event(dch->l1, hh->prim); break; --- linux-5.19.0.orig/drivers/isdn/hardware/mISDN/hfcpci.c +++ linux-5.19.0/drivers/isdn/hardware/mISDN/hfcpci.c @@ -1617,16 +1617,19 @@ test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags); spin_lock_irqsave(&hc->lock, flags); if (hc->hw.protocol == ISDN_P_NT_S0) { + struct sk_buff_head free_queue; + + __skb_queue_head_init(&free_queue); /* prepare deactivation */ Write_hfc(hc, HFCPCI_STATES, 0x40); - skb_queue_purge(&dch->squeue); + skb_queue_splice_init(&dch->squeue, &free_queue); if (dch->tx_skb) { - dev_kfree_skb(dch->tx_skb); + __skb_queue_tail(&free_queue, dch->tx_skb); dch->tx_skb = NULL; } dch->tx_idx = 0; if (dch->rx_skb) { - dev_kfree_skb(dch->rx_skb); + __skb_queue_tail(&free_queue, dch->rx_skb); dch->rx_skb = NULL; } test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); @@ -1639,10 +1642,12 @@ hc->hw.mst_m &= ~HFCPCI_MASTER; Write_hfc(hc, HFCPCI_MST_MODE, hc->hw.mst_m); ret = 0; + spin_unlock_irqrestore(&hc->lock, flags); + __skb_queue_purge(&free_queue); } else { ret = l1_event(dch->l1, hh->prim); + spin_unlock_irqrestore(&hc->lock, flags); } - spin_unlock_irqrestore(&hc->lock, flags); break; } if (!ret) --- linux-5.19.0.orig/drivers/isdn/hardware/mISDN/hfcsusb.c +++ linux-5.19.0/drivers/isdn/hardware/mISDN/hfcsusb.c @@ -326,20 +326,24 @@ test_and_clear_bit(FLG_L2_ACTIVATED, &dch->Flags); if (hw->protocol == ISDN_P_NT_S0) { + struct sk_buff_head free_queue; + + __skb_queue_head_init(&free_queue); hfcsusb_ph_command(hw, HFC_L1_DEACTIVATE_NT); spin_lock_irqsave(&hw->lock, flags); - skb_queue_purge(&dch->squeue); + skb_queue_splice_init(&dch->squeue, &free_queue); if (dch->tx_skb) { - dev_kfree_skb(dch->tx_skb); + __skb_queue_tail(&free_queue, dch->tx_skb); dch->tx_skb = NULL; } dch->tx_idx = 0; if (dch->rx_skb) { - dev_kfree_skb(dch->rx_skb); + __skb_queue_tail(&free_queue, dch->rx_skb); dch->rx_skb = NULL; } test_and_clear_bit(FLG_TX_BUSY, &dch->Flags); spin_unlock_irqrestore(&hw->lock, flags); + __skb_queue_purge(&free_queue); #ifdef FIXME if (test_and_clear_bit(FLG_L1_BUSY, &dch->Flags)) dchannel_sched_event(&hc->dch, D_CLEARBUSY); @@ -1330,7 +1334,7 @@ printk("\n"); } - dev_kfree_skb(tx_skb); + dev_consume_skb_irq(tx_skb); tx_skb = NULL; if (fifo->dch && get_next_dframe(fifo->dch)) tx_skb = fifo->dch->tx_skb; --- linux-5.19.0.orig/drivers/isdn/hardware/mISDN/netjet.c +++ linux-5.19.0/drivers/isdn/hardware/mISDN/netjet.c @@ -956,7 +956,7 @@ } if (card->irq > 0) free_irq(card->irq, card); - if (card->isac.dch.dev.dev.class) + if (device_is_registered(&card->isac.dch.dev.dev)) mISDN_unregister_device(&card->isac.dch.dev); for (i = 0; i < 2; i++) { --- linux-5.19.0.orig/drivers/isdn/mISDN/core.c +++ linux-5.19.0/drivers/isdn/mISDN/core.c @@ -222,7 +222,7 @@ err = get_free_devid(); if (err < 0) - goto error1; + return err; dev->id = err; device_initialize(&dev->dev); @@ -233,11 +233,12 @@ if (debug & DEBUG_CORE) printk(KERN_DEBUG "mISDN_register %s %d\n", dev_name(&dev->dev), dev->id); + dev->dev.class = &mISDN_class; + err = create_stack(dev); if (err) goto error1; - dev->dev.class = &mISDN_class; dev->dev.platform_data = dev; dev->dev.parent = parent; dev_set_drvdata(&dev->dev, dev); @@ -249,8 +250,8 @@ error3: delete_stack(dev); - return err; error1: + put_device(&dev->dev); return err; } --- linux-5.19.0.orig/drivers/isdn/mISDN/dsp_pipeline.c +++ linux-5.19.0/drivers/isdn/mISDN/dsp_pipeline.c @@ -77,6 +77,7 @@ if (!entry) return -ENOMEM; + INIT_LIST_HEAD(&entry->list); entry->elem = elem; entry->dev.class = elements_class; @@ -107,7 +108,7 @@ device_unregister(&entry->dev); return ret; err1: - kfree(entry); + put_device(&entry->dev); return ret; } EXPORT_SYMBOL(mISDN_dsp_element_register); --- linux-5.19.0.orig/drivers/isdn/mISDN/l1oip.h +++ linux-5.19.0/drivers/isdn/mISDN/l1oip.h @@ -59,6 +59,7 @@ int bundle; /* bundle channels in one frm */ int codec; /* codec to use for transmis. */ int limit; /* limit number of bchannels */ + bool shutdown; /* if card is released */ /* timer */ struct timer_list keep_tl; --- linux-5.19.0.orig/drivers/isdn/mISDN/l1oip_core.c +++ linux-5.19.0/drivers/isdn/mISDN/l1oip_core.c @@ -275,7 +275,7 @@ p = frame; /* restart timer */ - if (time_before(hc->keep_tl.expires, jiffies + 5 * HZ)) + if (time_before(hc->keep_tl.expires, jiffies + 5 * HZ) && !hc->shutdown) mod_timer(&hc->keep_tl, jiffies + L1OIP_KEEPALIVE * HZ); else hc->keep_tl.expires = jiffies + L1OIP_KEEPALIVE * HZ; @@ -601,7 +601,9 @@ goto multiframe; /* restart timer */ - if (time_before(hc->timeout_tl.expires, jiffies + 5 * HZ) || !hc->timeout_on) { + if ((time_before(hc->timeout_tl.expires, jiffies + 5 * HZ) || + !hc->timeout_on) && + !hc->shutdown) { hc->timeout_on = 1; mod_timer(&hc->timeout_tl, jiffies + L1OIP_TIMEOUT * HZ); } else /* only adjust timer */ @@ -1232,11 +1234,10 @@ { int ch; - if (timer_pending(&hc->keep_tl)) - del_timer(&hc->keep_tl); + hc->shutdown = true; - if (timer_pending(&hc->timeout_tl)) - del_timer(&hc->timeout_tl); + del_timer_sync(&hc->keep_tl); + del_timer_sync(&hc->timeout_tl); cancel_work_sync(&hc->workq); --- linux-5.19.0.orig/drivers/leds/Kconfig +++ linux-5.19.0/drivers/leds/Kconfig @@ -59,6 +59,18 @@ This option enables support for on-chip LED drivers found on Marvell Semiconductor 88PM8606 PMIC. +config LEDS_AAEON + tristate "AAEON LED driver" + depends on X86 + depends on UBUNTU_ODM_DRIVERS + select MFD_AAEON + help + This led driver adds support for LED brightness control on Single + Board Computers produced by AAEON. + + This driver leverages the ASUS WMI interface to access device + resources. + config LEDS_AN30259A tristate "LED support for Panasonic AN30259A" depends on LEDS_CLASS && I2C && OF @@ -379,7 +391,6 @@ depends on OF depends on I2C select FW_LOADER - select FW_LOADER_USER_HELPER help This option supports common operations for LP5521/5523/55231/5562/8501 devices. --- linux-5.19.0.orig/drivers/leds/Makefile +++ linux-5.19.0/drivers/leds/Makefile @@ -9,6 +9,7 @@ # LED Platform Drivers (keep this sorted, M-| sort) obj-$(CONFIG_LEDS_88PM860X) += leds-88pm860x.o +obj-$(CONFIG_LEDS_AAEON) += leds-aaeon.o obj-$(CONFIG_LEDS_ACER_A500) += leds-acer-a500.o obj-$(CONFIG_LEDS_ADP5520) += leds-adp5520.o obj-$(CONFIG_LEDS_AN30259A) += leds-an30259a.o --- linux-5.19.0.orig/drivers/leds/flash/leds-lm3601x.c +++ linux-5.19.0/drivers/leds/flash/leds-lm3601x.c @@ -444,8 +444,6 @@ { struct lm3601x_led *led = i2c_get_clientdata(client); - mutex_destroy(&led->lock); - return regmap_update_bits(led->regmap, LM3601X_ENABLE_REG, LM3601X_ENABLE_MASK, LM3601X_MODE_STANDBY); --- linux-5.19.0.orig/drivers/leds/leds-aaeon.c +++ linux-5.19.0/drivers/leds/leds-aaeon.c @@ -0,0 +1,142 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * AAEON LED driver + * + * Copyright (c) 2021, AAEON Ltd. + * + * Author: Kunyang Fan + * + * 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. + */ +#include +#include +#include +#include +#include +#include + +#define DRVNAME "led_aaeon" +#define ASUS_NB_WMI_EVENT_GUID "0B3CBB35-E3C2-45ED-91C2-4C5A6D195D1C" +#define AAEON_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66" + +#define GET_LED_NUMBER_ID 0x00060000 +#define GET_LED_METHOD_ID 0x00060001 +#define SET_LED_METHOD_ID 0x00060002 +#define GET_LED_NUMBER_METHOD_ID 0x10 + + +struct aaeon_led_data { + int id; + struct led_classdev cdev; +}; + +static int aaeon_led_get_number(void) +{ + int err, retval; + + err = asus_wmi_evaluate_method(GET_LED_NUMBER_ID, + GET_LED_NUMBER_METHOD_ID, + 0, &retval); + if (err) + return err; + + return retval; +} + +static enum led_brightness aaeon_led_brightness_get(struct led_classdev + *cdev) +{ + int err, brightness; + struct aaeon_led_data *led = + container_of(cdev, struct aaeon_led_data, cdev); + u32 arg0; + + arg0 = (u32)(led->id & 0xF); + err = asus_wmi_evaluate_method(GET_LED_METHOD_ID, arg0, 0, &brightness); + if (err) + return err; + + return brightness; +}; + +static void aaeon_led_brightness_set(struct led_classdev *cdev, + enum led_brightness brightness) +{ + int err, retval; + struct aaeon_led_data *led = + container_of(cdev, struct aaeon_led_data, cdev); + u32 arg0; + + arg0 = (u32)(led->id & 0xF); + if (brightness != LED_OFF) + arg0 |= BIT(16); + + err = asus_wmi_evaluate_method(SET_LED_METHOD_ID, arg0, 0, &retval); +}; + +static int __init aaeon_add_led_device(struct platform_device *pdev, + int id) +{ + struct aaeon_led_data *led; + + led = devm_kzalloc(&pdev->dev, sizeof(struct aaeon_led_data), GFP_KERNEL); + if (!led) + return -ENOMEM; + + led->id = id; + led->cdev.brightness_get = aaeon_led_brightness_get; + led->cdev.brightness_set = aaeon_led_brightness_set; + led->cdev.name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "led:%d:", id); + + if (!led->cdev.name) + return -ENOMEM; + + return devm_led_classdev_register(&pdev->dev, &led->cdev); +} + +static int aaeon_led_probe(struct platform_device *pdev) +{ + int err = -ENODEV, i; + int led_number = 0; + + pr_debug("aaeon led device probe!\n"); + /* Prevent other drivers adding this platfom device */ + if (!wmi_has_guid(AAEON_WMI_MGMT_GUID)) { + pr_debug("AAEON Management GUID not found\n"); + return -ENODEV; + } + + /* Query the number of led devices board support */ + led_number = aaeon_led_get_number(); + + /* + * If the number is 0 or can't get the number of leds, + * no need to register any led device node. + */ + if (led_number <= 0) + return -ENODEV; + + for (i = 0; i < led_number; i++) { + err = aaeon_add_led_device(pdev, i); + if (err) + break; + } + + return err; +} + +static struct platform_driver aaeon_led_driver = { + .driver = { + .name = "leds-aaeon", + }, +}; + +module_platform_driver_probe(aaeon_led_driver, aaeon_led_probe); + +MODULE_ALIAS("platform:leds-aaeon"); +MODULE_DESCRIPTION("AAEON LED Driver"); +MODULE_AUTHOR("Kunyang Fan "); +MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/leds/rgb/leds-pwm-multicolor.c +++ linux-5.19.0/drivers/leds/rgb/leds-pwm-multicolor.c @@ -19,6 +19,7 @@ struct pwm_led { struct pwm_device *pwm; struct pwm_state state; + bool active_low; }; struct pwm_mc_led { @@ -45,6 +46,9 @@ duty *= mc_cdev->subled_info[i].brightness; do_div(duty, cdev->max_brightness); + if (priv->leds[i].active_low) + duty = priv->leds[i].state.period - duty; + priv->leds[i].state.duty_cycle = duty; priv->leds[i].state.enabled = duty > 0; ret = pwm_apply_state(priv->leds[i].pwm, @@ -72,11 +76,11 @@ pwmled = &priv->leds[priv->mc_cdev.num_colors]; pwmled->pwm = devm_fwnode_pwm_get(dev, fwnode, NULL); if (IS_ERR(pwmled->pwm)) { - ret = PTR_ERR(pwmled->pwm); - dev_err(dev, "unable to request PWM: %d\n", ret); + ret = dev_err_probe(dev, PTR_ERR(pwmled->pwm), "unable to request PWM\n"); goto release_fwnode; } pwm_init_state(pwmled->pwm, &pwmled->state); + pwmled->active_low = fwnode_property_read_bool(fwnode, "active-low"); ret = fwnode_property_read_u32(fwnode, "color", &color); if (ret) { --- linux-5.19.0.orig/drivers/leds/rgb/leds-qcom-lpg.c +++ linux-5.19.0/drivers/leds/rgb/leds-qcom-lpg.c @@ -602,8 +602,8 @@ lpg_lut_sync(lpg, lut_mask); } -static void lpg_brightness_single_set(struct led_classdev *cdev, - enum led_brightness value) +static int lpg_brightness_single_set(struct led_classdev *cdev, + enum led_brightness value) { struct lpg_led *led = container_of(cdev, struct lpg_led, cdev); struct mc_subled info; @@ -614,10 +614,12 @@ lpg_brightness_set(led, cdev, &info); mutex_unlock(&led->lpg->lock); + + return 0; } -static void lpg_brightness_mc_set(struct led_classdev *cdev, - enum led_brightness value) +static int lpg_brightness_mc_set(struct led_classdev *cdev, + enum led_brightness value) { struct led_classdev_mc *mc = lcdev_to_mccdev(cdev); struct lpg_led *led = container_of(mc, struct lpg_led, mcdev); @@ -628,6 +630,8 @@ lpg_brightness_set(led, cdev, mc->subled_info); mutex_unlock(&led->lpg->lock); + + return 0; } static int lpg_blink_set(struct lpg_led *led, @@ -1118,7 +1122,7 @@ led->mcdev.num_colors = num_channels; cdev = &led->mcdev.led_cdev; - cdev->brightness_set = lpg_brightness_mc_set; + cdev->brightness_set_blocking = lpg_brightness_mc_set; cdev->blink_set = lpg_blink_mc_set; /* Register pattern accessors only if we have a LUT block */ @@ -1132,7 +1136,7 @@ return ret; cdev = &led->cdev; - cdev->brightness_set = lpg_brightness_single_set; + cdev->brightness_set_blocking = lpg_brightness_single_set; cdev->blink_set = lpg_blink_single_set; /* Register pattern accessors only if we have a LUT block */ @@ -1151,7 +1155,7 @@ else cdev->brightness = LED_OFF; - cdev->brightness_set(cdev, cdev->brightness); + cdev->brightness_set_blocking(cdev, cdev->brightness); init_data.fwnode = of_fwnode_handle(np); --- linux-5.19.0.orig/drivers/macintosh/adb.c +++ linux-5.19.0/drivers/macintosh/adb.c @@ -647,7 +647,7 @@ switch(req->data[1]) { case ADB_QUERY_GETDEVINFO: - if (req->nbytes < 3) + if (req->nbytes < 3 || req->data[2] >= 16) break; mutex_lock(&adb_handler_mutex); req->reply[0] = adb_handler[req->data[2]].original_address; --- linux-5.19.0.orig/drivers/macintosh/macio-adb.c +++ linux-5.19.0/drivers/macintosh/macio-adb.c @@ -108,6 +108,10 @@ return -ENXIO; } adb = ioremap(r.start, sizeof(struct adb_regs)); + if (!adb) { + of_node_put(adbs); + return -ENOMEM; + } out_8(&adb->ctrl.r, 0); out_8(&adb->intr.r, 0); --- linux-5.19.0.orig/drivers/macintosh/macio_asic.c +++ linux-5.19.0/drivers/macintosh/macio_asic.c @@ -424,7 +424,7 @@ if (of_device_register(&dev->ofdev) != 0) { printk(KERN_DEBUG"macio: device registration error for %s!\n", dev_name(&dev->ofdev.dev)); - kfree(dev); + put_device(&dev->ofdev.dev); return NULL; } --- linux-5.19.0.orig/drivers/mailbox/arm_mhuv2.c +++ linux-5.19.0/drivers/mailbox/arm_mhuv2.c @@ -1062,8 +1062,8 @@ int ret = -EINVAL; reg = devm_of_iomap(dev, dev->of_node, 0, NULL); - if (!reg) - return -ENOMEM; + if (IS_ERR(reg)) + return PTR_ERR(reg); mhu = devm_kzalloc(dev, sizeof(*mhu), GFP_KERNEL); if (!mhu) --- linux-5.19.0.orig/drivers/mailbox/bcm-flexrm-mailbox.c +++ linux-5.19.0/drivers/mailbox/bcm-flexrm-mailbox.c @@ -632,15 +632,15 @@ rc = dma_map_sg(dev, msg->spu.src, sg_nents(msg->spu.src), DMA_TO_DEVICE); - if (rc < 0) - return rc; + if (!rc) + return -EIO; rc = dma_map_sg(dev, msg->spu.dst, sg_nents(msg->spu.dst), DMA_FROM_DEVICE); - if (rc < 0) { + if (!rc) { dma_unmap_sg(dev, msg->spu.src, sg_nents(msg->spu.src), DMA_TO_DEVICE); - return rc; + return -EIO; } return 0; --- linux-5.19.0.orig/drivers/mailbox/mailbox-mpfs.c +++ linux-5.19.0/drivers/mailbox/mailbox-mpfs.c @@ -2,7 +2,7 @@ /* * Microchip PolarFire SoC (MPFS) system controller/mailbox controller driver * - * Copyright (c) 2020 Microchip Corporation. All rights reserved. + * Copyright (c) 2020-2022 Microchip Corporation. All rights reserved. * * Author: Conor Dooley * @@ -56,12 +56,13 @@ #define SCB_STATUS_NOTIFY_MASK BIT(SCB_STATUS_NOTIFY) #define SCB_STATUS_POS (16) -#define SCB_STATUS_MASK GENMASK_ULL(SCB_STATUS_POS + SCB_MASK_WIDTH, SCB_STATUS_POS) +#define SCB_STATUS_MASK GENMASK(SCB_STATUS_POS + SCB_MASK_WIDTH - 1, SCB_STATUS_POS) struct mpfs_mbox { struct mbox_controller controller; struct device *dev; int irq; + void __iomem *ctrl_base; void __iomem *mbox_base; void __iomem *int_reg; struct mbox_chan chans[1]; @@ -73,7 +74,7 @@ { u32 status; - status = readl_relaxed(mbox->mbox_base + SERVICES_SR_OFFSET); + status = readl_relaxed(mbox->ctrl_base + SERVICES_SR_OFFSET); return status & SCB_STATUS_BUSY_MASK; } @@ -99,29 +100,27 @@ for (index = 0; index < (msg->cmd_data_size / 4); index++) writel_relaxed(word_buf[index], - mbox->mbox_base + MAILBOX_REG_OFFSET + index * 0x4); + mbox->mbox_base + msg->mbox_offset + index * 0x4); if (extra_bits) { u8 i; u8 byte_off = ALIGN_DOWN(msg->cmd_data_size, 4); u8 *byte_buf = msg->cmd_data + byte_off; - val = readl_relaxed(mbox->mbox_base + - MAILBOX_REG_OFFSET + index * 0x4); + val = readl_relaxed(mbox->mbox_base + msg->mbox_offset + index * 0x4); for (i = 0u; i < extra_bits; i++) { val &= ~(0xffu << (i * 8u)); val |= (byte_buf[i] << (i * 8u)); } - writel_relaxed(val, - mbox->mbox_base + MAILBOX_REG_OFFSET + index * 0x4); + writel_relaxed(val, mbox->mbox_base + msg->mbox_offset + index * 0x4); } } opt_sel = ((msg->mbox_offset << 7u) | (msg->cmd_opcode & 0x7fu)); tx_trigger = (opt_sel << SCB_CTRL_POS) & SCB_CTRL_MASK; tx_trigger |= SCB_CTRL_REQ_MASK | SCB_STATUS_NOTIFY_MASK; - writel_relaxed(tx_trigger, mbox->mbox_base + SERVICES_CR_OFFSET); + writel_relaxed(tx_trigger, mbox->ctrl_base + SERVICES_CR_OFFSET); return 0; } @@ -131,17 +130,42 @@ struct mpfs_mbox *mbox = (struct mpfs_mbox *)chan->con_priv; struct mpfs_mss_response *response = mbox->response; u16 num_words = ALIGN((response->resp_size), (4)) / 4U; - u32 i; + u32 i, status; if (!response->resp_msg) { dev_err(mbox->dev, "failed to assign memory for response %d\n", -ENOMEM); return; } + /* + * The status is stored in bits 31:16 of the SERVICES_SR register. + * It is only valid when BUSY == 0. + * We should *never* get an interrupt while the controller is + * still in the busy state. If we do, something has gone badly + * wrong & the content of the mailbox would not be valid. + */ + if (mpfs_mbox_busy(mbox)) { + dev_err(mbox->dev, "got an interrupt but system controller is busy\n"); + response->resp_status = 0xDEAD; + return; + } + + status = readl_relaxed(mbox->ctrl_base + SERVICES_SR_OFFSET); + + /* + * If the status of the individual servers is non-zero, the service has + * failed. The contents of the mailbox at this point are not be valid, + * so don't bother reading them. Set the status so that the driver + * implementing the service can handle the result. + */ + response->resp_status = (status & SCB_STATUS_MASK) >> SCB_STATUS_POS; + if (response->resp_status) + return; + if (!mpfs_mbox_busy(mbox)) { for (i = 0; i < num_words; i++) { response->resp_msg[i] = - readl_relaxed(mbox->mbox_base + MAILBOX_REG_OFFSET + readl_relaxed(mbox->mbox_base + mbox->resp_offset + i * 0x4); } } @@ -200,14 +224,18 @@ if (!mbox) return -ENOMEM; - mbox->mbox_base = devm_platform_get_and_ioremap_resource(pdev, 0, ®s); - if (IS_ERR(mbox->mbox_base)) - return PTR_ERR(mbox->mbox_base); + mbox->ctrl_base = devm_platform_get_and_ioremap_resource(pdev, 0, ®s); + if (IS_ERR(mbox->ctrl_base)) + return PTR_ERR(mbox->ctrl_base); mbox->int_reg = devm_platform_get_and_ioremap_resource(pdev, 1, ®s); if (IS_ERR(mbox->int_reg)) return PTR_ERR(mbox->int_reg); + mbox->mbox_base = devm_platform_get_and_ioremap_resource(pdev, 2, ®s); + if (IS_ERR(mbox->mbox_base)) // account for the old dt-binding w/ 2 regs + mbox->mbox_base = mbox->ctrl_base + MAILBOX_REG_OFFSET; + mbox->irq = platform_get_irq(pdev, 0); if (mbox->irq < 0) return mbox->irq; --- linux-5.19.0.orig/drivers/mailbox/pcc.c +++ linux-5.19.0/drivers/mailbox/pcc.c @@ -743,6 +743,7 @@ if (IS_ERR(pcc_pdev)) { pr_debug("Err creating PCC platform bundle\n"); + pcc_chan_count = 0; return PTR_ERR(pcc_pdev); } --- linux-5.19.0.orig/drivers/mailbox/zynqmp-ipi-mailbox.c +++ linux-5.19.0/drivers/mailbox/zynqmp-ipi-mailbox.c @@ -493,6 +493,7 @@ ret = device_register(&ipi_mbox->dev); if (ret) { dev_err(dev, "Failed to register ipi mbox dev.\n"); + put_device(&ipi_mbox->dev); return ret; } mdev = &ipi_mbox->dev; @@ -619,7 +620,8 @@ ipi_mbox = &pdata->ipi_mboxes[i]; if (ipi_mbox->dev.parent) { mbox_controller_unregister(&ipi_mbox->mbox); - device_unregister(&ipi_mbox->dev); + if (device_is_registered(&ipi_mbox->dev)) + device_unregister(&ipi_mbox->dev); } } } --- linux-5.19.0.orig/drivers/mcb/mcb-core.c +++ linux-5.19.0/drivers/mcb/mcb-core.c @@ -71,8 +71,10 @@ get_device(dev); ret = mdrv->probe(mdev, found_id); - if (ret) + if (ret) { module_put(carrier_mod); + put_device(dev); + } return ret; } --- linux-5.19.0.orig/drivers/mcb/mcb-parse.c +++ linux-5.19.0/drivers/mcb/mcb-parse.c @@ -108,7 +108,7 @@ return 0; err: - mcb_free_dev(mdev); + put_device(&mdev->dev); return ret; } --- linux-5.19.0.orig/drivers/md/bcache/writeback.c +++ linux-5.19.0/drivers/md/bcache/writeback.c @@ -157,6 +157,53 @@ dc->writeback_rate_target = target; } +static bool idle_counter_exceeded(struct cache_set *c) +{ + int counter, dev_nr; + + /* + * If c->idle_counter is overflow (idel for really long time), + * reset as 0 and not set maximum rate this time for code + * simplicity. + */ + counter = atomic_inc_return(&c->idle_counter); + if (counter <= 0) { + atomic_set(&c->idle_counter, 0); + return false; + } + + dev_nr = atomic_read(&c->attached_dev_nr); + if (dev_nr == 0) + return false; + + /* + * c->idle_counter is increased by writeback thread of all + * attached backing devices, in order to represent a rough + * time period, counter should be divided by dev_nr. + * Otherwise the idle time cannot be larger with more backing + * device attached. + * The following calculation equals to checking + * (counter / dev_nr) < (dev_nr * 6) + */ + if (counter < (dev_nr * dev_nr * 6)) + return false; + + return true; +} + +/* + * Idle_counter is increased every time when update_writeback_rate() is + * called. If all backing devices attached to the same cache set have + * identical dc->writeback_rate_update_seconds values, it is about 6 + * rounds of update_writeback_rate() on each backing device before + * c->at_max_writeback_rate is set to 1, and then max wrteback rate set + * to each dc->writeback_rate.rate. + * In order to avoid extra locking cost for counting exact dirty cached + * devices number, c->attached_dev_nr is used to calculate the idle + * throushold. It might be bigger if not all cached device are in write- + * back mode, but it still works well with limited extra rounds of + * update_writeback_rate(). + */ static bool set_at_max_writeback_rate(struct cache_set *c, struct cached_dev *dc) { @@ -167,21 +214,8 @@ /* Don't set max writeback rate if gc is running */ if (!c->gc_mark_valid) return false; - /* - * Idle_counter is increased everytime when update_writeback_rate() is - * called. If all backing devices attached to the same cache set have - * identical dc->writeback_rate_update_seconds values, it is about 6 - * rounds of update_writeback_rate() on each backing device before - * c->at_max_writeback_rate is set to 1, and then max wrteback rate set - * to each dc->writeback_rate.rate. - * In order to avoid extra locking cost for counting exact dirty cached - * devices number, c->attached_dev_nr is used to calculate the idle - * throushold. It might be bigger if not all cached device are in write- - * back mode, but it still works well with limited extra rounds of - * update_writeback_rate(). - */ - if (atomic_inc_return(&c->idle_counter) < - atomic_read(&c->attached_dev_nr) * 6) + + if (!idle_counter_exceeded(c)) return false; if (atomic_read(&c->at_max_writeback_rate) != 1) @@ -195,13 +229,10 @@ dc->writeback_rate_change = 0; /* - * Check c->idle_counter and c->at_max_writeback_rate agagain in case - * new I/O arrives during before set_at_max_writeback_rate() returns. - * Then the writeback rate is set to 1, and its new value should be - * decided via __update_writeback_rate(). + * In case new I/O arrives during before + * set_at_max_writeback_rate() returns. */ - if ((atomic_read(&c->idle_counter) < - atomic_read(&c->attached_dev_nr) * 6) || + if (!idle_counter_exceeded(c) || !atomic_read(&c->at_max_writeback_rate)) return false; --- linux-5.19.0.orig/drivers/md/dm-clone-target.c +++ linux-5.19.0/drivers/md/dm-clone-target.c @@ -2035,7 +2035,7 @@ reason = "max discard sectors smaller than a region"; if (reason) { - DMWARN("Destination device (%pd) %s: Disabling discard passdown.", + DMWARN("Destination device (%pg) %s: Disabling discard passdown.", dest_dev, reason); clear_bit(DM_CLONE_DISCARD_PASSDOWN, &clone->flags); } --- linux-5.19.0.orig/drivers/md/dm-integrity.c +++ linux-5.19.0/drivers/md/dm-integrity.c @@ -263,6 +263,7 @@ struct completion crypto_backoff; + bool wrote_to_journal; bool journal_uptodate; bool just_formatted; bool recalculate_flag; @@ -2374,6 +2375,8 @@ if (!commit_sections) goto release_flush_bios; + ic->wrote_to_journal = true; + i = commit_start; for (n = 0; n < commit_sections; n++) { for (j = 0; j < ic->journal_section_entries; j++) { @@ -2590,10 +2593,6 @@ unsigned prev_free_sectors; - /* the following test is not needed, but it tests the replay code */ - if (unlikely(dm_post_suspending(ic->ti)) && !ic->meta_dev) - return; - spin_lock_irq(&ic->endio_wait.lock); write_start = ic->committed_section; write_sections = ic->n_committed_sections; @@ -3101,10 +3100,17 @@ drain_workqueue(ic->commit_wq); if (ic->mode == 'J') { - if (ic->meta_dev) - queue_work(ic->writer_wq, &ic->writer_work); + queue_work(ic->writer_wq, &ic->writer_work); drain_workqueue(ic->writer_wq); dm_integrity_flush_buffers(ic, true); + if (ic->wrote_to_journal) { + init_journal(ic, ic->free_section, + ic->journal_sections - ic->free_section, ic->commit_seq); + if (ic->free_section) { + init_journal(ic, 0, ic->free_section, + next_commit_seq(ic->commit_seq)); + } + } } if (ic->mode == 'B') { @@ -3132,6 +3138,8 @@ DEBUG_print("resume\n"); + ic->wrote_to_journal = false; + if (ic->provided_data_sectors != old_provided_data_sectors) { if (ic->provided_data_sectors > old_provided_data_sectors && ic->mode == 'B' && --- linux-5.19.0.orig/drivers/md/dm-ioctl.c +++ linux-5.19.0/drivers/md/dm-ioctl.c @@ -655,7 +655,7 @@ size_t *needed = needed_param; *needed += sizeof(struct dm_target_versions); - *needed += strlen(tt->name); + *needed += strlen(tt->name) + 1; *needed += ALIGN_MASK; } @@ -720,7 +720,7 @@ iter_info.old_vers = NULL; iter_info.vers = vers; iter_info.flags = 0; - iter_info.end = (char *)vers+len; + iter_info.end = (char *)vers + needed; /* * Now loop through filling out the names & versions. --- linux-5.19.0.orig/drivers/md/dm-raid.c +++ linux-5.19.0/drivers/md/dm-raid.c @@ -3097,6 +3097,7 @@ INIT_WORK(&rs->md.event_work, do_table_event); ti->private = rs; ti->num_flush_bios = 1; + ti->needs_bio_set_dev = true; /* Restore any requested new layout for conversion decision */ rs_config_restore(rs, &rs_layout); @@ -3509,7 +3510,7 @@ { struct raid_set *rs = ti->private; struct mddev *mddev = &rs->md; - struct r5conf *conf = mddev->private; + struct r5conf *conf = rs_is_raid456(rs) ? mddev->private : NULL; int i, max_nr_stripes = conf ? conf->max_nr_stripes : 0; unsigned long recovery; unsigned int raid_param_cnt = 1; /* at least 1 for chunksize */ @@ -3819,7 +3820,7 @@ memset(cleared_failed_devices, 0, sizeof(cleared_failed_devices)); - for (i = 0; i < mddev->raid_disks; i++) { + for (i = 0; i < rs->raid_disks; i++) { r = &rs->dev[i].rdev; /* HM FIXME: enhance journal device recovery processing */ if (test_bit(Journal, &r->flags)) --- linux-5.19.0.orig/drivers/md/dm-thin-metadata.c +++ linux-5.19.0/drivers/md/dm-thin-metadata.c @@ -2045,10 +2045,13 @@ dm_sm_threshold_fn fn, void *context) { - int r; + int r = -EINVAL; pmd_write_lock_in_core(pmd); - r = dm_sm_register_threshold_callback(pmd->metadata_sm, threshold, fn, context); + if (!pmd->fail_io) { + r = dm_sm_register_threshold_callback(pmd->metadata_sm, + threshold, fn, context); + } pmd_write_unlock(pmd); return r; --- linux-5.19.0.orig/drivers/md/dm-thin.c +++ linux-5.19.0/drivers/md/dm-thin.c @@ -3375,8 +3375,10 @@ calc_metadata_threshold(pt), metadata_low_callback, pool); - if (r) + if (r) { + ti->error = "Error registering metadata threshold"; goto out_flags_changed; + } dm_pool_register_pre_commit_callback(pool->pmd, metadata_pre_commit_callback, pool); --- linux-5.19.0.orig/drivers/md/dm-writecache.c +++ linux-5.19.0/drivers/md/dm-writecache.c @@ -22,7 +22,7 @@ #define HIGH_WATERMARK 50 #define LOW_WATERMARK 45 -#define MAX_WRITEBACK_JOBS 0 +#define MAX_WRITEBACK_JOBS min(0x10000000 / PAGE_SIZE, totalram_pages() / 16) #define ENDIO_LATENCY 16 #define WRITEBACK_LATENCY 64 #define AUTOCOMMIT_BLOCKS_SSD 65536 @@ -1329,8 +1329,8 @@ WC_MAP_ERROR, }; -static enum wc_map_op writecache_map_remap_origin(struct dm_writecache *wc, struct bio *bio, - struct wc_entry *e) +static void writecache_map_remap_origin(struct dm_writecache *wc, struct bio *bio, + struct wc_entry *e) { if (e) { sector_t next_boundary = @@ -1338,8 +1338,6 @@ if (next_boundary < bio->bi_iter.bi_size >> SECTOR_SHIFT) dm_accept_partial_bio(bio, next_boundary); } - - return WC_MAP_REMAP_ORIGIN; } static enum wc_map_op writecache_map_read(struct dm_writecache *wc, struct bio *bio) @@ -1366,14 +1364,16 @@ map_op = WC_MAP_REMAP; } } else { - map_op = writecache_map_remap_origin(wc, bio, e); + writecache_map_remap_origin(wc, bio, e); + wc->stats.reads += (bio->bi_iter.bi_size - wc->block_size) >> wc->block_size_bits; + map_op = WC_MAP_REMAP_ORIGIN; } return map_op; } -static enum wc_map_op writecache_bio_copy_ssd(struct dm_writecache *wc, struct bio *bio, - struct wc_entry *e, bool search_used) +static void writecache_bio_copy_ssd(struct dm_writecache *wc, struct bio *bio, + struct wc_entry *e, bool search_used) { unsigned bio_size = wc->block_size; sector_t start_cache_sec = cache_sector(wc, e); @@ -1413,14 +1413,15 @@ bio->bi_iter.bi_sector = start_cache_sec; dm_accept_partial_bio(bio, bio_size >> SECTOR_SHIFT); + wc->stats.writes += bio->bi_iter.bi_size >> wc->block_size_bits; + wc->stats.writes_allocate += (bio->bi_iter.bi_size - wc->block_size) >> wc->block_size_bits; + if (unlikely(wc->uncommitted_blocks >= wc->autocommit_blocks)) { wc->uncommitted_blocks = 0; queue_work(wc->writeback_wq, &wc->flush_work); } else { writecache_schedule_autocommit(wc); } - - return WC_MAP_REMAP; } static enum wc_map_op writecache_map_write(struct dm_writecache *wc, struct bio *bio) @@ -1430,9 +1431,10 @@ do { bool found_entry = false; bool search_used = false; - wc->stats.writes++; - if (writecache_has_error(wc)) + if (writecache_has_error(wc)) { + wc->stats.writes += bio->bi_iter.bi_size >> wc->block_size_bits; return WC_MAP_ERROR; + } e = writecache_find_entry(wc, bio->bi_iter.bi_sector, 0); if (e) { if (!writecache_entry_is_committed(wc, e)) { @@ -1456,9 +1458,11 @@ if (unlikely(!e)) { if (!WC_MODE_PMEM(wc) && !found_entry) { direct_write: - wc->stats.writes_around++; e = writecache_find_entry(wc, bio->bi_iter.bi_sector, WFE_RETURN_FOLLOWING); - return writecache_map_remap_origin(wc, bio, e); + writecache_map_remap_origin(wc, bio, e); + wc->stats.writes_around += bio->bi_iter.bi_size >> wc->block_size_bits; + wc->stats.writes += bio->bi_iter.bi_size >> wc->block_size_bits; + return WC_MAP_REMAP_ORIGIN; } wc->stats.writes_blocked_on_freelist++; writecache_wait_on_freelist(wc); @@ -1469,10 +1473,13 @@ wc->uncommitted_blocks++; wc->stats.writes_allocate++; bio_copy: - if (WC_MODE_PMEM(wc)) + if (WC_MODE_PMEM(wc)) { bio_copy_block(wc, bio, memory_data(wc, e)); - else - return writecache_bio_copy_ssd(wc, bio, e, search_used); + wc->stats.writes++; + } else { + writecache_bio_copy_ssd(wc, bio, e, search_used); + return WC_MAP_REMAP; + } } while (bio->bi_iter.bi_size); if (unlikely(bio->bi_opf & REQ_FUA || wc->uncommitted_blocks >= wc->autocommit_blocks)) @@ -1507,7 +1514,7 @@ static enum wc_map_op writecache_map_discard(struct dm_writecache *wc, struct bio *bio) { - wc->stats.discards++; + wc->stats.discards += bio->bi_iter.bi_size >> wc->block_size_bits; if (writecache_has_error(wc)) return WC_MAP_ERROR; --- linux-5.19.0.orig/drivers/md/dm.c +++ linux-5.19.0/drivers/md/dm.c @@ -578,9 +578,6 @@ struct bio *clone; clone = bio_alloc_clone(NULL, bio, GFP_NOIO, &md->mempools->io_bs); - /* Set default bdev, but target must bio_set_dev() before issuing IO */ - clone->bi_bdev = md->disk->part0; - tio = clone_to_tio(clone); tio->flags = 0; dm_tio_set_flag(tio, DM_TIO_INSIDE_DM_IO); @@ -614,6 +611,7 @@ static struct bio *alloc_tio(struct clone_info *ci, struct dm_target *ti, unsigned target_bio_nr, unsigned *len, gfp_t gfp_mask) { + struct mapped_device *md = ci->io->md; struct dm_target_io *tio; struct bio *clone; @@ -623,14 +621,10 @@ /* alloc_io() already initialized embedded clone */ clone = &tio->clone; } else { - struct mapped_device *md = ci->io->md; - clone = bio_alloc_clone(NULL, ci->bio, gfp_mask, &md->mempools->bs); if (!clone) return NULL; - /* Set default bdev, but target must bio_set_dev() before issuing IO */ - clone->bi_bdev = md->disk->part0; /* REQ_DM_POLL_LIST shouldn't be inherited */ clone->bi_opf &= ~REQ_DM_POLL_LIST; @@ -646,6 +640,11 @@ tio->len_ptr = len; tio->old_sector = 0; + /* Set default bdev, but target must bio_set_dev() before issuing IO */ + clone->bi_bdev = md->disk->part0; + if (unlikely(ti->needs_bio_set_dev)) + bio_set_dev(clone, md->disk->part0); + if (len) { clone->bi_iter.bi_size = to_bytes(*len); if (bio_integrity(clone)) @@ -1986,7 +1985,6 @@ md->disk->minors = 1; md->disk->flags |= GENHD_FL_NO_PART; md->disk->fops = &dm_blk_dops; - md->disk->queue = md->queue; md->disk->private_data = md; sprintf(md->disk->disk_name, "dm-%d", minor); @@ -3066,6 +3064,11 @@ goto out; ti = dm_table_get_target(table, 0); + if (dm_suspended_md(md)) { + ret = -EAGAIN; + goto out; + } + ret = -EINVAL; if (!ti->type->iterate_devices) goto out; --- linux-5.19.0.orig/drivers/md/md-bitmap.c +++ linux-5.19.0/drivers/md/md-bitmap.c @@ -2195,20 +2195,23 @@ if (set) { bmc_new = md_bitmap_get_counter(&bitmap->counts, block, &new_blocks, 1); - if (*bmc_new == 0) { - /* need to set on-disk bits too. */ - sector_t end = block + new_blocks; - sector_t start = block >> chunkshift; - start <<= chunkshift; - while (start < end) { - md_bitmap_file_set_bit(bitmap, block); - start += 1 << chunkshift; + if (bmc_new) { + if (*bmc_new == 0) { + /* need to set on-disk bits too. */ + sector_t end = block + new_blocks; + sector_t start = block >> chunkshift; + + start <<= chunkshift; + while (start < end) { + md_bitmap_file_set_bit(bitmap, block); + start += 1 << chunkshift; + } + *bmc_new = 2; + md_bitmap_count_page(&bitmap->counts, block, 1); + md_bitmap_set_pending(&bitmap->counts, block); } - *bmc_new = 2; - md_bitmap_count_page(&bitmap->counts, block, 1); - md_bitmap_set_pending(&bitmap->counts, block); + *bmc_new |= NEEDED_MASK; } - *bmc_new |= NEEDED_MASK; if (new_blocks < old_blocks) old_blocks = new_blocks; } --- linux-5.19.0.orig/drivers/md/md.c +++ linux-5.19.0/drivers/md/md.c @@ -5647,6 +5647,7 @@ * removed (mddev_delayed_delete). */ flush_workqueue(md_misc_wq); + flush_workqueue(md_rdev_misc_wq); mutex_lock(&disks_mutex); mddev = mddev_alloc(dev); @@ -6266,6 +6267,7 @@ /* stop the array and free an attached data structures. * This is called from dm-raid */ + __md_stop_writes(mddev); __md_stop(mddev); bioset_exit(&mddev->bio_set); bioset_exit(&mddev->sync_set); @@ -9466,6 +9468,7 @@ wake_up(&resync_wait); /* flag recovery needed just to double check */ set_bit(MD_RECOVERY_NEEDED, &mddev->recovery); + sysfs_notify_dirent_safe(mddev->sysfs_completed); sysfs_notify_dirent_safe(mddev->sysfs_action); md_new_event(); if (mddev->event_work.func) --- linux-5.19.0.orig/drivers/md/raid0.c +++ linux-5.19.0/drivers/md/raid0.c @@ -47,7 +47,7 @@ int len = 0; for (k = 0; k < conf->strip_zone[j].nb_dev; k++) - len += snprintf(line+len, 200-len, "%s%pg", k?"/":"", + len += scnprintf(line+len, 200-len, "%s%pg", k?"/":"", conf->devlist[j * raid_disks + k]->bdev); pr_debug("md: zone%d=[%s]\n", j, line); @@ -263,11 +263,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", - mdname(mddev)); - pr_err("md/raid0: please set raid0.default_layout to 1 or 2\n"); - err = -EOPNOTSUPP; - goto abort; + conf->layout = RAID0_ALT_MULTIZONE_LAYOUT; + pr_warn("md/raid0:%s: !!! DEFAULTING TO ALTERNATE LAYOUT !!!\n", + mdname(mddev)); + 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"); } pr_debug("md/raid0:%s: done.\n", mdname(mddev)); --- linux-5.19.0.orig/drivers/md/raid1.c +++ linux-5.19.0/drivers/md/raid1.c @@ -3159,6 +3159,7 @@ * RAID1 needs at least one disk in active */ if (conf->raid_disks - mddev->degraded < 1) { + md_unregister_thread(&conf->thread); ret = -EINVAL; goto abort; } --- linux-5.19.0.orig/drivers/md/raid10.c +++ linux-5.19.0/drivers/md/raid10.c @@ -2167,9 +2167,12 @@ int err = 0; int number = rdev->raid_disk; struct md_rdev **rdevp; - struct raid10_info *p = conf->mirrors + number; + struct raid10_info *p; print_conf(conf); + if (unlikely(number >= mddev->raid_disks)) + return 0; + p = conf->mirrors + number; if (rdev == p->rdev) rdevp = &p->rdev; else if (rdev == p->replacement) --- linux-5.19.0.orig/drivers/md/raid5.c +++ linux-5.19.0/drivers/md/raid5.c @@ -36,6 +36,7 @@ */ #include +#include #include #include #include @@ -2881,10 +2882,10 @@ if (!test_and_clear_bit(R5_DOUBLE_LOCKED, &sh->dev[i].flags)) clear_bit(R5_LOCKED, &sh->dev[i].flags); set_bit(STRIPE_HANDLE, &sh->state); - raid5_release_stripe(sh); if (sh->batch_head && sh != sh->batch_head) raid5_release_stripe(sh->batch_head); + raid5_release_stripe(sh); } static void raid5_error(struct mddev *mddev, struct md_rdev *rdev) @@ -3951,7 +3952,7 @@ * back cache (prexor with orig_page, and then xor with * page) in the read path */ - if (s->injournal && s->failed) { + if (s->to_read && s->injournal && s->failed) { if (test_bit(STRIPE_R5C_CACHING, &sh->state)) r5c_make_stripe_write_out(sh); goto out; @@ -5446,7 +5447,6 @@ if (is_badblock(rdev, sector, bio_sectors(raid_bio), &first_bad, &bad_sectors)) { - bio_put(raid_bio); rdev_dec_pending(rdev, mddev); return 0; } @@ -5841,7 +5841,7 @@ if ((bi->bi_opf & REQ_NOWAIT) && (conf->reshape_progress != MaxSector) && (mddev->reshape_backwards - ? (logical_sector > conf->reshape_progress && logical_sector <= conf->reshape_safe) + ? (logical_sector >= conf->reshape_progress && logical_sector < conf->reshape_safe) : (logical_sector >= conf->reshape_safe && logical_sector < conf->reshape_progress))) { bio_wouldblock_error(bi); if (rw == WRITE) @@ -6553,7 +6553,18 @@ spin_unlock_irq(&conf->device_lock); md_check_recovery(mddev); spin_lock_irq(&conf->device_lock); + + /* + * Waiting on MD_SB_CHANGE_PENDING below may deadlock + * seeing md_check_recovery() is needed to clear + * the flag when using mdmon. + */ + continue; } + + wait_event_lock_irq(mddev->sb_wait, + !test_bit(MD_SB_CHANGE_PENDING, &mddev->sb_flags), + conf->device_lock); } pr_debug("%d stripes handled\n", handled); --- linux-5.19.0.orig/drivers/media/cec/platform/cros-ec/cros-ec-cec.c +++ linux-5.19.0/drivers/media/cec/platform/cros-ec/cros-ec-cec.c @@ -44,6 +44,8 @@ uint8_t *cec_message = cros_ec->event_data.data.cec_message; unsigned int len = cros_ec->event_size; + if (len > CEC_MAX_MSG_SIZE) + len = CEC_MAX_MSG_SIZE; cros_ec_cec->rx_msg.len = len; memcpy(cros_ec_cec->rx_msg.msg, cec_message, len); --- linux-5.19.0.orig/drivers/media/cec/platform/s5p/s5p_cec.c +++ linux-5.19.0/drivers/media/cec/platform/s5p/s5p_cec.c @@ -115,6 +115,8 @@ dev_dbg(cec->dev, "Buffer overrun (worker did not process previous message)\n"); cec->rx = STATE_BUSY; cec->msg.len = status >> 24; + if (cec->msg.len > CEC_MAX_MSG_SIZE) + cec->msg.len = CEC_MAX_MSG_SIZE; cec->msg.rx_status = CEC_RX_STATUS_OK; s5p_cec_get_rx_buf(cec, cec->msg.len, cec->msg.msg); --- linux-5.19.0.orig/drivers/media/common/videobuf2/frame_vector.c +++ linux-5.19.0/drivers/media/common/videobuf2/frame_vector.c @@ -35,11 +35,7 @@ int get_vaddr_frames(unsigned long start, unsigned int nr_frames, struct frame_vector *vec) { - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; - int ret_pin_user_pages_fast = 0; - int ret = 0; - int err; + int ret; if (nr_frames == 0) return 0; @@ -52,57 +48,17 @@ ret = pin_user_pages_fast(start, nr_frames, FOLL_FORCE | FOLL_WRITE | FOLL_LONGTERM, (struct page **)(vec->ptrs)); - if (ret > 0) { - vec->got_ref = true; - vec->is_pfns = false; - goto out_unlocked; - } - ret_pin_user_pages_fast = ret; - - mmap_read_lock(mm); - vec->got_ref = false; - vec->is_pfns = true; - ret = 0; - do { - unsigned long *nums = frame_vector_pfns(vec); - - vma = vma_lookup(mm, start); - if (!vma) - break; - - while (ret < nr_frames && start + PAGE_SIZE <= vma->vm_end) { - err = follow_pfn(vma, start, &nums[ret]); - if (err) { - if (ret) - goto out; - // If follow_pfn() returns -EINVAL, then this - // is not an IO mapping or a raw PFN mapping. - // In that case, return the original error from - // pin_user_pages_fast(). Otherwise this - // function would return -EINVAL when - // pin_user_pages_fast() returned -ENOMEM, - // which makes debugging hard. - if (err == -EINVAL && ret_pin_user_pages_fast) - ret = ret_pin_user_pages_fast; - else - ret = err; - goto out; - } - start += PAGE_SIZE; - ret++; - } - /* Bail out if VMA doesn't completely cover the tail page. */ - if (start < vma->vm_end) - break; - } while (ret < nr_frames); -out: - mmap_read_unlock(mm); -out_unlocked: - if (!ret) - ret = -EFAULT; - if (ret > 0) - vec->nr_frames = ret; - return ret; + vec->got_ref = true; + vec->is_pfns = false; + vec->nr_frames = ret; + + if (likely(ret > 0)) + return ret; + + /* This used to (racily) return non-refcounted pfns. Let people know */ + WARN_ONCE(1, "get_vaddr_frames() cannot follow VM_IO mapping"); + vec->nr_frames = 0; + return ret ? ret : -EFAULT; } EXPORT_SYMBOL(get_vaddr_frames); --- linux-5.19.0.orig/drivers/media/common/videobuf2/videobuf2-core.c +++ linux-5.19.0/drivers/media/common/videobuf2/videobuf2-core.c @@ -813,7 +813,13 @@ num_buffers = max_t(unsigned int, *count, q->min_buffers_needed); num_buffers = min_t(unsigned int, num_buffers, VB2_MAX_FRAME); memset(q->alloc_devs, 0, sizeof(q->alloc_devs)); + /* + * Set this now to ensure that drivers see the correct q->memory value + * in the queue_setup op. + */ + mutex_lock(&q->mmap_lock); q->memory = memory; + mutex_unlock(&q->mmap_lock); set_queue_coherency(q, non_coherent_mem); /* @@ -823,22 +829,27 @@ ret = call_qop(q, queue_setup, q, &num_buffers, &num_planes, plane_sizes, q->alloc_devs); if (ret) - return ret; + goto error; /* Check that driver has set sane values */ - if (WARN_ON(!num_planes)) - return -EINVAL; + if (WARN_ON(!num_planes)) { + ret = -EINVAL; + goto error; + } for (i = 0; i < num_planes; i++) - if (WARN_ON(!plane_sizes[i])) - return -EINVAL; + if (WARN_ON(!plane_sizes[i])) { + ret = -EINVAL; + goto error; + } /* Finally, allocate buffers and video memory */ allocated_buffers = __vb2_queue_alloc(q, memory, num_buffers, num_planes, plane_sizes); if (allocated_buffers == 0) { dprintk(q, 1, "memory allocation failed\n"); - return -ENOMEM; + ret = -ENOMEM; + goto error; } /* @@ -879,7 +890,8 @@ if (ret < 0) { /* * Note: __vb2_queue_free() will subtract 'allocated_buffers' - * from q->num_buffers. + * from q->num_buffers and it will reset q->memory to + * VB2_MEMORY_UNKNOWN. */ __vb2_queue_free(q, allocated_buffers); mutex_unlock(&q->mmap_lock); @@ -895,6 +907,12 @@ q->waiting_for_buffers = !q->is_output; return 0; + +error: + mutex_lock(&q->mmap_lock); + q->memory = VB2_MEMORY_UNKNOWN; + mutex_unlock(&q->mmap_lock); + return ret; } EXPORT_SYMBOL_GPL(vb2_core_reqbufs); @@ -906,6 +924,7 @@ unsigned int num_planes = 0, num_buffers, allocated_buffers; unsigned plane_sizes[VB2_MAX_PLANES] = { }; bool non_coherent_mem = flags & V4L2_MEMORY_FLAG_NON_COHERENT; + bool no_previous_buffers = !q->num_buffers; int ret; if (q->num_buffers == VB2_MAX_FRAME) { @@ -913,13 +932,19 @@ return -ENOBUFS; } - if (!q->num_buffers) { + if (no_previous_buffers) { if (q->waiting_in_dqbuf && *count) { dprintk(q, 1, "another dup()ped fd is waiting for a buffer\n"); return -EBUSY; } memset(q->alloc_devs, 0, sizeof(q->alloc_devs)); + /* + * Set this now to ensure that drivers see the correct q->memory + * value in the queue_setup op. + */ + mutex_lock(&q->mmap_lock); q->memory = memory; + mutex_unlock(&q->mmap_lock); q->waiting_for_buffers = !q->is_output; set_queue_coherency(q, non_coherent_mem); } else { @@ -945,14 +970,15 @@ ret = call_qop(q, queue_setup, q, &num_buffers, &num_planes, plane_sizes, q->alloc_devs); if (ret) - return ret; + goto error; /* Finally, allocate buffers and video memory */ allocated_buffers = __vb2_queue_alloc(q, memory, num_buffers, num_planes, plane_sizes); if (allocated_buffers == 0) { dprintk(q, 1, "memory allocation failed\n"); - return -ENOMEM; + ret = -ENOMEM; + goto error; } /* @@ -983,7 +1009,8 @@ if (ret < 0) { /* * Note: __vb2_queue_free() will subtract 'allocated_buffers' - * from q->num_buffers. + * from q->num_buffers and it will reset q->memory to + * VB2_MEMORY_UNKNOWN. */ __vb2_queue_free(q, allocated_buffers); mutex_unlock(&q->mmap_lock); @@ -998,6 +1025,14 @@ *count = allocated_buffers; return 0; + +error: + if (no_previous_buffers) { + mutex_lock(&q->mmap_lock); + q->memory = VB2_MEMORY_UNKNOWN; + mutex_unlock(&q->mmap_lock); + } + return ret; } EXPORT_SYMBOL_GPL(vb2_core_create_bufs); @@ -2165,6 +2200,22 @@ unsigned int buffer, plane; /* + * Sanity checks to ensure the lock is held, MEMORY_MMAP is + * used and fileio isn't active. + */ + lockdep_assert_held(&q->mmap_lock); + + if (q->memory != VB2_MEMORY_MMAP) { + dprintk(q, 1, "queue is not currently set up for mmap\n"); + return -EINVAL; + } + + if (vb2_fileio_is_active(q)) { + dprintk(q, 1, "file io in progress\n"); + return -EBUSY; + } + + /* * Go over all buffers and their planes, comparing the given offset * with an offset assigned to each plane. If a match is found, * return its buffer and plane numbers. @@ -2265,11 +2316,6 @@ int ret; unsigned long length; - if (q->memory != VB2_MEMORY_MMAP) { - dprintk(q, 1, "queue is not currently set up for mmap\n"); - return -EINVAL; - } - /* * Check memory area access mode. */ @@ -2291,14 +2337,9 @@ mutex_lock(&q->mmap_lock); - if (vb2_fileio_is_active(q)) { - dprintk(q, 1, "mmap: file io in progress\n"); - ret = -EBUSY; - goto unlock; - } - /* - * Find the plane corresponding to the offset passed by userspace. + * Find the plane corresponding to the offset passed by userspace. This + * will return an error if not MEMORY_MMAP or file I/O is in progress. */ ret = __find_plane_by_offset(q, off, &buffer, &plane); if (ret) @@ -2351,22 +2392,25 @@ void *vaddr; int ret; - if (q->memory != VB2_MEMORY_MMAP) { - dprintk(q, 1, "queue is not currently set up for mmap\n"); - return -EINVAL; - } + mutex_lock(&q->mmap_lock); /* - * Find the plane corresponding to the offset passed by userspace. + * Find the plane corresponding to the offset passed by userspace. This + * will return an error if not MEMORY_MMAP or file I/O is in progress. */ ret = __find_plane_by_offset(q, off, &buffer, &plane); if (ret) - return ret; + goto unlock; vb = q->bufs[buffer]; vaddr = vb2_plane_vaddr(vb, plane); + mutex_unlock(&q->mmap_lock); return vaddr ? (unsigned long)vaddr : -EINVAL; + +unlock: + mutex_unlock(&q->mmap_lock); + return ret; } EXPORT_SYMBOL_GPL(vb2_get_unmapped_area); #endif --- linux-5.19.0.orig/drivers/media/dvb-core/dmxdev.c +++ linux-5.19.0/drivers/media/dvb-core/dmxdev.c @@ -790,6 +790,11 @@ if (mutex_lock_interruptible(&dmxdev->mutex)) return -ERESTARTSYS; + if (dmxdev->exit) { + mutex_unlock(&dmxdev->mutex); + return -ENODEV; + } + for (i = 0; i < dmxdev->filternum; i++) if (dmxdev->filter[i].state == DMXDEV_STATE_FREE) break; @@ -1448,7 +1453,10 @@ void dvb_dmxdev_release(struct dmxdev *dmxdev) { + mutex_lock(&dmxdev->mutex); dmxdev->exit = 1; + mutex_unlock(&dmxdev->mutex); + if (dmxdev->dvbdev->users > 1) { wait_event(dmxdev->dvbdev->wait_queue, dmxdev->dvbdev->users == 1); --- linux-5.19.0.orig/drivers/media/dvb-core/dvb_ca_en50221.c +++ linux-5.19.0/drivers/media/dvb-core/dvb_ca_en50221.c @@ -157,7 +157,7 @@ { unsigned int i; - dvb_free_device(ca->dvbdev); + dvb_device_put(ca->dvbdev); for (i = 0; i < ca->slot_count; i++) vfree(ca->slot_info[i].rx_buffer.data); --- linux-5.19.0.orig/drivers/media/dvb-core/dvb_frontend.c +++ linux-5.19.0/drivers/media/dvb-core/dvb_frontend.c @@ -136,7 +136,7 @@ struct dvb_frontend_private *fepriv = fe->frontend_priv; if (fepriv) - dvb_free_device(fepriv->dvbdev); + dvb_device_put(fepriv->dvbdev); dvb_frontend_invoke_release(fe, fe->ops.release); @@ -2986,6 +2986,7 @@ .name = fe->ops.info.name, #endif }; + int ret; dev_dbg(dvb->device, "%s:\n", __func__); @@ -3019,8 +3020,13 @@ "DVB: registering adapter %i frontend %i (%s)...\n", fe->dvb->num, fe->id, fe->ops.info.name); - dvb_register_device(fe->dvb, &fepriv->dvbdev, &dvbdev_template, + ret = dvb_register_device(fe->dvb, &fepriv->dvbdev, &dvbdev_template, fe, DVB_DEVICE_FRONTEND, 0); + if (ret) { + dvb_frontend_put(fe); + mutex_unlock(&frontend_mutex); + return ret; + } /* * Initialize the cache to the proper values according with the --- linux-5.19.0.orig/drivers/media/dvb-core/dvb_vb2.c +++ linux-5.19.0/drivers/media/dvb-core/dvb_vb2.c @@ -354,6 +354,12 @@ int dvb_vb2_querybuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) { + struct vb2_queue *q = &ctx->vb_q; + + if (b->index >= q->num_buffers) { + dprintk(1, "[%s] buffer index out of range\n", ctx->name); + return -EINVAL; + } vb2_core_querybuf(&ctx->vb_q, b->index, b); dprintk(3, "[%s] index=%d\n", ctx->name, b->index); return 0; @@ -378,8 +384,13 @@ int dvb_vb2_qbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) { + struct vb2_queue *q = &ctx->vb_q; int ret; + if (b->index >= q->num_buffers) { + dprintk(1, "[%s] buffer index out of range\n", ctx->name); + return -EINVAL; + } ret = vb2_core_qbuf(&ctx->vb_q, b->index, b, NULL); if (ret) { dprintk(1, "[%s] index=%d errno=%d\n", ctx->name, --- linux-5.19.0.orig/drivers/media/dvb-core/dvbdev.c +++ linux-5.19.0/drivers/media/dvb-core/dvbdev.c @@ -97,7 +97,7 @@ new_fops = fops_get(dvbdev->fops); if (!new_fops) goto fail; - file->private_data = dvbdev; + file->private_data = dvb_device_get(dvbdev); replace_fops(file, new_fops); if (file->f_op->open) err = file->f_op->open(inode, file); @@ -161,6 +161,9 @@ } dvbdev->users++; + + dvb_device_put(dvbdev); + return 0; } EXPORT_SYMBOL(dvb_generic_release); @@ -478,6 +481,7 @@ } memcpy(dvbdev, template, sizeof(struct dvb_device)); + kref_init(&dvbdev->ref); dvbdev->type = type; dvbdev->id = id; dvbdev->adapter = adap; @@ -508,7 +512,7 @@ #endif dvbdev->minor = minor; - dvb_minors[minor] = dvbdev; + dvb_minors[minor] = dvb_device_get(dvbdev); up_write(&minor_rwsem); ret = dvb_register_media_device(dvbdev, type, minor, demux_sink_pads); @@ -553,6 +557,7 @@ down_write(&minor_rwsem); dvb_minors[dvbdev->minor] = NULL; + dvb_device_put(dvbdev); up_write(&minor_rwsem); dvb_media_device_free(dvbdev); @@ -564,21 +569,34 @@ EXPORT_SYMBOL(dvb_remove_device); -void dvb_free_device(struct dvb_device *dvbdev) +static void dvb_free_device(struct kref *ref) { - if (!dvbdev) - return; + struct dvb_device *dvbdev = container_of(ref, struct dvb_device, ref); kfree (dvbdev->fops); kfree (dvbdev); } -EXPORT_SYMBOL(dvb_free_device); + + +struct dvb_device *dvb_device_get(struct dvb_device *dvbdev) +{ + kref_get(&dvbdev->ref); + return dvbdev; +} +EXPORT_SYMBOL(dvb_device_get); + + +void dvb_device_put(struct dvb_device *dvbdev) +{ + if (dvbdev) + kref_put(&dvbdev->ref, dvb_free_device); +} void dvb_unregister_device(struct dvb_device *dvbdev) { dvb_remove_device(dvbdev); - dvb_free_device(dvbdev); + dvb_device_put(dvbdev); } EXPORT_SYMBOL(dvb_unregister_device); --- linux-5.19.0.orig/drivers/media/dvb-frontends/bcm3510.c +++ linux-5.19.0/drivers/media/dvb-frontends/bcm3510.c @@ -649,6 +649,7 @@ deb_info("firmware chunk, addr: 0x%04x, len: 0x%04x, total length: 0x%04zx\n",addr,len,fw->size); if ((ret = bcm3510_write_ram(st,addr,&b[i+4],len)) < 0) { err("firmware download failed: %d\n",ret); + release_firmware(fw); return ret; } i += 4 + len; --- linux-5.19.0.orig/drivers/media/dvb-frontends/drxk_hard.c +++ linux-5.19.0/drivers/media/dvb-frontends/drxk_hard.c @@ -6660,7 +6660,7 @@ static int drxk_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) { struct drxk_state *state = fe->demodulator_priv; - u16 err; + u16 err = 0; dprintk(1, "\n"); --- linux-5.19.0.orig/drivers/media/i2c/Kconfig +++ linux-5.19.0/drivers/media/i2c/Kconfig @@ -1178,6 +1178,7 @@ depends on OF_GPIO select MEDIA_CONTROLLER select VIDEO_V4L2_SUBDEV_API + select V4L2_FWNODE help Support for Intersil ISL7998x analog to MIPI-CSI2 or BT.656 decoder. --- linux-5.19.0.orig/drivers/media/i2c/ad5820.c +++ linux-5.19.0/drivers/media/i2c/ad5820.c @@ -327,18 +327,18 @@ ret = media_entity_pads_init(&coil->subdev.entity, 0, NULL); if (ret < 0) - goto cleanup2; + goto clean_mutex; ret = v4l2_async_register_subdev(&coil->subdev); if (ret < 0) - goto cleanup; + goto clean_entity; return ret; -cleanup2: - mutex_destroy(&coil->power_lock); -cleanup: +clean_entity: media_entity_cleanup(&coil->subdev.entity); +clean_mutex: + mutex_destroy(&coil->power_lock); return ret; } --- linux-5.19.0.orig/drivers/media/i2c/adv748x/adv748x-afe.c +++ linux-5.19.0/drivers/media/i2c/adv748x/adv748x-afe.c @@ -521,6 +521,10 @@ } } + adv748x_afe_s_input(afe, afe->input); + + adv_dbg(state, "AFE Default input set to %d\n", afe->input); + /* Entity pads and sinks are 0-indexed to match the pads */ for (i = ADV748X_AFE_SINK_AIN0; i <= ADV748X_AFE_SINK_AIN7; i++) afe->pads[i].flags = MEDIA_PAD_FL_SINK; --- linux-5.19.0.orig/drivers/media/i2c/dw9768.c +++ linux-5.19.0/drivers/media/i2c/dw9768.c @@ -414,6 +414,7 @@ { struct device *dev = &client->dev; struct dw9768 *dw9768; + bool full_power; unsigned int i; int ret; @@ -469,13 +470,23 @@ dw9768->sd.entity.function = MEDIA_ENT_F_LENS; + /* + * Figure out whether we're going to power up the device here. Generally + * this is done if CONFIG_PM is disabled in a DT system or the device is + * to be powered on in an ACPI system. Similarly for power off in + * remove. + */ pm_runtime_enable(dev); - if (!pm_runtime_enabled(dev)) { + full_power = (is_acpi_node(dev_fwnode(dev)) && + acpi_dev_state_d0(dev)) || + (is_of_node(dev_fwnode(dev)) && !pm_runtime_enabled(dev)); + if (full_power) { ret = dw9768_runtime_resume(dev); if (ret < 0) { dev_err(dev, "failed to power on: %d\n", ret); goto err_clean_entity; } + pm_runtime_set_active(dev); } ret = v4l2_async_register_subdev(&dw9768->sd); @@ -484,14 +495,17 @@ goto err_power_off; } + pm_runtime_idle(dev); + return 0; err_power_off: - if (pm_runtime_enabled(dev)) - pm_runtime_disable(dev); - else + if (full_power) { dw9768_runtime_suspend(dev); + pm_runtime_set_suspended(dev); + } err_clean_entity: + pm_runtime_disable(dev); media_entity_cleanup(&dw9768->sd.entity); err_free_handler: v4l2_ctrl_handler_free(&dw9768->ctrls); @@ -503,14 +517,17 @@ { struct v4l2_subdev *sd = i2c_get_clientdata(client); struct dw9768 *dw9768 = sd_to_dw9768(sd); + struct device *dev = &client->dev; v4l2_async_unregister_subdev(&dw9768->sd); v4l2_ctrl_handler_free(&dw9768->ctrls); media_entity_cleanup(&dw9768->sd.entity); - pm_runtime_disable(&client->dev); - if (!pm_runtime_status_suspended(&client->dev)) - dw9768_runtime_suspend(&client->dev); - pm_runtime_set_suspended(&client->dev); + if ((is_acpi_node(dev_fwnode(dev)) && acpi_dev_state_d0(dev)) || + (is_of_node(dev_fwnode(dev)) && !pm_runtime_enabled(dev))) { + dw9768_runtime_suspend(dev); + pm_runtime_set_suspended(dev); + } + pm_runtime_disable(dev); return 0; } --- linux-5.19.0.orig/drivers/media/i2c/hi846.c +++ linux-5.19.0/drivers/media/i2c/hi846.c @@ -2008,22 +2008,24 @@ bus_cfg.bus.mipi_csi2.num_data_lanes != 4) { dev_err(dev, "number of CSI2 data lanes %d is not supported", bus_cfg.bus.mipi_csi2.num_data_lanes); - v4l2_fwnode_endpoint_free(&bus_cfg); - return -EINVAL; + ret = -EINVAL; + goto check_hwcfg_error; } hi846->nr_lanes = bus_cfg.bus.mipi_csi2.num_data_lanes; if (!bus_cfg.nr_of_link_frequencies) { dev_err(dev, "link-frequency property not found in DT\n"); - return -EINVAL; + ret = -EINVAL; + goto check_hwcfg_error; } /* Check that link frequences for all the modes are in device tree */ fq = hi846_check_link_freqs(hi846, &bus_cfg); if (fq) { dev_err(dev, "Link frequency of %lld is not supported\n", fq); - return -EINVAL; + ret = -EINVAL; + goto check_hwcfg_error; } v4l2_fwnode_endpoint_free(&bus_cfg); @@ -2044,6 +2046,10 @@ } return 0; + +check_hwcfg_error: + v4l2_fwnode_endpoint_free(&bus_cfg); + return ret; } static int hi846_probe(struct i2c_client *client) --- linux-5.19.0.orig/drivers/media/i2c/ov5648.c +++ linux-5.19.0/drivers/media/i2c/ov5648.c @@ -2597,6 +2597,7 @@ v4l2_ctrl_handler_free(&sensor->ctrls.handler); mutex_destroy(&sensor->mutex); media_entity_cleanup(&subdev->entity); + v4l2_fwnode_endpoint_free(&sensor->endpoint); return 0; } --- linux-5.19.0.orig/drivers/media/i2c/ov7251.c +++ linux-5.19.0/drivers/media/i2c/ov7251.c @@ -934,6 +934,8 @@ ARRAY_SIZE(ov7251_global_init_setting)); if (ret < 0) { dev_err(ov7251->dev, "error during global init\n"); + gpiod_set_value_cansleep(ov7251->enable_gpio, 0); + clk_disable_unprepare(ov7251->xclk); ov7251_regulators_disable(ov7251); return ret; } --- linux-5.19.0.orig/drivers/media/i2c/ov8865.c +++ linux-5.19.0/drivers/media/i2c/ov8865.c @@ -3034,11 +3034,13 @@ &rate); if (!ret && sensor->extclk) { ret = clk_set_rate(sensor->extclk, rate); - if (ret) - return dev_err_probe(dev, ret, - "failed to set clock rate\n"); + if (ret) { + dev_err_probe(dev, ret, "failed to set clock rate\n"); + goto error_endpoint; + } } else if (ret && !sensor->extclk) { - return dev_err_probe(dev, ret, "invalid clock config\n"); + dev_err_probe(dev, ret, "invalid clock config\n"); + goto error_endpoint; } sensor->extclk_rate = rate ? rate : clk_get_rate(sensor->extclk); --- linux-5.19.0.orig/drivers/media/pci/cx88/cx88-vbi.c +++ linux-5.19.0/drivers/media/pci/cx88/cx88-vbi.c @@ -144,11 +144,10 @@ return -EINVAL; vb2_set_plane_payload(vb, 0, size); - cx88_risc_buffer(dev->pci, &buf->risc, sgt->sgl, - 0, VBI_LINE_LENGTH * lines, - VBI_LINE_LENGTH, 0, - lines); - return 0; + return cx88_risc_buffer(dev->pci, &buf->risc, sgt->sgl, + 0, VBI_LINE_LENGTH * lines, + VBI_LINE_LENGTH, 0, + lines); } static void buffer_finish(struct vb2_buffer *vb) --- linux-5.19.0.orig/drivers/media/pci/cx88/cx88-video.c +++ linux-5.19.0/drivers/media/pci/cx88/cx88-video.c @@ -431,6 +431,7 @@ static int buffer_prepare(struct vb2_buffer *vb) { + int ret; struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb); struct cx8800_dev *dev = vb->vb2_queue->drv_priv; struct cx88_core *core = dev->core; @@ -445,35 +446,35 @@ switch (core->field) { case V4L2_FIELD_TOP: - cx88_risc_buffer(dev->pci, &buf->risc, - sgt->sgl, 0, UNSET, - buf->bpl, 0, core->height); + ret = cx88_risc_buffer(dev->pci, &buf->risc, + sgt->sgl, 0, UNSET, + buf->bpl, 0, core->height); break; case V4L2_FIELD_BOTTOM: - cx88_risc_buffer(dev->pci, &buf->risc, - sgt->sgl, UNSET, 0, - buf->bpl, 0, core->height); + ret = cx88_risc_buffer(dev->pci, &buf->risc, + sgt->sgl, UNSET, 0, + buf->bpl, 0, core->height); break; case V4L2_FIELD_SEQ_TB: - cx88_risc_buffer(dev->pci, &buf->risc, - sgt->sgl, - 0, buf->bpl * (core->height >> 1), - buf->bpl, 0, - core->height >> 1); + ret = cx88_risc_buffer(dev->pci, &buf->risc, + sgt->sgl, + 0, buf->bpl * (core->height >> 1), + buf->bpl, 0, + core->height >> 1); break; case V4L2_FIELD_SEQ_BT: - cx88_risc_buffer(dev->pci, &buf->risc, - sgt->sgl, - buf->bpl * (core->height >> 1), 0, - buf->bpl, 0, - core->height >> 1); + ret = cx88_risc_buffer(dev->pci, &buf->risc, + sgt->sgl, + buf->bpl * (core->height >> 1), 0, + buf->bpl, 0, + core->height >> 1); break; case V4L2_FIELD_INTERLACED: default: - cx88_risc_buffer(dev->pci, &buf->risc, - sgt->sgl, 0, buf->bpl, - buf->bpl, buf->bpl, - core->height >> 1); + ret = cx88_risc_buffer(dev->pci, &buf->risc, + sgt->sgl, 0, buf->bpl, + buf->bpl, buf->bpl, + core->height >> 1); break; } dprintk(2, @@ -481,7 +482,7 @@ buf, buf->vb.vb2_buf.index, __func__, core->width, core->height, dev->fmt->depth, dev->fmt->fourcc, (unsigned long)buf->risc.dma); - return 0; + return ret; } static void buffer_finish(struct vb2_buffer *vb) --- linux-5.19.0.orig/drivers/media/pci/saa7164/saa7164-core.c +++ linux-5.19.0/drivers/media/pci/saa7164/saa7164-core.c @@ -1259,7 +1259,7 @@ if (saa7164_dev_setup(dev) < 0) { err = -EINVAL; - goto fail_free; + goto fail_dev; } /* print pci info */ @@ -1427,6 +1427,8 @@ fail_irq: saa7164_dev_unregister(dev); +fail_dev: + pci_disable_device(pci_dev); fail_free: v4l2_device_unregister(&dev->v4l2_dev); kfree(dev); --- linux-5.19.0.orig/drivers/media/pci/solo6x10/solo6x10-core.c +++ linux-5.19.0/drivers/media/pci/solo6x10/solo6x10-core.c @@ -420,6 +420,7 @@ solo_dev->nr_chans); if (device_register(dev)) { + put_device(dev); dev->parent = NULL; return -ENOMEM; } --- linux-5.19.0.orig/drivers/media/pci/sta2x11/Kconfig +++ linux-5.19.0/drivers/media/pci/sta2x11/Kconfig @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only config STA2X11_VIP tristate "STA2X11 VIP Video For Linux" - depends on PCI && VIDEO_DEV && VIRT_TO_BUS && I2C + depends on PCI && VIDEO_DEV && I2C depends on STA2X11 || COMPILE_TEST select GPIOLIB if MEDIA_SUBDRV_AUTOSELECT select VIDEO_ADV7180 if MEDIA_SUBDRV_AUTOSELECT --- linux-5.19.0.orig/drivers/media/pci/tw686x/tw686x-core.c +++ linux-5.19.0/drivers/media/pci/tw686x/tw686x-core.c @@ -315,13 +315,6 @@ spin_lock_init(&dev->lock); - err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED, - dev->name, dev); - if (err < 0) { - dev_err(&pci_dev->dev, "unable to request interrupt\n"); - goto iounmap; - } - timer_setup(&dev->dma_delay_timer, tw686x_dma_delay, 0); /* @@ -333,18 +326,23 @@ err = tw686x_video_init(dev); if (err) { dev_err(&pci_dev->dev, "can't register video\n"); - goto free_irq; + goto iounmap; } err = tw686x_audio_init(dev); if (err) dev_warn(&pci_dev->dev, "can't register audio\n"); + err = request_irq(pci_dev->irq, tw686x_irq, IRQF_SHARED, + dev->name, dev); + if (err < 0) { + dev_err(&pci_dev->dev, "unable to request interrupt\n"); + goto iounmap; + } + pci_set_drvdata(pci_dev, dev); return 0; -free_irq: - free_irq(pci_dev->irq, dev); iounmap: pci_iounmap(pci_dev, dev->mmio); free_region: --- linux-5.19.0.orig/drivers/media/pci/tw686x/tw686x-video.c +++ linux-5.19.0/drivers/media/pci/tw686x/tw686x-video.c @@ -1280,8 +1280,10 @@ video_set_drvdata(vdev, vc); err = video_register_device(vdev, VFL_TYPE_VIDEO, -1); - if (err < 0) + if (err < 0) { + video_device_release(vdev); goto error; + } vc->num = vdev->num; } --- linux-5.19.0.orig/drivers/media/platform/amlogic/meson-ge2d/ge2d.c +++ linux-5.19.0/drivers/media/platform/amlogic/meson-ge2d/ge2d.c @@ -1030,7 +1030,6 @@ video_unregister_device(ge2d->vfd); v4l2_m2m_release(ge2d->m2m_dev); - video_device_release(ge2d->vfd); v4l2_device_unregister(&ge2d->v4l2_dev); clk_disable_unprepare(ge2d->clk); --- linux-5.19.0.orig/drivers/media/platform/amphion/vdec.c +++ linux-5.19.0/drivers/media/platform/amphion/vdec.c @@ -63,6 +63,7 @@ bool is_source_changed; u32 source_change; u32 drain; + bool aborting; }; static const struct vpu_format vdec_formats[] = { @@ -104,7 +105,6 @@ .pixfmt = V4L2_PIX_FMT_VC1_ANNEX_L, .num_planes = 1, .type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, - .flags = V4L2_FMT_FLAG_DYN_RESOLUTION }, { .pixfmt = V4L2_PIX_FMT_MPEG2, @@ -178,16 +178,6 @@ return 0; } -static void vdec_set_last_buffer_dequeued(struct vpu_inst *inst) -{ - struct vdec_t *vdec = inst->priv; - - if (vdec->eos_received) { - if (!vpu_set_last_buffer_dequeued(inst)) - vdec->eos_received--; - } -} - static void vdec_handle_resolution_change(struct vpu_inst *inst) { struct vdec_t *vdec = inst->priv; @@ -234,6 +224,21 @@ return 0; } +static void vdec_set_last_buffer_dequeued(struct vpu_inst *inst) +{ + struct vdec_t *vdec = inst->priv; + + if (inst->state == VPU_CODEC_STATE_DYAMIC_RESOLUTION_CHANGE) + return; + + if (vdec->eos_received) { + if (!vpu_set_last_buffer_dequeued(inst)) { + vdec->eos_received--; + vdec_update_state(inst, VPU_CODEC_STATE_DRAIN, 0); + } + } +} + static int vdec_querycap(struct file *file, void *fh, struct v4l2_capability *cap) { strscpy(cap->driver, "amphion-vpu", sizeof(cap->driver)); @@ -281,6 +286,7 @@ struct vpu_format *cur_fmt; int i; + vpu_inst_lock(inst); cur_fmt = vpu_get_format(inst, f->type); pixmp->pixelformat = cur_fmt->pixfmt; @@ -298,6 +304,7 @@ f->fmt.pix_mp.xfer_func = vdec->codec_info.transfer_chars; f->fmt.pix_mp.ycbcr_enc = vdec->codec_info.matrix_coeffs; f->fmt.pix_mp.quantization = vdec->codec_info.full_range; + vpu_inst_unlock(inst); return 0; } @@ -493,6 +500,8 @@ static int vdec_cmd_start(struct vpu_inst *inst) { + struct vdec_t *vdec = inst->priv; + switch (inst->state) { case VPU_CODEC_STATE_STARTED: case VPU_CODEC_STATE_DRAIN: @@ -503,6 +512,8 @@ break; } vpu_process_capture_buffer(inst); + if (vdec->eos_received) + vdec_set_last_buffer_dequeued(inst); return 0; } @@ -731,6 +742,7 @@ vdec->eos_received = 0; vdec->is_source_changed = false; vdec->source_change = 0; + inst->total_input_count = 0; vpu_inst_unlock(inst); } @@ -743,6 +755,9 @@ if (!inst->fh.m2m_ctx) return false; + if (vdec->reset_codec) + return false; + if (!vb2_is_streaming(v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx))) return true; fmt = vpu_helper_find_format(inst, inst->cap_format.type, vdec->codec_info.pixfmt); @@ -798,14 +813,6 @@ inst->cap_format.field = V4L2_FIELD_NONE; else inst->cap_format.field = V4L2_FIELD_SEQ_TB; - if (vdec->codec_info.color_primaries == V4L2_COLORSPACE_DEFAULT) - vdec->codec_info.color_primaries = V4L2_COLORSPACE_REC709; - if (vdec->codec_info.transfer_chars == V4L2_XFER_FUNC_DEFAULT) - vdec->codec_info.transfer_chars = V4L2_XFER_FUNC_709; - if (vdec->codec_info.matrix_coeffs == V4L2_YCBCR_ENC_DEFAULT) - vdec->codec_info.matrix_coeffs = V4L2_YCBCR_ENC_709; - if (vdec->codec_info.full_range == V4L2_QUANTIZATION_DEFAULT) - vdec->codec_info.full_range = V4L2_QUANTIZATION_LIM_RANGE; } static void vdec_init_crop(struct vpu_inst *inst) @@ -939,6 +946,9 @@ if (inst->state != VPU_CODEC_STATE_ACTIVE) return -EINVAL; + if (vdec->aborting) + return -EINVAL; + if (!vdec->req_frame_count) return -EINVAL; @@ -1048,6 +1058,8 @@ vpu_buf = vdec->slots[i]; vbuf = &vpu_buf->m2m_buf.vb; + vpu_trace(inst->dev, "clear slot %d\n", i); + vdec_response_fs_release(inst, i, vpu_buf->tag); vdec_recycle_buffer(inst, vbuf); vdec->slots[i]->state = VPU_BUF_STATE_IDLE; vdec->slots[i] = NULL; @@ -1081,7 +1093,8 @@ vdec->seq_tag = vdec->codec_info.tag; if (vdec->is_source_changed) { vdec_update_state(inst, VPU_CODEC_STATE_DYAMIC_RESOLUTION_CHANGE, 0); - vpu_notify_source_change(inst); + vdec->source_change++; + vdec_handle_resolution_change(inst); vdec->is_source_changed = false; } } @@ -1203,7 +1216,6 @@ vdec->eos_received++; vdec->fixed_fmt = false; inst->min_buffer_cap = VDEC_MIN_BUFFER_CAP; - vdec_update_state(inst, VPU_CODEC_STATE_DRAIN, 0); vdec_set_last_buffer_dequeued(inst); vpu_inst_unlock(inst); } @@ -1310,6 +1322,8 @@ int ret; vpu_trace(inst->dev, "[%d] state = %d\n", inst->id, inst->state); + + vdec->aborting = true; vpu_iface_add_scode(inst, SCODE_PADDING_ABORT); vdec->params.end_flag = 1; vpu_iface_set_decode_params(inst, &vdec->params, 1); @@ -1327,12 +1341,16 @@ vdec->decoded_frame_count, vdec->display_frame_count, vdec->sequence); + if (!vdec->seq_hdr_found) + vdec->reset_codec = true; vdec->params.end_flag = 0; vdec->drain = 0; vdec->params.frame_count = 0; vdec->decoded_frame_count = 0; vdec->display_frame_count = 0; vdec->sequence = 0; + vdec->aborting = false; + inst->extra_size = 0; } static void vdec_stop(struct vpu_inst *inst, bool free) @@ -1456,8 +1474,7 @@ } if (V4L2_TYPE_IS_OUTPUT(type)) { - if (inst->state == VPU_CODEC_STATE_SEEK) - vdec_update_state(inst, vdec->state, 1); + vdec_update_state(inst, vdec->state, 1); vdec->eos_received = 0; vpu_process_output_buffer(inst); } else { @@ -1480,10 +1497,10 @@ vdec_update_state(inst, VPU_CODEC_STATE_SEEK, 0); vdec->drain = 0; } else { - if (inst->state != VPU_CODEC_STATE_DYAMIC_RESOLUTION_CHANGE) + if (inst->state != VPU_CODEC_STATE_DYAMIC_RESOLUTION_CHANGE) { vdec_abort(inst); - - vdec->eos_received = 0; + vdec->eos_received = 0; + } vdec_clear_slots(inst); } @@ -1539,6 +1556,14 @@ vdec->codec_info.frame_rate.numerator, vdec->codec_info.frame_rate.denominator); break; + case 9: + num = scnprintf(str, size, "colorspace: %d, %d, %d, %d (%d)\n", + vdec->codec_info.color_primaries, + vdec->codec_info.transfer_chars, + vdec->codec_info.matrix_coeffs, + vdec->codec_info.full_range, + vdec->codec_info.vui_present); + break; default: break; } @@ -1613,6 +1638,7 @@ return ret; vdec->fixed_fmt = false; + vdec->state = VPU_CODEC_STATE_ACTIVE; inst->min_buffer_cap = VDEC_MIN_BUFFER_CAP; inst->min_buffer_out = VDEC_MIN_BUFFER_OUT; vdec_init(file); --- linux-5.19.0.orig/drivers/media/platform/amphion/venc.c +++ linux-5.19.0/drivers/media/platform/amphion/venc.c @@ -644,7 +644,7 @@ BITRATE_DEFAULT_PEAK); v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops, - V4L2_CID_MPEG_VIDEO_GOP_SIZE, 0, (1 << 16) - 1, 1, 30); + V4L2_CID_MPEG_VIDEO_GOP_SIZE, 1, 8000, 1, 30); v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops, V4L2_CID_MPEG_VIDEO_B_FRAMES, 0, 4, 1, 0); --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu.h +++ linux-5.19.0/drivers/media/platform/amphion/vpu.h @@ -13,6 +13,7 @@ #include #include +#define VPU_TIMEOUT_WAKEUP msecs_to_jiffies(200) #define VPU_TIMEOUT msecs_to_jiffies(1000) #define VPU_INST_NULL_ID (-1L) #define VPU_MSG_BUFFER_SIZE (8192) @@ -119,7 +120,6 @@ enum vpu_core_state { VPU_CORE_DEINIT = 0, VPU_CORE_ACTIVE, - VPU_CORE_SNAPSHOT, VPU_CORE_HANG }; @@ -258,6 +258,7 @@ struct vpu_format cap_format; u32 min_buffer_cap; u32 min_buffer_out; + u32 total_input_count; struct v4l2_rect crop; u32 colorspace; --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_cmds.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_cmds.c @@ -270,7 +270,7 @@ return flag; } -static int sync_session_response(struct vpu_inst *inst, unsigned long key) +static int sync_session_response(struct vpu_inst *inst, unsigned long key, long timeout, int try) { struct vpu_core *core; @@ -280,10 +280,12 @@ core = inst->core; call_void_vop(inst, wait_prepare); - wait_event_timeout(core->ack_wq, check_is_responsed(inst, key), VPU_TIMEOUT); + wait_event_timeout(core->ack_wq, check_is_responsed(inst, key), timeout); call_void_vop(inst, wait_finish); if (!check_is_responsed(inst, key)) { + if (try) + return -EINVAL; dev_err(inst->dev, "[%d] sync session timeout\n", inst->id); set_bit(inst->id, &core->hang_mask); mutex_lock(&inst->core->cmd_lock); @@ -295,6 +297,19 @@ return 0; } +static void vpu_core_keep_active(struct vpu_core *core) +{ + struct vpu_rpc_event pkt; + + memset(&pkt, 0, sizeof(pkt)); + vpu_iface_pack_cmd(core, &pkt, 0, VPU_CMD_ID_NOOP, NULL); + + dev_dbg(core->dev, "try to wake up\n"); + mutex_lock(&core->cmd_lock); + vpu_cmd_send(core, &pkt); + mutex_unlock(&core->cmd_lock); +} + static int vpu_session_send_cmd(struct vpu_inst *inst, u32 id, void *data) { unsigned long key; @@ -305,9 +320,25 @@ return -EINVAL; ret = vpu_request_cmd(inst, id, data, &key, &sync); - if (!ret && sync) - ret = sync_session_response(inst, key); + if (ret) + goto exit; + + /* workaround for a firmware issue, + * firmware should be waked up by start or configure command, + * but there is a very small change that firmware failed to wakeup. + * in such case, try to wakeup firmware again by sending a noop command + */ + if (sync && (id == VPU_CMD_ID_CONFIGURE_CODEC || id == VPU_CMD_ID_START)) { + if (sync_session_response(inst, key, VPU_TIMEOUT_WAKEUP, 1)) + vpu_core_keep_active(inst->core); + else + goto exit; + } + + if (sync) + ret = sync_session_response(inst, key, VPU_TIMEOUT, 0); +exit: if (ret) dev_err(inst->dev, "[%d] send cmd(0x%x) fail\n", inst->id, id); --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_core.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_core.c @@ -89,7 +89,7 @@ core->supported_instance_count = min(core->supported_instance_count, count); } core->fw_version = fw_version; - core->state = VPU_CORE_ACTIVE; + vpu_core_set_state(core, VPU_CORE_ACTIVE); return 0; } @@ -172,10 +172,26 @@ return __vpu_alloc_dma(core->dev, buf); } -static void vpu_core_check_hang(struct vpu_core *core) +void vpu_core_set_state(struct vpu_core *core, enum vpu_core_state state) { - if (core->hang_mask) - core->state = VPU_CORE_HANG; + if (state != core->state) + vpu_trace(core->dev, "vpu core state change from %d to %d\n", core->state, state); + core->state = state; + if (core->state == VPU_CORE_DEINIT) + core->hang_mask = 0; +} + +static void vpu_core_update_state(struct vpu_core *core) +{ + if (!vpu_iface_get_power_state(core)) { + if (core->request_count) + vpu_core_set_state(core, VPU_CORE_HANG); + else + vpu_core_set_state(core, VPU_CORE_DEINIT); + + } else if (core->state == VPU_CORE_ACTIVE && core->hang_mask) { + vpu_core_set_state(core, VPU_CORE_HANG); + } } static struct vpu_core *vpu_core_find_proper_by_type(struct vpu_dev *vpu, u32 type) @@ -188,11 +204,13 @@ dev_dbg(c->dev, "instance_mask = 0x%lx, state = %d\n", c->instance_mask, c->state); if (c->type != type) continue; + mutex_lock(&c->lock); + vpu_core_update_state(c); + mutex_unlock(&c->lock); if (c->state == VPU_CORE_DEINIT) { core = c; break; } - vpu_core_check_hang(c); if (c->state != VPU_CORE_ACTIVE) continue; if (c->request_count < request_count) { @@ -412,6 +430,12 @@ } mutex_lock(&core->lock); + if (core->state != VPU_CORE_ACTIVE) { + dev_err(core->dev, "vpu core is not active, state = %d\n", core->state); + ret = -EINVAL; + goto exit; + } + if (inst->id >= 0 && inst->id < core->supported_instance_count) goto exit; @@ -453,11 +477,16 @@ vpu_core_release_instance(core, inst->id); inst->id = VPU_INST_NULL_ID; } - vpu_core_check_hang(core); + vpu_core_update_state(core); if (core->state == VPU_CORE_HANG && !core->instance_mask) { + int err; + dev_info(core->dev, "reset hang core\n"); - if (!vpu_core_sw_reset(core)) { - core->state = VPU_CORE_ACTIVE; + mutex_unlock(&core->lock); + err = vpu_core_sw_reset(core); + mutex_lock(&core->lock); + if (!err) { + vpu_core_set_state(core, VPU_CORE_ACTIVE); core->hang_mask = 0; } } @@ -607,7 +636,7 @@ mutex_init(&core->cmd_lock); init_completion(&core->cmp); init_waitqueue_head(&core->ack_wq); - core->state = VPU_CORE_DEINIT; + vpu_core_set_state(core, VPU_CORE_DEINIT); core->res = of_device_get_match_data(dev); if (!core->res) @@ -756,33 +785,18 @@ mutex_lock(&core->lock); pm_runtime_resume_and_get(dev); vpu_core_get_vpu(core); - if (core->state != VPU_CORE_SNAPSHOT) - goto exit; - if (!vpu_iface_get_power_state(core)) { - if (!list_empty(&core->instances)) { + if (core->request_count) { + if (!vpu_iface_get_power_state(core)) ret = vpu_core_boot(core, false); - if (ret) { - dev_err(core->dev, "%s boot fail\n", __func__); - core->state = VPU_CORE_DEINIT; - goto exit; - } - } else { - core->state = VPU_CORE_DEINIT; - } - } else { - if (!list_empty(&core->instances)) { + else ret = vpu_core_sw_reset(core); - if (ret) { - dev_err(core->dev, "%s sw_reset fail\n", __func__); - core->state = VPU_CORE_HANG; - goto exit; - } + if (ret) { + dev_err(core->dev, "resume fail\n"); + vpu_core_set_state(core, VPU_CORE_HANG); } - core->state = VPU_CORE_ACTIVE; } - -exit: + vpu_core_update_state(core); pm_runtime_put_sync(dev); mutex_unlock(&core->lock); @@ -796,18 +810,11 @@ int ret = 0; mutex_lock(&core->lock); - if (core->state == VPU_CORE_ACTIVE) { - if (!list_empty(&core->instances)) { - ret = vpu_core_snapshot(core); - if (ret) { - mutex_unlock(&core->lock); - return ret; - } - } - - core->state = VPU_CORE_SNAPSHOT; - } + if (core->request_count) + ret = vpu_core_snapshot(core); mutex_unlock(&core->lock); + if (ret) + return ret; vpu_core_cancel_work(core); --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_core.h +++ linux-5.19.0/drivers/media/platform/amphion/vpu_core.h @@ -11,5 +11,6 @@ int vpu_alloc_dma(struct vpu_core *core, struct vpu_buffer *buf); void vpu_free_dma(struct vpu_buffer *buf); struct vpu_inst *vpu_core_find_instance(struct vpu_core *core, u32 index); +void vpu_core_set_state(struct vpu_core *core, enum vpu_core_state state); #endif --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_dbg.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_dbg.c @@ -15,6 +15,7 @@ #include #include "vpu.h" #include "vpu_defs.h" +#include "vpu_core.h" #include "vpu_helpers.h" #include "vpu_cmds.h" #include "vpu_rpc.h" @@ -233,6 +234,10 @@ if (seq_write(s, str, num)) return 0; + num = scnprintf(str, sizeof(str), "power %s\n", + vpu_iface_get_power_state(core) ? "on" : "off"); + if (seq_write(s, str, num)) + return 0; num = scnprintf(str, sizeof(str), "state = %d\n", core->state); if (seq_write(s, str, num)) return 0; @@ -346,10 +351,10 @@ pm_runtime_resume_and_get(core->dev); mutex_lock(&core->lock); - if (core->state != VPU_CORE_DEINIT && !core->instance_mask) { + if (vpu_iface_get_power_state(core) && !core->request_count) { dev_info(core->dev, "reset\n"); if (!vpu_core_sw_reset(core)) { - core->state = VPU_CORE_ACTIVE; + vpu_core_set_state(core, VPU_CORE_ACTIVE); core->hang_mask = 0; } } --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_drv.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_drv.c @@ -245,7 +245,11 @@ if (ret) return ret; - return vpu_core_driver_init(); + ret = vpu_core_driver_init(); + if (ret) + platform_driver_unregister(&hion_vpu_driver); + + return ret; } static void __exit vpu_driver_exit(void) --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_malone.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_malone.c @@ -610,6 +610,8 @@ enum vpu_malone_format malone_format; malone_format = vpu_malone_format_remap(params->codec_format); + if (WARN_ON(malone_format == MALONE_FMT_NULL)) + return -EINVAL; iface->udata_buffer[instance].base = params->udata.base; iface->udata_buffer[instance].slot_size = params->udata.size; @@ -674,6 +676,7 @@ } static struct vpu_pair malone_cmds[] = { + {VPU_CMD_ID_NOOP, VID_API_CMD_NULL}, {VPU_CMD_ID_START, VID_API_CMD_START}, {VPU_CMD_ID_STOP, VID_API_CMD_STOP}, {VPU_CMD_ID_ABORT, VID_API_CMD_ABORT}, @@ -1275,7 +1278,7 @@ vbuf = to_vb2_v4l2_buffer(scode->vb); data = vb2_plane_vaddr(scode->vb, 0); - if (vbuf->sequence == 0 || vpu_vb_is_codecconfig(vbuf)) + if (scode->inst->total_input_count == 0 || vpu_vb_is_codecconfig(vbuf)) return 0; if (MALONE_VC1_CONTAIN_NAL(*data)) return 0; @@ -1296,6 +1299,8 @@ int size = 0; u8 rcv_seqhdr[MALONE_VC1_RCV_SEQ_HEADER_LEN]; + if (scode->inst->total_input_count) + return 0; scode->need_data = 0; ret = vpu_malone_insert_scode_seq(scode, MALONE_CODEC_ID_VC1_SIMPLE, sizeof(rcv_seqhdr)); --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_msgs.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_msgs.c @@ -43,6 +43,7 @@ req_data.ref_frame_num, req_data.act_buf_size, req_data.act_buf_num); + vpu_inst_lock(inst); call_void_vop(inst, mem_request, req_data.enc_frame_size, req_data.enc_frame_num, @@ -50,6 +51,7 @@ req_data.ref_frame_num, req_data.act_buf_size, req_data.act_buf_num); + vpu_inst_unlock(inst); } static void vpu_session_handle_stop_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt) @@ -150,7 +152,12 @@ static void vpu_session_handle_error(struct vpu_inst *inst, struct vpu_rpc_event *pkt) { - dev_err(inst->dev, "unsupported stream\n"); + char *str = (char *)pkt->data; + + if (strlen(str)) + dev_err(inst->dev, "instance %d firmware error : %s\n", inst->id, str); + else + dev_err(inst->dev, "instance %d is unsupported stream\n", inst->id); call_void_vop(inst, event_notify, VPU_MSG_ID_UNSUPPORTED, NULL); vpu_v4l2_set_error(inst); } --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_rpc.h +++ linux-5.19.0/drivers/media/platform/amphion/vpu_rpc.h @@ -312,11 +312,16 @@ struct vb2_buffer *vb) { struct vpu_iface_ops *ops = vpu_core_get_iface(inst->core); + int ret; if (!ops || !ops->input_frame) return -EINVAL; - return ops->input_frame(inst->core->iface, inst, vb); + ret = ops->input_frame(inst->core->iface, inst, vb); + if (ret < 0) + return ret; + inst->total_input_count++; + return ret; } static inline int vpu_iface_config_memory_resource(struct vpu_inst *inst, --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_v4l2.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_v4l2.c @@ -65,18 +65,11 @@ void vpu_v4l2_set_error(struct vpu_inst *inst) { - struct vb2_queue *src_q; - struct vb2_queue *dst_q; - vpu_inst_lock(inst); dev_err(inst->dev, "some error occurs in codec\n"); if (inst->fh.m2m_ctx) { - src_q = v4l2_m2m_get_src_vq(inst->fh.m2m_ctx); - dst_q = v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx); - src_q->error = 1; - dst_q->error = 1; - wake_up(&src_q->done_wq); - wake_up(&dst_q->done_wq); + vb2_queue_error(v4l2_m2m_get_src_vq(inst->fh.m2m_ctx)); + vb2_queue_error(v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx)); } vpu_inst_unlock(inst); } @@ -249,8 +242,12 @@ struct vb2_v4l2_buffer *vpu_next_src_buf(struct vpu_inst *inst) { - struct vb2_v4l2_buffer *src_buf = v4l2_m2m_next_src_buf(inst->fh.m2m_ctx); + struct vb2_v4l2_buffer *src_buf = NULL; + + if (!inst->fh.m2m_ctx) + return NULL; + src_buf = v4l2_m2m_next_src_buf(inst->fh.m2m_ctx); if (!src_buf || vpu_get_buffer_state(src_buf) == VPU_BUF_STATE_IDLE) return NULL; @@ -273,7 +270,7 @@ enum vb2_buffer_state state; int i = 0; - if (count <= 0) + if (count <= 0 || !inst->fh.m2m_ctx) return; while (i < count) { @@ -500,10 +497,12 @@ fmt->sizeimage[1], fmt->bytesperline[1], fmt->sizeimage[2], fmt->bytesperline[2], q->num_buffers); - call_void_vop(inst, start, q->type); vb2_clear_last_buffer_dequeued(q); + ret = call_vop(inst, start, q->type); + if (ret) + vpu_vb2_buffers_return(inst, q->type, VB2_BUF_STATE_QUEUED); - return 0; + return ret; } static void vpu_vb2_stop_streaming(struct vb2_queue *q) --- linux-5.19.0.orig/drivers/media/platform/amphion/vpu_windsor.c +++ linux-5.19.0/drivers/media/platform/amphion/vpu_windsor.c @@ -658,6 +658,7 @@ } static struct vpu_pair windsor_cmds[] = { + {VPU_CMD_ID_NOOP, GTB_ENC_CMD_NOOP}, {VPU_CMD_ID_CONFIGURE_CODEC, GTB_ENC_CMD_CONFIGURE_CODEC}, {VPU_CMD_ID_START, GTB_ENC_CMD_STREAM_START}, {VPU_CMD_ID_STOP, GTB_ENC_CMD_STREAM_STOP}, --- linux-5.19.0.orig/drivers/media/platform/atmel/atmel-sama7g5-isc.c +++ linux-5.19.0/drivers/media/platform/atmel/atmel-sama7g5-isc.c @@ -591,11 +591,13 @@ SET_RUNTIME_PM_OPS(xisc_runtime_suspend, xisc_runtime_resume, NULL) }; +#if IS_ENABLED(CONFIG_OF) static const struct of_device_id microchip_xisc_of_match[] = { { .compatible = "microchip,sama7g5-isc" }, { } }; MODULE_DEVICE_TABLE(of, microchip_xisc_of_match); +#endif static struct platform_driver microchip_xisc_driver = { .probe = microchip_xisc_probe, --- linux-5.19.0.orig/drivers/media/platform/chips-media/coda-bit.c +++ linux-5.19.0/drivers/media/platform/chips-media/coda-bit.c @@ -854,7 +854,7 @@ /* Only H.264BP and H.263P3 are considered */ iram_info->buf_dbk_y_use = coda_iram_alloc(iram_info, w64); iram_info->buf_dbk_c_use = coda_iram_alloc(iram_info, w64); - if (!iram_info->buf_dbk_c_use) + if (!iram_info->buf_dbk_y_use || !iram_info->buf_dbk_c_use) goto out; iram_info->axi_sram_use |= dbk_bits; @@ -878,7 +878,7 @@ iram_info->buf_dbk_y_use = coda_iram_alloc(iram_info, w128); iram_info->buf_dbk_c_use = coda_iram_alloc(iram_info, w128); - if (!iram_info->buf_dbk_c_use) + if (!iram_info->buf_dbk_y_use || !iram_info->buf_dbk_c_use) goto out; iram_info->axi_sram_use |= dbk_bits; @@ -1084,10 +1084,16 @@ } if (dst_fourcc == V4L2_PIX_FMT_JPEG) { - if (!ctx->params.jpeg_qmat_tab[0]) + if (!ctx->params.jpeg_qmat_tab[0]) { ctx->params.jpeg_qmat_tab[0] = kmalloc(64, GFP_KERNEL); - if (!ctx->params.jpeg_qmat_tab[1]) + if (!ctx->params.jpeg_qmat_tab[0]) + return -ENOMEM; + } + if (!ctx->params.jpeg_qmat_tab[1]) { ctx->params.jpeg_qmat_tab[1] = kmalloc(64, GFP_KERNEL); + if (!ctx->params.jpeg_qmat_tab[1]) + return -ENOMEM; + } coda_set_jpeg_compression_quality(ctx, ctx->params.jpeg_quality); } --- linux-5.19.0.orig/drivers/media/platform/chips-media/coda-jpeg.c +++ linux-5.19.0/drivers/media/platform/chips-media/coda-jpeg.c @@ -1053,10 +1053,16 @@ v4l2_err(&dev->v4l2_dev, "error loading Huffman tables\n"); return ret; } - if (!ctx->params.jpeg_qmat_tab[0]) + if (!ctx->params.jpeg_qmat_tab[0]) { ctx->params.jpeg_qmat_tab[0] = kmalloc(64, GFP_KERNEL); - if (!ctx->params.jpeg_qmat_tab[1]) + if (!ctx->params.jpeg_qmat_tab[0]) + return -ENOMEM; + } + if (!ctx->params.jpeg_qmat_tab[1]) { ctx->params.jpeg_qmat_tab[1] = kmalloc(64, GFP_KERNEL); + if (!ctx->params.jpeg_qmat_tab[1]) + return -ENOMEM; + } coda_set_jpeg_compression_quality(ctx, ctx->params.jpeg_quality); return 0; --- linux-5.19.0.orig/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c +++ linux-5.19.0/drivers/media/platform/mediatek/jpeg/mtk_jpeg_core.c @@ -1411,7 +1411,6 @@ pm_runtime_disable(&pdev->dev); video_unregister_device(jpeg->vdev); - video_device_release(jpeg->vdev); v4l2_m2m_release(jpeg->m2m_dev); v4l2_device_unregister(&jpeg->v4l2_dev); --- linux-5.19.0.orig/drivers/media/platform/mediatek/mdp/mtk_mdp_ipi.h +++ linux-5.19.0/drivers/media/platform/mediatek/mdp/mtk_mdp_ipi.h @@ -40,12 +40,14 @@ * @ipi_id : IPI_MDP * @ap_inst : AP mtk_mdp_vpu address * @vpu_inst_addr : VPU MDP instance address + * @padding : Alignment padding */ struct mdp_ipi_comm { uint32_t msg_id; uint32_t ipi_id; uint64_t ap_inst; uint32_t vpu_inst_addr; + uint32_t padding; }; /** --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c @@ -112,8 +112,6 @@ { struct mtk_q_data *q_data; - ctx->dev->vdec_pdata->init_vdec_params(ctx); - ctx->m2m_ctx->q_lock = &ctx->dev->dev_mutex; ctx->fh.m2m_ctx = ctx->m2m_ctx; ctx->fh.ctrl_handler = &ctx->ctrl_hdl; @@ -141,15 +139,6 @@ q_data->coded_height = DFT_CFG_HEIGHT; q_data->fmt = ctx->dev->vdec_pdata->default_cap_fmt; q_data->field = V4L2_FIELD_NONE; - ctx->max_width = MTK_VDEC_MAX_W; - ctx->max_height = MTK_VDEC_MAX_H; - - v4l_bound_align_image(&q_data->coded_width, - MTK_VDEC_MIN_W, - ctx->max_width, 4, - &q_data->coded_height, - MTK_VDEC_MIN_H, - ctx->max_height, 5, 6); q_data->sizeimage[0] = q_data->coded_width * q_data->coded_height; q_data->bytesperline[0] = q_data->coded_width; @@ -198,6 +187,11 @@ static int vidioc_vdec_subscribe_evt(struct v4l2_fh *fh, const struct v4l2_event_subscription *sub) { + struct mtk_vcodec_ctx *ctx = fh_to_ctx(fh); + + if (ctx->dev->vdec_pdata->uses_stateless_api) + return v4l2_ctrl_subscribe_event(fh, sub); + switch (sub->type) { case V4L2_EVENT_EOS: return v4l2_event_subscribe(fh, sub, 2, NULL); @@ -208,17 +202,44 @@ } } +static const struct v4l2_frmsize_stepwise *mtk_vdec_get_frmsize(struct mtk_vcodec_ctx *ctx, + u32 pixfmt) +{ + const struct mtk_vcodec_dec_pdata *dec_pdata = ctx->dev->vdec_pdata; + int i; + + for (i = 0; i < *dec_pdata->num_framesizes; ++i) + if (pixfmt == dec_pdata->vdec_framesizes[i].fourcc) + return &dec_pdata->vdec_framesizes[i].stepwise; + + /* + * This should never happen since vidioc_try_fmt_vid_out_mplane() + * always passes through a valid format for the output side, and + * for the capture side, a valid output format should already have + * been set. + */ + WARN_ONCE(1, "Unsupported format requested.\n"); + return &dec_pdata->vdec_framesizes[0].stepwise; +} + static int vidioc_try_fmt(struct mtk_vcodec_ctx *ctx, struct v4l2_format *f, const struct mtk_video_fmt *fmt) { struct v4l2_pix_format_mplane *pix_fmt_mp = &f->fmt.pix_mp; + const struct v4l2_frmsize_stepwise *frmsize; + u32 fourcc; pix_fmt_mp->field = V4L2_FIELD_NONE; - pix_fmt_mp->width = - clamp(pix_fmt_mp->width, MTK_VDEC_MIN_W, ctx->max_width); - pix_fmt_mp->height = - clamp(pix_fmt_mp->height, MTK_VDEC_MIN_H, ctx->max_height); + /* Always apply frame size constraints from the coded side */ + if (V4L2_TYPE_IS_OUTPUT(f->type)) + fourcc = f->fmt.pix_mp.pixelformat; + else + fourcc = ctx->q_data[MTK_Q_DATA_SRC].fmt->fourcc; + + frmsize = mtk_vdec_get_frmsize(ctx, fourcc); + pix_fmt_mp->width = clamp(pix_fmt_mp->width, MTK_VDEC_MIN_W, frmsize->max_width); + pix_fmt_mp->height = clamp(pix_fmt_mp->height, MTK_VDEC_MIN_H, frmsize->max_height); if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { pix_fmt_mp->num_planes = 1; @@ -234,18 +255,15 @@ */ tmp_w = pix_fmt_mp->width; tmp_h = pix_fmt_mp->height; - v4l_bound_align_image(&pix_fmt_mp->width, - MTK_VDEC_MIN_W, - ctx->max_width, 6, - &pix_fmt_mp->height, - MTK_VDEC_MIN_H, - ctx->max_height, 6, 9); + v4l_bound_align_image(&pix_fmt_mp->width, MTK_VDEC_MIN_W, frmsize->max_width, 6, + &pix_fmt_mp->height, MTK_VDEC_MIN_H, frmsize->max_height, 6, + 9); if (pix_fmt_mp->width < tmp_w && - (pix_fmt_mp->width + 64) <= ctx->max_width) + (pix_fmt_mp->width + 64) <= frmsize->max_width) pix_fmt_mp->width += 64; if (pix_fmt_mp->height < tmp_h && - (pix_fmt_mp->height + 64) <= ctx->max_height) + (pix_fmt_mp->height + 64) <= frmsize->max_height) pix_fmt_mp->height += 64; mtk_v4l2_debug(0, @@ -435,13 +453,6 @@ if (fmt == NULL) return -EINVAL; - if (!(ctx->dev->dec_capability & VCODEC_CAPABILITY_4K_DISABLED) && - fmt->fourcc != V4L2_PIX_FMT_VP8_FRAME) { - mtk_v4l2_debug(3, "4K is enabled"); - ctx->max_width = VCODEC_DEC_4K_CODED_WIDTH; - ctx->max_height = VCODEC_DEC_4K_CODED_HEIGHT; - } - q_data->fmt = fmt; vidioc_try_fmt(ctx, f, q_data->fmt); if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { @@ -533,8 +544,6 @@ fsize->type = V4L2_FRMSIZE_TYPE_STEPWISE; fsize->stepwise = dec_pdata->vdec_framesizes[i].stepwise; - fsize->stepwise.max_width = ctx->max_width; - fsize->stepwise.max_height = ctx->max_height; mtk_v4l2_debug(1, "%x, %d %d %d %d %d %d", ctx->dev->dec_capability, fsize->stepwise.min_width, --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_drv.c @@ -208,9 +208,12 @@ dev->dec_capability = mtk_vcodec_fw_get_vdec_capa(dev->fw_handler); + mtk_v4l2_debug(0, "decoder capability %x", dev->dec_capability); } + ctx->dev->vdec_pdata->init_vdec_params(ctx); + list_add(&ctx->list, &dev->ctx_list); mutex_unlock(&dev->dev_mutex); @@ -386,6 +389,8 @@ mtk_v4l2_err("Main device of_platform_populate failed."); goto err_reg_cont; } + } else { + set_bit(MTK_VDEC_CORE, dev->subdev_bitmap); } ret = video_register_device(vfd_dec, VFL_TYPE_VIDEO, -1); --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec_stateless.c @@ -140,10 +140,13 @@ state = VB2_BUF_STATE_DONE; vb2_dst = v4l2_m2m_dst_buf_remove(ctx->m2m_ctx); - v4l2_m2m_buf_done(vb2_dst, state); - - mtk_v4l2_debug(2, "free frame buffer id:%d to done list", - vb2_dst->vb2_buf.index); + if (vb2_dst) { + v4l2_m2m_buf_done(vb2_dst, state); + mtk_v4l2_debug(2, "free frame buffer id:%d to done list", + vb2_dst->vb2_buf.index); + } else { + mtk_v4l2_err("dst buffer is NULL"); + } if (src_buf_req) v4l2_ctrl_request_complete(src_buf_req, &ctx->ctrl_hdl); @@ -360,6 +363,13 @@ mtk_vdec_framesizes[count_framesizes].fourcc = fourcc; mtk_vdec_framesizes[count_framesizes].stepwise = stepwise_fhd; + if (!(ctx->dev->dec_capability & VCODEC_CAPABILITY_4K_DISABLED) && + fourcc != V4L2_PIX_FMT_VP8_FRAME) { + mtk_vdec_framesizes[count_framesizes].stepwise.max_width = + VCODEC_DEC_4K_CODED_WIDTH; + mtk_vdec_framesizes[count_framesizes].stepwise.max_height = + VCODEC_DEC_4K_CODED_HEIGHT; + } num_framesizes++; break; case V4L2_PIX_FMT_MM21: --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/mtk_vcodec_drv.h @@ -285,8 +285,6 @@ * mtk_video_dec_buf. * @hw_id: hardware index used to identify different hardware. * - * @max_width: hardware supported max width - * @max_height: hardware supported max height * @msg_queue: msg queue used to store lat buffer information. */ struct mtk_vcodec_ctx { @@ -333,8 +331,6 @@ struct mutex lock; int hw_id; - unsigned int max_width; - unsigned int max_height; struct vdec_msg_queue msg_queue; }; --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc_drv.c @@ -228,7 +228,6 @@ { struct mtk_vcodec_dev *dev; struct video_device *vfd_enc; - struct resource *res; phandle rproc_phandle; enum mtk_vcodec_fw_type fw_type; int ret; @@ -272,14 +271,12 @@ goto err_res; } - res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); - if (res == NULL) { - dev_err(&pdev->dev, "failed to get irq resource"); - ret = -ENOENT; + dev->enc_irq = platform_get_irq(pdev, 0); + if (dev->enc_irq < 0) { + ret = dev->enc_irq; goto err_res; } - dev->enc_irq = platform_get_irq(pdev, 0); irq_set_status_flags(dev->enc_irq, IRQ_NOAUTOEN); ret = devm_request_irq(&pdev->dev, dev->enc_irq, mtk_vcodec_enc_irq_handler, --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/vdec/vdec_h264_req_multi_if.c @@ -471,14 +471,19 @@ sizeof(share_info->h264_slice_params)); fb = ctx->dev->vdec_pdata->get_cap_buffer(ctx); - y_fb_dma = fb ? (u64)fb->base_y.dma_addr : 0; - vdec_fb_va = (unsigned long)fb; + if (!fb) { + err = -EBUSY; + mtk_vcodec_err(inst, "fb buffer is NULL"); + goto vdec_dec_end; + } + vdec_fb_va = (unsigned long)fb; + y_fb_dma = (u64)fb->base_y.dma_addr; if (ctx->q_data[MTK_Q_DATA_DST].fmt->num_planes == 1) c_fb_dma = y_fb_dma + inst->ctx->picinfo.buf_w * inst->ctx->picinfo.buf_h; else - c_fb_dma = fb ? (u64)fb->base_c.dma_addr : 0; + c_fb_dma = (u64)fb->base_c.dma_addr; mtk_vcodec_debug(inst, "[h264-core] y/c addr = 0x%llx 0x%llx", y_fb_dma, c_fb_dma); @@ -539,6 +544,29 @@ return 0; } +static void vdec_h264_insert_startcode(struct mtk_vcodec_dev *vcodec_dev, unsigned char *buf, + size_t *bs_size, struct mtk_h264_pps_param *pps) +{ + struct device *dev = &vcodec_dev->plat_dev->dev; + + /* Need to add pending data at the end of bitstream when bs_sz is small than + * 20 bytes for cavlc bitstream, or lat will decode fail. This pending data is + * useful for mt8192 and mt8195 platform. + * + * cavlc bitstream when entropy_coding_mode_flag is false. + */ + if (pps->entropy_coding_mode_flag || *bs_size > 20 || + !(of_device_is_compatible(dev->of_node, "mediatek,mt8192-vcodec-dec") || + of_device_is_compatible(dev->of_node, "mediatek,mt8195-vcodec-dec"))) + return; + + buf[*bs_size] = 0; + buf[*bs_size + 1] = 0; + buf[*bs_size + 2] = 1; + buf[*bs_size + 3] = 0xff; + (*bs_size) += 4; +} + static int vdec_h264_slice_lat_decode(void *h_vdec, struct mtk_vcodec_mem *bs, struct vdec_fb *fb, bool *res_chg) { @@ -582,9 +610,6 @@ } inst->vsi->dec.nal_info = buf[nal_start_idx]; - inst->vsi->dec.bs_buf_addr = (u64)bs->dma_addr; - inst->vsi->dec.bs_buf_size = bs->size; - lat_buf->src_buf_req = src_buf_info->m2m_buf.vb.vb2_buf.req_obj.req; v4l2_m2m_buf_copy_metadata(&src_buf_info->m2m_buf.vb, &lat_buf->ts_info, true); @@ -592,6 +617,12 @@ if (err) goto err_free_fb_out; + vdec_h264_insert_startcode(inst->ctx->dev, buf, &bs->size, + &share_info->h264_slice_params.pps); + + inst->vsi->dec.bs_buf_addr = (uint64_t)bs->dma_addr; + inst->vsi->dec.bs_buf_size = bs->size; + *res_chg = inst->resolution_changed; if (inst->resolution_changed) { mtk_vcodec_debug(inst, "- resolution changed -"); @@ -630,18 +661,23 @@ err = vpu_dec_start(vpu, data, 2); if (err) { mtk_vcodec_debug(inst, "lat decode err: %d", err); - goto err_scp_decode; + goto err_free_fb_out; } /* wait decoder done interrupt */ timeout = mtk_vcodec_wait_for_done_ctx(inst->ctx, MTK_INST_IRQ_RECEIVED, WAIT_INTR_TIMEOUT_MS, MTK_VDEC_LAT0); + if (timeout) + mtk_vcodec_err(inst, "lat decode timeout: pic_%d", inst->slice_dec_num); inst->vsi->dec.timeout = !!timeout; err = vpu_dec_end(vpu); - if (err == SLICE_HEADER_FULL || timeout || err == TRANS_BUFFER_FULL) { - err = -EINVAL; - goto err_scp_decode; + if (err == SLICE_HEADER_FULL || err == TRANS_BUFFER_FULL) { + if (!IS_VDEC_INNER_RACING(inst->ctx->dev->dec_capability)) + vdec_msg_queue_qbuf(&inst->ctx->msg_queue.lat_ctx, lat_buf); + inst->slice_dec_num++; + mtk_vcodec_err(inst, "lat dec fail: pic_%d err:%d", inst->slice_dec_num, err); + return -EINVAL; } share_info->trans_end = inst->ctx->msg_queue.wdma_addr.dma_addr + @@ -657,7 +693,6 @@ inst->slice_dec_num++; return 0; -err_scp_decode: err_free_fb_out: vdec_msg_queue_qbuf(&inst->ctx->msg_queue.lat_ctx, lat_buf); mtk_vcodec_err(inst, "slice dec number: %d err: %d", inst->slice_dec_num, err); --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/vdec/vdec_vp9_req_lat_if.c @@ -1897,21 +1897,23 @@ return -EBUSY; } pfc = (struct vdec_vp9_slice_pfc *)lat_buf->private_data; - if (!pfc) - return -EINVAL; + if (!pfc) { + ret = -EINVAL; + goto err_free_fb_out; + } vsi = &pfc->vsi; ret = vdec_vp9_slice_setup_lat(instance, bs, lat_buf, pfc); if (ret) { mtk_vcodec_err(instance, "Failed to setup VP9 lat ret %d\n", ret); - return ret; + goto err_free_fb_out; } vdec_vp9_slice_vsi_to_remote(vsi, instance->vsi); ret = vpu_dec_start(&instance->vpu, NULL, 0); if (ret) { mtk_vcodec_err(instance, "Failed to dec VP9 ret %d\n", ret); - return ret; + goto err_free_fb_out; } if (instance->irq) { @@ -1931,7 +1933,7 @@ /* LAT trans full, no more UBE or decode timeout */ if (ret) { mtk_vcodec_err(instance, "VP9 decode error: %d\n", ret); - return ret; + goto err_free_fb_out; } mtk_vcodec_debug(instance, "lat dma addr: 0x%lx 0x%lx\n", @@ -1944,6 +1946,9 @@ vdec_msg_queue_qbuf(&ctx->dev->msg_queue_core_ctx, lat_buf); return 0; +err_free_fb_out: + vdec_msg_queue_qbuf(&ctx->msg_queue.lat_ctx, lat_buf); + return ret; } static int vdec_vp9_slice_core_decode(struct vdec_lat_buf *lat_buf) --- linux-5.19.0.orig/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c +++ linux-5.19.0/drivers/media/platform/mediatek/vcodec/vdec_msg_queue.c @@ -221,7 +221,7 @@ mtk_vcodec_dec_disable_hardware(ctx, MTK_VDEC_CORE); vdec_msg_queue_qbuf(&ctx->msg_queue.lat_ctx, lat_buf); - if (!list_empty(&ctx->msg_queue.lat_ctx.ready_queue)) { + if (!list_empty(&dev->msg_queue_core_ctx.ready_queue)) { mtk_v4l2_debug(3, "re-schedule to decode for core: %d", dev->msg_queue_core_ctx.ready_num); queue_work(dev->core_workqueue, &msg_queue->core_work); --- linux-5.19.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c +++ linux-5.19.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.c @@ -76,7 +76,14 @@ void mxc_jpeg_enable_irq(void __iomem *reg, int slot) { - writel(0xFFFFFFFF, reg + MXC_SLOT_OFFSET(slot, SLOT_IRQ_EN)); + writel(0xFFFFFFFF, reg + MXC_SLOT_OFFSET(slot, SLOT_STATUS)); + writel(0xF0C, reg + MXC_SLOT_OFFSET(slot, SLOT_IRQ_EN)); +} + +void mxc_jpeg_disable_irq(void __iomem *reg, int slot) +{ + writel(0x0, reg + MXC_SLOT_OFFSET(slot, SLOT_IRQ_EN)); + writel(0xFFFFFFFF, reg + MXC_SLOT_OFFSET(slot, SLOT_STATUS)); } void mxc_jpeg_sw_reset(void __iomem *reg) --- linux-5.19.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h +++ linux-5.19.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg-hw.h @@ -53,10 +53,10 @@ #define CAST_REC_REGS_SEL CAST_STATUS4 #define CAST_LUMTH CAST_STATUS5 #define CAST_CHRTH CAST_STATUS6 -#define CAST_NOMFRSIZE_LO CAST_STATUS7 -#define CAST_NOMFRSIZE_HI CAST_STATUS8 -#define CAST_OFBSIZE_LO CAST_STATUS9 -#define CAST_OFBSIZE_HI CAST_STATUS10 +#define CAST_NOMFRSIZE_LO CAST_STATUS16 +#define CAST_NOMFRSIZE_HI CAST_STATUS17 +#define CAST_OFBSIZE_LO CAST_STATUS18 +#define CAST_OFBSIZE_HI CAST_STATUS19 #define MXC_MAX_SLOTS 1 /* TODO use all 4 slots*/ /* JPEG-Decoder Wrapper Slot Registers 0..3 */ @@ -125,6 +125,7 @@ void mxc_jpeg_enable_slot(void __iomem *reg, int slot); void mxc_jpeg_set_l_endian(void __iomem *reg, int le); void mxc_jpeg_enable_irq(void __iomem *reg, int slot); +void mxc_jpeg_disable_irq(void __iomem *reg, int slot); int mxc_jpeg_set_input(void __iomem *reg, u32 in_buf, u32 bufsize); int mxc_jpeg_set_output(void __iomem *reg, u16 out_pitch, u32 out_buf, u16 w, u16 h); --- linux-5.19.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c +++ linux-5.19.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.c @@ -520,6 +520,7 @@ GFP_ATOMIC); if (!cfg_stm) goto err; + memset(cfg_stm, 0, MXC_JPEG_MAX_CFG_STREAM); jpeg->slot_data[slot].cfg_stream_vaddr = cfg_stm; skip_alloc: @@ -558,6 +559,18 @@ jpeg->slot_data[slot].used = false; } +static void mxc_jpeg_check_and_set_last_buffer(struct mxc_jpeg_ctx *ctx, + struct vb2_v4l2_buffer *src_buf, + struct vb2_v4l2_buffer *dst_buf) +{ + if (v4l2_m2m_is_last_draining_src_buf(ctx->fh.m2m_ctx, src_buf)) { + dst_buf->flags |= V4L2_BUF_FLAG_LAST; + v4l2_m2m_mark_stopped(ctx->fh.m2m_ctx); + notify_eos(ctx); + ctx->header_parsed = false; + } +} + static irqreturn_t mxc_jpeg_dec_irq(int irq, void *priv) { struct mxc_jpeg_dev *jpeg = priv; @@ -580,15 +593,8 @@ dev_dbg(dev, "Irq %d on slot %d.\n", irq, slot); ctx = v4l2_m2m_get_curr_priv(jpeg->m2m_dev); - if (!ctx) { - dev_err(dev, - "Instance released before the end of transaction.\n"); - /* soft reset only resets internal state, not registers */ - mxc_jpeg_sw_reset(reg); - /* clear all interrupts */ - writel(0xFFFFFFFF, reg + MXC_SLOT_OFFSET(slot, SLOT_STATUS)); + if (WARN_ON(!ctx)) goto job_unlock; - } if (slot != ctx->slot) { /* TODO investigate when adding multi-instance support */ @@ -632,6 +638,7 @@ dev_dbg(dev, "Decoder DHT cfg finished. Start decoding...\n"); goto job_unlock; } + if (jpeg->mode == MXC_JPEG_ENCODE) { payload = readl(reg + MXC_SLOT_OFFSET(slot, SLOT_BUF_PTR)); vb2_set_plane_payload(&dst_buf->vb2_buf, 0, payload); @@ -659,7 +666,9 @@ buf_state = VB2_BUF_STATE_DONE; buffers_done: + mxc_jpeg_disable_irq(reg, ctx->slot); jpeg->slot_data[slot].used = false; /* unused, but don't free */ + mxc_jpeg_check_and_set_last_buffer(ctx, src_buf, dst_buf); v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_buf_done(src_buf, buf_state); @@ -755,7 +764,13 @@ u32 fourcc, u16 w, u16 h) { - unsigned int offset = 0; + /* + * There is a hardware issue that first 128 bytes of configuration data + * can't be loaded correctly. + * To avoid this issue, we need to write the configuration from + * an offset which should be no less than 0x80 (128 bytes). + */ + unsigned int offset = 0x80; u8 *cfg = (u8 *)cfg_stream_vaddr; struct mxc_jpeg_sof *sof; struct mxc_jpeg_sos *sos; @@ -887,8 +902,8 @@ jpeg->slot_data[slot].cfg_stream_size = mxc_jpeg_setup_cfg_stream(cfg_stream_vaddr, q_data->fmt->fourcc, - q_data->w_adjusted, - q_data->h_adjusted); + q_data->w, + q_data->h); /* chain the config descriptor with the encoding descriptor */ cfg_desc->next_descpt_ptr = desc_handle | MXC_NXT_DESCPT_EN; @@ -970,7 +985,7 @@ &q_data_cap->h_adjusted, q_data_cap->h_adjusted, /* adjust up */ MXC_JPEG_MAX_HEIGHT, - q_data_cap->fmt->v_align, + 0, 0); /* setup bytesperline/sizeimage for capture queue */ @@ -1027,6 +1042,7 @@ jpeg_src_buf->jpeg_parse_error = true; } if (jpeg_src_buf->jpeg_parse_error) { + mxc_jpeg_check_and_set_last_buffer(ctx, src_buf, dst_buf); v4l2_m2m_src_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_dst_buf_remove(ctx->fh.m2m_ctx); v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_ERROR); @@ -1077,45 +1093,33 @@ spin_unlock_irqrestore(&ctx->mxc_jpeg->hw_lock, flags); } -static void mxc_jpeg_set_last_buffer_dequeued(struct mxc_jpeg_ctx *ctx) -{ - struct vb2_queue *q; - - ctx->stopped = 1; - q = v4l2_m2m_get_dst_vq(ctx->fh.m2m_ctx); - if (!list_empty(&q->done_list)) - return; - - q->last_buffer_dequeued = true; - wake_up(&q->done_wq); - ctx->stopped = 0; - ctx->header_parsed = false; -} - static int mxc_jpeg_decoder_cmd(struct file *file, void *priv, struct v4l2_decoder_cmd *cmd) { struct v4l2_fh *fh = file->private_data; struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh); - struct device *dev = ctx->mxc_jpeg->dev; int ret; ret = v4l2_m2m_ioctl_try_decoder_cmd(file, fh, cmd); if (ret < 0) return ret; - if (cmd->cmd == V4L2_DEC_CMD_STOP) { - dev_dbg(dev, "Received V4L2_DEC_CMD_STOP"); - if (v4l2_m2m_num_src_bufs_ready(fh->m2m_ctx) == 0) { - /* No more src bufs, notify app EOS */ - notify_eos(ctx); - mxc_jpeg_set_last_buffer_dequeued(ctx); - } else { - /* will send EOS later*/ - ctx->stopping = 1; - } + if (!vb2_is_streaming(v4l2_m2m_get_src_vq(fh->m2m_ctx))) + return 0; + + ret = v4l2_m2m_ioctl_decoder_cmd(file, priv, cmd); + if (ret < 0) + return ret; + + if (cmd->cmd == V4L2_DEC_CMD_STOP && + v4l2_m2m_has_stopped(fh->m2m_ctx)) { + notify_eos(ctx); + ctx->header_parsed = false; } + if (cmd->cmd == V4L2_DEC_CMD_START && + v4l2_m2m_has_stopped(fh->m2m_ctx)) + vb2_clear_last_buffer_dequeued(&fh->m2m_ctx->cap_q_ctx.q); return 0; } @@ -1124,24 +1128,27 @@ { struct v4l2_fh *fh = file->private_data; struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(fh); - struct device *dev = ctx->mxc_jpeg->dev; int ret; ret = v4l2_m2m_ioctl_try_encoder_cmd(file, fh, cmd); if (ret < 0) return ret; - if (cmd->cmd == V4L2_ENC_CMD_STOP) { - dev_dbg(dev, "Received V4L2_ENC_CMD_STOP"); - if (v4l2_m2m_num_src_bufs_ready(fh->m2m_ctx) == 0) { - /* No more src bufs, notify app EOS */ - notify_eos(ctx); - mxc_jpeg_set_last_buffer_dequeued(ctx); - } else { - /* will send EOS later*/ - ctx->stopping = 1; - } - } + if (!vb2_is_streaming(v4l2_m2m_get_src_vq(fh->m2m_ctx)) || + !vb2_is_streaming(v4l2_m2m_get_dst_vq(fh->m2m_ctx))) + return 0; + + ret = v4l2_m2m_ioctl_encoder_cmd(file, fh, cmd); + if (ret < 0) + return 0; + + if (cmd->cmd == V4L2_ENC_CMD_STOP && + v4l2_m2m_has_stopped(fh->m2m_ctx)) + notify_eos(ctx); + + if (cmd->cmd == V4L2_ENC_CMD_START && + v4l2_m2m_has_stopped(fh->m2m_ctx)) + vb2_clear_last_buffer_dequeued(&fh->m2m_ctx->cap_q_ctx.q); return 0; } @@ -1154,18 +1161,30 @@ { struct mxc_jpeg_ctx *ctx = vb2_get_drv_priv(q); struct mxc_jpeg_q_data *q_data = NULL; + struct mxc_jpeg_q_data tmp_q; int i; q_data = mxc_jpeg_get_q_data(ctx, q->type); if (!q_data) return -EINVAL; + tmp_q.fmt = q_data->fmt; + tmp_q.w = q_data->w_adjusted; + tmp_q.h = q_data->h_adjusted; + for (i = 0; i < MXC_JPEG_MAX_PLANES; i++) { + tmp_q.bytesperline[i] = q_data->bytesperline[i]; + tmp_q.sizeimage[i] = q_data->sizeimage[i]; + } + mxc_jpeg_sizeimage(&tmp_q); + for (i = 0; i < MXC_JPEG_MAX_PLANES; i++) + tmp_q.sizeimage[i] = max(tmp_q.sizeimage[i], q_data->sizeimage[i]); + /* Handle CREATE_BUFS situation - *nplanes != 0 */ if (*nplanes) { if (*nplanes != q_data->fmt->colplanes) return -EINVAL; for (i = 0; i < *nplanes; i++) { - if (sizes[i] < q_data->sizeimage[i]) + if (sizes[i] < tmp_q.sizeimage[i]) return -EINVAL; } return 0; @@ -1174,7 +1193,7 @@ /* Handle REQBUFS situation */ *nplanes = q_data->fmt->colplanes; for (i = 0; i < *nplanes; i++) - sizes[i] = q_data->sizeimage[i]; + sizes[i] = tmp_q.sizeimage[i]; return 0; } @@ -1185,6 +1204,8 @@ struct mxc_jpeg_q_data *q_data = mxc_jpeg_get_q_data(ctx, q->type); int ret; + v4l2_m2m_update_start_streaming_state(ctx->fh.m2m_ctx, q); + if (ctx->mxc_jpeg->mode == MXC_JPEG_DECODE && V4L2_TYPE_IS_CAPTURE(q->type)) ctx->source_change = 0; dev_dbg(ctx->mxc_jpeg->dev, "Start streaming ctx=%p", ctx); @@ -1216,11 +1237,15 @@ break; v4l2_m2m_buf_done(vbuf, VB2_BUF_STATE_ERROR); } - pm_runtime_put_sync(&ctx->mxc_jpeg->pdev->dev); - if (V4L2_TYPE_IS_OUTPUT(q->type)) { - ctx->stopping = 0; - ctx->stopped = 0; + + v4l2_m2m_update_stop_streaming_state(ctx->fh.m2m_ctx, q); + if (V4L2_TYPE_IS_OUTPUT(q->type) && + v4l2_m2m_has_stopped(ctx->fh.m2m_ctx)) { + notify_eos(ctx); + ctx->header_parsed = false; } + + pm_runtime_put_sync(&ctx->mxc_jpeg->pdev->dev); } static int mxc_jpeg_valid_comp_id(struct device *dev, @@ -1374,11 +1399,6 @@ } q_data_out->w = header.frame.width; q_data_out->h = header.frame.height; - if (header.frame.width % 8 != 0 || header.frame.height % 8 != 0) { - dev_err(dev, "JPEG width or height not multiple of 8: %dx%d\n", - header.frame.width, header.frame.height); - return -EINVAL; - } if (header.frame.width > MXC_JPEG_MAX_WIDTH || header.frame.height > MXC_JPEG_MAX_HEIGHT) { dev_err(dev, "JPEG width or height should be <= 8192: %dx%d\n", @@ -1424,6 +1444,20 @@ struct mxc_jpeg_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); struct mxc_jpeg_src_buf *jpeg_src_buf; + if (V4L2_TYPE_IS_CAPTURE(vb->vb2_queue->type) && + vb2_is_streaming(vb->vb2_queue) && + v4l2_m2m_dst_buf_is_last(ctx->fh.m2m_ctx)) { + struct mxc_jpeg_q_data *q_data; + + q_data = mxc_jpeg_get_q_data(ctx, vb->vb2_queue->type); + vbuf->field = V4L2_FIELD_NONE; + vbuf->sequence = q_data->sequence++; + v4l2_m2m_last_buffer_done(ctx->fh.m2m_ctx, vbuf); + notify_eos(ctx); + ctx->header_parsed = false; + return; + } + if (vb->vb2_queue->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) goto end; @@ -1472,24 +1506,11 @@ return -EINVAL; } } - return 0; -} - -static void mxc_jpeg_buf_finish(struct vb2_buffer *vb) -{ - struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb); - struct mxc_jpeg_ctx *ctx = vb2_get_drv_priv(vb->vb2_queue); - struct vb2_queue *q = vb->vb2_queue; - - if (V4L2_TYPE_IS_OUTPUT(vb->type)) - return; - if (!ctx->stopped) - return; - if (list_empty(&q->done_list)) { - vbuf->flags |= V4L2_BUF_FLAG_LAST; - ctx->stopped = 0; - ctx->header_parsed = false; + if (V4L2_TYPE_IS_CAPTURE(vb->vb2_queue->type)) { + vb2_set_plane_payload(vb, 0, 0); + vb2_set_plane_payload(vb, 1, 0); } + return 0; } static const struct vb2_ops mxc_jpeg_qops = { @@ -1498,7 +1519,6 @@ .wait_finish = vb2_ops_wait_finish, .buf_out_validate = mxc_jpeg_buf_out_validate, .buf_prepare = mxc_jpeg_buf_prepare, - .buf_finish = mxc_jpeg_buf_finish, .start_streaming = mxc_jpeg_start_streaming, .stop_streaming = mxc_jpeg_stop_streaming, .buf_queue = mxc_jpeg_buf_queue, @@ -1684,22 +1704,17 @@ pix_mp->num_planes = fmt->colplanes; pix_mp->pixelformat = fmt->fourcc; - /* - * use MXC_JPEG_H_ALIGN instead of fmt->v_align, for vertical - * alignment, to loosen up the alignment to multiple of 8, - * otherwise NV12-1080p fails as 1080 is not a multiple of 16 - */ + pix_mp->width = w; + pix_mp->height = h; v4l_bound_align_image(&w, - MXC_JPEG_MIN_WIDTH, - w, /* adjust downwards*/ + w, /* adjust upwards*/ + MXC_JPEG_MAX_WIDTH, fmt->h_align, &h, - MXC_JPEG_MIN_HEIGHT, - h, /* adjust downwards*/ - MXC_JPEG_H_ALIGN, + h, /* adjust upwards*/ + MXC_JPEG_MAX_HEIGHT, + 0, 0); - pix_mp->width = w; /* negotiate the width */ - pix_mp->height = h; /* negotiate the height */ /* get user input into the tmp_q */ tmp_q.w = w; @@ -1825,35 +1840,19 @@ q_data->w_adjusted = q_data->w; q_data->h_adjusted = q_data->h; - if (jpeg->mode == MXC_JPEG_DECODE) { - /* - * align up the resolution for CAST IP, - * but leave the buffer resolution unchanged - */ - v4l_bound_align_image(&q_data->w_adjusted, - q_data->w_adjusted, /* adjust upwards */ - MXC_JPEG_MAX_WIDTH, - q_data->fmt->h_align, - &q_data->h_adjusted, - q_data->h_adjusted, /* adjust upwards */ - MXC_JPEG_MAX_HEIGHT, - q_data->fmt->v_align, - 0); - } else { - /* - * align down the resolution for CAST IP, - * but leave the buffer resolution unchanged - */ - v4l_bound_align_image(&q_data->w_adjusted, - MXC_JPEG_MIN_WIDTH, - q_data->w_adjusted, /* adjust downwards*/ - q_data->fmt->h_align, - &q_data->h_adjusted, - MXC_JPEG_MIN_HEIGHT, - q_data->h_adjusted, /* adjust downwards*/ - q_data->fmt->v_align, - 0); - } + /* + * align up the resolution for CAST IP, + * but leave the buffer resolution unchanged + */ + v4l_bound_align_image(&q_data->w_adjusted, + q_data->w_adjusted, /* adjust upwards */ + MXC_JPEG_MAX_WIDTH, + q_data->fmt->h_align, + &q_data->h_adjusted, + q_data->h_adjusted, /* adjust upwards */ + MXC_JPEG_MAX_HEIGHT, + q_data->fmt->v_align, + 0); for (i = 0; i < pix_mp->num_planes; i++) { q_data->bytesperline[i] = pix_mp->plane_fmt[i].bytesperline; @@ -1963,27 +1962,6 @@ } } -static int mxc_jpeg_dqbuf(struct file *file, void *priv, - struct v4l2_buffer *buf) -{ - struct v4l2_fh *fh = file->private_data; - struct mxc_jpeg_ctx *ctx = mxc_jpeg_fh_to_ctx(priv); - struct device *dev = ctx->mxc_jpeg->dev; - int num_src_ready = v4l2_m2m_num_src_bufs_ready(fh->m2m_ctx); - int ret; - - dev_dbg(dev, "DQBUF type=%d, index=%d", buf->type, buf->index); - if (ctx->stopping == 1 && num_src_ready == 0) { - /* No more src bufs, notify app EOS */ - notify_eos(ctx); - ctx->stopping = 0; - mxc_jpeg_set_last_buffer_dequeued(ctx); - } - - ret = v4l2_m2m_dqbuf(file, fh->m2m_ctx, buf); - return ret; -} - static const struct v4l2_ioctl_ops mxc_jpeg_ioctl_ops = { .vidioc_querycap = mxc_jpeg_querycap, .vidioc_enum_fmt_vid_cap = mxc_jpeg_enum_fmt_vid_cap, @@ -2007,7 +1985,7 @@ .vidioc_encoder_cmd = mxc_jpeg_encoder_cmd, .vidioc_qbuf = v4l2_m2m_ioctl_qbuf, - .vidioc_dqbuf = mxc_jpeg_dqbuf, + .vidioc_dqbuf = v4l2_m2m_ioctl_dqbuf, .vidioc_create_bufs = v4l2_m2m_ioctl_create_bufs, .vidioc_prepare_buf = v4l2_m2m_ioctl_prepare_buf, @@ -2167,12 +2145,14 @@ jpeg->clk_ipg = devm_clk_get(dev, "ipg"); if (IS_ERR(jpeg->clk_ipg)) { dev_err(dev, "failed to get clock: ipg\n"); + ret = PTR_ERR(jpeg->clk_ipg); goto err_clk; } jpeg->clk_per = devm_clk_get(dev, "per"); if (IS_ERR(jpeg->clk_per)) { dev_err(dev, "failed to get clock: per\n"); + ret = PTR_ERR(jpeg->clk_per); goto err_clk; } --- linux-5.19.0.orig/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h +++ linux-5.19.0/drivers/media/platform/nxp/imx-jpeg/mxc-jpeg.h @@ -92,8 +92,6 @@ struct mxc_jpeg_q_data cap_q; struct v4l2_fh fh; enum mxc_jpeg_enc_state enc_state; - unsigned int stopping; - unsigned int stopped; unsigned int slot; unsigned int source_change; bool header_parsed; --- linux-5.19.0.orig/drivers/media/platform/qcom/camss/camss-csid.c +++ linux-5.19.0/drivers/media/platform/qcom/camss/camss-csid.c @@ -666,7 +666,7 @@ if (csid->num_supplies) { csid->supplies = devm_kmalloc_array(camss->dev, csid->num_supplies, - sizeof(csid->supplies), + sizeof(*csid->supplies), GFP_KERNEL); if (!csid->supplies) return -ENOMEM; --- linux-5.19.0.orig/drivers/media/platform/qcom/camss/camss-video.c +++ linux-5.19.0/drivers/media/platform/qcom/camss/camss-video.c @@ -495,7 +495,7 @@ ret = media_pipeline_start(&vdev->entity, &video->pipe); if (ret < 0) - return ret; + goto flush_buffers; ret = video_check_format(video); if (ret < 0) @@ -524,6 +524,7 @@ error: media_pipeline_stop(&vdev->entity); +flush_buffers: video->ops->flush_buffers(video, VB2_BUF_STATE_QUEUED); return ret; --- linux-5.19.0.orig/drivers/media/platform/qcom/venus/helpers.c +++ linux-5.19.0/drivers/media/platform/qcom/venus/helpers.c @@ -1802,7 +1802,7 @@ struct venus_core *core = inst->core; u32 fmt = to_hfi_raw_fmt(v4l2_pixfmt); struct hfi_plat_caps *caps; - u32 buftype; + bool found; if (!fmt) return false; @@ -1811,12 +1811,13 @@ if (!caps) return false; - if (inst->session_type == VIDC_SESSION_TYPE_DEC) - buftype = HFI_BUFFER_OUTPUT2; - else - buftype = HFI_BUFFER_OUTPUT; + found = find_fmt_from_caps(caps, HFI_BUFFER_OUTPUT, fmt); + if (found) + goto done; - return find_fmt_from_caps(caps, buftype, fmt); + found = find_fmt_from_caps(caps, HFI_BUFFER_OUTPUT2, fmt); +done: + return found; } EXPORT_SYMBOL_GPL(venus_helper_check_format); --- linux-5.19.0.orig/drivers/media/platform/qcom/venus/pm_helpers.c +++ linux-5.19.0/drivers/media/platform/qcom/venus/pm_helpers.c @@ -869,13 +869,13 @@ for (i = 0; i < res->vcodec_pmdomains_num; i++) { pd = dev_pm_domain_attach_by_name(dev, res->vcodec_pmdomains[i]); - if (IS_ERR(pd)) - return PTR_ERR(pd); + if (IS_ERR_OR_NULL(pd)) + return PTR_ERR(pd) ? : -ENODATA; core->pmdomains[i] = pd; } skip_pmdomains: - if (!core->has_opp_table) + if (!core->res->opp_pmdomain) return 0; /* Attach the power domain for setting performance state */ @@ -1007,6 +1007,10 @@ if (ret) return ret; + ret = vcodec_domains_get(core); + if (ret) + return ret; + if (core->res->opp_pmdomain) { ret = devm_pm_opp_of_add_table(dev); if (!ret) { @@ -1017,10 +1021,6 @@ } } - ret = vcodec_domains_get(core); - if (ret) - return ret; - return 0; } --- linux-5.19.0.orig/drivers/media/platform/qcom/venus/vdec.c +++ linux-5.19.0/drivers/media/platform/qcom/venus/vdec.c @@ -183,6 +183,8 @@ else return NULL; fmt = find_format(inst, pixmp->pixelformat, f->type); + if (!fmt) + return NULL; } pixmp->width = clamp(pixmp->width, frame_width_min(inst), --- linux-5.19.0.orig/drivers/media/platform/renesas/rcar-vin/rcar-core.c +++ linux-5.19.0/drivers/media/platform/renesas/rcar-vin/rcar-core.c @@ -1261,7 +1261,7 @@ }; static const struct rvin_group_route rcar_info_r8a77990_routes[] = { - { .master = 0, .csi = RVIN_CSI40, .chsel = 0x03 }, + { .master = 4, .csi = RVIN_CSI40, .chsel = 0x03 }, { /* Sentinel */ } }; --- linux-5.19.0.orig/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c +++ linux-5.19.0/drivers/media/platform/rockchip/rkisp1/rkisp1-capture.c @@ -1291,11 +1291,12 @@ struct rkisp1_capture *cap = video_get_drvdata(vdev); const struct rkisp1_capture_fmt_cfg *fmt = rkisp1_find_fmt_cfg(cap, cap->pix.fmt.pixelformat); - struct v4l2_subdev_format sd_fmt; + struct v4l2_subdev_format sd_fmt = { + .which = V4L2_SUBDEV_FORMAT_ACTIVE, + .pad = link->source->index, + }; int ret; - sd_fmt.which = V4L2_SUBDEV_FORMAT_ACTIVE; - sd_fmt.pad = link->source->index; ret = v4l2_subdev_call(sd, pad, get_fmt, NULL, &sd_fmt); if (ret) return ret; --- linux-5.19.0.orig/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c +++ linux-5.19.0/drivers/media/platform/rockchip/rkisp1/rkisp1-params.c @@ -347,7 +347,7 @@ RKISP1_CIF_ISP_LSC_XSIZE_01 + i * 4); /* program x grad tables */ - data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->x_grad_tbl[i * 2], + data = RKISP1_CIF_ISP_LSC_SECT_GRAD(arg->x_grad_tbl[i * 2], arg->x_grad_tbl[i * 2 + 1]); rkisp1_write(params->rkisp1, data, RKISP1_CIF_ISP_LSC_XGRAD_01 + i * 4); @@ -359,7 +359,7 @@ RKISP1_CIF_ISP_LSC_YSIZE_01 + i * 4); /* program y grad tables */ - data = RKISP1_CIF_ISP_LSC_SECT_SIZE(arg->y_grad_tbl[i * 2], + data = RKISP1_CIF_ISP_LSC_SECT_GRAD(arg->y_grad_tbl[i * 2], arg->y_grad_tbl[i * 2 + 1]); rkisp1_write(params->rkisp1, data, RKISP1_CIF_ISP_LSC_YGRAD_01 + i * 4); @@ -1072,7 +1072,7 @@ } } -static void rkisp1_csm_config(struct rkisp1_params *params, bool full_range) +static void rkisp1_csm_config(struct rkisp1_params *params) { static const u16 full_range_coeff[] = { 0x0026, 0x004b, 0x000f, @@ -1086,7 +1086,7 @@ }; unsigned int i; - if (full_range) { + if (params->quantization == V4L2_QUANTIZATION_FULL_RANGE) { for (i = 0; i < ARRAY_SIZE(full_range_coeff); i++) rkisp1_write(params->rkisp1, full_range_coeff[i], RKISP1_CIF_ISP_CC_COEFF_0 + i * 4); @@ -1555,11 +1555,7 @@ rkisp1_param_set_bits(params, RKISP1_CIF_ISP_HIST_PROP_V10, rkisp1_hst_params_default_config.mode); - /* set the range */ - if (params->quantization == V4L2_QUANTIZATION_FULL_RANGE) - rkisp1_csm_config(params, true); - else - rkisp1_csm_config(params, false); + rkisp1_csm_config(params); spin_lock_irq(¶ms->config_lock); --- linux-5.19.0.orig/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h +++ linux-5.19.0/drivers/media/platform/rockchip/rkisp1/rkisp1-regs.h @@ -567,7 +567,7 @@ (((v0) & 0x1FFF) | (((v1) & 0x1FFF) << 13)) #define RKISP1_CIF_ISP_LSC_SECT_SIZE(v0, v1) \ (((v0) & 0xFFF) | (((v1) & 0xFFF) << 16)) -#define RKISP1_CIF_ISP_LSC_GRAD_SIZE(v0, v1) \ +#define RKISP1_CIF_ISP_LSC_SECT_GRAD(v0, v1) \ (((v0) & 0xFFF) | (((v1) & 0xFFF) << 16)) /* LSC: ISP_LSC_TABLE_SEL */ --- linux-5.19.0.orig/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c +++ linux-5.19.0/drivers/media/platform/rockchip/rkisp1/rkisp1-resizer.c @@ -510,6 +510,10 @@ sink_fmt->height = RKISP1_DEFAULT_HEIGHT; sink_fmt->field = V4L2_FIELD_NONE; sink_fmt->code = RKISP1_DEF_FMT; + sink_fmt->colorspace = V4L2_COLORSPACE_SRGB; + sink_fmt->xfer_func = V4L2_XFER_FUNC_SRGB; + sink_fmt->ycbcr_enc = V4L2_YCBCR_ENC_601; + sink_fmt->quantization = V4L2_QUANTIZATION_LIM_RANGE; sink_crop = v4l2_subdev_get_try_crop(sd, sd_state, RKISP1_RSZ_PAD_SINK); --- linux-5.19.0.orig/drivers/media/platform/samsung/exynos4-is/fimc-core.c +++ linux-5.19.0/drivers/media/platform/samsung/exynos4-is/fimc-core.c @@ -1173,7 +1173,7 @@ return platform_driver_register(&fimc_driver); } -void __exit fimc_unregister_driver(void) +void fimc_unregister_driver(void) { platform_driver_unregister(&fimc_driver); } --- linux-5.19.0.orig/drivers/media/platform/samsung/exynos4-is/fimc-is.c +++ linux-5.19.0/drivers/media/platform/samsung/exynos4-is/fimc-is.c @@ -213,6 +213,7 @@ if (ret < 0 || index >= FIMC_IS_SENSORS_NUM) { of_node_put(child); + of_node_put(i2c_bus); return ret; } index++; --- linux-5.19.0.orig/drivers/media/platform/samsung/exynos4-is/media-dev.c +++ linux-5.19.0/drivers/media/platform/samsung/exynos4-is/media-dev.c @@ -1380,9 +1380,7 @@ /* Find platform data for this sensor subdev */ for (i = 0; i < ARRAY_SIZE(fmd->sensor); i++) - if (fmd->sensor[i].asd && - fmd->sensor[i].asd->match.fwnode == - of_fwnode_handle(subdev->dev->of_node)) + if (fmd->sensor[i].asd == asd) si = &fmd->sensor[i]; if (si == NULL) @@ -1474,7 +1472,7 @@ pinctrl = devm_pinctrl_get(dev); if (IS_ERR(pinctrl)) { ret = PTR_ERR(pinctrl); - if (ret != EPROBE_DEFER) + if (ret != -EPROBE_DEFER) dev_err(dev, "Failed to get pinctrl: %d\n", ret); goto err_clk; } @@ -1586,7 +1584,11 @@ if (ret) return ret; - return platform_driver_register(&fimc_md_driver); + ret = platform_driver_register(&fimc_md_driver); + if (ret) + fimc_unregister_driver(); + + return ret; } static void __exit fimc_md_exit(void) --- linux-5.19.0.orig/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c +++ linux-5.19.0/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c @@ -1399,6 +1399,7 @@ /* Deinit MFC if probe had failed */ err_enc_reg: video_unregister_device(dev->vfd_dec); + dev->vfd_dec = NULL; err_dec_reg: video_device_release(dev->vfd_enc); err_enc_alloc: @@ -1444,8 +1445,6 @@ video_unregister_device(dev->vfd_enc); video_unregister_device(dev->vfd_dec); - video_device_release(dev->vfd_enc); - video_device_release(dev->vfd_dec); v4l2_device_unregister(&dev->v4l2_dev); s5p_mfc_unconfigure_dma_memory(dev); @@ -1577,8 +1576,18 @@ .port_num = MFC_NUM_PORTS_V7, .buf_size = &buf_size_v7, .fw_name[0] = "s5p-mfc-v7.fw", - .clk_names = {"mfc", "sclk_mfc"}, - .num_clocks = 2, + .clk_names = {"mfc"}, + .num_clocks = 1, +}; + +static struct s5p_mfc_variant mfc_drvdata_v7_3250 = { + .version = MFC_VERSION_V7, + .version_bit = MFC_V7_BIT, + .port_num = MFC_NUM_PORTS_V7, + .buf_size = &buf_size_v7, + .fw_name[0] = "s5p-mfc-v7.fw", + .clk_names = {"mfc", "sclk_mfc"}, + .num_clocks = 2, }; static struct s5p_mfc_buf_size_v6 mfc_buf_size_v8 = { @@ -1649,6 +1658,9 @@ .compatible = "samsung,mfc-v7", .data = &mfc_drvdata_v7, }, { + .compatible = "samsung,exynos3250-mfc", + .data = &mfc_drvdata_v7_3250, + }, { .compatible = "samsung,mfc-v8", .data = &mfc_drvdata_v8, }, { --- linux-5.19.0.orig/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c +++ linux-5.19.0/drivers/media/platform/st/sti/c8sectpfe/c8sectpfe-core.c @@ -934,6 +934,7 @@ if (ret) { dev_err(fei->dev, "configure_memdma_and_inputblock failed\n"); + of_node_put(child); goto err_unmap; } index++; --- linux-5.19.0.orig/drivers/media/platform/sunxi/sun4i-csi/Kconfig +++ linux-5.19.0/drivers/media/platform/sunxi/sun4i-csi/Kconfig @@ -3,7 +3,7 @@ config VIDEO_SUN4I_CSI tristate "Allwinner A10 CMOS Sensor Interface Support" depends on V4L_PLATFORM_DRIVERS - depends on VIDEO_DEV && COMMON_CLK && HAS_DMA + depends on VIDEO_DEV && COMMON_CLK && RESET_CONTROLLER && HAS_DMA depends on ARCH_SUNXI || COMPILE_TEST select MEDIA_CONTROLLER select VIDEO_V4L2_SUBDEV_API --- linux-5.19.0.orig/drivers/media/platform/sunxi/sun6i-csi/Kconfig +++ linux-5.19.0/drivers/media/platform/sunxi/sun6i-csi/Kconfig @@ -2,7 +2,7 @@ config VIDEO_SUN6I_CSI tristate "Allwinner V3s Camera Sensor Interface driver" depends on V4L_PLATFORM_DRIVERS - depends on VIDEO_DEV && COMMON_CLK && HAS_DMA + depends on VIDEO_DEV && COMMON_CLK && RESET_CONTROLLER && HAS_DMA depends on ARCH_SUNXI || COMPILE_TEST select MEDIA_CONTROLLER select VIDEO_V4L2_SUBDEV_API --- linux-5.19.0.orig/drivers/media/platform/sunxi/sun8i-di/Kconfig +++ linux-5.19.0/drivers/media/platform/sunxi/sun8i-di/Kconfig @@ -4,7 +4,7 @@ depends on V4L_MEM2MEM_DRIVERS depends on VIDEO_DEV depends on ARCH_SUNXI || COMPILE_TEST - depends on COMMON_CLK && OF + depends on COMMON_CLK && RESET_CONTROLLER && OF depends on PM select VIDEOBUF2_DMA_CONTIG select V4L2_MEM2MEM_DEV --- linux-5.19.0.orig/drivers/media/platform/sunxi/sun8i-rotate/Kconfig +++ linux-5.19.0/drivers/media/platform/sunxi/sun8i-rotate/Kconfig @@ -5,7 +5,7 @@ depends on V4L_MEM2MEM_DRIVERS depends on VIDEO_DEV depends on ARCH_SUNXI || COMPILE_TEST - depends on COMMON_CLK && OF + depends on COMMON_CLK && RESET_CONTROLLER && OF depends on PM select VIDEOBUF2_DMA_CONTIG select V4L2_MEM2MEM_DEV --- linux-5.19.0.orig/drivers/media/platform/xilinx/xilinx-vipp.c +++ linux-5.19.0/drivers/media/platform/xilinx/xilinx-vipp.c @@ -471,7 +471,7 @@ { struct device_node *ports; struct device_node *port; - int ret; + int ret = 0; ports = of_get_child_by_name(xdev->dev->of_node, "ports"); if (ports == NULL) { @@ -481,13 +481,14 @@ for_each_child_of_node(ports, port) { ret = xvip_graph_dma_init_one(xdev, port); - if (ret < 0) { + if (ret) { of_node_put(port); - return ret; + break; } } - return 0; + of_node_put(ports); + return ret; } static void xvip_graph_cleanup(struct xvip_composite_device *xdev) --- linux-5.19.0.orig/drivers/media/radio/si470x/radio-si470x-usb.c +++ linux-5.19.0/drivers/media/radio/si470x/radio-si470x-usb.c @@ -727,8 +727,10 @@ /* start radio */ retval = si470x_start_usb(radio); - if (retval < 0) + if (retval < 0 && !radio->int_in_running) goto err_buf; + else if (retval < 0) /* in case of radio->int_in_running == 1 */ + goto err_all; /* set initial frequency */ si470x_set_freq(radio, 87.5 * FREQ_MUL); /* available in all regions */ --- linux-5.19.0.orig/drivers/media/rc/imon.c +++ linux-5.19.0/drivers/media/rc/imon.c @@ -646,15 +646,14 @@ pr_err_ratelimited("error submitting urb(%d)\n", retval); } else { /* Wait for transmission to complete (or abort) */ - mutex_unlock(&ictx->lock); retval = wait_for_completion_interruptible( &ictx->tx.finished); if (retval) { usb_kill_urb(ictx->tx_urb); pr_err_ratelimited("task interrupted\n"); } - mutex_lock(&ictx->lock); + ictx->tx.busy = false; retval = ictx->tx.status; if (retval) pr_err_ratelimited("packet tx failed (%d)\n", retval); @@ -955,7 +954,8 @@ if (ictx->disconnected) return -ENODEV; - mutex_lock(&ictx->lock); + if (mutex_lock_interruptible(&ictx->lock)) + return -ERESTARTSYS; if (!ictx->dev_present_intf0) { pr_err_ratelimited("no iMON device present\n"); --- linux-5.19.0.orig/drivers/media/rc/mceusb.c +++ linux-5.19.0/drivers/media/rc/mceusb.c @@ -1077,7 +1077,7 @@ struct mceusb_dev *ir = dev->priv; unsigned int units; - units = DIV_ROUND_CLOSEST(timeout, MCE_TIME_UNIT); + units = DIV_ROUND_UP(timeout, MCE_TIME_UNIT); cmdbuf[2] = units >> 8; cmdbuf[3] = units; @@ -1416,42 +1416,37 @@ { int ret; struct device *dev = ir->dev; - char *data; - - data = kzalloc(USB_CTRL_MSG_SZ, GFP_KERNEL); - if (!data) { - dev_err(dev, "%s: memory allocation failed!", __func__); - return; - } + char data[USB_CTRL_MSG_SZ]; /* * This is a strange one. Windows issues a set address to the device * on the receive control pipe and expect a certain value pair back */ - ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0), - USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0, - data, USB_CTRL_MSG_SZ, 3000); + ret = usb_control_msg_recv(ir->usbdev, 0, USB_REQ_SET_ADDRESS, + USB_DIR_IN | USB_TYPE_VENDOR, + 0, 0, data, USB_CTRL_MSG_SZ, 3000, + GFP_KERNEL); dev_dbg(dev, "set address - ret = %d", ret); dev_dbg(dev, "set address - data[0] = %d, data[1] = %d", data[0], data[1]); /* set feature: bit rate 38400 bps */ - ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), - USB_REQ_SET_FEATURE, USB_TYPE_VENDOR, - 0xc04e, 0x0000, NULL, 0, 3000); + ret = usb_control_msg_send(ir->usbdev, 0, + USB_REQ_SET_FEATURE, USB_TYPE_VENDOR, + 0xc04e, 0x0000, NULL, 0, 3000, GFP_KERNEL); dev_dbg(dev, "set feature - ret = %d", ret); /* bRequest 4: set char length to 8 bits */ - ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), - 4, USB_TYPE_VENDOR, - 0x0808, 0x0000, NULL, 0, 3000); + ret = usb_control_msg_send(ir->usbdev, 0, + 4, USB_TYPE_VENDOR, + 0x0808, 0x0000, NULL, 0, 3000, GFP_KERNEL); dev_dbg(dev, "set char length - retB = %d", ret); /* bRequest 2: set handshaking to use DTR/DSR */ - ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0), - 2, USB_TYPE_VENDOR, - 0x0000, 0x0100, NULL, 0, 3000); + ret = usb_control_msg_send(ir->usbdev, 0, + 2, USB_TYPE_VENDOR, + 0x0000, 0x0100, NULL, 0, 3000, GFP_KERNEL); dev_dbg(dev, "set handshake - retC = %d", ret); /* device resume */ @@ -1459,8 +1454,6 @@ /* get hw/sw revision? */ mce_command_out(ir, GET_REVISION, sizeof(GET_REVISION)); - - kfree(data); } static void mceusb_gen2_init(struct mceusb_dev *ir) --- linux-5.19.0.orig/drivers/media/test-drivers/vidtv/vidtv_bridge.c +++ linux-5.19.0/drivers/media/test-drivers/vidtv/vidtv_bridge.c @@ -459,26 +459,20 @@ for (j = j - 1; j >= 0; --j) dvb->demux.dmx.remove_frontend(&dvb->demux.dmx, &dvb->dmx_fe[j]); -fail_dmx_dev: dvb_dmxdev_release(&dvb->dmx_dev); -fail_dmx: +fail_dmx_dev: dvb_dmx_release(&dvb->demux); +fail_dmx: +fail_demod_probe: + for (i = i - 1; i >= 0; --i) { + dvb_unregister_frontend(dvb->fe[i]); fail_fe: - for (j = i; j >= 0; --j) - dvb_unregister_frontend(dvb->fe[j]); + dvb_module_release(dvb->i2c_client_tuner[i]); fail_tuner_probe: - for (j = i; j >= 0; --j) - if (dvb->i2c_client_tuner[j]) - dvb_module_release(dvb->i2c_client_tuner[j]); - -fail_demod_probe: - for (j = i; j >= 0; --j) - if (dvb->i2c_client_demod[j]) - dvb_module_release(dvb->i2c_client_demod[j]); - + dvb_module_release(dvb->i2c_client_demod[i]); + } fail_adapter: dvb_unregister_adapter(&dvb->adapter); - fail_i2c: i2c_del_adapter(&dvb->i2c_adapter); --- linux-5.19.0.orig/drivers/media/test-drivers/vimc/vimc-core.c +++ linux-5.19.0/drivers/media/test-drivers/vimc/vimc-core.c @@ -367,7 +367,7 @@ if (ret) { dev_err(&vimc_pdev.dev, "platform driver registration failed (err=%d)\n", ret); - platform_driver_unregister(&vimc_pdrv); + platform_device_unregister(&vimc_pdev); return ret; } --- linux-5.19.0.orig/drivers/media/test-drivers/vivid/vivid-core.c +++ linux-5.19.0/drivers/media/test-drivers/vivid/vivid-core.c @@ -339,6 +339,28 @@ return vivid_vid_out_g_fbuf(file, fh, a); } +/* + * Only support the framebuffer of one of the vivid instances. + * Anything else is rejected. + */ +bool vivid_validate_fb(const struct v4l2_framebuffer *a) +{ + struct vivid_dev *dev; + int i; + + for (i = 0; i < n_devs; i++) { + dev = vivid_devs[i]; + if (!dev || !dev->video_pbase) + continue; + if ((unsigned long)a->base == dev->video_pbase && + a->fmt.width <= dev->display_width && + a->fmt.height <= dev->display_height && + a->fmt.bytesperline <= dev->display_byte_stride) + return true; + } + return false; +} + static int vidioc_s_fbuf(struct file *file, void *fh, const struct v4l2_framebuffer *a) { struct video_device *vdev = video_devdata(file); @@ -920,8 +942,12 @@ /* how many inputs do we have and of what type? */ dev->num_inputs = num_inputs[inst]; - if (dev->num_inputs < 1) - dev->num_inputs = 1; + if (node_type & 0x20007) { + if (dev->num_inputs < 1) + dev->num_inputs = 1; + } else { + dev->num_inputs = 0; + } if (dev->num_inputs >= MAX_INPUTS) dev->num_inputs = MAX_INPUTS; for (i = 0; i < dev->num_inputs; i++) { @@ -938,8 +964,12 @@ /* how many outputs do we have and of what type? */ dev->num_outputs = num_outputs[inst]; - if (dev->num_outputs < 1) - dev->num_outputs = 1; + if (node_type & 0x40300) { + if (dev->num_outputs < 1) + dev->num_outputs = 1; + } else { + dev->num_outputs = 0; + } if (dev->num_outputs >= MAX_OUTPUTS) dev->num_outputs = MAX_OUTPUTS; for (i = 0; i < dev->num_outputs; i++) { --- linux-5.19.0.orig/drivers/media/test-drivers/vivid/vivid-core.h +++ linux-5.19.0/drivers/media/test-drivers/vivid/vivid-core.h @@ -610,4 +610,6 @@ return dev->output_type[dev->output] == HDMI; } +bool vivid_validate_fb(const struct v4l2_framebuffer *a); + #endif --- linux-5.19.0.orig/drivers/media/test-drivers/vivid/vivid-vid-cap.c +++ linux-5.19.0/drivers/media/test-drivers/vivid/vivid-vid-cap.c @@ -452,6 +452,12 @@ tpg_reset_source(&dev->tpg, dev->src_rect.width, dev->src_rect.height, dev->field_cap); dev->crop_cap = dev->src_rect; dev->crop_bounds_cap = dev->src_rect; + if (dev->bitmap_cap && + (dev->compose_cap.width != dev->crop_cap.width || + dev->compose_cap.height != dev->crop_cap.height)) { + vfree(dev->bitmap_cap); + dev->bitmap_cap = NULL; + } dev->compose_cap = dev->crop_cap; if (V4L2_FIELD_HAS_T_OR_B(dev->field_cap)) dev->compose_cap.height /= 2; @@ -909,6 +915,8 @@ struct vivid_dev *dev = video_drvdata(file); struct v4l2_rect *crop = &dev->crop_cap; struct v4l2_rect *compose = &dev->compose_cap; + unsigned orig_compose_w = compose->width; + unsigned orig_compose_h = compose->height; unsigned factor = V4L2_FIELD_HAS_T_OR_B(dev->field_cap) ? 2 : 1; int ret; @@ -953,6 +961,7 @@ if (dev->has_compose_cap) { v4l2_rect_set_min_size(compose, &min_rect); v4l2_rect_set_max_size(compose, &max_rect); + v4l2_rect_map_inside(compose, &fmt); } dev->fmt_cap_rect = fmt; tpg_s_buf_height(&dev->tpg, fmt.height); @@ -1025,17 +1034,17 @@ s->r.height /= factor; } v4l2_rect_map_inside(&s->r, &dev->fmt_cap_rect); - if (dev->bitmap_cap && (compose->width != s->r.width || - compose->height != s->r.height)) { - vfree(dev->bitmap_cap); - dev->bitmap_cap = NULL; - } *compose = s->r; break; default: return -EINVAL; } + if (dev->bitmap_cap && (compose->width != orig_compose_w || + compose->height != orig_compose_h)) { + vfree(dev->bitmap_cap); + dev->bitmap_cap = NULL; + } tpg_s_crop_compose(&dev->tpg, crop, compose); return 0; } @@ -1272,7 +1281,14 @@ return -EINVAL; if (a->fmt.bytesperline < (a->fmt.width * fmt->bit_depth[0]) / 8) return -EINVAL; - if (a->fmt.height * a->fmt.bytesperline < a->fmt.sizeimage) + if (a->fmt.bytesperline > a->fmt.sizeimage / a->fmt.height) + return -EINVAL; + + /* + * Only support the framebuffer of one of the vivid instances. + * Anything else is rejected. + */ + if (!vivid_validate_fb(a)) return -EINVAL; dev->fb_vbase_cap = phys_to_virt((unsigned long)a->base); --- linux-5.19.0.orig/drivers/media/usb/b2c2/flexcop-usb.c +++ linux-5.19.0/drivers/media/usb/b2c2/flexcop-usb.c @@ -511,7 +511,7 @@ if (fc_usb->uintf->cur_altsetting->desc.bNumEndpoints < 1) return -ENODEV; - if (!usb_endpoint_is_isoc_in(&fc_usb->uintf->cur_altsetting->endpoint[1].desc)) + if (!usb_endpoint_is_isoc_in(&fc_usb->uintf->cur_altsetting->endpoint[0].desc)) return -ENODEV; switch (fc_usb->udev->speed) { --- linux-5.19.0.orig/drivers/media/usb/dvb-usb/az6027.c +++ linux-5.19.0/drivers/media/usb/dvb-usb/az6027.c @@ -975,6 +975,10 @@ if (msg[i].addr == 0x99) { req = 0xBE; index = 0; + if (msg[i].len < 1) { + i = -EOPNOTSUPP; + break; + } value = msg[i].buf[0] & 0x00ff; length = 1; az6027_usb_out_op(d, req, value, index, data, length); --- linux-5.19.0.orig/drivers/media/usb/dvb-usb/dvb-usb-init.c +++ linux-5.19.0/drivers/media/usb/dvb-usb/dvb-usb-init.c @@ -81,7 +81,7 @@ ret = dvb_usb_adapter_stream_init(adap); if (ret) - return ret; + goto stream_init_err; ret = dvb_usb_adapter_dvb_init(adap, adapter_nrs); if (ret) @@ -114,6 +114,8 @@ dvb_usb_adapter_dvb_exit(adap); dvb_init_err: dvb_usb_adapter_stream_exit(adap); +stream_init_err: + kfree(adap->priv); return ret; } --- linux-5.19.0.orig/drivers/media/usb/hdpvr/hdpvr-video.c +++ linux-5.19.0/drivers/media/usb/hdpvr/hdpvr-video.c @@ -409,7 +409,7 @@ struct hdpvr_device *dev = video_drvdata(file); struct hdpvr_buffer *buf = NULL; struct urb *urb; - unsigned int ret = 0; + int ret = 0; int rem, cnt; if (*pos) --- linux-5.19.0.orig/drivers/media/usb/pvrusb2/pvrusb2-hdw.c +++ linux-5.19.0/drivers/media/usb/pvrusb2/pvrusb2-hdw.c @@ -2610,6 +2610,7 @@ del_timer_sync(&hdw->encoder_run_timer); del_timer_sync(&hdw->encoder_wait_timer); flush_work(&hdw->workpoll); + v4l2_device_unregister(&hdw->v4l2_dev); usb_free_urb(hdw->ctl_read_urb); usb_free_urb(hdw->ctl_write_urb); kfree(hdw->ctl_read_buffer); --- linux-5.19.0.orig/drivers/media/usb/uvc/uvc_ctrl.c +++ linux-5.19.0/drivers/media/usb/uvc/uvc_ctrl.c @@ -963,36 +963,56 @@ return value; } -static int __uvc_ctrl_get(struct uvc_video_chain *chain, - struct uvc_control *ctrl, struct uvc_control_mapping *mapping, - s32 *value) +static int __uvc_ctrl_load_cur(struct uvc_video_chain *chain, + struct uvc_control *ctrl) { + u8 *data; int ret; - if ((ctrl->info.flags & UVC_CTRL_FLAG_GET_CUR) == 0) - return -EACCES; + if (ctrl->loaded) + return 0; - if (!ctrl->loaded) { - if (ctrl->entity->get_cur) { - ret = ctrl->entity->get_cur(chain->dev, - ctrl->entity, - ctrl->info.selector, - uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), - ctrl->info.size); - } else { - ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, - ctrl->entity->id, - chain->dev->intfnum, - ctrl->info.selector, - uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), - ctrl->info.size); - } - if (ret < 0) - return ret; + data = uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT); + if ((ctrl->info.flags & UVC_CTRL_FLAG_GET_CUR) == 0) { + memset(data, 0, ctrl->info.size); ctrl->loaded = 1; + + return 0; } + if (ctrl->entity->get_cur) + ret = ctrl->entity->get_cur(chain->dev, ctrl->entity, + ctrl->info.selector, data, + ctrl->info.size); + else + ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, + ctrl->entity->id, chain->dev->intfnum, + ctrl->info.selector, data, + ctrl->info.size); + + if (ret < 0) + return ret; + + ctrl->loaded = 1; + + return ret; +} + +static int __uvc_ctrl_get(struct uvc_video_chain *chain, + struct uvc_control *ctrl, + struct uvc_control_mapping *mapping, + s32 *value) +{ + int ret; + + if ((ctrl->info.flags & UVC_CTRL_FLAG_GET_CUR) == 0) + return -EACCES; + + ret = __uvc_ctrl_load_cur(chain, ctrl); + if (ret < 0) + return ret; + *value = __uvc_ctrl_get_value(mapping, uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT)); @@ -1783,21 +1803,10 @@ * needs to be loaded from the device to perform the read-modify-write * operation. */ - if (!ctrl->loaded && (ctrl->info.size * 8) != mapping->size) { - if ((ctrl->info.flags & UVC_CTRL_FLAG_GET_CUR) == 0) { - memset(uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), - 0, ctrl->info.size); - } else { - ret = uvc_query_ctrl(chain->dev, UVC_GET_CUR, - ctrl->entity->id, chain->dev->intfnum, - ctrl->info.selector, - uvc_ctrl_data(ctrl, UVC_CTRL_DATA_CURRENT), - ctrl->info.size); - if (ret < 0) - return ret; - } - - ctrl->loaded = 1; + if ((ctrl->info.size * 8) != mapping->size) { + ret = __uvc_ctrl_load_cur(chain, ctrl); + if (ret < 0) + return ret; } /* Backup the current value in case we need to rollback later. */ --- linux-5.19.0.orig/drivers/media/usb/uvc/uvc_driver.c +++ linux-5.19.0/drivers/media/usb/uvc/uvc_driver.c @@ -1538,10 +1538,6 @@ if (IS_ERR_OR_NULL(gpio_privacy)) return PTR_ERR_OR_ZERO(gpio_privacy); - unit = uvc_alloc_entity(UVC_EXT_GPIO_UNIT, UVC_EXT_GPIO_UNIT_ID, 0, 1); - if (!unit) - return -ENOMEM; - irq = gpiod_to_irq(gpio_privacy); if (irq < 0) { if (irq != EPROBE_DEFER) @@ -1550,6 +1546,10 @@ return irq; } + unit = uvc_alloc_entity(UVC_EXT_GPIO_UNIT, UVC_EXT_GPIO_UNIT_ID, 0, 1); + if (!unit) + return -ENOMEM; + unit->gpio.gpio_privacy = gpio_privacy; unit->gpio.irq = irq; unit->gpio.bControlSize = 1; --- linux-5.19.0.orig/drivers/media/v4l2-core/v4l2-async.c +++ linux-5.19.0/drivers/media/v4l2-core/v4l2-async.c @@ -66,8 +66,10 @@ #endif } -static bool match_fwnode(struct v4l2_async_notifier *notifier, - struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) +static bool +match_fwnode_one(struct v4l2_async_notifier *notifier, + struct v4l2_subdev *sd, struct fwnode_handle *sd_fwnode, + struct v4l2_async_subdev *asd) { struct fwnode_handle *other_fwnode; struct fwnode_handle *dev_fwnode; @@ -80,15 +82,7 @@ * fwnode or a device fwnode. Start with the simple case of direct * fwnode matching. */ - if (sd->fwnode == asd->match.fwnode) - return true; - - /* - * Check the same situation for any possible secondary assigned to the - * subdev's fwnode - */ - if (!IS_ERR_OR_NULL(sd->fwnode->secondary) && - sd->fwnode->secondary == asd->match.fwnode) + if (sd_fwnode == asd->match.fwnode) return true; /* @@ -99,7 +93,7 @@ * ACPI. This won't make a difference, as drivers should not try to * match unconnected endpoints. */ - sd_fwnode_is_ep = fwnode_graph_is_endpoint(sd->fwnode); + sd_fwnode_is_ep = fwnode_graph_is_endpoint(sd_fwnode); asd_fwnode_is_ep = fwnode_graph_is_endpoint(asd->match.fwnode); if (sd_fwnode_is_ep == asd_fwnode_is_ep) @@ -110,11 +104,11 @@ * parent of the endpoint fwnode, and compare it with the other fwnode. */ if (sd_fwnode_is_ep) { - dev_fwnode = fwnode_graph_get_port_parent(sd->fwnode); + dev_fwnode = fwnode_graph_get_port_parent(sd_fwnode); other_fwnode = asd->match.fwnode; } else { dev_fwnode = fwnode_graph_get_port_parent(asd->match.fwnode); - other_fwnode = sd->fwnode; + other_fwnode = sd_fwnode; } fwnode_handle_put(dev_fwnode); @@ -143,6 +137,19 @@ return true; } +static bool match_fwnode(struct v4l2_async_notifier *notifier, + struct v4l2_subdev *sd, struct v4l2_async_subdev *asd) +{ + if (match_fwnode_one(notifier, sd, sd->fwnode, asd)) + return true; + + /* Also check the secondary fwnode. */ + if (IS_ERR_OR_NULL(sd->fwnode->secondary)) + return false; + + return match_fwnode_one(notifier, sd, sd->fwnode->secondary, asd); +} + static LIST_HEAD(subdev_list); static LIST_HEAD(notifier_list); static DEFINE_MUTEX(list_lock); --- linux-5.19.0.orig/drivers/media/v4l2-core/v4l2-compat-ioctl32.c +++ linux-5.19.0/drivers/media/v4l2-core/v4l2-compat-ioctl32.c @@ -1040,6 +1040,8 @@ { int err = 0; + memset(mbuf, 0, array_size); + switch (cmd) { case VIDIOC_G_FMT32: case VIDIOC_S_FMT32: --- linux-5.19.0.orig/drivers/media/v4l2-core/v4l2-ctrls-core.c +++ linux-5.19.0/drivers/media/v4l2-core/v4l2-ctrls-core.c @@ -1649,7 +1649,7 @@ else if (type == V4L2_CTRL_TYPE_INTEGER_MENU) qmenu_int = v4l2_ctrl_get_int_menu(id, &qmenu_int_len); - if ((!qmenu && !qmenu_int) || (qmenu_int && max > qmenu_int_len)) { + if ((!qmenu && !qmenu_int) || (qmenu_int && max >= qmenu_int_len)) { handler_set_err(hdl, -EINVAL); return NULL; } --- linux-5.19.0.orig/drivers/media/v4l2-core/v4l2-dv-timings.c +++ linux-5.19.0/drivers/media/v4l2-core/v4l2-dv-timings.c @@ -145,6 +145,8 @@ const struct v4l2_bt_timings *bt = &t->bt; const struct v4l2_bt_timings_cap *cap = &dvcap->bt; u32 caps = cap->capabilities; + const u32 max_vert = 10240; + u32 max_hor = 3 * bt->width; if (t->type != V4L2_DV_BT_656_1120) return false; @@ -161,6 +163,26 @@ (bt->interlaced && !(caps & V4L2_DV_BT_CAP_INTERLACED)) || (!bt->interlaced && !(caps & V4L2_DV_BT_CAP_PROGRESSIVE))) return false; + + /* sanity checks for the blanking timings */ + if (!bt->interlaced && + (bt->il_vbackporch || bt->il_vsync || bt->il_vfrontporch)) + return false; + /* + * Some video receivers cannot properly separate the frontporch, + * backporch and sync values, and instead they only have the total + * blanking. That can be assigned to any of these three fields. + * So just check that none of these are way out of range. + */ + if (bt->hfrontporch > max_hor || + bt->hsync > max_hor || bt->hbackporch > max_hor) + return false; + if (bt->vfrontporch > max_vert || + bt->vsync > max_vert || bt->vbackporch > max_vert) + return false; + if (bt->interlaced && (bt->il_vfrontporch > max_vert || + bt->il_vsync > max_vert || bt->il_vbackporch > max_vert)) + return false; return fnc == NULL || fnc(t, fnc_handle); } EXPORT_SYMBOL_GPL(v4l2_valid_dv_timings); --- linux-5.19.0.orig/drivers/media/v4l2-core/v4l2-mem2mem.c +++ linux-5.19.0/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -925,7 +925,7 @@ if ((!src_q->streaming || src_q->error || list_empty(&src_q->queued_list)) && (!dst_q->streaming || dst_q->error || - list_empty(&dst_q->queued_list))) + (list_empty(&dst_q->queued_list) && !dst_q->last_buffer_dequeued))) return EPOLLERR; spin_lock_irqsave(&src_q->done_lock, flags); --- linux-5.19.0.orig/drivers/media/v4l2-core/videobuf-dma-contig.c +++ linux-5.19.0/drivers/media/v4l2-core/videobuf-dma-contig.c @@ -36,12 +36,11 @@ static int __videobuf_dc_alloc(struct device *dev, struct videobuf_dma_contig_memory *mem, - unsigned long size, gfp_t flags) + unsigned long size) { mem->size = size; - mem->vaddr = dma_alloc_coherent(dev, mem->size, - &mem->dma_handle, flags); - + mem->vaddr = dma_alloc_coherent(dev, mem->size, &mem->dma_handle, + GFP_KERNEL); if (!mem->vaddr) { dev_err(dev, "memory alloc size %ld failed\n", mem->size); return -ENOMEM; @@ -258,8 +257,7 @@ return videobuf_dma_contig_user_get(mem, vb); /* allocate memory for the read() method */ - if (__videobuf_dc_alloc(q->dev, mem, PAGE_ALIGN(vb->size), - GFP_KERNEL)) + if (__videobuf_dc_alloc(q->dev, mem, PAGE_ALIGN(vb->size))) return -ENOMEM; break; case V4L2_MEMORY_OVERLAY: @@ -295,22 +293,18 @@ BUG_ON(!mem); MAGIC_CHECK(mem->magic, MAGIC_DC_MEM); - if (__videobuf_dc_alloc(q->dev, mem, PAGE_ALIGN(buf->bsize), - GFP_KERNEL | __GFP_COMP)) + if (__videobuf_dc_alloc(q->dev, mem, PAGE_ALIGN(buf->bsize))) goto error; - /* Try to remap memory */ - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); - /* the "vm_pgoff" is just used in v4l2 to find the * corresponding buffer data structure which is allocated * earlier and it does not mean the offset from the physical * buffer start address as usual. So set it to 0 to pass - * the sanity check in vm_iomap_memory(). + * the sanity check in dma_mmap_coherent(). */ vma->vm_pgoff = 0; - - retval = vm_iomap_memory(vma, mem->dma_handle, mem->size); + retval = dma_mmap_coherent(q->dev, vma, mem->vaddr, mem->dma_handle, + mem->size); if (retval) { dev_err(q->dev, "mmap: remap failed with error %d. ", retval); --- linux-5.19.0.orig/drivers/memory/of_memory.c +++ linux-5.19.0/drivers/memory/of_memory.c @@ -134,6 +134,7 @@ for_each_child_of_node(np_ddr, np_tim) { if (of_device_is_compatible(np_tim, tim_compat)) { if (of_do_get_timings(np_tim, &timings[i])) { + of_node_put(np_tim); devm_kfree(dev, timings); goto default_timings; } @@ -284,6 +285,7 @@ if (of_device_is_compatible(np_tim, tim_compat)) { if (of_lpddr3_do_get_timings(np_tim, &timings[i])) { devm_kfree(dev, timings); + of_node_put(np_tim); goto default_timings; } i++; --- linux-5.19.0.orig/drivers/memory/pl353-smc.c +++ linux-5.19.0/drivers/memory/pl353-smc.c @@ -122,6 +122,7 @@ } of_platform_device_create(child, NULL, &adev->dev); + of_node_put(child); return 0; --- linux-5.19.0.orig/drivers/memory/renesas-rpc-if.c +++ linux-5.19.0/drivers/memory/renesas-rpc-if.c @@ -317,6 +317,9 @@ regmap_update_bits(rpc->regmap, RPCIF_PHYCNT, RPCIF_PHYCNT_PHYMEM_MASK, RPCIF_PHYCNT_PHYMEM(hyperflash ? 3 : 0)); + /* DMA Transfer is not supported */ + regmap_update_bits(rpc->regmap, RPCIF_PHYCNT, RPCIF_PHYCNT_HS, 0); + if (rpc->type == RPCIF_RCAR_GEN3) regmap_update_bits(rpc->regmap, RPCIF_PHYCNT, RPCIF_PHYCNT_STRTIM(7), RPCIF_PHYCNT_STRTIM(7)); --- linux-5.19.0.orig/drivers/memstick/core/ms_block.c +++ linux-5.19.0/drivers/memstick/core/ms_block.c @@ -1341,17 +1341,17 @@ msb->zone_count = msb->block_count / MS_BLOCKS_IN_ZONE; msb->logical_block_count = msb->zone_count * 496 - 2; - msb->used_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL); - msb->erased_blocks_bitmap = kzalloc(msb->block_count / 8, GFP_KERNEL); + msb->used_blocks_bitmap = bitmap_zalloc(msb->block_count, GFP_KERNEL); + msb->erased_blocks_bitmap = bitmap_zalloc(msb->block_count, GFP_KERNEL); msb->lba_to_pba_table = kmalloc_array(msb->logical_block_count, sizeof(u16), GFP_KERNEL); if (!msb->used_blocks_bitmap || !msb->lba_to_pba_table || !msb->erased_blocks_bitmap) { - kfree(msb->used_blocks_bitmap); + bitmap_free(msb->used_blocks_bitmap); + bitmap_free(msb->erased_blocks_bitmap); kfree(msb->lba_to_pba_table); - kfree(msb->erased_blocks_bitmap); return -ENOMEM; } @@ -1946,7 +1946,8 @@ static void msb_data_clear(struct msb_data *msb) { kfree(msb->boot_page); - kfree(msb->used_blocks_bitmap); + bitmap_free(msb->used_blocks_bitmap); + bitmap_free(msb->erased_blocks_bitmap); kfree(msb->lba_to_pba_table); kfree(msb->cache); msb->card = NULL; @@ -2115,6 +2116,11 @@ dbg("Set total disk size to %lu sectors", capacity); msb->io_queue = alloc_ordered_workqueue("ms_block", WQ_MEM_RECLAIM); + if (!msb->io_queue) { + rc = -ENOMEM; + goto out_cleanup_disk; + } + INIT_WORK(&msb->io_work, msb_io_work); sg_init_table(msb->prealloc_sg, MS_BLOCK_MAX_SEGS+1); @@ -2124,10 +2130,12 @@ msb_start(card); rc = device_add_disk(&card->dev, msb->disk, NULL); if (rc) - goto out_cleanup_disk; + goto out_destroy_workqueue; dbg("Disk added"); return 0; +out_destroy_workqueue: + destroy_workqueue(msb->io_queue); out_cleanup_disk: blk_cleanup_disk(msb->disk); out_free_tag_set: @@ -2187,7 +2195,6 @@ /* Remove the disk */ del_gendisk(msb->disk); - blk_cleanup_queue(msb->queue); blk_mq_free_tag_set(&msb->tag_set); msb->queue = NULL; --- linux-5.19.0.orig/drivers/memstick/core/mspro_block.c +++ linux-5.19.0/drivers/memstick/core/mspro_block.c @@ -1294,7 +1294,6 @@ del_gendisk(msb->disk); dev_dbg(&card->dev, "mspro block remove\n"); - blk_cleanup_queue(msb->queue); blk_mq_free_tag_set(&msb->tag_set); msb->queue = NULL; --- linux-5.19.0.orig/drivers/mfd/Kconfig +++ linux-5.19.0/drivers/mfd/Kconfig @@ -1966,6 +1966,7 @@ depends on I2C=y depends on OF select REGMAP_I2C + select REGMAP_IRQ select MFD_CORE help Select this option to get support for the ROHM BD9576MUF and @@ -2102,6 +2103,18 @@ under it in the device tree. Additional drivers must be enabled in order to use the functionality of the device. +config MFD_AAEON + tristate "AAEON WMI MFD devices" + depends on ASUS_WMI + depends on UBUNTU_ODM_DRIVERS + help + Say yes here to support mltiple IO devices on Single Board Computers + produced by AAEON. + + This driver leverages the ASUS WMI interface to access device + resources. + + menu "Multimedia Capabilities Port drivers" depends on ARCH_SA1100 --- linux-5.19.0.orig/drivers/mfd/Makefile +++ linux-5.19.0/drivers/mfd/Makefile @@ -270,6 +270,7 @@ obj-$(CONFIG_MFD_ATC260X) += atc260x-core.o obj-$(CONFIG_MFD_ATC260X_I2C) += atc260x-i2c.o +obj-$(CONFIG_MFD_AAEON) += mfd-aaeon.o rsmu-i2c-objs := rsmu_core.o rsmu_i2c.o rsmu-spi-objs := rsmu_core.o rsmu_spi.o --- linux-5.19.0.orig/drivers/mfd/axp20x.c +++ linux-5.19.0/drivers/mfd/axp20x.c @@ -833,7 +833,7 @@ AXP20X_OFF); /* Give capacitors etc. time to drain to avoid kernel panic msg. */ - msleep(500); + mdelay(500); } int axp20x_match_device(struct axp20x_dev *axp20x) --- linux-5.19.0.orig/drivers/mfd/da9062-core.c +++ linux-5.19.0/drivers/mfd/da9062-core.c @@ -453,6 +453,7 @@ regmap_reg_range(DA9062AA_VBUCK1_B, DA9062AA_VBUCK4_B), regmap_reg_range(DA9062AA_VBUCK3_B, DA9062AA_VBUCK3_B), regmap_reg_range(DA9062AA_VLDO1_B, DA9062AA_VLDO4_B), + regmap_reg_range(DA9062AA_CONFIG_J, DA9062AA_CONFIG_J), regmap_reg_range(DA9062AA_GP_ID_0, DA9062AA_GP_ID_19), }; --- linux-5.19.0.orig/drivers/mfd/fsl-imx25-tsadc.c +++ linux-5.19.0/drivers/mfd/fsl-imx25-tsadc.c @@ -69,7 +69,7 @@ int irq; irq = platform_get_irq(pdev, 0); - if (irq <= 0) + if (irq < 0) return irq; tsadc->domain = irq_domain_add_simple(np, 2, 0, &mx25_tsadc_domain_ops, @@ -84,6 +84,19 @@ return 0; } +static int mx25_tsadc_unset_irq(struct platform_device *pdev) +{ + struct mx25_tsadc *tsadc = platform_get_drvdata(pdev); + int irq = platform_get_irq(pdev, 0); + + if (irq >= 0) { + irq_set_chained_handler_and_data(irq, NULL, NULL); + irq_domain_remove(tsadc->domain); + } + + return 0; +} + static void mx25_tsadc_setup_clk(struct platform_device *pdev, struct mx25_tsadc *tsadc) { @@ -171,18 +184,21 @@ platform_set_drvdata(pdev, tsadc); - return devm_of_platform_populate(dev); + ret = devm_of_platform_populate(dev); + if (ret) + goto err_irq; + + return 0; + +err_irq: + mx25_tsadc_unset_irq(pdev); + + return ret; } static int mx25_tsadc_remove(struct platform_device *pdev) { - struct mx25_tsadc *tsadc = platform_get_drvdata(pdev); - int irq = platform_get_irq(pdev, 0); - - if (irq) { - irq_set_chained_handler_and_data(irq, NULL, NULL); - irq_domain_remove(tsadc->domain); - } + mx25_tsadc_unset_irq(pdev); return 0; } --- linux-5.19.0.orig/drivers/mfd/intel_soc_pmic_core.c +++ linux-5.19.0/drivers/mfd/intel_soc_pmic_core.c @@ -77,6 +77,7 @@ return 0; err_del_irq_chip: + pwm_remove_table(crc_pwm_lookup, ARRAY_SIZE(crc_pwm_lookup)); regmap_del_irq_chip(pmic->irq, pmic->irq_chip_data); return ret; } --- linux-5.19.0.orig/drivers/mfd/lp8788-irq.c +++ linux-5.19.0/drivers/mfd/lp8788-irq.c @@ -175,6 +175,7 @@ IRQF_TRIGGER_FALLING | IRQF_ONESHOT, "lp8788-irq", irqd); if (ret) { + irq_domain_remove(lp->irqdm); dev_err(lp->dev, "failed to create a thread for IRQ_N\n"); return ret; } @@ -188,4 +189,6 @@ { if (lp->irq) free_irq(lp->irq, lp->irqdm); + if (lp->irqdm) + irq_domain_remove(lp->irqdm); } --- linux-5.19.0.orig/drivers/mfd/lp8788.c +++ linux-5.19.0/drivers/mfd/lp8788.c @@ -195,8 +195,16 @@ if (ret) return ret; - return mfd_add_devices(lp->dev, -1, lp8788_devs, - ARRAY_SIZE(lp8788_devs), NULL, 0, NULL); + ret = mfd_add_devices(lp->dev, -1, lp8788_devs, + ARRAY_SIZE(lp8788_devs), NULL, 0, NULL); + if (ret) + goto err_exit_irq; + + return 0; + +err_exit_irq: + lp8788_irq_exit(lp); + return ret; } static int lp8788_remove(struct i2c_client *cl) --- linux-5.19.0.orig/drivers/mfd/max77620.c +++ linux-5.19.0/drivers/mfd/max77620.c @@ -419,9 +419,11 @@ ret = max77620_config_fps(chip, fps_child); if (ret < 0) { of_node_put(fps_child); + of_node_put(fps_np); return ret; } } + of_node_put(fps_np); config = chip->enable_global_lpm ? MAX77620_ONOFFCNFG2_SLP_LPM_MSK : 0; ret = regmap_update_bits(chip->rmap, MAX77620_REG_ONOFFCNFG2, --- linux-5.19.0.orig/drivers/mfd/mfd-aaeon.c +++ linux-5.19.0/drivers/mfd/mfd-aaeon.c @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * UP Board main platform driver and FPGA configuration support + * + * Copyright (c) 2021, AAEON Ltd. + * + * Author: Kunyang_Fan + * + * 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. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define AAEON_WMI_MGMT_GUID "97845ED0-4E6D-11DE-8A39-0800200C9A66" + +#define WMI_REPORT_CAPABILITY_METHOD 0x00000000 +#define MAX_BFPI_VERSION 255 +#define GET_REVISION_ID 0x00 + +struct aaeon_wmi_priv { + const struct mfd_cell *cells; + size_t ncells; +}; + +static const struct mfd_cell aaeon_mfd_cells[] = { + { .name = "gpio-aaeon" }, + { .name = "hwmon-aaeon"}, + { .name = "leds-aaeon"}, + { .name = "wdt-aaeon"}, +}; + +static const struct aaeon_wmi_priv aaeon_wmi_priv_data = { + .cells = aaeon_mfd_cells, + .ncells = ARRAY_SIZE(aaeon_mfd_cells), +}; + +static int aaeon_wmi_check_device(void) +{ + int err; + int retval; + + err = asus_wmi_evaluate_method(WMI_REPORT_CAPABILITY_METHOD, GET_REVISION_ID, 0, + &retval); + if (err) + return -ENODEV; + if (retval < 3 || retval > MAX_BFPI_VERSION) + return -ENODEV; + + return 0; +} + +static int aaeon_wmi_probe(struct wmi_device *wdev, const void *context) +{ + struct aaeon_wmi_priv *priv; + + if (!wmi_has_guid(AAEON_WMI_MGMT_GUID)) { + dev_info(&wdev->dev, "AAEON Management GUID not found\n"); + return -ENODEV; + } + + if (aaeon_wmi_check_device()) + return -ENODEV; + + priv = (struct aaeon_wmi_priv *)context; + dev_set_drvdata(&wdev->dev, priv); + + return devm_mfd_add_devices(&wdev->dev, 0, priv->cells, + priv->ncells, NULL, 0, NULL); +} + +static const struct wmi_device_id aaeon_wmi_id_table[] = { + { AAEON_WMI_MGMT_GUID, (void *)&aaeon_wmi_priv_data }, + {} +}; + +static struct wmi_driver aaeon_wmi_driver = { + .driver = { + .name = "mfd-aaeon", + }, + .id_table = aaeon_wmi_id_table, + .probe = aaeon_wmi_probe, +}; + +module_wmi_driver(aaeon_wmi_driver); + +MODULE_DEVICE_TABLE(wmi, aaeon_wmi_id_table); +MODULE_AUTHOR("Kunyang Fan "); +MODULE_DESCRIPTION("AAEON Board WMI driver"); +MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/drivers/mfd/qcom-pm8008.c +++ linux-5.19.0/drivers/mfd/qcom-pm8008.c @@ -54,13 +54,6 @@ #define PM8008_PERIPH_OFFSET(paddr) (paddr - PM8008_PERIPH_0_BASE) -struct pm8008_data { - struct device *dev; - struct regmap *regmap; - int irq; - struct regmap_irq_chip_data *irq_data; -}; - static unsigned int p0_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_0_BASE)}; static unsigned int p1_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_1_BASE)}; static unsigned int p2_offs[] = {PM8008_PERIPH_OFFSET(PM8008_PERIPH_2_BASE)}; @@ -150,7 +143,7 @@ .max_register = 0xFFFF, }; -static int pm8008_init(struct pm8008_data *chip) +static int pm8008_init(struct regmap *regmap) { int rc; @@ -160,34 +153,31 @@ * This is required to enable the writing of TYPE registers in * regmap_irq_sync_unlock(). */ - rc = regmap_write(chip->regmap, - (PM8008_TEMP_ALARM_ADDR | INT_SET_TYPE_OFFSET), - BIT(0)); + rc = regmap_write(regmap, (PM8008_TEMP_ALARM_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); if (rc) return rc; /* Do the same for GPIO1 and GPIO2 peripherals */ - rc = regmap_write(chip->regmap, - (PM8008_GPIO1_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); + rc = regmap_write(regmap, (PM8008_GPIO1_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); if (rc) return rc; - rc = regmap_write(chip->regmap, - (PM8008_GPIO2_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); + rc = regmap_write(regmap, (PM8008_GPIO2_ADDR | INT_SET_TYPE_OFFSET), BIT(0)); return rc; } -static int pm8008_probe_irq_peripherals(struct pm8008_data *chip, +static int pm8008_probe_irq_peripherals(struct device *dev, + struct regmap *regmap, int client_irq) { int rc, i; struct regmap_irq_type *type; struct regmap_irq_chip_data *irq_data; - rc = pm8008_init(chip); + rc = pm8008_init(regmap); if (rc) { - dev_err(chip->dev, "Init failed: %d\n", rc); + dev_err(dev, "Init failed: %d\n", rc); return rc; } @@ -207,10 +197,10 @@ IRQ_TYPE_LEVEL_HIGH | IRQ_TYPE_LEVEL_LOW); } - rc = devm_regmap_add_irq_chip(chip->dev, chip->regmap, client_irq, + rc = devm_regmap_add_irq_chip(dev, regmap, client_irq, IRQF_SHARED, 0, &pm8008_irq_chip, &irq_data); if (rc) { - dev_err(chip->dev, "Failed to add IRQ chip: %d\n", rc); + dev_err(dev, "Failed to add IRQ chip: %d\n", rc); return rc; } @@ -220,26 +210,23 @@ static int pm8008_probe(struct i2c_client *client) { int rc; - struct pm8008_data *chip; - - chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); - if (!chip) - return -ENOMEM; + struct device *dev; + struct regmap *regmap; - chip->dev = &client->dev; - chip->regmap = devm_regmap_init_i2c(client, &qcom_mfd_regmap_cfg); - if (!chip->regmap) - return -ENODEV; + dev = &client->dev; + regmap = devm_regmap_init_i2c(client, &qcom_mfd_regmap_cfg); + if (IS_ERR(regmap)) + return PTR_ERR(regmap); - i2c_set_clientdata(client, chip); + i2c_set_clientdata(client, regmap); - if (of_property_read_bool(chip->dev->of_node, "interrupt-controller")) { - rc = pm8008_probe_irq_peripherals(chip, client->irq); + if (of_property_read_bool(dev->of_node, "interrupt-controller")) { + rc = pm8008_probe_irq_peripherals(dev, regmap, client->irq); if (rc) - dev_err(chip->dev, "Failed to probe irq periphs: %d\n", rc); + dev_err(dev, "Failed to probe irq periphs: %d\n", rc); } - return devm_of_platform_populate(chip->dev); + return devm_of_platform_populate(dev); } static const struct of_device_id pm8008_match[] = { --- linux-5.19.0.orig/drivers/mfd/qcom_rpm.c +++ linux-5.19.0/drivers/mfd/qcom_rpm.c @@ -547,7 +547,7 @@ init_completion(&rpm->ack); /* Enable message RAM clock */ - rpm->ramclk = devm_clk_get(&pdev->dev, "ram"); + rpm->ramclk = devm_clk_get_enabled(&pdev->dev, "ram"); if (IS_ERR(rpm->ramclk)) { ret = PTR_ERR(rpm->ramclk); if (ret == -EPROBE_DEFER) @@ -558,7 +558,6 @@ */ rpm->ramclk = NULL; } - clk_prepare_enable(rpm->ramclk); /* Accepts NULL */ irq_ack = platform_get_irq_byname(pdev, "ack"); if (irq_ack < 0) @@ -673,22 +672,11 @@ if (ret) dev_warn(&pdev->dev, "failed to mark wakeup irq as wakeup\n"); - return of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); -} - -static int qcom_rpm_remove(struct platform_device *pdev) -{ - struct qcom_rpm *rpm = dev_get_drvdata(&pdev->dev); - - of_platform_depopulate(&pdev->dev); - clk_disable_unprepare(rpm->ramclk); - - return 0; + return devm_of_platform_populate(&pdev->dev); } static struct platform_driver qcom_rpm_driver = { .probe = qcom_rpm_probe, - .remove = qcom_rpm_remove, .driver = { .name = "qcom_rpm", .of_match_table = qcom_rpm_of_match, --- linux-5.19.0.orig/drivers/mfd/sm501.c +++ linux-5.19.0/drivers/mfd/sm501.c @@ -1720,7 +1720,12 @@ static int __init sm501_base_init(void) { - platform_driver_register(&sm501_plat_driver); + int ret; + + ret = platform_driver_register(&sm501_plat_driver); + if (ret < 0) + return ret; + return pci_register_driver(&sm501_pci_driver); } --- linux-5.19.0.orig/drivers/mfd/t7l66xb.c +++ linux-5.19.0/drivers/mfd/t7l66xb.c @@ -397,11 +397,8 @@ static int t7l66xb_remove(struct platform_device *dev) { - struct t7l66xb_platform_data *pdata = dev_get_platdata(&dev->dev); struct t7l66xb *t7l66xb = platform_get_drvdata(dev); - int ret; - ret = pdata->disable(dev); clk_disable_unprepare(t7l66xb->clk48m); clk_put(t7l66xb->clk48m); clk_disable_unprepare(t7l66xb->clk32k); @@ -412,8 +409,7 @@ mfd_remove_devices(&dev->dev); kfree(t7l66xb); - return ret; - + return 0; } static struct platform_driver t7l66xb_platform_driver = { --- linux-5.19.0.orig/drivers/misc/cardreader/rtsx_pcr.c +++ linux-5.19.0/drivers/misc/cardreader/rtsx_pcr.c @@ -1507,7 +1507,7 @@ pcr->remap_addr = ioremap(base, len); if (!pcr->remap_addr) { ret = -ENOMEM; - goto free_handle; + goto free_idr; } pcr->rtsx_resv_buf = dma_alloc_coherent(&(pcidev->dev), @@ -1570,6 +1570,10 @@ pcr->rtsx_resv_buf, pcr->rtsx_resv_buf_addr); unmap: iounmap(pcr->remap_addr); +free_idr: + spin_lock(&rtsx_pci_lock); + idr_remove(&rtsx_pci_idr, pcr->id); + spin_unlock(&rtsx_pci_lock); free_handle: kfree(handle); free_pcr: --- linux-5.19.0.orig/drivers/misc/cxl/guest.c +++ linux-5.19.0/drivers/misc/cxl/guest.c @@ -965,10 +965,10 @@ * if it returns an error! */ if ((rc = cxl_register_afu(afu))) - goto err_put1; + goto err_put_dev; if ((rc = cxl_sysfs_afu_add(afu))) - goto err_put1; + goto err_del_dev; /* * pHyp doesn't expose the programming models supported by the @@ -984,7 +984,7 @@ afu->modes_supported = CXL_MODE_DIRECTED; if ((rc = cxl_afu_select_best_mode(afu))) - goto err_put2; + goto err_remove_sysfs; adapter->afu[afu->slice] = afu; @@ -1004,10 +1004,12 @@ return 0; -err_put2: +err_remove_sysfs: cxl_sysfs_afu_remove(afu); -err_put1: - device_unregister(&afu->dev); +err_del_dev: + device_del(&afu->dev); +err_put_dev: + put_device(&afu->dev); free = false; guest_release_serr_irq(afu); err2: @@ -1141,18 +1143,20 @@ * even if it returns an error! */ if ((rc = cxl_register_adapter(adapter))) - goto err_put1; + goto err_put_dev; if ((rc = cxl_sysfs_adapter_add(adapter))) - goto err_put1; + goto err_del_dev; /* release the context lock as the adapter is configured */ cxl_adapter_context_unlock(adapter); return adapter; -err_put1: - device_unregister(&adapter->dev); +err_del_dev: + device_del(&adapter->dev); +err_put_dev: + put_device(&adapter->dev); free = false; cxl_guest_remove_chardev(adapter); err1: --- linux-5.19.0.orig/drivers/misc/cxl/irq.c +++ linux-5.19.0/drivers/misc/cxl/irq.c @@ -350,6 +350,7 @@ out: cxl_ops->release_irq_ranges(&ctx->irqs, ctx->afu->adapter); + bitmap_free(ctx->irq_bitmap); afu_irq_name_free(ctx); return -ENOMEM; } --- linux-5.19.0.orig/drivers/misc/cxl/pci.c +++ linux-5.19.0/drivers/misc/cxl/pci.c @@ -387,6 +387,7 @@ rc = get_phb_index(np, phb_index); if (rc) { pr_err("cxl: invalid phb index\n"); + of_node_put(np); return rc; } @@ -1164,10 +1165,10 @@ * if it returns an error! */ if ((rc = cxl_register_afu(afu))) - goto err_put1; + goto err_put_dev; if ((rc = cxl_sysfs_afu_add(afu))) - goto err_put1; + goto err_del_dev; adapter->afu[afu->slice] = afu; @@ -1176,10 +1177,12 @@ return 0; -err_put1: +err_del_dev: + device_del(&afu->dev); +err_put_dev: pci_deconfigure_afu(afu); cxl_debugfs_afu_remove(afu); - device_unregister(&afu->dev); + put_device(&afu->dev); return rc; err_free_native: @@ -1667,23 +1670,25 @@ * even if it returns an error! */ if ((rc = cxl_register_adapter(adapter))) - goto err_put1; + goto err_put_dev; if ((rc = cxl_sysfs_adapter_add(adapter))) - goto err_put1; + goto err_del_dev; /* Release the context lock as adapter is configured */ cxl_adapter_context_unlock(adapter); return adapter; -err_put1: +err_del_dev: + device_del(&adapter->dev); +err_put_dev: /* This should mirror cxl_remove_adapter, except without the * sysfs parts */ cxl_debugfs_adapter_remove(adapter); cxl_deconfigure_adapter(adapter); - device_unregister(&adapter->dev); + put_device(&adapter->dev); return ERR_PTR(rc); err_release: --- linux-5.19.0.orig/drivers/misc/eeprom/idt_89hpesx.c +++ linux-5.19.0/drivers/misc/eeprom/idt_89hpesx.c @@ -909,14 +909,18 @@ u32 csraddr, csrval; char *buf; + if (*offp) + return 0; + /* Copy data from User-space */ buf = kmalloc(count + 1, GFP_KERNEL); if (!buf) return -ENOMEM; - ret = simple_write_to_buffer(buf, count, offp, ubuf, count); - if (ret < 0) + if (copy_from_user(buf, ubuf, count)) { + ret = -EFAULT; goto free_buf; + } buf[count] = 0; /* Find position of colon in the buffer */ --- linux-5.19.0.orig/drivers/misc/fastrpc.c +++ linux-5.19.0/drivers/misc/fastrpc.c @@ -1943,7 +1943,12 @@ of_property_read_u32(dev->of_node, "qcom,nsessions", &sessions); spin_lock_irqsave(&cctx->lock, flags); - sess = &cctx->session[cctx->sesscount]; + if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) { + dev_err(&pdev->dev, "too many sessions\n"); + spin_unlock_irqrestore(&cctx->lock, flags); + return -ENOSPC; + } + sess = &cctx->session[cctx->sesscount++]; sess->used = false; sess->valid = true; sess->dev = dev; @@ -1956,13 +1961,12 @@ struct fastrpc_session_ctx *dup_sess; for (i = 1; i < sessions; i++) { - if (cctx->sesscount++ >= FASTRPC_MAX_SESSIONS) + if (cctx->sesscount >= FASTRPC_MAX_SESSIONS) break; - dup_sess = &cctx->session[cctx->sesscount]; + dup_sess = &cctx->session[cctx->sesscount++]; memcpy(dup_sess, sess, sizeof(*dup_sess)); } } - cctx->sesscount++; spin_unlock_irqrestore(&cctx->lock, flags); rc = dma_set_mask(dev, DMA_BIT_MASK(32)); if (rc) { --- linux-5.19.0.orig/drivers/misc/habanalabs/common/memory.c +++ linux-5.19.0/drivers/misc/habanalabs/common/memory.c @@ -1245,16 +1245,16 @@ rc = map_phys_pg_pack(ctx, ret_vaddr, phys_pg_pack); if (rc) { dev_err(hdev->dev, "mapping page pack failed for handle %u\n", handle); + mutex_unlock(&ctx->mmu_lock); goto map_err; } rc = hl_mmu_invalidate_cache_range(hdev, false, *vm_type | MMU_OP_SKIP_LOW_CACHE_INV, ctx->asid, ret_vaddr, phys_pg_pack->total_size); + mutex_unlock(&ctx->mmu_lock); if (rc) goto map_err; - mutex_unlock(&ctx->mmu_lock); - /* * prefetch is done upon user's request. it is performed in WQ as and so can * be outside the MMU lock. the operation itself is already protected by the mmu lock @@ -1283,8 +1283,6 @@ return rc; map_err: - mutex_unlock(&ctx->mmu_lock); - if (add_va_block(hdev, va_range, ret_vaddr, ret_vaddr + phys_pg_pack->total_size - 1)) dev_warn(hdev->dev, --- linux-5.19.0.orig/drivers/misc/habanalabs/common/sysfs.c +++ linux-5.19.0/drivers/misc/habanalabs/common/sysfs.c @@ -73,6 +73,7 @@ static struct attribute *hl_dev_clk_attrs[] = { &dev_attr_clk_max_freq_mhz.attr, &dev_attr_clk_cur_freq_mhz.attr, + NULL, }; static ssize_t vrm_ver_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -93,6 +94,7 @@ static struct attribute *hl_dev_vrm_attrs[] = { &dev_attr_vrm_ver.attr, + NULL, }; static ssize_t uboot_ver_show(struct device *dev, struct device_attribute *attr, --- linux-5.19.0.orig/drivers/misc/habanalabs/gaudi/gaudi.c +++ linux-5.19.0/drivers/misc/habanalabs/gaudi/gaudi.c @@ -3339,19 +3339,19 @@ u32 nic_qm_err_cfg, irq_handler_offset; u32 q_off; - mtr_base_en_lo = lower_32_bits(CFG_BASE + + mtr_base_en_lo = lower_32_bits((CFG_BASE & U32_MAX) + mmSYNC_MNGR_E_N_SYNC_MNGR_OBJS_MON_PAY_ADDRL_0); mtr_base_en_hi = upper_32_bits(CFG_BASE + mmSYNC_MNGR_E_N_SYNC_MNGR_OBJS_MON_PAY_ADDRL_0); - so_base_en_lo = lower_32_bits(CFG_BASE + + so_base_en_lo = lower_32_bits((CFG_BASE & U32_MAX) + mmSYNC_MNGR_E_N_SYNC_MNGR_OBJS_SOB_OBJ_0); so_base_en_hi = upper_32_bits(CFG_BASE + mmSYNC_MNGR_E_N_SYNC_MNGR_OBJS_SOB_OBJ_0); - mtr_base_ws_lo = lower_32_bits(CFG_BASE + + mtr_base_ws_lo = lower_32_bits((CFG_BASE & U32_MAX) + mmSYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_PAY_ADDRL_0); mtr_base_ws_hi = upper_32_bits(CFG_BASE + mmSYNC_MNGR_W_S_SYNC_MNGR_OBJS_MON_PAY_ADDRL_0); - so_base_ws_lo = lower_32_bits(CFG_BASE + + so_base_ws_lo = lower_32_bits((CFG_BASE & U32_MAX) + mmSYNC_MNGR_W_S_SYNC_MNGR_OBJS_SOB_OBJ_0); so_base_ws_hi = upper_32_bits(CFG_BASE + mmSYNC_MNGR_W_S_SYNC_MNGR_OBJS_SOB_OBJ_0); @@ -5654,15 +5654,17 @@ { struct asic_fixed_properties *asic_prop = &hdev->asic_prop; struct gaudi_device *gaudi = hdev->asic_specific; - u32 nic_mask_q_id = 1 << (HW_CAP_NIC_SHIFT + - ((parser->hw_queue_id - GAUDI_QUEUE_ID_NIC_0_0) >> 2)); + u32 nic_queue_offset, nic_mask_q_id; if ((parser->hw_queue_id >= GAUDI_QUEUE_ID_NIC_0_0) && - (parser->hw_queue_id <= GAUDI_QUEUE_ID_NIC_9_3) && - (!(gaudi->hw_cap_initialized & nic_mask_q_id))) { - dev_err(hdev->dev, "h/w queue %d is disabled\n", - parser->hw_queue_id); - return -EINVAL; + (parser->hw_queue_id <= GAUDI_QUEUE_ID_NIC_9_3)) { + nic_queue_offset = parser->hw_queue_id - GAUDI_QUEUE_ID_NIC_0_0; + nic_mask_q_id = 1 << (HW_CAP_NIC_SHIFT + (nic_queue_offset >> 2)); + + if (!(gaudi->hw_cap_initialized & nic_mask_q_id)) { + dev_err(hdev->dev, "h/w queue %d is disabled\n", parser->hw_queue_id); + return -EINVAL; + } } /* For internal queue jobs just check if CB address is valid */ @@ -7717,10 +7719,10 @@ struct gaudi_device *gaudi = hdev->asic_specific; u64 data = le64_to_cpu(eq_entry->data[0]); u32 ctl = le32_to_cpu(eq_entry->hdr.ctl); - u32 fw_fatal_err_flag = 0; + u32 fw_fatal_err_flag = 0, flags = 0; u16 event_type = ((ctl & EQ_CTL_EVENT_TYPE_MASK) >> EQ_CTL_EVENT_TYPE_SHIFT); - bool reset_required; + bool reset_required, reset_direct = false; u8 cause; int rc; @@ -7808,7 +7810,8 @@ dev_err(hdev->dev, "reset required due to %s\n", gaudi_irq_map_table[event_type].name); - hl_device_reset(hdev, 0); + reset_direct = true; + goto reset_device; } else { hl_fw_unmask_irq(hdev, event_type); } @@ -7830,7 +7833,8 @@ dev_err(hdev->dev, "reset required due to %s\n", gaudi_irq_map_table[event_type].name); - hl_device_reset(hdev, 0); + reset_direct = true; + goto reset_device; } else { hl_fw_unmask_irq(hdev, event_type); } @@ -7981,12 +7985,17 @@ return; reset_device: - if (hdev->asic_prop.fw_security_enabled) - hl_device_reset(hdev, HL_DRV_RESET_HARD - | HL_DRV_RESET_BYPASS_REQ_TO_FW - | fw_fatal_err_flag); + reset_required = true; + + if (hdev->asic_prop.fw_security_enabled && !reset_direct) + flags = HL_DRV_RESET_HARD | HL_DRV_RESET_BYPASS_REQ_TO_FW | fw_fatal_err_flag; else if (hdev->hard_reset_on_fw_events) - hl_device_reset(hdev, HL_DRV_RESET_HARD | HL_DRV_RESET_DELAY | fw_fatal_err_flag); + flags = HL_DRV_RESET_HARD | HL_DRV_RESET_DELAY | fw_fatal_err_flag; + else + reset_required = false; + + if (reset_required) + hl_device_reset(hdev, flags); else hl_fw_unmask_irq(hdev, event_type); } @@ -9187,6 +9196,7 @@ static struct attribute *gaudi_vrm_dev_attrs[] = { &dev_attr_infineon_ver.attr, + NULL, }; static void gaudi_add_device_attr(struct hl_device *hdev, struct attribute_group *dev_clk_attr_grp, --- linux-5.19.0.orig/drivers/misc/habanalabs/goya/goya_hwmgr.c +++ linux-5.19.0/drivers/misc/habanalabs/goya/goya_hwmgr.c @@ -359,6 +359,7 @@ &dev_attr_pm_mng_profile.attr, &dev_attr_tpc_clk.attr, &dev_attr_tpc_clk_curr.attr, + NULL, }; static ssize_t infineon_ver_show(struct device *dev, struct device_attribute *attr, char *buf) @@ -375,6 +376,7 @@ static struct attribute *goya_vrm_dev_attrs[] = { &dev_attr_infineon_ver.attr, + NULL, }; void goya_add_device_attr(struct hl_device *hdev, struct attribute_group *dev_clk_attr_grp, --- linux-5.19.0.orig/drivers/misc/lkdtm/cfi.c +++ linux-5.19.0/drivers/misc/lkdtm/cfi.c @@ -51,7 +51,11 @@ # ifdef CONFIG_ARM64_BTI_KERNEL # define __no_pac "branch-protection=bti" # else -# define __no_pac "branch-protection=none" +# ifdef CONFIG_CC_HAS_BRANCH_PROT_PAC_RET +# define __no_pac "branch-protection=none" +# else +# define __no_pac "sign-return-address=none" +# endif # endif # define __no_ret_protection __noscs __attribute__((__target__(__no_pac))) #else --- linux-5.19.0.orig/drivers/misc/mei/pci-me.c +++ linux-5.19.0/drivers/misc/mei/pci-me.c @@ -24,6 +24,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)}, @@ -212,7 +215,8 @@ hw->mem_addr = pcim_iomap_table(pdev)[0]; hw->read_fws = mei_me_read_fws; - pci_enable_msi(pdev); + if (!disable_msi) + pci_enable_msi(pdev); hw->irq = pdev->irq; --- linux-5.19.0.orig/drivers/misc/ocxl/config.c +++ linux-5.19.0/drivers/misc/ocxl/config.c @@ -193,6 +193,18 @@ return 0; } +/** + * get_dvsec_vendor0() - Find a related PCI device (function 0) + * @dev: PCI device to match + * @dev0: The PCI device (function 0) found + * @out_pos: The position of PCI device (function 0) + * + * Returns 0 on success, negative on failure. + * + * NOTE: If it's successful, the reference of dev0 is increased, + * so after using it, the callers must call pci_dev_put() to give + * up the reference. + */ static int get_dvsec_vendor0(struct pci_dev *dev, struct pci_dev **dev0, int *out_pos) { @@ -202,10 +214,14 @@ dev = get_function_0(dev); if (!dev) return -1; + } else { + dev = pci_dev_get(dev); } pos = find_dvsec(dev, OCXL_DVSEC_VENDOR_ID); - if (!pos) + if (!pos) { + pci_dev_put(dev); return -1; + } *dev0 = dev; *out_pos = pos; return 0; @@ -222,6 +238,7 @@ pci_read_config_dword(dev0, pos + OCXL_DVSEC_VENDOR_RESET_RELOAD, &reset_reload); + pci_dev_put(dev0); *val = !!(reset_reload & BIT(0)); return 0; } @@ -243,6 +260,7 @@ reset_reload &= ~BIT(0); pci_write_config_dword(dev0, pos + OCXL_DVSEC_VENDOR_RESET_RELOAD, reset_reload); + pci_dev_put(dev0); return 0; } --- linux-5.19.0.orig/drivers/misc/ocxl/file.c +++ linux-5.19.0/drivers/misc/ocxl/file.c @@ -257,6 +257,8 @@ if (IS_ERR(ev_ctx)) return PTR_ERR(ev_ctx); rc = ocxl_irq_set_handler(ctx, irq_id, irq_handler, irq_free, ev_ctx); + if (rc) + eventfd_ctx_put(ev_ctx); break; case OCXL_IOCTL_GET_METADATA: @@ -539,8 +541,11 @@ goto err_put; rc = device_register(&info->dev); - if (rc) - goto err_put; + if (rc) { + free_minor(info); + put_device(&info->dev); + return rc; + } rc = ocxl_sysfs_register_afu(info); if (rc) --- linux-5.19.0.orig/drivers/misc/pci_endpoint_test.c +++ linux-5.19.0/drivers/misc/pci_endpoint_test.c @@ -332,6 +332,22 @@ return false; } +static int pci_endpoint_test_validate_xfer_params(struct device *dev, + struct pci_endpoint_test_xfer_param *param, size_t alignment) +{ + if (!param->size) { + dev_dbg(dev, "Data size is zero\n"); + return -EINVAL; + } + + if (param->size > SIZE_MAX - alignment) { + dev_dbg(dev, "Maximum transfer data size exceeded\n"); + return -EINVAL; + } + + return 0; +} + static bool pci_endpoint_test_copy(struct pci_endpoint_test *test, unsigned long arg) { @@ -363,9 +379,11 @@ return false; } + err = pci_endpoint_test_validate_xfer_params(dev, ¶m, alignment); + if (err) + return false; + size = param.size; - if (size > SIZE_MAX - alignment) - goto err; use_dma = !!(param.flags & PCITEST_FLAGS_USE_DMA); if (use_dma) @@ -497,9 +515,11 @@ return false; } + err = pci_endpoint_test_validate_xfer_params(dev, ¶m, alignment); + if (err) + return false; + size = param.size; - if (size > SIZE_MAX - alignment) - goto err; use_dma = !!(param.flags & PCITEST_FLAGS_USE_DMA); if (use_dma) @@ -595,9 +615,11 @@ return false; } + err = pci_endpoint_test_validate_xfer_params(dev, ¶m, alignment); + if (err) + return false; + size = param.size; - if (size > SIZE_MAX - alignment) - goto err; use_dma = !!(param.flags & PCITEST_FLAGS_USE_DMA); if (use_dma) --- linux-5.19.0.orig/drivers/misc/sgi-gru/grufault.c +++ linux-5.19.0/drivers/misc/sgi-gru/grufault.c @@ -648,6 +648,7 @@ if ((cb & (GRU_HANDLE_STRIDE - 1)) || ucbnum >= GRU_NUM_CB) return -EINVAL; +again: gts = gru_find_lock_gts(cb); if (!gts) return -EINVAL; @@ -656,7 +657,11 @@ if (ucbnum >= gts->ts_cbr_au_count * GRU_CBR_AU_SIZE) goto exit; - gru_check_context_placement(gts); + if (gru_check_context_placement(gts)) { + gru_unlock_gts(gts); + gru_unload_context(gts, 1); + goto again; + } /* * CCH may contain stale data if ts_force_cch_reload is set. @@ -874,7 +879,11 @@ } else { gts->ts_user_blade_id = req.val1; gts->ts_user_chiplet_id = req.val0; - gru_check_context_placement(gts); + if (gru_check_context_placement(gts)) { + gru_unlock_gts(gts); + gru_unload_context(gts, 1); + return ret; + } } break; case sco_gseg_owner: --- linux-5.19.0.orig/drivers/misc/sgi-gru/grumain.c +++ linux-5.19.0/drivers/misc/sgi-gru/grumain.c @@ -716,9 +716,10 @@ * chiplet. Misassignment can occur if the process migrates to a different * blade or if the user changes the selected blade/chiplet. */ -void gru_check_context_placement(struct gru_thread_state *gts) +int gru_check_context_placement(struct gru_thread_state *gts) { struct gru_state *gru; + int ret = 0; /* * If the current task is the context owner, verify that the @@ -726,15 +727,23 @@ * references. Pthread apps use non-owner references to the CBRs. */ gru = gts->ts_gru; + /* + * If gru or gts->ts_tgid_owner isn't initialized properly, return + * success to indicate that the caller does not need to unload the + * gru context.The caller is responsible for their inspection and + * reinitialization if needed. + */ if (!gru || gts->ts_tgid_owner != current->tgid) - return; + return ret; if (!gru_check_chiplet_assignment(gru, gts)) { STAT(check_context_unload); - gru_unload_context(gts, 1); + ret = -EINVAL; } else if (gru_retarget_intr(gts)) { STAT(check_context_retarget_intr); } + + return ret; } @@ -934,7 +943,12 @@ mutex_lock(>s->ts_ctxlock); preempt_disable(); - gru_check_context_placement(gts); + if (gru_check_context_placement(gts)) { + preempt_enable(); + mutex_unlock(>s->ts_ctxlock); + gru_unload_context(gts, 1); + return VM_FAULT_NOPAGE; + } if (!gts->ts_gru) { STAT(load_user_context); --- linux-5.19.0.orig/drivers/misc/sgi-gru/grutables.h +++ linux-5.19.0/drivers/misc/sgi-gru/grutables.h @@ -632,7 +632,7 @@ extern int gru_user_unload_context(unsigned long arg); extern int gru_get_exception_detail(unsigned long arg); extern int gru_set_context_option(unsigned long address); -extern void gru_check_context_placement(struct gru_thread_state *gts); +extern int gru_check_context_placement(struct gru_thread_state *gts); extern int gru_cpu_fault_map_id(void); extern struct vm_area_struct *gru_find_vma(unsigned long vaddr); extern void gru_flush_all_tlb(struct gru_state *gru); --- linux-5.19.0.orig/drivers/misc/tifm_7xx1.c +++ linux-5.19.0/drivers/misc/tifm_7xx1.c @@ -190,7 +190,7 @@ spin_unlock_irqrestore(&fm->lock, flags); } if (sock) - tifm_free_device(&sock->dev); + put_device(&sock->dev); } spin_lock_irqsave(&fm->lock, flags); } --- linux-5.19.0.orig/drivers/misc/uacce/uacce.c +++ linux-5.19.0/drivers/misc/uacce/uacce.c @@ -9,43 +9,38 @@ static struct class *uacce_class; static dev_t uacce_devt; -static DEFINE_MUTEX(uacce_mutex); static DEFINE_XARRAY_ALLOC(uacce_xa); -static int uacce_start_queue(struct uacce_queue *q) +/* + * If the parent driver or the device disappears, the queue state is invalid and + * ops are not usable anymore. + */ +static bool uacce_queue_is_valid(struct uacce_queue *q) { - int ret = 0; + return q->state == UACCE_Q_INIT || q->state == UACCE_Q_STARTED; +} - mutex_lock(&uacce_mutex); +static int uacce_start_queue(struct uacce_queue *q) +{ + int ret; - if (q->state != UACCE_Q_INIT) { - ret = -EINVAL; - goto out_with_lock; - } + if (q->state != UACCE_Q_INIT) + return -EINVAL; if (q->uacce->ops->start_queue) { ret = q->uacce->ops->start_queue(q); if (ret < 0) - goto out_with_lock; + return ret; } q->state = UACCE_Q_STARTED; - -out_with_lock: - mutex_unlock(&uacce_mutex); - - return ret; + return 0; } static int uacce_put_queue(struct uacce_queue *q) { struct uacce_device *uacce = q->uacce; - mutex_lock(&uacce_mutex); - - if (q->state == UACCE_Q_ZOMBIE) - goto out; - if ((q->state == UACCE_Q_STARTED) && uacce->ops->stop_queue) uacce->ops->stop_queue(q); @@ -54,8 +49,6 @@ uacce->ops->put_queue(q); q->state = UACCE_Q_ZOMBIE; -out: - mutex_unlock(&uacce_mutex); return 0; } @@ -65,20 +58,36 @@ { struct uacce_queue *q = filep->private_data; struct uacce_device *uacce = q->uacce; + long ret = -ENXIO; + + /* + * uacce->ops->ioctl() may take the mmap_lock when copying arg to/from + * user. Avoid a circular lock dependency with uacce_fops_mmap(), which + * gets called with mmap_lock held, by taking uacce->mutex instead of + * q->mutex. Doing this in uacce_fops_mmap() is not possible because + * uacce_fops_open() calls iommu_sva_bind_device(), which takes + * mmap_lock, while holding uacce->mutex. + */ + mutex_lock(&uacce->mutex); + if (!uacce_queue_is_valid(q)) + goto out_unlock; switch (cmd) { case UACCE_CMD_START_Q: - return uacce_start_queue(q); - + ret = uacce_start_queue(q); + break; case UACCE_CMD_PUT_Q: - return uacce_put_queue(q); - + ret = uacce_put_queue(q); + break; default: - if (!uacce->ops->ioctl) - return -EINVAL; - - return uacce->ops->ioctl(q, cmd, arg); + if (uacce->ops->ioctl) + ret = uacce->ops->ioctl(q, cmd, arg); + else + ret = -EINVAL; } +out_unlock: + mutex_unlock(&uacce->mutex); + return ret; } #ifdef CONFIG_COMPAT @@ -136,6 +145,13 @@ if (!q) return -ENOMEM; + mutex_lock(&uacce->mutex); + + if (!uacce->parent) { + ret = -EINVAL; + goto out_with_mem; + } + ret = uacce_bind_queue(uacce, q); if (ret) goto out_with_mem; @@ -152,10 +168,9 @@ filep->private_data = q; uacce->inode = inode; q->state = UACCE_Q_INIT; - - mutex_lock(&uacce->queues_lock); + mutex_init(&q->mutex); list_add(&q->list, &uacce->queues); - mutex_unlock(&uacce->queues_lock); + mutex_unlock(&uacce->mutex); return 0; @@ -163,18 +178,20 @@ uacce_unbind_queue(q); out_with_mem: kfree(q); + mutex_unlock(&uacce->mutex); return ret; } static int uacce_fops_release(struct inode *inode, struct file *filep) { struct uacce_queue *q = filep->private_data; + struct uacce_device *uacce = q->uacce; - mutex_lock(&q->uacce->queues_lock); - list_del(&q->list); - mutex_unlock(&q->uacce->queues_lock); + mutex_lock(&uacce->mutex); uacce_put_queue(q); uacce_unbind_queue(q); + list_del(&q->list); + mutex_unlock(&uacce->mutex); kfree(q); return 0; @@ -217,10 +234,9 @@ vma->vm_private_data = q; qfr->type = type; - mutex_lock(&uacce_mutex); - - if (q->state != UACCE_Q_INIT && q->state != UACCE_Q_STARTED) { - ret = -EINVAL; + mutex_lock(&q->mutex); + if (!uacce_queue_is_valid(q)) { + ret = -ENXIO; goto out_with_lock; } @@ -248,12 +264,12 @@ } q->qfrs[type] = qfr; - mutex_unlock(&uacce_mutex); + mutex_unlock(&q->mutex); return ret; out_with_lock: - mutex_unlock(&uacce_mutex); + mutex_unlock(&q->mutex); kfree(qfr); return ret; } @@ -262,12 +278,20 @@ { struct uacce_queue *q = file->private_data; struct uacce_device *uacce = q->uacce; + __poll_t ret = 0; + + mutex_lock(&q->mutex); + if (!uacce_queue_is_valid(q)) + goto out_unlock; poll_wait(file, &q->wait, wait); + if (uacce->ops->is_q_updated && uacce->ops->is_q_updated(q)) - return EPOLLIN | EPOLLRDNORM; + ret = EPOLLIN | EPOLLRDNORM; - return 0; +out_unlock: + mutex_unlock(&q->mutex); + return ret; } static const struct file_operations uacce_fops = { @@ -450,7 +474,7 @@ goto err_with_uacce; INIT_LIST_HEAD(&uacce->queues); - mutex_init(&uacce->queues_lock); + mutex_init(&uacce->mutex); device_initialize(&uacce->dev); uacce->dev.devt = MKDEV(MAJOR(uacce_devt), uacce->dev_id); uacce->dev.class = uacce_class; @@ -507,13 +531,23 @@ if (uacce->inode) unmap_mapping_range(uacce->inode->i_mapping, 0, 0, 1); + /* + * uacce_fops_open() may be running concurrently, even after we remove + * the cdev. Holding uacce->mutex ensures that open() does not obtain a + * removed uacce device. + */ + mutex_lock(&uacce->mutex); /* ensure no open queue remains */ - mutex_lock(&uacce->queues_lock); list_for_each_entry_safe(q, next_q, &uacce->queues, list) { + /* + * Taking q->mutex ensures that fops do not use the defunct + * uacce->ops after the queue is disabled. + */ + mutex_lock(&q->mutex); uacce_put_queue(q); + mutex_unlock(&q->mutex); uacce_unbind_queue(q); } - mutex_unlock(&uacce->queues_lock); /* disable sva now since no opened queues */ uacce_disable_sva(uacce); @@ -521,6 +555,13 @@ if (uacce->cdev) cdev_device_del(uacce->cdev, &uacce->dev); xa_erase(&uacce_xa, uacce->dev_id); + /* + * uacce exists as long as there are open fds, but ops will be freed + * now. Ensure that bugs cause NULL deref rather than use-after-free. + */ + uacce->ops = NULL; + uacce->parent = NULL; + mutex_unlock(&uacce->mutex); put_device(&uacce->dev); } EXPORT_SYMBOL_GPL(uacce_remove); --- linux-5.19.0.orig/drivers/misc/vmw_vmci/vmci_queue_pair.c +++ linux-5.19.0/drivers/misc/vmw_vmci/vmci_queue_pair.c @@ -854,6 +854,7 @@ u32 context_id = vmci_get_context_id(); struct vmci_event_qp ev; + memset(&ev, 0, sizeof(ev)); ev.msg.hdr.dst = vmci_make_handle(context_id, VMCI_EVENT_HANDLER); ev.msg.hdr.src = vmci_make_handle(VMCI_HYPERVISOR_CONTEXT_ID, VMCI_CONTEXT_RESOURCE_ID); @@ -1467,6 +1468,7 @@ * kernel. */ + memset(&ev, 0, sizeof(ev)); ev.msg.hdr.dst = vmci_make_handle(peer_id, VMCI_EVENT_HANDLER); ev.msg.hdr.src = vmci_make_handle(VMCI_HYPERVISOR_CONTEXT_ID, VMCI_CONTEXT_RESOURCE_ID); --- linux-5.19.0.orig/drivers/mmc/core/block.c +++ linux-5.19.0/drivers/mmc/core/block.c @@ -134,6 +134,7 @@ * track of the current selected device partition. */ unsigned int part_curr; +#define MMC_BLK_PART_INVALID UINT_MAX /* Unknown partition active */ int area_type; /* debugfs files (only in main mmc_blk_data) */ @@ -176,7 +177,7 @@ unsigned int part_type); static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, struct mmc_card *card, - int disable_multi, + int recovery_mode, struct mmc_queue *mq); static void mmc_blk_hsq_req_done(struct mmc_request *mrq); @@ -987,33 +988,39 @@ return ms; } +/* + * Attempts to reset the card and get back to the requested partition. + * Therefore any error here must result in cancelling the block layer + * request, it must not be reattempted without going through the mmc_blk + * partition sanity checks. + */ static int mmc_blk_reset(struct mmc_blk_data *md, struct mmc_host *host, int type) { int err; + struct mmc_blk_data *main_md = dev_get_drvdata(&host->card->dev); if (md->reset_done & type) return -EEXIST; md->reset_done |= type; err = mmc_hw_reset(host->card); + /* + * A successful reset will leave the card in the main partition, but + * upon failure it might not be, so set it to MMC_BLK_PART_INVALID + * in that case. + */ + main_md->part_curr = err ? MMC_BLK_PART_INVALID : main_md->part_type; + if (err) + return err; /* Ensure we switch back to the correct partition */ - if (err) { - struct mmc_blk_data *main_md = - dev_get_drvdata(&host->card->dev); - int part_err; - - main_md->part_curr = main_md->part_type; - part_err = mmc_blk_part_switch(host->card, md->part_type); - if (part_err) { - /* - * We have failed to get back into the correct - * partition, so we need to abort the whole request. - */ - return -ENODEV; - } - } - return err; + if (mmc_blk_part_switch(host->card, md->part_type)) + /* + * We have failed to get back into the correct + * partition, so we need to abort the whole request. + */ + return -ENODEV; + return 0; } static inline void mmc_blk_reset_success(struct mmc_blk_data *md, int type) @@ -1140,8 +1147,12 @@ { struct mmc_blk_data *md = mq->blkdata; struct mmc_card *card = md->queue.card; + unsigned int arg = card->erase_arg; + + if (mmc_card_broken_sd_discard(card)) + arg = SD_ERASE_ARG; - mmc_blk_issue_erase_rq(mq, req, MMC_BLK_DISCARD, card->erase_arg); + mmc_blk_issue_erase_rq(mq, req, MMC_BLK_DISCARD, arg); } static void mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq, @@ -1302,7 +1313,7 @@ } static void mmc_blk_data_prep(struct mmc_queue *mq, struct mmc_queue_req *mqrq, - int disable_multi, bool *do_rel_wr_p, + int recovery_mode, bool *do_rel_wr_p, bool *do_data_tag_p) { struct mmc_blk_data *md = mq->blkdata; @@ -1368,12 +1379,12 @@ brq->data.blocks--; /* - * After a read error, we redo the request one sector + * After a read error, we redo the request one (native) sector * at a time in order to accurately determine which * sectors can be read successfully. */ - if (disable_multi) - brq->data.blocks = 1; + if (recovery_mode) + brq->data.blocks = queue_physical_block_size(mq->queue) >> 9; /* * Some controllers have HW issues while operating @@ -1590,7 +1601,7 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq, struct mmc_card *card, - int disable_multi, + int recovery_mode, struct mmc_queue *mq) { u32 readcmd, writecmd; @@ -1599,7 +1610,7 @@ struct mmc_blk_data *md = mq->blkdata; bool do_rel_wr, do_data_tag; - mmc_blk_data_prep(mq, mqrq, disable_multi, &do_rel_wr, &do_data_tag); + mmc_blk_data_prep(mq, mqrq, recovery_mode, &do_rel_wr, &do_data_tag); brq->mrq.cmd = &brq->cmd; @@ -1690,7 +1701,7 @@ #define MMC_READ_SINGLE_RETRIES 2 -/* Single sector read during recovery */ +/* Single (native) sector read during recovery */ static void mmc_blk_read_single(struct mmc_queue *mq, struct request *req) { struct mmc_queue_req *mqrq = req_to_mmc_queue_req(req); @@ -1698,6 +1709,7 @@ struct mmc_card *card = mq->card; struct mmc_host *host = card->host; blk_status_t error = BLK_STS_OK; + size_t bytes_per_read = queue_physical_block_size(mq->queue); do { u32 status; @@ -1732,13 +1744,13 @@ else error = BLK_STS_OK; - } while (blk_update_request(req, error, 512)); + } while (blk_update_request(req, error, bytes_per_read)); return; error_exit: mrq->data->bytes_xfered = 0; - blk_update_request(req, BLK_STS_IOERR, 512); + blk_update_request(req, BLK_STS_IOERR, bytes_per_read); /* Let it try the remaining request again */ if (mqrq->retries > MMC_MAX_RETRIES - 1) mqrq->retries = MMC_MAX_RETRIES - 1; @@ -1866,8 +1878,9 @@ return; /* Reset before last retry */ - if (mqrq->retries + 1 == MMC_MAX_RETRIES) - mmc_blk_reset(md, card->host, type); + if (mqrq->retries + 1 == MMC_MAX_RETRIES && + mmc_blk_reset(md, card->host, type)) + return; /* Command errors fail fast, so use all MMC_MAX_RETRIES */ if (brq->sbc.error || brq->cmd.error) @@ -1879,10 +1892,9 @@ return; } - /* FIXME: Missing single sector read for large sector size */ - if (!mmc_large_sector(card) && rq_data_dir(req) == READ && - brq->data.blocks > 1) { - /* Read one sector at a time */ + if (rq_data_dir(req) == READ && brq->data.blocks > + queue_physical_block_size(mq->queue) >> 9) { + /* Read one (native) sector at a time */ mmc_blk_read_single(mq, req); return; } @@ -2509,7 +2521,6 @@ return md; err_cleanup_queue: - blk_cleanup_queue(md->disk->queue); blk_mq_free_tag_set(&md->queue.tag_set); err_kfree: kfree(md); --- linux-5.19.0.orig/drivers/mmc/core/card.h +++ linux-5.19.0/drivers/mmc/core/card.h @@ -73,6 +73,7 @@ #define EXT_CSD_REV_ANY (-1u) #define CID_MANFID_SANDISK 0x2 +#define CID_MANFID_SANDISK_SD 0x3 #define CID_MANFID_ATP 0x9 #define CID_MANFID_TOSHIBA 0x11 #define CID_MANFID_MICRON 0x13 @@ -258,4 +259,9 @@ return c->quirks & MMC_QUIRK_BROKEN_HPI; } +static inline int mmc_card_broken_sd_discard(const struct mmc_card *c) +{ + return c->quirks & MMC_QUIRK_BROKEN_SD_DISCARD; +} + #endif --- linux-5.19.0.orig/drivers/mmc/core/core.c +++ linux-5.19.0/drivers/mmc/core/core.c @@ -1132,7 +1132,13 @@ mmc_power_cycle(host, ocr); } else { bit = fls(ocr) - 1; - ocr &= 3 << bit; + /* + * The bit variable represents the highest voltage bit set in + * the OCR register. + * To keep a range of 2 values (e.g. 3.2V/3.3V and 3.3V/3.4V), + * we must shift the mask '3' with (bit - 1). + */ + ocr &= 3 << (bit - 1); if (bit != host->ios.vdd) dev_warn(mmc_dev(host), "exceeding card's volts\n"); } @@ -1476,6 +1482,11 @@ card->pref_erase = 0; } +static bool is_trim_arg(unsigned int arg) +{ + return (arg & MMC_TRIM_OR_DISCARD_ARGS) && arg != MMC_DISCARD_ARG; +} + static unsigned int mmc_mmc_erase_timeout(struct mmc_card *card, unsigned int arg, unsigned int qty) { @@ -1758,7 +1769,7 @@ !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_ER_EN)) return -EOPNOTSUPP; - if (mmc_card_mmc(card) && (arg & MMC_TRIM_ARGS) && + if (mmc_card_mmc(card) && is_trim_arg(arg) && !(card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN)) return -EOPNOTSUPP; @@ -1788,7 +1799,7 @@ * identified by the card->eg_boundary flag. */ rem = card->erase_size - (from % card->erase_size); - if ((arg & MMC_TRIM_ARGS) && (card->eg_boundary) && (nr > rem)) { + if ((arg & MMC_TRIM_OR_DISCARD_ARGS) && card->eg_boundary && nr > rem) { err = mmc_do_erase(card, from, from + rem - 1, arg); from += rem; if ((err) || (to <= from)) --- linux-5.19.0.orig/drivers/mmc/core/mmc_test.c +++ linux-5.19.0/drivers/mmc/core/mmc_test.c @@ -3179,7 +3179,8 @@ struct mmc_test_dbgfs_file *df; if (card->debugfs_root) - debugfs_create_file(name, mode, card->debugfs_root, card, fops); + file = debugfs_create_file(name, mode, card->debugfs_root, + card, fops); df = kmalloc(sizeof(*df), GFP_KERNEL); if (!df) { --- linux-5.19.0.orig/drivers/mmc/core/queue.c +++ linux-5.19.0/drivers/mmc/core/queue.c @@ -48,6 +48,7 @@ case REQ_OP_DRV_OUT: case REQ_OP_DISCARD: case REQ_OP_SECURE_ERASE: + case REQ_OP_WRITE_ZEROES: return MMC_ISSUE_SYNC; case REQ_OP_FLUSH: return mmc_cqe_can_dcmd(host) ? MMC_ISSUE_DCMD : MMC_ISSUE_SYNC; @@ -494,7 +495,13 @@ if (blk_queue_quiesced(q)) blk_mq_unquiesce_queue(q); - blk_cleanup_queue(q); + /* + * If the recovery completes the last (and only remaining) request in + * the queue, and the card has been removed, we could end up here with + * the recovery not quite finished yet, so cancel it. + */ + cancel_work_sync(&mq->recovery_work); + blk_mq_free_tag_set(&mq->tag_set); /* --- linux-5.19.0.orig/drivers/mmc/core/quirks.h +++ linux-5.19.0/drivers/mmc/core/quirks.h @@ -100,6 +100,12 @@ MMC_FIXUP("V10016", CID_MANFID_KINGSTON, CID_OEMID_ANY, add_quirk_mmc, MMC_QUIRK_TRIM_BROKEN), + /* + * Some SD cards reports discard support while they don't + */ + MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd, + MMC_QUIRK_BROKEN_SD_DISCARD), + END_FIXUP }; @@ -163,8 +169,10 @@ struct device_node *np; for_each_child_of_node(mmc_dev(card->host)->of_node, np) { - if (of_device_is_compatible(np, compatible)) + if (of_device_is_compatible(np, compatible)) { + of_node_put(np); return true; + } } return false; --- linux-5.19.0.orig/drivers/mmc/core/sd.c +++ linux-5.19.0/drivers/mmc/core/sd.c @@ -870,7 +870,8 @@ * the CCS bit is set as well. We deliberately deviate from the spec in * regards to this, which allows UHS-I to be supported for SDSC cards. */ - if (!mmc_host_is_spi(host) && rocr && (*rocr & 0x01000000)) { + if (!mmc_host_is_spi(host) && (ocr & SD_OCR_S18R) && + rocr && (*rocr & SD_ROCR_S18A)) { err = mmc_set_uhs_voltage(host, pocr); if (err == -EAGAIN) { retries--; @@ -949,16 +950,17 @@ /* Erase init depends on CSD and SSR */ mmc_init_erase(card); - - /* - * Fetch switch information from card. - */ - err = mmc_read_switch(card); - if (err) - return err; } /* + * Fetch switch information from card. Note, sd3_bus_mode can change if + * voltage switch outcome changes, so do this always. + */ + err = mmc_read_switch(card); + if (err) + return err; + + /* * For SPI, enable CRC as appropriate. * This CRC enable is located AFTER the reading of the * card registers because some SDHC cards are not able @@ -1257,7 +1259,7 @@ */ err = sd_read_ext_reg(card, 0, 0, 0, 512, gen_info_buf); if (err) { - pr_warn("%s: error %d reading general info of SD ext reg\n", + pr_err("%s: error %d reading general info of SD ext reg\n", mmc_hostname(card->host), err); goto out; } @@ -1271,7 +1273,12 @@ /* Number of extensions to be find. */ num_ext = gen_info_buf[4]; - /* We support revision 0, but limit it to 512 bytes for simplicity. */ + /* + * We only support revision 0 and limit it to 512 bytes for simplicity. + * No matter what, let's return zero to allow us to continue using the + * card, even if we can't support the features from the SD function + * extensions registers. + */ if (rev != 0 || len > 512) { pr_warn("%s: non-supported SD ext reg layout\n", mmc_hostname(card->host)); @@ -1286,7 +1293,7 @@ for (i = 0; i < num_ext; i++) { err = sd_parse_ext_reg(card, gen_info_buf, &next_ext_addr); if (err) { - pr_warn("%s: error %d parsing SD ext reg\n", + pr_err("%s: error %d parsing SD ext reg\n", mmc_hostname(card->host), err); goto out; } @@ -1480,26 +1487,15 @@ if (!v18_fixup_failed && !mmc_host_is_spi(host) && mmc_host_uhs(host) && mmc_sd_card_using_v18(card) && host->ios.signal_voltage != MMC_SIGNAL_VOLTAGE_180) { - /* - * Re-read switch information in case it has changed since - * oldcard was initialized. - */ - if (oldcard) { - err = mmc_read_switch(card); - if (err) - goto free_card; - } - if (mmc_sd_card_using_v18(card)) { - if (mmc_host_set_uhs_voltage(host) || - mmc_sd_init_uhs_card(card)) { - v18_fixup_failed = true; - mmc_power_cycle(host, ocr); - if (!oldcard) - mmc_remove_card(card); - goto retry; - } - goto done; + if (mmc_host_set_uhs_voltage(host) || + mmc_sd_init_uhs_card(card)) { + v18_fixup_failed = true; + mmc_power_cycle(host, ocr); + if (!oldcard) + mmc_remove_card(card); + goto retry; } + goto cont; } /* Initialization sequence for UHS-I cards */ @@ -1534,7 +1530,7 @@ mmc_set_bus_width(host, MMC_BUS_WIDTH_4); } } - +cont: if (!oldcard) { /* Read/parse the extension registers. */ err = sd_read_ext_regs(card); @@ -1566,7 +1562,7 @@ err = -EINVAL; goto free_card; } -done: + host->card = card; return 0; --- linux-5.19.0.orig/drivers/mmc/core/sdio_bus.c +++ linux-5.19.0/drivers/mmc/core/sdio_bus.c @@ -291,7 +291,8 @@ { struct sdio_func *func = dev_to_sdio_func(dev); - sdio_free_func_cis(func); + if (!(func->card->quirks & MMC_QUIRK_NONSTD_SDIO)) + sdio_free_func_cis(func); kfree(func->info); kfree(func->tmpbuf); --- linux-5.19.0.orig/drivers/mmc/host/Kconfig +++ linux-5.19.0/drivers/mmc/host/Kconfig @@ -1072,9 +1072,10 @@ config MMC_SDHCI_AM654 tristate "Support for the SDHCI Controller in TI's AM654 SOCs" - depends on MMC_SDHCI_PLTFM && OF && REGMAP_MMIO + depends on MMC_SDHCI_PLTFM && OF select MMC_SDHCI_IO_ACCESSORS select MMC_CQHCI + select REGMAP_MMIO help This selects the Secure Digital Host Controller Interface (SDHCI) support present in TI's AM654 SOCs. The controller supports --- linux-5.19.0.orig/drivers/mmc/host/alcor.c +++ linux-5.19.0/drivers/mmc/host/alcor.c @@ -1114,7 +1114,10 @@ alcor_hw_init(host); dev_set_drvdata(&pdev->dev, host); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto free_host; + return 0; free_host: --- linux-5.19.0.orig/drivers/mmc/host/atmel-mci.c +++ linux-5.19.0/drivers/mmc/host/atmel-mci.c @@ -2222,6 +2222,7 @@ { struct mmc_host *mmc; struct atmel_mci_slot *slot; + int ret; mmc = mmc_alloc_host(sizeof(struct atmel_mci_slot), &host->pdev->dev); if (!mmc) @@ -2305,11 +2306,13 @@ host->slot[id] = slot; mmc_regulator_get_supply(mmc); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) { + mmc_free_host(mmc); + return ret; + } if (gpio_is_valid(slot->detect_pin)) { - int ret; - timer_setup(&slot->detect_timer, atmci_detect_change, 0); ret = request_irq(gpio_to_irq(slot->detect_pin), --- linux-5.19.0.orig/drivers/mmc/host/au1xmmc.c +++ linux-5.19.0/drivers/mmc/host/au1xmmc.c @@ -1097,8 +1097,9 @@ if (host->platdata && host->platdata->cd_setup && !(mmc->caps & MMC_CAP_NEEDS_POLL)) host->platdata->cd_setup(mmc, 0); -out_clk: + clk_disable_unprepare(host->clk); +out_clk: clk_put(host->clk); out_irq: free_irq(host->irq, host); --- linux-5.19.0.orig/drivers/mmc/host/cavium-octeon.c +++ linux-5.19.0/drivers/mmc/host/cavium-octeon.c @@ -277,6 +277,7 @@ if (ret) { dev_err(&pdev->dev, "Error populating slots\n"); octeon_mmc_set_shared_power(host, 0); + of_node_put(cn); goto error; } i++; --- linux-5.19.0.orig/drivers/mmc/host/cavium-thunderx.c +++ linux-5.19.0/drivers/mmc/host/cavium-thunderx.c @@ -142,8 +142,10 @@ continue; ret = cvm_mmc_of_slot_probe(&host->slot_pdev[i]->dev, host); - if (ret) + if (ret) { + of_node_put(child_node); goto error; + } } i++; } --- linux-5.19.0.orig/drivers/mmc/host/litex_mmc.c +++ linux-5.19.0/drivers/mmc/host/litex_mmc.c @@ -502,6 +502,7 @@ use_polling: host->mmc->caps |= MMC_CAP_NEEDS_POLL; + host->irq = 0; return 0; } --- linux-5.19.0.orig/drivers/mmc/host/meson-gx-mmc.c +++ linux-5.19.0/drivers/mmc/host/meson-gx-mmc.c @@ -1172,8 +1172,10 @@ } ret = device_reset_optional(&pdev->dev); - if (ret) - return dev_err_probe(&pdev->dev, ret, "device reset failed\n"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "device reset failed\n"); + goto free_host; + } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); host->regs = devm_ioremap_resource(&pdev->dev, res); @@ -1289,7 +1291,9 @@ } mmc->ops = &meson_mmc_ops; - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto err_free_irq; return 0; --- linux-5.19.0.orig/drivers/mmc/host/mmc_hsq.c +++ linux-5.19.0/drivers/mmc/host/mmc_hsq.c @@ -34,7 +34,7 @@ spin_lock_irqsave(&hsq->lock, flags); /* Make sure we are not already running a request now */ - if (hsq->mrq) { + if (hsq->mrq || hsq->recovery_halt) { spin_unlock_irqrestore(&hsq->lock, flags); return; } --- linux-5.19.0.orig/drivers/mmc/host/mmci.c +++ linux-5.19.0/drivers/mmc/host/mmci.c @@ -2256,7 +2256,9 @@ pm_runtime_set_autosuspend_delay(&dev->dev, 50); pm_runtime_use_autosuspend(&dev->dev); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto clk_disable; pm_runtime_put(&dev->dev); return 0; --- linux-5.19.0.orig/drivers/mmc/host/moxart-mmc.c +++ linux-5.19.0/drivers/mmc/host/moxart-mmc.c @@ -111,8 +111,8 @@ #define CLK_DIV_MASK 0x7f /* REG_BUS_WIDTH */ -#define BUS_WIDTH_8 BIT(2) -#define BUS_WIDTH_4 BIT(1) +#define BUS_WIDTH_4_SUPPORT BIT(3) +#define BUS_WIDTH_4 BIT(2) #define BUS_WIDTH_1 BIT(0) #define MMC_VDD_360 23 @@ -524,9 +524,6 @@ case MMC_BUS_WIDTH_4: writel(BUS_WIDTH_4, host->base + REG_BUS_WIDTH); break; - case MMC_BUS_WIDTH_8: - writel(BUS_WIDTH_8, host->base + REG_BUS_WIDTH); - break; default: writel(BUS_WIDTH_1, host->base + REG_BUS_WIDTH); break; @@ -651,16 +648,8 @@ dmaengine_slave_config(host->dma_chan_rx, &cfg); } - switch ((readl(host->base + REG_BUS_WIDTH) >> 3) & 3) { - case 1: + if (readl(host->base + REG_BUS_WIDTH) & BUS_WIDTH_4_SUPPORT) mmc->caps |= MMC_CAP_4_BIT_DATA; - break; - case 2: - mmc->caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA; - break; - default: - break; - } writel(0, host->base + REG_INTERRUPT_MASK); @@ -676,7 +665,9 @@ goto out; dev_set_drvdata(dev, mmc); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto out; dev_dbg(dev, "IRQ=%d, FIFO is %d bytes\n", irq, host->fifo_width); --- linux-5.19.0.orig/drivers/mmc/host/mtk-sd.c +++ linux-5.19.0/drivers/mmc/host/mtk-sd.c @@ -2414,6 +2414,9 @@ /* disable busy check */ sdr_clr_bits(host->base + MSDC_PATCH_BIT1, MSDC_PB1_BUSY_CHECK_SEL); + val = readl(host->base + MSDC_INT); + writel(val, host->base + MSDC_INT); + if (recovery) { sdr_set_field(host->base + MSDC_DMA_CTRL, MSDC_DMA_CTRL_STOP, 1); @@ -2538,13 +2541,11 @@ return PTR_ERR(host->src_clk_cg); } - host->sys_clk_cg = devm_clk_get_optional(&pdev->dev, "sys_cg"); + /* If present, always enable for this clock gate */ + host->sys_clk_cg = devm_clk_get_optional_enabled(&pdev->dev, "sys_cg"); if (IS_ERR(host->sys_clk_cg)) host->sys_clk_cg = NULL; - /* If present, always enable for this clock gate */ - clk_prepare_enable(host->sys_clk_cg); - host->bulk_clks[0].id = "pclk_cg"; host->bulk_clks[1].id = "axi_cg"; host->bulk_clks[2].id = "ahb_cg"; @@ -2871,11 +2872,14 @@ { struct mmc_host *mmc = dev_get_drvdata(dev); int ret; + u32 val; if (mmc->caps2 & MMC_CAP2_CQE) { ret = cqhci_suspend(mmc); if (ret) return ret; + val = readl(((struct msdc_host *)mmc_priv(mmc))->base + MSDC_INT); + writel(val, ((struct msdc_host *)mmc_priv(mmc))->base + MSDC_INT); } return pm_runtime_force_suspend(dev); --- linux-5.19.0.orig/drivers/mmc/host/mxcmmc.c +++ linux-5.19.0/drivers/mmc/host/mxcmmc.c @@ -1025,7 +1025,7 @@ mmc->max_req_size = mmc->max_blk_size * mmc->max_blk_count; mmc->max_seg_size = mmc->max_req_size; - host->devtype = (enum mxcmci_type)of_device_get_match_data(&pdev->dev); + host->devtype = (uintptr_t)of_device_get_match_data(&pdev->dev); /* adjust max_segs after devtype detection */ if (!is_mpc512x_mmc(host)) @@ -1143,7 +1143,9 @@ timer_setup(&host->watchdog, mxcmci_watchdog, 0); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto out_free_dma; return 0; --- linux-5.19.0.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-5.19.0/drivers/mmc/host/omap_hsmmc.c @@ -1946,7 +1946,9 @@ if (!ret) mmc->caps |= MMC_CAP_SDIO_IRQ; - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto err_irq; if (mmc_pdata(host)->name != NULL) { ret = device_create_file(&mmc->class_dev, &dev_attr_slot_name); --- linux-5.19.0.orig/drivers/mmc/host/pxamci.c +++ linux-5.19.0/drivers/mmc/host/pxamci.c @@ -648,7 +648,7 @@ ret = pxamci_of_init(pdev, mmc); if (ret) - return ret; + goto out; host = mmc_priv(mmc); host->mmc = mmc; @@ -672,7 +672,7 @@ ret = pxamci_init_ocr(host); if (ret < 0) - return ret; + goto out; mmc->caps = 0; host->cmdat = 0; @@ -763,7 +763,12 @@ dev_warn(dev, "gpio_ro and get_ro() both defined\n"); } - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) { + if (host->pdata && host->pdata->exit) + host->pdata->exit(dev, mmc); + goto out; + } return 0; --- linux-5.19.0.orig/drivers/mmc/host/renesas_sdhi.h +++ linux-5.19.0/drivers/mmc/host/renesas_sdhi.h @@ -43,6 +43,7 @@ bool hs400_4taps; bool fixed_addr_mode; bool dma_one_rx_only; + bool manual_tap_correction; u32 hs400_bad_taps; const u8 (*hs400_calib_table)[SDHI_CALIB_TABLE_MAX]; }; --- linux-5.19.0.orig/drivers/mmc/host/renesas_sdhi_core.c +++ linux-5.19.0/drivers/mmc/host/renesas_sdhi_core.c @@ -49,9 +49,6 @@ #define HOST_MODE_GEN3_32BIT (HOST_MODE_GEN3_WMODE | HOST_MODE_GEN3_BUSWIDTH) #define HOST_MODE_GEN3_64BIT 0 -#define CTL_SDIF_MODE 0xe6 -#define SDIF_MODE_HS400 BIT(0) - #define SDHI_VER_GEN2_SDR50 0x490c #define SDHI_VER_RZ_A1 0x820b /* very old datasheets said 0x490c for SDR104, too. They are wrong! */ @@ -131,6 +128,7 @@ struct clk *ref_clk = priv->clk; unsigned int freq, diff, best_freq = 0, diff_min = ~0; unsigned int new_clock, clkh_shift = 0; + unsigned int new_upper_limit; int i; /* @@ -156,13 +154,20 @@ * greater than, new_clock. As we can divide by 1 << i for * any i in [0, 9] we want the input clock to be as close as * possible, but no greater than, new_clock << i. + * + * Add an upper limit of 1/1024 rate higher to the clock rate to fix + * clk rate jumping to lower rate due to rounding error (eg: RZ/G2L has + * 3 clk sources 533.333333 MHz, 400 MHz and 266.666666 MHz. The request + * for 533.333333 MHz will selects a slower 400 MHz due to rounding + * error (533333333 Hz / 4 * 4 = 533333332 Hz < 533333333 Hz)). */ for (i = min(9, ilog2(UINT_MAX / new_clock)); i >= 0; i--) { freq = clk_round_rate(ref_clk, new_clock << i); - if (freq > (new_clock << i)) { + new_upper_limit = (new_clock << i) + ((new_clock << i) >> 10); + if (freq > new_upper_limit) { /* Too fast; look for a slightly slower option */ freq = clk_round_rate(ref_clk, (new_clock << i) / 4 * 3); - if (freq > (new_clock << i)) + if (freq > new_upper_limit) continue; } @@ -184,6 +189,7 @@ static void renesas_sdhi_set_clock(struct tmio_mmc_host *host, unsigned int new_clock) { + unsigned int clk_margin; u32 clk = 0, clock; sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, ~CLK_CTL_SCLKEN & @@ -197,7 +203,13 @@ host->mmc->actual_clock = renesas_sdhi_clk_update(host, new_clock); clock = host->mmc->actual_clock / 512; - for (clk = 0x80000080; new_clock >= (clock << 1); clk >>= 1) + /* + * Add a margin of 1/1024 rate higher to the clock rate in order + * to avoid clk variable setting a value of 0 due to the margin + * provided for actual_clock in renesas_sdhi_clk_update(). + */ + clk_margin = new_clock >> 10; + for (clk = 0x80000080; new_clock + clk_margin >= (clock << 1); clk >>= 1) clock <<= 1; /* 1/1 clock is option */ @@ -383,8 +395,7 @@ sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_DT2FF, priv->scc_tappos_hs400); - /* Gen3 can't do automatic tap correction with HS400, so disable it */ - if (sd_ctrl_read16(host, CTL_VERSION) == SDHI_VER_GEN3_SDMMC) + if (priv->quirks && priv->quirks->manual_tap_correction) sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL, ~SH_MOBILE_SDHI_SCC_RVSCNTL_RVSEN & sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_RVSCNTL)); @@ -535,7 +546,7 @@ SH_MOBILE_SDHI_SCC_TMPPORT2_HS400OSEL) & sd_scc_read32(host, priv, SH_MOBILE_SDHI_SCC_TMPPORT2)); - if (priv->adjust_hs400_calib_table) + if (priv->quirks && (priv->quirks->hs400_calib_table || priv->quirks->hs400_bad_taps)) renesas_sdhi_adjust_hs400_mode_disable(host); sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, CLK_CTL_SCLKEN | @@ -562,23 +573,25 @@ } /* only populated for TMIO_MMC_MIN_RCAR2 */ -static void renesas_sdhi_reset(struct tmio_mmc_host *host) +static void renesas_sdhi_reset(struct tmio_mmc_host *host, bool preserve) { struct renesas_sdhi *priv = host_to_priv(host); int ret; u16 val; - if (priv->rstc) { - reset_control_reset(priv->rstc); - /* Unknown why but without polling reset status, it will hang */ - read_poll_timeout(reset_control_status, ret, ret == 0, 1, 100, - false, priv->rstc); - /* At least SDHI_VER_GEN2_SDR50 needs manual release of reset */ - sd_ctrl_write16(host, CTL_RESET_SD, 0x0001); - priv->needs_adjust_hs400 = false; - renesas_sdhi_set_clock(host, host->clk_cache); - } else if (priv->scc_ctl) { - renesas_sdhi_scc_reset(host, priv); + if (!preserve) { + if (priv->rstc) { + reset_control_reset(priv->rstc); + /* Unknown why but without polling reset status, it will hang */ + read_poll_timeout(reset_control_status, ret, ret == 0, 1, 100, + false, priv->rstc); + /* At least SDHI_VER_GEN2_SDR50 needs manual release of reset */ + sd_ctrl_write16(host, CTL_RESET_SD, 0x0001); + priv->needs_adjust_hs400 = false; + renesas_sdhi_set_clock(host, host->clk_cache); + } else if (priv->scc_ctl) { + renesas_sdhi_scc_reset(host, priv); + } } if (sd_ctrl_read16(host, CTL_VERSION) >= SDHI_VER_GEN3_SD) { @@ -719,7 +732,7 @@ sd_scc_write32(host, priv, SH_MOBILE_SDHI_SCC_RVSREQ, 0); /* Change TAP position according to correction status */ - if (sd_ctrl_read16(host, CTL_VERSION) == SDHI_VER_GEN3_SDMMC && + if (priv->quirks && priv->quirks->manual_tap_correction && host->mmc->ios.timing == MMC_TIMING_MMC_HS400) { u32 bad_taps = priv->quirks ? priv->quirks->hs400_bad_taps : 0; /* @@ -938,6 +951,10 @@ if (IS_ERR(priv->clk_cd)) return dev_err_probe(&pdev->dev, PTR_ERR(priv->clk_cd), "cannot get cd clock"); + priv->rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); + if (IS_ERR(priv->rstc)) + return PTR_ERR(priv->rstc); + priv->pinctrl = devm_pinctrl_get(&pdev->dev); if (!IS_ERR(priv->pinctrl)) { priv->pins_default = pinctrl_lookup_state(priv->pinctrl, @@ -1030,10 +1047,6 @@ if (ret) goto efree; - priv->rstc = devm_reset_control_get_optional_exclusive(&pdev->dev, NULL); - if (IS_ERR(priv->rstc)) - return PTR_ERR(priv->rstc); - ver = sd_ctrl_read16(host, CTL_VERSION); /* GEN2_SDR104 is first known SDHI to use 32bit block count */ if (ver < SDHI_VER_GEN2_SDR104 && mmc_data->max_blk_count > U16_MAX) @@ -1055,11 +1068,14 @@ if (ver >= SDHI_VER_GEN3_SD) host->get_timeout_cycles = renesas_sdhi_gen3_get_cycles; + /* Check for SCC so we can reset it if needed */ + if (of_data && of_data->scc_offset && ver >= SDHI_VER_GEN2_SDR104) + priv->scc_ctl = host->ctl + of_data->scc_offset; + /* Enable tuning iff we have an SCC and a supported mode */ - if (of_data && of_data->scc_offset && - (host->mmc->caps & MMC_CAP_UHS_SDR104 || - host->mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | - MMC_CAP2_HS400_1_8V))) { + if (priv->scc_ctl && (host->mmc->caps & MMC_CAP_UHS_SDR104 || + host->mmc->caps2 & (MMC_CAP2_HS200_1_8V_SDR | + MMC_CAP2_HS400_1_8V))) { const struct renesas_sdhi_scc *taps = of_data->taps; bool use_4tap = quirks && quirks->hs400_4taps; bool hit = false; @@ -1079,7 +1095,6 @@ if (!hit) dev_warn(&host->pdev->dev, "Unknown clock rate for tuning\n"); - priv->scc_ctl = host->ctl + of_data->scc_offset; host->check_retune = renesas_sdhi_check_scc_error; host->ops.execute_tuning = renesas_sdhi_execute_tuning; host->ops.prepare_hs400_tuning = renesas_sdhi_prepare_hs400_tuning; --- linux-5.19.0.orig/drivers/mmc/host/renesas_sdhi_internal_dmac.c +++ linux-5.19.0/drivers/mmc/host/renesas_sdhi_internal_dmac.c @@ -170,6 +170,7 @@ static const struct renesas_sdhi_quirks sdhi_quirks_4tap = { .hs400_4taps = true, .hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7), + .manual_tap_correction = true, }; static const struct renesas_sdhi_quirks sdhi_quirks_nohs400 = { @@ -182,25 +183,30 @@ static const struct renesas_sdhi_quirks sdhi_quirks_bad_taps1357 = { .hs400_bad_taps = BIT(1) | BIT(3) | BIT(5) | BIT(7), + .manual_tap_correction = true, }; static const struct renesas_sdhi_quirks sdhi_quirks_bad_taps2367 = { .hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7), + .manual_tap_correction = true, }; static const struct renesas_sdhi_quirks sdhi_quirks_r8a7796_es13 = { .hs400_4taps = true, .hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7), .hs400_calib_table = r8a7796_es13_calib_table, + .manual_tap_correction = true, }; static const struct renesas_sdhi_quirks sdhi_quirks_r8a77965 = { .hs400_bad_taps = BIT(2) | BIT(3) | BIT(6) | BIT(7), .hs400_calib_table = r8a77965_calib_table, + .manual_tap_correction = true, }; static const struct renesas_sdhi_quirks sdhi_quirks_r8a77990 = { .hs400_calib_table = r8a77990_calib_table, + .manual_tap_correction = true, }; /* --- linux-5.19.0.orig/drivers/mmc/host/rtsx_pci_sdmmc.c +++ linux-5.19.0/drivers/mmc/host/rtsx_pci_sdmmc.c @@ -1474,6 +1474,7 @@ struct realtek_pci_sdmmc *host; struct rtsx_pcr *pcr; struct pcr_handle *handle = pdev->dev.platform_data; + int ret; if (!handle) return -ENXIO; @@ -1511,7 +1512,13 @@ pm_runtime_mark_last_busy(&pdev->dev); pm_runtime_use_autosuspend(&pdev->dev); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) { + pm_runtime_dont_use_autosuspend(&pdev->dev); + pm_runtime_disable(&pdev->dev); + mmc_free_host(mmc); + return ret; + } return 0; } --- linux-5.19.0.orig/drivers/mmc/host/rtsx_usb_sdmmc.c +++ linux-5.19.0/drivers/mmc/host/rtsx_usb_sdmmc.c @@ -1332,6 +1332,7 @@ #ifdef RTSX_USB_USE_LEDS_CLASS int err; #endif + int ret; ucr = usb_get_intfdata(to_usb_interface(pdev->dev.parent)); if (!ucr) @@ -1368,7 +1369,15 @@ INIT_WORK(&host->led_work, rtsx_usb_update_led); #endif - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) { +#ifdef RTSX_USB_USE_LEDS_CLASS + led_classdev_unregister(&host->led); +#endif + mmc_free_host(mmc); + pm_runtime_disable(&pdev->dev); + return ret; + } return 0; } --- linux-5.19.0.orig/drivers/mmc/host/sdhci-brcmstb.c +++ linux-5.19.0/drivers/mmc/host/sdhci-brcmstb.c @@ -12,6 +12,7 @@ #include #include +#include "sdhci-cqhci.h" #include "sdhci-pltfm.h" #include "cqhci.h" @@ -53,7 +54,7 @@ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_brcmstb_priv *priv = sdhci_pltfm_priv(pltfm_host); - sdhci_reset(host, mask); + sdhci_and_cqhci_reset(host, mask); /* Reset will clear this, so re-enable it */ if (priv->flags & BRCMSTB_PRIV_FLAGS_GATE_CLOCK) --- linux-5.19.0.orig/drivers/mmc/host/sdhci-cqhci.h +++ linux-5.19.0/drivers/mmc/host/sdhci-cqhci.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * Copyright 2022 The Chromium OS Authors + * + * Support that applies to the combination of SDHCI and CQHCI, while not + * expressing a dependency between the two modules. + */ + +#ifndef __MMC_HOST_SDHCI_CQHCI_H__ +#define __MMC_HOST_SDHCI_CQHCI_H__ + +#include "cqhci.h" +#include "sdhci.h" + +static inline void sdhci_and_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); +} + +#endif /* __MMC_HOST_SDHCI_CQHCI_H__ */ --- linux-5.19.0.orig/drivers/mmc/host/sdhci-esdhc-imx.c +++ linux-5.19.0/drivers/mmc/host/sdhci-esdhc-imx.c @@ -25,6 +25,7 @@ #include #include #include +#include "sdhci-cqhci.h" #include "sdhci-pltfm.h" #include "sdhci-esdhc.h" #include "cqhci.h" @@ -1288,7 +1289,7 @@ static void esdhc_reset(struct sdhci_host *host, u8 mask) { - sdhci_reset(host, mask); + sdhci_and_cqhci_reset(host, mask); sdhci_writel(host, host->ier, SDHCI_INT_ENABLE); sdhci_writel(host, host->ier, SDHCI_SIGNAL_ENABLE); @@ -1511,7 +1512,7 @@ * system resume back. */ cqhci_writel(cq_host, 0, CQHCI_CTL); - if (cqhci_readl(cq_host, CQHCI_CTL) && CQHCI_HALT) + if (cqhci_readl(cq_host, CQHCI_CTL) & CQHCI_HALT) dev_err(mmc_dev(host->mmc), "failed to exit halt state when enable CQE\n"); @@ -1660,6 +1661,10 @@ host->mmc_host_ops.execute_tuning = usdhc_execute_tuning; } + err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); + if (err) + goto disable_ahb_clk; + if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) sdhci_esdhc_ops.platform_execute_tuning = esdhc_executing_tuning; @@ -1667,13 +1672,15 @@ if (imx_data->socdata->flags & ESDHC_FLAG_ERR004536) host->quirks |= SDHCI_QUIRK_BROKEN_ADMA; - if (imx_data->socdata->flags & ESDHC_FLAG_HS400) + if (host->mmc->caps & MMC_CAP_8_BIT_DATA && + imx_data->socdata->flags & ESDHC_FLAG_HS400) host->mmc->caps2 |= MMC_CAP2_HS400; if (imx_data->socdata->flags & ESDHC_FLAG_BROKEN_AUTO_CMD23) host->quirks2 |= SDHCI_QUIRK2_ACMD23_BROKEN; - if (imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { + if (host->mmc->caps & MMC_CAP_8_BIT_DATA && + imx_data->socdata->flags & ESDHC_FLAG_HS400_ES) { host->mmc->caps2 |= MMC_CAP2_HS400_ES; host->mmc_host_ops.hs400_enhanced_strobe = esdhc_hs400_enhanced_strobe; @@ -1695,10 +1702,6 @@ goto disable_ahb_clk; } - err = sdhci_esdhc_imx_probe_dt(pdev, host, imx_data); - if (err) - goto disable_ahb_clk; - sdhci_esdhc_imx_hwinit(host); err = sdhci_add_host(host); --- linux-5.19.0.orig/drivers/mmc/host/sdhci-msm.c +++ linux-5.19.0/drivers/mmc/host/sdhci-msm.c @@ -2462,6 +2462,7 @@ {.compatible = "qcom,sm8250-sdhci", .data = &sdhci_msm_v5_var}, {.compatible = "qcom,sc7280-sdhci", .data = &sdhci_msm_v5_var}, /* Add entries where soc specific handling is required, here */ + {.compatible = "qcom,sdm670-sdhci", .data = &sdm845_sdhci_var}, {.compatible = "qcom,sdm845-sdhci", .data = &sdm845_sdhci_var}, {.compatible = "qcom,sc7180-sdhci", .data = &sdm845_sdhci_var}, {}, --- linux-5.19.0.orig/drivers/mmc/host/sdhci-of-arasan.c +++ linux-5.19.0/drivers/mmc/host/sdhci-of-arasan.c @@ -25,6 +25,7 @@ #include #include "cqhci.h" +#include "sdhci-cqhci.h" #include "sdhci-pltfm.h" #define SDHCI_ARASAN_VENDOR_REGISTER 0x78 @@ -366,7 +367,7 @@ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_arasan_data *sdhci_arasan = sdhci_pltfm_priv(pltfm_host); - sdhci_reset(host, mask); + sdhci_and_cqhci_reset(host, mask); if (sdhci_arasan->quirks & SDHCI_ARASAN_QUIRK_FORCE_CDTEST) { ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); --- linux-5.19.0.orig/drivers/mmc/host/sdhci-of-at91.c +++ linux-5.19.0/drivers/mmc/host/sdhci-of-at91.c @@ -100,8 +100,13 @@ static void sdhci_at91_set_uhs_signaling(struct sdhci_host *host, unsigned int timing) { - if (timing == MMC_TIMING_MMC_DDR52) - sdhci_writeb(host, SDMMC_MC1R_DDR, SDMMC_MC1R); + u8 mc1r; + + if (timing == MMC_TIMING_MMC_DDR52) { + mc1r = sdhci_readb(host, SDMMC_MC1R); + mc1r |= SDMMC_MC1R_DDR; + sdhci_writeb(host, mc1r, SDMMC_MC1R); + } sdhci_set_uhs_signaling(host, timing); } --- linux-5.19.0.orig/drivers/mmc/host/sdhci-of-dwcmshc.c +++ linux-5.19.0/drivers/mmc/host/sdhci-of-dwcmshc.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "sdhci-pltfm.h" @@ -55,14 +56,15 @@ #define DLL_LOCK_WO_TMOUT(x) \ ((((x) & DWCMSHC_EMMC_DLL_LOCKED) == DWCMSHC_EMMC_DLL_LOCKED) && \ (((x) & DWCMSHC_EMMC_DLL_TIMEOUT) == 0)) -#define RK3568_MAX_CLKS 3 +#define RK35xx_MAX_CLKS 3 #define BOUNDARY_OK(addr, len) \ ((addr | (SZ_128M - 1)) == ((addr + len - 1) | (SZ_128M - 1))) -struct rk3568_priv { +struct rk35xx_priv { /* Rockchip specified optional clocks */ - struct clk_bulk_data rockchip_clks[RK3568_MAX_CLKS]; + struct clk_bulk_data rockchip_clks[RK35xx_MAX_CLKS]; + struct reset_control *reset; u8 txclk_tapnum; }; @@ -176,7 +178,7 @@ { struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct dwcmshc_priv *dwc_priv = sdhci_pltfm_priv(pltfm_host); - struct rk3568_priv *priv = dwc_priv->priv; + struct rk35xx_priv *priv = dwc_priv->priv; u8 txclk_tapnum = DLL_TXCLK_TAPNUM_DEFAULT; u32 extra, reg; int err; @@ -255,6 +257,21 @@ sdhci_writel(host, extra, DWCMSHC_EMMC_DLL_STRBIN); } +static void rk35xx_sdhci_reset(struct sdhci_host *host, u8 mask) +{ + struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); + struct dwcmshc_priv *dwc_priv = sdhci_pltfm_priv(pltfm_host); + struct rk35xx_priv *priv = dwc_priv->priv; + + if (mask & SDHCI_RESET_ALL && priv->reset) { + reset_control_assert(priv->reset); + udelay(1); + reset_control_deassert(priv->reset); + } + + sdhci_reset(host, mask); +} + static const struct sdhci_ops sdhci_dwcmshc_ops = { .set_clock = sdhci_set_clock, .set_bus_width = sdhci_set_bus_width, @@ -264,12 +281,12 @@ .adma_write_desc = dwcmshc_adma_write_desc, }; -static const struct sdhci_ops sdhci_dwcmshc_rk3568_ops = { +static const struct sdhci_ops sdhci_dwcmshc_rk35xx_ops = { .set_clock = dwcmshc_rk3568_set_clock, .set_bus_width = sdhci_set_bus_width, .set_uhs_signaling = dwcmshc_set_uhs_signaling, .get_max_clock = sdhci_pltfm_clk_get_max_clock, - .reset = sdhci_reset, + .reset = rk35xx_sdhci_reset, .adma_write_desc = dwcmshc_adma_write_desc, }; @@ -279,30 +296,46 @@ .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN, }; -static const struct sdhci_pltfm_data sdhci_dwcmshc_rk3568_pdata = { - .ops = &sdhci_dwcmshc_rk3568_ops, +#ifdef CONFIG_ACPI +static const struct sdhci_pltfm_data sdhci_dwcmshc_bf3_pdata = { + .ops = &sdhci_dwcmshc_ops, + .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN, + .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | + SDHCI_QUIRK2_ACMD23_BROKEN, +}; +#endif + +static const struct sdhci_pltfm_data sdhci_dwcmshc_rk35xx_pdata = { + .ops = &sdhci_dwcmshc_rk35xx_ops, .quirks = SDHCI_QUIRK_CAP_CLOCK_BASE_BROKEN | SDHCI_QUIRK_BROKEN_TIMEOUT_VAL, .quirks2 = SDHCI_QUIRK2_PRESET_VALUE_BROKEN | SDHCI_QUIRK2_CLOCK_DIV_ZERO_BROKEN, }; -static int dwcmshc_rk3568_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv) +static int dwcmshc_rk35xx_init(struct sdhci_host *host, struct dwcmshc_priv *dwc_priv) { int err; - struct rk3568_priv *priv = dwc_priv->priv; + struct rk35xx_priv *priv = dwc_priv->priv; + + priv->reset = devm_reset_control_array_get_optional_exclusive(mmc_dev(host->mmc)); + if (IS_ERR(priv->reset)) { + err = PTR_ERR(priv->reset); + dev_err(mmc_dev(host->mmc), "failed to get reset control %d\n", err); + return err; + } priv->rockchip_clks[0].id = "axi"; priv->rockchip_clks[1].id = "block"; priv->rockchip_clks[2].id = "timer"; - err = devm_clk_bulk_get_optional(mmc_dev(host->mmc), RK3568_MAX_CLKS, + err = devm_clk_bulk_get_optional(mmc_dev(host->mmc), RK35xx_MAX_CLKS, priv->rockchip_clks); if (err) { dev_err(mmc_dev(host->mmc), "failed to get clocks %d\n", err); return err; } - err = clk_bulk_prepare_enable(RK3568_MAX_CLKS, priv->rockchip_clks); + err = clk_bulk_prepare_enable(RK35xx_MAX_CLKS, priv->rockchip_clks); if (err) { dev_err(mmc_dev(host->mmc), "failed to enable clocks %d\n", err); return err; @@ -324,7 +357,7 @@ static const struct of_device_id sdhci_dwcmshc_dt_ids[] = { { .compatible = "rockchip,rk3568-dwcmshc", - .data = &sdhci_dwcmshc_rk3568_pdata, + .data = &sdhci_dwcmshc_rk35xx_pdata, }, { .compatible = "snps,dwcmshc-sdhci", @@ -336,7 +369,10 @@ #ifdef CONFIG_ACPI static const struct acpi_device_id sdhci_dwcmshc_acpi_ids[] = { - { .id = "MLNXBF30" }, + { + .id = "MLNXBF30", + .driver_data = (kernel_ulong_t)&sdhci_dwcmshc_bf3_pdata, + }, {} }; #endif @@ -347,12 +383,12 @@ struct sdhci_pltfm_host *pltfm_host; struct sdhci_host *host; struct dwcmshc_priv *priv; - struct rk3568_priv *rk_priv = NULL; + struct rk35xx_priv *rk_priv = NULL; const struct sdhci_pltfm_data *pltfm_data; int err; u32 extra; - pltfm_data = of_device_get_match_data(&pdev->dev); + pltfm_data = device_get_match_data(&pdev->dev); if (!pltfm_data) { dev_err(&pdev->dev, "Error: No device match data found\n"); return -ENODEV; @@ -402,8 +438,8 @@ host->mmc_host_ops.request = dwcmshc_request; host->mmc_host_ops.hs400_enhanced_strobe = dwcmshc_hs400_enhanced_strobe; - if (pltfm_data == &sdhci_dwcmshc_rk3568_pdata) { - rk_priv = devm_kzalloc(&pdev->dev, sizeof(struct rk3568_priv), GFP_KERNEL); + if (pltfm_data == &sdhci_dwcmshc_rk35xx_pdata) { + rk_priv = devm_kzalloc(&pdev->dev, sizeof(struct rk35xx_priv), GFP_KERNEL); if (!rk_priv) { err = -ENOMEM; goto err_clk; @@ -411,7 +447,7 @@ priv->priv = rk_priv; - err = dwcmshc_rk3568_init(host, priv); + err = dwcmshc_rk35xx_init(host, priv); if (err) goto err_clk; } @@ -428,7 +464,7 @@ clk_disable_unprepare(pltfm_host->clk); clk_disable_unprepare(priv->bus_clk); if (rk_priv) - clk_bulk_disable_unprepare(RK3568_MAX_CLKS, + clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, rk_priv->rockchip_clks); free_pltfm: sdhci_pltfm_free(pdev); @@ -440,14 +476,14 @@ struct sdhci_host *host = platform_get_drvdata(pdev); struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); - struct rk3568_priv *rk_priv = priv->priv; + struct rk35xx_priv *rk_priv = priv->priv; sdhci_remove_host(host, 0); clk_disable_unprepare(pltfm_host->clk); clk_disable_unprepare(priv->bus_clk); if (rk_priv) - clk_bulk_disable_unprepare(RK3568_MAX_CLKS, + clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, rk_priv->rockchip_clks); sdhci_pltfm_free(pdev); @@ -460,7 +496,7 @@ struct sdhci_host *host = dev_get_drvdata(dev); struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); - struct rk3568_priv *rk_priv = priv->priv; + struct rk35xx_priv *rk_priv = priv->priv; int ret; ret = sdhci_suspend_host(host); @@ -472,7 +508,7 @@ clk_disable_unprepare(priv->bus_clk); if (rk_priv) - clk_bulk_disable_unprepare(RK3568_MAX_CLKS, + clk_bulk_disable_unprepare(RK35xx_MAX_CLKS, rk_priv->rockchip_clks); return ret; @@ -483,7 +519,7 @@ struct sdhci_host *host = dev_get_drvdata(dev); struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct dwcmshc_priv *priv = sdhci_pltfm_priv(pltfm_host); - struct rk3568_priv *rk_priv = priv->priv; + struct rk35xx_priv *rk_priv = priv->priv; int ret; ret = clk_prepare_enable(pltfm_host->clk); @@ -497,7 +533,7 @@ } if (rk_priv) { - ret = clk_bulk_prepare_enable(RK3568_MAX_CLKS, + ret = clk_bulk_prepare_enable(RK35xx_MAX_CLKS, rk_priv->rockchip_clks); if (ret) return ret; --- linux-5.19.0.orig/drivers/mmc/host/sdhci-of-esdhc.c +++ linux-5.19.0/drivers/mmc/host/sdhci-of-esdhc.c @@ -904,6 +904,7 @@ scfg_node = of_find_matching_node(NULL, scfg_device_ids); if (scfg_node) scfg_base = of_iomap(scfg_node, 0); + of_node_put(scfg_node); if (scfg_base) { sdhciovselcr = SDHCIOVSELCR_TGLEN | SDHCIOVSELCR_VSELVAL; --- linux-5.19.0.orig/drivers/mmc/host/sdhci-pci-core.c +++ linux-5.19.0/drivers/mmc/host/sdhci-pci-core.c @@ -893,6 +893,12 @@ dmi_match(DMI_SYS_VENDOR, "IRBIS")); } +static bool jsl_broken_hs400es(struct sdhci_pci_slot *slot) +{ + return slot->chip->pdev->device == PCI_DEVICE_ID_INTEL_JSL_EMMC && + dmi_match(DMI_BIOS_VENDOR, "ASUSTeK COMPUTER INC."); +} + static int glk_emmc_probe_slot(struct sdhci_pci_slot *slot) { int ret = byt_emmc_probe_slot(slot); @@ -901,9 +907,11 @@ 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; - slot->host->mmc_host_ops.hs400_enhanced_strobe = - intel_hs400_enhanced_strobe; + if (!jsl_broken_hs400es(slot)) { + slot->host->mmc->caps2 |= MMC_CAP2_HS400_ES; + slot->host->mmc_host_ops.hs400_enhanced_strobe = + intel_hs400_enhanced_strobe; + } slot->host->mmc->caps2 |= MMC_CAP2_CQE_DCMD; } @@ -1725,6 +1733,8 @@ } } + pci_dev_put(smbus_dev); + if (gen == AMD_CHIPSET_BEFORE_ML || gen == AMD_CHIPSET_CZ) chip->quirks2 |= SDHCI_QUIRK2_CLEAR_TRANSFERMODE_REG_BEFORE_CMD; --- linux-5.19.0.orig/drivers/mmc/host/sdhci-pci-o2micro.c +++ linux-5.19.0/drivers/mmc/host/sdhci-pci-o2micro.c @@ -32,6 +32,7 @@ #define O2_SD_CAPS 0xE0 #define O2_SD_ADMA1 0xE2 #define O2_SD_ADMA2 0xE7 +#define O2_SD_MISC_CTRL2 0xF0 #define O2_SD_INF_MOD 0xF1 #define O2_SD_MISC_CTRL4 0xFC #define O2_SD_MISC_CTRL 0x1C0 @@ -874,6 +875,12 @@ /* Set Tuning Windows to 5 */ pci_write_config_byte(chip->pdev, O2_SD_TUNING_CTRL, 0x55); + //Adjust 1st and 2nd CD debounce time + pci_read_config_dword(chip->pdev, O2_SD_MISC_CTRL2, &scratch_32); + scratch_32 &= 0xFFE7FFFF; + scratch_32 |= 0x00180000; + pci_write_config_dword(chip->pdev, O2_SD_MISC_CTRL2, scratch_32); + pci_write_config_dword(chip->pdev, O2_SD_DETECT_SETTING, 1); /* Lock WP */ ret = pci_read_config_byte(chip->pdev, O2_SD_LOCK_WP, &scratch); --- linux-5.19.0.orig/drivers/mmc/host/sdhci-sprd.c +++ linux-5.19.0/drivers/mmc/host/sdhci-sprd.c @@ -309,7 +309,7 @@ static unsigned int sdhci_sprd_get_min_clock(struct sdhci_host *host) { - return 400000; + return 100000; } static void sdhci_sprd_set_uhs_signaling(struct sdhci_host *host, @@ -470,7 +470,7 @@ } if (IS_ERR(sprd_host->pinctrl)) - return 0; + goto reset; switch (ios->signal_voltage) { case MMC_SIGNAL_VOLTAGE_180: @@ -498,6 +498,8 @@ /* Wait for 300 ~ 500 us for pin state stable */ usleep_range(300, 500); + +reset: sdhci_reset(host, SDHCI_RESET_CMD | SDHCI_RESET_DATA); return 0; --- linux-5.19.0.orig/drivers/mmc/host/sdhci-tegra.c +++ linux-5.19.0/drivers/mmc/host/sdhci-tegra.c @@ -28,6 +28,7 @@ #include +#include "sdhci-cqhci.h" #include "sdhci-pltfm.h" #include "cqhci.h" @@ -367,7 +368,7 @@ const struct sdhci_tegra_soc_data *soc_data = tegra_host->soc_data; u32 misc_ctrl, clk_ctrl, pad_ctrl; - sdhci_reset(host, mask); + sdhci_and_cqhci_reset(host, mask); if (!(mask & SDHCI_RESET_ALL)) return; @@ -773,7 +774,7 @@ dev_err(dev, "failed to set clk rate to %luHz: %d\n", host_clk, err); - tegra_host->curr_clk_rate = host_clk; + tegra_host->curr_clk_rate = clk_get_rate(pltfm_host->clk); if (tegra_host->ddr_signaling) host->max_clk = host_clk; else --- linux-5.19.0.orig/drivers/mmc/host/sdhci.c +++ linux-5.19.0/drivers/mmc/host/sdhci.c @@ -338,6 +338,7 @@ if (soft) { /* force clock reconfiguration */ host->clock = 0; + host->reinit_uhs = true; mmc->ops->set_ios(mmc, &mmc->ios); } } @@ -2254,11 +2255,46 @@ } EXPORT_SYMBOL_GPL(sdhci_set_uhs_signaling); +static bool sdhci_timing_has_preset(unsigned char timing) +{ + switch (timing) { + case MMC_TIMING_UHS_SDR12: + case MMC_TIMING_UHS_SDR25: + case MMC_TIMING_UHS_SDR50: + case MMC_TIMING_UHS_SDR104: + case MMC_TIMING_UHS_DDR50: + case MMC_TIMING_MMC_DDR52: + return true; + }; + return false; +} + +static bool sdhci_preset_needed(struct sdhci_host *host, unsigned char timing) +{ + return !(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) && + sdhci_timing_has_preset(timing); +} + +static bool sdhci_presetable_values_change(struct sdhci_host *host, struct mmc_ios *ios) +{ + /* + * Preset Values are: Driver Strength, Clock Generator and SDCLK/RCLK + * Frequency. Check if preset values need to be enabled, or the Driver + * Strength needs updating. Note, clock changes are handled separately. + */ + return !host->preset_enabled && + (sdhci_preset_needed(host, ios->timing) || host->drv_type != ios->drv_type); +} + void sdhci_set_ios(struct mmc_host *mmc, struct mmc_ios *ios) { struct sdhci_host *host = mmc_priv(mmc); + bool reinit_uhs = host->reinit_uhs; + bool turning_on_clk = false; u8 ctrl; + host->reinit_uhs = false; + if (ios->power_mode == MMC_POWER_UNDEFINED) return; @@ -2284,6 +2320,8 @@ sdhci_enable_preset_value(host, false); if (!ios->clock || ios->clock != host->clock) { + turning_on_clk = ios->clock && !host->clock; + host->ops->set_clock(host, ios->clock); host->clock = ios->clock; @@ -2310,6 +2348,17 @@ host->ops->set_bus_width(host, ios->bus_width); + /* + * Special case to avoid multiple clock changes during voltage + * switching. + */ + if (!reinit_uhs && + turning_on_clk && + host->timing == ios->timing && + host->version >= SDHCI_SPEC_300 && + !sdhci_presetable_values_change(host, ios)) + return; + ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); if (!(host->quirks & SDHCI_QUIRK_NO_HISPD_BIT)) { @@ -2353,6 +2402,7 @@ } sdhci_writew(host, ctrl_2, SDHCI_HOST_CONTROL2); + host->drv_type = ios->drv_type; } else { /* * According to SDHC Spec v3.00, if the Preset Value @@ -2380,19 +2430,14 @@ host->ops->set_uhs_signaling(host, ios->timing); host->timing = ios->timing; - if (!(host->quirks2 & SDHCI_QUIRK2_PRESET_VALUE_BROKEN) && - ((ios->timing == MMC_TIMING_UHS_SDR12) || - (ios->timing == MMC_TIMING_UHS_SDR25) || - (ios->timing == MMC_TIMING_UHS_SDR50) || - (ios->timing == MMC_TIMING_UHS_SDR104) || - (ios->timing == MMC_TIMING_UHS_DDR50) || - (ios->timing == MMC_TIMING_MMC_DDR52))) { + if (sdhci_preset_needed(host, ios->timing)) { u16 preset; sdhci_enable_preset_value(host, true); preset = sdhci_get_preset_value(host); ios->drv_type = FIELD_GET(SDHCI_PRESET_DRV_MASK, preset); + host->drv_type = ios->drv_type; } /* Re-enable SD Clock */ @@ -3727,6 +3772,7 @@ sdhci_init(host, 0); host->pwr = 0; host->clock = 0; + host->reinit_uhs = true; mmc->ops->set_ios(mmc, &mmc->ios); } else { sdhci_init(host, (mmc->pm_flags & MMC_PM_KEEP_POWER)); @@ -3789,6 +3835,7 @@ /* Force clock and power re-program */ host->pwr = 0; host->clock = 0; + host->reinit_uhs = true; mmc->ops->start_signal_voltage_switch(mmc, &mmc->ios); mmc->ops->set_ios(mmc, &mmc->ios); --- linux-5.19.0.orig/drivers/mmc/host/sdhci.h +++ linux-5.19.0/drivers/mmc/host/sdhci.h @@ -523,6 +523,8 @@ unsigned int clock; /* Current clock (MHz) */ u8 pwr; /* Current voltage */ + u8 drv_type; /* Current UHS-I driver type */ + bool reinit_uhs; /* Force UHS-related re-initialization */ bool runtime_suspended; /* Host is runtime suspended */ bool bus_on; /* Bus power prevents runtime suspend */ --- linux-5.19.0.orig/drivers/mmc/host/sdhci_am654.c +++ linux-5.19.0/drivers/mmc/host/sdhci_am654.c @@ -15,6 +15,7 @@ #include #include "cqhci.h" +#include "sdhci-cqhci.h" #include "sdhci-pltfm.h" /* CTL_CFG Registers */ @@ -378,7 +379,7 @@ struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_am654_data *sdhci_am654 = sdhci_pltfm_priv(pltfm_host); - sdhci_reset(host, mask); + sdhci_and_cqhci_reset(host, mask); if (sdhci_am654->quirks & SDHCI_AM654_QUIRK_FORCE_CDTEST) { ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL); @@ -464,7 +465,7 @@ .set_clock = sdhci_am654_set_clock, .write_b = sdhci_am654_write_b, .irq = sdhci_am654_cqhci_irq, - .reset = sdhci_reset, + .reset = sdhci_and_cqhci_reset, }; static const struct sdhci_pltfm_data sdhci_am654_pdata = { @@ -494,7 +495,7 @@ .set_clock = sdhci_am654_set_clock, .write_b = sdhci_am654_write_b, .irq = sdhci_am654_cqhci_irq, - .reset = sdhci_reset, + .reset = sdhci_and_cqhci_reset, }; static const struct sdhci_pltfm_data sdhci_j721e_8bit_pdata = { --- linux-5.19.0.orig/drivers/mmc/host/sdhci_f_sdh30.c +++ linux-5.19.0/drivers/mmc/host/sdhci_f_sdh30.c @@ -168,6 +168,9 @@ if (reg & SDHCI_CAN_DO_8BIT) priv->vendor_hs200 = F_SDH30_EMMC_HS200; + if (!(reg & SDHCI_TIMEOUT_CLK_MASK)) + host->quirks |= SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK; + ret = sdhci_add_host(host); if (ret) goto err_add_host; --- linux-5.19.0.orig/drivers/mmc/host/tmio_mmc.c +++ linux-5.19.0/drivers/mmc/host/tmio_mmc.c @@ -75,7 +75,7 @@ tmio_mmc_clk_start(host); } -static void tmio_mmc_reset(struct tmio_mmc_host *host) +static void tmio_mmc_reset(struct tmio_mmc_host *host, bool preserve) { sd_ctrl_write16(host, CTL_RESET_SDIO, 0x0000); usleep_range(10000, 11000); --- linux-5.19.0.orig/drivers/mmc/host/tmio_mmc.h +++ linux-5.19.0/drivers/mmc/host/tmio_mmc.h @@ -42,6 +42,7 @@ #define CTL_DMA_ENABLE 0xd8 #define CTL_RESET_SD 0xe0 #define CTL_VERSION 0xe2 +#define CTL_SDIF_MODE 0xe6 /* only known on R-Car 2+ */ /* Definitions for values the CTL_STOP_INTERNAL_ACTION register can take */ #define TMIO_STOP_STP BIT(0) @@ -98,6 +99,9 @@ /* Definitions for values the CTL_DMA_ENABLE register can take */ #define DMA_ENABLE_DMASDRW BIT(1) +/* Definitions for values the CTL_SDIF_MODE register can take */ +#define SDIF_MODE_HS400 BIT(0) /* only known on R-Car 2+ */ + /* Define some IRQ masks */ /* This is the mask used at reset by the chip */ #define TMIO_MASK_ALL 0x837f031d @@ -181,7 +185,7 @@ int (*multi_io_quirk)(struct mmc_card *card, unsigned int direction, int blk_size); int (*write16_hook)(struct tmio_mmc_host *host, int addr); - void (*reset)(struct tmio_mmc_host *host); + void (*reset)(struct tmio_mmc_host *host, bool preserve); bool (*check_retune)(struct tmio_mmc_host *host, struct mmc_request *mrq); void (*fixup_request)(struct tmio_mmc_host *host, struct mmc_request *mrq); unsigned int (*get_timeout_cycles)(struct tmio_mmc_host *host); --- linux-5.19.0.orig/drivers/mmc/host/tmio_mmc_core.c +++ linux-5.19.0/drivers/mmc/host/tmio_mmc_core.c @@ -179,8 +179,17 @@ sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, reg); } -static void tmio_mmc_reset(struct tmio_mmc_host *host) +static void tmio_mmc_reset(struct tmio_mmc_host *host, bool preserve) { + u16 card_opt, clk_ctrl, sdif_mode; + + if (preserve) { + card_opt = sd_ctrl_read16(host, CTL_SD_MEM_CARD_OPT); + clk_ctrl = sd_ctrl_read16(host, CTL_SD_CARD_CLK_CTL); + if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) + sdif_mode = sd_ctrl_read16(host, CTL_SDIF_MODE); + } + /* FIXME - should we set stop clock reg here */ sd_ctrl_write16(host, CTL_RESET_SD, 0x0000); usleep_range(10000, 11000); @@ -190,7 +199,7 @@ tmio_mmc_abort_dma(host); if (host->reset) - host->reset(host); + host->reset(host, preserve); sd_ctrl_write32_as_16_and_16(host, CTL_IRQ_MASK, host->sdcard_irq_mask_all); host->sdcard_irq_mask = host->sdcard_irq_mask_all; @@ -206,6 +215,13 @@ sd_ctrl_write16(host, CTL_TRANSACTION_CTL, 0x0001); } + if (preserve) { + sd_ctrl_write16(host, CTL_SD_MEM_CARD_OPT, card_opt); + sd_ctrl_write16(host, CTL_SD_CARD_CLK_CTL, clk_ctrl); + if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) + sd_ctrl_write16(host, CTL_SDIF_MODE, sdif_mode); + } + if (host->mmc->card) mmc_retune_needed(host->mmc); } @@ -248,7 +264,7 @@ spin_unlock_irqrestore(&host->lock, flags); - tmio_mmc_reset(host); + tmio_mmc_reset(host, true); /* Ready for new calls */ host->mrq = NULL; @@ -961,7 +977,7 @@ tmio_mmc_power_off(host); /* For R-Car Gen2+, we need to reset SDHI specific SCC */ if (host->pdata->flags & TMIO_MMC_MIN_RCAR2) - tmio_mmc_reset(host); + tmio_mmc_reset(host, false); host->set_clock(host, 0); break; @@ -1189,7 +1205,7 @@ _host->sdcard_irq_mask_all = TMIO_MASK_ALL; _host->set_clock(_host, 0); - tmio_mmc_reset(_host); + tmio_mmc_reset(_host, false); spin_lock_init(&_host->lock); mutex_init(&_host->ios_lock); @@ -1285,7 +1301,7 @@ struct tmio_mmc_host *host = dev_get_drvdata(dev); tmio_mmc_clk_enable(host); - tmio_mmc_reset(host); + tmio_mmc_reset(host, false); if (host->clk_cache) host->set_clock(host, host->clk_cache); --- linux-5.19.0.orig/drivers/mmc/host/toshsd.c +++ linux-5.19.0/drivers/mmc/host/toshsd.c @@ -651,7 +651,9 @@ if (ret) goto unmap; - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto free_irq; base = pci_resource_start(pdev, 0); dev_dbg(&pdev->dev, "MMIO %pa, IRQ %d\n", &base, pdev->irq); @@ -660,6 +662,8 @@ return 0; +free_irq: + free_irq(pdev->irq, host); unmap: pci_iounmap(pdev, host->ioaddr); release: --- linux-5.19.0.orig/drivers/mmc/host/via-sdmmc.c +++ linux-5.19.0/drivers/mmc/host/via-sdmmc.c @@ -1151,7 +1151,9 @@ pcidev->subsystem_device == 0x3891) sdhost->quirks = VIA_CRDR_QUIRK_300MS_PWRDELAY; - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto unmap; return 0; --- linux-5.19.0.orig/drivers/mmc/host/vub300.c +++ linux-5.19.0/drivers/mmc/host/vub300.c @@ -2299,14 +2299,14 @@ 0x0000, 0x0000, &vub300->system_port_status, sizeof(vub300->system_port_status), 1000); if (retval < 0) { - goto error4; + goto error5; } else if (sizeof(vub300->system_port_status) == retval) { vub300->card_present = (0x0001 & vub300->system_port_status.port_flags) ? 1 : 0; vub300->read_only = (0x0010 & vub300->system_port_status.port_flags) ? 1 : 0; } else { - goto error4; + goto error5; } usb_set_intfdata(interface, vub300); INIT_DELAYED_WORK(&vub300->pollwork, vub300_pollwork_thread); @@ -2329,8 +2329,13 @@ "USB vub300 remote SDIO host controller[%d]" "connected with no SD/SDIO card inserted\n", interface_to_InterfaceNumber(interface)); - mmc_add_host(mmc); + retval = mmc_add_host(mmc); + if (retval) + goto error6; + return 0; +error6: + del_timer_sync(&vub300->inactivity_timer); error5: mmc_free_host(mmc); /* --- linux-5.19.0.orig/drivers/mmc/host/wbsd.c +++ linux-5.19.0/drivers/mmc/host/wbsd.c @@ -1698,7 +1698,17 @@ */ wbsd_init_device(host); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) { + if (!pnp) + wbsd_chip_poweroff(host); + + wbsd_release_resources(host); + wbsd_free_mmc(dev); + + mmc_free_host(mmc); + return ret; + } pr_info("%s: W83L51xD", mmc_hostname(mmc)); if (host->chip_id != 0) --- linux-5.19.0.orig/drivers/mmc/host/wmt-sdmmc.c +++ linux-5.19.0/drivers/mmc/host/wmt-sdmmc.c @@ -846,7 +846,7 @@ if (IS_ERR(priv->clk_sdmmc)) { dev_err(&pdev->dev, "Error getting clock\n"); ret = PTR_ERR(priv->clk_sdmmc); - goto fail5; + goto fail5_and_a_half; } ret = clk_prepare_enable(priv->clk_sdmmc); @@ -856,13 +856,20 @@ /* configure the controller to a known 'ready' state */ wmt_reset_hardware(mmc); - mmc_add_host(mmc); + ret = mmc_add_host(mmc); + if (ret) + goto fail7; dev_info(&pdev->dev, "WMT SDHC Controller initialized\n"); return 0; +fail7: + clk_disable_unprepare(priv->clk_sdmmc); fail6: clk_put(priv->clk_sdmmc); +fail5_and_a_half: + dma_free_coherent(&pdev->dev, mmc->max_blk_count * 16, + priv->dma_desc_buffer, priv->dma_desc_device_addr); fail5: free_irq(dma_irq, priv); fail4: --- linux-5.19.0.orig/drivers/mtd/devices/docg3.c +++ linux-5.19.0/drivers/mtd/devices/docg3.c @@ -1974,9 +1974,14 @@ dev_err(dev, "No I/O memory resource defined\n"); return ret; } - base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); ret = -ENOMEM; + base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); + if (!base) { + dev_err(dev, "devm_ioremap dev failed\n"); + return ret; + } + cascade = devm_kcalloc(dev, DOC_MAX_NBFLOORS, sizeof(*cascade), GFP_KERNEL); if (!cascade) --- linux-5.19.0.orig/drivers/mtd/devices/mtd_dataflash.c +++ linux-5.19.0/drivers/mtd/devices/mtd_dataflash.c @@ -112,6 +112,13 @@ MODULE_DEVICE_TABLE(of, dataflash_dt_ids); #endif +static const struct spi_device_id dataflash_spi_ids[] = { + { .name = "at45", }, + { .name = "dataflash", }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(spi, dataflash_spi_ids); + /* ......................................................................... */ /* @@ -936,6 +943,7 @@ .probe = dataflash_probe, .remove = dataflash_remove, + .id_table = dataflash_spi_ids, /* FIXME: investigate suspend and resume... */ }; --- linux-5.19.0.orig/drivers/mtd/devices/spear_smi.c +++ linux-5.19.0/drivers/mtd/devices/spear_smi.c @@ -1045,13 +1045,9 @@ { struct spear_smi *dev; struct spear_snor_flash *flash; - int ret, i; + int i; dev = platform_get_drvdata(pdev); - if (!dev) { - dev_err(&pdev->dev, "dev is null\n"); - return -ENODEV; - } /* clean up for all nor flash */ for (i = 0; i < dev->num_flashes; i++) { @@ -1060,9 +1056,7 @@ continue; /* clean up mtd stuff */ - ret = mtd_device_unregister(&flash->mtd); - if (ret) - dev_err(&pdev->dev, "error removing mtd\n"); + WARN_ON(mtd_device_unregister(&flash->mtd)); } clk_disable_unprepare(dev->clk); --- linux-5.19.0.orig/drivers/mtd/devices/st_spi_fsm.c +++ linux-5.19.0/drivers/mtd/devices/st_spi_fsm.c @@ -2115,10 +2115,12 @@ (long long)fsm->mtd.size, (long long)(fsm->mtd.size >> 20), fsm->mtd.erasesize, (fsm->mtd.erasesize >> 10)); - return mtd_device_register(&fsm->mtd, NULL, 0); - + ret = mtd_device_register(&fsm->mtd, NULL, 0); + if (ret) { err_clk_unprepare: - clk_disable_unprepare(fsm->clk); + clk_disable_unprepare(fsm->clk); + } + return ret; } @@ -2126,9 +2128,11 @@ { struct stfsm *fsm = platform_get_drvdata(pdev); + WARN_ON(mtd_device_unregister(&fsm->mtd)); + clk_disable_unprepare(fsm->clk); - return mtd_device_unregister(&fsm->mtd); + return 0; } #ifdef CONFIG_PM_SLEEP --- linux-5.19.0.orig/drivers/mtd/hyperbus/rpc-if.c +++ linux-5.19.0/drivers/mtd/hyperbus/rpc-if.c @@ -134,7 +134,7 @@ error = rpcif_hw_init(&hyperbus->rpc, true); if (error) - return error; + goto out_disable_rpm; hyperbus->hbdev.map.size = hyperbus->rpc.size; hyperbus->hbdev.map.virt = hyperbus->rpc.dirmap; @@ -145,8 +145,12 @@ hyperbus->hbdev.np = of_get_next_child(pdev->dev.parent->of_node, NULL); error = hyperbus_register_device(&hyperbus->hbdev); if (error) - rpcif_disable_rpm(&hyperbus->rpc); + goto out_disable_rpm; + return 0; + +out_disable_rpm: + rpcif_disable_rpm(&hyperbus->rpc); return error; } --- linux-5.19.0.orig/drivers/mtd/lpddr/lpddr2_nvm.c +++ linux-5.19.0/drivers/mtd/lpddr/lpddr2_nvm.c @@ -433,6 +433,8 @@ /* lpddr2_nvm address range */ add_range = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!add_range) + return -ENODEV; /* Populate map_info data structure */ *map = (struct map_info) { --- linux-5.19.0.orig/drivers/mtd/maps/physmap-versatile.c +++ linux-5.19.0/drivers/mtd/maps/physmap-versatile.c @@ -93,6 +93,7 @@ return -ENODEV; } ebi_base = of_iomap(ebi, 0); + of_node_put(ebi); if (!ebi_base) return -ENODEV; @@ -207,6 +208,7 @@ versatile_flashprot = (enum versatile_flashprot)devid->data; rmap = syscon_node_to_regmap(sysnp); + of_node_put(sysnp); if (IS_ERR(rmap)) return PTR_ERR(rmap); --- linux-5.19.0.orig/drivers/mtd/maps/pxa2xx-flash.c +++ linux-5.19.0/drivers/mtd/maps/pxa2xx-flash.c @@ -64,6 +64,7 @@ if (!info->map.virt) { printk(KERN_WARNING "Failed to ioremap %s\n", info->map.name); + kfree(info); return -ENOMEM; } info->map.cached = ioremap_cache(info->map.phys, info->map.size); @@ -85,6 +86,7 @@ iounmap((void *)info->map.virt); if (info->map.cached) iounmap(info->map.cached); + kfree(info); return -EIO; } info->mtd->dev.parent = &pdev->dev; --- linux-5.19.0.orig/drivers/mtd/mtdcore.c +++ linux-5.19.0/drivers/mtd/mtdcore.c @@ -660,8 +660,10 @@ dev_set_drvdata(&mtd->dev, mtd); of_node_get(mtd_get_of_node(mtd)); error = device_register(&mtd->dev); - if (error) + if (error) { + put_device(&mtd->dev); goto fail_added; + } /* Add the nvmem provider */ error = mtd_nvmem_add(mtd); @@ -711,6 +713,7 @@ { int ret; struct mtd_notifier *not; + struct device_node *mtd_of_node; mutex_lock(&mtd_table_mutex); @@ -729,6 +732,7 @@ mtd->index, mtd->name, mtd->usecount); ret = -EBUSY; } else { + mtd_of_node = mtd_get_of_node(mtd); debugfs_remove_recursive(mtd->dbg.dfs_dir); /* Try to remove the NVMEM provider */ @@ -740,7 +744,7 @@ memset(&mtd->dev, 0, sizeof(mtd->dev)); idr_remove(&mtd_idr, mtd->index); - of_node_put(mtd_get_of_node(mtd)); + of_node_put(mtd_of_node); module_put(THIS_MODULE); ret = 0; @@ -2387,6 +2391,7 @@ out_procfs: if (proc_mtd) remove_proc_entry("mtd", NULL); + bdi_unregister(mtd_bdi); bdi_put(mtd_bdi); err_bdi: class_unregister(&mtd_class); --- linux-5.19.0.orig/drivers/mtd/nand/onenand/Kconfig +++ linux-5.19.0/drivers/mtd/nand/onenand/Kconfig @@ -26,6 +26,7 @@ tristate "OneNAND on OMAP2/OMAP3 support" depends on ARCH_OMAP2 || ARCH_OMAP3 || (COMPILE_TEST && ARM) depends on OF || COMPILE_TEST + depends on OMAP_GPMC help Support for a OneNAND flash device connected to an OMAP2/OMAP3 SoC via the GPMC memory controller. --- linux-5.19.0.orig/drivers/mtd/nand/raw/arasan-nand-controller.c +++ linux-5.19.0/drivers/mtd/nand/raw/arasan-nand-controller.c @@ -347,17 +347,17 @@ /* Update clock frequency */ if (nfc->cur_clk != anand->clk) { - clk_disable_unprepare(nfc->controller_clk); - ret = clk_set_rate(nfc->controller_clk, anand->clk); + clk_disable_unprepare(nfc->bus_clk); + ret = clk_set_rate(nfc->bus_clk, anand->clk); if (ret) { dev_err(nfc->dev, "Failed to change clock rate\n"); return ret; } - ret = clk_prepare_enable(nfc->controller_clk); + ret = clk_prepare_enable(nfc->bus_clk); if (ret) { dev_err(nfc->dev, - "Failed to re-enable the controller clock\n"); + "Failed to re-enable the bus clock\n"); return ret; } @@ -1043,7 +1043,13 @@ DQS_BUFF_SEL_OUT(dqs_mode); } - anand->clk = ANFC_XLNX_SDR_DFLT_CORE_CLK; + if (nand_interface_is_sdr(conf)) { + anand->clk = ANFC_XLNX_SDR_DFLT_CORE_CLK; + } else { + /* ONFI timings are defined in picoseconds */ + anand->clk = div_u64((u64)NSEC_PER_SEC * 1000, + conf->timings.nvddr.tCK_min); + } /* * Due to a hardware bug in the ZynqMP SoC, SDR timing modes 0-1 work --- linux-5.19.0.orig/drivers/mtd/nand/raw/atmel/nand-controller.c +++ linux-5.19.0/drivers/mtd/nand/raw/atmel/nand-controller.c @@ -405,6 +405,7 @@ dma_async_issue_pending(nc->dmac); wait_for_completion(&finished); + dma_unmap_single(nc->dev, buf_dma, len, dir); return 0; --- linux-5.19.0.orig/drivers/mtd/nand/raw/fsl_elbc_nand.c +++ linux-5.19.0/drivers/mtd/nand/raw/fsl_elbc_nand.c @@ -726,36 +726,40 @@ struct fsl_lbc_regs __iomem *lbc = ctrl->regs; unsigned int al; - switch (chip->ecc.engine_type) { /* * if ECC was not chosen in DT, decide whether to use HW or SW ECC from * CS Base Register */ - case NAND_ECC_ENGINE_TYPE_NONE: + if (chip->ecc.engine_type == NAND_ECC_ENGINE_TYPE_INVALID) { /* If CS Base Register selects full hardware ECC then use it */ if ((in_be32(&lbc->bank[priv->bank].br) & BR_DECC) == BR_DECC_CHK_GEN) { - chip->ecc.read_page = fsl_elbc_read_page; - chip->ecc.write_page = fsl_elbc_write_page; - chip->ecc.write_subpage = fsl_elbc_write_subpage; - chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST; - mtd_set_ooblayout(mtd, &fsl_elbc_ooblayout_ops); - chip->ecc.size = 512; - chip->ecc.bytes = 3; - chip->ecc.strength = 1; } else { /* otherwise fall back to default software ECC */ chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_SOFT; chip->ecc.algo = NAND_ECC_ALGO_HAMMING; } + } + + switch (chip->ecc.engine_type) { + /* if HW ECC was chosen, setup ecc and oob layout */ + case NAND_ECC_ENGINE_TYPE_ON_HOST: + chip->ecc.read_page = fsl_elbc_read_page; + chip->ecc.write_page = fsl_elbc_write_page; + chip->ecc.write_subpage = fsl_elbc_write_subpage; + mtd_set_ooblayout(mtd, &fsl_elbc_ooblayout_ops); + chip->ecc.size = 512; + chip->ecc.bytes = 3; + chip->ecc.strength = 1; break; - /* if SW ECC was chosen in DT, we do not need to set anything here */ + /* if none or SW ECC was chosen, we do not need to set anything here */ + case NAND_ECC_ENGINE_TYPE_NONE: case NAND_ECC_ENGINE_TYPE_SOFT: + case NAND_ECC_ENGINE_TYPE_ON_DIE: break; - /* should we also implement *_ECC_ENGINE_CONTROLLER to do as above? */ default: return -EINVAL; } --- linux-5.19.0.orig/drivers/mtd/nand/raw/intel-nand-controller.c +++ linux-5.19.0/drivers/mtd/nand/raw/intel-nand-controller.c @@ -16,6 +16,7 @@ #include #include +#include #include #include #include @@ -107,7 +108,6 @@ struct ebu_nand_cs { void __iomem *chipaddr; - dma_addr_t nand_pa; u32 addr_sel; }; @@ -580,6 +580,7 @@ { struct device *dev = &pdev->dev; struct ebu_nand_controller *ebu_host; + struct device_node *chip_np; struct nand_chip *nand; struct mtd_info *mtd; struct resource *res; @@ -594,44 +595,49 @@ ebu_host->dev = dev; nand_controller_init(&ebu_host->controller); - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "ebunand"); - ebu_host->ebu = devm_ioremap_resource(&pdev->dev, res); + ebu_host->ebu = devm_platform_ioremap_resource_byname(pdev, "ebunand"); if (IS_ERR(ebu_host->ebu)) return PTR_ERR(ebu_host->ebu); - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "hsnand"); - ebu_host->hsnand = devm_ioremap_resource(&pdev->dev, res); + ebu_host->hsnand = devm_platform_ioremap_resource_byname(pdev, "hsnand"); if (IS_ERR(ebu_host->hsnand)) return PTR_ERR(ebu_host->hsnand); - ret = device_property_read_u32(dev, "reg", &cs); + chip_np = of_get_next_child(dev->of_node, NULL); + if (!chip_np) + return dev_err_probe(dev, -EINVAL, + "Could not find child node for the NAND chip\n"); + + ret = of_property_read_u32(chip_np, "reg", &cs); if (ret) { dev_err(dev, "failed to get chip select: %d\n", ret); - return ret; + goto err_of_node_put; } if (cs >= MAX_CS) { dev_err(dev, "got invalid chip select: %d\n", cs); - return -EINVAL; + ret = -EINVAL; + goto err_of_node_put; } ebu_host->cs_num = cs; resname = devm_kasprintf(dev, GFP_KERNEL, "nand_cs%d", cs); - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, resname); - ebu_host->cs[cs].chipaddr = devm_ioremap_resource(dev, res); + ebu_host->cs[cs].chipaddr = devm_platform_ioremap_resource_byname(pdev, + resname); if (IS_ERR(ebu_host->cs[cs].chipaddr)) - return PTR_ERR(ebu_host->cs[cs].chipaddr); - ebu_host->cs[cs].nand_pa = res->start; + goto err_of_node_put; ebu_host->clk = devm_clk_get(dev, NULL); - if (IS_ERR(ebu_host->clk)) - return dev_err_probe(dev, PTR_ERR(ebu_host->clk), - "failed to get clock\n"); + if (IS_ERR(ebu_host->clk)) { + ret = dev_err_probe(dev, PTR_ERR(ebu_host->clk), + "failed to get clock\n"); + goto err_of_node_put; + } ret = clk_prepare_enable(ebu_host->clk); if (ret) { dev_err(dev, "failed to enable clock: %d\n", ret); - return ret; + goto err_of_node_put; } ebu_host->clk_rate = clk_get_rate(ebu_host->clk); @@ -660,7 +666,7 @@ writel(ebu_host->cs[cs].addr_sel | EBU_ADDR_MASK(5) | EBU_ADDR_SEL_REGEN, ebu_host->ebu + EBU_ADDR_SEL(cs)); - nand_set_flash_node(&ebu_host->chip, dev->of_node); + nand_set_flash_node(&ebu_host->chip, chip_np); mtd = nand_to_mtd(&ebu_host->chip); if (!mtd->name) { @@ -696,6 +702,8 @@ ebu_dma_cleanup(ebu_host); err_disable_unprepare_clk: clk_disable_unprepare(ebu_host->clk); +err_of_node_put: + of_node_put(chip_np); return ret; } @@ -716,7 +724,6 @@ } static const struct of_device_id ebu_nand_match[] = { - { .compatible = "intel,nand-controller" }, { .compatible = "intel,lgm-ebunand" }, {} }; --- linux-5.19.0.orig/drivers/mtd/nand/raw/marvell_nand.c +++ linux-5.19.0/drivers/mtd/nand/raw/marvell_nand.c @@ -2672,7 +2672,7 @@ chip->controller = &nfc->controller; nand_set_flash_node(chip, np); - if (!of_property_read_bool(np, "marvell,nand-keep-config")) + if (of_property_read_bool(np, "marvell,nand-keep-config")) chip->options |= NAND_KEEP_TIMINGS; mtd = nand_to_mtd(chip); --- linux-5.19.0.orig/drivers/mtd/nand/raw/meson_nand.c +++ linux-5.19.0/drivers/mtd/nand/raw/meson_nand.c @@ -454,7 +454,7 @@ if (ECC_ERR_CNT(*info) != ECC_UNCORRECTABLE) { mtd->ecc_stats.corrected += ECC_ERR_CNT(*info); *bitflips = max_t(u32, *bitflips, ECC_ERR_CNT(*info)); - *correct_bitmap |= 1 >> i; + *correct_bitmap |= BIT_ULL(i); continue; } if ((nand->options & NAND_NEED_SCRAMBLING) && @@ -800,7 +800,7 @@ u8 *data = buf + i * ecc->size; u8 *oob = nand->oob_poi + i * (ecc->bytes + 2); - if (correct_bitmap & (1 << i)) + if (correct_bitmap & BIT_ULL(i)) continue; ret = nand_check_erased_ecc_chunk(data, ecc->size, oob, ecc->bytes + 2, @@ -1307,7 +1307,6 @@ if (ret) return ret; - meson_nfc_free_buffer(&meson_chip->nand); nand_cleanup(&meson_chip->nand); list_del(&meson_chip->node); } --- linux-5.19.0.orig/drivers/mtd/nand/raw/tegra_nand.c +++ linux-5.19.0/drivers/mtd/nand/raw/tegra_nand.c @@ -1181,7 +1181,7 @@ pm_runtime_enable(&pdev->dev); err = pm_runtime_resume_and_get(&pdev->dev); if (err) - return err; + goto err_dis_pm; err = reset_control_reset(rst); if (err) { @@ -1215,6 +1215,8 @@ err_put_pm: pm_runtime_put_sync_suspend(ctrl->dev); pm_runtime_force_suspend(ctrl->dev); +err_dis_pm: + pm_runtime_disable(&pdev->dev); return err; } --- linux-5.19.0.orig/drivers/mtd/parsers/bcm47xxpart.c +++ linux-5.19.0/drivers/mtd/parsers/bcm47xxpart.c @@ -233,11 +233,11 @@ } /* Read middle of the block */ - err = mtd_read(master, offset + 0x8000, 0x4, &bytes_read, + err = mtd_read(master, offset + (blocksize / 2), 0x4, &bytes_read, (uint8_t *)buf); if (err && !mtd_is_bitflip(err)) { pr_err("mtd_read error while parsing (offset: 0x%X): %d\n", - offset + 0x8000, err); + offset + (blocksize / 2), err); continue; } --- linux-5.19.0.orig/drivers/mtd/parsers/ofpart_bcm4908.c +++ linux-5.19.0/drivers/mtd/parsers/ofpart_bcm4908.c @@ -35,12 +35,15 @@ err = kstrtoul(s + len + 1, 0, &offset); if (err) { pr_err("failed to parse %s\n", s + len + 1); + of_node_put(root); return err; } + of_node_put(root); return offset << 10; } + of_node_put(root); return -ENOENT; } --- linux-5.19.0.orig/drivers/mtd/parsers/redboot.c +++ linux-5.19.0/drivers/mtd/parsers/redboot.c @@ -58,6 +58,7 @@ return; ret = of_property_read_u32(npart, "fis-index-block", &dirblock); + of_node_put(npart); if (ret) return; --- linux-5.19.0.orig/drivers/mtd/sm_ftl.c +++ linux-5.19.0/drivers/mtd/sm_ftl.c @@ -1111,9 +1111,9 @@ { struct sm_ftl *ftl = dev->priv; - mutex_lock(&ftl->mutex); del_timer_sync(&ftl->timer); cancel_work_sync(&ftl->flush_work); + mutex_lock(&ftl->mutex); sm_cache_flush(ftl); mutex_unlock(&ftl->mutex); } --- linux-5.19.0.orig/drivers/mtd/spi-nor/core.c +++ linux-5.19.0/drivers/mtd/spi-nor/core.c @@ -177,7 +177,7 @@ static int spi_nor_controller_ops_erase(struct spi_nor *nor, loff_t offs) { - if (spi_nor_protocol_is_dtr(nor->write_proto)) + if (spi_nor_protocol_is_dtr(nor->reg_proto)) return -EOPNOTSUPP; return nor->controller_ops->erase(nor, offs); @@ -972,7 +972,7 @@ if (nor->spimem) { struct spi_mem_op op = SPI_NOR_CHIP_ERASE_OP; - spi_nor_spimem_setup_op(nor, &op, nor->write_proto); + spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); ret = spi_mem_exec_op(nor->spimem, &op); } else { @@ -1115,7 +1115,7 @@ SPI_NOR_SECTOR_ERASE_OP(nor->erase_opcode, nor->addr_width, addr); - spi_nor_spimem_setup_op(nor, &op, nor->write_proto); + spi_nor_spimem_setup_op(nor, &op, nor->reg_proto); return spi_mem_exec_op(nor->spimem, &op); } else if (nor->controller_ops->erase) { @@ -1914,7 +1914,8 @@ spi_nor_spimem_setup_op(nor, &op, read->proto); /* convert the dummy cycles to the number of bytes */ - op.dummy.nbytes = (nor->read_dummy * op.dummy.buswidth) / 8; + op.dummy.nbytes = (read->num_mode_clocks + read->num_wait_states) * + op.dummy.buswidth / 8; if (spi_nor_protocol_is_dtr(nor->read_proto)) op.dummy.nbytes *= 2; --- linux-5.19.0.orig/drivers/mtd/spi-nor/sysfs.c +++ linux-5.19.0/drivers/mtd/spi-nor/sysfs.c @@ -67,6 +67,19 @@ NULL }; +static umode_t spi_nor_sysfs_is_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + struct spi_device *spi = to_spi_device(kobj_to_dev(kobj)); + struct spi_mem *spimem = spi_get_drvdata(spi); + struct spi_nor *nor = spi_mem_get_drvdata(spimem); + + if (attr == &dev_attr_jedec_id.attr && !nor->info->id_len) + return 0; + + return 0444; +} + static umode_t spi_nor_sysfs_is_bin_visible(struct kobject *kobj, struct bin_attribute *attr, int n) { @@ -82,6 +95,7 @@ static const struct attribute_group spi_nor_sysfs_group = { .name = "spi-nor", + .is_visible = spi_nor_sysfs_is_visible, .is_bin_visible = spi_nor_sysfs_is_bin_visible, .attrs = spi_nor_sysfs_entries, .bin_attrs = spi_nor_sysfs_bin_entries, --- linux-5.19.0.orig/drivers/net/arcnet/com20020_cs.c +++ linux-5.19.0/drivers/net/arcnet/com20020_cs.c @@ -113,6 +113,7 @@ struct com20020_dev *info; struct net_device *dev; struct arcnet_local *lp; + int ret = -ENOMEM; dev_dbg(&p_dev->dev, "com20020_attach()\n"); @@ -142,12 +143,18 @@ info->dev = dev; p_dev->priv = info; - return com20020_config(p_dev); + ret = com20020_config(p_dev); + if (ret) + goto fail_config; + return 0; + +fail_config: + free_arcdev(dev); fail_alloc_dev: kfree(info); fail_alloc_info: - return -ENOMEM; + return ret; } /* com20020_attach */ static void com20020_detach(struct pcmcia_device *link) --- linux-5.19.0.orig/drivers/net/bonding/bond_3ad.c +++ linux-5.19.0/drivers/net/bonding/bond_3ad.c @@ -87,8 +87,9 @@ static u16 ad_ticks_per_sec; static const int ad_delta_in_ticks = (AD_TIMER_INTERVAL * HZ) / 1000; -static const u8 lacpdu_mcast_addr[ETH_ALEN + 2] __long_aligned = - MULTICAST_LACPDU_ADDR; +const u8 lacpdu_mcast_addr[ETH_ALEN + 2] __long_aligned = { + 0x01, 0x80, 0xC2, 0x00, 0x00, 0x02 +}; /* ================= main 802.3ad protocol functions ================== */ static int ad_lacpdu_send(struct port *port); @@ -2007,30 +2008,24 @@ */ void bond_3ad_initialize(struct bonding *bond, u16 tick_resolution) { - /* check that the bond is not initialized yet */ - if (!MAC_ADDRESS_EQUAL(&(BOND_AD_INFO(bond).system.sys_mac_addr), - bond->dev->dev_addr)) { - - BOND_AD_INFO(bond).aggregator_identifier = 0; - - BOND_AD_INFO(bond).system.sys_priority = - bond->params.ad_actor_sys_prio; - if (is_zero_ether_addr(bond->params.ad_actor_system)) - BOND_AD_INFO(bond).system.sys_mac_addr = - *((struct mac_addr *)bond->dev->dev_addr); - else - BOND_AD_INFO(bond).system.sys_mac_addr = - *((struct mac_addr *)bond->params.ad_actor_system); + BOND_AD_INFO(bond).aggregator_identifier = 0; + BOND_AD_INFO(bond).system.sys_priority = + bond->params.ad_actor_sys_prio; + if (is_zero_ether_addr(bond->params.ad_actor_system)) + BOND_AD_INFO(bond).system.sys_mac_addr = + *((struct mac_addr *)bond->dev->dev_addr); + else + BOND_AD_INFO(bond).system.sys_mac_addr = + *((struct mac_addr *)bond->params.ad_actor_system); - /* initialize how many times this module is called in one - * second (should be about every 100ms) - */ - ad_ticks_per_sec = tick_resolution; + /* initialize how many times this module is called in one + * second (should be about every 100ms) + */ + ad_ticks_per_sec = tick_resolution; - bond_3ad_initiate_agg_selection(bond, - AD_AGGREGATOR_SELECTION_TIMER * - ad_ticks_per_sec); - } + bond_3ad_initiate_agg_selection(bond, + AD_AGGREGATOR_SELECTION_TIMER * + ad_ticks_per_sec); } /** --- linux-5.19.0.orig/drivers/net/bonding/bond_main.c +++ linux-5.19.0/drivers/net/bonding/bond_main.c @@ -865,12 +865,8 @@ dev_uc_unsync(slave_dev, bond_dev); dev_mc_unsync(slave_dev, bond_dev); - if (BOND_MODE(bond) == BOND_MODE_8023AD) { - /* del lacpdu mc addr from mc list */ - u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR; - - dev_mc_del(slave_dev, lacpdu_multicast); - } + if (BOND_MODE(bond) == BOND_MODE_8023AD) + dev_mc_del(slave_dev, lacpdu_mcast_addr); } /*--------------------------- Active slave change ---------------------------*/ @@ -890,7 +886,8 @@ if (bond->dev->flags & IFF_ALLMULTI) dev_set_allmulti(old_active->dev, -1); - bond_hw_addr_flush(bond->dev, old_active->dev); + if (bond->dev->flags & IFF_UP) + bond_hw_addr_flush(bond->dev, old_active->dev); } if (new_active) { @@ -901,10 +898,12 @@ if (bond->dev->flags & IFF_ALLMULTI) dev_set_allmulti(new_active->dev, 1); - netif_addr_lock_bh(bond->dev); - dev_uc_sync(new_active->dev, bond->dev); - dev_mc_sync(new_active->dev, bond->dev); - netif_addr_unlock_bh(bond->dev); + if (bond->dev->flags & IFF_UP) { + netif_addr_lock_bh(bond->dev); + dev_uc_sync(new_active->dev, bond->dev); + dev_mc_sync(new_active->dev, bond->dev); + netif_addr_unlock_bh(bond->dev); + } } } @@ -1974,6 +1973,8 @@ for (i = 0; i < BOND_MAX_ARP_TARGETS; i++) new_slave->target_last_arp_rx[i] = new_slave->last_rx; + new_slave->last_tx = new_slave->last_rx; + if (bond->params.miimon && !bond->params.use_carrier) { link_reporting = bond_check_dev_link(bond, slave_dev, 1); @@ -2137,16 +2138,14 @@ } } - netif_addr_lock_bh(bond_dev); - dev_mc_sync_multiple(slave_dev, bond_dev); - dev_uc_sync_multiple(slave_dev, bond_dev); - netif_addr_unlock_bh(bond_dev); + if (bond_dev->flags & IFF_UP) { + netif_addr_lock_bh(bond_dev); + dev_mc_sync_multiple(slave_dev, bond_dev); + dev_uc_sync_multiple(slave_dev, bond_dev); + netif_addr_unlock_bh(bond_dev); - if (BOND_MODE(bond) == BOND_MODE_8023AD) { - /* add lacpdu mc addr to mc list */ - u8 lacpdu_multicast[ETH_ALEN] = MULTICAST_LACPDU_ADDR; - - dev_mc_add(slave_dev, lacpdu_multicast); + if (BOND_MODE(bond) == BOND_MODE_8023AD) + dev_mc_add(slave_dev, lacpdu_mcast_addr); } } @@ -2418,7 +2417,8 @@ if (old_flags & IFF_ALLMULTI) dev_set_allmulti(slave_dev, -1); - bond_hw_addr_flush(bond_dev, slave_dev); + if (old_flags & IFF_UP) + bond_hw_addr_flush(bond_dev, slave_dev); } slave_disable_netpoll(slave); @@ -2504,12 +2504,21 @@ /* called with rcu_read_lock() */ static int bond_miimon_inspect(struct bonding *bond) { + bool ignore_updelay = false; int link_state, commit = 0; struct list_head *iter; struct slave *slave; - bool ignore_updelay; - ignore_updelay = !rcu_dereference(bond->curr_active_slave); + if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) { + ignore_updelay = !rcu_dereference(bond->curr_active_slave); + } else { + struct bond_up_slave *usable_slaves; + + usable_slaves = rcu_dereference(bond->usable_slaves); + + if (usable_slaves && usable_slaves->count == 0) + ignore_updelay = true; + } bond_for_each_slave_rcu(bond, slave, iter) { bond_propose_link_state(slave, BOND_LINK_NOCHANGE); @@ -2857,8 +2866,11 @@ return; } - if (bond_handle_vlan(slave, tags, skb)) + if (bond_handle_vlan(slave, tags, skb)) { + slave_update_last_tx(slave); arp_xmit(skb); + } + return; } @@ -3047,8 +3059,7 @@ curr_active_slave->last_link_up)) bond_validate_arp(bond, slave, tip, sip); else if (curr_arp_slave && (arp->ar_op == htons(ARPOP_REPLY)) && - bond_time_in_interval(bond, - dev_trans_start(curr_arp_slave->dev), 1)) + bond_time_in_interval(bond, slave_last_tx(curr_arp_slave), 1)) bond_validate_arp(bond, slave, sip, tip); out_unlock: @@ -3076,8 +3087,10 @@ } addrconf_addr_solict_mult(daddr, &mcaddr); - if (bond_handle_vlan(slave, tags, skb)) + if (bond_handle_vlan(slave, tags, skb)) { + slave_update_last_tx(slave); ndisc_send_skb(skb, &mcaddr, saddr); + } } static void bond_ns_send_all(struct bonding *bond, struct slave *slave) @@ -3134,6 +3147,9 @@ found: if (!ipv6_dev_get_saddr(dev_net(dst->dev), dst->dev, &targets[i], 0, &saddr)) bond_ns_send(slave, &targets[i], &saddr, tags); + else + bond_ns_send(slave, &targets[i], &in6addr_any, tags); + dst_release(dst); kfree(tags); } @@ -3165,12 +3181,19 @@ return ret; } -static void bond_validate_ns(struct bonding *bond, struct slave *slave, +static void bond_validate_na(struct bonding *bond, struct slave *slave, struct in6_addr *saddr, struct in6_addr *daddr) { int i; - if (ipv6_addr_any(saddr) || !bond_has_this_ip6(bond, daddr)) { + /* Ignore NAs that: + * 1. Source address is unspecified address. + * 2. Dest address is neither all-nodes multicast address nor + * exist on bond interface. + */ + if (ipv6_addr_any(saddr) || + (!ipv6_addr_equal(daddr, &in6addr_linklocal_allnodes) && + !bond_has_this_ip6(bond, daddr))) { slave_dbg(bond->dev, slave->dev, "%s: sip %pI6c tip %pI6c not found\n", __func__, saddr, daddr); return; @@ -3190,16 +3213,23 @@ struct slave *slave) { struct slave *curr_active_slave, *curr_arp_slave; - struct icmp6hdr *hdr = icmp6_hdr(skb); struct in6_addr *saddr, *daddr; + struct { + struct ipv6hdr ip6; + struct icmp6hdr icmp6; + } *combined, _combined; if (skb->pkt_type == PACKET_OTHERHOST || - skb->pkt_type == PACKET_LOOPBACK || - hdr->icmp6_type != NDISC_NEIGHBOUR_ADVERTISEMENT) + skb->pkt_type == PACKET_LOOPBACK) goto out; - saddr = &ipv6_hdr(skb)->saddr; - daddr = &ipv6_hdr(skb)->daddr; + combined = skb_header_pointer(skb, 0, sizeof(_combined), &_combined); + if (!combined || combined->ip6.nexthdr != NEXTHDR_ICMP || + combined->icmp6.icmp6_type != NDISC_NEIGHBOUR_ADVERTISEMENT) + goto out; + + saddr = &combined->ip6.saddr; + daddr = &combined->ip6.daddr; slave_dbg(bond->dev, slave->dev, "%s: %s/%d av %d sv %d sip %pI6c tip %pI6c\n", __func__, slave->dev->name, bond_slave_state(slave), @@ -3213,15 +3243,14 @@ * see bond_arp_rcv(). */ if (bond_is_active_slave(slave)) - bond_validate_ns(bond, slave, saddr, daddr); + bond_validate_na(bond, slave, saddr, daddr); else if (curr_active_slave && time_after(slave_last_rx(bond, curr_active_slave), curr_active_slave->last_link_up)) - bond_validate_ns(bond, slave, saddr, daddr); + bond_validate_na(bond, slave, saddr, daddr); else if (curr_arp_slave && - bond_time_in_interval(bond, - dev_trans_start(curr_arp_slave->dev), 1)) - bond_validate_ns(bond, slave, saddr, daddr); + bond_time_in_interval(bond, slave_last_tx(curr_arp_slave), 1)) + bond_validate_na(bond, slave, saddr, daddr); out: return RX_HANDLER_ANOTHER; @@ -3308,12 +3337,12 @@ * so it can wait */ bond_for_each_slave_rcu(bond, slave, iter) { - unsigned long trans_start = dev_trans_start(slave->dev); + unsigned long last_tx = slave_last_tx(slave); bond_propose_link_state(slave, BOND_LINK_NOCHANGE); if (slave->link != BOND_LINK_UP) { - if (bond_time_in_interval(bond, trans_start, 1) && + if (bond_time_in_interval(bond, last_tx, 1) && bond_time_in_interval(bond, slave->last_rx, 1)) { bond_propose_link_state(slave, BOND_LINK_UP); @@ -3338,7 +3367,7 @@ * when the source ip is 0, so don't take the link down * if we don't know our ip yet */ - if (!bond_time_in_interval(bond, trans_start, bond->params.missed_max) || + if (!bond_time_in_interval(bond, last_tx, bond->params.missed_max) || !bond_time_in_interval(bond, slave->last_rx, bond->params.missed_max)) { bond_propose_link_state(slave, BOND_LINK_DOWN); @@ -3404,7 +3433,7 @@ */ static int bond_ab_arp_inspect(struct bonding *bond) { - unsigned long trans_start, last_rx; + unsigned long last_tx, last_rx; struct list_head *iter; struct slave *slave; int commit = 0; @@ -3455,9 +3484,9 @@ * - (more than missed_max*delta since receive AND * the bond has an IP address) */ - trans_start = dev_trans_start(slave->dev); + last_tx = slave_last_tx(slave); if (bond_is_active_slave(slave) && - (!bond_time_in_interval(bond, trans_start, bond->params.missed_max) || + (!bond_time_in_interval(bond, last_tx, bond->params.missed_max) || !bond_time_in_interval(bond, last_rx, bond->params.missed_max))) { bond_propose_link_state(slave, BOND_LINK_DOWN); commit++; @@ -3474,8 +3503,8 @@ */ static void bond_ab_arp_commit(struct bonding *bond) { - unsigned long trans_start; struct list_head *iter; + unsigned long last_tx; struct slave *slave; bond_for_each_slave(bond, slave, iter) { @@ -3484,10 +3513,10 @@ continue; case BOND_LINK_UP: - trans_start = dev_trans_start(slave->dev); + last_tx = slave_last_tx(slave); if (rtnl_dereference(bond->curr_active_slave) != slave || (!rtnl_dereference(bond->curr_active_slave) && - bond_time_in_interval(bond, trans_start, 1))) { + bond_time_in_interval(bond, last_tx, 1))) { struct slave *current_arp_slave; current_arp_slave = rtnl_dereference(bond->current_arp_slave); @@ -4142,6 +4171,12 @@ struct list_head *iter; struct slave *slave; + if (BOND_MODE(bond) == BOND_MODE_ROUNDROBIN && !bond->rr_tx_counter) { + bond->rr_tx_counter = alloc_percpu(u32); + if (!bond->rr_tx_counter) + return -ENOMEM; + } + /* reset slave->backup and slave->inactive */ if (bond_has_slaves(bond)) { bond_for_each_slave(bond, slave, iter) { @@ -4179,6 +4214,9 @@ /* register to receive LACPDUs */ bond->recv_probe = bond_3ad_lacpdu_recv; bond_3ad_initiate_agg_selection(bond, 1); + + bond_for_each_slave(bond, slave, iter) + dev_mc_add(slave->dev, lacpdu_mcast_addr); } if (bond_mode_can_use_xmit_hash(bond)) @@ -4190,6 +4228,7 @@ static int bond_close(struct net_device *bond_dev) { struct bonding *bond = netdev_priv(bond_dev); + struct slave *slave; bond_work_cancel_all(bond); bond->send_peer_notif = 0; @@ -4197,6 +4236,19 @@ bond_alb_deinitialize(bond); bond->recv_probe = NULL; + if (bond_uses_primary(bond)) { + rcu_read_lock(); + slave = rcu_dereference(bond->curr_active_slave); + if (slave) + bond_hw_addr_flush(bond_dev, slave->dev); + rcu_read_unlock(); + } else { + struct list_head *iter; + + bond_for_each_slave(bond, slave, iter) + bond_hw_addr_flush(bond_dev, slave->dev); + } + return 0; } @@ -6180,15 +6232,6 @@ if (!bond->wq) return -ENOMEM; - if (BOND_MODE(bond) == BOND_MODE_ROUNDROBIN) { - bond->rr_tx_counter = alloc_percpu(u32); - if (!bond->rr_tx_counter) { - destroy_workqueue(bond->wq); - bond->wq = NULL; - return -ENOMEM; - } - } - spin_lock_init(&bond->stats_lock); netdev_lockdep_set_classes(bond_dev); --- linux-5.19.0.orig/drivers/net/can/c_can/c_can.h +++ linux-5.19.0/drivers/net/can/c_can/c_can.h @@ -235,9 +235,22 @@ return ring->tail & (ring->obj_num - 1); } -static inline u8 c_can_get_tx_free(const struct c_can_tx_ring *ring) +static inline u8 c_can_get_tx_free(const struct c_can_priv *priv, + const struct c_can_tx_ring *ring) { - return ring->obj_num - (ring->head - ring->tail); + u8 head = c_can_get_tx_head(ring); + u8 tail = c_can_get_tx_tail(ring); + + if (priv->type == BOSCH_D_CAN) + return ring->obj_num - (ring->head - ring->tail); + + /* This is not a FIFO. C/D_CAN sends out the buffers + * prioritized. The lowest buffer number wins. + */ + if (head < tail) + return 0; + + return ring->obj_num - head; } #endif /* C_CAN_H */ --- linux-5.19.0.orig/drivers/net/can/c_can/c_can_main.c +++ linux-5.19.0/drivers/net/can/c_can/c_can_main.c @@ -429,7 +429,7 @@ static bool c_can_tx_busy(const struct c_can_priv *priv, const struct c_can_tx_ring *tx_ring) { - if (c_can_get_tx_free(tx_ring) > 0) + if (c_can_get_tx_free(priv, tx_ring) > 0) return false; netif_stop_queue(priv->dev); @@ -437,7 +437,7 @@ /* Memory barrier before checking tx_free (head and tail) */ smp_mb(); - if (c_can_get_tx_free(tx_ring) == 0) { + if (c_can_get_tx_free(priv, tx_ring) == 0) { netdev_dbg(priv->dev, "Stopping tx-queue (tx_head=0x%08x, tx_tail=0x%08x, len=%d).\n", tx_ring->head, tx_ring->tail, @@ -465,7 +465,7 @@ idx = c_can_get_tx_head(tx_ring); tx_ring->head++; - if (c_can_get_tx_free(tx_ring) == 0) + if (c_can_get_tx_free(priv, tx_ring) == 0) netif_stop_queue(dev); if (idx < c_can_get_tx_tail(tx_ring)) @@ -748,7 +748,7 @@ return; tx_ring->tail += pkts; - if (c_can_get_tx_free(tx_ring)) { + if (c_can_get_tx_free(priv, tx_ring)) { /* Make sure that anybody stopping the queue after * this sees the new tx_ring->tail. */ @@ -760,8 +760,7 @@ stats->tx_packets += pkts; tail = c_can_get_tx_tail(tx_ring); - - if (tail == 0) { + if (priv->type == BOSCH_D_CAN && tail == 0) { u8 head = c_can_get_tx_head(tx_ring); /* Start transmission for all cached messages */ --- linux-5.19.0.orig/drivers/net/can/cc770/cc770_isa.c +++ linux-5.19.0/drivers/net/can/cc770/cc770_isa.c @@ -264,22 +264,24 @@ if (err) { dev_err(&pdev->dev, "couldn't register device (err=%d)\n", err); - goto exit_unmap; + goto exit_free; } dev_info(&pdev->dev, "device registered (reg_base=0x%p, irq=%d)\n", priv->reg_base, dev->irq); return 0; - exit_unmap: +exit_free: + free_cc770dev(dev); +exit_unmap: if (mem[idx]) iounmap(base); - exit_release: +exit_release: if (mem[idx]) release_mem_region(mem[idx], iosize); else release_region(port[idx], iosize); - exit: +exit: return err; } --- linux-5.19.0.orig/drivers/net/can/dev/netlink.c +++ linux-5.19.0/drivers/net/can/dev/netlink.c @@ -176,7 +176,8 @@ * directly via do_set_bitrate(). Bail out if neither * is given. */ - if (!priv->bittiming_const && !priv->do_set_bittiming) + if (!priv->bittiming_const && !priv->do_set_bittiming && + !priv->bitrate_const) return -EOPNOTSUPP; memcpy(&bt, nla_data(data[IFLA_CAN_BITTIMING]), sizeof(bt)); @@ -278,7 +279,8 @@ * directly via do_set_bitrate(). Bail out if neither * is given. */ - if (!priv->data_bittiming_const && !priv->do_set_data_bittiming) + if (!priv->data_bittiming_const && !priv->do_set_data_bittiming && + !priv->data_bitrate_const) return -EOPNOTSUPP; memcpy(&dbt, nla_data(data[IFLA_CAN_DATA_BITTIMING]), --- linux-5.19.0.orig/drivers/net/can/flexcan/flexcan-core.c +++ linux-5.19.0/drivers/net/can/flexcan/flexcan-core.c @@ -941,11 +941,6 @@ u32 reg_ctrl, reg_id, reg_iflag1; int i; - if (unlikely(drop)) { - skb = ERR_PTR(-ENOBUFS); - goto mark_as_read; - } - mb = flexcan_get_mb(priv, n); if (priv->devtype_data.quirks & FLEXCAN_QUIRK_USE_RX_MAILBOX) { @@ -974,6 +969,11 @@ reg_ctrl = priv->read(&mb->can_ctrl); } + if (unlikely(drop)) { + skb = ERR_PTR(-ENOBUFS); + goto mark_as_read; + } + if (reg_ctrl & FLEXCAN_MB_CNT_EDL) skb = alloc_canfd_skb(offload->dev, &cfd); else --- linux-5.19.0.orig/drivers/net/can/m_can/m_can.c +++ linux-5.19.0/drivers/net/can/m_can/m_can.c @@ -1232,10 +1232,17 @@ * - setup bittiming * - configure timestamp generation */ -static void m_can_chip_config(struct net_device *dev) +static int m_can_chip_config(struct net_device *dev) { struct m_can_classdev *cdev = netdev_priv(dev); u32 cccr, test; + int err; + + err = m_can_init_ram(cdev); + if (err) { + dev_err(cdev->dev, "Message RAM configuration failed\n"); + return err; + } m_can_config_endisable(cdev, true); @@ -1359,18 +1366,25 @@ if (cdev->ops->init) cdev->ops->init(cdev); + + return 0; } -static void m_can_start(struct net_device *dev) +static int m_can_start(struct net_device *dev) { struct m_can_classdev *cdev = netdev_priv(dev); + int ret; /* basic m_can configuration */ - m_can_chip_config(dev); + ret = m_can_chip_config(dev); + if (ret) + return ret; cdev->can.state = CAN_STATE_ERROR_ACTIVE; m_can_enable_all_interrupts(cdev); + + return 0; } static int m_can_set_mode(struct net_device *dev, enum can_mode mode) @@ -1799,7 +1813,9 @@ } /* start the m_can controller */ - m_can_start(dev); + err = m_can_start(dev); + if (err) + goto exit_irq_fail; if (!cdev->is_peripheral) napi_enable(&cdev->napi); @@ -1904,7 +1920,7 @@ cdev->hclk = devm_clk_get(cdev->dev, "hclk"); cdev->cclk = devm_clk_get(cdev->dev, "cclk"); - if (IS_ERR(cdev->cclk)) { + if (IS_ERR(cdev->hclk) || IS_ERR(cdev->cclk)) { dev_err(cdev->dev, "no clock found\n"); ret = -ENODEV; } @@ -2053,9 +2069,13 @@ ret = m_can_clk_start(cdev); if (ret) return ret; + ret = m_can_start(ndev); + if (ret) { + m_can_clk_stop(cdev); + + return ret; + } - m_can_init_ram(cdev); - m_can_start(ndev); netif_device_attach(ndev); netif_start_queue(ndev); } --- linux-5.19.0.orig/drivers/net/can/m_can/m_can_pci.c +++ linux-5.19.0/drivers/net/can/m_can/m_can_pci.c @@ -120,7 +120,7 @@ ret = pci_alloc_irq_vectors(pci, 1, 1, PCI_IRQ_ALL_TYPES); if (ret < 0) - return ret; + goto err_free_dev; mcan_class->dev = &pci->dev; mcan_class->net->irq = pci_irq_vector(pci, 0); @@ -132,7 +132,7 @@ ret = m_can_class_register(mcan_class); if (ret) - goto err; + goto err_free_irq; /* Enable interrupt control at CAN wrapper IP */ writel(0x1, base + CTL_CSR_INT_CTL_OFFSET); @@ -144,8 +144,10 @@ return 0; -err: +err_free_irq: pci_free_irq_vectors(pci); +err_free_dev: + m_can_class_free_dev(mcan_class->net); return ret; } @@ -161,6 +163,7 @@ writel(0x0, priv->base + CTL_CSR_INT_CTL_OFFSET); m_can_class_unregister(mcan_class); + m_can_class_free_dev(mcan_class->net); pci_free_irq_vectors(pci); } --- linux-5.19.0.orig/drivers/net/can/m_can/m_can_platform.c +++ linux-5.19.0/drivers/net/can/m_can/m_can_platform.c @@ -140,10 +140,6 @@ platform_set_drvdata(pdev, mcan_class); - ret = m_can_init_ram(mcan_class); - if (ret) - goto probe_fail; - pm_runtime_enable(mcan_class->dev); ret = m_can_class_register(mcan_class); if (ret) --- linux-5.19.0.orig/drivers/net/can/m_can/tcan4x5x-core.c +++ linux-5.19.0/drivers/net/can/m_can/tcan4x5x-core.c @@ -10,7 +10,7 @@ #define TCAN4X5X_DEV_ID1 0x04 #define TCAN4X5X_REV 0x08 #define TCAN4X5X_STATUS 0x0C -#define TCAN4X5X_ERROR_STATUS 0x10 +#define TCAN4X5X_ERROR_STATUS_MASK 0x10 #define TCAN4X5X_CONTROL 0x14 #define TCAN4X5X_CONFIG 0x800 @@ -204,17 +204,7 @@ if (ret) return ret; - ret = tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_MCAN_INT_REG, - TCAN4X5X_ENABLE_MCAN_INT); - if (ret) - return ret; - - ret = tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_INT_FLAGS, - TCAN4X5X_CLEAR_ALL_INT); - if (ret) - return ret; - - return tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_ERROR_STATUS, + return tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_INT_FLAGS, TCAN4X5X_CLEAR_ALL_INT); } @@ -234,8 +224,8 @@ if (ret) return ret; - /* Zero out the MCAN buffers */ - ret = m_can_init_ram(cdev); + ret = tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_ERROR_STATUS_MASK, + TCAN4X5X_CLEAR_ALL_INT); if (ret) return ret; --- linux-5.19.0.orig/drivers/net/can/mscan/mpc5xxx_can.c +++ linux-5.19.0/drivers/net/can/mscan/mpc5xxx_can.c @@ -322,14 +322,14 @@ &mscan_clksrc); if (!priv->can.clock.freq) { dev_err(&ofdev->dev, "couldn't get MSCAN clock properties\n"); - goto exit_free_mscan; + goto exit_put_clock; } err = register_mscandev(dev, mscan_clksrc); if (err) { dev_err(&ofdev->dev, "registering %s failed (err=%d)\n", DRV_NAME, err); - goto exit_free_mscan; + goto exit_put_clock; } dev_info(&ofdev->dev, "MSCAN at 0x%p, irq %d, clock %d Hz\n", @@ -337,7 +337,9 @@ return 0; -exit_free_mscan: +exit_put_clock: + if (data->put_clock) + data->put_clock(ofdev); free_candev(dev); exit_dispose_irq: irq_dispose_mapping(irq); --- linux-5.19.0.orig/drivers/net/can/pch_can.c +++ linux-5.19.0/drivers/net/can/pch_can.c @@ -489,6 +489,7 @@ if (!skb) return; + errc = ioread32(&priv->regs->errc); if (status & PCH_BUS_OFF) { pch_can_set_tx_all(priv, 0); pch_can_set_rx_all(priv, 0); @@ -496,9 +497,11 @@ cf->can_id |= CAN_ERR_BUSOFF; priv->can.can_stats.bus_off++; can_bus_off(ndev); + } else { + cf->data[6] = errc & PCH_TEC; + cf->data[7] = (errc & PCH_REC) >> 8; } - errc = ioread32(&priv->regs->errc); /* Warning interrupt. */ if (status & PCH_EWARN) { state = CAN_STATE_ERROR_WARNING; @@ -556,9 +559,6 @@ break; } - cf->data[6] = errc & PCH_TEC; - cf->data[7] = (errc & PCH_REC) >> 8; - priv->can.state = state; netif_receive_skb(skb); } --- linux-5.19.0.orig/drivers/net/can/rcar/rcar_can.c +++ linux-5.19.0/drivers/net/can/rcar/rcar_can.c @@ -232,11 +232,8 @@ if (eifr & (RCAR_CAN_EIFR_EWIF | RCAR_CAN_EIFR_EPIF)) { txerr = readb(&priv->regs->tecr); rxerr = readb(&priv->regs->recr); - if (skb) { + if (skb) cf->can_id |= CAN_ERR_CRTL; - cf->data[6] = txerr; - cf->data[7] = rxerr; - } } if (eifr & RCAR_CAN_EIFR_BEIF) { int rx_errors = 0, tx_errors = 0; @@ -336,6 +333,9 @@ can_bus_off(ndev); if (skb) cf->can_id |= CAN_ERR_BUSOFF; + } else if (skb) { + cf->data[6] = txerr; + cf->data[7] = rxerr; } if (eifr & RCAR_CAN_EIFR_ORIF) { netdev_dbg(priv->ndev, "Receive overrun error interrupt\n"); --- linux-5.19.0.orig/drivers/net/can/rcar/rcar_canfd.c +++ linux-5.19.0/drivers/net/can/rcar/rcar_canfd.c @@ -80,8 +80,7 @@ /* RSCFDnCFDGERFL / RSCFDnGERFL */ #define RCANFD_GERFL_EEF0_7 GENMASK(23, 16) -#define RCANFD_GERFL_EEF1 BIT(17) -#define RCANFD_GERFL_EEF0 BIT(16) +#define RCANFD_GERFL_EEF(ch) BIT(16 + (ch)) #define RCANFD_GERFL_CMPOF BIT(3) /* CAN FD only */ #define RCANFD_GERFL_THLES BIT(2) #define RCANFD_GERFL_MES BIT(1) @@ -89,7 +88,7 @@ #define RCANFD_GERFL_ERR(gpriv, x) \ ((x) & (reg_v3u(gpriv, RCANFD_GERFL_EEF0_7, \ - RCANFD_GERFL_EEF0 | RCANFD_GERFL_EEF1) | \ + RCANFD_GERFL_EEF(0) | RCANFD_GERFL_EEF(1)) | \ RCANFD_GERFL_MES | \ ((gpriv)->fdmode ? RCANFD_GERFL_CMPOF : 0))) @@ -935,12 +934,8 @@ u32 ridx = ch + RCANFD_RFFIFO_IDX; gerfl = rcar_canfd_read(priv->base, RCANFD_GERFL); - if ((gerfl & RCANFD_GERFL_EEF0) && (ch == 0)) { - netdev_dbg(ndev, "Ch0: ECC Error flag\n"); - stats->tx_dropped++; - } - if ((gerfl & RCANFD_GERFL_EEF1) && (ch == 1)) { - netdev_dbg(ndev, "Ch1: ECC Error flag\n"); + if (gerfl & RCANFD_GERFL_EEF(ch)) { + netdev_dbg(ndev, "Ch%u: ECC Error flag\n", ch); stats->tx_dropped++; } if (gerfl & RCANFD_GERFL_MES) { @@ -1156,11 +1151,13 @@ { struct rcar_canfd_channel *priv = gpriv->ch[ch]; u32 ridx = ch + RCANFD_RFFIFO_IDX; - u32 sts; + u32 sts, cc; /* Handle Rx interrupts */ sts = rcar_canfd_read(priv->base, RCANFD_RFSTS(gpriv, ridx)); - if (likely(sts & RCANFD_RFSTS_RFIF)) { + cc = rcar_canfd_read(priv->base, RCANFD_RFCC(gpriv, ridx)); + if (likely(sts & RCANFD_RFSTS_RFIF && + cc & RCANFD_RFCC_RFIE)) { if (napi_schedule_prep(&priv->napi)) { /* Disable Rx FIFO interrupts */ rcar_canfd_clear_bit(priv->base, @@ -1243,11 +1240,9 @@ static irqreturn_t rcar_canfd_channel_tx_interrupt(int irq, void *dev_id) { - struct rcar_canfd_global *gpriv = dev_id; - u32 ch; + struct rcar_canfd_channel *priv = dev_id; - for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) - rcar_canfd_handle_channel_tx(gpriv, ch); + rcar_canfd_handle_channel_tx(priv->gpriv, priv->channel); return IRQ_HANDLED; } @@ -1275,11 +1270,9 @@ static irqreturn_t rcar_canfd_channel_err_interrupt(int irq, void *dev_id) { - struct rcar_canfd_global *gpriv = dev_id; - u32 ch; + struct rcar_canfd_channel *priv = dev_id; - for_each_set_bit(ch, &gpriv->channels_mask, gpriv->max_channels) - rcar_canfd_handle_channel_err(gpriv, ch); + rcar_canfd_handle_channel_err(priv->gpriv, priv->channel); return IRQ_HANDLED; } @@ -1715,6 +1708,7 @@ priv->ndev = ndev; priv->base = gpriv->base; priv->channel = ch; + priv->gpriv = gpriv; priv->can.clock.freq = fcan_freq; dev_info(&pdev->dev, "can_clk rate is %u\n", priv->can.clock.freq); @@ -1743,7 +1737,7 @@ } err = devm_request_irq(&pdev->dev, err_irq, rcar_canfd_channel_err_interrupt, 0, - irq_name, gpriv); + irq_name, priv); if (err) { dev_err(&pdev->dev, "devm_request_irq CH Err(%d) failed, error %d\n", err_irq, err); @@ -1757,7 +1751,7 @@ } err = devm_request_irq(&pdev->dev, tx_irq, rcar_canfd_channel_tx_interrupt, 0, - irq_name, gpriv); + irq_name, priv); if (err) { dev_err(&pdev->dev, "devm_request_irq Tx (%d) failed, error %d\n", tx_irq, err); @@ -1783,7 +1777,6 @@ priv->can.do_set_mode = rcar_canfd_do_set_mode; priv->can.do_get_berr_counter = rcar_canfd_get_berr_counter; - priv->gpriv = gpriv; SET_NETDEV_DEV(ndev, &pdev->dev); netif_napi_add_weight(ndev, &priv->napi, rcar_canfd_rx_poll, --- linux-5.19.0.orig/drivers/net/can/sja1000/sja1000.c +++ linux-5.19.0/drivers/net/can/sja1000/sja1000.c @@ -402,9 +402,6 @@ txerr = priv->read_reg(priv, SJA1000_TXERR); rxerr = priv->read_reg(priv, SJA1000_RXERR); - cf->data[6] = txerr; - cf->data[7] = rxerr; - if (isrc & IRQ_DOI) { /* data overrun interrupt */ netdev_dbg(dev, "data overrun interrupt\n"); @@ -426,6 +423,10 @@ else state = CAN_STATE_ERROR_ACTIVE; } + if (state != CAN_STATE_BUS_OFF) { + cf->data[6] = txerr; + cf->data[7] = rxerr; + } if (isrc & IRQ_BEI) { /* bus error interrupt */ priv->can.can_stats.bus_error++; --- linux-5.19.0.orig/drivers/net/can/sja1000/sja1000_isa.c +++ linux-5.19.0/drivers/net/can/sja1000/sja1000_isa.c @@ -202,22 +202,24 @@ if (err) { dev_err(&pdev->dev, "registering %s failed (err=%d)\n", DRV_NAME, err); - goto exit_unmap; + goto exit_free; } dev_info(&pdev->dev, "%s device registered (reg_base=0x%p, irq=%d)\n", DRV_NAME, priv->reg_base, dev->irq); return 0; - exit_unmap: +exit_free: + free_sja1000dev(dev); +exit_unmap: if (mem[idx]) iounmap(base); - exit_release: +exit_release: if (mem[idx]) release_mem_region(mem[idx], iosize); else release_region(port[idx], iosize); - exit: +exit: return err; } --- linux-5.19.0.orig/drivers/net/can/spi/hi311x.c +++ linux-5.19.0/drivers/net/can/spi/hi311x.c @@ -667,8 +667,6 @@ txerr = hi3110_read(spi, HI3110_READ_TEC); rxerr = hi3110_read(spi, HI3110_READ_REC); - cf->data[6] = txerr; - cf->data[7] = rxerr; tx_state = txerr >= rxerr ? new_state : 0; rx_state = txerr <= rxerr ? new_state : 0; can_change_state(net, cf, tx_state, rx_state); @@ -681,6 +679,9 @@ hi3110_hw_sleep(spi); break; } + } else { + cf->data[6] = txerr; + cf->data[7] = rxerr; } } --- linux-5.19.0.orig/drivers/net/can/spi/mcp251x.c +++ linux-5.19.0/drivers/net/can/spi/mcp251x.c @@ -1069,9 +1069,6 @@ mcp251x_read_2regs(spi, CANINTF, &intf, &eflag); - /* mask out flags we don't care about */ - intf &= CANINTF_RX | CANINTF_TX | CANINTF_ERR; - /* receive buffer 0 */ if (intf & CANINTF_RX0IF) { mcp251x_hw_rx(spi, 0); @@ -1081,6 +1078,18 @@ if (mcp251x_is_2510(spi)) mcp251x_write_bits(spi, CANINTF, CANINTF_RX0IF, 0x00); + + /* check if buffer 1 is already known to be full, no need to re-read */ + if (!(intf & CANINTF_RX1IF)) { + u8 intf1, eflag1; + + /* intf needs to be read again to avoid a race condition */ + mcp251x_read_2regs(spi, CANINTF, &intf1, &eflag1); + + /* combine flags from both operations for error handling */ + intf |= intf1; + eflag |= eflag1; + } } /* receive buffer 1 */ @@ -1091,6 +1100,9 @@ clear_intf |= CANINTF_RX1IF; } + /* mask out flags we don't care about */ + intf &= CANINTF_RX | CANINTF_TX | CANINTF_ERR; + /* any error or tx interrupt we need to clear? */ if (intf & (CANINTF_ERR | CANINTF_TX)) clear_intf |= intf & (CANINTF_ERR | CANINTF_TX); @@ -1397,11 +1409,14 @@ ret = mcp251x_gpio_setup(priv); if (ret) - goto error_probe; + goto out_unregister_candev; netdev_info(net, "MCP%x successfully initialized.\n", priv->model); return 0; +out_unregister_candev: + unregister_candev(net); + error_probe: destroy_workqueue(priv->wq); priv->wq = NULL; --- linux-5.19.0.orig/drivers/net/can/sun4i_can.c +++ linux-5.19.0/drivers/net/can/sun4i_can.c @@ -535,11 +535,6 @@ rxerr = (errc >> 16) & 0xFF; txerr = errc & 0xFF; - if (skb) { - cf->data[6] = txerr; - cf->data[7] = rxerr; - } - if (isrc & SUN4I_INT_DATA_OR) { /* data overrun interrupt */ netdev_dbg(dev, "data overrun interrupt\n"); @@ -570,6 +565,10 @@ else state = CAN_STATE_ERROR_ACTIVE; } + if (skb && state != CAN_STATE_BUS_OFF) { + cf->data[6] = txerr; + cf->data[7] = rxerr; + } if (isrc & SUN4I_INT_BUS_ERR) { /* bus error interrupt */ netdev_dbg(dev, "bus error interrupt\n"); --- linux-5.19.0.orig/drivers/net/can/usb/ems_usb.c +++ linux-5.19.0/drivers/net/can/usb/ems_usb.c @@ -194,7 +194,7 @@ __le32 ts_sec; /* timestamp in seconds */ __le32 ts_nsec; /* timestamp in nano seconds */ - union { + union __packed { u8 generic[64]; struct cpc_can_msg can_msg; struct cpc_can_params can_params; --- linux-5.19.0.orig/drivers/net/can/usb/esd_usb2.c +++ linux-5.19.0/drivers/net/can/usb/esd_usb2.c @@ -226,6 +226,10 @@ u8 rxerr = msg->msg.rx.data[2]; u8 txerr = msg->msg.rx.data[3]; + netdev_dbg(priv->netdev, + "CAN_ERR_EV_EXT: dlc=%#02x state=%02x ecc=%02x rec=%02x tec=%02x\n", + msg->msg.rx.dlc, state, ecc, rxerr, txerr); + skb = alloc_can_err_skb(priv->netdev, &cf); if (skb == NULL) { stats->rx_dropped++; @@ -252,6 +256,8 @@ break; default: priv->can.state = CAN_STATE_ERROR_ACTIVE; + txerr = 0; + rxerr = 0; break; } } else { --- linux-5.19.0.orig/drivers/net/can/usb/etas_es58x/es58x_core.c +++ linux-5.19.0/drivers/net/can/usb/etas_es58x/es58x_core.c @@ -2092,8 +2092,11 @@ netdev->dev_port = channel_idx; ret = register_candev(netdev); - if (ret) + if (ret) { + es58x_dev->netdev[channel_idx] = NULL; + free_candev(netdev); return ret; + } netdev_queue_set_dql_min_limit(netdev_get_tx_queue(netdev, 0), es58x_dev->param->dql_min_limit); --- linux-5.19.0.orig/drivers/net/can/usb/gs_usb.c +++ linux-5.19.0/drivers/net/can/usb/gs_usb.c @@ -268,8 +268,6 @@ struct usb_anchor tx_submitted; atomic_t active_tx_urbs; - void *rxbuf[GS_MAX_RX_URBS]; - dma_addr_t rxbuf_dma[GS_MAX_RX_URBS]; }; /* usb interface struct */ @@ -587,9 +585,6 @@ if (urb->status) netdev_info(netdev, "usb xmit fail %u\n", txc->echo_id); - - usb_free_coherent(urb->dev, urb->transfer_buffer_length, - urb->transfer_buffer, urb->transfer_dma); } static netdev_tx_t gs_can_start_xmit(struct sk_buff *skb, @@ -618,8 +613,7 @@ if (!urb) goto nomem_urb; - hf = usb_alloc_coherent(dev->udev, dev->hf_size_tx, GFP_ATOMIC, - &urb->transfer_dma); + hf = kmalloc(dev->hf_size_tx, GFP_ATOMIC); if (!hf) { netdev_err(netdev, "No memory left for USB buffer\n"); goto nomem_hf; @@ -663,7 +657,7 @@ hf, dev->hf_size_tx, gs_usb_xmit_callback, txc); - urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + urb->transfer_flags |= URB_FREE_BUFFER; usb_anchor_urb(urb, &dev->tx_submitted); can_put_echo_skb(skb, netdev, idx, 0); @@ -678,8 +672,6 @@ gs_free_tx_context(txc); usb_unanchor_urb(urb); - usb_free_coherent(dev->udev, urb->transfer_buffer_length, - urb->transfer_buffer, urb->transfer_dma); if (rc == -ENODEV) { netif_device_detach(netdev); @@ -699,8 +691,7 @@ return NETDEV_TX_OK; badidx: - usb_free_coherent(dev->udev, urb->transfer_buffer_length, - urb->transfer_buffer, urb->transfer_dma); + kfree(hf); nomem_hf: usb_free_urb(urb); @@ -744,7 +735,6 @@ for (i = 0; i < GS_MAX_RX_URBS; i++) { struct urb *urb; u8 *buf; - dma_addr_t buf_dma; /* alloc rx urb */ urb = usb_alloc_urb(0, GFP_KERNEL); @@ -752,10 +742,8 @@ return -ENOMEM; /* alloc rx buffer */ - buf = usb_alloc_coherent(dev->udev, - dev->parent->hf_size_rx, - GFP_KERNEL, - &buf_dma); + buf = kmalloc(dev->parent->hf_size_rx, + GFP_KERNEL); if (!buf) { netdev_err(netdev, "No memory left for USB buffer\n"); @@ -763,8 +751,6 @@ return -ENOMEM; } - urb->transfer_dma = buf_dma; - /* fill, anchor, and submit rx urb */ usb_fill_bulk_urb(urb, dev->udev, @@ -773,7 +759,7 @@ buf, dev->parent->hf_size_rx, gs_usb_receive_bulk_callback, parent); - urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; + urb->transfer_flags |= URB_FREE_BUFFER; usb_anchor_urb(urb, &parent->rx_submitted); @@ -786,17 +772,10 @@ "usb_submit failed (err=%d)\n", rc); usb_unanchor_urb(urb); - usb_free_coherent(dev->udev, - sizeof(struct gs_host_frame), - buf, - buf_dma); usb_free_urb(urb); break; } - dev->rxbuf[i] = buf; - dev->rxbuf_dma[i] = buf_dma; - /* Drop reference, * USB core will take care of freeing it */ @@ -824,6 +803,7 @@ flags |= GS_CAN_MODE_TRIPLE_SAMPLE; /* finally start device */ + dev->can.state = CAN_STATE_ERROR_ACTIVE; dm->mode = cpu_to_le32(GS_CAN_MODE_START); dm->flags = cpu_to_le32(flags); rc = usb_control_msg(interface_to_usbdev(dev->iface), @@ -835,13 +815,12 @@ if (rc < 0) { netdev_err(netdev, "Couldn't start device (err=%d)\n", rc); kfree(dm); + dev->can.state = CAN_STATE_STOPPED; return rc; } kfree(dm); - dev->can.state = CAN_STATE_ERROR_ACTIVE; - parent->active_channels++; if (!(dev->can.ctrlmode & CAN_CTRLMODE_LISTENONLY)) netif_start_queue(netdev); @@ -854,7 +833,6 @@ int rc; struct gs_can *dev = netdev_priv(netdev); struct gs_usb *parent = dev->parent; - unsigned int i; netif_stop_queue(netdev); @@ -862,11 +840,6 @@ parent->active_channels--; if (!parent->active_channels) { usb_kill_anchored_urbs(&parent->rx_submitted); - for (i = 0; i < GS_MAX_RX_URBS; i++) - usb_free_coherent(dev->udev, - sizeof(struct gs_host_frame), - dev->rxbuf[i], - dev->rxbuf_dma[i]); } /* Stop sending URBs */ --- linux-5.19.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb.h +++ linux-5.19.0/drivers/net/can/usb/kvaser_usb/kvaser_usb.h @@ -75,6 +75,14 @@ u32 echo_index; }; +struct kvaser_usb_busparams { + __le32 bitrate; + u8 tseg1; + u8 tseg2; + u8 sjw; + u8 nsamples; +} __packed; + struct kvaser_usb { struct usb_device *udev; struct usb_interface *intf; @@ -103,13 +111,19 @@ struct can_priv can; struct can_berr_counter bec; + /* subdriver-specific data */ + void *sub_priv; + struct kvaser_usb *dev; struct net_device *netdev; int channel; - struct completion start_comp, stop_comp, flush_comp; + struct completion start_comp, stop_comp, flush_comp, + get_busparams_comp; struct usb_anchor tx_submitted; + struct kvaser_usb_busparams busparams_nominal, busparams_data; + spinlock_t tx_contexts_lock; /* lock for active_tx_contexts */ int active_tx_contexts; struct kvaser_usb_tx_urb_context tx_contexts[]; @@ -119,11 +133,15 @@ * struct kvaser_usb_dev_ops - Device specific functions * @dev_set_mode: used for can.do_set_mode * @dev_set_bittiming: used for can.do_set_bittiming + * @dev_get_busparams: readback arbitration busparams * @dev_set_data_bittiming: used for can.do_set_data_bittiming + * @dev_get_data_busparams: readback data busparams * @dev_get_berr_counter: used for can.do_get_berr_counter * * @dev_setup_endpoints: setup USB in and out endpoints * @dev_init_card: initialize card + * @dev_init_channel: initialize channel + * @dev_remove_channel: uninitialize channel * @dev_get_software_info: get software info * @dev_get_software_details: get software details * @dev_get_card_info: get card info @@ -139,12 +157,18 @@ */ struct kvaser_usb_dev_ops { int (*dev_set_mode)(struct net_device *netdev, enum can_mode mode); - int (*dev_set_bittiming)(struct net_device *netdev); - int (*dev_set_data_bittiming)(struct net_device *netdev); + int (*dev_set_bittiming)(const struct net_device *netdev, + const struct kvaser_usb_busparams *busparams); + int (*dev_get_busparams)(struct kvaser_usb_net_priv *priv); + int (*dev_set_data_bittiming)(const struct net_device *netdev, + const struct kvaser_usb_busparams *busparams); + int (*dev_get_data_busparams)(struct kvaser_usb_net_priv *priv); int (*dev_get_berr_counter)(const struct net_device *netdev, struct can_berr_counter *bec); int (*dev_setup_endpoints)(struct kvaser_usb *dev); int (*dev_init_card)(struct kvaser_usb *dev); + int (*dev_init_channel)(struct kvaser_usb_net_priv *priv); + void (*dev_remove_channel)(struct kvaser_usb_net_priv *priv); int (*dev_get_software_info)(struct kvaser_usb *dev); int (*dev_get_software_details)(struct kvaser_usb *dev); int (*dev_get_card_info)(struct kvaser_usb *dev); @@ -177,6 +201,8 @@ extern const struct kvaser_usb_dev_ops kvaser_usb_hydra_dev_ops; extern const struct kvaser_usb_dev_ops kvaser_usb_leaf_dev_ops; +void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv); + int kvaser_usb_recv_cmd(const struct kvaser_usb *dev, void *cmd, int len, int *actual_len); --- linux-5.19.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c +++ linux-5.19.0/drivers/net/can/usb/kvaser_usb/kvaser_usb_core.c @@ -439,10 +439,6 @@ if (err) return err; - err = kvaser_usb_setup_rx_urbs(dev); - if (err) - goto error; - err = ops->dev_set_opt_mode(priv); if (err) goto error; @@ -476,7 +472,7 @@ /* This method might sleep. Do not call it in the atomic context * of URB completions. */ -static void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv) +void kvaser_usb_unlink_tx_urbs(struct kvaser_usb_net_priv *priv) { usb_kill_anchored_urbs(&priv->tx_submitted); kvaser_usb_reset_tx_urb_contexts(priv); @@ -533,6 +529,93 @@ return 0; } +static int kvaser_usb_set_bittiming(struct net_device *netdev) +{ + struct kvaser_usb_net_priv *priv = netdev_priv(netdev); + struct kvaser_usb *dev = priv->dev; + const struct kvaser_usb_dev_ops *ops = dev->driver_info->ops; + struct can_bittiming *bt = &priv->can.bittiming; + + struct kvaser_usb_busparams busparams; + int tseg1 = bt->prop_seg + bt->phase_seg1; + int tseg2 = bt->phase_seg2; + int sjw = bt->sjw; + int err = -EOPNOTSUPP; + + busparams.bitrate = cpu_to_le32(bt->bitrate); + busparams.sjw = (u8)sjw; + busparams.tseg1 = (u8)tseg1; + busparams.tseg2 = (u8)tseg2; + if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES) + busparams.nsamples = 3; + else + busparams.nsamples = 1; + + err = ops->dev_set_bittiming(netdev, &busparams); + if (err) + return err; + + err = kvaser_usb_setup_rx_urbs(priv->dev); + if (err) + return err; + + err = ops->dev_get_busparams(priv); + if (err) { + /* Treat EOPNOTSUPP as success */ + if (err == -EOPNOTSUPP) + err = 0; + return err; + } + + if (memcmp(&busparams, &priv->busparams_nominal, + sizeof(priv->busparams_nominal)) != 0) + err = -EINVAL; + + return err; +} + +static int kvaser_usb_set_data_bittiming(struct net_device *netdev) +{ + struct kvaser_usb_net_priv *priv = netdev_priv(netdev); + struct kvaser_usb *dev = priv->dev; + const struct kvaser_usb_dev_ops *ops = dev->driver_info->ops; + struct can_bittiming *dbt = &priv->can.data_bittiming; + + struct kvaser_usb_busparams busparams; + int tseg1 = dbt->prop_seg + dbt->phase_seg1; + int tseg2 = dbt->phase_seg2; + int sjw = dbt->sjw; + int err; + + if (!ops->dev_set_data_bittiming || + !ops->dev_get_data_busparams) + return -EOPNOTSUPP; + + busparams.bitrate = cpu_to_le32(dbt->bitrate); + busparams.sjw = (u8)sjw; + busparams.tseg1 = (u8)tseg1; + busparams.tseg2 = (u8)tseg2; + busparams.nsamples = 1; + + err = ops->dev_set_data_bittiming(netdev, &busparams); + if (err) + return err; + + err = kvaser_usb_setup_rx_urbs(priv->dev); + if (err) + return err; + + err = ops->dev_get_data_busparams(priv); + if (err) + return err; + + if (memcmp(&busparams, &priv->busparams_data, + sizeof(priv->busparams_data)) != 0) + err = -EINVAL; + + return err; +} + static void kvaser_usb_write_bulk_callback(struct urb *urb) { struct kvaser_usb_tx_urb_context *context = urb->context; @@ -667,6 +750,7 @@ static void kvaser_usb_remove_interfaces(struct kvaser_usb *dev) { + const struct kvaser_usb_dev_ops *ops = dev->driver_info->ops; int i; for (i = 0; i < dev->nchannels; i++) { @@ -682,6 +766,9 @@ if (!dev->nets[i]) continue; + if (ops->dev_remove_channel) + ops->dev_remove_channel(dev->nets[i]); + free_candev(dev->nets[i]->netdev); } } @@ -712,6 +799,8 @@ init_usb_anchor(&priv->tx_submitted); init_completion(&priv->start_comp); init_completion(&priv->stop_comp); + init_completion(&priv->flush_comp); + init_completion(&priv->get_busparams_comp); priv->can.ctrlmode_supported = 0; priv->dev = dev; @@ -724,7 +813,7 @@ priv->can.state = CAN_STATE_STOPPED; priv->can.clock.freq = dev->cfg->clock.freq; priv->can.bittiming_const = dev->cfg->bittiming_const; - priv->can.do_set_bittiming = ops->dev_set_bittiming; + priv->can.do_set_bittiming = kvaser_usb_set_bittiming; priv->can.do_set_mode = ops->dev_set_mode; if ((driver_info->quirks & KVASER_USB_QUIRK_HAS_TXRX_ERRORS) || (priv->dev->card_data.capabilities & KVASER_USB_CAP_BERR_CAP)) @@ -736,7 +825,7 @@ if (priv->can.ctrlmode_supported & CAN_CTRLMODE_FD) { priv->can.data_bittiming_const = dev->cfg->data_bittiming_const; - priv->can.do_set_data_bittiming = ops->dev_set_data_bittiming; + priv->can.do_set_data_bittiming = kvaser_usb_set_data_bittiming; } netdev->flags |= IFF_ECHO; @@ -748,17 +837,26 @@ dev->nets[channel] = priv; + if (ops->dev_init_channel) { + err = ops->dev_init_channel(priv); + if (err) + goto err; + } + err = register_candev(netdev); if (err) { dev_err(&dev->intf->dev, "Failed to register CAN device\n"); - free_candev(netdev); - dev->nets[channel] = NULL; - return err; + goto err; } netdev_dbg(netdev, "device registered\n"); return 0; + +err: + free_candev(netdev); + dev->nets[channel] = NULL; + return err; } static int kvaser_usb_probe(struct usb_interface *intf, --- linux-5.19.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c +++ linux-5.19.0/drivers/net/can/usb/kvaser_usb/kvaser_usb_hydra.c @@ -45,6 +45,8 @@ /* Minihydra command IDs */ #define CMD_SET_BUSPARAMS_REQ 16 +#define CMD_GET_BUSPARAMS_REQ 17 +#define CMD_GET_BUSPARAMS_RESP 18 #define CMD_GET_CHIP_STATE_REQ 19 #define CMD_CHIP_STATE_EVENT 20 #define CMD_SET_DRIVERMODE_REQ 21 @@ -196,21 +198,26 @@ #define KVASER_USB_HYDRA_BUS_MODE_CANFD_ISO 0x01 #define KVASER_USB_HYDRA_BUS_MODE_NONISO 0x02 struct kvaser_cmd_set_busparams { - __le32 bitrate; - u8 tseg1; - u8 tseg2; - u8 sjw; - u8 nsamples; + struct kvaser_usb_busparams busparams_nominal; u8 reserved0[4]; - __le32 bitrate_d; - u8 tseg1_d; - u8 tseg2_d; - u8 sjw_d; - u8 nsamples_d; + struct kvaser_usb_busparams busparams_data; u8 canfd_mode; u8 reserved1[7]; } __packed; +/* Busparam type */ +#define KVASER_USB_HYDRA_BUSPARAM_TYPE_CAN 0x00 +#define KVASER_USB_HYDRA_BUSPARAM_TYPE_CANFD 0x01 +struct kvaser_cmd_get_busparams_req { + u8 type; + u8 reserved[27]; +} __packed; + +struct kvaser_cmd_get_busparams_res { + struct kvaser_usb_busparams busparams; + u8 reserved[20]; +} __packed; + /* Ctrl modes */ #define KVASER_USB_HYDRA_CTRLMODE_NORMAL 0x01 #define KVASER_USB_HYDRA_CTRLMODE_LISTEN 0x02 @@ -281,6 +288,8 @@ struct kvaser_cmd_error_event error_event; struct kvaser_cmd_set_busparams set_busparams_req; + struct kvaser_cmd_get_busparams_req get_busparams_req; + struct kvaser_cmd_get_busparams_res get_busparams_res; struct kvaser_cmd_chip_state_event chip_state_event; @@ -363,6 +372,10 @@ } __packed; } __packed; +struct kvaser_usb_net_hydra_priv { + int pending_get_busparams_type; +}; + static const struct can_bittiming_const kvaser_usb_hydra_kcan_bittiming_c = { .name = "kvaser_usb_kcan", .tseg1_min = 1, @@ -840,6 +853,39 @@ complete(&priv->flush_comp); } +static void kvaser_usb_hydra_get_busparams_reply(const struct kvaser_usb *dev, + const struct kvaser_cmd *cmd) +{ + struct kvaser_usb_net_priv *priv; + struct kvaser_usb_net_hydra_priv *hydra; + + priv = kvaser_usb_hydra_net_priv_from_cmd(dev, cmd); + if (!priv) + return; + + hydra = priv->sub_priv; + if (!hydra) + return; + + switch (hydra->pending_get_busparams_type) { + case KVASER_USB_HYDRA_BUSPARAM_TYPE_CAN: + memcpy(&priv->busparams_nominal, &cmd->get_busparams_res.busparams, + sizeof(priv->busparams_nominal)); + break; + case KVASER_USB_HYDRA_BUSPARAM_TYPE_CANFD: + memcpy(&priv->busparams_data, &cmd->get_busparams_res.busparams, + sizeof(priv->busparams_nominal)); + break; + default: + dev_warn(&dev->intf->dev, "Unknown get_busparams_type %d\n", + hydra->pending_get_busparams_type); + break; + } + hydra->pending_get_busparams_type = -1; + + complete(&priv->get_busparams_comp); +} + static void kvaser_usb_hydra_bus_status_to_can_state(const struct kvaser_usb_net_priv *priv, u8 bus_status, @@ -917,8 +963,10 @@ new_state < CAN_STATE_BUS_OFF) priv->can.can_stats.restarts++; - cf->data[6] = bec->txerr; - cf->data[7] = bec->rxerr; + if (new_state != CAN_STATE_BUS_OFF) { + cf->data[6] = bec->txerr; + cf->data[7] = bec->rxerr; + } netif_rx(skb); } @@ -1069,8 +1117,10 @@ shhwtstamps->hwtstamp = hwtstamp; cf->can_id |= CAN_ERR_BUSERROR; - cf->data[6] = bec.txerr; - cf->data[7] = bec.rxerr; + if (new_state != CAN_STATE_BUS_OFF) { + cf->data[6] = bec.txerr; + cf->data[7] = bec.rxerr; + } netif_rx(skb); @@ -1320,6 +1370,10 @@ kvaser_usb_hydra_state_event(dev, cmd); break; + case CMD_GET_BUSPARAMS_RESP: + kvaser_usb_hydra_get_busparams_reply(dev, cmd); + break; + case CMD_ERROR_EVENT: kvaser_usb_hydra_error_event(dev, cmd); break; @@ -1516,15 +1570,58 @@ return err; } -static int kvaser_usb_hydra_set_bittiming(struct net_device *netdev) +static int kvaser_usb_hydra_get_busparams(struct kvaser_usb_net_priv *priv, + int busparams_type) +{ + struct kvaser_usb *dev = priv->dev; + struct kvaser_usb_net_hydra_priv *hydra = priv->sub_priv; + struct kvaser_cmd *cmd; + int err; + + if (!hydra) + return -EINVAL; + + cmd = kcalloc(1, sizeof(struct kvaser_cmd), GFP_KERNEL); + if (!cmd) + return -ENOMEM; + + cmd->header.cmd_no = CMD_GET_BUSPARAMS_REQ; + kvaser_usb_hydra_set_cmd_dest_he + (cmd, dev->card_data.hydra.channel_to_he[priv->channel]); + kvaser_usb_hydra_set_cmd_transid + (cmd, kvaser_usb_hydra_get_next_transid(dev)); + cmd->get_busparams_req.type = busparams_type; + hydra->pending_get_busparams_type = busparams_type; + + reinit_completion(&priv->get_busparams_comp); + + err = kvaser_usb_send_cmd(dev, cmd, kvaser_usb_hydra_cmd_size(cmd)); + if (err) + return err; + + if (!wait_for_completion_timeout(&priv->get_busparams_comp, + msecs_to_jiffies(KVASER_USB_TIMEOUT))) + return -ETIMEDOUT; + + return err; +} + +static int kvaser_usb_hydra_get_nominal_busparams(struct kvaser_usb_net_priv *priv) +{ + return kvaser_usb_hydra_get_busparams(priv, KVASER_USB_HYDRA_BUSPARAM_TYPE_CAN); +} + +static int kvaser_usb_hydra_get_data_busparams(struct kvaser_usb_net_priv *priv) +{ + return kvaser_usb_hydra_get_busparams(priv, KVASER_USB_HYDRA_BUSPARAM_TYPE_CANFD); +} + +static int kvaser_usb_hydra_set_bittiming(const struct net_device *netdev, + const struct kvaser_usb_busparams *busparams) { struct kvaser_cmd *cmd; struct kvaser_usb_net_priv *priv = netdev_priv(netdev); - struct can_bittiming *bt = &priv->can.bittiming; struct kvaser_usb *dev = priv->dev; - int tseg1 = bt->prop_seg + bt->phase_seg1; - int tseg2 = bt->phase_seg2; - int sjw = bt->sjw; int err; cmd = kcalloc(1, sizeof(struct kvaser_cmd), GFP_KERNEL); @@ -1532,11 +1629,8 @@ return -ENOMEM; cmd->header.cmd_no = CMD_SET_BUSPARAMS_REQ; - cmd->set_busparams_req.bitrate = cpu_to_le32(bt->bitrate); - cmd->set_busparams_req.sjw = (u8)sjw; - cmd->set_busparams_req.tseg1 = (u8)tseg1; - cmd->set_busparams_req.tseg2 = (u8)tseg2; - cmd->set_busparams_req.nsamples = 1; + memcpy(&cmd->set_busparams_req.busparams_nominal, busparams, + sizeof(cmd->set_busparams_req.busparams_nominal)); kvaser_usb_hydra_set_cmd_dest_he (cmd, dev->card_data.hydra.channel_to_he[priv->channel]); @@ -1550,15 +1644,12 @@ return err; } -static int kvaser_usb_hydra_set_data_bittiming(struct net_device *netdev) +static int kvaser_usb_hydra_set_data_bittiming(const struct net_device *netdev, + const struct kvaser_usb_busparams *busparams) { struct kvaser_cmd *cmd; struct kvaser_usb_net_priv *priv = netdev_priv(netdev); - struct can_bittiming *dbt = &priv->can.data_bittiming; struct kvaser_usb *dev = priv->dev; - int tseg1 = dbt->prop_seg + dbt->phase_seg1; - int tseg2 = dbt->phase_seg2; - int sjw = dbt->sjw; int err; cmd = kcalloc(1, sizeof(struct kvaser_cmd), GFP_KERNEL); @@ -1566,11 +1657,8 @@ return -ENOMEM; cmd->header.cmd_no = CMD_SET_BUSPARAMS_FD_REQ; - cmd->set_busparams_req.bitrate_d = cpu_to_le32(dbt->bitrate); - cmd->set_busparams_req.sjw_d = (u8)sjw; - cmd->set_busparams_req.tseg1_d = (u8)tseg1; - cmd->set_busparams_req.tseg2_d = (u8)tseg2; - cmd->set_busparams_req.nsamples_d = 1; + memcpy(&cmd->set_busparams_req.busparams_data, busparams, + sizeof(cmd->set_busparams_req.busparams_data)); if (priv->can.ctrlmode & CAN_CTRLMODE_FD) { if (priv->can.ctrlmode & CAN_CTRLMODE_FD_NON_ISO) @@ -1677,6 +1765,19 @@ return 0; } +static int kvaser_usb_hydra_init_channel(struct kvaser_usb_net_priv *priv) +{ + struct kvaser_usb_net_hydra_priv *hydra; + + hydra = devm_kzalloc(&priv->dev->intf->dev, sizeof(*hydra), GFP_KERNEL); + if (!hydra) + return -ENOMEM; + + priv->sub_priv = hydra; + + return 0; +} + static int kvaser_usb_hydra_get_software_info(struct kvaser_usb *dev) { struct kvaser_cmd cmd; @@ -1869,7 +1970,7 @@ { int err; - init_completion(&priv->start_comp); + reinit_completion(&priv->start_comp); err = kvaser_usb_hydra_send_simple_cmd(priv->dev, CMD_START_CHIP_REQ, priv->channel); @@ -1887,7 +1988,7 @@ { int err; - init_completion(&priv->stop_comp); + reinit_completion(&priv->stop_comp); /* Make sure we do not report invalid BUS_OFF from CMD_CHIP_STATE_EVENT * see comment in kvaser_usb_hydra_update_state() @@ -1910,7 +2011,7 @@ { int err; - init_completion(&priv->flush_comp); + reinit_completion(&priv->flush_comp); err = kvaser_usb_hydra_send_simple_cmd(priv->dev, CMD_FLUSH_QUEUE, priv->channel); @@ -2021,10 +2122,13 @@ const struct kvaser_usb_dev_ops kvaser_usb_hydra_dev_ops = { .dev_set_mode = kvaser_usb_hydra_set_mode, .dev_set_bittiming = kvaser_usb_hydra_set_bittiming, + .dev_get_busparams = kvaser_usb_hydra_get_nominal_busparams, .dev_set_data_bittiming = kvaser_usb_hydra_set_data_bittiming, + .dev_get_data_busparams = kvaser_usb_hydra_get_data_busparams, .dev_get_berr_counter = kvaser_usb_hydra_get_berr_counter, .dev_setup_endpoints = kvaser_usb_hydra_setup_endpoints, .dev_init_card = kvaser_usb_hydra_init_card, + .dev_init_channel = kvaser_usb_hydra_init_channel, .dev_get_software_info = kvaser_usb_hydra_get_software_info, .dev_get_software_details = kvaser_usb_hydra_get_software_details, .dev_get_card_info = kvaser_usb_hydra_get_card_info, --- linux-5.19.0.orig/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c +++ linux-5.19.0/drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include @@ -56,6 +57,9 @@ #define CMD_RX_EXT_MESSAGE 14 #define CMD_TX_EXT_MESSAGE 15 #define CMD_SET_BUS_PARAMS 16 +#define CMD_GET_BUS_PARAMS 17 +#define CMD_GET_BUS_PARAMS_REPLY 18 +#define CMD_GET_CHIP_STATE 19 #define CMD_CHIP_STATE_EVENT 20 #define CMD_SET_CTRL_MODE 21 #define CMD_RESET_CHIP 24 @@ -70,10 +74,13 @@ #define CMD_GET_CARD_INFO_REPLY 35 #define CMD_GET_SOFTWARE_INFO 38 #define CMD_GET_SOFTWARE_INFO_REPLY 39 +#define CMD_ERROR_EVENT 45 #define CMD_FLUSH_QUEUE 48 #define CMD_TX_ACKNOWLEDGE 50 #define CMD_CAN_ERROR_EVENT 51 #define CMD_FLUSH_QUEUE_REPLY 68 +#define CMD_GET_CAPABILITIES_REQ 95 +#define CMD_GET_CAPABILITIES_RESP 96 #define CMD_LEAF_LOG_MESSAGE 106 @@ -83,6 +90,8 @@ #define KVASER_USB_LEAF_SWOPTION_FREQ_32_MHZ_CLK BIT(5) #define KVASER_USB_LEAF_SWOPTION_FREQ_24_MHZ_CLK BIT(6) +#define KVASER_USB_LEAF_SWOPTION_EXT_CAP BIT(12) + /* error factors */ #define M16C_EF_ACKE BIT(0) #define M16C_EF_CRCE BIT(1) @@ -157,11 +166,7 @@ struct kvaser_cmd_busparams { u8 tid; u8 channel; - __le32 bitrate; - u8 tseg1; - u8 tseg2; - u8 sjw; - u8 no_samp; + struct kvaser_usb_busparams busparams; } __packed; struct kvaser_cmd_tx_can { @@ -230,7 +235,7 @@ u8 tid; } __packed; -struct leaf_cmd_error_event { +struct leaf_cmd_can_error_event { u8 tid; u8 flags; __le16 time[3]; @@ -242,7 +247,7 @@ u8 error_factor; } __packed; -struct usbcan_cmd_error_event { +struct usbcan_cmd_can_error_event { u8 tid; u8 padding; u8 tx_errors_count_ch0; @@ -254,6 +259,28 @@ __le16 time; } __packed; +/* CMD_ERROR_EVENT error codes */ +#define KVASER_USB_LEAF_ERROR_EVENT_TX_QUEUE_FULL 0x8 +#define KVASER_USB_LEAF_ERROR_EVENT_PARAM 0x9 + +struct leaf_cmd_error_event { + u8 tid; + u8 error_code; + __le16 timestamp[3]; + __le16 padding; + __le16 info1; + __le16 info2; +} __packed; + +struct usbcan_cmd_error_event { + u8 tid; + u8 error_code; + __le16 info1; + __le16 info2; + __le16 timestamp; + __le16 padding; +} __packed; + struct kvaser_cmd_ctrl_mode { u8 tid; u8 channel; @@ -278,6 +305,28 @@ u8 data[8]; } __packed; +/* Sub commands for cap_req and cap_res */ +#define KVASER_USB_LEAF_CAP_CMD_LISTEN_MODE 0x02 +#define KVASER_USB_LEAF_CAP_CMD_ERR_REPORT 0x05 +struct kvaser_cmd_cap_req { + __le16 padding0; + __le16 cap_cmd; + __le16 padding1; + __le16 channel; +} __packed; + +/* Status codes for cap_res */ +#define KVASER_USB_LEAF_CAP_STAT_OK 0x00 +#define KVASER_USB_LEAF_CAP_STAT_NOT_IMPL 0x01 +#define KVASER_USB_LEAF_CAP_STAT_UNAVAIL 0x02 +struct kvaser_cmd_cap_res { + __le16 padding; + __le16 cap_cmd; + __le16 status; + __le32 mask; + __le32 value; +} __packed; + struct kvaser_cmd { u8 len; u8 id; @@ -293,14 +342,18 @@ struct leaf_cmd_softinfo softinfo; struct leaf_cmd_rx_can rx_can; struct leaf_cmd_chip_state_event chip_state_event; - struct leaf_cmd_error_event error_event; + struct leaf_cmd_can_error_event can_error_event; struct leaf_cmd_log_message log_message; + struct leaf_cmd_error_event error_event; + struct kvaser_cmd_cap_req cap_req; + struct kvaser_cmd_cap_res cap_res; } __packed leaf; union { struct usbcan_cmd_softinfo softinfo; struct usbcan_cmd_rx_can rx_can; struct usbcan_cmd_chip_state_event chip_state_event; + struct usbcan_cmd_can_error_event can_error_event; struct usbcan_cmd_error_event error_event; } __packed usbcan; @@ -310,6 +363,42 @@ } u; } __packed; +#define CMD_SIZE_ANY 0xff +#define kvaser_fsize(field) sizeof_field(struct kvaser_cmd, field) + +static const u8 kvaser_usb_leaf_cmd_sizes_leaf[] = { + [CMD_START_CHIP_REPLY] = kvaser_fsize(u.simple), + [CMD_STOP_CHIP_REPLY] = kvaser_fsize(u.simple), + [CMD_GET_CARD_INFO_REPLY] = kvaser_fsize(u.cardinfo), + [CMD_TX_ACKNOWLEDGE] = kvaser_fsize(u.tx_acknowledge_header), + [CMD_GET_SOFTWARE_INFO_REPLY] = kvaser_fsize(u.leaf.softinfo), + [CMD_RX_STD_MESSAGE] = kvaser_fsize(u.leaf.rx_can), + [CMD_RX_EXT_MESSAGE] = kvaser_fsize(u.leaf.rx_can), + [CMD_LEAF_LOG_MESSAGE] = kvaser_fsize(u.leaf.log_message), + [CMD_CHIP_STATE_EVENT] = kvaser_fsize(u.leaf.chip_state_event), + [CMD_CAN_ERROR_EVENT] = kvaser_fsize(u.leaf.can_error_event), + [CMD_GET_CAPABILITIES_RESP] = kvaser_fsize(u.leaf.cap_res), + [CMD_GET_BUS_PARAMS_REPLY] = kvaser_fsize(u.busparams), + [CMD_ERROR_EVENT] = kvaser_fsize(u.leaf.error_event), + /* ignored events: */ + [CMD_FLUSH_QUEUE_REPLY] = CMD_SIZE_ANY, +}; + +static const u8 kvaser_usb_leaf_cmd_sizes_usbcan[] = { + [CMD_START_CHIP_REPLY] = kvaser_fsize(u.simple), + [CMD_STOP_CHIP_REPLY] = kvaser_fsize(u.simple), + [CMD_GET_CARD_INFO_REPLY] = kvaser_fsize(u.cardinfo), + [CMD_TX_ACKNOWLEDGE] = kvaser_fsize(u.tx_acknowledge_header), + [CMD_GET_SOFTWARE_INFO_REPLY] = kvaser_fsize(u.usbcan.softinfo), + [CMD_RX_STD_MESSAGE] = kvaser_fsize(u.usbcan.rx_can), + [CMD_RX_EXT_MESSAGE] = kvaser_fsize(u.usbcan.rx_can), + [CMD_CHIP_STATE_EVENT] = kvaser_fsize(u.usbcan.chip_state_event), + [CMD_CAN_ERROR_EVENT] = kvaser_fsize(u.usbcan.can_error_event), + [CMD_ERROR_EVENT] = kvaser_fsize(u.usbcan.error_event), + /* ignored events: */ + [CMD_USBCAN_CLOCK_OVERFLOW_EVENT] = CMD_SIZE_ANY, +}; + /* Summary of a kvaser error event, for a unified Leaf/Usbcan error * handling. Some discrepancies between the two families exist: * @@ -333,6 +422,12 @@ }; }; +struct kvaser_usb_net_leaf_priv { + struct kvaser_usb_net_priv *net; + + struct delayed_work chip_state_req_work; +}; + static const struct can_bittiming_const kvaser_usb_leaf_m16c_bittiming_const = { .name = "kvaser_usb_ucii", .tseg1_min = 4, @@ -397,6 +492,43 @@ .bittiming_const = &kvaser_usb_flexc_bittiming_const, }; +static int kvaser_usb_leaf_verify_size(const struct kvaser_usb *dev, + const struct kvaser_cmd *cmd) +{ + /* buffer size >= cmd->len ensured by caller */ + u8 min_size = 0; + + switch (dev->driver_info->family) { + case KVASER_LEAF: + if (cmd->id < ARRAY_SIZE(kvaser_usb_leaf_cmd_sizes_leaf)) + min_size = kvaser_usb_leaf_cmd_sizes_leaf[cmd->id]; + break; + case KVASER_USBCAN: + if (cmd->id < ARRAY_SIZE(kvaser_usb_leaf_cmd_sizes_usbcan)) + min_size = kvaser_usb_leaf_cmd_sizes_usbcan[cmd->id]; + break; + } + + if (min_size == CMD_SIZE_ANY) + return 0; + + if (min_size) { + min_size += CMD_HEADER_LEN; + if (cmd->len >= min_size) + return 0; + + dev_err_ratelimited(&dev->intf->dev, + "Received command %u too short (size %u, needed %u)", + cmd->id, cmd->len, min_size); + return -EIO; + } + + dev_warn_ratelimited(&dev->intf->dev, + "Unhandled command (%d, size %d)\n", + cmd->id, cmd->len); + return -EINVAL; +} + static void * kvaser_usb_leaf_frame_to_cmd(const struct kvaser_usb_net_priv *priv, const struct sk_buff *skb, int *cmd_len, @@ -502,6 +634,9 @@ end: kfree(buf); + if (err == 0) + err = kvaser_usb_leaf_verify_size(dev, cmd); + return err; } @@ -534,6 +669,9 @@ dev->fw_version = le32_to_cpu(softinfo->fw_version); dev->max_tx_urbs = le16_to_cpu(softinfo->max_outstanding_tx); + if (sw_options & KVASER_USB_LEAF_SWOPTION_EXT_CAP) + dev->card_data.capabilities |= KVASER_USB_CAP_EXT_CAP; + if (dev->driver_info->quirks & KVASER_USB_QUIRK_IGNORE_CLK_FREQ) { /* Firmware expects bittiming parameters calculated for 16MHz * clock, regardless of the actual clock @@ -621,6 +759,116 @@ return 0; } +static int kvaser_usb_leaf_get_single_capability(struct kvaser_usb *dev, + u16 cap_cmd_req, u16 *status) +{ + struct kvaser_usb_dev_card_data *card_data = &dev->card_data; + struct kvaser_cmd *cmd; + u32 value = 0; + u32 mask = 0; + u16 cap_cmd_res; + int err; + int i; + + cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); + if (!cmd) + return -ENOMEM; + + cmd->id = CMD_GET_CAPABILITIES_REQ; + cmd->u.leaf.cap_req.cap_cmd = cpu_to_le16(cap_cmd_req); + cmd->len = CMD_HEADER_LEN + sizeof(struct kvaser_cmd_cap_req); + + err = kvaser_usb_send_cmd(dev, cmd, cmd->len); + if (err) + goto end; + + err = kvaser_usb_leaf_wait_cmd(dev, CMD_GET_CAPABILITIES_RESP, cmd); + if (err) + goto end; + + *status = le16_to_cpu(cmd->u.leaf.cap_res.status); + + if (*status != KVASER_USB_LEAF_CAP_STAT_OK) + goto end; + + cap_cmd_res = le16_to_cpu(cmd->u.leaf.cap_res.cap_cmd); + switch (cap_cmd_res) { + case KVASER_USB_LEAF_CAP_CMD_LISTEN_MODE: + case KVASER_USB_LEAF_CAP_CMD_ERR_REPORT: + value = le32_to_cpu(cmd->u.leaf.cap_res.value); + mask = le32_to_cpu(cmd->u.leaf.cap_res.mask); + break; + default: + dev_warn(&dev->intf->dev, "Unknown capability command %u\n", + cap_cmd_res); + break; + } + + for (i = 0; i < dev->nchannels; i++) { + if (BIT(i) & (value & mask)) { + switch (cap_cmd_res) { + case KVASER_USB_LEAF_CAP_CMD_LISTEN_MODE: + card_data->ctrlmode_supported |= + CAN_CTRLMODE_LISTENONLY; + break; + case KVASER_USB_LEAF_CAP_CMD_ERR_REPORT: + card_data->capabilities |= + KVASER_USB_CAP_BERR_CAP; + break; + } + } + } + +end: + kfree(cmd); + + return err; +} + +static int kvaser_usb_leaf_get_capabilities_leaf(struct kvaser_usb *dev) +{ + int err; + u16 status; + + if (!(dev->card_data.capabilities & KVASER_USB_CAP_EXT_CAP)) { + dev_info(&dev->intf->dev, + "No extended capability support. Upgrade device firmware.\n"); + return 0; + } + + err = kvaser_usb_leaf_get_single_capability(dev, + KVASER_USB_LEAF_CAP_CMD_LISTEN_MODE, + &status); + if (err) + return err; + if (status) + dev_info(&dev->intf->dev, + "KVASER_USB_LEAF_CAP_CMD_LISTEN_MODE failed %u\n", + status); + + err = kvaser_usb_leaf_get_single_capability(dev, + KVASER_USB_LEAF_CAP_CMD_ERR_REPORT, + &status); + if (err) + return err; + if (status) + dev_info(&dev->intf->dev, + "KVASER_USB_LEAF_CAP_CMD_ERR_REPORT failed %u\n", + status); + + return 0; +} + +static int kvaser_usb_leaf_get_capabilities(struct kvaser_usb *dev) +{ + int err = 0; + + if (dev->driver_info->family == KVASER_LEAF) + err = kvaser_usb_leaf_get_capabilities_leaf(dev); + + return err; +} + static void kvaser_usb_leaf_tx_acknowledge(const struct kvaser_usb *dev, const struct kvaser_cmd *cmd) { @@ -649,7 +897,7 @@ context = &priv->tx_contexts[tid % dev->max_tx_urbs]; /* Sometimes the state change doesn't come after a bus-off event */ - if (priv->can.restart_ms && priv->can.state >= CAN_STATE_BUS_OFF) { + if (priv->can.restart_ms && priv->can.state == CAN_STATE_BUS_OFF) { struct sk_buff *skb; struct can_frame *cf; @@ -702,6 +950,16 @@ return err; } +static void kvaser_usb_leaf_chip_state_req_work(struct work_struct *work) +{ + struct kvaser_usb_net_leaf_priv *leaf = + container_of(work, struct kvaser_usb_net_leaf_priv, + chip_state_req_work.work); + struct kvaser_usb_net_priv *priv = leaf->net; + + kvaser_usb_leaf_simple_cmd_async(priv, CMD_GET_CHIP_STATE); +} + static void kvaser_usb_leaf_rx_error_update_can_state(struct kvaser_usb_net_priv *priv, const struct kvaser_usb_err_summary *es, @@ -720,20 +978,16 @@ new_state = CAN_STATE_BUS_OFF; } else if (es->status & M16C_STATE_BUS_PASSIVE) { new_state = CAN_STATE_ERROR_PASSIVE; - } else if (es->status & M16C_STATE_BUS_ERROR) { + } else if ((es->status & M16C_STATE_BUS_ERROR) && + cur_state >= CAN_STATE_BUS_OFF) { /* Guard against spurious error events after a busoff */ - if (cur_state < CAN_STATE_BUS_OFF) { - if (es->txerr >= 128 || es->rxerr >= 128) - new_state = CAN_STATE_ERROR_PASSIVE; - else if (es->txerr >= 96 || es->rxerr >= 96) - new_state = CAN_STATE_ERROR_WARNING; - else if (cur_state > CAN_STATE_ERROR_ACTIVE) - new_state = CAN_STATE_ERROR_ACTIVE; - } - } - - if (!es->status) + } else if (es->txerr >= 128 || es->rxerr >= 128) { + new_state = CAN_STATE_ERROR_PASSIVE; + } else if (es->txerr >= 96 || es->rxerr >= 96) { + new_state = CAN_STATE_ERROR_WARNING; + } else { new_state = CAN_STATE_ERROR_ACTIVE; + } if (new_state != cur_state) { tx_state = (es->txerr >= es->rxerr) ? new_state : 0; @@ -743,7 +997,7 @@ } if (priv->can.restart_ms && - cur_state >= CAN_STATE_BUS_OFF && + cur_state == CAN_STATE_BUS_OFF && new_state < CAN_STATE_BUS_OFF) priv->can.can_stats.restarts++; @@ -777,6 +1031,7 @@ struct sk_buff *skb; struct net_device_stats *stats; struct kvaser_usb_net_priv *priv; + struct kvaser_usb_net_leaf_priv *leaf; enum can_state old_state, new_state; if (es->channel >= dev->nchannels) { @@ -786,8 +1041,13 @@ } priv = dev->nets[es->channel]; + leaf = priv->sub_priv; stats = &priv->netdev->stats; + /* Ignore e.g. state change to bus-off reported just after stopping */ + if (!netif_running(priv->netdev)) + return; + /* Update all of the CAN interface's state and error counters before * trying any memory allocation that can actually fail with -ENOMEM. * @@ -802,6 +1062,14 @@ kvaser_usb_leaf_rx_error_update_can_state(priv, es, &tmp_cf); new_state = priv->can.state; + /* If there are errors, request status updates periodically as we do + * not get automatic notifications of improved state. + */ + if (new_state < CAN_STATE_BUS_OFF && + (es->rxerr || es->txerr || new_state == CAN_STATE_ERROR_PASSIVE)) + schedule_delayed_work(&leaf->chip_state_req_work, + msecs_to_jiffies(500)); + skb = alloc_can_err_skb(priv->netdev, &cf); if (!skb) { stats->rx_dropped++; @@ -819,7 +1087,7 @@ } if (priv->can.restart_ms && - old_state >= CAN_STATE_BUS_OFF && + old_state == CAN_STATE_BUS_OFF && new_state < CAN_STATE_BUS_OFF) { cf->can_id |= CAN_ERR_RESTARTED; netif_carrier_on(priv->netdev); @@ -853,8 +1121,10 @@ break; } - cf->data[6] = es->txerr; - cf->data[7] = es->rxerr; + if (new_state != CAN_STATE_BUS_OFF) { + cf->data[6] = es->txerr; + cf->data[7] = es->rxerr; + } netif_rx(skb); } @@ -915,11 +1185,11 @@ case CMD_CAN_ERROR_EVENT: es.channel = 0; - es.status = cmd->u.usbcan.error_event.status_ch0; - es.txerr = cmd->u.usbcan.error_event.tx_errors_count_ch0; - es.rxerr = cmd->u.usbcan.error_event.rx_errors_count_ch0; + es.status = cmd->u.usbcan.can_error_event.status_ch0; + es.txerr = cmd->u.usbcan.can_error_event.tx_errors_count_ch0; + es.rxerr = cmd->u.usbcan.can_error_event.rx_errors_count_ch0; es.usbcan.other_ch_status = - cmd->u.usbcan.error_event.status_ch1; + cmd->u.usbcan.can_error_event.status_ch1; kvaser_usb_leaf_usbcan_conditionally_rx_error(dev, &es); /* The USBCAN firmware supports up to 2 channels. @@ -927,13 +1197,13 @@ */ if (dev->nchannels == MAX_USBCAN_NET_DEVICES) { es.channel = 1; - es.status = cmd->u.usbcan.error_event.status_ch1; + es.status = cmd->u.usbcan.can_error_event.status_ch1; es.txerr = - cmd->u.usbcan.error_event.tx_errors_count_ch1; + cmd->u.usbcan.can_error_event.tx_errors_count_ch1; es.rxerr = - cmd->u.usbcan.error_event.rx_errors_count_ch1; + cmd->u.usbcan.can_error_event.rx_errors_count_ch1; es.usbcan.other_ch_status = - cmd->u.usbcan.error_event.status_ch0; + cmd->u.usbcan.can_error_event.status_ch0; kvaser_usb_leaf_usbcan_conditionally_rx_error(dev, &es); } break; @@ -950,11 +1220,11 @@ switch (cmd->id) { case CMD_CAN_ERROR_EVENT: - es.channel = cmd->u.leaf.error_event.channel; - es.status = cmd->u.leaf.error_event.status; - es.txerr = cmd->u.leaf.error_event.tx_errors_count; - es.rxerr = cmd->u.leaf.error_event.rx_errors_count; - es.leaf.error_factor = cmd->u.leaf.error_event.error_factor; + es.channel = cmd->u.leaf.can_error_event.channel; + es.status = cmd->u.leaf.can_error_event.status; + es.txerr = cmd->u.leaf.can_error_event.tx_errors_count; + es.rxerr = cmd->u.leaf.can_error_event.rx_errors_count; + es.leaf.error_factor = cmd->u.leaf.can_error_event.error_factor; break; case CMD_LEAF_LOG_MESSAGE: es.channel = cmd->u.leaf.log_message.channel; @@ -1087,6 +1357,74 @@ netif_rx(skb); } +static void kvaser_usb_leaf_error_event_parameter(const struct kvaser_usb *dev, + const struct kvaser_cmd *cmd) +{ + u16 info1 = 0; + + switch (dev->driver_info->family) { + case KVASER_LEAF: + info1 = le16_to_cpu(cmd->u.leaf.error_event.info1); + break; + case KVASER_USBCAN: + info1 = le16_to_cpu(cmd->u.usbcan.error_event.info1); + break; + } + + /* info1 will contain the offending cmd_no */ + switch (info1) { + case CMD_SET_CTRL_MODE: + dev_warn(&dev->intf->dev, + "CMD_SET_CTRL_MODE error in parameter\n"); + break; + + case CMD_SET_BUS_PARAMS: + dev_warn(&dev->intf->dev, + "CMD_SET_BUS_PARAMS error in parameter\n"); + break; + + default: + dev_warn(&dev->intf->dev, + "Unhandled parameter error event cmd_no (%u)\n", + info1); + break; + } +} + +static void kvaser_usb_leaf_error_event(const struct kvaser_usb *dev, + const struct kvaser_cmd *cmd) +{ + u8 error_code = 0; + + switch (dev->driver_info->family) { + case KVASER_LEAF: + error_code = cmd->u.leaf.error_event.error_code; + break; + case KVASER_USBCAN: + error_code = cmd->u.usbcan.error_event.error_code; + break; + } + + switch (error_code) { + case KVASER_USB_LEAF_ERROR_EVENT_TX_QUEUE_FULL: + /* Received additional CAN message, when firmware TX queue is + * already full. Something is wrong with the driver. + * This should never happen! + */ + dev_err(&dev->intf->dev, + "Received error event TX_QUEUE_FULL\n"); + break; + case KVASER_USB_LEAF_ERROR_EVENT_PARAM: + kvaser_usb_leaf_error_event_parameter(dev, cmd); + break; + + default: + dev_warn(&dev->intf->dev, + "Unhandled error event (%d)\n", error_code); + break; + } +} + static void kvaser_usb_leaf_start_chip_reply(const struct kvaser_usb *dev, const struct kvaser_cmd *cmd) { @@ -1127,9 +1465,31 @@ complete(&priv->stop_comp); } +static void kvaser_usb_leaf_get_busparams_reply(const struct kvaser_usb *dev, + const struct kvaser_cmd *cmd) +{ + struct kvaser_usb_net_priv *priv; + u8 channel = cmd->u.busparams.channel; + + if (channel >= dev->nchannels) { + dev_err(&dev->intf->dev, + "Invalid channel number (%d)\n", channel); + return; + } + + priv = dev->nets[channel]; + memcpy(&priv->busparams_nominal, &cmd->u.busparams.busparams, + sizeof(priv->busparams_nominal)); + + complete(&priv->get_busparams_comp); +} + static void kvaser_usb_leaf_handle_command(const struct kvaser_usb *dev, const struct kvaser_cmd *cmd) { + if (kvaser_usb_leaf_verify_size(dev, cmd) < 0) + return; + switch (cmd->id) { case CMD_START_CHIP_REPLY: kvaser_usb_leaf_start_chip_reply(dev, cmd); @@ -1162,6 +1522,14 @@ kvaser_usb_leaf_tx_acknowledge(dev, cmd); break; + case CMD_ERROR_EVENT: + kvaser_usb_leaf_error_event(dev, cmd); + break; + + case CMD_GET_BUS_PARAMS_REPLY: + kvaser_usb_leaf_get_busparams_reply(dev, cmd); + break; + /* Ignored commands */ case CMD_USBCAN_CLOCK_OVERFLOW_EVENT: if (dev->driver_info->family != KVASER_USBCAN) @@ -1242,7 +1610,7 @@ { int err; - init_completion(&priv->start_comp); + reinit_completion(&priv->start_comp); err = kvaser_usb_leaf_send_simple_cmd(priv->dev, CMD_START_CHIP, priv->channel); @@ -1258,9 +1626,12 @@ static int kvaser_usb_leaf_stop_chip(struct kvaser_usb_net_priv *priv) { + struct kvaser_usb_net_leaf_priv *leaf = priv->sub_priv; int err; - init_completion(&priv->stop_comp); + reinit_completion(&priv->stop_comp); + + cancel_delayed_work(&leaf->chip_state_req_work); err = kvaser_usb_leaf_send_simple_cmd(priv->dev, CMD_STOP_CHIP, priv->channel); @@ -1308,10 +1679,35 @@ return 0; } -static int kvaser_usb_leaf_set_bittiming(struct net_device *netdev) +static int kvaser_usb_leaf_init_channel(struct kvaser_usb_net_priv *priv) +{ + struct kvaser_usb_net_leaf_priv *leaf; + + leaf = devm_kzalloc(&priv->dev->intf->dev, sizeof(*leaf), GFP_KERNEL); + if (!leaf) + return -ENOMEM; + + leaf->net = priv; + INIT_DELAYED_WORK(&leaf->chip_state_req_work, + kvaser_usb_leaf_chip_state_req_work); + + priv->sub_priv = leaf; + + return 0; +} + +static void kvaser_usb_leaf_remove_channel(struct kvaser_usb_net_priv *priv) +{ + struct kvaser_usb_net_leaf_priv *leaf = priv->sub_priv; + + if (leaf) + cancel_delayed_work_sync(&leaf->chip_state_req_work); +} + +static int kvaser_usb_leaf_set_bittiming(const struct net_device *netdev, + const struct kvaser_usb_busparams *busparams) { struct kvaser_usb_net_priv *priv = netdev_priv(netdev); - struct can_bittiming *bt = &priv->can.bittiming; struct kvaser_usb *dev = priv->dev; struct kvaser_cmd *cmd; int rc; @@ -1324,15 +1720,8 @@ cmd->len = CMD_HEADER_LEN + sizeof(struct kvaser_cmd_busparams); cmd->u.busparams.channel = priv->channel; cmd->u.busparams.tid = 0xff; - cmd->u.busparams.bitrate = cpu_to_le32(bt->bitrate); - cmd->u.busparams.sjw = bt->sjw; - cmd->u.busparams.tseg1 = bt->prop_seg + bt->phase_seg1; - cmd->u.busparams.tseg2 = bt->phase_seg2; - - if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES) - cmd->u.busparams.no_samp = 3; - else - cmd->u.busparams.no_samp = 1; + memcpy(&cmd->u.busparams.busparams, busparams, + sizeof(cmd->u.busparams.busparams)); rc = kvaser_usb_send_cmd(dev, cmd, cmd->len); @@ -1340,6 +1729,27 @@ return rc; } +static int kvaser_usb_leaf_get_busparams(struct kvaser_usb_net_priv *priv) +{ + int err; + + if (priv->dev->driver_info->family == KVASER_USBCAN) + return -EOPNOTSUPP; + + reinit_completion(&priv->get_busparams_comp); + + err = kvaser_usb_leaf_send_simple_cmd(priv->dev, CMD_GET_BUS_PARAMS, + priv->channel); + if (err) + return err; + + if (!wait_for_completion_timeout(&priv->get_busparams_comp, + msecs_to_jiffies(KVASER_USB_TIMEOUT))) + return -ETIMEDOUT; + + return 0; +} + static int kvaser_usb_leaf_set_mode(struct net_device *netdev, enum can_mode mode) { @@ -1348,9 +1758,13 @@ switch (mode) { case CAN_MODE_START: + kvaser_usb_unlink_tx_urbs(priv); + err = kvaser_usb_leaf_simple_cmd_async(priv, CMD_START_CHIP); if (err) return err; + + priv->can.state = CAN_STATE_ERROR_ACTIVE; break; default: return -EOPNOTSUPP; @@ -1397,14 +1811,18 @@ const struct kvaser_usb_dev_ops kvaser_usb_leaf_dev_ops = { .dev_set_mode = kvaser_usb_leaf_set_mode, .dev_set_bittiming = kvaser_usb_leaf_set_bittiming, + .dev_get_busparams = kvaser_usb_leaf_get_busparams, .dev_set_data_bittiming = NULL, + .dev_get_data_busparams = NULL, .dev_get_berr_counter = kvaser_usb_leaf_get_berr_counter, .dev_setup_endpoints = kvaser_usb_leaf_setup_endpoints, .dev_init_card = kvaser_usb_leaf_init_card, + .dev_init_channel = kvaser_usb_leaf_init_channel, + .dev_remove_channel = kvaser_usb_leaf_remove_channel, .dev_get_software_info = kvaser_usb_leaf_get_software_info, .dev_get_software_details = NULL, .dev_get_card_info = kvaser_usb_leaf_get_card_info, - .dev_get_capabilities = NULL, + .dev_get_capabilities = kvaser_usb_leaf_get_capabilities, .dev_set_opt_mode = kvaser_usb_leaf_set_opt_mode, .dev_start_chip = kvaser_usb_leaf_start_chip, .dev_stop_chip = kvaser_usb_leaf_stop_chip, --- linux-5.19.0.orig/drivers/net/can/usb/mcba_usb.c +++ linux-5.19.0/drivers/net/can/usb/mcba_usb.c @@ -46,6 +46,10 @@ #define MCBA_VER_REQ_USB 1 #define MCBA_VER_REQ_CAN 2 +/* Drive the CAN_RES signal LOW "0" to activate R24 and R25 */ +#define MCBA_VER_TERMINATION_ON 0 +#define MCBA_VER_TERMINATION_OFF 1 + #define MCBA_SIDL_EXID_MASK 0x8 #define MCBA_DLC_MASK 0xf #define MCBA_DLC_RTR_MASK 0x40 @@ -462,7 +466,7 @@ priv->usb_ka_first_pass = false; } - if (msg->termination_state) + if (msg->termination_state == MCBA_VER_TERMINATION_ON) priv->can.termination = MCBA_TERMINATION_ENABLED; else priv->can.termination = MCBA_TERMINATION_DISABLED; @@ -780,9 +784,9 @@ }; if (term == MCBA_TERMINATION_ENABLED) - usb_msg.termination = 1; + usb_msg.termination = MCBA_VER_TERMINATION_ON; else - usb_msg.termination = 0; + usb_msg.termination = MCBA_VER_TERMINATION_OFF; mcba_usb_xmit_cmd(priv, (struct mcba_usb_msg *)&usb_msg); --- linux-5.19.0.orig/drivers/net/can/usb/usb_8dev.c +++ linux-5.19.0/drivers/net/can/usb/usb_8dev.c @@ -438,9 +438,10 @@ if (rx_errors) stats->rx_errors++; - - cf->data[6] = txerr; - cf->data[7] = rxerr; + if (priv->can.state != CAN_STATE_BUS_OFF) { + cf->data[6] = txerr; + cf->data[7] = rxerr; + } priv->bec.txerr = txerr; priv->bec.rxerr = rxerr; --- linux-5.19.0.orig/drivers/net/dsa/dsa_loop.c +++ linux-5.19.0/drivers/net/dsa/dsa_loop.c @@ -378,6 +378,17 @@ #define NUM_FIXED_PHYS (DSA_LOOP_NUM_PORTS - 2) +static void dsa_loop_phydevs_unregister(void) +{ + unsigned int i; + + for (i = 0; i < NUM_FIXED_PHYS; i++) + if (!IS_ERR(phydevs[i])) { + fixed_phy_unregister(phydevs[i]); + phy_device_free(phydevs[i]); + } +} + static int __init dsa_loop_init(void) { struct fixed_phy_status status = { @@ -385,23 +396,23 @@ .speed = SPEED_100, .duplex = DUPLEX_FULL, }; - unsigned int i; + unsigned int i, ret; for (i = 0; i < NUM_FIXED_PHYS; i++) phydevs[i] = fixed_phy_register(PHY_POLL, &status, NULL); - return mdio_driver_register(&dsa_loop_drv); + ret = mdio_driver_register(&dsa_loop_drv); + if (ret) + dsa_loop_phydevs_unregister(); + + return ret; } module_init(dsa_loop_init); static void __exit dsa_loop_exit(void) { - unsigned int i; - mdio_driver_unregister(&dsa_loop_drv); - for (i = 0; i < NUM_FIXED_PHYS; i++) - if (!IS_ERR(phydevs[i])) - fixed_phy_unregister(phydevs[i]); + dsa_loop_phydevs_unregister(); } module_exit(dsa_loop_exit); --- linux-5.19.0.orig/drivers/net/dsa/hirschmann/hellcreek.c +++ linux-5.19.0/drivers/net/dsa/hirschmann/hellcreek.c @@ -1062,7 +1062,7 @@ .portmask = 0x03, /* Management ports */ .age = 0, .is_obt = 0, - .pass_blocked = 0, + .pass_blocked = 1, .is_static = 1, .reprio_tc = 6, /* TC: 6 as per IEEE 802.1AS */ .reprio_en = 1, --- linux-5.19.0.orig/drivers/net/dsa/lan9303-core.c +++ linux-5.19.0/drivers/net/dsa/lan9303-core.c @@ -959,7 +959,7 @@ { .offset = LAN9303_MAC_TX_BRDCST_CNT_0, .name = "TxBroad", }, { .offset = LAN9303_MAC_TX_PAUSE_CNT_0, .name = "TxPause", }, { .offset = LAN9303_MAC_TX_MULCST_CNT_0, .name = "TxMulti", }, - { .offset = LAN9303_MAC_RX_UNDSZE_CNT_0, .name = "TxUnderRun", }, + { .offset = LAN9303_MAC_RX_UNDSZE_CNT_0, .name = "RxShort", }, { .offset = LAN9303_MAC_TX_64_CNT_0, .name = "Tx64Byte", }, { .offset = LAN9303_MAC_TX_127_CNT_0, .name = "Tx128Byte", }, { .offset = LAN9303_MAC_TX_255_CNT_0, .name = "Tx256Byte", }, @@ -1003,9 +1003,11 @@ ret = lan9303_read_switch_port( chip, port, lan9303_mib[u].offset, ®); - if (ret) + if (ret) { dev_warn(chip->dev, "Reading status port %d reg %u failed\n", port, lan9303_mib[u].offset); + reg = 0; + } data[u] = reg; } } --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz8795.c +++ linux-5.19.0/drivers/net/dsa/microchip/ksz8795.c @@ -898,17 +898,6 @@ } } -static enum dsa_tag_protocol ksz8_get_tag_protocol(struct dsa_switch *ds, - int port, - enum dsa_tag_protocol mp) -{ - struct ksz_device *dev = ds->priv; - - /* ksz88x3 uses the same tag schema as KSZ9893 */ - return ksz_is_ksz88x3(dev) ? - DSA_TAG_PROTO_KSZ9893 : DSA_TAG_PROTO_KSZ8795; -} - static u32 ksz8_sw_get_phy_flags(struct dsa_switch *ds, int port) { /* Silicon Errata Sheet (DS80000830A): @@ -969,11 +958,9 @@ } } -static int ksz8_port_vlan_filtering(struct dsa_switch *ds, int port, bool flag, +static int ksz8_port_vlan_filtering(struct ksz_device *dev, int port, bool flag, struct netlink_ext_ack *extack) { - struct ksz_device *dev = ds->priv; - if (ksz_is_ksz88x3(dev)) return -ENOTSUPP; @@ -998,12 +985,11 @@ } } -static int ksz8_port_vlan_add(struct dsa_switch *ds, int port, +static int ksz8_port_vlan_add(struct ksz_device *dev, int port, const struct switchdev_obj_port_vlan *vlan, struct netlink_ext_ack *extack) { bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; - struct ksz_device *dev = ds->priv; struct ksz_port *p = &dev->ports[port]; u16 data, new_pvid = 0; u8 fid, member, valid; @@ -1071,10 +1057,9 @@ return 0; } -static int ksz8_port_vlan_del(struct dsa_switch *ds, int port, +static int ksz8_port_vlan_del(struct ksz_device *dev, int port, const struct switchdev_obj_port_vlan *vlan) { - struct ksz_device *dev = ds->priv; u16 data, pvid; u8 fid, member, valid; @@ -1104,12 +1089,10 @@ return 0; } -static int ksz8_port_mirror_add(struct dsa_switch *ds, int port, +static int ksz8_port_mirror_add(struct ksz_device *dev, int port, struct dsa_mall_mirror_tc_entry *mirror, bool ingress, struct netlink_ext_ack *extack) { - struct ksz_device *dev = ds->priv; - if (ingress) { ksz_port_cfg(dev, port, P_MIRROR_CTRL, PORT_MIRROR_RX, true); dev->mirror_rx |= BIT(port); @@ -1128,10 +1111,9 @@ return 0; } -static void ksz8_port_mirror_del(struct dsa_switch *ds, int port, +static void ksz8_port_mirror_del(struct ksz_device *dev, int port, struct dsa_mall_mirror_tc_entry *mirror) { - struct ksz_device *dev = ds->priv; u8 data; if (mirror->ingress) { @@ -1272,7 +1254,7 @@ continue; if (!ksz_is_ksz88x3(dev)) { ksz_pread8(dev, i, regs[P_REMOTE_STATUS], &remote); - if (remote & PORT_FIBER_MODE) + if (remote & KSZ8_PORT_FIBER_MODE) p->fiber = 1; } if (p->fiber) @@ -1371,13 +1353,9 @@ return ksz8_handle_global_errata(ds); } -static void ksz8_get_caps(struct dsa_switch *ds, int port, +static void ksz8_get_caps(struct ksz_device *dev, int port, struct phylink_config *config) { - struct ksz_device *dev = ds->priv; - - ksz_phylink_get_caps(ds, port, config); - config->mac_capabilities = MAC_10 | MAC_100; /* Silicon Errata Sheet (DS80000830A): @@ -1394,12 +1372,12 @@ } static const struct dsa_switch_ops ksz8_switch_ops = { - .get_tag_protocol = ksz8_get_tag_protocol, + .get_tag_protocol = ksz_get_tag_protocol, .get_phy_flags = ksz8_sw_get_phy_flags, .setup = ksz8_setup, .phy_read = ksz_phy_read16, .phy_write = ksz_phy_write16, - .phylink_get_caps = ksz8_get_caps, + .phylink_get_caps = ksz_phylink_get_caps, .phylink_mac_link_down = ksz_mac_link_down, .port_enable = ksz_enable_port, .get_strings = ksz_get_strings, @@ -1409,14 +1387,14 @@ .port_bridge_leave = ksz_port_bridge_leave, .port_stp_state_set = ksz8_port_stp_state_set, .port_fast_age = ksz_port_fast_age, - .port_vlan_filtering = ksz8_port_vlan_filtering, - .port_vlan_add = ksz8_port_vlan_add, - .port_vlan_del = ksz8_port_vlan_del, + .port_vlan_filtering = ksz_port_vlan_filtering, + .port_vlan_add = ksz_port_vlan_add, + .port_vlan_del = ksz_port_vlan_del, .port_fdb_dump = ksz_port_fdb_dump, .port_mdb_add = ksz_port_mdb_add, .port_mdb_del = ksz_port_mdb_del, - .port_mirror_add = ksz8_port_mirror_add, - .port_mirror_del = ksz8_port_mirror_del, + .port_mirror_add = ksz_port_mirror_add, + .port_mirror_del = ksz_port_mirror_del, }; static u32 ksz8_get_port_addr(int port, int offset) @@ -1424,51 +1402,6 @@ return PORT_CTRL_ADDR(port, offset); } -static int ksz8_switch_detect(struct ksz_device *dev) -{ - u8 id1, id2; - u16 id16; - int ret; - - /* read chip id */ - ret = ksz_read16(dev, REG_CHIP_ID0, &id16); - if (ret) - return ret; - - id1 = id16 >> 8; - id2 = id16 & SW_CHIP_ID_M; - - switch (id1) { - case KSZ87_FAMILY_ID: - if ((id2 != CHIP_ID_94 && id2 != CHIP_ID_95)) - return -ENODEV; - - if (id2 == CHIP_ID_95) { - u8 val; - - id2 = 0x95; - ksz_read8(dev, REG_PORT_STATUS_0, &val); - if (val & PORT_FIBER_MODE) - id2 = 0x65; - } else if (id2 == CHIP_ID_94) { - id2 = 0x94; - } - break; - case KSZ88_FAMILY_ID: - if (id2 != CHIP_ID_63) - return -ENODEV; - break; - default: - dev_err(dev->dev, "invalid family id: %d\n", id1); - return -ENODEV; - } - id16 &= ~0xff; - id16 |= id2; - dev->chip_id = id16; - - return 0; -} - static int ksz8_switch_init(struct ksz_device *dev) { struct ksz8 *ksz8 = dev->priv; @@ -1521,8 +1454,13 @@ .r_mib_pkt = ksz8_r_mib_pkt, .freeze_mib = ksz8_freeze_mib, .port_init_cnt = ksz8_port_init_cnt, + .vlan_filtering = ksz8_port_vlan_filtering, + .vlan_add = ksz8_port_vlan_add, + .vlan_del = ksz8_port_vlan_del, + .mirror_add = ksz8_port_mirror_add, + .mirror_del = ksz8_port_mirror_del, + .get_caps = ksz8_get_caps, .shutdown = ksz8_reset_switch, - .detect = ksz8_switch_detect, .init = ksz8_switch_init, .exit = ksz8_switch_exit, }; --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz8795_reg.h +++ linux-5.19.0/drivers/net/dsa/microchip/ksz8795_reg.h @@ -14,23 +14,10 @@ #define KS_PRIO_M 0x3 #define KS_PRIO_S 2 -#define REG_CHIP_ID0 0x00 - -#define KSZ87_FAMILY_ID 0x87 -#define KSZ88_FAMILY_ID 0x88 - -#define REG_CHIP_ID1 0x01 - -#define SW_CHIP_ID_M 0xF0 -#define SW_CHIP_ID_S 4 #define SW_REVISION_M 0x0E #define SW_REVISION_S 1 #define SW_START 0x01 -#define CHIP_ID_94 0x60 -#define CHIP_ID_95 0x90 -#define CHIP_ID_63 0x30 - #define KSZ8863_REG_SW_RESET 0x43 #define KSZ8863_GLOBAL_SOFTWARE_RESET BIT(4) @@ -217,8 +204,6 @@ #define REG_PORT_4_STATUS_0 0x48 /* For KSZ8765. */ -#define PORT_FIBER_MODE BIT(7) - #define PORT_REMOTE_ASYM_PAUSE BIT(5) #define PORT_REMOTE_SYM_PAUSE BIT(4) #define PORT_REMOTE_100BTX_FD BIT(3) @@ -322,7 +307,6 @@ #define REG_PORT_CTRL_5 0x05 -#define REG_PORT_STATUS_0 0x08 #define REG_PORT_STATUS_1 0x09 #define REG_PORT_LINK_MD_CTRL 0x0A #define REG_PORT_LINK_MD_RESULT 0x0B --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz9477.c +++ linux-5.19.0/drivers/net/dsa/microchip/ksz9477.c @@ -276,18 +276,6 @@ mutex_unlock(&mib->cnt_mutex); } -static enum dsa_tag_protocol ksz9477_get_tag_protocol(struct dsa_switch *ds, - int port, - enum dsa_tag_protocol mp) -{ - enum dsa_tag_protocol proto = DSA_TAG_PROTO_KSZ9477; - struct ksz_device *dev = ds->priv; - - if (dev->features & IS_9893) - proto = DSA_TAG_PROTO_KSZ9893; - return proto; -} - static int ksz9477_phy_read16(struct dsa_switch *ds, int addr, int reg) { struct ksz_device *dev = ds->priv; @@ -389,12 +377,10 @@ } } -static int ksz9477_port_vlan_filtering(struct dsa_switch *ds, int port, +static int ksz9477_port_vlan_filtering(struct ksz_device *dev, int port, bool flag, struct netlink_ext_ack *extack) { - struct ksz_device *dev = ds->priv; - if (flag) { ksz_port_cfg(dev, port, REG_PORT_LUE_CTRL, PORT_VLAN_LOOKUP_VID_0, true); @@ -408,11 +394,10 @@ return 0; } -static int ksz9477_port_vlan_add(struct dsa_switch *ds, int port, +static int ksz9477_port_vlan_add(struct ksz_device *dev, int port, const struct switchdev_obj_port_vlan *vlan, struct netlink_ext_ack *extack) { - struct ksz_device *dev = ds->priv; u32 vlan_table[3]; bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; int err; @@ -445,10 +430,9 @@ return 0; } -static int ksz9477_port_vlan_del(struct dsa_switch *ds, int port, +static int ksz9477_port_vlan_del(struct ksz_device *dev, int port, const struct switchdev_obj_port_vlan *vlan) { - struct ksz_device *dev = ds->priv; bool untagged = vlan->flags & BRIDGE_VLAN_INFO_UNTAGGED; u32 vlan_table[3]; u16 pvid; @@ -658,6 +642,9 @@ goto exit; } + if (!(ksz_data & ALU_VALID)) + continue; + /* read ALU table */ ksz9477_read_table(dev, alu_table); @@ -832,11 +819,10 @@ return ret; } -static int ksz9477_port_mirror_add(struct dsa_switch *ds, int port, +static int ksz9477_port_mirror_add(struct ksz_device *dev, int port, struct dsa_mall_mirror_tc_entry *mirror, bool ingress, struct netlink_ext_ack *extack) { - struct ksz_device *dev = ds->priv; u8 data; int p; @@ -872,10 +858,9 @@ return 0; } -static void ksz9477_port_mirror_del(struct dsa_switch *ds, int port, +static void ksz9477_port_mirror_del(struct ksz_device *dev, int port, struct dsa_mall_mirror_tc_entry *mirror) { - struct ksz_device *dev = ds->priv; bool in_use = false; u8 data; int p; @@ -1097,11 +1082,9 @@ ksz9477_port_mmd_write(dev, port, 0x1c, 0x20, 0xeeee); } -static void ksz9477_get_caps(struct dsa_switch *ds, int port, +static void ksz9477_get_caps(struct ksz_device *dev, int port, struct phylink_config *config) { - ksz_phylink_get_caps(ds, port, config); - config->mac_capabilities = MAC_10 | MAC_100 | MAC_1000FD | MAC_ASYM_PAUSE | MAC_SYM_PAUSE; } @@ -1326,12 +1309,12 @@ } static const struct dsa_switch_ops ksz9477_switch_ops = { - .get_tag_protocol = ksz9477_get_tag_protocol, + .get_tag_protocol = ksz_get_tag_protocol, .setup = ksz9477_setup, .phy_read = ksz9477_phy_read16, .phy_write = ksz9477_phy_write16, .phylink_mac_link_down = ksz_mac_link_down, - .phylink_get_caps = ksz9477_get_caps, + .phylink_get_caps = ksz_phylink_get_caps, .port_enable = ksz_enable_port, .get_strings = ksz_get_strings, .get_ethtool_stats = ksz_get_ethtool_stats, @@ -1340,16 +1323,16 @@ .port_bridge_leave = ksz_port_bridge_leave, .port_stp_state_set = ksz9477_port_stp_state_set, .port_fast_age = ksz_port_fast_age, - .port_vlan_filtering = ksz9477_port_vlan_filtering, - .port_vlan_add = ksz9477_port_vlan_add, - .port_vlan_del = ksz9477_port_vlan_del, + .port_vlan_filtering = ksz_port_vlan_filtering, + .port_vlan_add = ksz_port_vlan_add, + .port_vlan_del = ksz_port_vlan_del, .port_fdb_dump = ksz9477_port_fdb_dump, .port_fdb_add = ksz9477_port_fdb_add, .port_fdb_del = ksz9477_port_fdb_del, .port_mdb_add = ksz9477_port_mdb_add, .port_mdb_del = ksz9477_port_mdb_del, - .port_mirror_add = ksz9477_port_mirror_add, - .port_mirror_del = ksz9477_port_mirror_del, + .port_mirror_add = ksz_port_mirror_add, + .port_mirror_del = ksz_port_mirror_del, .get_stats64 = ksz_get_stats64, .port_change_mtu = ksz9477_change_mtu, .port_max_mtu = ksz9477_max_mtu, @@ -1360,14 +1343,15 @@ return PORT_CTRL_ADDR(port, offset); } -static int ksz9477_switch_detect(struct ksz_device *dev) +static int ksz9477_switch_init(struct ksz_device *dev) { u8 data8; - u8 id_hi; - u8 id_lo; - u32 id32; int ret; + dev->ds->ops = &ksz9477_switch_ops; + + dev->port_mask = (1 << dev->info->port_cnt) - 1; + /* turn off SPI DO Edge select */ ret = ksz_read8(dev, REG_SW_GLOBAL_SERIAL_CTRL_0, &data8); if (ret) @@ -1378,10 +1362,6 @@ if (ret) return ret; - /* read chip id */ - ret = ksz_read32(dev, REG_CHIP_ID0__1, &id32); - if (ret) - return ret; ret = ksz_read8(dev, REG_GLOBAL_OPTIONS, &data8); if (ret) return ret; @@ -1392,12 +1372,7 @@ /* Default capability is gigabit capable. */ dev->features = GBIT_SUPPORT; - dev_dbg(dev->dev, "Switch detect: ID=%08x%02x\n", id32, data8); - id_hi = (u8)(id32 >> 16); - id_lo = (u8)(id32 >> 8); - if ((id_lo & 0xf) == 3) { - /* Chip is from KSZ9893 design. */ - dev_info(dev->dev, "Found KSZ9893\n"); + if (dev->chip_id == KSZ9893_CHIP_ID) { dev->features |= IS_9893; /* Chip does not support gigabit. */ @@ -1405,7 +1380,6 @@ dev->features &= ~GBIT_SUPPORT; dev->phy_port_cnt = 2; } else { - dev_info(dev->dev, "Found KSZ9477 or compatible\n"); /* Chip uses new XMII register definitions. */ dev->features |= NEW_XMII; @@ -1413,21 +1387,6 @@ if (!(data8 & SW_GIGABIT_ABLE)) dev->features &= ~GBIT_SUPPORT; } - - /* Change chip id to known ones so it can be matched against them. */ - id32 = (id_hi << 16) | (id_lo << 8); - - dev->chip_id = id32; - - return 0; -} - -static int ksz9477_switch_init(struct ksz_device *dev) -{ - dev->ds->ops = &ksz9477_switch_ops; - - dev->port_mask = (1 << dev->info->port_cnt) - 1; - return 0; } @@ -1446,8 +1405,13 @@ .r_mib_stat64 = ksz_r_mib_stats64, .freeze_mib = ksz9477_freeze_mib, .port_init_cnt = ksz9477_port_init_cnt, + .vlan_filtering = ksz9477_port_vlan_filtering, + .vlan_add = ksz9477_port_vlan_add, + .vlan_del = ksz9477_port_vlan_del, + .mirror_add = ksz9477_port_mirror_add, + .mirror_del = ksz9477_port_mirror_del, + .get_caps = ksz9477_get_caps, .shutdown = ksz9477_reset_switch, - .detect = ksz9477_switch_detect, .init = ksz9477_switch_init, .exit = ksz9477_switch_exit, }; --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz9477_reg.h +++ linux-5.19.0/drivers/net/dsa/microchip/ksz9477_reg.h @@ -25,7 +25,6 @@ #define REG_CHIP_ID2__1 0x0002 -#define CHIP_ID_63 0x63 #define CHIP_ID_66 0x66 #define CHIP_ID_67 0x67 #define CHIP_ID_77 0x77 --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz_common.c +++ linux-5.19.0/drivers/net/dsa/microchip/ksz_common.c @@ -453,9 +453,18 @@ if (dev->info->supports_rgmii[port]) phy_interface_set_rgmii(config->supported_interfaces); - if (dev->info->internal_phy[port]) + if (dev->info->internal_phy[port]) { __set_bit(PHY_INTERFACE_MODE_INTERNAL, config->supported_interfaces); + /* Compatibility for phylib's default interface type when the + * phy-mode property is absent + */ + __set_bit(PHY_INTERFACE_MODE_GMII, + config->supported_interfaces); + } + + if (dev->dev_ops->get_caps) + dev->dev_ops->get_caps(dev, port, config); } EXPORT_SYMBOL_GPL(ksz_phylink_get_caps); @@ -930,6 +939,156 @@ } EXPORT_SYMBOL_GPL(ksz_port_stp_state_set); +enum dsa_tag_protocol ksz_get_tag_protocol(struct dsa_switch *ds, + int port, enum dsa_tag_protocol mp) +{ + struct ksz_device *dev = ds->priv; + enum dsa_tag_protocol proto = DSA_TAG_PROTO_NONE; + + if (dev->chip_id == KSZ8795_CHIP_ID || + dev->chip_id == KSZ8794_CHIP_ID || + dev->chip_id == KSZ8765_CHIP_ID) + proto = DSA_TAG_PROTO_KSZ8795; + + if (dev->chip_id == KSZ8830_CHIP_ID || + dev->chip_id == KSZ9893_CHIP_ID) + proto = DSA_TAG_PROTO_KSZ9893; + + if (dev->chip_id == KSZ9477_CHIP_ID || + dev->chip_id == KSZ9897_CHIP_ID || + dev->chip_id == KSZ9567_CHIP_ID) + proto = DSA_TAG_PROTO_KSZ9477; + + return proto; +} +EXPORT_SYMBOL_GPL(ksz_get_tag_protocol); + +int ksz_port_vlan_filtering(struct dsa_switch *ds, int port, + bool flag, struct netlink_ext_ack *extack) +{ + struct ksz_device *dev = ds->priv; + + if (!dev->dev_ops->vlan_filtering) + return -EOPNOTSUPP; + + return dev->dev_ops->vlan_filtering(dev, port, flag, extack); +} +EXPORT_SYMBOL_GPL(ksz_port_vlan_filtering); + +int ksz_port_vlan_add(struct dsa_switch *ds, int port, + const struct switchdev_obj_port_vlan *vlan, + struct netlink_ext_ack *extack) +{ + struct ksz_device *dev = ds->priv; + + if (!dev->dev_ops->vlan_add) + return -EOPNOTSUPP; + + return dev->dev_ops->vlan_add(dev, port, vlan, extack); +} +EXPORT_SYMBOL_GPL(ksz_port_vlan_add); + +int ksz_port_vlan_del(struct dsa_switch *ds, int port, + const struct switchdev_obj_port_vlan *vlan) +{ + struct ksz_device *dev = ds->priv; + + if (!dev->dev_ops->vlan_del) + return -EOPNOTSUPP; + + return dev->dev_ops->vlan_del(dev, port, vlan); +} +EXPORT_SYMBOL_GPL(ksz_port_vlan_del); + +int ksz_port_mirror_add(struct dsa_switch *ds, int port, + struct dsa_mall_mirror_tc_entry *mirror, + bool ingress, struct netlink_ext_ack *extack) +{ + struct ksz_device *dev = ds->priv; + + if (!dev->dev_ops->mirror_add) + return -EOPNOTSUPP; + + return dev->dev_ops->mirror_add(dev, port, mirror, ingress, extack); +} +EXPORT_SYMBOL_GPL(ksz_port_mirror_add); + +void ksz_port_mirror_del(struct dsa_switch *ds, int port, + struct dsa_mall_mirror_tc_entry *mirror) +{ + struct ksz_device *dev = ds->priv; + + if (dev->dev_ops->mirror_del) + dev->dev_ops->mirror_del(dev, port, mirror); +} +EXPORT_SYMBOL_GPL(ksz_port_mirror_del); + +static int ksz_switch_detect(struct ksz_device *dev) +{ + u8 id1, id2; + u16 id16; + u32 id32; + int ret; + + /* read chip id */ + ret = ksz_read16(dev, REG_CHIP_ID0, &id16); + if (ret) + return ret; + + id1 = FIELD_GET(SW_FAMILY_ID_M, id16); + id2 = FIELD_GET(SW_CHIP_ID_M, id16); + + switch (id1) { + case KSZ87_FAMILY_ID: + if (id2 == KSZ87_CHIP_ID_95) { + u8 val; + + dev->chip_id = KSZ8795_CHIP_ID; + + ksz_read8(dev, KSZ8_PORT_STATUS_0, &val); + if (val & KSZ8_PORT_FIBER_MODE) + dev->chip_id = KSZ8765_CHIP_ID; + } else if (id2 == KSZ87_CHIP_ID_94) { + dev->chip_id = KSZ8794_CHIP_ID; + } else { + return -ENODEV; + } + break; + case KSZ88_FAMILY_ID: + if (id2 == KSZ88_CHIP_ID_63) + dev->chip_id = KSZ8830_CHIP_ID; + else + return -ENODEV; + break; + default: + ret = ksz_read32(dev, REG_CHIP_ID0, &id32); + if (ret) + return ret; + + dev->chip_rev = FIELD_GET(SW_REV_ID_M, id32); + id32 &= ~0xFF; + + switch (id32) { + case KSZ9477_CHIP_ID: + case KSZ9897_CHIP_ID: + case KSZ9893_CHIP_ID: + case KSZ9567_CHIP_ID: + case LAN9370_CHIP_ID: + case LAN9371_CHIP_ID: + case LAN9372_CHIP_ID: + case LAN9373_CHIP_ID: + case LAN9374_CHIP_ID: + dev->chip_id = id32; + break; + default: + dev_err(dev->dev, + "unsupported switch detected %x)\n", id32); + return -ENODEV; + } + } + return 0; +} + struct ksz_device *ksz_switch_alloc(struct device *base, void *priv) { struct dsa_switch *ds; @@ -986,10 +1145,9 @@ mutex_init(&dev->alu_mutex); mutex_init(&dev->vlan_mutex); - dev->dev_ops = ops; - - if (dev->dev_ops->detect(dev)) - return -EINVAL; + ret = ksz_switch_detect(dev); + if (ret) + return ret; info = ksz_lookup_info(dev->chip_id); if (!info) @@ -998,10 +1156,15 @@ /* Update the compatible info with the probed one */ dev->info = info; + dev_info(dev->dev, "found switch: %s, rev %i\n", + dev->info->dev_name, dev->chip_rev); + ret = ksz_check_device_id(dev); if (ret) return ret; + dev->dev_ops = ops; + ret = dev->dev_ops->init(dev); if (ret) return ret; --- linux-5.19.0.orig/drivers/net/dsa/microchip/ksz_common.h +++ linux-5.19.0/drivers/net/dsa/microchip/ksz_common.h @@ -90,6 +90,7 @@ /* chip specific data */ u32 chip_id; + u8 chip_rev; int cpu_port; /* port connected to CPU */ int phy_port_cnt; phy_interface_t compat_interface; @@ -179,10 +180,23 @@ void (*r_mib_pkt)(struct ksz_device *dev, int port, u16 addr, u64 *dropped, u64 *cnt); void (*r_mib_stat64)(struct ksz_device *dev, int port); + int (*vlan_filtering)(struct ksz_device *dev, int port, + bool flag, struct netlink_ext_ack *extack); + int (*vlan_add)(struct ksz_device *dev, int port, + const struct switchdev_obj_port_vlan *vlan, + struct netlink_ext_ack *extack); + int (*vlan_del)(struct ksz_device *dev, int port, + const struct switchdev_obj_port_vlan *vlan); + int (*mirror_add)(struct ksz_device *dev, int port, + struct dsa_mall_mirror_tc_entry *mirror, + bool ingress, struct netlink_ext_ack *extack); + void (*mirror_del)(struct ksz_device *dev, int port, + struct dsa_mall_mirror_tc_entry *mirror); + void (*get_caps)(struct ksz_device *dev, int port, + struct phylink_config *config); void (*freeze_mib)(struct ksz_device *dev, int port, bool freeze); void (*port_init_cnt)(struct ksz_device *dev, int port); int (*shutdown)(struct ksz_device *dev); - int (*detect)(struct ksz_device *dev); int (*init)(struct ksz_device *dev); void (*exit)(struct ksz_device *dev); }; @@ -231,6 +245,20 @@ int ksz_enable_port(struct dsa_switch *ds, int port, struct phy_device *phy); void ksz_get_strings(struct dsa_switch *ds, int port, u32 stringset, uint8_t *buf); +enum dsa_tag_protocol ksz_get_tag_protocol(struct dsa_switch *ds, + int port, enum dsa_tag_protocol mp); +int ksz_port_vlan_filtering(struct dsa_switch *ds, int port, + bool flag, struct netlink_ext_ack *extack); +int ksz_port_vlan_add(struct dsa_switch *ds, int port, + const struct switchdev_obj_port_vlan *vlan, + struct netlink_ext_ack *extack); +int ksz_port_vlan_del(struct dsa_switch *ds, int port, + const struct switchdev_obj_port_vlan *vlan); +int ksz_port_mirror_add(struct dsa_switch *ds, int port, + struct dsa_mall_mirror_tc_entry *mirror, + bool ingress, struct netlink_ext_ack *extack); +void ksz_port_mirror_del(struct dsa_switch *ds, int port, + struct dsa_mall_mirror_tc_entry *mirror); /* Common register access functions */ @@ -353,6 +381,23 @@ #define PORT_RX_ENABLE BIT(1) #define PORT_LEARN_DISABLE BIT(0) +/* Switch ID Defines */ +#define REG_CHIP_ID0 0x00 + +#define SW_FAMILY_ID_M GENMASK(15, 8) +#define KSZ87_FAMILY_ID 0x87 +#define KSZ88_FAMILY_ID 0x88 + +#define KSZ8_PORT_STATUS_0 0x08 +#define KSZ8_PORT_FIBER_MODE BIT(7) + +#define SW_CHIP_ID_M GENMASK(7, 4) +#define KSZ87_CHIP_ID_94 0x6 +#define KSZ87_CHIP_ID_95 0x9 +#define KSZ88_CHIP_ID_63 0x3 + +#define SW_REV_ID_M GENMASK(7, 4) + /* Regmap tables generation */ #define KSZ_SPI_OP_RD 3 #define KSZ_SPI_OP_WR 2 --- linux-5.19.0.orig/drivers/net/dsa/mt7530.c +++ linux-5.19.0/drivers/net/dsa/mt7530.c @@ -506,14 +506,19 @@ static int mt7531_pad_setup(struct dsa_switch *ds, phy_interface_t interface) { - struct mt7530_priv *priv = ds->priv; + return 0; +} + +static void +mt7531_pll_setup(struct mt7530_priv *priv) +{ u32 top_sig; u32 hwstrap; u32 xtal; u32 val; if (mt7531_dual_sgmii_supported(priv)) - return 0; + return; val = mt7530_read(priv, MT7531_CREV); top_sig = mt7530_read(priv, MT7531_TOP_SIG_SR); @@ -592,8 +597,6 @@ val |= EN_COREPLL; mt7530_write(priv, MT7531_PLLGP_EN, val); usleep_range(25, 35); - - return 0; } static void @@ -2310,6 +2313,8 @@ SYS_CTRL_PHY_RST | SYS_CTRL_SW_RST | SYS_CTRL_REG_RST); + mt7531_pll_setup(priv); + if (mt7531_dual_sgmii_supported(priv)) { priv->p5_intf_sel = P5_INTF_SEL_GMAC5_SGMII; @@ -2863,8 +2868,6 @@ case 6: interface = PHY_INTERFACE_MODE_2500BASEX; - mt7531_pad_setup(ds, interface); - priv->p6_interface = interface; break; default: --- linux-5.19.0.orig/drivers/net/dsa/mv88e6060.c +++ linux-5.19.0/drivers/net/dsa/mv88e6060.c @@ -118,6 +118,9 @@ int addr = REG_PORT(p); int ret; + if (dsa_is_unused_port(priv->ds, p)) + return 0; + /* Do not force flow control, disable Ingress and Egress * Header tagging, disable VLAN tunneling, and set the port * state to Forwarding. Additionally, if this is the CPU --- linux-5.19.0.orig/drivers/net/dsa/mv88e6xxx/chip.c +++ linux-5.19.0/drivers/net/dsa/mv88e6xxx/chip.c @@ -828,10 +828,13 @@ chip->info->ops->phylink_get_caps(chip, port, config); - /* Internal ports need GMII for PHYLIB */ - if (mv88e6xxx_phy_is_internal(ds, port)) + if (mv88e6xxx_phy_is_internal(ds, port)) { + __set_bit(PHY_INTERFACE_MODE_INTERNAL, + config->supported_interfaces); + /* Internal ports with no phy-mode need GMII for PHYLIB */ __set_bit(PHY_INTERFACE_MODE_GMII, config->supported_interfaces); + } } static void mv88e6xxx_mac_config(struct dsa_switch *ds, int port, --- linux-5.19.0.orig/drivers/net/dsa/ocelot/Kconfig +++ linux-5.19.0/drivers/net/dsa/ocelot/Kconfig @@ -6,6 +6,7 @@ depends on NET_VENDOR_FREESCALE depends on HAS_IOMEM depends on PTP_1588_CLOCK_OPTIONAL + depends on NET_SCH_TAPRIO || NET_SCH_TAPRIO=n select MSCC_OCELOT_SWITCH_LIB select NET_DSA_TAG_OCELOT_8021Q select NET_DSA_TAG_OCELOT --- linux-5.19.0.orig/drivers/net/dsa/ocelot/felix.c +++ linux-5.19.0/drivers/net/dsa/ocelot/felix.c @@ -610,6 +610,9 @@ old_proto_ops = felix->tag_proto_ops; + if (proto_ops == old_proto_ops) + return 0; + err = proto_ops->setup(ds); if (err) goto setup_failed; @@ -1553,9 +1556,18 @@ static int felix_change_mtu(struct dsa_switch *ds, int port, int new_mtu) { struct ocelot *ocelot = ds->priv; + struct ocelot_port *ocelot_port = ocelot->ports[port]; + struct felix *felix = ocelot_to_felix(ocelot); ocelot_port_set_maxlen(ocelot, port, new_mtu); + mutex_lock(&ocelot->tas_lock); + + if (ocelot_port->taprio && felix->info->tas_guard_bands_update) + felix->info->tas_guard_bands_update(ocelot, port); + + mutex_unlock(&ocelot->tas_lock); + return 0; } --- linux-5.19.0.orig/drivers/net/dsa/ocelot/felix.h +++ linux-5.19.0/drivers/net/dsa/ocelot/felix.h @@ -53,6 +53,7 @@ struct phylink_link_state *state); int (*port_setup_tc)(struct dsa_switch *ds, int port, enum tc_setup_type type, void *type_data); + void (*tas_guard_bands_update)(struct ocelot *ocelot, int port); void (*port_sched_speed_set)(struct ocelot *ocelot, int port, u32 speed); struct regmap *(*init_regmap)(struct ocelot *ocelot, --- linux-5.19.0.orig/drivers/net/dsa/ocelot/felix_vsc9959.c +++ linux-5.19.0/drivers/net/dsa/ocelot/felix_vsc9959.c @@ -16,11 +16,13 @@ #include #include #include +#include #include "felix.h" #define VSC9959_NUM_PORTS 6 #define VSC9959_TAS_GCL_ENTRY_MAX 63 +#define VSC9959_TAS_MIN_GATE_LEN_NS 33 #define VSC9959_VCAP_POLICER_BASE 63 #define VSC9959_VCAP_POLICER_MAX 383 #define VSC9959_SWITCH_PCI_BAR 4 @@ -280,19 +282,23 @@ REG(SYS_COUNT_RX_64, 0x000024), REG(SYS_COUNT_RX_65_127, 0x000028), REG(SYS_COUNT_RX_128_255, 0x00002c), - REG(SYS_COUNT_RX_256_1023, 0x000030), - REG(SYS_COUNT_RX_1024_1526, 0x000034), - REG(SYS_COUNT_RX_1527_MAX, 0x000038), - REG(SYS_COUNT_RX_LONGS, 0x000044), + REG(SYS_COUNT_RX_256_511, 0x000030), + REG(SYS_COUNT_RX_512_1023, 0x000034), + REG(SYS_COUNT_RX_1024_1526, 0x000038), + REG(SYS_COUNT_RX_1527_MAX, 0x00003c), + REG(SYS_COUNT_RX_PAUSE, 0x000040), + REG(SYS_COUNT_RX_CONTROL, 0x000044), + REG(SYS_COUNT_RX_LONGS, 0x000048), REG(SYS_COUNT_TX_OCTETS, 0x000200), REG(SYS_COUNT_TX_COLLISION, 0x000210), REG(SYS_COUNT_TX_DROPS, 0x000214), REG(SYS_COUNT_TX_64, 0x00021c), REG(SYS_COUNT_TX_65_127, 0x000220), - REG(SYS_COUNT_TX_128_511, 0x000224), - REG(SYS_COUNT_TX_512_1023, 0x000228), - REG(SYS_COUNT_TX_1024_1526, 0x00022c), - REG(SYS_COUNT_TX_1527_MAX, 0x000230), + REG(SYS_COUNT_TX_128_255, 0x000224), + REG(SYS_COUNT_TX_256_511, 0x000228), + REG(SYS_COUNT_TX_512_1023, 0x00022c), + REG(SYS_COUNT_TX_1024_1526, 0x000230), + REG(SYS_COUNT_TX_1527_MAX, 0x000234), REG(SYS_COUNT_TX_AGING, 0x000278), REG(SYS_RESET_CFG, 0x000e00), REG(SYS_SR_ETYPE_CFG, 0x000e04), @@ -546,100 +552,379 @@ [SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 7, 4), }; -static const struct ocelot_stat_layout vsc9959_stats_layout[] = { - { .offset = 0x00, .name = "rx_octets", }, - { .offset = 0x01, .name = "rx_unicast", }, - { .offset = 0x02, .name = "rx_multicast", }, - { .offset = 0x03, .name = "rx_broadcast", }, - { .offset = 0x04, .name = "rx_shorts", }, - { .offset = 0x05, .name = "rx_fragments", }, - { .offset = 0x06, .name = "rx_jabbers", }, - { .offset = 0x07, .name = "rx_crc_align_errs", }, - { .offset = 0x08, .name = "rx_sym_errs", }, - { .offset = 0x09, .name = "rx_frames_below_65_octets", }, - { .offset = 0x0A, .name = "rx_frames_65_to_127_octets", }, - { .offset = 0x0B, .name = "rx_frames_128_to_255_octets", }, - { .offset = 0x0C, .name = "rx_frames_256_to_511_octets", }, - { .offset = 0x0D, .name = "rx_frames_512_to_1023_octets", }, - { .offset = 0x0E, .name = "rx_frames_1024_to_1526_octets", }, - { .offset = 0x0F, .name = "rx_frames_over_1526_octets", }, - { .offset = 0x10, .name = "rx_pause", }, - { .offset = 0x11, .name = "rx_control", }, - { .offset = 0x12, .name = "rx_longs", }, - { .offset = 0x13, .name = "rx_classified_drops", }, - { .offset = 0x14, .name = "rx_red_prio_0", }, - { .offset = 0x15, .name = "rx_red_prio_1", }, - { .offset = 0x16, .name = "rx_red_prio_2", }, - { .offset = 0x17, .name = "rx_red_prio_3", }, - { .offset = 0x18, .name = "rx_red_prio_4", }, - { .offset = 0x19, .name = "rx_red_prio_5", }, - { .offset = 0x1A, .name = "rx_red_prio_6", }, - { .offset = 0x1B, .name = "rx_red_prio_7", }, - { .offset = 0x1C, .name = "rx_yellow_prio_0", }, - { .offset = 0x1D, .name = "rx_yellow_prio_1", }, - { .offset = 0x1E, .name = "rx_yellow_prio_2", }, - { .offset = 0x1F, .name = "rx_yellow_prio_3", }, - { .offset = 0x20, .name = "rx_yellow_prio_4", }, - { .offset = 0x21, .name = "rx_yellow_prio_5", }, - { .offset = 0x22, .name = "rx_yellow_prio_6", }, - { .offset = 0x23, .name = "rx_yellow_prio_7", }, - { .offset = 0x24, .name = "rx_green_prio_0", }, - { .offset = 0x25, .name = "rx_green_prio_1", }, - { .offset = 0x26, .name = "rx_green_prio_2", }, - { .offset = 0x27, .name = "rx_green_prio_3", }, - { .offset = 0x28, .name = "rx_green_prio_4", }, - { .offset = 0x29, .name = "rx_green_prio_5", }, - { .offset = 0x2A, .name = "rx_green_prio_6", }, - { .offset = 0x2B, .name = "rx_green_prio_7", }, - { .offset = 0x80, .name = "tx_octets", }, - { .offset = 0x81, .name = "tx_unicast", }, - { .offset = 0x82, .name = "tx_multicast", }, - { .offset = 0x83, .name = "tx_broadcast", }, - { .offset = 0x84, .name = "tx_collision", }, - { .offset = 0x85, .name = "tx_drops", }, - { .offset = 0x86, .name = "tx_pause", }, - { .offset = 0x87, .name = "tx_frames_below_65_octets", }, - { .offset = 0x88, .name = "tx_frames_65_to_127_octets", }, - { .offset = 0x89, .name = "tx_frames_128_255_octets", }, - { .offset = 0x8B, .name = "tx_frames_256_511_octets", }, - { .offset = 0x8C, .name = "tx_frames_1024_1526_octets", }, - { .offset = 0x8D, .name = "tx_frames_over_1526_octets", }, - { .offset = 0x8E, .name = "tx_yellow_prio_0", }, - { .offset = 0x8F, .name = "tx_yellow_prio_1", }, - { .offset = 0x90, .name = "tx_yellow_prio_2", }, - { .offset = 0x91, .name = "tx_yellow_prio_3", }, - { .offset = 0x92, .name = "tx_yellow_prio_4", }, - { .offset = 0x93, .name = "tx_yellow_prio_5", }, - { .offset = 0x94, .name = "tx_yellow_prio_6", }, - { .offset = 0x95, .name = "tx_yellow_prio_7", }, - { .offset = 0x96, .name = "tx_green_prio_0", }, - { .offset = 0x97, .name = "tx_green_prio_1", }, - { .offset = 0x98, .name = "tx_green_prio_2", }, - { .offset = 0x99, .name = "tx_green_prio_3", }, - { .offset = 0x9A, .name = "tx_green_prio_4", }, - { .offset = 0x9B, .name = "tx_green_prio_5", }, - { .offset = 0x9C, .name = "tx_green_prio_6", }, - { .offset = 0x9D, .name = "tx_green_prio_7", }, - { .offset = 0x9E, .name = "tx_aged", }, - { .offset = 0x100, .name = "drop_local", }, - { .offset = 0x101, .name = "drop_tail", }, - { .offset = 0x102, .name = "drop_yellow_prio_0", }, - { .offset = 0x103, .name = "drop_yellow_prio_1", }, - { .offset = 0x104, .name = "drop_yellow_prio_2", }, - { .offset = 0x105, .name = "drop_yellow_prio_3", }, - { .offset = 0x106, .name = "drop_yellow_prio_4", }, - { .offset = 0x107, .name = "drop_yellow_prio_5", }, - { .offset = 0x108, .name = "drop_yellow_prio_6", }, - { .offset = 0x109, .name = "drop_yellow_prio_7", }, - { .offset = 0x10A, .name = "drop_green_prio_0", }, - { .offset = 0x10B, .name = "drop_green_prio_1", }, - { .offset = 0x10C, .name = "drop_green_prio_2", }, - { .offset = 0x10D, .name = "drop_green_prio_3", }, - { .offset = 0x10E, .name = "drop_green_prio_4", }, - { .offset = 0x10F, .name = "drop_green_prio_5", }, - { .offset = 0x110, .name = "drop_green_prio_6", }, - { .offset = 0x111, .name = "drop_green_prio_7", }, - OCELOT_STAT_END +static const struct ocelot_stat_layout vsc9959_stats_layout[OCELOT_NUM_STATS] = { + [OCELOT_STAT_RX_OCTETS] = { + .name = "rx_octets", + .offset = 0x00, + }, + [OCELOT_STAT_RX_UNICAST] = { + .name = "rx_unicast", + .offset = 0x01, + }, + [OCELOT_STAT_RX_MULTICAST] = { + .name = "rx_multicast", + .offset = 0x02, + }, + [OCELOT_STAT_RX_BROADCAST] = { + .name = "rx_broadcast", + .offset = 0x03, + }, + [OCELOT_STAT_RX_SHORTS] = { + .name = "rx_shorts", + .offset = 0x04, + }, + [OCELOT_STAT_RX_FRAGMENTS] = { + .name = "rx_fragments", + .offset = 0x05, + }, + [OCELOT_STAT_RX_JABBERS] = { + .name = "rx_jabbers", + .offset = 0x06, + }, + [OCELOT_STAT_RX_CRC_ALIGN_ERRS] = { + .name = "rx_crc_align_errs", + .offset = 0x07, + }, + [OCELOT_STAT_RX_SYM_ERRS] = { + .name = "rx_sym_errs", + .offset = 0x08, + }, + [OCELOT_STAT_RX_64] = { + .name = "rx_frames_below_65_octets", + .offset = 0x09, + }, + [OCELOT_STAT_RX_65_127] = { + .name = "rx_frames_65_to_127_octets", + .offset = 0x0A, + }, + [OCELOT_STAT_RX_128_255] = { + .name = "rx_frames_128_to_255_octets", + .offset = 0x0B, + }, + [OCELOT_STAT_RX_256_511] = { + .name = "rx_frames_256_to_511_octets", + .offset = 0x0C, + }, + [OCELOT_STAT_RX_512_1023] = { + .name = "rx_frames_512_to_1023_octets", + .offset = 0x0D, + }, + [OCELOT_STAT_RX_1024_1526] = { + .name = "rx_frames_1024_to_1526_octets", + .offset = 0x0E, + }, + [OCELOT_STAT_RX_1527_MAX] = { + .name = "rx_frames_over_1526_octets", + .offset = 0x0F, + }, + [OCELOT_STAT_RX_PAUSE] = { + .name = "rx_pause", + .offset = 0x10, + }, + [OCELOT_STAT_RX_CONTROL] = { + .name = "rx_control", + .offset = 0x11, + }, + [OCELOT_STAT_RX_LONGS] = { + .name = "rx_longs", + .offset = 0x12, + }, + [OCELOT_STAT_RX_CLASSIFIED_DROPS] = { + .name = "rx_classified_drops", + .offset = 0x13, + }, + [OCELOT_STAT_RX_RED_PRIO_0] = { + .name = "rx_red_prio_0", + .offset = 0x14, + }, + [OCELOT_STAT_RX_RED_PRIO_1] = { + .name = "rx_red_prio_1", + .offset = 0x15, + }, + [OCELOT_STAT_RX_RED_PRIO_2] = { + .name = "rx_red_prio_2", + .offset = 0x16, + }, + [OCELOT_STAT_RX_RED_PRIO_3] = { + .name = "rx_red_prio_3", + .offset = 0x17, + }, + [OCELOT_STAT_RX_RED_PRIO_4] = { + .name = "rx_red_prio_4", + .offset = 0x18, + }, + [OCELOT_STAT_RX_RED_PRIO_5] = { + .name = "rx_red_prio_5", + .offset = 0x19, + }, + [OCELOT_STAT_RX_RED_PRIO_6] = { + .name = "rx_red_prio_6", + .offset = 0x1A, + }, + [OCELOT_STAT_RX_RED_PRIO_7] = { + .name = "rx_red_prio_7", + .offset = 0x1B, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_0] = { + .name = "rx_yellow_prio_0", + .offset = 0x1C, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_1] = { + .name = "rx_yellow_prio_1", + .offset = 0x1D, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_2] = { + .name = "rx_yellow_prio_2", + .offset = 0x1E, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_3] = { + .name = "rx_yellow_prio_3", + .offset = 0x1F, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_4] = { + .name = "rx_yellow_prio_4", + .offset = 0x20, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_5] = { + .name = "rx_yellow_prio_5", + .offset = 0x21, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_6] = { + .name = "rx_yellow_prio_6", + .offset = 0x22, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_7] = { + .name = "rx_yellow_prio_7", + .offset = 0x23, + }, + [OCELOT_STAT_RX_GREEN_PRIO_0] = { + .name = "rx_green_prio_0", + .offset = 0x24, + }, + [OCELOT_STAT_RX_GREEN_PRIO_1] = { + .name = "rx_green_prio_1", + .offset = 0x25, + }, + [OCELOT_STAT_RX_GREEN_PRIO_2] = { + .name = "rx_green_prio_2", + .offset = 0x26, + }, + [OCELOT_STAT_RX_GREEN_PRIO_3] = { + .name = "rx_green_prio_3", + .offset = 0x27, + }, + [OCELOT_STAT_RX_GREEN_PRIO_4] = { + .name = "rx_green_prio_4", + .offset = 0x28, + }, + [OCELOT_STAT_RX_GREEN_PRIO_5] = { + .name = "rx_green_prio_5", + .offset = 0x29, + }, + [OCELOT_STAT_RX_GREEN_PRIO_6] = { + .name = "rx_green_prio_6", + .offset = 0x2A, + }, + [OCELOT_STAT_RX_GREEN_PRIO_7] = { + .name = "rx_green_prio_7", + .offset = 0x2B, + }, + [OCELOT_STAT_TX_OCTETS] = { + .name = "tx_octets", + .offset = 0x80, + }, + [OCELOT_STAT_TX_UNICAST] = { + .name = "tx_unicast", + .offset = 0x81, + }, + [OCELOT_STAT_TX_MULTICAST] = { + .name = "tx_multicast", + .offset = 0x82, + }, + [OCELOT_STAT_TX_BROADCAST] = { + .name = "tx_broadcast", + .offset = 0x83, + }, + [OCELOT_STAT_TX_COLLISION] = { + .name = "tx_collision", + .offset = 0x84, + }, + [OCELOT_STAT_TX_DROPS] = { + .name = "tx_drops", + .offset = 0x85, + }, + [OCELOT_STAT_TX_PAUSE] = { + .name = "tx_pause", + .offset = 0x86, + }, + [OCELOT_STAT_TX_64] = { + .name = "tx_frames_below_65_octets", + .offset = 0x87, + }, + [OCELOT_STAT_TX_65_127] = { + .name = "tx_frames_65_to_127_octets", + .offset = 0x88, + }, + [OCELOT_STAT_TX_128_255] = { + .name = "tx_frames_128_255_octets", + .offset = 0x89, + }, + [OCELOT_STAT_TX_256_511] = { + .name = "tx_frames_256_511_octets", + .offset = 0x8A, + }, + [OCELOT_STAT_TX_512_1023] = { + .name = "tx_frames_512_1023_octets", + .offset = 0x8B, + }, + [OCELOT_STAT_TX_1024_1526] = { + .name = "tx_frames_1024_1526_octets", + .offset = 0x8C, + }, + [OCELOT_STAT_TX_1527_MAX] = { + .name = "tx_frames_over_1526_octets", + .offset = 0x8D, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_0] = { + .name = "tx_yellow_prio_0", + .offset = 0x8E, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_1] = { + .name = "tx_yellow_prio_1", + .offset = 0x8F, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_2] = { + .name = "tx_yellow_prio_2", + .offset = 0x90, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_3] = { + .name = "tx_yellow_prio_3", + .offset = 0x91, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_4] = { + .name = "tx_yellow_prio_4", + .offset = 0x92, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_5] = { + .name = "tx_yellow_prio_5", + .offset = 0x93, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_6] = { + .name = "tx_yellow_prio_6", + .offset = 0x94, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_7] = { + .name = "tx_yellow_prio_7", + .offset = 0x95, + }, + [OCELOT_STAT_TX_GREEN_PRIO_0] = { + .name = "tx_green_prio_0", + .offset = 0x96, + }, + [OCELOT_STAT_TX_GREEN_PRIO_1] = { + .name = "tx_green_prio_1", + .offset = 0x97, + }, + [OCELOT_STAT_TX_GREEN_PRIO_2] = { + .name = "tx_green_prio_2", + .offset = 0x98, + }, + [OCELOT_STAT_TX_GREEN_PRIO_3] = { + .name = "tx_green_prio_3", + .offset = 0x99, + }, + [OCELOT_STAT_TX_GREEN_PRIO_4] = { + .name = "tx_green_prio_4", + .offset = 0x9A, + }, + [OCELOT_STAT_TX_GREEN_PRIO_5] = { + .name = "tx_green_prio_5", + .offset = 0x9B, + }, + [OCELOT_STAT_TX_GREEN_PRIO_6] = { + .name = "tx_green_prio_6", + .offset = 0x9C, + }, + [OCELOT_STAT_TX_GREEN_PRIO_7] = { + .name = "tx_green_prio_7", + .offset = 0x9D, + }, + [OCELOT_STAT_TX_AGED] = { + .name = "tx_aged", + .offset = 0x9E, + }, + [OCELOT_STAT_DROP_LOCAL] = { + .name = "drop_local", + .offset = 0x100, + }, + [OCELOT_STAT_DROP_TAIL] = { + .name = "drop_tail", + .offset = 0x101, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_0] = { + .name = "drop_yellow_prio_0", + .offset = 0x102, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_1] = { + .name = "drop_yellow_prio_1", + .offset = 0x103, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_2] = { + .name = "drop_yellow_prio_2", + .offset = 0x104, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_3] = { + .name = "drop_yellow_prio_3", + .offset = 0x105, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_4] = { + .name = "drop_yellow_prio_4", + .offset = 0x106, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_5] = { + .name = "drop_yellow_prio_5", + .offset = 0x107, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_6] = { + .name = "drop_yellow_prio_6", + .offset = 0x108, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_7] = { + .name = "drop_yellow_prio_7", + .offset = 0x109, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_0] = { + .name = "drop_green_prio_0", + .offset = 0x10A, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_1] = { + .name = "drop_green_prio_1", + .offset = 0x10B, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_2] = { + .name = "drop_green_prio_2", + .offset = 0x10C, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_3] = { + .name = "drop_green_prio_3", + .offset = 0x10D, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_4] = { + .name = "drop_green_prio_4", + .offset = 0x10E, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_5] = { + .name = "drop_green_prio_5", + .offset = 0x10F, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_6] = { + .name = "drop_green_prio_6", + .offset = 0x110, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_7] = { + .name = "drop_green_prio_7", + .offset = 0x111, + }, }; static const struct vcap_field vsc9959_vcap_es0_keys[] = { @@ -1127,9 +1412,266 @@ mdiobus_free(felix->imdio); } +/* The switch considers any frame (regardless of size) as eligible for + * transmission if the traffic class gate is open for at least 33 ns. + * Overruns are prevented by cropping an interval at the end of the gate time + * slot for which egress scheduling is blocked, but we need to still keep 33 ns + * available for one packet to be transmitted, otherwise the port tc will hang. + * This function returns the size of a gate interval that remains available for + * setting the guard band, after reserving the space for one egress frame. + */ +static u64 vsc9959_tas_remaining_gate_len_ps(u64 gate_len_ns) +{ + /* Gate always open */ + if (gate_len_ns == U64_MAX) + return U64_MAX; + + return (gate_len_ns - VSC9959_TAS_MIN_GATE_LEN_NS) * PSEC_PER_NSEC; +} + +/* Extract shortest continuous gate open intervals in ns for each traffic class + * of a cyclic tc-taprio schedule. If a gate is always open, the duration is + * considered U64_MAX. If the gate is always closed, it is considered 0. + */ +static void vsc9959_tas_min_gate_lengths(struct tc_taprio_qopt_offload *taprio, + u64 min_gate_len[OCELOT_NUM_TC]) +{ + struct tc_taprio_sched_entry *entry; + u64 gate_len[OCELOT_NUM_TC]; + u8 gates_ever_opened = 0; + int tc, i, n; + + /* Initialize arrays */ + for (tc = 0; tc < OCELOT_NUM_TC; tc++) { + min_gate_len[tc] = U64_MAX; + gate_len[tc] = 0; + } + + /* If we don't have taprio, consider all gates as permanently open */ + if (!taprio) + return; + + n = taprio->num_entries; + + /* Walk through the gate list twice to determine the length + * of consecutively open gates for a traffic class, including + * open gates that wrap around. We are just interested in the + * minimum window size, and this doesn't change what the + * minimum is (if the gate never closes, min_gate_len will + * remain U64_MAX). + */ + for (i = 0; i < 2 * n; i++) { + entry = &taprio->entries[i % n]; + + for (tc = 0; tc < OCELOT_NUM_TC; tc++) { + if (entry->gate_mask & BIT(tc)) { + gate_len[tc] += entry->interval; + gates_ever_opened |= BIT(tc); + } else { + /* Gate closes now, record a potential new + * minimum and reinitialize length + */ + if (min_gate_len[tc] > gate_len[tc] && + gate_len[tc]) + min_gate_len[tc] = gate_len[tc]; + gate_len[tc] = 0; + } + } + } + + /* min_gate_len[tc] actually tracks minimum *open* gate time, so for + * permanently closed gates, min_gate_len[tc] will still be U64_MAX. + * Therefore they are currently indistinguishable from permanently + * open gates. Overwrite the gate len with 0 when we know they're + * actually permanently closed, i.e. after the loop above. + */ + for (tc = 0; tc < OCELOT_NUM_TC; tc++) + if (!(gates_ever_opened & BIT(tc))) + min_gate_len[tc] = 0; +} + +/* ocelot_write_rix is a macro that concatenates QSYS_MAXSDU_CFG_* with _RSZ, + * so we need to spell out the register access to each traffic class in helper + * functions, to simplify callers + */ +static void vsc9959_port_qmaxsdu_set(struct ocelot *ocelot, int port, int tc, + u32 max_sdu) +{ + switch (tc) { + case 0: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_0, + port); + break; + case 1: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_1, + port); + break; + case 2: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_2, + port); + break; + case 3: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_3, + port); + break; + case 4: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_4, + port); + break; + case 5: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_5, + port); + break; + case 6: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_6, + port); + break; + case 7: + ocelot_write_rix(ocelot, max_sdu, QSYS_QMAXSDU_CFG_7, + port); + break; + } +} + +static u32 vsc9959_port_qmaxsdu_get(struct ocelot *ocelot, int port, int tc) +{ + switch (tc) { + case 0: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_0, port); + case 1: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_1, port); + case 2: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_2, port); + case 3: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_3, port); + case 4: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_4, port); + case 5: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_5, port); + case 6: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_6, port); + case 7: return ocelot_read_rix(ocelot, QSYS_QMAXSDU_CFG_7, port); + default: + return 0; + } +} + +/* Update QSYS_PORT_MAX_SDU to make sure the static guard bands added by the + * switch (see the ALWAYS_GUARD_BAND_SCH_Q comment) are correct at all MTU + * values (the default value is 1518). Also, for traffic class windows smaller + * than one MTU sized frame, update QSYS_QMAXSDU_CFG to enable oversized frame + * dropping, such that these won't hang the port, as they will never be sent. + */ +static void vsc9959_tas_guard_bands_update(struct ocelot *ocelot, int port) +{ + struct ocelot_port *ocelot_port = ocelot->ports[port]; + u64 min_gate_len[OCELOT_NUM_TC]; + int speed, picos_per_byte; + u64 needed_bit_time_ps; + u32 val, maxlen; + u8 tas_speed; + int tc; + + lockdep_assert_held(&ocelot->tas_lock); + + val = ocelot_read_rix(ocelot, QSYS_TAG_CONFIG, port); + tas_speed = QSYS_TAG_CONFIG_LINK_SPEED_X(val); + + switch (tas_speed) { + case OCELOT_SPEED_10: + speed = SPEED_10; + break; + case OCELOT_SPEED_100: + speed = SPEED_100; + break; + case OCELOT_SPEED_1000: + speed = SPEED_1000; + break; + case OCELOT_SPEED_2500: + speed = SPEED_2500; + break; + default: + return; + } + + picos_per_byte = (USEC_PER_SEC * 8) / speed; + + val = ocelot_port_readl(ocelot_port, DEV_MAC_MAXLEN_CFG); + /* MAXLEN_CFG accounts automatically for VLAN. We need to include it + * manually in the bit time calculation, plus the preamble and SFD. + */ + maxlen = val + 2 * VLAN_HLEN; + /* Consider the standard Ethernet overhead of 8 octets preamble+SFD, + * 4 octets FCS, 12 octets IFG. + */ + needed_bit_time_ps = (maxlen + 24) * picos_per_byte; + + dev_dbg(ocelot->dev, + "port %d: max frame size %d needs %llu ps at speed %d\n", + port, maxlen, needed_bit_time_ps, speed); + + vsc9959_tas_min_gate_lengths(ocelot_port->taprio, min_gate_len); + + mutex_lock(&ocelot->fwd_domain_lock); + + for (tc = 0; tc < OCELOT_NUM_TC; tc++) { + u64 remaining_gate_len_ps; + u32 max_sdu; + + remaining_gate_len_ps = + vsc9959_tas_remaining_gate_len_ps(min_gate_len[tc]); + + if (remaining_gate_len_ps > needed_bit_time_ps) { + /* Setting QMAXSDU_CFG to 0 disables oversized frame + * dropping. + */ + max_sdu = 0; + dev_dbg(ocelot->dev, + "port %d tc %d min gate len %llu" + ", sending all frames\n", + port, tc, min_gate_len[tc]); + } else { + /* If traffic class doesn't support a full MTU sized + * frame, make sure to enable oversize frame dropping + * for frames larger than the smallest that would fit. + * + * However, the exact same register, QSYS_QMAXSDU_CFG_*, + * controls not only oversized frame dropping, but also + * per-tc static guard band lengths, so it reduces the + * useful gate interval length. Therefore, be careful + * to calculate a guard band (and therefore max_sdu) + * that still leaves 33 ns available in the time slot. + */ + max_sdu = div_u64(remaining_gate_len_ps, picos_per_byte); + /* A TC gate may be completely closed, which is a + * special case where all packets are oversized. + * Any limit smaller than 64 octets accomplishes this + */ + if (!max_sdu) + max_sdu = 1; + /* Take L1 overhead into account, but just don't allow + * max_sdu to go negative or to 0. Here we use 20 + * because QSYS_MAXSDU_CFG_* already counts the 4 FCS + * octets as part of packet size. + */ + if (max_sdu > 20) + max_sdu -= 20; + dev_info(ocelot->dev, + "port %d tc %d min gate length %llu" + " ns not enough for max frame size %d at %d" + " Mbps, dropping frames over %d" + " octets including FCS\n", + port, tc, min_gate_len[tc], maxlen, speed, + max_sdu); + } + + vsc9959_port_qmaxsdu_set(ocelot, port, tc, max_sdu); + } + + ocelot_write_rix(ocelot, maxlen, QSYS_PORT_MAX_SDU, port); + + ocelot->ops->cut_through_fwd(ocelot); + + mutex_unlock(&ocelot->fwd_domain_lock); +} + static void vsc9959_sched_speed_set(struct ocelot *ocelot, int port, u32 speed) { + struct ocelot_port *ocelot_port = ocelot->ports[port]; u8 tas_speed; switch (speed) { @@ -1150,10 +1692,17 @@ break; } + mutex_lock(&ocelot->tas_lock); + ocelot_rmw_rix(ocelot, QSYS_TAG_CONFIG_LINK_SPEED(tas_speed), QSYS_TAG_CONFIG_LINK_SPEED_M, QSYS_TAG_CONFIG, port); + + if (ocelot_port->taprio) + vsc9959_tas_guard_bands_update(ocelot, port); + + mutex_unlock(&ocelot->tas_lock); } static void vsc9959_new_base_time(struct ocelot *ocelot, ktime_t base_time, @@ -1196,10 +1745,13 @@ static int vsc9959_qos_port_tas_set(struct ocelot *ocelot, int port, struct tc_taprio_qopt_offload *taprio) { + struct ocelot_port *ocelot_port = ocelot->ports[port]; struct timespec64 base_ts; int ret, i; u32 val; + mutex_lock(&ocelot->tas_lock); + if (!taprio->enable) { ocelot_rmw_rix(ocelot, QSYS_TAG_CONFIG_INIT_GATE_STATE(0xFF), @@ -1207,15 +1759,25 @@ QSYS_TAG_CONFIG_INIT_GATE_STATE_M, QSYS_TAG_CONFIG, port); + taprio_offload_free(ocelot_port->taprio); + ocelot_port->taprio = NULL; + + vsc9959_tas_guard_bands_update(ocelot, port); + + mutex_unlock(&ocelot->tas_lock); return 0; } if (taprio->cycle_time > NSEC_PER_SEC || - taprio->cycle_time_extension >= NSEC_PER_SEC) - return -EINVAL; + taprio->cycle_time_extension >= NSEC_PER_SEC) { + ret = -EINVAL; + goto err; + } - if (taprio->num_entries > VSC9959_TAS_GCL_ENTRY_MAX) - return -ERANGE; + if (taprio->num_entries > VSC9959_TAS_GCL_ENTRY_MAX) { + ret = -ERANGE; + goto err; + } /* Enable guard band. The switch will schedule frames without taking * their length into account. Thus we'll always need to enable the @@ -1236,8 +1798,10 @@ * config is pending, need reset the TAS module */ val = ocelot_read(ocelot, QSYS_PARAM_STATUS_REG_8); - if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) - return -EBUSY; + if (val & QSYS_PARAM_STATUS_REG_8_CONFIG_PENDING) { + ret = -EBUSY; + goto err; + } ocelot_rmw_rix(ocelot, QSYS_TAG_CONFIG_ENABLE | @@ -1270,10 +1834,71 @@ ret = readx_poll_timeout(vsc9959_tas_read_cfg_status, ocelot, val, !(val & QSYS_TAS_PARAM_CFG_CTRL_CONFIG_CHANGE), 10, 100000); + if (ret) + goto err; + + ocelot_port->taprio = taprio_offload_get(taprio); + vsc9959_tas_guard_bands_update(ocelot, port); + +err: + mutex_unlock(&ocelot->tas_lock); return ret; } +static void vsc9959_tas_clock_adjust(struct ocelot *ocelot) +{ + struct tc_taprio_qopt_offload *taprio; + struct ocelot_port *ocelot_port; + struct timespec64 base_ts; + int port; + u32 val; + + mutex_lock(&ocelot->tas_lock); + + for (port = 0; port < ocelot->num_phys_ports; port++) { + ocelot_port = ocelot->ports[port]; + taprio = ocelot_port->taprio; + if (!taprio) + continue; + + ocelot_rmw(ocelot, + QSYS_TAS_PARAM_CFG_CTRL_PORT_NUM(port), + QSYS_TAS_PARAM_CFG_CTRL_PORT_NUM_M, + QSYS_TAS_PARAM_CFG_CTRL); + + ocelot_rmw_rix(ocelot, + QSYS_TAG_CONFIG_INIT_GATE_STATE(0xFF), + QSYS_TAG_CONFIG_ENABLE | + QSYS_TAG_CONFIG_INIT_GATE_STATE_M, + QSYS_TAG_CONFIG, port); + + vsc9959_new_base_time(ocelot, taprio->base_time, + taprio->cycle_time, &base_ts); + + ocelot_write(ocelot, base_ts.tv_nsec, QSYS_PARAM_CFG_REG_1); + ocelot_write(ocelot, lower_32_bits(base_ts.tv_sec), + QSYS_PARAM_CFG_REG_2); + val = upper_32_bits(base_ts.tv_sec); + ocelot_rmw(ocelot, + QSYS_PARAM_CFG_REG_3_BASE_TIME_SEC_MSB(val), + QSYS_PARAM_CFG_REG_3_BASE_TIME_SEC_MSB_M, + QSYS_PARAM_CFG_REG_3); + + ocelot_rmw(ocelot, QSYS_TAS_PARAM_CFG_CTRL_CONFIG_CHANGE, + QSYS_TAS_PARAM_CFG_CTRL_CONFIG_CHANGE, + QSYS_TAS_PARAM_CFG_CTRL); + + ocelot_rmw_rix(ocelot, + QSYS_TAG_CONFIG_INIT_GATE_STATE(0xFF) | + QSYS_TAG_CONFIG_ENABLE, + QSYS_TAG_CONFIG_ENABLE | + QSYS_TAG_CONFIG_INIT_GATE_STATE_M, + QSYS_TAG_CONFIG, port); + } + mutex_unlock(&ocelot->tas_lock); +} + static int vsc9959_qos_port_cbs_set(struct dsa_switch *ds, int port, struct tc_cbs_qopt_offload *cbs_qopt) { @@ -1886,7 +2511,7 @@ static void vsc9959_psfp_counters_get(struct ocelot *ocelot, u32 index, struct felix_stream_filter_counters *counters) { - mutex_lock(&ocelot->stats_lock); + spin_lock(&ocelot->stats_lock); ocelot_rmw(ocelot, SYS_STAT_CFG_STAT_VIEW(index), SYS_STAT_CFG_STAT_VIEW_M, @@ -1903,7 +2528,7 @@ SYS_STAT_CFG_STAT_CLEAR_SHOT(0x10), SYS_STAT_CFG); - mutex_unlock(&ocelot->stats_lock); + spin_unlock(&ocelot->stats_lock); } static int vsc9959_psfp_filter_add(struct ocelot *ocelot, int port, @@ -2140,7 +2765,7 @@ { struct felix *felix = ocelot_to_felix(ocelot); struct dsa_switch *ds = felix->ds; - int port, other_port; + int tc, port, other_port; lockdep_assert_held(&ocelot->fwd_domain_lock); @@ -2184,19 +2809,27 @@ min_speed = other_ocelot_port->speed; } - /* Enable cut-through forwarding for all traffic classes. */ - if (ocelot_port->speed == min_speed) + /* Enable cut-through forwarding for all traffic classes that + * don't have oversized dropping enabled, since this check is + * bypassed in cut-through mode. + */ + if (ocelot_port->speed == min_speed) { val = GENMASK(7, 0); + for (tc = 0; tc < OCELOT_NUM_TC; tc++) + if (vsc9959_port_qmaxsdu_get(ocelot, port, tc)) + val &= ~BIT(tc); + } + set: tmp = ocelot_read_rix(ocelot, ANA_CUT_THRU_CFG, port); if (tmp == val) continue; dev_dbg(ocelot->dev, - "port %d fwd mask 0x%lx speed %d min_speed %d, %s cut-through forwarding\n", + "port %d fwd mask 0x%lx speed %d min_speed %d, %s cut-through forwarding on TC mask 0x%x\n", port, mask, ocelot_port->speed, min_speed, - val ? "enabling" : "disabling"); + val ? "enabling" : "disabling", val); ocelot_write_rix(ocelot, val, ANA_CUT_THRU_CFG, port); } @@ -2214,6 +2847,7 @@ .psfp_filter_del = vsc9959_psfp_filter_del, .psfp_stats_get = vsc9959_psfp_stats_get, .cut_through_fwd = vsc9959_cut_through_fwd, + .tas_clock_adjust = vsc9959_tas_clock_adjust, }; static const struct felix_info felix_info_vsc9959 = { @@ -2240,6 +2874,7 @@ .port_modes = vsc9959_port_modes, .port_setup_tc = vsc9959_port_setup_tc, .port_sched_speed_set = vsc9959_sched_speed_set, + .tas_guard_bands_update = vsc9959_tas_guard_bands_update, .init_regmap = ocelot_regmap_init, }; --- linux-5.19.0.orig/drivers/net/dsa/ocelot/seville_vsc9953.c +++ linux-5.19.0/drivers/net/dsa/ocelot/seville_vsc9953.c @@ -277,19 +277,21 @@ REG(SYS_COUNT_RX_64, 0x000024), REG(SYS_COUNT_RX_65_127, 0x000028), REG(SYS_COUNT_RX_128_255, 0x00002c), - REG(SYS_COUNT_RX_256_1023, 0x000030), - REG(SYS_COUNT_RX_1024_1526, 0x000034), - REG(SYS_COUNT_RX_1527_MAX, 0x000038), + REG(SYS_COUNT_RX_256_511, 0x000030), + REG(SYS_COUNT_RX_512_1023, 0x000034), + REG(SYS_COUNT_RX_1024_1526, 0x000038), + REG(SYS_COUNT_RX_1527_MAX, 0x00003c), REG(SYS_COUNT_RX_LONGS, 0x000048), REG(SYS_COUNT_TX_OCTETS, 0x000100), REG(SYS_COUNT_TX_COLLISION, 0x000110), REG(SYS_COUNT_TX_DROPS, 0x000114), REG(SYS_COUNT_TX_64, 0x00011c), REG(SYS_COUNT_TX_65_127, 0x000120), - REG(SYS_COUNT_TX_128_511, 0x000124), - REG(SYS_COUNT_TX_512_1023, 0x000128), - REG(SYS_COUNT_TX_1024_1526, 0x00012c), - REG(SYS_COUNT_TX_1527_MAX, 0x000130), + REG(SYS_COUNT_TX_128_255, 0x000124), + REG(SYS_COUNT_TX_256_511, 0x000128), + REG(SYS_COUNT_TX_512_1023, 0x00012c), + REG(SYS_COUNT_TX_1024_1526, 0x000130), + REG(SYS_COUNT_TX_1527_MAX, 0x000134), REG(SYS_COUNT_TX_AGING, 0x000178), REG(SYS_RESET_CFG, 0x000318), REG_RESERVED(SYS_SR_ETYPE_CFG), @@ -543,101 +545,379 @@ [SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 11, 4), }; -static const struct ocelot_stat_layout vsc9953_stats_layout[] = { - { .offset = 0x00, .name = "rx_octets", }, - { .offset = 0x01, .name = "rx_unicast", }, - { .offset = 0x02, .name = "rx_multicast", }, - { .offset = 0x03, .name = "rx_broadcast", }, - { .offset = 0x04, .name = "rx_shorts", }, - { .offset = 0x05, .name = "rx_fragments", }, - { .offset = 0x06, .name = "rx_jabbers", }, - { .offset = 0x07, .name = "rx_crc_align_errs", }, - { .offset = 0x08, .name = "rx_sym_errs", }, - { .offset = 0x09, .name = "rx_frames_below_65_octets", }, - { .offset = 0x0A, .name = "rx_frames_65_to_127_octets", }, - { .offset = 0x0B, .name = "rx_frames_128_to_255_octets", }, - { .offset = 0x0C, .name = "rx_frames_256_to_511_octets", }, - { .offset = 0x0D, .name = "rx_frames_512_to_1023_octets", }, - { .offset = 0x0E, .name = "rx_frames_1024_to_1526_octets", }, - { .offset = 0x0F, .name = "rx_frames_over_1526_octets", }, - { .offset = 0x10, .name = "rx_pause", }, - { .offset = 0x11, .name = "rx_control", }, - { .offset = 0x12, .name = "rx_longs", }, - { .offset = 0x13, .name = "rx_classified_drops", }, - { .offset = 0x14, .name = "rx_red_prio_0", }, - { .offset = 0x15, .name = "rx_red_prio_1", }, - { .offset = 0x16, .name = "rx_red_prio_2", }, - { .offset = 0x17, .name = "rx_red_prio_3", }, - { .offset = 0x18, .name = "rx_red_prio_4", }, - { .offset = 0x19, .name = "rx_red_prio_5", }, - { .offset = 0x1A, .name = "rx_red_prio_6", }, - { .offset = 0x1B, .name = "rx_red_prio_7", }, - { .offset = 0x1C, .name = "rx_yellow_prio_0", }, - { .offset = 0x1D, .name = "rx_yellow_prio_1", }, - { .offset = 0x1E, .name = "rx_yellow_prio_2", }, - { .offset = 0x1F, .name = "rx_yellow_prio_3", }, - { .offset = 0x20, .name = "rx_yellow_prio_4", }, - { .offset = 0x21, .name = "rx_yellow_prio_5", }, - { .offset = 0x22, .name = "rx_yellow_prio_6", }, - { .offset = 0x23, .name = "rx_yellow_prio_7", }, - { .offset = 0x24, .name = "rx_green_prio_0", }, - { .offset = 0x25, .name = "rx_green_prio_1", }, - { .offset = 0x26, .name = "rx_green_prio_2", }, - { .offset = 0x27, .name = "rx_green_prio_3", }, - { .offset = 0x28, .name = "rx_green_prio_4", }, - { .offset = 0x29, .name = "rx_green_prio_5", }, - { .offset = 0x2A, .name = "rx_green_prio_6", }, - { .offset = 0x2B, .name = "rx_green_prio_7", }, - { .offset = 0x40, .name = "tx_octets", }, - { .offset = 0x41, .name = "tx_unicast", }, - { .offset = 0x42, .name = "tx_multicast", }, - { .offset = 0x43, .name = "tx_broadcast", }, - { .offset = 0x44, .name = "tx_collision", }, - { .offset = 0x45, .name = "tx_drops", }, - { .offset = 0x46, .name = "tx_pause", }, - { .offset = 0x47, .name = "tx_frames_below_65_octets", }, - { .offset = 0x48, .name = "tx_frames_65_to_127_octets", }, - { .offset = 0x49, .name = "tx_frames_128_255_octets", }, - { .offset = 0x4A, .name = "tx_frames_256_511_octets", }, - { .offset = 0x4B, .name = "tx_frames_512_1023_octets", }, - { .offset = 0x4C, .name = "tx_frames_1024_1526_octets", }, - { .offset = 0x4D, .name = "tx_frames_over_1526_octets", }, - { .offset = 0x4E, .name = "tx_yellow_prio_0", }, - { .offset = 0x4F, .name = "tx_yellow_prio_1", }, - { .offset = 0x50, .name = "tx_yellow_prio_2", }, - { .offset = 0x51, .name = "tx_yellow_prio_3", }, - { .offset = 0x52, .name = "tx_yellow_prio_4", }, - { .offset = 0x53, .name = "tx_yellow_prio_5", }, - { .offset = 0x54, .name = "tx_yellow_prio_6", }, - { .offset = 0x55, .name = "tx_yellow_prio_7", }, - { .offset = 0x56, .name = "tx_green_prio_0", }, - { .offset = 0x57, .name = "tx_green_prio_1", }, - { .offset = 0x58, .name = "tx_green_prio_2", }, - { .offset = 0x59, .name = "tx_green_prio_3", }, - { .offset = 0x5A, .name = "tx_green_prio_4", }, - { .offset = 0x5B, .name = "tx_green_prio_5", }, - { .offset = 0x5C, .name = "tx_green_prio_6", }, - { .offset = 0x5D, .name = "tx_green_prio_7", }, - { .offset = 0x5E, .name = "tx_aged", }, - { .offset = 0x80, .name = "drop_local", }, - { .offset = 0x81, .name = "drop_tail", }, - { .offset = 0x82, .name = "drop_yellow_prio_0", }, - { .offset = 0x83, .name = "drop_yellow_prio_1", }, - { .offset = 0x84, .name = "drop_yellow_prio_2", }, - { .offset = 0x85, .name = "drop_yellow_prio_3", }, - { .offset = 0x86, .name = "drop_yellow_prio_4", }, - { .offset = 0x87, .name = "drop_yellow_prio_5", }, - { .offset = 0x88, .name = "drop_yellow_prio_6", }, - { .offset = 0x89, .name = "drop_yellow_prio_7", }, - { .offset = 0x8A, .name = "drop_green_prio_0", }, - { .offset = 0x8B, .name = "drop_green_prio_1", }, - { .offset = 0x8C, .name = "drop_green_prio_2", }, - { .offset = 0x8D, .name = "drop_green_prio_3", }, - { .offset = 0x8E, .name = "drop_green_prio_4", }, - { .offset = 0x8F, .name = "drop_green_prio_5", }, - { .offset = 0x90, .name = "drop_green_prio_6", }, - { .offset = 0x91, .name = "drop_green_prio_7", }, - OCELOT_STAT_END +static const struct ocelot_stat_layout vsc9953_stats_layout[OCELOT_NUM_STATS] = { + [OCELOT_STAT_RX_OCTETS] = { + .name = "rx_octets", + .offset = 0x00, + }, + [OCELOT_STAT_RX_UNICAST] = { + .name = "rx_unicast", + .offset = 0x01, + }, + [OCELOT_STAT_RX_MULTICAST] = { + .name = "rx_multicast", + .offset = 0x02, + }, + [OCELOT_STAT_RX_BROADCAST] = { + .name = "rx_broadcast", + .offset = 0x03, + }, + [OCELOT_STAT_RX_SHORTS] = { + .name = "rx_shorts", + .offset = 0x04, + }, + [OCELOT_STAT_RX_FRAGMENTS] = { + .name = "rx_fragments", + .offset = 0x05, + }, + [OCELOT_STAT_RX_JABBERS] = { + .name = "rx_jabbers", + .offset = 0x06, + }, + [OCELOT_STAT_RX_CRC_ALIGN_ERRS] = { + .name = "rx_crc_align_errs", + .offset = 0x07, + }, + [OCELOT_STAT_RX_SYM_ERRS] = { + .name = "rx_sym_errs", + .offset = 0x08, + }, + [OCELOT_STAT_RX_64] = { + .name = "rx_frames_below_65_octets", + .offset = 0x09, + }, + [OCELOT_STAT_RX_65_127] = { + .name = "rx_frames_65_to_127_octets", + .offset = 0x0A, + }, + [OCELOT_STAT_RX_128_255] = { + .name = "rx_frames_128_to_255_octets", + .offset = 0x0B, + }, + [OCELOT_STAT_RX_256_511] = { + .name = "rx_frames_256_to_511_octets", + .offset = 0x0C, + }, + [OCELOT_STAT_RX_512_1023] = { + .name = "rx_frames_512_to_1023_octets", + .offset = 0x0D, + }, + [OCELOT_STAT_RX_1024_1526] = { + .name = "rx_frames_1024_to_1526_octets", + .offset = 0x0E, + }, + [OCELOT_STAT_RX_1527_MAX] = { + .name = "rx_frames_over_1526_octets", + .offset = 0x0F, + }, + [OCELOT_STAT_RX_PAUSE] = { + .name = "rx_pause", + .offset = 0x10, + }, + [OCELOT_STAT_RX_CONTROL] = { + .name = "rx_control", + .offset = 0x11, + }, + [OCELOT_STAT_RX_LONGS] = { + .name = "rx_longs", + .offset = 0x12, + }, + [OCELOT_STAT_RX_CLASSIFIED_DROPS] = { + .name = "rx_classified_drops", + .offset = 0x13, + }, + [OCELOT_STAT_RX_RED_PRIO_0] = { + .name = "rx_red_prio_0", + .offset = 0x14, + }, + [OCELOT_STAT_RX_RED_PRIO_1] = { + .name = "rx_red_prio_1", + .offset = 0x15, + }, + [OCELOT_STAT_RX_RED_PRIO_2] = { + .name = "rx_red_prio_2", + .offset = 0x16, + }, + [OCELOT_STAT_RX_RED_PRIO_3] = { + .name = "rx_red_prio_3", + .offset = 0x17, + }, + [OCELOT_STAT_RX_RED_PRIO_4] = { + .name = "rx_red_prio_4", + .offset = 0x18, + }, + [OCELOT_STAT_RX_RED_PRIO_5] = { + .name = "rx_red_prio_5", + .offset = 0x19, + }, + [OCELOT_STAT_RX_RED_PRIO_6] = { + .name = "rx_red_prio_6", + .offset = 0x1A, + }, + [OCELOT_STAT_RX_RED_PRIO_7] = { + .name = "rx_red_prio_7", + .offset = 0x1B, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_0] = { + .name = "rx_yellow_prio_0", + .offset = 0x1C, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_1] = { + .name = "rx_yellow_prio_1", + .offset = 0x1D, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_2] = { + .name = "rx_yellow_prio_2", + .offset = 0x1E, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_3] = { + .name = "rx_yellow_prio_3", + .offset = 0x1F, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_4] = { + .name = "rx_yellow_prio_4", + .offset = 0x20, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_5] = { + .name = "rx_yellow_prio_5", + .offset = 0x21, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_6] = { + .name = "rx_yellow_prio_6", + .offset = 0x22, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_7] = { + .name = "rx_yellow_prio_7", + .offset = 0x23, + }, + [OCELOT_STAT_RX_GREEN_PRIO_0] = { + .name = "rx_green_prio_0", + .offset = 0x24, + }, + [OCELOT_STAT_RX_GREEN_PRIO_1] = { + .name = "rx_green_prio_1", + .offset = 0x25, + }, + [OCELOT_STAT_RX_GREEN_PRIO_2] = { + .name = "rx_green_prio_2", + .offset = 0x26, + }, + [OCELOT_STAT_RX_GREEN_PRIO_3] = { + .name = "rx_green_prio_3", + .offset = 0x27, + }, + [OCELOT_STAT_RX_GREEN_PRIO_4] = { + .name = "rx_green_prio_4", + .offset = 0x28, + }, + [OCELOT_STAT_RX_GREEN_PRIO_5] = { + .name = "rx_green_prio_5", + .offset = 0x29, + }, + [OCELOT_STAT_RX_GREEN_PRIO_6] = { + .name = "rx_green_prio_6", + .offset = 0x2A, + }, + [OCELOT_STAT_RX_GREEN_PRIO_7] = { + .name = "rx_green_prio_7", + .offset = 0x2B, + }, + [OCELOT_STAT_TX_OCTETS] = { + .name = "tx_octets", + .offset = 0x40, + }, + [OCELOT_STAT_TX_UNICAST] = { + .name = "tx_unicast", + .offset = 0x41, + }, + [OCELOT_STAT_TX_MULTICAST] = { + .name = "tx_multicast", + .offset = 0x42, + }, + [OCELOT_STAT_TX_BROADCAST] = { + .name = "tx_broadcast", + .offset = 0x43, + }, + [OCELOT_STAT_TX_COLLISION] = { + .name = "tx_collision", + .offset = 0x44, + }, + [OCELOT_STAT_TX_DROPS] = { + .name = "tx_drops", + .offset = 0x45, + }, + [OCELOT_STAT_TX_PAUSE] = { + .name = "tx_pause", + .offset = 0x46, + }, + [OCELOT_STAT_TX_64] = { + .name = "tx_frames_below_65_octets", + .offset = 0x47, + }, + [OCELOT_STAT_TX_65_127] = { + .name = "tx_frames_65_to_127_octets", + .offset = 0x48, + }, + [OCELOT_STAT_TX_128_255] = { + .name = "tx_frames_128_255_octets", + .offset = 0x49, + }, + [OCELOT_STAT_TX_256_511] = { + .name = "tx_frames_256_511_octets", + .offset = 0x4A, + }, + [OCELOT_STAT_TX_512_1023] = { + .name = "tx_frames_512_1023_octets", + .offset = 0x4B, + }, + [OCELOT_STAT_TX_1024_1526] = { + .name = "tx_frames_1024_1526_octets", + .offset = 0x4C, + }, + [OCELOT_STAT_TX_1527_MAX] = { + .name = "tx_frames_over_1526_octets", + .offset = 0x4D, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_0] = { + .name = "tx_yellow_prio_0", + .offset = 0x4E, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_1] = { + .name = "tx_yellow_prio_1", + .offset = 0x4F, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_2] = { + .name = "tx_yellow_prio_2", + .offset = 0x50, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_3] = { + .name = "tx_yellow_prio_3", + .offset = 0x51, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_4] = { + .name = "tx_yellow_prio_4", + .offset = 0x52, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_5] = { + .name = "tx_yellow_prio_5", + .offset = 0x53, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_6] = { + .name = "tx_yellow_prio_6", + .offset = 0x54, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_7] = { + .name = "tx_yellow_prio_7", + .offset = 0x55, + }, + [OCELOT_STAT_TX_GREEN_PRIO_0] = { + .name = "tx_green_prio_0", + .offset = 0x56, + }, + [OCELOT_STAT_TX_GREEN_PRIO_1] = { + .name = "tx_green_prio_1", + .offset = 0x57, + }, + [OCELOT_STAT_TX_GREEN_PRIO_2] = { + .name = "tx_green_prio_2", + .offset = 0x58, + }, + [OCELOT_STAT_TX_GREEN_PRIO_3] = { + .name = "tx_green_prio_3", + .offset = 0x59, + }, + [OCELOT_STAT_TX_GREEN_PRIO_4] = { + .name = "tx_green_prio_4", + .offset = 0x5A, + }, + [OCELOT_STAT_TX_GREEN_PRIO_5] = { + .name = "tx_green_prio_5", + .offset = 0x5B, + }, + [OCELOT_STAT_TX_GREEN_PRIO_6] = { + .name = "tx_green_prio_6", + .offset = 0x5C, + }, + [OCELOT_STAT_TX_GREEN_PRIO_7] = { + .name = "tx_green_prio_7", + .offset = 0x5D, + }, + [OCELOT_STAT_TX_AGED] = { + .name = "tx_aged", + .offset = 0x5E, + }, + [OCELOT_STAT_DROP_LOCAL] = { + .name = "drop_local", + .offset = 0x80, + }, + [OCELOT_STAT_DROP_TAIL] = { + .name = "drop_tail", + .offset = 0x81, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_0] = { + .name = "drop_yellow_prio_0", + .offset = 0x82, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_1] = { + .name = "drop_yellow_prio_1", + .offset = 0x83, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_2] = { + .name = "drop_yellow_prio_2", + .offset = 0x84, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_3] = { + .name = "drop_yellow_prio_3", + .offset = 0x85, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_4] = { + .name = "drop_yellow_prio_4", + .offset = 0x86, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_5] = { + .name = "drop_yellow_prio_5", + .offset = 0x87, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_6] = { + .name = "drop_yellow_prio_6", + .offset = 0x88, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_7] = { + .name = "drop_yellow_prio_7", + .offset = 0x89, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_0] = { + .name = "drop_green_prio_0", + .offset = 0x8A, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_1] = { + .name = "drop_green_prio_1", + .offset = 0x8B, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_2] = { + .name = "drop_green_prio_2", + .offset = 0x8C, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_3] = { + .name = "drop_green_prio_3", + .offset = 0x8D, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_4] = { + .name = "drop_green_prio_4", + .offset = 0x8E, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_5] = { + .name = "drop_green_prio_5", + .offset = 0x8F, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_6] = { + .name = "drop_green_prio_6", + .offset = 0x90, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_7] = { + .name = "drop_green_prio_7", + .offset = 0x91, + }, }; static const struct vcap_field vsc9953_vcap_es0_keys[] = { --- linux-5.19.0.orig/drivers/net/dsa/sja1105/sja1105_devlink.c +++ linux-5.19.0/drivers/net/dsa/sja1105/sja1105_devlink.c @@ -93,8 +93,10 @@ region = dsa_devlink_region_create(ds, ops, 1, size); if (IS_ERR(region)) { - while (i-- >= 0) + while (--i >= 0) dsa_devlink_region_destroy(priv->regions[i]); + + kfree(priv->regions); return PTR_ERR(region); } --- linux-5.19.0.orig/drivers/net/dsa/sja1105/sja1105_main.c +++ linux-5.19.0/drivers/net/dsa/sja1105/sja1105_main.c @@ -1038,7 +1038,7 @@ policing[bcast].sharindx = port; /* Only SJA1110 has multicast policers */ - if (mcast <= table->ops->max_entry_count) + if (mcast < table->ops->max_entry_count) policing[mcast].sharindx = port; } --- linux-5.19.0.orig/drivers/net/dsa/sja1105/sja1105_mdio.c +++ linux-5.19.0/drivers/net/dsa/sja1105/sja1105_mdio.c @@ -256,6 +256,9 @@ u32 tmp; int rc; + if (reg & MII_ADDR_C45) + return -EOPNOTSUPP; + rc = sja1105_xfer_u32(priv, SPI_READ, regs->mdio_100base_tx + reg, &tmp, NULL); if (rc < 0) @@ -272,6 +275,9 @@ const struct sja1105_regs *regs = priv->info->regs; u32 tmp = val; + if (reg & MII_ADDR_C45) + return -EOPNOTSUPP; + return sja1105_xfer_u32(priv, SPI_WRITE, regs->mdio_100base_tx + reg, &tmp, NULL); } --- linux-5.19.0.orig/drivers/net/dsa/xrs700x/xrs700x.c +++ linux-5.19.0/drivers/net/dsa/xrs700x/xrs700x.c @@ -109,6 +109,7 @@ { struct xrs700x_port *p = &priv->ports[port]; struct rtnl_link_stats64 stats; + unsigned long flags; int i; memset(&stats, 0, sizeof(stats)); @@ -138,9 +139,9 @@ */ stats.rx_packets += stats.multicast; - u64_stats_update_begin(&p->syncp); + flags = u64_stats_update_begin_irqsave(&p->syncp); p->stats64 = stats; - u64_stats_update_end(&p->syncp); + u64_stats_update_end_irqrestore(&p->syncp, flags); mutex_unlock(&p->mib_mutex); } --- linux-5.19.0.orig/drivers/net/ethernet/aeroflex/greth.c +++ linux-5.19.0/drivers/net/ethernet/aeroflex/greth.c @@ -258,6 +258,7 @@ if (dma_mapping_error(greth->dev, dma_addr)) { if (netif_msg_ifup(greth)) dev_err(greth->dev, "Could not create initial DMA mapping\n"); + dev_kfree_skb(skb); goto cleanup; } greth->rx_skbuff[i] = skb; --- linux-5.19.0.orig/drivers/net/ethernet/amazon/ena/ena_com.h +++ linux-5.19.0/drivers/net/ethernet/amazon/ena/ena_com.h @@ -46,7 +46,7 @@ /*****************************************************************************/ /* ENA adaptive interrupt moderation settings */ -#define ENA_INTR_INITIAL_TX_INTERVAL_USECS 64 +#define ENA_INTR_INITIAL_TX_INTERVAL_USECS 0 #define ENA_INTR_INITIAL_RX_INTERVAL_USECS 0 #define ENA_DEFAULT_INTR_DELAY_RESOLUTION 1 --- linux-5.19.0.orig/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ linux-5.19.0/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -4545,13 +4545,19 @@ static int __init ena_init(void) { + int ret; + ena_wq = create_singlethread_workqueue(DRV_MODULE_NAME); if (!ena_wq) { pr_err("Failed to create workqueue\n"); return -ENOMEM; } - return pci_register_driver(&ena_pci_driver); + ret = pci_register_driver(&ena_pci_driver); + if (ret) + destroy_workqueue(ena_wq); + + return ret; } static void __exit ena_cleanup(void) --- linux-5.19.0.orig/drivers/net/ethernet/amd/atarilance.c +++ linux-5.19.0/drivers/net/ethernet/amd/atarilance.c @@ -824,7 +824,7 @@ lp->memcpy_f( PKTBUF_ADDR(head), (void *)skb->data, skb->len ); head->flag = TMD1_OWN_CHIP | TMD1_ENP | TMD1_STP; dev->stats.tx_bytes += skb->len; - dev_kfree_skb( skb ); + dev_consume_skb_irq(skb); lp->cur_tx++; while( lp->cur_tx >= TX_RING_SIZE && lp->dirty_tx >= TX_RING_SIZE ) { lp->cur_tx -= TX_RING_SIZE; --- linux-5.19.0.orig/drivers/net/ethernet/amd/lance.c +++ linux-5.19.0/drivers/net/ethernet/amd/lance.c @@ -1001,7 +1001,7 @@ skb_copy_from_linear_data(skb, &lp->tx_bounce_buffs[entry], skb->len); lp->tx_ring[entry].base = ((u32)isa_virt_to_bus((lp->tx_bounce_buffs + entry)) & 0xffffff) | 0x83000000; - dev_kfree_skb(skb); + dev_consume_skb_irq(skb); } else { lp->tx_skbuff[entry] = skb; lp->tx_ring[entry].base = ((u32)isa_virt_to_bus(skb->data) & 0xffffff) | 0x83000000; --- linux-5.19.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-pci.c +++ linux-5.19.0/drivers/net/ethernet/amd/xgbe/xgbe-pci.c @@ -285,6 +285,9 @@ /* Yellow Carp devices do not need cdr workaround */ pdata->vdata->an_cdr_workaround = 0; + + /* Yellow Carp devices do not need rrc */ + pdata->vdata->enable_rrc = 0; } else { pdata->xpcs_window_def_reg = PCS_V2_WINDOW_DEF; pdata->xpcs_window_sel_reg = PCS_V2_WINDOW_SELECT; @@ -483,6 +486,7 @@ .tx_desc_prefetch = 5, .rx_desc_prefetch = 5, .an_cdr_workaround = 1, + .enable_rrc = 1, }; static struct xgbe_version_data xgbe_v2b = { @@ -498,6 +502,7 @@ .tx_desc_prefetch = 5, .rx_desc_prefetch = 5, .an_cdr_workaround = 1, + .enable_rrc = 1, }; static const struct pci_device_id xgbe_pci_table[] = { --- linux-5.19.0.orig/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c +++ linux-5.19.0/drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c @@ -189,6 +189,7 @@ XGBE_SFP_CABLE_UNKNOWN = 0, XGBE_SFP_CABLE_ACTIVE, XGBE_SFP_CABLE_PASSIVE, + XGBE_SFP_CABLE_FIBER, }; enum xgbe_sfp_base { @@ -236,9 +237,7 @@ #define XGBE_SFP_BASE_BR 12 #define XGBE_SFP_BASE_BR_1GBE_MIN 0x0a -#define XGBE_SFP_BASE_BR_1GBE_MAX 0x0d #define XGBE_SFP_BASE_BR_10GBE_MIN 0x64 -#define XGBE_SFP_BASE_BR_10GBE_MAX 0x68 #define XGBE_SFP_BASE_CU_CABLE_LEN 18 @@ -284,6 +283,8 @@ #define XGBE_BEL_FUSE_VENDOR "BEL-FUSE " #define XGBE_BEL_FUSE_PARTNO "1GBT-SFP06 " +#define XGBE_MOLEX_VENDOR "Molex Inc. " + struct xgbe_sfp_ascii { union { char vendor[XGBE_SFP_BASE_VENDOR_NAME_LEN + 1]; @@ -823,25 +824,22 @@ static bool xgbe_phy_sfp_bit_rate(struct xgbe_sfp_eeprom *sfp_eeprom, enum xgbe_sfp_speed sfp_speed) { - u8 *sfp_base, min, max; + u8 *sfp_base, min; sfp_base = sfp_eeprom->base; switch (sfp_speed) { case XGBE_SFP_SPEED_1000: min = XGBE_SFP_BASE_BR_1GBE_MIN; - max = XGBE_SFP_BASE_BR_1GBE_MAX; break; case XGBE_SFP_SPEED_10000: min = XGBE_SFP_BASE_BR_10GBE_MIN; - max = XGBE_SFP_BASE_BR_10GBE_MAX; break; default: return false; } - return ((sfp_base[XGBE_SFP_BASE_BR] >= min) && - (sfp_base[XGBE_SFP_BASE_BR] <= max)); + return sfp_base[XGBE_SFP_BASE_BR] >= min; } static void xgbe_phy_free_phy_device(struct xgbe_prv_data *pdata) @@ -1142,16 +1140,21 @@ phy_data->sfp_tx_fault = xgbe_phy_check_sfp_tx_fault(phy_data); phy_data->sfp_rx_los = xgbe_phy_check_sfp_rx_los(phy_data); - /* Assume ACTIVE cable unless told it is PASSIVE */ + /* Assume FIBER cable unless told otherwise */ if (sfp_base[XGBE_SFP_BASE_CABLE] & XGBE_SFP_BASE_CABLE_PASSIVE) { phy_data->sfp_cable = XGBE_SFP_CABLE_PASSIVE; phy_data->sfp_cable_len = sfp_base[XGBE_SFP_BASE_CU_CABLE_LEN]; - } else { + } else if (sfp_base[XGBE_SFP_BASE_CABLE] & XGBE_SFP_BASE_CABLE_ACTIVE) { phy_data->sfp_cable = XGBE_SFP_CABLE_ACTIVE; + } else { + phy_data->sfp_cable = XGBE_SFP_CABLE_FIBER; } /* Determine the type of SFP */ - if (sfp_base[XGBE_SFP_BASE_10GBE_CC] & XGBE_SFP_BASE_10GBE_CC_SR) + if (phy_data->sfp_cable != XGBE_SFP_CABLE_FIBER && + xgbe_phy_sfp_bit_rate(sfp_eeprom, XGBE_SFP_SPEED_10000)) + phy_data->sfp_base = XGBE_SFP_BASE_10000_CR; + else if (sfp_base[XGBE_SFP_BASE_10GBE_CC] & XGBE_SFP_BASE_10GBE_CC_SR) phy_data->sfp_base = XGBE_SFP_BASE_10000_SR; else if (sfp_base[XGBE_SFP_BASE_10GBE_CC] & XGBE_SFP_BASE_10GBE_CC_LR) phy_data->sfp_base = XGBE_SFP_BASE_10000_LR; @@ -1167,9 +1170,6 @@ phy_data->sfp_base = XGBE_SFP_BASE_1000_CX; else if (sfp_base[XGBE_SFP_BASE_1GBE_CC] & XGBE_SFP_BASE_1GBE_CC_T) phy_data->sfp_base = XGBE_SFP_BASE_1000_T; - else if ((phy_data->sfp_cable == XGBE_SFP_CABLE_PASSIVE) && - xgbe_phy_sfp_bit_rate(sfp_eeprom, XGBE_SFP_SPEED_10000)) - phy_data->sfp_base = XGBE_SFP_BASE_10000_CR; switch (phy_data->sfp_base) { case XGBE_SFP_BASE_1000_T: @@ -2640,7 +2640,7 @@ } /* No link, attempt a receiver reset cycle */ - if (phy_data->rrc_count++ > XGBE_RRC_FREQUENCY) { + if (pdata->vdata->enable_rrc && phy_data->rrc_count++ > XGBE_RRC_FREQUENCY) { phy_data->rrc_count = 0; xgbe_phy_rrc(pdata); } --- linux-5.19.0.orig/drivers/net/ethernet/amd/xgbe/xgbe.h +++ linux-5.19.0/drivers/net/ethernet/amd/xgbe/xgbe.h @@ -1013,6 +1013,7 @@ unsigned int tx_desc_prefetch; unsigned int rx_desc_prefetch; unsigned int an_cdr_workaround; + unsigned int enable_rrc; }; struct xgbe_prv_data { --- linux-5.19.0.orig/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ linux-5.19.0/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -1004,8 +1004,10 @@ xgene_enet_napi_enable(pdata); ret = xgene_enet_register_irq(ndev); - if (ret) + if (ret) { + xgene_enet_napi_disable(pdata); return ret; + } if (ndev->phydev) { phy_start(ndev->phydev); --- linux-5.19.0.orig/drivers/net/ethernet/apple/bmac.c +++ linux-5.19.0/drivers/net/ethernet/apple/bmac.c @@ -1510,7 +1510,7 @@ i = bp->tx_empty; ++dev->stats.tx_errors; if (i != bp->tx_fill) { - dev_kfree_skb(bp->tx_bufs[i]); + dev_kfree_skb_irq(bp->tx_bufs[i]); bp->tx_bufs[i] = NULL; if (++i >= N_TX_RING) i = 0; bp->tx_empty = i; --- linux-5.19.0.orig/drivers/net/ethernet/apple/mace.c +++ linux-5.19.0/drivers/net/ethernet/apple/mace.c @@ -846,7 +846,7 @@ if (mp->tx_bad_runt) { mp->tx_bad_runt = 0; } else if (i != mp->tx_fill) { - dev_kfree_skb(mp->tx_bufs[i]); + dev_kfree_skb_irq(mp->tx_bufs[i]); if (++i >= N_TX_RING) i = 0; mp->tx_empty = i; --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_ethtool.c @@ -13,6 +13,7 @@ #include "aq_ptp.h" #include "aq_filters.h" #include "aq_macsec.h" +#include "aq_main.h" #include @@ -858,7 +859,7 @@ if (netif_running(ndev)) { ndev_running = true; - dev_close(ndev); + aq_ndev_close(ndev); } cfg->rxds = max(ring->rx_pending, hw_caps->rxds_min); @@ -874,7 +875,7 @@ goto err_exit; if (ndev_running) - err = dev_open(ndev, NULL); + err = aq_ndev_open(ndev); err_exit: return err; --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_macsec.c @@ -585,6 +585,7 @@ ret = aq_mss_set_egress_sakey_record(hw, &key_rec, sa_idx); + memzero_explicit(&key_rec, sizeof(key_rec)); return ret; } @@ -932,6 +933,7 @@ ret = aq_mss_set_ingress_sakey_record(hw, &sa_key_record, sa_idx); + memzero_explicit(&sa_key_record, sizeof(sa_key_record)); return ret; } @@ -1451,26 +1453,57 @@ egress_sa_threshold_expired); } +#define AQ_LOCKED_MDO_DEF(mdo) \ +static int aq_locked_mdo_##mdo(struct macsec_context *ctx) \ +{ \ + struct aq_nic_s *nic = netdev_priv(ctx->netdev); \ + int ret; \ + mutex_lock(&nic->macsec_mutex); \ + ret = aq_mdo_##mdo(ctx); \ + mutex_unlock(&nic->macsec_mutex); \ + return ret; \ +} + +AQ_LOCKED_MDO_DEF(dev_open) +AQ_LOCKED_MDO_DEF(dev_stop) +AQ_LOCKED_MDO_DEF(add_secy) +AQ_LOCKED_MDO_DEF(upd_secy) +AQ_LOCKED_MDO_DEF(del_secy) +AQ_LOCKED_MDO_DEF(add_rxsc) +AQ_LOCKED_MDO_DEF(upd_rxsc) +AQ_LOCKED_MDO_DEF(del_rxsc) +AQ_LOCKED_MDO_DEF(add_rxsa) +AQ_LOCKED_MDO_DEF(upd_rxsa) +AQ_LOCKED_MDO_DEF(del_rxsa) +AQ_LOCKED_MDO_DEF(add_txsa) +AQ_LOCKED_MDO_DEF(upd_txsa) +AQ_LOCKED_MDO_DEF(del_txsa) +AQ_LOCKED_MDO_DEF(get_dev_stats) +AQ_LOCKED_MDO_DEF(get_tx_sc_stats) +AQ_LOCKED_MDO_DEF(get_tx_sa_stats) +AQ_LOCKED_MDO_DEF(get_rx_sc_stats) +AQ_LOCKED_MDO_DEF(get_rx_sa_stats) + const struct macsec_ops aq_macsec_ops = { - .mdo_dev_open = aq_mdo_dev_open, - .mdo_dev_stop = aq_mdo_dev_stop, - .mdo_add_secy = aq_mdo_add_secy, - .mdo_upd_secy = aq_mdo_upd_secy, - .mdo_del_secy = aq_mdo_del_secy, - .mdo_add_rxsc = aq_mdo_add_rxsc, - .mdo_upd_rxsc = aq_mdo_upd_rxsc, - .mdo_del_rxsc = aq_mdo_del_rxsc, - .mdo_add_rxsa = aq_mdo_add_rxsa, - .mdo_upd_rxsa = aq_mdo_upd_rxsa, - .mdo_del_rxsa = aq_mdo_del_rxsa, - .mdo_add_txsa = aq_mdo_add_txsa, - .mdo_upd_txsa = aq_mdo_upd_txsa, - .mdo_del_txsa = aq_mdo_del_txsa, - .mdo_get_dev_stats = aq_mdo_get_dev_stats, - .mdo_get_tx_sc_stats = aq_mdo_get_tx_sc_stats, - .mdo_get_tx_sa_stats = aq_mdo_get_tx_sa_stats, - .mdo_get_rx_sc_stats = aq_mdo_get_rx_sc_stats, - .mdo_get_rx_sa_stats = aq_mdo_get_rx_sa_stats, + .mdo_dev_open = aq_locked_mdo_dev_open, + .mdo_dev_stop = aq_locked_mdo_dev_stop, + .mdo_add_secy = aq_locked_mdo_add_secy, + .mdo_upd_secy = aq_locked_mdo_upd_secy, + .mdo_del_secy = aq_locked_mdo_del_secy, + .mdo_add_rxsc = aq_locked_mdo_add_rxsc, + .mdo_upd_rxsc = aq_locked_mdo_upd_rxsc, + .mdo_del_rxsc = aq_locked_mdo_del_rxsc, + .mdo_add_rxsa = aq_locked_mdo_add_rxsa, + .mdo_upd_rxsa = aq_locked_mdo_upd_rxsa, + .mdo_del_rxsa = aq_locked_mdo_del_rxsa, + .mdo_add_txsa = aq_locked_mdo_add_txsa, + .mdo_upd_txsa = aq_locked_mdo_upd_txsa, + .mdo_del_txsa = aq_locked_mdo_del_txsa, + .mdo_get_dev_stats = aq_locked_mdo_get_dev_stats, + .mdo_get_tx_sc_stats = aq_locked_mdo_get_tx_sc_stats, + .mdo_get_tx_sa_stats = aq_locked_mdo_get_tx_sa_stats, + .mdo_get_rx_sc_stats = aq_locked_mdo_get_rx_sc_stats, + .mdo_get_rx_sa_stats = aq_locked_mdo_get_rx_sa_stats, }; int aq_macsec_init(struct aq_nic_s *nic) @@ -1492,6 +1525,7 @@ nic->ndev->features |= NETIF_F_HW_MACSEC; nic->ndev->macsec_ops = &aq_macsec_ops; + mutex_init(&nic->macsec_mutex); return 0; } @@ -1515,7 +1549,7 @@ if (!nic->macsec_cfg) return 0; - rtnl_lock(); + mutex_lock(&nic->macsec_mutex); if (nic->aq_fw_ops->send_macsec_req) { struct macsec_cfg_request cfg = { 0 }; @@ -1564,7 +1598,7 @@ ret = aq_apply_macsec_cfg(nic); unlock: - rtnl_unlock(); + mutex_unlock(&nic->macsec_mutex); return ret; } @@ -1576,9 +1610,9 @@ if (!netif_carrier_ok(nic->ndev)) return; - rtnl_lock(); + mutex_lock(&nic->macsec_mutex); aq_check_txsa_expiration(nic); - rtnl_unlock(); + mutex_unlock(&nic->macsec_mutex); } int aq_macsec_rx_sa_cnt(struct aq_nic_s *nic) @@ -1589,21 +1623,30 @@ if (!cfg) return 0; + mutex_lock(&nic->macsec_mutex); + for (i = 0; i < AQ_MACSEC_MAX_SC; i++) { if (!test_bit(i, &cfg->rxsc_idx_busy)) continue; cnt += hweight_long(cfg->aq_rxsc[i].rx_sa_idx_busy); } + mutex_unlock(&nic->macsec_mutex); return cnt; } int aq_macsec_tx_sc_cnt(struct aq_nic_s *nic) { + int cnt; + if (!nic->macsec_cfg) return 0; - return hweight_long(nic->macsec_cfg->txsc_idx_busy); + mutex_lock(&nic->macsec_mutex); + cnt = hweight_long(nic->macsec_cfg->txsc_idx_busy); + mutex_unlock(&nic->macsec_mutex); + + return cnt; } int aq_macsec_tx_sa_cnt(struct aq_nic_s *nic) @@ -1614,12 +1657,15 @@ if (!cfg) return 0; + mutex_lock(&nic->macsec_mutex); + for (i = 0; i < AQ_MACSEC_MAX_SC; i++) { if (!test_bit(i, &cfg->txsc_idx_busy)) continue; cnt += hweight_long(cfg->aq_txsc[i].tx_sa_idx_busy); } + mutex_unlock(&nic->macsec_mutex); return cnt; } @@ -1691,6 +1737,8 @@ if (!cfg) return data; + mutex_lock(&nic->macsec_mutex); + aq_macsec_update_stats(nic); common_stats = &cfg->stats; @@ -1773,5 +1821,7 @@ data += i; + mutex_unlock(&nic->macsec_mutex); + return data; } --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_main.c +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_main.c @@ -58,7 +58,7 @@ return ndev; } -static int aq_ndev_open(struct net_device *ndev) +int aq_ndev_open(struct net_device *ndev) { struct aq_nic_s *aq_nic = netdev_priv(ndev); int err = 0; @@ -88,17 +88,14 @@ return err; } -static int aq_ndev_close(struct net_device *ndev) +int aq_ndev_close(struct net_device *ndev) { struct aq_nic_s *aq_nic = netdev_priv(ndev); int err = 0; err = aq_nic_stop(aq_nic); - if (err < 0) - goto err_exit; aq_nic_deinit(aq_nic, true); -err_exit: return err; } --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_main.h +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_main.h @@ -16,5 +16,7 @@ void aq_ndev_schedule_work(struct work_struct *work); struct net_device *aq_ndev_alloc(void); +int aq_ndev_open(struct net_device *ndev); +int aq_ndev_close(struct net_device *ndev); #endif /* AQ_MAIN_H */ --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_nic.c +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_nic.c @@ -265,12 +265,10 @@ static void aq_nic_polling_timer_cb(struct timer_list *t) { struct aq_nic_s *self = from_timer(self, t, polling_timer); - struct aq_vec_s *aq_vec = NULL; unsigned int i = 0U; - for (i = 0U, aq_vec = self->aq_vec[0]; - self->aq_vecs > i; ++i, aq_vec = self->aq_vec[i]) - aq_vec_isr(i, (void *)aq_vec); + for (i = 0U; self->aq_vecs > i; ++i) + aq_vec_isr(i, (void *)self->aq_vec[i]); mod_timer(&self->polling_timer, jiffies + AQ_CFG_POLLING_TIMER_INTERVAL); @@ -1014,7 +1012,6 @@ u64 *aq_nic_get_stats(struct aq_nic_s *self, u64 *data) { - struct aq_vec_s *aq_vec = NULL; struct aq_stats_s *stats; unsigned int count = 0U; unsigned int i = 0U; @@ -1064,11 +1061,11 @@ data += i; for (tc = 0U; tc < self->aq_nic_cfg.tcs; tc++) { - for (i = 0U, aq_vec = self->aq_vec[0]; - aq_vec && self->aq_vecs > i; - ++i, aq_vec = self->aq_vec[i]) { + for (i = 0U; self->aq_vecs > i; ++i) { + if (!self->aq_vec[i]) + break; data += count; - count = aq_vec_get_sw_stats(aq_vec, tc, data); + count = aq_vec_get_sw_stats(self->aq_vec[i], tc, data); } } @@ -1382,7 +1379,6 @@ int aq_nic_stop(struct aq_nic_s *self) { - struct aq_vec_s *aq_vec = NULL; unsigned int i = 0U; netif_tx_disable(self->ndev); @@ -1400,9 +1396,8 @@ aq_ptp_irq_free(self); - for (i = 0U, aq_vec = self->aq_vec[0]; - self->aq_vecs > i; ++i, aq_vec = self->aq_vec[i]) - aq_vec_stop(aq_vec); + for (i = 0U; self->aq_vecs > i; ++i) + aq_vec_stop(self->aq_vec[i]); aq_ptp_ring_stop(self); --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/aq_nic.h +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/aq_nic.h @@ -157,6 +157,8 @@ struct mutex fwreq_mutex; #if IS_ENABLED(CONFIG_MACSEC) struct aq_macsec_cfg *macsec_cfg; + /* mutex to protect data in macsec_cfg */ + struct mutex macsec_mutex; #endif /* PTP support */ struct aq_ptp_s *aq_ptp; --- linux-5.19.0.orig/drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c +++ linux-5.19.0/drivers/net/ethernet/aquantia/atlantic/macsec/macsec_api.c @@ -757,6 +757,7 @@ u16 table_index) { u16 packed_record[18]; + int ret; if (table_index >= NUMROWS_INGRESSSAKEYRECORD) return -EINVAL; @@ -789,9 +790,12 @@ packed_record[16] = rec->key_len & 0x3; - return set_raw_ingress_record(hw, packed_record, 18, 2, - ROWOFFSET_INGRESSSAKEYRECORD + - table_index); + ret = set_raw_ingress_record(hw, packed_record, 18, 2, + ROWOFFSET_INGRESSSAKEYRECORD + + table_index); + + memzero_explicit(packed_record, sizeof(packed_record)); + return ret; } int aq_mss_set_ingress_sakey_record(struct aq_hw_s *hw, @@ -1739,14 +1743,14 @@ ret = set_raw_egress_record(hw, packed_record, 8, 2, ROWOFFSET_EGRESSSAKEYRECORD + table_index); if (unlikely(ret)) - return ret; + goto clear_key; ret = set_raw_egress_record(hw, packed_record + 8, 8, 2, ROWOFFSET_EGRESSSAKEYRECORD + table_index - 32); - if (unlikely(ret)) - return ret; - return 0; +clear_key: + memzero_explicit(packed_record, sizeof(packed_record)); + return ret; } int aq_mss_set_egress_sakey_record(struct aq_hw_s *hw, --- linux-5.19.0.orig/drivers/net/ethernet/atheros/ag71xx.c +++ linux-5.19.0/drivers/net/ethernet/atheros/ag71xx.c @@ -946,7 +946,7 @@ return ETH_HLEN + VLAN_HLEN + mtu + ETH_FCS_LEN; } -static void ag71xx_hw_set_macaddr(struct ag71xx *ag, unsigned char *mac) +static void ag71xx_hw_set_macaddr(struct ag71xx *ag, const unsigned char *mac) { u32 t; @@ -1427,7 +1427,7 @@ if (ret) { netif_err(ag, link, ndev, "phylink_of_phy_connect filed with err: %i\n", ret); - goto err; + return ret; } max_frame_len = ag71xx_max_frame_len(ndev->mtu); @@ -1448,6 +1448,7 @@ err: ag71xx_rings_cleanup(ag); + phylink_disconnect_phy(ag->phylink); return ret; } --- linux-5.19.0.orig/drivers/net/ethernet/atheros/alx/main.c +++ linux-5.19.0/drivers/net/ethernet/atheros/alx/main.c @@ -1912,11 +1912,14 @@ if (!netif_running(alx->dev)) return 0; + + rtnl_lock(); netif_device_detach(alx->dev); mutex_lock(&alx->mtx); __alx_stop(alx); mutex_unlock(&alx->mtx); + rtnl_unlock(); return 0; } @@ -1927,6 +1930,7 @@ struct alx_hw *hw = &alx->hw; int err; + rtnl_lock(); mutex_lock(&alx->mtx); alx_reset_phy(hw); @@ -1943,6 +1947,7 @@ unlock: mutex_unlock(&alx->mtx); + rtnl_unlock(); return err; } --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/Kconfig +++ linux-5.19.0/drivers/net/ethernet/broadcom/Kconfig @@ -71,6 +71,7 @@ config BCMGENET tristate "Broadcom GENET internal MAC support" depends on HAS_IOMEM + depends on PTP_1588_CLOCK_OPTIONAL || !ARCH_BCM2835 select MII select PHYLIB select FIXED_PHY --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bcm4908_enet.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bcm4908_enet.c @@ -561,8 +561,6 @@ if (++ring->write_idx == ring->length - 1) ring->write_idx = 0; - enet->netdev->stats.tx_bytes += skb->len; - enet->netdev->stats.tx_packets++; return NETDEV_TX_OK; } @@ -635,6 +633,7 @@ struct bcm4908_enet_dma_ring_bd *buf_desc; struct bcm4908_enet_dma_ring_slot *slot; struct device *dev = enet->dev; + unsigned int bytes = 0; int handled = 0; while (handled < weight && tx_ring->read_idx != tx_ring->write_idx) { @@ -645,12 +644,17 @@ dma_unmap_single(dev, slot->dma_addr, slot->len, DMA_TO_DEVICE); dev_kfree_skb(slot->skb); - if (++tx_ring->read_idx == tx_ring->length) - tx_ring->read_idx = 0; handled++; + bytes += slot->len; + + if (++tx_ring->read_idx == tx_ring->length) + tx_ring->read_idx = 0; } + enet->netdev->stats.tx_packets += handled; + enet->netdev->stats.tx_bytes += bytes; + if (handled < weight) { napi_complete_done(napi, handled); bcm4908_enet_dma_ring_intrs_on(enet, tx_ring); --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bcmsysport.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bcmsysport.c @@ -1991,6 +1991,9 @@ goto out_clk_disable; } + /* Indicate that the MAC is responsible for PHY PM */ + phydev->mac_managed_pm = true; + /* Reset house keeping link status */ priv->old_duplex = -1; priv->old_link = -1; --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bgmac.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bgmac.c @@ -189,8 +189,8 @@ } slot->skb = skb; - ring->end += nr_frags + 1; netdev_sent_queue(net_dev, skb->len); + ring->end += nr_frags + 1; wmb(); @@ -1568,7 +1568,6 @@ phy_disconnect(bgmac->net_dev->phydev); netif_napi_del(&bgmac->napi); bgmac_dma_free(bgmac); - free_netdev(bgmac->net_dev); } EXPORT_SYMBOL_GPL(bgmac_enet_remove); --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -789,6 +789,7 @@ BNX2X_ERR("skb_put is about to fail... pad %d len %d rx_buf_size %d\n", pad, len, fp->rx_buf_size); bnx2x_panic(); + bnx2x_frag_free(fp, new_data); return; } #endif --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sriov.c @@ -795,16 +795,20 @@ static u8 bnx2x_vf_is_pcie_pending(struct bnx2x *bp, u8 abs_vfid) { - struct pci_dev *dev; struct bnx2x_virtf *vf = bnx2x_vf_by_abs_fid(bp, abs_vfid); + struct pci_dev *dev; + bool pending; if (!vf) return false; dev = pci_get_domain_bus_and_slot(vf->domain, vf->bus, vf->devfn); - if (dev) - return bnx2x_is_pcie_pending(dev); - return false; + if (!dev) + return false; + pending = bnx2x_is_pcie_pending(dev); + pci_dev_put(dev); + + return pending; } int bnx2x_vf_flr_clnup_epilog(struct bnx2x *bp, u8 abs_vfid) --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -662,7 +662,6 @@ for (i = 0; i < nr_pkts; i++) { struct bnxt_sw_tx_bd *tx_buf; - bool compl_deferred = false; struct sk_buff *skb; int j, last; @@ -671,6 +670,8 @@ skb = tx_buf->skb; tx_buf->skb = NULL; + tx_bytes += skb->len; + if (tx_buf->is_push) { tx_buf->is_push = 0; goto next_tx_int; @@ -691,8 +692,9 @@ } if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_IN_PROGRESS)) { if (bp->flags & BNXT_FLAG_CHIP_P5) { + /* PTP worker takes ownership of the skb */ if (!bnxt_get_tx_ts_p5(bp, skb)) - compl_deferred = true; + skb = NULL; else atomic_inc(&bp->ptp_cfg->tx_avail); } @@ -701,9 +703,7 @@ next_tx_int: cons = NEXT_TX(cons); - tx_bytes += skb->len; - if (!compl_deferred) - dev_kfree_skb_any(skb); + dev_kfree_skb_any(skb); } netdev_tx_completed_queue(txq, nr_pkts, tx_bytes); @@ -9988,17 +9988,12 @@ return -ENODEV; } -int bnxt_cancel_reservations(struct bnxt *bp, bool fw_reset) +static void bnxt_clear_reservations(struct bnxt *bp, bool fw_reset) { struct bnxt_hw_resc *hw_resc = &bp->hw_resc; - int rc; if (!BNXT_NEW_RM(bp)) - return 0; /* no resource reservations required */ - - rc = bnxt_hwrm_func_resc_qcaps(bp, true); - if (rc) - netdev_err(bp->dev, "resc_qcaps failed\n"); + return; /* no resource reservations required */ hw_resc->resv_cp_rings = 0; hw_resc->resv_stat_ctxs = 0; @@ -10011,6 +10006,20 @@ bp->tx_nr_rings = 0; bp->rx_nr_rings = 0; } +} + +int bnxt_cancel_reservations(struct bnxt *bp, bool fw_reset) +{ + int rc; + + if (!BNXT_NEW_RM(bp)) + return 0; /* no resource reservations required */ + + rc = bnxt_hwrm_func_resc_qcaps(bp, true); + if (rc) + netdev_err(bp->dev, "resc_qcaps failed\n"); + + bnxt_clear_reservations(bp, fw_reset); return rc; } @@ -11183,10 +11192,7 @@ if ((features & NETIF_F_NTUPLE) && !bnxt_rfs_capable(bp)) features &= ~NETIF_F_NTUPLE; - if (bp->flags & BNXT_FLAG_NO_AGG_RINGS) - features &= ~(NETIF_F_LRO | NETIF_F_GRO_HW); - - if (!(bp->flags & BNXT_FLAG_TPA)) + if ((bp->flags & BNXT_FLAG_NO_AGG_RINGS) || bp->xdp_prog) features &= ~(NETIF_F_LRO | NETIF_F_GRO_HW); if (!(features & NETIF_F_GRO)) @@ -12902,8 +12908,8 @@ rcu_read_lock(); hlist_for_each_entry_rcu(fltr, head, hash) { if (bnxt_fltr_match(fltr, new_fltr)) { + rc = fltr->sw_id; rcu_read_unlock(); - rc = 0; goto err_free; } } @@ -13921,7 +13927,9 @@ pci_ers_result_t result = PCI_ERS_RESULT_DISCONNECT; struct net_device *netdev = pci_get_drvdata(pdev); struct bnxt *bp = netdev_priv(netdev); - int err = 0, off; + int retry = 0; + int err = 0; + int off; netdev_info(bp->dev, "PCI Slot Reset\n"); @@ -13949,11 +13957,36 @@ pci_restore_state(pdev); pci_save_state(pdev); + bnxt_inv_fw_health_reg(bp); + bnxt_try_map_fw_health_reg(bp); + + /* In some PCIe AER scenarios, firmware may take up to + * 10 seconds to become ready in the worst case. + */ + do { + err = bnxt_try_recover_fw(bp); + if (!err) + break; + retry++; + } while (retry < BNXT_FW_SLOT_RESET_RETRY); + + if (err) { + dev_err(&pdev->dev, "Firmware not ready\n"); + goto reset_exit; + } + err = bnxt_hwrm_func_reset(bp); if (!err) result = PCI_ERS_RESULT_RECOVERED; + + bnxt_ulp_irq_stop(bp); + bnxt_clear_int_mode(bp); + err = bnxt_init_int_mode(bp); + bnxt_ulp_irq_restart(bp, err); } +reset_exit: + bnxt_clear_reservations(bp, true); rtnl_unlock(); return result; @@ -14009,8 +14042,16 @@ static int __init bnxt_init(void) { + int err; + bnxt_debug_init(); - return pci_register_driver(&bnxt_pci_driver); + err = pci_register_driver(&bnxt_pci_driver); + if (err) { + bnxt_debug_exit(); + return err; + } + + return 0; } static void __exit bnxt_exit(void) --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt.h +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt.h @@ -1621,6 +1621,7 @@ #define BNXT_FW_RETRY 5 #define BNXT_FW_IF_RETRY 10 +#define BNXT_FW_SLOT_RESET_RETRY 4 enum board_idx { BCM57301, @@ -2130,6 +2131,7 @@ #define BNXT_DUMP_CRASH 1 struct bpf_prog *xdp_prog; + u8 xdp_has_frags; struct bnxt_ptp_cfg *ptp_cfg; u8 ptp_all_rx_tstamp; --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c @@ -1246,6 +1246,7 @@ if (rc) goto err_dl_port_unreg; + devlink_set_features(dl, DEVLINK_F_RELOAD); out: devlink_register(dl); return 0; --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -162,7 +162,7 @@ } reset_coalesce: - if (netif_running(dev)) { + if (test_bit(BNXT_STATE_OPEN, &bp->state)) { if (update_stats) { rc = bnxt_close_nic(bp, true, false); if (!rc) --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_hwrm.c @@ -476,7 +476,8 @@ memset(ctx->resp, 0, PAGE_SIZE); req_type = le16_to_cpu(ctx->req->req_type); - if (BNXT_NO_FW_ACCESS(bp) && req_type != HWRM_FUNC_RESET) { + if (BNXT_NO_FW_ACCESS(bp) && + (req_type != HWRM_FUNC_RESET && req_type != HWRM_VER_GET)) { netdev_dbg(bp->dev, "hwrm req_type 0x%x skipped, FW channel down\n", req_type); goto exit; --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c @@ -317,9 +317,9 @@ if (!(bp->fw_cap & BNXT_FW_CAP_RX_ALL_PKT_TS) && (ptp->tstamp_filters & (PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_ENABLE | - PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE))) { + PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_DISABLE))) { ptp->tstamp_filters &= ~(PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_ENABLE | - PORT_MAC_CFG_REQ_FLAGS_PTP_RX_TS_CAPTURE_DISABLE); + PORT_MAC_CFG_REQ_FLAGS_ALL_RX_TS_CAPTURE_DISABLE); netdev_warn(bp->dev, "Unsupported FW for all RX pkts timestamp filter\n"); } @@ -505,9 +505,13 @@ ptp->tstamp_filters = flags; if (netif_running(bp->dev)) { - rc = bnxt_close_nic(bp, false, false); - if (!rc) - rc = bnxt_open_nic(bp, false, false); + if (ptp->rx_filter == HWTSTAMP_FILTER_ALL) { + rc = bnxt_close_nic(bp, false, false); + if (!rc) + rc = bnxt_open_nic(bp, false, false); + } else { + bnxt_ptp_cfg_tstamp_filters(bp); + } if (!rc && !ptp->tstamp_filters) rc = -EIO; } --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c @@ -623,7 +623,7 @@ hw_resc->max_stat_ctxs -= le16_to_cpu(req->min_stat_ctx) * n; hw_resc->max_vnics -= le16_to_cpu(req->min_vnics) * n; if (bp->flags & BNXT_FLAG_CHIP_P5) - hw_resc->max_irqs -= vf_msix * n; + hw_resc->max_nqs -= vf_msix; rc = pf->active_vfs; } --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c @@ -181,6 +181,7 @@ struct xdp_buff *xdp) { struct bnxt_sw_rx_bd *rx_buf; + u32 buflen = PAGE_SIZE; struct pci_dev *pdev; dma_addr_t mapping; u32 offset; @@ -192,7 +193,10 @@ mapping = rx_buf->mapping - bp->rx_dma_offset; dma_sync_single_for_cpu(&pdev->dev, mapping + offset, *len, bp->rx_dir); - xdp_init_buff(xdp, BNXT_PAGE_MODE_BUF_SIZE + offset, &rxr->xdp_rxq); + if (bp->xdp_has_frags) + buflen = BNXT_PAGE_MODE_BUF_SIZE + offset; + + xdp_init_buff(xdp, buflen, &rxr->xdp_rxq); xdp_prepare_buff(xdp, *data_ptr - offset, offset, *len, false); } @@ -397,8 +401,10 @@ netdev_warn(dev, "ethtool rx/tx channels must be combined to support XDP.\n"); return -EOPNOTSUPP; } - if (prog) + if (prog) { tx_xdp = bp->rx_nr_rings; + bp->xdp_has_frags = prog->aux->xdp_has_frags; + } tc = netdev_get_num_tc(dev); if (!tc) --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -76,7 +76,7 @@ if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) __raw_writel(value, offset); else - writel_relaxed(value, offset); + writel(value, offset); } static inline u32 bcmgenet_readl(void __iomem *offset) @@ -84,7 +84,7 @@ if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) return __raw_readl(offset); else - return readl_relaxed(offset); + return readl(offset); } static inline void dmadesc_set_length_status(struct bcmgenet_priv *priv, --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/genet/bcmmii.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/genet/bcmmii.c @@ -393,6 +393,9 @@ if (priv->internal_phy && !GENET_IS_V5(priv)) dev->phydev->irq = PHY_MAC_INTERRUPT; + /* Indicate that the MAC is responsible for PHY PM */ + dev->phydev->mac_managed_pm = true; + return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/broadcom/tg3.c +++ linux-5.19.0/drivers/net/ethernet/broadcom/tg3.c @@ -18076,16 +18076,20 @@ struct net_device *dev = pci_get_drvdata(pdev); struct tg3 *tp = netdev_priv(dev); + tg3_reset_task_cancel(tp); + rtnl_lock(); + netif_device_detach(dev); if (netif_running(dev)) dev_close(dev); - if (system_state == SYSTEM_POWER_OFF) - tg3_power_down(tp); + tg3_power_down(tp); rtnl_unlock(); + + pci_disable_device(pdev); } /** --- linux-5.19.0.orig/drivers/net/ethernet/cadence/macb_main.c +++ linux-5.19.0/drivers/net/ethernet/cadence/macb_main.c @@ -805,6 +805,7 @@ bp->phylink_config.dev = &dev->dev; bp->phylink_config.type = PHYLINK_NETDEV; + bp->phylink_config.mac_managed_pm = true; if (bp->phy_interface == PHY_INTERFACE_MODE_SGMII) { bp->phylink_config.poll_fixed_state = true; @@ -5092,6 +5093,7 @@ if (!(bp->wol & MACB_WOL_ENABLED)) { rtnl_lock(); phylink_stop(bp->phylink); + phy_exit(bp->sgmii_phy); rtnl_unlock(); spin_lock_irqsave(&bp->lock, flags); macb_reset_hw(bp); @@ -5181,6 +5183,9 @@ macb_set_rx_mode(netdev); macb_restore_features(bp); rtnl_lock(); + if (!device_may_wakeup(&bp->dev->dev)) + phy_init(bp->sgmii_phy); + phylink_start(bp->phylink); rtnl_unlock(); --- linux-5.19.0.orig/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ linux-5.19.0/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -1799,13 +1799,10 @@ ifstate_set(lio, LIO_IFSTATE_RUNNING); - if (OCTEON_CN23XX_PF(oct)) { - if (!oct->msix_on) - if (setup_tx_poll_fn(netdev)) - return -1; - } else { - if (setup_tx_poll_fn(netdev)) - return -1; + if (!OCTEON_CN23XX_PF(oct) || !oct->msix_on) { + ret = setup_tx_poll_fn(netdev); + if (ret) + goto err_poll; } netif_tx_start_all_queues(netdev); @@ -1818,7 +1815,7 @@ /* tell Octeon to start forwarding packets to host */ ret = send_rx_ctrl_cmd(lio, 1); if (ret) - return ret; + goto err_rx_ctrl; /* start periodical statistics fetch */ INIT_DELAYED_WORK(&lio->stats_wk.work, lio_fetch_stats); @@ -1829,6 +1826,27 @@ dev_info(&oct->pci_dev->dev, "%s interface is opened\n", netdev->name); + return 0; + +err_rx_ctrl: + if (!OCTEON_CN23XX_PF(oct) || !oct->msix_on) + cleanup_tx_poll_fn(netdev); +err_poll: + if (lio->ptp_clock) { + ptp_clock_unregister(lio->ptp_clock); + lio->ptp_clock = NULL; + } + + if (oct->props[lio->ifidx].napi_enabled == 1) { + list_for_each_entry_safe(napi, n, &netdev->napi_list, dev_list) + napi_disable(napi); + + oct->props[lio->ifidx].napi_enabled = 0; + + if (OCTEON_CN23XX_PF(oct)) + oct->droq[0]->ops.poll_mode = 0; + } + return ret; } --- linux-5.19.0.orig/drivers/net/ethernet/cavium/thunder/nicvf_main.c +++ linux-5.19.0/drivers/net/ethernet/cavium/thunder/nicvf_main.c @@ -2240,7 +2240,7 @@ err = register_netdev(netdev); if (err) { dev_err(dev, "Failed to register netdevice\n"); - goto err_unregister_interrupts; + goto err_destroy_workqueue; } nic->msg_enable = debug; @@ -2249,6 +2249,8 @@ return 0; +err_destroy_workqueue: + destroy_workqueue(nic->nicvf_rx_mode_wq); err_unregister_interrupts: nicvf_unregister_interrupts(nic); err_free_netdev: --- linux-5.19.0.orig/drivers/net/ethernet/cavium/thunder/thunder_bgx.c +++ linux-5.19.0/drivers/net/ethernet/cavium/thunder/thunder_bgx.c @@ -1436,8 +1436,10 @@ return AE_OK; } - if (strncmp(string.pointer, bgx_sel, 4)) + if (strncmp(string.pointer, bgx_sel, 4)) { + kfree(string.pointer); return AE_OK; + } acpi_walk_namespace(ACPI_TYPE_DEVICE, handle, 1, bgx_acpi_register_phy, NULL, bgx, NULL); --- linux-5.19.0.orig/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c +++ linux-5.19.0/drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c @@ -1302,6 +1302,7 @@ if (ret < 0) { CH_ERR(adap, "failed to bind qsets, err %d\n", ret); t3_intr_disable(adap); + quiesce_rx(adap); free_irq_resources(adap); err = ret; goto out; --- linux-5.19.0.orig/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c +++ linux-5.19.0/drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.c @@ -14,6 +14,7 @@ #include "cudbg_entity.h" #include "cudbg_lib.h" #include "cudbg_zlib.h" +#include "cxgb4_tc_mqprio.h" static const u32 t6_tp_pio_array[][IREG_NUM_ELEM] = { {0x7e40, 0x7e44, 0x020, 28}, /* t6_tp_pio_regs_20_to_3b */ @@ -3458,7 +3459,7 @@ for (i = 0; i < utxq->ntxq; i++) QDESC_GET_TXQ(&utxq->uldtxq[i].q, cudbg_uld_txq_to_qtype(j), - out_unlock); + out_unlock_uld); } } @@ -3475,7 +3476,7 @@ for (i = 0; i < urxq->nrxq; i++) QDESC_GET_RXQ(&urxq->uldrxq[i].rspq, cudbg_uld_rxq_to_qtype(j), - out_unlock); + out_unlock_uld); } /* ULD FLQ */ @@ -3487,7 +3488,7 @@ for (i = 0; i < urxq->nrxq; i++) QDESC_GET_FLQ(&urxq->uldrxq[i].fl, cudbg_uld_flq_to_qtype(j), - out_unlock); + out_unlock_uld); } /* ULD CIQ */ @@ -3500,29 +3501,34 @@ for (i = 0; i < urxq->nciq; i++) QDESC_GET_RXQ(&urxq->uldrxq[base + i].rspq, cudbg_uld_ciq_to_qtype(j), - out_unlock); + out_unlock_uld); } } + mutex_unlock(&uld_mutex); + + if (!padap->tc_mqprio) + goto out; + mutex_lock(&padap->tc_mqprio->mqprio_mutex); /* ETHOFLD TXQ */ if (s->eohw_txq) for (i = 0; i < s->eoqsets; i++) QDESC_GET_TXQ(&s->eohw_txq[i].q, - CUDBG_QTYPE_ETHOFLD_TXQ, out); + CUDBG_QTYPE_ETHOFLD_TXQ, out_unlock_mqprio); /* ETHOFLD RXQ and FLQ */ if (s->eohw_rxq) { for (i = 0; i < s->eoqsets; i++) QDESC_GET_RXQ(&s->eohw_rxq[i].rspq, - CUDBG_QTYPE_ETHOFLD_RXQ, out); + CUDBG_QTYPE_ETHOFLD_RXQ, out_unlock_mqprio); for (i = 0; i < s->eoqsets; i++) QDESC_GET_FLQ(&s->eohw_rxq[i].fl, - CUDBG_QTYPE_ETHOFLD_FLQ, out); + CUDBG_QTYPE_ETHOFLD_FLQ, out_unlock_mqprio); } -out_unlock: - mutex_unlock(&uld_mutex); +out_unlock_mqprio: + mutex_unlock(&padap->tc_mqprio->mqprio_mutex); out: qdesc_info->qdesc_entry_size = sizeof(*qdesc_entry); @@ -3559,6 +3565,10 @@ #undef QDESC_GET return rc; + +out_unlock_uld: + mutex_unlock(&uld_mutex); + goto out; } int cudbg_collect_flash(struct cudbg_init *pdbg_init, --- linux-5.19.0.orig/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h +++ linux-5.19.0/drivers/net/ethernet/chelsio/cxgb4/t4_msg.h @@ -497,7 +497,7 @@ __be32 opt2; __be64 opt0; __be32 iss; - __be32 rsvd[3]; + __be32 rsvd; }; struct cpl_act_open_req { --- linux-5.19.0.orig/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c +++ linux-5.19.0/drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c @@ -858,7 +858,7 @@ */ err = t4vf_update_port_info(pi); if (err < 0) - return err; + goto err_unwind; /* * Note that this interface is up and start everything up ... --- linux-5.19.0.orig/drivers/net/ethernet/cortina/gemini.c +++ linux-5.19.0/drivers/net/ethernet/cortina/gemini.c @@ -1919,7 +1919,7 @@ /* Racing with RX NAPI */ do { - start = u64_stats_fetch_begin(&port->rx_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp); stats->rx_packets = port->stats.rx_packets; stats->rx_bytes = port->stats.rx_bytes; @@ -1931,11 +1931,11 @@ stats->rx_crc_errors = port->stats.rx_crc_errors; stats->rx_frame_errors = port->stats.rx_frame_errors; - } while (u64_stats_fetch_retry(&port->rx_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start)); /* Racing with MIB and TX completion interrupts */ do { - start = u64_stats_fetch_begin(&port->ir_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp); stats->tx_errors = port->stats.tx_errors; stats->tx_packets = port->stats.tx_packets; @@ -1945,15 +1945,15 @@ stats->rx_missed_errors = port->stats.rx_missed_errors; stats->rx_fifo_errors = port->stats.rx_fifo_errors; - } while (u64_stats_fetch_retry(&port->ir_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start)); /* Racing with hard_start_xmit */ do { - start = u64_stats_fetch_begin(&port->tx_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp); stats->tx_dropped = port->stats.tx_dropped; - } while (u64_stats_fetch_retry(&port->tx_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start)); stats->rx_dropped += stats->rx_missed_errors; } @@ -2031,18 +2031,18 @@ /* Racing with MIB interrupt */ do { p = values; - start = u64_stats_fetch_begin(&port->ir_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->ir_stats_syncp); for (i = 0; i < RX_STATS_NUM; i++) *p++ = port->hw_stats[i]; - } while (u64_stats_fetch_retry(&port->ir_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->ir_stats_syncp, start)); values = p; /* Racing with RX NAPI */ do { p = values; - start = u64_stats_fetch_begin(&port->rx_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->rx_stats_syncp); for (i = 0; i < RX_STATUS_NUM; i++) *p++ = port->rx_stats[i]; @@ -2050,13 +2050,13 @@ *p++ = port->rx_csum_stats[i]; *p++ = port->rx_napi_exits; - } while (u64_stats_fetch_retry(&port->rx_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->rx_stats_syncp, start)); values = p; /* Racing with TX start_xmit */ do { p = values; - start = u64_stats_fetch_begin(&port->tx_stats_syncp); + start = u64_stats_fetch_begin_irq(&port->tx_stats_syncp); for (i = 0; i < TX_MAX_FRAGS; i++) { *values++ = port->tx_frag_stats[i]; @@ -2065,7 +2065,7 @@ *values++ = port->tx_frags_linearized; *values++ = port->tx_hw_csummed; - } while (u64_stats_fetch_retry(&port->tx_stats_syncp, start)); + } while (u64_stats_fetch_retry_irq(&port->tx_stats_syncp, start)); } static int gmac_get_ksettings(struct net_device *netdev, --- linux-5.19.0.orig/drivers/net/ethernet/davicom/dm9051.c +++ linux-5.19.0/drivers/net/ethernet/davicom/dm9051.c @@ -798,8 +798,10 @@ } ret = dm9051_stop_mrcmd(db); - if (ret) + if (ret) { + dev_kfree_skb(skb); return ret; + } skb->protocol = eth_type_trans(skb, db->ndev); if (db->ndev->features & NETIF_F_RXCSUM) --- linux-5.19.0.orig/drivers/net/ethernet/dnet.c +++ linux-5.19.0/drivers/net/ethernet/dnet.c @@ -550,11 +550,11 @@ skb_tx_timestamp(skb); + spin_unlock_irqrestore(&bp->lock, flags); + /* free the buffer */ dev_kfree_skb(skb); - spin_unlock_irqrestore(&bp->lock, flags); - return NETDEV_TX_OK; } --- linux-5.19.0.orig/drivers/net/ethernet/engleder/tsnep_hw.h +++ linux-5.19.0/drivers/net/ethernet/engleder/tsnep_hw.h @@ -92,8 +92,7 @@ /* tsnep register */ #define TSNEP_INFO 0x0100 -#define TSNEP_INFO_RX_ASSIGN 0x00010000 -#define TSNEP_INFO_TX_TIME 0x00020000 +#define TSNEP_INFO_TX_TIME 0x00010000 #define TSNEP_CONTROL 0x0108 #define TSNEP_CONTROL_TX_RESET 0x00000001 #define TSNEP_CONTROL_TX_ENABLE 0x00000002 --- linux-5.19.0.orig/drivers/net/ethernet/engleder/tsnep_main.c +++ linux-5.19.0/drivers/net/ethernet/engleder/tsnep_main.c @@ -340,14 +340,14 @@ return 0; } -static void tsnep_tx_unmap(struct tsnep_tx *tx, int count) +static void tsnep_tx_unmap(struct tsnep_tx *tx, int index, int count) { struct device *dmadev = tx->adapter->dmadev; struct tsnep_tx_entry *entry; int i; for (i = 0; i < count; i++) { - entry = &tx->entry[(tx->read + i) % TSNEP_RING_SIZE]; + entry = &tx->entry[(index + i) % TSNEP_RING_SIZE]; if (entry->len) { if (i == 0) @@ -395,7 +395,7 @@ retval = tsnep_tx_map(skb, tx, count); if (retval != 0) { - tsnep_tx_unmap(tx, count); + tsnep_tx_unmap(tx, tx->write, count); dev_kfree_skb_any(entry->skb); entry->skb = NULL; @@ -464,7 +464,7 @@ if (skb_shinfo(entry->skb)->nr_frags > 0) count += skb_shinfo(entry->skb)->nr_frags; - tsnep_tx_unmap(tx, count); + tsnep_tx_unmap(tx, tx->read, count); if ((skb_shinfo(entry->skb)->tx_flags & SKBTX_IN_PROGRESS) && (__le32_to_cpu(entry->desc_wb->properties) & @@ -504,6 +504,27 @@ return (budget != 0); } +static bool tsnep_tx_pending(struct tsnep_tx *tx) +{ + unsigned long flags; + struct tsnep_tx_entry *entry; + bool pending = false; + + spin_lock_irqsave(&tx->lock, flags); + + if (tx->read != tx->write) { + entry = &tx->entry[tx->read]; + if ((__le32_to_cpu(entry->desc_wb->properties) & + TSNEP_TX_DESC_OWNER_MASK) == + (entry->properties & TSNEP_TX_DESC_OWNER_MASK)) + pending = true; + } + + spin_unlock_irqrestore(&tx->lock, flags); + + return pending; +} + static int tsnep_tx_open(struct tsnep_adapter *adapter, void __iomem *addr, struct tsnep_tx *tx) { @@ -751,6 +772,19 @@ return done; } +static bool tsnep_rx_pending(struct tsnep_rx *rx) +{ + struct tsnep_rx_entry *entry; + + entry = &rx->entry[rx->read]; + if ((__le32_to_cpu(entry->desc_wb->properties) & + TSNEP_DESC_OWNER_COUNTER_MASK) == + (entry->properties & TSNEP_DESC_OWNER_COUNTER_MASK)) + return true; + + return false; +} + static int tsnep_rx_open(struct tsnep_adapter *adapter, void __iomem *addr, struct tsnep_rx *rx) { @@ -795,6 +829,17 @@ tsnep_rx_ring_cleanup(rx); } +static bool tsnep_pending(struct tsnep_queue *queue) +{ + if (queue->tx && tsnep_tx_pending(queue->tx)) + return true; + + if (queue->rx && tsnep_rx_pending(queue->rx)) + return true; + + return false; +} + static int tsnep_poll(struct napi_struct *napi, int budget) { struct tsnep_queue *queue = container_of(napi, struct tsnep_queue, @@ -815,9 +860,19 @@ if (!complete) return budget; - if (likely(napi_complete_done(napi, done))) + if (likely(napi_complete_done(napi, done))) { tsnep_enable_irq(queue->adapter, queue->irq_mask); + /* reschedule if work is already pending, prevent rotten packets + * which are transmitted or received after polling but before + * interrupt enable + */ + if (tsnep_pending(queue)) { + tsnep_disable_irq(queue->adapter, queue->irq_mask); + napi_schedule(napi); + } + } + return min(done, budget - 1); } --- linux-5.19.0.orig/drivers/net/ethernet/faraday/ftmac100.h +++ linux-5.19.0/drivers/net/ethernet/faraday/ftmac100.h @@ -122,9 +122,9 @@ * Transmit descriptor, aligned to 16 bytes */ struct ftmac100_txdes { - unsigned int txdes0; - unsigned int txdes1; - unsigned int txdes2; /* TXBUF_BADR */ + __le32 txdes0; + __le32 txdes1; + __le32 txdes2; /* TXBUF_BADR */ unsigned int txdes3; /* not used by HW */ } __attribute__ ((aligned(16))); @@ -143,9 +143,9 @@ * Receive descriptor, aligned to 16 bytes */ struct ftmac100_rxdes { - unsigned int rxdes0; - unsigned int rxdes1; - unsigned int rxdes2; /* RXBUF_BADR */ + __le32 rxdes0; + __le32 rxdes1; + __le32 rxdes2; /* RXBUF_BADR */ unsigned int rxdes3; /* not used by HW */ } __attribute__ ((aligned(16))); --- linux-5.19.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c +++ linux-5.19.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c @@ -1660,8 +1660,8 @@ buf_array[i] = addr; /* tracing point */ - trace_dpaa2_eth_buf_seed(priv->net_dev, - page, DPAA2_ETH_RX_BUF_RAW_SIZE, + trace_dpaa2_eth_buf_seed(priv->net_dev, page_address(page), + DPAA2_ETH_RX_BUF_RAW_SIZE, addr, priv->rx_buf_size, bpid); } --- linux-5.19.0.orig/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c +++ linux-5.19.0/drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-flower.c @@ -132,6 +132,7 @@ DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, acl_entry_cfg->key_iova))) { dev_err(dev, "DMA mapping failed\n"); + kfree(cmd_buff); return -EFAULT; } @@ -142,6 +143,7 @@ DMA_TO_DEVICE); if (err) { dev_err(dev, "dpsw_acl_add_entry() failed %d\n", err); + kfree(cmd_buff); return err; } @@ -172,6 +174,7 @@ DMA_TO_DEVICE); if (unlikely(dma_mapping_error(dev, acl_entry_cfg->key_iova))) { dev_err(dev, "DMA mapping failed\n"); + kfree(cmd_buff); return -EFAULT; } @@ -182,6 +185,7 @@ DMA_TO_DEVICE); if (err) { dev_err(dev, "dpsw_acl_remove_entry() failed %d\n", err); + kfree(cmd_buff); return err; } --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/Makefile +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/Makefile @@ -9,7 +9,6 @@ obj-$(CONFIG_FSL_ENETC_VF) += fsl-enetc-vf.o fsl-enetc-vf-y := enetc_vf.o $(common-objs) -fsl-enetc-vf-$(CONFIG_FSL_ENETC_QOS) += enetc_qos.o obj-$(CONFIG_FSL_ENETC_IERB) += fsl-enetc-ierb.o fsl-enetc-ierb-y := enetc_ierb.o --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/enetc.c +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/enetc.c @@ -1489,23 +1489,6 @@ rx_ring->stats.xdp_drops++; } -static void enetc_xdp_free(struct enetc_bdr *rx_ring, int rx_ring_first, - int rx_ring_last) -{ - while (rx_ring_first != rx_ring_last) { - struct enetc_rx_swbd *rx_swbd = &rx_ring->rx_swbd[rx_ring_first]; - - if (rx_swbd->page) { - dma_unmap_page(rx_ring->dev, rx_swbd->dma, PAGE_SIZE, - rx_swbd->dir); - __free_page(rx_swbd->page); - rx_swbd->page = NULL; - } - enetc_bdr_idx_inc(rx_ring, &rx_ring_first); - } - rx_ring->stats.xdp_redirect_failures++; -} - static int enetc_clean_rx_ring_xdp(struct enetc_bdr *rx_ring, struct napi_struct *napi, int work_limit, struct bpf_prog *prog) @@ -1527,8 +1510,8 @@ int orig_i, orig_cleaned_cnt; struct xdp_buff xdp_buff; struct sk_buff *skb; - int tmp_orig_i, err; u32 bd_status; + int err; rxbd = enetc_rxbd(rx_ring, i); bd_status = le32_to_cpu(rxbd->r.lstatus); @@ -1615,18 +1598,16 @@ break; } - tmp_orig_i = orig_i; - - while (orig_i != i) { - enetc_flip_rx_buff(rx_ring, - &rx_ring->rx_swbd[orig_i]); - enetc_bdr_idx_inc(rx_ring, &orig_i); - } - err = xdp_do_redirect(rx_ring->ndev, &xdp_buff, prog); if (unlikely(err)) { - enetc_xdp_free(rx_ring, tmp_orig_i, i); + enetc_xdp_drop(rx_ring, orig_i, i); + rx_ring->stats.xdp_redirect_failures++; } else { + while (orig_i != i) { + enetc_flip_rx_buff(rx_ring, + &rx_ring->rx_swbd[orig_i]); + enetc_bdr_idx_inc(rx_ring, &orig_i); + } xdp_redirect_frm_cnt++; rx_ring->stats.xdp_redirect++; } @@ -2058,7 +2039,7 @@ /* enable Tx ints by setting pkt thr to 1 */ enetc_txbdr_wr(hw, idx, ENETC_TBICR0, ENETC_TBICR0_ICEN | 0x1); - tbmr = ENETC_TBMR_EN; + tbmr = ENETC_TBMR_EN | ENETC_TBMR_SET_PRIO(tx_ring->prio); if (tx_ring->ndev->features & NETIF_F_HW_VLAN_CTAG_TX) tbmr |= ENETC_TBMR_VIH; @@ -2090,7 +2071,12 @@ else enetc_rxbdr_wr(hw, idx, ENETC_RBBSR, ENETC_RXB_DMA_SIZE); + /* Also prepare the consumer index in case page allocation never + * succeeds. In that case, hardware will never advance producer index + * to match consumer index, and will drop all frames. + */ enetc_rxbdr_wr(hw, idx, ENETC_RBPIR, 0); + enetc_rxbdr_wr(hw, idx, ENETC_RBCIR, 1); /* enable Rx ints by setting pkt thr to 1 */ enetc_rxbdr_wr(hw, idx, ENETC_RBICR0, ENETC_RBICR0_ICEN | 0x1); @@ -2116,13 +2102,14 @@ static void enetc_setup_bdrs(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_setup_txbdr(&priv->si->hw, priv->tx_ring[i]); + enetc_setup_txbdr(hw, priv->tx_ring[i]); for (i = 0; i < priv->num_rx_rings; i++) - enetc_setup_rxbdr(&priv->si->hw, priv->rx_ring[i]); + enetc_setup_rxbdr(hw, priv->rx_ring[i]); } static void enetc_clear_rxbdr(struct enetc_hw *hw, struct enetc_bdr *rx_ring) @@ -2155,13 +2142,14 @@ static void enetc_clear_bdrs(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_clear_txbdr(&priv->si->hw, priv->tx_ring[i]); + enetc_clear_txbdr(hw, priv->tx_ring[i]); for (i = 0; i < priv->num_rx_rings; i++) - enetc_clear_rxbdr(&priv->si->hw, priv->rx_ring[i]); + enetc_clear_rxbdr(hw, priv->rx_ring[i]); udelay(1); } @@ -2169,13 +2157,13 @@ static int enetc_setup_irqs(struct enetc_ndev_priv *priv) { struct pci_dev *pdev = priv->si->pdev; + struct enetc_hw *hw = &priv->si->hw; int i, j, err; for (i = 0; i < priv->bdr_int_num; i++) { int irq = pci_irq_vector(pdev, ENETC_BDR_INT_BASE_IDX + i); struct enetc_int_vector *v = priv->int_vector[i]; int entry = ENETC_BDR_INT_BASE_IDX + i; - struct enetc_hw *hw = &priv->si->hw; snprintf(v->name, sizeof(v->name), "%s-rxtx%d", priv->ndev->name, i); @@ -2263,13 +2251,14 @@ static void enetc_clear_interrupts(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_txbdr_wr(&priv->si->hw, i, ENETC_TBIER, 0); + enetc_txbdr_wr(hw, i, ENETC_TBIER, 0); for (i = 0; i < priv->num_rx_rings; i++) - enetc_rxbdr_wr(&priv->si->hw, i, ENETC_RBIER, 0); + enetc_rxbdr_wr(hw, i, ENETC_RBIER, 0); } static int enetc_phylink_connect(struct net_device *ndev) @@ -2432,10 +2421,11 @@ return 0; } -static int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data) +int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data) { struct enetc_ndev_priv *priv = netdev_priv(ndev); struct tc_mqprio_qopt *mqprio = type_data; + struct enetc_hw *hw = &priv->si->hw; struct enetc_bdr *tx_ring; int num_stack_tx_queues; u8 num_tc; @@ -2452,7 +2442,8 @@ /* Reset all ring priorities to 0 */ for (i = 0; i < priv->num_tx_rings; i++) { tx_ring = priv->tx_ring[i]; - enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, 0); + tx_ring->prio = 0; + enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio); } return 0; @@ -2471,7 +2462,8 @@ */ for (i = 0; i < num_tc; i++) { tx_ring = priv->tx_ring[i]; - enetc_set_bdr_prio(&priv->si->hw, tx_ring->index, i); + tx_ring->prio = i; + enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio); } /* Reset the number of netdev queues based on the TC count */ @@ -2486,25 +2478,6 @@ return 0; } -int enetc_setup_tc(struct net_device *ndev, enum tc_setup_type type, - void *type_data) -{ - switch (type) { - case TC_SETUP_QDISC_MQPRIO: - return enetc_setup_tc_mqprio(ndev, type_data); - case TC_SETUP_QDISC_TAPRIO: - return enetc_setup_tc_taprio(ndev, type_data); - case TC_SETUP_QDISC_CBS: - return enetc_setup_tc_cbs(ndev, type_data); - case TC_SETUP_QDISC_ETF: - return enetc_setup_tc_txtime(ndev, type_data); - case TC_SETUP_BLOCK: - return enetc_setup_tc_psfp(ndev, type_data); - default: - return -EOPNOTSUPP; - } -} - static int enetc_setup_xdp_prog(struct net_device *dev, struct bpf_prog *prog, struct netlink_ext_ack *extack) { @@ -2600,52 +2573,29 @@ return 0; } -static int enetc_set_psfp(struct net_device *ndev, int en) -{ - struct enetc_ndev_priv *priv = netdev_priv(ndev); - int err; - - if (en) { - err = enetc_psfp_enable(priv); - if (err) - return err; - - priv->active_offloads |= ENETC_F_QCI; - return 0; - } - - err = enetc_psfp_disable(priv); - if (err) - return err; - - priv->active_offloads &= ~ENETC_F_QCI; - - return 0; -} - static void enetc_enable_rxvlan(struct net_device *ndev, bool en) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_rx_rings; i++) - enetc_bdr_enable_rxvlan(&priv->si->hw, i, en); + enetc_bdr_enable_rxvlan(hw, i, en); } static void enetc_enable_txvlan(struct net_device *ndev, bool en) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; int i; for (i = 0; i < priv->num_tx_rings; i++) - enetc_bdr_enable_txvlan(&priv->si->hw, i, en); + enetc_bdr_enable_txvlan(hw, i, en); } -int enetc_set_features(struct net_device *ndev, - netdev_features_t features) +void enetc_set_features(struct net_device *ndev, netdev_features_t features) { netdev_features_t changed = ndev->features ^ features; - int err = 0; if (changed & NETIF_F_RXHASH) enetc_set_rss(ndev, !!(features & NETIF_F_RXHASH)); @@ -2657,11 +2607,6 @@ if (changed & NETIF_F_HW_VLAN_CTAG_TX) enetc_enable_txvlan(ndev, !!(features & NETIF_F_HW_VLAN_CTAG_TX)); - - if (changed & NETIF_F_HW_TC) - err = enetc_set_psfp(ndev, !!(features & NETIF_F_HW_TC)); - - return err; } #ifdef CONFIG_FSL_ENETC_PTP_CLOCK --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/enetc.h +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/enetc.h @@ -95,6 +95,7 @@ void __iomem *rcir; }; u16 index; + u16 prio; int bd_count; /* # of BDs */ int next_to_use; int next_to_clean; @@ -393,11 +394,9 @@ void enetc_stop(struct net_device *ndev); netdev_tx_t enetc_xmit(struct sk_buff *skb, struct net_device *ndev); struct net_device_stats *enetc_get_stats(struct net_device *ndev); -int enetc_set_features(struct net_device *ndev, - netdev_features_t features); +void enetc_set_features(struct net_device *ndev, netdev_features_t features); int enetc_ioctl(struct net_device *ndev, struct ifreq *rq, int cmd); -int enetc_setup_tc(struct net_device *ndev, enum tc_setup_type type, - void *type_data); +int enetc_setup_tc_mqprio(struct net_device *ndev, void *type_data); int enetc_setup_bpf(struct net_device *dev, struct netdev_bpf *xdp); int enetc_xdp_xmit(struct net_device *ndev, int num_frames, struct xdp_frame **frames, u32 flags); @@ -465,22 +464,24 @@ int enetc_setup_tc_psfp(struct net_device *ndev, void *type_data); int enetc_psfp_init(struct enetc_ndev_priv *priv); int enetc_psfp_clean(struct enetc_ndev_priv *priv); +int enetc_set_psfp(struct net_device *ndev, bool en); static inline void enetc_get_max_cap(struct enetc_ndev_priv *priv) { + struct enetc_hw *hw = &priv->si->hw; u32 reg; - reg = enetc_port_rd(&priv->si->hw, ENETC_PSIDCAPR); + reg = enetc_port_rd(hw, ENETC_PSIDCAPR); priv->psfp_cap.max_streamid = reg & ENETC_PSIDCAPR_MSK; /* Port stream filter capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PSFCAPR); + reg = enetc_port_rd(hw, ENETC_PSFCAPR); priv->psfp_cap.max_psfp_filter = reg & ENETC_PSFCAPR_MSK; /* Port stream gate capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PSGCAPR); + reg = enetc_port_rd(hw, ENETC_PSGCAPR); priv->psfp_cap.max_psfp_gate = (reg & ENETC_PSGCAPR_SGIT_MSK); priv->psfp_cap.max_psfp_gatelist = (reg & ENETC_PSGCAPR_GCL_MSK) >> 16; /* Port flow meter capability */ - reg = enetc_port_rd(&priv->si->hw, ENETC_PFMCAPR); + reg = enetc_port_rd(hw, ENETC_PFMCAPR); priv->psfp_cap.max_psfp_meter = reg & ENETC_PFMCAPR_MSK; } @@ -540,4 +541,9 @@ { return 0; } + +static inline int enetc_set_psfp(struct net_device *ndev, bool en) +{ + return 0; +} #endif --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/enetc_pf.c +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/enetc_pf.c @@ -709,6 +709,13 @@ { netdev_features_t changed = ndev->features ^ features; struct enetc_ndev_priv *priv = netdev_priv(ndev); + int err; + + if (changed & NETIF_F_HW_TC) { + err = enetc_set_psfp(ndev, !!(features & NETIF_F_HW_TC)); + if (err) + return err; + } if (changed & NETIF_F_HW_VLAN_CTAG_FILTER) { struct enetc_pf *pf = enetc_si_priv(priv->si); @@ -722,7 +729,28 @@ if (changed & NETIF_F_LOOPBACK) enetc_set_loopback(ndev, !!(features & NETIF_F_LOOPBACK)); - return enetc_set_features(ndev, features); + enetc_set_features(ndev, features); + + return 0; +} + +static int enetc_pf_setup_tc(struct net_device *ndev, enum tc_setup_type type, + void *type_data) +{ + switch (type) { + case TC_SETUP_QDISC_MQPRIO: + return enetc_setup_tc_mqprio(ndev, type_data); + case TC_SETUP_QDISC_TAPRIO: + return enetc_setup_tc_taprio(ndev, type_data); + case TC_SETUP_QDISC_CBS: + return enetc_setup_tc_cbs(ndev, type_data); + case TC_SETUP_QDISC_ETF: + return enetc_setup_tc_txtime(ndev, type_data); + case TC_SETUP_BLOCK: + return enetc_setup_tc_psfp(ndev, type_data); + default: + return -EOPNOTSUPP; + } } static const struct net_device_ops enetc_ndev_ops = { @@ -739,7 +767,7 @@ .ndo_set_vf_spoofchk = enetc_pf_set_vf_spoofchk, .ndo_set_features = enetc_pf_set_features, .ndo_eth_ioctl = enetc_ioctl, - .ndo_setup_tc = enetc_setup_tc, + .ndo_setup_tc = enetc_pf_setup_tc, .ndo_bpf = enetc_setup_bpf, .ndo_xdp_xmit = enetc_xdp_xmit, }; --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/enetc_qos.c +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/enetc_qos.c @@ -17,8 +17,9 @@ void enetc_sched_speed_set(struct enetc_ndev_priv *priv, int speed) { + struct enetc_hw *hw = &priv->si->hw; u32 old_speed = priv->speed; - u32 pspeed; + u32 pspeed, tmp; if (speed == old_speed) return; @@ -39,16 +40,15 @@ } priv->speed = speed; - enetc_port_wr(&priv->si->hw, ENETC_PMR, - (enetc_port_rd(&priv->si->hw, ENETC_PMR) - & (~ENETC_PMR_PSPEED_MASK)) - | pspeed); + tmp = enetc_port_rd(hw, ENETC_PMR); + enetc_port_wr(hw, ENETC_PMR, (tmp & ~ENETC_PMR_PSPEED_MASK) | pspeed); } static int enetc_setup_taprio(struct net_device *ndev, struct tc_taprio_qopt_offload *admin_conf) { struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; struct enetc_cbd cbd = {.cmd = 0}; struct tgs_gcl_conf *gcl_config; struct tgs_gcl_data *gcl_data; @@ -61,15 +61,13 @@ int err; int i; - if (admin_conf->num_entries > enetc_get_max_gcl_len(&priv->si->hw)) + if (admin_conf->num_entries > enetc_get_max_gcl_len(hw)) return -EINVAL; gcl_len = admin_conf->num_entries; - tge = enetc_rd(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET); + tge = enetc_rd(hw, ENETC_QBV_PTGCR_OFFSET); if (!admin_conf->enable) { - enetc_wr(&priv->si->hw, - ENETC_QBV_PTGCR_OFFSET, - tge & (~ENETC_QBV_TGE)); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge & ~ENETC_QBV_TGE); priv->active_offloads &= ~ENETC_F_QBV; @@ -117,14 +115,11 @@ cbd.cls = BDCR_CMD_PORT_GCL; cbd.status_flags = 0; - enetc_wr(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET, - tge | ENETC_QBV_TGE); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge | ENETC_QBV_TGE); err = enetc_send_cmd(priv->si, &cbd); if (err) - enetc_wr(&priv->si->hw, - ENETC_QBV_PTGCR_OFFSET, - tge & (~ENETC_QBV_TGE)); + enetc_wr(hw, ENETC_QBV_PTGCR_OFFSET, tge & ~ENETC_QBV_TGE); enetc_cbd_free_data_mem(priv->si, data_size, tmp, &dma); @@ -138,6 +133,8 @@ { struct tc_taprio_qopt_offload *taprio = type_data; struct enetc_ndev_priv *priv = netdev_priv(ndev); + struct enetc_hw *hw = &priv->si->hw; + struct enetc_bdr *tx_ring; int err; int i; @@ -146,18 +143,20 @@ if (priv->tx_ring[i]->tsd_enable) return -EBUSY; - for (i = 0; i < priv->num_tx_rings; i++) - enetc_set_bdr_prio(&priv->si->hw, - priv->tx_ring[i]->index, - taprio->enable ? i : 0); + for (i = 0; i < priv->num_tx_rings; i++) { + tx_ring = priv->tx_ring[i]; + tx_ring->prio = taprio->enable ? i : 0; + enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio); + } err = enetc_setup_taprio(ndev, taprio); - - if (err) - for (i = 0; i < priv->num_tx_rings; i++) - enetc_set_bdr_prio(&priv->si->hw, - priv->tx_ring[i]->index, - taprio->enable ? 0 : i); + if (err) { + for (i = 0; i < priv->num_tx_rings; i++) { + tx_ring = priv->tx_ring[i]; + tx_ring->prio = taprio->enable ? 0 : i; + enetc_set_bdr_prio(hw, tx_ring->index, tx_ring->prio); + } + } return err; } @@ -178,7 +177,7 @@ struct tc_cbs_qopt_offload *cbs = type_data; u32 port_transmit_rate = priv->speed; u8 tc_nums = netdev_get_num_tc(ndev); - struct enetc_si *si = priv->si; + struct enetc_hw *hw = &priv->si->hw; u32 hi_credit_bit, hi_credit_reg; u32 max_interference_size; u32 port_frame_max_size; @@ -199,15 +198,15 @@ * lower than this TC have been disabled. */ if (tc == prio_top && - enetc_get_cbs_enable(&si->hw, prio_next)) { + enetc_get_cbs_enable(hw, prio_next)) { dev_err(&ndev->dev, "Disable TC%d before disable TC%d\n", prio_next, tc); return -EINVAL; } - enetc_port_wr(&si->hw, ENETC_PTCCBSR1(tc), 0); - enetc_port_wr(&si->hw, ENETC_PTCCBSR0(tc), 0); + enetc_port_wr(hw, ENETC_PTCCBSR1(tc), 0); + enetc_port_wr(hw, ENETC_PTCCBSR0(tc), 0); return 0; } @@ -224,13 +223,13 @@ * higher than this TC have been enabled. */ if (tc == prio_next) { - if (!enetc_get_cbs_enable(&si->hw, prio_top)) { + if (!enetc_get_cbs_enable(hw, prio_top)) { dev_err(&ndev->dev, "Enable TC%d first before enable TC%d\n", prio_top, prio_next); return -EINVAL; } - bw_sum += enetc_get_cbs_bw(&si->hw, prio_top); + bw_sum += enetc_get_cbs_bw(hw, prio_top); } if (bw_sum + bw >= 100) { @@ -239,7 +238,7 @@ return -EINVAL; } - enetc_port_rd(&si->hw, ENETC_PTCMSDUR(tc)); + enetc_port_rd(hw, ENETC_PTCMSDUR(tc)); /* For top prio TC, the max_interfrence_size is maxSizedFrame. * @@ -259,8 +258,8 @@ u32 m0, ma, r0, ra; m0 = port_frame_max_size * 8; - ma = enetc_port_rd(&si->hw, ENETC_PTCMSDUR(prio_top)) * 8; - ra = enetc_get_cbs_bw(&si->hw, prio_top) * + ma = enetc_port_rd(hw, ENETC_PTCMSDUR(prio_top)) * 8; + ra = enetc_get_cbs_bw(hw, prio_top) * port_transmit_rate * 10000ULL; r0 = port_transmit_rate * 1000000ULL; max_interference_size = m0 + ma + @@ -280,10 +279,10 @@ hi_credit_reg = (u32)div_u64((ENETC_CLK * 100ULL) * hi_credit_bit, port_transmit_rate * 1000000ULL); - enetc_port_wr(&si->hw, ENETC_PTCCBSR1(tc), hi_credit_reg); + enetc_port_wr(hw, ENETC_PTCCBSR1(tc), hi_credit_reg); /* Set bw register and enable this traffic class */ - enetc_port_wr(&si->hw, ENETC_PTCCBSR0(tc), bw | ENETC_CBSE); + enetc_port_wr(hw, ENETC_PTCCBSR0(tc), bw | ENETC_CBSE); return 0; } @@ -293,6 +292,7 @@ struct enetc_ndev_priv *priv = netdev_priv(ndev); struct tc_etf_qopt_offload *qopt = type_data; u8 tc_nums = netdev_get_num_tc(ndev); + struct enetc_hw *hw = &priv->si->hw; int tc; if (!tc_nums) @@ -304,12 +304,11 @@ return -EINVAL; /* TSD and Qbv are mutually exclusive in hardware */ - if (enetc_rd(&priv->si->hw, ENETC_QBV_PTGCR_OFFSET) & ENETC_QBV_TGE) + if (enetc_rd(hw, ENETC_QBV_PTGCR_OFFSET) & ENETC_QBV_TGE) return -EBUSY; priv->tx_ring[tc]->tsd_enable = qopt->enable; - enetc_port_wr(&priv->si->hw, ENETC_PTCTSDR(tc), - qopt->enable ? ENETC_TSDE : 0); + enetc_port_wr(hw, ENETC_PTCTSDR(tc), qopt->enable ? ENETC_TSDE : 0); return 0; } @@ -1517,6 +1516,29 @@ } } +int enetc_set_psfp(struct net_device *ndev, bool en) +{ + struct enetc_ndev_priv *priv = netdev_priv(ndev); + int err; + + if (en) { + err = enetc_psfp_enable(priv); + if (err) + return err; + + priv->active_offloads |= ENETC_F_QCI; + return 0; + } + + err = enetc_psfp_disable(priv); + if (err) + return err; + + priv->active_offloads &= ~ENETC_F_QCI; + + return 0; +} + int enetc_psfp_init(struct enetc_ndev_priv *priv) { if (epsfp.psfp_sfi_bitmap) --- linux-5.19.0.orig/drivers/net/ethernet/freescale/enetc/enetc_vf.c +++ linux-5.19.0/drivers/net/ethernet/freescale/enetc/enetc_vf.c @@ -88,7 +88,20 @@ static int enetc_vf_set_features(struct net_device *ndev, netdev_features_t features) { - return enetc_set_features(ndev, features); + enetc_set_features(ndev, features); + + return 0; +} + +static int enetc_vf_setup_tc(struct net_device *ndev, enum tc_setup_type type, + void *type_data) +{ + switch (type) { + case TC_SETUP_QDISC_MQPRIO: + return enetc_setup_tc_mqprio(ndev, type_data); + default: + return -EOPNOTSUPP; + } } /* Probing/ Init */ @@ -100,7 +113,7 @@ .ndo_set_mac_address = enetc_vf_set_mac_addr, .ndo_set_features = enetc_vf_set_features, .ndo_eth_ioctl = enetc_ioctl, - .ndo_setup_tc = enetc_setup_tc, + .ndo_setup_tc = enetc_vf_setup_tc, }; static void enetc_vf_netdev_setup(struct enetc_si *si, struct net_device *ndev, --- linux-5.19.0.orig/drivers/net/ethernet/freescale/fec_main.c +++ linux-5.19.0/drivers/net/ethernet/freescale/fec_main.c @@ -72,7 +72,7 @@ #include "fec.h" static void set_multicast_list(struct net_device *ndev); -static void fec_enet_itr_coal_init(struct net_device *ndev); +static void fec_enet_itr_coal_set(struct net_device *ndev); #define DRIVER_NAME "fec" @@ -656,7 +656,7 @@ dev_kfree_skb_any(skb); if (net_ratelimit()) netdev_err(ndev, "Tx DMA memory map failed\n"); - return NETDEV_TX_BUSY; + return NETDEV_TX_OK; } bdp->cbd_datlen = cpu_to_fec16(size); @@ -718,7 +718,7 @@ dev_kfree_skb_any(skb); if (net_ratelimit()) netdev_err(ndev, "Tx DMA memory map failed\n"); - return NETDEV_TX_BUSY; + return NETDEV_TX_OK; } } @@ -1163,8 +1163,8 @@ writel(0, fep->hwp + FEC_IMASK); /* Init the interrupt coalescing */ - fec_enet_itr_coal_init(ndev); - + if (fep->quirks & FEC_QUIRK_HAS_COALESCE) + fec_enet_itr_coal_set(ndev); } static void fec_enet_stop_mode(struct fec_enet_private *fep, bool enabled) @@ -2346,6 +2346,31 @@ IEEE_R_DROP, IEEE_R_FRAME_OK, IEEE_R_CRC, IEEE_R_ALIGN, IEEE_R_MACERR, IEEE_R_FDXFC, IEEE_R_OCTETS_OK }; +/* for i.MX6ul */ +static u32 fec_enet_register_offset_6ul[] = { + FEC_IEVENT, FEC_IMASK, FEC_R_DES_ACTIVE_0, FEC_X_DES_ACTIVE_0, + FEC_ECNTRL, FEC_MII_DATA, FEC_MII_SPEED, FEC_MIB_CTRLSTAT, FEC_R_CNTRL, + FEC_X_CNTRL, FEC_ADDR_LOW, FEC_ADDR_HIGH, FEC_OPD, FEC_TXIC0, FEC_RXIC0, + FEC_HASH_TABLE_HIGH, FEC_HASH_TABLE_LOW, FEC_GRP_HASH_TABLE_HIGH, + FEC_GRP_HASH_TABLE_LOW, FEC_X_WMRK, FEC_R_DES_START_0, + FEC_X_DES_START_0, FEC_R_BUFF_SIZE_0, FEC_R_FIFO_RSFL, FEC_R_FIFO_RSEM, + FEC_R_FIFO_RAEM, FEC_R_FIFO_RAFL, FEC_RACC, + RMON_T_DROP, RMON_T_PACKETS, RMON_T_BC_PKT, RMON_T_MC_PKT, + RMON_T_CRC_ALIGN, RMON_T_UNDERSIZE, RMON_T_OVERSIZE, RMON_T_FRAG, + RMON_T_JAB, RMON_T_COL, RMON_T_P64, RMON_T_P65TO127, RMON_T_P128TO255, + RMON_T_P256TO511, RMON_T_P512TO1023, RMON_T_P1024TO2047, + RMON_T_P_GTE2048, RMON_T_OCTETS, + IEEE_T_DROP, IEEE_T_FRAME_OK, IEEE_T_1COL, IEEE_T_MCOL, IEEE_T_DEF, + IEEE_T_LCOL, IEEE_T_EXCOL, IEEE_T_MACERR, IEEE_T_CSERR, IEEE_T_SQE, + IEEE_T_FDXFC, IEEE_T_OCTETS_OK, + RMON_R_PACKETS, RMON_R_BC_PKT, RMON_R_MC_PKT, RMON_R_CRC_ALIGN, + RMON_R_UNDERSIZE, RMON_R_OVERSIZE, RMON_R_FRAG, RMON_R_JAB, + RMON_R_RESVD_O, RMON_R_P64, RMON_R_P65TO127, RMON_R_P128TO255, + RMON_R_P256TO511, RMON_R_P512TO1023, RMON_R_P1024TO2047, + RMON_R_P_GTE2048, RMON_R_OCTETS, + IEEE_R_DROP, IEEE_R_FRAME_OK, IEEE_R_CRC, IEEE_R_ALIGN, IEEE_R_MACERR, + IEEE_R_FDXFC, IEEE_R_OCTETS_OK +}; #else static __u32 fec_enet_register_version = 1; static u32 fec_enet_register_offset[] = { @@ -2370,7 +2395,24 @@ u32 *buf = (u32 *)regbuf; u32 i, off; int ret; +#if defined(CONFIG_M523x) || defined(CONFIG_M527x) || defined(CONFIG_M528x) || \ + defined(CONFIG_M520x) || defined(CONFIG_M532x) || defined(CONFIG_ARM) || \ + defined(CONFIG_ARM64) || defined(CONFIG_COMPILE_TEST) + u32 *reg_list; + u32 reg_cnt; + if (!of_machine_is_compatible("fsl,imx6ul")) { + reg_list = fec_enet_register_offset; + reg_cnt = ARRAY_SIZE(fec_enet_register_offset); + } else { + reg_list = fec_enet_register_offset_6ul; + reg_cnt = ARRAY_SIZE(fec_enet_register_offset_6ul); + } +#else + /* coldfire */ + static u32 *reg_list = fec_enet_register_offset; + static const u32 reg_cnt = ARRAY_SIZE(fec_enet_register_offset); +#endif ret = pm_runtime_resume_and_get(dev); if (ret < 0) return; @@ -2379,8 +2421,8 @@ memset(buf, 0, regs->len); - for (i = 0; i < ARRAY_SIZE(fec_enet_register_offset); i++) { - off = fec_enet_register_offset[i]; + for (i = 0; i < reg_cnt; i++) { + off = reg_list[i]; if ((off == FEC_R_BOUND || off == FEC_R_FSTART) && !(fep->quirks & FEC_QUIRK_HAS_FRREG)) @@ -2728,19 +2770,6 @@ return 0; } -static void fec_enet_itr_coal_init(struct net_device *ndev) -{ - struct ethtool_coalesce ec; - - ec.rx_coalesce_usecs = FEC_ITR_ICTT_DEFAULT; - ec.rx_max_coalesced_frames = FEC_ITR_ICFT_DEFAULT; - - ec.tx_coalesce_usecs = FEC_ITR_ICTT_DEFAULT; - ec.tx_max_coalesced_frames = FEC_ITR_ICFT_DEFAULT; - - fec_enet_set_coalesce(ndev, &ec, NULL, NULL); -} - static int fec_enet_get_tunable(struct net_device *netdev, const struct ethtool_tunable *tuna, void *data) @@ -3489,6 +3518,10 @@ fep->rx_align = 0x3; fep->tx_align = 0x3; #endif + fep->rx_pkts_itr = FEC_ITR_ICFT_DEFAULT; + fep->tx_pkts_itr = FEC_ITR_ICFT_DEFAULT; + fep->rx_time_itr = FEC_ITR_ICTT_DEFAULT; + fep->tx_time_itr = FEC_ITR_ICTT_DEFAULT; /* Check mask of the streaming and coherent API */ ret = dma_set_mask_and_coherent(&fep->pdev->dev, DMA_BIT_MASK(32)); --- linux-5.19.0.orig/drivers/net/ethernet/freescale/fec_ptp.c +++ linux-5.19.0/drivers/net/ethernet/freescale/fec_ptp.c @@ -135,11 +135,7 @@ * NSEC_PER_SEC - ts.tv_nsec. Add the remaining nanoseconds * to current timer would be next second. */ - tempval = readl(fep->hwp + FEC_ATIME_CTRL); - tempval |= FEC_T_CTRL_CAPTURE; - writel(tempval, fep->hwp + FEC_ATIME_CTRL); - - tempval = readl(fep->hwp + FEC_ATIME); + tempval = fep->cc.read(&fep->cc); /* Convert the ptp local counter to 1588 timestamp */ ns = timecounter_cyc2time(&fep->tc, tempval); ts = ns_to_timespec64(ns); --- linux-5.19.0.orig/drivers/net/ethernet/freescale/fman/mac.c +++ linux-5.19.0/drivers/net/ethernet/freescale/fman/mac.c @@ -882,12 +882,21 @@ return err; } +static int mac_remove(struct platform_device *pdev) +{ + struct mac_device *mac_dev = platform_get_drvdata(pdev); + + platform_device_unregister(mac_dev->priv->eth_dev); + return 0; +} + static struct platform_driver mac_driver = { .driver = { .name = KBUILD_MODNAME, .of_match_table = mac_match, }, .probe = mac_probe, + .remove = mac_remove, }; builtin_platform_driver(mac_driver); --- linux-5.19.0.orig/drivers/net/ethernet/freescale/fs_enet/mac-fec.c +++ linux-5.19.0/drivers/net/ethernet/freescale/fs_enet/mac-fec.c @@ -98,7 +98,7 @@ return -EINVAL; fep->fec.fecp = of_iomap(ofdev->dev.of_node, 0); - if (!fep->fcc.fccp) + if (!fep->fec.fecp) return -EINVAL; return 0; --- linux-5.19.0.orig/drivers/net/ethernet/fungible/funeth/funeth_txrx.h +++ linux-5.19.0/drivers/net/ethernet/fungible/funeth/funeth_txrx.h @@ -205,9 +205,9 @@ #define FUN_QSTAT_READ(q, seq, stats_copy) \ do { \ - seq = u64_stats_fetch_begin(&(q)->syncp); \ + seq = u64_stats_fetch_begin_irq(&(q)->syncp); \ stats_copy = (q)->stats; \ - } while (u64_stats_fetch_retry(&(q)->syncp, (seq))) + } while (u64_stats_fetch_retry_irq(&(q)->syncp, (seq))) #define FUN_INT_NAME_LEN (IFNAMSIZ + 16) --- linux-5.19.0.orig/drivers/net/ethernet/google/gve/gve_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/google/gve/gve_ethtool.c @@ -177,14 +177,14 @@ struct gve_rx_ring *rx = &priv->rx[ring]; start = - u64_stats_fetch_begin(&priv->rx[ring].statss); + u64_stats_fetch_begin_irq(&priv->rx[ring].statss); tmp_rx_pkts = rx->rpackets; tmp_rx_bytes = rx->rbytes; tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail; tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail; tmp_rx_desc_err_dropped_pkt = rx->rx_desc_err_dropped_pkt; - } while (u64_stats_fetch_retry(&priv->rx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss, start)); rx_pkts += tmp_rx_pkts; rx_bytes += tmp_rx_bytes; @@ -198,10 +198,10 @@ if (priv->tx) { do { start = - u64_stats_fetch_begin(&priv->tx[ring].statss); + u64_stats_fetch_begin_irq(&priv->tx[ring].statss); tmp_tx_pkts = priv->tx[ring].pkt_done; tmp_tx_bytes = priv->tx[ring].bytes_done; - } while (u64_stats_fetch_retry(&priv->tx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss, start)); tx_pkts += tmp_tx_pkts; tx_bytes += tmp_tx_bytes; @@ -259,13 +259,13 @@ data[i++] = rx->fill_cnt - rx->cnt; do { start = - u64_stats_fetch_begin(&priv->rx[ring].statss); + u64_stats_fetch_begin_irq(&priv->rx[ring].statss); tmp_rx_bytes = rx->rbytes; tmp_rx_skb_alloc_fail = rx->rx_skb_alloc_fail; tmp_rx_buf_alloc_fail = rx->rx_buf_alloc_fail; tmp_rx_desc_err_dropped_pkt = rx->rx_desc_err_dropped_pkt; - } while (u64_stats_fetch_retry(&priv->rx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss, start)); data[i++] = tmp_rx_bytes; data[i++] = rx->rx_cont_packet_cnt; @@ -331,9 +331,9 @@ } do { start = - u64_stats_fetch_begin(&priv->tx[ring].statss); + u64_stats_fetch_begin_irq(&priv->tx[ring].statss); tmp_tx_bytes = tx->bytes_done; - } while (u64_stats_fetch_retry(&priv->tx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss, start)); data[i++] = tmp_tx_bytes; data[i++] = tx->wake_queue; --- linux-5.19.0.orig/drivers/net/ethernet/google/gve/gve_main.c +++ linux-5.19.0/drivers/net/ethernet/google/gve/gve_main.c @@ -51,10 +51,10 @@ for (ring = 0; ring < priv->rx_cfg.num_queues; ring++) { do { start = - u64_stats_fetch_begin(&priv->rx[ring].statss); + u64_stats_fetch_begin_irq(&priv->rx[ring].statss); packets = priv->rx[ring].rpackets; bytes = priv->rx[ring].rbytes; - } while (u64_stats_fetch_retry(&priv->rx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->rx[ring].statss, start)); s->rx_packets += packets; s->rx_bytes += bytes; @@ -64,10 +64,10 @@ for (ring = 0; ring < priv->tx_cfg.num_queues; ring++) { do { start = - u64_stats_fetch_begin(&priv->tx[ring].statss); + u64_stats_fetch_begin_irq(&priv->tx[ring].statss); packets = priv->tx[ring].pkt_done; bytes = priv->tx[ring].bytes_done; - } while (u64_stats_fetch_retry(&priv->tx[ring].statss, + } while (u64_stats_fetch_retry_irq(&priv->tx[ring].statss, start)); s->tx_packets += packets; s->tx_bytes += bytes; @@ -1274,9 +1274,9 @@ } do { - start = u64_stats_fetch_begin(&priv->tx[idx].statss); + start = u64_stats_fetch_begin_irq(&priv->tx[idx].statss); tx_bytes = priv->tx[idx].bytes_done; - } while (u64_stats_fetch_retry(&priv->tx[idx].statss, start)); + } while (u64_stats_fetch_retry_irq(&priv->tx[idx].statss, start)); stats[stats_idx++] = (struct stats) { .stat_name = cpu_to_be32(TX_WAKE_CNT), .value = cpu_to_be64(priv->tx[idx].wake_queue), --- linux-5.19.0.orig/drivers/net/ethernet/google/gve/gve_rx_dqo.c +++ linux-5.19.0/drivers/net/ethernet/google/gve/gve_rx_dqo.c @@ -157,7 +157,7 @@ int err; err = gve_alloc_page(priv, &priv->pdev->dev, &buf_state->page_info.page, - &buf_state->addr, DMA_FROM_DEVICE, GFP_KERNEL); + &buf_state->addr, DMA_FROM_DEVICE, GFP_ATOMIC); if (err) return err; --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hisi_femac.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hisi_femac.c @@ -283,7 +283,7 @@ skb->protocol = eth_type_trans(skb, dev); napi_gro_receive(&priv->napi, skb); dev->stats.rx_packets++; - dev->stats.rx_bytes += skb->len; + dev->stats.rx_bytes += len; next: pos = (pos + 1) % rxq->num; if (rx_pkts_num >= limit) --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hix5hd2_gmac.c @@ -550,7 +550,7 @@ skb->protocol = eth_type_trans(skb, dev); napi_gro_receive(&priv->napi, skb); dev->stats.rx_packets++; - dev->stats.rx_bytes += skb->len; + dev->stats.rx_bytes += len; next: pos = dma_ring_incr(pos, RX_DESC_NUM); } --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns/hnae.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns/hnae.c @@ -419,8 +419,10 @@ hdev->cls_dev.release = hnae_release; (void)dev_set_name(&hdev->cls_dev, "hnae%d", hdev->id); ret = device_register(&hdev->cls_dev); - if (ret) + if (ret) { + put_device(&hdev->cls_dev); return ret; + } __module_get(THIS_MODULE); --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hnae3.h +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hnae3.h @@ -790,7 +790,6 @@ const struct hnae3_dcb_ops *dcb_ops; u16 int_rl_setting; - enum pkt_hash_types rss_type; void __iomem *io_base; }; --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.c @@ -191,23 +191,6 @@ return HCLGE_COMM_RSS_KEY_SIZE; } -void hclge_comm_get_rss_type(struct hnae3_handle *nic, - struct hclge_comm_rss_tuple_cfg *rss_tuple_sets) -{ - if (rss_tuple_sets->ipv4_tcp_en || - rss_tuple_sets->ipv4_udp_en || - rss_tuple_sets->ipv4_sctp_en || - rss_tuple_sets->ipv6_tcp_en || - rss_tuple_sets->ipv6_udp_en || - rss_tuple_sets->ipv6_sctp_en) - nic->kinfo.rss_type = PKT_HASH_TYPE_L4; - else if (rss_tuple_sets->ipv4_fragment_en || - rss_tuple_sets->ipv6_fragment_en) - nic->kinfo.rss_type = PKT_HASH_TYPE_L3; - else - nic->kinfo.rss_type = PKT_HASH_TYPE_NONE; -} - int hclge_comm_parse_rss_hfunc(struct hclge_comm_rss_cfg *rss_cfg, const u8 hfunc, u8 *hash_algo) { @@ -344,9 +327,6 @@ req->ipv6_sctp_en = rss_cfg->rss_tuple_sets.ipv6_sctp_en; req->ipv6_fragment_en = rss_cfg->rss_tuple_sets.ipv6_fragment_en; - if (is_pf) - hclge_comm_get_rss_type(nic, &rss_cfg->rss_tuple_sets); - ret = hclge_comm_cmd_send(hw, &desc, 1); if (ret) dev_err(&hw->cmq.csq.pdev->dev, --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hns3_common/hclge_comm_rss.h @@ -95,8 +95,6 @@ }; u32 hclge_comm_get_rss_key_size(struct hnae3_handle *handle); -void hclge_comm_get_rss_type(struct hnae3_handle *nic, - struct hclge_comm_rss_tuple_cfg *rss_tuple_sets); void hclge_comm_rss_indir_init_cfg(struct hnae3_ae_dev *ae_dev, struct hclge_comm_rss_cfg *rss_cfg); int hclge_comm_get_rss_tuple(struct hclge_comm_rss_cfg *rss_cfg, int flow_type, --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -105,26 +105,28 @@ }; MODULE_DEVICE_TABLE(pci, hns3_pci_tbl); -#define HNS3_RX_PTYPE_ENTRY(ptype, l, s, t) \ +#define HNS3_RX_PTYPE_ENTRY(ptype, l, s, t, h) \ { ptype, \ l, \ CHECKSUM_##s, \ HNS3_L3_TYPE_##t, \ - 1 } + 1, \ + h} #define HNS3_RX_PTYPE_UNUSED_ENTRY(ptype) \ - { ptype, 0, CHECKSUM_NONE, HNS3_L3_TYPE_PARSE_FAIL, 0 } + { ptype, 0, CHECKSUM_NONE, HNS3_L3_TYPE_PARSE_FAIL, 0, \ + PKT_HASH_TYPE_NONE } static const struct hns3_rx_ptype hns3_rx_ptype_tbl[] = { HNS3_RX_PTYPE_UNUSED_ENTRY(0), - HNS3_RX_PTYPE_ENTRY(1, 0, COMPLETE, ARP), - HNS3_RX_PTYPE_ENTRY(2, 0, COMPLETE, RARP), - HNS3_RX_PTYPE_ENTRY(3, 0, COMPLETE, LLDP), - HNS3_RX_PTYPE_ENTRY(4, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(5, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(6, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(7, 0, COMPLETE, CNM), - HNS3_RX_PTYPE_ENTRY(8, 0, NONE, PARSE_FAIL), + HNS3_RX_PTYPE_ENTRY(1, 0, COMPLETE, ARP, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(2, 0, COMPLETE, RARP, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(3, 0, COMPLETE, LLDP, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(4, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(5, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(6, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(7, 0, COMPLETE, CNM, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(8, 0, NONE, PARSE_FAIL, PKT_HASH_TYPE_NONE), HNS3_RX_PTYPE_UNUSED_ENTRY(9), HNS3_RX_PTYPE_UNUSED_ENTRY(10), HNS3_RX_PTYPE_UNUSED_ENTRY(11), @@ -132,36 +134,36 @@ HNS3_RX_PTYPE_UNUSED_ENTRY(13), HNS3_RX_PTYPE_UNUSED_ENTRY(14), HNS3_RX_PTYPE_UNUSED_ENTRY(15), - HNS3_RX_PTYPE_ENTRY(16, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(17, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(18, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(19, 0, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(20, 0, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(21, 0, NONE, IPV4), - HNS3_RX_PTYPE_ENTRY(22, 0, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(23, 0, NONE, IPV4), - HNS3_RX_PTYPE_ENTRY(24, 0, NONE, IPV4), - HNS3_RX_PTYPE_ENTRY(25, 0, UNNECESSARY, IPV4), + HNS3_RX_PTYPE_ENTRY(16, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(17, 0, COMPLETE, IPV4, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(18, 0, COMPLETE, IPV4, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(19, 0, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(20, 0, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(21, 0, NONE, IPV4, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(22, 0, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(23, 0, NONE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(24, 0, NONE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(25, 0, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), HNS3_RX_PTYPE_UNUSED_ENTRY(26), HNS3_RX_PTYPE_UNUSED_ENTRY(27), HNS3_RX_PTYPE_UNUSED_ENTRY(28), - HNS3_RX_PTYPE_ENTRY(29, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(30, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(31, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(32, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(33, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(34, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(35, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(36, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(37, 0, COMPLETE, IPV4), + HNS3_RX_PTYPE_ENTRY(29, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(30, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(31, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(32, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(33, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(34, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(35, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(36, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(37, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), HNS3_RX_PTYPE_UNUSED_ENTRY(38), - HNS3_RX_PTYPE_ENTRY(39, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(40, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(41, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(42, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(43, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(44, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(45, 0, COMPLETE, IPV6), + HNS3_RX_PTYPE_ENTRY(39, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(40, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(41, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(42, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(43, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(44, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(45, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), HNS3_RX_PTYPE_UNUSED_ENTRY(46), HNS3_RX_PTYPE_UNUSED_ENTRY(47), HNS3_RX_PTYPE_UNUSED_ENTRY(48), @@ -227,35 +229,35 @@ HNS3_RX_PTYPE_UNUSED_ENTRY(108), HNS3_RX_PTYPE_UNUSED_ENTRY(109), HNS3_RX_PTYPE_UNUSED_ENTRY(110), - HNS3_RX_PTYPE_ENTRY(111, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(112, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(113, 0, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(114, 0, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(115, 0, NONE, IPV6), - HNS3_RX_PTYPE_ENTRY(116, 0, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(117, 0, NONE, IPV6), - HNS3_RX_PTYPE_ENTRY(118, 0, NONE, IPV6), - HNS3_RX_PTYPE_ENTRY(119, 0, UNNECESSARY, IPV6), + HNS3_RX_PTYPE_ENTRY(111, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(112, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(113, 0, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(114, 0, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(115, 0, NONE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(116, 0, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(117, 0, NONE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(118, 0, NONE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(119, 0, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), HNS3_RX_PTYPE_UNUSED_ENTRY(120), HNS3_RX_PTYPE_UNUSED_ENTRY(121), HNS3_RX_PTYPE_UNUSED_ENTRY(122), - HNS3_RX_PTYPE_ENTRY(123, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(124, 0, COMPLETE, PARSE_FAIL), - HNS3_RX_PTYPE_ENTRY(125, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(126, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(127, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(128, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(129, 1, UNNECESSARY, IPV4), - HNS3_RX_PTYPE_ENTRY(130, 0, COMPLETE, IPV4), - HNS3_RX_PTYPE_ENTRY(131, 0, COMPLETE, IPV4), + HNS3_RX_PTYPE_ENTRY(123, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(124, 0, COMPLETE, PARSE_FAIL, PKT_HASH_TYPE_NONE), + HNS3_RX_PTYPE_ENTRY(125, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(126, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(127, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(128, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(129, 1, UNNECESSARY, IPV4, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(130, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(131, 0, COMPLETE, IPV4, PKT_HASH_TYPE_L3), HNS3_RX_PTYPE_UNUSED_ENTRY(132), - HNS3_RX_PTYPE_ENTRY(133, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(134, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(135, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(136, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(137, 1, UNNECESSARY, IPV6), - HNS3_RX_PTYPE_ENTRY(138, 0, COMPLETE, IPV6), - HNS3_RX_PTYPE_ENTRY(139, 0, COMPLETE, IPV6), + HNS3_RX_PTYPE_ENTRY(133, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(134, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(135, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(136, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(137, 1, UNNECESSARY, IPV6, PKT_HASH_TYPE_L4), + HNS3_RX_PTYPE_ENTRY(138, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), + HNS3_RX_PTYPE_ENTRY(139, 0, COMPLETE, IPV6, PKT_HASH_TYPE_L3), HNS3_RX_PTYPE_UNUSED_ENTRY(140), HNS3_RX_PTYPE_UNUSED_ENTRY(141), HNS3_RX_PTYPE_UNUSED_ENTRY(142), @@ -3734,8 +3736,8 @@ desc_cb->reuse_flag = 1; } else if (frag_size <= ring->rx_copybreak) { ret = hns3_handle_rx_copybreak(skb, i, ring, pull_len, desc_cb); - if (ret) - goto out; + if (!ret) + return; } out: @@ -4129,15 +4131,35 @@ } static void hns3_set_rx_skb_rss_type(struct hns3_enet_ring *ring, - struct sk_buff *skb, u32 rss_hash) + struct sk_buff *skb, u32 rss_hash, + u32 l234info, u32 ol_info) { - struct hnae3_handle *handle = ring->tqp->handle; - enum pkt_hash_types rss_type; + enum pkt_hash_types rss_type = PKT_HASH_TYPE_NONE; + struct net_device *netdev = ring_to_netdev(ring); + struct hns3_nic_priv *priv = netdev_priv(netdev); - if (rss_hash) - rss_type = handle->kinfo.rss_type; - else - rss_type = PKT_HASH_TYPE_NONE; + if (test_bit(HNS3_NIC_STATE_RXD_ADV_LAYOUT_ENABLE, &priv->state)) { + u32 ptype = hnae3_get_field(ol_info, HNS3_RXD_PTYPE_M, + HNS3_RXD_PTYPE_S); + + rss_type = hns3_rx_ptype_tbl[ptype].hash_type; + } else { + int l3_type = hnae3_get_field(l234info, HNS3_RXD_L3ID_M, + HNS3_RXD_L3ID_S); + int l4_type = hnae3_get_field(l234info, HNS3_RXD_L4ID_M, + HNS3_RXD_L4ID_S); + + if (l3_type == HNS3_L3_TYPE_IPV4 || + l3_type == HNS3_L3_TYPE_IPV6) { + if (l4_type == HNS3_L4_TYPE_UDP || + l4_type == HNS3_L4_TYPE_TCP || + l4_type == HNS3_L4_TYPE_SCTP) + rss_type = PKT_HASH_TYPE_L4; + else if (l4_type == HNS3_L4_TYPE_IGMP || + l4_type == HNS3_L4_TYPE_ICMP) + rss_type = PKT_HASH_TYPE_L3; + } + } skb_set_hash(skb, rss_hash, rss_type); } @@ -4240,7 +4262,8 @@ ring->tqp_vector->rx_group.total_bytes += len; - hns3_set_rx_skb_rss_type(ring, skb, le32_to_cpu(desc->rx.rss_hash)); + hns3_set_rx_skb_rss_type(ring, skb, le32_to_cpu(desc->rx.rss_hash), + l234info, ol_info); return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hns3_enet.h @@ -404,6 +404,7 @@ u32 ip_summed : 2; u32 l3_type : 4; u32 valid : 1; + u32 hash_type: 3; }; struct ring_stats { --- linux-5.19.0.orig/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +++ linux-5.19.0/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c @@ -3246,6 +3246,7 @@ hdev->hw.mac.autoneg = cmd.base.autoneg; hdev->hw.mac.speed = cmd.base.speed; hdev->hw.mac.duplex = cmd.base.duplex; + linkmode_copy(hdev->hw.mac.advertising, cmd.link_modes.advertising); return 0; } @@ -4662,7 +4663,6 @@ return ret; } - hclge_comm_get_rss_type(&vport->nic, &hdev->rss_cfg.rss_tuple_sets); return 0; } @@ -11374,9 +11374,12 @@ if (ret) goto err_msi_irq_uninit; - if (hdev->hw.mac.media_type == HNAE3_MEDIA_TYPE_COPPER && - !hnae3_dev_phy_imp_supported(hdev)) { - ret = hclge_mac_mdio_config(hdev); + if (hdev->hw.mac.media_type == HNAE3_MEDIA_TYPE_COPPER) { + if (hnae3_dev_phy_imp_supported(hdev)) + ret = hclge_update_tp_port_info(hdev); + else + ret = hclge_mac_mdio_config(hdev); + if (ret) goto err_msi_irq_uninit; } --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_debugfs.c @@ -85,6 +85,7 @@ struct tag_sml_funcfg_tbl *funcfg_table_elem; struct hinic_cmd_lt_rd *read_data; u16 out_size = sizeof(*read_data); + int ret = ~0; int err; read_data = kzalloc(sizeof(*read_data), GFP_KERNEL); @@ -111,20 +112,25 @@ switch (idx) { case VALID: - return funcfg_table_elem->dw0.bs.valid; + ret = funcfg_table_elem->dw0.bs.valid; + break; case RX_MODE: - return funcfg_table_elem->dw0.bs.nic_rx_mode; + ret = funcfg_table_elem->dw0.bs.nic_rx_mode; + break; case MTU: - return funcfg_table_elem->dw1.bs.mtu; + ret = funcfg_table_elem->dw1.bs.mtu; + break; case RQ_DEPTH: - return funcfg_table_elem->dw13.bs.cfg_rq_depth; + ret = funcfg_table_elem->dw13.bs.cfg_rq_depth; + break; case QUEUE_NUM: - return funcfg_table_elem->dw13.bs.cfg_q_num; + ret = funcfg_table_elem->dw13.bs.cfg_q_num; + break; } kfree(read_data); - return ~0; + return ret; } static ssize_t hinic_dbg_cmd_read(struct file *filp, char __user *buffer, size_t count, --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_dev.h +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_dev.h @@ -95,9 +95,6 @@ u16 sq_depth; u16 rq_depth; - struct hinic_txq_stats tx_stats; - struct hinic_rxq_stats rx_stats; - u8 rss_tmpl_idx; u8 rss_hash_engine; u16 num_rss; --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_hw_cmdq.c @@ -929,7 +929,7 @@ err_set_cmdq_depth: hinic_ceq_unregister_cb(&func_to_io->ceqs, HINIC_CEQ_CMDQ); - + free_cmdq(&cmdqs->cmdq[HINIC_CMDQ_SYNC]); err_cmdq_ctxt: hinic_wqs_cmdq_free(&cmdqs->cmdq_pages, cmdqs->saved_wqs, HINIC_MAX_CMDQ_TYPES); --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c @@ -883,7 +883,7 @@ if (err) return -EINVAL; - interrupt_info->lli_credit_cnt = temp_info.lli_timer_cnt; + interrupt_info->lli_credit_cnt = temp_info.lli_credit_cnt; interrupt_info->lli_timer_cnt = temp_info.lli_timer_cnt; err = hinic_msg_to_mgmt(&pfhwdev->pf_to_mgmt, HINIC_MOD_COMM, --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_main.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_main.c @@ -62,8 +62,6 @@ #define HINIC_LRO_RX_TIMER_DEFAULT 16 -#define VLAN_BITMAP_SIZE(nic_dev) (ALIGN(VLAN_N_VID, 8) / 8) - #define work_to_rx_mode_work(work) \ container_of(work, struct hinic_rx_mode_work, work) @@ -82,56 +80,44 @@ netdev_features_t pre_features, netdev_features_t features, bool force_change); -static void update_rx_stats(struct hinic_dev *nic_dev, struct hinic_rxq *rxq) +static void gather_rx_stats(struct hinic_rxq_stats *nic_rx_stats, struct hinic_rxq *rxq) { - struct hinic_rxq_stats *nic_rx_stats = &nic_dev->rx_stats; struct hinic_rxq_stats rx_stats; - u64_stats_init(&rx_stats.syncp); - hinic_rxq_get_stats(rxq, &rx_stats); - u64_stats_update_begin(&nic_rx_stats->syncp); nic_rx_stats->bytes += rx_stats.bytes; nic_rx_stats->pkts += rx_stats.pkts; nic_rx_stats->errors += rx_stats.errors; nic_rx_stats->csum_errors += rx_stats.csum_errors; nic_rx_stats->other_errors += rx_stats.other_errors; - u64_stats_update_end(&nic_rx_stats->syncp); - - hinic_rxq_clean_stats(rxq); } -static void update_tx_stats(struct hinic_dev *nic_dev, struct hinic_txq *txq) +static void gather_tx_stats(struct hinic_txq_stats *nic_tx_stats, struct hinic_txq *txq) { - struct hinic_txq_stats *nic_tx_stats = &nic_dev->tx_stats; struct hinic_txq_stats tx_stats; - u64_stats_init(&tx_stats.syncp); - hinic_txq_get_stats(txq, &tx_stats); - u64_stats_update_begin(&nic_tx_stats->syncp); nic_tx_stats->bytes += tx_stats.bytes; nic_tx_stats->pkts += tx_stats.pkts; nic_tx_stats->tx_busy += tx_stats.tx_busy; nic_tx_stats->tx_wake += tx_stats.tx_wake; nic_tx_stats->tx_dropped += tx_stats.tx_dropped; nic_tx_stats->big_frags_pkts += tx_stats.big_frags_pkts; - u64_stats_update_end(&nic_tx_stats->syncp); - - hinic_txq_clean_stats(txq); } -static void update_nic_stats(struct hinic_dev *nic_dev) +static void gather_nic_stats(struct hinic_dev *nic_dev, + struct hinic_rxq_stats *nic_rx_stats, + struct hinic_txq_stats *nic_tx_stats) { int i, num_qps = hinic_hwdev_num_qps(nic_dev->hwdev); for (i = 0; i < num_qps; i++) - update_rx_stats(nic_dev, &nic_dev->rxqs[i]); + gather_rx_stats(nic_rx_stats, &nic_dev->rxqs[i]); for (i = 0; i < num_qps; i++) - update_tx_stats(nic_dev, &nic_dev->txqs[i]); + gather_tx_stats(nic_tx_stats, &nic_dev->txqs[i]); } /** @@ -560,8 +546,6 @@ netif_carrier_off(netdev); netif_tx_disable(netdev); - update_nic_stats(nic_dev); - up(&nic_dev->mgmt_lock); if (!HINIC_IS_VF(nic_dev->hwdev->hwif)) @@ -855,26 +839,19 @@ struct rtnl_link_stats64 *stats) { struct hinic_dev *nic_dev = netdev_priv(netdev); - struct hinic_rxq_stats *nic_rx_stats; - struct hinic_txq_stats *nic_tx_stats; - - nic_rx_stats = &nic_dev->rx_stats; - nic_tx_stats = &nic_dev->tx_stats; - - down(&nic_dev->mgmt_lock); + struct hinic_rxq_stats nic_rx_stats = {}; + struct hinic_txq_stats nic_tx_stats = {}; if (nic_dev->flags & HINIC_INTF_UP) - update_nic_stats(nic_dev); + gather_nic_stats(nic_dev, &nic_rx_stats, &nic_tx_stats); - up(&nic_dev->mgmt_lock); - - stats->rx_bytes = nic_rx_stats->bytes; - stats->rx_packets = nic_rx_stats->pkts; - stats->rx_errors = nic_rx_stats->errors; - - stats->tx_bytes = nic_tx_stats->bytes; - stats->tx_packets = nic_tx_stats->pkts; - stats->tx_errors = nic_tx_stats->tx_dropped; + stats->rx_bytes = nic_rx_stats.bytes; + stats->rx_packets = nic_rx_stats.pkts; + stats->rx_errors = nic_rx_stats.errors; + + stats->tx_bytes = nic_tx_stats.bytes; + stats->tx_packets = nic_tx_stats.pkts; + stats->tx_errors = nic_tx_stats.tx_dropped; } static int hinic_set_features(struct net_device *netdev, @@ -1173,8 +1150,6 @@ static int nic_dev_init(struct pci_dev *pdev) { struct hinic_rx_mode_work *rx_mode_work; - struct hinic_txq_stats *tx_stats; - struct hinic_rxq_stats *rx_stats; struct hinic_dev *nic_dev; struct net_device *netdev; struct hinic_hwdev *hwdev; @@ -1236,15 +1211,8 @@ sema_init(&nic_dev->mgmt_lock, 1); - tx_stats = &nic_dev->tx_stats; - rx_stats = &nic_dev->rx_stats; - - u64_stats_init(&tx_stats->syncp); - u64_stats_init(&rx_stats->syncp); - - nic_dev->vlan_bitmap = devm_kzalloc(&pdev->dev, - VLAN_BITMAP_SIZE(nic_dev), - GFP_KERNEL); + nic_dev->vlan_bitmap = devm_bitmap_zalloc(&pdev->dev, VLAN_N_VID, + GFP_KERNEL); if (!nic_dev->vlan_bitmap) { err = -ENOMEM; goto err_vlan_bitmap; @@ -1510,8 +1478,15 @@ static int __init hinic_module_init(void) { + int ret; + hinic_dbg_register_debugfs(HINIC_DRV_NAME); - return pci_register_driver(&hinic_driver); + + ret = pci_register_driver(&hinic_driver); + if (ret) + hinic_dbg_unregister_debugfs(); + + return ret; } static void __exit hinic_module_exit(void) --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_rx.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_rx.c @@ -73,17 +73,15 @@ struct hinic_rxq_stats *rxq_stats = &rxq->rxq_stats; unsigned int start; - u64_stats_update_begin(&stats->syncp); do { - start = u64_stats_fetch_begin(&rxq_stats->syncp); + start = u64_stats_fetch_begin_irq(&rxq_stats->syncp); stats->pkts = rxq_stats->pkts; stats->bytes = rxq_stats->bytes; stats->errors = rxq_stats->csum_errors + rxq_stats->other_errors; stats->csum_errors = rxq_stats->csum_errors; stats->other_errors = rxq_stats->other_errors; - } while (u64_stats_fetch_retry(&rxq_stats->syncp, start)); - u64_stats_update_end(&stats->syncp); + } while (u64_stats_fetch_retry_irq(&rxq_stats->syncp, start)); } /** --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_sriov.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_sriov.c @@ -1181,7 +1181,6 @@ dev_err(&hwdev->hwif->pdev->dev, "Failed to register VF, err: %d, status: 0x%x, out size: 0x%x\n", err, register_info.status, out_size); - hinic_unregister_vf_mbox_cb(hwdev, HINIC_MOD_L2NIC); return -EIO; } } else { --- linux-5.19.0.orig/drivers/net/ethernet/huawei/hinic/hinic_tx.c +++ linux-5.19.0/drivers/net/ethernet/huawei/hinic/hinic_tx.c @@ -98,17 +98,15 @@ struct hinic_txq_stats *txq_stats = &txq->txq_stats; unsigned int start; - u64_stats_update_begin(&stats->syncp); do { - start = u64_stats_fetch_begin(&txq_stats->syncp); + start = u64_stats_fetch_begin_irq(&txq_stats->syncp); stats->pkts = txq_stats->pkts; stats->bytes = txq_stats->bytes; stats->tx_busy = txq_stats->tx_busy; stats->tx_wake = txq_stats->tx_wake; stats->tx_dropped = txq_stats->tx_dropped; stats->big_frags_pkts = txq_stats->big_frags_pkts; - } while (u64_stats_fetch_retry(&txq_stats->syncp, start)); - u64_stats_update_end(&stats->syncp); + } while (u64_stats_fetch_retry_irq(&txq_stats->syncp, start)); } /** --- linux-5.19.0.orig/drivers/net/ethernet/ibm/ehea/ehea_main.c +++ linux-5.19.0/drivers/net/ethernet/ibm/ehea/ehea_main.c @@ -2900,6 +2900,7 @@ ret = of_device_register(&port->ofdev); if (ret) { pr_err("failed to register device. ret=%d\n", ret); + put_device(&port->ofdev.dev); goto out; } --- linux-5.19.0.orig/drivers/net/ethernet/ibm/ibmvnic.c +++ linux-5.19.0/drivers/net/ethernet/ibm/ibmvnic.c @@ -3007,19 +3007,19 @@ rwi = get_next_rwi(adapter); /* - * If there is another reset queued, free the previous rwi - * and process the new reset even if previous reset failed - * (the previous reset could have failed because of a fail - * over for instance, so process the fail over). - * * If there are no resets queued and the previous reset failed, * the adapter would be in an undefined state. So retry the * previous reset as a hard reset. + * + * Else, free the previous rwi and, if there is another reset + * queued, process the new reset even if previous reset failed + * (the previous reset could have failed because of a fail + * over for instance, so process the fail over). */ - if (rwi) - kfree(tmprwi); - else if (rc) + if (!rwi && rc) rwi = tmprwi; + else + kfree(tmprwi); if (rwi && (rwi->reset_reason == VNIC_RESET_FAILOVER || rwi->reset_reason == VNIC_RESET_MOBILITY || rc)) --- linux-5.19.0.orig/drivers/net/ethernet/intel/e100.c +++ linux-5.19.0/drivers/net/ethernet/intel/e100.c @@ -1742,11 +1742,8 @@ dma_addr = dma_map_single(&nic->pdev->dev, skb->data, skb->len, DMA_TO_DEVICE); /* If we can't map the skb, have the upper layer try later */ - if (dma_mapping_error(&nic->pdev->dev, dma_addr)) { - dev_kfree_skb_any(skb); - skb = NULL; + if (dma_mapping_error(&nic->pdev->dev, dma_addr)) return -ENOMEM; - } /* * Use the last 4 bytes of the SKB payload packet as the CRC, used for --- linux-5.19.0.orig/drivers/net/ethernet/intel/e1000e/ich8lan.h +++ linux-5.19.0/drivers/net/ethernet/intel/e1000e/ich8lan.h @@ -41,7 +41,6 @@ #define E1000_FWSM_WLOCK_MAC_MASK 0x0380 #define E1000_FWSM_WLOCK_MAC_SHIFT 7 #define E1000_FWSM_ULP_CFG_DONE 0x00000400 /* Low power cfg done */ -#define E1000_EXFWSM_DPG_EXIT_DONE 0x00000001 /* Shared Receive Address Registers */ #define E1000_SHRAL_PCH_LPT(_i) (0x05408 + ((_i) * 8)) --- linux-5.19.0.orig/drivers/net/ethernet/intel/e1000e/netdev.c +++ linux-5.19.0/drivers/net/ethernet/intel/e1000e/netdev.c @@ -5936,9 +5936,9 @@ e1000_tx_queue(tx_ring, tx_flags, count); /* Make sure there is space in the ring for the next send. */ e1000_maybe_stop_tx(tx_ring, - (MAX_SKB_FRAGS * + ((MAX_SKB_FRAGS + 1) * DIV_ROUND_UP(PAGE_SIZE, - adapter->tx_fifo_limit) + 2)); + adapter->tx_fifo_limit) + 4)); if (!netdev_xmit_more() || netif_xmit_stopped(netdev_get_tx_queue(netdev, 0))) { @@ -6487,10 +6487,8 @@ static void e1000e_s0ix_exit_flow(struct e1000_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; - bool firmware_bug = false; u32 mac_data; u16 phy_data; - u32 i = 0; if (er32(FWSM) & E1000_ICH_FWSM_FW_VALID && hw->mac.type >= e1000_pch_adp) { @@ -6503,28 +6501,6 @@ mac_data &= ~E1000_H2ME_START_DPG; mac_data |= E1000_H2ME_EXIT_DPG; ew32(H2ME, mac_data); - - /* Poll up to 2.5 seconds for ME to unconfigure DPG. - * If this takes more than 1 second, show a warning indicating a - * firmware bug - */ - while (!(er32(EXFWSM) & E1000_EXFWSM_DPG_EXIT_DONE)) { - if (i > 100 && !firmware_bug) - firmware_bug = true; - - if (i++ == 250) { - e_dbg("Timeout (firmware bug): %d msec\n", - i * 10); - break; - } - - usleep_range(10000, 11000); - } - if (firmware_bug) - e_warn("DPG_EXIT_DONE took %d msec. This is a firmware bug\n", - i * 10); - else - e_dbg("DPG_EXIT_DONE cleared after %d msec\n", i * 10); } else { /* Request driver unconfigure the device from S0ix */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/e1000e/phy.c +++ linux-5.19.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-5.19.0.orig/drivers/net/ethernet/intel/e1000e/regs.h +++ linux-5.19.0/drivers/net/ethernet/intel/e1000e/regs.h @@ -213,7 +213,6 @@ #define E1000_FACTPS 0x05B30 /* Function Active and Power State to MNG */ #define E1000_SWSM 0x05B50 /* SW Semaphore */ #define E1000_FWSM 0x05B54 /* FW Semaphore */ -#define E1000_EXFWSM 0x05B58 /* Extended FW Semaphore */ /* Driver-only SW semaphore (not used by BOOT agents) */ #define E1000_SWSM2 0x05B58 #define E1000_FFLT_DBG 0x05F04 /* Debug Register */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/fm10k/fm10k_main.c @@ -32,6 +32,8 @@ **/ static int __init fm10k_init_module(void) { + int ret; + pr_info("%s\n", fm10k_driver_string); pr_info("%s\n", fm10k_copyright); @@ -43,7 +45,13 @@ fm10k_dbg_init(); - return fm10k_register_pci_driver(); + ret = fm10k_register_pci_driver(); + if (ret) { + fm10k_dbg_exit(); + destroy_workqueue(fm10k_workqueue); + } + + return ret; } module_init(fm10k_init_module); --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e.h +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e.h @@ -1291,4 +1291,18 @@ int i40e_add_del_cloud_filter_big_buf(struct i40e_vsi *vsi, struct i40e_cloud_filter *filter, bool add); + +/** + * i40e_is_tc_mqprio_enabled - check if TC MQPRIO is enabled on PF + * @pf: pointer to a pf. + * + * Check and return value of flag I40E_FLAG_TC_MQPRIO. + * + * Return: I40E_FLAG_TC_MQPRIO set state. + **/ +static inline u32 i40e_is_tc_mqprio_enabled(struct i40e_pf *pf) +{ + return pf->flags & I40E_FLAG_TC_MQPRIO; +} + #endif /* _I40E_H_ */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_client.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_client.c @@ -177,6 +177,10 @@ "Cannot locate client instance close routine\n"); return; } + if (!test_bit(__I40E_CLIENT_INSTANCE_OPENED, &cdev->state)) { + dev_dbg(&pf->pdev->dev, "Client is not open, abort close\n"); + return; + } cdev->client->ops->close(&cdev->lan_info, cdev->client, reset); clear_bit(__I40E_CLIENT_INSTANCE_OPENED, &cdev->state); i40e_client_release_qvlist(&cdev->lan_info); @@ -429,7 +433,6 @@ /* Remove failed client instance */ clear_bit(__I40E_CLIENT_INSTANCE_OPENED, &cdev->state); - i40e_client_del_instance(pf); return; } } --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_ethtool.c @@ -2093,9 +2093,6 @@ err = i40e_setup_rx_descriptors(&rx_rings[i]); if (err) goto rx_unwind; - err = i40e_alloc_rx_bi(&rx_rings[i]); - if (err) - goto rx_unwind; /* now allocate the Rx buffers to make sure the OS * has enough memory, any failure here means abort @@ -3098,10 +3095,17 @@ if (cmd->flow_type == TCP_V4_FLOW || cmd->flow_type == UDP_V4_FLOW) { - if (i_set & I40E_L3_SRC_MASK) - cmd->data |= RXH_IP_SRC; - if (i_set & I40E_L3_DST_MASK) - cmd->data |= RXH_IP_DST; + if (hw->mac.type == I40E_MAC_X722) { + if (i_set & I40E_X722_L3_SRC_MASK) + cmd->data |= RXH_IP_SRC; + if (i_set & I40E_X722_L3_DST_MASK) + cmd->data |= RXH_IP_DST; + } else { + if (i_set & I40E_L3_SRC_MASK) + cmd->data |= RXH_IP_SRC; + if (i_set & I40E_L3_DST_MASK) + cmd->data |= RXH_IP_DST; + } } else if (cmd->flow_type == TCP_V6_FLOW || cmd->flow_type == UDP_V6_FLOW) { if (i_set & I40E_L3_V6_SRC_MASK) @@ -3459,12 +3463,15 @@ /** * i40e_get_rss_hash_bits - Read RSS Hash bits from register + * @hw: hw structure * @nfc: pointer to user request * @i_setc: bits currently set * * Returns value of bits to be set per user request **/ -static u64 i40e_get_rss_hash_bits(struct ethtool_rxnfc *nfc, u64 i_setc) +static u64 i40e_get_rss_hash_bits(struct i40e_hw *hw, + struct ethtool_rxnfc *nfc, + u64 i_setc) { u64 i_set = i_setc; u64 src_l3 = 0, dst_l3 = 0; @@ -3483,8 +3490,13 @@ dst_l3 = I40E_L3_V6_DST_MASK; } else if (nfc->flow_type == TCP_V4_FLOW || nfc->flow_type == UDP_V4_FLOW) { - src_l3 = I40E_L3_SRC_MASK; - dst_l3 = I40E_L3_DST_MASK; + if (hw->mac.type == I40E_MAC_X722) { + src_l3 = I40E_X722_L3_SRC_MASK; + dst_l3 = I40E_X722_L3_DST_MASK; + } else { + src_l3 = I40E_L3_SRC_MASK; + dst_l3 = I40E_L3_DST_MASK; + } } else { /* Any other flow type are not supported here */ return i_set; @@ -3502,6 +3514,7 @@ return i_set; } +#define FLOW_PCTYPES_SIZE 64 /** * i40e_set_rss_hash_opt - Enable/Disable flow types for RSS hash * @pf: pointer to the physical function struct @@ -3514,9 +3527,11 @@ struct i40e_hw *hw = &pf->hw; u64 hena = (u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(0)) | ((u64)i40e_read_rx_ctl(hw, I40E_PFQF_HENA(1)) << 32); - u8 flow_pctype = 0; + DECLARE_BITMAP(flow_pctypes, FLOW_PCTYPES_SIZE); u64 i_set, i_setc; + bitmap_zero(flow_pctypes, FLOW_PCTYPES_SIZE); + if (pf->flags & I40E_FLAG_MFP_ENABLED) { dev_err(&pf->pdev->dev, "Change of RSS hash input set is not supported when MFP mode is enabled\n"); @@ -3532,36 +3547,35 @@ switch (nfc->flow_type) { case TCP_V4_FLOW: - flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_TCP; + set_bit(I40E_FILTER_PCTYPE_NONF_IPV4_TCP, flow_pctypes); if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) - hena |= - BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK); + set_bit(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK, + flow_pctypes); break; case TCP_V6_FLOW: - flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_TCP; + set_bit(I40E_FILTER_PCTYPE_NONF_IPV6_TCP, flow_pctypes); if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) - hena |= - BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV4_TCP_SYN_NO_ACK); - if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) - hena |= - BIT_ULL(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK); + set_bit(I40E_FILTER_PCTYPE_NONF_IPV6_TCP_SYN_NO_ACK, + flow_pctypes); break; case UDP_V4_FLOW: - flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV4_UDP; - if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) - hena |= - BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP) | - BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP); - + set_bit(I40E_FILTER_PCTYPE_NONF_IPV4_UDP, flow_pctypes); + if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) { + set_bit(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP, + flow_pctypes); + set_bit(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV4_UDP, + flow_pctypes); + } hena |= BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV4); break; case UDP_V6_FLOW: - flow_pctype = I40E_FILTER_PCTYPE_NONF_IPV6_UDP; - if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) - hena |= - BIT_ULL(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP) | - BIT_ULL(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP); - + set_bit(I40E_FILTER_PCTYPE_NONF_IPV6_UDP, flow_pctypes); + if (pf->hw_features & I40E_HW_MULTIPLE_TCP_UDP_RSS_PCTYPE) { + set_bit(I40E_FILTER_PCTYPE_NONF_UNICAST_IPV6_UDP, + flow_pctypes); + set_bit(I40E_FILTER_PCTYPE_NONF_MULTICAST_IPV6_UDP, + flow_pctypes); + } hena |= BIT_ULL(I40E_FILTER_PCTYPE_FRAG_IPV6); break; case AH_ESP_V4_FLOW: @@ -3594,17 +3608,20 @@ return -EINVAL; } - if (flow_pctype) { - i_setc = (u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, - flow_pctype)) | - ((u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, - flow_pctype)) << 32); - i_set = i40e_get_rss_hash_bits(nfc, i_setc); - i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, flow_pctype), - (u32)i_set); - i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, flow_pctype), - (u32)(i_set >> 32)); - hena |= BIT_ULL(flow_pctype); + if (bitmap_weight(flow_pctypes, FLOW_PCTYPES_SIZE)) { + u8 flow_id; + + for_each_set_bit(flow_id, flow_pctypes, FLOW_PCTYPES_SIZE) { + i_setc = (u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, flow_id)) | + ((u64)i40e_read_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, flow_id)) << 32); + i_set = i40e_get_rss_hash_bits(&pf->hw, nfc, i_setc); + + i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(0, flow_id), + (u32)i_set); + i40e_write_rx_ctl(hw, I40E_GLQF_HASH_INSET(1, flow_id), + (u32)(i_set >> 32)); + hena |= BIT_ULL(flow_id); + } } i40e_write_rx_ctl(hw, I40E_PFQF_HENA(0), (u32)hena); @@ -4357,11 +4374,7 @@ return -EOPNOTSUPP; /* First 4 bytes of L4 header */ - if (usr_ip4_spec->l4_4_bytes == htonl(0xFFFFFFFF)) - new_mask |= I40E_L4_SRC_MASK | I40E_L4_DST_MASK; - else if (!usr_ip4_spec->l4_4_bytes) - new_mask &= ~(I40E_L4_SRC_MASK | I40E_L4_DST_MASK); - else + if (usr_ip4_spec->l4_4_bytes) return -EOPNOTSUPP; /* Filtering on Type of Service is not supported. */ @@ -4395,16 +4408,12 @@ (struct in6_addr *)&ipv6_full_mask)) new_mask |= I40E_L3_V6_DST_MASK; else if (ipv6_addr_any((struct in6_addr *) - &usr_ip6_spec->ip6src)) + &usr_ip6_spec->ip6dst)) new_mask &= ~I40E_L3_V6_DST_MASK; else return -EOPNOTSUPP; - if (usr_ip6_spec->l4_4_bytes == htonl(0xFFFFFFFF)) - new_mask |= I40E_L4_SRC_MASK | I40E_L4_DST_MASK; - else if (!usr_ip6_spec->l4_4_bytes) - new_mask &= ~(I40E_L4_SRC_MASK | I40E_L4_DST_MASK); - else + if (usr_ip6_spec->l4_4_bytes) return -EOPNOTSUPP; /* Filtering on Traffic class is not supported. */ @@ -4931,7 +4940,7 @@ /* We do not support setting channels via ethtool when TCs are * configured through mqprio */ - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) return -EINVAL; /* verify they are not requesting separate vectors */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -384,7 +384,9 @@ set_bit(__I40E_GLOBAL_RESET_REQUESTED, pf->state); break; default: - netdev_err(netdev, "tx_timeout recovery unsuccessful\n"); + netdev_err(netdev, "tx_timeout recovery unsuccessful, device is in non-recoverable state.\n"); + set_bit(__I40E_DOWN_REQUESTED, pf->state); + set_bit(__I40E_VSI_DOWN_REQUESTED, vsi->state); break; } @@ -3438,12 +3440,8 @@ if (ring->vsi->type == I40E_VSI_MAIN) xdp_rxq_info_unreg_mem_model(&ring->xdp_rxq); - kfree(ring->rx_bi); ring->xsk_pool = i40e_xsk_pool(ring); if (ring->xsk_pool) { - ret = i40e_alloc_rx_bi_zc(ring); - if (ret) - return ret; ring->rx_buf_len = xsk_pool_get_rx_frame_size(ring->xsk_pool); /* For AF_XDP ZC, we disallow packets to span on @@ -3461,9 +3459,6 @@ ring->queue_index); } else { - ret = i40e_alloc_rx_bi(ring); - if (ret) - return ret; ring->rx_buf_len = vsi->rx_buf_len; if (ring->vsi->type == I40E_VSI_MAIN) { ret = xdp_rxq_info_reg_mem_model(&ring->xdp_rxq, @@ -3573,6 +3568,24 @@ } /** + * i40e_calculate_vsi_rx_buf_len - Calculates buffer length + * + * @vsi: VSI to calculate rx_buf_len from + */ +static u16 i40e_calculate_vsi_rx_buf_len(struct i40e_vsi *vsi) +{ + if (!vsi->netdev || (vsi->back->flags & I40E_FLAG_LEGACY_RX)) + return I40E_RXBUFFER_2048; + +#if (PAGE_SIZE < 8192) + if (!I40E_2K_TOO_SMALL_WITH_PADDING && vsi->netdev->mtu <= ETH_DATA_LEN) + return I40E_RXBUFFER_1536 - NET_IP_ALIGN; +#endif + + return PAGE_SIZE < 8192 ? I40E_RXBUFFER_3072 : I40E_RXBUFFER_2048; +} + +/** * i40e_vsi_configure_rx - Configure the VSI for Rx * @vsi: the VSI being configured * @@ -3583,20 +3596,14 @@ int err = 0; u16 i; - if (!vsi->netdev || (vsi->back->flags & I40E_FLAG_LEGACY_RX)) { - vsi->max_frame = I40E_MAX_RXBUFFER; - vsi->rx_buf_len = I40E_RXBUFFER_2048; + vsi->max_frame = I40E_MAX_RXBUFFER; + vsi->rx_buf_len = i40e_calculate_vsi_rx_buf_len(vsi); + #if (PAGE_SIZE < 8192) - } else if (!I40E_2K_TOO_SMALL_WITH_PADDING && - (vsi->netdev->mtu <= ETH_DATA_LEN)) { + if (vsi->netdev && !I40E_2K_TOO_SMALL_WITH_PADDING && + vsi->netdev->mtu <= ETH_DATA_LEN) vsi->max_frame = I40E_RXBUFFER_1536 - NET_IP_ALIGN; - vsi->rx_buf_len = I40E_RXBUFFER_1536 - NET_IP_ALIGN; #endif - } else { - vsi->max_frame = I40E_MAX_RXBUFFER; - vsi->rx_buf_len = (PAGE_SIZE < 8192) ? I40E_RXBUFFER_3072 : - I40E_RXBUFFER_2048; - } /* set up individual rings */ for (i = 0; i < vsi->num_queue_pairs && !err; i++) @@ -5337,7 +5344,7 @@ u8 num_tc = 0; struct i40e_dcbx_config *dcbcfg = &hw->local_dcbx_config; - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) return pf->vsi[pf->lan_vsi]->mqprio_qopt.qopt.num_tc; /* If neither MQPRIO nor DCB is enabled, then always use single TC */ @@ -5369,7 +5376,7 @@ **/ static u8 i40e_pf_get_tc_map(struct i40e_pf *pf) { - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) return i40e_mqprio_get_enabled_tc(pf); /* If neither MQPRIO nor DCB is enabled for this PF then just return @@ -5466,7 +5473,7 @@ int i; /* There is no need to reset BW when mqprio mode is on. */ - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) return 0; if (!vsi->mqprio_qopt.qopt.hw && !(pf->flags & I40E_FLAG_DCB_ENABLED)) { ret = i40e_set_bw_limit(vsi, vsi->seid, 0); @@ -5538,7 +5545,7 @@ vsi->tc_config.tc_info[i].qoffset); } - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) return; /* Assign UP2TC map for the VSI */ @@ -5699,7 +5706,7 @@ ctxt.vf_num = 0; ctxt.uplink_seid = vsi->uplink_seid; ctxt.info = vsi->info; - if (vsi->back->flags & I40E_FLAG_TC_MQPRIO) { + if (i40e_is_tc_mqprio_enabled(pf)) { ret = i40e_vsi_setup_queue_map_mqprio(vsi, &ctxt, enabled_tc); if (ret) goto out; @@ -5784,6 +5791,26 @@ } /** + * i40e_bw_bytes_to_mbits - Convert max_tx_rate from bytes to mbits + * @vsi: Pointer to vsi structure + * @max_tx_rate: max TX rate in bytes to be converted into Mbits + * + * Helper function to convert units before send to set BW limit + **/ +static u64 i40e_bw_bytes_to_mbits(struct i40e_vsi *vsi, u64 max_tx_rate) +{ + if (max_tx_rate < I40E_BW_MBPS_DIVISOR) { + dev_warn(&vsi->back->pdev->dev, + "Setting max tx rate to minimum usable value of 50Mbps.\n"); + max_tx_rate = I40E_BW_CREDIT_DIVISOR; + } else { + do_div(max_tx_rate, I40E_BW_MBPS_DIVISOR); + } + + return max_tx_rate; +} + +/** * i40e_set_bw_limit - setup BW limit for Tx traffic based on max_tx_rate * @vsi: VSI to be configured * @seid: seid of the channel/VSI @@ -5805,10 +5832,10 @@ max_tx_rate, seid); return -EINVAL; } - if (max_tx_rate && max_tx_rate < 50) { + if (max_tx_rate && max_tx_rate < I40E_BW_CREDIT_DIVISOR) { dev_warn(&pf->pdev->dev, "Setting max tx rate to minimum usable value of 50Mbps.\n"); - max_tx_rate = 50; + max_tx_rate = I40E_BW_CREDIT_DIVISOR; } /* Tx rate credits are in values of 50Mbps, 0 is disabled */ @@ -6423,7 +6450,7 @@ pf->flags |= I40E_FLAG_VEB_MODE_ENABLED; if (vsi->type == I40E_VSI_MAIN) { - if (pf->flags & I40E_FLAG_TC_MQPRIO) + if (i40e_is_tc_mqprio_enabled(pf)) i40e_do_reset(pf, I40E_PF_RESET_FLAG, true); else i40e_do_reset_safe(pf, I40E_PF_RESET_FLAG); @@ -6534,6 +6561,9 @@ vsi->tc_seid_map[i] = ch->seid; } } + + /* reset to reconfigure TX queue contexts */ + i40e_do_reset(vsi->back, I40E_PF_RESET_FLAG, true); return ret; err_free: @@ -7817,7 +7847,7 @@ netdev_info(netdev, "Macvlans are not supported when DCB is enabled\n"); return ERR_PTR(-EINVAL); } - if ((pf->flags & I40E_FLAG_TC_MQPRIO)) { + if (i40e_is_tc_mqprio_enabled(pf)) { netdev_info(netdev, "Macvlans are not supported when HW TC offload is on\n"); return ERR_PTR(-EINVAL); } @@ -8070,7 +8100,7 @@ /* Quiesce VSI queues */ i40e_quiesce_vsi(vsi); - if (!hw && !(pf->flags & I40E_FLAG_TC_MQPRIO)) + if (!hw && !i40e_is_tc_mqprio_enabled(pf)) i40e_remove_queue_channels(vsi); /* Configure VSI for enabled TCs */ @@ -8094,11 +8124,11 @@ "Setup channel (id:%u) utilizing num_queues %d\n", vsi->seid, vsi->tc_config.tc_info[0].qcount); - if (pf->flags & I40E_FLAG_TC_MQPRIO) { + if (i40e_is_tc_mqprio_enabled(pf)) { if (vsi->mqprio_qopt.max_rate[0]) { - u64 max_tx_rate = vsi->mqprio_qopt.max_rate[0]; + u64 max_tx_rate = i40e_bw_bytes_to_mbits(vsi, + vsi->mqprio_qopt.max_rate[0]); - do_div(max_tx_rate, I40E_BW_MBPS_DIVISOR); ret = i40e_set_bw_limit(vsi, vsi->seid, max_tx_rate); if (!ret) { u64 credits = max_tx_rate; @@ -10521,6 +10551,21 @@ } /** + * i40e_clean_xps_state - clean xps state for every tx_ring + * @vsi: ptr to the VSI + **/ +static void i40e_clean_xps_state(struct i40e_vsi *vsi) +{ + int i; + + if (vsi->tx_rings) + for (i = 0; i < vsi->num_queue_pairs; i++) + if (vsi->tx_rings[i]) + clear_bit(__I40E_TX_XPS_INIT_DONE, + vsi->tx_rings[i]->state); +} + +/** * i40e_prep_for_reset - prep for the core to reset * @pf: board private structure * @@ -10544,8 +10589,10 @@ i40e_pf_quiesce_all_vsi(pf); for (v = 0; v < pf->num_alloc_vsi; v++) { - if (pf->vsi[v]) + if (pf->vsi[v]) { + i40e_clean_xps_state(pf->vsi[v]); pf->vsi[v]->seid = 0; + } } i40e_shutdown_adminq(&pf->hw); @@ -10748,7 +10795,7 @@ * unless I40E_FLAG_TC_MQPRIO was enabled or DCB * is not supported with new link speed */ - if (pf->flags & I40E_FLAG_TC_MQPRIO) { + if (i40e_is_tc_mqprio_enabled(pf)) { i40e_aq_set_dcb_parameters(hw, false, NULL); } else { if (I40E_IS_X710TL_DEVICE(hw->device_id) && @@ -10843,10 +10890,10 @@ } if (vsi->mqprio_qopt.max_rate[0]) { - u64 max_tx_rate = vsi->mqprio_qopt.max_rate[0]; + u64 max_tx_rate = i40e_bw_bytes_to_mbits(vsi, + vsi->mqprio_qopt.max_rate[0]); u64 credits = 0; - do_div(max_tx_rate, I40E_BW_MBPS_DIVISOR); ret = i40e_set_bw_limit(vsi, vsi->seid, max_tx_rate); if (ret) goto end_unlock; @@ -13132,7 +13179,7 @@ int i; /* Don't allow frames that span over multiple buffers */ - if (frame_size > vsi->rx_buf_len) { + if (frame_size > i40e_calculate_vsi_rx_buf_len(vsi)) { NL_SET_ERR_MSG_MOD(extack, "MTU too large to enable XDP"); return -EINVAL; } @@ -13156,6 +13203,14 @@ i40e_reset_and_rebuild(pf, true, true); } + if (!i40e_enabled_xdp_vsi(vsi) && prog) { + if (i40e_realloc_rx_bi_zc(vsi, true)) + return -ENOMEM; + } else if (i40e_enabled_xdp_vsi(vsi) && !prog) { + if (i40e_realloc_rx_bi_zc(vsi, false)) + return -ENOMEM; + } + for (i = 0; i < vsi->num_queue_pairs; i++) WRITE_ONCE(vsi->rx_rings[i]->xdp_prog, vsi->xdp_prog); @@ -13388,6 +13443,7 @@ i40e_queue_pair_disable_irq(vsi, queue_pair); err = i40e_queue_pair_toggle_rings(vsi, queue_pair, false /* off */); + i40e_clean_rx_ring(vsi->rx_rings[queue_pair]); i40e_queue_pair_toggle_napi(vsi, queue_pair, false /* off */); i40e_queue_pair_clean_rings(vsi, queue_pair); i40e_queue_pair_reset_stats(vsi, queue_pair); @@ -16502,6 +16558,8 @@ **/ static int __init i40e_init_module(void) { + int err; + pr_info("%s: %s\n", i40e_driver_name, i40e_driver_string); pr_info("%s: %s\n", i40e_driver_name, i40e_copyright); @@ -16519,7 +16577,14 @@ } i40e_dbg_init(); - return pci_register_driver(&i40e_driver); + err = pci_register_driver(&i40e_driver); + if (err) { + destroy_workqueue(i40e_wq); + i40e_dbg_exit(); + return err; + } + + return 0; } module_init(i40e_init_module); --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_txrx.c @@ -1458,14 +1458,6 @@ return -ENOMEM; } -int i40e_alloc_rx_bi(struct i40e_ring *rx_ring) -{ - unsigned long sz = sizeof(*rx_ring->rx_bi) * rx_ring->count; - - rx_ring->rx_bi = kzalloc(sz, GFP_KERNEL); - return rx_ring->rx_bi ? 0 : -ENOMEM; -} - static void i40e_clear_rx_bi(struct i40e_ring *rx_ring) { memset(rx_ring->rx_bi, 0, sizeof(*rx_ring->rx_bi) * rx_ring->count); @@ -1596,6 +1588,11 @@ rx_ring->xdp_prog = rx_ring->vsi->xdp_prog; + rx_ring->rx_bi = + kcalloc(rx_ring->count, sizeof(*rx_ring->rx_bi), GFP_KERNEL); + if (!rx_ring->rx_bi) + return -ENOMEM; + return 0; } @@ -3204,11 +3201,13 @@ protocol = vlan_get_protocol(skb); - if (eth_p_mpls(protocol)) + if (eth_p_mpls(protocol)) { ip.hdr = skb_inner_network_header(skb); - else + l4.hdr = skb_checksum_start(skb); + } else { ip.hdr = skb_network_header(skb); - l4.hdr = skb_checksum_start(skb); + l4.hdr = skb_transport_header(skb); + } /* set the tx_flags to indicate the IP protocol type. this is * required so that checksum header computation below is accurate. @@ -3687,7 +3686,8 @@ u8 prio; /* is DCB enabled at all? */ - if (vsi->tc_config.numtc == 1) + if (vsi->tc_config.numtc == 1 || + i40e_is_tc_mqprio_enabled(vsi->back)) return netdev_pick_tx(netdev, skb, sb_dev); prio = skb->priority; --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_txrx.h +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_txrx.h @@ -469,7 +469,6 @@ bool __i40e_chk_linearize(struct sk_buff *skb); int i40e_xdp_xmit(struct net_device *dev, int n, struct xdp_frame **frames, u32 flags); -int i40e_alloc_rx_bi(struct i40e_ring *rx_ring); /** * i40e_get_head - Retrieve head from head writeback --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_type.h +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_type.h @@ -1404,6 +1404,10 @@ #define I40E_PFQF_CTL_0_HASHLUTSIZE_512 0x00010000 /* INPUT SET MASK for RSS, flow director, and flexible payload */ +#define I40E_X722_L3_SRC_SHIFT 49 +#define I40E_X722_L3_SRC_MASK (0x3ULL << I40E_X722_L3_SRC_SHIFT) +#define I40E_X722_L3_DST_SHIFT 41 +#define I40E_X722_L3_DST_MASK (0x3ULL << I40E_X722_L3_DST_SHIFT) #define I40E_L3_SRC_SHIFT 47 #define I40E_L3_SRC_MASK (0x3ULL << I40E_L3_SRC_SHIFT) #define I40E_L3_V6_SRC_SHIFT 43 --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c @@ -1536,10 +1536,12 @@ 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)) + /* Bail out if VFs are disabled. */ + if (test_bit(__I40E_VF_DISABLE, pf->state)) + return true; + + /* If VF is being reset already we don't need to continue. */ + if (test_and_set_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) return true; i40e_trigger_vf_reset(vf, flr); @@ -1576,7 +1578,8 @@ i40e_cleanup_reset_vf(vf); i40e_flush(hw); - clear_bit(__I40E_VF_DISABLE, pf->state); + usleep_range(20000, 40000); + clear_bit(I40E_VF_STATE_RESETTING, &vf->vf_states); return true; } @@ -1609,8 +1612,12 @@ return false; /* Begin reset on all VFs at once */ - for (v = 0; v < pf->num_alloc_vfs; v++) - i40e_trigger_vf_reset(&pf->vf[v], flr); + for (v = 0; v < pf->num_alloc_vfs; v++) { + vf = &pf->vf[v]; + /* If VF is being reset no need to trigger reset again */ + if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) + i40e_trigger_vf_reset(&pf->vf[v], flr); + } /* HW requires some time to make sure it can flush the FIFO for a VF * when it resets it. Poll the VPGEN_VFRSTAT register for each VF in @@ -1626,9 +1633,11 @@ */ while (v < pf->num_alloc_vfs) { vf = &pf->vf[v]; - reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); - if (!(reg & I40E_VPGEN_VFRSTAT_VFRD_MASK)) - break; + if (!test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) { + reg = rd32(hw, I40E_VPGEN_VFRSTAT(vf->vf_id)); + if (!(reg & I40E_VPGEN_VFRSTAT_VFRD_MASK)) + break; + } /* If the current VF has finished resetting, move on * to the next VF in sequence. @@ -1656,6 +1665,10 @@ if (pf->vf[v].lan_vsi_idx == 0) continue; + /* If VF is reset in another thread just continue */ + if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) + continue; + i40e_vsi_stop_rings_no_wait(pf->vsi[pf->vf[v].lan_vsi_idx]); } @@ -1667,6 +1680,10 @@ if (pf->vf[v].lan_vsi_idx == 0) continue; + /* If VF is reset in another thread just continue */ + if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) + continue; + i40e_vsi_wait_queues_disabled(pf->vsi[pf->vf[v].lan_vsi_idx]); } @@ -1676,10 +1693,16 @@ mdelay(50); /* Finish the reset on each VF */ - for (v = 0; v < pf->num_alloc_vfs; v++) + for (v = 0; v < pf->num_alloc_vfs; v++) { + /* If VF is reset in another thread just continue */ + if (test_bit(I40E_VF_STATE_RESETTING, &vf->vf_states)) + continue; + i40e_cleanup_reset_vf(&pf->vf[v]); + } i40e_flush(hw); + usleep_range(20000, 40000); clear_bit(__I40E_VF_DISABLE, pf->state); return true; @@ -2039,6 +2062,25 @@ } /** + * i40e_vc_get_max_frame_size + * @vf: pointer to the VF + * + * Max frame size is determined based on the current port's max frame size and + * whether a port VLAN is configured on this VF. The VF is not aware whether + * it's in a port VLAN so the PF needs to account for this in max frame size + * checks and sending the max frame size to the VF. + **/ +static u16 i40e_vc_get_max_frame_size(struct i40e_vf *vf) +{ + u16 max_frame_size = vf->pf->hw.phy.link_info.max_frame_size; + + if (vf->port_vlan_id) + max_frame_size -= VLAN_HLEN; + + return max_frame_size; +} + +/** * i40e_vc_get_vf_resources_msg * @vf: pointer to the VF info * @msg: pointer to the msg buffer @@ -2139,6 +2181,7 @@ vfres->max_vectors = pf->hw.func_caps.num_msix_vectors_vf; vfres->rss_key_size = I40E_HKEY_ARRAY_SIZE; vfres->rss_lut_size = I40E_VF_HLUT_ARRAY_SIZE; + vfres->max_mtu = i40e_vc_get_max_frame_size(vf); if (vf->lan_vsi_idx) { vfres->vsi_res[0].vsi_id = vf->lan_vsi_id; --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.h @@ -39,6 +39,7 @@ I40E_VF_STATE_MC_PROMISC, I40E_VF_STATE_UC_PROMISC, I40E_VF_STATE_PRE_ENABLE, + I40E_VF_STATE_RESETTING }; /* VF capabilities */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_xsk.c +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_xsk.c @@ -10,14 +10,6 @@ #include "i40e_txrx_common.h" #include "i40e_xsk.h" -int i40e_alloc_rx_bi_zc(struct i40e_ring *rx_ring) -{ - unsigned long sz = sizeof(*rx_ring->rx_bi_zc) * rx_ring->count; - - rx_ring->rx_bi_zc = kzalloc(sz, GFP_KERNEL); - return rx_ring->rx_bi_zc ? 0 : -ENOMEM; -} - void i40e_clear_rx_bi_zc(struct i40e_ring *rx_ring) { memset(rx_ring->rx_bi_zc, 0, @@ -30,6 +22,58 @@ } /** + * i40e_realloc_rx_xdp_bi - reallocate SW ring for either XSK or normal buffer + * @rx_ring: Current rx ring + * @pool_present: is pool for XSK present + * + * Try allocating memory and return ENOMEM, if failed to allocate. + * If allocation was successful, substitute buffer with allocated one. + * Returns 0 on success, negative on failure + */ +static int i40e_realloc_rx_xdp_bi(struct i40e_ring *rx_ring, bool pool_present) +{ + size_t elem_size = pool_present ? sizeof(*rx_ring->rx_bi_zc) : + sizeof(*rx_ring->rx_bi); + void *sw_ring = kcalloc(rx_ring->count, elem_size, GFP_KERNEL); + + if (!sw_ring) + return -ENOMEM; + + if (pool_present) { + kfree(rx_ring->rx_bi); + rx_ring->rx_bi = NULL; + rx_ring->rx_bi_zc = sw_ring; + } else { + kfree(rx_ring->rx_bi_zc); + rx_ring->rx_bi_zc = NULL; + rx_ring->rx_bi = sw_ring; + } + return 0; +} + +/** + * i40e_realloc_rx_bi_zc - reallocate rx SW rings + * @vsi: Current VSI + * @zc: is zero copy set + * + * Reallocate buffer for rx_rings that might be used by XSK. + * XDP requires more memory, than rx_buf provides. + * Returns 0 on success, negative on failure + */ +int i40e_realloc_rx_bi_zc(struct i40e_vsi *vsi, bool zc) +{ + struct i40e_ring *rx_ring; + unsigned long q; + + for_each_set_bit(q, vsi->af_xdp_zc_qps, vsi->alloc_queue_pairs) { + rx_ring = vsi->rx_rings[q]; + if (i40e_realloc_rx_xdp_bi(rx_ring, zc)) + return -ENOMEM; + } + return 0; +} + +/** * i40e_xsk_pool_enable - Enable/associate an AF_XDP buffer pool to a * certain ring/qid * @vsi: Current VSI @@ -69,6 +113,10 @@ if (err) return err; + err = i40e_realloc_rx_xdp_bi(vsi->rx_rings[qid], true); + if (err) + return err; + err = i40e_queue_pair_enable(vsi, qid); if (err) return err; @@ -113,6 +161,9 @@ xsk_pool_dma_unmap(pool, I40E_RX_DMA_ATTR); if (if_running) { + err = i40e_realloc_rx_xdp_bi(vsi->rx_rings[qid], false); + if (err) + return err; err = i40e_queue_pair_enable(vsi, qid); if (err) return err; --- linux-5.19.0.orig/drivers/net/ethernet/intel/i40e/i40e_xsk.h +++ linux-5.19.0/drivers/net/ethernet/intel/i40e/i40e_xsk.h @@ -32,7 +32,7 @@ bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, struct i40e_ring *tx_ring); int i40e_xsk_wakeup(struct net_device *dev, u32 queue_id, u32 flags); -int i40e_alloc_rx_bi_zc(struct i40e_ring *rx_ring); +int i40e_realloc_rx_bi_zc(struct i40e_vsi *vsi, bool zc); void i40e_clear_rx_bi_zc(struct i40e_ring *rx_ring); #endif /* _I40E_XSK_H_ */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/iavf/iavf.h +++ linux-5.19.0/drivers/net/ethernet/intel/iavf/iavf.h @@ -92,6 +92,7 @@ #define IAVF_HKEY_ARRAY_SIZE ((IAVF_VFQF_HKEY_MAX_INDEX + 1) * 4) #define IAVF_HLUT_ARRAY_SIZE ((IAVF_VFQF_HLUT_MAX_INDEX + 1) * 4) #define IAVF_MBPS_DIVISOR 125000 /* divisor to convert to Mbps */ +#define IAVF_MBPS_QUANTA 50 #define IAVF_VIRTCHNL_VF_RESOURCE_SIZE (sizeof(struct virtchnl_vf_resource) + \ (IAVF_MAX_VF_VSI * \ @@ -430,6 +431,11 @@ /* lock to protect access to the cloud filter list */ spinlock_t cloud_filter_list_lock; u16 num_cloud_filters; + /* snapshot of "num_active_queues" before setup_tc for qdisc add + * is invoked. This information is useful during qdisc del flow, + * to restore correct number of queues + */ + int orig_num_active_queues; #define IAVF_MAX_FDIR_FILTERS 128 /* max allowed Flow Director filters */ u16 fdir_active_fltr; --- linux-5.19.0.orig/drivers/net/ethernet/intel/iavf/iavf_adminq.c +++ linux-5.19.0/drivers/net/ethernet/intel/iavf/iavf_adminq.c @@ -324,6 +324,7 @@ static enum iavf_status iavf_init_asq(struct iavf_hw *hw) { enum iavf_status ret_code = 0; + int i; if (hw->aq.asq.count > 0) { /* queue already initialized */ @@ -354,12 +355,17 @@ /* initialize base registers */ ret_code = iavf_config_asq_regs(hw); if (ret_code) - goto init_adminq_free_rings; + goto init_free_asq_bufs; /* success! */ hw->aq.asq.count = hw->aq.num_asq_entries; goto init_adminq_exit; +init_free_asq_bufs: + for (i = 0; i < hw->aq.num_asq_entries; i++) + iavf_free_dma_mem(hw, &hw->aq.asq.r.asq_bi[i]); + iavf_free_virt_mem(hw, &hw->aq.asq.dma_head); + init_adminq_free_rings: iavf_free_adminq_asq(hw); @@ -383,6 +389,7 @@ static enum iavf_status iavf_init_arq(struct iavf_hw *hw) { enum iavf_status ret_code = 0; + int i; if (hw->aq.arq.count > 0) { /* queue already initialized */ @@ -413,12 +420,16 @@ /* initialize base registers */ ret_code = iavf_config_arq_regs(hw); if (ret_code) - goto init_adminq_free_rings; + goto init_free_arq_bufs; /* success! */ hw->aq.arq.count = hw->aq.num_arq_entries; goto init_adminq_exit; +init_free_arq_bufs: + for (i = 0; i < hw->aq.num_arq_entries; i++) + iavf_free_dma_mem(hw, &hw->aq.arq.r.arq_bi[i]); + iavf_free_virt_mem(hw, &hw->aq.arq.dma_head); init_adminq_free_rings: iavf_free_adminq_arq(hw); --- linux-5.19.0.orig/drivers/net/ethernet/intel/iavf/iavf_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -1184,66 +1184,138 @@ } /** - * iavf_down - Shutdown the connection processing + * iavf_clear_mac_vlan_filters - Remove mac and vlan filters not sent to PF + * yet and mark other to be removed. * @adapter: board private structure - * - * Expects to be called while holding the __IAVF_IN_CRITICAL_TASK bit lock. **/ -void iavf_down(struct iavf_adapter *adapter) +static void iavf_clear_mac_vlan_filters(struct iavf_adapter *adapter) { - struct net_device *netdev = adapter->netdev; - struct iavf_vlan_filter *vlf; - struct iavf_cloud_filter *cf; - struct iavf_fdir_fltr *fdir; - struct iavf_mac_filter *f; - struct iavf_adv_rss *rss; - - if (adapter->state <= __IAVF_DOWN_PENDING) - return; - - netif_carrier_off(netdev); - netif_tx_disable(netdev); - adapter->link_up = false; - iavf_napi_disable_all(adapter); - iavf_irq_disable(adapter); + struct iavf_vlan_filter *vlf, *vlftmp; + struct iavf_mac_filter *f, *ftmp; spin_lock_bh(&adapter->mac_vlan_list_lock); - /* clear the sync flag on all filters */ __dev_uc_unsync(adapter->netdev, NULL); __dev_mc_unsync(adapter->netdev, NULL); /* remove all MAC filters */ - list_for_each_entry(f, &adapter->mac_filter_list, list) { - f->remove = true; + list_for_each_entry_safe(f, ftmp, &adapter->mac_filter_list, + list) { + if (f->add) { + list_del(&f->list); + kfree(f); + } else { + f->remove = true; + } } /* remove all VLAN filters */ - list_for_each_entry(vlf, &adapter->vlan_filter_list, list) { - vlf->remove = true; + list_for_each_entry_safe(vlf, vlftmp, &adapter->vlan_filter_list, + list) { + if (vlf->add) { + list_del(&vlf->list); + kfree(vlf); + } else { + vlf->remove = true; + } } - spin_unlock_bh(&adapter->mac_vlan_list_lock); +} + +/** + * iavf_clear_cloud_filters - Remove cloud filters not sent to PF yet and + * mark other to be removed. + * @adapter: board private structure + **/ +static void iavf_clear_cloud_filters(struct iavf_adapter *adapter) +{ + struct iavf_cloud_filter *cf, *cftmp; /* remove all cloud filters */ spin_lock_bh(&adapter->cloud_filter_list_lock); - list_for_each_entry(cf, &adapter->cloud_filter_list, list) { - cf->del = true; + list_for_each_entry_safe(cf, cftmp, &adapter->cloud_filter_list, + list) { + if (cf->add) { + list_del(&cf->list); + kfree(cf); + adapter->num_cloud_filters--; + } else { + cf->del = true; + } } spin_unlock_bh(&adapter->cloud_filter_list_lock); +} + +/** + * iavf_clear_fdir_filters - Remove fdir filters not sent to PF yet and mark + * other to be removed. + * @adapter: board private structure + **/ +static void iavf_clear_fdir_filters(struct iavf_adapter *adapter) +{ + struct iavf_fdir_fltr *fdir, *fdirtmp; /* remove all Flow Director filters */ spin_lock_bh(&adapter->fdir_fltr_lock); - list_for_each_entry(fdir, &adapter->fdir_list_head, list) { - fdir->state = IAVF_FDIR_FLTR_DEL_REQUEST; + list_for_each_entry_safe(fdir, fdirtmp, &adapter->fdir_list_head, + list) { + if (fdir->state == IAVF_FDIR_FLTR_ADD_REQUEST) { + list_del(&fdir->list); + kfree(fdir); + adapter->fdir_active_fltr--; + } else { + fdir->state = IAVF_FDIR_FLTR_DEL_REQUEST; + } } spin_unlock_bh(&adapter->fdir_fltr_lock); +} + +/** + * iavf_clear_adv_rss_conf - Remove adv rss conf not sent to PF yet and mark + * other to be removed. + * @adapter: board private structure + **/ +static void iavf_clear_adv_rss_conf(struct iavf_adapter *adapter) +{ + struct iavf_adv_rss *rss, *rsstmp; /* remove all advance RSS configuration */ spin_lock_bh(&adapter->adv_rss_lock); - list_for_each_entry(rss, &adapter->adv_rss_list_head, list) - rss->state = IAVF_ADV_RSS_DEL_REQUEST; + list_for_each_entry_safe(rss, rsstmp, &adapter->adv_rss_list_head, + list) { + if (rss->state == IAVF_ADV_RSS_ADD_REQUEST) { + list_del(&rss->list); + kfree(rss); + } else { + rss->state = IAVF_ADV_RSS_DEL_REQUEST; + } + } spin_unlock_bh(&adapter->adv_rss_lock); +} + +/** + * iavf_down - Shutdown the connection processing + * @adapter: board private structure + * + * Expects to be called while holding the __IAVF_IN_CRITICAL_TASK bit lock. + **/ +void iavf_down(struct iavf_adapter *adapter) +{ + struct net_device *netdev = adapter->netdev; + + if (adapter->state <= __IAVF_DOWN_PENDING) + return; + + netif_carrier_off(netdev); + netif_tx_disable(netdev); + adapter->link_up = false; + iavf_napi_disable_all(adapter); + iavf_irq_disable(adapter); + + iavf_clear_mac_vlan_filters(adapter); + iavf_clear_cloud_filters(adapter); + iavf_clear_fdir_filters(adapter); + iavf_clear_adv_rss_conf(adapter); if (!(adapter->flags & IAVF_FLAG_PF_COMMS_FAILED)) { /* cancel any current operation */ @@ -1252,11 +1324,16 @@ * here for this to complete. The watchdog is still running * and it will take care of this. */ - adapter->aq_required = IAVF_FLAG_AQ_DEL_MAC_FILTER; - adapter->aq_required |= IAVF_FLAG_AQ_DEL_VLAN_FILTER; - adapter->aq_required |= IAVF_FLAG_AQ_DEL_CLOUD_FILTER; - adapter->aq_required |= IAVF_FLAG_AQ_DEL_FDIR_FILTER; - adapter->aq_required |= IAVF_FLAG_AQ_DEL_ADV_RSS_CFG; + if (!list_empty(&adapter->mac_filter_list)) + adapter->aq_required |= IAVF_FLAG_AQ_DEL_MAC_FILTER; + if (!list_empty(&adapter->vlan_filter_list)) + adapter->aq_required |= IAVF_FLAG_AQ_DEL_VLAN_FILTER; + if (!list_empty(&adapter->cloud_filter_list)) + adapter->aq_required |= IAVF_FLAG_AQ_DEL_CLOUD_FILTER; + if (!list_empty(&adapter->fdir_list_head)) + adapter->aq_required |= IAVF_FLAG_AQ_DEL_FDIR_FILTER; + if (!list_empty(&adapter->adv_rss_list_head)) + adapter->aq_required |= IAVF_FLAG_AQ_DEL_ADV_RSS_CFG; adapter->aq_required |= IAVF_FLAG_AQ_DISABLE_QUEUES; } @@ -2281,7 +2358,7 @@ err = iavf_get_vf_config(adapter); if (err == -EALREADY) { err = iavf_send_vf_config_msg(adapter); - goto err_alloc; + goto err; } else if (err == -EINVAL) { /* We only get -EINVAL if the device is in a very bad * state or if we've been disabled for previous bad @@ -2759,7 +2836,6 @@ iavf_free_queues(adapter); memset(adapter->vf_res, 0, IAVF_VIRTCHNL_VF_RESOURCE_SIZE); iavf_shutdown_adminq(&adapter->hw); - adapter->netdev->flags &= ~IFF_UP; adapter->flags &= ~IAVF_FLAG_RESET_PENDING; iavf_change_state(adapter, __IAVF_DOWN); wake_up(&adapter->down_waitqueue); @@ -2789,6 +2865,11 @@ int i = 0, err; bool running; + /* Detach interface to avoid subsequent NDO callbacks */ + rtnl_lock(); + netif_device_detach(netdev); + rtnl_unlock(); + /* When device is being removed it doesn't make sense to run the reset * task, just return in such a case. */ @@ -2796,7 +2877,7 @@ if (adapter->state != __IAVF_REMOVE) queue_work(iavf_wq, &adapter->reset_task); - return; + goto reset_finish; } while (!mutex_trylock(&adapter->client_lock)) @@ -2854,6 +2935,11 @@ iavf_disable_vf(adapter); mutex_unlock(&adapter->client_lock); mutex_unlock(&adapter->crit_lock); + if (netif_running(netdev)) { + rtnl_lock(); + dev_close(netdev); + rtnl_unlock(); + } return; /* Do not attempt to reinit. It's dead, Jim. */ } @@ -2996,14 +3082,31 @@ mutex_unlock(&adapter->client_lock); mutex_unlock(&adapter->crit_lock); - return; + goto reset_finish; reset_err: + if (running) { + set_bit(__IAVF_VSI_DOWN, adapter->vsi.state); + iavf_free_traffic_irqs(adapter); + } + iavf_disable_vf(adapter); + mutex_unlock(&adapter->client_lock); mutex_unlock(&adapter->crit_lock); - if (running) - iavf_change_state(adapter, __IAVF_RUNNING); + + if (netif_running(netdev)) { + /* Close device to ensure that Tx queues will not be started + * during netif_device_attach() at the end of the reset task. + */ + rtnl_lock(); + dev_close(netdev); + rtnl_unlock(); + } + dev_err(&adapter->pdev->dev, "failed to allocate resources during reinit\n"); - iavf_close(netdev); +reset_finish: + rtnl_lock(); + netif_device_attach(netdev); + rtnl_unlock(); } /** @@ -3322,6 +3425,7 @@ struct tc_mqprio_qopt_offload *mqprio_qopt) { u64 total_max_rate = 0; + u32 tx_rate_rem = 0; int i, num_qps = 0; u64 tx_rate = 0; int ret = 0; @@ -3336,12 +3440,32 @@ return -EINVAL; if (mqprio_qopt->min_rate[i]) { dev_err(&adapter->pdev->dev, - "Invalid min tx rate (greater than 0) specified\n"); + "Invalid min tx rate (greater than 0) specified for TC%d\n", + i); return -EINVAL; } - /*convert to Mbps */ + + /* convert to Mbps */ tx_rate = div_u64(mqprio_qopt->max_rate[i], IAVF_MBPS_DIVISOR); + + if (mqprio_qopt->max_rate[i] && + tx_rate < IAVF_MBPS_QUANTA) { + dev_err(&adapter->pdev->dev, + "Invalid max tx rate for TC%d, minimum %dMbps\n", + i, IAVF_MBPS_QUANTA); + return -EINVAL; + } + + (void)div_u64_rem(tx_rate, IAVF_MBPS_QUANTA, &tx_rate_rem); + + if (tx_rate_rem != 0) { + dev_err(&adapter->pdev->dev, + "Invalid max tx rate for TC%d, not divisible by %d\n", + i, IAVF_MBPS_QUANTA); + return -EINVAL; + } + total_max_rate += tx_rate; num_qps += mqprio_qopt->qopt.count[i]; } @@ -3408,6 +3532,7 @@ netif_tx_disable(netdev); iavf_del_all_cloud_filters(adapter); adapter->aq_required = IAVF_FLAG_AQ_DISABLE_CHANNELS; + total_qps = adapter->orig_num_active_queues; goto exit; } else { return -EINVAL; @@ -3451,7 +3576,21 @@ adapter->ch_config.ch_info[i].offset = 0; } } + + /* Take snapshot of original config such as "num_active_queues" + * It is used later when delete ADQ flow is exercised, so that + * once delete ADQ flow completes, VF shall go back to its + * original queue configuration + */ + + adapter->orig_num_active_queues = adapter->num_active_queues; + + /* Store queue info based on TC so that VF gets configured + * with correct number of queues when VF completes ADQ config + * flow + */ adapter->ch_config.total_qps = total_qps; + netif_tx_stop_all_queues(netdev); netif_tx_disable(netdev); adapter->aq_required |= IAVF_FLAG_AQ_ENABLE_CHANNELS; @@ -3468,6 +3607,12 @@ } } exit: + if (test_bit(__IAVF_IN_REMOVE_TASK, &adapter->crit_section)) + return 0; + + netif_set_real_num_rx_queues(netdev, total_qps); + netif_set_real_num_tx_queues(netdev, total_qps); + return ret; } @@ -3944,8 +4089,17 @@ return -EIO; } - while (!mutex_trylock(&adapter->crit_lock)) + while (!mutex_trylock(&adapter->crit_lock)) { + /* If we are in __IAVF_INIT_CONFIG_ADAPTER state the crit_lock + * is already taken and iavf_open is called from an upper + * device's notifier reacting on NETDEV_REGISTER event. + * We have to leave here to avoid dead lock. + */ + if (adapter->state == __IAVF_INIT_CONFIG_ADAPTER) + return -EBUSY; + usleep_range(500, 1000); + } if (adapter->state != __IAVF_DOWN) { err = -EBUSY; @@ -4020,6 +4174,7 @@ static int iavf_close(struct net_device *netdev) { struct iavf_adapter *adapter = netdev_priv(netdev); + u64 aq_to_restore; int status; mutex_lock(&adapter->crit_lock); @@ -4032,6 +4187,29 @@ set_bit(__IAVF_VSI_DOWN, adapter->vsi.state); if (CLIENT_ENABLED(adapter)) adapter->flags |= IAVF_FLAG_CLIENT_NEEDS_CLOSE; + /* We cannot send IAVF_FLAG_AQ_GET_OFFLOAD_VLAN_V2_CAPS before + * IAVF_FLAG_AQ_DISABLE_QUEUES because in such case there is rtnl + * deadlock with adminq_task() until iavf_close timeouts. We must send + * IAVF_FLAG_AQ_GET_CONFIG before IAVF_FLAG_AQ_DISABLE_QUEUES to make + * disable queues possible for vf. Give only necessary flags to + * iavf_down and save other to set them right before iavf_close() + * returns, when IAVF_FLAG_AQ_DISABLE_QUEUES will be already sent and + * iavf will be in DOWN state. + */ + aq_to_restore = adapter->aq_required; + adapter->aq_required &= IAVF_FLAG_AQ_GET_CONFIG; + + /* Remove flags which we do not want to send after close or we want to + * send before disable queues. + */ + aq_to_restore &= ~(IAVF_FLAG_AQ_GET_CONFIG | + IAVF_FLAG_AQ_ENABLE_QUEUES | + IAVF_FLAG_AQ_CONFIGURE_QUEUES | + IAVF_FLAG_AQ_ADD_VLAN_FILTER | + IAVF_FLAG_AQ_ADD_MAC_FILTER | + IAVF_FLAG_AQ_ADD_CLOUD_FILTER | + IAVF_FLAG_AQ_ADD_FDIR_FILTER | + IAVF_FLAG_AQ_ADD_ADV_RSS_CFG); iavf_down(adapter); iavf_change_state(adapter, __IAVF_DOWN_PENDING); @@ -4055,6 +4233,10 @@ msecs_to_jiffies(500)); if (!status) netdev_warn(netdev, "Device resources not yet released\n"); + + mutex_lock(&adapter->crit_lock); + adapter->aq_required |= aq_to_restore; + mutex_unlock(&adapter->crit_lock); return 0; } @@ -4769,23 +4951,21 @@ static void iavf_remove(struct pci_dev *pdev) { struct iavf_adapter *adapter = iavf_pdev_to_adapter(pdev); - struct net_device *netdev = adapter->netdev; struct iavf_fdir_fltr *fdir, *fdirtmp; struct iavf_vlan_filter *vlf, *vlftmp; + struct iavf_cloud_filter *cf, *cftmp; struct iavf_adv_rss *rss, *rsstmp; struct iavf_mac_filter *f, *ftmp; - struct iavf_cloud_filter *cf, *cftmp; - struct iavf_hw *hw = &adapter->hw; + struct net_device *netdev; + struct iavf_hw *hw; int err; - /* When reboot/shutdown is in progress no need to do anything - * as the adapter is already REMOVE state that was set during - * iavf_shutdown() callback. - */ - if (adapter->state == __IAVF_REMOVE) + netdev = adapter->netdev; + hw = &adapter->hw; + + if (test_and_set_bit(__IAVF_IN_REMOVE_TASK, &adapter->crit_section)) return; - set_bit(__IAVF_IN_REMOVE_TASK, &adapter->crit_section); /* Wait until port initialization is complete. * There are flows where register/unregister netdev may race. */ @@ -4925,6 +5105,8 @@ **/ static int __init iavf_init_module(void) { + int ret; + pr_info("iavf: %s\n", iavf_driver_string); pr_info("%s\n", iavf_copyright); @@ -4935,7 +5117,12 @@ pr_err("%s: Failed to create workqueue\n", iavf_driver_name); return -ENOMEM; } - return pci_register_driver(&iavf_driver); + + ret = pci_register_driver(&iavf_driver); + if (ret) + destroy_workqueue(iavf_wq); + + return ret; } module_init(iavf_init_module); --- linux-5.19.0.orig/drivers/net/ethernet/intel/iavf/iavf_txrx.c +++ linux-5.19.0/drivers/net/ethernet/intel/iavf/iavf_txrx.c @@ -114,8 +114,11 @@ { u32 head, tail; + /* underlying hardware might not allow access and/or always return + * 0 for the head/tail registers so just use the cached values + */ head = ring->next_to_clean; - tail = readl(ring->tail); + tail = ring->next_to_use; if (head != tail) return (head < tail) ? @@ -1390,7 +1393,7 @@ #endif struct sk_buff *skb; - if (!rx_buffer) + if (!rx_buffer || !size) return NULL; /* prefetch first cache line of first page */ va = page_address(rx_buffer->page) + rx_buffer->page_offset; @@ -1548,7 +1551,7 @@ /* exit if we failed to retrieve a buffer */ if (!skb) { rx_ring->rx_stats.alloc_buff_failed++; - if (rx_buffer) + if (rx_buffer && size) rx_buffer->pagecnt_bias++; break; } --- linux-5.19.0.orig/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +++ linux-5.19.0/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c @@ -273,11 +273,14 @@ void iavf_configure_queues(struct iavf_adapter *adapter) { struct virtchnl_vsi_queue_config_info *vqci; - struct virtchnl_queue_pair_info *vqpi; + int i, max_frame = adapter->vf_res->max_mtu; int pairs = adapter->num_active_queues; - int i, max_frame = IAVF_MAX_RXBUFFER; + struct virtchnl_queue_pair_info *vqpi; size_t len; + if (max_frame > IAVF_MAX_RXBUFFER || !max_frame) + max_frame = IAVF_MAX_RXBUFFER; + if (adapter->current_op != VIRTCHNL_OP_UNKNOWN) { /* bail because we already have a command pending */ dev_err(&adapter->pdev->dev, "Cannot configure queues, command %d pending\n", @@ -2382,6 +2385,8 @@ list_for_each_entry(f, &adapter->vlan_filter_list, list) { if (f->is_new_vlan) { f->is_new_vlan = false; + if (!f->vlan.vid) + continue; if (f->vlan.tpid == ETH_P_8021Q) set_bit(f->vlan.vid, adapter->vsi.active_cvlans); --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice.h +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice.h @@ -684,8 +684,8 @@ * ice_xsk_pool - get XSK buffer pool bound to a ring * @ring: Rx ring to use * - * Returns a pointer to xdp_umem structure if there is a buffer pool present, - * NULL otherwise. + * Returns a pointer to xsk_buff_pool structure if there is a buffer pool + * present, NULL otherwise. */ static inline struct xsk_buff_pool *ice_xsk_pool(struct ice_rx_ring *ring) { @@ -699,23 +699,33 @@ } /** - * ice_tx_xsk_pool - get XSK buffer pool bound to a ring - * @ring: Tx ring to use + * ice_tx_xsk_pool - assign XSK buff pool to XDP ring + * @vsi: pointer to VSI + * @qid: index of a queue to look at XSK buff pool presence * - * Returns a pointer to xdp_umem structure if there is a buffer pool present, - * NULL otherwise. Tx equivalent of ice_xsk_pool. + * Sets XSK buff pool pointer on XDP ring. + * + * XDP ring is picked from Rx ring, whereas Rx ring is picked based on provided + * queue id. Reason for doing so is that queue vectors might have assigned more + * than one XDP ring, e.g. when user reduced the queue count on netdev; Rx ring + * carries a pointer to one of these XDP rings for its own purposes, such as + * handling XDP_TX action, therefore we can piggyback here on the + * rx_ring->xdp_ring assignment that was done during XDP rings initialization. */ -static inline struct xsk_buff_pool *ice_tx_xsk_pool(struct ice_tx_ring *ring) +static inline void ice_tx_xsk_pool(struct ice_vsi *vsi, u16 qid) { - struct ice_vsi *vsi = ring->vsi; - u16 qid; - - qid = ring->q_index - vsi->alloc_txq; + struct ice_tx_ring *ring; - if (!ice_is_xdp_ena_vsi(vsi) || !test_bit(qid, vsi->af_xdp_zc_qps)) - return NULL; + ring = vsi->rx_rings[qid]->xdp_ring; + if (!ring) + return; + + if (!ice_is_xdp_ena_vsi(vsi) || !test_bit(qid, vsi->af_xdp_zc_qps)) { + ring->xsk_pool = NULL; + return; + } - return xsk_get_pool_from_qid(vsi->netdev, qid); + ring->xsk_pool = xsk_get_pool_from_qid(vsi->netdev, qid); } /** --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_base.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_base.c @@ -7,18 +7,6 @@ #include "ice_dcb_lib.h" #include "ice_sriov.h" -static bool ice_alloc_rx_buf_zc(struct ice_rx_ring *rx_ring) -{ - rx_ring->xdp_buf = kcalloc(rx_ring->count, sizeof(*rx_ring->xdp_buf), GFP_KERNEL); - return !!rx_ring->xdp_buf; -} - -static bool ice_alloc_rx_buf(struct ice_rx_ring *rx_ring) -{ - rx_ring->rx_buf = kcalloc(rx_ring->count, sizeof(*rx_ring->rx_buf), GFP_KERNEL); - return !!rx_ring->rx_buf; -} - /** * __ice_vsi_get_qs_contig - Assign a contiguous chunk of queues to VSI * @qs_cfg: gathered variables needed for PF->VSI queues assignment @@ -519,11 +507,8 @@ xdp_rxq_info_reg(&ring->xdp_rxq, ring->netdev, ring->q_index, ring->q_vector->napi.napi_id); - kfree(ring->rx_buf); ring->xsk_pool = ice_xsk_pool(ring); if (ring->xsk_pool) { - if (!ice_alloc_rx_buf_zc(ring)) - return -ENOMEM; xdp_rxq_info_unreg_mem_model(&ring->xdp_rxq); ring->rx_buf_len = @@ -538,8 +523,6 @@ dev_info(dev, "Registered XDP mem model MEM_TYPE_XSK_BUFF_POOL on Rx ring %d\n", ring->q_index); } else { - if (!ice_alloc_rx_buf(ring)) - return -ENOMEM; if (!xdp_rxq_info_is_reg(&ring->xdp_rxq)) /* coverity[check_return] */ xdp_rxq_info_reg(&ring->xdp_rxq, @@ -976,7 +959,7 @@ * associated to the queue to schedule NAPI handler */ q_vector = ring->q_vector; - if (q_vector) + if (q_vector && !(vsi->vf && ice_is_vf_disabled(vsi->vf))) ice_trigger_sw_intr(hw, q_vector); status = ice_dis_vsi_txq(vsi->port_info, txq_meta->vsi_idx, --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_ethtool.c @@ -2826,6 +2826,7 @@ tx_rings[i].count = new_tx_cnt; tx_rings[i].desc = NULL; tx_rings[i].tx_buf = NULL; + tx_rings[i].tx_tstamps = &pf->ptp.port.tx; err = ice_setup_tx_ring(&tx_rings[i]); if (err) { while (i--) --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_fltr.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_fltr.c @@ -62,7 +62,7 @@ int result; result = ice_set_vlan_vsi_promisc(hw, vsi->idx, promisc_mask, false); - if (result) + if (result && result != -EEXIST) dev_err(ice_pf_to_dev(pf), "Error setting promisc mode on VSI %i (rc=%d)\n", vsi->vsi_num, result); @@ -86,7 +86,7 @@ int result; result = ice_set_vlan_vsi_promisc(hw, vsi->idx, promisc_mask, true); - if (result) + if (result && result != -EEXIST) dev_err(ice_pf_to_dev(pf), "Error clearing promisc mode on VSI %i (rc=%d)\n", vsi->vsi_num, result); @@ -109,7 +109,7 @@ int result; result = ice_clear_vsi_promisc(hw, vsi_handle, promisc_mask, vid); - if (result) + if (result && result != -EEXIST) dev_err(ice_pf_to_dev(pf), "Error clearing promisc mode on VSI %i for VID %u (rc=%d)\n", ice_get_hw_vsi_num(hw, vsi_handle), vid, result); @@ -132,7 +132,7 @@ int result; result = ice_set_vsi_promisc(hw, vsi_handle, promisc_mask, vid); - if (result) + if (result && result != -EEXIST) dev_err(ice_pf_to_dev(pf), "Error setting promisc mode on VSI %i for VID %u (rc=%d)\n", ice_get_hw_vsi_num(hw, vsi_handle), vid, result); --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_lib.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_lib.c @@ -911,7 +911,7 @@ */ static int ice_vsi_setup_q_map(struct ice_vsi *vsi, struct ice_vsi_ctx *ctxt) { - u16 offset = 0, qmap = 0, tx_count = 0, pow = 0; + u16 offset = 0, qmap = 0, tx_count = 0, rx_count = 0, pow = 0; u16 num_txq_per_tc, num_rxq_per_tc; u16 qcount_tx = vsi->alloc_txq; u16 qcount_rx = vsi->alloc_rxq; @@ -978,23 +978,25 @@ * at least 1) */ if (offset) - vsi->num_rxq = offset; + rx_count = offset; else - vsi->num_rxq = num_rxq_per_tc; + rx_count = num_rxq_per_tc; - if (vsi->num_rxq > vsi->alloc_rxq) { + if (rx_count > vsi->alloc_rxq) { dev_err(ice_pf_to_dev(vsi->back), "Trying to use more Rx queues (%u), than were allocated (%u)!\n", - vsi->num_rxq, vsi->alloc_rxq); + rx_count, vsi->alloc_rxq); return -EINVAL; } - vsi->num_txq = tx_count; - if (vsi->num_txq > vsi->alloc_txq) { + if (tx_count > vsi->alloc_txq) { dev_err(ice_pf_to_dev(vsi->back), "Trying to use more Tx queues (%u), than were allocated (%u)!\n", - vsi->num_txq, vsi->alloc_txq); + tx_count, vsi->alloc_txq); return -EINVAL; } + vsi->num_txq = tx_count; + vsi->num_rxq = rx_count; + if (vsi->type == ICE_VSI_VF && vsi->num_txq != vsi->num_rxq) { dev_dbg(ice_pf_to_dev(vsi->back), "VF VSI should have same number of Tx and Rx queues. Hence making them equal\n"); /* since there is a chance that num_rxq could have been changed @@ -1983,8 +1985,8 @@ if (ret) return ret; - ice_for_each_xdp_txq(vsi, i) - vsi->xdp_rings[i]->xsk_pool = ice_tx_xsk_pool(vsi->xdp_rings[i]); + ice_for_each_rxq(vsi, i) + ice_tx_xsk_pool(vsi, i); return ret; } @@ -2218,6 +2220,31 @@ } /** + * ice_vsi_is_rx_queue_active + * @vsi: the VSI being configured + * + * Return true if at least one queue is active. + */ +bool ice_vsi_is_rx_queue_active(struct ice_vsi *vsi) +{ + struct ice_pf *pf = vsi->back; + struct ice_hw *hw = &pf->hw; + int i; + + ice_for_each_rxq(vsi, i) { + u32 rx_reg; + int pf_q; + + pf_q = vsi->rxq_map[i]; + rx_reg = rd32(hw, QRX_CTRL(pf_q)); + if (rx_reg & QRX_CTRL_QENA_STAT_M) + return true; + } + + return false; +} + +/** * ice_vsi_is_vlan_pruning_ena - check if VLAN pruning is enabled or not * @vsi: VSI to check whether or not VLAN pruning is enabled. * @@ -3178,7 +3205,7 @@ pf = vsi->back; vtype = vsi->type; - if (WARN_ON(vtype == ICE_VSI_VF) && !vsi->vf) + if (WARN_ON(vtype == ICE_VSI_VF && !vsi->vf)) return -EINVAL; ice_vsi_init_vlan_ops(vsi); @@ -3487,6 +3514,7 @@ u16 pow, offset = 0, qcount_tx = 0, qcount_rx = 0, qmap; u16 tc0_offset = vsi->mqprio_qopt.qopt.offset[0]; int tc0_qcount = vsi->mqprio_qopt.qopt.count[0]; + u16 new_txq, new_rxq; u8 netdev_tc = 0; int i; @@ -3527,21 +3555,24 @@ } } - /* Set actual Tx/Rx queue pairs */ - vsi->num_txq = offset + qcount_tx; - if (vsi->num_txq > vsi->alloc_txq) { + new_txq = offset + qcount_tx; + if (new_txq > vsi->alloc_txq) { dev_err(ice_pf_to_dev(vsi->back), "Trying to use more Tx queues (%u), than were allocated (%u)!\n", - vsi->num_txq, vsi->alloc_txq); + new_txq, vsi->alloc_txq); return -EINVAL; } - vsi->num_rxq = offset + qcount_rx; - if (vsi->num_rxq > vsi->alloc_rxq) { + new_rxq = offset + qcount_rx; + if (new_rxq > vsi->alloc_rxq) { dev_err(ice_pf_to_dev(vsi->back), "Trying to use more Rx queues (%u), than were allocated (%u)!\n", - vsi->num_rxq, vsi->alloc_rxq); + new_rxq, vsi->alloc_rxq); return -EINVAL; } + /* Set actual Tx/Rx queue pairs */ + vsi->num_txq = new_txq; + vsi->num_rxq = new_rxq; + /* Setup queue TC[0].qmap for given VSI context */ ctxt->info.tc_mapping[0] = cpu_to_le16(qmap); ctxt->info.q_mapping[0] = cpu_to_le16(vsi->rxq_map[0]); @@ -3573,6 +3604,7 @@ { u16 max_txqs[ICE_MAX_TRAFFIC_CLASS] = { 0 }; struct ice_pf *pf = vsi->back; + struct ice_tc_cfg old_tc_cfg; struct ice_vsi_ctx *ctx; struct device *dev; int i, ret = 0; @@ -3597,6 +3629,7 @@ max_txqs[i] = vsi->num_txq; } + memcpy(&old_tc_cfg, &vsi->tc_cfg, sizeof(old_tc_cfg)); vsi->tc_cfg.ena_tc = ena_tc; vsi->tc_cfg.numtc = num_tc; @@ -3613,8 +3646,10 @@ else ret = ice_vsi_setup_q_map(vsi, ctx); - if (ret) + if (ret) { + memcpy(&vsi->tc_cfg, &old_tc_cfg, sizeof(vsi->tc_cfg)); goto out; + } /* must to indicate which section of VSI context are being modified */ ctx->info.valid_sections = cpu_to_le16(ICE_AQ_VSI_PROP_RXQ_MAP_VALID); @@ -4078,7 +4113,11 @@ if (err && err != -EEXIST) return err; - return 0; + /* when deleting the last VLAN filter, make sure to disable the VLAN + * promisc mode so the filter isn't left by accident + */ + return ice_clear_vsi_promisc(&vsi->back->hw, vsi->idx, + ICE_MCAST_VLAN_PROMISC_BITS, 0); } /** --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_lib.h +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_lib.h @@ -130,4 +130,5 @@ bool ice_is_feature_supported(struct ice_pf *pf, enum ice_feature f); void ice_clear_feature_support(struct ice_pf *pf, enum ice_feature f); void ice_init_feature_support(struct ice_pf *pf); +bool ice_vsi_is_rx_queue_active(struct ice_vsi *vsi); #endif /* !_ICE_LIB_H_ */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_main.c @@ -267,8 +267,10 @@ status = ice_fltr_set_vsi_promisc(&vsi->back->hw, vsi->idx, promisc_m, 0); } + if (status && status != -EEXIST) + return status; - return status; + return 0; } /** @@ -433,7 +435,7 @@ IFF_PROMISC; goto out_promisc; } - if (vsi->current_netdev_flags & + if (vsi->netdev->features & NETIF_F_HW_VLAN_CTAG_FILTER) vlan_ops->ena_rx_filtering(vsi); } @@ -2397,8 +2399,6 @@ return -EBUSY; } - ice_unplug_aux_dev(pf); - switch (reset) { case ICE_RESET_PFR: set_bit(ICE_PFR_REQ, pf->state); @@ -2579,7 +2579,6 @@ if (ice_setup_tx_ring(xdp_ring)) goto free_xdp_rings; ice_set_ring_xdp(xdp_ring); - xdp_ring->xsk_pool = ice_tx_xsk_pool(xdp_ring); spin_lock_init(&xdp_ring->tx_lock); for (j = 0; j < xdp_ring->count; j++) { tx_desc = ICE_TX_DESC(xdp_ring, j); @@ -2587,13 +2586,6 @@ } } - ice_for_each_rxq(vsi, i) { - if (static_key_enabled(&ice_xdp_locking_key)) - vsi->rx_rings[i]->xdp_ring = vsi->xdp_rings[i % vsi->num_xdp_txq]; - else - vsi->rx_rings[i]->xdp_ring = vsi->xdp_rings[i]; - } - return 0; free_xdp_rings: @@ -2683,6 +2675,23 @@ xdp_rings_rem -= xdp_rings_per_v; } + ice_for_each_rxq(vsi, i) { + if (static_key_enabled(&ice_xdp_locking_key)) { + vsi->rx_rings[i]->xdp_ring = vsi->xdp_rings[i % vsi->num_xdp_txq]; + } else { + struct ice_q_vector *q_vector = vsi->rx_rings[i]->q_vector; + struct ice_tx_ring *ring; + + ice_for_each_tx_ring(ring, q_vector->tx) { + if (ice_ring_is_xdp(ring)) { + vsi->rx_rings[i]->xdp_ring = ring; + break; + } + } + } + ice_tx_xsk_pool(vsi, i); + } + /* omit the scheduler update if in reset path; XDP queues will be * taken into account at the end of ice_vsi_rebuild, where * ice_cfg_vsi_lan is being called @@ -2887,10 +2896,18 @@ if (xdp_ring_err) NL_SET_ERR_MSG_MOD(extack, "Setting up XDP Tx resources failed"); } + /* reallocate Rx queues that are used for zero-copy */ + xdp_ring_err = ice_realloc_zc_buf(vsi, true); + if (xdp_ring_err) + NL_SET_ERR_MSG_MOD(extack, "Setting up XDP Rx resources failed"); } else if (ice_is_xdp_ena_vsi(vsi) && !prog) { xdp_ring_err = ice_destroy_xdp_rings(vsi); if (xdp_ring_err) NL_SET_ERR_MSG_MOD(extack, "Freeing XDP Tx resources failed"); + /* reallocate Rx queues that were used for zero-copy */ + xdp_ring_err = ice_realloc_zc_buf(vsi, false); + if (xdp_ring_err) + NL_SET_ERR_MSG_MOD(extack, "Freeing XDP Rx resources failed"); } else { /* safe to call even when prog == vsi->xdp_prog as * dev_xdp_install in net/core/dev.c incremented prog's @@ -3572,6 +3589,14 @@ while (test_and_set_bit(ICE_CFG_BUSY, vsi->state)) usleep_range(1000, 2000); + ret = ice_clear_vsi_promisc(&vsi->back->hw, vsi->idx, + ICE_MCAST_VLAN_PROMISC_BITS, vid); + if (ret) { + netdev_err(netdev, "Error clearing multicast promiscuous mode on VSI %i\n", + vsi->vsi_num); + vsi->current_netdev_flags |= IFF_ALLMULTI; + } + vlan_ops = ice_get_compat_vsi_vlan_ops(vsi); /* Make sure VLAN delete is successful before updating VLAN @@ -3885,7 +3910,7 @@ pf->avail_rxqs = bitmap_zalloc(pf->max_pf_rxqs, GFP_KERNEL); if (!pf->avail_rxqs) { - devm_kfree(ice_pf_to_dev(pf), pf->avail_txqs); + bitmap_free(pf->avail_txqs); pf->avail_txqs = NULL; return -ENOMEM; } @@ -6602,7 +6627,7 @@ */ int ice_down(struct ice_vsi *vsi) { - int i, tx_err, rx_err, link_err = 0, vlan_err = 0; + int i, tx_err, rx_err, vlan_err = 0; WARN_ON(!test_bit(ICE_VSI_DOWN, vsi->state)); @@ -6636,20 +6661,13 @@ ice_napi_disable_all(vsi); - if (test_bit(ICE_FLAG_LINK_DOWN_ON_CLOSE_ENA, vsi->back->flags)) { - link_err = ice_force_phys_link_state(vsi, false); - if (link_err) - netdev_err(vsi->netdev, "Failed to set physical link down, VSI %d error %d\n", - vsi->vsi_num, link_err); - } - ice_for_each_txq(vsi, i) ice_clean_tx_ring(vsi->tx_rings[i]); ice_for_each_rxq(vsi, i) ice_clean_rx_ring(vsi->rx_rings[i]); - if (tx_err || rx_err || link_err || vlan_err) { + if (tx_err || rx_err || vlan_err) { netdev_err(vsi->netdev, "Failed to close VSI 0x%04X on switch 0x%04X\n", vsi->vsi_num, vsi->vsw->sw_id); return -EIO; @@ -6811,6 +6829,8 @@ if (err) goto err_setup_rx; + ice_vsi_cfg_netdev_tc(vsi, vsi->tc_cfg.ena_tc); + if (vsi->type == ICE_VSI_PF) { /* Notify the stack of the actual queue counts. */ err = netif_set_real_num_tx_queues(vsi->netdev, vsi->num_txq); @@ -8849,6 +8869,16 @@ return -EBUSY; } + if (test_bit(ICE_FLAG_LINK_DOWN_ON_CLOSE_ENA, vsi->back->flags)) { + int link_err = ice_force_phys_link_state(vsi, false); + + if (link_err) { + netdev_err(vsi->netdev, "Failed to set physical link down, VSI %d error %d\n", + vsi->vsi_num, link_err); + return -EIO; + } + } + ice_vsi_close(vsi); return 0; --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_switch.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_switch.c @@ -4414,6 +4414,13 @@ goto free_fltr_list; list_for_each_entry(list_itr, &vsi_list_head, list_entry) { + /* Avoid enabling or disabling VLAN zero twice when in double + * VLAN mode + */ + if (ice_is_dvm_ena(hw) && + list_itr->fltr_info.l_data.vlan.tpid == 0) + continue; + vlan_id = list_itr->fltr_info.l_data.vlan.vlan_id; if (rm_vlan_promisc) status = ice_clear_vsi_promisc(hw, vsi_handle, @@ -4421,7 +4428,7 @@ else status = ice_set_vsi_promisc(hw, vsi_handle, promisc_mask, vlan_id); - if (status) + if (status && status != -EEXIST) break; } @@ -4934,7 +4941,7 @@ bitmap_zero(recipes, ICE_MAX_NUM_RECIPES); bitmap_zero(used_idx, ICE_MAX_FV_WORDS); - bitmap_set(possible_idx, 0, ICE_MAX_FV_WORDS); + bitmap_fill(possible_idx, ICE_MAX_FV_WORDS); /* For each profile we are going to associate the recipe with, add the * recipes that are associated with that profile. This will give us --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_txrx.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_txrx.c @@ -610,7 +610,7 @@ if (test_bit(ICE_VSI_DOWN, vsi->state)) return -ENETDOWN; - if (!ice_is_xdp_ena_vsi(vsi) || queue_index >= vsi->num_xdp_txq) + if (!ice_is_xdp_ena_vsi(vsi)) return -ENXIO; if (unlikely(flags & ~XDP_XMIT_FLAGS_MASK)) @@ -621,6 +621,9 @@ xdp_ring = vsi->xdp_rings[queue_index]; spin_lock(&xdp_ring->tx_lock); } else { + /* Generally, should not happen */ + if (unlikely(queue_index >= vsi->num_xdp_txq)) + return -ENXIO; xdp_ring = vsi->xdp_rings[queue_index]; } @@ -1464,7 +1467,7 @@ bool wd; if (tx_ring->xsk_pool) - wd = ice_xmit_zc(tx_ring, ICE_DESC_UNUSED(tx_ring), budget); + wd = ice_xmit_zc(tx_ring); else if (ice_ring_is_xdp(tx_ring)) wd = true; else --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_vf_lib.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_vf_lib.c @@ -505,10 +505,15 @@ if (ice_is_vf_disabled(vf)) { vsi = ice_get_vf_vsi(vf); - if (WARN_ON(!vsi)) + if (!vsi) { + dev_dbg(dev, "VF is already removed\n"); return -EINVAL; + } ice_vsi_stop_lan_tx_rings(vsi, ICE_NO_RESET, vf->vf_id); - ice_vsi_stop_all_rx_rings(vsi); + + if (ice_vsi_is_rx_queue_active(vsi)) + ice_vsi_stop_all_rx_rings(vsi); + dev_dbg(dev, "VF is already disabled, there is no need for resetting it, telling VM, all is fine %d\n", vf->vf_id); return 0; @@ -705,13 +710,16 @@ static int ice_vsi_ena_spoofchk(struct ice_vsi *vsi) { struct ice_vsi_vlan_ops *vlan_ops; - int err; + int err = 0; vlan_ops = ice_get_compat_vsi_vlan_ops(vsi); - err = vlan_ops->ena_tx_filtering(vsi); - if (err) - return err; + /* Allow VF with VLAN 0 only to send all tagged traffic */ + if (vsi->type != ICE_VSI_VF || ice_vsi_has_non_zero_vlans(vsi)) { + err = vlan_ops->ena_tx_filtering(vsi); + if (err) + return err; + } return ice_cfg_mac_antispoof(vsi, true); } --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_virtchnl.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_virtchnl.c @@ -2264,6 +2264,15 @@ /* Enable VLAN filtering on first non-zero VLAN */ if (!vlan_promisc && vid && !ice_is_dvm_ena(&pf->hw)) { + if (vf->spoofchk) { + status = vsi->inner_vlan_ops.ena_tx_filtering(vsi); + if (status) { + v_ret = VIRTCHNL_STATUS_ERR_PARAM; + dev_err(dev, "Enable VLAN anti-spoofing on VLAN ID: %d failed error-%d\n", + vid, status); + goto error_param; + } + } if (vsi->inner_vlan_ops.ena_rx_filtering(vsi)) { v_ret = VIRTCHNL_STATUS_ERR_PARAM; dev_err(dev, "Enable VLAN pruning on VLAN ID: %d failed error-%d\n", @@ -2309,8 +2318,10 @@ } /* Disable VLAN filtering when only VLAN 0 is left */ - if (!ice_vsi_has_non_zero_vlans(vsi)) + if (!ice_vsi_has_non_zero_vlans(vsi)) { + vsi->inner_vlan_ops.dis_tx_filtering(vsi); vsi->inner_vlan_ops.dis_rx_filtering(vsi); + } if (vlan_promisc) ice_vf_dis_vlan_promisc(vsi, &vlan); @@ -2814,6 +2825,13 @@ if (vlan_promisc) ice_vf_dis_vlan_promisc(vsi, &vlan); + + /* Disable VLAN filtering when only VLAN 0 is left */ + if (!ice_vsi_has_non_zero_vlans(vsi) && ice_is_dvm_ena(&vsi->back->hw)) { + err = vsi->outer_vlan_ops.dis_tx_filtering(vsi); + if (err) + return err; + } } vc_vlan = &vlan_fltr->inner; @@ -2829,8 +2847,17 @@ /* no support for VLAN promiscuous on inner VLAN unless * we are in Single VLAN Mode (SVM) */ - if (!ice_is_dvm_ena(&vsi->back->hw) && vlan_promisc) - ice_vf_dis_vlan_promisc(vsi, &vlan); + if (!ice_is_dvm_ena(&vsi->back->hw)) { + if (vlan_promisc) + ice_vf_dis_vlan_promisc(vsi, &vlan); + + /* Disable VLAN filtering when only VLAN 0 is left */ + if (!ice_vsi_has_non_zero_vlans(vsi)) { + err = vsi->inner_vlan_ops.dis_tx_filtering(vsi); + if (err) + return err; + } + } } } @@ -2907,6 +2934,13 @@ if (err) return err; } + + /* Enable VLAN filtering on first non-zero VLAN */ + if (vf->spoofchk && vlan.vid && ice_is_dvm_ena(&vsi->back->hw)) { + err = vsi->outer_vlan_ops.ena_tx_filtering(vsi); + if (err) + return err; + } } vc_vlan = &vlan_fltr->inner; @@ -2922,10 +2956,19 @@ /* no support for VLAN promiscuous on inner VLAN unless * we are in Single VLAN Mode (SVM) */ - if (!ice_is_dvm_ena(&vsi->back->hw) && vlan_promisc) { - err = ice_vf_ena_vlan_promisc(vsi, &vlan); - if (err) - return err; + if (!ice_is_dvm_ena(&vsi->back->hw)) { + if (vlan_promisc) { + err = ice_vf_ena_vlan_promisc(vsi, &vlan); + if (err) + return err; + } + + /* Enable VLAN filtering on first non-zero VLAN */ + if (vf->spoofchk && vlan.vid) { + err = vsi->inner_vlan_ops.ena_tx_filtering(vsi); + if (err) + return err; + } } } } --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_xsk.c +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_xsk.c @@ -192,6 +192,7 @@ err = ice_vsi_ctrl_one_rx_ring(vsi, false, q_idx, true); if (err) return err; + ice_clean_rx_ring(rx_ring); ice_qvec_toggle_napi(vsi, q_vector, false); ice_qp_clean_rings(vsi, q_idx); @@ -243,7 +244,7 @@ if (err) goto free_buf; ice_set_ring_xdp(xdp_ring); - xdp_ring->xsk_pool = ice_tx_xsk_pool(xdp_ring); + ice_tx_xsk_pool(vsi, q_idx); } err = ice_vsi_cfg_rxq(rx_ring); @@ -317,6 +318,62 @@ } /** + * ice_realloc_rx_xdp_bufs - reallocate for either XSK or normal buffer + * @rx_ring: Rx ring + * @pool_present: is pool for XSK present + * + * Try allocating memory and return ENOMEM, if failed to allocate. + * If allocation was successful, substitute buffer with allocated one. + * Returns 0 on success, negative on failure + */ +static int +ice_realloc_rx_xdp_bufs(struct ice_rx_ring *rx_ring, bool pool_present) +{ + size_t elem_size = pool_present ? sizeof(*rx_ring->xdp_buf) : + sizeof(*rx_ring->rx_buf); + void *sw_ring = kcalloc(rx_ring->count, elem_size, GFP_KERNEL); + + if (!sw_ring) + return -ENOMEM; + + if (pool_present) { + kfree(rx_ring->rx_buf); + rx_ring->rx_buf = NULL; + rx_ring->xdp_buf = sw_ring; + } else { + kfree(rx_ring->xdp_buf); + rx_ring->xdp_buf = NULL; + rx_ring->rx_buf = sw_ring; + } + + return 0; +} + +/** + * ice_realloc_zc_buf - reallocate XDP ZC queue pairs + * @vsi: Current VSI + * @zc: is zero copy set + * + * Reallocate buffer for rx_rings that might be used by XSK. + * XDP requires more memory, than rx_buf provides. + * Returns 0 on success, negative on failure + */ +int ice_realloc_zc_buf(struct ice_vsi *vsi, bool zc) +{ + struct ice_rx_ring *rx_ring; + unsigned long q; + + for_each_set_bit(q, vsi->af_xdp_zc_qps, + max_t(int, vsi->alloc_txq, vsi->alloc_rxq)) { + rx_ring = vsi->rx_rings[q]; + if (ice_realloc_rx_xdp_bufs(rx_ring, zc)) + return -ENOMEM; + } + + return 0; +} + +/** * ice_xsk_pool_setup - enable/disable a buffer pool region depending on its state * @vsi: Current VSI * @pool: buffer pool to enable/associate to a ring, NULL to disable @@ -329,9 +386,8 @@ bool if_running, pool_present = !!pool; int ret = 0, pool_failure = 0; - if (!is_power_of_2(vsi->rx_rings[qid]->count) || - !is_power_of_2(vsi->tx_rings[qid]->count)) { - netdev_err(vsi->netdev, "Please align ring sizes to power of 2\n"); + if (qid >= vsi->num_rxq || qid >= vsi->num_txq) { + netdev_err(vsi->netdev, "Please use queue id in scope of combined queues count\n"); pool_failure = -EINVAL; goto failure; } @@ -339,11 +395,17 @@ if_running = netif_running(vsi->netdev) && ice_is_xdp_ena_vsi(vsi); if (if_running) { + struct ice_rx_ring *rx_ring = vsi->rx_rings[qid]; + ret = ice_qp_dis(vsi, qid); if (ret) { netdev_err(vsi->netdev, "ice_qp_dis error = %d\n", ret); goto xsk_pool_if_up; } + + ret = ice_realloc_rx_xdp_bufs(rx_ring, pool_present); + if (ret) + goto xsk_pool_if_up; } pool_failure = pool_present ? ice_xsk_pool_enable(vsi, pool, qid) : @@ -353,7 +415,7 @@ if (if_running) { ret = ice_qp_ena(vsi, qid); if (!ret && pool_present) - napi_schedule(&vsi->xdp_rings[qid]->q_vector->napi); + napi_schedule(&vsi->rx_rings[qid]->xdp_ring->q_vector->napi); else if (ret) netdev_err(vsi->netdev, "ice_qp_ena error = %d\n", ret); } @@ -465,11 +527,10 @@ bool ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring, u16 count) { u16 rx_thresh = ICE_RING_QUARTER(rx_ring); - u16 batched, leftover, i, tail_bumps; + u16 leftover, i, tail_bumps; - batched = ALIGN_DOWN(count, rx_thresh); - tail_bumps = batched / rx_thresh; - leftover = count & (rx_thresh - 1); + tail_bumps = count / rx_thresh; + leftover = count - (tail_bumps * rx_thresh); for (i = 0; i < tail_bumps; i++) if (!__ice_alloc_rx_bufs_zc(rx_ring, rx_thresh)) @@ -719,69 +780,57 @@ } /** - * ice_clean_xdp_irq_zc - Reclaim resources after transmit completes on XDP ring - * @xdp_ring: XDP ring to clean - * @napi_budget: amount of descriptors that NAPI allows us to clean - * - * Returns count of cleaned descriptors - */ -static u16 ice_clean_xdp_irq_zc(struct ice_tx_ring *xdp_ring, int napi_budget) -{ - u16 tx_thresh = ICE_RING_QUARTER(xdp_ring); - int budget = napi_budget / tx_thresh; - u16 next_dd = xdp_ring->next_dd; - u16 ntc, cleared_dds = 0; - - do { - struct ice_tx_desc *next_dd_desc; - u16 desc_cnt = xdp_ring->count; - struct ice_tx_buf *tx_buf; - u32 xsk_frames; - u16 i; - - next_dd_desc = ICE_TX_DESC(xdp_ring, next_dd); - if (!(next_dd_desc->cmd_type_offset_bsz & - cpu_to_le64(ICE_TX_DESC_DTYPE_DESC_DONE))) - break; + * ice_clean_xdp_irq_zc - produce AF_XDP descriptors to CQ + * @xdp_ring: XDP Tx ring + */ +static void ice_clean_xdp_irq_zc(struct ice_tx_ring *xdp_ring) +{ + u16 ntc = xdp_ring->next_to_clean; + struct ice_tx_desc *tx_desc; + u16 cnt = xdp_ring->count; + struct ice_tx_buf *tx_buf; + u16 xsk_frames = 0; + u16 last_rs; + int i; - cleared_dds++; - xsk_frames = 0; - if (likely(!xdp_ring->xdp_tx_active)) { - xsk_frames = tx_thresh; - goto skip; - } + last_rs = xdp_ring->next_to_use ? xdp_ring->next_to_use - 1 : cnt - 1; + tx_desc = ICE_TX_DESC(xdp_ring, last_rs); + if ((tx_desc->cmd_type_offset_bsz & + cpu_to_le64(ICE_TX_DESC_DTYPE_DESC_DONE))) { + if (last_rs >= ntc) + xsk_frames = last_rs - ntc + 1; + else + xsk_frames = last_rs + cnt - ntc + 1; + } - ntc = xdp_ring->next_to_clean; + if (!xsk_frames) + return; - for (i = 0; i < tx_thresh; i++) { - tx_buf = &xdp_ring->tx_buf[ntc]; + if (likely(!xdp_ring->xdp_tx_active)) + goto skip; - if (tx_buf->raw_buf) { - ice_clean_xdp_tx_buf(xdp_ring, tx_buf); - tx_buf->raw_buf = NULL; - } else { - xsk_frames++; - } - - ntc++; - if (ntc >= xdp_ring->count) - ntc = 0; - } -skip: - xdp_ring->next_to_clean += tx_thresh; - if (xdp_ring->next_to_clean >= desc_cnt) - xdp_ring->next_to_clean -= desc_cnt; - if (xsk_frames) - xsk_tx_completed(xdp_ring->xsk_pool, xsk_frames); - next_dd_desc->cmd_type_offset_bsz = 0; - next_dd = next_dd + tx_thresh; - if (next_dd >= desc_cnt) - next_dd = tx_thresh - 1; - } while (--budget); + ntc = xdp_ring->next_to_clean; + for (i = 0; i < xsk_frames; i++) { + tx_buf = &xdp_ring->tx_buf[ntc]; - xdp_ring->next_dd = next_dd; + if (tx_buf->raw_buf) { + ice_clean_xdp_tx_buf(xdp_ring, tx_buf); + tx_buf->raw_buf = NULL; + } else { + xsk_frames++; + } - return cleared_dds * tx_thresh; + ntc++; + if (ntc >= xdp_ring->count) + ntc = 0; + } +skip: + tx_desc->cmd_type_offset_bsz = 0; + xdp_ring->next_to_clean += xsk_frames; + if (xdp_ring->next_to_clean >= cnt) + xdp_ring->next_to_clean -= cnt; + if (xsk_frames) + xsk_tx_completed(xdp_ring->xsk_pool, xsk_frames); } /** @@ -816,7 +865,6 @@ static void ice_xmit_pkt_batch(struct ice_tx_ring *xdp_ring, struct xdp_desc *descs, unsigned int *total_bytes) { - u16 tx_thresh = ICE_RING_QUARTER(xdp_ring); u16 ntu = xdp_ring->next_to_use; struct ice_tx_desc *tx_desc; u32 i; @@ -836,13 +884,6 @@ } xdp_ring->next_to_use = ntu; - - if (xdp_ring->next_to_use > xdp_ring->next_rs) { - tx_desc = ICE_TX_DESC(xdp_ring, xdp_ring->next_rs); - tx_desc->cmd_type_offset_bsz |= - cpu_to_le64(ICE_TX_DESC_CMD_RS << ICE_TXD_QW1_CMD_S); - xdp_ring->next_rs += tx_thresh; - } } /** @@ -855,7 +896,6 @@ static void ice_fill_tx_hw_ring(struct ice_tx_ring *xdp_ring, struct xdp_desc *descs, u32 nb_pkts, unsigned int *total_bytes) { - u16 tx_thresh = ICE_RING_QUARTER(xdp_ring); u32 batched, leftover, i; batched = ALIGN_DOWN(nb_pkts, PKTS_PER_BATCH); @@ -864,54 +904,54 @@ ice_xmit_pkt_batch(xdp_ring, &descs[i], total_bytes); for (; i < batched + leftover; i++) ice_xmit_pkt(xdp_ring, &descs[i], total_bytes); +} - if (xdp_ring->next_to_use > xdp_ring->next_rs) { - struct ice_tx_desc *tx_desc; +/** + * ice_set_rs_bit - set RS bit on last produced descriptor (one behind current NTU) + * @xdp_ring: XDP ring to produce the HW Tx descriptors on + */ +static void ice_set_rs_bit(struct ice_tx_ring *xdp_ring) +{ + u16 ntu = xdp_ring->next_to_use ? xdp_ring->next_to_use - 1 : xdp_ring->count - 1; + struct ice_tx_desc *tx_desc; - tx_desc = ICE_TX_DESC(xdp_ring, xdp_ring->next_rs); - tx_desc->cmd_type_offset_bsz |= - cpu_to_le64(ICE_TX_DESC_CMD_RS << ICE_TXD_QW1_CMD_S); - xdp_ring->next_rs += tx_thresh; - } + tx_desc = ICE_TX_DESC(xdp_ring, ntu); + tx_desc->cmd_type_offset_bsz |= + cpu_to_le64(ICE_TX_DESC_CMD_RS << ICE_TXD_QW1_CMD_S); } /** * ice_xmit_zc - take entries from XSK Tx ring and place them onto HW Tx ring * @xdp_ring: XDP ring to produce the HW Tx descriptors on - * @budget: number of free descriptors on HW Tx ring that can be used - * @napi_budget: amount of descriptors that NAPI allows us to clean * * Returns true if there is no more work that needs to be done, false otherwise */ -bool ice_xmit_zc(struct ice_tx_ring *xdp_ring, u32 budget, int napi_budget) +bool ice_xmit_zc(struct ice_tx_ring *xdp_ring) { struct xdp_desc *descs = xdp_ring->xsk_pool->tx_descs; - u16 tx_thresh = ICE_RING_QUARTER(xdp_ring); u32 nb_pkts, nb_processed = 0; unsigned int total_bytes = 0; + int budget; + + ice_clean_xdp_irq_zc(xdp_ring); - if (budget < tx_thresh) - budget += ice_clean_xdp_irq_zc(xdp_ring, napi_budget); + budget = ICE_DESC_UNUSED(xdp_ring); + budget = min_t(u16, budget, ICE_RING_QUARTER(xdp_ring)); nb_pkts = xsk_tx_peek_release_desc_batch(xdp_ring->xsk_pool, budget); if (!nb_pkts) return true; if (xdp_ring->next_to_use + nb_pkts >= xdp_ring->count) { - struct ice_tx_desc *tx_desc; - nb_processed = xdp_ring->count - xdp_ring->next_to_use; ice_fill_tx_hw_ring(xdp_ring, descs, nb_processed, &total_bytes); - tx_desc = ICE_TX_DESC(xdp_ring, xdp_ring->next_rs); - tx_desc->cmd_type_offset_bsz |= - cpu_to_le64(ICE_TX_DESC_CMD_RS << ICE_TXD_QW1_CMD_S); - xdp_ring->next_rs = tx_thresh - 1; xdp_ring->next_to_use = 0; } ice_fill_tx_hw_ring(xdp_ring, &descs[nb_processed], nb_pkts - nb_processed, &total_bytes); + ice_set_rs_bit(xdp_ring); ice_xdp_ring_update_tail(xdp_ring); ice_update_tx_ring_stats(xdp_ring, nb_pkts, total_bytes); @@ -944,13 +984,13 @@ if (!ice_is_xdp_ena_vsi(vsi)) return -EINVAL; - if (queue_id >= vsi->num_txq) + if (queue_id >= vsi->num_txq || queue_id >= vsi->num_rxq) return -EINVAL; - if (!vsi->xdp_rings[queue_id]->xsk_pool) - return -EINVAL; + ring = vsi->rx_rings[queue_id]->xdp_ring; - ring = vsi->xdp_rings[queue_id]; + if (!ring->xsk_pool) + return -EINVAL; /* The idea here is that if NAPI is running, mark a miss, so * it will run again. If not, trigger an interrupt and @@ -989,14 +1029,16 @@ */ void ice_xsk_clean_rx_ring(struct ice_rx_ring *rx_ring) { - u16 count_mask = rx_ring->count - 1; u16 ntc = rx_ring->next_to_clean; u16 ntu = rx_ring->next_to_use; - for ( ; ntc != ntu; ntc = (ntc + 1) & count_mask) { + while (ntc != ntu) { struct xdp_buff *xdp = *ice_xdp_buf(rx_ring, ntc); xsk_buff_free(xdp); + ntc++; + if (ntc >= rx_ring->count) + ntc = 0; } } --- linux-5.19.0.orig/drivers/net/ethernet/intel/ice/ice_xsk.h +++ linux-5.19.0/drivers/net/ethernet/intel/ice/ice_xsk.h @@ -26,12 +26,10 @@ bool ice_xsk_any_rx_ring_ena(struct ice_vsi *vsi); void ice_xsk_clean_rx_ring(struct ice_rx_ring *rx_ring); void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring); -bool ice_xmit_zc(struct ice_tx_ring *xdp_ring, u32 budget, int napi_budget); +bool ice_xmit_zc(struct ice_tx_ring *xdp_ring); +int ice_realloc_zc_buf(struct ice_vsi *vsi, bool zc); #else -static inline bool -ice_xmit_zc(struct ice_tx_ring __always_unused *xdp_ring, - u32 __always_unused budget, - int __always_unused napi_budget) +static inline bool ice_xmit_zc(struct ice_tx_ring __always_unused *xdp_ring) { return false; } @@ -72,5 +70,12 @@ static inline void ice_xsk_clean_rx_ring(struct ice_rx_ring *rx_ring) { } static inline void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring) { } + +static inline int +ice_realloc_zc_buf(struct ice_vsi __always_unused *vsi, + bool __always_unused zc) +{ + return 0; +} #endif /* CONFIG_XDP_SOCKETS */ #endif /* !_ICE_XSK_H_ */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/igb/igb.h +++ linux-5.19.0/drivers/net/ethernet/intel/igb/igb.h @@ -664,6 +664,8 @@ struct igb_mac_addr *mac_table; struct vf_mac_filter vf_macs; struct vf_mac_filter *vf_mac_list; + /* lock for VF resources */ + spinlock_t vfs_lock; }; /* flags controlling PTP/1588 function */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -1413,6 +1413,8 @@ *data = 1; return -1; } + wr32(E1000_IVAR_MISC, E1000_IVAR_VALID << 8); + wr32(E1000_EIMS, BIT(0)); } else if (adapter->flags & IGB_FLAG_HAS_MSI) { shared_int = false; if (request_irq(irq, --- linux-5.19.0.orig/drivers/net/ethernet/intel/igb/igb_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/igb/igb_main.c @@ -1202,8 +1202,12 @@ if (!q_vector) { q_vector = kzalloc(size, GFP_KERNEL); } else if (size > ksize(q_vector)) { - kfree_rcu(q_vector, rcu); - q_vector = kzalloc(size, GFP_KERNEL); + struct igb_q_vector *new_q_vector; + + new_q_vector = kzalloc(size, GFP_KERNEL); + if (new_q_vector) + kfree_rcu(q_vector, rcu); + q_vector = new_q_vector; } else { memset(q_vector, 0, size); } @@ -3637,6 +3641,7 @@ struct net_device *netdev = pci_get_drvdata(pdev); struct igb_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; + unsigned long flags; /* reclaim resources allocated to VFs */ if (adapter->vf_data) { @@ -3649,12 +3654,13 @@ pci_disable_sriov(pdev); msleep(500); } - + spin_lock_irqsave(&adapter->vfs_lock, flags); kfree(adapter->vf_mac_list); adapter->vf_mac_list = NULL; kfree(adapter->vf_data); adapter->vf_data = NULL; adapter->vfs_allocated_count = 0; + spin_unlock_irqrestore(&adapter->vfs_lock, flags); wr32(E1000_IOVCTL, E1000_IOVCTL_REUSE_VFQ); wrfl(); msleep(100); @@ -3814,7 +3820,9 @@ igb_release_hw_control(adapter); #ifdef CONFIG_PCI_IOV + rtnl_lock(); igb_disable_sriov(pdev); + rtnl_unlock(); #endif unregister_netdev(netdev); @@ -3974,6 +3982,9 @@ spin_lock_init(&adapter->nfc_lock); spin_lock_init(&adapter->stats64_lock); + + /* init spinlock to avoid concurrency of VF resources */ + spin_lock_init(&adapter->vfs_lock); #ifdef CONFIG_PCI_IOV switch (hw->mac.type) { case e1000_82576: @@ -7481,7 +7492,7 @@ { struct e1000_hw *hw = &adapter->hw; unsigned char *vf_mac = adapter->vf_data[vf].vf_mac_addresses; - u32 reg, msgbuf[3]; + u32 reg, msgbuf[3] = {}; u8 *addr = (u8 *)(&msgbuf[1]); /* process all the same items cleared in a function level reset */ @@ -7924,8 +7935,10 @@ static void igb_msg_task(struct igb_adapter *adapter) { struct e1000_hw *hw = &adapter->hw; + unsigned long flags; u32 vf; + spin_lock_irqsave(&adapter->vfs_lock, flags); for (vf = 0; vf < adapter->vfs_allocated_count; vf++) { /* process any reset requests */ if (!igb_check_for_rst(hw, vf)) @@ -7939,6 +7952,7 @@ if (!igb_check_for_ack(hw, vf)) igb_rcv_ack_from_vf(adapter, vf); } + spin_unlock_irqrestore(&adapter->vfs_lock, flags); } /** --- linux-5.19.0.orig/drivers/net/ethernet/intel/igc/igc.h +++ linux-5.19.0/drivers/net/ethernet/intel/igc/igc.h @@ -94,6 +94,8 @@ u8 queue_index; /* logical index of the ring*/ u8 reg_idx; /* physical index of the ring */ bool launchtime_enable; /* true if LaunchTime is enabled */ + ktime_t last_tx_cycle; /* end of the cycle with a launchtime transmission */ + ktime_t last_ff_cycle; /* Last cycle with an active first flag */ u32 start_time; u32 end_time; @@ -182,6 +184,7 @@ ktime_t base_time; ktime_t cycle_time; + bool qbv_enable; /* OS defined structs */ struct pci_dev *pdev; --- linux-5.19.0.orig/drivers/net/ethernet/intel/igc/igc_defines.h +++ linux-5.19.0/drivers/net/ethernet/intel/igc/igc_defines.h @@ -321,6 +321,8 @@ #define IGC_ADVTXD_L4LEN_SHIFT 8 /* Adv ctxt L4LEN shift */ #define IGC_ADVTXD_MSS_SHIFT 16 /* Adv ctxt MSS shift */ +#define IGC_ADVTXD_TSN_CNTX_FIRST 0x00000080 + /* Transmit Control */ #define IGC_TCTL_EN 0x00000002 /* enable Tx */ #define IGC_TCTL_PSP 0x00000008 /* pad short packets */ --- linux-5.19.0.orig/drivers/net/ethernet/intel/igc/igc_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/igc/igc_main.c @@ -1000,25 +1000,118 @@ return netdev_mc_count(netdev); } -static __le32 igc_tx_launchtime(struct igc_adapter *adapter, ktime_t txtime) +static __le32 igc_tx_launchtime(struct igc_ring *ring, ktime_t txtime, + bool *first_flag, bool *insert_empty) { + struct igc_adapter *adapter = netdev_priv(ring->netdev); ktime_t cycle_time = adapter->cycle_time; ktime_t base_time = adapter->base_time; + ktime_t now = ktime_get_clocktai(); + ktime_t baset_est, end_of_cycle; u32 launchtime; + s64 n; - /* FIXME: when using ETF together with taprio, we may have a - * case where 'delta' is larger than the cycle_time, this may - * cause problems if we don't read the current value of - * IGC_BASET, as the value writen into the launchtime - * descriptor field may be misinterpreted. + n = div64_s64(ktime_sub_ns(now, base_time), cycle_time); + + baset_est = ktime_add_ns(base_time, cycle_time * (n)); + end_of_cycle = ktime_add_ns(baset_est, cycle_time); + + if (ktime_compare(txtime, end_of_cycle) >= 0) { + if (baset_est != ring->last_ff_cycle) { + *first_flag = true; + ring->last_ff_cycle = baset_est; + + if (ktime_compare(txtime, ring->last_tx_cycle) > 0) + *insert_empty = true; + } + } + + /* Introducing a window at end of cycle on which packets + * potentially not honor launchtime. Window of 5us chosen + * considering software update the tail pointer and packets + * are dma'ed to packet buffer. */ - div_s64_rem(ktime_sub_ns(txtime, base_time), cycle_time, &launchtime); + if ((ktime_sub_ns(end_of_cycle, now) < 5 * NSEC_PER_USEC)) + netdev_warn(ring->netdev, "Packet with txtime=%llu may not be honoured\n", + txtime); + + ring->last_tx_cycle = end_of_cycle; + + launchtime = ktime_sub_ns(txtime, baset_est); + if (launchtime > 0) + div_s64_rem(launchtime, cycle_time, &launchtime); + else + launchtime = 0; return cpu_to_le32(launchtime); } +static int igc_init_empty_frame(struct igc_ring *ring, + struct igc_tx_buffer *buffer, + struct sk_buff *skb) +{ + unsigned int size; + dma_addr_t dma; + + size = skb_headlen(skb); + + dma = dma_map_single(ring->dev, skb->data, size, DMA_TO_DEVICE); + if (dma_mapping_error(ring->dev, dma)) { + netdev_err_once(ring->netdev, "Failed to map DMA for TX\n"); + return -ENOMEM; + } + + buffer->skb = skb; + buffer->protocol = 0; + buffer->bytecount = skb->len; + buffer->gso_segs = 1; + buffer->time_stamp = jiffies; + dma_unmap_len_set(buffer, len, skb->len); + dma_unmap_addr_set(buffer, dma, dma); + + return 0; +} + +static int igc_init_tx_empty_descriptor(struct igc_ring *ring, + struct sk_buff *skb, + struct igc_tx_buffer *first) +{ + union igc_adv_tx_desc *desc; + u32 cmd_type, olinfo_status; + int err; + + if (!igc_desc_unused(ring)) + return -EBUSY; + + err = igc_init_empty_frame(ring, first, skb); + if (err) + return err; + + cmd_type = IGC_ADVTXD_DTYP_DATA | IGC_ADVTXD_DCMD_DEXT | + IGC_ADVTXD_DCMD_IFCS | IGC_TXD_DCMD | + first->bytecount; + olinfo_status = first->bytecount << IGC_ADVTXD_PAYLEN_SHIFT; + + desc = IGC_TX_DESC(ring, ring->next_to_use); + desc->read.cmd_type_len = cpu_to_le32(cmd_type); + desc->read.olinfo_status = cpu_to_le32(olinfo_status); + desc->read.buffer_addr = cpu_to_le64(dma_unmap_addr(first, dma)); + + netdev_tx_sent_queue(txring_txq(ring), skb->len); + + first->next_to_watch = desc; + + ring->next_to_use++; + if (ring->next_to_use == ring->count) + ring->next_to_use = 0; + + return 0; +} + +#define IGC_EMPTY_FRAME_SIZE 60 + static void igc_tx_ctxtdesc(struct igc_ring *tx_ring, - struct igc_tx_buffer *first, + __le32 launch_time, bool first_flag, u32 vlan_macip_lens, u32 type_tucmd, u32 mss_l4len_idx) { @@ -1037,26 +1130,17 @@ if (test_bit(IGC_RING_FLAG_TX_CTX_IDX, &tx_ring->flags)) mss_l4len_idx |= tx_ring->reg_idx << 4; + if (first_flag) + mss_l4len_idx |= IGC_ADVTXD_TSN_CNTX_FIRST; + context_desc->vlan_macip_lens = cpu_to_le32(vlan_macip_lens); context_desc->type_tucmd_mlhl = cpu_to_le32(type_tucmd); context_desc->mss_l4len_idx = cpu_to_le32(mss_l4len_idx); - - /* We assume there is always a valid Tx time available. Invalid times - * should have been handled by the upper layers. - */ - if (tx_ring->launchtime_enable) { - struct igc_adapter *adapter = netdev_priv(tx_ring->netdev); - ktime_t txtime = first->skb->tstamp; - - skb_txtime_consumed(first->skb); - context_desc->launch_time = igc_tx_launchtime(adapter, - txtime); - } else { - context_desc->launch_time = 0; - } + context_desc->launch_time = launch_time; } -static void igc_tx_csum(struct igc_ring *tx_ring, struct igc_tx_buffer *first) +static void igc_tx_csum(struct igc_ring *tx_ring, struct igc_tx_buffer *first, + __le32 launch_time, bool first_flag) { struct sk_buff *skb = first->skb; u32 vlan_macip_lens = 0; @@ -1096,7 +1180,8 @@ vlan_macip_lens |= skb_network_offset(skb) << IGC_ADVTXD_MACLEN_SHIFT; vlan_macip_lens |= first->tx_flags & IGC_TX_FLAGS_VLAN_MASK; - igc_tx_ctxtdesc(tx_ring, first, vlan_macip_lens, type_tucmd, 0); + igc_tx_ctxtdesc(tx_ring, launch_time, first_flag, + vlan_macip_lens, type_tucmd, 0); } static int __igc_maybe_stop_tx(struct igc_ring *tx_ring, const u16 size) @@ -1320,6 +1405,7 @@ static int igc_tso(struct igc_ring *tx_ring, struct igc_tx_buffer *first, + __le32 launch_time, bool first_flag, u8 *hdr_len) { u32 vlan_macip_lens, type_tucmd, mss_l4len_idx; @@ -1406,8 +1492,8 @@ vlan_macip_lens |= (ip.hdr - skb->data) << IGC_ADVTXD_MACLEN_SHIFT; vlan_macip_lens |= first->tx_flags & IGC_TX_FLAGS_VLAN_MASK; - igc_tx_ctxtdesc(tx_ring, first, vlan_macip_lens, - type_tucmd, mss_l4len_idx); + igc_tx_ctxtdesc(tx_ring, launch_time, first_flag, + vlan_macip_lens, type_tucmd, mss_l4len_idx); return 1; } @@ -1415,11 +1501,14 @@ static netdev_tx_t igc_xmit_frame_ring(struct sk_buff *skb, struct igc_ring *tx_ring) { + bool first_flag = false, insert_empty = false; u16 count = TXD_USE_COUNT(skb_headlen(skb)); __be16 protocol = vlan_get_protocol(skb); struct igc_tx_buffer *first; + __le32 launch_time = 0; u32 tx_flags = 0; unsigned short f; + ktime_t txtime; u8 hdr_len = 0; int tso = 0; @@ -1433,11 +1522,40 @@ count += TXD_USE_COUNT(skb_frag_size( &skb_shinfo(skb)->frags[f])); - if (igc_maybe_stop_tx(tx_ring, count + 3)) { + if (igc_maybe_stop_tx(tx_ring, count + 5)) { /* this is a hard error */ return NETDEV_TX_BUSY; } + if (!tx_ring->launchtime_enable) + goto done; + + txtime = skb->tstamp; + skb->tstamp = ktime_set(0, 0); + launch_time = igc_tx_launchtime(tx_ring, txtime, &first_flag, &insert_empty); + + if (insert_empty) { + struct igc_tx_buffer *empty_info; + struct sk_buff *empty; + void *data; + + empty_info = &tx_ring->tx_buffer_info[tx_ring->next_to_use]; + empty = alloc_skb(IGC_EMPTY_FRAME_SIZE, GFP_ATOMIC); + if (!empty) + goto done; + + data = skb_put(empty, IGC_EMPTY_FRAME_SIZE); + memset(data, 0, IGC_EMPTY_FRAME_SIZE); + + igc_tx_ctxtdesc(tx_ring, 0, false, 0, 0, 0); + + if (igc_init_tx_empty_descriptor(tx_ring, + empty, + empty_info) < 0) + dev_kfree_skb_any(empty); + } + +done: /* record the location of the first descriptor for this packet */ first = &tx_ring->tx_buffer_info[tx_ring->next_to_use]; first->type = IGC_TX_BUFFER_TYPE_SKB; @@ -1474,11 +1592,11 @@ first->tx_flags = tx_flags; first->protocol = protocol; - tso = igc_tso(tx_ring, first, &hdr_len); + tso = igc_tso(tx_ring, first, launch_time, first_flag, &hdr_len); if (tso < 0) goto out_drop; else if (!tso) - igc_tx_csum(tx_ring, first); + igc_tx_csum(tx_ring, first, launch_time, first_flag); igc_tx_map(tx_ring, first, hdr_len); @@ -5813,9 +5931,10 @@ return false; for (n = 0; n < qopt->num_entries; n++) { - const struct tc_taprio_sched_entry *e; + const struct tc_taprio_sched_entry *e, *prev; int i; + prev = n ? &qopt->entries[n - 1] : NULL; e = &qopt->entries[n]; /* i225 only supports "global" frame preemption @@ -5828,7 +5947,12 @@ if (e->gate_mask & BIT(i)) queue_uses[i]++; - if (queue_uses[i] > 1) + /* There are limitations: A single queue cannot be + * opened and closed multiple times per cycle unless the + * gate stays open. Check for it. + */ + if (queue_uses[i] > 1 && + !(prev->gate_mask & BIT(i))) return false; } } @@ -5872,12 +5996,19 @@ static int igc_save_qbv_schedule(struct igc_adapter *adapter, struct tc_taprio_qopt_offload *qopt) { + bool queue_configured[IGC_MAX_TX_QUEUES] = { }; u32 start_time = 0, end_time = 0; size_t n; + int i; + + adapter->qbv_enable = qopt->enable; if (!qopt->enable) return igc_tsn_clear_schedule(adapter); + if (qopt->base_time < 0) + return -ERANGE; + if (adapter->base_time) return -EALREADY; @@ -5887,28 +6018,58 @@ adapter->cycle_time = qopt->cycle_time; adapter->base_time = qopt->base_time; - /* FIXME: be a little smarter about cases when the gate for a - * queue stays open for more than one entry. - */ for (n = 0; n < qopt->num_entries; n++) { struct tc_taprio_sched_entry *e = &qopt->entries[n]; - int i; end_time += e->interval; + /* If any of the conditions below are true, we need to manually + * control the end time of the cycle. + * 1. Qbv users can specify a cycle time that is not equal + * to the total GCL intervals. Hence, recalculation is + * necessary here to exclude the time interval that + * exceeds the cycle time. + * 2. According to IEEE Std. 802.1Q-2018 section 8.6.9.2, + * once the end of the list is reached, it will switch + * to the END_OF_CYCLE state and leave the gates in the + * same state until the next cycle is started. + */ + if (end_time > adapter->cycle_time || + n + 1 == qopt->num_entries) + end_time = adapter->cycle_time; + for (i = 0; i < adapter->num_tx_queues; i++) { struct igc_ring *ring = adapter->tx_ring[i]; if (!(e->gate_mask & BIT(i))) continue; - ring->start_time = start_time; + /* Check whether a queue stays open for more than one + * entry. If so, keep the start and advance the end + * time. + */ + if (!queue_configured[i]) + ring->start_time = start_time; ring->end_time = end_time; + + queue_configured[i] = true; } start_time += e->interval; } + /* Check whether a queue gets configured. + * If not, set the start and end time to be end time. + */ + for (i = 0; i < adapter->num_tx_queues; i++) { + if (!queue_configured[i]) { + struct igc_ring *ring = adapter->tx_ring[i]; + + ring->start_time = end_time; + ring->end_time = end_time; + } + } + return 0; } @@ -6282,6 +6443,9 @@ memcpy(&hw->mac.ops, ei->mac_ops, sizeof(hw->mac.ops)); memcpy(&hw->phy.ops, ei->phy_ops, sizeof(hw->phy.ops)); + if (pci_is_thunderbolt_attached(pdev)) + msleep(600); + /* Initialize skew-specific constants */ err = ei->get_invariants(hw); if (err) --- linux-5.19.0.orig/drivers/net/ethernet/intel/igc/igc_tsn.c +++ linux-5.19.0/drivers/net/ethernet/intel/igc/igc_tsn.c @@ -36,7 +36,7 @@ { unsigned int new_flags = adapter->flags & ~IGC_FLAG_TSN_ANY_ENABLED; - if (adapter->base_time) + if (adapter->qbv_enable) new_flags |= IGC_FLAG_TSN_QBV_ENABLED; if (is_any_launchtime(adapter)) @@ -110,15 +110,8 @@ wr32(IGC_STQT(i), ring->start_time); wr32(IGC_ENDQT(i), ring->end_time); - if (adapter->base_time) { - /* If we have a base_time we are in "taprio" - * mode and we need to be strict about the - * cycles: only transmit a packet if it can be - * completed during that cycle. - */ - txqctl |= IGC_TXQCTL_STRICT_CYCLE | - IGC_TXQCTL_STRICT_END; - } + txqctl |= IGC_TXQCTL_STRICT_CYCLE | + IGC_TXQCTL_STRICT_END; if (ring->launchtime_enable) txqctl |= IGC_TXQCTL_QUEUE_MODE_LAUNCHT; --- linux-5.19.0.orig/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c +++ linux-5.19.0/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c @@ -1208,7 +1208,6 @@ struct cyclecounter cc; unsigned long flags; u32 incval = 0; - u32 tsauxc = 0; u32 fuse0 = 0; /* For some of the boards below this mask is technically incorrect. @@ -1243,18 +1242,6 @@ case ixgbe_mac_x550em_a: case ixgbe_mac_X550: cc.read = ixgbe_ptp_read_X550; - - /* enable SYSTIME counter */ - IXGBE_WRITE_REG(hw, IXGBE_SYSTIMR, 0); - IXGBE_WRITE_REG(hw, IXGBE_SYSTIML, 0); - IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0); - tsauxc = IXGBE_READ_REG(hw, IXGBE_TSAUXC); - IXGBE_WRITE_REG(hw, IXGBE_TSAUXC, - tsauxc & ~IXGBE_TSAUXC_DISABLE_SYSTIME); - IXGBE_WRITE_REG(hw, IXGBE_TSIM, IXGBE_TSIM_TXTS); - IXGBE_WRITE_REG(hw, IXGBE_EIMS, IXGBE_EIMS_TIMESYNC); - - IXGBE_WRITE_FLUSH(hw); break; case ixgbe_mac_X540: cc.read = ixgbe_ptp_read_82599; @@ -1287,6 +1274,50 @@ } /** + * ixgbe_ptp_init_systime - Initialize SYSTIME registers + * @adapter: the ixgbe private board structure + * + * Initialize and start the SYSTIME registers. + */ +static void ixgbe_ptp_init_systime(struct ixgbe_adapter *adapter) +{ + struct ixgbe_hw *hw = &adapter->hw; + u32 tsauxc; + + switch (hw->mac.type) { + case ixgbe_mac_X550EM_x: + case ixgbe_mac_x550em_a: + case ixgbe_mac_X550: + tsauxc = IXGBE_READ_REG(hw, IXGBE_TSAUXC); + + /* Reset SYSTIME registers to 0 */ + IXGBE_WRITE_REG(hw, IXGBE_SYSTIMR, 0); + IXGBE_WRITE_REG(hw, IXGBE_SYSTIML, 0); + IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0); + + /* Reset interrupt settings */ + IXGBE_WRITE_REG(hw, IXGBE_TSIM, IXGBE_TSIM_TXTS); + IXGBE_WRITE_REG(hw, IXGBE_EIMS, IXGBE_EIMS_TIMESYNC); + + /* Activate the SYSTIME counter */ + IXGBE_WRITE_REG(hw, IXGBE_TSAUXC, + tsauxc & ~IXGBE_TSAUXC_DISABLE_SYSTIME); + break; + case ixgbe_mac_X540: + case ixgbe_mac_82599EB: + /* Reset SYSTIME registers to 0 */ + IXGBE_WRITE_REG(hw, IXGBE_SYSTIML, 0); + IXGBE_WRITE_REG(hw, IXGBE_SYSTIMH, 0); + break; + default: + /* Other devices aren't supported */ + return; + }; + + IXGBE_WRITE_FLUSH(hw); +} + +/** * ixgbe_ptp_reset * @adapter: the ixgbe private board structure * @@ -1312,6 +1343,8 @@ ixgbe_ptp_start_cyclecounter(adapter); + ixgbe_ptp_init_systime(adapter); + spin_lock_irqsave(&adapter->tmreg_lock, flags); timecounter_init(&adapter->hw_tc, &adapter->hw_cc, ktime_to_ns(ktime_get_real())); --- linux-5.19.0.orig/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c +++ linux-5.19.0/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c @@ -4869,6 +4869,8 @@ **/ static int __init ixgbevf_init_module(void) { + int err; + pr_info("%s\n", ixgbevf_driver_string); pr_info("%s\n", ixgbevf_copyright); ixgbevf_wq = create_singlethread_workqueue(ixgbevf_driver_name); @@ -4877,7 +4879,13 @@ return -ENOMEM; } - return pci_register_driver(&ixgbevf_driver); + err = pci_register_driver(&ixgbevf_driver); + if (err) { + destroy_workqueue(ixgbevf_wq); + return err; + } + + return 0; } module_init(ixgbevf_init_module); --- linux-5.19.0.orig/drivers/net/ethernet/lantiq_etop.c +++ linux-5.19.0/drivers/net/ethernet/lantiq_etop.c @@ -485,7 +485,6 @@ len = skb->len < ETH_ZLEN ? ETH_ZLEN : skb->len; if ((desc->ctl & (LTQ_DMA_OWN | LTQ_DMA_C)) || ch->skb[ch->dma.desc]) { - dev_kfree_skb_any(skb); netdev_err(dev, "tx ring full\n"); netif_tx_stop_queue(txq); return NETDEV_TX_BUSY; --- linux-5.19.0.orig/drivers/net/ethernet/lantiq_xrx200.c +++ linux-5.19.0/drivers/net/ethernet/lantiq_xrx200.c @@ -193,6 +193,7 @@ ch->rx_buff[ch->dma.desc] = alloc(priv->rx_skb_size); if (!ch->rx_buff[ch->dma.desc]) { + ch->rx_buff[ch->dma.desc] = buf; ret = -ENOMEM; goto skip; } @@ -239,6 +240,12 @@ } skb = build_skb(buf, priv->rx_skb_size); + if (!skb) { + skb_free_frag(buf); + net_dev->stats.rx_dropped++; + return -ENOMEM; + } + skb_reserve(skb, NET_SKB_PAD); skb_put(skb, len); @@ -288,7 +295,7 @@ if (ret == XRX200_DMA_PACKET_IN_PROGRESS) continue; if (ret != XRX200_DMA_PACKET_COMPLETE) - return ret; + break; rx++; } else { break; --- linux-5.19.0.orig/drivers/net/ethernet/marvell/mv643xx_eth.c +++ linux-5.19.0/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -2481,6 +2481,7 @@ for (i = 0; i < mp->rxq_count; i++) rxq_deinit(mp->rxq + i); out: + napi_disable(&mp->napi); free_irq(dev->irq, dev); return err; --- linux-5.19.0.orig/drivers/net/ethernet/marvell/mvneta.c +++ linux-5.19.0/drivers/net/ethernet/marvell/mvneta.c @@ -4271,7 +4271,7 @@ /* Use the cpu associated to the rxq when it is online, in all * the other cases, use the cpu 0 which can't be offline. */ - if (cpu_online(pp->rxq_def)) + if (pp->rxq_def < nr_cpu_ids && cpu_online(pp->rxq_def)) elected_cpu = pp->rxq_def; max_cpu = num_present_cpus(); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2.h +++ linux-5.19.0/drivers/net/ethernet/marvell/mvpp2/mvpp2.h @@ -1530,6 +1530,7 @@ void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name); void mvpp2_dbgfs_cleanup(struct mvpp2 *priv); +void mvpp2_dbgfs_exit(void); void mvpp23_rx_fifo_fc_en(struct mvpp2 *priv, int port, bool en); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c +++ linux-5.19.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_debugfs.c @@ -691,6 +691,13 @@ return 0; } +static struct dentry *mvpp2_root; + +void mvpp2_dbgfs_exit(void) +{ + debugfs_remove(mvpp2_root); +} + void mvpp2_dbgfs_cleanup(struct mvpp2 *priv) { debugfs_remove_recursive(priv->dbgfs_dir); @@ -700,10 +707,9 @@ void mvpp2_dbgfs_init(struct mvpp2 *priv, const char *name) { - struct dentry *mvpp2_dir, *mvpp2_root; + struct dentry *mvpp2_dir; int ret, i; - mvpp2_root = debugfs_lookup(MVPP2_DRIVER_NAME, NULL); if (!mvpp2_root) mvpp2_root = debugfs_create_dir(MVPP2_DRIVER_NAME, NULL); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ linux-5.19.0/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -7352,6 +7352,7 @@ struct mvpp2 *priv) { struct resource *res; + void __iomem *base; res = platform_get_resource(pdev, IORESOURCE_MEM, 2); if (!res) { @@ -7362,9 +7363,12 @@ return 0; } - priv->cm3_base = devm_ioremap_resource(&pdev->dev, res); + base = devm_ioremap_resource(&pdev->dev, res); + if (IS_ERR(base)) + return PTR_ERR(base); - return PTR_ERR_OR_ZERO(priv->cm3_base); + priv->cm3_base = base; + return 0; } static int mvpp2_probe(struct platform_device *pdev) @@ -7706,7 +7710,18 @@ }, }; -module_platform_driver(mvpp2_driver); +static int __init mvpp2_driver_init(void) +{ + return platform_driver_register(&mvpp2_driver); +} +module_init(mvpp2_driver_init); + +static void __exit mvpp2_driver_exit(void) +{ + platform_driver_unregister(&mvpp2_driver); + mvpp2_dbgfs_exit(); +} +module_exit(mvpp2_driver_exit); MODULE_DESCRIPTION("Marvell PPv2 Ethernet Driver - www.marvell.com"); MODULE_AUTHOR("Marcin Wojtas "); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeon_ep/octep_main.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeon_ep/octep_main.c @@ -521,14 +521,12 @@ octep_oq_dbell_init(oct); ret = octep_get_link_status(oct); - if (ret) + if (ret > 0) octep_link_up(netdev); return 0; set_queues_err: - octep_napi_disable(oct); - octep_napi_delete(oct); octep_clean_irqs(oct); setup_irq_err: octep_free_oqs(oct); @@ -958,7 +956,7 @@ ret = octep_ctrl_mbox_init(ctrl_mbox); if (ret) { dev_err(&pdev->dev, "Failed to initialize control mbox\n"); - return -1; + goto unsupported_dev; } oct->ctrl_mbox_ifstats_offset = OCTEP_CTRL_MBOX_SZ(ctrl_mbox->h2fq.elem_sz, ctrl_mbox->h2fq.elem_cnt, @@ -968,6 +966,10 @@ return 0; unsupported_dev: + for (i = 0; i < OCTEP_MMIO_REGIONS; i++) + iounmap(oct->mmio[i].hw_addr); + + kfree(oct->conf); return -1; } @@ -1070,7 +1072,11 @@ netdev->max_mtu = OCTEP_MAX_MTU; netdev->mtu = OCTEP_DEFAULT_MTU; - octep_get_mac_addr(octep_dev, octep_dev->mac_addr); + err = octep_get_mac_addr(octep_dev, octep_dev->mac_addr); + if (err) { + dev_err(&pdev->dev, "Failed to get mac address\n"); + goto register_dev_err; + } eth_hw_addr_set(netdev, octep_dev->mac_addr); err = register_netdev(netdev); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu.c @@ -2564,6 +2564,12 @@ rvu_blklf_teardown(rvu, pcifunc, BLKADDR_NPA); rvu_reset_lmt_map_tbl(rvu, pcifunc); rvu_detach_rsrcs(rvu, NULL, pcifunc); + /* In scenarios where PF/VF drivers detach NIXLF without freeing MCAM + * entries, check and free the MCAM entries explicitly to avoid leak. + * Since LF is detached use LF number as -1. + */ + rvu_npc_free_mcam_entries(rvu, pcifunc, -1); + mutex_unlock(&rvu->flr_lock); } --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_debugfs.c @@ -534,6 +534,8 @@ sprintf(lmac, "LMAC%d", lmac_id); seq_printf(filp, "%s\t0x%x\t\tNIX%d\t\t%s\t%s\n", dev_name(&pdev->dev), pcifunc, blkid, cgx, lmac); + + pci_dev_put(pdev); } return 0; } @@ -2220,6 +2222,7 @@ } } + pci_dev_put(pdev); return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c @@ -4954,6 +4954,8 @@ ipolicer->ref_count = devm_kcalloc(rvu->dev, ipolicer->band_prof.max, sizeof(u16), GFP_KERNEL); + if (!ipolicer->ref_count) + return -ENOMEM; } /* Set policer timeunit to 2us ie (19 + 1) * 100 nsec = 2us */ --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc.c @@ -1096,6 +1096,9 @@ void rvu_npc_disable_default_entries(struct rvu *rvu, u16 pcifunc, int nixlf) { + if (nixlf < 0) + return; + npc_enadis_default_entries(rvu, pcifunc, nixlf, false); /* Delete multicast and promisc MCAM entries */ @@ -1107,6 +1110,9 @@ void rvu_npc_enable_default_entries(struct rvu *rvu, u16 pcifunc, int nixlf) { + if (nixlf < 0) + return; + /* Enables only broadcast match entry. Promisc/Allmulti are enabled * in set_rx_mode mbox handler. */ @@ -1650,7 +1656,7 @@ * Firmware database method. * Default KPU profile. */ - if (!request_firmware(&fw, kpu_profile, rvu->dev)) { + if (!request_firmware_direct(&fw, kpu_profile, rvu->dev)) { dev_info(rvu->dev, "Loading KPU profile from firmware: %s\n", kpu_profile); rvu->kpu_fwdata = kzalloc(fw->size, GFP_KERNEL); @@ -1915,6 +1921,7 @@ static void rvu_npc_setup_interfaces(struct rvu *rvu, int blkaddr) { + struct npc_mcam_kex *mkex = rvu->kpu.mkex; struct npc_mcam *mcam = &rvu->hw->mcam; struct rvu_hwinfo *hw = rvu->hw; u64 nibble_ena, rx_kex, tx_kex; @@ -1927,15 +1934,15 @@ mcam->counters.max--; mcam->rx_miss_act_cntr = mcam->counters.max; - rx_kex = npc_mkex_default.keyx_cfg[NIX_INTF_RX]; - tx_kex = npc_mkex_default.keyx_cfg[NIX_INTF_TX]; + rx_kex = mkex->keyx_cfg[NIX_INTF_RX]; + tx_kex = mkex->keyx_cfg[NIX_INTF_TX]; nibble_ena = FIELD_GET(NPC_PARSE_NIBBLE, rx_kex); nibble_ena = rvu_npc_get_tx_nibble_cfg(rvu, nibble_ena); if (nibble_ena) { tx_kex &= ~NPC_PARSE_NIBBLE; tx_kex |= FIELD_PREP(NPC_PARSE_NIBBLE, nibble_ena); - npc_mkex_default.keyx_cfg[NIX_INTF_TX] = tx_kex; + mkex->keyx_cfg[NIX_INTF_TX] = tx_kex; } /* Configure RX interfaces */ --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c @@ -445,7 +445,8 @@ NPC_SCAN_HDR(NPC_VLAN_TAG1, NPC_LID_LB, NPC_LT_LB_CTAG, 2, 2); NPC_SCAN_HDR(NPC_VLAN_TAG2, NPC_LID_LB, NPC_LT_LB_STAG_QINQ, 2, 2); NPC_SCAN_HDR(NPC_DMAC, NPC_LID_LA, la_ltype, la_start, 6); - NPC_SCAN_HDR(NPC_SMAC, NPC_LID_LA, la_ltype, la_start, 6); + /* SMAC follows the DMAC(which is 6 bytes) */ + NPC_SCAN_HDR(NPC_SMAC, NPC_LID_LA, la_ltype, la_start + 6, 6); /* PF_FUNC is 2 bytes at 0th byte of NPC_LT_LA_IH_NIX_ETHER */ NPC_SCAN_HDR(NPC_PF_FUNC, NPC_LID_LA, NPC_LT_LA_IH_NIX_ETHER, 0, 2); } --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/af/rvu_sdp.c @@ -62,15 +62,18 @@ pfvf->sdp_info = devm_kzalloc(rvu->dev, sizeof(struct sdp_node_info), GFP_KERNEL); - if (!pfvf->sdp_info) + if (!pfvf->sdp_info) { + pci_dev_put(pdev); return -ENOMEM; + } dev_info(rvu->dev, "SDP PF number:%d\n", sdp_pf_num[i]); - put_device(&pdev->dev); i++; } + pci_dev_put(pdev); + return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c @@ -632,6 +632,12 @@ req->num_regs++; req->reg[1] = NIX_AF_TL3X_SCHEDULE(schq); req->regval[1] = dwrr_val; + if (lvl == hw->txschq_link_cfg_lvl) { + req->num_regs++; + req->reg[2] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, hw->tx_link); + /* Enable this queue and backpressure */ + req->regval[2] = BIT_ULL(13) | BIT_ULL(12); + } } else if (lvl == NIX_TXSCH_LVL_TL2) { parent = hw->txschq_list[NIX_TXSCH_LVL_TL1][0]; req->reg[0] = NIX_AF_TL2X_PARENT(schq); @@ -641,11 +647,12 @@ req->reg[1] = NIX_AF_TL2X_SCHEDULE(schq); req->regval[1] = TXSCH_TL1_DFLT_RR_PRIO << 24 | dwrr_val; - req->num_regs++; - req->reg[2] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, hw->tx_link); - /* Enable this queue and backpressure */ - req->regval[2] = BIT_ULL(13) | BIT_ULL(12); - + if (lvl == hw->txschq_link_cfg_lvl) { + req->num_regs++; + req->reg[2] = NIX_AF_TL3_TL2X_LINKX_CFG(schq, hw->tx_link); + /* Enable this queue and backpressure */ + req->regval[2] = BIT_ULL(13) | BIT_ULL(12); + } } else if (lvl == NIX_TXSCH_LVL_TL1) { /* Default config for TL1. * For VF this is always ignored. @@ -856,6 +863,7 @@ } sq->head = 0; + sq->cons_head = 0; sq->sqe_per_sqb = (pfvf->hw.sqb_size / sq->sqe_size) - 1; sq->num_sqbs = (qset->sqe_cnt + sq->sqe_per_sqb) / sq->sqe_per_sqb; /* Set SQE threshold to 10% of total SQEs */ @@ -1591,6 +1599,8 @@ for (schq = 0; schq < rsp->schq[lvl]; schq++) pf->hw.txschq_list[lvl][schq] = rsp->schq_list[lvl][schq]; + + pf->hw.txschq_link_cfg_lvl = rsp->link_cfg_lvl; } EXPORT_SYMBOL(mbox_handler_nix_txsch_alloc); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h @@ -195,6 +195,7 @@ u16 sqb_size; /* NIX */ + u8 txschq_link_cfg_lvl; u16 txschq_list[NIX_TXSCH_LVL_CNT][MAX_TXSCHQ_PER_FUNC]; u16 matchall_ipolicer; u32 dwrr_mtu; --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "otx2_reg.h" #include "otx2_common.h" @@ -1161,6 +1162,59 @@ } EXPORT_SYMBOL(otx2_set_real_num_queues); +static char *nix_sqoperr_e_str[NIX_SQOPERR_MAX] = { + "NIX_SQOPERR_OOR", + "NIX_SQOPERR_CTX_FAULT", + "NIX_SQOPERR_CTX_POISON", + "NIX_SQOPERR_DISABLED", + "NIX_SQOPERR_SIZE_ERR", + "NIX_SQOPERR_OFLOW", + "NIX_SQOPERR_SQB_NULL", + "NIX_SQOPERR_SQB_FAULT", + "NIX_SQOPERR_SQE_SZ_ZERO", +}; + +static char *nix_mnqerr_e_str[NIX_MNQERR_MAX] = { + "NIX_MNQERR_SQ_CTX_FAULT", + "NIX_MNQERR_SQ_CTX_POISON", + "NIX_MNQERR_SQB_FAULT", + "NIX_MNQERR_SQB_POISON", + "NIX_MNQERR_TOTAL_ERR", + "NIX_MNQERR_LSO_ERR", + "NIX_MNQERR_CQ_QUERY_ERR", + "NIX_MNQERR_MAX_SQE_SIZE_ERR", + "NIX_MNQERR_MAXLEN_ERR", + "NIX_MNQERR_SQE_SIZEM1_ZERO", +}; + +static char *nix_snd_status_e_str[NIX_SND_STATUS_MAX] = { + "NIX_SND_STATUS_GOOD", + "NIX_SND_STATUS_SQ_CTX_FAULT", + "NIX_SND_STATUS_SQ_CTX_POISON", + "NIX_SND_STATUS_SQB_FAULT", + "NIX_SND_STATUS_SQB_POISON", + "NIX_SND_STATUS_HDR_ERR", + "NIX_SND_STATUS_EXT_ERR", + "NIX_SND_STATUS_JUMP_FAULT", + "NIX_SND_STATUS_JUMP_POISON", + "NIX_SND_STATUS_CRC_ERR", + "NIX_SND_STATUS_IMM_ERR", + "NIX_SND_STATUS_SG_ERR", + "NIX_SND_STATUS_MEM_ERR", + "NIX_SND_STATUS_INVALID_SUBDC", + "NIX_SND_STATUS_SUBDC_ORDER_ERR", + "NIX_SND_STATUS_DATA_FAULT", + "NIX_SND_STATUS_DATA_POISON", + "NIX_SND_STATUS_NPC_DROP_ACTION", + "NIX_SND_STATUS_LOCK_VIOL", + "NIX_SND_STATUS_NPC_UCAST_CHAN_ERR", + "NIX_SND_STATUS_NPC_MCAST_CHAN_ERR", + "NIX_SND_STATUS_NPC_MCAST_ABORT", + "NIX_SND_STATUS_NPC_VTAG_PTR_ERR", + "NIX_SND_STATUS_NPC_VTAG_SIZE_ERR", + "NIX_SND_STATUS_SEND_STATS_ERR", +}; + static irqreturn_t otx2_q_intr_handler(int irq, void *data) { struct otx2_nic *pf = data; @@ -1194,46 +1248,67 @@ /* SQ */ for (qidx = 0; qidx < pf->hw.tot_tx_queues; qidx++) { + u64 sq_op_err_dbg, mnq_err_dbg, snd_err_dbg; + u8 sq_op_err_code, mnq_err_code, snd_err_code; + + /* Below debug registers captures first errors corresponding to + * those registers. We don't have to check against SQ qid as + * these are fatal errors. + */ + ptr = otx2_get_regaddr(pf, NIX_LF_SQ_OP_INT); val = otx2_atomic64_add((qidx << 44), ptr); otx2_write64(pf, NIX_LF_SQ_OP_INT, (qidx << 44) | (val & NIX_SQINT_BITS)); - if (!(val & (NIX_SQINT_BITS | BIT_ULL(42)))) - continue; - if (val & BIT_ULL(42)) { netdev_err(pf->netdev, "SQ%lld: error reading NIX_LF_SQ_OP_INT, NIX_LF_ERR_INT 0x%llx\n", qidx, otx2_read64(pf, NIX_LF_ERR_INT)); - } else { - if (val & BIT_ULL(NIX_SQINT_LMT_ERR)) { - netdev_err(pf->netdev, "SQ%lld: LMT store error NIX_LF_SQ_OP_ERR_DBG:0x%llx", - qidx, - otx2_read64(pf, - NIX_LF_SQ_OP_ERR_DBG)); - otx2_write64(pf, NIX_LF_SQ_OP_ERR_DBG, - BIT_ULL(44)); - } - if (val & BIT_ULL(NIX_SQINT_MNQ_ERR)) { - netdev_err(pf->netdev, "SQ%lld: Meta-descriptor enqueue error NIX_LF_MNQ_ERR_DGB:0x%llx\n", - qidx, - otx2_read64(pf, NIX_LF_MNQ_ERR_DBG)); - otx2_write64(pf, NIX_LF_MNQ_ERR_DBG, - BIT_ULL(44)); - } - if (val & BIT_ULL(NIX_SQINT_SEND_ERR)) { - netdev_err(pf->netdev, "SQ%lld: Send error, NIX_LF_SEND_ERR_DBG 0x%llx", - qidx, - otx2_read64(pf, - NIX_LF_SEND_ERR_DBG)); - otx2_write64(pf, NIX_LF_SEND_ERR_DBG, - BIT_ULL(44)); - } - if (val & BIT_ULL(NIX_SQINT_SQB_ALLOC_FAIL)) - netdev_err(pf->netdev, "SQ%lld: SQB allocation failed", - qidx); + goto done; } + sq_op_err_dbg = otx2_read64(pf, NIX_LF_SQ_OP_ERR_DBG); + if (!(sq_op_err_dbg & BIT(44))) + goto chk_mnq_err_dbg; + + sq_op_err_code = FIELD_GET(GENMASK(7, 0), sq_op_err_dbg); + netdev_err(pf->netdev, "SQ%lld: NIX_LF_SQ_OP_ERR_DBG(%llx) err=%s\n", + qidx, sq_op_err_dbg, nix_sqoperr_e_str[sq_op_err_code]); + + otx2_write64(pf, NIX_LF_SQ_OP_ERR_DBG, BIT_ULL(44)); + + if (sq_op_err_code == NIX_SQOPERR_SQB_NULL) + goto chk_mnq_err_dbg; + + /* Err is not NIX_SQOPERR_SQB_NULL, call aq function to read SQ structure. + * TODO: But we are in irq context. How to call mbox functions which does sleep + */ + +chk_mnq_err_dbg: + mnq_err_dbg = otx2_read64(pf, NIX_LF_MNQ_ERR_DBG); + if (!(mnq_err_dbg & BIT(44))) + goto chk_snd_err_dbg; + + mnq_err_code = FIELD_GET(GENMASK(7, 0), mnq_err_dbg); + netdev_err(pf->netdev, "SQ%lld: NIX_LF_MNQ_ERR_DBG(%llx) err=%s\n", + qidx, mnq_err_dbg, nix_mnqerr_e_str[mnq_err_code]); + otx2_write64(pf, NIX_LF_MNQ_ERR_DBG, BIT_ULL(44)); + +chk_snd_err_dbg: + snd_err_dbg = otx2_read64(pf, NIX_LF_SEND_ERR_DBG); + if (snd_err_dbg & BIT(44)) { + snd_err_code = FIELD_GET(GENMASK(7, 0), snd_err_dbg); + netdev_err(pf->netdev, "SQ%lld: NIX_LF_SND_ERR_DBG:0x%llx err=%s\n", + qidx, snd_err_dbg, nix_snd_status_e_str[snd_err_code]); + otx2_write64(pf, NIX_LF_SEND_ERR_DBG, BIT_ULL(44)); + } + +done: + /* Print values and reset */ + if (val & BIT_ULL(NIX_SQINT_SQB_ALLOC_FAIL)) + netdev_err(pf->netdev, "SQ%lld: SQB allocation failed", + qidx); + schedule_work(&pf->reset_task); } --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_struct.h @@ -274,4 +274,61 @@ BIT_ULL(NIX_SQINT_SEND_ERR) | \ BIT_ULL(NIX_SQINT_SQB_ALLOC_FAIL)) +enum nix_sqoperr_e { + NIX_SQOPERR_OOR = 0, + NIX_SQOPERR_CTX_FAULT = 1, + NIX_SQOPERR_CTX_POISON = 2, + NIX_SQOPERR_DISABLED = 3, + NIX_SQOPERR_SIZE_ERR = 4, + NIX_SQOPERR_OFLOW = 5, + NIX_SQOPERR_SQB_NULL = 6, + NIX_SQOPERR_SQB_FAULT = 7, + NIX_SQOPERR_SQE_SZ_ZERO = 8, + NIX_SQOPERR_MAX, +}; + +enum nix_mnqerr_e { + NIX_MNQERR_SQ_CTX_FAULT = 0, + NIX_MNQERR_SQ_CTX_POISON = 1, + NIX_MNQERR_SQB_FAULT = 2, + NIX_MNQERR_SQB_POISON = 3, + NIX_MNQERR_TOTAL_ERR = 4, + NIX_MNQERR_LSO_ERR = 5, + NIX_MNQERR_CQ_QUERY_ERR = 6, + NIX_MNQERR_MAX_SQE_SIZE_ERR = 7, + NIX_MNQERR_MAXLEN_ERR = 8, + NIX_MNQERR_SQE_SIZEM1_ZERO = 9, + NIX_MNQERR_MAX, +}; + +enum nix_snd_status_e { + NIX_SND_STATUS_GOOD = 0x0, + NIX_SND_STATUS_SQ_CTX_FAULT = 0x1, + NIX_SND_STATUS_SQ_CTX_POISON = 0x2, + NIX_SND_STATUS_SQB_FAULT = 0x3, + NIX_SND_STATUS_SQB_POISON = 0x4, + NIX_SND_STATUS_HDR_ERR = 0x5, + NIX_SND_STATUS_EXT_ERR = 0x6, + NIX_SND_STATUS_JUMP_FAULT = 0x7, + NIX_SND_STATUS_JUMP_POISON = 0x8, + NIX_SND_STATUS_CRC_ERR = 0x9, + NIX_SND_STATUS_IMM_ERR = 0x10, + NIX_SND_STATUS_SG_ERR = 0x11, + NIX_SND_STATUS_MEM_ERR = 0x12, + NIX_SND_STATUS_INVALID_SUBDC = 0x13, + NIX_SND_STATUS_SUBDC_ORDER_ERR = 0x14, + NIX_SND_STATUS_DATA_FAULT = 0x15, + NIX_SND_STATUS_DATA_POISON = 0x16, + NIX_SND_STATUS_NPC_DROP_ACTION = 0x17, + NIX_SND_STATUS_LOCK_VIOL = 0x18, + NIX_SND_STATUS_NPC_UCAST_CHAN_ERR = 0x19, + NIX_SND_STATUS_NPC_MCAST_CHAN_ERR = 0x20, + NIX_SND_STATUS_NPC_MCAST_ABORT = 0x21, + NIX_SND_STATUS_NPC_VTAG_PTR_ERR = 0x22, + NIX_SND_STATUS_NPC_VTAG_SIZE_ERR = 0x23, + NIX_SND_STATUS_SEND_MEM_FAULT = 0x24, + NIX_SND_STATUS_SEND_STATS_ERR = 0x25, + NIX_SND_STATUS_MAX, +}; + #endif /* OTX2_STRUCT_H */ --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_tc.c @@ -1134,7 +1134,12 @@ return err; tc->flow_ht_params = tc_flow_ht_params; - return rhashtable_init(&tc->flow_table, &tc->flow_ht_params); + err = rhashtable_init(&tc->flow_table, &tc->flow_ht_params); + if (err) { + kfree(tc->tc_entries_bitmap); + tc->tc_entries_bitmap = NULL; + } + return err; } EXPORT_SYMBOL(otx2_init_tc); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.c @@ -435,6 +435,7 @@ struct otx2_cq_queue *cq, int budget) { int tx_pkts = 0, tx_bytes = 0, qidx; + struct otx2_snd_queue *sq; struct nix_cqe_tx_s *cqe; int processed_cqe = 0; @@ -445,6 +446,9 @@ return 0; process_cqe: + qidx = cq->cq_idx - pfvf->hw.rx_queues; + sq = &pfvf->qset.sq[qidx]; + while (likely(processed_cqe < budget) && cq->pend_cqe) { cqe = (struct nix_cqe_tx_s *)otx2_get_next_cqe(cq); if (unlikely(!cqe)) { @@ -452,18 +456,20 @@ return 0; break; } + if (cq->cq_type == CQ_XDP) { - qidx = cq->cq_idx - pfvf->hw.rx_queues; - otx2_xdp_snd_pkt_handler(pfvf, &pfvf->qset.sq[qidx], - cqe); + otx2_xdp_snd_pkt_handler(pfvf, sq, cqe); } else { - otx2_snd_pkt_handler(pfvf, cq, - &pfvf->qset.sq[cq->cint_idx], - cqe, budget, &tx_pkts, &tx_bytes); + otx2_snd_pkt_handler(pfvf, cq, sq, cqe, budget, + &tx_pkts, &tx_bytes); } + cqe->hdr.cqe_type = NIX_XQE_TYPE_INVALID; processed_cqe++; cq->pend_cqe--; + + sq->cons_head++; + sq->cons_head &= (sq->sqe_cnt - 1); } /* Free CQEs to HW */ @@ -972,17 +978,17 @@ { struct netdev_queue *txq = netdev_get_tx_queue(netdev, qidx); struct otx2_nic *pfvf = netdev_priv(netdev); - int offset, num_segs, free_sqe; + int offset, num_segs, free_desc; struct nix_sqe_hdr_s *sqe_hdr; - /* Check if there is room for new SQE. - * 'Num of SQBs freed to SQ's pool - SQ's Aura count' - * will give free SQE count. + /* Check if there is enough room between producer + * and consumer index. */ - free_sqe = (sq->num_sqbs - *sq->aura_fc_addr) * sq->sqe_per_sqb; + free_desc = (sq->cons_head - sq->head - 1 + sq->sqe_cnt) & (sq->sqe_cnt - 1); + if (free_desc < sq->sqe_thresh) + return false; - if (free_sqe < sq->sqe_thresh || - free_sqe < otx2_get_sqe_count(pfvf, skb)) + if (free_desc < otx2_get_sqe_count(pfvf, skb)) return false; num_segs = skb_shinfo(skb)->nr_frags + 1; --- linux-5.19.0.orig/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h +++ linux-5.19.0/drivers/net/ethernet/marvell/octeontx2/nic/otx2_txrx.h @@ -79,6 +79,7 @@ struct otx2_snd_queue { u8 aura_id; u16 head; + u16 cons_head; u16 sqe_size; u32 sqe_cnt; u16 num_sqbs; --- linux-5.19.0.orig/drivers/net/ethernet/marvell/prestera/prestera_acl.c +++ linux-5.19.0/drivers/net/ethernet/marvell/prestera/prestera_acl.c @@ -162,10 +162,14 @@ return ERR_PTR(err); } -void prestera_acl_ruleset_keymask_set(struct prestera_acl_ruleset *ruleset, - void *keymask) +int prestera_acl_ruleset_keymask_set(struct prestera_acl_ruleset *ruleset, + void *keymask) { ruleset->keymask = kmemdup(keymask, ACL_KEYMASK_SIZE, GFP_KERNEL); + if (!ruleset->keymask) + return -ENOMEM; + + return 0; } int prestera_acl_ruleset_offload(struct prestera_acl_ruleset *ruleset) --- linux-5.19.0.orig/drivers/net/ethernet/marvell/prestera/prestera_acl.h +++ linux-5.19.0/drivers/net/ethernet/marvell/prestera/prestera_acl.h @@ -185,8 +185,8 @@ prestera_acl_ruleset_lookup(struct prestera_acl *acl, struct prestera_flow_block *block, u32 chain_index); -void prestera_acl_ruleset_keymask_set(struct prestera_acl_ruleset *ruleset, - void *keymask); +int prestera_acl_ruleset_keymask_set(struct prestera_acl_ruleset *ruleset, + void *keymask); bool prestera_acl_ruleset_is_offload(struct prestera_acl_ruleset *ruleset); int prestera_acl_ruleset_offload(struct prestera_acl_ruleset *ruleset); void prestera_acl_ruleset_put(struct prestera_acl_ruleset *ruleset); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/prestera/prestera_flower.c +++ linux-5.19.0/drivers/net/ethernet/marvell/prestera/prestera_flower.c @@ -428,7 +428,9 @@ } /* preserve keymask/template to this ruleset */ - prestera_acl_ruleset_keymask_set(ruleset, rule.re_key.match.mask); + err = prestera_acl_ruleset_keymask_set(ruleset, rule.re_key.match.mask); + if (err) + goto err_ruleset_keymask_set; /* skip error, as it is not possible to reject template operation, * so, keep the reference to the ruleset for rules to be added @@ -444,6 +446,8 @@ list_add_rcu(&template->list, &block->template_list); return 0; +err_ruleset_keymask_set: + prestera_acl_ruleset_put(ruleset); err_ruleset_get: kfree(template); err_malloc: --- linux-5.19.0.orig/drivers/net/ethernet/marvell/prestera/prestera_pci.c +++ linux-5.19.0/drivers/net/ethernet/marvell/prestera/prestera_pci.c @@ -872,6 +872,7 @@ static const struct pci_device_id prestera_pci_devices[] = { { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0xC804) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0xC80C) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0xCC1E) }, { } }; MODULE_DEVICE_TABLE(pci, prestera_pci_devices); --- linux-5.19.0.orig/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c +++ linux-5.19.0/drivers/net/ethernet/marvell/prestera/prestera_rxtx.c @@ -776,6 +776,7 @@ int prestera_rxtx_switch_init(struct prestera_switch *sw) { struct prestera_rxtx *rxtx; + int err; rxtx = kzalloc(sizeof(*rxtx), GFP_KERNEL); if (!rxtx) @@ -783,7 +784,11 @@ sw->rxtx = rxtx; - return prestera_sdma_switch_init(sw); + err = prestera_sdma_switch_init(sw); + if (err) + kfree(rxtx); + + return err; } void prestera_rxtx_switch_fini(struct prestera_switch *sw) --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.c +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_eth_soc.c @@ -1444,8 +1444,8 @@ int done = 0, bytes = 0; while (done < budget) { + unsigned int pktlen, *rxdcsum; struct net_device *netdev; - unsigned int pktlen; dma_addr_t dma_addr; u32 hash, reason; int mac = 0; @@ -1512,23 +1512,31 @@ pktlen = RX_DMA_GET_PLEN0(trxd.rxd2); skb->dev = netdev; skb_put(skb, pktlen); - if (trxd.rxd4 & eth->soc->txrx.rx_dma_l4_valid) + + if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { + hash = trxd.rxd5 & MTK_RXD5_FOE_ENTRY; + if (hash != MTK_RXD5_FOE_ENTRY) + skb_set_hash(skb, jhash_1word(hash, 0), + PKT_HASH_TYPE_L4); + rxdcsum = &trxd.rxd3; + } else { + hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY; + if (hash != MTK_RXD4_FOE_ENTRY) + skb_set_hash(skb, jhash_1word(hash, 0), + PKT_HASH_TYPE_L4); + rxdcsum = &trxd.rxd4; + } + + if (*rxdcsum & eth->soc->txrx.rx_dma_l4_valid) skb->ip_summed = CHECKSUM_UNNECESSARY; else skb_checksum_none_assert(skb); skb->protocol = eth_type_trans(skb, netdev); bytes += pktlen; - hash = trxd.rxd4 & MTK_RXD4_FOE_ENTRY; - if (hash != MTK_RXD4_FOE_ENTRY) { - hash = jhash_1word(hash, 0); - skb_set_hash(skb, hash, PKT_HASH_TYPE_L4); - } - reason = FIELD_GET(MTK_RXD4_PPE_CPU_REASON, trxd.rxd4); if (reason == MTK_PPE_CPU_REASON_HIT_UNBIND_RATE_REACHED) - mtk_ppe_check_skb(eth->ppe, skb, - trxd.rxd4 & MTK_RXD4_FOE_ENTRY); + mtk_ppe_check_skb(eth->ppe, skb, hash); if (netdev->features & NETIF_F_HW_VLAN_CTAG_RX) { if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { @@ -2557,8 +2565,10 @@ u32 gdm_config = MTK_GDMA_TO_PDMA; err = mtk_start_dma(eth); - if (err) + if (err) { + phylink_disconnect_phy(mac->phylink); return err; + } if (eth->soc->offload_version && mtk_ppe_start(eth->ppe) == 0) gdm_config = MTK_GDMA_TO_PPE; @@ -2741,6 +2751,30 @@ dim->state = DIM_START_MEASURE; } +static void mtk_set_mcr_max_rx(struct mtk_mac *mac, u32 val) +{ + struct mtk_eth *eth = mac->hw; + u32 mcr_cur, mcr_new; + + if (MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) + return; + + mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); + mcr_new = mcr_cur & ~MAC_MCR_MAX_RX_MASK; + + if (val <= 1518) + mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1518); + else if (val <= 1536) + mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1536); + else if (val <= 1552) + mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1552); + else + mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_2048); + + if (mcr_new != mcr_cur) + mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); +} + static int mtk_hw_init(struct mtk_eth *eth) { u32 dma_mask = ETHSYS_DMA_AG_MAP_PDMA | ETHSYS_DMA_AG_MAP_QDMA | @@ -2780,16 +2814,17 @@ return 0; } - val = RSTCTRL_FE | RSTCTRL_PPE; if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, 0); - - val |= RSTCTRL_ETH; - if (MTK_HAS_CAPS(eth->soc->caps, MTK_RSTCTRL_PPE1)) - val |= RSTCTRL_PPE1; + val = RSTCTRL_PPE0_V2; + } else { + val = RSTCTRL_PPE0; } - ethsys_reset(eth, val); + if (MTK_HAS_CAPS(eth->soc->caps, MTK_RSTCTRL_PPE1)) + val |= RSTCTRL_PPE1; + + ethsys_reset(eth, RSTCTRL_ETH | RSTCTRL_FE | val); if (MTK_HAS_CAPS(eth->soc->caps, MTK_NETSYS_V2)) { regmap_write(eth->ethsys, ETHSYS_FE_RST_CHK_IDLE_EN, @@ -2815,8 +2850,16 @@ * up with the more appropriate value when mtk_mac_config call is being * invoked. */ - for (i = 0; i < MTK_MAC_COUNT; i++) + for (i = 0; i < MTK_MAC_COUNT; i++) { + struct net_device *dev = eth->netdev[i]; + mtk_w32(eth, MAC_MCR_FORCE_LINK_DOWN, MTK_MAC_MCR(i)); + if (dev) { + struct mtk_mac *mac = netdev_priv(dev); + + mtk_set_mcr_max_rx(mac, dev->mtu + MTK_RX_ETH_HLEN); + } + } /* Indicates CDM to parse the MTK special tag from CPU * which also is working out for untag packets. @@ -2932,25 +2975,8 @@ int length = new_mtu + MTK_RX_ETH_HLEN; struct mtk_mac *mac = netdev_priv(dev); struct mtk_eth *eth = mac->hw; - u32 mcr_cur, mcr_new; - - if (!MTK_HAS_CAPS(eth->soc->caps, MTK_SOC_MT7628)) { - mcr_cur = mtk_r32(mac->hw, MTK_MAC_MCR(mac->id)); - mcr_new = mcr_cur & ~MAC_MCR_MAX_RX_MASK; - - if (length <= 1518) - mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1518); - else if (length <= 1536) - mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1536); - else if (length <= 1552) - mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_1552); - else - mcr_new |= MAC_MCR_MAX_RX(MAC_MCR_MAX_RX_2048); - - if (mcr_new != mcr_cur) - mtk_w32(mac->hw, mcr_new, MTK_MAC_MCR(mac->id)); - } + mtk_set_mcr_max_rx(mac, length); dev->mtu = new_mtu; return 0; @@ -3525,19 +3551,23 @@ eth->irq[i] = platform_get_irq(pdev, i); if (eth->irq[i] < 0) { dev_err(&pdev->dev, "no IRQ%d resource found\n", i); - return -ENXIO; + err = -ENXIO; + goto err_wed_exit; } } for (i = 0; i < ARRAY_SIZE(eth->clks); i++) { eth->clks[i] = devm_clk_get(eth->dev, mtk_clks_source_name[i]); if (IS_ERR(eth->clks[i])) { - if (PTR_ERR(eth->clks[i]) == -EPROBE_DEFER) - return -EPROBE_DEFER; + if (PTR_ERR(eth->clks[i]) == -EPROBE_DEFER) { + err = -EPROBE_DEFER; + goto err_wed_exit; + } if (eth->soc->required_clks & BIT(i)) { dev_err(&pdev->dev, "clock %s not found\n", mtk_clks_source_name[i]); - return -EINVAL; + err = -EINVAL; + goto err_wed_exit; } eth->clks[i] = NULL; } @@ -3548,7 +3578,7 @@ err = mtk_hw_init(eth); if (err) - return err; + goto err_wed_exit; eth->hwlro = MTK_HAS_CAPS(eth->soc->caps, MTK_HWLRO); @@ -3596,12 +3626,12 @@ eth->ppe = mtk_ppe_init(eth, eth->base + MTK_ETH_PPE_BASE, 2); if (!eth->ppe) { err = -ENOMEM; - goto err_free_dev; + goto err_deinit_mdio; } err = mtk_eth_offload_init(eth); if (err) - goto err_free_dev; + goto err_deinit_mdio; } for (i = 0; i < MTK_MAX_DEVS; i++) { @@ -3637,6 +3667,8 @@ mtk_free_dev(eth); err_deinit_hw: mtk_hw_deinit(eth); +err_wed_exit: + mtk_wed_exit(); return err; } @@ -3656,6 +3688,7 @@ phylink_disconnect_phy(mac->phylink); } + mtk_wed_exit(); mtk_hw_deinit(eth); netif_napi_del(ð->tx_napi); @@ -3761,6 +3794,7 @@ .txd_size = sizeof(struct mtk_tx_dma_v2), .rxd_size = sizeof(struct mtk_rx_dma_v2), .rx_irq_done_mask = MTK_RX_DONE_INT_V2, + .rx_dma_l4_valid = RX_DMA_L4_VALID_V2, .dma_max_len = MTK_TX_DMA_BUF_LEN_V2, .dma_len_offset = 8, }, --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_eth_soc.h +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_eth_soc.h @@ -307,8 +307,13 @@ #define RX_DMA_L4_VALID_PDMA BIT(30) /* when PDMA is used */ #define RX_DMA_SPECIAL_TAG BIT(22) -#define RX_DMA_GET_SPORT(x) (((x) >> 19) & 0xf) -#define RX_DMA_GET_SPORT_V2(x) (((x) >> 26) & 0x7) +/* PDMA descriptor rxd5 */ +#define MTK_RXD5_FOE_ENTRY GENMASK(14, 0) +#define MTK_RXD5_PPE_CPU_REASON GENMASK(22, 18) +#define MTK_RXD5_SRC_PORT GENMASK(29, 26) + +#define RX_DMA_GET_SPORT(x) (((x) >> 19) & 0x7) +#define RX_DMA_GET_SPORT_V2(x) (((x) >> 26) & 0xf) /* PDMA V2 descriptor rxd3 */ #define RX_DMA_VTAG_V2 BIT(0) @@ -439,18 +444,14 @@ /* ethernet reset control register */ #define ETHSYS_RSTCTRL 0x34 #define RSTCTRL_FE BIT(6) -#define RSTCTRL_PPE BIT(31) -#define RSTCTRL_PPE1 BIT(30) +#define RSTCTRL_PPE0 BIT(31) +#define RSTCTRL_PPE0_V2 BIT(30) +#define RSTCTRL_PPE1 BIT(31) #define RSTCTRL_ETH BIT(23) /* ethernet reset check idle register */ #define ETHSYS_FE_RST_CHK_IDLE_EN 0x28 -/* ethernet reset control register */ -#define ETHSYS_RSTCTRL 0x34 -#define RSTCTRL_FE BIT(6) -#define RSTCTRL_PPE BIT(31) - /* ethernet dma channel agent map */ #define ETHSYS_DMA_AG_MAP 0x408 #define ETHSYS_DMA_AG_MAP_PDMA BIT(0) --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_ppe.c +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_ppe.c @@ -412,7 +412,7 @@ if (entry->hash != 0xffff) { ppe->foe_table[entry->hash].ib1 &= ~MTK_FOE_IB1_STATE; ppe->foe_table[entry->hash].ib1 |= FIELD_PREP(MTK_FOE_IB1_STATE, - MTK_FOE_STATE_BIND); + MTK_FOE_STATE_INVALID); dma_wmb(); } entry->hash = 0xffff; --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_ppe.h +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_ppe.h @@ -293,6 +293,9 @@ if (!ppe) return; + if (hash > MTK_PPE_HASH_MASK) + return; + now = (u16)jiffies; diff = now - ppe->foe_check_time[hash]; if (diff < HZ / 10) --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_star_emac.c +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_star_emac.c @@ -976,6 +976,8 @@ return 0; err_free_irq: + napi_disable(&priv->rx_napi); + napi_disable(&priv->tx_napi); free_irq(ndev->irq, ndev); err_free_skbs: mtk_star_free_rx_skbs(priv); --- linux-5.19.0.orig/drivers/net/ethernet/mediatek/mtk_wed.c +++ linux-5.19.0/drivers/net/ethernet/mediatek/mtk_wed.c @@ -808,16 +808,16 @@ pdev = of_find_device_by_node(np); if (!pdev) - return; + goto err_of_node_put; get_device(&pdev->dev); irq = platform_get_irq(pdev, 0); if (irq < 0) - return; + goto err_put_device; regs = syscon_regmap_lookup_by_phandle(np, NULL); if (IS_ERR(regs)) - return; + goto err_put_device; rcu_assign_pointer(mtk_soc_wed_ops, &wed_ops); @@ -853,8 +853,16 @@ hw_list[index] = hw; + mutex_unlock(&hw_lock); + + return; + unlock: mutex_unlock(&hw_lock); +err_put_device: + put_device(&pdev->dev); +err_of_node_put: + of_node_put(np); } void mtk_wed_exit(void) @@ -875,6 +883,7 @@ hw_list[i] = NULL; debugfs_remove(hw->debugfs_dir); put_device(hw->dev); + of_node_put(hw->node); kfree(hw); } } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx4/qp.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx4/qp.c @@ -697,7 +697,8 @@ err = mlx4_bitmap_init(*bitmap + k, 1, MLX4_QP_TABLE_RAW_ETH_SIZE - 1, 0, 0); - mlx4_bitmap_alloc_range(*bitmap + k, 1, 1, 0); + if (!err) + mlx4_bitmap_alloc_range(*bitmap + k, 1, 1, 0); } if (err) --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/cmd.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/cmd.c @@ -45,6 +45,8 @@ #include "mlx5_core.h" #include "lib/eq.h" #include "lib/tout.h" +#define CREATE_TRACE_POINTS +#include "diag/cmd_tracepoint.h" enum { CMD_IF_REV = 5, @@ -785,27 +787,14 @@ static void cmd_status_print(struct mlx5_core_dev *dev, void *in, void *out) { u16 opcode, op_mod; - u32 syndrome; - u8 status; u16 uid; - int err; - - syndrome = MLX5_GET(mbox_out, out, syndrome); - status = MLX5_GET(mbox_out, out, status); opcode = MLX5_GET(mbox_in, in, opcode); op_mod = MLX5_GET(mbox_in, in, op_mod); uid = MLX5_GET(mbox_in, in, uid); - err = cmd_status_to_err(status); - if (!uid && opcode != MLX5_CMD_OP_DESTROY_MKEY) mlx5_cmd_out_err(dev, opcode, op_mod, out); - else - mlx5_core_dbg(dev, - "%s(0x%x) op_mod(0x%x) uid(%d) failed, status %s(0x%x), syndrome (0x%x), err(%d)\n", - mlx5_command_str(opcode), opcode, op_mod, uid, - cmd_status_str(status), status, syndrome, err); } int mlx5_cmd_check(struct mlx5_core_dev *dev, int err, void *in, void *out) @@ -1016,6 +1005,7 @@ cmd_ent_get(ent); set_bit(MLX5_CMD_ENT_STATE_PENDING_COMP, &ent->state); + cmd_ent_get(ent); /* for the _real_ FW event on completion */ /* Skip sending command to fw if internal error */ if (mlx5_cmd_is_down(dev) || !opcode_allowed(&dev->cmd, ent->op)) { ent->ret = -ENXIO; @@ -1023,7 +1013,6 @@ 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(); @@ -1508,8 +1497,8 @@ return -EFAULT; err = sscanf(outlen_str, "%d", &outlen); - if (err < 0) - return err; + if (err != 1) + return -EINVAL; ptr = kzalloc(outlen, GFP_KERNEL); if (!ptr) @@ -1672,8 +1661,8 @@ 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) + mlx5_cmd_is_down(dev) || /* No real FW completion is expected */ + !opcode_allowed(cmd, ent->op)) cmd_ent_put(ent); ent->ts2 = ktime_get_ns(); @@ -1770,12 +1759,17 @@ struct mlx5_cmd *cmd = &dev->cmd; int i; - for (i = 0; i < cmd->max_reg_cmds; i++) - while (down_trylock(&cmd->sem)) + for (i = 0; i < cmd->max_reg_cmds; i++) { + while (down_trylock(&cmd->sem)) { mlx5_cmd_trigger_completions(dev); + cond_resched(); + } + } - while (down_trylock(&cmd->pages_sem)) + while (down_trylock(&cmd->pages_sem)) { mlx5_cmd_trigger_completions(dev); + cond_resched(); + } /* Unlock cmdif */ up(&cmd->pages_sem); @@ -1887,6 +1881,16 @@ return err; } +static void mlx5_cmd_err_trace(struct mlx5_core_dev *dev, u16 opcode, u16 op_mod, void *out) +{ + u32 syndrome = MLX5_GET(mbox_out, out, syndrome); + u8 status = MLX5_GET(mbox_out, out, status); + + trace_mlx5_cmd(mlx5_command_str(opcode), opcode, op_mod, + cmd_status_str(status), status, syndrome, + cmd_status_to_err(status)); +} + static void cmd_status_log(struct mlx5_core_dev *dev, u16 opcode, u8 status, u32 syndrome, int err) { @@ -1909,7 +1913,7 @@ } /* preserve -EREMOTEIO for outbox.status != OK, otherwise return err as is */ -static int cmd_status_err(struct mlx5_core_dev *dev, int err, u16 opcode, void *out) +static int cmd_status_err(struct mlx5_core_dev *dev, int err, u16 opcode, u16 op_mod, void *out) { u32 syndrome = MLX5_GET(mbox_out, out, syndrome); u8 status = MLX5_GET(mbox_out, out, status); @@ -1917,8 +1921,10 @@ if (err == -EREMOTEIO) /* -EREMOTEIO is preserved */ err = -EIO; - if (!err && status != MLX5_CMD_STAT_OK) + if (!err && status != MLX5_CMD_STAT_OK) { err = -EREMOTEIO; + mlx5_cmd_err_trace(dev, opcode, op_mod, out); + } cmd_status_log(dev, opcode, status, syndrome, err); return err; @@ -1946,9 +1952,9 @@ { int err = cmd_exec(dev, in, in_size, out, out_size, NULL, NULL, false); u16 opcode = MLX5_GET(mbox_in, in, opcode); + u16 op_mod = MLX5_GET(mbox_in, in, op_mod); - err = cmd_status_err(dev, err, opcode, out); - return err; + return cmd_status_err(dev, err, opcode, op_mod, out); } EXPORT_SYMBOL(mlx5_cmd_do); @@ -1992,8 +1998,9 @@ { int err = cmd_exec(dev, in, in_size, out, out_size, NULL, NULL, true); u16 opcode = MLX5_GET(mbox_in, in, opcode); + u16 op_mod = MLX5_GET(mbox_in, in, op_mod); - err = cmd_status_err(dev, err, opcode, out); + err = cmd_status_err(dev, err, opcode, op_mod, out); return mlx5_cmd_check(dev, err, in, out); } EXPORT_SYMBOL(mlx5_cmd_exec_polling); @@ -2004,7 +2011,7 @@ ctx->dev = dev; /* Starts at 1 to avoid doing wake_up if we are not cleaning up */ atomic_set(&ctx->num_inflight, 1); - init_waitqueue_head(&ctx->wait); + init_completion(&ctx->inflight_done); } EXPORT_SYMBOL(mlx5_cmd_init_async_ctx); @@ -2018,8 +2025,8 @@ */ void mlx5_cmd_cleanup_async_ctx(struct mlx5_async_ctx *ctx) { - atomic_dec(&ctx->num_inflight); - wait_event(ctx->wait, atomic_read(&ctx->num_inflight) == 0); + if (!atomic_dec_and_test(&ctx->num_inflight)) + wait_for_completion(&ctx->inflight_done); } EXPORT_SYMBOL(mlx5_cmd_cleanup_async_ctx); @@ -2029,10 +2036,10 @@ struct mlx5_async_ctx *ctx; ctx = work->ctx; - status = cmd_status_err(ctx->dev, status, work->opcode, work->out); + status = cmd_status_err(ctx->dev, status, work->opcode, work->op_mod, work->out); work->user_callback(status, work); if (atomic_dec_and_test(&ctx->num_inflight)) - wake_up(&ctx->wait); + complete(&ctx->inflight_done); } int mlx5_cmd_exec_cb(struct mlx5_async_ctx *ctx, void *in, int in_size, @@ -2044,13 +2051,14 @@ work->ctx = ctx; work->user_callback = callback; work->opcode = MLX5_GET(mbox_in, in, opcode); + work->op_mod = MLX5_GET(mbox_in, in, op_mod); work->out = out; if (WARN_ON(!atomic_inc_not_zero(&ctx->num_inflight))) return -EIO; ret = cmd_exec(ctx->dev, in, in_size, out, out_size, mlx5_cmd_exec_cb_handler, work, false); if (ret && atomic_dec_and_test(&ctx->num_inflight)) - wake_up(&ctx->wait); + complete(&ctx->inflight_done); return ret; } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/diag/cmd_tracepoint.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/diag/cmd_tracepoint.h @@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ +/* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM mlx5 + +#if !defined(_MLX5_CMD_TP_H_) || defined(TRACE_HEADER_MULTI_READ) +#define _MLX5_CMD_TP_H_ + +#include +#include + +TRACE_EVENT(mlx5_cmd, + TP_PROTO(const char *command_str, u16 opcode, u16 op_mod, + const char *status_str, u8 status, u32 syndrome, int err), + TP_ARGS(command_str, opcode, op_mod, status_str, status, syndrome, err), + TP_STRUCT__entry(__string(command_str, command_str) + __field(u16, opcode) + __field(u16, op_mod) + __string(status_str, status_str) + __field(u8, status) + __field(u32, syndrome) + __field(int, err) + ), + TP_fast_assign(__assign_str(command_str, command_str); + __entry->opcode = opcode; + __entry->op_mod = op_mod; + __assign_str(status_str, status_str); + __entry->status = status; + __entry->syndrome = syndrome; + __entry->err = err; + ), + TP_printk("%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x), err(%d)", + __get_str(command_str), __entry->opcode, __entry->op_mod, + __get_str(status_str), __entry->status, __entry->syndrome, + __entry->err) +); + +#endif /* _MLX5_CMD_TP_H_ */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH ./diag +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE cmd_tracepoint +#include --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/diag/fw_tracer.c @@ -638,7 +638,7 @@ trace_timestamp = (timestamp_event.timestamp & MASK_52_7) | (str_frmt->timestamp & MASK_6_0); else - trace_timestamp = ((timestamp_event.timestamp & MASK_52_7) - 1) | + trace_timestamp = ((timestamp_event.timestamp - 1) & MASK_52_7) | (str_frmt->timestamp & MASK_6_0); mlx5_tracer_print_trace(str_frmt, dev, trace_timestamp); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -109,7 +109,7 @@ #define MLX5E_REQUIRED_WQE_MTTS (MLX5_ALIGN_MTTS(MLX5_MPWRQ_PAGES_PER_WQE + 1)) #define MLX5E_REQUIRED_MTTS(wqes) (wqes * MLX5E_REQUIRED_WQE_MTTS) #define MLX5E_MAX_RQ_NUM_MTTS \ - ((1 << 16) * 2) /* So that MLX5_MTT_OCTW(num_mtts) fits into u16 */ + (ALIGN_DOWN(U16_MAX, 4) * 2) /* So that MLX5_MTT_OCTW(num_mtts) fits into u16 */ #define MLX5E_ORDER2_MAX_PACKET_MTU (order_base_2(10 * 1024)) #define MLX5E_PARAMS_MAXIMUM_LOG_RQ_SIZE_MPW \ (ilog2(MLX5E_MAX_RQ_NUM_MTTS / MLX5E_REQUIRED_WQE_MTTS)) @@ -174,8 +174,8 @@ ALIGN_DOWN(MLX5E_KLM_MAX_ENTRIES_PER_WQE(wqe_size), MLX5_UMR_KLM_ALIGNMENT) #define MLX5E_MAX_KLM_PER_WQE(mdev) \ - MLX5E_KLM_ENTRIES_PER_WQE(mlx5e_get_sw_max_sq_mpw_wqebbs(mlx5e_get_max_sq_wqebbs(mdev)) \ - << MLX5_MKEY_BSF_OCTO_SIZE) + MLX5E_KLM_ENTRIES_PER_WQE(MLX5_SEND_WQE_BB * \ + mlx5e_get_sw_max_sq_mpw_wqebbs(mlx5e_get_max_sq_wqebbs(mdev))) #define MLX5E_MSG_LEVEL NETIF_MSG_LINK @@ -233,7 +233,7 @@ MLX5_CAP_GEN(mdev, max_wqe_sz_sq) / MLX5_SEND_WQE_BB); } -static inline u16 mlx5e_get_sw_max_sq_mpw_wqebbs(u16 max_sq_wqebbs) +static inline u8 mlx5e_get_sw_max_sq_mpw_wqebbs(u8 max_sq_wqebbs) { /* The return value will be multiplied by MLX5_SEND_WQEBB_NUM_DS. * Since max_sq_wqebbs may be up to MLX5_SEND_WQE_MAX_WQEBBS == 16, @@ -242,11 +242,12 @@ * than MLX5_SEND_WQE_MAX_WQEBBS to let a full-session WQE be * cache-aligned. */ -#if L1_CACHE_BYTES < 128 - return min_t(u16, max_sq_wqebbs, MLX5_SEND_WQE_MAX_WQEBBS - 1); -#else - return min_t(u16, max_sq_wqebbs, MLX5_SEND_WQE_MAX_WQEBBS - 2); + u8 wqebbs = min_t(u8, max_sq_wqebbs, MLX5_SEND_WQE_MAX_WQEBBS - 1); + +#if L1_CACHE_BYTES >= 128 + wqebbs = ALIGN_DOWN(wqebbs, 2); #endif + return wqebbs; } struct mlx5e_tx_wqe { @@ -455,7 +456,7 @@ struct netdev_queue *txq; u32 sqn; u16 stop_room; - u16 max_sq_mpw_wqebbs; + u8 max_sq_mpw_wqebbs; u8 min_inline_mode; struct device *pdev; __be32 mkey_be; @@ -570,7 +571,7 @@ struct device *pdev; __be32 mkey_be; u16 stop_room; - u16 max_sq_mpw_wqebbs; + u8 max_sq_mpw_wqebbs; u8 min_inline_mode; unsigned long state; unsigned int hw_mtu; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -790,8 +790,20 @@ return MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE; wqebbs = MLX5E_UMR_WQEBBS * BIT(mlx5e_get_rq_log_wq_sz(rqp->rqc)); + + /* If XDP program is attached, XSK may be turned on at any time without + * restarting the channel. ICOSQ must be big enough to fit UMR WQEs of + * both regular RQ and XSK RQ. + * Although mlx5e_mpwqe_get_log_rq_size accepts mlx5e_xsk_param, it + * doesn't affect its return value, as long as params->xdp_prog != NULL, + * so we can just multiply by 2. + */ + if (params->xdp_prog) + wqebbs *= 2; + if (params->packet_merge.type == MLX5E_PACKET_MERGE_SHAMPO) wqebbs += mlx5e_shampo_icosq_sz(mdev, params, rqp); + return max_t(u8, MLX5E_PARAMS_MINIMUM_LOG_SQ_SIZE, order_base_2(wqebbs)); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h @@ -6,6 +6,7 @@ #include "en.h" #include "en_stats.h" +#include "en/txrx.h" #include #define MLX5E_PTP_CHANNEL_IX 0 @@ -67,6 +68,14 @@ fk.ports.dst == htons(PTP_EV_PORT)); } +static inline bool mlx5e_ptpsq_fifo_has_room(struct mlx5e_txqsq *sq) +{ + if (!sq->ptpsq) + return true; + + return mlx5e_skb_fifo_has_room(&sq->ptpsq->skb_fifo); +} + int mlx5e_ptp_open(struct mlx5e_priv *priv, struct mlx5e_params *params, u8 lag_port, struct mlx5e_ptp **cp); void mlx5e_ptp_close(struct mlx5e_ptp *c); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/rep/bridge.c @@ -164,6 +164,36 @@ return err; } +static int +mlx5_esw_bridge_changeupper_validate_netdev(void *ptr) +{ + struct net_device *dev = netdev_notifier_info_to_dev(ptr); + struct netdev_notifier_changeupper_info *info = ptr; + struct net_device *upper = info->upper_dev; + struct net_device *lower; + struct list_head *iter; + + if (!netif_is_bridge_master(upper) || !netif_is_lag_master(dev)) + return 0; + + netdev_for_each_lower_dev(dev, lower, iter) { + struct mlx5_core_dev *mdev; + struct mlx5e_priv *priv; + + if (!mlx5e_eswitch_rep(lower)) + continue; + + priv = netdev_priv(lower); + mdev = priv->mdev; + if (!mlx5_lag_is_active(mdev)) + return -EAGAIN; + if (!mlx5_lag_is_shared_fdb(mdev)) + return -EOPNOTSUPP; + } + + return 0; +} + static int mlx5_esw_bridge_switchdev_port_event(struct notifier_block *nb, unsigned long event, void *ptr) { @@ -171,6 +201,7 @@ switch (event) { case NETDEV_PRECHANGEUPPER: + err = mlx5_esw_bridge_changeupper_validate_netdev(ptr); break; case NETDEV_CHANGEUPPER: --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc/post_act.c @@ -128,6 +128,7 @@ post_attr->inner_match_level = MLX5_MATCH_NONE; post_attr->outer_match_level = MLX5_MATCH_NONE; post_attr->action &= ~MLX5_FLOW_CONTEXT_ACTION_DECAP; + post_attr->flags |= MLX5_ATTR_FLAG_NO_IN_PORT; handle->ns_type = post_act->ns_type; /* Splits were handled before post action */ --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h @@ -95,6 +95,7 @@ struct encap_flow_item encaps[MLX5_MAX_FLOW_FWD_VPORTS]; struct mlx5e_tc_flow *peer_flow; struct mlx5e_mod_hdr_handle *mh; /* attached mod header instance */ + struct mlx5e_mod_hdr_handle *slow_mh; /* attached mod header instance for slow path */ struct mlx5e_hairpin_entry *hpe; /* attached hairpin instance */ struct list_head hairpin; /* flows sharing the same hairpin */ struct list_head peer; /* flows with peer flow */ @@ -110,6 +111,7 @@ struct completion del_hw_done; struct mlx5_flow_attr *attr; struct list_head attrs; + u32 chain_mapping; }; struct mlx5_flow_handle * --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c @@ -506,7 +506,7 @@ int err; attr.ttl = tun_key->ttl; - attr.fl.fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tun_key->tos), tun_key->label); + attr.fl.fl6.flowlabel = ip6_make_flowinfo(tun_key->tos, tun_key->label); attr.fl.fl6.daddr = tun_key->u.ipv6.dst; attr.fl.fl6.saddr = tun_key->u.ipv6.src; @@ -620,7 +620,7 @@ attr.ttl = tun_key->ttl; - attr.fl.fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tun_key->tos), tun_key->label); + attr.fl.fl6.flowlabel = ip6_make_flowinfo(tun_key->tos, tun_key->label); attr.fl.fl6.daddr = tun_key->u.ipv6.dst; attr.fl.fl6.saddr = tun_key->u.ipv6.src; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c @@ -224,15 +224,16 @@ list_for_each_entry(flow, flow_list, tmp_list) { if (!mlx5e_is_offloaded_flow(flow) || flow_flag_test(flow, SLOW)) continue; - spec = &flow->attr->parse_attr->spec; - - /* update from encap rule to slow path rule */ - rule = mlx5e_tc_offload_to_slow_path(esw, flow, spec); attr = mlx5e_tc_get_encap_attr(flow); esw_attr = attr->esw_attr; /* mark the flow's encap dest as non-valid */ esw_attr->dests[flow->tmp_entry_index].flags &= ~MLX5_ESW_DEST_ENCAP_VALID; + esw_attr->dests[flow->tmp_entry_index].pkt_reformat = NULL; + + /* update from encap rule to slow path rule */ + spec = &flow->attr->parse_attr->spec; + rule = mlx5e_tc_offload_to_slow_path(esw, flow, spec); if (IS_ERR(rule)) { err = PTR_ERR(rule); @@ -251,6 +252,7 @@ /* we know that the encap is valid */ e->flags &= ~MLX5_ENCAP_ENTRY_VALID; mlx5_packet_reformat_dealloc(priv->mdev, e->pkt_reformat); + e->pkt_reformat = NULL; } static void mlx5e_take_tmp_flow(struct mlx5e_tc_flow *flow, @@ -762,8 +764,7 @@ struct net_device *mirred_dev, int out_index, struct netlink_ext_ack *extack, - struct net_device **encap_dev, - bool *encap_valid) + struct net_device **encap_dev) { struct mlx5_eswitch *esw = priv->mdev->priv.eswitch; struct mlx5e_tc_flow_parse_attr *parse_attr; @@ -878,9 +879,8 @@ if (e->flags & MLX5_ENCAP_ENTRY_VALID) { attr->esw_attr->dests[out_index].pkt_reformat = e->pkt_reformat; attr->esw_attr->dests[out_index].flags |= MLX5_ESW_DEST_ENCAP_VALID; - *encap_valid = true; } else { - *encap_valid = false; + flow_flag_set(flow, SLOW); } mutex_unlock(&esw->offloads.encap_tbl_lock); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.h @@ -17,8 +17,7 @@ struct net_device *mirred_dev, int out_index, struct netlink_ext_ack *extack, - struct net_device **encap_dev, - bool *encap_valid); + struct net_device **encap_dev); int mlx5e_attach_decap(struct mlx5e_priv *priv, struct mlx5e_tc_flow *flow, --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h @@ -11,6 +11,27 @@ #define INL_HDR_START_SZ (sizeof(((struct mlx5_wqe_eth_seg *)NULL)->inline_hdr.start)) +/* IPSEC inline data includes: + * 1. ESP trailer: up to 255 bytes of padding, 1 byte for pad length, 1 byte for + * next header. + * 2. ESP authentication data: 16 bytes for ICV. + */ +#define MLX5E_MAX_TX_IPSEC_DS DIV_ROUND_UP(sizeof(struct mlx5_wqe_inline_seg) + \ + 255 + 1 + 1 + 16, MLX5_SEND_WQE_DS) + +/* 366 should be big enough to cover all L2, L3 and L4 headers with possible + * encapsulations. + */ +#define MLX5E_MAX_TX_INLINE_DS DIV_ROUND_UP(366 - INL_HDR_START_SZ + VLAN_HLEN, \ + MLX5_SEND_WQE_DS) + +/* Sync the calculation with mlx5e_sq_calc_wqe_attr. */ +#define MLX5E_MAX_TX_WQEBBS DIV_ROUND_UP(MLX5E_TX_WQE_EMPTY_DS_COUNT + \ + MLX5E_MAX_TX_INLINE_DS + \ + MLX5E_MAX_TX_IPSEC_DS + \ + MAX_SKB_FRAGS + 1, \ + MLX5_SEND_WQEBB_NUM_DS) + #define MLX5E_RX_ERR_CQE(cqe) (get_cqe_opcode(cqe) != MLX5_CQE_RESP_SEND) static inline @@ -58,6 +79,12 @@ void mlx5e_free_txqsq_descs(struct mlx5e_txqsq *sq); static inline bool +mlx5e_skb_fifo_has_room(struct mlx5e_skb_fifo *fifo) +{ + return (*fifo->pc - *fifo->cc) < fifo->mask; +} + +static inline bool mlx5e_wqc_has_room_for(struct mlx5_wq_cyc *wq, u16 cc, u16 pc, u16 n) { return (mlx5_wq_cyc_ctr2ix(wq, cc - pc) >= n) || (cc == pc); @@ -418,6 +445,8 @@ static inline u16 mlx5e_stop_room_for_wqe(struct mlx5_core_dev *mdev, u16 wqe_size) { + WARN_ON_ONCE(PAGE_SIZE / MLX5_SEND_WQE_BB < mlx5e_get_max_sq_wqebbs(mdev)); + /* A WQE must not cross the page boundary, hence two conditions: * 1. Its size must not exceed the page size. * 2. If the WQE size is X, and the space remaining in a page is less @@ -430,7 +459,6 @@ "wqe_size %u is greater than max SQ WQEBBs %u", wqe_size, mlx5e_get_max_sq_wqebbs(mdev)); - return MLX5E_STOP_ROOM(wqe_size); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/rx.h @@ -7,6 +7,8 @@ #include "en.h" #include +#define MLX5E_MTT_PTAG_MASK 0xfffffffffffffff8ULL + /* RX data path */ struct sk_buff *mlx5e_xsk_skb_from_cqe_mpwrq_linear(struct mlx5e_rq *rq, @@ -21,6 +23,7 @@ static inline int mlx5e_xsk_page_alloc_pool(struct mlx5e_rq *rq, struct mlx5e_dma_info *dma_info) { +retry: dma_info->xsk = xsk_buff_alloc(rq->xsk_pool); if (!dma_info->xsk) return -ENOMEM; @@ -32,6 +35,17 @@ */ dma_info->addr = xsk_buff_xdp_get_frame_dma(dma_info->xsk); + /* MTT page mapping has alignment requirements. If they are not + * satisfied, leak the descriptor so that it won't come again, and try + * to allocate a new one. + */ + if (rq->wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) { + if (unlikely(dma_info->addr & ~MLX5E_MTT_PTAG_MASK)) { + xsk_buff_discard(dma_info->xsk); + goto retry; + } + } + return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ipsec.c @@ -101,7 +101,6 @@ struct xfrm_replay_state_esn *replay_esn; u32 seq_bottom = 0; u8 overlap; - u32 *esn; if (!(sa_entry->x->props.flags & XFRM_STATE_ESN)) { sa_entry->esn_state.trigger = 0; @@ -116,11 +115,9 @@ sa_entry->esn_state.esn = xfrm_replay_seqhi(sa_entry->x, htonl(seq_bottom)); - esn = &sa_entry->esn_state.esn; sa_entry->esn_state.trigger = 1; if (unlikely(overlap && seq_bottom < MLX5E_IPSEC_ESN_SCOPE_MID)) { - ++(*esn); sa_entry->esn_state.overlap = 0; return true; } else if (unlikely(!overlap && --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_accel/ktls.c @@ -54,7 +54,7 @@ struct mlx5_core_dev *mdev = priv->mdev; int err; - if (WARN_ON(!mlx5e_ktls_type_check(mdev, crypto_info))) + if (!mlx5e_ktls_type_check(mdev, crypto_info)) return -EOPNOTSUPP; if (direction == TLS_OFFLOAD_CTX_DIR_TX) --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -3678,7 +3678,9 @@ struct mlx5e_priv *priv = netdev_priv(netdev); #if IS_ENABLED(CONFIG_MLX5_CLS_ACT) - if (!enable && mlx5e_tc_num_filters(priv, MLX5_TC_FLAG(NIC_OFFLOAD))) { + int tc_flag = mlx5e_is_uplink_rep(priv) ? MLX5_TC_FLAG(ESW_OFFLOAD) : + MLX5_TC_FLAG(NIC_OFFLOAD); + if (!enable && mlx5e_tc_num_filters(priv, tc_flag)) { netdev_err(netdev, "Active offloaded tc filters, can't turn hw_tc_offload off\n"); return -EINVAL; @@ -4733,14 +4735,6 @@ /* RQ */ mlx5e_build_rq_params(mdev, params); - /* HW LRO */ - if (MLX5_CAP_ETH(mdev, lro_cap) && - params->rq_wq_type == MLX5_WQ_TYPE_LINKED_LIST_STRIDING_RQ) { - /* No XSK params: checking the availability of striding RQ in general. */ - if (!mlx5e_rx_mpwqe_is_linear_skb(mdev, params, NULL)) - params->packet_merge.type = slow_pci_heuristic(mdev) ? - MLX5E_PACKET_MERGE_NONE : MLX5E_PACKET_MERGE_LRO; - } params->packet_merge.timeout = mlx5e_choose_lro_timeout(mdev, MLX5E_DEFAULT_LRO_TIMEOUT); /* CQ moderation params */ @@ -5448,6 +5442,13 @@ clear_bit(MLX5E_STATE_DESTROYING, &priv->state); + /* Validate the max_wqe_size_sq capability. */ + if (WARN_ON_ONCE(mlx5e_get_max_sq_wqebbs(priv->mdev) < MLX5E_MAX_TX_WQEBBS)) { + mlx5_core_warn(priv->mdev, "MLX5E: Max SQ WQEBBs firmware capability: %u, needed %lu\n", + mlx5e_get_max_sq_wqebbs(priv->mdev), MLX5E_MAX_TX_WQEBBS); + return -EIO; + } + /* max number of channels may have changed */ max_nch = mlx5e_calc_max_nch(priv->mdev, priv->netdev, profile); if (priv->channels.params.num_channels > max_nch) { --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c @@ -662,6 +662,8 @@ params->mqprio.num_tc = 1; params->tunneled_offload_en = false; + if (rep->vport != MLX5_VPORT_UPLINK) + params->vlan_strip_disable = true; mlx5_query_min_inline(mdev, ¶ms->tx_min_inline_mode); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c @@ -1266,8 +1266,13 @@ struct mlx5e_tc_flow *flow, struct mlx5_flow_spec *spec) { + struct mlx5e_tc_mod_hdr_acts mod_acts = {}; + struct mlx5e_mod_hdr_handle *mh = NULL; struct mlx5_flow_attr *slow_attr; struct mlx5_flow_handle *rule; + bool fwd_and_modify_cap; + u32 chain_mapping = 0; + int err; slow_attr = mlx5_alloc_flow_attr(MLX5_FLOW_NAMESPACE_FDB); if (!slow_attr) @@ -1278,13 +1283,56 @@ slow_attr->esw_attr->split_count = 0; slow_attr->flags |= MLX5_ATTR_FLAG_SLOW_PATH; + fwd_and_modify_cap = MLX5_CAP_ESW_FLOWTABLE((esw)->dev, fdb_modify_header_fwd_to_table); + if (!fwd_and_modify_cap) + goto skip_restore; + + err = mlx5_chains_get_chain_mapping(esw_chains(esw), flow->attr->chain, &chain_mapping); + if (err) + goto err_get_chain; + + err = mlx5e_tc_match_to_reg_set(esw->dev, &mod_acts, MLX5_FLOW_NAMESPACE_FDB, + CHAIN_TO_REG, chain_mapping); + if (err) + goto err_reg_set; + + mh = mlx5e_mod_hdr_attach(esw->dev, get_mod_hdr_table(flow->priv, flow), + MLX5_FLOW_NAMESPACE_FDB, &mod_acts); + if (IS_ERR(mh)) { + err = PTR_ERR(mh); + goto err_attach; + } + + slow_attr->action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; + slow_attr->modify_hdr = mlx5e_mod_hdr_get(mh); + +skip_restore: rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, slow_attr); - if (!IS_ERR(rule)) - flow_flag_set(flow, SLOW); + if (IS_ERR(rule)) { + err = PTR_ERR(rule); + goto err_offload; + } + + flow->slow_mh = mh; + flow->chain_mapping = chain_mapping; + flow_flag_set(flow, SLOW); + mlx5e_mod_hdr_dealloc(&mod_acts); kfree(slow_attr); return rule; + +err_offload: + if (fwd_and_modify_cap) + mlx5e_mod_hdr_detach(esw->dev, get_mod_hdr_table(flow->priv, flow), mh); +err_attach: +err_reg_set: + if (fwd_and_modify_cap) + mlx5_chains_put_chain_mapping(esw_chains(esw), chain_mapping); +err_get_chain: + mlx5e_mod_hdr_dealloc(&mod_acts); + kfree(slow_attr); + return ERR_PTR(err); } void mlx5e_tc_unoffload_from_slow_path(struct mlx5_eswitch *esw, @@ -1302,7 +1350,17 @@ slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST; slow_attr->esw_attr->split_count = 0; slow_attr->flags |= MLX5_ATTR_FLAG_SLOW_PATH; + if (flow->slow_mh) { + slow_attr->action |= MLX5_FLOW_CONTEXT_ACTION_MOD_HDR; + slow_attr->modify_hdr = mlx5e_mod_hdr_get(flow->slow_mh); + } mlx5e_tc_unoffload_fdb_rules(esw, flow, slow_attr); + if (flow->slow_mh) { + mlx5e_mod_hdr_detach(esw->dev, get_mod_hdr_table(flow->priv, flow), flow->slow_mh); + mlx5_chains_put_chain_mapping(esw_chains(esw), flow->chain_mapping); + flow->chain_mapping = 0; + flow->slow_mh = NULL; + } flow_flag_clear(flow, SLOW); kfree(slow_attr); } @@ -1434,7 +1492,6 @@ struct mlx5e_tc_flow *flow, struct mlx5_flow_attr *attr, struct netlink_ext_ack *extack, - bool *encap_valid, bool *vf_tun) { struct mlx5e_tc_flow_parse_attr *parse_attr; @@ -1451,7 +1508,6 @@ parse_attr = attr->parse_attr; esw_attr = attr->esw_attr; *vf_tun = false; - *encap_valid = true; for (out_index = 0; out_index < MLX5_MAX_FLOW_FWD_VPORTS; out_index++) { struct net_device *out_dev; @@ -1468,7 +1524,7 @@ goto out; } err = mlx5e_attach_encap(priv, flow, attr, out_dev, out_index, - extack, &encap_dev, encap_valid); + extack, &encap_dev); dev_put(out_dev); if (err) goto out; @@ -1532,8 +1588,8 @@ struct mlx5e_tc_flow_parse_attr *parse_attr; struct mlx5_flow_attr *attr = flow->attr; struct mlx5_esw_flow_attr *esw_attr; - bool vf_tun, encap_valid; u32 max_prio, max_chain; + bool vf_tun; int err = 0; parse_attr = attr->parse_attr; @@ -1623,7 +1679,7 @@ esw_attr->int_port = int_port; } - err = set_encap_dests(priv, flow, attr, extack, &encap_valid, &vf_tun); + err = set_encap_dests(priv, flow, attr, extack, &vf_tun); if (err) goto err_out; @@ -1653,7 +1709,7 @@ * (1) there's no error * (2) there's an encap action and we don't have valid neigh */ - if (!encap_valid || flow_flag_test(flow, SLOW)) + if (flow_flag_test(flow, SLOW)) flow->rule[0] = mlx5e_tc_offload_to_slow_path(esw, flow, &parse_attr->spec); else flow->rule[0] = mlx5e_tc_offload_fdb_rules(esw, flow, &parse_attr->spec, attr); @@ -3551,7 +3607,7 @@ struct mlx5e_post_act *post_act = get_post_action(flow->priv); struct mlx5_flow_attr *attr, *next_attr = NULL; struct mlx5e_post_act_handle *handle; - bool vf_tun, encap_valid = true; + bool vf_tun; int err; /* This is going in reverse order as needed. @@ -3573,13 +3629,10 @@ if (list_is_last(&attr->list, &flow->attrs)) break; - err = set_encap_dests(flow->priv, flow, attr, extack, &encap_valid, &vf_tun); + err = set_encap_dests(flow->priv, flow, attr, extack, &vf_tun); if (err) goto out_free; - if (!encap_valid) - flow_flag_set(flow, SLOW); - err = actions_prepare_mod_hdr_actions(flow->priv, flow, attr, extack); if (err) goto out_free; @@ -3866,6 +3919,7 @@ struct mlx5e_tc_flow_parse_attr *parse_attr; struct mlx5_flow_attr *attr = flow->attr; struct mlx5_esw_flow_attr *esw_attr; + struct net_device *filter_dev; int err; err = flow_action_supported(flow_action, extack); @@ -3874,6 +3928,7 @@ esw_attr = attr->esw_attr; parse_attr = attr->parse_attr; + filter_dev = parse_attr->filter_dev; parse_state = &parse_attr->parse_state; mlx5e_tc_act_init_parse_state(parse_state, flow, flow_action, extack); parse_state->ct_priv = get_ct_priv(priv); @@ -3883,13 +3938,21 @@ return err; /* Forward to/from internal port can only have 1 dest */ - if ((netif_is_ovs_master(parse_attr->filter_dev) || esw_attr->dest_int_port) && + if ((netif_is_ovs_master(filter_dev) || esw_attr->dest_int_port) && esw_attr->out_count > 1) { NL_SET_ERR_MSG_MOD(extack, "Rules with internal port can have only one destination"); return -EOPNOTSUPP; } + /* Forward from tunnel/internal port to internal port is not supported */ + if ((mlx5e_get_tc_tun(filter_dev) || netif_is_ovs_master(filter_dev)) && + esw_attr->dest_int_port) { + NL_SET_ERR_MSG_MOD(extack, + "Forwarding from tunnel/internal port to internal port is not supported"); + return -EOPNOTSUPP; + } + err = actions_prepare_mod_hdr_actions(priv, flow, attr, extack); if (err) return err; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/en_tx.c @@ -304,6 +304,8 @@ u16 ds_cnt_inl = 0; u16 ds_cnt_ids = 0; + /* Sync the calculation with MLX5E_MAX_TX_WQEBBS. */ + if (attr->insz) ds_cnt_ids = DIV_ROUND_UP(sizeof(struct mlx5_wqe_inline_seg) + attr->insz, MLX5_SEND_WQE_DS); @@ -316,6 +318,9 @@ inl += VLAN_HLEN; ds_cnt_inl = DIV_ROUND_UP(inl, MLX5_SEND_WQE_DS); + if (WARN_ON_ONCE(ds_cnt_inl > MLX5E_MAX_TX_INLINE_DS)) + netdev_warn(skb->dev, "ds_cnt_inl = %u > max %u\n", ds_cnt_inl, + (u16)MLX5E_MAX_TX_INLINE_DS); ds_cnt += ds_cnt_inl; } @@ -391,6 +396,11 @@ if (unlikely(sq->ptpsq)) { mlx5e_skb_cb_hwtstamp_init(skb); mlx5e_skb_fifo_push(&sq->ptpsq->skb_fifo, skb); + if (!netif_tx_queue_stopped(sq->txq) && + !mlx5e_skb_fifo_has_room(&sq->ptpsq->skb_fifo)) { + netif_tx_stop_queue(sq->txq); + sq->stats->stopped++; + } skb_get(skb); } @@ -857,6 +867,7 @@ if (netif_tx_queue_stopped(sq->txq) && mlx5e_wqc_has_room_for(&sq->wq, sq->cc, sq->pc, sq->stop_room) && + mlx5e_ptpsq_fifo_has_room(sq) && !test_bit(MLX5E_SQ_STATE_RECOVERING, &sq->state)) { netif_tx_wake_queue(sq->txq); stats->wake++; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c @@ -230,10 +230,8 @@ } static void -esw_setup_slow_path_dest(struct mlx5_flow_destination *dest, - struct mlx5_flow_act *flow_act, - struct mlx5_fs_chains *chains, - int i) +esw_setup_accept_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, + struct mlx5_fs_chains *chains, int i) { if (mlx5_chains_ignore_flow_level_supported(chains)) flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; @@ -241,6 +239,16 @@ dest[i].ft = mlx5_chains_get_tc_end_ft(chains); } +static void +esw_setup_slow_path_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, + struct mlx5_eswitch *esw, int i) +{ + if (MLX5_CAP_ESW_FLOWTABLE_FDB(esw->dev, ignore_flow_level)) + flow_act->flags |= FLOW_ACT_IGNORE_FLOW_LEVEL; + dest[i].type = MLX5_FLOW_DESTINATION_TYPE_FLOW_TABLE; + dest[i].ft = esw->fdb_table.offloads.slow_fdb; +} + static int esw_setup_chain_dest(struct mlx5_flow_destination *dest, struct mlx5_flow_act *flow_act, @@ -419,10 +427,11 @@ dest[dest_idx].vport.vhca_id = MLX5_CAP_GEN(esw_attr->dests[attr_idx].mdev, vhca_id); dest[dest_idx].vport.flags |= MLX5_FLOW_DEST_VPORT_VHCA_ID; - if (mlx5_lag_mpesw_is_activated(esw->dev)) + if (dest[dest_idx].vport.num == MLX5_VPORT_UPLINK && + mlx5_lag_mpesw_is_activated(esw->dev)) dest[dest_idx].type = MLX5_FLOW_DESTINATION_TYPE_UPLINK; } - if (esw_attr->dests[attr_idx].flags & MLX5_ESW_DEST_ENCAP) { + if (esw_attr->dests[attr_idx].flags & MLX5_ESW_DEST_ENCAP_VALID) { if (pkt_reformat) { flow_act->action |= MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT; flow_act->pkt_reformat = esw_attr->dests[attr_idx].pkt_reformat; @@ -475,8 +484,11 @@ } else if (attr->dest_ft) { esw_setup_ft_dest(dest, flow_act, esw, attr, spec, *i); (*i)++; - } else if (mlx5e_tc_attr_flags_skip(attr->flags)) { - esw_setup_slow_path_dest(dest, flow_act, chains, *i); + } else if (attr->flags & MLX5_ATTR_FLAG_SLOW_PATH) { + esw_setup_slow_path_dest(dest, flow_act, esw, *i); + (*i)++; + } else if (attr->flags & MLX5_ATTR_FLAG_ACCEPT) { + esw_setup_accept_dest(dest, flow_act, chains, *i); (*i)++; } else if (attr->dest_chain) { err = esw_setup_chain_dest(dest, flow_act, chains, attr->dest_chain, --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads_termtbl.c @@ -30,9 +30,9 @@ sizeof(dest->vport.num), hash); hash = jhash((const void *)&dest->vport.vhca_id, sizeof(dest->vport.num), hash); - if (dest->vport.pkt_reformat) - hash = jhash(dest->vport.pkt_reformat, - sizeof(*dest->vport.pkt_reformat), + if (flow_act->pkt_reformat) + hash = jhash(flow_act->pkt_reformat, + sizeof(*flow_act->pkt_reformat), hash); return hash; } @@ -53,9 +53,11 @@ if (ret) return ret; - return dest1->vport.pkt_reformat && dest2->vport.pkt_reformat ? - memcmp(dest1->vport.pkt_reformat, dest2->vport.pkt_reformat, - sizeof(*dest1->vport.pkt_reformat)) : 0; + if (flow_act1->pkt_reformat && flow_act2->pkt_reformat) + return memcmp(flow_act1->pkt_reformat, flow_act2->pkt_reformat, + sizeof(*flow_act1->pkt_reformat)); + + return !(flow_act1->pkt_reformat == flow_act2->pkt_reformat); } static int @@ -310,6 +312,8 @@ for (curr_dest = 0; curr_dest < num_vport_dests; curr_dest++) { struct mlx5_termtbl_handle *tt = attr->dests[curr_dest].termtbl; + attr->dests[curr_dest].termtbl = NULL; + /* search for the destination associated with the * current term table */ --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/fw.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/fw.c @@ -289,6 +289,10 @@ sw_owner_id[i]); } + if (MLX5_CAP_GEN_2_MAX(dev, sw_vhca_id_valid) && + dev->priv.sw_vhca_id > 0) + MLX5_SET(init_hca_in, in, sw_vhca_id, dev->priv.sw_vhca_id); + return mlx5_cmd_exec_in(dev, init_hca, in); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c @@ -361,6 +361,23 @@ err = -ETIMEDOUT; } + do { + err = pci_read_config_word(dev->pdev, PCI_DEVICE_ID, ®16); + if (err) + return err; + if (reg16 == dev_id) + break; + msleep(20); + } while (!time_after(jiffies, timeout)); + + if (reg16 == dev_id) { + mlx5_core_info(dev, "Firmware responds to PCI config cycles again\n"); + } else { + mlx5_core_err(dev, "Firmware is not responsive (0x%04x) after %llu ms\n", + reg16, mlx5_tout_ms(dev, PCI_TOGGLE)); + err = -ETIMEDOUT; + } + restore: list_for_each_entry(sdev, &bridge_bus->devices, bus_list) { pci_cfg_access_unlock(sdev); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c @@ -201,9 +201,8 @@ if (ldev->nb.notifier_call) unregister_netdevice_notifier_net(&init_net, &ldev->nb); mlx5_lag_mp_cleanup(ldev); - mlx5_lag_mpesw_cleanup(ldev); - cancel_work_sync(&ldev->mpesw_work); destroy_workqueue(ldev->wq); + mlx5_lag_mpesw_cleanup(ldev); mutex_destroy(&ldev->lock); kfree(ldev); } @@ -1067,30 +1066,32 @@ struct net_device *netdev) { unsigned int fn = mlx5_get_dev_index(dev); + unsigned long flags; if (fn >= ldev->ports) return; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev->pf[fn].netdev = netdev; ldev->tracker.netdev_state[fn].link_up = 0; ldev->tracker.netdev_state[fn].tx_enabled = 0; - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); } static void mlx5_ldev_remove_netdev(struct mlx5_lag *ldev, struct net_device *netdev) { + unsigned long flags; int i; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); for (i = 0; i < ldev->ports; i++) { if (ldev->pf[i].netdev == netdev) { ldev->pf[i].netdev = NULL; break; } } - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); } static void mlx5_ldev_add_mdev(struct mlx5_lag *ldev, @@ -1234,7 +1235,7 @@ mlx5_ldev_add_netdev(ldev, dev, netdev); for (i = 0; i < ldev->ports; i++) - if (!ldev->pf[i].dev) + if (!ldev->pf[i].netdev) break; if (i >= ldev->ports) @@ -1246,12 +1247,13 @@ bool mlx5_lag_is_roce(struct mlx5_core_dev *dev) { struct mlx5_lag *ldev; + unsigned long flags; bool res; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); res = ldev && __mlx5_lag_is_roce(ldev); - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return res; } @@ -1260,12 +1262,13 @@ bool mlx5_lag_is_active(struct mlx5_core_dev *dev) { struct mlx5_lag *ldev; + unsigned long flags; bool res; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); res = ldev && __mlx5_lag_is_active(ldev); - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return res; } @@ -1274,13 +1277,14 @@ bool mlx5_lag_is_master(struct mlx5_core_dev *dev) { struct mlx5_lag *ldev; + unsigned long flags; bool res; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); res = ldev && __mlx5_lag_is_active(ldev) && dev == ldev->pf[MLX5_LAG_P1].dev; - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return res; } @@ -1289,12 +1293,13 @@ bool mlx5_lag_is_sriov(struct mlx5_core_dev *dev) { struct mlx5_lag *ldev; + unsigned long flags; bool res; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); res = ldev && __mlx5_lag_is_sriov(ldev); - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return res; } @@ -1303,13 +1308,14 @@ bool mlx5_lag_is_shared_fdb(struct mlx5_core_dev *dev) { struct mlx5_lag *ldev; + unsigned long flags; bool res; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); res = ldev && __mlx5_lag_is_sriov(ldev) && test_bit(MLX5_LAG_MODE_FLAG_SHARED_FDB, &ldev->mode_flags); - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return res; } @@ -1352,9 +1358,10 @@ { struct net_device *ndev = NULL; struct mlx5_lag *ldev; + unsigned long flags; int i; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); if (!(ldev && __mlx5_lag_is_roce(ldev))) @@ -1373,7 +1380,7 @@ dev_hold(ndev); unlock: - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return ndev; } @@ -1383,10 +1390,11 @@ struct net_device *slave) { struct mlx5_lag *ldev; + unsigned long flags; u8 port = 0; int i; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); if (!(ldev && __mlx5_lag_is_roce(ldev))) goto unlock; @@ -1401,7 +1409,7 @@ port = ldev->v2p_map[port * ldev->buckets]; unlock: - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return port; } EXPORT_SYMBOL(mlx5_lag_get_slave_port); @@ -1422,8 +1430,9 @@ { struct mlx5_core_dev *peer_dev = NULL; struct mlx5_lag *ldev; + unsigned long flags; - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); if (!ldev) goto unlock; @@ -1433,7 +1442,7 @@ ldev->pf[MLX5_LAG_P1].dev; unlock: - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); return peer_dev; } EXPORT_SYMBOL(mlx5_lag_get_peer_mdev); @@ -1446,6 +1455,7 @@ int outlen = MLX5_ST_SZ_BYTES(query_cong_statistics_out); struct mlx5_core_dev **mdev; struct mlx5_lag *ldev; + unsigned long flags; int num_ports; int ret, i, j; void *out; @@ -1462,7 +1472,7 @@ memset(values, 0, sizeof(*values) * num_counters); - spin_lock(&lag_lock); + spin_lock_irqsave(&lag_lock, flags); ldev = mlx5_lag_dev(dev); if (ldev && __mlx5_lag_is_active(ldev)) { num_ports = ldev->ports; @@ -1472,7 +1482,7 @@ num_ports = 1; mdev[MLX5_LAG_P1] = dev; } - spin_unlock(&lag_lock); + spin_unlock_irqrestore(&lag_lock, flags); for (i = 0; i < num_ports; ++i) { u32 in[MLX5_ST_SZ_DW(query_cong_statistics_in)] = {}; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h @@ -50,6 +50,19 @@ enum netdev_lag_hash hash_type; }; +enum mpesw_op { + MLX5_MPESW_OP_ENABLE, + MLX5_MPESW_OP_DISABLE, +}; + +struct mlx5_mpesw_work_st { + struct work_struct work; + struct mlx5_lag *lag; + enum mpesw_op op; + struct completion comp; + int result; +}; + /* LAG data of a ConnectX card. * It serves both its phys functions. */ @@ -66,7 +79,6 @@ struct lag_tracker tracker; struct workqueue_struct *wq; struct delayed_work bond_work; - struct work_struct mpesw_work; struct notifier_block nb; struct lag_mp lag_mp; struct mlx5_lag_port_sel port_sel; --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.c @@ -7,63 +7,95 @@ #include "eswitch.h" #include "lib/mlx5.h" -void mlx5_mpesw_work(struct work_struct *work) +static int add_mpesw_rule(struct mlx5_lag *ldev) { - struct mlx5_lag *ldev = container_of(work, struct mlx5_lag, mpesw_work); + struct mlx5_core_dev *dev = ldev->pf[MLX5_LAG_P1].dev; + int err; - mutex_lock(&ldev->lock); - mlx5_disable_lag(ldev); - mutex_unlock(&ldev->lock); -} + if (atomic_add_return(1, &ldev->lag_mpesw.mpesw_rule_count) != 1) + return 0; -static void mlx5_lag_disable_mpesw(struct mlx5_core_dev *dev) -{ - struct mlx5_lag *ldev = dev->priv.lag; + if (ldev->mode != MLX5_LAG_MODE_NONE) { + err = -EINVAL; + goto out_err; + } - if (!queue_work(ldev->wq, &ldev->mpesw_work)) - mlx5_core_warn(dev, "failed to queue work\n"); + err = mlx5_activate_lag(ldev, NULL, MLX5_LAG_MODE_MPESW, false); + if (err) { + mlx5_core_warn(dev, "Failed to create LAG in MPESW mode (%d)\n", err); + goto out_err; + } + + return 0; + +out_err: + atomic_dec(&ldev->lag_mpesw.mpesw_rule_count); + return err; } -void mlx5_lag_del_mpesw_rule(struct mlx5_core_dev *dev) +static void del_mpesw_rule(struct mlx5_lag *ldev) { - struct mlx5_lag *ldev = dev->priv.lag; + if (!atomic_dec_return(&ldev->lag_mpesw.mpesw_rule_count) && + ldev->mode == MLX5_LAG_MODE_MPESW) + mlx5_disable_lag(ldev); +} - if (!ldev) - return; +static void mlx5_mpesw_work(struct work_struct *work) +{ + struct mlx5_mpesw_work_st *mpesww = container_of(work, struct mlx5_mpesw_work_st, work); + struct mlx5_lag *ldev = mpesww->lag; mutex_lock(&ldev->lock); - if (!atomic_dec_return(&ldev->lag_mpesw.mpesw_rule_count) && - ldev->mode == MLX5_LAG_MODE_MPESW) - mlx5_lag_disable_mpesw(dev); + if (mpesww->op == MLX5_MPESW_OP_ENABLE) + mpesww->result = add_mpesw_rule(ldev); + else if (mpesww->op == MLX5_MPESW_OP_DISABLE) + del_mpesw_rule(ldev); mutex_unlock(&ldev->lock); + + complete(&mpesww->comp); } -int mlx5_lag_add_mpesw_rule(struct mlx5_core_dev *dev) +static int mlx5_lag_mpesw_queue_work(struct mlx5_core_dev *dev, + enum mpesw_op op) { struct mlx5_lag *ldev = dev->priv.lag; + struct mlx5_mpesw_work_st *work; int err = 0; if (!ldev) return 0; - mutex_lock(&ldev->lock); - if (atomic_add_return(1, &ldev->lag_mpesw.mpesw_rule_count) != 1) - goto out; + work = kzalloc(sizeof(*work), GFP_KERNEL); + if (!work) + return -ENOMEM; + + INIT_WORK(&work->work, mlx5_mpesw_work); + init_completion(&work->comp); + work->op = op; + work->lag = ldev; - if (ldev->mode != MLX5_LAG_MODE_NONE) { + if (!queue_work(ldev->wq, &work->work)) { + mlx5_core_warn(dev, "failed to queue mpesw work\n"); err = -EINVAL; goto out; } - - err = mlx5_activate_lag(ldev, NULL, MLX5_LAG_MODE_MPESW, false); - if (err) - mlx5_core_warn(dev, "Failed to create LAG in MPESW mode (%d)\n", err); - + wait_for_completion(&work->comp); + err = work->result; out: - mutex_unlock(&ldev->lock); + kfree(work); return err; } +void mlx5_lag_del_mpesw_rule(struct mlx5_core_dev *dev) +{ + mlx5_lag_mpesw_queue_work(dev, MLX5_MPESW_OP_DISABLE); +} + +int mlx5_lag_add_mpesw_rule(struct mlx5_core_dev *dev) +{ + return mlx5_lag_mpesw_queue_work(dev, MLX5_MPESW_OP_ENABLE); +} + int mlx5_lag_do_mirred(struct mlx5_core_dev *mdev, struct net_device *out_dev) { struct mlx5_lag *ldev = mdev->priv.lag; @@ -71,12 +103,9 @@ if (!netif_is_bond_master(out_dev) || !ldev) return 0; - mutex_lock(&ldev->lock); - if (ldev->mode == MLX5_LAG_MODE_MPESW) { - mutex_unlock(&ldev->lock); + if (ldev->mode == MLX5_LAG_MODE_MPESW) return -EOPNOTSUPP; - } - mutex_unlock(&ldev->lock); + return 0; } @@ -90,11 +119,10 @@ void mlx5_lag_mpesw_init(struct mlx5_lag *ldev) { - INIT_WORK(&ldev->mpesw_work, mlx5_mpesw_work); atomic_set(&ldev->lag_mpesw.mpesw_rule_count, 0); } void mlx5_lag_mpesw_cleanup(struct mlx5_lag *ldev) { - cancel_delayed_work_sync(&ldev->bond_work); + WARN_ON(atomic_read(&ldev->lag_mpesw.mpesw_rule_count)); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lag/mpesw.h @@ -12,7 +12,6 @@ atomic_t mpesw_rule_count; }; -void mlx5_mpesw_work(struct work_struct *work); int mlx5_lag_do_mirred(struct mlx5_core_dev *mdev, struct net_device *out_dev); bool mlx5_lag_mpesw_is_activated(struct mlx5_core_dev *dev); #if IS_ENABLED(CONFIG_MLX5_ESWITCH) --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lib/mpfs.c @@ -122,7 +122,7 @@ { struct mlx5_mpfs *mpfs = dev->priv.mpfs; - if (!MLX5_ESWITCH_MANAGER(dev)) + if (!mpfs) return; WARN_ON(!hlist_empty(mpfs->hash)); @@ -137,7 +137,7 @@ int err = 0; u32 index; - if (!MLX5_ESWITCH_MANAGER(dev)) + if (!mpfs) return 0; mutex_lock(&mpfs->lock); @@ -185,7 +185,7 @@ int err = 0; u32 index; - if (!MLX5_ESWITCH_MANAGER(dev)) + if (!mpfs) return 0; mutex_lock(&mpfs->lock); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.c @@ -32,20 +32,17 @@ dev->timeouts->to[type] = val; } -void mlx5_tout_set_def_val(struct mlx5_core_dev *dev) +int mlx5_tout_init(struct mlx5_core_dev *dev) { int i; - for (i = 0; i < MAX_TIMEOUT_TYPES; i++) - tout_set(dev, tout_def_sw_val[i], i); -} - -int mlx5_tout_init(struct mlx5_core_dev *dev) -{ dev->timeouts = kmalloc(sizeof(*dev->timeouts), GFP_KERNEL); if (!dev->timeouts) return -ENOMEM; + for (i = 0; i < MAX_TIMEOUT_TYPES; i++) + tout_set(dev, tout_def_sw_val[i], i); + return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/lib/tout.h @@ -35,7 +35,6 @@ void mlx5_tout_cleanup(struct mlx5_core_dev *dev); void mlx5_tout_query_iseg(struct mlx5_core_dev *dev); int mlx5_tout_query_dtor(struct mlx5_core_dev *dev); -void mlx5_tout_set_def_val(struct mlx5_core_dev *dev); u64 _mlx5_tout_ms(struct mlx5_core_dev *dev, enum mlx5_timeouts_types type); #define mlx5_tout_ms(dev, type) _mlx5_tout_ms(dev, MLX5_TO_##type##_MS) --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -90,6 +90,8 @@ MODULE_PARM_DESC(prof_sel, "profile selector. Valid range 0 - 2"); static u32 sw_owner_id[4]; +#define MAX_SW_VHCA_ID (BIT(__mlx5_bit_sz(cmd_hca_cap_2, sw_vhca_id)) - 1) +static DEFINE_IDA(sw_vhca_ida); enum { MLX5_ATOMIC_REQ_MODE_BE = 0x0, @@ -499,6 +501,49 @@ return err; } +bool mlx5_is_roce_on(struct mlx5_core_dev *dev) +{ + struct devlink *devlink = priv_to_devlink(dev); + union devlink_param_value val; + int err; + + err = devlink_param_driverinit_value_get(devlink, + DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE, + &val); + + if (!err) + return val.vbool; + + mlx5_core_dbg(dev, "Failed to get param. err = %d\n", err); + return MLX5_CAP_GEN(dev, roce); +} +EXPORT_SYMBOL(mlx5_is_roce_on); + +static int handle_hca_cap_2(struct mlx5_core_dev *dev, void *set_ctx) +{ + void *set_hca_cap; + int err; + + if (!MLX5_CAP_GEN_MAX(dev, hca_cap_2)) + return 0; + + err = mlx5_core_get_caps(dev, MLX5_CAP_GENERAL_2); + if (err) + return err; + + if (!MLX5_CAP_GEN_2_MAX(dev, sw_vhca_id_valid) || + !(dev->priv.sw_vhca_id > 0)) + return 0; + + set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, + capability); + memcpy(set_hca_cap, dev->caps.hca[MLX5_CAP_GENERAL_2]->cur, + MLX5_ST_SZ_BYTES(cmd_hca_cap_2)); + MLX5_SET(cmd_hca_cap_2, set_hca_cap, sw_vhca_id_valid, 1); + + return set_caps(dev, set_ctx, MLX5_CAP_GENERAL_2); +} + static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx) { struct mlx5_profile *prof = &dev->profile; @@ -524,7 +569,7 @@ /* Check log_max_qp from HCA caps to set in current profile */ if (prof->log_max_qp == LOG_MAX_SUPPORTED_QPS) { - prof->log_max_qp = min_t(u8, 17, MLX5_CAP_GEN_MAX(dev, log_max_qp)); + prof->log_max_qp = min_t(u8, 18, MLX5_CAP_GEN_MAX(dev, log_max_qp)); } else if (MLX5_CAP_GEN_MAX(dev, log_max_qp) < prof->log_max_qp) { mlx5_core_warn(dev, "log_max_qp value in current profile is %d, changing it to HCA capability limit (%d)\n", prof->log_max_qp, @@ -577,7 +622,8 @@ MLX5_CAP_GEN_MAX(dev, num_total_dynamic_vf_msix)); if (MLX5_CAP_GEN(dev, roce_rw_supported)) - MLX5_SET(cmd_hca_cap, set_hca_cap, roce, mlx5_is_roce_init_enabled(dev)); + MLX5_SET(cmd_hca_cap, set_hca_cap, roce, + mlx5_is_roce_on(dev)); max_uc_list = max_uc_list_get_devlink_param(dev); if (max_uc_list > 0) @@ -603,7 +649,7 @@ */ static bool is_roce_fw_disabled(struct mlx5_core_dev *dev) { - return (MLX5_CAP_GEN(dev, roce_rw_supported) && !mlx5_is_roce_init_enabled(dev)) || + return (MLX5_CAP_GEN(dev, roce_rw_supported) && !mlx5_is_roce_on(dev)) || (!MLX5_CAP_GEN(dev, roce_rw_supported) && !MLX5_CAP_GEN(dev, roce)); } @@ -669,6 +715,13 @@ goto out; } + memset(set_ctx, 0, set_sz); + err = handle_hca_cap_2(dev, set_ctx); + if (err) { + mlx5_core_err(dev, "handle_hca_cap_2 failed\n"); + goto out; + } + out: kfree(set_ctx); return err; @@ -1023,8 +1076,6 @@ if (mlx5_core_is_pf(dev)) pcie_print_link_status(dev->pdev); - mlx5_tout_set_def_val(dev); - /* wait for firmware to accept initialization segments configurations */ err = wait_fw_init(dev, timeout, @@ -1474,7 +1525,9 @@ memcpy(&dev->profile, &profile[profile_idx], sizeof(dev->profile)); INIT_LIST_HEAD(&priv->ctx_list); spin_lock_init(&priv->ctx_lock); + lockdep_register_key(&dev->lock_key); mutex_init(&dev->intf_state_mutex); + lockdep_set_class(&dev->intf_state_mutex, &dev->lock_key); mutex_init(&priv->bfregs.reg_head.lock); mutex_init(&priv->bfregs.wc_head.lock); @@ -1512,6 +1565,18 @@ if (err) goto err_hca_caps; + /* The conjunction of sw_vhca_id with sw_owner_id will be a global + * unique id per function which uses mlx5_core. + * Those values are supplied to FW as part of the init HCA command to + * be used by both driver and FW when it's applicable. + */ + dev->priv.sw_vhca_id = ida_alloc_range(&sw_vhca_ida, 1, + MAX_SW_VHCA_ID, + GFP_KERNEL); + if (dev->priv.sw_vhca_id < 0) + mlx5_core_err(dev, "failed to allocate sw_vhca_id, err=%d\n", + dev->priv.sw_vhca_id); + return 0; err_hca_caps: @@ -1529,6 +1594,7 @@ mutex_destroy(&priv->bfregs.wc_head.lock); mutex_destroy(&priv->bfregs.reg_head.lock); mutex_destroy(&dev->intf_state_mutex); + lockdep_unregister_key(&dev->lock_key); return err; } @@ -1536,6 +1602,9 @@ { struct mlx5_priv *priv = &dev->priv; + if (priv->sw_vhca_id > 0) + ida_free(&sw_vhca_ida, dev->priv.sw_vhca_id); + mlx5_hca_caps_free(dev); mlx5_adev_cleanup(dev); mlx5_pagealloc_cleanup(dev); @@ -1547,6 +1616,7 @@ mutex_destroy(&priv->bfregs.wc_head.lock); mutex_destroy(&priv->bfregs.reg_head.lock); mutex_destroy(&dev->intf_state_mutex); + lockdep_unregister_key(&dev->lock_key); } static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id) @@ -1665,7 +1735,8 @@ res = state == pci_channel_io_perm_failure ? PCI_ERS_RESULT_DISCONNECT : PCI_ERS_RESULT_NEED_RESET; - mlx5_pci_trace(dev, "Exit, result = %d, %s\n", res, result2str(res)); + mlx5_core_info(dev, "%s Device state = %d pci_status: %d. Exit, result = %d, %s\n", + __func__, dev->state, dev->pci_status, res, result2str(res)); return res; } @@ -1704,7 +1775,8 @@ struct mlx5_core_dev *dev = pci_get_drvdata(pdev); int err; - mlx5_pci_trace(dev, "Enter\n"); + mlx5_core_info(dev, "%s Device state = %d pci_status: %d. Enter\n", + __func__, dev->state, dev->pci_status); err = mlx5_pci_enable_device(dev); if (err) { @@ -1726,7 +1798,8 @@ res = PCI_ERS_RESULT_RECOVERED; out: - mlx5_pci_trace(dev, "Exit, err = %d, result = %d, %s\n", err, res, result2str(res)); + mlx5_core_info(dev, "%s Device state = %d pci_status: %d. Exit, err = %d, result = %d, %s\n", + __func__, dev->state, dev->pci_status, err, res, result2str(res)); return res; } @@ -1739,6 +1812,10 @@ err = mlx5_load_one(dev, false); + if (!err) + devlink_health_reporter_state_update(dev->priv.health.fw_fatal_reporter, + DEVLINK_HEALTH_REPORTER_STATE_HEALTHY); + mlx5_pci_trace(dev, "Done, err = %d, device %s\n", err, !err ? "recovered" : "Failed"); } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/pagealloc.c @@ -376,8 +376,8 @@ goto out_dropped; } } + err = mlx5_cmd_check(dev, err, in, out); if (err) { - err = mlx5_cmd_check(dev, err, in, out); mlx5_core_warn(dev, "func_id 0x%x, npages %d, err %d\n", func_id, npages, err); goto out_dropped; @@ -524,10 +524,13 @@ dev->priv.reclaim_pages_discard += npages; } /* if triggered by FW event and failed by FW then ignore */ - if (event && err == -EREMOTEIO) + if (event && err == -EREMOTEIO) { err = 0; + goto out_free; + } + + err = mlx5_cmd_check(dev, err, in, out); if (err) { - err = mlx5_cmd_check(dev, err, in, out); mlx5_core_err(dev, "failed reclaiming pages: err %d\n", err); goto out_free; } --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/sf/dev/dev.c @@ -18,6 +18,10 @@ phys_addr_t base_address; u64 sf_bar_length; struct notifier_block nb; + struct mutex table_lock; /* Serializes sf life cycle and vhca state change handler */ + struct workqueue_struct *active_wq; + struct work_struct work; + u8 stop_active_wq:1; struct mlx5_core_dev *dev; }; @@ -168,6 +172,7 @@ return 0; sf_index = event->function_id - base_id; + mutex_lock(&table->table_lock); sf_dev = xa_load(&table->devices, sf_index); switch (event->new_vhca_state) { case MLX5_VHCA_STATE_INVALID: @@ -191,6 +196,7 @@ default: break; } + mutex_unlock(&table->table_lock); return 0; } @@ -215,6 +221,78 @@ return 0; } +static void mlx5_sf_dev_add_active_work(struct work_struct *work) +{ + struct mlx5_sf_dev_table *table = container_of(work, struct mlx5_sf_dev_table, work); + u32 out[MLX5_ST_SZ_DW(query_vhca_state_out)] = {}; + struct mlx5_core_dev *dev = table->dev; + u16 max_functions; + u16 function_id; + u16 sw_func_id; + int err = 0; + u8 state; + int i; + + max_functions = mlx5_sf_max_functions(dev); + function_id = MLX5_CAP_GEN(dev, sf_base_id); + for (i = 0; i < max_functions; i++, function_id++) { + if (table->stop_active_wq) + return; + err = mlx5_cmd_query_vhca_state(dev, function_id, out, sizeof(out)); + if (err) + /* A failure of specific vhca doesn't mean others will + * fail as well. + */ + continue; + state = MLX5_GET(query_vhca_state_out, out, vhca_state_context.vhca_state); + if (state != MLX5_VHCA_STATE_ACTIVE) + continue; + + sw_func_id = MLX5_GET(query_vhca_state_out, out, vhca_state_context.sw_function_id); + mutex_lock(&table->table_lock); + /* Don't probe device which is already probe */ + if (!xa_load(&table->devices, i)) + mlx5_sf_dev_add(dev, i, function_id, sw_func_id); + /* There is a race where SF got inactive after the query + * above. e.g.: the query returns that the state of the + * SF is active, and after that the eswitch manager set it to + * inactive. + * This case cannot be managed in SW, since the probing of the + * SF is on one system, and the inactivation is on a different + * system. + * If the inactive is done after the SF perform init_hca(), + * the SF will fully probe and then removed. If it was + * done before init_hca(), the SF probe will fail. + */ + mutex_unlock(&table->table_lock); + } +} + +/* In case SFs are generated externally, probe active SFs */ +static int mlx5_sf_dev_queue_active_work(struct mlx5_sf_dev_table *table) +{ + if (MLX5_CAP_GEN(table->dev, eswitch_manager)) + return 0; /* the table is local */ + + /* Use a workqueue to probe active SFs, which are in large + * quantity and may take up to minutes to probe. + */ + table->active_wq = create_singlethread_workqueue("mlx5_active_sf"); + if (!table->active_wq) + return -ENOMEM; + INIT_WORK(&table->work, &mlx5_sf_dev_add_active_work); + queue_work(table->active_wq, &table->work); + return 0; +} + +static void mlx5_sf_dev_destroy_active_work(struct mlx5_sf_dev_table *table) +{ + if (table->active_wq) { + table->stop_active_wq = true; + destroy_workqueue(table->active_wq); + } +} + void mlx5_sf_dev_table_create(struct mlx5_core_dev *dev) { struct mlx5_sf_dev_table *table; @@ -240,11 +318,17 @@ table->base_address = pci_resource_start(dev->pdev, 2); table->max_sfs = max_sfs; xa_init(&table->devices); + mutex_init(&table->table_lock); dev->priv.sf_dev_table = table; err = mlx5_vhca_event_notifier_register(dev, &table->nb); if (err) goto vhca_err; + + err = mlx5_sf_dev_queue_active_work(table); + if (err) + goto add_active_err; + err = mlx5_sf_dev_vhca_arm_all(table); if (err) goto arm_err; @@ -252,6 +336,8 @@ return; arm_err: + mlx5_sf_dev_destroy_active_work(table); +add_active_err: mlx5_vhca_event_notifier_unregister(dev, &table->nb); vhca_err: table->max_sfs = 0; @@ -279,7 +365,9 @@ if (!table) return; + mlx5_sf_dev_destroy_active_work(table); mlx5_vhca_event_notifier_unregister(dev, &table->nb); + mutex_destroy(&table->table_lock); /* Now that event handler is not running, it is safe to destroy * the sf device without race. --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_dbg.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_dbg.c @@ -21,10 +21,11 @@ DR_DUMP_REC_TYPE_TABLE_TX = 3102, DR_DUMP_REC_TYPE_MATCHER = 3200, - DR_DUMP_REC_TYPE_MATCHER_MASK = 3201, + DR_DUMP_REC_TYPE_MATCHER_MASK_DEPRECATED = 3201, DR_DUMP_REC_TYPE_MATCHER_RX = 3202, DR_DUMP_REC_TYPE_MATCHER_TX = 3203, DR_DUMP_REC_TYPE_MATCHER_BUILDER = 3204, + DR_DUMP_REC_TYPE_MATCHER_MASK = 3205, DR_DUMP_REC_TYPE_RULE = 3300, DR_DUMP_REC_TYPE_RULE_RX_ENTRY_V0 = 3301, @@ -114,13 +115,15 @@ break; case DR_ACTION_TYP_FT: if (action->dest_tbl->is_fw_tbl) - seq_printf(file, "%d,0x%llx,0x%llx,0x%x\n", + seq_printf(file, "%d,0x%llx,0x%llx,0x%x,0x%x\n", DR_DUMP_REC_TYPE_ACTION_FT, action_id, - rule_id, action->dest_tbl->fw_tbl.id); + rule_id, action->dest_tbl->fw_tbl.id, + -1); else - seq_printf(file, "%d,0x%llx,0x%llx,0x%x\n", + seq_printf(file, "%d,0x%llx,0x%llx,0x%x,0x%llx\n", DR_DUMP_REC_TYPE_ACTION_FT, action_id, - rule_id, action->dest_tbl->tbl->table_id); + rule_id, action->dest_tbl->tbl->table_id, + DR_DBG_PTR_TO_ID(action->dest_tbl->tbl)); break; case DR_ACTION_TYP_CTR: --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c @@ -1200,7 +1200,8 @@ } remove_from_nic_tbl: - mlx5dr_matcher_remove_from_tbl_nic(dmn, nic_matcher); + if (!nic_matcher->rules) + mlx5dr_matcher_remove_from_tbl_nic(dmn, nic_matcher); free_hw_ste: mlx5dr_domain_nic_unlock(nic_dmn); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_table.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/steering/dr_table.c @@ -46,7 +46,7 @@ int mlx5dr_table_set_miss_action(struct mlx5dr_table *tbl, struct mlx5dr_action *action) { - int ret; + int ret = -EOPNOTSUPP; if (action && action->action_type != DR_ACTION_TYP_FT) return -EOPNOTSUPP; @@ -67,6 +67,9 @@ goto out; } + if (ret) + goto out; + /* Release old action */ if (tbl->miss_action) refcount_dec(&tbl->miss_action->refcount); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlx5/core/vport.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlx5/core/vport.c @@ -1086,9 +1086,17 @@ goto free; MLX5_SET(modify_nic_vport_context_in, in, field_select.affiliation, 1); - MLX5_SET(modify_nic_vport_context_in, in, - nic_vport_context.affiliated_vhca_id, - MLX5_CAP_GEN(master_mdev, vhca_id)); + if (MLX5_CAP_GEN_2(master_mdev, sw_vhca_id_valid)) { + MLX5_SET(modify_nic_vport_context_in, in, + nic_vport_context.vhca_id_type, VHCA_ID_TYPE_SW); + MLX5_SET(modify_nic_vport_context_in, in, + nic_vport_context.affiliated_vhca_id, + MLX5_CAP_GEN_2(master_mdev, sw_vhca_id)); + } else { + MLX5_SET(modify_nic_vport_context_in, in, + nic_vport_context.affiliated_vhca_id, + MLX5_CAP_GEN(master_mdev, vhca_id)); + } MLX5_SET(modify_nic_vport_context_in, in, nic_vport_context.affiliation_criteria, MLX5_CAP_GEN(port_mdev, affiliate_nic_vport_criteria)); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige.h @@ -75,6 +75,7 @@ struct net_device *netdev; struct platform_device *pdev; void __iomem *mdio_io; + void __iomem *clk_io; struct mii_bus *mdiobus; spinlock_t lock; /* for packet processing indices */ u16 rx_q_entries; @@ -137,7 +138,8 @@ MLXBF_GIGE_RES_MDIO9, MLXBF_GIGE_RES_GPIO0, MLXBF_GIGE_RES_LLU, - MLXBF_GIGE_RES_PLU + MLXBF_GIGE_RES_PLU, + MLXBF_GIGE_RES_CLK }; /* Version of register data returned by mlxbf_gige_get_regs() */ --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_mdio.c @@ -22,10 +22,23 @@ #include #include "mlxbf_gige.h" +#include "mlxbf_gige_regs.h" #define MLXBF_GIGE_MDIO_GW_OFFSET 0x0 #define MLXBF_GIGE_MDIO_CFG_OFFSET 0x4 +#define MLXBF_GIGE_MDIO_FREQ_REFERENCE 156250000ULL +#define MLXBF_GIGE_MDIO_COREPLL_CONST 16384ULL +#define MLXBF_GIGE_MDC_CLK_NS 400 +#define MLXBF_GIGE_MDIO_PLL_I1CLK_REG1 0x4 +#define MLXBF_GIGE_MDIO_PLL_I1CLK_REG2 0x8 +#define MLXBF_GIGE_MDIO_CORE_F_SHIFT 0 +#define MLXBF_GIGE_MDIO_CORE_F_MASK GENMASK(25, 0) +#define MLXBF_GIGE_MDIO_CORE_R_SHIFT 26 +#define MLXBF_GIGE_MDIO_CORE_R_MASK GENMASK(31, 26) +#define MLXBF_GIGE_MDIO_CORE_OD_SHIFT 0 +#define MLXBF_GIGE_MDIO_CORE_OD_MASK GENMASK(3, 0) + /* Support clause 22 */ #define MLXBF_GIGE_MDIO_CL22_ST1 0x1 #define MLXBF_GIGE_MDIO_CL22_WRITE 0x1 @@ -50,27 +63,76 @@ #define MLXBF_GIGE_MDIO_CFG_MDIO_IN_SAMP_MASK GENMASK(23, 16) #define MLXBF_GIGE_MDIO_CFG_MDIO_OUT_SAMP_MASK GENMASK(31, 24) +#define MLXBF_GIGE_MDIO_CFG_VAL (FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_MODE_MASK, 1) | \ + FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO3_3_MASK, 1) | \ + FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_FULL_DRIVE_MASK, 1) | \ + FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_IN_SAMP_MASK, 6) | \ + FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_OUT_SAMP_MASK, 13)) + +#define MLXBF_GIGE_BF2_COREPLL_ADDR 0x02800c30 +#define MLXBF_GIGE_BF2_COREPLL_SIZE 0x0000000c + +static struct resource corepll_params[] = { + [MLXBF_GIGE_VERSION_BF2] = { + .start = MLXBF_GIGE_BF2_COREPLL_ADDR, + .end = MLXBF_GIGE_BF2_COREPLL_ADDR + MLXBF_GIGE_BF2_COREPLL_SIZE - 1, + .name = "COREPLL_RES" + }, +}; + +/* Returns core clock i1clk in Hz */ +static u64 calculate_i1clk(struct mlxbf_gige *priv) +{ + u8 core_od, core_r; + u64 freq_output; + u32 reg1, reg2; + u32 core_f; + + reg1 = readl(priv->clk_io + MLXBF_GIGE_MDIO_PLL_I1CLK_REG1); + reg2 = readl(priv->clk_io + MLXBF_GIGE_MDIO_PLL_I1CLK_REG2); + + core_f = (reg1 & MLXBF_GIGE_MDIO_CORE_F_MASK) >> + MLXBF_GIGE_MDIO_CORE_F_SHIFT; + core_r = (reg1 & MLXBF_GIGE_MDIO_CORE_R_MASK) >> + MLXBF_GIGE_MDIO_CORE_R_SHIFT; + core_od = (reg2 & MLXBF_GIGE_MDIO_CORE_OD_MASK) >> + MLXBF_GIGE_MDIO_CORE_OD_SHIFT; + + /* Compute PLL output frequency as follow: + * + * CORE_F / 16384 + * freq_output = freq_reference * ---------------------------- + * (CORE_R + 1) * (CORE_OD + 1) + */ + freq_output = div_u64((MLXBF_GIGE_MDIO_FREQ_REFERENCE * core_f), + MLXBF_GIGE_MDIO_COREPLL_CONST); + freq_output = div_u64(freq_output, (core_r + 1) * (core_od + 1)); + + return freq_output; +} + /* Formula for encoding the MDIO period. The encoded value is * passed to the MDIO config register. * - * mdc_clk = 2*(val + 1)*i1clk + * mdc_clk = 2*(val + 1)*(core clock in sec) * - * 400 ns = 2*(val + 1)*(((1/430)*1000) ns) + * i1clk is in Hz: + * 400 ns = 2*(val + 1)*(1/i1clk) * - * val = (((400 * 430 / 1000) / 2) - 1) + * val = (((400/10^9) / (1/i1clk) / 2) - 1) + * val = (400/2 * i1clk)/10^9 - 1 */ -#define MLXBF_GIGE_I1CLK_MHZ 430 -#define MLXBF_GIGE_MDC_CLK_NS 400 +static u8 mdio_period_map(struct mlxbf_gige *priv) +{ + u8 mdio_period; + u64 i1clk; -#define MLXBF_GIGE_MDIO_PERIOD (((MLXBF_GIGE_MDC_CLK_NS * MLXBF_GIGE_I1CLK_MHZ / 1000) / 2) - 1) + i1clk = calculate_i1clk(priv); -#define MLXBF_GIGE_MDIO_CFG_VAL (FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_MODE_MASK, 1) | \ - FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO3_3_MASK, 1) | \ - FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_FULL_DRIVE_MASK, 1) | \ - FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDC_PERIOD_MASK, \ - MLXBF_GIGE_MDIO_PERIOD) | \ - FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_IN_SAMP_MASK, 6) | \ - FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDIO_OUT_SAMP_MASK, 13)) + mdio_period = div_u64((MLXBF_GIGE_MDC_CLK_NS >> 1) * i1clk, 1000000000) - 1; + + return mdio_period; +} static u32 mlxbf_gige_mdio_create_cmd(u16 data, int phy_add, int phy_reg, u32 opcode) @@ -117,6 +179,9 @@ /* Only return ad bits of the gw register */ ret &= MLXBF_GIGE_MDIO_GW_AD_MASK; + /* The MDIO lock is set on read. To release it, clear gw register */ + writel(0, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET); + return ret; } @@ -124,9 +189,9 @@ int phy_reg, u16 val) { struct mlxbf_gige *priv = bus->priv; + u32 temp; u32 cmd; int ret; - u32 temp; if (phy_reg & MII_ADDR_C45) return -EOPNOTSUPP; @@ -141,21 +206,50 @@ temp, !(temp & MLXBF_GIGE_MDIO_GW_BUSY_MASK), 5, 1000000); + /* The MDIO lock is set on read. To release it, clear gw register */ + writel(0, priv->mdio_io + MLXBF_GIGE_MDIO_GW_OFFSET); + return ret; } +static void mlxbf_gige_mdio_cfg(struct mlxbf_gige *priv) +{ + u8 mdio_period; + u32 val; + + mdio_period = mdio_period_map(priv); + + val = MLXBF_GIGE_MDIO_CFG_VAL; + val |= FIELD_PREP(MLXBF_GIGE_MDIO_CFG_MDC_PERIOD_MASK, mdio_period); + writel(val, priv->mdio_io + MLXBF_GIGE_MDIO_CFG_OFFSET); +} + int mlxbf_gige_mdio_probe(struct platform_device *pdev, struct mlxbf_gige *priv) { struct device *dev = &pdev->dev; + struct resource *res; int ret; priv->mdio_io = devm_platform_ioremap_resource(pdev, MLXBF_GIGE_RES_MDIO9); if (IS_ERR(priv->mdio_io)) return PTR_ERR(priv->mdio_io); - /* Configure mdio parameters */ - writel(MLXBF_GIGE_MDIO_CFG_VAL, - priv->mdio_io + MLXBF_GIGE_MDIO_CFG_OFFSET); + /* clk resource shared with other drivers so cannot use + * devm_platform_ioremap_resource + */ + res = platform_get_resource(pdev, IORESOURCE_MEM, MLXBF_GIGE_RES_CLK); + if (!res) { + /* For backward compatibility with older ACPI tables, also keep + * CLK resource internal to the driver. + */ + res = &corepll_params[MLXBF_GIGE_VERSION_BF2]; + } + + priv->clk_io = devm_ioremap(dev, res->start, resource_size(res)); + if (!priv->clk_io) + return -ENOMEM; + + mlxbf_gige_mdio_cfg(priv); priv->mdiobus = devm_mdiobus_alloc(dev); if (!priv->mdiobus) { --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_regs.h @@ -8,6 +8,8 @@ #ifndef __MLXBF_GIGE_REGS_H__ #define __MLXBF_GIGE_REGS_H__ +#define MLXBF_GIGE_VERSION 0x0000 +#define MLXBF_GIGE_VERSION_BF2 0x0 #define MLXBF_GIGE_STATUS 0x0010 #define MLXBF_GIGE_STATUS_READY BIT(0) #define MLXBF_GIGE_INT_STATUS 0x0028 --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -1822,9 +1822,9 @@ cancel_delayed_work_sync(&mlxsw_sp_port->periodic_hw_stats.update_dw); cancel_delayed_work_sync(&mlxsw_sp_port->ptp.shaper_dw); - mlxsw_sp_port_ptp_clear(mlxsw_sp_port); mlxsw_core_port_clear(mlxsw_sp->core, local_port, mlxsw_sp); unregister_netdev(mlxsw_sp_port->dev); /* This calls ndo_stop */ + mlxsw_sp_port_ptp_clear(mlxsw_sp_port); mlxsw_sp_port_vlan_classification_set(mlxsw_sp_port, true, true); mlxsw_sp->ports[local_port] = NULL; mlxsw_sp_port_vlan_flush(mlxsw_sp_port, true); --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_span.c @@ -423,7 +423,8 @@ parms = mlxsw_sp_ipip_netdev_parms4(to_dev); ip_tunnel_init_flow(&fl4, parms.iph.protocol, *daddrp, *saddrp, - 0, 0, dev_net(to_dev), parms.link, tun->fwmark, 0); + 0, 0, dev_net(to_dev), parms.link, tun->fwmark, 0, + 0); rt = ip_route_output_key(tun->net, &fl4); if (IS_ERR(rt)) --- linux-5.19.0.orig/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ linux-5.19.0/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -3198,6 +3198,8 @@ u16 vid; vxlan_fdb_info = &switchdev_work->vxlan_fdb_info; + if (!vxlan_fdb_info->offloaded) + return; bridge_device = mlxsw_sp_bridge_device_find(mlxsw_sp->bridge, br_dev); if (!bridge_device) --- linux-5.19.0.orig/drivers/net/ethernet/micrel/ks8851_spi.c +++ linux-5.19.0/drivers/net/ethernet/micrel/ks8851_spi.c @@ -413,7 +413,8 @@ spi->bits_per_word = 8; - ks = netdev_priv(netdev); + kss = netdev_priv(netdev); + ks = &kss->ks8851; ks->lock = ks8851_lock_spi; ks->unlock = ks8851_unlock_spi; @@ -433,8 +434,6 @@ IRQ_RXPSI) /* RX process stop */ ks->rc_ier = STD_IRQ; - kss = to_ks8851_spi(ks); - kss->spidev = spi; mutex_init(&kss->lock); INIT_WORK(&kss->tx_work, ks8851_tx_work); --- linux-5.19.0.orig/drivers/net/ethernet/micrel/ksz884x.c +++ linux-5.19.0/drivers/net/ethernet/micrel/ksz884x.c @@ -6851,7 +6851,7 @@ char banner[sizeof(version)]; struct ksz_switch *sw = NULL; - result = pci_enable_device(pdev); + result = pcim_enable_device(pdev); if (result) return result; --- linux-5.19.0.orig/drivers/net/ethernet/microchip/encx24j600-regmap.c +++ linux-5.19.0/drivers/net/ethernet/microchip/encx24j600-regmap.c @@ -359,7 +359,7 @@ goto err_out; usleep_range(26, 100); - while ((ret = regmap_read(ctx->regmap, MISTAT, &mistat) != 0) && + while (((ret = regmap_read(ctx->regmap, MISTAT, &mistat)) == 0) && (mistat & BUSY)) cpu_relax(); @@ -397,7 +397,7 @@ goto err_out; usleep_range(26, 100); - while ((ret = regmap_read(ctx->regmap, MISTAT, &mistat) != 0) && + while (((ret = regmap_read(ctx->regmap, MISTAT, &mistat)) == 0) && (mistat & BUSY)) cpu_relax(); --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan743x_ptp.c +++ linux-5.19.0/drivers/net/ethernet/microchip/lan743x_ptp.c @@ -1049,6 +1049,10 @@ enum ptp_pin_function func, unsigned int chan) { + struct lan743x_ptp *lan_ptp = + container_of(ptp, struct lan743x_ptp, ptp_clock_info); + struct lan743x_adapter *adapter = + container_of(lan_ptp, struct lan743x_adapter, ptp); int result = 0; /* Confirm the requested function is supported. Parameter @@ -1057,7 +1061,10 @@ switch (func) { case PTP_PF_NONE: case PTP_PF_PEROUT: + break; case PTP_PF_EXTTS: + if (!adapter->is_pci11x1x) + result = -1; break; case PTP_PF_PHYSYNC: default: --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c @@ -656,7 +656,15 @@ stats->rx_dropped = dev->stats.rx_dropped + lan966x->stats[idx + SYS_COUNT_RX_LONG] + lan966x->stats[idx + SYS_COUNT_DR_LOCAL] + - lan966x->stats[idx + SYS_COUNT_DR_TAIL]; + lan966x->stats[idx + SYS_COUNT_DR_TAIL] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_0] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_1] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_2] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_3] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_4] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_5] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_6] + + lan966x->stats[idx + SYS_COUNT_RX_RED_PRIO_7]; for (i = 0; i < LAN966X_NUM_TC; i++) { stats->rx_dropped += @@ -708,6 +716,9 @@ snprintf(queue_name, sizeof(queue_name), "%s-stats", dev_name(lan966x->dev)); lan966x->stats_queue = create_singlethread_workqueue(queue_name); + if (!lan966x->stats_queue) + return -ENOMEM; + INIT_DELAYED_WORK(&lan966x->stats_work, lan966x_check_stats_work); queue_delayed_work(lan966x->stats_queue, &lan966x->stats_work, LAN966X_STATS_CHECK_DELAY); --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c @@ -309,6 +309,7 @@ lan966x, FDMA_CH_DB_DISCARD); tx->activated = false; + tx->last_in_use = -1; } static void lan966x_fdma_tx_reload(struct lan966x_tx *tx) @@ -413,19 +414,26 @@ /* Get the received frame and unmap it */ db = &rx->dcbs[rx->dcb_index].db[rx->db_index]; page = rx->page[rx->dcb_index][rx->db_index]; + + dma_sync_single_for_cpu(lan966x->dev, (dma_addr_t)db->dataptr, + FDMA_DCB_STATUS_BLOCKL(db->status), + DMA_FROM_DEVICE); + skb = build_skb(page_address(page), PAGE_SIZE << rx->page_order); if (unlikely(!skb)) goto unmap_page; - dma_unmap_single(lan966x->dev, (dma_addr_t)db->dataptr, - FDMA_DCB_STATUS_BLOCKL(db->status), - DMA_FROM_DEVICE); skb_put(skb, FDMA_DCB_STATUS_BLOCKL(db->status)); lan966x_ifh_get_src_port(skb->data, &src_port); lan966x_ifh_get_timestamp(skb->data, ×tamp); - WARN_ON(src_port >= lan966x->num_phys_ports); + if (WARN_ON(src_port >= lan966x->num_phys_ports)) + goto free_skb; + + dma_unmap_single_attrs(lan966x->dev, (dma_addr_t)db->dataptr, + PAGE_SIZE << rx->page_order, DMA_FROM_DEVICE, + DMA_ATTR_SKIP_CPU_SYNC); skb->dev = lan966x->ports[src_port]->dev; skb_pull(skb, IFH_LEN * sizeof(u32)); @@ -449,10 +457,12 @@ return skb; +free_skb: + kfree_skb(skb); unmap_page: - dma_unmap_page(lan966x->dev, (dma_addr_t)db->dataptr, - FDMA_DCB_STATUS_BLOCKL(db->status), - DMA_FROM_DEVICE); + dma_unmap_single_attrs(lan966x->dev, (dma_addr_t)db->dataptr, + PAGE_SIZE << rx->page_order, DMA_FROM_DEVICE, + DMA_ATTR_SKIP_CPU_SYNC); __free_pages(page, rx->page_order); return NULL; @@ -664,12 +674,14 @@ int i; for (i = 0; i < lan966x->num_phys_ports; ++i) { + struct lan966x_port *port; int mtu; - if (!lan966x->ports[i]) + port = lan966x->ports[i]; + if (!port) continue; - mtu = lan966x->ports[i]->dev->mtu; + mtu = lan_rd(lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port)); if (mtu > max_mtu) max_mtu = mtu; } @@ -684,17 +696,14 @@ static int lan966x_fdma_reload(struct lan966x *lan966x, int new_mtu) { - void *rx_dcbs, *tx_dcbs, *tx_dcbs_buf; - dma_addr_t rx_dma, tx_dma; + dma_addr_t rx_dma; + void *rx_dcbs; u32 size; int err; /* Store these for later to free them */ rx_dma = lan966x->rx.dma; - tx_dma = lan966x->tx.dma; rx_dcbs = lan966x->rx.dcbs; - tx_dcbs = lan966x->tx.dcbs; - tx_dcbs_buf = lan966x->tx.dcbs_buf; napi_synchronize(&lan966x->napi); napi_disable(&lan966x->napi); @@ -712,17 +721,6 @@ size = ALIGN(size, PAGE_SIZE); dma_free_coherent(lan966x->dev, size, rx_dcbs, rx_dma); - lan966x_fdma_tx_disable(&lan966x->tx); - err = lan966x_fdma_tx_alloc(&lan966x->tx); - if (err) - goto restore_tx; - - size = sizeof(struct lan966x_tx_dcb) * FDMA_DCB_MAX; - size = ALIGN(size, PAGE_SIZE); - dma_free_coherent(lan966x->dev, size, tx_dcbs, tx_dma); - - kfree(tx_dcbs_buf); - lan966x_fdma_wakeup_netdev(lan966x); napi_enable(&lan966x->napi); @@ -732,11 +730,6 @@ lan966x->rx.dcbs = rx_dcbs; lan966x_fdma_rx_start(&lan966x->rx); -restore_tx: - lan966x->tx.dma = tx_dma; - lan966x->tx.dcbs = tx_dcbs; - lan966x->tx.dcbs_buf = tx_dcbs_buf; - return err; } @@ -748,6 +741,8 @@ max_mtu = lan966x_fdma_get_max_mtu(lan966x); max_mtu += IFH_LEN * sizeof(u32); + max_mtu += SKB_DATA_ALIGN(sizeof(struct skb_shared_info)); + max_mtu += VLAN_HLEN * 2; if (round_up(max_mtu, PAGE_SIZE) / PAGE_SIZE - 1 == lan966x->rx.page_order) --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_main.c +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_main.c @@ -385,7 +385,7 @@ int old_mtu = dev->mtu; int err; - lan_wr(DEV_MAC_MAXLEN_CFG_MAX_LEN_SET(new_mtu), + lan_wr(DEV_MAC_MAXLEN_CFG_MAX_LEN_SET(LAN966X_HW_MTU(new_mtu)), lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port)); dev->mtu = new_mtu; @@ -394,7 +394,7 @@ err = lan966x_fdma_change_mtu(lan966x); if (err) { - lan_wr(DEV_MAC_MAXLEN_CFG_MAX_LEN_SET(old_mtu), + lan_wr(DEV_MAC_MAXLEN_CFG_MAX_LEN_SET(LAN966X_HW_MTU(old_mtu)), lan966x, DEV_MAC_MAXLEN_CFG(port->chip_port)); dev->mtu = old_mtu; } @@ -710,7 +710,7 @@ disable_irq(lan966x->xtr_irq); lan966x->xtr_irq = -ENXIO; - if (lan966x->ana_irq) { + if (lan966x->ana_irq > 0) { disable_irq(lan966x->ana_irq); lan966x->ana_irq = -ENXIO; } @@ -718,10 +718,10 @@ if (lan966x->fdma) devm_free_irq(lan966x->dev, lan966x->fdma_irq, lan966x); - if (lan966x->ptp_irq) + if (lan966x->ptp_irq > 0) devm_free_irq(lan966x->dev, lan966x->ptp_irq, lan966x); - if (lan966x->ptp_ext_irq) + if (lan966x->ptp_ext_irq > 0) devm_free_irq(lan966x->dev, lan966x->ptp_ext_irq, lan966x); } @@ -1049,7 +1049,7 @@ } lan966x->ana_irq = platform_get_irq_byname(pdev, "ana"); - if (lan966x->ana_irq) { + if (lan966x->ana_irq > 0) { err = devm_request_threaded_irq(&pdev->dev, lan966x->ana_irq, NULL, lan966x_ana_irq_handler, IRQF_ONESHOT, "ana irq", lan966x); --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_main.h +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_main.h @@ -24,6 +24,8 @@ #define LAN966X_BUFFER_MEMORY (160 * 1024) #define LAN966X_BUFFER_MIN_SZ 60 +#define LAN966X_HW_MTU(mtu) ((mtu) + ETH_HLEN + ETH_FCS_LEN) + #define PGID_AGGR 64 #define PGID_SRC 80 #define PGID_ENTRIES 89 --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_regs.h +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_regs.h @@ -444,6 +444,21 @@ #define DEV_MAC_MAXLEN_CFG_MAX_LEN_GET(x)\ FIELD_GET(DEV_MAC_MAXLEN_CFG_MAX_LEN, x) +/* DEV:MAC_CFG_STATUS:MAC_TAGS_CFG */ +#define DEV_MAC_TAGS_CFG(t) __REG(TARGET_DEV, t, 8, 28, 0, 1, 44, 12, 0, 1, 4) + +#define DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA BIT(1) +#define DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA_SET(x)\ + FIELD_PREP(DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA, x) +#define DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA_GET(x)\ + FIELD_GET(DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA, x) + +#define DEV_MAC_TAGS_CFG_VLAN_AWR_ENA BIT(0) +#define DEV_MAC_TAGS_CFG_VLAN_AWR_ENA_SET(x)\ + FIELD_PREP(DEV_MAC_TAGS_CFG_VLAN_AWR_ENA, x) +#define DEV_MAC_TAGS_CFG_VLAN_AWR_ENA_GET(x)\ + FIELD_GET(DEV_MAC_TAGS_CFG_VLAN_AWR_ENA, x) + /* DEV:MAC_CFG_STATUS:MAC_IFG_CFG */ #define DEV_MAC_IFG_CFG(t) __REG(TARGET_DEV, t, 8, 28, 0, 1, 44, 20, 0, 1, 4) --- linux-5.19.0.orig/drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c +++ linux-5.19.0/drivers/net/ethernet/microchip/lan966x/lan966x_vlan.c @@ -169,6 +169,12 @@ ANA_VLAN_CFG_VLAN_POP_CNT, lan966x, ANA_VLAN_CFG(port->chip_port)); + lan_rmw(DEV_MAC_TAGS_CFG_VLAN_AWR_ENA_SET(port->vlan_aware) | + DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA_SET(port->vlan_aware), + DEV_MAC_TAGS_CFG_VLAN_AWR_ENA | + DEV_MAC_TAGS_CFG_VLAN_DBL_AWR_ENA, + lan966x, DEV_MAC_TAGS_CFG(port->chip_port)); + /* Drop frames with multicast source address */ val = ANA_DROP_CFG_DROP_MC_SMAC_ENA_SET(1); if (port->vlan_aware && !pvid) --- linux-5.19.0.orig/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/microchip/sparx5/sparx5_ethtool.c @@ -1253,6 +1253,9 @@ snprintf(queue_name, sizeof(queue_name), "%s-stats", dev_name(sparx5->dev)); sparx5->stats_queue = create_singlethread_workqueue(queue_name); + if (!sparx5->stats_queue) + return -ENOMEM; + INIT_DELAYED_WORK(&sparx5->stats_work, sparx5_check_stats_work); queue_delayed_work(sparx5->stats_queue, &sparx5->stats_work, SPX5_STATS_CHECK_DELAY); --- linux-5.19.0.orig/drivers/net/ethernet/microchip/sparx5/sparx5_fdma.c +++ linux-5.19.0/drivers/net/ethernet/microchip/sparx5/sparx5_fdma.c @@ -317,7 +317,7 @@ next_dcb_hw = sparx5_fdma_next_dcb(tx, tx->curr_entry); db_hw = &next_dcb_hw->db[0]; if (!(db_hw->status & FDMA_DCB_STATUS_DONE)) - tx->dropped++; + return -EINVAL; db = list_first_entry(&tx->db_list, struct sparx5_db, list); list_move_tail(&db->list, &tx->db_list); next_dcb_hw->nextptr = FDMA_DCB_INVALID_DATA; --- linux-5.19.0.orig/drivers/net/ethernet/microchip/sparx5/sparx5_main.c +++ linux-5.19.0/drivers/net/ethernet/microchip/sparx5/sparx5_main.c @@ -657,6 +657,9 @@ snprintf(queue_name, sizeof(queue_name), "%s-mact", dev_name(sparx5->dev)); sparx5->mact_queue = create_singlethread_workqueue(queue_name); + if (!sparx5->mact_queue) + return -ENOMEM; + INIT_DELAYED_WORK(&sparx5->mact_work, sparx5_mact_pull_work); queue_delayed_work(sparx5->mact_queue, &sparx5->mact_work, SPX5_MACT_PULL_DELAY); @@ -873,6 +876,8 @@ cleanup_ports: sparx5_cleanup_ports(sparx5); + if (sparx5->mact_queue) + destroy_workqueue(sparx5->mact_queue); cleanup_config: kfree(configs); cleanup_pnode: @@ -897,6 +902,7 @@ sparx5_cleanup_ports(sparx5); /* Unregister netdevs */ sparx5_unregister_notifier_blocks(sparx5); + destroy_workqueue(sparx5->mact_queue); return 0; } --- linux-5.19.0.orig/drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c +++ linux-5.19.0/drivers/net/ethernet/microchip/sparx5/sparx5_netdev.c @@ -103,7 +103,7 @@ err = phylink_of_phy_connect(port->phylink, port->of_node, 0); if (err) { netdev_err(ndev, "Could not attach to PHY\n"); - return err; + goto err_connect; } phylink_start(port->phylink); @@ -115,10 +115,20 @@ err = sparx5_serdes_set(port->sparx5, port, &port->conf); else err = phy_power_on(port->serdes); - if (err) + if (err) { netdev_err(ndev, "%s failed\n", __func__); + goto out_power; + } } + return 0; + +out_power: + phylink_stop(port->phylink); + phylink_disconnect_phy(port->phylink); +err_connect: + sparx5_port_enable(port, false); + return err; } --- linux-5.19.0.orig/drivers/net/ethernet/microchip/sparx5/sparx5_packet.c +++ linux-5.19.0/drivers/net/ethernet/microchip/sparx5/sparx5_packet.c @@ -113,6 +113,8 @@ /* This assumes STATUS_WORD_POS == 1, Status * just after last data */ + if (!byte_swap) + val = ntohl((__force __be32)val); byte_cnt -= (4 - XTR_VALID_BYTES(val)); eof_flag = true; break; @@ -232,9 +234,8 @@ sparx5_set_port_ifh(ifh, port->portno); if (sparx5->ptp && skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP) { - ret = sparx5_ptp_txtstamp_request(port, skb); - if (ret) - return ret; + if (sparx5_ptp_txtstamp_request(port, skb) < 0) + return NETDEV_TX_BUSY; sparx5_set_port_ifh_rew_op(ifh, SPARX5_SKB_CB(skb)->rew_op); sparx5_set_port_ifh_pdu_type(ifh, SPARX5_SKB_CB(skb)->pdu_type); @@ -248,23 +249,31 @@ else ret = sparx5_inject(sparx5, ifh, skb, dev); - if (ret == NETDEV_TX_OK) { - stats->tx_bytes += skb->len; - stats->tx_packets++; - - if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP && - SPARX5_SKB_CB(skb)->rew_op == IFH_REW_OP_TWO_STEP_PTP) - return ret; - - dev_kfree_skb_any(skb); - } else { - stats->tx_dropped++; - - if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP && - SPARX5_SKB_CB(skb)->rew_op == IFH_REW_OP_TWO_STEP_PTP) - sparx5_ptp_txtstamp_release(port, skb); - } - return ret; + if (ret == -EBUSY) + goto busy; + if (ret < 0) + goto drop; + + stats->tx_bytes += skb->len; + stats->tx_packets++; + sparx5->tx.packets++; + + if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP && + SPARX5_SKB_CB(skb)->rew_op == IFH_REW_OP_TWO_STEP_PTP) + return NETDEV_TX_OK; + + dev_consume_skb_any(skb); + return NETDEV_TX_OK; +drop: + stats->tx_dropped++; + sparx5->tx.dropped++; + dev_kfree_skb_any(skb); + return NETDEV_TX_OK; +busy: + if (skb_shinfo(skb)->tx_flags & SKBTX_HW_TSTAMP && + SPARX5_SKB_CB(skb)->rew_op == IFH_REW_OP_TWO_STEP_PTP) + sparx5_ptp_txtstamp_release(port, skb); + return NETDEV_TX_BUSY; } static enum hrtimer_restart sparx5_injection_timeout(struct hrtimer *tmr) --- linux-5.19.0.orig/drivers/net/ethernet/microsoft/mana/gdma.h +++ linux-5.19.0/drivers/net/ethernet/microsoft/mana/gdma.h @@ -488,7 +488,14 @@ #define GDMA_DRV_CAP_FLAG_1_EQ_SHARING_MULTI_VPORT BIT(0) -#define GDMA_DRV_CAP_FLAGS1 GDMA_DRV_CAP_FLAG_1_EQ_SHARING_MULTI_VPORT +/* Advertise to the NIC firmware: the NAPI work_done variable race is fixed, + * so the driver is able to reliably support features like busy_poll. + */ +#define GDMA_DRV_CAP_FLAG_1_NAPI_WKDONE_FIX BIT(2) + +#define GDMA_DRV_CAP_FLAGS1 \ + (GDMA_DRV_CAP_FLAG_1_EQ_SHARING_MULTI_VPORT | \ + GDMA_DRV_CAP_FLAG_1_NAPI_WKDONE_FIX) #define GDMA_DRV_CAP_FLAGS2 0 --- linux-5.19.0.orig/drivers/net/ethernet/microsoft/mana/gdma_main.c +++ linux-5.19.0/drivers/net/ethernet/microsoft/mana/gdma_main.c @@ -370,6 +370,11 @@ break; } + /* Per GDMA spec, rmb is necessary after checking owner_bits, before + * reading eqe. + */ + rmb(); + mana_gd_process_eqe(eq); eq->head++; @@ -1107,6 +1112,11 @@ if (WARN_ON_ONCE(owner_bits != new_bits)) return -1; + /* Per GDMA spec, rmb is necessary after checking owner_bits, before + * reading completion info + */ + rmb(); + comp->wq_num = cqe->cqe_info.wq_num; comp->is_sq = cqe->cqe_info.is_sq; memcpy(comp->cqe_data, cqe->cqe_data, GDMA_COMP_DATA_SIZE); --- linux-5.19.0.orig/drivers/net/ethernet/microsoft/mana/mana_en.c +++ linux-5.19.0/drivers/net/ethernet/microsoft/mana/mana_en.c @@ -1179,10 +1179,11 @@ } } -static void mana_cq_handler(void *context, struct gdma_queue *gdma_queue) +static int mana_cq_handler(void *context, struct gdma_queue *gdma_queue) { struct mana_cq *cq = context; u8 arm_bit; + int w; WARN_ON_ONCE(cq->gdma_cq != gdma_queue); @@ -1191,26 +1192,31 @@ else mana_poll_tx_cq(cq); - if (cq->work_done < cq->budget && - napi_complete_done(&cq->napi, cq->work_done)) { + w = cq->work_done; + + if (w < cq->budget && + napi_complete_done(&cq->napi, w)) { arm_bit = SET_ARM_BIT; } else { arm_bit = 0; } mana_gd_ring_cq(gdma_queue, arm_bit); + + return w; } static int mana_poll(struct napi_struct *napi, int budget) { struct mana_cq *cq = container_of(napi, struct mana_cq, napi); + int w; cq->work_done = 0; cq->budget = budget; - mana_cq_handler(cq, cq->gdma_cq); + w = mana_cq_handler(cq, cq->gdma_cq); - return min(cq->work_done, budget); + return min(w, budget); } static void mana_schedule_napi(void *context, struct gdma_queue *gdma_queue) --- linux-5.19.0.orig/drivers/net/ethernet/moxa/moxart_ether.c +++ linux-5.19.0/drivers/net/ethernet/moxa/moxart_ether.c @@ -74,11 +74,6 @@ static void moxart_mac_free_memory(struct net_device *ndev) { struct moxart_mac_priv_t *priv = netdev_priv(ndev); - int i; - - for (i = 0; i < RX_DESC_NUM; i++) - dma_unmap_single(&ndev->dev, priv->rx_mapping[i], - priv->rx_buf_size, DMA_FROM_DEVICE); if (priv->tx_desc_base) dma_free_coherent(&priv->pdev->dev, @@ -147,11 +142,11 @@ desc + RX_REG_OFFSET_DESC1); priv->rx_buf[i] = priv->rx_buf_base + priv->rx_buf_size * i; - priv->rx_mapping[i] = dma_map_single(&ndev->dev, + priv->rx_mapping[i] = dma_map_single(&priv->pdev->dev, priv->rx_buf[i], priv->rx_buf_size, DMA_FROM_DEVICE); - if (dma_mapping_error(&ndev->dev, priv->rx_mapping[i])) + if (dma_mapping_error(&priv->pdev->dev, priv->rx_mapping[i])) netdev_err(ndev, "DMA mapping error\n"); moxart_desc_write(priv->rx_mapping[i], @@ -193,6 +188,7 @@ static int moxart_mac_stop(struct net_device *ndev) { struct moxart_mac_priv_t *priv = netdev_priv(ndev); + int i; napi_disable(&priv->napi); @@ -204,6 +200,11 @@ /* disable all functions */ writel(0, priv->base + REG_MAC_CTRL); + /* unmap areas mapped in moxart_mac_setup_desc_ring() */ + for (i = 0; i < RX_DESC_NUM; i++) + dma_unmap_single(&priv->pdev->dev, priv->rx_mapping[i], + priv->rx_buf_size, DMA_FROM_DEVICE); + return 0; } @@ -240,7 +241,7 @@ if (len > RX_BUF_SIZE) len = RX_BUF_SIZE; - dma_sync_single_for_cpu(&ndev->dev, + dma_sync_single_for_cpu(&priv->pdev->dev, priv->rx_mapping[rx_head], priv->rx_buf_size, DMA_FROM_DEVICE); skb = netdev_alloc_skb_ip_align(ndev, len); @@ -294,7 +295,7 @@ unsigned int tx_tail = priv->tx_tail; while (tx_tail != tx_head) { - dma_unmap_single(&ndev->dev, priv->tx_mapping[tx_tail], + dma_unmap_single(&priv->pdev->dev, priv->tx_mapping[tx_tail], priv->tx_len[tx_tail], DMA_TO_DEVICE); ndev->stats.tx_packets++; @@ -358,9 +359,9 @@ len = skb->len > TX_BUF_SIZE ? TX_BUF_SIZE : skb->len; - priv->tx_mapping[tx_head] = dma_map_single(&ndev->dev, skb->data, + priv->tx_mapping[tx_head] = dma_map_single(&priv->pdev->dev, skb->data, len, DMA_TO_DEVICE); - if (dma_mapping_error(&ndev->dev, priv->tx_mapping[tx_head])) { + if (dma_mapping_error(&priv->pdev->dev, priv->tx_mapping[tx_head])) { netdev_err(ndev, "DMA mapping error\n"); goto out_unlock; } @@ -379,7 +380,7 @@ len = ETH_ZLEN; } - dma_sync_single_for_device(&ndev->dev, priv->tx_mapping[tx_head], + dma_sync_single_for_device(&priv->pdev->dev, priv->tx_mapping[tx_head], priv->tx_buf_size, DMA_TO_DEVICE); txdes1 = TX_DESC1_LTS | TX_DESC1_FTS | (len & TX_DESC1_BUF_SIZE_MASK); @@ -493,7 +494,7 @@ priv->tx_buf_size = TX_BUF_SIZE; priv->rx_buf_size = RX_BUF_SIZE; - priv->tx_desc_base = dma_alloc_coherent(&pdev->dev, TX_REG_DESC_SIZE * + priv->tx_desc_base = dma_alloc_coherent(p_dev, TX_REG_DESC_SIZE * TX_DESC_NUM, &priv->tx_base, GFP_DMA | GFP_KERNEL); if (!priv->tx_desc_base) { @@ -501,7 +502,7 @@ goto init_fail; } - priv->rx_desc_base = dma_alloc_coherent(&pdev->dev, RX_REG_DESC_SIZE * + priv->rx_desc_base = dma_alloc_coherent(p_dev, RX_REG_DESC_SIZE * RX_DESC_NUM, &priv->rx_base, GFP_DMA | GFP_KERNEL); if (!priv->rx_desc_base) { --- linux-5.19.0.orig/drivers/net/ethernet/mscc/ocelot.c +++ linux-5.19.0/drivers/net/ethernet/mscc/ocelot.c @@ -290,6 +290,13 @@ if (!(vlan->portmask & BIT(port))) continue; + /* Ignore the VLAN added by ocelot_add_vlan_unaware_pvid(), + * because this is never active in hardware at the same time as + * the bridge VLANs, which only matter in VLAN-aware mode. + */ + if (vlan->vid >= OCELOT_RSV_VLAN_RANGE_START) + continue; + if (vlan->untagged & BIT(port)) num_untagged++; } @@ -1860,16 +1867,20 @@ if (sset != ETH_SS_STATS) return; - for (i = 0; i < ocelot->num_stats; i++) + for (i = 0; i < OCELOT_NUM_STATS; i++) { + if (ocelot->stats_layout[i].name[0] == '\0') + continue; + memcpy(data + i * ETH_GSTRING_LEN, ocelot->stats_layout[i].name, ETH_GSTRING_LEN); + } } EXPORT_SYMBOL(ocelot_get_strings); /* Caller must hold &ocelot->stats_lock */ static int ocelot_port_update_stats(struct ocelot *ocelot, int port) { - unsigned int idx = port * ocelot->num_stats; + unsigned int idx = port * OCELOT_NUM_STATS; struct ocelot_stats_region *region; int err, j; @@ -1906,13 +1917,13 @@ stats_work); int i, err; - mutex_lock(&ocelot->stats_lock); + spin_lock(&ocelot->stats_lock); for (i = 0; i < ocelot->num_phys_ports; i++) { err = ocelot_port_update_stats(ocelot, i); if (err) break; } - mutex_unlock(&ocelot->stats_lock); + spin_unlock(&ocelot->stats_lock); if (err) dev_err(ocelot->dev, "Error %d updating ethtool stats\n", err); @@ -1925,16 +1936,22 @@ { int i, err; - mutex_lock(&ocelot->stats_lock); + spin_lock(&ocelot->stats_lock); /* check and update now */ err = ocelot_port_update_stats(ocelot, port); - /* Copy all counters */ - for (i = 0; i < ocelot->num_stats; i++) - *data++ = ocelot->stats[port * ocelot->num_stats + i]; + /* Copy all supported counters */ + for (i = 0; i < OCELOT_NUM_STATS; i++) { + int index = port * OCELOT_NUM_STATS + i; - mutex_unlock(&ocelot->stats_lock); + if (ocelot->stats_layout[i].name[0] == '\0') + continue; + + *data++ = ocelot->stats[index]; + } + + spin_unlock(&ocelot->stats_lock); if (err) dev_err(ocelot->dev, "Error %d updating ethtool stats\n", err); @@ -1943,10 +1960,16 @@ int ocelot_get_sset_count(struct ocelot *ocelot, int port, int sset) { + int i, num_stats = 0; + if (sset != ETH_SS_STATS) return -EOPNOTSUPP; - return ocelot->num_stats; + for (i = 0; i < OCELOT_NUM_STATS; i++) + if (ocelot->stats_layout[i].name[0] != '\0') + num_stats++; + + return num_stats; } EXPORT_SYMBOL(ocelot_get_sset_count); @@ -1958,7 +1981,10 @@ INIT_LIST_HEAD(&ocelot->stats_regions); - for (i = 0; i < ocelot->num_stats; i++) { + for (i = 0; i < OCELOT_NUM_STATS; i++) { + if (ocelot->stats_layout[i].name[0] == '\0') + continue; + if (region && ocelot->stats_layout[i].offset == last + 1) { region->count++; } else { @@ -3340,7 +3366,6 @@ int ocelot_init(struct ocelot *ocelot) { - const struct ocelot_stat_layout *stat; char queue_name[32]; int i, ret; u32 port; @@ -3353,20 +3378,17 @@ } } - ocelot->num_stats = 0; - for_each_stat(ocelot, stat) - ocelot->num_stats++; - ocelot->stats = devm_kcalloc(ocelot->dev, - ocelot->num_phys_ports * ocelot->num_stats, + ocelot->num_phys_ports * OCELOT_NUM_STATS, sizeof(u64), GFP_KERNEL); if (!ocelot->stats) return -ENOMEM; - mutex_init(&ocelot->stats_lock); + spin_lock_init(&ocelot->stats_lock); mutex_init(&ocelot->ptp_lock); mutex_init(&ocelot->mact_lock); mutex_init(&ocelot->fwd_domain_lock); + mutex_init(&ocelot->tas_lock); spin_lock_init(&ocelot->ptp_clock_lock); spin_lock_init(&ocelot->ts_id_lock); snprintf(queue_name, sizeof(queue_name), "%s-stats", @@ -3510,7 +3532,6 @@ cancel_delayed_work(&ocelot->stats_work); destroy_workqueue(ocelot->stats_queue); destroy_workqueue(ocelot->owq); - mutex_destroy(&ocelot->stats_lock); } EXPORT_SYMBOL(ocelot_deinit); --- linux-5.19.0.orig/drivers/net/ethernet/mscc/ocelot_net.c +++ linux-5.19.0/drivers/net/ethernet/mscc/ocelot_net.c @@ -725,37 +725,42 @@ struct ocelot_port_private *priv = netdev_priv(dev); struct ocelot *ocelot = priv->port.ocelot; int port = priv->port.index; + u64 *s; - /* Configure the port to read the stats from */ - ocelot_write(ocelot, SYS_STAT_CFG_STAT_VIEW(port), - SYS_STAT_CFG); + spin_lock(&ocelot->stats_lock); + + s = &ocelot->stats[port * OCELOT_NUM_STATS]; /* Get Rx stats */ - stats->rx_bytes = ocelot_read(ocelot, SYS_COUNT_RX_OCTETS); - stats->rx_packets = ocelot_read(ocelot, SYS_COUNT_RX_SHORTS) + - ocelot_read(ocelot, SYS_COUNT_RX_FRAGMENTS) + - ocelot_read(ocelot, SYS_COUNT_RX_JABBERS) + - ocelot_read(ocelot, SYS_COUNT_RX_LONGS) + - ocelot_read(ocelot, SYS_COUNT_RX_64) + - ocelot_read(ocelot, SYS_COUNT_RX_65_127) + - ocelot_read(ocelot, SYS_COUNT_RX_128_255) + - ocelot_read(ocelot, SYS_COUNT_RX_256_1023) + - ocelot_read(ocelot, SYS_COUNT_RX_1024_1526) + - ocelot_read(ocelot, SYS_COUNT_RX_1527_MAX); - stats->multicast = ocelot_read(ocelot, SYS_COUNT_RX_MULTICAST); + stats->rx_bytes = s[OCELOT_STAT_RX_OCTETS]; + stats->rx_packets = s[OCELOT_STAT_RX_SHORTS] + + s[OCELOT_STAT_RX_FRAGMENTS] + + s[OCELOT_STAT_RX_JABBERS] + + s[OCELOT_STAT_RX_LONGS] + + s[OCELOT_STAT_RX_64] + + s[OCELOT_STAT_RX_65_127] + + s[OCELOT_STAT_RX_128_255] + + s[OCELOT_STAT_RX_256_511] + + s[OCELOT_STAT_RX_512_1023] + + s[OCELOT_STAT_RX_1024_1526] + + s[OCELOT_STAT_RX_1527_MAX]; + stats->multicast = s[OCELOT_STAT_RX_MULTICAST]; stats->rx_dropped = dev->stats.rx_dropped; /* Get Tx stats */ - stats->tx_bytes = ocelot_read(ocelot, SYS_COUNT_TX_OCTETS); - stats->tx_packets = ocelot_read(ocelot, SYS_COUNT_TX_64) + - ocelot_read(ocelot, SYS_COUNT_TX_65_127) + - ocelot_read(ocelot, SYS_COUNT_TX_128_511) + - ocelot_read(ocelot, SYS_COUNT_TX_512_1023) + - ocelot_read(ocelot, SYS_COUNT_TX_1024_1526) + - ocelot_read(ocelot, SYS_COUNT_TX_1527_MAX); - stats->tx_dropped = ocelot_read(ocelot, SYS_COUNT_TX_DROPS) + - ocelot_read(ocelot, SYS_COUNT_TX_AGING); - stats->collisions = ocelot_read(ocelot, SYS_COUNT_TX_COLLISION); + stats->tx_bytes = s[OCELOT_STAT_TX_OCTETS]; + stats->tx_packets = s[OCELOT_STAT_TX_64] + + s[OCELOT_STAT_TX_65_127] + + s[OCELOT_STAT_TX_128_255] + + s[OCELOT_STAT_TX_256_511] + + s[OCELOT_STAT_TX_512_1023] + + s[OCELOT_STAT_TX_1024_1526] + + s[OCELOT_STAT_TX_1527_MAX]; + stats->tx_dropped = s[OCELOT_STAT_TX_DROPS] + + s[OCELOT_STAT_TX_AGED]; + stats->collisions = s[OCELOT_STAT_TX_COLLISION]; + + spin_unlock(&ocelot->stats_lock); } static int ocelot_port_fdb_add(struct ndmsg *ndm, struct nlattr *tb[], --- linux-5.19.0.orig/drivers/net/ethernet/mscc/ocelot_ptp.c +++ linux-5.19.0/drivers/net/ethernet/mscc/ocelot_ptp.c @@ -72,6 +72,10 @@ ocelot_write_rix(ocelot, val, PTP_PIN_CFG, TOD_ACC_PIN); spin_unlock_irqrestore(&ocelot->ptp_clock_lock, flags); + + if (ocelot->ops->tas_clock_adjust) + ocelot->ops->tas_clock_adjust(ocelot); + return 0; } EXPORT_SYMBOL(ocelot_ptp_settime64); @@ -105,6 +109,9 @@ ocelot_write_rix(ocelot, val, PTP_PIN_CFG, TOD_ACC_PIN); spin_unlock_irqrestore(&ocelot->ptp_clock_lock, flags); + + if (ocelot->ops->tas_clock_adjust) + ocelot->ops->tas_clock_adjust(ocelot); } else { /* Fall back using ocelot_ptp_settime64 which is not exact. */ struct timespec64 ts; @@ -117,6 +124,7 @@ ocelot_ptp_settime64(ptp, &ts); } + return 0; } EXPORT_SYMBOL(ocelot_ptp_adjtime); --- linux-5.19.0.orig/drivers/net/ethernet/mscc/ocelot_vsc7514.c +++ linux-5.19.0/drivers/net/ethernet/mscc/ocelot_vsc7514.c @@ -96,101 +96,379 @@ [SYS_PAUSE_CFG_PAUSE_ENA] = REG_FIELD_ID(SYS_PAUSE_CFG, 0, 1, 12, 4), }; -static const struct ocelot_stat_layout ocelot_stats_layout[] = { - { .name = "rx_octets", .offset = 0x00, }, - { .name = "rx_unicast", .offset = 0x01, }, - { .name = "rx_multicast", .offset = 0x02, }, - { .name = "rx_broadcast", .offset = 0x03, }, - { .name = "rx_shorts", .offset = 0x04, }, - { .name = "rx_fragments", .offset = 0x05, }, - { .name = "rx_jabbers", .offset = 0x06, }, - { .name = "rx_crc_align_errs", .offset = 0x07, }, - { .name = "rx_sym_errs", .offset = 0x08, }, - { .name = "rx_frames_below_65_octets", .offset = 0x09, }, - { .name = "rx_frames_65_to_127_octets", .offset = 0x0A, }, - { .name = "rx_frames_128_to_255_octets", .offset = 0x0B, }, - { .name = "rx_frames_256_to_511_octets", .offset = 0x0C, }, - { .name = "rx_frames_512_to_1023_octets", .offset = 0x0D, }, - { .name = "rx_frames_1024_to_1526_octets", .offset = 0x0E, }, - { .name = "rx_frames_over_1526_octets", .offset = 0x0F, }, - { .name = "rx_pause", .offset = 0x10, }, - { .name = "rx_control", .offset = 0x11, }, - { .name = "rx_longs", .offset = 0x12, }, - { .name = "rx_classified_drops", .offset = 0x13, }, - { .name = "rx_red_prio_0", .offset = 0x14, }, - { .name = "rx_red_prio_1", .offset = 0x15, }, - { .name = "rx_red_prio_2", .offset = 0x16, }, - { .name = "rx_red_prio_3", .offset = 0x17, }, - { .name = "rx_red_prio_4", .offset = 0x18, }, - { .name = "rx_red_prio_5", .offset = 0x19, }, - { .name = "rx_red_prio_6", .offset = 0x1A, }, - { .name = "rx_red_prio_7", .offset = 0x1B, }, - { .name = "rx_yellow_prio_0", .offset = 0x1C, }, - { .name = "rx_yellow_prio_1", .offset = 0x1D, }, - { .name = "rx_yellow_prio_2", .offset = 0x1E, }, - { .name = "rx_yellow_prio_3", .offset = 0x1F, }, - { .name = "rx_yellow_prio_4", .offset = 0x20, }, - { .name = "rx_yellow_prio_5", .offset = 0x21, }, - { .name = "rx_yellow_prio_6", .offset = 0x22, }, - { .name = "rx_yellow_prio_7", .offset = 0x23, }, - { .name = "rx_green_prio_0", .offset = 0x24, }, - { .name = "rx_green_prio_1", .offset = 0x25, }, - { .name = "rx_green_prio_2", .offset = 0x26, }, - { .name = "rx_green_prio_3", .offset = 0x27, }, - { .name = "rx_green_prio_4", .offset = 0x28, }, - { .name = "rx_green_prio_5", .offset = 0x29, }, - { .name = "rx_green_prio_6", .offset = 0x2A, }, - { .name = "rx_green_prio_7", .offset = 0x2B, }, - { .name = "tx_octets", .offset = 0x40, }, - { .name = "tx_unicast", .offset = 0x41, }, - { .name = "tx_multicast", .offset = 0x42, }, - { .name = "tx_broadcast", .offset = 0x43, }, - { .name = "tx_collision", .offset = 0x44, }, - { .name = "tx_drops", .offset = 0x45, }, - { .name = "tx_pause", .offset = 0x46, }, - { .name = "tx_frames_below_65_octets", .offset = 0x47, }, - { .name = "tx_frames_65_to_127_octets", .offset = 0x48, }, - { .name = "tx_frames_128_255_octets", .offset = 0x49, }, - { .name = "tx_frames_256_511_octets", .offset = 0x4A, }, - { .name = "tx_frames_512_1023_octets", .offset = 0x4B, }, - { .name = "tx_frames_1024_1526_octets", .offset = 0x4C, }, - { .name = "tx_frames_over_1526_octets", .offset = 0x4D, }, - { .name = "tx_yellow_prio_0", .offset = 0x4E, }, - { .name = "tx_yellow_prio_1", .offset = 0x4F, }, - { .name = "tx_yellow_prio_2", .offset = 0x50, }, - { .name = "tx_yellow_prio_3", .offset = 0x51, }, - { .name = "tx_yellow_prio_4", .offset = 0x52, }, - { .name = "tx_yellow_prio_5", .offset = 0x53, }, - { .name = "tx_yellow_prio_6", .offset = 0x54, }, - { .name = "tx_yellow_prio_7", .offset = 0x55, }, - { .name = "tx_green_prio_0", .offset = 0x56, }, - { .name = "tx_green_prio_1", .offset = 0x57, }, - { .name = "tx_green_prio_2", .offset = 0x58, }, - { .name = "tx_green_prio_3", .offset = 0x59, }, - { .name = "tx_green_prio_4", .offset = 0x5A, }, - { .name = "tx_green_prio_5", .offset = 0x5B, }, - { .name = "tx_green_prio_6", .offset = 0x5C, }, - { .name = "tx_green_prio_7", .offset = 0x5D, }, - { .name = "tx_aged", .offset = 0x5E, }, - { .name = "drop_local", .offset = 0x80, }, - { .name = "drop_tail", .offset = 0x81, }, - { .name = "drop_yellow_prio_0", .offset = 0x82, }, - { .name = "drop_yellow_prio_1", .offset = 0x83, }, - { .name = "drop_yellow_prio_2", .offset = 0x84, }, - { .name = "drop_yellow_prio_3", .offset = 0x85, }, - { .name = "drop_yellow_prio_4", .offset = 0x86, }, - { .name = "drop_yellow_prio_5", .offset = 0x87, }, - { .name = "drop_yellow_prio_6", .offset = 0x88, }, - { .name = "drop_yellow_prio_7", .offset = 0x89, }, - { .name = "drop_green_prio_0", .offset = 0x8A, }, - { .name = "drop_green_prio_1", .offset = 0x8B, }, - { .name = "drop_green_prio_2", .offset = 0x8C, }, - { .name = "drop_green_prio_3", .offset = 0x8D, }, - { .name = "drop_green_prio_4", .offset = 0x8E, }, - { .name = "drop_green_prio_5", .offset = 0x8F, }, - { .name = "drop_green_prio_6", .offset = 0x90, }, - { .name = "drop_green_prio_7", .offset = 0x91, }, - OCELOT_STAT_END +static const struct ocelot_stat_layout ocelot_stats_layout[OCELOT_NUM_STATS] = { + [OCELOT_STAT_RX_OCTETS] = { + .name = "rx_octets", + .offset = 0x00, + }, + [OCELOT_STAT_RX_UNICAST] = { + .name = "rx_unicast", + .offset = 0x01, + }, + [OCELOT_STAT_RX_MULTICAST] = { + .name = "rx_multicast", + .offset = 0x02, + }, + [OCELOT_STAT_RX_BROADCAST] = { + .name = "rx_broadcast", + .offset = 0x03, + }, + [OCELOT_STAT_RX_SHORTS] = { + .name = "rx_shorts", + .offset = 0x04, + }, + [OCELOT_STAT_RX_FRAGMENTS] = { + .name = "rx_fragments", + .offset = 0x05, + }, + [OCELOT_STAT_RX_JABBERS] = { + .name = "rx_jabbers", + .offset = 0x06, + }, + [OCELOT_STAT_RX_CRC_ALIGN_ERRS] = { + .name = "rx_crc_align_errs", + .offset = 0x07, + }, + [OCELOT_STAT_RX_SYM_ERRS] = { + .name = "rx_sym_errs", + .offset = 0x08, + }, + [OCELOT_STAT_RX_64] = { + .name = "rx_frames_below_65_octets", + .offset = 0x09, + }, + [OCELOT_STAT_RX_65_127] = { + .name = "rx_frames_65_to_127_octets", + .offset = 0x0A, + }, + [OCELOT_STAT_RX_128_255] = { + .name = "rx_frames_128_to_255_octets", + .offset = 0x0B, + }, + [OCELOT_STAT_RX_256_511] = { + .name = "rx_frames_256_to_511_octets", + .offset = 0x0C, + }, + [OCELOT_STAT_RX_512_1023] = { + .name = "rx_frames_512_to_1023_octets", + .offset = 0x0D, + }, + [OCELOT_STAT_RX_1024_1526] = { + .name = "rx_frames_1024_to_1526_octets", + .offset = 0x0E, + }, + [OCELOT_STAT_RX_1527_MAX] = { + .name = "rx_frames_over_1526_octets", + .offset = 0x0F, + }, + [OCELOT_STAT_RX_PAUSE] = { + .name = "rx_pause", + .offset = 0x10, + }, + [OCELOT_STAT_RX_CONTROL] = { + .name = "rx_control", + .offset = 0x11, + }, + [OCELOT_STAT_RX_LONGS] = { + .name = "rx_longs", + .offset = 0x12, + }, + [OCELOT_STAT_RX_CLASSIFIED_DROPS] = { + .name = "rx_classified_drops", + .offset = 0x13, + }, + [OCELOT_STAT_RX_RED_PRIO_0] = { + .name = "rx_red_prio_0", + .offset = 0x14, + }, + [OCELOT_STAT_RX_RED_PRIO_1] = { + .name = "rx_red_prio_1", + .offset = 0x15, + }, + [OCELOT_STAT_RX_RED_PRIO_2] = { + .name = "rx_red_prio_2", + .offset = 0x16, + }, + [OCELOT_STAT_RX_RED_PRIO_3] = { + .name = "rx_red_prio_3", + .offset = 0x17, + }, + [OCELOT_STAT_RX_RED_PRIO_4] = { + .name = "rx_red_prio_4", + .offset = 0x18, + }, + [OCELOT_STAT_RX_RED_PRIO_5] = { + .name = "rx_red_prio_5", + .offset = 0x19, + }, + [OCELOT_STAT_RX_RED_PRIO_6] = { + .name = "rx_red_prio_6", + .offset = 0x1A, + }, + [OCELOT_STAT_RX_RED_PRIO_7] = { + .name = "rx_red_prio_7", + .offset = 0x1B, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_0] = { + .name = "rx_yellow_prio_0", + .offset = 0x1C, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_1] = { + .name = "rx_yellow_prio_1", + .offset = 0x1D, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_2] = { + .name = "rx_yellow_prio_2", + .offset = 0x1E, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_3] = { + .name = "rx_yellow_prio_3", + .offset = 0x1F, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_4] = { + .name = "rx_yellow_prio_4", + .offset = 0x20, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_5] = { + .name = "rx_yellow_prio_5", + .offset = 0x21, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_6] = { + .name = "rx_yellow_prio_6", + .offset = 0x22, + }, + [OCELOT_STAT_RX_YELLOW_PRIO_7] = { + .name = "rx_yellow_prio_7", + .offset = 0x23, + }, + [OCELOT_STAT_RX_GREEN_PRIO_0] = { + .name = "rx_green_prio_0", + .offset = 0x24, + }, + [OCELOT_STAT_RX_GREEN_PRIO_1] = { + .name = "rx_green_prio_1", + .offset = 0x25, + }, + [OCELOT_STAT_RX_GREEN_PRIO_2] = { + .name = "rx_green_prio_2", + .offset = 0x26, + }, + [OCELOT_STAT_RX_GREEN_PRIO_3] = { + .name = "rx_green_prio_3", + .offset = 0x27, + }, + [OCELOT_STAT_RX_GREEN_PRIO_4] = { + .name = "rx_green_prio_4", + .offset = 0x28, + }, + [OCELOT_STAT_RX_GREEN_PRIO_5] = { + .name = "rx_green_prio_5", + .offset = 0x29, + }, + [OCELOT_STAT_RX_GREEN_PRIO_6] = { + .name = "rx_green_prio_6", + .offset = 0x2A, + }, + [OCELOT_STAT_RX_GREEN_PRIO_7] = { + .name = "rx_green_prio_7", + .offset = 0x2B, + }, + [OCELOT_STAT_TX_OCTETS] = { + .name = "tx_octets", + .offset = 0x40, + }, + [OCELOT_STAT_TX_UNICAST] = { + .name = "tx_unicast", + .offset = 0x41, + }, + [OCELOT_STAT_TX_MULTICAST] = { + .name = "tx_multicast", + .offset = 0x42, + }, + [OCELOT_STAT_TX_BROADCAST] = { + .name = "tx_broadcast", + .offset = 0x43, + }, + [OCELOT_STAT_TX_COLLISION] = { + .name = "tx_collision", + .offset = 0x44, + }, + [OCELOT_STAT_TX_DROPS] = { + .name = "tx_drops", + .offset = 0x45, + }, + [OCELOT_STAT_TX_PAUSE] = { + .name = "tx_pause", + .offset = 0x46, + }, + [OCELOT_STAT_TX_64] = { + .name = "tx_frames_below_65_octets", + .offset = 0x47, + }, + [OCELOT_STAT_TX_65_127] = { + .name = "tx_frames_65_to_127_octets", + .offset = 0x48, + }, + [OCELOT_STAT_TX_128_255] = { + .name = "tx_frames_128_255_octets", + .offset = 0x49, + }, + [OCELOT_STAT_TX_256_511] = { + .name = "tx_frames_256_511_octets", + .offset = 0x4A, + }, + [OCELOT_STAT_TX_512_1023] = { + .name = "tx_frames_512_1023_octets", + .offset = 0x4B, + }, + [OCELOT_STAT_TX_1024_1526] = { + .name = "tx_frames_1024_1526_octets", + .offset = 0x4C, + }, + [OCELOT_STAT_TX_1527_MAX] = { + .name = "tx_frames_over_1526_octets", + .offset = 0x4D, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_0] = { + .name = "tx_yellow_prio_0", + .offset = 0x4E, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_1] = { + .name = "tx_yellow_prio_1", + .offset = 0x4F, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_2] = { + .name = "tx_yellow_prio_2", + .offset = 0x50, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_3] = { + .name = "tx_yellow_prio_3", + .offset = 0x51, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_4] = { + .name = "tx_yellow_prio_4", + .offset = 0x52, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_5] = { + .name = "tx_yellow_prio_5", + .offset = 0x53, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_6] = { + .name = "tx_yellow_prio_6", + .offset = 0x54, + }, + [OCELOT_STAT_TX_YELLOW_PRIO_7] = { + .name = "tx_yellow_prio_7", + .offset = 0x55, + }, + [OCELOT_STAT_TX_GREEN_PRIO_0] = { + .name = "tx_green_prio_0", + .offset = 0x56, + }, + [OCELOT_STAT_TX_GREEN_PRIO_1] = { + .name = "tx_green_prio_1", + .offset = 0x57, + }, + [OCELOT_STAT_TX_GREEN_PRIO_2] = { + .name = "tx_green_prio_2", + .offset = 0x58, + }, + [OCELOT_STAT_TX_GREEN_PRIO_3] = { + .name = "tx_green_prio_3", + .offset = 0x59, + }, + [OCELOT_STAT_TX_GREEN_PRIO_4] = { + .name = "tx_green_prio_4", + .offset = 0x5A, + }, + [OCELOT_STAT_TX_GREEN_PRIO_5] = { + .name = "tx_green_prio_5", + .offset = 0x5B, + }, + [OCELOT_STAT_TX_GREEN_PRIO_6] = { + .name = "tx_green_prio_6", + .offset = 0x5C, + }, + [OCELOT_STAT_TX_GREEN_PRIO_7] = { + .name = "tx_green_prio_7", + .offset = 0x5D, + }, + [OCELOT_STAT_TX_AGED] = { + .name = "tx_aged", + .offset = 0x5E, + }, + [OCELOT_STAT_DROP_LOCAL] = { + .name = "drop_local", + .offset = 0x80, + }, + [OCELOT_STAT_DROP_TAIL] = { + .name = "drop_tail", + .offset = 0x81, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_0] = { + .name = "drop_yellow_prio_0", + .offset = 0x82, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_1] = { + .name = "drop_yellow_prio_1", + .offset = 0x83, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_2] = { + .name = "drop_yellow_prio_2", + .offset = 0x84, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_3] = { + .name = "drop_yellow_prio_3", + .offset = 0x85, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_4] = { + .name = "drop_yellow_prio_4", + .offset = 0x86, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_5] = { + .name = "drop_yellow_prio_5", + .offset = 0x87, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_6] = { + .name = "drop_yellow_prio_6", + .offset = 0x88, + }, + [OCELOT_STAT_DROP_YELLOW_PRIO_7] = { + .name = "drop_yellow_prio_7", + .offset = 0x89, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_0] = { + .name = "drop_green_prio_0", + .offset = 0x8A, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_1] = { + .name = "drop_green_prio_1", + .offset = 0x8B, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_2] = { + .name = "drop_green_prio_2", + .offset = 0x8C, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_3] = { + .name = "drop_green_prio_3", + .offset = 0x8D, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_4] = { + .name = "drop_green_prio_4", + .offset = 0x8E, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_5] = { + .name = "drop_green_prio_5", + .offset = 0x8F, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_6] = { + .name = "drop_green_prio_6", + .offset = 0x90, + }, + [OCELOT_STAT_DROP_GREEN_PRIO_7] = { + .name = "drop_green_prio_7", + .offset = 0x91, + }, }; static void ocelot_pll5_init(struct ocelot *ocelot) --- linux-5.19.0.orig/drivers/net/ethernet/mscc/vsc7514_regs.c +++ linux-5.19.0/drivers/net/ethernet/mscc/vsc7514_regs.c @@ -180,13 +180,14 @@ REG(SYS_COUNT_RX_64, 0x000024), REG(SYS_COUNT_RX_65_127, 0x000028), REG(SYS_COUNT_RX_128_255, 0x00002c), - REG(SYS_COUNT_RX_256_1023, 0x000030), - REG(SYS_COUNT_RX_1024_1526, 0x000034), - REG(SYS_COUNT_RX_1527_MAX, 0x000038), - REG(SYS_COUNT_RX_PAUSE, 0x00003c), - REG(SYS_COUNT_RX_CONTROL, 0x000040), - REG(SYS_COUNT_RX_LONGS, 0x000044), - REG(SYS_COUNT_RX_CLASSIFIED_DROPS, 0x000048), + REG(SYS_COUNT_RX_256_511, 0x000030), + REG(SYS_COUNT_RX_512_1023, 0x000034), + REG(SYS_COUNT_RX_1024_1526, 0x000038), + REG(SYS_COUNT_RX_1527_MAX, 0x00003c), + REG(SYS_COUNT_RX_PAUSE, 0x000040), + REG(SYS_COUNT_RX_CONTROL, 0x000044), + REG(SYS_COUNT_RX_LONGS, 0x000048), + REG(SYS_COUNT_RX_CLASSIFIED_DROPS, 0x00004c), REG(SYS_COUNT_TX_OCTETS, 0x000100), REG(SYS_COUNT_TX_UNICAST, 0x000104), REG(SYS_COUNT_TX_MULTICAST, 0x000108), @@ -196,11 +197,12 @@ REG(SYS_COUNT_TX_PAUSE, 0x000118), REG(SYS_COUNT_TX_64, 0x00011c), REG(SYS_COUNT_TX_65_127, 0x000120), - REG(SYS_COUNT_TX_128_511, 0x000124), - REG(SYS_COUNT_TX_512_1023, 0x000128), - REG(SYS_COUNT_TX_1024_1526, 0x00012c), - REG(SYS_COUNT_TX_1527_MAX, 0x000130), - REG(SYS_COUNT_TX_AGING, 0x000170), + REG(SYS_COUNT_TX_128_255, 0x000124), + REG(SYS_COUNT_TX_256_511, 0x000128), + REG(SYS_COUNT_TX_512_1023, 0x00012c), + REG(SYS_COUNT_TX_1024_1526, 0x000130), + REG(SYS_COUNT_TX_1527_MAX, 0x000134), + REG(SYS_COUNT_TX_AGING, 0x000178), REG(SYS_RESET_CFG, 0x000508), REG(SYS_CMID, 0x00050c), REG(SYS_VLAN_ETYPE_CFG, 0x000510), --- linux-5.19.0.orig/drivers/net/ethernet/myricom/myri10ge/myri10ge.c +++ linux-5.19.0/drivers/net/ethernet/myricom/myri10ge/myri10ge.c @@ -3913,6 +3913,7 @@ myri10ge_free_slices(mgp); abort_with_firmware: + kfree(mgp->msix_vectors); myri10ge_dummy_rdma(mgp, 0); abort_with_ioremap: --- linux-5.19.0.orig/drivers/net/ethernet/neterion/s2io.c +++ linux-5.19.0/drivers/net/ethernet/neterion/s2io.c @@ -2386,7 +2386,7 @@ skb = s2io_txdl_getskb(&mac_control->fifos[i], txdp, j); if (skb) { swstats->mem_freed += skb->truesize; - dev_kfree_skb(skb); + dev_kfree_skb_irq(skb); cnt++; } } @@ -7128,9 +7128,8 @@ if (ret) { DBG_PRINT(ERR_DBG, "%s: Out of memory in Open\n", dev->name); - s2io_reset(sp); - free_rx_buffers(sp); - return -ENOMEM; + ret = -ENOMEM; + goto err_fill_buff; } DBG_PRINT(INFO_DBG, "Buf in ring:%d is %d:\n", i, ring->rx_bufs_left); @@ -7168,18 +7167,16 @@ /* Enable Rx Traffic and interrupts on the NIC */ if (start_nic(sp)) { DBG_PRINT(ERR_DBG, "%s: Starting NIC failed\n", dev->name); - s2io_reset(sp); - free_rx_buffers(sp); - return -ENODEV; + ret = -ENODEV; + goto err_out; } /* Add interrupt service routine */ if (s2io_add_isr(sp) != 0) { if (sp->config.intr_type == MSI_X) s2io_rem_isr(sp); - s2io_reset(sp); - free_rx_buffers(sp); - return -ENODEV; + ret = -ENODEV; + goto err_out; } timer_setup(&sp->alarm_timer, s2io_alarm_handle, 0); @@ -7199,6 +7196,20 @@ } return 0; + +err_out: + if (config->napi) { + if (config->intr_type == MSI_X) { + for (i = 0; i < sp->config.rx_ring_num; i++) + napi_disable(&sp->mac_control.rings[i].napi); + } else { + napi_disable(&sp->napi); + } + } +err_fill_buff: + s2io_reset(sp); + free_rx_buffers(sp); + return ret; } /** --- linux-5.19.0.orig/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ linux-5.19.0/drivers/net/ethernet/neterion/vxge/vxge-main.c @@ -4174,6 +4174,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; @@ -4216,9 +4219,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 @@ -4806,3 +4809,5 @@ } module_init(vxge_starter); module_exit(vxge_closer); +MODULE_FIRMWARE(VXGE_PXE_FIRMWARE); +MODULE_FIRMWARE(VXGE_FIRMWARE); --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/flower/qos_conf.c @@ -127,10 +127,11 @@ return -EOPNOTSUPP; } - if (act->police.notexceed.act_id != FLOW_ACTION_PIPE && + if (act->police.notexceed.act_id != FLOW_ACTION_CONTINUE && + act->police.notexceed.act_id != FLOW_ACTION_PIPE && act->police.notexceed.act_id != FLOW_ACTION_ACCEPT) { NL_SET_ERR_MSG_MOD(extack, - "Offload not supported when conform action is not pipe or ok"); + "Offload not supported when conform action is not continue, pipe or ok"); return -EOPNOTSUPP; } --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/nfdk/dp.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/nfdk/dp.c @@ -297,7 +297,7 @@ dma_len = skb_headlen(skb); if (skb_is_gso(skb)) type = NFDK_DESC_TX_TYPE_TSO; - else if (!nr_frags && dma_len < NFDK_TX_MAX_DATA_PER_HEAD) + else if (!nr_frags && dma_len <= NFDK_TX_MAX_DATA_PER_HEAD) type = NFDK_DESC_TX_TYPE_SIMPLE; else type = NFDK_DESC_TX_TYPE_GATHER; @@ -931,7 +931,7 @@ dma_len = pkt_len; dma_addr = rxbuf->dma_addr + dma_off; - if (dma_len < NFDK_TX_MAX_DATA_PER_HEAD) + if (dma_len <= NFDK_TX_MAX_DATA_PER_HEAD) type = NFDK_DESC_TX_TYPE_SIMPLE; else type = NFDK_DESC_TX_TYPE_GATHER; @@ -1327,7 +1327,7 @@ txbuf = &tx_ring->ktxbufs[wr_idx]; dma_len = skb_headlen(skb); - if (dma_len < NFDK_TX_MAX_DATA_PER_HEAD) + if (dma_len <= NFDK_TX_MAX_DATA_PER_HEAD) type = NFDK_DESC_TX_TYPE_SIMPLE; else type = NFDK_DESC_TX_TYPE_GATHER; --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/nfp_devlink.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/nfp_devlink.c @@ -341,7 +341,7 @@ return ret; attrs.split = eth_port.is_split; - attrs.splittable = !attrs.split; + attrs.splittable = eth_port.port_lanes > 1 && !attrs.split; attrs.lanes = eth_port.port_lanes; attrs.flavour = DEVLINK_PORT_FLAVOUR_PHYSICAL; attrs.phys.port_number = eth_port.label_port; --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -1629,21 +1629,21 @@ unsigned int start; do { - start = u64_stats_fetch_begin(&r_vec->rx_sync); + start = u64_stats_fetch_begin_irq(&r_vec->rx_sync); data[0] = r_vec->rx_pkts; data[1] = r_vec->rx_bytes; data[2] = r_vec->rx_drops; - } while (u64_stats_fetch_retry(&r_vec->rx_sync, start)); + } while (u64_stats_fetch_retry_irq(&r_vec->rx_sync, start)); stats->rx_packets += data[0]; stats->rx_bytes += data[1]; stats->rx_dropped += data[2]; do { - start = u64_stats_fetch_begin(&r_vec->tx_sync); + start = u64_stats_fetch_begin_irq(&r_vec->tx_sync); data[0] = r_vec->tx_pkts; data[1] = r_vec->tx_bytes; data[2] = r_vec->tx_errors; - } while (u64_stats_fetch_retry(&r_vec->tx_sync, start)); + } while (u64_stats_fetch_retry_irq(&r_vec->tx_sync, start)); stats->tx_packets += data[0]; stats->tx_bytes += data[1]; stats->tx_errors += data[2]; --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/nfp_net_ethtool.c @@ -494,7 +494,7 @@ unsigned int start; do { - start = u64_stats_fetch_begin(&nn->r_vecs[i].rx_sync); + start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].rx_sync); data[0] = nn->r_vecs[i].rx_pkts; tmp[0] = nn->r_vecs[i].hw_csum_rx_ok; tmp[1] = nn->r_vecs[i].hw_csum_rx_inner_ok; @@ -502,10 +502,10 @@ tmp[3] = nn->r_vecs[i].hw_csum_rx_error; tmp[4] = nn->r_vecs[i].rx_replace_buf_alloc_fail; tmp[5] = nn->r_vecs[i].hw_tls_rx; - } while (u64_stats_fetch_retry(&nn->r_vecs[i].rx_sync, start)); + } while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].rx_sync, start)); do { - start = u64_stats_fetch_begin(&nn->r_vecs[i].tx_sync); + start = u64_stats_fetch_begin_irq(&nn->r_vecs[i].tx_sync); data[1] = nn->r_vecs[i].tx_pkts; data[2] = nn->r_vecs[i].tx_busy; tmp[6] = nn->r_vecs[i].hw_csum_tx; @@ -515,7 +515,7 @@ tmp[10] = nn->r_vecs[i].hw_tls_tx; tmp[11] = nn->r_vecs[i].tls_tx_fallback; tmp[12] = nn->r_vecs[i].tls_tx_no_fallback; - } while (u64_stats_fetch_retry(&nn->r_vecs[i].tx_sync, start)); + } while (u64_stats_fetch_retry_irq(&nn->r_vecs[i].tx_sync, start)); data += NN_RVEC_PER_Q_STATS; @@ -1230,6 +1230,11 @@ u8 data; port = nfp_port_from_netdev(netdev); + if (!port) + return -EOPNOTSUPP; + + /* update port state to get latest interface */ + set_bit(NFP_PORT_CHANGED, &port->flags); eth_port = nfp_port_get_eth_port(port); if (!eth_port) return -EOPNOTSUPP; @@ -1273,15 +1278,15 @@ if (data < 0x3) { modinfo->type = ETH_MODULE_SFF_8436; - modinfo->eeprom_len = ETH_MODULE_SFF_8436_LEN; + modinfo->eeprom_len = ETH_MODULE_SFF_8436_MAX_LEN; } else { modinfo->type = ETH_MODULE_SFF_8636; - modinfo->eeprom_len = ETH_MODULE_SFF_8636_LEN; + modinfo->eeprom_len = ETH_MODULE_SFF_8636_MAX_LEN; } break; case NFP_INTERFACE_QSFP28: modinfo->type = ETH_MODULE_SFF_8636; - modinfo->eeprom_len = ETH_MODULE_SFF_8636_LEN; + modinfo->eeprom_len = ETH_MODULE_SFF_8636_MAX_LEN; break; default: netdev_err(netdev, "Unsupported module 0x%x detected\n", --- linux-5.19.0.orig/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c +++ linux-5.19.0/drivers/net/ethernet/netronome/nfp/nfpcore/nfp_cppcore.c @@ -874,7 +874,6 @@ } /* Adjust the start address to be cache size aligned */ - cache->id = id; cache->addr = addr & ~(u64)(cache->size - 1); /* Re-init to the new ID and address */ @@ -894,6 +893,8 @@ return NULL; } + cache->id = id; + exit: /* Adjust offset */ *offset = addr - cache->addr; --- linux-5.19.0.orig/drivers/net/ethernet/ni/nixge.c +++ linux-5.19.0/drivers/net/ethernet/ni/nixge.c @@ -249,25 +249,26 @@ struct sk_buff *skb; int i; - for (i = 0; i < RX_BD_NUM; i++) { - phys_addr = nixge_hw_dma_bd_get_addr(&priv->rx_bd_v[i], - phys); - - dma_unmap_single(ndev->dev.parent, phys_addr, - NIXGE_MAX_JUMBO_FRAME_SIZE, - DMA_FROM_DEVICE); - - skb = (struct sk_buff *)(uintptr_t) - nixge_hw_dma_bd_get_addr(&priv->rx_bd_v[i], - sw_id_offset); - dev_kfree_skb(skb); - } + if (priv->rx_bd_v) { + for (i = 0; i < RX_BD_NUM; i++) { + phys_addr = nixge_hw_dma_bd_get_addr(&priv->rx_bd_v[i], + phys); + + dma_unmap_single(ndev->dev.parent, phys_addr, + NIXGE_MAX_JUMBO_FRAME_SIZE, + DMA_FROM_DEVICE); + + skb = (struct sk_buff *)(uintptr_t) + nixge_hw_dma_bd_get_addr(&priv->rx_bd_v[i], + sw_id_offset); + dev_kfree_skb(skb); + } - if (priv->rx_bd_v) dma_free_coherent(ndev->dev.parent, sizeof(*priv->rx_bd_v) * RX_BD_NUM, priv->rx_bd_v, priv->rx_bd_p); + } if (priv->tx_skb) devm_kfree(ndev->dev.parent, priv->tx_skb); @@ -900,6 +901,7 @@ err_rx_irq: free_irq(priv->tx_irq, ndev); err_tx_irq: + napi_disable(&priv->napi); phy_stop(phy); phy_disconnect(phy); tasklet_kill(&priv->dma_err_tasklet); --- linux-5.19.0.orig/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c +++ linux-5.19.0/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c @@ -1143,6 +1143,7 @@ buffer_info->dma = 0; buffer_info->time_stamp = 0; tx_ring->next_to_use = ring_num; + dev_kfree_skb_any(skb); return; } buffer_info->mapped = true; @@ -2459,6 +2460,7 @@ unregister_netdev(netdev); pch_gbe_phy_hw_reset(&adapter->hw); + pci_dev_put(adapter->ptp_pdev); free_netdev(netdev); } @@ -2534,7 +2536,7 @@ /* setup the private structure */ ret = pch_gbe_sw_init(adapter); if (ret) - goto err_free_netdev; + goto err_put_dev; /* Initialize PHY */ ret = pch_gbe_init_phy(adapter); @@ -2592,6 +2594,8 @@ err_free_adapter: pch_gbe_phy_hw_reset(&adapter->hw); +err_put_dev: + pci_dev_put(adapter->ptp_pdev); err_free_netdev: free_netdev(netdev); return ret; --- linux-5.19.0.orig/drivers/net/ethernet/pensando/ionic/ionic_lif.c +++ linux-5.19.0/drivers/net/ethernet/pensando/ionic/ionic_lif.c @@ -1437,7 +1437,7 @@ if ((old_hw_features ^ lif->hw_features) & IONIC_ETH_HW_RX_HASH) ionic_lif_rss_config(lif, lif->rss_types, NULL, NULL); - if ((vlan_flags & features) && + if ((vlan_flags & le64_to_cpu(ctx.cmd.lif_setattr.features)) && !(vlan_flags & le64_to_cpu(ctx.comp.lif_setattr.features))) dev_info_once(lif->ionic->dev, "NIC is not supporting vlan offload, likely in SmartNIC mode\n"); @@ -1564,8 +1564,67 @@ return err; } +static int ionic_set_attr_mac(struct ionic_lif *lif, u8 *mac) +{ + struct ionic_admin_ctx ctx = { + .work = COMPLETION_INITIALIZER_ONSTACK(ctx.work), + .cmd.lif_setattr = { + .opcode = IONIC_CMD_LIF_SETATTR, + .index = cpu_to_le16(lif->index), + .attr = IONIC_LIF_ATTR_MAC, + }, + }; + + ether_addr_copy(ctx.cmd.lif_setattr.mac, mac); + return ionic_adminq_post_wait(lif, &ctx); +} + +static int ionic_get_attr_mac(struct ionic_lif *lif, u8 *mac_addr) +{ + struct ionic_admin_ctx ctx = { + .work = COMPLETION_INITIALIZER_ONSTACK(ctx.work), + .cmd.lif_getattr = { + .opcode = IONIC_CMD_LIF_GETATTR, + .index = cpu_to_le16(lif->index), + .attr = IONIC_LIF_ATTR_MAC, + }, + }; + int err; + + err = ionic_adminq_post_wait(lif, &ctx); + if (err) + return err; + + ether_addr_copy(mac_addr, ctx.comp.lif_getattr.mac); + return 0; +} + +static int ionic_program_mac(struct ionic_lif *lif, u8 *mac) +{ + u8 get_mac[ETH_ALEN]; + int err; + + err = ionic_set_attr_mac(lif, mac); + if (err) + return err; + + err = ionic_get_attr_mac(lif, get_mac); + if (err) + return err; + + /* To deal with older firmware that silently ignores the set attr mac: + * doesn't actually change the mac and doesn't return an error, so we + * do the get attr to verify whether or not the set actually happened + */ + if (!ether_addr_equal(get_mac, mac)) + return 1; + + return 0; +} + static int ionic_set_mac_address(struct net_device *netdev, void *sa) { + struct ionic_lif *lif = netdev_priv(netdev); struct sockaddr *addr = sa; u8 *mac; int err; @@ -1574,6 +1633,14 @@ if (ether_addr_equal(netdev->dev_addr, mac)) return 0; + err = ionic_program_mac(lif, mac); + if (err < 0) + return err; + + if (err > 0) + netdev_dbg(netdev, "%s: SET and GET ATTR Mac are not equal-due to old FW running\n", + __func__); + err = eth_prepare_mac_addr_change(netdev, addr); if (err) return err; @@ -2753,11 +2820,15 @@ * than the full array, but leave the qcq shells in place */ for (i = lif->nxqs; i < lif->ionic->ntxqs_per_lif; i++) { - lif->txqcqs[i]->flags &= ~IONIC_QCQ_F_INTR; - ionic_qcq_free(lif, lif->txqcqs[i]); + if (lif->txqcqs && lif->txqcqs[i]) { + lif->txqcqs[i]->flags &= ~IONIC_QCQ_F_INTR; + ionic_qcq_free(lif, lif->txqcqs[i]); + } - lif->rxqcqs[i]->flags &= ~IONIC_QCQ_F_INTR; - ionic_qcq_free(lif, lif->rxqcqs[i]); + if (lif->rxqcqs && lif->rxqcqs[i]) { + lif->rxqcqs[i]->flags &= ~IONIC_QCQ_F_INTR; + ionic_qcq_free(lif, lif->rxqcqs[i]); + } } if (err) @@ -2963,6 +3034,9 @@ mutex_lock(&lif->queue_lock); + if (test_and_clear_bit(IONIC_LIF_F_BROKEN, lif->state)) + dev_info(ionic->dev, "FW Up: clearing broken state\n"); + err = ionic_qcqs_alloc(lif); if (err) goto err_unlock; @@ -3169,6 +3243,7 @@ .attr = IONIC_LIF_ATTR_MAC, }, }; + u8 mac_address[ETH_ALEN]; struct sockaddr addr; int err; @@ -3177,8 +3252,23 @@ return err; netdev_dbg(lif->netdev, "found initial MAC addr %pM\n", ctx.comp.lif_getattr.mac); - if (is_zero_ether_addr(ctx.comp.lif_getattr.mac)) - return 0; + ether_addr_copy(mac_address, ctx.comp.lif_getattr.mac); + + if (is_zero_ether_addr(mac_address)) { + eth_hw_addr_random(netdev); + netdev_dbg(netdev, "Random Mac generated: %pM\n", netdev->dev_addr); + ether_addr_copy(mac_address, netdev->dev_addr); + + err = ionic_program_mac(lif, mac_address); + if (err < 0) + return err; + + if (err > 0) { + netdev_dbg(netdev, "%s:SET/GET ATTR Mac are not same-due to old FW running\n", + __func__); + return 0; + } + } if (!is_zero_ether_addr(netdev->dev_addr)) { /* If the netdev mac is non-zero and doesn't match the default @@ -3186,12 +3276,11 @@ * likely here again after a fw-upgrade reset. We need to be * sure the netdev mac is in our filter list. */ - if (!ether_addr_equal(ctx.comp.lif_getattr.mac, - netdev->dev_addr)) + if (!ether_addr_equal(mac_address, netdev->dev_addr)) ionic_lif_addr_add(lif, netdev->dev_addr); } else { /* Update the netdev mac with the device's mac */ - memcpy(addr.sa_data, ctx.comp.lif_getattr.mac, netdev->addr_len); + ether_addr_copy(addr.sa_data, mac_address); addr.sa_family = AF_INET; err = eth_prepare_mac_addr_change(netdev, &addr); if (err) { --- linux-5.19.0.orig/drivers/net/ethernet/pensando/ionic/ionic_main.c +++ linux-5.19.0/drivers/net/ethernet/pensando/ionic/ionic_main.c @@ -474,8 +474,8 @@ ionic_opcode_to_str(opcode), opcode, ionic_error_to_str(err), err); - msleep(1000); iowrite32(0, &idev->dev_cmd_regs->done); + msleep(1000); iowrite32(1, &idev->dev_cmd_regs->doorbell); goto try_again; } @@ -488,6 +488,8 @@ return ionic_error_to_errno(err); } + ionic_dev_cmd_clean(ionic); + return 0; } @@ -685,8 +687,14 @@ static int __init ionic_init_module(void) { + int ret; + ionic_debugfs_create(); - return ionic_bus_register_driver(); + ret = ionic_bus_register_driver(); + if (ret) + ionic_debugfs_destroy(); + + return ret; } static void __exit ionic_cleanup_module(void) --- linux-5.19.0.orig/drivers/net/ethernet/qlogic/qed/qed_debug.c +++ linux-5.19.0/drivers/net/ethernet/qlogic/qed/qed_debug.c @@ -1972,9 +1972,10 @@ u8 split_id) { struct dbg_tools_data *dev_data = &p_hwfn->dbg_info; - u8 port_id = 0, pf_id = 0, vf_id = 0, fid = 0; + u8 port_id = 0, pf_id = 0, vf_id = 0; bool read_using_dmae = false; u32 thresh; + u16 fid; if (!dump) return len; --- linux-5.19.0.orig/drivers/net/ethernet/qlogic/qla3xxx.c +++ linux-5.19.0/drivers/net/ethernet/qlogic/qla3xxx.c @@ -2471,6 +2471,7 @@ skb_shinfo(skb)->nr_frags); if (tx_cb->seg_count == -1) { netdev_err(ndev, "%s: invalid segment count!\n", __func__); + dev_kfree_skb_any(skb); return NETDEV_TX_OK; } --- linux-5.19.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c +++ linux-5.19.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c @@ -2991,7 +2991,7 @@ QLCWRX(adapter->ahw, QLC_83XX_RECOVER_DRV_LOCK, val); dev_info(&adapter->pdev->dev, "%s: lock recovery initiated\n", __func__); - msleep(QLC_83XX_DRV_LOCK_RECOVERY_DELAY); + mdelay(QLC_83XX_DRV_LOCK_RECOVERY_DELAY); val = QLCRDX(adapter->ahw, QLC_83XX_RECOVER_DRV_LOCK); id = ((val >> 2) & 0xF); if (id == adapter->portnum) { @@ -3027,7 +3027,7 @@ if (status) break; - msleep(QLC_83XX_DRV_LOCK_WAIT_DELAY); + mdelay(QLC_83XX_DRV_LOCK_WAIT_DELAY); i++; if (i == 1) --- linux-5.19.0.orig/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c +++ linux-5.19.0/drivers/net/ethernet/qlogic/qlcnic/qlcnic_sriov_common.c @@ -221,6 +221,8 @@ return 0; qlcnic_destroy_async_wq: + while (i--) + kfree(sriov->vf_info[i].vp); destroy_workqueue(bc->bc_async_wq); qlcnic_destroy_trans_wq: --- linux-5.19.0.orig/drivers/net/ethernet/rdc/r6040.c +++ linux-5.19.0/drivers/net/ethernet/rdc/r6040.c @@ -1159,10 +1159,12 @@ err = register_netdev(dev); if (err) { dev_err(&pdev->dev, "Failed to register net device\n"); - goto err_out_mdio_unregister; + goto err_out_phy_disconnect; } return 0; +err_out_phy_disconnect: + phy_disconnect(dev->phydev); err_out_mdio_unregister: mdiobus_unregister(lp->mii_bus); err_out_mdio: @@ -1186,6 +1188,7 @@ struct r6040_private *lp = netdev_priv(dev); unregister_netdev(dev); + phy_disconnect(dev->phydev); mdiobus_unregister(lp->mii_bus); mdiobus_free(lp->mii_bus); netif_napi_del(&lp->napi); --- linux-5.19.0.orig/drivers/net/ethernet/realtek/r8169_main.c +++ linux-5.19.0/drivers/net/ethernet/realtek/r8169_main.c @@ -3533,6 +3533,7 @@ rtl_eri_write(tp, 0x1b0, ERIAR_MASK_0011, 0x0000); rtl_pcie_state_l2l3_disable(tp); + rtl_hw_aspm_clkreq_enable(tp, true); } static void rtl_hw_start_8106(struct rtl8169_private *tp) --- linux-5.19.0.orig/drivers/net/ethernet/renesas/ravb_main.c +++ linux-5.19.0/drivers/net/ethernet/renesas/ravb_main.c @@ -835,7 +835,7 @@ napi_gro_receive(&priv->napi[q], priv->rx_1st_skb); stats->rx_packets++; - stats->rx_bytes += priv->rx_1st_skb->len; + stats->rx_bytes += pkt_len; break; } } @@ -1449,6 +1449,8 @@ phy_remove_link_mode(phydev, ETHTOOL_LINK_MODE_100baseT_Half_BIT); } + /* Indicate that the MAC is responsible for managing PHY PM */ + phydev->mac_managed_pm = true; phy_attached_info(phydev); return 0; @@ -3011,6 +3013,7 @@ ret = ravb_open(ndev); if (ret < 0) return ret; + ravb_set_rx_mode(ndev); netif_device_attach(ndev); } --- linux-5.19.0.orig/drivers/net/ethernet/renesas/sh_eth.c +++ linux-5.19.0/drivers/net/ethernet/renesas/sh_eth.c @@ -2029,6 +2029,8 @@ if (mdp->cd->register_type != SH_ETH_REG_GIGABIT) phy_set_max_speed(phydev, SPEED_100); + /* Indicate that the MAC is responsible for managing PHY PM */ + phydev->mac_managed_pm = true; phy_attached_info(phydev); return 0; --- linux-5.19.0.orig/drivers/net/ethernet/rocker/rocker_ofdpa.c +++ linux-5.19.0/drivers/net/ethernet/rocker/rocker_ofdpa.c @@ -1273,7 +1273,7 @@ bool removing; int err = 0; - entry = kzalloc(sizeof(*entry), GFP_KERNEL); + entry = kzalloc(sizeof(*entry), GFP_ATOMIC); if (!entry) return -ENOMEM; --- linux-5.19.0.orig/drivers/net/ethernet/sfc/ef10.c +++ linux-5.19.0/drivers/net/ethernet/sfc/ef10.c @@ -3271,6 +3271,30 @@ bool was_enabled = efx->port_enabled; int rc; +#ifdef CONFIG_SFC_SRIOV + /* If this function is a VF and we have access to the parent PF, + * then use the PF control path to attempt to change the VF MAC address. + */ + if (efx->pci_dev->is_virtfn && efx->pci_dev->physfn) { + struct efx_nic *efx_pf = pci_get_drvdata(efx->pci_dev->physfn); + struct efx_ef10_nic_data *nic_data = efx->nic_data; + u8 mac[ETH_ALEN]; + + /* net_dev->dev_addr can be zeroed by efx_net_stop in + * efx_ef10_sriov_set_vf_mac, so pass in a copy. + */ + ether_addr_copy(mac, efx->net_dev->dev_addr); + + rc = efx_ef10_sriov_set_vf_mac(efx_pf, nic_data->vf_index, mac); + if (!rc) + return 0; + + netif_dbg(efx, drv, efx->net_dev, + "Updating VF mac via PF failed (%d), setting directly\n", + rc); + } +#endif + efx_device_detach_sync(efx); efx_net_stop(efx->net_dev); @@ -3293,40 +3317,6 @@ efx_net_open(efx->net_dev); efx_device_attach_if_not_resetting(efx); -#ifdef CONFIG_SFC_SRIOV - if (efx->pci_dev->is_virtfn && efx->pci_dev->physfn) { - struct efx_ef10_nic_data *nic_data = efx->nic_data; - struct pci_dev *pci_dev_pf = efx->pci_dev->physfn; - - if (rc == -EPERM) { - struct efx_nic *efx_pf; - - /* Switch to PF and change MAC address on vport */ - efx_pf = pci_get_drvdata(pci_dev_pf); - - rc = efx_ef10_sriov_set_vf_mac(efx_pf, - nic_data->vf_index, - efx->net_dev->dev_addr); - } else if (!rc) { - struct efx_nic *efx_pf = pci_get_drvdata(pci_dev_pf); - struct efx_ef10_nic_data *nic_data = efx_pf->nic_data; - unsigned int i; - - /* MAC address successfully changed by VF (with MAC - * spoofing) so update the parent PF if possible. - */ - for (i = 0; i < efx_pf->vf_count; ++i) { - struct ef10_vf *vf = nic_data->vf + i; - - if (vf->efx == efx) { - ether_addr_copy(vf->mac, - efx->net_dev->dev_addr); - return 0; - } - } - } - } else -#endif if (rc == -EPERM) { netif_err(efx, drv, efx->net_dev, "Cannot change MAC address; use sfboot to enable" --- linux-5.19.0.orig/drivers/net/ethernet/sfc/ef100_netdev.c +++ linux-5.19.0/drivers/net/ethernet/sfc/ef100_netdev.c @@ -200,6 +200,7 @@ skb->len, skb->data_len, channel->channel); if (!efx->n_channels || !efx->n_tx_channels || !channel) { netif_stop_queue(net_dev); + dev_kfree_skb_any(skb); goto err; } --- linux-5.19.0.orig/drivers/net/ethernet/sfc/efx_channels.c +++ linux-5.19.0/drivers/net/ethernet/sfc/efx_channels.c @@ -319,7 +319,7 @@ efx->n_channels = 1 + (efx_separate_tx_channels ? 1 : 0); efx->n_rx_channels = 1; efx->n_tx_channels = 1; - efx->tx_channel_offset = 1; + efx->tx_channel_offset = efx_separate_tx_channels ? 1 : 0; efx->n_xdp_channels = 0; efx->xdp_channel_offset = efx->n_channels; efx->legacy_irq = efx->pci_dev->irq; --- linux-5.19.0.orig/drivers/net/ethernet/sfc/filter.h +++ linux-5.19.0/drivers/net/ethernet/sfc/filter.h @@ -157,7 +157,8 @@ u32 flags:6; u32 dmaq_id:12; u32 rss_context; - __be16 outer_vid __aligned(4); /* allow jhash2() of match values */ + u32 vport_id; + __be16 outer_vid; __be16 inner_vid; u8 loc_mac[ETH_ALEN]; u8 rem_mac[ETH_ALEN]; --- linux-5.19.0.orig/drivers/net/ethernet/sfc/rx_common.c +++ linux-5.19.0/drivers/net/ethernet/sfc/rx_common.c @@ -660,17 +660,17 @@ (EFX_FILTER_FLAG_RX | EFX_FILTER_FLAG_TX))) return false; - return memcmp(&left->outer_vid, &right->outer_vid, + return memcmp(&left->vport_id, &right->vport_id, sizeof(struct efx_filter_spec) - - offsetof(struct efx_filter_spec, outer_vid)) == 0; + offsetof(struct efx_filter_spec, vport_id)) == 0; } u32 efx_filter_spec_hash(const struct efx_filter_spec *spec) { - BUILD_BUG_ON(offsetof(struct efx_filter_spec, outer_vid) & 3); - return jhash2((const u32 *)&spec->outer_vid, + BUILD_BUG_ON(offsetof(struct efx_filter_spec, vport_id) & 3); + return jhash2((const u32 *)&spec->vport_id, (sizeof(struct efx_filter_spec) - - offsetof(struct efx_filter_spec, outer_vid)) / 4, + offsetof(struct efx_filter_spec, vport_id)) / 4, 0); } --- linux-5.19.0.orig/drivers/net/ethernet/sfc/siena/efx_channels.c +++ linux-5.19.0/drivers/net/ethernet/sfc/siena/efx_channels.c @@ -320,7 +320,7 @@ efx->n_channels = 1 + (efx_siena_separate_tx_channels ? 1 : 0); efx->n_rx_channels = 1; efx->n_tx_channels = 1; - efx->tx_channel_offset = 1; + efx->tx_channel_offset = efx_siena_separate_tx_channels ? 1 : 0; efx->n_xdp_channels = 0; efx->xdp_channel_offset = efx->n_channels; efx->legacy_irq = efx->pci_dev->irq; --- linux-5.19.0.orig/drivers/net/ethernet/sfc/siena/tx.c +++ linux-5.19.0/drivers/net/ethernet/sfc/siena/tx.c @@ -336,7 +336,7 @@ * previous packets out. */ if (!netdev_xmit_more()) - efx_tx_send_pending(tx_queue->channel); + efx_tx_send_pending(efx_get_tx_channel(efx, index)); return NETDEV_TX_OK; } --- linux-5.19.0.orig/drivers/net/ethernet/sfc/tx.c +++ linux-5.19.0/drivers/net/ethernet/sfc/tx.c @@ -549,7 +549,7 @@ * previous packets out. */ if (!netdev_xmit_more()) - efx_tx_send_pending(tx_queue->channel); + efx_tx_send_pending(efx_get_tx_channel(efx, index)); return NETDEV_TX_OK; } --- linux-5.19.0.orig/drivers/net/ethernet/smsc/smsc911x.c +++ linux-5.19.0/drivers/net/ethernet/smsc/smsc911x.c @@ -1037,6 +1037,8 @@ return ret; } + /* Indicate that the MAC is responsible for managing PHY PM */ + phydev->mac_managed_pm = true; phy_attached_info(phydev); phy_set_max_speed(phydev, SPEED_100); @@ -2587,6 +2589,8 @@ if (netif_running(ndev)) { netif_stop_queue(ndev); netif_device_detach(ndev); + if (!device_may_wakeup(dev)) + phy_stop(ndev->phydev); } /* enable wake on LAN, energy detection and the external PME @@ -2628,6 +2632,8 @@ if (netif_running(ndev)) { netif_device_attach(ndev); netif_start_queue(ndev); + if (!device_may_wakeup(dev)) + phy_start(ndev->phydev); } return 0; --- linux-5.19.0.orig/drivers/net/ethernet/socionext/netsec.c +++ linux-5.19.0/drivers/net/ethernet/socionext/netsec.c @@ -1961,11 +1961,13 @@ ret = PTR_ERR(priv->phydev); dev_err(priv->dev, "get_phy_device err(%d)\n", ret); priv->phydev = NULL; + mdiobus_unregister(bus); return -ENODEV; } ret = phy_device_register(priv->phydev); if (ret) { + phy_device_free(priv->phydev); mdiobus_unregister(bus); dev_err(priv->dev, "phy_device_register err(%d)\n", ret); --- linux-5.19.0.orig/drivers/net/ethernet/socionext/sni_ave.c +++ linux-5.19.0/drivers/net/ethernet/socionext/sni_ave.c @@ -1229,6 +1229,8 @@ phy_support_asym_pause(phydev); + phydev->mac_managed_pm = true; + phy_attached_info(phydev); return 0; @@ -1757,6 +1759,10 @@ ave_global_reset(ndev); + ret = phy_init_hw(ndev->phydev); + if (ret) + return ret; + ave_ethtool_get_wol(ndev, &wol); wol.wolopts = priv->wolopts; __ave_ethtool_set_wol(ndev, &wol); --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c @@ -600,7 +600,6 @@ { plat->rx_queues_to_use = 8; plat->tx_queues_to_use = 8; - plat->clk_ptp_rate = 200000000; plat->use_phy_wol = 1; plat->safety_feat_cfg->tsoee = 1; @@ -625,6 +624,8 @@ plat->serdes_powerup = intel_serdes_powerup; plat->serdes_powerdown = intel_serdes_powerdown; + plat->clk_ptp_rate = 204800000; + return ehl_common_data(pdev, plat); } @@ -638,6 +639,8 @@ plat->bus_id = 1; plat->phy_interface = PHY_INTERFACE_MODE_RGMII; + plat->clk_ptp_rate = 204800000; + return ehl_common_data(pdev, plat); } @@ -654,6 +657,8 @@ plat->bus_id = 2; plat->addr64 = 32; + plat->clk_ptp_rate = 200000000; + intel_mgbe_pse_crossts_adj(intel_priv, EHL_PSE_ART_MHZ); return ehl_common_data(pdev, plat); @@ -693,6 +698,8 @@ plat->bus_id = 3; plat->addr64 = 32; + plat->clk_ptp_rate = 200000000; + intel_mgbe_pse_crossts_adj(intel_priv, EHL_PSE_ART_MHZ); return ehl_common_data(pdev, plat); @@ -728,7 +735,7 @@ { plat->rx_queues_to_use = 6; plat->tx_queues_to_use = 4; - plat->clk_ptp_rate = 200000000; + plat->clk_ptp_rate = 204800000; plat->speed_mode_2500 = intel_speed_mode_2500; plat->safety_feat_cfg->tsoee = 1; @@ -1104,6 +1111,7 @@ stmmac_dvr_remove(&pdev->dev); + clk_disable_unprepare(priv->plat->stmmac_clk); clk_unregister_fixed_rate(priv->plat->stmmac_clk); pcim_iounmap_regions(pdev, BIT(0)); --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c @@ -51,7 +51,6 @@ struct stmmac_resources res; struct device_node *np; int ret, i, phy_mode; - bool mdio = false; np = dev_of_node(&pdev->dev); @@ -69,29 +68,31 @@ if (!plat) return -ENOMEM; + plat->mdio_node = of_get_child_by_name(np, "mdio"); if (plat->mdio_node) { - dev_err(&pdev->dev, "Found MDIO subnode\n"); - mdio = true; - } + dev_info(&pdev->dev, "Found MDIO subnode\n"); - if (mdio) { plat->mdio_bus_data = devm_kzalloc(&pdev->dev, sizeof(*plat->mdio_bus_data), GFP_KERNEL); - if (!plat->mdio_bus_data) - return -ENOMEM; + if (!plat->mdio_bus_data) { + ret = -ENOMEM; + goto err_put_node; + } plat->mdio_bus_data->needs_reset = true; } plat->dma_cfg = devm_kzalloc(&pdev->dev, sizeof(*plat->dma_cfg), GFP_KERNEL); - if (!plat->dma_cfg) - return -ENOMEM; + if (!plat->dma_cfg) { + ret = -ENOMEM; + goto err_put_node; + } /* Enable pci device */ ret = pci_enable_device(pdev); if (ret) { dev_err(&pdev->dev, "%s: ERROR: failed to enable device\n", __func__); - return ret; + goto err_put_node; } /* Get the base address of device */ @@ -100,7 +101,7 @@ continue; ret = pcim_iomap_regions(pdev, BIT(0), pci_name(pdev)); if (ret) - return ret; + goto err_disable_device; break; } @@ -111,7 +112,8 @@ phy_mode = device_get_phy_mode(&pdev->dev); if (phy_mode < 0) { dev_err(&pdev->dev, "phy_mode not found\n"); - return phy_mode; + ret = phy_mode; + goto err_disable_device; } plat->phy_interface = phy_mode; @@ -128,6 +130,7 @@ if (res.irq < 0) { dev_err(&pdev->dev, "IRQ macirq not found\n"); ret = -ENODEV; + goto err_disable_msi; } res.wol_irq = of_irq_get_byname(np, "eth_wake_irq"); @@ -140,15 +143,31 @@ if (res.lpi_irq < 0) { dev_err(&pdev->dev, "IRQ eth_lpi not found\n"); ret = -ENODEV; + goto err_disable_msi; } - return stmmac_dvr_probe(&pdev->dev, plat, &res); + ret = stmmac_dvr_probe(&pdev->dev, plat, &res); + if (ret) + goto err_disable_msi; + + return ret; + +err_disable_msi: + pci_disable_msi(pdev); +err_disable_device: + pci_disable_device(pdev); +err_put_node: + of_node_put(plat->mdio_node); + return ret; } static void loongson_dwmac_remove(struct pci_dev *pdev) { + struct net_device *ndev = dev_get_drvdata(&pdev->dev); + struct stmmac_priv *priv = netdev_priv(ndev); int i; + of_node_put(priv->plat->mdio_node); stmmac_dvr_remove(&pdev->dev); for (i = 0; i < PCI_STD_NUM_BARS; i++) { @@ -158,6 +177,7 @@ break; } + pci_disable_msi(pdev); pci_disable_device(pdev); } --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c @@ -272,11 +272,9 @@ if (ret) return ret; - devm_add_action_or_reset(dwmac->dev, - (void(*)(void *))clk_disable_unprepare, - dwmac->rgmii_tx_clk); - - return 0; + return devm_add_action_or_reset(dwmac->dev, + (void(*)(void *))clk_disable_unprepare, + clk); } static int meson8b_init_rgmii_delays(struct meson8b_dwmac *dwmac) --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c @@ -749,6 +749,8 @@ if (fc & FLOW_RX) { pr_debug("\tReceive Flow-Control ON\n"); flow |= GMAC_RX_FLOW_CTRL_RFE; + } else { + pr_debug("\tReceive Flow-Control OFF\n"); } writel(flow, ioaddr + GMAC_RX_FLOW_CTRL); --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/dwmac_lib.c @@ -258,14 +258,18 @@ /* Enable disable MAC RX/TX */ void stmmac_set_mac(void __iomem *ioaddr, bool enable) { - u32 value = readl(ioaddr + MAC_CTRL_REG); + u32 old_val, value; + + old_val = readl(ioaddr + MAC_CTRL_REG); + value = old_val; if (enable) value |= MAC_ENABLE_RX | MAC_ENABLE_TX; else value &= ~(MAC_ENABLE_TX | MAC_ENABLE_RX); - writel(value, ioaddr + MAC_CTRL_REG); + if (value != old_val) + writel(value, ioaddr + MAC_CTRL_REG); } void stmmac_get_mac_addr(void __iomem *ioaddr, unsigned char *addr, --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.c @@ -47,7 +47,8 @@ if (!(value & PTP_TCR_TSCTRLSSR)) data = (data * 1000) / 465; - data &= PTP_SSIR_SSINC_MASK; + if (data > PTP_SSIR_SSINC_MAX) + data = PTP_SSIR_SSINC_MAX; reg_value = data; if (gmac4) --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -983,10 +983,10 @@ bool tx_pause, bool rx_pause) { struct stmmac_priv *priv = netdev_priv(to_net_dev(config->dev)); - u32 ctrl; + u32 old_ctrl, ctrl; - ctrl = readl(priv->ioaddr + MAC_CTRL_REG); - ctrl &= ~priv->hw->link.speed_mask; + old_ctrl = readl(priv->ioaddr + MAC_CTRL_REG); + ctrl = old_ctrl & ~priv->hw->link.speed_mask; if (interface == PHY_INTERFACE_MODE_USXGMII) { switch (speed) { @@ -1058,10 +1058,19 @@ ctrl |= priv->hw->link.duplex; /* Flow Control operation */ - if (tx_pause && rx_pause) - stmmac_mac_flow_ctrl(priv, duplex); + if (rx_pause && tx_pause) + priv->flow_ctrl = FLOW_AUTO; + else if (rx_pause && !tx_pause) + priv->flow_ctrl = FLOW_RX; + else if (!rx_pause && tx_pause) + priv->flow_ctrl = FLOW_TX; + else + priv->flow_ctrl = FLOW_OFF; + + stmmac_mac_flow_ctrl(priv, duplex); - writel(ctrl, priv->ioaddr + MAC_CTRL_REG); + if (ctrl != old_ctrl) + writel(ctrl, priv->ioaddr + MAC_CTRL_REG); stmmac_mac_set(priv, priv->ioaddr, true); if (phy && priv->dma_cap.eee) { @@ -1208,6 +1217,7 @@ if (priv->plat->tx_queues_to_use > 1) priv->phylink_config.mac_capabilities &= ~(MAC_10HD | MAC_100HD | MAC_1000HD); + priv->phylink_config.mac_managed_pm = true; phylink = phylink_create(&priv->phylink_config, fwnode, mode, &stmmac_phylink_mac_ops); @@ -3703,6 +3713,15 @@ goto init_error; } + if (priv->plat->serdes_powerup) { + ret = priv->plat->serdes_powerup(dev, priv->plat->bsp_priv); + if (ret < 0) { + netdev_err(priv->dev, "%s: Serdes powerup failed\n", + __func__); + goto init_error; + } + } + ret = stmmac_hw_setup(dev, true); if (ret < 0) { netdev_err(priv->dev, "%s: Hw setup failed\n", __func__); @@ -3792,6 +3811,10 @@ /* Disable the MAC Rx/Tx */ stmmac_mac_set(priv, priv->ioaddr, false); + /* Powerdown Serdes if there is */ + if (priv->plat->serdes_powerdown) + priv->plat->serdes_powerdown(dev, priv->plat->bsp_priv); + netif_carrier_off(dev); stmmac_release_ptp(priv); @@ -6414,6 +6437,9 @@ struct stmmac_priv *priv = netdev_priv(dev); u32 chan; + /* Ensure tx function is not running */ + netif_tx_disable(dev); + /* Disable NAPI process */ stmmac_disable_all_queues(priv); @@ -6954,7 +6980,8 @@ priv->wq = create_singlethread_workqueue("stmmac_wq"); if (!priv->wq) { dev_err(priv->device, "failed to create workqueue\n"); - return -ENOMEM; + ret = -ENOMEM; + goto error_wq_init; } INIT_WORK(&priv->service_task, stmmac_service_task); @@ -7157,14 +7184,6 @@ goto error_netdev_register; } - if (priv->plat->serdes_powerup) { - ret = priv->plat->serdes_powerup(ndev, - priv->plat->bsp_priv); - - if (ret < 0) - goto error_serdes_powerup; - } - #ifdef CONFIG_DEBUG_FS stmmac_init_fs(ndev); #endif @@ -7179,8 +7198,6 @@ return ret; -error_serdes_powerup: - unregister_netdev(ndev); error_netdev_register: phylink_destroy(priv->phylink); error_xpcs_setup: @@ -7192,6 +7209,7 @@ stmmac_napi_del(ndev); error_hw_init: destroy_workqueue(priv->wq); +error_wq_init: bitmap_free(priv->af_xdp_zc_qps); return ret; --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c @@ -108,10 +108,10 @@ axi->axi_lpi_en = of_property_read_bool(np, "snps,lpi_en"); axi->axi_xit_frm = of_property_read_bool(np, "snps,xit_frm"); - axi->axi_kbbe = of_property_read_bool(np, "snps,axi_kbbe"); - axi->axi_fb = of_property_read_bool(np, "snps,axi_fb"); - axi->axi_mb = of_property_read_bool(np, "snps,axi_mb"); - axi->axi_rb = of_property_read_bool(np, "snps,axi_rb"); + axi->axi_kbbe = of_property_read_bool(np, "snps,kbbe"); + axi->axi_fb = of_property_read_bool(np, "snps,fb"); + axi->axi_mb = of_property_read_bool(np, "snps,mb"); + axi->axi_rb = of_property_read_bool(np, "snps,rb"); if (of_property_read_u32(np, "snps,wr_osr_lmt", &axi->axi_wr_osr_lmt)) axi->axi_wr_osr_lmt = 1; --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.h @@ -64,7 +64,7 @@ #define PTP_TCR_TSENMACADDR BIT(18) /* SSIR defines */ -#define PTP_SSIR_SSINC_MASK 0xff +#define PTP_SSIR_SSINC_MAX 0xff #define GMAC4_PTP_SSIR_SSINC_SHIFT 16 /* Auxiliary Control defines */ --- linux-5.19.0.orig/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c +++ linux-5.19.0/drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.c @@ -1654,12 +1654,16 @@ } ret = stmmac_set_arp_offload(priv, priv->hw, true, ip_addr); - if (ret) + if (ret) { + kfree_skb(skb); goto cleanup; + } ret = dev_set_promiscuity(priv->dev, 1); - if (ret) + if (ret) { + kfree_skb(skb); goto cleanup; + } ret = dev_direct_xmit(skb, 0); if (ret) --- linux-5.19.0.orig/drivers/net/ethernet/sun/sunhme.c +++ linux-5.19.0/drivers/net/ethernet/sun/sunhme.c @@ -2020,9 +2020,9 @@ skb_reserve(copy_skb, 2); skb_put(copy_skb, len); - dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE); + dma_sync_single_for_cpu(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE); skb_copy_from_linear_data(skb, copy_skb->data, len); - dma_sync_single_for_device(hp->dma_dev, dma_addr, len, DMA_FROM_DEVICE); + dma_sync_single_for_device(hp->dma_dev, dma_addr, len + 2, DMA_FROM_DEVICE); /* Reuse original ring buffer. */ hme_write_rxd(hp, this, (RXFLAG_OWN|((RX_BUF_ALLOC_SIZE-RX_OFFSET)<<16)), --- linux-5.19.0.orig/drivers/net/ethernet/sunplus/spl2sw_driver.c +++ linux-5.19.0/drivers/net/ethernet/sunplus/spl2sw_driver.c @@ -248,8 +248,8 @@ /* Check if mac address is valid */ if (!is_valid_ether_addr(mac)) { - kfree(mac); dev_info(dev, "Invalid mac address in nvmem (%pM)!\n", mac); + kfree(mac); return -EINVAL; } @@ -286,7 +286,6 @@ if (ret) { dev_err(&pdev->dev, "Failed to register net device \"%s\"!\n", ndev->name); - free_netdev(ndev); *r_ndev = NULL; return ret; } --- linux-5.19.0.orig/drivers/net/ethernet/ti/Kconfig +++ linux-5.19.0/drivers/net/ethernet/ti/Kconfig @@ -33,6 +33,7 @@ tristate "TI DaVinci MDIO Support" depends on ARCH_DAVINCI || ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST select PHYLIB + select MDIO_BITBANG help This driver supports TI's DaVinci MDIO module. --- linux-5.19.0.orig/drivers/net/ethernet/ti/am65-cpsw-nuss.c +++ linux-5.19.0/drivers/net/ethernet/ti/am65-cpsw-nuss.c @@ -562,13 +562,13 @@ ret = netif_set_real_num_tx_queues(ndev, common->tx_ch_num); if (ret) { dev_err(common->dev, "cannot set real number of tx queues\n"); - return ret; + goto runtime_put; } ret = netif_set_real_num_rx_queues(ndev, AM65_CPSW_MAX_RX_QUEUES); if (ret) { dev_err(common->dev, "cannot set real number of rx queues\n"); - return ret; + goto runtime_put; } for (i = 0; i < common->tx_ch_num; i++) @@ -576,7 +576,7 @@ ret = am65_cpsw_nuss_common_open(common, ndev->features); if (ret) - return ret; + goto runtime_put; common->usage_count++; @@ -609,6 +609,10 @@ error_cleanup: am65_cpsw_nuss_ndo_slave_stop(ndev); return ret; + +runtime_put: + pm_runtime_put(common->dev); + return ret; } static void am65_cpsw_nuss_rx_cleanup(void *data, dma_addr_t desc_dma) @@ -1450,7 +1454,7 @@ if (speed == SPEED_1000) mac_control |= CPSW_SL_CTL_GIG; - if (speed == SPEED_10 && interface == PHY_INTERFACE_MODE_RGMII) + if (speed == SPEED_10 && phy_interface_mode_is_rgmii(interface)) /* Can be used with in band mode only */ mac_control |= CPSW_SL_CTL_EXT_EN; if (speed == SPEED_100 && interface == PHY_INTERFACE_MODE_RMII) @@ -2061,7 +2065,7 @@ for (i = 0; i < common->port_num; i++) { port = &common->ports[i]; - if (port->ndev) + if (port->ndev && port->ndev->reg_state == NETREG_REGISTERED) unregister_netdev(port->ndev); } } @@ -2791,7 +2795,6 @@ if (ret < 0) return ret; - am65_cpsw_nuss_phylink_cleanup(common); am65_cpsw_unregister_devlink(common); am65_cpsw_unregister_notifiers(common); @@ -2799,6 +2802,7 @@ * dma_deconfigure(dev) before devres_release_all(dev) */ am65_cpsw_nuss_cleanup_ndev(common); + am65_cpsw_nuss_phylink_cleanup(common); of_platform_device_destroy(common->mdio_dev, NULL); --- linux-5.19.0.orig/drivers/net/ethernet/ti/cpsw.c +++ linux-5.19.0/drivers/net/ethernet/ti/cpsw.c @@ -854,6 +854,8 @@ err_cleanup: if (!cpsw->usage_count) { + napi_disable(&cpsw->napi_rx); + napi_disable(&cpsw->napi_tx); cpdma_ctlr_stop(cpsw->dma); cpsw_destroy_xdp_rxqs(cpsw); } --- linux-5.19.0.orig/drivers/net/ethernet/ti/davinci_mdio.c +++ linux-5.19.0/drivers/net/ethernet/ti/davinci_mdio.c @@ -26,6 +26,8 @@ #include #include #include +#include +#include /* * This timeout definition is a worst-case ultra defensive measure against @@ -41,6 +43,7 @@ struct davinci_mdio_of_param { int autosuspend_delay_ms; + bool manual_mode; }; struct davinci_mdio_regs { @@ -49,6 +52,15 @@ #define CONTROL_IDLE BIT(31) #define CONTROL_ENABLE BIT(30) #define CONTROL_MAX_DIV (0xffff) +#define CONTROL_CLKDIV GENMASK(15, 0) + +#define MDIO_MAN_MDCLK_O BIT(2) +#define MDIO_MAN_OE BIT(1) +#define MDIO_MAN_PIN BIT(0) +#define MDIO_MANUALMODE BIT(31) + +#define MDIO_PIN 0 + u32 alive; u32 link; @@ -59,7 +71,9 @@ u32 userintmasked; u32 userintmaskset; u32 userintmaskclr; - u32 __reserved_1[20]; + u32 manualif; + u32 poll; + u32 __reserved_1[18]; struct { u32 access; @@ -79,6 +93,7 @@ struct davinci_mdio_data { struct mdio_platform_data pdata; + struct mdiobb_ctrl bb_ctrl; struct davinci_mdio_regs __iomem *regs; struct clk *clk; struct device *dev; @@ -90,6 +105,7 @@ */ bool skip_scan; u32 clk_div; + bool manual_mode; }; static void davinci_mdio_init_clk(struct davinci_mdio_data *data) @@ -128,9 +144,122 @@ writel(data->clk_div | CONTROL_ENABLE, &data->regs->control); } -static int davinci_mdio_reset(struct mii_bus *bus) +static void davinci_mdio_disable(struct davinci_mdio_data *data) +{ + u32 reg; + + /* Disable MDIO state machine */ + reg = readl(&data->regs->control); + + reg &= ~CONTROL_CLKDIV; + reg |= data->clk_div; + + reg &= ~CONTROL_ENABLE; + writel(reg, &data->regs->control); +} + +static void davinci_mdio_enable_manual_mode(struct davinci_mdio_data *data) +{ + u32 reg; + /* set manual mode */ + reg = readl(&data->regs->poll); + reg |= MDIO_MANUALMODE; + writel(reg, &data->regs->poll); +} + +static void davinci_set_mdc(struct mdiobb_ctrl *ctrl, int level) +{ + struct davinci_mdio_data *data; + u32 reg; + + data = container_of(ctrl, struct davinci_mdio_data, bb_ctrl); + reg = readl(&data->regs->manualif); + + if (level) + reg |= MDIO_MAN_MDCLK_O; + else + reg &= ~MDIO_MAN_MDCLK_O; + + writel(reg, &data->regs->manualif); +} + +static void davinci_set_mdio_dir(struct mdiobb_ctrl *ctrl, int output) +{ + struct davinci_mdio_data *data; + u32 reg; + + data = container_of(ctrl, struct davinci_mdio_data, bb_ctrl); + reg = readl(&data->regs->manualif); + + if (output) + reg |= MDIO_MAN_OE; + else + reg &= ~MDIO_MAN_OE; + + writel(reg, &data->regs->manualif); +} + +static void davinci_set_mdio_data(struct mdiobb_ctrl *ctrl, int value) +{ + struct davinci_mdio_data *data; + u32 reg; + + data = container_of(ctrl, struct davinci_mdio_data, bb_ctrl); + reg = readl(&data->regs->manualif); + + if (value) + reg |= MDIO_MAN_PIN; + else + reg &= ~MDIO_MAN_PIN; + + writel(reg, &data->regs->manualif); +} + +static int davinci_get_mdio_data(struct mdiobb_ctrl *ctrl) +{ + struct davinci_mdio_data *data; + unsigned long reg; + + data = container_of(ctrl, struct davinci_mdio_data, bb_ctrl); + reg = readl(&data->regs->manualif); + return test_bit(MDIO_PIN, ®); +} + +static int davinci_mdiobb_read(struct mii_bus *bus, int phy, int reg) +{ + int ret; + + ret = pm_runtime_resume_and_get(bus->parent); + if (ret < 0) + return ret; + + ret = mdiobb_read(bus, phy, reg); + + pm_runtime_mark_last_busy(bus->parent); + pm_runtime_put_autosuspend(bus->parent); + + return ret; +} + +static int davinci_mdiobb_write(struct mii_bus *bus, int phy, int reg, + u16 val) +{ + int ret; + + ret = pm_runtime_resume_and_get(bus->parent); + if (ret < 0) + return ret; + + ret = mdiobb_write(bus, phy, reg, val); + + pm_runtime_mark_last_busy(bus->parent); + pm_runtime_put_autosuspend(bus->parent); + + return ret; +} + +static int davinci_mdio_common_reset(struct davinci_mdio_data *data) { - struct davinci_mdio_data *data = bus->priv; u32 phy_mask, ver; int ret; @@ -138,6 +267,11 @@ if (ret < 0) return ret; + if (data->manual_mode) { + davinci_mdio_disable(data); + davinci_mdio_enable_manual_mode(data); + } + /* wait for scan logic to settle */ msleep(PHY_MAX_ADDR * data->access_time); @@ -171,6 +305,23 @@ return 0; } +static int davinci_mdio_reset(struct mii_bus *bus) +{ + struct davinci_mdio_data *data = bus->priv; + + return davinci_mdio_common_reset(data); +} + +static int davinci_mdiobb_reset(struct mii_bus *bus) +{ + struct mdiobb_ctrl *ctrl = bus->priv; + struct davinci_mdio_data *data; + + data = container_of(ctrl, struct davinci_mdio_data, bb_ctrl); + + return davinci_mdio_common_reset(data); +} + /* wait until hardware is ready for another user access */ static inline int wait_for_user_access(struct davinci_mdio_data *data) { @@ -318,6 +469,28 @@ return 0; } +struct k3_mdio_soc_data { + bool manual_mode; +}; + +static const struct k3_mdio_soc_data am65_mdio_soc_data = { + .manual_mode = true, +}; + +static const struct soc_device_attribute k3_mdio_socinfo[] = { + { .family = "AM62X", .revision = "SR1.0", .data = &am65_mdio_soc_data }, + { .family = "AM64X", .revision = "SR1.0", .data = &am65_mdio_soc_data }, + { .family = "AM64X", .revision = "SR2.0", .data = &am65_mdio_soc_data }, + { .family = "AM65X", .revision = "SR1.0", .data = &am65_mdio_soc_data }, + { .family = "AM65X", .revision = "SR2.0", .data = &am65_mdio_soc_data }, + { .family = "J7200", .revision = "SR1.0", .data = &am65_mdio_soc_data }, + { .family = "J7200", .revision = "SR2.0", .data = &am65_mdio_soc_data }, + { .family = "J721E", .revision = "SR1.0", .data = &am65_mdio_soc_data }, + { .family = "J721E", .revision = "SR2.0", .data = &am65_mdio_soc_data }, + { .family = "J721S2", .revision = "SR1.0", .data = &am65_mdio_soc_data}, + { /* sentinel */ }, +}; + #if IS_ENABLED(CONFIG_OF) static const struct davinci_mdio_of_param of_cpsw_mdio_data = { .autosuspend_delay_ms = 100, @@ -331,6 +504,14 @@ MODULE_DEVICE_TABLE(of, davinci_mdio_of_mtable); #endif +static const struct mdiobb_ops davinci_mdiobb_ops = { + .owner = THIS_MODULE, + .set_mdc = davinci_set_mdc, + .set_mdio_dir = davinci_set_mdio_dir, + .set_mdio_data = davinci_set_mdio_data, + .get_mdio_data = davinci_get_mdio_data, +}; + static int davinci_mdio_probe(struct platform_device *pdev) { struct mdio_platform_data *pdata = dev_get_platdata(&pdev->dev); @@ -345,7 +526,26 @@ if (!data) return -ENOMEM; - data->bus = devm_mdiobus_alloc(dev); + data->manual_mode = false; + data->bb_ctrl.ops = &davinci_mdiobb_ops; + + if (IS_ENABLED(CONFIG_OF) && dev->of_node) { + const struct soc_device_attribute *soc_match_data; + + soc_match_data = soc_device_match(k3_mdio_socinfo); + if (soc_match_data && soc_match_data->data) { + const struct k3_mdio_soc_data *socdata = + soc_match_data->data; + + data->manual_mode = socdata->manual_mode; + } + } + + if (data->manual_mode) + data->bus = alloc_mdio_bitbang(&data->bb_ctrl); + else + data->bus = devm_mdiobus_alloc(dev); + if (!data->bus) { dev_err(dev, "failed to alloc mii bus\n"); return -ENOMEM; @@ -371,11 +571,20 @@ } data->bus->name = dev_name(dev); - data->bus->read = davinci_mdio_read; - data->bus->write = davinci_mdio_write; - data->bus->reset = davinci_mdio_reset; + + if (data->manual_mode) { + data->bus->read = davinci_mdiobb_read; + data->bus->write = davinci_mdiobb_write; + data->bus->reset = davinci_mdiobb_reset; + + dev_info(dev, "Configuring MDIO in manual mode\n"); + } else { + data->bus->read = davinci_mdio_read; + data->bus->write = davinci_mdio_write; + data->bus->reset = davinci_mdio_reset; + data->bus->priv = data; + } data->bus->parent = dev; - data->bus->priv = data; data->clk = devm_clk_get(dev, "fck"); if (IS_ERR(data->clk)) { @@ -433,9 +642,13 @@ { struct davinci_mdio_data *data = platform_get_drvdata(pdev); - if (data->bus) + if (data->bus) { mdiobus_unregister(data->bus); + if (data->manual_mode) + free_mdio_bitbang(data->bus); + } + pm_runtime_dont_use_autosuspend(&pdev->dev); pm_runtime_disable(&pdev->dev); @@ -452,7 +665,9 @@ ctrl = readl(&data->regs->control); ctrl &= ~CONTROL_ENABLE; writel(ctrl, &data->regs->control); - wait_for_idle(data); + + if (!data->manual_mode) + wait_for_idle(data); return 0; } @@ -461,7 +676,12 @@ { struct davinci_mdio_data *data = dev_get_drvdata(dev); - davinci_mdio_enable(data); + if (data->manual_mode) { + davinci_mdio_disable(data); + davinci_mdio_enable_manual_mode(data); + } else { + davinci_mdio_enable(data); + } return 0; } #endif --- linux-5.19.0.orig/drivers/net/ethernet/ti/netcp_core.c +++ linux-5.19.0/drivers/net/ethernet/ti/netcp_core.c @@ -1261,7 +1261,7 @@ } /* Submit the packet */ -static int netcp_ndo_start_xmit(struct sk_buff *skb, struct net_device *ndev) +static netdev_tx_t netcp_ndo_start_xmit(struct sk_buff *skb, struct net_device *ndev) { struct netcp_intf *netcp = netdev_priv(ndev); struct netcp_stats *tx_stats = &netcp->stats; --- linux-5.19.0.orig/drivers/net/ethernet/tundra/tsi108_eth.c +++ linux-5.19.0/drivers/net/ethernet/tundra/tsi108_eth.c @@ -1303,12 +1303,15 @@ data->rxring = dma_alloc_coherent(&data->pdev->dev, rxring_size, &data->rxdma, GFP_KERNEL); - if (!data->rxring) + if (!data->rxring) { + free_irq(data->irq_num, dev); return -ENOMEM; + } data->txring = dma_alloc_coherent(&data->pdev->dev, txring_size, &data->txdma, GFP_KERNEL); if (!data->txring) { + free_irq(data->irq_num, dev); dma_free_coherent(&data->pdev->dev, rxring_size, data->rxring, data->rxdma); return -ENOMEM; --- linux-5.19.0.orig/drivers/net/ethernet/xilinx/xilinx_axienet.h +++ linux-5.19.0/drivers/net/ethernet/xilinx/xilinx_axienet.h @@ -402,6 +402,9 @@ * @rx_bd_num: Size of RX buffer descriptor ring * @rx_bd_ci: Stores the index of the Rx buffer descriptor in the ring being * accessed currently. + * @rx_packets: RX packet count for statistics + * @rx_bytes: RX byte count for statistics + * @rx_stat_sync: Synchronization object for RX stats * @napi_tx: NAPI TX control structure * @tx_dma_cr: Nominal content of TX DMA control register * @tx_bd_v: Virtual address of the TX buffer descriptor ring @@ -411,6 +414,9 @@ * complete. Only updated at runtime by TX NAPI poll. * @tx_bd_tail: Stores the index of the next Tx buffer descriptor in the ring * to be populated. + * @tx_packets: TX packet count for statistics + * @tx_bytes: TX byte count for statistics + * @tx_stat_sync: Synchronization object for TX stats * @dma_err_task: Work structure to process Axi DMA errors * @tx_irq: Axidma TX IRQ number * @rx_irq: Axidma RX IRQ number @@ -458,6 +464,9 @@ dma_addr_t rx_bd_p; u32 rx_bd_num; u32 rx_bd_ci; + u64_stats_t rx_packets; + u64_stats_t rx_bytes; + struct u64_stats_sync rx_stat_sync; struct napi_struct napi_tx; u32 tx_dma_cr; @@ -466,6 +475,9 @@ u32 tx_bd_num; u32 tx_bd_ci; u32 tx_bd_tail; + u64_stats_t tx_packets; + u64_stats_t tx_bytes; + struct u64_stats_sync tx_stat_sync; struct work_struct dma_err_task; --- linux-5.19.0.orig/drivers/net/ethernet/xilinx/xilinx_axienet_main.c +++ linux-5.19.0/drivers/net/ethernet/xilinx/xilinx_axienet_main.c @@ -529,6 +529,16 @@ return ret; } + /* Wait for PhyRstCmplt bit to be set, indicating the PHY reset has finished */ + ret = read_poll_timeout(axienet_ior, value, + value & XAE_INT_PHYRSTCMPLT_MASK, + DELAY_OF_ONE_MILLISEC, 50000, false, lp, + XAE_IS_OFFSET); + if (ret) { + dev_err(lp->dev, "%s: timeout waiting for PhyRstCmplt\n", __func__); + return ret; + } + return 0; } @@ -752,8 +762,10 @@ if (lp->tx_bd_ci >= lp->tx_bd_num) lp->tx_bd_ci %= lp->tx_bd_num; - ndev->stats.tx_packets += packets; - ndev->stats.tx_bytes += size; + u64_stats_update_begin(&lp->tx_stat_sync); + u64_stats_add(&lp->tx_packets, packets); + u64_stats_add(&lp->tx_bytes, size); + u64_stats_update_end(&lp->tx_stat_sync); /* Matches barrier in axienet_start_xmit */ smp_mb(); @@ -984,8 +996,10 @@ cur_p = &lp->rx_bd_v[lp->rx_bd_ci]; } - lp->ndev->stats.rx_packets += packets; - lp->ndev->stats.rx_bytes += size; + u64_stats_update_begin(&lp->rx_stat_sync); + u64_stats_add(&lp->rx_packets, packets); + u64_stats_add(&lp->rx_bytes, size); + u64_stats_update_end(&lp->rx_stat_sync); if (tail_p) axienet_dma_out_addr(lp, XAXIDMA_RX_TDESC_OFFSET, tail_p); @@ -1292,10 +1306,32 @@ return phylink_mii_ioctl(lp->phylink, rq, cmd); } +static void +axienet_get_stats64(struct net_device *dev, struct rtnl_link_stats64 *stats) +{ + struct axienet_local *lp = netdev_priv(dev); + unsigned int start; + + netdev_stats_to_stats64(stats, &dev->stats); + + do { + start = u64_stats_fetch_begin_irq(&lp->rx_stat_sync); + stats->rx_packets = u64_stats_read(&lp->rx_packets); + stats->rx_bytes = u64_stats_read(&lp->rx_bytes); + } while (u64_stats_fetch_retry_irq(&lp->rx_stat_sync, start)); + + do { + start = u64_stats_fetch_begin_irq(&lp->tx_stat_sync); + stats->tx_packets = u64_stats_read(&lp->tx_packets); + stats->tx_bytes = u64_stats_read(&lp->tx_bytes); + } while (u64_stats_fetch_retry_irq(&lp->tx_stat_sync, start)); +} + static const struct net_device_ops axienet_netdev_ops = { .ndo_open = axienet_open, .ndo_stop = axienet_stop, .ndo_start_xmit = axienet_start_xmit, + .ndo_get_stats64 = axienet_get_stats64, .ndo_change_mtu = axienet_change_mtu, .ndo_set_mac_address = netdev_set_mac_address, .ndo_validate_addr = eth_validate_addr, @@ -1850,6 +1886,9 @@ lp->rx_bd_num = RX_BD_NUM_DEFAULT; lp->tx_bd_num = TX_BD_NUM_DEFAULT; + u64_stats_init(&lp->rx_stat_sync); + u64_stats_init(&lp->tx_stat_sync); + netif_napi_add(ndev, &lp->napi_rx, axienet_rx_poll, NAPI_POLL_WEIGHT); netif_napi_add(ndev, &lp->napi_tx, axienet_tx_poll, NAPI_POLL_WEIGHT); --- linux-5.19.0.orig/drivers/net/ethernet/xilinx/xilinx_emaclite.c +++ linux-5.19.0/drivers/net/ethernet/xilinx/xilinx_emaclite.c @@ -536,7 +536,7 @@ xemaclite_enable_interrupts(lp); if (lp->deferred_skb) { - dev_kfree_skb(lp->deferred_skb); + dev_kfree_skb_irq(lp->deferred_skb); lp->deferred_skb = NULL; dev->stats.tx_errors++; } --- linux-5.19.0.orig/drivers/net/fddi/defxx.c +++ linux-5.19.0/drivers/net/fddi/defxx.c @@ -3831,10 +3831,24 @@ int status; status = pci_register_driver(&dfx_pci_driver); - if (!status) - status = eisa_driver_register(&dfx_eisa_driver); - if (!status) - status = tc_register_driver(&dfx_tc_driver); + if (status) + goto err_pci_register; + + status = eisa_driver_register(&dfx_eisa_driver); + if (status) + goto err_eisa_register; + + status = tc_register_driver(&dfx_tc_driver); + if (status) + goto err_tc_register; + + return 0; + +err_tc_register: + eisa_driver_unregister(&dfx_eisa_driver); +err_eisa_register: + pci_unregister_driver(&dfx_pci_driver); +err_pci_register: return status; } --- linux-5.19.0.orig/drivers/net/geneve.c +++ linux-5.19.0/drivers/net/geneve.c @@ -797,7 +797,8 @@ struct geneve_sock *gs4, struct flowi4 *fl4, const struct ip_tunnel_info *info, - __be16 dport, __be16 sport) + __be16 dport, __be16 sport, + __u8 *full_tos) { bool use_cache = ip_tunnel_dst_cache_usable(skb, info); struct geneve_dev *geneve = netdev_priv(dev); @@ -815,6 +816,7 @@ fl4->saddr = info->key.u.ipv4.src; fl4->fl4_dport = dport; fl4->fl4_sport = sport; + fl4->flowi4_flags = info->key.flow_flags; tos = info->key.tos; if ((tos == 1) && !geneve->cfg.collect_md) { @@ -822,6 +824,8 @@ use_cache = false; } fl4->flowi4_tos = RT_TOS(tos); + if (full_tos) + *full_tos = tos; dst_cache = (struct dst_cache *)&info->dst_cache; if (use_cache) { @@ -875,8 +879,7 @@ use_cache = false; } - fl6->flowlabel = ip6_make_flowinfo(RT_TOS(prio), - info->key.label); + fl6->flowlabel = ip6_make_flowinfo(prio, info->key.label); dst_cache = (struct dst_cache *)&info->dst_cache; if (use_cache) { dst = dst_cache_get_ip6(dst_cache, &fl6->saddr); @@ -910,6 +913,7 @@ const struct ip_tunnel_key *key = &info->key; struct rtable *rt; struct flowi4 fl4; + __u8 full_tos; __u8 tos, ttl; __be16 df = 0; __be16 sport; @@ -920,7 +924,7 @@ sport = udp_flow_src_port(geneve->net, skb, 1, USHRT_MAX, true); rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info, - geneve->cfg.info.key.tp_dst, sport); + geneve->cfg.info.key.tp_dst, sport, &full_tos); if (IS_ERR(rt)) return PTR_ERR(rt); @@ -964,7 +968,7 @@ df = key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0; } else { - tos = ip_tunnel_ecn_encap(fl4.flowi4_tos, ip_hdr(skb), skb); + tos = ip_tunnel_ecn_encap(full_tos, ip_hdr(skb), skb); if (geneve->cfg.ttl_inherit) ttl = ip_tunnel_get_ttl(ip_hdr(skb), skb); else @@ -1148,7 +1152,7 @@ 1, USHRT_MAX, true); rt = geneve_get_v4_rt(skb, dev, gs4, &fl4, info, - geneve->cfg.info.key.tp_dst, sport); + geneve->cfg.info.key.tp_dst, sport, NULL); if (IS_ERR(rt)) return PTR_ERR(rt); --- linux-5.19.0.orig/drivers/net/hamradio/baycom_epp.c +++ linux-5.19.0/drivers/net/hamradio/baycom_epp.c @@ -758,7 +758,7 @@ * ===================== network driver interface ========================= */ -static int baycom_send_packet(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t baycom_send_packet(struct sk_buff *skb, struct net_device *dev) { struct baycom_state *bc = netdev_priv(dev); --- linux-5.19.0.orig/drivers/net/hamradio/bpqether.c +++ linux-5.19.0/drivers/net/hamradio/bpqether.c @@ -533,7 +533,7 @@ if (!net_eq(dev_net(dev), &init_net)) return NOTIFY_DONE; - if (!dev_is_ethdev(dev)) + if (!dev_is_ethdev(dev) && !bpq_get_ax25_dev(dev)) return NOTIFY_DONE; switch (event) { --- linux-5.19.0.orig/drivers/net/hamradio/scc.c +++ linux-5.19.0/drivers/net/hamradio/scc.c @@ -302,12 +302,12 @@ spin_lock_irqsave(&scc->lock, flags); if (scc->tx_buff != NULL) { - dev_kfree_skb(scc->tx_buff); + dev_kfree_skb_irq(scc->tx_buff); scc->tx_buff = NULL; } while (!skb_queue_empty(&scc->tx_queue)) - dev_kfree_skb(skb_dequeue(&scc->tx_queue)); + dev_kfree_skb_irq(skb_dequeue(&scc->tx_queue)); spin_unlock_irqrestore(&scc->lock, flags); } @@ -1668,7 +1668,7 @@ if (skb_queue_len(&scc->tx_queue) > scc->dev->tx_queue_len) { struct sk_buff *skb_del; skb_del = skb_dequeue(&scc->tx_queue); - dev_kfree_skb(skb_del); + dev_kfree_skb_irq(skb_del); } skb_queue_tail(&scc->tx_queue, skb); netif_trans_update(dev); --- linux-5.19.0.orig/drivers/net/hyperv/hyperv_net.h +++ linux-5.19.0/drivers/net/hyperv/hyperv_net.h @@ -1051,7 +1051,8 @@ u32 vf_alloc; /* Serial number of the VF to team with */ u32 vf_serial; - + /* completion variable to confirm vf association */ + struct completion vf_add; /* Is the current data path through the VF NIC? */ bool data_path_is_vf; --- linux-5.19.0.orig/drivers/net/hyperv/netvsc.c +++ linux-5.19.0/drivers/net/hyperv/netvsc.c @@ -1580,6 +1580,10 @@ net_device_ctx->vf_alloc = nvmsg->msg.v4_msg.vf_assoc.allocated; net_device_ctx->vf_serial = nvmsg->msg.v4_msg.vf_assoc.serial; + + if (net_device_ctx->vf_alloc) + complete(&net_device_ctx->vf_add); + netdev_info(ndev, "VF slot %u %s\n", net_device_ctx->vf_serial, net_device_ctx->vf_alloc ? "added" : "removed"); --- linux-5.19.0.orig/drivers/net/hyperv/netvsc_drv.c +++ linux-5.19.0/drivers/net/hyperv/netvsc_drv.c @@ -2313,6 +2313,18 @@ } + /* Fallback path to check synthetic vf with + * help of mac addr + */ + list_for_each_entry(ndev_ctx, &netvsc_dev_list, list) { + ndev = hv_get_drvdata(ndev_ctx->device_ctx); + if (ether_addr_equal(vf_netdev->perm_addr, ndev->perm_addr)) { + netdev_notice(vf_netdev, + "falling back to mac addr based matching\n"); + return ndev; + } + } + netdev_notice(vf_netdev, "no netdev found for vf serial:%u\n", serial); return NULL; @@ -2409,6 +2421,11 @@ if (net_device_ctx->data_path_is_vf == vf_is_up) return NOTIFY_OK; + if (vf_is_up && !net_device_ctx->vf_alloc) { + netdev_info(ndev, "Waiting for the VF association from host\n"); + wait_for_completion(&net_device_ctx->vf_add); + } + ret = netvsc_switch_datapath(ndev, vf_is_up); if (ret) { @@ -2440,6 +2457,7 @@ netvsc_vf_setxdp(vf_netdev, NULL); + reinit_completion(&net_device_ctx->vf_add); netdev_rx_handler_unregister(vf_netdev); netdev_upper_dev_unlink(vf_netdev, ndev); RCU_INIT_POINTER(net_device_ctx->vf_netdev, NULL); @@ -2479,6 +2497,7 @@ INIT_DELAYED_WORK(&net_device_ctx->dwork, netvsc_link_change); + init_completion(&net_device_ctx->vf_add); spin_lock_init(&net_device_ctx->lock); INIT_LIST_HEAD(&net_device_ctx->reconfig_events); INIT_DELAYED_WORK(&net_device_ctx->vf_takeover, netvsc_vf_setup); --- linux-5.19.0.orig/drivers/net/ieee802154/adf7242.c +++ linux-5.19.0/drivers/net/ieee802154/adf7242.c @@ -1310,10 +1310,11 @@ debugfs_remove_recursive(lp->debugfs_root); + ieee802154_unregister_hw(lp->hw); + cancel_delayed_work_sync(&lp->work); destroy_workqueue(lp->wqueue); - ieee802154_unregister_hw(lp->hw); mutex_destroy(&lp->bmux); ieee802154_free_hw(lp->hw); } --- linux-5.19.0.orig/drivers/net/ieee802154/ca8210.c +++ linux-5.19.0/drivers/net/ieee802154/ca8210.c @@ -885,7 +885,7 @@ dev_dbg(&spi->dev, "%s called\n", __func__); - cas_ctl = kmalloc(sizeof(*cas_ctl), GFP_ATOMIC); + cas_ctl = kzalloc(sizeof(*cas_ctl), GFP_ATOMIC); if (!cas_ctl) return -ENOMEM; --- linux-5.19.0.orig/drivers/net/ieee802154/cc2520.c +++ linux-5.19.0/drivers/net/ieee802154/cc2520.c @@ -504,6 +504,7 @@ goto err_tx; if (status & CC2520_STATUS_TX_UNDERFLOW) { + rc = -EINVAL; dev_err(&priv->spi->dev, "cc2520 tx underflow exception\n"); goto err_tx; } @@ -969,7 +970,7 @@ if (timeout-- <= 0) { dev_err(&priv->spi->dev, "oscillator start failed!\n"); - return ret; + return -ETIMEDOUT; } udelay(1); } while (!(status & CC2520_STATUS_XOSC32M_STABLE)); --- linux-5.19.0.orig/drivers/net/ipa/ipa_mem.c +++ linux-5.19.0/drivers/net/ipa/ipa_mem.c @@ -568,7 +568,7 @@ } /* Align the address down and the size up to a page boundary */ - addr = qcom_smem_virt_to_phys(virt) & PAGE_MASK; + addr = qcom_smem_virt_to_phys(virt); phys = addr & PAGE_MASK; size = PAGE_ALIGN(size + addr - phys); iova = phys; /* We just want a direct mapping */ --- linux-5.19.0.orig/drivers/net/ipa/ipa_qmi.c +++ linux-5.19.0/drivers/net/ipa/ipa_qmi.c @@ -308,12 +308,12 @@ mem = ipa_mem_find(ipa, IPA_MEM_V4_ROUTE); req.v4_route_tbl_info_valid = 1; req.v4_route_tbl_info.start = ipa->mem_offset + mem->offset; - req.v4_route_tbl_info.count = mem->size / sizeof(__le64); + req.v4_route_tbl_info.end = IPA_ROUTE_MODEM_COUNT - 1; mem = ipa_mem_find(ipa, IPA_MEM_V6_ROUTE); req.v6_route_tbl_info_valid = 1; req.v6_route_tbl_info.start = ipa->mem_offset + mem->offset; - req.v6_route_tbl_info.count = mem->size / sizeof(__le64); + req.v6_route_tbl_info.end = IPA_ROUTE_MODEM_COUNT - 1; mem = ipa_mem_find(ipa, IPA_MEM_V4_FILTER); req.v4_filter_tbl_start_valid = 1; @@ -352,7 +352,7 @@ req.v4_hash_route_tbl_info_valid = 1; req.v4_hash_route_tbl_info.start = ipa->mem_offset + mem->offset; - req.v4_hash_route_tbl_info.count = mem->size / sizeof(__le64); + req.v4_hash_route_tbl_info.end = IPA_ROUTE_MODEM_COUNT - 1; } mem = ipa_mem_find(ipa, IPA_MEM_V6_ROUTE_HASHED); @@ -360,7 +360,7 @@ req.v6_hash_route_tbl_info_valid = 1; req.v6_hash_route_tbl_info.start = ipa->mem_offset + mem->offset; - req.v6_hash_route_tbl_info.count = mem->size / sizeof(__le64); + req.v6_hash_route_tbl_info.end = IPA_ROUTE_MODEM_COUNT - 1; } mem = ipa_mem_find(ipa, IPA_MEM_V4_FILTER_HASHED); --- linux-5.19.0.orig/drivers/net/ipa/ipa_qmi_msg.c +++ linux-5.19.0/drivers/net/ipa/ipa_qmi_msg.c @@ -311,7 +311,7 @@ .tlv_type = 0x12, .offset = offsetof(struct ipa_init_modem_driver_req, v4_route_tbl_info), - .ei_array = ipa_mem_array_ei, + .ei_array = ipa_mem_bounds_ei, }, { .data_type = QMI_OPT_FLAG, @@ -332,7 +332,7 @@ .tlv_type = 0x13, .offset = offsetof(struct ipa_init_modem_driver_req, v6_route_tbl_info), - .ei_array = ipa_mem_array_ei, + .ei_array = ipa_mem_bounds_ei, }, { .data_type = QMI_OPT_FLAG, @@ -496,7 +496,7 @@ .tlv_type = 0x1b, .offset = offsetof(struct ipa_init_modem_driver_req, v4_hash_route_tbl_info), - .ei_array = ipa_mem_array_ei, + .ei_array = ipa_mem_bounds_ei, }, { .data_type = QMI_OPT_FLAG, @@ -517,7 +517,7 @@ .tlv_type = 0x1c, .offset = offsetof(struct ipa_init_modem_driver_req, v6_hash_route_tbl_info), - .ei_array = ipa_mem_array_ei, + .ei_array = ipa_mem_bounds_ei, }, { .data_type = QMI_OPT_FLAG, --- linux-5.19.0.orig/drivers/net/ipa/ipa_qmi_msg.h +++ linux-5.19.0/drivers/net/ipa/ipa_qmi_msg.h @@ -86,9 +86,11 @@ IPA_QMI_PLATFORM_TYPE_MSM_QNX_V01 = 0x5, /* QNX MSM */ }; -/* This defines the start and end offset of a range of memory. Both - * fields are offsets relative to the start of IPA shared memory. - * The end value is the last addressable byte *within* the range. +/* This defines the start and end offset of a range of memory. The start + * value is a byte offset relative to the start of IPA shared memory. The + * end value is the last addressable unit *within* the range. Typically + * the end value is in units of bytes, however it can also be a maximum + * array index value. */ struct ipa_mem_bounds { u32 start; @@ -129,18 +131,19 @@ u8 hdr_tbl_info_valid; struct ipa_mem_bounds hdr_tbl_info; - /* Routing table information. These define the location and size of - * non-hashable IPv4 and IPv6 filter tables. The start values are - * offsets relative to the start of IPA shared memory. + /* Routing table information. These define the location and maximum + * *index* (not byte) for the modem portion of non-hashable IPv4 and + * IPv6 routing tables. The start values are byte offsets relative + * to the start of IPA shared memory. */ u8 v4_route_tbl_info_valid; - struct ipa_mem_array v4_route_tbl_info; + struct ipa_mem_bounds v4_route_tbl_info; u8 v6_route_tbl_info_valid; - struct ipa_mem_array v6_route_tbl_info; + struct ipa_mem_bounds v6_route_tbl_info; /* Filter table information. These define the location of the * non-hashable IPv4 and IPv6 filter tables. The start values are - * offsets relative to the start of IPA shared memory. + * byte offsets relative to the start of IPA shared memory. */ u8 v4_filter_tbl_start_valid; u32 v4_filter_tbl_start; @@ -181,18 +184,20 @@ u8 zip_tbl_info_valid; struct ipa_mem_bounds zip_tbl_info; - /* Routing table information. These define the location and size - * of hashable IPv4 and IPv6 filter tables. The start values are - * offsets relative to the start of IPA shared memory. + /* Routing table information. These define the location and maximum + * *index* (not byte) for the modem portion of hashable IPv4 and IPv6 + * routing tables (if supported by hardware). The start values are + * byte offsets relative to the start of IPA shared memory. */ u8 v4_hash_route_tbl_info_valid; - struct ipa_mem_array v4_hash_route_tbl_info; + struct ipa_mem_bounds v4_hash_route_tbl_info; u8 v6_hash_route_tbl_info_valid; - struct ipa_mem_array v6_hash_route_tbl_info; + struct ipa_mem_bounds v6_hash_route_tbl_info; /* Filter table information. These define the location and size - * of hashable IPv4 and IPv6 filter tables. The start values are - * offsets relative to the start of IPA shared memory. + * of hashable IPv4 and IPv6 filter tables (if supported by hardware). + * The start values are byte offsets relative to the start of IPA + * shared memory. */ u8 v4_hash_filter_tbl_start_valid; u32 v4_hash_filter_tbl_start; --- linux-5.19.0.orig/drivers/net/ipa/ipa_table.c +++ linux-5.19.0/drivers/net/ipa/ipa_table.c @@ -108,8 +108,6 @@ /* Assignment of route table entries to the modem and AP */ #define IPA_ROUTE_MODEM_MIN 0 -#define IPA_ROUTE_MODEM_COUNT 8 - #define IPA_ROUTE_AP_MIN IPA_ROUTE_MODEM_COUNT #define IPA_ROUTE_AP_COUNT \ (IPA_ROUTE_COUNT_MAX - IPA_ROUTE_MODEM_COUNT) --- linux-5.19.0.orig/drivers/net/ipa/ipa_table.h +++ linux-5.19.0/drivers/net/ipa/ipa_table.h @@ -13,6 +13,9 @@ /* The maximum number of filter table entries (IPv4, IPv6; hashed or not) */ #define IPA_FILTER_COUNT_MAX 14 +/* The number of route table entries allotted to the modem */ +#define IPA_ROUTE_MODEM_COUNT 8 + /* The maximum number of route table entries (IPv4, IPv6; hashed or not) */ #define IPA_ROUTE_COUNT_MAX 15 --- linux-5.19.0.orig/drivers/net/ipvlan/ipvlan_core.c +++ linux-5.19.0/drivers/net/ipvlan/ipvlan_core.c @@ -495,7 +495,6 @@ static int ipvlan_process_outbound(struct sk_buff *skb) { - struct ethhdr *ethh = eth_hdr(skb); int ret = NET_XMIT_DROP; /* The ipvlan is a pseudo-L2 device, so the packets that we receive @@ -505,6 +504,8 @@ if (skb_mac_header_was_set(skb)) { /* In this mode we dont care about * multicast and broadcast traffic */ + struct ethhdr *ethh = eth_hdr(skb); + if (is_multicast_ether_addr(ethh->h_dest)) { pr_debug_ratelimited( "Dropped {multi|broad}cast of type=[%x]\n", @@ -589,7 +590,7 @@ static int ipvlan_xmit_mode_l2(struct sk_buff *skb, struct net_device *dev) { const struct ipvl_dev *ipvlan = netdev_priv(dev); - struct ethhdr *eth = eth_hdr(skb); + struct ethhdr *eth = skb_eth_hdr(skb); struct ipvl_addr *addr; void *lyr3h; int addr_type; @@ -619,6 +620,7 @@ return dev_forward_skb(ipvlan->phy_dev, skb); } else if (is_multicast_ether_addr(eth->h_dest)) { + skb_reset_mac_header(skb); ipvlan_skb_crossing_ns(skb, NULL); ipvlan_multicast_enqueue(ipvlan->port, skb, true); return NET_XMIT_SUCCESS; --- linux-5.19.0.orig/drivers/net/ipvlan/ipvtap.c +++ linux-5.19.0/drivers/net/ipvlan/ipvtap.c @@ -194,7 +194,7 @@ .notifier_call = ipvtap_device_event, }; -static int ipvtap_init(void) +static int __init ipvtap_init(void) { int err; @@ -228,7 +228,7 @@ } module_init(ipvtap_init); -static void ipvtap_exit(void) +static void __exit ipvtap_exit(void) { rtnl_link_unregister(&ipvtap_link_ops); unregister_netdevice_notifier(&ipvtap_notifier_block); --- linux-5.19.0.orig/drivers/net/loopback.c +++ linux-5.19.0/drivers/net/loopback.c @@ -211,7 +211,7 @@ int err; err = -ENOMEM; - dev = alloc_netdev(0, "lo", NET_NAME_UNKNOWN, loopback_setup); + dev = alloc_netdev(0, "lo", NET_NAME_PREDICTABLE, loopback_setup); if (!dev) goto out; --- linux-5.19.0.orig/drivers/net/macsec.c +++ linux-5.19.0/drivers/net/macsec.c @@ -449,11 +449,6 @@ return (struct macsec_eth_header *)skb_mac_header(skb); } -static sci_t dev_to_sci(struct net_device *dev, __be16 port) -{ - return make_sci(dev->dev_addr, port); -} - static void __macsec_pn_wrapped(struct macsec_secy *secy, struct macsec_tx_sa *tx_sa) { @@ -1393,7 +1388,8 @@ return NULL; } -static struct macsec_rx_sc *create_rx_sc(struct net_device *dev, sci_t sci) +static struct macsec_rx_sc *create_rx_sc(struct net_device *dev, sci_t sci, + bool active) { struct macsec_rx_sc *rx_sc; struct macsec_dev *macsec; @@ -1417,7 +1413,7 @@ } rx_sc->sci = sci; - rx_sc->active = true; + rx_sc->active = active; refcount_set(&rx_sc->refcnt, 1); secy = &macsec_priv(dev)->secy; @@ -1826,6 +1822,7 @@ secy->key_len); err = macsec_offload(ops->mdo_add_rxsa, &ctx); + memzero_explicit(ctx.sa.key, secy->key_len); if (err) goto cleanup; } @@ -1870,7 +1867,7 @@ struct macsec_rx_sc *rx_sc; struct nlattr *tb_rxsc[MACSEC_RXSC_ATTR_MAX + 1]; struct macsec_secy *secy; - bool was_active; + bool active = true; int ret; if (!attrs[MACSEC_ATTR_IFINDEX]) @@ -1892,16 +1889,15 @@ secy = &macsec_priv(dev)->secy; sci = nla_get_sci(tb_rxsc[MACSEC_RXSC_ATTR_SCI]); - rx_sc = create_rx_sc(dev, sci); + if (tb_rxsc[MACSEC_RXSC_ATTR_ACTIVE]) + active = nla_get_u8(tb_rxsc[MACSEC_RXSC_ATTR_ACTIVE]); + + rx_sc = create_rx_sc(dev, sci, active); if (IS_ERR(rx_sc)) { rtnl_unlock(); return PTR_ERR(rx_sc); } - was_active = rx_sc->active; - if (tb_rxsc[MACSEC_RXSC_ATTR_ACTIVE]) - rx_sc->active = !!nla_get_u8(tb_rxsc[MACSEC_RXSC_ATTR_ACTIVE]); - if (macsec_is_offloaded(netdev_priv(dev))) { const struct macsec_ops *ops; struct macsec_context ctx; @@ -1925,7 +1921,8 @@ return 0; cleanup: - rx_sc->active = was_active; + del_rx_sc(secy, sci); + free_rx_sc(rx_sc); rtnl_unlock(); return ret; } @@ -2068,6 +2065,7 @@ secy->key_len); err = macsec_offload(ops->mdo_add_txsa, &ctx); + memzero_explicit(ctx.sa.key, secy->key_len); if (err) goto cleanup; } @@ -2564,7 +2562,7 @@ struct macsec_tx_sc *tx_sc = &secy->tx_sc; int i; - if (secy->n_rx_sc > 0) + if (secy->rx_sc) return true; for (i = 0; i < MACSEC_NUM_AN; i++) @@ -2584,7 +2582,7 @@ const struct macsec_ops *ops; struct macsec_context ctx; struct macsec_dev *macsec; - int ret; + int ret = 0; if (!attrs[MACSEC_ATTR_IFINDEX]) return -EINVAL; @@ -2597,28 +2595,36 @@ macsec_genl_offload_policy, NULL)) return -EINVAL; + rtnl_lock(); + dev = get_dev_from_nl(genl_info_net(info), attrs); - if (IS_ERR(dev)) - return PTR_ERR(dev); + if (IS_ERR(dev)) { + ret = PTR_ERR(dev); + goto out; + } macsec = macsec_priv(dev); - if (!tb_offload[MACSEC_OFFLOAD_ATTR_TYPE]) - return -EINVAL; + if (!tb_offload[MACSEC_OFFLOAD_ATTR_TYPE]) { + ret = -EINVAL; + goto out; + } offload = nla_get_u8(tb_offload[MACSEC_OFFLOAD_ATTR_TYPE]); if (macsec->offload == offload) - return 0; + goto out; /* Check if the offloading mode is supported by the underlying layers */ if (offload != MACSEC_OFFLOAD_OFF && - !macsec_check_offload(offload, macsec)) - return -EOPNOTSUPP; + !macsec_check_offload(offload, macsec)) { + ret = -EOPNOTSUPP; + goto out; + } /* Check if the net device is busy. */ - if (netif_running(dev)) - return -EBUSY; - - rtnl_lock(); + if (netif_running(dev)) { + ret = -EBUSY; + goto out; + } prev_offload = macsec->offload; macsec->offload = offload; @@ -2648,17 +2654,12 @@ if (ret) goto rollback; - /* Force features update, since they are different for SW MACSec and - * HW offloading cases. - */ - netdev_update_features(dev); - rtnl_unlock(); return 0; rollback: macsec->offload = prev_offload; - +out: rtnl_unlock(); return ret; } @@ -3420,16 +3421,9 @@ return ret; } -#define SW_MACSEC_FEATURES \ +#define MACSEC_FEATURES \ (NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_FRAGLIST) -/* If h/w offloading is enabled, use real device features save for - * VLAN_FEATURES - they require additional ops - * HW_MACSEC - no reason to report it - */ -#define REAL_DEV_FEATURES(dev) \ - ((dev)->features & ~(NETIF_F_VLAN_FEATURES | NETIF_F_HW_MACSEC)) - static int macsec_dev_init(struct net_device *dev) { struct macsec_dev *macsec = macsec_priv(dev); @@ -3446,12 +3440,8 @@ return err; } - if (macsec_is_offloaded(macsec)) { - dev->features = REAL_DEV_FEATURES(real_dev); - } else { - dev->features = real_dev->features & SW_MACSEC_FEATURES; - dev->features |= NETIF_F_LLTX | NETIF_F_GSO_SOFTWARE; - } + dev->features = real_dev->features & MACSEC_FEATURES; + dev->features |= NETIF_F_LLTX | NETIF_F_GSO_SOFTWARE; dev->needed_headroom = real_dev->needed_headroom + MACSEC_NEEDED_HEADROOM; @@ -3483,10 +3473,7 @@ struct macsec_dev *macsec = macsec_priv(dev); struct net_device *real_dev = macsec->real_dev; - if (macsec_is_offloaded(macsec)) - return REAL_DEV_FEATURES(real_dev); - - features &= (real_dev->features & SW_MACSEC_FEATURES) | + features &= (real_dev->features & MACSEC_FEATURES) | NETIF_F_GSO_SOFTWARE | NETIF_F_SOFT_FEATURES; features |= NETIF_F_LLTX; @@ -3622,7 +3609,6 @@ out: eth_hw_addr_set(dev, addr->sa_data); - macsec->secy.sci = dev_to_sci(dev, MACSEC_PORT_ES); /* If h/w offloading is available, propagate to the device */ if (macsec_is_offloaded(macsec)) { @@ -3702,6 +3688,7 @@ [IFLA_MACSEC_SCB] = { .type = NLA_U8 }, [IFLA_MACSEC_REPLAY_PROTECT] = { .type = NLA_U8 }, [IFLA_MACSEC_VALIDATION] = { .type = NLA_U8 }, + [IFLA_MACSEC_OFFLOAD] = { .type = NLA_U8 }, }; static void macsec_free_netdev(struct net_device *dev) @@ -3837,7 +3824,6 @@ if (macsec_is_offloaded(macsec)) { const struct macsec_ops *ops; struct macsec_context ctx; - int ret; ops = macsec_get_ops(netdev_priv(dev), &ctx); if (!ops) { @@ -3960,6 +3946,11 @@ 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); --- linux-5.19.0.orig/drivers/net/macvlan.c +++ linux-5.19.0/drivers/net/macvlan.c @@ -141,7 +141,7 @@ u32 idx = macvlan_eth_hash(addr); struct hlist_head *h = &vlan->port->vlan_source_hash[idx]; - hlist_for_each_entry_rcu(entry, h, hlist) { + hlist_for_each_entry_rcu(entry, h, hlist, lockdep_rtnl_is_held()) { if (ether_addr_equal_64bits(entry->addr, addr) && entry->vlan == vlan) return entry; @@ -1192,7 +1192,7 @@ { ether_setup(dev); - dev->min_mtu = 0; + /* ether_setup() has set dev->min_mtu to ETH_MIN_MTU. */ dev->max_mtu = ETH_MAX_MTU; dev->priv_flags &= ~IFF_TX_SKB_SHARING; netif_keep_dst(dev); @@ -1533,8 +1533,10 @@ /* the macvlan port may be freed by macvlan_uninit when fail to register. * so we destroy the macvlan port only when it's valid. */ - if (create && macvlan_port_get_rtnl(lowerdev)) + if (create && macvlan_port_get_rtnl(lowerdev)) { + macvlan_flush_sources(port, vlan); macvlan_port_destroy(port->dev); + } return err; } EXPORT_SYMBOL_GPL(macvlan_common_newlink); @@ -1645,7 +1647,7 @@ struct hlist_head *h = &vlan->port->vlan_source_hash[i]; struct macvlan_source_entry *entry; - hlist_for_each_entry_rcu(entry, h, hlist) { + hlist_for_each_entry_rcu(entry, h, hlist, lockdep_rtnl_is_held()) { if (entry->vlan != vlan) continue; if (nla_put(skb, IFLA_MACVLAN_MACADDR, ETH_ALEN, entry->addr)) --- linux-5.19.0.orig/drivers/net/mctp/mctp-i2c.c +++ linux-5.19.0/drivers/net/mctp/mctp-i2c.c @@ -43,6 +43,7 @@ enum { MCTP_I2C_FLOW_STATE_NEW = 0, MCTP_I2C_FLOW_STATE_ACTIVE, + MCTP_I2C_FLOW_STATE_INVALID, }; /* List of all struct mctp_i2c_client @@ -374,12 +375,18 @@ */ if (!key->valid) { state = MCTP_I2C_TX_FLOW_INVALID; - - } else if (key->dev_flow_state == MCTP_I2C_FLOW_STATE_NEW) { - key->dev_flow_state = MCTP_I2C_FLOW_STATE_ACTIVE; - state = MCTP_I2C_TX_FLOW_NEW; } else { - state = MCTP_I2C_TX_FLOW_EXISTING; + switch (key->dev_flow_state) { + case MCTP_I2C_FLOW_STATE_NEW: + key->dev_flow_state = MCTP_I2C_FLOW_STATE_ACTIVE; + state = MCTP_I2C_TX_FLOW_NEW; + break; + case MCTP_I2C_FLOW_STATE_ACTIVE: + state = MCTP_I2C_TX_FLOW_EXISTING; + break; + default: + state = MCTP_I2C_TX_FLOW_INVALID; + } } spin_unlock_irqrestore(&key->lock, flags); @@ -617,21 +624,31 @@ { struct mctp_i2c_dev *midev = netdev_priv(mdev->dev); + bool queue_release = false; unsigned long flags; spin_lock_irqsave(&midev->lock, flags); - midev->release_count++; - spin_unlock_irqrestore(&midev->lock, flags); - - /* Ensure we have a release operation queued, through the fake - * marker skb + /* if we have seen the flow/key previously, we need to pair the + * original lock with a release */ - spin_lock(&midev->tx_queue.lock); - if (!midev->unlock_marker.next) - __skb_queue_tail(&midev->tx_queue, &midev->unlock_marker); - spin_unlock(&midev->tx_queue.lock); + if (key->dev_flow_state == MCTP_I2C_FLOW_STATE_ACTIVE) { + midev->release_count++; + queue_release = true; + } + key->dev_flow_state = MCTP_I2C_FLOW_STATE_INVALID; + spin_unlock_irqrestore(&midev->lock, flags); - wake_up(&midev->tx_wq); + if (queue_release) { + /* Ensure we have a release operation queued, through the fake + * marker skb + */ + spin_lock(&midev->tx_queue.lock); + if (!midev->unlock_marker.next) + __skb_queue_tail(&midev->tx_queue, + &midev->unlock_marker); + spin_unlock(&midev->tx_queue.lock); + wake_up(&midev->tx_wq); + } } static const struct net_device_ops mctp_i2c_ops = { --- linux-5.19.0.orig/drivers/net/mctp/mctp-serial.c +++ linux-5.19.0/drivers/net/mctp/mctp-serial.c @@ -35,6 +35,8 @@ #define BYTE_FRAME 0x7e #define BYTE_ESC 0x7d +#define FCS_INIT 0xffff + static DEFINE_IDA(mctp_serial_ida); enum mctp_serial_state { @@ -123,7 +125,7 @@ buf[2] = dev->txlen; if (!dev->txpos) - dev->txfcs = crc_ccitt(0, buf + 1, 2); + dev->txfcs = crc_ccitt(FCS_INIT, buf + 1, 2); txlen = write_chunk(dev, buf + dev->txpos, 3 - dev->txpos); if (txlen <= 0) { @@ -303,7 +305,7 @@ case 1: if (c == MCTP_SERIAL_VERSION) { dev->rxpos++; - dev->rxfcs = crc_ccitt_byte(0, c); + dev->rxfcs = crc_ccitt_byte(FCS_INIT, c); } else { dev->rxstate = STATE_ERR; } --- linux-5.19.0.orig/drivers/net/mdio/fwnode_mdio.c +++ linux-5.19.0/drivers/net/mdio/fwnode_mdio.c @@ -77,6 +77,7 @@ */ rc = phy_device_register(phy); if (rc) { + device_set_node(&phy->mdio.dev, NULL); fwnode_handle_put(child); return rc; } @@ -110,8 +111,8 @@ else phy = phy_device_create(bus, addr, phy_id, 0, NULL); if (IS_ERR(phy)) { - unregister_mii_timestamper(mii_ts); - return PTR_ERR(phy); + rc = PTR_ERR(phy); + goto clean_mii_ts; } if (is_acpi_node(child)) { @@ -120,22 +121,19 @@ /* Associate the fwnode with the device structure so it * can be looked up later. */ - phy->mdio.dev.fwnode = child; + phy->mdio.dev.fwnode = fwnode_handle_get(child); /* All data is now stored in the phy struct, so register it */ rc = phy_device_register(phy); if (rc) { - phy_device_free(phy); - fwnode_handle_put(phy->mdio.dev.fwnode); - return rc; + phy->mdio.dev.fwnode = NULL; + fwnode_handle_put(child); + goto clean_phy; } } else if (is_of_node(child)) { rc = fwnode_mdiobus_phy_device_register(bus, phy, child, addr); - if (rc) { - unregister_mii_timestamper(mii_ts); - phy_device_free(phy); - return rc; - } + if (rc) + goto clean_phy; } /* phy->mii_ts may already be defined by the PHY driver. A @@ -145,5 +143,12 @@ if (mii_ts) phy->mii_ts = mii_ts; return 0; + +clean_phy: + phy_device_free(phy); +clean_mii_ts: + unregister_mii_timestamper(mii_ts); + + return rc; } EXPORT_SYMBOL(fwnode_mdiobus_register_phy); --- linux-5.19.0.orig/drivers/net/mdio/of_mdio.c +++ linux-5.19.0/drivers/net/mdio/of_mdio.c @@ -68,8 +68,9 @@ /* All data is now stored in the mdiodev struct; register it. */ rc = mdio_device_register(mdiodev); if (rc) { + device_set_node(&mdiodev->dev, NULL); + fwnode_handle_put(fwnode); mdio_device_free(mdiodev); - of_node_put(child); return rc; } @@ -231,6 +232,7 @@ return 0; unregister: + of_node_put(child); mdiobus_unregister(mdio); return rc; } --- linux-5.19.0.orig/drivers/net/mhi_net.c +++ linux-5.19.0/drivers/net/mhi_net.c @@ -343,6 +343,8 @@ kfree_skb(mhi_netdev->skbagg_head); + free_netdev(ndev); + dev_set_drvdata(&mhi_dev->dev, NULL); } --- linux-5.19.0.orig/drivers/net/netdevsim/bpf.c +++ linux-5.19.0/drivers/net/netdevsim/bpf.c @@ -351,10 +351,12 @@ { struct nsim_bpf_bound_map *nmap = offmap->dev_priv; - nmap->entry[idx].key = kmalloc(offmap->map.key_size, GFP_USER); + nmap->entry[idx].key = kmalloc(offmap->map.key_size, + GFP_KERNEL_ACCOUNT | __GFP_NOWARN); if (!nmap->entry[idx].key) return -ENOMEM; - nmap->entry[idx].value = kmalloc(offmap->map.value_size, GFP_USER); + nmap->entry[idx].value = kmalloc(offmap->map.value_size, + GFP_KERNEL_ACCOUNT | __GFP_NOWARN); if (!nmap->entry[idx].value) { kfree(nmap->entry[idx].key); nmap->entry[idx].key = NULL; @@ -496,7 +498,7 @@ if (offmap->map.map_flags) return -EINVAL; - nmap = kzalloc(sizeof(*nmap), GFP_USER); + nmap = kzalloc(sizeof(*nmap), GFP_KERNEL_ACCOUNT); if (!nmap) return -ENOMEM; --- linux-5.19.0.orig/drivers/net/netdevsim/bus.c +++ linux-5.19.0/drivers/net/netdevsim/bus.c @@ -135,6 +135,10 @@ static void nsim_bus_dev_release(struct device *dev) { + struct nsim_bus_dev *nsim_bus_dev; + + nsim_bus_dev = container_of(dev, struct nsim_bus_dev, dev); + kfree(nsim_bus_dev); } static struct device_type nsim_bus_dev_type = { @@ -310,6 +314,8 @@ err_nsim_bus_dev_id_free: ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); + put_device(&nsim_bus_dev->dev); + nsim_bus_dev = NULL; err_nsim_bus_dev_free: kfree(nsim_bus_dev); return ERR_PTR(err); @@ -319,9 +325,8 @@ { /* Disallow using nsim_bus_dev */ smp_store_release(&nsim_bus_dev->init, false); - device_unregister(&nsim_bus_dev->dev); ida_free(&nsim_bus_dev_ids, nsim_bus_dev->dev.id); - kfree(nsim_bus_dev); + device_unregister(&nsim_bus_dev->dev); } static struct device_driver nsim_driver = { --- linux-5.19.0.orig/drivers/net/netdevsim/dev.c +++ linux-5.19.0/drivers/net/netdevsim/dev.c @@ -309,8 +309,10 @@ if (IS_ERR(nsim_dev->ddir)) return PTR_ERR(nsim_dev->ddir); nsim_dev->ports_ddir = debugfs_create_dir("ports", nsim_dev->ddir); - if (IS_ERR(nsim_dev->ports_ddir)) - return PTR_ERR(nsim_dev->ports_ddir); + if (IS_ERR(nsim_dev->ports_ddir)) { + err = PTR_ERR(nsim_dev->ports_ddir); + goto err_ddir; + } debugfs_create_bool("fw_update_status", 0600, nsim_dev->ddir, &nsim_dev->fw_update_status); debugfs_create_u32("fw_update_overwrite_mask", 0600, nsim_dev->ddir, @@ -346,7 +348,7 @@ nsim_dev->nodes_ddir = debugfs_create_dir("rate_nodes", nsim_dev->ddir); if (IS_ERR(nsim_dev->nodes_ddir)) { err = PTR_ERR(nsim_dev->nodes_ddir); - goto err_out; + goto err_ports_ddir; } debugfs_create_bool("fail_trap_drop_counter_get", 0600, nsim_dev->ddir, @@ -354,8 +356,9 @@ nsim_udp_tunnels_debugfs_create(nsim_dev); return 0; -err_out: +err_ports_ddir: debugfs_remove_recursive(nsim_dev->ports_ddir); +err_ddir: debugfs_remove_recursive(nsim_dev->ddir); return err; } @@ -1679,6 +1682,7 @@ ARRAY_SIZE(nsim_devlink_params)); devlink_resources_unregister(devlink); kfree(nsim_dev->vfconfigs); + kfree(nsim_dev->fa_cookie); devlink_free(devlink); dev_set_drvdata(&nsim_bus_dev->dev, NULL); } --- linux-5.19.0.orig/drivers/net/netdevsim/fib.c +++ linux-5.19.0/drivers/net/netdevsim/fib.c @@ -54,6 +54,7 @@ struct rhashtable nexthop_ht; struct devlink *devlink; struct work_struct fib_event_work; + struct work_struct fib_flush_work; struct list_head fib_event_queue; spinlock_t fib_event_queue_lock; /* Protects fib event queue list */ struct mutex nh_lock; /* Protects NH HT */ @@ -978,7 +979,7 @@ fib_event = kzalloc(sizeof(*fib_event), GFP_ATOMIC); if (!fib_event) - return NOTIFY_BAD; + goto err_fib_event_alloc; fib_event->data = data; fib_event->event = event; @@ -1006,6 +1007,9 @@ err_fib_prepare_event: kfree(fib_event); +err_fib_event_alloc: + if (event == FIB_EVENT_ENTRY_DEL) + schedule_work(&data->fib_flush_work); return NOTIFY_BAD; } @@ -1483,6 +1487,24 @@ mutex_unlock(&data->fib_lock); } +static void nsim_fib_flush_work(struct work_struct *work) +{ + struct nsim_fib_data *data = container_of(work, struct nsim_fib_data, + fib_flush_work); + struct nsim_fib_rt *fib_rt, *fib_rt_tmp; + + /* Process pending work. */ + flush_work(&data->fib_event_work); + + mutex_lock(&data->fib_lock); + list_for_each_entry_safe(fib_rt, fib_rt_tmp, &data->fib_rt_list, list) { + rhashtable_remove_fast(&data->fib_rt_ht, &fib_rt->ht_node, + nsim_fib_rt_ht_params); + nsim_fib_rt_free(fib_rt, data); + } + mutex_unlock(&data->fib_lock); +} + static int nsim_fib_debugfs_init(struct nsim_fib_data *data, struct nsim_dev *nsim_dev) { @@ -1541,6 +1563,7 @@ goto err_rhashtable_nexthop_destroy; INIT_WORK(&data->fib_event_work, nsim_fib_event_work); + INIT_WORK(&data->fib_flush_work, nsim_fib_flush_work); INIT_LIST_HEAD(&data->fib_event_queue); spin_lock_init(&data->fib_event_queue_lock); @@ -1587,6 +1610,7 @@ err_nexthop_nb_unregister: unregister_nexthop_notifier(devlink_net(devlink), &data->nexthop_nb); err_rhashtable_fib_destroy: + cancel_work_sync(&data->fib_flush_work); flush_work(&data->fib_event_work); rhashtable_free_and_destroy(&data->fib_rt_ht, nsim_fib_rt_free, data); @@ -1616,6 +1640,7 @@ NSIM_RESOURCE_IPV4_FIB); unregister_fib_notifier(devlink_net(devlink), &data->fib_nb); unregister_nexthop_notifier(devlink_net(devlink), &data->nexthop_nb); + cancel_work_sync(&data->fib_flush_work); flush_work(&data->fib_event_work); rhashtable_free_and_destroy(&data->fib_rt_ht, nsim_fib_rt_free, data); --- linux-5.19.0.orig/drivers/net/netdevsim/hwstats.c +++ linux-5.19.0/drivers/net/netdevsim/hwstats.c @@ -433,11 +433,11 @@ goto err_remove_hwstats_recursive; } - debugfs_create_file("enable_ifindex", 0600, hwstats->l3_ddir, hwstats, + debugfs_create_file("enable_ifindex", 0200, hwstats->l3_ddir, hwstats, &nsim_dev_hwstats_l3_enable_fops.fops); - debugfs_create_file("disable_ifindex", 0600, hwstats->l3_ddir, hwstats, + debugfs_create_file("disable_ifindex", 0200, hwstats->l3_ddir, hwstats, &nsim_dev_hwstats_l3_disable_fops.fops); - debugfs_create_file("fail_next_enable", 0600, hwstats->l3_ddir, hwstats, + debugfs_create_file("fail_next_enable", 0200, hwstats->l3_ddir, hwstats, &nsim_dev_hwstats_l3_fail_fops.fops); INIT_DELAYED_WORK(&hwstats->traffic_dw, --- linux-5.19.0.orig/drivers/net/netdevsim/netdev.c +++ linux-5.19.0/drivers/net/netdevsim/netdev.c @@ -67,10 +67,10 @@ unsigned int start; do { - start = u64_stats_fetch_begin(&ns->syncp); + start = u64_stats_fetch_begin_irq(&ns->syncp); stats->tx_bytes = ns->tx_bytes; stats->tx_packets = ns->tx_packets; - } while (u64_stats_fetch_retry(&ns->syncp, start)); + } while (u64_stats_fetch_retry_irq(&ns->syncp, start)); } static int --- linux-5.19.0.orig/drivers/net/ntb_netdev.c +++ linux-5.19.0/drivers/net/ntb_netdev.c @@ -137,7 +137,7 @@ enqueue_again: rc = ntb_transport_rx_enqueue(qp, skb, skb->data, ndev->mtu + ETH_HLEN); if (rc) { - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); ndev->stats.rx_errors++; ndev->stats.rx_fifo_errors++; } @@ -192,7 +192,7 @@ ndev->stats.tx_aborted_errors++; } - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); if (ntb_transport_tx_free_entry(dev->qp) >= tx_start) { /* Make sure anybody stopping the queue after this sees the new @@ -484,7 +484,14 @@ rc = ntb_transport_register_client_dev(KBUILD_MODNAME); if (rc) return rc; - return ntb_transport_register_client(&ntb_netdev_client); + + rc = ntb_transport_register_client(&ntb_netdev_client); + if (rc) { + ntb_transport_unregister_client_dev(KBUILD_MODNAME); + return rc; + } + + return 0; } module_init(ntb_netdev_init_module); --- linux-5.19.0.orig/drivers/net/phy/aquantia_main.c +++ linux-5.19.0/drivers/net/phy/aquantia_main.c @@ -90,6 +90,9 @@ #define VEND1_GLOBAL_FW_ID_MAJOR GENMASK(15, 8) #define VEND1_GLOBAL_FW_ID_MINOR GENMASK(7, 0) +#define VEND1_GLOBAL_GEN_STAT2 0xc831 +#define VEND1_GLOBAL_GEN_STAT2_OP_IN_PROG BIT(15) + #define VEND1_GLOBAL_RSVD_STAT1 0xc885 #define VEND1_GLOBAL_RSVD_STAT1_FW_BUILD_ID GENMASK(7, 4) #define VEND1_GLOBAL_RSVD_STAT1_PROV_ID GENMASK(3, 0) @@ -124,6 +127,12 @@ #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL2 BIT(1) #define VEND1_GLOBAL_INT_VEND_MASK_GLOBAL3 BIT(0) +/* Sleep and timeout for checking if the Processor-Intensive + * MDIO operation is finished + */ +#define AQR107_OP_IN_PROG_SLEEP 1000 +#define AQR107_OP_IN_PROG_TIMEOUT 100000 + struct aqr107_hw_stat { const char *name; int reg; @@ -596,16 +605,52 @@ phydev_info(phydev, "Aquantia 1000Base-T2 mode active\n"); } +static int aqr107_wait_processor_intensive_op(struct phy_device *phydev) +{ + int val, err; + + /* The datasheet notes to wait at least 1ms after issuing a + * processor intensive operation before checking. + * We cannot use the 'sleep_before_read' parameter of read_poll_timeout + * because that just determines the maximum time slept, not the minimum. + */ + usleep_range(1000, 5000); + + err = phy_read_mmd_poll_timeout(phydev, MDIO_MMD_VEND1, + VEND1_GLOBAL_GEN_STAT2, val, + !(val & VEND1_GLOBAL_GEN_STAT2_OP_IN_PROG), + AQR107_OP_IN_PROG_SLEEP, + AQR107_OP_IN_PROG_TIMEOUT, false); + if (err) { + phydev_err(phydev, "timeout: processor-intensive MDIO operation\n"); + return err; + } + + return 0; +} + static int aqr107_suspend(struct phy_device *phydev) { - return phy_set_bits_mmd(phydev, MDIO_MMD_VEND1, MDIO_CTRL1, - MDIO_CTRL1_LPOWER); + int err; + + err = phy_set_bits_mmd(phydev, MDIO_MMD_VEND1, MDIO_CTRL1, + MDIO_CTRL1_LPOWER); + if (err) + return err; + + return aqr107_wait_processor_intensive_op(phydev); } static int aqr107_resume(struct phy_device *phydev) { - return phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1, MDIO_CTRL1, - MDIO_CTRL1_LPOWER); + int err; + + err = phy_clear_bits_mmd(phydev, MDIO_MMD_VEND1, MDIO_CTRL1, + MDIO_CTRL1_LPOWER); + if (err) + return err; + + return aqr107_wait_processor_intensive_op(phydev); } static int aqr107_probe(struct phy_device *phydev) --- linux-5.19.0.orig/drivers/net/phy/at803x.c +++ linux-5.19.0/drivers/net/phy/at803x.c @@ -862,8 +862,10 @@ .wolopts = 0, }; - if (ccr < 0) + if (ccr < 0) { + ret = ccr; goto err; + } mode_cfg = ccr & AT803X_MODE_CFG_MASK; switch (mode_cfg) { --- linux-5.19.0.orig/drivers/net/phy/dp83822.c +++ linux-5.19.0/drivers/net/phy/dp83822.c @@ -254,8 +254,7 @@ DP83822_EEE_ERROR_CHANGE_INT_EN); if (!dp83822->fx_enabled) - misr_status |= DP83822_MDI_XOVER_INT_EN | - DP83822_ANEG_ERR_INT_EN | + misr_status |= DP83822_ANEG_ERR_INT_EN | DP83822_WOL_PKT_INT_EN; err = phy_write(phydev, MII_DP83822_MISR2, misr_status); --- linux-5.19.0.orig/drivers/net/phy/dp83867.c +++ linux-5.19.0/drivers/net/phy/dp83867.c @@ -639,6 +639,13 @@ */ dp83867->io_impedance = DP83867_IO_MUX_CFG_IO_IMPEDANCE_MIN / 2; + /* For non-OF device, the RX and TX FIFO depths are taken from + * default value. So, we init RX & TX FIFO depths here + * so that it is configured correctly later in dp83867_config_init(); + */ + dp83867->tx_fifo_depth = DP83867_PHYCR_FIFO_DEPTH_4_B_NIB; + dp83867->rx_fifo_depth = DP83867_PHYCR_FIFO_DEPTH_4_B_NIB; + return 0; } #endif /* CONFIG_OF_MDIO */ @@ -810,6 +817,14 @@ else val &= ~DP83867_SGMII_TYPE; phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_SGMIICTL, val); + + /* This is a SW workaround for link instability if RX_CTRL is + * not strapped to mode 3 or 4 in HW. This is required for SGMII + * in addition to clearing bit 7, handled above. + */ + if (dp83867->rxctrl_strap_quirk) + phy_set_bits_mmd(phydev, DP83867_DEVADDR, DP83867_CFG4, + BIT(8)); } val = phy_read(phydev, DP83867_CFG3); --- linux-5.19.0.orig/drivers/net/phy/marvell.c +++ linux-5.19.0/drivers/net/phy/marvell.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include @@ -308,6 +309,16 @@ s8 pair; }; +static const struct dmi_system_id skip_config_led_tbl[] = { + { + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Dell EMC"), + DMI_MATCH(DMI_BOARD_NAME, "0d370eed-89ca-4dc0-a365-e9904c4c62bb"), + }, + }, + {} +}; + static int marvell_read_page(struct phy_device *phydev) { return __phy_read(phydev, MII_MARVELL_PHY_PAGE); @@ -755,6 +766,9 @@ u16 def_config; int err; + if (dmi_check_system(skip_config_led_tbl)) + return; + switch (MARVELL_PHY_FAMILY_ID(phydev->phy_id)) { /* Default PHY LED config: LED[0] .. Link, LED[1] .. Activity */ case MARVELL_PHY_FAMILY_ID(MARVELL_PHY_ID_88E1121R): @@ -2021,14 +2035,16 @@ if (err < 0) return err; - /* FIXME: Based on trial and error test, it seem 1G need to have - * delay between soft reset and loopback enablement. - */ - if (phydev->speed == SPEED_1000) - msleep(1000); + err = phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, + BMCR_LOOPBACK); - return phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, - BMCR_LOOPBACK); + if (!err) { + /* It takes some time for PHY device to switch + * into/out-of loopback mode. + */ + msleep(1000); + } + return err; } else { err = phy_modify(phydev, MII_BMCR, BMCR_LOOPBACK, 0); if (err < 0) --- linux-5.19.0.orig/drivers/net/phy/mdio_bus.c +++ linux-5.19.0/drivers/net/phy/mdio_bus.c @@ -583,7 +583,7 @@ } for (i = 0; i < PHY_MAX_ADDR; i++) { - if ((bus->phy_mask & (1 << i)) == 0) { + if ((bus->phy_mask & BIT(i)) == 0) { struct phy_device *phydev; phydev = mdiobus_scan(bus, i); --- linux-5.19.0.orig/drivers/net/phy/mdio_device.c +++ linux-5.19.0/drivers/net/phy/mdio_device.c @@ -21,6 +21,7 @@ #include #include #include +#include void mdio_device_free(struct mdio_device *mdiodev) { @@ -30,6 +31,7 @@ static void mdio_device_release(struct device *dev) { + fwnode_handle_put(dev->fwnode); kfree(to_mdio_device(dev)); } --- linux-5.19.0.orig/drivers/net/phy/meson-gxl.c +++ linux-5.19.0/drivers/net/phy/meson-gxl.c @@ -243,13 +243,7 @@ irq_status == INTSRC_ENERGY_DETECT) return IRQ_HANDLED; - /* Give PHY some time before MAC starts sending data. This works - * around an issue where network doesn't come up properly. - */ - if (!(irq_status & INTSRC_LINK_DOWN)) - phy_queue_state_machine(phydev, msecs_to_jiffies(100)); - else - phy_trigger_machine(phydev); + phy_trigger_machine(phydev); return IRQ_HANDLED; } --- linux-5.19.0.orig/drivers/net/phy/micrel.c +++ linux-5.19.0/drivers/net/phy/micrel.c @@ -2662,16 +2662,19 @@ static irqreturn_t lan8814_handle_interrupt(struct phy_device *phydev) { int irq_status, tsu_irq_status; + int ret = IRQ_NONE; irq_status = phy_read(phydev, LAN8814_INTS); - if (irq_status > 0 && (irq_status & LAN8814_INT_LINK)) - phy_trigger_machine(phydev); - if (irq_status < 0) { phy_error(phydev); return IRQ_NONE; } + if (irq_status & LAN8814_INT_LINK) { + phy_trigger_machine(phydev); + ret = IRQ_HANDLED; + } + while (1) { tsu_irq_status = lanphy_read_page_reg(phydev, 4, LAN8814_INTR_STS_REG); @@ -2680,12 +2683,15 @@ (tsu_irq_status & (LAN8814_INTR_STS_REG_1588_TSU0_ | LAN8814_INTR_STS_REG_1588_TSU1_ | LAN8814_INTR_STS_REG_1588_TSU2_ | - LAN8814_INTR_STS_REG_1588_TSU3_))) + LAN8814_INTR_STS_REG_1588_TSU3_))) { lan8814_handle_ptp_interrupt(phydev); - else + ret = IRQ_HANDLED; + } else { break; + } } - return IRQ_HANDLED; + + return ret; } static int lan8814_ack_interrupt(struct phy_device *phydev) @@ -2838,12 +2844,18 @@ return 0; } +/* It is expected that there will not be any 'lan8814_take_coma_mode' + * function called in suspend. Because the GPIO line can be shared, so if one of + * the phys goes back in coma mode, then all the other PHYs will go, which is + * wrong. + */ static int lan8814_release_coma_mode(struct phy_device *phydev) { struct gpio_desc *gpiod; gpiod = devm_gpiod_get_optional(&phydev->mdio.dev, "coma-mode", - GPIOD_OUT_HIGH_OPEN_DRAIN); + GPIOD_OUT_HIGH_OPEN_DRAIN | + GPIOD_FLAGS_BIT_NONEXCLUSIVE); if (IS_ERR(gpiod)) return PTR_ERR(gpiod); --- linux-5.19.0.orig/drivers/net/phy/microchip_t1.c +++ linux-5.19.0/drivers/net/phy/microchip_t1.c @@ -28,12 +28,16 @@ /* Interrupt Source Register */ #define LAN87XX_INTERRUPT_SOURCE (0x18) +#define LAN87XX_INTERRUPT_SOURCE_2 (0x08) /* Interrupt Mask Register */ #define LAN87XX_INTERRUPT_MASK (0x19) #define LAN87XX_MASK_LINK_UP (0x0004) #define LAN87XX_MASK_LINK_DOWN (0x0002) +#define LAN87XX_INTERRUPT_MASK_2 (0x09) +#define LAN87XX_MASK_COMM_RDY BIT(10) + /* MISC Control 1 Register */ #define LAN87XX_CTRL_1 (0x11) #define LAN87XX_MASK_RGMII_TXC_DLY_EN (0x4000) @@ -424,17 +428,55 @@ int rc, val = 0; if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { - /* unmask all source and clear them before enable */ - rc = phy_write(phydev, LAN87XX_INTERRUPT_MASK, 0x7FFF); + /* clear all interrupt */ + rc = phy_write(phydev, LAN87XX_INTERRUPT_MASK, val); + if (rc < 0) + return rc; + rc = phy_read(phydev, LAN87XX_INTERRUPT_SOURCE); - val = LAN87XX_MASK_LINK_UP | LAN87XX_MASK_LINK_DOWN; + if (rc < 0) + return rc; + + rc = access_ereg(phydev, PHYACC_ATTR_MODE_WRITE, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_MASK_2, val); + if (rc < 0) + return rc; + + rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_SOURCE_2, 0); + if (rc < 0) + return rc; + + /* enable link down and comm ready interrupt */ + val = LAN87XX_MASK_LINK_DOWN; rc = phy_write(phydev, LAN87XX_INTERRUPT_MASK, val); + if (rc < 0) + return rc; + + val = LAN87XX_MASK_COMM_RDY; + rc = access_ereg(phydev, PHYACC_ATTR_MODE_WRITE, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_MASK_2, val); } else { rc = phy_write(phydev, LAN87XX_INTERRUPT_MASK, val); - if (rc) + if (rc < 0) return rc; rc = phy_read(phydev, LAN87XX_INTERRUPT_SOURCE); + if (rc < 0) + return rc; + + rc = access_ereg(phydev, PHYACC_ATTR_MODE_WRITE, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_MASK_2, val); + if (rc < 0) + return rc; + + rc = access_ereg(phydev, PHYACC_ATTR_MODE_READ, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_SOURCE_2, 0); } return rc < 0 ? rc : 0; @@ -444,6 +486,14 @@ { int irq_status; + irq_status = access_ereg(phydev, PHYACC_ATTR_MODE_READ, + PHYACC_ATTR_BANK_MISC, + LAN87XX_INTERRUPT_SOURCE_2, 0); + if (irq_status < 0) { + phy_error(phydev); + return IRQ_NONE; + } + irq_status = phy_read(phydev, LAN87XX_INTERRUPT_SOURCE); if (irq_status < 0) { phy_error(phydev); --- linux-5.19.0.orig/drivers/net/phy/mscc/mscc_macsec.c +++ linux-5.19.0/drivers/net/phy/mscc/mscc_macsec.c @@ -632,6 +632,7 @@ list_del(&flow->list); clear_bit(flow->index, bitmap); + memzero_explicit(flow->key, sizeof(flow->key)); kfree(flow); } --- linux-5.19.0.orig/drivers/net/phy/mxl-gpy.c +++ linux-5.19.0/drivers/net/phy/mxl-gpy.c @@ -96,6 +96,7 @@ static int gpy_probe(struct phy_device *phydev) { + int fw_version; int ret; if (!phydev->is_c45) { @@ -105,12 +106,12 @@ } /* Show GPY PHY FW version in dmesg */ - ret = phy_read(phydev, PHY_FWV); - if (ret < 0) - return ret; + fw_version = phy_read(phydev, PHY_FWV); + if (fw_version < 0) + return fw_version; - phydev_info(phydev, "Firmware Version: 0x%04X (%s)\n", ret, - (ret & PHY_FWV_REL_MASK) ? "release" : "test"); + phydev_info(phydev, "Firmware Version: 0x%04X (%s)\n", fw_version, + (fw_version & PHY_FWV_REL_MASK) ? "release" : "test"); return 0; } --- linux-5.19.0.orig/drivers/net/phy/phy-c45.c +++ linux-5.19.0/drivers/net/phy/phy-c45.c @@ -190,44 +190,42 @@ */ static int genphy_c45_baset1_an_config_aneg(struct phy_device *phydev) { + u16 adv_l_mask, adv_l = 0; + u16 adv_m_mask, adv_m = 0; int changed = 0; - u16 adv_l = 0; - u16 adv_m = 0; int ret; + adv_l_mask = MDIO_AN_T1_ADV_L_FORCE_MS | MDIO_AN_T1_ADV_L_PAUSE_CAP | + MDIO_AN_T1_ADV_L_PAUSE_ASYM; + adv_m_mask = MDIO_AN_T1_ADV_M_MST | MDIO_AN_T1_ADV_M_B10L; + switch (phydev->master_slave_set) { case MASTER_SLAVE_CFG_MASTER_FORCE: + adv_m |= MDIO_AN_T1_ADV_M_MST; + fallthrough; case MASTER_SLAVE_CFG_SLAVE_FORCE: adv_l |= MDIO_AN_T1_ADV_L_FORCE_MS; break; case MASTER_SLAVE_CFG_MASTER_PREFERRED: + adv_m |= MDIO_AN_T1_ADV_M_MST; + fallthrough; case MASTER_SLAVE_CFG_SLAVE_PREFERRED: break; case MASTER_SLAVE_CFG_UNKNOWN: case MASTER_SLAVE_CFG_UNSUPPORTED: - return 0; + /* if master/slave role is not specified, do not overwrite it */ + adv_l_mask &= ~MDIO_AN_T1_ADV_L_FORCE_MS; + adv_m_mask &= ~MDIO_AN_T1_ADV_M_MST; + break; default: phydev_warn(phydev, "Unsupported Master/Slave mode\n"); return -EOPNOTSUPP; } - switch (phydev->master_slave_set) { - case MASTER_SLAVE_CFG_MASTER_FORCE: - case MASTER_SLAVE_CFG_MASTER_PREFERRED: - adv_m |= MDIO_AN_T1_ADV_M_MST; - break; - case MASTER_SLAVE_CFG_SLAVE_FORCE: - case MASTER_SLAVE_CFG_SLAVE_PREFERRED: - break; - default: - break; - } - adv_l |= linkmode_adv_to_mii_t1_adv_l_t(phydev->advertising); ret = phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_T1_ADV_L, - (MDIO_AN_T1_ADV_L_FORCE_MS | MDIO_AN_T1_ADV_L_PAUSE_CAP - | MDIO_AN_T1_ADV_L_PAUSE_ASYM), adv_l); + adv_l_mask, adv_l); if (ret < 0) return ret; if (ret > 0) @@ -236,7 +234,7 @@ adv_m |= linkmode_adv_to_mii_t1_adv_m_t(phydev->advertising); ret = phy_modify_mmd_changed(phydev, MDIO_MMD_AN, MDIO_AN_T1_ADV_M, - MDIO_AN_T1_ADV_M_MST | MDIO_AN_T1_ADV_M_B10L, adv_m); + adv_m_mask, adv_m); if (ret < 0) return ret; if (ret > 0) --- linux-5.19.0.orig/drivers/net/phy/phy_device.c +++ linux-5.19.0/drivers/net/phy/phy_device.c @@ -216,6 +216,7 @@ static void phy_device_release(struct device *dev) { + fwnode_handle_put(dev->fwnode); kfree(to_phy_device(dev)); } @@ -316,6 +317,14 @@ phydev->suspended_by_mdio_bus = 0; + /* If we managed to get here with the PHY state machine in a state + * neither PHY_HALTED, PHY_READY nor PHY_UP, this is an indication + * that something went wrong and we should most likely be using + * MAC managed PM, but we are not. + */ + WARN_ON(phydev->state != PHY_HALTED && phydev->state != PHY_READY && + phydev->state != PHY_UP); + ret = phy_init_hw(phydev); if (ret < 0) return ret; @@ -1510,6 +1519,7 @@ error_module_put: module_put(d->driver->owner); + d->driver = NULL; error_put_device: put_device(d); if (ndev_owner != bus->owner) --- linux-5.19.0.orig/drivers/net/phy/phylink.c +++ linux-5.19.0/drivers/net/phy/phylink.c @@ -1422,6 +1422,9 @@ if (phy_interrupt_is_valid(phy)) phy_request_interrupt(phy); + if (pl->config->mac_managed_pm) + phy->mac_managed_pm = true; + return 0; } --- linux-5.19.0.orig/drivers/net/plip/plip.c +++ linux-5.19.0/drivers/net/plip/plip.c @@ -450,12 +450,12 @@ } rcv->state = PLIP_PK_DONE; if (rcv->skb) { - kfree_skb(rcv->skb); + dev_kfree_skb_irq(rcv->skb); rcv->skb = NULL; } snd->state = PLIP_PK_DONE; if (snd->skb) { - dev_kfree_skb(snd->skb); + dev_consume_skb_irq(snd->skb); snd->skb = NULL; } spin_unlock_irq(&nl->lock); @@ -1111,7 +1111,7 @@ /* Any address will do - we take the first. We already have the first two bytes filled with 0xfc, from plip_init_dev(). */ - const struct in_ifaddr *ifa = rcu_dereference(in_dev->ifa_list); + const struct in_ifaddr *ifa = rtnl_dereference(in_dev->ifa_list); if (ifa != NULL) { dev_addr_mod(dev, 2, &ifa->ifa_local, 4); } --- linux-5.19.0.orig/drivers/net/ppp/ppp_generic.c +++ linux-5.19.0/drivers/net/ppp/ppp_generic.c @@ -1743,6 +1743,8 @@ int len; unsigned char *cp; + skb->dev = ppp->dev; + if (proto < 0x8000) { #ifdef CONFIG_PPP_FILTER /* check if we should pass this packet */ --- linux-5.19.0.orig/drivers/net/tap.c +++ linux-5.19.0/drivers/net/tap.c @@ -716,10 +716,20 @@ skb_reset_mac_header(skb); skb->protocol = eth_hdr(skb)->h_proto; + rcu_read_lock(); + tap = rcu_dereference(q->tap); + if (!tap) { + kfree_skb(skb); + rcu_read_unlock(); + return total_len; + } + skb->dev = tap->dev; + if (vnet_hdr_len) { err = virtio_net_hdr_to_skb(skb, &vnet_hdr, tap_is_little_endian(q)); if (err) { + rcu_read_unlock(); drop_reason = SKB_DROP_REASON_DEV_HDR; goto err_kfree; } @@ -732,8 +742,6 @@ __vlan_get_protocol(skb, skb->protocol, &depth) != 0) skb_set_network_header(skb, depth); - rcu_read_lock(); - tap = rcu_dereference(q->tap); /* copy skb_ubuf_info for callback when skb has no error */ if (zerocopy) { skb_zcopy_init(skb, msg_control); @@ -742,14 +750,8 @@ uarg->callback(NULL, uarg, false); } - if (tap) { - skb->dev = tap->dev; - dev_queue_xmit(skb); - } else { - kfree_skb(skb); - } + dev_queue_xmit(skb); rcu_read_unlock(); - return total_len; err_kfree: --- linux-5.19.0.orig/drivers/net/team/team.c +++ linux-5.19.0/drivers/net/team/team.c @@ -1275,10 +1275,12 @@ } } - netif_addr_lock_bh(dev); - dev_uc_sync_multiple(port_dev, dev); - dev_mc_sync_multiple(port_dev, dev); - netif_addr_unlock_bh(dev); + if (dev->flags & IFF_UP) { + netif_addr_lock_bh(dev); + dev_uc_sync_multiple(port_dev, dev); + dev_mc_sync_multiple(port_dev, dev); + netif_addr_unlock_bh(dev); + } port->index = -1; list_add_tail_rcu(&port->list, &team->port_list); @@ -1349,8 +1351,10 @@ netdev_rx_handler_unregister(port_dev); team_port_disable_netpoll(port); vlan_vids_del_by_dev(port_dev, dev); - dev_uc_unsync(port_dev, dev); - dev_mc_unsync(port_dev, dev); + if (dev->flags & IFF_UP) { + dev_uc_unsync(port_dev, dev); + dev_mc_unsync(port_dev, dev); + } dev_close(port_dev); team_port_leave(team, port); @@ -1700,6 +1704,14 @@ static int team_close(struct net_device *dev) { + struct team *team = netdev_priv(dev); + struct team_port *port; + + list_for_each_entry(port, &team->port_list, list) { + dev_uc_unsync(port->dev, dev); + dev_mc_unsync(port->dev, dev); + } + return 0; } --- linux-5.19.0.orig/drivers/net/thunderbolt.c +++ linux-5.19.0/drivers/net/thunderbolt.c @@ -612,18 +612,13 @@ return; } - /* Both logins successful so enable the high-speed DMA paths and - * start the network device queue. + /* Both logins successful so enable the rings, high-speed DMA + * paths and start the network device queue. + * + * Note we enable the DMA paths last to make sure we have primed + * the Rx ring before any incoming packets are allowed to + * arrive. */ - ret = tb_xdomain_enable_paths(net->xd, net->local_transmit_path, - net->rx_ring.ring->hop, - net->remote_transmit_path, - net->tx_ring.ring->hop); - if (ret) { - netdev_err(net->dev, "failed to enable DMA paths\n"); - return; - } - tb_ring_start(net->tx_ring.ring); tb_ring_start(net->rx_ring.ring); @@ -635,10 +630,21 @@ if (ret) goto err_free_rx_buffers; + ret = tb_xdomain_enable_paths(net->xd, net->local_transmit_path, + net->rx_ring.ring->hop, + net->remote_transmit_path, + net->tx_ring.ring->hop); + if (ret) { + netdev_err(net->dev, "failed to enable DMA paths\n"); + goto err_free_tx_buffers; + } + netif_carrier_on(net->dev); netif_start_queue(net->dev); return; +err_free_tx_buffers: + tbnet_free_buffers(&net->tx_ring); err_free_rx_buffers: tbnet_free_buffers(&net->rx_ring); err_stop_rings: @@ -896,6 +902,7 @@ tbnet_start_poll, net); if (!ring) { netdev_err(dev, "failed to allocate Rx ring\n"); + tb_xdomain_release_out_hopid(xd, hopid); tb_ring_free(net->tx_ring.ring); net->tx_ring.ring = NULL; return -ENOMEM; @@ -1373,12 +1380,21 @@ TBNET_MATCH_FRAGS_ID | TBNET_64K_FRAMES); ret = tb_register_property_dir("network", tbnet_dir); - if (ret) { - tb_property_free_dir(tbnet_dir); - return ret; - } + if (ret) + goto err_free_dir; + + ret = tb_register_service_driver(&tbnet_driver); + if (ret) + goto err_unregister; + + return 0; + +err_unregister: + tb_unregister_property_dir("network", tbnet_dir); +err_free_dir: + tb_property_free_dir(tbnet_dir); - return tb_register_service_driver(&tbnet_driver); + return ret; } module_init(tbnet_init); --- linux-5.19.0.orig/drivers/net/tun.c +++ linux-5.19.0/drivers/net/tun.c @@ -686,7 +686,6 @@ if (tun) xdp_rxq_info_unreg(&tfile->xdp_rxq); ptr_ring_cleanup(&tfile->tx_ring, tun_ptr_free); - sock_put(&tfile->sk); } } @@ -702,6 +701,9 @@ if (dev) netdev_state_change(dev); rtnl_unlock(); + + if (clean) + sock_put(&tfile->sk); } static void tun_detach_all(struct net_device *dev) @@ -1459,7 +1461,8 @@ int err; int i; - if (it->nr_segs > MAX_SKB_FRAGS + 1) + if (it->nr_segs > MAX_SKB_FRAGS + 1 || + len > (ETH_MAX_MTU - NET_SKB_PAD - NET_IP_ALIGN)) return ERR_PTR(-EMSGSIZE); local_bh_disable(); @@ -1966,17 +1969,25 @@ skb_headlen(skb)); if (unlikely(headlen > skb_headlen(skb))) { + WARN_ON_ONCE(1); + err = -ENOMEM; dev_core_stats_rx_dropped_inc(tun->dev); +napi_busy: napi_free_frags(&tfile->napi); rcu_read_unlock(); mutex_unlock(&tfile->napi_mutex); - WARN_ON(1); - return -ENOMEM; + return err; } - local_bh_disable(); - napi_gro_frags(&tfile->napi); - local_bh_enable(); + if (likely(napi_schedule_prep(&tfile->napi))) { + local_bh_disable(); + napi_gro_frags(&tfile->napi); + napi_complete(&tfile->napi); + local_bh_enable(); + } else { + err = -EBUSY; + goto napi_busy; + } mutex_unlock(&tfile->napi_mutex); } else if (tfile->napi_enabled) { struct sk_buff_head *queue = &tfile->sk.sk_write_queue; --- linux-5.19.0.orig/drivers/net/usb/Kconfig +++ linux-5.19.0/drivers/net/usb/Kconfig @@ -637,8 +637,9 @@ * Aquantia AQtion USB to 5GbE config USB_RTL8153_ECM - tristate "RTL8153 ECM support" + tristate depends on USB_NET_CDCETHER && (USB_RTL8152 || USB_RTL8152=n) + default y help This option supports ECM mode for RTL8153 ethernet adapter, when CONFIG_USB_RTL8152 is not set, or the RTL8153 device is not --- linux-5.19.0.orig/drivers/net/usb/ax88179_178a.c +++ linux-5.19.0/drivers/net/usb/ax88179_178a.c @@ -1801,7 +1801,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1814,7 +1814,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1827,7 +1827,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1840,7 +1840,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1853,7 +1853,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1866,7 +1866,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1879,7 +1879,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1892,7 +1892,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1905,7 +1905,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1918,7 +1918,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1931,7 +1931,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1944,7 +1944,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; @@ -1957,7 +1957,7 @@ .link_reset = ax88179_link_reset, .reset = ax88179_reset, .stop = ax88179_stop, - .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_SEND_ZLP, + .flags = FLAG_ETHER | FLAG_FRAMING_AX, .rx_fixup = ax88179_rx_fixup, .tx_fixup = ax88179_tx_fixup, }; --- linux-5.19.0.orig/drivers/net/usb/cdc_ether.c +++ linux-5.19.0/drivers/net/usb/cdc_ether.c @@ -777,6 +777,13 @@ }, #endif +/* Lenovo ThinkPad OneLink+ Dock (based on Realtek RTL8153) */ +{ + USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3054, USB_CLASS_COMM, + USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), + .driver_info = 0, +}, + /* ThinkPad USB-C Dock (based on Realtek RTL8153) */ { USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3062, USB_CLASS_COMM, --- linux-5.19.0.orig/drivers/net/usb/qmi_wwan.c +++ linux-5.19.0/drivers/net/usb/qmi_wwan.c @@ -1356,6 +1356,7 @@ {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, 0x103a, 0)}, /* Telit LE910C4-WWX */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1040, 2)}, /* Telit LE922A */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1050, 2)}, /* Telit FN980 */ {QMI_QUIRK_SET_DTR(0x1bc7, 0x1057, 2)}, /* Telit FN980 */ @@ -1399,6 +1400,7 @@ {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, 0x81c2, 8)}, /* 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 */ @@ -1418,6 +1420,7 @@ {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) */ + {QMI_QUIRK_SET_DTR(0x1546, 0x1342, 4)}, /* u-blox LARA-L6 */ /* 4. Gobi 1000 devices */ {QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */ --- linux-5.19.0.orig/drivers/net/usb/r8152.c +++ linux-5.19.0/drivers/net/usb/r8152.c @@ -770,6 +770,7 @@ RX_EPROTO, }; +#define DEVICE_ID_THINKPAD_ONELINK_PLUS_DOCK 0x3054 #define DEVICE_ID_THINKPAD_THUNDERBOLT3_DOCK_GEN2 0x3082 #define DEVICE_ID_THINKPAD_USB_C_DONGLE 0x720c #define DEVICE_ID_THINKPAD_USB_C_DOCK_GEN2 0xa387 @@ -1873,7 +1874,9 @@ "Stop submitting intr, status %d\n", status); return; case -EOVERFLOW: - netif_info(tp, intr, tp->netdev, "intr status -EOVERFLOW\n"); + if (net_ratelimit()) + netif_info(tp, intr, tp->netdev, + "intr status -EOVERFLOW\n"); goto resubmit; /* -EPIPE: should clear the halt */ default: @@ -5906,6 +5909,11 @@ ocp_data &= ~NOW_IS_OOB; ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); + /* RX FIFO settings for OOB */ + ocp_write_dword(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL0, RXFIFO_THR1_OOB); + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL1, RXFIFO_THR2_OOB); + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RXFIFO_CTRL2, RXFIFO_THR3_OOB); + rtl_disable(tp); rtl_reset_bmu(tp); @@ -6431,21 +6439,8 @@ u32 pause_on = tp->fc_pause_on ? tp->fc_pause_on : fc_pause_on_auto(tp); u32 pause_off = tp->fc_pause_off ? tp->fc_pause_off : fc_pause_off_auto(tp); - switch (tp->version) { - case RTL_VER_10: - case RTL_VER_11: - ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_FULL, pause_on / 8); - ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_EMPTY, pause_off / 8); - break; - case RTL_VER_12: - case RTL_VER_13: - case RTL_VER_15: - ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_FULL, pause_on / 16); - ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_EMPTY, pause_off / 16); - break; - default: - break; - } + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_FULL, pause_on / 16); + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_EMPTY, pause_off / 16); } static void rtl8156_change_mtu(struct r8152 *tp) @@ -6557,6 +6552,11 @@ ocp_data &= ~NOW_IS_OOB; ocp_write_byte(tp, MCU_TYPE_PLA, PLA_OOB_CTRL, ocp_data); + /* RX FIFO settings for OOB */ + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RXFIFO_FULL, 64 / 16); + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_FULL, 1024 / 16); + ocp_write_word(tp, MCU_TYPE_PLA, PLA_RX_FIFO_EMPTY, 4096 / 16); + rtl_disable(tp); rtl_reset_bmu(tp); @@ -9584,6 +9584,7 @@ if (vendor_id == VENDOR_ID_LENOVO) { switch (product_id) { + case DEVICE_ID_THINKPAD_ONELINK_PLUS_DOCK: case DEVICE_ID_THINKPAD_THUNDERBOLT3_DOCK_GEN2: case DEVICE_ID_THINKPAD_USB_C_DOCK_GEN2: case DEVICE_ID_THINKPAD_USB_C_DOCK_GEN3: @@ -9831,6 +9832,7 @@ 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, 0x3054), REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062), REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3069), REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3082), --- linux-5.19.0.orig/drivers/net/usb/smsc95xx.c +++ linux-5.19.0/drivers/net/usb/smsc95xx.c @@ -66,11 +66,13 @@ spinlock_t mac_cr_lock; u8 features; u8 suspend_flags; + bool is_internal_phy; struct irq_chip irqchip; struct irq_domain *irqdomain; struct fwnode_handle *irqfwnode; struct mii_bus *mdiobus; struct phy_device *phydev; + struct task_struct *pm_task; }; static bool turbo_mode = true; @@ -80,13 +82,14 @@ static int __must_check __smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data, int in_pm) { + struct smsc95xx_priv *pdata = dev->driver_priv; u32 buf; int ret; int (*fn)(struct usbnet *, u8, u8, u16, u16, void *, u16); BUG_ON(!dev); - if (!in_pm) + if (current != pdata->pm_task) fn = usbnet_read_cmd; else fn = usbnet_read_cmd_nopm; @@ -110,13 +113,14 @@ static int __must_check __smsc95xx_write_reg(struct usbnet *dev, u32 index, u32 data, int in_pm) { + struct smsc95xx_priv *pdata = dev->driver_priv; u32 buf; int ret; int (*fn)(struct usbnet *, u8, u8, u16, u16, const void *, u16); BUG_ON(!dev); - if (!in_pm) + if (current != pdata->pm_task) fn = usbnet_write_cmd; else fn = usbnet_write_cmd_nopm; @@ -293,6 +297,43 @@ __smsc95xx_mdio_write(dev, pdata->phydev->mdio.addr, idx, regval, 1); } +static int smsc95xx_mdiobus_reset(struct mii_bus *bus) +{ + struct smsc95xx_priv *pdata; + struct usbnet *dev; + u32 val; + int ret; + + dev = bus->priv; + pdata = dev->driver_priv; + + if (pdata->is_internal_phy) + return 0; + + mutex_lock(&dev->phy_mutex); + + ret = smsc95xx_read_reg(dev, PM_CTRL, &val); + if (ret < 0) + goto reset_out; + + val |= PM_CTL_PHY_RST_; + + ret = smsc95xx_write_reg(dev, PM_CTRL, val); + if (ret < 0) + goto reset_out; + + /* Driver has no knowledge at this point about the external PHY. + * The 802.3 specifies that the reset process shall + * be completed within 0.5 s. + */ + fsleep(500000); + +reset_out: + mutex_unlock(&dev->phy_mutex); + + return 0; +} + static int smsc95xx_mdiobus_read(struct mii_bus *bus, int phy_id, int idx) { struct usbnet *dev = bus->priv; @@ -1093,7 +1134,6 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf) { struct smsc95xx_priv *pdata; - bool is_internal_phy; char usb_path[64]; int ret, phy_irq; u32 val; @@ -1174,13 +1214,14 @@ if (ret < 0) goto free_mdio; - is_internal_phy = !(val & HW_CFG_PSEL_); - if (is_internal_phy) + pdata->is_internal_phy = !(val & HW_CFG_PSEL_); + if (pdata->is_internal_phy) pdata->mdiobus->phy_mask = ~(1u << SMSC95XX_INTERNAL_PHY_ID); pdata->mdiobus->priv = dev; pdata->mdiobus->read = smsc95xx_mdiobus_read; pdata->mdiobus->write = smsc95xx_mdiobus_write; + pdata->mdiobus->reset = smsc95xx_mdiobus_reset; pdata->mdiobus->name = "smsc95xx-mdiobus"; pdata->mdiobus->parent = &dev->udev->dev; @@ -1201,7 +1242,7 @@ } pdata->phydev->irq = phy_irq; - pdata->phydev->is_internal = is_internal_phy; + pdata->phydev->is_internal = pdata->is_internal_phy; /* detect device revision as different features may be available */ ret = smsc95xx_read_reg(dev, ID_REV, &val); @@ -1490,9 +1531,12 @@ u32 val, link_up; int ret; + pdata->pm_task = current; + ret = usbnet_suspend(intf, message); if (ret < 0) { netdev_warn(dev->net, "usbnet_suspend error\n"); + pdata->pm_task = NULL; return ret; } @@ -1732,6 +1776,7 @@ if (ret && PMSG_IS_AUTO(message)) usbnet_resume(intf); + pdata->pm_task = NULL; return ret; } @@ -1752,29 +1797,31 @@ /* do this first to ensure it's cleared even in error case */ pdata->suspend_flags = 0; + pdata->pm_task = current; + if (suspend_flags & SUSPEND_ALLMODES) { /* clear wake-up sources */ ret = smsc95xx_read_reg_nopm(dev, WUCSR, &val); if (ret < 0) - return ret; + goto done; val &= ~(WUCSR_WAKE_EN_ | WUCSR_MPEN_); ret = smsc95xx_write_reg_nopm(dev, WUCSR, val); if (ret < 0) - return ret; + goto done; /* clear wake-up status */ ret = smsc95xx_read_reg_nopm(dev, PM_CTRL, &val); if (ret < 0) - return ret; + goto done; val &= ~PM_CTL_WOL_EN_; val |= PM_CTL_WUPS_; ret = smsc95xx_write_reg_nopm(dev, PM_CTRL, val); if (ret < 0) - return ret; + goto done; } phy_init_hw(pdata->phydev); @@ -1783,15 +1830,20 @@ if (ret < 0) netdev_warn(dev->net, "usbnet_resume error\n"); +done: + pdata->pm_task = NULL; return ret; } static int smsc95xx_reset_resume(struct usb_interface *intf) { struct usbnet *dev = usb_get_intfdata(intf); + struct smsc95xx_priv *pdata = dev->driver_priv; int ret; + pdata->pm_task = current; ret = smsc95xx_reset(dev); + pdata->pm_task = NULL; if (ret < 0) return ret; --- linux-5.19.0.orig/drivers/net/usb/usbnet.c +++ linux-5.19.0/drivers/net/usb/usbnet.c @@ -849,13 +849,11 @@ mpn = !test_and_clear_bit(EVENT_NO_RUNTIME_PM, &dev->flags); - /* deferred work (task, timer, softirq) must also stop. - * can't flush_scheduled_work() until we drop rtnl (later), - * else workers could deadlock; so make workers a NOP. - */ + /* deferred work (timer, softirq, task) must also stop */ dev->flags = 0; del_timer_sync (&dev->delay); tasklet_kill (&dev->bh); + cancel_work_sync(&dev->kevent); if (!pm) usb_autopm_put_interface(dev->intf); @@ -1603,6 +1601,7 @@ struct usbnet *dev; struct usb_device *xdev; struct net_device *net; + struct urb *urb; dev = usb_get_intfdata(intf); usb_set_intfdata(intf, NULL); @@ -1619,9 +1618,11 @@ net = dev->net; unregister_netdev (net); - cancel_work_sync(&dev->kevent); - - usb_scuttle_anchored_urbs(&dev->deferred); + while ((urb = usb_get_from_anchor(&dev->deferred))) { + dev_kfree_skb(urb->context); + kfree(urb->sg); + usb_free_urb(urb); + } if (dev->driver_info->unbind) dev->driver_info->unbind(dev, intf); --- linux-5.19.0.orig/drivers/net/virtio_net.c +++ linux-5.19.0/drivers/net/virtio_net.c @@ -1057,8 +1057,11 @@ case XDP_TX: stats->xdp_tx++; xdpf = xdp_convert_buff_to_frame(&xdp); - if (unlikely(!xdpf)) + if (unlikely(!xdpf)) { + if (unlikely(xdp_page != page)) + put_page(xdp_page); goto err_xdp; + } err = virtnet_xdp_xmit(dev, 1, &xdpf, 0); if (unlikely(!err)) { xdp_return_frame_rx_napi(xdpf); @@ -1196,7 +1199,7 @@ if (!hdr_hash || !skb) return; - switch ((int)hdr_hash->hash_report) { + switch (__le16_to_cpu(hdr_hash->hash_report)) { case VIRTIO_NET_HASH_REPORT_TCPv4: case VIRTIO_NET_HASH_REPORT_UDPv4: case VIRTIO_NET_HASH_REPORT_TCPv6: @@ -1214,7 +1217,7 @@ default: rss_hash_type = PKT_HASH_TYPE_NONE; } - skb_set_hash(skb, (unsigned int)hdr_hash->hash_value, rss_hash_type); + skb_set_hash(skb, __le32_to_cpu(hdr_hash->hash_value), rss_hash_type); } static void receive_buf(struct virtnet_info *vi, struct receive_queue *rq, @@ -3717,12 +3720,11 @@ return 0; free_unregister_netdev: - virtio_reset_device(vdev); - unregister_netdev(dev); free_failover: net_failover_destroy(vi->failover); free_vqs: + virtio_reset_device(vdev); cancel_delayed_work_sync(&vi->refill); free_receive_page_frags(vi); virtnet_del_vqs(vi); --- linux-5.19.0.orig/drivers/net/vmxnet3/vmxnet3_drv.c +++ linux-5.19.0/drivers/net/vmxnet3/vmxnet3_drv.c @@ -75,8 +75,14 @@ for (i = 0; i < adapter->intr.num_intrs; i++) vmxnet3_enable_intr(adapter, i); - adapter->shared->devRead.intrConf.intrCtrl &= + if (!VMXNET3_VERSION_GE_6(adapter) || + !adapter->queuesExtEnabled) { + adapter->shared->devRead.intrConf.intrCtrl &= cpu_to_le32(~VMXNET3_IC_DISABLE_ALL); + } else { + adapter->shared->devReadExt.intrConfExt.intrCtrl &= + cpu_to_le32(~VMXNET3_IC_DISABLE_ALL); + } } @@ -85,8 +91,14 @@ { int i; - adapter->shared->devRead.intrConf.intrCtrl |= + if (!VMXNET3_VERSION_GE_6(adapter) || + !adapter->queuesExtEnabled) { + adapter->shared->devRead.intrConf.intrCtrl |= cpu_to_le32(VMXNET3_IC_DISABLE_ALL); + } else { + adapter->shared->devReadExt.intrConfExt.intrCtrl |= + cpu_to_le32(VMXNET3_IC_DISABLE_ALL); + } for (i = 0; i < adapter->intr.num_intrs; i++) vmxnet3_disable_intr(adapter, i); } @@ -1350,6 +1362,7 @@ }; u32 num_pkts = 0; bool skip_page_frags = false; + bool encap_lro = false; struct Vmxnet3_RxCompDesc *rcd; struct vmxnet3_rx_ctx *ctx = &rq->rx_ctx; u16 segCnt = 0, mss = 0; @@ -1508,13 +1521,18 @@ if (VMXNET3_VERSION_GE_2(adapter) && rcd->type == VMXNET3_CDTYPE_RXCOMP_LRO) { struct Vmxnet3_RxCompDescExt *rcdlro; + union Vmxnet3_GenericDesc *gdesc; + rcdlro = (struct Vmxnet3_RxCompDescExt *)rcd; + gdesc = (union Vmxnet3_GenericDesc *)rcd; segCnt = rcdlro->segCnt; WARN_ON_ONCE(segCnt == 0); mss = rcdlro->mss; if (unlikely(segCnt <= 1)) segCnt = 0; + encap_lro = (le32_to_cpu(gdesc->dword[0]) & + (1UL << VMXNET3_RCD_HDR_INNER_SHIFT)); } else { segCnt = 0; } @@ -1582,7 +1600,7 @@ vmxnet3_rx_csum(adapter, skb, (union Vmxnet3_GenericDesc *)rcd); skb->protocol = eth_type_trans(skb, adapter->netdev); - if (!rcd->tcp || + if ((!rcd->tcp && !encap_lro) || !(adapter->netdev->features & NETIF_F_LRO)) goto not_lro; @@ -1591,7 +1609,7 @@ SKB_GSO_TCPV4 : SKB_GSO_TCPV6; skb_shinfo(skb)->gso_size = mss; skb_shinfo(skb)->gso_segs = segCnt; - } else if (segCnt != 0 || skb->len > mtu) { + } else if ((segCnt != 0 || skb->len > mtu) && !encap_lro) { u32 hlen; hlen = vmxnet3_get_hdr_len(adapter, skb, @@ -1620,6 +1638,7 @@ napi_gro_receive(&rq->napi, skb); ctx->skb = NULL; + encap_lro = false; num_pkts++; } --- linux-5.19.0.orig/drivers/net/vxlan/vxlan_core.c +++ linux-5.19.0/drivers/net/vxlan/vxlan_core.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -71,6 +72,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 int vxlan_nla_get_addr(union vxlan_addr *ip, struct nlattr *nla) { @@ -2243,7 +2405,7 @@ struct vxlan_sock *sock4, struct sk_buff *skb, int oif, u8 tos, __be32 daddr, __be32 *saddr, __be16 dport, __be16 sport, - struct dst_cache *dst_cache, + __u8 flow_flags, struct dst_cache *dst_cache, const struct ip_tunnel_info *info) { bool use_cache = ip_tunnel_dst_cache_usable(skb, info); @@ -2270,6 +2432,7 @@ fl4.saddr = *saddr; fl4.fl4_dport = dport; fl4.fl4_sport = sport; + fl4.flowi4_flags = flow_flags; rt = ip_route_output_key(vxlan->net, &fl4); if (!IS_ERR(rt)) { @@ -2320,7 +2483,7 @@ fl6.flowi6_oif = oif; fl6.daddr = *daddr; fl6.saddr = *saddr; - fl6.flowlabel = ip6_make_flowinfo(RT_TOS(tos), label); + fl6.flowlabel = ip6_make_flowinfo(tos, label); fl6.flowi6_mark = skb->mark; fl6.flowi6_proto = IPPROTO_UDP; fl6.fl6_dport = dport; @@ -2459,7 +2622,7 @@ unsigned int pkt_len = skb->len; __be16 src_port = 0, dst_port; struct dst_entry *ndst = NULL; - __u8 tos, ttl; + __u8 tos, ttl, flow_flags = 0; int ifindex; int err; u32 flags = vxlan->cfg.flags; @@ -2525,6 +2688,7 @@ } dst = &remote_ip; dst_port = info->key.tp_dst ? : vxlan->cfg.dst_port; + flow_flags = info->key.flow_flags; vni = tunnel_id_to_key32(info->key.tun_id); ifindex = 0; dst_cache = &info->dst_cache; @@ -2555,13 +2719,20 @@ rt = vxlan_get_route(vxlan, dev, sock4, skb, ifindex, tos, dst->sin.sin_addr.s_addr, &local_ip.sin.sin_addr.s_addr, - dst_port, src_port, + dst_port, src_port, flow_flags, dst_cache, info); if (IS_ERR(rt)) { err = PTR_ERR(rt); 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, @@ -2704,6 +2875,7 @@ dst_release(ndst); dev->stats.tx_errors++; vxlan_vnifilter_count(vxlan, vni, NULL, VXLAN_VNI_STATS_TX_ERRORS, 0); +tx_free: kfree_skb(skb); } @@ -2792,6 +2964,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; @@ -3061,7 +3247,8 @@ rt = vxlan_get_route(vxlan, dev, sock4, skb, 0, info->key.tos, info->key.u.ipv4.dst, &info->key.u.ipv4.src, dport, sport, - &info->dst_cache, info); + info->key.flow_flags, &info->dst_cache, + info); if (IS_ERR(rt)) return PTR_ERR(rt); ip_rt_put(rt); @@ -3188,6 +3375,8 @@ 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) @@ -3906,6 +4095,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"); @@ -4268,6 +4463,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; } @@ -4314,6 +4510,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)) || @@ -4651,6 +4867,22 @@ NULL); } +#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); @@ -4728,7 +4960,20 @@ vxlan_vnifilter_init(); +#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: @@ -4742,6 +4987,9 @@ static void __exit vxlan_cleanup_module(void) { +#ifdef CONFIG_SYSCTL + unregister_net_sysctl_table(vxlan_fan_header); +#endif /* CONFIG_SYSCTL */ vxlan_vnifilter_uninit(); rtnl_link_unregister(&vxlan_link_ops); unregister_switchdev_notifier(&vxlan_switchdev_notifier_block); --- linux-5.19.0.orig/drivers/net/wan/farsync.c +++ linux-5.19.0/drivers/net/wan/farsync.c @@ -2545,6 +2545,7 @@ struct net_device *dev = port_to_dev(&card->ports[i]); unregister_hdlc_device(dev); + free_netdev(dev); } fst_disable_intr(card); @@ -2564,6 +2565,7 @@ card->tx_dma_handle_card); } fst_card_array[card->card_no] = NULL; + kfree(card); } static struct pci_driver fst_driver = { --- linux-5.19.0.orig/drivers/net/wan/lapbether.c +++ linux-5.19.0/drivers/net/wan/lapbether.c @@ -325,6 +325,7 @@ err = lapb_register(dev, &lapbeth_callbacks); if (err != LAPB_OK) { + napi_disable(&lapbeth->napi); pr_err("lapb_register error: %d\n", err); return -ENODEV; } @@ -446,7 +447,7 @@ if (dev_net(dev) != &init_net) return NOTIFY_DONE; - if (!dev_is_ethdev(dev)) + if (!dev_is_ethdev(dev) && !lapbeth_get_x25_dev(dev)) return NOTIFY_DONE; switch (event) { --- linux-5.19.0.orig/drivers/net/wireguard/allowedips.c +++ linux-5.19.0/drivers/net/wireguard/allowedips.c @@ -6,6 +6,8 @@ #include "allowedips.h" #include "peer.h" +enum { MAX_ALLOWEDIPS_BITS = 128 }; + static struct kmem_cache *node_cache; static void swap_endian(u8 *dst, const u8 *src, u8 bits) @@ -40,7 +42,8 @@ struct allowedips_node __rcu *p, unsigned int *len) { if (rcu_access_pointer(p)) { - WARN_ON(IS_ENABLED(DEBUG) && *len >= 128); + if (WARN_ON(IS_ENABLED(DEBUG) && *len >= MAX_ALLOWEDIPS_BITS)) + return; stack[(*len)++] = rcu_dereference_raw(p); } } @@ -52,7 +55,7 @@ static void root_free_rcu(struct rcu_head *rcu) { - struct allowedips_node *node, *stack[128] = { + struct allowedips_node *node, *stack[MAX_ALLOWEDIPS_BITS] = { container_of(rcu, struct allowedips_node, rcu) }; unsigned int len = 1; @@ -65,7 +68,7 @@ static void root_remove_peer_lists(struct allowedips_node *root) { - struct allowedips_node *node, *stack[128] = { root }; + struct allowedips_node *node, *stack[MAX_ALLOWEDIPS_BITS] = { root }; unsigned int len = 1; while (len > 0 && (node = stack[--len])) { --- linux-5.19.0.orig/drivers/net/wireguard/netlink.c +++ linux-5.19.0/drivers/net/wireguard/netlink.c @@ -436,14 +436,13 @@ if (attrs[WGPEER_A_ENDPOINT]) { struct sockaddr *addr = nla_data(attrs[WGPEER_A_ENDPOINT]); size_t len = nla_len(attrs[WGPEER_A_ENDPOINT]); + struct endpoint endpoint = { { { 0 } } }; - if ((len == sizeof(struct sockaddr_in) && - addr->sa_family == AF_INET) || - (len == sizeof(struct sockaddr_in6) && - addr->sa_family == AF_INET6)) { - struct endpoint endpoint = { { { 0 } } }; - - memcpy(&endpoint.addr, addr, len); + if (len == sizeof(struct sockaddr_in) && addr->sa_family == AF_INET) { + endpoint.addr4 = *(struct sockaddr_in *)addr; + wg_socket_set_peer_endpoint(peer, &endpoint); + } else if (len == sizeof(struct sockaddr_in6) && addr->sa_family == AF_INET6) { + endpoint.addr6 = *(struct sockaddr_in6 *)addr; wg_socket_set_peer_endpoint(peer, &endpoint); } } --- linux-5.19.0.orig/drivers/net/wireguard/selftest/allowedips.c +++ linux-5.19.0/drivers/net/wireguard/selftest/allowedips.c @@ -593,10 +593,10 @@ wg_allowedips_remove_by_peer(&t, a, &mutex); test_negative(4, a, 192, 168, 0, 1); - /* These will hit the WARN_ON(len >= 128) in free_node if something - * goes wrong. + /* These will hit the WARN_ON(len >= MAX_ALLOWEDIPS_BITS) in free_node + * if something goes wrong. */ - for (i = 0; i < 128; ++i) { + for (i = 0; i < MAX_ALLOWEDIPS_BITS; ++i) { part = cpu_to_be64(~(1LLU << (i % 64))); memset(&ip, 0xff, 16); memcpy((u8 *)&ip + (i < 64) * 8, &part, 8); --- linux-5.19.0.orig/drivers/net/wireguard/selftest/ratelimiter.c +++ linux-5.19.0/drivers/net/wireguard/selftest/ratelimiter.c @@ -167,7 +167,7 @@ ++test; #endif - for (trials = TRIALS_BEFORE_GIVING_UP;;) { + for (trials = TRIALS_BEFORE_GIVING_UP; IS_ENABLED(DEBUG_RATELIMITER_TIMINGS);) { int test_count = 0, ret; ret = timings_test(skb4, hdr4, skb6, hdr6, &test_count); @@ -176,7 +176,6 @@ test += test_count; goto err; } - msleep(500); continue; } else if (ret < 0) { test += test_count; @@ -195,7 +194,6 @@ test += test_count; goto err; } - msleep(50); continue; } test += test_count; --- linux-5.19.0.orig/drivers/net/wireless/ath/ar5523/ar5523.c +++ linux-5.19.0/drivers/net/wireless/ath/ar5523/ar5523.c @@ -241,6 +241,11 @@ } } +static void ar5523_cancel_tx_cmd(struct ar5523 *ar) +{ + usb_kill_urb(ar->tx_cmd.urb_tx); +} + static int ar5523_cmd(struct ar5523 *ar, u32 code, const void *idata, int ilen, void *odata, int olen, int flags) { @@ -280,6 +285,7 @@ } if (!wait_for_completion_timeout(&cmd->done, 2 * HZ)) { + ar5523_cancel_tx_cmd(ar); cmd->odata = NULL; ar5523_err(ar, "timeout waiting for command %02x reply\n", code); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/core.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/core.c @@ -95,6 +95,7 @@ .tx_stats_over_pktlog = true, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA988X_HW_2_0_VERSION, @@ -133,6 +134,7 @@ .tx_stats_over_pktlog = true, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9887_HW_1_0_VERSION, @@ -172,6 +174,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA6174_HW_3_2_VERSION, @@ -206,6 +209,7 @@ .supports_peer_stats_info = true, .dynamic_sar_support = true, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA6174_HW_2_1_VERSION, @@ -244,6 +248,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA6174_HW_2_1_VERSION, @@ -282,6 +287,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA6174_HW_3_0_VERSION, @@ -320,6 +326,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA6174_HW_3_2_VERSION, @@ -362,6 +369,7 @@ .supports_peer_stats_info = true, .dynamic_sar_support = true, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA99X0_HW_2_0_DEV_VERSION, @@ -406,6 +414,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9984_HW_1_0_DEV_VERSION, @@ -457,6 +466,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9888_HW_2_0_DEV_VERSION, @@ -505,6 +515,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9377_HW_1_0_DEV_VERSION, @@ -543,6 +554,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9377_HW_1_1_DEV_VERSION, @@ -583,6 +595,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA9377_HW_1_1_DEV_VERSION, @@ -614,6 +627,7 @@ .credit_size_workaround = true, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = QCA4019_HW_1_0_DEV_VERSION, @@ -659,6 +673,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = false, .hw_restart_disconnect = false, + .use_fw_tx_credits = true, }, { .id = WCN3990_HW_1_0_DEV_VERSION, @@ -690,6 +705,7 @@ .tx_stats_over_pktlog = false, .dynamic_sar_support = true, .hw_restart_disconnect = true, + .use_fw_tx_credits = false, }, }; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/htc.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/htc.c @@ -947,13 +947,18 @@ return -ECOMM; } - htc->total_transmit_credits = __le16_to_cpu(msg->ready.credit_count); + if (ar->hw_params.use_fw_tx_credits) + htc->total_transmit_credits = __le16_to_cpu(msg->ready.credit_count); + else + htc->total_transmit_credits = 1; + htc->target_credit_size = __le16_to_cpu(msg->ready.credit_size); ath10k_dbg(ar, ATH10K_DBG_HTC, - "Target ready! transmit resources: %d size:%d\n", + "Target ready! transmit resources: %d size:%d actual credits:%d\n", htc->total_transmit_credits, - htc->target_credit_size); + htc->target_credit_size, + msg->ready.credit_count); if ((htc->total_transmit_credits == 0) || (htc->target_credit_size == 0)) { --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/htt_rx.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/htt_rx.c @@ -3840,7 +3840,7 @@ switch (txrate.flags) { case WMI_RATE_PREAMBLE_OFDM: if (arsta->arvif && arsta->arvif->vif) - conf = rcu_dereference(arsta->arvif->vif->chanctx_conf); + conf = rcu_dereference(arsta->arvif->vif->bss_conf.chanctx_conf); if (conf && conf->def.chan->band == NL80211_BAND_5GHZ) arsta->tx_info.status.rates[0].idx = rate_idx - 4; break; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/hw.h +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/hw.h @@ -635,6 +635,8 @@ bool dynamic_sar_support; bool hw_restart_disconnect; + + bool use_fw_tx_credits; }; struct htt_resp; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/mac.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/mac.c @@ -659,7 +659,7 @@ struct ieee80211_chanctx_conf *conf; rcu_read_lock(); - conf = rcu_dereference(vif->chanctx_conf); + conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (!conf) { rcu_read_unlock(); return -ENOENT; @@ -864,11 +864,36 @@ return 0; } +static void ath10k_peer_map_cleanup(struct ath10k *ar, struct ath10k_peer *peer) +{ + int peer_id, i; + + lockdep_assert_held(&ar->conf_mutex); + + for_each_set_bit(peer_id, peer->peer_ids, + ATH10K_MAX_NUM_PEER_IDS) { + ar->peer_map[peer_id] = NULL; + } + + /* Double check that peer is properly un-referenced from + * the peer_map + */ + for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) { + if (ar->peer_map[i] == peer) { + ath10k_warn(ar, "removing stale peer_map entry for %pM (ptr %pK idx %d)\n", + peer->addr, peer, i); + ar->peer_map[i] = NULL; + } + } + + list_del(&peer->list); + kfree(peer); + ar->num_peers--; +} + static void ath10k_peer_cleanup(struct ath10k *ar, u32 vdev_id) { struct ath10k_peer *peer, *tmp; - int peer_id; - int i; lockdep_assert_held(&ar->conf_mutex); @@ -880,25 +905,7 @@ ath10k_warn(ar, "removing stale peer %pM from vdev_id %d\n", peer->addr, vdev_id); - for_each_set_bit(peer_id, peer->peer_ids, - ATH10K_MAX_NUM_PEER_IDS) { - ar->peer_map[peer_id] = NULL; - } - - /* Double check that peer is properly un-referenced from - * the peer_map - */ - for (i = 0; i < ARRAY_SIZE(ar->peer_map); i++) { - if (ar->peer_map[i] == peer) { - ath10k_warn(ar, "removing stale peer_map entry for %pM (ptr %pK idx %d)\n", - peer->addr, peer, i); - ar->peer_map[i] = NULL; - } - } - - list_del(&peer->list); - kfree(peer); - ar->num_peers--; + ath10k_peer_map_cleanup(ar, peer); } spin_unlock_bh(&ar->data_lock); } @@ -2028,7 +2035,7 @@ if (arvif->vdev_type != WMI_VDEV_TYPE_AP) return; - if (!vif->csa_active) + if (!vif->bss_conf.csa_active) return; if (!arvif->is_up) @@ -7586,10 +7593,7 @@ /* Clean up the peer object as well since we * must have failed to do this above. */ - list_del(&peer->list); - ar->peer_map[i] = NULL; - kfree(peer); - ar->num_peers--; + ath10k_peer_map_cleanup(ar, peer); } } spin_unlock_bh(&ar->data_lock); @@ -8798,7 +8802,7 @@ { struct ath10k_mac_change_chanctx_arg *arg = data; - if (rcu_access_pointer(vif->chanctx_conf) != arg->ctx) + if (rcu_access_pointer(vif->bss_conf.chanctx_conf) != arg->ctx) return; arg->n_vifs++; @@ -8811,7 +8815,7 @@ struct ath10k_mac_change_chanctx_arg *arg = data; struct ieee80211_chanctx_conf *ctx; - ctx = rcu_access_pointer(vif->chanctx_conf); + ctx = rcu_access_pointer(vif->bss_conf.chanctx_conf); if (ctx != arg->ctx) return; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/pci.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/pci.c @@ -3793,18 +3793,22 @@ static int __init ath10k_pci_init(void) { - int ret; + int ret1, ret2; - ret = pci_register_driver(&ath10k_pci_driver); - if (ret) + ret1 = pci_register_driver(&ath10k_pci_driver); + if (ret1) printk(KERN_ERR "failed to register ath10k pci driver: %d\n", - ret); + ret1); - ret = ath10k_ahb_init(); - if (ret) - printk(KERN_ERR "ahb init failed: %d\n", ret); + ret2 = ath10k_ahb_init(); + if (ret2) + printk(KERN_ERR "ahb init failed: %d\n", ret2); - return ret; + if (ret1 && ret2) + return ret1; + + /* registered to at least one bus */ + return 0; } module_init(ath10k_pci_init); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/snoc.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/snoc.c @@ -1249,13 +1249,12 @@ static int ath10k_snoc_request_irq(struct ath10k *ar) { struct ath10k_snoc *ar_snoc = ath10k_snoc_priv(ar); - int irqflags = IRQF_TRIGGER_RISING; int ret, id; for (id = 0; id < CE_COUNT_MAX; id++) { ret = request_irq(ar_snoc->ce_irqs[id].irq_line, - ath10k_snoc_per_engine_handler, - irqflags, ce_name[id], ar); + ath10k_snoc_per_engine_handler, 0, + ce_name[id], ar); if (ret) { ath10k_err(ar, "failed to register IRQ handler for CE %d: %d\n", --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/wmi-tlv.c @@ -205,7 +205,7 @@ } arvif = ath10k_get_arvif(ar, vdev_id); - if (arvif && arvif->is_up && arvif->vif->csa_active) + if (arvif && arvif->is_up && arvif->vif->bss_conf.csa_active) ieee80211_queue_work(ar->hw, &arvif->ap_csa_work); kfree(tb); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath10k/wmi.c +++ linux-5.19.0/drivers/net/wireless/ath/ath10k/wmi.c @@ -3882,7 +3882,7 @@ * Once CSA counter is completed stop sending beacons until * actual channel switch is done */ - if (arvif->vif->csa_active && + if (arvif->vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(arvif->vif)) { ieee80211_csa_finish(arvif->vif); continue; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/ahb.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/ahb.c @@ -140,8 +140,53 @@ return ab->pci.msi.irqs[vector]; } +static inline u32 +ath11k_ahb_get_window_start_wcn6750(struct ath11k_base *ab, u32 offset) +{ + u32 window_start = 0; + + /* If offset lies within DP register range, use 1st window */ + if ((offset ^ HAL_SEQ_WCSS_UMAC_OFFSET) < ATH11K_PCI_WINDOW_RANGE_MASK) + window_start = ATH11K_PCI_WINDOW_START; + /* If offset lies within CE register range, use 2nd window */ + else if ((offset ^ HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab)) < + ATH11K_PCI_WINDOW_RANGE_MASK) + window_start = 2 * ATH11K_PCI_WINDOW_START; + + return window_start; +} + +static void +ath11k_ahb_window_write32_wcn6750(struct ath11k_base *ab, u32 offset, u32 value) +{ + u32 window_start; + + /* WCN6750 uses static window based register access*/ + window_start = ath11k_ahb_get_window_start_wcn6750(ab, offset); + + iowrite32(value, ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); +} + +static u32 ath11k_ahb_window_read32_wcn6750(struct ath11k_base *ab, u32 offset) +{ + u32 window_start; + u32 val; + + /* WCN6750 uses static window based register access */ + window_start = ath11k_ahb_get_window_start_wcn6750(ab, offset); + + val = ioread32(ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); + return val; +} + static const struct ath11k_pci_ops ath11k_ahb_pci_ops_wcn6750 = { + .wakeup = NULL, + .release = NULL, .get_msi_irq = ath11k_ahb_get_msi_irq_wcn6750, + .window_write32 = ath11k_ahb_window_write32_wcn6750, + .window_read32 = ath11k_ahb_window_read32_wcn6750, }; static inline u32 ath11k_ahb_read32(struct ath11k_base *ab, u32 offset) @@ -971,19 +1016,24 @@ } ab->hif.ops = hif_ops; - ab->pci.ops = pci_ops; ab->pdev = pdev; ab->hw_rev = hw_rev; platform_set_drvdata(pdev, ab); - ret = ath11k_ahb_setup_resources(ab); - if (ret) + ret = ath11k_pcic_register_pci_ops(ab, pci_ops); + if (ret) { + ath11k_err(ab, "failed to register PCI ops: %d\n", ret); goto err_core_free; + } ret = ath11k_core_pre_init(ab); if (ret) goto err_core_free; + ret = ath11k_ahb_setup_resources(ab); + if (ret) + goto err_core_free; + ret = ath11k_ahb_fw_resources_init(ab); if (ret) goto err_core_free; @@ -1038,20 +1088,10 @@ return ret; } -static int ath11k_ahb_remove(struct platform_device *pdev) +static void ath11k_ahb_remove_prepare(struct ath11k_base *ab) { - struct ath11k_base *ab = platform_get_drvdata(pdev); unsigned long left; - if (test_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags)) { - ath11k_ahb_power_down(ab); - ath11k_debugfs_soc_destroy(ab); - ath11k_qmi_deinit_service(ab); - goto qmi_fail; - } - - reinit_completion(&ab->driver_recovery); - if (test_bit(ATH11K_FLAG_RECOVERY, &ab->dev_flags)) { left = wait_for_completion_timeout(&ab->driver_recovery, ATH11K_AHB_RECOVERY_TIMEOUT); @@ -1061,19 +1101,60 @@ set_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags); cancel_work_sync(&ab->restart_work); + cancel_work_sync(&ab->qmi.event_work); +} + +static void ath11k_ahb_free_resources(struct ath11k_base *ab) +{ + struct platform_device *pdev = ab->pdev; - ath11k_core_deinit(ab); -qmi_fail: ath11k_ahb_free_irq(ab); ath11k_hal_srng_deinit(ab); ath11k_ahb_fw_resource_deinit(ab); ath11k_ce_free_pipes(ab); ath11k_core_free(ab); platform_set_drvdata(pdev, NULL); +} + +static int ath11k_ahb_remove(struct platform_device *pdev) +{ + struct ath11k_base *ab = platform_get_drvdata(pdev); + + if (test_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags)) { + ath11k_ahb_power_down(ab); + ath11k_debugfs_soc_destroy(ab); + ath11k_qmi_deinit_service(ab); + goto qmi_fail; + } + + ath11k_ahb_remove_prepare(ab); + ath11k_core_deinit(ab); + +qmi_fail: + ath11k_ahb_free_resources(ab); return 0; } +static void ath11k_ahb_shutdown(struct platform_device *pdev) +{ + struct ath11k_base *ab = platform_get_drvdata(pdev); + + /* platform shutdown() & remove() are mutually exclusive. + * remove() is invoked during rmmod & shutdown() during + * system reboot/shutdown. + */ + ath11k_ahb_remove_prepare(ab); + + if (!(test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags))) + goto free_resources; + + ath11k_core_deinit(ab); + +free_resources: + ath11k_ahb_free_resources(ab); +} + static struct platform_driver ath11k_ahb_driver = { .driver = { .name = "ath11k", @@ -1081,6 +1162,7 @@ }, .probe = ath11k_ahb_probe, .remove = ath11k_ahb_remove, + .shutdown = ath11k_ahb_shutdown, }; static int ath11k_ahb_init(void) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/core.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/core.c @@ -107,8 +107,6 @@ .fixed_mem_region = true, .static_window_map = false, .hybrid_bus_type = false, - .dp_window_idx = 0, - .ce_window_idx = 0, .fixed_fw_mem = false, .support_off_channel_tx = false, }, @@ -183,8 +181,6 @@ .fixed_mem_region = true, .static_window_map = false, .hybrid_bus_type = false, - .dp_window_idx = 0, - .ce_window_idx = 0, .fixed_fw_mem = false, .support_off_channel_tx = false, }, @@ -258,8 +254,6 @@ .fixed_mem_region = false, .static_window_map = false, .hybrid_bus_type = false, - .dp_window_idx = 0, - .ce_window_idx = 0, .fixed_fw_mem = false, .support_off_channel_tx = true, }, @@ -333,8 +327,6 @@ .fixed_mem_region = false, .static_window_map = true, .hybrid_bus_type = false, - .dp_window_idx = 3, - .ce_window_idx = 2, .fixed_fw_mem = false, .support_off_channel_tx = false, }, @@ -408,8 +400,6 @@ .fixed_mem_region = false, .static_window_map = false, .hybrid_bus_type = false, - .dp_window_idx = 0, - .ce_window_idx = 0, .fixed_fw_mem = false, .support_off_channel_tx = true, }, @@ -482,8 +472,6 @@ .fixed_mem_region = false, .static_window_map = false, .hybrid_bus_type = false, - .dp_window_idx = 0, - .ce_window_idx = 0, .fixed_fw_mem = false, .support_off_channel_tx = true, }, @@ -556,8 +544,6 @@ .fixed_mem_region = false, .static_window_map = true, .hybrid_bus_type = true, - .dp_window_idx = 1, - .ce_window_idx = 2, .fixed_fw_mem = true, .support_off_channel_tx = false, }, @@ -1225,23 +1211,23 @@ return ret; } - ret = ath11k_mac_register(ab); + ret = ath11k_dp_pdev_alloc(ab); if (ret) { - ath11k_err(ab, "failed register the radio with mac80211: %d\n", ret); + ath11k_err(ab, "failed to attach DP pdev: %d\n", ret); goto err_pdev_debug; } - ret = ath11k_dp_pdev_alloc(ab); + ret = ath11k_mac_register(ab); if (ret) { - ath11k_err(ab, "failed to attach DP pdev: %d\n", ret); - goto err_mac_unregister; + ath11k_err(ab, "failed register the radio with mac80211: %d\n", ret); + goto err_dp_pdev_free; } ret = ath11k_thermal_register(ab); if (ret) { ath11k_err(ab, "could not register thermal device: %d\n", ret); - goto err_dp_pdev_free; + goto err_mac_unregister; } ret = ath11k_spectral_init(ab); @@ -1254,10 +1240,10 @@ err_thermal_unregister: ath11k_thermal_unregister(ab); -err_dp_pdev_free: - ath11k_dp_pdev_free(ab); err_mac_unregister: ath11k_mac_unregister(ab); +err_dp_pdev_free: + ath11k_dp_pdev_free(ab); err_pdev_debug: ath11k_debugfs_pdev_destroy(ab); @@ -1649,6 +1635,8 @@ wake_up(&ab->wmi_ab.tx_credits_wq); wake_up(&ab->peer_mapping_wq); + + reinit_completion(&ab->driver_recovery); } static void ath11k_core_post_reconfigure_recovery(struct ath11k_base *ab) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/core.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/core.h @@ -494,6 +494,8 @@ bool use_4addr_set; u16 tcl_metadata; + + u32 bw_prev; }; #define ATH11K_MIN_5G_FREQ 4150 --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/debug.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/debug.h @@ -23,8 +23,8 @@ ATH11K_DBG_TESTMODE = 0x00000400, ATH11k_DBG_HAL = 0x00000800, ATH11K_DBG_PCI = 0x00001000, - ATH11K_DBG_DP_TX = 0x00001000, - ATH11K_DBG_DP_RX = 0x00002000, + ATH11K_DBG_DP_TX = 0x00002000, + ATH11K_DBG_DP_RX = 0x00004000, ATH11K_DBG_ANY = 0xffffffff, }; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/dp_rx.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/dp_rx.c @@ -835,8 +835,9 @@ HAL_REO_CMD_UPDATE_RX_QUEUE, &cmd, ath11k_dp_rx_tid_del_func); if (ret) { - ath11k_err(ar->ab, "failed to send HAL_REO_CMD_UPDATE_RX_QUEUE cmd, tid %d (%d)\n", - tid, ret); + if (ret != -ESHUTDOWN) + ath11k_err(ar->ab, "failed to send HAL_REO_CMD_UPDATE_RX_QUEUE cmd, tid %d (%d)\n", + tid, ret); dma_unmap_single(ar->ab->dev, rx_tid->paddr, rx_tid->size, DMA_BIDIRECTIONAL); kfree(rx_tid->vaddr); @@ -5193,7 +5194,8 @@ if (log_type != ATH11K_PKTLOG_TYPE_INVALID) trace_ath11k_htt_rxdesc(ar, skb->data, log_type, rx_buf_sz); - memset(ppdu_info, 0, sizeof(struct hal_rx_mon_ppdu_info)); + memset(ppdu_info, 0, sizeof(*ppdu_info)); + ppdu_info->peer_id = HAL_INVALID_PEERID; hal_status = ath11k_hal_rx_parse_mon_status(ab, ppdu_info, skb); if (test_bit(ATH11K_FLAG_MONITOR_STARTED, &ar->monitor_flags) && --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/htc.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/htc.c @@ -258,8 +258,10 @@ u8 eid; eid = ATH11K_SKB_CB(skb)->eid; - if (eid >= ATH11K_HTC_EP_COUNT) + if (eid >= ATH11K_HTC_EP_COUNT) { + dev_kfree_skb_any(skb); return; + } ep = &htc->endpoint[eid]; spin_lock_bh(&htc->tx_lock); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/hw.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/hw.h @@ -201,8 +201,6 @@ bool fixed_mem_region; bool static_window_map; bool hybrid_bus_type; - u8 dp_window_idx; - u8 ce_window_idx; bool fixed_fw_mem; bool support_off_channel_tx; }; --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/mac.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/mac.c @@ -505,7 +505,7 @@ struct ieee80211_chanctx_conf *conf; rcu_read_lock(); - conf = rcu_dereference(vif->chanctx_conf); + conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (!conf) { rcu_read_unlock(); return -ENOENT; @@ -1398,10 +1398,10 @@ { struct ieee80211_vif *vif = arvif->vif; - if (!vif->color_change_active && !arvif->bcca_zero_sent) + if (!vif->bss_conf.color_change_active && !arvif->bcca_zero_sent) return; - if (vif->color_change_active && ieee80211_beacon_cntdwn_is_complete(vif)) { + if (vif->bss_conf.color_change_active && ieee80211_beacon_cntdwn_is_complete(vif)) { arvif->bcca_zero_sent = true; ieee80211_color_change_finish(vif); return; @@ -1409,7 +1409,7 @@ arvif->bcca_zero_sent = false; - if (vif->color_change_active) + if (vif->bss_conf.color_change_active) ieee80211_beacon_update_cntdwn(vif); ath11k_mac_setup_bcn_tmpl(arvif); } @@ -4206,10 +4206,11 @@ const u8 *ht_mcs_mask; const u16 *vht_mcs_mask; const u16 *he_mcs_mask; - u32 changed, bw, nss, smps; + u32 changed, bw, nss, smps, bw_prev; int err, num_vht_rates, num_he_rates; const struct cfg80211_bitrate_mask *mask; struct peer_assoc_params peer_arg; + enum wmi_phy_mode peer_phymode; arsta = container_of(wk, struct ath11k_sta, update_wk); sta = container_of((void *)arsta, struct ieee80211_sta, drv_priv); @@ -4230,6 +4231,7 @@ arsta->changed = 0; bw = arsta->bw; + bw_prev = arsta->bw_prev; nss = arsta->nss; smps = arsta->smps; @@ -4243,26 +4245,57 @@ ath11k_mac_max_he_nss(he_mcs_mask))); if (changed & IEEE80211_RC_BW_CHANGED) { - /* Send peer assoc command before set peer bandwidth param to - * avoid the mismatch between the peer phymode and the peer - * bandwidth. - */ - ath11k_peer_assoc_prepare(ar, arvif->vif, sta, &peer_arg, true); + /* Get the peer phymode */ + ath11k_peer_assoc_h_phymode(ar, arvif->vif, sta, &peer_arg); + peer_phymode = peer_arg.peer_phymode; + + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac update sta %pM peer bw %d phymode %d\n", + sta->addr, bw, peer_phymode); + + if (bw > bw_prev) { + /* BW is upgraded. In this case we send WMI_PEER_PHYMODE + * followed by WMI_PEER_CHWIDTH + */ + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac BW upgrade for sta %pM new BW %d, old BW %d\n", + sta->addr, bw, bw_prev); + + err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, + WMI_PEER_PHYMODE, peer_phymode); + + if (err) { + ath11k_warn(ar->ab, "failed to update STA %pM peer phymode %d: %d\n", + sta->addr, peer_phymode, err); + goto err_rc_bw_changed; + } - peer_arg.is_assoc = false; - err = ath11k_wmi_send_peer_assoc_cmd(ar, &peer_arg); - if (err) { - ath11k_warn(ar->ab, "failed to send peer assoc for STA %pM vdev %i: %d\n", - sta->addr, arvif->vdev_id, err); - } else if (wait_for_completion_timeout(&ar->peer_assoc_done, 1 * HZ)) { err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, WMI_PEER_CHWIDTH, bw); + if (err) ath11k_warn(ar->ab, "failed to update STA %pM peer bw %d: %d\n", sta->addr, bw, err); } else { - ath11k_warn(ar->ab, "failed to get peer assoc conf event for %pM vdev %i\n", - sta->addr, arvif->vdev_id); + /* BW is downgraded. In this case we send WMI_PEER_CHWIDTH + * followed by WMI_PEER_PHYMODE + */ + ath11k_dbg(ar->ab, ATH11K_DBG_MAC, "mac BW downgrade for sta %pM new BW %d,old BW %d\n", + sta->addr, bw, bw_prev); + + err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, + WMI_PEER_CHWIDTH, bw); + + if (err) { + ath11k_warn(ar->ab, "failed to update STA %pM peer bw %d: %d\n", + sta->addr, bw, err); + goto err_rc_bw_changed; + } + + err = ath11k_wmi_set_peer_param(ar, sta->addr, arvif->vdev_id, + WMI_PEER_PHYMODE, peer_phymode); + + if (err) + ath11k_warn(ar->ab, "failed to update STA %pM peer phymode %d: %d\n", + sta->addr, peer_phymode, err); } } @@ -4343,6 +4376,7 @@ } } +err_rc_bw_changed: mutex_unlock(&ar->conf_mutex); } @@ -4495,6 +4529,34 @@ return ret; } +static u32 ath11k_mac_ieee80211_sta_bw_to_wmi(struct ath11k *ar, + struct ieee80211_sta *sta) +{ + u32 bw = WMI_PEER_CHWIDTH_20MHZ; + + switch (sta->deflink.bandwidth) { + case IEEE80211_STA_RX_BW_20: + bw = WMI_PEER_CHWIDTH_20MHZ; + break; + case IEEE80211_STA_RX_BW_40: + bw = WMI_PEER_CHWIDTH_40MHZ; + break; + case IEEE80211_STA_RX_BW_80: + bw = WMI_PEER_CHWIDTH_80MHZ; + break; + case IEEE80211_STA_RX_BW_160: + bw = WMI_PEER_CHWIDTH_160MHZ; + break; + default: + ath11k_warn(ar->ab, "Invalid bandwidth %d for %pM\n", + sta->deflink.bandwidth, sta->addr); + bw = WMI_PEER_CHWIDTH_20MHZ; + break; + } + + return bw; +} + static int ath11k_mac_op_sta_state(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_sta *sta, @@ -4579,6 +4641,12 @@ if (ret) ath11k_warn(ar->ab, "Failed to associate station: %pM\n", sta->addr); + + spin_lock_bh(&ar->data_lock); + /* Set arsta bw and prev bw */ + arsta->bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta); + arsta->bw_prev = arsta->bw; + spin_unlock_bh(&ar->data_lock); } else if (old_state == IEEE80211_STA_ASSOC && new_state == IEEE80211_STA_AUTHORIZED) { spin_lock_bh(&ar->ab->base_lock); @@ -4702,28 +4770,8 @@ spin_lock_bh(&ar->data_lock); if (changed & IEEE80211_RC_BW_CHANGED) { - bw = WMI_PEER_CHWIDTH_20MHZ; - - switch (sta->deflink.bandwidth) { - case IEEE80211_STA_RX_BW_20: - bw = WMI_PEER_CHWIDTH_20MHZ; - break; - case IEEE80211_STA_RX_BW_40: - bw = WMI_PEER_CHWIDTH_40MHZ; - break; - case IEEE80211_STA_RX_BW_80: - bw = WMI_PEER_CHWIDTH_80MHZ; - break; - case IEEE80211_STA_RX_BW_160: - bw = WMI_PEER_CHWIDTH_160MHZ; - break; - default: - ath11k_warn(ar->ab, "Invalid bandwidth %d in rc update for %pM\n", - sta->deflink.bandwidth, sta->addr); - bw = WMI_PEER_CHWIDTH_20MHZ; - break; - } - + bw = ath11k_mac_ieee80211_sta_bw_to_wmi(ar, sta); + arsta->bw_prev = arsta->bw; arsta->bw = bw; } @@ -4949,6 +4997,8 @@ if (vht_cap & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE)) { nsts = vht_cap & IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; nsts >>= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; + if (nsts > (ar->num_rx_chains - 1)) + nsts = ar->num_rx_chains - 1; value |= SM(nsts, WMI_TXBF_STS_CAP_OFFSET); } @@ -4989,7 +5039,7 @@ static void ath11k_set_vht_txbf_cap(struct ath11k *ar, u32 *vht_cap) { bool subfer, subfee; - int sound_dim = 0; + int sound_dim = 0, nsts = 0; subfer = !!(*vht_cap & (IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE)); subfee = !!(*vht_cap & (IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE)); @@ -4999,6 +5049,11 @@ subfer = false; } + if (ar->num_rx_chains < 2) { + *vht_cap &= ~(IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE); + subfee = false; + } + /* If SU Beaformer is not set, then disable MU Beamformer Capability */ if (!subfer) *vht_cap &= ~(IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE); @@ -5011,7 +5066,9 @@ sound_dim >>= IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_SHIFT; *vht_cap &= ~IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MASK; - /* TODO: Need to check invalid STS and Sound_dim values set by FW? */ + nsts = (*vht_cap & IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK); + nsts >>= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; + *vht_cap &= ~IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; /* Enable Sounding Dimension Field only if SU BF is enabled */ if (subfer) { @@ -5023,9 +5080,15 @@ *vht_cap |= sound_dim; } - /* Use the STS advertised by FW unless SU Beamformee is not supported*/ - if (!subfee) - *vht_cap &= ~(IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK); + /* Enable Beamformee STS Field only if SU BF is enabled */ + if (subfee) { + if (nsts > (ar->num_rx_chains - 1)) + nsts = ar->num_rx_chains - 1; + + nsts <<= IEEE80211_VHT_CAP_BEAMFORMEE_STS_SHIFT; + nsts &= IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; + *vht_cap |= nsts; + } } static struct ieee80211_sta_vht_cap @@ -6848,7 +6911,7 @@ { struct ath11k_mac_change_chanctx_arg *arg = data; - if (rcu_access_pointer(vif->chanctx_conf) != arg->ctx) + if (rcu_access_pointer(vif->bss_conf.chanctx_conf) != arg->ctx) return; arg->n_vifs++; @@ -6861,7 +6924,7 @@ struct ath11k_mac_change_chanctx_arg *arg = data; struct ieee80211_chanctx_conf *ctx; - ctx = rcu_access_pointer(vif->chanctx_conf); + ctx = rcu_access_pointer(vif->bss_conf.chanctx_conf); if (ctx != arg->ctx) return; @@ -8297,11 +8360,15 @@ const struct cfg80211_sar_specs *sar) { struct ath11k *ar = hw->priv; - const struct cfg80211_sar_sub_specs *sspec = sar->sub_specs; + const struct cfg80211_sar_sub_specs *sspec; int ret, index; u8 *sar_tbl; u32 i; + if (!sar || sar->type != NL80211_SAR_TYPE_POWER || + sar->num_sub_specs == 0) + return -EINVAL; + mutex_lock(&ar->conf_mutex); if (!test_bit(WMI_TLV_SERVICE_BIOS_SAR_SUPPORT, ar->ab->wmi_ab.svc_map) || @@ -8310,12 +8377,6 @@ goto exit; } - if (!sar || sar->type != NL80211_SAR_TYPE_POWER || - sar->num_sub_specs == 0) { - ret = -EINVAL; - goto exit; - } - ret = ath11k_wmi_pdev_set_bios_geo_table_param(ar); if (ret) { ath11k_warn(ar->ab, "failed to set geo table: %d\n", ret); @@ -8328,6 +8389,7 @@ goto exit; } + sspec = sar->sub_specs; for (i = 0; i < sar->num_sub_specs; i++) { if (sspec->freq_range_index >= (BIOS_SAR_TABLE_LEN >> 1)) { ath11k_warn(ar->ab, "Ignore bad frequency index %u, max allowed %u\n", --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/mhi.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/mhi.c @@ -402,8 +402,7 @@ ret = ath11k_mhi_get_msi(ab_pci); if (ret) { ath11k_err(ab, "failed to get msi for mhi\n"); - mhi_free_controller(mhi_ctrl); - return ret; + goto free_controller; } if (!test_bit(ATH11K_FLAG_MULTI_MSI_VECTORS, &ab->dev_flags)) @@ -412,7 +411,7 @@ if (test_bit(ATH11K_FLAG_FIXED_MEM_RGN, &ab->dev_flags)) { ret = ath11k_mhi_read_addr_from_dt(mhi_ctrl); if (ret < 0) - return ret; + goto free_controller; } else { mhi_ctrl->iova_start = 0; mhi_ctrl->iova_stop = 0xFFFFFFFF; @@ -440,18 +439,22 @@ default: ath11k_err(ab, "failed assign mhi_config for unknown hw rev %d\n", ab->hw_rev); - mhi_free_controller(mhi_ctrl); - return -EINVAL; + ret = -EINVAL; + goto free_controller; } ret = mhi_register_controller(mhi_ctrl, ath11k_mhi_config); if (ret) { ath11k_err(ab, "failed to register to mhi bus, err = %d\n", ret); - mhi_free_controller(mhi_ctrl); - return ret; + goto free_controller; } return 0; + +free_controller: + mhi_free_controller(mhi_ctrl); + ab_pci->mhi_ctrl = NULL; + return ret; } void ath11k_mhi_unregister(struct ath11k_pci *ab_pci) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/pci.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/pci.c @@ -50,6 +50,22 @@ mhi_device_put(ab_pci->mhi_ctrl->mhi_dev); } +static u32 ath11k_pci_get_window_start(struct ath11k_base *ab, u32 offset) +{ + if (!ab->hw_params.static_window_map) + return ATH11K_PCI_WINDOW_START; + + if ((offset ^ HAL_SEQ_WCSS_UMAC_OFFSET) < ATH11K_PCI_WINDOW_RANGE_MASK) + /* if offset lies within DP register range, use 3rd window */ + return 3 * ATH11K_PCI_WINDOW_START; + else if ((offset ^ HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab)) < + ATH11K_PCI_WINDOW_RANGE_MASK) + /* if offset lies within CE register range, use 2nd window */ + return 2 * ATH11K_PCI_WINDOW_START; + else + return ATH11K_PCI_WINDOW_START; +} + static inline void ath11k_pci_select_window(struct ath11k_pci *ab_pci, u32 offset) { struct ath11k_base *ab = ab_pci->ab; @@ -70,26 +86,39 @@ ath11k_pci_window_write32(struct ath11k_base *ab, u32 offset, u32 value) { struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); - u32 window_start = ATH11K_PCI_WINDOW_START; + u32 window_start; - spin_lock_bh(&ab_pci->window_lock); - ath11k_pci_select_window(ab_pci, offset); - iowrite32(value, ab->mem + window_start + - (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); - spin_unlock_bh(&ab_pci->window_lock); + window_start = ath11k_pci_get_window_start(ab, offset); + + if (window_start == ATH11K_PCI_WINDOW_START) { + spin_lock_bh(&ab_pci->window_lock); + ath11k_pci_select_window(ab_pci, offset); + iowrite32(value, ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); + spin_unlock_bh(&ab_pci->window_lock); + } else { + iowrite32(value, ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); + } } static u32 ath11k_pci_window_read32(struct ath11k_base *ab, u32 offset) { struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); - u32 window_start = ATH11K_PCI_WINDOW_START; - u32 val; + u32 window_start, val; - spin_lock_bh(&ab_pci->window_lock); - ath11k_pci_select_window(ab_pci, offset); - val = ioread32(ab->mem + window_start + - (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); - spin_unlock_bh(&ab_pci->window_lock); + window_start = ath11k_pci_get_window_start(ab, offset); + + if (window_start == ATH11K_PCI_WINDOW_START) { + spin_lock_bh(&ab_pci->window_lock); + ath11k_pci_select_window(ab_pci, offset); + val = ioread32(ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); + spin_unlock_bh(&ab_pci->window_lock); + } else { + val = ioread32(ab->mem + window_start + + (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); + } return val; } @@ -110,6 +139,8 @@ }; static const struct ath11k_pci_ops ath11k_pci_ops_qcn9074 = { + .wakeup = NULL, + .release = NULL, .get_msi_irq = ath11k_pci_get_msi_irq, .window_write32 = ath11k_pci_window_write32, .window_read32 = ath11k_pci_window_read32, @@ -697,6 +728,7 @@ struct ath11k_base *ab; struct ath11k_pci *ab_pci; u32 soc_hw_version_major, soc_hw_version_minor, addr; + const struct ath11k_pci_ops *pci_ops; int ret; ab = ath11k_core_alloc(&pdev->dev, sizeof(*ab_pci), ATH11K_BUS_PCI); @@ -754,10 +786,10 @@ goto err_pci_free_region; } - ab->pci.ops = &ath11k_pci_ops_qca6390; + pci_ops = &ath11k_pci_ops_qca6390; break; case QCN9074_DEVICE_ID: - ab->pci.ops = &ath11k_pci_ops_qcn9074; + pci_ops = &ath11k_pci_ops_qcn9074; ab->hw_rev = ATH11K_HW_QCN9074_HW10; break; case WCN6855_DEVICE_ID: @@ -787,7 +819,7 @@ goto err_pci_free_region; } - ab->pci.ops = &ath11k_pci_ops_qca6390; + pci_ops = &ath11k_pci_ops_qca6390; break; default: dev_err(&pdev->dev, "Unknown PCI device found: 0x%x\n", @@ -796,6 +828,12 @@ goto err_pci_free_region; } + ret = ath11k_pcic_register_pci_ops(ab, pci_ops); + if (ret) { + ath11k_err(ab, "failed to register PCI ops: %d\n", ret); + goto err_pci_free_region; + } + ret = ath11k_pcic_init_msi_config(ab); if (ret) { ath11k_err(ab, "failed to init msi config: %d\n", ret); @@ -920,7 +958,9 @@ static void ath11k_pci_shutdown(struct pci_dev *pdev) { struct ath11k_base *ab = pci_get_drvdata(pdev); + struct ath11k_pci *ab_pci = ath11k_pci_priv(ab); + ath11k_pci_set_irq_affinity_hint(ab_pci, NULL); ath11k_pci_power_down(ab); } --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/pcic.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/pcic.c @@ -140,23 +140,8 @@ } EXPORT_SYMBOL(ath11k_pcic_init_msi_config); -static inline u32 ath11k_pcic_get_window_start(struct ath11k_base *ab, - u32 offset) -{ - u32 window_start = 0; - - if ((offset ^ HAL_SEQ_WCSS_UMAC_OFFSET) < ATH11K_PCI_WINDOW_RANGE_MASK) - window_start = ab->hw_params.dp_window_idx * ATH11K_PCI_WINDOW_START; - else if ((offset ^ HAL_SEQ_WCSS_UMAC_CE0_SRC_REG(ab)) < - ATH11K_PCI_WINDOW_RANGE_MASK) - window_start = ab->hw_params.ce_window_idx * ATH11K_PCI_WINDOW_START; - - return window_start; -} - void ath11k_pcic_write32(struct ath11k_base *ab, u32 offset, u32 value) { - u32 window_start; int ret = 0; /* for offset beyond BAR + 4K - 32, may @@ -166,15 +151,10 @@ offset >= ATH11K_PCI_ACCESS_ALWAYS_OFF && ab->pci.ops->wakeup) ret = ab->pci.ops->wakeup(ab); - if (offset < ATH11K_PCI_WINDOW_START) { + if (offset < ATH11K_PCI_WINDOW_START) iowrite32(value, ab->mem + offset); - } else if (ab->hw_params.static_window_map) { - window_start = ath11k_pcic_get_window_start(ab, offset); - iowrite32(value, ab->mem + window_start + - (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); - } else if (ab->pci.ops->window_write32) { + else ab->pci.ops->window_write32(ab, offset, value); - } if (test_bit(ATH11K_FLAG_DEVICE_INIT_DONE, &ab->dev_flags) && offset >= ATH11K_PCI_ACCESS_ALWAYS_OFF && ab->pci.ops->release && @@ -185,9 +165,8 @@ u32 ath11k_pcic_read32(struct ath11k_base *ab, u32 offset) { - u32 val = 0; - u32 window_start; int ret = 0; + u32 val; /* for offset beyond BAR + 4K - 32, may * need to wakeup the device to access. @@ -196,15 +175,10 @@ offset >= ATH11K_PCI_ACCESS_ALWAYS_OFF && ab->pci.ops->wakeup) ret = ab->pci.ops->wakeup(ab); - if (offset < ATH11K_PCI_WINDOW_START) { + if (offset < ATH11K_PCI_WINDOW_START) val = ioread32(ab->mem + offset); - } else if (ab->hw_params.static_window_map) { - window_start = ath11k_pcic_get_window_start(ab, offset); - val = ioread32(ab->mem + window_start + - (offset & ATH11K_PCI_WINDOW_RANGE_MASK)); - } else if (ab->pci.ops->window_read32) { + else val = ab->pci.ops->window_read32(ab, offset); - } if (test_bit(ATH11K_FLAG_DEVICE_INIT_DONE, &ab->dev_flags) && offset >= ATH11K_PCI_ACCESS_ALWAYS_OFF && ab->pci.ops->release && @@ -516,11 +490,6 @@ static int ath11k_pcic_get_msi_irq(struct ath11k_base *ab, unsigned int vector) { - if (!ab->pci.ops->get_msi_irq) { - WARN_ONCE(1, "get_msi_irq pci op not defined"); - return -EOPNOTSUPP; - } - return ab->pci.ops->get_msi_irq(ab, vector); } @@ -746,3 +715,19 @@ return 0; } EXPORT_SYMBOL(ath11k_pcic_map_service_to_pipe); + +int ath11k_pcic_register_pci_ops(struct ath11k_base *ab, + const struct ath11k_pci_ops *pci_ops) +{ + if (!pci_ops) + return 0; + + /* Return error if mandatory pci_ops callbacks are missing */ + if (!pci_ops->get_msi_irq || !pci_ops->window_write32 || + !pci_ops->window_read32) + return -EINVAL; + + ab->pci.ops = pci_ops; + return 0; +} +EXPORT_SYMBOL(ath11k_pcic_register_pci_ops); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/pcic.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/pcic.h @@ -43,4 +43,6 @@ void ath11k_pcic_ce_irqs_enable(struct ath11k_base *ab); void ath11k_pcic_ce_irq_disable_sync(struct ath11k_base *ab); int ath11k_pcic_init_msi_config(struct ath11k_base *ab); +int ath11k_pcic_register_pci_ops(struct ath11k_base *ab, + const struct ath11k_pci_ops *pci_ops); #endif --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/peer.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/peer.c @@ -302,6 +302,21 @@ spin_lock_bh(&ab->base_lock); peer = ath11k_peer_find_by_addr(ab, addr); + /* Check if the found peer is what we want to remove. + * While the sta is transitioning to another band we may + * have 2 peer with the same addr assigned to different + * vdev_id. Make sure we are deleting the correct peer. + */ + if (peer && peer->vdev_id == vdev_id) + ath11k_peer_rhash_delete(ab, peer); + + /* Fallback to peer list search if the correct peer can't be found. + * Skip the deletion of the peer from the rhash since it has already + * been deleted in peer add. + */ + if (!peer) + peer = ath11k_peer_find(ab, vdev_id, addr); + if (!peer) { spin_unlock_bh(&ab->base_lock); mutex_unlock(&ab->tbl_mtx_lock); @@ -312,8 +327,6 @@ return -EINVAL; } - ath11k_peer_rhash_delete(ab, peer); - spin_unlock_bh(&ab->base_lock); mutex_unlock(&ab->tbl_mtx_lock); @@ -372,8 +385,17 @@ spin_lock_bh(&ar->ab->base_lock); peer = ath11k_peer_find_by_addr(ar->ab, param->peer_addr); if (peer) { - spin_unlock_bh(&ar->ab->base_lock); - return -EINVAL; + if (peer->vdev_id == param->vdev_id) { + spin_unlock_bh(&ar->ab->base_lock); + return -EINVAL; + } + + /* Assume sta is transitioning to another band. + * Remove here the peer from rhash. + */ + mutex_lock(&ar->ab->tbl_mtx_lock); + ath11k_peer_rhash_delete(ar->ab, peer); + mutex_unlock(&ar->ab->tbl_mtx_lock); } spin_unlock_bh(&ar->ab->base_lock); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/qmi.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/qmi.c @@ -1696,6 +1696,13 @@ }, }; +static struct qmi_elem_info qmi_wlfw_fw_init_done_ind_msg_v01_ei[] = { + { + .data_type = QMI_EOTI, + .array_type = NO_ARRAY, + }, +}; + static int ath11k_qmi_host_cap_send(struct ath11k_base *ab) { struct qmi_wlanfw_host_cap_req_msg_v01 req; @@ -3006,6 +3013,10 @@ struct ath11k_base *ab = qmi->ab; ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi firmware ready\n"); + + ab->qmi.cal_done = 1; + wake_up(&ab->qmi.cold_boot_waitq); + ath11k_qmi_driver_event_post(qmi, ATH11K_QMI_EVENT_FW_READY, NULL); } @@ -3018,11 +3029,22 @@ struct ath11k_qmi, handle); struct ath11k_base *ab = qmi->ab; - ab->qmi.cal_done = 1; - wake_up(&ab->qmi.cold_boot_waitq); ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi cold boot calibration done\n"); } +static void ath11k_qmi_msg_fw_init_done_cb(struct qmi_handle *qmi_hdl, + struct sockaddr_qrtr *sq, + struct qmi_txn *txn, + const void *decoded) +{ + struct ath11k_qmi *qmi = container_of(qmi_hdl, + struct ath11k_qmi, handle); + struct ath11k_base *ab = qmi->ab; + + ath11k_qmi_driver_event_post(qmi, ATH11K_QMI_EVENT_FW_INIT_DONE, NULL); + ath11k_dbg(ab, ATH11K_DBG_QMI, "qmi firmware init done\n"); +} + static const struct qmi_msg_handler ath11k_qmi_msg_handlers[] = { { .type = QMI_INDICATION, @@ -3053,6 +3075,14 @@ sizeof(struct qmi_wlanfw_fw_cold_cal_done_ind_msg_v01), .fn = ath11k_qmi_msg_cold_boot_cal_done_cb, }, + { + .type = QMI_INDICATION, + .msg_id = QMI_WLFW_FW_INIT_DONE_IND_V01, + .ei = qmi_wlfw_fw_init_done_ind_msg_v01_ei, + .decoded_size = + sizeof(struct qmi_wlfw_fw_init_done_ind_msg_v01), + .fn = ath11k_qmi_msg_fw_init_done_cb, + }, }; static int ath11k_qmi_ops_new_server(struct qmi_handle *qmi_hdl, @@ -3145,7 +3175,7 @@ } break; - case ATH11K_QMI_EVENT_FW_READY: + case ATH11K_QMI_EVENT_FW_INIT_DONE: clear_bit(ATH11K_FLAG_QMI_FAIL, &ab->dev_flags); if (test_bit(ATH11K_FLAG_REGISTERED, &ab->dev_flags)) { ath11k_hal_dump_srng_stats(ab); @@ -3169,6 +3199,8 @@ } break; + case ATH11K_QMI_EVENT_FW_READY: + break; case ATH11K_QMI_EVENT_COLD_BOOT_CAL_DONE: break; default: --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/qmi.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/qmi.h @@ -27,12 +27,13 @@ #define ATH11K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01 52 #define ATH11K_QMI_CALDB_SIZE 0x480000 #define ATH11K_QMI_BDF_EXT_STR_LENGTH 0x20 -#define ATH11K_QMI_FW_MEM_REQ_SEGMENT_CNT 3 +#define ATH11K_QMI_FW_MEM_REQ_SEGMENT_CNT 5 #define QMI_WLFW_REQUEST_MEM_IND_V01 0x0035 #define QMI_WLFW_FW_MEM_READY_IND_V01 0x0037 -#define QMI_WLFW_COLD_BOOT_CAL_DONE_IND_V01 0x0021 -#define QMI_WLFW_FW_READY_IND_V01 0x0038 +#define QMI_WLFW_COLD_BOOT_CAL_DONE_IND_V01 0x003E +#define QMI_WLFW_FW_READY_IND_V01 0x0021 +#define QMI_WLFW_FW_INIT_DONE_IND_V01 0x0038 #define QMI_WLANFW_MAX_DATA_SIZE_V01 6144 #define ATH11K_FIRMWARE_MODE_OFF 4 @@ -69,6 +70,7 @@ ATH11K_QMI_EVENT_FORCE_FW_ASSERT, ATH11K_QMI_EVENT_POWER_UP, ATH11K_QMI_EVENT_POWER_DOWN, + ATH11K_QMI_EVENT_FW_INIT_DONE, ATH11K_QMI_EVENT_MAX, }; @@ -291,6 +293,10 @@ char placeholder; }; +struct qmi_wlfw_fw_init_done_ind_msg_v01 { + char placeholder; +}; + #define QMI_WLANFW_CAP_REQ_MSG_V01_MAX_LEN 0 #define QMI_WLANFW_CAP_RESP_MSG_V01_MAX_LEN 235 #define QMI_WLANFW_CAP_REQ_V01 0x0024 --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/reg.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/reg.c @@ -287,11 +287,7 @@ goto err; } - rtnl_lock(); - wiphy_lock(ar->hw->wiphy); - ret = regulatory_set_wiphy_regd_sync(ar->hw->wiphy, regd_copy); - wiphy_unlock(ar->hw->wiphy); - rtnl_unlock(); + ret = regulatory_set_wiphy_regd(ar->hw->wiphy, regd_copy); kfree(regd_copy); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/wmi.c +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/wmi.c @@ -1700,7 +1700,7 @@ cmd->vdev_id = vdev_id; cmd->tim_ie_offset = offs->tim_offset; - if (vif->csa_active) { + if (vif->bss_conf.csa_active) { cmd->csa_switch_count_offset = offs->cntdwn_counter_offs[0]; cmd->ext_csa_switch_count_offset = offs->cntdwn_counter_offs[1]; } @@ -7476,7 +7476,7 @@ continue; } - if (arvif->is_up && arvif->vif->csa_active) + if (arvif->is_up && arvif->vif->bss_conf.csa_active) ieee80211_csa_finish(arvif->vif); } rcu_read_unlock(); @@ -9003,12 +9003,13 @@ cmd->interval = arg->interval; cmd->method = arg->method; + arp = (struct wmi_sta_keepalive_arp_resp *)(cmd + 1); + arp->tlv_header = FIELD_PREP(WMI_TLV_TAG, + WMI_TAG_STA_KEEPALIVE_ARP_RESPONSE) | + FIELD_PREP(WMI_TLV_LEN, sizeof(*arp) - TLV_HDR_SIZE); + if (arg->method == WMI_STA_KEEPALIVE_METHOD_UNSOLICITED_ARP_RESPONSE || arg->method == WMI_STA_KEEPALIVE_METHOD_GRATUITOUS_ARP_REQUEST) { - arp = (struct wmi_sta_keepalive_arp_resp *)(cmd + 1); - arp->tlv_header = FIELD_PREP(WMI_TLV_TAG, - WMI_TAG_STA_KEEPALVE_ARP_RESPONSE) | - FIELD_PREP(WMI_TLV_LEN, sizeof(*arp) - TLV_HDR_SIZE); arp->src_ip4_addr = arg->src_ip4_addr; arp->dest_ip4_addr = arg->dest_ip4_addr; ether_addr_copy(arp->dest_mac_addr.addr, arg->dest_mac_addr); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath11k/wmi.h +++ linux-5.19.0/drivers/net/wireless/ath/ath11k/wmi.h @@ -1214,7 +1214,7 @@ WMI_TAG_NS_OFFLOAD_TUPLE, WMI_TAG_FTM_INTG_CMD, WMI_TAG_STA_KEEPALIVE_CMD, - WMI_TAG_STA_KEEPALVE_ARP_RESPONSE, + WMI_TAG_STA_KEEPALIVE_ARP_RESPONSE, WMI_TAG_P2P_SET_VENDOR_IE_DATA_CMD, WMI_TAG_AP_PS_PEER_CMD, WMI_TAG_PEER_RATE_RETRY_SCHED_CMD, --- linux-5.19.0.orig/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/ath/ath6kl/cfg80211.c @@ -1119,7 +1119,7 @@ NL80211_CHAN_HT20 : NL80211_CHAN_NO_HT); mutex_lock(&vif->wdev.mtx); - cfg80211_ch_switch_notify(vif->ndev, &chandef); + cfg80211_ch_switch_notify(vif->ndev, &chandef, 0); mutex_unlock(&vif->wdev.mtx); } @@ -2967,7 +2967,8 @@ return ath6kl_set_ies(vif, beacon); } -static int ath6kl_stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int ath6kl_stop_ap(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id) { struct ath6kl *ar = ath6kl_priv(dev); struct ath6kl_vif *vif = netdev_priv(dev); @@ -3368,6 +3369,7 @@ static int ath6kl_cfg80211_set_bitrate(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id, const u8 *addr, const struct cfg80211_bitrate_mask *mask) { --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/beacon.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/beacon.c @@ -362,7 +362,7 @@ bool ath9k_csa_is_finished(struct ath_softc *sc, struct ieee80211_vif *vif) { - if (!vif || !vif->csa_active) + if (!vif || !vif->bss_conf.csa_active) return false; if (!ieee80211_beacon_cntdwn_is_complete(vif)) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/hif_usb.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -596,6 +596,13 @@ return; } + if (pkt_len > 2 * MAX_RX_BUF_SIZE) { + dev_err(&hif_dev->udev->dev, + "ath9k_htc: invalid pkt_len (%x)\n", pkt_len); + RX_STAT_INC(skb_dropped); + return; + } + pad_len = 4 - (pkt_len & 0x3); if (pad_len == 4) pad_len = 0; @@ -708,14 +715,13 @@ 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; int ret; if (!skb) return; if (!hif_dev) - goto free; + goto free_skb; switch (urb->status) { case 0: @@ -724,7 +730,7 @@ case -ECONNRESET: case -ENODEV: case -ESHUTDOWN: - goto free; + goto free_skb; default: skb_reset_tail_pointer(skb); skb_trim(skb, 0); @@ -735,25 +741,27 @@ if (likely(urb->actual_length != 0)) { skb_put(skb, urb->actual_length); - /* Process the command first */ + /* + * Process the command first. + * skb is either freed here or passed to be + * managed to another callback function. + */ ath9k_htc_rx_msg(hif_dev->htc_handle, skb, skb->len, USB_REG_IN_PIPE); - - nskb = alloc_skb(MAX_REG_IN_BUF_SIZE, GFP_ATOMIC); - if (!nskb) { + skb = alloc_skb(MAX_REG_IN_BUF_SIZE, GFP_ATOMIC); + if (!skb) { dev_err(&hif_dev->udev->dev, "ath9k_htc: REG_IN memory allocation failure\n"); - urb->context = NULL; - return; + goto free_rx_buf; } - rx_buf->skb = nskb; + rx_buf->skb = skb; usb_fill_int_urb(urb, hif_dev->udev, usb_rcvintpipe(hif_dev->udev, USB_REG_IN_PIPE), - nskb->data, MAX_REG_IN_BUF_SIZE, + skb->data, MAX_REG_IN_BUF_SIZE, ath9k_hif_usb_reg_in_cb, rx_buf, 1); } @@ -762,12 +770,13 @@ ret = usb_submit_urb(urb, GFP_ATOMIC); if (ret) { usb_unanchor_urb(urb); - goto free; + goto free_skb; } return; -free: +free_skb: kfree_skb(skb); +free_rx_buf: kfree(rx_buf); urb->context = NULL; } @@ -780,14 +789,10 @@ 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); @@ -1329,10 +1334,24 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface, const struct usb_device_id *id) { + struct usb_endpoint_descriptor *bulk_in, *bulk_out, *int_in, *int_out; struct usb_device *udev = interface_to_usbdev(interface); + struct usb_host_interface *alt; struct hif_device_usb *hif_dev; int ret = 0; + /* Verify the expected endpoints are present */ + alt = interface->cur_altsetting; + if (usb_find_common_endpoints(alt, &bulk_in, &bulk_out, &int_in, &int_out) < 0 || + usb_endpoint_num(bulk_in) != USB_WLAN_RX_PIPE || + usb_endpoint_num(bulk_out) != USB_WLAN_TX_PIPE || + usb_endpoint_num(int_in) != USB_REG_IN_PIPE || + usb_endpoint_num(int_out) != USB_REG_OUT_PIPE) { + dev_err(&udev->dev, + "ath9k_htc: Device endpoint numbers are not the expected ones\n"); + return -ENODEV; + } + if (id->driver_info == STORAGE_DEVICE) return send_eject_command(interface); --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/htc.h +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/htc.h @@ -327,11 +327,11 @@ } #ifdef CONFIG_ATH9K_HTC_DEBUGFS - -#define TX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.tx_stats.c++) -#define TX_STAT_ADD(c, a) (hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a) -#define RX_STAT_INC(c) (hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++) -#define RX_STAT_ADD(c, a) (hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a) +#define __STAT_SAFE(expr) (hif_dev->htc_handle->drv_priv ? (expr) : 0) +#define TX_STAT_INC(c) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c++) +#define TX_STAT_ADD(c, a) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.tx_stats.c += a) +#define RX_STAT_INC(c) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c++) +#define RX_STAT_ADD(c, a) __STAT_SAFE(hif_dev->htc_handle->drv_priv->debug.skbrx_stats.c += a) #define CAB_STAT_INC priv->debug.tx_stats.cab_queued++ #define TX_QSTAT_INC(q) (priv->debug.tx_stats.queue_stats[q]++) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/htc_drv_beacon.c @@ -511,7 +511,7 @@ struct ieee80211_vif *vif; vif = priv->csa_vif; - if (!vif || !vif->csa_active) + if (!vif || !vif->bss_conf.csa_active) return false; if (!ieee80211_beacon_cntdwn_is_complete(vif)) --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/htc_drv_init.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/htc_drv_init.c @@ -944,7 +944,6 @@ priv->hw = hw; priv->htc = htc_handle; priv->dev = dev; - htc_handle->drv_priv = priv; SET_IEEE80211_DEV(hw, priv->dev); ret = ath9k_htc_wait_for_target(priv); @@ -965,6 +964,8 @@ if (ret) goto err_init; + htc_handle->drv_priv = priv; + return 0; err_init: --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/htc_hst.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/htc_hst.c @@ -364,33 +364,27 @@ } static void ath9k_htc_fw_panic_report(struct htc_target *htc_handle, - struct sk_buff *skb) + struct sk_buff *skb, u32 len) { uint32_t *pattern = (uint32_t *)skb->data; - switch (*pattern) { - case 0x33221199: - { + if (*pattern == 0x33221199 && len >= sizeof(struct htc_panic_bad_vaddr)) { struct htc_panic_bad_vaddr *htc_panic; htc_panic = (struct htc_panic_bad_vaddr *) skb->data; dev_err(htc_handle->dev, "ath: firmware panic! " "exccause: 0x%08x; pc: 0x%08x; badvaddr: 0x%08x.\n", htc_panic->exccause, htc_panic->pc, htc_panic->badvaddr); - break; - } - case 0x33221299: - { + return; + } + if (*pattern == 0x33221299) { struct htc_panic_bad_epid *htc_panic; htc_panic = (struct htc_panic_bad_epid *) skb->data; dev_err(htc_handle->dev, "ath: firmware panic! " "bad epid: 0x%08x\n", htc_panic->epid); - break; - } - default: - dev_err(htc_handle->dev, "ath: unknown panic pattern!\n"); - break; + return; } + dev_err(htc_handle->dev, "ath: unknown panic pattern!\n"); } /* @@ -411,16 +405,26 @@ if (!htc_handle || !skb) return; + /* A valid message requires len >= 8. + * + * sizeof(struct htc_frame_hdr) == 8 + * sizeof(struct htc_ready_msg) == 8 + * sizeof(struct htc_panic_bad_vaddr) == 16 + * sizeof(struct htc_panic_bad_epid) == 8 + */ + if (unlikely(len < sizeof(struct htc_frame_hdr))) + goto invalid; htc_hdr = (struct htc_frame_hdr *) skb->data; epid = htc_hdr->endpoint_id; if (epid == 0x99) { - ath9k_htc_fw_panic_report(htc_handle, skb); + ath9k_htc_fw_panic_report(htc_handle, skb, len); kfree_skb(skb); return; } if (epid < 0 || epid >= ENDPOINT_MAX) { +invalid: if (pipe_id != USB_REG_IN_PIPE) dev_kfree_skb_any(skb); else @@ -432,21 +436,30 @@ /* Handle trailer */ if (htc_hdr->flags & HTC_FLAGS_RECV_TRAILER) { - if (be32_to_cpu(*(__be32 *) skb->data) == 0x00C60000) + if (be32_to_cpu(*(__be32 *) skb->data) == 0x00C60000) { /* Move past the Watchdog pattern */ htc_hdr = (struct htc_frame_hdr *)(skb->data + 4); + len -= 4; + } } /* Get the message ID */ + if (unlikely(len < sizeof(struct htc_frame_hdr) + sizeof(__be16))) + goto invalid; msg_id = (__be16 *) ((void *) htc_hdr + sizeof(struct htc_frame_hdr)); /* Now process HTC messages */ switch (be16_to_cpu(*msg_id)) { case HTC_MSG_READY_ID: + if (unlikely(len < sizeof(struct htc_ready_msg))) + goto invalid; htc_process_target_rdy(htc_handle, htc_hdr); break; case HTC_MSG_CONNECT_SERVICE_RESPONSE_ID: + if (unlikely(len < sizeof(struct htc_frame_hdr) + + sizeof(struct htc_conn_svc_rspmsg))) + goto invalid; htc_process_conn_rsp(htc_handle, htc_hdr); break; default: --- linux-5.19.0.orig/drivers/net/wireless/ath/ath9k/rng.c +++ linux-5.19.0/drivers/net/wireless/ath/ath9k/rng.c @@ -83,7 +83,8 @@ if (!wait || !max || likely(bytes_read) || fail_stats > 110) break; - msleep_interruptible(ath9k_rng_delay_get(++fail_stats)); + if (hwrng_msleep(rng, ath9k_rng_delay_get(++fail_stats))) + break; } if (wait && !bytes_read && max) --- linux-5.19.0.orig/drivers/net/wireless/ath/wil6210/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/ath/wil6210/cfg80211.c @@ -2098,8 +2098,8 @@ bcon->tail_len)) privacy = 1; - memcpy(vif->ssid, wdev->ssid, wdev->ssid_len); - vif->ssid_len = wdev->ssid_len; + memcpy(vif->ssid, wdev->u.ap.ssid, wdev->u.ap.ssid_len); + vif->ssid_len = wdev->u.ap.ssid_len; /* in case privacy has changed, need to restart the AP */ if (vif->privacy != privacy) { @@ -2108,7 +2108,7 @@ rc = _wil_cfg80211_start_ap(wiphy, ndev, vif->ssid, vif->ssid_len, privacy, - wdev->beacon_interval, + wdev->links[0].ap.beacon_interval, vif->channel, vif->wmi_edmg_channel, bcon, vif->hidden_ssid, @@ -2186,7 +2186,8 @@ } static int wil_cfg80211_stop_ap(struct wiphy *wiphy, - struct net_device *ndev) + struct net_device *ndev, + unsigned int link_id) { struct wil6210_priv *wil = wiphy_to_wil(wiphy); struct wil6210_vif *vif = ndev_to_vif(ndev); --- linux-5.19.0.orig/drivers/net/wireless/ath/wil6210/debugfs.c +++ linux-5.19.0/drivers/net/wireless/ath/wil6210/debugfs.c @@ -1010,20 +1010,14 @@ void *cmd; int cmdlen = len - sizeof(struct wmi_cmd_hdr); u16 cmdid; - int rc, rc1; + int rc1; - if (cmdlen < 0) + if (cmdlen < 0 || *ppos != 0) return -EINVAL; - wmi = kmalloc(len, GFP_KERNEL); - if (!wmi) - return -ENOMEM; - - rc = simple_write_to_buffer(wmi, len, ppos, buf, len); - if (rc < 0) { - kfree(wmi); - return rc; - } + wmi = memdup_user(buf, len); + if (IS_ERR(wmi)) + return PTR_ERR(wmi); cmd = (cmdlen > 0) ? &wmi[1] : NULL; cmdid = le16_to_cpu(wmi->command_id); @@ -1033,7 +1027,7 @@ wil_info(wil, "0x%04x[%d] -> %d\n", cmdid, cmdlen, rc1); - return rc; + return len; } static const struct file_operations fops_wmi = { --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -4965,7 +4965,8 @@ return err; } -static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev) +static int brcmf_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *ndev, + unsigned int link_id) { struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_if *ifp = netdev_priv(ndev); @@ -5302,6 +5303,7 @@ static int brcmf_cfg80211_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -296,6 +296,7 @@ struct brcmf_pub *drvr = ifp->drvr; struct ethhdr *eh; int head_delta; + unsigned int tx_bytes = skb->len; brcmf_dbg(DATA, "Enter, bsscfgidx=%d\n", ifp->bsscfgidx); @@ -370,7 +371,7 @@ ndev->stats.tx_dropped++; } else { ndev->stats.tx_packets++; - ndev->stats.tx_bytes += skb->len; + ndev->stats.tx_bytes += tx_bytes; } /* Return ok: we always eat the packet */ --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/firmware.c @@ -746,6 +746,11 @@ u32 i, j; char end = '\0'; + if (chiprev >= BITS_PER_TYPE(u32)) { + brcmf_err("Invalid chip revision %u\n", chiprev); + return NULL; + } + for (i = 0; i < table_size; i++) { if (mapping_table[i].chipid == chip && mapping_table[i].revmask & BIT(chiprev)) --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c @@ -228,6 +228,10 @@ brcmf_fweh_event_name(event->code), event->code, event->emsg.ifidx, event->emsg.bsscfgidx, event->emsg.addr); + if (event->emsg.bsscfgidx >= BRCMF_MAX_IFS) { + bphy_err(drvr, "invalid bsscfg index: %u\n", event->emsg.bsscfgidx); + goto event_free; + } /* convert event message */ emsg_be = &event->emsg; --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -626,7 +626,7 @@ } if (!brcmf_chip_set_active(devinfo->ci, resetintr)) - return -EINVAL; + return -EIO; return 0; } @@ -1120,6 +1120,10 @@ BRCMF_NROF_H2D_COMMON_MSGRINGS; max_completionrings = BRCMF_NROF_D2H_COMMON_MSGRINGS; } + if (max_flowrings > 256) { + brcmf_err(bus, "invalid max_flowrings(%d)\n", max_flowrings); + return -EIO; + } if (devinfo->dma_idx_sz != 0) { bufsz = (max_submissionrings + max_completionrings) * --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c @@ -158,12 +158,12 @@ struct brcmf_pno_macaddr_le pfn_mac; u8 *mac_addr = NULL; u8 *mac_mask = NULL; - int err, i; + int err, i, ri; - for (i = 0; i < pi->n_reqs; i++) - if (pi->reqs[i]->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { - mac_addr = pi->reqs[i]->mac_addr; - mac_mask = pi->reqs[i]->mac_addr_mask; + for (ri = 0; ri < pi->n_reqs; ri++) + if (pi->reqs[ri]->flags & NL80211_SCAN_FLAG_RANDOM_ADDR) { + mac_addr = pi->reqs[ri]->mac_addr; + mac_mask = pi->reqs[ri]->mac_addr_mask; break; } @@ -185,7 +185,7 @@ pfn_mac.mac[0] |= 0x02; brcmf_dbg(SCAN, "enabling random mac: reqid=%llu mac=%pM\n", - pi->reqs[i]->reqid, pfn_mac.mac); + pi->reqs[ri]->reqid, pfn_mac.mac); err = brcmf_fil_iovar_data_set(ifp, "pfn_macaddr", &pfn_mac, sizeof(pfn_mac)); if (err) --- linux-5.19.0.orig/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +++ linux-5.19.0/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c @@ -3412,6 +3412,7 @@ /* Take arm out of reset */ if (!brcmf_chip_set_active(bus->ci, rstvec)) { brcmf_err("error getting out of ARM core reset\n"); + bcmerror = -EIO; goto err; } --- linux-5.19.0.orig/drivers/net/wireless/cisco/airo.c +++ linux-5.19.0/drivers/net/wireless/cisco/airo.c @@ -5232,7 +5232,7 @@ return -1; } -static int set_wep_key(struct airo_info *ai, u16 index, const char *key, +static int set_wep_key(struct airo_info *ai, u16 index, const u8 *key, u16 keylen, int perm, int lock) { static const unsigned char macaddr[ETH_ALEN] = { 0x01, 0, 0, 0, 0, 0 }; @@ -5283,7 +5283,7 @@ struct net_device *dev = pde_data(inode); struct airo_info *ai = dev->ml_priv; int i, rc; - char key[16]; + u8 key[16]; u16 index = 0; int j = 0; @@ -5311,12 +5311,22 @@ } for (i = 0; i < 16*3 && data->wbuffer[i+j]; i++) { + int val; + + if (i % 3 == 2) + continue; + + val = hex_to_bin(data->wbuffer[i+j]); + if (val < 0) { + airo_print_err(ai->dev->name, "WebKey passed invalid key hex"); + return; + } switch(i%3) { case 0: - key[i/3] = hex_to_bin(data->wbuffer[i+j])<<4; + key[i/3] = (u8)val << 4; break; case 1: - key[i/3] |= hex_to_bin(data->wbuffer[i+j]); + key[i/3] |= (u8)val; break; } } --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlegacy/4965-rs.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlegacy/4965-rs.c @@ -2403,7 +2403,7 @@ /* Repeat initial/next rate. * For legacy IL_NUMBER_TRY == 1, this loop will not execute. * For HT IL_HT_NUMBER_TRY == 3, this executes twice. */ - while (repeat_rate > 0 && idx < LINK_QUAL_MAX_RETRY_NUM) { + while (repeat_rate > 0 && idx < (LINK_QUAL_MAX_RETRY_NUM - 1)) { if (is_legacy(tbl_type.lq_type)) { if (ant_toggle_cnt < NUM_TRY_BEFORE_ANT_TOGGLE) ant_toggle_cnt++; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/Kconfig +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/Kconfig @@ -140,6 +140,7 @@ depends on INTEL_MEI depends on PM depends on CFG80211 + depends on BROKEN help Enables the iwlmei kernel module. --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mei/iwl-mei.h @@ -446,9 +446,10 @@ void iwl_mei_host_disassociated(void); /** - * iwl_mei_device_down() - must be called when the device is down + * iwl_mei_device_state() - must be called when the device changes up/down state + * @up: true if the device is up, false otherwise. */ -void iwl_mei_device_down(void); +void iwl_mei_device_state(bool up); #else @@ -497,7 +498,7 @@ static inline void iwl_mei_host_disassociated(void) {} -static inline void iwl_mei_device_down(void) +static inline void iwl_mei_device_state(bool up) {} #endif /* CONFIG_IWLMEI */ --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mei/main.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mei/main.c @@ -147,9 +147,13 @@ * to send CSME_OWNERSHIP_CONFIRMED when the driver completes its down * flow. * @link_prot_state: true when we are in link protection PASSIVE + * @device_down: true if the device is down. Used to remember to send + * CSME_OWNERSHIP_CONFIRMED when the driver is already down. * @csa_throttle_end_wk: used when &csa_throttled is true * @data_q_lock: protects the access to the data queues which are * accessed without the mutex. + * @netdev_work: used to defer registering and unregistering of the netdev to + * avoid taking the rtnl lock in the SAP messages handlers. * @sap_seq_no: the sequence number for the SAP messages * @seq_no: the sequence number for the SAP messages * @dbgfs_dir: the debugfs dir entry @@ -167,8 +171,10 @@ bool csa_throttled; bool csme_taking_ownership; bool link_prot_state; + bool device_down; struct delayed_work csa_throttle_end_wk; spinlock_t data_q_lock; + struct work_struct netdev_work; atomic_t sap_seq_no; atomic_t seq_no; @@ -588,13 +594,38 @@ return res; } +static void iwl_mei_netdev_work(struct work_struct *wk) +{ + struct iwl_mei *mei = + container_of(wk, struct iwl_mei, netdev_work); + struct net_device *netdev; + + /* + * First take rtnl and only then the mutex to avoid an ABBA + * with iwl_mei_set_netdev() + */ + rtnl_lock(); + mutex_lock(&iwl_mei_mutex); + + netdev = rcu_dereference_protected(iwl_mei_cache.netdev, + lockdep_is_held(&iwl_mei_mutex)); + if (netdev) { + if (mei->amt_enabled) + netdev_rx_handler_register(netdev, iwl_mei_rx_handler, + mei); + else + netdev_rx_handler_unregister(netdev); + } + + mutex_unlock(&iwl_mei_mutex); + rtnl_unlock(); +} + static void iwl_mei_handle_rx_start_ok(struct mei_cl_device *cldev, const struct iwl_sap_me_msg_start_ok *rsp, ssize_t len) { - struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); - if (len != sizeof(*rsp)) { dev_err(&cldev->dev, "got invalid SAP_ME_MSG_START_OK from CSME firmware\n"); @@ -613,13 +644,10 @@ mutex_lock(&iwl_mei_mutex); set_bit(IWL_MEI_STATUS_SAP_CONNECTED, &iwl_mei_status); - /* wifi driver has registered already */ - if (iwl_mei_cache.ops) { - iwl_mei_send_sap_msg(mei->cldev, - SAP_MSG_NOTIF_WIFIDR_UP); - iwl_mei_cache.ops->sap_connected(iwl_mei_cache.priv); - } - + /* + * We'll receive AMT_STATE SAP message in a bit and + * that will continue the flow + */ mutex_unlock(&iwl_mei_mutex); } @@ -712,6 +740,13 @@ .val = cpu_to_le32(iwl_mei_cache.rf_kill), }; + /* wifi driver has registered already */ + if (iwl_mei_cache.ops) { + iwl_mei_send_sap_msg(mei->cldev, + SAP_MSG_NOTIF_WIFIDR_UP); + iwl_mei_cache.ops->sap_connected(iwl_mei_cache.priv); + } + iwl_mei_send_sap_msg(mei->cldev, SAP_MSG_NOTIF_WHO_OWNS_NIC); if (iwl_mei_cache.conn_info) { @@ -738,38 +773,23 @@ const struct iwl_sap_msg_dw *dw) { struct iwl_mei *mei = mei_cldev_get_drvdata(cldev); - struct net_device *netdev; - /* - * First take rtnl and only then the mutex to avoid an ABBA - * with iwl_mei_set_netdev() - */ - rtnl_lock(); mutex_lock(&iwl_mei_mutex); - netdev = rcu_dereference_protected(iwl_mei_cache.netdev, - lockdep_is_held(&iwl_mei_mutex)); - if (mei->amt_enabled == !!le32_to_cpu(dw->val)) goto out; mei->amt_enabled = dw->val; - if (mei->amt_enabled) { - if (netdev) - netdev_rx_handler_register(netdev, iwl_mei_rx_handler, mei); - + if (mei->amt_enabled) iwl_mei_set_init_conf(mei); - } else { - if (iwl_mei_cache.ops) - iwl_mei_cache.ops->rfkill(iwl_mei_cache.priv, false); - if (netdev) - netdev_rx_handler_unregister(netdev); - } + else if (iwl_mei_cache.ops) + iwl_mei_cache.ops->rfkill(iwl_mei_cache.priv, false, false); + + schedule_work(&mei->netdev_work); out: mutex_unlock(&iwl_mei_mutex); - rtnl_unlock(); } static void iwl_mei_handle_nic_owner(struct mei_cl_device *cldev, @@ -798,14 +818,18 @@ mei->got_ownership = false; - /* - * Remember to send CSME_OWNERSHIP_CONFIRMED when the wifi driver - * is finished taking the device down. - */ - mei->csme_taking_ownership = true; + if (iwl_mei_cache.ops && !mei->device_down) { + /* + * Remember to send CSME_OWNERSHIP_CONFIRMED when the wifi + * driver is finished taking the device down. + */ + mei->csme_taking_ownership = true; - if (iwl_mei_cache.ops) - iwl_mei_cache.ops->rfkill(iwl_mei_cache.priv, true); + iwl_mei_cache.ops->rfkill(iwl_mei_cache.priv, true, true); + } else { + iwl_mei_send_sap_msg(cldev, + SAP_MSG_NOTIF_CSME_OWNERSHIP_CONFIRMED); + } } static void iwl_mei_handle_nvm(struct mei_cl_device *cldev, @@ -1413,10 +1437,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) - goto out; - - if (!mei->amt_enabled) + if (!mei && !mei->amt_enabled) goto out; iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); @@ -1445,7 +1466,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) + if (!mei && !mei->amt_enabled) goto out; iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); @@ -1481,7 +1502,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) + if (!mei && !mei->amt_enabled) goto out; iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); @@ -1510,7 +1531,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) + if (!mei && !mei->amt_enabled) goto out; iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); @@ -1538,7 +1559,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) + if (!mei && !mei->amt_enabled) goto out; iwl_mei_send_sap_msg_payload(mei->cldev, &msg.hdr); @@ -1564,7 +1585,7 @@ mei = mei_cldev_get_drvdata(iwl_mei_global_cldev); - if (!mei) + if (!mei && !mei->amt_enabled) goto out; memcpy(msg.sar_chain_info_table, power_limit, sizeof(msg.sar_chain_info_table)); @@ -1616,7 +1637,7 @@ } EXPORT_SYMBOL_GPL(iwl_mei_set_netdev); -void iwl_mei_device_down(void) +void iwl_mei_device_state(bool up) { struct iwl_mei *mei; @@ -1630,7 +1651,9 @@ if (!mei) goto out; - if (!mei->csme_taking_ownership) + mei->device_down = !up; + + if (up || !mei->csme_taking_ownership) goto out; iwl_mei_send_sap_msg(mei->cldev, @@ -1639,7 +1662,7 @@ out: mutex_unlock(&iwl_mei_mutex); } -EXPORT_SYMBOL_GPL(iwl_mei_device_down); +EXPORT_SYMBOL_GPL(iwl_mei_device_state); int iwl_mei_register(void *priv, const struct iwl_mei_ops *ops) { @@ -1669,9 +1692,10 @@ /* we have already a SAP connection */ if (iwl_mei_is_connected()) { - iwl_mei_send_sap_msg(mei->cldev, - SAP_MSG_NOTIF_WIFIDR_UP); - ops->rfkill(priv, mei->link_prot_state); + if (mei->amt_enabled) + iwl_mei_send_sap_msg(mei->cldev, + SAP_MSG_NOTIF_WIFIDR_UP); + ops->rfkill(priv, mei->link_prot_state, false); } } ret = 0; @@ -1818,9 +1842,11 @@ iwl_mei_csa_throttle_end_wk); init_waitqueue_head(&mei->get_ownership_wq); spin_lock_init(&mei->data_q_lock); + INIT_WORK(&mei->netdev_work, iwl_mei_netdev_work); mei_cldev_set_drvdata(cldev, mei); mei->cldev = cldev; + mei->device_down = true; do { ret = iwl_mei_alloc_shared_mem(cldev); @@ -1921,29 +1947,32 @@ mutex_lock(&iwl_mei_mutex); - /* - * Tell CSME that we are going down so that it won't access the - * memory anymore, make sure this message goes through immediately. - */ - mei->csa_throttled = false; - iwl_mei_send_sap_msg(mei->cldev, - SAP_MSG_NOTIF_HOST_GOES_DOWN); + if (mei->amt_enabled) { + /* + * Tell CSME that we are going down so that it won't access the + * memory anymore, make sure this message goes through immediately. + */ + mei->csa_throttled = false; + iwl_mei_send_sap_msg(mei->cldev, + SAP_MSG_NOTIF_HOST_GOES_DOWN); - for (i = 0; i < SEND_SAP_MAX_WAIT_ITERATION; i++) { - if (!iwl_mei_host_to_me_data_pending(mei)) - break; + for (i = 0; i < SEND_SAP_MAX_WAIT_ITERATION; i++) { + if (!iwl_mei_host_to_me_data_pending(mei)) + break; - msleep(5); - } + msleep(20); + } - /* - * If we couldn't make sure that CSME saw the HOST_GOES_DOWN message, - * it means that it will probably keep reading memory that we are going - * to unmap and free, expect IOMMU error messages. - */ - if (i == SEND_SAP_MAX_WAIT_ITERATION) - dev_err(&mei->cldev->dev, - "Couldn't get ACK from CSME on HOST_GOES_DOWN message\n"); + /* + * If we couldn't make sure that CSME saw the HOST_GOES_DOWN + * message, it means that it will probably keep reading memory + * that we are going to unmap and free, expect IOMMU error + * messages. + */ + if (i == SEND_SAP_MAX_WAIT_ITERATION) + dev_err(&mei->cldev->dev, + "Couldn't get ACK from CSME on HOST_GOES_DOWN message\n"); + } mutex_unlock(&iwl_mei_mutex); @@ -1976,6 +2005,7 @@ */ cancel_work_sync(&mei->send_csa_msg_wk); cancel_delayed_work_sync(&mei->csa_throttle_end_wk); + cancel_work_sync(&mei->netdev_work); /* * If someone waits for the ownership, let him know that we are going --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mei/net.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mei/net.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-only /* - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation */ #include @@ -337,10 +337,14 @@ if (!*pass_to_csme) return RX_HANDLER_PASS; - if (ret == RX_HANDLER_PASS) + if (ret == RX_HANDLER_PASS) { skb = skb_copy(orig_skb, GFP_ATOMIC); - else + + if (!skb) + return RX_HANDLER_PASS; + } else { skb = orig_skb; + } /* CSME wants the MAC header as well, push it back */ skb_push(skb, skb->data - skb_mac_header(skb)); --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/coex.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/coex.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2013-2014, 2018-2020 Intel Corporation + * Copyright (C) 2013-2014, 2018-2020, 2022 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH */ #include @@ -106,7 +106,7 @@ rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (!chanctx_conf || chanctx_conf->def.chan->band != NL80211_BAND_2GHZ) { @@ -283,7 +283,7 @@ return; } - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); /* If channel context is invalid or not on 2.4GHz .. */ if ((!chanctx_conf || --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/d3.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/d3.c @@ -731,7 +731,7 @@ return -EINVAL; rcu_read_lock(); - ctx = rcu_dereference(vif->chanctx_conf); + ctx = rcu_dereference(vif->bss_conf.chanctx_conf); if (WARN_ON(!ctx)) { rcu_read_unlock(); return -EINVAL; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c @@ -234,7 +234,7 @@ } rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (chanctx_conf) pos += scnprintf(buf+pos, bufsz-pos, "idle rx chains %d, active rx chains: %d\n", @@ -597,7 +597,7 @@ mutex_lock(&mvm->mutex); rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); /* make sure the channel context is assigned */ if (!chanctx_conf) { rcu_read_unlock(); --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/ftm-responder.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* * Copyright (C) 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation */ #include #include @@ -398,7 +398,7 @@ } rcu_read_lock(); - pctx = rcu_dereference(vif->chanctx_conf); + pctx = rcu_dereference(vif->bss_conf.chanctx_conf); /* Copy the ctx to unlock the rcu and send the phy ctxt. We don't care * about changes in the ctx after releasing the lock because the driver * is still protected by the mutex. */ --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/fw.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/fw.c @@ -1665,6 +1665,8 @@ iwl_rfi_send_config_cmd(mvm, NULL); } + iwl_mvm_mei_device_state(mvm, true); + IWL_DEBUG_INFO(mvm, "RT uCode started.\n"); return 0; error: --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c @@ -481,7 +481,7 @@ eth_broadcast_addr(cmd->bssid_addr); rcu_read_lock(); - chanctx = rcu_dereference(vif->chanctx_conf); + chanctx = rcu_dereference(vif->bss_conf.chanctx_conf); iwl_mvm_ack_rates(mvm, vif, chanctx ? chanctx->def.chan->band : NL80211_BAND_2GHZ, &cck_ack_rates, &ofdm_ack_rates); @@ -934,7 +934,7 @@ /* Enable FILS on PSC channels only */ rcu_read_lock(); - ctx = rcu_dereference(vif->chanctx_conf); + ctx = rcu_dereference(vif->bss_conf.chanctx_conf); channel = ieee80211_frequency_to_channel(ctx->def.chan->center_freq); WARN_ON(channel == 0); if (cfg80211_channel_is_psc(ctx->def.chan) && @@ -1335,7 +1335,7 @@ csa_vif = rcu_dereference_protected(mvm->csa_vif, lockdep_is_held(&mvm->mutex)); - if (unlikely(csa_vif && csa_vif->csa_active)) + if (unlikely(csa_vif && csa_vif->bss_conf.csa_active)) iwl_mvm_csa_count_down(mvm, csa_vif, mvm->ap_last_beacon_gp2, (status == TX_STATUS_SUCCESS)); @@ -1558,7 +1558,7 @@ switch (vif->type) { case NL80211_IFTYPE_AP: csa_vif = rcu_dereference(mvm->csa_vif); - if (WARN_ON(!csa_vif || !csa_vif->csa_active || + if (WARN_ON(!csa_vif || !csa_vif->bss_conf.csa_active || csa_vif != vif)) goto out_unlock; @@ -1587,7 +1587,7 @@ */ if (iwl_fw_lookup_notif_ver(mvm->fw, MAC_CONF_GROUP, CHANNEL_SWITCH_ERROR_NOTIF, - 0) && !vif->csa_active) { + 0) && !vif->bss_conf.csa_active) { IWL_DEBUG_INFO(mvm, "Channel Switch was canceled\n"); iwl_mvm_cancel_channel_switch(mvm, vif, mac_id); break; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c @@ -1768,7 +1768,7 @@ static void iwl_mvm_mu_mimo_iface_iterator(void *_data, u8 *mac, struct ieee80211_vif *vif) { - if (vif->mu_mimo_owner) { + if (vif->bss_conf.mu_mimo_owner) { struct iwl_mu_group_mgmt_notif *notif = _data; /* @@ -1833,8 +1833,8 @@ * If nss < MAX: we can set zeros in other streams */ if (nss > MAX_HE_SUPP_NSS) { - IWL_INFO(mvm, "Got NSS = %d - trimming to %d\n", nss, - MAX_HE_SUPP_NSS); + IWL_DEBUG_INFO(mvm, "Got NSS = %d - trimming to %d\n", nss, + MAX_HE_SUPP_NSS); nss = MAX_HE_SUPP_NSS; } @@ -1965,7 +1965,7 @@ rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return; @@ -2337,7 +2337,7 @@ * However, on HW restart we should restore this data. */ if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status) && - (changes & BSS_CHANGED_MU_GROUPS) && vif->mu_mimo_owner) { + (changes & BSS_CHANGED_MU_GROUPS) && vif->bss_conf.mu_mimo_owner) { ret = iwl_mvm_update_mu_groups(mvm, vif); if (ret) IWL_ERR(mvm, @@ -4004,7 +4004,7 @@ { struct iwl_mvm_ftm_responder_iter_data *data = _data; - if (rcu_access_pointer(vif->chanctx_conf) == data->ctx && + if (rcu_access_pointer(vif->bss_conf.chanctx_conf) == data->ctx && vif->type == NL80211_IFTYPE_AP && vif->bss_conf.ftmr_params) data->responder = true; } @@ -4631,7 +4631,7 @@ csa_vif = rcu_dereference_protected(mvm->csa_vif, lockdep_is_held(&mvm->mutex)); - if (WARN_ONCE(csa_vif && csa_vif->csa_active, + if (WARN_ONCE(csa_vif && csa_vif->bss_conf.csa_active, "Another CSA is already in progress")) { ret = -EBUSY; goto out_unlock; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -2201,10 +2201,10 @@ iwl_mei_host_disassociated(); } -static inline void iwl_mvm_mei_device_down(struct iwl_mvm *mvm) +static inline void iwl_mvm_mei_device_state(struct iwl_mvm *mvm, bool up) { if (mvm->mei_registered) - iwl_mei_device_down(); + iwl_mei_device_state(up); } static inline void iwl_mvm_mei_set_sw_rfkill_state(struct iwl_mvm *mvm) --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/ops.c @@ -1370,7 +1370,7 @@ iwl_trans_stop_device(mvm->trans); iwl_free_fw_paging(&mvm->fwrt); iwl_fw_dump_conf_clear(&mvm->fwrt); - iwl_mvm_mei_device_down(mvm); + iwl_mvm_mei_device_state(mvm, false); } static void iwl_op_mode_mvm_stop(struct iwl_op_mode *op_mode) --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/power.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/power.c @@ -283,7 +283,7 @@ bool radar_detect = false; rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); WARN_ON(!chanctx_conf); if (chanctx_conf) { chan = chanctx_conf->def.chan; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/rs.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/rs.c @@ -1980,7 +1980,7 @@ #endif rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) band = NUM_NL80211_BANDS; else --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/sta.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/sta.c @@ -1861,6 +1861,7 @@ iwl_mvm_txq_from_mac80211(sta->txq[i]); mvmtxq->txq_id = IWL_MVM_INVALID_QUEUE; + list_del_init(&mvmtxq->list); } } --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/tdls.c @@ -2,7 +2,7 @@ /* * Copyright (C) 2014 Intel Mobile Communications GmbH * Copyright (C) 2017 Intel Deutschland GmbH - * Copyright (C) 2018-2020 Intel Corporation + * Copyright (C) 2018-2020, 2022 Intel Corporation */ #include #include "mvm.h" @@ -380,7 +380,7 @@ type == TDLS_MOVE_CH) { /* we need to return to base channel */ struct ieee80211_chanctx_conf *chanctx = - rcu_dereference(vif->chanctx_conf); + rcu_dereference(vif->bss_conf.chanctx_conf); if (WARN_ON_ONCE(!chanctx)) { rcu_read_unlock(); --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/time-event.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2012-2014, 2018-2021 Intel Corporation + * Copyright (C) 2012-2014, 2018-2022 Intel Corporation * Copyright (C) 2013-2015 Intel Mobile Communications GmbH * Copyright (C) 2017 Intel Deutschland GmbH */ @@ -123,7 +123,7 @@ rcu_read_lock(); csa_vif = rcu_dereference(mvm->csa_vif); - if (!csa_vif || !csa_vif->csa_active) + if (!csa_vif || !csa_vif->bss_conf.csa_active) goto out_unlock; IWL_DEBUG_TE(mvm, "CSA NOA started\n"); --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/mvm/tx.c @@ -1171,9 +1171,15 @@ /* From now on, we cannot access info->control */ iwl_mvm_skb_prepare_status(skb, dev_cmd); + /* + * The IV is introduced by the HW for new tx api, and it is not present + * in the skb, hence, don't tell iwl_mvm_mei_tx_copy_to_csme about the + * IV for those devices. + */ if (ieee80211_is_data(fc)) iwl_mvm_mei_tx_copy_to_csme(mvm, skb, - info->control.hw_key ? + info->control.hw_key && + !iwl_mvm_has_new_tx_api(mvm) ? info->control.hw_key->iv_len : 0); if (iwl_trans_tx(mvm->trans, skb, dev_cmd, txq_id)) @@ -1206,6 +1212,7 @@ struct sk_buff_head mpdus_skbs; unsigned int payload_len; int ret; + struct sk_buff *orig_skb = skb; if (WARN_ON_ONCE(!mvmsta)) return -1; @@ -1238,8 +1245,17 @@ ret = iwl_mvm_tx_mpdu(mvm, skb, &info, sta); if (ret) { + /* Free skbs created as part of TSO logic that have not yet been dequeued */ __skb_queue_purge(&mpdus_skbs); - return ret; + /* skb here is not necessarily same as skb that entered this method, + * so free it explicitly. + */ + if (skb == orig_skb) + ieee80211_free_txskb(mvm->hw, skb); + else + kfree_skb(skb); + /* there was error, but we consumed skb one way or another, so return 0 */ + return 0; } } @@ -1959,7 +1975,7 @@ if (mvmsta->vif) chanctx_conf = - rcu_dereference(mvmsta->vif->chanctx_conf); + rcu_dereference(mvmsta->vif->bss_conf.chanctx_conf); if (WARN_ON_ONCE(!chanctx_conf)) goto out; --- linux-5.19.0.orig/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ linux-5.19.0/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -210,6 +210,7 @@ {IWL_PCI_DEVICE(0x088E, 0x446A, iwl6035_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x088E, 0x4860, iwl6035_2agn_cfg)}, {IWL_PCI_DEVICE(0x088F, 0x5260, iwl6035_2agn_cfg)}, + {IWL_PCI_DEVICE(0x088F, 0x526A, iwl6035_2agn_cfg)}, /* 105 Series */ {IWL_PCI_DEVICE(0x0894, 0x0022, iwl105_bgn_cfg)}, --- linux-5.19.0.orig/drivers/net/wireless/intersil/p54/main.c +++ linux-5.19.0/drivers/net/wireless/intersil/p54/main.c @@ -682,7 +682,7 @@ * queues have already been stopped and no new frames can sneak * up from behind. */ - while ((total = p54_flush_count(priv) && i--)) { + while ((total = p54_flush_count(priv)) && i--) { /* waste time */ msleep(20); } --- linux-5.19.0.orig/drivers/net/wireless/intersil/p54/p54spi.c +++ linux-5.19.0/drivers/net/wireless/intersil/p54/p54spi.c @@ -164,7 +164,7 @@ ret = p54_parse_firmware(dev, priv->firmware); if (ret) { - release_firmware(priv->firmware); + /* the firmware is released by the caller */ return ret; } @@ -659,6 +659,7 @@ return 0; err_free_common: + release_firmware(priv->firmware); free_irq(gpio_to_irq(p54spi_gpio_irq), spi); err_free_gpio_irq: gpio_free(p54spi_gpio_irq); --- linux-5.19.0.orig/drivers/net/wireless/mac80211_hwsim.c +++ linux-5.19.0/drivers/net/wireless/mac80211_hwsim.c @@ -680,7 +680,7 @@ bool ps_poll_pending; struct dentry *debugfs; - uintptr_t pending_cookie; + atomic_t pending_cookie; struct sk_buff_head pending; /* packets pending */ /* * Only radios in the same group can communicate together (the @@ -889,7 +889,7 @@ rcu_read_lock(); mac80211_hwsim_tx_frame(data->hw, skb, - rcu_dereference(vif->chanctx_conf)->def.chan); + rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan); rcu_read_unlock(); } @@ -899,6 +899,7 @@ struct hwsim_vif_priv *vp = (void *)vif->drv_priv; struct sk_buff *skb; struct ieee80211_hdr *hdr; + struct ieee80211_tx_info *cb; if (!vp->assoc) return; @@ -920,9 +921,13 @@ memcpy(hdr->addr2, mac, ETH_ALEN); memcpy(hdr->addr3, vp->bssid, ETH_ALEN); + cb = IEEE80211_SKB_CB(skb); + cb->control.rates[0].count = 1; + cb->control.rates[1].idx = -1; + rcu_read_lock(); mac80211_hwsim_tx_frame(data->hw, skb, - rcu_dereference(vif->chanctx_conf)->def.chan); + rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan); rcu_read_unlock(); } @@ -1416,8 +1421,7 @@ goto nla_put_failure; /* We create a cookie to identify this skb */ - data->pending_cookie++; - cookie = data->pending_cookie; + cookie = atomic_inc_return(&data->pending_cookie); info->rate_driver_data[0] = (void *)cookie; if (nla_put_u64_64bit(skb, HWSIM_ATTR_COOKIE, cookie, HWSIM_ATTR_PAD)) goto nla_put_failure; @@ -1465,11 +1469,11 @@ { struct tx_iter_data *data = _data; - if (!vif->chanctx_conf) + if (!vif->bss_conf.chanctx_conf) return; if (!hwsim_chans_compat(data->channel, - rcu_dereference(vif->chanctx_conf)->def.chan)) + rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan)) return; data->receive = true; @@ -1687,7 +1691,11 @@ } else if (txi->hw_queue == 4) { channel = data->tmp_chan; } else { - chanctx_conf = rcu_dereference(txi->control.vif->chanctx_conf); + struct ieee80211_bss_conf *bss_conf; + + bss_conf = &txi->control.vif->bss_conf; + + chanctx_conf = rcu_dereference(bss_conf->chanctx_conf); if (chanctx_conf) { channel = chanctx_conf->def.chan; confbw = chanctx_conf->def.width; @@ -1936,14 +1944,14 @@ } mac80211_hwsim_tx_frame(hw, skb, - rcu_dereference(vif->chanctx_conf)->def.chan); + rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan); while ((skb = ieee80211_get_buffered_bc(hw, vif)) != NULL) { mac80211_hwsim_tx_frame(hw, skb, - rcu_dereference(vif->chanctx_conf)->def.chan); + rcu_dereference(vif->bss_conf.chanctx_conf)->def.chan); } - if (vif->csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) + if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) ieee80211_csa_finish(vif); } @@ -2205,7 +2213,7 @@ struct ieee80211_chanctx_conf *chanctx_conf; rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (!WARN_ON(!chanctx_conf)) confbw = chanctx_conf->def.width; @@ -4080,6 +4088,7 @@ const u8 *src; unsigned int hwsim_flags; int i; + unsigned long flags; bool found = false; if (!info->attrs[HWSIM_ATTR_ADDR_TRANSMITTER] || @@ -4107,18 +4116,20 @@ } /* look for the skb matching the cookie passed back from user */ + spin_lock_irqsave(&data2->pending.lock, flags); skb_queue_walk_safe(&data2->pending, skb, tmp) { - u64 skb_cookie; + uintptr_t skb_cookie; txi = IEEE80211_SKB_CB(skb); - skb_cookie = (u64)(uintptr_t)txi->rate_driver_data[0]; + skb_cookie = (uintptr_t)txi->rate_driver_data[0]; if (skb_cookie == ret_skb_cookie) { - skb_unlink(skb, &data2->pending); + __skb_unlink(skb, &data2->pending); found = true; break; } } + spin_unlock_irqrestore(&data2->pending.lock, flags); /* not found */ if (!found) @@ -4245,6 +4256,8 @@ rx_status.band = channel->band; rx_status.rate_idx = nla_get_u32(info->attrs[HWSIM_ATTR_RX_RATE]); + if (rx_status.rate_idx >= data2->hw->wiphy->bands[rx_status.band]->n_bitrates) + goto out; rx_status.signal = nla_get_u32(info->attrs[HWSIM_ATTR_SIGNAL]); hdr = (void *)skb->data; --- linux-5.19.0.orig/drivers/net/wireless/marvell/libertas/if_usb.c +++ linux-5.19.0/drivers/net/wireless/marvell/libertas/if_usb.c @@ -287,6 +287,7 @@ return 0; err_get_fw: + usb_put_dev(udev); lbs_remove_card(priv); err_add_card: if_usb_reset_device(cardp); --- linux-5.19.0.orig/drivers/net/wireless/marvell/libertas/mesh.c +++ linux-5.19.0/drivers/net/wireless/marvell/libertas/mesh.c @@ -109,9 +109,9 @@ if (priv->mesh_dev) { mesh_wdev = priv->mesh_dev->ieee80211_ptr; - ie->val.mesh_id_len = mesh_wdev->mesh_id_up_len; - memcpy(ie->val.mesh_id, mesh_wdev->ssid, - mesh_wdev->mesh_id_up_len); + ie->val.mesh_id_len = mesh_wdev->u.mesh.id_up_len; + memcpy(ie->val.mesh_id, mesh_wdev->u.mesh.id, + mesh_wdev->u.mesh.id_up_len); } ie->len = sizeof(struct mrvl_meshie_val) - @@ -986,8 +986,8 @@ mesh_wdev->wiphy = priv->wdev->wiphy; if (priv->mesh_tlv) { - sprintf(mesh_wdev->ssid, "mesh"); - mesh_wdev->mesh_id_up_len = 4; + sprintf(mesh_wdev->u.mesh.id, "mesh"); + mesh_wdev->u.mesh.id_up_len = 4; } mesh_wdev->netdev = mesh_dev; --- linux-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/11h.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/11h.c @@ -304,6 +304,6 @@ mwifiex_dbg(priv->adapter, MSG, "indicating channel switch completion to kernel\n"); mutex_lock(&priv->wdev.mtx); - cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef); + cfg80211_ch_switch_notify(priv->netdev, &priv->dfs_chandef, 0); mutex_unlock(&priv->wdev.mtx); } --- linux-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/cfg80211.c @@ -1753,10 +1753,12 @@ * Function configures data rates to firmware using bitrate mask * provided by cfg80211. */ -static int mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy, - struct net_device *dev, - const u8 *peer, - const struct cfg80211_bitrate_mask *mask) +static int +mwifiex_cfg80211_set_bitrate_mask(struct wiphy *wiphy, + struct net_device *dev, + unsigned int link_id, + const u8 *peer, + const struct cfg80211_bitrate_mask *mask) { struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); u16 bitmap_rates[MAX_BITMAP_RATES_SIZE]; @@ -1998,7 +2000,8 @@ /* cfg80211 operation handler for stop ap. * Function stops BSS running at uAP interface. */ -static int mwifiex_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int mwifiex_cfg80211_stop_ap(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id) { struct mwifiex_private *priv = mwifiex_netdev_get_priv(dev); @@ -2421,7 +2424,7 @@ return -EINVAL; } - if (priv->wdev.current_bss) { + if (priv->wdev.connected) { mwifiex_dbg(adapter, ERROR, "%s: already connected\n", dev->name); return -EALREADY; @@ -2649,7 +2652,7 @@ return -EBUSY; } - if (!priv->wdev.current_bss && priv->scan_block) + if (!priv->wdev.connected && priv->scan_block) priv->scan_block = false; if (!mwifiex_stop_bg_scan(priv)) @@ -4025,6 +4028,7 @@ static int mwifiex_cfg80211_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct mwifiex_private *priv = mwifiex_netdev_get_priv(wdev->netdev); --- linux-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/fw.h +++ linux-5.19.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) @@ -364,6 +365,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 @@ -1201,6 +1203,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; @@ -1324,6 +1336,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, @@ -2381,6 +2398,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-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/main.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/main.c @@ -769,8 +769,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; } @@ -801,6 +803,7 @@ cfg80211_sched_scan_stopped(priv->wdev.wiphy, 0); } + mwifiex_set_led(priv->adapter, MWIFIEX_LED_OFF); return 0; } --- linux-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/main.h +++ linux-5.19.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 @@ -701,6 +705,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; }; @@ -1499,6 +1504,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-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/pcie.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/pcie.c @@ -380,6 +380,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", @@ -421,6 +423,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; } --- linux-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/sta_cmd.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/sta_cmd.c @@ -428,6 +428,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. * @@ -1997,6 +2022,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-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/sta_cmdresp.c @@ -1434,6 +1434,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-5.19.0.orig/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c +++ linux-5.19.0/drivers/net/wireless/marvell/mwifiex/sta_ioctl.c @@ -570,6 +570,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-5.19.0.orig/drivers/net/wireless/mediatek/mt76/eeprom.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/eeprom.c @@ -162,10 +162,13 @@ } if (mt76_string_prop_find(country, dev->alpha2) || - mt76_string_prop_find(regd, region_name)) + mt76_string_prop_find(regd, region_name)) { + of_node_put(np); return cur; + } } + of_node_put(np); return fallback; } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mac80211.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mac80211.c @@ -178,6 +178,12 @@ { .start_freq = 5350, .end_freq = 5470, }, { .start_freq = 5470, .end_freq = 5725, }, { .start_freq = 5725, .end_freq = 5950, }, + { .start_freq = 5945, .end_freq = 6165, }, + { .start_freq = 6165, .end_freq = 6405, }, + { .start_freq = 6405, .end_freq = 6525, }, + { .start_freq = 6525, .end_freq = 6705, }, + { .start_freq = 6705, .end_freq = 6865, }, + { .start_freq = 6865, .end_freq = 7125, }, }; static const struct cfg80211_sar_capa mt76_sar_capa = { @@ -210,6 +216,7 @@ if (!of_property_read_u32(np, "led-sources", &led_pin)) dev->led_pin = led_pin; dev->led_al = of_property_read_bool(np, "led-active-low"); + of_node_put(np); } return led_classdev_register(dev->dev, &dev->led_cdev); @@ -1459,7 +1466,7 @@ static void __mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) { - if (vif->csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) + if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) ieee80211_csa_finish(vif); } @@ -1481,7 +1488,7 @@ { struct mt76_dev *dev = priv; - if (!vif->csa_active) + if (!vif->bss_conf.csa_active) return; dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76.h @@ -1102,8 +1102,9 @@ static inline u8 mt76_tx_power_nss_delta(u8 nss) { static const u8 nss_delta[4] = { 0, 6, 9, 12 }; + u8 idx = nss - 1; - return nss_delta[nss - 1]; + return (idx < ARRAY_SIZE(nss_delta)) ? nss_delta[idx] : 0; } static inline bool mt76_testmode_enabled(struct mt76_phy *phy) --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mac.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7615/mac.c @@ -1138,7 +1138,7 @@ offset %= 32; val = mt76_rr(dev, addr); - val >>= (tid % 32); + val >>= offset; if (offset > 20) { addr += 4; @@ -2282,6 +2282,7 @@ int mt7615_dfs_init_radar_detector(struct mt7615_phy *phy) { + struct cfg80211_chan_def *chandef = &phy->mt76->chandef; struct mt7615_dev *dev = phy->dev; bool ext_phy = phy != &dev->phy; enum mt76_dfs_state dfs_state, prev_state; @@ -2292,13 +2293,13 @@ prev_state = phy->mt76->dfs_state; dfs_state = mt76_phy_dfs_state(phy->mt76); + if ((chandef->chan->flags & IEEE80211_CHAN_RADAR) && + dfs_state < MT_DFS_STATE_CAC) + dfs_state = MT_DFS_STATE_ACTIVE; if (prev_state == dfs_state) return 0; - if (prev_state == MT_DFS_STATE_UNKNOWN) - mt7615_dfs_stop_radar_detector(phy); - if (dfs_state == MT_DFS_STATE_DISABLED) goto stop; --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/main.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7615/main.c @@ -282,26 +282,6 @@ mt76_packet_id_flush(&dev->mt76, &mvif->sta.wcid); } -static void mt7615_init_dfs_state(struct mt7615_phy *phy) -{ - struct mt76_phy *mphy = phy->mt76; - struct ieee80211_hw *hw = mphy->hw; - struct cfg80211_chan_def *chandef = &hw->conf.chandef; - - if (hw->conf.flags & IEEE80211_CONF_OFFCHANNEL) - return; - - if (!(chandef->chan->flags & IEEE80211_CHAN_RADAR) && - !(mphy->chandef.chan->flags & IEEE80211_CHAN_RADAR)) - return; - - if (mphy->chandef.chan->center_freq == chandef->chan->center_freq && - mphy->chandef.width == chandef->width) - return; - - phy->dfs_state = -1; -} - int mt7615_set_channel(struct mt7615_phy *phy) { struct mt7615_dev *dev = phy->dev; @@ -314,7 +294,6 @@ set_bit(MT76_RESET, &phy->mt76->state); - mt7615_init_dfs_state(phy); mt76_set_channel(phy->mt76); if (is_mt7615(&dev->mt76) && dev->flash_eeprom) { @@ -1215,12 +1194,16 @@ struct mt7615_dev *dev = mt7615_hw_dev(hw); struct mt7615_sta *msta = (struct mt7615_sta *)sta->drv_priv; + mt7615_mutex_acquire(dev); + if (enabled) set_bit(MT_WCID_FLAG_HDR_TRANS, &msta->wcid.flags); else clear_bit(MT_WCID_FLAG_HDR_TRANS, &msta->wcid.flags); mt7615_mcu_set_sta_decap_offload(dev, vif, sta); + + mt7615_mutex_release(dev); } #ifdef CONFIG_PM --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7615/mcu.c @@ -350,10 +350,11 @@ } mt7622_trigger_hif_int(dev, false); - - pm->stats.last_doze_event = jiffies; - pm->stats.awake_time += pm->stats.last_doze_event - - pm->stats.last_wake_event; + if (!err) { + pm->stats.last_doze_event = jiffies; + pm->stats.awake_time += pm->stats.last_doze_event - + pm->stats.last_wake_event; + } out: mutex_unlock(&pm->mutex); @@ -363,7 +364,7 @@ static void mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) { - if (vif->csa_active) + if (vif->bss_conf.csa_active) ieee80211_csa_finish(vif); } @@ -402,6 +403,9 @@ if (r->band_idx && dev->mt76.phy2) mphy = dev->mt76.phy2; + if (mt76_phy_dfs_state(mphy) < MT_DFS_STATE_CAC) + return; + ieee80211_radar_detected(mphy->hw); dev->hw_pattern++; } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7615/mt7615.h @@ -177,7 +177,6 @@ u8 chfreq; u8 rdd_state; - int dfs_state; u32 rx_ampdu_ts; u32 ampdu_ref; --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76_connac.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76_connac.h @@ -12,6 +12,8 @@ #define MT76_CONNAC_MAX_SCHED_SCAN_SSID 10 #define MT76_CONNAC_MAX_SCAN_MATCH 16 +#define MT76_CONNAC_MAX_WMM_SETS 4 + #define MT76_CONNAC_COREDUMP_TIMEOUT (HZ / 20) #define MT76_CONNAC_COREDUMP_SZ (1300 * 1024) @@ -244,5 +246,9 @@ struct sk_buff *skb); void mt76_connac_pm_dequeue_skbs(struct mt76_phy *phy, struct mt76_connac_pm *pm); +void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, + struct sk_buff *skb, struct mt76_wcid *wcid, + struct ieee80211_key_conf *key, int pid, + u32 changed); #endif /* __MT76_CONNAC_H */ --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76_connac2_mac.h @@ -0,0 +1,167 @@ +/* SPDX-License-Identifier: ISC */ +/* Copyright (C) 2022 MediaTek Inc. */ + +#ifndef __MT76_CONNAC2_MAC_H +#define __MT76_CONNAC2_MAC_H + +enum tx_header_format { + MT_HDR_FORMAT_802_3, + MT_HDR_FORMAT_CMD, + MT_HDR_FORMAT_802_11, + MT_HDR_FORMAT_802_11_EXT, +}; + +enum tx_pkt_type { + MT_TX_TYPE_CT, + MT_TX_TYPE_SF, + MT_TX_TYPE_CMD, + MT_TX_TYPE_FW, +}; + +enum { + MT_CTX0, + MT_HIF0 = 0x0, + + MT_LMAC_AC00 = 0x0, + MT_LMAC_AC01, + MT_LMAC_AC02, + MT_LMAC_AC03, + MT_LMAC_ALTX0 = 0x10, + MT_LMAC_BMC0, + MT_LMAC_BCN0, + MT_LMAC_PSMP0, +}; + +#define MT_TXD_SIZE (8 * 4) +#define MT_SDIO_TXD_SIZE (MT_TXD_SIZE + 8 * 4) +#define MT_SDIO_TAIL_SIZE 8 +#define MT_SDIO_HDR_SIZE 4 +#define MT_USB_TAIL_SIZE 4 + +#define MT_TXD0_Q_IDX GENMASK(31, 25) +#define MT_TXD0_PKT_FMT GENMASK(24, 23) +#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) +#define MT_TXD0_TX_BYTES GENMASK(15, 0) + +#define MT_TXD1_LONG_FORMAT BIT(31) +#define MT_TXD1_TGID BIT(30) +#define MT_TXD1_OWN_MAC GENMASK(29, 24) +#define MT_TXD1_AMSDU BIT(23) +#define MT_TXD1_TID GENMASK(22, 20) +#define MT_TXD1_HDR_PAD GENMASK(19, 18) +#define MT_TXD1_HDR_FORMAT GENMASK(17, 16) +#define MT_TXD1_HDR_INFO GENMASK(15, 11) +#define MT_TXD1_ETH_802_3 BIT(15) +#define MT_TXD1_VTA BIT(10) +#define MT_TXD1_WLAN_IDX GENMASK(9, 0) + +#define MT_TXD2_FIX_RATE BIT(31) +#define MT_TXD2_FIXED_RATE BIT(30) +#define MT_TXD2_POWER_OFFSET GENMASK(29, 24) +#define MT_TXD2_MAX_TX_TIME GENMASK(23, 16) +#define MT_TXD2_FRAG GENMASK(15, 14) +#define MT_TXD2_HTC_VLD BIT(13) +#define MT_TXD2_DURATION BIT(12) +#define MT_TXD2_BIP BIT(11) +#define MT_TXD2_MULTICAST BIT(10) +#define MT_TXD2_RTS BIT(9) +#define MT_TXD2_SOUNDING BIT(8) +#define MT_TXD2_NDPA BIT(7) +#define MT_TXD2_NDP BIT(6) +#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) +#define MT_TXD2_SUB_TYPE GENMASK(3, 0) + +#define MT_TXD3_SN_VALID BIT(31) +#define MT_TXD3_PN_VALID BIT(30) +#define MT_TXD3_SW_POWER_MGMT BIT(29) +#define MT_TXD3_BA_DISABLE BIT(28) +#define MT_TXD3_SEQ GENMASK(27, 16) +#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) +#define MT_TXD3_TX_COUNT GENMASK(10, 6) +#define MT_TXD3_TIMING_MEASURE BIT(5) +#define MT_TXD3_DAS BIT(4) +#define MT_TXD3_EEOSP BIT(3) +#define MT_TXD3_EMRD BIT(2) +#define MT_TXD3_PROTECT_FRAME BIT(1) +#define MT_TXD3_NO_ACK BIT(0) + +#define MT_TXD4_PN_LOW GENMASK(31, 0) + +#define MT_TXD5_PN_HIGH GENMASK(31, 16) +#define MT_TXD5_MD BIT(15) +#define MT_TXD5_ADD_BA BIT(14) +#define MT_TXD5_TX_STATUS_HOST BIT(10) +#define MT_TXD5_TX_STATUS_MCU BIT(9) +#define MT_TXD5_TX_STATUS_FMT BIT(8) +#define MT_TXD5_PID GENMASK(7, 0) + +#define MT_TXD6_TX_IBF BIT(31) +#define MT_TXD6_TX_EBF BIT(30) +#define MT_TXD6_TX_RATE GENMASK(29, 16) +#define MT_TXD6_SGI GENMASK(15, 14) +#define MT_TXD6_HELTF GENMASK(13, 12) +#define MT_TXD6_LDPC BIT(11) +#define MT_TXD6_SPE_ID_IDX BIT(10) +#define MT_TXD6_ANT_ID GENMASK(7, 4) +#define MT_TXD6_DYN_BW BIT(3) +#define MT_TXD6_FIXED_BW BIT(2) +#define MT_TXD6_BW GENMASK(1, 0) + +#define MT_TXD7_TXD_LEN GENMASK(31, 30) +#define MT_TXD7_UDP_TCP_SUM BIT(29) +#define MT_TXD7_IP_SUM BIT(28) +#define MT_TXD7_TYPE GENMASK(21, 20) +#define MT_TXD7_SUB_TYPE GENMASK(19, 16) + +#define MT_TXD7_PSE_FID GENMASK(27, 16) +#define MT_TXD7_SPE_IDX GENMASK(15, 11) +#define MT_TXD7_HW_AMSDU BIT(10) +#define MT_TXD7_TX_TIME GENMASK(9, 0) + +#define MT_TXD8_L_TYPE GENMASK(5, 4) +#define MT_TXD8_L_SUB_TYPE GENMASK(3, 0) + +#define MT_TX_RATE_STBC BIT(13) +#define MT_TX_RATE_NSS GENMASK(12, 10) +#define MT_TX_RATE_MODE GENMASK(9, 6) +#define MT_TX_RATE_SU_EXT_TONE BIT(5) +#define MT_TX_RATE_DCM BIT(4) +/* VHT/HE only use bits 0-3 */ +#define MT_TX_RATE_IDX GENMASK(5, 0) + +#define MT_TXS0_FIXED_RATE BIT(31) +#define MT_TXS0_BW GENMASK(30, 29) +#define MT_TXS0_TID GENMASK(28, 26) +#define MT_TXS0_AMPDU BIT(25) +#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) +#define MT_TXS0_BA_ERROR BIT(22) +#define MT_TXS0_PS_FLAG BIT(21) +#define MT_TXS0_TXOP_TIMEOUT BIT(20) +#define MT_TXS0_BIP_ERROR BIT(19) + +#define MT_TXS0_QUEUE_TIMEOUT BIT(18) +#define MT_TXS0_RTS_TIMEOUT BIT(17) +#define MT_TXS0_ACK_TIMEOUT BIT(16) +#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) + +#define MT_TXS0_TX_STATUS_HOST BIT(15) +#define MT_TXS0_TX_STATUS_MCU BIT(14) +#define MT_TXS0_TX_RATE GENMASK(13, 0) + +#define MT_TXS1_SEQNO GENMASK(31, 20) +#define MT_TXS1_RESP_RATE GENMASK(19, 16) +#define MT_TXS1_RXV_SEQNO GENMASK(15, 8) +#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0) + +#define MT_TXS2_BF_STATUS GENMASK(31, 30) +#define MT_TXS2_LAST_TX_RATE GENMASK(29, 27) +#define MT_TXS2_SHARED_ANTENNA BIT(26) +#define MT_TXS2_WCID GENMASK(25, 16) +#define MT_TXS2_TX_DELAY GENMASK(15, 0) + +#define MT_TXS3_PID GENMASK(31, 24) +#define MT_TXS3_ANT_ID GENMASK(23, 0) + +#define MT_TXS4_TIMESTAMP GENMASK(31, 0) + +#endif /* __MT76_CONNAC2_MAC_H */ --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c @@ -2,6 +2,7 @@ /* Copyright (C) 2020 MediaTek Inc. */ #include "mt76_connac.h" +#include "mt76_connac2_mac.h" int mt76_connac_pm_wake(struct mt76_phy *phy, struct mt76_connac_pm *pm) { @@ -115,3 +116,286 @@ mt76_worker_schedule(&phy->dev->tx_worker); } EXPORT_SYMBOL_GPL(mt76_connac_pm_dequeue_skbs); + +static u16 +mt76_connac2_mac_tx_rate_val(struct mt76_phy *mphy, struct ieee80211_vif *vif, + bool beacon, bool mcast) +{ + u8 mode = 0, band = mphy->chandef.chan->band; + int rateidx = 0, mcast_rate; + + if (!vif) + goto legacy; + + if (is_mt7921(mphy->dev)) { + rateidx = ffs(vif->bss_conf.basic_rates) - 1; + goto legacy; + } + + if (beacon) { + struct cfg80211_bitrate_mask *mask; + + mask = &vif->bss_conf.beacon_tx_rate; + if (hweight16(mask->control[band].he_mcs[0]) == 1) { + rateidx = ffs(mask->control[band].he_mcs[0]) - 1; + mode = MT_PHY_TYPE_HE_SU; + goto out; + } else if (hweight16(mask->control[band].vht_mcs[0]) == 1) { + rateidx = ffs(mask->control[band].vht_mcs[0]) - 1; + mode = MT_PHY_TYPE_VHT; + goto out; + } else if (hweight8(mask->control[band].ht_mcs[0]) == 1) { + rateidx = ffs(mask->control[band].ht_mcs[0]) - 1; + mode = MT_PHY_TYPE_HT; + goto out; + } else if (hweight32(mask->control[band].legacy) == 1) { + rateidx = ffs(mask->control[band].legacy) - 1; + goto legacy; + } + } + + mcast_rate = vif->bss_conf.mcast_rate[band]; + if (mcast && mcast_rate > 0) + rateidx = mcast_rate - 1; + else + rateidx = ffs(vif->bss_conf.basic_rates) - 1; + +legacy: + rateidx = mt76_calculate_default_rate(mphy, rateidx); + mode = rateidx >> 8; + rateidx &= GENMASK(7, 0); + +out: + return FIELD_PREP(MT_TX_RATE_IDX, rateidx) | + FIELD_PREP(MT_TX_RATE_MODE, mode); +} + +static void +mt76_connac2_mac_write_txwi_8023(__le32 *txwi, struct sk_buff *skb, + struct mt76_wcid *wcid) +{ + u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; + u8 fc_type, fc_stype; + u16 ethertype; + bool wmm = false; + u32 val; + + if (wcid->sta) { + struct ieee80211_sta *sta; + + sta = container_of((void *)wcid, struct ieee80211_sta, drv_priv); + wmm = sta->wme; + } + + val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_3) | + FIELD_PREP(MT_TXD1_TID, tid); + + ethertype = get_unaligned_be16(&skb->data[12]); + if (ethertype >= ETH_P_802_3_MIN) + val |= MT_TXD1_ETH_802_3; + + txwi[1] |= cpu_to_le32(val); + + fc_type = IEEE80211_FTYPE_DATA >> 2; + fc_stype = wmm ? IEEE80211_STYPE_QOS_DATA >> 4 : 0; + + val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | + FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype); + + txwi[2] |= cpu_to_le32(val); + + val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | + FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); + + txwi[7] |= cpu_to_le32(val); +} + +static void +mt76_connac2_mac_write_txwi_80211(struct mt76_dev *dev, __le32 *txwi, + struct sk_buff *skb, + struct ieee80211_key_conf *key) +{ + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data; + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + bool multicast = is_multicast_ether_addr(hdr->addr1); + u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; + __le16 fc = hdr->frame_control; + u8 fc_type, fc_stype; + u32 val; + + if (ieee80211_is_action(fc) && + mgmt->u.action.category == WLAN_CATEGORY_BACK && + mgmt->u.action.u.addba_req.action_code == WLAN_ACTION_ADDBA_REQ) { + u16 capab = le16_to_cpu(mgmt->u.action.u.addba_req.capab); + + txwi[5] |= cpu_to_le32(MT_TXD5_ADD_BA); + tid = (capab >> 2) & IEEE80211_QOS_CTL_TID_MASK; + } else if (ieee80211_is_back_req(hdr->frame_control)) { + struct ieee80211_bar *bar = (struct ieee80211_bar *)hdr; + u16 control = le16_to_cpu(bar->control); + + tid = FIELD_GET(IEEE80211_BAR_CTRL_TID_INFO_MASK, control); + } + + val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_11) | + FIELD_PREP(MT_TXD1_HDR_INFO, + ieee80211_get_hdrlen_from_skb(skb) / 2) | + FIELD_PREP(MT_TXD1_TID, tid); + + txwi[1] |= cpu_to_le32(val); + + fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2; + fc_stype = (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE) >> 4; + + val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | + FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype) | + FIELD_PREP(MT_TXD2_MULTICAST, multicast); + + if (key && multicast && ieee80211_is_robust_mgmt_frame(skb) && + key->cipher == WLAN_CIPHER_SUITE_AES_CMAC) { + val |= MT_TXD2_BIP; + txwi[3] &= ~cpu_to_le32(MT_TXD3_PROTECT_FRAME); + } + + if (!ieee80211_is_data(fc) || multicast || + info->flags & IEEE80211_TX_CTL_USE_MINRATE) + val |= MT_TXD2_FIX_RATE; + + txwi[2] |= cpu_to_le32(val); + + if (ieee80211_is_beacon(fc)) { + txwi[3] &= ~cpu_to_le32(MT_TXD3_SW_POWER_MGMT); + txwi[3] |= cpu_to_le32(MT_TXD3_REM_TX_COUNT); + if (!is_mt7921(dev)) + txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, + 0x18)); + } + + if (info->flags & IEEE80211_TX_CTL_INJECTED) { + u16 seqno = le16_to_cpu(hdr->seq_ctrl); + + if (ieee80211_is_back_req(hdr->frame_control)) { + struct ieee80211_bar *bar; + + bar = (struct ieee80211_bar *)skb->data; + seqno = le16_to_cpu(bar->start_seq_num); + } + + val = MT_TXD3_SN_VALID | + FIELD_PREP(MT_TXD3_SEQ, IEEE80211_SEQ_TO_SN(seqno)); + txwi[3] |= cpu_to_le32(val); + txwi[7] &= ~cpu_to_le32(MT_TXD7_HW_AMSDU); + } + + if (mt76_is_mmio(dev)) { + val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | + FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); + txwi[7] |= cpu_to_le32(val); + } else { + val = FIELD_PREP(MT_TXD8_L_TYPE, fc_type) | + FIELD_PREP(MT_TXD8_L_SUB_TYPE, fc_stype); + txwi[8] |= cpu_to_le32(val); + } +} + +void mt76_connac2_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, + struct sk_buff *skb, struct mt76_wcid *wcid, + struct ieee80211_key_conf *key, int pid, + u32 changed) +{ + struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); + bool ext_phy = info->hw_queue & MT_TX_HW_QUEUE_EXT_PHY; + struct ieee80211_vif *vif = info->control.vif; + struct mt76_phy *mphy = &dev->phy; + u8 p_fmt, q_idx, omac_idx = 0, wmm_idx = 0, band_idx = 0; + u32 val, sz_txd = mt76_is_mmio(dev) ? MT_TXD_SIZE : MT_SDIO_TXD_SIZE; + bool is_8023 = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP; + bool beacon = !!(changed & (BSS_CHANGED_BEACON | + BSS_CHANGED_BEACON_ENABLED)); + bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | + BSS_CHANGED_FILS_DISCOVERY)); + + if (vif) { + struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv; + + omac_idx = mvif->omac_idx; + wmm_idx = mvif->wmm_idx; + band_idx = mvif->band_idx; + } + + if (ext_phy && dev->phy2) + mphy = dev->phy2; + + if (inband_disc) { + p_fmt = MT_TX_TYPE_FW; + q_idx = MT_LMAC_ALTX0; + } else if (beacon) { + p_fmt = MT_TX_TYPE_FW; + q_idx = MT_LMAC_BCN0; + } else if (skb_get_queue_mapping(skb) >= MT_TXQ_PSD) { + p_fmt = mt76_is_mmio(dev) ? MT_TX_TYPE_CT : MT_TX_TYPE_SF; + q_idx = MT_LMAC_ALTX0; + } else { + p_fmt = mt76_is_mmio(dev) ? MT_TX_TYPE_CT : MT_TX_TYPE_SF; + q_idx = wmm_idx * MT76_CONNAC_MAX_WMM_SETS + + mt76_connac_lmac_mapping(skb_get_queue_mapping(skb)); + } + + val = FIELD_PREP(MT_TXD0_TX_BYTES, skb->len + sz_txd) | + FIELD_PREP(MT_TXD0_PKT_FMT, p_fmt) | + FIELD_PREP(MT_TXD0_Q_IDX, q_idx); + txwi[0] = cpu_to_le32(val); + + val = MT_TXD1_LONG_FORMAT | + FIELD_PREP(MT_TXD1_WLAN_IDX, wcid->idx) | + FIELD_PREP(MT_TXD1_OWN_MAC, omac_idx); + if (!is_mt7921(dev)) + val |= MT_TXD1_VTA; + if (ext_phy || band_idx) + val |= MT_TXD1_TGID; + + txwi[1] = cpu_to_le32(val); + txwi[2] = 0; + + val = FIELD_PREP(MT_TXD3_REM_TX_COUNT, 15); + if (!is_mt7921(dev)) + val |= MT_TXD3_SW_POWER_MGMT; + if (key) + val |= MT_TXD3_PROTECT_FRAME; + if (info->flags & IEEE80211_TX_CTL_NO_ACK) + val |= MT_TXD3_NO_ACK; + + txwi[3] = cpu_to_le32(val); + txwi[4] = 0; + + val = FIELD_PREP(MT_TXD5_PID, pid); + if (pid >= MT_PACKET_ID_FIRST) + val |= MT_TXD5_TX_STATUS_HOST; + + txwi[5] = cpu_to_le32(val); + txwi[6] = 0; + txwi[7] = wcid->amsdu ? cpu_to_le32(MT_TXD7_HW_AMSDU) : 0; + + if (is_8023) + mt76_connac2_mac_write_txwi_8023(txwi, skb, wcid); + else + mt76_connac2_mac_write_txwi_80211(dev, txwi, skb, key); + + if (txwi[2] & cpu_to_le32(MT_TXD2_FIX_RATE)) { + /* Fixed rata is available just for 802.11 txd */ + struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; + bool multicast = is_multicast_ether_addr(hdr->addr1); + u16 rate = mt76_connac2_mac_tx_rate_val(mphy, vif, beacon, + multicast); + u32 val = MT_TXD6_FIXED_BW; + + /* hardware won't add HTC for mgmt/ctrl frame */ + txwi[2] |= cpu_to_le32(MT_TXD2_HTC_VLD); + + val |= FIELD_PREP(MT_TXD6_TX_RATE, rate); + txwi[6] |= cpu_to_le32(val); + txwi[3] |= cpu_to_le32(MT_TXD3_BA_DISABLE); + } +} +EXPORT_SYMBOL_GPL(mt76_connac2_mac_write_txwi); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76_connac_mcu.c @@ -258,8 +258,10 @@ ntlv = le16_to_cpu(ntlv_hdr->tlv_num); ntlv_hdr->tlv_num = cpu_to_le16(ntlv + 1); - if (sta_hdr) - le16_add_cpu(&sta_hdr->len, len); + if (sta_hdr) { + len += le16_to_cpu(sta_hdr->len); + sta_hdr->len = cpu_to_le16(len); + } return ptlv; } @@ -1403,6 +1405,8 @@ else conn_type = CONNECTION_INFRA_AP; basic_req.basic.conn_type = cpu_to_le32(conn_type); + /* Fully active/deactivate BSS network in AP mode only */ + basic_req.basic.active = enable; break; case NL80211_IFTYPE_STATION: if (vif->p2p) --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt76x02_usb_mcu.c @@ -108,7 +108,7 @@ ret = mt76u_bulk_msg(dev, skb->data, skb->len, NULL, 500, MT_EP_OUT_INBAND_CMD); if (ret) - return ret; + goto out; if (wait_resp) ret = mt76x02u_mcu_wait_resp(dev, seq); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c @@ -23,9 +23,9 @@ { struct mt7915_dev *dev = data; - if (test_bit(MT76_STATE_RUNNING, &dev->mphy.state)) - return -EBUSY; - + /* The existing connected stations shall reconnect to apply + * new implicit txbf configuration. + */ dev->ibf = !!val; return mt7915_mcu_set_txbf(dev, MT_BF_TYPE_UPDATE); @@ -976,7 +976,7 @@ if (ret) return ret; - *val = le32_to_cpu(regval); + *val = regval; return 0; } @@ -985,8 +985,9 @@ mt7915_rf_regval_set(void *data, u64 val) { struct mt7915_dev *dev = data; + u32 val32 = val; - return mt7915_mcu_rf_regval(dev, dev->mt76.debugfs_reg, (u32 *)&val, true); + return mt7915_mcu_rf_regval(dev, dev->mt76.debugfs_reg, &val32, true); } DEFINE_DEBUGFS_ATTRIBUTE(fops_rf_regval, mt7915_rf_regval_get, --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mac.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/mac.c @@ -1009,266 +1009,18 @@ #endif } -static void -mt7915_mac_write_txwi_8023(struct mt7915_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct mt76_wcid *wcid) -{ - - u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; - u8 fc_type, fc_stype; - u16 ethertype; - bool wmm = false; - u32 val; - - if (wcid->sta) { - struct ieee80211_sta *sta; - - sta = container_of((void *)wcid, struct ieee80211_sta, drv_priv); - wmm = sta->wme; - } - - val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_3) | - FIELD_PREP(MT_TXD1_TID, tid); - - ethertype = get_unaligned_be16(&skb->data[12]); - if (ethertype >= ETH_P_802_3_MIN) - val |= MT_TXD1_ETH_802_3; - - txwi[1] |= cpu_to_le32(val); - - fc_type = IEEE80211_FTYPE_DATA >> 2; - fc_stype = wmm ? IEEE80211_STYPE_QOS_DATA >> 4 : 0; - - val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | - FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype); - - txwi[2] |= cpu_to_le32(val); - - val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | - FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); - txwi[7] |= cpu_to_le32(val); -} - -static void -mt7915_mac_write_txwi_80211(struct mt7915_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct ieee80211_key_conf *key, - bool *mcast) -{ - struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; - struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data; - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; - __le16 fc = hdr->frame_control; - u8 fc_type, fc_stype; - u32 val; - - *mcast = is_multicast_ether_addr(hdr->addr1); - - if (ieee80211_is_action(fc) && - mgmt->u.action.category == WLAN_CATEGORY_BACK && - mgmt->u.action.u.addba_req.action_code == WLAN_ACTION_ADDBA_REQ) { - u16 capab = le16_to_cpu(mgmt->u.action.u.addba_req.capab); - - txwi[5] |= cpu_to_le32(MT_TXD5_ADD_BA); - tid = (capab >> 2) & IEEE80211_QOS_CTL_TID_MASK; - } else if (ieee80211_is_back_req(hdr->frame_control)) { - struct ieee80211_bar *bar = (struct ieee80211_bar *)hdr; - u16 control = le16_to_cpu(bar->control); - - tid = FIELD_GET(IEEE80211_BAR_CTRL_TID_INFO_MASK, control); - } - - val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_11) | - FIELD_PREP(MT_TXD1_HDR_INFO, - ieee80211_get_hdrlen_from_skb(skb) / 2) | - FIELD_PREP(MT_TXD1_TID, tid); - txwi[1] |= cpu_to_le32(val); - - fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2; - fc_stype = (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE) >> 4; - - val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | - FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype) | - FIELD_PREP(MT_TXD2_MULTICAST, *mcast); - - if (key && *mcast && ieee80211_is_robust_mgmt_frame(skb) && - key->cipher == WLAN_CIPHER_SUITE_AES_CMAC) { - val |= MT_TXD2_BIP; - txwi[3] &= ~cpu_to_le32(MT_TXD3_PROTECT_FRAME); - } - - if (!ieee80211_is_data(fc) || *mcast || - info->flags & IEEE80211_TX_CTL_USE_MINRATE) - val |= MT_TXD2_FIX_RATE; - - txwi[2] |= cpu_to_le32(val); - - if (ieee80211_is_beacon(fc)) { - txwi[3] &= ~cpu_to_le32(MT_TXD3_SW_POWER_MGMT); - txwi[3] |= cpu_to_le32(MT_TXD3_REM_TX_COUNT); - txwi[7] |= cpu_to_le32(FIELD_PREP(MT_TXD7_SPE_IDX, 0x18)); - } - - if (info->flags & IEEE80211_TX_CTL_INJECTED) { - u16 seqno = le16_to_cpu(hdr->seq_ctrl); - - if (ieee80211_is_back_req(hdr->frame_control)) { - struct ieee80211_bar *bar; - - bar = (struct ieee80211_bar *)skb->data; - seqno = le16_to_cpu(bar->start_seq_num); - } - - val = MT_TXD3_SN_VALID | - FIELD_PREP(MT_TXD3_SEQ, IEEE80211_SEQ_TO_SN(seqno)); - txwi[3] |= cpu_to_le32(val); - txwi[7] &= ~cpu_to_le32(MT_TXD7_HW_AMSDU); - } - - val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | - FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); - txwi[7] |= cpu_to_le32(val); -} - -static u16 -mt7915_mac_tx_rate_val(struct mt76_phy *mphy, struct ieee80211_vif *vif, - bool beacon, bool mcast) -{ - u8 mode = 0, band = mphy->chandef.chan->band; - int rateidx = 0, mcast_rate; - - if (beacon) { - struct cfg80211_bitrate_mask *mask; - - mask = &vif->bss_conf.beacon_tx_rate; - if (hweight16(mask->control[band].he_mcs[0]) == 1) { - rateidx = ffs(mask->control[band].he_mcs[0]) - 1; - mode = MT_PHY_TYPE_HE_SU; - goto out; - } else if (hweight16(mask->control[band].vht_mcs[0]) == 1) { - rateidx = ffs(mask->control[band].vht_mcs[0]) - 1; - mode = MT_PHY_TYPE_VHT; - goto out; - } else if (hweight8(mask->control[band].ht_mcs[0]) == 1) { - rateidx = ffs(mask->control[band].ht_mcs[0]) - 1; - mode = MT_PHY_TYPE_HT; - goto out; - } else if (hweight32(mask->control[band].legacy) == 1) { - rateidx = ffs(mask->control[band].legacy) - 1; - goto legacy; - } - } - - mcast_rate = vif->bss_conf.mcast_rate[band]; - if (mcast && mcast_rate > 0) - rateidx = mcast_rate - 1; - else - rateidx = ffs(vif->bss_conf.basic_rates) - 1; - -legacy: - rateidx = mt76_calculate_default_rate(mphy, rateidx); - mode = rateidx >> 8; - rateidx &= GENMASK(7, 0); - -out: - return FIELD_PREP(MT_TX_RATE_IDX, rateidx) | - FIELD_PREP(MT_TX_RATE_MODE, mode); -} - -void mt7915_mac_write_txwi(struct mt7915_dev *dev, __le32 *txwi, +void mt7915_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, struct sk_buff *skb, struct mt76_wcid *wcid, int pid, struct ieee80211_key_conf *key, u32 changed) { struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - struct ieee80211_vif *vif = info->control.vif; - struct mt76_phy *mphy = &dev->mphy; - bool ext_phy = info->hw_queue & MT_TX_HW_QUEUE_EXT_PHY; - u8 p_fmt, q_idx, omac_idx = 0, wmm_idx = 0, band_idx = 0; - bool is_8023 = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP; - bool mcast = false; - u16 tx_count = 15; - u32 val; - bool beacon = !!(changed & (BSS_CHANGED_BEACON | - BSS_CHANGED_BEACON_ENABLED)); - bool inband_disc = !!(changed & (BSS_CHANGED_UNSOL_BCAST_PROBE_RESP | - BSS_CHANGED_FILS_DISCOVERY)); + struct mt76_phy *mphy = &dev->phy; - if (vif) { - struct mt7915_vif *mvif = (struct mt7915_vif *)vif->drv_priv; + if ((info->hw_queue & MT_TX_HW_QUEUE_EXT_PHY) && dev->phy2) + mphy = dev->phy2; - omac_idx = mvif->mt76.omac_idx; - wmm_idx = mvif->mt76.wmm_idx; - band_idx = mvif->mt76.band_idx; - } - - if (ext_phy && dev->mt76.phy2) - mphy = dev->mt76.phy2; - - if (inband_disc) { - p_fmt = MT_TX_TYPE_FW; - q_idx = MT_LMAC_ALTX0; - } else if (beacon) { - p_fmt = MT_TX_TYPE_FW; - q_idx = MT_LMAC_BCN0; - } else if (skb_get_queue_mapping(skb) >= MT_TXQ_PSD) { - p_fmt = MT_TX_TYPE_CT; - q_idx = MT_LMAC_ALTX0; - } else { - p_fmt = MT_TX_TYPE_CT; - q_idx = wmm_idx * MT7915_MAX_WMM_SETS + - mt76_connac_lmac_mapping(skb_get_queue_mapping(skb)); - } - - val = FIELD_PREP(MT_TXD0_TX_BYTES, skb->len + MT_TXD_SIZE) | - FIELD_PREP(MT_TXD0_PKT_FMT, p_fmt) | - FIELD_PREP(MT_TXD0_Q_IDX, q_idx); - txwi[0] = cpu_to_le32(val); - - val = MT_TXD1_LONG_FORMAT | MT_TXD1_VTA | - FIELD_PREP(MT_TXD1_WLAN_IDX, wcid->idx) | - FIELD_PREP(MT_TXD1_OWN_MAC, omac_idx); - - if (ext_phy || band_idx) - val |= MT_TXD1_TGID; - - txwi[1] = cpu_to_le32(val); - - txwi[2] = 0; - - val = MT_TXD3_SW_POWER_MGMT | - FIELD_PREP(MT_TXD3_REM_TX_COUNT, tx_count); - if (key) - val |= MT_TXD3_PROTECT_FRAME; - if (info->flags & IEEE80211_TX_CTL_NO_ACK) - val |= MT_TXD3_NO_ACK; - - txwi[3] = cpu_to_le32(val); - txwi[4] = 0; - - val = FIELD_PREP(MT_TXD5_PID, pid); - if (pid >= MT_PACKET_ID_FIRST) - val |= MT_TXD5_TX_STATUS_HOST; - txwi[5] = cpu_to_le32(val); + mt76_connac2_mac_write_txwi(dev, txwi, skb, wcid, key, pid, changed); - txwi[6] = 0; - txwi[7] = wcid->amsdu ? cpu_to_le32(MT_TXD7_HW_AMSDU) : 0; - - if (is_8023) - mt7915_mac_write_txwi_8023(dev, txwi, skb, wcid); - else - mt7915_mac_write_txwi_80211(dev, txwi, skb, key, &mcast); - - if (txwi[2] & cpu_to_le32(MT_TXD2_FIX_RATE)) { - u16 rate = mt7915_mac_tx_rate_val(mphy, vif, beacon, mcast); - - /* hardware won't add HTC for mgmt/ctrl frame */ - txwi[2] |= cpu_to_le32(MT_TXD2_HTC_VLD); - - val = MT_TXD6_FIXED_BW | - FIELD_PREP(MT_TXD6_TX_RATE, rate); - txwi[6] |= cpu_to_le32(val); - txwi[3] |= cpu_to_le32(MT_TXD3_BA_DISABLE); - } if (mt76_testmode_enabled(mphy)) mt7915_mac_write_txwi_tm(mphy->priv, txwi, skb); @@ -1315,7 +1067,7 @@ return id; pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb); - mt7915_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, pid, key, 0); + mt7915_mac_write_txwi(mdev, txwi_ptr, tx_info->skb, wcid, pid, key, 0); txp = (struct mt7915_txp *)(txwi + MT_TXD_SIZE); for (i = 0; i < nbuf; i++) { @@ -1895,7 +1647,7 @@ FIELD_PREP(MT_TIMEOUT_VAL_CCA, 48); u32 ofdm = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, 60) | FIELD_PREP(MT_TIMEOUT_VAL_CCA, 28); - int offset; + int eifs_ofdm = 360, sifs = 10, offset; bool a_band = !(phy->mt76->chandef.chan->band == NL80211_BAND_2GHZ); if (!test_bit(MT76_STATE_RUNNING, &phy->mt76->state)) @@ -1913,17 +1665,26 @@ reg_offset = FIELD_PREP(MT_TIMEOUT_VAL_PLCP, offset) | FIELD_PREP(MT_TIMEOUT_VAL_CCA, offset); + if (!is_mt7915(&dev->mt76)) { + if (!a_band) { + mt76_wr(dev, MT_TMAC_ICR1(phy->band_idx), + FIELD_PREP(MT_IFS_EIFS_CCK, 314)); + eifs_ofdm = 78; + } else { + eifs_ofdm = 84; + } + } else if (a_band) { + sifs = 16; + } + mt76_wr(dev, MT_TMAC_CDTR(phy->band_idx), cck + reg_offset); mt76_wr(dev, MT_TMAC_ODTR(phy->band_idx), ofdm + reg_offset); mt76_wr(dev, MT_TMAC_ICR0(phy->band_idx), - FIELD_PREP(MT_IFS_EIFS_OFDM, a_band ? 84 : 78) | + FIELD_PREP(MT_IFS_EIFS_OFDM, eifs_ofdm) | FIELD_PREP(MT_IFS_RIFS, 2) | - FIELD_PREP(MT_IFS_SIFS, 10) | + FIELD_PREP(MT_IFS_SIFS, sifs) | FIELD_PREP(MT_IFS_SLOT, phy->slottime)); - mt76_wr(dev, MT_TMAC_ICR1(phy->band_idx), - FIELD_PREP(MT_IFS_EIFS_CCK, 314)); - if (phy->slottime < 20 || a_band) val = MT7915_CFEND_RATE_DEFAULT; else @@ -2309,7 +2070,7 @@ aggr0 = phy->band_idx ? ARRAY_SIZE(dev->mt76.aggr_stats) / 2 : 0; if (is_mt7915(&dev->mt76)) { - for (i = 0, aggr1 = aggr0 + 4; i < 4; i++) { + for (i = 0, aggr1 = aggr0 + 8; i < 4; i++) { val = mt76_rr(dev, MT_MIB_MB_SDR1(phy->band_idx, (i << 4))); mib->ba_miss_cnt += FIELD_GET(MT_MIB_BA_MISS_COUNT_MASK, val); mib->ack_fail_cnt += @@ -2784,8 +2545,9 @@ } flowid = ffs(~msta->twt.flowid_mask) - 1; - le16p_replace_bits(&twt_agrt->req_type, flowid, - IEEE80211_TWT_REQTYPE_FLOWID); + twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_FLOWID); + twt_agrt->req_type |= le16_encode_bits(flowid, + IEEE80211_TWT_REQTYPE_FLOWID); table_id = ffs(~dev->twt.table_mask) - 1; exp = FIELD_GET(IEEE80211_TWT_REQTYPE_WAKE_INT_EXP, req_type); @@ -2835,8 +2597,9 @@ unlock: mutex_unlock(&dev->mt76.mutex); out: - le16p_replace_bits(&twt_agrt->req_type, setup_cmd, - IEEE80211_TWT_REQTYPE_SETUP_CMD); + twt_agrt->req_type &= ~cpu_to_le16(IEEE80211_TWT_REQTYPE_SETUP_CMD); + twt_agrt->req_type |= + le16_encode_bits(setup_cmd, IEEE80211_TWT_REQTYPE_SETUP_CMD); twt->control = (twt->control & IEEE80211_TWT_CONTROL_WAKE_DUR_UNIT) | (twt->control & IEEE80211_TWT_CONTROL_RX_DISABLED); } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mac.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/mac.h @@ -4,6 +4,8 @@ #ifndef __MT7915_MAC_H #define __MT7915_MAC_H +#include "../mt76_connac2_mac.h" + #define MT_CT_PARSE_LEN 72 #define MT_CT_DMA_BUF_NUM 2 @@ -166,20 +168,6 @@ #define MT_CRXV_FOE_HI GENMASK(6, 0) #define MT_CRXV_FOE_SHIFT 13 -enum tx_header_format { - MT_HDR_FORMAT_802_3, - MT_HDR_FORMAT_CMD, - MT_HDR_FORMAT_802_11, - MT_HDR_FORMAT_802_11_EXT, -}; - -enum tx_pkt_type { - MT_TX_TYPE_CT, - MT_TX_TYPE_SF, - MT_TX_TYPE_CMD, - MT_TX_TYPE_FW, -}; - enum tx_port_idx { MT_TX_PORT_IDX_LMAC, MT_TX_PORT_IDX_MCU @@ -200,97 +188,6 @@ #define MT_CT_INFO_HSR2_TX BIT(4) #define MT_CT_INFO_FROM_HOST BIT(7) -#define MT_TXD_SIZE (8 * 4) - -#define MT_TXD0_Q_IDX GENMASK(31, 25) -#define MT_TXD0_PKT_FMT GENMASK(24, 23) -#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) -#define MT_TXD0_TX_BYTES GENMASK(15, 0) - -#define MT_TXD1_LONG_FORMAT BIT(31) -#define MT_TXD1_TGID BIT(30) -#define MT_TXD1_OWN_MAC GENMASK(29, 24) -#define MT_TXD1_AMSDU BIT(23) -#define MT_TXD1_TID GENMASK(22, 20) -#define MT_TXD1_HDR_PAD GENMASK(19, 18) -#define MT_TXD1_HDR_FORMAT GENMASK(17, 16) -#define MT_TXD1_HDR_INFO GENMASK(15, 11) -#define MT_TXD1_ETH_802_3 BIT(15) -#define MT_TXD1_VTA BIT(10) -#define MT_TXD1_WLAN_IDX GENMASK(9, 0) - -#define MT_TXD2_FIX_RATE BIT(31) -#define MT_TXD2_FIXED_RATE BIT(30) -#define MT_TXD2_POWER_OFFSET GENMASK(29, 24) -#define MT_TXD2_MAX_TX_TIME GENMASK(23, 16) -#define MT_TXD2_FRAG GENMASK(15, 14) -#define MT_TXD2_HTC_VLD BIT(13) -#define MT_TXD2_DURATION BIT(12) -#define MT_TXD2_BIP BIT(11) -#define MT_TXD2_MULTICAST BIT(10) -#define MT_TXD2_RTS BIT(9) -#define MT_TXD2_SOUNDING BIT(8) -#define MT_TXD2_NDPA BIT(7) -#define MT_TXD2_NDP BIT(6) -#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) -#define MT_TXD2_SUB_TYPE GENMASK(3, 0) - -#define MT_TXD3_SN_VALID BIT(31) -#define MT_TXD3_PN_VALID BIT(30) -#define MT_TXD3_SW_POWER_MGMT BIT(29) -#define MT_TXD3_BA_DISABLE BIT(28) -#define MT_TXD3_SEQ GENMASK(27, 16) -#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) -#define MT_TXD3_TX_COUNT GENMASK(10, 6) -#define MT_TXD3_TIMING_MEASURE BIT(5) -#define MT_TXD3_DAS BIT(4) -#define MT_TXD3_EEOSP BIT(3) -#define MT_TXD3_EMRD BIT(2) -#define MT_TXD3_PROTECT_FRAME BIT(1) -#define MT_TXD3_NO_ACK BIT(0) - -#define MT_TXD4_PN_LOW GENMASK(31, 0) - -#define MT_TXD5_PN_HIGH GENMASK(31, 16) -#define MT_TXD5_MD BIT(15) -#define MT_TXD5_ADD_BA BIT(14) -#define MT_TXD5_TX_STATUS_HOST BIT(10) -#define MT_TXD5_TX_STATUS_MCU BIT(9) -#define MT_TXD5_TX_STATUS_FMT BIT(8) -#define MT_TXD5_PID GENMASK(7, 0) - -#define MT_TXD6_TX_IBF BIT(31) -#define MT_TXD6_TX_EBF BIT(30) -#define MT_TXD6_TX_RATE GENMASK(29, 16) -#define MT_TXD6_SGI GENMASK(15, 14) -#define MT_TXD6_HELTF GENMASK(13, 12) -#define MT_TXD6_LDPC BIT(11) -#define MT_TXD6_SPE_ID_IDX BIT(10) -#define MT_TXD6_ANT_ID GENMASK(7, 4) -#define MT_TXD6_DYN_BW BIT(3) -#define MT_TXD6_FIXED_BW BIT(2) -#define MT_TXD6_BW GENMASK(1, 0) - -#define MT_TXD7_TXD_LEN GENMASK(31, 30) -#define MT_TXD7_UDP_TCP_SUM BIT(29) -#define MT_TXD7_IP_SUM BIT(28) - -#define MT_TXD7_TYPE GENMASK(21, 20) -#define MT_TXD7_SUB_TYPE GENMASK(19, 16) - -#define MT_TXD7_PSE_FID GENMASK(27, 16) -#define MT_TXD7_SPE_IDX GENMASK(15, 11) -#define MT_TXD7_HW_AMSDU BIT(10) -#define MT_TXD7_TX_TIME GENMASK(9, 0) - -#define MT_TX_RATE_STBC BIT(13) -#define MT_TX_RATE_NSS GENMASK(12, 10) -#define MT_TX_RATE_MODE GENMASK(9, 6) -#define MT_TX_RATE_SU_EXT_TONE BIT(5) -#define MT_TX_RATE_DCM BIT(4) -/* VHT/HE only use bits 0-3 */ -#define MT_TX_RATE_IDX GENMASK(5, 0) - #define MT_TXP_MAX_BUF_NUM 6 struct mt7915_txp { @@ -324,41 +221,6 @@ /* will support this field in further revision */ #define MT_TX_FREE_RATE GENMASK(13, 0) -#define MT_TXS0_FIXED_RATE BIT(31) -#define MT_TXS0_BW GENMASK(30, 29) -#define MT_TXS0_TID GENMASK(28, 26) -#define MT_TXS0_AMPDU BIT(25) -#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) -#define MT_TXS0_BA_ERROR BIT(22) -#define MT_TXS0_PS_FLAG BIT(21) -#define MT_TXS0_TXOP_TIMEOUT BIT(20) -#define MT_TXS0_BIP_ERROR BIT(19) - -#define MT_TXS0_QUEUE_TIMEOUT BIT(18) -#define MT_TXS0_RTS_TIMEOUT BIT(17) -#define MT_TXS0_ACK_TIMEOUT BIT(16) -#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) - -#define MT_TXS0_TX_STATUS_HOST BIT(15) -#define MT_TXS0_TX_STATUS_MCU BIT(14) -#define MT_TXS0_TX_RATE GENMASK(13, 0) - -#define MT_TXS1_SEQNO GENMASK(31, 20) -#define MT_TXS1_RESP_RATE GENMASK(19, 16) -#define MT_TXS1_RXV_SEQNO GENMASK(15, 8) -#define MT_TXS1_TX_POWER_DBM GENMASK(7, 0) - -#define MT_TXS2_BF_STATUS GENMASK(31, 30) -#define MT_TXS2_LAST_TX_RATE GENMASK(29, 27) -#define MT_TXS2_SHARED_ANTENNA BIT(26) -#define MT_TXS2_WCID GENMASK(25, 16) -#define MT_TXS2_TX_DELAY GENMASK(15, 0) - -#define MT_TXS3_PID GENMASK(31, 24) -#define MT_TXS3_ANT_ID GENMASK(23, 0) - -#define MT_TXS4_TIMESTAMP GENMASK(31, 0) - #define MT_TXS5_F0_FINAL_MPDU BIT(31) #define MT_TXS5_F0_QOS BIT(30) #define MT_TXS5_F0_TX_COUNT GENMASK(29, 25) --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/mcu.c @@ -322,7 +322,7 @@ static void mt7915_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) { - if (vif->csa_active) + if (vif->bss_conf.csa_active) ieee80211_csa_finish(vif); } @@ -409,7 +409,7 @@ static void mt7915_mcu_cca_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) { - if (!vif->color_change_active) + if (!vif->bss_conf.color_change_active) return; ieee80211_color_change_finish(vif); @@ -1460,7 +1460,7 @@ struct sta_phy phy = {}; int ret, nrates = 0; -#define __sta_phy_bitrate_mask_check(_mcs, _gi, _he) \ +#define __sta_phy_bitrate_mask_check(_mcs, _gi, _ht, _he) \ do { \ u8 i, gi = mask->control[band]._gi; \ gi = (_he) ? gi : gi == NL80211_TXRATE_FORCE_SGI; \ @@ -1473,15 +1473,17 @@ continue; \ nrates += hweight16(mask->control[band]._mcs[i]); \ phy.mcs = ffs(mask->control[band]._mcs[i]) - 1; \ + if (_ht) \ + phy.mcs += 8 * i; \ } \ } while (0) if (sta->deflink.he_cap.has_he) { - __sta_phy_bitrate_mask_check(he_mcs, he_gi, 1); + __sta_phy_bitrate_mask_check(he_mcs, he_gi, 0, 1); } else if (sta->deflink.vht_cap.vht_supported) { - __sta_phy_bitrate_mask_check(vht_mcs, gi, 0); + __sta_phy_bitrate_mask_check(vht_mcs, gi, 0, 0); } else if (sta->deflink.ht_cap.ht_supported) { - __sta_phy_bitrate_mask_check(ht_mcs, gi, 0); + __sta_phy_bitrate_mask_check(ht_mcs, gi, 1, 0); } else { nrates = hweight32(mask->control[band].legacy); phy.mcs = ffs(mask->control[band].legacy) - 1; @@ -1818,7 +1820,7 @@ if (!offs->cntdwn_counter_offs[0]) return; - sub_tag = vif->csa_active ? BSS_INFO_BCN_CSA : BSS_INFO_BCN_BCC; + sub_tag = vif->bss_conf.csa_active ? BSS_INFO_BCN_CSA : BSS_INFO_BCN_BCC; tlv = mt7915_mcu_add_nested_subtlv(rskb, sub_tag, sizeof(*info), &bcn->sub_ntlv, &bcn->len); info = (struct bss_info_bcn_cntdwn *)tlv; @@ -1903,14 +1905,14 @@ if (offs->cntdwn_counter_offs[0]) { u16 offset = offs->cntdwn_counter_offs[0]; - if (vif->csa_active) + if (vif->bss_conf.csa_active) cont->csa_ofs = cpu_to_le16(offset - 4); - if (vif->color_change_active) + if (vif->bss_conf.color_change_active) cont->bcc_ofs = cpu_to_le16(offset - 3); } buf = (u8 *)tlv + sizeof(*cont); - mt7915_mac_write_txwi(dev, (__le32 *)buf, skb, wcid, 0, NULL, + mt7915_mac_write_txwi(&dev->mt76, (__le32 *)buf, skb, wcid, 0, NULL, BSS_CHANGED_BEACON); memcpy(buf + MT_TXD_SIZE, skb->data, skb->len); } @@ -2049,7 +2051,7 @@ buf = (u8 *)tlv + sizeof(*discov); - mt7915_mac_write_txwi(dev, (__le32 *)buf, skb, wcid, 0, NULL, + mt7915_mac_write_txwi(&dev->mt76, (__le32 *)buf, skb, wcid, 0, NULL, changed); memcpy(buf + MT_TXD_SIZE, skb->data, skb->len); @@ -2685,7 +2687,7 @@ struct edca *e = &req.edca[ac]; e->set = WMM_PARAM_SET; - e->queue = ac + mvif->mt76.wmm_idx * MT7915_MAX_WMM_SETS; + e->queue = ac + mvif->mt76.wmm_idx * MT76_CONNAC_MAX_WMM_SETS; e->aifs = q->aifs; e->txop = cpu_to_le16(q->txop); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h @@ -10,7 +10,6 @@ #include "regs.h" #define MT7915_MAX_INTERFACES 19 -#define MT7915_MAX_WMM_SETS 4 #define MT7915_WTBL_SIZE 288 #define MT7916_WTBL_SIZE 544 #define MT7915_WTBL_RESERVED (mt7915_wtbl_size(dev) - 1) @@ -342,20 +341,6 @@ }; enum { - MT_CTX0, - MT_HIF0 = 0x0, - - MT_LMAC_AC00 = 0x0, - MT_LMAC_AC01, - MT_LMAC_AC02, - MT_LMAC_AC03, - MT_LMAC_ALTX0 = 0x10, - MT_LMAC_BMC0, - MT_LMAC_BCN0, - MT_LMAC_PSMP0, -}; - -enum { MT_RX_SEL0, MT_RX_SEL1, MT_RX_SEL2, /* monitor chain */ @@ -557,7 +542,7 @@ void mt7915_mac_reset_counters(struct mt7915_phy *phy); void mt7915_mac_cca_stats_reset(struct mt7915_phy *phy); void mt7915_mac_enable_nf(struct mt7915_dev *dev, bool ext_phy); -void mt7915_mac_write_txwi(struct mt7915_dev *dev, __le32 *txwi, +void mt7915_mac_write_txwi(struct mt76_dev *dev, __le32 *txwi, struct sk_buff *skb, struct mt76_wcid *wcid, int pid, struct ieee80211_key_conf *key, u32 changed); void mt7915_mac_set_timing(struct mt7915_phy *phy); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/pci.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/pci.c @@ -65,10 +65,17 @@ static struct mt7915_hif *mt7915_pci_init_hif2(struct pci_dev *pdev) { + struct pci_dev *tmp_pdev; + hif_idx++; - if (!pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x7916, NULL) && - !pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x790a, NULL)) - return NULL; + + tmp_pdev = pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x7916, NULL); + if (!tmp_pdev) { + tmp_pdev = pci_get_device(PCI_VENDOR_ID_MEDIATEK, 0x790a, NULL); + if (!tmp_pdev) + return NULL; + } + pci_dev_put(tmp_pdev); writel(hif_idx | MT_PCIE_RECOG_ID_SEM, pcim_iomap_table(pdev)[0] + MT_PCIE_RECOG_ID); --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7915/testmode.c @@ -168,13 +168,14 @@ } static int -mt7915_tm_set_wmm_qid(struct mt7915_dev *dev, u8 qid, u8 aifs, u8 cw_min, +mt7915_tm_set_wmm_qid(struct mt7915_phy *phy, u8 qid, u8 aifs, u8 cw_min, u16 cw_max, u16 txop) { + struct mt7915_vif *mvif = (struct mt7915_vif *)phy->monitor_vif->drv_priv; struct mt7915_mcu_tx req = { .total = 1 }; struct edca *e = &req.edca[0]; - e->queue = qid; + e->queue = qid + mvif->mt76.wmm_idx * MT76_CONNAC_MAX_WMM_SETS; e->set = WMM_PARAM_SET; e->aifs = aifs; @@ -182,7 +183,7 @@ e->cw_max = cpu_to_le16(cw_max); e->txop = cpu_to_le16(txop); - return mt7915_mcu_update_edca(dev, &req); + return mt7915_mcu_update_edca(phy->dev, &req); } static int @@ -244,7 +245,7 @@ mt7915_tm_set_slot_time(phy, slot_time, sifs); - return mt7915_tm_set_wmm_qid(dev, + return mt7915_tm_set_wmm_qid(phy, mt76_connac_lmac_mapping(IEEE80211_AC_BE), aifsn, cw, cw, 0); } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/Makefile +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/Makefile @@ -9,6 +9,7 @@ mt7921-common-y := mac.o mcu.o main.o init.o debugfs.o trace.o mt7921-common-$(CONFIG_NL80211_TESTMODE) += testmode.o +mt7921-common-$(CONFIG_ACPI) += acpi_sar.o mt7921e-y := pci.o pci_mac.o pci_mcu.o dma.o mt7921s-y := sdio.o sdio_mac.o sdio_mcu.o mt7921u-y := usb.o usb_mac.o --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.c @@ -0,0 +1,285 @@ +// SPDX-License-Identifier: ISC +/* Copyright (C) 2022 MediaTek Inc. */ + +#include +#include "mt7921.h" + +static int +mt7921_acpi_read(struct mt7921_dev *dev, u8 *method, u8 **tbl, u32 *len) +{ + struct acpi_buffer buf = { ACPI_ALLOCATE_BUFFER, NULL }; + union acpi_object *sar_root, *sar_unit; + struct mt76_dev *mdev = &dev->mt76; + acpi_handle root, handle; + acpi_status status; + u32 i = 0; + int ret; + + root = ACPI_HANDLE(mdev->dev); + if (!root) + return -EOPNOTSUPP; + + status = acpi_get_handle(root, method, &handle); + if (ACPI_FAILURE(status)) + return -EIO; + + status = acpi_evaluate_object(handle, NULL, NULL, &buf); + if (ACPI_FAILURE(status)) + return -EIO; + + sar_root = buf.pointer; + if (sar_root->type != ACPI_TYPE_PACKAGE || + sar_root->package.count < 4 || + sar_root->package.elements[0].type != ACPI_TYPE_INTEGER) { + dev_err(mdev->dev, "sar cnt = %d\n", + sar_root->package.count); + ret = -EINVAL; + goto free; + } + + if (!*tbl) { + *tbl = devm_kzalloc(mdev->dev, sar_root->package.count, + GFP_KERNEL); + if (!*tbl) { + ret = -ENOMEM; + goto free; + } + } + if (len) + *len = sar_root->package.count; + + for (i = 0; i < sar_root->package.count; i++) { + sar_unit = &sar_root->package.elements[i]; + + if (sar_unit->type != ACPI_TYPE_INTEGER) + break; + *(*tbl + i) = (u8)sar_unit->integer.value; + } + ret = (i == sar_root->package.count) ? 0 : -EINVAL; + +free: + kfree(sar_root); + + return ret; +} + +/* MTCL : Country List Table for 6G band */ +static int +mt7921_asar_acpi_read_mtcl(struct mt7921_dev *dev, u8 **table, u8 *version) +{ + *version = (mt7921_acpi_read(dev, MT7921_ACPI_MTCL, table, NULL) < 0) + ? 1 : 2; + return 0; +} + +/* MTDS : Dynamic SAR Power Table */ +static int +mt7921_asar_acpi_read_mtds(struct mt7921_dev *dev, u8 **table, u8 version) +{ + int len, ret, sarlen, prelen, tblcnt; + bool enable; + + ret = mt7921_acpi_read(dev, MT7921_ACPI_MTDS, table, &len); + if (ret) + return ret; + + /* Table content validation */ + switch (version) { + case 1: + enable = ((struct mt7921_asar_dyn *)*table)->enable; + sarlen = sizeof(struct mt7921_asar_dyn_limit); + prelen = sizeof(struct mt7921_asar_dyn); + break; + case 2: + enable = ((struct mt7921_asar_dyn_v2 *)*table)->enable; + sarlen = sizeof(struct mt7921_asar_dyn_limit_v2); + prelen = sizeof(struct mt7921_asar_dyn_v2); + break; + default: + return -EINVAL; + } + + tblcnt = (len - prelen) / sarlen; + if (!enable || + tblcnt > MT7921_ASAR_MAX_DYN || tblcnt < MT7921_ASAR_MIN_DYN) + ret = -EINVAL; + + return ret; +} + +/* MTGS : Geo SAR Power Table */ +static int +mt7921_asar_acpi_read_mtgs(struct mt7921_dev *dev, u8 **table, u8 version) +{ + int len, ret = 0, sarlen, prelen, tblcnt; + + ret = mt7921_acpi_read(dev, MT7921_ACPI_MTGS, table, &len); + if (ret) + return ret; + + /* Table content validation */ + switch (version) { + case 1: + sarlen = sizeof(struct mt7921_asar_geo_limit); + prelen = sizeof(struct mt7921_asar_geo); + break; + case 2: + sarlen = sizeof(struct mt7921_asar_geo_limit_v2); + prelen = sizeof(struct mt7921_asar_geo_v2); + break; + default: + return -EINVAL; + } + + tblcnt = (len - prelen) / sarlen; + if (tblcnt > MT7921_ASAR_MAX_GEO || tblcnt < MT7921_ASAR_MIN_GEO) + ret = -EINVAL; + + return ret; +} + +int mt7921_init_acpi_sar(struct mt7921_dev *dev) +{ + struct mt7921_acpi_sar *asar; + int ret; + + asar = devm_kzalloc(dev->mt76.dev, sizeof(*asar), GFP_KERNEL); + if (!asar) + return -ENOMEM; + + mt7921_asar_acpi_read_mtcl(dev, (u8 **)&asar->countrylist, &asar->ver); + + /* MTDS is mandatory. Return error if table is invalid */ + ret = mt7921_asar_acpi_read_mtds(dev, (u8 **)&asar->dyn, asar->ver); + if (ret) { + devm_kfree(dev->mt76.dev, asar->dyn); + devm_kfree(dev->mt76.dev, asar->countrylist); + devm_kfree(dev->mt76.dev, asar); + return ret; + } + + /* MTGS is optional */ + ret = mt7921_asar_acpi_read_mtgs(dev, (u8 **)&asar->geo, asar->ver); + if (ret) { + devm_kfree(dev->mt76.dev, asar->geo); + asar->geo = NULL; + } + + dev->phy.acpisar = asar; + + return 0; +} + +static s8 +mt7921_asar_get_geo_pwr(struct mt7921_phy *phy, + enum nl80211_band band, s8 dyn_power) +{ + struct mt7921_acpi_sar *asar = phy->acpisar; + struct mt7921_asar_geo_band *band_pwr; + s8 geo_power; + u8 idx, max; + + if (!asar->geo) + return dyn_power; + + switch (phy->mt76->dev->region) { + case NL80211_DFS_FCC: + idx = 0; + break; + case NL80211_DFS_ETSI: + idx = 1; + break; + default: /* WW */ + idx = 2; + break; + } + + if (asar->ver == 1) { + band_pwr = &asar->geo->tbl[idx].band[0]; + max = ARRAY_SIZE(asar->geo->tbl[idx].band); + } else { + band_pwr = &asar->geo_v2->tbl[idx].band[0]; + max = ARRAY_SIZE(asar->geo_v2->tbl[idx].band); + } + + switch (band) { + case NL80211_BAND_2GHZ: + idx = 0; + break; + case NL80211_BAND_5GHZ: + idx = 1; + break; + case NL80211_BAND_6GHZ: + idx = 2; + break; + default: + return dyn_power; + } + + if (idx >= max) + return dyn_power; + + geo_power = (band_pwr + idx)->pwr; + dyn_power += (band_pwr + idx)->offset; + + return min(geo_power, dyn_power); +} + +static s8 +mt7921_asar_range_pwr(struct mt7921_phy *phy, + const struct cfg80211_sar_freq_ranges *range, + u8 idx) +{ + const struct cfg80211_sar_capa *capa = phy->mt76->hw->wiphy->sar_capa; + struct mt7921_acpi_sar *asar = phy->acpisar; + u8 *limit, band, max; + + if (!capa) + return 127; + + if (asar->ver == 1) { + limit = &asar->dyn->tbl[0].frp[0]; + max = ARRAY_SIZE(asar->dyn->tbl[0].frp); + } else { + limit = &asar->dyn_v2->tbl[0].frp[0]; + max = ARRAY_SIZE(asar->dyn_v2->tbl[0].frp); + } + + if (idx >= max) + return 127; + + if (range->start_freq >= 5945) + band = NL80211_BAND_6GHZ; + else if (range->start_freq >= 5150) + band = NL80211_BAND_5GHZ; + else + band = NL80211_BAND_2GHZ; + + return mt7921_asar_get_geo_pwr(phy, band, limit[idx]); +} + +int mt7921_init_acpi_sar_power(struct mt7921_phy *phy, bool set_default) +{ + const struct cfg80211_sar_capa *capa = phy->mt76->hw->wiphy->sar_capa; + int i; + + if (!phy->acpisar) + return 0; + + /* When ACPI SAR enabled in HW, we should apply rules for .frp + * 1. w/o .sar_specs : set ACPI SAR power as the defatul value + * 2. w/ .sar_specs : set power with min(.sar_specs, ACPI_SAR) + */ + for (i = 0; i < capa->num_freq_ranges; i++) { + struct mt76_freq_range_power *frp = &phy->mt76->frp[i]; + + frp->range = set_default ? &capa->freq_ranges[i] : frp->range; + if (!frp->range) + continue; + + frp->power = min_t(s8, set_default ? 127 : frp->power, + mt7921_asar_range_pwr(phy, frp->range, i)); + } + + return 0; +} --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/acpi_sar.h @@ -0,0 +1,93 @@ +/* SPDX-License-Identifier: ISC */ +/* Copyright (C) 2022 MediaTek Inc. */ + +#ifndef __MT7921_ACPI_SAR_H +#define __MT7921_ACPI_SAR_H + +#define MT7921_ASAR_MIN_DYN 1 +#define MT7921_ASAR_MAX_DYN 8 +#define MT7921_ASAR_MIN_GEO 3 +#define MT7921_ASAR_MAX_GEO 8 + +#define MT7921_ACPI_MTCL "MTCL" +#define MT7921_ACPI_MTDS "MTDS" +#define MT7921_ACPI_MTGS "MTGS" + +struct mt7921_asar_dyn_limit { + u8 idx; + u8 frp[5]; +} __packed; + +struct mt7921_asar_dyn { + u8 names[4]; + u8 enable; + u8 nr_tbl; + struct mt7921_asar_dyn_limit tbl[0]; +} __packed; + +struct mt7921_asar_dyn_limit_v2 { + u8 idx; + u8 frp[11]; +} __packed; + +struct mt7921_asar_dyn_v2 { + u8 names[4]; + u8 enable; + u8 rsvd; + u8 nr_tbl; + struct mt7921_asar_dyn_limit_v2 tbl[0]; +} __packed; + +struct mt7921_asar_geo_band { + u8 pwr; + u8 offset; +} __packed; + +struct mt7921_asar_geo_limit { + u8 idx; + /* 0:2G, 1:5G */ + struct mt7921_asar_geo_band band[2]; +} __packed; + +struct mt7921_asar_geo { + u8 names[4]; + u8 version; + u8 nr_tbl; + struct mt7921_asar_geo_limit tbl[0]; +} __packed; + +struct mt7921_asar_geo_limit_v2 { + u8 idx; + /* 0:2G, 1:5G, 2:6G */ + struct mt7921_asar_geo_band band[3]; +} __packed; + +struct mt7921_asar_geo_v2 { + u8 names[4]; + u8 version; + u8 rsvd; + u8 nr_tbl; + struct mt7921_asar_geo_limit_v2 tbl[0]; +} __packed; + +struct mt7921_asar_cl { + u8 names[4]; + u8 version; + u8 mode_6g; + u8 cl6g[6]; +} __packed; + +struct mt7921_acpi_sar { + u8 ver; + union { + struct mt7921_asar_dyn *dyn; + struct mt7921_asar_dyn_v2 *dyn_v2; + }; + union { + struct mt7921_asar_geo *geo; + struct mt7921_asar_geo_v2 *geo_v2; + }; + struct mt7921_asar_cl *countrylist; +}; + +#endif --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/init.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/init.c @@ -34,14 +34,13 @@ { struct ieee80211_hw *hw = wiphy_to_ieee80211_hw(wiphy); struct mt7921_dev *dev = mt7921_hw_dev(hw); - struct mt7921_phy *phy = mt7921_hw_phy(hw); memcpy(dev->mt76.alpha2, request->alpha2, sizeof(dev->mt76.alpha2)); dev->mt76.region = request->dfs_region; mt7921_mutex_acquire(dev); mt76_connac_mcu_set_channel_domain(hw->priv); - mt76_connac_mcu_set_rate_txpower(phy->mt76); + mt7921_set_tx_sar_pwr(hw, NULL); mt7921_mutex_release(dev); } @@ -53,8 +52,8 @@ struct wiphy *wiphy = hw->wiphy; hw->queues = 4; - hw->max_rx_aggregation_subframes = 64; - hw->max_tx_aggregation_subframes = 128; + hw->max_rx_aggregation_subframes = IEEE80211_MAX_AMPDU_BUF_HE; + hw->max_tx_aggregation_subframes = IEEE80211_MAX_AMPDU_BUF_HE; hw->netdev_features = NETIF_F_RXCSUM; hw->radiotap_timestamp.units_pos = @@ -289,6 +288,8 @@ if (!mt76_is_mmio(&dev->mt76)) hw->extra_tx_headroom += MT_SDIO_TXD_SIZE + MT_SDIO_HDR_SIZE; + mt7921_init_acpi_sar(dev); + ret = mt7921_init_wcid(dev); if (ret) return ret; @@ -304,7 +305,7 @@ IEEE80211_HT_CAP_LDPC_CODING | IEEE80211_HT_CAP_MAX_AMSDU; dev->mphy.sband_5g.sband.vht_cap.cap |= - IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 | + IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_11454 | IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK | IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE | IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE | --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/mac.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/mac.c @@ -808,217 +808,6 @@ return 0; } -static void -mt7921_mac_write_txwi_8023(struct mt7921_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct mt76_wcid *wcid) -{ - u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; - u8 fc_type, fc_stype; - u16 ethertype; - bool wmm = false; - u32 val; - - if (wcid->sta) { - struct ieee80211_sta *sta; - - sta = container_of((void *)wcid, struct ieee80211_sta, drv_priv); - wmm = sta->wme; - } - - val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_3) | - FIELD_PREP(MT_TXD1_TID, tid); - - ethertype = get_unaligned_be16(&skb->data[12]); - if (ethertype >= ETH_P_802_3_MIN) - val |= MT_TXD1_ETH_802_3; - - txwi[1] |= cpu_to_le32(val); - - fc_type = IEEE80211_FTYPE_DATA >> 2; - fc_stype = wmm ? IEEE80211_STYPE_QOS_DATA >> 4 : 0; - - val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | - FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype); - - txwi[2] |= cpu_to_le32(val); - - val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | - FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); - txwi[7] |= cpu_to_le32(val); -} - -static void -mt7921_mac_write_txwi_80211(struct mt7921_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct ieee80211_key_conf *key) -{ - struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; - struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *)skb->data; - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - bool multicast = is_multicast_ether_addr(hdr->addr1); - u8 tid = skb->priority & IEEE80211_QOS_CTL_TID_MASK; - __le16 fc = hdr->frame_control; - u8 fc_type, fc_stype; - u32 val; - - if (ieee80211_is_action(fc) && - mgmt->u.action.category == WLAN_CATEGORY_BACK && - mgmt->u.action.u.addba_req.action_code == WLAN_ACTION_ADDBA_REQ) { - u16 capab = le16_to_cpu(mgmt->u.action.u.addba_req.capab); - - txwi[5] |= cpu_to_le32(MT_TXD5_ADD_BA); - tid = (capab >> 2) & IEEE80211_QOS_CTL_TID_MASK; - } else if (ieee80211_is_back_req(hdr->frame_control)) { - struct ieee80211_bar *bar = (struct ieee80211_bar *)hdr; - u16 control = le16_to_cpu(bar->control); - - tid = FIELD_GET(IEEE80211_BAR_CTRL_TID_INFO_MASK, control); - } - - val = FIELD_PREP(MT_TXD1_HDR_FORMAT, MT_HDR_FORMAT_802_11) | - FIELD_PREP(MT_TXD1_HDR_INFO, - ieee80211_get_hdrlen_from_skb(skb) / 2) | - FIELD_PREP(MT_TXD1_TID, tid); - txwi[1] |= cpu_to_le32(val); - - fc_type = (le16_to_cpu(fc) & IEEE80211_FCTL_FTYPE) >> 2; - fc_stype = (le16_to_cpu(fc) & IEEE80211_FCTL_STYPE) >> 4; - - val = FIELD_PREP(MT_TXD2_FRAME_TYPE, fc_type) | - FIELD_PREP(MT_TXD2_SUB_TYPE, fc_stype) | - FIELD_PREP(MT_TXD2_MULTICAST, multicast); - - if (key && multicast && ieee80211_is_robust_mgmt_frame(skb) && - key->cipher == WLAN_CIPHER_SUITE_AES_CMAC) { - val |= MT_TXD2_BIP; - txwi[3] &= ~cpu_to_le32(MT_TXD3_PROTECT_FRAME); - } - - if (!ieee80211_is_data(fc) || multicast || - info->flags & IEEE80211_TX_CTL_USE_MINRATE) - val |= MT_TXD2_FIX_RATE; - - txwi[2] |= cpu_to_le32(val); - - if (ieee80211_is_beacon(fc)) { - txwi[3] &= ~cpu_to_le32(MT_TXD3_SW_POWER_MGMT); - txwi[3] |= cpu_to_le32(MT_TXD3_REM_TX_COUNT); - } - - if (info->flags & IEEE80211_TX_CTL_INJECTED) { - u16 seqno = le16_to_cpu(hdr->seq_ctrl); - - if (ieee80211_is_back_req(hdr->frame_control)) { - struct ieee80211_bar *bar; - - bar = (struct ieee80211_bar *)skb->data; - seqno = le16_to_cpu(bar->start_seq_num); - } - - val = MT_TXD3_SN_VALID | - FIELD_PREP(MT_TXD3_SEQ, IEEE80211_SEQ_TO_SN(seqno)); - txwi[3] |= cpu_to_le32(val); - txwi[7] &= ~cpu_to_le32(MT_TXD7_HW_AMSDU); - } - - if (mt76_is_mmio(&dev->mt76)) { - val = FIELD_PREP(MT_TXD7_TYPE, fc_type) | - FIELD_PREP(MT_TXD7_SUB_TYPE, fc_stype); - txwi[7] |= cpu_to_le32(val); - } else { - val = FIELD_PREP(MT_TXD8_L_TYPE, fc_type) | - FIELD_PREP(MT_TXD8_L_SUB_TYPE, fc_stype); - txwi[8] |= cpu_to_le32(val); - } -} - -void mt7921_mac_write_txwi(struct mt7921_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct mt76_wcid *wcid, - struct ieee80211_key_conf *key, int pid, - bool beacon) -{ - struct ieee80211_tx_info *info = IEEE80211_SKB_CB(skb); - struct ieee80211_vif *vif = info->control.vif; - struct mt76_phy *mphy = &dev->mphy; - u8 p_fmt, q_idx, omac_idx = 0, wmm_idx = 0; - bool is_mmio = mt76_is_mmio(&dev->mt76); - u32 sz_txd = is_mmio ? MT_TXD_SIZE : MT_SDIO_TXD_SIZE; - bool is_8023 = info->flags & IEEE80211_TX_CTL_HW_80211_ENCAP; - u16 tx_count = 15; - u32 val; - - if (vif) { - struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv; - - omac_idx = mvif->omac_idx; - wmm_idx = mvif->wmm_idx; - } - - if (beacon) { - p_fmt = MT_TX_TYPE_FW; - q_idx = MT_LMAC_BCN0; - } else if (skb_get_queue_mapping(skb) >= MT_TXQ_PSD) { - p_fmt = is_mmio ? MT_TX_TYPE_CT : MT_TX_TYPE_SF; - q_idx = MT_LMAC_ALTX0; - } else { - p_fmt = is_mmio ? MT_TX_TYPE_CT : MT_TX_TYPE_SF; - q_idx = wmm_idx * MT7921_MAX_WMM_SETS + - mt76_connac_lmac_mapping(skb_get_queue_mapping(skb)); - } - - val = FIELD_PREP(MT_TXD0_TX_BYTES, skb->len + sz_txd) | - FIELD_PREP(MT_TXD0_PKT_FMT, p_fmt) | - FIELD_PREP(MT_TXD0_Q_IDX, q_idx); - txwi[0] = cpu_to_le32(val); - - val = MT_TXD1_LONG_FORMAT | - FIELD_PREP(MT_TXD1_WLAN_IDX, wcid->idx) | - FIELD_PREP(MT_TXD1_OWN_MAC, omac_idx); - - txwi[1] = cpu_to_le32(val); - txwi[2] = 0; - - val = FIELD_PREP(MT_TXD3_REM_TX_COUNT, tx_count); - if (key) - val |= MT_TXD3_PROTECT_FRAME; - if (info->flags & IEEE80211_TX_CTL_NO_ACK) - val |= MT_TXD3_NO_ACK; - - txwi[3] = cpu_to_le32(val); - txwi[4] = 0; - - val = FIELD_PREP(MT_TXD5_PID, pid); - if (pid >= MT_PACKET_ID_FIRST) - val |= MT_TXD5_TX_STATUS_HOST; - txwi[5] = cpu_to_le32(val); - - txwi[6] = 0; - txwi[7] = wcid->amsdu ? cpu_to_le32(MT_TXD7_HW_AMSDU) : 0; - - if (is_8023) - mt7921_mac_write_txwi_8023(dev, txwi, skb, wcid); - else - mt7921_mac_write_txwi_80211(dev, txwi, skb, key); - - if (txwi[2] & cpu_to_le32(MT_TXD2_FIX_RATE)) { - int rateidx = vif ? ffs(vif->bss_conf.basic_rates) - 1 : 0; - u16 rate, mode; - - /* hardware won't add HTC for mgmt/ctrl frame */ - txwi[2] |= cpu_to_le32(MT_TXD2_HTC_VLD); - - rate = mt76_calculate_default_rate(mphy, rateidx); - mode = rate >> 8; - rate &= GENMASK(7, 0); - rate |= FIELD_PREP(MT_TX_RATE_MODE, mode); - - val = MT_TXD6_FIXED_BW | - FIELD_PREP(MT_TXD6_TX_RATE, rate); - txwi[6] |= cpu_to_le32(val); - txwi[3] |= cpu_to_le32(MT_TXD3_BA_DISABLE); - } -} -EXPORT_SYMBOL_GPL(mt7921_mac_write_txwi); - void mt7921_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi) { struct mt7921_sta *msta; @@ -1426,6 +1215,7 @@ void mt7921_reset(struct mt76_dev *mdev) { struct mt7921_dev *dev = container_of(mdev, struct mt7921_dev, mt76); + struct mt76_connac_pm *pm = &dev->pm; if (!dev->hw_init_done) return; @@ -1433,8 +1223,12 @@ if (dev->hw_full_reset) return; + if (pm->suspended) + return; + queue_work(dev->mt76.wq, &dev->reset_work); } +EXPORT_SYMBOL_GPL(mt7921_reset); void mt7921_mac_update_mib_stats(struct mt7921_phy *phy) { @@ -1483,7 +1277,7 @@ mib->tx_amsdu_cnt += val; } - for (i = 0, aggr1 = aggr0 + 4; i < 4; i++) { + for (i = 0, aggr1 = aggr0 + 8; i < 4; i++) { u32 val2; val = mt76_rr(dev, MT_TX_AGG_CNT(0, i)); @@ -1646,7 +1440,7 @@ __le32 *txwi = (__le32 *)(skb->data - MT_SDIO_TXD_SIZE); memset(txwi, 0, MT_SDIO_TXD_SIZE); - mt7921_mac_write_txwi(dev, txwi, skb, wcid, key, pid, false); + mt76_connac2_mac_write_txwi(&dev->mt76, txwi, skb, wcid, key, pid, 0); skb_push(skb, MT_SDIO_TXD_SIZE); } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/mac.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/mac.h @@ -4,6 +4,8 @@ #ifndef __MT7921_MAC_H #define __MT7921_MAC_H +#include "../mt76_connac2_mac.h" + #define MT_CT_PARSE_LEN 72 #define MT_CT_DMA_BUF_NUM 2 @@ -163,20 +165,6 @@ #define MT_CRXV_FOE_HI GENMASK(6, 0) #define MT_CRXV_FOE_SHIFT 13 -enum tx_header_format { - MT_HDR_FORMAT_802_3, - MT_HDR_FORMAT_CMD, - MT_HDR_FORMAT_802_11, - MT_HDR_FORMAT_802_11_EXT, -}; - -enum tx_pkt_type { - MT_TX_TYPE_CT, - MT_TX_TYPE_SF, - MT_TX_TYPE_CMD, - MT_TX_TYPE_FW, -}; - enum tx_port_idx { MT_TX_PORT_IDX_LMAC, MT_TX_PORT_IDX_MCU @@ -197,104 +185,6 @@ #define MT_CT_INFO_HSR2_TX BIT(4) #define MT_CT_INFO_FROM_HOST BIT(7) -#define MT_TXD_SIZE (8 * 4) - -#define MT_SDIO_TXD_SIZE (MT_TXD_SIZE + 8 * 4) -#define MT_SDIO_TAIL_SIZE 8 -#define MT_SDIO_HDR_SIZE 4 -#define MT_USB_TAIL_SIZE 4 - -#define MT_TXD0_Q_IDX GENMASK(31, 25) -#define MT_TXD0_PKT_FMT GENMASK(24, 23) -#define MT_TXD0_ETH_TYPE_OFFSET GENMASK(22, 16) -#define MT_TXD0_TX_BYTES GENMASK(15, 0) - -#define MT_TXD1_LONG_FORMAT BIT(31) -#define MT_TXD1_TGID BIT(30) -#define MT_TXD1_OWN_MAC GENMASK(29, 24) -#define MT_TXD1_AMSDU BIT(23) -#define MT_TXD1_TID GENMASK(22, 20) -#define MT_TXD1_HDR_PAD GENMASK(19, 18) -#define MT_TXD1_HDR_FORMAT GENMASK(17, 16) -#define MT_TXD1_HDR_INFO GENMASK(15, 11) -#define MT_TXD1_ETH_802_3 BIT(15) -#define MT_TXD1_VTA BIT(10) -#define MT_TXD1_WLAN_IDX GENMASK(9, 0) - -#define MT_TXD2_FIX_RATE BIT(31) -#define MT_TXD2_FIXED_RATE BIT(30) -#define MT_TXD2_POWER_OFFSET GENMASK(29, 24) -#define MT_TXD2_MAX_TX_TIME GENMASK(23, 16) -#define MT_TXD2_FRAG GENMASK(15, 14) -#define MT_TXD2_HTC_VLD BIT(13) -#define MT_TXD2_DURATION BIT(12) -#define MT_TXD2_BIP BIT(11) -#define MT_TXD2_MULTICAST BIT(10) -#define MT_TXD2_RTS BIT(9) -#define MT_TXD2_SOUNDING BIT(8) -#define MT_TXD2_NDPA BIT(7) -#define MT_TXD2_NDP BIT(6) -#define MT_TXD2_FRAME_TYPE GENMASK(5, 4) -#define MT_TXD2_SUB_TYPE GENMASK(3, 0) - -#define MT_TXD3_SN_VALID BIT(31) -#define MT_TXD3_PN_VALID BIT(30) -#define MT_TXD3_SW_POWER_MGMT BIT(29) -#define MT_TXD3_BA_DISABLE BIT(28) -#define MT_TXD3_SEQ GENMASK(27, 16) -#define MT_TXD3_REM_TX_COUNT GENMASK(15, 11) -#define MT_TXD3_TX_COUNT GENMASK(10, 6) -#define MT_TXD3_TIMING_MEASURE BIT(5) -#define MT_TXD3_DAS BIT(4) -#define MT_TXD3_EEOSP BIT(3) -#define MT_TXD3_EMRD BIT(2) -#define MT_TXD3_PROTECT_FRAME BIT(1) -#define MT_TXD3_NO_ACK BIT(0) - -#define MT_TXD4_PN_LOW GENMASK(31, 0) - -#define MT_TXD5_PN_HIGH GENMASK(31, 16) -#define MT_TXD5_MD BIT(15) -#define MT_TXD5_ADD_BA BIT(14) -#define MT_TXD5_TX_STATUS_HOST BIT(10) -#define MT_TXD5_TX_STATUS_MCU BIT(9) -#define MT_TXD5_TX_STATUS_FMT BIT(8) -#define MT_TXD5_PID GENMASK(7, 0) - -#define MT_TXD6_TX_IBF BIT(31) -#define MT_TXD6_TX_EBF BIT(30) -#define MT_TXD6_TX_RATE GENMASK(29, 16) -#define MT_TXD6_SGI GENMASK(15, 14) -#define MT_TXD6_HELTF GENMASK(13, 12) -#define MT_TXD6_LDPC BIT(11) -#define MT_TXD6_SPE_ID_IDX BIT(10) -#define MT_TXD6_ANT_ID GENMASK(7, 4) -#define MT_TXD6_DYN_BW BIT(3) -#define MT_TXD6_FIXED_BW BIT(2) -#define MT_TXD6_BW GENMASK(1, 0) - -#define MT_TXD7_TXD_LEN GENMASK(31, 30) -#define MT_TXD7_UDP_TCP_SUM BIT(29) -#define MT_TXD7_IP_SUM BIT(28) - -#define MT_TXD7_TYPE GENMASK(21, 20) -#define MT_TXD7_SUB_TYPE GENMASK(19, 16) - -#define MT_TXD7_PSE_FID GENMASK(27, 16) -#define MT_TXD7_SPE_IDX GENMASK(15, 11) -#define MT_TXD7_HW_AMSDU BIT(10) -#define MT_TXD7_TX_TIME GENMASK(9, 0) - -#define MT_TXD8_L_TYPE GENMASK(5, 4) -#define MT_TXD8_L_SUB_TYPE GENMASK(3, 0) - -#define MT_TX_RATE_STBC BIT(13) -#define MT_TX_RATE_NSS GENMASK(12, 10) -#define MT_TX_RATE_MODE GENMASK(9, 6) -#define MT_TX_RATE_SU_EXT_TONE BIT(5) -#define MT_TX_RATE_DCM BIT(4) -#define MT_TX_RATE_IDX GENMASK(3, 0) - #define MT_TXP_MAX_BUF_NUM 6 struct mt7921_txp { @@ -325,15 +215,6 @@ /* will support this field in further revision */ #define MT_TX_FREE_RATE GENMASK(13, 0) -#define MT_TXS0_BW GENMASK(30, 29) -#define MT_TXS0_TXS_FORMAT GENMASK(24, 23) -#define MT_TXS0_ACK_ERROR_MASK GENMASK(18, 16) -#define MT_TXS0_TX_RATE GENMASK(13, 0) - -#define MT_TXS2_WCID GENMASK(25, 16) - -#define MT_TXS3_PID GENMASK(31, 24) - static inline struct mt7921_txp_common * mt7921_txwi_to_txp(struct mt76_dev *dev, struct mt76_txwi_cache *t) { --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/main.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/main.c @@ -257,7 +257,7 @@ if (err) return err; - err = mt76_connac_mcu_set_rate_txpower(phy->mt76); + err = mt7921_set_tx_sar_pwr(mphy->hw, NULL); if (err) return err; @@ -322,7 +322,7 @@ mvif->mt76.omac_idx = mvif->mt76.idx; mvif->phy = phy; mvif->mt76.band_idx = 0; - mvif->mt76.wmm_idx = mvif->mt76.idx % MT7921_MAX_WMM_SETS; + mvif->mt76.wmm_idx = mvif->mt76.idx % MT76_CONNAC_MAX_WMM_SETS; ret = mt76_connac_mcu_uni_add_dev(&dev->mphy, vif, &mvif->sta.wcid, true); @@ -548,7 +548,7 @@ mt7921_mutex_acquire(dev); if (changed & IEEE80211_CONF_CHANGE_POWER) { - ret = mt76_connac_mcu_set_rate_txpower(phy->mt76); + ret = mt7921_set_tx_sar_pwr(hw, NULL); if (ret) goto out; } @@ -653,15 +653,6 @@ } } - if (changed & BSS_CHANGED_BEACON_ENABLED && info->enable_beacon) { - struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; - - mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, - true); - mt7921_mcu_sta_update(dev, NULL, vif, true, - MT76_STA_INFO_STATE_NONE); - } - if (changed & (BSS_CHANGED_BEACON | BSS_CHANGED_BEACON_ENABLED)) mt7921_mcu_uni_add_beacon_offload(dev, hw, vif, @@ -747,6 +738,7 @@ mt7921_mac_wtbl_update(dev, msta->wcid.idx, MT_WTBL_UPDATE_ADM_COUNT_CLEAR); + memset(msta->airtime_ac, 0, sizeof(msta->airtime_ac)); mt7921_mcu_sta_update(dev, sta, vif, true, MT76_STA_INFO_STATE_ASSOC); @@ -1399,6 +1391,8 @@ struct mt7921_sta *msta = (struct mt7921_sta *)sta->drv_priv; struct mt7921_dev *dev = mt7921_hw_dev(hw); + mt7921_mutex_acquire(dev); + if (enabled) set_bit(MT_WCID_FLAG_HDR_TRANS, &msta->wcid.flags); else @@ -1406,6 +1400,8 @@ mt76_connac_mcu_sta_update_hdr_trans(&dev->mt76, vif, &msta->wcid, MCU_UNI_CMD(STA_REC_UPDATE)); + + mt7921_mutex_release(dev); } #if IS_ENABLED(CONFIG_IPV6) @@ -1469,20 +1465,33 @@ } #endif +int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw, + const struct cfg80211_sar_specs *sar) +{ + struct mt76_phy *mphy = hw->priv; + int err; + + if (sar) { + err = mt76_init_sar_power(hw, sar); + if (err) + return err; + } + + mt7921_init_acpi_sar_power(mt7921_hw_phy(hw), !sar); + + err = mt76_connac_mcu_set_rate_txpower(mphy); + + return err; +} + static int mt7921_set_sar_specs(struct ieee80211_hw *hw, const struct cfg80211_sar_specs *sar) { struct mt7921_dev *dev = mt7921_hw_dev(hw); - struct mt76_phy *mphy = hw->priv; int err; mt7921_mutex_acquire(dev); - err = mt76_init_sar_power(hw, sar); - if (err) - goto out; - - err = mt76_connac_mcu_set_rate_txpower(mphy); -out: + err = mt7921_set_tx_sar_pwr(hw, sar); mt7921_mutex_release(dev); return err; @@ -1500,6 +1509,53 @@ mt7921_mutex_release(dev); } +static int +mt7921_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +{ + struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt7921_phy *phy = mt7921_hw_phy(hw); + struct mt7921_dev *dev = mt7921_hw_dev(hw); + int err; + + mt7921_mutex_acquire(dev); + + err = mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, + true); + if (err) + goto out; + + err = mt7921_mcu_set_bss_pm(dev, vif, true); + if (err) + goto out; + + err = mt7921_mcu_sta_update(dev, NULL, vif, true, + MT76_STA_INFO_STATE_NONE); +out: + mt7921_mutex_release(dev); + + return err; +} + +static void +mt7921_stop_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif) +{ + struct mt7921_vif *mvif = (struct mt7921_vif *)vif->drv_priv; + struct mt7921_phy *phy = mt7921_hw_phy(hw); + struct mt7921_dev *dev = mt7921_hw_dev(hw); + int err; + + mt7921_mutex_acquire(dev); + + err = mt7921_mcu_set_bss_pm(dev, vif, false); + if (err) + goto out; + + mt76_connac_mcu_uni_add_bss(phy->mt76, vif, &mvif->sta.wcid, false); + +out: + mt7921_mutex_release(dev); +} + const struct ieee80211_ops mt7921_ops = { .tx = mt7921_tx, .start = mt7921_start, @@ -1510,6 +1566,8 @@ .conf_tx = mt7921_conf_tx, .configure_filter = mt7921_configure_filter, .bss_info_changed = mt7921_bss_info_changed, + .start_ap = mt7921_start_ap, + .stop_ap = mt7921_stop_ap, .sta_state = mt7921_sta_state, .sta_pre_rcu_remove = mt76_sta_pre_rcu_remove, .set_key = mt7921_set_key, --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c @@ -582,13 +582,6 @@ if (ret) dev_err(dev->mt76.dev, "Failed to start patch\n"); - if (mt76_is_sdio(&dev->mt76)) { - /* activate again */ - ret = __mt7921_mcu_fw_pmctrl(dev); - if (!ret) - ret = __mt7921_mcu_drv_pmctrl(dev); - } - out: sem = mt76_connac_mcu_patch_sem_ctrl(&dev->mt76, false); switch (sem) { @@ -599,6 +592,14 @@ dev_err(dev->mt76.dev, "Failed to release patch semaphore\n"); break; } + + if (!ret && mt76_is_sdio(&dev->mt76)) { + /* activate again */ + ret = __mt7921_mcu_fw_pmctrl(dev); + if (!ret) + ret = __mt7921_mcu_drv_pmctrl(dev); + } + release_firmware(fw); return ret; @@ -1019,7 +1020,7 @@ &bcnft_req, sizeof(bcnft_req), true); } -static int +int mt7921_mcu_set_bss_pm(struct mt7921_dev *dev, struct ieee80211_vif *vif, bool enable) { @@ -1048,9 +1049,6 @@ }; int err; - if (vif->type != NL80211_IFTYPE_STATION) - return 0; - err = mt76_mcu_send_msg(&dev->mt76, MCU_CE_CMD(SET_BSS_ABORT), &req_hdr, sizeof(req_hdr), false); if (err < 0 || !enable) @@ -1255,8 +1253,11 @@ }; struct sk_buff *skb; + /* support enable/update process only + * disable flow would be handled in bss stop handler automatically + */ if (!enable) - goto out; + return -EOPNOTSUPP; skb = ieee80211_beacon_get_template(mt76_hw(dev), vif, &offs); if (!skb) @@ -1268,8 +1269,8 @@ return -EINVAL; } - mt7921_mac_write_txwi(dev, (__le32 *)(req.beacon_tlv.pkt), skb, - wcid, NULL, 0, true); + mt76_connac2_mac_write_txwi(&dev->mt76, (__le32 *)(req.beacon_tlv.pkt), + skb, wcid, NULL, 0, BSS_CHANGED_BEACON); memcpy(req.beacon_tlv.pkt + MT_TXD_SIZE, skb->data, skb->len); req.beacon_tlv.pkt_len = cpu_to_le16(MT_TXD_SIZE + skb->len); req.beacon_tlv.tim_ie_pos = cpu_to_le16(MT_TXD_SIZE + offs.tim_offset); @@ -1282,7 +1283,6 @@ } dev_kfree_skb(skb); -out: return mt76_mcu_send_msg(&dev->mt76, MCU_UNI_CMD(BSS_INFO_UPDATE), &req, sizeof(req), true); } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/mt7921.h @@ -8,9 +8,9 @@ #include #include "../mt76_connac_mcu.h" #include "regs.h" +#include "acpi_sar.h" #define MT7921_MAX_INTERFACES 4 -#define MT7921_MAX_WMM_SETS 4 #define MT7921_WTBL_SIZE 20 #define MT7921_WTBL_RESERVED (MT7921_WTBL_SIZE - 1) #define MT7921_WTBL_STA (MT7921_WTBL_RESERVED - \ @@ -171,6 +171,9 @@ struct sk_buff_head scan_event_list; struct delayed_work scan_work; +#ifdef CONFIG_ACPI + struct mt7921_acpi_sar *acpisar; +#endif }; #define mt7921_init_reset(dev) ((dev)->hif_ops->init_reset(dev)) @@ -247,16 +250,6 @@ } data[TXPWR_MAX_NUM]; }; -enum { - MT_LMAC_AC00, - MT_LMAC_AC01, - MT_LMAC_AC02, - MT_LMAC_AC03, - MT_LMAC_ALTX0 = 0x10, - MT_LMAC_BMC0, - MT_LMAC_BCN0, -}; - static inline struct mt7921_phy * mt7921_hw_phy(struct ieee80211_hw *hw) { @@ -291,6 +284,8 @@ int mt7921_wpdma_reinit_cond(struct mt7921_dev *dev); void mt7921_dma_cleanup(struct mt7921_dev *dev); int mt7921_run_firmware(struct mt7921_dev *dev); +int mt7921_mcu_set_bss_pm(struct mt7921_dev *dev, struct ieee80211_vif *vif, + bool enable); int mt7921_mcu_sta_update(struct mt7921_dev *dev, struct ieee80211_sta *sta, struct ieee80211_vif *vif, bool enable, enum mt76_sta_info_state state); @@ -424,10 +419,6 @@ void *data, int len); int mt7921_testmode_dump(struct ieee80211_hw *hw, struct sk_buff *msg, struct netlink_callback *cb, void *data, int len); -void mt7921_mac_write_txwi(struct mt7921_dev *dev, __le32 *txwi, - struct sk_buff *skb, struct mt76_wcid *wcid, - struct ieee80211_key_conf *key, int pid, - bool beacon); void mt7921_tx_check_aggr(struct ieee80211_sta *sta, __le32 *txwi); void mt7921_mac_sta_poll(struct mt7921_dev *dev); int mt7921_mcu_fill_message(struct mt76_dev *mdev, struct sk_buff *skb, @@ -481,4 +472,22 @@ struct ieee80211_hw *hw, struct ieee80211_vif *vif, bool enable); +#ifdef CONFIG_ACPI +int mt7921_init_acpi_sar(struct mt7921_dev *dev); +int mt7921_init_acpi_sar_power(struct mt7921_phy *phy, bool set_default); +#else +static inline int +mt7921_init_acpi_sar(struct mt7921_dev *dev) +{ + return 0; +} + +static inline int +mt7921_init_acpi_sar_power(struct mt7921_phy *phy, bool set_default) +{ + return 0; +} +#endif +int mt7921_set_tx_sar_pwr(struct ieee80211_hw *hw, + const struct cfg80211_sar_specs *sar); #endif --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/pci.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/pci.c @@ -152,6 +152,7 @@ { 0x820c8000, 0x0c000, 0x2000 }, /* WF_UMAC_TOP (PSE) */ { 0x820cc000, 0x0e000, 0x1000 }, /* WF_UMAC_TOP (PP) */ { 0x820cd000, 0x0f000, 0x1000 }, /* WF_MDP_TOP */ + { 0x74030000, 0x10000, 0x10000 }, /* PCIE_MAC_IREG */ { 0x820ce000, 0x21c00, 0x0200 }, /* WF_LMAC_TOP (WF_SEC) */ { 0x820cf000, 0x22000, 0x1000 }, /* WF_LMAC_TOP (WF_PF) */ { 0x820e0000, 0x20000, 0x0400 }, /* WF_LMAC_TOP BN0 (WF_CFG) */ @@ -289,6 +290,8 @@ goto err_free_pci_vec; } + pci_set_drvdata(pdev, mdev); + dev = container_of(mdev, struct mt7921_dev, mt76); dev->hif_ops = &mt7921_pcie_ops; @@ -368,6 +371,7 @@ int i, err; pm->suspended = true; + flush_work(&dev->reset_work); cancel_delayed_work_sync(&pm->ps_work); cancel_work_sync(&pm->wake_work); @@ -433,6 +437,9 @@ restore_suspend: pm->suspended = false; + if (err < 0) + mt7921_reset(&dev->mt76); + return err; } @@ -451,7 +458,7 @@ err = mt7921_mcu_drv_pmctrl(dev); if (err < 0) - return err; + goto failed; mt7921_wpdma_reinit_cond(dev); @@ -481,11 +488,12 @@ mt76_connac_mcu_set_deep_sleep(&dev->mt76, false); err = mt76_connac_mcu_set_hif_suspend(mdev, false); - if (err) - return err; - +failed: pm->suspended = false; + if (err < 0) + mt7921_reset(&dev->mt76); + return err; } #endif /* CONFIG_PM */ --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/pci_mac.c @@ -72,8 +72,8 @@ } pid = mt76_tx_status_skb_add(mdev, wcid, tx_info->skb); - mt7921_mac_write_txwi(dev, txwi_ptr, tx_info->skb, wcid, key, - pid, false); + mt76_connac2_mac_write_txwi(mdev, txwi_ptr, tx_info->skb, wcid, key, + pid, 0); txp = (struct mt7921_txp_common *)(txwi + MT_TXD_SIZE); memset(txp, 0, sizeof(struct mt7921_txp_common)); @@ -345,7 +345,7 @@ err = mt7921e_driver_own(dev); if (err) - return err; + goto out; err = mt7921_run_firmware(dev); if (err) --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/pci_mcu.c @@ -52,6 +52,8 @@ if (err) return err; + mt76_rmw_field(dev, MT_PCIE_MAC_PM, MT_PCIE_MAC_PM_L0S_DIS, 1); + err = mt7921_run_firmware(dev); mt76_queue_tx_cleanup(dev, dev->mt76.q_mcu[MT_MCUQ_FWDL], false); @@ -102,7 +104,7 @@ { struct mt76_phy *mphy = &dev->mt76.phy; struct mt76_connac_pm *pm = &dev->pm; - int i, err = 0; + int i; for (i = 0; i < MT7921_DRV_OWN_RETRY_COUNT; i++) { mt76_wr(dev, MT_CONN_ON_LPCTL, PCIE_LPCR_HOST_SET_OWN); @@ -114,12 +116,12 @@ if (i == MT7921_DRV_OWN_RETRY_COUNT) { dev_err(dev->mt76.dev, "firmware own failed\n"); clear_bit(MT76_STATE_PM, &mphy->state); - err = -EIO; + return -EIO; } pm->stats.last_doze_event = jiffies; pm->stats.awake_time += pm->stats.last_doze_event - pm->stats.last_wake_event; - return err; + return 0; } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/regs.h +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/regs.h @@ -440,6 +440,8 @@ #define MT_PCIE_MAC_BASE 0x10000 #define MT_PCIE_MAC(ofs) (MT_PCIE_MAC_BASE + (ofs)) #define MT_PCIE_MAC_INT_ENABLE MT_PCIE_MAC(0x188) +#define MT_PCIE_MAC_PM MT_PCIE_MAC(0x194) +#define MT_PCIE_MAC_PM_L0S_DIS BIT(8) #define MT_DMA_SHDL(ofs) (0x7c026000 + (ofs)) #define MT_DMASHDL_SW_CONTROL MT_DMA_SHDL(0x004) --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/sdio.c @@ -206,6 +206,7 @@ pm->suspended = true; set_bit(MT76_STATE_SUSPEND, &mdev->phy.state); + flush_work(&dev->reset_work); cancel_delayed_work_sync(&pm->ps_work); cancel_work_sync(&pm->wake_work); @@ -261,6 +262,9 @@ clear_bit(MT76_STATE_SUSPEND, &mdev->phy.state); pm->suspended = false; + if (err < 0) + mt7921_reset(&dev->mt76); + return err; } @@ -276,7 +280,7 @@ err = mt7921_mcu_drv_pmctrl(dev); if (err < 0) - return err; + goto failed; mt76_worker_enable(&mdev->tx_worker); mt76_worker_enable(&mdev->sdio.txrx_worker); @@ -288,11 +292,12 @@ mt76_connac_mcu_set_deep_sleep(mdev, false); err = mt76_connac_mcu_set_hif_suspend(mdev, false); - if (err) - return err; - +failed: pm->suspended = false; + if (err < 0) + mt7921_reset(&dev->mt76); + return err; } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/sdio_mcu.c @@ -136,8 +136,8 @@ struct sdio_func *func = dev->mt76.sdio.func; struct mt76_phy *mphy = &dev->mt76.phy; struct mt76_connac_pm *pm = &dev->pm; - int err = 0; u32 status; + int err; sdio_claim_host(func); @@ -148,7 +148,7 @@ 2000, 1000000); if (err < 0) { dev_err(dev->mt76.dev, "mailbox ACK not cleared\n"); - goto err; + goto out; } } @@ -156,18 +156,18 @@ err = readx_poll_timeout(mt76s_read_pcr, &dev->mt76, status, !(status & WHLPCR_IS_DRIVER_OWN), 2000, 1000000); +out: sdio_release_host(func); -err: if (err < 0) { dev_err(dev->mt76.dev, "firmware own failed\n"); clear_bit(MT76_STATE_PM, &mphy->state); - err = -EIO; + return -EIO; } pm->stats.last_doze_event = jiffies; pm->stats.awake_time += pm->stats.last_doze_event - pm->stats.last_wake_event; - return err; + return 0; } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/mt7921/usb.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/mt7921/usb.c @@ -292,11 +292,15 @@ static int mt7921u_suspend(struct usb_interface *intf, pm_message_t state) { struct mt7921_dev *dev = usb_get_intfdata(intf); + struct mt76_connac_pm *pm = &dev->pm; int err; + pm->suspended = true; + flush_work(&dev->reset_work); + err = mt76_connac_mcu_set_hif_suspend(&dev->mt76, true); if (err) - return err; + goto failed; mt76u_stop_rx(&dev->mt76); mt76u_stop_tx(&dev->mt76); @@ -304,11 +308,20 @@ set_bit(MT76_STATE_SUSPEND, &dev->mphy.state); return 0; + +failed: + pm->suspended = false; + + if (err < 0) + mt7921_reset(&dev->mt76); + + return err; } static int mt7921u_resume(struct usb_interface *intf) { struct mt7921_dev *dev = usb_get_intfdata(intf); + struct mt76_connac_pm *pm = &dev->pm; bool reinit = true; int err, i; @@ -330,16 +343,23 @@ if (reinit || mt7921_dma_need_reinit(dev)) { err = mt7921u_dma_init(dev, true); if (err) - return err; + goto failed; } clear_bit(MT76_STATE_SUSPEND, &dev->mphy.state); err = mt76u_resume_rx(&dev->mt76); if (err < 0) - return err; + goto failed; + + err = mt76_connac_mcu_set_hif_suspend(&dev->mt76, false); +failed: + pm->suspended = false; + + if (err < 0) + mt7921_reset(&dev->mt76); - return mt76_connac_mcu_set_hif_suspend(&dev->mt76, false); + return err; } #endif /* CONFIG_PM */ --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/sdio.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/sdio.c @@ -480,14 +480,14 @@ if (ndata_frames > 0) resched = true; - if (dev->drv->tx_status_data && + if (dev->drv->tx_status_data && ndata_frames > 0 && !test_and_set_bit(MT76_READING_STATS, &dev->phy.state) && !test_bit(MT76_STATE_SUSPEND, &dev->phy.state)) - queue_work(dev->wq, &dev->sdio.stat_work); + ieee80211_queue_work(dev->hw, &dev->sdio.stat_work); } while (nframes > 0); if (resched) - mt76_worker_schedule(&dev->sdio.txrx_worker); + mt76_worker_schedule(&dev->tx_worker); } static void mt76s_tx_status_data(struct work_struct *work) @@ -510,7 +510,7 @@ } if (count && test_bit(MT76_STATE_RUNNING, &dev->phy.state)) - queue_work(dev->wq, &sdio->stat_work); + ieee80211_queue_work(dev->hw, &sdio->stat_work); else clear_bit(MT76_READING_STATS, &dev->phy.state); } --- linux-5.19.0.orig/drivers/net/wireless/mediatek/mt76/usb.c +++ linux-5.19.0/drivers/net/wireless/mediatek/mt76/usb.c @@ -761,6 +761,9 @@ struct mt76_queue *q; int i; + if (!test_bit(MT76_STATE_RUNNING, &dev->phy.state)) + return; + for (i = 0; i < IEEE80211_NUM_ACS; i++) { q = dev->phy.q_tx[i]; if (!q) @@ -780,11 +783,11 @@ wake_up(&dev->tx_wait); mt76_worker_schedule(&dev->tx_worker); - - if (dev->drv->tx_status_data && - !test_and_set_bit(MT76_READING_STATS, &dev->phy.state)) - queue_work(dev->wq, &dev->usb.stat_work); } + + if (dev->drv->tx_status_data && + !test_and_set_bit(MT76_READING_STATS, &dev->phy.state)) + queue_work(dev->wq, &dev->usb.stat_work); } static void mt76u_tx_status_data(struct work_struct *work) --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/cfg80211.c @@ -943,30 +943,52 @@ return; while (index + sizeof(*e) <= len) { + u16 attr_size; + e = (struct wilc_attr_entry *)&buf[index]; - if (e->attr_type == IEEE80211_P2P_ATTR_CHANNEL_LIST) + attr_size = le16_to_cpu(e->attr_len); + + if (index + sizeof(*e) + attr_size > len) + return; + + if (e->attr_type == IEEE80211_P2P_ATTR_CHANNEL_LIST && + attr_size >= (sizeof(struct wilc_attr_ch_list) - sizeof(*e))) ch_list_idx = index; - else if (e->attr_type == IEEE80211_P2P_ATTR_OPER_CHANNEL) + else if (e->attr_type == IEEE80211_P2P_ATTR_OPER_CHANNEL && + attr_size == (sizeof(struct wilc_attr_oper_ch) - sizeof(*e))) op_ch_idx = index; + if (ch_list_idx && op_ch_idx) break; - index += le16_to_cpu(e->attr_len) + sizeof(*e); + + index += sizeof(*e) + attr_size; } if (ch_list_idx) { - u16 attr_size; - struct wilc_ch_list_elem *e; - int i; + unsigned int i; + u16 elem_size; ch_list = (struct wilc_attr_ch_list *)&buf[ch_list_idx]; - attr_size = le16_to_cpu(ch_list->attr_len); - for (i = 0; i < attr_size;) { + /* the number of bytes following the final 'elem' member */ + elem_size = le16_to_cpu(ch_list->attr_len) - + (sizeof(*ch_list) - sizeof(struct wilc_attr_entry)); + for (i = 0; i < elem_size;) { + struct wilc_ch_list_elem *e; + e = (struct wilc_ch_list_elem *)(ch_list->elem + i); + + i += sizeof(*e); + if (i > elem_size) + break; + + i += e->no_of_channels; + if (i > elem_size) + break; + if (e->op_class == WILC_WLAN_OPERATING_CLASS_2_4GHZ) { memset(e->ch_list, sta_ch, e->no_of_channels); break; } - i += e->no_of_channels; } } @@ -1378,7 +1400,8 @@ return wilc_add_beacon(vif, 0, 0, beacon); } -static int stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int stop_ap(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id) { int ret; struct wilc_vif *vif = netdev_priv(dev); --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/hif.c +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/hif.c @@ -472,14 +472,25 @@ rsn_ie = cfg80211_find_ie(WLAN_EID_RSN, ies->data, ies->len); if (rsn_ie) { + int rsn_ie_len = sizeof(struct element) + rsn_ie[1]; int offset = 8; - param->mode_802_11i = 2; - param->rsn_found = true; /* extract RSN capabilities */ - offset += (rsn_ie[offset] * 4) + 2; - offset += (rsn_ie[offset] * 4) + 2; - memcpy(param->rsn_cap, &rsn_ie[offset], 2); + if (offset < rsn_ie_len) { + /* skip over pairwise suites */ + offset += (rsn_ie[offset] * 4) + 2; + + if (offset < rsn_ie_len) { + /* skip over authentication suites */ + offset += (rsn_ie[offset] * 4) + 2; + + if (offset + 1 < rsn_ie_len) { + param->mode_802_11i = 2; + param->rsn_found = true; + memcpy(param->rsn_cap, &rsn_ie[offset], 2); + } + } + } } if (param->rsn_found) { --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/netdev.h +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/netdev.h @@ -254,6 +254,7 @@ u8 *rx_buffer; u32 rx_buffer_offset; u8 *tx_buffer; + u32 *vmm_table; struct txq_handle txq[NQUEUES]; int txq_entries; --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/sdio.c +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/sdio.c @@ -27,6 +27,7 @@ bool irq_gpio; u32 block_size; int has_thrpt_enh3; + u8 *cmd53_buf; }; struct sdio_cmd52 { @@ -46,6 +47,7 @@ u32 count: 9; u8 *buffer; u32 block_size; + bool use_global_buf; }; static const struct wilc_hif_func wilc_hif_sdio; @@ -90,6 +92,8 @@ { struct sdio_func *func = container_of(wilc->dev, struct sdio_func, dev); int size, ret; + struct wilc_sdio *sdio_priv = wilc->bus_data; + u8 *buf = cmd->buffer; sdio_claim_host(func); @@ -100,12 +104,23 @@ else size = cmd->count; + if (cmd->use_global_buf) { + if (size > sizeof(u32)) + return -EINVAL; + + buf = sdio_priv->cmd53_buf; + } + if (cmd->read_write) { /* write */ - ret = sdio_memcpy_toio(func, cmd->address, - (void *)cmd->buffer, size); + if (cmd->use_global_buf) + memcpy(buf, cmd->buffer, size); + + ret = sdio_memcpy_toio(func, cmd->address, buf, size); } else { /* read */ - ret = sdio_memcpy_fromio(func, (void *)cmd->buffer, - cmd->address, size); + ret = sdio_memcpy_fromio(func, buf, cmd->address, size); + + if (cmd->use_global_buf) + memcpy(cmd->buffer, buf, size); } sdio_release_host(func); @@ -127,6 +142,12 @@ if (!sdio_priv) return -ENOMEM; + sdio_priv->cmd53_buf = kzalloc(sizeof(u32), GFP_KERNEL); + if (!sdio_priv->cmd53_buf) { + ret = -ENOMEM; + goto free; + } + ret = wilc_cfg80211_init(&wilc, &func->dev, WILC_HIF_SDIO, &wilc_hif_sdio); if (ret) @@ -160,6 +181,7 @@ irq_dispose_mapping(wilc->dev_irq_num); wilc_netdev_cleanup(wilc); free: + kfree(sdio_priv->cmd53_buf); kfree(sdio_priv); return ret; } @@ -171,6 +193,7 @@ clk_disable_unprepare(wilc->rtc_clk); wilc_netdev_cleanup(wilc); + kfree(sdio_priv->cmd53_buf); kfree(sdio_priv); } @@ -367,8 +390,9 @@ cmd.address = WILC_SDIO_FBR_DATA_REG; cmd.block_mode = 0; cmd.increment = 1; - cmd.count = 4; + cmd.count = sizeof(u32); cmd.buffer = (u8 *)&data; + cmd.use_global_buf = true; cmd.block_size = sdio_priv->block_size; ret = wilc_sdio_cmd53(wilc, &cmd); if (ret) @@ -406,6 +430,7 @@ nblk = size / block_size; nleft = size % block_size; + cmd.use_global_buf = false; if (nblk > 0) { cmd.block_mode = 1; cmd.increment = 1; @@ -484,8 +509,9 @@ cmd.address = WILC_SDIO_FBR_DATA_REG; cmd.block_mode = 0; cmd.increment = 1; - cmd.count = 4; + cmd.count = sizeof(u32); cmd.buffer = (u8 *)data; + cmd.use_global_buf = true; cmd.block_size = sdio_priv->block_size; ret = wilc_sdio_cmd53(wilc, &cmd); @@ -527,6 +553,7 @@ nblk = size / block_size; nleft = size % block_size; + cmd.use_global_buf = false; if (nblk > 0) { cmd.block_mode = 1; cmd.increment = 1; --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/spi.c +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/spi.c @@ -191,11 +191,11 @@ /* assert ENABLE: */ gpiod_set_value(gpios->enable, 1); mdelay(5); - /* deassert RESET: */ - gpiod_set_value(gpios->reset, 0); - } else { /* assert RESET: */ gpiod_set_value(gpios->reset, 1); + } else { + /* deassert RESET: */ + gpiod_set_value(gpios->reset, 0); /* deassert ENABLE: */ gpiod_set_value(gpios->enable, 0); } --- linux-5.19.0.orig/drivers/net/wireless/microchip/wilc1000/wlan.c +++ linux-5.19.0/drivers/net/wireless/microchip/wilc1000/wlan.c @@ -714,7 +714,7 @@ int ret = 0; int counter; int timeout; - u32 vmm_table[WILC_VMM_TBL_SIZE]; + u32 *vmm_table = wilc->vmm_table; u8 ac_pkt_num_to_chip[NQUEUES] = {0, 0, 0, 0}; const struct wilc_hif_func *func; int srcu_idx; @@ -1251,6 +1251,8 @@ while ((rqe = wilc_wlan_rxq_remove(wilc))) kfree(rqe); + kfree(wilc->vmm_table); + wilc->vmm_table = NULL; kfree(wilc->rx_buffer); wilc->rx_buffer = NULL; kfree(wilc->tx_buffer); @@ -1485,6 +1487,14 @@ goto fail; } + if (!wilc->vmm_table) + wilc->vmm_table = kzalloc(WILC_VMM_TBL_SIZE, GFP_KERNEL); + + if (!wilc->vmm_table) { + ret = -ENOBUFS; + goto fail; + } + if (!wilc->tx_buffer) wilc->tx_buffer = kmalloc(WILC_TX_BUFF_SIZE, GFP_KERNEL); @@ -1509,7 +1519,8 @@ return 0; fail: - + kfree(wilc->vmm_table); + wilc->vmm_table = NULL; kfree(wilc->rx_buffer); wilc->rx_buffer = NULL; kfree(wilc->tx_buffer); --- linux-5.19.0.orig/drivers/net/wireless/purelifi/plfxlc/usb.c +++ linux-5.19.0/drivers/net/wireless/purelifi/plfxlc/usb.c @@ -247,6 +247,7 @@ for (i = 0; i < RX_URBS_COUNT; i++) free_rx_urb(urbs[i]); } + kfree(urbs); return r; } --- linux-5.19.0.orig/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c +++ linux-5.19.0/drivers/net/wireless/quantenna/qtnfmac/cfg80211.c @@ -352,7 +352,8 @@ return ret; } -static int qtnf_stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int qtnf_stop_ap(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id) { struct qtnf_vif *vif = qtnf_netdev_get_priv(dev); int ret; @@ -500,7 +501,7 @@ switch (vif->wdev.iftype) { case NL80211_IFTYPE_STATION: - if (idx != 0 || !vif->wdev.current_bss) + if (idx != 0 || !vif->wdev.connected) return -ENOENT; ether_addr_copy(mac, vif->bssid); @@ -729,7 +730,7 @@ pr_err("VIF%u.%u: failed to disconnect\n", mac->macid, vif->vifid); - if (vif->wdev.current_bss) { + if (vif->wdev.connected) { netif_carrier_off(vif->netdev); cfg80211_disconnected(vif->netdev, reason_code, NULL, 0, true, GFP_KERNEL); @@ -745,10 +746,11 @@ struct qtnf_wmac *mac = wiphy_priv(wiphy); struct wireless_dev *wdev = dev->ieee80211_ptr; struct ieee80211_supported_band *sband; - const struct cfg80211_chan_def *chandef = &wdev->chandef; + const struct cfg80211_chan_def *chandef = wdev_chandef(wdev, 0); struct ieee80211_channel *chan; int ret; + sband = wiphy->bands[NL80211_BAND_2GHZ]; if (sband && idx >= sband->n_channels) { idx -= sband->n_channels; @@ -765,7 +767,7 @@ survey->channel = chan; survey->filled = 0x0; - if (chan == chandef->chan) + if (chandef && chan == chandef->chan) survey->filled = SURVEY_INFO_IN_USE; ret = qtnf_cmd_get_chan_stats(mac, chan->center_freq, survey); @@ -778,7 +780,7 @@ static int qtnf_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, - struct cfg80211_chan_def *chandef) + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct net_device *ndev = wdev->netdev; struct qtnf_vif *vif; --- linux-5.19.0.orig/drivers/net/wireless/quantenna/qtnfmac/commands.c +++ linux-5.19.0/drivers/net/wireless/quantenna/qtnfmac/commands.c @@ -2005,7 +2005,7 @@ dwell_active = scan_req->duration; dwell_passive = scan_req->duration; } else if (wdev->iftype == NL80211_IFTYPE_STATION && - wdev->current_bss) { + wdev->connected) { /* let device select dwell based on traffic conditions */ dwell_active = QTNF_SCAN_TIME_AUTO; dwell_passive = QTNF_SCAN_TIME_AUTO; --- linux-5.19.0.orig/drivers/net/wireless/quantenna/qtnfmac/event.c +++ linux-5.19.0/drivers/net/wireless/quantenna/qtnfmac/event.c @@ -189,7 +189,7 @@ vif->mac->macid, vif->vifid, join_info->bssid, chandef.chan->hw_value); - if (!vif->wdev.ssid_len) { + if (!vif->wdev.u.client.ssid_len) { pr_warn("VIF%u.%u: SSID unknown for BSS:%pM\n", vif->mac->macid, vif->vifid, join_info->bssid); @@ -197,7 +197,7 @@ goto done; } - ie = kzalloc(2 + vif->wdev.ssid_len, GFP_KERNEL); + ie = kzalloc(2 + vif->wdev.u.client.ssid_len, GFP_KERNEL); if (!ie) { pr_warn("VIF%u.%u: IE alloc failed for BSS:%pM\n", vif->mac->macid, vif->vifid, @@ -207,14 +207,15 @@ } ie[0] = WLAN_EID_SSID; - ie[1] = vif->wdev.ssid_len; - memcpy(ie + 2, vif->wdev.ssid, vif->wdev.ssid_len); + ie[1] = vif->wdev.u.client.ssid_len; + memcpy(ie + 2, vif->wdev.u.client.ssid, + vif->wdev.u.client.ssid_len); bss = cfg80211_inform_bss(wiphy, chandef.chan, CFG80211_BSS_FTYPE_UNKNOWN, join_info->bssid, 0, WLAN_CAPABILITY_ESS, 100, - ie, 2 + vif->wdev.ssid_len, + ie, 2 + vif->wdev.u.client.ssid_len, 0, GFP_KERNEL); if (!bss) { pr_warn("VIF%u.%u: can't connect to unknown BSS: %pM\n", @@ -470,14 +471,14 @@ continue; if (vif->wdev.iftype == NL80211_IFTYPE_STATION && - !vif->wdev.current_bss) + !vif->wdev.connected) continue; if (!vif->netdev) continue; mutex_lock(&vif->wdev.mtx); - cfg80211_ch_switch_notify(vif->netdev, &chandef); + cfg80211_ch_switch_notify(vif->netdev, &chandef, 0); mutex_unlock(&vif->wdev.mtx); } --- linux-5.19.0.orig/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ linux-5.19.0/drivers/net/wireless/ralink/rt2x00/rt2800lib.c @@ -4164,7 +4164,10 @@ rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain); rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain); rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain); - rt2800_bbp_write(rt2x00dev, 86, 0); + if (rt2x00_rt(rt2x00dev, RT6352)) + rt2800_bbp_write(rt2x00dev, 86, 0x38); + else + rt2800_bbp_write(rt2x00dev, 86, 0); } if (rf->channel <= 14) { @@ -4365,7 +4368,8 @@ reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain; rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg); - rt2800_iq_calibrate(rt2x00dev, rf->channel); + if (rt2x00_rt(rt2x00dev, RT5592)) + rt2800_iq_calibrate(rt2x00dev, rf->channel); } bbp = rt2800_bbp_read(rt2x00dev, 4); @@ -5644,7 +5648,8 @@ if (qual->vgc_level != vgc_level) { if (rt2x00_rt(rt2x00dev, RT3572) || rt2x00_rt(rt2x00dev, RT3593) || - rt2x00_rt(rt2x00dev, RT3883)) { + rt2x00_rt(rt2x00dev, RT3883) || + rt2x00_rt(rt2x00dev, RT6352)) { rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, vgc_level); } else if (rt2x00_rt(rt2x00dev, RT5592)) { @@ -5867,7 +5872,7 @@ rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404); } else if (rt2x00_rt(rt2x00dev, RT6352)) { rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000401); - rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0000); + rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x000C0001); rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000); rt2800_register_write(rt2x00dev, TX_ALC_VGA3, 0x00000000); rt2800_register_write(rt2x00dev, TX0_BB_GAIN_ATTEN, 0x0); @@ -6129,6 +6134,27 @@ reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, 125); rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); + } else if (rt2x00_is_soc(rt2x00dev)) { + struct clk *clk = clk_get_sys("bus", NULL); + int rate; + + if (IS_ERR(clk)) { + clk = clk_get_sys("cpu", NULL); + + if (IS_ERR(clk)) { + rate = 125; + } else { + rate = clk_get_rate(clk) / 3000000; + clk_put(clk); + } + } else { + rate = clk_get_rate(clk) / 1000000; + clk_put(clk); + } + + reg = rt2800_register_read(rt2x00dev, US_CYC_CNT); + rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, rate); + rt2800_register_write(rt2x00dev, US_CYC_CNT, reg); } reg = rt2800_register_read(rt2x00dev, HT_FBK_CFG0); --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +++ linux-5.19.0/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h @@ -1190,7 +1190,7 @@ u8 bw; } __packed ra_report; }; -}; +} __packed; struct rtl8xxxu_fileops; @@ -1425,7 +1425,7 @@ void (*set_tx_power) (struct rtl8xxxu_priv *priv, int channel, bool ht40); void (*update_rate_mask) (struct rtl8xxxu_priv *priv, - u32 ramask, u8 rateid, int sgi); + u32 ramask, u8 rateid, int sgi, int txbw_40mhz); void (*report_connect) (struct rtl8xxxu_priv *priv, u8 macid, bool connect); void (*fill_txdesc) (struct ieee80211_hw *hw, struct ieee80211_hdr *hdr, @@ -1511,9 +1511,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, u8 rateid, int sgi); + u32 ramask, u8 rateid, int sgi, int txbw_40mhz); void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv, - u32 ramask, u8 rateid, int sgi); + u32 ramask, u8 rateid, int sgi, int txbw_40mhz); void rtl8xxxu_gen1_report_connect(struct rtl8xxxu_priv *priv, u8 macid, bool connect); void rtl8xxxu_gen2_report_connect(struct rtl8xxxu_priv *priv, --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c @@ -1608,18 +1608,18 @@ { struct device *dev = &priv->udev->dev; struct ieee80211_hw *hw = priv->hw; - u32 val32, bonding; + u32 val32, bonding, sys_cfg; u16 val16; - val32 = rtl8xxxu_read32(priv, REG_SYS_CFG); - priv->chip_cut = (val32 & SYS_CFG_CHIP_VERSION_MASK) >> + sys_cfg = rtl8xxxu_read32(priv, REG_SYS_CFG); + priv->chip_cut = (sys_cfg & SYS_CFG_CHIP_VERSION_MASK) >> SYS_CFG_CHIP_VERSION_SHIFT; - if (val32 & SYS_CFG_TRP_VAUX_EN) { + if (sys_cfg & SYS_CFG_TRP_VAUX_EN) { dev_info(dev, "Unsupported test chip\n"); return -ENOTSUPP; } - if (val32 & SYS_CFG_BT_FUNC) { + if (sys_cfg & SYS_CFG_BT_FUNC) { if (priv->chip_cut >= 3) { sprintf(priv->chip_name, "8723BU"); priv->rtl_chip = RTL8723B; @@ -1641,7 +1641,7 @@ if (val32 & MULTI_GPS_FUNC_EN) priv->has_gps = 1; priv->is_multi_func = 1; - } else if (val32 & SYS_CFG_TYPE_ID) { + } else if (sys_cfg & SYS_CFG_TYPE_ID) { bonding = rtl8xxxu_read32(priv, REG_HPON_FSM); bonding &= HPON_FSM_BONDING_MASK; if (priv->fops->tx_desc_size == @@ -1692,7 +1692,7 @@ case RTL8188E: case RTL8192E: case RTL8723B: - switch (val32 & SYS_CFG_VENDOR_EXT_MASK) { + switch (sys_cfg & SYS_CFG_VENDOR_EXT_MASK) { case SYS_CFG_VENDOR_ID_TSMC: sprintf(priv->chip_vendor, "TSMC"); break; @@ -1709,7 +1709,7 @@ } break; default: - if (val32 & SYS_CFG_VENDOR_ID) { + if (sys_cfg & SYS_CFG_VENDOR_ID) { sprintf(priv->chip_vendor, "UMC"); priv->vendor_umc = 1; } else { @@ -1878,13 +1878,6 @@ /* We have 8 bits to indicate validity */ map_addr = offset * 8; - if (map_addr >= EFUSE_MAP_LEN) { - dev_warn(dev, "%s: Illegal map_addr (%04x), " - "efuse corrupt!\n", - __func__, map_addr); - ret = -EINVAL; - goto exit; - } for (i = 0; i < EFUSE_MAX_WORD_UNIT; i++) { /* Check word enable condition in the section */ if (word_mask & BIT(i)) { @@ -1895,6 +1888,13 @@ ret = rtl8xxxu_read_efuse8(priv, efuse_addr++, &val8); if (ret) goto exit; + if (map_addr >= EFUSE_MAP_LEN - 1) { + dev_warn(dev, "%s: Illegal map_addr (%04x), " + "efuse corrupt!\n", + __func__, map_addr); + ret = -EINVAL; + goto exit; + } priv->efuse_wifi.raw[map_addr++] = val8; ret = rtl8xxxu_read_efuse8(priv, efuse_addr++, &val8); @@ -2929,12 +2929,12 @@ } if (!(simubitmap & 0x30) && priv->tx_paths > 1) { - /* path B RX OK */ + /* path B TX OK */ for (i = 4; i < 6; i++) result[3][i] = result[c1][i]; } - if (!(simubitmap & 0x30) && priv->tx_paths > 1) { + if (!(simubitmap & 0xc0) && priv->tx_paths > 1) { /* path B RX OK */ for (i = 6; i < 8; i++) result[3][i] = result[c1][i]; @@ -4320,7 +4320,7 @@ } void rtl8xxxu_update_rate_mask(struct rtl8xxxu_priv *priv, - u32 ramask, u8 rateid, int sgi) + u32 ramask, u8 rateid, int sgi, int txbw_40mhz) { struct h2c_cmd h2c; @@ -4340,10 +4340,15 @@ } void rtl8xxxu_gen2_update_rate_mask(struct rtl8xxxu_priv *priv, - u32 ramask, u8 rateid, int sgi) + u32 ramask, u8 rateid, int sgi, int txbw_40mhz) { struct h2c_cmd h2c; - u8 bw = RTL8XXXU_CHANNEL_WIDTH_20; + u8 bw; + + if (txbw_40mhz) + bw = RTL8XXXU_CHANNEL_WIDTH_40; + else + bw = RTL8XXXU_CHANNEL_WIDTH_20; memset(&h2c, 0, sizeof(struct h2c_cmd)); @@ -4353,15 +4358,14 @@ h2c.b_macid_cfg.ramask2 = (ramask >> 16) & 0xff; h2c.b_macid_cfg.ramask3 = (ramask >> 24) & 0xff; - h2c.ramask.arg = 0x80; h2c.b_macid_cfg.data1 = rateid; if (sgi) h2c.b_macid_cfg.data1 |= BIT(7); h2c.b_macid_cfg.data2 = bw; - dev_dbg(&priv->udev->dev, "%s: rate mask %08x, arg %02x, size %zi\n", - __func__, ramask, h2c.ramask.arg, sizeof(h2c.b_macid_cfg)); + dev_dbg(&priv->udev->dev, "%s: rate mask %08x, rateid %02x, sgi %d, size %zi\n", + __func__, ramask, rateid, sgi, sizeof(h2c.b_macid_cfg)); rtl8xxxu_gen2_h2c_cmd(priv, &h2c, sizeof(h2c.b_macid_cfg)); } @@ -4556,6 +4560,53 @@ return network_type; } +static void rtl8xxxu_set_aifs(struct rtl8xxxu_priv *priv, u8 slot_time) +{ + u32 reg_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, + }; + u32 val32; + u16 wireless_mode = 0; + u8 aifs, aifsn, sifs; + int i; + + if (priv->vif) { + struct ieee80211_sta *sta; + + rcu_read_lock(); + sta = ieee80211_find_sta(priv->vif, priv->vif->bss_conf.bssid); + if (sta) + wireless_mode = rtl8xxxu_wireless_mode(priv->hw, sta); + rcu_read_unlock(); + } + + if (priv->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ || + (wireless_mode & WIRELESS_MODE_N_24G)) + sifs = 16; + else + sifs = 10; + + for (i = 0; i < IEEE80211_NUM_ACS; i++) { + val32 = rtl8xxxu_read32(priv, reg_edca_param[i]); + + /* It was set in conf_tx. */ + aifsn = val32 & 0xff; + + /* aifsn not set yet or already fixed */ + if (aifsn < 2 || aifsn > 15) + continue; + + aifs = aifsn * slot_time + sifs; + + val32 &= ~0xff; + val32 |= aifs; + rtl8xxxu_write32(priv, reg_edca_param[i], val32); + } +} + static void rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct ieee80211_bss_conf *bss_conf, u32 changed) @@ -4603,7 +4654,6 @@ if (sta->deflink.ht_cap.cap & (IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20)) sgi = 1; - rcu_read_unlock(); highest_rate = fls(ramask) - 1; if (highest_rate < DESC_RATE_MCS0) { @@ -4622,8 +4672,13 @@ RATE_INFO_FLAGS_SHORT_GI; } - rarpt->txrate.bw |= RATE_INFO_BW_20; + if (rtl8xxxu_ht40_2g && + (sta->deflink.ht_cap.cap & IEEE80211_HT_CAP_SUP_WIDTH_20_40)) + rarpt->txrate.bw = RATE_INFO_BW_40; + else + rarpt->txrate.bw = RATE_INFO_BW_20; } + rcu_read_unlock(); bit_rate = cfg80211_calculate_bitrate(&rarpt->txrate); rarpt->bit_rate = bit_rate; rarpt->desc_rate = highest_rate; @@ -4631,7 +4686,7 @@ priv->vif = vif; priv->rssi_level = RTL8XXXU_RATR_STA_INIT; - priv->fops->update_rate_mask(priv, ramask, 0, sgi); + priv->fops->update_rate_mask(priv, ramask, 0, sgi, rarpt->txrate.bw == RATE_INFO_BW_40); rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff); @@ -4671,6 +4726,8 @@ else val8 = 20; rtl8xxxu_write8(priv, REG_SLOT, val8); + + rtl8xxxu_set_aifs(priv, val8); } if (changed & BSS_CHANGED_BSSID) { @@ -5062,6 +5119,8 @@ if (control && control->sta) sta = control->sta; + queue = rtl8xxxu_queue_select(hw, skb); + tx_desc = skb_push(skb, tx_desc_size); memset(tx_desc, 0, tx_desc_size); @@ -5074,7 +5133,6 @@ is_broadcast_ether_addr(ieee80211_get_DA(hdr))) tx_desc->txdw0 |= TXDESC_BROADMULTICAST; - queue = rtl8xxxu_queue_select(hw, skb); tx_desc->txdw1 = cpu_to_le32(queue << TXDESC_QUEUE_SHIFT); if (tx_info->control.hw_key) { @@ -5517,7 +5575,6 @@ rarpt->txrate.flags = 0; rate = c2h->ra_report.rate; sgi = c2h->ra_report.sgi; - bw = c2h->ra_report.bw; if (rate < DESC_RATE_MCS0) { rarpt->txrate.legacy = @@ -5534,8 +5591,13 @@ RATE_INFO_FLAGS_SHORT_GI; } - if (bw == RATE_INFO_BW_20) - rarpt->txrate.bw |= RATE_INFO_BW_20; + if (skb->len >= offsetofend(typeof(*c2h), ra_report.bw)) { + if (c2h->ra_report.bw == RTL8XXXU_CHANNEL_WIDTH_40) + bw = RATE_INFO_BW_40; + else + bw = RATE_INFO_BW_20; + rarpt->txrate.bw = bw; + } } bit_rate = cfg80211_calculate_bitrate(&rarpt->txrate); rarpt->bit_rate = bit_rate; @@ -6343,7 +6405,7 @@ } priv->rssi_level = rssi_level; - priv->fops->update_rate_mask(priv, rate_bitmap, ratr_idx, sgi); + priv->fops->update_rate_mask(priv, rate_bitmap, ratr_idx, sgi, txbw_40mhz); } } --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtlwifi/debug.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtlwifi/debug.c @@ -329,8 +329,8 @@ tmp_len = (count > sizeof(tmp) - 1 ? sizeof(tmp) - 1 : count); - if (!buffer || copy_from_user(tmp, buffer, tmp_len)) - return count; + if (copy_from_user(tmp, buffer, tmp_len)) + return -EFAULT; tmp[tmp_len] = '\0'; @@ -340,8 +340,8 @@ &h2c_data[4], &h2c_data[5], &h2c_data[6], &h2c_data[7]); - if (h2c_len <= 0) - return count; + if (h2c_len == 0) + return -EINVAL; for (i = 0; i < h2c_len; i++) h2c_data_packed[i] = (u8)h2c_data[i]; --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c @@ -2386,11 +2386,10 @@ rtl_dbg(rtlpriv, COMP_SCAN, DBG_LOUD, "Just Read IQK Matrix reg for channel:%d....\n", channel); - _rtl92d_phy_patha_fill_iqk_matrix(hw, true, - rtlphy->iqk_matrix[ - indexforchannel].value, 0, - (rtlphy->iqk_matrix[ - indexforchannel].value[0][2] == 0)); + if (rtlphy->iqk_matrix[indexforchannel].value[0][0] != 0) + _rtl92d_phy_patha_fill_iqk_matrix(hw, true, + rtlphy->iqk_matrix[indexforchannel].value, 0, + rtlphy->iqk_matrix[indexforchannel].value[0][2] == 0); if (IS_92D_SINGLEPHY(rtlhal->version)) { if ((rtlphy->iqk_matrix[ indexforchannel].value[0][4] != 0) --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw88/main.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw88/main.c @@ -1984,6 +1984,10 @@ timer_setup(&rtwdev->tx_report.purge_timer, rtw_tx_report_purge_timer, 0); rtwdev->tx_wq = alloc_workqueue("rtw_tx_wq", WQ_UNBOUND | WQ_HIGHPRI, 0); + if (!rtwdev->tx_wq) { + rtw_warn(rtwdev, "alloc_workqueue rtw_tx_wq failed\n"); + return -ENOMEM; + } INIT_DELAYED_WORK(&rtwdev->watch_dog_work, rtw_watch_dog_work); INIT_DELAYED_WORK(&coex->bt_relink_work, rtw_coex_bt_relink_work); @@ -2033,7 +2037,7 @@ ret = rtw_load_firmware(rtwdev, RTW_NORMAL_FW); if (ret) { rtw_warn(rtwdev, "no firmware loaded\n"); - return ret; + goto out; } if (chip->wow_fw_name) { @@ -2043,11 +2047,15 @@ wait_for_completion(&rtwdev->fw.completion); if (rtwdev->fw.firmware) release_firmware(rtwdev->fw.firmware); - return ret; + goto out; } } return 0; + +out: + destroy_workqueue(rtwdev->tx_wq); + return ret; } EXPORT_SYMBOL(rtw_core_init); --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw88/pci.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw88/pci.c @@ -1785,7 +1785,7 @@ } /* Disable PCIe ASPM L1 while doing NAPI poll for 8821CE */ - if (rtwdev->chip->id == RTW_CHIP_TYPE_8821C && bridge->vendor == PCI_VENDOR_ID_INTEL) + if (pdev->device == 0xc821 && bridge->vendor == PCI_VENDOR_ID_INTEL) rtwpci->rx_no_aspm = true; rtw_pci_phy_cfg(rtwdev); --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/core.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/core.c @@ -860,6 +860,7 @@ rtw89_debug(rtwdev, RTW89_DBG_FW, "ignore h2c due to power is off with firmware state=%d\n", test_bit(RTW89_FLAG_FW_RDY, rtwdev->flags)); + dev_kfree_skb(skb); return 0; } @@ -2352,7 +2353,7 @@ } /* update cam aid mac_id net_type */ - rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); + ret = rtw89_fw_h2c_cam(rtwdev, rtwvif, rtwsta, NULL); if (ret) { rtw89_warn(rtwdev, "failed to send h2c cam\n"); return ret; --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/fw.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/fw.c @@ -2288,6 +2288,7 @@ { struct rtw89_vif *rtwvif = (struct rtw89_vif *)vif->drv_priv; struct cfg80211_scan_request *req = &scan_req->req; + u32 rx_fltr = rtwdev->hal.rx_fltr; u8 mac_addr[ETH_ALEN]; rtwdev->scan_info.scanning_vif = vif; @@ -2302,13 +2303,13 @@ ether_addr_copy(mac_addr, vif->addr); rtw89_core_scan_start(rtwdev, rtwvif, mac_addr, true); - rtwdev->hal.rx_fltr &= ~B_AX_A_BCN_CHK_EN; - rtwdev->hal.rx_fltr &= ~B_AX_A_BC; - rtwdev->hal.rx_fltr &= ~B_AX_A_A1_MATCH; + rx_fltr &= ~B_AX_A_BCN_CHK_EN; + rx_fltr &= ~B_AX_A_BC; + rx_fltr &= ~B_AX_A_A1_MATCH; rtw89_write32_mask(rtwdev, rtw89_mac_reg_by_idx(R_AX_RX_FLTR_OPT, RTW89_MAC_0), B_AX_RX_FLTR_CFG_MASK, - rtwdev->hal.rx_fltr); + rx_fltr); } void rtw89_hw_scan_complete(struct rtw89_dev *rtwdev, struct ieee80211_vif *vif, @@ -2322,9 +2323,6 @@ if (!vif) return; - rtwdev->hal.rx_fltr |= B_AX_A_BCN_CHK_EN; - rtwdev->hal.rx_fltr |= B_AX_A_BC; - rtwdev->hal.rx_fltr |= B_AX_A_A1_MATCH; rtw89_write32_mask(rtwdev, rtw89_mac_reg_by_idx(R_AX_RX_FLTR_OPT, RTW89_MAC_0), B_AX_RX_FLTR_CFG_MASK, --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/mac.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/mac.c @@ -1387,10 +1387,8 @@ #define INVALID_QT_WCPU U16_MAX #define SET_QUOTA_VAL(_min_x, _max_x, _module, _idx) \ do { \ - val = ((_min_x) & \ - B_AX_ ## _module ## _MIN_SIZE_MASK) | \ - (((_max_x) << 16) & \ - B_AX_ ## _module ## _MAX_SIZE_MASK); \ + val = u32_encode_bits(_min_x, B_AX_ ## _module ## _MIN_SIZE_MASK) | \ + u32_encode_bits(_max_x, B_AX_ ## _module ## _MAX_SIZE_MASK); \ rtw89_write32(rtwdev, \ R_AX_ ## _module ## _QTA ## _idx ## _CFG, \ val); \ --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/pci.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/pci.c @@ -756,7 +756,8 @@ enable_intr: spin_lock_irqsave(&rtwpci->irq_lock, flags); - rtw89_chip_enable_intr(rtwdev, rtwpci); + if (likely(rtwpci->running)) + rtw89_chip_enable_intr(rtwdev, rtwpci); spin_unlock_irqrestore(&rtwpci->irq_lock, flags); return IRQ_HANDLED; } @@ -921,10 +922,12 @@ { struct rtw89_pci *rtwpci = (struct rtw89_pci *)rtwdev->priv; struct rtw89_pci_tx_ring *tx_ring = &rtwpci->tx_rings[txch]; + struct rtw89_pci_tx_wd_ring *wd_ring = &tx_ring->wd_ring; u32 cnt; spin_lock_bh(&rtwpci->trx_lock); cnt = rtw89_pci_get_avail_txbd_num(tx_ring); + cnt = min(cnt, wd_ring->curr_num); spin_unlock_bh(&rtwpci->trx_lock); return cnt; --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/phy.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/phy.c @@ -3019,7 +3019,7 @@ static bool rtw89_physts_ie_page_valid(enum rtw89_phy_status_bitmap *ie_page) { - if (*ie_page > RTW89_PHYSTS_BITMAP_NUM || + if (*ie_page >= RTW89_PHYSTS_BITMAP_NUM || *ie_page == RTW89_RSVD_9) return false; else if (*ie_page > RTW89_RSVD_9) --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/rtw8852a_rfk.c @@ -2330,8 +2330,8 @@ val2_q = abs(sign_extend32(val2_q, 11)); rtw89_debug(rtwdev, RTW89_DBG_RFK, "[DPK] PAS_delta = 0x%x\n", - (val1_i * val1_i + val1_q * val1_q) / - (val2_i * val2_i + val2_q * val2_q)); + phy_div(val1_i * val1_i + val1_q * val1_q, + val2_i * val2_i + val2_q * val2_q)); } else { for (i = 0; i < 32; i++) { --- linux-5.19.0.orig/drivers/net/wireless/realtek/rtw89/ser.c +++ linux-5.19.0/drivers/net/wireless/realtek/rtw89/ser.c @@ -152,7 +152,10 @@ rtw89_debug(rtwdev, RTW89_DBG_SER, "ser: %s receive %s\n", ser_st_name(ser), ser_ev_name(ser, evt)); + mutex_lock(&rtwdev->mutex); rtw89_leave_lps(rtwdev); + mutex_unlock(&rtwdev->mutex); + ser->st_tbl[ser->state].st_func(ser, evt); } --- linux-5.19.0.orig/drivers/net/wireless/rndis_wlan.c +++ linux-5.19.0/drivers/net/wireless/rndis_wlan.c @@ -694,8 +694,8 @@ struct rndis_query *get; struct rndis_query_c *get_c; } u; - int ret, buflen; - int resplen, respoffs, copylen; + int ret; + size_t buflen, resplen, respoffs, copylen; buflen = *len + sizeof(*u.get); if (buflen < CONTROL_BUFFER_SIZE) @@ -730,22 +730,15 @@ if (respoffs > buflen) { /* Device returned data offset outside buffer, error. */ - netdev_dbg(dev->net, "%s(%s): received invalid " - "data offset: %d > %d\n", __func__, - oid_to_string(oid), respoffs, buflen); + netdev_dbg(dev->net, + "%s(%s): received invalid data offset: %zu > %zu\n", + __func__, oid_to_string(oid), respoffs, buflen); ret = -EINVAL; goto exit_unlock; } - if ((resplen + respoffs) > buflen) { - /* Device would have returned more data if buffer would - * have been big enough. Copy just the bits that we got. - */ - copylen = buflen - respoffs; - } else { - copylen = resplen; - } + copylen = min(resplen, buflen - respoffs); if (copylen > *len) copylen = *len; --- linux-5.19.0.orig/drivers/net/wireless/rsi/rsi_91x_core.c +++ linux-5.19.0/drivers/net/wireless/rsi/rsi_91x_core.c @@ -465,7 +465,9 @@ tid, 0); } } - if (skb->protocol == cpu_to_be16(ETH_P_PAE)) { + + if (IEEE80211_SKB_CB(skb)->control.flags & + IEEE80211_TX_CTRL_PORT_CTRL_PROTO) { q_num = MGMT_SOFT_Q; skb->priority = q_num; } --- linux-5.19.0.orig/drivers/net/wireless/rsi/rsi_91x_hal.c +++ linux-5.19.0/drivers/net/wireless/rsi/rsi_91x_hal.c @@ -162,12 +162,16 @@ u8 header_size; u8 vap_id = 0; u8 dword_align_bytes; + bool tx_eapol; u16 seq_num; info = IEEE80211_SKB_CB(skb); vif = info->control.vif; tx_params = (struct skb_info *)info->driver_data; + tx_eapol = IEEE80211_SKB_CB(skb)->control.flags & + IEEE80211_TX_CTRL_PORT_CTRL_PROTO; + header_size = FRAME_DESC_SZ + sizeof(struct rsi_xtended_desc); if (header_size > skb_headroom(skb)) { rsi_dbg(ERR_ZONE, "%s: Unable to send pkt\n", __func__); @@ -231,7 +235,7 @@ } } - if (skb->protocol == cpu_to_be16(ETH_P_PAE)) { + if (tx_eapol) { rsi_dbg(INFO_ZONE, "*** Tx EAPOL ***\n"); data_desc->frame_info = cpu_to_le16(RATE_INFO_ENABLE); --- linux-5.19.0.orig/drivers/net/wireless/silabs/wfx/main.c +++ linux-5.19.0/drivers/net/wireless/silabs/wfx/main.c @@ -181,7 +181,7 @@ while (len > 0) { chunk_type = get_unaligned_le16(buf + 0); chunk_len = get_unaligned_le16(buf + 2); - if (chunk_len > len) { + if (chunk_len < 4 || chunk_len > len) { dev_err(wdev->dev, "PDS:%d: corrupted file\n", chunk_num); return -EINVAL; } --- linux-5.19.0.orig/drivers/net/wireless/st/cw1200/queue.c +++ linux-5.19.0/drivers/net/wireless/st/cw1200/queue.c @@ -91,23 +91,25 @@ bool unlock) { struct cw1200_queue_stats *stats = queue->stats; - struct cw1200_queue_item *item = NULL, *tmp; + struct cw1200_queue_item *item = NULL, *iter, *tmp; bool wakeup_stats = false; - list_for_each_entry_safe(item, tmp, &queue->queue, head) { - if (time_is_after_jiffies(item->queue_timestamp + queue->ttl)) + list_for_each_entry_safe(iter, tmp, &queue->queue, head) { + if (time_is_after_jiffies(iter->queue_timestamp + queue->ttl)) { + item = iter; break; + } --queue->num_queued; - --queue->link_map_cache[item->txpriv.link_id]; + --queue->link_map_cache[iter->txpriv.link_id]; spin_lock_bh(&stats->lock); --stats->num_queued; - if (!--stats->link_map_cache[item->txpriv.link_id]) + if (!--stats->link_map_cache[iter->txpriv.link_id]) wakeup_stats = true; spin_unlock_bh(&stats->lock); cw1200_debug_tx_ttl(stats->priv); - cw1200_queue_register_post_gc(head, item); - item->skb = NULL; - list_move_tail(&item->head, &queue->free_pool); + cw1200_queue_register_post_gc(head, iter); + iter->skb = NULL; + list_move_tail(&iter->head, &queue->free_pool); } if (wakeup_stats) --- linux-5.19.0.orig/drivers/net/wireless/ti/wlcore/main.c +++ linux-5.19.0/drivers/net/wireless/ti/wlcore/main.c @@ -4675,7 +4675,7 @@ struct ieee80211_vif *vif = wl12xx_wlvif_to_vif(wlvif); rcu_read_lock(); - if (rcu_access_pointer(vif->chanctx_conf) != ctx) { + if (rcu_access_pointer(vif->bss_conf.chanctx_conf) != ctx) { rcu_read_unlock(); continue; } --- linux-5.19.0.orig/drivers/net/wwan/Kconfig +++ linux-5.19.0/drivers/net/wwan/Kconfig @@ -94,7 +94,7 @@ config IOSM tristate "IOSM Driver for Intel M.2 WWAN Device" - depends on INTEL_IOMMU + depends on PCI select NET_DEVLINK select RELAY if WWAN_DEBUGFS help --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_coredump.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_coredump.c @@ -2,6 +2,7 @@ /* * Copyright (C) 2020-2021 Intel Corporation. */ +#include #include "iosm_ipc_coredump.h" --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_devlink.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_devlink.c @@ -2,6 +2,7 @@ /* * Copyright (C) 2020-2021 Intel Corporation. */ +#include #include "iosm_ipc_chnl_cfg.h" #include "iosm_ipc_coredump.h" --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_imem_ops.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_imem_ops.c @@ -91,6 +91,14 @@ } ipc_chnl_cfg_get(&chnl_cfg, ipc_imem->nr_of_channels); + + if (ipc_imem->mmio->mux_protocol == MUX_AGGREGATION && + ipc_imem->nr_of_channels == IPC_MEM_IP_CHL_ID_0) { + chnl_cfg.ul_nr_of_entries = IPC_MEM_MAX_TDS_MUX_AGGR_UL; + chnl_cfg.dl_nr_of_entries = IPC_MEM_MAX_TDS_MUX_AGGR_DL; + chnl_cfg.dl_buf_size = IPC_MEM_MAX_ADB_BUF_SIZE; + } + ipc_imem_channel_init(ipc_imem, IPC_CTYPE_WWAN, chnl_cfg, IRQ_MOD_OFF); --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_mux.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_mux.c @@ -332,6 +332,7 @@ if (!ipc_mux->ul_adb.pp_qlt[i]) { for (j = i - 1; j >= 0; j--) kfree(ipc_mux->ul_adb.pp_qlt[j]); + kfree(ipc_mux); return NULL; } } --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_mux.h +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_mux.h @@ -10,6 +10,7 @@ #define IPC_MEM_MAX_UL_DG_ENTRIES 100 #define IPC_MEM_MAX_TDS_MUX_AGGR_UL 60 +#define IPC_MEM_MAX_TDS_MUX_AGGR_DL 60 #define IPC_MEM_MAX_ADB_BUF_SIZE (16 * 1024) #define IPC_MEM_MAX_UL_ADB_BUF_SIZE IPC_MEM_MAX_ADB_BUF_SIZE --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_mux_codec.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_mux_codec.c @@ -365,7 +365,8 @@ /* Pass the DL packet to the netif layer. */ static int ipc_mux_net_receive(struct iosm_mux *ipc_mux, int if_id, struct iosm_wwan *wwan, u32 offset, - u8 service_class, struct sk_buff *skb) + u8 service_class, struct sk_buff *skb, + u32 pkt_len) { struct sk_buff *dest_skb = skb_clone(skb, GFP_ATOMIC); @@ -373,7 +374,7 @@ return -ENOMEM; skb_pull(dest_skb, offset); - skb_set_tail_pointer(dest_skb, dest_skb->len); + skb_trim(dest_skb, pkt_len); /* Pass the packet to the netif layer. */ dest_skb->priority = service_class; @@ -429,7 +430,7 @@ static void ipc_mux_dl_adgh_decode(struct iosm_mux *ipc_mux, struct sk_buff *skb) { - u32 pad_len, packet_offset; + u32 pad_len, packet_offset, adgh_len; struct iosm_wwan *wwan; struct mux_adgh *adgh; u8 *block = skb->data; @@ -470,10 +471,12 @@ packet_offset = sizeof(*adgh) + pad_len; if_id += ipc_mux->wwan_q_offset; + adgh_len = le16_to_cpu(adgh->length); /* Pass the packet to the netif layer */ rc = ipc_mux_net_receive(ipc_mux, if_id, wwan, packet_offset, - adgh->service_class, skb); + adgh->service_class, skb, + adgh_len - packet_offset); if (rc) { dev_err(ipc_mux->dev, "mux adgh decoding error"); return; @@ -547,7 +550,7 @@ int if_id, int nr_of_dg) { u32 dl_head_pad_len = ipc_mux->session[if_id].dl_head_pad_len; - u32 packet_offset, i, rc; + u32 packet_offset, i, rc, dg_len; for (i = 0; i < nr_of_dg; i++, dg++) { if (le32_to_cpu(dg->datagram_index) @@ -562,11 +565,12 @@ packet_offset = le32_to_cpu(dg->datagram_index) + dl_head_pad_len; + dg_len = le16_to_cpu(dg->datagram_length); /* Pass the packet to the netif layer. */ rc = ipc_mux_net_receive(ipc_mux, if_id, ipc_mux->wwan, packet_offset, - dg->service_class, - skb); + dg->service_class, skb, + dg_len - dl_head_pad_len); if (rc) goto dg_error; } @@ -1207,10 +1211,9 @@ qlth_n_ql_size, ul_list); ipc_mux_ul_adb_finish(ipc_mux); if (ipc_mux_ul_adb_allocate(ipc_mux, adb, &ipc_mux->size_needed, - IOSM_AGGR_MUX_SIG_ADBH)) { - dev_kfree_skb(src_skb); + IOSM_AGGR_MUX_SIG_ADBH)) return -ENOMEM; - } + ipc_mux->size_needed = le32_to_cpu(adb->adbh->block_length); ipc_mux->size_needed += offsetof(struct mux_adth, dg); @@ -1471,8 +1474,7 @@ ipc_mux->ul_data_pend_bytes); /* Reset the skb settings. */ - skb->tail = 0; - skb->len = 0; + skb_trim(skb, 0); /* Add the consumed ADB to the free list. */ skb_queue_tail((&ipc_mux->ul_adb.free_list), skb); --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_pcie.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_pcie.c @@ -232,6 +232,7 @@ */ static enum ipc_pcie_sleep_state ipc_pcie_read_bios_cfg(struct device *dev) { + enum ipc_pcie_sleep_state sleep_state = IPC_PCIE_D0L12; union acpi_object *object; acpi_handle handle_acpi; @@ -242,18 +243,23 @@ } object = acpi_evaluate_dsm(handle_acpi, &wwan_acpi_guid, 0, 3, NULL); + if (!object) + goto default_ret; + + if (object->integer.value == 3) + sleep_state = IPC_PCIE_D3L2; - if (object && object->integer.value == 3) - return IPC_PCIE_D3L2; + ACPI_FREE(object); default_ret: - return IPC_PCIE_D0L12; + return sleep_state; } static int ipc_pcie_probe(struct pci_dev *pci, const struct pci_device_id *pci_id) { struct iosm_pcie *ipc_pcie = kzalloc(sizeof(*ipc_pcie), GFP_KERNEL); + int ret; pr_debug("Probing device 0x%X from the vendor 0x%X", pci_id->device, pci_id->vendor); @@ -286,6 +292,12 @@ goto pci_enable_fail; } + ret = dma_set_mask(ipc_pcie->dev, DMA_BIT_MASK(64)); + if (ret) { + dev_err(ipc_pcie->dev, "Could not set PCI DMA mask: %d", ret); + return ret; + } + ipc_pcie_config_aspm(ipc_pcie); dev_dbg(ipc_pcie->dev, "PCIe device enabled."); @@ -341,6 +353,9 @@ ipc_imem_pm_s2idle_sleep(ipc_pcie->imem, true); + /* Let PCI core know this device should stay at D0 */ + pci_save_state(ipc_pcie->pci); + return 0; } --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_protocol.h +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_protocol.h @@ -122,7 +122,7 @@ struct iosm_imem *imem; struct ipc_rsp *rsp_ring[IPC_MEM_MSG_ENTRIES]; struct device *dev; - phys_addr_t phy_ap_shm; + dma_addr_t phy_ap_shm; u32 old_msg_tail; }; --- linux-5.19.0.orig/drivers/net/wwan/iosm/iosm_ipc_wwan.c +++ linux-5.19.0/drivers/net/wwan/iosm/iosm_ipc_wwan.c @@ -168,6 +168,7 @@ iosm_dev->max_mtu = ETH_MAX_MTU; iosm_dev->flags = IFF_POINTOPOINT | IFF_NOARP; + iosm_dev->needs_free_netdev = true; iosm_dev->netdev_ops = &ipc_inm_ops; } @@ -323,15 +324,16 @@ ipc_wwan->dev = dev; ipc_wwan->ipc_imem = ipc_imem; + mutex_init(&ipc_wwan->if_mutex); + /* WWAN core will create a netdev for the default IP MUX channel */ if (wwan_register_ops(ipc_wwan->dev, &iosm_wwan_ops, ipc_wwan, IP_MUX_SESSION_DEFAULT)) { + mutex_destroy(&ipc_wwan->if_mutex); kfree(ipc_wwan); return NULL; } - mutex_init(&ipc_wwan->if_mutex); - return ipc_wwan; } --- linux-5.19.0.orig/drivers/net/wwan/mhi_wwan_mbim.c +++ linux-5.19.0/drivers/net/wwan/mhi_wwan_mbim.c @@ -582,6 +582,7 @@ ndev->min_mtu = ETH_MIN_MTU; ndev->max_mtu = MHI_MAX_BUF_SZ - ndev->needed_headroom; ndev->tx_queue_len = 1000; + ndev->needs_free_netdev = true; } static const struct wwan_ops mhi_mbim_wwan_ops = { --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_hif_cldma.c +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_hif_cldma.c @@ -1064,13 +1064,18 @@ struct t7xx_cldma_hw *hw_info = &md_ctrl->hw_info; u32 phy_ao_base, phy_pd_base; - if (md_ctrl->hif_id != CLDMA_ID_MD) - return; - - phy_ao_base = CLDMA1_AO_BASE; - phy_pd_base = CLDMA1_PD_BASE; - hw_info->phy_interrupt_id = CLDMA1_INT; hw_info->hw_mode = MODE_BIT_64; + + if (md_ctrl->hif_id == CLDMA_ID_MD) { + phy_ao_base = CLDMA1_AO_BASE; + phy_pd_base = CLDMA1_PD_BASE; + hw_info->phy_interrupt_id = CLDMA1_INT; + } else { + phy_ao_base = CLDMA0_AO_BASE; + phy_pd_base = CLDMA0_PD_BASE; + hw_info->phy_interrupt_id = CLDMA0_INT; + } + hw_info->ap_ao_base = t7xx_pcie_addr_transfer(pbase->pcie_ext_reg_base, pbase->pcie_dev_reg_trsl_addr, phy_ao_base); hw_info->ap_pdn_base = t7xx_pcie_addr_transfer(pbase->pcie_ext_reg_base, --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_hif_cldma.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_hif_cldma.h @@ -34,7 +34,7 @@ /** * enum cldma_id - Identifiers for CLDMA HW units. * @CLDMA_ID_MD: Modem control channel. - * @CLDMA_ID_AP: Application Processor control channel (not used at the moment). + * @CLDMA_ID_AP: Application Processor control channel. * @CLDMA_NUM: Number of CLDMA HW units available. */ enum cldma_id { --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_mhccif.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_mhccif.h @@ -25,6 +25,7 @@ D2H_INT_EXCEPTION_CLEARQ_DONE | \ D2H_INT_EXCEPTION_ALLQ_RESET | \ D2H_INT_PORT_ENUM | \ + D2H_INT_ASYNC_AP_HK | \ D2H_INT_ASYNC_MD_HK) void t7xx_mhccif_mask_set(struct t7xx_pci_dev *t7xx_dev, u32 val); --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_modem_ops.c +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_modem_ops.c @@ -44,6 +44,7 @@ #include "t7xx_state_monitor.h" #define RT_ID_MD_PORT_ENUM 0 +#define RT_ID_AP_PORT_ENUM 1 /* Modem feature query identification code - "ICCC" */ #define MD_FEATURE_QUERY_ID 0x49434343 @@ -165,6 +166,8 @@ return -EFAULT; } + kfree(buffer.pointer); + #endif return 0; } @@ -296,6 +299,7 @@ } t7xx_cldma_exception(md->md_ctrl[CLDMA_ID_MD], stage); + t7xx_cldma_exception(md->md_ctrl[CLDMA_ID_AP], stage); if (stage == HIF_EX_INIT) t7xx_mhccif_h2d_swint_trigger(t7xx_dev, H2D_CH_EXCEPTION_ACK); @@ -424,7 +428,7 @@ if (ft_spt_st != MTK_FEATURE_MUST_BE_SUPPORTED) return -EINVAL; - if (i == RT_ID_MD_PORT_ENUM) + if (i == RT_ID_MD_PORT_ENUM || i == RT_ID_AP_PORT_ENUM) t7xx_port_enum_msg_handler(ctl->md, rt_feature->data); } @@ -454,12 +458,12 @@ return 0; } -static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_fsm_ctl *ctl, +static void t7xx_core_hk_handler(struct t7xx_modem *md, struct t7xx_sys_info *core_info, + struct t7xx_fsm_ctl *ctl, enum t7xx_fsm_event_state event_id, enum t7xx_fsm_event_state err_detect) { struct t7xx_fsm_event *event = NULL, *event_next; - struct t7xx_sys_info *core_info = &md->core_md; struct device *dev = &md->t7xx_dev->pdev->dev; unsigned long flags; int ret; @@ -529,19 +533,33 @@ t7xx_cldma_start(md->md_ctrl[CLDMA_ID_MD]); t7xx_fsm_broadcast_state(ctl, MD_STATE_WAITING_FOR_HS2); md->core_md.handshake_ongoing = true; - t7xx_core_hk_handler(md, ctl, FSM_EVENT_MD_HS2, FSM_EVENT_MD_HS2_EXIT); + t7xx_core_hk_handler(md, &md->core_md, ctl, FSM_EVENT_MD_HS2, FSM_EVENT_MD_HS2_EXIT); +} + +static void t7xx_ap_hk_wq(struct work_struct *work) +{ + struct t7xx_modem *md = container_of(work, struct t7xx_modem, ap_handshake_work); + struct t7xx_fsm_ctl *ctl = md->fsm_ctl; + + /* Clear the HS2 EXIT event appended in t7xx_core_reset(). */ + t7xx_fsm_clr_event(ctl, FSM_EVENT_AP_HS2_EXIT); + t7xx_cldma_stop(md->md_ctrl[CLDMA_ID_AP]); + t7xx_cldma_switch_cfg(md->md_ctrl[CLDMA_ID_AP]); + t7xx_cldma_start(md->md_ctrl[CLDMA_ID_AP]); + md->core_ap.handshake_ongoing = true; + t7xx_core_hk_handler(md, &md->core_ap, ctl, FSM_EVENT_AP_HS2, FSM_EVENT_AP_HS2_EXIT); } void t7xx_md_event_notify(struct t7xx_modem *md, enum md_event_id evt_id) { struct t7xx_fsm_ctl *ctl = md->fsm_ctl; - void __iomem *mhccif_base; unsigned int int_sta; unsigned long flags; switch (evt_id) { case FSM_PRE_START: - t7xx_mhccif_mask_clr(md->t7xx_dev, D2H_INT_PORT_ENUM); + t7xx_mhccif_mask_clr(md->t7xx_dev, D2H_INT_PORT_ENUM | D2H_INT_ASYNC_MD_HK | + D2H_INT_ASYNC_AP_HK); break; case FSM_START: @@ -554,16 +572,26 @@ ctl->exp_flg = true; md->exp_id &= ~D2H_INT_EXCEPTION_INIT; md->exp_id &= ~D2H_INT_ASYNC_MD_HK; + md->exp_id &= ~D2H_INT_ASYNC_AP_HK; } else if (ctl->exp_flg) { md->exp_id &= ~D2H_INT_ASYNC_MD_HK; - } else if (md->exp_id & D2H_INT_ASYNC_MD_HK) { - queue_work(md->handshake_wq, &md->handshake_work); - md->exp_id &= ~D2H_INT_ASYNC_MD_HK; - mhccif_base = md->t7xx_dev->base_addr.mhccif_rc_base; - iowrite32(D2H_INT_ASYNC_MD_HK, mhccif_base + REG_EP2RC_SW_INT_ACK); - t7xx_mhccif_mask_set(md->t7xx_dev, D2H_INT_ASYNC_MD_HK); + md->exp_id &= ~D2H_INT_ASYNC_AP_HK; } else { - t7xx_mhccif_mask_clr(md->t7xx_dev, D2H_INT_ASYNC_MD_HK); + void __iomem *mhccif_base = md->t7xx_dev->base_addr.mhccif_rc_base; + + if (md->exp_id & D2H_INT_ASYNC_MD_HK) { + queue_work(md->handshake_wq, &md->handshake_work); + md->exp_id &= ~D2H_INT_ASYNC_MD_HK; + iowrite32(D2H_INT_ASYNC_MD_HK, mhccif_base + REG_EP2RC_SW_INT_ACK); + t7xx_mhccif_mask_set(md->t7xx_dev, D2H_INT_ASYNC_MD_HK); + } + + if (md->exp_id & D2H_INT_ASYNC_AP_HK) { + queue_work(md->ap_handshake_wq, &md->ap_handshake_work); + md->exp_id &= ~D2H_INT_ASYNC_AP_HK; + iowrite32(D2H_INT_ASYNC_AP_HK, mhccif_base + REG_EP2RC_SW_INT_ACK); + t7xx_mhccif_mask_set(md->t7xx_dev, D2H_INT_ASYNC_AP_HK); + } } spin_unlock_irqrestore(&md->exp_lock, flags); @@ -576,6 +604,7 @@ case FSM_READY: t7xx_mhccif_mask_set(md->t7xx_dev, D2H_INT_ASYNC_MD_HK); + t7xx_mhccif_mask_set(md->t7xx_dev, D2H_INT_ASYNC_AP_HK); break; default: @@ -627,6 +656,19 @@ md->core_md.feature_set[RT_ID_MD_PORT_ENUM] &= ~FEATURE_MSK; md->core_md.feature_set[RT_ID_MD_PORT_ENUM] |= FIELD_PREP(FEATURE_MSK, MTK_FEATURE_MUST_BE_SUPPORTED); + + md->ap_handshake_wq = alloc_workqueue("%s", WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_HIGHPRI, + 0, "ap_hk_wq"); + if (!md->ap_handshake_wq) { + destroy_workqueue(md->handshake_wq); + return NULL; + } + + INIT_WORK(&md->ap_handshake_work, t7xx_ap_hk_wq); + md->core_ap.feature_set[RT_ID_AP_PORT_ENUM] &= ~FEATURE_MSK; + md->core_ap.feature_set[RT_ID_AP_PORT_ENUM] |= + FIELD_PREP(FEATURE_MSK, MTK_FEATURE_MUST_BE_SUPPORTED); + return md; } @@ -638,6 +680,7 @@ md->exp_id = 0; t7xx_fsm_reset(md); t7xx_cldma_reset(md->md_ctrl[CLDMA_ID_MD]); + t7xx_cldma_reset(md->md_ctrl[CLDMA_ID_AP]); t7xx_port_proxy_reset(md->port_prox); md->md_init_finish = true; return t7xx_core_reset(md); @@ -667,6 +710,10 @@ if (ret) goto err_destroy_hswq; + ret = t7xx_cldma_alloc(CLDMA_ID_AP, t7xx_dev); + if (ret) + goto err_destroy_hswq; + ret = t7xx_fsm_init(md); if (ret) goto err_destroy_hswq; @@ -679,12 +726,16 @@ if (ret) goto err_uninit_ccmni; - ret = t7xx_port_proxy_init(md); + ret = t7xx_cldma_init(md->md_ctrl[CLDMA_ID_AP]); if (ret) goto err_uninit_md_cldma; + ret = t7xx_port_proxy_init(md); + if (ret) + goto err_uninit_ap_cldma; + ret = t7xx_fsm_append_cmd(md->fsm_ctl, FSM_CMD_START, 0); - if (ret) /* fsm_uninit flushes cmd queue */ + if (ret) /* t7xx_fsm_uninit() flushes cmd queue */ goto err_uninit_proxy; t7xx_md_sys_sw_init(t7xx_dev); @@ -694,6 +745,9 @@ err_uninit_proxy: t7xx_port_proxy_uninit(md->port_prox); +err_uninit_ap_cldma: + t7xx_cldma_exit(md->md_ctrl[CLDMA_ID_AP]); + err_uninit_md_cldma: t7xx_cldma_exit(md->md_ctrl[CLDMA_ID_MD]); @@ -705,6 +759,7 @@ err_destroy_hswq: destroy_workqueue(md->handshake_wq); + destroy_workqueue(md->ap_handshake_wq); dev_err(&t7xx_dev->pdev->dev, "Modem init failed\n"); return ret; } @@ -720,8 +775,10 @@ t7xx_fsm_append_cmd(md->fsm_ctl, FSM_CMD_PRE_STOP, FSM_CMD_FLAG_WAIT_FOR_COMPLETION); t7xx_port_proxy_uninit(md->port_prox); + t7xx_cldma_exit(md->md_ctrl[CLDMA_ID_AP]); t7xx_cldma_exit(md->md_ctrl[CLDMA_ID_MD]); t7xx_ccmni_exit(t7xx_dev); t7xx_fsm_uninit(md); destroy_workqueue(md->handshake_wq); + destroy_workqueue(md->ap_handshake_wq); } --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_modem_ops.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_modem_ops.h @@ -66,10 +66,13 @@ struct cldma_ctrl *md_ctrl[CLDMA_NUM]; struct t7xx_pci_dev *t7xx_dev; struct t7xx_sys_info core_md; + struct t7xx_sys_info core_ap; bool md_init_finish; bool rgu_irq_asserted; struct workqueue_struct *handshake_wq; struct work_struct handshake_work; + struct workqueue_struct *ap_handshake_wq; + struct work_struct ap_handshake_work; struct t7xx_fsm_ctl *fsm_ctl; struct port_proxy *port_prox; unsigned int exp_id; --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_port.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_port.h @@ -36,9 +36,15 @@ /* Channel ID and Message ID definitions. * The channel number consists of peer_id(15:12) , channel_id(11:0) * peer_id: - * 0:reserved, 1: to sAP, 2: to MD + * 0:reserved, 1: to AP, 2: to MD */ enum port_ch { + /* to AP */ + PORT_CH_AP_CONTROL_RX = 0x1000, + PORT_CH_AP_CONTROL_TX = 0x1001, + PORT_CH_AP_LOG_RX = 0x1008, + PORT_CH_AP_LOG_TX = 0x1009, + /* to MD */ PORT_CH_CONTROL_RX = 0x2000, PORT_CH_CONTROL_TX = 0x2001, --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_port_ctrl_msg.c @@ -167,8 +167,12 @@ case CTL_ID_HS2_MSG: skb_pull(skb, sizeof(*ctrl_msg_h)); - if (port_conf->rx_ch == PORT_CH_CONTROL_RX) { - ret = t7xx_fsm_append_event(ctl, FSM_EVENT_MD_HS2, skb->data, + if (port_conf->rx_ch == PORT_CH_CONTROL_RX || + port_conf->rx_ch == PORT_CH_AP_CONTROL_RX) { + int event = port_conf->rx_ch == PORT_CH_CONTROL_RX ? + FSM_EVENT_MD_HS2 : FSM_EVENT_AP_HS2; + + ret = t7xx_fsm_append_event(ctl, event, skb->data, le32_to_cpu(ctrl_msg_h->data_length)); if (ret) dev_err(port->dev, "Failed to append Handshake 2 event"); --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_port_proxy.c +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_port_proxy.c @@ -77,6 +77,14 @@ .path_id = CLDMA_ID_MD, .ops = &ctl_port_ops, .name = "t7xx_ctrl", + }, { + .tx_ch = PORT_CH_AP_CONTROL_TX, + .rx_ch = PORT_CH_AP_CONTROL_RX, + .txq_index = Q_IDX_CTRL, + .rxq_index = Q_IDX_CTRL, + .path_id = CLDMA_ID_AP, + .ops = &ctl_port_ops, + .name = "t7xx_ap_ctrl", }, }; @@ -416,6 +424,9 @@ if (port_conf->tx_ch == PORT_CH_CONTROL_TX) md->core_md.ctl_port = port; + if (port_conf->tx_ch == PORT_CH_AP_CONTROL_TX) + md->core_ap.ctl_port = port; + port->t7xx_dev = md->t7xx_dev; port->dev = &md->t7xx_dev->pdev->dev; spin_lock_init(&port->port_update_lock); @@ -469,6 +480,7 @@ if (ret) return ret; + t7xx_cldma_set_recv_skb(md->md_ctrl[CLDMA_ID_AP], t7xx_port_proxy_recv_skb); t7xx_cldma_set_recv_skb(md->md_ctrl[CLDMA_ID_MD], t7xx_port_proxy_recv_skb); return 0; } --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_reg.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_reg.h @@ -56,7 +56,7 @@ #define D2H_INT_RESUME_ACK BIT(12) #define D2H_INT_SUSPEND_ACK_AP BIT(13) #define D2H_INT_RESUME_ACK_AP BIT(14) -#define D2H_INT_ASYNC_SAP_HK BIT(15) +#define D2H_INT_ASYNC_AP_HK BIT(15) #define D2H_INT_ASYNC_MD_HK BIT(16) /* Register base */ --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_state_monitor.c +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_state_monitor.c @@ -285,8 +285,9 @@ t7xx_fsm_broadcast_state(ctl, MD_STATE_WAITING_FOR_HS1); t7xx_md_event_notify(md, FSM_START); - wait_event_interruptible_timeout(ctl->async_hk_wq, md->core_md.ready || ctl->exp_flg, - HZ * 60); + wait_event_interruptible_timeout(ctl->async_hk_wq, + (md->core_md.ready && md->core_ap.ready) || + ctl->exp_flg, HZ * 60); dev = &md->t7xx_dev->pdev->dev; if (ctl->exp_flg) @@ -299,6 +300,13 @@ fsm_routine_exception(ctl, NULL, EXCEPTION_HS_TIMEOUT); return -ETIMEDOUT; + } else if (!md->core_ap.ready) { + dev_err(dev, "AP handshake timeout\n"); + if (md->core_ap.handshake_ongoing) + t7xx_fsm_append_event(ctl, FSM_EVENT_AP_HS2_EXIT, NULL, 0); + + fsm_routine_exception(ctl, NULL, EXCEPTION_HS_TIMEOUT); + return -ETIMEDOUT; } t7xx_pci_pm_init_late(md->t7xx_dev); @@ -335,6 +343,7 @@ return; } + t7xx_cldma_hif_hw_init(md->md_ctrl[CLDMA_ID_AP]); t7xx_cldma_hif_hw_init(md->md_ctrl[CLDMA_ID_MD]); fsm_finish_command(ctl, cmd, fsm_routine_starting(ctl)); } --- linux-5.19.0.orig/drivers/net/wwan/t7xx/t7xx_state_monitor.h +++ linux-5.19.0/drivers/net/wwan/t7xx/t7xx_state_monitor.h @@ -38,10 +38,12 @@ enum t7xx_fsm_event_state { FSM_EVENT_INVALID, FSM_EVENT_MD_HS2, + FSM_EVENT_AP_HS2, FSM_EVENT_MD_EX, FSM_EVENT_MD_EX_REC_OK, FSM_EVENT_MD_EX_PASS, FSM_EVENT_MD_HS2_EXIT, + FSM_EVENT_AP_HS2_EXIT, FSM_EVENT_MAX }; --- linux-5.19.0.orig/drivers/net/wwan/wwan_hwsim.c +++ linux-5.19.0/drivers/net/wwan/wwan_hwsim.c @@ -311,7 +311,7 @@ return ERR_PTR(err); err_free_dev: - kfree(dev); + put_device(&dev->dev); return ERR_PTR(err); } --- linux-5.19.0.orig/drivers/net/xen-netback/common.h +++ linux-5.19.0/drivers/net/xen-netback/common.h @@ -48,7 +48,6 @@ #include typedef unsigned int pending_ring_idx_t; -#define INVALID_PENDING_RING_IDX (~0U) struct pending_tx_info { struct xen_netif_tx_request req; /* tx request */ @@ -82,8 +81,6 @@ /* Discriminate from any valid pending_idx value. */ #define INVALID_PENDING_IDX 0xFFFF -#define MAX_BUFFER_OFFSET XEN_PAGE_SIZE - #define MAX_PENDING_REQS XEN_NETIF_TX_RING_SIZE /* The maximum number of frags is derived from the size of a grant (same @@ -367,11 +364,6 @@ int xenvif_xenbus_init(void); void xenvif_xenbus_fini(void); -int xenvif_schedulable(struct xenvif *vif); - -int xenvif_queue_stopped(struct xenvif_queue *queue); -void xenvif_wake_queue(struct xenvif_queue *queue); - /* (Un)Map communication rings. */ void xenvif_unmap_frontend_data_rings(struct xenvif_queue *queue); int xenvif_map_frontend_data_rings(struct xenvif_queue *queue, @@ -394,8 +386,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); +bool xenvif_rx_queue_tail(struct xenvif_queue *queue, struct sk_buff *skb); void xenvif_carrier_on(struct xenvif *vif); @@ -403,9 +394,6 @@ void xenvif_zerocopy_callback(struct sk_buff *skb, struct ubuf_info *ubuf, bool zerocopy_success); -/* Unmap a pending page and release it back to the guest */ -void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx); - static inline pending_ring_idx_t nr_pending_reqs(struct xenvif_queue *queue) { return MAX_PENDING_REQS - --- linux-5.19.0.orig/drivers/net/xen-netback/interface.c +++ linux-5.19.0/drivers/net/xen-netback/interface.c @@ -69,7 +69,7 @@ wake_up(&queue->dealloc_wq); } -int xenvif_schedulable(struct xenvif *vif) +static int xenvif_schedulable(struct xenvif *vif) { return netif_running(vif->dev) && test_bit(VIF_STATUS_CONNECTED, &vif->status) && @@ -177,20 +177,6 @@ return IRQ_HANDLED; } -int xenvif_queue_stopped(struct xenvif_queue *queue) -{ - struct net_device *dev = queue->vif->dev; - unsigned int id = queue->id; - return netif_tx_queue_stopped(netdev_get_tx_queue(dev, id)); -} - -void xenvif_wake_queue(struct xenvif_queue *queue) -{ - struct net_device *dev = queue->vif->dev; - unsigned int id = queue->id; - netif_tx_wake_queue(netdev_get_tx_queue(dev, id)); -} - static u16 xenvif_select_queue(struct net_device *dev, struct sk_buff *skb, struct net_device *sb_dev) { @@ -268,14 +254,16 @@ if (vif->hash.alg == XEN_NETIF_CTRL_HASH_ALGORITHM_NONE) skb_clear_hash(skb); - xenvif_rx_queue_tail(queue, skb); + if (!xenvif_rx_queue_tail(queue, skb)) + goto drop; + xenvif_kick_thread(queue); return NETDEV_TX_OK; drop: vif->dev->stats.tx_dropped++; - dev_kfree_skb(skb); + dev_kfree_skb_any(skb); return NETDEV_TX_OK; } --- linux-5.19.0.orig/drivers/net/xen-netback/netback.c +++ linux-5.19.0/drivers/net/xen-netback/netback.c @@ -112,6 +112,8 @@ s8 st); static void push_tx_responses(struct xenvif_queue *queue); +static void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx); + static inline int tx_work_todo(struct xenvif_queue *queue); static inline unsigned long idx_to_pfn(struct xenvif_queue *queue, @@ -330,10 +332,13 @@ struct xenvif_tx_cb { - u16 pending_idx; + u16 copy_pending_idx[XEN_NETBK_LEGACY_SLOTS_MAX + 1]; + u8 copy_count; }; #define XENVIF_TX_CB(skb) ((struct xenvif_tx_cb *)(skb)->cb) +#define copy_pending_idx(skb, i) (XENVIF_TX_CB(skb)->copy_pending_idx[i]) +#define copy_count(skb) (XENVIF_TX_CB(skb)->copy_count) static inline void xenvif_tx_create_map_op(struct xenvif_queue *queue, u16 pending_idx, @@ -368,31 +373,93 @@ return skb; } -static struct gnttab_map_grant_ref *xenvif_get_requests(struct xenvif_queue *queue, - struct sk_buff *skb, - struct xen_netif_tx_request *txp, - struct gnttab_map_grant_ref *gop, - unsigned int frag_overflow, - struct sk_buff *nskb) +static void xenvif_get_requests(struct xenvif_queue *queue, + struct sk_buff *skb, + struct xen_netif_tx_request *first, + struct xen_netif_tx_request *txfrags, + unsigned *copy_ops, + unsigned *map_ops, + unsigned int frag_overflow, + struct sk_buff *nskb, + unsigned int extra_count, + unsigned int data_len) { struct skb_shared_info *shinfo = skb_shinfo(skb); skb_frag_t *frags = shinfo->frags; - u16 pending_idx = XENVIF_TX_CB(skb)->pending_idx; - int start; + u16 pending_idx; pending_ring_idx_t index; unsigned int nr_slots; + struct gnttab_copy *cop = queue->tx_copy_ops + *copy_ops; + struct gnttab_map_grant_ref *gop = queue->tx_map_ops + *map_ops; + struct xen_netif_tx_request *txp = first; + + nr_slots = shinfo->nr_frags + 1; + + copy_count(skb) = 0; + + /* Create copy ops for exactly data_len bytes into the skb head. */ + __skb_put(skb, data_len); + while (data_len > 0) { + int amount = data_len > txp->size ? txp->size : data_len; + + cop->source.u.ref = txp->gref; + cop->source.domid = queue->vif->domid; + cop->source.offset = txp->offset; + + cop->dest.domid = DOMID_SELF; + cop->dest.offset = (offset_in_page(skb->data + + skb_headlen(skb) - + data_len)) & ~XEN_PAGE_MASK; + cop->dest.u.gmfn = virt_to_gfn(skb->data + skb_headlen(skb) + - data_len); + + cop->len = amount; + cop->flags = GNTCOPY_source_gref; + + index = pending_index(queue->pending_cons); + pending_idx = queue->pending_ring[index]; + callback_param(queue, pending_idx).ctx = NULL; + copy_pending_idx(skb, copy_count(skb)) = pending_idx; + copy_count(skb)++; - nr_slots = shinfo->nr_frags; + cop++; + data_len -= amount; - /* Skip first skb fragment if it is on same page as header fragment. */ - start = (frag_get_pending_idx(&shinfo->frags[0]) == pending_idx); + if (amount == txp->size) { + /* The copy op covered the full tx_request */ + + memcpy(&queue->pending_tx_info[pending_idx].req, + txp, sizeof(*txp)); + queue->pending_tx_info[pending_idx].extra_count = + (txp == first) ? extra_count : 0; + + if (txp == first) + txp = txfrags; + else + txp++; + queue->pending_cons++; + nr_slots--; + } else { + /* The copy op partially covered the tx_request. + * The remainder will be mapped. + */ + txp->offset += amount; + txp->size -= amount; + } + } - for (shinfo->nr_frags = start; shinfo->nr_frags < nr_slots; - shinfo->nr_frags++, txp++, gop++) { + for (shinfo->nr_frags = 0; shinfo->nr_frags < nr_slots; + shinfo->nr_frags++, gop++) { index = pending_index(queue->pending_cons++); pending_idx = queue->pending_ring[index]; - xenvif_tx_create_map_op(queue, pending_idx, txp, 0, gop); + xenvif_tx_create_map_op(queue, pending_idx, txp, + txp == first ? extra_count : 0, gop); frag_set_pending_idx(&frags[shinfo->nr_frags], pending_idx); + + if (txp == first) + txp = txfrags; + else + txp++; } if (frag_overflow) { @@ -413,7 +480,8 @@ skb_shinfo(skb)->frag_list = nskb; } - return gop; + (*copy_ops) = cop - queue->tx_copy_ops; + (*map_ops) = gop - queue->tx_map_ops; } static inline void xenvif_grant_handle_set(struct xenvif_queue *queue, @@ -449,7 +517,7 @@ struct gnttab_copy **gopp_copy) { struct gnttab_map_grant_ref *gop_map = *gopp_map; - u16 pending_idx = XENVIF_TX_CB(skb)->pending_idx; + u16 pending_idx; /* This always points to the shinfo of the skb being checked, which * could be either the first or the one on the frag_list */ @@ -460,24 +528,37 @@ struct skb_shared_info *first_shinfo = NULL; int nr_frags = shinfo->nr_frags; const bool sharedslot = nr_frags && - frag_get_pending_idx(&shinfo->frags[0]) == pending_idx; - int i, err; + frag_get_pending_idx(&shinfo->frags[0]) == + copy_pending_idx(skb, copy_count(skb) - 1); + int i, err = 0; - /* Check status of header. */ - err = (*gopp_copy)->status; - if (unlikely(err)) { - if (net_ratelimit()) - netdev_dbg(queue->vif->dev, - "Grant copy of header failed! status: %d pending_idx: %u ref: %u\n", - (*gopp_copy)->status, - pending_idx, - (*gopp_copy)->source.u.ref); - /* The first frag might still have this slot mapped */ - if (!sharedslot) - xenvif_idx_release(queue, pending_idx, - XEN_NETIF_RSP_ERROR); + for (i = 0; i < copy_count(skb); i++) { + int newerr; + + /* Check status of header. */ + pending_idx = copy_pending_idx(skb, i); + + newerr = (*gopp_copy)->status; + if (likely(!newerr)) { + /* The first frag might still have this slot mapped */ + if (i < copy_count(skb) - 1 || !sharedslot) + xenvif_idx_release(queue, pending_idx, + XEN_NETIF_RSP_OKAY); + } else { + err = newerr; + if (net_ratelimit()) + netdev_dbg(queue->vif->dev, + "Grant copy of header failed! status: %d pending_idx: %u ref: %u\n", + (*gopp_copy)->status, + pending_idx, + (*gopp_copy)->source.u.ref); + /* The first frag might still have this slot mapped */ + if (i < copy_count(skb) - 1 || !sharedslot) + xenvif_idx_release(queue, pending_idx, + XEN_NETIF_RSP_ERROR); + } + (*gopp_copy)++; } - (*gopp_copy)++; check_frags: for (i = 0; i < nr_frags; i++, gop_map++) { @@ -524,14 +605,6 @@ if (err) continue; - /* First error: if the header haven't shared a slot with the - * first frag, release it as well. - */ - if (!sharedslot) - xenvif_idx_release(queue, - XENVIF_TX_CB(skb)->pending_idx, - XEN_NETIF_RSP_OKAY); - /* Invalidate preceding fragments of this skb. */ for (j = 0; j < i; j++) { pending_idx = frag_get_pending_idx(&shinfo->frags[j]); @@ -801,7 +874,6 @@ unsigned *copy_ops, unsigned *map_ops) { - struct gnttab_map_grant_ref *gop = queue->tx_map_ops; struct sk_buff *skb, *nskb; int ret; unsigned int frag_overflow; @@ -883,8 +955,12 @@ continue; } + data_len = (txreq.size > XEN_NETBACK_TX_COPY_LEN) ? + XEN_NETBACK_TX_COPY_LEN : txreq.size; + ret = xenvif_count_requests(queue, &txreq, extra_count, txfrags, work_to_do); + if (unlikely(ret < 0)) break; @@ -910,9 +986,8 @@ index = pending_index(queue->pending_cons); pending_idx = queue->pending_ring[index]; - data_len = (txreq.size > XEN_NETBACK_TX_COPY_LEN && - ret < XEN_NETBK_LEGACY_SLOTS_MAX) ? - XEN_NETBACK_TX_COPY_LEN : txreq.size; + if (ret >= XEN_NETBK_LEGACY_SLOTS_MAX - 1 && data_len < txreq.size) + data_len = txreq.size; skb = xenvif_alloc_skb(data_len); if (unlikely(skb == NULL)) { @@ -923,8 +998,6 @@ } skb_shinfo(skb)->nr_frags = ret; - if (data_len < txreq.size) - skb_shinfo(skb)->nr_frags++; /* At this point shinfo->nr_frags is in fact the number of * slots, which can be as large as XEN_NETBK_LEGACY_SLOTS_MAX. */ @@ -986,54 +1059,19 @@ type); } - XENVIF_TX_CB(skb)->pending_idx = pending_idx; - - __skb_put(skb, data_len); - queue->tx_copy_ops[*copy_ops].source.u.ref = txreq.gref; - queue->tx_copy_ops[*copy_ops].source.domid = queue->vif->domid; - queue->tx_copy_ops[*copy_ops].source.offset = txreq.offset; - - queue->tx_copy_ops[*copy_ops].dest.u.gmfn = - virt_to_gfn(skb->data); - queue->tx_copy_ops[*copy_ops].dest.domid = DOMID_SELF; - queue->tx_copy_ops[*copy_ops].dest.offset = - offset_in_page(skb->data) & ~XEN_PAGE_MASK; - - queue->tx_copy_ops[*copy_ops].len = data_len; - queue->tx_copy_ops[*copy_ops].flags = GNTCOPY_source_gref; - - (*copy_ops)++; - - if (data_len < txreq.size) { - frag_set_pending_idx(&skb_shinfo(skb)->frags[0], - pending_idx); - xenvif_tx_create_map_op(queue, pending_idx, &txreq, - extra_count, gop); - gop++; - } else { - frag_set_pending_idx(&skb_shinfo(skb)->frags[0], - INVALID_PENDING_IDX); - memcpy(&queue->pending_tx_info[pending_idx].req, - &txreq, sizeof(txreq)); - queue->pending_tx_info[pending_idx].extra_count = - extra_count; - } - - queue->pending_cons++; - - gop = xenvif_get_requests(queue, skb, txfrags, gop, - frag_overflow, nskb); + xenvif_get_requests(queue, skb, &txreq, txfrags, copy_ops, + map_ops, frag_overflow, nskb, extra_count, + data_len); __skb_queue_tail(&queue->tx_queue, skb); queue->tx.req_cons = idx; - if (((gop-queue->tx_map_ops) >= ARRAY_SIZE(queue->tx_map_ops)) || + if ((*map_ops >= ARRAY_SIZE(queue->tx_map_ops)) || (*copy_ops >= ARRAY_SIZE(queue->tx_copy_ops))) break; } - (*map_ops) = gop - queue->tx_map_ops; return; } @@ -1112,9 +1150,8 @@ while ((skb = __skb_dequeue(&queue->tx_queue)) != NULL) { struct xen_netif_tx_request *txp; u16 pending_idx; - unsigned data_len; - pending_idx = XENVIF_TX_CB(skb)->pending_idx; + pending_idx = copy_pending_idx(skb, 0); txp = &queue->pending_tx_info[pending_idx].req; /* Check the remap error code. */ @@ -1133,18 +1170,6 @@ continue; } - data_len = skb->len; - callback_param(queue, pending_idx).ctx = NULL; - if (data_len < txp->size) { - /* Append the packet payload as a fragment. */ - txp->offset += data_len; - txp->size -= data_len; - } else { - /* Schedule a response immediately. */ - xenvif_idx_release(queue, pending_idx, - XEN_NETIF_RSP_OKAY); - } - if (txp->flags & XEN_NETTXF_csum_blank) skb->ip_summed = CHECKSUM_PARTIAL; else if (txp->flags & XEN_NETTXF_data_validated) @@ -1331,7 +1356,7 @@ /* Called after netfront has transmitted */ int xenvif_tx_action(struct xenvif_queue *queue, int budget) { - unsigned nr_mops, nr_cops = 0; + unsigned nr_mops = 0, nr_cops = 0; int work_done, ret; if (unlikely(!tx_work_todo(queue))) @@ -1418,7 +1443,7 @@ notify_remote_via_irq(queue->tx_irq); } -void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx) +static void xenvif_idx_unmap(struct xenvif_queue *queue, u16 pending_idx) { int ret; struct gnttab_unmap_grant_ref tx_unmap_op; --- linux-5.19.0.orig/drivers/net/xen-netback/rx.c +++ linux-5.19.0/drivers/net/xen-netback/rx.c @@ -82,9 +82,10 @@ return false; } -void xenvif_rx_queue_tail(struct xenvif_queue *queue, struct sk_buff *skb) +bool xenvif_rx_queue_tail(struct xenvif_queue *queue, struct sk_buff *skb) { unsigned long flags; + bool ret = true; spin_lock_irqsave(&queue->rx_queue.lock, flags); @@ -92,8 +93,7 @@ struct net_device *dev = queue->vif->dev; netif_tx_stop_queue(netdev_get_tx_queue(dev, queue->id)); - kfree_skb(skb); - queue->vif->dev->stats.rx_dropped++; + ret = false; } else { if (skb_queue_empty(&queue->rx_queue)) xenvif_update_needed_slots(queue, skb); @@ -104,6 +104,8 @@ } spin_unlock_irqrestore(&queue->rx_queue.lock, flags); + + return ret; } static struct sk_buff *xenvif_rx_dequeue(struct xenvif_queue *queue) @@ -486,7 +488,7 @@ #define RX_BATCH_SIZE 64 -void xenvif_rx_action(struct xenvif_queue *queue) +static void xenvif_rx_action(struct xenvif_queue *queue) { struct sk_buff_head completed_skbs; unsigned int work_done = 0; --- linux-5.19.0.orig/drivers/net/xen-netback/xenbus.c +++ linux-5.19.0/drivers/net/xen-netback/xenbus.c @@ -256,7 +256,6 @@ unsigned int queue_index; xen_unregister_watchers(vif); - xenbus_rm(XBT_NIL, be->dev->nodename, "hotplug-status"); #ifdef CONFIG_DEBUG_FS xenvif_debugfs_delif(vif); #endif /* CONFIG_DEBUG_FS */ @@ -984,6 +983,7 @@ struct backend_info *be = dev_get_drvdata(&dev->dev); unregister_hotplug_status_watch(be); + xenbus_rm(XBT_NIL, dev->nodename, "hotplug-status"); if (be->vif) { kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE); backend_disconnect(be); --- linux-5.19.0.orig/drivers/net/xen-netfront.c +++ linux-5.19.0/drivers/net/xen-netfront.c @@ -1862,6 +1862,12 @@ netif_tx_unlock_bh(info->netdev); xennet_disconnect_backend(info); + + rtnl_lock(); + if (info->queues) + xennet_destroy_queues(info); + rtnl_unlock(); + return 0; } --- linux-5.19.0.orig/drivers/nfc/fdp/fdp.c +++ linux-5.19.0/drivers/nfc/fdp/fdp.c @@ -249,11 +249,19 @@ static int fdp_nci_send(struct nci_dev *ndev, struct sk_buff *skb) { struct fdp_nci_info *info = nci_get_drvdata(ndev); + int ret; if (atomic_dec_and_test(&info->data_pkt_counter)) info->data_pkt_counter_cb(ndev); - return info->phy_ops->write(info->phy, skb); + ret = info->phy_ops->write(info->phy, skb); + if (ret < 0) { + kfree_skb(skb); + return ret; + } + + consume_skb(skb); + return 0; } static int fdp_nci_request_firmware(struct nci_dev *ndev) --- linux-5.19.0.orig/drivers/nfc/nfcmrvl/i2c.c +++ linux-5.19.0/drivers/nfc/nfcmrvl/i2c.c @@ -132,10 +132,15 @@ ret = -EREMOTEIO; } else ret = 0; + } + + if (ret) { kfree_skb(skb); + return ret; } - return ret; + consume_skb(skb); + return 0; } static void nfcmrvl_i2c_nci_update_config(struct nfcmrvl_private *priv, --- linux-5.19.0.orig/drivers/nfc/nxp-nci/core.c +++ linux-5.19.0/drivers/nfc/nxp-nci/core.c @@ -77,10 +77,13 @@ return -EINVAL; r = info->phy_ops->write(info->phy_id, skb); - if (r < 0) + if (r < 0) { kfree_skb(skb); + return r; + } - return r; + consume_skb(skb); + return 0; } static const struct nci_ops nxp_nci_ops = { --- linux-5.19.0.orig/drivers/nfc/pn533/pn533.c +++ linux-5.19.0/drivers/nfc/pn533/pn533.c @@ -1295,6 +1295,8 @@ if (IS_ERR(resp)) return PTR_ERR(resp); + memset(&nfc_target, 0, sizeof(struct nfc_target)); + rsp = (struct pn533_cmd_jump_dep_response *)resp->data; rc = rsp->status & PN533_CMD_RET_MASK; @@ -1926,6 +1928,8 @@ dev_dbg(dev->dev, "Creating new target\n"); + memset(&nfc_target, 0, sizeof(struct nfc_target)); + nfc_target.supported_protocols = NFC_PROTO_NFC_DEP_MASK; nfc_target.nfcid1_len = 10; memcpy(nfc_target.nfcid1, rsp->nfcid3t, nfc_target.nfcid1_len); --- linux-5.19.0.orig/drivers/nfc/pn533/uart.c +++ linux-5.19.0/drivers/nfc/pn533/uart.c @@ -310,6 +310,7 @@ pn53x_unregister_nfc(pn532->priv); serdev_device_close(serdev); pn53x_common_clean(pn532->priv); + del_timer_sync(&pn532->cmd_timeout); kfree_skb(pn532->recv_skb); kfree(pn532); } --- linux-5.19.0.orig/drivers/nfc/s3fwrn5/core.c +++ linux-5.19.0/drivers/nfc/s3fwrn5/core.c @@ -110,11 +110,15 @@ } ret = s3fwrn5_write(info, skb); - if (ret < 0) + if (ret < 0) { kfree_skb(skb); + mutex_unlock(&info->mutex); + return ret; + } + consume_skb(skb); mutex_unlock(&info->mutex); - return ret; + return 0; } static int s3fwrn5_nci_post_setup(struct nci_dev *ndev) --- linux-5.19.0.orig/drivers/nfc/st-nci/se.c +++ linux-5.19.0/drivers/nfc/st-nci/se.c @@ -312,6 +312,8 @@ int r = 0; struct device *dev = &ndev->nfc_dev->dev; struct nfc_evt_transaction *transaction; + u32 aid_len; + u8 params_len; pr_debug("connectivity gate event: %x\n", event); @@ -325,26 +327,47 @@ * Description Tag Length * AID 81 5 to 16 * PARAMETERS 82 0 to 255 + * + * The key differences are aid storage length is variably sized + * in the packet, but fixed in nfc_evt_transaction, and that + * the aid_len is u8 in the packet, but u32 in the structure, + * and the tags in the packet are not included in + * nfc_evt_transaction. + * + * size(b): 1 1 5-16 1 1 0-255 + * offset: 0 1 2 aid_len + 2 aid_len + 3 aid_len + 4 + * mem name: aid_tag(M) aid_len aid params_tag(M) params_len params + * example: 0x81 5-16 X 0x82 0-255 X */ - if (skb->len < NFC_MIN_AID_LENGTH + 2 && - skb->data[0] != NFC_EVT_TRANSACTION_AID_TAG) + if (skb->len < 2 || skb->data[0] != NFC_EVT_TRANSACTION_AID_TAG) return -EPROTO; - transaction = devm_kzalloc(dev, skb->len - 2, GFP_KERNEL); - if (!transaction) - return -ENOMEM; + aid_len = skb->data[1]; - transaction->aid_len = skb->data[1]; - memcpy(transaction->aid, &skb->data[2], transaction->aid_len); + if (skb->len < aid_len + 4 || + aid_len > sizeof(transaction->aid)) + return -EPROTO; - /* Check next byte is PARAMETERS tag (82) */ - if (skb->data[transaction->aid_len + 2] != - NFC_EVT_TRANSACTION_PARAMS_TAG) + params_len = skb->data[aid_len + 3]; + + /* Verify PARAMETERS tag is (82), and final check that there is + * enough space in the packet to read everything. + */ + if (skb->data[aid_len + 2] != NFC_EVT_TRANSACTION_PARAMS_TAG || + skb->len < aid_len + 4 + params_len) return -EPROTO; - transaction->params_len = skb->data[transaction->aid_len + 3]; - memcpy(transaction->params, skb->data + - transaction->aid_len + 4, transaction->params_len); + transaction = devm_kzalloc(dev, sizeof(*transaction) + + params_len, GFP_KERNEL); + if (!transaction) + return -ENOMEM; + + transaction->aid_len = aid_len; + transaction->params_len = params_len; + + memcpy(transaction->aid, &skb->data[2], aid_len); + memcpy(transaction->params, &skb->data[aid_len + 4], + params_len); r = nfc_se_transaction(ndev->nfc_dev, host, transaction); break; --- linux-5.19.0.orig/drivers/nfc/virtual_ncidev.c +++ linux-5.19.0/drivers/nfc/virtual_ncidev.c @@ -54,16 +54,19 @@ mutex_lock(&nci_mutex); if (state != virtual_ncidev_enabled) { mutex_unlock(&nci_mutex); + kfree_skb(skb); return 0; } if (send_buff) { mutex_unlock(&nci_mutex); + kfree_skb(skb); return -1; } send_buff = skb_copy(skb, GFP_KERNEL); mutex_unlock(&nci_mutex); wake_up_interruptible(&wq); + consume_skb(skb); return 0; } --- linux-5.19.0.orig/drivers/ntb/test/ntb_tool.c +++ linux-5.19.0/drivers/ntb/test/ntb_tool.c @@ -367,14 +367,16 @@ u64 bits; int n; + if (*offp) + return 0; + buf = kmalloc(size + 1, GFP_KERNEL); if (!buf) return -ENOMEM; - ret = simple_write_to_buffer(buf, size, offp, ubuf, size); - if (ret < 0) { + if (copy_from_user(buf, ubuf, size)) { kfree(buf); - return ret; + return -EFAULT; } buf[size] = 0; --- linux-5.19.0.orig/drivers/nvdimm/pmem.c +++ linux-5.19.0/drivers/nvdimm/pmem.c @@ -45,7 +45,7 @@ return to_nd_region(to_dev(pmem)->parent); } -static phys_addr_t to_phys(struct pmem_device *pmem, phys_addr_t offset) +static phys_addr_t pmem_to_phys(struct pmem_device *pmem, phys_addr_t offset) { return pmem->phys_addr + offset; } @@ -63,7 +63,7 @@ static void pmem_mkpage_present(struct pmem_device *pmem, phys_addr_t offset, unsigned int len) { - phys_addr_t phys = to_phys(pmem, offset); + phys_addr_t phys = pmem_to_phys(pmem, offset); unsigned long pfn_start, pfn_end, pfn; /* only pmem in the linear map supports HWPoison */ @@ -97,7 +97,7 @@ static long __pmem_clear_poison(struct pmem_device *pmem, phys_addr_t offset, unsigned int len) { - phys_addr_t phys = to_phys(pmem, offset); + phys_addr_t phys = pmem_to_phys(pmem, offset); long cleared = nvdimm_clear_poison(to_dev(pmem), phys, len); if (cleared > 0) { --- linux-5.19.0.orig/drivers/nvme/host/apple.c +++ linux-5.19.0/drivers/nvme/host/apple.c @@ -1502,7 +1502,7 @@ if (!blk_get_queue(anv->ctrl.admin_q)) { nvme_start_admin_queue(&anv->ctrl); - blk_cleanup_queue(anv->ctrl.admin_q); + blk_mq_destroy_queue(anv->ctrl.admin_q); anv->ctrl.admin_q = NULL; ret = -ENODEV; goto put_dev; --- linux-5.19.0.orig/drivers/nvme/host/core.c +++ linux-5.19.0/drivers/nvme/host/core.c @@ -651,6 +651,7 @@ if (req->mq_hctx->type == HCTX_TYPE_POLL) req->cmd_flags |= REQ_POLLED; nvme_clear_nvme_request(req); + req->rq_flags |= RQF_QUIET; memcpy(nvme_req(req)->cmd, cmd, sizeof(*cmd)); } EXPORT_SYMBOL_GPL(nvme_init_request); @@ -1015,7 +1016,6 @@ goto out; } - req->rq_flags |= RQF_QUIET; ret = nvme_execute_rq(req, at_head); if (result && ret >= 0) *result = nvme_req(req)->result; @@ -1089,8 +1089,8 @@ return effects; } -static void nvme_passthru_end(struct nvme_ctrl *ctrl, u32 effects, - struct nvme_command *cmd, int status) +void nvme_passthru_end(struct nvme_ctrl *ctrl, u32 effects, + struct nvme_command *cmd, int status) { if (effects & NVME_CMD_EFFECTS_CSE_MASK) { nvme_unfreeze(ctrl); @@ -1126,21 +1126,16 @@ break; } } +EXPORT_SYMBOL_NS_GPL(nvme_passthru_end, NVME_TARGET_PASSTHRU); -int nvme_execute_passthru_rq(struct request *rq) +int nvme_execute_passthru_rq(struct request *rq, u32 *effects) { struct nvme_command *cmd = nvme_req(rq)->cmd; struct nvme_ctrl *ctrl = nvme_req(rq)->ctrl; struct nvme_ns *ns = rq->q->queuedata; - u32 effects; - int ret; - effects = nvme_passthru_start(ctrl, ns, cmd->common.opcode); - ret = nvme_execute_rq(rq, false); - if (effects) /* nothing to be done for zero cmd effects */ - nvme_passthru_end(ctrl, effects, cmd, ret); - - return ret; + *effects = nvme_passthru_start(ctrl, ns, cmd->common.opcode); + return nvme_execute_rq(rq, false); } EXPORT_SYMBOL_NS_GPL(nvme_execute_passthru_rq, NVME_TARGET_PASSTHRU); @@ -1208,7 +1203,6 @@ rq->timeout = ctrl->kato * HZ; rq->end_io = nvme_keep_alive_end_io; rq->end_io_data = ctrl; - rq->rq_flags |= RQF_QUIET; blk_execute_rq_nowait(rq, false); } @@ -1927,8 +1921,10 @@ if (ns->head->ids.csi == NVME_CSI_ZNS) { ret = nvme_update_zone_info(ns, lbaf); - if (ret) - goto out_unfreeze; + if (ret) { + blk_mq_unfreeze_queue(ns->disk->queue); + goto out; + } } set_disk_ro(ns->disk, (id->nsattr & NVME_NS_ATTR_RO) || @@ -1939,7 +1935,7 @@ if (blk_queue_is_zoned(ns->queue)) { ret = nvme_revalidate_zones(ns); if (ret && !nvme_first_scan(ns->disk)) - return ret; + goto out; } if (nvme_ns_head_multipath(ns->head)) { @@ -1954,9 +1950,9 @@ disk_update_readahead(ns->head->disk); blk_mq_unfreeze_queue(ns->head->disk->queue); } - return 0; -out_unfreeze: + ret = 0; +out: /* * If probing fails due an unsupported feature, hide the block device, * but still allow other access. @@ -1966,7 +1962,6 @@ set_bit(NVME_NS_READY, &ns->flags); ret = 0; } - blk_mq_unfreeze_queue(ns->disk->queue); return ret; } @@ -2068,14 +2063,14 @@ static int nvme_pr_clear(struct block_device *bdev, u64 key) { - u32 cdw10 = 1 | (key ? 1 << 3 : 0); + u32 cdw10 = 1 | (key ? 0 : 1 << 3); - return nvme_pr_command(bdev, cdw10, key, 0, nvme_cmd_resv_register); + return nvme_pr_command(bdev, cdw10, key, 0, nvme_cmd_resv_release); } static int nvme_pr_release(struct block_device *bdev, u64 key, enum pr_type type) { - u32 cdw10 = nvme_pr_type(type) << 8 | (key ? 1 << 3 : 0); + u32 cdw10 = nvme_pr_type(type) << 8 | (key ? 0 : 1 << 3); return nvme_pr_command(bdev, cdw10, key, 0, nvme_cmd_resv_release); } @@ -2123,6 +2118,7 @@ static const struct block_device_operations nvme_bdev_ops = { .owner = THIS_MODULE, .ioctl = nvme_ioctl, + .compat_ioctl = blkdev_compat_ptr_ioctl, .open = nvme_open, .release = nvme_release, .getgeo = nvme_getgeo, @@ -2799,7 +2795,6 @@ nvme_init_subnqn(subsys, ctrl, id); memcpy(subsys->serial, id->sn, sizeof(subsys->serial)); memcpy(subsys->model, id->mn, sizeof(subsys->model)); - memcpy(subsys->firmware_rev, id->fr, sizeof(subsys->firmware_rev)); subsys->vendor_id = le16_to_cpu(id->vid); subsys->cmic = id->cmic; @@ -2955,7 +2950,7 @@ id = kzalloc(sizeof(*id), GFP_KERNEL); if (!id) - return 0; + return -ENOMEM; c.identify.opcode = nvme_admin_identify; c.identify.cns = NVME_ID_CNS_CS_CTRL; @@ -3001,10 +2996,6 @@ if (!ctrl->identified) { unsigned int i; - ret = nvme_init_subsystem(ctrl, id); - if (ret) - goto out_free; - /* * Check for quirks. Quirk can depend on firmware version, * so, in principle, the set of quirks present can change @@ -3017,7 +3008,13 @@ if (quirk_matches(id, &core_quirks[i])) ctrl->quirks |= core_quirks[i].quirks; } + + ret = nvme_init_subsystem(ctrl, id); + if (ret) + goto out_free; } + memcpy(ctrl->subsys->firmware_rev, id->fr, + sizeof(ctrl->subsys->firmware_rev)); if (force_apst && (ctrl->quirks & NVME_QUIRK_NO_DEEPEST_PS)) { dev_warn(ctrl->device, "forcibly allowing all power states due to nvme_core.force_apst -- use at your own risk\n"); @@ -3165,8 +3162,12 @@ return ret; if (!ctrl->identified && !nvme_discovery_ctrl(ctrl)) { + /* + * Do not return errors unless we are in a controller reset, + * the controller works perfectly fine without hwmon. + */ ret = nvme_hwmon_init(ctrl); - if (ret < 0) + if (ret == -EINTR) return ret; } @@ -4098,12 +4099,11 @@ mutex_unlock(&ns->ctrl->subsys->lock); /* guarantee not available in head->list */ - synchronize_rcu(); + synchronize_srcu(&ns->head->srcu); if (!nvme_ns_head_multipath(ns->head)) nvme_cdev_del(&ns->cdev, &ns->cdev_device); del_gendisk(ns->disk); - blk_cleanup_queue(ns->queue); down_write(&ns->ctrl->namespaces_rwsem); list_del_init(&ns->list); --- linux-5.19.0.orig/drivers/nvme/host/fc.c +++ linux-5.19.0/drivers/nvme/host/fc.c @@ -2392,7 +2392,7 @@ unsigned long flags; if (ctrl->ctrl.tagset) { - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); blk_mq_free_tag_set(&ctrl->tag_set); } @@ -2402,8 +2402,8 @@ spin_unlock_irqrestore(&ctrl->rport->lock, flags); nvme_start_admin_queue(&ctrl->ctrl); - blk_cleanup_queue(ctrl->ctrl.admin_q); - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); blk_mq_free_tag_set(&ctrl->admin_tag_set); kfree(ctrl->queues); @@ -2953,7 +2953,7 @@ out_delete_hw_queues: nvme_fc_delete_hw_io_queues(ctrl); out_cleanup_blk_queue: - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); out_free_tag_set: blk_mq_free_tag_set(&ctrl->tag_set); nvme_fc_free_io_queues(ctrl); @@ -3642,9 +3642,9 @@ return ERR_PTR(-EIO); out_cleanup_admin_q: - blk_cleanup_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); out_cleanup_fabrics_q: - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); out_free_admin_tag_set: blk_mq_free_tag_set(&ctrl->admin_tag_set); out_free_queues: @@ -3880,6 +3880,7 @@ static ssize_t fc_appid_store(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { + size_t orig_count = count; u64 cgrp_id; int appid_len = 0; int cgrpid_len = 0; @@ -3904,7 +3905,7 @@ ret = blkcg_set_fc_appid(app_id, cgrp_id, sizeof(app_id)); if (ret < 0) return ret; - return count; + return orig_count; } static DEVICE_ATTR(appid_store, 0200, NULL, fc_appid_store); #endif /* CONFIG_BLK_CGROUP_FC_APPID */ --- linux-5.19.0.orig/drivers/nvme/host/hwmon.c +++ linux-5.19.0/drivers/nvme/host/hwmon.c @@ -12,7 +12,7 @@ struct nvme_hwmon_data { struct nvme_ctrl *ctrl; - struct nvme_smart_log log; + struct nvme_smart_log *log; struct mutex read_lock; }; @@ -60,14 +60,14 @@ static int nvme_hwmon_get_smart_log(struct nvme_hwmon_data *data) { return nvme_get_log(data->ctrl, NVME_NSID_ALL, NVME_LOG_SMART, 0, - NVME_CSI_NVM, &data->log, sizeof(data->log), 0); + NVME_CSI_NVM, data->log, sizeof(*data->log), 0); } static int nvme_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, long *val) { struct nvme_hwmon_data *data = dev_get_drvdata(dev); - struct nvme_smart_log *log = &data->log; + struct nvme_smart_log *log = data->log; int temp; int err; @@ -163,7 +163,7 @@ case hwmon_temp_max: case hwmon_temp_min: if ((!channel && data->ctrl->wctemp) || - (channel && data->log.temp_sensor[channel - 1])) { + (channel && data->log->temp_sensor[channel - 1])) { if (data->ctrl->quirks & NVME_QUIRK_NO_TEMP_THRESH_CHANGE) return 0444; @@ -176,7 +176,7 @@ break; case hwmon_temp_input: case hwmon_temp_label: - if (!channel || data->log.temp_sensor[channel - 1]) + if (!channel || data->log->temp_sensor[channel - 1]) return 0444; break; default: @@ -230,7 +230,13 @@ data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) - return 0; + return -ENOMEM; + + data->log = kzalloc(sizeof(*data->log), GFP_KERNEL); + if (!data->log) { + err = -ENOMEM; + goto err_free_data; + } data->ctrl = ctrl; mutex_init(&data->read_lock); @@ -238,8 +244,7 @@ err = nvme_hwmon_get_smart_log(data); if (err) { dev_warn(dev, "Failed to read smart log (error %d)\n", err); - kfree(data); - return err; + goto err_free_log; } hwmon = hwmon_device_register_with_info(dev, "nvme", @@ -247,11 +252,17 @@ NULL); if (IS_ERR(hwmon)) { dev_warn(dev, "Failed to instantiate hwmon device\n"); - kfree(data); - return PTR_ERR(hwmon); + err = PTR_ERR(hwmon); + goto err_free_log; } ctrl->hwmon_device = hwmon; return 0; + +err_free_log: + kfree(data->log); +err_free_data: + kfree(data); + return err; } void nvme_hwmon_exit(struct nvme_ctrl *ctrl) @@ -262,6 +273,7 @@ hwmon_device_unregister(ctrl->hwmon_device); ctrl->hwmon_device = NULL; + kfree(data->log); kfree(data); } } --- linux-5.19.0.orig/drivers/nvme/host/ioctl.c +++ linux-5.19.0/drivers/nvme/host/ioctl.c @@ -136,9 +136,11 @@ unsigned bufflen, void __user *meta_buffer, unsigned meta_len, u32 meta_seed, u64 *result, unsigned timeout, bool vec) { + struct nvme_ctrl *ctrl; struct request *req; void *meta = NULL; struct bio *bio; + u32 effects; int ret; req = nvme_alloc_user_request(q, cmd, ubuffer, bufflen, meta_buffer, @@ -147,8 +149,9 @@ return PTR_ERR(req); bio = req->bio; + ctrl = nvme_req(req)->ctrl; - ret = nvme_execute_passthru_rq(req); + ret = nvme_execute_passthru_rq(req, &effects); if (result) *result = le64_to_cpu(nvme_req(req)->result.u64); @@ -158,6 +161,10 @@ if (bio) blk_rq_unmap_user(bio); blk_mq_free_request(req); + + if (effects) + nvme_passthru_end(ctrl, effects, cmd, ret); + return ret; } @@ -757,11 +764,17 @@ case NVME_IOCTL_IO_CMD: return nvme_dev_user_cmd(ctrl, argp); case NVME_IOCTL_RESET: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; dev_warn(ctrl->device, "resetting controller\n"); return nvme_reset_ctrl_sync(ctrl); case NVME_IOCTL_SUBSYS_RESET: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; return nvme_reset_subsystem(ctrl); case NVME_IOCTL_RESCAN: + if (!capable(CAP_SYS_ADMIN)) + return -EACCES; nvme_queue_scan(ctrl); return 0; default: --- linux-5.19.0.orig/drivers/nvme/host/multipath.c +++ linux-5.19.0/drivers/nvme/host/multipath.c @@ -174,14 +174,18 @@ struct nvme_ns_head *head = ns->head; sector_t capacity = get_capacity(head->disk); int node; + int srcu_idx; + srcu_idx = srcu_read_lock(&head->srcu); list_for_each_entry_rcu(ns, &head->list, siblings) { if (capacity != get_capacity(ns->disk)) clear_bit(NVME_NS_READY, &ns->flags); } + srcu_read_unlock(&head->srcu, srcu_idx); for_each_node(node) rcu_assign_pointer(head->current_path[node], NULL); + kblockd_schedule_work(&head->requeue_work); } static bool nvme_path_is_disabled(struct nvme_ns *ns) @@ -408,6 +412,7 @@ .open = nvme_ns_head_open, .release = nvme_ns_head_release, .ioctl = nvme_ns_head_ioctl, + .compat_ioctl = blkdev_compat_ptr_ioctl, .getgeo = nvme_getgeo, .report_zones = nvme_ns_head_report_zones, .pr_ops = &nvme_pr_ops, --- linux-5.19.0.orig/drivers/nvme/host/nvme.h +++ linux-5.19.0/drivers/nvme/host/nvme.h @@ -593,11 +593,23 @@ static inline void nvme_should_fail(struct request *req) {} #endif +bool nvme_wait_reset(struct nvme_ctrl *ctrl); +int nvme_try_sched_reset(struct nvme_ctrl *ctrl); + static inline int nvme_reset_subsystem(struct nvme_ctrl *ctrl) { + int ret; + if (!ctrl->subsystem) return -ENOTTY; - return ctrl->ops->reg_write32(ctrl, NVME_REG_NSSR, 0x4E564D65); + if (!nvme_wait_reset(ctrl)) + return -EBUSY; + + ret = ctrl->ops->reg_write32(ctrl, NVME_REG_NSSR, 0x4E564D65); + if (ret) + return ret; + + return nvme_try_sched_reset(ctrl); } /* @@ -703,7 +715,6 @@ 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); int nvme_disable_ctrl(struct nvme_ctrl *ctrl); int nvme_enable_ctrl(struct nvme_ctrl *ctrl); int nvme_shutdown_ctrl(struct nvme_ctrl *ctrl); @@ -793,7 +804,6 @@ void nvme_stop_keep_alive(struct nvme_ctrl *ctrl); int nvme_reset_ctrl(struct nvme_ctrl *ctrl); int nvme_reset_ctrl_sync(struct nvme_ctrl *ctrl); -int nvme_try_sched_reset(struct nvme_ctrl *ctrl); int nvme_delete_ctrl(struct nvme_ctrl *ctrl); void nvme_queue_scan(struct nvme_ctrl *ctrl); int nvme_get_log(struct nvme_ctrl *ctrl, u32 nsid, u8 log_page, u8 lsp, u8 csi, @@ -994,7 +1004,9 @@ u32 nvme_command_effects(struct nvme_ctrl *ctrl, struct nvme_ns *ns, u8 opcode); -int nvme_execute_passthru_rq(struct request *rq); +int nvme_execute_passthru_rq(struct request *rq, u32 *effects); +void nvme_passthru_end(struct nvme_ctrl *ctrl, u32 effects, + struct nvme_command *cmd, int status); struct nvme_ctrl *nvme_ctrl_from_file(struct file *file); struct nvme_ns *nvme_find_get_ns(struct nvme_ctrl *ctrl, unsigned nsid); void nvme_put_ns(struct nvme_ns *ns); --- linux-5.19.0.orig/drivers/nvme/host/pci.c +++ linux-5.19.0/drivers/nvme/host/pci.c @@ -815,6 +815,8 @@ cmnd->dptr.prp1 = cpu_to_le64(iod->first_dma); if (bv->bv_len > first_prp_len) cmnd->dptr.prp2 = cpu_to_le64(iod->first_dma + first_prp_len); + else + cmnd->dptr.prp2 = 0; return BLK_STS_OK; } @@ -1448,7 +1450,6 @@ abort_req->end_io = abort_endio; abort_req->end_io_data = NULL; - abort_req->rq_flags |= RQF_QUIET; blk_execute_rq_nowait(abort_req, false); /* @@ -1760,7 +1761,7 @@ * queue to flush these to completion. */ nvme_start_admin_queue(&dev->ctrl); - blk_cleanup_queue(dev->ctrl.admin_q); + blk_mq_destroy_queue(dev->ctrl.admin_q); blk_mq_free_tag_set(&dev->admin_tagset); } } @@ -2501,7 +2502,6 @@ req->end_io_data = nvmeq; init_completion(&nvmeq->delete_done); - req->rq_flags |= RQF_QUIET; blk_execute_rq_nowait(req, false); return 0; } @@ -2825,6 +2825,8 @@ goto out; } + dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1); + /* * If we're called to reset a live controller first shut it down before * moving on. @@ -2858,7 +2860,6 @@ * Don't limit the IOMMU merged segment size. */ dma_set_max_seg_size(dev->dev, 0xffffffff); - dma_set_min_align_mask(dev->dev, NVME_CTRL_PAGE_SIZE - 1); mutex_unlock(&dev->shutdown_lock); @@ -3485,6 +3486,8 @@ NVME_QUIRK_IGNORE_DEV_SUBNQN, }, { PCI_DEVICE(0x1344, 0x5407), /* Micron Technology Inc NVMe SSD */ .driver_data = NVME_QUIRK_IGNORE_DEV_SUBNQN }, + { PCI_DEVICE(0x1344, 0x6001), /* Micron Nitro NVMe */ + .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1c5c, 0x1504), /* SK Hynix PC400 */ .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, { PCI_DEVICE(0x1c5c, 0x174a), /* SK Hynix P31 SSD */ @@ -3505,6 +3508,18 @@ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(0x2646, 0x2263), /* KINGSTON A2000 NVMe SSD */ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, + { PCI_DEVICE(0x2646, 0x5018), /* KINGSTON OM8SFP4xxxxP OS21012 NVMe SSD */ + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, + { PCI_DEVICE(0x2646, 0x5016), /* KINGSTON OM3PGP4xxxxP OS21011 NVMe SSD */ + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, + { PCI_DEVICE(0x2646, 0x501A), /* KINGSTON OM8PGP4xxxxP OS21005 NVMe SSD */ + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, + { PCI_DEVICE(0x2646, 0x501B), /* KINGSTON OM8PGP4xxxxQ OS21005 NVMe SSD */ + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, + { PCI_DEVICE(0x2646, 0x501E), /* KINGSTON OM3PGP4xxxxQ OS21011 NVMe SSD */ + .driver_data = NVME_QUIRK_DISABLE_WRITE_ZEROES, }, + { PCI_DEVICE(0x1f40, 0x5236), /* Netac Technologies Co. NV7000 NVMe SSD */ + .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1e4B, 0x1001), /* MAXIO MAP1001 */ .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(0x1e4B, 0x1002), /* MAXIO MAP1002 */ @@ -3517,6 +3532,8 @@ .driver_data = NVME_QUIRK_NO_DEEPEST_PS, }, { PCI_DEVICE(0xc0a9, 0x540a), /* Crucial P2 */ .driver_data = NVME_QUIRK_BOGUS_NID, }, + { PCI_DEVICE(0x1d97, 0x2263), /* Lexar NM610 */ + .driver_data = NVME_QUIRK_BOGUS_NID, }, { PCI_DEVICE(PCI_VENDOR_ID_AMAZON, 0x0061), .driver_data = NVME_QUIRK_DMA_ADDRESS_BITS_48, }, { PCI_DEVICE(PCI_VENDOR_ID_AMAZON, 0x0065), --- linux-5.19.0.orig/drivers/nvme/host/rdma.c +++ linux-5.19.0/drivers/nvme/host/rdma.c @@ -840,8 +840,8 @@ bool remove) { if (remove) { - blk_cleanup_queue(ctrl->ctrl.admin_q); - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); blk_mq_free_tag_set(ctrl->ctrl.admin_tagset); } if (ctrl->async_event_sqe.data) { @@ -935,10 +935,10 @@ nvme_cancel_admin_tagset(&ctrl->ctrl); out_cleanup_queue: if (new) - blk_cleanup_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); out_cleanup_fabrics_q: if (new) - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); out_free_tagset: if (new) blk_mq_free_tag_set(ctrl->ctrl.admin_tagset); @@ -957,7 +957,7 @@ bool remove) { if (remove) { - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); blk_mq_free_tag_set(ctrl->ctrl.tagset); } nvme_rdma_free_io_queues(ctrl); @@ -1012,7 +1012,7 @@ out_cleanup_connect_q: nvme_cancel_tagset(&ctrl->ctrl); if (new) - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); out_free_tag_set: if (new) blk_mq_free_tag_set(ctrl->ctrl.tagset); --- linux-5.19.0.orig/drivers/nvme/host/tcp.c +++ linux-5.19.0/drivers/nvme/host/tcp.c @@ -121,7 +121,6 @@ struct mutex send_mutex; struct llist_head req_list; struct list_head send_list; - bool more_requests; /* recv state */ void *pdu; @@ -318,7 +317,7 @@ static inline bool nvme_tcp_queue_more(struct nvme_tcp_queue *queue) { return !list_empty(&queue->send_list) || - !llist_empty(&queue->req_list) || queue->more_requests; + !llist_empty(&queue->req_list); } static inline void nvme_tcp_queue_request(struct nvme_tcp_request *req, @@ -337,9 +336,7 @@ */ if (queue->io_cpu == raw_smp_processor_id() && sync && empty && mutex_trylock(&queue->send_mutex)) { - queue->more_requests = !last; nvme_tcp_send_all(queue); - queue->more_requests = false; mutex_unlock(&queue->send_mutex); } @@ -1227,7 +1224,7 @@ else if (unlikely(result < 0)) return; - if (!pending) + if (!pending || !queue->rd_enabled) return; } while (!time_after(jiffies, deadline)); /* quota is exhausted */ @@ -1884,7 +1881,7 @@ { nvme_tcp_stop_io_queues(ctrl); if (remove) { - blk_cleanup_queue(ctrl->connect_q); + blk_mq_destroy_queue(ctrl->connect_q); blk_mq_free_tag_set(ctrl->tagset); } nvme_tcp_free_io_queues(ctrl); @@ -1939,7 +1936,7 @@ out_cleanup_connect_q: nvme_cancel_tagset(ctrl); if (new) - blk_cleanup_queue(ctrl->connect_q); + blk_mq_destroy_queue(ctrl->connect_q); out_free_tag_set: if (new) blk_mq_free_tag_set(ctrl->tagset); @@ -1952,8 +1949,8 @@ { nvme_tcp_stop_queue(ctrl, 0); if (remove) { - blk_cleanup_queue(ctrl->admin_q); - blk_cleanup_queue(ctrl->fabrics_q); + blk_mq_destroy_queue(ctrl->admin_q); + blk_mq_destroy_queue(ctrl->fabrics_q); blk_mq_free_tag_set(ctrl->admin_tagset); } nvme_tcp_free_admin_queue(ctrl); @@ -2011,10 +2008,10 @@ nvme_cancel_admin_tagset(ctrl); out_cleanup_queue: if (new) - blk_cleanup_queue(ctrl->admin_q); + blk_mq_destroy_queue(ctrl->admin_q); out_cleanup_fabrics_q: if (new) - blk_cleanup_queue(ctrl->fabrics_q); + blk_mq_destroy_queue(ctrl->fabrics_q); out_free_tagset: if (new) blk_mq_free_tag_set(ctrl->admin_tagset); --- linux-5.19.0.orig/drivers/nvme/host/trace.h +++ linux-5.19.0/drivers/nvme/host/trace.h @@ -98,7 +98,7 @@ TP_fast_assign( __entry->ctrl_id = nvme_req(req)->ctrl->instance; __entry->qid = nvme_req_qid(req); - __entry->cid = req->tag; + __entry->cid = nvme_req(req)->cmd->common.command_id; __entry->result = le64_to_cpu(nvme_req(req)->result.u64); __entry->retries = nvme_req(req)->retries; __entry->flags = nvme_req(req)->flags; --- linux-5.19.0.orig/drivers/nvme/target/configfs.c +++ linux-5.19.0/drivers/nvme/target/configfs.c @@ -1210,6 +1210,7 @@ const char *page, size_t count) { int pos = 0, len; + char *val; if (subsys->subsys_discovered) { pr_err("Can't set model number. %s is already assigned\n", @@ -1232,9 +1233,11 @@ return -EINVAL; } - subsys->model_number = kmemdup_nul(page, len, GFP_KERNEL); - if (!subsys->model_number) + val = kmemdup_nul(page, len, GFP_KERNEL); + if (!val) return -ENOMEM; + kfree(subsys->model_number); + subsys->model_number = val; return count; } --- linux-5.19.0.orig/drivers/nvme/target/core.c +++ linux-5.19.0/drivers/nvme/target/core.c @@ -15,6 +15,7 @@ #include "nvmet.h" +struct kmem_cache *nvmet_bvec_cache; struct workqueue_struct *buffered_io_wq; struct workqueue_struct *zbd_wq; static const struct nvmet_fabrics_ops *nvmet_transports[NVMF_TRTYPE_MAX]; @@ -735,6 +736,8 @@ static void __nvmet_req_complete(struct nvmet_req *req, u16 status) { + struct nvmet_ns *ns = req->ns; + if (!req->sq->sqhd_disabled) nvmet_update_sq_head(req); req->cqe->sq_id = cpu_to_le16(req->sq->qid); @@ -745,9 +748,9 @@ trace_nvmet_req_complete(req); - if (req->ns) - nvmet_put_namespace(req->ns); req->ops->queue_response(req); + if (ns) + nvmet_put_namespace(ns); } void nvmet_req_complete(struct nvmet_req *req, u16 status) @@ -1165,7 +1168,7 @@ * reset the keep alive timer when the controller is enabled. */ if (ctrl->kato) - mod_delayed_work(system_wq, &ctrl->ka_work, ctrl->kato * HZ); + mod_delayed_work(nvmet_wq, &ctrl->ka_work, ctrl->kato * HZ); } static void nvmet_clear_ctrl(struct nvmet_ctrl *ctrl) @@ -1613,26 +1616,28 @@ static int __init nvmet_init(void) { - int error; + int error = -ENOMEM; nvmet_ana_group_enabled[NVMET_DEFAULT_ANA_GRPID] = 1; + nvmet_bvec_cache = kmem_cache_create("nvmet-bvec", + NVMET_MAX_MPOOL_BVEC * sizeof(struct bio_vec), 0, + SLAB_HWCACHE_ALIGN, NULL); + if (!nvmet_bvec_cache) + return -ENOMEM; + zbd_wq = alloc_workqueue("nvmet-zbd-wq", WQ_MEM_RECLAIM, 0); if (!zbd_wq) - return -ENOMEM; + goto out_destroy_bvec_cache; buffered_io_wq = alloc_workqueue("nvmet-buffered-io-wq", WQ_MEM_RECLAIM, 0); - if (!buffered_io_wq) { - error = -ENOMEM; + if (!buffered_io_wq) goto out_free_zbd_work_queue; - } nvmet_wq = alloc_workqueue("nvmet-wq", WQ_MEM_RECLAIM, 0); - if (!nvmet_wq) { - error = -ENOMEM; + if (!nvmet_wq) goto out_free_buffered_work_queue; - } error = nvmet_init_discovery(); if (error) @@ -1651,6 +1656,8 @@ destroy_workqueue(buffered_io_wq); out_free_zbd_work_queue: destroy_workqueue(zbd_wq); +out_destroy_bvec_cache: + kmem_cache_destroy(nvmet_bvec_cache); return error; } @@ -1662,6 +1669,7 @@ destroy_workqueue(nvmet_wq); destroy_workqueue(buffered_io_wq); destroy_workqueue(zbd_wq); + kmem_cache_destroy(nvmet_bvec_cache); BUILD_BUG_ON(sizeof(struct nvmf_disc_rsp_page_entry) != 1024); BUILD_BUG_ON(sizeof(struct nvmf_disc_rsp_page_hdr) != 1024); --- linux-5.19.0.orig/drivers/nvme/target/io-cmd-file.c +++ linux-5.19.0/drivers/nvme/target/io-cmd-file.c @@ -11,7 +11,6 @@ #include #include "nvmet.h" -#define NVMET_MAX_MPOOL_BVEC 16 #define NVMET_MIN_MPOOL_OBJ 16 void nvmet_file_ns_revalidate(struct nvmet_ns *ns) @@ -26,8 +25,6 @@ flush_workqueue(buffered_io_wq); mempool_destroy(ns->bvec_pool); ns->bvec_pool = NULL; - kmem_cache_destroy(ns->bvec_cache); - ns->bvec_cache = NULL; fput(ns->file); ns->file = NULL; } @@ -59,16 +56,8 @@ ns->blksize_shift = min_t(u8, file_inode(ns->file)->i_blkbits, 12); - ns->bvec_cache = kmem_cache_create("nvmet-bvec", - NVMET_MAX_MPOOL_BVEC * sizeof(struct bio_vec), - 0, SLAB_HWCACHE_ALIGN, NULL); - if (!ns->bvec_cache) { - ret = -ENOMEM; - goto err; - } - ns->bvec_pool = mempool_create(NVMET_MIN_MPOOL_OBJ, mempool_alloc_slab, - mempool_free_slab, ns->bvec_cache); + mempool_free_slab, nvmet_bvec_cache); if (!ns->bvec_pool) { ret = -ENOMEM; @@ -77,9 +66,10 @@ return ret; err: + fput(ns->file); + ns->file = NULL; ns->size = 0; ns->blksize_shift = 0; - nvmet_file_ns_disable(ns); return ret; } --- linux-5.19.0.orig/drivers/nvme/target/loop.c +++ linux-5.19.0/drivers/nvme/target/loop.c @@ -266,8 +266,8 @@ if (!test_and_clear_bit(NVME_LOOP_Q_LIVE, &ctrl->queues[0].flags)) return; nvmet_sq_destroy(&ctrl->queues[0].nvme_sq); - blk_cleanup_queue(ctrl->ctrl.admin_q); - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); blk_mq_free_tag_set(&ctrl->admin_tag_set); } @@ -283,7 +283,7 @@ mutex_unlock(&nvme_loop_ctrl_mutex); if (nctrl->tagset) { - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); blk_mq_free_tag_set(&ctrl->tag_set); } kfree(ctrl->queues); @@ -410,9 +410,9 @@ out_cleanup_queue: clear_bit(NVME_LOOP_Q_LIVE, &ctrl->queues[0].flags); - blk_cleanup_queue(ctrl->ctrl.admin_q); + blk_mq_destroy_queue(ctrl->ctrl.admin_q); out_cleanup_fabrics_q: - blk_cleanup_queue(ctrl->ctrl.fabrics_q); + blk_mq_destroy_queue(ctrl->ctrl.fabrics_q); out_free_tagset: blk_mq_free_tag_set(&ctrl->admin_tag_set); out_free_sq: @@ -554,7 +554,7 @@ return 0; out_cleanup_connect_q: - blk_cleanup_queue(ctrl->ctrl.connect_q); + blk_mq_destroy_queue(ctrl->ctrl.connect_q); out_free_tagset: blk_mq_free_tag_set(&ctrl->tag_set); out_destroy_queues: --- linux-5.19.0.orig/drivers/nvme/target/nvmet.h +++ linux-5.19.0/drivers/nvme/target/nvmet.h @@ -77,7 +77,6 @@ struct completion disable_done; mempool_t *bvec_pool; - struct kmem_cache *bvec_cache; int use_p2pmem; struct pci_dev *p2p_dev; @@ -365,6 +364,8 @@ u64 error_slba; }; +#define NVMET_MAX_MPOOL_BVEC 16 +extern struct kmem_cache *nvmet_bvec_cache; extern struct workqueue_struct *buffered_io_wq; extern struct workqueue_struct *zbd_wq; extern struct workqueue_struct *nvmet_wq; --- linux-5.19.0.orig/drivers/nvme/target/passthru.c +++ linux-5.19.0/drivers/nvme/target/passthru.c @@ -215,9 +215,11 @@ { struct nvmet_req *req = container_of(w, struct nvmet_req, p.work); struct request *rq = req->p.rq; + struct nvme_ctrl *ctrl = nvme_req(rq)->ctrl; + u32 effects; int status; - status = nvme_execute_passthru_rq(rq); + status = nvme_execute_passthru_rq(rq, &effects); if (status == NVME_SC_SUCCESS && req->cmd->common.opcode == nvme_admin_identify) { @@ -238,6 +240,9 @@ req->cqe->result = nvme_req(rq)->result; nvmet_req_complete(req, status); blk_mq_free_request(rq); + + if (effects) + nvme_passthru_end(ctrl, effects, req->cmd, status); } static void nvmet_passthru_req_done(struct request *rq, --- linux-5.19.0.orig/drivers/nvme/target/tcp.c +++ linux-5.19.0/drivers/nvme/target/tcp.c @@ -935,10 +935,17 @@ struct nvme_tcp_data_pdu *data = &queue->pdu.data; struct nvmet_tcp_cmd *cmd; - if (likely(queue->nr_cmds)) + if (likely(queue->nr_cmds)) { + if (unlikely(data->ttag >= queue->nr_cmds)) { + pr_err("queue %d: received out of bound ttag %u, nr_cmds %u\n", + queue->idx, data->ttag, queue->nr_cmds); + nvmet_tcp_fatal_error(queue); + return -EPROTO; + } cmd = &queue->cmds[data->ttag]; - else + } 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", @@ -1506,6 +1513,9 @@ goto done; switch (sk->sk_state) { + case TCP_FIN_WAIT2: + case TCP_LAST_ACK: + break; case TCP_FIN_WAIT1: case TCP_CLOSE_WAIT: case TCP_CLOSE: @@ -1839,7 +1849,8 @@ { int ret; - nvmet_tcp_wq = alloc_workqueue("nvmet_tcp_wq", WQ_HIGHPRI, 0); + nvmet_tcp_wq = alloc_workqueue("nvmet_tcp_wq", + WQ_MEM_RECLAIM | WQ_HIGHPRI, 0); if (!nvmet_tcp_wq) return -ENOMEM; --- linux-5.19.0.orig/drivers/nvme/target/zns.c +++ linux-5.19.0/drivers/nvme/target/zns.c @@ -100,6 +100,7 @@ struct nvme_id_ns_zns *id_zns; u64 zsze; u16 status; + u32 mar, mor; if (le32_to_cpu(req->cmd->identify.nsid) == NVME_NSID_ALL) { req->error_loc = offsetof(struct nvme_identify, nsid); @@ -130,8 +131,20 @@ zsze = (bdev_zone_sectors(req->ns->bdev) << 9) >> req->ns->blksize_shift; id_zns->lbafe[0].zsze = cpu_to_le64(zsze); - id_zns->mor = cpu_to_le32(bdev_max_open_zones(req->ns->bdev)); - id_zns->mar = cpu_to_le32(bdev_max_active_zones(req->ns->bdev)); + + mor = bdev_max_open_zones(req->ns->bdev); + if (!mor) + mor = U32_MAX; + else + mor--; + id_zns->mor = cpu_to_le32(mor); + + mar = bdev_max_active_zones(req->ns->bdev); + if (!mar) + mar = U32_MAX; + else + mar--; + id_zns->mar = cpu_to_le32(mar); done: status = nvmet_copy_to_sgl(req, 0, id_zns, sizeof(*id_zns)); --- linux-5.19.0.orig/drivers/nvmem/core.c +++ linux-5.19.0/drivers/nvmem/core.c @@ -829,21 +829,18 @@ nvmem->dev.groups = nvmem_dev_groups; #endif - if (nvmem->nkeepout) { - rval = nvmem_validate_keepouts(nvmem); - if (rval) { - ida_free(&nvmem_ida, nvmem->id); - kfree(nvmem); - return ERR_PTR(rval); - } - } - dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name); rval = device_register(&nvmem->dev); if (rval) goto err_put_device; + if (nvmem->nkeepout) { + rval = nvmem_validate_keepouts(nvmem); + if (rval) + goto err_device_del; + } + if (config->compat) { rval = nvmem_sysfs_setup_compat(nvmem, config); if (rval) --- linux-5.19.0.orig/drivers/nvmem/rmem.c +++ linux-5.19.0/drivers/nvmem/rmem.c @@ -37,9 +37,9 @@ * but as of Dec 2020 this isn't possible on arm64. */ addr = memremap(priv->mem->base, available, MEMREMAP_WB); - if (IS_ERR(addr)) { + if (!addr) { dev_err(priv->dev, "Failed to remap memory region\n"); - return PTR_ERR(addr); + return -ENOMEM; } count = memory_read_from_buffer(val, bytes, &off, addr, available); --- linux-5.19.0.orig/drivers/of/device.c +++ linux-5.19.0/drivers/of/device.c @@ -81,8 +81,11 @@ * restricted-dma-pool region is allowed. */ if (of_device_is_compatible(node, "restricted-dma-pool") && - of_device_is_available(node)) + of_device_is_available(node)) { + of_node_put(node); break; + } + of_node_put(node); } /* --- linux-5.19.0.orig/drivers/of/fdt.c +++ linux-5.19.0/drivers/of/fdt.c @@ -246,7 +246,7 @@ } *pnp = np; - return true; + return 0; } static void reverse_nodes(struct device_node *parent) @@ -314,7 +314,7 @@ for (offset = 0; offset >= 0 && depth >= initial_depth; offset = fdt_next_node(blob, offset, &depth)) { - if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH)) + if (WARN_ON_ONCE(depth >= FDT_MAX_DEPTH - 1)) continue; if (!IS_ENABLED(CONFIG_OF_KOBJ) && --- linux-5.19.0.orig/drivers/of/kexec.c +++ linux-5.19.0/drivers/of/kexec.c @@ -126,6 +126,7 @@ { int ret, len; unsigned long tmp_addr; + unsigned long start_pfn, end_pfn; size_t tmp_size; const void *prop; @@ -140,6 +141,22 @@ if (ret) return ret; + /* Do some sanity on the returned size for the ima-kexec buffer */ + if (!tmp_size) + return -ENOENT; + + /* + * Calculate the PFNs for the buffer and ensure + * they are with in addressable memory. + */ + start_pfn = PHYS_PFN(tmp_addr); + end_pfn = PHYS_PFN(tmp_addr + tmp_size - 1); + if (!page_is_ram(start_pfn) || !page_is_ram(end_pfn)) { + pr_warn("IMA buffer at 0x%lx, size = 0x%zx beyond memory\n", + tmp_addr, tmp_size); + return -EINVAL; + } + *addr = __va(tmp_addr); *size = tmp_size; --- linux-5.19.0.orig/drivers/of/overlay.c +++ linux-5.19.0/drivers/of/overlay.c @@ -545,7 +545,7 @@ fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np); fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np); - node_path_match = !strcmp(fn_1, fn_2); + node_path_match = !fn_1 || !fn_2 || !strcmp(fn_1, fn_2); kfree(fn_1); kfree(fn_2); if (node_path_match) { @@ -580,7 +580,7 @@ fn_1 = kasprintf(GFP_KERNEL, "%pOF", ce_1->np); fn_2 = kasprintf(GFP_KERNEL, "%pOF", ce_2->np); - node_path_match = !strcmp(fn_1, fn_2); + node_path_match = !fn_1 || !fn_2 || !strcmp(fn_1, fn_2); kfree(fn_1); kfree(fn_2); if (node_path_match && @@ -903,12 +903,6 @@ { int ret = 0, ret_revert, ret_tmp; - if (devicetree_corrupt()) { - pr_err("devicetree state suspect, refuse to apply overlay\n"); - ret = -EBUSY; - goto out; - } - ret = of_resolve_phandles(ovcs->overlay_root); if (ret) goto out; @@ -983,6 +977,11 @@ *ret_ovcs_id = 0; + if (devicetree_corrupt()) { + pr_err("devicetree state suspect, refuse to apply overlay\n"); + return -EBUSY; + } + if (overlay_fdt_size < sizeof(struct fdt_header) || fdt_check_header(overlay_fdt)) { pr_err("Invalid overlay_fdt header\n"); --- linux-5.19.0.orig/drivers/of/property.c +++ linux-5.19.0/drivers/of/property.c @@ -993,8 +993,10 @@ nargs, index, &of_args); if (ret < 0) return ret; - if (!args) + if (!args) { + of_node_put(of_args.np); return 0; + } args->nargs = of_args.args_count; args->fwnode = of_fwnode_handle(of_args.np); --- linux-5.19.0.orig/drivers/opp/core.c +++ linux-5.19.0/drivers/opp/core.c @@ -2528,8 +2528,8 @@ } virt_dev = dev_pm_domain_attach_by_name(dev, *name); - if (IS_ERR(virt_dev)) { - ret = PTR_ERR(virt_dev); + if (IS_ERR_OR_NULL(virt_dev)) { + ret = PTR_ERR(virt_dev) ? : -ENODEV; dev_err(dev, "Couldn't attach to pm_domain: %d\n", ret); goto err; } --- linux-5.19.0.orig/drivers/opp/of.c +++ linux-5.19.0/drivers/opp/of.c @@ -1443,12 +1443,12 @@ * It provides the power used by @dev at @kHz if it is the frequency of an * existing OPP, or at the frequency of the first OPP above @kHz otherwise * (see dev_pm_opp_find_freq_ceil()). This function updates @kHz to the ceiled - * frequency and @mW to the associated power. + * frequency and @uW to the associated power. * * Returns 0 on success or a proper -EINVAL value in case of error. */ static int __maybe_unused -_get_dt_power(struct device *dev, unsigned long *mW, unsigned long *kHz) +_get_dt_power(struct device *dev, unsigned long *uW, unsigned long *kHz) { struct dev_pm_opp *opp; unsigned long opp_freq, opp_power; @@ -1465,7 +1465,7 @@ return -EINVAL; *kHz = opp_freq / 1000; - *mW = opp_power / 1000; + *uW = opp_power; return 0; } @@ -1475,14 +1475,14 @@ * This computes the power estimated by @dev at @kHz if it is the frequency * of an existing OPP, or at the frequency of the first OPP above @kHz otherwise * (see dev_pm_opp_find_freq_ceil()). This function updates @kHz to the ceiled - * frequency and @mW to the associated power. The power is estimated as + * frequency and @uW to the associated power. The power is estimated as * P = C * V^2 * f with C being the device's capacitance and V and f * respectively the voltage and frequency of the OPP. * * Returns -EINVAL if the power calculation failed because of missing * parameters, 0 otherwise. */ -static int __maybe_unused _get_power(struct device *dev, unsigned long *mW, +static int __maybe_unused _get_power(struct device *dev, unsigned long *uW, unsigned long *kHz) { struct dev_pm_opp *opp; @@ -1512,9 +1512,10 @@ return -EINVAL; tmp = (u64)cap * mV * mV * (Hz / 1000000); - do_div(tmp, 1000000000); + /* Provide power in micro-Watts */ + do_div(tmp, 1000000); - *mW = (unsigned long)tmp; + *uW = (unsigned long)tmp; *kHz = Hz / 1000; return 0; --- linux-5.19.0.orig/drivers/parisc/ccio-dma.c +++ linux-5.19.0/drivers/parisc/ccio-dma.c @@ -1380,15 +1380,17 @@ } } -static void __init ccio_init_resources(struct ioc *ioc) +static int __init ccio_init_resources(struct ioc *ioc) { struct resource *res = ioc->mmio_region; char *name = kmalloc(14, GFP_KERNEL); - + if (unlikely(!name)) + return -ENOMEM; snprintf(name, 14, "GSC Bus [%d/]", ioc->hw_path); ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low); ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv); + return 0; } static int new_ioc_area(struct resource *res, unsigned long size, @@ -1543,7 +1545,11 @@ return -ENOMEM; } ccio_ioc_init(ioc); - ccio_init_resources(ioc); + if (ccio_init_resources(ioc)) { + iounmap(ioc->ioc_regs); + kfree(ioc); + return -ENOMEM; + } hppa_dma_ops = &ccio_ops; hba = kzalloc(sizeof(*hba), GFP_KERNEL); --- linux-5.19.0.orig/drivers/parisc/iosapic.c +++ linux-5.19.0/drivers/parisc/iosapic.c @@ -875,6 +875,7 @@ return vi->txn_irq; } +EXPORT_SYMBOL(iosapic_serial_irq); #endif --- linux-5.19.0.orig/drivers/parisc/lba_pci.c +++ linux-5.19.0/drivers/parisc/lba_pci.c @@ -1476,9 +1476,13 @@ u32 func_class; void *tmp_obj; char *version; - void __iomem *addr = ioremap(dev->hpa.start, 4096); + void __iomem *addr; int max; + addr = ioremap(dev->hpa.start, 4096); + if (addr == NULL) + return -ENOMEM; + /* Read HW Rev First */ func_class = READ_REG32(addr + LBA_FCLASS); --- linux-5.19.0.orig/drivers/parport/parport_pc.c +++ linux-5.19.0/drivers/parport/parport_pc.c @@ -468,7 +468,7 @@ const unsigned char *bufp = buf; size_t left = length; unsigned long expire = jiffies + port->physport->cad->timeout; - const int fifo = FIFO(port); + const unsigned long fifo = FIFO(port); int poll_for = 8; /* 80 usecs */ const struct parport_pc_private *priv = port->physport->private_data; const int fifo_depth = priv->fifo_depth; --- linux-5.19.0.orig/drivers/pci/controller/dwc/pcie-designware-ep.c +++ linux-5.19.0/drivers/pci/controller/dwc/pcie-designware-ep.c @@ -780,8 +780,9 @@ ep->msi_mem = pci_epc_mem_alloc_addr(epc, &ep->msi_mem_phys, epc->mem->window.page_size); if (!ep->msi_mem) { + ret = -ENOMEM; dev_err(dev, "Failed to reserve memory for MSI/MSI-X\n"); - return -ENOMEM; + goto err_exit_epc_mem; } if (ep->ops->get_features) { @@ -790,6 +791,19 @@ return 0; } - return dw_pcie_ep_init_complete(ep); + ret = dw_pcie_ep_init_complete(ep); + if (ret) + goto err_free_epc_mem; + + return 0; + +err_free_epc_mem: + pci_epc_mem_free_addr(epc, ep->msi_mem_phys, ep->msi_mem, + epc->mem->window.page_size); + +err_exit_epc_mem: + pci_epc_mem_exit(epc); + + return ret; } EXPORT_SYMBOL_GPL(dw_pcie_ep_init); --- linux-5.19.0.orig/drivers/pci/controller/dwc/pcie-designware-host.c +++ linux-5.19.0/drivers/pci/controller/dwc/pcie-designware-host.c @@ -421,8 +421,14 @@ bridge->sysdata = pp; ret = pci_host_probe(bridge); - if (!ret) - return 0; + if (ret) + goto err_stop_link; + + return 0; + +err_stop_link: + if (pci->ops && pci->ops->stop_link) + pci->ops->stop_link(pci); err_free_msi: if (pp->has_msi_ctrl) @@ -433,8 +439,14 @@ void dw_pcie_host_deinit(struct pcie_port *pp) { + struct dw_pcie *pci = to_dw_pcie_from_pp(pp); + pci_stop_root_bus(pp->bridge->bus); pci_remove_root_bus(pp->bridge->bus); + + if (pci->ops && pci->ops->stop_link) + pci->ops->stop_link(pci); + if (pp->has_msi_ctrl) dw_pcie_free_msi(pp); } @@ -531,7 +543,6 @@ void dw_pcie_setup_rc(struct pcie_port *pp) { - int i; u32 val, ctrl, num_ctrls; struct dw_pcie *pci = to_dw_pcie_from_pp(pp); @@ -582,19 +593,22 @@ PCI_COMMAND_MASTER | PCI_COMMAND_SERR; dw_pcie_writel_dbi(pci, PCI_COMMAND, val); - /* Ensure all outbound windows are disabled so there are multiple matches */ - for (i = 0; i < pci->num_ob_windows; i++) - dw_pcie_disable_atu(pci, i, DW_PCIE_REGION_OUTBOUND); - /* * If the platform provides its own child bus config accesses, it means * the platform uses its own address translation component rather than * ATU, so we should not program the ATU here. */ if (pp->bridge->child_ops == &dw_child_pcie_ops) { - int atu_idx = 0; + int i, atu_idx = 0; struct resource_entry *entry; + /* + * Disable all outbound windows to make sure a transaction + * can't match multiple windows. + */ + for (i = 0; i < pci->num_ob_windows; i++) + dw_pcie_disable_atu(pci, i, DW_PCIE_REGION_OUTBOUND); + /* Get last memory resource entry */ resource_list_for_each_entry(entry, &pp->bridge->windows) { if (resource_type(entry->res) != IORESOURCE_MEM) --- linux-5.19.0.orig/drivers/pci/controller/dwc/pcie-designware.c +++ linux-5.19.0/drivers/pci/controller/dwc/pcie-designware.c @@ -287,8 +287,8 @@ dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_UPPER_TARGET, upper_32_bits(pci_addr)); val = type | PCIE_ATU_FUNC_NUM(func_no); - val = upper_32_bits(size - 1) ? - val | PCIE_ATU_INCREASE_REGION_SIZE : val; + if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr)) + val |= PCIE_ATU_INCREASE_REGION_SIZE; if (pci->version == 0x490A) val = dw_pcie_enable_ecrc(val); dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL1, val); @@ -315,6 +315,7 @@ u64 pci_addr, u64 size) { u32 retries, val; + u64 limit_addr; if (pci->ops && pci->ops->cpu_addr_fixup) cpu_addr = pci->ops->cpu_addr_fixup(pci, cpu_addr); @@ -325,6 +326,8 @@ return; } + limit_addr = cpu_addr + size - 1; + dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT, PCIE_ATU_REGION_OUTBOUND | index); dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_BASE, @@ -332,17 +335,18 @@ dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_BASE, upper_32_bits(cpu_addr)); dw_pcie_writel_dbi(pci, PCIE_ATU_LIMIT, - lower_32_bits(cpu_addr + size - 1)); + lower_32_bits(limit_addr)); if (pci->version >= 0x460A) dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_LIMIT, - upper_32_bits(cpu_addr + size - 1)); + upper_32_bits(limit_addr)); dw_pcie_writel_dbi(pci, PCIE_ATU_LOWER_TARGET, lower_32_bits(pci_addr)); dw_pcie_writel_dbi(pci, PCIE_ATU_UPPER_TARGET, upper_32_bits(pci_addr)); val = type | PCIE_ATU_FUNC_NUM(func_no); - val = ((upper_32_bits(size - 1)) && (pci->version >= 0x460A)) ? - val | PCIE_ATU_INCREASE_REGION_SIZE : val; + if (upper_32_bits(limit_addr) > upper_32_bits(cpu_addr) && + pci->version >= 0x460A) + val |= PCIE_ATU_INCREASE_REGION_SIZE; if (pci->version == 0x490A) val = dw_pcie_enable_ecrc(val); dw_pcie_writel_dbi(pci, PCIE_ATU_CR1, val); @@ -491,7 +495,7 @@ void dw_pcie_disable_atu(struct dw_pcie *pci, int index, enum dw_pcie_region_type type) { - int region; + u32 region; switch (type) { case DW_PCIE_REGION_INBOUND: @@ -504,8 +508,18 @@ return; } - dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT, region | index); - dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, ~(u32)PCIE_ATU_ENABLE); + if (pci->iatu_unroll_enabled) { + if (region == PCIE_ATU_REGION_INBOUND) { + dw_pcie_writel_ib_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2, + ~(u32)PCIE_ATU_ENABLE); + } else { + dw_pcie_writel_ob_unroll(pci, index, PCIE_ATU_UNR_REGION_CTRL2, + ~(u32)PCIE_ATU_ENABLE); + } + } else { + dw_pcie_writel_dbi(pci, PCIE_ATU_VIEWPORT, region | index); + dw_pcie_writel_dbi(pci, PCIE_ATU_CR2, ~(u32)PCIE_ATU_ENABLE); + } } int dw_pcie_wait_for_link(struct dw_pcie *pci) @@ -717,7 +731,7 @@ if (pci->n_fts[1]) { val = dw_pcie_readl_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL); val &= ~PORT_LOGIC_N_FTS_MASK; - val |= pci->n_fts[pci->link_gen - 1]; + val |= pci->n_fts[1]; dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); } @@ -726,6 +740,13 @@ val |= PORT_LINK_DLL_LINK_EN; dw_pcie_writel_dbi(pci, PCIE_PORT_LINK_CONTROL, val); + if (of_property_read_bool(np, "snps,enable-cdm-check")) { + val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); + val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS | + PCIE_PL_CHK_REG_CHK_REG_START; + dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); + } + of_property_read_u32(np, "num-lanes", &pci->num_lanes); if (!pci->num_lanes) { dev_dbg(pci->dev, "Using h/w default number of lanes\n"); @@ -772,11 +793,4 @@ break; } dw_pcie_writel_dbi(pci, PCIE_LINK_WIDTH_SPEED_CONTROL, val); - - if (of_property_read_bool(np, "snps,enable-cdm-check")) { - val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); - val |= PCIE_PL_CHK_REG_CHK_REG_CONTINUOUS | - PCIE_PL_CHK_REG_CHK_REG_START; - dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); - } } --- linux-5.19.0.orig/drivers/pci/controller/dwc/pcie-qcom.c +++ linux-5.19.0/drivers/pci/controller/dwc/pcie-qcom.c @@ -337,8 +337,6 @@ 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"); @@ -381,15 +379,15 @@ goto err_deassert_axi; } - ret = clk_bulk_prepare_enable(ARRAY_SIZE(res->clks), res->clks); - if (ret) - goto err_clks; - /* enable PCIe clocks and resets */ val = readl(pcie->parf + PCIE20_PARF_PHY_CTRL); val &= ~BIT(0); writel(val, pcie->parf + PCIE20_PARF_PHY_CTRL); + ret = clk_bulk_prepare_enable(ARRAY_SIZE(res->clks), res->clks); + if (ret) + goto err_clks; + if (of_device_is_compatible(node, "qcom,pcie-ipq8064") || of_device_is_compatible(node, "qcom,pcie-ipq8064-v2")) { writel(PCS_DEEMPH_TX_DEEMPH_GEN1(24) | @@ -1038,9 +1036,7 @@ struct qcom_pcie_resources_2_3_3 *res = &pcie->res.v2_3_3; struct dw_pcie *pci = pcie->pci; struct device *dev = pci->dev; - u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); int i, ret; - u32 val; for (i = 0; i < ARRAY_SIZE(res->rst); i++) { ret = reset_control_assert(res->rst[i]); @@ -1097,6 +1093,33 @@ goto err_clk_aux; } + return 0; + +err_clk_aux: + clk_disable_unprepare(res->ahb_clk); +err_clk_ahb: + clk_disable_unprepare(res->axi_s_clk); +err_clk_axi_s: + clk_disable_unprepare(res->axi_m_clk); +err_clk_axi_m: + clk_disable_unprepare(res->iface); +err_clk_iface: + /* + * Not checking for failure, will anyway return + * the original failure in 'ret'. + */ + for (i = 0; i < ARRAY_SIZE(res->rst); i++) + reset_control_assert(res->rst[i]); + + return ret; +} + +static int qcom_pcie_post_init_2_3_3(struct qcom_pcie *pcie) +{ + struct dw_pcie *pci = pcie->pci; + u16 offset = dw_pcie_find_capability(pci, PCI_CAP_ID_EXP); + u32 val; + writel(SLV_ADDR_SPACE_SZ, pcie->parf + PCIE20_v3_PARF_SLV_ADDR_SPACE_SIZE); @@ -1124,24 +1147,6 @@ PCI_EXP_DEVCTL2); return 0; - -err_clk_aux: - clk_disable_unprepare(res->ahb_clk); -err_clk_ahb: - clk_disable_unprepare(res->axi_s_clk); -err_clk_axi_s: - clk_disable_unprepare(res->axi_m_clk); -err_clk_axi_m: - clk_disable_unprepare(res->iface); -err_clk_iface: - /* - * Not checking for failure, will anyway return - * the original failure in 'ret'. - */ - for (i = 0; i < ARRAY_SIZE(res->rst); i++) - reset_control_assert(res->rst[i]); - - return ret; } static int qcom_pcie_get_resources_2_7_0(struct qcom_pcie *pcie) @@ -1467,6 +1472,7 @@ static const struct qcom_pcie_ops ops_2_3_3 = { .get_resources = qcom_pcie_get_resources_2_3_3, .init = qcom_pcie_init_2_3_3, + .post_init = qcom_pcie_post_init_2_3_3, .deinit = qcom_pcie_deinit_2_3_3, .ltssm_enable = qcom_pcie_2_3_2_ltssm_enable, }; --- linux-5.19.0.orig/drivers/pci/controller/dwc/pcie-tegra194.c +++ linux-5.19.0/drivers/pci/controller/dwc/pcie-tegra194.c @@ -350,15 +350,14 @@ struct tegra194_pcie *pcie = arg; struct dw_pcie *pci = &pcie->pci; struct pcie_port *pp = &pci->pp; - u32 val, tmp; + u32 val, status_l0, status_l1; u16 val_w; - val = appl_readl(pcie, APPL_INTR_STATUS_L0); - if (val & APPL_INTR_STATUS_L0_LINK_STATE_INT) { - val = appl_readl(pcie, APPL_INTR_STATUS_L1_0_0); - if (val & APPL_INTR_STATUS_L1_0_0_LINK_REQ_RST_NOT_CHGED) { - appl_writel(pcie, val, APPL_INTR_STATUS_L1_0_0); - + status_l0 = appl_readl(pcie, APPL_INTR_STATUS_L0); + if (status_l0 & APPL_INTR_STATUS_L0_LINK_STATE_INT) { + status_l1 = appl_readl(pcie, APPL_INTR_STATUS_L1_0_0); + appl_writel(pcie, status_l1, APPL_INTR_STATUS_L1_0_0); + if (status_l1 & APPL_INTR_STATUS_L1_0_0_LINK_REQ_RST_NOT_CHGED) { /* SBR & Surprise Link Down WAR */ val = appl_readl(pcie, APPL_CAR_RESET_OVRD); val &= ~APPL_CAR_RESET_OVRD_CYA_OVERRIDE_CORE_RST_N; @@ -374,15 +373,15 @@ } } - if (val & APPL_INTR_STATUS_L0_INT_INT) { - val = appl_readl(pcie, APPL_INTR_STATUS_L1_8_0); - if (val & APPL_INTR_STATUS_L1_8_0_AUTO_BW_INT_STS) { + if (status_l0 & APPL_INTR_STATUS_L0_INT_INT) { + status_l1 = appl_readl(pcie, APPL_INTR_STATUS_L1_8_0); + if (status_l1 & APPL_INTR_STATUS_L1_8_0_AUTO_BW_INT_STS) { appl_writel(pcie, APPL_INTR_STATUS_L1_8_0_AUTO_BW_INT_STS, APPL_INTR_STATUS_L1_8_0); apply_bad_link_workaround(pp); } - if (val & APPL_INTR_STATUS_L1_8_0_BW_MGT_INT_STS) { + if (status_l1 & APPL_INTR_STATUS_L1_8_0_BW_MGT_INT_STS) { appl_writel(pcie, APPL_INTR_STATUS_L1_8_0_BW_MGT_INT_STS, APPL_INTR_STATUS_L1_8_0); @@ -394,25 +393,24 @@ } } - val = appl_readl(pcie, APPL_INTR_STATUS_L0); - if (val & APPL_INTR_STATUS_L0_CDM_REG_CHK_INT) { - val = appl_readl(pcie, APPL_INTR_STATUS_L1_18); - tmp = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); - if (val & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_CMPLT) { + if (status_l0 & APPL_INTR_STATUS_L0_CDM_REG_CHK_INT) { + status_l1 = appl_readl(pcie, APPL_INTR_STATUS_L1_18); + val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS); + if (status_l1 & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_CMPLT) { dev_info(pci->dev, "CDM check complete\n"); - tmp |= PCIE_PL_CHK_REG_CHK_REG_COMPLETE; + val |= PCIE_PL_CHK_REG_CHK_REG_COMPLETE; } - if (val & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_CMP_ERR) { + if (status_l1 & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_CMP_ERR) { dev_err(pci->dev, "CDM comparison mismatch\n"); - tmp |= PCIE_PL_CHK_REG_CHK_REG_COMPARISON_ERROR; + val |= PCIE_PL_CHK_REG_CHK_REG_COMPARISON_ERROR; } - if (val & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_LOGIC_ERR) { + if (status_l1 & APPL_INTR_STATUS_L1_18_CDM_REG_CHK_LOGIC_ERR) { dev_err(pci->dev, "CDM Logic error\n"); - tmp |= PCIE_PL_CHK_REG_CHK_REG_LOGIC_ERROR; + val |= PCIE_PL_CHK_REG_CHK_REG_LOGIC_ERROR; } - dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, tmp); - tmp = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_ERR_ADDR); - dev_err(pci->dev, "CDM Error Address Offset = 0x%08X\n", tmp); + dw_pcie_writel_dbi(pci, PCIE_PL_CHK_REG_CONTROL_STATUS, val); + val = dw_pcie_readl_dbi(pci, PCIE_PL_CHK_REG_ERR_ADDR); + dev_err(pci->dev, "CDM Error Address Offset = 0x%08X\n", val); } return IRQ_HANDLED; @@ -978,7 +976,7 @@ offset = dw_pcie_find_ext_capability(pci, PCI_EXT_CAP_ID_DLF); val = dw_pcie_readl_dbi(pci, offset + PCI_DLF_CAP); val &= ~PCI_DLF_EXCHANGE_ENABLE; - dw_pcie_writel_dbi(pci, offset, val); + dw_pcie_writel_dbi(pci, offset + PCI_DLF_CAP, val); tegra194_pcie_host_init(pp); dw_pcie_setup_rc(pp); @@ -1949,6 +1947,7 @@ if (ret) { dev_err(dev, "Failed to initialize DWC Endpoint subsystem: %d\n", ret); + pm_runtime_disable(dev); return ret; } --- linux-5.19.0.orig/drivers/pci/controller/pci-aardvark.c +++ linux-5.19.0/drivers/pci/controller/pci-aardvark.c @@ -8,6 +8,7 @@ * Author: Hezi Shahmoon */ +#include #include #include #include @@ -857,14 +858,11 @@ switch (reg) { - case PCI_EXP_SLTCTL: - *value = PCI_EXP_SLTSTA_PDS << 16; - return PCI_BRIDGE_EMUL_HANDLED; - /* - * PCI_EXP_RTCTL and PCI_EXP_RTSTA are also supported, but do not need - * to be handled here, because their values are stored in emulated - * config space buffer, and we read them from there when needed. + * PCI_EXP_SLTCAP, PCI_EXP_SLTCTL, PCI_EXP_RTCTL and PCI_EXP_RTSTA are + * also supported, but do not need to be handled here, because their + * values are stored in emulated config space buffer, and we read them + * from there when needed. */ case PCI_EXP_LNKCAP: { @@ -977,8 +975,25 @@ /* Support interrupt A for MSI feature */ bridge->conf.intpin = PCI_INTERRUPT_INTA; - /* Aardvark HW provides PCIe Capability structure in version 2 */ - bridge->pcie_conf.cap = cpu_to_le16(2); + /* + * Aardvark HW provides PCIe Capability structure in version 2 and + * indicate slot support, which is emulated. + */ + bridge->pcie_conf.cap = cpu_to_le16(2 | PCI_EXP_FLAGS_SLOT); + + /* + * Set Presence Detect State bit permanently since there is no support + * for unplugging the card nor detecting whether it is plugged. (If a + * platform exists in the future that supports it, via a GPIO for + * example, it should be implemented via this bit.) + * + * Set physical slot number to 1 since there is only one port and zero + * value is reserved for ports within the same silicon as Root Port + * which is not our case. + */ + bridge->pcie_conf.slotcap = cpu_to_le32(FIELD_PREP(PCI_EXP_SLTCAP_PSN, + 1)); + bridge->pcie_conf.slotsta = cpu_to_le16(PCI_EXP_SLTSTA_PDS); /* Indicates supports for Completion Retry Status */ bridge->pcie_conf.rootcap = cpu_to_le16(PCI_EXP_RTCAP_CRSVIS); --- linux-5.19.0.orig/drivers/pci/controller/pci-hyperv.c +++ linux-5.19.0/drivers/pci/controller/pci-hyperv.c @@ -1614,7 +1614,7 @@ static u32 hv_compose_msi_req_v1( struct pci_create_interrupt *int_pkt, struct cpumask *affinity, - u32 slot, u8 vector, u8 vector_count) + u32 slot, u8 vector, u16 vector_count) { int_pkt->message_type.type = PCI_CREATE_INTERRUPT_MESSAGE; int_pkt->wslot.slot = slot; @@ -1642,7 +1642,7 @@ static u32 hv_compose_msi_req_v2( struct pci_create_interrupt2 *int_pkt, struct cpumask *affinity, - u32 slot, u8 vector, u8 vector_count) + u32 slot, u8 vector, u16 vector_count) { int cpu; @@ -1661,7 +1661,7 @@ static u32 hv_compose_msi_req_v3( struct pci_create_interrupt3 *int_pkt, struct cpumask *affinity, - u32 slot, u32 vector, u8 vector_count) + u32 slot, u32 vector, u16 vector_count) { int cpu; @@ -1701,7 +1701,12 @@ struct compose_comp_ctxt comp; struct tran_int_desc *int_desc; struct msi_desc *msi_desc; - u8 vector, vector_count; + /* + * vector_count should be u16: see hv_msi_desc, hv_msi_desc2 + * and hv_msi_desc3. vector must be u32: see hv_msi_desc3. + */ + u16 vector_count; + u32 vector; struct { struct pci_packet pci_pkt; union { @@ -1767,6 +1772,11 @@ vector_count = 1; } + /* + * hv_compose_msi_req_v1 and v2 are for x86 only, meaning 'vector' + * can't exceed u8. Cast 'vector' down to u8 for v1/v2 explicitly + * for better readability. + */ memset(&ctxt, 0, sizeof(ctxt)); init_completion(&comp.comp_pkt.host_event); ctxt.pci_pkt.completion_func = hv_pci_compose_compl; @@ -1777,7 +1787,7 @@ size = hv_compose_msi_req_v1(&ctxt.int_pkts.v1, dest, hpdev->desc.win_slot.slot, - vector, + (u8)vector, vector_count); break; @@ -1786,7 +1796,7 @@ size = hv_compose_msi_req_v2(&ctxt.int_pkts.v2, dest, hpdev->desc.win_slot.slot, - vector, + (u8)vector, vector_count); break; --- linux-5.19.0.orig/drivers/pci/controller/pcie-mediatek-gen3.c +++ linux-5.19.0/drivers/pci/controller/pcie-mediatek-gen3.c @@ -600,7 +600,8 @@ &intx_domain_ops, pcie); if (!pcie->intx_domain) { dev_err(dev, "failed to create INTx IRQ domain\n"); - return -ENODEV; + ret = -ENODEV; + goto out_put_node; } /* Setup MSI */ @@ -623,13 +624,15 @@ goto err_msi_domain; } + of_node_put(intc_node); return 0; err_msi_domain: irq_domain_remove(pcie->msi_bottom_domain); err_msi_bottom_domain: irq_domain_remove(pcie->intx_domain); - +out_put_node: + of_node_put(intc_node); return ret; } --- linux-5.19.0.orig/drivers/pci/controller/pcie-microchip-host.c +++ linux-5.19.0/drivers/pci/controller/pcie-microchip-host.c @@ -904,6 +904,7 @@ &event_domain_ops, port); if (!port->event_domain) { dev_err(dev, "failed to get event domain\n"); + of_node_put(pcie_intc_node); return -ENOMEM; } @@ -913,6 +914,7 @@ &intx_domain_ops, port); if (!port->intx_domain) { dev_err(dev, "failed to get an INTx IRQ domain\n"); + of_node_put(pcie_intc_node); return -ENOMEM; } --- linux-5.19.0.orig/drivers/pci/controller/pcie-mt7621.c +++ linux-5.19.0/drivers/pci/controller/pcie-mt7621.c @@ -471,7 +471,8 @@ } static const struct soc_device_attribute mt7621_pcie_quirks_match[] = { - { .soc_id = "mt7621", .revision = "E2" } + { .soc_id = "mt7621", .revision = "E2" }, + { /* sentinel */ } }; static int mt7621_pcie_probe(struct platform_device *pdev) --- linux-5.19.0.orig/drivers/pci/controller/vmd.c +++ linux-5.19.0/drivers/pci/controller/vmd.c @@ -719,6 +719,7 @@ resource_size_t offset[2] = {0}; resource_size_t membar2_offset = 0x2000; struct pci_bus *child; + struct pci_dev *dev; int ret; /* @@ -859,8 +860,25 @@ pci_scan_child_bus(vmd->bus); vmd_domain_reset(vmd); - list_for_each_entry(child, &vmd->bus->children, node) - pci_reset_bus(child->self); + + /* When Intel VMD is enabled, the OS does not discover the Root Ports + * owned by Intel VMD within the MMCFG space. pci_reset_bus() applies + * a reset to the parent of the PCI device supplied as argument. This + * is why we pass a child device, so the reset can be triggered at + * the Intel bridge level and propagated to all the children in the + * hierarchy. + */ + list_for_each_entry(child, &vmd->bus->children, node) { + if (!list_empty(&child->devices)) { + dev = list_first_entry(&child->devices, + struct pci_dev, bus_list); + if (pci_reset_bus(dev)) + pci_warn(dev, "can't reset device: %d\n", ret); + + break; + } + } + pci_assign_unassigned_bus_resources(vmd->bus); /* @@ -981,6 +999,11 @@ struct vmd_dev *vmd = pci_get_drvdata(pdev); int err, i; + if (vmd->irq_domain) + vmd_set_msi_remapping(vmd, true); + else + vmd_set_msi_remapping(vmd, false); + for (i = 0; i < vmd->msix_count; i++) { err = devm_request_irq(dev, vmd->irqs[i].virq, vmd_irq, IRQF_NO_THREAD, --- linux-5.19.0.orig/drivers/pci/endpoint/functions/pci-epf-test.c +++ linux-5.19.0/drivers/pci/endpoint/functions/pci-epf-test.c @@ -627,7 +627,6 @@ cancel_delayed_work(&epf_test->cmd_handler); pci_epf_test_clean_dma_chan(epf_test); - pci_epc_stop(epc); for (bar = 0; bar < PCI_STD_NUM_BARS; bar++) { epf_bar = &epf->bar[bar]; @@ -884,7 +883,7 @@ if (ret) epf_test->dma_supported = false; - if (linkup_notifier) { + if (linkup_notifier || core_init_notifier) { epf->nb.notifier_call = pci_epf_test_notifier; pci_epc_register_notifier(epc, &epf->nb); } else { --- linux-5.19.0.orig/drivers/pci/irq.c +++ linux-5.19.0/drivers/pci/irq.c @@ -44,6 +44,8 @@ va_start(ap, fmt); devname = kvasprintf(GFP_KERNEL, fmt, ap); va_end(ap); + if (!devname) + return -ENOMEM; ret = request_threaded_irq(pci_irq_vector(dev, nr), handler, thread_fn, irqflags, devname, dev_id); --- linux-5.19.0.orig/drivers/pci/msi/msi.c +++ linux-5.19.0/drivers/pci/msi/msi.c @@ -637,22 +637,15 @@ dev->msix_base = base; + /* Ensure that all table entries are masked. */ + msix_mask_all(base, tsize); + ret = msix_setup_interrupts(dev, base, entries, nvec, affd); if (ret) goto out_disable; /* Disable INTX */ pci_intx_for_msi(dev, 0); - - /* - * Ensure that all table entries are masked to prevent - * stale entries from firing in a crash kernel. - * - * Done late to deal with a broken Marvell NVME device - * which takes the MSI-X mask bits into account even - * when MSI-X is disabled, which prevents MSI delivery. - */ - msix_mask_all(base, tsize); pci_msix_clear_and_set_ctrl(dev, PCI_MSIX_FLAGS_MASKALL, 0); pcibios_free_irq(dev); --- linux-5.19.0.orig/drivers/pci/pci-driver.c +++ linux-5.19.0/drivers/pci/pci-driver.c @@ -774,6 +774,12 @@ pci_dev->skip_bus_pm = false; + /* + * Disabling PTM allows some systems, e.g., Intel mobile chips + * since Coffee Lake, to enter a lower-power PM state. + */ + pci_suspend_ptm(pci_dev); + if (pci_has_legacy_pm_support(pci_dev)) return pci_legacy_suspend(dev, PMSG_SUSPEND); @@ -867,20 +873,15 @@ } } - if (pci_dev->skip_bus_pm) { + if (!pci_dev->state_saved) { + pci_save_state(pci_dev); + /* - * Either the device is a bridge with a child in D0 below it, or - * the function is running for the second time in a row without - * going through full resume, which is possible only during - * suspend-to-idle in a spurious wakeup case. The device should - * be in D0 at this point, but if it is a bridge, it may be - * necessary to save its state. + * If the device is a bridge with a child in D0 below it, + * it needs to stay in D0, so check skip_bus_pm to avoid + * putting it into a low-power state in that case. */ - if (!pci_dev->state_saved) - pci_save_state(pci_dev); - } else if (!pci_dev->state_saved) { - pci_save_state(pci_dev); - if (pci_power_manageable(pci_dev)) + if (!pci_dev->skip_bus_pm && pci_power_manageable(pci_dev)) pci_prepare_to_sleep(pci_dev); } @@ -987,6 +988,8 @@ if (pci_dev->state_saved) pci_restore_standard_config(pci_dev); + pci_resume_ptm(pci_dev); + if (pci_has_legacy_pm_support(pci_dev)) return pci_legacy_resume(dev); @@ -1274,6 +1277,8 @@ pci_power_t prev = pci_dev->current_state; int error; + pci_suspend_ptm(pci_dev); + /* * If pci_dev->driver is not set (unbound), we leave the device in D0, * but it may go to D3cold when the bridge above it runtime suspends. @@ -1335,6 +1340,7 @@ * D3cold when the bridge above it runtime suspended. */ pci_pm_default_resume_early(pci_dev); + pci_resume_ptm(pci_dev); if (!pci_dev->driver) return 0; --- linux-5.19.0.orig/drivers/pci/pci.c +++ linux-5.19.0/drivers/pci/pci.c @@ -166,6 +166,23 @@ /* Time to wait after a reset for device to become responsive */ #define PCIE_RESET_READY_POLL_MS 60000 +static const struct dmi_system_id aspm_fix_whitelist[] = { + { + .ident = "LENOVO Stealth Thinkstation", + .matches = { + DMI_MATCH(DMI_BIOS_VERSION, "S07K"), + }, + }, + { + .ident = "Dell Inc. Precision 7960 Tower", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Precision 7960 Tower"), + }, + }, + {} +}; + /** * pci_bus_max_busnr - returns maximum PCI bus number of given bus' children * @bus: pointer to PCI bus structure to search @@ -1293,7 +1310,7 @@ pci_restore_bars(dev); } - if (dev->bus->self) + if (dev->bus->self && !dmi_check_system(aspm_fix_whitelist)) pcie_aspm_pm_state_change(dev->bus->self); return 0; @@ -1667,6 +1684,8 @@ return i; pci_save_ltr_state(dev); + if (dmi_check_system(aspm_fix_whitelist)) + pci_save_aspm_l1ss_state(dev); pci_save_dpc_state(dev); pci_save_aer_state(dev); pci_save_ptm_state(dev); @@ -1773,6 +1792,8 @@ * LTR itself (in the PCIe capability). */ pci_restore_ltr_state(dev); + if (dmi_check_system(aspm_fix_whitelist)) + pci_restore_aspm_l1ss_state(dev); pci_restore_pcie_state(dev); pci_restore_pasid_state(dev); @@ -2710,24 +2731,12 @@ if (target_state == PCI_POWER_ERROR) return -EIO; - /* - * There are systems (for example, Intel mobile chips since Coffee - * Lake) where the power drawn while suspended can be significantly - * reduced by disabling PTM on PCIe root ports as this allows the - * port to enter a lower-power PM state and the SoC to reach a - * lower-power idle state as a whole. - */ - if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) - pci_disable_ptm(dev); - pci_enable_wake(dev, target_state, wakeup); error = pci_set_power_state(dev, target_state); - if (error) { + if (error) pci_enable_wake(dev, target_state, false); - pci_restore_ptm_state(dev); - } return error; } @@ -2768,24 +2777,12 @@ if (target_state == PCI_POWER_ERROR) return -EIO; - /* - * There are systems (for example, Intel mobile chips since Coffee - * Lake) where the power drawn while suspended can be significantly - * reduced by disabling PTM on PCIe root ports as this allows the - * port to enter a lower-power PM state and the SoC to reach a - * lower-power idle state as a whole. - */ - if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT) - pci_disable_ptm(dev); - __pci_enable_wake(dev, target_state, pci_dev_run_wake(dev)); error = pci_set_power_state(dev, target_state); - if (error) { + if (error) pci_enable_wake(dev, target_state, false); - pci_restore_ptm_state(dev); - } return error; } @@ -3489,6 +3486,13 @@ if (error) pci_err(dev, "unable to allocate suspend buffer for LTR\n"); + if (dmi_check_system(aspm_fix_whitelist)) { + error = pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_L1SS, + 2 * sizeof(u32)); + if (error) + pci_err(dev, "unable to allocate suspend buffer for ASPM-L1SS\n"); + } + pci_allocate_vc_save_buffers(dev); } --- linux-5.19.0.orig/drivers/pci/pci.h +++ linux-5.19.0/drivers/pci/pci.h @@ -505,13 +505,17 @@ #endif /* CONFIG_PCI_IOV */ #ifdef CONFIG_PCIE_PTM +void pci_ptm_init(struct pci_dev *dev); void pci_save_ptm_state(struct pci_dev *dev); void pci_restore_ptm_state(struct pci_dev *dev); -void pci_disable_ptm(struct pci_dev *dev); +void pci_suspend_ptm(struct pci_dev *dev); +void pci_resume_ptm(struct pci_dev *dev); #else +static inline void pci_ptm_init(struct pci_dev *dev) { } static inline void pci_save_ptm_state(struct pci_dev *dev) { } static inline void pci_restore_ptm_state(struct pci_dev *dev) { } -static inline void pci_disable_ptm(struct pci_dev *dev) { } +static inline void pci_suspend_ptm(struct pci_dev *dev) { } +static inline void pci_resume_ptm(struct pci_dev *dev) { } #endif unsigned long pci_cardbus_resource_alignment(struct resource *); @@ -562,11 +566,15 @@ void pcie_aspm_exit_link_state(struct pci_dev *pdev); void pcie_aspm_pm_state_change(struct pci_dev *pdev); void pcie_aspm_powersave_config_link(struct pci_dev *pdev); +void pci_save_aspm_l1ss_state(struct pci_dev *dev); +void pci_restore_aspm_l1ss_state(struct pci_dev *dev); #else static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } +static inline void pci_save_aspm_l1ss_state(struct pci_dev *dev) { } +static inline void pci_restore_aspm_l1ss_state(struct pci_dev *dev) { } #endif #ifdef CONFIG_PCIE_ECRC @@ -577,12 +585,6 @@ static inline void pcie_ecrc_get_policy(char *str) { } #endif -#ifdef CONFIG_PCIE_PTM -void pci_ptm_init(struct pci_dev *dev); -#else -static inline void pci_ptm_init(struct pci_dev *dev) { } -#endif - struct pci_dev_reset_methods { u16 vendor; u16 device; --- linux-5.19.0.orig/drivers/pci/pcie/aer.c +++ linux-5.19.0/drivers/pci/pcie/aer.c @@ -538,7 +538,7 @@ u64 *stats = pdev->aer_stats->stats_array; \ size_t len = 0; \ \ - for (i = 0; i < ARRAY_SIZE(strings_array); i++) { \ + for (i = 0; i < ARRAY_SIZE(pdev->aer_stats->stats_array); i++) {\ if (strings_array[i]) \ len += sysfs_emit_at(buf, len, "%s %llu\n", \ strings_array[i], \ @@ -1347,6 +1347,11 @@ struct device *device = &dev->device; struct pci_dev *port = dev->port; + BUILD_BUG_ON(ARRAY_SIZE(aer_correctable_error_string) < + AER_MAX_TYPEOF_COR_ERRS); + BUILD_BUG_ON(ARRAY_SIZE(aer_uncorrectable_error_string) < + AER_MAX_TYPEOF_UNCOR_ERRS); + /* Limit to Root Ports or Root Complex Event Collectors */ if ((pci_pcie_type(port) != PCI_EXP_TYPE_RC_EC) && (pci_pcie_type(port) != PCI_EXP_TYPE_ROOT_PORT)) @@ -1372,6 +1377,22 @@ return 0; } +static int aer_suspend(struct pcie_device *dev) +{ + struct aer_rpc *rpc = get_service_data(dev); + + aer_disable_rootport(rpc); + return 0; +} + +static int aer_resume(struct pcie_device *dev) +{ + struct aer_rpc *rpc = get_service_data(dev); + + aer_enable_rootport(rpc); + return 0; +} + /** * aer_root_reset - reset Root Port hierarchy, RCEC, or RCiEP * @dev: pointer to Root Port, RCEC, or RCiEP @@ -1443,6 +1464,8 @@ .service = PCIE_PORT_SERVICE_AER, .probe = aer_probe, + .suspend = aer_suspend, + .resume = aer_resume, .remove = aer_remove, }; --- linux-5.19.0.orig/drivers/pci/pcie/aspm.c +++ linux-5.19.0/drivers/pci/pcie/aspm.c @@ -657,7 +657,8 @@ aspm_calc_l1ss_info(link, parent_l1ss_cap, child_l1ss_cap); /* Save default state */ - link->aspm_default = link->aspm_enabled; + link->aspm_default = parent->dev_flags & PCI_DEV_FLAGS_ENABLE_ASPM ? + ASPM_STATE_ALL : link->aspm_enabled; /* Setup initial capable state. Will be updated later */ link->aspm_capable = link->aspm_support; @@ -726,6 +727,50 @@ PCI_L1SS_CTL1_L1SS_MASK, val); } +void pci_save_aspm_l1ss_state(struct pci_dev *dev) +{ + int aspm_l1ss; + struct pci_cap_saved_state *save_state; + u32 *cap; + + if (!pci_is_pcie(dev)) + return; + + aspm_l1ss = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_L1SS); + if (!aspm_l1ss) + return; + + save_state = pci_find_saved_ext_cap(dev, PCI_EXT_CAP_ID_L1SS); + if (!save_state) + return; + + cap = (u32 *)&save_state->cap.data[0]; + pci_read_config_dword(dev, aspm_l1ss + PCI_L1SS_CTL2, cap++); + pci_read_config_dword(dev, aspm_l1ss + PCI_L1SS_CTL1, cap++); +} + +void pci_restore_aspm_l1ss_state(struct pci_dev *dev) +{ + int aspm_l1ss; + struct pci_cap_saved_state *save_state; + u32 *cap; + + if (!pci_is_pcie(dev)) + return; + + aspm_l1ss = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_L1SS); + if (!aspm_l1ss) + return; + + save_state = pci_find_saved_ext_cap(dev, PCI_EXT_CAP_ID_L1SS); + if (!save_state) + return; + + cap = (u32 *)&save_state->cap.data[0]; + pci_write_config_dword(dev, aspm_l1ss + PCI_L1SS_CTL2, *cap++); + pci_write_config_dword(dev, aspm_l1ss + PCI_L1SS_CTL1, *cap++); +} + static void pcie_config_aspm_dev(struct pci_dev *pdev, u32 val) { pcie_capability_clear_and_set_word(pdev, PCI_EXP_LNKCTL, @@ -1193,6 +1238,17 @@ } EXPORT_SYMBOL_GPL(pcie_aspm_enabled); +bool pcie_aspm_capable(struct pci_dev *pdev) +{ + struct pcie_link_state *link = pcie_aspm_get_link(pdev); + + if (!link) + return false; + + return link->aspm_capable; +} +EXPORT_SYMBOL_GPL(pcie_aspm_capable); + static ssize_t aspm_attr_show_common(struct device *dev, struct device_attribute *attr, char *buf, u8 state) --- linux-5.19.0.orig/drivers/pci/pcie/dpc.c +++ linux-5.19.0/drivers/pci/pcie/dpc.c @@ -343,13 +343,34 @@ } } +static void dpc_enable(struct pcie_device *dev) +{ + struct pci_dev *pdev = dev->port; + u16 ctl; + + pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, &ctl); + + ctl = (ctl & 0xfff4) | PCI_EXP_DPC_CTL_EN_FATAL | PCI_EXP_DPC_CTL_INT_EN; + pci_write_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, ctl); +} + +static void dpc_disable(struct pcie_device *dev) +{ + struct pci_dev *pdev = dev->port; + u16 ctl; + + pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, &ctl); + ctl &= ~(PCI_EXP_DPC_CTL_EN_FATAL | PCI_EXP_DPC_CTL_INT_EN); + pci_write_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, ctl); +} + #define FLAG(x, y) (((x) & (y)) ? '+' : '-') static int dpc_probe(struct pcie_device *dev) { struct pci_dev *pdev = dev->port; struct device *device = &dev->device; int status; - u16 ctl, cap; + u16 cap; if (!pcie_aer_is_native(pdev) && !pcie_ports_dpc_native) return -ENOTSUPP; @@ -364,10 +385,7 @@ } pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CAP, &cap); - pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, &ctl); - - ctl = (ctl & 0xfff4) | PCI_EXP_DPC_CTL_EN_FATAL | PCI_EXP_DPC_CTL_INT_EN; - pci_write_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, ctl); + dpc_enable(dev); pci_info(pdev, "enabled with IRQ %d\n", dev->irq); pci_info(pdev, "error containment capabilities: Int Msg #%d, RPExt%c PoisonedTLP%c SwTrigger%c RP PIO Log %d, DL_ActiveErr%c\n", @@ -380,14 +398,21 @@ return status; } -static void dpc_remove(struct pcie_device *dev) +static int dpc_suspend(struct pcie_device *dev) { - struct pci_dev *pdev = dev->port; - u16 ctl; + dpc_disable(dev); + return 0; +} - pci_read_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, &ctl); - ctl &= ~(PCI_EXP_DPC_CTL_EN_FATAL | PCI_EXP_DPC_CTL_INT_EN); - pci_write_config_word(pdev, pdev->dpc_cap + PCI_EXP_DPC_CTL, ctl); +static int dpc_resume(struct pcie_device *dev) +{ + dpc_enable(dev); + return 0; +} + +static void dpc_remove(struct pcie_device *dev) +{ + dpc_disable(dev); } static struct pcie_port_service_driver dpcdriver = { @@ -395,6 +420,8 @@ .port_type = PCIE_ANY_PORT, .service = PCIE_PORT_SERVICE_DPC, .probe = dpc_probe, + .suspend = dpc_suspend, + .resume = dpc_resume, .remove = dpc_remove, }; --- linux-5.19.0.orig/drivers/pci/pcie/ptm.c +++ linux-5.19.0/drivers/pci/pcie/ptm.c @@ -9,30 +9,38 @@ #include #include "../pci.h" -static void pci_ptm_info(struct pci_dev *dev) +/* + * If the next upstream device supports PTM, return it; otherwise return + * NULL. PTM Messages are local, so both link partners must support it. + */ +static struct pci_dev *pci_upstream_ptm(struct pci_dev *dev) { - char clock_desc[8]; + struct pci_dev *ups = pci_upstream_bridge(dev); - switch (dev->ptm_granularity) { - case 0: - snprintf(clock_desc, sizeof(clock_desc), "unknown"); - break; - case 255: - snprintf(clock_desc, sizeof(clock_desc), ">254ns"); - break; - default: - snprintf(clock_desc, sizeof(clock_desc), "%uns", - dev->ptm_granularity); - break; - } - pci_info(dev, "PTM enabled%s, %s granularity\n", - dev->ptm_root ? " (root)" : "", clock_desc); + /* + * 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), so if the upstream bridge is a + * Switch Downstream Port, look up one more level. + */ + if (ups && pci_pcie_type(ups) == PCI_EXP_TYPE_DOWNSTREAM) + ups = pci_upstream_bridge(ups); + + if (ups && ups->ptm_cap) + return ups; + + return NULL; } -void pci_disable_ptm(struct pci_dev *dev) +/* + * Find the PTM Capability (if present) and extract the information we need + * to use it. + */ +void pci_ptm_init(struct pci_dev *dev) { - int ptm; - u16 ctrl; + u16 ptm; + u32 cap; + struct pci_dev *ups; if (!pci_is_pcie(dev)) return; @@ -41,21 +49,47 @@ if (!ptm) return; - pci_read_config_word(dev, ptm + PCI_PTM_CTRL, &ctrl); - ctrl &= ~(PCI_PTM_CTRL_ENABLE | PCI_PTM_CTRL_ROOT); - pci_write_config_word(dev, ptm + PCI_PTM_CTRL, ctrl); + dev->ptm_cap = ptm; + pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_PTM, sizeof(u32)); + + pci_read_config_dword(dev, ptm + PCI_PTM_CAP, &cap); + dev->ptm_granularity = (cap & PCI_PTM_GRANULARITY_MASK) >> 8; + + /* + * Per the spec recommendation (PCIe r6.0, sec 7.9.15.3), select the + * furthest upstream Time Source as the PTM Root. For Endpoints, + * "the Effective Granularity is the maximum Local Clock Granularity + * reported by the PTM Root and all intervening PTM Time Sources." + */ + ups = pci_upstream_ptm(dev); + if (ups) { + if (ups->ptm_granularity == 0) + dev->ptm_granularity = 0; + else if (ups->ptm_granularity > dev->ptm_granularity) + dev->ptm_granularity = ups->ptm_granularity; + } else if (cap & PCI_PTM_CAP_ROOT) { + dev->ptm_root = 1; + } else if (pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END) { + + /* + * Per sec 7.9.15.3, this should be the Local Clock + * Granularity of the associated Time Source. But it + * doesn't say how to find that Time Source. + */ + dev->ptm_granularity = 0; + } + + if (pci_pcie_type(dev) == PCI_EXP_TYPE_ROOT_PORT || + pci_pcie_type(dev) == PCI_EXP_TYPE_UPSTREAM) + pci_enable_ptm(dev, NULL); } void pci_save_ptm_state(struct pci_dev *dev) { - int ptm; + u16 ptm = dev->ptm_cap; struct pci_cap_saved_state *save_state; - u16 *cap; - - if (!pci_is_pcie(dev)) - return; + u32 *cap; - ptm = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM); if (!ptm) return; @@ -63,146 +97,152 @@ if (!save_state) return; - cap = (u16 *)&save_state->cap.data[0]; - pci_read_config_word(dev, ptm + PCI_PTM_CTRL, cap); + cap = (u32 *)&save_state->cap.data[0]; + pci_read_config_dword(dev, ptm + PCI_PTM_CTRL, cap); } void pci_restore_ptm_state(struct pci_dev *dev) { + u16 ptm = dev->ptm_cap; struct pci_cap_saved_state *save_state; - int ptm; - u16 *cap; + u32 *cap; - if (!pci_is_pcie(dev)) + if (!ptm) return; save_state = pci_find_saved_ext_cap(dev, PCI_EXT_CAP_ID_PTM); - ptm = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM); - if (!save_state || !ptm) + if (!save_state) return; - cap = (u16 *)&save_state->cap.data[0]; - pci_write_config_word(dev, ptm + PCI_PTM_CTRL, *cap); + cap = (u32 *)&save_state->cap.data[0]; + pci_write_config_dword(dev, ptm + PCI_PTM_CTRL, *cap); } -void pci_ptm_init(struct pci_dev *dev) +/* Enable PTM in the Control register if possible */ +static int __pci_enable_ptm(struct pci_dev *dev) { - int pos; - u32 cap, ctrl; - u8 local_clock; + u16 ptm = dev->ptm_cap; struct pci_dev *ups; + u32 ctrl; - if (!pci_is_pcie(dev)) - return; - - /* - * Enable PTM only on interior devices (root ports, switch ports, - * etc.) on the assumption that it causes no link traffic until an - * endpoint enables it. - */ - if ((pci_pcie_type(dev) == PCI_EXP_TYPE_ENDPOINT || - pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END)) - return; + if (!ptm) + return -EINVAL; /* - * 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). + * A device uses local PTM Messages to request time information + * from a PTM Root that's farther upstream. Every device along the + * path must support PTM and have it enabled so it can handle the + * messages. Therefore, if this device is not a PTM Root, the + * upstream link partner must have PTM enabled before we can enable + * PTM. */ - 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; + if (!dev->ptm_root) { + ups = pci_upstream_ptm(dev); + if (!ups || !ups->ptm_enabled) + return -EINVAL; } - pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM); - if (!pos) - return; - - pci_add_ext_cap_save_buffer(dev, PCI_EXT_CAP_ID_PTM, sizeof(u16)); - - pci_read_config_dword(dev, pos + PCI_PTM_CAP, &cap); - local_clock = (cap & PCI_PTM_GRANULARITY_MASK) >> 8; - - /* - * There's no point in enabling PTM unless it's enabled in the - * upstream device or this device can be a PTM Root itself. Per - * the spec recommendation (PCIe r3.1, sec 7.32.3), select the - * furthest upstream Time Source as the PTM Root. - */ - if (ups && ups->ptm_enabled) { - ctrl = PCI_PTM_CTRL_ENABLE; - if (ups->ptm_granularity == 0) - dev->ptm_granularity = 0; - else if (ups->ptm_granularity > local_clock) - dev->ptm_granularity = ups->ptm_granularity; - } else { - if (cap & PCI_PTM_CAP_ROOT) { - ctrl = PCI_PTM_CTRL_ENABLE | PCI_PTM_CTRL_ROOT; - dev->ptm_root = 1; - dev->ptm_granularity = local_clock; - } else - return; - } + pci_read_config_dword(dev, ptm + PCI_PTM_CTRL, &ctrl); + ctrl |= PCI_PTM_CTRL_ENABLE; + ctrl &= ~PCI_PTM_GRANULARITY_MASK; ctrl |= dev->ptm_granularity << 8; - pci_write_config_dword(dev, pos + PCI_PTM_CTRL, ctrl); - dev->ptm_enabled = 1; + if (dev->ptm_root) + ctrl |= PCI_PTM_CTRL_ROOT; - pci_ptm_info(dev); + pci_write_config_dword(dev, ptm + PCI_PTM_CTRL, ctrl); + return 0; } +/** + * pci_enable_ptm() - Enable Precision Time Measurement + * @dev: PCI device + * @granularity: pointer to return granularity + * + * Enable Precision Time Measurement for @dev. If successful and + * @granularity is non-NULL, return the Effective Granularity. + * + * Return: zero if successful, or -EINVAL if @dev lacks a PTM Capability or + * is not a PTM Root and lacks an upstream path of PTM-enabled devices. + */ int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) { - int pos; - u32 cap, ctrl; - struct pci_dev *ups; - - if (!pci_is_pcie(dev)) - return -EINVAL; - - pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_PTM); - if (!pos) - return -EINVAL; - - pci_read_config_dword(dev, pos + PCI_PTM_CAP, &cap); - if (!(cap & PCI_PTM_CAP_REQ)) - return -EINVAL; + int rc; + char clock_desc[8]; - /* - * For a PCIe Endpoint, PTM is only useful if the endpoint can - * issue PTM requests to upstream devices that have PTM enabled. - * - * For Root Complex Integrated Endpoints, there is no upstream - * device, so there must be some implementation-specific way to - * associate the endpoint with a time source. - */ - if (pci_pcie_type(dev) == PCI_EXP_TYPE_ENDPOINT) { - ups = pci_upstream_bridge(dev); - if (!ups || !ups->ptm_enabled) - return -EINVAL; + rc = __pci_enable_ptm(dev); + if (rc) + return rc; - dev->ptm_granularity = ups->ptm_granularity; - } else if (pci_pcie_type(dev) == PCI_EXP_TYPE_RC_END) { - dev->ptm_granularity = 0; - } else - return -EINVAL; - - ctrl = PCI_PTM_CTRL_ENABLE; - ctrl |= dev->ptm_granularity << 8; - pci_write_config_dword(dev, pos + PCI_PTM_CTRL, ctrl); dev->ptm_enabled = 1; - pci_ptm_info(dev); - if (granularity) *granularity = dev->ptm_granularity; + + switch (dev->ptm_granularity) { + case 0: + snprintf(clock_desc, sizeof(clock_desc), "unknown"); + break; + case 255: + snprintf(clock_desc, sizeof(clock_desc), ">254ns"); + break; + default: + snprintf(clock_desc, sizeof(clock_desc), "%uns", + dev->ptm_granularity); + break; + } + pci_info(dev, "PTM enabled%s, %s granularity\n", + dev->ptm_root ? " (root)" : "", clock_desc); + return 0; } EXPORT_SYMBOL(pci_enable_ptm); +static void __pci_disable_ptm(struct pci_dev *dev) +{ + u16 ptm = dev->ptm_cap; + u32 ctrl; + + if (!ptm) + return; + + pci_read_config_dword(dev, ptm + PCI_PTM_CTRL, &ctrl); + ctrl &= ~(PCI_PTM_CTRL_ENABLE | PCI_PTM_CTRL_ROOT); + pci_write_config_dword(dev, ptm + PCI_PTM_CTRL, ctrl); +} + +/** + * pci_disable_ptm() - Disable Precision Time Measurement + * @dev: PCI device + * + * Disable Precision Time Measurement for @dev. + */ +void pci_disable_ptm(struct pci_dev *dev) +{ + if (dev->ptm_enabled) { + __pci_disable_ptm(dev); + dev->ptm_enabled = 0; + } +} +EXPORT_SYMBOL(pci_disable_ptm); + +/* + * Disable PTM, but preserve dev->ptm_enabled so we silently re-enable it on + * resume if necessary. + */ +void pci_suspend_ptm(struct pci_dev *dev) +{ + if (dev->ptm_enabled) + __pci_disable_ptm(dev); +} + +/* If PTM was enabled before suspend, re-enable it when resuming */ +void pci_resume_ptm(struct pci_dev *dev) +{ + if (dev->ptm_enabled) + __pci_enable_ptm(dev); +} + bool pcie_ptm_enabled(struct pci_dev *dev) { if (!dev) --- linux-5.19.0.orig/drivers/pci/probe.c +++ linux-5.19.0/drivers/pci/probe.c @@ -1297,7 +1297,7 @@ if ((secondary || subordinate) && !pcibios_assign_all_busses() && !is_cardbus && !broken) { - unsigned int cmax; + unsigned int cmax, buses; /* * Bus already configured by firmware, process it in the @@ -1322,7 +1322,8 @@ child->bridge_ctl = bctl; } - cmax = pci_scan_child_bus(child); + buses = subordinate - secondary; + cmax = pci_scan_child_bus_extend(child, buses); if (cmax > subordinate) pci_warn(dev, "bridge has subordinate %02x but max busn %02x\n", subordinate, cmax); @@ -2579,33 +2580,39 @@ } EXPORT_SYMBOL(pci_scan_single_device); -static unsigned int next_fn(struct pci_bus *bus, struct pci_dev *dev, - unsigned int fn) +static int next_ari_fn(struct pci_bus *bus, struct pci_dev *dev, int fn) { int pos; u16 cap = 0; unsigned int next_fn; - if (pci_ari_enabled(bus)) { - if (!dev) - return 0; - pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ARI); - if (!pos) - return 0; - - pci_read_config_word(dev, pos + PCI_ARI_CAP, &cap); - next_fn = PCI_ARI_CAP_NFN(cap); - if (next_fn <= fn) - return 0; /* protect against malformed list */ - - return next_fn; - } - - /* dev may be NULL for non-contiguous multifunction devices */ - if (!dev || dev->multifunction) - return (fn + 1) % 8; + if (!dev) + return -ENODEV; - return 0; + pos = pci_find_ext_capability(dev, PCI_EXT_CAP_ID_ARI); + if (!pos) + return -ENODEV; + + pci_read_config_word(dev, pos + PCI_ARI_CAP, &cap); + next_fn = PCI_ARI_CAP_NFN(cap); + if (next_fn <= fn) + return -ENODEV; /* protect against malformed list */ + + return next_fn; +} + +static int next_fn(struct pci_bus *bus, struct pci_dev *dev, int fn) +{ + if (pci_ari_enabled(bus)) + return next_ari_fn(bus, dev, fn); + + if (fn >= 7) + return -ENODEV; + /* only multifunction devices may have more functions */ + if (dev && !dev->multifunction) + return -ENODEV; + + return fn + 1; } static int only_one_child(struct pci_bus *bus) @@ -2643,26 +2650,30 @@ */ int pci_scan_slot(struct pci_bus *bus, int devfn) { - unsigned int fn, nr = 0; struct pci_dev *dev; + int fn = 0, nr = 0; if (only_one_child(bus) && (devfn > 0)) return 0; /* Already scanned the entire slot */ - dev = pci_scan_single_device(bus, devfn); - if (!dev) - return 0; - if (!pci_dev_is_added(dev)) - nr++; - - for (fn = next_fn(bus, dev, 0); fn > 0; fn = next_fn(bus, dev, fn)) { + do { dev = pci_scan_single_device(bus, devfn + fn); if (dev) { if (!pci_dev_is_added(dev)) nr++; - dev->multifunction = 1; + if (fn > 0) + dev->multifunction = 1; + } else if (fn == 0) { + /* + * Function 0 is required unless we are running on + * a hypervisor that passes through individual PCI + * functions. + */ + if (!hypervisor_isolated_pci_functions()) + break; } - } + fn = next_fn(bus, dev, fn); + } while (fn >= 0); /* Only one slot has PCIe device */ if (bus->self && nr) @@ -2858,29 +2869,14 @@ { unsigned int used_buses, normal_bridges = 0, hotplug_bridges = 0; unsigned int start = bus->busn_res.start; - unsigned int devfn, fn, cmax, max = start; + unsigned int devfn, cmax, max = start; struct pci_dev *dev; - int nr_devs; dev_dbg(&bus->dev, "scanning bus\n"); /* Go find them, Rover! */ - for (devfn = 0; devfn < 256; devfn += 8) { - nr_devs = pci_scan_slot(bus, devfn); - - /* - * The Jailhouse hypervisor may pass individual functions of a - * multi-function device to a guest without passing function 0. - * Look for them as well. - */ - if (jailhouse_paravirt() && nr_devs == 0) { - for (fn = 1; fn < 8; fn++) { - dev = pci_scan_single_device(bus, devfn + fn); - if (dev) - dev->multifunction = 1; - } - } - } + for (devfn = 0; devfn < 256; devfn += 8) + pci_scan_slot(bus, devfn); /* Reserve buses for SR-IOV capability */ used_buses = pci_iov_bus_range(bus); @@ -2922,8 +2918,8 @@ * hotplug bridges too much during the second scan below. */ used_buses++; - if (cmax - max > 1) - used_buses += cmax - max - 1; + if (max - cmax > 1) + used_buses += max - cmax - 1; } /* Scan bridges that need to be reconfigured */ @@ -2931,7 +2927,6 @@ unsigned int buses = 0; if (!hotplug_bridges && normal_bridges == 1) { - /* * There is only one bridge on the bus (upstream * port) so it gets all available buses which it @@ -2940,7 +2935,6 @@ */ buses = available_buses; } else if (dev->is_hotplug_bridge) { - /* * Distribute the extra buses between hotplug * bridges if any. @@ -2959,7 +2953,7 @@ /* * Make sure a hotplug bridge has at least the minimum requested * number of buses but allow it to grow up to the maximum available - * bus number of there is room. + * bus number if there is room. */ if (bus->self && bus->self->is_hotplug_bridge) { used_buses = max_t(unsigned int, available_buses, --- linux-5.19.0.orig/drivers/pci/quirks.c +++ linux-5.19.0/drivers/pci/quirks.c @@ -207,6 +207,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. Disable * parity error reporting. @@ -4924,6 +4939,9 @@ { PCI_VENDOR_ID_AMPERE, 0xE00C, pci_quirk_xgene_acs }, /* Broadcom multi-function device */ { PCI_VENDOR_ID_BROADCOM, 0x16D7, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1750, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1751, pci_quirk_mf_endpoint_acs }, + { PCI_VENDOR_ID_BROADCOM, 0x1752, pci_quirk_mf_endpoint_acs }, { PCI_VENDOR_ID_BROADCOM, 0xD714, pci_quirk_brcm_acs }, /* Amazon Annapurna Labs */ { PCI_VENDOR_ID_AMAZON_ANNAPURNA_LABS, 0x0031, pci_quirk_al_acs }, @@ -5942,3 +5960,103 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c0, aspm_l1_acceptable_latency); DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x56c1, aspm_l1_acceptable_latency); #endif + +static void pci_fixup_serialize_tgl_me_pm(struct pci_dev *pdev) +{ + struct pci_dev *rciep = NULL; + + if (!pdev->bus) + return; + + for_each_pci_dev(rciep) { + /* Most of TGL RCiEPs don't have type PCI_EXP_TYPE_RC_END, + * check parent bridge instead. */ + if (!rciep->bus) + continue; + + if (rciep->bus->self != pdev->bus->self) + continue; + + if (&rciep->dev == &pdev->dev) + continue; + + if (device_link_add(&rciep->dev, &pdev->dev, + DL_FLAG_STATELESS)) + pci_info(rciep, "Suspend before and resume after %s\n", + pci_name(pdev)); + } +} +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15fb, pci_fixup_serialize_tgl_me_pm); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15fc, pci_fixup_serialize_tgl_me_pm); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15f9, pci_fixup_serialize_tgl_me_pm); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15fa, pci_fixup_serialize_tgl_me_pm); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15f4, pci_fixup_serialize_tgl_me_pm); +DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x15f5, pci_fixup_serialize_tgl_me_pm); + +/* + * BIOS may not be able to access config space of devices under VMD domain, so + * it relies on software to enable ASPM for links under VMD. + */ +static bool pci_fixup_is_vmd_bridge(struct pci_dev *pdev) +{ + struct pci_bus *bus = pdev->bus; + struct device *dev; + struct pci_driver *pdrv; + + if (!pci_is_root_bus(bus)) + return false; + + dev = bus->bridge->parent; + if (dev == NULL) + return false; + + pdrv = pci_dev_driver(to_pci_dev(dev)); + if (pdrv == NULL || strcmp("vmd", pdrv->name)) + return false; + + return true; +} + +static void pci_fixup_enable_aspm(struct pci_dev *pdev) +{ + if (!pci_fixup_is_vmd_bridge(pdev)) + return; + + pdev->dev_flags |= PCI_DEV_FLAGS_ENABLE_ASPM; + pci_info(pdev, "enable ASPM for pci bridge behind vmd"); +} +DECLARE_PCI_FIXUP_CLASS_HEADER(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, + PCI_CLASS_BRIDGE_PCI, 8, pci_fixup_enable_aspm); + +static void pci_fixup_enable_vmd_nvme_ltr(struct pci_dev *pdev) +{ + struct pci_dev *parent; + int pos; + u16 val; + + parent = pci_upstream_bridge(pdev); + if (!parent) + return; + + if (!pci_fixup_is_vmd_bridge(parent)) + return; + + pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_LTR); + if (!pos) + return; + + pci_read_config_word(pdev, pos + PCI_LTR_MAX_SNOOP_LAT, &val); + if (val) + return; + + pci_read_config_word(pdev, pos + PCI_LTR_MAX_NOSNOOP_LAT, &val); + if (val) + return; + + /* 3145728ns, i.e. 0x300000ns */ + pci_write_config_word(pdev, pos + PCI_LTR_MAX_SNOOP_LAT, 0x1003); + pci_write_config_word(pdev, pos + PCI_LTR_MAX_NOSNOOP_LAT, 0x1003); + pci_info(pdev, "enable LTR for nvme behind vmd"); +} +DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, + PCI_CLASS_STORAGE_EXPRESS, 0, pci_fixup_enable_vmd_nvme_ltr); --- linux-5.19.0.orig/drivers/pci/setup-bus.c +++ linux-5.19.0/drivers/pci/setup-bus.c @@ -1745,119 +1745,6 @@ } #endif -/* - * First try will not touch PCI bridge res. - * Second and later try will clear small leaf bridge res. - * Will stop till to the max depth if can not find good one. - */ -void pci_assign_unassigned_root_bus_resources(struct pci_bus *bus) -{ - LIST_HEAD(realloc_head); - /* List of resources that want additional resources */ - struct list_head *add_list = NULL; - int tried_times = 0; - enum release_type rel_type = leaf_only; - LIST_HEAD(fail_head); - struct pci_dev_resource *fail_res; - int pci_try_num = 1; - enum enable_type enable_local; - - /* Don't realloc if asked to do so */ - enable_local = pci_realloc_detect(bus, pci_realloc_enable); - if (pci_realloc_enabled(enable_local)) { - int max_depth = pci_bus_get_depth(bus); - - pci_try_num = max_depth + 1; - dev_info(&bus->dev, "max bus depth: %d pci_try_num: %d\n", - max_depth, pci_try_num); - } - -again: - /* - * Last try will use add_list, otherwise will try good to have as must - * have, so can realloc parent bridge resource - */ - if (tried_times + 1 == pci_try_num) - add_list = &realloc_head; - /* - * Depth first, calculate sizes and alignments of all subordinate buses. - */ - __pci_bus_size_bridges(bus, add_list); - - /* Depth last, allocate resources and update the hardware. */ - __pci_bus_assign_resources(bus, add_list, &fail_head); - if (add_list) - BUG_ON(!list_empty(add_list)); - tried_times++; - - /* Any device complain? */ - if (list_empty(&fail_head)) - goto dump; - - if (tried_times >= pci_try_num) { - if (enable_local == undefined) - dev_info(&bus->dev, "Some PCI device resources are unassigned, try booting with pci=realloc\n"); - else if (enable_local == auto_enabled) - dev_info(&bus->dev, "Automatically enabled pci realloc, if you have problem, try booting with pci=realloc=off\n"); - - free_list(&fail_head); - goto dump; - } - - dev_info(&bus->dev, "No. %d try to assign unassigned res\n", - tried_times + 1); - - /* Third times and later will not check if it is leaf */ - if ((tried_times + 1) > 2) - rel_type = whole_subtree; - - /* - * Try to release leaf bridge's resources that doesn't fit resource of - * child device under that bridge. - */ - list_for_each_entry(fail_res, &fail_head, list) - pci_bus_release_bridge_resources(fail_res->dev->bus, - fail_res->flags & PCI_RES_TYPE_MASK, - rel_type); - - /* 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 (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); - - goto again; - -dump: - /* Dump the resource on buses */ - pci_bus_dump_resources(bus); -} - -void __init pci_assign_unassigned_resources(void) -{ - struct pci_bus *root_bus; - - list_for_each_entry(root_bus, &pci_root_buses, node) { - pci_assign_unassigned_root_bus_resources(root_bus); - - /* Make sure the root bridge has a companion ACPI device */ - if (ACPI_HANDLE(root_bus->bridge)) - acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge)); - } -} - static void adjust_bridge_window(struct pci_dev *bridge, struct resource *res, struct list_head *add_list, resource_size_t new_size) @@ -2029,7 +1916,7 @@ } static void pci_bridge_distribute_available_resources(struct pci_dev *bridge, - struct list_head *add_list) + struct list_head *add_list) { struct resource available_io, available_mmio, available_mmio_pref; @@ -2047,6 +1934,119 @@ available_mmio_pref); } +/* + * First try will not touch PCI bridge res. + * Second and later try will clear small leaf bridge res. + * Will stop till to the max depth if can not find good one. + */ +void pci_assign_unassigned_root_bus_resources(struct pci_bus *bus) +{ + LIST_HEAD(realloc_head); + /* List of resources that want additional resources */ + struct list_head *add_list = NULL; + int tried_times = 0; + enum release_type rel_type = leaf_only; + LIST_HEAD(fail_head); + struct pci_dev_resource *fail_res; + int pci_try_num = 1; + enum enable_type enable_local; + + /* Don't realloc if asked to do so */ + enable_local = pci_realloc_detect(bus, pci_realloc_enable); + if (pci_realloc_enabled(enable_local)) { + int max_depth = pci_bus_get_depth(bus); + + pci_try_num = max_depth + 1; + dev_info(&bus->dev, "max bus depth: %d pci_try_num: %d\n", + max_depth, pci_try_num); + } + +again: + /* + * Last try will use add_list, otherwise will try good to have as must + * have, so can realloc parent bridge resource + */ + if (tried_times + 1 == pci_try_num) + add_list = &realloc_head; + /* + * Depth first, calculate sizes and alignments of all subordinate buses. + */ + __pci_bus_size_bridges(bus, add_list); + + /* Depth last, allocate resources and update the hardware. */ + __pci_bus_assign_resources(bus, add_list, &fail_head); + if (add_list) + BUG_ON(!list_empty(add_list)); + tried_times++; + + /* Any device complain? */ + if (list_empty(&fail_head)) + goto dump; + + if (tried_times >= pci_try_num) { + if (enable_local == undefined) + dev_info(&bus->dev, "Some PCI device resources are unassigned, try booting with pci=realloc\n"); + else if (enable_local == auto_enabled) + dev_info(&bus->dev, "Automatically enabled pci realloc, if you have problem, try booting with pci=realloc=off\n"); + + free_list(&fail_head); + goto dump; + } + + dev_info(&bus->dev, "No. %d try to assign unassigned res\n", + tried_times + 1); + + /* Third times and later will not check if it is leaf */ + if ((tried_times + 1) > 2) + rel_type = whole_subtree; + + /* + * Try to release leaf bridge's resources that doesn't fit resource of + * child device under that bridge. + */ + list_for_each_entry(fail_res, &fail_head, list) + pci_bus_release_bridge_resources(fail_res->dev->bus, + fail_res->flags & PCI_RES_TYPE_MASK, + rel_type); + + /* 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 (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); + + goto again; + +dump: + /* Dump the resource on buses */ + pci_bus_dump_resources(bus); +} + +void __init pci_assign_unassigned_resources(void) +{ + struct pci_bus *root_bus; + + list_for_each_entry(root_bus, &pci_root_buses, node) { + pci_assign_unassigned_root_bus_resources(root_bus); + + /* Make sure the root bridge has a companion ACPI device */ + if (ACPI_HANDLE(root_bus->bridge)) + acpi_ioapic_add(ACPI_HANDLE(root_bus->bridge)); + } +} + void pci_assign_unassigned_bridge_resources(struct pci_dev *bridge) { struct pci_bus *parent = bridge->subordinate; --- linux-5.19.0.orig/drivers/pci/setup-res.c +++ linux-5.19.0/drivers/pci/setup-res.c @@ -214,6 +214,17 @@ root = pci_find_parent_resource(dev, res); if (!root) { + /* + * If dev is behind a bridge, accesses will only reach it + * if res is inside the relevant bridge window. + */ + if (pci_upstream_bridge(dev)) + return -ENXIO; + + /* + * On the root bus, assume the host bridge will forward + * everything. + */ if (res->flags & IORESOURCE_IO) root = &ioport_resource; else --- linux-5.19.0.orig/drivers/peci/controller/peci-aspeed.c +++ linux-5.19.0/drivers/peci/controller/peci-aspeed.c @@ -523,7 +523,7 @@ return PTR_ERR(priv->base); priv->irq = platform_get_irq(pdev, 0); - if (!priv->irq) + if (priv->irq < 0) return priv->irq; ret = devm_request_irq(&pdev->dev, priv->irq, aspeed_peci_irq_handler, --- linux-5.19.0.orig/drivers/peci/cpu.c +++ linux-5.19.0/drivers/peci/cpu.c @@ -188,8 +188,6 @@ { struct auxiliary_device *adev = to_auxiliary_dev(dev); - auxiliary_device_uninit(adev); - kfree(adev->name); kfree(adev); } @@ -234,6 +232,7 @@ struct auxiliary_device *adev = _adev; auxiliary_device_delete(adev); + auxiliary_device_uninit(adev); } static int devm_adev_add(struct device *dev, int idx) --- linux-5.19.0.orig/drivers/perf/arm-cmn.c +++ linux-5.19.0/drivers/perf/arm-cmn.c @@ -36,7 +36,7 @@ #define CMN_CI_CHILD_COUNT GENMASK_ULL(15, 0) #define CMN_CI_CHILD_PTR_OFFSET GENMASK_ULL(31, 16) -#define CMN_CHILD_NODE_ADDR GENMASK(27, 0) +#define CMN_CHILD_NODE_ADDR GENMASK(29, 0) #define CMN_CHILD_NODE_EXTERNAL BIT(31) #define CMN_MAX_DIMENSION 12 --- linux-5.19.0.orig/drivers/perf/arm_dmc620_pmu.c +++ linux-5.19.0/drivers/perf/arm_dmc620_pmu.c @@ -725,6 +725,8 @@ static int __init dmc620_pmu_init(void) { + int ret; + cpuhp_state_num = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, DMC620_DRVNAME, NULL, @@ -732,7 +734,11 @@ if (cpuhp_state_num < 0) return cpuhp_state_num; - return platform_driver_register(&dmc620_pmu_driver); + ret = platform_driver_register(&dmc620_pmu_driver); + if (ret) + cpuhp_remove_multi_state(cpuhp_state_num); + + return ret; } static void __exit dmc620_pmu_exit(void) --- linux-5.19.0.orig/drivers/perf/arm_dsu_pmu.c +++ linux-5.19.0/drivers/perf/arm_dsu_pmu.c @@ -858,7 +858,11 @@ if (ret < 0) return ret; dsu_pmu_cpuhp_state = ret; - return platform_driver_register(&dsu_pmu_driver); + ret = platform_driver_register(&dsu_pmu_driver); + if (ret) + cpuhp_remove_multi_state(dsu_pmu_cpuhp_state); + + return ret; } static void __exit dsu_pmu_exit(void) --- linux-5.19.0.orig/drivers/perf/arm_pmu_platform.c +++ linux-5.19.0/drivers/perf/arm_pmu_platform.c @@ -117,7 +117,7 @@ if (num_irqs == 1) { int irq = platform_get_irq(pdev, 0); - if (irq && irq_is_percpu_devid(irq)) + if ((irq > 0) && irq_is_percpu_devid(irq)) return pmu_parse_percpu_irq(pmu, irq); } --- linux-5.19.0.orig/drivers/perf/arm_smmuv3_pmu.c +++ linux-5.19.0/drivers/perf/arm_smmuv3_pmu.c @@ -959,6 +959,8 @@ static int __init arm_smmu_pmu_init(void) { + int ret; + cpuhp_state_num = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, "perf/arm/pmcg:online", NULL, @@ -966,7 +968,11 @@ if (cpuhp_state_num < 0) return cpuhp_state_num; - return platform_driver_register(&smmu_pmu_driver); + ret = platform_driver_register(&smmu_pmu_driver); + if (ret) + cpuhp_remove_multi_state(cpuhp_state_num); + + return ret; } module_init(arm_smmu_pmu_init); --- linux-5.19.0.orig/drivers/perf/arm_spe_pmu.c +++ linux-5.19.0/drivers/perf/arm_spe_pmu.c @@ -39,6 +39,24 @@ #include #include +/* + * Cache if the event is allowed to trace Context information. + * This allows us to perform the check, i.e, perfmon_capable(), + * in the context of the event owner, once, during the event_init(). + */ +#define SPE_PMU_HW_FLAGS_CX BIT(0) + +static void set_spe_event_has_cx(struct perf_event *event) +{ + if (IS_ENABLED(CONFIG_PID_IN_CONTEXTIDR) && perfmon_capable()) + event->hw.flags |= SPE_PMU_HW_FLAGS_CX; +} + +static bool get_spe_event_has_cx(struct perf_event *event) +{ + return !!(event->hw.flags & SPE_PMU_HW_FLAGS_CX); +} + #define ARM_SPE_BUF_PAD_BYTE 0 struct arm_spe_pmu_buf { @@ -272,7 +290,7 @@ if (!attr->exclude_kernel) reg |= BIT(SYS_PMSCR_EL1_E1SPE_SHIFT); - if (IS_ENABLED(CONFIG_PID_IN_CONTEXTIDR) && perfmon_capable()) + if (get_spe_event_has_cx(event)) reg |= BIT(SYS_PMSCR_EL1_CX_SHIFT); return reg; @@ -709,10 +727,10 @@ !(spe_pmu->features & SPE_PMU_FEAT_FILT_LAT)) return -EOPNOTSUPP; + set_spe_event_has_cx(event); reg = arm_spe_event_to_pmscr(event); if (!perfmon_capable() && (reg & (BIT(SYS_PMSCR_EL1_PA_SHIFT) | - BIT(SYS_PMSCR_EL1_CX_SHIFT) | BIT(SYS_PMSCR_EL1_PCT_SHIFT)))) return -EACCES; --- linux-5.19.0.orig/drivers/perf/hisilicon/hisi_pcie_pmu.c +++ linux-5.19.0/drivers/perf/hisilicon/hisi_pcie_pmu.c @@ -693,10 +693,10 @@ HISI_PCIE_PMU_EVENT_ATTR(rx_mrd_cnt, 0x10210), HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_latency, 0x0011), HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_cnt, 0x10011), - HISI_PCIE_PMU_EVENT_ATTR(rx_mrd_flux, 0x1005), - HISI_PCIE_PMU_EVENT_ATTR(rx_mrd_time, 0x11005), - HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_flux, 0x2004), - HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_time, 0x12004), + HISI_PCIE_PMU_EVENT_ATTR(rx_mrd_flux, 0x0804), + HISI_PCIE_PMU_EVENT_ATTR(rx_mrd_time, 0x10804), + HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_flux, 0x0405), + HISI_PCIE_PMU_EVENT_ATTR(tx_mrd_time, 0x10405), NULL }; --- linux-5.19.0.orig/drivers/perf/marvell_cn10k_tad_pmu.c +++ linux-5.19.0/drivers/perf/marvell_cn10k_tad_pmu.c @@ -414,7 +414,11 @@ if (ret < 0) return ret; tad_pmu_cpuhp_state = ret; - return platform_driver_register(&tad_pmu_driver); + ret = platform_driver_register(&tad_pmu_driver); + if (ret) + cpuhp_remove_multi_state(tad_pmu_cpuhp_state); + + return ret; } static void __exit tad_pmu_exit(void) --- linux-5.19.0.orig/drivers/perf/riscv_pmu.c +++ linux-5.19.0/drivers/perf/riscv_pmu.c @@ -170,7 +170,6 @@ left = (max_period >> 1); local64_set(&hwc->prev_count, (u64)-left); - perf_event_update_userpage(event); return overflow; } --- linux-5.19.0.orig/drivers/perf/riscv_pmu_sbi.c +++ linux-5.19.0/drivers/perf/riscv_pmu_sbi.c @@ -274,8 +274,13 @@ cflags |= SBI_PMU_CFG_FLAG_SET_UINH; /* retrieve the available counter index */ +#if defined(CONFIG_32BIT) + ret = sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_CFG_MATCH, cbase, cmask, + cflags, hwc->event_base, hwc->config, hwc->config >> 32); +#else ret = sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_CFG_MATCH, cbase, cmask, cflags, hwc->event_base, hwc->config, 0); +#endif if (ret.error) { pr_debug("Not able to find a counter for event %lx config %llx\n", hwc->event_base, hwc->config); @@ -417,8 +422,13 @@ struct hw_perf_event *hwc = &event->hw; unsigned long flag = SBI_PMU_START_FLAG_SET_INIT_VALUE; +#if defined(CONFIG_32BIT) ret = sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_START, hwc->idx, 1, flag, ival, ival >> 32, 0); +#else + ret = sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_START, hwc->idx, + 1, flag, ival, 0, 0); +#endif if (ret.error && (ret.error != SBI_ERR_ALREADY_STARTED)) pr_err("Starting counter idx %d failed with error %d\n", hwc->idx, sbi_err_map_linux_errno(ret.error)); @@ -457,7 +467,7 @@ if (!pmu_ctr_list) return -ENOMEM; - for (i = 0; i <= nctr; i++) { + for (i = 0; i < nctr; i++) { ret = sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_GET_INFO, i, 0, 0, 0, 0, 0); if (ret.error) /* The logical counter ids are not expected to be contiguous */ @@ -525,8 +535,14 @@ hwc = &event->hw; max_period = riscv_pmu_ctr_get_width_mask(event); init_val = local64_read(&hwc->prev_count) & max_period; +#if defined(CONFIG_32BIT) + sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_START, idx, 1, + flag, init_val, init_val >> 32, 0); +#else sbi_ecall(SBI_EXT_PMU, SBI_EXT_PMU_COUNTER_START, idx, 1, flag, init_val, 0, 0); +#endif + perf_event_update_userpage(event); } ctr_ovf_mask = ctr_ovf_mask >> 1; idx++; @@ -623,8 +639,11 @@ struct riscv_pmu *pmu = hlist_entry_safe(node, struct riscv_pmu, node); struct cpu_hw_events *cpu_hw_evt = this_cpu_ptr(pmu->hw_events); - /* Enable the access for TIME csr only from the user mode now */ - csr_write(CSR_SCOUNTEREN, 0x2); + /* + * Enable the access for CYCLE, TIME, and INSTRET CSRs from userspace, + * as is necessary to maintain uABI compatibility. + */ + csr_write(CSR_SCOUNTEREN, 0x7); /* Stop all the counters so that they can be enabled from perf */ pmu_sbi_stop_all(pmu); @@ -666,12 +685,15 @@ child = of_get_compatible_child(cpu, "riscv,cpu-intc"); if (!child) { pr_err("Failed to find INTC node\n"); + of_node_put(cpu); return -ENODEV; } domain = irq_find_host(child); of_node_put(child); - if (domain) + if (domain) { + of_node_put(cpu); break; + } } if (!domain) { pr_err("Failed to find INTC IRQ root domain\n"); --- linux-5.19.0.orig/drivers/phy/amlogic/phy-meson-axg-mipi-pcie-analog.c +++ linux-5.19.0/drivers/phy/amlogic/phy-meson-axg-mipi-pcie-analog.c @@ -197,7 +197,7 @@ struct phy_provider *phy; struct device *dev = &pdev->dev; struct phy_axg_mipi_pcie_analog_priv *priv; - struct device_node *np = dev->of_node; + struct device_node *np = dev->of_node, *parent_np; struct regmap *map; int ret; @@ -206,7 +206,9 @@ return -ENOMEM; /* Get the hhi system controller node */ - map = syscon_node_to_regmap(of_get_parent(dev->of_node)); + parent_np = of_get_parent(dev->of_node); + map = syscon_node_to_regmap(parent_np); + of_node_put(parent_np); if (IS_ERR(map)) { dev_err(dev, "failed to get HHI regmap\n"); --- linux-5.19.0.orig/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c +++ linux-5.19.0/drivers/phy/broadcom/phy-brcm-usb-init-synopsys.c @@ -331,13 +331,12 @@ pr_debug("%s\n", __func__); - if (!params->wake_enabled) { - USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); - + if (params->wake_enabled) { /* Switch to using slower clock during suspend to save power */ USB_CTRL_SET(ctrl, USB_PM, XHC_S2_CLK_SWITCH_EN); - } else { usb_wake_enable_7216(params, true); + } else { + USB_CTRL_SET(ctrl, USB_PM, USB_PWRDN); } } @@ -425,7 +424,6 @@ params->family_name = "7216"; params->ops = &bcm7216_ops; - params->suspend_with_clocks = true; } void brcm_usb_dvr_init_7211b0(struct brcm_usb_init_params *params) @@ -435,5 +433,4 @@ params->family_name = "7211"; params->ops = &bcm7211b0_ops; - params->suspend_with_clocks = true; } --- linux-5.19.0.orig/drivers/phy/broadcom/phy-brcm-usb-init.h +++ linux-5.19.0/drivers/phy/broadcom/phy-brcm-usb-init.h @@ -61,7 +61,6 @@ const struct brcm_usb_init_ops *ops; struct regmap *syscon_piarbctl; bool wake_enabled; - bool suspend_with_clocks; }; void brcm_usb_dvr_init_4908(struct brcm_usb_init_params *params); --- linux-5.19.0.orig/drivers/phy/broadcom/phy-brcm-usb.c +++ linux-5.19.0/drivers/phy/broadcom/phy-brcm-usb.c @@ -102,9 +102,9 @@ static irqreturn_t brcm_usb_phy_wake_isr(int irq, void *dev_id) { - struct phy *gphy = dev_id; + struct device *dev = dev_id; - pm_wakeup_event(&gphy->dev, 0); + pm_wakeup_event(dev, 0); return IRQ_HANDLED; } @@ -451,7 +451,7 @@ if (priv->wake_irq >= 0) { err = devm_request_irq(dev, priv->wake_irq, brcm_usb_phy_wake_isr, 0, - dev_name(dev), gphy); + dev_name(dev), dev); if (err < 0) return err; device_set_wakeup_capable(dev, 1); @@ -598,7 +598,7 @@ * and newer XHCI->2.0-clks/3.0-clks. */ - if (!priv->ini.suspend_with_clocks) { + if (!priv->ini.wake_enabled) { if (priv->phys[BRCM_USB_PHY_3_0].inited) clk_disable_unprepare(priv->usb_30_clk); if (priv->phys[BRCM_USB_PHY_2_0].inited || @@ -615,8 +615,10 @@ { struct brcm_usb_phy_data *priv = dev_get_drvdata(dev); - clk_prepare_enable(priv->usb_20_clk); - clk_prepare_enable(priv->usb_30_clk); + if (!priv->ini.wake_enabled) { + clk_prepare_enable(priv->usb_20_clk); + clk_prepare_enable(priv->usb_30_clk); + } brcm_usb_init_ipp(&priv->ini); /* --- linux-5.19.0.orig/drivers/phy/marvell/phy-mvebu-a3700-comphy.c +++ linux-5.19.0/drivers/phy/marvell/phy-mvebu-a3700-comphy.c @@ -274,7 +274,6 @@ int submode; bool invert_tx; bool invert_rx; - bool needs_reset; }; struct gbe_phy_init_data_fix { @@ -827,6 +826,9 @@ if (ret) return ret; + /* COMPHY register reset (cleared automatically) */ + comphy_lane_reg_set(lane, COMPHY_SFT_RESET, SFT_RST, SFT_RST); + /* * 0. Set PHY OTG Control(0x5d034), bit 4, Power up OTG module The * register belong to UTMI module, so it is set in UTMI phy driver. @@ -1097,40 +1099,12 @@ 0x0, PU_PLL_BIT | PU_RX_BIT | PU_TX_BIT); } -static int mvebu_a3700_comphy_reset(struct phy *phy) +static void mvebu_a3700_comphy_usb3_power_off(struct mvebu_a3700_comphy_lane *lane) { - struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - u16 mask, data; - - dev_dbg(lane->dev, "resetting lane %d\n", lane->id); - - /* COMPHY reset for internal logic */ - comphy_lane_reg_set(lane, COMPHY_SFT_RESET, - SFT_RST_NO_REG, SFT_RST_NO_REG); - - /* COMPHY register reset (cleared automatically) */ - comphy_lane_reg_set(lane, COMPHY_SFT_RESET, SFT_RST, SFT_RST); - - /* PIPE soft and register reset */ - data = PIPE_SOFT_RESET | PIPE_REG_RESET; - mask = data; - comphy_lane_reg_set(lane, COMPHY_PIPE_RST_CLK_CTRL, data, mask); - - /* Release PIPE register reset */ - comphy_lane_reg_set(lane, COMPHY_PIPE_RST_CLK_CTRL, - 0x0, PIPE_REG_RESET); - - /* Reset SB configuration register (only for lanes 0 and 1) */ - if (lane->id == 0 || lane->id == 1) { - u32 mask, data; - - data = PIN_RESET_CORE_BIT | PIN_RESET_COMPHY_BIT | - PIN_PU_PLL_BIT | PIN_PU_RX_BIT | PIN_PU_TX_BIT; - mask = data | PIN_PU_IVREF_BIT | PIN_TX_IDLE_BIT; - comphy_periph_reg_set(lane, COMPHY_PHY_CFG1, data, mask); - } - - return 0; + /* + * The USB3 MAC sets the USB3 PHY to low state, so we do not + * need to power off USB3 PHY again. + */ } static bool mvebu_a3700_comphy_check_mode(int lane, @@ -1171,10 +1145,6 @@ (lane->mode != mode || lane->submode != submode)) return -EBUSY; - /* If changing mode, ensure reset is called */ - if (lane->mode != PHY_MODE_INVALID && lane->mode != mode) - lane->needs_reset = true; - /* Just remember the mode, ->power_on() will do the real setup */ lane->mode = mode; lane->submode = submode; @@ -1185,7 +1155,6 @@ static int mvebu_a3700_comphy_power_on(struct phy *phy) { struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - int ret; if (!mvebu_a3700_comphy_check_mode(lane->id, lane->mode, lane->submode)) { @@ -1193,14 +1162,6 @@ return -EINVAL; } - if (lane->needs_reset) { - ret = mvebu_a3700_comphy_reset(phy); - if (ret) - return ret; - - lane->needs_reset = false; - } - switch (lane->mode) { case PHY_MODE_USB_HOST_SS: dev_dbg(lane->dev, "set lane %d to USB3 host mode\n", lane->id); @@ -1224,38 +1185,28 @@ { struct mvebu_a3700_comphy_lane *lane = phy_get_drvdata(phy); - switch (lane->mode) { - case PHY_MODE_USB_HOST_SS: - /* - * The USB3 MAC sets the USB3 PHY to low state, so we do not - * need to power off USB3 PHY again. - */ - break; - - case PHY_MODE_SATA: - mvebu_a3700_comphy_sata_power_off(lane); - break; - - case PHY_MODE_ETHERNET: + switch (lane->id) { + case 0: + mvebu_a3700_comphy_usb3_power_off(lane); mvebu_a3700_comphy_ethernet_power_off(lane); - break; - - case PHY_MODE_PCIE: + return 0; + case 1: mvebu_a3700_comphy_pcie_power_off(lane); - break; - + mvebu_a3700_comphy_ethernet_power_off(lane); + return 0; + case 2: + mvebu_a3700_comphy_usb3_power_off(lane); + mvebu_a3700_comphy_sata_power_off(lane); + return 0; default: dev_err(lane->dev, "invalid COMPHY mode\n"); return -EINVAL; } - - return 0; } static const struct phy_ops mvebu_a3700_comphy_ops = { .power_on = mvebu_a3700_comphy_power_on, .power_off = mvebu_a3700_comphy_power_off, - .reset = mvebu_a3700_comphy_reset, .set_mode = mvebu_a3700_comphy_set_mode, .owner = THIS_MODULE, }; @@ -1393,8 +1344,7 @@ * To avoid relying on the bootloader/firmware configuration, * power off all comphys. */ - mvebu_a3700_comphy_reset(phy); - lane->needs_reset = false; + mvebu_a3700_comphy_power_off(phy); } provider = devm_of_phy_provider_register(&pdev->dev, --- linux-5.19.0.orig/drivers/phy/mediatek/phy-mtk-tphy.c +++ linux-5.19.0/drivers/phy/mediatek/phy-mtk-tphy.c @@ -906,7 +906,7 @@ static int phy_type_set(struct mtk_phy_instance *instance) { int type; - u32 mask; + u32 offset; if (!instance->type_sw) return 0; @@ -929,8 +929,9 @@ return 0; } - mask = RG_PHY_SW_TYPE << (instance->type_sw_index * BITS_PER_BYTE); - regmap_update_bits(instance->type_sw, instance->type_sw_reg, mask, type); + offset = instance->type_sw_index * BITS_PER_BYTE; + regmap_update_bits(instance->type_sw, instance->type_sw_reg, + RG_PHY_SW_TYPE << offset, type << offset); return 0; } --- linux-5.19.0.orig/drivers/phy/qualcomm/phy-qcom-qmp.c +++ linux-5.19.0/drivers/phy/qualcomm/phy-qcom-qmp.c @@ -6273,7 +6273,9 @@ return -ENOMEM; pm_runtime_set_active(dev); - pm_runtime_enable(dev); + ret = devm_pm_runtime_enable(dev); + if (ret) + return ret; /* * Prevent runtime pm from being ON by default. Users can enable * it using power/control in sysfs. @@ -6323,13 +6325,10 @@ phy_provider = devm_of_phy_provider_register(dev, of_phy_simple_xlate); if (!IS_ERR(phy_provider)) dev_info(dev, "Registered Qcom-QMP phy\n"); - else - pm_runtime_disable(dev); return PTR_ERR_OR_ZERO(phy_provider); err_node_put: - pm_runtime_disable(dev); of_node_put(child); return ret; } --- linux-5.19.0.orig/drivers/phy/qualcomm/phy-qcom-qmp.h +++ linux-5.19.0/drivers/phy/qualcomm/phy-qcom-qmp.h @@ -1116,7 +1116,8 @@ #define QSERDES_V5_COM_CORE_CLK_EN 0x174 #define QSERDES_V5_COM_CMN_CONFIG 0x17c #define QSERDES_V5_COM_CMN_MISC1 0x19c -#define QSERDES_V5_COM_CMN_MODE 0x1a4 +#define QSERDES_V5_COM_CMN_MODE 0x1a0 +#define QSERDES_V5_COM_CMN_MODE_CONTD 0x1a4 #define QSERDES_V5_COM_VCO_DC_LEVEL_CTRL 0x1a8 #define QSERDES_V5_COM_BIN_VCOCAL_CMP_CODE1_MODE0 0x1ac #define QSERDES_V5_COM_BIN_VCOCAL_CMP_CODE2_MODE0 0x1b0 --- linux-5.19.0.orig/drivers/phy/qualcomm/phy-qcom-usb-hsic.c +++ linux-5.19.0/drivers/phy/qualcomm/phy-qcom-usb-hsic.c @@ -54,8 +54,10 @@ /* Configure pins for HSIC functionality */ pins_default = pinctrl_lookup_state(uphy->pctl, PINCTRL_STATE_DEFAULT); - if (IS_ERR(pins_default)) - return PTR_ERR(pins_default); + if (IS_ERR(pins_default)) { + ret = PTR_ERR(pins_default); + goto err_ulpi; + } ret = pinctrl_select_state(uphy->pctl, pins_default); if (ret) --- linux-5.19.0.orig/drivers/phy/ralink/phy-mt7621-pci.c +++ linux-5.19.0/drivers/phy/ralink/phy-mt7621-pci.c @@ -280,7 +280,8 @@ } static const struct soc_device_attribute mt7621_pci_quirks_match[] = { - { .soc_id = "mt7621", .revision = "E2" } + { .soc_id = "mt7621", .revision = "E2" }, + { /* sentinel */ } }; static const struct regmap_config mt7621_pci_phy_regmap_config = { --- linux-5.19.0.orig/drivers/phy/rockchip/phy-rockchip-inno-usb2.c +++ linux-5.19.0/drivers/phy/rockchip/phy-rockchip-inno-usb2.c @@ -978,7 +978,9 @@ switch (rport->port_id) { case USB2PHY_PORT_OTG: - ret |= rockchip_usb2phy_otg_mux_irq(irq, rport); + if (rport->mode != USB_DR_MODE_HOST && + rport->mode != USB_DR_MODE_UNKNOWN) + ret |= rockchip_usb2phy_otg_mux_irq(irq, rport); break; case USB2PHY_PORT_HOST: ret |= rockchip_usb2phy_linestate_irq(irq, rport); @@ -1122,7 +1124,7 @@ struct rockchip_usb2phy_port *rport, struct device_node *child_np) { - int ret; + int ret, id; rport->port_id = USB2PHY_PORT_OTG; rport->port_cfg = &rphy->phy_cfg->port_cfgs[USB2PHY_PORT_OTG]; @@ -1160,8 +1162,16 @@ ret = devm_extcon_register_notifier(rphy->dev, rphy->edev, EXTCON_USB_HOST, &rport->event_nb); - if (ret) + if (ret) { dev_err(rphy->dev, "register USB HOST notifier failed\n"); + goto out; + } + + if (!of_property_read_bool(rphy->dev->of_node, "extcon")) { + /* do initial sync of usb state */ + id = property_enabled(rphy->grf, &rport->port_cfg->utmi_id); + extcon_set_state_sync(rphy->edev, EXTCON_USB_HOST, !id); + } } out: --- linux-5.19.0.orig/drivers/phy/samsung/phy-exynos-pcie.c +++ linux-5.19.0/drivers/phy/samsung/phy-exynos-pcie.c @@ -51,6 +51,13 @@ { struct exynos_pcie_phy *ep = phy_get_drvdata(phy); + regmap_update_bits(ep->pmureg, EXYNOS5433_PMU_PCIE_PHY_OFFSET, + BIT(0), 1); + regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_GLOBAL_RESET, + PCIE_APP_REQ_EXIT_L1_MODE, 0); + regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_L1SUB_CM_CON, + PCIE_REFCLK_GATING_EN, 0); + regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_COMMON_RESET, PCIE_PHY_RESET, 1); regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_MAC_RESET, @@ -109,20 +116,7 @@ return 0; } -static int exynos5433_pcie_phy_power_on(struct phy *phy) -{ - struct exynos_pcie_phy *ep = phy_get_drvdata(phy); - - regmap_update_bits(ep->pmureg, EXYNOS5433_PMU_PCIE_PHY_OFFSET, - BIT(0), 1); - regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_GLOBAL_RESET, - PCIE_APP_REQ_EXIT_L1_MODE, 0); - regmap_update_bits(ep->fsysreg, PCIE_EXYNOS5433_PHY_L1SUB_CM_CON, - PCIE_REFCLK_GATING_EN, 0); - return 0; -} - -static int exynos5433_pcie_phy_power_off(struct phy *phy) +static int exynos5433_pcie_phy_exit(struct phy *phy) { struct exynos_pcie_phy *ep = phy_get_drvdata(phy); @@ -135,8 +129,7 @@ static const struct phy_ops exynos5433_phy_ops = { .init = exynos5433_pcie_phy_init, - .power_on = exynos5433_pcie_phy_power_on, - .power_off = exynos5433_pcie_phy_power_off, + .exit = exynos5433_pcie_phy_exit, .owner = THIS_MODULE, }; --- linux-5.19.0.orig/drivers/phy/samsung/phy-exynosautov9-ufs.c +++ linux-5.19.0/drivers/phy/samsung/phy-exynosautov9-ufs.c @@ -31,22 +31,22 @@ PHY_COMN_REG_CFG(0x023, 0xc0, PWR_MODE_ANY), PHY_COMN_REG_CFG(0x023, 0x00, PWR_MODE_ANY), - PHY_TRSV_REG_CFG(0x042, 0x5d, PWR_MODE_ANY), - PHY_TRSV_REG_CFG(0x043, 0x80, PWR_MODE_ANY), + PHY_TRSV_REG_CFG_AUTOV9(0x042, 0x5d, PWR_MODE_ANY), + PHY_TRSV_REG_CFG_AUTOV9(0x043, 0x80, PWR_MODE_ANY), END_UFS_PHY_CFG, }; /* Calibration for HS mode series A/B */ static const struct samsung_ufs_phy_cfg exynosautov9_pre_pwr_hs_cfg[] = { - PHY_TRSV_REG_CFG(0x032, 0xbc, PWR_MODE_HS_ANY), - PHY_TRSV_REG_CFG(0x03c, 0x7f, PWR_MODE_HS_ANY), - PHY_TRSV_REG_CFG(0x048, 0xc0, PWR_MODE_HS_ANY), + PHY_TRSV_REG_CFG_AUTOV9(0x032, 0xbc, PWR_MODE_HS_ANY), + PHY_TRSV_REG_CFG_AUTOV9(0x03c, 0x7f, PWR_MODE_HS_ANY), + PHY_TRSV_REG_CFG_AUTOV9(0x048, 0xc0, PWR_MODE_HS_ANY), - PHY_TRSV_REG_CFG(0x04a, 0x00, PWR_MODE_HS_G3_SER_B), - PHY_TRSV_REG_CFG(0x04b, 0x10, PWR_MODE_HS_G1_SER_B | - PWR_MODE_HS_G3_SER_B), - PHY_TRSV_REG_CFG(0x04d, 0x63, PWR_MODE_HS_G3_SER_B), + PHY_TRSV_REG_CFG_AUTOV9(0x04a, 0x00, PWR_MODE_HS_G3_SER_B), + PHY_TRSV_REG_CFG_AUTOV9(0x04b, 0x10, PWR_MODE_HS_G1_SER_B | + PWR_MODE_HS_G3_SER_B), + PHY_TRSV_REG_CFG_AUTOV9(0x04d, 0x63, PWR_MODE_HS_G3_SER_B), END_UFS_PHY_CFG, }; --- linux-5.19.0.orig/drivers/phy/st/phy-stm32-usbphyc.c +++ linux-5.19.0/drivers/phy/st/phy-stm32-usbphyc.c @@ -358,7 +358,9 @@ return 0; pll_disable: - return stm32_usbphyc_pll_disable(usbphyc); + stm32_usbphyc_pll_disable(usbphyc); + + return ret; } static int stm32_usbphyc_phy_exit(struct phy *phy) @@ -708,6 +710,8 @@ ret = of_property_read_u32(child, "reg", &index); if (ret || index > usbphyc->nphys) { dev_err(&phy->dev, "invalid reg property: %d\n", ret); + if (!ret) + ret = -EINVAL; goto put_child; } --- linux-5.19.0.orig/drivers/phy/ti/phy-tusb1210.c +++ linux-5.19.0/drivers/phy/ti/phy-tusb1210.c @@ -105,8 +105,9 @@ msleep(TUSB1210_RESET_TIME_MS); /* Restore the optional eye diagram optimization value */ - return tusb1210_ulpi_write(tusb, TUSB1210_VENDOR_SPECIFIC2, - tusb->vendor_specific2); + tusb1210_ulpi_write(tusb, TUSB1210_VENDOR_SPECIFIC2, tusb->vendor_specific2); + + return 0; } static int tusb1210_power_off(struct phy *phy) --- linux-5.19.0.orig/drivers/pinctrl/devicetree.c +++ linux-5.19.0/drivers/pinctrl/devicetree.c @@ -220,6 +220,8 @@ for (state = 0; ; state++) { /* Retrieve the pinctrl-* property */ propname = kasprintf(GFP_KERNEL, "pinctrl-%d", state); + if (!propname) + return -ENOMEM; prop = of_find_property(np, propname, &size); kfree(propname); if (!prop) { --- linux-5.19.0.orig/drivers/pinctrl/intel/pinctrl-intel.c +++ linux-5.19.0/drivers/pinctrl/intel/pinctrl-intel.c @@ -436,9 +436,14 @@ writel(value, padcfg0); } +static int __intel_gpio_get_gpio_mode(u32 value) +{ + return (value & PADCFG0_PMODE_MASK) >> PADCFG0_PMODE_SHIFT; +} + static int intel_gpio_get_gpio_mode(void __iomem *padcfg0) { - return (readl(padcfg0) & PADCFG0_PMODE_MASK) >> PADCFG0_PMODE_SHIFT; + return __intel_gpio_get_gpio_mode(readl(padcfg0)); } static void intel_gpio_set_gpio_mode(void __iomem *padcfg0) @@ -1641,16 +1646,14 @@ const struct intel_pinctrl_soc_data *intel_pinctrl_get_soc_data(struct platform_device *pdev) { + const struct intel_pinctrl_soc_data * const *table; const struct intel_pinctrl_soc_data *data = NULL; - const struct intel_pinctrl_soc_data **table; - struct acpi_device *adev; - unsigned int i; - adev = ACPI_COMPANION(&pdev->dev); - if (adev) { - const void *match = device_get_match_data(&pdev->dev); + table = device_get_match_data(&pdev->dev); + if (table) { + struct acpi_device *adev = ACPI_COMPANION(&pdev->dev); + unsigned int i; - table = (const struct intel_pinctrl_soc_data **)match; for (i = 0; table[i]; i++) { if (!strcmp(adev->pnp.unique_id, table[i]->uid)) { data = table[i]; @@ -1664,7 +1667,7 @@ if (!id) return ERR_PTR(-ENODEV); - table = (const struct intel_pinctrl_soc_data **)id->driver_data; + table = (const struct intel_pinctrl_soc_data * const *)id->driver_data; data = table[pdev->id]; } @@ -1676,6 +1679,7 @@ static bool intel_pinctrl_should_save(struct intel_pinctrl *pctrl, unsigned int pin) { const struct pin_desc *pd = pin_desc_get(pctrl->pctldev, pin); + u32 value; if (!pd || !intel_pad_usable(pctrl, pin)) return false; @@ -1690,6 +1694,25 @@ gpiochip_line_is_irq(&pctrl->chip, intel_pin_to_gpio(pctrl, pin))) return true; + /* + * The firmware on some systems may configure GPIO pins to be + * an interrupt source in so called "direct IRQ" mode. In such + * cases the GPIO controller driver has no idea if those pins + * are being used or not. At the same time, there is a known bug + * in the firmwares that don't restore the pin settings correctly + * after suspend, i.e. by an unknown reason the Rx value becomes + * inverted. + * + * Hence, let's save and restore the pins that are configured + * as GPIOs in the input mode with GPIROUTIOXAPIC bit set. + * + * See https://bugzilla.kernel.org/show_bug.cgi?id=214749. + */ + value = readl(intel_get_padcfg(pctrl, pin, PADCFG0)); + if ((value & PADCFG0_GPIROUTIOXAPIC) && (value & PADCFG0_GPIOTXDIS) && + (__intel_gpio_get_gpio_mode(value) == PADCFG0_PMODE_GPIO)) + return true; + return false; } --- linux-5.19.0.orig/drivers/pinctrl/mediatek/mtk-eint.c +++ linux-5.19.0/drivers/pinctrl/mediatek/mtk-eint.c @@ -287,12 +287,15 @@ static unsigned int mtk_eint_hw_init(struct mtk_eint *eint) { - void __iomem *reg = eint->base + eint->regs->dom_en; + void __iomem *dom_en = eint->base + eint->regs->dom_en; + void __iomem *mask_set = eint->base + eint->regs->mask_set; unsigned int i; for (i = 0; i < eint->hw->ap_num; i += 32) { - writel(0xffffffff, reg); - reg += 4; + writel(0xffffffff, dom_en); + writel(0xffffffff, mask_set); + dom_en += 4; + mask_set += 4; } return 0; --- linux-5.19.0.orig/drivers/pinctrl/mediatek/pinctrl-mt7986.c +++ linux-5.19.0/drivers/pinctrl/mediatek/pinctrl-mt7986.c @@ -316,10 +316,10 @@ PIN_FIELD_BASE(38, 38, IOCFG_LT_BASE, 0x30, 0x10, 9, 1), PIN_FIELD_BASE(39, 40, IOCFG_RB_BASE, 0x60, 0x10, 18, 1), PIN_FIELD_BASE(41, 41, IOCFG_RB_BASE, 0x60, 0x10, 12, 1), - PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x60, 0x10, 22, 1), - PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x60, 0x10, 20, 1), - PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x60, 0x10, 26, 1), - PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x60, 0x10, 24, 1), + PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x60, 0x10, 23, 1), + PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x60, 0x10, 21, 1), + PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x60, 0x10, 27, 1), + PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x60, 0x10, 25, 1), PIN_FIELD_BASE(50, 57, IOCFG_RT_BASE, 0x40, 0x10, 2, 1), PIN_FIELD_BASE(58, 58, IOCFG_RT_BASE, 0x40, 0x10, 1, 1), PIN_FIELD_BASE(59, 59, IOCFG_RT_BASE, 0x40, 0x10, 0, 1), @@ -354,10 +354,10 @@ PIN_FIELD_BASE(38, 38, IOCFG_LT_BASE, 0x40, 0x10, 9, 1), PIN_FIELD_BASE(39, 40, IOCFG_RB_BASE, 0x70, 0x10, 18, 1), PIN_FIELD_BASE(41, 41, IOCFG_RB_BASE, 0x70, 0x10, 12, 1), - PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x70, 0x10, 22, 1), - PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x70, 0x10, 20, 1), - PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x70, 0x10, 26, 1), - PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x70, 0x10, 24, 1), + PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x70, 0x10, 23, 1), + PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x70, 0x10, 21, 1), + PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x70, 0x10, 27, 1), + PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x70, 0x10, 25, 1), PIN_FIELD_BASE(50, 57, IOCFG_RT_BASE, 0x50, 0x10, 2, 1), PIN_FIELD_BASE(58, 58, IOCFG_RT_BASE, 0x50, 0x10, 1, 1), PIN_FIELD_BASE(59, 59, IOCFG_RT_BASE, 0x50, 0x10, 0, 1), @@ -392,10 +392,10 @@ PIN_FIELD_BASE(38, 38, IOCFG_LT_BASE, 0x50, 0x10, 9, 1), PIN_FIELD_BASE(39, 40, IOCFG_RB_BASE, 0x80, 0x10, 18, 1), PIN_FIELD_BASE(41, 41, IOCFG_RB_BASE, 0x80, 0x10, 12, 1), - PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x80, 0x10, 22, 1), - PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x80, 0x10, 20, 1), - PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x80, 0x10, 26, 1), - PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x80, 0x10, 24, 1), + PIN_FIELD_BASE(42, 43, IOCFG_RB_BASE, 0x80, 0x10, 23, 1), + PIN_FIELD_BASE(44, 45, IOCFG_RB_BASE, 0x80, 0x10, 21, 1), + PIN_FIELD_BASE(46, 47, IOCFG_RB_BASE, 0x80, 0x10, 27, 1), + PIN_FIELD_BASE(48, 49, IOCFG_RB_BASE, 0x80, 0x10, 25, 1), PIN_FIELD_BASE(50, 57, IOCFG_RT_BASE, 0x60, 0x10, 2, 1), PIN_FIELD_BASE(58, 58, IOCFG_RT_BASE, 0x60, 0x10, 1, 1), PIN_FIELD_BASE(59, 59, IOCFG_RT_BASE, 0x60, 0x10, 0, 1), --- linux-5.19.0.orig/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c +++ linux-5.19.0/drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c @@ -709,6 +709,9 @@ { int err, rsel_val; + if (!pullup && arg == MTK_DISABLE) + return 0; + if (hw->rsel_si_unit) { /* find pin rsel_index from pin_rsel array*/ err = mtk_hw_pin_rsel_lookup(hw, desc, pullup, arg, &rsel_val); --- linux-5.19.0.orig/drivers/pinctrl/nomadik/pinctrl-nomadik.c +++ linux-5.19.0/drivers/pinctrl/nomadik/pinctrl-nomadik.c @@ -1421,8 +1421,10 @@ has_config = nmk_pinctrl_dt_get_config(np, &configs); np_config = of_parse_phandle(np, "ste,config", 0); - if (np_config) + if (np_config) { has_config |= nmk_pinctrl_dt_get_config(np_config, &configs); + of_node_put(np_config); + } if (has_config) { const char *gpio_name; const char *pin; --- linux-5.19.0.orig/drivers/pinctrl/pinconf-generic.c +++ linux-5.19.0/drivers/pinctrl/pinconf-generic.c @@ -395,8 +395,10 @@ for_each_available_child_of_node(np_config, np) { ret = pinconf_generic_dt_subnode_to_map(pctldev, np, map, &reserved_maps, num_maps, type); - if (ret < 0) + if (ret < 0) { + of_node_put(np); goto exit; + } } return 0; --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-amd.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-amd.c @@ -917,6 +917,7 @@ { struct amd_gpio *gpio_dev = dev_get_drvdata(dev); struct pinctrl_desc *desc = gpio_dev->pctrl->desc; + unsigned long flags; int i; for (i = 0; i < desc->npins; i++) { @@ -925,7 +926,9 @@ if (!amd_gpio_should_save(gpio_dev, pin)) continue; - gpio_dev->saved_regs[i] = readl(gpio_dev->base + pin*4); + raw_spin_lock_irqsave(&gpio_dev->lock, flags); + gpio_dev->saved_regs[i] = readl(gpio_dev->base + pin * 4) & ~PIN_IRQ_PENDING; + raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); } return 0; @@ -935,6 +938,7 @@ { struct amd_gpio *gpio_dev = dev_get_drvdata(dev); struct pinctrl_desc *desc = gpio_dev->pctrl->desc; + unsigned long flags; int i; for (i = 0; i < desc->npins; i++) { @@ -943,7 +947,10 @@ if (!amd_gpio_should_save(gpio_dev, pin)) continue; - writel(gpio_dev->saved_regs[i], gpio_dev->base + pin*4); + raw_spin_lock_irqsave(&gpio_dev->lock, flags); + gpio_dev->saved_regs[i] |= readl(gpio_dev->base + pin * 4) & PIN_IRQ_PENDING; + writel(gpio_dev->saved_regs[i], gpio_dev->base + pin * 4); + raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); } return 0; --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-ingenic.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-ingenic.c @@ -667,7 +667,7 @@ static const struct group_desc jz4755_groups[] = { INGENIC_PIN_GROUP("uart0-data", jz4755_uart0_data, 0), INGENIC_PIN_GROUP("uart0-hwflow", jz4755_uart0_hwflow, 0), - INGENIC_PIN_GROUP("uart1-data", jz4755_uart1_data, 0), + INGENIC_PIN_GROUP("uart1-data", jz4755_uart1_data, 1), INGENIC_PIN_GROUP("uart2-data", jz4755_uart2_data, 1), INGENIC_PIN_GROUP("ssi-dt-b", jz4755_ssi_dt_b, 0), INGENIC_PIN_GROUP("ssi-dt-f", jz4755_ssi_dt_f, 0), @@ -721,7 +721,7 @@ "ssi-ce1-b", "ssi-ce1-f", }; static const char *jz4755_mmc0_groups[] = { "mmc0-1bit", "mmc0-4bit", }; -static const char *jz4755_mmc1_groups[] = { "mmc0-1bit", "mmc0-4bit", }; +static const char *jz4755_mmc1_groups[] = { "mmc1-1bit", "mmc1-4bit", }; static const char *jz4755_i2c_groups[] = { "i2c-data", }; static const char *jz4755_cim_groups[] = { "cim-data", }; static const char *jz4755_lcd_groups[] = { --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-k210.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-k210.c @@ -862,8 +862,10 @@ for_each_available_child_of_node(np_config, np) { ret = k210_pinctrl_dt_subnode_to_map(pctldev, np, map, &reserved_maps, num_maps); - if (ret < 0) + if (ret < 0) { + of_node_put(np); goto err; + } } return 0; --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-rockchip.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-rockchip.c @@ -632,14 +632,54 @@ } static struct rockchip_mux_route_data px30_mux_route_data[] = { + RK_MUXROUTE_SAME(2, RK_PB4, 1, 0x184, BIT(16 + 7)), /* cif-d0m0 */ + RK_MUXROUTE_SAME(3, RK_PA1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d0m1 */ + RK_MUXROUTE_SAME(2, RK_PB6, 1, 0x184, BIT(16 + 7)), /* cif-d1m0 */ + RK_MUXROUTE_SAME(3, RK_PA2, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d1m1 */ RK_MUXROUTE_SAME(2, RK_PA0, 1, 0x184, BIT(16 + 7)), /* cif-d2m0 */ RK_MUXROUTE_SAME(3, RK_PA3, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d2m1 */ + RK_MUXROUTE_SAME(2, RK_PA1, 1, 0x184, BIT(16 + 7)), /* cif-d3m0 */ + RK_MUXROUTE_SAME(3, RK_PA5, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d3m1 */ + RK_MUXROUTE_SAME(2, RK_PA2, 1, 0x184, BIT(16 + 7)), /* cif-d4m0 */ + RK_MUXROUTE_SAME(3, RK_PA7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d4m1 */ + RK_MUXROUTE_SAME(2, RK_PA3, 1, 0x184, BIT(16 + 7)), /* cif-d5m0 */ + RK_MUXROUTE_SAME(3, RK_PB0, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d5m1 */ + RK_MUXROUTE_SAME(2, RK_PA4, 1, 0x184, BIT(16 + 7)), /* cif-d6m0 */ + RK_MUXROUTE_SAME(3, RK_PB1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d6m1 */ + RK_MUXROUTE_SAME(2, RK_PA5, 1, 0x184, BIT(16 + 7)), /* cif-d7m0 */ + RK_MUXROUTE_SAME(3, RK_PB4, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d7m1 */ + RK_MUXROUTE_SAME(2, RK_PA6, 1, 0x184, BIT(16 + 7)), /* cif-d8m0 */ + RK_MUXROUTE_SAME(3, RK_PB6, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d8m1 */ + RK_MUXROUTE_SAME(2, RK_PA7, 1, 0x184, BIT(16 + 7)), /* cif-d9m0 */ + RK_MUXROUTE_SAME(3, RK_PB7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d9m1 */ + RK_MUXROUTE_SAME(2, RK_PB7, 1, 0x184, BIT(16 + 7)), /* cif-d10m0 */ + RK_MUXROUTE_SAME(3, RK_PC6, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d10m1 */ + RK_MUXROUTE_SAME(2, RK_PC0, 1, 0x184, BIT(16 + 7)), /* cif-d11m0 */ + RK_MUXROUTE_SAME(3, RK_PC7, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-d11m1 */ + RK_MUXROUTE_SAME(2, RK_PB0, 1, 0x184, BIT(16 + 7)), /* cif-vsyncm0 */ + RK_MUXROUTE_SAME(3, RK_PD1, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-vsyncm1 */ + RK_MUXROUTE_SAME(2, RK_PB1, 1, 0x184, BIT(16 + 7)), /* cif-hrefm0 */ + RK_MUXROUTE_SAME(3, RK_PD2, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-hrefm1 */ + RK_MUXROUTE_SAME(2, RK_PB2, 1, 0x184, BIT(16 + 7)), /* cif-clkinm0 */ + RK_MUXROUTE_SAME(3, RK_PD3, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-clkinm1 */ + RK_MUXROUTE_SAME(2, RK_PB3, 1, 0x184, BIT(16 + 7)), /* cif-clkoutm0 */ + RK_MUXROUTE_SAME(3, RK_PD0, 3, 0x184, BIT(16 + 7) | BIT(7)), /* cif-clkoutm1 */ RK_MUXROUTE_SAME(3, RK_PC6, 2, 0x184, BIT(16 + 8)), /* pdm-m0 */ RK_MUXROUTE_SAME(2, RK_PC6, 1, 0x184, BIT(16 + 8) | BIT(8)), /* pdm-m1 */ + RK_MUXROUTE_SAME(3, RK_PD3, 2, 0x184, BIT(16 + 8)), /* pdm-sdi0m0 */ + RK_MUXROUTE_SAME(2, RK_PC5, 2, 0x184, BIT(16 + 8) | BIT(8)), /* pdm-sdi0m1 */ RK_MUXROUTE_SAME(1, RK_PD3, 2, 0x184, BIT(16 + 10)), /* uart2-rxm0 */ RK_MUXROUTE_SAME(2, RK_PB6, 2, 0x184, BIT(16 + 10) | BIT(10)), /* uart2-rxm1 */ + RK_MUXROUTE_SAME(1, RK_PD2, 2, 0x184, BIT(16 + 10)), /* uart2-txm0 */ + RK_MUXROUTE_SAME(2, RK_PB4, 2, 0x184, BIT(16 + 10) | BIT(10)), /* uart2-txm1 */ RK_MUXROUTE_SAME(0, RK_PC1, 2, 0x184, BIT(16 + 9)), /* uart3-rxm0 */ RK_MUXROUTE_SAME(1, RK_PB7, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-rxm1 */ + RK_MUXROUTE_SAME(0, RK_PC0, 2, 0x184, BIT(16 + 9)), /* uart3-txm0 */ + RK_MUXROUTE_SAME(1, RK_PB6, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-txm1 */ + RK_MUXROUTE_SAME(0, RK_PC2, 2, 0x184, BIT(16 + 9)), /* uart3-ctsm0 */ + RK_MUXROUTE_SAME(1, RK_PB4, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-ctsm1 */ + RK_MUXROUTE_SAME(0, RK_PC3, 2, 0x184, BIT(16 + 9)), /* uart3-rtsm0 */ + RK_MUXROUTE_SAME(1, RK_PB5, 2, 0x184, BIT(16 + 9) | BIT(9)), /* uart3-rtsm1 */ }; static struct rockchip_mux_route_data rk3128_mux_route_data[] = { @@ -2393,11 +2433,24 @@ return 0; } +static int rockchip_pmx_gpio_set_direction(struct pinctrl_dev *pctldev, + struct pinctrl_gpio_range *range, + unsigned offset, + bool input) +{ + struct rockchip_pinctrl *info = pinctrl_dev_get_drvdata(pctldev); + struct rockchip_pin_bank *bank; + + bank = pin_to_bank(info, offset); + return rockchip_set_mux(bank, offset - bank->pin_base, RK_FUNC_GPIO); +} + static const struct pinmux_ops rockchip_pmx_ops = { .get_functions_count = rockchip_pmx_get_funcs_count, .get_function_name = rockchip_pmx_get_func_name, .get_function_groups = rockchip_pmx_get_groups, .set_mux = rockchip_pmx_set, + .gpio_set_direction = rockchip_pmx_gpio_set_direction, }; /* --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-single.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-single.c @@ -727,7 +727,7 @@ mux_bytes = pcs->width / BITS_PER_BYTE; - if (pcs->bits_per_mux) { + if (pcs->bits_per_mux && pcs->fmask) { pcs->bits_per_pin = fls(pcs->fmask); nr_pins = (pcs->size * BITS_PER_BYTE) / pcs->bits_per_pin; } else { --- linux-5.19.0.orig/drivers/pinctrl/pinctrl-thunderbay.c +++ linux-5.19.0/drivers/pinctrl/pinctrl-thunderbay.c @@ -808,7 +808,7 @@ funcs[i].num_group_names, funcs[i].data); } - kfree(funcs); + return 0; } @@ -817,6 +817,7 @@ struct function_desc *thunderbay_funcs; void *ptr; int pin; + int ret; /* * Allocate maximum possible number of functions. Assume every pin @@ -860,7 +861,10 @@ return -ENOMEM; thunderbay_funcs = ptr; - return thunderbay_add_functions(tpc, thunderbay_funcs); + ret = thunderbay_add_functions(tpc, thunderbay_funcs); + + kfree(thunderbay_funcs); + return ret; } static int thunderbay_pinconf_set_tristate(struct thunderbay_pinctrl *tpc, --- linux-5.19.0.orig/drivers/pinctrl/qcom/pinctrl-msm.c +++ linux-5.19.0/drivers/pinctrl/qcom/pinctrl-msm.c @@ -51,6 +51,7 @@ * detection. * @skip_wake_irqs: Skip IRQs that are handled by wakeup interrupt controller * @disabled_for_mux: These IRQs were disabled because we muxed away. + * @ever_gpio: This bit is set the first time we mux a pin to gpio_func. * @soc: Reference to soc_data of platform specific data. * @regs: Base addresses for the TLMM tiles. * @phys_base: Physical base address @@ -72,6 +73,7 @@ DECLARE_BITMAP(enabled_irqs, MAX_NR_GPIO); DECLARE_BITMAP(skip_wake_irqs, MAX_NR_GPIO); DECLARE_BITMAP(disabled_for_mux, MAX_NR_GPIO); + DECLARE_BITMAP(ever_gpio, MAX_NR_GPIO); const struct msm_pinctrl_soc_data *soc; void __iomem *regs[MAX_NR_TILES]; @@ -218,6 +220,25 @@ val = msm_readl_ctl(pctrl, g); + /* + * If this is the first time muxing to GPIO and the direction is + * output, make sure that we're not going to be glitching the pin + * by reading the current state of the pin and setting it as the + * output. + */ + if (i == gpio_func && (val & BIT(g->oe_bit)) && + !test_and_set_bit(group, pctrl->ever_gpio)) { + u32 io_val = msm_readl_io(pctrl, g); + + if (io_val & BIT(g->in_bit)) { + if (!(io_val & BIT(g->out_bit))) + msm_writel_io(io_val | BIT(g->out_bit), pctrl, g); + } else { + if (io_val & BIT(g->out_bit)) + msm_writel_io(io_val & ~BIT(g->out_bit), pctrl, g); + } + } + if (egpio_func && i == egpio_func) { if (val & BIT(g->egpio_present)) val &= ~BIT(g->egpio_enable); --- linux-5.19.0.orig/drivers/pinctrl/qcom/pinctrl-msm8916.c +++ linux-5.19.0/drivers/pinctrl/qcom/pinctrl-msm8916.c @@ -844,8 +844,8 @@ PINGROUP(28, pwr_modem_enabled_a, NA, NA, NA, NA, NA, qdss_tracedata_b, NA, atest_combodac), PINGROUP(29, cci_i2c, NA, NA, NA, NA, NA, qdss_tracedata_b, NA, atest_combodac), PINGROUP(30, cci_i2c, NA, NA, NA, NA, NA, NA, NA, qdss_tracedata_b), - PINGROUP(31, cci_timer0, NA, NA, NA, NA, NA, NA, NA, NA), - PINGROUP(32, cci_timer1, NA, NA, NA, NA, NA, NA, NA, NA), + PINGROUP(31, cci_timer0, flash_strobe, NA, NA, NA, NA, NA, NA, NA), + PINGROUP(32, cci_timer1, flash_strobe, NA, NA, NA, NA, NA, NA, NA), PINGROUP(33, cci_async, NA, NA, NA, NA, NA, NA, NA, qdss_tracedata_b), PINGROUP(34, pwr_nav_enabled_a, NA, NA, NA, NA, NA, NA, NA, qdss_tracedata_b), PINGROUP(35, pwr_crypto_enabled_a, NA, NA, NA, NA, NA, NA, NA, qdss_tracedata_b), --- linux-5.19.0.orig/drivers/pinctrl/qcom/pinctrl-sc8180x.c +++ linux-5.19.0/drivers/pinctrl/qcom/pinctrl-sc8180x.c @@ -530,10 +530,10 @@ DECLARE_MSM_GPIO_PINS(188); DECLARE_MSM_GPIO_PINS(189); -static const unsigned int sdc2_clk_pins[] = { 190 }; -static const unsigned int sdc2_cmd_pins[] = { 191 }; -static const unsigned int sdc2_data_pins[] = { 192 }; -static const unsigned int ufs_reset_pins[] = { 193 }; +static const unsigned int ufs_reset_pins[] = { 190 }; +static const unsigned int sdc2_clk_pins[] = { 191 }; +static const unsigned int sdc2_cmd_pins[] = { 192 }; +static const unsigned int sdc2_data_pins[] = { 193 }; enum sc8180x_functions { msm_mux_adsp_ext, @@ -1582,7 +1582,7 @@ static const struct msm_gpio_wakeirq_map sc8180x_pdc_map[] = { { 3, 31 }, { 5, 32 }, { 8, 33 }, { 9, 34 }, { 10, 100 }, { 12, 104 }, { 24, 37 }, { 26, 38 }, { 27, 41 }, { 28, 42 }, { 30, 39 }, { 36, 43 }, - { 37, 43 }, { 38, 45 }, { 39, 118 }, { 39, 125 }, { 41, 47 }, + { 37, 44 }, { 38, 45 }, { 39, 118 }, { 39, 125 }, { 41, 47 }, { 42, 48 }, { 46, 50 }, { 47, 49 }, { 48, 51 }, { 49, 53 }, { 50, 52 }, { 51, 116 }, { 51, 123 }, { 53, 54 }, { 54, 55 }, { 55, 56 }, { 56, 57 }, { 58, 58 }, { 60, 60 }, { 68, 62 }, { 70, 63 }, { 76, 86 }, --- linux-5.19.0.orig/drivers/pinctrl/qcom/pinctrl-sc8280xp.c +++ linux-5.19.0/drivers/pinctrl/qcom/pinctrl-sc8280xp.c @@ -1873,8 +1873,8 @@ [225] = PINGROUP(225, hs3_mi2s, phase_flag, _, _, _, _, egpio), [226] = PINGROUP(226, hs3_mi2s, phase_flag, _, _, _, _, egpio), [227] = PINGROUP(227, hs3_mi2s, phase_flag, _, _, _, _, egpio), - [228] = UFS_RESET(ufs_reset, 0xf1004), - [229] = UFS_RESET(ufs1_reset, 0xf3004), + [228] = UFS_RESET(ufs_reset, 0xf1000), + [229] = UFS_RESET(ufs1_reset, 0xf3000), [230] = SDC_QDSD_PINGROUP(sdc2_clk, 0xe8000, 14, 6), [231] = SDC_QDSD_PINGROUP(sdc2_cmd, 0xe8000, 11, 3), [232] = SDC_QDSD_PINGROUP(sdc2_data, 0xe8000, 9, 0), --- linux-5.19.0.orig/drivers/pinctrl/qcom/pinctrl-sm8250.c +++ linux-5.19.0/drivers/pinctrl/qcom/pinctrl-sm8250.c @@ -1316,7 +1316,7 @@ static const struct msm_gpio_wakeirq_map sm8250_pdc_map[] = { { 0, 79 }, { 1, 84 }, { 2, 80 }, { 3, 82 }, { 4, 107 }, { 7, 43 }, { 11, 42 }, { 14, 44 }, { 15, 52 }, { 19, 67 }, { 23, 68 }, { 24, 105 }, - { 27, 92 }, { 28, 106 }, { 31, 69 }, { 35, 70 }, { 39, 37 }, + { 27, 92 }, { 28, 106 }, { 31, 69 }, { 35, 70 }, { 39, 73 }, { 40, 108 }, { 43, 71 }, { 45, 72 }, { 47, 83 }, { 51, 74 }, { 55, 77 }, { 59, 78 }, { 63, 75 }, { 64, 81 }, { 65, 87 }, { 66, 88 }, { 67, 89 }, { 68, 54 }, { 70, 85 }, { 77, 46 }, { 80, 90 }, { 81, 91 }, { 83, 97 }, --- linux-5.19.0.orig/drivers/pinctrl/renesas/pinctrl-rzg2l.c +++ linux-5.19.0/drivers/pinctrl/renesas/pinctrl-rzg2l.c @@ -517,6 +517,8 @@ if (!(cfg & PIN_CFG_IEN)) return -EINVAL; arg = rzg2l_read_pin_config(pctrl, IEN(port_offset), bit, IEN_MASK); + if (!arg) + return -EINVAL; break; case PIN_CONFIG_POWER_SOURCE: { --- linux-5.19.0.orig/drivers/pinctrl/sunxi/pinctrl-sun50i-a100-r.c +++ linux-5.19.0/drivers/pinctrl/sunxi/pinctrl-sun50i-a100-r.c @@ -98,7 +98,7 @@ static struct platform_driver a100_r_pinctrl_driver = { .probe = a100_r_pinctrl_probe, .driver = { - .name = "sun50iw10p1-r-pinctrl", + .name = "sun50i-a100-r-pinctrl", .of_match_table = a100_r_pinctrl_match, }, }; --- linux-5.19.0.orig/drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c +++ linux-5.19.0/drivers/pinctrl/sunxi/pinctrl-sun50i-h6-r.c @@ -107,6 +107,7 @@ .npins = ARRAY_SIZE(sun50i_h6_r_pins), .pin_base = PL_BASE, .irq_banks = 2, + .io_bias_cfg_variant = BIAS_VOLTAGE_PIO_POW_MODE_SEL, }; static int sun50i_h6_r_pinctrl_probe(struct platform_device *pdev) --- linux-5.19.0.orig/drivers/pinctrl/sunxi/pinctrl-sunxi.c +++ linux-5.19.0/drivers/pinctrl/sunxi/pinctrl-sunxi.c @@ -624,7 +624,7 @@ unsigned pin, struct regulator *supply) { - unsigned short bank = pin / PINS_PER_BANK; + unsigned short bank; unsigned long flags; u32 val, reg; int uV; @@ -640,6 +640,9 @@ if (uV == 0) return 0; + pin -= pctl->desc->pin_base; + bank = pin / PINS_PER_BANK; + switch (pctl->desc->io_bias_cfg_variant) { case BIAS_VOLTAGE_GRP_CONFIG: /* @@ -657,8 +660,6 @@ else val = 0xD; /* 3.3V */ - pin -= pctl->desc->pin_base; - reg = readl(pctl->membase + sunxi_grp_config_reg(pin)); reg &= ~IO_BIAS_MASK; writel(reg | val, pctl->membase + sunxi_grp_config_reg(pin)); --- linux-5.19.0.orig/drivers/platform/chrome/chromeos_laptop.c +++ linux-5.19.0/drivers/platform/chrome/chromeos_laptop.c @@ -740,6 +740,7 @@ chromeos_laptop_prepare_i2c_peripherals(struct chromeos_laptop *cros_laptop, const struct chromeos_laptop *src) { + struct i2c_peripheral *i2c_peripherals; struct i2c_peripheral *i2c_dev; struct i2c_board_info *info; int i; @@ -748,17 +749,15 @@ if (!src->num_i2c_peripherals) return 0; - cros_laptop->i2c_peripherals = kmemdup(src->i2c_peripherals, - src->num_i2c_peripherals * - sizeof(*src->i2c_peripherals), - GFP_KERNEL); - if (!cros_laptop->i2c_peripherals) + i2c_peripherals = kmemdup(src->i2c_peripherals, + src->num_i2c_peripherals * + sizeof(*src->i2c_peripherals), + GFP_KERNEL); + if (!i2c_peripherals) return -ENOMEM; - cros_laptop->num_i2c_peripherals = src->num_i2c_peripherals; - - for (i = 0; i < cros_laptop->num_i2c_peripherals; i++) { - i2c_dev = &cros_laptop->i2c_peripherals[i]; + for (i = 0; i < src->num_i2c_peripherals; i++) { + i2c_dev = &i2c_peripherals[i]; info = &i2c_dev->board_info; error = chromeos_laptop_setup_irq(i2c_dev); @@ -775,16 +774,19 @@ } } + cros_laptop->i2c_peripherals = i2c_peripherals; + cros_laptop->num_i2c_peripherals = src->num_i2c_peripherals; + return 0; err_out: while (--i >= 0) { - i2c_dev = &cros_laptop->i2c_peripherals[i]; + i2c_dev = &i2c_peripherals[i]; info = &i2c_dev->board_info; if (!IS_ERR_OR_NULL(info->fwnode)) fwnode_remove_software_node(info->fwnode); } - kfree(cros_laptop->i2c_peripherals); + kfree(i2c_peripherals); return error; } --- linux-5.19.0.orig/drivers/platform/chrome/cros_ec.c +++ linux-5.19.0/drivers/platform/chrome/cros_ec.c @@ -135,16 +135,16 @@ buf.msg.command = EC_CMD_HOST_SLEEP_EVENT; ret = cros_ec_cmd_xfer_status(ec_dev, &buf.msg); - - /* For now, report failure to transition to S0ix with a warning. */ + /* Report failure to transition to system wide suspend with a warning. */ if (ret >= 0 && ec_dev->host_sleep_v1 && - (sleep_event == HOST_SLEEP_EVENT_S0IX_RESUME)) { + (sleep_event == HOST_SLEEP_EVENT_S0IX_RESUME || + sleep_event == HOST_SLEEP_EVENT_S3_RESUME)) { ec_dev->last_resume_result = buf.u.resp1.resume_response.sleep_transitions; WARN_ONCE(buf.u.resp1.resume_response.sleep_transitions & EC_HOST_RESUME_SLEEP_TIMEOUT, - "EC detected sleep transition timeout. Total slp_s0 transitions: %d", + "EC detected sleep transition timeout. Total sleep transitions: %d", buf.u.resp1.resume_response.sleep_transitions & EC_HOST_RESUME_SLEEP_TRANSITIONS_MASK); } @@ -352,10 +352,16 @@ static void cros_ec_report_events_during_suspend(struct cros_ec_device *ec_dev) { + bool wake_event; + while (ec_dev->mkbp_event_supported && - cros_ec_get_next_event(ec_dev, NULL, NULL) > 0) + cros_ec_get_next_event(ec_dev, &wake_event, NULL) > 0) { blocking_notifier_call_chain(&ec_dev->event_notifier, 1, ec_dev); + + if (wake_event && device_may_wakeup(ec_dev->dev)) + pm_wakeup_event(ec_dev->dev, 0); + } } /** --- linux-5.19.0.orig/drivers/platform/chrome/cros_ec_chardev.c +++ linux-5.19.0/drivers/platform/chrome/cros_ec_chardev.c @@ -327,6 +327,9 @@ if (copy_from_user(&s_mem, arg, sizeof(s_mem))) return -EFAULT; + if (s_mem.bytes > sizeof(s_mem.buffer)) + return -EINVAL; + num = ec_dev->cmd_readmem(ec_dev, s_mem.offset, s_mem.bytes, s_mem.buffer); if (num <= 0) --- linux-5.19.0.orig/drivers/platform/chrome/cros_ec_proto.c +++ linux-5.19.0/drivers/platform/chrome/cros_ec_proto.c @@ -509,13 +509,13 @@ ret = cros_ec_get_host_command_version_mask(ec_dev, EC_CMD_GET_NEXT_EVENT, &ver_mask); - if (ret < 0 || ver_mask == 0) + if (ret < 0 || ver_mask == 0) { ec_dev->mkbp_event_supported = 0; - else + } else { ec_dev->mkbp_event_supported = fls(ver_mask); - dev_dbg(ec_dev->dev, "MKBP support version %u\n", - ec_dev->mkbp_event_supported - 1); + dev_dbg(ec_dev->dev, "MKBP support version %u\n", ec_dev->mkbp_event_supported - 1); + } /* Probe if host sleep v1 is supported for S0ix failure detection. */ ret = cros_ec_get_host_command_version_mask(ec_dev, @@ -750,6 +750,7 @@ u8 event_type; u32 host_event; int ret; + u32 ver_mask; /* * Default value for wake_event. @@ -771,6 +772,37 @@ return get_keyboard_state_event(ec_dev); ret = get_next_event(ec_dev); + /* + * -ENOPROTOOPT is returned when EC returns EC_RES_INVALID_VERSION. + * This can occur when EC based device (e.g. Fingerprint MCU) jumps to + * the RO image which doesn't support newer version of the command. In + * this case we will attempt to update maximum supported version of the + * EC_CMD_GET_NEXT_EVENT. + */ + if (ret == -ENOPROTOOPT) { + dev_dbg(ec_dev->dev, + "GET_NEXT_EVENT returned invalid version error.\n"); + ret = cros_ec_get_host_command_version_mask(ec_dev, + EC_CMD_GET_NEXT_EVENT, + &ver_mask); + if (ret < 0 || ver_mask == 0) + /* + * Do not change the MKBP supported version if we can't + * obtain supported version correctly. Please note that + * calling EC_CMD_GET_NEXT_EVENT returned + * EC_RES_INVALID_VERSION which means that the command + * is present. + */ + return -ENOPROTOOPT; + + ec_dev->mkbp_event_supported = fls(ver_mask); + dev_dbg(ec_dev->dev, "MKBP support version changed to %u\n", + ec_dev->mkbp_event_supported - 1); + + /* Try to get next event with new MKBP support version set. */ + ret = get_next_event(ec_dev); + } + if (ret <= 0) return ret; --- linux-5.19.0.orig/drivers/platform/chrome/cros_ec_typec.c +++ linux-5.19.0/drivers/platform/chrome/cros_ec_typec.c @@ -157,12 +157,12 @@ return 0; role_sw_err: - usb_role_switch_put(port->role_sw); -ori_sw_err: typec_switch_put(port->ori_sw); -mux_err: + port->ori_sw = NULL; +ori_sw_err: typec_mux_put(port->mux); - + port->mux = NULL; +mux_err: return -ENODEV; } @@ -669,7 +669,7 @@ for (j = 0; j < sop_disc->svids[i].mode_count; j++) { memset(&desc, 0, sizeof(desc)); desc.svid = sop_disc->svids[i].svid; - desc.mode = j; + desc.mode = j + 1; desc.vdo = sop_disc->svids[i].mode_vdo[j]; if (is_partner) --- linux-5.19.0.orig/drivers/platform/chrome/cros_usbpd_notify.c +++ linux-5.19.0/drivers/platform/chrome/cros_usbpd_notify.c @@ -239,7 +239,11 @@ return ret; #ifdef CONFIG_ACPI - platform_driver_register(&cros_usbpd_notify_acpi_driver); + ret = platform_driver_register(&cros_usbpd_notify_acpi_driver); + if (ret) { + platform_driver_unregister(&cros_usbpd_notify_plat_driver); + return ret; + } #endif return 0; } --- linux-5.19.0.orig/drivers/platform/mellanox/mlxbf-pmc.c +++ linux-5.19.0/drivers/platform/mellanox/mlxbf-pmc.c @@ -358,7 +358,7 @@ { 0x32, "DDN_DIAG_W_INGRESS" }, { 0x33, "DDN_DIAG_C_INGRESS" }, { 0x34, "DDN_DIAG_CORE_SENT" }, - { 0x35, "NDN_DIAG_S_OUT_OF_CRED" }, + { 0x35, "NDN_DIAG_N_OUT_OF_CRED" }, { 0x36, "NDN_DIAG_S_OUT_OF_CRED" }, { 0x37, "NDN_DIAG_E_OUT_OF_CRED" }, { 0x38, "NDN_DIAG_W_OUT_OF_CRED" }, --- linux-5.19.0.orig/drivers/platform/mellanox/mlxreg-lc.c +++ linux-5.19.0/drivers/platform/mellanox/mlxreg-lc.c @@ -460,8 +460,6 @@ u32 regval; int err; - mutex_lock(&mlxreg_lc->lock); - err = regmap_read(mlxreg_lc->par_regmap, mlxreg_lc->data->reg_pwr, ®val); if (err) goto regmap_read_fail; @@ -474,7 +472,6 @@ err = regmap_write(mlxreg_lc->par_regmap, mlxreg_lc->data->reg_pwr, regval); regmap_read_fail: - mutex_unlock(&mlxreg_lc->lock); return err; } @@ -491,8 +488,6 @@ * line card which is already has been enabled. Disabling does not affect the disabled line * card. */ - mutex_lock(&mlxreg_lc->lock); - err = regmap_read(mlxreg_lc->par_regmap, mlxreg_lc->data->reg_ena, ®val); if (err) goto regmap_read_fail; @@ -505,7 +500,6 @@ err = regmap_write(mlxreg_lc->par_regmap, mlxreg_lc->data->reg_ena, regval); regmap_read_fail: - mutex_unlock(&mlxreg_lc->lock); return err; } @@ -538,6 +532,15 @@ static void mlxreg_lc_state_update(struct mlxreg_lc *mlxreg_lc, enum mlxreg_lc_state state, u8 action) { + if (action) + mlxreg_lc->state |= state; + else + mlxreg_lc->state &= ~state; +} + +static void +mlxreg_lc_state_update_locked(struct mlxreg_lc *mlxreg_lc, enum mlxreg_lc_state state, u8 action) +{ mutex_lock(&mlxreg_lc->lock); if (action) @@ -560,8 +563,11 @@ dev_info(mlxreg_lc->dev, "linecard#%d state %d event kind %d action %d\n", mlxreg_lc->data->slot, mlxreg_lc->state, kind, action); - if (!(mlxreg_lc->state & MLXREG_LC_INITIALIZED)) + mutex_lock(&mlxreg_lc->lock); + if (!(mlxreg_lc->state & MLXREG_LC_INITIALIZED)) { + mutex_unlock(&mlxreg_lc->lock); return 0; + } switch (kind) { case MLXREG_HOTPLUG_LC_SYNCED: @@ -574,7 +580,7 @@ if (!(mlxreg_lc->state & MLXREG_LC_POWERED) && action) { err = mlxreg_lc_power_on_off(mlxreg_lc, 1); if (err) - return err; + goto mlxreg_lc_power_on_off_fail; } /* In case line card is configured - enable it. */ if (mlxreg_lc->state & MLXREG_LC_CONFIGURED && action) @@ -588,12 +594,13 @@ /* In case line card is configured - enable it. */ if (mlxreg_lc->state & MLXREG_LC_CONFIGURED) err = mlxreg_lc_enable_disable(mlxreg_lc, 1); + mutex_unlock(&mlxreg_lc->lock); return err; } err = mlxreg_lc_create_static_devices(mlxreg_lc, mlxreg_lc->main_devs, mlxreg_lc->main_devs_num); if (err) - return err; + goto mlxreg_lc_create_static_devices_fail; /* In case line card is already in ready state - enable it. */ if (mlxreg_lc->state & MLXREG_LC_CONFIGURED) @@ -620,6 +627,10 @@ break; } +mlxreg_lc_power_on_off_fail: +mlxreg_lc_create_static_devices_fail: + mutex_unlock(&mlxreg_lc->lock); + return err; } @@ -665,7 +676,7 @@ if (err) goto mlxreg_lc_create_static_devices_failed; - mlxreg_lc_state_update(mlxreg_lc, MLXREG_LC_POWERED, 1); + mlxreg_lc_state_update_locked(mlxreg_lc, MLXREG_LC_POWERED, 1); } /* Verify if line card is synchronized. */ @@ -676,7 +687,7 @@ /* Power on line card if necessary. */ if (regval & mlxreg_lc->data->mask) { mlxreg_lc->state |= MLXREG_LC_SYNCED; - mlxreg_lc_state_update(mlxreg_lc, MLXREG_LC_SYNCED, 1); + mlxreg_lc_state_update_locked(mlxreg_lc, MLXREG_LC_SYNCED, 1); if (mlxreg_lc->state & ~MLXREG_LC_POWERED) { err = mlxreg_lc_power_on_off(mlxreg_lc, 1); if (err) @@ -684,7 +695,7 @@ } } - mlxreg_lc_state_update(mlxreg_lc, MLXREG_LC_INITIALIZED, 1); + mlxreg_lc_state_update_locked(mlxreg_lc, MLXREG_LC_INITIALIZED, 1); return 0; @@ -716,8 +727,12 @@ switch (regval) { case MLXREG_LC_SN4800_C16: err = mlxreg_lc_sn4800_c16_config_init(mlxreg_lc, regmap, data); - if (err) + if (err) { + dev_err(dev, "Failed to config client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, + data->hpdev.brdinfo->addr); return err; + } break; default: return -ENODEV; @@ -730,8 +745,11 @@ mlxreg_lc->mux = platform_device_register_resndata(dev, "i2c-mux-mlxcpld", data->hpdev.nr, NULL, 0, mlxreg_lc->mux_data, sizeof(*mlxreg_lc->mux_data)); - if (IS_ERR(mlxreg_lc->mux)) + if (IS_ERR(mlxreg_lc->mux)) { + dev_err(dev, "Failed to create mux infra for client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr); return PTR_ERR(mlxreg_lc->mux); + } /* Register IO access driver. */ if (mlxreg_lc->io_data) { @@ -740,6 +758,9 @@ platform_device_register_resndata(dev, "mlxreg-io", data->hpdev.nr, NULL, 0, mlxreg_lc->io_data, sizeof(*mlxreg_lc->io_data)); if (IS_ERR(mlxreg_lc->io_regs)) { + dev_err(dev, "Failed to create regio for client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, + data->hpdev.brdinfo->addr); err = PTR_ERR(mlxreg_lc->io_regs); goto fail_register_io; } @@ -753,6 +774,9 @@ mlxreg_lc->led_data, sizeof(*mlxreg_lc->led_data)); if (IS_ERR(mlxreg_lc->led)) { + dev_err(dev, "Failed to create LED objects for client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, + data->hpdev.brdinfo->addr); err = PTR_ERR(mlxreg_lc->led); goto fail_register_led; } @@ -809,7 +833,8 @@ if (!data->hpdev.adapter) { dev_err(&pdev->dev, "Failed to get adapter for bus %d\n", data->hpdev.nr); - return -EFAULT; + err = -EFAULT; + goto i2c_get_adapter_fail; } /* Create device at the top of line card I2C tree.*/ @@ -818,32 +843,39 @@ if (IS_ERR(data->hpdev.client)) { dev_err(&pdev->dev, "Failed to create client %s at bus %d at addr 0x%02x\n", data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr); - - i2c_put_adapter(data->hpdev.adapter); - data->hpdev.adapter = NULL; - return PTR_ERR(data->hpdev.client); + err = PTR_ERR(data->hpdev.client); + goto i2c_new_device_fail; } regmap = devm_regmap_init_i2c(data->hpdev.client, &mlxreg_lc_regmap_conf); if (IS_ERR(regmap)) { + dev_err(&pdev->dev, "Failed to create regmap for client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr); err = PTR_ERR(regmap); - goto mlxreg_lc_probe_fail; + goto devm_regmap_init_i2c_fail; } /* Set default registers. */ for (i = 0; i < mlxreg_lc_regmap_conf.num_reg_defaults; i++) { err = regmap_write(regmap, mlxreg_lc_regmap_default[i].reg, mlxreg_lc_regmap_default[i].def); - if (err) - goto mlxreg_lc_probe_fail; + if (err) { + dev_err(&pdev->dev, "Failed to set default regmap %d for client %s at bus %d at addr 0x%02x\n", + i, data->hpdev.brdinfo->type, data->hpdev.nr, + data->hpdev.brdinfo->addr); + goto regmap_write_fail; + } } /* Sync registers with hardware. */ regcache_mark_dirty(regmap); err = regcache_sync(regmap); - if (err) - goto mlxreg_lc_probe_fail; + if (err) { + dev_err(&pdev->dev, "Failed to sync regmap for client %s at bus %d at addr 0x%02x\n", + data->hpdev.brdinfo->type, data->hpdev.nr, data->hpdev.brdinfo->addr); + goto regcache_sync_fail; + } par_pdata = data->hpdev.brdinfo->platform_data; mlxreg_lc->par_regmap = par_pdata->regmap; @@ -854,12 +886,27 @@ /* Configure line card. */ err = mlxreg_lc_config_init(mlxreg_lc, regmap, data); if (err) - goto mlxreg_lc_probe_fail; + goto mlxreg_lc_config_init_fail; return err; -mlxreg_lc_probe_fail: +mlxreg_lc_config_init_fail: +regcache_sync_fail: +regmap_write_fail: +devm_regmap_init_i2c_fail: + if (data->hpdev.client) { + i2c_unregister_device(data->hpdev.client); + data->hpdev.client = NULL; + } +i2c_new_device_fail: i2c_put_adapter(data->hpdev.adapter); + data->hpdev.adapter = NULL; +i2c_get_adapter_fail: + /* Clear event notification callback and handle. */ + if (data->notifier) { + data->notifier->user_handler = NULL; + data->notifier->handle = NULL; + } return err; } @@ -868,11 +915,20 @@ struct mlxreg_core_data *data = dev_get_platdata(&pdev->dev); struct mlxreg_lc *mlxreg_lc = platform_get_drvdata(pdev); - /* Clear event notification callback. */ - if (data->notifier) { - data->notifier->user_handler = NULL; - data->notifier->handle = NULL; - } + mlxreg_lc_state_update_locked(mlxreg_lc, MLXREG_LC_INITIALIZED, 0); + + /* + * Probing and removing are invoked by hotplug events raised upon line card insertion and + * removing. If probing procedure fails all data is cleared. However, hotplug event still + * will be raised on line card removing and activate removing procedure. In this case there + * is nothing to remove. + */ + if (!data->notifier || !data->notifier->handle) + return 0; + + /* Clear event notification callback and handle. */ + data->notifier->user_handler = NULL; + data->notifier->handle = NULL; /* Destroy static I2C device feeding by main power. */ mlxreg_lc_destroy_static_devices(mlxreg_lc, mlxreg_lc->main_devs, --- linux-5.19.0.orig/drivers/platform/olpc/olpc-ec.c +++ linux-5.19.0/drivers/platform/olpc/olpc-ec.c @@ -264,7 +264,7 @@ int i, m; unsigned char ec_cmd[EC_MAX_CMD_ARGS]; unsigned int ec_cmd_int[EC_MAX_CMD_ARGS]; - char cmdbuf[64]; + char cmdbuf[64] = ""; int ec_cmd_bytes; mutex_lock(&ec_dbgfs_lock); --- linux-5.19.0.orig/drivers/platform/surface/aggregator/ssh_packet_layer.c +++ linux-5.19.0/drivers/platform/surface/aggregator/ssh_packet_layer.c @@ -1596,16 +1596,32 @@ ssh_ptl_tx_wakeup_packet(ptl); } -static bool ssh_ptl_rx_retransmit_check(struct ssh_ptl *ptl, u8 seq) +static bool ssh_ptl_rx_retransmit_check(struct ssh_ptl *ptl, const struct ssh_frame *frame) { int i; /* + * Ignore unsequenced packets. On some devices (notably Surface Pro 9), + * unsequenced events will always be sent with SEQ=0x00. Attempting to + * detect retransmission would thus just block all events. + * + * While sequence numbers would also allow detection of retransmitted + * packets in unsequenced communication, they have only ever been used + * to cover edge-cases in sequenced transmission. In particular, the + * only instance of packets being retransmitted (that we are aware of) + * is due to an ACK timeout. As this does not happen in unsequenced + * communication, skip the retransmission check for those packets + * entirely. + */ + if (frame->type == SSH_FRAME_TYPE_DATA_NSQ) + return false; + + /* * Check if SEQ has been seen recently (i.e. packet was * re-transmitted and we should ignore it). */ for (i = 0; i < ARRAY_SIZE(ptl->rx.blocked.seqs); i++) { - if (likely(ptl->rx.blocked.seqs[i] != seq)) + if (likely(ptl->rx.blocked.seqs[i] != frame->seq)) continue; ptl_dbg(ptl, "ptl: ignoring repeated data packet\n"); @@ -1613,7 +1629,7 @@ } /* Update list of blocked sequence IDs. */ - ptl->rx.blocked.seqs[ptl->rx.blocked.offset] = seq; + ptl->rx.blocked.seqs[ptl->rx.blocked.offset] = frame->seq; ptl->rx.blocked.offset = (ptl->rx.blocked.offset + 1) % ARRAY_SIZE(ptl->rx.blocked.seqs); @@ -1624,7 +1640,7 @@ const struct ssh_frame *frame, const struct ssam_span *payload) { - if (ssh_ptl_rx_retransmit_check(ptl, frame->seq)) + if (ssh_ptl_rx_retransmit_check(ptl, frame)) return; ptl->ops.data_received(ptl, payload); --- linux-5.19.0.orig/drivers/platform/surface/surface_aggregator_registry.c +++ linux-5.19.0/drivers/platform/surface/surface_aggregator_registry.c @@ -556,6 +556,9 @@ /* Surface Laptop Go 1 */ { "MSHW0118", (unsigned long)ssam_node_group_slg1 }, + /* Surface Laptop Go 2 */ + { "MSHW0290", (unsigned long)ssam_node_group_slg1 }, + /* Surface Laptop Studio */ { "MSHW0123", (unsigned long)ssam_node_group_sls }, --- linux-5.19.0.orig/drivers/platform/x86/Kconfig +++ linux-5.19.0/drivers/platform/x86/Kconfig @@ -399,6 +399,20 @@ This is a driver for enabling wifi on some Fujitsu-Siemens Amilo laptops. +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" depends on ACPI --- linux-5.19.0.orig/drivers/platform/x86/acer-wmi.c +++ linux-5.19.0/drivers/platform/x86/acer-wmi.c @@ -99,6 +99,7 @@ {KE_KEY, 0x22, {KEY_PROG2} }, /* Arcade */ {KE_KEY, 0x23, {KEY_PROG3} }, /* P_Key */ {KE_KEY, 0x24, {KEY_PROG4} }, /* Social networking_Key */ + {KE_KEY, 0x27, {KEY_HELP} }, {KE_KEY, 0x29, {KEY_PROG3} }, /* P_Key for TM8372 */ {KE_IGNORE, 0x41, {KEY_MUTE} }, {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} }, @@ -112,7 +113,13 @@ {KE_IGNORE, 0x48, {KEY_VOLUMEUP} }, {KE_IGNORE, 0x49, {KEY_VOLUMEDOWN} }, {KE_IGNORE, 0x4a, {KEY_VOLUMEDOWN} }, - {KE_IGNORE, 0x61, {KEY_SWITCHVIDEOMODE} }, + /* + * 0x61 is KEY_SWITCHVIDEOMODE. Usually this is a duplicate input event + * with the "Video Bus" input device events. But sometimes it is not + * a dup. Map it to KEY_UNKNOWN instead of using KE_IGNORE so that + * udev/hwdb can override it on systems where it is not a dup. + */ + {KE_KEY, 0x61, {KEY_UNKNOWN} }, {KE_IGNORE, 0x62, {KEY_BRIGHTNESSUP} }, {KE_IGNORE, 0x63, {KEY_BRIGHTNESSDOWN} }, {KE_KEY, 0x64, {KEY_SWITCHVIDEOMODE} }, /* Display Switch */ @@ -557,6 +564,15 @@ }, .driver_data = (void *)ACER_CAP_KBD_DOCK, }, + { + .callback = set_force_caps, + .ident = "Acer Aspire Switch V 10 SW5-017", + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "SW5-017"), + }, + .driver_data = (void *)ACER_CAP_KBD_DOCK, + }, { .callback = set_force_caps, .ident = "Acer One 10 (S1003)", --- linux-5.19.0.orig/drivers/platform/x86/amd-pmc.c +++ linux-5.19.0/drivers/platform/x86/amd-pmc.c @@ -635,6 +635,13 @@ struct rtc_time tm; int rc; + /* we haven't yet read SMU version */ + if (!pdev->major) { + rc = amd_pmc_get_smu_version(pdev); + if (rc) + return rc; + } + if (pdev->major < 64 || (pdev->major == 64 && pdev->minor < 53)) return 0; --- linux-5.19.0.orig/drivers/platform/x86/asus-nb-wmi.c +++ linux-5.19.0/drivers/platform/x86/asus-nb-wmi.c @@ -115,12 +115,17 @@ }; static struct quirk_entry quirk_asus_use_kbd_dock_devid = { - .use_kbd_dock_devid = true, + .tablet_switch_mode = asus_wmi_kbd_dock_devid, }; static struct quirk_entry quirk_asus_use_lid_flip_devid = { .wmi_backlight_set_devstate = true, - .use_lid_flip_devid = true, + .tablet_switch_mode = asus_wmi_lid_flip_devid, +}; + +static struct quirk_entry quirk_asus_tablet_mode = { + .wmi_backlight_set_devstate = true, + .tablet_switch_mode = asus_wmi_lid_flip_rog_devid, }; static int dmi_matched(const struct dmi_system_id *dmi) @@ -471,6 +476,15 @@ }, .driver_data = &quirk_asus_use_lid_flip_devid, }, + { + .callback = dmi_matched, + .ident = "ASUS ROG FLOW X13", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "GV301Q"), + }, + .driver_data = &quirk_asus_tablet_mode, + }, {}, }; @@ -492,16 +506,13 @@ switch (tablet_mode_sw) { case 0: - quirks->use_kbd_dock_devid = false; - quirks->use_lid_flip_devid = false; + quirks->tablet_switch_mode = asus_wmi_no_tablet_switch; break; case 1: - quirks->use_kbd_dock_devid = true; - quirks->use_lid_flip_devid = false; + quirks->tablet_switch_mode = asus_wmi_kbd_dock_devid; break; case 2: - quirks->use_kbd_dock_devid = false; - quirks->use_lid_flip_devid = true; + quirks->tablet_switch_mode = asus_wmi_lid_flip_devid; break; } @@ -581,6 +592,7 @@ { KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } }, { KE_IGNORE, 0xC6, }, /* Ambient Light Sensor notification */ { KE_KEY, 0xFA, { KEY_PROG2 } }, /* Lid flip action */ + { KE_KEY, 0xBD, { KEY_PROG2 } }, /* Lid flip action on ROG xflow laptops */ { KE_END, 0}, }; --- linux-5.19.0.orig/drivers/platform/x86/asus-wmi.c +++ linux-5.19.0/drivers/platform/x86/asus-wmi.c @@ -68,6 +68,7 @@ #define NOTIFY_KBD_FBM 0x99 #define NOTIFY_KBD_TTP 0xae #define NOTIFY_LID_FLIP 0xfa +#define NOTIFY_LID_FLIP_ROG 0xbd #define ASUS_WMI_FNLOCK_BIOS_DISABLED BIT(0) @@ -107,7 +108,7 @@ #define WMI_EVENT_MASK 0xFFFF #define FAN_CURVE_POINTS 8 -#define FAN_CURVE_BUF_LEN (FAN_CURVE_POINTS * 2) +#define FAN_CURVE_BUF_LEN 32 #define FAN_CURVE_DEV_CPU 0x00 #define FAN_CURVE_DEV_GPU 0x01 /* Mask to determine if setting temperature or percentage */ @@ -488,8 +489,11 @@ static int asus_wmi_input_init(struct asus_wmi *asus) { + struct device *dev; int err, result; + dev = &asus->platform_device->dev; + asus->inputdev = input_allocate_device(); if (!asus->inputdev) return -ENOMEM; @@ -497,35 +501,51 @@ asus->inputdev->name = asus->driver->input_name; asus->inputdev->phys = asus->driver->input_phys; asus->inputdev->id.bustype = BUS_HOST; - asus->inputdev->dev.parent = &asus->platform_device->dev; + asus->inputdev->dev.parent = dev; set_bit(EV_REP, asus->inputdev->evbit); err = sparse_keymap_setup(asus->inputdev, asus->driver->keymap, NULL); if (err) goto err_free_dev; - if (asus->driver->quirks->use_kbd_dock_devid) { + switch (asus->driver->quirks->tablet_switch_mode) { + case asus_wmi_no_tablet_switch: + break; + case asus_wmi_kbd_dock_devid: result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_KBD_DOCK); if (result >= 0) { input_set_capability(asus->inputdev, EV_SW, SW_TABLET_MODE); input_report_switch(asus->inputdev, SW_TABLET_MODE, !result); } else if (result != -ENODEV) { - pr_err("Error checking for keyboard-dock: %d\n", result); + dev_err(dev, "Error checking for keyboard-dock: %d\n", result); } - } - - if (asus->driver->quirks->use_lid_flip_devid) { + break; + case asus_wmi_lid_flip_devid: result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_LID_FLIP); if (result < 0) - asus->driver->quirks->use_lid_flip_devid = 0; + asus->driver->quirks->tablet_switch_mode = asus_wmi_no_tablet_switch; + if (result >= 0) { + input_set_capability(asus->inputdev, EV_SW, SW_TABLET_MODE); + input_report_switch(asus->inputdev, SW_TABLET_MODE, result); + } else if (result == -ENODEV) { + dev_err(dev, "This device has lid_flip quirk but got ENODEV checking it. This is a bug."); + } else { + dev_err(dev, "Error checking for lid-flip: %d\n", result); + } + break; + case asus_wmi_lid_flip_rog_devid: + result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_LID_FLIP_ROG); + if (result < 0) + asus->driver->quirks->tablet_switch_mode = asus_wmi_no_tablet_switch; if (result >= 0) { input_set_capability(asus->inputdev, EV_SW, SW_TABLET_MODE); input_report_switch(asus->inputdev, SW_TABLET_MODE, result); } else if (result == -ENODEV) { - pr_err("This device has lid_flip quirk but got ENODEV checking it. This is a bug."); + dev_err(dev, "This device has lid-flip-rog quirk but got ENODEV checking it. This is a bug."); } else { - pr_err("Error checking for lid-flip: %d\n", result); + dev_err(dev, "Error checking for lid-flip: %d\n", result); } + break; } err = input_register_device(asus->inputdev); @@ -551,8 +571,20 @@ static void lid_flip_tablet_mode_get_state(struct asus_wmi *asus) { - int result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_LID_FLIP); + int result; + + result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_LID_FLIP); + if (result >= 0) { + input_report_switch(asus->inputdev, SW_TABLET_MODE, result); + input_sync(asus->inputdev); + } +} + +static void lid_flip_rog_tablet_mode_get_state(struct asus_wmi *asus) +{ + int result; + result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_LID_FLIP_ROG); if (result >= 0) { input_report_switch(asus->inputdev, SW_TABLET_MODE, result); input_sync(asus->inputdev); @@ -1631,6 +1663,8 @@ pci_write_config_dword(xhci_pdev, USB_INTEL_XUSB2PR, cpu_to_le32(ports_available)); + pci_dev_put(xhci_pdev); + pr_info("set USB_INTEL_XUSB2PR old: 0x%04x, new: 0x%04x\n", orig_ports_available, ports_available); } @@ -2063,7 +2097,7 @@ err = asus_wmi_get_devstate(asus, ASUS_WMI_DEVID_FAN_BOOST_MODE, &result); if (err) { - if (err == -ENODEV) + if (err == -ENODEV || err == -ENODATA) return 0; else return err; @@ -2208,8 +2242,10 @@ curves = &asus->custom_fan_curves[fan_idx]; err = asus_wmi_evaluate_method_buf(asus->dsts_id, fan_dev, mode, buf, FAN_CURVE_BUF_LEN); - if (err) + if (err) { + pr_warn("%s (0x%08x) failed: %d\n", __func__, fan_dev, err); return err; + } fan_curve_copy_from_buf(curves, buf); curves->device_id = fan_dev; @@ -2227,9 +2263,6 @@ err = fan_curve_get_factory_default(asus, fan_dev); if (err) { - pr_debug("fan_curve_get_factory_default(0x%08x) failed: %d\n", - fan_dev, err); - /* Don't cause probe to fail on devices without fan-curves */ return 0; } @@ -3083,7 +3116,8 @@ return; } - if (asus->driver->quirks->use_kbd_dock_devid && code == NOTIFY_KBD_DOCK_CHANGE) { + if (asus->driver->quirks->tablet_switch_mode == asus_wmi_kbd_dock_devid && + code == NOTIFY_KBD_DOCK_CHANGE) { result = asus_wmi_get_devstate_simple(asus, ASUS_WMI_DEVID_KBD_DOCK); if (result >= 0) { @@ -3094,11 +3128,18 @@ return; } - if (asus->driver->quirks->use_lid_flip_devid && code == NOTIFY_LID_FLIP) { + if (asus->driver->quirks->tablet_switch_mode == asus_wmi_lid_flip_devid && + code == NOTIFY_LID_FLIP) { lid_flip_tablet_mode_get_state(asus); return; } + if (asus->driver->quirks->tablet_switch_mode == asus_wmi_lid_flip_rog_devid && + code == NOTIFY_LID_FLIP_ROG) { + lid_flip_rog_tablet_mode_get_state(asus); + return; + } + if (asus->fan_boost_mode_available && code == NOTIFY_KBD_FBM) { fan_boost_mode_switch_next(asus); return; @@ -3731,8 +3772,17 @@ if (asus_wmi_has_fnlock_key(asus)) asus_wmi_fnlock_update(asus); - if (asus->driver->quirks->use_lid_flip_devid) + switch (asus->driver->quirks->tablet_switch_mode) { + case asus_wmi_no_tablet_switch: + case asus_wmi_kbd_dock_devid: + break; + case asus_wmi_lid_flip_devid: lid_flip_tablet_mode_get_state(asus); + break; + case asus_wmi_lid_flip_rog_devid: + lid_flip_rog_tablet_mode_get_state(asus); + break; + } return 0; } @@ -3773,8 +3823,17 @@ if (asus_wmi_has_fnlock_key(asus)) asus_wmi_fnlock_update(asus); - if (asus->driver->quirks->use_lid_flip_devid) + switch (asus->driver->quirks->tablet_switch_mode) { + case asus_wmi_no_tablet_switch: + case asus_wmi_kbd_dock_devid: + break; + case asus_wmi_lid_flip_devid: lid_flip_tablet_mode_get_state(asus); + break; + case asus_wmi_lid_flip_rog_devid: + lid_flip_rog_tablet_mode_get_state(asus); + break; + } return 0; } --- linux-5.19.0.orig/drivers/platform/x86/asus-wmi.h +++ linux-5.19.0/drivers/platform/x86/asus-wmi.h @@ -25,6 +25,13 @@ struct key_entry; struct asus_wmi; +enum asus_wmi_tablet_switch_mode { + asus_wmi_no_tablet_switch, + asus_wmi_kbd_dock_devid, + asus_wmi_lid_flip_devid, + asus_wmi_lid_flip_rog_devid, +}; + struct quirk_entry { bool hotplug_wireless; bool scalar_panel_brightness; @@ -33,8 +40,7 @@ bool wmi_backlight_native; bool wmi_backlight_set_devstate; bool wmi_force_als_set; - bool use_kbd_dock_devid; - bool use_lid_flip_devid; + enum asus_wmi_tablet_switch_mode tablet_switch_mode; int wapf; /* * For machines with AMD graphic chips, it will send out WMI event --- linux-5.19.0.orig/drivers/platform/x86/dell/Makefile +++ linux-5.19.0/drivers/platform/x86/dell/Makefile @@ -14,6 +14,7 @@ dell-smbios-$(CONFIG_DELL_SMBIOS_WMI) += dell-smbios-wmi.o dell-smbios-$(CONFIG_DELL_SMBIOS_SMM) += dell-smbios-smm.o obj-$(CONFIG_DELL_SMO8800) += dell-smo8800.o +obj-$(CONFIG_DELL_UART_BACKLIGHT) += dell-uart-backlight.o obj-$(CONFIG_DELL_WMI) += dell-wmi.o dell-wmi-objs := dell-wmi-base.o dell-wmi-$(CONFIG_DELL_WMI_PRIVACY) += dell-wmi-privacy.o --- linux-5.19.0.orig/drivers/platform/x86/dell/dell-uart-backlight.c +++ linux-5.19.0/drivers/platform/x86/dell/dell-uart-backlight.c @@ -0,0 +1,531 @@ +/* + * Dell AIO Serial Backlight Driver + * + * Copyright (C) 2017 AceLan Kao + * + * 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 +#include +#include +#include +#include +#include +#include +#include + +#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); +unsigned 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 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, + }, + /* + * Get display mode: Application uses this command to get scaler + * display mode. + * Command: 0x6A 0x10 0x85 (Length:3 Type: 0x0A, Cmd:0x10) + * Return data: 0x04 0x10 Data checksum + * (Length:4 Cmd:0x10 Data: mode checksum: SUM + * mode =0 if PC mode + * mode =1 if AV(HDMI) mode + */ + [DELL_UART_GET_DISPLAY_MODE] = { + .cmd = {0x6A, 0x10, 0x85}, + .ret = {0x04, 0x10, 0x00, 0x00}, + .tx_len = 3, + .rx_len = 4, + }, +}; + +static const struct dmi_system_id dell_uart_backlight_alpha_platform[] = { + { + .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_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 int dell_uart_get_display_mode(struct dell_uart_backlight *dell_pdata) +{ + struct dell_uart_bl_cmd *bl_cmd = &uart_cmd[DELL_UART_GET_DISPLAY_MODE]; + struct uart_8250_port *uart = serial8250_get_port(dell_pdata->line); + int rx_len; + int status = 0, retry = 10; + + do { + 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); + mdelay(1000); + } while (rx_len == 0 && --retry); + + if (rx_len == 4) + status = ((unsigned int)bl_cmd->ret[2] == PC_MODE); + + return status; +} + +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"); + kfree_sensitive(dell_pdata); + return -ENODEV; + } + } + else if (!dell_uart_get_display_mode(dell_pdata)) { + pr_debug("Scalar is not in charge of brightness adjustment.\n"); + kfree_sensitive(dell_pdata); + return -ENODEV; + } + } + + 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)) { + kfree_sensitive(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); + kfree_sensitive(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 "); +MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/drivers/platform/x86/dell/dell-uart-backlight.h +++ linux-5.19.0/drivers/platform/x86/dell/dell-uart-backlight.h @@ -0,0 +1,41 @@ +/* + * Dell AIO Serial Backlight Driver + * + * Copyright (C) 2017 AceLan Kao + * + * 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_BRIGHTNESS, + DELL_UART_SET_BRIGHTNESS, + DELL_UART_SET_BACKLIGHT_POWER, + DELL_UART_GET_DISPLAY_MODE, +}; + +enum { + PC_MODE, + AV_MODE, +}; + +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-5.19.0.orig/drivers/platform/x86/dell/dell-wmi-base.c +++ linux-5.19.0/drivers/platform/x86/dell/dell-wmi-base.c @@ -261,6 +261,9 @@ { KE_KEY, 0x57, { KEY_BRIGHTNESSDOWN } }, { KE_KEY, 0x58, { KEY_BRIGHTNESSUP } }, + /*Speaker Mute*/ + { KE_KEY, 0x109, { KEY_MUTE} }, + /* Mic mute */ { KE_KEY, 0x150, { KEY_MICMUTE } }, --- linux-5.19.0.orig/drivers/platform/x86/hp-wmi.c +++ linux-5.19.0/drivers/platform/x86/hp-wmi.c @@ -90,6 +90,7 @@ HPWMI_PEAKSHIFT_PERIOD = 0x0F, HPWMI_BATTERY_CHARGE_PERIOD = 0x10, HPWMI_SANITIZATION_MODE = 0x17, + HPWMI_SMART_EXPERIENCE_APP = 0x21, }; /* @@ -177,7 +178,8 @@ enum hp_thermal_profile { HP_THERMAL_PROFILE_PERFORMANCE = 0x00, HP_THERMAL_PROFILE_DEFAULT = 0x01, - HP_THERMAL_PROFILE_COOL = 0x02 + HP_THERMAL_PROFILE_COOL = 0x02, + HP_THERMAL_PROFILE_QUIET = 0x03, }; #define IS_HWBLOCKED(x) ((x & HPWMI_POWER_FW_OR_HW) != HPWMI_POWER_FW_OR_HW) @@ -856,6 +858,8 @@ break; case HPWMI_SANITIZATION_MODE: break; + case HPWMI_SMART_EXPERIENCE_APP: + break; default: pr_info("Unknown event_id - %d - 0x%x\n", event_id, event_data); break; @@ -1194,6 +1198,9 @@ case HP_THERMAL_PROFILE_COOL: *profile = PLATFORM_PROFILE_COOL; break; + case HP_THERMAL_PROFILE_QUIET: + *profile = PLATFORM_PROFILE_QUIET; + break; default: return -EINVAL; } @@ -1216,6 +1223,9 @@ case PLATFORM_PROFILE_COOL: tp = HP_THERMAL_PROFILE_COOL; break; + case PLATFORM_PROFILE_QUIET: + tp = HP_THERMAL_PROFILE_QUIET; + break; default: return -EOPNOTSUPP; } @@ -1263,6 +1273,8 @@ platform_profile_handler.profile_get = hp_wmi_platform_profile_get; platform_profile_handler.profile_set = hp_wmi_platform_profile_set; + + set_bit(PLATFORM_PROFILE_QUIET, platform_profile_handler.choices); } set_bit(PLATFORM_PROFILE_COOL, platform_profile_handler.choices); @@ -1289,8 +1301,16 @@ wwan_rfkill = NULL; rfkill2_count = 0; - if (hp_wmi_rfkill_setup(device)) - hp_wmi_rfkill2_setup(device); + /* + * In pre-2009 BIOS, command 1Bh return 0x4 to indicate that + * BIOS no longer controls the power for the wireless + * devices. All features supported by this command will no + * longer be supported. + */ + if (!hp_wmi_bios_2009_later()) { + if (hp_wmi_rfkill_setup(device)) + hp_wmi_rfkill2_setup(device); + } err = hp_wmi_hwmon_init(); --- linux-5.19.0.orig/drivers/platform/x86/huawei-wmi.c +++ linux-5.19.0/drivers/platform/x86/huawei-wmi.c @@ -760,6 +760,9 @@ const char *guid, struct input_dev **idev) { + acpi_status status; + int err; + *idev = devm_input_allocate_device(dev); if (!*idev) return -ENOMEM; @@ -769,10 +772,19 @@ (*idev)->id.bustype = BUS_HOST; (*idev)->dev.parent = dev; - return sparse_keymap_setup(*idev, huawei_wmi_keymap, NULL) || - input_register_device(*idev) || - wmi_install_notify_handler(guid, huawei_wmi_input_notify, - *idev); + err = sparse_keymap_setup(*idev, huawei_wmi_keymap, NULL); + if (err) + return err; + + err = input_register_device(*idev); + if (err) + return err; + + status = wmi_install_notify_handler(guid, huawei_wmi_input_notify, *idev); + if (ACPI_FAILURE(status)) + return -EIO; + + return 0; } static void huawei_wmi_input_exit(struct device *dev, const char *guid) --- linux-5.19.0.orig/drivers/platform/x86/ideapad-laptop.c +++ linux-5.19.0/drivers/platform/x86/ideapad-laptop.c @@ -136,6 +136,7 @@ bool dytc : 1; bool fan_mode : 1; bool fn_lock : 1; + bool set_fn_lock_led : 1; bool hw_rfkill_switch : 1; bool kbd_bl : 1; bool touchpad_ctrl_via_ec : 1; @@ -154,7 +155,21 @@ static bool allow_v4_dytc; module_param(allow_v4_dytc, bool, 0444); -MODULE_PARM_DESC(allow_v4_dytc, "Enable DYTC version 4 platform-profile support."); +MODULE_PARM_DESC(allow_v4_dytc, + "Enable DYTC version 4 platform-profile support. " + "If you need this please report this to: platform-driver-x86@vger.kernel.org"); + +static bool hw_rfkill_switch; +module_param(hw_rfkill_switch, bool, 0444); +MODULE_PARM_DESC(hw_rfkill_switch, + "Enable rfkill support for laptops with a hw on/off wifi switch/slider. " + "If you need this please report this to: platform-driver-x86@vger.kernel.org"); + +static bool set_fn_lock_led; +module_param(set_fn_lock_led, bool, 0444); +MODULE_PARM_DESC(set_fn_lock_led, + "Enable driver based updates of the fn-lock LED on fn-lock changes. " + "If you need this please report this to: platform-driver-x86@vger.kernel.org"); /* * ACPI Helpers @@ -1501,6 +1516,9 @@ ideapad_input_report(priv, value); break; case 208: + if (!priv->features.set_fn_lock_led) + break; + if (!eval_hals(priv->adev->handle, &result)) { bool state = test_bit(HALS_FNLOCK_STATE_BIT, &result); @@ -1514,6 +1532,18 @@ } #endif +/* On some models we need to call exec_sals(SALS_FNLOCK_ON/OFF) to set the LED */ +static const struct dmi_system_id set_fn_lock_led_list[] = { + { + /* https://bugzilla.kernel.org/show_bug.cgi?id=212671 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo Legion R7000P2020H"), + } + }, + {} +}; + /* * Some ideapads have a hardware rfkill switch, but most do not have one. * Reading VPCCMD_R_RF always results in 0 on models without a hardware rfkill, @@ -1533,15 +1563,41 @@ {} }; +static const struct dmi_system_id no_touchpad_switch_list[] = { + { + .ident = "Lenovo Yoga 3 Pro 1370", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo YOGA 3"), + }, + }, + { + .ident = "ZhaoYang K4e-IML", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ZhaoYang K4e-IML"), + }, + }, + {} +}; + static void ideapad_check_features(struct ideapad_private *priv) { acpi_handle handle = priv->adev->handle; unsigned long val; - priv->features.hw_rfkill_switch = dmi_check_system(hw_rfkill_list); + priv->features.set_fn_lock_led = + set_fn_lock_led || dmi_check_system(set_fn_lock_led_list); + priv->features.hw_rfkill_switch = + hw_rfkill_switch || dmi_check_system(hw_rfkill_list); /* Most ideapads with ELAN0634 touchpad don't use EC touchpad switch */ - priv->features.touchpad_ctrl_via_ec = !acpi_dev_present("ELAN0634", NULL, -1); + if (acpi_dev_present("ELAN0634", NULL, -1)) + priv->features.touchpad_ctrl_via_ec = 0; + else if (dmi_check_system(no_touchpad_switch_list)) + priv->features.touchpad_ctrl_via_ec = 0; + else + priv->features.touchpad_ctrl_via_ec = 1; if (!read_ec_data(handle, VPCCMD_R_FAN, &val)) priv->features.fan_mode = true; --- linux-5.19.0.orig/drivers/platform/x86/intel/hid.c +++ linux-5.19.0/drivers/platform/x86/intel/hid.c @@ -27,6 +27,9 @@ {"INTC1051", 0}, {"INTC1054", 0}, {"INTC1070", 0}, + {"INTC1076", 0}, + {"INTC1077", 0}, + {"INTC1078", 0}, {"", 0}, }; MODULE_DEVICE_TABLE(acpi, intel_hid_ids); @@ -100,6 +103,13 @@ }, }, { + .ident = "Microsoft Surface Go 3", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Surface Go 3"), + }, + }, + { .ident = "Microsoft Surface Go 3", .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Microsoft Corporation"), --- linux-5.19.0.orig/drivers/platform/x86/intel/int3472/common.h +++ linux-5.19.0/drivers/platform/x86/intel/int3472/common.h @@ -23,7 +23,7 @@ #define INT3472_GPIO_TYPE_PRIVACY_LED 0x0d #define INT3472_PDEV_MAX_NAME_LEN 23 -#define INT3472_MAX_SENSOR_GPIOS 3 +#define INT3472_MAX_SENSOR_GPIOS 4 #define GPIO_REGULATOR_NAME_LENGTH 21 #define GPIO_REGULATOR_SUPPLY_NAME_LENGTH 9 @@ -73,6 +73,7 @@ const char *sensor_module_name; struct regulator_consumer_supply supply_map; const struct int3472_gpio_function_remap *function_maps; + const bool independent_clk_gpios; }; struct int3472_discrete_device { --- linux-5.19.0.orig/drivers/platform/x86/intel/int3472/discrete.c +++ linux-5.19.0/drivers/platform/x86/intel/int3472/discrete.c @@ -57,11 +57,17 @@ static const struct int3472_sensor_config int3472_sensor_configs[] = { /* Lenovo Miix 510-12ISK - OV2680, Front */ - { "GNDF140809R", { 0 }, ov2680_gpio_function_remaps }, + { "GNDF140809R", { 0 }, ov2680_gpio_function_remaps, false }, /* Lenovo Miix 510-12ISK - OV5648, Rear */ - { "GEFF150023R", REGULATOR_SUPPLY("avdd", NULL), NULL }, + { "GEFF150023R", REGULATOR_SUPPLY("avdd", NULL), NULL, false }, /* Surface Go 1&2 - OV5693, Front */ - { "YHCU", REGULATOR_SUPPLY("avdd", NULL), NULL }, + { "YHCU", REGULATOR_SUPPLY("avdd", NULL), NULL, false }, + /* Dell Latitude 9420 - OV01A1S, Front */ + { "0BF111N3", { 0 }, NULL, true }, + /* Dell Latitude 9420 - HM11B1, Front */ + { "9BF123N3", { 0 }, NULL, true }, + /* Lenovo X1 Yoga - OV2740, Front */ + { "CJFLE23", { 0 }, NULL, true }, }; static const struct int3472_sensor_config * @@ -225,6 +231,8 @@ const char *err_msg; int ret; u8 type; + u8 active_value; + u32 polarity = GPIO_LOOKUP_FLAGS_DEFAULT; if (!acpi_gpio_get_io_resource(ares, &agpio)) return 1; @@ -245,28 +253,45 @@ } type = obj->integer.value & 0xff; + active_value = obj->integer.value >> 24; + if (!active_value) + polarity = GPIO_ACTIVE_LOW; switch (type) { case INT3472_GPIO_TYPE_RESET: ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, "reset", - GPIO_ACTIVE_LOW); + polarity); if (ret) err_msg = "Failed to map reset pin to sensor\n"; break; case INT3472_GPIO_TYPE_POWERDOWN: ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, "powerdown", - GPIO_ACTIVE_LOW); + polarity); if (ret) err_msg = "Failed to map powerdown pin to sensor\n"; break; case INT3472_GPIO_TYPE_CLK_ENABLE: case INT3472_GPIO_TYPE_PRIVACY_LED: - ret = skl_int3472_map_gpio_to_clk(int3472, agpio, type); - if (ret) - err_msg = "Failed to map GPIO to clock\n"; - + if (!IS_ERR(int3472->sensor_config) && + int3472->sensor_config->independent_clk_gpios) { + if (type == INT3472_GPIO_TYPE_CLK_ENABLE) { + ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, + "clken", polarity); + if (ret) + err_msg = "Failed to map clken pin to sensor\n"; + } else if (type == INT3472_GPIO_TYPE_PRIVACY_LED) { + ret = skl_int3472_map_gpio_to_sensor(int3472, agpio, + "pled", polarity); + if (ret) + err_msg = "Failed to map pled pin to sensor\n"; + } + } else { + ret = skl_int3472_map_gpio_to_clk(int3472, agpio, type); + if (ret) + err_msg = "Failed to map GPIO to clock\n"; + } break; case INT3472_GPIO_TYPE_POWER_ENABLE: ret = skl_int3472_register_regulator(int3472, agpio); --- linux-5.19.0.orig/drivers/platform/x86/intel/pmc/core.c +++ linux-5.19.0/drivers/platform/x86/intel/pmc/core.c @@ -1914,6 +1914,8 @@ X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_N, &tgl_reg_map), X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE, &adl_reg_map), X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_P, &tgl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE, &adl_reg_map), + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_S, &adl_reg_map), {} }; --- linux-5.19.0.orig/drivers/platform/x86/intel/pmc/pltdrv.c +++ linux-5.19.0/drivers/platform/x86/intel/pmc/pltdrv.c @@ -18,6 +18,8 @@ #include #include +#include + static void intel_pmc_core_release(struct device *dev) { kfree(dev); @@ -53,6 +55,13 @@ if (acpi_dev_present("INT33A1", NULL, -1)) return -ENODEV; + /* + * Skip forcefully attaching the device for VMs. Make an exception for + * Xen dom0, which does have full hardware access. + */ + if (cpu_feature_enabled(X86_FEATURE_HYPERVISOR) && !xen_initial_domain()) + return -ENODEV; + if (!x86_match_cpu(intel_pmc_core_platform_ids)) return -ENODEV; --- linux-5.19.0.orig/drivers/platform/x86/intel/pmt/class.c +++ linux-5.19.0/drivers/platform/x86/intel/pmt/class.c @@ -9,6 +9,7 @@ */ #include +#include #include #include #include @@ -19,6 +20,7 @@ #define PMT_XA_START 0 #define PMT_XA_MAX INT_MAX #define PMT_XA_LIMIT XA_LIMIT(PMT_XA_START, PMT_XA_MAX) +#define GUID_SPR_PUNIT 0x9956f43f /* * Early implementations of PMT on client platforms have some @@ -42,6 +44,29 @@ } EXPORT_SYMBOL_GPL(intel_pmt_is_early_client_hw); +static inline int +pmt_memcpy64_fromio(void *to, const u64 __iomem *from, size_t count) +{ + int i, remain; + u64 *buf = to; + + if (!IS_ALIGNED((unsigned long)from, 8)) + return -EFAULT; + + for (i = 0; i < count/8; i++) + buf[i] = readq(&from[i]); + + /* Copy any remaining bytes */ + remain = count % 8; + if (remain) { + u64 tmp = readq(&from[i]); + + memcpy(&buf[i], &tmp, remain); + } + + return count; +} + /* * sysfs */ @@ -63,7 +88,11 @@ if (count > entry->size - off) count = entry->size - off; - memcpy_fromio(buf, entry->base + off, count); + if (entry->guid == GUID_SPR_PUNIT) + /* PUNIT on SPR only supports aligned 64-bit read */ + count = pmt_memcpy64_fromio(buf, entry->base + off, count); + else + memcpy_fromio(buf, entry->base + off, count); return count; } --- linux-5.19.0.orig/drivers/platform/x86/intel_ips.c +++ linux-5.19.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-5.19.0.orig/drivers/platform/x86/intel_scu_ipc.c +++ linux-5.19.0/drivers/platform/x86/intel_scu_ipc.c @@ -583,7 +583,6 @@ scu->dev.parent = parent; scu->dev.class = &intel_scu_ipc_class; scu->dev.release = intel_scu_ipc_release; - dev_set_name(&scu->dev, "intel_scu_ipc"); if (!request_mem_region(scu_data->mem.start, resource_size(&scu_data->mem), "intel_scu_ipc")) { @@ -612,6 +611,7 @@ * After this point intel_scu_ipc_release() takes care of * releasing the SCU IPC resources once refcount drops to zero. */ + dev_set_name(&scu->dev, "intel_scu_ipc"); err = device_register(&scu->dev); if (err) { put_device(&scu->dev); --- linux-5.19.0.orig/drivers/platform/x86/msi-laptop.c +++ linux-5.19.0/drivers/platform/x86/msi-laptop.c @@ -596,11 +596,10 @@ { .ident = "MSI S270", .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "MICRO-STAR INT'L CO.,LTD"), + DMI_MATCH(DMI_SYS_VENDOR, "MICRO-STAR INT"), DMI_MATCH(DMI_PRODUCT_NAME, "MS-1013"), DMI_MATCH(DMI_PRODUCT_VERSION, "0131"), - DMI_MATCH(DMI_CHASSIS_VENDOR, - "MICRO-STAR INT'L CO.,LTD") + DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-STAR INT") }, .driver_data = &quirk_old_ec_model, .callback = dmi_check_cb @@ -633,8 +632,7 @@ DMI_MATCH(DMI_SYS_VENDOR, "NOTEBOOK"), DMI_MATCH(DMI_PRODUCT_NAME, "SAM2000"), DMI_MATCH(DMI_PRODUCT_VERSION, "0131"), - DMI_MATCH(DMI_CHASSIS_VENDOR, - "MICRO-STAR INT'L CO.,LTD") + DMI_MATCH(DMI_CHASSIS_VENDOR, "MICRO-STAR INT") }, .driver_data = &quirk_old_ec_model, .callback = dmi_check_cb @@ -1048,8 +1046,7 @@ return -EINVAL; /* Register backlight stuff */ - - if (quirks->old_ec_model || + if (quirks->old_ec_model && acpi_video_get_backlight_type() == acpi_backlight_vendor) { struct backlight_properties props; memset(&props, 0, sizeof(struct backlight_properties)); @@ -1117,6 +1114,8 @@ fail_create_group: if (quirks->load_scm_model) { i8042_remove_filter(msi_laptop_i8042_filter); + cancel_delayed_work_sync(&msi_touchpad_dwork); + input_unregister_device(msi_laptop_input_dev); cancel_delayed_work_sync(&msi_rfkill_dwork); cancel_work_sync(&msi_rfkill_work); rfkill_cleanup(); @@ -1137,6 +1136,7 @@ { if (quirks->load_scm_model) { i8042_remove_filter(msi_laptop_i8042_filter); + cancel_delayed_work_sync(&msi_touchpad_dwork); input_unregister_device(msi_laptop_input_dev); cancel_delayed_work_sync(&msi_rfkill_dwork); cancel_work_sync(&msi_rfkill_work); --- linux-5.19.0.orig/drivers/platform/x86/mxm-wmi.c +++ linux-5.19.0/drivers/platform/x86/mxm-wmi.c @@ -35,13 +35,11 @@ .xarg = 1, }; struct acpi_buffer input = { (acpi_size)sizeof(args), &args }; - struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; acpi_status status; printk("calling mux switch %d\n", adapter); - status = wmi_evaluate_method(MXM_WMMX_GUID, 0x0, adapter, &input, - &output); + status = wmi_evaluate_method(MXM_WMMX_GUID, 0x0, adapter, &input, NULL); if (ACPI_FAILURE(status)) return status; @@ -60,13 +58,11 @@ .xarg = 1, }; struct acpi_buffer input = { (acpi_size)sizeof(args), &args }; - struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL }; acpi_status status; printk("calling mux switch %d\n", adapter); - status = wmi_evaluate_method(MXM_WMMX_GUID, 0x0, adapter, &input, - &output); + status = wmi_evaluate_method(MXM_WMMX_GUID, 0x0, adapter, &input, NULL); if (ACPI_FAILURE(status)) return status; --- linux-5.19.0.orig/drivers/platform/x86/pmc_atom.c +++ linux-5.19.0/drivers/platform/x86/pmc_atom.c @@ -232,7 +232,7 @@ pm1_cnt_port = acpi_base_addr + PM1_CNT; pm1_cnt_value = inl(pm1_cnt_port); - pm1_cnt_value &= SLEEP_TYPE_MASK; + pm1_cnt_value &= ~SLEEP_TYPE_MASK; pm1_cnt_value |= SLEEP_TYPE_S5; pm1_cnt_value |= SLEEP_ENABLE; @@ -354,7 +354,7 @@ static int dmi_callback(const struct dmi_system_id *d) { - pr_info("%s critclks quirk enabled\n", d->ident); + pr_info("%s: PMC critical clocks quirk enabled\n", d->ident); return 1; } @@ -389,21 +389,16 @@ }, }, { - /* pmc_plt_clk0 - 3 are used for the 4 ethernet controllers */ - .ident = "Lex 3I380D", + /* + * Lex System / Lex Computech Co. makes a lot of Bay Trail + * based embedded boards which often come with multiple + * ethernet controllers using multiple pmc_plt_clks. See: + * https://www.lex.com.tw/products/embedded-ipc-board/ + */ + .ident = "Lex BayTrail", .callback = dmi_callback, .matches = { DMI_MATCH(DMI_SYS_VENDOR, "Lex BayTrail"), - DMI_MATCH(DMI_PRODUCT_NAME, "3I380D"), - }, - }, - { - /* pmc_plt_clk* - are used for ethernet controllers */ - .ident = "Lex 2I385SW", - .callback = dmi_callback, - .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Lex BayTrail"), - DMI_MATCH(DMI_PRODUCT_NAME, "2I385SW"), }, }, { --- linux-5.19.0.orig/drivers/platform/x86/serial-multi-instantiate.c +++ linux-5.19.0/drivers/platform/x86/serial-multi-instantiate.c @@ -329,6 +329,7 @@ { "CSC3551", (unsigned long)&cs35l41_hda }, /* Non-conforming _HID for Cirrus Logic already released */ { "CLSA0100", (unsigned long)&cs35l41_hda }, + { "CLSA0101", (unsigned long)&cs35l41_hda }, { } }; MODULE_DEVICE_TABLE(acpi, smi_acpi_ids); --- linux-5.19.0.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-5.19.0/drivers/platform/x86/thinkpad_acpi.c @@ -257,6 +257,8 @@ #define TPACPI_DBG_BRGHT 0x0020 #define TPACPI_DBG_MIXER 0x0040 +#define FAN_NOT_PRESENT 65535 + #define onoff(status, bit) ((status) & (1 << (bit)) ? "on" : "off") #define enabled(status, bit) ((status) & (1 << (bit)) ? "enabled" : "disabled") #define strlencmp(a, b) (strncmp((a), (b), strlen(b))) @@ -4495,6 +4497,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "21A0"), } }, + { + .ident = "P14s Gen2 AMD", + .driver_data = &quirk_s2idle_bug, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "21A1"), + } + }, {} }; @@ -8884,7 +8894,7 @@ /* Try and probe the 2nd fan */ tp_features.second_fan = 1; /* needed for get_speed to work */ res = fan2_get_speed(&speed); - if (res >= 0) { + if (res >= 0 && speed != FAN_NOT_PRESENT) { /* It responded - so let's assume it's there */ tp_features.second_fan = 1; tp_features.second_fan_ctl = 1; --- linux-5.19.0.orig/drivers/platform/x86/touchscreen_dmi.c +++ linux-5.19.0/drivers/platform/x86/touchscreen_dmi.c @@ -770,6 +770,22 @@ .properties = predia_basic_props, }; +static const struct property_entry rca_cambio_w101_v2_props[] = { + PROPERTY_ENTRY_U32("touchscreen-min-x", 4), + PROPERTY_ENTRY_U32("touchscreen-min-y", 20), + PROPERTY_ENTRY_U32("touchscreen-size-x", 1644), + PROPERTY_ENTRY_U32("touchscreen-size-y", 874), + PROPERTY_ENTRY_BOOL("touchscreen-swapped-x-y"), + PROPERTY_ENTRY_STRING("firmware-name", "gsl1680-rca-cambio-w101-v2.fw"), + PROPERTY_ENTRY_U32("silead,max-fingers", 10), + { } +}; + +static const struct ts_dmi_data rca_cambio_w101_v2_data = { + .acpi_name = "MSSL1680:00", + .properties = rca_cambio_w101_v2_props, +}; + static const struct property_entry rwc_nanote_p8_props[] = { PROPERTY_ENTRY_U32("touchscreen-min-y", 46), PROPERTY_ENTRY_U32("touchscreen-size-x", 1728), @@ -1410,6 +1426,15 @@ }, }, { + /* RCA Cambio W101 v2 */ + /* https://github.com/onitake/gsl-firmware/discussions/193 */ + .driver_data = (void *)&rca_cambio_w101_v2_data, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "RCA"), + DMI_MATCH(DMI_PRODUCT_NAME, "W101SA23T1"), + }, + }, + { /* RWC NANOTE P8 */ .driver_data = (void *)&rwc_nanote_p8_data, .matches = { --- linux-5.19.0.orig/drivers/platform/x86/x86-android-tablets.c +++ linux-5.19.0/drivers/platform/x86/x86-android-tablets.c @@ -663,9 +663,23 @@ }, }; +static int __init chuwi_hi8_init(void) +{ + /* + * Avoid the acpi_unregister_gsi() call in x86_acpi_irq_helper_get() + * breaking the touchscreen + logging various errors when the Windows + * BIOS is used. + */ + if (acpi_dev_present("MSSL0001", NULL, 1)) + return -ENODEV; + + return 0; +} + static const struct x86_dev_info chuwi_hi8_info __initconst = { .i2c_client_info = chuwi_hi8_i2c_clients, .i2c_client_count = ARRAY_SIZE(chuwi_hi8_i2c_clients), + .init = chuwi_hi8_init, }; #define CZC_EC_EXTRA_PORT 0x68 --- linux-5.19.0.orig/drivers/pnp/core.c +++ linux-5.19.0/drivers/pnp/core.c @@ -148,14 +148,14 @@ dev->dev.coherent_dma_mask = dev->dma_mask; dev->dev.release = &pnp_release_device; - dev_set_name(&dev->dev, "%02x:%02x", dev->protocol->number, dev->number); - dev_id = pnp_add_id(dev, pnpid); if (!dev_id) { kfree(dev); return NULL; } + dev_set_name(&dev->dev, "%02x:%02x", dev->protocol->number, dev->number); + return dev; } --- linux-5.19.0.orig/drivers/pnp/isapnp/core.c +++ linux-5.19.0/drivers/pnp/isapnp/core.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include "../base.h" @@ -950,7 +951,7 @@ .disable = isapnp_disable_resources, }; -static int __init isapnp_init(void) +static int __init real_isapnp_init(void) { int cards; struct pnp_card *card; @@ -1044,6 +1045,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-5.19.0.orig/drivers/power/supply/ab8500_btemp.c +++ linux-5.19.0/drivers/power/supply/ab8500_btemp.c @@ -726,7 +726,14 @@ /* Get thermal zone and ADC */ di->tz = thermal_zone_get_zone_by_name("battery-thermal"); if (IS_ERR(di->tz)) { - return dev_err_probe(dev, PTR_ERR(di->tz), + ret = PTR_ERR(di->tz); + /* + * This usually just means we are probing before the thermal + * zone, so just defer. + */ + if (ret == -ENODEV) + ret = -EPROBE_DEFER; + return dev_err_probe(dev, ret, "failed to get battery thermal zone\n"); } di->bat_ctrl = devm_iio_channel_get(dev, "bat_ctrl"); --- linux-5.19.0.orig/drivers/power/supply/ab8500_charger.c +++ linux-5.19.0/drivers/power/supply/ab8500_charger.c @@ -3763,7 +3763,14 @@ if (ret) return ret; - return platform_driver_register(&ab8500_charger_driver); + ret = platform_driver_register(&ab8500_charger_driver); + if (ret) { + platform_unregister_drivers(ab8500_charger_component_drivers, + ARRAY_SIZE(ab8500_charger_component_drivers)); + return ret; + } + + return 0; } static void __exit ab8500_charger_exit(void) --- linux-5.19.0.orig/drivers/power/supply/adp5061.c +++ linux-5.19.0/drivers/power/supply/adp5061.c @@ -427,11 +427,11 @@ if (ret < 0) return ret; - chg_type = adp5061_chg_type[ADP5061_CHG_STATUS_1_CHG_STATUS(status1)]; - if (chg_type > ADP5061_CHG_FAST_CV) + chg_type = ADP5061_CHG_STATUS_1_CHG_STATUS(status1); + if (chg_type >= ARRAY_SIZE(adp5061_chg_type)) val->intval = POWER_SUPPLY_STATUS_UNKNOWN; else - val->intval = chg_type; + val->intval = adp5061_chg_type[chg_type]; return ret; } --- linux-5.19.0.orig/drivers/power/supply/cw2015_battery.c +++ linux-5.19.0/drivers/power/supply/cw2015_battery.c @@ -698,6 +698,9 @@ } cw_bat->battery_workqueue = create_singlethread_workqueue("rk_battery"); + if (!cw_bat->battery_workqueue) + return -ENOMEM; + INIT_DELAYED_WORK(&cw_bat->battery_delay_work, cw_bat_work); queue_delayed_work(cw_bat->battery_workqueue, &cw_bat->battery_delay_work, msecs_to_jiffies(10)); --- linux-5.19.0.orig/drivers/power/supply/ip5xxx_power.c +++ linux-5.19.0/drivers/power/supply/ip5xxx_power.c @@ -352,7 +352,7 @@ ret = ip5xxx_battery_read_adc(ip5xxx, IP5XXX_BATIADC_DAT0, IP5XXX_BATIADC_DAT1, &raw); - val->intval = DIV_ROUND_CLOSEST(raw * 745985, 1000); + val->intval = DIV_ROUND_CLOSEST(raw * 149197, 200); return 0; case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT: --- linux-5.19.0.orig/drivers/power/supply/power_supply_core.c +++ linux-5.19.0/drivers/power/supply/power_supply_core.c @@ -750,6 +750,11 @@ int i, tab_len, size; propname = kasprintf(GFP_KERNEL, "ocv-capacity-table-%d", index); + if (!propname) { + power_supply_put_battery_info(psy, info); + err = -ENOMEM; + goto out_put_node; + } list = of_get_property(battery_np, propname, &size); if (!list || !size) { dev_err(&psy->dev, "failed to get %s\n", propname); @@ -1387,8 +1392,8 @@ register_cooler_failed: psy_unregister_thermal(psy); register_thermal_failed: - device_del(dev); wakeup_init_failed: + device_del(dev); device_add_failed: check_supplies_failed: dev_set_name_failed: --- linux-5.19.0.orig/drivers/power/supply/z2_battery.c +++ linux-5.19.0/drivers/power/supply/z2_battery.c @@ -206,10 +206,12 @@ charger->charge_gpiod = devm_gpiod_get_optional(&client->dev, NULL, GPIOD_IN); - if (IS_ERR(charger->charge_gpiod)) - return dev_err_probe(&client->dev, + if (IS_ERR(charger->charge_gpiod)) { + ret = dev_err_probe(&client->dev, PTR_ERR(charger->charge_gpiod), "failed to get charge GPIO\n"); + goto err; + } if (charger->charge_gpiod) { gpiod_set_consumer_name(charger->charge_gpiod, "BATT CHRG"); --- linux-5.19.0.orig/drivers/powercap/dtpm_cpu.c +++ linux-5.19.0/drivers/powercap/dtpm_cpu.c @@ -53,7 +53,7 @@ for (i = 0; i < pd->nr_perf_states; i++) { - power = pd->table[i].power * MICROWATT_PER_MILLIWATT * nr_cpus; + power = pd->table[i].power * nr_cpus; if (power > power_limit) break; @@ -63,8 +63,7 @@ freq_qos_update_request(&dtpm_cpu->qos_req, freq); - power_limit = pd->table[i - 1].power * - MICROWATT_PER_MILLIWATT * nr_cpus; + power_limit = pd->table[i - 1].power * nr_cpus; return power_limit; } --- linux-5.19.0.orig/drivers/powercap/intel_rapl_common.c +++ linux-5.19.0/drivers/powercap/intel_rapl_common.c @@ -994,6 +994,9 @@ y = value & 0x1f; value = (1 << y) * (4 + f) * rp->time_unit / 4; } else { + if (value < rp->time_unit) + return 0; + do_div(value, rp->time_unit); y = ilog2(value); f = div64_u64(4 * (value - (1 << y)), 1 << y); @@ -1035,7 +1038,6 @@ .check_unit = rapl_check_unit_core, .set_floor_freq = set_floor_freq_default, .compute_time_window = rapl_compute_time_window_core, - .dram_domain_energy_unit = 15300, .psys_domain_energy_unit = 1000000000, .spr_psys_bits = true, }; @@ -1109,6 +1111,8 @@ X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_L, &rapl_defaults_core), X86_MATCH_INTEL_FAM6_MODEL(ALDERLAKE_N, &rapl_defaults_core), X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE, &rapl_defaults_core), + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_P, &rapl_defaults_core), + X86_MATCH_INTEL_FAM6_MODEL(RAPTORLAKE_S, &rapl_defaults_core), X86_MATCH_INTEL_FAM6_MODEL(SAPPHIRERAPIDS_X, &rapl_defaults_spr_server), X86_MATCH_INTEL_FAM6_MODEL(LAKEFIELD, &rapl_defaults_core), @@ -1514,7 +1518,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-5.19.0.orig/drivers/ptp/ptp_clock.c +++ linux-5.19.0/drivers/ptp/ptp_clock.c @@ -169,6 +169,9 @@ { 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); kfree(ptp->vclock_index); mutex_destroy(&ptp->tsevq_mux); @@ -361,11 +364,6 @@ 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); - posix_clock_unregister(&ptp->clock); return 0; --- linux-5.19.0.orig/drivers/pwm/pwm-lpc18xx-sct.c +++ linux-5.19.0/drivers/pwm/pwm-lpc18xx-sct.c @@ -98,7 +98,7 @@ unsigned long clk_rate; unsigned int period_ns; unsigned int min_period_ns; - unsigned int max_period_ns; + u64 max_period_ns; unsigned int period_event; unsigned long event_map; struct mutex res_lock; @@ -145,40 +145,48 @@ mutex_unlock(&lpc18xx_pwm->res_lock); } -static void lpc18xx_pwm_config_period(struct pwm_chip *chip, int period_ns) +static void lpc18xx_pwm_config_period(struct pwm_chip *chip, u64 period_ns) { struct lpc18xx_pwm_chip *lpc18xx_pwm = to_lpc18xx_pwm_chip(chip); - u64 val; + u32 val; - val = (u64)period_ns * lpc18xx_pwm->clk_rate; - do_div(val, NSEC_PER_SEC); + /* + * With clk_rate < NSEC_PER_SEC this cannot overflow. + * With period_ns < max_period_ns this also fits into an u32. + * As period_ns >= min_period_ns = DIV_ROUND_UP(NSEC_PER_SEC, lpc18xx_pwm->clk_rate); + * we have val >= 1. + */ + val = mul_u64_u64_div_u64(period_ns, lpc18xx_pwm->clk_rate, NSEC_PER_SEC); lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_MATCH(lpc18xx_pwm->period_event), - (u32)val - 1); + val - 1); lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_MATCHREL(lpc18xx_pwm->period_event), - (u32)val - 1); + val - 1); } static void lpc18xx_pwm_config_duty(struct pwm_chip *chip, - struct pwm_device *pwm, int duty_ns) + struct pwm_device *pwm, u64 duty_ns) { struct lpc18xx_pwm_chip *lpc18xx_pwm = to_lpc18xx_pwm_chip(chip); struct lpc18xx_pwm_data *lpc18xx_data = &lpc18xx_pwm->channeldata[pwm->hwpwm]; - u64 val; + u32 val; - val = (u64)duty_ns * lpc18xx_pwm->clk_rate; - do_div(val, NSEC_PER_SEC); + /* + * With clk_rate < NSEC_PER_SEC this cannot overflow. + * With duty_ns <= period_ns < max_period_ns this also fits into an u32. + */ + val = mul_u64_u64_div_u64(duty_ns, lpc18xx_pwm->clk_rate, NSEC_PER_SEC); lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_MATCH(lpc18xx_data->duty_event), - (u32)val); + val); lpc18xx_pwm_writel(lpc18xx_pwm, LPC18XX_PWM_MATCHREL(lpc18xx_data->duty_event), - (u32)val); + val); } static int lpc18xx_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, @@ -377,12 +385,27 @@ goto disable_pwmclk; } + /* + * If clkrate is too fast, the calculations in .apply() might overflow. + */ + if (lpc18xx_pwm->clk_rate > NSEC_PER_SEC) { + ret = dev_err_probe(&pdev->dev, -EINVAL, "pwm clock to fast\n"); + goto disable_pwmclk; + } + + /* + * If clkrate is too fast, the calculations in .apply() might overflow. + */ + if (lpc18xx_pwm->clk_rate > NSEC_PER_SEC) { + ret = dev_err_probe(&pdev->dev, -EINVAL, "pwm clock to fast\n"); + goto disable_pwmclk; + } + mutex_init(&lpc18xx_pwm->res_lock); mutex_init(&lpc18xx_pwm->period_lock); - val = (u64)NSEC_PER_SEC * LPC18XX_PWM_TIMER_MAX; - do_div(val, lpc18xx_pwm->clk_rate); - lpc18xx_pwm->max_period_ns = val; + lpc18xx_pwm->max_period_ns = + mul_u64_u64_div_u64(NSEC_PER_SEC, LPC18XX_PWM_TIMER_MAX, lpc18xx_pwm->clk_rate); lpc18xx_pwm->min_period_ns = DIV_ROUND_UP(NSEC_PER_SEC, lpc18xx_pwm->clk_rate); --- linux-5.19.0.orig/drivers/pwm/pwm-mediatek.c +++ linux-5.19.0/drivers/pwm/pwm-mediatek.c @@ -296,7 +296,7 @@ static const struct pwm_mediatek_of_data mt7622_pwm_data = { .num_pwms = 6, .pwm45_fixup = false, - .has_ck_26m_sel = false, + .has_ck_26m_sel = true, }; static const struct pwm_mediatek_of_data mt7623_pwm_data = { --- linux-5.19.0.orig/drivers/pwm/pwm-mtk-disp.c +++ linux-5.19.0/drivers/pwm/pwm-mtk-disp.c @@ -178,7 +178,7 @@ { struct mtk_disp_pwm *mdp = to_mtk_disp_pwm(chip); u64 rate, period, high_width; - u32 clk_div, con0, con1; + u32 clk_div, pwm_en, con0, con1; int err; err = clk_prepare_enable(mdp->clk_main); @@ -197,7 +197,8 @@ rate = clk_get_rate(mdp->clk_main); con0 = readl(mdp->base + mdp->data->con0); con1 = readl(mdp->base + mdp->data->con1); - state->enabled = !!(con0 & BIT(0)); + pwm_en = readl(mdp->base + DISP_PWM_EN); + state->enabled = !!(pwm_en & mdp->data->enable_mask); clk_div = FIELD_GET(PWM_CLKDIV_MASK, con0); period = FIELD_GET(PWM_PERIOD_MASK, con1); /* --- linux-5.19.0.orig/drivers/pwm/pwm-sifive.c +++ linux-5.19.0/drivers/pwm/pwm-sifive.c @@ -23,7 +23,7 @@ #define PWM_SIFIVE_PWMCFG 0x0 #define PWM_SIFIVE_PWMCOUNT 0x8 #define PWM_SIFIVE_PWMS 0x10 -#define PWM_SIFIVE_PWMCMP0 0x20 +#define PWM_SIFIVE_PWMCMP(i) (0x20 + 4 * (i)) /* PWMCFG fields */ #define PWM_SIFIVE_PWMCFG_SCALE GENMASK(3, 0) @@ -36,8 +36,6 @@ #define PWM_SIFIVE_PWMCFG_GANG BIT(24) #define PWM_SIFIVE_PWMCFG_IP BIT(28) -/* PWM_SIFIVE_SIZE_PWMCMP is used to calculate offset for pwmcmpX registers */ -#define PWM_SIFIVE_SIZE_PWMCMP 4 #define PWM_SIFIVE_CMPWIDTH 16 #define PWM_SIFIVE_DEFAULT_PERIOD 10000000 @@ -112,8 +110,7 @@ struct pwm_sifive_ddata *ddata = pwm_sifive_chip_to_ddata(chip); u32 duty, val; - duty = readl(ddata->regs + PWM_SIFIVE_PWMCMP0 + - pwm->hwpwm * PWM_SIFIVE_SIZE_PWMCMP); + duty = readl(ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); state->enabled = duty > 0; @@ -193,8 +190,7 @@ pwm_sifive_update_clock(ddata, clk_get_rate(ddata->clk)); } - writel(frac, ddata->regs + PWM_SIFIVE_PWMCMP0 + - pwm->hwpwm * PWM_SIFIVE_SIZE_PWMCMP); + writel(frac, ddata->regs + PWM_SIFIVE_PWMCMP(pwm->hwpwm)); if (state->enabled != enabled) pwm_sifive_enable(chip, state->enabled); @@ -220,8 +216,11 @@ struct pwm_sifive_ddata *ddata = container_of(nb, struct pwm_sifive_ddata, notifier); - if (event == POST_RATE_CHANGE) + if (event == POST_RATE_CHANGE) { + mutex_lock(&ddata->lock); pwm_sifive_update_clock(ddata, ndata->new_rate); + mutex_unlock(&ddata->lock); + } return NOTIFY_OK; } @@ -232,6 +231,8 @@ struct pwm_sifive_ddata *ddata; struct pwm_chip *chip; int ret; + u32 val; + unsigned int enabled_pwms = 0, enabled_clks = 1; ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL); if (!ddata) @@ -258,6 +259,33 @@ return ret; } + val = readl(ddata->regs + PWM_SIFIVE_PWMCFG); + if (val & PWM_SIFIVE_PWMCFG_EN_ALWAYS) { + unsigned int i; + + for (i = 0; i < chip->npwm; ++i) { + val = readl(ddata->regs + PWM_SIFIVE_PWMCMP(i)); + if (val > 0) + ++enabled_pwms; + } + } + + /* The clk should be on once for each running PWM. */ + if (enabled_pwms) { + while (enabled_clks < enabled_pwms) { + /* This is not expected to fail as the clk is already on */ + ret = clk_enable(ddata->clk); + if (unlikely(ret)) { + dev_err_probe(dev, ret, "Failed to enable clk\n"); + goto disable_clk; + } + ++enabled_clks; + } + } else { + clk_disable(ddata->clk); + enabled_clks = 0; + } + /* Watch for changes to underlying clock frequency */ ddata->notifier.notifier_call = pwm_sifive_clock_notifier; ret = clk_notifier_register(ddata->clk, &ddata->notifier); @@ -280,7 +308,11 @@ unregister_clk: clk_notifier_unregister(ddata->clk, &ddata->notifier); disable_clk: - clk_disable_unprepare(ddata->clk); + while (enabled_clks) { + clk_disable(ddata->clk); + --enabled_clks; + } + clk_unprepare(ddata->clk); return ret; } @@ -288,23 +320,19 @@ static int pwm_sifive_remove(struct platform_device *dev) { struct pwm_sifive_ddata *ddata = platform_get_drvdata(dev); - bool is_enabled = false; struct pwm_device *pwm; int ch; + pwmchip_remove(&ddata->chip); + clk_notifier_unregister(ddata->clk, &ddata->notifier); + for (ch = 0; ch < ddata->chip.npwm; ch++) { pwm = &ddata->chip.pwms[ch]; - if (pwm->state.enabled) { - is_enabled = true; - break; - } + if (pwm->state.enabled) + clk_disable(ddata->clk); } - if (is_enabled) - clk_disable(ddata->clk); - clk_disable_unprepare(ddata->clk); - pwmchip_remove(&ddata->chip); - clk_notifier_unregister(ddata->clk, &ddata->notifier); + clk_unprepare(ddata->clk); return 0; } --- linux-5.19.0.orig/drivers/pwm/pwm-tegra.c +++ linux-5.19.0/drivers/pwm/pwm-tegra.c @@ -145,8 +145,19 @@ * source clock rate as required_clk_rate, PWM controller will * be able to configure the requested period. */ - required_clk_rate = - (NSEC_PER_SEC / period_ns) << PWM_DUTY_WIDTH; + required_clk_rate = DIV_ROUND_UP_ULL((u64)NSEC_PER_SEC << PWM_DUTY_WIDTH, + period_ns); + + if (required_clk_rate > clk_round_rate(pc->clk, required_clk_rate)) + /* + * required_clk_rate is a lower bound for the input + * rate; for lower rates there is no value for PWM_SCALE + * that yields a period less than or equal to the + * requested period. Hence, for lower rates, double the + * required_clk_rate to get a clock rate that can meet + * the requested period. + */ + required_clk_rate *= 2; err = dev_pm_opp_set_rate(pc->dev, required_clk_rate); if (err < 0) --- linux-5.19.0.orig/drivers/rapidio/devices/rio_mport_cdev.c +++ linux-5.19.0/drivers/rapidio/devices/rio_mport_cdev.c @@ -1804,8 +1804,11 @@ rio_init_dbell_res(&rdev->riores[RIO_DOORBELL_RESOURCE], 0, 0xffff); err = rio_add_device(rdev); - if (err) - goto cleanup; + if (err) { + put_device(&rdev->dev); + return err; + } + rio_dev_get(rdev); return 0; @@ -1901,10 +1904,6 @@ priv->md = chdev; - mutex_lock(&chdev->file_mutex); - list_add_tail(&priv->list, &chdev->file_list); - mutex_unlock(&chdev->file_mutex); - INIT_LIST_HEAD(&priv->db_filters); INIT_LIST_HEAD(&priv->pw_filters); spin_lock_init(&priv->fifo_lock); @@ -1913,6 +1912,7 @@ sizeof(struct rio_event) * MPORT_EVENT_DEPTH, GFP_KERNEL); if (ret < 0) { + put_device(&chdev->dev); dev_err(&chdev->dev, DRV_NAME ": kfifo_alloc failed\n"); ret = -ENOMEM; goto err_fifo; @@ -1923,6 +1923,9 @@ spin_lock_init(&priv->req_lock); mutex_init(&priv->dma_lock); #endif + mutex_lock(&chdev->file_mutex); + list_add_tail(&priv->list, &chdev->file_list); + mutex_unlock(&chdev->file_mutex); filp->private_data = priv; goto out; --- linux-5.19.0.orig/drivers/rapidio/rio-scan.c +++ linux-5.19.0/drivers/rapidio/rio-scan.c @@ -454,8 +454,12 @@ 0, 0xffff); ret = rio_add_device(rdev); - if (ret) - goto cleanup; + if (ret) { + if (rswitch) + kfree(rswitch->route_table); + put_device(&rdev->dev); + return NULL; + } rio_dev_get(rdev); --- linux-5.19.0.orig/drivers/rapidio/rio.c +++ linux-5.19.0/drivers/rapidio/rio.c @@ -2186,11 +2186,16 @@ atomic_set(&port->state, RIO_DEVICE_RUNNING); res = device_register(&port->dev); - if (res) + if (res) { dev_err(&port->dev, "RIO: mport%d registration failed ERR=%d\n", port->id, res); - else + mutex_lock(&rio_mport_list_lock); + list_del(&port->node); + mutex_unlock(&rio_mport_list_lock); + put_device(&port->dev); + } else { dev_dbg(&port->dev, "RIO: registered mport%d\n", port->id); + } return res; } --- linux-5.19.0.orig/drivers/regulator/core.c +++ linux-5.19.0/drivers/regulator/core.c @@ -987,7 +987,7 @@ /* get input voltage */ input_uV = 0; if (rdev->supply) - input_uV = regulator_get_voltage(rdev->supply); + input_uV = regulator_get_voltage_rdev(rdev->supply->rdev); if (input_uV <= 0) input_uV = rdev->constraints->input_uV; if (input_uV <= 0) { @@ -1575,7 +1575,13 @@ if (rdev->supply_name && !rdev->supply) return -EPROBE_DEFER; - if (rdev->supply) { + /* If supplying regulator has already been enabled, + * it's not intended to have use_count increment + * when rdev is only boot-on. + */ + if (rdev->supply && + (rdev->constraints->always_on || + !regulator_is_enabled(rdev->supply))) { ret = regulator_enable(rdev->supply); if (ret < 0) { _regulator_put(rdev->supply); @@ -1621,6 +1627,7 @@ rdev->supply = create_regulator(supply_rdev, &rdev->dev, "SUPPLY"); if (rdev->supply == NULL) { + module_put(supply_rdev->owner); err = -ENOMEM; return err; } @@ -1794,7 +1801,7 @@ regulator = kzalloc(sizeof(*regulator), GFP_KERNEL); if (regulator == NULL) { - kfree(supply_name); + kfree_const(supply_name); return NULL; } @@ -1924,6 +1931,7 @@ node = of_get_regulator(dev, supply); if (node) { r = of_find_regulator_by_node(node); + of_node_put(node); if (r) return r; @@ -2680,7 +2688,7 @@ * return -ETIMEDOUT. */ if (rdev->desc->poll_enabled_time) { - unsigned int time_remaining = delay; + int time_remaining = delay; while (time_remaining > 0) { _regulator_delay_helper(rdev->desc->poll_enabled_time); @@ -2732,13 +2740,18 @@ */ static int _regulator_handle_consumer_enable(struct regulator *regulator) { + int ret; struct regulator_dev *rdev = regulator->rdev; lockdep_assert_held_once(&rdev->mutex.base); regulator->enable_count++; - if (regulator->uA_load && regulator->enable_count == 1) - return drms_uA_update(rdev); + if (regulator->uA_load && regulator->enable_count == 1) { + ret = drms_uA_update(rdev); + if (ret) + regulator->enable_count--; + return ret; + } return 0; } @@ -5128,6 +5141,7 @@ { struct regulator_dev *rdev = dev_get_drvdata(dev); + debugfs_remove_recursive(rdev->debugfs); kfree(rdev->constraints); of_node_put(rdev->dev.of_node); kfree(rdev); @@ -5602,15 +5616,20 @@ regulator_remove_coupling(rdev); mutex_unlock(®ulator_list_mutex); wash: + regulator_put(rdev->supply); kfree(rdev->coupling_desc.coupled_rdevs); mutex_lock(®ulator_list_mutex); regulator_ena_gpio_free(rdev); mutex_unlock(®ulator_list_mutex); + put_device(&rdev->dev); + rdev = NULL; clean: if (dangling_of_gpiod) gpiod_put(config->ena_gpiod); + if (rdev && rdev->dev.of_node) + of_node_put(rdev->dev.of_node); + kfree(rdev); kfree(config); - put_device(&rdev->dev); rinse: if (dangling_cfg_gpiod) gpiod_put(cfg->ena_gpiod); @@ -5639,7 +5658,6 @@ mutex_lock(®ulator_list_mutex); - debugfs_remove_recursive(rdev->debugfs); WARN_ON(rdev->open_count); regulator_remove_coupling(rdev); unset_regulator_supplies(rdev); --- linux-5.19.0.orig/drivers/regulator/da9121-regulator.c +++ linux-5.19.0/drivers/regulator/da9121-regulator.c @@ -276,6 +276,11 @@ goto error; } + if (rdev->desc->ops->is_enabled(rdev)) { + ret = -EBUSY; + goto error; + } + ret = da9121_ceiling_selector(rdev, min_ua, max_ua, &sel); if (ret < 0) goto error; --- linux-5.19.0.orig/drivers/regulator/of_regulator.c +++ linux-5.19.0/drivers/regulator/of_regulator.c @@ -264,8 +264,12 @@ } suspend_np = of_get_child_by_name(np, regulator_states[i]); - if (!suspend_np || !suspend_state) + if (!suspend_np) continue; + if (!suspend_state) { + of_node_put(suspend_np); + continue; + } if (!of_property_read_u32(suspend_np, "regulator-mode", &pval)) { --- linux-5.19.0.orig/drivers/regulator/qcom-labibb-regulator.c +++ linux-5.19.0/drivers/regulator/qcom-labibb-regulator.c @@ -822,6 +822,7 @@ if (irq == 0) irq = -EINVAL; + of_node_put(reg_node); return dev_err_probe(vreg->dev, irq, "Short-circuit irq not found.\n"); } --- linux-5.19.0.orig/drivers/regulator/qcom-rpmh-regulator.c +++ linux-5.19.0/drivers/regulator/qcom-rpmh-regulator.c @@ -1188,7 +1188,7 @@ static const struct rpmh_vreg_init_data pmr735a_vreg_data[] = { RPMH_VREG("smps1", "smp%s1", &pmic5_ftsmps520, "vdd-s1"), RPMH_VREG("smps2", "smp%s2", &pmic5_ftsmps520, "vdd-s2"), - RPMH_VREG("smps3", "smp%s3", &pmic5_hfsmps510, "vdd-s3"), + RPMH_VREG("smps3", "smp%s3", &pmic5_hfsmps515, "vdd-s3"), RPMH_VREG("ldo1", "ldo%s1", &pmic5_nldo, "vdd-l1-l2"), RPMH_VREG("ldo2", "ldo%s2", &pmic5_nldo, "vdd-l1-l2"), RPMH_VREG("ldo3", "ldo%s3", &pmic5_nldo, "vdd-l3"), --- linux-5.19.0.orig/drivers/regulator/qcom_rpm-regulator.c +++ linux-5.19.0/drivers/regulator/qcom_rpm-regulator.c @@ -802,6 +802,12 @@ }; static const struct rpm_regulator_data rpm_pm8058_regulators[] = { + { "s0", QCOM_RPM_PM8058_SMPS0, &pm8058_smps, "vdd_s0" }, + { "s1", QCOM_RPM_PM8058_SMPS1, &pm8058_smps, "vdd_s1" }, + { "s2", QCOM_RPM_PM8058_SMPS2, &pm8058_smps, "vdd_s2" }, + { "s3", QCOM_RPM_PM8058_SMPS3, &pm8058_smps, "vdd_s3" }, + { "s4", QCOM_RPM_PM8058_SMPS4, &pm8058_smps, "vdd_s4" }, + { "l0", QCOM_RPM_PM8058_LDO0, &pm8058_nldo, "vdd_l0_l1_lvs" }, { "l1", QCOM_RPM_PM8058_LDO1, &pm8058_nldo, "vdd_l0_l1_lvs" }, { "l2", QCOM_RPM_PM8058_LDO2, &pm8058_pldo, "vdd_l2_l11_l12" }, @@ -829,12 +835,6 @@ { "l24", QCOM_RPM_PM8058_LDO24, &pm8058_nldo, "vdd_l23_l24_l25" }, { "l25", QCOM_RPM_PM8058_LDO25, &pm8058_nldo, "vdd_l23_l24_l25" }, - { "s0", QCOM_RPM_PM8058_SMPS0, &pm8058_smps, "vdd_s0" }, - { "s1", QCOM_RPM_PM8058_SMPS1, &pm8058_smps, "vdd_s1" }, - { "s2", QCOM_RPM_PM8058_SMPS2, &pm8058_smps, "vdd_s2" }, - { "s3", QCOM_RPM_PM8058_SMPS3, &pm8058_smps, "vdd_s3" }, - { "s4", QCOM_RPM_PM8058_SMPS4, &pm8058_smps, "vdd_s4" }, - { "lvs0", QCOM_RPM_PM8058_LVS0, &pm8058_switch, "vdd_l0_l1_lvs" }, { "lvs1", QCOM_RPM_PM8058_LVS1, &pm8058_switch, "vdd_l0_l1_lvs" }, @@ -843,6 +843,12 @@ }; static const struct rpm_regulator_data rpm_pm8901_regulators[] = { + { "s0", QCOM_RPM_PM8901_SMPS0, &pm8901_ftsmps, "vdd_s0" }, + { "s1", QCOM_RPM_PM8901_SMPS1, &pm8901_ftsmps, "vdd_s1" }, + { "s2", QCOM_RPM_PM8901_SMPS2, &pm8901_ftsmps, "vdd_s2" }, + { "s3", QCOM_RPM_PM8901_SMPS3, &pm8901_ftsmps, "vdd_s3" }, + { "s4", QCOM_RPM_PM8901_SMPS4, &pm8901_ftsmps, "vdd_s4" }, + { "l0", QCOM_RPM_PM8901_LDO0, &pm8901_nldo, "vdd_l0" }, { "l1", QCOM_RPM_PM8901_LDO1, &pm8901_pldo, "vdd_l1" }, { "l2", QCOM_RPM_PM8901_LDO2, &pm8901_pldo, "vdd_l2" }, @@ -851,12 +857,6 @@ { "l5", QCOM_RPM_PM8901_LDO5, &pm8901_pldo, "vdd_l5" }, { "l6", QCOM_RPM_PM8901_LDO6, &pm8901_pldo, "vdd_l6" }, - { "s0", QCOM_RPM_PM8901_SMPS0, &pm8901_ftsmps, "vdd_s0" }, - { "s1", QCOM_RPM_PM8901_SMPS1, &pm8901_ftsmps, "vdd_s1" }, - { "s2", QCOM_RPM_PM8901_SMPS2, &pm8901_ftsmps, "vdd_s2" }, - { "s3", QCOM_RPM_PM8901_SMPS3, &pm8901_ftsmps, "vdd_s3" }, - { "s4", QCOM_RPM_PM8901_SMPS4, &pm8901_ftsmps, "vdd_s4" }, - { "lvs0", QCOM_RPM_PM8901_LVS0, &pm8901_switch, "lvs0_in" }, { "lvs1", QCOM_RPM_PM8901_LVS1, &pm8901_switch, "lvs1_in" }, { "lvs2", QCOM_RPM_PM8901_LVS2, &pm8901_switch, "lvs2_in" }, --- linux-5.19.0.orig/drivers/regulator/qcom_smd-regulator.c +++ linux-5.19.0/drivers/regulator/qcom_smd-regulator.c @@ -357,10 +357,10 @@ static const struct regulator_desc pm8916_pldo = { .linear_ranges = (struct linear_range[]) { - REGULATOR_LINEAR_RANGE(750000, 0, 208, 12500), + REGULATOR_LINEAR_RANGE(1750000, 0, 127, 12500), }, .n_linear_ranges = 1, - .n_voltages = 209, + .n_voltages = 128, .ops = &rpm_smps_ldo_ops, }; --- linux-5.19.0.orig/drivers/regulator/rt5759-regulator.c +++ linux-5.19.0/drivers/regulator/rt5759-regulator.c @@ -243,6 +243,7 @@ if (priv->chip_type == CHIP_TYPE_RT5759A) reg_desc->uV_step = RT5759A_STEP_UV; + memset(®_cfg, 0, sizeof(reg_cfg)); reg_cfg.dev = priv->dev; reg_cfg.of_node = np; reg_cfg.init_data = of_get_regulator_init_data(priv->dev, np, reg_desc); --- linux-5.19.0.orig/drivers/regulator/slg51000-regulator.c +++ linux-5.19.0/drivers/regulator/slg51000-regulator.c @@ -457,6 +457,8 @@ chip->cs_gpiod = cs_gpiod; } + usleep_range(10000, 11000); + i2c_set_clientdata(client, chip); chip->chip_irq = client->irq; chip->dev = dev; --- linux-5.19.0.orig/drivers/regulator/twl6030-regulator.c +++ linux-5.19.0/drivers/regulator/twl6030-regulator.c @@ -67,6 +67,7 @@ #define TWL6030_CFG_STATE_SLEEP 0x03 #define TWL6030_CFG_STATE_GRP_SHIFT 5 #define TWL6030_CFG_STATE_APP_SHIFT 2 +#define TWL6030_CFG_STATE_MASK 0x03 #define TWL6030_CFG_STATE_APP_MASK (0x03 << TWL6030_CFG_STATE_APP_SHIFT) #define TWL6030_CFG_STATE_APP(v) (((v) & TWL6030_CFG_STATE_APP_MASK) >>\ TWL6030_CFG_STATE_APP_SHIFT) @@ -128,13 +129,14 @@ if (grp < 0) return grp; grp &= P1_GRP_6030; + val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); + val = TWL6030_CFG_STATE_APP(val); } else { + val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); + val &= TWL6030_CFG_STATE_MASK; grp = 1; } - val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); - val = TWL6030_CFG_STATE_APP(val); - return grp && (val == TWL6030_CFG_STATE_ON); } @@ -187,7 +189,12 @@ val = twlreg_read(info, TWL_MODULE_PM_RECEIVER, VREG_STATE); - switch (TWL6030_CFG_STATE_APP(val)) { + if (info->features & TWL6032_SUBCLASS) + val &= TWL6030_CFG_STATE_MASK; + else + val = TWL6030_CFG_STATE_APP(val); + + switch (val) { case TWL6030_CFG_STATE_ON: return REGULATOR_STATUS_NORMAL; @@ -530,6 +537,7 @@ #define TWL6032_ADJUSTABLE_LDO(label, offset) \ static const struct twlreg_info TWL6032_INFO_##label = { \ .base = offset, \ + .features = TWL6032_SUBCLASS, \ .desc = { \ .name = #label, \ .id = TWL6032_REG_##label, \ @@ -562,6 +570,7 @@ #define TWL6032_ADJUSTABLE_SMPS(label, offset) \ static const struct twlreg_info TWLSMPS_INFO_##label = { \ .base = offset, \ + .features = TWL6032_SUBCLASS, \ .desc = { \ .name = #label, \ .id = TWL6032_REG_##label, \ --- linux-5.19.0.orig/drivers/remoteproc/imx_rproc.c +++ linux-5.19.0/drivers/remoteproc/imx_rproc.c @@ -594,16 +594,17 @@ node = of_parse_phandle(np, "memory-region", a); /* Not map vdevbuffer, vdevring region */ - if (!strncmp(node->name, "vdev", strlen("vdev"))) + if (!strncmp(node->name, "vdev", strlen("vdev"))) { + of_node_put(node); continue; + } err = of_address_to_resource(node, 0, &res); + of_node_put(node); if (err) { dev_err(dev, "unable to resolve memory region\n"); return err; } - of_node_put(node); - if (b >= IMX_RPROC_MEM_MAX) break; --- linux-5.19.0.orig/drivers/remoteproc/qcom_q6v5_pas.c +++ linux-5.19.0/drivers/remoteproc/qcom_q6v5_pas.c @@ -87,6 +87,9 @@ { struct qcom_adsp *adsp = rproc->priv; + if (rproc->dump_conf == RPROC_COREDUMP_DISABLED) + return; + qcom_minidump(rproc, adsp->minidump_id); } @@ -402,6 +405,7 @@ } ret = of_address_to_resource(node, 0, &r); + of_node_put(node); if (ret) return ret; @@ -506,6 +510,7 @@ detach_proxy_pds: adsp_pds_detach(adsp, adsp->proxy_pds, adsp->proxy_pd_count); free_rproc: + device_init_wakeup(adsp->dev, false); rproc_free(rproc); return ret; @@ -522,6 +527,8 @@ qcom_remove_sysmon_subdev(adsp->sysmon); qcom_remove_smd_subdev(adsp->rproc, &adsp->smd_subdev); qcom_remove_ssr_subdev(adsp->rproc, &adsp->ssr_subdev); + adsp_pds_detach(adsp, adsp->proxy_pds, adsp->proxy_pd_count); + device_init_wakeup(adsp->dev, false); rproc_free(adsp->rproc); return 0; --- linux-5.19.0.orig/drivers/remoteproc/qcom_q6v5_wcss.c +++ linux-5.19.0/drivers/remoteproc/qcom_q6v5_wcss.c @@ -351,7 +351,7 @@ if (ret) { dev_err(wcss->dev, "xo cbcr enabling timed out (rc:%d)\n", ret); - return ret; + goto disable_xo_cbcr_clk; } writel(0, wcss->reg_base + Q6SS_CGC_OVERRIDE); @@ -417,6 +417,7 @@ val = readl(wcss->reg_base + Q6SS_SLEEP_CBCR); val &= ~Q6SS_CLK_ENABLE; writel(val, wcss->reg_base + Q6SS_SLEEP_CBCR); +disable_xo_cbcr_clk: val = readl(wcss->reg_base + Q6SS_XO_CBCR); val &= ~Q6SS_CLK_ENABLE; writel(val, wcss->reg_base + Q6SS_XO_CBCR); @@ -827,6 +828,9 @@ int ret; res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "qdsp6"); + if (!res) + return -EINVAL; + wcss->reg_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); if (!wcss->reg_base) --- linux-5.19.0.orig/drivers/remoteproc/qcom_sysmon.c +++ linux-5.19.0/drivers/remoteproc/qcom_sysmon.c @@ -41,6 +41,7 @@ struct completion comp; struct completion ind_comp; struct completion shutdown_comp; + struct completion ssctl_comp; struct mutex lock; bool ssr_ack; @@ -445,6 +446,8 @@ svc->priv = sysmon; + complete(&sysmon->ssctl_comp); + return 0; } @@ -501,6 +504,7 @@ .ssr_event = SSCTL_SSR_EVENT_AFTER_POWERUP }; + reinit_completion(&sysmon->ssctl_comp); mutex_lock(&sysmon->state_lock); sysmon->state = SSCTL_SSR_EVENT_AFTER_POWERUP; blocking_notifier_call_chain(&sysmon_notifiers, 0, (void *)&event); @@ -545,6 +549,11 @@ if (crashed) return; + if (sysmon->ssctl_instance) { + if (!wait_for_completion_timeout(&sysmon->ssctl_comp, HZ / 2)) + dev_err(sysmon->dev, "timeout waiting for ssctl service\n"); + } + if (sysmon->ssctl_version) sysmon->shutdown_acked = ssctl_request_shutdown(sysmon); else if (sysmon->ept) @@ -631,6 +640,7 @@ init_completion(&sysmon->comp); init_completion(&sysmon->ind_comp); init_completion(&sysmon->shutdown_comp); + init_completion(&sysmon->ssctl_comp); mutex_init(&sysmon->lock); mutex_init(&sysmon->state_lock); @@ -640,7 +650,9 @@ if (sysmon->shutdown_irq != -ENODATA) { dev_err(sysmon->dev, "failed to retrieve shutdown-ack IRQ\n"); - return ERR_PTR(sysmon->shutdown_irq); + ret = sysmon->shutdown_irq; + kfree(sysmon); + return ERR_PTR(ret); } } else { ret = devm_request_threaded_irq(sysmon->dev, @@ -651,6 +663,7 @@ if (ret) { dev_err(sysmon->dev, "failed to acquire shutdown-ack IRQ\n"); + kfree(sysmon); return ERR_PTR(ret); } } --- linux-5.19.0.orig/drivers/remoteproc/qcom_wcnss.c +++ linux-5.19.0/drivers/remoteproc/qcom_wcnss.c @@ -467,6 +467,7 @@ irq_handler_t thread_fn) { int ret; + int irq_number; ret = platform_get_irq_byname(pdev, name); if (ret < 0 && optional) { @@ -477,14 +478,19 @@ return ret; } + irq_number = ret; + ret = devm_request_threaded_irq(&pdev->dev, ret, NULL, thread_fn, IRQF_TRIGGER_RISING | IRQF_ONESHOT, "wcnss", wcnss); - if (ret) + if (ret) { dev_err(&pdev->dev, "request %s IRQ failed\n", name); + return ret; + } - return ret; + /* Return the IRQ number if the IRQ was successfully acquired */ + return irq_number; } static int wcnss_alloc_memory_region(struct qcom_wcnss *wcnss) --- linux-5.19.0.orig/drivers/remoteproc/remoteproc_core.c +++ linux-5.19.0/drivers/remoteproc/remoteproc_core.c @@ -518,12 +518,13 @@ struct fw_rsc_vdev *rsc = ptr; struct device *dev = &rproc->dev; struct rproc_vdev *rvdev; + size_t rsc_size; int i, ret; char name[16]; /* make sure resource isn't truncated */ - if (struct_size(rsc, vring, rsc->num_of_vrings) + rsc->config_len > - avail) { + rsc_size = struct_size(rsc, vring, rsc->num_of_vrings); + if (size_add(rsc_size, rsc->config_len) > avail) { dev_err(dev, "vdev rsc is truncated\n"); return -EINVAL; } --- linux-5.19.0.orig/drivers/remoteproc/ti_k3_r5_remoteproc.c +++ linux-5.19.0/drivers/remoteproc/ti_k3_r5_remoteproc.c @@ -1655,6 +1655,7 @@ if (!cpdev) { ret = -ENODEV; dev_err(dev, "could not get R5 core platform device\n"); + of_node_put(child); goto fail; } @@ -1663,6 +1664,7 @@ dev_err(dev, "k3_r5_core_of_init failed, ret = %d\n", ret); put_device(&cpdev->dev); + of_node_put(child); goto fail; } --- linux-5.19.0.orig/drivers/reset/reset-imx7.c +++ linux-5.19.0/drivers/reset/reset-imx7.c @@ -329,6 +329,7 @@ break; case IMX8MP_RESET_PCIE_CTRL_APPS_EN: + case IMX8MP_RESET_PCIEPHY_PERST: value = assert ? 0 : bit; break; } --- linux-5.19.0.orig/drivers/rpmsg/mtk_rpmsg.c +++ linux-5.19.0/drivers/rpmsg/mtk_rpmsg.c @@ -234,7 +234,9 @@ if (info->registered) continue; + mutex_unlock(&subdev->channels_lock); ret = mtk_rpmsg_register_device(subdev, &info->info); + mutex_lock(&subdev->channels_lock); if (ret) { dev_err(&pdev->dev, "Can't create rpmsg_device\n"); continue; --- linux-5.19.0.orig/drivers/rpmsg/qcom_glink_native.c +++ linux-5.19.0/drivers/rpmsg/qcom_glink_native.c @@ -1546,7 +1546,7 @@ cancel_work_sync(&channel->intent_work); if (channel->rpdev) { - strncpy(chinfo.name, channel->name, sizeof(chinfo.name)); + strscpy_pad(chinfo.name, channel->name, sizeof(chinfo.name)); chinfo.src = RPMSG_ADDR_ANY; chinfo.dst = RPMSG_ADDR_ANY; --- linux-5.19.0.orig/drivers/rpmsg/qcom_smd.c +++ linux-5.19.0/drivers/rpmsg/qcom_smd.c @@ -1089,7 +1089,7 @@ /* Assign public information to the rpmsg_device */ rpdev = &qsdev->rpdev; - strncpy(rpdev->id.name, channel->name, RPMSG_NAME_SIZE); + strscpy_pad(rpdev->id.name, channel->name, RPMSG_NAME_SIZE); rpdev->src = RPMSG_ADDR_ANY; rpdev->dst = RPMSG_ADDR_ANY; @@ -1323,7 +1323,7 @@ spin_unlock_irqrestore(&edge->channels_lock, flags); - strncpy(chinfo.name, channel->name, sizeof(chinfo.name)); + strscpy_pad(chinfo.name, channel->name, sizeof(chinfo.name)); chinfo.src = RPMSG_ADDR_ANY; chinfo.dst = RPMSG_ADDR_ANY; rpmsg_unregister_device(&edge->dev, &chinfo); @@ -1383,6 +1383,7 @@ } edge->ipc_regmap = syscon_node_to_regmap(syscon_np); + of_node_put(syscon_np); if (IS_ERR(edge->ipc_regmap)) { ret = PTR_ERR(edge->ipc_regmap); goto put_node; --- linux-5.19.0.orig/drivers/rpmsg/rpmsg_char.c +++ linux-5.19.0/drivers/rpmsg/rpmsg_char.c @@ -76,7 +76,9 @@ mutex_lock(&eptdev->ept_lock); if (eptdev->ept) { - rpmsg_destroy_ept(eptdev->ept); + /* The default endpoint is released by the rpmsg core */ + if (!eptdev->default_ept) + rpmsg_destroy_ept(eptdev->ept); eptdev->ept = NULL; } mutex_unlock(&eptdev->ept_lock); @@ -120,8 +122,11 @@ struct rpmsg_device *rpdev = eptdev->rpdev; struct device *dev = &eptdev->dev; - if (eptdev->ept) + mutex_lock(&eptdev->ept_lock); + if (eptdev->ept) { + mutex_unlock(&eptdev->ept_lock); return -EBUSY; + } get_device(dev); @@ -137,11 +142,13 @@ if (!ept) { dev_err(dev, "failed to open %s\n", eptdev->chinfo.name); put_device(dev); + mutex_unlock(&eptdev->ept_lock); return -EINVAL; } eptdev->ept = ept; filp->private_data = eptdev; + mutex_unlock(&eptdev->ept_lock); return 0; } --- linux-5.19.0.orig/drivers/rpmsg/rpmsg_core.c +++ linux-5.19.0/drivers/rpmsg/rpmsg_core.c @@ -618,6 +618,7 @@ strlen(driver_override)); if (ret) { dev_err(dev, "device_set_override failed: %d\n", ret); + put_device(dev); return ret; } } --- linux-5.19.0.orig/drivers/rtc/class.c +++ linux-5.19.0/drivers/rtc/class.c @@ -374,11 +374,11 @@ rtc->id = id; rtc->dev.parent = dev; - err = dev_set_name(&rtc->dev, "rtc%d", id); + err = devm_add_action_or_reset(dev, devm_rtc_release_device, rtc); if (err) return ERR_PTR(err); - err = devm_add_action_or_reset(dev, devm_rtc_release_device, rtc); + err = dev_set_name(&rtc->dev, "rtc%d", id); if (err) return ERR_PTR(err); --- linux-5.19.0.orig/drivers/rtc/rtc-cmos.c +++ linux-5.19.0/drivers/rtc/rtc-cmos.c @@ -744,6 +744,168 @@ return IRQ_NONE; } +#ifdef CONFIG_ACPI + +#include + +static u32 rtc_handler(void *context) +{ + struct device *dev = context; + struct cmos_rtc *cmos = dev_get_drvdata(dev); + unsigned char rtc_control = 0; + unsigned char rtc_intr; + unsigned long flags; + + + /* + * Always update rtc irq when ACPI is used as RTC Alarm. + * Or else, ACPI SCI is enabled during suspend/resume only, + * update rtc irq in that case. + */ + if (cmos_use_acpi_alarm()) + cmos_interrupt(0, (void *)cmos->rtc); + else { + /* Fix me: can we use cmos_interrupt() here as well? */ + spin_lock_irqsave(&rtc_lock, flags); + if (cmos_rtc.suspend_ctrl) + rtc_control = CMOS_READ(RTC_CONTROL); + if (rtc_control & RTC_AIE) { + cmos_rtc.suspend_ctrl &= ~RTC_AIE; + CMOS_WRITE(rtc_control, RTC_CONTROL); + rtc_intr = CMOS_READ(RTC_INTR_FLAGS); + rtc_update_irq(cmos->rtc, 1, rtc_intr); + } + spin_unlock_irqrestore(&rtc_lock, flags); + } + + pm_wakeup_hard_event(dev); + acpi_clear_event(ACPI_EVENT_RTC); + acpi_disable_event(ACPI_EVENT_RTC, 0); + return ACPI_INTERRUPT_HANDLED; +} + +static void acpi_rtc_event_setup(struct device *dev) +{ + if (acpi_disabled) + return; + + acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, dev); + /* + * After the RTC handler is installed, the Fixed_RTC event should + * be disabled. Only when the RTC alarm is set will it be enabled. + */ + acpi_clear_event(ACPI_EVENT_RTC); + acpi_disable_event(ACPI_EVENT_RTC, 0); +} + +static void acpi_rtc_event_cleanup(void) +{ + if (acpi_disabled) + return; + + acpi_remove_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler); +} + +static void rtc_wake_on(struct device *dev) +{ + acpi_clear_event(ACPI_EVENT_RTC); + acpi_enable_event(ACPI_EVENT_RTC, 0); +} + +static void rtc_wake_off(struct device *dev) +{ + acpi_disable_event(ACPI_EVENT_RTC, 0); +} + +#ifdef CONFIG_X86 +/* Enable use_acpi_alarm mode for Intel platforms no earlier than 2015 */ +static void use_acpi_alarm_quirks(void) +{ + if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) + return; + + if (!is_hpet_enabled()) + return; + + if (dmi_get_bios_year() < 2015) + return; + + use_acpi_alarm = true; +} +#else +static inline void use_acpi_alarm_quirks(void) { } +#endif + +static void acpi_cmos_wake_setup(struct device *dev) +{ + if (acpi_disabled) + return; + + use_acpi_alarm_quirks(); + + cmos_rtc.wake_on = rtc_wake_on; + cmos_rtc.wake_off = rtc_wake_off; + + /* ACPI tables bug workaround. */ + if (acpi_gbl_FADT.month_alarm && !acpi_gbl_FADT.day_alarm) { + dev_dbg(dev, "bogus FADT month_alarm (%d)\n", + acpi_gbl_FADT.month_alarm); + acpi_gbl_FADT.month_alarm = 0; + } + + cmos_rtc.day_alrm = acpi_gbl_FADT.day_alarm; + cmos_rtc.mon_alrm = acpi_gbl_FADT.month_alarm; + cmos_rtc.century = acpi_gbl_FADT.century; + + if (acpi_gbl_FADT.flags & ACPI_FADT_S4_RTC_WAKE) + dev_info(dev, "RTC can wake from S4\n"); + + /* RTC always wakes from S1/S2/S3, and often S4/STD */ + device_init_wakeup(dev, 1); +} + +static void cmos_check_acpi_rtc_status(struct device *dev, + unsigned char *rtc_control) +{ + struct cmos_rtc *cmos = dev_get_drvdata(dev); + acpi_event_status rtc_status; + acpi_status status; + + if (acpi_gbl_FADT.flags & ACPI_FADT_FIXED_RTC) + return; + + status = acpi_get_event_status(ACPI_EVENT_RTC, &rtc_status); + if (ACPI_FAILURE(status)) { + dev_err(dev, "Could not get RTC status\n"); + } else if (rtc_status & ACPI_EVENT_FLAG_SET) { + unsigned char mask; + *rtc_control &= ~RTC_AIE; + CMOS_WRITE(*rtc_control, RTC_CONTROL); + mask = CMOS_READ(RTC_INTR_FLAGS); + rtc_update_irq(cmos->rtc, 1, mask); + } +} + +#else /* !CONFIG_ACPI */ + +static inline void acpi_rtc_event_setup(struct device *dev) +{ +} + +static inline void acpi_rtc_event_cleanup(void) +{ +} + +static inline void acpi_cmos_wake_setup(struct device *dev) +{ +} + +static inline void cmos_check_acpi_rtc_status(struct device *dev, + unsigned char *rtc_control) +{ +} +#endif /* CONFIG_ACPI */ + #ifdef CONFIG_PNP #define INITSECTION @@ -827,19 +989,27 @@ if (info->address_space) address_space = info->address_space; - if (info->rtc_day_alarm && info->rtc_day_alarm < 128) - cmos_rtc.day_alrm = info->rtc_day_alarm; - if (info->rtc_mon_alarm && info->rtc_mon_alarm < 128) - cmos_rtc.mon_alrm = info->rtc_mon_alarm; - if (info->rtc_century && info->rtc_century < 128) - cmos_rtc.century = info->rtc_century; + cmos_rtc.day_alrm = info->rtc_day_alarm; + cmos_rtc.mon_alrm = info->rtc_mon_alarm; + cmos_rtc.century = info->rtc_century; if (info->wake_on && info->wake_off) { cmos_rtc.wake_on = info->wake_on; cmos_rtc.wake_off = info->wake_off; } + } else { + acpi_cmos_wake_setup(dev); } + if (cmos_rtc.day_alrm >= 128) + cmos_rtc.day_alrm = 0; + + if (cmos_rtc.mon_alrm >= 128) + cmos_rtc.mon_alrm = 0; + + if (cmos_rtc.century >= 128) + cmos_rtc.century = 0; + cmos_rtc.dev = dev; dev_set_drvdata(dev, &cmos_rtc); @@ -928,6 +1098,13 @@ nvmem_cfg.size = address_space - NVRAM_OFFSET; devm_rtc_nvmem_register(cmos_rtc.rtc, &nvmem_cfg); + /* + * Everything has gone well so far, so by default register a handler for + * the ACPI RTC fixed event. + */ + if (!info) + acpi_rtc_event_setup(dev); + dev_info(dev, "%s%s, %d bytes nvram%s\n", !is_valid_irq(rtc_irq) ? "no alarms" : cmos_rtc.mon_alrm ? "alarms up to one year" : @@ -973,6 +1150,9 @@ hpet_unregister_irq_handler(cmos_interrupt); } + if (!dev_get_platdata(dev)) + acpi_rtc_event_cleanup(); + cmos->rtc = NULL; ports = cmos->iomem; @@ -1122,9 +1302,6 @@ } } -static void cmos_check_acpi_rtc_status(struct device *dev, - unsigned char *rtc_control); - static int __maybe_unused cmos_resume(struct device *dev) { struct cmos_rtc *cmos = dev_get_drvdata(dev); @@ -1191,174 +1368,16 @@ * predate even PNPBIOS should set up platform_bus devices. */ -#ifdef CONFIG_ACPI - -#include - -static u32 rtc_handler(void *context) -{ - struct device *dev = context; - struct cmos_rtc *cmos = dev_get_drvdata(dev); - unsigned char rtc_control = 0; - unsigned char rtc_intr; - unsigned long flags; - - - /* - * Always update rtc irq when ACPI is used as RTC Alarm. - * Or else, ACPI SCI is enabled during suspend/resume only, - * update rtc irq in that case. - */ - if (cmos_use_acpi_alarm()) - cmos_interrupt(0, (void *)cmos->rtc); - else { - /* Fix me: can we use cmos_interrupt() here as well? */ - spin_lock_irqsave(&rtc_lock, flags); - if (cmos_rtc.suspend_ctrl) - rtc_control = CMOS_READ(RTC_CONTROL); - if (rtc_control & RTC_AIE) { - cmos_rtc.suspend_ctrl &= ~RTC_AIE; - CMOS_WRITE(rtc_control, RTC_CONTROL); - rtc_intr = CMOS_READ(RTC_INTR_FLAGS); - rtc_update_irq(cmos->rtc, 1, rtc_intr); - } - spin_unlock_irqrestore(&rtc_lock, flags); - } - - pm_wakeup_hard_event(dev); - acpi_clear_event(ACPI_EVENT_RTC); - acpi_disable_event(ACPI_EVENT_RTC, 0); - return ACPI_INTERRUPT_HANDLED; -} - -static inline void rtc_wake_setup(struct device *dev) -{ - acpi_install_fixed_event_handler(ACPI_EVENT_RTC, rtc_handler, dev); - /* - * After the RTC handler is installed, the Fixed_RTC event should - * be disabled. Only when the RTC alarm is set will it be enabled. - */ - acpi_clear_event(ACPI_EVENT_RTC); - acpi_disable_event(ACPI_EVENT_RTC, 0); -} - -static void rtc_wake_on(struct device *dev) -{ - acpi_clear_event(ACPI_EVENT_RTC); - acpi_enable_event(ACPI_EVENT_RTC, 0); -} - -static void rtc_wake_off(struct device *dev) -{ - acpi_disable_event(ACPI_EVENT_RTC, 0); -} - -#ifdef CONFIG_X86 -/* Enable use_acpi_alarm mode for Intel platforms no earlier than 2015 */ -static void use_acpi_alarm_quirks(void) -{ - if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL) - return; - - if (!(acpi_gbl_FADT.flags & ACPI_FADT_LOW_POWER_S0)) - return; - - if (!is_hpet_enabled()) - return; - - if (dmi_get_bios_year() < 2015) - return; - - use_acpi_alarm = true; -} -#else -static inline void use_acpi_alarm_quirks(void) { } -#endif - -/* Every ACPI platform has a mc146818 compatible "cmos rtc". Here we find - * its device node and pass extra config data. This helps its driver use - * capabilities that the now-obsolete mc146818 didn't have, and informs it - * that this board's RTC is wakeup-capable (per ACPI spec). - */ -static struct cmos_rtc_board_info acpi_rtc_info; - -static void cmos_wake_setup(struct device *dev) -{ - if (acpi_disabled) - return; - - use_acpi_alarm_quirks(); - - rtc_wake_setup(dev); - acpi_rtc_info.wake_on = rtc_wake_on; - acpi_rtc_info.wake_off = rtc_wake_off; - - /* workaround bug in some ACPI tables */ - if (acpi_gbl_FADT.month_alarm && !acpi_gbl_FADT.day_alarm) { - dev_dbg(dev, "bogus FADT month_alarm (%d)\n", - acpi_gbl_FADT.month_alarm); - acpi_gbl_FADT.month_alarm = 0; - } - - acpi_rtc_info.rtc_day_alarm = acpi_gbl_FADT.day_alarm; - acpi_rtc_info.rtc_mon_alarm = acpi_gbl_FADT.month_alarm; - acpi_rtc_info.rtc_century = acpi_gbl_FADT.century; - - /* NOTE: S4_RTC_WAKE is NOT currently useful to Linux */ - if (acpi_gbl_FADT.flags & ACPI_FADT_S4_RTC_WAKE) - dev_info(dev, "RTC can wake from S4\n"); - - dev->platform_data = &acpi_rtc_info; - - /* RTC always wakes from S1/S2/S3, and often S4/STD */ - device_init_wakeup(dev, 1); -} - -static void cmos_check_acpi_rtc_status(struct device *dev, - unsigned char *rtc_control) -{ - struct cmos_rtc *cmos = dev_get_drvdata(dev); - acpi_event_status rtc_status; - acpi_status status; - - if (acpi_gbl_FADT.flags & ACPI_FADT_FIXED_RTC) - return; - - status = acpi_get_event_status(ACPI_EVENT_RTC, &rtc_status); - if (ACPI_FAILURE(status)) { - dev_err(dev, "Could not get RTC status\n"); - } else if (rtc_status & ACPI_EVENT_FLAG_SET) { - unsigned char mask; - *rtc_control &= ~RTC_AIE; - CMOS_WRITE(*rtc_control, RTC_CONTROL); - mask = CMOS_READ(RTC_INTR_FLAGS); - rtc_update_irq(cmos->rtc, 1, mask); - } -} - -#else - -static void cmos_wake_setup(struct device *dev) -{ -} - -static void cmos_check_acpi_rtc_status(struct device *dev, - unsigned char *rtc_control) -{ -} - -#endif - #ifdef CONFIG_PNP #include static int cmos_pnp_probe(struct pnp_dev *pnp, const struct pnp_device_id *id) { - cmos_wake_setup(&pnp->dev); + int irq; if (pnp_port_start(pnp, 0) == 0x70 && !pnp_irq_valid(pnp, 0)) { - unsigned int irq = 0; + irq = 0; #ifdef CONFIG_X86 /* Some machines contain a PNP entry for the RTC, but * don't define the IRQ. It should always be safe to @@ -1367,13 +1386,11 @@ if (nr_legacy_irqs()) irq = RTC_IRQ; #endif - return cmos_do_probe(&pnp->dev, - pnp_get_resource(pnp, IORESOURCE_IO, 0), irq); } else { - return cmos_do_probe(&pnp->dev, - pnp_get_resource(pnp, IORESOURCE_IO, 0), - pnp_irq(pnp, 0)); + irq = pnp_irq(pnp, 0); } + + return cmos_do_probe(&pnp->dev, pnp_get_resource(pnp, IORESOURCE_IO, 0), irq); } static void cmos_pnp_remove(struct pnp_dev *pnp) @@ -1460,7 +1477,6 @@ int irq; cmos_of_init(pdev); - cmos_wake_setup(&pdev->dev); if (RTC_IOMAPPED) resource = platform_get_resource(pdev, IORESOURCE_IO, 0); --- linux-5.19.0.orig/drivers/rtc/rtc-mxc_v2.c +++ linux-5.19.0/drivers/rtc/rtc-mxc_v2.c @@ -336,8 +336,10 @@ } pdata->rtc = devm_rtc_allocate_device(&pdev->dev); - if (IS_ERR(pdata->rtc)) + if (IS_ERR(pdata->rtc)) { + clk_disable_unprepare(pdata->clk); return PTR_ERR(pdata->rtc); + } pdata->rtc->ops = &mxc_rtc_ops; pdata->rtc->range_max = U32_MAX; --- linux-5.19.0.orig/drivers/rtc/rtc-pcf85063.c +++ linux-5.19.0/drivers/rtc/rtc-pcf85063.c @@ -169,10 +169,10 @@ if (ret) return ret; - alrm->time.tm_sec = bcd2bin(buf[0]); - alrm->time.tm_min = bcd2bin(buf[1]); - alrm->time.tm_hour = bcd2bin(buf[2]); - alrm->time.tm_mday = bcd2bin(buf[3]); + alrm->time.tm_sec = bcd2bin(buf[0] & 0x7f); + alrm->time.tm_min = bcd2bin(buf[1] & 0x7f); + alrm->time.tm_hour = bcd2bin(buf[2] & 0x3f); + alrm->time.tm_mday = bcd2bin(buf[3] & 0x3f); ret = regmap_read(pcf85063->regmap, PCF85063_REG_CTRL2, &val); if (ret) @@ -424,7 +424,7 @@ unsigned int buf; int ret; - ret = regmap_read(pcf85063->regmap, PCF85063_REG_OFFSET, &buf); + ret = regmap_read(pcf85063->regmap, PCF85063_REG_CTRL2, &buf); if (ret < 0) return ret; buf &= PCF85063_REG_CLKO_F_MASK; --- linux-5.19.0.orig/drivers/rtc/rtc-pic32.c +++ linux-5.19.0/drivers/rtc/rtc-pic32.c @@ -324,16 +324,16 @@ spin_lock_init(&pdata->alarm_lock); + pdata->rtc = devm_rtc_allocate_device(&pdev->dev); + if (IS_ERR(pdata->rtc)) + return PTR_ERR(pdata->rtc); + clk_prepare_enable(pdata->clk); pic32_rtc_enable(pdata, 1); device_init_wakeup(&pdev->dev, 1); - pdata->rtc = devm_rtc_allocate_device(&pdev->dev); - if (IS_ERR(pdata->rtc)) - return PTR_ERR(pdata->rtc); - pdata->rtc->ops = &pic32_rtcops; pdata->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000; pdata->rtc->range_max = RTC_TIMESTAMP_END_2099; --- linux-5.19.0.orig/drivers/rtc/rtc-rx8025.c +++ linux-5.19.0/drivers/rtc/rtc-rx8025.c @@ -55,6 +55,8 @@ #define RX8025_BIT_CTRL2_XST BIT(5) #define RX8025_BIT_CTRL2_VDET BIT(6) +#define RX8035_BIT_HOUR_1224 BIT(7) + /* Clock precision adjustment */ #define RX8025_ADJ_RESOLUTION 3050 /* in ppb */ #define RX8025_ADJ_DATA_MAX 62 @@ -78,6 +80,7 @@ struct rtc_device *rtc; enum rx_model model; u8 ctrl1; + int is_24; }; static s32 rx8025_read_reg(const struct i2c_client *client, u8 number) @@ -226,7 +229,7 @@ dt->tm_sec = bcd2bin(date[RX8025_REG_SEC] & 0x7f); dt->tm_min = bcd2bin(date[RX8025_REG_MIN] & 0x7f); - if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224) + if (rx8025->is_24) dt->tm_hour = bcd2bin(date[RX8025_REG_HOUR] & 0x3f); else dt->tm_hour = bcd2bin(date[RX8025_REG_HOUR] & 0x1f) % 12 @@ -254,7 +257,7 @@ */ date[RX8025_REG_SEC] = bin2bcd(dt->tm_sec); date[RX8025_REG_MIN] = bin2bcd(dt->tm_min); - if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224) + if (rx8025->is_24) date[RX8025_REG_HOUR] = bin2bcd(dt->tm_hour); else date[RX8025_REG_HOUR] = (dt->tm_hour >= 12 ? 0x20 : 0) @@ -279,6 +282,7 @@ struct rx8025_data *rx8025 = i2c_get_clientdata(client); u8 ctrl[2], ctrl2; int need_clear = 0; + int hour_reg; int err; err = rx8025_read_regs(client, RX8025_REG_CTRL1, 2, ctrl); @@ -303,6 +307,16 @@ err = rx8025_write_reg(client, RX8025_REG_CTRL2, ctrl2); } + + if (rx8025->model == model_rx_8035) { + /* In RX-8035, 12/24 flag is in the hour register */ + hour_reg = rx8025_read_reg(client, RX8025_REG_HOUR); + if (hour_reg < 0) + return hour_reg; + rx8025->is_24 = (hour_reg & RX8035_BIT_HOUR_1224); + } else { + rx8025->is_24 = (ctrl[1] & RX8025_BIT_CTRL1_1224); + } out: return err; } @@ -329,7 +343,7 @@ /* Hardware alarms precision is 1 minute! */ t->time.tm_sec = 0; t->time.tm_min = bcd2bin(ald[0] & 0x7f); - if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224) + if (rx8025->is_24) t->time.tm_hour = bcd2bin(ald[1] & 0x3f); else t->time.tm_hour = bcd2bin(ald[1] & 0x1f) % 12 @@ -350,7 +364,7 @@ int err; ald[0] = bin2bcd(t->time.tm_min); - if (rx8025->ctrl1 & RX8025_BIT_CTRL1_1224) + if (rx8025->is_24) ald[1] = bin2bcd(t->time.tm_hour); else ald[1] = (t->time.tm_hour >= 12 ? 0x20 : 0) --- linux-5.19.0.orig/drivers/rtc/rtc-rzn1.c +++ linux-5.19.0/drivers/rtc/rtc-rzn1.c @@ -355,7 +355,9 @@ set_bit(RTC_FEATURE_ALARM_RES_MINUTE, rtc->rtcdev->features); clear_bit(RTC_FEATURE_UPDATE_INTERRUPT, rtc->rtcdev->features); - devm_pm_runtime_enable(&pdev->dev); + ret = devm_pm_runtime_enable(&pdev->dev); + if (ret < 0) + return ret; ret = pm_runtime_resume_and_get(&pdev->dev); if (ret < 0) return ret; --- linux-5.19.0.orig/drivers/rtc/rtc-snvs.c +++ linux-5.19.0/drivers/rtc/rtc-snvs.c @@ -32,6 +32,14 @@ #define SNVS_LPPGDR_INIT 0x41736166 #define CNTR_TO_SECS_SH 15 +/* The maximum RTC clock cycles that are allowed to pass between two + * consecutive clock counter register reads. If the values are corrupted a + * bigger difference is expected. The RTC frequency is 32kHz. With 320 cycles + * we end at 10ms which should be enough for most cases. If it once takes + * longer than expected we do a retry. + */ +#define MAX_RTC_READ_DIFF_CYCLES 320 + struct snvs_rtc_data { struct rtc_device *rtc; struct regmap *regmap; @@ -56,6 +64,7 @@ static u32 rtc_read_lp_counter(struct snvs_rtc_data *data) { u64 read1, read2; + s64 diff; unsigned int timeout = 100; /* As expected, the registers might update between the read of the LSB @@ -66,7 +75,8 @@ do { read2 = read1; read1 = rtc_read_lpsrt(data); - } while (read1 != read2 && --timeout); + diff = read1 - read2; + } while (((diff < 0) || (diff > MAX_RTC_READ_DIFF_CYCLES)) && --timeout); if (!timeout) dev_err(&data->rtc->dev, "Timeout trying to get valid LPSRT Counter read\n"); @@ -78,13 +88,15 @@ static int rtc_read_lp_counter_lsb(struct snvs_rtc_data *data, u32 *lsb) { u32 count1, count2; + s32 diff; unsigned int timeout = 100; regmap_read(data->regmap, data->offset + SNVS_LPSRTCLR, &count1); do { count2 = count1; regmap_read(data->regmap, data->offset + SNVS_LPSRTCLR, &count1); - } while (count1 != count2 && --timeout); + diff = count1 - count2; + } while (((diff < 0) || (diff > MAX_RTC_READ_DIFF_CYCLES)) && --timeout); if (!timeout) { dev_err(&data->rtc->dev, "Timeout trying to get valid LPSRT Counter read\n"); return -ETIMEDOUT; --- linux-5.19.0.orig/drivers/rtc/rtc-spear.c +++ linux-5.19.0/drivers/rtc/rtc-spear.c @@ -388,7 +388,7 @@ config->rtc->ops = &spear_rtc_ops; config->rtc->range_min = RTC_TIMESTAMP_BEGIN_0000; - config->rtc->range_min = RTC_TIMESTAMP_END_9999; + config->rtc->range_max = RTC_TIMESTAMP_END_9999; status = devm_rtc_register_device(config->rtc); if (status) --- linux-5.19.0.orig/drivers/rtc/rtc-st-lpc.c +++ linux-5.19.0/drivers/rtc/rtc-st-lpc.c @@ -238,6 +238,7 @@ rtc->clkrate = clk_get_rate(rtc->clk); if (!rtc->clkrate) { + clk_disable_unprepare(rtc->clk); dev_err(&pdev->dev, "Unable to fetch clock rate\n"); return -EINVAL; } --- linux-5.19.0.orig/drivers/s390/block/dasd.c +++ linux-5.19.0/drivers/s390/block/dasd.c @@ -3280,7 +3280,7 @@ static void dasd_free_queue(struct dasd_block *block) { if (block->request_queue) { - blk_cleanup_queue(block->request_queue); + blk_mq_destroy_queue(block->request_queue); blk_mq_free_tag_set(&block->tag_set); block->request_queue = NULL; } --- linux-5.19.0.orig/drivers/s390/block/dasd_alias.c +++ linux-5.19.0/drivers/s390/block/dasd_alias.c @@ -675,12 +675,12 @@ struct dasd_device *dasd_alias_get_start_dev(struct dasd_device *base_device) { struct dasd_eckd_private *alias_priv, *private = base_device->private; - struct alias_pav_group *group = private->pavgroup; struct alias_lcu *lcu = private->lcu; struct dasd_device *alias_device; + struct alias_pav_group *group; unsigned long flags; - if (!group || !lcu) + if (!lcu) return NULL; if (lcu->pav == NO_PAV || lcu->flags & (NEED_UAC_UPDATE | UPDATE_PENDING)) @@ -697,6 +697,11 @@ } spin_lock_irqsave(&lcu->lock, flags); + group = private->pavgroup; + if (!group) { + spin_unlock_irqrestore(&lcu->lock, flags); + return NULL; + } alias_device = group->next; if (!alias_device) { if (list_empty(&group->aliaslist)) { --- linux-5.19.0.orig/drivers/s390/block/dasd_eckd.c +++ linux-5.19.0/drivers/s390/block/dasd_eckd.c @@ -4681,7 +4681,6 @@ struct dasd_device *basedev; struct req_iterator iter; struct dasd_ccw_req *cqr; - unsigned int first_offs; unsigned int trkcount; unsigned long *idaws; unsigned int size; @@ -4715,7 +4714,6 @@ last_trk = (blk_rq_pos(req) + blk_rq_sectors(req) - 1) / DASD_RAW_SECTORS_PER_TRACK; trkcount = last_trk - first_trk + 1; - first_offs = 0; if (rq_data_dir(req) == READ) cmd = DASD_ECKD_CCW_READ_TRACK; @@ -4759,13 +4757,13 @@ if (use_prefix) { prefix_LRE(ccw++, data, first_trk, last_trk, cmd, basedev, - startdev, 1, first_offs + 1, trkcount, 0, 0); + startdev, 1, 0, trkcount, 0, 0); } else { define_extent(ccw++, data, first_trk, last_trk, cmd, basedev, 0); ccw[-1].flags |= CCW_FLAG_CC; data += sizeof(struct DE_eckd_data); - locate_record_ext(ccw++, data, first_trk, first_offs + 1, + locate_record_ext(ccw++, data, first_trk, 0, trkcount, cmd, basedev, 0, 0); } --- linux-5.19.0.orig/drivers/s390/block/dasd_genhd.c +++ linux-5.19.0/drivers/s390/block/dasd_genhd.c @@ -41,8 +41,8 @@ if (base->devindex >= DASD_PER_MAJOR) return -EBUSY; - gdp = __alloc_disk_node(block->request_queue, NUMA_NO_NODE, - &dasd_bio_compl_lkclass); + gdp = blk_mq_alloc_disk_for_queue(block->request_queue, + &dasd_bio_compl_lkclass); if (!gdp) return -ENOMEM; --- linux-5.19.0.orig/drivers/s390/block/dcssblk.c +++ linux-5.19.0/drivers/s390/block/dcssblk.c @@ -636,6 +636,7 @@ dev_info->gd->minors = DCSSBLK_MINORS_PER_DISK; dev_info->gd->fops = &dcssblk_devops; dev_info->gd->private_data = dev_info; + dev_info->gd->flags |= GENHD_FL_NO_PART; blk_queue_logical_block_size(dev_info->gd->queue, 4096); blk_queue_flag_set(QUEUE_FLAG_DAX, dev_info->gd->queue); --- linux-5.19.0.orig/drivers/s390/char/sclp_early.c +++ linux-5.19.0/drivers/s390/char/sclp_early.c @@ -45,6 +45,10 @@ sclp.has_gisaf = !!(sccb->fac118 & 0x08); sclp.has_hvs = !!(sccb->fac119 & 0x80); sclp.has_kss = !!(sccb->fac98 & 0x01); + sclp.has_aisii = !!(sccb->fac118 & 0x40); + sclp.has_aeni = !!(sccb->fac118 & 0x20); + sclp.has_aisi = !!(sccb->fac118 & 0x10); + sclp.has_zpci_lsi = !!(sccb->fac118 & 0x01); if (sccb->fac85 & 0x02) S390_lowcore.machine_flags |= MACHINE_FLAG_ESOP; if (sccb->fac91 & 0x40) --- linux-5.19.0.orig/drivers/s390/char/zcore.c +++ linux-5.19.0/drivers/s390/char/zcore.c @@ -50,6 +50,7 @@ static struct dentry *zcore_hsa_file; static struct ipl_parameter_block *zcore_ipl_block; +static DEFINE_MUTEX(hsa_buf_mutex); static char hsa_buf[PAGE_SIZE] __aligned(PAGE_SIZE); /* @@ -66,19 +67,24 @@ if (!hsa_available) return -ENODATA; + mutex_lock(&hsa_buf_mutex); while (count) { if (sclp_sdias_copy(hsa_buf, src / PAGE_SIZE + 2, 1)) { TRACE("sclp_sdias_copy() failed\n"); + mutex_unlock(&hsa_buf_mutex); return -EIO; } offset = src % PAGE_SIZE; bytes = min(PAGE_SIZE - offset, count); - if (copy_to_user(dest, hsa_buf + offset, bytes)) + if (copy_to_user(dest, hsa_buf + offset, bytes)) { + mutex_unlock(&hsa_buf_mutex); return -EFAULT; + } src += bytes; dest += bytes; count -= bytes; } + mutex_unlock(&hsa_buf_mutex); return 0; } @@ -96,9 +102,11 @@ if (!hsa_available) return -ENODATA; + mutex_lock(&hsa_buf_mutex); while (count) { if (sclp_sdias_copy(hsa_buf, src / PAGE_SIZE + 2, 1)) { TRACE("sclp_sdias_copy() failed\n"); + mutex_unlock(&hsa_buf_mutex); return -EIO; } offset = src % PAGE_SIZE; @@ -108,6 +116,7 @@ dest += bytes; count -= bytes; } + mutex_unlock(&hsa_buf_mutex); return 0; } --- linux-5.19.0.orig/drivers/s390/cio/airq.c +++ linux-5.19.0/drivers/s390/cio/airq.c @@ -99,7 +99,7 @@ rcu_read_lock(); hlist_for_each_entry_rcu(airq, head, list) if ((*airq->lsi_ptr & airq->lsi_mask) != 0) - airq->handler(airq, !tpi_info->directed_irq); + airq->handler(airq, tpi_info); rcu_read_unlock(); return IRQ_HANDLED; @@ -122,10 +122,12 @@ * airq_iv_create - create an interrupt vector * @bits: number of bits in the interrupt vector * @flags: allocation flags + * @vec: pointer to pinned guest memory if AIRQ_IV_GUESTVEC * * Returns a pointer to an interrupt vector structure */ -struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags) +struct airq_iv *airq_iv_create(unsigned long bits, unsigned long flags, + unsigned long *vec) { struct airq_iv *iv; unsigned long size; @@ -146,6 +148,8 @@ &iv->vector_dma); if (!iv->vector) goto out_free; + } else if (flags & AIRQ_IV_GUESTVEC) { + iv->vector = vec; } else { iv->vector = cio_dma_zalloc(size); if (!iv->vector) @@ -185,7 +189,7 @@ kfree(iv->avail); if (iv->flags & AIRQ_IV_CACHELINE && iv->vector) dma_pool_free(airq_iv_cache, iv->vector, iv->vector_dma); - else + else if (!(iv->flags & AIRQ_IV_GUESTVEC)) cio_dma_free(iv->vector, size); kfree(iv); out: @@ -204,7 +208,7 @@ kfree(iv->bitlock); if (iv->flags & AIRQ_IV_CACHELINE) dma_pool_free(airq_iv_cache, iv->vector, iv->vector_dma); - else + else if (!(iv->flags & AIRQ_IV_GUESTVEC)) cio_dma_free(iv->vector, iv_size(iv->bits)); kfree(iv->avail); kfree(iv); --- linux-5.19.0.orig/drivers/s390/cio/css.c +++ linux-5.19.0/drivers/s390/cio/css.c @@ -753,13 +753,9 @@ { struct idset *set = data; struct subchannel *sch = to_subchannel(dev); - struct ccw_device *cdev; - if (sch->st == SUBCHANNEL_TYPE_IO) { - cdev = sch_get_cdev(sch); - if (cdev && cdev->online) - idset_sch_del(set, sch->schid); - } + if (sch->st == SUBCHANNEL_TYPE_IO && sch->config.ena) + idset_sch_del(set, sch->schid); return 0; } --- linux-5.19.0.orig/drivers/s390/cio/qdio_thinint.c +++ linux-5.19.0/drivers/s390/cio/qdio_thinint.c @@ -15,6 +15,7 @@ #include #include #include +#include #include "cio.h" #include "ioasm.h" @@ -93,9 +94,10 @@ /** * tiqdio_thinint_handler - thin interrupt handler for qdio * @airq: pointer to adapter interrupt descriptor - * @floating: flag to recognize floating vs. directed interrupts (unused) + * @tpi_info: interrupt information (e.g. floating vs directed -- unused) */ -static void tiqdio_thinint_handler(struct airq_struct *airq, bool floating) +static void tiqdio_thinint_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) { u64 irq_time = S390_lowcore.int_clock; u32 si_used = clear_shared_ind(); --- linux-5.19.0.orig/drivers/s390/cio/vfio_ccw_drv.c +++ linux-5.19.0/drivers/s390/cio/vfio_ccw_drv.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -107,9 +106,10 @@ /* * Reset to IDLE only if processing of a channel program * has finished. Do not overwrite a possible processing - * state if the final interrupt was for HSCH or CSCH. + * state if the interrupt was unsolicited, or if the final + * interrupt was for HSCH or CSCH. */ - if (private->mdev && cp_is_finished) + if (cp_is_finished) private->state = VFIO_CCW_STATE_IDLE; if (private->io_trigger) @@ -301,19 +301,11 @@ if (work_pending(&sch->todo_work)) goto out_unlock; - if (cio_update_schib(sch)) { - vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); - rc = 0; - goto out_unlock; - } - - private = dev_get_drvdata(&sch->dev); - if (private->state == VFIO_CCW_STATE_NOT_OPER) { - private->state = private->mdev ? VFIO_CCW_STATE_IDLE : - VFIO_CCW_STATE_STANDBY; - } rc = 0; + if (cio_update_schib(sch)) + vfio_ccw_fsm_event(private, VFIO_CCW_EVENT_NOT_OPER); + out_unlock: spin_unlock_irqrestore(sch->lock, flags); @@ -358,8 +350,8 @@ return 0; trace_vfio_ccw_chp_event(private->sch->schid, mask, event); - VFIO_CCW_MSG_EVENT(2, "%pUl (%x.%x.%04x): mask=0x%x event=%d\n", - mdev_uuid(private->mdev), sch->schid.cssid, + VFIO_CCW_MSG_EVENT(2, "sch %x.%x.%04x: mask=0x%x event=%d\n", + sch->schid.cssid, sch->schid.ssid, sch->schid.sch_no, mask, event); --- linux-5.19.0.orig/drivers/s390/cio/vfio_ccw_fsm.c +++ linux-5.19.0/drivers/s390/cio/vfio_ccw_fsm.c @@ -10,7 +10,6 @@ */ #include -#include #include "ioasm.h" #include "vfio_ccw_private.h" @@ -242,7 +241,6 @@ union orb *orb; union scsw *scsw = &private->scsw; struct ccw_io_region *io_region = private->io_region; - struct mdev_device *mdev = private->mdev; char *errstr = "request"; struct subchannel_id schid = get_schid(private); @@ -256,8 +254,8 @@ if (orb->tm.b) { io_region->ret_code = -EOPNOTSUPP; VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): transport mode\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: transport mode\n", + schid.cssid, schid.ssid, schid.sch_no); errstr = "transport mode"; goto err_out; @@ -265,8 +263,8 @@ io_region->ret_code = cp_init(&private->cp, orb); if (io_region->ret_code) { VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): cp_init=%d\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: cp_init=%d\n", + schid.cssid, schid.ssid, schid.sch_no, io_region->ret_code); errstr = "cp init"; @@ -276,8 +274,8 @@ io_region->ret_code = cp_prefetch(&private->cp); if (io_region->ret_code) { VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): cp_prefetch=%d\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: cp_prefetch=%d\n", + schid.cssid, schid.ssid, schid.sch_no, io_region->ret_code); errstr = "cp prefetch"; @@ -289,8 +287,8 @@ io_region->ret_code = fsm_io_helper(private); if (io_region->ret_code) { VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): fsm_io_helper=%d\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: fsm_io_helper=%d\n", + schid.cssid, schid.ssid, schid.sch_no, io_region->ret_code); errstr = "cp fsm_io_helper"; @@ -300,16 +298,16 @@ return; } else if (scsw->cmd.fctl & SCSW_FCTL_HALT_FUNC) { VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): halt on io_region\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: halt on io_region\n", + schid.cssid, schid.ssid, schid.sch_no); /* halt is handled via the async cmd region */ io_region->ret_code = -EOPNOTSUPP; goto err_out; } else if (scsw->cmd.fctl & SCSW_FCTL_CLEAR_FUNC) { VFIO_CCW_MSG_EVENT(2, - "%pUl (%x.%x.%04x): clear on io_region\n", - mdev_uuid(mdev), schid.cssid, + "sch %x.%x.%04x: clear on io_region\n", + schid.cssid, schid.ssid, schid.sch_no); /* clear is handled via the async cmd region */ io_region->ret_code = -EOPNOTSUPP; --- linux-5.19.0.orig/drivers/s390/cio/vfio_ccw_ops.c +++ linux-5.19.0/drivers/s390/cio/vfio_ccw_ops.c @@ -131,8 +131,8 @@ private->mdev = mdev; private->state = VFIO_CCW_STATE_IDLE; - VFIO_CCW_MSG_EVENT(2, "mdev %pUl, sch %x.%x.%04x: create\n", - mdev_uuid(mdev), private->sch->schid.cssid, + VFIO_CCW_MSG_EVENT(2, "sch %x.%x.%04x: create\n", + private->sch->schid.cssid, private->sch->schid.ssid, private->sch->schid.sch_no); @@ -146,7 +146,7 @@ vfio_uninit_group_dev(&private->vdev); atomic_inc(&private->avail); private->mdev = NULL; - private->state = VFIO_CCW_STATE_IDLE; + private->state = VFIO_CCW_STATE_STANDBY; return ret; } @@ -154,8 +154,8 @@ { struct vfio_ccw_private *private = dev_get_drvdata(mdev->dev.parent); - VFIO_CCW_MSG_EVENT(2, "mdev %pUl, sch %x.%x.%04x: remove\n", - mdev_uuid(mdev), private->sch->schid.cssid, + VFIO_CCW_MSG_EVENT(2, "sch %x.%x.%04x: remove\n", + private->sch->schid.cssid, private->sch->schid.ssid, private->sch->schid.sch_no); --- linux-5.19.0.orig/drivers/s390/crypto/ap_bus.c +++ linux-5.19.0/drivers/s390/crypto/ap_bus.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include @@ -131,7 +132,8 @@ static struct bus_type ap_bus_type; /* Adapter interrupt definitions */ -static void ap_interrupt_handler(struct airq_struct *airq, bool floating); +static void ap_interrupt_handler(struct airq_struct *airq, + struct tpi_info *tpi_info); static bool ap_irq_flag; @@ -231,8 +233,11 @@ if (!ap_qci_info) return; ap_qci_info_old = kzalloc(sizeof(*ap_qci_info_old), GFP_KERNEL); - if (!ap_qci_info_old) + if (!ap_qci_info_old) { + kfree(ap_qci_info); + ap_qci_info = NULL; return; + } if (ap_fetch_qci_info(ap_qci_info) != 0) { kfree(ap_qci_info); kfree(ap_qci_info_old); @@ -452,9 +457,10 @@ /** * ap_interrupt_handler() - Schedule ap_tasklet on interrupt * @airq: pointer to adapter interrupt descriptor - * @floating: ignored + * @tpi_info: ignored */ -static void ap_interrupt_handler(struct airq_struct *airq, bool floating) +static void ap_interrupt_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) { inc_irq_stat(IRQIO_APB); tasklet_schedule(&ap_tasklet); @@ -835,6 +841,17 @@ bus_for_each_dev(&ap_bus_type, NULL, NULL, __ap_revise_reserved); } +/** + * ap_owned_by_def_drv: indicates whether an AP adapter is reserved for the + * default host driver or not. + * @card: the APID of the adapter card to check + * @queue: the APQI of the queue to check + * + * Note: the ap_perms_mutex must be locked by the caller of this function. + * + * Return: an int specifying whether the AP adapter is reserved for the host (1) + * or not (0). + */ int ap_owned_by_def_drv(int card, int queue) { int rc = 0; @@ -842,25 +859,31 @@ if (card < 0 || card >= AP_DEVICES || queue < 0 || queue >= AP_DOMAINS) return -EINVAL; - mutex_lock(&ap_perms_mutex); - if (test_bit_inv(card, ap_perms.apm) && test_bit_inv(queue, ap_perms.aqm)) rc = 1; - mutex_unlock(&ap_perms_mutex); - return rc; } EXPORT_SYMBOL(ap_owned_by_def_drv); +/** + * ap_apqn_in_matrix_owned_by_def_drv: indicates whether every APQN contained in + * a set is reserved for the host drivers + * or not. + * @apm: a bitmap specifying a set of APIDs comprising the APQNs to check + * @aqm: a bitmap specifying a set of APQIs comprising the APQNs to check + * + * Note: the ap_perms_mutex must be locked by the caller of this function. + * + * Return: an int specifying whether each APQN is reserved for the host (1) or + * not (0) + */ int ap_apqn_in_matrix_owned_by_def_drv(unsigned long *apm, unsigned long *aqm) { int card, queue, rc = 0; - mutex_lock(&ap_perms_mutex); - for (card = 0; !rc && card < AP_DEVICES; card++) if (test_bit_inv(card, apm) && test_bit_inv(card, ap_perms.apm)) @@ -869,8 +892,6 @@ test_bit_inv(queue, ap_perms.aqm)) rc = 1; - mutex_unlock(&ap_perms_mutex); - return rc; } EXPORT_SYMBOL(ap_apqn_in_matrix_owned_by_def_drv); @@ -2068,6 +2089,9 @@ */ static bool ap_get_configuration(void) { + if (!ap_qci_info) /* QCI not supported */ + return false; + memcpy(ap_qci_info_old, ap_qci_info, sizeof(*ap_qci_info)); ap_fetch_qci_info(ap_qci_info); --- linux-5.19.0.orig/drivers/s390/crypto/ap_bus.h +++ linux-5.19.0/drivers/s390/crypto/ap_bus.h @@ -148,12 +148,16 @@ /* * Called at the start of the ap bus scan function when * the crypto config information (qci) has changed. + * This callback is not invoked if there is no AP + * QCI support available. */ void (*on_config_changed)(struct ap_config_info *new_config_info, struct ap_config_info *old_config_info); /* * Called at the end of the ap bus scan function when * the crypto config information (qci) has changed. + * This callback is not invoked if there is no AP + * QCI support available. */ void (*on_scan_complete)(struct ap_config_info *new_config_info, struct ap_config_info *old_config_info); --- linux-5.19.0.orig/drivers/s390/crypto/vfio_ap_drv.c +++ linux-5.19.0/drivers/s390/crypto/vfio_ap_drv.c @@ -18,9 +18,6 @@ #define VFIO_AP_ROOT_NAME "vfio_ap" #define VFIO_AP_DEV_NAME "matrix" -#define AP_QUEUE_ASSIGNED "assigned" -#define AP_QUEUE_UNASSIGNED "unassigned" -#define AP_QUEUE_IN_USE "in use" MODULE_AUTHOR("IBM Corporation"); MODULE_DESCRIPTION("VFIO AP device driver, Copyright IBM Corp. 2018"); @@ -46,120 +43,12 @@ { /* end of sibling */ }, }; -static struct ap_matrix_mdev *vfio_ap_mdev_for_queue(struct vfio_ap_queue *q) -{ - struct ap_matrix_mdev *matrix_mdev; - unsigned long apid = AP_QID_CARD(q->apqn); - unsigned long apqi = AP_QID_QUEUE(q->apqn); - - list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { - if (test_bit_inv(apid, matrix_mdev->matrix.apm) && - test_bit_inv(apqi, matrix_mdev->matrix.aqm)) - return matrix_mdev; - } - - return NULL; -} - -static ssize_t status_show(struct device *dev, - struct device_attribute *attr, - char *buf) -{ - ssize_t nchars = 0; - struct vfio_ap_queue *q; - struct ap_matrix_mdev *matrix_mdev; - struct ap_device *apdev = to_ap_dev(dev); - - mutex_lock(&matrix_dev->lock); - q = dev_get_drvdata(&apdev->device); - matrix_mdev = vfio_ap_mdev_for_queue(q); - - if (matrix_mdev) { - if (matrix_mdev->kvm) - nchars = scnprintf(buf, PAGE_SIZE, "%s\n", - AP_QUEUE_IN_USE); - else - nchars = scnprintf(buf, PAGE_SIZE, "%s\n", - AP_QUEUE_ASSIGNED); - } else { - nchars = scnprintf(buf, PAGE_SIZE, "%s\n", - AP_QUEUE_UNASSIGNED); - } - - mutex_unlock(&matrix_dev->lock); - - return nchars; -} - -static DEVICE_ATTR_RO(status); - -static struct attribute *vfio_queue_attrs[] = { - &dev_attr_status.attr, - NULL, -}; - -static const struct attribute_group vfio_queue_attr_group = { - .attrs = vfio_queue_attrs, -}; - -/** - * vfio_ap_queue_dev_probe: Allocate a vfio_ap_queue structure and associate it - * with the device as driver_data. - * - * @apdev: the AP device being probed - * - * Return: returns 0 if the probe succeeded; otherwise, returns an error if - * storage could not be allocated for a vfio_ap_queue object or the - * sysfs 'status' attribute could not be created for the queue device. - */ -static int vfio_ap_queue_dev_probe(struct ap_device *apdev) -{ - int ret; - struct vfio_ap_queue *q; - - q = kzalloc(sizeof(*q), GFP_KERNEL); - if (!q) - return -ENOMEM; - - mutex_lock(&matrix_dev->lock); - dev_set_drvdata(&apdev->device, q); - q->apqn = to_ap_queue(&apdev->device)->qid; - q->saved_isc = VFIO_AP_ISC_INVALID; - - ret = sysfs_create_group(&apdev->device.kobj, &vfio_queue_attr_group); - if (ret) { - dev_set_drvdata(&apdev->device, NULL); - kfree(q); - } - - mutex_unlock(&matrix_dev->lock); - - return ret; -} - -/** - * vfio_ap_queue_dev_remove: Free the associated vfio_ap_queue structure. - * - * @apdev: the AP device being removed - * - * Takes the matrix lock to avoid actions on this device while doing the remove. - */ -static void vfio_ap_queue_dev_remove(struct ap_device *apdev) -{ - struct vfio_ap_queue *q; - - mutex_lock(&matrix_dev->lock); - sysfs_remove_group(&apdev->device.kobj, &vfio_queue_attr_group); - q = dev_get_drvdata(&apdev->device); - vfio_ap_mdev_reset_queue(q, 1); - dev_set_drvdata(&apdev->device, NULL); - kfree(q); - mutex_unlock(&matrix_dev->lock); -} - static struct ap_driver vfio_ap_drv = { - .probe = vfio_ap_queue_dev_probe, - .remove = vfio_ap_queue_dev_remove, + .probe = vfio_ap_mdev_probe_queue, + .remove = vfio_ap_mdev_remove_queue, + .in_use = vfio_ap_mdev_resource_in_use, + .on_config_changed = vfio_ap_on_cfg_changed, + .on_scan_complete = vfio_ap_on_scan_complete, .ids = ap_queue_ids, }; @@ -212,8 +101,9 @@ goto matrix_alloc_err; } - mutex_init(&matrix_dev->lock); + mutex_init(&matrix_dev->mdevs_lock); INIT_LIST_HEAD(&matrix_dev->mdev_list); + mutex_init(&matrix_dev->guests_lock); dev_set_name(&matrix_dev->device, "%s", VFIO_AP_DEV_NAME); matrix_dev->device.parent = root_device; --- linux-5.19.0.orig/drivers/s390/crypto/vfio_ap_ops.c +++ linux-5.19.0/drivers/s390/crypto/vfio_ap_ops.c @@ -26,44 +26,193 @@ #define VFIO_AP_MDEV_TYPE_HWVIRT "passthrough" #define VFIO_AP_MDEV_NAME_HWVIRT "VFIO AP Passthrough Device" -static int vfio_ap_mdev_reset_queues(struct ap_matrix_mdev *matrix_mdev); +#define AP_QUEUE_ASSIGNED "assigned" +#define AP_QUEUE_UNASSIGNED "unassigned" +#define AP_QUEUE_IN_USE "in use" + +static int vfio_ap_mdev_reset_queues(struct ap_queue_table *qtable); static struct vfio_ap_queue *vfio_ap_find_queue(int apqn); static const struct vfio_device_ops vfio_ap_matrix_dev_ops; +static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q, unsigned int retry); -static int match_apqn(struct device *dev, const void *data) +/** + * get_update_locks_for_kvm: Acquire the locks required to dynamically update a + * KVM guest's APCB in the proper order. + * + * @kvm: a pointer to a struct kvm object containing the KVM guest's APCB. + * + * The proper locking order is: + * 1. matrix_dev->guests_lock: required to use the KVM pointer to update a KVM + * guest's APCB. + * 2. kvm->lock: required to update a guest's APCB + * 3. matrix_dev->mdevs_lock: required to access data stored in a matrix_mdev + * + * Note: If @kvm is NULL, the KVM lock will not be taken. + */ +static inline void get_update_locks_for_kvm(struct kvm *kvm) { - struct vfio_ap_queue *q = dev_get_drvdata(dev); + mutex_lock(&matrix_dev->guests_lock); + if (kvm) + mutex_lock(&kvm->lock); + mutex_lock(&matrix_dev->mdevs_lock); +} - return (q->apqn == *(int *)(data)) ? 1 : 0; +/** + * release_update_locks_for_kvm: Release the locks used to dynamically update a + * KVM guest's APCB in the proper order. + * + * @kvm: a pointer to a struct kvm object containing the KVM guest's APCB. + * + * The proper unlocking order is: + * 1. matrix_dev->mdevs_lock + * 2. kvm->lock + * 3. matrix_dev->guests_lock + * + * Note: If @kvm is NULL, the KVM lock will not be released. + */ +static inline void release_update_locks_for_kvm(struct kvm *kvm) +{ + mutex_unlock(&matrix_dev->mdevs_lock); + if (kvm) + mutex_unlock(&kvm->lock); + mutex_unlock(&matrix_dev->guests_lock); +} + +/** + * get_update_locks_for_mdev: Acquire the locks required to dynamically update a + * KVM guest's APCB in the proper order. + * + * @matrix_mdev: a pointer to a struct ap_matrix_mdev object containing the AP + * configuration data to use to update a KVM guest's APCB. + * + * The proper locking order is: + * 1. matrix_dev->guests_lock: required to use the KVM pointer to update a KVM + * guest's APCB. + * 2. matrix_mdev->kvm->lock: required to update a guest's APCB + * 3. matrix_dev->mdevs_lock: required to access data stored in a matrix_mdev + * + * Note: If @matrix_mdev is NULL or is not attached to a KVM guest, the KVM + * lock will not be taken. + */ +static inline void get_update_locks_for_mdev(struct ap_matrix_mdev *matrix_mdev) +{ + mutex_lock(&matrix_dev->guests_lock); + if (matrix_mdev && matrix_mdev->kvm) + mutex_lock(&matrix_mdev->kvm->lock); + mutex_lock(&matrix_dev->mdevs_lock); +} + +/** + * release_update_locks_for_mdev: Release the locks used to dynamically update a + * KVM guest's APCB in the proper order. + * + * @matrix_mdev: a pointer to a struct ap_matrix_mdev object containing the AP + * configuration data to use to update a KVM guest's APCB. + * + * The proper unlocking order is: + * 1. matrix_dev->mdevs_lock + * 2. matrix_mdev->kvm->lock + * 3. matrix_dev->guests_lock + * + * Note: If @matrix_mdev is NULL or is not attached to a KVM guest, the KVM + * lock will not be released. + */ +static inline void release_update_locks_for_mdev(struct ap_matrix_mdev *matrix_mdev) +{ + mutex_unlock(&matrix_dev->mdevs_lock); + if (matrix_mdev && matrix_mdev->kvm) + mutex_unlock(&matrix_mdev->kvm->lock); + mutex_unlock(&matrix_dev->guests_lock); } /** - * vfio_ap_get_queue - retrieve a queue with a specific APQN from a list - * @matrix_mdev: the associated mediated matrix - * @apqn: The queue APQN + * get_update_locks_by_apqn: Find the mdev to which an APQN is assigned and + * acquire the locks required to update the APCB of + * the KVM guest to which the mdev is attached. + * + * @apqn: the APQN of a queue device. + * + * The proper locking order is: + * 1. matrix_dev->guests_lock: required to use the KVM pointer to update a KVM + * guest's APCB. + * 2. matrix_mdev->kvm->lock: required to update a guest's APCB + * 3. matrix_dev->mdevs_lock: required to access data stored in a matrix_mdev * - * Retrieve a queue with a specific APQN from the list of the - * devices of the vfio_ap_drv. - * Verify that the APID and the APQI are set in the matrix. + * Note: If @apqn is not assigned to a matrix_mdev, the matrix_mdev->kvm->lock + * will not be taken. * - * Return: the pointer to the associated vfio_ap_queue + * Return: the ap_matrix_mdev object to which @apqn is assigned or NULL if @apqn + * is not assigned to an ap_matrix_mdev. */ -static struct vfio_ap_queue *vfio_ap_get_queue( +static struct ap_matrix_mdev *get_update_locks_by_apqn(int apqn) +{ + struct ap_matrix_mdev *matrix_mdev; + + mutex_lock(&matrix_dev->guests_lock); + + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + if (test_bit_inv(AP_QID_CARD(apqn), matrix_mdev->matrix.apm) && + test_bit_inv(AP_QID_QUEUE(apqn), matrix_mdev->matrix.aqm)) { + if (matrix_mdev->kvm) + mutex_lock(&matrix_mdev->kvm->lock); + + mutex_lock(&matrix_dev->mdevs_lock); + + return matrix_mdev; + } + } + + mutex_lock(&matrix_dev->mdevs_lock); + + return NULL; +} + +/** + * get_update_locks_for_queue: get the locks required to update the APCB of the + * KVM guest to which the matrix mdev linked to a + * vfio_ap_queue object is attached. + * + * @q: a pointer to a vfio_ap_queue object. + * + * The proper locking order is: + * 1. q->matrix_dev->guests_lock: required to use the KVM pointer to update a + * KVM guest's APCB. + * 2. q->matrix_mdev->kvm->lock: required to update a guest's APCB + * 3. matrix_dev->mdevs_lock: required to access data stored in matrix_mdev + * + * Note: if @queue is not linked to an ap_matrix_mdev object, the KVM lock + * will not be taken. + */ +static inline void get_update_locks_for_queue(struct vfio_ap_queue *q) +{ + mutex_lock(&matrix_dev->guests_lock); + if (q->matrix_mdev && q->matrix_mdev->kvm) + mutex_lock(&q->matrix_mdev->kvm->lock); + mutex_lock(&matrix_dev->mdevs_lock); +} + +/** + * vfio_ap_mdev_get_queue - retrieve a queue with a specific APQN from a + * hash table of queues assigned to a matrix mdev + * @matrix_mdev: the matrix mdev + * @apqn: The APQN of a queue device + * + * Return: the pointer to the vfio_ap_queue struct representing the queue or + * NULL if the queue is not assigned to @matrix_mdev + */ +static struct vfio_ap_queue *vfio_ap_mdev_get_queue( struct ap_matrix_mdev *matrix_mdev, int apqn) { struct vfio_ap_queue *q; - 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; - - q = vfio_ap_find_queue(apqn); - if (q) - q->matrix_mdev = matrix_mdev; + hash_for_each_possible(matrix_mdev->qtable.queues, q, mdev_qnode, + apqn) { + if (q && q->apqn == apqn) + return q; + } - return q; + return NULL; } /** @@ -180,7 +329,6 @@ status.response_code); end_free: vfio_ap_free_aqic_resources(q); - q->matrix_mdev = NULL; return status; } @@ -406,10 +554,12 @@ return -EOPNOTSUPP; } - mutex_lock(&matrix_dev->lock); + mutex_lock(&matrix_dev->mdevs_lock); + if (!vcpu->kvm->arch.crypto.pqap_hook) { VFIO_AP_DBF_WARN("%s: PQAP(AQIC) hook not registered with the vfio_ap driver: apqn=0x%04x\n", __func__, apqn); + goto out_unlock; } @@ -425,7 +575,7 @@ goto out_unlock; } - q = vfio_ap_get_queue(matrix_mdev, apqn); + q = vfio_ap_mdev_get_queue(matrix_mdev, apqn); if (!q) { VFIO_AP_DBF_WARN("%s: Queue %02x.%04x not bound to the vfio_ap driver\n", __func__, AP_QID_CARD(apqn), @@ -444,7 +594,7 @@ out_unlock: memcpy(&vcpu->run->s.regs.gprs[1], &qstatus, sizeof(qstatus)); vcpu->run->s.regs.gprs[1] >>= 32; - mutex_unlock(&matrix_dev->lock); + mutex_unlock(&matrix_dev->mdevs_lock); return 0; } @@ -456,6 +606,91 @@ matrix->adm_max = info->apxa ? info->Nd : 15; } +static void vfio_ap_mdev_update_guest_apcb(struct ap_matrix_mdev *matrix_mdev) +{ + if (matrix_mdev->kvm) + kvm_arch_crypto_set_masks(matrix_mdev->kvm, + matrix_mdev->shadow_apcb.apm, + matrix_mdev->shadow_apcb.aqm, + matrix_mdev->shadow_apcb.adm); +} + +static bool vfio_ap_mdev_filter_cdoms(struct ap_matrix_mdev *matrix_mdev) +{ + DECLARE_BITMAP(prev_shadow_adm, AP_DOMAINS); + + bitmap_copy(prev_shadow_adm, matrix_mdev->shadow_apcb.adm, AP_DOMAINS); + bitmap_and(matrix_mdev->shadow_apcb.adm, matrix_mdev->matrix.adm, + (unsigned long *)matrix_dev->info.adm, AP_DOMAINS); + + return !bitmap_equal(prev_shadow_adm, matrix_mdev->shadow_apcb.adm, + AP_DOMAINS); +} + +/* + * vfio_ap_mdev_filter_matrix - filter the APQNs assigned to the matrix mdev + * to ensure no queue devices are passed through to + * the guest that are not bound to the vfio_ap + * device driver. + * + * @matrix_mdev: the matrix mdev whose matrix is to be filtered. + * + * Note: If an APQN referencing a queue device that is not bound to the vfio_ap + * driver, its APID will be filtered from the guest's APCB. The matrix + * structure precludes filtering an individual APQN, so its APID will be + * filtered. + * + * Return: a boolean value indicating whether the KVM guest's APCB was changed + * by the filtering or not. + */ +static bool vfio_ap_mdev_filter_matrix(unsigned long *apm, unsigned long *aqm, + struct ap_matrix_mdev *matrix_mdev) +{ + unsigned long apid, apqi, apqn; + DECLARE_BITMAP(prev_shadow_apm, AP_DEVICES); + DECLARE_BITMAP(prev_shadow_aqm, AP_DOMAINS); + struct vfio_ap_queue *q; + + bitmap_copy(prev_shadow_apm, matrix_mdev->shadow_apcb.apm, AP_DEVICES); + bitmap_copy(prev_shadow_aqm, matrix_mdev->shadow_apcb.aqm, AP_DOMAINS); + vfio_ap_matrix_init(&matrix_dev->info, &matrix_mdev->shadow_apcb); + + /* + * Copy the adapters, domains and control domains to the shadow_apcb + * from the matrix mdev, but only those that are assigned to the host's + * AP configuration. + */ + bitmap_and(matrix_mdev->shadow_apcb.apm, matrix_mdev->matrix.apm, + (unsigned long *)matrix_dev->info.apm, AP_DEVICES); + bitmap_and(matrix_mdev->shadow_apcb.aqm, matrix_mdev->matrix.aqm, + (unsigned long *)matrix_dev->info.aqm, AP_DOMAINS); + + for_each_set_bit_inv(apid, apm, AP_DEVICES) { + for_each_set_bit_inv(apqi, aqm, AP_DOMAINS) { + /* + * If the APQN is not bound to the vfio_ap device + * driver, then we can't assign it to the guest's + * AP configuration. The AP architecture won't + * allow filtering of a single APQN, so let's filter + * the APID since an adapter represents a physical + * hardware device. + */ + apqn = AP_MKQID(apid, apqi); + q = vfio_ap_mdev_get_queue(matrix_mdev, apqn); + if (!q || q->reset_rc) { + clear_bit_inv(apid, + matrix_mdev->shadow_apcb.apm); + break; + } + } + } + + return !bitmap_equal(prev_shadow_apm, matrix_mdev->shadow_apcb.apm, + AP_DEVICES) || + !bitmap_equal(prev_shadow_aqm, matrix_mdev->shadow_apcb.aqm, + AP_DOMAINS); +} + static int vfio_ap_mdev_probe(struct mdev_device *mdev) { struct ap_matrix_mdev *matrix_mdev; @@ -475,20 +710,19 @@ matrix_mdev->mdev = mdev; vfio_ap_matrix_init(&matrix_dev->info, &matrix_mdev->matrix); matrix_mdev->pqap_hook = handle_pqap; - mutex_lock(&matrix_dev->lock); - list_add(&matrix_mdev->node, &matrix_dev->mdev_list); - mutex_unlock(&matrix_dev->lock); + vfio_ap_matrix_init(&matrix_dev->info, &matrix_mdev->shadow_apcb); + hash_init(matrix_mdev->qtable.queues); ret = vfio_register_emulated_iommu_dev(&matrix_mdev->vdev); if (ret) goto err_list; dev_set_drvdata(&mdev->dev, matrix_mdev); + mutex_lock(&matrix_dev->mdevs_lock); + list_add(&matrix_mdev->node, &matrix_dev->mdev_list); + mutex_unlock(&matrix_dev->mdevs_lock); return 0; err_list: - mutex_lock(&matrix_dev->lock); - list_del(&matrix_mdev->node); - mutex_unlock(&matrix_dev->lock); vfio_uninit_group_dev(&matrix_mdev->vdev); kfree(matrix_mdev); err_dec_available: @@ -496,16 +730,62 @@ return ret; } +static void vfio_ap_mdev_link_queue(struct ap_matrix_mdev *matrix_mdev, + struct vfio_ap_queue *q) +{ + if (q) { + q->matrix_mdev = matrix_mdev; + hash_add(matrix_mdev->qtable.queues, &q->mdev_qnode, q->apqn); + } +} + +static void vfio_ap_mdev_link_apqn(struct ap_matrix_mdev *matrix_mdev, int apqn) +{ + struct vfio_ap_queue *q; + + q = vfio_ap_find_queue(apqn); + vfio_ap_mdev_link_queue(matrix_mdev, q); +} + +static void vfio_ap_unlink_queue_fr_mdev(struct vfio_ap_queue *q) +{ + hash_del(&q->mdev_qnode); +} + +static void vfio_ap_unlink_mdev_fr_queue(struct vfio_ap_queue *q) +{ + q->matrix_mdev = NULL; +} + +static void vfio_ap_mdev_unlink_fr_queues(struct ap_matrix_mdev *matrix_mdev) +{ + struct vfio_ap_queue *q; + unsigned long apid, apqi; + + for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, AP_DEVICES) { + for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, + AP_DOMAINS) { + q = vfio_ap_mdev_get_queue(matrix_mdev, + AP_MKQID(apid, apqi)); + if (q) + q->matrix_mdev = NULL; + } + } +} + static void vfio_ap_mdev_remove(struct mdev_device *mdev) { struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(&mdev->dev); vfio_unregister_group_dev(&matrix_mdev->vdev); - mutex_lock(&matrix_dev->lock); - vfio_ap_mdev_reset_queues(matrix_mdev); + mutex_lock(&matrix_dev->guests_lock); + mutex_lock(&matrix_dev->mdevs_lock); + vfio_ap_mdev_reset_queues(&matrix_mdev->qtable); + vfio_ap_mdev_unlink_fr_queues(matrix_mdev); list_del(&matrix_mdev->node); - mutex_unlock(&matrix_dev->lock); + mutex_unlock(&matrix_dev->mdevs_lock); + mutex_unlock(&matrix_dev->guests_lock); vfio_uninit_group_dev(&matrix_mdev->vdev); kfree(matrix_mdev); atomic_inc(&matrix_dev->available_instances); @@ -554,141 +834,48 @@ NULL, }; -struct vfio_ap_queue_reserved { - unsigned long *apid; - unsigned long *apqi; - bool reserved; -}; +#define MDEV_SHARING_ERR "Userspace may not re-assign queue %02lx.%04lx " \ + "already assigned to %s" -/** - * vfio_ap_has_queue - determines if the AP queue containing the target in @data - * - * @dev: an AP queue device - * @data: a struct vfio_ap_queue_reserved reference - * - * Flags whether the AP queue device (@dev) has a queue ID containing the APQN, - * apid or apqi specified in @data: - * - * - If @data contains both an apid and apqi value, then @data will be flagged - * as reserved if the APID and APQI fields for the AP queue device matches - * - * - If @data contains only an apid value, @data will be flagged as - * reserved if the APID field in the AP queue device matches - * - * - If @data contains only an apqi value, @data will be flagged as - * reserved if the APQI field in the AP queue device matches - * - * Return: 0 to indicate the input to function succeeded. Returns -EINVAL if - * @data does not contain either an apid or apqi. - */ -static int vfio_ap_has_queue(struct device *dev, void *data) -{ - struct vfio_ap_queue_reserved *qres = data; - struct ap_queue *ap_queue = to_ap_queue(dev); - ap_qid_t qid; - unsigned long id; - - if (qres->apid && qres->apqi) { - qid = AP_MKQID(*qres->apid, *qres->apqi); - if (qid == ap_queue->qid) - qres->reserved = true; - } else if (qres->apid && !qres->apqi) { - id = AP_QID_CARD(ap_queue->qid); - if (id == *qres->apid) - qres->reserved = true; - } else if (!qres->apid && qres->apqi) { - id = AP_QID_QUEUE(ap_queue->qid); - if (id == *qres->apqi) - qres->reserved = true; - } else { - return -EINVAL; - } - - return 0; -} - -/** - * vfio_ap_verify_queue_reserved - verifies that the AP queue containing - * @apid or @aqpi is reserved - * - * @apid: an AP adapter ID - * @apqi: an AP queue index - * - * Verifies that the AP queue with @apid/@apqi is reserved by the VFIO AP device - * driver according to the following rules: - * - * - If both @apid and @apqi are not NULL, then there must be an AP queue - * device bound to the vfio_ap driver with the APQN identified by @apid and - * @apqi - * - * - If only @apid is not NULL, then there must be an AP queue device bound - * to the vfio_ap driver with an APQN containing @apid - * - * - If only @apqi is not NULL, then there must be an AP queue device bound - * to the vfio_ap driver with an APQN containing @apqi - * - * Return: 0 if the AP queue is reserved; otherwise, returns -EADDRNOTAVAIL. - */ -static int vfio_ap_verify_queue_reserved(unsigned long *apid, - unsigned long *apqi) -{ - int ret; - struct vfio_ap_queue_reserved qres; - - qres.apid = apid; - qres.apqi = apqi; - qres.reserved = false; - - ret = driver_for_each_device(&matrix_dev->vfio_ap_drv->driver, NULL, - &qres, vfio_ap_has_queue); - if (ret) - return ret; - - if (qres.reserved) - return 0; - - return -EADDRNOTAVAIL; -} - -static int -vfio_ap_mdev_verify_queues_reserved_for_apid(struct ap_matrix_mdev *matrix_mdev, - unsigned long apid) +static void vfio_ap_mdev_log_sharing_err(struct ap_matrix_mdev *matrix_mdev, + unsigned long *apm, + unsigned long *aqm) { - int ret; - unsigned long apqi; - unsigned long nbits = matrix_mdev->matrix.aqm_max + 1; - - if (find_first_bit_inv(matrix_mdev->matrix.aqm, nbits) >= nbits) - return vfio_ap_verify_queue_reserved(&apid, NULL); - - for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, nbits) { - ret = vfio_ap_verify_queue_reserved(&apid, &apqi); - if (ret) - return ret; - } + unsigned long apid, apqi; + const struct device *dev = mdev_dev(matrix_mdev->mdev); + const char *mdev_name = dev_name(dev); - return 0; + for_each_set_bit_inv(apid, apm, AP_DEVICES) + for_each_set_bit_inv(apqi, aqm, AP_DOMAINS) + dev_warn(dev, MDEV_SHARING_ERR, apid, apqi, mdev_name); } /** - * vfio_ap_mdev_verify_no_sharing - verifies that the AP matrix is not configured + * vfio_ap_mdev_verify_no_sharing - verify APQNs are not shared by matrix mdevs * - * @matrix_mdev: the mediated matrix device + * @mdev_apm: mask indicating the APIDs of the APQNs to be verified + * @mdev_aqm: mask indicating the APQIs of the APQNs to be verified * - * Verifies that the APQNs derived from the cross product of the AP adapter IDs - * and AP queue indexes comprising the AP matrix are not configured for another + * Verifies that each APQN derived from the Cartesian product of a bitmap of + * AP adapter IDs and AP queue indexes is not configured for any matrix * mediated device. AP queue sharing is not allowed. * - * Return: 0 if the APQNs are not shared; otherwise returns -EADDRINUSE. + * Return: 0 if the APQNs are not shared; otherwise return -EADDRINUSE. */ -static int vfio_ap_mdev_verify_no_sharing(struct ap_matrix_mdev *matrix_mdev) +static int vfio_ap_mdev_verify_no_sharing(unsigned long *mdev_apm, + unsigned long *mdev_aqm) { - struct ap_matrix_mdev *lstdev; + struct ap_matrix_mdev *matrix_mdev; DECLARE_BITMAP(apm, AP_DEVICES); DECLARE_BITMAP(aqm, AP_DOMAINS); - list_for_each_entry(lstdev, &matrix_dev->mdev_list, node) { - if (matrix_mdev == lstdev) + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + /* + * If the input apm and aqm are fields of the matrix_mdev + * object, then move on to the next matrix_mdev. + */ + if (mdev_apm == matrix_mdev->matrix.apm && + mdev_aqm == matrix_mdev->matrix.aqm) continue; memset(apm, 0, sizeof(apm)); @@ -698,14 +885,16 @@ * We work on full longs, as we can only exclude the leftover * bits in non-inverse order. The leftover is all zeros. */ - if (!bitmap_and(apm, matrix_mdev->matrix.apm, - lstdev->matrix.apm, AP_DEVICES)) + if (!bitmap_and(apm, mdev_apm, matrix_mdev->matrix.apm, + AP_DEVICES)) continue; - if (!bitmap_and(aqm, matrix_mdev->matrix.aqm, - lstdev->matrix.aqm, AP_DOMAINS)) + if (!bitmap_and(aqm, mdev_aqm, matrix_mdev->matrix.aqm, + AP_DOMAINS)) continue; + vfio_ap_mdev_log_sharing_err(matrix_mdev, apm, aqm); + return -EADDRINUSE; } @@ -713,6 +902,41 @@ } /** + * vfio_ap_mdev_validate_masks - verify that the APQNs assigned to the mdev are + * not reserved for the default zcrypt driver and + * are not assigned to another mdev. + * + * @matrix_mdev: the mdev to which the APQNs being validated are assigned. + * + * Return: One of the following values: + * o the error returned from the ap_apqn_in_matrix_owned_by_def_drv() function, + * most likely -EBUSY indicating the ap_perms_mutex lock is already held. + * o EADDRNOTAVAIL if an APQN assigned to @matrix_mdev is reserved for the + * zcrypt default driver. + * o EADDRINUSE if an APQN assigned to @matrix_mdev is assigned to another mdev + * o A zero indicating validation succeeded. + */ +static int vfio_ap_mdev_validate_masks(struct ap_matrix_mdev *matrix_mdev) +{ + if (ap_apqn_in_matrix_owned_by_def_drv(matrix_mdev->matrix.apm, + matrix_mdev->matrix.aqm)) + return -EADDRNOTAVAIL; + + return vfio_ap_mdev_verify_no_sharing(matrix_mdev->matrix.apm, + matrix_mdev->matrix.aqm); +} + +static void vfio_ap_mdev_link_adapter(struct ap_matrix_mdev *matrix_mdev, + unsigned long apid) +{ + unsigned long apqi; + + for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, AP_DOMAINS) + vfio_ap_mdev_link_apqn(matrix_mdev, + AP_MKQID(apid, apqi)); +} + +/** * assign_adapter_store - parses the APID from @buf and sets the * corresponding bit in the mediated matrix device's APM * @@ -741,6 +965,10 @@ * An APQN derived from the cross product of the APID being assigned * and the APQIs previously assigned is being used by another mediated * matrix device + * + * 5. -EAGAIN + * A lock required to validate the mdev's AP configuration could not + * be obtained. */ static ssize_t assign_adapter_store(struct device *dev, struct device_attribute *attr, @@ -748,15 +976,11 @@ { int ret; unsigned long apid; + DECLARE_BITMAP(apm_delta, AP_DEVICES); struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - mutex_lock(&matrix_dev->lock); - - /* If the KVM guest is running, disallow assignment of adapter */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + mutex_lock(&ap_perms_mutex); + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &apid); if (ret) @@ -767,33 +991,97 @@ goto done; } - /* - * Set the bit in the AP mask (APM) corresponding to the AP adapter - * number (APID). The bits in the mask, from most significant to least - * significant bit, correspond to APIDs 0-255. - */ - ret = vfio_ap_mdev_verify_queues_reserved_for_apid(matrix_mdev, apid); - if (ret) - goto done; - set_bit_inv(apid, matrix_mdev->matrix.apm); - ret = vfio_ap_mdev_verify_no_sharing(matrix_mdev); - if (ret) - goto share_err; + ret = vfio_ap_mdev_validate_masks(matrix_mdev); + if (ret) { + clear_bit_inv(apid, matrix_mdev->matrix.apm); + goto done; + } - ret = count; - goto done; + vfio_ap_mdev_link_adapter(matrix_mdev, apid); + memset(apm_delta, 0, sizeof(apm_delta)); + set_bit_inv(apid, apm_delta); + + if (vfio_ap_mdev_filter_matrix(apm_delta, + matrix_mdev->matrix.aqm, matrix_mdev)) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); -share_err: - clear_bit_inv(apid, matrix_mdev->matrix.apm); + ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); + mutex_unlock(&ap_perms_mutex); return ret; } static DEVICE_ATTR_WO(assign_adapter); +static struct vfio_ap_queue +*vfio_ap_unlink_apqn_fr_mdev(struct ap_matrix_mdev *matrix_mdev, + unsigned long apid, unsigned long apqi) +{ + struct vfio_ap_queue *q = NULL; + + q = vfio_ap_mdev_get_queue(matrix_mdev, AP_MKQID(apid, apqi)); + /* If the queue is assigned to the matrix mdev, unlink it. */ + if (q) + vfio_ap_unlink_queue_fr_mdev(q); + + return q; +} + +/** + * vfio_ap_mdev_unlink_adapter - unlink all queues associated with unassigned + * adapter from the matrix mdev to which the + * adapter was assigned. + * @matrix_mdev: the matrix mediated device to which the adapter was assigned. + * @apid: the APID of the unassigned adapter. + * @qtable: table for storing queues associated with unassigned adapter. + */ +static void vfio_ap_mdev_unlink_adapter(struct ap_matrix_mdev *matrix_mdev, + unsigned long apid, + struct ap_queue_table *qtable) +{ + unsigned long apqi; + struct vfio_ap_queue *q; + + for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, AP_DOMAINS) { + q = vfio_ap_unlink_apqn_fr_mdev(matrix_mdev, apid, apqi); + + if (q && qtable) { + if (test_bit_inv(apid, matrix_mdev->shadow_apcb.apm) && + test_bit_inv(apqi, matrix_mdev->shadow_apcb.aqm)) + hash_add(qtable->queues, &q->mdev_qnode, + q->apqn); + } + } +} + +static void vfio_ap_mdev_hot_unplug_adapter(struct ap_matrix_mdev *matrix_mdev, + unsigned long apid) +{ + int loop_cursor; + struct vfio_ap_queue *q; + struct ap_queue_table *qtable = kzalloc(sizeof(*qtable), GFP_KERNEL); + + hash_init(qtable->queues); + vfio_ap_mdev_unlink_adapter(matrix_mdev, apid, qtable); + + if (test_bit_inv(apid, matrix_mdev->shadow_apcb.apm)) { + clear_bit_inv(apid, matrix_mdev->shadow_apcb.apm); + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + } + + vfio_ap_mdev_reset_queues(qtable); + + hash_for_each(qtable->queues, loop_cursor, q, mdev_qnode) { + vfio_ap_unlink_mdev_fr_queue(q); + hash_del(&q->mdev_qnode); + } + + kfree(qtable); +} + /** * unassign_adapter_store - parses the APID from @buf and clears the * corresponding bit in the mediated matrix device's APM @@ -817,13 +1105,7 @@ unsigned long apid; struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - mutex_lock(&matrix_dev->lock); - - /* If the KVM guest is running, disallow unassignment of adapter */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &apid); if (ret) @@ -835,31 +1117,22 @@ } clear_bit_inv((unsigned long)apid, matrix_mdev->matrix.apm); + vfio_ap_mdev_hot_unplug_adapter(matrix_mdev, apid); ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); return ret; } static DEVICE_ATTR_WO(unassign_adapter); -static int -vfio_ap_mdev_verify_queues_reserved_for_apqi(struct ap_matrix_mdev *matrix_mdev, - unsigned long apqi) +static void vfio_ap_mdev_link_domain(struct ap_matrix_mdev *matrix_mdev, + unsigned long apqi) { - int ret; unsigned long apid; - unsigned long nbits = matrix_mdev->matrix.apm_max + 1; - - if (find_first_bit_inv(matrix_mdev->matrix.apm, nbits) >= nbits) - return vfio_ap_verify_queue_reserved(NULL, &apqi); - for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, nbits) { - ret = vfio_ap_verify_queue_reserved(&apid, &apqi); - if (ret) - return ret; - } - - return 0; + for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, AP_DEVICES) + vfio_ap_mdev_link_apqn(matrix_mdev, + AP_MKQID(apid, apqi)); } /** @@ -891,6 +1164,10 @@ * An APQN derived from the cross product of the APQI being assigned * and the APIDs previously assigned is being used by another mediated * matrix device + * + * 5. -EAGAIN + * The lock required to validate the mdev's AP configuration could not + * be obtained. */ static ssize_t assign_domain_store(struct device *dev, struct device_attribute *attr, @@ -898,47 +1175,89 @@ { int ret; unsigned long apqi; + DECLARE_BITMAP(aqm_delta, AP_DOMAINS); struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - unsigned long max_apqi = matrix_mdev->matrix.aqm_max; - - mutex_lock(&matrix_dev->lock); - /* If the KVM guest is running, disallow assignment of domain */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + mutex_lock(&ap_perms_mutex); + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &apqi); if (ret) goto done; - if (apqi > max_apqi) { + + if (apqi > matrix_mdev->matrix.aqm_max) { ret = -ENODEV; goto done; } - ret = vfio_ap_mdev_verify_queues_reserved_for_apqi(matrix_mdev, apqi); - if (ret) - goto done; - set_bit_inv(apqi, matrix_mdev->matrix.aqm); - ret = vfio_ap_mdev_verify_no_sharing(matrix_mdev); - if (ret) - goto share_err; + ret = vfio_ap_mdev_validate_masks(matrix_mdev); + if (ret) { + clear_bit_inv(apqi, matrix_mdev->matrix.aqm); + goto done; + } - ret = count; - goto done; + vfio_ap_mdev_link_domain(matrix_mdev, apqi); + memset(aqm_delta, 0, sizeof(aqm_delta)); + set_bit_inv(apqi, aqm_delta); + + if (vfio_ap_mdev_filter_matrix(matrix_mdev->matrix.apm, aqm_delta, + matrix_mdev)) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); -share_err: - clear_bit_inv(apqi, matrix_mdev->matrix.aqm); + ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); + mutex_unlock(&ap_perms_mutex); return ret; } static DEVICE_ATTR_WO(assign_domain); +static void vfio_ap_mdev_unlink_domain(struct ap_matrix_mdev *matrix_mdev, + unsigned long apqi, + struct ap_queue_table *qtable) +{ + unsigned long apid; + struct vfio_ap_queue *q; + + for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, AP_DEVICES) { + q = vfio_ap_unlink_apqn_fr_mdev(matrix_mdev, apid, apqi); + + if (q && qtable) { + if (test_bit_inv(apid, matrix_mdev->shadow_apcb.apm) && + test_bit_inv(apqi, matrix_mdev->shadow_apcb.aqm)) + hash_add(qtable->queues, &q->mdev_qnode, + q->apqn); + } + } +} + +static void vfio_ap_mdev_hot_unplug_domain(struct ap_matrix_mdev *matrix_mdev, + unsigned long apqi) +{ + int loop_cursor; + struct vfio_ap_queue *q; + struct ap_queue_table *qtable = kzalloc(sizeof(*qtable), GFP_KERNEL); + + hash_init(qtable->queues); + vfio_ap_mdev_unlink_domain(matrix_mdev, apqi, qtable); + + if (test_bit_inv(apqi, matrix_mdev->shadow_apcb.aqm)) { + clear_bit_inv(apqi, matrix_mdev->shadow_apcb.aqm); + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + } + + vfio_ap_mdev_reset_queues(qtable); + + hash_for_each(qtable->queues, loop_cursor, q, mdev_qnode) { + vfio_ap_unlink_mdev_fr_queue(q); + hash_del(&q->mdev_qnode); + } + + kfree(qtable); +} /** * unassign_domain_store - parses the APQI from @buf and clears the @@ -963,13 +1282,7 @@ unsigned long apqi; struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - mutex_lock(&matrix_dev->lock); - - /* If the KVM guest is running, disallow unassignment of domain */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &apqi); if (ret) @@ -981,10 +1294,11 @@ } clear_bit_inv((unsigned long)apqi, matrix_mdev->matrix.aqm); + vfio_ap_mdev_hot_unplug_domain(matrix_mdev, apqi); ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); return ret; } static DEVICE_ATTR_WO(unassign_domain); @@ -1011,13 +1325,7 @@ unsigned long id; struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - mutex_lock(&matrix_dev->lock); - - /* If the KVM guest is running, disallow assignment of control domain */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &id); if (ret) @@ -1034,9 +1342,12 @@ * number of control domains that can be assigned. */ set_bit_inv(id, matrix_mdev->matrix.adm); + if (vfio_ap_mdev_filter_cdoms(matrix_mdev)) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); return ret; } static DEVICE_ATTR_WO(assign_control_domain); @@ -1062,28 +1373,28 @@ int ret; unsigned long domid; struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); - unsigned long max_domid = matrix_mdev->matrix.adm_max; - mutex_lock(&matrix_dev->lock); - - /* If a KVM guest is running, disallow unassignment of control domain */ - if (matrix_mdev->kvm) { - ret = -EBUSY; - goto done; - } + get_update_locks_for_mdev(matrix_mdev); ret = kstrtoul(buf, 0, &domid); if (ret) goto done; - if (domid > max_domid) { + + if (domid > matrix_mdev->matrix.adm_max) { ret = -ENODEV; goto done; } clear_bit_inv(domid, matrix_mdev->matrix.adm); + + if (test_bit_inv(domid, matrix_mdev->shadow_apcb.adm)) { + clear_bit_inv(domid, matrix_mdev->shadow_apcb.adm); + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + } + ret = count; done: - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_mdev(matrix_mdev); return ret; } static DEVICE_ATTR_WO(unassign_control_domain); @@ -1099,40 +1410,36 @@ struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); unsigned long max_domid = matrix_mdev->matrix.adm_max; - mutex_lock(&matrix_dev->lock); + mutex_lock(&matrix_dev->mdevs_lock); for_each_set_bit_inv(id, matrix_mdev->matrix.adm, max_domid + 1) { n = sprintf(bufpos, "%04lx\n", id); bufpos += n; nchars += n; } - mutex_unlock(&matrix_dev->lock); + mutex_unlock(&matrix_dev->mdevs_lock); return nchars; } static DEVICE_ATTR_RO(control_domains); -static ssize_t matrix_show(struct device *dev, struct device_attribute *attr, - char *buf) +static ssize_t vfio_ap_mdev_matrix_show(struct ap_matrix *matrix, char *buf) { - struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); char *bufpos = buf; unsigned long apid; unsigned long apqi; unsigned long apid1; unsigned long apqi1; - unsigned long napm_bits = matrix_mdev->matrix.apm_max + 1; - unsigned long naqm_bits = matrix_mdev->matrix.aqm_max + 1; + unsigned long napm_bits = matrix->apm_max + 1; + unsigned long naqm_bits = matrix->aqm_max + 1; int nchars = 0; int n; - apid1 = find_first_bit_inv(matrix_mdev->matrix.apm, napm_bits); - apqi1 = find_first_bit_inv(matrix_mdev->matrix.aqm, naqm_bits); - - mutex_lock(&matrix_dev->lock); + apid1 = find_first_bit_inv(matrix->apm, napm_bits); + apqi1 = find_first_bit_inv(matrix->aqm, naqm_bits); if ((apid1 < napm_bits) && (apqi1 < naqm_bits)) { - for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, napm_bits) { - for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, + for_each_set_bit_inv(apid, matrix->apm, napm_bits) { + for_each_set_bit_inv(apqi, matrix->aqm, naqm_bits) { n = sprintf(bufpos, "%02lx.%04lx\n", apid, apqi); @@ -1141,25 +1448,50 @@ } } } else if (apid1 < napm_bits) { - for_each_set_bit_inv(apid, matrix_mdev->matrix.apm, napm_bits) { + for_each_set_bit_inv(apid, matrix->apm, napm_bits) { n = sprintf(bufpos, "%02lx.\n", apid); bufpos += n; nchars += n; } } else if (apqi1 < naqm_bits) { - for_each_set_bit_inv(apqi, matrix_mdev->matrix.aqm, naqm_bits) { + for_each_set_bit_inv(apqi, matrix->aqm, naqm_bits) { n = sprintf(bufpos, ".%04lx\n", apqi); bufpos += n; nchars += n; } } - mutex_unlock(&matrix_dev->lock); + return nchars; +} + +static ssize_t matrix_show(struct device *dev, struct device_attribute *attr, + char *buf) +{ + ssize_t nchars; + struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); + + mutex_lock(&matrix_dev->mdevs_lock); + nchars = vfio_ap_mdev_matrix_show(&matrix_mdev->matrix, buf); + mutex_unlock(&matrix_dev->mdevs_lock); return nchars; } static DEVICE_ATTR_RO(matrix); +static ssize_t guest_matrix_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + ssize_t nchars; + struct ap_matrix_mdev *matrix_mdev = dev_get_drvdata(dev); + + mutex_lock(&matrix_dev->mdevs_lock); + nchars = vfio_ap_mdev_matrix_show(&matrix_mdev->shadow_apcb, buf); + mutex_unlock(&matrix_dev->mdevs_lock); + + return nchars; +} +static DEVICE_ATTR_RO(guest_matrix); + static struct attribute *vfio_ap_mdev_attrs[] = { &dev_attr_assign_adapter.attr, &dev_attr_unassign_adapter.attr, @@ -1169,6 +1501,7 @@ &dev_attr_unassign_control_domain.attr, &dev_attr_control_domains.attr, &dev_attr_matrix.attr, + &dev_attr_guest_matrix.attr, NULL, }; @@ -1201,26 +1534,20 @@ kvm->arch.crypto.pqap_hook = &matrix_mdev->pqap_hook; up_write(&kvm->arch.crypto.pqap_hook_rwsem); - mutex_lock(&kvm->lock); - mutex_lock(&matrix_dev->lock); + get_update_locks_for_kvm(kvm); list_for_each_entry(m, &matrix_dev->mdev_list, node) { if (m != matrix_mdev && m->kvm == kvm) { - mutex_unlock(&kvm->lock); - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_kvm(kvm); return -EPERM; } } kvm_get_kvm(kvm); matrix_mdev->kvm = kvm; - kvm_arch_crypto_set_masks(kvm, - matrix_mdev->matrix.apm, - matrix_mdev->matrix.aqm, - matrix_mdev->matrix.adm); + vfio_ap_mdev_update_guest_apcb(matrix_mdev); - mutex_unlock(&kvm->lock); - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_kvm(kvm); } return 0; @@ -1271,36 +1598,36 @@ kvm->arch.crypto.pqap_hook = NULL; up_write(&kvm->arch.crypto.pqap_hook_rwsem); - mutex_lock(&kvm->lock); - mutex_lock(&matrix_dev->lock); + get_update_locks_for_kvm(kvm); kvm_arch_crypto_clear_masks(kvm); - vfio_ap_mdev_reset_queues(matrix_mdev); + vfio_ap_mdev_reset_queues(&matrix_mdev->qtable); kvm_put_kvm(kvm); matrix_mdev->kvm = NULL; - mutex_unlock(&kvm->lock); - mutex_unlock(&matrix_dev->lock); + release_update_locks_for_kvm(kvm); } } static struct vfio_ap_queue *vfio_ap_find_queue(int apqn) { - struct device *dev; + struct ap_queue *queue; 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); - put_device(dev); - } + queue = ap_get_qdev(apqn); + if (!queue) + return NULL; + + if (queue->ap_dev.device.driver == &matrix_dev->vfio_ap_drv->driver) + q = dev_get_drvdata(&queue->ap_dev.device); + + put_device(&queue->ap_dev.device); return q; } -int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q, - unsigned int retry) +static int vfio_ap_mdev_reset_queue(struct vfio_ap_queue *q, + unsigned int retry) { struct ap_queue_status status; int ret; @@ -1308,9 +1635,9 @@ if (!q) return 0; - retry_zapq: status = ap_zapq(q->apqn); + q->reset_rc = status.response_code; switch (status.response_code) { case AP_RESPONSE_NORMAL: ret = 0; @@ -1325,12 +1652,17 @@ case AP_RESPONSE_Q_NOT_AVAIL: case AP_RESPONSE_DECONFIGURED: case AP_RESPONSE_CHECKSTOPPED: - WARN_ON_ONCE(status.irq_enabled); + WARN_ONCE(status.irq_enabled, + "PQAP/ZAPQ for %02x.%04x failed with rc=%u while IRQ enabled", + AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn), + status.response_code); ret = -EBUSY; goto free_resources; default: /* things are really broken, give up */ - WARN(true, "PQAP/ZAPQ completed with invalid rc (%x)\n", + WARN(true, + "PQAP/ZAPQ for %02x.%04x failed with invalid rc=%u\n", + AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn), status.response_code); return -EIO; } @@ -1342,7 +1674,8 @@ msleep(20); status = ap_tapq(q->apqn, NULL); } - WARN_ON_ONCE(retry2 <= 0); + WARN_ONCE(retry2 <= 0, "unable to verify reset of queue %02x.%04x", + AP_QID_CARD(q->apqn), AP_QID_QUEUE(q->apqn)); free_resources: vfio_ap_free_aqic_resources(q); @@ -1350,27 +1683,20 @@ return ret; } -static int vfio_ap_mdev_reset_queues(struct ap_matrix_mdev *matrix_mdev) +static int vfio_ap_mdev_reset_queues(struct ap_queue_table *qtable) { - int ret; - int rc = 0; - unsigned long apid, apqi; + int ret, loop_cursor, rc = 0; struct vfio_ap_queue *q; - 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) { - 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 - * the remaining queues. - */ - if (ret) - rc = ret; - } + hash_for_each(qtable->queues, loop_cursor, q, mdev_qnode) { + 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 + * the remaining queues. + */ + if (ret) + rc = ret; } return rc; @@ -1440,23 +1766,79 @@ container_of(vdev, struct ap_matrix_mdev, vdev); int ret; - mutex_lock(&matrix_dev->lock); + mutex_lock(&matrix_dev->mdevs_lock); switch (cmd) { case VFIO_DEVICE_GET_INFO: ret = vfio_ap_mdev_get_device_info(arg); break; case VFIO_DEVICE_RESET: - ret = vfio_ap_mdev_reset_queues(matrix_mdev); + ret = vfio_ap_mdev_reset_queues(&matrix_mdev->qtable); break; default: ret = -EOPNOTSUPP; break; } - mutex_unlock(&matrix_dev->lock); + mutex_unlock(&matrix_dev->mdevs_lock); return ret; } +static struct ap_matrix_mdev *vfio_ap_mdev_for_queue(struct vfio_ap_queue *q) +{ + struct ap_matrix_mdev *matrix_mdev; + unsigned long apid = AP_QID_CARD(q->apqn); + unsigned long apqi = AP_QID_QUEUE(q->apqn); + + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + if (test_bit_inv(apid, matrix_mdev->matrix.apm) && + test_bit_inv(apqi, matrix_mdev->matrix.aqm)) + return matrix_mdev; + } + + return NULL; +} + +static ssize_t status_show(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + ssize_t nchars = 0; + struct vfio_ap_queue *q; + struct ap_matrix_mdev *matrix_mdev; + struct ap_device *apdev = to_ap_dev(dev); + + mutex_lock(&matrix_dev->mdevs_lock); + q = dev_get_drvdata(&apdev->device); + matrix_mdev = vfio_ap_mdev_for_queue(q); + + if (matrix_mdev) { + if (matrix_mdev->kvm) + nchars = scnprintf(buf, PAGE_SIZE, "%s\n", + AP_QUEUE_IN_USE); + else + nchars = scnprintf(buf, PAGE_SIZE, "%s\n", + AP_QUEUE_ASSIGNED); + } else { + nchars = scnprintf(buf, PAGE_SIZE, "%s\n", + AP_QUEUE_UNASSIGNED); + } + + mutex_unlock(&matrix_dev->mdevs_lock); + + return nchars; +} + +static DEVICE_ATTR_RO(status); + +static struct attribute *vfio_queue_attrs[] = { + &dev_attr_status.attr, + NULL, +}; + +static const struct attribute_group vfio_queue_attr_group = { + .attrs = vfio_queue_attrs, +}; + static const struct vfio_device_ops vfio_ap_matrix_dev_ops = { .open_device = vfio_ap_mdev_open_device, .close_device = vfio_ap_mdev_close_device, @@ -1500,3 +1882,432 @@ mdev_unregister_device(&matrix_dev->device); mdev_unregister_driver(&vfio_ap_matrix_driver); } + +int vfio_ap_mdev_probe_queue(struct ap_device *apdev) +{ + int ret; + struct vfio_ap_queue *q; + struct ap_matrix_mdev *matrix_mdev; + + ret = sysfs_create_group(&apdev->device.kobj, &vfio_queue_attr_group); + if (ret) + return ret; + + q = kzalloc(sizeof(*q), GFP_KERNEL); + if (!q) + return -ENOMEM; + + q->apqn = to_ap_queue(&apdev->device)->qid; + q->saved_isc = VFIO_AP_ISC_INVALID; + matrix_mdev = get_update_locks_by_apqn(q->apqn); + + if (matrix_mdev) { + vfio_ap_mdev_link_queue(matrix_mdev, q); + + if (vfio_ap_mdev_filter_matrix(matrix_mdev->matrix.apm, + matrix_mdev->matrix.aqm, + matrix_mdev)) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + } + dev_set_drvdata(&apdev->device, q); + release_update_locks_for_mdev(matrix_mdev); + + return 0; +} + +void vfio_ap_mdev_remove_queue(struct ap_device *apdev) +{ + unsigned long apid, apqi; + struct vfio_ap_queue *q; + struct ap_matrix_mdev *matrix_mdev; + + sysfs_remove_group(&apdev->device.kobj, &vfio_queue_attr_group); + q = dev_get_drvdata(&apdev->device); + get_update_locks_for_queue(q); + matrix_mdev = q->matrix_mdev; + + if (matrix_mdev) { + vfio_ap_unlink_queue_fr_mdev(q); + + apid = AP_QID_CARD(q->apqn); + apqi = AP_QID_QUEUE(q->apqn); + + /* + * If the queue is assigned to the guest's APCB, then remove + * the adapter's APID from the APCB and hot it into the guest. + */ + if (test_bit_inv(apid, matrix_mdev->shadow_apcb.apm) && + test_bit_inv(apqi, matrix_mdev->shadow_apcb.aqm)) { + clear_bit_inv(apid, matrix_mdev->shadow_apcb.apm); + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + } + } + + vfio_ap_mdev_reset_queue(q, 1); + dev_set_drvdata(&apdev->device, NULL); + kfree(q); + release_update_locks_for_mdev(matrix_mdev); +} + +/** + * vfio_ap_mdev_resource_in_use: check whether any of a set of APQNs is + * assigned to a mediated device under the control + * of the vfio_ap device driver. + * + * @apm: a bitmap specifying a set of APIDs comprising the APQNs to check. + * @aqm: a bitmap specifying a set of APQIs comprising the APQNs to check. + * + * Return: + * * -EADDRINUSE if one or more of the APQNs specified via @apm/@aqm are + * assigned to a mediated device under the control of the vfio_ap + * device driver. + * * Otherwise, return 0. + */ +int vfio_ap_mdev_resource_in_use(unsigned long *apm, unsigned long *aqm) +{ + int ret; + + mutex_lock(&matrix_dev->guests_lock); + mutex_lock(&matrix_dev->mdevs_lock); + ret = vfio_ap_mdev_verify_no_sharing(apm, aqm); + mutex_unlock(&matrix_dev->mdevs_lock); + mutex_unlock(&matrix_dev->guests_lock); + + return ret; +} + +/** + * vfio_ap_mdev_hot_unplug_cfg - hot unplug the adapters, domains and control + * domains that have been removed from the host's + * AP configuration from a guest. + * + * @matrix_mdev: an ap_matrix_mdev object attached to a KVM guest. + * @aprem: the adapters that have been removed from the host's AP configuration + * @aqrem: the domains that have been removed from the host's AP configuration + * @cdrem: the control domains that have been removed from the host's AP + * configuration. + */ +static void vfio_ap_mdev_hot_unplug_cfg(struct ap_matrix_mdev *matrix_mdev, + unsigned long *aprem, + unsigned long *aqrem, + unsigned long *cdrem) +{ + int do_hotplug = 0; + + if (!bitmap_empty(aprem, AP_DEVICES)) { + do_hotplug |= bitmap_andnot(matrix_mdev->shadow_apcb.apm, + matrix_mdev->shadow_apcb.apm, + aprem, AP_DEVICES); + } + + if (!bitmap_empty(aqrem, AP_DOMAINS)) { + do_hotplug |= bitmap_andnot(matrix_mdev->shadow_apcb.aqm, + matrix_mdev->shadow_apcb.aqm, + aqrem, AP_DEVICES); + } + + if (!bitmap_empty(cdrem, AP_DOMAINS)) + do_hotplug |= bitmap_andnot(matrix_mdev->shadow_apcb.adm, + matrix_mdev->shadow_apcb.adm, + cdrem, AP_DOMAINS); + + if (do_hotplug) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); +} + +/** + * vfio_ap_mdev_cfg_remove - determines which guests are using the adapters, + * domains and control domains that have been removed + * from the host AP configuration and unplugs them + * from those guests. + * + * @ap_remove: bitmap specifying which adapters have been removed from the host + * config. + * @aq_remove: bitmap specifying which domains have been removed from the host + * config. + * @cd_remove: bitmap specifying which control domains have been removed from + * the host config. + */ +static void vfio_ap_mdev_cfg_remove(unsigned long *ap_remove, + unsigned long *aq_remove, + unsigned long *cd_remove) +{ + struct ap_matrix_mdev *matrix_mdev; + DECLARE_BITMAP(aprem, AP_DEVICES); + DECLARE_BITMAP(aqrem, AP_DOMAINS); + DECLARE_BITMAP(cdrem, AP_DOMAINS); + int do_remove = 0; + + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + mutex_lock(&matrix_mdev->kvm->lock); + mutex_lock(&matrix_dev->mdevs_lock); + + do_remove |= bitmap_and(aprem, ap_remove, + matrix_mdev->matrix.apm, + AP_DEVICES); + do_remove |= bitmap_and(aqrem, aq_remove, + matrix_mdev->matrix.aqm, + AP_DOMAINS); + do_remove |= bitmap_andnot(cdrem, cd_remove, + matrix_mdev->matrix.adm, + AP_DOMAINS); + + if (do_remove) + vfio_ap_mdev_hot_unplug_cfg(matrix_mdev, aprem, aqrem, + cdrem); + + mutex_unlock(&matrix_dev->mdevs_lock); + mutex_unlock(&matrix_mdev->kvm->lock); + } +} + +/** + * vfio_ap_mdev_on_cfg_remove - responds to the removal of adapters, domains and + * control domains from the host AP configuration + * by unplugging them from the guests that are + * using them. + * @cur_config_info: the current host AP configuration information + * @prev_config_info: the previous host AP configuration information + */ +static void vfio_ap_mdev_on_cfg_remove(struct ap_config_info *cur_config_info, + struct ap_config_info *prev_config_info) +{ + int do_remove; + DECLARE_BITMAP(aprem, AP_DEVICES); + DECLARE_BITMAP(aqrem, AP_DOMAINS); + DECLARE_BITMAP(cdrem, AP_DOMAINS); + + do_remove = bitmap_andnot(aprem, + (unsigned long *)prev_config_info->apm, + (unsigned long *)cur_config_info->apm, + AP_DEVICES); + do_remove |= bitmap_andnot(aqrem, + (unsigned long *)prev_config_info->aqm, + (unsigned long *)cur_config_info->aqm, + AP_DEVICES); + do_remove |= bitmap_andnot(cdrem, + (unsigned long *)prev_config_info->adm, + (unsigned long *)cur_config_info->adm, + AP_DEVICES); + + if (do_remove) + vfio_ap_mdev_cfg_remove(aprem, aqrem, cdrem); +} + +/** + * vfio_ap_filter_apid_by_qtype: filter APIDs from an AP mask for adapters that + * are older than AP type 10 (CEX4). + * @apm: a bitmap of the APIDs to examine + * @aqm: a bitmap of the APQIs of the queues to query for the AP type. + */ +static void vfio_ap_filter_apid_by_qtype(unsigned long *apm, unsigned long *aqm) +{ + bool apid_cleared; + struct ap_queue_status status; + unsigned long apid, apqi, info; + int qtype, qtype_mask = 0xff000000; + + for_each_set_bit_inv(apid, apm, AP_DEVICES) { + apid_cleared = false; + + for_each_set_bit_inv(apqi, aqm, AP_DOMAINS) { + status = ap_test_queue(AP_MKQID(apid, apqi), 1, &info); + switch (status.response_code) { + /* + * According to the architecture in each case + * below, the queue's info should be filled. + */ + case AP_RESPONSE_NORMAL: + case AP_RESPONSE_RESET_IN_PROGRESS: + case AP_RESPONSE_DECONFIGURED: + case AP_RESPONSE_CHECKSTOPPED: + case AP_RESPONSE_BUSY: + qtype = info & qtype_mask; + + /* + * The vfio_ap device driver only + * supports CEX4 and newer adapters, so + * remove the APID if the adapter is + * older than a CEX4. + */ + if (qtype < AP_DEVICE_TYPE_CEX4) { + clear_bit_inv(apid, apm); + apid_cleared = true; + } + + break; + + default: + /* + * If we don't know the adapter type, + * clear its APID since it can't be + * determined whether the vfio_ap + * device driver supports it. + */ + clear_bit_inv(apid, apm); + apid_cleared = true; + break; + } + + /* + * If we've already cleared the APID from the apm, there + * is no need to continue examining the remainin AP + * queues to determine the type of the adapter. + */ + if (apid_cleared) + continue; + } + } +} + +/** + * vfio_ap_mdev_cfg_add - store bitmaps specifying the adapters, domains and + * control domains that have been added to the host's + * AP configuration for each matrix mdev to which they + * are assigned. + * + * @apm_add: a bitmap specifying the adapters that have been added to the AP + * configuration. + * @aqm_add: a bitmap specifying the domains that have been added to the AP + * configuration. + * @adm_add: a bitmap specifying the control domains that have been added to the + * AP configuration. + */ +static void vfio_ap_mdev_cfg_add(unsigned long *apm_add, unsigned long *aqm_add, + unsigned long *adm_add) +{ + struct ap_matrix_mdev *matrix_mdev; + + if (list_empty(&matrix_dev->mdev_list)) + return; + + vfio_ap_filter_apid_by_qtype(apm_add, aqm_add); + + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + bitmap_and(matrix_mdev->apm_add, + matrix_mdev->matrix.apm, apm_add, AP_DEVICES); + bitmap_and(matrix_mdev->aqm_add, + matrix_mdev->matrix.aqm, aqm_add, AP_DOMAINS); + bitmap_and(matrix_mdev->adm_add, + matrix_mdev->matrix.adm, adm_add, AP_DEVICES); + } +} + +/** + * vfio_ap_mdev_on_cfg_add - responds to the addition of adapters, domains and + * control domains to the host AP configuration + * by updating the bitmaps that specify what adapters, + * domains and control domains have been added so they + * can be hot plugged into the guest when the AP bus + * scan completes (see vfio_ap_on_scan_complete + * function). + * @cur_config_info: the current AP configuration information + * @prev_config_info: the previous AP configuration information + */ +static void vfio_ap_mdev_on_cfg_add(struct ap_config_info *cur_config_info, + struct ap_config_info *prev_config_info) +{ + bool do_add; + DECLARE_BITMAP(apm_add, AP_DEVICES); + DECLARE_BITMAP(aqm_add, AP_DOMAINS); + DECLARE_BITMAP(adm_add, AP_DOMAINS); + + do_add = bitmap_andnot(apm_add, + (unsigned long *)cur_config_info->apm, + (unsigned long *)prev_config_info->apm, + AP_DEVICES); + do_add |= bitmap_andnot(aqm_add, + (unsigned long *)cur_config_info->aqm, + (unsigned long *)prev_config_info->aqm, + AP_DOMAINS); + do_add |= bitmap_andnot(adm_add, + (unsigned long *)cur_config_info->adm, + (unsigned long *)prev_config_info->adm, + AP_DOMAINS); + + if (do_add) + vfio_ap_mdev_cfg_add(apm_add, aqm_add, adm_add); +} + +/** + * vfio_ap_on_cfg_changed - handles notification of changes to the host AP + * configuration. + * + * @cur_cfg_info: the current host AP configuration + * @prev_cfg_info: the previous host AP configuration + */ +void vfio_ap_on_cfg_changed(struct ap_config_info *cur_cfg_info, + struct ap_config_info *prev_cfg_info) +{ + if (!cur_cfg_info || !prev_cfg_info) + return; + + mutex_lock(&matrix_dev->guests_lock); + + vfio_ap_mdev_on_cfg_remove(cur_cfg_info, prev_cfg_info); + vfio_ap_mdev_on_cfg_add(cur_cfg_info, prev_cfg_info); + memcpy(&matrix_dev->info, cur_cfg_info, sizeof(*cur_cfg_info)); + + mutex_unlock(&matrix_dev->guests_lock); +} + +static void vfio_ap_mdev_hot_plug_cfg(struct ap_matrix_mdev *matrix_mdev) +{ + bool do_hotplug = false; + int filter_domains = 0; + int filter_adapters = 0; + DECLARE_BITMAP(apm, AP_DEVICES); + DECLARE_BITMAP(aqm, AP_DOMAINS); + + mutex_lock(&matrix_mdev->kvm->lock); + mutex_lock(&matrix_dev->mdevs_lock); + + filter_adapters = bitmap_and(apm, matrix_mdev->matrix.apm, + matrix_mdev->apm_add, AP_DEVICES); + filter_domains = bitmap_and(aqm, matrix_mdev->matrix.aqm, + matrix_mdev->aqm_add, AP_DOMAINS); + + if (filter_adapters && filter_domains) + do_hotplug |= vfio_ap_mdev_filter_matrix(apm, aqm, matrix_mdev); + else if (filter_adapters) + do_hotplug |= + vfio_ap_mdev_filter_matrix(apm, + matrix_mdev->shadow_apcb.aqm, + matrix_mdev); + else + do_hotplug |= + vfio_ap_mdev_filter_matrix(matrix_mdev->shadow_apcb.apm, + aqm, matrix_mdev); + + if (bitmap_intersects(matrix_mdev->matrix.adm, matrix_mdev->adm_add, + AP_DOMAINS)) + do_hotplug |= vfio_ap_mdev_filter_cdoms(matrix_mdev); + + if (do_hotplug) + vfio_ap_mdev_update_guest_apcb(matrix_mdev); + + mutex_unlock(&matrix_dev->mdevs_lock); + mutex_unlock(&matrix_mdev->kvm->lock); +} + +void vfio_ap_on_scan_complete(struct ap_config_info *new_config_info, + struct ap_config_info *old_config_info) +{ + struct ap_matrix_mdev *matrix_mdev; + + mutex_lock(&matrix_dev->guests_lock); + + list_for_each_entry(matrix_mdev, &matrix_dev->mdev_list, node) { + if (bitmap_empty(matrix_mdev->apm_add, AP_DEVICES) && + bitmap_empty(matrix_mdev->aqm_add, AP_DOMAINS) && + bitmap_empty(matrix_mdev->adm_add, AP_DOMAINS)) + continue; + + vfio_ap_mdev_hot_plug_cfg(matrix_mdev); + bitmap_clear(matrix_mdev->apm_add, 0, AP_DEVICES); + bitmap_clear(matrix_mdev->aqm_add, 0, AP_DOMAINS); + bitmap_clear(matrix_mdev->adm_add, 0, AP_DOMAINS); + } + + mutex_unlock(&matrix_dev->guests_lock); +} --- linux-5.19.0.orig/drivers/s390/crypto/vfio_ap_private.h +++ linux-5.19.0/drivers/s390/crypto/vfio_ap_private.h @@ -19,6 +19,7 @@ #include #include #include +#include #include "ap_bus.h" @@ -32,20 +33,26 @@ * @available_instances: number of mediated matrix devices that can be created * @info: the struct containing the output from the PQAP(QCI) instruction * @mdev_list: the list of mediated matrix devices created - * @lock: mutex for locking the AP matrix device. This lock will be + * @mdevs_lock: mutex for locking the AP matrix device. This lock will be * taken every time we fiddle with state managed by the vfio_ap * driver, be it using @mdev_list or writing the state of a * single ap_matrix_mdev device. It's quite coarse but we don't * expect much contention. * @vfio_ap_drv: the vfio_ap device driver + * @guests_lock: mutex for controlling access to a guest that is using AP + * devices passed through by the vfio_ap device driver. This lock + * will be taken when the AP devices are plugged into or unplugged + * from a guest, and when an ap_matrix_mdev device is added to or + * removed from @mdev_list or the list is iterated. */ struct ap_matrix_dev { struct device device; atomic_t available_instances; struct ap_config_info info; struct list_head mdev_list; - struct mutex lock; + struct mutex mdevs_lock; /* serializes access to each ap_matrix_mdev */ struct ap_driver *vfio_ap_drv; + struct mutex guests_lock; /* serializes access to each KVM guest */ }; extern struct ap_matrix_dev *matrix_dev; @@ -75,27 +82,47 @@ }; /** + * struct ap_queue_table - a table of queue objects. + * + * @queues: a hashtable of queues (struct vfio_ap_queue). + */ +struct ap_queue_table { + DECLARE_HASHTABLE(queues, 8); +}; + +/** * struct ap_matrix_mdev - Contains the data associated with a matrix mediated * device. * @vdev: the vfio device * @node: allows the ap_matrix_mdev struct to be added to a list * @matrix: the adapters, usage domains and control domains assigned to the * mediated matrix device. + * @shadow_apcb: the shadow copy of the APCB field of the KVM guest's CRYCB * @iommu_notifier: notifier block used for specifying callback function for * handling the VFIO_IOMMU_NOTIFY_DMA_UNMAP even * @kvm: the struct holding guest's state * @pqap_hook: the function pointer to the interception handler for the * PQAP(AQIC) instruction. * @mdev: the mediated device + * @qtable: table of queues (struct vfio_ap_queue) assigned to the mdev + * @apm_add: bitmap of APIDs added to the host's AP configuration + * @aqm_add: bitmap of APQIs added to the host's AP configuration + * @adm_add: bitmap of control domain numbers added to the host's AP + * configuration */ struct ap_matrix_mdev { struct vfio_device vdev; struct list_head node; struct ap_matrix matrix; + struct ap_matrix shadow_apcb; struct notifier_block iommu_notifier; struct kvm *kvm; crypto_hook pqap_hook; struct mdev_device *mdev; + struct ap_queue_table qtable; + DECLARE_BITMAP(apm_add, AP_DEVICES); + DECLARE_BITMAP(aqm_add, AP_DOMAINS); + DECLARE_BITMAP(adm_add, AP_DOMAINS); }; /** @@ -105,6 +132,8 @@ * @saved_pfn: the guest PFN pinned for the guest * @apqn: the APQN of the AP queue device * @saved_isc: the guest ISC registered with the GIB interface + * @mdev_qnode: allows the vfio_ap_queue struct to be added to a hashtable + * @reset_rc: the status response code from the last reset of the queue */ struct vfio_ap_queue { struct ap_matrix_mdev *matrix_mdev; @@ -112,11 +141,21 @@ int apqn; #define VFIO_AP_ISC_INVALID 0xff unsigned char saved_isc; + struct hlist_node mdev_qnode; + unsigned int reset_rc; }; 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); + +int vfio_ap_mdev_probe_queue(struct ap_device *queue); +void vfio_ap_mdev_remove_queue(struct ap_device *queue); + +int vfio_ap_mdev_resource_in_use(unsigned long *apm, unsigned long *aqm); + +void vfio_ap_on_cfg_changed(struct ap_config_info *new_config_info, + struct ap_config_info *old_config_info); +void vfio_ap_on_scan_complete(struct ap_config_info *new_config_info, + struct ap_config_info *old_config_info); #endif /* _VFIO_AP_PRIVATE_H_ */ --- linux-5.19.0.orig/drivers/s390/crypto/zcrypt_msgtype6.c +++ linux-5.19.0/drivers/s390/crypto/zcrypt_msgtype6.c @@ -342,7 +342,10 @@ }; struct { struct type6_hdr hdr; - struct CPRBX cprbx; + union { + struct CPRBX cprbx; + DECLARE_FLEX_ARRAY(u8, userdata); + }; } __packed * msg = ap_msg->msg; int rcblen = CEIL4(xcrb->request_control_blk_length); @@ -403,7 +406,8 @@ msg->hdr.fromcardlen2 = xcrb->reply_data_length; /* prepare CPRB */ - if (z_copy_from_user(userspace, &msg->cprbx, xcrb->request_control_blk_addr, + if (z_copy_from_user(userspace, msg->userdata, + xcrb->request_control_blk_addr, xcrb->request_control_blk_length)) return -EFAULT; if (msg->cprbx.cprb_len + sizeof(msg->hdr.function_code) > @@ -469,9 +473,14 @@ struct { struct type6_hdr hdr; - struct ep11_cprb cprbx; - unsigned char pld_tag; /* fixed value 0x30 */ - unsigned char pld_lenfmt; /* payload length format */ + union { + struct { + struct ep11_cprb cprbx; + unsigned char pld_tag; /* fixed value 0x30 */ + unsigned char pld_lenfmt; /* length format */ + } __packed; + DECLARE_FLEX_ARRAY(u8, userdata); + }; } __packed * msg = ap_msg->msg; struct pld_hdr { @@ -500,7 +509,7 @@ msg->hdr.fromcardlen1 = xcrb->resp_len; /* Import CPRB data from the ioctl input parameter */ - if (z_copy_from_user(userspace, &msg->cprbx.cprb_len, + if (z_copy_from_user(userspace, msg->userdata, (char __force __user *)xcrb->req, xcrb->req_len)) { return -EFAULT; } --- linux-5.19.0.orig/drivers/s390/net/ctcm_main.c +++ linux-5.19.0/drivers/s390/net/ctcm_main.c @@ -825,16 +825,9 @@ /* * Start transmission of a packet. * Called from generic network device layer. - * - * skb Pointer to buffer containing the packet. - * dev Pointer to interface struct. - * - * returns 0 if packet consumed, !0 if packet rejected. - * Note: If we return !0, then the packet is free'd by - * the generic network layer. */ /* first merge version - leaving both functions separated */ -static int ctcm_tx(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t ctcm_tx(struct sk_buff *skb, struct net_device *dev) { struct ctcm_priv *priv = dev->ml_priv; @@ -877,7 +870,7 @@ } /* unmerged MPC variant of ctcm_tx */ -static int ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t ctcmpc_tx(struct sk_buff *skb, struct net_device *dev) { int len = 0; struct ctcm_priv *priv = dev->ml_priv; --- linux-5.19.0.orig/drivers/s390/net/lcs.c +++ linux-5.19.0/drivers/s390/net/lcs.c @@ -1519,9 +1519,8 @@ /* * Packet transmit function called by network stack */ -static int -__lcs_start_xmit(struct lcs_card *card, struct sk_buff *skb, - struct net_device *dev) +static netdev_tx_t __lcs_start_xmit(struct lcs_card *card, struct sk_buff *skb, + struct net_device *dev) { struct lcs_header *header; int rc = NETDEV_TX_OK; @@ -1582,8 +1581,7 @@ return rc; } -static int -lcs_start_xmit(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t lcs_start_xmit(struct sk_buff *skb, struct net_device *dev) { struct lcs_card *card; int rc; --- linux-5.19.0.orig/drivers/s390/net/netiucv.c +++ linux-5.19.0/drivers/s390/net/netiucv.c @@ -1248,15 +1248,8 @@ /* * Start transmission of a packet. * Called from generic network device layer. - * - * @param skb Pointer to buffer containing the packet. - * @param dev Pointer to interface struct. - * - * @return 0 if packet consumed, !0 if packet rejected. - * Note: If we return !0, then the packet is free'd by - * the generic network layer. */ -static int netiucv_tx(struct sk_buff *skb, struct net_device *dev) +static netdev_tx_t netiucv_tx(struct sk_buff *skb, struct net_device *dev) { struct netiucv_priv *privptr = netdev_priv(dev); int rc; --- linux-5.19.0.orig/drivers/s390/net/qeth_core_main.c +++ linux-5.19.0/drivers/s390/net/qeth_core_main.c @@ -763,6 +763,49 @@ ipa_name, com, CARD_DEVID(card)); } +static void qeth_default_link_info(struct qeth_card *card) +{ + struct qeth_link_info *link_info = &card->info.link_info; + + QETH_CARD_TEXT(card, 2, "dftlinfo"); + link_info->duplex = DUPLEX_FULL; + + if (IS_IQD(card) || IS_VM_NIC(card)) { + link_info->speed = SPEED_10000; + link_info->port = PORT_FIBRE; + link_info->link_mode = QETH_LINK_MODE_FIBRE_SHORT; + } else { + switch (card->info.link_type) { + case QETH_LINK_TYPE_FAST_ETH: + case QETH_LINK_TYPE_LANE_ETH100: + link_info->speed = SPEED_100; + link_info->port = PORT_TP; + break; + case QETH_LINK_TYPE_GBIT_ETH: + case QETH_LINK_TYPE_LANE_ETH1000: + link_info->speed = SPEED_1000; + link_info->port = PORT_FIBRE; + break; + case QETH_LINK_TYPE_10GBIT_ETH: + link_info->speed = SPEED_10000; + link_info->port = PORT_FIBRE; + break; + case QETH_LINK_TYPE_25GBIT_ETH: + link_info->speed = SPEED_25000; + link_info->port = PORT_FIBRE; + break; + default: + dev_info(&card->gdev->dev, + "Unknown link type %x\n", + card->info.link_type); + link_info->speed = SPEED_UNKNOWN; + link_info->port = PORT_OTHER; + } + + link_info->link_mode = QETH_LINK_MODE_UNKNOWN; + } +} + static struct qeth_ipa_cmd *qeth_check_ipa_data(struct qeth_card *card, struct qeth_ipa_cmd *cmd) { @@ -790,6 +833,7 @@ netdev_name(card->dev), card->info.chpid); qeth_issue_ipa_msg(cmd, cmd->hdr.return_code, card); netif_carrier_off(card->dev); + qeth_default_link_info(card); } return NULL; case IPA_CMD_STARTLAN: @@ -4744,92 +4788,6 @@ return rc; } -static int qeth_query_card_info_cb(struct qeth_card *card, - struct qeth_reply *reply, unsigned long data) -{ - struct qeth_ipa_cmd *cmd = (struct qeth_ipa_cmd *)data; - struct qeth_link_info *link_info = reply->param; - struct qeth_query_card_info *card_info; - - QETH_CARD_TEXT(card, 2, "qcrdincb"); - if (qeth_setadpparms_inspect_rc(cmd)) - return -EIO; - - card_info = &cmd->data.setadapterparms.data.card_info; - netdev_dbg(card->dev, - "card info: card_type=0x%02x, port_mode=0x%04x, port_speed=0x%08x\n", - card_info->card_type, card_info->port_mode, - card_info->port_speed); - - switch (card_info->port_mode) { - case CARD_INFO_PORTM_FULLDUPLEX: - link_info->duplex = DUPLEX_FULL; - break; - case CARD_INFO_PORTM_HALFDUPLEX: - link_info->duplex = DUPLEX_HALF; - break; - default: - link_info->duplex = DUPLEX_UNKNOWN; - } - - switch (card_info->card_type) { - case CARD_INFO_TYPE_1G_COPPER_A: - case CARD_INFO_TYPE_1G_COPPER_B: - link_info->speed = SPEED_1000; - link_info->port = PORT_TP; - break; - case CARD_INFO_TYPE_1G_FIBRE_A: - case CARD_INFO_TYPE_1G_FIBRE_B: - link_info->speed = SPEED_1000; - link_info->port = PORT_FIBRE; - break; - case CARD_INFO_TYPE_10G_FIBRE_A: - case CARD_INFO_TYPE_10G_FIBRE_B: - link_info->speed = SPEED_10000; - link_info->port = PORT_FIBRE; - break; - default: - switch (card_info->port_speed) { - case CARD_INFO_PORTS_10M: - link_info->speed = SPEED_10; - break; - case CARD_INFO_PORTS_100M: - link_info->speed = SPEED_100; - break; - case CARD_INFO_PORTS_1G: - link_info->speed = SPEED_1000; - break; - case CARD_INFO_PORTS_10G: - link_info->speed = SPEED_10000; - break; - case CARD_INFO_PORTS_25G: - link_info->speed = SPEED_25000; - break; - default: - link_info->speed = SPEED_UNKNOWN; - } - - link_info->port = PORT_OTHER; - } - - return 0; -} - -int qeth_query_card_info(struct qeth_card *card, - struct qeth_link_info *link_info) -{ - struct qeth_cmd_buffer *iob; - - QETH_CARD_TEXT(card, 2, "qcrdinfo"); - if (!qeth_adp_supported(card, IPA_SETADP_QUERY_CARD_INFO)) - return -EOPNOTSUPP; - iob = qeth_get_adapter_cmd(card, IPA_SETADP_QUERY_CARD_INFO, 0); - if (!iob) - return -ENOMEM; - - return qeth_send_ipa_cmd(card, iob, qeth_query_card_info_cb, link_info); -} - static int qeth_init_link_info_oat_cb(struct qeth_card *card, struct qeth_reply *reply_priv, unsigned long data) @@ -4839,6 +4797,7 @@ struct qeth_query_oat_physical_if *phys_if; struct qeth_query_oat_reply *reply; + QETH_CARD_TEXT(card, 2, "qoatincb"); if (qeth_setadpparms_inspect_rc(cmd)) return -EIO; @@ -4918,41 +4877,7 @@ static void qeth_init_link_info(struct qeth_card *card) { - card->info.link_info.duplex = DUPLEX_FULL; - - if (IS_IQD(card) || IS_VM_NIC(card)) { - card->info.link_info.speed = SPEED_10000; - card->info.link_info.port = PORT_FIBRE; - card->info.link_info.link_mode = QETH_LINK_MODE_FIBRE_SHORT; - } else { - switch (card->info.link_type) { - case QETH_LINK_TYPE_FAST_ETH: - case QETH_LINK_TYPE_LANE_ETH100: - card->info.link_info.speed = SPEED_100; - card->info.link_info.port = PORT_TP; - break; - case QETH_LINK_TYPE_GBIT_ETH: - case QETH_LINK_TYPE_LANE_ETH1000: - card->info.link_info.speed = SPEED_1000; - card->info.link_info.port = PORT_FIBRE; - break; - case QETH_LINK_TYPE_10GBIT_ETH: - card->info.link_info.speed = SPEED_10000; - card->info.link_info.port = PORT_FIBRE; - break; - case QETH_LINK_TYPE_25GBIT_ETH: - card->info.link_info.speed = SPEED_25000; - card->info.link_info.port = PORT_FIBRE; - break; - default: - dev_info(&card->gdev->dev, "Unknown link type %x\n", - card->info.link_type); - card->info.link_info.speed = SPEED_UNKNOWN; - card->info.link_info.port = PORT_OTHER; - } - - card->info.link_info.link_mode = QETH_LINK_MODE_UNKNOWN; - } + qeth_default_link_info(card); /* Get more accurate data via QUERY OAT: */ if (qeth_adp_supported(card, IPA_SETADP_QUERY_OAT)) { @@ -5461,6 +5386,7 @@ qeth_clear_working_pool_list(card); qeth_flush_local_addrs(card); card->info.promisc_mode = 0; + qeth_default_link_info(card); rc = qeth_stop_channel(&card->data); rc2 = qeth_stop_channel(&card->write); --- linux-5.19.0.orig/drivers/s390/net/qeth_ethtool.c +++ linux-5.19.0/drivers/s390/net/qeth_ethtool.c @@ -428,8 +428,8 @@ struct ethtool_link_ksettings *cmd) { struct qeth_card *card = netdev->ml_priv; - struct qeth_link_info link_info; + QETH_CARD_TEXT(card, 4, "ethtglks"); cmd->base.speed = card->info.link_info.speed; cmd->base.duplex = card->info.link_info.duplex; cmd->base.port = card->info.link_info.port; @@ -439,16 +439,6 @@ cmd->base.eth_tp_mdix = ETH_TP_MDI_INVALID; cmd->base.eth_tp_mdix_ctrl = ETH_TP_MDI_INVALID; - /* Check if we can obtain more accurate information. */ - if (!qeth_query_card_info(card, &link_info)) { - if (link_info.speed != SPEED_UNKNOWN) - cmd->base.speed = link_info.speed; - if (link_info.duplex != DUPLEX_UNKNOWN) - cmd->base.duplex = link_info.duplex; - if (link_info.port != PORT_OTHER) - cmd->base.port = link_info.port; - } - qeth_set_ethtool_link_modes(cmd, card->info.link_info.link_mode); return 0; --- linux-5.19.0.orig/drivers/s390/net/qeth_l2_main.c +++ linux-5.19.0/drivers/s390/net/qeth_l2_main.c @@ -758,7 +758,6 @@ struct list_head *iter; int err = 0; - kfree(br2dev_event_work); QETH_CARD_TEXT_(card, 4, "b2dw%04lx", event); QETH_CARD_TEXT_(card, 4, "ma%012llx", ether_addr_to_u64(addr)); @@ -815,6 +814,7 @@ dev_put(brdev); dev_put(lsyncdev); dev_put(dstdev); + kfree(br2dev_event_work); } static int qeth_l2_br2dev_queue_work(struct net_device *brdev, --- linux-5.19.0.orig/drivers/s390/scsi/zfcp_fc.c +++ linux-5.19.0/drivers/s390/scsi/zfcp_fc.c @@ -145,27 +145,33 @@ static int zfcp_fc_wka_port_get(struct zfcp_fc_wka_port *wka_port) { + int ret = -EIO; + if (mutex_lock_interruptible(&wka_port->mutex)) return -ERESTARTSYS; if (wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE || wka_port->status == ZFCP_FC_WKA_PORT_CLOSING) { wka_port->status = ZFCP_FC_WKA_PORT_OPENING; - if (zfcp_fsf_open_wka_port(wka_port)) + if (zfcp_fsf_open_wka_port(wka_port)) { + /* could not even send request, nothing to wait for */ wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE; + goto out; + } } - mutex_unlock(&wka_port->mutex); - - wait_event(wka_port->completion_wq, + wait_event(wka_port->opened, wka_port->status == ZFCP_FC_WKA_PORT_ONLINE || wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE); if (wka_port->status == ZFCP_FC_WKA_PORT_ONLINE) { atomic_inc(&wka_port->refcount); - return 0; + ret = 0; + goto out; } - return -EIO; +out: + mutex_unlock(&wka_port->mutex); + return ret; } static void zfcp_fc_wka_port_offline(struct work_struct *work) @@ -181,9 +187,12 @@ wka_port->status = ZFCP_FC_WKA_PORT_CLOSING; if (zfcp_fsf_close_wka_port(wka_port)) { + /* could not even send request, nothing to wait for */ wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE; - wake_up(&wka_port->completion_wq); + goto out; } + wait_event(wka_port->closed, + wka_port->status == ZFCP_FC_WKA_PORT_OFFLINE); out: mutex_unlock(&wka_port->mutex); } @@ -193,13 +202,15 @@ if (atomic_dec_return(&wka_port->refcount) != 0) return; /* wait 10 milliseconds, other reqs might pop in */ - schedule_delayed_work(&wka_port->work, HZ / 100); + queue_delayed_work(wka_port->adapter->work_queue, &wka_port->work, + msecs_to_jiffies(10)); } static void zfcp_fc_wka_port_init(struct zfcp_fc_wka_port *wka_port, u32 d_id, struct zfcp_adapter *adapter) { - init_waitqueue_head(&wka_port->completion_wq); + init_waitqueue_head(&wka_port->opened); + init_waitqueue_head(&wka_port->closed); wka_port->adapter = adapter; wka_port->d_id = d_id; --- linux-5.19.0.orig/drivers/s390/scsi/zfcp_fc.h +++ linux-5.19.0/drivers/s390/scsi/zfcp_fc.h @@ -185,7 +185,8 @@ /** * struct zfcp_fc_wka_port - representation of well-known-address (WKA) FC port * @adapter: Pointer to adapter structure this WKA port belongs to - * @completion_wq: Wait for completion of open/close command + * @opened: Wait for completion of open command + * @closed: Wait for completion of close command * @status: Current status of WKA port * @refcount: Reference count to keep port open as long as it is in use * @d_id: FC destination id or well-known-address @@ -195,7 +196,8 @@ */ struct zfcp_fc_wka_port { struct zfcp_adapter *adapter; - wait_queue_head_t completion_wq; + wait_queue_head_t opened; + wait_queue_head_t closed; enum zfcp_fc_wka_status status; atomic_t refcount; u32 d_id; --- linux-5.19.0.orig/drivers/s390/scsi/zfcp_fsf.c +++ linux-5.19.0/drivers/s390/scsi/zfcp_fsf.c @@ -884,7 +884,7 @@ const bool is_srb = zfcp_fsf_req_is_status_read_buffer(req); struct zfcp_adapter *adapter = req->adapter; struct zfcp_qdio *qdio = adapter->qdio; - int req_id = req->req_id; + unsigned long req_id = req->req_id; zfcp_reqlist_add(adapter->req_list, req); @@ -1907,7 +1907,7 @@ wka_port->status = ZFCP_FC_WKA_PORT_ONLINE; } out: - wake_up(&wka_port->completion_wq); + wake_up(&wka_port->opened); } /** @@ -1966,7 +1966,7 @@ } wka_port->status = ZFCP_FC_WKA_PORT_OFFLINE; - wake_up(&wka_port->completion_wq); + wake_up(&wka_port->closed); } /** --- linux-5.19.0.orig/drivers/s390/virtio/virtio_ccw.c +++ linux-5.19.0/drivers/s390/virtio/virtio_ccw.c @@ -33,6 +33,7 @@ #include #include #include +#include /* * virtio related functions @@ -204,7 +205,8 @@ write_unlock_irqrestore(&info->lock, flags); } -static void virtio_airq_handler(struct airq_struct *airq, bool floating) +static void virtio_airq_handler(struct airq_struct *airq, + struct tpi_info *tpi_info) { struct airq_info *info = container_of(airq, struct airq_info, airq); unsigned long ai; @@ -240,7 +242,7 @@ return NULL; rwlock_init(&info->lock); info->aiv = airq_iv_create(VIRTIO_IV_BITS, AIRQ_IV_ALLOC | AIRQ_IV_PTR - | AIRQ_IV_CACHELINE); + | AIRQ_IV_CACHELINE, NULL); if (!info->aiv) { kfree(info); return NULL; --- linux-5.19.0.orig/drivers/scsi/3w-9xxx.c +++ linux-5.19.0/drivers/scsi/3w-9xxx.c @@ -2006,7 +2006,7 @@ retval = pci_enable_device(pdev); if (retval) { TW_PRINTK(host, TW_DRIVER, 0x34, "Failed to enable pci device"); - goto out_disable_device; + return -ENODEV; } pci_set_master(pdev); --- linux-5.19.0.orig/drivers/scsi/be2iscsi/be_main.c +++ linux-5.19.0/drivers/scsi/be2iscsi/be_main.c @@ -5745,7 +5745,7 @@ cancel_work_sync(&phba->sess_work); beiscsi_iface_destroy_default(phba); - iscsi_host_remove(phba->shost); + iscsi_host_remove(phba->shost, false); beiscsi_disable_port(phba, 1); /* after cancelling boot_work */ --- linux-5.19.0.orig/drivers/scsi/bnx2i/bnx2i_iscsi.c +++ linux-5.19.0/drivers/scsi/bnx2i/bnx2i_iscsi.c @@ -909,7 +909,7 @@ { struct Scsi_Host *shost = hba->shost; - iscsi_host_remove(shost); + iscsi_host_remove(shost, false); INIT_LIST_HEAD(&hba->ep_ofld_list); INIT_LIST_HEAD(&hba->ep_active_list); INIT_LIST_HEAD(&hba->ep_destroy_list); --- linux-5.19.0.orig/drivers/scsi/cxgbi/libcxgbi.c +++ linux-5.19.0/drivers/scsi/cxgbi/libcxgbi.c @@ -328,7 +328,7 @@ chba = cdev->hbas[i]; if (chba) { cdev->hbas[i] = NULL; - iscsi_host_remove(chba->shost); + iscsi_host_remove(chba->shost, false); pci_dev_put(cdev->pdev); iscsi_host_free(chba->shost); } @@ -1455,7 +1455,7 @@ if (conn) { log_debug(1 << CXGBI_DBG_SOCK, "csk 0x%p, cid %d.\n", csk, conn->id); - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); } } EXPORT_SYMBOL_GPL(cxgbi_conn_tx_open); --- linux-5.19.0.orig/drivers/scsi/elx/efct/efct_driver.c +++ linux-5.19.0/drivers/scsi/elx/efct/efct_driver.c @@ -42,6 +42,7 @@ rc = efct_scsi_reg_fc_transport(); if (rc) { + efct_scsi_tgt_driver_exit(); pr_err("failed to register to FC host\n"); return rc; } --- linux-5.19.0.orig/drivers/scsi/elx/libefc/efclib.h +++ linux-5.19.0/drivers/scsi/elx/libefc/efclib.h @@ -58,10 +58,12 @@ #define EFC_LINK_STATUS_UP 0 #define EFC_LINK_STATUS_DOWN 1 +enum efc_sm_event; + /* State machine context header */ struct efc_sm_ctx { void (*current_state)(struct efc_sm_ctx *ctx, - u32 evt, void *arg); + enum efc_sm_event evt, void *arg); const char *description; void *app; @@ -365,7 +367,7 @@ int prev_evt; void (*nodedb_state)(struct efc_sm_ctx *ctx, - u32 evt, void *arg); + enum efc_sm_event evt, void *arg); struct timer_list gidpt_delay_timer; u64 time_last_gidpt_msec; --- linux-5.19.0.orig/drivers/scsi/fcoe/fcoe.c +++ linux-5.19.0/drivers/scsi/fcoe/fcoe.c @@ -2492,6 +2492,7 @@ out_free: mutex_unlock(&fcoe_config_mutex); + fcoe_transport_detach(&fcoe_sw_transport); out_destroy: destroy_workqueue(fcoe_wq); return rc; --- linux-5.19.0.orig/drivers/scsi/fcoe/fcoe_sysfs.c +++ linux-5.19.0/drivers/scsi/fcoe/fcoe_sysfs.c @@ -830,14 +830,15 @@ dev_set_name(&ctlr->dev, "ctlr_%d", ctlr->id); error = device_register(&ctlr->dev); - if (error) - goto out_del_q2; + if (error) { + destroy_workqueue(ctlr->devloss_work_q); + destroy_workqueue(ctlr->work_q); + put_device(&ctlr->dev); + return NULL; + } return ctlr; -out_del_q2: - destroy_workqueue(ctlr->devloss_work_q); - ctlr->devloss_work_q = NULL; out_del_q: destroy_workqueue(ctlr->work_q); ctlr->work_q = NULL; @@ -1036,16 +1037,16 @@ fcf->selected = new_fcf->selected; error = device_register(&fcf->dev); - if (error) - goto out_del; + if (error) { + put_device(&fcf->dev); + goto out; + } fcf->state = FCOE_FCF_STATE_CONNECTED; list_add_tail(&fcf->peers, &ctlr->fcfs); return fcf; -out_del: - kfree(fcf); out: return NULL; } --- linux-5.19.0.orig/drivers/scsi/hosts.c +++ linux-5.19.0/drivers/scsi/hosts.c @@ -182,6 +182,15 @@ mutex_unlock(&shost->scan_mutex); scsi_proc_host_rm(shost); + /* + * New SCSI devices cannot be attached anymore because of the SCSI host + * state so drop the tag set refcnt. Wait until the tag set refcnt drops + * to zero because .exit_cmd_priv implementations may need the host + * pointer. + */ + kref_put(&shost->tagset_refcnt, scsi_mq_free_tags); + wait_for_completion(&shost->tagset_freed); + spin_lock_irqsave(shost->host_lock, flags); if (scsi_host_set_state(shost, SHOST_DEL)) BUG_ON(scsi_host_set_state(shost, SHOST_DEL_RECOVERY)); @@ -240,6 +249,9 @@ if (error) goto fail; + kref_init(&shost->tagset_refcnt); + init_completion(&shost->tagset_freed); + /* * Increase usage count temporarily here so that calling * scsi_autopm_put_host() will trigger runtime idle if there is @@ -312,6 +324,7 @@ pm_runtime_disable(&shost->shost_gendev); pm_runtime_set_suspended(&shost->shost_gendev); pm_runtime_put_noidle(&shost->shost_gendev); + kref_put(&shost->tagset_refcnt, scsi_mq_free_tags); fail: return error; } @@ -345,9 +358,6 @@ kfree(dev_name(&shost->shost_dev)); } - if (shost->tag_set.tags) - scsi_mq_destroy_tags(shost); - kfree(shost->shost_data); ida_simple_remove(&host_index_ida, shost->host_no); --- linux-5.19.0.orig/drivers/scsi/hpsa.c +++ linux-5.19.0/drivers/scsi/hpsa.c @@ -8929,7 +8929,7 @@ destroy_workqueue(h->monitor_ctlr_wq); h->monitor_ctlr_wq = NULL; } - kfree(h); + hpda_free_ctlr_info(h); return rc; } @@ -9790,7 +9790,8 @@ return 0; free_sas_phy: - hpsa_free_sas_phy(hpsa_sas_phy); + sas_phy_free(hpsa_sas_phy->phy); + kfree(hpsa_sas_phy); free_sas_port: hpsa_free_sas_port(hpsa_sas_port); free_sas_node: @@ -9826,10 +9827,12 @@ rc = hpsa_sas_port_add_rphy(hpsa_sas_port, rphy); if (rc) - goto free_sas_port; + goto free_sas_rphy; return 0; +free_sas_rphy: + sas_rphy_free(rphy); free_sas_port: hpsa_free_sas_port(hpsa_sas_port); device->sas_port = NULL; --- linux-5.19.0.orig/drivers/scsi/ibmvscsi/ibmvfc.c +++ linux-5.19.0/drivers/scsi/ibmvscsi/ibmvfc.c @@ -708,8 +708,13 @@ memset(vhost->async_crq.msgs.async, 0, PAGE_SIZE); vhost->async_crq.cur = 0; - list_for_each_entry(tgt, &vhost->targets, queue) - ibmvfc_del_tgt(tgt); + list_for_each_entry(tgt, &vhost->targets, queue) { + if (vhost->client_migrated) + tgt->need_login = 1; + else + ibmvfc_del_tgt(tgt); + } + scsi_block_requests(vhost->host); ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_INIT); vhost->job_step = ibmvfc_npiv_login; @@ -3235,9 +3240,12 @@ /* We need to re-setup the interpartition connection */ dev_info(vhost->dev, "Partition migrated, Re-enabling adapter\n"); vhost->client_migrated = 1; + + scsi_block_requests(vhost->host); ibmvfc_purge_requests(vhost, DID_REQUEUE); - ibmvfc_link_down(vhost, IBMVFC_LINK_DOWN); + ibmvfc_set_host_state(vhost, IBMVFC_LINK_DOWN); ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_REENABLE); + wake_up(&vhost->work_wait_q); } else if (crq->format == IBMVFC_PARTNER_FAILED || crq->format == IBMVFC_PARTNER_DEREGISTER) { dev_err(vhost->dev, "Host partner adapter deregistered or failed (rc=%d)\n", crq->format); ibmvfc_purge_requests(vhost, DID_ERROR); --- linux-5.19.0.orig/drivers/scsi/ipr.c +++ linux-5.19.0/drivers/scsi/ipr.c @@ -10872,11 +10872,19 @@ **/ static int __init ipr_init(void) { + int rc; + ipr_info("IBM Power RAID SCSI Device Driver version: %s %s\n", IPR_DRIVER_VERSION, IPR_DRIVER_DATE); register_reboot_notifier(&ipr_notifier); - return pci_register_driver(&ipr_driver); + rc = pci_register_driver(&ipr_driver); + if (rc) { + unregister_reboot_notifier(&ipr_notifier); + return rc; + } + + return 0; } /** --- linux-5.19.0.orig/drivers/scsi/iscsi_tcp.c +++ linux-5.19.0/drivers/scsi/iscsi_tcp.c @@ -52,6 +52,10 @@ static unsigned int iscsi_max_lun = ~0; module_param_named(max_lun, iscsi_max_lun, uint, S_IRUGO); +static bool iscsi_recv_from_iscsi_q; +module_param_named(recv_from_iscsi_q, iscsi_recv_from_iscsi_q, bool, 0644); +MODULE_PARM_DESC(recv_from_iscsi_q, "Set to true to read iSCSI data/headers from the iscsi_q workqueue. The default is false which will perform reads from the network softirq context."); + static int iscsi_sw_tcp_dbg; module_param_named(debug_iscsi_tcp, iscsi_sw_tcp_dbg, int, S_IRUGO | S_IWUSR); @@ -122,20 +126,13 @@ return 0; } -static void iscsi_sw_tcp_data_ready(struct sock *sk) +static void iscsi_sw_tcp_recv_data(struct iscsi_conn *conn) { - struct iscsi_conn *conn; - struct iscsi_tcp_conn *tcp_conn; + struct iscsi_tcp_conn *tcp_conn = conn->dd_data; + struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data; + struct sock *sk = tcp_sw_conn->sock->sk; read_descriptor_t rd_desc; - read_lock_bh(&sk->sk_callback_lock); - conn = sk->sk_user_data; - if (!conn) { - read_unlock_bh(&sk->sk_callback_lock); - return; - } - tcp_conn = conn->dd_data; - /* * Use rd_desc to pass 'conn' to iscsi_tcp_recv. * We set count to 1 because we want the network layer to @@ -144,13 +141,48 @@ */ rd_desc.arg.data = conn; rd_desc.count = 1; - tcp_read_sock(sk, &rd_desc, iscsi_sw_tcp_recv); - iscsi_sw_sk_state_check(sk); + tcp_read_sock(sk, &rd_desc, iscsi_sw_tcp_recv); /* If we had to (atomically) map a highmem page, * unmap it now. */ iscsi_tcp_segment_unmap(&tcp_conn->in.segment); + + iscsi_sw_sk_state_check(sk); +} + +static void iscsi_sw_tcp_recv_data_work(struct work_struct *work) +{ + struct iscsi_conn *conn = container_of(work, struct iscsi_conn, + recvwork); + struct iscsi_tcp_conn *tcp_conn = conn->dd_data; + struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data; + struct sock *sk = tcp_sw_conn->sock->sk; + + lock_sock(sk); + iscsi_sw_tcp_recv_data(conn); + release_sock(sk); +} + +static void iscsi_sw_tcp_data_ready(struct sock *sk) +{ + struct iscsi_sw_tcp_conn *tcp_sw_conn; + struct iscsi_tcp_conn *tcp_conn; + struct iscsi_conn *conn; + + read_lock_bh(&sk->sk_callback_lock); + conn = sk->sk_user_data; + if (!conn) { + read_unlock_bh(&sk->sk_callback_lock); + return; + } + tcp_conn = conn->dd_data; + tcp_sw_conn = tcp_conn->dd_data; + + if (tcp_sw_conn->queue_recv) + iscsi_conn_queue_recv(conn); + else + iscsi_sw_tcp_recv_data(conn); read_unlock_bh(&sk->sk_callback_lock); } @@ -205,7 +237,7 @@ old_write_space(sk); ISCSI_SW_TCP_DBG(conn, "iscsi_write_space\n"); - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); } static void iscsi_sw_tcp_conn_set_callbacks(struct iscsi_conn *conn) @@ -276,6 +308,9 @@ if (segment->total_copied + segment->size < segment->total_size) flags |= MSG_MORE; + if (tcp_sw_conn->queue_recv) + flags |= MSG_DONTWAIT; + /* Use sendpage if we can; else fall back to sendmsg */ if (!segment->data) { sg = segment->sg; @@ -557,6 +592,10 @@ conn = cls_conn->dd_data; tcp_conn = conn->dd_data; tcp_sw_conn = tcp_conn->dd_data; + INIT_WORK(&conn->recvwork, iscsi_sw_tcp_recv_data_work); + tcp_sw_conn->queue_recv = iscsi_recv_from_iscsi_q; + + mutex_init(&tcp_sw_conn->sock_lock); tfm = crypto_alloc_ahash("crc32c", 0, CRYPTO_ALG_ASYNC); if (IS_ERR(tfm)) @@ -592,11 +631,15 @@ static void iscsi_sw_tcp_release_conn(struct iscsi_conn *conn) { - struct iscsi_session *session = conn->session; struct iscsi_tcp_conn *tcp_conn = conn->dd_data; struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data; struct socket *sock = tcp_sw_conn->sock; + /* + * The iscsi transport class will make sure we are not called in + * parallel with start, stop, bind and destroys. However, this can be + * called twice if userspace does a stop then a destroy. + */ if (!sock) return; @@ -610,9 +653,11 @@ iscsi_sw_tcp_conn_restore_callbacks(conn); sock_put(sock->sk); - spin_lock_bh(&session->frwd_lock); + iscsi_suspend_rx(conn); + + mutex_lock(&tcp_sw_conn->sock_lock); tcp_sw_conn->sock = NULL; - spin_unlock_bh(&session->frwd_lock); + mutex_unlock(&tcp_sw_conn->sock_lock); sockfd_put(sock); } @@ -664,7 +709,6 @@ struct iscsi_cls_conn *cls_conn, uint64_t transport_eph, int is_leading) { - struct iscsi_session *session = cls_session->dd_data; struct iscsi_conn *conn = cls_conn->dd_data; struct iscsi_tcp_conn *tcp_conn = conn->dd_data; struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data; @@ -684,10 +728,10 @@ if (err) goto free_socket; - spin_lock_bh(&session->frwd_lock); + mutex_lock(&tcp_sw_conn->sock_lock); /* bind iSCSI connection and socket */ tcp_sw_conn->sock = sock; - spin_unlock_bh(&session->frwd_lock); + mutex_unlock(&tcp_sw_conn->sock_lock); /* setup Socket parameters */ sk = sock->sk; @@ -724,8 +768,15 @@ break; case ISCSI_PARAM_DATADGST_EN: iscsi_set_param(cls_conn, param, buf, buflen); + + mutex_lock(&tcp_sw_conn->sock_lock); + if (!tcp_sw_conn->sock) { + mutex_unlock(&tcp_sw_conn->sock_lock); + return -ENOTCONN; + } tcp_sw_conn->sendpage = conn->datadgst_en ? sock_no_sendpage : tcp_sw_conn->sock->ops->sendpage; + mutex_unlock(&tcp_sw_conn->sock_lock); break; case ISCSI_PARAM_MAX_R2T: return iscsi_tcp_set_max_r2t(conn, buf); @@ -740,8 +791,8 @@ enum iscsi_param param, char *buf) { struct iscsi_conn *conn = cls_conn->dd_data; - struct iscsi_tcp_conn *tcp_conn = conn->dd_data; - struct iscsi_sw_tcp_conn *tcp_sw_conn = tcp_conn->dd_data; + struct iscsi_sw_tcp_conn *tcp_sw_conn; + struct iscsi_tcp_conn *tcp_conn; struct sockaddr_in6 addr; struct socket *sock; int rc; @@ -751,21 +802,36 @@ case ISCSI_PARAM_CONN_ADDRESS: case ISCSI_PARAM_LOCAL_PORT: spin_lock_bh(&conn->session->frwd_lock); - if (!tcp_sw_conn || !tcp_sw_conn->sock) { + if (!conn->session->leadconn) { spin_unlock_bh(&conn->session->frwd_lock); return -ENOTCONN; } - sock = tcp_sw_conn->sock; - sock_hold(sock->sk); + /* + * The conn has been setup and bound, so just grab a ref + * incase a destroy runs while we are in the net layer. + */ + iscsi_get_conn(conn->cls_conn); spin_unlock_bh(&conn->session->frwd_lock); + tcp_conn = conn->dd_data; + tcp_sw_conn = tcp_conn->dd_data; + + mutex_lock(&tcp_sw_conn->sock_lock); + sock = tcp_sw_conn->sock; + if (!sock) { + rc = -ENOTCONN; + goto sock_unlock; + } + if (param == ISCSI_PARAM_LOCAL_PORT) rc = kernel_getsockname(sock, (struct sockaddr *)&addr); else rc = kernel_getpeername(sock, (struct sockaddr *)&addr); - sock_put(sock->sk); +sock_unlock: + mutex_unlock(&tcp_sw_conn->sock_lock); + iscsi_put_conn(conn->cls_conn); if (rc < 0) return rc; @@ -803,17 +869,21 @@ } tcp_conn = conn->dd_data; tcp_sw_conn = tcp_conn->dd_data; - sock = tcp_sw_conn->sock; - if (!sock) { - spin_unlock_bh(&session->frwd_lock); - return -ENOTCONN; - } - sock_hold(sock->sk); + /* + * The conn has been setup and bound, so just grab a ref + * incase a destroy runs while we are in the net layer. + */ + iscsi_get_conn(conn->cls_conn); spin_unlock_bh(&session->frwd_lock); - rc = kernel_getsockname(sock, - (struct sockaddr *)&addr); - sock_put(sock->sk); + mutex_lock(&tcp_sw_conn->sock_lock); + sock = tcp_sw_conn->sock; + if (!sock) + rc = -ENOTCONN; + else + rc = kernel_getsockname(sock, (struct sockaddr *)&addr); + mutex_unlock(&tcp_sw_conn->sock_lock); + iscsi_put_conn(conn->cls_conn); if (rc < 0) return rc; @@ -898,7 +968,7 @@ remove_session: iscsi_session_teardown(cls_session); remove_host: - iscsi_host_remove(shost); + iscsi_host_remove(shost, false); free_host: iscsi_host_free(shost); return NULL; @@ -915,7 +985,7 @@ iscsi_tcp_r2tpool_free(cls_session->dd_data); iscsi_session_teardown(cls_session); - iscsi_host_remove(shost); + iscsi_host_remove(shost, false); iscsi_host_free(shost); } --- linux-5.19.0.orig/drivers/scsi/iscsi_tcp.h +++ linux-5.19.0/drivers/scsi/iscsi_tcp.h @@ -28,6 +28,11 @@ struct iscsi_sw_tcp_conn { struct socket *sock; + /* Taken when accessing the sock from the netlink/sysfs interface */ + struct mutex sock_lock; + + struct work_struct recvwork; + bool queue_recv; struct iscsi_sw_tcp_send out; /* old values for socket callbacks */ --- linux-5.19.0.orig/drivers/scsi/libiscsi.c +++ linux-5.19.0/drivers/scsi/libiscsi.c @@ -83,7 +83,7 @@ "%s " dbg_fmt, __func__, ##arg); \ } while (0); -inline void iscsi_conn_queue_work(struct iscsi_conn *conn) +inline void iscsi_conn_queue_xmit(struct iscsi_conn *conn) { struct Scsi_Host *shost = conn->session->host; struct iscsi_host *ihost = shost_priv(shost); @@ -91,7 +91,17 @@ if (ihost->workq) queue_work(ihost->workq, &conn->xmitwork); } -EXPORT_SYMBOL_GPL(iscsi_conn_queue_work); +EXPORT_SYMBOL_GPL(iscsi_conn_queue_xmit); + +inline void iscsi_conn_queue_recv(struct iscsi_conn *conn) +{ + struct Scsi_Host *shost = conn->session->host; + struct iscsi_host *ihost = shost_priv(shost); + + if (ihost->workq && !test_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags)) + queue_work(ihost->workq, &conn->recvwork); +} +EXPORT_SYMBOL_GPL(iscsi_conn_queue_recv); static void __iscsi_update_cmdsn(struct iscsi_session *session, uint32_t exp_cmdsn, uint32_t max_cmdsn) @@ -765,7 +775,7 @@ goto free_task; } else { list_add_tail(&task->running, &conn->mgmtqueue); - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); } return task; @@ -1513,7 +1523,7 @@ */ iscsi_put_task(task); } - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); spin_unlock_bh(&conn->session->frwd_lock); } EXPORT_SYMBOL_GPL(iscsi_requeue_task); @@ -1782,7 +1792,7 @@ } } else { list_add_tail(&task->running, &conn->cmdqueue); - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); } session->queued_cmdsn++; @@ -1943,7 +1953,7 @@ /** * iscsi_suspend_tx - suspend iscsi_data_xmit - * @conn: iscsi conn tp stop processing IO on. + * @conn: iscsi conn to stop processing IO on. * * This function sets the suspend bit to prevent iscsi_data_xmit * from sending new IO, and if work is queued on the xmit thread @@ -1956,15 +1966,30 @@ set_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags); if (ihost->workq) - flush_workqueue(ihost->workq); + flush_work(&conn->xmitwork); } EXPORT_SYMBOL_GPL(iscsi_suspend_tx); static void iscsi_start_tx(struct iscsi_conn *conn) { clear_bit(ISCSI_CONN_FLAG_SUSPEND_TX, &conn->flags); - iscsi_conn_queue_work(conn); + iscsi_conn_queue_xmit(conn); +} + +/** + * iscsi_suspend_rx - Prevent recvwork from running again. + * @conn: iscsi conn to stop. + */ +void iscsi_suspend_rx(struct iscsi_conn *conn) +{ + struct Scsi_Host *shost = conn->session->host; + struct iscsi_host *ihost = shost_priv(shost); + + set_bit(ISCSI_CONN_FLAG_SUSPEND_RX, &conn->flags); + if (ihost->workq) + flush_work(&conn->recvwork); } +EXPORT_SYMBOL_GPL(iscsi_suspend_rx); /* * We want to make sure a ping is in flight. It has timed out. @@ -2828,11 +2853,12 @@ /** * iscsi_host_remove - remove host and sessions * @shost: scsi host + * @is_shutdown: true if called from a driver shutdown callout * * If there are any sessions left, this will initiate the removal and wait * for the completion. */ -void iscsi_host_remove(struct Scsi_Host *shost) +void iscsi_host_remove(struct Scsi_Host *shost, bool is_shutdown) { struct iscsi_host *ihost = shost_priv(shost); unsigned long flags; @@ -2841,7 +2867,11 @@ ihost->state = ISCSI_HOST_REMOVED; spin_unlock_irqrestore(&ihost->lock, flags); - iscsi_host_for_each_session(shost, iscsi_notify_host_removed); + if (!is_shutdown) + iscsi_host_for_each_session(shost, iscsi_notify_host_removed); + else + iscsi_host_for_each_session(shost, iscsi_force_destroy_session); + wait_event_interruptible(ihost->session_removal_wq, ihost->num_sessions == 0); if (signal_pending(current)) --- linux-5.19.0.orig/drivers/scsi/libsas/sas_expander.c +++ linux-5.19.0/drivers/scsi/libsas/sas_expander.c @@ -67,7 +67,7 @@ res = i->dft->lldd_execute_task(task, GFP_KERNEL); if (res) { - del_timer(&task->slow_task->timer); + del_timer_sync(&task->slow_task->timer); pr_notice("executing SMP task failed:%d\n", res); break; } --- linux-5.19.0.orig/drivers/scsi/libsas/sas_scsi_host.c +++ linux-5.19.0/drivers/scsi/libsas/sas_scsi_host.c @@ -467,6 +467,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-5.19.0.orig/drivers/scsi/lpfc/lpfc.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc.h @@ -604,7 +604,6 @@ #define FC_VFI_REGISTERED 0x800000 /* VFI is registered */ #define FC_FDISC_COMPLETED 0x1000000/* FDISC completed */ #define FC_DISC_DELAYED 0x2000000/* Delay NPort discovery */ -#define FC_RSCN_MEMENTO 0x4000000/* RSCN cmd processed */ uint32_t ct_flags; #define FC_CT_RFF_ID 0x1 /* RFF_ID accepted by switch */ @@ -987,7 +986,8 @@ u8 last_seq, u8 cr_cx_cmd); void (*__lpfc_sli_prep_abort_xri)(struct lpfc_iocbq *cmdiocbq, u16 ulp_context, u16 iotag, - u8 ulp_class, u16 cqid, bool ia); + u8 ulp_class, u16 cqid, bool ia, + bool wqec); /* expedite pool */ struct lpfc_epd_pool epd_pool; @@ -1577,10 +1577,7 @@ u32 cgn_acqe_cnt; /* RX monitor handling for CMF */ - struct rxtable_entry *rxtable; /* RX_monitor information */ - atomic_t rxtable_idx_head; -#define LPFC_RXMONITOR_TABLE_IN_USE (LPFC_MAX_RXMONITOR_ENTRY + 73) - atomic_t rxtable_idx_tail; + struct lpfc_rx_info_monitor *rx_monitor; atomic_t rx_max_read_cnt; /* Maximum read bytes */ uint64_t rx_block_cnt; @@ -1629,7 +1626,7 @@ #define LPFC_MAX_RXMONITOR_ENTRY 800 #define LPFC_MAX_RXMONITOR_DUMP 32 -struct rxtable_entry { +struct rx_info_entry { uint64_t cmf_bytes; /* Total no of read bytes for CMF_SYNC_WQE */ uint64_t total_bytes; /* Total no of read bytes requested */ uint64_t rcv_bytes; /* Total no of read bytes completed */ @@ -1644,6 +1641,13 @@ uint32_t timer_interval; }; +struct lpfc_rx_info_monitor { + struct rx_info_entry *ring; /* info organized in a circular buffer */ + u32 head_idx, tail_idx; /* index to head/tail of ring */ + spinlock_t lock; /* spinlock for ring */ + u32 entries; /* storing number entries/size of ring */ +}; + static inline struct Scsi_Host * lpfc_shost_from_vport(struct lpfc_vport *vport) { --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_bsg.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_bsg.h @@ -1,7 +1,7 @@ /******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * - * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term * + * Copyright (C) 2017-2022 Broadcom. All Rights Reserved. The term * * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. * * Copyright (C) 2010-2015 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_crtn.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_crtn.h @@ -92,6 +92,14 @@ void lpfc_cgn_update_stat(struct lpfc_hba *phba, uint32_t dtag); void lpfc_unblock_requests(struct lpfc_hba *phba); void lpfc_block_requests(struct lpfc_hba *phba); +int lpfc_rx_monitor_create_ring(struct lpfc_rx_info_monitor *rx_monitor, + u32 entries); +void lpfc_rx_monitor_destroy_ring(struct lpfc_rx_info_monitor *rx_monitor); +void lpfc_rx_monitor_record(struct lpfc_rx_info_monitor *rx_monitor, + struct rx_info_entry *entry); +u32 lpfc_rx_monitor_report(struct lpfc_hba *phba, + struct lpfc_rx_info_monitor *rx_monitor, char *buf, + u32 buf_len, u32 max_read_entries); void lpfc_mbx_cmpl_local_config_link(struct lpfc_hba *, LPFC_MBOXQ_t *); void lpfc_mbx_cmpl_reg_login(struct lpfc_hba *, LPFC_MBOXQ_t *); @@ -370,7 +378,7 @@ u8 cr_cx_cmd); void lpfc_sli_prep_abort_xri(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocbq, u16 ulp_context, u16 iotag, u8 ulp_class, u16 cqid, - bool ia); + bool ia, bool wqec); struct lpfc_sglq *__lpfc_clear_active_sglq(struct lpfc_hba *phba, uint16_t xri); struct lpfc_sglq *__lpfc_sli_get_nvmet_sglq(struct lpfc_hba *phba, struct lpfc_iocbq *piocbq); --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_ct.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_ct.c @@ -1509,7 +1509,7 @@ struct lpfc_sli_ct_request *CTrsp; int did; struct lpfc_nodelist *ndlp = NULL; - struct lpfc_nodelist *ns_ndlp = NULL; + struct lpfc_nodelist *ns_ndlp = cmdiocb->ndlp; uint32_t fc4_data_0, fc4_data_1; u32 ulp_status = get_job_ulpstatus(phba, rspiocb); u32 ulp_word4 = get_job_word4(phba, rspiocb); @@ -1522,15 +1522,12 @@ ulp_status, ulp_word4, did); /* Ignore response if link flipped after this request was made */ - if ((uint32_t) cmdiocb->event_tag != phba->fc_eventTag) { + if ((uint32_t)cmdiocb->event_tag != phba->fc_eventTag) { lpfc_printf_vlog(vport, KERN_INFO, LOG_DISCOVERY, "9046 Event tag mismatch. Ignoring NS rsp\n"); goto out; } - /* Preserve the nameserver node to release the reference. */ - ns_ndlp = cmdiocb->ndlp; - if (ulp_status == IOSTAT_SUCCESS) { /* Good status, continue checking */ CTrsp = (struct lpfc_sli_ct_request *)outp->virt; --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_debugfs.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_debugfs.c @@ -1,7 +1,7 @@ /******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * - * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term * + * Copyright (C) 2017-2022 Broadcom. All Rights Reserved. The term * * “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. * * Copyright (C) 2007-2015 Emulex. All rights reserved. * * EMULEX and SLI are trademarks of Emulex. * @@ -2607,8 +2607,8 @@ struct lpfc_sli4_hdw_queue *qp; struct lpfc_multixri_pool *multixri_pool; - if (nbytes > 64) - nbytes = 64; + if (nbytes > sizeof(mybuf) - 1) + nbytes = sizeof(mybuf) - 1; memset(mybuf, 0, sizeof(mybuf)); @@ -2688,8 +2688,8 @@ if (!phba->targetport) return -ENXIO; - if (nbytes > 64) - nbytes = 64; + if (nbytes > sizeof(mybuf) - 1) + nbytes = sizeof(mybuf) - 1; memset(mybuf, 0, sizeof(mybuf)); @@ -2826,8 +2826,8 @@ char mybuf[64]; char *pbuf; - if (nbytes > 64) - nbytes = 64; + if (nbytes > sizeof(mybuf) - 1) + nbytes = sizeof(mybuf) - 1; memset(mybuf, 0, sizeof(mybuf)); @@ -2954,8 +2954,8 @@ char mybuf[64]; char *pbuf; - if (nbytes > 63) - nbytes = 63; + if (nbytes > sizeof(mybuf) - 1) + nbytes = sizeof(mybuf) - 1; memset(mybuf, 0, sizeof(mybuf)); @@ -3060,8 +3060,8 @@ char *pbuf; int i; - if (nbytes > 64) - nbytes = 64; + if (nbytes > sizeof(mybuf) - 1) + nbytes = sizeof(mybuf) - 1; memset(mybuf, 0, sizeof(mybuf)); @@ -5156,7 +5156,7 @@ static int lpfc_idiag_extacc_avail_get(struct lpfc_hba *phba, char *pbuffer, int len) { - uint16_t ext_cnt, ext_size; + uint16_t ext_cnt = 0, ext_size = 0; len += scnprintf(pbuffer+len, LPFC_EXT_ACC_BUF_SIZE-len, "\nAvailable Extents Information:\n"); @@ -5531,7 +5531,7 @@ if (!debug) goto out; - debug->buffer = vmalloc(MAX_DEBUGFS_RX_TABLE_SIZE); + debug->buffer = vmalloc(MAX_DEBUGFS_RX_INFO_SIZE); if (!debug->buffer) { kfree(debug); goto out; @@ -5552,57 +5552,18 @@ struct lpfc_rx_monitor_debug *debug = file->private_data; struct lpfc_hba *phba = (struct lpfc_hba *)debug->i_private; char *buffer = debug->buffer; - struct rxtable_entry *entry; - int i, len = 0, head, tail, last, start; - - head = atomic_read(&phba->rxtable_idx_head); - while (head == LPFC_RXMONITOR_TABLE_IN_USE) { - /* Table is getting updated */ - msleep(20); - head = atomic_read(&phba->rxtable_idx_head); - } - tail = atomic_xchg(&phba->rxtable_idx_tail, head); - if (!phba->rxtable || head == tail) { - len += scnprintf(buffer + len, MAX_DEBUGFS_RX_TABLE_SIZE - len, - "Rxtable is empty\n"); - goto out; + if (!phba->rx_monitor) { + scnprintf(buffer, MAX_DEBUGFS_RX_INFO_SIZE, + "Rx Monitor Info is empty.\n"); + } else { + lpfc_rx_monitor_report(phba, phba->rx_monitor, buffer, + MAX_DEBUGFS_RX_INFO_SIZE, + LPFC_MAX_RXMONITOR_ENTRY); } - last = (head > tail) ? head : LPFC_MAX_RXMONITOR_ENTRY; - start = tail; - len += scnprintf(buffer + len, MAX_DEBUGFS_RX_TABLE_SIZE - len, - " MaxBPI Tot_Data_CMF Tot_Data_Cmd " - "Tot_Data_Cmpl Lat(us) Avg_IO Max_IO " - "Bsy IO_cnt Info BWutil(ms)\n"); -get_table: - for (i = start; i < last; i++) { - entry = &phba->rxtable[i]; - len += scnprintf(buffer + len, MAX_DEBUGFS_RX_TABLE_SIZE - len, - "%3d:%12lld %12lld %12lld %12lld " - "%7lldus %8lld %7lld " - "%2d %4d %2d %2d(%2d)\n", - i, entry->max_bytes_per_interval, - entry->cmf_bytes, - entry->total_bytes, - entry->rcv_bytes, - entry->avg_io_latency, - entry->avg_io_size, - entry->max_read_cnt, - entry->cmf_busy, - entry->io_cnt, - entry->cmf_info, - entry->timer_utilization, - entry->timer_interval); - } - - if (head != last) { - start = 0; - last = head; - goto get_table; - } -out: - return simple_read_from_buffer(buf, nbytes, ppos, buffer, len); + return simple_read_from_buffer(buf, nbytes, ppos, buffer, + strlen(buffer)); } static int --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_debugfs.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_debugfs.h @@ -282,7 +282,7 @@ void *ptr_private; }; -#define MAX_DEBUGFS_RX_TABLE_SIZE (128 * LPFC_MAX_RXMONITOR_ENTRY) +#define MAX_DEBUGFS_RX_INFO_SIZE (128 * LPFC_MAX_RXMONITOR_ENTRY) struct lpfc_rx_monitor_debug { char *i_private; char *buffer; --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_els.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_els.c @@ -1790,18 +1790,20 @@ /* Move this back to NPR state */ if (memcmp(&ndlp->nlp_portname, name, sizeof(struct lpfc_name)) == 0) { - /* The new_ndlp is replacing ndlp totally, so we need - * to put ndlp on UNUSED list and try to free it. + /* The ndlp doesn't have a portname yet, but does have an + * NPort ID. The new_ndlp portname matches the Rport's + * portname. Reinstantiate the new_ndlp and reset the ndlp. */ lpfc_printf_vlog(vport, KERN_INFO, LOG_ELS, "3179 PLOGI confirm NEW: %x %x\n", new_ndlp->nlp_DID, keepDID); /* Two ndlps cannot have the same did on the nodelist. - * Note: for this case, ndlp has a NULL WWPN so setting - * the nlp_fc4_type isn't required. + * The KeepDID and keep_nlp_fc4_type need to be swapped + * because ndlp is inflight with no WWPN. */ ndlp->nlp_DID = keepDID; + ndlp->nlp_fc4_type = keep_nlp_fc4_type; lpfc_nlp_set_state(vport, ndlp, keep_nlp_state); if (phba->sli_rev == LPFC_SLI_REV4 && active_rrqs_xri_bitmap) @@ -1816,9 +1818,8 @@ lpfc_unreg_rpi(vport, ndlp); - /* Two ndlps cannot have the same did and the fc4 - * type must be transferred because the ndlp is in - * flight. + /* The ndlp and new_ndlp both have WWPNs but are swapping + * NPort Ids and attributes. */ ndlp->nlp_DID = keepDID; ndlp->nlp_fc4_type = keep_nlp_fc4_type; @@ -1886,7 +1887,6 @@ else { spin_lock_irq(shost->host_lock); vport->fc_flag &= ~FC_RSCN_MODE; - vport->fc_flag |= FC_RSCN_MEMENTO; spin_unlock_irq(shost->host_lock); } } @@ -2434,14 +2434,13 @@ u32 local_nlp_type, elscmd; /* - * If discovery was kicked off from RSCN mode, - * the FC4 types supported from a + * If we are in RSCN mode, the FC4 types supported from a * previous GFT_ID command may not be accurate. So, if we * are a NVME Initiator, always look for the possibility of * the remote NPort beng a NVME Target. */ if (phba->sli_rev == LPFC_SLI_REV4 && - vport->fc_flag & (FC_RSCN_MODE | FC_RSCN_MEMENTO) && + vport->fc_flag & FC_RSCN_MODE && vport->nvmei_support) ndlp->nlp_fc4_type |= NLP_FC4_NVME; local_nlp_type = ndlp->nlp_fc4_type; @@ -7915,7 +7914,6 @@ if ((rscn_cnt < FC_MAX_HOLD_RSCN) && !(vport->fc_flag & FC_RSCN_DISCOVERY)) { vport->fc_flag |= FC_RSCN_MODE; - vport->fc_flag &= ~FC_RSCN_MEMENTO; spin_unlock_irq(shost->host_lock); if (rscn_cnt) { cmd = vport->fc_rscn_id_list[rscn_cnt-1]->virt; @@ -7965,7 +7963,6 @@ spin_lock_irq(shost->host_lock); vport->fc_flag |= FC_RSCN_MODE; - vport->fc_flag &= ~FC_RSCN_MEMENTO; spin_unlock_irq(shost->host_lock); vport->fc_rscn_id_list[vport->fc_rscn_id_cnt++] = pcmd; /* Indicate we are done walking fc_rscn_id_list on this vport */ --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_hbadisc.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_hbadisc.c @@ -1354,8 +1354,7 @@ spin_lock_irq(shost->host_lock); vport->fc_flag &= ~(FC_PT2PT | FC_PT2PT_PLOGI | FC_ABORT_DISCOVERY | - FC_RSCN_MEMENTO | FC_RSCN_MODE | - FC_NLP_MORE | FC_RSCN_DISCOVERY); + FC_RSCN_MODE | FC_NLP_MORE | FC_RSCN_DISCOVERY); vport->fc_flag |= FC_NDISC_ACTIVE; vport->fc_ns_retry = 0; spin_unlock_irq(shost->host_lock); @@ -2965,7 +2964,7 @@ uint32_t boot_flag, addr_mode; uint16_t next_fcf_index, fcf_index; uint16_t current_fcf_index; - uint16_t vlan_id; + uint16_t vlan_id = LPFC_FCOE_NULL_VID; int rc; /* If link state is not up, stop the roundrobin failover process */ @@ -3070,7 +3069,7 @@ struct fcf_record *new_fcf_record; uint32_t boot_flag, addr_mode; uint16_t fcf_index, next_fcf_index; - uint16_t vlan_id; + uint16_t vlan_id = LPFC_FCOE_NULL_VID; int rc; /* If link state is not up, no need to proceed */ --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_hw4.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_hw4.h @@ -4736,7 +4736,6 @@ uint32_t rsvd_12_15[4]; /* word 12-15 */ }; -#define INHIBIT_ABORT 1 #define T_REQUEST_TAG 3 #define T_XRI_TAG 1 --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_ids.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_ids.h @@ -1,7 +1,7 @@ /******************************************************************* * This file is part of the Emulex Linux Device Driver for * * Fibre Channel Host Bus Adapters. * - * Copyright (C) 2017-2021 Broadcom. All Rights Reserved. The term * + * Copyright (C) 2017-2022 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. * --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_init.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_init.c @@ -325,8 +325,7 @@ prog_id_word = pmboxq->u.mb.un.varWords[7]; /* Decode the Option rom version word to a readable string */ - if (prg->dist < 4) - dist = dist_char[prg->dist]; + dist = dist_char[prg->dist]; if ((prg->dist == 3) && (prg->num == 0)) snprintf(phba->OptionROMVersion, 32, "%d.%d%d", @@ -2255,6 +2254,101 @@ return; } +static void +lpfc_fill_vpd(struct lpfc_hba *phba, uint8_t *vpd, int length, int *pindex) +{ + int i, j; + + while (length > 0) { + /* Look for Serial Number */ + if ((vpd[*pindex] == 'S') && (vpd[*pindex + 1] == 'N')) { + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + j = 0; + length -= (3+i); + while (i--) { + phba->SerialNumber[j++] = vpd[(*pindex)++]; + if (j == 31) + break; + } + phba->SerialNumber[j] = 0; + continue; + } else if ((vpd[*pindex] == 'V') && (vpd[*pindex + 1] == '1')) { + phba->vpd_flag |= VPD_MODEL_DESC; + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + j = 0; + length -= (3+i); + while (i--) { + phba->ModelDesc[j++] = vpd[(*pindex)++]; + if (j == 255) + break; + } + phba->ModelDesc[j] = 0; + continue; + } else if ((vpd[*pindex] == 'V') && (vpd[*pindex + 1] == '2')) { + phba->vpd_flag |= VPD_MODEL_NAME; + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + j = 0; + length -= (3+i); + while (i--) { + phba->ModelName[j++] = vpd[(*pindex)++]; + if (j == 79) + break; + } + phba->ModelName[j] = 0; + continue; + } else if ((vpd[*pindex] == 'V') && (vpd[*pindex + 1] == '3')) { + phba->vpd_flag |= VPD_PROGRAM_TYPE; + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + j = 0; + length -= (3+i); + while (i--) { + phba->ProgramType[j++] = vpd[(*pindex)++]; + if (j == 255) + break; + } + phba->ProgramType[j] = 0; + continue; + } else if ((vpd[*pindex] == 'V') && (vpd[*pindex + 1] == '4')) { + phba->vpd_flag |= VPD_PORT; + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + j = 0; + length -= (3 + i); + while (i--) { + if ((phba->sli_rev == LPFC_SLI_REV4) && + (phba->sli4_hba.pport_name_sta == + LPFC_SLI4_PPNAME_GET)) { + j++; + (*pindex)++; + } else + phba->Port[j++] = vpd[(*pindex)++]; + if (j == 19) + break; + } + if ((phba->sli_rev != LPFC_SLI_REV4) || + (phba->sli4_hba.pport_name_sta == + LPFC_SLI4_PPNAME_NON)) + phba->Port[j] = 0; + continue; + } else { + *pindex += 2; + i = vpd[*pindex]; + *pindex += 1; + *pindex += i; + length -= (3 + i); + } + } +} + /** * lpfc_parse_vpd - Parse VPD (Vital Product Data) * @phba: pointer to lpfc hba data structure. @@ -2274,7 +2368,7 @@ { uint8_t lenlo, lenhi; int Length; - int i, j; + int i; int finished = 0; int index = 0; @@ -2307,101 +2401,10 @@ Length = ((((unsigned short)lenhi) << 8) + lenlo); if (Length > len - index) Length = len - index; - while (Length > 0) { - /* Look for Serial Number */ - if ((vpd[index] == 'S') && (vpd[index+1] == 'N')) { - index += 2; - i = vpd[index]; - index += 1; - j = 0; - Length -= (3+i); - while(i--) { - phba->SerialNumber[j++] = vpd[index++]; - if (j == 31) - break; - } - phba->SerialNumber[j] = 0; - continue; - } - else if ((vpd[index] == 'V') && (vpd[index+1] == '1')) { - phba->vpd_flag |= VPD_MODEL_DESC; - index += 2; - i = vpd[index]; - index += 1; - j = 0; - Length -= (3+i); - while(i--) { - phba->ModelDesc[j++] = vpd[index++]; - if (j == 255) - break; - } - phba->ModelDesc[j] = 0; - continue; - } - else if ((vpd[index] == 'V') && (vpd[index+1] == '2')) { - phba->vpd_flag |= VPD_MODEL_NAME; - index += 2; - i = vpd[index]; - index += 1; - j = 0; - Length -= (3+i); - while(i--) { - phba->ModelName[j++] = vpd[index++]; - if (j == 79) - break; - } - phba->ModelName[j] = 0; - continue; - } - else if ((vpd[index] == 'V') && (vpd[index+1] == '3')) { - phba->vpd_flag |= VPD_PROGRAM_TYPE; - index += 2; - i = vpd[index]; - index += 1; - j = 0; - Length -= (3+i); - while(i--) { - phba->ProgramType[j++] = vpd[index++]; - if (j == 255) - break; - } - phba->ProgramType[j] = 0; - continue; - } - else if ((vpd[index] == 'V') && (vpd[index+1] == '4')) { - phba->vpd_flag |= VPD_PORT; - index += 2; - i = vpd[index]; - index += 1; - j = 0; - Length -= (3+i); - while(i--) { - if ((phba->sli_rev == LPFC_SLI_REV4) && - (phba->sli4_hba.pport_name_sta == - LPFC_SLI4_PPNAME_GET)) { - j++; - index++; - } else - phba->Port[j++] = vpd[index++]; - if (j == 19) - break; - } - if ((phba->sli_rev != LPFC_SLI_REV4) || - (phba->sli4_hba.pport_name_sta == - LPFC_SLI4_PPNAME_NON)) - phba->Port[j] = 0; - continue; - } - else { - index += 2; - i = vpd[index]; - index += 1; - index += i; - Length -= (3 + i); - } - } - finished = 0; - break; + + lpfc_fill_vpd(phba, vpd, Length, &index); + finished = 0; + break; case 0x78: finished = 1; break; @@ -4821,7 +4824,7 @@ rc = lpfc_vmid_res_alloc(phba, vport); if (rc) - goto out; + goto out_put_shost; /* Initialize all internally managed lists. */ INIT_LIST_HEAD(&vport->fc_nodes); @@ -4839,16 +4842,17 @@ error = scsi_add_host_with_dma(shost, dev, &phba->pcidev->dev); if (error) - goto out_put_shost; + goto out_free_vmid; spin_lock_irq(&phba->port_list_lock); list_add_tail(&vport->listentry, &phba->port_list); spin_unlock_irq(&phba->port_list_lock); return vport; -out_put_shost: +out_free_vmid: kfree(vport->vmid); bitmap_free(vport->vmid_priority_range); +out_put_shost: scsi_host_put(shost); out: return NULL; @@ -5571,38 +5575,12 @@ void lpfc_cgn_dump_rxmonitor(struct lpfc_hba *phba) { - struct rxtable_entry *entry; - int cnt = 0, head, tail, last, start; - - head = atomic_read(&phba->rxtable_idx_head); - tail = atomic_read(&phba->rxtable_idx_tail); - if (!phba->rxtable || head == tail) { - lpfc_printf_log(phba, KERN_ERR, LOG_CGN_MGMT, - "4411 Rxtable is empty\n"); - return; - } - last = tail; - start = head; - - /* Display the last LPFC_MAX_RXMONITOR_DUMP entries from the rxtable */ - while (start != last) { - if (start) - start--; - else - start = LPFC_MAX_RXMONITOR_ENTRY - 1; - entry = &phba->rxtable[start]; + if (!phba->rx_monitor) { lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT, - "4410 %02d: MBPI %lld Xmit %lld Cmpl %lld " - "Lat %lld ASz %lld Info %02d BWUtil %d " - "Int %d slot %d\n", - cnt, entry->max_bytes_per_interval, - entry->total_bytes, entry->rcv_bytes, - entry->avg_io_latency, entry->avg_io_size, - entry->cmf_info, entry->timer_utilization, - entry->timer_interval, start); - cnt++; - if (cnt >= LPFC_MAX_RXMONITOR_DUMP) - return; + "4411 Rx Monitor Info is empty.\n"); + } else { + lpfc_rx_monitor_report(phba, phba->rx_monitor, NULL, 0, + LPFC_MAX_RXMONITOR_DUMP); } } @@ -6009,9 +5987,8 @@ { struct lpfc_hba *phba = container_of(timer, struct lpfc_hba, cmf_timer); - struct rxtable_entry *entry; + struct rx_info_entry entry; uint32_t io_cnt; - uint32_t head, tail; uint32_t busy, max_read; uint64_t total, rcv, lat, mbpi, extra, cnt; int timer_interval = LPFC_CMF_INTERVAL; @@ -6131,40 +6108,30 @@ } /* Save rxmonitor information for debug */ - if (phba->rxtable) { - head = atomic_xchg(&phba->rxtable_idx_head, - LPFC_RXMONITOR_TABLE_IN_USE); - entry = &phba->rxtable[head]; - entry->total_bytes = total; - entry->cmf_bytes = total + extra; - entry->rcv_bytes = rcv; - entry->cmf_busy = busy; - entry->cmf_info = phba->cmf_active_info; + if (phba->rx_monitor) { + entry.total_bytes = total; + entry.cmf_bytes = total + extra; + entry.rcv_bytes = rcv; + entry.cmf_busy = busy; + entry.cmf_info = phba->cmf_active_info; if (io_cnt) { - entry->avg_io_latency = div_u64(lat, io_cnt); - entry->avg_io_size = div_u64(rcv, io_cnt); + entry.avg_io_latency = div_u64(lat, io_cnt); + entry.avg_io_size = div_u64(rcv, io_cnt); } else { - entry->avg_io_latency = 0; - entry->avg_io_size = 0; + entry.avg_io_latency = 0; + entry.avg_io_size = 0; } - entry->max_read_cnt = max_read; - entry->io_cnt = io_cnt; - entry->max_bytes_per_interval = mbpi; + entry.max_read_cnt = max_read; + entry.io_cnt = io_cnt; + entry.max_bytes_per_interval = mbpi; if (phba->cmf_active_mode == LPFC_CFG_MANAGED) - entry->timer_utilization = phba->cmf_last_ts; + entry.timer_utilization = phba->cmf_last_ts; else - entry->timer_utilization = ms; - entry->timer_interval = ms; + entry.timer_utilization = ms; + entry.timer_interval = ms; phba->cmf_last_ts = 0; - /* Increment rxtable index */ - head = (head + 1) % LPFC_MAX_RXMONITOR_ENTRY; - tail = atomic_read(&phba->rxtable_idx_tail); - if (head == tail) { - tail = (tail + 1) % LPFC_MAX_RXMONITOR_ENTRY; - atomic_set(&phba->rxtable_idx_tail, tail); - } - atomic_set(&phba->rxtable_idx_head, head); + lpfc_rx_monitor_record(phba->rx_monitor, &entry); } if (phba->cmf_active_mode == LPFC_CFG_MONITOR) { @@ -8061,7 +8028,7 @@ /* Allocate device driver memory */ rc = lpfc_mem_alloc(phba, SGL_ALIGN_SZ); if (rc) - return -ENOMEM; + goto out_destroy_workqueue; /* IF Type 2 ports get initialized now. */ if (bf_get(lpfc_sli_intf_if_type, &phba->sli4_hba.sli_intf) >= @@ -8323,8 +8290,10 @@ &phba->pcidev->dev, phba->cfg_sg_dma_buf_size, i, 0); - if (!phba->lpfc_sg_dma_buf_pool) + if (!phba->lpfc_sg_dma_buf_pool) { + rc = -ENOMEM; goto out_free_bsmbx; + } phba->lpfc_cmd_rsp_buf_pool = dma_pool_create("lpfc_cmd_rsp_buf_pool", @@ -8332,8 +8301,10 @@ sizeof(struct fcp_cmnd) + sizeof(struct fcp_rsp), i, 0); - if (!phba->lpfc_cmd_rsp_buf_pool) + if (!phba->lpfc_cmd_rsp_buf_pool) { + rc = -ENOMEM; goto out_free_sg_dma_buf; + } mempool_free(mboxq, phba->mbox_mem_pool); @@ -8489,6 +8460,9 @@ lpfc_destroy_bootstrap_mbox(phba); out_free_mem: lpfc_mem_free(phba); +out_destroy_workqueue: + destroy_workqueue(phba->wq); + phba->wq = NULL; return rc; } @@ -12420,7 +12394,7 @@ for (i = 0; i < phba->cfg_irq_chann; i++) { eqhdl = lpfc_get_eq_hdl(i); - eqhdl->irq = LPFC_VECTOR_MAP_EMPTY; + eqhdl->irq = LPFC_IRQ_EMPTY; eqhdl->phba = phba; } } @@ -12793,7 +12767,7 @@ static void lpfc_cpuhp_remove(struct lpfc_hba *phba) { - if (phba->pport->fc_flag & FC_OFFLINE_MODE) + if (phba->pport && (phba->pport->fc_flag & FC_OFFLINE_MODE)) return; __lpfc_cpuhp_remove(phba); @@ -13057,9 +13031,17 @@ LPFC_DRIVER_HANDLER_NAME"%d", index); eqhdl->idx = index; - rc = request_irq(pci_irq_vector(phba->pcidev, index), - &lpfc_sli4_hba_intr_handler, 0, - name, eqhdl); + rc = pci_irq_vector(phba->pcidev, index); + if (rc < 0) { + lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, + "0489 MSI-X fast-path (%d) " + "pci_irq_vec failed (%d)\n", index, rc); + goto cfg_fail_out; + } + eqhdl->irq = rc; + + rc = request_irq(eqhdl->irq, &lpfc_sli4_hba_intr_handler, 0, + name, eqhdl); if (rc) { lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, "0486 MSI-X fast-path (%d) " @@ -13067,8 +13049,6 @@ goto cfg_fail_out; } - eqhdl->irq = pci_irq_vector(phba->pcidev, index); - if (aff_mask) { /* If found a neighboring online cpu, set affinity */ if (cpu_select < nr_cpu_ids) @@ -13185,7 +13165,14 @@ } eqhdl = lpfc_get_eq_hdl(0); - eqhdl->irq = pci_irq_vector(phba->pcidev, 0); + rc = pci_irq_vector(phba->pcidev, 0); + if (rc < 0) { + pci_free_irq_vectors(phba->pcidev); + lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, + "0496 MSI pci_irq_vec failed (%d)\n", rc); + return rc; + } + eqhdl->irq = rc; cpu = cpumask_first(cpu_present_mask); lpfc_assign_eq_map_info(phba, 0, LPFC_CPU_FIRST_IRQ, cpu); @@ -13212,8 +13199,8 @@ * MSI-X -> MSI -> IRQ. * * Return codes - * 0 - successful - * other values - error + * Interrupt mode (2, 1, 0) - successful + * LPFC_INTR_ERROR - error **/ static uint32_t lpfc_sli4_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode) @@ -13258,7 +13245,14 @@ intr_mode = 0; eqhdl = lpfc_get_eq_hdl(0); - eqhdl->irq = pci_irq_vector(phba->pcidev, 0); + retval = pci_irq_vector(phba->pcidev, 0); + if (retval < 0) { + lpfc_printf_log(phba, KERN_WARNING, LOG_INIT, + "0502 INTR pci_irq_vec failed (%d)\n", + retval); + return LPFC_INTR_ERROR; + } + eqhdl->irq = retval; cpu = cpumask_first(cpu_present_mask); lpfc_assign_eq_map_info(phba, 0, LPFC_CPU_FIRST_IRQ, --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_mem.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_mem.c @@ -344,9 +344,12 @@ phba->cgn_i = NULL; } - /* Free RX table */ - kfree(phba->rxtable); - phba->rxtable = NULL; + /* Free RX Monitor */ + if (phba->rx_monitor) { + lpfc_rx_monitor_destroy_ring(phba->rx_monitor); + kfree(phba->rx_monitor); + phba->rx_monitor = NULL; + } /* Free the iocb lookup array */ kfree(psli->iocbq_lookup); --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_nvme.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_nvme.c @@ -2824,6 +2824,7 @@ wcqep->word0 = 0; bf_set(lpfc_wcqe_c_status, wcqep, stat); wcqep->parameter = param; + wcqep->total_data_placed = 0; wcqep->word3 = 0; /* xb is 0 */ /* Call release with XB=1 to queue the IO into the abort list. */ --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_nvmet.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_nvmet.c @@ -3337,46 +3337,6 @@ return 1; } -/** - * lpfc_nvmet_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. - **/ -static void -lpfc_nvmet_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 I/O 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); -} - static int lpfc_nvmet_sol_fcp_issue_abort(struct lpfc_hba *phba, struct lpfc_async_xchg_ctx *ctxp, @@ -3386,7 +3346,7 @@ struct lpfc_iocbq *abts_wqeq; struct lpfc_nodelist *ndlp; unsigned long flags; - u8 opt; + bool ia; int rc; tgtp = (struct lpfc_nvmet_tgtport *)phba->targetport->private; @@ -3426,7 +3386,7 @@ } abts_wqeq = ctxp->abort_wqeq; ctxp->state = LPFC_NVME_STE_ABORT; - opt = (ctxp->flag & LPFC_NVME_ABTS_RCV) ? INHIBIT_ABORT : 0; + ia = (ctxp->flag & LPFC_NVME_ABTS_RCV) ? true : false; spin_unlock_irqrestore(&ctxp->ctxlock, flags); /* Announce entry to new IO submit field. */ @@ -3472,7 +3432,9 @@ /* Ready - mark outstanding as aborted by driver. */ abts_wqeq->cmd_flag |= LPFC_DRIVER_ABORTED; - lpfc_nvmet_prep_abort_wqe(abts_wqeq, ctxp->wqeq->sli4_xritag, opt); + lpfc_sli_prep_abort_xri(phba, abts_wqeq, ctxp->wqeq->sli4_xritag, + abts_wqeq->iotag, CLASS3, + LPFC_WQE_CQ_ID_DEFAULT, ia, true); /* ABTS WQE must go to the same WQ as the WQE to be aborted */ abts_wqeq->hba_wqidx = ctxp->wqeq->hba_wqidx; --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_scsi.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_scsi.c @@ -5456,7 +5456,6 @@ cur_iocbq->cmd_flag |= LPFC_IO_VMID; } } - atomic_inc(&ndlp->cmd_pending); #ifdef CONFIG_SCSI_LPFC_DEBUG_FS if (unlikely(phba->hdwqstat_on & LPFC_CHECK_SCSI_IO)) --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_sli.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_sli.c @@ -2003,10 +2003,12 @@ sync_buf->cmd_flag |= LPFC_IO_CMF; ret_val = lpfc_sli4_issue_wqe(phba, &phba->sli4_hba.hdwq[0], sync_buf); - if (ret_val) + if (ret_val) { lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT, "6214 Cannot issue CMF_SYNC_WQE: x%x\n", ret_val); + __lpfc_sli_release_iocbq(phba, sync_buf); + } out_unlock: spin_unlock_irqrestore(&phba->hbalock, iflags); return ret_val; @@ -6195,6 +6197,9 @@ struct lpfc_mbx_get_rsrc_extent_info *rsrc_info; LPFC_MBOXQ_t *mbox; + *extnt_count = 0; + *extnt_size = 0; + mbox = (LPFC_MBOXQ_t *) mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); if (!mbox) return -ENOMEM; @@ -7953,6 +7958,172 @@ } /** + * lpfc_rx_monitor_create_ring - Initialize ring buffer for rx_monitor + * @rx_monitor: Pointer to lpfc_rx_info_monitor object + * @entries: Number of rx_info_entry objects to allocate in ring + * + * Return: + * 0 - Success + * ENOMEM - Failure to kmalloc + **/ +int lpfc_rx_monitor_create_ring(struct lpfc_rx_info_monitor *rx_monitor, + u32 entries) +{ + rx_monitor->ring = kmalloc_array(entries, sizeof(struct rx_info_entry), + GFP_KERNEL); + if (!rx_monitor->ring) + return -ENOMEM; + + rx_monitor->head_idx = 0; + rx_monitor->tail_idx = 0; + spin_lock_init(&rx_monitor->lock); + rx_monitor->entries = entries; + + return 0; +} + +/** + * lpfc_rx_monitor_destroy_ring - Free ring buffer for rx_monitor + * @rx_monitor: Pointer to lpfc_rx_info_monitor object + **/ +void lpfc_rx_monitor_destroy_ring(struct lpfc_rx_info_monitor *rx_monitor) +{ + spin_lock(&rx_monitor->lock); + kfree(rx_monitor->ring); + rx_monitor->ring = NULL; + rx_monitor->entries = 0; + rx_monitor->head_idx = 0; + rx_monitor->tail_idx = 0; + spin_unlock(&rx_monitor->lock); +} + +/** + * lpfc_rx_monitor_record - Insert an entry into rx_monitor's ring + * @rx_monitor: Pointer to lpfc_rx_info_monitor object + * @entry: Pointer to rx_info_entry + * + * Used to insert an rx_info_entry into rx_monitor's ring. Note that this is a + * deep copy of rx_info_entry not a shallow copy of the rx_info_entry ptr. + * + * This is called from lpfc_cmf_timer, which is in timer/softirq context. + * + * In cases of old data overflow, we do a best effort of FIFO order. + **/ +void lpfc_rx_monitor_record(struct lpfc_rx_info_monitor *rx_monitor, + struct rx_info_entry *entry) +{ + struct rx_info_entry *ring = rx_monitor->ring; + u32 *head_idx = &rx_monitor->head_idx; + u32 *tail_idx = &rx_monitor->tail_idx; + spinlock_t *ring_lock = &rx_monitor->lock; + u32 ring_size = rx_monitor->entries; + + spin_lock(ring_lock); + memcpy(&ring[*tail_idx], entry, sizeof(*entry)); + *tail_idx = (*tail_idx + 1) % ring_size; + + /* Best effort of FIFO saved data */ + if (*tail_idx == *head_idx) + *head_idx = (*head_idx + 1) % ring_size; + + spin_unlock(ring_lock); +} + +/** + * lpfc_rx_monitor_report - Read out rx_monitor's ring + * @phba: Pointer to lpfc_hba object + * @rx_monitor: Pointer to lpfc_rx_info_monitor object + * @buf: Pointer to char buffer that will contain rx monitor info data + * @buf_len: Length buf including null char + * @max_read_entries: Maximum number of entries to read out of ring + * + * Used to dump/read what's in rx_monitor's ring buffer. + * + * If buf is NULL || buf_len == 0, then it is implied that we want to log the + * information to kmsg instead of filling out buf. + * + * Return: + * Number of entries read out of the ring + **/ +u32 lpfc_rx_monitor_report(struct lpfc_hba *phba, + struct lpfc_rx_info_monitor *rx_monitor, char *buf, + u32 buf_len, u32 max_read_entries) +{ + struct rx_info_entry *ring = rx_monitor->ring; + struct rx_info_entry *entry; + u32 *head_idx = &rx_monitor->head_idx; + u32 *tail_idx = &rx_monitor->tail_idx; + spinlock_t *ring_lock = &rx_monitor->lock; + u32 ring_size = rx_monitor->entries; + u32 cnt = 0; + char tmp[DBG_LOG_STR_SZ] = {0}; + bool log_to_kmsg = (!buf || !buf_len) ? true : false; + + if (!log_to_kmsg) { + /* clear the buffer to be sure */ + memset(buf, 0, buf_len); + + scnprintf(buf, buf_len, "\t%-16s%-16s%-16s%-16s%-8s%-8s%-8s" + "%-8s%-8s%-8s%-16s\n", + "MaxBPI", "Tot_Data_CMF", + "Tot_Data_Cmd", "Tot_Data_Cmpl", + "Lat(us)", "Avg_IO", "Max_IO", "Bsy", + "IO_cnt", "Info", "BWutil(ms)"); + } + + /* Needs to be _irq because record is called from timer interrupt + * context + */ + spin_lock_irq(ring_lock); + while (*head_idx != *tail_idx) { + entry = &ring[*head_idx]; + + /* Read out this entry's data. */ + if (!log_to_kmsg) { + /* If !log_to_kmsg, then store to buf. */ + scnprintf(tmp, sizeof(tmp), + "%03d:\t%-16llu%-16llu%-16llu%-16llu%-8llu" + "%-8llu%-8llu%-8u%-8u%-8u%u(%u)\n", + *head_idx, entry->max_bytes_per_interval, + entry->cmf_bytes, entry->total_bytes, + entry->rcv_bytes, entry->avg_io_latency, + entry->avg_io_size, entry->max_read_cnt, + entry->cmf_busy, entry->io_cnt, + entry->cmf_info, entry->timer_utilization, + entry->timer_interval); + + /* Check for buffer overflow */ + if ((strlen(buf) + strlen(tmp)) >= buf_len) + break; + + /* Append entry's data to buffer */ + strlcat(buf, tmp, buf_len); + } else { + lpfc_printf_log(phba, KERN_INFO, LOG_CGN_MGMT, + "4410 %02u: MBPI %llu Xmit %llu " + "Cmpl %llu Lat %llu ASz %llu Info %02u " + "BWUtil %u Int %u slot %u\n", + cnt, entry->max_bytes_per_interval, + entry->total_bytes, entry->rcv_bytes, + entry->avg_io_latency, + entry->avg_io_size, entry->cmf_info, + entry->timer_utilization, + entry->timer_interval, *head_idx); + } + + *head_idx = (*head_idx + 1) % ring_size; + + /* Don't feed more than max_read_entries */ + cnt++; + if (cnt >= max_read_entries) + break; + } + spin_unlock_irq(ring_lock); + + return cnt; +} + +/** * lpfc_cmf_setup - Initialize idle_stat tracking * @phba: Pointer to HBA context object. * @@ -8126,19 +8297,29 @@ phba->cmf_interval_rate = LPFC_CMF_INTERVAL; /* Allocate RX Monitor Buffer */ - if (!phba->rxtable) { - phba->rxtable = kmalloc_array(LPFC_MAX_RXMONITOR_ENTRY, - sizeof(struct rxtable_entry), - GFP_KERNEL); - if (!phba->rxtable) { + if (!phba->rx_monitor) { + phba->rx_monitor = kzalloc(sizeof(*phba->rx_monitor), + GFP_KERNEL); + + if (!phba->rx_monitor) { lpfc_printf_log(phba, KERN_ERR, LOG_INIT, "2644 Failed to alloc memory " "for RX Monitor Buffer\n"); return -ENOMEM; } + + /* Instruct the rx_monitor object to instantiate its ring */ + if (lpfc_rx_monitor_create_ring(phba->rx_monitor, + LPFC_MAX_RXMONITOR_ENTRY)) { + kfree(phba->rx_monitor); + phba->rx_monitor = NULL; + lpfc_printf_log(phba, KERN_ERR, LOG_INIT, + "2645 Failed to alloc memory " + "for RX Monitor's Ring\n"); + return -ENOMEM; + } } - atomic_set(&phba->rxtable_idx_head, 0); - atomic_set(&phba->rxtable_idx_tail, 0); + return 0; } @@ -10549,6 +10730,7 @@ cmd->un.elsreq64.bdl.bdeSize = sizeof(struct ulp_bde64); cmd->un.genreq64.xmit_els_remoteID = did; /* DID */ cmd->ulpCommand = CMD_XMIT_ELS_RSP64_CX; + cmd->ulpPU = PARM_NPIV_DID; } cmd->ulpBdeCount = 1; cmd->ulpLe = 1; @@ -10855,7 +11037,8 @@ static void __lpfc_sli_prep_abort_xri_s3(struct lpfc_iocbq *cmdiocbq, u16 ulp_context, - u16 iotag, u8 ulp_class, u16 cqid, bool ia) + u16 iotag, u8 ulp_class, u16 cqid, bool ia, + bool wqec) { IOCB_t *icmd = NULL; @@ -10884,7 +11067,8 @@ static void __lpfc_sli_prep_abort_xri_s4(struct lpfc_iocbq *cmdiocbq, u16 ulp_context, - u16 iotag, u8 ulp_class, u16 cqid, bool ia) + u16 iotag, u8 ulp_class, u16 cqid, bool ia, + bool wqec) { union lpfc_wqe128 *wqe; @@ -10911,6 +11095,8 @@ bf_set(wqe_qosd, &wqe->abort_cmd.wqe_com, 1); /* Word 11 */ + if (wqec) + bf_set(wqe_wqec, &wqe->abort_cmd.wqe_com, 1); bf_set(wqe_cqid, &wqe->abort_cmd.wqe_com, cqid); bf_set(wqe_cmd_type, &wqe->abort_cmd.wqe_com, OTHER_COMMAND); } @@ -10918,10 +11104,10 @@ void lpfc_sli_prep_abort_xri(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocbq, u16 ulp_context, u16 iotag, u8 ulp_class, u16 cqid, - bool ia) + bool ia, bool wqec) { phba->__lpfc_sli_prep_abort_xri(cmdiocbq, ulp_context, iotag, ulp_class, - cqid, ia); + cqid, ia, wqec); } /** @@ -12199,7 +12385,7 @@ lpfc_sli_prep_abort_xri(phba, abtsiocbp, ulp_context, iotag, cmdiocb->iocb.ulpClass, - LPFC_WQE_CQ_ID_DEFAULT, ia); + LPFC_WQE_CQ_ID_DEFAULT, ia, false); abtsiocbp->vport = vport; @@ -12659,7 +12845,7 @@ lpfc_sli_prep_abort_xri(phba, abtsiocbq, ulp_context, iotag, iocbq->iocb.ulpClass, cqid, - ia); + ia, false); abtsiocbq->vport = vport; --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_sli4.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_sli4.h @@ -489,7 +489,7 @@ #define LPFC_SLI4_HANDLER_NAME_SZ 16 struct lpfc_hba_eq_hdl { uint32_t idx; - uint16_t irq; + int irq; char handler_name[LPFC_SLI4_HANDLER_NAME_SZ]; struct lpfc_hba *phba; struct lpfc_queue *eq; @@ -611,6 +611,8 @@ }; #define LPFC_VECTOR_MAP_EMPTY 0xffff +#define LPFC_IRQ_EMPTY 0xffffffff + /* Multi-XRI pool */ #define XRI_BATCH 8 --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_version.h +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_version.h @@ -20,7 +20,7 @@ * included with this package. * *******************************************************************/ -#define LPFC_DRIVER_VERSION "14.2.0.4" +#define LPFC_DRIVER_VERSION "14.2.0.5" #define LPFC_DRIVER_NAME "lpfc" /* Used for SLI 2/3 */ --- linux-5.19.0.orig/drivers/scsi/lpfc/lpfc_vmid.c +++ linux-5.19.0/drivers/scsi/lpfc/lpfc_vmid.c @@ -245,9 +245,7 @@ /* allocate the per cpu variable for holding */ /* the last access time stamp only if VMID is enabled */ if (!vmp->last_io_time) - vmp->last_io_time = __alloc_percpu(sizeof(u64), - __alignof__(struct - lpfc_vmid)); + vmp->last_io_time = alloc_percpu_gfp(u64, GFP_ATOMIC); if (!vmp->last_io_time) { hash_del(&vmp->hnode); vmp->flag = LPFC_VMID_SLOT_FREE; --- linux-5.19.0.orig/drivers/scsi/megaraid/megaraid_sas_fusion.c +++ linux-5.19.0/drivers/scsi/megaraid/megaraid_sas_fusion.c @@ -5311,7 +5311,6 @@ if (!fusion->log_to_span) { dev_err(&instance->pdev->dev, "Failed from %s %d\n", __func__, __LINE__); - kfree(instance->ctrl_context); return -ENOMEM; } } --- linux-5.19.0.orig/drivers/scsi/mpi3mr/mpi3mr_os.c +++ linux-5.19.0/drivers/scsi/mpi3mr/mpi3mr_os.c @@ -2710,7 +2710,8 @@ } if (scmd->result != (DID_OK << 16) && (scmd->cmnd[0] != ATA_12) && - (scmd->cmnd[0] != ATA_16)) { + (scmd->cmnd[0] != ATA_16) && + mrioc->logging_level & MPI3_DEBUG_SCSI_ERROR) { ioc_info(mrioc, "%s :scmd->result 0x%x\n", __func__, scmd->result); scsi_print_command(scmd); --- linux-5.19.0.orig/drivers/scsi/mpt3sas/mpt3sas_base.c +++ linux-5.19.0/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -2993,7 +2993,7 @@ if (ioc->is_mcpu_endpoint || sizeof(dma_addr_t) == 4 || ioc->use_32bit_dma || - dma_get_required_mask(&pdev->dev) <= 32) + dma_get_required_mask(&pdev->dev) <= DMA_BIT_MASK(32)) ioc->dma_mask = 32; /* Set 63 bit DMA mask for all SAS3 and SAS35 controllers */ else if (ioc->hba_mpi_version_belonged > MPI2_VERSION) --- linux-5.19.0.orig/drivers/scsi/mpt3sas/mpt3sas_scsih.c +++ linux-5.19.0/drivers/scsi/mpt3sas/mpt3sas_scsih.c @@ -3670,6 +3670,7 @@ fw_event = list_first_entry(&ioc->fw_event_list, struct fw_event_work, list); list_del_init(&fw_event->list); + fw_event_work_put(fw_event); } spin_unlock_irqrestore(&ioc->fw_event_lock, flags); @@ -3751,7 +3752,6 @@ if (cancel_work_sync(&fw_event->work)) fw_event_work_put(fw_event); - fw_event_work_put(fw_event); } ioc->fw_events_cleanup = 0; } --- linux-5.19.0.orig/drivers/scsi/mpt3sas/mpt3sas_transport.c +++ linux-5.19.0/drivers/scsi/mpt3sas/mpt3sas_transport.c @@ -829,6 +829,8 @@ if ((sas_rphy_add(rphy))) { ioc_err(ioc, "failure at %s:%d/%s()!\n", __FILE__, __LINE__, __func__); + sas_rphy_free(rphy); + rphy = NULL; } if (mpt3sas_port->remote_identify.device_type == SAS_END_DEVICE) { --- linux-5.19.0.orig/drivers/scsi/pm8001/pm8001_hwi.c +++ linux-5.19.0/drivers/scsi/pm8001/pm8001_hwi.c @@ -3608,6 +3608,10 @@ pm8001_dbg(pm8001_ha, FAIL, " TASK NULL. RETURNING !!!\n"); return -1; } + + if (t->task_proto == SAS_PROTOCOL_INTERNAL_ABORT) + atomic_dec(&pm8001_dev->running_req); + ts = &t->task_status; if (status != 0) pm8001_dbg(pm8001_ha, FAIL, "task abort failed status 0x%x ,tag = 0x%x, scp= 0x%x\n", --- linux-5.19.0.orig/drivers/scsi/qedf/qedf_main.c +++ linux-5.19.0/drivers/scsi/qedf/qedf_main.c @@ -1921,6 +1921,27 @@ fc_vport_setlink(vn_port); } + /* Set symbolic node name */ + if (base_qedf->pdev->device == QL45xxx) + snprintf(fc_host_symbolic_name(vn_port->host), 256, + "Marvell FastLinQ 45xxx FCoE v%s", QEDF_VERSION); + + if (base_qedf->pdev->device == QL41xxx) + snprintf(fc_host_symbolic_name(vn_port->host), 256, + "Marvell FastLinQ 41xxx FCoE v%s", QEDF_VERSION); + + /* Set supported speed */ + fc_host_supported_speeds(vn_port->host) = n_port->link_supported_speeds; + + /* Set speed */ + vn_port->link_speed = n_port->link_speed; + + /* Set port type */ + fc_host_port_type(vn_port->host) = FC_PORTTYPE_NPIV; + + /* Set maxframe size */ + fc_host_maxframe_size(vn_port->host) = n_port->mfs; + QEDF_INFO(&(base_qedf->dbg_ctx), QEDF_LOG_NPIV, "vn_port=%p.\n", vn_port); @@ -3686,11 +3707,6 @@ 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; } --- linux-5.19.0.orig/drivers/scsi/qedi/qedi_main.c +++ linux-5.19.0/drivers/scsi/qedi/qedi_main.c @@ -2414,9 +2414,12 @@ int rval; u16 retry = 10; - if (mode == QEDI_MODE_NORMAL || mode == QEDI_MODE_SHUTDOWN) { - iscsi_host_remove(qedi->shost); + if (mode == QEDI_MODE_NORMAL) + iscsi_host_remove(qedi->shost, false); + else if (mode == QEDI_MODE_SHUTDOWN) + iscsi_host_remove(qedi->shost, true); + if (mode == QEDI_MODE_NORMAL || mode == QEDI_MODE_SHUTDOWN) { if (qedi->tmf_thread) { destroy_workqueue(qedi->tmf_thread); qedi->tmf_thread = NULL; @@ -2791,7 +2794,7 @@ #ifdef CONFIG_DEBUG_FS qedi_dbg_host_exit(&qedi->dbg_ctx); #endif - iscsi_host_remove(qedi->shost); + iscsi_host_remove(qedi->shost, false); stop_iscsi_func: qedi_ops->stop(qedi->cdev); stop_slowpath: --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_attr.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_attr.c @@ -2716,17 +2716,24 @@ if (!fcport) return; - /* Now that the rport has been deleted, set the fcport state to - FCS_DEVICE_DEAD */ - qla2x00_set_fcport_state(fcport, FCS_DEVICE_DEAD); + + /* + * Now that the rport has been deleted, set the fcport state to + * FCS_DEVICE_DEAD, if the fcport is still lost. + */ + if (fcport->scan_state != QLA_FCPORT_FOUND) + qla2x00_set_fcport_state(fcport, FCS_DEVICE_DEAD); /* * Transport has effectively 'deleted' the rport, clear * all local references. */ spin_lock_irqsave(host->host_lock, flags); - fcport->rport = fcport->drport = NULL; - *((fc_port_t **)rport->dd_data) = NULL; + /* Confirm port has not reappeared before clearing pointers. */ + if (rport->port_state != FC_PORTSTATE_ONLINE) { + fcport->rport = fcport->drport = NULL; + *((fc_port_t **)rport->dd_data) = NULL; + } spin_unlock_irqrestore(host->host_lock, flags); if (test_bit(ABORT_ISP_ACTIVE, &fcport->vha->dpc_flags)) @@ -2759,9 +2766,12 @@ /* * At this point all fcport's software-states are cleared. Perform any * final cleanup of firmware resources (PCBs and XCBs). + * + * Attempt to cleanup only lost devices. */ if (fcport->loop_id != FC_NO_LOOP_ID) { - if (IS_FWI2_CAPABLE(fcport->vha->hw)) { + if (IS_FWI2_CAPABLE(fcport->vha->hw) && + fcport->scan_state != QLA_FCPORT_FOUND) { if (fcport->loop_id != FC_NO_LOOP_ID) fcport->logout_on_delete = 1; @@ -2771,7 +2781,7 @@ __LINE__); qlt_schedule_sess_for_deletion(fcport); } - } else { + } else if (!IS_FWI2_CAPABLE(fcport->vha->hw)) { qla2x00_port_logout(fcport->vha, fcport); } } @@ -3319,11 +3329,34 @@ .bsg_timeout = qla24xx_bsg_timeout, }; +static uint +qla2x00_get_host_supported_speeds(scsi_qla_host_t *vha, uint speeds) +{ + uint supported_speeds = FC_PORTSPEED_UNKNOWN; + + if (speeds & FDMI_PORT_SPEED_64GB) + supported_speeds |= FC_PORTSPEED_64GBIT; + if (speeds & FDMI_PORT_SPEED_32GB) + supported_speeds |= FC_PORTSPEED_32GBIT; + if (speeds & FDMI_PORT_SPEED_16GB) + supported_speeds |= FC_PORTSPEED_16GBIT; + if (speeds & FDMI_PORT_SPEED_8GB) + supported_speeds |= FC_PORTSPEED_8GBIT; + if (speeds & FDMI_PORT_SPEED_4GB) + supported_speeds |= FC_PORTSPEED_4GBIT; + if (speeds & FDMI_PORT_SPEED_2GB) + supported_speeds |= FC_PORTSPEED_2GBIT; + if (speeds & FDMI_PORT_SPEED_1GB) + supported_speeds |= FC_PORTSPEED_1GBIT; + + return supported_speeds; +} + void qla2x00_init_host_attr(scsi_qla_host_t *vha) { struct qla_hw_data *ha = vha->hw; - u32 speeds = FC_PORTSPEED_UNKNOWN; + u32 speeds = 0, fdmi_speed = 0; fc_host_dev_loss_tmo(vha->host) = ha->port_down_retry_count; fc_host_node_name(vha->host) = wwn_to_u64(vha->node_name); @@ -3333,7 +3366,8 @@ fc_host_max_npiv_vports(vha->host) = ha->max_npiv_vports; fc_host_npiv_vports_inuse(vha->host) = ha->cur_vport_count; - speeds = qla25xx_fdmi_port_speed_capability(ha); + fdmi_speed = qla25xx_fdmi_port_speed_capability(ha); + speeds = qla2x00_get_host_supported_speeds(vha, fdmi_speed); fc_host_supported_speeds(vha->host) = speeds; } --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_bsg.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_bsg.c @@ -2975,6 +2975,13 @@ ql_log(ql_log_info, vha, 0x708b, "%s CMD timeout. bsg ptr %p.\n", __func__, bsg_job); + + if (qla2x00_isp_reg_stat(ha)) { + ql_log(ql_log_info, vha, 0x9007, + "PCI/Register disconnect.\n"); + qla_pci_set_eeh_busy(vha); + } + /* find the bsg job from the active list of commands */ spin_lock_irqsave(&ha->hardware_lock, flags); for (que = 0; que < ha->max_req_queues; que++) { @@ -2992,7 +2999,8 @@ sp->u.bsg_job == bsg_job) { req->outstanding_cmds[cnt] = NULL; spin_unlock_irqrestore(&ha->hardware_lock, flags); - if (ha->isp_ops->abort_command(sp)) { + + if (!ha->flags.eeh_busy && ha->isp_ops->abort_command(sp)) { ql_log(ql_log_warn, vha, 0x7089, "mbx abort_command failed.\n"); bsg_reply->result = -EIO; --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_dbg.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_dbg.h @@ -383,5 +383,5 @@ if (ql2xextended_error_logging == 1) ql2xextended_error_logging = QL_DBG_DEFAULT1_MASK; - return (level & ql2xextended_error_logging) == level; + return level && ((level & ql2xextended_error_logging) == level); } --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_def.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_def.h @@ -2158,6 +2158,11 @@ #define CS_IOCB_ERROR 0x31 /* Generic error for IOCB request failure */ #define CS_REJECT_RECEIVED 0x4E /* Reject received */ +#define CS_EDIF_AUTH_ERROR 0x63 /* decrypt error */ +#define CS_EDIF_PAD_LEN_ERROR 0x65 /* pad > frame size, not 4byte align */ +#define CS_EDIF_INV_REQ 0x66 /* invalid request */ +#define CS_EDIF_SPI_ERROR 0x67 /* rx frame unable to locate sa */ +#define CS_EDIF_HDR_ERROR 0x69 /* data frame != expected len */ #define CS_BAD_PAYLOAD 0x80 /* Driver defined */ #define CS_UNKNOWN 0x81 /* Driver defined */ #define CS_RETRY 0x82 /* Driver defined */ @@ -2626,7 +2631,6 @@ struct { uint32_t enable:1; /* device is edif enabled/req'd */ uint32_t app_stop:2; - uint32_t app_started:1; uint32_t aes_gmac:1; uint32_t app_sess_online:1; uint32_t tx_sa_set:1; @@ -2637,6 +2641,7 @@ uint32_t rx_rekey_cnt; uint64_t tx_bytes; uint64_t rx_bytes; + uint8_t sess_down_acked; uint8_t auth_state; uint16_t authok:1; uint16_t rekey_cnt; @@ -3204,6 +3209,8 @@ #define GFF_NVME_OFFSET 23 /* type = 28h */ struct { uint8_t fc4_features[128]; +#define FC4_FF_TARGET BIT_0 +#define FC4_FF_INITIATOR BIT_1 } gff_id; struct { uint8_t reserved; @@ -3975,6 +3982,7 @@ /* SRB cache. */ #define SRB_MIN_REQ 128 mempool_t *srb_mempool; + u8 port_name[WWN_SIZE]; volatile struct { uint32_t mbox_int :1; @@ -4040,6 +4048,9 @@ uint32_t n2n_fw_acc_sec:1; uint32_t plogi_template_valid:1; uint32_t port_isolated:1; + uint32_t eeh_flush:2; +#define EEH_FLUSH_RDY 1 +#define EEH_FLUSH_DONE 2 } flags; uint16_t max_exchg; @@ -4074,6 +4085,7 @@ uint32_t rsp_que_len; uint32_t req_que_off; uint32_t rsp_que_off; + unsigned long eeh_jif; /* Multi queue data structs */ device_reg_t *mqiobase; @@ -4256,8 +4268,8 @@ #define IS_OEM_001(ha) ((ha)->device_type & DT_OEM_001) #define HAS_EXTENDED_IDS(ha) ((ha)->device_type & DT_EXTENDED_IDS) #define IS_CT6_SUPPORTED(ha) ((ha)->device_type & DT_CT6_SUPPORTED) -#define IS_MQUE_CAPABLE(ha) ((ha)->mqenable || IS_QLA83XX(ha) || \ - IS_QLA27XX(ha) || IS_QLA28XX(ha)) +#define IS_MQUE_CAPABLE(ha) (IS_QLA83XX(ha) || IS_QLA27XX(ha) || \ + IS_QLA28XX(ha)) #define IS_BIDI_CAPABLE(ha) \ (IS_QLA25XX(ha) || IS_QLA2031(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) /* Bit 21 of fw_attributes decides the MCTP capabilities */ @@ -5107,17 +5119,17 @@ (test_bit(ISP_ABORT_NEEDED, &ha->dpc_flags) || \ test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags)) -#define QLA_VHA_MARK_BUSY(__vha, __bail) do { \ - atomic_inc(&__vha->vref_count); \ - mb(); \ - if (__vha->flags.delete_progress) { \ - atomic_dec(&__vha->vref_count); \ - wake_up(&__vha->vref_waitq); \ - __bail = 1; \ - } else { \ - __bail = 0; \ - } \ -} while (0) +static inline bool qla_vha_mark_busy(scsi_qla_host_t *vha) +{ + atomic_inc(&vha->vref_count); + mb(); + if (vha->flags.delete_progress) { + atomic_dec(&vha->vref_count); + wake_up(&vha->vref_waitq); + return true; + } + return false; +} #define QLA_VHA_MARK_NOT_BUSY(__vha) do { \ atomic_dec(&__vha->vref_count); \ --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_edif.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_edif.c @@ -52,6 +52,31 @@ return "unknown"; } +static struct edb_node *qla_edb_getnext(scsi_qla_host_t *vha) +{ + unsigned long flags; + struct edb_node *edbnode = NULL; + + spin_lock_irqsave(&vha->e_dbell.db_lock, flags); + + /* db nodes are fifo - no qualifications done */ + if (!list_empty(&vha->e_dbell.head)) { + edbnode = list_first_entry(&vha->e_dbell.head, + struct edb_node, list); + list_del_init(&edbnode->list); + } + + spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); + + return edbnode; +} + +static void qla_edb_node_free(scsi_qla_host_t *vha, struct edb_node *node) +{ + list_del_init(&node->list); + kfree(node); +} + static struct edif_list_entry *qla_edif_list_find_sa_index(fc_port_t *fcport, uint16_t handle) { @@ -257,14 +282,8 @@ f = NULL; list_for_each_entry_safe(f, tf, &vha->vp_fcports, list) { - if ((f->flags & FCF_FCSP_DEVICE)) { - ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x2058, - "Found secure fcport - nn %8phN pn %8phN portid=0x%x, 0x%x.\n", - f->node_name, f->port_name, - f->d_id.b24, id->b24); - if (f->d_id.b24 == id->b24) - return f; - } + if (f->d_id.b24 == id->b24) + return f; } return NULL; } @@ -280,14 +299,19 @@ { /* check that the app is allow/known to the driver */ - if (appid.app_vid == EDIF_APP_ID) { - ql_dbg(ql_dbg_edif + ql_dbg_verbose, vha, 0x911d, "%s app id ok\n", __func__); - return true; + if (appid.app_vid != EDIF_APP_ID) { + ql_dbg(ql_dbg_edif, vha, 0x911d, "%s app id not ok (%x)", + __func__, appid.app_vid); + return false; + } + + if (appid.version != EDIF_VERSION1) { + ql_dbg(ql_dbg_edif, vha, 0x911d, "%s app version is not ok (%x)", + __func__, appid.version); + return false; } - ql_dbg(ql_dbg_edif, vha, 0x911d, "%s app id not ok (%x)", - __func__, appid.app_vid); - return false; + return true; } static void @@ -486,16 +510,35 @@ /* mark doorbell as active since an app is now present */ vha->e_dbell.db_flags |= EDB_ACTIVE; } else { - ql_dbg(ql_dbg_edif, vha, 0x911e, "%s doorbell already active\n", - __func__); + goto out; } if (N2N_TOPO(vha->hw)) { - if (vha->hw->flags.n2n_fw_acc_sec) - set_bit(N2N_LINK_RESET, &vha->dpc_flags); - else + list_for_each_entry_safe(fcport, tf, &vha->vp_fcports, list) + fcport->n2n_link_reset_cnt = 0; + + if (vha->hw->flags.n2n_fw_acc_sec) { + list_for_each_entry_safe(fcport, tf, &vha->vp_fcports, list) + qla_edif_sa_ctl_init(vha, fcport); + + /* + * While authentication app was not running, remote device + * could still try to login with this local port. Let's + * clear the state and try again. + */ + qla2x00_wait_for_sess_deletion(vha); + + /* bounce the link to get the other guy to relogin */ + if (!vha->hw->flags.n2n_bigger) { + set_bit(N2N_LINK_RESET, &vha->dpc_flags); + qla2xxx_wake_dpc(vha); + } + } else { + qla2x00_wait_for_hba_online(vha); set_bit(ISP_ABORT_NEEDED, &vha->dpc_flags); - qla2xxx_wake_dpc(vha); + qla2xxx_wake_dpc(vha); + qla2x00_wait_for_hba_online(vha); + } } else { list_for_each_entry_safe(fcport, tf, &vha->vp_fcports, list) { ql_dbg(ql_dbg_edif, vha, 0x2058, @@ -517,19 +560,31 @@ if (atomic_read(&vha->loop_state) == LOOP_DOWN) break; - fcport->edif.app_started = 1; fcport->login_retry = vha->hw->login_retry_count; - /* no activity */ fcport->edif.app_stop = 0; + fcport->edif.app_sess_online = 0; + + if (fcport->scan_state != QLA_FCPORT_FOUND) + continue; + + if (fcport->port_type == FCT_UNKNOWN && + !fcport->fc4_features) + rval = qla24xx_async_gffid(vha, fcport, true); + + if (!rval && !(fcport->fc4_features & FC4_FF_TARGET || + fcport->port_type & (FCT_TARGET|FCT_NVME_TARGET))) + continue; + + rval = 0; ql_dbg(ql_dbg_edif, vha, 0x911e, "%s wwpn %8phC calling qla_edif_reset_auth_wait\n", __func__, fcport->port_name); - fcport->edif.app_sess_online = 0; qlt_schedule_sess_for_deletion(fcport); qla_edif_sa_ctl_init(vha, fcport); } + set_bit(RELOGIN_NEEDED, &vha->dpc_flags); } if (vha->pur_cinfo.enode_flags != ENODE_ACTIVE) { @@ -540,9 +595,11 @@ __func__); } +out: appreply.host_support_edif = vha->hw->flags.edif_enabled; appreply.edif_enode_active = vha->pur_cinfo.enode_flags; appreply.edif_edb_active = vha->e_dbell.db_flags; + appreply.version = EDIF_VERSION1; bsg_job->reply_len = sizeof(struct fc_bsg_reply); @@ -610,9 +667,6 @@ fcport->send_els_logo = 1; qlt_schedule_sess_for_deletion(fcport); - - /* qla_edif_flush_sa_ctl_lists(fcport); */ - fcport->edif.app_started = 0; } } @@ -672,6 +726,7 @@ portid.b.area = appplogiok.u.d_id.b.area; portid.b.al_pa = appplogiok.u.d_id.b.al_pa; + appplogireply.version = EDIF_VERSION1; switch (appplogiok.type) { case PL_TYPE_WWPN: fcport = qla2x00_find_fcport_by_wwpn(vha, @@ -864,6 +919,8 @@ } else { struct fc_port *fcport = NULL, *tf; + app_reply->version = EDIF_VERSION1; + list_for_each_entry_safe(fcport, tf, &vha->vp_fcports, list) { if (!(fcport->flags & FCF_FCSP_DEVICE)) continue; @@ -880,9 +937,25 @@ if (tdid.b24 != 0 && tdid.b24 != fcport->d_id.b24) continue; - app_reply->ports[pcnt].rekey_count = - fcport->edif.rekey_cnt; + if (!N2N_TOPO(vha->hw)) { + if (fcport->scan_state != QLA_FCPORT_FOUND) + continue; + + if (fcport->port_type == FCT_UNKNOWN && + !fcport->fc4_features) + rval = qla24xx_async_gffid(vha, fcport, + true); + + if (!rval && + !(fcport->fc4_features & FC4_FF_TARGET || + fcport->port_type & + (FCT_TARGET | FCT_NVME_TARGET))) + continue; + } + rval = 0; + + app_reply->ports[pcnt].version = EDIF_VERSION1; app_reply->ports[pcnt].remote_type = VND_CMD_RTYPE_UNKNOWN; if (fcport->port_type & (FCT_NVME_TARGET | FCT_TARGET)) @@ -979,6 +1052,8 @@ } else { struct fc_port *fcport = NULL, *tf; + app_reply->version = EDIF_VERSION1; + list_for_each_entry_safe(fcport, tf, &vha->vp_fcports, list) { if (fcport->edif.enable) { if (pcnt > app_req.num_ports) @@ -1012,6 +1087,164 @@ return rval; } +static int32_t +qla_edif_ack(scsi_qla_host_t *vha, struct bsg_job *bsg_job) +{ + struct fc_port *fcport; + struct aen_complete_cmd ack; + struct fc_bsg_reply *bsg_reply = bsg_job->reply; + + sg_copy_to_buffer(bsg_job->request_payload.sg_list, + bsg_job->request_payload.sg_cnt, &ack, sizeof(ack)); + + ql_dbg(ql_dbg_edif, vha, 0x70cf, + "%s: %06x event_code %x\n", + __func__, ack.port_id.b24, ack.event_code); + + fcport = qla2x00_find_fcport_by_pid(vha, &ack.port_id); + SET_DID_STATUS(bsg_reply->result, DID_OK); + + if (!fcport) { + ql_dbg(ql_dbg_edif, vha, 0x70cf, + "%s: unable to find fcport %06x \n", + __func__, ack.port_id.b24); + return 0; + } + + switch (ack.event_code) { + case VND_CMD_AUTH_STATE_SESSION_SHUTDOWN: + fcport->edif.sess_down_acked = 1; + break; + default: + break; + } + return 0; +} + +static int qla_edif_consume_dbell(scsi_qla_host_t *vha, struct bsg_job *bsg_job) +{ + struct fc_bsg_reply *bsg_reply = bsg_job->reply; + u32 sg_skip, reply_payload_len; + bool keep; + struct edb_node *dbnode = NULL; + struct edif_app_dbell ap; + int dat_size = 0; + + sg_skip = 0; + reply_payload_len = bsg_job->reply_payload.payload_len; + + while ((reply_payload_len - sg_skip) >= sizeof(struct edb_node)) { + dbnode = qla_edb_getnext(vha); + if (dbnode) { + keep = true; + dat_size = 0; + ap.event_code = dbnode->ntype; + switch (dbnode->ntype) { + case VND_CMD_AUTH_STATE_SESSION_SHUTDOWN: + case VND_CMD_AUTH_STATE_NEEDED: + ap.port_id = dbnode->u.plogi_did; + dat_size += sizeof(ap.port_id); + break; + case VND_CMD_AUTH_STATE_ELS_RCVD: + ap.port_id = dbnode->u.els_sid; + dat_size += sizeof(ap.port_id); + break; + case VND_CMD_AUTH_STATE_SAUPDATE_COMPL: + ap.port_id = dbnode->u.sa_aen.port_id; + memcpy(&ap.event_data, &dbnode->u, + sizeof(struct edif_sa_update_aen)); + dat_size += sizeof(struct edif_sa_update_aen); + break; + default: + keep = false; + ql_log(ql_log_warn, vha, 0x09102, + "%s unknown DB type=%d %p\n", + __func__, dbnode->ntype, dbnode); + break; + } + ap.event_data_size = dat_size; + /* 8 = sizeof(ap.event_code + ap.event_data_size) */ + dat_size += 8; + if (keep) + sg_skip += sg_copy_buffer(bsg_job->reply_payload.sg_list, + bsg_job->reply_payload.sg_cnt, + &ap, dat_size, sg_skip, false); + + ql_dbg(ql_dbg_edif, vha, 0x09102, + "%s Doorbell consumed : type=%d %p\n", + __func__, dbnode->ntype, dbnode); + + kfree(dbnode); + } else { + break; + } + } + + SET_DID_STATUS(bsg_reply->result, DID_OK); + bsg_reply->reply_payload_rcv_len = sg_skip; + bsg_job->reply_len = sizeof(struct fc_bsg_reply); + + return 0; +} + +static void __qla_edif_dbell_bsg_done(scsi_qla_host_t *vha, struct bsg_job *bsg_job, + u32 delay) +{ + struct fc_bsg_reply *bsg_reply = bsg_job->reply; + + /* small sleep for doorbell events to accumulate */ + if (delay) + msleep(delay); + + qla_edif_consume_dbell(vha, bsg_job); + + bsg_job_done(bsg_job, bsg_reply->result, bsg_reply->reply_payload_rcv_len); +} + +static void qla_edif_dbell_bsg_done(scsi_qla_host_t *vha) +{ + unsigned long flags; + struct bsg_job *prev_bsg_job = NULL; + + spin_lock_irqsave(&vha->e_dbell.db_lock, flags); + if (vha->e_dbell.dbell_bsg_job) { + prev_bsg_job = vha->e_dbell.dbell_bsg_job; + vha->e_dbell.dbell_bsg_job = NULL; + } + spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); + + if (prev_bsg_job) + __qla_edif_dbell_bsg_done(vha, prev_bsg_job, 0); +} + +static int +qla_edif_dbell_bsg(scsi_qla_host_t *vha, struct bsg_job *bsg_job) +{ + unsigned long flags; + bool return_bsg = false; + + /* flush previous dbell bsg */ + qla_edif_dbell_bsg_done(vha); + + spin_lock_irqsave(&vha->e_dbell.db_lock, flags); + if (list_empty(&vha->e_dbell.head) && DBELL_ACTIVE(vha)) { + /* + * when the next db event happens, bsg_job will return. + * Otherwise, timer will return it. + */ + vha->e_dbell.dbell_bsg_job = bsg_job; + vha->e_dbell.bsg_expire = jiffies + 10 * HZ; + } else { + return_bsg = true; + } + spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); + + if (return_bsg) + __qla_edif_dbell_bsg_done(vha, bsg_job, 1); + + return 0; +} + int32_t qla_edif_app_mgmt(struct bsg_job *bsg_job) { @@ -1023,8 +1256,13 @@ bool done = true; int32_t rval = 0; uint32_t vnd_sc = bsg_request->rqst_data.h_vendor.vendor_cmd[1]; + u32 level = ql_dbg_edif; + + /* doorbell is high traffic */ + if (vnd_sc == QL_VND_SC_READ_DBELL) + level = 0; - ql_dbg(ql_dbg_edif, vha, 0x911d, "%s vnd subcmd=%x\n", + ql_dbg(level, vha, 0x911d, "%s vnd subcmd=%x\n", __func__, vnd_sc); sg_copy_to_buffer(bsg_job->request_payload.sg_list, @@ -1033,7 +1271,7 @@ if (!vha->hw->flags.edif_enabled || test_bit(VPORT_DELETE, &vha->dpc_flags)) { - ql_dbg(ql_dbg_edif, vha, 0x911d, + ql_dbg(level, vha, 0x911d, "%s edif not enabled or vp delete. bsg ptr done %p. dpc_flags %lx\n", __func__, bsg_job, vha->dpc_flags); @@ -1042,7 +1280,7 @@ } if (!qla_edif_app_check(vha, appcheck)) { - ql_dbg(ql_dbg_edif, vha, 0x911d, + ql_dbg(level, vha, 0x911d, "%s app checked failed.\n", __func__); @@ -1074,6 +1312,13 @@ case QL_VND_SC_GET_STATS: rval = qla_edif_app_getstats(vha, bsg_job); break; + case QL_VND_SC_AEN_COMPLETE: + rval = qla_edif_ack(vha, bsg_job); + break; + case QL_VND_SC_READ_DBELL: + rval = qla_edif_dbell_bsg(vha, bsg_job); + done = false; + break; default: ql_dbg(ql_dbg_edif, vha, 0x911d, "%s unknown cmd=%x\n", __func__, @@ -1085,7 +1330,7 @@ done: if (done) { - ql_dbg(ql_dbg_user, vha, 0x7009, + ql_dbg(level, vha, 0x7009, "%s: %d bsg ptr done %p\n", __func__, __LINE__, bsg_job); bsg_job_done(bsg_job, bsg_reply->result, bsg_reply->reply_payload_rcv_len); @@ -1247,6 +1492,8 @@ #define QLA_SA_UPDATE_FLAGS_RX_KEY 0x0 #define QLA_SA_UPDATE_FLAGS_TX_KEY 0x2 +#define EDIF_MSLEEP_INTERVAL 100 +#define EDIF_RETRY_COUNT 50 int qla24xx_sadb_update(struct bsg_job *bsg_job) @@ -1259,7 +1506,7 @@ struct edif_list_entry *edif_entry = NULL; int found = 0; int rval = 0; - int result = 0; + int result = 0, cnt; struct qla_sa_update_frame sa_frame; struct srb_iocb *iocb_cmd; port_id_t portid; @@ -1500,11 +1747,23 @@ sp->done = qla2x00_bsg_job_done; iocb_cmd = &sp->u.iocb_cmd; iocb_cmd->u.sa_update.sa_frame = sa_frame; - + cnt = 0; +retry: rval = qla2x00_start_sp(sp); - if (rval != QLA_SUCCESS) { + switch (rval) { + case QLA_SUCCESS: + break; + case EAGAIN: + msleep(EDIF_MSLEEP_INTERVAL); + cnt++; + if (cnt < EDIF_RETRY_COUNT) + goto retry; + + fallthrough; + default: ql_log(ql_dbg_edif, vha, 0x70e3, - "qla2x00_start_sp failed=%d.\n", rval); + "%s qla2x00_start_sp failed=%d.\n", + __func__, rval); qla2x00_rel_sp(sp); rval = -EIO; @@ -1797,30 +2056,6 @@ /* initialize lock which protects doorbell & init list */ spin_lock_init(&vha->e_dbell.db_lock); INIT_LIST_HEAD(&vha->e_dbell.head); - - /* create and initialize doorbell */ - init_completion(&vha->e_dbell.dbell); -} - -static void -qla_edb_node_free(scsi_qla_host_t *vha, struct edb_node *node) -{ - /* - * releases the space held by this edb node entry - * this function does _not_ free the edb node itself - * NB: the edb node entry passed should not be on any list - * - * currently for doorbell there's no additional cleanup - * needed, but here as a placeholder for furture use. - */ - - if (!node) { - ql_dbg(ql_dbg_edif, vha, 0x09122, - "%s error - no valid node passed\n", __func__); - return; - } - - node->ntype = N_UNDEF; } static void qla_edb_clear(scsi_qla_host_t *vha, port_id_t portid) @@ -1867,11 +2102,8 @@ } spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); - list_for_each_entry_safe(e, tmp, &edb_list, list) { + list_for_each_entry_safe(e, tmp, &edb_list, list) qla_edb_node_free(vha, e); - list_del_init(&e->list); - kfree(e); - } } /* function called when app is stopping */ @@ -1899,14 +2131,10 @@ "%s freeing edb_node type=%x\n", __func__, node->ntype); qla_edb_node_free(vha, node); - list_del(&node->list); - - kfree(node); } spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); - /* wake up doorbell waiters - they'll be dismissed with error code */ - complete_all(&vha->e_dbell.dbell); + qla_edif_dbell_bsg_done(vha); } static struct edb_node * @@ -1944,9 +2172,6 @@ list_add_tail(&ptr->list, &vha->e_dbell.head); spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); - /* ring doorbell for waiters */ - complete(&vha->e_dbell.dbell); - return true; } @@ -2010,47 +2235,29 @@ edbnode->u.sa_aen.port_id = fcport->d_id; edbnode->u.sa_aen.status = data; edbnode->u.sa_aen.key_type = data2; + edbnode->u.sa_aen.version = EDIF_VERSION1; break; default: ql_dbg(ql_dbg_edif, vha, 0x09102, "%s unknown type: %x\n", __func__, dbtype); - qla_edb_node_free(vha, edbnode); kfree(edbnode); edbnode = NULL; break; } - if (edbnode && (!qla_edb_node_add(vha, edbnode))) { + if (edbnode) { + if (!qla_edb_node_add(vha, edbnode)) { + ql_dbg(ql_dbg_edif, vha, 0x09102, + "%s unable to add dbnode\n", __func__); + kfree(edbnode); + return; + } ql_dbg(ql_dbg_edif, vha, 0x09102, - "%s unable to add dbnode\n", __func__); - qla_edb_node_free(vha, edbnode); - kfree(edbnode); - return; - } - if (edbnode && fcport) - fcport->edif.auth_state = dbtype; - ql_dbg(ql_dbg_edif, vha, 0x09102, - "%s Doorbell produced : type=%d %p\n", __func__, dbtype, edbnode); -} - -static struct edb_node * -qla_edb_getnext(scsi_qla_host_t *vha) -{ - unsigned long flags; - struct edb_node *edbnode = NULL; - - spin_lock_irqsave(&vha->e_dbell.db_lock, flags); - - /* db nodes are fifo - no qualifications done */ - if (!list_empty(&vha->e_dbell.head)) { - edbnode = list_first_entry(&vha->e_dbell.head, - struct edb_node, list); - list_del(&edbnode->list); + "%s Doorbell produced : type=%d %p\n", __func__, dbtype, edbnode); + qla_edif_dbell_bsg_done(vha); + if (fcport) + fcport->edif.auth_state = dbtype; } - - spin_unlock_irqrestore(&vha->e_dbell.db_lock, flags); - - return edbnode; } void @@ -2078,6 +2285,9 @@ ha->edif_post_stop_cnt_down = 60; } } + + if (vha->e_dbell.dbell_bsg_job && time_after_eq(jiffies, vha->e_dbell.bsg_expire)) + qla_edif_dbell_bsg_done(vha); } /* @@ -2145,7 +2355,6 @@ "%s Doorbell consumed : type=%d %p\n", __func__, dbnode->ntype, dbnode); /* we're done with the db node, so free it up */ - qla_edb_node_free(vha, dbnode); kfree(dbnode); } else { break; @@ -2161,6 +2370,7 @@ static void qla_noop_sp_done(srb_t *sp, int res) { + sp->fcport->flags &= ~(FCF_ASYNC_SENT | FCF_ASYNC_ACTIVE); /* ref: INIT */ kref_put(&sp->cmd_kref, qla2x00_sp_release); } @@ -2185,7 +2395,8 @@ if (!sa_ctl) { ql_dbg(ql_dbg_edif, vha, 0x70e6, "sa_ctl allocation failed\n"); - return -ENOMEM; + rval = -ENOMEM; + goto done; } fcport = sa_ctl->fcport; @@ -2195,7 +2406,8 @@ if (!sp) { ql_dbg(ql_dbg_edif, vha, 0x70e6, "SRB allocation failed\n"); - return -ENOMEM; + rval = -ENOMEM; + goto done; } fcport->flags |= FCF_ASYNC_SENT; @@ -2224,10 +2436,17 @@ rval = qla2x00_start_sp(sp); - if (rval != QLA_SUCCESS) - rval = QLA_FUNCTION_FAILED; + if (rval != QLA_SUCCESS) { + goto done_free_sp; + } return rval; +done_free_sp: + kref_put(&sp->cmd_kref, qla2x00_sp_release); + fcport->flags &= ~FCF_ASYNC_SENT; +done: + fcport->flags &= ~FCF_ASYNC_ACTIVE; + return rval; } void qla24xx_sa_update_iocb(srb_t *sp, struct sa_update_28xx *sa_update_iocb) @@ -2446,8 +2665,7 @@ fcport = qla2x00_find_fcport_by_pid(host, &purex->pur_info.pur_sid); - if (DBELL_INACTIVE(vha) || - (fcport && EDIF_SESSION_DOWN(fcport))) { + if (DBELL_INACTIVE(vha)) { ql_dbg(ql_dbg_edif, host, 0x0910c, "%s e_dbell.db_flags =%x %06x\n", __func__, host->e_dbell.db_flags, fcport ? fcport->d_id.b24 : 0); @@ -2457,6 +2675,22 @@ return; } + if (fcport && EDIF_SESSION_DOWN(fcport)) { + ql_dbg(ql_dbg_edif, host, 0x13b6, + "%s terminate exchange. Send logo to 0x%x\n", + __func__, a.did.b24); + + a.tx_byte_count = a.tx_len = 0; + a.tx_addr = 0; + a.control_flags = EPD_RX_XCHG; /* EPD_RX_XCHG = terminate cmd */ + qla_els_reject_iocb(host, (*rsp)->qpair, &a); + qla_enode_free(host, ptr); + /* send logo to let remote port knows to tear down session */ + fcport->send_els_logo = 1; + qlt_schedule_sess_for_deletion(fcport); + return; + } + /* add the local enode to the list */ qla_enode_add(host, ptr); @@ -3349,10 +3583,14 @@ fc_port_t *fcport = NULL; struct qla_hw_data *ha = vha->hw; srb_t *sp; - int rval = (DID_ERROR << 16); + int rval = (DID_ERROR << 16), cnt; port_id_t d_id; struct qla_bsg_auth_els_request *p = (struct qla_bsg_auth_els_request *)bsg_job->request; + struct qla_bsg_auth_els_reply *rpl = + (struct qla_bsg_auth_els_reply *)bsg_job->reply; + + rpl->version = EDIF_VERSION1; d_id.b.al_pa = bsg_request->rqst_data.h_els.port_id[2]; d_id.b.area = bsg_request->rqst_data.h_els.port_id[1]; @@ -3371,7 +3609,7 @@ if (qla_bsg_check(vha, bsg_job, fcport)) return 0; - if (fcport->loop_id == FC_NO_LOOP_ID) { + if (EDIF_SESS_DELETE(fcport)) { ql_dbg(ql_dbg_edif, vha, 0x910d, "%s ELS code %x, no loop id.\n", __func__, bsg_request->rqst_data.r_els.els_code); @@ -3440,17 +3678,26 @@ sp->free = qla2x00_bsg_sp_free; sp->done = qla2x00_bsg_job_done; + cnt = 0; +retry: rval = qla2x00_start_sp(sp); - - ql_dbg(ql_dbg_edif, vha, 0x700a, - "%s %s %8phN xchg %x ctlflag %x hdl %x reqlen %xh bsg ptr %p\n", - __func__, sc_to_str(p->e.sub_cmd), fcport->port_name, - p->e.extra_rx_xchg_address, p->e.extra_control_flags, - sp->handle, sp->remap.req.len, bsg_job); - - if (rval != QLA_SUCCESS) { + switch (rval) { + case QLA_SUCCESS: + ql_dbg(ql_dbg_edif, vha, 0x700a, + "%s %s %8phN xchg %x ctlflag %x hdl %x reqlen %xh bsg ptr %p\n", + __func__, sc_to_str(p->e.sub_cmd), fcport->port_name, + p->e.extra_rx_xchg_address, p->e.extra_control_flags, + sp->handle, sp->remap.req.len, bsg_job); + break; + case EAGAIN: + msleep(EDIF_MSLEEP_INTERVAL); + cnt++; + if (cnt < EDIF_RETRY_COUNT) + goto retry; + fallthrough; + default: ql_log(ql_log_warn, vha, 0x700e, - "qla2x00_start_sp failed = %d\n", rval); + "%s qla2x00_start_sp failed = %d\n", __func__, rval); SET_DID_STATUS(bsg_reply->result, DID_IMM_RETRY); rval = -EIO; goto done_free_remap_rsp; @@ -3472,14 +3719,29 @@ void qla_edif_sess_down(struct scsi_qla_host *vha, struct fc_port *sess) { + u16 cnt = 0; + if (sess->edif.app_sess_online && DBELL_ACTIVE(vha)) { ql_dbg(ql_dbg_disc, vha, 0xf09c, "%s: sess %8phN send port_offline event\n", __func__, sess->port_name); sess->edif.app_sess_online = 0; + sess->edif.sess_down_acked = 0; qla_edb_eventcreate(vha, VND_CMD_AUTH_STATE_SESSION_SHUTDOWN, sess->d_id.b24, 0, sess); qla2x00_post_aen_work(vha, FCH_EVT_PORT_OFFLINE, sess->d_id.b24); + + while (!READ_ONCE(sess->edif.sess_down_acked) && + !test_bit(VPORT_DELETE, &vha->dpc_flags)) { + msleep(100); + cnt++; + if (cnt > 100) + break; + } + sess->edif.sess_down_acked = 0; + ql_dbg(ql_dbg_disc, vha, 0xf09c, + "%s: sess %8phN port_offline event completed\n", + __func__, sess->port_name); } } --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_edif.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_edif.h @@ -51,7 +51,8 @@ enum db_flags_t db_flags; spinlock_t db_lock; struct list_head head; - struct completion dbell; + struct bsg_job *dbell_bsg_job; + unsigned long bsg_expire; }; #define SA_UPDATE_IOCB_TYPE 0x71 /* Security Association Update IOCB entry */ @@ -140,4 +141,8 @@ (DBELL_ACTIVE(_fcport->vha) && \ (_fcport->disc_state == DSC_LOGIN_AUTH_PEND)) +#define EDIF_SESS_DELETE(_s) \ + (qla_ini_mode_enabled(_s->vha) && (_s->disc_state == DSC_DELETE_PEND || \ + _s->disc_state == DSC_DELETED)) + #endif /* __QLA_EDIF_H */ --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_edif_bsg.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_edif_bsg.h @@ -7,13 +7,15 @@ #ifndef __QLA_EDIF_BSG_H #define __QLA_EDIF_BSG_H +#define EDIF_VERSION1 1 + /* BSG Vendor specific commands */ #define ELS_MAX_PAYLOAD 2112 #ifndef WWN_SIZE #define WWN_SIZE 8 #endif -#define VND_CMD_APP_RESERVED_SIZE 32 - +#define VND_CMD_APP_RESERVED_SIZE 28 +#define VND_CMD_PAD_SIZE 3 enum auth_els_sub_cmd { SEND_ELS = 0, SEND_ELS_REPLY, @@ -28,7 +30,9 @@ #define BSG_CTL_FLAG_LS_ACC 1 #define BSG_CTL_FLAG_LS_RJT 2 #define BSG_CTL_FLAG_TRM 3 - uint8_t extra_rsvd[3]; + uint8_t version; + uint8_t pad[2]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct qla_bsg_auth_els_request { @@ -39,51 +43,46 @@ struct qla_bsg_auth_els_reply { struct fc_bsg_reply r; uint32_t rx_xchg_address; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; }; struct app_id { int app_vid; - uint8_t app_key[32]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_start_reply { uint32_t host_support_edif; uint32_t edif_enode_active; uint32_t edif_edb_active; - uint32_t reserved[VND_CMD_APP_RESERVED_SIZE]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_start { struct app_id app_info; - uint32_t prli_to; - uint32_t key_shred; uint8_t app_start_flags; - uint8_t reserved[VND_CMD_APP_RESERVED_SIZE - 1]; + uint8_t version; + uint8_t pad[2]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_stop { struct app_id app_info; - char buf[16]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_plogi_reply { uint32_t prli_status; - uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; -} __packed; - -#define RECFG_TIME 1 -#define RECFG_BYTES 2 - -struct app_rekey_cfg { - struct app_id app_info; - uint8_t rekey_mode; - port_id_t d_id; - uint8_t force; - union { - int64_t bytes; - int64_t time; - } rky_units; - + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; @@ -91,7 +90,9 @@ struct app_id app_info; uint8_t num_ports; port_id_t remote_pid; - uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; struct app_pinfo { @@ -103,11 +104,8 @@ #define VND_CMD_RTYPE_INITIATOR 2 uint8_t remote_state; uint8_t auth_state; - uint8_t rekey_mode; - int64_t rekey_count; - int64_t rekey_config_value; - int64_t rekey_consumed_value; - + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; @@ -120,6 +118,8 @@ struct app_pinfo_reply { uint8_t port_count; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; struct app_pinfo ports[]; } __packed; @@ -127,6 +127,8 @@ struct app_sinfo_req { struct app_id app_info; uint8_t num_ports; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; @@ -140,6 +142,9 @@ struct app_stats_reply { uint8_t elem_count; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; struct app_sinfo elem[]; } __packed; @@ -163,9 +168,11 @@ uint8_t node_name[WWN_SIZE]; uint8_t port_name[WWN_SIZE]; port_id_t port_id; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved2[VND_CMD_APP_RESERVED_SIZE]; } __packed; -// used for edif mgmt bsg interface #define QL_VND_SC_UNDEF 0 #define QL_VND_SC_SA_UPDATE 1 #define QL_VND_SC_APP_START 2 @@ -175,6 +182,22 @@ #define QL_VND_SC_REKEY_CONFIG 6 #define QL_VND_SC_GET_FCINFO 7 #define QL_VND_SC_GET_STATS 8 +#define QL_VND_SC_AEN_COMPLETE 9 +#define QL_VND_SC_READ_DBELL 10 + +/* + * bsg caller to provide empty buffer for doorbell events. + * + * sg_io_v4.din_xferp = empty buffer for door bell events + * sg_io_v4.dout_xferp = struct edif_read_dbell *buf + */ +struct edif_read_dbell { + struct app_id app_info; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; +}; + /* Application interface data structure for rtn data */ #define EXT_DEF_EVENT_DATA_SIZE 64 @@ -191,7 +214,9 @@ port_id_t port_id; uint32_t key_type; /* Tx (1) or RX (2) */ uint32_t status; /* 0 succes, 1 failed, 2 timeout , 3 error */ - uint8_t reserved[16]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; #define QL_VND_SA_STAT_SUCCESS 0 @@ -212,9 +237,22 @@ uint8_t wwpn[WWN_SIZE]; port_id_t d_id; } u; - uint32_t reserved[VND_CMD_APP_RESERVED_SIZE]; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; +} __packed; + +struct aen_complete_cmd { + struct app_id app_info; + port_id_t port_id; + uint32_t event_code; + uint8_t version; + uint8_t pad[VND_CMD_PAD_SIZE]; + uint8_t reserved[VND_CMD_APP_RESERVED_SIZE]; } __packed; #define RX_DELAY_DELETE_TIMEOUT 20 +#define FCH_EVT_VENDOR_UNIQUE_VPORT_DOWN 1 + #endif /* QLA_EDIF_BSG_H */ --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_fw.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_fw.h @@ -807,7 +807,7 @@ #define EPD_ELS_COMMAND (0 << 13) #define EPD_ELS_ACC (1 << 13) #define EPD_ELS_RJT (2 << 13) -#define EPD_RX_XCHG (3 << 13) +#define EPD_RX_XCHG (3 << 13) /* terminate exchange */ #define ECF_CLR_PASSTHRU_PEND BIT_12 #define ECF_INCL_FRAME_HDR BIT_11 #define ECF_SEC_LOGIN BIT_3 --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_gbl.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_gbl.h @@ -335,6 +335,7 @@ extern int qla24xx_issue_sa_replace_iocb(scsi_qla_host_t *vha, struct qla_work_evt *e); void qla2x00_sp_release(struct kref *kref); +void qla2x00_els_dcmd2_iocb_timeout(void *data); /* * Global Function Prototypes in qla_mbx.c source file. @@ -433,7 +434,8 @@ qla2x00_get_resource_cnts(scsi_qla_host_t *); extern int -qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map); +qla2x00_get_fcal_position_map(scsi_qla_host_t *ha, char *pos_map, + u8 *num_entries); extern int qla2x00_get_link_status(scsi_qla_host_t *, uint16_t, struct link_statistics *, @@ -727,7 +729,7 @@ void qla24xx_handle_gpsc_event(scsi_qla_host_t *, struct event_arg *); int qla2x00_mgmt_svr_login(scsi_qla_host_t *); void qla24xx_handle_gffid_event(scsi_qla_host_t *vha, struct event_arg *ea); -int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport); +int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport, bool); int qla24xx_async_gpnft(scsi_qla_host_t *, u8, srb_t *); void qla24xx_async_gpnft_done(scsi_qla_host_t *, srb_t *); void qla24xx_async_gnnft_done(scsi_qla_host_t *, srb_t *); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_gs.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_gs.c @@ -1596,7 +1596,6 @@ unsigned int callopt) { struct qla_hw_data *ha = vha->hw; - struct init_cb_24xx *icb24 = (void *)ha->init_cb; struct new_utsname *p_sysid = utsname(); struct ct_fdmi_hba_attr *eiter; uint16_t alen; @@ -1758,8 +1757,8 @@ /* MAX CT Payload Length */ eiter = entries + size; eiter->type = cpu_to_be16(FDMI_HBA_MAXIMUM_CT_PAYLOAD_LENGTH); - eiter->a.max_ct_len = cpu_to_be32(le16_to_cpu(IS_FWI2_CAPABLE(ha) ? - icb24->frame_payload_size : ha->init_cb->frame_payload_size)); + eiter->a.max_ct_len = cpu_to_be32(ha->frame_payload_size >> 2); + alen = sizeof(eiter->a.max_ct_len); alen += FDMI_ATTR_TYPELEN(eiter); eiter->len = cpu_to_be16(alen); @@ -1851,7 +1850,6 @@ unsigned int callopt) { struct qla_hw_data *ha = vha->hw; - struct init_cb_24xx *icb24 = (void *)ha->init_cb; struct new_utsname *p_sysid = utsname(); char *hostname = p_sysid ? p_sysid->nodename : fc_host_system_hostname(vha->host); @@ -1903,8 +1901,7 @@ /* Max frame size. */ eiter = entries + size; eiter->type = cpu_to_be16(FDMI_PORT_MAX_FRAME_SIZE); - eiter->a.max_frame_size = cpu_to_be32(le16_to_cpu(IS_FWI2_CAPABLE(ha) ? - icb24->frame_payload_size : ha->init_cb->frame_payload_size)); + eiter->a.max_frame_size = cpu_to_be32(ha->frame_payload_size); alen = sizeof(eiter->a.max_frame_size); alen += FDMI_ATTR_TYPELEN(eiter); eiter->len = cpu_to_be16(alen); @@ -3280,19 +3277,12 @@ return rval; } -void qla24xx_handle_gffid_event(scsi_qla_host_t *vha, struct event_arg *ea) -{ - fc_port_t *fcport = ea->fcport; - - qla24xx_post_gnl_work(vha, fcport); -} void qla24xx_async_gffid_sp_done(srb_t *sp, int res) { struct scsi_qla_host *vha = sp->vha; fc_port_t *fcport = sp->fcport; struct ct_sns_rsp *ct_rsp; - struct event_arg ea; uint8_t fc4_scsi_feat; uint8_t fc4_nvme_feat; @@ -3300,10 +3290,10 @@ "Async done-%s res %x ID %x. %8phC\n", sp->name, res, fcport->d_id.b24, fcport->port_name); - fcport->flags &= ~FCF_ASYNC_SENT; - ct_rsp = &fcport->ct_desc.ct_sns->p.rsp; + ct_rsp = sp->u.iocb_cmd.u.ctarg.rsp; fc4_scsi_feat = ct_rsp->rsp.gff_id.fc4_features[GFF_FCP_SCSI_OFFSET]; fc4_nvme_feat = ct_rsp->rsp.gff_id.fc4_features[GFF_NVME_OFFSET]; + sp->rc = res; /* * FC-GS-7, 5.2.3.12 FC-4 Features - format @@ -3324,24 +3314,42 @@ } } - memset(&ea, 0, sizeof(ea)); - ea.sp = sp; - ea.fcport = sp->fcport; - ea.rc = res; + if (sp->flags & SRB_WAKEUP_ON_COMP) { + complete(sp->comp); + } else { + if (sp->u.iocb_cmd.u.ctarg.req) { + dma_free_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.req_allocated_size, + sp->u.iocb_cmd.u.ctarg.req, + sp->u.iocb_cmd.u.ctarg.req_dma); + sp->u.iocb_cmd.u.ctarg.req = NULL; + } - qla24xx_handle_gffid_event(vha, &ea); - /* ref: INIT */ - kref_put(&sp->cmd_kref, qla2x00_sp_release); + if (sp->u.iocb_cmd.u.ctarg.rsp) { + dma_free_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.rsp_allocated_size, + sp->u.iocb_cmd.u.ctarg.rsp, + sp->u.iocb_cmd.u.ctarg.rsp_dma); + sp->u.iocb_cmd.u.ctarg.rsp = NULL; + } + + /* ref: INIT */ + kref_put(&sp->cmd_kref, qla2x00_sp_release); + /* we should not be here */ + dump_stack(); + } } /* Get FC4 Feature with Nport ID. */ -int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport) +int qla24xx_async_gffid(scsi_qla_host_t *vha, fc_port_t *fcport, bool wait) { int rval = QLA_FUNCTION_FAILED; struct ct_sns_req *ct_req; srb_t *sp; + DECLARE_COMPLETION_ONSTACK(comp); - if (!vha->flags.online || (fcport->flags & FCF_ASYNC_SENT)) + /* this routine does not have handling for no wait */ + if (!vha->flags.online || !wait) return rval; /* ref: INIT */ @@ -3349,43 +3357,86 @@ if (!sp) return rval; - fcport->flags |= FCF_ASYNC_SENT; sp->type = SRB_CT_PTHRU_CMD; sp->name = "gffid"; sp->gen1 = fcport->rscn_gen; sp->gen2 = fcport->login_gen; qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha) + 2, qla24xx_async_gffid_sp_done); + sp->comp = ∁ + sp->u.iocb_cmd.timeout = qla2x00_els_dcmd2_iocb_timeout; + + if (wait) + sp->flags = SRB_WAKEUP_ON_COMP; + + sp->u.iocb_cmd.u.ctarg.req_allocated_size = sizeof(struct ct_sns_pkt); + sp->u.iocb_cmd.u.ctarg.req = dma_alloc_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.req_allocated_size, + &sp->u.iocb_cmd.u.ctarg.req_dma, + GFP_KERNEL); + if (!sp->u.iocb_cmd.u.ctarg.req) { + ql_log(ql_log_warn, vha, 0xd041, + "%s: Failed to allocate ct_sns request.\n", + __func__); + goto done_free_sp; + } + + sp->u.iocb_cmd.u.ctarg.rsp_allocated_size = sizeof(struct ct_sns_pkt); + sp->u.iocb_cmd.u.ctarg.rsp = dma_alloc_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.rsp_allocated_size, + &sp->u.iocb_cmd.u.ctarg.rsp_dma, + GFP_KERNEL); + if (!sp->u.iocb_cmd.u.ctarg.rsp) { + ql_log(ql_log_warn, vha, 0xd041, + "%s: Failed to allocate ct_sns response.\n", + __func__); + goto done_free_sp; + } /* CT_IU preamble */ - ct_req = qla2x00_prep_ct_req(fcport->ct_desc.ct_sns, GFF_ID_CMD, - GFF_ID_RSP_SIZE); + ct_req = qla2x00_prep_ct_req(sp->u.iocb_cmd.u.ctarg.req, GFF_ID_CMD, GFF_ID_RSP_SIZE); ct_req->req.gff_id.port_id[0] = fcport->d_id.b.domain; ct_req->req.gff_id.port_id[1] = fcport->d_id.b.area; ct_req->req.gff_id.port_id[2] = fcport->d_id.b.al_pa; - sp->u.iocb_cmd.u.ctarg.req = fcport->ct_desc.ct_sns; - sp->u.iocb_cmd.u.ctarg.req_dma = fcport->ct_desc.ct_sns_dma; - sp->u.iocb_cmd.u.ctarg.rsp = fcport->ct_desc.ct_sns; - sp->u.iocb_cmd.u.ctarg.rsp_dma = fcport->ct_desc.ct_sns_dma; sp->u.iocb_cmd.u.ctarg.req_size = GFF_ID_REQ_SIZE; sp->u.iocb_cmd.u.ctarg.rsp_size = GFF_ID_RSP_SIZE; sp->u.iocb_cmd.u.ctarg.nport_handle = NPH_SNS; - ql_dbg(ql_dbg_disc, vha, 0x2132, - "Async-%s hdl=%x %8phC.\n", sp->name, - sp->handle, fcport->port_name); - rval = qla2x00_start_sp(sp); - if (rval != QLA_SUCCESS) + + if (rval != QLA_SUCCESS) { + rval = QLA_FUNCTION_FAILED; goto done_free_sp; + } else { + ql_dbg(ql_dbg_disc, vha, 0x3074, + "Async-%s hdl=%x portid %06x\n", + sp->name, sp->handle, fcport->d_id.b24); + } + + wait_for_completion(sp->comp); + rval = sp->rc; - return rval; done_free_sp: + if (sp->u.iocb_cmd.u.ctarg.req) { + dma_free_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.req_allocated_size, + sp->u.iocb_cmd.u.ctarg.req, + sp->u.iocb_cmd.u.ctarg.req_dma); + sp->u.iocb_cmd.u.ctarg.req = NULL; + } + + if (sp->u.iocb_cmd.u.ctarg.rsp) { + dma_free_coherent(&vha->hw->pdev->dev, + sp->u.iocb_cmd.u.ctarg.rsp_allocated_size, + sp->u.iocb_cmd.u.ctarg.rsp, + sp->u.iocb_cmd.u.ctarg.rsp_dma); + sp->u.iocb_cmd.u.ctarg.rsp = NULL; + } + /* ref: INIT */ kref_put(&sp->cmd_kref, qla2x00_sp_release); - fcport->flags &= ~FCF_ASYNC_SENT; return rval; } @@ -3578,7 +3629,7 @@ do_delete) { if (fcport->loop_id != FC_NO_LOOP_ID) { if (fcport->flags & FCF_FCP2_DEVICE) - fcport->logout_on_delete = 0; + continue; ql_log(ql_log_warn, vha, 0x20f0, "%s %d %8phC post del sess\n", --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_init.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_init.c @@ -47,6 +47,7 @@ { srb_t *sp = from_timer(sp, t, u.iocb_cmd.timer); struct srb_iocb *iocb; + scsi_qla_host_t *vha = sp->vha; WARN_ON(irqs_disabled()); iocb = &sp->u.iocb_cmd; @@ -54,6 +55,12 @@ /* ref: TMR */ kref_put(&sp->cmd_kref, qla2x00_sp_release); + + if (vha && qla2x00_isp_reg_stat(vha->hw)) { + ql_log(ql_log_info, vha, 0x9008, + "PCI/Register disconnect.\n"); + qla_pci_set_eeh_busy(vha); + } } void qla2x00_sp_free(srb_t *sp) @@ -103,6 +110,7 @@ struct qla_qpair *qpair = sp->qpair; u32 handle; unsigned long flags; + int sp_found = 0, cmdsp_found = 0; if (sp->cmd_sp) ql_dbg(ql_dbg_async, sp->vha, 0x507c, @@ -117,18 +125,21 @@ 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)) + sp->cmd_sp)) { qpair->req->outstanding_cmds[handle] = NULL; + cmdsp_found = 1; + } /* removing the abort */ if (qpair->req->outstanding_cmds[handle] == sp) { qpair->req->outstanding_cmds[handle] = NULL; + sp_found = 1; break; } } spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); - if (sp->cmd_sp) { + if (cmdsp_found && sp->cmd_sp) { /* * This done function should take care of * original command ref: INIT @@ -136,8 +147,10 @@ sp->cmd_sp->done(sp->cmd_sp, QLA_OS_TIMER_EXPIRED); } - abt->u.abt.comp_status = cpu_to_le16(CS_TIMEOUT); - sp->done(sp, QLA_OS_TIMER_EXPIRED); + if (sp_found) { + abt->u.abt.comp_status = cpu_to_le16(CS_TIMEOUT); + sp->done(sp, QLA_OS_TIMER_EXPIRED); + } } static void qla24xx_abort_sp_done(srb_t *sp, int res) @@ -168,6 +181,7 @@ if (!sp) return QLA_MEMORY_ALLOC_FAILED; + qla_vha_mark_busy(vha); abt_iocb = &sp->u.iocb_cmd; sp->type = SRB_ABT_CMD; sp->name = "abort"; @@ -1480,7 +1494,6 @@ ql_dbg(ql_dbg_disc, vha, 0x20ef, "%s %d %8phC EDIF: post DB_AUTH: AUTH needed\n", __func__, __LINE__, fcport->port_name); - fcport->edif.app_started = 1; fcport->edif.app_sess_online = 1; qla_edb_eventcreate(vha, VND_CMD_AUTH_STATE_NEEDED, @@ -1763,8 +1776,16 @@ break; case DSC_LOGIN_PEND: - if (fcport->fw_login_state == DSC_LS_PLOGI_COMP) + if (vha->hw->flags.edif_enabled) + break; + + if (fcport->fw_login_state == DSC_LS_PLOGI_COMP) { + ql_dbg(ql_dbg_disc, vha, 0x2118, + "%s %d %8phC post %s PRLI\n", + __func__, __LINE__, fcport->port_name, + NVME_TARGET(vha->hw, fcport) ? "NVME" : "FC"); qla24xx_post_prli_work(vha, fcport); + } break; case DSC_UPD_FCPORT: @@ -1818,7 +1839,8 @@ case RSCN_PORT_ADDR: fcport = qla2x00_find_fcport_by_nportid(vha, &ea->id, 1); if (fcport) { - if (fcport->flags & FCF_FCP2_DEVICE) { + if (fcport->flags & FCF_FCP2_DEVICE && + atomic_read(&fcport->state) == FCS_ONLINE) { ql_dbg(ql_dbg_disc, vha, 0x2115, "Delaying session delete for FCP2 portid=%06x %8phC ", fcport->d_id.b24, fcport->port_name); @@ -1850,7 +1872,8 @@ break; case RSCN_AREA_ADDR: list_for_each_entry(fcport, &vha->vp_fcports, list) { - if (fcport->flags & FCF_FCP2_DEVICE) + if (fcport->flags & FCF_FCP2_DEVICE && + atomic_read(&fcport->state) == FCS_ONLINE) continue; if ((ea->id.b24 & 0xffff00) == (fcport->d_id.b24 & 0xffff00)) { @@ -1861,7 +1884,8 @@ break; case RSCN_DOM_ADDR: list_for_each_entry(fcport, &vha->vp_fcports, list) { - if (fcport->flags & FCF_FCP2_DEVICE) + if (fcport->flags & FCF_FCP2_DEVICE && + atomic_read(&fcport->state) == FCS_ONLINE) continue; if ((ea->id.b24 & 0xff0000) == (fcport->d_id.b24 & 0xff0000)) { @@ -1873,7 +1897,8 @@ case RSCN_FAB_ADDR: default: list_for_each_entry(fcport, &vha->vp_fcports, list) { - if (fcport->flags & FCF_FCP2_DEVICE) + if (fcport->flags & FCF_FCP2_DEVICE && + atomic_read(&fcport->state) == FCS_ONLINE) continue; fcport->scan_needed = 1; @@ -2006,6 +2031,7 @@ if (!sp) goto done; + qla_vha_mark_busy(vha); sp->type = SRB_TM_CMD; sp->name = "tmf"; qla2x00_init_async_sp(sp, qla2x00_get_async_timeout(vha), @@ -2124,6 +2150,13 @@ } if (N2N_TOPO(vha->hw)) { + if (ea->fcport->n2n_link_reset_cnt == + vha->hw->login_retry_count && + ea->fcport->flags & FCF_FCSP_DEVICE) { + /* remote authentication app just started */ + ea->fcport->n2n_link_reset_cnt = 0; + } + if (ea->fcport->n2n_link_reset_cnt < vha->hw->login_retry_count) { ea->fcport->n2n_link_reset_cnt++; @@ -4509,6 +4542,8 @@ BIT_6) != 0; ql_dbg(ql_dbg_init, vha, 0x00bc, "FA-WWPN Support: %s.\n", (ha->flags.fawwpn_enabled) ? "enabled" : "disabled"); + /* Init_cb will be reused for other command(s). Save a backup copy of port_name */ + memcpy(ha->port_name, ha->init_cb->port_name, WWN_SIZE); } /* ELS pass through payload is limit by frame size. */ @@ -5273,9 +5308,6 @@ INIT_LIST_HEAD(&fcport->edif.tx_sa_list); INIT_LIST_HEAD(&fcport->edif.rx_sa_list); - if (vha->e_dbell.db_flags == EDB_ACTIVE) - fcport->edif.app_started = 1; - spin_lock_init(&fcport->edif.indx_list_lock); INIT_LIST_HEAD(&fcport->edif.edif_indx_list); @@ -5488,6 +5520,22 @@ return QLA_FUNCTION_FAILED; } +static void +qla_reinitialize_link(scsi_qla_host_t *vha) +{ + int rval; + + atomic_set(&vha->loop_state, LOOP_DOWN); + atomic_set(&vha->loop_down_timer, LOOP_DOWN_TIME); + rval = qla2x00_full_login_lip(vha); + if (rval == QLA_SUCCESS) { + ql_dbg(ql_dbg_disc, vha, 0xd050, "Link reinitialized\n"); + } else { + ql_dbg(ql_dbg_disc, vha, 0xd051, + "Link reinitialization failed (%d)\n", rval); + } +} + /* * qla2x00_configure_local_loop * Updates Fibre Channel Device Database with local loop devices. @@ -5539,6 +5587,19 @@ spin_unlock_irqrestore(&vha->work_lock, flags); if (vha->scan.scan_retry < MAX_SCAN_RETRIES) { + u8 loop_map_entries = 0; + int rc; + + rc = qla2x00_get_fcal_position_map(vha, NULL, + &loop_map_entries); + if (rc == QLA_SUCCESS && loop_map_entries > 1) { + /* + * There are devices that are still not logged + * in. Reinitialize to give them a chance. + */ + qla_reinitialize_link(vha); + return QLA_FUNCTION_FAILED; + } set_bit(LOCAL_LOOP_UPDATE, &vha->dpc_flags); set_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags); } @@ -5767,8 +5828,6 @@ if (atomic_read(&fcport->state) == FCS_ONLINE) return; - qla2x00_set_fcport_state(fcport, FCS_ONLINE); - rport_ids.node_name = wwn_to_u64(fcport->node_name); rport_ids.port_name = wwn_to_u64(fcport->port_name); rport_ids.port_id = fcport->d_id.b.domain << 16 | @@ -5869,7 +5928,6 @@ qla2x00_reg_remote_port(vha, fcport); break; case MODE_TARGET: - qla2x00_set_fcport_state(fcport, FCS_ONLINE); if (!vha->vha_tgt.qla_tgt->tgt_stop && !vha->vha_tgt.qla_tgt->tgt_stopped) qlt_fc_port_added(vha, fcport); @@ -5887,6 +5945,8 @@ if (NVME_TARGET(vha->hw, fcport)) qla_nvme_register_remote(vha, fcport); + qla2x00_set_fcport_state(fcport, FCS_ONLINE); + if (IS_IIDMA_CAPABLE(vha->hw) && vha->hw->flags.gpsc_supported) { if (fcport->id_changed) { fcport->id_changed = 0; @@ -9657,6 +9717,12 @@ vha->hw->flags.port_isolated = 1; + if (qla2x00_isp_reg_stat(vha->hw)) { + ql_log(ql_log_info, vha, 0x9006, + "PCI/Register disconnect, exiting.\n"); + qla_pci_set_eeh_busy(vha); + return FAILED; + } if (qla2x00_chip_is_down(vha)) return 0; @@ -9672,6 +9738,13 @@ { scsi_qla_host_t *vha = shost_priv(host); + if (qla2x00_isp_reg_stat(vha->hw)) { + ql_log(ql_log_info, vha, 0x9001, + "PCI/Register disconnect, exiting.\n"); + qla_pci_set_eeh_busy(vha); + return FAILED; + } + vha->hw->flags.port_isolated = 0; /* Set the flag to 1, so that isp_abort can proceed */ vha->flags.online = 1; --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_inline.h +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_inline.h @@ -225,11 +225,9 @@ qla2x00_get_sp(scsi_qla_host_t *vha, fc_port_t *fcport, gfp_t flag) { srb_t *sp = NULL; - uint8_t bail; struct qla_qpair *qpair; - QLA_VHA_MARK_BUSY(vha, bail); - if (unlikely(bail)) + if (unlikely(qla_vha_mark_busy(vha))) return NULL; qpair = vha->hw->base_qpair; --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_iocb.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_iocb.c @@ -2819,7 +2819,7 @@ sp->vha->qla_stats.control_requests++; } -static void +void qla2x00_els_dcmd2_iocb_timeout(void *data) { srb_t *sp = data; @@ -2882,6 +2882,9 @@ sp->name, res, sp->handle, fcport->d_id.b24, fcport->port_name); fcport->flags &= ~(FCF_ASYNC_SENT|FCF_ASYNC_ACTIVE); + /* For edif, set logout on delete to ensure any residual key from FW is flushed.*/ + fcport->logout_on_delete = 1; + fcport->chip_reset = vha->hw->base_qpair->chip_reset; if (sp->flags & SRB_WAKEUP_ON_COMP) complete(&lio->u.els_plogi.comp); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_isr.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_isr.c @@ -1354,9 +1354,7 @@ if (!vha->vp_idx) { if (ha->flags.fawwpn_enabled && (ha->current_topology == ISP_CFG_F)) { - void *wwpn = ha->init_cb->port_name; - - memcpy(vha->port_name, wwpn, WWN_SIZE); + memcpy(vha->port_name, ha->port_name, WWN_SIZE); fc_host_port_name(vha->host) = wwn_to_u64(vha->port_name); ql_dbg(ql_dbg_init + ql_dbg_verbose, @@ -2639,7 +2637,7 @@ } if (unlikely(logit)) - ql_log(ql_dbg_io, fcport->vha, 0x5060, + ql_dbg(ql_dbg_io, fcport->vha, 0x5060, "NVME-%s ERR Handling - hdl=%x status(%x) tr_len:%x resid=%x ox_id=%x\n", sp->name, sp->handle, comp_status, fd->transferred_length, le32_to_cpu(sts->residual_len), @@ -3426,6 +3424,7 @@ case CS_PORT_UNAVAILABLE: case CS_TIMEOUT: case CS_RESET: + case CS_EDIF_INV_REQ: /* * We are going to have the fc class block the rport @@ -3496,7 +3495,7 @@ out: if (logit) - ql_log(ql_dbg_io, fcport->vha, 0x3022, + ql_dbg(ql_dbg_io, fcport->vha, 0x3022, "FCP command status: 0x%x-0x%x (0x%x) nexus=%ld:%d:%llu portid=%02x%02x%02x oxid=0x%x cdb=%10phN len=0x%x rsp_info=0x%x resid=0x%x fw_resid=0x%x sp=%p cp=%p.\n", comp_status, scsi_status, res, vha->host_no, cp->device->id, cp->device->lun, fcport->d_id.b.domain, @@ -3772,6 +3771,8 @@ struct qla_hw_data *ha = vha->hw; struct purex_entry_24xx *purex_entry; struct purex_item *pure_item; + u16 rsp_in = 0; + int is_shadow_hba; if (!ha->flags.fw_started) return; @@ -3781,7 +3782,18 @@ qla_cpu_update(rsp->qpair, smp_processor_id()); } - while (rsp->ring_ptr->signature != RESPONSE_PROCESSED) { +#define __update_rsp_in(_is_shadow_hba, _rsp, _rsp_in) \ + do { \ + _rsp_in = _is_shadow_hba ? *(_rsp)->in_ptr : \ + rd_reg_dword_relaxed((_rsp)->rsp_q_in); \ + } while (0) + + is_shadow_hba = IS_SHADOW_REG_CAPABLE(ha); + + __update_rsp_in(is_shadow_hba, rsp, rsp_in); + + while (rsp->ring_index != rsp_in && + rsp->ring_ptr->signature != RESPONSE_PROCESSED) { pkt = (struct sts_entry_24xx *)rsp->ring_ptr; rsp->ring_index++; @@ -3894,6 +3906,7 @@ } pure_item = qla27xx_copy_fpin_pkt(vha, (void **)&pkt, &rsp); + __update_rsp_in(is_shadow_hba, rsp, rsp_in); if (!pure_item) break; qla24xx_queue_purex_item(vha, pure_item, @@ -4420,16 +4433,12 @@ } /* Enable MSI-X vector for response queue update for queue 0 */ - if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) { - if (ha->msixbase && ha->mqiobase && - (ha->max_rsp_queues > 1 || ha->max_req_queues > 1 || - ql2xmqsupport)) - ha->mqenable = 1; - } else - if (ha->mqiobase && - (ha->max_rsp_queues > 1 || ha->max_req_queues > 1 || - ql2xmqsupport)) - ha->mqenable = 1; + if (IS_MQUE_CAPABLE(ha) && + (ha->msixbase && ha->mqiobase && ha->max_qpairs)) + ha->mqenable = 1; + else + ha->mqenable = 0; + ql_dbg(ql_dbg_multiq, vha, 0xc005, "mqiobase=%p, max_rsp_queues=%d, max_req_queues=%d.\n", ha->mqiobase, ha->max_rsp_queues, ha->max_req_queues); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_mbx.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_mbx.c @@ -238,6 +238,8 @@ ql_dbg(ql_dbg_mbx, vha, 0x1112, "mbox[%d]<-0x%04x\n", cnt, *iptr); wrt_reg_word(optr, *iptr); + } else { + wrt_reg_word(optr, 0); } mboxes >>= 1; @@ -274,6 +276,12 @@ atomic_inc(&ha->num_pend_mbx_stage3); if (!wait_for_completion_timeout(&ha->mbx_intr_comp, mcp->tov * HZ)) { + ql_dbg(ql_dbg_mbx, vha, 0x117a, + "cmd=%x Timeout.\n", command); + spin_lock_irqsave(&ha->hardware_lock, flags); + clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); + spin_unlock_irqrestore(&ha->hardware_lock, flags); + if (chip_reset != ha->chip_reset) { eeh_delay = ha->flags.eeh_busy ? 1 : 0; @@ -286,12 +294,6 @@ rval = QLA_ABORTED; goto premature_exit; } - ql_dbg(ql_dbg_mbx, vha, 0x117a, - "cmd=%x Timeout.\n", command); - spin_lock_irqsave(&ha->hardware_lock, flags); - clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags); - spin_unlock_irqrestore(&ha->hardware_lock, flags); - } else if (ha->flags.purge_mbox || chip_reset != ha->chip_reset) { eeh_delay = ha->flags.eeh_busy ? 1 : 0; @@ -3066,7 +3068,8 @@ * Kernel context. */ int -qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map) +qla2x00_get_fcal_position_map(scsi_qla_host_t *vha, char *pos_map, + u8 *num_entries) { int rval; mbx_cmd_t mc; @@ -3106,6 +3109,8 @@ if (pos_map) memcpy(pos_map, pmap, FCAL_MAP_SIZE); + if (num_entries) + *num_entries = pmap[0]; } dma_pool_free(ha->s_dma_pool, pmap, pmap_dma); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_mid.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_mid.c @@ -166,9 +166,13 @@ int ret = QLA_SUCCESS; fc_port_t *fcport; - if (vha->hw->flags.edif_enabled) + if (vha->hw->flags.edif_enabled) { + if (DBELL_ACTIVE(vha)) + qla2x00_post_aen_work(vha, FCH_EVT_VENDOR_UNIQUE, + FCH_EVT_VENDOR_UNIQUE_VPORT_DOWN); /* delete sessions and flush sa_indexes */ qla2x00_wait_for_sess_deletion(vha); + } if (vha->hw->flags.fw_started) ret = qla24xx_control_vp(vha, VCE_COMMAND_DISABLE_VPS_LOGO_ALL); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_nvme.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_nvme.c @@ -37,11 +37,6 @@ (fcport->nvme_flag & NVME_FLAG_REGISTERED)) return 0; - if (atomic_read(&fcport->state) == FCS_ONLINE) - return 0; - - qla2x00_set_fcport_state(fcport, FCS_ONLINE); - fcport->nvme_flag &= ~NVME_FLAG_RESETTING; memset(&req, 0, sizeof(struct nvme_fc_port_info)); --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_os.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_os.c @@ -333,6 +333,11 @@ "To wait for ABTS response on I/O timeouts for NVMe. (default: 1)"); +u32 ql2xdelay_before_pci_error_handling = 5; +module_param(ql2xdelay_before_pci_error_handling, uint, 0644); +MODULE_PARM_DESC(ql2xdelay_before_pci_error_handling, + "Number of seconds delayed before qla begin PCI error self-handling (default: 5).\n"); + static void qla2x00_clear_drv_active(struct qla_hw_data *); static void qla2x00_free_device(scsi_qla_host_t *); static int qla2xxx_map_queues(struct Scsi_Host *shost); @@ -1337,21 +1342,20 @@ /* * Returns: QLA_SUCCESS or QLA_FUNCTION_FAILED. */ -int -qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t, - uint64_t l, enum nexus_wait_type type) +static int +__qla2x00_eh_wait_for_pending_commands(struct qla_qpair *qpair, unsigned int t, + uint64_t l, enum nexus_wait_type type) { int cnt, match, status; unsigned long flags; - struct qla_hw_data *ha = vha->hw; - struct req_que *req; + scsi_qla_host_t *vha = qpair->vha; + struct req_que *req = qpair->req; srb_t *sp; struct scsi_cmnd *cmd; status = QLA_SUCCESS; - spin_lock_irqsave(&ha->hardware_lock, flags); - req = vha->req; + spin_lock_irqsave(qpair->qp_lock_ptr, flags); for (cnt = 1; status == QLA_SUCCESS && cnt < req->num_outstanding_cmds; cnt++) { sp = req->outstanding_cmds[cnt]; @@ -1378,15 +1382,35 @@ if (!match) continue; - spin_unlock_irqrestore(&ha->hardware_lock, flags); + spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); status = qla2x00_eh_wait_on_command(cmd); - spin_lock_irqsave(&ha->hardware_lock, flags); + spin_lock_irqsave(qpair->qp_lock_ptr, flags); } - spin_unlock_irqrestore(&ha->hardware_lock, flags); + spin_unlock_irqrestore(qpair->qp_lock_ptr, flags); return status; } +int +qla2x00_eh_wait_for_pending_commands(scsi_qla_host_t *vha, unsigned int t, + uint64_t l, enum nexus_wait_type type) +{ + struct qla_qpair *qpair; + struct qla_hw_data *ha = vha->hw; + int i, status = QLA_SUCCESS; + + status = __qla2x00_eh_wait_for_pending_commands(ha->base_qpair, t, l, + type); + for (i = 0; status == QLA_SUCCESS && i < ha->max_qpairs; i++) { + qpair = ha->queue_pair_map[i]; + if (!qpair) + continue; + status = __qla2x00_eh_wait_for_pending_commands(qpair, t, l, + type); + } + return status; +} + static char *reset_errors[] = { "HBA not online", "HBA not ready", @@ -1420,7 +1444,7 @@ return err; if (fcport->deleted) - return SUCCESS; + return FAILED; ql_log(ql_log_info, vha, 0x8009, "DEVICE RESET ISSUED nexus=%ld:%d:%llu cmd=%p.\n", vha->host_no, @@ -1488,7 +1512,7 @@ return err; if (fcport->deleted) - return SUCCESS; + return FAILED; ql_log(ql_log_info, vha, 0x8009, "TARGET RESET ISSUED nexus=%ld:%d cmd=%p.\n", vha->host_no, @@ -5015,13 +5039,11 @@ qla2x00_alloc_work(struct scsi_qla_host *vha, enum qla_work_type type) { 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) + if (qla_vha_mark_busy(vha)) return NULL; e = kzalloc(sizeof(struct qla_work_evt), GFP_ATOMIC); @@ -5472,7 +5494,7 @@ e->u.fcport.fcport, false); break; case QLA_EVT_SA_REPLACE: - qla24xx_issue_sa_replace_iocb(vha, e); + rc = qla24xx_issue_sa_replace_iocb(vha, e); break; } @@ -7238,6 +7260,44 @@ } } +static void qla_wind_down_chip(scsi_qla_host_t *vha) +{ + struct qla_hw_data *ha = vha->hw; + + if (!ha->flags.eeh_busy) + return; + if (ha->pci_error_state) + /* system is trying to recover */ + return; + + /* + * Current system is not handling PCIE error. At this point, this is + * best effort to wind down the adapter. + */ + if (time_after_eq(jiffies, ha->eeh_jif + ql2xdelay_before_pci_error_handling * HZ) && + !ha->flags.eeh_flush) { + ql_log(ql_log_info, vha, 0x9009, + "PCI Error detected, attempting to reset hardware.\n"); + + ha->isp_ops->reset_chip(vha); + ha->isp_ops->disable_intrs(ha); + + ha->flags.eeh_flush = EEH_FLUSH_RDY; + ha->eeh_jif = jiffies; + + } else if (ha->flags.eeh_flush == EEH_FLUSH_RDY && + time_after_eq(jiffies, ha->eeh_jif + 5 * HZ)) { + pci_clear_master(ha->pdev); + + /* flush all command */ + qla2x00_abort_isp_cleanup(vha); + ha->flags.eeh_flush = EEH_FLUSH_DONE; + + ql_log(ql_log_info, vha, 0x900a, + "PCI Error handling complete, all IOs aborted.\n"); + } +} + /************************************************************************** * qla2x00_timer * @@ -7261,6 +7321,8 @@ fc_port_t *fcport = NULL; if (ha->flags.eeh_busy) { + qla_wind_down_chip(vha); + ql_dbg(ql_dbg_timer, vha, 0x6000, "EEH = %d, restarting timer.\n", ha->flags.eeh_busy); @@ -7841,6 +7903,9 @@ spin_lock_irqsave(&base_vha->work_lock, flags); if (!ha->flags.eeh_busy) { + ha->eeh_jif = jiffies; + ha->flags.eeh_flush = 0; + ha->flags.eeh_busy = 1; do_cleanup = true; } --- linux-5.19.0.orig/drivers/scsi/qla2xxx/qla_target.c +++ linux-5.19.0/drivers/scsi/qla2xxx/qla_target.c @@ -981,22 +981,6 @@ sess->send_els_logo); if (!IS_SW_RESV_ADDR(sess->d_id)) { - if (ha->flags.edif_enabled && - (!own || own->iocb.u.isp24.status_subcode == ELS_PLOGI)) { - sess->edif.authok = 0; - if (!ha->flags.host_shutting_down) { - ql_dbg(ql_dbg_edif, vha, 0x911e, - "%s wwpn %8phC calling qla2x00_release_all_sadb\n", - __func__, sess->port_name); - qla2x00_release_all_sadb(vha, sess); - } else { - ql_dbg(ql_dbg_edif, vha, 0x911e, - "%s bypassing release_all_sadb\n", - __func__); - } - qla_edif_clear_appdata(vha, sess); - qla_edif_sess_down(vha, sess); - } qla2x00_mark_device_lost(vha, sess, 0); if (sess->send_els_logo) { @@ -1042,6 +1026,25 @@ sess->nvme_flag |= NVME_FLAG_DELETING; qla_nvme_unregister_remote_port(sess); } + + if (ha->flags.edif_enabled && + (!own || (own && + own->iocb.u.isp24.status_subcode == ELS_PLOGI))) { + sess->edif.authok = 0; + if (!ha->flags.host_shutting_down) { + ql_dbg(ql_dbg_edif, vha, 0x911e, + "%s wwpn %8phC calling qla2x00_release_all_sadb\n", + __func__, sess->port_name); + qla2x00_release_all_sadb(vha, sess); + } else { + ql_dbg(ql_dbg_edif, vha, 0x911e, + "%s bypassing release_all_sadb\n", + __func__); + } + + qla_edif_clear_appdata(vha, sess); + qla_edif_sess_down(vha, sess); + } } /* @@ -2148,8 +2151,10 @@ abort_cmd = ha->tgt.tgt_ops->find_cmd_by_tag(sess, le32_to_cpu(abts->exchange_addr_to_abort)); - if (!abort_cmd) + if (!abort_cmd) { + mempool_free(mcmd, qla_tgt_mgmt_cmd_mempool); return -EIO; + } mcmd->unpacked_lun = abort_cmd->se_cmd.orig_fe_lun; if (abort_cmd->qpair) { @@ -6932,14 +6937,8 @@ if (ha->flags.msix_enabled) { if (IS_QLA83XX(ha) || IS_QLA27XX(ha) || IS_QLA28XX(ha)) { - if (IS_QLA2071(ha)) { - /* 4 ports Baker: Enable Interrupt Handshake */ - icb->msix_atio = 0; - icb->firmware_options_2 |= cpu_to_le32(BIT_26); - } else { - icb->msix_atio = cpu_to_le16(msix->entry); - icb->firmware_options_2 &= cpu_to_le32(~BIT_26); - } + icb->msix_atio = cpu_to_le16(msix->entry); + icb->firmware_options_2 &= cpu_to_le32(~BIT_26); ql_dbg(ql_dbg_init, vha, 0xf072, "Registering ICB vector 0x%x for atio que.\n", msix->entry); --- linux-5.19.0.orig/drivers/scsi/scsi_debug.c +++ linux-5.19.0/drivers/scsi/scsi_debug.c @@ -1899,6 +1899,13 @@ arr[14] |= 0x40; } + /* + * Since the scsi_debug READ CAPACITY implementation always reports the + * total disk capacity, set RC BASIS = 1 for host-managed ZBC devices. + */ + if (devip->zmodel == BLK_ZONED_HM) + arr[12] |= 1 << 4; + arr[15] = sdebug_lowest_aligned & 0xff; if (have_dif_prot) { @@ -3778,7 +3785,7 @@ mk_sense_buffer(scp, ILLEGAL_REQUEST, INVALID_FIELD_IN_CDB, 0); return illegal_condition_result; } - lrdp = kzalloc(lbdof_blen, GFP_ATOMIC); + lrdp = kzalloc(lbdof_blen, GFP_ATOMIC | __GFP_NOWARN); if (lrdp == NULL) return SCSI_MLQUEUE_HOST_BUSY; if (sdebug_verbose) @@ -4429,7 +4436,7 @@ if (ret) return ret; - arr = kcalloc(lb_size, vnum, GFP_ATOMIC); + arr = kcalloc(lb_size, vnum, GFP_ATOMIC | __GFP_NOWARN); if (!arr) { mk_sense_buffer(scp, ILLEGAL_REQUEST, INSUFF_RES_ASC, INSUFF_RES_ASCQ); @@ -4497,7 +4504,7 @@ rep_max_zones = (alloc_len - 64) >> ilog2(RZONES_DESC_HD); - arr = kzalloc(alloc_len, GFP_ATOMIC); + arr = kzalloc(alloc_len, GFP_ATOMIC | __GFP_NOWARN); if (!arr) { mk_sense_buffer(scp, ILLEGAL_REQUEST, INSUFF_RES_ASC, INSUFF_RES_ASCQ); @@ -7316,8 +7323,12 @@ dev_set_name(&sdbg_host->dev, "adapter%d", sdebug_num_hosts); error = device_register(&sdbg_host->dev); - if (error) + if (error) { + spin_lock(&sdebug_host_list_lock); + list_del(&sdbg_host->host_list); + spin_unlock(&sdebug_host_list_lock); goto clean; + } ++sdebug_num_hosts; return 0; @@ -7329,7 +7340,10 @@ kfree(sdbg_devinfo->zstate); kfree(sdbg_devinfo); } - kfree(sdbg_host); + if (sdbg_host->dev.release) + put_device(&sdbg_host->dev); + else + kfree(sdbg_host); pr_warn("%s: failed, errno=%d\n", __func__, -error); return error; } --- linux-5.19.0.orig/drivers/scsi/scsi_error.c +++ linux-5.19.0/drivers/scsi/scsi_error.c @@ -342,19 +342,11 @@ if (rtn == BLK_EH_DONE) { /* - * Set the command to complete first in order to prevent a real - * completion from releasing the command while error handling - * is using it. If the command was already completed, then the - * lower level driver beat the timeout handler, and it is safe - * to return without escalating error recovery. - * - * If timeout handling lost the race to a real completion, the - * block layer may ignore that due to a fake timeout injection, - * so return RESET_TIMER to allow error handling another shot - * at this command. + * If scsi_done() has already set SCMD_STATE_COMPLETE, do not + * modify *scmd. */ if (test_and_set_bit(SCMD_STATE_COMPLETE, &scmd->state)) - return BLK_EH_RESET_TIMER; + return BLK_EH_DONE; if (scsi_abort_command(scmd) != SUCCESS) { set_host_byte(scmd, DID_TIME_OUT); scsi_eh_scmd_add(scmd); --- linux-5.19.0.orig/drivers/scsi/scsi_lib.c +++ linux-5.19.0/drivers/scsi/scsi_lib.c @@ -118,7 +118,7 @@ } } -static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd) +static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd, unsigned long msecs) { struct request *rq = scsi_cmd_to_rq(cmd); @@ -128,7 +128,12 @@ } else { WARN_ON_ONCE(true); } - blk_mq_requeue_request(rq, true); + + if (msecs) { + blk_mq_requeue_request(rq, false); + blk_mq_delay_kick_requeue_list(rq->q, msecs); + } else + blk_mq_requeue_request(rq, true); } /** @@ -163,7 +168,7 @@ * Requeue this command. It will go before all other commands * that are already in the queue. Schedule requeue work under * lock such that the kblockd_schedule_work() call happens - * before blk_cleanup_queue() finishes. + * before blk_mq_destroy_queue() finishes. */ cmd->result = 0; @@ -424,9 +429,9 @@ * it and the queue. Mitigate by taking a reference to the * queue and never touching the sdev again after we drop the * host lock. Note: if __scsi_remove_device() invokes - * blk_cleanup_queue() before the queue is run from this + * blk_mq_destroy_queue() before the queue is run from this * function then blk_run_queue() will return immediately since - * blk_cleanup_queue() marks the queue with QUEUE_FLAG_DYING. + * blk_mq_destroy_queue() marks the queue with QUEUE_FLAG_DYING. */ slq = sdev->request_queue; if (!blk_get_queue(slq)) @@ -658,14 +663,6 @@ return bytes; } -/* Helper for scsi_io_completion() when "reprep" action required. */ -static void scsi_io_completion_reprep(struct scsi_cmnd *cmd, - struct request_queue *q) -{ - /* A new command will be prepared and issued. */ - scsi_mq_requeue_cmd(cmd); -} - static bool scsi_cmd_runtime_exceeced(struct scsi_cmnd *cmd) { struct request *req = scsi_cmd_to_rq(cmd); @@ -683,14 +680,21 @@ return false; } +/* + * When ALUA transition state is returned, reprep the cmd to + * use the ALUA handler's transition timeout. Delay the reprep + * 1 sec to avoid aggressive retries of the target in that + * state. + */ +#define ALUA_TRANSITION_REPREP_DELAY 1000 + /* Helper for scsi_io_completion() when special action required. */ static void scsi_io_completion_action(struct scsi_cmnd *cmd, int result) { - struct request_queue *q = cmd->device->request_queue; struct request *req = scsi_cmd_to_rq(cmd); int level = 0; - enum {ACTION_FAIL, ACTION_REPREP, ACTION_RETRY, - ACTION_DELAYED_RETRY} action; + enum {ACTION_FAIL, ACTION_REPREP, ACTION_DELAYED_REPREP, + ACTION_RETRY, ACTION_DELAYED_RETRY} action; struct scsi_sense_hdr sshdr; bool sense_valid; bool sense_current = true; /* false implies "deferred sense" */ @@ -779,8 +783,8 @@ action = ACTION_DELAYED_RETRY; break; case 0x0a: /* ALUA state transition */ - blk_stat = BLK_STS_TRANSPORT; - fallthrough; + action = ACTION_DELAYED_REPREP; + break; default: action = ACTION_FAIL; break; @@ -839,7 +843,10 @@ return; fallthrough; case ACTION_REPREP: - scsi_io_completion_reprep(cmd, q); + scsi_mq_requeue_cmd(cmd, 0); + break; + case ACTION_DELAYED_REPREP: + scsi_mq_requeue_cmd(cmd, ALUA_TRANSITION_REPREP_DELAY); break; case ACTION_RETRY: /* Retry the same command immediately */ @@ -933,7 +940,7 @@ * command block will be released and the queue function will be goosed. If we * are not done then we have to figure out what to do next: * - * a) We can call scsi_io_completion_reprep(). The request will be + * a) We can call scsi_mq_requeue_cmd(). The request will be * unprepared and put back on the queue. Then a new command will * be created for it. This should be used if we made forward * progress, or if we want to switch from READ(10) to READ(6) for @@ -949,7 +956,6 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) { int result = cmd->result; - struct request_queue *q = cmd->device->request_queue; struct request *req = scsi_cmd_to_rq(cmd); blk_status_t blk_stat = BLK_STS_OK; @@ -986,7 +992,7 @@ * request just queue the command up again. */ if (likely(result == 0)) - scsi_io_completion_reprep(cmd, q); + scsi_mq_requeue_cmd(cmd, 0); else scsi_io_completion_action(cmd, result); } @@ -1549,7 +1555,6 @@ scsi_init_command(sdev, cmd); cmd->eh_eflags = 0; - cmd->allowed = 0; cmd->prot_type = 0; cmd->prot_flags = 0; cmd->submitter = 0; @@ -1600,6 +1605,8 @@ return ret; } + /* Usually overridden by the ULP */ + cmd->allowed = 0; memset(cmd->cmnd, 0, sizeof(cmd->cmnd)); return scsi_cmd_to_driver(cmd)->init_command(cmd); } @@ -1988,9 +1995,13 @@ return blk_mq_alloc_tag_set(tag_set); } -void scsi_mq_destroy_tags(struct Scsi_Host *shost) +void scsi_mq_free_tags(struct kref *kref) { + struct Scsi_Host *shost = container_of(kref, typeof(*shost), + tagset_refcnt); + blk_mq_free_tag_set(&shost->tag_set); + complete(&shost->tagset_freed); } /** --- linux-5.19.0.orig/drivers/scsi/scsi_priv.h +++ linux-5.19.0/drivers/scsi/scsi_priv.h @@ -94,7 +94,7 @@ extern void scsi_requeue_run_queue(struct work_struct *work); extern void scsi_start_queue(struct scsi_device *sdev); extern int scsi_mq_setup_tags(struct Scsi_Host *shost); -extern void scsi_mq_destroy_tags(struct Scsi_Host *shost); +extern void scsi_mq_free_tags(struct kref *kref); extern void scsi_exit_queue(void); extern void scsi_evt_thread(struct work_struct *work); --- linux-5.19.0.orig/drivers/scsi/scsi_scan.c +++ linux-5.19.0/drivers/scsi/scsi_scan.c @@ -340,6 +340,7 @@ kfree(sdev); goto out; } + kref_get(&sdev->host->tagset_refcnt); sdev->request_queue = q; q->queuedata = sdev; __scsi_init_queue(sdev->host, q); --- linux-5.19.0.orig/drivers/scsi/scsi_sysfs.c +++ linux-5.19.0/drivers/scsi/scsi_sysfs.c @@ -828,6 +828,14 @@ } mutex_lock(&sdev->state_mutex); + switch (sdev->sdev_state) { + case SDEV_RUNNING: + case SDEV_OFFLINE: + break; + default: + mutex_unlock(&sdev->state_mutex); + return -EINVAL; + } if (sdev->sdev_state == SDEV_RUNNING && state == SDEV_RUNNING) { ret = 0; } else { @@ -1475,7 +1483,8 @@ scsi_device_set_state(sdev, SDEV_DEL); mutex_unlock(&sdev->state_mutex); - blk_cleanup_queue(sdev->request_queue); + blk_mq_destroy_queue(sdev->request_queue); + kref_put(&sdev->host->tagset_refcnt, scsi_mq_free_tags); cancel_work_sync(&sdev->requeue_work); if (sdev->host->hostt->slave_destroy) --- linux-5.19.0.orig/drivers/scsi/scsi_transport_iscsi.c +++ linux-5.19.0/drivers/scsi/scsi_transport_iscsi.c @@ -231,7 +231,7 @@ dev_set_name(&ep->dev, "ep-%d", id); err = device_register(&ep->dev); if (err) - goto free_id; + goto put_dev; err = sysfs_create_group(&ep->dev.kobj, &iscsi_endpoint_group); if (err) @@ -245,10 +245,12 @@ device_unregister(&ep->dev); return NULL; -free_id: +put_dev: mutex_lock(&iscsi_ep_idr_mutex); idr_remove(&iscsi_ep_idr, id); mutex_unlock(&iscsi_ep_idr_mutex); + put_device(&ep->dev); + return NULL; free_ep: kfree(ep); return NULL; @@ -766,7 +768,7 @@ err = device_register(&iface->dev); if (err) - goto free_iface; + goto put_dev; err = sysfs_create_group(&iface->dev.kobj, &iscsi_iface_group); if (err) @@ -780,9 +782,8 @@ device_unregister(&iface->dev); return NULL; -free_iface: - put_device(iface->dev.parent); - kfree(iface); +put_dev: + put_device(&iface->dev); return NULL; } EXPORT_SYMBOL_GPL(iscsi_create_iface); @@ -1251,15 +1252,15 @@ err = device_register(&fnode_sess->dev); if (err) - goto free_fnode_sess; + goto put_dev; if (dd_size) fnode_sess->dd_data = &fnode_sess[1]; return fnode_sess; -free_fnode_sess: - kfree(fnode_sess); +put_dev: + put_device(&fnode_sess->dev); return NULL; } EXPORT_SYMBOL_GPL(iscsi_create_flashnode_sess); @@ -1299,15 +1300,15 @@ err = device_register(&fnode_conn->dev); if (err) - goto free_fnode_conn; + goto put_dev; if (dd_size) fnode_conn->dd_data = &fnode_conn[1]; return fnode_conn; -free_fnode_conn: - kfree(fnode_conn); +put_dev: + put_device(&fnode_conn->dev); return NULL; } EXPORT_SYMBOL_GPL(iscsi_create_flashnode_conn); @@ -2143,8 +2144,6 @@ return 0; iscsi_remove_conn(iscsi_dev_to_conn(dev)); - iscsi_put_conn(iscsi_dev_to_conn(dev)); - return 0; } @@ -2264,16 +2263,8 @@ } } -static int iscsi_if_stop_conn(struct iscsi_transport *transport, - struct iscsi_uevent *ev) +static int iscsi_if_stop_conn(struct iscsi_cls_conn *conn, int flag) { - int flag = ev->u.stop_conn.flag; - struct iscsi_cls_conn *conn; - - conn = iscsi_conn_lookup(ev->u.stop_conn.sid, ev->u.stop_conn.cid); - if (!conn) - return -EINVAL; - ISCSI_DBG_TRANS_CONN(conn, "iscsi if conn stop.\n"); /* * If this is a termination we have to call stop_conn with that flag @@ -2349,6 +2340,55 @@ ISCSI_DBG_TRANS_CONN(conn, "cleanup done.\n"); } +static int iscsi_iter_force_destroy_conn_fn(struct device *dev, void *data) +{ + struct iscsi_transport *transport; + struct iscsi_cls_conn *conn; + + if (!iscsi_is_conn_dev(dev)) + return 0; + + conn = iscsi_dev_to_conn(dev); + transport = conn->transport; + + if (READ_ONCE(conn->state) != ISCSI_CONN_DOWN) + iscsi_if_stop_conn(conn, STOP_CONN_TERM); + + transport->destroy_conn(conn); + return 0; +} + +/** + * iscsi_force_destroy_session - destroy a session from the kernel + * @session: session to destroy + * + * Force the destruction of a session from the kernel. This should only be + * used when userspace is no longer running during system shutdown. + */ +void iscsi_force_destroy_session(struct iscsi_cls_session *session) +{ + struct iscsi_transport *transport = session->transport; + unsigned long flags; + + WARN_ON_ONCE(system_state == SYSTEM_RUNNING); + + spin_lock_irqsave(&sesslock, flags); + if (list_empty(&session->sess_list)) { + spin_unlock_irqrestore(&sesslock, flags); + /* + * Conn/ep is already freed. Session is being torn down via + * async path. For shutdown we don't care about it so return. + */ + return; + } + spin_unlock_irqrestore(&sesslock, flags); + + device_for_each_child(&session->dev, NULL, + iscsi_iter_force_destroy_conn_fn); + transport->destroy_session(session); +} +EXPORT_SYMBOL_GPL(iscsi_force_destroy_session); + void iscsi_free_session(struct iscsi_cls_session *session) { ISCSI_DBG_TRANS_SESSION(session, "Freeing session\n"); @@ -3720,7 +3760,12 @@ case ISCSI_UEVENT_DESTROY_CONN: return iscsi_if_destroy_conn(transport, ev); case ISCSI_UEVENT_STOP_CONN: - return iscsi_if_stop_conn(transport, ev); + conn = iscsi_conn_lookup(ev->u.stop_conn.sid, + ev->u.stop_conn.cid); + if (!conn) + return -EINVAL; + + return iscsi_if_stop_conn(conn, ev->u.stop_conn.flag); } /* @@ -4771,7 +4816,7 @@ dev_set_name(&priv->dev, "%s", tt->name); err = device_register(&priv->dev); if (err) - goto free_priv; + goto put_dev; err = sysfs_create_group(&priv->dev.kobj, &iscsi_transport_group); if (err) @@ -4806,8 +4851,8 @@ unregister_dev: device_unregister(&priv->dev); return NULL; -free_priv: - kfree(priv); +put_dev: + put_device(&priv->dev); return NULL; } EXPORT_SYMBOL_GPL(iscsi_register_transport); --- linux-5.19.0.orig/drivers/scsi/scsi_transport_sas.c +++ linux-5.19.0/drivers/scsi/scsi_transport_sas.c @@ -716,12 +716,17 @@ int error; error = device_add(&phy->dev); - if (!error) { - transport_add_device(&phy->dev); - transport_configure_device(&phy->dev); + if (error) + return error; + + error = transport_add_device(&phy->dev); + if (error) { + device_del(&phy->dev); + return error; } + transport_configure_device(&phy->dev); - return error; + return 0; } EXPORT_SYMBOL(sas_phy_add); --- linux-5.19.0.orig/drivers/scsi/sd.c +++ linux-5.19.0/drivers/scsi/sd.c @@ -3440,8 +3440,8 @@ if (!sdkp) goto out; - gd = __alloc_disk_node(sdp->request_queue, NUMA_NO_NODE, - &sd_bio_compl_lkclass); + gd = blk_mq_alloc_disk_for_queue(sdp->request_queue, + &sd_bio_compl_lkclass); if (!gd) goto out_free; --- linux-5.19.0.orig/drivers/scsi/sg.c +++ linux-5.19.0/drivers/scsi/sg.c @@ -195,7 +195,7 @@ static void sg_unlink_reserve(Sg_fd * sfp, Sg_request * srp); static Sg_fd *sg_add_sfp(Sg_device * sdp); static void sg_remove_sfp(struct kref *); -static Sg_request *sg_get_rq_mark(Sg_fd * sfp, int pack_id); +static Sg_request *sg_get_rq_mark(Sg_fd * sfp, int pack_id, bool *busy); static Sg_request *sg_add_request(Sg_fd * sfp); static int sg_remove_request(Sg_fd * sfp, Sg_request * srp); static Sg_device *sg_get_dev(int dev); @@ -444,6 +444,7 @@ Sg_fd *sfp; Sg_request *srp; int req_pack_id = -1; + bool busy; sg_io_hdr_t *hp; struct sg_header *old_hdr; int retval; @@ -466,20 +467,16 @@ if (retval) return retval; - srp = sg_get_rq_mark(sfp, req_pack_id); + srp = sg_get_rq_mark(sfp, req_pack_id, &busy); if (!srp) { /* now wait on packet to arrive */ - if (atomic_read(&sdp->detaching)) - return -ENODEV; if (filp->f_flags & O_NONBLOCK) return -EAGAIN; retval = wait_event_interruptible(sfp->read_wait, - (atomic_read(&sdp->detaching) || - (srp = sg_get_rq_mark(sfp, req_pack_id)))); - if (atomic_read(&sdp->detaching)) - return -ENODEV; - if (retval) - /* -ERESTARTSYS as signal hit process */ - return retval; + ((srp = sg_get_rq_mark(sfp, req_pack_id, &busy)) || + (!busy && atomic_read(&sdp->detaching)))); + if (!srp) + /* signal or detaching */ + return retval ? retval : -ENODEV; } if (srp->header.interface_id != '\0') return sg_new_read(sfp, buf, count, srp); @@ -940,9 +937,7 @@ if (result < 0) return result; result = wait_event_interruptible(sfp->read_wait, - (srp_done(sfp, srp) || atomic_read(&sdp->detaching))); - if (atomic_read(&sdp->detaching)) - return -ENODEV; + srp_done(sfp, srp)); write_lock_irq(&sfp->rq_list_lock); if (srp->done) { srp->done = 2; @@ -2079,19 +2074,28 @@ } static Sg_request * -sg_get_rq_mark(Sg_fd * sfp, int pack_id) +sg_get_rq_mark(Sg_fd * sfp, int pack_id, bool *busy) { Sg_request *resp; unsigned long iflags; + *busy = false; write_lock_irqsave(&sfp->rq_list_lock, iflags); list_for_each_entry(resp, &sfp->rq_list, entry) { - /* look for requests that are ready + not SG_IO owned */ - if ((1 == resp->done) && (!resp->sg_io_owned) && + /* look for requests that are not SG_IO owned */ + if ((!resp->sg_io_owned) && ((-1 == pack_id) || (resp->header.pack_id == pack_id))) { - resp->done = 2; /* guard against other readers */ - write_unlock_irqrestore(&sfp->rq_list_lock, iflags); - return resp; + switch (resp->done) { + case 0: /* request active */ + *busy = true; + break; + case 1: /* request done; response ready to return */ + resp->done = 2; /* guard against other readers */ + write_unlock_irqrestore(&sfp->rq_list_lock, iflags); + return resp; + case 2: /* response already being returned */ + break; + } } } write_unlock_irqrestore(&sfp->rq_list_lock, iflags); @@ -2145,6 +2149,15 @@ res = 1; } write_unlock_irqrestore(&sfp->rq_list_lock, iflags); + + /* + * If the device is detaching, wakeup any readers in case we just + * removed the last response, which would leave nothing for them to + * return other than -ENODEV. + */ + if (unlikely(atomic_read(&sfp->parentdp->detaching))) + wake_up_interruptible_all(&sfp->read_wait); + return res; } --- linux-5.19.0.orig/drivers/scsi/smartpqi/smartpqi_init.c +++ linux-5.19.0/drivers/scsi/smartpqi/smartpqi_init.c @@ -5484,10 +5484,10 @@ } switch (scmd->sc_data_direction) { - case DMA_TO_DEVICE: + case DMA_FROM_DEVICE: request->data_direction = SOP_READ_FLAG; break; - case DMA_FROM_DEVICE: + case DMA_TO_DEVICE: request->data_direction = SOP_WRITE_FLAG; break; case DMA_NONE: --- linux-5.19.0.orig/drivers/scsi/snic/snic_disc.c +++ linux-5.19.0/drivers/scsi/snic/snic_disc.c @@ -318,6 +318,9 @@ ret); put_device(&snic->shost->shost_gendev); + spin_lock_irqsave(snic->shost->host_lock, flags); + list_del(&tgt->list); + spin_unlock_irqrestore(snic->shost->host_lock, flags); kfree(tgt); tgt = NULL; --- linux-5.19.0.orig/drivers/scsi/sr.c +++ linux-5.19.0/drivers/scsi/sr.c @@ -624,8 +624,8 @@ if (!cd) goto fail; - disk = __alloc_disk_node(sdev->request_queue, NUMA_NO_NODE, - &sr_bio_compl_lkclass); + disk = blk_mq_alloc_disk_for_queue(sdev->request_queue, + &sr_bio_compl_lkclass); if (!disk) goto fail_free; mutex_init(&cd->lock); --- linux-5.19.0.orig/drivers/scsi/stex.c +++ linux-5.19.0/drivers/scsi/stex.c @@ -665,16 +665,17 @@ return 0; case PASSTHRU_CMD: if (cmd->cmnd[1] == PASSTHRU_GET_DRVVER) { - struct st_drvver ver; + const struct st_drvver ver = { + .major = ST_VER_MAJOR, + .minor = ST_VER_MINOR, + .oem = ST_OEM, + .build = ST_BUILD_VER, + .signature[0] = PASSTHRU_SIGNATURE, + .console_id = host->max_id - 1, + .host_no = hba->host->host_no, + }; size_t cp_len = sizeof(ver); - ver.major = ST_VER_MAJOR; - ver.minor = ST_VER_MINOR; - ver.oem = ST_OEM; - ver.build = ST_BUILD_VER; - ver.signature[0] = PASSTHRU_SIGNATURE; - ver.console_id = host->max_id - 1; - ver.host_no = hba->host->host_no; cp_len = scsi_sg_copy_from_buffer(cmd, &ver, cp_len); if (sizeof(ver) == cp_len) cmd->result = DID_OK << 16; --- linux-5.19.0.orig/drivers/scsi/storvsc_drv.c +++ linux-5.19.0/drivers/scsi/storvsc_drv.c @@ -300,16 +300,21 @@ }; /* - * SRB status codes and masks; a subset of the codes used here. + * SRB status codes and masks. In the 8-bit field, the two high order bits + * are flags, while the remaining 6 bits are an integer status code. The + * definitions here include only the subset of the integer status codes that + * are tested for in this driver. */ - #define SRB_STATUS_AUTOSENSE_VALID 0x80 #define SRB_STATUS_QUEUE_FROZEN 0x40 -#define SRB_STATUS_INVALID_LUN 0x20 -#define SRB_STATUS_SUCCESS 0x01 -#define SRB_STATUS_ABORTED 0x02 -#define SRB_STATUS_ERROR 0x04 -#define SRB_STATUS_DATA_OVERRUN 0x12 + +/* SRB status integer codes */ +#define SRB_STATUS_SUCCESS 0x01 +#define SRB_STATUS_ABORTED 0x02 +#define SRB_STATUS_ERROR 0x04 +#define SRB_STATUS_INVALID_REQUEST 0x06 +#define SRB_STATUS_DATA_OVERRUN 0x12 +#define SRB_STATUS_INVALID_LUN 0x20 #define SRB_STATUS(status) \ (status & ~(SRB_STATUS_AUTOSENSE_VALID | SRB_STATUS_QUEUE_FROZEN)) @@ -966,38 +971,25 @@ void (*process_err_fn)(struct work_struct *work); struct hv_host_device *host_dev = shost_priv(host); - /* - * In some situations, Hyper-V sets multiple bits in the - * srb_status, such as ABORTED and ERROR. So process them - * individually, with the most specific bits first. - */ - - if (vm_srb->srb_status & SRB_STATUS_INVALID_LUN) { - set_host_byte(scmnd, DID_NO_CONNECT); - process_err_fn = storvsc_remove_lun; - goto do_work; - } + switch (SRB_STATUS(vm_srb->srb_status)) { + case SRB_STATUS_ERROR: + case SRB_STATUS_ABORTED: + case SRB_STATUS_INVALID_REQUEST: + if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID) { + /* Check for capacity change */ + if ((asc == 0x2a) && (ascq == 0x9)) { + process_err_fn = storvsc_device_scan; + /* Retry the I/O that triggered this. */ + set_host_byte(scmnd, DID_REQUEUE); + goto do_work; + } - if (vm_srb->srb_status & SRB_STATUS_ABORTED) { - if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID && - /* Capacity data has changed */ - (asc == 0x2a) && (ascq == 0x9)) { - process_err_fn = storvsc_device_scan; /* - * Retry the I/O that triggered this. + * Otherwise, let upper layer deal with the + * error when sense message is present */ - set_host_byte(scmnd, DID_REQUEUE); - goto do_work; - } - } - - if (vm_srb->srb_status & SRB_STATUS_ERROR) { - /* - * Let upper layer deal with error when - * sense message is present. - */ - if (vm_srb->srb_status & SRB_STATUS_AUTOSENSE_VALID) return; + } /* * If there is an error; offline the device since all @@ -1020,6 +1012,13 @@ default: set_host_byte(scmnd, DID_ERROR); } + return; + + case SRB_STATUS_INVALID_LUN: + set_host_byte(scmnd, DID_NO_CONNECT); + process_err_fn = storvsc_remove_lun; + goto do_work; + } return; @@ -2012,7 +2011,7 @@ */ host_dev->handle_error_wq = alloc_ordered_workqueue("storvsc_error_wq_%d", - WQ_MEM_RECLAIM, + 0, host->host_no); if (!host_dev->handle_error_wq) { ret = -ENOMEM; --- linux-5.19.0.orig/drivers/siox/siox-core.c +++ linux-5.19.0/drivers/siox/siox-core.c @@ -839,6 +839,8 @@ err_device_register: /* don't care to make the buffer smaller again */ + put_device(&sdevice->dev); + sdevice = NULL; err_buf_alloc: siox_master_unlock(smaster); --- linux-5.19.0.orig/drivers/slimbus/Kconfig +++ linux-5.19.0/drivers/slimbus/Kconfig @@ -22,7 +22,8 @@ config SLIM_QCOM_NGD_CTRL tristate "Qualcomm SLIMbus Satellite Non-Generic Device Component" - depends on HAS_IOMEM && DMA_ENGINE && NET && QCOM_RPROC_COMMON + depends on HAS_IOMEM && DMA_ENGINE && NET + depends on QCOM_RPROC_COMMON || (COMPILE_TEST && !QCOM_RPROC_COMMON) depends on ARCH_QCOM || COMPILE_TEST select QCOM_QMI_HELPERS select QCOM_PDR_HELPERS --- linux-5.19.0.orig/drivers/slimbus/qcom-ngd-ctrl.c +++ linux-5.19.0/drivers/slimbus/qcom-ngd-ctrl.c @@ -1470,7 +1470,13 @@ ngd->pdev->dev.of_node = node; ctrl->ngd = ngd; - platform_device_add(ngd->pdev); + ret = platform_device_add(ngd->pdev); + if (ret) { + platform_device_put(ngd->pdev); + kfree(ngd); + of_node_put(node); + return ret; + } ngd->base = ctrl->base + ngd->id * data->offset + (ngd->id - 1) * data->size; @@ -1576,17 +1582,27 @@ ctrl->pdr = pdr_handle_alloc(slim_pd_status, ctrl); if (IS_ERR(ctrl->pdr)) { dev_err(dev, "Failed to init PDR handle\n"); - return PTR_ERR(ctrl->pdr); + ret = PTR_ERR(ctrl->pdr); + goto err_pdr_alloc; } pds = pdr_add_lookup(ctrl->pdr, "avs/audio", "msm/adsp/audio_pd"); if (IS_ERR(pds) && PTR_ERR(pds) != -EALREADY) { + ret = PTR_ERR(pds); dev_err(dev, "pdr add lookup failed: %d\n", ret); - return PTR_ERR(pds); + goto err_pdr_lookup; } platform_driver_register(&qcom_slim_ngd_driver); return of_qcom_slim_ngd_register(dev, ctrl); + +err_pdr_alloc: + qcom_unregister_ssr_notifier(ctrl->notifier, &ctrl->nb); + +err_pdr_lookup: + pdr_handle_release(ctrl->pdr); + + return ret; } static int qcom_slim_ngd_ctrl_remove(struct platform_device *pdev) --- linux-5.19.0.orig/drivers/slimbus/stream.c +++ linux-5.19.0/drivers/slimbus/stream.c @@ -67,10 +67,10 @@ 384000, 768000, 0, /* Reserved */ - 110250, - 220500, - 441000, - 882000, + 11025, + 22050, + 44100, + 88200, 176400, 352800, 705600, --- linux-5.19.0.orig/drivers/soc/amlogic/meson-mx-socinfo.c +++ linux-5.19.0/drivers/soc/amlogic/meson-mx-socinfo.c @@ -126,6 +126,7 @@ np = of_find_matching_node(NULL, meson_mx_socinfo_analog_top_ids); if (np) { analog_top_regmap = syscon_node_to_regmap(np); + of_node_put(np); if (IS_ERR(analog_top_regmap)) return PTR_ERR(analog_top_regmap); --- linux-5.19.0.orig/drivers/soc/amlogic/meson-secure-pwrc.c +++ linux-5.19.0/drivers/soc/amlogic/meson-secure-pwrc.c @@ -152,8 +152,10 @@ } pwrc = devm_kzalloc(&pdev->dev, sizeof(*pwrc), GFP_KERNEL); - if (!pwrc) + if (!pwrc) { + of_node_put(sm_np); return -ENOMEM; + } pwrc->fw = meson_sm_get(sm_np); of_node_put(sm_np); --- linux-5.19.0.orig/drivers/soc/apple/rtkit.c +++ linux-5.19.0/drivers/soc/apple/rtkit.c @@ -920,8 +920,10 @@ } EXPORT_SYMBOL_GPL(apple_rtkit_wake); -static void apple_rtkit_free(struct apple_rtkit *rtk) +static void apple_rtkit_free(void *data) { + struct apple_rtkit *rtk = data; + mbox_free_channel(rtk->mbox_chan); destroy_workqueue(rtk->wq); @@ -944,8 +946,7 @@ if (IS_ERR(rtk)) return rtk; - ret = devm_add_action_or_reset(dev, (void (*)(void *))apple_rtkit_free, - rtk); + ret = devm_add_action_or_reset(dev, apple_rtkit_free, rtk); if (ret) return ERR_PTR(ret); --- linux-5.19.0.orig/drivers/soc/apple/sart.c +++ linux-5.19.0/drivers/soc/apple/sart.c @@ -164,6 +164,11 @@ return 0; } +static void apple_sart_put_device(void *dev) +{ + put_device(dev); +} + struct apple_sart *devm_apple_sart_get(struct device *dev) { struct device_node *sart_node; @@ -187,7 +192,7 @@ return ERR_PTR(-EPROBE_DEFER); } - ret = devm_add_action_or_reset(dev, (void (*)(void *))put_device, + ret = devm_add_action_or_reset(dev, apple_sart_put_device, &sart_pdev->dev); if (ret) return ERR_PTR(ret); --- linux-5.19.0.orig/drivers/soc/bcm/brcmstb/pm/pm-arm.c +++ linux-5.19.0/drivers/soc/bcm/brcmstb/pm/pm-arm.c @@ -684,13 +684,14 @@ const struct of_device_id *of_id = NULL; struct device_node *dn; void __iomem *base; - int ret, i; + int ret, i, s; /* AON ctrl registers */ base = brcmstb_ioremap_match(aon_ctrl_dt_ids, 0, NULL); if (IS_ERR(base)) { pr_err("error mapping AON_CTRL\n"); - return PTR_ERR(base); + ret = PTR_ERR(base); + goto aon_err; } ctrl.aon_ctrl_base = base; @@ -700,8 +701,10 @@ /* Assume standard offset */ ctrl.aon_sram = ctrl.aon_ctrl_base + AON_CTRL_SYSTEM_DATA_RAM_OFS; + s = 0; } else { ctrl.aon_sram = base; + s = 1; } writel_relaxed(0, ctrl.aon_sram + AON_REG_PANIC); @@ -711,7 +714,8 @@ (const void **)&ddr_phy_data); if (IS_ERR(base)) { pr_err("error mapping DDR PHY\n"); - return PTR_ERR(base); + ret = PTR_ERR(base); + goto ddr_phy_err; } ctrl.support_warm_boot = ddr_phy_data->supports_warm_boot; ctrl.pll_status_offset = ddr_phy_data->pll_status_offset; @@ -731,17 +735,20 @@ for_each_matching_node(dn, ddr_shimphy_dt_ids) { i = ctrl.num_memc; if (i >= MAX_NUM_MEMC) { + of_node_put(dn); pr_warn("too many MEMCs (max %d)\n", MAX_NUM_MEMC); break; } base = of_io_request_and_map(dn, 0, dn->full_name); if (IS_ERR(base)) { + of_node_put(dn); if (!ctrl.support_warm_boot) break; pr_err("error mapping DDR SHIMPHY %d\n", i); - return PTR_ERR(base); + ret = PTR_ERR(base); + goto ddr_shimphy_err; } ctrl.memcs[i].ddr_shimphy_base = base; ctrl.num_memc++; @@ -752,14 +759,18 @@ for_each_matching_node(dn, brcmstb_memc_of_match) { base = of_iomap(dn, 0); if (!base) { + of_node_put(dn); pr_err("error mapping DDR Sequencer %d\n", i); - return -ENOMEM; + ret = -ENOMEM; + goto brcmstb_memc_err; } of_id = of_match_node(brcmstb_memc_of_match, dn); if (!of_id) { iounmap(base); - return -EINVAL; + of_node_put(dn); + ret = -EINVAL; + goto brcmstb_memc_err; } ddr_seq_data = of_id->data; @@ -779,21 +790,24 @@ dn = of_find_matching_node(NULL, sram_dt_ids); if (!dn) { pr_err("SRAM not found\n"); - return -EINVAL; + ret = -EINVAL; + goto brcmstb_memc_err; } ret = brcmstb_init_sram(dn); of_node_put(dn); if (ret) { pr_err("error setting up SRAM for PM\n"); - return ret; + goto brcmstb_memc_err; } ctrl.pdev = pdev; ctrl.s3_params = kmalloc(sizeof(*ctrl.s3_params), GFP_KERNEL); - if (!ctrl.s3_params) - return -ENOMEM; + if (!ctrl.s3_params) { + ret = -ENOMEM; + goto s3_params_err; + } ctrl.s3_params_pa = dma_map_single(&pdev->dev, ctrl.s3_params, sizeof(*ctrl.s3_params), DMA_TO_DEVICE); @@ -813,7 +827,21 @@ out: kfree(ctrl.s3_params); - +s3_params_err: + iounmap(ctrl.boot_sram); +brcmstb_memc_err: + for (i--; i >= 0; i--) + iounmap(ctrl.memcs[i].ddr_ctrl); +ddr_shimphy_err: + for (i = 0; i < ctrl.num_memc; i++) + iounmap(ctrl.memcs[i].ddr_shimphy_base); + + iounmap(ctrl.memcs[0].ddr_phy_base); +ddr_phy_err: + iounmap(ctrl.aon_ctrl_base); + if (s) + iounmap(ctrl.aon_sram); +aon_err: pr_warn("PM: initialization failed with code %d\n", ret); return ret; --- linux-5.19.0.orig/drivers/soc/fsl/Kconfig +++ linux-5.19.0/drivers/soc/fsl/Kconfig @@ -24,6 +24,7 @@ tristate "QorIQ DPAA2 DPIO driver" depends on FSL_MC_BUS select SOC_BUS + select FSL_GUTS select DIMLIB help Driver for the DPAA2 DPIO object. A DPIO provides queue and --- linux-5.19.0.orig/drivers/soc/fsl/guts.c +++ linux-5.19.0/drivers/soc/fsl/guts.c @@ -140,7 +140,7 @@ struct device_node *root, *np = pdev->dev.of_node; struct device *dev = &pdev->dev; const struct fsl_soc_die_attr *soc_die; - const char *machine; + const char *machine = NULL; u32 svr; /* Initialize guts */ --- linux-5.19.0.orig/drivers/soc/imx/gpcv2.c +++ linux-5.19.0/drivers/soc/imx/gpcv2.c @@ -333,6 +333,8 @@ } } + reset_control_assert(domain->reset); + /* Enable reset clocks for all devices in the domain */ ret = clk_bulk_prepare_enable(domain->num_clks, domain->clks); if (ret) { @@ -340,7 +342,8 @@ goto out_regulator_disable; } - reset_control_assert(domain->reset); + /* delays for reset to propagate */ + udelay(5); if (domain->bits.pxx) { /* request the domain to power up */ --- linux-5.19.0.orig/drivers/soc/imx/imx8m-blk-ctrl.c +++ linux-5.19.0/drivers/soc/imx/imx8m-blk-ctrl.c @@ -242,7 +242,6 @@ ret = PTR_ERR(domain->power_dev); goto cleanup_pds; } - dev_set_name(domain->power_dev, "%s", data->name); domain->genpd.name = data->name; domain->genpd.power_on = imx8m_blk_ctrl_power_on; --- linux-5.19.0.orig/drivers/soc/imx/soc-imx8m.c +++ linux-5.19.0/drivers/soc/imx/soc-imx8m.c @@ -11,6 +11,7 @@ #include #include #include +#include #define REV_B1 0x21 @@ -56,6 +57,7 @@ void __iomem *ocotp_base; u32 magic; u32 rev; + struct clk *clk; np = of_find_compatible_node(NULL, NULL, "fsl,imx8mq-ocotp"); if (!np) @@ -63,6 +65,13 @@ ocotp_base = of_iomap(np, 0); WARN_ON(!ocotp_base); + clk = of_clk_get_by_name(np, NULL); + if (!clk) { + WARN_ON(!clk); + return 0; + } + + clk_prepare_enable(clk); /* * SOC revision on older imx8mq is not available in fuses so query @@ -79,6 +88,8 @@ soc_uid <<= 32; soc_uid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW); + clk_disable_unprepare(clk); + clk_put(clk); iounmap(ocotp_base); of_node_put(np); --- linux-5.19.0.orig/drivers/soc/mediatek/mtk-pm-domains.c +++ linux-5.19.0/drivers/soc/mediatek/mtk-pm-domains.c @@ -274,9 +274,9 @@ clk_bulk_disable_unprepare(pd->num_subsys_clks, pd->subsys_clks); /* subsys power off */ - regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT); regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_ISO_BIT); regmap_set_bits(scpsys->base, pd->data->ctl_offs, PWR_CLK_DIS_BIT); + regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_RST_B_BIT); regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_2ND_BIT); regmap_clear_bits(scpsys->base, pd->data->ctl_offs, PWR_ON_BIT); --- linux-5.19.0.orig/drivers/soc/qcom/Kconfig +++ linux-5.19.0/drivers/soc/qcom/Kconfig @@ -129,6 +129,7 @@ config QCOM_RPMPD tristate "Qualcomm RPM Power domain driver" + depends on PM depends on QCOM_SMD_RPM help QCOM RPM Power domain driver to support power-domains with --- linux-5.19.0.orig/drivers/soc/qcom/apr.c +++ linux-5.19.0/drivers/soc/qcom/apr.c @@ -457,11 +457,19 @@ adev->dev.driver = NULL; spin_lock(&apr->svcs_lock); - idr_alloc(&apr->svcs_idr, svc, svc_id, svc_id + 1, GFP_ATOMIC); + ret = idr_alloc(&apr->svcs_idr, svc, svc_id, svc_id + 1, GFP_ATOMIC); spin_unlock(&apr->svcs_lock); + if (ret < 0) { + dev_err(dev, "idr_alloc failed: %d\n", ret); + goto out; + } - of_property_read_string_index(np, "qcom,protection-domain", - 1, &adev->service_path); + ret = of_property_read_string_index(np, "qcom,protection-domain", + 1, &adev->service_path); + if (ret < 0) { + dev_err(dev, "Failed to read second value of qcom,protection-domain\n"); + goto out; + } dev_info(dev, "Adding APR/GPR dev: %s\n", dev_name(&adev->dev)); @@ -471,6 +479,7 @@ put_device(&adev->dev); } +out: return ret; } --- linux-5.19.0.orig/drivers/soc/qcom/llcc-qcom.c +++ linux-5.19.0/drivers/soc/qcom/llcc-qcom.c @@ -781,7 +781,7 @@ if (ret) goto err; - drv_data->ecc_irq = platform_get_irq(pdev, 0); + drv_data->ecc_irq = platform_get_irq_optional(pdev, 0); if (drv_data->ecc_irq >= 0) { llcc_edac = platform_device_register_data(&pdev->dev, "qcom_llcc_edac", -1, drv_data, --- linux-5.19.0.orig/drivers/soc/qcom/ocmem.c +++ linux-5.19.0/drivers/soc/qcom/ocmem.c @@ -194,14 +194,17 @@ devnode = of_parse_phandle(dev->of_node, "sram", 0); if (!devnode || !devnode->parent) { dev_err(dev, "Cannot look up sram phandle\n"); + of_node_put(devnode); return ERR_PTR(-ENODEV); } pdev = of_find_device_by_node(devnode->parent); if (!pdev) { dev_err(dev, "Cannot find device node %s\n", devnode->name); + of_node_put(devnode); return ERR_PTR(-EPROBE_DEFER); } + of_node_put(devnode); ocmem = platform_get_drvdata(pdev); if (!ocmem) { --- linux-5.19.0.orig/drivers/soc/qcom/qcom_aoss.c +++ linux-5.19.0/drivers/soc/qcom/qcom_aoss.c @@ -399,8 +399,10 @@ continue; ret = qmp_cooling_device_add(qmp, &qmp->cooling_devs[count++], child); - if (ret) + if (ret) { + of_node_put(child); goto unroll; + } } if (!count) --- linux-5.19.0.orig/drivers/soc/qcom/smem_state.c +++ linux-5.19.0/drivers/soc/qcom/smem_state.c @@ -136,6 +136,7 @@ struct qcom_smem_state *state = container_of(ref, struct qcom_smem_state, refcount); list_del(&state->list); + of_node_put(state->of_node); kfree(state); } @@ -205,7 +206,7 @@ kref_init(&state->refcount); - state->of_node = of_node; + state->of_node = of_node_get(of_node); state->ops = *ops; state->priv = priv; --- linux-5.19.0.orig/drivers/soc/qcom/smsm.c +++ linux-5.19.0/drivers/soc/qcom/smsm.c @@ -526,7 +526,7 @@ for (id = 0; id < smsm->num_hosts; id++) { ret = smsm_parse_ipc(smsm, id); if (ret < 0) - return ret; + goto out_put; } /* Acquire the main SMSM state vector */ @@ -534,13 +534,14 @@ smsm->num_entries * sizeof(u32)); if (ret < 0 && ret != -EEXIST) { dev_err(&pdev->dev, "unable to allocate shared state entry\n"); - return ret; + goto out_put; } states = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_SMSM_SHARED_STATE, NULL); if (IS_ERR(states)) { dev_err(&pdev->dev, "Unable to acquire shared state entry\n"); - return PTR_ERR(states); + ret = PTR_ERR(states); + goto out_put; } /* Acquire the list of interrupt mask vectors */ @@ -548,13 +549,14 @@ ret = qcom_smem_alloc(QCOM_SMEM_HOST_ANY, SMEM_SMSM_CPU_INTR_MASK, size); if (ret < 0 && ret != -EEXIST) { dev_err(&pdev->dev, "unable to allocate smsm interrupt mask\n"); - return ret; + goto out_put; } intr_mask = qcom_smem_get(QCOM_SMEM_HOST_ANY, SMEM_SMSM_CPU_INTR_MASK, NULL); if (IS_ERR(intr_mask)) { dev_err(&pdev->dev, "unable to acquire shared memory interrupt mask\n"); - return PTR_ERR(intr_mask); + ret = PTR_ERR(intr_mask); + goto out_put; } /* Setup the reference to the local state bits */ @@ -565,7 +567,8 @@ smsm->state = qcom_smem_state_register(local_node, &smsm_state_ops, smsm); if (IS_ERR(smsm->state)) { dev_err(smsm->dev, "failed to register qcom_smem_state\n"); - return PTR_ERR(smsm->state); + ret = PTR_ERR(smsm->state); + goto out_put; } /* Register handlers for remote processor entries of interest. */ @@ -595,16 +598,19 @@ } platform_set_drvdata(pdev, smsm); + of_node_put(local_node); return 0; unwind_interfaces: + of_node_put(node); for (id = 0; id < smsm->num_entries; id++) if (smsm->entries[id].domain) irq_domain_remove(smsm->entries[id].domain); qcom_smem_state_unregister(smsm->state); - +out_put: + of_node_put(local_node); return ret; } --- linux-5.19.0.orig/drivers/soc/qcom/socinfo.c +++ linux-5.19.0/drivers/soc/qcom/socinfo.c @@ -328,7 +328,8 @@ { 455, "QRB5165" }, { 457, "SM8450" }, { 459, "SM7225" }, - { 460, "SA8540P" }, + { 460, "SA8295P" }, + { 461, "SA8540P" }, { 480, "SM8450" }, { 482, "SM8450" }, { 487, "SC7280" }, --- linux-5.19.0.orig/drivers/soc/renesas/r8a779a0-sysc.c +++ linux-5.19.0/drivers/soc/renesas/r8a779a0-sysc.c @@ -57,11 +57,11 @@ { "a2cv6", R8A779A0_PD_A2CV6, R8A779A0_PD_A3IR }, { "a2cn2", R8A779A0_PD_A2CN2, R8A779A0_PD_A3IR }, { "a2imp23", R8A779A0_PD_A2IMP23, R8A779A0_PD_A3IR }, - { "a2dp1", R8A779A0_PD_A2DP0, R8A779A0_PD_A3IR }, - { "a2cv2", R8A779A0_PD_A2CV0, R8A779A0_PD_A3IR }, - { "a2cv3", R8A779A0_PD_A2CV1, R8A779A0_PD_A3IR }, - { "a2cv5", R8A779A0_PD_A2CV4, R8A779A0_PD_A3IR }, - { "a2cv7", R8A779A0_PD_A2CV6, R8A779A0_PD_A3IR }, + { "a2dp1", R8A779A0_PD_A2DP1, R8A779A0_PD_A3IR }, + { "a2cv2", R8A779A0_PD_A2CV2, R8A779A0_PD_A3IR }, + { "a2cv3", R8A779A0_PD_A2CV3, R8A779A0_PD_A3IR }, + { "a2cv5", R8A779A0_PD_A2CV5, R8A779A0_PD_A3IR }, + { "a2cv7", R8A779A0_PD_A2CV7, R8A779A0_PD_A3IR }, { "a2cn1", R8A779A0_PD_A2CN1, R8A779A0_PD_A3IR }, { "a1cnn0", R8A779A0_PD_A1CNN0, R8A779A0_PD_A2CN0 }, { "a1cnn2", R8A779A0_PD_A1CNN2, R8A779A0_PD_A2CN2 }, --- linux-5.19.0.orig/drivers/soc/sunxi/sunxi_sram.c +++ linux-5.19.0/drivers/soc/sunxi/sunxi_sram.c @@ -78,8 +78,8 @@ static struct sunxi_sram_desc sun50i_a64_sram_c = { .data = SUNXI_SRAM_DATA("C", 0x4, 24, 1, - SUNXI_SRAM_MAP(0, 1, "cpu"), - SUNXI_SRAM_MAP(1, 0, "de2")), + SUNXI_SRAM_MAP(1, 0, "cpu"), + SUNXI_SRAM_MAP(0, 1, "de2")), }; static const struct of_device_id sunxi_sram_dt_ids[] = { @@ -254,6 +254,7 @@ writel(val | ((device << sram_data->offset) & mask), base + sram_data->reg); + sram_desc->claimed = true; spin_unlock(&sram_lock); return 0; @@ -329,11 +330,11 @@ .writeable_reg = sunxi_sram_regmap_accessible_reg, }; -static int sunxi_sram_probe(struct platform_device *pdev) +static int __init sunxi_sram_probe(struct platform_device *pdev) { - struct dentry *d; struct regmap *emac_clock; const struct sunxi_sramc_variant *variant; + struct device *dev = &pdev->dev; sram_dev = &pdev->dev; @@ -345,13 +346,6 @@ if (IS_ERR(base)) return PTR_ERR(base); - of_platform_populate(pdev->dev.of_node, NULL, NULL, &pdev->dev); - - d = debugfs_create_file("sram", S_IRUGO, NULL, NULL, - &sunxi_sram_fops); - if (!d) - return -ENOMEM; - if (variant->num_emac_clocks > 0) { emac_clock = devm_regmap_init_mmio(&pdev->dev, base, &sunxi_sram_emac_clock_regmap); @@ -360,6 +354,10 @@ return PTR_ERR(emac_clock); } + of_platform_populate(dev->of_node, NULL, NULL, dev); + + debugfs_create_file("sram", 0444, NULL, NULL, &sunxi_sram_fops); + return 0; } @@ -409,9 +407,8 @@ .name = "sunxi-sram", .of_match_table = sunxi_sram_dt_match, }, - .probe = sunxi_sram_probe, }; -module_platform_driver(sunxi_sram_driver); +builtin_platform_driver_probe(sunxi_sram_driver, sunxi_sram_probe); MODULE_AUTHOR("Maxime Ripard "); MODULE_DESCRIPTION("Allwinner sunXi SRAM Controller Driver"); --- linux-5.19.0.orig/drivers/soc/tegra/Kconfig +++ linux-5.19.0/drivers/soc/tegra/Kconfig @@ -136,7 +136,6 @@ def_bool y depends on ARCH_TEGRA select SOC_BUS - select TEGRA20_APB_DMA if ARCH_TEGRA_2x_SOC config SOC_TEGRA_FLOWCTRL bool --- linux-5.19.0.orig/drivers/soc/tegra/fuse/fuse-tegra.c +++ linux-5.19.0/drivers/soc/tegra/fuse/fuse-tegra.c @@ -568,6 +568,7 @@ np = of_find_matching_node(NULL, car_match); if (np) { void __iomem *base = of_iomap(np, 0); + of_node_put(np); if (base) { tegra_enable_fuse_clk(base); iounmap(base); --- linux-5.19.0.orig/drivers/soc/ti/knav_qmss_queue.c +++ linux-5.19.0/drivers/soc/ti/knav_qmss_queue.c @@ -67,7 +67,7 @@ * Newest followed by older ones. Search is done from start of the array * until a firmware file is found. */ -const char *knav_acc_firmwares[] = {"ks2_qmss_pdsp_acc48.bin"}; +static const char * const knav_acc_firmwares[] = {"ks2_qmss_pdsp_acc48.bin"}; static bool device_ready; bool knav_qmss_device_ready(void) @@ -1785,6 +1785,7 @@ pm_runtime_enable(&pdev->dev); ret = pm_runtime_resume_and_get(&pdev->dev); if (ret < 0) { + pm_runtime_disable(&pdev->dev); dev_err(dev, "Failed to enable QMSS\n"); return ret; } --- linux-5.19.0.orig/drivers/soc/ti/smartreflex.c +++ linux-5.19.0/drivers/soc/ti/smartreflex.c @@ -932,6 +932,7 @@ err_debugfs: debugfs_remove_recursive(sr_info->dbg_dir); err_list_del: + pm_runtime_disable(&pdev->dev); list_del(&sr_info->node); clk_unprepare(sr_info->fck); --- linux-5.19.0.orig/drivers/soundwire/bus.c +++ linux-5.19.0/drivers/soundwire/bus.c @@ -7,6 +7,7 @@ #include #include #include +#include #include "bus.h" #include "sysfs_local.h" @@ -842,15 +843,21 @@ enum sdw_clk_stop_mode mode, enum sdw_clk_stop_type type) { - int ret; + int ret = 0; - if (slave->ops && slave->ops->clk_stop) { - ret = slave->ops->clk_stop(slave, mode, type); - if (ret < 0) - return ret; + mutex_lock(&slave->sdw_dev_lock); + + if (slave->probed) { + struct device *dev = &slave->dev; + struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); + + if (drv->ops && drv->ops->clk_stop) + ret = drv->ops->clk_stop(slave, mode, type); } - return 0; + mutex_unlock(&slave->sdw_dev_lock); + + return ret; } static int sdw_slave_clk_stop_prepare(struct sdw_slave *slave, @@ -1611,14 +1618,24 @@ } /* Update the Slave driver */ - if (slave_notify && slave->ops && - slave->ops->interrupt_callback) { - slave_intr.sdca_cascade = sdca_cascade; - slave_intr.control_port = clear; - memcpy(slave_intr.port, &port_status, - sizeof(slave_intr.port)); + if (slave_notify) { + mutex_lock(&slave->sdw_dev_lock); - slave->ops->interrupt_callback(slave, &slave_intr); + if (slave->probed) { + struct device *dev = &slave->dev; + struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); + + if (drv->ops && drv->ops->interrupt_callback) { + slave_intr.sdca_cascade = sdca_cascade; + slave_intr.control_port = clear; + memcpy(slave_intr.port, &port_status, + sizeof(slave_intr.port)); + + drv->ops->interrupt_callback(slave, &slave_intr); + } + } + + mutex_unlock(&slave->sdw_dev_lock); } /* Ack interrupt */ @@ -1692,29 +1709,21 @@ static int sdw_update_slave_status(struct sdw_slave *slave, enum sdw_slave_status status) { - unsigned long time; + int ret = 0; - if (!slave->probed) { - /* - * the slave status update is typically handled in an - * interrupt thread, which can race with the driver - * probe, e.g. when a module needs to be loaded. - * - * make sure the probe is complete before updating - * status. - */ - time = wait_for_completion_timeout(&slave->probe_complete, - msecs_to_jiffies(DEFAULT_PROBE_TIMEOUT)); - if (!time) { - dev_err(&slave->dev, "Probe not complete, timed out\n"); - return -ETIMEDOUT; - } + mutex_lock(&slave->sdw_dev_lock); + + if (slave->probed) { + struct device *dev = &slave->dev; + struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); + + if (drv->ops && drv->ops->update_status) + ret = drv->ops->update_status(slave, status); } - if (!slave->ops || !slave->ops->update_status) - return 0; + mutex_unlock(&slave->sdw_dev_lock); - return slave->ops->update_status(slave, status); + return ret; } /** --- linux-5.19.0.orig/drivers/soundwire/bus_type.c +++ linux-5.19.0/drivers/soundwire/bus_type.c @@ -98,8 +98,6 @@ if (!id) return -ENODEV; - slave->ops = drv->ops; - /* * attach to power domain but don't turn on (last arg) */ @@ -107,19 +105,23 @@ if (ret) return ret; + mutex_lock(&slave->sdw_dev_lock); + ret = drv->probe(slave, id); if (ret) { name = drv->name; if (!name) name = drv->driver.name; + mutex_unlock(&slave->sdw_dev_lock); + dev_err(dev, "Probe of %s failed: %d\n", name, ret); dev_pm_domain_detach(dev, false); return ret; } /* device is probed so let's read the properties now */ - if (slave->ops && slave->ops->read_prop) - slave->ops->read_prop(slave); + if (drv->ops && drv->ops->read_prop) + drv->ops->read_prop(slave); /* init the sysfs as we have properties now */ ret = sdw_slave_sysfs_init(slave); @@ -139,7 +141,19 @@ slave->prop.clk_stop_timeout); slave->probed = true; - complete(&slave->probe_complete); + + /* + * if the probe happened after the bus was started, notify the codec driver + * of the current hardware status to e.g. start the initialization. + * Errors are only logged as warnings to avoid failing the probe. + */ + if (drv->ops && drv->ops->update_status) { + ret = drv->ops->update_status(slave, slave->status); + if (ret < 0) + dev_warn(dev, "%s: update_status failed with status %d\n", __func__, ret); + } + + mutex_unlock(&slave->sdw_dev_lock); dev_dbg(dev, "probe complete\n"); @@ -152,9 +166,15 @@ struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); int ret = 0; + mutex_lock(&slave->sdw_dev_lock); + + slave->probed = false; + if (drv->remove) ret = drv->remove(slave); + mutex_unlock(&slave->sdw_dev_lock); + dev_pm_domain_detach(dev, false); return ret; @@ -193,12 +213,8 @@ drv->driver.owner = owner; drv->driver.probe = sdw_drv_probe; - - if (drv->remove) - drv->driver.remove = sdw_drv_remove; - - if (drv->shutdown) - drv->driver.shutdown = sdw_drv_shutdown; + drv->driver.remove = sdw_drv_remove; + drv->driver.shutdown = sdw_drv_shutdown; return driver_register(&drv->driver); } --- linux-5.19.0.orig/drivers/soundwire/cadence_master.c +++ linux-5.19.0/drivers/soundwire/cadence_master.c @@ -544,9 +544,12 @@ return SDW_CMD_IGNORED; } - /* fill response */ - for (i = 0; i < count; i++) - msg->buf[i + offset] = FIELD_GET(CDNS_MCP_RESP_RDATA, cdns->response_buf[i]); + if (msg->flags == SDW_MSG_FLAG_READ) { + /* fill response */ + for (i = 0; i < count; i++) + msg->buf[i + offset] = FIELD_GET(CDNS_MCP_RESP_RDATA, + cdns->response_buf[i]); + } return SDW_CMD_OK; } --- linux-5.19.0.orig/drivers/soundwire/dmi-quirks.c +++ linux-5.19.0/drivers/soundwire/dmi-quirks.c @@ -55,7 +55,26 @@ {} }; +/* + * The HP Omen 16-k0005TX does not expose the correct version of RT711 on link0 + * and does not expose a RT1316 on link3 + */ +static const struct adr_remap hp_omen_16[] = { + /* rt711-sdca on link0 */ + { + 0x000020025d071100ull, + 0x000030025d071101ull + }, + /* rt1316-sdca on link3 */ + { + 0x000120025d071100ull, + 0x000330025d131601ull + }, + {} +}; + static const struct dmi_system_id adr_remap_quirk_table[] = { + /* TGL devices */ { .matches = { DMI_MATCH(DMI_SYS_VENDOR, "HP"), @@ -78,6 +97,14 @@ }, .driver_data = (void *)dell_sku_0A3E, }, + /* ADL devices */ + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "HP"), + DMI_MATCH(DMI_PRODUCT_NAME, "OMEN by HP Gaming Laptop 16-k0xxx"), + }, + .driver_data = (void *)hp_omen_16, + }, {} }; --- linux-5.19.0.orig/drivers/soundwire/intel.c +++ linux-5.19.0/drivers/soundwire/intel.c @@ -1279,6 +1279,7 @@ cdns->msg_count = 0; bus->link_id = auxdev->id; + bus->clk_stop_timeout = 1; sdw_cdns_probe(cdns); @@ -1401,7 +1402,6 @@ ret = intel_register_dai(sdw); if (ret) { dev_err(dev, "DAI registration failed: %d\n", ret); - snd_soc_unregister_component(dev); goto err_interrupt; } --- linux-5.19.0.orig/drivers/soundwire/qcom.c +++ linux-5.19.0/drivers/soundwire/qcom.c @@ -167,7 +167,7 @@ u8 wcmd_id; struct qcom_swrm_port_config pconfig[QCOM_SDW_MAX_PORTS]; struct sdw_stream_runtime *sruntime[SWRM_MAX_DAIS]; - enum sdw_slave_status status[SDW_MAX_DEVICES]; + enum sdw_slave_status status[SDW_MAX_DEVICES + 1]; int (*reg_read)(struct qcom_swrm_ctrl *ctrl, int reg, u32 *val); int (*reg_write)(struct qcom_swrm_ctrl *ctrl, int reg, int val); u32 slave_status; @@ -335,6 +335,9 @@ if (swrm_wait_for_wr_fifo_avail(swrm)) return SDW_CMD_FAIL_OTHER; + if (cmd_id == SWR_BROADCAST_CMD_ID) + reinit_completion(&swrm->broadcast); + /* Its assumed that write is okay as we do not get any status back */ swrm->reg_write(swrm, SWRM_CMD_FIFO_WR_CMD, val); @@ -368,6 +371,12 @@ val = swrm_get_packed_reg_val(&swrm->rcmd_id, len, dev_addr, reg_addr); + /* + * Check for outstanding cmd wrt. write fifo depth to avoid + * overflow as read will also increase write fifo cnt. + */ + swrm_wait_for_wr_fifo_avail(swrm); + /* wait for FIFO RD to complete to avoid overflow */ usleep_range(100, 105); swrm->reg_write(swrm, SWRM_CMD_FIFO_RD_CMD, val); @@ -411,7 +420,7 @@ ctrl->reg_read(ctrl, SWRM_MCP_SLV_STATUS, &val); - for (dev_num = 0; dev_num < SDW_MAX_DEVICES; dev_num++) { + for (dev_num = 0; dev_num <= SDW_MAX_DEVICES; dev_num++) { status = (val >> (dev_num * SWRM_MCP_SLV_STATUS_SZ)); if ((status & SWRM_MCP_SLV_STATUS_MASK) == SDW_SLAVE_ALERT) { @@ -431,7 +440,7 @@ ctrl->reg_read(ctrl, SWRM_MCP_SLV_STATUS, &val); ctrl->slave_status = val; - for (i = 0; i < SDW_MAX_DEVICES; i++) { + for (i = 0; i <= SDW_MAX_DEVICES; i++) { u32 s; s = (val >> (i * 2)); @@ -471,6 +480,10 @@ char *buf1 = (char *)&val1, *buf2 = (char *)&val2; for (i = 1; i <= SDW_MAX_DEVICES; i++) { + /* do not continue if the status is Not Present */ + if (!ctrl->status[i]) + continue; + /*SCP_Devid5 - Devid 4*/ ctrl->reg_read(ctrl, SWRM_ENUMERATOR_SLAVE_DEV_ID_1(i), &val1); --- linux-5.19.0.orig/drivers/soundwire/slave.c +++ linux-5.19.0/drivers/soundwire/slave.c @@ -12,6 +12,7 @@ { struct sdw_slave *slave = dev_to_sdw_dev(dev); + mutex_destroy(&slave->sdw_dev_lock); kfree(slave); } @@ -58,9 +59,9 @@ init_completion(&slave->enumeration_complete); init_completion(&slave->initialization_complete); slave->dev_num = 0; - init_completion(&slave->probe_complete); slave->probed = false; slave->first_interrupt_done = false; + mutex_init(&slave->sdw_dev_lock); for (i = 0; i < SDW_MAX_PORTS; i++) init_completion(&slave->port_ready[i]); --- linux-5.19.0.orig/drivers/soundwire/stream.c +++ linux-5.19.0/drivers/soundwire/stream.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "bus.h" @@ -401,20 +402,26 @@ struct sdw_prepare_ch prep_ch, enum sdw_port_prep_ops cmd) { - const struct sdw_slave_ops *ops = s_rt->slave->ops; - int ret; + int ret = 0; + struct sdw_slave *slave = s_rt->slave; - if (ops->port_prep) { - ret = ops->port_prep(s_rt->slave, &prep_ch, cmd); - if (ret < 0) { - dev_err(&s_rt->slave->dev, - "Slave Port Prep cmd %d failed: %d\n", - cmd, ret); - return ret; + mutex_lock(&slave->sdw_dev_lock); + + if (slave->probed) { + struct device *dev = &slave->dev; + struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); + + if (drv->ops && drv->ops->port_prep) { + ret = drv->ops->port_prep(slave, &prep_ch, cmd); + if (ret < 0) + dev_err(dev, "Slave Port Prep cmd %d failed: %d\n", + cmd, ret); } } - return 0; + mutex_unlock(&slave->sdw_dev_lock); + + return ret; } static int sdw_prep_deprep_slave_ports(struct sdw_bus *bus, @@ -578,7 +585,7 @@ struct sdw_slave_runtime *s_rt; struct sdw_bus *bus = m_rt->bus; struct sdw_slave *slave; - int ret = 0; + int ret; if (bus->ops->set_bus_conf) { ret = bus->ops->set_bus_conf(bus, &bus->params); @@ -589,17 +596,27 @@ list_for_each_entry(s_rt, &m_rt->slave_rt_list, m_rt_node) { slave = s_rt->slave; - if (slave->ops->bus_config) { - ret = slave->ops->bus_config(slave, &bus->params); - if (ret < 0) { - dev_err(bus->dev, "Notify Slave: %d failed\n", - slave->dev_num); - return ret; + mutex_lock(&slave->sdw_dev_lock); + + if (slave->probed) { + struct device *dev = &slave->dev; + struct sdw_driver *drv = drv_to_sdw_driver(dev->driver); + + if (drv->ops && drv->ops->bus_config) { + ret = drv->ops->bus_config(slave, &bus->params); + if (ret < 0) { + dev_err(dev, "Notify Slave: %d failed\n", + slave->dev_num); + mutex_unlock(&slave->sdw_dev_lock); + return ret; + } } } + + mutex_unlock(&slave->sdw_dev_lock); } - return ret; + return 0; } /** --- linux-5.19.0.orig/drivers/spi/spi-altera-dfl.c +++ linux-5.19.0/drivers/spi/spi-altera-dfl.c @@ -128,9 +128,9 @@ struct spi_master *master; struct altera_spi *hw; void __iomem *base; - int err = -ENODEV; + int err; - master = spi_alloc_master(dev, sizeof(struct altera_spi)); + master = devm_spi_alloc_master(dev, sizeof(struct altera_spi)); if (!master) return -ENOMEM; @@ -159,10 +159,9 @@ altera_spi_init_master(master); err = devm_spi_register_master(dev, master); - if (err) { - dev_err(dev, "%s failed to register spi master %d\n", __func__, err); - goto exit; - } + if (err) + return dev_err_probe(dev, err, "%s failed to register spi master\n", + __func__); if (dfl_dev->revision == FME_FEATURE_REV_MAX10_SPI_N5010) strscpy(board_info.modalias, "m10-n5010", SPI_NAME_SIZE); @@ -179,9 +178,6 @@ } return 0; -exit: - spi_master_put(master); - return err; } static const struct dfl_device_id dfl_spi_altera_ids[] = { --- linux-5.19.0.orig/drivers/spi/spi-aspeed-smc.c +++ linux-5.19.0/drivers/spi/spi-aspeed-smc.c @@ -398,7 +398,7 @@ windows[cs].cs = cs; windows[cs].size = data->segment_end(aspi, reg_val) - data->segment_start(aspi, reg_val); - windows[cs].offset = cs ? windows[cs - 1].offset + windows[cs - 1].size : 0; + windows[cs].offset = data->segment_start(aspi, reg_val) - aspi->ahb_base_phy; dev_vdbg(aspi->dev, "CE%d offset=0x%.8x size=0x%x\n", cs, windows[cs].offset, windows[cs].size); } --- linux-5.19.0.orig/drivers/spi/spi-bitbang-txrx.h +++ linux-5.19.0/drivers/spi/spi-bitbang-txrx.h @@ -116,6 +116,7 @@ { /* if (cpol == 0) this is SPI_MODE_0; else this is SPI_MODE_2 */ + u8 rxbit = bits - 1; u32 oldbit = !(word & 1); /* clock starts at inactive polarity */ for (; likely(bits); bits--) { @@ -135,7 +136,7 @@ /* sample LSB (from slave) on leading edge */ word >>= 1; if ((flags & SPI_MASTER_NO_RX) == 0) - word |= getmiso(spi) << (bits - 1); + word |= getmiso(spi) << rxbit; setsck(spi, cpol); } return word; @@ -148,6 +149,7 @@ { /* if (cpol == 0) this is SPI_MODE_1; else this is SPI_MODE_3 */ + u8 rxbit = bits - 1; u32 oldbit = !(word & 1); /* clock starts at inactive polarity */ for (; likely(bits); bits--) { @@ -168,7 +170,7 @@ /* sample LSB (from slave) on trailing edge */ word >>= 1; if ((flags & SPI_MASTER_NO_RX) == 0) - word |= getmiso(spi) << (bits - 1); + word |= getmiso(spi) << rxbit; } return word; } --- linux-5.19.0.orig/drivers/spi/spi-cadence-quadspi.c +++ linux-5.19.0/drivers/spi/spi-cadence-quadspi.c @@ -1619,7 +1619,7 @@ pm_runtime_enable(dev); ret = pm_runtime_resume_and_get(dev); if (ret < 0) - return ret; + goto probe_pm_failed; ret = clk_prepare_enable(cqspi->clk); if (ret) { @@ -1712,6 +1712,7 @@ clk_disable_unprepare(cqspi->clk); probe_clk_failed: pm_runtime_put_sync(dev); +probe_pm_failed: pm_runtime_disable(dev); return ret; } --- linux-5.19.0.orig/drivers/spi/spi-dw-bt1.c +++ linux-5.19.0/drivers/spi/spi-dw-bt1.c @@ -293,8 +293,10 @@ pm_runtime_enable(&pdev->dev); ret = dw_spi_add_host(&pdev->dev, dws); - if (ret) + if (ret) { + pm_runtime_disable(&pdev->dev); goto err_disable_clk; + } platform_set_drvdata(pdev, dwsbt1); --- linux-5.19.0.orig/drivers/spi/spi-dw-dma.c +++ linux-5.19.0/drivers/spi/spi-dw-dma.c @@ -128,12 +128,15 @@ dw_spi_dma_sg_burst_init(dws); + pci_dev_put(dma_dev); + return 0; free_rxchan: dma_release_channel(dws->rxchan); dws->rxchan = NULL; err_exit: + pci_dev_put(dma_dev); return -EBUSY; } --- linux-5.19.0.orig/drivers/spi/spi-dw.h +++ linux-5.19.0/drivers/spi/spi-dw.h @@ -23,7 +23,7 @@ ((_dws)->ip == DW_ ## _ip ## _ID) #define __dw_spi_ver_cmp(_dws, _ip, _ver, _op) \ - (dw_spi_ip_is(_dws, _ip) && (_dws)->ver _op DW_ ## _ip ## _ver) + (dw_spi_ip_is(_dws, _ip) && (_dws)->ver _op DW_ ## _ip ## _ ## _ver) #define dw_spi_ver_is(_dws, _ip, _ver) __dw_spi_ver_cmp(_dws, _ip, _ver, ==) --- linux-5.19.0.orig/drivers/spi/spi-gpio.c +++ linux-5.19.0/drivers/spi/spi-gpio.c @@ -268,9 +268,19 @@ if (output) return gpiod_direction_output(spi_gpio->mosi, 1); - ret = gpiod_direction_input(spi_gpio->mosi); - if (ret) - return ret; + /* + * Only change MOSI to an input if using 3WIRE mode. + * Otherwise, MOSI could be left floating if there is + * no pull resistor connected to the I/O pin, or could + * be left logic high if there is a pull-up. Transmitting + * logic high when only clocking MISO data in can put some + * SPI devices in to a bad state. + */ + if (spi->mode & SPI_3WIRE) { + ret = gpiod_direction_input(spi_gpio->mosi); + if (ret) + return ret; + } /* * Send a turnaround high impedance cycle when switching * from output to input. Theoretically there should be --- linux-5.19.0.orig/drivers/spi/spi-imx.c +++ linux-5.19.0/drivers/spi/spi-imx.c @@ -444,8 +444,7 @@ unsigned int pre, post; unsigned int fin = spi_imx->spi_clk; - if (unlikely(fspi > fin)) - return 0; + fspi = min(fspi, fin); post = fls(fin) - fls(fspi); if (fin > fspi << post) @@ -1608,6 +1607,13 @@ return spi_imx_pio_transfer_slave(spi, transfer); /* + * If we decided in spi_imx_can_dma() that we want to do a DMA + * transfer, the SPI transfer has already been mapped, so we + * have to do the DMA transfer here. + */ + if (spi_imx->usedma) + return spi_imx_dma_transfer(spi_imx, transfer); + /* * Calculate the estimated time in us the transfer runs. Find * the number of Hz per byte per polling limit. */ @@ -1618,9 +1624,6 @@ if (transfer->len < byte_limit) return spi_imx_poll_transfer(spi, transfer); - if (spi_imx->usedma) - return spi_imx_dma_transfer(spi_imx, transfer); - return spi_imx_pio_transfer(spi, transfer); } --- linux-5.19.0.orig/drivers/spi/spi-intel.c +++ linux-5.19.0/drivers/spi/spi-intel.c @@ -52,17 +52,17 @@ #define FRACC 0x50 #define FREG(n) (0x54 + ((n) * 4)) -#define FREG_BASE_MASK 0x3fff +#define FREG_BASE_MASK GENMASK(14, 0) #define FREG_LIMIT_SHIFT 16 -#define FREG_LIMIT_MASK (0x03fff << FREG_LIMIT_SHIFT) +#define FREG_LIMIT_MASK GENMASK(30, 16) /* Offset is from @ispi->pregs */ #define PR(n) ((n) * 4) #define PR_WPE BIT(31) #define PR_LIMIT_SHIFT 16 -#define PR_LIMIT_MASK (0x3fff << PR_LIMIT_SHIFT) +#define PR_LIMIT_MASK GENMASK(30, 16) #define PR_RPE BIT(15) -#define PR_BASE_MASK 0x3fff +#define PR_BASE_MASK GENMASK(14, 0) /* Offsets are from @ispi->sregs */ #define SSFSTS_CTL 0x00 @@ -114,7 +114,7 @@ #define ERASE_OPCODE_SHIFT 8 #define ERASE_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) #define ERASE_64K_OPCODE_SHIFT 16 -#define ERASE_64K_OPCODE_MASK (0xff << ERASE_OPCODE_SHIFT) +#define ERASE_64K_OPCODE_MASK (0xff << ERASE_64K_OPCODE_SHIFT) #define INTEL_SPI_TIMEOUT 5000 /* ms */ #define INTEL_SPI_FIFO_SZ 64 --- linux-5.19.0.orig/drivers/spi/spi-meson-spicc.c +++ linux-5.19.0/drivers/spi/spi-meson-spicc.c @@ -156,6 +156,7 @@ void __iomem *base; struct clk *core; struct clk *pclk; + struct clk_divider pow2_div; struct clk *clk; struct spi_message *message; struct spi_transfer *xfer; @@ -168,6 +169,8 @@ unsigned long xfer_remain; }; +#define pow2_clk_to_spicc(_div) container_of(_div, struct meson_spicc_device, pow2_div) + static void meson_spicc_oen_enable(struct meson_spicc_device *spicc) { u32 conf; @@ -421,7 +424,7 @@ { struct meson_spicc_device *spicc = spi_master_get_devdata(master); struct spi_device *spi = message->spi; - u32 conf = 0; + u32 conf = readl_relaxed(spicc->base + SPICC_CONREG) & SPICC_DATARATE_MASK; /* Store current message */ spicc->message = message; @@ -458,8 +461,6 @@ /* Select CS */ conf |= FIELD_PREP(SPICC_CS_MASK, spi->chip_select); - /* Default Clock rate core/4 */ - /* Default 8bit word */ conf |= FIELD_PREP(SPICC_BITLENGTH_MASK, 8 - 1); @@ -476,12 +477,16 @@ static int meson_spicc_unprepare_transfer(struct spi_master *master) { struct meson_spicc_device *spicc = spi_master_get_devdata(master); + u32 conf = readl_relaxed(spicc->base + SPICC_CONREG) & SPICC_DATARATE_MASK; /* Disable all IRQs */ writel(0, spicc->base + SPICC_INTREG); device_reset_optional(&spicc->pdev->dev); + /* Set default configuration, keeping datarate field */ + writel_relaxed(conf, spicc->base + SPICC_CONREG); + return 0; } @@ -518,14 +523,60 @@ * Clk path for G12A series: * pclk -> pow2 fixed div -> pow2 div -> mux -> out * pclk -> enh fixed div -> enh div -> mux -> out + * + * The pow2 divider is tied to the controller HW state, and the + * divider is only valid when the controller is initialized. + * + * A set of clock ops is added to make sure we don't read/set this + * clock rate while the controller is in an unknown state. */ -static int meson_spicc_clk_init(struct meson_spicc_device *spicc) +static unsigned long meson_spicc_pow2_recalc_rate(struct clk_hw *hw, + unsigned long parent_rate) +{ + struct clk_divider *divider = to_clk_divider(hw); + struct meson_spicc_device *spicc = pow2_clk_to_spicc(divider); + + if (!spicc->master->cur_msg) + return 0; + + return clk_divider_ops.recalc_rate(hw, parent_rate); +} + +static int meson_spicc_pow2_determine_rate(struct clk_hw *hw, + struct clk_rate_request *req) +{ + struct clk_divider *divider = to_clk_divider(hw); + struct meson_spicc_device *spicc = pow2_clk_to_spicc(divider); + + if (!spicc->master->cur_msg) + return -EINVAL; + + return clk_divider_ops.determine_rate(hw, req); +} + +static int meson_spicc_pow2_set_rate(struct clk_hw *hw, unsigned long rate, + unsigned long parent_rate) +{ + struct clk_divider *divider = to_clk_divider(hw); + struct meson_spicc_device *spicc = pow2_clk_to_spicc(divider); + + if (!spicc->master->cur_msg) + return -EINVAL; + + return clk_divider_ops.set_rate(hw, rate, parent_rate); +} + +const struct clk_ops meson_spicc_pow2_clk_ops = { + .recalc_rate = meson_spicc_pow2_recalc_rate, + .determine_rate = meson_spicc_pow2_determine_rate, + .set_rate = meson_spicc_pow2_set_rate, +}; + +static int meson_spicc_pow2_clk_init(struct meson_spicc_device *spicc) { struct device *dev = &spicc->pdev->dev; - struct clk_fixed_factor *pow2_fixed_div, *enh_fixed_div; - struct clk_divider *pow2_div, *enh_div; - struct clk_mux *mux; + struct clk_fixed_factor *pow2_fixed_div; struct clk_init_data init; struct clk *clk; struct clk_parent_data parent_data[2]; @@ -560,31 +611,45 @@ if (WARN_ON(IS_ERR(clk))) return PTR_ERR(clk); - pow2_div = devm_kzalloc(dev, sizeof(*pow2_div), GFP_KERNEL); - if (!pow2_div) - return -ENOMEM; - snprintf(name, sizeof(name), "%s#pow2_div", dev_name(dev)); init.name = name; - init.ops = &clk_divider_ops; - init.flags = CLK_SET_RATE_PARENT; + init.ops = &meson_spicc_pow2_clk_ops; + /* + * Set NOCACHE here to make sure we read the actual HW value + * since we reset the HW after each transfer. + */ + init.flags = CLK_SET_RATE_PARENT | CLK_GET_RATE_NOCACHE; parent_data[0].hw = &pow2_fixed_div->hw; init.num_parents = 1; - pow2_div->shift = 16, - pow2_div->width = 3, - pow2_div->flags = CLK_DIVIDER_POWER_OF_TWO, - pow2_div->reg = spicc->base + SPICC_CONREG; - pow2_div->hw.init = &init; + spicc->pow2_div.shift = 16, + spicc->pow2_div.width = 3, + spicc->pow2_div.flags = CLK_DIVIDER_POWER_OF_TWO, + spicc->pow2_div.reg = spicc->base + SPICC_CONREG; + spicc->pow2_div.hw.init = &init; - clk = devm_clk_register(dev, &pow2_div->hw); - if (WARN_ON(IS_ERR(clk))) - return PTR_ERR(clk); + spicc->clk = devm_clk_register(dev, &spicc->pow2_div.hw); + if (WARN_ON(IS_ERR(spicc->clk))) + return PTR_ERR(spicc->clk); - if (!spicc->data->has_enhance_clk_div) { - spicc->clk = clk; - return 0; - } + return 0; +} + +static int meson_spicc_enh_clk_init(struct meson_spicc_device *spicc) +{ + struct device *dev = &spicc->pdev->dev; + struct clk_fixed_factor *enh_fixed_div; + struct clk_divider *enh_div; + struct clk_mux *mux; + struct clk_init_data init; + struct clk *clk; + struct clk_parent_data parent_data[2]; + char name[64]; + + memset(&init, 0, sizeof(init)); + memset(&parent_data, 0, sizeof(parent_data)); + + init.parent_data = parent_data; /* algorithm for enh div: rate = freq / 2 / (N + 1) */ @@ -637,7 +702,7 @@ snprintf(name, sizeof(name), "%s#sel", dev_name(dev)); init.name = name; init.ops = &clk_mux_ops; - parent_data[0].hw = &pow2_div->hw; + parent_data[0].hw = &spicc->pow2_div.hw; parent_data[1].hw = &enh_div->hw; init.num_parents = 2; init.flags = CLK_SET_RATE_PARENT; @@ -754,12 +819,20 @@ meson_spicc_oen_enable(spicc); - ret = meson_spicc_clk_init(spicc); + ret = meson_spicc_pow2_clk_init(spicc); if (ret) { - dev_err(&pdev->dev, "clock registration failed\n"); + dev_err(&pdev->dev, "pow2 clock registration failed\n"); goto out_clk; } + if (spicc->data->has_enhance_clk_div) { + ret = meson_spicc_enh_clk_init(spicc); + if (ret) { + dev_err(&pdev->dev, "clock registration failed\n"); + goto out_clk; + } + } + ret = devm_spi_register_master(&pdev->dev, master); if (ret) { dev_err(&pdev->dev, "spi master registration failed\n"); --- linux-5.19.0.orig/drivers/spi/spi-mt65xx.c +++ linux-5.19.0/drivers/spi/spi-mt65xx.c @@ -551,14 +551,17 @@ writel(cmd, mdata->base + SPI_CMD_REG); } -static int mtk_spi_get_mult_delta(u32 xfer_len) +static int mtk_spi_get_mult_delta(struct mtk_spi *mdata, u32 xfer_len) { - u32 mult_delta; + u32 mult_delta = 0; - if (xfer_len > MTK_SPI_PACKET_SIZE) - mult_delta = xfer_len % MTK_SPI_PACKET_SIZE; - else - mult_delta = 0; + if (mdata->dev_comp->ipm_design) { + if (xfer_len > MTK_SPI_IPM_PACKET_SIZE) + mult_delta = xfer_len % MTK_SPI_IPM_PACKET_SIZE; + } else { + if (xfer_len > MTK_SPI_PACKET_SIZE) + mult_delta = xfer_len % MTK_SPI_PACKET_SIZE; + } return mult_delta; } @@ -570,22 +573,22 @@ if (mdata->tx_sgl_len && mdata->rx_sgl_len) { if (mdata->tx_sgl_len > mdata->rx_sgl_len) { - mult_delta = mtk_spi_get_mult_delta(mdata->rx_sgl_len); + mult_delta = mtk_spi_get_mult_delta(mdata, mdata->rx_sgl_len); mdata->xfer_len = mdata->rx_sgl_len - mult_delta; mdata->rx_sgl_len = mult_delta; mdata->tx_sgl_len -= mdata->xfer_len; } else { - mult_delta = mtk_spi_get_mult_delta(mdata->tx_sgl_len); + mult_delta = mtk_spi_get_mult_delta(mdata, mdata->tx_sgl_len); mdata->xfer_len = mdata->tx_sgl_len - mult_delta; mdata->tx_sgl_len = mult_delta; mdata->rx_sgl_len -= mdata->xfer_len; } } else if (mdata->tx_sgl_len) { - mult_delta = mtk_spi_get_mult_delta(mdata->tx_sgl_len); + mult_delta = mtk_spi_get_mult_delta(mdata, mdata->tx_sgl_len); mdata->xfer_len = mdata->tx_sgl_len - mult_delta; mdata->tx_sgl_len = mult_delta; } else if (mdata->rx_sgl_len) { - mult_delta = mtk_spi_get_mult_delta(mdata->rx_sgl_len); + mult_delta = mtk_spi_get_mult_delta(mdata, mdata->rx_sgl_len); mdata->xfer_len = mdata->rx_sgl_len - mult_delta; mdata->rx_sgl_len = mult_delta; } @@ -1265,8 +1268,11 @@ { struct spi_master *master = platform_get_drvdata(pdev); struct mtk_spi *mdata = spi_master_get_devdata(master); + int ret; - pm_runtime_disable(&pdev->dev); + ret = pm_runtime_resume_and_get(&pdev->dev); + if (ret < 0) + return ret; mtk_spi_reset(mdata); @@ -1275,6 +1281,9 @@ clk_unprepare(mdata->spi_hclk); } + pm_runtime_put_noidle(&pdev->dev); + pm_runtime_disable(&pdev->dev); + return 0; } --- linux-5.19.0.orig/drivers/spi/spi-mt7621.c +++ linux-5.19.0/drivers/spi/spi-mt7621.c @@ -340,11 +340,9 @@ return PTR_ERR(base); clk = devm_clk_get(&pdev->dev, NULL); - if (IS_ERR(clk)) { - dev_err(&pdev->dev, "unable to get SYS clock, err=%d\n", - status); - return PTR_ERR(clk); - } + if (IS_ERR(clk)) + return dev_err_probe(&pdev->dev, PTR_ERR(clk), + "unable to get SYS clock\n"); status = clk_prepare_enable(clk); if (status) --- linux-5.19.0.orig/drivers/spi/spi-omap-100k.c +++ linux-5.19.0/drivers/spi/spi-omap-100k.c @@ -412,6 +412,7 @@ return status; err_fck: + pm_runtime_disable(&pdev->dev); clk_disable_unprepare(spi100k->fck); err_ick: clk_disable_unprepare(spi100k->ick); --- linux-5.19.0.orig/drivers/spi/spi-qup.c +++ linux-5.19.0/drivers/spi/spi-qup.c @@ -1057,6 +1057,8 @@ else master->num_chipselect = num_cs; + master->use_gpio_descriptors = true; + master->max_native_cs = SPI_NUM_CHIPSELECTS; master->bus_num = pdev->id; master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_LOOP; master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 32); @@ -1198,8 +1200,10 @@ return ret; ret = clk_prepare_enable(controller->cclk); - if (ret) + if (ret) { + clk_disable_unprepare(controller->iclk); return ret; + } /* Disable clocks auto gaiting */ config = readl_relaxed(controller->base + QUP_CONFIG); @@ -1245,14 +1249,25 @@ return ret; ret = clk_prepare_enable(controller->cclk); - if (ret) + if (ret) { + clk_disable_unprepare(controller->iclk); return ret; + } ret = spi_qup_set_state(controller, QUP_STATE_RESET); if (ret) - return ret; + goto disable_clk; - return spi_master_resume(master); + ret = spi_master_resume(master); + if (ret) + goto disable_clk; + + return 0; + +disable_clk: + clk_disable_unprepare(controller->cclk); + clk_disable_unprepare(controller->iclk); + return ret; } #endif /* CONFIG_PM_SLEEP */ --- linux-5.19.0.orig/drivers/spi/spi-s3c64xx.c +++ linux-5.19.0/drivers/spi/spi-s3c64xx.c @@ -83,6 +83,7 @@ #define S3C64XX_SPI_ST_TX_FIFORDY (1<<0) #define S3C64XX_SPI_PACKET_CNT_EN (1<<16) +#define S3C64XX_SPI_PACKET_CNT_MASK GENMASK(15, 0) #define S3C64XX_SPI_PND_TX_UNDERRUN_CLR (1<<4) #define S3C64XX_SPI_PND_TX_OVERRUN_CLR (1<<3) @@ -663,6 +664,13 @@ return 0; } +static size_t s3c64xx_spi_max_transfer_size(struct spi_device *spi) +{ + struct spi_controller *ctlr = spi->controller; + + return ctlr->can_dma ? S3C64XX_SPI_PACKET_CNT_MASK : SIZE_MAX; +} + static int s3c64xx_spi_transfer_one(struct spi_master *master, struct spi_device *spi, struct spi_transfer *xfer) @@ -1100,6 +1108,7 @@ master->prepare_transfer_hardware = s3c64xx_spi_prepare_transfer; master->prepare_message = s3c64xx_spi_prepare_message; master->transfer_one = s3c64xx_spi_transfer_one; + master->max_transfer_size = s3c64xx_spi_max_transfer_size; master->num_chipselect = sci->num_cs; master->use_gpio_descriptors = true; master->dma_alignment = 8; @@ -1413,7 +1422,7 @@ .quirks = S3C64XX_SPI_QUIRK_CS_AUTO, }; -static struct s3c64xx_spi_port_config fsd_spi_port_config = { +static const struct s3c64xx_spi_port_config fsd_spi_port_config = { .fifo_lvl_mask = { 0x7f, 0x7f, 0x7f, 0x7f, 0x7f}, .rx_lvl_offset = 15, .tx_st_done = 25, --- linux-5.19.0.orig/drivers/spi/spi-stm32.c +++ linux-5.19.0/drivers/spi/spi-stm32.c @@ -434,7 +434,7 @@ u32 div, mbrdiv; /* Ensure spi->clk_rate is even */ - div = DIV_ROUND_UP(spi->clk_rate & ~0x1, speed_hz); + div = DIV_ROUND_CLOSEST(spi->clk_rate & ~0x1, speed_hz); /* * SPI framework set xfer->speed_hz to master->max_speed_hz if @@ -886,6 +886,7 @@ static DEFINE_RATELIMIT_STATE(rs, DEFAULT_RATELIMIT_INTERVAL * 10, 1); + ratelimit_set_flags(&rs, RATELIMIT_MSG_ON_RELEASE); if (__ratelimit(&rs)) dev_dbg_ratelimited(spi->dev, "Communication suspended\n"); if (!spi->cur_usedma && (spi->rx_buf && (spi->rx_len > 0))) --- linux-5.19.0.orig/drivers/spi/spi-synquacer.c +++ linux-5.19.0/drivers/spi/spi-synquacer.c @@ -783,6 +783,7 @@ ret = synquacer_spi_enable(master); if (ret) { + clk_disable_unprepare(sspi->clk); dev_err(dev, "failed to enable spi (%d)\n", ret); return ret; } --- linux-5.19.0.orig/drivers/spi/spi-tegra20-slink.c +++ linux-5.19.0/drivers/spi/spi-tegra20-slink.c @@ -1136,7 +1136,7 @@ static int tegra_slink_remove(struct platform_device *pdev) { - struct spi_master *master = platform_get_drvdata(pdev); + struct spi_master *master = spi_master_get(platform_get_drvdata(pdev)); struct tegra_slink_data *tspi = spi_master_get_devdata(master); spi_unregister_master(master); @@ -1151,6 +1151,7 @@ if (tspi->rx_dma_chan) tegra_slink_deinit_dma_param(tspi, true); + spi_master_put(master); return 0; } --- linux-5.19.0.orig/drivers/spi/spi-tegra210-quad.c +++ linux-5.19.0/drivers/spi/spi-tegra210-quad.c @@ -709,6 +709,9 @@ static void tegra_qspi_deinit_dma(struct tegra_qspi *tqspi) { + if (!tqspi->soc_data->has_dma) + return; + if (tqspi->tx_dma_buf) { dma_free_coherent(tqspi->dev, tqspi->dma_buf_size, tqspi->tx_dma_buf, tqspi->tx_dma_phys); @@ -739,6 +742,9 @@ u32 *dma_buf; int err; + if (!tqspi->soc_data->has_dma) + return 0; + dma_chan = dma_request_chan(tqspi->dev, "rx"); if (IS_ERR(dma_chan)) { err = PTR_ERR(dma_chan); @@ -906,8 +912,9 @@ static struct tegra_qspi_client_data *tegra_qspi_parse_cdata_dt(struct spi_device *spi) { struct tegra_qspi_client_data *cdata; + struct tegra_qspi *tqspi = spi_master_get_devdata(spi->master); - cdata = devm_kzalloc(&spi->dev, sizeof(*cdata), GFP_KERNEL); + cdata = devm_kzalloc(tqspi->dev, sizeof(*cdata), GFP_KERNEL); if (!cdata) return NULL; @@ -1144,6 +1151,11 @@ msg->actual_length += xfer->len; transfer_phase++; } + if (!xfer->cs_change) { + tegra_qspi_transfer_end(spi); + spi_transfer_delay_exec(xfer); + } + ret = 0; exit: msg->status = ret; --- linux-5.19.0.orig/drivers/spi/spi.c +++ linux-5.19.0/drivers/spi/spi.c @@ -1047,6 +1047,8 @@ if (sgt->orig_nents) { dma_unmap_sg(dev, sgt->sgl, sgt->orig_nents, dir); sg_free_table(sgt); + sgt->orig_nents = 0; + sgt->nents = 0; } } @@ -2398,7 +2400,7 @@ ctlr = acpi_spi_find_controller_by_adev(adev); if (!ctlr) - return -ENODEV; + return -EPROBE_DEFER; lookup->ctlr = ctlr; } @@ -3050,9 +3052,9 @@ } EXPORT_SYMBOL_GPL(spi_register_controller); -static void devm_spi_unregister(void *ctlr) +static void devm_spi_unregister(struct device *dev, void *res) { - spi_unregister_controller(ctlr); + spi_unregister_controller(*(struct spi_controller **)res); } /** @@ -3071,13 +3073,22 @@ int devm_spi_register_controller(struct device *dev, struct spi_controller *ctlr) { + struct spi_controller **ptr; int ret; + ptr = devres_alloc(devm_spi_unregister, sizeof(*ptr), GFP_KERNEL); + if (!ptr) + return -ENOMEM; + ret = spi_register_controller(ctlr); - if (ret) - return ret; + if (!ret) { + *ptr = ctlr; + devres_add(dev, ptr); + } else { + devres_free(ptr); + } - return devm_add_action_or_reset(dev, devm_spi_unregister, ctlr); + return ret; } EXPORT_SYMBOL_GPL(devm_spi_register_controller); --- linux-5.19.0.orig/drivers/spi/spidev.c +++ linux-5.19.0/drivers/spi/spidev.c @@ -377,12 +377,23 @@ switch (cmd) { /* read requests */ case SPI_IOC_RD_MODE: - retval = put_user(spi->mode & SPI_MODE_MASK, - (__u8 __user *)arg); - break; case SPI_IOC_RD_MODE32: - retval = put_user(spi->mode & SPI_MODE_MASK, - (__u32 __user *)arg); + tmp = spi->mode; + + { + struct spi_controller *ctlr = spi->controller; + + if (ctlr->use_gpio_descriptors && ctlr->cs_gpiods && + ctlr->cs_gpiods[spi->chip_select]) + tmp &= ~SPI_CS_HIGH; + } + + if (cmd == SPI_IOC_RD_MODE) + retval = put_user(tmp & SPI_MODE_MASK, + (__u8 __user *)arg); + else + retval = put_user(tmp & SPI_MODE_MASK, + (__u32 __user *)arg); break; case SPI_IOC_RD_LSB_FIRST: retval = put_user((spi->mode & SPI_LSB_FIRST) ? 1 : 0, --- linux-5.19.0.orig/drivers/spmi/spmi-pmic-arb.c +++ linux-5.19.0/drivers/spmi/spmi-pmic-arb.c @@ -992,7 +992,8 @@ * version 5, there is more than one APID mapped to each PPID. * The owner field for each of these mappings specifies the EE which is * allowed to write to the APID. The owner of the last (highest) APID - * for a given PPID will receive interrupts from the PPID. + * which has the IRQ owner bit set for a given PPID will receive + * interrupts from the PPID. */ for (i = 0; ; i++, apidd++) { offset = pmic_arb->ver_ops->apid_map_offset(i); @@ -1015,16 +1016,16 @@ apid = pmic_arb->ppid_to_apid[ppid] & ~PMIC_ARB_APID_VALID; prev_apidd = &pmic_arb->apid_data[apid]; - if (valid && is_irq_ee && - prev_apidd->write_ee == pmic_arb->ee) { + if (!valid || apidd->write_ee == pmic_arb->ee) { + /* First PPID mapping or one for this EE */ + pmic_arb->ppid_to_apid[ppid] = i | PMIC_ARB_APID_VALID; + } else if (valid && is_irq_ee && + prev_apidd->write_ee == pmic_arb->ee) { /* * Duplicate PPID mapping after the one for this EE; * override the irq owner */ prev_apidd->irq_ee = apidd->irq_ee; - } else if (!valid || is_irq_ee) { - /* First PPID mapping or duplicate for another EE */ - pmic_arb->ppid_to_apid[ppid] = i | PMIC_ARB_APID_VALID; } apidd->ppid = ppid; --- linux-5.19.0.orig/drivers/staging/fbtft/fbtft-core.c +++ linux-5.19.0/drivers/staging/fbtft/fbtft-core.c @@ -655,7 +655,6 @@ fbdefio->delay = HZ / fps; fbdefio->sort_pagereflist = true; fbdefio->deferred_io = fbtft_deferred_io; - fb_deferred_io_init(info); snprintf(info->fix.id, sizeof(info->fix.id), "%s", dev->driver->name); info->fix.type = FB_TYPE_PACKED_PIXELS; @@ -666,6 +665,7 @@ info->fix.line_length = width * bpp / 8; info->fix.accel = FB_ACCEL_NONE; info->fix.smem_len = vmem_size; + fb_deferred_io_init(info); info->var.rotate = pdata->rotate; info->var.xres = width; --- linux-5.19.0.orig/drivers/staging/greybus/audio_helper.c +++ linux-5.19.0/drivers/staging/greybus/audio_helper.c @@ -3,7 +3,6 @@ * Greybus Audio Sound SoC helper APIs */ -#include #include #include #include @@ -116,10 +115,6 @@ { int i; struct snd_soc_dapm_widget *w, *next_w; -#ifdef CONFIG_DEBUG_FS - struct dentry *parent = dapm->debugfs_dapm; - struct dentry *debugfs_w = NULL; -#endif mutex_lock(&dapm->card->dapm_mutex); for (i = 0; i < num; i++) { @@ -139,12 +134,6 @@ continue; } widget++; -#ifdef CONFIG_DEBUG_FS - if (!parent) - debugfs_w = debugfs_lookup(w->name, parent); - debugfs_remove(debugfs_w); - debugfs_w = NULL; -#endif gbaudio_dapm_free_widget(w); } mutex_unlock(&dapm->card->dapm_mutex); --- linux-5.19.0.orig/drivers/staging/media/atomisp/pci/atomisp_cmd.c +++ linux-5.19.0/drivers/staging/media/atomisp/pci/atomisp_cmd.c @@ -901,9 +901,9 @@ int err; unsigned long irqflags; struct ia_css_frame *frame = NULL; - struct atomisp_s3a_buf *s3a_buf = NULL, *_s3a_buf_tmp; - struct atomisp_dis_buf *dis_buf = NULL, *_dis_buf_tmp; - struct atomisp_metadata_buf *md_buf = NULL, *_md_buf_tmp; + struct atomisp_s3a_buf *s3a_buf = NULL, *_s3a_buf_tmp, *s3a_iter; + struct atomisp_dis_buf *dis_buf = NULL, *_dis_buf_tmp, *dis_iter; + struct atomisp_metadata_buf *md_buf = NULL, *_md_buf_tmp, *md_iter; enum atomisp_metadata_type md_type; struct atomisp_device *isp = asd->isp; struct v4l2_control ctrl; @@ -942,60 +942,75 @@ switch (buf_type) { case IA_CSS_BUFFER_TYPE_3A_STATISTICS: - list_for_each_entry_safe(s3a_buf, _s3a_buf_tmp, + list_for_each_entry_safe(s3a_iter, _s3a_buf_tmp, &asd->s3a_stats_in_css, list) { - if (s3a_buf->s3a_data == + if (s3a_iter->s3a_data == buffer.css_buffer.data.stats_3a) { - list_del_init(&s3a_buf->list); - list_add_tail(&s3a_buf->list, + list_del_init(&s3a_iter->list); + list_add_tail(&s3a_iter->list, &asd->s3a_stats_ready); + s3a_buf = s3a_iter; break; } } asd->s3a_bufs_in_css[css_pipe_id]--; atomisp_3a_stats_ready_event(asd, buffer.css_buffer.exp_id); - dev_dbg(isp->dev, "%s: s3a stat with exp_id %d is ready\n", - __func__, s3a_buf->s3a_data->exp_id); + if (s3a_buf) + dev_dbg(isp->dev, "%s: s3a stat with exp_id %d is ready\n", + __func__, s3a_buf->s3a_data->exp_id); + else + dev_dbg(isp->dev, "%s: s3a stat is ready with no exp_id found\n", + __func__); break; case IA_CSS_BUFFER_TYPE_METADATA: if (error) break; md_type = atomisp_get_metadata_type(asd, css_pipe_id); - list_for_each_entry_safe(md_buf, _md_buf_tmp, + list_for_each_entry_safe(md_iter, _md_buf_tmp, &asd->metadata_in_css[md_type], list) { - if (md_buf->metadata == + if (md_iter->metadata == buffer.css_buffer.data.metadata) { - list_del_init(&md_buf->list); - list_add_tail(&md_buf->list, + list_del_init(&md_iter->list); + list_add_tail(&md_iter->list, &asd->metadata_ready[md_type]); + md_buf = md_iter; break; } } asd->metadata_bufs_in_css[stream_id][css_pipe_id]--; atomisp_metadata_ready_event(asd, md_type); - dev_dbg(isp->dev, "%s: metadata with exp_id %d is ready\n", - __func__, md_buf->metadata->exp_id); + if (md_buf) + dev_dbg(isp->dev, "%s: metadata with exp_id %d is ready\n", + __func__, md_buf->metadata->exp_id); + else + dev_dbg(isp->dev, "%s: metadata is ready with no exp_id found\n", + __func__); break; case IA_CSS_BUFFER_TYPE_DIS_STATISTICS: - list_for_each_entry_safe(dis_buf, _dis_buf_tmp, + list_for_each_entry_safe(dis_iter, _dis_buf_tmp, &asd->dis_stats_in_css, list) { - if (dis_buf->dis_data == + if (dis_iter->dis_data == buffer.css_buffer.data.stats_dvs) { spin_lock_irqsave(&asd->dis_stats_lock, irqflags); - list_del_init(&dis_buf->list); - list_add(&dis_buf->list, &asd->dis_stats); + list_del_init(&dis_iter->list); + list_add(&dis_iter->list, &asd->dis_stats); asd->params.dis_proj_data_valid = true; spin_unlock_irqrestore(&asd->dis_stats_lock, irqflags); + dis_buf = dis_iter; break; } } asd->dis_bufs_in_css--; - dev_dbg(isp->dev, "%s: dis stat with exp_id %d is ready\n", - __func__, dis_buf->dis_data->exp_id); + if (dis_buf) + dev_dbg(isp->dev, "%s: dis stat with exp_id %d is ready\n", + __func__, dis_buf->dis_data->exp_id); + else + dev_dbg(isp->dev, "%s: dis stat is ready with no exp_id found\n", + __func__); break; case IA_CSS_BUFFER_TYPE_VF_OUTPUT_FRAME: case IA_CSS_BUFFER_TYPE_SEC_VF_OUTPUT_FRAME: --- linux-5.19.0.orig/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c +++ linux-5.19.0/drivers/staging/media/atomisp/pci/runtime/rmgr/src/rmgr_vbuf.c @@ -254,7 +254,7 @@ void ia_css_rmgr_acq_vbuf(struct ia_css_rmgr_vbuf_pool *pool, struct ia_css_rmgr_vbuf_handle **handle) { - struct ia_css_rmgr_vbuf_handle h = { 0 }; + struct ia_css_rmgr_vbuf_handle h; if ((!pool) || (!handle) || (!*handle)) { IA_CSS_LOG("Invalid inputs"); @@ -272,7 +272,7 @@ h.size = (*handle)->size; /* release ref to current buffer */ ia_css_rmgr_refcount_release_vbuf(handle); - **handle = h; + *handle = &h; } /* get new buffer for needed size */ if ((*handle)->vptr == 0x0) { --- linux-5.19.0.orig/drivers/staging/media/atomisp/pci/sh_css_params.c +++ linux-5.19.0/drivers/staging/media/atomisp/pci/sh_css_params.c @@ -950,8 +950,8 @@ params->fpn_config.data = NULL; } if (!params->fpn_config.data) { - params->fpn_config.data = kvmalloc(height * width * - sizeof(short), GFP_KERNEL); + params->fpn_config.data = kvmalloc(array3_size(height, width, sizeof(short)), + GFP_KERNEL); if (!params->fpn_config.data) { IA_CSS_ERROR("out of memory"); IA_CSS_LEAVE_ERR_PRIVATE(-ENOMEM); --- linux-5.19.0.orig/drivers/staging/media/hantro/hantro_g2_hevc_dec.c +++ linux-5.19.0/drivers/staging/media/hantro/hantro_g2_hevc_dec.c @@ -390,11 +390,10 @@ !!(pps->flags & V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED)); /* - * Write POC count diff from current pic. For frame decoding only compute - * pic_order_cnt[0] and ignore pic_order_cnt[1] used in field-coding. + * Write POC count diff from current pic. */ for (i = 0; i < decode_params->num_active_dpb_entries && i < ARRAY_SIZE(cur_poc); i++) { - char poc_diff = decode_params->pic_order_cnt_val - dpb[i].pic_order_cnt[0]; + char poc_diff = decode_params->pic_order_cnt_val - dpb[i].pic_order_cnt_val; hantro_reg_write(vpu, &cur_poc[i], poc_diff); } @@ -421,7 +420,7 @@ dpb_longterm_e = 0; for (i = 0; i < decode_params->num_active_dpb_entries && i < (V4L2_HEVC_DPB_ENTRIES_NUM_MAX - 1); i++) { - luma_addr = hantro_hevc_get_ref_buf(ctx, dpb[i].pic_order_cnt[0]); + luma_addr = hantro_hevc_get_ref_buf(ctx, dpb[i].pic_order_cnt_val); if (!luma_addr) return -ENOMEM; --- linux-5.19.0.orig/drivers/staging/media/hantro/hantro_g2_regs.h +++ linux-5.19.0/drivers/staging/media/hantro/hantro_g2_regs.h @@ -107,7 +107,7 @@ #define g2_start_code_e G2_DEC_REG(10, 31, 0x1) #define g2_init_qp_old G2_DEC_REG(10, 25, 0x3f) -#define g2_init_qp G2_DEC_REG(10, 24, 0x3f) +#define g2_init_qp G2_DEC_REG(10, 24, 0x7f) #define g2_num_tile_cols_old G2_DEC_REG(10, 20, 0x1f) #define g2_num_tile_cols G2_DEC_REG(10, 19, 0x1f) #define g2_num_tile_rows_old G2_DEC_REG(10, 15, 0x1f) --- linux-5.19.0.orig/drivers/staging/media/hantro/hantro_hevc.c +++ linux-5.19.0/drivers/staging/media/hantro/hantro_hevc.c @@ -33,7 +33,7 @@ } dma_addr_t hantro_hevc_get_ref_buf(struct hantro_ctx *ctx, - int poc) + s32 poc) { struct hantro_hevc_dec_hw_ctx *hevc_dec = &ctx->hevc_dec; int i; @@ -154,6 +154,25 @@ return -ENOMEM; } +static int hantro_hevc_validate_sps(struct hantro_ctx *ctx, const struct v4l2_ctrl_hevc_sps *sps) +{ + /* + * for tile pixel format check if the width and height match + * hardware constraints + */ + if (ctx->vpu_dst_fmt->fourcc == V4L2_PIX_FMT_NV12_4L4) { + if (ctx->dst_fmt.width != + ALIGN(sps->pic_width_in_luma_samples, ctx->vpu_dst_fmt->frmsize.step_width)) + return -EINVAL; + + if (ctx->dst_fmt.height != + ALIGN(sps->pic_height_in_luma_samples, ctx->vpu_dst_fmt->frmsize.step_height)) + return -EINVAL; + } + + return 0; +} + int hantro_hevc_dec_prepare_run(struct hantro_ctx *ctx) { struct hantro_hevc_dec_hw_ctx *hevc_ctx = &ctx->hevc_dec; @@ -177,6 +196,10 @@ if (WARN_ON(!ctrls->sps)) return -EINVAL; + ret = hantro_hevc_validate_sps(ctx, ctrls->sps); + if (ret) + return ret; + ctrls->pps = hantro_get_ctrl(ctx, V4L2_CID_MPEG_VIDEO_HEVC_PPS); if (WARN_ON(!ctrls->pps)) --- linux-5.19.0.orig/drivers/staging/media/hantro/hantro_hw.h +++ linux-5.19.0/drivers/staging/media/hantro/hantro_hw.h @@ -18,9 +18,21 @@ #define DEC_8190_ALIGN_MASK 0x07U #define MB_DIM 16 +#define TILE_MB_DIM 4 #define MB_WIDTH(w) DIV_ROUND_UP(w, MB_DIM) #define MB_HEIGHT(h) DIV_ROUND_UP(h, MB_DIM) +#define FMT_MIN_WIDTH 48 +#define FMT_MIN_HEIGHT 48 +#define FMT_HD_WIDTH 1280 +#define FMT_HD_HEIGHT 720 +#define FMT_FHD_WIDTH 1920 +#define FMT_FHD_HEIGHT 1088 +#define FMT_UHD_WIDTH 3840 +#define FMT_UHD_HEIGHT 2160 +#define FMT_4K_WIDTH 4096 +#define FMT_4K_HEIGHT 2304 + #define NUM_REF_PICTURES (V4L2_HEVC_DPB_ENTRIES_NUM_MAX + 1) struct hantro_dev; @@ -133,7 +145,7 @@ struct hantro_aux_buf tile_bsd; struct hantro_aux_buf ref_bufs[NUM_REF_PICTURES]; struct hantro_aux_buf scaling_lists; - int ref_bufs_poc[NUM_REF_PICTURES]; + s32 ref_bufs_poc[NUM_REF_PICTURES]; u32 ref_bufs_used; struct hantro_hevc_dec_ctrls ctrls; unsigned int num_tile_cols_allocated; @@ -345,9 +357,10 @@ int hantro_g2_hevc_dec_run(struct hantro_ctx *ctx); int hantro_hevc_dec_prepare_run(struct hantro_ctx *ctx); void hantro_hevc_ref_init(struct hantro_ctx *ctx); -dma_addr_t hantro_hevc_get_ref_buf(struct hantro_ctx *ctx, int poc); +dma_addr_t hantro_hevc_get_ref_buf(struct hantro_ctx *ctx, s32 poc); int hantro_hevc_add_ref_buf(struct hantro_ctx *ctx, int poc, dma_addr_t addr); + static inline unsigned short hantro_vp9_num_sbs(unsigned short dimension) { return (dimension + 63) / 64; --- linux-5.19.0.orig/drivers/staging/media/hantro/hantro_v4l2.c +++ linux-5.19.0/drivers/staging/media/hantro/hantro_v4l2.c @@ -259,7 +259,7 @@ } else if (ctx->is_encoder) { vpu_fmt = ctx->vpu_dst_fmt; } else { - vpu_fmt = ctx->vpu_src_fmt; + vpu_fmt = fmt; /* * Width/height on the CAPTURE end of a decoder are ignored and * replaced by the OUTPUT ones. --- linux-5.19.0.orig/drivers/staging/media/hantro/imx8m_vpu_hw.c +++ linux-5.19.0/drivers/staging/media/hantro/imx8m_vpu_hw.c @@ -83,6 +83,14 @@ .fourcc = V4L2_PIX_FMT_YUYV, .codec_mode = HANTRO_MODE_NONE, .postprocessed = true, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = MB_DIM, + }, }, }; @@ -90,17 +98,25 @@ { .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_MPEG2_SLICE, .codec_mode = HANTRO_MODE_MPEG2_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -109,11 +125,11 @@ .codec_mode = HANTRO_MODE_VP8_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -122,11 +138,11 @@ .codec_mode = HANTRO_MODE_H264_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -137,6 +153,14 @@ .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, .postprocessed = true, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = MB_DIM, + }, }, }; @@ -144,18 +168,26 @@ { .fourcc = V4L2_PIX_FMT_NV12_4L4, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = TILE_MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = TILE_MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_HEVC_SLICE, .codec_mode = HANTRO_MODE_HEVC_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, - .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, - .step_height = MB_DIM, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = TILE_MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = TILE_MB_DIM, }, }, { @@ -163,12 +195,12 @@ .codec_mode = HANTRO_MODE_VP9_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, - .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, - .step_height = MB_DIM, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = TILE_MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = TILE_MB_DIM, }, }, }; --- linux-5.19.0.orig/drivers/staging/media/hantro/rockchip_vpu_hw.c +++ linux-5.19.0/drivers/staging/media/hantro/rockchip_vpu_hw.c @@ -63,6 +63,14 @@ .fourcc = V4L2_PIX_FMT_YUYV, .codec_mode = HANTRO_MODE_NONE, .postprocessed = true, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, + .step_height = MB_DIM, + }, }, }; @@ -70,17 +78,25 @@ { .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, + .step_height = MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_H264_SLICE, .codec_mode = HANTRO_MODE_H264_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -89,11 +105,11 @@ .codec_mode = HANTRO_MODE_MPEG2_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -102,11 +118,11 @@ .codec_mode = HANTRO_MODE_VP8_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -116,17 +132,25 @@ { .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_4K_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_4K_HEIGHT, + .step_height = MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_H264_SLICE, .codec_mode = HANTRO_MODE_H264_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 4096, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_4K_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 2304, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_4K_HEIGHT, .step_height = MB_DIM, }, }, @@ -135,11 +159,11 @@ .codec_mode = HANTRO_MODE_MPEG2_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -148,31 +172,80 @@ .codec_mode = HANTRO_MODE_VP8_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, .step_height = MB_DIM, }, }, }; -static const struct hantro_fmt rk3399_vpu_dec_fmts[] = { +static const struct hantro_fmt rockchip_vdpu2_dec_fmts[] = { { .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, + .step_height = MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_H264_SLICE, .codec_mode = HANTRO_MODE_H264_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, + .step_height = MB_DIM, + }, + }, + { + .fourcc = V4L2_PIX_FMT_MPEG2_SLICE, + .codec_mode = HANTRO_MODE_MPEG2_DEC, + .max_depth = 2, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, + .step_height = MB_DIM, + }, + }, + { + .fourcc = V4L2_PIX_FMT_VP8_FRAME, + .codec_mode = HANTRO_MODE_VP8_DEC, + .max_depth = 2, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = MB_DIM, + }, + }, +}; + +static const struct hantro_fmt rk3399_vpu_dec_fmts[] = { + { + .fourcc = V4L2_PIX_FMT_NV12, + .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -181,11 +254,11 @@ .codec_mode = HANTRO_MODE_MPEG2_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1920, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_FHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 1088, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_FHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -194,11 +267,11 @@ .codec_mode = HANTRO_MODE_VP8_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 2160, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, .step_height = MB_DIM, }, }, @@ -516,8 +589,8 @@ const struct hantro_variant rk3328_vpu_variant = { .dec_offset = 0x400, - .dec_fmts = rk3399_vpu_dec_fmts, - .num_dec_fmts = ARRAY_SIZE(rk3399_vpu_dec_fmts), + .dec_fmts = rockchip_vdpu2_dec_fmts, + .num_dec_fmts = ARRAY_SIZE(rockchip_vdpu2_dec_fmts), .codec = HANTRO_MPEG2_DECODER | HANTRO_VP8_DECODER | HANTRO_H264_DECODER, .codec_ops = rk3399_vpu_codec_ops, @@ -528,6 +601,11 @@ .num_clocks = ARRAY_SIZE(rockchip_vpu_clk_names), }; +/* + * H.264 decoding explicitly disabled in RK3399. + * This ensures userspace applications use the Rockchip VDEC core, + * which has better performance. + */ const struct hantro_variant rk3399_vpu_variant = { .enc_offset = 0x0, .enc_fmts = rockchip_vpu_enc_fmts, @@ -547,8 +625,8 @@ const struct hantro_variant rk3568_vpu_variant = { .dec_offset = 0x400, - .dec_fmts = rk3399_vpu_dec_fmts, - .num_dec_fmts = ARRAY_SIZE(rk3399_vpu_dec_fmts), + .dec_fmts = rockchip_vdpu2_dec_fmts, + .num_dec_fmts = ARRAY_SIZE(rockchip_vdpu2_dec_fmts), .codec = HANTRO_MPEG2_DECODER | HANTRO_VP8_DECODER | HANTRO_H264_DECODER, .codec_ops = rk3399_vpu_codec_ops, @@ -564,8 +642,8 @@ .enc_fmts = rockchip_vpu_enc_fmts, .num_enc_fmts = ARRAY_SIZE(rockchip_vpu_enc_fmts), .dec_offset = 0x400, - .dec_fmts = rk3399_vpu_dec_fmts, - .num_dec_fmts = ARRAY_SIZE(rk3399_vpu_dec_fmts), + .dec_fmts = rockchip_vdpu2_dec_fmts, + .num_dec_fmts = ARRAY_SIZE(rockchip_vdpu2_dec_fmts), .codec = HANTRO_JPEG_ENCODER | HANTRO_MPEG2_DECODER | HANTRO_VP8_DECODER | HANTRO_H264_DECODER, .codec_ops = rk3399_vpu_codec_ops, --- linux-5.19.0.orig/drivers/staging/media/hantro/sama5d4_vdec_hw.c +++ linux-5.19.0/drivers/staging/media/hantro/sama5d4_vdec_hw.c @@ -16,6 +16,14 @@ .fourcc = V4L2_PIX_FMT_YUYV, .codec_mode = HANTRO_MODE_NONE, .postprocessed = true, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_HD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_HD_HEIGHT, + .step_height = MB_DIM, + }, }, }; @@ -23,17 +31,25 @@ { .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_HD_WIDTH, + .step_width = MB_DIM, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_HD_HEIGHT, + .step_height = MB_DIM, + }, }, { .fourcc = V4L2_PIX_FMT_MPEG2_SLICE, .codec_mode = HANTRO_MODE_MPEG2_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1280, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_HD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 720, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_HD_HEIGHT, .step_height = MB_DIM, }, }, @@ -42,11 +58,11 @@ .codec_mode = HANTRO_MODE_VP8_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1280, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_HD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 720, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_HD_HEIGHT, .step_height = MB_DIM, }, }, @@ -55,11 +71,11 @@ .codec_mode = HANTRO_MODE_H264_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 1280, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_HD_WIDTH, .step_width = MB_DIM, - .min_height = 48, - .max_height = 720, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_HD_HEIGHT, .step_height = MB_DIM, }, }, --- linux-5.19.0.orig/drivers/staging/media/hantro/sunxi_vpu_hw.c +++ linux-5.19.0/drivers/staging/media/hantro/sunxi_vpu_hw.c @@ -14,6 +14,14 @@ .fourcc = V4L2_PIX_FMT_NV12, .codec_mode = HANTRO_MODE_NONE, .postprocessed = true, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = 32, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = 32, + }, }, }; @@ -21,17 +29,25 @@ { .fourcc = V4L2_PIX_FMT_NV12_4L4, .codec_mode = HANTRO_MODE_NONE, + .frmsize = { + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, + .step_width = 32, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, + .step_height = 32, + }, }, { .fourcc = V4L2_PIX_FMT_VP9_FRAME, .codec_mode = HANTRO_MODE_VP9_DEC, .max_depth = 2, .frmsize = { - .min_width = 48, - .max_width = 3840, + .min_width = FMT_MIN_WIDTH, + .max_width = FMT_UHD_WIDTH, .step_width = 32, - .min_height = 48, - .max_height = 2160, + .min_height = FMT_MIN_HEIGHT, + .max_height = FMT_UHD_HEIGHT, .step_height = 32, }, }, --- linux-5.19.0.orig/drivers/staging/media/imx/imx7-media-csi.c +++ linux-5.19.0/drivers/staging/media/imx/imx7-media-csi.c @@ -441,9 +441,9 @@ cr18 = imx7_csi_reg_read(csi, CSI_CSICR18); cr18 &= ~(BIT_CSI_HW_ENABLE | BIT_MIPI_DATA_FORMAT_MASK | - BIT_DATA_FROM_MIPI | BIT_BASEADDR_CHG_ERR_EN | - BIT_BASEADDR_SWITCH_EN | BIT_BASEADDR_SWITCH_SEL | - BIT_DEINTERLACE_EN); + BIT_DATA_FROM_MIPI | BIT_MIPI_DOUBLE_CMPNT | + BIT_BASEADDR_CHG_ERR_EN | BIT_BASEADDR_SWITCH_SEL | + BIT_BASEADDR_SWITCH_EN | BIT_DEINTERLACE_EN); if (out_pix->field == V4L2_FIELD_INTERLACED) { cr18 |= BIT_DEINTERLACE_EN; --- linux-5.19.0.orig/drivers/staging/media/ipu3/ipu3-v4l2.c +++ linux-5.19.0/drivers/staging/media/ipu3/ipu3-v4l2.c @@ -192,33 +192,30 @@ struct v4l2_subdev_state *sd_state, struct v4l2_subdev_selection *sel) { - struct v4l2_rect *try_sel, *r; - struct imgu_v4l2_subdev *imgu_sd = container_of(sd, - struct imgu_v4l2_subdev, - subdev); + struct imgu_v4l2_subdev *imgu_sd = + container_of(sd, struct imgu_v4l2_subdev, subdev); if (sel->pad != IMGU_NODE_IN) return -EINVAL; switch (sel->target) { case V4L2_SEL_TGT_CROP: - try_sel = v4l2_subdev_get_try_crop(sd, sd_state, sel->pad); - r = &imgu_sd->rect.eff; - break; + if (sel->which == V4L2_SUBDEV_FORMAT_TRY) + sel->r = *v4l2_subdev_get_try_crop(sd, sd_state, + sel->pad); + else + sel->r = imgu_sd->rect.eff; + return 0; case V4L2_SEL_TGT_COMPOSE: - try_sel = v4l2_subdev_get_try_compose(sd, sd_state, sel->pad); - r = &imgu_sd->rect.bds; - break; + if (sel->which == V4L2_SUBDEV_FORMAT_TRY) + sel->r = *v4l2_subdev_get_try_compose(sd, sd_state, + sel->pad); + else + sel->r = imgu_sd->rect.bds; + return 0; default: return -EINVAL; } - - if (sel->which == V4L2_SUBDEV_FORMAT_TRY) - sel->r = *try_sel; - else - sel->r = *r; - - return 0; } static int imgu_subdev_set_selection(struct v4l2_subdev *sd, --- linux-5.19.0.orig/drivers/staging/media/meson/vdec/vdec.c +++ linux-5.19.0/drivers/staging/media/meson/vdec/vdec.c @@ -1102,6 +1102,7 @@ err_vdev_release: video_device_release(vdev); + v4l2_device_unregister(&core->v4l2_dev); return ret; } @@ -1110,6 +1111,7 @@ struct amvdec_core *core = platform_get_drvdata(pdev); video_unregister_device(core->vdev_dec); + v4l2_device_unregister(&core->v4l2_dev); return 0; } --- linux-5.19.0.orig/drivers/staging/media/meson/vdec/vdec_hevc.c +++ linux-5.19.0/drivers/staging/media/meson/vdec/vdec_hevc.c @@ -167,8 +167,12 @@ clk_set_rate(core->vdec_hevc_clk, 666666666); ret = clk_prepare_enable(core->vdec_hevc_clk); - if (ret) + if (ret) { + if (core->platform->revision == VDEC_REVISION_G12A || + core->platform->revision == VDEC_REVISION_SM1) + clk_disable_unprepare(core->vdec_hevcf_clk); return ret; + } if (core->platform->revision == VDEC_REVISION_SM1) regmap_update_bits(core->regmap_ao, AO_RTI_GEN_PWR_SLEEP0, --- linux-5.19.0.orig/drivers/staging/media/rkvdec/rkvdec-h264.c +++ linux-5.19.0/drivers/staging/media/rkvdec/rkvdec-h264.c @@ -1175,8 +1175,8 @@ schedule_delayed_work(&rkvdec->watchdog_work, msecs_to_jiffies(2000)); - writel(0xffffffff, rkvdec->regs + RKVDEC_REG_STRMD_ERR_EN); - writel(0xffffffff, rkvdec->regs + RKVDEC_REG_H264_ERR_E); + writel(0, rkvdec->regs + RKVDEC_REG_STRMD_ERR_EN); + writel(0, rkvdec->regs + RKVDEC_REG_H264_ERR_E); writel(1, rkvdec->regs + RKVDEC_REG_PREF_LUMA_CACHE_COMMAND); writel(1, rkvdec->regs + RKVDEC_REG_PREF_CHR_CACHE_COMMAND); --- linux-5.19.0.orig/drivers/staging/media/rkvdec/rkvdec-vp9.c +++ linux-5.19.0/drivers/staging/media/rkvdec/rkvdec-vp9.c @@ -84,6 +84,8 @@ struct rkvdec_vp9_inter_frame_probs inter; struct rkvdec_vp9_intra_only_frame_probs intra_only; }; + /* 128 bit alignment */ + u8 padding1[11]; }; /* Data structure describing auxiliary buffer format. */ @@ -1006,6 +1008,7 @@ ctx->priv = vp9_ctx; + BUILD_BUG_ON(sizeof(priv_tbl->probs) % 16); /* ensure probs size is 128-bit aligned */ priv_tbl = dma_alloc_coherent(rkvdec->dev, sizeof(*priv_tbl), &vp9_ctx->priv_tbl.dma, GFP_KERNEL); if (!priv_tbl) { --- linux-5.19.0.orig/drivers/staging/media/sunxi/cedrus/Kconfig +++ linux-5.19.0/drivers/staging/media/sunxi/cedrus/Kconfig @@ -2,6 +2,7 @@ config VIDEO_SUNXI_CEDRUS tristate "Allwinner Cedrus VPU driver" depends on VIDEO_DEV + depends on RESET_CONTROLLER depends on HAS_DMA depends on OF select MEDIA_CONTROLLER --- linux-5.19.0.orig/drivers/staging/media/sunxi/cedrus/cedrus.c +++ linux-5.19.0/drivers/staging/media/sunxi/cedrus/cedrus.c @@ -422,6 +422,8 @@ if (!dev) return -ENOMEM; + platform_set_drvdata(pdev, dev); + dev->vfd = cedrus_video_device; dev->dev = &pdev->dev; dev->pdev = pdev; @@ -495,8 +497,6 @@ goto err_m2m_mc; } - platform_set_drvdata(pdev, dev); - return 0; err_m2m_mc: --- linux-5.19.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_h265.c +++ linux-5.19.0/drivers/staging/media/sunxi/cedrus/cedrus_h265.c @@ -143,10 +143,13 @@ for (i = 0; i < num_active_dpb_entries; i++) { int buffer_index = vb2_find_timestamp(vq, dpb[i].timestamp, 0); u32 pic_order_cnt[2] = { - dpb[i].pic_order_cnt[0], - dpb[i].pic_order_cnt[1] + dpb[i].pic_order_cnt_val, + dpb[i].pic_order_cnt_val }; + if (buffer_index < 0) + continue; + cedrus_h265_frame_info_write_single(ctx, i, dpb[i].field_pic, pic_order_cnt, buffer_index); @@ -231,8 +234,9 @@ cedrus_write(dev, VE_DEC_H265_TRIGGER, VE_DEC_H265_TRIGGER_FLUSH_BITS | VE_DEC_H265_TRIGGER_TYPE_N_BITS(tmp)); - while (cedrus_read(dev, VE_DEC_H265_STATUS) & VE_DEC_H265_STATUS_VLD_BUSY) - udelay(1); + + if (cedrus_wait_for(dev, VE_DEC_H265_STATUS, VE_DEC_H265_STATUS_VLD_BUSY)) + dev_err_ratelimited(dev->dev, "timed out waiting to skip bits\n"); count += tmp; } @@ -301,6 +305,31 @@ } } +static int cedrus_h265_is_low_delay(struct cedrus_run *run) +{ + const struct v4l2_ctrl_hevc_slice_params *slice_params; + const struct v4l2_hevc_dpb_entry *dpb; + s32 poc; + int i; + + slice_params = run->h265.slice_params; + poc = run->h265.decode_params->pic_order_cnt_val; + dpb = run->h265.decode_params->dpb; + + for (i = 0; i < slice_params->num_ref_idx_l0_active_minus1 + 1; i++) + if (dpb[slice_params->ref_idx_l0[i]].pic_order_cnt_val > poc) + return 1; + + if (slice_params->slice_type != V4L2_HEVC_SLICE_TYPE_B) + return 0; + + for (i = 0; i < slice_params->num_ref_idx_l1_active_minus1 + 1; i++) + if (dpb[slice_params->ref_idx_l1[i]].pic_order_cnt_val > poc) + return 1; + + return 0; +} + static void cedrus_h265_setup(struct cedrus_ctx *ctx, struct cedrus_run *run) { @@ -559,7 +588,6 @@ reg = VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_TC_OFFSET_DIV2(slice_params->slice_tc_offset_div2) | VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_BETA_OFFSET_DIV2(slice_params->slice_beta_offset_div2) | - VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(decode_params->num_poc_st_curr_after == 0) | VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CR_QP_OFFSET(slice_params->slice_cr_qp_offset) | VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CB_QP_OFFSET(slice_params->slice_cb_qp_offset) | VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_QP_DELTA(slice_params->slice_qp_delta); @@ -572,6 +600,9 @@ V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED, slice_params->flags); + if (slice_params->slice_type != V4L2_HEVC_SLICE_TYPE_I && !cedrus_h265_is_low_delay(run)) + reg |= VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_NOT_LOW_DELAY; + cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO1, reg); chroma_log2_weight_denom = pred_weight_table->luma_log2_weight_denom + --- linux-5.19.0.orig/drivers/staging/media/sunxi/cedrus/cedrus_regs.h +++ linux-5.19.0/drivers/staging/media/sunxi/cedrus/cedrus_regs.h @@ -377,13 +377,12 @@ #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED BIT(23) #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED BIT(22) +#define VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_NOT_LOW_DELAY BIT(21) #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_TC_OFFSET_DIV2(v) \ SHIFT_AND_MASK_BITS(v, 31, 28) #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_BETA_OFFSET_DIV2(v) \ SHIFT_AND_MASK_BITS(v, 27, 24) -#define VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(v) \ - ((v) ? BIT(21) : 0) #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CR_QP_OFFSET(v) \ SHIFT_AND_MASK_BITS(v, 20, 16) #define VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CB_QP_OFFSET(v) \ --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_cmd.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_cmd.c @@ -898,8 +898,12 @@ static void rtl8188e_sreset_xmit_status_check(struct adapter *padapter) { u32 txdma_status; + int res; + + res = rtw_read32(padapter, REG_TXDMA_STATUS, &txdma_status); + if (res) + return; - txdma_status = rtw_read32(padapter, REG_TXDMA_STATUS); if (txdma_status != 0x00) rtw_write32(padapter, REG_TXDMA_STATUS, txdma_status); /* total xmit irp = 4 */ @@ -1177,7 +1181,14 @@ static bool rtw_is_hi_queue_empty(struct adapter *adapter) { - return (rtw_read32(adapter, REG_HGQ_INFORMATION) & 0x0000ff00) == 0; + int res; + u32 reg; + + res = rtw_read32(adapter, REG_HGQ_INFORMATION, ®); + if (res) + return false; + + return (reg & 0x0000ff00) == 0; } static void rtw_chk_hi_queue_hdl(struct adapter *padapter) --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_efuse.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_efuse.c @@ -28,22 +28,35 @@ u32 value32; u8 readbyte; u16 retry; + int res; /* Write Address */ rtw_write8(Adapter, EFUSE_CTRL + 1, (_offset & 0xff)); - readbyte = rtw_read8(Adapter, EFUSE_CTRL + 2); + res = rtw_read8(Adapter, EFUSE_CTRL + 2, &readbyte); + if (res) + return; + rtw_write8(Adapter, EFUSE_CTRL + 2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc)); /* Write bit 32 0 */ - readbyte = rtw_read8(Adapter, EFUSE_CTRL + 3); + res = rtw_read8(Adapter, EFUSE_CTRL + 3, &readbyte); + if (res) + return; + rtw_write8(Adapter, EFUSE_CTRL + 3, (readbyte & 0x7f)); /* Check bit 32 read-ready */ - retry = 0; - value32 = rtw_read32(Adapter, EFUSE_CTRL); - while (!(((value32 >> 24) & 0xff) & 0x80) && (retry < 10000)) { - value32 = rtw_read32(Adapter, EFUSE_CTRL); - retry++; + res = rtw_read32(Adapter, EFUSE_CTRL, &value32); + if (res) + return; + + for (retry = 0; retry < 10000; retry++) { + res = rtw_read32(Adapter, EFUSE_CTRL, &value32); + if (res) + continue; + + if (((value32 >> 24) & 0xff) & 0x80) + break; } /* 20100205 Joseph: Add delay suggested by SD1 Victor. */ @@ -51,9 +64,13 @@ /* Designer says that there shall be some delay after ready bit is set, or the */ /* result will always stay on last data we read. */ udelay(50); - value32 = rtw_read32(Adapter, EFUSE_CTRL); + res = rtw_read32(Adapter, EFUSE_CTRL, &value32); + if (res) + return; *pbuf = (u8)(value32 & 0xff); + + /* FIXME: return an error to caller */ } /*----------------------------------------------------------------------------- --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_fw.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_fw.c @@ -44,18 +44,28 @@ static void fw_download_enable(struct adapter *padapter, bool enable) { u8 tmp; + int res; if (enable) { /* MCU firmware download enable. */ - tmp = rtw_read8(padapter, REG_MCUFWDL); + res = rtw_read8(padapter, REG_MCUFWDL, &tmp); + if (res) + return; + rtw_write8(padapter, REG_MCUFWDL, tmp | 0x01); /* 8051 reset */ - tmp = rtw_read8(padapter, REG_MCUFWDL + 2); + res = rtw_read8(padapter, REG_MCUFWDL + 2, &tmp); + if (res) + return; + rtw_write8(padapter, REG_MCUFWDL + 2, tmp & 0xf7); } else { /* MCU firmware download disable. */ - tmp = rtw_read8(padapter, REG_MCUFWDL); + res = rtw_read8(padapter, REG_MCUFWDL, &tmp); + if (res) + return; + rtw_write8(padapter, REG_MCUFWDL, tmp & 0xfe); /* Reserved for fw extension. */ @@ -125,8 +135,13 @@ { u8 value8; u8 u8Page = (u8)(page & 0x07); + int res; + + res = rtw_read8(padapter, REG_MCUFWDL + 2, &value8); + if (res) + return _FAIL; - value8 = (rtw_read8(padapter, REG_MCUFWDL + 2) & 0xF8) | u8Page; + value8 = (value8 & 0xF8) | u8Page; rtw_write8(padapter, REG_MCUFWDL + 2, value8); return block_write(padapter, buffer, size); @@ -165,8 +180,12 @@ void rtw_reset_8051(struct adapter *padapter) { u8 val8; + int res; + + res = rtw_read8(padapter, REG_SYS_FUNC_EN + 1, &val8); + if (res) + return; - val8 = rtw_read8(padapter, REG_SYS_FUNC_EN + 1); rtw_write8(padapter, REG_SYS_FUNC_EN + 1, val8 & (~BIT(2))); rtw_write8(padapter, REG_SYS_FUNC_EN + 1, val8 | (BIT(2))); } @@ -175,10 +194,14 @@ { u32 counter = 0; u32 value32; + int res; /* polling CheckSum report */ do { - value32 = rtw_read32(padapter, REG_MCUFWDL); + res = rtw_read32(padapter, REG_MCUFWDL, &value32); + if (res) + continue; + if (value32 & FWDL_CHKSUM_RPT) break; } while (counter++ < POLLING_READY_TIMEOUT_COUNT); @@ -186,7 +209,10 @@ if (counter >= POLLING_READY_TIMEOUT_COUNT) return _FAIL; - value32 = rtw_read32(padapter, REG_MCUFWDL); + res = rtw_read32(padapter, REG_MCUFWDL, &value32); + if (res) + return _FAIL; + value32 |= MCUFWDL_RDY; value32 &= ~WINTINI_RDY; rtw_write32(padapter, REG_MCUFWDL, value32); @@ -196,9 +222,10 @@ /* polling for FW ready */ counter = 0; do { - value32 = rtw_read32(padapter, REG_MCUFWDL); - if (value32 & WINTINI_RDY) + res = rtw_read32(padapter, REG_MCUFWDL, &value32); + if (!res && value32 & WINTINI_RDY) return _SUCCESS; + udelay(5); } while (counter++ < POLLING_READY_TIMEOUT_COUNT); @@ -239,7 +266,7 @@ int rtl8188e_firmware_download(struct adapter *padapter) { int ret = _SUCCESS; - u8 write_fw_retry = 0; + u8 reg; unsigned long fwdl_timeout; struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); struct device *device = dvobj_to_dev(dvobj); @@ -269,23 +296,34 @@ /* Suggested by Filen. If 8051 is running in RAM code, driver should inform Fw to reset by itself, */ /* or it will cause download Fw fail. 2010.02.01. by tynli. */ - if (rtw_read8(padapter, REG_MCUFWDL) & RAM_DL_SEL) { /* 8051 RAM code */ + ret = rtw_read8(padapter, REG_MCUFWDL, ®); + if (ret) { + ret = _FAIL; + goto exit; + } + + if (reg & RAM_DL_SEL) { /* 8051 RAM code */ rtw_write8(padapter, REG_MCUFWDL, 0x00); rtw_reset_8051(padapter); } fw_download_enable(padapter, true); fwdl_timeout = jiffies + msecs_to_jiffies(500); - while (1) { + do { /* reset the FWDL chksum */ - rtw_write8(padapter, REG_MCUFWDL, rtw_read8(padapter, REG_MCUFWDL) | FWDL_CHKSUM_RPT); + ret = rtw_read8(padapter, REG_MCUFWDL, ®); + if (ret) { + ret = _FAIL; + continue; + } - ret = write_fw(padapter, fw_data, fw_size); + rtw_write8(padapter, REG_MCUFWDL, reg | FWDL_CHKSUM_RPT); - if (ret == _SUCCESS || - (time_after(jiffies, fwdl_timeout) && write_fw_retry++ >= 3)) + ret = write_fw(padapter, fw_data, fw_size); + if (ret == _SUCCESS) break; - } + } while (!time_after(jiffies, fwdl_timeout)); + fw_download_enable(padapter, false); if (ret != _SUCCESS) goto exit; --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_led.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_led.c @@ -34,30 +34,19 @@ static void SwLedOn(struct adapter *padapter, struct LED_871x *pLed) { - u8 LedCfg; - if (padapter->bSurpriseRemoved || padapter->bDriverStopped) return; - LedCfg = rtw_read8(padapter, REG_LEDCFG2); - rtw_write8(padapter, REG_LEDCFG2, (LedCfg & 0xf0) | BIT(5) | BIT(6)); /* SW control led0 on. */ + rtw_write8(padapter, REG_LEDCFG2, BIT(5)); /* SW control led0 on. */ pLed->bLedOn = true; } static void SwLedOff(struct adapter *padapter, struct LED_871x *pLed) { - u8 LedCfg; - if (padapter->bSurpriseRemoved || padapter->bDriverStopped) goto exit; - LedCfg = rtw_read8(padapter, REG_LEDCFG2);/* 0x4E */ - - LedCfg &= 0x90; /* Set to software control. */ - rtw_write8(padapter, REG_LEDCFG2, (LedCfg | BIT(3))); - LedCfg = rtw_read8(padapter, REG_MAC_PINMUX_CFG); - LedCfg &= 0xFE; - rtw_write8(padapter, REG_MAC_PINMUX_CFG, LedCfg); + rtw_write8(padapter, REG_LEDCFG2, BIT(5) | BIT(3)); exit: pLed->bLedOn = false; } --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_mlme_ext.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_mlme_ext.c @@ -5667,14 +5667,28 @@ bool get_beacon_valid_bit(struct adapter *adapter) { + int res; + u8 reg; + + res = rtw_read8(adapter, REG_TDECTRL + 2, ®); + if (res) + return false; + /* BIT(16) of REG_TDECTRL = BIT(0) of REG_TDECTRL+2 */ - return BIT(0) & rtw_read8(adapter, REG_TDECTRL + 2); + return BIT(0) & reg; } void clear_beacon_valid_bit(struct adapter *adapter) { + int res; + u8 reg; + + res = rtw_read8(adapter, REG_TDECTRL + 2, ®); + if (res) + return; + /* BIT(16) of REG_TDECTRL = BIT(0) of REG_TDECTRL+2, write 1 to clear, Clear by sw */ - rtw_write8(adapter, REG_TDECTRL + 2, rtw_read8(adapter, REG_TDECTRL + 2) | BIT(0)); + rtw_write8(adapter, REG_TDECTRL + 2, reg | BIT(0)); } /**************************************************************************** @@ -6002,7 +6016,9 @@ static void mlme_join(struct adapter *adapter, int type) { struct mlme_priv *mlmepriv = &adapter->mlmepriv; - u8 retry_limit = 0x30; + u8 retry_limit = 0x30, reg; + u32 reg32; + int res; switch (type) { case 0: @@ -6010,8 +6026,12 @@ /* enable to rx data frame, accept all data frame */ rtw_write16(adapter, REG_RXFLTMAP2, 0xFFFF); + res = rtw_read32(adapter, REG_RCR, ®32); + if (res) + return; + rtw_write32(adapter, REG_RCR, - rtw_read32(adapter, REG_RCR) | RCR_CBSSID_DATA | RCR_CBSSID_BCN); + reg32 | RCR_CBSSID_DATA | RCR_CBSSID_BCN); if (check_fwstate(mlmepriv, WIFI_STATION_STATE)) { retry_limit = 48; @@ -6027,7 +6047,11 @@ case 2: /* sta add event call back */ /* enable update TSF */ - rtw_write8(adapter, REG_BCN_CTRL, rtw_read8(adapter, REG_BCN_CTRL) & (~BIT(4))); + res = rtw_read8(adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapter, REG_BCN_CTRL, reg & (~BIT(4))); if (check_fwstate(mlmepriv, WIFI_ADHOC_STATE | WIFI_ADHOC_MASTER_STATE)) retry_limit = 0x7; @@ -6748,6 +6772,9 @@ static void mlme_disconnect(struct adapter *adapter) { + int res; + u8 reg; + /* Set RCR to not to receive data frame when NO LINK state */ /* reject all data frames */ rtw_write16(adapter, REG_RXFLTMAP2, 0x00); @@ -6756,7 +6783,12 @@ rtw_write8(adapter, REG_DUAL_TSF_RST, (BIT(0) | BIT(1))); /* disable update TSF */ - rtw_write8(adapter, REG_BCN_CTRL, rtw_read8(adapter, REG_BCN_CTRL) | BIT(4)); + + res = rtw_read8(adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapter, REG_BCN_CTRL, reg | BIT(4)); } void mlmeext_sta_del_event_callback(struct adapter *padapter) @@ -6810,14 +6842,20 @@ return ret; } -static void rtl8188e_sreset_linked_status_check(struct adapter *padapter) +static int rtl8188e_sreset_linked_status_check(struct adapter *padapter) { - u32 rx_dma_status = rtw_read32(padapter, REG_RXDMA_STATUS); + u32 rx_dma_status; + int res; + u8 reg; + + res = rtw_read32(padapter, REG_RXDMA_STATUS, &rx_dma_status); + if (res) + return res; if (rx_dma_status != 0x00) rtw_write32(padapter, REG_RXDMA_STATUS, rx_dma_status); - rtw_read8(padapter, REG_FMETHR); + return rtw_read8(padapter, REG_FMETHR, ®); } void linked_status_chk(struct adapter *padapter) @@ -7219,6 +7257,7 @@ struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; struct wlan_bssid_ex *pnetwork = (struct wlan_bssid_ex *)(&pmlmeinfo->network); u8 val8; + int res; if (is_client_associated_to_ap(padapter)) issue_deauth_ex(padapter, pnetwork->MacAddress, WLAN_REASON_DEAUTH_LEAVING, param->deauth_timeout_ms / 100, 100); @@ -7231,7 +7270,10 @@ if (((pmlmeinfo->state & 0x03) == WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->state & 0x03) == WIFI_FW_AP_STATE)) { /* Stop BCN */ - val8 = rtw_read8(padapter, REG_BCN_CTRL); + res = rtw_read8(padapter, REG_BCN_CTRL, &val8); + if (res) + return H2C_DROPPED; + rtw_write8(padapter, REG_BCN_CTRL, val8 & (~(EN_BCN_FUNCTION | EN_TXBCN_RPT))); } --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_pwrctrl.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_pwrctrl.c @@ -229,6 +229,9 @@ static bool lps_rf_on(struct adapter *adapter) { + int res; + u32 reg; + /* When we halt NIC, we should check if FW LPS is leave. */ if (adapter->pwrctrlpriv.rf_pwrstate == rf_off) { /* If it is in HW/SW Radio OFF or IPS state, we do not check Fw LPS Leave, */ @@ -236,7 +239,11 @@ return true; } - if (rtw_read32(adapter, REG_RCR) & 0x00070000) + res = rtw_read32(adapter, REG_RCR, ®); + if (res) + return false; + + if (reg & 0x00070000) return false; return true; --- linux-5.19.0.orig/drivers/staging/r8188eu/core/rtw_wlan_util.c +++ linux-5.19.0/drivers/staging/r8188eu/core/rtw_wlan_util.c @@ -279,8 +279,13 @@ void Set_MSR(struct adapter *padapter, u8 type) { u8 val8; + int res; - val8 = rtw_read8(padapter, MSR) & 0x0c; + res = rtw_read8(padapter, MSR, &val8); + if (res) + return; + + val8 &= 0x0c; val8 |= type; rtw_write8(padapter, MSR, val8); } @@ -505,7 +510,11 @@ static void set_acm_ctrl(struct adapter *adapter, u8 acm_mask) { - u8 acmctrl = rtw_read8(adapter, REG_ACMHWCTRL); + u8 acmctrl; + int res = rtw_read8(adapter, REG_ACMHWCTRL, &acmctrl); + + if (res) + return; if (acm_mask > 1) acmctrl = acmctrl | 0x1; @@ -765,6 +774,7 @@ static void set_min_ampdu_spacing(struct adapter *adapter, u8 spacing) { u8 sec_spacing; + int res; if (spacing <= 7) { switch (adapter->securitypriv.dot11PrivacyAlgrthm) { @@ -786,8 +796,12 @@ if (spacing < sec_spacing) spacing = sec_spacing; + res = rtw_read8(adapter, REG_AMPDU_MIN_SPACE, &sec_spacing); + if (res) + return; + rtw_write8(adapter, REG_AMPDU_MIN_SPACE, - (rtw_read8(adapter, REG_AMPDU_MIN_SPACE) & 0xf8) | spacing); + (sec_spacing & 0xf8) | spacing); } } --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/Hal8188ERateAdaptive.c @@ -279,6 +279,7 @@ { /* Wilson 2011/10/26 */ u32 MaskFromReg; s8 i; + int res; switch (pRaInfo->RateID) { case RATR_INX_WIRELESS_NGB: @@ -303,19 +304,31 @@ pRaInfo->RAUseRate = (pRaInfo->RateMask) & 0x0000000d; break; case 12: - MaskFromReg = rtw_read32(dm_odm->Adapter, REG_ARFR0); + res = rtw_read32(dm_odm->Adapter, REG_ARFR0, &MaskFromReg); + if (res) + return res; + pRaInfo->RAUseRate = (pRaInfo->RateMask) & MaskFromReg; break; case 13: - MaskFromReg = rtw_read32(dm_odm->Adapter, REG_ARFR1); + res = rtw_read32(dm_odm->Adapter, REG_ARFR1, &MaskFromReg); + if (res) + return res; + pRaInfo->RAUseRate = (pRaInfo->RateMask) & MaskFromReg; break; case 14: - MaskFromReg = rtw_read32(dm_odm->Adapter, REG_ARFR2); + res = rtw_read32(dm_odm->Adapter, REG_ARFR2, &MaskFromReg); + if (res) + return res; + pRaInfo->RAUseRate = (pRaInfo->RateMask) & MaskFromReg; break; case 15: - MaskFromReg = rtw_read32(dm_odm->Adapter, REG_ARFR3); + res = rtw_read32(dm_odm->Adapter, REG_ARFR3, &MaskFromReg); + if (res) + return res; + pRaInfo->RAUseRate = (pRaInfo->RateMask) & MaskFromReg; break; default: --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/HalPhyRf_8188e.c @@ -463,6 +463,7 @@ } } +/* FIXME: return an error to caller */ static void _PHY_SaveMACRegisters( struct adapter *adapt, u32 *MACReg, @@ -470,11 +471,20 @@ ) { u32 i; + int res; - for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) - MACBackup[i] = rtw_read8(adapt, MACReg[i]); + for (i = 0; i < (IQK_MAC_REG_NUM - 1); i++) { + u8 reg; + + res = rtw_read8(adapt, MACReg[i], ®); + if (res) + return; + + MACBackup[i] = reg; + } - MACBackup[i] = rtw_read32(adapt, MACReg[i]); + res = rtw_read32(adapt, MACReg[i], MACBackup + i); + (void)res; } static void reload_adda_reg(struct adapter *adapt, u32 *ADDAReg, u32 *ADDABackup, u32 RegiesterNum) @@ -739,9 +749,12 @@ { u8 tmpreg; u32 RF_Amode = 0, LC_Cal; + int res; /* Check continuous TX and Packet TX */ - tmpreg = rtw_read8(adapt, 0xd03); + res = rtw_read8(adapt, 0xd03, &tmpreg); + if (res) + return; if ((tmpreg & 0x70) != 0) /* Deal with contisuous TX case */ rtw_write8(adapt, 0xd03, tmpreg & 0x8F); /* disable all continuous TX */ --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/HalPwrSeqCmd.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/HalPwrSeqCmd.c @@ -12,6 +12,7 @@ u32 offset = 0; u32 poll_count = 0; /* polling autoload done. */ u32 max_poll_count = 5000; + int res; do { pwrcfgcmd = pwrseqcmd[aryidx]; @@ -21,7 +22,9 @@ offset = GET_PWR_CFG_OFFSET(pwrcfgcmd); /* Read the value from system register */ - value = rtw_read8(padapter, offset); + res = rtw_read8(padapter, offset, &value); + if (res) + return false; value &= ~(GET_PWR_CFG_MASK(pwrcfgcmd)); value |= (GET_PWR_CFG_VALUE(pwrcfgcmd) & GET_PWR_CFG_MASK(pwrcfgcmd)); @@ -33,7 +36,9 @@ poll_bit = false; offset = GET_PWR_CFG_OFFSET(pwrcfgcmd); do { - value = rtw_read8(padapter, offset); + res = rtw_read8(padapter, offset, &value); + if (res) + return false; value &= GET_PWR_CFG_MASK(pwrcfgcmd); if (value == (GET_PWR_CFG_VALUE(pwrcfgcmd) & GET_PWR_CFG_MASK(pwrcfgcmd))) --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/hal_com.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/hal_com.c @@ -303,7 +303,9 @@ if (!buf) goto exit; - trigger = rtw_read8(adapter, REG_C2HEVT_CLEAR); + ret = rtw_read8(adapter, REG_C2HEVT_CLEAR, &trigger); + if (ret) + return _FAIL; if (trigger == C2H_EVT_HOST_CLOSE) goto exit; /* Not ready */ @@ -314,13 +316,26 @@ memset(c2h_evt, 0, 16); - *buf = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL); - *(buf + 1) = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL + 1); - + ret = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL, buf); + if (ret) { + ret = _FAIL; + goto clear_evt; + } + + ret = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL + 1, buf + 1); + if (ret) { + ret = _FAIL; + goto clear_evt; + } /* Read the content */ - for (i = 0; i < c2h_evt->plen; i++) - c2h_evt->payload[i] = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL + - sizeof(*c2h_evt) + i); + for (i = 0; i < c2h_evt->plen; i++) { + ret = rtw_read8(adapter, REG_C2HEVT_MSG_NORMAL + + sizeof(*c2h_evt) + i, c2h_evt->payload + i); + if (ret) { + ret = _FAIL; + goto clear_evt; + } + } ret = _SUCCESS; --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/rtl8188e_cmd.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/rtl8188e_cmd.c @@ -18,13 +18,18 @@ static u8 _is_fw_read_cmd_down(struct adapter *adapt, u8 msgbox_num) { - u8 read_down = false; + u8 read_down = false, reg; int retry_cnts = 100; + int res; u8 valid; do { - valid = rtw_read8(adapt, REG_HMETFR) & BIT(msgbox_num); + res = rtw_read8(adapt, REG_HMETFR, ®); + if (res) + continue; + + valid = reg & BIT(msgbox_num); if (0 == valid) read_down = true; } while ((!read_down) && (retry_cnts--)); @@ -533,6 +538,8 @@ bool bcn_valid = false; u8 DLBcnCount = 0; u32 poll = 0; + u8 reg; + int res; if (mstatus == 1) { /* We should set AID, correct TSF, HW seq enable before set JoinBssReport to Fw in 88/92C. */ @@ -547,8 +554,17 @@ /* Disable Hw protection for a time which revserd for Hw sending beacon. */ /* Fix download reserved page packet fail that access collision with the protection time. */ /* 2010.05.11. Added by tynli. */ - rtw_write8(adapt, REG_BCN_CTRL, rtw_read8(adapt, REG_BCN_CTRL) & (~BIT(3))); - rtw_write8(adapt, REG_BCN_CTRL, rtw_read8(adapt, REG_BCN_CTRL) | BIT(4)); + res = rtw_read8(adapt, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapt, REG_BCN_CTRL, reg & (~BIT(3))); + + res = rtw_read8(adapt, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapt, REG_BCN_CTRL, reg | BIT(4)); if (haldata->RegFwHwTxQCtrl & BIT(6)) bSendBeacon = true; @@ -581,8 +597,17 @@ /* */ /* Enable Bcn */ - rtw_write8(adapt, REG_BCN_CTRL, rtw_read8(adapt, REG_BCN_CTRL) | BIT(3)); - rtw_write8(adapt, REG_BCN_CTRL, rtw_read8(adapt, REG_BCN_CTRL) & (~BIT(4))); + res = rtw_read8(adapt, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapt, REG_BCN_CTRL, reg | BIT(3)); + + res = rtw_read8(adapt, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(adapt, REG_BCN_CTRL, reg & (~BIT(4))); /* To make sure that if there exists an adapter which would like to send beacon. */ /* If exists, the origianl value of 0x422[6] will be 1, we should check this to */ --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/rtl8188e_dm.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/rtl8188e_dm.c @@ -12,8 +12,12 @@ static void dm_InitGPIOSetting(struct adapter *Adapter) { u8 tmp1byte; + int res; + + res = rtw_read8(Adapter, REG_GPIO_MUXCFG, &tmp1byte); + if (res) + return; - tmp1byte = rtw_read8(Adapter, REG_GPIO_MUXCFG); tmp1byte &= (GPIOSEL_GPIO | ~GPIOSEL_ENBT); rtw_write8(Adapter, REG_GPIO_MUXCFG, tmp1byte); --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/rtl8188e_hal_init.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/rtl8188e_hal_init.c @@ -13,10 +13,14 @@ static void iol_mode_enable(struct adapter *padapter, u8 enable) { u8 reg_0xf0 = 0; + int res; if (enable) { /* Enable initial offload */ - reg_0xf0 = rtw_read8(padapter, REG_SYS_CFG); + res = rtw_read8(padapter, REG_SYS_CFG, ®_0xf0); + if (res) + return; + rtw_write8(padapter, REG_SYS_CFG, reg_0xf0 | SW_OFFLOAD_EN); if (!padapter->bFWReady) @@ -24,7 +28,10 @@ } else { /* disable initial offload */ - reg_0xf0 = rtw_read8(padapter, REG_SYS_CFG); + res = rtw_read8(padapter, REG_SYS_CFG, ®_0xf0); + if (res) + return; + rtw_write8(padapter, REG_SYS_CFG, reg_0xf0 & ~SW_OFFLOAD_EN); } } @@ -34,17 +41,31 @@ s32 status = _FAIL; u8 reg_0x88 = 0; unsigned long timeout; + int res; control = control & 0x0f; - reg_0x88 = rtw_read8(padapter, REG_HMEBOX_E0); + res = rtw_read8(padapter, REG_HMEBOX_E0, ®_0x88); + if (res) + return _FAIL; + rtw_write8(padapter, REG_HMEBOX_E0, reg_0x88 | control); timeout = jiffies + msecs_to_jiffies(1000); - while ((reg_0x88 = rtw_read8(padapter, REG_HMEBOX_E0)) & control && - time_before(jiffies, timeout)) - ; - reg_0x88 = rtw_read8(padapter, REG_HMEBOX_E0); + do { + res = rtw_read8(padapter, REG_HMEBOX_E0, ®_0x88); + if (res) + continue; + + if (!(reg_0x88 & control)) + break; + + } while (time_before(jiffies, timeout)); + + res = rtw_read8(padapter, REG_HMEBOX_E0, ®_0x88); + if (res) + return _FAIL; + status = (reg_0x88 & control) ? _FAIL : _SUCCESS; if (reg_0x88 & control << 4) status = _FAIL; @@ -179,7 +200,8 @@ kfree(eFuseWord); } -static void efuse_read_phymap_from_txpktbuf( +/* FIXME: add error handling in callers */ +static int efuse_read_phymap_from_txpktbuf( struct adapter *adapter, int bcnhead, /* beacon head, where FW store len(2-byte) and efuse physical map. */ u8 *content, /* buffer to store efuse physical map */ @@ -190,13 +212,19 @@ u16 dbg_addr = 0; __le32 lo32 = 0, hi32 = 0; u16 len = 0, count = 0; - int i = 0; + int i = 0, res; u16 limit = *size; - + u8 reg; u8 *pos = content; + u32 reg32; - if (bcnhead < 0) /* if not valid */ - bcnhead = rtw_read8(adapter, REG_TDECTRL + 1); + if (bcnhead < 0) { /* if not valid */ + res = rtw_read8(adapter, REG_TDECTRL + 1, ®); + if (res) + return res; + + bcnhead = reg; + } rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, TXPKT_BUF_SELECT); @@ -207,19 +235,40 @@ rtw_write8(adapter, REG_TXPKTBUF_DBG, 0); timeout = jiffies + msecs_to_jiffies(1000); - while (!rtw_read8(adapter, REG_TXPKTBUF_DBG) && time_before(jiffies, timeout)) + do { + res = rtw_read8(adapter, REG_TXPKTBUF_DBG, ®); + if (res) + continue; + + if (reg) + break; + rtw_usleep_os(100); + } while (time_before(jiffies, timeout)); /* data from EEPROM needs to be in LE */ - lo32 = cpu_to_le32(rtw_read32(adapter, REG_PKTBUF_DBG_DATA_L)); - hi32 = cpu_to_le32(rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H)); + res = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_L, ®32); + if (res) + return res; + + lo32 = cpu_to_le32(reg32); + + res = rtw_read32(adapter, REG_PKTBUF_DBG_DATA_H, ®32); + if (res) + return res; + + hi32 = cpu_to_le32(reg32); if (i == 0) { + u16 reg; + /* Although lenc is only used in a debug statement, * do not remove it as the rtw_read16() call consumes * 2 bytes from the EEPROM source. */ - rtw_read16(adapter, REG_PKTBUF_DBG_DATA_L); + res = rtw_read16(adapter, REG_PKTBUF_DBG_DATA_L, ®); + if (res) + return res; len = le32_to_cpu(lo32) & 0x0000ffff; @@ -246,6 +295,8 @@ } rtw_write8(adapter, REG_PKT_BUFF_ACCESS_CTRL, DISABLE_TRXPKT_BUF_ACCESS); *size = count; + + return 0; } static s32 iol_read_efuse(struct adapter *padapter, u8 txpktbuf_bndy, u16 offset, u16 size_byte, u8 *logical_map) @@ -321,25 +372,35 @@ void rtl8188e_EfusePowerSwitch(struct adapter *pAdapter, u8 PwrState) { u16 tmpV16; + int res; if (PwrState) { rtw_write8(pAdapter, REG_EFUSE_ACCESS, EFUSE_ACCESS_ON); /* 1.2V Power: From VDDON with Power Cut(0x0000h[15]), defualt valid */ - tmpV16 = rtw_read16(pAdapter, REG_SYS_ISO_CTRL); + res = rtw_read16(pAdapter, REG_SYS_ISO_CTRL, &tmpV16); + if (res) + return; + if (!(tmpV16 & PWC_EV12V)) { tmpV16 |= PWC_EV12V; rtw_write16(pAdapter, REG_SYS_ISO_CTRL, tmpV16); } /* Reset: 0x0000h[28], default valid */ - tmpV16 = rtw_read16(pAdapter, REG_SYS_FUNC_EN); + res = rtw_read16(pAdapter, REG_SYS_FUNC_EN, &tmpV16); + if (res) + return; + if (!(tmpV16 & FEN_ELDR)) { tmpV16 |= FEN_ELDR; rtw_write16(pAdapter, REG_SYS_FUNC_EN, tmpV16); } /* Clock: Gated(0x0008h[5]) 8M(0x0008h[1]) clock from ANA, default valid */ - tmpV16 = rtw_read16(pAdapter, REG_SYS_CLKR); + res = rtw_read16(pAdapter, REG_SYS_CLKR, &tmpV16); + if (res) + return; + if ((!(tmpV16 & LOADER_CLK_EN)) || (!(tmpV16 & ANA8M))) { tmpV16 |= (LOADER_CLK_EN | ANA8M); rtw_write16(pAdapter, REG_SYS_CLKR, tmpV16); @@ -497,8 +558,12 @@ u32 value32; struct HAL_VERSION ChipVersion; struct hal_data_8188e *pHalData = &padapter->haldata; + int res; + + res = rtw_read32(padapter, REG_SYS_CFG, &value32); + if (res) + return; - value32 = rtw_read32(padapter, REG_SYS_CFG); ChipVersion.ChipType = ((value32 & RTL_ID) ? TEST_CHIP : NORMAL_CHIP); ChipVersion.VendorType = ((value32 & VENDOR_ID) ? CHIP_VENDOR_UMC : CHIP_VENDOR_TSMC); @@ -525,10 +590,17 @@ void hal_notch_filter_8188e(struct adapter *adapter, bool enable) { + int res; + u8 reg; + + res = rtw_read8(adapter, rOFDM0_RxDSP + 1, ®); + if (res) + return; + if (enable) - rtw_write8(adapter, rOFDM0_RxDSP + 1, rtw_read8(adapter, rOFDM0_RxDSP + 1) | BIT(1)); + rtw_write8(adapter, rOFDM0_RxDSP + 1, reg | BIT(1)); else - rtw_write8(adapter, rOFDM0_RxDSP + 1, rtw_read8(adapter, rOFDM0_RxDSP + 1) & ~BIT(1)); + rtw_write8(adapter, rOFDM0_RxDSP + 1, reg & ~BIT(1)); } /* */ @@ -538,26 +610,24 @@ /* */ static s32 _LLTWrite(struct adapter *padapter, u32 address, u32 data) { - s32 status = _SUCCESS; - s32 count = 0; + s32 count; u32 value = _LLT_INIT_ADDR(address) | _LLT_INIT_DATA(data) | _LLT_OP(_LLT_WRITE_ACCESS); u16 LLTReg = REG_LLT_INIT; + int res; rtw_write32(padapter, LLTReg, value); /* polling */ - do { - value = rtw_read32(padapter, LLTReg); - if (_LLT_NO_ACTIVE == _LLT_OP_VALUE(value)) - break; + for (count = 0; count <= POLLING_LLT_THRESHOLD; count++) { + res = rtw_read32(padapter, LLTReg, &value); + if (res) + continue; - if (count > POLLING_LLT_THRESHOLD) { - status = _FAIL; + if (_LLT_NO_ACTIVE == _LLT_OP_VALUE(value)) break; - } - } while (count++); + } - return status; + return count > POLLING_LLT_THRESHOLD ? _FAIL : _SUCCESS; } s32 InitLLTTable(struct adapter *padapter, u8 txpktbuf_bndy) --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/rtl8188e_phycfg.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/rtl8188e_phycfg.c @@ -56,8 +56,12 @@ ) { u32 ReturnValue = 0, OriginalValue, BitShift; + int res; + + res = rtw_read32(Adapter, RegAddr, &OriginalValue); + if (res) + return 0; - OriginalValue = rtw_read32(Adapter, RegAddr); BitShift = phy_CalculateBitShift(BitMask); ReturnValue = (OriginalValue & BitMask) >> BitShift; return ReturnValue; @@ -84,9 +88,13 @@ void rtl8188e_PHY_SetBBReg(struct adapter *Adapter, u32 RegAddr, u32 BitMask, u32 Data) { u32 OriginalValue, BitShift; + int res; if (BitMask != bMaskDWord) { /* if not "double word" write */ - OriginalValue = rtw_read32(Adapter, RegAddr); + res = rtw_read32(Adapter, RegAddr, &OriginalValue); + if (res) + return; + BitShift = phy_CalculateBitShift(BitMask); Data = ((OriginalValue & (~BitMask)) | (Data << BitShift)); } @@ -484,13 +492,17 @@ { int rtStatus = _SUCCESS; struct hal_data_8188e *pHalData = &Adapter->haldata; - u32 RegVal; + u16 RegVal; u8 CrystalCap; + int res; phy_InitBBRFRegisterDefinition(Adapter); /* Enable BB and RF */ - RegVal = rtw_read16(Adapter, REG_SYS_FUNC_EN); + res = rtw_read16(Adapter, REG_SYS_FUNC_EN, &RegVal); + if (res) + return _FAIL; + rtw_write16(Adapter, REG_SYS_FUNC_EN, (u16)(RegVal | BIT(13) | BIT(0) | BIT(1))); /* 20090923 Joseph: Advised by Steven and Jenyu. Power sequence before init RF. */ @@ -594,6 +606,7 @@ struct hal_data_8188e *pHalData = &Adapter->haldata; u8 regBwOpMode; u8 regRRSR_RSC; + int res; if (Adapter->bDriverStopped) return; @@ -602,8 +615,13 @@ /* 3<1>Set MAC register */ /* 3 */ - regBwOpMode = rtw_read8(Adapter, REG_BWOPMODE); - regRRSR_RSC = rtw_read8(Adapter, REG_RRSR + 2); + res = rtw_read8(Adapter, REG_BWOPMODE, ®BwOpMode); + if (res) + return; + + res = rtw_read8(Adapter, REG_RRSR + 2, ®RRSR_RSC); + if (res) + return; switch (pHalData->CurrentChannelBW) { case HT_CHANNEL_WIDTH_20: --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/usb_halinit.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/usb_halinit.c @@ -52,6 +52,8 @@ u32 rtl8188eu_InitPowerOn(struct adapter *adapt) { u16 value16; + int res; + /* HW Power on sequence */ struct hal_data_8188e *haldata = &adapt->haldata; if (haldata->bMacPwrCtrlOn) @@ -65,7 +67,10 @@ rtw_write16(adapt, REG_CR, 0x00); /* suggseted by zhouzhou, by page, 20111230 */ /* Enable MAC DMA/WMAC/SCHEDULE/SEC block */ - value16 = rtw_read16(adapt, REG_CR); + res = rtw_read16(adapt, REG_CR, &value16); + if (res) + return _FAIL; + value16 |= (HCI_TXDMA_EN | HCI_RXDMA_EN | TXDMA_EN | RXDMA_EN | PROTOCOL_EN | SCHEDULE_EN | ENSEC | CALTMR_EN); /* for SDIO - Set CR bit10 to enable 32k calibration. Suggested by SD1 Gimmy. Added by tynli. 2011.08.31. */ @@ -81,6 +86,7 @@ { u32 imr, imr_ex; u8 usb_opt; + int res; /* HISR write one to clear */ rtw_write32(Adapter, REG_HISR_88E, 0xFFFFFFFF); @@ -94,7 +100,9 @@ /* REG_USB_SPECIAL_OPTION - BIT(4) */ /* 0; Use interrupt endpoint to upload interrupt pkt */ /* 1; Use bulk endpoint to upload interrupt pkt, */ - usb_opt = rtw_read8(Adapter, REG_USB_SPECIAL_OPTION); + res = rtw_read8(Adapter, REG_USB_SPECIAL_OPTION, &usb_opt); + if (res) + return; if (adapter_to_dvobj(Adapter)->pusbdev->speed == USB_SPEED_HIGH) usb_opt = usb_opt | (INT_BULK_SEL); @@ -163,7 +171,14 @@ u16 bkQ, u16 viQ, u16 voQ, u16 mgtQ, u16 hiQ) { - u16 value16 = (rtw_read16(Adapter, REG_TRXDMA_CTRL) & 0x7); + u16 value16; + int res; + + res = rtw_read16(Adapter, REG_TRXDMA_CTRL, &value16); + if (res) + return; + + value16 &= 0x7; value16 |= _TXDMA_BEQ_MAP(beQ) | _TXDMA_BKQ_MAP(bkQ) | _TXDMA_VIQ_MAP(viQ) | _TXDMA_VOQ_MAP(voQ) | @@ -282,8 +297,12 @@ static void _InitNetworkType(struct adapter *Adapter) { u32 value32; + int res; + + res = rtw_read32(Adapter, REG_CR, &value32); + if (res) + return; - value32 = rtw_read32(Adapter, REG_CR); /* TODO: use the other function to set network type */ value32 = (value32 & ~MASK_NETTYPE) | _NETTYPE(NT_LINK_AP); @@ -323,9 +342,13 @@ { u16 value16; u32 value32; + int res; /* Response Rate Set */ - value32 = rtw_read32(Adapter, REG_RRSR); + res = rtw_read32(Adapter, REG_RRSR, &value32); + if (res) + return; + value32 &= ~RATE_BITMAP_ALL; value32 |= RATE_RRSR_CCK_ONLY_1M; rtw_write32(Adapter, REG_RRSR, value32); @@ -363,8 +386,12 @@ static void _InitRetryFunction(struct adapter *Adapter) { u8 value8; + int res; + + res = rtw_read8(Adapter, REG_FWHW_TXQ_CTRL, &value8); + if (res) + return; - value8 = rtw_read8(Adapter, REG_FWHW_TXQ_CTRL); value8 |= EN_AMPDU_RTY_NEW; rtw_write8(Adapter, REG_FWHW_TXQ_CTRL, value8); @@ -390,11 +417,15 @@ static void usb_AggSettingTxUpdate(struct adapter *Adapter) { u32 value32; + int res; if (Adapter->registrypriv.wifi_spec) return; - value32 = rtw_read32(Adapter, REG_TDECTRL); + res = rtw_read32(Adapter, REG_TDECTRL, &value32); + if (res) + return; + value32 = value32 & ~(BLK_DESC_NUM_MASK << BLK_DESC_NUM_SHIFT); value32 |= ((USB_TXAGG_DESC_NUM & BLK_DESC_NUM_MASK) << BLK_DESC_NUM_SHIFT); @@ -423,9 +454,15 @@ { u8 valueDMA; u8 valueUSB; + int res; - valueDMA = rtw_read8(Adapter, REG_TRXDMA_CTRL); - valueUSB = rtw_read8(Adapter, REG_USB_SPECIAL_OPTION); + res = rtw_read8(Adapter, REG_TRXDMA_CTRL, &valueDMA); + if (res) + return; + + res = rtw_read8(Adapter, REG_USB_SPECIAL_OPTION, &valueUSB); + if (res) + return; valueDMA |= RXDMA_AGG_EN; valueUSB &= ~USB_AGG_EN; @@ -446,9 +483,11 @@ usb_AggSettingRxUpdate(Adapter); } -static void _InitBeaconParameters(struct adapter *Adapter) +/* FIXME: add error handling in callers */ +static int _InitBeaconParameters(struct adapter *Adapter) { struct hal_data_8188e *haldata = &Adapter->haldata; + int res; rtw_write16(Adapter, REG_BCN_CTRL, 0x1010); @@ -461,9 +500,19 @@ /* beacause test chip does not contension before sending beacon. by tynli. 2009.11.03 */ rtw_write16(Adapter, REG_BCNTCFG, 0x660F); - haldata->RegFwHwTxQCtrl = rtw_read8(Adapter, REG_FWHW_TXQ_CTRL + 2); - haldata->RegReg542 = rtw_read8(Adapter, REG_TBTT_PROHIBIT + 2); - haldata->RegCR_1 = rtw_read8(Adapter, REG_CR + 1); + res = rtw_read8(Adapter, REG_FWHW_TXQ_CTRL + 2, &haldata->RegFwHwTxQCtrl); + if (res) + return res; + + res = rtw_read8(Adapter, REG_TBTT_PROHIBIT + 2, &haldata->RegReg542); + if (res) + return res; + + res = rtw_read8(Adapter, REG_CR + 1, &haldata->RegCR_1); + if (res) + return res; + + return 0; } static void _BeaconFunctionEnable(struct adapter *Adapter, @@ -484,11 +533,17 @@ static void _InitAntenna_Selection(struct adapter *Adapter) { struct hal_data_8188e *haldata = &Adapter->haldata; + int res; + u32 reg; if (haldata->AntDivCfg == 0) return; - rtw_write32(Adapter, REG_LEDCFG0, rtw_read32(Adapter, REG_LEDCFG0) | BIT(23)); + res = rtw_read32(Adapter, REG_LEDCFG0, ®); + if (res) + return; + + rtw_write32(Adapter, REG_LEDCFG0, reg | BIT(23)); rtl8188e_PHY_SetBBReg(Adapter, rFPGA0_XAB_RFParameter, BIT(13), 0x01); if (rtl8188e_PHY_QueryBBReg(Adapter, rFPGA0_XA_RFInterfaceOE, 0x300) == Antenna_A) @@ -514,9 +569,11 @@ u16 value16; u8 txpktbuf_bndy; u32 status = _SUCCESS; + int res; struct hal_data_8188e *haldata = &Adapter->haldata; struct pwrctrl_priv *pwrctrlpriv = &Adapter->pwrctrlpriv; struct registry_priv *pregistrypriv = &Adapter->registrypriv; + u32 reg; if (Adapter->pwrctrlpriv.bkeepfwalive) { if (haldata->odmpriv.RFCalibrateInfo.bIQKInitialized) { @@ -614,13 +671,19 @@ /* Hw bug which Hw initials RxFF boundary size to a value which is larger than the real Rx buffer size in 88E. */ /* */ /* Enable MACTXEN/MACRXEN block */ - value16 = rtw_read16(Adapter, REG_CR); + res = rtw_read16(Adapter, REG_CR, &value16); + if (res) + return _FAIL; + value16 |= (MACTXEN | MACRXEN); rtw_write8(Adapter, REG_CR, value16); /* Enable TX Report */ /* Enable Tx Report Timer */ - value8 = rtw_read8(Adapter, REG_TX_RPT_CTRL); + res = rtw_read8(Adapter, REG_TX_RPT_CTRL, &value8); + if (res) + return _FAIL; + rtw_write8(Adapter, REG_TX_RPT_CTRL, (value8 | BIT(1) | BIT(0))); /* Set MAX RPT MACID */ rtw_write8(Adapter, REG_TX_RPT_CTRL + 1, 2);/* FOR sta mode ,0: bc/mc ,1:AP */ @@ -684,7 +747,11 @@ rtw_write16(Adapter, REG_TX_RPT_TIME, 0x3DF0); /* enable tx DMA to drop the redundate data of packet */ - rtw_write16(Adapter, REG_TXDMA_OFFSET_CHK, (rtw_read16(Adapter, REG_TXDMA_OFFSET_CHK) | DROP_DATA_EN)); + res = rtw_read16(Adapter, REG_TXDMA_OFFSET_CHK, &value16); + if (res) + return _FAIL; + + rtw_write16(Adapter, REG_TXDMA_OFFSET_CHK, (value16 | DROP_DATA_EN)); /* 2010/08/26 MH Merge from 8192CE. */ if (pwrctrlpriv->rf_pwrstate == rf_on) { @@ -704,7 +771,11 @@ rtw_write8(Adapter, REG_USB_HRPWM, 0); /* ack for xmit mgmt frames. */ - rtw_write32(Adapter, REG_FWHW_TXQ_CTRL, rtw_read32(Adapter, REG_FWHW_TXQ_CTRL) | BIT(12)); + res = rtw_read32(Adapter, REG_FWHW_TXQ_CTRL, ®); + if (res) + return _FAIL; + + rtw_write32(Adapter, REG_FWHW_TXQ_CTRL, reg | BIT(12)); exit: return status; @@ -714,9 +785,13 @@ { u8 val8; struct hal_data_8188e *haldata = &Adapter->haldata; + int res; /* Stop Tx Report Timer. 0x4EC[Bit1]=b'0 */ - val8 = rtw_read8(Adapter, REG_TX_RPT_CTRL); + res = rtw_read8(Adapter, REG_TX_RPT_CTRL, &val8); + if (res) + return; + rtw_write8(Adapter, REG_TX_RPT_CTRL, val8 & (~BIT(1))); /* stop rx */ @@ -727,10 +802,16 @@ /* 2. 0x1F[7:0] = 0 turn off RF */ - val8 = rtw_read8(Adapter, REG_MCUFWDL); + res = rtw_read8(Adapter, REG_MCUFWDL, &val8); + if (res) + return; + if ((val8 & RAM_DL_SEL) && Adapter->bFWReady) { /* 8051 RAM code */ /* Reset MCU 0x2[10]=0. */ - val8 = rtw_read8(Adapter, REG_SYS_FUNC_EN + 1); + res = rtw_read8(Adapter, REG_SYS_FUNC_EN + 1, &val8); + if (res) + return; + val8 &= ~BIT(2); /* 0x2[10], FEN_CPUEN */ rtw_write8(Adapter, REG_SYS_FUNC_EN + 1, val8); } @@ -740,26 +821,45 @@ /* YJ,add,111212 */ /* Disable 32k */ - val8 = rtw_read8(Adapter, REG_32K_CTRL); + res = rtw_read8(Adapter, REG_32K_CTRL, &val8); + if (res) + return; + rtw_write8(Adapter, REG_32K_CTRL, val8 & (~BIT(0))); /* Card disable power action flow */ HalPwrSeqCmdParsing(Adapter, Rtl8188E_NIC_DISABLE_FLOW); /* Reset MCU IO Wrapper */ - val8 = rtw_read8(Adapter, REG_RSV_CTRL + 1); + res = rtw_read8(Adapter, REG_RSV_CTRL + 1, &val8); + if (res) + return; + rtw_write8(Adapter, REG_RSV_CTRL + 1, (val8 & (~BIT(3)))); - val8 = rtw_read8(Adapter, REG_RSV_CTRL + 1); + + res = rtw_read8(Adapter, REG_RSV_CTRL + 1, &val8); + if (res) + return; + rtw_write8(Adapter, REG_RSV_CTRL + 1, val8 | BIT(3)); /* YJ,test add, 111207. For Power Consumption. */ - val8 = rtw_read8(Adapter, GPIO_IN); + res = rtw_read8(Adapter, GPIO_IN, &val8); + if (res) + return; + rtw_write8(Adapter, GPIO_OUT, val8); rtw_write8(Adapter, GPIO_IO_SEL, 0xFF);/* Reg0x46 */ - val8 = rtw_read8(Adapter, REG_GPIO_IO_SEL); + res = rtw_read8(Adapter, REG_GPIO_IO_SEL, &val8); + if (res) + return; + rtw_write8(Adapter, REG_GPIO_IO_SEL, (val8 << 4)); - val8 = rtw_read8(Adapter, REG_GPIO_IO_SEL + 1); + res = rtw_read8(Adapter, REG_GPIO_IO_SEL + 1, &val8); + if (res) + return; + rtw_write8(Adapter, REG_GPIO_IO_SEL + 1, val8 | 0x0F);/* Reg0x43 */ rtw_write32(Adapter, REG_BB_PAD_CTRL, 0x00080808);/* set LNA ,TRSW,EX_PA Pin to output mode */ haldata->bMacPwrCtrlOn = false; @@ -830,9 +930,13 @@ struct eeprom_priv *eeprom = &Adapter->eeprompriv; struct led_priv *ledpriv = &Adapter->ledpriv; u8 eeValue; + int res; /* check system boot selection */ - eeValue = rtw_read8(Adapter, REG_9346CR); + res = rtw_read8(Adapter, REG_9346CR, &eeValue); + if (res) + return; + eeprom->EepromOrEfuse = (eeValue & BOOT_FROM_EEPROM); eeprom->bautoload_fail_flag = !(eeValue & EEPROM_EN); @@ -887,12 +991,21 @@ { u8 val8; u8 mode = *((u8 *)val); + int res; /* disable Port0 TSF update */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) | BIT(4)); + res = rtw_read8(Adapter, REG_BCN_CTRL, &val8); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, val8 | BIT(4)); /* set net_type */ - val8 = rtw_read8(Adapter, MSR) & 0x0c; + res = rtw_read8(Adapter, MSR, &val8); + if (res) + return; + + val8 &= 0x0c; val8 |= mode; rtw_write8(Adapter, MSR, val8); @@ -927,14 +1040,22 @@ rtw_write8(Adapter, REG_DUAL_TSF_RST, BIT(0)); /* BIT(3) - If set 0, hw will clr bcnq when tx becon ok/fail or port 0 */ - rtw_write8(Adapter, REG_MBID_NUM, rtw_read8(Adapter, REG_MBID_NUM) | BIT(3) | BIT(4)); + res = rtw_read8(Adapter, REG_MBID_NUM, &val8); + if (res) + return; + + rtw_write8(Adapter, REG_MBID_NUM, val8 | BIT(3) | BIT(4)); /* enable BCN0 Function for if1 */ /* don't enable update TSF0 for if1 (due to TSF update when beacon/probe rsp are received) */ rtw_write8(Adapter, REG_BCN_CTRL, (DIS_TSF_UDT0_NORMAL_CHIP | EN_BCN_FUNCTION | BIT(1))); /* dis BCN1 ATIM WND if if2 is station */ - rtw_write8(Adapter, REG_BCN_CTRL_1, rtw_read8(Adapter, REG_BCN_CTRL_1) | BIT(0)); + res = rtw_read8(Adapter, REG_BCN_CTRL_1, &val8); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL_1, val8 | BIT(0)); } } @@ -943,6 +1064,8 @@ struct hal_data_8188e *haldata = &Adapter->haldata; struct dm_priv *pdmpriv = &haldata->dmpriv; struct odm_dm_struct *podmpriv = &haldata->odmpriv; + u8 reg; + int res; switch (variable) { case HW_VAR_SET_OPMODE: @@ -970,7 +1093,11 @@ /* Set RRSR rate table. */ rtw_write8(Adapter, REG_RRSR, BrateCfg & 0xff); rtw_write8(Adapter, REG_RRSR + 1, (BrateCfg >> 8) & 0xff); - rtw_write8(Adapter, REG_RRSR + 2, rtw_read8(Adapter, REG_RRSR + 2) & 0xf0); + res = rtw_read8(Adapter, REG_RRSR + 2, ®); + if (res) + return; + + rtw_write8(Adapter, REG_RRSR + 2, reg & 0xf0); /* Set RTS initial rate */ while (BrateCfg > 0x1) { @@ -994,13 +1121,21 @@ StopTxBeacon(Adapter); /* disable related TSF function */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) & (~BIT(3))); + res = rtw_read8(Adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, reg & (~BIT(3))); rtw_write32(Adapter, REG_TSFTR, tsf); rtw_write32(Adapter, REG_TSFTR + 4, tsf >> 32); /* enable related TSF function */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) | BIT(3)); + res = rtw_read8(Adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, reg | BIT(3)); if (((pmlmeinfo->state & 0x03) == WIFI_FW_ADHOC_STATE) || ((pmlmeinfo->state & 0x03) == WIFI_FW_AP_STATE)) ResumeTxBeacon(Adapter); @@ -1009,17 +1144,27 @@ case HW_VAR_MLME_SITESURVEY: if (*((u8 *)val)) { /* under sitesurvey */ /* config RCR to receive different BSSID & not to receive data frame */ - u32 v = rtw_read32(Adapter, REG_RCR); + u32 v; + + res = rtw_read32(Adapter, REG_RCR, &v); + if (res) + return; + v &= ~(RCR_CBSSID_BCN); rtw_write32(Adapter, REG_RCR, v); /* reject all data frame */ rtw_write16(Adapter, REG_RXFLTMAP2, 0x00); /* disable update TSF */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) | BIT(4)); + res = rtw_read8(Adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, reg | BIT(4)); } else { /* sitesurvey done */ struct mlme_ext_priv *pmlmeext = &Adapter->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; + u32 reg32; if ((is_client_associated_to_ap(Adapter)) || ((pmlmeinfo->state & 0x03) == WIFI_FW_ADHOC_STATE)) { @@ -1027,13 +1172,26 @@ rtw_write16(Adapter, REG_RXFLTMAP2, 0xFFFF); /* enable update TSF */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) & (~BIT(4))); + res = rtw_read8(Adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, reg & (~BIT(4))); } else if ((pmlmeinfo->state & 0x03) == WIFI_FW_AP_STATE) { rtw_write16(Adapter, REG_RXFLTMAP2, 0xFFFF); /* enable update TSF */ - rtw_write8(Adapter, REG_BCN_CTRL, rtw_read8(Adapter, REG_BCN_CTRL) & (~BIT(4))); + res = rtw_read8(Adapter, REG_BCN_CTRL, ®); + if (res) + return; + + rtw_write8(Adapter, REG_BCN_CTRL, reg & (~BIT(4))); } - rtw_write32(Adapter, REG_RCR, rtw_read32(Adapter, REG_RCR) | RCR_CBSSID_BCN); + + res = rtw_read32(Adapter, REG_RCR, ®32); + if (res) + return; + + rtw_write32(Adapter, REG_RCR, reg32 | RCR_CBSSID_BCN); } break; case HW_VAR_SLOT_TIME: @@ -1190,6 +1348,8 @@ struct mlme_ext_priv *pmlmeext = &adapt->mlmeextpriv; struct mlme_ext_info *pmlmeinfo = &pmlmeext->mlmext_info; u32 bcn_ctrl_reg = REG_BCN_CTRL; + int res; + u8 reg; /* reset TSF, enable update TSF, correcting TSF On Beacon */ /* BCN interval */ @@ -1200,7 +1360,10 @@ rtw_write8(adapt, REG_SLOT, 0x09); - value32 = rtw_read32(adapt, REG_TCR); + res = rtw_read32(adapt, REG_TCR, &value32); + if (res) + return; + value32 &= ~TSFRST; rtw_write32(adapt, REG_TCR, value32); @@ -1215,7 +1378,11 @@ ResumeTxBeacon(adapt); - rtw_write8(adapt, bcn_ctrl_reg, rtw_read8(adapt, bcn_ctrl_reg) | BIT(1)); + res = rtw_read8(adapt, bcn_ctrl_reg, ®); + if (res) + return; + + rtw_write8(adapt, bcn_ctrl_reg, reg | BIT(1)); } void rtl8188eu_init_default_value(struct adapter *adapt) --- linux-5.19.0.orig/drivers/staging/r8188eu/hal/usb_ops_linux.c +++ linux-5.19.0/drivers/staging/r8188eu/hal/usb_ops_linux.c @@ -94,40 +94,47 @@ return status; } -u8 rtw_read8(struct adapter *adapter, u32 addr) +int __must_check rtw_read8(struct adapter *adapter, u32 addr, u8 *data) { struct io_priv *io_priv = &adapter->iopriv; struct intf_hdl *intf = &io_priv->intf; u16 value = addr & 0xffff; - u8 data; - usb_read(intf, value, &data, 1); - - return data; + return usb_read(intf, value, data, 1); } -u16 rtw_read16(struct adapter *adapter, u32 addr) +int __must_check rtw_read16(struct adapter *adapter, u32 addr, u16 *data) { struct io_priv *io_priv = &adapter->iopriv; struct intf_hdl *intf = &io_priv->intf; u16 value = addr & 0xffff; - __le16 data; + __le16 le_data; + int res; + + res = usb_read(intf, value, &le_data, 2); + if (res) + return res; - usb_read(intf, value, &data, 2); + *data = le16_to_cpu(le_data); - return le16_to_cpu(data); + return 0; } -u32 rtw_read32(struct adapter *adapter, u32 addr) +int __must_check rtw_read32(struct adapter *adapter, u32 addr, u32 *data) { struct io_priv *io_priv = &adapter->iopriv; struct intf_hdl *intf = &io_priv->intf; u16 value = addr & 0xffff; - __le32 data; + __le32 le_data; + int res; + + res = usb_read(intf, value, &le_data, 4); + if (res) + return res; - usb_read(intf, value, &data, 4); + *data = le32_to_cpu(le_data); - return le32_to_cpu(data); + return 0; } int rtw_write8(struct adapter *adapter, u32 addr, u8 val) --- linux-5.19.0.orig/drivers/staging/r8188eu/include/rtw_io.h +++ linux-5.19.0/drivers/staging/r8188eu/include/rtw_io.h @@ -220,9 +220,9 @@ void _rtw_attrib_read(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem); void _rtw_attrib_write(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem); -u8 rtw_read8(struct adapter *adapter, u32 addr); -u16 rtw_read16(struct adapter *adapter, u32 addr); -u32 rtw_read32(struct adapter *adapter, u32 addr); +int __must_check rtw_read8(struct adapter *adapter, u32 addr, u8 *data); +int __must_check rtw_read16(struct adapter *adapter, u32 addr, u16 *data); +int __must_check rtw_read32(struct adapter *adapter, u32 addr, u32 *data); void _rtw_read_mem(struct adapter *adapter, u32 addr, u32 cnt, u8 *pmem); u32 rtw_read_port(struct adapter *adapter, u8 *pmem); void rtw_read_port_cancel(struct adapter *adapter); --- linux-5.19.0.orig/drivers/staging/r8188eu/os_dep/ioctl_linux.c +++ linux-5.19.0/drivers/staging/r8188eu/os_dep/ioctl_linux.c @@ -3126,18 +3126,29 @@ static void mac_reg_dump(struct adapter *padapter) { int i, j = 1; + u32 reg; + int res; + pr_info("\n ======= MAC REG =======\n"); for (i = 0x0; i < 0x300; i += 4) { if (j % 4 == 1) pr_info("0x%02x", i); - pr_info(" 0x%08x ", rtw_read32(padapter, i)); + + res = rtw_read32(padapter, i, ®); + if (!res) + pr_info(" 0x%08x ", reg); + if ((j++) % 4 == 0) pr_info("\n"); } for (i = 0x400; i < 0x800; i += 4) { if (j % 4 == 1) pr_info("0x%02x", i); - pr_info(" 0x%08x ", rtw_read32(padapter, i)); + + res = rtw_read32(padapter, i, ®); + if (!res) + pr_info(" 0x%08x ", reg); + if ((j++) % 4 == 0) pr_info("\n"); } @@ -3145,13 +3156,18 @@ static void bb_reg_dump(struct adapter *padapter) { - int i, j = 1; + int i, j = 1, res; + u32 reg; + pr_info("\n ======= BB REG =======\n"); for (i = 0x800; i < 0x1000; i += 4) { if (j % 4 == 1) pr_info("0x%02x", i); - pr_info(" 0x%08x ", rtw_read32(padapter, i)); + res = rtw_read32(padapter, i, ®); + if (!res) + pr_info(" 0x%08x ", reg); + if ((j++) % 4 == 0) pr_info("\n"); } @@ -3178,6 +3194,7 @@ { struct hal_data_8188e *haldata = &adapter->haldata; struct odm_dm_struct *odmpriv = &haldata->odmpriv; + int res; switch (dm_func) { case 0: @@ -3193,7 +3210,9 @@ if (!(odmpriv->SupportAbility & DYNAMIC_BB_DIG)) { struct rtw_dig *digtable = &odmpriv->DM_DigTable; - digtable->CurIGValue = rtw_read8(adapter, 0xc50); + res = rtw_read8(adapter, 0xc50, &digtable->CurIGValue); + (void)res; + /* FIXME: return an error to caller */ } odmpriv->SupportAbility = DYNAMIC_ALL_FUNC_ENABLE; break; @@ -3329,8 +3348,9 @@ u16 reg = arg; u16 start_value = 0; u32 write_num = extra_arg; - int i; + int i, res; struct xmit_frame *xmit_frame; + u8 val8; xmit_frame = rtw_IOL_accquire_xmit_frame(padapter); if (!xmit_frame) { @@ -3343,7 +3363,9 @@ if (rtl8188e_IOL_exec_cmds_sync(padapter, xmit_frame, 5000, 0) != _SUCCESS) ret = -EPERM; - rtw_read8(padapter, reg); + /* FIXME: is this read necessary? */ + res = rtw_read8(padapter, reg, &val8); + (void)res; } break; @@ -3352,8 +3374,8 @@ u16 reg = arg; u16 start_value = 200; u32 write_num = extra_arg; - - int i; + u16 val16; + int i, res; struct xmit_frame *xmit_frame; xmit_frame = rtw_IOL_accquire_xmit_frame(padapter); @@ -3367,7 +3389,9 @@ if (rtl8188e_IOL_exec_cmds_sync(padapter, xmit_frame, 5000, 0) != _SUCCESS) ret = -EPERM; - rtw_read16(padapter, reg); + /* FIXME: is this read necessary? */ + res = rtw_read16(padapter, reg, &val16); + (void)res; } break; case 0x08: /* continuous write dword test */ @@ -3390,7 +3414,8 @@ if (rtl8188e_IOL_exec_cmds_sync(padapter, xmit_frame, 5000, 0) != _SUCCESS) ret = -EPERM; - rtw_read32(padapter, reg); + /* FIXME: is this read necessary? */ + ret = rtw_read32(padapter, reg, &write_num); } break; } --- linux-5.19.0.orig/drivers/staging/r8188eu/os_dep/os_intfs.c +++ linux-5.19.0/drivers/staging/r8188eu/os_dep/os_intfs.c @@ -18,6 +18,7 @@ MODULE_DESCRIPTION("Realtek Wireless Lan Driver"); MODULE_AUTHOR("Realtek Semiconductor Corp."); MODULE_VERSION(DRIVERVERSION); +MODULE_FIRMWARE("rtlwifi/rtl8188eufw.bin"); #define CONFIG_BR_EXT_BRNAME "br0" #define RTW_NOTCH_FILTER 0 /* 0:Disable, 1:Enable, */ @@ -740,19 +741,32 @@ { struct pwrctrl_priv *pwrpriv = &adapter->pwrctrlpriv; u8 trycnt = 100; + int res; + u32 reg; /* pause tx */ rtw_write8(adapter, REG_TXPAUSE, 0xff); /* keep sn */ - adapter->xmitpriv.nqos_ssn = rtw_read16(adapter, REG_NQOS_SEQ); + /* FIXME: return an error to caller */ + res = rtw_read16(adapter, REG_NQOS_SEQ, &adapter->xmitpriv.nqos_ssn); + if (res) + return; if (!pwrpriv->bkeepfwalive) { /* RX DMA stop */ + res = rtw_read32(adapter, REG_RXPKT_NUM, ®); + if (res) + return; + rtw_write32(adapter, REG_RXPKT_NUM, - (rtw_read32(adapter, REG_RXPKT_NUM) | RW_RELEASE_EN)); + (reg | RW_RELEASE_EN)); do { - if (!(rtw_read32(adapter, REG_RXPKT_NUM) & RXDMA_IDLE)) + res = rtw_read32(adapter, REG_RXPKT_NUM, ®); + if (res) + continue; + + if (!(reg & RXDMA_IDLE)) break; } while (trycnt--); --- linux-5.19.0.orig/drivers/staging/r8188eu/os_dep/usb_intf.c +++ linux-5.19.0/drivers/staging/r8188eu/os_dep/usb_intf.c @@ -28,6 +28,7 @@ /*=== Realtek demoboard ===*/ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8179)}, /* 8188EUS */ {USB_DEVICE(USB_VENDER_ID_REALTEK, 0x0179)}, /* 8188ETV */ + {USB_DEVICE(USB_VENDER_ID_REALTEK, 0xffef)}, /* Rosewill USB-N150 Nano */ /*=== Customer ID ===*/ /****** 8188EUS ********/ {USB_DEVICE(0x07B8, 0x8179)}, /* Abocom - Abocom */ --- linux-5.19.0.orig/drivers/staging/rtl8192e/rtllib_rx.c +++ linux-5.19.0/drivers/staging/rtl8192e/rtllib_rx.c @@ -1489,9 +1489,9 @@ hdrlen += 4; } - rtllib_monitor_rx(ieee, skb, rx_stats, hdrlen); ieee->stats.rx_packets++; ieee->stats.rx_bytes += skb->len; + rtllib_monitor_rx(ieee, skb, rx_stats, hdrlen); return 1; } --- linux-5.19.0.orig/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c +++ linux-5.19.0/drivers/staging/rtl8192u/ieee80211/ieee80211_rx.c @@ -951,9 +951,11 @@ #endif if (ieee->iw_mode == IW_MODE_MONITOR) { + unsigned int len = skb->len; + ieee80211_monitor_rx(ieee, skb, rx_stats); stats->rx_packets++; - stats->rx_bytes += skb->len; + stats->rx_bytes += len; return 1; } --- linux-5.19.0.orig/drivers/staging/rtl8192u/r8192U.h +++ linux-5.19.0/drivers/staging/rtl8192u/r8192U.h @@ -1013,7 +1013,7 @@ bool bis_any_nonbepkts; bool bcurrent_turbo_EDCA; bool bis_cur_rdlstate; - struct timer_list fsync_timer; + struct delayed_work fsync_work; bool bfsync_processing; /* 500ms Fsync timer is active or not */ u32 rate_record; u32 rateCountDiffRecord; --- linux-5.19.0.orig/drivers/staging/rtl8192u/r8192U_dm.c +++ linux-5.19.0/drivers/staging/rtl8192u/r8192U_dm.c @@ -2578,19 +2578,20 @@ priv->ieee80211->fsync_seconddiff_ratethreshold = 200; priv->ieee80211->fsync_state = Default_Fsync; priv->framesyncMonitor = 1; /* current default 0xc38 monitor on */ - timer_setup(&priv->fsync_timer, dm_fsync_timer_callback, 0); + INIT_DELAYED_WORK(&priv->fsync_work, dm_fsync_work_callback); } static void dm_deInit_fsync(struct net_device *dev) { struct r8192_priv *priv = ieee80211_priv(dev); - del_timer_sync(&priv->fsync_timer); + cancel_delayed_work_sync(&priv->fsync_work); } -void dm_fsync_timer_callback(struct timer_list *t) +void dm_fsync_work_callback(struct work_struct *work) { - struct r8192_priv *priv = from_timer(priv, t, fsync_timer); + struct r8192_priv *priv = + container_of(work, struct r8192_priv, fsync_work.work); struct net_device *dev = priv->ieee80211->dev; u32 rate_index, rate_count = 0, rate_count_diff = 0; bool bSwitchFromCountDiff = false; @@ -2657,17 +2658,16 @@ } } if (bDoubleTimeInterval) { - if (timer_pending(&priv->fsync_timer)) - del_timer_sync(&priv->fsync_timer); - priv->fsync_timer.expires = jiffies + - msecs_to_jiffies(priv->ieee80211->fsync_time_interval*priv->ieee80211->fsync_multiple_timeinterval); - add_timer(&priv->fsync_timer); + cancel_delayed_work_sync(&priv->fsync_work); + schedule_delayed_work(&priv->fsync_work, + msecs_to_jiffies(priv + ->ieee80211->fsync_time_interval * + priv->ieee80211->fsync_multiple_timeinterval)); } else { - if (timer_pending(&priv->fsync_timer)) - del_timer_sync(&priv->fsync_timer); - priv->fsync_timer.expires = jiffies + - msecs_to_jiffies(priv->ieee80211->fsync_time_interval); - add_timer(&priv->fsync_timer); + cancel_delayed_work_sync(&priv->fsync_work); + schedule_delayed_work(&priv->fsync_work, + msecs_to_jiffies(priv + ->ieee80211->fsync_time_interval)); } } else { /* Let Register return to default value; */ @@ -2695,7 +2695,7 @@ struct r8192_priv *priv = ieee80211_priv(dev); RT_TRACE(COMP_HALDM, "%s\n", __func__); - del_timer_sync(&(priv->fsync_timer)); + cancel_delayed_work_sync(&priv->fsync_work); /* Let Register return to default value; */ if (priv->bswitch_fsync) { @@ -2736,11 +2736,9 @@ if (priv->ieee80211->fsync_rate_bitmap & rateBitmap) priv->rate_record += priv->stats.received_rate_histogram[1][rateIndex]; } - if (timer_pending(&priv->fsync_timer)) - del_timer_sync(&priv->fsync_timer); - priv->fsync_timer.expires = jiffies + - msecs_to_jiffies(priv->ieee80211->fsync_time_interval); - add_timer(&priv->fsync_timer); + cancel_delayed_work_sync(&priv->fsync_work); + schedule_delayed_work(&priv->fsync_work, + msecs_to_jiffies(priv->ieee80211->fsync_time_interval)); write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c12cd); } --- linux-5.19.0.orig/drivers/staging/rtl8192u/r8192U_dm.h +++ linux-5.19.0/drivers/staging/rtl8192u/r8192U_dm.h @@ -166,7 +166,7 @@ void dm_init_edca_turbo(struct net_device *dev); void dm_rf_operation_test_callback(unsigned long data); void dm_rf_pathcheck_workitemcallback(struct work_struct *work); -void dm_fsync_timer_callback(struct timer_list *t); +void dm_fsync_work_callback(struct work_struct *work); void dm_cck_txpower_adjust(struct net_device *dev, bool binch14); void dm_shadow_init(struct net_device *dev); void dm_initialize_txpower_tracking(struct net_device *dev); --- linux-5.19.0.orig/drivers/staging/rtl8712/rtl8712_cmd.c +++ linux-5.19.0/drivers/staging/rtl8712/rtl8712_cmd.c @@ -117,34 +117,6 @@ kfree(pdrvcmd->pbuf); } -static u8 read_macreg_hdl(struct _adapter *padapter, u8 *pbuf) -{ - void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd); - struct cmd_obj *pcmd = (struct cmd_obj *)pbuf; - - /* invoke cmd->callback function */ - pcmd_callback = cmd_callback[pcmd->cmdcode].callback; - if (!pcmd_callback) - r8712_free_cmd_obj(pcmd); - else - pcmd_callback(padapter, pcmd); - return H2C_SUCCESS; -} - -static u8 write_macreg_hdl(struct _adapter *padapter, u8 *pbuf) -{ - void (*pcmd_callback)(struct _adapter *dev, struct cmd_obj *pcmd); - struct cmd_obj *pcmd = (struct cmd_obj *)pbuf; - - /* invoke cmd->callback function */ - pcmd_callback = cmd_callback[pcmd->cmdcode].callback; - if (!pcmd_callback) - r8712_free_cmd_obj(pcmd); - else - pcmd_callback(padapter, pcmd); - return H2C_SUCCESS; -} - static u8 read_bbreg_hdl(struct _adapter *padapter, u8 *pbuf) { struct cmd_obj *pcmd = (struct cmd_obj *)pbuf; @@ -213,14 +185,6 @@ pcmd_r = NULL; switch (pcmd->cmdcode) { - case GEN_CMD_CODE(_Read_MACREG): - read_macreg_hdl(padapter, (u8 *)pcmd); - pcmd_r = pcmd; - break; - case GEN_CMD_CODE(_Write_MACREG): - write_macreg_hdl(padapter, (u8 *)pcmd); - pcmd_r = pcmd; - break; case GEN_CMD_CODE(_Read_BBREG): read_bbreg_hdl(padapter, (u8 *)pcmd); break; --- linux-5.19.0.orig/drivers/staging/rtl8723bs/core/rtw_cmd.c +++ linux-5.19.0/drivers/staging/rtl8723bs/core/rtw_cmd.c @@ -161,8 +161,6 @@ int rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) { - int res = 0; - init_completion(&pcmdpriv->cmd_queue_comp); init_completion(&pcmdpriv->terminate_cmdthread_comp); @@ -175,18 +173,16 @@ pcmdpriv->cmd_allocated_buf = rtw_zmalloc(MAX_CMDSZ + CMDBUFF_ALIGN_SZ); - if (!pcmdpriv->cmd_allocated_buf) { - res = -ENOMEM; - goto exit; - } + if (!pcmdpriv->cmd_allocated_buf) + return -ENOMEM; pcmdpriv->cmd_buf = pcmdpriv->cmd_allocated_buf + CMDBUFF_ALIGN_SZ - ((SIZE_PTR)(pcmdpriv->cmd_allocated_buf) & (CMDBUFF_ALIGN_SZ-1)); pcmdpriv->rsp_allocated_buf = rtw_zmalloc(MAX_RSPSZ + 4); if (!pcmdpriv->rsp_allocated_buf) { - res = -ENOMEM; - goto exit; + kfree(pcmdpriv->cmd_allocated_buf); + return -ENOMEM; } pcmdpriv->rsp_buf = pcmdpriv->rsp_allocated_buf + 4 - ((SIZE_PTR)(pcmdpriv->rsp_allocated_buf) & 3); @@ -196,8 +192,8 @@ pcmdpriv->rsp_cnt = 0; mutex_init(&pcmdpriv->sctx_mutex); -exit: - return res; + + return 0; } static void c2h_wk_callback(struct work_struct *work); --- linux-5.19.0.orig/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c +++ linux-5.19.0/drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c @@ -2086,6 +2086,7 @@ } static int cfg80211_rtw_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct adapter *adapter = wiphy_to_adapter(wiphy); @@ -2446,7 +2447,8 @@ return rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len); } -static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev) +static int cfg80211_rtw_stop_ap(struct wiphy *wiphy, struct net_device *ndev, + unsigned int link_id) { return 0; } --- linux-5.19.0.orig/drivers/staging/rtl8723bs/os_dep/os_intfs.c +++ linux-5.19.0/drivers/staging/rtl8723bs/os_dep/os_intfs.c @@ -664,51 +664,36 @@ u8 rtw_init_drv_sw(struct adapter *padapter) { - u8 ret8 = _SUCCESS; - rtw_init_default_value(padapter); rtw_init_hal_com_default_value(padapter); - if (rtw_init_cmd_priv(&padapter->cmdpriv)) { - ret8 = _FAIL; - goto exit; - } + if (rtw_init_cmd_priv(&padapter->cmdpriv)) + return _FAIL; padapter->cmdpriv.padapter = padapter; - if (rtw_init_evt_priv(&padapter->evtpriv)) { - ret8 = _FAIL; - goto exit; - } - + if (rtw_init_evt_priv(&padapter->evtpriv)) + goto free_cmd_priv; - if (rtw_init_mlme_priv(padapter) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if (rtw_init_mlme_priv(padapter) == _FAIL) + goto free_evt_priv; init_mlme_ext_priv(padapter); - if (_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) { - ret8 = _FAIL; - goto exit; - } - - if (_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if (_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL) + goto free_mlme_ext; + + if (_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL) + goto free_xmit_priv; /* add for CONFIG_IEEE80211W, none 11w also can use */ spin_lock_init(&padapter->security_key_mutex); /* We don't need to memset padapter->XXX to zero, because adapter is allocated by vzalloc(). */ /* memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv)); */ - if (_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) { - ret8 = _FAIL; - goto exit; - } + if (_rtw_init_sta_priv(&padapter->stapriv) == _FAIL) + goto free_recv_priv; padapter->stapriv.padapter = padapter; padapter->setband = GHZ24_50; @@ -719,9 +704,26 @@ rtw_hal_dm_init(padapter); -exit: + return _SUCCESS; + +free_recv_priv: + _rtw_free_recv_priv(&padapter->recvpriv); + +free_xmit_priv: + _rtw_free_xmit_priv(&padapter->xmitpriv); + +free_mlme_ext: + free_mlme_ext_priv(&padapter->mlmeextpriv); + + rtw_free_mlme_priv(&padapter->mlmepriv); + +free_evt_priv: + rtw_free_evt_priv(&padapter->evtpriv); + +free_cmd_priv: + rtw_free_cmd_priv(&padapter->cmdpriv); - return ret8; + return _FAIL; } void rtw_cancel_all_timer(struct adapter *padapter) --- linux-5.19.0.orig/drivers/staging/vt6655/device_main.c +++ linux-5.19.0/drivers/staging/vt6655/device_main.c @@ -564,7 +564,7 @@ kfree(desc->rd_info); err_free_desc: - while (--i) { + while (i--) { desc = &priv->aRD0Ring[i]; device_free_rx_buf(priv, desc); kfree(desc->rd_info); @@ -610,7 +610,7 @@ kfree(desc->rd_info); err_free_desc: - while (--i) { + while (i--) { desc = &priv->aRD1Ring[i]; device_free_rx_buf(priv, desc); kfree(desc->rd_info); @@ -675,7 +675,7 @@ return 0; err_free_desc: - while (--i) { + while (i--) { desc = &priv->apTD0Rings[i]; kfree(desc->td_info); } @@ -715,7 +715,7 @@ return 0; err_free_desc: - while (--i) { + while (i--) { desc = &priv->apTD1Rings[i]; kfree(desc->td_info); } --- linux-5.19.0.orig/drivers/target/loopback/tcm_loop.c +++ linux-5.19.0/drivers/target/loopback/tcm_loop.c @@ -397,6 +397,7 @@ ret = device_register(&tl_hba->dev); if (ret) { pr_err("device_register() failed for tl_hba->dev: %d\n", ret); + put_device(&tl_hba->dev); return -ENODEV; } @@ -1073,7 +1074,7 @@ */ ret = tcm_loop_setup_hba_bus(tl_hba, tcm_loop_hba_no_cnt); if (ret) - goto out; + return ERR_PTR(ret); sh = tl_hba->sh; tcm_loop_hba_no_cnt++; --- linux-5.19.0.orig/drivers/tee/optee/device.c +++ linux-5.19.0/drivers/tee/optee/device.c @@ -80,7 +80,7 @@ rc = device_register(&optee_device->dev); if (rc) { pr_err("device registration failed, err: %d\n", rc); - kfree(optee_device); + put_device(&optee_device->dev); } return rc; --- linux-5.19.0.orig/drivers/tee/tee_core.c +++ linux-5.19.0/drivers/tee/tee_core.c @@ -333,6 +333,9 @@ if (data.flags) return -EINVAL; + if (!access_ok((void __user *)(unsigned long)data.addr, data.length)) + return -EFAULT; + shm = tee_shm_register_user_buf(ctx, data.addr, data.length); if (IS_ERR(shm)) return PTR_ERR(shm); --- linux-5.19.0.orig/drivers/tee/tee_shm.c +++ linux-5.19.0/drivers/tee/tee_shm.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include "tee_private.h" --- linux-5.19.0.orig/drivers/thermal/cpufreq_cooling.c +++ linux-5.19.0/drivers/thermal/cpufreq_cooling.c @@ -21,6 +21,7 @@ #include #include #include +#include #include @@ -101,6 +102,7 @@ static u32 cpu_freq_to_power(struct cpufreq_cooling_device *cpufreq_cdev, u32 freq) { + unsigned long power_mw; int i; for (i = cpufreq_cdev->max_level - 1; i >= 0; i--) { @@ -108,16 +110,23 @@ break; } - return cpufreq_cdev->em->table[i + 1].power; + power_mw = cpufreq_cdev->em->table[i + 1].power; + power_mw /= MICROWATT_PER_MILLIWATT; + + return power_mw; } static u32 cpu_power_to_freq(struct cpufreq_cooling_device *cpufreq_cdev, u32 power) { + unsigned long em_power_mw; int i; for (i = cpufreq_cdev->max_level; i > 0; i--) { - if (power >= cpufreq_cdev->em->table[i].power) + /* Convert EM power to milli-Watts to make safe comparison */ + em_power_mw = cpufreq_cdev->em->table[i].power; + em_power_mw /= MICROWATT_PER_MILLIWATT; + if (power >= em_power_mw) break; } @@ -521,17 +530,17 @@ struct thermal_cooling_device_ops *cooling_ops; char *name; + if (IS_ERR_OR_NULL(policy)) { + pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); + return ERR_PTR(-EINVAL); + } + dev = get_cpu_device(policy->cpu); if (unlikely(!dev)) { pr_warn("No cpu device for cpu %d\n", policy->cpu); return ERR_PTR(-ENODEV); } - if (IS_ERR_OR_NULL(policy)) { - pr_err("%s: cpufreq policy isn't valid: %p\n", __func__, policy); - return ERR_PTR(-EINVAL); - } - i = cpufreq_table_count_valid_entries(policy); if (!i) { pr_debug("%s: CPUFreq table not found or has no valid entries\n", --- linux-5.19.0.orig/drivers/thermal/devfreq_cooling.c +++ linux-5.19.0/drivers/thermal/devfreq_cooling.c @@ -200,7 +200,11 @@ res = dfc->power_ops->get_real_power(df, power, freq, voltage); if (!res) { state = dfc->capped_state; + + /* Convert EM power into milli-Watts first */ dfc->res_util = dfc->em_pd->table[state].power; + dfc->res_util /= MICROWATT_PER_MILLIWATT; + dfc->res_util *= SCALE_ERROR_MITIGATION; if (*power > 1) @@ -218,8 +222,10 @@ _normalize_load(&status); - /* Scale power for utilization */ + /* Convert EM power into milli-Watts first */ *power = dfc->em_pd->table[perf_idx].power; + *power /= MICROWATT_PER_MILLIWATT; + /* Scale power for utilization */ *power *= status.busy_time; *power >>= 10; } @@ -244,6 +250,7 @@ perf_idx = dfc->max_state - state; *power = dfc->em_pd->table[perf_idx].power; + *power /= MICROWATT_PER_MILLIWATT; return 0; } @@ -254,7 +261,7 @@ struct devfreq_cooling_device *dfc = cdev->devdata; struct devfreq *df = dfc->devfreq; struct devfreq_dev_status status; - unsigned long freq; + unsigned long freq, em_power_mw; s32 est_power; int i; @@ -279,9 +286,13 @@ * Find the first cooling state that is within the power * budget. The EM power table is sorted ascending. */ - for (i = dfc->max_state; i > 0; i--) - if (est_power >= dfc->em_pd->table[i].power) + for (i = dfc->max_state; i > 0; i--) { + /* Convert EM power to milli-Watts to make safe comparison */ + em_power_mw = dfc->em_pd->table[i].power; + em_power_mw /= MICROWATT_PER_MILLIWATT; + if (est_power >= em_power_mw) break; + } *state = dfc->max_state - i; dfc->capped_state = *state; --- linux-5.19.0.orig/drivers/thermal/imx8mm_thermal.c +++ linux-5.19.0/drivers/thermal/imx8mm_thermal.c @@ -65,8 +65,14 @@ u32 val; val = readl_relaxed(tmu->base + TRITSR) & TRITSR_TEMP0_VAL_MASK; + + /* + * Do not validate against the V bit (bit 31) due to errata + * ERR051272: TMU: Bit 31 of registers TMU_TSCR/TMU_TRITSR/TMU_TRATSR invalid + */ + *temp = val * 1000; - if (*temp < VER1_TEMP_LOW_LIMIT) + if (*temp < VER1_TEMP_LOW_LIMIT || *temp > VER2_TEMP_HIGH_LIMIT) return -EAGAIN; return 0; --- linux-5.19.0.orig/drivers/thermal/intel/int340x_thermal/int3400_thermal.c +++ linux-5.19.0/drivers/thermal/intel/int340x_thermal/int3400_thermal.c @@ -527,7 +527,7 @@ priv->data_vault = kmemdup(obj->package.elements[0].buffer.pointer, obj->package.elements[0].buffer.length, GFP_KERNEL); - if (!priv->data_vault) + if (ZERO_OR_NULL_PTR(priv->data_vault)) goto out_free; bin_attr_data_vault.private = priv->data_vault; @@ -597,7 +597,7 @@ goto free_imok; } - if (priv->data_vault) { + if (!ZERO_OR_NULL_PTR(priv->data_vault)) { result = sysfs_create_group(&pdev->dev.kobj, &data_attribute_group); if (result) @@ -615,7 +615,8 @@ free_sysfs: cleanup_odvp(priv); if (priv->data_vault) { - sysfs_remove_group(&pdev->dev.kobj, &data_attribute_group); + if (!ZERO_OR_NULL_PTR(priv->data_vault)) + sysfs_remove_group(&pdev->dev.kobj, &data_attribute_group); kfree(priv->data_vault); } free_uuid: @@ -647,7 +648,7 @@ if (!priv->rel_misc_dev_res) acpi_thermal_rel_misc_device_remove(priv->adev->handle); - if (priv->data_vault) + if (!ZERO_OR_NULL_PTR(priv->data_vault)) sysfs_remove_group(&pdev->dev.kobj, &data_attribute_group); sysfs_remove_group(&pdev->dev.kobj, &uuid_attribute_group); sysfs_remove_group(&pdev->dev.kobj, &imok_attribute_group); --- linux-5.19.0.orig/drivers/thermal/intel/intel_powerclamp.c +++ linux-5.19.0/drivers/thermal/intel/intel_powerclamp.c @@ -531,9 +531,7 @@ cpus_read_lock(); /* prefer BSP */ - control_cpu = 0; - if (!cpu_online(control_cpu)) - control_cpu = smp_processor_id(); + control_cpu = cpumask_first(cpu_online_mask); clamping = true; schedule_delayed_work(&poll_pkg_cstate_work, 0); --- linux-5.19.0.orig/drivers/thermal/k3_j72xx_bandgap.c +++ linux-5.19.0/drivers/thermal/k3_j72xx_bandgap.c @@ -441,7 +441,7 @@ workaround_needed = false; dev_dbg(bgp->dev, "Work around %sneeded\n", - workaround_needed ? "not " : ""); + workaround_needed ? "" : "not "); if (!workaround_needed) init_table(5, ref_table, golden_factors); --- linux-5.19.0.orig/drivers/thermal/qcom/lmh.c +++ linux-5.19.0/drivers/thermal/qcom/lmh.c @@ -45,7 +45,7 @@ if (irq) generic_handle_irq(irq); - return 0; + return IRQ_HANDLED; } static void lmh_enable_interrupt(struct irq_data *d) --- linux-5.19.0.orig/drivers/thermal/qcom/qcom-spmi-temp-alarm.c +++ linux-5.19.0/drivers/thermal/qcom/qcom-spmi-temp-alarm.c @@ -251,7 +251,8 @@ disable_s2_shutdown = true; else dev_warn(chip->dev, - "No ADC is configured and critical temperature is above the maximum stage 2 threshold of 140 C! Configuring stage 2 shutdown at 140 C.\n"); + "No ADC is configured and critical temperature %d mC is above the maximum stage 2 threshold of %ld mC! Configuring stage 2 shutdown at %ld mC.\n", + temp, stage2_threshold_max, stage2_threshold_max); } skip: --- linux-5.19.0.orig/drivers/thermal/qcom/tsens-v0_1.c +++ linux-5.19.0/drivers/thermal/qcom/tsens-v0_1.c @@ -604,7 +604,7 @@ struct tsens_plat_data data_8939 = { .num_sensors = 10, .ops = &ops_8939, - .hw_ids = (unsigned int []){ 0, 1, 2, 4, 5, 6, 7, 8, 9, 10 }, + .hw_ids = (unsigned int []){ 0, 1, 2, 3, 5, 6, 7, 8, 9, 10 }, .feat = &tsens_v0_1_feat, .fields = tsens_v0_1_regfields, --- linux-5.19.0.orig/drivers/thermal/thermal_core.c +++ linux-5.19.0/drivers/thermal/thermal_core.c @@ -907,10 +907,6 @@ cdev->id = ret; id = ret; - ret = dev_set_name(&cdev->device, "cooling_device%d", cdev->id); - if (ret) - goto out_ida_remove; - cdev->type = kstrdup(type ? type : "", GFP_KERNEL); if (!cdev->type) { ret = -ENOMEM; @@ -925,6 +921,11 @@ cdev->device.class = &thermal_class; cdev->devdata = devdata; thermal_cooling_device_setup_sysfs(cdev); + ret = dev_set_name(&cdev->device, "cooling_device%d", cdev->id); + if (ret) { + thermal_cooling_device_destroy_sysfs(cdev); + goto out_kfree_type; + } ret = device_register(&cdev->device); if (ret) goto out_kfree_type; @@ -1237,10 +1238,6 @@ tz->id = id; strlcpy(tz->type, type, sizeof(tz->type)); - result = dev_set_name(&tz->device, "thermal_zone%d", tz->id); - if (result) - goto remove_id; - if (!ops->critical) ops->critical = thermal_zone_device_critical; @@ -1262,6 +1259,11 @@ /* A new thermal zone needs to be updated anyway. */ atomic_set(&tz->need_update, 1); + result = dev_set_name(&tz->device, "thermal_zone%d", tz->id); + if (result) { + thermal_zone_destroy_device_groups(tz); + goto remove_id; + } result = device_register(&tz->device); if (result) goto release_device; --- linux-5.19.0.orig/drivers/thermal/thermal_sysfs.c +++ linux-5.19.0/drivers/thermal/thermal_sysfs.c @@ -813,12 +813,13 @@ static void cooling_device_stats_setup(struct thermal_cooling_device *cdev) { + const struct attribute_group *stats_attr_group = NULL; struct cooling_dev_stats *stats; unsigned long states; int var; if (cdev->ops->get_max_state(cdev, &states)) - return; + goto out; states++; /* Total number of states is highest state + 1 */ @@ -828,7 +829,7 @@ stats = kzalloc(var, GFP_KERNEL); if (!stats) - return; + goto out; stats->time_in_state = (ktime_t *)(stats + 1); stats->trans_table = (unsigned int *)(stats->time_in_state + states); @@ -838,9 +839,12 @@ spin_lock_init(&stats->lock); + stats_attr_group = &cooling_device_stats_attr_group; + +out: /* Fill the empty slot left in cooling_device_attr_groups */ var = ARRAY_SIZE(cooling_device_attr_groups) - 2; - cooling_device_attr_groups[var] = &cooling_device_stats_attr_group; + cooling_device_attr_groups[var] = stats_attr_group; } static void cooling_device_stats_destroy(struct thermal_cooling_device *cdev) --- linux-5.19.0.orig/drivers/thunderbolt/ctl.c +++ linux-5.19.0/drivers/thunderbolt/ctl.c @@ -407,7 +407,7 @@ static int tb_async_error(const struct ctl_pkg *pkg) { - const struct cfg_error_pkg *error = (const struct cfg_error_pkg *)pkg; + const struct cfg_error_pkg *error = pkg->buffer; if (pkg->frame.eof != TB_CFG_PKG_ERROR) return false; --- linux-5.19.0.orig/drivers/thunderbolt/icm.c +++ linux-5.19.0/drivers/thunderbolt/icm.c @@ -2527,6 +2527,7 @@ tb->cm_ops = &icm_icl_ops; break; + case PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_2C_NHI: case PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_4C_NHI: icm->is_supported = icm_tgl_is_supported; icm->get_mode = icm_ar_get_mode; --- linux-5.19.0.orig/drivers/thunderbolt/nhi.c +++ linux-5.19.0/drivers/thunderbolt/nhi.c @@ -28,7 +28,11 @@ #define RING_TYPE(ring) ((ring)->is_tx ? "TX ring" : "RX ring") #define RING_FIRST_USABLE_HOPID 1 - +/* + * Used with QUIRK_E2E to specify an unused HopID the Rx credits are + * transferred. + */ +#define RING_E2E_RESERVED_HOPID RING_FIRST_USABLE_HOPID /* * Minimal number of vectors when we use MSI-X. Two for control channel * Rx/Tx and the rest four are for cross domain DMA paths. @@ -38,7 +42,9 @@ #define NHI_MAILBOX_TIMEOUT 500 /* ms */ +/* Host interface quirks */ #define QUIRK_AUTO_CLEAR_INT BIT(0) +#define QUIRK_E2E BIT(1) static int ring_interrupt_index(struct tb_ring *ring) { @@ -458,8 +464,18 @@ static int nhi_alloc_hop(struct tb_nhi *nhi, struct tb_ring *ring) { + unsigned int start_hop = RING_FIRST_USABLE_HOPID; int ret = 0; + if (nhi->quirks & QUIRK_E2E) { + start_hop = RING_FIRST_USABLE_HOPID + 1; + if (ring->flags & RING_FLAG_E2E && !ring->is_tx) { + dev_dbg(&nhi->pdev->dev, "quirking E2E TX HopID %u -> %u\n", + ring->e2e_tx_hop, RING_E2E_RESERVED_HOPID); + ring->e2e_tx_hop = RING_E2E_RESERVED_HOPID; + } + } + spin_lock_irq(&nhi->lock); if (ring->hop < 0) { @@ -469,7 +485,7 @@ * Automatically allocate HopID from the non-reserved * range 1 .. hop_count - 1. */ - for (i = RING_FIRST_USABLE_HOPID; i < nhi->hop_count; i++) { + for (i = start_hop; i < nhi->hop_count; i++) { if (ring->is_tx) { if (!nhi->tx_rings[i]) { ring->hop = i; @@ -484,6 +500,11 @@ } } + if (ring->hop > 0 && ring->hop < start_hop) { + dev_warn(&nhi->pdev->dev, "invalid hop: %d\n", ring->hop); + ret = -EINVAL; + goto err_unlock; + } if (ring->hop < 0 || ring->hop >= nhi->hop_count) { dev_warn(&nhi->pdev->dev, "invalid hop: %d\n", ring->hop); ret = -EINVAL; @@ -1097,12 +1118,26 @@ static void nhi_check_quirks(struct tb_nhi *nhi) { - /* - * Intel hardware supports auto clear of the interrupt status - * reqister right after interrupt is being issued. - */ - if (nhi->pdev->vendor == PCI_VENDOR_ID_INTEL) + if (nhi->pdev->vendor == PCI_VENDOR_ID_INTEL) { + /* + * Intel hardware supports auto clear of the interrupt + * status register right after interrupt is being + * issued. + */ nhi->quirks |= QUIRK_AUTO_CLEAR_INT; + + switch (nhi->pdev->device) { + case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_NHI: + case PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_NHI: + /* + * Falcon Ridge controller needs the end-to-end + * flow control workaround to avoid losing Rx + * packets when RING_FLAG_E2E is set. + */ + nhi->quirks |= QUIRK_E2E; + break; + } + } } static int nhi_check_iommu_pdev(struct pci_dev *pdev, void *data) --- linux-5.19.0.orig/drivers/thunderbolt/nhi.h +++ linux-5.19.0/drivers/thunderbolt/nhi.h @@ -55,6 +55,7 @@ * need for the PCI quirk anymore as we will use ICM also on Apple * hardware. */ +#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_2C_NHI 0x1134 #define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_4C_NHI 0x1137 #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_NHI 0x157d #define PCI_DEVICE_ID_INTEL_WIN_RIDGE_2C_BRIDGE 0x157e --- linux-5.19.0.orig/drivers/thunderbolt/switch.c +++ linux-5.19.0/drivers/thunderbolt/switch.c @@ -2413,6 +2413,7 @@ * additional capabilities. */ sw->config.cmuv = USB4_VERSION_1_0; + sw->config.plug_events_delay = 0xa; /* Enumerate the switch */ ret = tb_sw_write(sw, (u32 *)&sw->config + 1, TB_CFG_SWITCH, @@ -2821,6 +2822,26 @@ tb_sw_info(sw, "failed to determine preferred buffer allocation, using defaults\n"); } +static int tb_switch_port_hotplug_enable(struct tb_switch *sw) +{ + struct tb_port *port; + + if (tb_switch_is_icm(sw)) + return 0; + + tb_switch_for_each_port(sw, port) { + int res; + + if (!port->cap_usb4) + continue; + + res = usb4_port_hotplug_enable(port); + if (res) + return res; + } + return 0; +} + /** * tb_switch_add() - Add a switch to the domain * @sw: Switch to add @@ -2890,6 +2911,10 @@ return ret; } + ret = tb_switch_port_hotplug_enable(sw); + if (ret) + return ret; + ret = device_add(&sw->dev); if (ret) { dev_err(&sw->dev, "failed to add device: %d\n", ret); @@ -3781,14 +3806,18 @@ */ int tb_switch_xhci_connect(struct tb_switch *sw) { - bool usb_port1, usb_port3, xhci_port1, xhci_port3; struct tb_port *port1, *port3; int ret; + if (sw->generation != 3) + return 0; + port1 = &sw->ports[1]; port3 = &sw->ports[3]; if (tb_switch_is_alpine_ridge(sw)) { + bool usb_port1, usb_port3, xhci_port1, xhci_port3; + usb_port1 = tb_lc_is_usb_plugged(port1); usb_port3 = tb_lc_is_usb_plugged(port3); xhci_port1 = tb_lc_is_xhci_connected(port1); --- linux-5.19.0.orig/drivers/thunderbolt/tb.c +++ linux-5.19.0/drivers/thunderbolt/tb.c @@ -105,6 +105,32 @@ } } +static void tb_discover_dp_resource(struct tb *tb, struct tb_port *port) +{ + struct tb_cm *tcm = tb_priv(tb); + struct tb_port *p; + + list_for_each_entry(p, &tcm->dp_resources, list) { + if (p == port) + return; + } + + tb_port_dbg(port, "DP %s resource available discovered\n", + tb_port_is_dpin(port) ? "IN" : "OUT"); + list_add_tail(&port->list, &tcm->dp_resources); +} + +static void tb_discover_dp_resources(struct tb *tb) +{ + struct tb_cm *tcm = tb_priv(tb); + struct tb_tunnel *tunnel; + + list_for_each_entry(tunnel, &tcm->tunnel_list, list) { + if (tb_tunnel_is_dp(tunnel)) + tb_discover_dp_resource(tb, tunnel->dst_port); + } +} + static void tb_switch_discover_tunnels(struct tb_switch *sw, struct list_head *list, bool alloc_hopids) @@ -1414,6 +1440,8 @@ tb_scan_switch(tb->root_switch); /* Find out tunnels created by the boot firmware */ tb_discover_tunnels(tb); + /* Add DP resources from the DP tunnels created by the boot firmware */ + tb_discover_dp_resources(tb); /* * If the boot firmware did not create USB 3.x tunnels create them * now for the whole topology. --- linux-5.19.0.orig/drivers/thunderbolt/tb.h +++ linux-5.19.0/drivers/thunderbolt/tb.h @@ -1170,6 +1170,7 @@ void usb4_switch_remove_ports(struct tb_switch *sw); int usb4_port_unlock(struct tb_port *port); +int usb4_port_hotplug_enable(struct tb_port *port); int usb4_port_configure(struct tb_port *port); void usb4_port_unconfigure(struct tb_port *port); int usb4_port_configure_xdomain(struct tb_port *port); --- linux-5.19.0.orig/drivers/thunderbolt/tb_regs.h +++ linux-5.19.0/drivers/thunderbolt/tb_regs.h @@ -302,6 +302,7 @@ #define ADP_CS_5 0x05 #define ADP_CS_5_LCA_MASK GENMASK(28, 22) #define ADP_CS_5_LCA_SHIFT 22 +#define ADP_CS_5_DHP BIT(31) /* TMU adapter registers */ #define TMU_ADP_CS_3 0x03 --- linux-5.19.0.orig/drivers/thunderbolt/tmu.c +++ linux-5.19.0/drivers/thunderbolt/tmu.c @@ -359,13 +359,14 @@ * In case of uni-directional time sync, TMU handshake is * initiated by upstream router. In case of bi-directional * time sync, TMU handshake is initiated by downstream router. - * Therefore, we change the rate to off in the respective - * router. + * We change downstream router's rate to off for both uni/bidir + * cases although it is needed only for the bi-directional mode. + * We avoid changing upstream router's mode since it might + * have another downstream router plugged, that is set to + * uni-directional mode and we don't want to change it's TMU + * mode. */ - if (unidirectional) - tb_switch_tmu_rate_write(parent, TB_SWITCH_TMU_RATE_OFF); - else - tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF); + tb_switch_tmu_rate_write(sw, TB_SWITCH_TMU_RATE_OFF); tb_port_tmu_time_sync_disable(up); ret = tb_port_tmu_time_sync_disable(down); --- linux-5.19.0.orig/drivers/thunderbolt/usb4.c +++ linux-5.19.0/drivers/thunderbolt/usb4.c @@ -1046,6 +1046,26 @@ return tb_port_write(port, &val, TB_CFG_PORT, ADP_CS_4, 1); } +/** + * usb4_port_hotplug_enable() - Enables hotplug for a port + * @port: USB4 port to operate on + * + * Enables hot plug events on a given port. This is only intended + * to be used on lane, DP-IN, and DP-OUT adapters. + */ +int usb4_port_hotplug_enable(struct tb_port *port) +{ + int ret; + u32 val; + + ret = tb_port_read(port, &val, TB_CFG_PORT, ADP_CS_5, 1); + if (ret) + return ret; + + val &= ~ADP_CS_5_DHP; + return tb_port_write(port, &val, TB_CFG_PORT, ADP_CS_5, 1); +} + static int usb4_port_set_configured(struct tb_port *port, bool configured) { int ret; --- linux-5.19.0.orig/drivers/tty/n_gsm.c +++ linux-5.19.0/drivers/tty/n_gsm.c @@ -5,6 +5,14 @@ * * * THIS IS A DEVELOPMENT SNAPSHOT IT IS NOT A FINAL RELEASE * * + * Outgoing path: + * tty -> DLCI fifo -> scheduler -> GSM MUX data queue ---o-> ldisc + * control message -> GSM MUX control queue --´ + * + * Incoming path: + * ldisc -> gsm_queue() -o--> tty + * `-> gsm_control_response() + * * TO DO: * Mostly done: ioctls for setting modes/timing * Partly done: hooks so you can pull off frames to non tty devs @@ -210,6 +218,9 @@ /* Events on the GSM channel */ wait_queue_head_t event; + /* ldisc send work */ + struct work_struct tx_work; + /* Bits for GSM mode decoding */ /* Framing Layer */ @@ -235,14 +246,17 @@ struct gsm_dlci *dlci[NUM_DLCI]; int old_c_iflag; /* termios c_iflag value before attach */ bool constipated; /* Asked by remote to shut up */ + bool has_devices; /* Devices were registered */ spinlock_t tx_lock; unsigned int tx_bytes; /* TX data outstanding */ #define TX_THRESH_HI 8192 #define TX_THRESH_LO 2048 - struct list_head tx_list; /* Pending data packets */ + struct list_head tx_ctrl_list; /* Pending control packets */ + struct list_head tx_data_list; /* Pending data packets */ /* Control messages */ + struct timer_list kick_timer; /* Kick TX queuing on timeout */ struct timer_list t2_timer; /* Retransmit timer for commands */ int cretries; /* Command retry counter */ struct gsm_control *pending_cmd;/* Our current pending command */ @@ -369,6 +383,11 @@ static int gsmld_output(struct gsm_mux *gsm, u8 *data, int len); static int gsm_modem_update(struct gsm_dlci *dlci, u8 brk); +static struct gsm_msg *gsm_data_alloc(struct gsm_mux *gsm, u8 addr, int len, + u8 ctrl); +static int gsm_send_packet(struct gsm_mux *gsm, struct gsm_msg *msg); +static void gsmld_write_trigger(struct gsm_mux *gsm); +static void gsmld_write_task(struct work_struct *work); /** * gsm_fcs_add - update FCS @@ -420,6 +439,27 @@ } /** + * gsm_read_ea_val - read a value until EA + * @val: variable holding value + * @data: buffer of data + * @dlen: length of data + * + * Processes an EA value. Updates the passed variable and + * returns the processed data length. + */ +static unsigned int gsm_read_ea_val(unsigned int *val, const u8 *data, int dlen) +{ + unsigned int len = 0; + + for (; dlen > 0; dlen--) { + len++; + if (gsm_read_ea(val, *data++)) + break; + } + return len; +} + +/** * gsm_encode_modem - encode modem data bits * @dlci: DLCI to encode from * @@ -464,6 +504,68 @@ } /** + * gsm_register_devices - register all tty devices for a given mux index + * + * @driver: the tty driver that describes the tty devices + * @index: the mux number is used to calculate the minor numbers of the + * ttys for this mux and may differ from the position in the + * mux array. + */ +static int gsm_register_devices(struct tty_driver *driver, unsigned int index) +{ + struct device *dev; + int i; + unsigned int base; + + if (!driver || index >= MAX_MUX) + return -EINVAL; + + base = index * NUM_DLCI; /* first minor for this index */ + for (i = 1; i < NUM_DLCI; i++) { + /* Don't register device 0 - this is the control channel + * and not a usable tty interface + */ + dev = tty_register_device(gsm_tty_driver, base + i, NULL); + if (IS_ERR(dev)) { + if (debug & 8) + pr_info("%s failed to register device minor %u", + __func__, base + i); + for (i--; i >= 1; i--) + tty_unregister_device(gsm_tty_driver, base + i); + return PTR_ERR(dev); + } + } + + return 0; +} + +/** + * gsm_unregister_devices - unregister all tty devices for a given mux index + * + * @driver: the tty driver that describes the tty devices + * @index: the mux number is used to calculate the minor numbers of the + * ttys for this mux and may differ from the position in the + * mux array. + */ +static void gsm_unregister_devices(struct tty_driver *driver, + unsigned int index) +{ + int i; + unsigned int base; + + if (!driver || index >= MAX_MUX) + return; + + base = index * NUM_DLCI; /* first minor for this index */ + for (i = 1; i < NUM_DLCI; i++) { + /* Don't unregister device 0 - this is the control + * channel and not a usable tty interface + */ + tty_unregister_device(gsm_tty_driver, base + i); + } +} + +/** * gsm_print_packet - display a frame for debug * @hdr: header to print before decode * @addr: address EA from the frame @@ -570,57 +672,73 @@ * @cr: command/response bit seen as initiator * @control: control byte including PF bit * - * Format up and transmit a control frame. These do not go via the - * queueing logic as they should be transmitted ahead of data when - * they are needed. - * - * FIXME: Lock versus data TX path + * Format up and transmit a control frame. These should be transmitted + * ahead of data when they are needed. */ - -static void gsm_send(struct gsm_mux *gsm, int addr, int cr, int control) +static int gsm_send(struct gsm_mux *gsm, int addr, int cr, int control) { - int len; - u8 cbuf[10]; - u8 ibuf[3]; + struct gsm_msg *msg; + u8 *dp; int ocr; + unsigned long flags; + + msg = gsm_data_alloc(gsm, addr, 0, control); + if (!msg) + return -ENOMEM; /* toggle C/R coding if not initiator */ ocr = cr ^ (gsm->initiator ? 0 : 1); - switch (gsm->encoding) { - case 0: - cbuf[0] = GSM0_SOF; - cbuf[1] = (addr << 2) | (ocr << 1) | EA; - cbuf[2] = control; - cbuf[3] = EA; /* Length of data = 0 */ - cbuf[4] = 0xFF - gsm_fcs_add_block(INIT_FCS, cbuf + 1, 3); - cbuf[5] = GSM0_SOF; - len = 6; - break; - case 1: - case 2: - /* Control frame + packing (but not frame stuffing) in mode 1 */ - ibuf[0] = (addr << 2) | (ocr << 1) | EA; - ibuf[1] = control; - ibuf[2] = 0xFF - gsm_fcs_add_block(INIT_FCS, ibuf, 2); - /* Stuffing may double the size worst case */ - len = gsm_stuff_frame(ibuf, cbuf + 1, 3); - /* Now add the SOF markers */ - cbuf[0] = GSM1_SOF; - cbuf[len + 1] = GSM1_SOF; - /* FIXME: we can omit the lead one in many cases */ - len += 2; - break; - default: - WARN_ON(1); - return; - } - gsmld_output(gsm, cbuf, len); - if (!gsm->initiator) { - cr = cr & gsm->initiator; - control = control & ~PF; + msg->data -= 3; + dp = msg->data; + *dp++ = (addr << 2) | (ocr << 1) | EA; + *dp++ = control; + + if (gsm->encoding == 0) + *dp++ = EA; /* Length of data = 0 */ + + *dp = 0xFF - gsm_fcs_add_block(INIT_FCS, msg->data, dp - msg->data); + msg->len = (dp - msg->data) + 1; + + gsm_print_packet("Q->", addr, cr, control, NULL, 0); + + spin_lock_irqsave(&gsm->tx_lock, flags); + list_add_tail(&msg->list, &gsm->tx_ctrl_list); + gsm->tx_bytes += msg->len; + spin_unlock_irqrestore(&gsm->tx_lock, flags); + gsmld_write_trigger(gsm); + + return 0; +} + +/** + * gsm_dlci_clear_queues - remove outstanding data for a DLCI + * @gsm: mux + * @dlci: clear for this DLCI + * + * Clears the data queues for a given DLCI. + */ +static void gsm_dlci_clear_queues(struct gsm_mux *gsm, struct gsm_dlci *dlci) +{ + struct gsm_msg *msg, *nmsg; + int addr = dlci->addr; + unsigned long flags; + + /* Clear DLCI write fifo first */ + spin_lock_irqsave(&dlci->lock, flags); + kfifo_reset(&dlci->fifo); + spin_unlock_irqrestore(&dlci->lock, flags); + + /* Clear data packets in MUX write queue */ + spin_lock_irqsave(&gsm->tx_lock, flags); + list_for_each_entry_safe(msg, nmsg, &gsm->tx_data_list, list) { + if (msg->addr != addr) + continue; + gsm->tx_bytes -= msg->len; + list_del(&msg->list); + kfree(msg); } - gsm_print_packet("-->", addr, cr, control, NULL, 0); + spin_unlock_irqrestore(&gsm->tx_lock, flags); } /** @@ -683,59 +801,151 @@ } /** - * gsm_data_kick - poke the queue + * gsm_send_packet - sends a single packet * @gsm: GSM Mux - * @dlci: DLCI sending the data + * @msg: packet to send * - * The tty device has called us to indicate that room has appeared in - * the transmit queue. Ram more data into the pipe if we have any - * If we have been flow-stopped by a CMD_FCOFF, then we can only - * send messages on DLCI0 until CMD_FCON + * The given packet is encoded and sent out. No memory is freed. + * The caller must hold the gsm tx lock. + */ +static int gsm_send_packet(struct gsm_mux *gsm, struct gsm_msg *msg) +{ + int len, ret; + + + if (gsm->encoding == 0) { + gsm->txframe[0] = GSM0_SOF; + memcpy(gsm->txframe + 1, msg->data, msg->len); + gsm->txframe[msg->len + 1] = GSM0_SOF; + len = msg->len + 2; + } else { + gsm->txframe[0] = GSM1_SOF; + len = gsm_stuff_frame(msg->data, gsm->txframe + 1, msg->len); + gsm->txframe[len + 1] = GSM1_SOF; + len += 2; + } + + if (debug & 4) + gsm_hex_dump_bytes(__func__, gsm->txframe, len); + gsm_print_packet("-->", msg->addr, gsm->initiator, msg->ctrl, msg->data, + msg->len); + + ret = gsmld_output(gsm, gsm->txframe, len); + if (ret <= 0) + return ret; + /* FIXME: Can eliminate one SOF in many more cases */ + gsm->tx_bytes -= msg->len; + + return 0; +} + +/** + * gsm_is_flow_ctrl_msg - checks if flow control message + * @msg: message to check * - * FIXME: lock against link layer control transmissions + * Returns true if the given message is a flow control command of the + * control channel. False is returned in any other case. */ +static bool gsm_is_flow_ctrl_msg(struct gsm_msg *msg) +{ + unsigned int cmd; + + if (msg->addr > 0) + return false; + + switch (msg->ctrl & ~PF) { + case UI: + case UIH: + cmd = 0; + if (gsm_read_ea_val(&cmd, msg->data + 2, msg->len - 2) < 1) + break; + switch (cmd & ~PF) { + case CMD_FCOFF: + case CMD_FCON: + return true; + } + break; + } + + return false; +} -static void gsm_data_kick(struct gsm_mux *gsm, struct gsm_dlci *dlci) +/** + * gsm_data_kick - poke the queue + * @gsm: GSM Mux + * + * The tty device has called us to indicate that room has appeared in + * the transmit queue. Ram more data into the pipe if we have any. + * If we have been flow-stopped by a CMD_FCOFF, then we can only + * send messages on DLCI0 until CMD_FCON. The caller must hold + * the gsm tx lock. + */ +static int gsm_data_kick(struct gsm_mux *gsm) { struct gsm_msg *msg, *nmsg; - int len; + struct gsm_dlci *dlci; + int ret; - list_for_each_entry_safe(msg, nmsg, &gsm->tx_list, list) { - if (gsm->constipated && msg->addr) - continue; - if (gsm->encoding != 0) { - gsm->txframe[0] = GSM1_SOF; - len = gsm_stuff_frame(msg->data, - gsm->txframe + 1, msg->len); - gsm->txframe[len + 1] = GSM1_SOF; - len += 2; - } else { - gsm->txframe[0] = GSM0_SOF; - memcpy(gsm->txframe + 1 , msg->data, msg->len); - gsm->txframe[msg->len + 1] = GSM0_SOF; - len = msg->len + 2; - } + clear_bit(TTY_DO_WRITE_WAKEUP, &gsm->tty->flags); - if (debug & 4) - gsm_hex_dump_bytes(__func__, gsm->txframe, len); - if (gsmld_output(gsm, gsm->txframe, len) <= 0) + /* Serialize control messages and control channel messages first */ + list_for_each_entry_safe(msg, nmsg, &gsm->tx_ctrl_list, list) { + if (gsm->constipated && !gsm_is_flow_ctrl_msg(msg)) + continue; + ret = gsm_send_packet(gsm, msg); + switch (ret) { + case -ENOSPC: + return -ENOSPC; + case -ENODEV: + /* ldisc not open */ + gsm->tx_bytes -= msg->len; + list_del(&msg->list); + kfree(msg); + continue; + default: + if (ret >= 0) { + list_del(&msg->list); + kfree(msg); + } break; - /* FIXME: Can eliminate one SOF in many more cases */ - gsm->tx_bytes -= msg->len; - - list_del(&msg->list); - kfree(msg); + } + } - if (dlci) { - tty_port_tty_wakeup(&dlci->port); - } else { - int i = 0; + if (gsm->constipated) + return -EAGAIN; - for (i = 0; i < NUM_DLCI; i++) - if (gsm->dlci[i]) - tty_port_tty_wakeup(&gsm->dlci[i]->port); + /* Serialize other channels */ + if (list_empty(&gsm->tx_data_list)) + return 0; + list_for_each_entry_safe(msg, nmsg, &gsm->tx_data_list, list) { + dlci = gsm->dlci[msg->addr]; + /* Send only messages for DLCIs with valid state */ + if (dlci->state != DLCI_OPEN) { + gsm->tx_bytes -= msg->len; + list_del(&msg->list); + kfree(msg); + continue; + } + ret = gsm_send_packet(gsm, msg); + switch (ret) { + case -ENOSPC: + return -ENOSPC; + case -ENODEV: + /* ldisc not open */ + gsm->tx_bytes -= msg->len; + list_del(&msg->list); + kfree(msg); + continue; + default: + if (ret >= 0) { + list_del(&msg->list); + kfree(msg); + } + break; } } + + return 1; } /** @@ -784,9 +994,22 @@ msg->data = dp; /* Add to the actual output queue */ - list_add_tail(&msg->list, &gsm->tx_list); + switch (msg->ctrl & ~PF) { + case UI: + case UIH: + if (msg->addr > 0) { + list_add_tail(&msg->list, &gsm->tx_data_list); + break; + } + fallthrough; + default: + list_add_tail(&msg->list, &gsm->tx_ctrl_list); + break; + } gsm->tx_bytes += msg->len; - gsm_data_kick(gsm, dlci); + + gsmld_write_trigger(gsm); + mod_timer(&gsm->kick_timer, jiffies + 10 * gsm->t1 * HZ / 100); } /** @@ -823,41 +1046,48 @@ { struct gsm_msg *msg; u8 *dp; - int len, total_size, size; - int h = dlci->adaption - 1; + int h, len, size; - total_size = 0; - while (1) { - len = kfifo_len(&dlci->fifo); - if (len == 0) - return total_size; + /* for modem bits without break data */ + h = ((dlci->adaption == 1) ? 0 : 1); - /* MTU/MRU count only the data bits */ - if (len > gsm->mtu) - len = gsm->mtu; - - size = len + h; - - msg = gsm_data_alloc(gsm, dlci->addr, size, gsm->ftype); - /* FIXME: need a timer or something to kick this so it can't - get stuck with no work outstanding and no buffer free */ - if (msg == NULL) - return -ENOMEM; - dp = msg->data; - switch (dlci->adaption) { - case 1: /* Unstructured */ - break; - case 2: /* Unstructed with modem bits. - Always one byte as we never send inline break data */ - *dp++ = (gsm_encode_modem(dlci) << 1) | EA; - break; - } - WARN_ON(kfifo_out_locked(&dlci->fifo, dp , len, &dlci->lock) != len); - __gsm_data_queue(dlci, msg); - total_size += size; + len = kfifo_len(&dlci->fifo); + if (len == 0) + return 0; + + /* MTU/MRU count only the data bits but watch adaption mode */ + if ((len + h) > gsm->mtu) + len = gsm->mtu - h; + + size = len + h; + + msg = gsm_data_alloc(gsm, dlci->addr, size, gsm->ftype); + if (!msg) + return -ENOMEM; + dp = msg->data; + switch (dlci->adaption) { + case 1: /* Unstructured */ + break; + case 2: /* Unstructured with modem bits. + * Always one byte as we never send inline break data + */ + *dp++ = (gsm_encode_modem(dlci) << 1) | EA; + break; + default: + pr_err("%s: unsupported adaption %d\n", __func__, + dlci->adaption); + break; } + + WARN_ON(len != kfifo_out_locked(&dlci->fifo, dp, len, + &dlci->lock)); + + /* Notify upper layer about available send space. */ + tty_port_tty_wakeup(&dlci->port); + + __gsm_data_queue(dlci, msg); /* Bytes of data we used up */ - return total_size; + return size; } /** @@ -908,9 +1138,6 @@ size = len + overhead; msg = gsm_data_alloc(gsm, dlci->addr, size, gsm->ftype); - - /* FIXME: need a timer or something to kick this so it can't - get stuck with no work outstanding and no buffer free */ if (msg == NULL) { skb_queue_tail(&dlci->skb_list, dlci->skb); dlci->skb = NULL; @@ -1006,32 +1233,43 @@ * renegotiate DLCI priorities with optional stuff. Needs optimising. */ -static void gsm_dlci_data_sweep(struct gsm_mux *gsm) +static int gsm_dlci_data_sweep(struct gsm_mux *gsm) { - int len; /* Priority ordering: We should do priority with RR of the groups */ - int i = 1; - - while (i < NUM_DLCI) { - struct gsm_dlci *dlci; + int i, len, ret = 0; + bool sent; + struct gsm_dlci *dlci; - if (gsm->tx_bytes > TX_THRESH_HI) - break; - dlci = gsm->dlci[i]; - if (dlci == NULL || dlci->constipated) { - i++; - continue; + while (gsm->tx_bytes < TX_THRESH_HI) { + for (sent = false, i = 1; i < NUM_DLCI; i++) { + dlci = gsm->dlci[i]; + /* skip unused or blocked channel */ + if (!dlci || dlci->constipated) + continue; + /* skip channels with invalid state */ + if (dlci->state != DLCI_OPEN) + continue; + /* count the sent data per adaption */ + if (dlci->adaption < 3 && !dlci->net) + len = gsm_dlci_data_output(gsm, dlci); + else + len = gsm_dlci_data_output_framed(gsm, dlci); + /* on error exit */ + if (len < 0) + return ret; + if (len > 0) { + ret++; + sent = true; + /* The lower DLCs can starve the higher DLCs! */ + break; + } + /* try next */ } - if (dlci->adaption < 3 && !dlci->net) - len = gsm_dlci_data_output(gsm, dlci); - else - len = gsm_dlci_data_output_framed(gsm, dlci); - if (len < 0) + if (!sent) break; - /* DLCI empty - try the next */ - if (len == 0) - i++; - } + }; + + return ret; } /** @@ -1277,7 +1515,6 @@ const u8 *data, int clen) { u8 buf[1]; - unsigned long flags; switch (command) { case CMD_CLD: { @@ -1299,9 +1536,7 @@ gsm->constipated = false; 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, NULL); - spin_unlock_irqrestore(&gsm->tx_lock, flags); + gsmld_write_trigger(gsm); break; case CMD_FCOFF: /* Modem wants us to STFU */ @@ -1407,7 +1642,7 @@ spin_lock_irqsave(&gsm->control_lock, flags); ctrl = gsm->pending_cmd; if (ctrl) { - if (gsm->cretries == 0) { + if (gsm->cretries == 0 || !gsm->dlci[0] || gsm->dlci[0]->dead) { gsm->pending_cmd = NULL; ctrl->error = -ETIMEDOUT; ctrl->done = 1; @@ -1438,7 +1673,7 @@ unsigned int command, u8 *data, int clen) { struct gsm_control *ctrl = kzalloc(sizeof(struct gsm_control), - GFP_KERNEL); + GFP_ATOMIC); unsigned long flags; if (ctrl == NULL) return NULL; @@ -1504,25 +1739,24 @@ static void gsm_dlci_close(struct gsm_dlci *dlci) { - unsigned long flags; - del_timer(&dlci->t1); if (debug & 8) pr_debug("DLCI %d goes closed.\n", dlci->addr); dlci->state = DLCI_CLOSED; + /* Prevent us from sending data before the link is up again */ + dlci->constipated = true; if (dlci->addr != 0) { tty_port_tty_hangup(&dlci->port, false); - spin_lock_irqsave(&dlci->lock, flags); - kfifo_reset(&dlci->fifo); - spin_unlock_irqrestore(&dlci->lock, flags); + gsm_dlci_clear_queues(dlci->gsm, dlci); /* Ensure that gsmtty_open() can return. */ tty_port_set_initialized(&dlci->port, 0); wake_up_interruptible(&dlci->port.open_wait); } else dlci->gsm->dead = true; - wake_up(&dlci->gsm->event); /* A DLCI 0 close is a MUX termination so we need to kick that back to userspace somehow */ + gsm_dlci_data_kick(dlci); + wake_up(&dlci->gsm->event); } /** @@ -1539,11 +1773,13 @@ del_timer(&dlci->t1); /* This will let a tty open continue */ dlci->state = DLCI_OPEN; + dlci->constipated = false; if (debug & 8) pr_debug("DLCI %d goes open.\n", dlci->addr); /* Send current modem state */ if (dlci->addr) gsm_modem_update(dlci, 0); + gsm_dlci_data_kick(dlci); wake_up(&dlci->gsm->event); } @@ -1569,8 +1805,8 @@ switch (dlci->state) { case DLCI_OPENING: - dlci->retries--; if (dlci->retries) { + dlci->retries--; gsm_command(dlci->gsm, dlci->addr, SABM|PF); mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); } else if (!dlci->addr && gsm->control == (DM | PF)) { @@ -1585,8 +1821,8 @@ break; case DLCI_CLOSING: - dlci->retries--; if (dlci->retries) { + dlci->retries--; gsm_command(dlci->gsm, dlci->addr, DISC|PF); mod_timer(&dlci->t1, jiffies + gsm->t1 * HZ / 100); } else @@ -1620,6 +1856,25 @@ } /** + * gsm_dlci_set_opening - change state to opening + * @dlci: DLCI to open + * + * Change internal state to wait for DLCI open from initiator side. + * We set off timers and responses upon reception of an SABM. + */ +static void gsm_dlci_set_opening(struct gsm_dlci *dlci) +{ + switch (dlci->state) { + case DLCI_CLOSED: + case DLCI_CLOSING: + dlci->state = DLCI_OPENING; + break; + default: + break; + } +} + +/** * gsm_dlci_begin_close - start channel open procedure * @dlci: DLCI to open * @@ -1728,6 +1983,30 @@ } } +/** + * gsm_kick_timer - transmit if possible + * @t: timer contained in our gsm object + * + * Transmit data from DLCIs if the queue is empty. We can't rely on + * a tty wakeup except when we filled the pipe so we need to fire off + * new data ourselves in other cases. + */ +static void gsm_kick_timer(struct timer_list *t) +{ + struct gsm_mux *gsm = from_timer(gsm, t, kick_timer); + unsigned long flags; + int sent = 0; + + spin_lock_irqsave(&gsm->tx_lock, flags); + /* If we have nothing running then we need to fire up */ + if (gsm->tx_bytes < TX_THRESH_LO) + sent = gsm_dlci_data_sweep(gsm); + spin_unlock_irqrestore(&gsm->tx_lock, flags); + + if (sent && debug & 4) + pr_info("%s TX queue stalled\n", __func__); +} + /* * Allocate/Free DLCI channels */ @@ -1762,10 +2041,13 @@ dlci->addr = addr; dlci->adaption = gsm->adaption; dlci->state = DLCI_CLOSED; - if (addr) + if (addr) { dlci->data = gsm_dlci_data; - else + /* Prevent us from sending data before the link is up */ + dlci->constipated = true; + } else { dlci->data = gsm_dlci_command; + } gsm->dlci[addr] = dlci; return dlci; } @@ -1925,7 +2207,7 @@ case UIH: case UIH|PF: if (dlci == NULL || dlci->state != DLCI_OPEN) { - gsm_command(gsm, address, DM|PF); + gsm_response(gsm, address, DM|PF); return; } dlci->data(dlci, gsm->buf, gsm->len); @@ -2048,7 +2330,7 @@ } else if ((c & ISO_IEC_646_MASK) == XOFF) { gsm->constipated = false; /* Kick the link in case it is idling */ - gsm_data_kick(gsm, NULL); + gsmld_write_trigger(gsm); return; } if (c == GSM1_SOF) { @@ -2176,18 +2458,29 @@ } /* Finish outstanding timers, making sure they are done */ + del_timer_sync(&gsm->kick_timer); del_timer_sync(&gsm->t2_timer); + /* Finish writing to ldisc */ + flush_work(&gsm->tx_work); + /* Free up any link layer users and finally the control channel */ + if (gsm->has_devices) { + gsm_unregister_devices(gsm_tty_driver, gsm->num); + gsm->has_devices = false; + } for (i = NUM_DLCI - 1; i >= 0; i--) if (gsm->dlci[i]) gsm_dlci_release(gsm->dlci[i]); mutex_unlock(&gsm->mutex); /* Now wipe the queues */ tty_ldisc_flush(gsm->tty); - list_for_each_entry_safe(txq, ntxq, &gsm->tx_list, list) + list_for_each_entry_safe(txq, ntxq, &gsm->tx_ctrl_list, list) kfree(txq); - INIT_LIST_HEAD(&gsm->tx_list); + INIT_LIST_HEAD(&gsm->tx_ctrl_list); + list_for_each_entry_safe(txq, ntxq, &gsm->tx_data_list, list) + kfree(txq); + INIT_LIST_HEAD(&gsm->tx_data_list); } /** @@ -2202,20 +2495,22 @@ static int gsm_activate_mux(struct gsm_mux *gsm) { struct gsm_dlci *dlci; + int ret; - timer_setup(&gsm->t2_timer, gsm_control_retransmit, 0); - init_waitqueue_head(&gsm->event); - spin_lock_init(&gsm->control_lock); - spin_lock_init(&gsm->tx_lock); + dlci = gsm_dlci_alloc(gsm, 0); + if (dlci == NULL) + return -ENOMEM; if (gsm->encoding == 0) gsm->receive = gsm0_receive; else gsm->receive = gsm1_receive; - dlci = gsm_dlci_alloc(gsm, 0); - if (dlci == NULL) - return -ENOMEM; + ret = gsm_register_devices(gsm_tty_driver, gsm->num); + if (ret) + return ret; + + gsm->has_devices = true; gsm->dead = false; /* Tty opens are now permissible */ return 0; } @@ -2308,7 +2603,14 @@ spin_lock_init(&gsm->lock); mutex_init(&gsm->mutex); kref_init(&gsm->ref); - INIT_LIST_HEAD(&gsm->tx_list); + INIT_LIST_HEAD(&gsm->tx_ctrl_list); + INIT_LIST_HEAD(&gsm->tx_data_list); + timer_setup(&gsm->kick_timer, gsm_kick_timer, 0); + timer_setup(&gsm->t2_timer, gsm_control_retransmit, 0); + INIT_WORK(&gsm->tx_work, gsmld_write_task); + init_waitqueue_head(&gsm->event); + spin_lock_init(&gsm->control_lock); + spin_lock_init(&gsm->tx_lock); gsm->t1 = T1; gsm->t2 = T2; @@ -2465,6 +2767,47 @@ return gsm->tty->ops->write(gsm->tty, data, len); } + +/** + * gsmld_write_trigger - schedule ldisc write task + * @gsm: our mux + */ +static void gsmld_write_trigger(struct gsm_mux *gsm) +{ + if (!gsm || !gsm->dlci[0] || gsm->dlci[0]->dead) + return; + schedule_work(&gsm->tx_work); +} + + +/** + * gsmld_write_task - ldisc write task + * @work: our tx write work + * + * Writes out data to the ldisc if possible. We are doing this here to + * avoid dead-locking. This returns if no space or data is left for output. + */ +static void gsmld_write_task(struct work_struct *work) +{ + struct gsm_mux *gsm = container_of(work, struct gsm_mux, tx_work); + unsigned long flags; + int i, ret; + + /* All outstanding control channel and control messages and one data + * frame is sent. + */ + ret = -ENODEV; + spin_lock_irqsave(&gsm->tx_lock, flags); + if (gsm->tty) + ret = gsm_data_kick(gsm); + spin_unlock_irqrestore(&gsm->tx_lock, flags); + + if (ret >= 0) + for (i = 0; i < NUM_DLCI; i++) + if (gsm->dlci[i]) + tty_port_tty_wakeup(&gsm->dlci[i]->port); +} + /** * gsmld_attach_gsm - mode set up * @tty: our tty structure @@ -2475,39 +2818,14 @@ * will need moving to an ioctl path. */ -static int gsmld_attach_gsm(struct tty_struct *tty, struct gsm_mux *gsm) +static void gsmld_attach_gsm(struct tty_struct *tty, struct gsm_mux *gsm) { - unsigned int base; - int ret, i; - gsm->tty = tty_kref_get(tty); /* Turn off tty XON/XOFF handling to handle it explicitly. */ gsm->old_c_iflag = tty->termios.c_iflag; tty->termios.c_iflag &= (IXON | IXOFF); - ret = gsm_activate_mux(gsm); - if (ret != 0) - tty_kref_put(gsm->tty); - else { - /* Don't register device 0 - this is the control channel and not - a usable tty interface */ - base = mux_num_to_base(gsm); /* Base for this MUX */ - for (i = 1; i < NUM_DLCI; i++) { - struct device *dev; - - dev = tty_register_device(gsm_tty_driver, - base + i, NULL); - if (IS_ERR(dev)) { - for (i--; i >= 1; i--) - tty_unregister_device(gsm_tty_driver, - base + i); - return PTR_ERR(dev); - } - } - } - return ret; } - /** * gsmld_detach_gsm - stop doing 0710 mux * @tty: tty attached to the mux @@ -2518,12 +2836,7 @@ static void gsmld_detach_gsm(struct tty_struct *tty, struct gsm_mux *gsm) { - unsigned int base = mux_num_to_base(gsm); /* Base for this MUX */ - int i; - WARN_ON(tty != gsm->tty); - for (i = 1; i < NUM_DLCI; i++) - tty_unregister_device(gsm_tty_driver, base + i); /* Restore tty XON/XOFF handling. */ gsm->tty->termios.c_iflag = gsm->old_c_iflag; tty_kref_put(gsm->tty); @@ -2544,7 +2857,8 @@ flags = *fp++; switch (flags) { case TTY_NORMAL: - gsm->receive(gsm, *cp); + if (gsm->receive) + gsm->receive(gsm, *cp); break; case TTY_OVERRUN: case TTY_BREAK: @@ -2615,7 +2929,6 @@ static int gsmld_open(struct tty_struct *tty) { struct gsm_mux *gsm; - int ret; if (tty->ops->write == NULL) return -EINVAL; @@ -2631,12 +2944,9 @@ /* Attach the initial passive connection */ gsm->encoding = 1; - ret = gsmld_attach_gsm(tty, gsm); - if (ret != 0) { - gsm_cleanup_mux(gsm, false); - mux_put(gsm); - } - return ret; + gsmld_attach_gsm(tty, gsm); + + return 0; } /** @@ -2651,16 +2961,9 @@ static void gsmld_write_wakeup(struct tty_struct *tty) { struct gsm_mux *gsm = tty->disc_data; - unsigned long flags; /* Queue poll */ - clear_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); - spin_lock_irqsave(&gsm->tx_lock, flags); - gsm_data_kick(gsm, NULL); - if (gsm->tx_bytes < TX_THRESH_LO) { - gsm_dlci_data_sweep(gsm); - } - spin_unlock_irqrestore(&gsm->tx_lock, flags); + gsmld_write_trigger(gsm); } /** @@ -2704,11 +3007,24 @@ static ssize_t gsmld_write(struct tty_struct *tty, struct file *file, const unsigned char *buf, size_t nr) { - int space = tty_write_room(tty); + struct gsm_mux *gsm = tty->disc_data; + unsigned long flags; + int space; + int ret; + + if (!gsm) + return -ENODEV; + + ret = -ENOBUFS; + spin_lock_irqsave(&gsm->tx_lock, flags); + space = tty_write_room(tty); if (space >= nr) - return tty->ops->write(tty, buf, nr); - set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); - return -ENOBUFS; + ret = tty->ops->write(tty, buf, nr); + else + set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags); + spin_unlock_irqrestore(&gsm->tx_lock, flags); + + return ret; } /** @@ -2733,12 +3049,15 @@ poll_wait(file, &tty->read_wait, wait); poll_wait(file, &tty->write_wait, wait); + + if (gsm->dead) + mask |= EPOLLHUP; if (tty_hung_up_p(file)) mask |= EPOLLHUP; + if (test_bit(TTY_OTHER_CLOSED, &tty->flags)) + mask |= EPOLLHUP; if (!tty_is_writelocked(tty) && tty_write_room(tty) > 0) mask |= EPOLLOUT | EPOLLWRNORM; - if (gsm->dead) - mask |= EPOLLHUP; return mask; } @@ -3174,6 +3493,8 @@ /* Start sending off SABM messages */ if (gsm->initiator) gsm_dlci_begin_open(dlci); + else + gsm_dlci_set_opening(dlci); /* And wait for virtual carrier */ return tty_port_block_til_ready(port, tty, filp); } --- linux-5.19.0.orig/drivers/tty/serial/8250/8250.h +++ linux-5.19.0/drivers/tty/serial/8250/8250.h @@ -123,6 +123,26 @@ up->port.serial_out(&up->port, offset, value); } +/** + * serial_lsr_in - Read LSR register and preserve flags across reads + * @up: uart 8250 port + * + * Read LSR register and handle saving non-preserved flags across reads. + * The flags that are not preserved across reads are stored into + * up->lsr_saved_flags. + * + * Returns LSR value or'ed with the preserved flags (if any). + */ +static inline unsigned int serial_lsr_in(struct uart_8250_port *up) +{ + unsigned int lsr = up->lsr_saved_flags; + + lsr |= serial_in(up, UART_LSR); + up->lsr_saved_flags = lsr & LSR_SAVE_FLAGS; + + return lsr; +} + /* * For the 16C950 */ --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_bcm2835aux.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_bcm2835aux.c @@ -166,8 +166,10 @@ uartclk = clk_get_rate(data->clk); if (!uartclk) { ret = device_property_read_u32(&pdev->dev, "clock-frequency", &uartclk); - if (ret) - return dev_err_probe(&pdev->dev, ret, "could not get clk rate\n"); + if (ret) { + dev_err_probe(&pdev->dev, ret, "could not get clk rate\n"); + goto dis_clk; + } } /* the HW-clock divider for bcm2835aux is 8, --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_bcm7271.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_bcm7271.c @@ -1139,16 +1139,19 @@ struct brcmuart_priv *priv = dev_get_drvdata(dev); struct uart_8250_port *up = serial8250_get_port(priv->line); struct uart_port *port = &up->port; - - serial8250_suspend_port(priv->line); - clk_disable_unprepare(priv->baud_mux_clk); + unsigned long flags; /* * This will prevent resume from enabling RTS before the - * baud rate has been resored. + * baud rate has been restored. */ + spin_lock_irqsave(&port->lock, flags); priv->saved_mctrl = port->mctrl; - port->mctrl = 0; + port->mctrl &= ~TIOCM_RTS; + spin_unlock_irqrestore(&port->lock, flags); + + serial8250_suspend_port(priv->line); + clk_disable_unprepare(priv->baud_mux_clk); return 0; } @@ -1158,6 +1161,7 @@ struct brcmuart_priv *priv = dev_get_drvdata(dev); struct uart_8250_port *up = serial8250_get_port(priv->line); struct uart_port *port = &up->port; + unsigned long flags; int ret; ret = clk_prepare_enable(priv->baud_mux_clk); @@ -1180,7 +1184,15 @@ start_rx_dma(serial8250_get_port(priv->line)); } serial8250_resume_port(priv->line); - port->mctrl = priv->saved_mctrl; + + if (priv->saved_mctrl & TIOCM_RTS) { + /* Restore RTS */ + spin_lock_irqsave(&port->lock, flags); + port->mctrl |= TIOCM_RTS; + port->ops->set_mctrl(port, port->mctrl); + spin_unlock_irqrestore(&port->lock, flags); + } + return 0; } @@ -1200,9 +1212,17 @@ static int __init brcmuart_init(void) { + int ret; + brcmuart_debugfs_root = debugfs_create_dir( brcmuart_platform_driver.driver.name, NULL); - return platform_driver_register(&brcmuart_platform_driver); + ret = platform_driver_register(&brcmuart_platform_driver); + if (ret) { + debugfs_remove_recursive(brcmuart_debugfs_root); + return ret; + } + + return 0; } module_init(brcmuart_init); --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_core.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_core.c @@ -277,8 +277,7 @@ * the "Diva" UART used on the management processor on many HP * ia64 and parisc boxes. */ - lsr = serial_in(up, UART_LSR); - up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; + lsr = serial_lsr_in(up); if ((iir & UART_IIR_NO_INT) && (up->ier & UART_IER_THRI) && (!uart_circ_empty(&up->port.state->xmit) || up->port.x_char) && (lsr & UART_LSR_THRE)) { @@ -299,10 +298,9 @@ jiffies + uart_poll_timeout(&up->port) + HZ / 5); } -static int univ8250_setup_irq(struct uart_8250_port *up) +static void univ8250_setup_timer(struct uart_8250_port *up) { struct uart_port *port = &up->port; - int retval = 0; /* * The above check will only give an accurate result the first time @@ -323,10 +321,16 @@ */ if (!port->irq) mod_timer(&up->timer, jiffies + uart_poll_timeout(port)); - else - retval = serial_link_irq_chain(up); +} - return retval; +static int univ8250_setup_irq(struct uart_8250_port *up) +{ + struct uart_port *port = &up->port; + + if (port->irq) + return serial_link_irq_chain(up); + + return 0; } static void univ8250_release_irq(struct uart_8250_port *up) @@ -382,6 +386,7 @@ static const struct uart_8250_ops univ8250_driver_ops = { .setup_irq = univ8250_setup_irq, .release_irq = univ8250_release_irq, + .setup_timer = univ8250_setup_timer, }; static struct uart_8250_port serial8250_ports[UART_NR]; @@ -1008,6 +1013,7 @@ uart->port.throttle = up->port.throttle; uart->port.unthrottle = up->port.unthrottle; uart->port.rs485_config = up->port.rs485_config; + uart->port.rs485_supported = up->port.rs485_supported; uart->port.rs485 = up->port.rs485; uart->rs485_start_tx = up->rs485_start_tx; uart->rs485_stop_tx = up->rs485_stop_tx; --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_dw.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_dw.c @@ -122,12 +122,15 @@ /* Returns once the transmitter is empty or we run out of retries */ static void dw8250_tx_wait_empty(struct uart_port *p) { + struct uart_8250_port *up = up_to_u8250p(p); unsigned int tries = 20000; unsigned int delay_threshold = tries - 1000; unsigned int lsr; while (tries--) { lsr = readb (p->membase + (UART_LSR << p->regshift)); + up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; + if (lsr & UART_LSR_TEMT) break; @@ -253,7 +256,7 @@ */ if (!up->dma && rx_timeout) { spin_lock_irqsave(&p->lock, flags); - status = p->serial_in(p, UART_LSR); + status = serial_lsr_in(up); if (!(status & (UART_LSR_DR | UART_LSR_BI))) (void) p->serial_in(p, UART_RX); @@ -263,7 +266,10 @@ /* Manually stop the Rx DMA transfer when acting as flow controller */ if (quirks & DW_UART_QUIRK_IS_DMA_FC && up->dma && up->dma->rx_running && rx_timeout) { - status = p->serial_in(p, UART_LSR); + spin_lock_irqsave(&p->lock, flags); + status = serial_lsr_in(up); + spin_unlock_irqrestore(&p->lock, flags); + if (status & (UART_LSR_DR | UART_LSR_BI)) { dw8250_writel_ext(p, RZN1_UART_RDMACR, 0); dw8250_writel_ext(p, DW_UART_DMASA, 1); --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_fsl.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_fsl.c @@ -77,7 +77,7 @@ if ((lsr & UART_LSR_THRE) && (up->ier & UART_IER_THRI)) serial8250_tx_chars(up); - up->lsr_saved_flags = orig_lsr; + up->lsr_saved_flags |= orig_lsr & UART_LSR_BI; uart_unlock_and_check_sysrq_irqrestore(&up->port, flags); --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_lpss.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_lpss.c @@ -174,6 +174,8 @@ */ up->dma = dma; + lpss->dma_maxburst = 16; + port->set_termios = dw8250_do_set_termios; return 0; @@ -277,8 +279,13 @@ struct dw_dma_slave *rx_param, *tx_param; struct device *dev = port->port.dev; - if (!lpss->dma_param.dma_dev) + if (!lpss->dma_param.dma_dev) { + dma = port->dma; + if (dma) + goto out_configuration_only; + return 0; + } rx_param = devm_kzalloc(dev, sizeof(*rx_param), GFP_KERNEL); if (!rx_param) @@ -289,16 +296,18 @@ return -ENOMEM; *rx_param = lpss->dma_param; - dma->rxconf.src_maxburst = lpss->dma_maxburst; - *tx_param = lpss->dma_param; - dma->txconf.dst_maxburst = lpss->dma_maxburst; dma->fn = lpss8250_dma_filter; dma->rx_param = rx_param; dma->tx_param = tx_param; port->dma = dma; + +out_configuration_only: + dma->rxconf.src_maxburst = lpss->dma_maxburst; + dma->txconf.dst_maxburst = lpss->dma_maxburst; + return 0; } --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_omap.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_omap.c @@ -157,7 +157,11 @@ return readl(up->port.membase + (reg << up->port.regshift)); } -static void omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl) +/* + * Called on runtime PM resume path from omap8250_restore_regs(), and + * omap8250_set_mctrl(). + */ +static void __omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl) { struct uart_8250_port *up = up_to_u8250p(port); struct omap8250_priv *priv = up->port.private_data; @@ -181,6 +185,20 @@ } } +static void omap8250_set_mctrl(struct uart_port *port, unsigned int mctrl) +{ + int err; + + err = pm_runtime_resume_and_get(port->dev); + if (err) + return; + + __omap8250_set_mctrl(port, mctrl); + + pm_runtime_mark_last_busy(port->dev); + pm_runtime_put_autosuspend(port->dev); +} + /* * Work Around for Errata i202 (2430, 3430, 3630, 4430 and 4460) * The access to uart register after MDR1 Access @@ -193,27 +211,10 @@ static void omap_8250_mdr1_errataset(struct uart_8250_port *up, struct omap8250_priv *priv) { - u8 timeout = 255; - serial_out(up, UART_OMAP_MDR1, priv->mdr1); udelay(2); serial_out(up, UART_FCR, up->fcr | UART_FCR_CLEAR_XMIT | UART_FCR_CLEAR_RCVR); - /* - * Wait for FIFO to empty: when empty, RX_FIFO_E bit is 0 and - * TX_FIFO_E bit is 1. - */ - while (UART_LSR_THRE != (serial_in(up, UART_LSR) & - (UART_LSR_THRE | UART_LSR_DR))) { - timeout--; - if (!timeout) { - /* Should *never* happen. we warn and carry on */ - dev_crit(up->port.dev, "Errata i202: timedout %x\n", - serial_in(up, UART_LSR)); - break; - } - udelay(1); - } } static void omap_8250_get_divisor(struct uart_port *port, unsigned int baud, @@ -292,6 +293,7 @@ { struct omap8250_priv *priv = up->port.private_data; struct uart_8250_dma *dma = up->dma; + u8 mcr = serial8250_in_MCR(up); if (dma && dma->tx_running) { /* @@ -308,7 +310,7 @@ serial_out(up, UART_EFR, UART_EFR_ECB); serial_out(up, UART_LCR, UART_LCR_CONF_MODE_A); - serial8250_out_MCR(up, UART_MCR_TCRTLR); + serial8250_out_MCR(up, mcr | UART_MCR_TCRTLR); serial_out(up, UART_FCR, up->fcr); omap8250_update_scr(up, priv); @@ -324,7 +326,8 @@ serial_out(up, UART_LCR, 0); /* drop TCR + TLR access, we setup XON/XOFF later */ - serial8250_out_MCR(up, up->mcr); + serial8250_out_MCR(up, mcr); + serial_out(up, UART_IER, up->ier); serial_out(up, UART_LCR, UART_LCR_CONF_MODE_B); @@ -341,7 +344,10 @@ omap8250_update_mdr1(up, priv); - up->port.ops->set_mctrl(&up->port, up->port.mctrl); + __omap8250_set_mctrl(&up->port, up->port.mctrl); + + if (up->port.rs485.flags & SER_RS485_ENABLED) + serial8250_em485_stop_tx(up); } /* @@ -666,7 +672,6 @@ pm_runtime_get_sync(port->dev); - up->mcr = 0; serial_out(up, UART_FCR, UART_FCR_CLEAR_RCVR | UART_FCR_CLEAR_XMIT); serial_out(up, UART_LCR, UART_LCR_WLEN8); @@ -1457,9 +1462,15 @@ static int omap8250_remove(struct platform_device *pdev) { struct omap8250_priv *priv = platform_get_drvdata(pdev); + int err; + + err = pm_runtime_resume_and_get(&pdev->dev); + if (err) + return err; pm_runtime_dont_use_autosuspend(&pdev->dev); pm_runtime_put_sync(&pdev->dev); + flush_work(&priv->qos_work); pm_runtime_disable(&pdev->dev); serial8250_unregister_port(priv->line); cpu_latency_qos_remove_request(&priv->pm_qos_request); --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_pci.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_pci.c @@ -1232,6 +1232,10 @@ serial8250_do_set_mctrl(port, mctrl); } +/* + * We require EFR features for clock programming, so set UPF_FULL_PROBE + * for full probing regardless of CONFIG_SERIAL_8250_16550A_VARIANTS setting. + */ static int pci_oxsemi_tornado_setup(struct serial_private *priv, const struct pciserial_board *board, struct uart_8250_port *up, int idx) @@ -1239,6 +1243,7 @@ struct pci_dev *dev = priv->dev; if (pci_oxsemi_tornado_p(dev)) { + up->port.flags |= UPF_FULL_PROBE; up->port.get_divisor = pci_oxsemi_tornado_get_divisor; up->port.set_divisor = pci_oxsemi_tornado_set_divisor; up->port.set_mctrl = pci_oxsemi_tornado_set_mctrl; @@ -1637,7 +1642,6 @@ resource_size_t bar_data[3]; u8 config_base; struct serial_private *priv = pci_get_drvdata(dev); - struct uart_8250_port *port; if (!(pci_resource_flags(dev, 5) & IORESOURCE_IO) || !(pci_resource_flags(dev, 4) & IORESOURCE_IO) || @@ -1684,13 +1688,7 @@ pci_write_config_byte(dev, config_base + 0x06, dev->irq); - if (priv) { - /* re-apply RS232/485 mode when - * pciserial_resume_ports() - */ - port = serial8250_get_port(priv->line[i]); - pci_fintek_rs485_config(&port->port, NULL); - } else { + if (!priv) { /* First init without port data * force init to RS232 Mode */ @@ -5077,6 +5075,115 @@ 0, 0, pbn_b2_4_115200 }, /* + * Brainboxes PX-101 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4005, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4019, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_2_15625000 }, + /* + * Brainboxes PX-235/246 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4004, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_1_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4016, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + /* + * Brainboxes PX-203/PX-257 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4006, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_2_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4015, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, + /* + * Brainboxes PX-260/PX-701 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x400A, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, + /* + * Brainboxes PX-310 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x400E, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_2_15625000 }, + /* + * Brainboxes PX-313 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x400C, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_2_15625000 }, + /* + * Brainboxes PX-320/324/PX-376/PX-387 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x400B, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + /* + * Brainboxes PX-335/346 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x400F, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, + /* + * Brainboxes PX-368 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4010, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, + /* + * Brainboxes PX-420 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4000, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_4_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4011, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_4_15625000 }, + /* + * Brainboxes PX-803 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4009, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_1_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x401E, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + /* + * Brainboxes PX-846 + */ + { PCI_VENDOR_ID_INTASHIELD, 0x4008, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_b0_1_115200 }, + { PCI_VENDOR_ID_INTASHIELD, 0x4017, + PCI_ANY_ID, PCI_ANY_ID, + 0, 0, + pbn_oxsemi_1_15625000 }, + + /* * Perle PCI-RAS cards */ { PCI_VENDOR_ID_PLX, PCI_DEVICE_ID_PLX_9030, --- linux-5.19.0.orig/drivers/tty/serial/8250/8250_port.c +++ linux-5.19.0/drivers/tty/serial/8250/8250_port.c @@ -600,7 +600,7 @@ static int serial8250_em485_init(struct uart_8250_port *p) { if (p->em485) - return 0; + goto deassert_rts; p->em485 = kmalloc(sizeof(struct uart_8250_em485), GFP_ATOMIC); if (!p->em485) @@ -616,7 +616,9 @@ p->em485->active_timer = NULL; p->em485->tx_stopped = true; - p->rs485_stop_tx(p); +deassert_rts: + if (p->em485->tx_stopped) + p->rs485_stop_tx(p); return 0; } @@ -1029,7 +1031,8 @@ up->port.type = PORT_16550A; up->capabilities |= UART_CAP_FIFO; - if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS)) + if (!IS_ENABLED(CONFIG_SERIAL_8250_16550A_VARIANTS) && + !(up->port.flags & UPF_FULL_PROBE)) return; /* @@ -1514,11 +1517,9 @@ struct uart_8250_em485 *em485 = p->em485; if (em485) { - unsigned char lsr = serial_in(p, UART_LSR); + unsigned char lsr = serial_lsr_in(p); u64 stop_delay = 0; - p->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; - if (!(lsr & UART_LSR_THRE)) return; /* @@ -1573,10 +1574,8 @@ if (serial8250_set_THRI(up)) { if (up->bugs & UART_BUG_TXEN) { - unsigned char lsr; + unsigned char lsr = serial_lsr_in(up); - lsr = serial_in(up, UART_LSR); - up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; if (lsr & UART_LSR_THRE) serial8250_tx_chars(up); } @@ -1902,10 +1901,13 @@ static bool handle_rx_dma(struct uart_8250_port *up, unsigned int iir) { switch (iir & 0x3f) { - case UART_IIR_RX_TIMEOUT: - serial8250_rx_dma_flush(up); + case UART_IIR_RDI: + if (!up->dma->rx_running) + break; fallthrough; case UART_IIR_RLSI: + case UART_IIR_RX_TIMEOUT: + serial8250_rx_dma_flush(up); return true; } return up->dma->rx_dma(up); @@ -1926,7 +1928,7 @@ spin_lock_irqsave(&port->lock, flags); - status = serial_port_in(port, UART_LSR); + status = serial_lsr_in(up); /* * If port is stopped and there are no error conditions in the @@ -2007,8 +2009,7 @@ serial8250_rpm_get(up); spin_lock_irqsave(&port->lock, flags); - lsr = serial_port_in(port, UART_LSR); - up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; + lsr = serial_lsr_in(up); spin_unlock_irqrestore(&port->lock, flags); serial8250_rpm_put(up); @@ -2056,6 +2057,9 @@ static void serial8250_set_mctrl(struct uart_port *port, unsigned int mctrl) { + if (port->rs485.flags & SER_RS485_ENABLED) + return; + if (port->set_mctrl) port->set_mctrl(port, mctrl); else @@ -2084,9 +2088,7 @@ /* Wait up to 10ms for the character(s) to be sent. */ for (;;) { - status = serial_in(up, UART_LSR); - - up->lsr_saved_flags |= status & LSR_SAVE_FLAGS; + status = serial_lsr_in(up); if ((status & bits) == bits) break; @@ -2309,6 +2311,10 @@ if (port->irq && (up->port.flags & UPF_SHARE_IRQ)) up->port.irqflags |= IRQF_SHARED; + retval = up->ops->setup_irq(up); + if (retval) + goto out; + if (port->irq && !(up->port.flags & UPF_NO_THRE_TEST)) { unsigned char iir1; @@ -2351,9 +2357,7 @@ } } - retval = up->ops->setup_irq(up); - if (retval) - goto out; + up->ops->setup_timer(up); /* * Now, initialize the UART @@ -3202,9 +3206,6 @@ if (flags & UART_CONFIG_TYPE) autoconfig(up); - if (port->rs485.flags & SER_RS485_ENABLED) - port->rs485_config(port, &port->rs485); - /* if access method is AU, it is a 16550 with a quirk */ if (port->type == PORT_16550A && port->iotype == UPIO_AU) up->bugs |= UART_BUG_NOMSR; @@ -3329,8 +3330,13 @@ unsigned int baud, quot, frac = 0; termios.c_cflag = port->cons->cflag; - if (port->state->port.tty && termios.c_cflag == 0) + termios.c_ispeed = port->cons->ispeed; + termios.c_ospeed = port->cons->ospeed; + if (port->state->port.tty && termios.c_cflag == 0) { termios.c_cflag = port->state->port.tty->termios.c_cflag; + termios.c_ispeed = port->state->port.tty->termios.c_ispeed; + termios.c_ospeed = port->state->port.tty->termios.c_ospeed; + } baud = serial8250_get_baud_rate(port, &termios, NULL); quot = serial8250_get_divisor(port, baud, &frac); --- linux-5.19.0.orig/drivers/tty/serial/8250/Kconfig +++ linux-5.19.0/drivers/tty/serial/8250/Kconfig @@ -118,7 +118,7 @@ config SERIAL_8250_GSC tristate - depends on SERIAL_8250 && GSC + depends on SERIAL_8250 && PARISC default SERIAL_8250 config SERIAL_8250_DMA --- linux-5.19.0.orig/drivers/tty/serial/altera_uart.c +++ linux-5.19.0/drivers/tty/serial/altera_uart.c @@ -199,9 +199,8 @@ */ } -static void altera_uart_rx_chars(struct altera_uart *pp) +static void altera_uart_rx_chars(struct uart_port *port) { - struct uart_port *port = &pp->port; unsigned char ch, flag; unsigned short status; @@ -246,9 +245,8 @@ tty_flip_buffer_push(&port->state->port); } -static void altera_uart_tx_chars(struct altera_uart *pp) +static void altera_uart_tx_chars(struct uart_port *port) { - struct uart_port *port = &pp->port; struct circ_buf *xmit = &port->state->xmit; if (port->x_char) { @@ -272,26 +270,25 @@ if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(port); - if (xmit->head == xmit->tail) { - pp->imr &= ~ALTERA_UART_CONTROL_TRDY_MSK; - altera_uart_update_ctrl_reg(pp); - } + if (uart_circ_empty(xmit)) + altera_uart_stop_tx(port); } static irqreturn_t altera_uart_interrupt(int irq, void *data) { struct uart_port *port = data; struct altera_uart *pp = container_of(port, struct altera_uart, port); + unsigned long flags; unsigned int isr; isr = altera_uart_readl(port, ALTERA_UART_STATUS_REG) & pp->imr; - spin_lock(&port->lock); + spin_lock_irqsave(&port->lock, flags); if (isr & ALTERA_UART_STATUS_RRDY_MSK) - altera_uart_rx_chars(pp); + altera_uart_rx_chars(port); if (isr & ALTERA_UART_STATUS_TRDY_MSK) - altera_uart_tx_chars(pp); - spin_unlock(&port->lock); + altera_uart_tx_chars(port); + spin_unlock_irqrestore(&port->lock, flags); return IRQ_RETVAL(isr); } --- linux-5.19.0.orig/drivers/tty/serial/amba-pl011.c +++ linux-5.19.0/drivers/tty/serial/amba-pl011.c @@ -1045,6 +1045,9 @@ */ static inline void pl011_dma_rx_stop(struct uart_amba_port *uap) { + if (!uap->using_rx_dma) + return; + /* FIXME. Just disable the DMA enable */ uap->dmacr &= ~UART011_RXDMAE; pl011_write(uap->dmacr, uap, REG_DMACR); @@ -1828,8 +1831,17 @@ static void pl011_unthrottle_rx(struct uart_port *port) { struct uart_amba_port *uap = container_of(port, struct uart_amba_port, port); + unsigned long flags; + + spin_lock_irqsave(&uap->port.lock, flags); + + uap->im = UART011_RTIM; + if (!pl011_dma_rx_running(uap)) + uap->im |= UART011_RXIM; - pl011_enable_interrupts(uap); + pl011_write(uap->im, uap, REG_IMSC); + + spin_unlock_irqrestore(&uap->port.lock, flags); } static int pl011_startup(struct uart_port *port) --- linux-5.19.0.orig/drivers/tty/serial/ar933x_uart.c +++ linux-5.19.0/drivers/tty/serial/ar933x_uart.c @@ -591,6 +591,11 @@ dev_err(port->dev, "RS485 needs rts-gpio\n"); return 1; } + + if (rs485conf->flags & SER_RS485_ENABLED) + gpiod_set_value(up->rts_gpiod, + !!(rs485conf->flags & SER_RS485_RTS_AFTER_SEND)); + port->rs485 = *rs485conf; return 0; } --- linux-5.19.0.orig/drivers/tty/serial/atmel_serial.c +++ linux-5.19.0/drivers/tty/serial/atmel_serial.c @@ -296,9 +296,6 @@ mode = atmel_uart_readl(port, ATMEL_US_MR); - /* Resetting serial mode to RS232 (0x0) */ - mode &= ~ATMEL_US_USMODE; - if (rs485conf->flags & SER_RS485_ENABLED) { dev_dbg(port->dev, "Setting UART to RS485\n"); if (rs485conf->flags & SER_RS485_RX_DURING_TX) @@ -308,6 +305,7 @@ atmel_uart_writel(port, ATMEL_US_TTGR, rs485conf->delay_rts_after_send); + mode &= ~ATMEL_US_USMODE; mode |= ATMEL_US_USMODE_RS485; } else { dev_dbg(port->dev, "Setting UART to RS232\n"); --- linux-5.19.0.orig/drivers/tty/serial/cpm_uart/cpm_uart_core.c +++ linux-5.19.0/drivers/tty/serial/cpm_uart/cpm_uart_core.c @@ -1214,12 +1214,6 @@ pinfo->port.fifosize = pinfo->tx_nrfifos * pinfo->tx_fifosize; spin_lock_init(&pinfo->port.lock); - pinfo->port.irq = irq_of_parse_and_map(np, 0); - if (pinfo->port.irq == NO_IRQ) { - ret = -EINVAL; - goto out_pram; - } - for (i = 0; i < NUM_GPIOS; i++) { struct gpio_desc *gpiod; @@ -1229,7 +1223,7 @@ if (IS_ERR(gpiod)) { ret = PTR_ERR(gpiod); - goto out_irq; + goto out_pram; } if (gpiod) { @@ -1255,8 +1249,6 @@ return cpm_uart_request_port(&pinfo->port); -out_irq: - irq_dispose_mapping(pinfo->port.irq); out_pram: cpm_uart_unmap_pram(pinfo, pram); out_mem: @@ -1436,11 +1428,17 @@ /* initialize the device pointer for the port */ pinfo->port.dev = &ofdev->dev; + pinfo->port.irq = irq_of_parse_and_map(ofdev->dev.of_node, 0); + if (!pinfo->port.irq) + return -EINVAL; + ret = cpm_uart_init_port(ofdev->dev.of_node, pinfo); - if (ret) - return ret; + if (!ret) + return uart_add_one_port(&cpm_reg, &pinfo->port); + + irq_dispose_mapping(pinfo->port.irq); - return uart_add_one_port(&cpm_reg, &pinfo->port); + return ret; } static int cpm_uart_remove(struct platform_device *ofdev) --- linux-5.19.0.orig/drivers/tty/serial/fsl_lpuart.c +++ linux-5.19.0/drivers/tty/serial/fsl_lpuart.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -402,33 +403,6 @@ #define lpuart_enable_clks(x) __lpuart_enable_clks(x, true) #define lpuart_disable_clks(x) __lpuart_enable_clks(x, false) -static int lpuart_global_reset(struct lpuart_port *sport) -{ - struct uart_port *port = &sport->port; - void __iomem *global_addr; - int ret; - - if (uart_console(port)) - return 0; - - ret = clk_prepare_enable(sport->ipg_clk); - if (ret) { - dev_err(sport->port.dev, "failed to enable uart ipg clk: %d\n", ret); - return ret; - } - - if (is_imx7ulp_lpuart(sport) || is_imx8qxp_lpuart(sport)) { - global_addr = port->membase + UART_GLOBAL - IMX_REG_OFF; - writel(UART_GLOBAL_RST, global_addr); - usleep_range(GLOBAL_RST_MIN_US, GLOBAL_RST_MAX_US); - writel(0, global_addr); - usleep_range(GLOBAL_RST_MIN_US, GLOBAL_RST_MAX_US); - } - - clk_disable_unprepare(sport->ipg_clk); - return 0; -} - static void lpuart_stop_tx(struct uart_port *port) { unsigned char temp; @@ -990,12 +964,12 @@ if (sr & (UARTSTAT_PE | UARTSTAT_OR | UARTSTAT_FE)) { if (sr & UARTSTAT_PE) { + sport->port.icount.parity++; + } else if (sr & UARTSTAT_FE) { if (is_break) sport->port.icount.brk++; else - sport->port.icount.parity++; - } else if (sr & UARTSTAT_FE) { - sport->port.icount.frame++; + sport->port.icount.frame++; } if (sr & UARTSTAT_OR) @@ -1010,12 +984,12 @@ sr &= sport->port.read_status_mask; if (sr & UARTSTAT_PE) { + flg = TTY_PARITY; + } else if (sr & UARTSTAT_FE) { if (is_break) flg = TTY_BREAK; else - flg = TTY_PARITY; - } else if (sr & UARTSTAT_FE) { - flg = TTY_FRAME; + flg = TTY_FRAME; } if (sr & UARTSTAT_OR) @@ -1381,9 +1355,9 @@ * Note: UART is assumed to be active high. */ if (rs485->flags & SER_RS485_RTS_ON_SEND) - modem &= ~UARTMODEM_TXRTSPOL; - else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) modem |= UARTMODEM_TXRTSPOL; + else if (rs485->flags & SER_RS485_RTS_AFTER_SEND) + modem &= ~UARTMODEM_TXRTSPOL; } writeb(modem, sport->port.membase + UARTMODEM); @@ -1768,6 +1742,7 @@ if (sport->lpuart_dma_rx_use) { del_timer_sync(&sport->lpuart_timer); lpuart_dma_rx_free(&sport->port); + sport->lpuart_dma_rx_use = false; } if (sport->lpuart_dma_tx_use) { @@ -1776,6 +1751,7 @@ sport->dma_tx_in_progress = false; dmaengine_terminate_all(sport->dma_tx_chan); } + sport->lpuart_dma_tx_use = false; } if (sport->dma_tx_chan) @@ -2182,6 +2158,7 @@ uart_update_timeout(port, termios->c_cflag, baud); /* wait transmit engin complete */ + lpuart32_write(&sport->port, 0, UARTMODIR); lpuart32_wait_bit_set(&sport->port, UARTSTAT, UARTSTAT_TC); /* disable transmit and receive */ @@ -2621,6 +2598,59 @@ .cons = LPUART_CONSOLE, }; +static int lpuart_global_reset(struct lpuart_port *sport) +{ + struct uart_port *port = &sport->port; + void __iomem *global_addr; + unsigned long ctrl, bd; + unsigned int val = 0; + int ret; + + ret = clk_prepare_enable(sport->ipg_clk); + if (ret) { + dev_err(sport->port.dev, "failed to enable uart ipg clk: %d\n", ret); + return ret; + } + + if (is_imx7ulp_lpuart(sport) || is_imx8qxp_lpuart(sport)) { + /* + * If the transmitter is used by earlycon, wait for transmit engine to + * complete and then reset. + */ + ctrl = lpuart32_read(port, UARTCTRL); + if (ctrl & UARTCTRL_TE) { + bd = lpuart32_read(&sport->port, UARTBAUD); + if (read_poll_timeout(lpuart32_tx_empty, val, val, 1, 100000, false, + port)) { + dev_warn(sport->port.dev, + "timeout waiting for transmit engine to complete\n"); + clk_disable_unprepare(sport->ipg_clk); + return 0; + } + } + + global_addr = port->membase + UART_GLOBAL - IMX_REG_OFF; + writel(UART_GLOBAL_RST, global_addr); + usleep_range(GLOBAL_RST_MIN_US, GLOBAL_RST_MAX_US); + writel(0, global_addr); + usleep_range(GLOBAL_RST_MIN_US, GLOBAL_RST_MAX_US); + + /* Recover the transmitter for earlycon. */ + if (ctrl & UARTCTRL_TE) { + lpuart32_write(port, bd, UARTBAUD); + lpuart32_write(port, ctrl, UARTCTRL); + } + } + + clk_disable_unprepare(sport->ipg_clk); + return 0; +} + +static const struct serial_rs485 lpuart_rs485_supported = { + .flags = SER_RS485_ENABLED | SER_RS485_RTS_ON_SEND | SER_RS485_RTS_AFTER_SEND, + /* delay_rts_* and RX_DURING_TX are not supported */ +}; + static int lpuart_probe(struct platform_device *pdev) { const struct lpuart_soc_data *sdata = of_device_get_match_data(&pdev->dev); @@ -2660,6 +2690,7 @@ sport->port.rs485_config = lpuart32_config_rs485; else sport->port.rs485_config = lpuart_config_rs485; + sport->port.rs485_supported = &lpuart_rs485_supported; sport->ipg_clk = devm_clk_get(&pdev->dev, "ipg"); if (IS_ERR(sport->ipg_clk)) { @@ -2705,9 +2736,6 @@ lpuart_reg.cons = LPUART_CONSOLE; handler = lpuart_int; } - ret = uart_add_one_port(&lpuart_reg, &sport->port); - if (ret) - goto failed_attach_port; ret = lpuart_global_reset(sport); if (ret) @@ -2724,7 +2752,9 @@ sport->port.rs485.delay_rts_after_send) dev_err(&pdev->dev, "driver doesn't support RTS delays\n"); - sport->port.rs485_config(&sport->port, &sport->port.rs485); + ret = uart_add_one_port(&lpuart_reg, &sport->port); + if (ret) + goto failed_attach_port; ret = devm_request_irq(&pdev->dev, sport->port.irq, handler, 0, DRIVER_NAME, sport); @@ -2735,9 +2765,9 @@ failed_irq_request: failed_get_rs485: -failed_reset: uart_remove_one_port(&lpuart_reg, &sport->port); failed_attach_port: +failed_reset: lpuart_disable_clks(sport); return ret; } --- linux-5.19.0.orig/drivers/tty/serial/imx.c +++ linux-5.19.0/drivers/tty/serial/imx.c @@ -380,8 +380,7 @@ { *ucr2 &= ~(UCR2_CTSC | UCR2_CTS); - sport->port.mctrl |= TIOCM_RTS; - mctrl_gpio_set(sport->gpios, sport->port.mctrl); + mctrl_gpio_set(sport->gpios, sport->port.mctrl | TIOCM_RTS); } /* called with port.lock taken and irqs caller dependent */ @@ -390,8 +389,7 @@ *ucr2 &= ~UCR2_CTSC; *ucr2 |= UCR2_CTS; - sport->port.mctrl &= ~TIOCM_RTS; - mctrl_gpio_set(sport->gpios, sport->port.mctrl); + mctrl_gpio_set(sport->gpios, sport->port.mctrl & ~TIOCM_RTS); } static void start_hrtimer_ms(struct hrtimer *hrt, unsigned long msec) @@ -2338,8 +2336,6 @@ dev_err(&pdev->dev, "low-active RTS not possible when receiver is off, enabling receiver\n"); - imx_uart_rs485_config(&sport->port, &sport->port.rs485); - /* Disable interrupts before requesting them */ ucr1 = imx_uart_readl(sport, UCR1); ucr1 &= ~(UCR1_ADEN | UCR1_TRDYEN | UCR1_IDEN | UCR1_RRDYEN | UCR1_RTSDEN); @@ -2589,6 +2585,7 @@ .suspend_noirq = imx_uart_suspend_noirq, .resume_noirq = imx_uart_resume_noirq, .freeze_noirq = imx_uart_suspend_noirq, + .thaw_noirq = imx_uart_resume_noirq, .restore_noirq = imx_uart_resume_noirq, .suspend = imx_uart_suspend, .resume = imx_uart_resume, --- linux-5.19.0.orig/drivers/tty/serial/jsm/jsm_driver.c +++ linux-5.19.0/drivers/tty/serial/jsm/jsm_driver.c @@ -211,7 +211,8 @@ break; default: - return -ENXIO; + rc = -ENXIO; + goto out_kfree_brd; } rc = request_irq(brd->irq, brd->bd_ops->intr, IRQF_SHARED, "JSM", brd); --- linux-5.19.0.orig/drivers/tty/serial/mvebu-uart.c +++ linux-5.19.0/drivers/tty/serial/mvebu-uart.c @@ -265,6 +265,7 @@ struct tty_port *tport = &port->state->port; unsigned char ch = 0; char flag = 0; + int ret; do { if (status & STAT_RX_RDY(port)) { @@ -277,6 +278,16 @@ port->icount.parity++; } + /* + * For UART2, error bits are not cleared on buffer read. + * This causes interrupt loop and system hang. + */ + if (IS_EXTENDED(port) && (status & STAT_BRK_ERR)) { + ret = readl(port->membase + UART_STAT); + ret |= STAT_BRK_ERR; + writel(ret, port->membase + UART_STAT); + } + if (status & STAT_BRK_DET) { port->icount.brk++; status &= ~(STAT_FRM_ERR | STAT_PAR_ERR); --- linux-5.19.0.orig/drivers/tty/serial/pch_uart.c +++ linux-5.19.0/drivers/tty/serial/pch_uart.c @@ -695,6 +695,7 @@ if (!chan) { dev_err(priv->port.dev, "%s:dma_request_channel FAILS(Tx)\n", __func__); + pci_dev_put(dma_dev); return; } priv->chan_tx = chan; @@ -711,6 +712,7 @@ __func__); dma_release_channel(priv->chan_tx); priv->chan_tx = NULL; + pci_dev_put(dma_dev); return; } @@ -718,6 +720,8 @@ priv->rx_buf_virt = dma_alloc_coherent(port->dev, port->fifosize, &priv->rx_buf_dma, GFP_KERNEL); priv->chan_rx = chan; + + pci_dev_put(dma_dev); } static void pch_dma_rx_complete(void *arg) --- linux-5.19.0.orig/drivers/tty/serial/pic32_uart.c +++ linux-5.19.0/drivers/tty/serial/pic32_uart.c @@ -503,7 +503,7 @@ if (!sport->irq_fault_name) { dev_err(port->dev, "%s: kasprintf err!", __func__); ret = -ENOMEM; - goto out_done; + goto out_disable_clk; } irq_set_status_flags(sport->irq_fault, IRQ_NOAUTOEN); ret = request_irq(sport->irq_fault, pic32_uart_fault_interrupt, @@ -579,6 +579,8 @@ out_f: free_irq(sport->irq_fault, port); kfree(sport->irq_fault_name); +out_disable_clk: + clk_disable_unprepare(sport->clk); out_done: return ret; } --- linux-5.19.0.orig/drivers/tty/serial/qcom_geni_serial.c +++ linux-5.19.0/drivers/tty/serial/qcom_geni_serial.c @@ -940,52 +940,63 @@ return 0; } -static unsigned long get_clk_div_rate(struct clk *clk, unsigned int baud, - unsigned int sampling_rate, unsigned int *clk_div) +static unsigned long find_clk_rate_in_tol(struct clk *clk, unsigned int desired_clk, + unsigned int *clk_div, unsigned int percent_tol) { - unsigned long ser_clk; - unsigned long desired_clk; - unsigned long freq, prev; + unsigned long freq; unsigned long div, maxdiv; - int64_t mult; - - desired_clk = baud * sampling_rate; - if (!desired_clk) { - pr_err("%s: Invalid frequency\n", __func__); - return 0; - } + u64 mult; + unsigned long offset, abs_tol, achieved; + abs_tol = div_u64((u64)desired_clk * percent_tol, 100); maxdiv = CLK_DIV_MSK >> CLK_DIV_SHFT; - prev = 0; - - for (div = 1; div <= maxdiv; div++) { - mult = div * desired_clk; - if (mult > ULONG_MAX) + div = 1; + while (div <= maxdiv) { + mult = (u64)div * desired_clk; + if (mult != (unsigned long)mult) break; - freq = clk_round_rate(clk, (unsigned long)mult); - if (!(freq % desired_clk)) { - ser_clk = freq; - break; - } + offset = div * abs_tol; + freq = clk_round_rate(clk, mult - offset); - if (!prev) - ser_clk = freq; - else if (prev == freq) + /* Can only get lower if we're done */ + if (freq < mult - offset) break; - prev = freq; - } + /* + * Re-calculate div in case rounding skipped rates but we + * ended up at a good one, then check for a match. + */ + div = DIV_ROUND_CLOSEST(freq, desired_clk); + achieved = DIV_ROUND_CLOSEST(freq, div); + if (achieved <= desired_clk + abs_tol && + achieved >= desired_clk - abs_tol) { + *clk_div = div; + return freq; + } - if (!ser_clk) { - pr_err("%s: Can't find matching DFS entry for baud %d\n", - __func__, baud); - return ser_clk; + div = DIV_ROUND_UP(freq, desired_clk); } - *clk_div = ser_clk / desired_clk; - if (!(*clk_div)) - *clk_div = 1; + return 0; +} + +static unsigned long get_clk_div_rate(struct clk *clk, unsigned int baud, + unsigned int sampling_rate, unsigned int *clk_div) +{ + unsigned long ser_clk; + unsigned long desired_clk; + + desired_clk = baud * sampling_rate; + if (!desired_clk) + return 0; + + /* + * try to find a clock rate within 2% tolerance, then within 5% + */ + ser_clk = find_clk_rate_in_tol(clk, desired_clk, clk_div, 2); + if (!ser_clk) + ser_clk = find_clk_rate_in_tol(clk, desired_clk, clk_div, 5); return ser_clk; } @@ -1020,8 +1031,15 @@ clk_rate = get_clk_div_rate(port->se.clk, baud, sampling_rate, &clk_div); - if (!clk_rate) + if (!clk_rate) { + dev_err(port->se.dev, + "Couldn't find suitable clock rate for %u\n", + baud * sampling_rate); goto out_restart_rx; + } + + dev_dbg(port->se.dev, "desired_rate-%u, clk_rate-%lu, clk_div-%u\n", + baud * sampling_rate, clk_rate, clk_div); uport->uartclk = clk_rate; dev_pm_opp_set_rate(uport->dev, clk_rate); --- linux-5.19.0.orig/drivers/tty/serial/serial-tegra.c +++ linux-5.19.0/drivers/tty/serial/serial-tegra.c @@ -525,7 +525,7 @@ count = tup->tx_bytes_requested - state.residue; async_tx_ack(tup->tx_dma_desc); spin_lock_irqsave(&tup->uport.lock, flags); - xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1); + uart_xmit_advance(&tup->uport, count); tup->tx_in_progress = 0; if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS) uart_write_wakeup(&tup->uport); @@ -613,18 +613,18 @@ static void tegra_uart_stop_tx(struct uart_port *u) { struct tegra_uart_port *tup = to_tegra_uport(u); - struct circ_buf *xmit = &tup->uport.state->xmit; struct dma_tx_state state; unsigned int count; if (tup->tx_in_progress != TEGRA_UART_TX_DMA) return; - dmaengine_terminate_all(tup->tx_dma_chan); + dmaengine_pause(tup->tx_dma_chan); dmaengine_tx_status(tup->tx_dma_chan, tup->tx_cookie, &state); + dmaengine_terminate_all(tup->tx_dma_chan); count = tup->tx_bytes_requested - state.residue; async_tx_ack(tup->tx_dma_desc); - xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1); + uart_xmit_advance(&tup->uport, count); tup->tx_in_progress = 0; } @@ -764,8 +764,9 @@ return; } - dmaengine_terminate_all(tup->rx_dma_chan); + dmaengine_pause(tup->rx_dma_chan); dmaengine_tx_status(tup->rx_dma_chan, tup->rx_cookie, &state); + dmaengine_terminate_all(tup->rx_dma_chan); tegra_uart_rx_buffer_push(tup, state.residue); tup->rx_dma_active = false; --- linux-5.19.0.orig/drivers/tty/serial/serial_core.c +++ linux-5.19.0/drivers/tty/serial/serial_core.c @@ -151,15 +151,10 @@ unsigned long flags; unsigned int old; - if (port->rs485.flags & SER_RS485_ENABLED) { - set &= ~TIOCM_RTS; - clear &= ~TIOCM_RTS; - } - spin_lock_irqsave(&port->lock, flags); old = port->mctrl; port->mctrl = (old & ~clear) | set; - if (old != port->mctrl) + if (old != port->mctrl && !(port->rs485.flags & SER_RS485_ENABLED)) port->ops->set_mctrl(port, port->mctrl); spin_unlock_irqrestore(&port->lock, flags); } @@ -1333,8 +1328,13 @@ spin_lock_irqsave(&port->lock, flags); ret = port->rs485_config(port, &rs485); - if (!ret) + if (!ret) { port->rs485 = rs485; + + /* Reset RTS and other mctrl lines when disabling RS485 */ + if (!(rs485.flags & SER_RS485_ENABLED)) + port->ops->set_mctrl(port, port->mctrl); + } spin_unlock_irqrestore(&port->lock, flags); if (ret) return ret; @@ -2318,7 +2318,8 @@ uart_change_pm(state, UART_PM_STATE_ON); spin_lock_irq(&uport->lock); - ops->set_mctrl(uport, 0); + if (!(uport->rs485.flags & SER_RS485_ENABLED)) + ops->set_mctrl(uport, 0); spin_unlock_irq(&uport->lock); if (console_suspend_enabled || !uart_console(uport)) { /* Protected by port mutex for now */ @@ -2329,7 +2330,10 @@ if (tty) uart_change_speed(tty, state, NULL); spin_lock_irq(&uport->lock); - ops->set_mctrl(uport, uport->mctrl); + if (!(uport->rs485.flags & SER_RS485_ENABLED)) + ops->set_mctrl(uport, uport->mctrl); + else + uport->rs485_config(uport, &uport->rs485); ops->start_tx(uport); spin_unlock_irq(&uport->lock); tty_port_set_initialized(port, 1); @@ -2436,10 +2440,10 @@ */ spin_lock_irqsave(&port->lock, flags); port->mctrl &= TIOCM_DTR; - if (port->rs485.flags & SER_RS485_ENABLED && - !(port->rs485.flags & SER_RS485_RTS_AFTER_SEND)) - port->mctrl |= TIOCM_RTS; - port->ops->set_mctrl(port, port->mctrl); + if (!(port->rs485.flags & SER_RS485_ENABLED)) + port->ops->set_mctrl(port, port->mctrl); + else + port->rs485_config(port, &port->rs485); spin_unlock_irqrestore(&port->lock, flags); /* --- linux-5.19.0.orig/drivers/tty/serial/stm32-usart.c +++ linux-5.19.0/drivers/tty/serial/stm32-usart.c @@ -62,6 +62,53 @@ writel_relaxed(val, port->membase + reg); } +static unsigned int stm32_usart_tx_empty(struct uart_port *port) +{ + struct stm32_port *stm32_port = to_stm32_port(port); + const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; + + if (readl_relaxed(port->membase + ofs->isr) & USART_SR_TC) + return TIOCSER_TEMT; + + return 0; +} + +static void stm32_usart_rs485_rts_enable(struct uart_port *port) +{ + struct stm32_port *stm32_port = to_stm32_port(port); + struct serial_rs485 *rs485conf = &port->rs485; + + if (stm32_port->hw_flow_control || + !(rs485conf->flags & SER_RS485_ENABLED)) + return; + + if (rs485conf->flags & SER_RS485_RTS_ON_SEND) { + mctrl_gpio_set(stm32_port->gpios, + stm32_port->port.mctrl | TIOCM_RTS); + } else { + mctrl_gpio_set(stm32_port->gpios, + stm32_port->port.mctrl & ~TIOCM_RTS); + } +} + +static void stm32_usart_rs485_rts_disable(struct uart_port *port) +{ + struct stm32_port *stm32_port = to_stm32_port(port); + struct serial_rs485 *rs485conf = &port->rs485; + + if (stm32_port->hw_flow_control || + !(rs485conf->flags & SER_RS485_ENABLED)) + return; + + if (rs485conf->flags & SER_RS485_RTS_ON_SEND) { + mctrl_gpio_set(stm32_port->gpios, + stm32_port->port.mctrl & ~TIOCM_RTS); + } else { + mctrl_gpio_set(stm32_port->gpios, + stm32_port->port.mctrl | TIOCM_RTS); + } +} + static void stm32_usart_config_reg_rs485(u32 *cr1, u32 *cr3, u32 delay_ADE, u32 delay_DDE, u32 baud) { @@ -145,6 +192,12 @@ stm32_usart_set_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit)); + /* Adjust RTS polarity in case it's driven in software */ + if (stm32_usart_tx_empty(port)) + stm32_usart_rs485_rts_disable(port); + else + stm32_usart_rs485_rts_enable(port); + return 0; } @@ -460,42 +513,6 @@ stm32_usart_clr_bits(port, ofs->cr1, USART_CR1_TCIE); } -static void stm32_usart_rs485_rts_enable(struct uart_port *port) -{ - struct stm32_port *stm32_port = to_stm32_port(port); - struct serial_rs485 *rs485conf = &port->rs485; - - if (stm32_port->hw_flow_control || - !(rs485conf->flags & SER_RS485_ENABLED)) - return; - - if (rs485conf->flags & SER_RS485_RTS_ON_SEND) { - mctrl_gpio_set(stm32_port->gpios, - stm32_port->port.mctrl | TIOCM_RTS); - } else { - mctrl_gpio_set(stm32_port->gpios, - stm32_port->port.mctrl & ~TIOCM_RTS); - } -} - -static void stm32_usart_rs485_rts_disable(struct uart_port *port) -{ - struct stm32_port *stm32_port = to_stm32_port(port); - struct serial_rs485 *rs485conf = &port->rs485; - - if (stm32_port->hw_flow_control || - !(rs485conf->flags & SER_RS485_ENABLED)) - return; - - if (rs485conf->flags & SER_RS485_RTS_ON_SEND) { - mctrl_gpio_set(stm32_port->gpios, - stm32_port->port.mctrl & ~TIOCM_RTS); - } else { - mctrl_gpio_set(stm32_port->gpios, - stm32_port->port.mctrl | TIOCM_RTS); - } -} - static void stm32_usart_transmit_chars_pio(struct uart_port *port) { struct stm32_port *stm32_port = to_stm32_port(port); @@ -738,17 +755,6 @@ return IRQ_HANDLED; } -static unsigned int stm32_usart_tx_empty(struct uart_port *port) -{ - struct stm32_port *stm32_port = to_stm32_port(port); - const struct stm32_usart_offsets *ofs = &stm32_port->info->ofs; - - if (readl_relaxed(port->membase + ofs->isr) & USART_SR_TC) - return TIOCSER_TEMT; - - return 0; -} - static void stm32_usart_set_mctrl(struct uart_port *port, unsigned int mctrl) { struct stm32_port *stm32_port = to_stm32_port(port); @@ -1598,22 +1604,10 @@ if (!stm32port->info) return -EINVAL; - ret = stm32_usart_init_port(stm32port, pdev); - if (ret) - return ret; - - if (stm32port->wakeup_src) { - device_set_wakeup_capable(&pdev->dev, true); - ret = dev_pm_set_wake_irq(&pdev->dev, stm32port->port.irq); - if (ret) - goto err_deinit_port; - } - stm32port->rx_ch = dma_request_chan(&pdev->dev, "rx"); - if (PTR_ERR(stm32port->rx_ch) == -EPROBE_DEFER) { - ret = -EPROBE_DEFER; - goto err_wakeirq; - } + if (PTR_ERR(stm32port->rx_ch) == -EPROBE_DEFER) + return -EPROBE_DEFER; + /* Fall back in interrupt mode for any non-deferral error */ if (IS_ERR(stm32port->rx_ch)) stm32port->rx_ch = NULL; @@ -1627,6 +1621,17 @@ if (IS_ERR(stm32port->tx_ch)) stm32port->tx_ch = NULL; + ret = stm32_usart_init_port(stm32port, pdev); + if (ret) + goto err_dma_tx; + + if (stm32port->wakeup_src) { + device_set_wakeup_capable(&pdev->dev, true); + ret = dev_pm_set_wake_irq(&pdev->dev, stm32port->port.irq); + if (ret) + goto err_deinit_port; + } + if (stm32port->rx_ch && stm32_usart_of_dma_rx_probe(stm32port, pdev)) { /* Fall back in interrupt mode */ dma_release_channel(stm32port->rx_ch); @@ -1663,19 +1668,11 @@ pm_runtime_set_suspended(&pdev->dev); pm_runtime_put_noidle(&pdev->dev); - if (stm32port->tx_ch) { + if (stm32port->tx_ch) stm32_usart_of_dma_tx_remove(stm32port, pdev); - dma_release_channel(stm32port->tx_ch); - } - if (stm32port->rx_ch) stm32_usart_of_dma_rx_remove(stm32port, pdev); -err_dma_rx: - if (stm32port->rx_ch) - dma_release_channel(stm32port->rx_ch); - -err_wakeirq: if (stm32port->wakeup_src) dev_pm_clear_wake_irq(&pdev->dev); @@ -1685,6 +1682,14 @@ stm32_usart_deinit_port(stm32port); +err_dma_tx: + if (stm32port->tx_ch) + dma_release_channel(stm32port->tx_ch); + +err_dma_rx: + if (stm32port->rx_ch) + dma_release_channel(stm32port->rx_ch); + return ret; } --- linux-5.19.0.orig/drivers/tty/serial/sunsab.c +++ linux-5.19.0/drivers/tty/serial/sunsab.c @@ -1137,7 +1137,13 @@ } } - return platform_driver_register(&sab_driver); + err = platform_driver_register(&sab_driver); + if (err) { + kfree(sunsab_ports); + sunsab_ports = NULL; + } + + return err; } static void __exit sunsab_exit(void) --- linux-5.19.0.orig/drivers/tty/serial/tegra-tcu.c +++ linux-5.19.0/drivers/tty/serial/tegra-tcu.c @@ -101,7 +101,7 @@ break; tegra_tcu_write(tcu, &xmit->buf[xmit->tail], count); - xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1); + uart_xmit_advance(port, count); } uart_write_wakeup(port); --- linux-5.19.0.orig/drivers/tty/serial/ucc_uart.c +++ linux-5.19.0/drivers/tty/serial/ucc_uart.c @@ -1137,6 +1137,8 @@ /* No compatible property, so try the name. */ soc_string = np->name; + of_node_put(np); + /* Extract the SOC number from the "PowerPC," string */ if ((sscanf(soc_string, "PowerPC,%u", &soc) != 1) || !soc) return 0; --- linux-5.19.0.orig/drivers/tty/serial/xilinx_uartps.c +++ linux-5.19.0/drivers/tty/serial/xilinx_uartps.c @@ -361,6 +361,8 @@ isrstatus &= ~CDNS_UART_IXR_TXEMPTY; } + isrstatus &= port->read_status_mask; + isrstatus &= ~port->ignore_status_mask; /* * Skip RX processing if RX is disabled as RXEMPTY will never be set * as read bytes will not be removed from the FIFO. @@ -1329,12 +1331,20 @@ unsigned long flags; u32 ctrl_reg; int may_wake; + int ret; may_wake = device_may_wakeup(device); if (console_suspend_enabled && uart_console(port) && !may_wake) { - clk_enable(cdns_uart->pclk); - clk_enable(cdns_uart->uartclk); + ret = clk_enable(cdns_uart->pclk); + if (ret) + return ret; + + ret = clk_enable(cdns_uart->uartclk); + if (ret) { + clk_disable(cdns_uart->pclk); + return ret; + } spin_lock_irqsave(&port->lock, flags); --- linux-5.19.0.orig/drivers/tty/vt/vt.c +++ linux-5.19.0/drivers/tty/vt/vt.c @@ -344,7 +344,7 @@ /* allocate everything in one go */ memsize = cols * rows * sizeof(char32_t); memsize += rows * sizeof(char32_t *); - p = vmalloc(memsize); + p = vzalloc(memsize); if (!p) return NULL; @@ -4662,9 +4662,11 @@ console_lock(); if (vc->vc_mode != KD_TEXT) rc = -EINVAL; - else if (vc->vc_sw->con_font_set) + else if (vc->vc_sw->con_font_set) { + if (vc_is_sel(vc)) + clear_selection(); rc = vc->vc_sw->con_font_set(vc, &font, op->flags); - else + } else rc = -ENOSYS; console_unlock(); kfree(font.data); @@ -4691,9 +4693,11 @@ console_unlock(); return -EINVAL; } - if (vc->vc_sw->con_font_default) + if (vc->vc_sw->con_font_default) { + if (vc_is_sel(vc)) + clear_selection(); rc = vc->vc_sw->con_font_default(vc, &font, s); - else + } else rc = -ENOSYS; console_unlock(); if (!rc) { --- linux-5.19.0.orig/drivers/ufs/core/ufshcd.c +++ linux-5.19.0/drivers/ufs/core/ufshcd.c @@ -2227,6 +2227,8 @@ int err; hba->capabilities = ufshcd_readl(hba, REG_CONTROLLER_CAPABILITIES); + if (hba->quirks & UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS) + hba->capabilities &= ~MASK_64_ADDRESSING_SUPPORT; /* nutrs and nutmrs are 0 based values */ hba->nutrs = (hba->capabilities & MASK_TRANSFER_REQUESTS_SLOTS) + 1; @@ -4290,8 +4292,13 @@ if (hba->max_pwr_info.is_valid) return 0; - pwr_info->pwr_tx = FAST_MODE; - pwr_info->pwr_rx = FAST_MODE; + if (hba->quirks & UFSHCD_QUIRK_HIBERN_FASTAUTO) { + pwr_info->pwr_tx = FASTAUTO_MODE; + pwr_info->pwr_rx = FASTAUTO_MODE; + } else { + pwr_info->pwr_tx = FAST_MODE; + pwr_info->pwr_rx = FAST_MODE; + } pwr_info->hs_rate = PA_HS_MODE_B; /* Get the connected lane count */ @@ -5372,6 +5379,26 @@ } } +/* Any value that is not an existing queue number is fine for this constant. */ +enum { + UFSHCD_POLL_FROM_INTERRUPT_CONTEXT = -1 +}; + +static void ufshcd_clear_polled(struct ufs_hba *hba, + unsigned long *completed_reqs) +{ + int tag; + + for_each_set_bit(tag, completed_reqs, hba->nutrs) { + struct scsi_cmnd *cmd = hba->lrb[tag].cmd; + + if (!cmd) + continue; + if (scsi_cmd_to_rq(cmd)->cmd_flags & REQ_POLLED) + __clear_bit(tag, completed_reqs); + } +} + /* * Returns > 0 if one or more commands have been completed or 0 if no * requests have been completed. @@ -5388,13 +5415,17 @@ WARN_ONCE(completed_reqs & ~hba->outstanding_reqs, "completed: %#lx; outstanding: %#lx\n", completed_reqs, hba->outstanding_reqs); + if (queue_num == UFSHCD_POLL_FROM_INTERRUPT_CONTEXT) { + /* Do not complete polled requests from interrupt context. */ + ufshcd_clear_polled(hba, &completed_reqs); + } hba->outstanding_reqs &= ~completed_reqs; spin_unlock_irqrestore(&hba->outstanding_lock, flags); if (completed_reqs) __ufshcd_transfer_req_compl(hba, completed_reqs); - return completed_reqs; + return completed_reqs != 0; } /** @@ -5425,7 +5456,7 @@ * Ignore the ufshcd_poll() return value and return IRQ_HANDLED since we * do not want polling to trigger spurious interrupt complaints. */ - ufshcd_poll(hba->host, 0); + ufshcd_poll(hba->host, UFSHCD_POLL_FROM_INTERRUPT_CONTEXT); return IRQ_HANDLED; } @@ -8750,7 +8781,7 @@ */ for (retries = 3; retries > 0; --retries) { ret = scsi_execute(sdp, cmd, DMA_NONE, NULL, 0, NULL, &sshdr, - START_STOP_TIMEOUT, 0, 0, RQF_PM, NULL); + HZ, 0, 0, RQF_PM, NULL); if (!scsi_status_is_check_condition(ret) || !scsi_sense_valid(&sshdr) || sshdr.sense_key != UNIT_ATTENTION) @@ -9484,12 +9515,8 @@ int ufshcd_shutdown(struct ufs_hba *hba) { if (ufshcd_is_ufs_dev_poweroff(hba) && ufshcd_is_link_off(hba)) - goto out; + ufshcd_suspend(hba); - pm_runtime_get_sync(hba->dev); - - ufshcd_suspend(hba); -out: hba->is_powered = false; /* allow force shutdown even in case of errors */ return 0; @@ -9509,7 +9536,7 @@ ufs_bsg_remove(hba); ufshpb_remove(hba); ufs_sysfs_remove_nodes(hba->dev); - blk_cleanup_queue(hba->tmf_queue); + blk_mq_destroy_queue(hba->tmf_queue); blk_mq_free_tag_set(&hba->tmf_tag_set); scsi_remove_host(hba->host); /* disable interrupts */ @@ -9805,7 +9832,7 @@ return 0; free_tmf_queue: - blk_cleanup_queue(hba->tmf_queue); + blk_mq_destroy_queue(hba->tmf_queue); free_tmf_tag_set: blk_mq_free_tag_set(&hba->tmf_tag_set); out_remove_scsi_host: --- linux-5.19.0.orig/drivers/ufs/host/ufs-exynos.c +++ linux-5.19.0/drivers/ufs/host/ufs-exynos.c @@ -910,9 +910,13 @@ if (ret) { dev_err(hba->dev, "%s: phy init failed, ret = %d\n", __func__, ret); - goto out_exit_phy; + return ret; } + ret = phy_power_on(generic_phy); + if (ret) + goto out_exit_phy; + return 0; out_exit_phy: @@ -1174,10 +1178,6 @@ goto out; } - ret = phy_power_on(ufs->phy); - if (ret) - goto phy_off; - exynos_ufs_priv_init(hba, ufs); if (ufs->drv_data->drv_init) { @@ -1195,8 +1195,6 @@ exynos_ufs_config_smu(ufs); return 0; -phy_off: - phy_power_off(ufs->phy); out: hba->priv = NULL; return ret; @@ -1514,9 +1512,14 @@ static int exynos_ufs_remove(struct platform_device *pdev) { struct ufs_hba *hba = platform_get_drvdata(pdev); + struct exynos_ufs *ufs = ufshcd_get_variant(hba); pm_runtime_get_sync(&(pdev)->dev); ufshcd_remove(hba); + + phy_power_off(ufs->phy); + phy_exit(ufs->phy); + return 0; } --- linux-5.19.0.orig/drivers/ufs/host/ufs-mediatek.c +++ linux-5.19.0/drivers/ufs/host/ufs-mediatek.c @@ -1026,7 +1026,6 @@ * ufshcd_suspend() re-enabling regulators while vreg is still * in low-power mode. */ - ufs_mtk_vreg_set_lpm(hba, true); err = ufs_mtk_mphy_power_on(hba, false); if (err) goto fail; @@ -1050,12 +1049,13 @@ { int err; + if (hba->ufshcd_state != UFSHCD_STATE_OPERATIONAL) + ufs_mtk_vreg_set_lpm(hba, false); + err = ufs_mtk_mphy_power_on(hba, true); if (err) goto fail; - ufs_mtk_vreg_set_lpm(hba, false); - if (ufshcd_is_link_hibern8(hba)) { err = ufs_mtk_link_set_hpm(hba); if (err) @@ -1220,9 +1220,59 @@ return 0; } +#ifdef CONFIG_PM_SLEEP +int ufs_mtk_system_suspend(struct device *dev) +{ + struct ufs_hba *hba = dev_get_drvdata(dev); + int ret; + + ret = ufshcd_system_suspend(dev); + if (ret) + return ret; + + ufs_mtk_vreg_set_lpm(hba, true); + + return 0; +} + +int ufs_mtk_system_resume(struct device *dev) +{ + struct ufs_hba *hba = dev_get_drvdata(dev); + + ufs_mtk_vreg_set_lpm(hba, false); + + return ufshcd_system_resume(dev); +} +#endif + +int ufs_mtk_runtime_suspend(struct device *dev) +{ + struct ufs_hba *hba = dev_get_drvdata(dev); + int ret = 0; + + ret = ufshcd_runtime_suspend(dev); + if (ret) + return ret; + + ufs_mtk_vreg_set_lpm(hba, true); + + return 0; +} + +int ufs_mtk_runtime_resume(struct device *dev) +{ + struct ufs_hba *hba = dev_get_drvdata(dev); + + ufs_mtk_vreg_set_lpm(hba, false); + + return ufshcd_runtime_resume(dev); +} + static const struct dev_pm_ops ufs_mtk_pm_ops = { - SET_SYSTEM_SLEEP_PM_OPS(ufshcd_system_suspend, ufshcd_system_resume) - SET_RUNTIME_PM_OPS(ufshcd_runtime_suspend, ufshcd_runtime_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(ufs_mtk_system_suspend, + ufs_mtk_system_resume) + SET_RUNTIME_PM_OPS(ufs_mtk_runtime_suspend, + ufs_mtk_runtime_resume, NULL) .prepare = ufshcd_suspend_prepare, .complete = ufshcd_resume_complete, }; --- linux-5.19.0.orig/drivers/uio/uio_dmem_genirq.c +++ linux-5.19.0/drivers/uio/uio_dmem_genirq.c @@ -110,8 +110,10 @@ * remember the state so we can allow user space to enable it later. */ + spin_lock(&priv->lock); if (!test_and_set_bit(0, &priv->flags)) disable_irq_nosync(irq); + spin_unlock(&priv->lock); return IRQ_HANDLED; } @@ -125,20 +127,19 @@ * in the interrupt controller, but keep track of the * state to prevent per-irq depth damage. * - * Serialize this operation to support multiple tasks. + * Serialize this operation to support multiple tasks and concurrency + * with irq handler on SMP systems. */ spin_lock_irqsave(&priv->lock, flags); 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)) { - spin_unlock_irqrestore(&priv->lock, flags); - disable_irq(dev_info->irq); - } + if (!test_and_set_bit(0, &priv->flags)) + disable_irq_nosync(dev_info->irq); } + spin_unlock_irqrestore(&priv->lock, flags); return 0; } --- linux-5.19.0.orig/drivers/usb/cdns3/cdns3-gadget.c +++ linux-5.19.0/drivers/usb/cdns3/cdns3-gadget.c @@ -220,7 +220,7 @@ if (!priv_ep->trb_pool) { priv_ep->trb_pool = dma_pool_alloc(priv_dev->eps_dma_pool, - GFP_DMA32 | GFP_ATOMIC, + GFP_ATOMIC, &priv_ep->trb_pool_dma); if (!priv_ep->trb_pool) @@ -625,9 +625,9 @@ trace_cdns3_wa2(priv_ep, "removes eldest request"); kfree(priv_req->request.buf); + list_del_init(&priv_req->list); cdns3_gadget_ep_free_request(&priv_ep->endpoint, &priv_req->request); - list_del_init(&priv_req->list); --priv_ep->wa2_counter; if (!chain) @@ -1530,7 +1530,8 @@ TRB_LEN(le32_to_cpu(trb->length)); if (priv_req->num_of_trb > 1 && - le32_to_cpu(trb->control) & TRB_SMM) + le32_to_cpu(trb->control) & TRB_SMM && + le32_to_cpu(trb->control) & TRB_CHAIN) transfer_end = true; cdns3_ep_inc_deq(priv_ep); @@ -1690,6 +1691,7 @@ ep_cfg &= ~EP_CFG_ENABLE; writel(ep_cfg, &priv_dev->regs->ep_cfg); priv_ep->flags &= ~EP_QUIRK_ISO_OUT_EN; + priv_ep->flags |= EP_UPDATE_EP_TRBADDR; } cdns3_transfer_completed(priv_dev, priv_ep); } else if (!(priv_ep->flags & EP_STALLED) && @@ -2284,11 +2286,16 @@ int ret = 0; int val; + if (!ep) { + pr_debug("usbss: ep not configured?\n"); + return -EINVAL; + } + priv_ep = ep_to_cdns3_ep(ep); priv_dev = priv_ep->cdns3_dev; comp_desc = priv_ep->endpoint.comp_desc; - if (!ep || !desc || desc->bDescriptorType != USB_DT_ENDPOINT) { + if (!desc || desc->bDescriptorType != USB_DT_ENDPOINT) { dev_dbg(priv_dev->dev, "usbss: invalid parameters\n"); return -EINVAL; } @@ -2600,7 +2607,7 @@ struct usb_request *request) { struct cdns3_endpoint *priv_ep = ep_to_cdns3_ep(ep); - struct cdns3_device *priv_dev = priv_ep->cdns3_dev; + struct cdns3_device *priv_dev; struct usb_request *req, *req_temp; struct cdns3_request *priv_req; struct cdns3_trb *link_trb; @@ -2611,6 +2618,8 @@ if (!ep || !request || !ep->desc) return -EINVAL; + priv_dev = priv_ep->cdns3_dev; + spin_lock_irqsave(&priv_dev->lock, flags); priv_req = to_cdns3_request(request); --- linux-5.19.0.orig/drivers/usb/cdns3/cdnsp-gadget.c +++ linux-5.19.0/drivers/usb/cdns3/cdnsp-gadget.c @@ -600,11 +600,11 @@ trace_cdnsp_ep_halt(value ? "Set" : "Clear"); - if (value) { - ret = cdnsp_cmd_stop_ep(pdev, pep); - if (ret) - return ret; + ret = cdnsp_cmd_stop_ep(pdev, pep); + if (ret) + return ret; + if (value) { if (GET_EP_CTX_STATE(pep->out_ctx) == EP_STATE_STOPPED) { cdnsp_queue_halt_endpoint(pdev, pep->idx); cdnsp_ring_cmd_db(pdev); @@ -613,10 +613,6 @@ pep->ep_state |= EP_HALTED; } else { - /* - * In device mode driver can call reset endpoint command - * from any endpoint state. - */ cdnsp_queue_reset_ep(pdev, pep->idx); cdnsp_ring_cmd_db(pdev); ret = cdnsp_wait_for_cmd_compl(pdev); --- linux-5.19.0.orig/drivers/usb/cdns3/cdnsp-ring.c +++ linux-5.19.0/drivers/usb/cdns3/cdnsp-ring.c @@ -1763,10 +1763,15 @@ int trb_buff_len, unsigned int td_total_len, struct cdnsp_request *preq, - bool more_trbs_coming) + bool more_trbs_coming, + bool zlp) { u32 maxp, total_packet_count; + /* Before ZLP driver needs set TD_SIZE = 1. */ + if (zlp) + return 1; + /* One TRB with a zero-length data packet. */ if (!more_trbs_coming || (transferred == 0 && trb_buff_len == 0) || trb_buff_len == td_total_len) @@ -1960,7 +1965,8 @@ /* Set the TRB length, TD size, and interrupter fields. */ remainder = cdnsp_td_remainder(pdev, enqd_len, trb_buff_len, full_len, preq, - more_trbs_coming); + more_trbs_coming, + zero_len_trb); length_field = TRB_LEN(trb_buff_len) | TRB_TD_SIZE(remainder) | TRB_INTR_TARGET(0); @@ -2000,10 +2006,11 @@ int cdnsp_queue_ctrl_tx(struct cdnsp_device *pdev, struct cdnsp_request *preq) { - u32 field, length_field, remainder; + u32 field, length_field, zlp = 0; struct cdnsp_ep *pep = preq->pep; struct cdnsp_ring *ep_ring; int num_trbs; + u32 maxp; int ret; ep_ring = cdnsp_request_to_transfer_ring(pdev, preq); @@ -2013,26 +2020,33 @@ /* 1 TRB for data, 1 for status */ num_trbs = (pdev->three_stage_setup) ? 2 : 1; + maxp = usb_endpoint_maxp(pep->endpoint.desc); + + if (preq->request.zero && preq->request.length && + (preq->request.length % maxp == 0)) { + num_trbs++; + zlp = 1; + } + ret = cdnsp_prepare_transfer(pdev, preq, num_trbs); if (ret) return ret; /* If there's data, queue data TRBs */ - if (pdev->ep0_expect_in) - field = TRB_TYPE(TRB_DATA) | TRB_IOC; - else - field = TRB_ISP | TRB_TYPE(TRB_DATA) | TRB_IOC; - if (preq->request.length > 0) { - remainder = cdnsp_td_remainder(pdev, 0, preq->request.length, - preq->request.length, preq, 1); + field = TRB_TYPE(TRB_DATA); - length_field = TRB_LEN(preq->request.length) | - TRB_TD_SIZE(remainder) | TRB_INTR_TARGET(0); + if (zlp) + field |= TRB_CHAIN; + else + field |= TRB_IOC | (pdev->ep0_expect_in ? 0 : TRB_ISP); if (pdev->ep0_expect_in) field |= TRB_DIR_IN; + length_field = TRB_LEN(preq->request.length) | + TRB_TD_SIZE(zlp) | TRB_INTR_TARGET(0); + cdnsp_queue_trb(pdev, ep_ring, true, lower_32_bits(preq->request.dma), upper_32_bits(preq->request.dma), length_field, @@ -2040,6 +2054,20 @@ TRB_SETUPID(pdev->setup_id) | pdev->setup_speed); + if (zlp) { + field = TRB_TYPE(TRB_NORMAL) | TRB_IOC; + + if (!pdev->ep0_expect_in) + field = TRB_ISP; + + cdnsp_queue_trb(pdev, ep_ring, true, + lower_32_bits(preq->request.dma), + upper_32_bits(preq->request.dma), 0, + field | ep_ring->cycle_state | + TRB_SETUPID(pdev->setup_id) | + pdev->setup_speed); + } + pdev->ep0_stage = CDNSP_DATA_STAGE; } @@ -2076,7 +2104,8 @@ u32 ep_state = GET_EP_CTX_STATE(pep->out_ctx); int ret = 0; - if (ep_state == EP_STATE_STOPPED || ep_state == EP_STATE_DISABLED) { + if (ep_state == EP_STATE_STOPPED || ep_state == EP_STATE_DISABLED || + ep_state == EP_STATE_HALTED) { trace_cdnsp_ep_stopped_or_disabled(pep->out_ctx); goto ep_stopped; } @@ -2225,7 +2254,7 @@ /* Set the TRB length, TD size, & interrupter fields. */ remainder = cdnsp_td_remainder(pdev, running_total, trb_buff_len, td_len, preq, - more_trbs_coming); + more_trbs_coming, 0); length_field = TRB_LEN(trb_buff_len) | TRB_INTR_TARGET(0); --- linux-5.19.0.orig/drivers/usb/cdns3/host.c +++ linux-5.19.0/drivers/usb/cdns3/host.c @@ -24,11 +24,37 @@ #define CFG_RXDET_P3_EN BIT(15) #define LPM_2_STB_SWITCH_EN BIT(25) -static int xhci_cdns3_suspend_quirk(struct usb_hcd *hcd); +static void xhci_cdns3_plat_start(struct usb_hcd *hcd) +{ + struct xhci_hcd *xhci = hcd_to_xhci(hcd); + u32 value; + + /* set usbcmd.EU3S */ + value = readl(&xhci->op_regs->command); + value |= CMD_PM_INDEX; + writel(value, &xhci->op_regs->command); + + if (hcd->regs) { + value = readl(hcd->regs + XECP_AUX_CTRL_REG1); + value |= CFG_RXDET_P3_EN; + writel(value, hcd->regs + XECP_AUX_CTRL_REG1); + + value = readl(hcd->regs + XECP_PORT_CAP_REG); + value |= LPM_2_STB_SWITCH_EN; + writel(value, hcd->regs + XECP_PORT_CAP_REG); + } +} + +static int xhci_cdns3_resume_quirk(struct usb_hcd *hcd) +{ + xhci_cdns3_plat_start(hcd); + return 0; +} static const struct xhci_plat_priv xhci_plat_cdns3_xhci = { .quirks = XHCI_SKIP_PHY_INIT | XHCI_AVOID_BEI, - .suspend_quirk = xhci_cdns3_suspend_quirk, + .plat_start = xhci_cdns3_plat_start, + .resume_quirk = xhci_cdns3_resume_quirk, }; static int __cdns_host_init(struct cdns *cdns) @@ -90,32 +116,6 @@ return ret; } -static int xhci_cdns3_suspend_quirk(struct usb_hcd *hcd) -{ - struct xhci_hcd *xhci = hcd_to_xhci(hcd); - u32 value; - - if (pm_runtime_status_suspended(hcd->self.controller)) - return 0; - - /* set usbcmd.EU3S */ - value = readl(&xhci->op_regs->command); - value |= CMD_PM_INDEX; - writel(value, &xhci->op_regs->command); - - if (hcd->regs) { - value = readl(hcd->regs + XECP_AUX_CTRL_REG1); - value |= CFG_RXDET_P3_EN; - writel(value, hcd->regs + XECP_AUX_CTRL_REG1); - - value = readl(hcd->regs + XECP_PORT_CAP_REG); - value |= LPM_2_STB_SWITCH_EN; - writel(value, hcd->regs + XECP_PORT_CAP_REG); - } - - return 0; -} - static void cdns_host_exit(struct cdns *cdns) { kfree(cdns->xhci_plat_data); --- linux-5.19.0.orig/drivers/usb/chipidea/otg_fsm.c +++ linux-5.19.0/drivers/usb/chipidea/otg_fsm.c @@ -256,8 +256,10 @@ ci->enabled_otg_timer_bits &= ~(1 << t); if (ci->next_otg_timer == t) { if (ci->enabled_otg_timer_bits == 0) { + spin_unlock_irqrestore(&ci->lock, flags); /* No enabled timers after delete it */ hrtimer_cancel(&ci->otg_fsm_hrtimer); + spin_lock_irqsave(&ci->lock, flags); ci->next_otg_timer = NUM_OTG_FSM_TIMERS; } else { /* Find the next timer */ --- linux-5.19.0.orig/drivers/usb/class/cdc-acm.c +++ linux-5.19.0/drivers/usb/class/cdc-acm.c @@ -1810,6 +1810,9 @@ { USB_DEVICE(0x09d8, 0x0320), /* Elatec GmbH TWN3 */ .driver_info = NO_UNION_NORMAL, /* has misplaced union descriptor */ }, + { USB_DEVICE(0x0c26, 0x0020), /* Icom ICF3400 Serie */ + .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ + }, { USB_DEVICE(0x0ca6, 0xa050), /* Castles VEGA3000 */ .driver_info = NO_UNION_NORMAL, /* reports zero length descriptor */ }, @@ -1957,6 +1960,20 @@ .driver_info = IGNORE_DEVICE, }, + /* 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, }, + /* control interfaces without any protocol set */ { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, USB_CDC_PROTO_NONE) }, --- linux-5.19.0.orig/drivers/usb/common/debug.c +++ linux-5.19.0/drivers/usb/common/debug.c @@ -208,30 +208,28 @@ snprintf(str, size, "Set Isochronous Delay(Delay = %d ns)", wValue); } -/** - * usb_decode_ctrl - Returns human readable representation of control request. - * @str: buffer to return a human-readable representation of control request. - * This buffer should have about 200 bytes. - * @size: size of str buffer. - * @bRequestType: matches the USB bmRequestType field - * @bRequest: matches the USB bRequest field - * @wValue: matches the USB wValue field (CPU byte order) - * @wIndex: matches the USB wIndex field (CPU byte order) - * @wLength: matches the USB wLength field (CPU byte order) - * - * Function returns decoded, formatted and human-readable description of - * control request packet. - * - * The usage scenario for this is for tracepoints, so function as a return - * use the same value as in parameters. This approach allows to use this - * function in TP_printk - * - * Important: wValue, wIndex, wLength parameters before invoking this function - * should be processed by le16_to_cpu macro. - */ -const char *usb_decode_ctrl(char *str, size_t size, __u8 bRequestType, - __u8 bRequest, __u16 wValue, __u16 wIndex, - __u16 wLength) +static void usb_decode_ctrl_generic(char *str, size_t size, __u8 bRequestType, + __u8 bRequest, __u16 wValue, __u16 wIndex, + __u16 wLength) +{ + u8 recip = bRequestType & USB_RECIP_MASK; + u8 type = bRequestType & USB_TYPE_MASK; + + snprintf(str, size, + "Type=%s Recipient=%s Dir=%s bRequest=%u wValue=%u wIndex=%u wLength=%u", + (type == USB_TYPE_STANDARD) ? "Standard" : + (type == USB_TYPE_VENDOR) ? "Vendor" : + (type == USB_TYPE_CLASS) ? "Class" : "Unknown", + (recip == USB_RECIP_DEVICE) ? "Device" : + (recip == USB_RECIP_INTERFACE) ? "Interface" : + (recip == USB_RECIP_ENDPOINT) ? "Endpoint" : "Unknown", + (bRequestType & USB_DIR_IN) ? "IN" : "OUT", + bRequest, wValue, wIndex, wLength); +} + +static void usb_decode_ctrl_standard(char *str, size_t size, __u8 bRequestType, + __u8 bRequest, __u16 wValue, __u16 wIndex, + __u16 wLength) { switch (bRequest) { case USB_REQ_GET_STATUS: @@ -272,14 +270,48 @@ usb_decode_set_isoch_delay(wValue, str, size); break; default: - snprintf(str, size, "%02x %02x %02x %02x %02x %02x %02x %02x", - bRequestType, bRequest, - (u8)(cpu_to_le16(wValue) & 0xff), - (u8)(cpu_to_le16(wValue) >> 8), - (u8)(cpu_to_le16(wIndex) & 0xff), - (u8)(cpu_to_le16(wIndex) >> 8), - (u8)(cpu_to_le16(wLength) & 0xff), - (u8)(cpu_to_le16(wLength) >> 8)); + usb_decode_ctrl_generic(str, size, bRequestType, bRequest, + wValue, wIndex, wLength); + break; + } +} + +/** + * usb_decode_ctrl - Returns human readable representation of control request. + * @str: buffer to return a human-readable representation of control request. + * This buffer should have about 200 bytes. + * @size: size of str buffer. + * @bRequestType: matches the USB bmRequestType field + * @bRequest: matches the USB bRequest field + * @wValue: matches the USB wValue field (CPU byte order) + * @wIndex: matches the USB wIndex field (CPU byte order) + * @wLength: matches the USB wLength field (CPU byte order) + * + * Function returns decoded, formatted and human-readable description of + * control request packet. + * + * The usage scenario for this is for tracepoints, so function as a return + * use the same value as in parameters. This approach allows to use this + * function in TP_printk + * + * Important: wValue, wIndex, wLength parameters before invoking this function + * should be processed by le16_to_cpu macro. + */ +const char *usb_decode_ctrl(char *str, size_t size, __u8 bRequestType, + __u8 bRequest, __u16 wValue, __u16 wIndex, + __u16 wLength) +{ + switch (bRequestType & USB_TYPE_MASK) { + case USB_TYPE_STANDARD: + usb_decode_ctrl_standard(str, size, bRequestType, bRequest, + wValue, wIndex, wLength); + break; + case USB_TYPE_VENDOR: + case USB_TYPE_CLASS: + default: + usb_decode_ctrl_generic(str, size, bRequestType, bRequest, + wValue, wIndex, wLength); + break; } return str; --- linux-5.19.0.orig/drivers/usb/common/usb-conn-gpio.c +++ linux-5.19.0/drivers/usb/common/usb-conn-gpio.c @@ -208,10 +208,8 @@ if (PTR_ERR(info->vbus) == -ENODEV) info->vbus = NULL; - if (IS_ERR(info->vbus)) { - ret = PTR_ERR(info->vbus); - return dev_err_probe(dev, ret, "failed to get vbus :%d\n", ret); - } + if (IS_ERR(info->vbus)) + return dev_err_probe(dev, PTR_ERR(info->vbus), "failed to get vbus\n"); info->role_sw = usb_role_switch_get(dev); if (IS_ERR(info->role_sw)) --- linux-5.19.0.orig/drivers/usb/core/hcd.c +++ linux-5.19.0/drivers/usb/core/hcd.c @@ -1691,7 +1691,6 @@ spin_lock_irq(&bh->lock); bh->running = true; - restart: list_replace_init(&bh->head, &local_list); spin_unlock_irq(&bh->lock); @@ -1705,10 +1704,17 @@ bh->completing_ep = NULL; } - /* check if there are new URBs to giveback */ + /* + * giveback new URBs next time to prevent this function + * from not exiting for a long time. + */ spin_lock_irq(&bh->lock); - if (!list_empty(&bh->head)) - goto restart; + if (!list_empty(&bh->head)) { + if (bh->high_prio) + tasklet_hi_schedule(&bh->bh); + else + tasklet_schedule(&bh->bh); + } bh->running = false; spin_unlock_irq(&bh->lock); } @@ -1737,7 +1743,7 @@ void usb_hcd_giveback_urb(struct usb_hcd *hcd, struct urb *urb, int status) { struct giveback_urb_bh *bh; - bool running, high_prio_bh; + bool running; /* pass status to tasklet via unlinked */ if (likely(!urb->unlinked)) @@ -1748,13 +1754,10 @@ return; } - if (usb_pipeisoc(urb->pipe) || usb_pipeint(urb->pipe)) { + if (usb_pipeisoc(urb->pipe) || usb_pipeint(urb->pipe)) bh = &hcd->high_prio_bh; - high_prio_bh = true; - } else { + else bh = &hcd->low_prio_bh; - high_prio_bh = false; - } spin_lock(&bh->lock); list_add_tail(&urb->urb_list, &bh->head); @@ -1763,7 +1766,7 @@ if (running) ; - else if (high_prio_bh) + else if (bh->high_prio) tasklet_hi_schedule(&bh->bh); else tasklet_schedule(&bh->bh); @@ -2959,6 +2962,7 @@ /* initialize tasklets */ init_giveback_urb_bh(&hcd->high_prio_bh); + hcd->high_prio_bh.high_prio = true; init_giveback_urb_bh(&hcd->low_prio_bh); /* enable irqs just before we start the controller, @@ -3033,9 +3037,15 @@ */ void usb_remove_hcd(struct usb_hcd *hcd) { - struct usb_device *rhdev = hcd->self.root_hub; + struct usb_device *rhdev; bool rh_registered; + if (!hcd) { + pr_debug("%s: hcd is NULL\n", __func__); + return; + } + rhdev = hcd->self.root_hub; + dev_info(hcd->self.controller, "remove, state %x\n", hcd->state); usb_get_dev(rhdev); --- linux-5.19.0.orig/drivers/usb/core/hub.c +++ linux-5.19.0/drivers/usb/core/hub.c @@ -828,9 +828,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) @@ -2834,6 +2834,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) { @@ -3709,6 +3742,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); @@ -5400,10 +5437,7 @@ /* When halfway through our retry count, power-cycle the port */ if (i == (PORT_INIT_TRIES - 1) / 2) { 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 || @@ -6048,6 +6082,11 @@ * the reset is over (using their post_reset method). * * Return: The same as for usb_reset_and_verify_device(). + * However, if a reset is already in progress (for instance, if a + * driver doesn't have pre_reset() or post_reset() callbacks, and while + * being unbound or re-bound during the ongoing reset its disconnect() + * or probe() routine tries to perform a second, nested reset), the + * routine returns -EINPROGRESS. * * Note: * The caller must own the device lock. For example, it's safe to use @@ -6081,6 +6120,10 @@ return -EISDIR; } + if (udev->reset_in_progress) + return -EINPROGRESS; + udev->reset_in_progress = 1; + port_dev = hub->ports[udev->portnum - 1]; /* @@ -6145,6 +6188,7 @@ usb_autosuspend_device(udev); memalloc_noio_restore(noio_flag); + udev->reset_in_progress = 0; return ret; } EXPORT_SYMBOL_GPL(usb_reset_device); --- linux-5.19.0.orig/drivers/usb/core/hub.h +++ linux-5.19.0/drivers/usb/core/hub.h @@ -114,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-5.19.0.orig/drivers/usb/core/port.c +++ linux-5.19.0/drivers/usb/core/port.c @@ -218,7 +218,7 @@ if (retval < 0) return retval; - retval = usb_hub_set_port_power(hdev, hub, port1, true); + retval = usb_hub_set_port_power(hub, port1, true); msleep(hub_power_on_good_delay(hub)); if (udev && !retval) { /* @@ -274,7 +274,7 @@ if (retval < 0) return retval; - retval = usb_hub_set_port_power(hdev, hub, port1, false); + 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-5.19.0.orig/drivers/usb/core/quirks.c +++ linux-5.19.0/drivers/usb/core/quirks.c @@ -362,6 +362,9 @@ { USB_DEVICE(0x0781, 0x5583), .driver_info = USB_QUIRK_NO_LPM }, { USB_DEVICE(0x0781, 0x5591), .driver_info = USB_QUIRK_NO_LPM }, + /* Realforce 87U Keyboard */ + { USB_DEVICE(0x0853, 0x011b), .driver_info = USB_QUIRK_NO_LPM }, + /* M-Systems Flash Disk Pioneers */ { USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME }, @@ -388,6 +391,15 @@ /* Kingston DataTraveler 3.0 */ { USB_DEVICE(0x0951, 0x1666), .driver_info = USB_QUIRK_NO_LPM }, + /* NVIDIA Jetson devices in Force Recovery mode */ + { USB_DEVICE(0x0955, 0x7018), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7019), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7418), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7721), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7c18), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7e19), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x0955, 0x7f21), .driver_info = USB_QUIRK_RESET_RESUME }, + /* X-Rite/Gretag-Macbeth Eye-One Pro display colorimeter */ { USB_DEVICE(0x0971, 0x2000), .driver_info = USB_QUIRK_NO_SET_INTF }, @@ -437,6 +449,10 @@ { USB_DEVICE(0x1532, 0x0116), .driver_info = USB_QUIRK_LINEAR_UFRAME_INTR_BINTERVAL }, + /* Lenovo ThinkPad OneLink+ Dock twin hub controllers (VIA Labs VL812) */ + { USB_DEVICE(0x17ef, 0x1018), .driver_info = USB_QUIRK_RESET_RESUME }, + { USB_DEVICE(0x17ef, 0x1019), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Lenovo USB-C to Ethernet Adapter RTL8153-04 */ { USB_DEVICE(0x17ef, 0x720c), .driver_info = USB_QUIRK_NO_LPM }, --- linux-5.19.0.orig/drivers/usb/dwc2/gadget.c +++ linux-5.19.0/drivers/usb/dwc2/gadget.c @@ -3594,7 +3594,8 @@ void dwc2_hsotg_core_connect(struct dwc2_hsotg *hsotg) { /* remove the soft-disconnect and let's go */ - dwc2_clear_bit(hsotg, DCTL, DCTL_SFTDISCON); + if (!hsotg->role_sw || (dwc2_readl(hsotg, GOTGCTL) & GOTGCTL_BSESVLD)) + dwc2_clear_bit(hsotg, DCTL, DCTL_SFTDISCON); } /** --- linux-5.19.0.orig/drivers/usb/dwc2/platform.c +++ linux-5.19.0/drivers/usb/dwc2/platform.c @@ -154,9 +154,9 @@ } else if (hsotg->plat && hsotg->plat->phy_init) { ret = hsotg->plat->phy_init(pdev, hsotg->plat->phy_type); } else { - ret = phy_power_on(hsotg->phy); + ret = phy_init(hsotg->phy); if (ret == 0) - ret = phy_init(hsotg->phy); + ret = phy_power_on(hsotg->phy); } return ret; @@ -188,9 +188,9 @@ } else if (hsotg->plat && hsotg->plat->phy_exit) { ret = hsotg->plat->phy_exit(pdev, hsotg->plat->phy_type); } else { - ret = phy_exit(hsotg->phy); + ret = phy_power_off(hsotg->phy); if (ret == 0) - ret = phy_power_off(hsotg->phy); + ret = phy_exit(hsotg->phy); } if (ret) return ret; --- linux-5.19.0.orig/drivers/usb/dwc3/core.c +++ linux-5.19.0/drivers/usb/dwc3/core.c @@ -122,21 +122,25 @@ unsigned long flags; int ret; u32 reg; + u32 desired_dr_role; mutex_lock(&dwc->mutex); + spin_lock_irqsave(&dwc->lock, flags); + desired_dr_role = dwc->desired_dr_role; + spin_unlock_irqrestore(&dwc->lock, flags); pm_runtime_get_sync(dwc->dev); if (dwc->current_dr_role == DWC3_GCTL_PRTCAP_OTG) dwc3_otg_update(dwc, 0); - if (!dwc->desired_dr_role) + if (!desired_dr_role) goto out; - if (dwc->desired_dr_role == dwc->current_dr_role) + if (desired_dr_role == dwc->current_dr_role) goto out; - if (dwc->desired_dr_role == DWC3_GCTL_PRTCAP_OTG && dwc->edev) + if (desired_dr_role == DWC3_GCTL_PRTCAP_OTG && dwc->edev) goto out; switch (dwc->current_dr_role) { @@ -158,8 +162,13 @@ break; } - /* For DRD host or device mode only */ - if (dwc->desired_dr_role != DWC3_GCTL_PRTCAP_OTG) { + /* + * When current_dr_role is not set, there's no role switching. + * Only perform GCTL.CoreSoftReset when there's DRD role switching. + */ + if (dwc->current_dr_role && ((DWC3_IP_IS(DWC3) || + DWC3_VER_IS_PRIOR(DWC31, 190A)) && + desired_dr_role != DWC3_GCTL_PRTCAP_OTG)) { reg = dwc3_readl(dwc->regs, DWC3_GCTL); reg |= DWC3_GCTL_CORESOFTRESET; dwc3_writel(dwc->regs, DWC3_GCTL, reg); @@ -179,11 +188,11 @@ spin_lock_irqsave(&dwc->lock, flags); - dwc3_set_prtcap(dwc, dwc->desired_dr_role); + dwc3_set_prtcap(dwc, desired_dr_role); spin_unlock_irqrestore(&dwc->lock, flags); - switch (dwc->desired_dr_role) { + switch (desired_dr_role) { case DWC3_GCTL_PRTCAP_HOST: ret = dwc3_host_init(dwc); if (ret) { @@ -403,6 +412,10 @@ reg |= FIELD_PREP(DWC3_GFLADJ_REFCLK_FLADJ_MASK, fladj) | FIELD_PREP(DWC3_GFLADJ_240MHZDECR, decr >> 1) | FIELD_PREP(DWC3_GFLADJ_240MHZDECR_PLS1, decr & 1); + + if (dwc->gfladj_refclk_lpm_sel) + reg |= DWC3_GFLADJ_REFCLK_LPM_SEL; + dwc3_writel(dwc->regs, DWC3_GFLADJ, reg); } @@ -784,7 +797,7 @@ else reg |= DWC3_GUSB2PHYCFG_ENBLSLPM; - if (dwc->dis_u2_freeclk_exists_quirk) + if (dwc->dis_u2_freeclk_exists_quirk || dwc->gfladj_refclk_lpm_sel) reg &= ~DWC3_GUSB2PHYCFG_U2_FREECLK_EXISTS; dwc3_writel(dwc->regs, DWC3_GUSB2PHYCFG(0), reg); @@ -828,15 +841,16 @@ { dwc3_event_buffers_cleanup(dwc); + 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); + 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_clk_disable(dwc); reset_control_assert(dwc->reset); } @@ -1055,8 +1069,13 @@ if (!dwc->ulpi_ready) { ret = dwc3_core_ulpi_init(dwc); - if (ret) + if (ret) { + if (ret == -ETIMEDOUT) { + dwc3_core_soft_reset(dwc); + ret = -EPROBE_DEFER; + } goto err0; + } dwc->ulpi_ready = true; } @@ -1140,6 +1159,21 @@ dwc3_writel(dwc->regs, DWC3_GUCTL2, reg); } + /* + * When configured in HOST mode, after issuing U3/L2 exit controller + * fails to send proper CRC checksum in CRC5 feild. Because of this + * behaviour Transaction Error is generated, resulting in reset and + * re-enumeration of usb device attached. All the termsel, xcvrsel, + * opmode becomes 0 during end of resume. Enabling bit 10 of GUCTL1 + * will correct this problem. This option is to support certain + * legacy ULPI PHYs. + */ + if (dwc->resume_hs_terminations) { + reg = dwc3_readl(dwc->regs, DWC3_GUCTL1); + reg |= DWC3_GUCTL1_RESUME_OPMODE_HS_HOST; + dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); + } + if (!DWC3_VER_IS_PRIOR(DWC3, 250A)) { reg = dwc3_readl(dwc->regs, DWC3_GUCTL1); @@ -1483,8 +1517,12 @@ "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->resume_hs_terminations = device_property_read_bool(dev, + "snps,resume-hs-terminations"); dwc->parkmode_disable_ss_quirk = device_property_read_bool(dev, "snps,parkmode-disable-ss-quirk"); + dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev, + "snps,gfladj-refclk-lpm-sel-quirk"); dwc->tx_de_emphasis_quirk = device_property_read_bool(dev, "snps,tx_de_emphasis_quirk"); @@ -1648,6 +1686,16 @@ return extcon_get_extcon_dev(name); /* + * Check explicitly if "usb-role-switch" is used since + * extcon_find_edev_by_node() can not be used to check the absence of + * an extcon device. In the absence of an device it will always return + * EPROBE_DEFER. + */ + if (IS_ENABLED(CONFIG_USB_ROLE_SWITCH) && + device_property_read_bool(dev, "usb-role-switch")) + return NULL; + + /* * Try to get an extcon device from the USB PHY controller's "port" * node. Check if it has the "port" node first, to avoid printing the * error message from underlying code, as it's a valid case: extcon @@ -1712,15 +1760,11 @@ dwc3_get_properties(dwc); - if (!dwc->sysdev_is_parent) { - ret = dma_set_mask_and_coherent(dwc->sysdev, DMA_BIT_MASK(64)); - if (ret) - return ret; - } - dwc->reset = devm_reset_control_array_get_optional_shared(dev); - if (IS_ERR(dwc->reset)) - return PTR_ERR(dwc->reset); + if (IS_ERR(dwc->reset)) { + ret = PTR_ERR(dwc->reset); + goto put_usb_psy; + } if (dev->of_node) { /* @@ -1730,45 +1774,57 @@ * check for them to retain backwards compatibility. */ dwc->bus_clk = devm_clk_get_optional(dev, "bus_early"); - if (IS_ERR(dwc->bus_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->bus_clk), - "could not get bus clock\n"); + if (IS_ERR(dwc->bus_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->bus_clk), + "could not get bus clock\n"); + goto put_usb_psy; + } if (dwc->bus_clk == NULL) { dwc->bus_clk = devm_clk_get_optional(dev, "bus_clk"); - if (IS_ERR(dwc->bus_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->bus_clk), - "could not get bus clock\n"); + if (IS_ERR(dwc->bus_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->bus_clk), + "could not get bus clock\n"); + goto put_usb_psy; + } } dwc->ref_clk = devm_clk_get_optional(dev, "ref"); - if (IS_ERR(dwc->ref_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->ref_clk), - "could not get ref clock\n"); + if (IS_ERR(dwc->ref_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->ref_clk), + "could not get ref clock\n"); + goto put_usb_psy; + } if (dwc->ref_clk == NULL) { dwc->ref_clk = devm_clk_get_optional(dev, "ref_clk"); - if (IS_ERR(dwc->ref_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->ref_clk), - "could not get ref clock\n"); + if (IS_ERR(dwc->ref_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->ref_clk), + "could not get ref clock\n"); + goto put_usb_psy; + } } dwc->susp_clk = devm_clk_get_optional(dev, "suspend"); - if (IS_ERR(dwc->susp_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->susp_clk), - "could not get suspend clock\n"); + if (IS_ERR(dwc->susp_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->susp_clk), + "could not get suspend clock\n"); + goto put_usb_psy; + } if (dwc->susp_clk == NULL) { dwc->susp_clk = devm_clk_get_optional(dev, "suspend_clk"); - if (IS_ERR(dwc->susp_clk)) - return dev_err_probe(dev, PTR_ERR(dwc->susp_clk), - "could not get suspend clock\n"); + if (IS_ERR(dwc->susp_clk)) { + ret = dev_err_probe(dev, PTR_ERR(dwc->susp_clk), + "could not get suspend clock\n"); + goto put_usb_psy; + } } } ret = reset_control_deassert(dwc->reset); if (ret) - return ret; + goto put_usb_psy; ret = dwc3_clk_enable(dwc); if (ret) @@ -1783,6 +1839,13 @@ platform_set_drvdata(pdev, dwc); dwc3_cache_hwparams(dwc); + if (!dwc->sysdev_is_parent && + DWC3_GHWPARAMS0_AWIDTH(dwc->hwparams.hwparams0) == 64) { + ret = dma_set_mask_and_coherent(dwc->sysdev, DMA_BIT_MASK(64)); + if (ret) + goto disable_clks; + } + spin_lock_init(&dwc->lock); mutex_init(&dwc->mutex); @@ -1805,8 +1868,7 @@ dwc->edev = dwc3_get_extcon(dwc); if (IS_ERR(dwc->edev)) { - ret = PTR_ERR(dwc->edev); - dev_err_probe(dwc->dev, ret, "failed to get extcon\n"); + ret = dev_err_probe(dwc->dev, PTR_ERR(dwc->edev), "failed to get extcon\n"); goto err3; } @@ -1839,16 +1901,16 @@ dwc3_debugfs_exit(dwc); 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); + usb_phy_shutdown(dwc->usb2_phy); + usb_phy_shutdown(dwc->usb3_phy); + phy_exit(dwc->usb2_generic_phy); + phy_exit(dwc->usb3_generic_phy); + dwc3_ulpi_exit(dwc); err4: @@ -1868,7 +1930,7 @@ dwc3_clk_disable(dwc); assert_reset: reset_control_assert(dwc->reset); - +put_usb_psy: if (dwc->usb_psy) power_supply_put(dwc->usb_psy); --- linux-5.19.0.orig/drivers/usb/dwc3/core.h +++ linux-5.19.0/drivers/usb/dwc3/core.h @@ -262,6 +262,7 @@ #define DWC3_GUCTL1_DEV_FORCE_20_CLK_FOR_30_CLK BIT(26) #define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24) #define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17) +#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10) /* Global Status Register */ #define DWC3_GSTS_OTG_IP BIT(10) @@ -390,6 +391,7 @@ #define DWC3_GFLADJ_30MHZ_SDBND_SEL BIT(7) #define DWC3_GFLADJ_30MHZ_MASK 0x3f #define DWC3_GFLADJ_REFCLK_FLADJ_MASK GENMASK(21, 8) +#define DWC3_GFLADJ_REFCLK_LPM_SEL BIT(23) #define DWC3_GFLADJ_240MHZDECR GENMASK(30, 24) #define DWC3_GFLADJ_240MHZDECR_PLS1 BIT(31) @@ -1093,6 +1095,8 @@ * change quirk. * @dis_tx_ipgap_linecheck_quirk: set if we disable u2mac linestate * check during HS transmit. + * @resume-hs-terminations: Set if we enable quirk for fixing improper crc + * generation after resume from suspend. * @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 @@ -1308,7 +1312,9 @@ unsigned dis_u2_freeclk_exists_quirk:1; unsigned dis_del_phy_power_chg_quirk:1; unsigned dis_tx_ipgap_linecheck_quirk:1; + unsigned resume_hs_terminations:1; unsigned parkmode_disable_ss_quirk:1; + unsigned gfladj_refclk_lpm_sel:1; unsigned tx_de_emphasis_quirk:1; unsigned tx_de_emphasis:2; --- linux-5.19.0.orig/drivers/usb/dwc3/dwc3-exynos.c +++ linux-5.19.0/drivers/usb/dwc3/dwc3-exynos.c @@ -37,15 +37,6 @@ struct regulator *vdd10; }; -static int dwc3_exynos_remove_child(struct device *dev, void *unused) -{ - struct platform_device *pdev = to_platform_device(dev); - - platform_device_unregister(pdev); - - return 0; -} - static int dwc3_exynos_probe(struct platform_device *pdev) { struct dwc3_exynos *exynos; @@ -142,7 +133,7 @@ struct dwc3_exynos *exynos = platform_get_drvdata(pdev); int i; - device_for_each_child(&pdev->dev, NULL, dwc3_exynos_remove_child); + of_platform_depopulate(&pdev->dev); for (i = exynos->num_clks - 1; i >= 0; i--) clk_disable_unprepare(exynos->clks[i]); --- linux-5.19.0.orig/drivers/usb/dwc3/dwc3-pci.c +++ linux-5.19.0/drivers/usb/dwc3/dwc3-pci.c @@ -44,6 +44,7 @@ #define PCI_DEVICE_ID_INTEL_ADLP 0x51ee #define PCI_DEVICE_ID_INTEL_ADLM 0x54ee #define PCI_DEVICE_ID_INTEL_ADLS 0x7ae1 +#define PCI_DEVICE_ID_INTEL_RPL 0xa70e #define PCI_DEVICE_ID_INTEL_RPLS 0x7a61 #define PCI_DEVICE_ID_INTEL_MTLP 0x7ec1 #define PCI_DEVICE_ID_INTEL_MTL 0x7e7e @@ -456,6 +457,9 @@ { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ADLS), (kernel_ulong_t) &dwc3_pci_intel_swnode, }, + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_RPL), + (kernel_ulong_t) &dwc3_pci_intel_swnode, }, + { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_RPLS), (kernel_ulong_t) &dwc3_pci_intel_swnode, }, --- linux-5.19.0.orig/drivers/usb/dwc3/dwc3-qcom.c +++ linux-5.19.0/drivers/usb/dwc3/dwc3-qcom.c @@ -443,9 +443,9 @@ int ret; if (np) - ret = platform_get_irq_byname(pdev_irq, name); + ret = platform_get_irq_byname_optional(pdev_irq, name); else - ret = platform_get_irq(pdev_irq, num); + ret = platform_get_irq_optional(pdev_irq, num); return ret; } --- linux-5.19.0.orig/drivers/usb/dwc3/gadget.c +++ linux-5.19.0/drivers/usb/dwc3/gadget.c @@ -291,7 +291,8 @@ * * DWC_usb3 3.30a and DWC_usb31 1.90a programming guide section 3.2.2 */ - if (dwc->gadget->speed <= USB_SPEED_HIGH) { + if (dwc->gadget->speed <= USB_SPEED_HIGH || + DWC3_DEPCMD_CMD(cmd) == DWC3_DEPCMD_ENDTRANSFER) { reg = dwc3_readl(dwc->regs, DWC3_GUSB2PHYCFG(0)); if (unlikely(reg & DWC3_GUSB2PHYCFG_SUSPHY)) { saved_config |= DWC3_GUSB2PHYCFG_SUSPHY; @@ -964,7 +965,7 @@ return 0; } -static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep) +static void dwc3_remove_requests(struct dwc3 *dwc, struct dwc3_ep *dep, int status) { struct dwc3_request *req; @@ -974,19 +975,19 @@ while (!list_empty(&dep->started_list)) { req = next_request(&dep->started_list); - dwc3_gadget_giveback(dep, req, -ESHUTDOWN); + dwc3_gadget_giveback(dep, req, status); } while (!list_empty(&dep->pending_list)) { req = next_request(&dep->pending_list); - dwc3_gadget_giveback(dep, req, -ESHUTDOWN); + dwc3_gadget_giveback(dep, req, status); } while (!list_empty(&dep->cancelled_list)) { req = next_request(&dep->cancelled_list); - dwc3_gadget_giveback(dep, req, -ESHUTDOWN); + dwc3_gadget_giveback(dep, req, status); } } @@ -1015,18 +1016,18 @@ reg &= ~DWC3_DALEPENA_EP(dep->number); dwc3_writel(dwc->regs, DWC3_DALEPENA, reg); + dwc3_remove_requests(dwc, dep, -ESHUTDOWN); + + dep->stream_capable = false; + dep->type = 0; + dep->flags &= DWC3_EP_TXFIFO_RESIZED; + /* Clear out the ep descriptors for non-ep0 */ if (dep->number > 1) { dep->endpoint.comp_desc = NULL; dep->endpoint.desc = NULL; } - dwc3_remove_requests(dwc, dep); - - dep->stream_capable = false; - dep->type = 0; - dep->flags &= DWC3_EP_TXFIFO_RESIZED; - return 0; } @@ -1182,17 +1183,49 @@ return trbs_left; } -static void __dwc3_prepare_one_trb(struct dwc3_ep *dep, struct dwc3_trb *trb, - dma_addr_t dma, unsigned int length, unsigned int chain, - unsigned int node, unsigned int stream_id, - unsigned int short_not_ok, unsigned int no_interrupt, - unsigned int is_last, bool must_interrupt) +/** + * 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. + * @use_bounce_buffer: set to use bounce buffer + * @must_interrupt: set to interrupt on TRB completion + */ +static void dwc3_prepare_one_trb(struct dwc3_ep *dep, + struct dwc3_request *req, unsigned int trb_length, + unsigned int chain, unsigned int node, bool use_bounce_buffer, + bool must_interrupt) { + struct dwc3_trb *trb; + dma_addr_t dma; + unsigned int stream_id = req->request.stream_id; + unsigned int short_not_ok = req->request.short_not_ok; + unsigned int no_interrupt = req->request.no_interrupt; + unsigned int is_last = req->request.is_last; struct dwc3 *dwc = dep->dwc; struct usb_gadget *gadget = dwc->gadget; enum usb_device_speed speed = gadget->speed; - trb->size = DWC3_TRB_SIZE_LENGTH(length); + if (use_bounce_buffer) + dma = dep->dwc->bounce_addr; + else if (req->request.num_sgs > 0) + dma = sg_dma_address(req->start_sg); + else + dma = req->request.dma; + + trb = &dep->trb_pool[dep->trb_enqueue]; + + if (!req->trb) { + dwc3_gadget_move_started_request(req); + req->trb = trb; + req->trb_dma = dwc3_trb_dma_offset(dep, trb); + } + + req->num_trbs++; + + trb->size = DWC3_TRB_SIZE_LENGTH(trb_length); trb->bpl = lower_32_bits(dma); trb->bph = upper_32_bits(dma); @@ -1232,10 +1265,10 @@ unsigned int mult = 2; unsigned int maxp = usb_endpoint_maxp(ep->desc); - if (length <= (2 * maxp)) + if (req->request.length <= (2 * maxp)) mult--; - if (length <= maxp) + if (req->request.length <= maxp) mult--; trb->size |= DWC3_TRB_SIZE_PCM1(mult); @@ -1244,8 +1277,8 @@ trb->ctrl = DWC3_TRBCTL_ISOCHRONOUS; } - /* always enable Interrupt on Missed ISOC */ - trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI; + if (!no_interrupt && !chain) + trb->ctrl |= DWC3_TRB_CTRL_ISP_IMI; break; case USB_ENDPOINT_XFER_BULK: @@ -1309,50 +1342,6 @@ trace_dwc3_prepare_trb(dep, trb); } -/** - * 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. - * @use_bounce_buffer: set to use bounce buffer - * @must_interrupt: set to interrupt on TRB completion - */ -static void dwc3_prepare_one_trb(struct dwc3_ep *dep, - struct dwc3_request *req, unsigned int trb_length, - unsigned int chain, unsigned int node, bool use_bounce_buffer, - bool must_interrupt) -{ - struct dwc3_trb *trb; - dma_addr_t dma; - unsigned int stream_id = req->request.stream_id; - unsigned int short_not_ok = req->request.short_not_ok; - unsigned int no_interrupt = req->request.no_interrupt; - unsigned int is_last = req->request.is_last; - - if (use_bounce_buffer) - dma = dep->dwc->bounce_addr; - else if (req->request.num_sgs > 0) - dma = sg_dma_address(req->start_sg); - else - dma = req->request.dma; - - trb = &dep->trb_pool[dep->trb_enqueue]; - - if (!req->trb) { - dwc3_gadget_move_started_request(req); - req->trb = trb; - req->trb_dma = dwc3_trb_dma_offset(dep, trb); - } - - req->num_trbs++; - - __dwc3_prepare_one_trb(dep, trb, dma, trb_length, chain, node, - stream_id, short_not_ok, no_interrupt, is_last, - must_interrupt); -} - static bool dwc3_needs_extra_trb(struct dwc3_ep *dep, struct dwc3_request *req) { unsigned int maxp = usb_endpoint_maxp(dep->endpoint.desc); @@ -2351,7 +2340,7 @@ if (!dep) continue; - dwc3_remove_requests(dwc, dep); + dwc3_remove_requests(dwc, dep, -ESHUTDOWN); } } @@ -2512,6 +2501,9 @@ if (dwc->ep0state != EP0_SETUP_PHASE) { int ret; + if (dwc->delayed_status) + dwc3_ep0_send_delayed_status(dwc); + reinit_completion(&dwc->ep0_in_setup); spin_unlock_irqrestore(&dwc->lock, flags); @@ -2550,9 +2542,6 @@ is_on = !!is_on; - if (dwc->pullups_connected == is_on) - return 0; - dwc->softconnect = is_on; /* @@ -2577,6 +2566,11 @@ return 0; } + if (dwc->pullups_connected == is_on) { + pm_runtime_put(dwc->dev); + return 0; + } + if (!is_on) { ret = dwc3_gadget_soft_disconnect(dwc); } else { @@ -3224,6 +3218,10 @@ if (event->status & DEPEVT_STATUS_SHORT && !chain) return 1; + if ((trb->ctrl & DWC3_TRB_CTRL_ISP_IMI) && + DWC3_TRB_SIZE_TRBSTS(trb->size) == DWC3_TRBSTS_MISSED_ISOC) + return 1; + if ((trb->ctrl & DWC3_TRB_CTRL_IOC) || (trb->ctrl & DWC3_TRB_CTRL_LST)) return 1; --- linux-5.19.0.orig/drivers/usb/gadget/function/f_fs.c +++ linux-5.19.0/drivers/usb/gadget/function/f_fs.c @@ -2645,10 +2645,10 @@ unsigned i = 0; vla_group(d); vla_item(d, struct usb_gadget_strings *, stringtabs, - lang_count + 1); + size_add(lang_count, 1)); vla_item(d, struct usb_gadget_strings, stringtab, lang_count); vla_item(d, struct usb_string, strings, - lang_count*(needed_count+1)); + size_mul(lang_count, (needed_count + 1))); char *vlabuf = kmalloc(vla_group_size(d), GFP_KERNEL); --- linux-5.19.0.orig/drivers/usb/gadget/function/f_hid.c +++ linux-5.19.0/drivers/usb/gadget/function/f_hid.c @@ -71,7 +71,7 @@ wait_queue_head_t write_queue; struct usb_request *req; - int minor; + struct device dev; struct cdev cdev; struct usb_function func; @@ -84,6 +84,14 @@ return container_of(f, struct f_hidg, func); } +static void hidg_release(struct device *dev) +{ + struct f_hidg *hidg = container_of(dev, struct f_hidg, dev); + + kfree(hidg->set_report_buf); + kfree(hidg); +} + /*-------------------------------------------------------------------------*/ /* Static descriptors */ @@ -904,9 +912,7 @@ struct usb_ep *ep; struct f_hidg *hidg = func_to_hidg(f); struct usb_string *us; - struct device *device; int status; - dev_t dev; /* maybe allocate device-global string IDs, and patch descriptors */ us = usb_gstrings_attach(c->cdev, ct_func_strings, @@ -999,21 +1005,11 @@ /* create char device */ cdev_init(&hidg->cdev, &f_hidg_fops); - dev = MKDEV(major, hidg->minor); - status = cdev_add(&hidg->cdev, dev, 1); + status = cdev_device_add(&hidg->cdev, &hidg->dev); if (status) goto fail_free_descs; - device = device_create(hidg_class, NULL, dev, NULL, - "%s%d", "hidg", hidg->minor); - if (IS_ERR(device)) { - status = PTR_ERR(device); - goto del; - } - return 0; -del: - cdev_del(&hidg->cdev); fail_free_descs: usb_free_all_descriptors(f); fail: @@ -1244,9 +1240,7 @@ hidg = func_to_hidg(f); opts = container_of(f->fi, struct f_hid_opts, func_inst); - kfree(hidg->report_desc); - kfree(hidg->set_report_buf); - kfree(hidg); + put_device(&hidg->dev); mutex_lock(&opts->lock); --opts->refcnt; mutex_unlock(&opts->lock); @@ -1256,8 +1250,7 @@ { struct f_hidg *hidg = func_to_hidg(f); - device_destroy(hidg_class, MKDEV(major, hidg->minor)); - cdev_del(&hidg->cdev); + cdev_device_del(&hidg->cdev, &hidg->dev); usb_free_all_descriptors(f); } @@ -1266,6 +1259,7 @@ { struct f_hidg *hidg; struct f_hid_opts *opts; + int ret; /* allocate and initialize one new instance */ hidg = kzalloc(sizeof(*hidg), GFP_KERNEL); @@ -1277,17 +1271,28 @@ mutex_lock(&opts->lock); ++opts->refcnt; - hidg->minor = opts->minor; + device_initialize(&hidg->dev); + hidg->dev.release = hidg_release; + hidg->dev.class = hidg_class; + hidg->dev.devt = MKDEV(major, opts->minor); + ret = dev_set_name(&hidg->dev, "hidg%d", opts->minor); + if (ret) { + --opts->refcnt; + mutex_unlock(&opts->lock); + return ERR_PTR(ret); + } + hidg->bInterfaceSubClass = opts->subclass; hidg->bInterfaceProtocol = opts->protocol; hidg->report_length = opts->report_length; hidg->report_desc_length = opts->report_desc_length; if (opts->report_desc) { - hidg->report_desc = kmemdup(opts->report_desc, - opts->report_desc_length, - GFP_KERNEL); + hidg->report_desc = devm_kmemdup(&hidg->dev, opts->report_desc, + opts->report_desc_length, + GFP_KERNEL); if (!hidg->report_desc) { - kfree(hidg); + put_device(&hidg->dev); + --opts->refcnt; mutex_unlock(&opts->lock); return ERR_PTR(-ENOMEM); } --- linux-5.19.0.orig/drivers/usb/gadget/function/f_mass_storage.c +++ linux-5.19.0/drivers/usb/gadget/function/f_mass_storage.c @@ -1192,13 +1192,14 @@ u8 format; int i, len; + format = common->cmnd[2] & 0xf; + if ((common->cmnd[1] & ~0x02) != 0 || /* Mask away MSF */ - start_track > 1) { + (start_track > 1 && format != 0x1)) { curlun->sense_data = SS_INVALID_FIELD_IN_CDB; return -EINVAL; } - format = common->cmnd[2] & 0xf; /* * Check if CDB is old style SFF-8020i * i.e. format is in 2 MSBs of byte 9 @@ -1208,8 +1209,8 @@ format = (common->cmnd[9] >> 6) & 0x3; switch (format) { - case 0: - /* Formatted TOC */ + case 0: /* Formatted TOC */ + case 1: /* Multi-session info */ len = 4 + 2*8; /* 4 byte header + 2 descriptors */ memset(buf, 0, len); buf[1] = len - 2; /* TOC Length excludes length field */ @@ -1250,7 +1251,7 @@ return len; default: - /* Multi-session, PMA, ATIP, CD-TEXT not supported/required */ + /* PMA, ATIP, CD-TEXT not supported/required */ curlun->sense_data = SS_INVALID_FIELD_IN_CDB; return -EINVAL; } --- linux-5.19.0.orig/drivers/usb/gadget/function/f_printer.c +++ linux-5.19.0/drivers/usb/gadget/function/f_printer.c @@ -89,7 +89,7 @@ u8 printer_cdev_open; wait_queue_head_t wait; unsigned q_len; - char *pnp_string; /* We don't own memory! */ + char **pnp_string; /* We don't own memory! */ struct usb_function function; }; @@ -1000,16 +1000,16 @@ if ((wIndex>>8) != dev->interface) break; - if (!dev->pnp_string) { + if (!*dev->pnp_string) { value = 0; break; } - value = strlen(dev->pnp_string); + value = strlen(*dev->pnp_string); buf[0] = (value >> 8) & 0xFF; buf[1] = value & 0xFF; - memcpy(buf + 2, dev->pnp_string, value); + memcpy(buf + 2, *dev->pnp_string, value); DBG(dev, "1284 PNP String: %x %s\n", value, - dev->pnp_string); + *dev->pnp_string); break; case GET_PORT_STATUS: /* Get Port Status */ @@ -1475,7 +1475,7 @@ kref_init(&dev->kref); ++opts->refcnt; dev->minor = opts->minor; - dev->pnp_string = opts->pnp_string; + dev->pnp_string = &opts->pnp_string; dev->q_len = opts->q_len; mutex_unlock(&opts->lock); --- linux-5.19.0.orig/drivers/usb/gadget/function/f_uac2.c +++ linux-5.19.0/drivers/usb/gadget/function/f_uac2.c @@ -291,6 +291,12 @@ .bInterval = 4, }; +static struct usb_ss_ep_comp_descriptor ss_ep_int_desc_comp = { + .bLength = sizeof(ss_ep_int_desc_comp), + .bDescriptorType = USB_DT_SS_ENDPOINT_COMP, + .wBytesPerInterval = cpu_to_le16(6), +}; + /* Audio Streaming OUT Interface - Alt0 */ static struct usb_interface_descriptor std_as_out_if0_desc = { .bLength = sizeof std_as_out_if0_desc, @@ -604,7 +610,8 @@ (struct usb_descriptor_header *)&in_feature_unit_desc, (struct usb_descriptor_header *)&io_out_ot_desc, - (struct usb_descriptor_header *)&ss_ep_int_desc, + (struct usb_descriptor_header *)&ss_ep_int_desc, + (struct usb_descriptor_header *)&ss_ep_int_desc_comp, (struct usb_descriptor_header *)&std_as_out_if0_desc, (struct usb_descriptor_header *)&std_as_out_if1_desc, @@ -800,6 +807,7 @@ struct usb_ss_ep_comp_descriptor *epout_desc_comp = NULL; struct usb_ss_ep_comp_descriptor *epin_desc_comp = NULL; struct usb_ss_ep_comp_descriptor *epin_fback_desc_comp = NULL; + struct usb_ss_ep_comp_descriptor *ep_int_desc_comp = NULL; struct usb_endpoint_descriptor *epout_desc; struct usb_endpoint_descriptor *epin_desc; struct usb_endpoint_descriptor *epin_fback_desc; @@ -827,6 +835,7 @@ epin_fback_desc = &ss_epin_fback_desc; epin_fback_desc_comp = &ss_epin_fback_desc_comp; ep_int_desc = &ss_ep_int_desc; + ep_int_desc_comp = &ss_ep_int_desc_comp; } i = 0; @@ -855,8 +864,11 @@ if (EPOUT_EN(opts)) headers[i++] = USBDHDR(&io_out_ot_desc); - if (FUOUT_EN(opts) || FUIN_EN(opts)) + if (FUOUT_EN(opts) || FUIN_EN(opts)) { headers[i++] = USBDHDR(ep_int_desc); + if (ep_int_desc_comp) + headers[i++] = USBDHDR(ep_int_desc_comp); + } if (EPOUT_EN(opts)) { headers[i++] = USBDHDR(&std_as_out_if0_desc); --- linux-5.19.0.orig/drivers/usb/gadget/function/f_uvc.c +++ linux-5.19.0/drivers/usb/gadget/function/f_uvc.c @@ -141,7 +141,8 @@ .bEndpointAddress = USB_DIR_IN, .bmAttributes = USB_ENDPOINT_SYNC_ASYNC | USB_ENDPOINT_XFER_ISOC, - /* The wMaxPacketSize and bInterval values will be initialized from + /* + * The wMaxPacketSize and bInterval values will be initialized from * module parameters. */ }; @@ -152,7 +153,8 @@ .bEndpointAddress = USB_DIR_IN, .bmAttributes = USB_ENDPOINT_SYNC_ASYNC | USB_ENDPOINT_XFER_ISOC, - /* The wMaxPacketSize and bInterval values will be initialized from + /* + * The wMaxPacketSize and bInterval values will be initialized from * module parameters. */ }; @@ -164,7 +166,8 @@ .bEndpointAddress = USB_DIR_IN, .bmAttributes = USB_ENDPOINT_SYNC_ASYNC | USB_ENDPOINT_XFER_ISOC, - /* The wMaxPacketSize and bInterval values will be initialized from + /* + * The wMaxPacketSize and bInterval values will be initialized from * module parameters. */ }; @@ -172,7 +175,8 @@ static struct usb_ss_ep_comp_descriptor uvc_ss_streaming_comp = { .bLength = sizeof(uvc_ss_streaming_comp), .bDescriptorType = USB_DT_SS_ENDPOINT_COMP, - /* The bMaxBurst, bmAttributes and wBytesPerInterval values will be + /* + * The bMaxBurst, bmAttributes and wBytesPerInterval values will be * initialized from module parameters. */ }; @@ -212,8 +216,9 @@ memset(&v4l2_event, 0, sizeof(v4l2_event)); v4l2_event.type = UVC_EVENT_DATA; - uvc_event->data.length = req->actual; - memcpy(&uvc_event->data.data, req->buf, req->actual); + uvc_event->data.length = min_t(unsigned int, req->actual, + sizeof(uvc_event->data.data)); + memcpy(&uvc_event->data.data, req->buf, uvc_event->data.length); v4l2_event_queue(&uvc->vdev, &v4l2_event); } } @@ -234,7 +239,8 @@ if (le16_to_cpu(ctrl->wLength) > UVC_MAX_REQUEST_SIZE) return -EINVAL; - /* Tell the complete callback to generate an event for the next request + /* + * Tell the complete callback to generate an event for the next request * that will be enqueued by UVCIOC_SEND_RESPONSE. */ uvc->event_setup_out = !(ctrl->bRequestType & USB_DIR_IN); @@ -416,7 +422,7 @@ int ret; /* TODO reference counting. */ - memset(&uvc->vdev, 0, sizeof(uvc->video)); + memset(&uvc->vdev, 0, sizeof(uvc->vdev)); uvc->vdev.v4l2_dev = &uvc->v4l2_dev; uvc->vdev.v4l2_dev->dev = &cdev->gadget->dev; uvc->vdev.fops = &uvc_v4l2_fops; @@ -500,7 +506,8 @@ if (!uvc_control_desc || !uvc_streaming_cls) return ERR_PTR(-ENODEV); - /* Descriptors layout + /* + * Descriptors layout * * uvc_iad * uvc_control_intf @@ -597,8 +604,7 @@ uvcg_info(f, "%s()\n", __func__); opts = fi_to_f_uvc_opts(f->fi); - /* Sanity check the streaming endpoint module parameters. - */ + /* Sanity check the streaming endpoint module parameters. */ opts->streaming_interval = clamp(opts->streaming_interval, 1U, 16U); opts->streaming_maxpacket = clamp(opts->streaming_maxpacket, 1U, 3072U); opts->streaming_maxburst = min(opts->streaming_maxburst, 15U); @@ -611,7 +617,8 @@ opts->streaming_maxpacket); } - /* Fill in the FS/HS/SS Video Streaming specific descriptors from the + /* + * Fill in the FS/HS/SS Video Streaming specific descriptors from the * module parameters. * * NOTE: We assume that the user knows what they are doing and won't @@ -891,11 +898,16 @@ { struct usb_composite_dev *cdev = c->cdev; struct uvc_device *uvc = to_uvc(f); + struct uvc_video *video = &uvc->video; long wait_ret = 1; uvcg_info(f, "%s()\n", __func__); - /* If we know we're connected via v4l2, then there should be a cleanup + if (video->async_wq) + destroy_workqueue(video->async_wq); + + /* + * If we know we're connected via v4l2, then there should be a cleanup * of the device from userspace either via UVC_EVENT_DISCONNECT or * though the video device removal uevent. Allow some time for the * application to close out before things get deleted. @@ -912,7 +924,8 @@ v4l2_device_unregister(&uvc->v4l2_dev); if (uvc->func_connected) { - /* Wait for the release to occur to ensure there are no longer any + /* + * Wait for the release to occur to ensure there are no longer any * pending operations that may cause panics when resources are cleaned * up. */ --- linux-5.19.0.orig/drivers/usb/gadget/function/storage_common.c +++ linux-5.19.0/drivers/usb/gadget/function/storage_common.c @@ -294,8 +294,10 @@ void store_cdrom_address(u8 *dest, int msf, u32 addr) { if (msf) { - /* Convert to Minutes-Seconds-Frames */ - addr >>= 2; /* Convert to 2048-byte frames */ + /* + * Convert to Minutes-Seconds-Frames. + * Sector size is already set to 2048 bytes. + */ addr += 2*75; /* Lead-in occupies 2 seconds */ dest[3] = addr % 75; /* Frames */ addr /= 75; --- linux-5.19.0.orig/drivers/usb/gadget/function/uvc.h +++ linux-5.19.0/drivers/usb/gadget/function/uvc.h @@ -88,6 +88,7 @@ struct usb_ep *ep; struct work_struct pump; + struct workqueue_struct *async_wq; /* Frame parameters */ u8 bpp; --- linux-5.19.0.orig/drivers/usb/gadget/function/uvc_queue.c +++ linux-5.19.0/drivers/usb/gadget/function/uvc_queue.c @@ -44,7 +44,8 @@ { struct uvc_video_queue *queue = vb2_get_drv_priv(vq); struct uvc_video *video = container_of(queue, struct uvc_video, queue); - struct usb_composite_dev *cdev = video->uvc->func.config->cdev; + unsigned int req_size; + unsigned int nreq; if (*nbuffers > UVC_MAX_VIDEO_BUFFERS) *nbuffers = UVC_MAX_VIDEO_BUFFERS; @@ -53,10 +54,16 @@ sizes[0] = video->imagesize; - if (cdev->gadget->speed < USB_SPEED_SUPER) - video->uvc_num_requests = 4; - else - video->uvc_num_requests = 64; + req_size = video->ep->maxpacket + * max_t(unsigned int, video->ep->maxburst, 1) + * (video->ep->mult); + + /* We divide by two, to increase the chance to run + * into fewer requests for smaller framesizes. + */ + nreq = DIV_ROUND_UP(DIV_ROUND_UP(sizes[0], 2), req_size); + nreq = clamp(nreq, 4U, 64U); + video->uvc_num_requests = nreq; return 0; } @@ -77,12 +84,9 @@ return -ENODEV; buf->state = UVC_BUF_STATE_QUEUED; - if (queue->use_sg) { - buf->sgt = vb2_dma_sg_plane_desc(vb, 0); - buf->sg = buf->sgt->sgl; - } else { - buf->mem = vb2_plane_vaddr(vb, 0); - } + buf->sgt = vb2_dma_sg_plane_desc(vb, 0); + buf->sg = buf->sgt->sgl; + buf->mem = vb2_plane_vaddr(vb, 0); buf->length = vb2_plane_size(vb, 0); if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE) buf->bytesused = 0; @@ -104,7 +108,8 @@ if (likely(!(queue->flags & UVC_QUEUE_DISCONNECTED))) { list_add_tail(&buf->queue, &queue->irqqueue); } else { - /* If the device is disconnected return the buffer to userspace + /* + * If the device is disconnected return the buffer to userspace * directly. The next QBUF call will fail with -ENODEV. */ buf->state = UVC_BUF_STATE_ERROR; @@ -255,7 +260,8 @@ } queue->buf_used = 0; - /* This must be protected by the irqlock spinlock to avoid race + /* + * This must be protected by the irqlock spinlock to avoid race * conditions between uvc_queue_buffer and the disconnection event that * could result in an interruptible wait in uvc_dequeue_buffer. Do not * blindly replace this logic by checking for the UVC_DEV_DISCONNECTED @@ -295,6 +301,7 @@ queue->sequence = 0; queue->buf_used = 0; + queue->flags &= ~UVC_QUEUE_DROP_INCOMPLETE; } else { ret = vb2_streamoff(&queue->queue, queue->queue.type); if (ret < 0) @@ -320,10 +327,11 @@ void uvcg_complete_buffer(struct uvc_video_queue *queue, struct uvc_buffer *buf) { - if ((queue->flags & UVC_QUEUE_DROP_INCOMPLETE) && - buf->length != buf->bytesused) { - buf->state = UVC_BUF_STATE_QUEUED; + if (queue->flags & UVC_QUEUE_DROP_INCOMPLETE) { + queue->flags &= ~UVC_QUEUE_DROP_INCOMPLETE; + buf->state = UVC_BUF_STATE_ERROR; vb2_set_plane_payload(&buf->buf.vb2_buf, 0, 0); + vb2_buffer_done(&buf->buf.vb2_buf, VB2_BUF_STATE_ERROR); return; } --- linux-5.19.0.orig/drivers/usb/gadget/function/uvc_v4l2.c +++ linux-5.19.0/drivers/usb/gadget/function/uvc_v4l2.c @@ -170,7 +170,7 @@ return ret; if (uvc->state == UVC_STATE_STREAMING) - schedule_work(&video->pump); + queue_work(video->async_wq, &video->pump); return ret; } --- linux-5.19.0.orig/drivers/usb/gadget/function/uvc_video.c +++ linux-5.19.0/drivers/usb/gadget/function/uvc_video.c @@ -88,6 +88,7 @@ struct uvc_buffer *buf) { void *mem = req->buf; + struct uvc_request *ureq = req->context; int len = video->req_size; int ret; @@ -113,13 +114,14 @@ video->queue.buf_used = 0; buf->state = UVC_BUF_STATE_DONE; list_del(&buf->queue); - uvcg_complete_buffer(&video->queue, buf); video->fid ^= UVC_STREAM_FID; + ureq->last_buf = buf; video->payload_size = 0; } if (video->payload_size == video->max_payload_size || + video->queue.flags & UVC_QUEUE_DROP_INCOMPLETE || buf->bytesused == video->queue.buf_used) video->payload_size = 0; } @@ -155,10 +157,10 @@ sg = sg_next(sg); for_each_sg(sg, iter, ureq->sgt.nents - 1, i) { - if (!len || !buf->sg || !sg_dma_len(buf->sg)) + if (!len || !buf->sg || !buf->sg->length) break; - sg_left = sg_dma_len(buf->sg) - buf->offset; + sg_left = buf->sg->length - buf->offset; part = min_t(unsigned int, len, sg_left); sg_set_page(iter, sg_page(buf->sg), part, buf->offset); @@ -180,7 +182,8 @@ req->length -= len; video->queue.buf_used += req->length - header_len; - if (buf->bytesused == video->queue.buf_used || !buf->sg) { + if (buf->bytesused == video->queue.buf_used || !buf->sg || + video->queue.flags & UVC_QUEUE_DROP_INCOMPLETE) { video->queue.buf_used = 0; buf->state = UVC_BUF_STATE_DONE; buf->offset = 0; @@ -195,6 +198,7 @@ struct uvc_buffer *buf) { void *mem = req->buf; + struct uvc_request *ureq = req->context; int len = video->req_size; int ret; @@ -209,12 +213,13 @@ req->length = video->req_size - len; - if (buf->bytesused == video->queue.buf_used) { + if (buf->bytesused == video->queue.buf_used || + video->queue.flags & UVC_QUEUE_DROP_INCOMPLETE) { video->queue.buf_used = 0; buf->state = UVC_BUF_STATE_DONE; list_del(&buf->queue); - uvcg_complete_buffer(&video->queue, buf); video->fid ^= UVC_STREAM_FID; + ureq->last_buf = buf; } } @@ -255,13 +260,18 @@ case 0: break; + case -EXDEV: + uvcg_dbg(&video->uvc->func, "VS request missed xfer.\n"); + queue->flags |= UVC_QUEUE_DROP_INCOMPLETE; + break; + case -ESHUTDOWN: /* disconnect from host. */ uvcg_dbg(&video->uvc->func, "VS request cancelled.\n"); uvcg_queue_cancel(queue, 1); break; default: - uvcg_info(&video->uvc->func, + uvcg_warn(&video->uvc->func, "VS request completed with status %d.\n", req->status); uvcg_queue_cancel(queue, 0); @@ -277,7 +287,7 @@ spin_unlock_irqrestore(&video->req_lock, flags); if (uvc->state == UVC_STATE_STREAMING) - schedule_work(&video->pump); + queue_work(video->async_wq, &video->pump); } static int @@ -378,7 +388,8 @@ int ret; while (video->ep->enabled) { - /* Retrieve the first available USB request, protected by the + /* + * Retrieve the first available USB request, protected by the * request lock. */ spin_lock_irqsave(&video->req_lock, flags); @@ -391,7 +402,8 @@ list_del(&req->list); spin_unlock_irqrestore(&video->req_lock, flags); - /* Retrieve the first available video buffer and fill the + /* + * Retrieve the first available video buffer and fill the * request, protected by the video queue irqlock. */ spin_lock_irqsave(&queue->irqlock, flags); @@ -403,9 +415,11 @@ video->encode(req, video, buf); - /* With usb3 we have more requests. This will decrease the + /* + * With usb3 we have more requests. This will decrease the * interrupt load to a quarter but also catches the corner - * cases, which needs to be handled */ + * cases, which needs to be handled. + */ if (list_empty(&video->req_free) || buf->state == UVC_BUF_STATE_DONE || !(video->req_int_count % @@ -427,7 +441,8 @@ /* Endpoint now owns the request */ req = NULL; - video->req_int_count++; + if (buf->state != UVC_BUF_STATE_DONE) + video->req_int_count++; } if (!req) @@ -444,6 +459,9 @@ */ int uvcg_video_enable(struct uvc_video *video, int enable) { + struct uvc_device *uvc = video->uvc; + struct usb_composite_dev *cdev = uvc->func.config->cdev; + struct usb_gadget *gadget = cdev->gadget; unsigned int i; int ret; @@ -475,13 +493,15 @@ if (video->max_payload_size) { video->encode = uvc_video_encode_bulk; video->payload_size = 0; - } else - video->encode = video->queue.use_sg ? + } else { + video->encode = (video->queue.use_sg && + !(gadget->speed <= USB_SPEED_HIGH)) ? uvc_video_encode_isoc_sg : uvc_video_encode_isoc; + } video->req_int_count = 0; - schedule_work(&video->pump); + queue_work(video->async_wq, &video->pump); return ret; } @@ -495,6 +515,11 @@ spin_lock_init(&video->req_lock); INIT_WORK(&video->pump, uvcg_video_pump); + /* Allocate a work queue for asynchronous video pump handler. */ + video->async_wq = alloc_workqueue("uvcgadget", WQ_UNBOUND | WQ_HIGHPRI, 0); + if (!video->async_wq) + return -EINVAL; + video->uvc = uvc; video->fcc = V4L2_PIX_FMT_YUYV; video->bpp = 16; --- linux-5.19.0.orig/drivers/usb/gadget/legacy/inode.c +++ linux-5.19.0/drivers/usb/gadget/legacy/inode.c @@ -229,6 +229,7 @@ */ static const char *CHIP; +static DEFINE_MUTEX(sb_mutex); /* Serialize superblock operations */ /*----------------------------------------------------------------------*/ @@ -362,6 +363,7 @@ spin_unlock_irq (&epdata->dev->lock); DBG (epdata->dev, "endpoint gone\n"); + wait_for_completion(&done); epdata->status = -ENODEV; } } @@ -2009,13 +2011,20 @@ { struct inode *inode; struct dev_data *dev; + int rc; - if (the_device) - return -ESRCH; + mutex_lock(&sb_mutex); + + if (the_device) { + rc = -ESRCH; + goto Done; + } CHIP = usb_get_gadget_udc_name(); - if (!CHIP) - return -ENODEV; + if (!CHIP) { + rc = -ENODEV; + goto Done; + } /* superblock */ sb->s_blocksize = PAGE_SIZE; @@ -2052,13 +2061,17 @@ * from binding to a controller. */ the_device = dev; - return 0; + rc = 0; + goto Done; -Enomem: + Enomem: kfree(CHIP); CHIP = NULL; + rc = -ENOMEM; - return -ENOMEM; + Done: + mutex_unlock(&sb_mutex); + return rc; } /* "mount -t gadgetfs path /dev/gadget" ends up here */ @@ -2080,6 +2093,7 @@ static void gadgetfs_kill_sb (struct super_block *sb) { + mutex_lock(&sb_mutex); kill_litter_super (sb); if (the_device) { put_dev (the_device); @@ -2087,6 +2101,7 @@ } kfree(CHIP); CHIP = NULL; + mutex_unlock(&sb_mutex); } /*----------------------------------------------------------------------*/ --- linux-5.19.0.orig/drivers/usb/gadget/udc/Kconfig +++ linux-5.19.0/drivers/usb/gadget/udc/Kconfig @@ -311,7 +311,7 @@ config USB_AMD5536UDC tristate "AMD5536 UDC" - depends on USB_PCI + depends on USB_PCI && HAS_DMA select USB_SNP_CORE help The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge. --- linux-5.19.0.orig/drivers/usb/gadget/udc/aspeed-vhub/dev.c +++ linux-5.19.0/drivers/usb/gadget/udc/aspeed-vhub/dev.c @@ -591,6 +591,7 @@ d->gadget.max_speed = USB_SPEED_HIGH; d->gadget.speed = USB_SPEED_UNKNOWN; d->gadget.dev.of_node = vhub->pdev->dev.of_node; + d->gadget.dev.of_node_reused = true; rc = usb_add_gadget_udc(d->port_dev, &d->gadget); if (rc != 0) --- linux-5.19.0.orig/drivers/usb/gadget/udc/aspeed-vhub/hub.c +++ linux-5.19.0/drivers/usb/gadget/udc/aspeed-vhub/hub.c @@ -1059,8 +1059,10 @@ /* Initialize vhub String Descriptors. */ INIT_LIST_HEAD(&vhub->vhub_str_desc); desc_np = of_get_child_by_name(vhub_np, "vhub-strings"); - if (desc_np) + if (desc_np) { ret = ast_vhub_of_parse_str_desc(vhub, desc_np); + of_node_put(desc_np); + } else ret = ast_vhub_str_alloc_add(vhub, &ast_vhub_strings); --- linux-5.19.0.orig/drivers/usb/gadget/udc/bdc/bdc_udc.c +++ linux-5.19.0/drivers/usb/gadget/udc/bdc/bdc_udc.c @@ -151,6 +151,7 @@ bdc->delayed_status = false; bdc->reinit = reinit; bdc->test_mode = false; + usb_gadget_set_state(&bdc->gadget, USB_STATE_NOTATTACHED); } /* TNotify wkaeup timer */ --- linux-5.19.0.orig/drivers/usb/gadget/udc/core.c +++ linux-5.19.0/drivers/usb/gadget/udc/core.c @@ -734,10 +734,13 @@ } ret = gadget->ops->pullup(gadget, 0); - if (!ret) { + if (!ret) gadget->connected = 0; + + mutex_lock(&udc_lock); + if (gadget->udc->driver) gadget->udc->driver->disconnect(gadget); - } + mutex_unlock(&udc_lock); out: trace_usb_gadget_disconnect(gadget, ret); @@ -1489,7 +1492,6 @@ usb_gadget_udc_set_speed(udc, driver->max_speed); - mutex_lock(&udc_lock); ret = driver->bind(udc->gadget, driver); if (ret) goto err_bind; @@ -1499,7 +1501,6 @@ goto err_start; usb_gadget_enable_async_callbacks(udc); usb_udc_connect_control(udc); - mutex_unlock(&udc_lock); kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); return 0; @@ -1512,6 +1513,7 @@ dev_err(&udc->dev, "failed to start %s: %d\n", driver->function, ret); + mutex_lock(&udc_lock); udc->driver = NULL; driver->is_bound = false; mutex_unlock(&udc_lock); @@ -1529,7 +1531,6 @@ kobject_uevent(&udc->dev.kobj, KOBJ_CHANGE); - mutex_lock(&udc_lock); usb_gadget_disconnect(gadget); usb_gadget_disable_async_callbacks(udc); if (gadget->irq) @@ -1537,6 +1538,7 @@ udc->driver->unbind(gadget); usb_gadget_udc_stop(udc); + mutex_lock(&udc_lock); driver->is_bound = false; udc->driver = NULL; mutex_unlock(&udc_lock); @@ -1612,7 +1614,7 @@ struct usb_udc *udc = container_of(dev, struct usb_udc, dev); ssize_t ret; - mutex_lock(&udc_lock); + device_lock(&udc->gadget->dev); if (!udc->driver) { dev_err(dev, "soft-connect without a gadget driver\n"); ret = -EOPNOTSUPP; @@ -1633,7 +1635,7 @@ ret = n; out: - mutex_unlock(&udc_lock); + device_unlock(&udc->gadget->dev); return ret; } static DEVICE_ATTR_WO(soft_connect); @@ -1652,11 +1654,15 @@ char *buf) { struct usb_udc *udc = container_of(dev, struct usb_udc, dev); - struct usb_gadget_driver *drv = udc->driver; + struct usb_gadget_driver *drv; + int rc = 0; - if (!drv || !drv->function) - return 0; - return scnprintf(buf, PAGE_SIZE, "%s\n", drv->function); + mutex_lock(&udc_lock); + drv = udc->driver; + if (drv && drv->function) + rc = scnprintf(buf, PAGE_SIZE, "%s\n", drv->function); + mutex_unlock(&udc_lock); + return rc; } static DEVICE_ATTR_RO(function); @@ -1728,13 +1734,14 @@ return ret; } - if (udc->driver) { + mutex_lock(&udc_lock); + if (udc->driver) ret = add_uevent_var(env, "USB_UDC_DRIVER=%s", udc->driver->function); - if (ret) { - dev_err(dev, "failed to add uevent USB_UDC_DRIVER\n"); - return ret; - } + mutex_unlock(&udc_lock); + if (ret) { + dev_err(dev, "failed to add uevent USB_UDC_DRIVER\n"); + return ret; } return 0; --- linux-5.19.0.orig/drivers/usb/gadget/udc/fotg210-udc.c +++ linux-5.19.0/drivers/usb/gadget/udc/fotg210-udc.c @@ -629,10 +629,10 @@ static void fotg210_set_address(struct fotg210_udc *fotg210, struct usb_ctrlrequest *ctrl) { - if (ctrl->wValue >= 0x0100) { + if (le16_to_cpu(ctrl->wValue) >= 0x0100) { fotg210_request_error(fotg210); } else { - fotg210_set_dev_addr(fotg210, ctrl->wValue); + fotg210_set_dev_addr(fotg210, le16_to_cpu(ctrl->wValue)); fotg210_set_cxdone(fotg210); } } @@ -713,17 +713,17 @@ switch (ctrl->bRequestType & USB_RECIP_MASK) { case USB_RECIP_DEVICE: - fotg210->ep0_data = 1 << USB_DEVICE_SELF_POWERED; + fotg210->ep0_data = cpu_to_le16(1 << USB_DEVICE_SELF_POWERED); break; case USB_RECIP_INTERFACE: - fotg210->ep0_data = 0; + fotg210->ep0_data = cpu_to_le16(0); break; case USB_RECIP_ENDPOINT: epnum = ctrl->wIndex & USB_ENDPOINT_NUMBER_MASK; if (epnum) fotg210->ep0_data = - fotg210_is_epnstall(fotg210->ep[epnum]) - << USB_ENDPOINT_HALT; + cpu_to_le16(fotg210_is_epnstall(fotg210->ep[epnum]) + << USB_ENDPOINT_HALT); else fotg210_request_error(fotg210); break; --- linux-5.19.0.orig/drivers/usb/gadget/udc/tegra-xudc.c +++ linux-5.19.0/drivers/usb/gadget/udc/tegra-xudc.c @@ -3691,15 +3691,15 @@ int err; xudc->genpd_dev_device = dev_pm_domain_attach_by_name(dev, "dev"); - if (IS_ERR(xudc->genpd_dev_device)) { - err = PTR_ERR(xudc->genpd_dev_device); + if (IS_ERR_OR_NULL(xudc->genpd_dev_device)) { + err = PTR_ERR(xudc->genpd_dev_device) ? : -ENODATA; dev_err(dev, "failed to get device power domain: %d\n", err); return err; } xudc->genpd_dev_ss = dev_pm_domain_attach_by_name(dev, "ss"); - if (IS_ERR(xudc->genpd_dev_ss)) { - err = PTR_ERR(xudc->genpd_dev_ss); + if (IS_ERR_OR_NULL(xudc->genpd_dev_ss)) { + err = PTR_ERR(xudc->genpd_dev_ss) ? : -ENODATA; dev_err(dev, "failed to get SuperSpeed power domain: %d\n", err); return err; } --- linux-5.19.0.orig/drivers/usb/host/bcma-hcd.c +++ linux-5.19.0/drivers/usb/host/bcma-hcd.c @@ -285,7 +285,7 @@ { struct bcma_hcd_device *usb_dev = bcma_get_drvdata(dev); - if (IS_ERR_OR_NULL(usb_dev->gpio_desc)) + if (!usb_dev->gpio_desc) return; gpiod_set_value(usb_dev->gpio_desc, val); @@ -406,9 +406,11 @@ return -ENOMEM; usb_dev->core = core; - if (core->dev.of_node) - usb_dev->gpio_desc = devm_gpiod_get(&core->dev, "vcc", - GPIOD_OUT_HIGH); + usb_dev->gpio_desc = devm_gpiod_get_optional(&core->dev, "vcc", + GPIOD_OUT_HIGH); + if (IS_ERR(usb_dev->gpio_desc)) + return dev_err_probe(&core->dev, PTR_ERR(usb_dev->gpio_desc), + "error obtaining VCC GPIO"); switch (core->id.id) { case BCMA_CORE_USB20_HOST: --- linux-5.19.0.orig/drivers/usb/host/ehci-ppc-of.c +++ linux-5.19.0/drivers/usb/host/ehci-ppc-of.c @@ -148,6 +148,7 @@ } else { ehci->has_amcc_usb23 = 1; } + of_node_put(np); } if (of_get_property(dn, "big-endian", NULL)) { --- linux-5.19.0.orig/drivers/usb/host/ohci-at91.c +++ linux-5.19.0/drivers/usb/host/ohci-at91.c @@ -13,6 +13,7 @@ * This file is licenced under the GPL. */ +#include #include #include #include @@ -55,6 +56,7 @@ bool clocked; bool wakeup; /* Saved wake-up state for resume */ struct regmap *sfr_regmap; + u32 suspend_smc_id; }; /* interface and function clocks; sometimes also an AHB clock */ @@ -135,6 +137,19 @@ static void usb_hcd_at91_remove (struct usb_hcd *, struct platform_device *); +static u32 at91_dt_suspend_smc(struct device *dev) +{ + u32 suspend_smc_id; + + if (!dev->of_node) + return 0; + + if (of_property_read_u32(dev->of_node, "microchip,suspend-smc-id", &suspend_smc_id)) + return 0; + + return suspend_smc_id; +} + static struct regmap *at91_dt_syscon_sfr(void) { struct regmap *regmap; @@ -215,9 +230,13 @@ goto err; } - ohci_at91->sfr_regmap = at91_dt_syscon_sfr(); - if (!ohci_at91->sfr_regmap) - dev_dbg(dev, "failed to find sfr node\n"); + ohci_at91->suspend_smc_id = at91_dt_suspend_smc(dev); + if (!ohci_at91->suspend_smc_id) { + dev_dbg(dev, "failed to find sfr suspend smc id, using regmap\n"); + ohci_at91->sfr_regmap = at91_dt_syscon_sfr(); + if (!ohci_at91->sfr_regmap) + dev_dbg(dev, "failed to find sfr node\n"); + } board = hcd->self.controller->platform_data; ohci = hcd_to_ohci(hcd); @@ -303,24 +322,30 @@ return length; } -static int ohci_at91_port_suspend(struct regmap *regmap, u8 set) +static int ohci_at91_port_suspend(struct ohci_at91_priv *ohci_at91, u8 set) { + struct regmap *regmap = ohci_at91->sfr_regmap; u32 regval; int ret; - if (!regmap) - return 0; + if (ohci_at91->suspend_smc_id) { + struct arm_smccc_res res; - ret = regmap_read(regmap, AT91_SFR_OHCIICR, ®val); - if (ret) - return ret; + arm_smccc_smc(ohci_at91->suspend_smc_id, set, 0, 0, 0, 0, 0, 0, &res); + if (res.a0) + return -EINVAL; + } else if (regmap) { + ret = regmap_read(regmap, AT91_SFR_OHCIICR, ®val); + if (ret) + return ret; - if (set) - regval |= AT91_OHCIICR_USB_SUSPEND; - else - regval &= ~AT91_OHCIICR_USB_SUSPEND; + if (set) + regval |= AT91_OHCIICR_USB_SUSPEND; + else + regval &= ~AT91_OHCIICR_USB_SUSPEND; - regmap_write(regmap, AT91_SFR_OHCIICR, regval); + regmap_write(regmap, AT91_SFR_OHCIICR, regval); + } return 0; } @@ -357,9 +382,8 @@ case USB_PORT_FEAT_SUSPEND: dev_dbg(hcd->self.controller, "SetPortFeat: SUSPEND\n"); - if (valid_port(wIndex) && ohci_at91->sfr_regmap) { - ohci_at91_port_suspend(ohci_at91->sfr_regmap, - 1); + if (valid_port(wIndex)) { + ohci_at91_port_suspend(ohci_at91, 1); return 0; } break; @@ -400,9 +424,8 @@ case USB_PORT_FEAT_SUSPEND: dev_dbg(hcd->self.controller, "ClearPortFeature: SUSPEND\n"); - if (valid_port(wIndex) && ohci_at91->sfr_regmap) { - ohci_at91_port_suspend(ohci_at91->sfr_regmap, - 0); + if (valid_port(wIndex)) { + ohci_at91_port_suspend(ohci_at91, 0); return 0; } break; @@ -630,10 +653,10 @@ /* flush the writes */ (void) ohci_readl (ohci, &ohci->regs->control); msleep(1); - ohci_at91_port_suspend(ohci_at91->sfr_regmap, 1); + ohci_at91_port_suspend(ohci_at91, 1); at91_stop_clock(ohci_at91); } else { - ohci_at91_port_suspend(ohci_at91->sfr_regmap, 1); + ohci_at91_port_suspend(ohci_at91, 1); } return ret; @@ -645,7 +668,7 @@ struct usb_hcd *hcd = dev_get_drvdata(dev); struct ohci_at91_priv *ohci_at91 = hcd_to_ohci_at91_priv(hcd); - ohci_at91_port_suspend(ohci_at91->sfr_regmap, 0); + ohci_at91_port_suspend(ohci_at91, 0); if (ohci_at91->wakeup) disable_irq_wake(hcd->irq); --- linux-5.19.0.orig/drivers/usb/host/ohci-nxp.c +++ linux-5.19.0/drivers/usb/host/ohci-nxp.c @@ -164,6 +164,7 @@ } isp1301_i2c_client = isp1301_get_client(isp1301_node); + of_node_put(isp1301_node); if (!isp1301_i2c_client) return -EPROBE_DEFER; --- linux-5.19.0.orig/drivers/usb/host/ohci-ppc-of.c +++ linux-5.19.0/drivers/usb/host/ohci-ppc-of.c @@ -166,6 +166,7 @@ release_mem_region(res.start, 0x4); } else pr_debug("%s: cannot get ehci offset from fdt\n", __FILE__); + of_node_put(np); } irq_dispose_mapping(irq); --- linux-5.19.0.orig/drivers/usb/host/xhci-dbgcap.c +++ linux-5.19.0/drivers/usb/host/xhci-dbgcap.c @@ -988,7 +988,7 @@ dbc->driver = driver; if (readl(&dbc->regs->control) & DBC_CTRL_DBC_ENABLE) - return NULL; + goto err; INIT_DELAYED_WORK(&dbc->event_work, xhci_dbc_handle_events); spin_lock_init(&dbc->lock); --- linux-5.19.0.orig/drivers/usb/host/xhci-hub.c +++ linux-5.19.0/drivers/usb/host/xhci-hub.c @@ -652,7 +652,7 @@ * It will release and re-aquire the lock while calling ACPI * method. */ -void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, +static void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, u16 index, bool on, unsigned long *flags) __must_hold(&xhci->lock) { @@ -1648,6 +1648,17 @@ status = bus_state->resuming_ports; + /* + * SS devices are only visible to roothub after link training completes. + * Keep polling roothubs for a grace period after xHC start + */ + if (xhci->run_graceperiod) { + if (time_before(jiffies, xhci->run_graceperiod)) + status = 1; + else + xhci->run_graceperiod = 0; + } + mask = PORT_CSC | PORT_PEC | PORT_OCC | PORT_PLC | PORT_WRC | PORT_CEC; /* For each port, did anything change? If so, set that bit in buf. */ --- linux-5.19.0.orig/drivers/usb/host/xhci-mem.c +++ linux-5.19.0/drivers/usb/host/xhci-mem.c @@ -641,7 +641,7 @@ num_stream_ctxs, &stream_info->ctx_array_dma, mem_flags); if (!stream_info->stream_ctx_array) - goto cleanup_ctx; + goto cleanup_ring_array; memset(stream_info->stream_ctx_array, 0, sizeof(struct xhci_stream_ctx)*num_stream_ctxs); @@ -702,6 +702,11 @@ } xhci_free_command(xhci, stream_info->free_streams_command); cleanup_ctx: + xhci_free_stream_ctx(xhci, + stream_info->num_stream_ctxs, + stream_info->stream_ctx_array, + stream_info->ctx_array_dma); +cleanup_ring_array: kfree(stream_info->stream_rings); cleanup_info: kfree(stream_info); @@ -884,15 +889,19 @@ if (dev->eps[i].stream_info) xhci_free_stream_info(xhci, dev->eps[i].stream_info); - /* Endpoints on the TT/root port lists should have been removed - * when usb_disable_device() was called for the device. - * We can't drop them anyway, because the udev might have gone - * away by this point, and we can't tell what speed it was. + /* + * Endpoints are normally deleted from the bandwidth list when + * endpoints are dropped, before device is freed. + * If host is dying or being removed then endpoints aren't + * dropped cleanly, so delete the endpoint from list here. + * Only applicable for hosts with software bandwidth checking. */ - if (!list_empty(&dev->eps[i].bw_endpoint_list)) - xhci_warn(xhci, "Slot %u endpoint %u " - "not removed from BW list!\n", - slot_id, i); + + if (!list_empty(&dev->eps[i].bw_endpoint_list)) { + list_del_init(&dev->eps[i].bw_endpoint_list); + xhci_dbg(xhci, "Slot %u endpoint %u not removed from BW list!\n", + slot_id, i); + } } /* If this is a hub, free the TT(s) from the TT list */ xhci_free_tt_info(xhci, dev, slot_id); --- linux-5.19.0.orig/drivers/usb/host/xhci-mtk-sch.c +++ linux-5.19.0/drivers/usb/host/xhci-mtk-sch.c @@ -425,7 +425,6 @@ static int check_sch_tt(struct mu3h_sch_ep_info *sch_ep, u32 offset) { - u32 extra_cs_count; u32 start_ss, last_ss; u32 start_cs, last_cs; @@ -461,18 +460,12 @@ if (last_cs > 7) return -ESCH_CS_OVERFLOW; - if (sch_ep->ep_type == ISOC_IN_EP) - extra_cs_count = (last_cs == 7) ? 1 : 2; - else /* ep_type : INTR IN / INTR OUT */ - extra_cs_count = 1; - - cs_count += extra_cs_count; if (cs_count > 7) cs_count = 7; /* HW limit */ sch_ep->cs_count = cs_count; - /* one for ss, the other for idle */ - sch_ep->num_budget_microframes = cs_count + 2; + /* ss, idle are ignored */ + sch_ep->num_budget_microframes = cs_count; /* * if interval=1, maxp >752, num_budge_micoframe is larger @@ -771,8 +764,8 @@ if (ret) return ret; - if (ep->hcpriv) - drop_ep_quirk(hcd, udev, ep); + /* needn't check @ep->hcpriv, xhci_endpoint_disable set it NULL */ + drop_ep_quirk(hcd, udev, ep); return 0; } --- linux-5.19.0.orig/drivers/usb/host/xhci-mtk.c +++ linux-5.19.0/drivers/usb/host/xhci-mtk.c @@ -632,7 +632,6 @@ dealloc_usb3_hcd: usb_remove_hcd(xhci->shared_hcd); - xhci->shared_hcd = NULL; dealloc_usb2_hcd: usb_remove_hcd(hcd); --- linux-5.19.0.orig/drivers/usb/host/xhci-pci.c +++ linux-5.19.0/drivers/usb/host/xhci-pci.c @@ -58,25 +58,14 @@ #define PCI_DEVICE_ID_INTEL_CML_XHCI 0xa3af #define PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI 0x9a13 #define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI 0x1138 -#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_XHCI 0x461e -#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_XHCI 0x464e -#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI 0x51ed -#define PCI_DEVICE_ID_INTEL_RAPTOR_LAKE_XHCI 0xa71e -#define PCI_DEVICE_ID_INTEL_METEOR_LAKE_XHCI 0x7ec0 +#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI 0x51ed +#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI 0x54ed #define PCI_DEVICE_ID_AMD_RENOIR_XHCI 0x1639 #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_AMD_YELLOW_CARP_XHCI_1 0x161a -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_2 0x161b -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_3 0x161d -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_4 0x161e -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_5 0x15d6 -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_6 0x15d7 -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_7 0x161c -#define PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_8 0x161f #define PCI_DEVICE_ID_ASMEDIA_1042_XHCI 0x1042 #define PCI_DEVICE_ID_ASMEDIA_1042A_XHCI 0x1142 @@ -258,6 +247,11 @@ xhci->quirks |= XHCI_MISSING_CAS; if (pdev->vendor == PCI_VENDOR_ID_INTEL && + (pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI || + pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI)) + xhci->quirks |= XHCI_RESET_TO_DEFAULT; + + 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 || @@ -268,12 +262,7 @@ pdev->device == PCI_DEVICE_ID_INTEL_TITAN_RIDGE_DD_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_ICE_LAKE_XHCI || pdev->device == PCI_DEVICE_ID_INTEL_TIGER_LAKE_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_RAPTOR_LAKE_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_METEOR_LAKE_XHCI)) + pdev->device == PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI)) xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; if (pdev->vendor == PCI_VENDOR_ID_ETRON && @@ -306,8 +295,14 @@ } if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && - pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) + pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) { + /* + * try to tame the ASMedia 1042 controller which reports 0.96 + * but appears to behave more like 1.0 + */ + xhci->quirks |= XHCI_SPURIOUS_SUCCESS; xhci->quirks |= XHCI_BROKEN_STREAMS; + } if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) { xhci->quirks |= XHCI_TRUST_TX_LENGTH; @@ -336,15 +331,8 @@ pdev->device == PCI_DEVICE_ID_AMD_PROMONTORYA_4)) xhci->quirks |= XHCI_NO_SOFT_RETRY; - if (pdev->vendor == PCI_VENDOR_ID_AMD && - (pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_1 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_2 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_3 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_4 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_5 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_6 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_7 || - pdev->device == PCI_DEVICE_ID_AMD_YELLOW_CARP_XHCI_8)) + /* xHC spec requires PCI devices to support D3hot and D3cold */ + if (xhci->hci_version >= 0x120) xhci->quirks |= XHCI_DEFAULT_PM_RUNTIME_ALLOW; if (xhci->quirks & XHCI_RESET_ON_RESUME) --- linux-5.19.0.orig/drivers/usb/host/xhci-plat.c +++ linux-5.19.0/drivers/usb/host/xhci-plat.c @@ -123,7 +123,7 @@ }; static const struct xhci_plat_priv xhci_plat_brcm = { - .quirks = XHCI_RESET_ON_RESUME, + .quirks = XHCI_RESET_ON_RESUME | XHCI_SUSPEND_RESUME_CLKS, }; static const struct of_device_id usb_xhci_of_match[] = { @@ -398,12 +398,17 @@ pm_runtime_get_sync(&dev->dev); xhci->xhc_state |= XHCI_STATE_REMOVING; - usb_remove_hcd(shared_hcd); - xhci->shared_hcd = NULL; + if (shared_hcd) { + usb_remove_hcd(shared_hcd); + xhci->shared_hcd = NULL; + } + usb_phy_shutdown(hcd->usb_phy); usb_remove_hcd(hcd); - usb_put_hcd(shared_hcd); + + if (shared_hcd) + usb_put_hcd(shared_hcd); clk_disable_unprepare(clk); clk_disable_unprepare(reg_clk); @@ -432,7 +437,16 @@ * xhci_suspend() needs `do_wakeup` to know whether host is allowed * to do wakeup during suspend. */ - return xhci_suspend(xhci, device_may_wakeup(dev)); + ret = xhci_suspend(xhci, device_may_wakeup(dev)); + if (ret) + return ret; + + if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) { + clk_disable_unprepare(xhci->clk); + clk_disable_unprepare(xhci->reg_clk); + } + + return 0; } static int __maybe_unused xhci_plat_resume(struct device *dev) @@ -441,6 +455,11 @@ struct xhci_hcd *xhci = hcd_to_xhci(hcd); int ret; + if (!device_may_wakeup(dev) && (xhci->quirks & XHCI_SUSPEND_RESUME_CLKS)) { + clk_prepare_enable(xhci->clk); + clk_prepare_enable(xhci->reg_clk); + } + ret = xhci_priv_resume_quirk(hcd); if (ret) return ret; --- linux-5.19.0.orig/drivers/usb/host/xhci-ring.c +++ linux-5.19.0/drivers/usb/host/xhci-ring.c @@ -2458,7 +2458,7 @@ switch (trb_comp_code) { case COMP_SUCCESS: - ep_ring->err_count = 0; + ep->err_count = 0; /* handle success with untransferred data as short packet */ if (ep_trb != td->last_trb || remaining) { xhci_warn(xhci, "WARN Successful completion on short TX\n"); @@ -2484,7 +2484,7 @@ break; case COMP_USB_TRANSACTION_ERROR: if (xhci->quirks & XHCI_NO_SOFT_RETRY || - (ep_ring->err_count++ > MAX_SOFT_RETRY) || + (ep->err_count++ > MAX_SOFT_RETRY) || le32_to_cpu(slot_ctx->tt_info) & TT_SLOT) break; @@ -2565,8 +2565,14 @@ case COMP_USB_TRANSACTION_ERROR: case COMP_INVALID_STREAM_TYPE_ERROR: case COMP_INVALID_STREAM_ID_ERROR: - xhci_handle_halted_endpoint(xhci, ep, 0, NULL, - EP_SOFT_RESET); + xhci_dbg(xhci, "Stream transaction error ep %u no id\n", + ep_index); + if (ep->err_count++ > MAX_SOFT_RETRY) + xhci_handle_halted_endpoint(xhci, ep, 0, NULL, + EP_HARD_RESET); + else + xhci_handle_halted_endpoint(xhci, ep, 0, NULL, + EP_SOFT_RESET); goto cleanup; case COMP_RING_UNDERRUN: case COMP_RING_OVERRUN: --- linux-5.19.0.orig/drivers/usb/host/xhci-tegra.c +++ linux-5.19.0/drivers/usb/host/xhci-tegra.c @@ -1010,15 +1010,15 @@ int err; tegra->genpd_dev_host = dev_pm_domain_attach_by_name(dev, "xusb_host"); - if (IS_ERR(tegra->genpd_dev_host)) { - err = PTR_ERR(tegra->genpd_dev_host); + if (IS_ERR_OR_NULL(tegra->genpd_dev_host)) { + err = PTR_ERR(tegra->genpd_dev_host) ? : -ENODATA; dev_err(dev, "failed to get host pm-domain: %d\n", err); return err; } tegra->genpd_dev_ss = dev_pm_domain_attach_by_name(dev, "xusb_ss"); - if (IS_ERR(tegra->genpd_dev_ss)) { - err = PTR_ERR(tegra->genpd_dev_ss); + if (IS_ERR_OR_NULL(tegra->genpd_dev_ss)) { + err = PTR_ERR(tegra->genpd_dev_ss) ? : -ENODATA; dev_err(dev, "failed to get superspeed pm-domain: %d\n", err); return err; } --- linux-5.19.0.orig/drivers/usb/host/xhci.c +++ linux-5.19.0/drivers/usb/host/xhci.c @@ -151,9 +151,11 @@ xhci_err(xhci, "Host took too long to start, " "waited %u microseconds.\n", XHCI_MAX_HALT_USEC); - if (!ret) + if (!ret) { /* clear state flags. Including dying, halted or removing */ xhci->xhc_state = 0; + xhci->run_graceperiod = jiffies + msecs_to_jiffies(500); + } return ret; } @@ -791,8 +793,6 @@ void xhci_shutdown(struct usb_hcd *hcd) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); - unsigned long flags; - int i; if (xhci->quirks & XHCI_SPURIOUS_REBOOT) usb_disable_xhci_ports(to_pci_dev(hcd->self.sysdev)); @@ -808,21 +808,18 @@ del_timer_sync(&xhci->shared_hcd->rh_timer); } - spin_lock_irqsave(&xhci->lock, flags); + spin_lock_irq(&xhci->lock); xhci_halt(xhci); - /* Power off USB2 ports*/ - for (i = 0; i < xhci->usb2_rhub.num_ports; i++) - xhci_set_port_power(xhci, xhci->main_hcd, i, false, &flags); - - /* Power off USB3 ports*/ - for (i = 0; i < xhci->usb3_rhub.num_ports; i++) - xhci_set_port_power(xhci, xhci->shared_hcd, i, false, &flags); - - /* Workaround for spurious wakeups at shutdown with HSW */ - if (xhci->quirks & XHCI_SPURIOUS_WAKEUP) + /* + * Workaround for spurious wakeps at shutdown with HSW, and for boot + * firmware delay in ADL-P PCH if port are left in U3 at shutdown + */ + if (xhci->quirks & XHCI_SPURIOUS_WAKEUP || + xhci->quirks & XHCI_RESET_TO_DEFAULT) xhci_reset(xhci, XHCI_RESET_SHORT_USEC); - spin_unlock_irqrestore(&xhci->lock, flags); + + spin_unlock_irq(&xhci->lock); xhci_cleanup_msix(xhci); @@ -1192,7 +1189,8 @@ /* re-initialize the HC on Restore Error, or Host Controller Error */ if (temp & (STS_SRE | STS_HCE)) { reinit_xhc = true; - xhci_warn(xhci, "xHC error in resume, USBSTS 0x%x, Reinit\n", temp); + if (!xhci->broken_suspend) + xhci_warn(xhci, "xHC error in resume, USBSTS 0x%x, Reinit\n", temp); } if (reinit_xhc) { --- linux-5.19.0.orig/drivers/usb/host/xhci.h +++ linux-5.19.0/drivers/usb/host/xhci.h @@ -933,6 +933,7 @@ * have to restore the device state to the previous state */ struct xhci_ring *new_ring; + unsigned int err_count; unsigned int ep_state; #define SET_DEQ_PENDING (1 << 0) #define EP_HALTED (1 << 1) /* For stall handling */ @@ -1627,7 +1628,6 @@ * if we own the TRB (if we are the consumer). See section 4.9.1. */ u32 cycle_state; - unsigned int err_count; unsigned int stream_id; unsigned int num_segs; unsigned int num_trbs_free; @@ -1826,7 +1826,7 @@ /* Host controller watchdog timer structures */ unsigned int xhc_state; - + unsigned long run_graceperiod; u32 command; struct s3_save s3; /* Host controller is dying - not responding to commands. "I'm not dead yet!" @@ -1899,6 +1899,8 @@ #define XHCI_NO_SOFT_RETRY BIT_ULL(40) #define XHCI_BROKEN_D3COLD BIT_ULL(41) #define XHCI_EP_CTX_BROKEN_DCS BIT_ULL(42) +#define XHCI_SUSPEND_RESUME_CLKS BIT_ULL(43) +#define XHCI_RESET_TO_DEFAULT BIT_ULL(44) unsigned int num_active_eps; unsigned int limit_active_eps; @@ -2196,8 +2198,6 @@ int xhci_hub_status_data(struct usb_hcd *hcd, char *buf); int xhci_find_raw_port_number(struct usb_hcd *hcd, int port1); struct xhci_hub *xhci_get_rhub(struct usb_hcd *hcd); -void xhci_set_port_power(struct xhci_hcd *xhci, struct usb_hcd *hcd, u16 index, - bool on, unsigned long *flags); void xhci_hc_died(struct xhci_hcd *xhci); @@ -2417,7 +2417,7 @@ field3 & TRB_CYCLE ? 'C' : 'c'); break; case TRB_STOP_RING: - sprintf(str, + snprintf(str, size, "%s: slot %d sp %d ep %d flags %c", xhci_trb_type_string(type), TRB_TO_SLOT_ID(field3), --- linux-5.19.0.orig/drivers/usb/misc/idmouse.c +++ linux-5.19.0/drivers/usb/misc/idmouse.c @@ -177,10 +177,6 @@ bytes_read += bulk_read; } - /* reset the device */ -reset: - ftip_command(dev, FTIP_RELEASE, 0, 0); - /* check for valid image */ /* right border should be black (0x00) */ for (bytes_read = sizeof(HEADER)-1 + WIDTH-1; bytes_read < IMGSIZE; bytes_read += WIDTH) @@ -192,6 +188,10 @@ if (dev->bulk_in_buffer[bytes_read] != 0xFF) return -EAGAIN; + /* reset the device */ +reset: + ftip_command(dev, FTIP_RELEASE, 0, 0); + /* should be IMGSIZE == 65040 */ dev_dbg(&dev->interface->dev, "read %d bytes fingerprint data\n", bytes_read); --- linux-5.19.0.orig/drivers/usb/mon/mon_bin.c +++ linux-5.19.0/drivers/usb/mon/mon_bin.c @@ -1268,6 +1268,11 @@ { /* don't do anything here: "fault" will set up page table entries */ vma->vm_ops = &mon_bin_vm_ops; + + if (vma->vm_flags & VM_WRITE) + return -EPERM; + + vma->vm_flags &= ~VM_MAYWRITE; vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; vma->vm_private_data = filp->private_data; mon_bin_vma_open(vma); --- linux-5.19.0.orig/drivers/usb/mtu3/mtu3_core.c +++ linux-5.19.0/drivers/usb/mtu3/mtu3_core.c @@ -971,8 +971,6 @@ goto irq_err; } - device_init_wakeup(dev, true); - /* power down device IP for power saving by default */ mtu3_stop(mtu); --- linux-5.19.0.orig/drivers/usb/mtu3/mtu3_plat.c +++ linux-5.19.0/drivers/usb/mtu3/mtu3_plat.c @@ -332,6 +332,8 @@ pm_runtime_enable(dev); pm_runtime_get_sync(dev); + device_init_wakeup(dev, true); + ret = ssusb_rscs_init(ssusb); if (ret) goto comm_init_err; --- linux-5.19.0.orig/drivers/usb/musb/Kconfig +++ linux-5.19.0/drivers/usb/musb/Kconfig @@ -86,7 +86,7 @@ tristate "TUSB6010" depends on HAS_IOMEM depends on ARCH_OMAP2PLUS || COMPILE_TEST - depends on NOP_USB_XCEIV = USB_MUSB_HDRC # both built-in or both modules + depends on NOP_USB_XCEIV!=m || USB_MUSB_HDRC=m config USB_MUSB_OMAP2PLUS tristate "OMAP2430 and onwards" @@ -123,6 +123,17 @@ select GENERIC_PHY select USB_ROLE_SWITCH +config USB_MUSB_POLARFIRE_SOC + tristate "Microchip PolarFire SoC platforms" + depends on SOC_MICROCHIP_POLARFIRE || COMPILE_TEST + depends on NOP_USB_XCEIV + select USB_MUSB_DUAL_ROLE + help + Say Y here to enable support for USB on Microchip's PolarFire SoC. + + This support is also available as a module. If so, the module + will be called mpfs. + comment "MUSB DMA mode" config MUSB_PIO_ONLY @@ -146,7 +157,7 @@ config USB_INVENTRA_DMA bool 'Inventra' - depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 + depends on USB_MUSB_OMAP2PLUS || USB_MUSB_MEDIATEK || USB_MUSB_JZ4740 || USB_MUSB_POLARFIRE_SOC help Enable DMA transfers using Mentor's engine. --- linux-5.19.0.orig/drivers/usb/musb/Makefile +++ linux-5.19.0/drivers/usb/musb/Makefile @@ -25,6 +25,7 @@ obj-$(CONFIG_USB_MUSB_JZ4740) += jz4740.o obj-$(CONFIG_USB_MUSB_SUNXI) += sunxi.o obj-$(CONFIG_USB_MUSB_MEDIATEK) += mediatek.o +obj-$(CONFIG_USB_MUSB_POLARFIRE_SOC) += mpfs.o # the kconfig must guarantee that only one of the # possible I/O schemes will be enabled at a time ... --- linux-5.19.0.orig/drivers/usb/musb/mpfs.c +++ linux-5.19.0/drivers/usb/musb/mpfs.c @@ -0,0 +1,269 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * PolarFire SoC (MPFS) MUSB Glue Layer + * + * Copyright (c) 2020-2022 Microchip Corporation. All rights reserved. + * Based on {omap2430,tusb6010,ux500}.c + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "musb_core.h" +#include "musb_dma.h" + +#define MPFS_MUSB_MAX_EP_NUM 8 +#define MPFS_MUSB_RAM_BITS 12 + +struct mpfs_glue { + struct device *dev; + struct platform_device *musb; + struct platform_device *phy; + struct clk *clk; +}; + +static struct musb_fifo_cfg mpfs_musb_mode_cfg[] = { + { .hw_ep_num = 1, .style = FIFO_TX, .maxpacket = 512, }, + { .hw_ep_num = 1, .style = FIFO_RX, .maxpacket = 512, }, + { .hw_ep_num = 2, .style = FIFO_TX, .maxpacket = 512, }, + { .hw_ep_num = 2, .style = FIFO_RX, .maxpacket = 512, }, + { .hw_ep_num = 3, .style = FIFO_TX, .maxpacket = 512, }, + { .hw_ep_num = 3, .style = FIFO_RX, .maxpacket = 512, }, + { .hw_ep_num = 4, .style = FIFO_TX, .maxpacket = 1024, }, + { .hw_ep_num = 4, .style = FIFO_RX, .maxpacket = 4096, }, +}; + +static const struct musb_hdrc_config mpfs_musb_hdrc_config = { + .fifo_cfg = mpfs_musb_mode_cfg, + .fifo_cfg_size = ARRAY_SIZE(mpfs_musb_mode_cfg), + .multipoint = true, + .dyn_fifo = true, + .num_eps = MPFS_MUSB_MAX_EP_NUM, + .ram_bits = MPFS_MUSB_RAM_BITS, +}; + +static irqreturn_t mpfs_musb_interrupt(int irq, void *__hci) +{ + unsigned long flags; + irqreturn_t ret = IRQ_NONE; + struct musb *musb = __hci; + + spin_lock_irqsave(&musb->lock, flags); + + musb->int_usb = musb_readb(musb->mregs, MUSB_INTRUSB); + musb->int_tx = musb_readw(musb->mregs, MUSB_INTRTX); + musb->int_rx = musb_readw(musb->mregs, MUSB_INTRRX); + + if (musb->int_usb || musb->int_tx || musb->int_rx) { + musb_writeb(musb->mregs, MUSB_INTRUSB, musb->int_usb); + musb_writew(musb->mregs, MUSB_INTRTX, musb->int_tx); + musb_writew(musb->mregs, MUSB_INTRRX, musb->int_rx); + ret = musb_interrupt(musb); + } + + spin_unlock_irqrestore(&musb->lock, flags); + + return ret; +} + +static void mpfs_musb_set_vbus(struct musb *musb, int is_on) +{ + u8 devctl; + + /* + * HDRC controls CPEN, but beware current surges during device + * connect. They can trigger transient overcurrent conditions + * that must be ignored. + */ + devctl = musb_readb(musb->mregs, MUSB_DEVCTL); + + if (is_on) { + musb->is_active = 1; + musb->xceiv->otg->default_a = 1; + musb->xceiv->otg->state = OTG_STATE_A_WAIT_VRISE; + devctl |= MUSB_DEVCTL_SESSION; + MUSB_HST_MODE(musb); + } else { + musb->is_active = 0; + + /* + * NOTE: skipping A_WAIT_VFALL -> A_IDLE and + * jumping right to B_IDLE... + */ + musb->xceiv->otg->default_a = 0; + musb->xceiv->otg->state = OTG_STATE_B_IDLE; + devctl &= ~MUSB_DEVCTL_SESSION; + + MUSB_DEV_MODE(musb); + } + + musb_writeb(musb->mregs, MUSB_DEVCTL, devctl); + + dev_dbg(musb->controller, "VBUS %s, devctl %02x\n", + usb_otg_state_string(musb->xceiv->otg->state), + musb_readb(musb->mregs, MUSB_DEVCTL)); +} + +static int mpfs_musb_init(struct musb *musb) +{ + struct device *dev = musb->controller; + + musb->xceiv = devm_usb_get_phy(dev, USB_PHY_TYPE_USB2); + if (IS_ERR(musb->xceiv)) { + dev_err(dev, "HS UDC: no transceiver configured\n"); + return PTR_ERR(musb->xceiv); + } + + musb->dyn_fifo = true; + musb->isr = mpfs_musb_interrupt; + + musb_platform_set_vbus(musb, 1); + + return 0; +} + +static const struct musb_platform_ops mpfs_ops = { + .quirks = MUSB_DMA_INVENTRA, + .init = mpfs_musb_init, + .fifo_mode = 2, +#ifdef CONFIG_USB_INVENTRA_DMA + .dma_init = musbhs_dma_controller_create, + .dma_exit = musbhs_dma_controller_destroy, +#endif + .set_vbus = mpfs_musb_set_vbus +}; + +static int mpfs_probe(struct platform_device *pdev) +{ + struct musb_hdrc_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct mpfs_glue *glue; + struct platform_device *musb_pdev; + struct device *dev = &pdev->dev; + struct clk *clk; + int ret; + + glue = devm_kzalloc(dev, sizeof(*glue), GFP_KERNEL); + if (!glue) + return -ENOMEM; + + musb_pdev = platform_device_alloc("musb-hdrc", PLATFORM_DEVID_AUTO); + if (!musb_pdev) { + dev_err(dev, "failed to allocate musb device\n"); + return -ENOMEM; + } + + clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(clk)) { + dev_err(&pdev->dev, "failed to get clock\n"); + ret = PTR_ERR(clk); + goto err_phy_release; + } + + ret = clk_prepare_enable(clk); + if (ret) { + dev_err(&pdev->dev, "failed to enable clock\n"); + goto err_phy_release; + } + + musb_pdev->dev.parent = dev; + musb_pdev->dev.coherent_dma_mask = DMA_BIT_MASK(39); + musb_pdev->dev.dma_mask = &musb_pdev->dev.coherent_dma_mask; + device_set_of_node_from_dev(&musb_pdev->dev, dev); + + glue->dev = dev; + glue->musb = musb_pdev; + glue->clk = clk; + + pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL); + if (!pdata) { + ret = -ENOMEM; + goto err_clk_disable; + } + + pdata->config = &mpfs_musb_hdrc_config; + pdata->platform_ops = &mpfs_ops; + + pdata->mode = usb_get_dr_mode(dev); + if (pdata->mode == USB_DR_MODE_UNKNOWN) { + dev_info(dev, "No dr_mode property found, defaulting to otg\n"); + pdata->mode = USB_DR_MODE_OTG; + } + + glue->phy = usb_phy_generic_register(); + if (IS_ERR(glue->phy)) { + dev_err(dev, "failed to register usb-phy %ld\n", + PTR_ERR(glue->phy)); + ret = PTR_ERR(glue->phy); + goto err_clk_disable; + } + + platform_set_drvdata(pdev, glue); + + ret = platform_device_add_resources(musb_pdev, pdev->resource, pdev->num_resources); + if (ret) { + dev_err(dev, "failed to add resources\n"); + goto err_clk_disable; + } + + ret = platform_device_add_data(musb_pdev, pdata, sizeof(*pdata)); + if (ret) { + dev_err(dev, "failed to add platform_data\n"); + goto err_clk_disable; + } + + ret = platform_device_add(musb_pdev); + if (ret) { + dev_err(dev, "failed to register musb device\n"); + goto err_clk_disable; + } + + dev_info(&pdev->dev, "Registered MPFS MUSB driver\n"); + return 0; + +err_clk_disable: + clk_disable_unprepare(clk); + +err_phy_release: + usb_phy_generic_unregister(glue->phy); + platform_device_put(musb_pdev); + return ret; +} + +static int mpfs_remove(struct platform_device *pdev) +{ + struct mpfs_glue *glue = platform_get_drvdata(pdev); + + clk_disable_unprepare(glue->clk); + platform_device_unregister(glue->musb); + usb_phy_generic_unregister(pdev); + + return 0; +} + +#ifdef CONFIG_OF +static const struct of_device_id mpfs_id_table[] = { + { .compatible = "microchip,mpfs-musb" }, + { } +}; +MODULE_DEVICE_TABLE(of, mpfs_id_table); +#endif + +static struct platform_driver mpfs_musb_driver = { + .probe = mpfs_probe, + .remove = mpfs_remove, + .driver = { + .name = "mpfs-musb", + .of_match_table = of_match_ptr(mpfs_id_table) + }, +}; + +module_platform_driver(mpfs_musb_driver); + +MODULE_DESCRIPTION("PolarFire SoC MUSB Glue Layer"); +MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/drivers/usb/musb/musb_gadget.c +++ linux-5.19.0/drivers/usb/musb/musb_gadget.c @@ -760,6 +760,9 @@ musb_writew(epio, MUSB_RXCSR, csr); buffer_aint_mapped: + fifo_count = min_t(unsigned int, + request->length - request->actual, + (unsigned int)fifo_count); musb_read_fifo(musb_ep->hw_ep, fifo_count, (u8 *) (request->buf + request->actual)); request->actual += fifo_count; @@ -1625,8 +1628,6 @@ { struct musb *musb = gadget_to_musb(gadget); - if (!musb->xceiv->set_power) - return -EOPNOTSUPP; return usb_phy_set_power(musb->xceiv, mA); } --- linux-5.19.0.orig/drivers/usb/musb/omap2430.c +++ linux-5.19.0/drivers/usb/musb/omap2430.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include @@ -310,6 +311,7 @@ struct device_node *control_node; struct platform_device *control_pdev; int ret = -ENOMEM, val; + bool populate_irqs = false; if (!np) return -ENODEV; @@ -328,6 +330,18 @@ musb->dev.dma_mask = &omap2430_dmamask; musb->dev.coherent_dma_mask = omap2430_dmamask; + /* + * Legacy SoCs using omap_device get confused if node is moved + * because of interconnect properties mixed into the node. + */ + if (of_get_property(np, "ti,hwmods", NULL)) { + dev_warn(&pdev->dev, "please update to probe with ti-sysc\n"); + populate_irqs = true; + } else { + device_set_of_node_from_dev(&musb->dev, &pdev->dev); + } + of_node_put(np); + glue->dev = &pdev->dev; glue->musb = musb; glue->status = MUSB_UNKNOWN; @@ -389,6 +403,46 @@ goto err2; } + if (populate_irqs) { + struct resource musb_res[3]; + struct resource *res; + int i = 0; + + memset(musb_res, 0, sizeof(*musb_res) * ARRAY_SIZE(musb_res)); + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + goto err2; + + musb_res[i].start = res->start; + musb_res[i].end = res->end; + musb_res[i].flags = res->flags; + musb_res[i].name = res->name; + i++; + + ret = of_irq_get_byname(np, "mc"); + if (ret > 0) { + musb_res[i].start = ret; + musb_res[i].flags = IORESOURCE_IRQ; + musb_res[i].name = "mc"; + i++; + } + + ret = of_irq_get_byname(np, "dma"); + if (ret > 0) { + musb_res[i].start = ret; + musb_res[i].flags = IORESOURCE_IRQ; + musb_res[i].name = "dma"; + i++; + } + + ret = platform_device_add_resources(musb, musb_res, i); + if (ret) { + dev_err(&pdev->dev, "failed to add IRQ resources\n"); + goto err2; + } + } + ret = platform_device_add_data(musb, pdata, sizeof(*pdata)); if (ret) { dev_err(&pdev->dev, "failed to add platform_data\n"); --- linux-5.19.0.orig/drivers/usb/renesas_usbhs/rza.c +++ linux-5.19.0/drivers/usb/renesas_usbhs/rza.c @@ -23,6 +23,10 @@ extal_clk = of_find_node_by_name(NULL, "extal"); of_property_read_u32(usb_x1_clk, "clock-frequency", &freq_usb); of_property_read_u32(extal_clk, "clock-frequency", &freq_extal); + + of_node_put(usb_x1_clk); + of_node_put(extal_clk); + if (freq_usb == 0) { if (freq_extal == 12000000) { /* Select 12MHz XTAL */ --- linux-5.19.0.orig/drivers/usb/roles/class.c +++ linux-5.19.0/drivers/usb/roles/class.c @@ -106,10 +106,13 @@ struct fwnode_handle *parent = fwnode_get_parent(fwnode); struct device *dev; - if (!parent || !fwnode_property_present(parent, "usb-role-switch")) + if (!fwnode_property_present(parent, "usb-role-switch")) { + fwnode_handle_put(parent); return NULL; + } dev = class_find_device_by_fwnode(role_class, parent); + fwnode_handle_put(parent); return dev ? to_role_switch(dev) : ERR_PTR(-EPROBE_DEFER); } --- linux-5.19.0.orig/drivers/usb/serial/ch341.c +++ linux-5.19.0/drivers/usb/serial/ch341.c @@ -97,7 +97,10 @@ u8 mcr; u8 msr; u8 lcr; + unsigned long quirks; + u8 version; + unsigned long break_end; }; @@ -250,8 +253,12 @@ /* * CH341A buffers data until a full endpoint-size packet (32 bytes) * has been received unless bit 7 is set. + * + * At least one device with version 0x27 appears to have this bit + * inverted. */ - val |= BIT(7); + if (priv->version > 0x27) + val |= BIT(7); r = ch341_control_out(dev, CH341_REQ_WRITE_REG, CH341_REG_DIVISOR << 8 | CH341_REG_PRESCALER, @@ -265,6 +272,9 @@ * (stop bits, parity and word length). Version 0x30 and above use * CH341_REG_LCR only and CH341_REG_LCR2 is always set to zero. */ + if (priv->version < 0x30) + return 0; + r = ch341_control_out(dev, CH341_REQ_WRITE_REG, CH341_REG_LCR2 << 8 | CH341_REG_LCR, lcr); if (r) @@ -308,7 +318,9 @@ r = ch341_control_in(dev, CH341_REQ_READ_VERSION, 0, 0, buffer, size); if (r) return r; - dev_dbg(&dev->dev, "Chip version: 0x%02x\n", buffer[0]); + + priv->version = buffer[0]; + dev_dbg(&dev->dev, "Chip version: 0x%02x\n", priv->version); r = ch341_control_out(dev, CH341_REQ_SERIAL_INIT, 0, 0); if (r < 0) --- linux-5.19.0.orig/drivers/usb/serial/cp210x.c +++ linux-5.19.0/drivers/usb/serial/cp210x.c @@ -130,6 +130,7 @@ { 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, 0x8414) }, /* Decagon USB Cable Adapter */ { USB_DEVICE(0x10C4, 0x8418) }, /* IRZ Automation Teleport SG-10 GSM/GPRS Modem */ { USB_DEVICE(0x10C4, 0x846E) }, /* BEI USB Sensor Interface (VCP) */ { USB_DEVICE(0x10C4, 0x8470) }, /* Juniper Networks BX Series System Console */ @@ -194,6 +195,8 @@ { USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */ { USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */ { USB_DEVICE(0x17A8, 0x0005) }, /* Kamstrup M-Bus Master MultiPort 250D */ + { USB_DEVICE(0x17A8, 0x0011) }, /* Kamstrup 444 MHz RF sniffer */ + { USB_DEVICE(0x17A8, 0x0013) }, /* Kamstrup 870 MHz RF sniffer */ { USB_DEVICE(0x17A8, 0x0101) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Int Ant) */ { USB_DEVICE(0x17A8, 0x0102) }, /* Kamstrup 868 MHz wM-Bus C-Mode Meter Reader (Ext Ant) */ { USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */ --- linux-5.19.0.orig/drivers/usb/serial/f81232.c +++ linux-5.19.0/drivers/usb/serial/f81232.c @@ -130,9 +130,6 @@ static int calc_baud_divisor(speed_t baudrate, speed_t clockrate) { - if (!baudrate) - return 0; - return DIV_ROUND_CLOSEST(clockrate, baudrate); } @@ -498,9 +495,14 @@ speed_t baud_list[] = { baudrate, old_baudrate, F81232_DEF_BAUDRATE }; for (i = 0; i < ARRAY_SIZE(baud_list); ++i) { - idx = f81232_find_clk(baud_list[i]); + baudrate = baud_list[i]; + if (baudrate == 0) { + tty_encode_baud_rate(tty, 0, 0); + return; + } + + idx = f81232_find_clk(baudrate); if (idx >= 0) { - baudrate = baud_list[i]; tty_encode_baud_rate(tty, baudrate, baudrate); break; } --- linux-5.19.0.orig/drivers/usb/serial/f81534.c +++ linux-5.19.0/drivers/usb/serial/f81534.c @@ -536,9 +536,6 @@ static u32 f81534_calc_baud_divisor(u32 baudrate, u32 clockrate) { - if (!baudrate) - return 0; - /* Round to nearest divisor */ return DIV_ROUND_CLOSEST(clockrate, baudrate); } @@ -568,9 +565,14 @@ u32 baud_list[] = {baudrate, old_baudrate, F81534_DEFAULT_BAUD_RATE}; for (i = 0; i < ARRAY_SIZE(baud_list); ++i) { - idx = f81534_find_clk(baud_list[i]); + baudrate = baud_list[i]; + if (baudrate == 0) { + tty_encode_baud_rate(tty, 0, 0); + return 0; + } + + idx = f81534_find_clk(baudrate); if (idx >= 0) { - baudrate = baud_list[i]; tty_encode_baud_rate(tty, baudrate, baudrate); break; } --- linux-5.19.0.orig/drivers/usb/serial/ftdi_sio.c +++ linux-5.19.0/drivers/usb/serial/ftdi_sio.c @@ -1045,6 +1045,8 @@ /* IDS GmbH devices */ { USB_DEVICE(IDS_VID, IDS_SI31A_PID) }, { USB_DEVICE(IDS_VID, IDS_CM31A_PID) }, + /* Omron devices */ + { USB_DEVICE(OMRON_VID, OMRON_CS1W_CIF31_PID) }, /* U-Blox devices */ { USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ZED_PID) }, { USB_DEVICE(UBLOX_VID, UBLOX_C099F9P_ODIN_PID) }, @@ -1317,8 +1319,7 @@ case 38400: div_value = ftdi_sio_b38400; break; case 57600: div_value = ftdi_sio_b57600; break; case 115200: div_value = ftdi_sio_b115200; break; - } /* baud */ - if (div_value == 0) { + default: dev_dbg(dev, "%s - Baudrate (%d) requested is not supported\n", __func__, baud); div_value = ftdi_sio_b9600; --- linux-5.19.0.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-5.19.0/drivers/usb/serial/ftdi_sio_ids.h @@ -662,6 +662,12 @@ #define INFINEON_TRIBOARD_TC2X7_PID 0x0043 /* DAS JTAG TriBoard TC2X7 V1.0 */ /* + * Omron corporation (https://www.omron.com) + */ + #define OMRON_VID 0x0590 + #define OMRON_CS1W_CIF31_PID 0x00b2 + +/* * Acton Research Corp. */ #define ACTON_VID 0x0647 /* Vendor ID */ --- linux-5.19.0.orig/drivers/usb/serial/option.c +++ linux-5.19.0/drivers/usb/serial/option.c @@ -162,6 +162,8 @@ #define NOVATELWIRELESS_PRODUCT_G2 0xA010 #define NOVATELWIRELESS_PRODUCT_MC551 0xB001 +#define UBLOX_VENDOR_ID 0x1546 + /* AMOI PRODUCTS */ #define AMOI_VENDOR_ID 0x1614 #define AMOI_PRODUCT_H01 0x0800 @@ -240,7 +242,6 @@ #define QUECTEL_PRODUCT_UC15 0x9090 /* These u-blox products use Qualcomm's vendor ID */ #define UBLOX_PRODUCT_R410M 0x90b2 -#define UBLOX_PRODUCT_R6XX 0x90fa /* These Yuga products use Qualcomm's vendor ID */ #define YUGA_PRODUCT_CLM920_NC5 0x9625 @@ -253,8 +254,11 @@ #define QUECTEL_PRODUCT_BG96 0x0296 #define QUECTEL_PRODUCT_EP06 0x0306 #define QUECTEL_PRODUCT_EM05G 0x030a +#define QUECTEL_PRODUCT_EM060K 0x030b +#define QUECTEL_PRODUCT_EM05G_SG 0x0311 #define QUECTEL_PRODUCT_EM12 0x0512 #define QUECTEL_PRODUCT_RM500Q 0x0800 +#define QUECTEL_PRODUCT_RM520N 0x0801 #define QUECTEL_PRODUCT_EC200S_CN 0x6002 #define QUECTEL_PRODUCT_EC200T 0x6026 #define QUECTEL_PRODUCT_RM500K 0x7001 @@ -438,6 +442,8 @@ #define CINTERION_PRODUCT_MV31_2_RMNET 0x00b9 #define CINTERION_PRODUCT_MV32_WA 0x00f1 #define CINTERION_PRODUCT_MV32_WB 0x00f2 +#define CINTERION_PRODUCT_MV32_WA_RMNET 0x00f3 +#define CINTERION_PRODUCT_MV32_WB_RMNET 0x00f4 /* Olivetti products */ #define OLIVETTI_VENDOR_ID 0x0b3c @@ -573,6 +579,13 @@ #define WETELECOM_PRODUCT_6802 0x6802 #define WETELECOM_PRODUCT_WMD300 0x6803 +/* OPPO products */ +#define OPPO_VENDOR_ID 0x22d9 +#define OPPO_PRODUCT_R11 0x276c + +/* Sierra Wireless products */ +#define SIERRA_VENDOR_ID 0x1199 +#define SIERRA_PRODUCT_EM9191 0x90d3 /* Device flags */ @@ -1116,8 +1129,16 @@ /* u-blox products using Qualcomm vendor ID */ { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R410M), .driver_info = RSVD(1) | RSVD(3) }, - { USB_DEVICE(QUALCOMM_VENDOR_ID, UBLOX_PRODUCT_R6XX), + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x908b), /* u-blox LARA-R6 00B */ + .driver_info = RSVD(4) }, + { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x90fa), .driver_info = RSVD(3) }, + /* u-blox products */ + { USB_DEVICE(UBLOX_VENDOR_ID, 0x1341) }, /* u-blox LARA-L6 */ + { USB_DEVICE(UBLOX_VENDOR_ID, 0x1342), /* u-blox LARA-L6 (RMNET) */ + .driver_info = RSVD(4) }, + { USB_DEVICE(UBLOX_VENDOR_ID, 0x1343), /* u-blox LARA-L6 (ECM) */ + .driver_info = RSVD(4) }, /* Quectel products using Quectel vendor ID */ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21, 0xff, 0xff, 0xff), .driver_info = NUMEP2 }, @@ -1131,6 +1152,8 @@ { 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_INTERFACE_CLASS(QUECTEL_VENDOR_ID, 0x0203, 0xff), /* BG95-M3 */ + .driver_info = ZLP }, { 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), @@ -1138,6 +1161,11 @@ { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G, 0xff), .driver_info = RSVD(6) | ZLP }, + { USB_DEVICE_INTERFACE_CLASS(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM05G_SG, 0xff), + .driver_info = RSVD(6) | ZLP }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0x00, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EM060K, 0xff, 0xff, 0x40) }, { 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) }, @@ -1149,6 +1177,9 @@ { 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_RM520N, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0x40) }, + { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM520N, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200S_CN, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC200T, 0xff, 0, 0) }, { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_RM500K, 0xff, 0x00, 0x00) }, @@ -1993,8 +2024,12 @@ .driver_info = RSVD(0)}, { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA, 0xff), .driver_info = RSVD(3)}, + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WA_RMNET, 0xff), + .driver_info = RSVD(0) }, { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB, 0xff), .driver_info = RSVD(3)}, + { USB_DEVICE_INTERFACE_CLASS(CINTERION_VENDOR_ID, CINTERION_PRODUCT_MV32_WB_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), @@ -2147,6 +2182,7 @@ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x010a, 0xff) }, /* Fibocom MA510 (ECM mode) */ { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0xff, 0x30) }, /* Fibocom FG150 Diag */ { USB_DEVICE_AND_INTERFACE_INFO(0x2cb7, 0x010b, 0xff, 0, 0) }, /* Fibocom FG150 AT */ + { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x0111, 0xff) }, /* Fibocom FM160 (MBIM mode) */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a0, 0xff) }, /* Fibocom NL668-AM/NL652-EU (laptop MBIM) */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a2, 0xff) }, /* Fibocom FM101-GL (laptop MBIM) */ { USB_DEVICE_INTERFACE_CLASS(0x2cb7, 0x01a4, 0xff), /* Fibocom FM101-GL (laptop MBIM) */ @@ -2155,6 +2191,9 @@ { 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 */ + { USB_DEVICE_AND_INTERFACE_INFO(OPPO_VENDOR_ID, OPPO_PRODUCT_R11, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0xff, 0x30) }, + { USB_DEVICE_AND_INTERFACE_INFO(SIERRA_VENDOR_ID, SIERRA_PRODUCT_EM9191, 0xff, 0, 0) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); --- linux-5.19.0.orig/drivers/usb/serial/qcserial.c +++ linux-5.19.0/drivers/usb/serial/qcserial.c @@ -177,6 +177,7 @@ {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, 0x81c2)}, /* Dell Wireless 5811e */ {DEVICE_SWI(0x413c, 0x81cb)}, /* Dell Wireless 5816e QDL */ {DEVICE_SWI(0x413c, 0x81cc)}, /* Dell Wireless 5816e */ {DEVICE_SWI(0x413c, 0x81cf)}, /* Dell Wireless 5819 */ --- linux-5.19.0.orig/drivers/usb/serial/sierra.c +++ linux-5.19.0/drivers/usb/serial/sierra.c @@ -737,7 +737,8 @@ /* * Need to take susp_lock to make sure port is not already being - * resumed, but no need to hold it due to initialized + * resumed, but no need to hold it due to the tty-port initialized + * flag. */ spin_lock_irq(&intfdata->susp_lock); if (--intfdata->open_ports == 0) --- linux-5.19.0.orig/drivers/usb/serial/usb-serial.c +++ linux-5.19.0/drivers/usb/serial/usb-serial.c @@ -295,7 +295,7 @@ * * Shut down a USB serial port. Serialized against activate by the * tport mutex and kept to matching open/close pairs - * of calls by the initialized flag. + * of calls by the tty-port initialized flag. * * Not called if tty is console. */ --- linux-5.19.0.orig/drivers/usb/serial/usb_wwan.c +++ linux-5.19.0/drivers/usb/serial/usb_wwan.c @@ -388,7 +388,8 @@ /* * Need to take susp_lock to make sure port is not already being - * resumed, but no need to hold it due to initialized + * resumed, but no need to hold it due to the tty-port initialized + * flag. */ spin_lock_irq(&intfdata->susp_lock); if (--intfdata->open_ports == 0) --- linux-5.19.0.orig/drivers/usb/storage/alauda.c +++ linux-5.19.0/drivers/usb/storage/alauda.c @@ -438,6 +438,8 @@ + MEDIA_INFO(us).blockshift + MEDIA_INFO(us).pageshift); MEDIA_INFO(us).pba_to_lba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO); MEDIA_INFO(us).lba_to_pba = kcalloc(num_zones, sizeof(u16*), GFP_NOIO); + if (MEDIA_INFO(us).pba_to_lba == NULL || MEDIA_INFO(us).lba_to_pba == NULL) + return USB_STOR_TRANSPORT_ERROR; if (alauda_reset_media(us) != USB_STOR_XFER_GOOD) return USB_STOR_TRANSPORT_ERROR; --- linux-5.19.0.orig/drivers/usb/storage/realtek_cr.c +++ linux-5.19.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-5.19.0.orig/drivers/usb/storage/unusual_devs.h +++ linux-5.19.0/drivers/usb/storage/unusual_devs.h @@ -1275,12 +1275,6 @@ 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", @@ -1354,6 +1348,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, 0), +/* Reported by Timo Aaltonen */ +UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999, + "Option", + "Mass Storage", + USB_SC_DEVICE, USB_PR_DEVICE, option_ms_init, + 0 ), + /* * Reported by F. Aben * This device (wrongly) has a vendor-specific device descriptor. @@ -2294,6 +2295,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ), +/* Reported by Witold Lipieta */ +UNUSUAL_DEV( 0x1fc9, 0x0117, 0x0100, 0x0100, + "NXP Semiconductors", + "PN7462AU", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_RESIDUE ), + /* Supplied with some Castlewood ORB removable drives */ UNUSUAL_DEV( 0x2027, 0xa001, 0x0000, 0x9999, "Double-H Technology", --- linux-5.19.0.orig/drivers/usb/storage/unusual_uas.h +++ linux-5.19.0/drivers/usb/storage/unusual_uas.h @@ -52,6 +52,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_REPORT_OPCODES | US_FL_NO_SAME), +/* Reported-by: Hongling Zeng */ +UNUSUAL_DEV(0x090c, 0x2000, 0x0000, 0x9999, + "Hiksemi", + "External HDD", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + /* * Apricorn USB3 dongle sometimes returns "USBSUSBSUSBS" in response to SCSI * commands in UAS mode. Observed with the 1.28 firmware; are there others? @@ -62,6 +69,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_UAS), +/* Reported-by: Tom Hu */ +UNUSUAL_DEV(0x0b05, 0x1932, 0x0000, 0x9999, + "ASUS", + "External HDD", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + /* Reported-by: David Webb */ UNUSUAL_DEV(0x0bc2, 0x331a, 0x0000, 0x9999, "Seagate", @@ -69,6 +83,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_REPORT_LUNS), +/* Reported-by: Hongling Zeng */ +UNUSUAL_DEV(0x0bda, 0x9210, 0x0000, 0x9999, + "Hiksemi", + "External HDD", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + /* Reported-by: Benjamin Tissoires */ UNUSUAL_DEV(0x13fd, 0x3940, 0x0000, 0x9999, "Initio Corporation", @@ -111,6 +132,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_NO_ATA_1X), +/* Reported-by: Hongling Zeng */ +UNUSUAL_DEV(0x17ef, 0x3899, 0x0000, 0x9999, + "Thinkplus", + "External HDD", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_IGNORE_UAS), + /* Reported-by: Hans de Goede */ UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999, "VIA", --- linux-5.19.0.orig/drivers/usb/typec/altmodes/displayport.c +++ linux-5.19.0/drivers/usb/typec/altmodes/displayport.c @@ -99,8 +99,8 @@ case DP_STATUS_CON_UFP_D: case DP_STATUS_CON_BOTH: /* NOTE: First acting as DP source */ conf |= DP_CONF_UFP_U_AS_UFP_D; - pin_assign = DP_CAP_DFP_D_PIN_ASSIGN(dp->alt->vdo) & - DP_CAP_UFP_D_PIN_ASSIGN(dp->port->vdo); + pin_assign = DP_CAP_PIN_ASSIGN_UFP_D(dp->alt->vdo) & + DP_CAP_PIN_ASSIGN_DFP_D(dp->port->vdo); break; default: break; --- linux-5.19.0.orig/drivers/usb/typec/bus.c +++ linux-5.19.0/drivers/usb/typec/bus.c @@ -134,7 +134,7 @@ if (!adev || !adev->active) return 0; - if (!pdev->ops || !pdev->ops->enter) + if (!pdev->ops || !pdev->ops->exit) return -EOPNOTSUPP; /* Moving to USB Safe State */ --- linux-5.19.0.orig/drivers/usb/typec/mux/intel_pmc_mux.c +++ linux-5.19.0/drivers/usb/typec/mux/intel_pmc_mux.c @@ -369,13 +369,24 @@ return pmc_usb_command(port, (void *)&req, sizeof(req)); } -static int pmc_usb_mux_safe_state(struct pmc_usb_port *port) +static int pmc_usb_mux_safe_state(struct pmc_usb_port *port, + struct typec_mux_state *state) { u8 msg; if (IOM_PORT_ACTIVITY_IS(port->iom_status, SAFE_MODE)) return 0; + if ((IOM_PORT_ACTIVITY_IS(port->iom_status, DP) || + IOM_PORT_ACTIVITY_IS(port->iom_status, DP_MFD)) && + state->alt && state->alt->svid == USB_TYPEC_DP_SID) + return 0; + + if ((IOM_PORT_ACTIVITY_IS(port->iom_status, TBT) || + IOM_PORT_ACTIVITY_IS(port->iom_status, ALT_MODE_TBT_USB)) && + state->alt && state->alt->svid == USB_TYPEC_TBT_SID) + return 0; + msg = PMC_USB_SAFE_MODE; msg |= port->usb3_port << PMC_USB_MSG_USB3_PORT_SHIFT; @@ -443,7 +454,7 @@ return 0; if (state->mode == TYPEC_STATE_SAFE) - return pmc_usb_mux_safe_state(port); + return pmc_usb_mux_safe_state(port, state); if (state->mode == TYPEC_STATE_USB) return pmc_usb_connect(port, port->role); @@ -571,9 +582,11 @@ static int is_memory(struct acpi_resource *res, void *data) { - struct resource r; + struct resource_win win = {}; + struct resource *r = &win.res; - return !acpi_dev_resource_memory(res, &r); + return !(acpi_dev_resource_memory(res, r) || + acpi_dev_resource_address_space(res, &win)); } /* IOM ACPI IDs and IOM_PORT_STATUS_OFFSET */ @@ -583,6 +596,9 @@ /* AlderLake */ { "INTC1079", 0x160, }, + + /* Meteor Lake */ + { "INTC107A", 0x160, }, {} }; --- linux-5.19.0.orig/drivers/usb/typec/tcpm/tcpci.c +++ linux-5.19.0/drivers/usb/typec/tcpm/tcpci.c @@ -817,8 +817,10 @@ return ERR_PTR(err); tcpci->port = tcpm_register_port(tcpci->dev, &tcpci->tcpc); - if (IS_ERR(tcpci->port)) + if (IS_ERR(tcpci->port)) { + fwnode_handle_put(tcpci->tcpc.fwnode); return ERR_CAST(tcpci->port); + } return tcpci; } @@ -827,6 +829,7 @@ void tcpci_unregister_port(struct tcpci *tcpci) { tcpm_unregister_port(tcpci->port); + fwnode_handle_put(tcpci->tcpc.fwnode); } EXPORT_SYMBOL_GPL(tcpci_unregister_port); --- linux-5.19.0.orig/drivers/usb/typec/tcpm/tcpm.c +++ linux-5.19.0/drivers/usb/typec/tcpm/tcpm.c @@ -6191,6 +6191,13 @@ struct tcpm_port *port = power_supply_get_drvdata(psy); int ret; + /* + * All the properties below are related to USB PD. The check needs to be + * property specific when a non-pd related property is added. + */ + if (!port->pd_supported) + return -EOPNOTSUPP; + switch (psp) { case POWER_SUPPLY_PROP_ONLINE: ret = tcpm_psy_set_online(port, val); --- linux-5.19.0.orig/drivers/usb/typec/tipd/core.c +++ linux-5.19.0/drivers/usb/typec/tipd/core.c @@ -474,7 +474,7 @@ static irqreturn_t cd321x_interrupt(int irq, void *data) { struct tps6598x *tps = data; - u64 event; + u64 event = 0; u32 status; int ret; @@ -519,8 +519,8 @@ static irqreturn_t tps6598x_interrupt(int irq, void *data) { struct tps6598x *tps = data; - u64 event1; - u64 event2; + u64 event1 = 0; + u64 event2 = 0; u32 status; int ret; @@ -814,20 +814,19 @@ ret = devm_tps6598_psy_register(tps); if (ret) - return ret; + goto err_role_put; tps->port = typec_register_port(&client->dev, &typec_cap); if (IS_ERR(tps->port)) { ret = PTR_ERR(tps->port); goto err_role_put; } - fwnode_handle_put(fwnode); if (status & TPS_STATUS_PLUG_PRESENT) { ret = tps6598x_read16(tps, TPS_REG_POWER_STATUS, &tps->pwr_status); if (ret < 0) { dev_err(tps->dev, "failed to read power status: %d\n", ret); - goto err_role_put; + goto err_unregister_port; } ret = tps6598x_connect(tps, status); if (ret) @@ -840,14 +839,16 @@ dev_name(&client->dev), tps); if (ret) { tps6598x_disconnect(tps, 0); - typec_unregister_port(tps->port); - goto err_role_put; + goto err_unregister_port; } i2c_set_clientdata(client, tps); + fwnode_handle_put(fwnode); return 0; +err_unregister_port: + typec_unregister_port(tps->port); err_role_put: usb_role_switch_put(tps->role_sw); err_fwnode_put: --- linux-5.19.0.orig/drivers/usb/typec/ucsi/ucsi.c +++ linux-5.19.0/drivers/usb/typec/ucsi/ucsi.c @@ -76,6 +76,10 @@ if (ret) return ret; + ret = ucsi_acknowledge_command(ucsi); + if (ret) + return ret; + switch (error) { case UCSI_ERROR_INCOMPATIBLE_PARTNER: return -EOPNOTSUPP; @@ -179,16 +183,6 @@ } EXPORT_SYMBOL_GPL(ucsi_send_command); -int ucsi_resume(struct ucsi *ucsi) -{ - u64 command; - - /* Restore UCSI notification enable mask after system resume */ - command = UCSI_SET_NOTIFICATION_ENABLE | ucsi->ntfy; - - return ucsi_send_command(ucsi, command, NULL, 0); -} -EXPORT_SYMBOL_GPL(ucsi_resume); /* -------------------------------------------------------------------------- */ struct ucsi_work { @@ -584,8 +578,6 @@ num_pdos * sizeof(u32)); if (ret < 0 && ret != -ETIMEDOUT) dev_err(ucsi->dev, "UCSI_GET_PDOS failed (%d)\n", ret); - if (ret == 0 && offset == 0) - dev_warn(ucsi->dev, "UCSI_GET_PDOS returned 0 bytes\n"); return ret; } @@ -742,6 +734,7 @@ static int ucsi_check_connection(struct ucsi_connector *con) { + u8 prev_flags = con->status.flags; u64 command; int ret; @@ -752,10 +745,13 @@ return ret; } + if (con->status.flags == prev_flags) + return 0; + if (con->status.flags & UCSI_CONSTAT_CONNECTED) { - if (UCSI_CONSTAT_PWR_OPMODE(con->status.flags) == - UCSI_CONSTAT_PWR_OPMODE_PD) - ucsi_partner_task(con, ucsi_check_altmodes, 30, 0); + ucsi_register_partner(con); + ucsi_pwr_opmode_change(con); + ucsi_partner_change(con); } else { ucsi_partner_change(con); ucsi_port_psy_changed(con); @@ -1065,11 +1061,9 @@ cap->fwnode = ucsi_find_fwnode(con); con->usb_role_sw = fwnode_usb_role_switch_get(cap->fwnode); - if (IS_ERR(con->usb_role_sw)) { - dev_err(ucsi->dev, "con%d: failed to get usb role switch\n", - con->num); - return PTR_ERR(con->usb_role_sw); - } + if (IS_ERR(con->usb_role_sw)) + return dev_err_probe(ucsi->dev, PTR_ERR(con->usb_role_sw), + "con%d: failed to get usb role switch\n", con->num); /* Delay other interactions with the con until registration is complete */ mutex_lock(&con->lock); @@ -1196,32 +1190,6 @@ return ret; } -static void ucsi_unregister_connectors(struct ucsi *ucsi) -{ - struct ucsi_connector *con; - int i; - - if (!ucsi->connector) - return; - - for (i = 0; i < ucsi->cap.num_connectors; i++) { - con = &ucsi->connector[i]; - - if (!con->wq) - break; - - cancel_work_sync(&con->work); - ucsi_unregister_partner(con); - ucsi_unregister_altmodes(con, UCSI_RECIPIENT_CON); - ucsi_unregister_port_psy(con); - destroy_workqueue(con->wq); - typec_unregister_port(con->port); - } - - kfree(ucsi->connector); - ucsi->connector = NULL; -} - /** * ucsi_init - Initialize UCSI interface * @ucsi: UCSI to be initialized @@ -1230,6 +1198,7 @@ */ static int ucsi_init(struct ucsi *ucsi) { + struct ucsi_connector *con; u64 command; int ret; int i; @@ -1260,7 +1229,7 @@ } /* Allocate the connectors. Released in ucsi_unregister() */ - ucsi->connector = kcalloc(ucsi->cap.num_connectors, + ucsi->connector = kcalloc(ucsi->cap.num_connectors + 1, sizeof(*ucsi->connector), GFP_KERNEL); if (!ucsi->connector) { ret = -ENOMEM; @@ -1284,7 +1253,15 @@ return 0; err_unregister: - ucsi_unregister_connectors(ucsi); + for (con = ucsi->connector; con->port; con++) { + ucsi_unregister_partner(con); + ucsi_unregister_altmodes(con, UCSI_RECIPIENT_CON); + ucsi_unregister_port_psy(con); + if (con->wq) + destroy_workqueue(con->wq); + typec_unregister_port(con->port); + con->port = NULL; + } err_reset: memset(&ucsi->cap, 0, sizeof(ucsi->cap)); @@ -1293,6 +1270,35 @@ return ret; } +static void ucsi_resume_work(struct work_struct *work) +{ + struct ucsi *ucsi = container_of(work, struct ucsi, resume_work); + struct ucsi_connector *con; + u64 command; + int ret; + + /* Restore UCSI notification enable mask after system resume */ + command = UCSI_SET_NOTIFICATION_ENABLE | ucsi->ntfy; + ret = ucsi_send_command(ucsi, command, NULL, 0); + if (ret < 0) { + dev_err(ucsi->dev, "failed to re-enable notifications (%d)\n", ret); + return; + } + + for (con = ucsi->connector; con->port; con++) { + mutex_lock(&con->lock); + ucsi_partner_task(con, ucsi_check_connection, 1, 0); + mutex_unlock(&con->lock); + } +} + +int ucsi_resume(struct ucsi *ucsi) +{ + queue_work(system_long_wq, &ucsi->resume_work); + return 0; +} +EXPORT_SYMBOL_GPL(ucsi_resume); + static void ucsi_init_work(struct work_struct *work) { struct ucsi *ucsi = container_of(work, struct ucsi, work.work); @@ -1348,6 +1354,7 @@ if (!ucsi) return ERR_PTR(-ENOMEM); + INIT_WORK(&ucsi->resume_work, ucsi_resume_work); INIT_DELAYED_WORK(&ucsi->work, ucsi_init_work); mutex_init(&ucsi->ppm_lock); ucsi->dev = dev; @@ -1398,14 +1405,27 @@ void ucsi_unregister(struct ucsi *ucsi) { u64 cmd = UCSI_SET_NOTIFICATION_ENABLE; + int i; /* Make sure that we are not in the middle of driver initialization */ cancel_delayed_work_sync(&ucsi->work); + cancel_work_sync(&ucsi->resume_work); /* Disable notifications */ ucsi->ops->async_write(ucsi, UCSI_CONTROL, &cmd, sizeof(cmd)); - ucsi_unregister_connectors(ucsi); + for (i = 0; i < ucsi->cap.num_connectors; i++) { + cancel_work_sync(&ucsi->connector[i].work); + ucsi_unregister_partner(&ucsi->connector[i]); + ucsi_unregister_altmodes(&ucsi->connector[i], + UCSI_RECIPIENT_CON); + ucsi_unregister_port_psy(&ucsi->connector[i]); + if (ucsi->connector[i].wq) + destroy_workqueue(ucsi->connector[i].wq); + typec_unregister_port(ucsi->connector[i].port); + } + + kfree(ucsi->connector); } EXPORT_SYMBOL_GPL(ucsi_unregister); --- linux-5.19.0.orig/drivers/usb/typec/ucsi/ucsi.h +++ linux-5.19.0/drivers/usb/typec/ucsi/ucsi.h @@ -287,6 +287,7 @@ struct ucsi_capability cap; struct ucsi_connector *connector; + struct work_struct resume_work; struct delayed_work work; int work_count; #define UCSI_ROLE_SWITCH_RETRY_PER_HZ 10 --- linux-5.19.0.orig/drivers/usb/typec/ucsi/ucsi_acpi.c +++ linux-5.19.0/drivers/usb/typec/ucsi/ucsi_acpi.c @@ -185,6 +185,15 @@ return 0; } +static int ucsi_acpi_resume(struct device *dev) +{ + struct ucsi_acpi *ua = dev_get_drvdata(dev); + + return ucsi_resume(ua->ucsi); +} + +static DEFINE_SIMPLE_DEV_PM_OPS(ucsi_acpi_pm_ops, NULL, ucsi_acpi_resume); + static const struct acpi_device_id ucsi_acpi_match[] = { { "PNP0CA0", 0 }, { }, @@ -194,6 +203,7 @@ static struct platform_driver ucsi_acpi_platform_driver = { .driver = { .name = "ucsi_acpi", + .pm = pm_ptr(&ucsi_acpi_pm_ops), .acpi_match_table = ACPI_PTR(ucsi_acpi_match), }, .probe = ucsi_acpi_probe, --- linux-5.19.0.orig/drivers/usb/typec/wusb3801.c +++ linux-5.19.0/drivers/usb/typec/wusb3801.c @@ -364,7 +364,7 @@ /* Initialize the hardware with the devicetree settings. */ ret = wusb3801_hw_init(wusb3801); if (ret) - return ret; + goto err_put_connector; wusb3801->cap.revision = USB_TYPEC_REV_1_2; wusb3801->cap.accessory[0] = TYPEC_ACCESSORY_AUDIO; --- linux-5.19.0.orig/drivers/usb/usbip/vudc_sysfs.c +++ linux-5.19.0/drivers/usb/usbip/vudc_sysfs.c @@ -128,7 +128,7 @@ goto unlock; } - spin_lock_irq(&udc->ud.lock); + spin_lock(&udc->ud.lock); if (udc->ud.status != SDEV_ST_AVAILABLE) { ret = -EINVAL; @@ -150,7 +150,7 @@ } /* unlock and create threads and get tasks */ - spin_unlock_irq(&udc->ud.lock); + spin_unlock(&udc->ud.lock); spin_unlock_irqrestore(&udc->lock, flags); tcp_rx = kthread_create(&v_rx_loop, &udc->ud, "vudc_rx"); @@ -173,14 +173,14 @@ /* lock and update udc->ud state */ spin_lock_irqsave(&udc->lock, flags); - spin_lock_irq(&udc->ud.lock); + spin_lock(&udc->ud.lock); udc->ud.tcp_socket = socket; udc->ud.tcp_rx = tcp_rx; udc->ud.tcp_tx = tcp_tx; udc->ud.status = SDEV_ST_USED; - spin_unlock_irq(&udc->ud.lock); + spin_unlock(&udc->ud.lock); ktime_get_ts64(&udc->start_time); v_start_timer(udc); @@ -201,12 +201,12 @@ goto unlock; } - spin_lock_irq(&udc->ud.lock); + spin_lock(&udc->ud.lock); if (udc->ud.status != SDEV_ST_USED) { ret = -EINVAL; goto unlock_ud; } - spin_unlock_irq(&udc->ud.lock); + spin_unlock(&udc->ud.lock); usbip_event_add(&udc->ud, VUDC_EVENT_DOWN); } @@ -219,7 +219,7 @@ sock_err: sockfd_put(socket); unlock_ud: - spin_unlock_irq(&udc->ud.lock); + spin_unlock(&udc->ud.lock); unlock: spin_unlock_irqrestore(&udc->lock, flags); mutex_unlock(&udc->ud.sysfs_lock); --- linux-5.19.0.orig/drivers/vdpa/ifcvf/ifcvf_base.c +++ linux-5.19.0/drivers/vdpa/ifcvf/ifcvf_base.c @@ -315,7 +315,7 @@ u32 q_pair_id; ifcvf_lm = (struct ifcvf_lm_cfg __iomem *)hw->lm_cfg; - q_pair_id = qid / hw->nr_vring; + q_pair_id = qid / 2; avail_idx_addr = &ifcvf_lm->vring_lm_cfg[q_pair_id].idx_addr[qid % 2]; last_avail_idx = vp_ioread16(avail_idx_addr); @@ -329,7 +329,7 @@ u32 q_pair_id; ifcvf_lm = (struct ifcvf_lm_cfg __iomem *)hw->lm_cfg; - q_pair_id = qid / hw->nr_vring; + q_pair_id = qid / 2; avail_idx_addr = &ifcvf_lm->vring_lm_cfg[q_pair_id].idx_addr[qid % 2]; hw->vring[qid].last_avail_idx = num; vp_iowrite16(num, avail_idx_addr); --- linux-5.19.0.orig/drivers/vdpa/mlx5/net/mlx5_vnet.c +++ linux-5.19.0/drivers/vdpa/mlx5/net/mlx5_vnet.c @@ -1297,6 +1297,8 @@ static int create_rqt(struct mlx5_vdpa_net *ndev) { + int rqt_table_size = roundup_pow_of_two(ndev->rqt_size); + int act_sz = roundup_pow_of_two(ndev->cur_num_vqs / 2); __be32 *list; void *rqtc; int inlen; @@ -1304,7 +1306,7 @@ int i, j; int err; - inlen = MLX5_ST_SZ_BYTES(create_rqt_in) + ndev->rqt_size * MLX5_ST_SZ_BYTES(rq_num); + inlen = MLX5_ST_SZ_BYTES(create_rqt_in) + rqt_table_size * MLX5_ST_SZ_BYTES(rq_num); in = kzalloc(inlen, GFP_KERNEL); if (!in) return -ENOMEM; @@ -1313,12 +1315,12 @@ rqtc = MLX5_ADDR_OF(create_rqt_in, in, rqt_context); MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); - MLX5_SET(rqtc, rqtc, rqt_max_size, ndev->rqt_size); + MLX5_SET(rqtc, rqtc, rqt_max_size, rqt_table_size); list = MLX5_ADDR_OF(rqtc, rqtc, rq_num[0]); - for (i = 0, j = 0; i < ndev->rqt_size; i++, j += 2) + for (i = 0, j = 0; i < act_sz; i++, j += 2) list[i] = cpu_to_be32(ndev->vqs[j % ndev->cur_num_vqs].virtq_id); - MLX5_SET(rqtc, rqtc, rqt_actual_size, ndev->rqt_size); + MLX5_SET(rqtc, rqtc, rqt_actual_size, act_sz); err = mlx5_vdpa_create_rqt(&ndev->mvdev, in, inlen, &ndev->res.rqtn); kfree(in); if (err) @@ -1331,6 +1333,7 @@ static int modify_rqt(struct mlx5_vdpa_net *ndev, int num) { + int act_sz = roundup_pow_of_two(num / 2); __be32 *list; void *rqtc; int inlen; @@ -1338,7 +1341,7 @@ int i, j; int err; - inlen = MLX5_ST_SZ_BYTES(modify_rqt_in) + ndev->rqt_size * MLX5_ST_SZ_BYTES(rq_num); + inlen = MLX5_ST_SZ_BYTES(modify_rqt_in) + act_sz * MLX5_ST_SZ_BYTES(rq_num); in = kzalloc(inlen, GFP_KERNEL); if (!in) return -ENOMEM; @@ -1349,10 +1352,10 @@ MLX5_SET(rqtc, rqtc, list_q_type, MLX5_RQTC_LIST_Q_TYPE_VIRTIO_NET_Q); list = MLX5_ADDR_OF(rqtc, rqtc, rq_num[0]); - for (i = 0, j = 0; i < ndev->rqt_size; i++, j += 2) + for (i = 0, j = 0; i < act_sz; i++, j = j + 2) list[i] = cpu_to_be32(ndev->vqs[j % num].virtq_id); - MLX5_SET(rqtc, rqtc, rqt_actual_size, ndev->rqt_size); + MLX5_SET(rqtc, rqtc, rqt_actual_size, act_sz); err = mlx5_vdpa_modify_rqt(&ndev->mvdev, in, inlen, ndev->res.rqtn); kfree(in); if (err) --- linux-5.19.0.orig/drivers/vdpa/vdpa_sim/vdpa_sim.c +++ linux-5.19.0/drivers/vdpa/vdpa_sim/vdpa_sim.c @@ -33,7 +33,7 @@ static int max_iotlb_entries = 2048; module_param(max_iotlb_entries, int, 0444); MODULE_PARM_DESC(max_iotlb_entries, - "Maximum number of iotlb entries. 0 means unlimited. (default: 2048)"); + "Maximum number of iotlb entries for each address space. 0 means unlimited. (default: 2048)"); #define VDPASIM_QUEUE_ALIGN PAGE_SIZE #define VDPASIM_QUEUE_MAX 256 @@ -291,7 +291,7 @@ goto err_iommu; for (i = 0; i < vdpasim->dev_attr.nas; i++) - vhost_iotlb_init(&vdpasim->iommu[i], 0, 0); + vhost_iotlb_init(&vdpasim->iommu[i], max_iotlb_entries, 0); vdpasim->buffer = kvmalloc(dev_attr->buffer_size, GFP_KERNEL); if (!vdpasim->buffer) --- linux-5.19.0.orig/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c +++ linux-5.19.0/drivers/vdpa/vdpa_sim/vdpa_sim_blk.c @@ -34,7 +34,11 @@ #define VDPASIM_BLK_CAPACITY 0x40000 #define VDPASIM_BLK_SIZE_MAX 0x1000 #define VDPASIM_BLK_SEG_MAX 32 + +/* 1 virtqueue, 1 address space, 1 virtqueue group */ #define VDPASIM_BLK_VQ_NUM 1 +#define VDPASIM_BLK_AS_NUM 1 +#define VDPASIM_BLK_GROUP_NUM 1 static char vdpasim_blk_id[VIRTIO_BLK_ID_BYTES] = "vdpa_blk_sim"; @@ -260,6 +264,8 @@ dev_attr.id = VIRTIO_ID_BLOCK; dev_attr.supported_features = VDPASIM_BLK_FEATURES; dev_attr.nvqs = VDPASIM_BLK_VQ_NUM; + dev_attr.ngroups = VDPASIM_BLK_GROUP_NUM; + dev_attr.nas = VDPASIM_BLK_AS_NUM; dev_attr.config_size = sizeof(struct virtio_blk_config); dev_attr.get_config = vdpasim_blk_get_config; dev_attr.work_fn = vdpasim_blk_work; --- linux-5.19.0.orig/drivers/vdpa/vdpa_user/vduse_dev.c +++ linux-5.19.0/drivers/vdpa/vdpa_user/vduse_dev.c @@ -662,10 +662,15 @@ { struct vduse_dev *dev = vdpa_to_vduse(vdpa); - if (offset > dev->config_size || - len > dev->config_size - offset) + /* Initialize the buffer in case of partial copy. */ + memset(buf, 0, len); + + if (offset > dev->config_size) return; + if (len > dev->config_size - offset) + len = dev->config_size - offset; + memcpy(buf, dev->config + offset, len); } --- linux-5.19.0.orig/drivers/vfio/pci/Kconfig +++ linux-5.19.0/drivers/vfio/pci/Kconfig @@ -44,6 +44,17 @@ To enable Intel IGD assignment through vfio-pci, say Y. endif +config VFIO_PCI_ZDEV_KVM + bool "VFIO PCI extensions for s390x KVM passthrough" + depends on S390 && KVM + default y + help + Support s390x-specific extensions to enable support for enhancements + to KVM passthrough capabilities, such as interpretive execution of + zPCI instructions. + + To enable s390x KVM vfio-pci extensions, say Y. + source "drivers/vfio/pci/mlx5/Kconfig" source "drivers/vfio/pci/hisilicon/Kconfig" --- linux-5.19.0.orig/drivers/vfio/pci/Makefile +++ linux-5.19.0/drivers/vfio/pci/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only vfio-pci-core-y := vfio_pci_core.o vfio_pci_intrs.o vfio_pci_rdwr.o vfio_pci_config.o -vfio-pci-core-$(CONFIG_S390) += vfio_pci_zdev.o +vfio-pci-core-$(CONFIG_VFIO_PCI_ZDEV_KVM) += vfio_pci_zdev.o obj-$(CONFIG_VFIO_PCI_CORE) += vfio-pci-core.o vfio-pci-y := vfio_pci.o --- linux-5.19.0.orig/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c +++ linux-5.19.0/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c @@ -1185,7 +1185,7 @@ if (ret) return ret; - if (core_vdev->ops->migration_set_state) { + if (core_vdev->mig_ops) { ret = hisi_acc_vf_qm_init(hisi_acc_vdev); if (ret) { vfio_pci_core_disable(vdev); @@ -1208,6 +1208,11 @@ vfio_pci_core_close_device(core_vdev); } +static const struct vfio_migration_ops hisi_acc_vfio_pci_migrn_state_ops = { + .migration_set_state = hisi_acc_vfio_pci_set_device_state, + .migration_get_state = hisi_acc_vfio_pci_get_device_state, +}; + static const struct vfio_device_ops hisi_acc_vfio_pci_migrn_ops = { .name = "hisi-acc-vfio-pci-migration", .open_device = hisi_acc_vfio_pci_open_device, @@ -1219,8 +1224,6 @@ .mmap = hisi_acc_vfio_pci_mmap, .request = vfio_pci_core_request, .match = vfio_pci_core_match, - .migration_set_state = hisi_acc_vfio_pci_set_device_state, - .migration_get_state = hisi_acc_vfio_pci_get_device_state, }; static const struct vfio_device_ops hisi_acc_vfio_pci_ops = { @@ -1272,6 +1275,8 @@ if (!ret) { vfio_pci_core_init_device(&hisi_acc_vdev->core_device, pdev, &hisi_acc_vfio_pci_migrn_ops); + hisi_acc_vdev->core_device.vdev.mig_ops = + &hisi_acc_vfio_pci_migrn_state_ops; } else { pci_warn(pdev, "migration support failed, continue with generic interface\n"); vfio_pci_core_init_device(&hisi_acc_vdev->core_device, pdev, --- linux-5.19.0.orig/drivers/vfio/pci/mlx5/cmd.c +++ linux-5.19.0/drivers/vfio/pci/mlx5/cmd.c @@ -88,6 +88,16 @@ return 0; } +void mlx5vf_cmd_close_migratable(struct mlx5vf_pci_core_device *mvdev) +{ + if (!mvdev->migrate_cap) + return; + + mutex_lock(&mvdev->state_mutex); + mlx5vf_disable_fds(mvdev); + mlx5vf_state_mutex_unlock(mvdev); +} + void mlx5vf_cmd_remove_migratable(struct mlx5vf_pci_core_device *mvdev) { if (!mvdev->migrate_cap) @@ -98,7 +108,8 @@ destroy_workqueue(mvdev->cb_wq); } -void mlx5vf_cmd_set_migratable(struct mlx5vf_pci_core_device *mvdev) +void mlx5vf_cmd_set_migratable(struct mlx5vf_pci_core_device *mvdev, + const struct vfio_migration_ops *mig_ops) { struct pci_dev *pdev = mvdev->core_device.pdev; int ret; @@ -139,6 +150,7 @@ mvdev->core_device.vdev.migration_flags = VFIO_MIGRATION_STOP_COPY | VFIO_MIGRATION_P2P; + mvdev->core_device.vdev.mig_ops = mig_ops; end: mlx5_vf_put_core_dev(mvdev->mdev); --- linux-5.19.0.orig/drivers/vfio/pci/mlx5/cmd.h +++ linux-5.19.0/drivers/vfio/pci/mlx5/cmd.h @@ -62,8 +62,10 @@ int mlx5vf_cmd_resume_vhca(struct mlx5vf_pci_core_device *mvdev, u16 op_mod); int mlx5vf_cmd_query_vhca_migration_state(struct mlx5vf_pci_core_device *mvdev, size_t *state_size); -void mlx5vf_cmd_set_migratable(struct mlx5vf_pci_core_device *mvdev); +void mlx5vf_cmd_set_migratable(struct mlx5vf_pci_core_device *mvdev, + const struct vfio_migration_ops *mig_ops); void mlx5vf_cmd_remove_migratable(struct mlx5vf_pci_core_device *mvdev); +void mlx5vf_cmd_close_migratable(struct mlx5vf_pci_core_device *mvdev); int mlx5vf_cmd_save_vhca_state(struct mlx5vf_pci_core_device *mvdev, struct mlx5_vf_migration_file *migf); int mlx5vf_cmd_load_vhca_state(struct mlx5vf_pci_core_device *mvdev, --- linux-5.19.0.orig/drivers/vfio/pci/mlx5/main.c +++ linux-5.19.0/drivers/vfio/pci/mlx5/main.c @@ -570,10 +570,15 @@ struct mlx5vf_pci_core_device *mvdev = container_of( core_vdev, struct mlx5vf_pci_core_device, core_device.vdev); - mlx5vf_disable_fds(mvdev); + mlx5vf_cmd_close_migratable(mvdev); vfio_pci_core_close_device(core_vdev); } +static const struct vfio_migration_ops mlx5vf_pci_mig_ops = { + .migration_set_state = mlx5vf_pci_set_device_state, + .migration_get_state = mlx5vf_pci_get_device_state, +}; + static const struct vfio_device_ops mlx5vf_pci_ops = { .name = "mlx5-vfio-pci", .open_device = mlx5vf_pci_open_device, @@ -585,8 +590,6 @@ .mmap = vfio_pci_core_mmap, .request = vfio_pci_core_request, .match = vfio_pci_core_match, - .migration_set_state = mlx5vf_pci_set_device_state, - .migration_get_state = mlx5vf_pci_get_device_state, }; static int mlx5vf_pci_probe(struct pci_dev *pdev, @@ -599,7 +602,7 @@ if (!mvdev) return -ENOMEM; vfio_pci_core_init_device(&mvdev->core_device, pdev, &mlx5vf_pci_ops); - mlx5vf_cmd_set_migratable(mvdev); + mlx5vf_cmd_set_migratable(mvdev, &mlx5vf_pci_mig_ops); dev_set_drvdata(&pdev->dev, &mvdev->core_device); ret = vfio_pci_core_register_device(&mvdev->core_device); if (ret) --- linux-5.19.0.orig/drivers/vfio/pci/vfio_pci_core.c +++ linux-5.19.0/drivers/vfio/pci/vfio_pci_core.c @@ -316,10 +316,14 @@ pci_write_config_word(pdev, PCI_COMMAND, cmd); } - ret = vfio_config_init(vdev); + ret = vfio_pci_zdev_open_device(vdev); if (ret) goto out_free_state; + ret = vfio_config_init(vdev); + if (ret) + goto out_free_zdev; + msix_pos = pdev->msix_cap; if (msix_pos) { u16 flags; @@ -340,6 +344,8 @@ return 0; +out_free_zdev: + vfio_pci_zdev_close_device(vdev); out_free_state: kfree(vdev->pci_saved_state); vdev->pci_saved_state = NULL; @@ -418,6 +424,8 @@ vdev->needs_reset = true; + vfio_pci_zdev_close_device(vdev); + /* * If we have saved state, restore it. If we can reset the device, * even better. Resetting with current state seems better than @@ -1855,6 +1863,13 @@ if (pdev->hdr_type != PCI_HEADER_TYPE_NORMAL) return -EINVAL; + if (vdev->vdev.mig_ops) { + if (!(vdev->vdev.mig_ops->migration_get_state && + vdev->vdev.mig_ops->migration_set_state) || + !(vdev->vdev.migration_flags & VFIO_MIGRATION_STOP_COPY)) + return -EINVAL; + } + /* * Prevent binding to PFs with VFs enabled, the VFs might be in use * by the host or other users. We cannot capture the VFs if they --- linux-5.19.0.orig/drivers/vfio/pci/vfio_pci_zdev.c +++ linux-5.19.0/drivers/vfio/pci/vfio_pci_zdev.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include @@ -23,14 +24,15 @@ { struct vfio_device_info_cap_zpci_base cap = { .header.id = VFIO_DEVICE_INFO_CAP_ZPCI_BASE, - .header.version = 1, + .header.version = 2, .start_dma = zdev->start_dma, .end_dma = zdev->end_dma, .pchid = zdev->pchid, .vfn = zdev->vfn, .fmb_length = zdev->fmb_length, .pft = zdev->pft, - .gid = zdev->pfgid + .gid = zdev->pfgid, + .fh = zdev->fh }; return vfio_info_add_capability(caps, &cap.header, sizeof(cap)); @@ -43,14 +45,16 @@ { struct vfio_device_info_cap_zpci_group cap = { .header.id = VFIO_DEVICE_INFO_CAP_ZPCI_GROUP, - .header.version = 1, + .header.version = 2, .dasm = zdev->dma_mask, .msi_addr = zdev->msi_addr, .flags = VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH, .mui = zdev->fmb_update, .noi = zdev->max_msi, .maxstbl = ZPCI_MAX_WRITE_SIZE, - .version = zdev->version + .version = zdev->version, + .reserved = 0, + .imaxstbl = zdev->maxstbl }; return vfio_info_add_capability(caps, &cap.header, sizeof(cap)); @@ -136,3 +140,30 @@ return ret; } + +int vfio_pci_zdev_open_device(struct vfio_pci_core_device *vdev) +{ + struct zpci_dev *zdev = to_zpci(vdev->pdev); + + if (!zdev) + return -ENODEV; + + if (!vdev->vdev.kvm) + return 0; + + if (zpci_kvm_hook.kvm_register) + return zpci_kvm_hook.kvm_register(zdev, vdev->vdev.kvm); + + return -ENOENT; +} + +void vfio_pci_zdev_close_device(struct vfio_pci_core_device *vdev) +{ + struct zpci_dev *zdev = to_zpci(vdev->pdev); + + if (!zdev || !vdev->vdev.kvm) + return; + + if (zpci_kvm_hook.kvm_unregister) + zpci_kvm_hook.kvm_unregister(zdev); +} --- linux-5.19.0.orig/drivers/vfio/platform/vfio_platform_common.c +++ linux-5.19.0/drivers/vfio/platform/vfio_platform_common.c @@ -72,12 +72,11 @@ const char **extra_dbg) { #ifdef CONFIG_ACPI - struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; struct device *dev = vdev->device; acpi_handle handle = ACPI_HANDLE(dev); acpi_status acpi_ret; - acpi_ret = acpi_evaluate_object(handle, "_RST", NULL, &buffer); + acpi_ret = acpi_evaluate_object(handle, "_RST", NULL, NULL); if (ACPI_FAILURE(acpi_ret)) { if (extra_dbg) *extra_dbg = acpi_format_exception(acpi_ret); --- linux-5.19.0.orig/drivers/vfio/vfio.c +++ linux-5.19.0/drivers/vfio/vfio.c @@ -1544,8 +1544,7 @@ struct file *filp = NULL; int ret; - if (!device->ops->migration_set_state || - !device->ops->migration_get_state) + if (!device->mig_ops) return -ENOTTY; ret = vfio_check_feature(flags, argsz, @@ -1561,7 +1560,8 @@ if (flags & VFIO_DEVICE_FEATURE_GET) { enum vfio_device_mig_state curr_state; - ret = device->ops->migration_get_state(device, &curr_state); + ret = device->mig_ops->migration_get_state(device, + &curr_state); if (ret) return ret; mig.device_state = curr_state; @@ -1569,7 +1569,7 @@ } /* Handle the VFIO_DEVICE_FEATURE_SET */ - filp = device->ops->migration_set_state(device, mig.device_state); + filp = device->mig_ops->migration_set_state(device, mig.device_state); if (IS_ERR(filp) || !filp) goto out_copy; @@ -1592,8 +1592,7 @@ }; int ret; - if (!device->ops->migration_set_state || - !device->ops->migration_get_state) + if (!device->mig_ops) return -ENOTTY; ret = vfio_check_feature(flags, argsz, VFIO_DEVICE_FEATURE_GET, @@ -1815,6 +1814,7 @@ buf = krealloc(caps->buf, caps->size + size, GFP_KERNEL); if (!buf) { kfree(caps->buf); + caps->buf = NULL; caps->size = 0; return ERR_PTR(-ENOMEM); } --- linux-5.19.0.orig/drivers/vfio/vfio_iommu_type1.c +++ linux-5.19.0/drivers/vfio/vfio_iommu_type1.c @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -113,6 +114,7 @@ struct vfio_iommu_group { struct iommu_group *iommu_group; struct list_head next; + bool mdev_group; bool pinned_page_dirty_scope; }; @@ -557,6 +559,18 @@ ret = pin_user_pages_remote(mm, vaddr, npages, flags | FOLL_LONGTERM, pages, NULL, NULL); if (ret > 0) { + int i; + + /* + * The zero page is always resident, we don't need to pin it + * and it falls into our invalid/reserved test so we don't + * unpin in put_pfn(). Unpin all zero pages in the batch here. + */ + for (i = 0 ; i < ret; i++) { + if (unlikely(is_zero_pfn(page_to_pfn(pages[i])))) + unpin_user_page(pages[i]); + } + *pfn = page_to_pfn(pages[0]); goto done; } @@ -1930,6 +1944,81 @@ return ret; } +static int vfio_mdev_attach_domain(struct device *dev, void *data) +{ + struct mdev_device *mdev = to_mdev_device(dev); + struct iommu_domain *domain = data; + struct device *iommu_device; + + iommu_device = mdev_get_iommu_device(mdev); + if (iommu_device) + return iommu_attach_device(domain, iommu_device); + + return -EINVAL; +} + +static int vfio_mdev_detach_domain(struct device *dev, void *data) +{ + struct mdev_device *mdev = to_mdev_device(dev); + struct iommu_domain *domain = data; + struct device *iommu_device; + + iommu_device = mdev_get_iommu_device(mdev); + if (iommu_device) + iommu_detach_device(domain, iommu_device); + + return 0; +} + +static int vfio_iommu_attach_group(struct vfio_domain *domain, + struct vfio_iommu_group *group) +{ + if (group->mdev_group) + return iommu_group_for_each_dev(group->iommu_group, + domain->domain, + vfio_mdev_attach_domain); + else + return iommu_attach_group(domain->domain, group->iommu_group); +} + +static void vfio_iommu_detach_group(struct vfio_domain *domain, + struct vfio_iommu_group *group) +{ + if (group->mdev_group) + iommu_group_for_each_dev(group->iommu_group, domain->domain, + vfio_mdev_detach_domain); + else + iommu_detach_group(domain->domain, group->iommu_group); +} + +static bool vfio_bus_is_mdev(struct bus_type *bus) +{ + struct bus_type *mdev_bus; + bool ret = false; + + mdev_bus = symbol_get(mdev_bus_type); + if (mdev_bus) { + ret = (bus == mdev_bus); + symbol_put(mdev_bus_type); + } + + return ret; +} + +static int vfio_mdev_iommu_device(struct device *dev, void *data) +{ + struct mdev_device *mdev = to_mdev_device(dev); + struct device **old = data, *new; + + new = mdev_get_iommu_device(mdev); + if (!new || (*old && *old != new)) + return -EINVAL; + + *old = new; + + return 0; +} + /* * This is a helper function to insert an address range to iova list. * The list is initially created with a single entry corresponding to @@ -2180,6 +2269,23 @@ group->iommu_group = iommu_group; if (type == VFIO_EMULATED_IOMMU) { + ret = iommu_group_for_each_dev(iommu_group, &bus, vfio_bus_type); + + if (!ret && vfio_bus_is_mdev(bus)) { + struct device *iommu_device = NULL; + + group->mdev_group = true; + + /* Determine the isolation type */ + ret = iommu_group_for_each_dev(iommu_group, + &iommu_device, + vfio_mdev_iommu_device); + if (!ret && iommu_device) { + bus = iommu_device->bus; + goto mdev_iommu_device; + } + } + list_add(&group->next, &iommu->emulated_iommu_groups); /* * An emulated IOMMU group cannot dirty memory directly, it can @@ -2197,6 +2303,8 @@ if (ret) goto out_free_group; +mdev_iommu_device: + ret = -ENOMEM; domain = kzalloc(sizeof(*domain), GFP_KERNEL); if (!domain) @@ -2213,7 +2321,7 @@ goto out_domain; } - ret = iommu_attach_group(domain->domain, group->iommu_group); + ret = vfio_iommu_attach_group(domain, group); if (ret) goto out_domain; @@ -2288,17 +2396,15 @@ if (d->domain->ops == domain->domain->ops && d->enforce_cache_coherency == domain->enforce_cache_coherency) { - iommu_detach_group(domain->domain, group->iommu_group); - if (!iommu_attach_group(d->domain, - group->iommu_group)) { + vfio_iommu_detach_group(domain, group); + if (!vfio_iommu_attach_group(d, group)) { list_add(&group->next, &d->group_list); iommu_domain_free(domain->domain); kfree(domain); goto done; } - ret = iommu_attach_group(domain->domain, - group->iommu_group); + ret = vfio_iommu_attach_group(domain, group); if (ret) goto out_domain; } @@ -2335,7 +2441,7 @@ return 0; out_detach: - iommu_detach_group(domain->domain, group->iommu_group); + vfio_iommu_detach_group(domain, group); out_domain: iommu_domain_free(domain->domain); vfio_iommu_iova_free(&iova_copy); @@ -2496,7 +2602,7 @@ if (!group) continue; - iommu_detach_group(domain->domain, group->iommu_group); + vfio_iommu_detach_group(domain, group); update_dirty_scope = !group->pinned_page_dirty_scope; list_del(&group->next); kfree(group); @@ -2585,7 +2691,7 @@ list_for_each_entry_safe(group, group_tmp, &domain->group_list, next) { - iommu_detach_group(domain->domain, group->iommu_group); + vfio_iommu_detach_group(domain, group); list_del(&group->next); kfree(group); } --- linux-5.19.0.orig/drivers/vhost/vsock.c +++ linux-5.19.0/drivers/vhost/vsock.c @@ -393,7 +393,7 @@ return NULL; } - pkt->buf = kmalloc(pkt->len, GFP_KERNEL); + pkt->buf = kvmalloc(pkt->len, GFP_KERNEL); if (!pkt->buf) { kfree(pkt); return NULL; --- linux-5.19.0.orig/drivers/video/fbdev/Kconfig +++ linux-5.19.0/drivers/video/fbdev/Kconfig @@ -599,6 +599,7 @@ config FB_UVESA tristate "Userspace VESA VGA graphics support" depends on FB && CONNECTOR + depends on !UML select FB_CFB_FILLRECT select FB_CFB_COPYAREA select FB_CFB_IMAGEBLIT @@ -2212,7 +2213,6 @@ select FB_SYS_COPYAREA select FB_SYS_IMAGEBLIT select FB_DEFERRED_IO - select PWM select FB_BACKLIGHT help This driver implements support for the Solomon SSD1307 --- linux-5.19.0.orig/drivers/video/fbdev/amba-clcd.c +++ linux-5.19.0/drivers/video/fbdev/amba-clcd.c @@ -698,16 +698,18 @@ return -ENODEV; panel = of_graph_get_remote_port_parent(endpoint); - if (!panel) - return -ENODEV; + if (!panel) { + err = -ENODEV; + goto out_endpoint_put; + } err = clcdfb_of_get_backlight(&fb->dev->dev, fb->panel); if (err) - return err; + goto out_panel_put; err = clcdfb_of_get_mode(&fb->dev->dev, panel, fb->panel); if (err) - return err; + goto out_panel_put; err = of_property_read_u32(fb->dev->dev.of_node, "max-memory-bandwidth", &max_bandwidth); @@ -736,11 +738,21 @@ if (of_property_read_u32_array(endpoint, "arm,pl11x,tft-r0g0b0-pads", - tft_r0b0g0, ARRAY_SIZE(tft_r0b0g0)) != 0) - return -ENOENT; + tft_r0b0g0, ARRAY_SIZE(tft_r0b0g0)) != 0) { + err = -ENOENT; + goto out_panel_put; + } + + of_node_put(panel); + of_node_put(endpoint); return clcdfb_of_init_tft_panel(fb, tft_r0b0g0[0], tft_r0b0g0[1], tft_r0b0g0[2]); +out_panel_put: + of_node_put(panel); +out_endpoint_put: + of_node_put(endpoint); + return err; } static int clcdfb_of_vram_setup(struct clcd_fb *fb) --- linux-5.19.0.orig/drivers/video/fbdev/arkfb.c +++ linux-5.19.0/drivers/video/fbdev/arkfb.c @@ -781,7 +781,12 @@ return -EINVAL; } - ark_set_pixclock(info, (hdiv * info->var.pixclock) / hmul); + value = (hdiv * info->var.pixclock) / hmul; + if (!value) { + fb_dbg(info, "invalid pixclock\n"); + value = 1; + } + ark_set_pixclock(info, value); svga_set_timings(par->state.vgabase, &ark_timing_regs, &(info->var), hmul, hdiv, (info->var.vmode & FB_VMODE_DOUBLE) ? 2 : 1, (info->var.vmode & FB_VMODE_INTERLACED) ? 2 : 1, @@ -792,6 +797,8 @@ value = ((value * hmul / hdiv) / 8) - 5; vga_wcrt(par->state.vgabase, 0x42, (value + 1) / 2); + if (screen_size > info->screen_size) + screen_size = info->screen_size; memset_io(info->screen_base, 0x00, screen_size); /* Device and screen back on */ svga_wcrt_mask(par->state.vgabase, 0x17, 0x80, 0x80); --- linux-5.19.0.orig/drivers/video/fbdev/chipsfb.c +++ linux-5.19.0/drivers/video/fbdev/chipsfb.c @@ -430,6 +430,7 @@ err_release_fb: framebuffer_release(p); err_disable: + pci_disable_device(dp); err_out: return rc; } --- linux-5.19.0.orig/drivers/video/fbdev/core/fbcon.c +++ linux-5.19.0/drivers/video/fbdev/core/fbcon.c @@ -125,8 +125,8 @@ enums. */ static int logo_shown = FBCON_LOGO_CANSHOW; /* console mappings */ -static int first_fb_vc; -static int last_fb_vc = MAX_NR_CONSOLES - 1; +static unsigned int first_fb_vc; +static unsigned int last_fb_vc = MAX_NR_CONSOLES - 1; static int fbcon_is_default = 1; static int primary_device = -1; static int fbcon_has_console_bind; @@ -440,10 +440,12 @@ options += 3; if (*options) first_fb_vc = simple_strtoul(options, &options, 10) - 1; - if (first_fb_vc < 0) + if (first_fb_vc >= MAX_NR_CONSOLES) first_fb_vc = 0; if (*options++ == '-') last_fb_vc = simple_strtoul(options, &options, 10) - 1; + if (last_fb_vc < first_fb_vc || last_fb_vc >= MAX_NR_CONSOLES) + last_fb_vc = MAX_NR_CONSOLES - 1; fbcon_is_default = 0; continue; } @@ -575,7 +577,7 @@ if (scr_readw(r) != vc->vc_video_erase_char) break; if (r != q && new_rows >= rows + logo_lines) { - save = kmalloc(array3_size(logo_lines, new_cols, 2), + save = kzalloc(array3_size(logo_lines, new_cols, 2), GFP_KERNEL); if (save) { int i = min(cols, new_cols); @@ -1758,8 +1760,6 @@ case SM_UP: if (count > vc->vc_rows) /* Maximum realistic size */ count = vc->vc_rows; - if (logo_shown >= 0) - goto redraw_up; switch (fb_scrollmode(p)) { case SCROLL_MOVE: fbcon_redraw_blit(vc, info, p, t, b - t - count, @@ -1848,8 +1848,6 @@ case SM_DOWN: if (count > vc->vc_rows) /* Maximum realistic size */ count = vc->vc_rows; - if (logo_shown >= 0) - goto redraw_down; switch (fb_scrollmode(p)) { case SCROLL_MOVE: fbcon_redraw_blit(vc, info, p, b - 1, b - t - count, @@ -2404,15 +2402,21 @@ struct fb_info *info = fbcon_info_from_console(vc->vc_num); struct fbcon_ops *ops = info->fbcon_par; struct fbcon_display *p = &fb_display[vc->vc_num]; - int resize; + int resize, ret, old_userfont, old_width, old_height, old_charcount; char *old_data = NULL; resize = (w != vc->vc_font.width) || (h != vc->vc_font.height); if (p->userfont) old_data = vc->vc_font.data; vc->vc_font.data = (void *)(p->fontdata = data); + old_userfont = p->userfont; if ((p->userfont = userfont)) REFCOUNT(data)++; + + old_width = vc->vc_font.width; + old_height = vc->vc_font.height; + old_charcount = vc->vc_font.charcount; + vc->vc_font.width = w; vc->vc_font.height = h; vc->vc_font.charcount = charcount; @@ -2428,7 +2432,9 @@ rows = FBCON_SWAP(ops->rotate, info->var.yres, info->var.xres); cols /= w; rows /= h; - vc_resize(vc, cols, rows); + ret = vc_resize(vc, cols, rows); + if (ret) + goto err_out; } else if (con_is_visible(vc) && vc->vc_mode == KD_TEXT) { fbcon_clear_margins(vc, 0); @@ -2438,6 +2444,22 @@ if (old_data && (--REFCOUNT(old_data) == 0)) kfree(old_data - FONT_EXTRA_WORDS * sizeof(int)); return 0; + +err_out: + p->fontdata = old_data; + vc->vc_font.data = (void *)old_data; + + if (userfont) { + p->userfont = old_userfont; + if (--REFCOUNT(data) == 0) + kfree(data - FONT_EXTRA_WORDS * sizeof(int)); + } + + vc->vc_font.width = old_width; + vc->vc_font.height = old_height; + vc->vc_font.charcount = old_charcount; + + return ret; } /* --- linux-5.19.0.orig/drivers/video/fbdev/core/fbmem.c +++ linux-5.19.0/drivers/video/fbdev/core/fbmem.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -1765,17 +1764,6 @@ do_free = true; } - /* - * If a driver asked to unregister a platform device registered by - * sysfb, then can be assumed that this is a driver for a display - * that is set up by the system firmware and has a generic driver. - * - * Drivers for devices that don't have a generic driver will never - * ask for this, so let's assume that a real driver for the display - * was already probed and prevent sysfb to register devices later. - */ - sysfb_disable(); - mutex_lock(®istration_lock); do_remove_conflicting_framebuffers(a, name, primary); mutex_unlock(®istration_lock); --- linux-5.19.0.orig/drivers/video/fbdev/core/fbsysfs.c +++ linux-5.19.0/drivers/video/fbdev/core/fbsysfs.c @@ -84,6 +84,10 @@ if (WARN_ON(refcount_read(&info->count))) return; +#if IS_ENABLED(CONFIG_FB_BACKLIGHT) + mutex_destroy(&info->bl_curve_mutex); +#endif + kfree(info->apertures); kfree(info); } --- linux-5.19.0.orig/drivers/video/fbdev/ep93xx-fb.c +++ linux-5.19.0/drivers/video/fbdev/ep93xx-fb.c @@ -552,12 +552,14 @@ err = register_framebuffer(info); if (err) - goto failed_check; + goto failed_framebuffer; dev_info(info->dev, "registered. Mode = %dx%d-%d\n", info->var.xres, info->var.yres, info->var.bits_per_pixel); return 0; +failed_framebuffer: + clk_disable_unprepare(fbi->clk); failed_check: if (fbi->mach_info->teardown) fbi->mach_info->teardown(pdev); --- linux-5.19.0.orig/drivers/video/fbdev/geode/Kconfig +++ linux-5.19.0/drivers/video/fbdev/geode/Kconfig @@ -5,6 +5,7 @@ config FB_GEODE bool "AMD Geode family framebuffer support" depends on FB && PCI && (X86_32 || (X86 && COMPILE_TEST)) + depends on !UML help Say 'Y' here to allow you to select framebuffer drivers for the AMD Geode family of processors. --- linux-5.19.0.orig/drivers/video/fbdev/hyperv_fb.c +++ linux-5.19.0/drivers/video/fbdev/hyperv_fb.c @@ -783,12 +783,18 @@ static int hvfb_on_panic(struct notifier_block *nb, unsigned long e, void *p) { + struct hv_device *hdev; struct hvfb_par *par; struct fb_info *info; par = container_of(nb, struct hvfb_par, hvfb_panic_nb); - par->synchronous_fb = true; info = par->info; + hdev = device_to_hv_device(info->device); + + if (hv_ringbuffer_spinlock_busy(hdev->channel)) + return NOTIFY_DONE; + + par->synchronous_fb = true; if (par->need_docopy) hvfb_docopy(par, 0, dio_fb_size); synthvid_update(info, 0, 0, INT_MAX, INT_MAX); --- linux-5.19.0.orig/drivers/video/fbdev/i740fb.c +++ linux-5.19.0/drivers/video/fbdev/i740fb.c @@ -400,7 +400,7 @@ u32 xres, right, hslen, left, xtotal; u32 yres, lower, vslen, upper, ytotal; u32 vxres, xoffset, vyres, yoffset; - u32 bpp, base, dacspeed24, mem; + u32 bpp, base, dacspeed24, mem, freq; u8 r7; int i; @@ -643,7 +643,12 @@ par->atc[VGA_ATC_OVERSCAN] = 0; /* Calculate VCLK that most closely matches the requested dot clock */ - i740_calc_vclk((((u32)1e9) / var->pixclock) * (u32)(1e3), par); + freq = (((u32)1e9) / var->pixclock) * (u32)(1e3); + if (freq < I740_RFREQ_FIX) { + fb_dbg(info, "invalid pixclock\n"); + freq = I740_RFREQ_FIX; + } + i740_calc_vclk(freq, par); /* Since we program the clocks ourselves, always use VCLK2. */ par->misc |= 0x0C; --- linux-5.19.0.orig/drivers/video/fbdev/offb.c +++ linux-5.19.0/drivers/video/fbdev/offb.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #ifdef CONFIG_PPC32 --- linux-5.19.0.orig/drivers/video/fbdev/omap/omapfb_main.c +++ linux-5.19.0/drivers/video/fbdev/omap/omapfb_main.c @@ -1643,14 +1643,14 @@ goto cleanup; } fbdev->int_irq = platform_get_irq(pdev, 0); - if (!fbdev->int_irq) { + if (fbdev->int_irq < 0) { dev_err(&pdev->dev, "unable to get irq\n"); r = ENXIO; goto cleanup; } fbdev->ext_irq = platform_get_irq(pdev, 1); - if (!fbdev->ext_irq) { + if (fbdev->ext_irq < 0) { dev_err(&pdev->dev, "unable to get irq\n"); r = ENXIO; goto cleanup; --- linux-5.19.0.orig/drivers/video/fbdev/pm2fb.c +++ linux-5.19.0/drivers/video/fbdev/pm2fb.c @@ -617,6 +617,11 @@ return -EINVAL; } + if (!var->pixclock) { + DPRINTK("pixclock is zero\n"); + return -EINVAL; + } + if (PICOS2KHZ(var->pixclock) > PM2_MAX_PIXCLOCK) { DPRINTK("pixclock too high (%ldKHz)\n", PICOS2KHZ(var->pixclock)); @@ -1523,8 +1528,10 @@ } info = framebuffer_alloc(sizeof(struct pm2fb_par), &pdev->dev); - if (!info) - return -ENOMEM; + if (!info) { + err = -ENOMEM; + goto err_exit_disable; + } default_par = info->par; switch (pdev->device) { @@ -1705,6 +1712,8 @@ release_mem_region(pm2fb_fix.mmio_start, pm2fb_fix.mmio_len); err_exit_neither: framebuffer_release(info); + err_exit_disable: + pci_disable_device(pdev); return retval; } @@ -1729,6 +1738,7 @@ fb_dealloc_cmap(&info->cmap); kfree(info->pixmap.addr); framebuffer_release(info); + pci_disable_device(pdev); } static const struct pci_device_id pm2fb_id_table[] = { --- linux-5.19.0.orig/drivers/video/fbdev/s3fb.c +++ linux-5.19.0/drivers/video/fbdev/s3fb.c @@ -905,6 +905,8 @@ value = clamp((htotal + hsstart + 1) / 2 + 2, hsstart + 4, htotal + 1); svga_wcrt_multi(par->state.vgabase, s3_dtpc_regs, value); + if (screen_size > info->screen_size) + screen_size = info->screen_size; memset_io(info->screen_base, 0x00, screen_size); /* Device and screen back on */ svga_wcrt_mask(par->state.vgabase, 0x17, 0x80, 0x80); --- linux-5.19.0.orig/drivers/video/fbdev/sis/init.c +++ linux-5.19.0/drivers/video/fbdev/sis/init.c @@ -355,12 +355,12 @@ } break; case 400: - if((!(VBFlags & CRT1_LCDA)) || ((LCDwidth >= 800) && (LCDwidth >= 600))) { + if((!(VBFlags & CRT1_LCDA)) || ((LCDwidth >= 800) && (LCDheight >= 600))) { if(VDisplay == 300) ModeIndex = ModeIndex_400x300[Depth]; } break; case 512: - if((!(VBFlags & CRT1_LCDA)) || ((LCDwidth >= 1024) && (LCDwidth >= 768))) { + if((!(VBFlags & CRT1_LCDA)) || ((LCDwidth >= 1024) && (LCDheight >= 768))) { if(VDisplay == 384) ModeIndex = ModeIndex_512x384[Depth]; } break; --- linux-5.19.0.orig/drivers/video/fbdev/smscufx.c +++ linux-5.19.0/drivers/video/fbdev/smscufx.c @@ -97,7 +97,6 @@ struct kref kref; int fb_count; bool virtualized; /* true when physical usb device not present */ - struct delayed_work free_framebuffer_work; atomic_t usb_active; /* 0 = update virtual buffer, but no usb traffic */ atomic_t lost_pixels; /* 1 = a render op failed. Need screen refresh */ u8 *edid; /* null until we read edid from hw or get from sysfs */ @@ -137,6 +136,8 @@ static int ufx_alloc_urb_list(struct ufx_data *dev, int count, size_t size); static void ufx_free_urb_list(struct ufx_data *dev); +static DEFINE_MUTEX(disconnect_mutex); + /* reads a control register */ static int ufx_reg_read(struct ufx_data *dev, u32 index, u32 *data) { @@ -1071,9 +1072,13 @@ if (user == 0 && !console) return -EBUSY; + mutex_lock(&disconnect_mutex); + /* If the USB device is gone, we don't accept new opens */ - if (dev->virtualized) + if (dev->virtualized) { + mutex_unlock(&disconnect_mutex); return -ENODEV; + } dev->fb_count++; @@ -1097,6 +1102,8 @@ pr_debug("open /dev/fb%d user=%d fb_info=%p count=%d", info->node, user, info, dev->fb_count); + mutex_unlock(&disconnect_mutex); + return 0; } @@ -1109,15 +1116,24 @@ { struct ufx_data *dev = container_of(kref, struct ufx_data, kref); - /* this function will wait for all in-flight urbs to complete */ - if (dev->urbs.count > 0) - ufx_free_urb_list(dev); + kfree(dev); +} - pr_debug("freeing ufx_data %p", dev); +static void ufx_ops_destory(struct fb_info *info) +{ + struct ufx_data *dev = info->par; + int node = info->node; - kfree(dev); + /* Assume info structure is freed after this point */ + framebuffer_release(info); + + pr_debug("fb_info for /dev/fb%d has been freed", node); + + /* release reference taken by kref_init in probe() */ + kref_put(&dev->kref, ufx_free); } + static void ufx_release_urb_work(struct work_struct *work) { struct urb_node *unode = container_of(work, struct urb_node, @@ -1126,14 +1142,9 @@ up(&unode->dev->urbs.limit_sem); } -static void ufx_free_framebuffer_work(struct work_struct *work) +static void ufx_free_framebuffer(struct ufx_data *dev) { - struct ufx_data *dev = container_of(work, struct ufx_data, - free_framebuffer_work.work); struct fb_info *info = dev->info; - int node = info->node; - - unregister_framebuffer(info); if (info->cmap.len != 0) fb_dealloc_cmap(&info->cmap); @@ -1145,11 +1156,6 @@ dev->info = NULL; - /* Assume info structure is freed after this point */ - framebuffer_release(info); - - pr_debug("fb_info for /dev/fb%d has been freed", node); - /* ref taken in probe() as part of registering framebfufer */ kref_put(&dev->kref, ufx_free); } @@ -1161,11 +1167,13 @@ { struct ufx_data *dev = info->par; + mutex_lock(&disconnect_mutex); + dev->fb_count--; /* We can't free fb_info here - fbmem will touch it when we return */ if (dev->virtualized && (dev->fb_count == 0)) - schedule_delayed_work(&dev->free_framebuffer_work, HZ); + ufx_free_framebuffer(dev); if ((dev->fb_count == 0) && (info->fbdefio)) { fb_deferred_io_cleanup(info); @@ -1178,6 +1186,8 @@ kref_put(&dev->kref, ufx_free); + mutex_unlock(&disconnect_mutex); + return 0; } @@ -1284,6 +1294,7 @@ .fb_blank = ufx_ops_blank, .fb_check_var = ufx_ops_check_var, .fb_set_par = ufx_ops_set_par, + .fb_destroy = ufx_ops_destory, }; /* Assumes &info->lock held by caller @@ -1665,9 +1676,6 @@ goto destroy_modedb; } - INIT_DELAYED_WORK(&dev->free_framebuffer_work, - ufx_free_framebuffer_work); - retval = ufx_reg_read(dev, 0x3000, &id_rev); check_warn_goto_error(retval, "error %d reading 0x3000 register from device", retval); dev_dbg(dev->gdev, "ID_REV register value 0x%08x", id_rev); @@ -1740,8 +1748,12 @@ static void ufx_usb_disconnect(struct usb_interface *interface) { struct ufx_data *dev; + struct fb_info *info; + + mutex_lock(&disconnect_mutex); dev = usb_get_intfdata(interface); + info = dev->info; pr_debug("USB disconnect starting\n"); @@ -1755,12 +1767,17 @@ /* if clients still have us open, will be freed on last close */ if (dev->fb_count == 0) - schedule_delayed_work(&dev->free_framebuffer_work, 0); + ufx_free_framebuffer(dev); - /* release reference taken by kref_init in probe() */ - kref_put(&dev->kref, ufx_free); + /* this function will wait for all in-flight urbs to complete */ + if (dev->urbs.count > 0) + ufx_free_urb_list(dev); + + pr_debug("freeing ufx_data %p", dev); + + unregister_framebuffer(info); - /* consider ufx_data freed */ + mutex_unlock(&disconnect_mutex); } static struct usb_driver ufx_driver = { --- linux-5.19.0.orig/drivers/video/fbdev/stifb.c +++ linux-5.19.0/drivers/video/fbdev/stifb.c @@ -1055,7 +1055,8 @@ { struct stifb_info *fb = container_of(info, struct stifb_info, info); - if (rect->rop != ROP_COPY) + if (rect->rop != ROP_COPY || + (fb->id == S9000_ID_HCRX && fb->info.var.bits_per_pixel == 32)) return cfb_fillrect(info, rect); SETUP_HW(fb); @@ -1298,7 +1299,7 @@ /* limit fbsize to max visible screen size */ if (fix->smem_len > yres*fix->line_length) - fix->smem_len = yres*fix->line_length; + fix->smem_len = ALIGN(yres*fix->line_length, 4*1024*1024); fix->accel = FB_ACCEL_NONE; --- linux-5.19.0.orig/drivers/video/fbdev/uvesafb.c +++ linux-5.19.0/drivers/video/fbdev/uvesafb.c @@ -1758,6 +1758,7 @@ out_unmap: iounmap(info->screen_base); out_mem: + arch_phys_wc_del(par->mtrr_handle); release_mem_region(info->fix.smem_start, info->fix.smem_len); out_reg: release_region(0x3c0, 32); --- linux-5.19.0.orig/drivers/video/fbdev/vermilion/vermilion.c +++ linux-5.19.0/drivers/video/fbdev/vermilion/vermilion.c @@ -277,8 +277,10 @@ mutex_unlock(&vml_mutex); - if (pci_enable_device(par->gpu) < 0) + if (pci_enable_device(par->gpu) < 0) { + pci_dev_put(par->gpu); return -ENODEV; + } return 0; } --- linux-5.19.0.orig/drivers/video/fbdev/via/via-core.c +++ linux-5.19.0/drivers/video/fbdev/via/via-core.c @@ -725,7 +725,14 @@ return ret; viafb_i2c_init(); viafb_gpio_init(); - return pci_register_driver(&via_driver); + ret = pci_register_driver(&via_driver); + if (ret) { + viafb_gpio_exit(); + viafb_i2c_exit(); + return ret; + } + + return 0; } static void __exit via_core_exit(void) --- linux-5.19.0.orig/drivers/video/fbdev/vt8623fb.c +++ linux-5.19.0/drivers/video/fbdev/vt8623fb.c @@ -507,6 +507,8 @@ (info->var.vmode & FB_VMODE_DOUBLE) ? 2 : 1, 1, 1, info->node); + if (screen_size > info->screen_size) + screen_size = info->screen_size; memset_io(info->screen_base, 0x00, screen_size); /* Device and screen back on */ --- linux-5.19.0.orig/drivers/virt/Kconfig +++ linux-5.19.0/drivers/virt/Kconfig @@ -52,4 +52,6 @@ source "drivers/virt/coco/sev-guest/Kconfig" +source "drivers/virt/coco/tdx-guest/Kconfig" + endif --- linux-5.19.0.orig/drivers/virt/Makefile +++ linux-5.19.0/drivers/virt/Makefile @@ -11,3 +11,4 @@ obj-$(CONFIG_ACRN_HSM) += acrn/ obj-$(CONFIG_EFI_SECRET) += coco/efi_secret/ obj-$(CONFIG_SEV_GUEST) += coco/sev-guest/ +obj-$(CONFIG_INTEL_TDX_GUEST) += coco/tdx-guest/ --- linux-5.19.0.orig/drivers/virt/coco/sev-guest/sev-guest.c +++ linux-5.19.0/drivers/virt/coco/sev-guest/sev-guest.c @@ -67,8 +67,27 @@ return true; } +/* + * If an error is received from the host or AMD Secure Processor (ASP) there + * are two options. Either retry the exact same encrypted request or discontinue + * using the VMPCK. + * + * This is because in the current encryption scheme GHCB v2 uses AES-GCM to + * encrypt the requests. The IV for this scheme is the sequence number. GCM + * cannot tolerate IV reuse. + * + * The ASP FW v1.51 only increments the sequence numbers on a successful + * guest<->ASP back and forth and only accepts messages at its exact sequence + * number. + * + * So if the sequence number were to be reused the encryption scheme is + * vulnerable. If the sequence number were incremented for a fresh IV the ASP + * will reject the request. + */ static void snp_disable_vmpck(struct snp_guest_dev *snp_dev) { + dev_alert(snp_dev->dev, "Disabling vmpck_id %d to prevent IV reuse.\n", + vmpck_id); memzero_explicit(snp_dev->vmpck, VMPCK_KEY_LEN); snp_dev->vmpck = NULL; } @@ -321,34 +340,71 @@ if (rc) return rc; - /* Call firmware to process the request */ + /* + * Call firmware to process the request. In this function the encrypted + * message enters shared memory with the host. So after this call the + * sequence number must be incremented or the VMPCK must be deleted to + * prevent reuse of the IV. + */ rc = snp_issue_guest_request(exit_code, &snp_dev->input, &err); + + /* + * If the extended guest request fails due to having too small of a + * certificate data buffer, retry the same guest request without the + * extended data request in order to increment the sequence number + * and thus avoid IV reuse. + */ + if (exit_code == SVM_VMGEXIT_EXT_GUEST_REQUEST && + err == SNP_GUEST_REQ_INVALID_LEN) { + const unsigned int certs_npages = snp_dev->input.data_npages; + + exit_code = SVM_VMGEXIT_GUEST_REQUEST; + + /* + * If this call to the firmware succeeds, the sequence number can + * be incremented allowing for continued use of the VMPCK. If + * there is an error reflected in the return value, this value + * is checked further down and the result will be the deletion + * of the VMPCK and the error code being propagated back to the + * user as an ioctl() return code. + */ + rc = snp_issue_guest_request(exit_code, &snp_dev->input, &err); + + /* + * Override the error to inform callers the given extended + * request buffer size was too small and give the caller the + * required buffer size. + */ + err = SNP_GUEST_REQ_INVALID_LEN; + snp_dev->input.data_npages = certs_npages; + } + if (fw_err) *fw_err = err; - if (rc) - return rc; + if (rc) { + dev_alert(snp_dev->dev, + "Detected error from ASP request. rc: %d, fw_err: %llu\n", + rc, *fw_err); + goto disable_vmpck; + } - /* - * The verify_and_dec_payload() will fail only if the hypervisor is - * actively modifying the message header or corrupting the encrypted payload. - * This hints that hypervisor is acting in a bad faith. Disable the VMPCK so that - * the key cannot be used for any communication. The key is disabled to ensure - * that AES-GCM does not use the same IV while encrypting the request payload. - */ rc = verify_and_dec_payload(snp_dev, resp_buf, resp_sz); if (rc) { dev_alert(snp_dev->dev, - "Detected unexpected decode failure, disabling the vmpck_id %d\n", - vmpck_id); - snp_disable_vmpck(snp_dev); - return rc; + "Detected unexpected decode failure from ASP. rc: %d\n", + rc); + goto disable_vmpck; } /* Increment to new message sequence after payload decryption was successful. */ snp_inc_msg_seqno(snp_dev); return 0; + +disable_vmpck: + snp_disable_vmpck(snp_dev); + return rc; } static int get_report(struct snp_guest_dev *snp_dev, struct snp_guest_request_ioctl *arg) @@ -744,3 +800,4 @@ MODULE_LICENSE("GPL"); MODULE_VERSION("1.0.0"); MODULE_DESCRIPTION("AMD SEV Guest Driver"); +MODULE_ALIAS("platform:sev-guest"); --- linux-5.19.0.orig/drivers/virt/coco/tdx-guest/Kconfig +++ linux-5.19.0/drivers/virt/coco/tdx-guest/Kconfig @@ -0,0 +1,10 @@ +config TDX_GUEST_DRIVER + tristate "TDX Guest driver" + depends on INTEL_TDX_GUEST + help + The driver provides userspace interface to communicate with + the TDX module to request the TDX guest details like attestation + report. + + To compile this driver as module, choose M here. The module will + be called tdx-guest. --- linux-5.19.0.orig/drivers/virt/coco/tdx-guest/Makefile +++ linux-5.19.0/drivers/virt/coco/tdx-guest/Makefile @@ -0,0 +1,2 @@ +# SPDX-License-Identifier: GPL-2.0 +obj-$(CONFIG_TDX_GUEST_DRIVER) += tdx-guest.o --- linux-5.19.0.orig/drivers/virt/coco/tdx-guest/tdx-guest.c +++ linux-5.19.0/drivers/virt/coco/tdx-guest/tdx-guest.c @@ -0,0 +1,102 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * TDX guest user interface driver + * + * Copyright (C) 2022 Intel Corporation + */ + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include + +static long tdx_get_report0(struct tdx_report_req __user *req) +{ + u8 *reportdata, *tdreport; + long ret; + + reportdata = kmalloc(TDX_REPORTDATA_LEN, GFP_KERNEL); + if (!reportdata) + return -ENOMEM; + + tdreport = kzalloc(TDX_REPORT_LEN, GFP_KERNEL); + if (!tdreport) { + ret = -ENOMEM; + goto out; + } + + if (copy_from_user(reportdata, req->reportdata, TDX_REPORTDATA_LEN)) { + ret = -EFAULT; + goto out; + } + + /* Generate TDREPORT0 using "TDG.MR.REPORT" TDCALL */ + ret = tdx_mcall_get_report0(reportdata, tdreport); + if (ret) + goto out; + + if (copy_to_user(req->tdreport, tdreport, TDX_REPORT_LEN)) + ret = -EFAULT; + +out: + kfree(reportdata); + kfree(tdreport); + + return ret; +} + +static long tdx_guest_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case TDX_CMD_GET_REPORT0: + return tdx_get_report0((struct tdx_report_req __user *)arg); + default: + return -ENOTTY; + } +} + +static const struct file_operations tdx_guest_fops = { + .owner = THIS_MODULE, + .unlocked_ioctl = tdx_guest_ioctl, + .llseek = no_llseek, +}; + +static struct miscdevice tdx_misc_dev = { + .name = KBUILD_MODNAME, + .minor = MISC_DYNAMIC_MINOR, + .fops = &tdx_guest_fops, +}; + +static const struct x86_cpu_id tdx_guest_ids[] = { + X86_MATCH_FEATURE(X86_FEATURE_TDX_GUEST, NULL), + {} +}; +MODULE_DEVICE_TABLE(x86cpu, tdx_guest_ids); + +static int __init tdx_guest_init(void) +{ + if (!x86_match_cpu(tdx_guest_ids)) + return -ENODEV; + + return misc_register(&tdx_misc_dev); +} +module_init(tdx_guest_init); + +static void __exit tdx_guest_exit(void) +{ + misc_deregister(&tdx_misc_dev); +} +module_exit(tdx_guest_exit); + +MODULE_AUTHOR("Kuppuswamy Sathyanarayanan "); +MODULE_DESCRIPTION("TDX Guest Driver"); +MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/drivers/virt/vboxguest/vboxguest_linux.c +++ linux-5.19.0/drivers/virt/vboxguest/vboxguest_linux.c @@ -356,8 +356,8 @@ goto err_vbg_core_exit; } - ret = devm_request_irq(dev, pci->irq, vbg_core_isr, IRQF_SHARED, - DEVICE_NAME, gdev); + ret = request_irq(pci->irq, vbg_core_isr, IRQF_SHARED, DEVICE_NAME, + gdev); if (ret) { vbg_err("vboxguest: Error requesting irq: %d\n", ret); goto err_vbg_core_exit; @@ -367,7 +367,7 @@ if (ret) { vbg_err("vboxguest: Error misc_register %s failed: %d\n", DEVICE_NAME, ret); - goto err_vbg_core_exit; + goto err_free_irq; } ret = misc_register(&gdev->misc_device_user); @@ -403,6 +403,8 @@ misc_deregister(&gdev->misc_device_user); err_unregister_misc_device: misc_deregister(&gdev->misc_device); +err_free_irq: + free_irq(pci->irq, gdev); err_vbg_core_exit: vbg_core_exit(gdev); err_disable_pcidev: @@ -419,6 +421,7 @@ vbg_gdev = NULL; mutex_unlock(&vbg_gdev_mutex); + free_irq(pci->irq, gdev); device_remove_file(gdev->dev, &dev_attr_host_features); device_remove_file(gdev->dev, &dev_attr_host_version); misc_deregister(&gdev->misc_device_user); --- linux-5.19.0.orig/drivers/virtio/Kconfig +++ linux-5.19.0/drivers/virtio/Kconfig @@ -1,6 +1,10 @@ # SPDX-License-Identifier: GPL-2.0-only +config VIRTIO_ANCHOR + bool + config VIRTIO tristate + select VIRTIO_ANCHOR help This option is selected by any driver which implements the virtio bus, such as CONFIG_VIRTIO_PCI, CONFIG_VIRTIO_MMIO, CONFIG_RPMSG @@ -31,11 +35,12 @@ config VIRTIO_HARDEN_NOTIFICATION bool "Harden virtio notification" + depends on BROKEN help Enable this to harden the device notifications and suppress those that happen at a time where notifications are illegal. - Experimental: Note that several drivers still have bugs that + Experimental: Note that several drivers still have issues that may cause crashes or hangs when correct handling of notifications is enforced; depending on the subset of drivers and devices you use, this may or may not work. --- linux-5.19.0.orig/drivers/virtio/Makefile +++ linux-5.19.0/drivers/virtio/Makefile @@ -1,5 +1,6 @@ # SPDX-License-Identifier: GPL-2.0 obj-$(CONFIG_VIRTIO) += virtio.o virtio_ring.o +obj-$(CONFIG_VIRTIO_ANCHOR) += virtio_anchor.o obj-$(CONFIG_VIRTIO_PCI_LIB) += virtio_pci_modern_dev.o obj-$(CONFIG_VIRTIO_PCI_LIB_LEGACY) += virtio_pci_legacy_dev.o obj-$(CONFIG_VIRTIO_MMIO) += virtio_mmio.o --- linux-5.19.0.orig/drivers/virtio/virtio.c +++ linux-5.19.0/drivers/virtio/virtio.c @@ -2,10 +2,10 @@ #include #include #include +#include #include #include #include -#include #include /* Unique numbering for virtio devices. */ @@ -174,7 +174,7 @@ might_sleep(); - if (platform_has(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS)) { + if (virtio_check_mem_acc_cb(dev)) { if (!virtio_has_feature(dev, VIRTIO_F_VERSION_1)) { dev_warn(&dev->dev, "device must provide VIRTIO_F_VERSION_1\n"); --- linux-5.19.0.orig/drivers/virtio/virtio_anchor.c +++ linux-5.19.0/drivers/virtio/virtio_anchor.c @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0-only +#include +#include + +bool virtio_require_restricted_mem_acc(struct virtio_device *dev) +{ + return true; +} +EXPORT_SYMBOL_GPL(virtio_require_restricted_mem_acc); + +static bool virtio_no_restricted_mem_acc(struct virtio_device *dev) +{ + return false; +} + +bool (*virtio_check_mem_acc_cb)(struct virtio_device *dev) = + virtio_no_restricted_mem_acc; +EXPORT_SYMBOL_GPL(virtio_check_mem_acc_cb); --- linux-5.19.0.orig/drivers/vme/bridges/vme_fake.c +++ linux-5.19.0/drivers/vme/bridges/vme_fake.c @@ -1073,6 +1073,8 @@ /* We need a fake parent device */ vme_root = __root_device_register("vme", THIS_MODULE); + if (IS_ERR(vme_root)) + return PTR_ERR(vme_root); /* If we want to support more than one bridge at some point, we need to * dynamically allocate this so we get one per device. --- linux-5.19.0.orig/drivers/vme/bridges/vme_tsi148.c +++ linux-5.19.0/drivers/vme/bridges/vme_tsi148.c @@ -1765,6 +1765,7 @@ return 0; err_dma: + list_del(&entry->list); err_dest: err_source: err_align: --- linux-5.19.0.orig/drivers/watchdog/armada_37xx_wdt.c +++ linux-5.19.0/drivers/watchdog/armada_37xx_wdt.c @@ -274,6 +274,8 @@ if (!res) return -ENODEV; dev->reg = devm_ioremap(&pdev->dev, res->start, resource_size(res)); + if (!dev->reg) + return -ENOMEM; /* init clock */ dev->clk = devm_clk_get(&pdev->dev, NULL); --- linux-5.19.0.orig/drivers/watchdog/f71808e_wdt.c +++ linux-5.19.0/drivers/watchdog/f71808e_wdt.c @@ -634,7 +634,9 @@ pdata.type = ret; - platform_driver_register(&fintek_wdt_driver); + ret = platform_driver_register(&fintek_wdt_driver); + if (ret) + return ret; wdt_res.name = "superio port"; wdt_res.flags = IORESOURCE_IO; --- linux-5.19.0.orig/drivers/watchdog/iTCO_wdt.c +++ linux-5.19.0/drivers/watchdog/iTCO_wdt.c @@ -423,14 +423,18 @@ return time_left; } -static void iTCO_wdt_set_running(struct iTCO_wdt_private *p) +/* Returns true if the watchdog was running */ +static bool iTCO_wdt_set_running(struct iTCO_wdt_private *p) { u16 val; - /* Bit 11: TCO Timer Halt -> 0 = The TCO timer is * enabled */ + /* Bit 11: TCO Timer Halt -> 0 = The TCO timer is enabled */ val = inw(TCO1_CNT(p)); - if (!(val & BIT(11))) + if (!(val & BIT(11))) { set_bit(WDOG_HW_RUNNING, &p->wddev.status); + return true; + } + return false; } /* @@ -518,9 +522,6 @@ return -ENODEV; /* Cannot reset NO_REBOOT bit */ } - /* Set the NO_REBOOT bit to prevent later reboots, just for sure */ - p->update_no_reboot_bit(p->no_reboot_priv, true); - if (turn_SMI_watchdog_clear_off >= p->iTCO_version) { /* * Bit 13: TCO_EN -> 0 @@ -572,7 +573,13 @@ watchdog_set_drvdata(&p->wddev, p); platform_set_drvdata(pdev, p); - iTCO_wdt_set_running(p); + if (!iTCO_wdt_set_running(p)) { + /* + * If the watchdog was not running set NO_REBOOT now to + * prevent later reboots. + */ + p->update_no_reboot_bit(p->no_reboot_priv, true); + } /* Check that the heartbeat value is within it's range; if not reset to the default */ --- linux-5.19.0.orig/drivers/watchdog/sp5100_tco.c +++ linux-5.19.0/drivers/watchdog/sp5100_tco.c @@ -402,6 +402,7 @@ iounmap(addr); release_resource(res); + kfree(res); return ret; } --- linux-5.19.0.orig/drivers/xen/Kconfig +++ linux-5.19.0/drivers/xen/Kconfig @@ -355,4 +355,13 @@ If in doubt, say n. +config XEN_VIRTIO_FORCE_GRANT + bool "Require Xen virtio support to use grants" + depends on XEN_VIRTIO + help + Require virtio for Xen guests to use grant mappings. + This will avoid the need to give the backend the right to map all + of the guest memory. This will need support on the backend side + (e.g. qemu or kernel, depending on the virtio device types used). + endmenu --- linux-5.19.0.orig/drivers/xen/gntdev-common.h +++ linux-5.19.0/drivers/xen/gntdev-common.h @@ -44,9 +44,10 @@ }; struct gntdev_grant_map { + atomic_t in_use; struct mmu_interval_notifier notifier; + bool notifier_init; struct list_head next; - struct vm_area_struct *vma; int index; int count; int flags; --- linux-5.19.0.orig/drivers/xen/gntdev.c +++ linux-5.19.0/drivers/xen/gntdev.c @@ -286,6 +286,9 @@ */ } + if (use_ptemod && map->notifier_init) + mmu_interval_notifier_remove(&map->notifier); + if (map->notify.flags & UNMAP_NOTIFY_SEND_EVENT) { notify_remote_via_evtchn(map->notify.event); evtchn_put(map->notify.event); @@ -298,7 +301,7 @@ static int find_grant_ptes(pte_t *pte, unsigned long addr, void *data) { struct gntdev_grant_map *map = data; - unsigned int pgnr = (addr - map->vma->vm_start) >> PAGE_SHIFT; + unsigned int pgnr = (addr - map->pages_vm_start) >> PAGE_SHIFT; int flags = map->flags | GNTMAP_application_map | GNTMAP_contains_pte | (1 << _GNTMAP_guest_avail0); u64 pte_maddr; @@ -367,8 +370,7 @@ for (i = 0; i < map->count; i++) { if (map->map_ops[i].status == GNTST_okay) { map->unmap_ops[i].handle = map->map_ops[i].handle; - if (!use_ptemod) - alloced++; + alloced++; } else if (!err) err = -EINVAL; @@ -377,8 +379,7 @@ if (use_ptemod) { if (map->kmap_ops[i].status == GNTST_okay) { - if (map->map_ops[i].status == GNTST_okay) - alloced++; + alloced++; map->kunmap_ops[i].handle = map->kmap_ops[i].handle; } else if (!err) err = -EINVAL; @@ -394,8 +395,14 @@ unsigned int i; struct gntdev_grant_map *map = data->data; unsigned int offset = data->unmap_ops - map->unmap_ops; + int successful_unmaps = 0; + int live_grants; for (i = 0; i < data->count; i++) { + if (map->unmap_ops[offset + i].status == GNTST_okay && + map->unmap_ops[offset + i].handle != INVALID_GRANT_HANDLE) + successful_unmaps++; + WARN_ON(map->unmap_ops[offset + i].status != GNTST_okay && map->unmap_ops[offset + i].handle != INVALID_GRANT_HANDLE); pr_debug("unmap handle=%d st=%d\n", @@ -403,6 +410,10 @@ map->unmap_ops[offset+i].status); map->unmap_ops[offset+i].handle = INVALID_GRANT_HANDLE; if (use_ptemod) { + if (map->kunmap_ops[offset + i].status == GNTST_okay && + map->kunmap_ops[offset + i].handle != INVALID_GRANT_HANDLE) + successful_unmaps++; + WARN_ON(map->kunmap_ops[offset + i].status != GNTST_okay && map->kunmap_ops[offset + i].handle != INVALID_GRANT_HANDLE); pr_debug("kunmap handle=%u st=%d\n", @@ -411,11 +422,15 @@ map->kunmap_ops[offset+i].handle = INVALID_GRANT_HANDLE; } } + /* * Decrease the live-grant counter. This must happen after the loop to * prevent premature reuse of the grants by gnttab_mmap(). */ - atomic_sub(data->count, &map->live_grants); + live_grants = atomic_sub_return(successful_unmaps, &map->live_grants); + if (WARN_ON(live_grants < 0)) + pr_err("%s: live_grants became negative (%d) after unmapping %d pages!\n", + __func__, live_grants, successful_unmaps); /* Release reference taken by __unmap_grant_pages */ gntdev_put_map(NULL, map); @@ -496,11 +511,7 @@ struct gntdev_priv *priv = file->private_data; pr_debug("gntdev_vma_close %p\n", vma); - if (use_ptemod) { - WARN_ON(map->vma != vma); - mmu_interval_notifier_remove(&map->notifier); - map->vma = NULL; - } + vma->vm_private_data = NULL; gntdev_put_map(priv, map); } @@ -528,29 +539,30 @@ struct gntdev_grant_map *map = container_of(mn, struct gntdev_grant_map, notifier); unsigned long mstart, mend; + unsigned long map_start, map_end; if (!mmu_notifier_range_blockable(range)) return false; + map_start = map->pages_vm_start; + map_end = map->pages_vm_start + (map->count << PAGE_SHIFT); + /* * If the VMA is split or otherwise changed the notifier is not * updated, but we don't want to process VA's outside the modified * VMA. FIXME: It would be much more understandable to just prevent * modifying the VMA in the first place. */ - if (map->vma->vm_start >= range->end || - map->vma->vm_end <= range->start) + if (map_start >= range->end || map_end <= range->start) return true; - mstart = max(range->start, map->vma->vm_start); - mend = min(range->end, map->vma->vm_end); + mstart = max(range->start, map_start); + mend = min(range->end, map_end); pr_debug("map %d+%d (%lx %lx), range %lx %lx, mrange %lx %lx\n", - map->index, map->count, - map->vma->vm_start, map->vma->vm_end, - range->start, range->end, mstart, mend); - unmap_grant_pages(map, - (mstart - map->vma->vm_start) >> PAGE_SHIFT, - (mend - mstart) >> PAGE_SHIFT); + map->index, map->count, map_start, map_end, + range->start, range->end, mstart, mend); + unmap_grant_pages(map, (mstart - map_start) >> PAGE_SHIFT, + (mend - mstart) >> PAGE_SHIFT); return true; } @@ -1030,18 +1042,15 @@ return -EINVAL; pr_debug("map %d+%d at %lx (pgoff %lx)\n", - index, count, vma->vm_start, vma->vm_pgoff); + index, count, vma->vm_start, vma->vm_pgoff); mutex_lock(&priv->lock); map = gntdev_find_map_index(priv, index, count); if (!map) goto unlock_out; - if (use_ptemod && map->vma) + if (!atomic_add_unless(&map->in_use, 1, 1)) goto unlock_out; - if (atomic_read(&map->live_grants)) { - err = -EAGAIN; - goto unlock_out; - } + refcount_inc(&map->users); vma->vm_ops = &gntdev_vmops; @@ -1062,15 +1071,16 @@ map->flags |= GNTMAP_readonly; } + map->pages_vm_start = vma->vm_start; + if (use_ptemod) { - map->vma = vma; err = mmu_interval_notifier_insert_locked( &map->notifier, vma->vm_mm, vma->vm_start, vma->vm_end - vma->vm_start, &gntdev_mmu_ops); - if (err) { - map->vma = NULL; + if (err) goto out_unlock_put; - } + + map->notifier_init = true; } mutex_unlock(&priv->lock); @@ -1087,7 +1097,6 @@ */ mmu_interval_read_begin(&map->notifier); - map->pages_vm_start = vma->vm_start; err = apply_to_page_range(vma->vm_mm, vma->vm_start, vma->vm_end - vma->vm_start, find_grant_ptes, map); @@ -1116,13 +1125,8 @@ out_unlock_put: mutex_unlock(&priv->lock); out_put_map: - if (use_ptemod) { + if (use_ptemod) unmap_grant_pages(map, 0, map->count); - if (map->vma) { - mmu_interval_notifier_remove(&map->notifier); - map->vma = NULL; - } - } gntdev_put_map(priv, map); return err; } --- linux-5.19.0.orig/drivers/xen/grant-dma-ops.c +++ linux-5.19.0/drivers/xen/grant-dma-ops.c @@ -12,6 +12,8 @@ #include #include #include +#include +#include #include #include #include @@ -287,6 +289,14 @@ return has_iommu; } +bool xen_virtio_mem_acc(struct virtio_device *dev) +{ + if (IS_ENABLED(CONFIG_XEN_VIRTIO_FORCE_GRANT)) + return true; + + return xen_is_grant_dma_device(dev->dev.parent); +} + void xen_grant_setup_dma_ops(struct device *dev) { struct xen_grant_dma_data *data; --- linux-5.19.0.orig/drivers/xen/grant-table.c +++ linux-5.19.0/drivers/xen/grant-table.c @@ -1047,6 +1047,9 @@ size_t size; int i, ret; + if (args->nr_pages < 0 || args->nr_pages > (INT_MAX >> PAGE_SHIFT)) + return -ENOMEM; + size = args->nr_pages << PAGE_SHIFT; if (args->coherent) args->vaddr = dma_alloc_coherent(args->dev, size, --- linux-5.19.0.orig/drivers/xen/pcpu.c +++ linux-5.19.0/drivers/xen/pcpu.c @@ -228,7 +228,7 @@ err = device_register(dev); if (err) { - pcpu_release(dev); + put_device(dev); return err; } --- linux-5.19.0.orig/drivers/xen/platform-pci.c +++ linux-5.19.0/drivers/xen/platform-pci.c @@ -144,7 +144,7 @@ if (ret) { dev_warn(&pdev->dev, "Unable to set the evtchn callback " "err=%d\n", ret); - goto out; + goto irq_out; } } @@ -152,13 +152,16 @@ grant_frames = alloc_xen_mmio(PAGE_SIZE * max_nr_gframes); ret = gnttab_setup_auto_xlat_frames(grant_frames); if (ret) - goto out; + goto irq_out; ret = gnttab_init(); if (ret) goto grant_out; return 0; grant_out: gnttab_free_auto_xlat_frames(); +irq_out: + if (!xen_have_vector_callback) + free_irq(pdev->irq, pdev); out: pci_release_region(pdev, 0); mem_out: --- linux-5.19.0.orig/drivers/xen/privcmd.c +++ linux-5.19.0/drivers/xen/privcmd.c @@ -581,27 +581,30 @@ struct privcmd_dm_op_buf kbufs[], unsigned int num, struct page *pages[], unsigned int nr_pages, unsigned int *pinned) { - unsigned int i; + unsigned int i, off = 0; - for (i = 0; i < num; i++) { + for (i = 0; i < num; ) { unsigned int requested; int page_count; requested = DIV_ROUND_UP( offset_in_page(kbufs[i].uptr) + kbufs[i].size, - PAGE_SIZE); + PAGE_SIZE) - off; if (requested > nr_pages) return -ENOSPC; page_count = pin_user_pages_fast( - (unsigned long) kbufs[i].uptr, + (unsigned long)kbufs[i].uptr + off * PAGE_SIZE, requested, FOLL_WRITE, pages); - if (page_count < 0) - return page_count; + if (page_count <= 0) + return page_count ? : -EFAULT; *pinned += page_count; nr_pages -= page_count; pages += page_count; + + off = (requested == page_count) ? 0 : off + page_count; + i += !off; } return 0; @@ -677,10 +680,8 @@ } rc = lock_pages(kbufs, kdata.num, pages, nr_pages, &pinned); - if (rc < 0) { - nr_pages = pinned; + if (rc < 0) goto out; - } for (i = 0; i < kdata.num; i++) { set_xen_guest_handle(xbufs[i].h, kbufs[i].uptr); @@ -692,7 +693,7 @@ xen_preemptible_hcall_end(); out: - unlock_pages(pages, nr_pages); + unlock_pages(pages, pinned); kfree(xbufs); kfree(pages); kfree(kbufs); @@ -759,7 +760,7 @@ goto out; } - pfns = kcalloc(kdata.num, sizeof(*pfns), GFP_KERNEL); + pfns = kcalloc(kdata.num, sizeof(*pfns), GFP_KERNEL | __GFP_NOWARN); if (!pfns) { rc = -ENOMEM; goto out; --- linux-5.19.0.orig/drivers/xen/xen-pciback/conf_space_capability.c +++ linux-5.19.0/drivers/xen/xen-pciback/conf_space_capability.c @@ -190,13 +190,16 @@ }; static struct msi_msix_field_config { - u16 enable_bit; /* bit for enabling MSI/MSI-X */ - unsigned int int_type; /* interrupt type for exclusiveness check */ + u16 enable_bit; /* bit for enabling MSI/MSI-X */ + u16 allowed_bits; /* bits allowed to be changed */ + unsigned int int_type; /* interrupt type for exclusiveness check */ } msi_field_config = { .enable_bit = PCI_MSI_FLAGS_ENABLE, + .allowed_bits = PCI_MSI_FLAGS_ENABLE, .int_type = INTERRUPT_TYPE_MSI, }, msix_field_config = { .enable_bit = PCI_MSIX_FLAGS_ENABLE, + .allowed_bits = PCI_MSIX_FLAGS_ENABLE | PCI_MSIX_FLAGS_MASKALL, .int_type = INTERRUPT_TYPE_MSIX, }; @@ -229,7 +232,7 @@ return 0; if (!dev_data->allow_interrupt_control || - (new_value ^ old_value) & ~field_config->enable_bit) + (new_value ^ old_value) & ~field_config->allowed_bits) return PCIBIOS_SET_FAILED; if (new_value & field_config->enable_bit) { --- linux-5.19.0.orig/drivers/xen/xenbus/xenbus_client.c +++ linux-5.19.0/drivers/xen/xenbus/xenbus_client.c @@ -382,9 +382,10 @@ unsigned long ring_size = nr_pages * XEN_PAGE_SIZE; grant_ref_t gref_head; unsigned int i; + void *addr; int ret; - *vaddr = alloc_pages_exact(ring_size, gfp | __GFP_ZERO); + addr = *vaddr = alloc_pages_exact(ring_size, gfp | __GFP_ZERO); if (!*vaddr) { ret = -ENOMEM; goto err; @@ -401,13 +402,15 @@ unsigned long gfn; if (is_vmalloc_addr(*vaddr)) - gfn = pfn_to_gfn(vmalloc_to_pfn(vaddr[i])); + gfn = pfn_to_gfn(vmalloc_to_pfn(addr)); else - gfn = virt_to_gfn(vaddr[i]); + gfn = virt_to_gfn(addr); grefs[i] = gnttab_claim_grant_reference(&gref_head); gnttab_grant_foreign_access_ref(grefs[i], dev->otherend_id, gfn, 0); + + addr += XEN_PAGE_SIZE; } return 0; --- linux-5.19.0.orig/drivers/xen/xenbus/xenbus_dev_frontend.c +++ linux-5.19.0/drivers/xen/xenbus/xenbus_dev_frontend.c @@ -128,7 +128,7 @@ { struct xenbus_file_priv *u = filp->private_data; struct read_buffer *rb; - unsigned i; + ssize_t i; int ret; mutex_lock(&u->reply_mutex); @@ -148,7 +148,7 @@ rb = list_entry(u->read_buffers.next, struct read_buffer, list); i = 0; while (i < len) { - unsigned sz = min((unsigned)len - i, rb->len - rb->cons); + size_t sz = min_t(size_t, len - i, rb->len - rb->cons); ret = copy_to_user(ubuf + i, &rb->msg[rb->cons], sz); --- linux-5.19.0.orig/fs/Kconfig +++ linux-5.19.0/fs/Kconfig @@ -128,6 +128,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/netfs/Kconfig" --- linux-5.19.0.orig/fs/Makefile +++ linux-5.19.0/fs/Makefile @@ -34,8 +34,6 @@ obj-$(CONFIG_EVENTFD) += eventfd.o obj-$(CONFIG_USERFAULTFD) += userfaultfd.o obj-$(CONFIG_AIO) += aio.o -obj-$(CONFIG_IO_URING) += io_uring.o -obj-$(CONFIG_IO_WQ) += io-wq.o obj-$(CONFIG_FS_DAX) += dax.o obj-$(CONFIG_FS_ENCRYPTION) += crypto/ obj-$(CONFIG_FS_VERITY) += verity/ @@ -140,3 +138,4 @@ obj-$(CONFIG_EROFS_FS) += erofs/ obj-$(CONFIG_VBOXSF_FS) += vboxsf/ obj-$(CONFIG_ZONEFS_FS) += zonefs/ +obj-$(CONFIG_SHIFT_FS) += shiftfs.o --- linux-5.19.0.orig/fs/afs/flock.c +++ linux-5.19.0/fs/afs/flock.c @@ -76,7 +76,7 @@ if (call->error == 0) { spin_lock(&vnode->lock); trace_afs_flock_ev(vnode, NULL, afs_flock_timestamp, 0); - vnode->locked_at = call->reply_time; + vnode->locked_at = call->issue_time; afs_schedule_lock_extension(vnode); spin_unlock(&vnode->lock); } --- linux-5.19.0.orig/fs/afs/fs_probe.c +++ linux-5.19.0/fs/afs/fs_probe.c @@ -167,8 +167,8 @@ clear_bit(AFS_SERVER_FL_HAS_FS64, &server->flags); } - if (rxrpc_kernel_get_srtt(call->net->socket, call->rxcall, &rtt_us) && - rtt_us < server->probe.rtt) { + rxrpc_kernel_get_srtt(call->net->socket, call->rxcall, &rtt_us); + if (rtt_us < server->probe.rtt) { server->probe.rtt = rtt_us; server->rtt = rtt_us; alist->preferred = index; @@ -366,12 +366,15 @@ unsigned long nowj, timer_at, poll_at; bool first_pass = true, set_timer = false; - if (!net->live) + if (!net->live) { + afs_dec_servers_outstanding(net); return; + } _enter(""); if (list_empty(&net->fs_probe_fast) && list_empty(&net->fs_probe_slow)) { + afs_dec_servers_outstanding(net); _leave(" [none]"); return; } --- linux-5.19.0.orig/fs/afs/fsclient.c +++ linux-5.19.0/fs/afs/fsclient.c @@ -131,7 +131,7 @@ static time64_t xdr_decode_expiry(struct afs_call *call, u32 expiry) { - return ktime_divns(call->reply_time, NSEC_PER_SEC) + expiry; + return ktime_divns(call->issue_time, NSEC_PER_SEC) + expiry; } static void xdr_decode_AFSCallBack(const __be32 **_bp, --- linux-5.19.0.orig/fs/afs/internal.h +++ linux-5.19.0/fs/afs/internal.h @@ -137,7 +137,6 @@ 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) */ @@ -151,7 +150,7 @@ } __attribute__((packed)); __be64 tmp64; }; - ktime_t reply_time; /* Time of first reply packet */ + ktime_t issue_time; /* Time of issue of operation */ }; struct afs_call_type { --- linux-5.19.0.orig/fs/afs/rxrpc.c +++ linux-5.19.0/fs/afs/rxrpc.c @@ -347,6 +347,7 @@ if (call->max_lifespan) rxrpc_kernel_set_max_life(call->net->socket, rxcall, call->max_lifespan); + call->issue_time = ktime_get_real(); /* send the request */ iov[0].iov_base = call->request; @@ -497,12 +498,6 @@ return; } - if (!call->have_reply_time && - rxrpc_kernel_get_reply_time(call->net->socket, - call->rxcall, - &call->reply_time)) - call->have_reply_time = true; - ret = call->type->deliver(call); state = READ_ONCE(call->state); if (ret == 0 && call->unmarshalling_error) --- linux-5.19.0.orig/fs/afs/yfsclient.c +++ linux-5.19.0/fs/afs/yfsclient.c @@ -232,8 +232,7 @@ struct afs_callback *cb = &scb->callback; ktime_t cb_expiry; - cb_expiry = call->reply_time; - cb_expiry = ktime_add(cb_expiry, xdr_to_u64(x->expiration_time) * 100); + cb_expiry = ktime_add(call->issue_time, xdr_to_u64(x->expiration_time) * 100); cb->expires_at = ktime_divns(cb_expiry, NSEC_PER_SEC); scb->have_cb = true; *_bp += xdr_size(x); --- linux-5.19.0.orig/fs/attr.c +++ linux-5.19.0/fs/attr.c @@ -184,6 +184,8 @@ */ int inode_newsize_ok(const struct inode *inode, loff_t offset) { + if (offset < 0) + return -EINVAL; if (inode->i_size < offset) { unsigned long limit; --- linux-5.19.0.orig/fs/binfmt_elf.c +++ linux-5.19.0/fs/binfmt_elf.c @@ -911,7 +911,7 @@ interp_elf_ex = kmalloc(sizeof(*interp_elf_ex), GFP_KERNEL); if (!interp_elf_ex) { retval = -ENOMEM; - goto out_free_ph; + goto out_free_file; } /* Get the exec headers */ @@ -1354,6 +1354,7 @@ out_free_dentry: kfree(interp_elf_ex); kfree(interp_elf_phdata); +out_free_file: allow_write_access(interpreter); if (interpreter) fput(interpreter); --- linux-5.19.0.orig/fs/binfmt_misc.c +++ linux-5.19.0/fs/binfmt_misc.c @@ -44,10 +44,10 @@ static int enabled = 1; enum {Enabled, Magic}; -#define MISC_FMT_PRESERVE_ARGV0 (1 << 31) -#define MISC_FMT_OPEN_BINARY (1 << 30) -#define MISC_FMT_CREDENTIALS (1 << 29) -#define MISC_FMT_OPEN_FILE (1 << 28) +#define MISC_FMT_PRESERVE_ARGV0 (1UL << 31) +#define MISC_FMT_OPEN_BINARY (1UL << 30) +#define MISC_FMT_CREDENTIALS (1UL << 29) +#define MISC_FMT_OPEN_FILE (1UL << 28) typedef struct { struct list_head list; --- linux-5.19.0.orig/fs/btrfs/backref.c +++ linux-5.19.0/fs/btrfs/backref.c @@ -138,6 +138,7 @@ u64 root_objectid; u64 inum; int share_count; + bool have_delayed_delete_refs; }; static inline int extent_is_shared(struct share_check *sc) @@ -288,8 +289,10 @@ struct prelim_ref *ref, *next_ref; rbtree_postorder_for_each_entry_safe(ref, next_ref, - &preftree->root.rb_root, rbnode) + &preftree->root.rb_root, rbnode) { + free_inode_elem_list(ref->inode_list); free_pref(ref); + } preftree->root = RB_ROOT_CACHED; preftree->count = 0; @@ -647,6 +650,18 @@ return (struct extent_inode_elem *)(uintptr_t)node->aux; } +static void free_leaf_list(struct ulist *ulist) +{ + struct ulist_node *node; + struct ulist_iterator uiter; + + ULIST_ITER_INIT(&uiter); + while ((node = ulist_next(ulist, &uiter))) + free_inode_elem_list(unode_aux_to_inode_list(node)); + + ulist_free(ulist); +} + /* * We maintain three separate rbtrees: one for direct refs, one for * indirect refs which have a key, and one for indirect refs which do not @@ -761,7 +776,11 @@ cond_resched(); } out: - ulist_free(parents); + /* + * We may have inode lists attached to refs in the parents ulist, so we + * must free them before freeing the ulist and its refs. + */ + free_leaf_list(parents); return ret; } @@ -820,16 +839,11 @@ struct preftrees *preftrees, struct share_check *sc) { struct btrfs_delayed_ref_node *node; - struct btrfs_delayed_extent_op *extent_op = head->extent_op; struct btrfs_key key; - struct btrfs_key tmp_op_key; struct rb_node *n; int count; int ret = 0; - if (extent_op && extent_op->update_key) - btrfs_disk_key_to_cpu(&tmp_op_key, &extent_op->key); - spin_lock(&head->lock); for (n = rb_first_cached(&head->ref_tree); n; n = rb_next(n)) { node = rb_entry(n, struct btrfs_delayed_ref_node, @@ -855,10 +869,16 @@ case BTRFS_TREE_BLOCK_REF_KEY: { /* NORMAL INDIRECT METADATA backref */ struct btrfs_delayed_tree_ref *ref; + struct btrfs_key *key_ptr = NULL; + + if (head->extent_op && head->extent_op->update_key) { + btrfs_disk_key_to_cpu(&key, &head->extent_op->key); + key_ptr = &key; + } ref = btrfs_delayed_node_to_tree_ref(node); ret = add_indirect_ref(fs_info, preftrees, ref->root, - &tmp_op_key, ref->level + 1, + key_ptr, ref->level + 1, node->bytenr, count, sc, GFP_ATOMIC); break; @@ -884,13 +904,22 @@ key.offset = ref->offset; /* - * Found a inum that doesn't match our known inum, we - * know it's shared. + * If we have a share check context and a reference for + * another inode, we can't exit immediately. This is + * because even if this is a BTRFS_ADD_DELAYED_REF + * reference we may find next a BTRFS_DROP_DELAYED_REF + * which cancels out this ADD reference. + * + * If this is a DROP reference and there was no previous + * ADD reference, then we need to signal that when we + * process references from the extent tree (through + * add_inline_refs() and add_keyed_refs()), we should + * not exit early if we find a reference for another + * inode, because one of the delayed DROP references + * may cancel that reference in the extent tree. */ - if (sc && sc->inum && ref->objectid != sc->inum) { - ret = BACKREF_FOUND_SHARED; - goto out; - } + if (sc && count < 0) + sc->have_delayed_delete_refs = true; ret = add_indirect_ref(fs_info, preftrees, ref->root, &key, 0, node->bytenr, count, sc, @@ -920,7 +949,7 @@ } if (!ret) ret = extent_is_shared(sc); -out: + spin_unlock(&head->lock); return ret; } @@ -1023,7 +1052,8 @@ key.type = BTRFS_EXTENT_DATA_KEY; key.offset = btrfs_extent_data_ref_offset(leaf, dref); - if (sc && sc->inum && key.objectid != sc->inum) { + if (sc && sc->inum && key.objectid != sc->inum && + !sc->have_delayed_delete_refs) { ret = BACKREF_FOUND_SHARED; break; } @@ -1033,6 +1063,7 @@ ret = add_indirect_ref(fs_info, preftrees, root, &key, 0, bytenr, count, sc, GFP_NOFS); + break; } default: @@ -1122,7 +1153,8 @@ key.type = BTRFS_EXTENT_DATA_KEY; key.offset = btrfs_extent_data_ref_offset(leaf, dref); - if (sc && sc->inum && key.objectid != sc->inum) { + if (sc && sc->inum && key.objectid != sc->inum && + !sc->have_delayed_delete_refs) { ret = BACKREF_FOUND_SHARED; break; } @@ -1354,6 +1386,12 @@ if (ret < 0) goto out; ref->inode_list = eie; + /* + * We transferred the list ownership to the ref, + * so set to NULL to avoid a double free in case + * an error happens after this. + */ + eie = NULL; } ret = ulist_add_merge_ptr(refs, ref->parent, ref->inode_list, @@ -1379,6 +1417,14 @@ eie->next = ref->inode_list; } eie = NULL; + /* + * We have transferred the inode list ownership from + * this ref to the ref we added to the 'refs' ulist. + * So set this ref's inode list to NULL to avoid + * use-after-free when our caller uses it or double + * frees in case an error happens before we return. + */ + ref->inode_list = NULL; } cond_resched(); } @@ -1395,24 +1441,6 @@ return ret; } -static void free_leaf_list(struct ulist *blocks) -{ - struct ulist_node *node = NULL; - struct extent_inode_elem *eie; - struct ulist_iterator uiter; - - ULIST_ITER_INIT(&uiter); - while ((node = ulist_next(blocks, &uiter))) { - if (!node->aux) - continue; - eie = unode_aux_to_inode_list(node); - free_inode_elem_list(eie); - node->aux = 0; - } - - ulist_free(blocks); -} - /* * Finds all leafs with a reference to the specified combination of bytenr and * offset. key_list_head will point to a list of corresponding keys (caller must @@ -1544,6 +1572,7 @@ .root_objectid = root->root_key.objectid, .inum = inum, .share_count = 0, + .have_delayed_delete_refs = false, }; ulist_init(roots); @@ -1578,6 +1607,7 @@ break; bytenr = node->val; shared.share_count = 0; + shared.have_delayed_delete_refs = false; cond_resched(); } @@ -2028,10 +2058,29 @@ return ret; } +static int build_ino_list(u64 inum, u64 offset, u64 root, void *ctx) +{ + struct btrfs_data_container *inodes = ctx; + const size_t c = 3 * sizeof(u64); + + if (inodes->bytes_left >= c) { + inodes->bytes_left -= c; + inodes->val[inodes->elem_cnt] = inum; + inodes->val[inodes->elem_cnt + 1] = offset; + inodes->val[inodes->elem_cnt + 2] = root; + inodes->elem_cnt += 3; + } else { + inodes->bytes_missing += c - inodes->bytes_left; + inodes->bytes_left = 0; + inodes->elem_missed += 3; + } + + return 0; +} + int iterate_inodes_from_logical(u64 logical, struct btrfs_fs_info *fs_info, struct btrfs_path *path, - iterate_extent_inodes_t *iterate, void *ctx, - bool ignore_offset) + void *ctx, bool ignore_offset) { int ret; u64 extent_item_pos; @@ -2049,7 +2098,7 @@ extent_item_pos = logical - found_key.objectid; ret = iterate_extent_inodes(fs_info, found_key.objectid, extent_item_pos, search_commit_root, - iterate, ctx, ignore_offset); + build_ino_list, ctx, ignore_offset); return ret; } --- linux-5.19.0.orig/fs/btrfs/backref.h +++ linux-5.19.0/fs/btrfs/backref.h @@ -35,8 +35,7 @@ bool ignore_offset); int iterate_inodes_from_logical(u64 logical, struct btrfs_fs_info *fs_info, - struct btrfs_path *path, - iterate_extent_inodes_t *iterate, void *ctx, + struct btrfs_path *path, void *ctx, bool ignore_offset); int paths_from_inode(u64 inum, struct inode_fs_paths *ipath); --- linux-5.19.0.orig/fs/btrfs/block-group.c +++ linux-5.19.0/fs/btrfs/block-group.c @@ -440,39 +440,26 @@ btrfs_put_caching_control(caching_ctl); } -int btrfs_wait_block_group_cache_done(struct btrfs_block_group *cache) +static int btrfs_caching_ctl_wait_done(struct btrfs_block_group *cache, + struct btrfs_caching_control *caching_ctl) +{ + wait_event(caching_ctl->wait, btrfs_block_group_done(cache)); + return cache->cached == BTRFS_CACHE_ERROR ? -EIO : 0; +} + +static int btrfs_wait_block_group_cache_done(struct btrfs_block_group *cache) { struct btrfs_caching_control *caching_ctl; - int ret = 0; + int ret; caching_ctl = btrfs_get_caching_control(cache); if (!caching_ctl) return (cache->cached == BTRFS_CACHE_ERROR) ? -EIO : 0; - - wait_event(caching_ctl->wait, btrfs_block_group_done(cache)); - if (cache->cached == BTRFS_CACHE_ERROR) - ret = -EIO; + ret = btrfs_caching_ctl_wait_done(cache, caching_ctl); btrfs_put_caching_control(caching_ctl); return ret; } -static bool space_cache_v1_done(struct btrfs_block_group *cache) -{ - bool ret; - - spin_lock(&cache->lock); - ret = cache->cached != BTRFS_CACHE_FAST; - spin_unlock(&cache->lock); - - return ret; -} - -void btrfs_wait_space_cache_v1_finished(struct btrfs_block_group *cache, - struct btrfs_caching_control *caching_ctl) -{ - wait_event(caching_ctl->wait, space_cache_v1_done(cache)); -} - #ifdef CONFIG_BTRFS_DEBUG static void fragment_free_space(struct btrfs_block_group *block_group) { @@ -750,9 +737,8 @@ btrfs_put_block_group(block_group); } -int btrfs_cache_block_group(struct btrfs_block_group *cache, int load_cache_only) +int btrfs_cache_block_group(struct btrfs_block_group *cache, bool wait) { - DEFINE_WAIT(wait); struct btrfs_fs_info *fs_info = cache->fs_info; struct btrfs_caching_control *caching_ctl = NULL; int ret = 0; @@ -785,10 +771,7 @@ } WARN_ON(cache->caching_ctl); cache->caching_ctl = caching_ctl; - if (btrfs_test_opt(fs_info, SPACE_CACHE)) - cache->cached = BTRFS_CACHE_FAST; - else - cache->cached = BTRFS_CACHE_STARTED; + cache->cached = BTRFS_CACHE_STARTED; cache->has_caching_ctl = 1; spin_unlock(&cache->lock); @@ -801,8 +784,8 @@ btrfs_queue_work(fs_info->caching_workers, &caching_ctl->work); out: - if (load_cache_only && caching_ctl) - btrfs_wait_space_cache_v1_finished(cache, caching_ctl); + if (wait && caching_ctl) + ret = btrfs_caching_ctl_wait_done(cache, caching_ctl); if (caching_ctl) btrfs_put_caching_control(caching_ctl); @@ -1051,8 +1034,13 @@ < block_group->zone_unusable); WARN_ON(block_group->space_info->disk_total < block_group->length * factor); + WARN_ON(block_group->zone_is_active && + block_group->space_info->active_total_bytes + < block_group->length); } block_group->space_info->total_bytes -= block_group->length; + if (block_group->zone_is_active) + block_group->space_info->active_total_bytes -= block_group->length; block_group->space_info->bytes_readonly -= (block_group->length - block_group->zone_unusable); block_group->space_info->bytes_zone_unusable -= @@ -1635,9 +1623,11 @@ div64_u64(zone_unusable * 100, bg->length)); trace_btrfs_reclaim_block_group(bg); ret = btrfs_relocate_chunk(fs_info, bg->start); - if (ret) + if (ret) { + btrfs_dec_block_group_ro(bg); btrfs_err(fs_info, "error relocating chunk %llu", bg->start); + } next: btrfs_put_block_group(bg); @@ -2108,7 +2098,8 @@ trace_btrfs_add_block_group(info, cache, 0); btrfs_update_space_info(info, cache->flags, cache->length, cache->used, cache->bytes_super, - cache->zone_unusable, &space_info); + cache->zone_unusable, cache->zone_is_active, + &space_info); cache->space_info = space_info; @@ -2178,7 +2169,7 @@ } btrfs_update_space_info(fs_info, bg->flags, em->len, em->len, - 0, 0, &space_info); + 0, 0, false, &space_info); bg->space_info = space_info; link_block_group(bg); @@ -2200,7 +2191,16 @@ int need_clear = 0; u64 cache_gen; - if (!root) + /* + * Either no extent root (with ibadroots rescue option) or we have + * unsupported RO options. The fs can never be mounted read-write, so no + * need to waste time searching block group items. + * + * This also allows new extent tree related changes to be RO compat, + * no need for a full incompat flag. + */ + if (!root || (btrfs_super_compat_ro_flags(info->super_copy) & + ~BTRFS_FEATURE_COMPAT_RO_SUPP)) return fill_dummy_bgs(info); key.objectid = 0; @@ -2559,7 +2559,7 @@ trace_btrfs_add_block_group(fs_info, cache, 1); btrfs_update_space_info(fs_info, cache->flags, size, bytes_used, cache->bytes_super, cache->zone_unusable, - &cache->space_info); + cache->zone_is_active, &cache->space_info); btrfs_update_global_block_rsv(fs_info); link_block_group(cache); @@ -2659,6 +2659,14 @@ ret = btrfs_chunk_alloc(trans, alloc_flags, CHUNK_ALLOC_FORCE); if (ret < 0) goto out; + /* + * We have allocated a new chunk. We also need to activate that chunk to + * grant metadata tickets for zoned filesystem. + */ + ret = btrfs_zoned_activate_one_bg(fs_info, cache->space_info, true); + if (ret < 0) + goto out; + ret = inc_block_group_ro(cache, 0); if (ret == -ETXTBSY) goto unlock_out; @@ -3297,7 +3305,7 @@ * space back to the block group, otherwise we will leak space. */ if (!alloc && !btrfs_block_group_done(cache)) - btrfs_cache_block_group(cache, 1); + btrfs_cache_block_group(cache, true); byte_in_group = bytenr - cache->start; WARN_ON(byte_in_group > cache->length); @@ -3761,6 +3769,7 @@ * attempt. */ wait_for_alloc = true; + force = CHUNK_ALLOC_NO_FORCE; spin_unlock(&space_info->lock); mutex_lock(&fs_info->chunk_mutex); mutex_unlock(&fs_info->chunk_mutex); @@ -3884,6 +3893,14 @@ ret = PTR_ERR(bg); } else { /* + * We have a new chunk. We also need to activate it for + * zoned filesystem. + */ + ret = btrfs_zoned_activate_one_bg(fs_info, info, true); + if (ret < 0) + return; + + /* * If we fail to add the chunk item here, we end up * trying again at phase 2 of chunk allocation, at * btrfs_create_pending_block_groups(). So ignore --- linux-5.19.0.orig/fs/btrfs/block-group.h +++ linux-5.19.0/fs/btrfs/block-group.h @@ -263,9 +263,7 @@ void btrfs_wait_nocow_writers(struct btrfs_block_group *bg); void btrfs_wait_block_group_cache_progress(struct btrfs_block_group *cache, u64 num_bytes); -int btrfs_wait_block_group_cache_done(struct btrfs_block_group *cache); -int btrfs_cache_block_group(struct btrfs_block_group *cache, - int load_cache_only); +int btrfs_cache_block_group(struct btrfs_block_group *cache, bool wait); void btrfs_put_caching_control(struct btrfs_caching_control *ctl); struct btrfs_caching_control *btrfs_get_caching_control( struct btrfs_block_group *cache); --- linux-5.19.0.orig/fs/btrfs/ctree.c +++ linux-5.19.0/fs/btrfs/ctree.c @@ -2075,6 +2075,9 @@ if (!p->skip_locking) { level = btrfs_header_level(b); + + btrfs_maybe_reset_lockdep_class(root, b); + if (level <= write_lock_level) { btrfs_tree_lock(b); p->locks[level] = BTRFS_WRITE_LOCK; --- linux-5.19.0.orig/fs/btrfs/ctree.h +++ linux-5.19.0/fs/btrfs/ctree.h @@ -107,14 +107,6 @@ #define BTRFS_STAT_CURR 0 #define BTRFS_STAT_PREV 1 -/* - * Count how many BTRFS_MAX_EXTENT_SIZE cover the @size - */ -static inline u32 count_max_extents(u64 size) -{ - return div_u64(size + BTRFS_MAX_EXTENT_SIZE - 1, BTRFS_MAX_EXTENT_SIZE); -} - static inline unsigned long btrfs_chunk_item_size(int num_stripes) { BUG_ON(num_stripes == 0); @@ -502,7 +494,6 @@ enum btrfs_caching_type { BTRFS_CACHE_NO, BTRFS_CACHE_STARTED, - BTRFS_CACHE_FAST, BTRFS_CACHE_FINISHED, BTRFS_CACHE_ERROR, }; @@ -635,6 +626,9 @@ /* Indicate we have half completed snapshot deletions pending. */ BTRFS_FS_UNFINISHED_DROPS, + /* Indicate we have to finish a zone to do next allocation. */ + BTRFS_FS_NEED_ZONE_FINISH, + #if BITS_PER_LONG == 32 /* Indicate if we have error/warn message printed on 32bit systems */ BTRFS_FS_32BIT_ERROR, @@ -1032,6 +1026,12 @@ u32 csums_per_leaf; u32 stripesize; + /* + * Maximum size of an extent. BTRFS_MAX_EXTENT_SIZE on regular + * filesystem, on zoned it depends on the device constraints. + */ + u64 max_extent_size; + /* Block groups and devices containing active swapfiles. */ spinlock_t swapfile_pins_lock; struct rb_root swapfile_pins; @@ -1047,6 +1047,8 @@ */ u64 zone_size; + /* Max size to emit ZONE_APPEND write command */ + u64 max_zone_append_size; struct mutex zoned_meta_io_lock; spinlock_t treelog_bg_lock; u64 treelog_bg; @@ -1142,6 +1144,8 @@ BTRFS_ROOT_ORPHAN_CLEANUP, /* This root has a drop operation that was started previously. */ BTRFS_ROOT_UNFINISHED_DROP, + /* This reloc root needs to have its buffers lockdep class reset. */ + BTRFS_ROOT_RESET_LOCKDEP_CLASS, }; static inline void btrfs_wake_unfinished_drop(struct btrfs_fs_info *fs_info) @@ -3358,7 +3362,10 @@ ssize_t btrfs_do_encoded_write(struct kiocb *iocb, struct iov_iter *from, const struct btrfs_ioctl_encoded_io_args *encoded); -ssize_t btrfs_dio_rw(struct kiocb *iocb, struct iov_iter *iter, size_t done_before); +ssize_t btrfs_dio_read(struct kiocb *iocb, struct iov_iter *iter, + size_t done_before); +struct iomap_dio *btrfs_dio_write(struct kiocb *iocb, struct iov_iter *iter, + size_t done_before); extern const struct dentry_operations btrfs_dentry_operations; @@ -4009,6 +4016,19 @@ return fs_info->zone_size > 0; } +/* + * Count how many fs_info->max_extent_size cover the @size + */ +static inline u32 count_max_extents(struct btrfs_fs_info *fs_info, u64 size) +{ +#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS + if (!fs_info) + return div_u64(size + BTRFS_MAX_EXTENT_SIZE - 1, BTRFS_MAX_EXTENT_SIZE); +#endif + + return div_u64(size + fs_info->max_extent_size - 1, fs_info->max_extent_size); +} + static inline bool btrfs_is_data_reloc_root(const struct btrfs_root *root) { return root->root_key.objectid == BTRFS_DATA_RELOC_TREE_OBJECTID; --- linux-5.19.0.orig/fs/btrfs/delalloc-space.c +++ linux-5.19.0/fs/btrfs/delalloc-space.c @@ -273,7 +273,7 @@ u64 num_bytes, u64 disk_num_bytes, u64 *meta_reserve, u64 *qgroup_reserve) { - u64 nr_extents = count_max_extents(num_bytes); + u64 nr_extents = count_max_extents(fs_info, num_bytes); u64 csum_leaves = btrfs_csum_bytes_to_leaves(fs_info, disk_num_bytes); u64 inode_update = btrfs_calc_metadata_size(fs_info, 1); @@ -350,7 +350,7 @@ * needs to free the reservation we just made. */ spin_lock(&inode->lock); - nr_extents = count_max_extents(num_bytes); + nr_extents = count_max_extents(fs_info, num_bytes); btrfs_mod_outstanding_extents(inode, nr_extents); inode->csum_bytes += disk_num_bytes; btrfs_calculate_inode_block_rsv_size(fs_info, inode); @@ -413,7 +413,7 @@ unsigned num_extents; spin_lock(&inode->lock); - num_extents = count_max_extents(num_bytes); + num_extents = count_max_extents(fs_info, num_bytes); btrfs_mod_outstanding_extents(inode, -num_extents); btrfs_calculate_inode_block_rsv_size(fs_info, inode); spin_unlock(&inode->lock); --- linux-5.19.0.orig/fs/btrfs/dev-replace.c +++ linux-5.19.0/fs/btrfs/dev-replace.c @@ -165,7 +165,7 @@ */ if (btrfs_find_device(fs_info->fs_devices, &args)) { btrfs_err(fs_info, - "replace devid present without an active replace item"); +"replace without active item, run 'device scan --forget' on the target device"); ret = -EUCLEAN; } else { dev_replace->srcdev = NULL; @@ -1128,8 +1128,7 @@ up_write(&dev_replace->rwsem); /* Scrub for replace must not be running in suspended state */ - ret = btrfs_scrub_cancel(fs_info); - ASSERT(ret != -ENOTCONN); + btrfs_scrub_cancel(fs_info); trans = btrfs_start_transaction(root, 0); if (IS_ERR(trans)) { --- linux-5.19.0.orig/fs/btrfs/disk-io.c +++ linux-5.19.0/fs/btrfs/disk-io.c @@ -122,88 +122,6 @@ }; /* - * Lockdep class keys for extent_buffer->lock's in this root. For a given - * eb, the lockdep key is determined by the btrfs_root it belongs to and - * the level the eb occupies in the tree. - * - * Different roots are used for different purposes and may nest inside each - * other and they require separate keysets. As lockdep keys should be - * static, assign keysets according to the purpose of the root as indicated - * by btrfs_root->root_key.objectid. This ensures that all special purpose - * roots have separate keysets. - * - * Lock-nesting across peer nodes is always done with the immediate parent - * node locked thus preventing deadlock. As lockdep doesn't know this, use - * subclass to avoid triggering lockdep warning in such cases. - * - * The key is set by the readpage_end_io_hook after the buffer has passed - * csum validation but before the pages are unlocked. It is also set by - * btrfs_init_new_buffer on freshly allocated blocks. - * - * We also add a check to make sure the highest level of the tree is the - * same as our lockdep setup here. If BTRFS_MAX_LEVEL changes, this code - * needs update as well. - */ -#ifdef CONFIG_DEBUG_LOCK_ALLOC -# if BTRFS_MAX_LEVEL != 8 -# error -# endif - -#define DEFINE_LEVEL(stem, level) \ - .names[level] = "btrfs-" stem "-0" #level, - -#define DEFINE_NAME(stem) \ - DEFINE_LEVEL(stem, 0) \ - DEFINE_LEVEL(stem, 1) \ - DEFINE_LEVEL(stem, 2) \ - DEFINE_LEVEL(stem, 3) \ - DEFINE_LEVEL(stem, 4) \ - DEFINE_LEVEL(stem, 5) \ - DEFINE_LEVEL(stem, 6) \ - DEFINE_LEVEL(stem, 7) - -static struct btrfs_lockdep_keyset { - u64 id; /* root objectid */ - /* Longest entry: btrfs-free-space-00 */ - char names[BTRFS_MAX_LEVEL][20]; - struct lock_class_key keys[BTRFS_MAX_LEVEL]; -} btrfs_lockdep_keysets[] = { - { .id = BTRFS_ROOT_TREE_OBJECTID, DEFINE_NAME("root") }, - { .id = BTRFS_EXTENT_TREE_OBJECTID, DEFINE_NAME("extent") }, - { .id = BTRFS_CHUNK_TREE_OBJECTID, DEFINE_NAME("chunk") }, - { .id = BTRFS_DEV_TREE_OBJECTID, DEFINE_NAME("dev") }, - { .id = BTRFS_CSUM_TREE_OBJECTID, DEFINE_NAME("csum") }, - { .id = BTRFS_QUOTA_TREE_OBJECTID, DEFINE_NAME("quota") }, - { .id = BTRFS_TREE_LOG_OBJECTID, DEFINE_NAME("log") }, - { .id = BTRFS_TREE_RELOC_OBJECTID, DEFINE_NAME("treloc") }, - { .id = BTRFS_DATA_RELOC_TREE_OBJECTID, DEFINE_NAME("dreloc") }, - { .id = BTRFS_UUID_TREE_OBJECTID, DEFINE_NAME("uuid") }, - { .id = BTRFS_FREE_SPACE_TREE_OBJECTID, DEFINE_NAME("free-space") }, - { .id = 0, DEFINE_NAME("tree") }, -}; - -#undef DEFINE_LEVEL -#undef DEFINE_NAME - -void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, - int level) -{ - struct btrfs_lockdep_keyset *ks; - - BUG_ON(level >= ARRAY_SIZE(ks->keys)); - - /* find the matching keyset, id 0 is the default entry */ - for (ks = btrfs_lockdep_keysets; ks->id; ks++) - if (ks->id == objectid) - break; - - lockdep_set_class_and_name(&eb->lock, - &ks->keys[level], ks->names[level]); -} - -#endif - -/* * Compute the csum of a btree block and store the result to provided buffer. */ static void csum_tree_block(struct extent_buffer *buf, u8 *result) @@ -2731,7 +2649,9 @@ fs_info->dev_root = root; } /* Initialize fs_info for all devices in any case */ - btrfs_init_devices_late(fs_info); + ret = btrfs_init_devices_late(fs_info); + if (ret) + goto out; /* * This tree can share blocks with some other fs tree during relocation @@ -3262,6 +3182,8 @@ fs_info->sectorsize_bits = ilog2(4096); fs_info->stripesize = 4096; + fs_info->max_extent_size = BTRFS_MAX_EXTENT_SIZE; + spin_lock_init(&fs_info->swapfile_pins_lock); fs_info->swapfile_pins = RB_ROOT; @@ -3593,16 +3515,6 @@ */ fs_info->compress_type = BTRFS_COMPRESS_ZLIB; - /* - * Flag our filesystem as having big metadata blocks if they are bigger - * than the page size. - */ - if (btrfs_super_nodesize(disk_super) > PAGE_SIZE) { - if (!(features & BTRFS_FEATURE_INCOMPAT_BIG_METADATA)) - btrfs_info(fs_info, - "flagging fs with big metadata feature"); - features |= BTRFS_FEATURE_INCOMPAT_BIG_METADATA; - } /* Set up fs_info before parsing mount options */ nodesize = btrfs_super_nodesize(disk_super); @@ -3644,6 +3556,17 @@ btrfs_info(fs_info, "has skinny extents"); /* + * Flag our filesystem as having big metadata blocks if they are bigger + * than the page size. + */ + if (btrfs_super_nodesize(disk_super) > PAGE_SIZE) { + if (!(features & BTRFS_FEATURE_INCOMPAT_BIG_METADATA)) + btrfs_info(fs_info, + "flagging fs with big metadata feature"); + features |= BTRFS_FEATURE_INCOMPAT_BIG_METADATA; + } + + /* * mixed block groups end up with duplicate but slightly offset * extent buffers for the same range. It leads to corruptions */ @@ -3670,6 +3593,20 @@ err = -EINVAL; goto fail_alloc; } + /* + * We have unsupported RO compat features, although RO mounted, we + * should not cause any metadata write, including log replay. + * Or we could screw up whatever the new feature requires. + */ + if (unlikely(features && btrfs_super_log_root(disk_super) && + !btrfs_test_opt(fs_info, NOLOGREPLAY))) { + btrfs_err(fs_info, +"cannot replay dirty log with unsupported compat_ro features (0x%llx), try rescue=nologreplay", + features); + err = -EINVAL; + goto fail_alloc; + } + if (sectorsize < PAGE_SIZE) { struct btrfs_subpage_info *subpage_info; @@ -4652,6 +4589,17 @@ set_bit(BTRFS_FS_CLOSING_START, &fs_info->flags); /* + * If we had UNFINISHED_DROPS we could still be processing them, so + * clear that bit and wake up relocation so it can stop. + * We must do this before stopping the block group reclaim task, because + * at btrfs_relocate_block_group() we wait for this bit, and after the + * wait we stop with -EINTR if btrfs_fs_closing() returns non-zero - we + * have just set BTRFS_FS_CLOSING_START, so btrfs_fs_closing() will + * return 1. + */ + btrfs_wake_unfinished_drop(fs_info); + + /* * We may have the reclaim task running and relocating a data block group, * in which case it may create delayed iputs. So stop it before we park * the cleaner kthread otherwise we can get new delayed iputs after @@ -4669,12 +4617,6 @@ */ kthread_park(fs_info->cleaner_kthread); - /* - * If we had UNFINISHED_DROPS we could still be processing them, so - * clear that bit and wake up relocation so it can stop. - */ - btrfs_wake_unfinished_drop(fs_info); - /* wait for the qgroup rescan worker to stop */ btrfs_qgroup_wait_for_completion(fs_info, false); @@ -4697,6 +4639,31 @@ /* clear out the rbtree of defraggable inodes */ btrfs_cleanup_defrag_inodes(fs_info); + /* + * After we parked the cleaner kthread, ordered extents may have + * completed and created new delayed iputs. If one of the async reclaim + * tasks is running and in the RUN_DELAYED_IPUTS flush state, then we + * can hang forever trying to stop it, because if a delayed iput is + * added after it ran btrfs_run_delayed_iputs() and before it called + * btrfs_wait_on_delayed_iputs(), it will hang forever since there is + * no one else to run iputs. + * + * So wait for all ongoing ordered extents to complete and then run + * delayed iputs. This works because once we reach this point no one + * can either create new ordered extents nor create delayed iputs + * through some other means. + * + * Also note that btrfs_wait_ordered_roots() is not safe here, because + * it waits for BTRFS_ORDERED_COMPLETE to be set on an ordered extent, + * but the delayed iput for the respective inode is made only when doing + * the final btrfs_put_ordered_extent() (which must happen at + * btrfs_finish_ordered_io() when we are unmounting). + */ + btrfs_flush_workqueue(fs_info->endio_write_workers); + /* Ordered extents for free space inodes. */ + btrfs_flush_workqueue(fs_info->endio_freespace_worker); + btrfs_run_delayed_iputs(fs_info); + cancel_work_sync(&fs_info->async_reclaim_work); cancel_work_sync(&fs_info->async_data_reclaim_work); cancel_work_sync(&fs_info->preempt_reclaim_work); --- linux-5.19.0.orig/fs/btrfs/disk-io.h +++ linux-5.19.0/fs/btrfs/disk-io.h @@ -148,14 +148,4 @@ int __init btrfs_end_io_wq_init(void); void __cold btrfs_end_io_wq_exit(void); -#ifdef CONFIG_DEBUG_LOCK_ALLOC -void btrfs_set_buffer_lockdep_class(u64 objectid, - struct extent_buffer *eb, int level); -#else -static inline void btrfs_set_buffer_lockdep_class(u64 objectid, - struct extent_buffer *eb, int level) -{ -} -#endif - #endif --- linux-5.19.0.orig/fs/btrfs/export.c +++ linux-5.19.0/fs/btrfs/export.c @@ -58,7 +58,7 @@ } struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid, - u64 root_objectid, u32 generation, + u64 root_objectid, u64 generation, int check_generation) { struct btrfs_fs_info *fs_info = btrfs_sb(sb); --- linux-5.19.0.orig/fs/btrfs/export.h +++ linux-5.19.0/fs/btrfs/export.h @@ -19,7 +19,7 @@ } __attribute__ ((packed)); struct dentry *btrfs_get_dentry(struct super_block *sb, u64 objectid, - u64 root_objectid, u32 generation, + u64 root_objectid, u64 generation, int check_generation); struct dentry *btrfs_get_parent(struct dentry *child); --- linux-5.19.0.orig/fs/btrfs/extent-tree.c +++ linux-5.19.0/fs/btrfs/extent-tree.c @@ -2567,17 +2567,10 @@ return -EINVAL; /* - * pull in the free space cache (if any) so that our pin - * removes the free space from the cache. We have load_only set - * to one because the slow code to read in the free extents does check - * the pinned extents. + * Fully cache the free space first so that our pin removes the free space + * from the cache. */ - btrfs_cache_block_group(cache, 1); - /* - * Make sure we wait until the cache is completely built in case it is - * missing or is invalid and therefore needs to be rebuilt. - */ - ret = btrfs_wait_block_group_cache_done(cache); + ret = btrfs_cache_block_group(cache, true); if (ret) goto out; @@ -2600,12 +2593,7 @@ if (!block_group) return -EINVAL; - btrfs_cache_block_group(block_group, 1); - /* - * Make sure we wait until the cache is completely built in case it is - * missing or is invalid and therefore needs to be rebuilt. - */ - ret = btrfs_wait_block_group_cache_done(block_group); + ret = btrfs_cache_block_group(block_group, true); if (ret) goto out; @@ -3322,21 +3310,22 @@ } /* - * If this is a leaf and there are tree mod log users, we may - * have recorded mod log operations that point to this leaf. - * So we must make sure no one reuses this leaf's extent before - * mod log operations are applied to a node, otherwise after - * rewinding a node using the mod log operations we get an - * inconsistent btree, as the leaf's extent may now be used as - * a node or leaf for another different btree. + * If there are tree mod log users we may have recorded mod log + * operations for this node. If we re-allocate this node we + * could replay operations on this node that happened when it + * existed in a completely different root. For example if it + * was part of root A, then was reallocated to root B, and we + * are doing a btrfs_old_search_slot(root b), we could replay + * operations that happened when the block was part of root A, + * giving us an inconsistent view of the btree. + * * We are safe from races here because at this point no other * node or root points to this extent buffer, so if after this - * check a new tree mod log user joins, it will not be able to - * find a node pointing to this leaf and record operations that - * point to this leaf. + * check a new tree mod log user joins we will not have an + * existing log of operations on this node that we have to + * contend with. */ - if (btrfs_header_level(buf) == 0 && - test_bit(BTRFS_FS_TREE_MOD_LOG_USERS, &fs_info->flags)) + if (test_bit(BTRFS_FS_TREE_MOD_LOG_USERS, &fs_info->flags)) must_pin = true; if (must_pin || btrfs_is_zoned(fs_info)) { @@ -3981,23 +3970,63 @@ } } -static bool can_allocate_chunk(struct btrfs_fs_info *fs_info, - struct find_free_extent_ctl *ffe_ctl) +static int can_allocate_chunk_zoned(struct btrfs_fs_info *fs_info, + struct find_free_extent_ctl *ffe_ctl) +{ + /* If we can activate new zone, just allocate a chunk and use it */ + if (btrfs_can_activate_zone(fs_info->fs_devices, ffe_ctl->flags)) + return 0; + + /* + * We already reached the max active zones. Try to finish one block + * group to make a room for a new block group. This is only possible + * for a data block group because btrfs_zone_finish() may need to wait + * for a running transaction which can cause a deadlock for metadata + * allocation. + */ + if (ffe_ctl->flags & BTRFS_BLOCK_GROUP_DATA) { + int ret = btrfs_zone_finish_one_bg(fs_info); + + if (ret == 1) + return 0; + else if (ret < 0) + return ret; + } + + /* + * If we have enough free space left in an already active block group + * and we can't activate any other zone now, do not allow allocating a + * new chunk and let find_free_extent() retry with a smaller size. + */ + if (ffe_ctl->max_extent_size >= ffe_ctl->min_alloc_size) + return -ENOSPC; + + /* + * Even min_alloc_size is not left in any block groups. Since we cannot + * activate a new block group, allocating it may not help. Let's tell a + * caller to try again and hope it progress something by writing some + * parts of the region. That is only possible for data block groups, + * where a part of the region can be written. + */ + if (ffe_ctl->flags & BTRFS_BLOCK_GROUP_DATA) + return -EAGAIN; + + /* + * We cannot activate a new block group and no enough space left in any + * block groups. So, allocating a new block group may not help. But, + * there is nothing to do anyway, so let's go with it. + */ + return 0; +} + +static int can_allocate_chunk(struct btrfs_fs_info *fs_info, + struct find_free_extent_ctl *ffe_ctl) { switch (ffe_ctl->policy) { case BTRFS_EXTENT_ALLOC_CLUSTERED: - return true; + return 0; case BTRFS_EXTENT_ALLOC_ZONED: - /* - * If we have enough free space left in an already - * active block group and we can't activate any other - * zone now, do not allow allocating a new chunk and - * let find_free_extent() retry with a smaller size. - */ - if (ffe_ctl->max_extent_size >= ffe_ctl->min_alloc_size && - !btrfs_can_activate_zone(fs_info->fs_devices, ffe_ctl->flags)) - return false; - return true; + return can_allocate_chunk_zoned(fs_info, ffe_ctl); default: BUG(); } @@ -4079,8 +4108,9 @@ int exist = 0; /*Check if allocation policy allows to create a new chunk */ - if (!can_allocate_chunk(fs_info, ffe_ctl)) - return -ENOSPC; + ret = can_allocate_chunk(fs_info, ffe_ctl); + if (ret) + return ret; trans = current->journal_info; if (trans) @@ -4374,7 +4404,7 @@ ffe_ctl->cached = btrfs_block_group_done(block_group); if (unlikely(!ffe_ctl->cached)) { ffe_ctl->have_caching_bg = true; - ret = btrfs_cache_block_group(block_group, 0); + ret = btrfs_cache_block_group(block_group, false); /* * If we get ENOMEM here or something else we want to @@ -4842,6 +4872,7 @@ { struct btrfs_fs_info *fs_info = root->fs_info; struct extent_buffer *buf; + u64 lockdep_owner = owner; buf = btrfs_find_create_tree_block(fs_info, bytenr, owner, level); if (IS_ERR(buf)) @@ -4861,11 +4892,29 @@ } /* + * The reloc trees are just snapshots, so we need them to appear to be + * just like any other fs tree WRT lockdep. + * + * The exception however is in replace_path() in relocation, where we + * hold the lock on the original fs root and then search for the reloc + * root. At that point we need to make sure any reloc root buffers are + * set to the BTRFS_TREE_RELOC_OBJECTID lockdep class in order to make + * lockdep happy. + */ + if (lockdep_owner == BTRFS_TREE_RELOC_OBJECTID && + !test_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &root->state)) + lockdep_owner = BTRFS_FS_TREE_OBJECTID; + + /* btrfs_clean_tree_block() accesses generation field. */ + btrfs_set_header_generation(buf, trans->transid); + + /* * This needs to stay, because we could allocate a freed block from an * old tree into a new tree, so we need to make sure this new block is * set to the appropriate level and owner. */ - btrfs_set_buffer_lockdep_class(owner, buf, level); + btrfs_set_buffer_lockdep_class(lockdep_owner, buf, level); + __btrfs_tree_lock(buf, nest); btrfs_clean_tree_block(buf); clear_bit(EXTENT_BUFFER_STALE, &buf->bflags); @@ -6128,13 +6177,7 @@ if (end - start >= range->minlen) { if (!btrfs_block_group_done(cache)) { - ret = btrfs_cache_block_group(cache, 0); - if (ret) { - bg_failed++; - bg_ret = ret; - continue; - } - ret = btrfs_wait_block_group_cache_done(cache); + ret = btrfs_cache_block_group(cache, true); if (ret) { bg_failed++; bg_ret = ret; --- linux-5.19.0.orig/fs/btrfs/extent_io.c +++ linux-5.19.0/fs/btrfs/extent_io.c @@ -2007,10 +2007,12 @@ struct page *locked_page, u64 *start, u64 *end) { + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); struct extent_io_tree *tree = &BTRFS_I(inode)->io_tree; const u64 orig_start = *start; const u64 orig_end = *end; - u64 max_bytes = BTRFS_MAX_EXTENT_SIZE; + /* The sanity tests may not set a valid fs_info. */ + u64 max_bytes = fs_info ? fs_info->max_extent_size : BTRFS_MAX_EXTENT_SIZE; u64 delalloc_start; u64 delalloc_end; bool found; @@ -6226,6 +6228,7 @@ struct extent_buffer *exists = NULL; struct page *p; struct address_space *mapping = fs_info->btree_inode->i_mapping; + u64 lockdep_owner = owner_root; int uptodate = 1; int ret; @@ -6250,7 +6253,15 @@ eb = __alloc_extent_buffer(fs_info, start, len); if (!eb) return ERR_PTR(-ENOMEM); - btrfs_set_buffer_lockdep_class(owner_root, eb, level); + + /* + * The reloc trees are just snapshots, so we need them to appear to be + * just like any other fs tree WRT lockdep. + */ + if (lockdep_owner == BTRFS_TREE_RELOC_OBJECTID) + lockdep_owner = BTRFS_FS_TREE_OBJECTID; + + btrfs_set_buffer_lockdep_class(lockdep_owner, eb, level); num_pages = num_extent_pages(eb); for (i = 0; i < num_pages; i++, index++) { --- linux-5.19.0.orig/fs/btrfs/file.c +++ linux-5.19.0/fs/btrfs/file.c @@ -523,6 +523,7 @@ testend = 0; } while (1) { + bool ends_after_range = false; int no_splits = 0; modified = false; @@ -539,10 +540,12 @@ write_unlock(&em_tree->lock); break; } + if (testend && em->start + em->len > start + len) + ends_after_range = true; flags = em->flags; gen = em->generation; if (skip_pinned && test_bit(EXTENT_FLAG_PINNED, &em->flags)) { - if (testend && em->start + em->len >= start + len) { + if (ends_after_range) { free_extent_map(em); write_unlock(&em_tree->lock); break; @@ -592,7 +595,7 @@ split = split2; split2 = NULL; } - if (testend && em->start + em->len > start + len) { + if (ends_after_range) { u64 diff = start + len - em->start; split->start = start + len; @@ -630,14 +633,42 @@ } else { ret = add_extent_mapping(em_tree, split, modified); - ASSERT(ret == 0); /* Logic error */ + /* Logic error, shouldn't happen. */ + ASSERT(ret == 0); + if (WARN_ON(ret != 0) && modified) + btrfs_set_inode_full_sync(inode); } free_extent_map(split); split = NULL; } next: - if (extent_map_in_tree(em)) + if (extent_map_in_tree(em)) { + /* + * If the extent map is still in the tree it means that + * either of the following is true: + * + * 1) It fits entirely in our range (doesn't end beyond + * it or starts before it); + * + * 2) It starts before our range and/or ends after our + * range, and we were not able to allocate the extent + * maps for split operations, @split and @split2. + * + * If we are at case 2) then we just remove the entire + * extent map - this is fine since if anyone needs it to + * access the subranges outside our range, will just + * load it again from the subvolume tree's file extent + * item. However if the extent map was in the list of + * modified extents, then we must mark the inode for a + * full fsync, otherwise a fast fsync will miss this + * extent if it's new and needs to be logged. + */ + if ((em->start < start || ends_after_range) && modified) { + ASSERT(no_splits); + btrfs_set_inode_full_sync(inode); + } remove_extent_mapping(em_tree, em); + } write_unlock(&em_tree->lock); /* once for us */ @@ -849,7 +880,10 @@ args->start - extent_offset, 0, false); ret = btrfs_inc_extent_ref(trans, &ref); - BUG_ON(ret); /* -ENOMEM */ + if (ret) { + btrfs_abort_transaction(trans, ret); + break; + } } key.offset = args->start; } @@ -936,7 +970,10 @@ key.offset - extent_offset, 0, false); ret = btrfs_free_extent(trans, &ref); - BUG_ON(ret); /* -ENOMEM */ + if (ret) { + btrfs_abort_transaction(trans, ret); + break; + } args->bytes_found += extent_end - key.offset; } @@ -1859,6 +1896,7 @@ loff_t endbyte; ssize_t err; unsigned int ilock_flags = 0; + struct iomap_dio *dio; if (iocb->ki_flags & IOCB_NOWAIT) ilock_flags |= BTRFS_ILOCK_TRY; @@ -1928,11 +1966,22 @@ * So here we disable page faults in the iov_iter and then retry if we * got -EFAULT, faulting in the pages before the retry. */ -again: from->nofault = true; - err = btrfs_dio_rw(iocb, from, written); + dio = btrfs_dio_write(iocb, from, written); from->nofault = false; + /* + * iomap_dio_complete() will call btrfs_sync_file() if we have a dsync + * iocb, and that needs to lock the inode. So unlock it before calling + * iomap_dio_complete() to avoid a deadlock. + */ + btrfs_inode_unlock(inode, ilock_flags); + + if (IS_ERR_OR_NULL(dio)) + err = PTR_ERR_OR_ZERO(dio); + else + err = iomap_dio_complete(dio); + /* No increment (+=) because iomap returns a cumulative value. */ if (err > 0) written = err; @@ -1958,12 +2007,10 @@ } else { fault_in_iov_iter_readable(from, left); prev_left = left; - goto again; + goto relock; } } - btrfs_inode_unlock(inode, ilock_flags); - /* * Add back IOCB_DSYNC. Our caller, btrfs_file_write_iter(), will do * the fsync (call generic_write_sync()). @@ -2202,14 +2249,6 @@ atomic_inc(&root->log_batch); /* - * Always check for the full sync flag while holding the inode's lock, - * to avoid races with other tasks. The flag must be either set all the - * time during logging or always off all the time while logging. - */ - full_sync = test_bit(BTRFS_INODE_NEEDS_FULL_SYNC, - &BTRFS_I(inode)->runtime_flags); - - /* * Before we acquired the inode's lock and the mmap lock, someone may * have dirtied more pages in the target range. We need to make sure * that writeback for any such pages does not start while we are logging @@ -2234,6 +2273,17 @@ } /* + * Always check for the full sync flag while holding the inode's lock, + * to avoid races with other tasks. The flag must be either set all the + * time during logging or always off all the time while logging. + * We check the flag here after starting delalloc above, because when + * running delalloc the full sync flag may be set if we need to drop + * extra extent map ranges due to temporary memory allocation failures. + */ + full_sync = test_bit(BTRFS_INODE_NEEDS_FULL_SYNC, + &BTRFS_I(inode)->runtime_flags); + + /* * We have to do this here to avoid the priority inversion of waiting on * IO of a lower priority task while holding a transaction open. * @@ -2308,7 +2358,7 @@ btrfs_release_log_ctx_extents(&ctx); if (ret < 0) { /* Fallthrough and commit/free transaction. */ - ret = 1; + ret = BTRFS_LOG_FORCE_COMMIT; } /* we've logged all the items and now have a consistent @@ -2483,6 +2533,7 @@ btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_offset(leaf, fi, 0); + btrfs_set_file_extent_generation(leaf, fi, trans->transid); btrfs_mark_buffer_dirty(leaf); goto out; } @@ -2499,6 +2550,7 @@ btrfs_set_file_extent_num_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_ram_bytes(leaf, fi, num_bytes); btrfs_set_file_extent_offset(leaf, fi, 0); + btrfs_set_file_extent_generation(leaf, fi, trans->transid); btrfs_mark_buffer_dirty(leaf); goto out; } @@ -3751,7 +3803,7 @@ */ pagefault_disable(); to->nofault = true; - ret = btrfs_dio_rw(iocb, to, read); + ret = btrfs_dio_read(iocb, to, read); to->nofault = false; pagefault_enable(); @@ -3808,6 +3860,7 @@ .mmap = btrfs_file_mmap, .open = btrfs_file_open, .release = btrfs_release_file, + .get_unmapped_area = thp_get_unmapped_area, .fsync = btrfs_sync_file, .fallocate = btrfs_fallocate, .unlocked_ioctl = btrfs_ioctl, --- linux-5.19.0.orig/fs/btrfs/free-space-cache.c +++ linux-5.19.0/fs/btrfs/free-space-cache.c @@ -693,6 +693,12 @@ max_bitmaps = max_t(u64, max_bitmaps, 1); + if (ctl->total_bitmaps > max_bitmaps) + btrfs_err(block_group->fs_info, +"invalid free space control: bg start=%llu len=%llu total_bitmaps=%u unit=%u max_bitmaps=%llu bytes_per_bg=%llu", + block_group->start, block_group->length, + ctl->total_bitmaps, ctl->unit, max_bitmaps, + bytes_per_bg); ASSERT(ctl->total_bitmaps <= max_bitmaps); /* --- linux-5.19.0.orig/fs/btrfs/inode.c +++ linux-5.19.0/fs/btrfs/inode.c @@ -118,7 +118,8 @@ static noinline int cow_file_range(struct btrfs_inode *inode, struct page *locked_page, u64 start, u64 end, int *page_started, - unsigned long *nr_written, int unlock); + unsigned long *nr_written, int unlock, + u64 *done_offset); static struct extent_map *create_io_em(struct btrfs_inode *inode, u64 start, u64 len, u64 orig_start, u64 block_start, u64 block_len, u64 orig_block_len, @@ -920,15 +921,25 @@ * can directly submit them without interruption. */ ret = cow_file_range(inode, locked_page, start, end, &page_started, - &nr_written, 0); + &nr_written, 0, NULL); /* Inline extent inserted, page gets unlocked and everything is done */ if (page_started) { ret = 0; goto out; } if (ret < 0) { - if (locked_page) + btrfs_cleanup_ordered_extents(inode, locked_page, start, end - start + 1); + if (locked_page) { + const u64 page_start = page_offset(locked_page); + const u64 page_end = page_start + PAGE_SIZE - 1; + + btrfs_page_set_error(inode->root->fs_info, locked_page, + page_start, PAGE_SIZE); + set_page_writeback(locked_page); + end_page_writeback(locked_page); + end_extent_writepage(locked_page, ret, page_start, page_end); unlock_page(locked_page); + } goto out; } @@ -1133,15 +1144,39 @@ * *page_started is set to one if we unlock locked_page and do everything * required to start IO on it. It may be clean and already done with * IO when we return. + * + * When unlock == 1, we unlock the pages in successfully allocated regions. + * When unlock == 0, we leave them locked for writing them out. + * + * However, we unlock all the pages except @locked_page in case of failure. + * + * In summary, page locking state will be as follow: + * + * - page_started == 1 (return value) + * - All the pages are unlocked. IO is started. + * - Note that this can happen only on success + * - unlock == 1 + * - All the pages except @locked_page are unlocked in any case + * - unlock == 0 + * - On success, all the pages are locked for writing out them + * - On failure, all the pages except @locked_page are unlocked + * + * When a failure happens in the second or later iteration of the + * while-loop, the ordered extents created in previous iterations are kept + * intact. So, the caller must clean them up by calling + * btrfs_cleanup_ordered_extents(). See btrfs_run_delalloc_range() for + * example. */ static noinline int cow_file_range(struct btrfs_inode *inode, struct page *locked_page, u64 start, u64 end, int *page_started, - unsigned long *nr_written, int unlock) + unsigned long *nr_written, int unlock, + u64 *done_offset) { struct btrfs_root *root = inode->root; struct btrfs_fs_info *fs_info = root->fs_info; u64 alloc_hint = 0; + u64 orig_start = start; u64 num_bytes; unsigned long ram_size; u64 cur_alloc_size = 0; @@ -1329,18 +1364,62 @@ btrfs_dec_block_group_reservations(fs_info, ins.objectid); btrfs_free_reserved_extent(fs_info, ins.objectid, ins.offset, 1); out_unlock: + /* + * If done_offset is non-NULL and ret == -EAGAIN, we expect the + * caller to write out the successfully allocated region and retry. + */ + if (done_offset && ret == -EAGAIN) { + if (orig_start < start) + *done_offset = start - 1; + else + *done_offset = start; + return ret; + } else if (ret == -EAGAIN) { + /* Convert to -ENOSPC since the caller cannot retry. */ + ret = -ENOSPC; + } + + /* + * Now, we have three regions to clean up: + * + * |-------(1)----|---(2)---|-------------(3)----------| + * `- orig_start `- start `- start + cur_alloc_size `- end + * + * We process each region below. + */ + clear_bits = EXTENT_LOCKED | EXTENT_DELALLOC | EXTENT_DELALLOC_NEW | EXTENT_DEFRAG | EXTENT_CLEAR_META_RESV; page_ops = PAGE_UNLOCK | PAGE_START_WRITEBACK | PAGE_END_WRITEBACK; + + /* + * For the range (1). We have already instantiated the ordered extents + * for this region. They are cleaned up by + * btrfs_cleanup_ordered_extents() in e.g, + * btrfs_run_delalloc_range(). EXTENT_LOCKED | EXTENT_DELALLOC are + * already cleared in the above loop. And, EXTENT_DELALLOC_NEW | + * EXTENT_DEFRAG | EXTENT_CLEAR_META_RESV are handled by the cleanup + * function. + * + * However, in case of unlock == 0, we still need to unlock the pages + * (except @locked_page) to ensure all the pages are unlocked. + */ + if (!unlock && orig_start < start) { + if (!locked_page) + mapping_set_error(inode->vfs_inode.i_mapping, ret); + extent_clear_unlock_delalloc(inode, orig_start, start - 1, + locked_page, 0, page_ops); + } + /* - * If we reserved an extent for our delalloc range (or a subrange) and - * failed to create the respective ordered extent, then it means that - * when we reserved the extent we decremented the extent's size from - * the data space_info's bytes_may_use counter and incremented the - * space_info's bytes_reserved counter by the same amount. We must make - * sure extent_clear_unlock_delalloc() does not try to decrement again - * the data space_info's bytes_may_use counter, therefore we do not pass - * it the flag EXTENT_CLEAR_DATA_RESV. + * For the range (2). If we reserved an extent for our delalloc range + * (or a subrange) and failed to create the respective ordered extent, + * then it means that when we reserved the extent we decremented the + * extent's size from the data space_info's bytes_may_use counter and + * incremented the space_info's bytes_reserved counter by the same + * amount. We must make sure extent_clear_unlock_delalloc() does not try + * to decrement again the data space_info's bytes_may_use counter, + * therefore we do not pass it the flag EXTENT_CLEAR_DATA_RESV. */ if (extent_reserved) { extent_clear_unlock_delalloc(inode, start, @@ -1352,6 +1431,13 @@ if (start >= end) goto out; } + + /* + * For the range (3). We never touched the region. In addition to the + * clear_bits above, we add EXTENT_CLEAR_DATA_RESV to release the data + * space_info's bytes_may_use counter, reserved in + * btrfs_check_data_free_space(). + */ extent_clear_unlock_delalloc(inode, start, end, locked_page, clear_bits | EXTENT_CLEAR_DATA_RESV, page_ops); @@ -1538,19 +1624,41 @@ u64 end, int *page_started, unsigned long *nr_written) { + u64 done_offset = end; int ret; + bool locked_page_done = false; - ret = cow_file_range(inode, locked_page, start, end, page_started, - nr_written, 0); - if (ret) - return ret; + while (start <= end) { + ret = cow_file_range(inode, locked_page, start, end, page_started, + nr_written, 0, &done_offset); + if (ret && ret != -EAGAIN) + return ret; - if (*page_started) - return 0; + if (*page_started) { + ASSERT(ret == 0); + return 0; + } + + if (ret == 0) + done_offset = end; + + if (done_offset == start) { + wait_on_bit_io(&inode->root->fs_info->flags, + BTRFS_FS_NEED_ZONE_FINISH, + TASK_UNINTERRUPTIBLE); + continue; + } + + if (!locked_page_done) { + __set_page_dirty_nobuffers(locked_page); + account_page_redirty(locked_page); + } + locked_page_done = true; + extent_write_locked_range(&inode->vfs_inode, start, done_offset); + + start = done_offset + 1; + } - __set_page_dirty_nobuffers(locked_page); - account_page_redirty(locked_page); - extent_write_locked_range(&inode->vfs_inode, start, end); *page_started = 1; return 0; @@ -1642,7 +1750,7 @@ } return cow_file_range(inode, locked_page, start, end, page_started, - nr_written, 1); + nr_written, 1, NULL); } struct can_nocow_file_extent_args { @@ -2115,7 +2223,7 @@ page_started, nr_written); else ret = cow_file_range(inode, locked_page, start, end, - page_started, nr_written, 1); + page_started, nr_written, 1, NULL); } else { set_bit(BTRFS_INODE_HAS_ASYNC_EXTENT, &inode->runtime_flags); ret = cow_file_range_async(inode, wbc, locked_page, start, end, @@ -2131,6 +2239,7 @@ void btrfs_split_delalloc_extent(struct inode *inode, struct extent_state *orig, u64 split) { + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); u64 size; /* not delalloc, ignore it */ @@ -2138,7 +2247,7 @@ return; size = orig->end - orig->start + 1; - if (size > BTRFS_MAX_EXTENT_SIZE) { + if (size > fs_info->max_extent_size) { u32 num_extents; u64 new_size; @@ -2147,10 +2256,10 @@ * applies here, just in reverse. */ new_size = orig->end - split + 1; - num_extents = count_max_extents(new_size); + num_extents = count_max_extents(fs_info, new_size); new_size = split - orig->start; - num_extents += count_max_extents(new_size); - if (count_max_extents(size) >= num_extents) + num_extents += count_max_extents(fs_info, new_size); + if (count_max_extents(fs_info, size) >= num_extents) return; } @@ -2167,6 +2276,7 @@ void btrfs_merge_delalloc_extent(struct inode *inode, struct extent_state *new, struct extent_state *other) { + struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb); u64 new_size, old_size; u32 num_extents; @@ -2180,7 +2290,7 @@ new_size = other->end - new->start + 1; /* we're not bigger than the max, unreserve the space and go */ - if (new_size <= BTRFS_MAX_EXTENT_SIZE) { + if (new_size <= fs_info->max_extent_size) { spin_lock(&BTRFS_I(inode)->lock); btrfs_mod_outstanding_extents(BTRFS_I(inode), -1); spin_unlock(&BTRFS_I(inode)->lock); @@ -2206,10 +2316,10 @@ * this case. */ old_size = other->end - other->start + 1; - num_extents = count_max_extents(old_size); + num_extents = count_max_extents(fs_info, old_size); old_size = new->end - new->start + 1; - num_extents += count_max_extents(old_size); - if (count_max_extents(new_size) >= num_extents) + num_extents += count_max_extents(fs_info, old_size); + if (count_max_extents(fs_info, new_size) >= num_extents) return; spin_lock(&BTRFS_I(inode)->lock); @@ -2288,7 +2398,7 @@ if (!(state->state & EXTENT_DELALLOC) && (*bits & EXTENT_DELALLOC)) { struct btrfs_root *root = BTRFS_I(inode)->root; u64 len = state->end + 1 - state->start; - u32 num_extents = count_max_extents(len); + u32 num_extents = count_max_extents(fs_info, len); bool do_list = !btrfs_is_free_space_inode(BTRFS_I(inode)); spin_lock(&BTRFS_I(inode)->lock); @@ -2330,7 +2440,7 @@ struct btrfs_inode *inode = BTRFS_I(vfs_inode); struct btrfs_fs_info *fs_info = btrfs_sb(vfs_inode->i_sb); u64 len = state->end + 1 - state->start; - u32 num_extents = count_max_extents(len); + u32 num_extents = count_max_extents(fs_info, len); if ((state->state & EXTENT_DEFRAG) && (*bits & EXTENT_DEFRAG)) { spin_lock(&inode->lock); @@ -8054,7 +8164,7 @@ */ status = BLK_STS_RESOURCE; dip->csums = kcalloc(nr_sectors, fs_info->csum_size, GFP_NOFS); - if (!dip) + if (!dip->csums) goto out_err; status = btrfs_lookup_bio_sums(inode, dio_bio, dip->csums); @@ -8160,7 +8270,7 @@ .bio_set = &btrfs_dio_bioset, }; -ssize_t btrfs_dio_rw(struct kiocb *iocb, struct iov_iter *iter, size_t done_before) +ssize_t btrfs_dio_read(struct kiocb *iocb, struct iov_iter *iter, size_t done_before) { struct btrfs_dio_data data; @@ -8168,6 +8278,15 @@ IOMAP_DIO_PARTIAL, &data, done_before); } +struct iomap_dio *btrfs_dio_write(struct kiocb *iocb, struct iov_iter *iter, + size_t done_before) +{ + struct btrfs_dio_data data; + + return __iomap_dio_rw(iocb, iter, &btrfs_dio_iomap_ops, &btrfs_dio_ops, + IOMAP_DIO_PARTIAL, &data, done_before); +} + static int btrfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, u64 start, u64 len) { --- linux-5.19.0.orig/fs/btrfs/ioctl.c +++ linux-5.19.0/fs/btrfs/ioctl.c @@ -3102,6 +3102,8 @@ } } + btrfs_free_path(path); + path = NULL; if (copy_to_user(argp, subvol_info, sizeof(*subvol_info))) ret = -EFAULT; @@ -3191,6 +3193,8 @@ } out: + btrfs_free_path(path); + if (!ret || ret == -EOVERFLOW) { rootrefs->num_items = found; /* update min_treeid for next search */ @@ -3202,7 +3206,6 @@ } kfree(rootrefs); - btrfs_free_path(path); return ret; } @@ -4228,6 +4231,8 @@ ipath->fspath->val[i] = rel_ptr; } + btrfs_free_path(path); + path = NULL; ret = copy_to_user((void __user *)(unsigned long)ipa->fspath, ipath->fspath, size); if (ret) { @@ -4243,26 +4248,6 @@ return ret; } -static int build_ino_list(u64 inum, u64 offset, u64 root, void *ctx) -{ - struct btrfs_data_container *inodes = ctx; - const size_t c = 3 * sizeof(u64); - - if (inodes->bytes_left >= c) { - inodes->bytes_left -= c; - inodes->val[inodes->elem_cnt] = inum; - inodes->val[inodes->elem_cnt + 1] = offset; - inodes->val[inodes->elem_cnt + 2] = root; - inodes->elem_cnt += 3; - } else { - inodes->bytes_missing += c - inodes->bytes_left; - inodes->bytes_left = 0; - inodes->elem_missed += 3; - } - - return 0; -} - static long btrfs_ioctl_logical_to_ino(struct btrfs_fs_info *fs_info, void __user *arg, int version) { @@ -4298,21 +4283,20 @@ size = min_t(u32, loi->size, SZ_16M); } - path = btrfs_alloc_path(); - if (!path) { - ret = -ENOMEM; - goto out; - } - inodes = init_data_container(size); if (IS_ERR(inodes)) { ret = PTR_ERR(inodes); - inodes = NULL; - goto out; + goto out_loi; } + path = btrfs_alloc_path(); + if (!path) { + ret = -ENOMEM; + goto out; + } ret = iterate_inodes_from_logical(loi->logical, fs_info, path, - build_ino_list, inodes, ignore_offset); + inodes, ignore_offset); + btrfs_free_path(path); if (ret == -EINVAL) ret = -ENOENT; if (ret < 0) @@ -4324,7 +4308,6 @@ ret = -EFAULT; out: - btrfs_free_path(path); kvfree(inodes); out_loi: kfree(loi); --- linux-5.19.0.orig/fs/btrfs/locking.c +++ linux-5.19.0/fs/btrfs/locking.c @@ -14,6 +14,93 @@ #include "locking.h" /* + * Lockdep class keys for extent_buffer->lock's in this root. For a given + * eb, the lockdep key is determined by the btrfs_root it belongs to and + * the level the eb occupies in the tree. + * + * Different roots are used for different purposes and may nest inside each + * other and they require separate keysets. As lockdep keys should be + * static, assign keysets according to the purpose of the root as indicated + * by btrfs_root->root_key.objectid. This ensures that all special purpose + * roots have separate keysets. + * + * Lock-nesting across peer nodes is always done with the immediate parent + * node locked thus preventing deadlock. As lockdep doesn't know this, use + * subclass to avoid triggering lockdep warning in such cases. + * + * The key is set by the readpage_end_io_hook after the buffer has passed + * csum validation but before the pages are unlocked. It is also set by + * btrfs_init_new_buffer on freshly allocated blocks. + * + * We also add a check to make sure the highest level of the tree is the + * same as our lockdep setup here. If BTRFS_MAX_LEVEL changes, this code + * needs update as well. + */ +#ifdef CONFIG_DEBUG_LOCK_ALLOC +#if BTRFS_MAX_LEVEL != 8 +#error +#endif + +#define DEFINE_LEVEL(stem, level) \ + .names[level] = "btrfs-" stem "-0" #level, + +#define DEFINE_NAME(stem) \ + DEFINE_LEVEL(stem, 0) \ + DEFINE_LEVEL(stem, 1) \ + DEFINE_LEVEL(stem, 2) \ + DEFINE_LEVEL(stem, 3) \ + DEFINE_LEVEL(stem, 4) \ + DEFINE_LEVEL(stem, 5) \ + DEFINE_LEVEL(stem, 6) \ + DEFINE_LEVEL(stem, 7) + +static struct btrfs_lockdep_keyset { + u64 id; /* root objectid */ + /* Longest entry: btrfs-free-space-00 */ + char names[BTRFS_MAX_LEVEL][20]; + struct lock_class_key keys[BTRFS_MAX_LEVEL]; +} btrfs_lockdep_keysets[] = { + { .id = BTRFS_ROOT_TREE_OBJECTID, DEFINE_NAME("root") }, + { .id = BTRFS_EXTENT_TREE_OBJECTID, DEFINE_NAME("extent") }, + { .id = BTRFS_CHUNK_TREE_OBJECTID, DEFINE_NAME("chunk") }, + { .id = BTRFS_DEV_TREE_OBJECTID, DEFINE_NAME("dev") }, + { .id = BTRFS_CSUM_TREE_OBJECTID, DEFINE_NAME("csum") }, + { .id = BTRFS_QUOTA_TREE_OBJECTID, DEFINE_NAME("quota") }, + { .id = BTRFS_TREE_LOG_OBJECTID, DEFINE_NAME("log") }, + { .id = BTRFS_TREE_RELOC_OBJECTID, DEFINE_NAME("treloc") }, + { .id = BTRFS_DATA_RELOC_TREE_OBJECTID, DEFINE_NAME("dreloc") }, + { .id = BTRFS_UUID_TREE_OBJECTID, DEFINE_NAME("uuid") }, + { .id = BTRFS_FREE_SPACE_TREE_OBJECTID, DEFINE_NAME("free-space") }, + { .id = 0, DEFINE_NAME("tree") }, +}; + +#undef DEFINE_LEVEL +#undef DEFINE_NAME + +void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level) +{ + struct btrfs_lockdep_keyset *ks; + + BUG_ON(level >= ARRAY_SIZE(ks->keys)); + + /* Find the matching keyset, id 0 is the default entry */ + for (ks = btrfs_lockdep_keysets; ks->id; ks++) + if (ks->id == objectid) + break; + + lockdep_set_class_and_name(&eb->lock, &ks->keys[level], ks->names[level]); +} + +void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb) +{ + if (test_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &root->state)) + btrfs_set_buffer_lockdep_class(root->root_key.objectid, + eb, btrfs_header_level(eb)); +} + +#endif + +/* * Extent buffer locking * ===================== * @@ -164,6 +251,8 @@ while (1) { eb = btrfs_root_node(root); + + btrfs_maybe_reset_lockdep_class(root, eb); btrfs_tree_lock(eb); if (eb == root->node) break; @@ -185,6 +274,8 @@ while (1) { eb = btrfs_root_node(root); + + btrfs_maybe_reset_lockdep_class(root, eb); btrfs_tree_read_lock(eb); if (eb == root->node) break; --- linux-5.19.0.orig/fs/btrfs/locking.h +++ linux-5.19.0/fs/btrfs/locking.h @@ -131,4 +131,18 @@ void btrfs_drew_read_lock(struct btrfs_drew_lock *lock); void btrfs_drew_read_unlock(struct btrfs_drew_lock *lock); +#ifdef CONFIG_DEBUG_LOCK_ALLOC +void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, int level); +void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, struct extent_buffer *eb); +#else +static inline void btrfs_set_buffer_lockdep_class(u64 objectid, + struct extent_buffer *eb, int level) +{ +} +static inline void btrfs_maybe_reset_lockdep_class(struct btrfs_root *root, + struct extent_buffer *eb) +{ +} +#endif + #endif --- linux-5.19.0.orig/fs/btrfs/qgroup.c +++ linux-5.19.0/fs/btrfs/qgroup.c @@ -1174,6 +1174,21 @@ fs_info->qgroup_rescan_running = true; btrfs_queue_work(fs_info->qgroup_rescan_workers, &fs_info->qgroup_rescan_work); + } else { + /* + * We have set both BTRFS_FS_QUOTA_ENABLED and + * BTRFS_QGROUP_STATUS_FLAG_ON, so we can only fail with + * -EINPROGRESS. That can happen because someone started the + * rescan worker by calling quota rescan ioctl before we + * attempted to initialize the rescan worker. Failure due to + * quotas disabled in the meanwhile is not possible, because + * we are holding a write lock on fs_info->subvol_sem, which + * is also acquired when disabling quotas. + * Ignore such error, and any other error would need to undo + * everything we did in the transaction we just committed. + */ + ASSERT(ret == -EINPROGRESS); + ret = 0; } out_free_path: @@ -2905,14 +2920,7 @@ dstgroup->rsv_rfer = inherit->lim.rsv_rfer; dstgroup->rsv_excl = inherit->lim.rsv_excl; - ret = update_qgroup_limit_item(trans, dstgroup); - if (ret) { - fs_info->qgroup_flags |= BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT; - btrfs_info(fs_info, - "unable to update quota limit for %llu", - dstgroup->qgroupid); - goto unlock; - } + qgroup_dirty(fs_info, dstgroup); } if (srcid) { --- linux-5.19.0.orig/fs/btrfs/raid56.c +++ linux-5.19.0/fs/btrfs/raid56.c @@ -347,6 +347,24 @@ } } +static void steal_rbio_page(struct btrfs_raid_bio *src, + struct btrfs_raid_bio *dest, int page_nr) +{ + const u32 sectorsize = src->bioc->fs_info->sectorsize; + const u32 sectors_per_page = PAGE_SIZE / sectorsize; + int i; + + if (dest->stripe_pages[page_nr]) + __free_page(dest->stripe_pages[page_nr]); + dest->stripe_pages[page_nr] = src->stripe_pages[page_nr]; + src->stripe_pages[page_nr] = NULL; + + /* Also update the sector->uptodate bits. */ + for (i = sectors_per_page * page_nr; + i < sectors_per_page * page_nr + sectors_per_page; i++) + dest->stripe_sectors[i].uptodate = true; +} + /* * Stealing an rbio means taking all the uptodate pages from the stripe array * in the source rbio and putting them into the destination rbio. @@ -358,7 +376,6 @@ { int i; struct page *s; - struct page *d; if (!test_bit(RBIO_CACHE_READY_BIT, &src->flags)) return; @@ -368,12 +385,7 @@ if (!s || !full_page_sectors_uptodate(src, i)) continue; - d = dest->stripe_pages[i]; - if (d) - __free_page(d); - - dest->stripe_pages[i] = s; - src->stripe_pages[i] = NULL; + steal_rbio_page(src, dest, i); } index_stripe_sectors(dest); index_stripe_sectors(src); @@ -391,6 +403,9 @@ { bio_list_merge(&dest->bio_list, &victim->bio_list); dest->bio_list_bytes += victim->bio_list_bytes; + /* Also inherit the bitmaps from @victim. */ + bitmap_or(dest->dbitmap, victim->dbitmap, dest->dbitmap, + dest->stripe_nsectors); dest->generic_bio_cnt += victim->generic_bio_cnt; bio_list_init(&victim->bio_list); } @@ -932,6 +947,12 @@ if (rbio->generic_bio_cnt) btrfs_bio_counter_sub(rbio->bioc->fs_info, rbio->generic_bio_cnt); + /* + * Clear the data bitmap, as the rbio may be cached for later usage. + * do this before before unlock_stripe() so there will be no new bio + * for this bio. + */ + bitmap_clear(rbio->dbitmap, 0, rbio->stripe_nsectors); /* * At this moment, rbio->bio_list is empty, however since rbio does not @@ -1282,6 +1303,9 @@ else BUG(); + /* We should have at least one data sector. */ + ASSERT(bitmap_weight(rbio->dbitmap, rbio->stripe_nsectors)); + /* at this point we either have a full stripe, * or we've read the full stripe from the drive. * recalculate the parity and write the new results. @@ -1356,6 +1380,10 @@ for (sectornr = 0; sectornr < rbio->stripe_nsectors; sectornr++) { struct sector_ptr *sector; + /* This vertical stripe has no data, skip it. */ + if (!test_bit(sectornr, rbio->dbitmap)) + continue; + if (stripe < rbio->nr_data) { sector = sector_in_rbio(rbio, stripe, sectornr, 1); if (!sector) @@ -1382,6 +1410,10 @@ for (sectornr = 0; sectornr < rbio->stripe_nsectors; sectornr++) { struct sector_ptr *sector; + /* This vertical stripe has no data, skip it. */ + if (!test_bit(sectornr, rbio->dbitmap)) + continue; + if (stripe < rbio->nr_data) { sector = sector_in_rbio(rbio, stripe, sectornr, 1); if (!sector) @@ -1833,6 +1865,33 @@ run_plug(plug); } +/* Add the original bio into rbio->bio_list, and update rbio::dbitmap. */ +static void rbio_add_bio(struct btrfs_raid_bio *rbio, struct bio *orig_bio) +{ + const struct btrfs_fs_info *fs_info = rbio->bioc->fs_info; + const u64 orig_logical = orig_bio->bi_iter.bi_sector << SECTOR_SHIFT; + const u64 full_stripe_start = rbio->bioc->raid_map[0]; + const u32 orig_len = orig_bio->bi_iter.bi_size; + const u32 sectorsize = fs_info->sectorsize; + u64 cur_logical; + + ASSERT(orig_logical >= full_stripe_start && + orig_logical + orig_len <= full_stripe_start + + rbio->nr_data * rbio->stripe_len); + + bio_list_add(&rbio->bio_list, orig_bio); + rbio->bio_list_bytes += orig_bio->bi_iter.bi_size; + + /* Update the dbitmap. */ + for (cur_logical = orig_logical; cur_logical < orig_logical + orig_len; + cur_logical += sectorsize) { + int bit = ((u32)(cur_logical - full_stripe_start) >> + fs_info->sectorsize_bits) % rbio->stripe_nsectors; + + set_bit(bit, rbio->dbitmap); + } +} + /* * our main entry point for writes from the rest of the FS. */ @@ -1849,9 +1908,8 @@ btrfs_put_bioc(bioc); return PTR_ERR(rbio); } - bio_list_add(&rbio->bio_list, bio); - rbio->bio_list_bytes = bio->bi_iter.bi_size; rbio->operation = BTRFS_RBIO_WRITE; + rbio_add_bio(rbio, bio); btrfs_bio_counter_inc_noblocked(fs_info); rbio->generic_bio_cnt = 1; @@ -2160,9 +2218,12 @@ atomic_set(&rbio->error, 0); /* - * read everything that hasn't failed. Thanks to the - * stripe cache, it is possible that some or all of these - * pages are going to be uptodate. + * Read everything that hasn't failed. However this time we will + * not trust any cached sector. + * As we may read out some stale data but higher layer is not reading + * that stale part. + * + * So here we always re-read everything in recovery path. */ for (stripe = 0; stripe < rbio->real_stripes; stripe++) { if (rbio->faila == stripe || rbio->failb == stripe) { @@ -2173,13 +2234,7 @@ for (sectornr = 0; sectornr < rbio->stripe_nsectors; sectornr++) { struct sector_ptr *sector; - /* - * the rmw code may have already read this - * page in - */ sector = rbio_stripe_sector(rbio, stripe, sectornr); - if (sector->uptodate) - continue; ret = rbio_add_io_sector(rbio, &bio_list, sector, stripe, sectornr, rbio->stripe_len, @@ -2256,8 +2311,7 @@ } rbio->operation = BTRFS_RBIO_READ_REBUILD; - bio_list_add(&rbio->bio_list, bio); - rbio->bio_list_bytes = bio->bi_iter.bi_size; + rbio_add_bio(rbio, bio); rbio->faila = find_logical_bio_stripe(rbio, bio); if (rbio->faila == -1) { @@ -2817,8 +2871,10 @@ rbio->faila = find_logical_bio_stripe(rbio, bio); if (rbio->faila == -1) { - BUG(); - kfree(rbio); + btrfs_warn_rl(fs_info, + "can not determine the failed stripe number for full stripe %llu", + bioc->raid_map[0]); + __free_raid_bio(rbio); return NULL; } --- linux-5.19.0.orig/fs/btrfs/relocation.c +++ linux-5.19.0/fs/btrfs/relocation.c @@ -1326,7 +1326,9 @@ btrfs_release_path(path); path->lowest_level = level; + set_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); ret = btrfs_search_slot(trans, src, &key, path, 0, 1); + clear_bit(BTRFS_ROOT_RESET_LOCKDEP_CLASS, &src->state); path->lowest_level = 0; if (ret) { if (ret > 0) @@ -3573,7 +3575,12 @@ */ return PTR_ERR(trans); } - return btrfs_commit_transaction(trans); + + ret = btrfs_commit_transaction(trans); + if (ret) + unset_reloc_control(rc); + + return ret; } static noinline_for_stack int relocate_block_group(struct reloc_control *rc) --- linux-5.19.0.orig/fs/btrfs/root-tree.c +++ linux-5.19.0/fs/btrfs/root-tree.c @@ -349,9 +349,10 @@ key.offset = ref_id; again: ret = btrfs_search_slot(trans, tree_root, &key, path, -1, 1); - if (ret < 0) + if (ret < 0) { + err = ret; goto out; - if (ret == 0) { + } else if (ret == 0) { leaf = path->nodes[0]; ref = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_root_ref); --- linux-5.19.0.orig/fs/btrfs/scrub.c +++ linux-5.19.0/fs/btrfs/scrub.c @@ -731,6 +731,13 @@ dev = sblock->sectors[0]->dev; fs_info = sblock->sctx->fs_info; + /* Super block error, no need to search extent tree. */ + if (sblock->sectors[0]->flags & BTRFS_EXTENT_FLAG_SUPER) { + btrfs_warn_in_rcu(fs_info, "%s on device %s, physical %llu", + errstr, rcu_str_deref(dev->name), + sblock->sectors[0]->physical); + return; + } path = btrfs_alloc_path(); if (!path) return; @@ -806,7 +813,7 @@ static int scrub_handle_errored_block(struct scrub_block *sblock_to_check) { struct scrub_ctx *sctx = sblock_to_check->sctx; - struct btrfs_device *dev; + struct btrfs_device *dev = sblock_to_check->sectors[0]->dev; struct btrfs_fs_info *fs_info; u64 logical; unsigned int failed_mirror_index; @@ -827,13 +834,15 @@ fs_info = sctx->fs_info; if (sblock_to_check->sectors[0]->flags & BTRFS_EXTENT_FLAG_SUPER) { /* - * if we find an error in a super block, we just report it. + * If we find an error in a super block, we just report it. * They will get written with the next transaction commit * anyway */ + scrub_print_warning("super block error", sblock_to_check); spin_lock(&sctx->stat_lock); ++sctx->stat.super_errors; spin_unlock(&sctx->stat_lock); + btrfs_dev_stat_inc_and_print(dev, BTRFS_DEV_STAT_CORRUPTION_ERRS); return 0; } logical = sblock_to_check->sectors[0]->logical; @@ -842,7 +851,6 @@ is_metadata = !(sblock_to_check->sectors[0]->flags & BTRFS_EXTENT_FLAG_DATA); have_csum = sblock_to_check->sectors[0]->have_csum; - dev = sblock_to_check->sectors[0]->dev; if (!sctx->is_dev_replace && btrfs_repair_one_zone(fs_info, logical)) return 0; @@ -1773,7 +1781,7 @@ else if (flags & BTRFS_EXTENT_FLAG_TREE_BLOCK) ret = scrub_checksum_tree_block(sblock); else if (flags & BTRFS_EXTENT_FLAG_SUPER) - (void)scrub_checksum_super(sblock); + ret = scrub_checksum_super(sblock); else WARN_ON(1); if (ret) @@ -1912,23 +1920,6 @@ if (memcmp(calculated_csum, s->csum, sctx->fs_info->csum_size)) ++fail_cor; - if (fail_cor + fail_gen) { - /* - * if we find an error in a super block, we just report it. - * They will get written with the next transaction commit - * anyway - */ - spin_lock(&sctx->stat_lock); - ++sctx->stat.super_errors; - spin_unlock(&sctx->stat_lock); - if (fail_cor) - btrfs_dev_stat_inc_and_print(sector->dev, - BTRFS_DEV_STAT_CORRUPTION_ERRS); - else - btrfs_dev_stat_inc_and_print(sector->dev, - BTRFS_DEV_STAT_GENERATION_ERRS); - } - return fail_cor + fail_gen; } @@ -4121,6 +4112,7 @@ int ret; struct btrfs_device *dev; unsigned int nofs_flag; + bool need_commit = false; if (btrfs_fs_closing(fs_info)) return -EAGAIN; @@ -4224,6 +4216,12 @@ */ nofs_flag = memalloc_nofs_save(); if (!is_dev_replace) { + u64 old_super_errors; + + spin_lock(&sctx->stat_lock); + old_super_errors = sctx->stat.super_errors; + spin_unlock(&sctx->stat_lock); + btrfs_info(fs_info, "scrub: started on devid %llu", devid); /* * by holding device list mutex, we can @@ -4232,6 +4230,16 @@ mutex_lock(&fs_info->fs_devices->device_list_mutex); ret = scrub_supers(sctx, dev); mutex_unlock(&fs_info->fs_devices->device_list_mutex); + + spin_lock(&sctx->stat_lock); + /* + * Super block errors found, but we can not commit transaction + * at current context, since btrfs_commit_transaction() needs + * to pause the current running scrub (hold by ourselves). + */ + if (sctx->stat.super_errors > old_super_errors && !sctx->readonly) + need_commit = true; + spin_unlock(&sctx->stat_lock); } if (!ret) @@ -4258,6 +4266,25 @@ scrub_workers_put(fs_info); scrub_put_ctx(sctx); + /* + * We found some super block errors before, now try to force a + * transaction commit, as scrub has finished. + */ + if (need_commit) { + struct btrfs_trans_handle *trans; + + trans = btrfs_start_transaction(fs_info->tree_root, 0); + if (IS_ERR(trans)) { + ret = PTR_ERR(trans); + btrfs_err(fs_info, + "scrub: failed to start transaction to fix super block errors: %d", ret); + return ret; + } + ret = btrfs_commit_transaction(trans); + if (ret < 0) + btrfs_err(fs_info, + "scrub: failed to commit transaction to fix super block errors: %d", ret); + } return ret; out: scrub_workers_put(fs_info); --- linux-5.19.0.orig/fs/btrfs/send.c +++ linux-5.19.0/fs/btrfs/send.c @@ -5377,6 +5377,7 @@ u64 ext_len; u64 clone_len; u64 clone_data_offset; + bool crossed_src_i_size = false; if (slot >= btrfs_header_nritems(leaf)) { ret = btrfs_next_leaf(clone_root->root, path); @@ -5433,8 +5434,10 @@ if (key.offset >= clone_src_i_size) break; - if (key.offset + ext_len > clone_src_i_size) + if (key.offset + ext_len > clone_src_i_size) { ext_len = clone_src_i_size - key.offset; + crossed_src_i_size = true; + } clone_data_offset = btrfs_file_extent_offset(leaf, ei); if (btrfs_file_extent_disk_bytenr(leaf, ei) == disk_byte) { @@ -5494,6 +5497,25 @@ ret = send_clone(sctx, offset, clone_len, clone_root); } + } else if (crossed_src_i_size && clone_len < len) { + /* + * If we are at i_size of the clone source inode and we + * can not clone from it, terminate the loop. This is + * to avoid sending two write operations, one with a + * length matching clone_len and the final one after + * this loop with a length of len - clone_len. + * + * When using encoded writes (BTRFS_SEND_FLAG_COMPRESSED + * was passed to the send ioctl), this helps avoid + * sending an encoded write for an offset that is not + * sector size aligned, in case the i_size of the source + * inode is not sector size aligned. That will make the + * receiver fallback to decompression of the data and + * writing it using regular buffered IO, therefore while + * not incorrect, it's not optimal due decompression and + * possible re-compression at the receiver. + */ + break; } else { ret = send_extent_data(sctx, offset, clone_len); } --- linux-5.19.0.orig/fs/btrfs/space-info.c +++ linux-5.19.0/fs/btrfs/space-info.c @@ -9,6 +9,7 @@ #include "ordered-data.h" #include "transaction.h" #include "block-group.h" +#include "zoned.h" /* * HOW DOES SPACE RESERVATION WORK @@ -187,6 +188,37 @@ */ #define BTRFS_DEFAULT_ZONED_RECLAIM_THRESH (75) +/* + * Calculate chunk size depending on volume type (regular or zoned). + */ +static u64 calc_chunk_size(const struct btrfs_fs_info *fs_info, u64 flags) +{ + if (btrfs_is_zoned(fs_info)) + return fs_info->zone_size; + + ASSERT(flags & BTRFS_BLOCK_GROUP_TYPE_MASK); + + if (flags & BTRFS_BLOCK_GROUP_DATA) + return BTRFS_MAX_DATA_CHUNK_SIZE; + else if (flags & BTRFS_BLOCK_GROUP_SYSTEM) + return SZ_32M; + + /* Handle BTRFS_BLOCK_GROUP_METADATA */ + if (fs_info->fs_devices->total_rw_bytes > 50ULL * SZ_1G) + return SZ_1G; + + return SZ_256M; +} + +/* + * Update default chunk size. + */ +void btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info, + u64 chunk_size) +{ + WRITE_ONCE(space_info->chunk_size, chunk_size); +} + static int create_space_info(struct btrfs_fs_info *info, u64 flags) { @@ -208,6 +240,7 @@ INIT_LIST_HEAD(&space_info->tickets); INIT_LIST_HEAD(&space_info->priority_tickets); space_info->clamp = 1; + btrfs_update_space_info_chunk_size(space_info, calc_chunk_size(info, flags)); if (btrfs_is_zoned(info)) space_info->bg_reclaim_threshold = BTRFS_DEFAULT_ZONED_RECLAIM_THRESH; @@ -263,7 +296,7 @@ void btrfs_update_space_info(struct btrfs_fs_info *info, u64 flags, u64 total_bytes, u64 bytes_used, u64 bytes_readonly, u64 bytes_zone_unusable, - struct btrfs_space_info **space_info) + bool active, struct btrfs_space_info **space_info) { struct btrfs_space_info *found; int factor; @@ -274,6 +307,8 @@ ASSERT(found); spin_lock(&found->lock); found->total_bytes += total_bytes; + if (active) + found->active_total_bytes += total_bytes; found->disk_total += total_bytes * factor; found->bytes_used += bytes_used; found->disk_used += bytes_used * factor; @@ -337,6 +372,22 @@ return avail; } +static inline u64 writable_total_bytes(struct btrfs_fs_info *fs_info, + struct btrfs_space_info *space_info) +{ + /* + * On regular filesystem, all total_bytes are always writable. On zoned + * filesystem, there may be a limitation imposed by max_active_zones. + * For metadata allocation, we cannot finish an existing active block + * group to avoid a deadlock. Thus, we need to consider only the active + * groups to be writable for metadata space. + */ + if (!btrfs_is_zoned(fs_info) || (space_info->flags & BTRFS_BLOCK_GROUP_DATA)) + return space_info->total_bytes; + + return space_info->active_total_bytes; +} + int btrfs_can_overcommit(struct btrfs_fs_info *fs_info, struct btrfs_space_info *space_info, u64 bytes, enum btrfs_reserve_flush_enum flush) @@ -349,9 +400,12 @@ return 0; used = btrfs_space_info_used(space_info, true); - avail = calc_available_free_space(fs_info, space_info, flush); + if (btrfs_is_zoned(fs_info) && (space_info->flags & BTRFS_BLOCK_GROUP_METADATA)) + avail = 0; + else + avail = calc_available_free_space(fs_info, space_info, flush); - if (used + bytes < space_info->total_bytes + avail) + if (used + bytes < writable_total_bytes(fs_info, space_info) + avail) return 1; return 0; } @@ -387,7 +441,7 @@ ticket = list_first_entry(head, struct reserve_ticket, list); /* Check and see if our ticket can be satisfied now. */ - if ((used + ticket->bytes <= space_info->total_bytes) || + if ((used + ticket->bytes <= writable_total_bytes(fs_info, space_info)) || btrfs_can_overcommit(fs_info, space_info, ticket->bytes, flush)) { btrfs_space_info_update_bytes_may_use(fs_info, @@ -671,6 +725,18 @@ break; case ALLOC_CHUNK: case ALLOC_CHUNK_FORCE: + /* + * For metadata space on zoned filesystem, reaching here means we + * don't have enough space left in active_total_bytes. Try to + * activate a block group first, because we may have inactive + * block group already allocated. + */ + ret = btrfs_zoned_activate_one_bg(fs_info, space_info, false); + if (ret < 0) + break; + else if (ret == 1) + break; + trans = btrfs_join_transaction(root); if (IS_ERR(trans)) { ret = PTR_ERR(trans); @@ -681,6 +747,23 @@ (state == ALLOC_CHUNK) ? CHUNK_ALLOC_NO_FORCE : CHUNK_ALLOC_FORCE); btrfs_end_transaction(trans); + + /* + * For metadata space on zoned filesystem, allocating a new chunk + * is not enough. We still need to activate the block * group. + * Active the newly allocated block group by (maybe) finishing + * a block group. + */ + if (ret == 1) { + ret = btrfs_zoned_activate_one_bg(fs_info, space_info, true); + /* + * Revert to the original ret regardless we could finish + * one block group or not. + */ + if (ret >= 0) + ret = 1; + } + if (ret > 0 || ret == -ENOSPC) ret = 0; break; @@ -718,6 +801,7 @@ { u64 used; u64 avail; + u64 total; u64 to_reclaim = space_info->reclaim_size; lockdep_assert_held(&space_info->lock); @@ -732,8 +816,9 @@ * space. If that's the case add in our overage so we make sure to put * appropriate pressure on the flushing state machine. */ - if (space_info->total_bytes + avail < used) - to_reclaim += used - (space_info->total_bytes + avail); + total = writable_total_bytes(fs_info, space_info); + if (total + avail < used) + to_reclaim += used - (total + avail); return to_reclaim; } @@ -743,9 +828,12 @@ { u64 global_rsv_size = fs_info->global_block_rsv.reserved; u64 ordered, delalloc; - u64 thresh = div_factor_fine(space_info->total_bytes, 90); + u64 total = writable_total_bytes(fs_info, space_info); + u64 thresh; u64 used; + thresh = div_factor_fine(total, 90); + lockdep_assert_held(&space_info->lock); /* If we're just plain full then async reclaim just slows us down. */ @@ -807,8 +895,8 @@ BTRFS_RESERVE_FLUSH_ALL); used = space_info->bytes_used + space_info->bytes_reserved + space_info->bytes_readonly + global_rsv_size; - if (used < space_info->total_bytes) - thresh += space_info->total_bytes - used; + if (used < total) + thresh += total - used; thresh >>= space_info->clamp; used = space_info->bytes_pinned; @@ -1525,7 +1613,7 @@ * can_overcommit() to ensure we can overcommit to continue. */ if (!pending_tickets && - ((used + orig_bytes <= space_info->total_bytes) || + ((used + orig_bytes <= writable_total_bytes(fs_info, space_info)) || btrfs_can_overcommit(fs_info, space_info, orig_bytes, flush))) { btrfs_space_info_update_bytes_may_use(fs_info, space_info, orig_bytes); --- linux-5.19.0.orig/fs/btrfs/space-info.h +++ linux-5.19.0/fs/btrfs/space-info.h @@ -19,12 +19,16 @@ u64 bytes_may_use; /* number of bytes that may be used for delalloc/allocations */ u64 bytes_readonly; /* total bytes that are read only */ + /* Total bytes in the space, but only accounts active block groups. */ + u64 active_total_bytes; u64 bytes_zone_unusable; /* total bytes that are unusable until resetting the device zone */ u64 max_extent_size; /* This will hold the maximum extent size of the space info if we had an ENOSPC in the allocator. */ + /* Chunk size in bytes */ + u64 chunk_size; /* * Once a block group drops below this threshold (percents) we'll @@ -122,7 +126,9 @@ void btrfs_update_space_info(struct btrfs_fs_info *info, u64 flags, u64 total_bytes, u64 bytes_used, u64 bytes_readonly, u64 bytes_zone_unusable, - struct btrfs_space_info **space_info); + bool active, struct btrfs_space_info **space_info); +void btrfs_update_space_info_chunk_size(struct btrfs_space_info *space_info, + u64 chunk_size); struct btrfs_space_info *btrfs_find_space_info(struct btrfs_fs_info *info, u64 flags); u64 __pure btrfs_space_info_used(struct btrfs_space_info *s_info, --- linux-5.19.0.orig/fs/btrfs/super.c +++ linux-5.19.0/fs/btrfs/super.c @@ -625,6 +625,7 @@ int saved_compress_level; bool saved_compress_force; int no_compress = 0; + const bool remounting = test_bit(BTRFS_FS_STATE_REMOUNTING, &info->fs_state); if (btrfs_fs_compat_ro(info, FREE_SPACE_TREE)) btrfs_set_opt(info->mount_opt, FREE_SPACE_TREE); @@ -1136,10 +1137,12 @@ } if (!ret) ret = btrfs_check_mountopts_zoned(info); - if (!ret && btrfs_test_opt(info, SPACE_CACHE)) - btrfs_info(info, "disk space caching is enabled"); - if (!ret && btrfs_test_opt(info, FREE_SPACE_TREE)) - btrfs_info(info, "using free space tree"); + if (!ret && !remounting) { + if (btrfs_test_opt(info, SPACE_CACHE)) + btrfs_info(info, "disk space caching is enabled"); + if (btrfs_test_opt(info, FREE_SPACE_TREE)) + btrfs_info(info, "using free space tree"); + } return ret; } @@ -2113,6 +2116,15 @@ ret = -EINVAL; goto restore; } + if (btrfs_super_compat_ro_flags(fs_info->super_copy) & + ~BTRFS_FEATURE_COMPAT_RO_SUPP) { + btrfs_err(fs_info, + "can not remount read-write due to unsupported optional flags 0x%llx", + btrfs_super_compat_ro_flags(fs_info->super_copy) & + ~BTRFS_FEATURE_COMPAT_RO_SUPP); + ret = -EINVAL; + goto restore; + } if (fs_info->fs_devices->rw_devices == 0) { ret = -EACCES; goto restore; --- linux-5.19.0.orig/fs/btrfs/sysfs.c +++ linux-5.19.0/fs/btrfs/sysfs.c @@ -2082,8 +2082,11 @@ #ifdef CONFIG_BTRFS_DEBUG ret = sysfs_create_group(&btrfs_kset->kobj, &btrfs_debug_feature_attr_group); - if (ret) - goto out2; + if (ret) { + sysfs_unmerge_group(&btrfs_kset->kobj, + &btrfs_static_feature_attr_group); + goto out_remove_group; + } #endif return 0; --- linux-5.19.0.orig/fs/btrfs/tests/btrfs-tests.c +++ linux-5.19.0/fs/btrfs/tests/btrfs-tests.c @@ -199,7 +199,7 @@ void btrfs_free_dummy_root(struct btrfs_root *root) { - if (!root) + if (IS_ERR_OR_NULL(root)) return; /* Will be freed by btrfs_free_fs_roots */ if (WARN_ON(test_bit(BTRFS_ROOT_IN_RADIX, &root->state))) --- linux-5.19.0.orig/fs/btrfs/tests/qgroup-tests.c +++ linux-5.19.0/fs/btrfs/tests/qgroup-tests.c @@ -225,20 +225,20 @@ */ ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots, false); if (ret) { - ulist_free(old_roots); test_err("couldn't find old roots: %d", ret); return ret; } ret = insert_normal_tree_ref(root, nodesize, nodesize, 0, BTRFS_FS_TREE_OBJECTID); - if (ret) + if (ret) { + ulist_free(old_roots); return ret; + } ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &new_roots, false); if (ret) { ulist_free(old_roots); - ulist_free(new_roots); test_err("couldn't find old roots: %d", ret); return ret; } @@ -250,29 +250,31 @@ return ret; } + /* btrfs_qgroup_account_extent() always frees the ulists passed to it. */ + old_roots = NULL; + new_roots = NULL; + if (btrfs_verify_qgroup_counts(fs_info, BTRFS_FS_TREE_OBJECTID, nodesize, nodesize)) { test_err("qgroup counts didn't match expected values"); return -EINVAL; } - old_roots = NULL; - new_roots = NULL; ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots, false); if (ret) { - ulist_free(old_roots); test_err("couldn't find old roots: %d", ret); return ret; } ret = remove_extent_item(root, nodesize, nodesize); - if (ret) + if (ret) { + ulist_free(old_roots); return -EINVAL; + } ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &new_roots, false); if (ret) { ulist_free(old_roots); - ulist_free(new_roots); test_err("couldn't find old roots: %d", ret); return ret; } @@ -322,20 +324,20 @@ ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots, false); if (ret) { - ulist_free(old_roots); test_err("couldn't find old roots: %d", ret); return ret; } ret = insert_normal_tree_ref(root, nodesize, nodesize, 0, BTRFS_FS_TREE_OBJECTID); - if (ret) + if (ret) { + ulist_free(old_roots); return ret; + } ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &new_roots, false); if (ret) { ulist_free(old_roots); - ulist_free(new_roots); test_err("couldn't find old roots: %d", ret); return ret; } @@ -355,20 +357,20 @@ ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots, false); if (ret) { - ulist_free(old_roots); test_err("couldn't find old roots: %d", ret); return ret; } ret = add_tree_ref(root, nodesize, nodesize, 0, BTRFS_FIRST_FREE_OBJECTID); - if (ret) + if (ret) { + ulist_free(old_roots); return ret; + } ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &new_roots, false); if (ret) { ulist_free(old_roots); - ulist_free(new_roots); test_err("couldn't find old roots: %d", ret); return ret; } @@ -394,20 +396,20 @@ ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots, false); if (ret) { - ulist_free(old_roots); test_err("couldn't find old roots: %d", ret); return ret; } ret = remove_extent_ref(root, nodesize, nodesize, 0, BTRFS_FIRST_FREE_OBJECTID); - if (ret) + if (ret) { + ulist_free(old_roots); return ret; + } ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &new_roots, false); if (ret) { ulist_free(old_roots); - ulist_free(new_roots); test_err("couldn't find old roots: %d", ret); return ret; } --- linux-5.19.0.orig/fs/btrfs/tree-checker.c +++ linux-5.19.0/fs/btrfs/tree-checker.c @@ -1233,7 +1233,8 @@ } static int check_extent_item(struct extent_buffer *leaf, - struct btrfs_key *key, int slot) + struct btrfs_key *key, int slot, + struct btrfs_key *prev_key) { struct btrfs_fs_info *fs_info = leaf->fs_info; struct btrfs_extent_item *ei; @@ -1453,6 +1454,26 @@ total_refs, inline_refs); return -EUCLEAN; } + + if ((prev_key->type == BTRFS_EXTENT_ITEM_KEY) || + (prev_key->type == BTRFS_METADATA_ITEM_KEY)) { + u64 prev_end = prev_key->objectid; + + if (prev_key->type == BTRFS_METADATA_ITEM_KEY) + prev_end += fs_info->nodesize; + else + prev_end += prev_key->offset; + + if (unlikely(prev_end > key->objectid)) { + extent_err(leaf, slot, + "previous extent [%llu %u %llu] overlaps current extent [%llu %u %llu]", + prev_key->objectid, prev_key->type, + prev_key->offset, key->objectid, key->type, + key->offset); + return -EUCLEAN; + } + } + return 0; } @@ -1621,7 +1642,7 @@ break; case BTRFS_EXTENT_ITEM_KEY: case BTRFS_METADATA_ITEM_KEY: - ret = check_extent_item(leaf, key, slot); + ret = check_extent_item(leaf, key, slot, prev_key); break; case BTRFS_TREE_BLOCK_REF_KEY: case BTRFS_SHARED_DATA_REF_KEY: --- linux-5.19.0.orig/fs/btrfs/tree-log.c +++ linux-5.19.0/fs/btrfs/tree-log.c @@ -171,7 +171,7 @@ int index = (root->log_transid + 1) % 2; if (btrfs_need_log_full_commit(trans)) { - ret = -EAGAIN; + ret = BTRFS_LOG_FORCE_COMMIT; goto out; } @@ -194,7 +194,7 @@ * writing. */ if (zoned && !created) { - ret = -EAGAIN; + ret = BTRFS_LOG_FORCE_COMMIT; goto out; } @@ -1146,7 +1146,9 @@ extref = btrfs_lookup_inode_extref(NULL, root, path, name, namelen, inode_objectid, parent_objectid, 0, 0); - if (!IS_ERR_OR_NULL(extref)) { + if (IS_ERR(extref)) { + return PTR_ERR(extref); + } else if (extref) { u32 item_size; u32 cur_offset = 0; unsigned long base; @@ -1457,7 +1459,7 @@ * on the inode will not free it. We will fixup the link count later. */ if (other_inode->i_nlink == 0) - inc_nlink(other_inode); + set_nlink(other_inode, 1); add_link: ret = btrfs_add_link(trans, BTRFS_I(dir), BTRFS_I(inode), name, namelen, 0, ref_index); @@ -1600,7 +1602,7 @@ * free it. We will fixup the link count later. */ if (!ret && inode->i_nlink == 0) - inc_nlink(inode); + set_nlink(inode, 1); } if (ret < 0) goto out; @@ -3121,7 +3123,7 @@ /* bail out if we need to do a full commit */ if (btrfs_need_log_full_commit(trans)) { - ret = -EAGAIN; + ret = BTRFS_LOG_FORCE_COMMIT; mutex_unlock(&root->log_mutex); goto out; } @@ -3222,7 +3224,7 @@ } btrfs_wait_tree_log_extents(log, mark); mutex_unlock(&log_root_tree->log_mutex); - ret = -EAGAIN; + ret = BTRFS_LOG_FORCE_COMMIT; goto out; } @@ -3261,7 +3263,7 @@ blk_finish_plug(&plug); btrfs_wait_tree_log_extents(log, mark); mutex_unlock(&log_root_tree->log_mutex); - ret = -EAGAIN; + ret = BTRFS_LOG_FORCE_COMMIT; goto out_wake_log_root; } @@ -3832,15 +3834,29 @@ u64 *last_old_dentry_offset) { struct btrfs_root *log = inode->root->log_root; - struct extent_buffer *src = path->nodes[0]; - const int nritems = btrfs_header_nritems(src); + struct extent_buffer *src; + const int nritems = btrfs_header_nritems(path->nodes[0]); const u64 ino = btrfs_ino(inode); bool last_found = false; int batch_start = 0; int batch_size = 0; int i; - for (i = path->slots[0]; i < nritems; i++) { + /* + * We need to clone the leaf, release the read lock on it, and use the + * clone before modifying the log tree. See the comment at copy_items() + * about why we need to do this. + */ + src = btrfs_clone_extent_buffer(path->nodes[0]); + if (!src) + return -ENOMEM; + + i = path->slots[0]; + btrfs_release_path(path); + path->nodes[0] = src; + path->slots[0] = i; + + for (; i < nritems; i++) { struct btrfs_dir_item *di; struct btrfs_key key; int ret; @@ -4412,7 +4428,7 @@ { struct btrfs_root *log = inode->root->log_root; struct btrfs_file_extent_item *extent; - struct extent_buffer *src = src_path->nodes[0]; + struct extent_buffer *src; int ret = 0; struct btrfs_key *ins_keys; u32 *ins_sizes; @@ -4423,6 +4439,43 @@ const bool skip_csum = (inode->flags & BTRFS_INODE_NODATASUM); const u64 i_size = i_size_read(&inode->vfs_inode); + /* + * To keep lockdep happy and avoid deadlocks, clone the source leaf and + * use the clone. This is because otherwise we would be changing the log + * tree, to insert items from the subvolume tree or insert csum items, + * while holding a read lock on a leaf from the subvolume tree, which + * creates a nasty lock dependency when COWing log tree nodes/leaves: + * + * 1) Modifying the log tree triggers an extent buffer allocation while + * holding a write lock on a parent extent buffer from the log tree. + * Allocating the pages for an extent buffer, or the extent buffer + * struct, can trigger inode eviction and finally the inode eviction + * will trigger a release/remove of a delayed node, which requires + * taking the delayed node's mutex; + * + * 2) Allocating a metadata extent for a log tree can trigger the async + * reclaim thread and make us wait for it to release enough space and + * unblock our reservation ticket. The reclaim thread can start + * flushing delayed items, and that in turn results in the need to + * lock delayed node mutexes and in the need to write lock extent + * buffers of a subvolume tree - all this while holding a write lock + * on the parent extent buffer in the log tree. + * + * So one task in scenario 1) running in parallel with another task in + * scenario 2) could lead to a deadlock, one wanting to lock a delayed + * node mutex while having a read lock on a leaf from the subvolume, + * while the other is holding the delayed node's mutex and wants to + * write lock the same subvolume leaf for flushing delayed items. + */ + src = btrfs_clone_extent_buffer(src_path->nodes[0]); + if (!src) + return -ENOMEM; + + i = src_path->slots[0]; + btrfs_release_path(src_path); + src_path->nodes[0] = src; + src_path->slots[0] = i; + ins_data = kmalloc(nr * sizeof(struct btrfs_key) + nr * sizeof(u32), GFP_NOFS); if (!ins_data) @@ -5848,7 +5901,7 @@ inode_only == LOG_INODE_ALL && inode->last_unlink_trans >= trans->transid) { btrfs_set_log_full_commit(trans); - ret = 1; + ret = BTRFS_LOG_FORCE_COMMIT; goto out_unlock; } @@ -6562,12 +6615,12 @@ bool log_dentries = false; if (btrfs_test_opt(fs_info, NOTREELOG)) { - ret = 1; + ret = BTRFS_LOG_FORCE_COMMIT; goto end_no_trans; } if (btrfs_root_refs(&root->root_item) == 0) { - ret = 1; + ret = BTRFS_LOG_FORCE_COMMIT; goto end_no_trans; } @@ -6665,7 +6718,7 @@ end_trans: if (ret < 0) { btrfs_set_log_full_commit(trans); - ret = 1; + ret = BTRFS_LOG_FORCE_COMMIT; } if (ret) @@ -7029,8 +7082,15 @@ * anyone from syncing the log until we have updated both inodes * in the log. */ + ret = join_running_log_trans(root); + /* + * At least one of the inodes was logged before, so this should + * not fail, but if it does, it's not serious, just bail out and + * mark the log for a full commit. + */ + if (WARN_ON_ONCE(ret < 0)) + goto out; log_pinned = true; - btrfs_pin_log_trans(root); path = btrfs_alloc_path(); if (!path) { --- linux-5.19.0.orig/fs/btrfs/tree-log.h +++ linux-5.19.0/fs/btrfs/tree-log.h @@ -12,6 +12,9 @@ /* return value for btrfs_log_dentry_safe that means we don't need to log it at all */ #define BTRFS_NO_LOG_SYNC 256 +/* We can't use the tree log for whatever reason, force a transaction commit */ +#define BTRFS_LOG_FORCE_COMMIT (1) + struct btrfs_log_ctx { int log_ret; int log_transid; --- linux-5.19.0.orig/fs/btrfs/volumes.c +++ linux-5.19.0/fs/btrfs/volumes.c @@ -1003,6 +1003,18 @@ rcu_assign_pointer(device->name, name); } + if (orig_dev->zone_info) { + struct btrfs_zoned_device_info *zone_info; + + zone_info = btrfs_clone_dev_zone_info(orig_dev); + if (!zone_info) { + btrfs_free_device(device); + ret = -ENOMEM; + goto error; + } + device->zone_info = zone_info; + } + list_add(&device->dev_list, &fs_devices->devices); device->fs_devices = fs_devices; fs_devices->num_devices++; @@ -2344,8 +2356,11 @@ ret = btrfs_get_bdev_and_sb(path, FMODE_READ, fs_info->bdev_holder, 0, &bdev, &disk_super); - if (ret) + if (ret) { + btrfs_put_dev_args_from_path(args); return ret; + } + args->devid = btrfs_stack_device_id(&disk_super->dev_item); memcpy(args->uuid, disk_super->dev_item.uuid, BTRFS_UUID_SIZE); if (btrfs_fs_incompat(fs_info, METADATA_UUID)) @@ -5071,26 +5086,16 @@ struct btrfs_fs_devices *fs_devices, struct alloc_chunk_ctl *ctl) { - u64 type = ctl->type; + struct btrfs_space_info *space_info; - if (type & BTRFS_BLOCK_GROUP_DATA) { - ctl->max_stripe_size = SZ_1G; - ctl->max_chunk_size = BTRFS_MAX_DATA_CHUNK_SIZE; - } else if (type & BTRFS_BLOCK_GROUP_METADATA) { - /* For larger filesystems, use larger metadata chunks */ - if (fs_devices->total_rw_bytes > 50ULL * SZ_1G) - ctl->max_stripe_size = SZ_1G; - else - ctl->max_stripe_size = SZ_256M; - ctl->max_chunk_size = ctl->max_stripe_size; - } else if (type & BTRFS_BLOCK_GROUP_SYSTEM) { - ctl->max_stripe_size = SZ_32M; - ctl->max_chunk_size = 2 * ctl->max_stripe_size; - ctl->devs_max = min_t(int, ctl->devs_max, - BTRFS_MAX_DEVS_SYS_CHUNK); - } else { - BUG(); - } + space_info = btrfs_find_space_info(fs_devices->fs_info, ctl->type); + ASSERT(space_info); + + ctl->max_chunk_size = READ_ONCE(space_info->chunk_size); + ctl->max_stripe_size = ctl->max_chunk_size; + + if (ctl->type & BTRFS_BLOCK_GROUP_SYSTEM) + ctl->devs_max = min_t(int, ctl->devs_max, BTRFS_MAX_DEVS_SYS_CHUNK); /* We don't want a chunk larger than 10% of writable space */ ctl->max_chunk_size = min(div_factor(fs_devices->total_rw_bytes, 1), @@ -5273,6 +5278,9 @@ ctl->stripe_size); } + /* Stripe size should not go beyond 1G. */ + ctl->stripe_size = min_t(u64, ctl->stripe_size, SZ_1G); + /* Align to BTRFS_STRIPE_LEN */ ctl->stripe_size = round_down(ctl->stripe_size, BTRFS_STRIPE_LEN); ctl->chunk_size = ctl->stripe_size * data_stripes; @@ -6824,18 +6832,18 @@ static bool dev_args_match_device(const struct btrfs_dev_lookup_args *args, const struct btrfs_device *device) { - ASSERT((args->devid != (u64)-1) || args->missing); + if (args->missing) { + if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA, &device->dev_state) && + !device->bdev) + return true; + return false; + } - if ((args->devid != (u64)-1) && device->devid != args->devid) + if (device->devid != args->devid) return false; if (args->uuid && memcmp(device->uuid, args->uuid, BTRFS_UUID_SIZE) != 0) return false; - if (!args->missing) - return true; - if (test_bit(BTRFS_DEV_STATE_IN_FS_METADATA, &device->dev_state) && - !device->bdev) - return true; - return false; + return true; } /* @@ -7639,10 +7647,11 @@ return ret; } -void btrfs_init_devices_late(struct btrfs_fs_info *fs_info) +int btrfs_init_devices_late(struct btrfs_fs_info *fs_info) { struct btrfs_fs_devices *fs_devices = fs_info->fs_devices, *seed_devs; struct btrfs_device *device; + int ret = 0; fs_devices->fs_info = fs_info; @@ -7651,12 +7660,18 @@ device->fs_info = fs_info; list_for_each_entry(seed_devs, &fs_devices->seed_list, seed_list) { - list_for_each_entry(device, &seed_devs->devices, dev_list) + list_for_each_entry(device, &seed_devs->devices, dev_list) { device->fs_info = fs_info; + ret = btrfs_get_dev_zone_info(device, false); + if (ret) + break; + } seed_devs->fs_info = fs_info; } mutex_unlock(&fs_devices->device_list_mutex); + + return ret; } static u64 btrfs_dev_stats_value(const struct extent_buffer *eb, --- linux-5.19.0.orig/fs/btrfs/volumes.h +++ linux-5.19.0/fs/btrfs/volumes.h @@ -591,7 +591,7 @@ void btrfs_dev_stat_inc_and_print(struct btrfs_device *dev, int index); int btrfs_get_dev_stats(struct btrfs_fs_info *fs_info, struct btrfs_ioctl_get_dev_stats *stats); -void btrfs_init_devices_late(struct btrfs_fs_info *fs_info); +int btrfs_init_devices_late(struct btrfs_fs_info *fs_info); int btrfs_init_dev_stats(struct btrfs_fs_info *fs_info); int btrfs_run_dev_stats(struct btrfs_trans_handle *trans); void btrfs_rm_dev_replace_remove_srcdev(struct btrfs_device *srcdev); --- linux-5.19.0.orig/fs/btrfs/xattr.c +++ linux-5.19.0/fs/btrfs/xattr.c @@ -371,6 +371,9 @@ const char *name, const void *buffer, size_t size, int flags) { + if (btrfs_root_readonly(BTRFS_I(inode)->root)) + return -EROFS; + name = xattr_full_name(handler, name); return btrfs_setxattr_trans(inode, name, buffer, size, flags); } --- linux-5.19.0.orig/fs/btrfs/zoned.c +++ linux-5.19.0/fs/btrfs/zoned.c @@ -134,7 +134,8 @@ super[i] = page_address(page[i]); } - if (super[0]->generation > super[1]->generation) + if (btrfs_super_generation(super[0]) > + btrfs_super_generation(super[1])) sector = zones[1].start; else sector = zones[0].start; @@ -415,6 +416,25 @@ nr_sectors = bdev_nr_sectors(bdev); zone_info->zone_size_shift = ilog2(zone_info->zone_size); zone_info->nr_zones = nr_sectors >> ilog2(zone_sectors); + /* + * We limit max_zone_append_size also by max_segments * + * PAGE_SIZE. Technically, we can have multiple pages per segment. But, + * since btrfs adds the pages one by one to a bio, and btrfs cannot + * increase the metadata reservation even if it increases the number of + * extents, it is safe to stick with the limit. + * + * With the zoned emulation, we can have non-zoned device on the zoned + * mode. In this case, we don't have a valid max zone append size. So, + * use max_segments * PAGE_SIZE as the pseudo max_zone_append_size. + */ + if (bdev_is_zoned(bdev)) { + zone_info->max_zone_append_size = min_t(u64, + (u64)bdev_max_zone_append_sectors(bdev) << SECTOR_SHIFT, + (u64)bdev_max_segments(bdev) << PAGE_SHIFT); + } else { + zone_info->max_zone_append_size = + (u64)bdev_max_segments(bdev) << PAGE_SHIFT; + } if (!IS_ALIGNED(nr_sectors, zone_sectors)) zone_info->nr_zones++; @@ -447,7 +467,7 @@ goto out; } - zones = kcalloc(BTRFS_REPORT_NR_ZONES, sizeof(struct blk_zone), GFP_KERNEL); + zones = kvcalloc(BTRFS_REPORT_NR_ZONES, sizeof(struct blk_zone), GFP_KERNEL); if (!zones) { ret = -ENOMEM; goto out; @@ -566,7 +586,7 @@ } - kfree(zones); + kvfree(zones); switch (bdev_zoned_model(bdev)) { case BLK_ZONED_HM: @@ -598,7 +618,7 @@ return 0; out: - kfree(zones); + kvfree(zones); out_free_zone_info: btrfs_destroy_dev_zone_info(device); @@ -620,6 +640,46 @@ device->zone_info = NULL; } +struct btrfs_zoned_device_info *btrfs_clone_dev_zone_info(struct btrfs_device *orig_dev) +{ + struct btrfs_zoned_device_info *zone_info; + + zone_info = kmemdup(orig_dev->zone_info, sizeof(*zone_info), GFP_KERNEL); + if (!zone_info) + return NULL; + + zone_info->seq_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL); + if (!zone_info->seq_zones) + goto out; + + bitmap_copy(zone_info->seq_zones, orig_dev->zone_info->seq_zones, + zone_info->nr_zones); + + zone_info->empty_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL); + if (!zone_info->empty_zones) + goto out; + + bitmap_copy(zone_info->empty_zones, orig_dev->zone_info->empty_zones, + zone_info->nr_zones); + + zone_info->active_zones = bitmap_zalloc(zone_info->nr_zones, GFP_KERNEL); + if (!zone_info->active_zones) + goto out; + + bitmap_copy(zone_info->active_zones, orig_dev->zone_info->active_zones, + zone_info->nr_zones); + zone_info->zone_cache = NULL; + + return zone_info; + +out: + bitmap_free(zone_info->seq_zones); + bitmap_free(zone_info->empty_zones); + bitmap_free(zone_info->active_zones); + kfree(zone_info); + return NULL; +} + int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos, struct blk_zone *zone) { @@ -640,6 +700,7 @@ u64 zoned_devices = 0; u64 nr_devices = 0; u64 zone_size = 0; + u64 max_zone_append_size = 0; const bool incompat_zoned = btrfs_fs_incompat(fs_info, ZONED); int ret = 0; @@ -674,6 +735,11 @@ ret = -EINVAL; goto out; } + if (!max_zone_append_size || + (zone_info->max_zone_append_size && + zone_info->max_zone_append_size < max_zone_append_size)) + max_zone_append_size = + zone_info->max_zone_append_size; } nr_devices++; } @@ -723,7 +789,11 @@ } fs_info->zone_size = zone_size; + fs_info->max_zone_append_size = ALIGN_DOWN(max_zone_append_size, + fs_info->sectorsize); fs_info->fs_devices->chunk_alloc_policy = BTRFS_CHUNK_ALLOC_ZONED; + if (fs_info->max_zone_append_size < fs_info->max_extent_size) + fs_info->max_extent_size = fs_info->max_zone_append_size; /* * Check mount options here, because we might change fs_info->zoned @@ -1158,7 +1228,7 @@ * offset. */ static int calculate_alloc_pointer(struct btrfs_block_group *cache, - u64 *offset_ret) + u64 *offset_ret, bool new) { struct btrfs_fs_info *fs_info = cache->fs_info; struct btrfs_root *root; @@ -1168,6 +1238,21 @@ int ret; u64 length; + /* + * Avoid tree lookups for a new block group, there's no use for it. + * It must always be 0. + * + * Also, we have a lock chain of extent buffer lock -> chunk mutex. + * For new a block group, this function is called from + * btrfs_make_block_group() which is already taking the chunk mutex. + * Thus, we cannot call calculate_alloc_pointer() which takes extent + * buffer locks to avoid deadlock. + */ + if (new) { + *offset_ret = 0; + return 0; + } + path = btrfs_alloc_path(); if (!path) return -ENOMEM; @@ -1303,6 +1388,13 @@ else num_conventional++; + /* + * Consider a zone as active if we can allow any number of + * active zones. + */ + if (!device->zone_info->max_active_zones) + __set_bit(i, active); + if (!is_sequential) { alloc_offsets[i] = WP_CONVENTIONAL; continue; @@ -1369,45 +1461,23 @@ __set_bit(i, active); break; } - - /* - * Consider a zone as active if we can allow any number of - * active zones. - */ - if (!device->zone_info->max_active_zones) - __set_bit(i, active); } if (num_sequential > 0) cache->seq_zone = true; if (num_conventional > 0) { - /* - * Avoid calling calculate_alloc_pointer() for new BG. It - * is no use for new BG. It must be always 0. - * - * Also, we have a lock chain of extent buffer lock -> - * chunk mutex. For new BG, this function is called from - * btrfs_make_block_group() which is already taking the - * chunk mutex. Thus, we cannot call - * calculate_alloc_pointer() which takes extent buffer - * locks to avoid deadlock. - */ - /* Zone capacity is always zone size in emulation */ cache->zone_capacity = cache->length; - if (new) { - cache->alloc_offset = 0; - goto out; - } - ret = calculate_alloc_pointer(cache, &last_alloc); - if (ret || map->num_stripes == num_conventional) { - if (!ret) - cache->alloc_offset = last_alloc; - else - btrfs_err(fs_info, + ret = calculate_alloc_pointer(cache, &last_alloc, new); + if (ret) { + btrfs_err(fs_info, "zoned: failed to determine allocation offset of bg %llu", - cache->start); + cache->start); + goto out; + } else if (map->num_stripes == num_conventional) { + cache->alloc_offset = last_alloc; + cache->zone_is_active = 1; goto out; } } @@ -1475,13 +1545,6 @@ goto out; } - if (cache->zone_is_active) { - btrfs_get_block_group(cache); - spin_lock(&fs_info->zone_active_bgs_lock); - list_add_tail(&cache->active_bg_list, &fs_info->zone_active_bgs); - spin_unlock(&fs_info->zone_active_bgs_lock); - } - out: if (cache->alloc_offset > fs_info->zone_size) { btrfs_err(fs_info, @@ -1506,10 +1569,16 @@ ret = -EIO; } - if (!ret) + if (!ret) { cache->meta_write_pointer = cache->alloc_offset + cache->start; - - if (ret) { + if (cache->zone_is_active) { + btrfs_get_block_group(cache); + spin_lock(&fs_info->zone_active_bgs_lock); + list_add_tail(&cache->active_bg_list, + &fs_info->zone_active_bgs); + spin_unlock(&fs_info->zone_active_bgs_lock); + } + } else { kfree(cache->physical_map); cache->physical_map = NULL; } @@ -1829,6 +1898,7 @@ bool btrfs_zone_activate(struct btrfs_block_group *block_group) { struct btrfs_fs_info *fs_info = block_group->fs_info; + struct btrfs_space_info *space_info = block_group->space_info; struct map_lookup *map; struct btrfs_device *device; u64 physical; @@ -1840,6 +1910,7 @@ map = block_group->physical_map; + spin_lock(&space_info->lock); spin_lock(&block_group->lock); if (block_group->zone_is_active) { ret = true; @@ -1868,7 +1939,10 @@ /* Successfully activated all the zones */ block_group->zone_is_active = 1; + space_info->active_total_bytes += block_group->length; spin_unlock(&block_group->lock); + btrfs_try_granting_tickets(fs_info, space_info); + spin_unlock(&space_info->lock); /* For the active block group list */ btrfs_get_block_group(block_group); @@ -1881,13 +1955,48 @@ out_unlock: spin_unlock(&block_group->lock); + spin_unlock(&space_info->lock); return ret; } +static void wait_eb_writebacks(struct btrfs_block_group *block_group) +{ + struct btrfs_fs_info *fs_info = block_group->fs_info; + const u64 end = block_group->start + block_group->length; + struct radix_tree_iter iter; + struct extent_buffer *eb; + void __rcu **slot; + + rcu_read_lock(); + radix_tree_for_each_slot(slot, &fs_info->buffer_radix, &iter, + block_group->start >> fs_info->sectorsize_bits) { + eb = radix_tree_deref_slot(slot); + if (!eb) + continue; + if (radix_tree_deref_retry(eb)) { + slot = radix_tree_iter_retry(&iter); + continue; + } + + if (eb->start < block_group->start) + continue; + if (eb->start >= end) + break; + + slot = radix_tree_iter_resume(slot, &iter); + rcu_read_unlock(); + wait_on_extent_buffer_writeback(eb); + rcu_read_lock(); + } + rcu_read_unlock(); +} + static int do_zone_finish(struct btrfs_block_group *block_group, bool fully_written) { struct btrfs_fs_info *fs_info = block_group->fs_info; struct map_lookup *map; + const bool is_metadata = (block_group->flags & + (BTRFS_BLOCK_GROUP_METADATA | BTRFS_BLOCK_GROUP_SYSTEM)); int ret = 0; int i; @@ -1898,8 +2007,7 @@ } /* Check if we have unwritten allocated space */ - if ((block_group->flags & - (BTRFS_BLOCK_GROUP_METADATA | BTRFS_BLOCK_GROUP_SYSTEM)) && + if (is_metadata && block_group->start + block_group->alloc_offset > block_group->meta_write_pointer) { spin_unlock(&block_group->lock); return -EAGAIN; @@ -1924,6 +2032,9 @@ /* No need to wait for NOCOW writers. Zoned mode does not allow that */ btrfs_wait_ordered_roots(fs_info, U64_MAX, block_group->start, block_group->length); + /* Wait for extent buffers to be written. */ + if (is_metadata) + wait_eb_writebacks(block_group); spin_lock(&block_group->lock); @@ -1981,6 +2092,8 @@ /* For active_bg_list */ btrfs_put_block_group(block_group); + clear_and_wake_up_bit(BTRFS_FS_NEED_ZONE_FINISH, &fs_info->flags); + return 0; } @@ -2017,6 +2130,9 @@ } mutex_unlock(&fs_info->chunk_mutex); + if (!ret) + set_bit(BTRFS_FS_NEED_ZONE_FINISH, &fs_info->flags); + return ret; } @@ -2160,3 +2276,96 @@ spin_unlock(&block_group->lock); btrfs_put_block_group(block_group); } + +int btrfs_zone_finish_one_bg(struct btrfs_fs_info *fs_info) +{ + struct btrfs_block_group *block_group; + struct btrfs_block_group *min_bg = NULL; + u64 min_avail = U64_MAX; + int ret; + + spin_lock(&fs_info->zone_active_bgs_lock); + list_for_each_entry(block_group, &fs_info->zone_active_bgs, + active_bg_list) { + u64 avail; + + spin_lock(&block_group->lock); + if (block_group->reserved || + (block_group->flags & BTRFS_BLOCK_GROUP_SYSTEM)) { + spin_unlock(&block_group->lock); + continue; + } + + avail = block_group->zone_capacity - block_group->alloc_offset; + if (min_avail > avail) { + if (min_bg) + btrfs_put_block_group(min_bg); + min_bg = block_group; + min_avail = avail; + btrfs_get_block_group(min_bg); + } + spin_unlock(&block_group->lock); + } + spin_unlock(&fs_info->zone_active_bgs_lock); + + if (!min_bg) + return 0; + + ret = btrfs_zone_finish(min_bg); + btrfs_put_block_group(min_bg); + + return ret < 0 ? ret : 1; +} + +int btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, + struct btrfs_space_info *space_info, + bool do_finish) +{ + struct btrfs_block_group *bg; + int index; + + if (!btrfs_is_zoned(fs_info) || (space_info->flags & BTRFS_BLOCK_GROUP_DATA)) + return 0; + + /* No more block groups to activate */ + if (space_info->active_total_bytes == space_info->total_bytes) + return 0; + + for (;;) { + int ret; + bool need_finish = false; + + down_read(&space_info->groups_sem); + for (index = 0; index < BTRFS_NR_RAID_TYPES; index++) { + list_for_each_entry(bg, &space_info->block_groups[index], + list) { + if (!spin_trylock(&bg->lock)) + continue; + if (btrfs_zoned_bg_is_full(bg) || bg->zone_is_active) { + spin_unlock(&bg->lock); + continue; + } + spin_unlock(&bg->lock); + + if (btrfs_zone_activate(bg)) { + up_read(&space_info->groups_sem); + return 1; + } + + need_finish = true; + } + } + up_read(&space_info->groups_sem); + + if (!do_finish || !need_finish) + break; + + ret = btrfs_zone_finish_one_bg(fs_info); + if (ret == 0) + break; + if (ret < 0) + return ret; + } + + return 0; +} --- linux-5.19.0.orig/fs/btrfs/zoned.h +++ linux-5.19.0/fs/btrfs/zoned.h @@ -19,6 +19,7 @@ */ u64 zone_size; u8 zone_size_shift; + u64 max_zone_append_size; u32 nr_zones; unsigned int max_active_zones; atomic_t active_zones_left; @@ -35,6 +36,7 @@ int btrfs_get_dev_zone_info_all_devices(struct btrfs_fs_info *fs_info); int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache); void btrfs_destroy_dev_zone_info(struct btrfs_device *device); +struct btrfs_zoned_device_info *btrfs_clone_dev_zone_info(struct btrfs_device *orig_dev); int btrfs_check_zoned_mode(struct btrfs_fs_info *fs_info); int btrfs_check_mountopts_zoned(struct btrfs_fs_info *info); int btrfs_sb_log_location_bdev(struct block_device *bdev, int mirror, int rw, @@ -79,6 +81,9 @@ bool btrfs_zoned_should_reclaim(struct btrfs_fs_info *fs_info); void btrfs_zoned_release_data_reloc_bg(struct btrfs_fs_info *fs_info, u64 logical, u64 length); +int btrfs_zone_finish_one_bg(struct btrfs_fs_info *fs_info); +int btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, + struct btrfs_space_info *space_info, bool do_finish); #else /* CONFIG_BLK_DEV_ZONED */ static inline int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos, struct blk_zone *zone) @@ -99,6 +104,16 @@ static inline void btrfs_destroy_dev_zone_info(struct btrfs_device *device) { } +/* + * In case the kernel is compiled without CONFIG_BLK_DEV_ZONED we'll never call + * into btrfs_clone_dev_zone_info() so it's safe to return NULL here. + */ +static inline struct btrfs_zoned_device_info *btrfs_clone_dev_zone_info( + struct btrfs_device *orig_dev) +{ + return NULL; +} + static inline int btrfs_check_zoned_mode(const struct btrfs_fs_info *fs_info) { if (!btrfs_is_zoned(fs_info)) @@ -248,6 +263,20 @@ static inline void btrfs_zoned_release_data_reloc_bg(struct btrfs_fs_info *fs_info, u64 logical, u64 length) { } + +static inline int btrfs_zone_finish_one_bg(struct btrfs_fs_info *fs_info) +{ + return 1; +} + +static inline int btrfs_zoned_activate_one_bg(struct btrfs_fs_info *fs_info, + struct btrfs_space_info *space_info, + bool do_finish) +{ + /* Consider all the block groups are active */ + return 0; +} + #endif static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos) --- linux-5.19.0.orig/fs/buffer.c +++ linux-5.19.0/fs/buffer.c @@ -2349,7 +2349,7 @@ struct address_space *mapping = inode->i_mapping; const struct address_space_operations *aops = mapping->a_ops; struct page *page; - void *fsdata; + void *fsdata = NULL; int err; err = inode_newsize_ok(inode, size); @@ -2375,7 +2375,7 @@ const struct address_space_operations *aops = mapping->a_ops; unsigned int blocksize = i_blocksize(inode); struct page *page; - void *fsdata; + void *fsdata = NULL; pgoff_t index, curidx; loff_t curpos; unsigned zerofrom, offset, len; --- linux-5.19.0.orig/fs/cachefiles/internal.h +++ linux-5.19.0/fs/cachefiles/internal.h @@ -111,6 +111,7 @@ char *tag; /* cache binding tag */ refcount_t unbind_pincount;/* refcount to do daemon unbind */ struct xarray reqs; /* xarray of pending on-demand requests */ + unsigned long req_id_next; struct xarray ondemand_ids; /* xarray for ondemand_id allocation */ u32 ondemand_id_next; }; --- linux-5.19.0.orig/fs/cachefiles/ondemand.c +++ linux-5.19.0/fs/cachefiles/ondemand.c @@ -158,9 +158,13 @@ /* fail OPEN request if daemon reports an error */ if (size < 0) { - if (!IS_ERR_VALUE(size)) - size = -EINVAL; - req->error = size; + if (!IS_ERR_VALUE(size)) { + req->error = -EINVAL; + ret = -EINVAL; + } else { + req->error = size; + ret = 0; + } goto out; } @@ -238,14 +242,19 @@ unsigned long id = 0; size_t n; int ret = 0; - XA_STATE(xas, &cache->reqs, 0); + XA_STATE(xas, &cache->reqs, cache->req_id_next); /* - * Search for a request that has not ever been processed, to prevent - * requests from being processed repeatedly. + * Cyclically search for a request that has not ever been processed, + * to prevent requests from being processed repeatedly, and make + * request distribution fair. */ xa_lock(&cache->reqs); req = xas_find_marked(&xas, UINT_MAX, CACHEFILES_REQ_NEW); + if (!req && cache->req_id_next > 0) { + xas_set(&xas, 0); + req = xas_find_marked(&xas, cache->req_id_next - 1, CACHEFILES_REQ_NEW); + } if (!req) { xa_unlock(&cache->reqs); return 0; @@ -260,6 +269,7 @@ } xas_clear_mark(&xas, CACHEFILES_REQ_NEW); + cache->req_id_next = xas.xa_index + 1; xa_unlock(&cache->reqs); id = xas.xa_index; --- linux-5.19.0.orig/fs/ceph/caps.c +++ linux-5.19.0/fs/ceph/caps.c @@ -2246,7 +2246,6 @@ struct ceph_mds_client *mdsc = ceph_sb_to_client(inode->i_sb)->mdsc; struct ceph_inode_info *ci = ceph_inode(inode); struct ceph_mds_request *req1 = NULL, *req2 = NULL; - unsigned int max_sessions; int ret, err = 0; spin_lock(&ci->i_unsafe_lock); @@ -2265,27 +2264,23 @@ spin_unlock(&ci->i_unsafe_lock); /* - * The mdsc->max_sessions is unlikely to be changed - * mostly, here we will retry it by reallocating the - * sessions array memory to get rid of the mdsc->mutex - * lock. - */ -retry: - max_sessions = mdsc->max_sessions; - - /* * Trigger to flush the journal logs in all the relevant MDSes * manually, or in the worst case we must wait at most 5 seconds * to wait the journal logs to be flushed by the MDSes periodically. */ - if ((req1 || req2) && likely(max_sessions)) { - struct ceph_mds_session **sessions = NULL; - struct ceph_mds_session *s; + if (req1 || req2) { struct ceph_mds_request *req; + struct ceph_mds_session **sessions; + struct ceph_mds_session *s; + unsigned int max_sessions; int i; - sessions = kzalloc(max_sessions * sizeof(s), GFP_KERNEL); + mutex_lock(&mdsc->mutex); + max_sessions = mdsc->max_sessions; + + sessions = kcalloc(max_sessions, sizeof(s), GFP_KERNEL); if (!sessions) { + mutex_unlock(&mdsc->mutex); err = -ENOMEM; goto out; } @@ -2297,16 +2292,6 @@ s = req->r_session; if (!s) continue; - if (unlikely(s->s_mds >= max_sessions)) { - spin_unlock(&ci->i_unsafe_lock); - for (i = 0; i < max_sessions; i++) { - s = sessions[i]; - if (s) - ceph_put_mds_session(s); - } - kfree(sessions); - goto retry; - } if (!sessions[s->s_mds]) { s = ceph_get_mds_session(s); sessions[s->s_mds] = s; @@ -2319,16 +2304,6 @@ s = req->r_session; if (!s) continue; - if (unlikely(s->s_mds >= max_sessions)) { - spin_unlock(&ci->i_unsafe_lock); - for (i = 0; i < max_sessions; i++) { - s = sessions[i]; - if (s) - ceph_put_mds_session(s); - } - kfree(sessions); - goto retry; - } if (!sessions[s->s_mds]) { s = ceph_get_mds_session(s); sessions[s->s_mds] = s; @@ -2340,11 +2315,12 @@ /* the auth MDS */ spin_lock(&ci->i_ceph_lock); if (ci->i_auth_cap) { - s = ci->i_auth_cap->session; - if (!sessions[s->s_mds]) - sessions[s->s_mds] = ceph_get_mds_session(s); + s = ci->i_auth_cap->session; + if (!sessions[s->s_mds]) + sessions[s->s_mds] = ceph_get_mds_session(s); } spin_unlock(&ci->i_ceph_lock); + mutex_unlock(&mdsc->mutex); /* send flush mdlog request to MDSes */ for (i = 0; i < max_sessions; i++) { @@ -3578,24 +3554,23 @@ fill_inline = true; } - if (ci->i_auth_cap == cap && - le32_to_cpu(grant->op) == CEPH_CAP_OP_IMPORT) { - if (newcaps & ~extra_info->issued) - wake = true; + if (le32_to_cpu(grant->op) == CEPH_CAP_OP_IMPORT) { + if (ci->i_auth_cap == cap) { + if (newcaps & ~extra_info->issued) + wake = true; + + if (ci->i_requested_max_size > max_size || + !(le32_to_cpu(grant->wanted) & CEPH_CAP_ANY_FILE_WR)) { + /* re-request max_size if necessary */ + ci->i_requested_max_size = 0; + wake = true; + } - if (ci->i_requested_max_size > max_size || - !(le32_to_cpu(grant->wanted) & CEPH_CAP_ANY_FILE_WR)) { - /* re-request max_size if necessary */ - ci->i_requested_max_size = 0; - wake = true; + ceph_kick_flushing_inode_caps(session, ci); } - - ceph_kick_flushing_inode_caps(session, ci); - spin_unlock(&ci->i_ceph_lock); up_read(&session->s_mdsc->snap_rwsem); - } else { - spin_unlock(&ci->i_ceph_lock); } + spin_unlock(&ci->i_ceph_lock); if (fill_inline) ceph_fill_inline_data(inode, NULL, extra_info->inline_data, --- linux-5.19.0.orig/fs/ceph/file.c +++ linux-5.19.0/fs/ceph/file.c @@ -740,6 +740,12 @@ if (dentry->d_name.len > NAME_MAX) return -ENAMETOOLONG; + /* + * Do not truncate the file, since atomic_open is called before the + * permission check. The caller will do the truncation afterward. + */ + flags &= ~O_TRUNC; + if (flags & O_CREAT) { if (ceph_quota_is_max_files_exceeded(dir)) return -EDQUOT; @@ -807,9 +813,7 @@ } set_bit(CEPH_MDS_R_PARENT_LOCKED, &req->r_req_flags); - err = ceph_mdsc_do_request(mdsc, - (flags & (O_CREAT|O_TRUNC)) ? dir : NULL, - req); + err = ceph_mdsc_do_request(mdsc, (flags & O_CREAT) ? dir : NULL, req); if (err == -ENOENT) { dentry = ceph_handle_snapdir(req, dentry); if (IS_ERR(dentry)) { --- linux-5.19.0.orig/fs/ceph/mds_client.c +++ linux-5.19.0/fs/ceph/mds_client.c @@ -1220,14 +1220,17 @@ if (count > 0) { size_t i; size_t size = FEATURE_BYTES(count); + unsigned long bit; if (WARN_ON_ONCE(*p + 4 + size > end)) return -ERANGE; ceph_encode_32(p, size); memset(*p, 0, size); - for (i = 0; i < count; i++) - ((unsigned char*)(*p))[i / 8] |= BIT(feature_bits[i] % 8); + for (i = 0; i < count; i++) { + bit = feature_bits[i]; + ((unsigned char *)(*p))[bit / 8] |= BIT(bit % 8); + } *p += size; } else { if (WARN_ON_ONCE(*p + 4 > end)) --- linux-5.19.0.orig/fs/ceph/mds_client.h +++ linux-5.19.0/fs/ceph/mds_client.h @@ -33,10 +33,6 @@ CEPHFS_FEATURE_MAX = CEPHFS_FEATURE_METRIC_COLLECT, }; -/* - * This will always have the highest feature bit value - * as the last element of the array. - */ #define CEPHFS_FEATURES_CLIENT_SUPPORTED { \ 0, 1, 2, 3, 4, 5, 6, 7, \ CEPHFS_FEATURE_MIMIC, \ @@ -45,8 +41,6 @@ CEPHFS_FEATURE_MULTI_RECONNECT, \ CEPHFS_FEATURE_DELEG_INO, \ CEPHFS_FEATURE_METRIC_COLLECT, \ - \ - CEPHFS_FEATURE_MAX, \ } #define CEPHFS_FEATURES_CLIENT_REQUIRED {} --- linux-5.19.0.orig/fs/ceph/snap.c +++ linux-5.19.0/fs/ceph/snap.c @@ -763,7 +763,7 @@ struct ceph_mds_snap_realm *ri; /* encoded */ __le64 *snaps; /* encoded */ __le64 *prior_parent_snaps; /* encoded */ - struct ceph_snap_realm *realm = NULL; + struct ceph_snap_realm *realm; struct ceph_snap_realm *first_realm = NULL; struct ceph_snap_realm *realm_to_rebuild = NULL; int rebuild_snapcs; @@ -774,6 +774,7 @@ dout("%s deletion=%d\n", __func__, deletion); more: + realm = NULL; rebuild_snapcs = 0; ceph_decode_need(&p, e, sizeof(*ri), bad); ri = p; --- linux-5.19.0.orig/fs/ceph/super.h +++ linux-5.19.0/fs/ceph/super.h @@ -1059,8 +1059,7 @@ void *acl; #endif #ifdef CONFIG_CEPH_FS_SECURITY_LABEL - void *sec_ctx; - u32 sec_ctxlen; + struct lsmcontext lsmctx; #endif struct ceph_pagelist *pagelist; }; --- linux-5.19.0.orig/fs/ceph/xattr.c +++ linux-5.19.0/fs/ceph/xattr.c @@ -1328,8 +1328,7 @@ int err; err = security_dentry_init_security(dentry, mode, &dentry->d_name, - &name, &as_ctx->sec_ctx, - &as_ctx->sec_ctxlen); + &name, &as_ctx->lsmctx); if (err < 0) { WARN_ON_ONCE(err != -EOPNOTSUPP); err = 0; /* do nothing */ @@ -1354,7 +1353,7 @@ */ name_len = strlen(name); err = ceph_pagelist_reserve(pagelist, - 4 * 2 + name_len + as_ctx->sec_ctxlen); + 4 * 2 + name_len + as_ctx->lsmctx.len); if (err) goto out; @@ -1374,11 +1373,9 @@ as_ctx->pagelist = pagelist; } - ceph_pagelist_encode_32(pagelist, name_len); - ceph_pagelist_append(pagelist, name, name_len); - - ceph_pagelist_encode_32(pagelist, as_ctx->sec_ctxlen); - ceph_pagelist_append(pagelist, as_ctx->sec_ctx, as_ctx->sec_ctxlen); + ceph_pagelist_encode_32(pagelist, as_ctx->lsmctx.len); + ceph_pagelist_append(pagelist, as_ctx->lsmctx.context, + as_ctx->lsmctx.len); err = 0; out: @@ -1396,7 +1393,7 @@ posix_acl_release(as_ctx->default_acl); #endif #ifdef CONFIG_CEPH_FS_SECURITY_LABEL - security_release_secctx(as_ctx->sec_ctx, as_ctx->sec_ctxlen); + security_release_secctx(&as_ctx->lsmctx); #endif if (as_ctx->pagelist) ceph_pagelist_release(as_ctx->pagelist); --- linux-5.19.0.orig/fs/char_dev.c +++ linux-5.19.0/fs/char_dev.c @@ -547,7 +547,7 @@ } rc = device_add(dev); - if (rc) + if (rc && dev->devt) cdev_del(cdev); return rc; --- linux-5.19.0.orig/fs/cifs/cifsfs.c +++ linux-5.19.0/fs/cifs/cifsfs.c @@ -1232,6 +1232,12 @@ lock_two_nondirectories(target_inode, src_inode); cifs_dbg(FYI, "about to flush pages\n"); + + rc = filemap_write_and_wait_range(src_inode->i_mapping, off, + off + len - 1); + if (rc) + goto unlock; + /* should we flush first and last page first */ truncate_inode_pages(&target_inode->i_data, 0); @@ -1246,6 +1252,8 @@ * that target is updated on the server */ CIFS_I(target_inode)->time = 0; + +unlock: /* although unlocking in the reverse order from locking is not * strictly necessary here it is a little cleaner to be consistent */ @@ -1275,8 +1283,11 @@ ssize_t rc; struct cifsFileInfo *cfile = dst_file->private_data; - if (cfile->swapfile) - return -EOPNOTSUPP; + if (cfile->swapfile) { + rc = -EOPNOTSUPP; + free_xid(xid); + return rc; + } rc = cifs_file_copychunk_range(xid, src_file, off, dst_file, destoff, len, flags); --- linux-5.19.0.orig/fs/cifs/cifsglob.h +++ linux-5.19.0/fs/cifs/cifsglob.h @@ -2085,9 +2085,9 @@ return is_tcon_dfs(tcon) || (ref && (ref->flags & DFSREF_REFERRAL_SERVER)); } -static inline u64 cifs_flock_len(struct file_lock *fl) +static inline u64 cifs_flock_len(const struct file_lock *fl) { - return fl->fl_end == OFFSET_MAX ? 0 : fl->fl_end - fl->fl_start + 1; + return (u64)fl->fl_end - fl->fl_start + 1; } static inline size_t ntlmssp_workstation_name_size(const struct cifs_ses *ses) --- linux-5.19.0.orig/fs/cifs/cifsproto.h +++ linux-5.19.0/fs/cifs/cifsproto.h @@ -642,7 +642,7 @@ int cifs_chan_update_iface(struct cifs_ses *ses, struct TCP_Server_Info *server); int -SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon); +SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon, bool in_mount); void extract_unc_hostname(const char *unc, const char **h, size_t *len); int copy_path_name(char *dst, const char *src); --- linux-5.19.0.orig/fs/cifs/connect.c +++ linux-5.19.0/fs/cifs/connect.c @@ -155,7 +155,7 @@ /* * query server network interfaces, in case they change */ - rc = SMB3_request_interfaces(0, tcon); + rc = SMB3_request_interfaces(0, tcon, false); if (rc) { cifs_dbg(FYI, "%s: failed to query server interfaces: %d\n", __func__, rc); @@ -707,9 +707,6 @@ int length = 0; int total_read; - smb_msg->msg_control = NULL; - smb_msg->msg_controllen = 0; - for (total_read = 0; msg_data_left(smb_msg); total_read += length) { try_to_freeze(); @@ -765,7 +762,7 @@ cifs_read_from_socket(struct TCP_Server_Info *server, char *buf, unsigned int to_read) { - struct msghdr smb_msg; + struct msghdr smb_msg = {}; struct kvec iov = {.iov_base = buf, .iov_len = to_read}; iov_iter_kvec(&smb_msg.msg_iter, READ, &iov, 1, to_read); @@ -775,15 +772,13 @@ ssize_t cifs_discard_from_socket(struct TCP_Server_Info *server, size_t to_read) { - struct msghdr smb_msg; + struct msghdr smb_msg = {}; /* * iov_iter_discard already sets smb_msg.type and count and iov_offset * and cifs_readv_from_socket sets msg_control and msg_controllen * so little to initialize in struct msghdr */ - smb_msg.msg_name = NULL; - smb_msg.msg_namelen = 0; iov_iter_discard(&smb_msg.msg_iter, READ, to_read); return cifs_readv_from_socket(server, &smb_msg); @@ -793,7 +788,7 @@ cifs_read_page_from_socket(struct TCP_Server_Info *server, struct page *page, unsigned int page_offset, unsigned int to_read) { - struct msghdr smb_msg; + struct msghdr smb_msg = {}; struct bio_vec bv = { .bv_page = page, .bv_len = to_read, .bv_offset = page_offset}; iov_iter_bvec(&smb_msg.msg_iter, READ, &bv, 1, to_read); @@ -1544,6 +1539,7 @@ server->session_key.response = NULL; server->session_key.len = 0; kfree(server->hostname); + server->hostname = NULL; task = xchg(&server->tsk, NULL); if (task) @@ -3776,9 +3772,13 @@ uuid_copy(&cifs_sb->dfs_mount_id, &mnt_ctx.mount_id); out: - free_xid(mnt_ctx.xid); cifs_try_adding_channels(cifs_sb, mnt_ctx.ses); - return mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); + rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); + if (rc) + goto error; + + free_xid(mnt_ctx.xid); + return rc; error: dfs_cache_put_refsrv_sessions(&mnt_ctx.mount_id); @@ -3805,8 +3805,12 @@ goto error; } + rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); + if (rc) + goto error; + free_xid(mnt_ctx.xid); - return mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); + return rc; error: mount_put_conns(&mnt_ctx); @@ -3851,12 +3855,11 @@ pSMB->AndXCommand = 0xFF; pSMB->Flags = cpu_to_le16(TCON_EXTENDED_SECINFO); bcc_ptr = &pSMB->Password[0]; - if (tcon->pipe || (ses->server->sec_mode & SECMODE_USER)) { - pSMB->PasswordLength = cpu_to_le16(1); /* minimum */ - *bcc_ptr = 0; /* password is null byte */ - bcc_ptr++; /* skip password */ - /* already aligned so no need to do it below */ - } + + pSMB->PasswordLength = cpu_to_le16(1); /* minimum */ + *bcc_ptr = 0; /* password is null byte */ + bcc_ptr++; /* skip password */ + /* already aligned so no need to do it below */ if (ses->server->sign) smb_buffer->Flags2 |= SMBFLG2_SECURITY_SIGNATURE; --- linux-5.19.0.orig/fs/cifs/dir.c +++ linux-5.19.0/fs/cifs/dir.c @@ -543,8 +543,10 @@ cifs_dbg(FYI, "cifs_create parent inode = 0x%p name is: %pd and dentry = 0x%p\n", inode, direntry, direntry); - if (unlikely(cifs_forced_shutdown(CIFS_SB(inode->i_sb)))) - return -EIO; + if (unlikely(cifs_forced_shutdown(CIFS_SB(inode->i_sb)))) { + rc = -EIO; + goto out_free_xid; + } tlink = cifs_sb_tlink(CIFS_SB(inode->i_sb)); rc = PTR_ERR(tlink); --- linux-5.19.0.orig/fs/cifs/file.c +++ linux-5.19.0/fs/cifs/file.c @@ -1812,11 +1812,13 @@ struct cifsFileInfo *cfile; __u32 type; - rc = -EACCES; xid = get_xid(); - if (!(fl->fl_flags & FL_FLOCK)) - return -ENOLCK; + if (!(fl->fl_flags & FL_FLOCK)) { + rc = -ENOLCK; + free_xid(xid); + return rc; + } cfile = (struct cifsFileInfo *)file->private_data; tcon = tlink_tcon(cfile->tlink); @@ -1835,8 +1837,9 @@ * if no lock or unlock then nothing to do since we do not * know what it is */ + rc = -EOPNOTSUPP; free_xid(xid); - return -EOPNOTSUPP; + return rc; } rc = cifs_setlk(file, fl, type, wait_flag, posix_lck, lock, unlock, @@ -1861,9 +1864,9 @@ rc = -EACCES; xid = get_xid(); - cifs_dbg(FYI, "Lock parm: 0x%x flockflags: 0x%x flocktype: 0x%x start: %lld end: %lld\n", - cmd, flock->fl_flags, flock->fl_type, - flock->fl_start, flock->fl_end); + cifs_dbg(FYI, "%s: %pD2 cmd=0x%x type=0x%x flags=0x%x r=%lld:%lld\n", __func__, file, cmd, + flock->fl_flags, flock->fl_type, (long long)flock->fl_start, + (long long)flock->fl_end); cfile = (struct cifsFileInfo *)file->private_data; tcon = tlink_tcon(cfile->tlink); @@ -3327,6 +3330,9 @@ ssize_t cifs_direct_writev(struct kiocb *iocb, struct iov_iter *from) { + struct file *file = iocb->ki_filp; + + cifs_revalidate_mapping(file->f_inode); return __cifs_writev(iocb, from, true); } @@ -4021,6 +4027,15 @@ len = ctx->len; } + if (direct) { + rc = filemap_write_and_wait_range(file->f_inode->i_mapping, + offset, offset + len - 1); + if (rc) { + kref_put(&ctx->refcount, cifs_aio_ctx_release); + return -EAGAIN; + } + } + /* grab a lock here due to read response handlers can access ctx */ mutex_lock(&ctx->aio_mutex); @@ -4459,10 +4474,10 @@ * TODO: Send a whole batch of pages to be read * by the cache. */ - page = readahead_page(ractl); - last_batch_size = 1 << thp_order(page); + struct folio *folio = readahead_folio(ractl); + last_batch_size = folio_nr_pages(folio); if (cifs_readpage_from_fscache(ractl->mapping->host, - page) < 0) { + &folio->page) < 0) { /* * TODO: Deal with cache read failure * here, but for the moment, delegate @@ -4470,7 +4485,7 @@ */ caching = false; } - unlock_page(page); + folio_unlock(folio); next_cached++; cache_nr_pages--; if (cache_nr_pages == 0) @@ -4811,8 +4826,6 @@ struct TCP_Server_Info *server = tcon->ses->server; int rc = 0; bool purge_cache = false; - bool is_deferred = false; - struct cifs_deferred_close *dclose; wait_on_bit(&cinode->flags, CIFS_INODE_PENDING_WRITERS, TASK_UNINTERRUPTIBLE); @@ -4849,22 +4862,6 @@ oplock_break_ack: /* - * When oplock break is received and there are no active - * file handles but cached, then schedule deferred close immediately. - * So, new open will not use cached handle. - */ - spin_lock(&CIFS_I(inode)->deferred_lock); - is_deferred = cifs_is_deferred_close(cfile, &dclose); - spin_unlock(&CIFS_I(inode)->deferred_lock); - if (is_deferred && - cfile->deferred_close_scheduled && - delayed_work_pending(&cfile->deferred)) { - if (cancel_delayed_work(&cfile->deferred)) { - _cifsFileInfo_put(cfile, false, false); - goto oplock_break_done; - } - } - /* * releasing stale oplock after recent reconnect of smb session using * a now incorrect file handle is not a data integrity issue but do * not bother sending an oplock release if session to server still is @@ -4875,7 +4872,7 @@ cinode); cifs_dbg(FYI, "Oplock release rc = %d\n", rc); } -oplock_break_done: + _cifsFileInfo_put(cfile, false /* do not wait for ourself */, false); cifs_done_oplock_break(cinode); } --- linux-5.19.0.orig/fs/cifs/ioctl.c +++ linux-5.19.0/fs/cifs/ioctl.c @@ -342,7 +342,7 @@ rc = put_user(ExtAttrBits & FS_FL_USER_VISIBLE, (int __user *)arg); - if (rc != EOPNOTSUPP) + if (rc != -EOPNOTSUPP) break; } #endif /* CONFIG_CIFS_POSIX */ @@ -371,7 +371,7 @@ * pSMBFile->fid.netfid, * extAttrBits, * &ExtAttrMask); - * if (rc != EOPNOTSUPP) + * if (rc != -EOPNOTSUPP) * break; */ --- linux-5.19.0.orig/fs/cifs/misc.c +++ linux-5.19.0/fs/cifs/misc.c @@ -742,6 +742,8 @@ list_for_each_entry(cfile, &cifs_inode->openFileList, flist) { if (delayed_work_pending(&cfile->deferred)) { if (cancel_delayed_work(&cfile->deferred)) { + cifs_del_deferred_close(cfile); + tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); if (tmp_list == NULL) break; @@ -773,6 +775,8 @@ cfile = list_entry(tmp, struct cifsFileInfo, tlist); if (delayed_work_pending(&cfile->deferred)) { if (cancel_delayed_work(&cfile->deferred)) { + cifs_del_deferred_close(cfile); + tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); if (tmp_list == NULL) break; @@ -808,6 +812,8 @@ if (strstr(full_path, path)) { if (delayed_work_pending(&cfile->deferred)) { if (cancel_delayed_work(&cfile->deferred)) { + cifs_del_deferred_close(cfile); + tmp_list = kmalloc(sizeof(struct file_list), GFP_ATOMIC); if (tmp_list == NULL) break; --- linux-5.19.0.orig/fs/cifs/sess.c +++ linux-5.19.0/fs/cifs/sess.c @@ -302,14 +302,14 @@ /* now drop the ref to the current iface */ if (old_iface && iface) { - kref_put(&old_iface->refcount, release_iface); cifs_dbg(FYI, "replacing iface: %pIS with %pIS\n", &old_iface->sockaddr, &iface->sockaddr); - } else if (old_iface) { kref_put(&old_iface->refcount, release_iface); + } else if (old_iface) { cifs_dbg(FYI, "releasing ref to iface: %pIS\n", &old_iface->sockaddr); + kref_put(&old_iface->refcount, release_iface); } else { WARN_ON(!iface); cifs_dbg(FYI, "adding new iface: %pIS\n", &iface->sockaddr); @@ -496,6 +496,7 @@ cifs_put_tcp_session(chan->server, 0); } + free_xid(xid); return rc; } --- linux-5.19.0.orig/fs/cifs/smb2file.c +++ linux-5.19.0/fs/cifs/smb2file.c @@ -61,7 +61,6 @@ nr_ioctl_req.Reserved = 0; rc = SMB2_ioctl(xid, oparms->tcon, fid->persistent_fid, fid->volatile_fid, FSCTL_LMR_REQUEST_RESILIENCY, - true /* is_fsctl */, (char *)&nr_ioctl_req, sizeof(nr_ioctl_req), CIFSMaxBufSize, NULL, NULL /* no return info */); if (rc == -EOPNOTSUPP) { --- linux-5.19.0.orig/fs/cifs/smb2ops.c +++ linux-5.19.0/fs/cifs/smb2ops.c @@ -511,8 +511,7 @@ static int parse_server_interfaces(struct network_interface_info_ioctl_rsp *buf, - size_t buf_len, - struct cifs_ses *ses) + size_t buf_len, struct cifs_ses *ses, bool in_mount) { struct network_interface_info_ioctl_rsp *p; struct sockaddr_in *addr4; @@ -530,6 +529,7 @@ p = buf; spin_lock(&ses->iface_lock); + ses->iface_count = 0; /* * Go through iface_list and do kref_put to remove * any unused ifaces. ifaces in use will be removed @@ -542,6 +542,20 @@ } spin_unlock(&ses->iface_lock); + /* + * Samba server e.g. can return an empty interface list in some cases, + * which would only be a problem if we were requesting multichannel + */ + if (bytes_left == 0) { + /* avoid spamming logs every 10 minutes, so log only in mount */ + if ((ses->chan_max > 1) && in_mount) + cifs_dbg(VFS, + "empty network interface list returned by server %s\n", + ses->server->hostname); + rc = -EINVAL; + goto out; + } + while (bytes_left >= sizeof(*p)) { memset(&tmp_iface, 0, sizeof(tmp_iface)); tmp_iface.speed = le64_to_cpu(p->LinkSpeed); @@ -636,9 +650,9 @@ kref_put(&iface->refcount, release_iface); } else list_add_tail(&info->iface_head, &ses->iface_list); - spin_unlock(&ses->iface_lock); ses->iface_count++; + spin_unlock(&ses->iface_lock); ses->iface_last_update = jiffies; next_iface: nb_iface++; @@ -672,7 +686,7 @@ } int -SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon) +SMB3_request_interfaces(const unsigned int xid, struct cifs_tcon *tcon, bool in_mount) { int rc; unsigned int ret_data_len = 0; @@ -680,7 +694,7 @@ struct cifs_ses *ses = tcon->ses; rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, - FSCTL_QUERY_NETWORK_INTERFACE_INFO, true /* is_fsctl */, + FSCTL_QUERY_NETWORK_INTERFACE_INFO, NULL /* no data input */, 0 /* no data input */, CIFSMaxBufSize, (char **)&out_buf, &ret_data_len); if (rc == -EOPNOTSUPP) { @@ -692,7 +706,7 @@ goto out; } - rc = parse_server_interfaces(out_buf, ret_data_len, ses); + rc = parse_server_interfaces(out_buf, ret_data_len, ses, in_mount); if (rc) goto out; @@ -1022,7 +1036,7 @@ if (rc) return; - SMB3_request_interfaces(xid, tcon); + SMB3_request_interfaces(xid, tcon, true /* called during mount */); SMB2_QFS_attr(xid, tcon, fid.persistent_fid, fid.volatile_fid, FS_ATTRIBUTE_INFORMATION); @@ -1145,9 +1159,7 @@ size_t name_len, value_len, user_name_len; while (src_size > 0) { - name = &src->ea_data[0]; name_len = (size_t)src->ea_name_length; - value = &src->ea_data[src->ea_name_length + 1]; value_len = (size_t)le16_to_cpu(src->ea_value_length); if (name_len == 0) @@ -1159,6 +1171,9 @@ goto out; } + name = &src->ea_data[0]; + value = &src->ea_data[src->ea_name_length + 1]; + if (ea_name) { if (ea_name_len == name_len && memcmp(ea_name, name, name_len) == 0) { @@ -1394,6 +1409,8 @@ COMPOUND_FID, current->tgid, FILE_FULL_EA_INFORMATION, SMB2_O_INFO_FILE, 0, data, size); + if (rc) + goto sea_exit; smb2_set_next_command(tcon, &rqst[1]); smb2_set_related(&rqst[1]); @@ -1404,6 +1421,8 @@ rqst[2].rq_nvec = 1; rc = SMB2_close_init(tcon, server, &rqst[2], COMPOUND_FID, COMPOUND_FID, false); + if (rc) + goto sea_exit; smb2_set_related(&rqst[2]); rc = compound_send_recv(xid, ses, server, @@ -1608,9 +1627,8 @@ struct resume_key_req *res_key; rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid, - FSCTL_SRV_REQUEST_RESUME_KEY, true /* is_fsctl */, - NULL, 0 /* no input */, CIFSMaxBufSize, - (char **)&res_key, &ret_data_len); + FSCTL_SRV_REQUEST_RESUME_KEY, NULL, 0 /* no input */, + CIFSMaxBufSize, (char **)&res_key, &ret_data_len); if (rc == -EOPNOTSUPP) { pr_warn_once("Server share %s does not support copy range\n", tcon->treeName); @@ -1752,7 +1770,7 @@ rqst[1].rq_nvec = SMB2_IOCTL_IOV_SIZE; rc = SMB2_ioctl_init(tcon, server, &rqst[1], COMPOUND_FID, COMPOUND_FID, - qi.info_type, true, buffer, qi.output_buffer_length, + qi.info_type, buffer, qi.output_buffer_length, CIFSMaxBufSize - MAX_SMB2_CREATE_RESPONSE_SIZE - MAX_SMB2_CLOSE_RESPONSE_SIZE); free_req1_func = SMB2_ioctl_free; @@ -1886,17 +1904,8 @@ int chunks_copied = 0; bool chunk_sizes_updated = false; ssize_t bytes_written, total_bytes_written = 0; - struct inode *inode; pcchunk = kmalloc(sizeof(struct copychunk_ioctl), GFP_KERNEL); - - /* - * We need to flush all unwritten data before we can send the - * copychunk ioctl to the server. - */ - inode = d_inode(trgtfile->dentry); - filemap_write_and_wait(inode->i_mapping); - if (pcchunk == NULL) return -ENOMEM; @@ -1928,9 +1937,8 @@ retbuf = NULL; rc = SMB2_ioctl(xid, tcon, trgtfile->fid.persistent_fid, trgtfile->fid.volatile_fid, FSCTL_SRV_COPYCHUNK_WRITE, - true /* is_fsctl */, (char *)pcchunk, - sizeof(struct copychunk_ioctl), CIFSMaxBufSize, - (char **)&retbuf, &ret_data_len); + (char *)pcchunk, sizeof(struct copychunk_ioctl), + CIFSMaxBufSize, (char **)&retbuf, &ret_data_len); if (rc == 0) { if (ret_data_len != sizeof(struct copychunk_ioctl_rsp)) { @@ -2090,7 +2098,6 @@ rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, FSCTL_SET_SPARSE, - true /* is_fctl */, &setsparse, 1, CIFSMaxBufSize, NULL, NULL); if (rc) { tcon->broken_sparse_sup = true; @@ -2173,7 +2180,6 @@ rc = SMB2_ioctl(xid, tcon, trgtfile->fid.persistent_fid, trgtfile->fid.volatile_fid, FSCTL_DUPLICATE_EXTENTS_TO_FILE, - true /* is_fsctl */, (char *)&dup_ext_buf, sizeof(struct duplicate_extents_to_file), CIFSMaxBufSize, NULL, @@ -2208,7 +2214,6 @@ return SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, FSCTL_SET_INTEGRITY_INFORMATION, - true /* is_fsctl */, (char *)&integr_info, sizeof(struct fsctl_set_integrity_information_req), CIFSMaxBufSize, NULL, @@ -2261,7 +2266,6 @@ rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, FSCTL_SRV_ENUMERATE_SNAPSHOTS, - true /* is_fsctl */, NULL, 0 /* no input data */, max_response_size, (char **)&retbuf, &ret_data_len); @@ -2981,7 +2985,6 @@ do { rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, FSCTL_DFS_GET_REFERRALS, - true /* is_fsctl */, (char *)dfs_req, dfs_req_size, CIFSMaxBufSize, (char **)&dfs_rsp, &dfs_rsp_size); if (!is_retryable_error(rc)) @@ -3188,8 +3191,7 @@ rc = SMB2_ioctl_init(tcon, server, &rqst[1], fid.persistent_fid, - fid.volatile_fid, FSCTL_GET_REPARSE_POINT, - true /* is_fctl */, NULL, 0, + fid.volatile_fid, FSCTL_GET_REPARSE_POINT, NULL, 0, CIFSMaxBufSize - MAX_SMB2_CREATE_RESPONSE_SIZE - MAX_SMB2_CLOSE_RESPONSE_SIZE); @@ -3369,8 +3371,7 @@ rc = SMB2_ioctl_init(tcon, server, &rqst[1], COMPOUND_FID, - COMPOUND_FID, FSCTL_GET_REPARSE_POINT, - true /* is_fctl */, NULL, 0, + COMPOUND_FID, FSCTL_GET_REPARSE_POINT, NULL, 0, CIFSMaxBufSize - MAX_SMB2_CREATE_RESPONSE_SIZE - MAX_SMB2_CLOSE_RESPONSE_SIZE); @@ -3598,26 +3599,43 @@ return pntsd; } +static long smb3_zero_data(struct file *file, struct cifs_tcon *tcon, + loff_t offset, loff_t len, unsigned int xid) +{ + struct cifsFileInfo *cfile = file->private_data; + struct file_zero_data_information fsctl_buf; + + cifs_dbg(FYI, "Offset %lld len %lld\n", offset, len); + + fsctl_buf.FileOffset = cpu_to_le64(offset); + fsctl_buf.BeyondFinalZero = cpu_to_le64(offset + len); + + return SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, + cfile->fid.volatile_fid, FSCTL_SET_ZERO_DATA, + (char *)&fsctl_buf, + sizeof(struct file_zero_data_information), + 0, NULL, NULL); +} + static long smb3_zero_range(struct file *file, struct cifs_tcon *tcon, loff_t offset, loff_t len, bool keep_size) { struct cifs_ses *ses = tcon->ses; - struct inode *inode; - struct cifsInodeInfo *cifsi; + struct inode *inode = file_inode(file); + struct cifsInodeInfo *cifsi = CIFS_I(inode); struct cifsFileInfo *cfile = file->private_data; - struct file_zero_data_information fsctl_buf; long rc; unsigned int xid; __le64 eof; xid = get_xid(); - inode = d_inode(cfile->dentry); - cifsi = CIFS_I(inode); - trace_smb3_zero_enter(xid, cfile->fid.persistent_fid, tcon->tid, ses->Suid, offset, len); + inode_lock(inode); + filemap_invalidate_lock(inode->i_mapping); + /* * We zero the range through ioctl, so we need remove the page caches * first, otherwise the data may be inconsistent with the server. @@ -3625,26 +3643,12 @@ truncate_pagecache_range(inode, offset, offset + len - 1); /* if file not oplocked can't be sure whether asking to extend size */ - if (!CIFS_CACHE_READ(cifsi)) - if (keep_size == false) { - rc = -EOPNOTSUPP; - trace_smb3_zero_err(xid, cfile->fid.persistent_fid, - tcon->tid, ses->Suid, offset, len, rc); - free_xid(xid); - return rc; - } - - cifs_dbg(FYI, "Offset %lld len %lld\n", offset, len); - - fsctl_buf.FileOffset = cpu_to_le64(offset); - fsctl_buf.BeyondFinalZero = cpu_to_le64(offset + len); + rc = -EOPNOTSUPP; + if (keep_size == false && !CIFS_CACHE_READ(cifsi)) + goto zero_range_exit; - rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, - cfile->fid.volatile_fid, FSCTL_SET_ZERO_DATA, true, - (char *)&fsctl_buf, - sizeof(struct file_zero_data_information), - 0, NULL, NULL); - if (rc) + rc = smb3_zero_data(file, tcon, offset, len, xid); + if (rc < 0) goto zero_range_exit; /* @@ -3657,6 +3661,8 @@ } zero_range_exit: + filemap_invalidate_unlock(inode->i_mapping); + inode_unlock(inode); free_xid(xid); if (rc) trace_smb3_zero_err(xid, cfile->fid.persistent_fid, tcon->tid, @@ -3670,7 +3676,7 @@ static long smb3_punch_hole(struct file *file, struct cifs_tcon *tcon, loff_t offset, loff_t len) { - struct inode *inode; + struct inode *inode = file_inode(file); struct cifsFileInfo *cfile = file->private_data; struct file_zero_data_information fsctl_buf; long rc; @@ -3679,14 +3685,12 @@ xid = get_xid(); - inode = d_inode(cfile->dentry); - + inode_lock(inode); /* Need to make file sparse, if not already, before freeing range. */ /* Consider adding equivalent for compressed since it could also work */ if (!smb2_set_sparse(xid, tcon, cfile, inode, set_sparse)) { rc = -EOPNOTSUPP; - free_xid(xid); - return rc; + goto out; } filemap_invalidate_lock(inode->i_mapping); @@ -3703,11 +3707,13 @@ rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, FSCTL_SET_ZERO_DATA, - true /* is_fctl */, (char *)&fsctl_buf, + (char *)&fsctl_buf, sizeof(struct file_zero_data_information), CIFSMaxBufSize, NULL, NULL); - free_xid(xid); filemap_invalidate_unlock(inode->i_mapping); +out: + inode_unlock(inode); + free_xid(xid); return rc; } @@ -3763,7 +3769,7 @@ in_data.length = cpu_to_le64(len); rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, - FSCTL_QUERY_ALLOCATED_RANGES, true, + FSCTL_QUERY_ALLOCATED_RANGES, (char *)&in_data, sizeof(in_data), 1024 * sizeof(struct file_allocated_range_buffer), (char **)&out_data, &out_data_len); @@ -3964,39 +3970,50 @@ { int rc; unsigned int xid; - struct inode *inode; + struct inode *inode = file_inode(file); struct cifsFileInfo *cfile = file->private_data; - struct cifsInodeInfo *cifsi; + struct cifsInodeInfo *cifsi = CIFS_I(inode); __le64 eof; + loff_t old_eof; xid = get_xid(); - inode = d_inode(cfile->dentry); - cifsi = CIFS_I(inode); + inode_lock(inode); - if (off >= i_size_read(inode) || - off + len >= i_size_read(inode)) { + old_eof = i_size_read(inode); + if ((off >= old_eof) || + off + len >= old_eof) { rc = -EINVAL; goto out; } + filemap_invalidate_lock(inode->i_mapping); + rc = filemap_write_and_wait_range(inode->i_mapping, off, old_eof - 1); + if (rc < 0) + goto out_2; + + truncate_pagecache_range(inode, off, old_eof); + rc = smb2_copychunk_range(xid, cfile, cfile, off + len, - i_size_read(inode) - off - len, off); + old_eof - off - len, off); if (rc < 0) - goto out; + goto out_2; - eof = cpu_to_le64(i_size_read(inode) - len); + eof = cpu_to_le64(old_eof - len); rc = SMB2_set_eof(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, cfile->pid, &eof); if (rc < 0) - goto out; + goto out_2; rc = 0; cifsi->server_eof = i_size_read(inode) - len; truncate_setsize(inode, cifsi->server_eof); fscache_resize_cookie(cifs_inode_cookie(inode), cifsi->server_eof); +out_2: + filemap_invalidate_unlock(inode->i_mapping); out: + inode_unlock(inode); free_xid(xid); return rc; } @@ -4007,34 +4024,47 @@ int rc; unsigned int xid; struct cifsFileInfo *cfile = file->private_data; + struct inode *inode = file_inode(file); __le64 eof; - __u64 count; + __u64 count, old_eof; xid = get_xid(); - if (off >= i_size_read(file->f_inode)) { + inode_lock(inode); + + old_eof = i_size_read(inode); + if (off >= old_eof) { rc = -EINVAL; goto out; } - count = i_size_read(file->f_inode) - off; - eof = cpu_to_le64(i_size_read(file->f_inode) + len); + count = old_eof - off; + eof = cpu_to_le64(old_eof + len); + + filemap_invalidate_lock(inode->i_mapping); + rc = filemap_write_and_wait_range(inode->i_mapping, off, old_eof + len - 1); + if (rc < 0) + goto out_2; + truncate_pagecache_range(inode, off, old_eof); rc = SMB2_set_eof(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, cfile->pid, &eof); if (rc < 0) - goto out; + goto out_2; rc = smb2_copychunk_range(xid, cfile, cfile, off, count, off + len); if (rc < 0) - goto out; + goto out_2; - rc = smb3_zero_range(file, tcon, off, len, 1); + rc = smb3_zero_data(file, tcon, off, len, xid); if (rc < 0) - goto out; + goto out_2; rc = 0; +out_2: + filemap_invalidate_unlock(inode->i_mapping); out: + inode_unlock(inode); free_xid(xid); return rc; } @@ -4084,7 +4114,7 @@ rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, - FSCTL_QUERY_ALLOCATED_RANGES, true, + FSCTL_QUERY_ALLOCATED_RANGES, (char *)&in_data, sizeof(in_data), sizeof(struct file_allocated_range_buffer), (char **)&out_data, &out_data_len); @@ -4144,7 +4174,7 @@ rc = SMB2_ioctl(xid, tcon, cfile->fid.persistent_fid, cfile->fid.volatile_fid, - FSCTL_QUERY_ALLOCATED_RANGES, true, + FSCTL_QUERY_ALLOCATED_RANGES, (char *)&in_data, sizeof(in_data), 1024 * sizeof(struct file_allocated_range_buffer), (char **)&out_data, &out_data_len); --- linux-5.19.0.orig/fs/cifs/smb2pdu.c +++ linux-5.19.0/fs/cifs/smb2pdu.c @@ -964,16 +964,17 @@ } else if (rc != 0) goto neg_exit; + rc = -EIO; if (strcmp(server->vals->version_string, SMB3ANY_VERSION_STRING) == 0) { if (rsp->DialectRevision == cpu_to_le16(SMB20_PROT_ID)) { cifs_server_dbg(VFS, "SMB2 dialect returned but not requested\n"); - return -EIO; + goto neg_exit; } else if (rsp->DialectRevision == cpu_to_le16(SMB21_PROT_ID)) { cifs_server_dbg(VFS, "SMB2.1 dialect returned but not requested\n"); - return -EIO; + goto neg_exit; } else if (rsp->DialectRevision == cpu_to_le16(SMB311_PROT_ID)) { /* ops set to 3.0 by default for default so update */ server->ops = &smb311_operations; @@ -984,7 +985,7 @@ if (rsp->DialectRevision == cpu_to_le16(SMB20_PROT_ID)) { cifs_server_dbg(VFS, "SMB2 dialect returned but not requested\n"); - return -EIO; + goto neg_exit; } else if (rsp->DialectRevision == cpu_to_le16(SMB21_PROT_ID)) { /* ops set to 3.0 by default for default so update */ server->ops = &smb21_operations; @@ -998,7 +999,7 @@ /* if requested single dialect ensure returned dialect matched */ cifs_server_dbg(VFS, "Invalid 0x%x dialect returned: not requested\n", le16_to_cpu(rsp->DialectRevision)); - return -EIO; + goto neg_exit; } cifs_dbg(FYI, "mode 0x%x\n", rsp->SecurityMode); @@ -1016,9 +1017,10 @@ else { cifs_server_dbg(VFS, "Invalid dialect returned by server 0x%x\n", le16_to_cpu(rsp->DialectRevision)); - rc = -EIO; goto neg_exit; } + + rc = 0; server->dialect = le16_to_cpu(rsp->DialectRevision); /* @@ -1166,13 +1168,13 @@ pneg_inbuf->Dialects[0] = cpu_to_le16(server->vals->protocol_id); pneg_inbuf->DialectCount = cpu_to_le16(1); - /* structure is big enough for 3 dialects, sending only 1 */ + /* structure is big enough for 4 dialects, sending only 1 */ inbuflen = sizeof(*pneg_inbuf) - - sizeof(pneg_inbuf->Dialects[0]) * 2; + sizeof(pneg_inbuf->Dialects[0]) * 3; } rc = SMB2_ioctl(xid, tcon, NO_FILE_ID, NO_FILE_ID, - FSCTL_VALIDATE_NEGOTIATE_INFO, true /* is_fsctl */, + FSCTL_VALIDATE_NEGOTIATE_INFO, (char *)pneg_inbuf, inbuflen, CIFSMaxBufSize, (char **)&pneg_rsp, &rsplen); if (rc == -EOPNOTSUPP) { @@ -1523,7 +1525,7 @@ &blob_length, ses, server, sess_data->nls_cp); if (rc) - goto out_err; + goto out; if (use_spnego) { /* BB eventually need to add this */ @@ -2408,7 +2410,7 @@ unsigned int acelen, acl_size, ace_count; unsigned int owner_offset = 0; unsigned int group_offset = 0; - struct smb3_acl acl; + struct smb3_acl acl = {}; *len = roundup(sizeof(struct crt_sd_ctxt) + (sizeof(struct cifs_ace) * 4), 8); @@ -2481,6 +2483,7 @@ acl.AclRevision = ACL_REVISION; /* See 2.4.4.1 of MS-DTYP */ acl.AclSize = cpu_to_le16(acl_size); acl.AceCount = cpu_to_le16(ace_count); + /* acl.Sbz1 and Sbz2 MBZ so are not set here, but initialized above */ memcpy(aclptr, &acl, sizeof(struct smb3_acl)); buf->ccontext.DataLength = cpu_to_le32(ptr - (__u8 *)&buf->sd); @@ -2571,19 +2574,15 @@ path_len = UniStrnlen((wchar_t *)path, PATH_MAX); - /* - * make room for one path separator between the treename and - * path - */ - *out_len = treename_len + 1 + path_len; + /* make room for one path separator only if @path isn't empty */ + *out_len = treename_len + (path[0] ? 1 : 0) + path_len; /* - * final path needs to be null-terminated UTF16 with a - * size aligned to 8 + * final path needs to be 8-byte aligned as specified in + * MS-SMB2 2.2.13 SMB2 CREATE Request. */ - - *out_size = roundup((*out_len+1)*2, 8); - *out_path = kzalloc(*out_size, GFP_KERNEL); + *out_size = roundup(*out_len * sizeof(__le16), 8); + *out_path = kzalloc(*out_size + sizeof(__le16) /* null */, GFP_KERNEL); if (!*out_path) return -ENOMEM; @@ -3055,7 +3054,7 @@ SMB2_ioctl_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, u64 persistent_fid, u64 volatile_fid, u32 opcode, - bool is_fsctl, char *in_data, u32 indatalen, + char *in_data, u32 indatalen, __u32 max_response_size) { struct smb2_ioctl_req *req; @@ -3130,10 +3129,8 @@ req->hdr.CreditCharge = cpu_to_le16(DIV_ROUND_UP(max(indatalen, max_response_size), SMB2_MAX_BUFFER_SIZE)); - if (is_fsctl) - req->Flags = cpu_to_le32(SMB2_0_IOCTL_IS_FSCTL); - else - req->Flags = 0; + /* always an FSCTL (for now) */ + req->Flags = cpu_to_le32(SMB2_0_IOCTL_IS_FSCTL); /* validate negotiate request must be signed - see MS-SMB2 3.2.5.5 */ if (opcode == FSCTL_VALIDATE_NEGOTIATE_INFO) @@ -3160,9 +3157,9 @@ */ int SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, - u64 volatile_fid, u32 opcode, bool is_fsctl, - char *in_data, u32 indatalen, u32 max_out_data_len, - char **out_data, u32 *plen /* returned data len */) + u64 volatile_fid, u32 opcode, char *in_data, u32 indatalen, + u32 max_out_data_len, char **out_data, + u32 *plen /* returned data len */) { struct smb_rqst rqst; struct smb2_ioctl_rsp *rsp = NULL; @@ -3204,7 +3201,7 @@ rc = SMB2_ioctl_init(tcon, server, &rqst, persistent_fid, volatile_fid, opcode, - is_fsctl, in_data, indatalen, max_out_data_len); + in_data, indatalen, max_out_data_len); if (rc) goto ioctl_exit; @@ -3296,7 +3293,7 @@ cpu_to_le16(COMPRESSION_FORMAT_DEFAULT); rc = SMB2_ioctl(xid, tcon, persistent_fid, volatile_fid, - FSCTL_SET_COMPRESSION, true /* is_fsctl */, + FSCTL_SET_COMPRESSION, (char *)&fsctl_input /* data input */, 2 /* in data len */, CIFSMaxBufSize /* max out data */, &ret_data /* out data */, NULL); --- linux-5.19.0.orig/fs/cifs/smb2proto.h +++ linux-5.19.0/fs/cifs/smb2proto.h @@ -147,13 +147,13 @@ extern void SMB2_open_free(struct smb_rqst *rqst); extern int SMB2_ioctl(const unsigned int xid, struct cifs_tcon *tcon, u64 persistent_fid, u64 volatile_fid, u32 opcode, - bool is_fsctl, char *in_data, u32 indatalen, u32 maxoutlen, + char *in_data, u32 indatalen, u32 maxoutlen, char **out_data, u32 *plen /* returned data len */); extern int SMB2_ioctl_init(struct cifs_tcon *tcon, struct TCP_Server_Info *server, struct smb_rqst *rqst, u64 persistent_fid, u64 volatile_fid, u32 opcode, - bool is_fsctl, char *in_data, u32 indatalen, + char *in_data, u32 indatalen, __u32 max_response_size); extern void SMB2_ioctl_free(struct smb_rqst *rqst); extern int SMB2_change_notify(const unsigned int xid, struct cifs_tcon *tcon, --- linux-5.19.0.orig/fs/cifs/smb2transport.c +++ linux-5.19.0/fs/cifs/smb2transport.c @@ -225,9 +225,9 @@ struct smb_rqst drqst; ses = smb2_find_smb_ses(server, le64_to_cpu(shdr->SessionId)); - if (!ses) { + if (unlikely(!ses)) { cifs_server_dbg(VFS, "%s: Could not find session\n", __func__); - return 0; + return -ENOENT; } memset(smb2_signature, 0x0, SMB2_HMACSHA256_SIZE); @@ -557,8 +557,10 @@ u8 key[SMB3_SIGN_KEY_SIZE]; rc = smb2_get_sign_key(le64_to_cpu(shdr->SessionId), server, key); - if (rc) - return 0; + if (unlikely(rc)) { + cifs_server_dbg(VFS, "%s: Could not get signing key\n", __func__); + return rc; + } if (allocate_crypto) { rc = cifs_alloc_hash("cmac(aes)", &hash, &sdesc); --- linux-5.19.0.orig/fs/cifs/transport.c +++ linux-5.19.0/fs/cifs/transport.c @@ -196,10 +196,6 @@ *sent = 0; - smb_msg->msg_name = (struct sockaddr *) &server->dstaddr; - smb_msg->msg_namelen = sizeof(struct sockaddr); - smb_msg->msg_control = NULL; - smb_msg->msg_controllen = 0; if (server->noblocksnd) smb_msg->msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL; else @@ -311,7 +307,7 @@ sigset_t mask, oldmask; size_t total_len = 0, sent, size; struct socket *ssocket = server->ssocket; - struct msghdr smb_msg; + struct msghdr smb_msg = {}; __be32 rfc1002_marker; if (cifs_rdma_enabled(server)) { --- linux-5.19.0.orig/fs/configfs/dir.c +++ linux-5.19.0/fs/configfs/dir.c @@ -316,6 +316,7 @@ return 0; out_remove: + configfs_put(dentry->d_fsdata); configfs_remove_dirent(dentry); return PTR_ERR(inode); } @@ -382,6 +383,7 @@ return 0; out_remove: + configfs_put(dentry->d_fsdata); configfs_remove_dirent(dentry); return PTR_ERR(inode); } --- linux-5.19.0.orig/fs/coredump.c +++ linux-5.19.0/fs/coredump.c @@ -832,6 +832,39 @@ } } +static int dump_emit_page(struct coredump_params *cprm, struct page *page) +{ + struct bio_vec bvec = { + .bv_page = page, + .bv_offset = 0, + .bv_len = PAGE_SIZE, + }; + struct iov_iter iter; + struct file *file = cprm->file; + loff_t pos; + ssize_t n; + + if (cprm->to_skip) { + if (!__dump_skip(cprm, cprm->to_skip)) + return 0; + cprm->to_skip = 0; + } + if (cprm->written + PAGE_SIZE > cprm->limit) + return 0; + if (dump_interrupted()) + return 0; + pos = file->f_pos; + iov_iter_bvec(&iter, WRITE, &bvec, 1, PAGE_SIZE); + n = __kernel_write_iter(cprm->file, &iter, &pos); + if (n != PAGE_SIZE) + return 0; + file->f_pos = pos; + cprm->written += PAGE_SIZE; + cprm->pos += PAGE_SIZE; + + return 1; +} + int dump_emit(struct coredump_params *cprm, const void *addr, int nr) { if (cprm->to_skip) { @@ -863,7 +896,6 @@ for (addr = start; addr < start + len; addr += PAGE_SIZE) { struct page *page; - int stop; /* * To avoid having to allocate page tables for virtual address @@ -874,10 +906,7 @@ */ page = get_dump_page(addr); if (page) { - void *kaddr = kmap_local_page(page); - - stop = !dump_emit(cprm, kaddr, PAGE_SIZE); - kunmap_local(kaddr); + int stop = !dump_emit_page(cprm, page); put_page(page); if (stop) return 0; --- linux-5.19.0.orig/fs/crypto/fscrypt_private.h +++ linux-5.19.0/fs/crypto/fscrypt_private.h @@ -225,7 +225,7 @@ * will be NULL if the master key was found in a process-subscribed * keyring rather than in the filesystem-level keyring. */ - struct key *ci_master_key; + struct fscrypt_master_key *ci_master_key; /* * Link in list of inodes that were unlocked with the master key. @@ -440,6 +440,40 @@ struct fscrypt_master_key { /* + * Back-pointer to the super_block of the filesystem to which this + * master key has been added. Only valid if ->mk_active_refs > 0. + */ + struct super_block *mk_sb; + + /* + * Link in ->mk_sb->s_master_keys->key_hashtable. + * Only valid if ->mk_active_refs > 0. + */ + struct hlist_node mk_node; + + /* Semaphore that protects ->mk_secret and ->mk_users */ + struct rw_semaphore mk_sem; + + /* + * Active and structural reference counts. An active ref guarantees + * that the struct continues to exist, continues to be in the keyring + * ->mk_sb->s_master_keys, and that any embedded subkeys (e.g. + * ->mk_direct_keys) that have been prepared continue to exist. + * A structural ref only guarantees that the struct continues to exist. + * + * There is one active ref associated with ->mk_secret being present, + * and one active ref for each inode in ->mk_decrypted_inodes. + * + * There is one structural ref associated with the active refcount being + * nonzero. Finding a key in the keyring also takes a structural ref, + * which is then held temporarily while the key is operated on. + */ + refcount_t mk_active_refs; + refcount_t mk_struct_refs; + + struct rcu_head mk_rcu_head; + + /* * The secret key material. After FS_IOC_REMOVE_ENCRYPTION_KEY is * executed, this is wiped and no new inodes can be unlocked with this * key; however, there may still be inodes in ->mk_decrypted_inodes @@ -447,7 +481,10 @@ * FS_IOC_REMOVE_ENCRYPTION_KEY can be retried, or * FS_IOC_ADD_ENCRYPTION_KEY can add the secret again. * - * Locking: protected by this master key's key->sem. + * While ->mk_secret is present, one ref in ->mk_active_refs is held. + * + * Locking: protected by ->mk_sem. The manipulation of ->mk_active_refs + * associated with this field is protected by ->mk_sem as well. */ struct fscrypt_master_key_secret mk_secret; @@ -468,23 +505,13 @@ * * This is NULL for v1 policy keys; those can only be added by root. * - * Locking: in addition to this keyring's own semaphore, this is - * protected by this master key's key->sem, so we can do atomic - * search+insert. It can also be searched without taking any locks, but - * in that case the returned key may have already been removed. + * Locking: protected by ->mk_sem. (We don't just rely on the keyrings + * subsystem semaphore ->mk_users->sem, as we need support for atomic + * search+insert along with proper synchronization with ->mk_secret.) */ struct key *mk_users; /* - * Length of ->mk_decrypted_inodes, plus one if mk_secret is present. - * Once this goes to 0, the master key is removed from ->s_master_keys. - * The 'struct fscrypt_master_key' will continue to live as long as the - * 'struct key' whose payload it is, but we won't let this reference - * count rise again. - */ - refcount_t mk_refcount; - - /* * List of inodes that were unlocked using this key. This allows the * inodes to be evicted efficiently if the key is removed. */ @@ -509,10 +536,10 @@ is_master_key_secret_present(const struct fscrypt_master_key_secret *secret) { /* - * The READ_ONCE() is only necessary for fscrypt_drop_inode() and - * fscrypt_key_describe(). These run in atomic context, so they can't - * take the key semaphore and thus 'secret' can change concurrently - * which would be a data race. But they only need to know whether the + * The READ_ONCE() is only necessary for fscrypt_drop_inode(). + * fscrypt_drop_inode() runs in atomic context, so it can't take the key + * semaphore and thus 'secret' can change concurrently which would be a + * data race. But fscrypt_drop_inode() only need to know whether the * secret *was* present at the time of check, so READ_ONCE() suffices. */ return READ_ONCE(secret->size) != 0; @@ -541,7 +568,11 @@ return 0; } -struct key * +void fscrypt_put_master_key(struct fscrypt_master_key *mk); + +void fscrypt_put_master_key_activeref(struct fscrypt_master_key *mk); + +struct fscrypt_master_key * fscrypt_find_master_key(struct super_block *sb, const struct fscrypt_key_specifier *mk_spec); --- linux-5.19.0.orig/fs/crypto/hooks.c +++ linux-5.19.0/fs/crypto/hooks.c @@ -5,8 +5,6 @@ * Encryption hooks for higher-level filesystem operations. */ -#include - #include "fscrypt_private.h" /** @@ -142,7 +140,6 @@ unsigned int oldflags, unsigned int flags) { struct fscrypt_info *ci; - struct key *key; struct fscrypt_master_key *mk; int err; @@ -158,14 +155,13 @@ ci = inode->i_crypt_info; if (ci->ci_policy.version != FSCRYPT_POLICY_V2) return -EINVAL; - key = ci->ci_master_key; - mk = key->payload.data[0]; - down_read(&key->sem); + mk = ci->ci_master_key; + down_read(&mk->mk_sem); if (is_master_key_secret_present(&mk->mk_secret)) err = fscrypt_derive_dirhash_key(ci, mk); else err = -ENOKEY; - up_read(&key->sem); + up_read(&mk->mk_sem); return err; } return 0; --- linux-5.19.0.orig/fs/crypto/keyring.c +++ linux-5.19.0/fs/crypto/keyring.c @@ -18,6 +18,7 @@ * information about these ioctls. */ +#include #include #include #include @@ -25,6 +26,18 @@ #include "fscrypt_private.h" +/* The master encryption keys for a filesystem (->s_master_keys) */ +struct fscrypt_keyring { + /* + * Lock that protects ->key_hashtable. It does *not* protect the + * fscrypt_master_key structs themselves. + */ + spinlock_t lock; + + /* Hash table that maps fscrypt_key_specifier to fscrypt_master_key */ + struct hlist_head key_hashtable[128]; +}; + static void wipe_master_key_secret(struct fscrypt_master_key_secret *secret) { fscrypt_destroy_hkdf(&secret->hkdf); @@ -38,20 +51,70 @@ memzero_explicit(src, sizeof(*src)); } -static void free_master_key(struct fscrypt_master_key *mk) +static void fscrypt_free_master_key(struct rcu_head *head) +{ + struct fscrypt_master_key *mk = + container_of(head, struct fscrypt_master_key, mk_rcu_head); + /* + * The master key secret and any embedded subkeys should have already + * been wiped when the last active reference to the fscrypt_master_key + * struct was dropped; doing it here would be unnecessarily late. + * Nevertheless, use kfree_sensitive() in case anything was missed. + */ + kfree_sensitive(mk); +} + +void fscrypt_put_master_key(struct fscrypt_master_key *mk) +{ + if (!refcount_dec_and_test(&mk->mk_struct_refs)) + return; + /* + * No structural references left, so free ->mk_users, and also free the + * fscrypt_master_key struct itself after an RCU grace period ensures + * that concurrent keyring lookups can no longer find it. + */ + WARN_ON(refcount_read(&mk->mk_active_refs) != 0); + key_put(mk->mk_users); + mk->mk_users = NULL; + call_rcu(&mk->mk_rcu_head, fscrypt_free_master_key); +} + +void fscrypt_put_master_key_activeref(struct fscrypt_master_key *mk) { + struct super_block *sb = mk->mk_sb; + struct fscrypt_keyring *keyring = sb->s_master_keys; size_t i; - wipe_master_key_secret(&mk->mk_secret); + if (!refcount_dec_and_test(&mk->mk_active_refs)) + return; + /* + * No active references left, so complete the full removal of this + * fscrypt_master_key struct by removing it from the keyring and + * destroying any subkeys embedded in it. + */ + + spin_lock(&keyring->lock); + hlist_del_rcu(&mk->mk_node); + spin_unlock(&keyring->lock); + + /* + * ->mk_active_refs == 0 implies that ->mk_secret is not present and + * that ->mk_decrypted_inodes is empty. + */ + WARN_ON(is_master_key_secret_present(&mk->mk_secret)); + WARN_ON(!list_empty(&mk->mk_decrypted_inodes)); for (i = 0; i <= FSCRYPT_MODE_MAX; i++) { fscrypt_destroy_prepared_key(&mk->mk_direct_keys[i]); fscrypt_destroy_prepared_key(&mk->mk_iv_ino_lblk_64_keys[i]); fscrypt_destroy_prepared_key(&mk->mk_iv_ino_lblk_32_keys[i]); } + memzero_explicit(&mk->mk_ino_hash_key, + sizeof(mk->mk_ino_hash_key)); + mk->mk_ino_hash_key_initialized = false; - key_put(mk->mk_users); - kfree_sensitive(mk); + /* Drop the structural ref associated with the active refs. */ + fscrypt_put_master_key(mk); } static inline bool valid_key_spec(const struct fscrypt_key_specifier *spec) @@ -61,44 +124,6 @@ return master_key_spec_len(spec) != 0; } -static int fscrypt_key_instantiate(struct key *key, - struct key_preparsed_payload *prep) -{ - key->payload.data[0] = (struct fscrypt_master_key *)prep->data; - return 0; -} - -static void fscrypt_key_destroy(struct key *key) -{ - free_master_key(key->payload.data[0]); -} - -static void fscrypt_key_describe(const struct key *key, struct seq_file *m) -{ - seq_puts(m, key->description); - - if (key_is_positive(key)) { - const struct fscrypt_master_key *mk = key->payload.data[0]; - - if (!is_master_key_secret_present(&mk->mk_secret)) - seq_puts(m, ": secret removed"); - } -} - -/* - * Type of key in ->s_master_keys. Each key of this type represents a master - * key which has been added to the filesystem. Its payload is a - * 'struct fscrypt_master_key'. The "." prefix in the key type name prevents - * users from adding keys of this type via the keyrings syscalls rather than via - * the intended method of FS_IOC_ADD_ENCRYPTION_KEY. - */ -static struct key_type key_type_fscrypt = { - .name = "._fscrypt", - .instantiate = fscrypt_key_instantiate, - .destroy = fscrypt_key_destroy, - .describe = fscrypt_key_describe, -}; - static int fscrypt_user_key_instantiate(struct key *key, struct key_preparsed_payload *prep) { @@ -131,32 +156,6 @@ .describe = fscrypt_user_key_describe, }; -/* Search ->s_master_keys or ->mk_users */ -static struct key *search_fscrypt_keyring(struct key *keyring, - struct key_type *type, - const char *description) -{ - /* - * We need to mark the keyring reference as "possessed" so that we - * acquire permission to search it, via the KEY_POS_SEARCH permission. - */ - key_ref_t keyref = make_key_ref(keyring, true /* possessed */); - - keyref = keyring_search(keyref, type, description, false); - if (IS_ERR(keyref)) { - if (PTR_ERR(keyref) == -EAGAIN || /* not found */ - PTR_ERR(keyref) == -EKEYREVOKED) /* recently invalidated */ - keyref = ERR_PTR(-ENOKEY); - return ERR_CAST(keyref); - } - return key_ref_to_ptr(keyref); -} - -#define FSCRYPT_FS_KEYRING_DESCRIPTION_SIZE \ - (CONST_STRLEN("fscrypt-") + sizeof_field(struct super_block, s_id)) - -#define FSCRYPT_MK_DESCRIPTION_SIZE (2 * FSCRYPT_KEY_IDENTIFIER_SIZE + 1) - #define FSCRYPT_MK_USERS_DESCRIPTION_SIZE \ (CONST_STRLEN("fscrypt-") + 2 * FSCRYPT_KEY_IDENTIFIER_SIZE + \ CONST_STRLEN("-users") + 1) @@ -164,21 +163,6 @@ #define FSCRYPT_MK_USER_DESCRIPTION_SIZE \ (2 * FSCRYPT_KEY_IDENTIFIER_SIZE + CONST_STRLEN(".uid.") + 10 + 1) -static void format_fs_keyring_description( - char description[FSCRYPT_FS_KEYRING_DESCRIPTION_SIZE], - const struct super_block *sb) -{ - sprintf(description, "fscrypt-%s", sb->s_id); -} - -static void format_mk_description( - char description[FSCRYPT_MK_DESCRIPTION_SIZE], - const struct fscrypt_key_specifier *mk_spec) -{ - sprintf(description, "%*phN", - master_key_spec_len(mk_spec), (u8 *)&mk_spec->u); -} - static void format_mk_users_keyring_description( char description[FSCRYPT_MK_USERS_DESCRIPTION_SIZE], const u8 mk_identifier[FSCRYPT_KEY_IDENTIFIER_SIZE]) @@ -199,20 +183,15 @@ /* Create ->s_master_keys if needed. Synchronized by fscrypt_add_key_mutex. */ static int allocate_filesystem_keyring(struct super_block *sb) { - char description[FSCRYPT_FS_KEYRING_DESCRIPTION_SIZE]; - struct key *keyring; + struct fscrypt_keyring *keyring; if (sb->s_master_keys) return 0; - format_fs_keyring_description(description, sb); - keyring = keyring_alloc(description, GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, - current_cred(), KEY_POS_SEARCH | - KEY_USR_SEARCH | KEY_USR_READ | KEY_USR_VIEW, - KEY_ALLOC_NOT_IN_QUOTA, NULL, NULL); - if (IS_ERR(keyring)) - return PTR_ERR(keyring); - + keyring = kzalloc(sizeof(*keyring), GFP_KERNEL); + if (!keyring) + return -ENOMEM; + spin_lock_init(&keyring->lock); /* * Pairs with the smp_load_acquire() in fscrypt_find_master_key(). * I.e., here we publish ->s_master_keys with a RELEASE barrier so that @@ -222,21 +201,80 @@ return 0; } -void fscrypt_sb_free(struct super_block *sb) +/* + * Release all encryption keys that have been added to the filesystem, along + * with the keyring that contains them. + * + * This is called at unmount time. The filesystem's underlying block device(s) + * are still available at this time; this is important because after user file + * accesses have been allowed, this function may need to evict keys from the + * keyslots of an inline crypto engine, which requires the block device(s). + * + * This is also called when the super_block is being freed. This is needed to + * avoid a memory leak if mounting fails after the "test_dummy_encryption" + * option was processed, as in that case the unmount-time call isn't made. + */ +void fscrypt_destroy_keyring(struct super_block *sb) { - key_put(sb->s_master_keys); + struct fscrypt_keyring *keyring = sb->s_master_keys; + size_t i; + + if (!keyring) + return; + + for (i = 0; i < ARRAY_SIZE(keyring->key_hashtable); i++) { + struct hlist_head *bucket = &keyring->key_hashtable[i]; + struct fscrypt_master_key *mk; + struct hlist_node *tmp; + + hlist_for_each_entry_safe(mk, tmp, bucket, mk_node) { + /* + * Since all inodes were already evicted, every key + * remaining in the keyring should have an empty inode + * list, and should only still be in the keyring due to + * the single active ref associated with ->mk_secret. + * There should be no structural refs beyond the one + * associated with the active ref. + */ + WARN_ON(refcount_read(&mk->mk_active_refs) != 1); + WARN_ON(refcount_read(&mk->mk_struct_refs) != 1); + WARN_ON(!is_master_key_secret_present(&mk->mk_secret)); + wipe_master_key_secret(&mk->mk_secret); + fscrypt_put_master_key_activeref(mk); + } + } + kfree_sensitive(keyring); sb->s_master_keys = NULL; } +static struct hlist_head * +fscrypt_mk_hash_bucket(struct fscrypt_keyring *keyring, + const struct fscrypt_key_specifier *mk_spec) +{ + /* + * Since key specifiers should be "random" values, it is sufficient to + * use a trivial hash function that just takes the first several bits of + * the key specifier. + */ + unsigned long i = get_unaligned((unsigned long *)&mk_spec->u); + + return &keyring->key_hashtable[i % ARRAY_SIZE(keyring->key_hashtable)]; +} + /* - * Find the specified master key in ->s_master_keys. - * Returns ERR_PTR(-ENOKEY) if not found. + * Find the specified master key struct in ->s_master_keys and take a structural + * ref to it. The structural ref guarantees that the key struct continues to + * exist, but it does *not* guarantee that ->s_master_keys continues to contain + * the key struct. The structural ref needs to be dropped by + * fscrypt_put_master_key(). Returns NULL if the key struct is not found. */ -struct key *fscrypt_find_master_key(struct super_block *sb, - const struct fscrypt_key_specifier *mk_spec) +struct fscrypt_master_key * +fscrypt_find_master_key(struct super_block *sb, + const struct fscrypt_key_specifier *mk_spec) { - struct key *keyring; - char description[FSCRYPT_MK_DESCRIPTION_SIZE]; + struct fscrypt_keyring *keyring; + struct hlist_head *bucket; + struct fscrypt_master_key *mk; /* * Pairs with the smp_store_release() in allocate_filesystem_keyring(). @@ -246,10 +284,38 @@ */ keyring = smp_load_acquire(&sb->s_master_keys); if (keyring == NULL) - return ERR_PTR(-ENOKEY); /* No keyring yet, so no keys yet. */ + return NULL; /* No keyring yet, so no keys yet. */ - format_mk_description(description, mk_spec); - return search_fscrypt_keyring(keyring, &key_type_fscrypt, description); + bucket = fscrypt_mk_hash_bucket(keyring, mk_spec); + rcu_read_lock(); + switch (mk_spec->type) { + case FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR: + hlist_for_each_entry_rcu(mk, bucket, mk_node) { + if (mk->mk_spec.type == + FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR && + memcmp(mk->mk_spec.u.descriptor, + mk_spec->u.descriptor, + FSCRYPT_KEY_DESCRIPTOR_SIZE) == 0 && + refcount_inc_not_zero(&mk->mk_struct_refs)) + goto out; + } + break; + case FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER: + hlist_for_each_entry_rcu(mk, bucket, mk_node) { + if (mk->mk_spec.type == + FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER && + memcmp(mk->mk_spec.u.identifier, + mk_spec->u.identifier, + FSCRYPT_KEY_IDENTIFIER_SIZE) == 0 && + refcount_inc_not_zero(&mk->mk_struct_refs)) + goto out; + } + break; + } + mk = NULL; +out: + rcu_read_unlock(); + return mk; } static int allocate_master_key_users_keyring(struct fscrypt_master_key *mk) @@ -277,17 +343,30 @@ static struct key *find_master_key_user(struct fscrypt_master_key *mk) { char description[FSCRYPT_MK_USER_DESCRIPTION_SIZE]; + key_ref_t keyref; format_mk_user_description(description, mk->mk_spec.u.identifier); - return search_fscrypt_keyring(mk->mk_users, &key_type_fscrypt_user, - description); + + /* + * We need to mark the keyring reference as "possessed" so that we + * acquire permission to search it, via the KEY_POS_SEARCH permission. + */ + keyref = keyring_search(make_key_ref(mk->mk_users, true /*possessed*/), + &key_type_fscrypt_user, description, false); + if (IS_ERR(keyref)) { + if (PTR_ERR(keyref) == -EAGAIN || /* not found */ + PTR_ERR(keyref) == -EKEYREVOKED) /* recently invalidated */ + keyref = ERR_PTR(-ENOKEY); + return ERR_CAST(keyref); + } + return key_ref_to_ptr(keyref); } /* * Give the current user a "key" in ->mk_users. This charges the user's quota * and marks the master key as added by the current user, so that it cannot be - * removed by another user with the key. Either the master key's key->sem must - * be held for write, or the master key must be still undergoing initialization. + * removed by another user with the key. Either ->mk_sem must be held for + * write, or the master key must be still undergoing initialization. */ static int add_master_key_user(struct fscrypt_master_key *mk) { @@ -309,7 +388,7 @@ /* * Remove the current user's "key" from ->mk_users. - * The master key's key->sem must be held for write. + * ->mk_sem must be held for write. * * Returns 0 if removed, -ENOKEY if not found, or another -errno code. */ @@ -327,63 +406,49 @@ } /* - * Allocate a new fscrypt_master_key which contains the given secret, set it as - * the payload of a new 'struct key' of type fscrypt, and link the 'struct key' - * into the given keyring. Synchronized by fscrypt_add_key_mutex. + * Allocate a new fscrypt_master_key, transfer the given secret over to it, and + * insert it into sb->s_master_keys. */ -static int add_new_master_key(struct fscrypt_master_key_secret *secret, - const struct fscrypt_key_specifier *mk_spec, - struct key *keyring) +static int add_new_master_key(struct super_block *sb, + struct fscrypt_master_key_secret *secret, + const struct fscrypt_key_specifier *mk_spec) { + struct fscrypt_keyring *keyring = sb->s_master_keys; struct fscrypt_master_key *mk; - char description[FSCRYPT_MK_DESCRIPTION_SIZE]; - struct key *key; int err; mk = kzalloc(sizeof(*mk), GFP_KERNEL); if (!mk) return -ENOMEM; + mk->mk_sb = sb; + init_rwsem(&mk->mk_sem); + refcount_set(&mk->mk_struct_refs, 1); mk->mk_spec = *mk_spec; - move_master_key_secret(&mk->mk_secret, secret); - - refcount_set(&mk->mk_refcount, 1); /* secret is present */ INIT_LIST_HEAD(&mk->mk_decrypted_inodes); spin_lock_init(&mk->mk_decrypted_inodes_lock); if (mk_spec->type == FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER) { err = allocate_master_key_users_keyring(mk); if (err) - goto out_free_mk; + goto out_put; err = add_master_key_user(mk); if (err) - goto out_free_mk; + goto out_put; } - /* - * Note that we don't charge this key to anyone's quota, since when - * ->mk_users is in use those keys are charged instead, and otherwise - * (when ->mk_users isn't in use) only root can add these keys. - */ - format_mk_description(description, mk_spec); - key = key_alloc(&key_type_fscrypt, description, - GLOBAL_ROOT_UID, GLOBAL_ROOT_GID, current_cred(), - KEY_POS_SEARCH | KEY_USR_SEARCH | KEY_USR_VIEW, - KEY_ALLOC_NOT_IN_QUOTA, NULL); - if (IS_ERR(key)) { - err = PTR_ERR(key); - goto out_free_mk; - } - err = key_instantiate_and_link(key, mk, sizeof(*mk), keyring, NULL); - key_put(key); - if (err) - goto out_free_mk; + move_master_key_secret(&mk->mk_secret, secret); + refcount_set(&mk->mk_active_refs, 1); /* ->mk_secret is present */ + spin_lock(&keyring->lock); + hlist_add_head_rcu(&mk->mk_node, + fscrypt_mk_hash_bucket(keyring, mk_spec)); + spin_unlock(&keyring->lock); return 0; -out_free_mk: - free_master_key(mk); +out_put: + fscrypt_put_master_key(mk); return err; } @@ -392,42 +457,34 @@ static int add_existing_master_key(struct fscrypt_master_key *mk, struct fscrypt_master_key_secret *secret) { - struct key *mk_user; - bool rekey; int err; /* * If the current user is already in ->mk_users, then there's nothing to - * do. (Not applicable for v1 policy keys, which have NULL ->mk_users.) + * do. Otherwise, we need to add the user to ->mk_users. (Neither is + * applicable for v1 policy keys, which have NULL ->mk_users.) */ if (mk->mk_users) { - mk_user = find_master_key_user(mk); + struct key *mk_user = find_master_key_user(mk); + if (mk_user != ERR_PTR(-ENOKEY)) { if (IS_ERR(mk_user)) return PTR_ERR(mk_user); key_put(mk_user); return 0; } - } - - /* If we'll be re-adding ->mk_secret, try to take the reference. */ - rekey = !is_master_key_secret_present(&mk->mk_secret); - if (rekey && !refcount_inc_not_zero(&mk->mk_refcount)) - return KEY_DEAD; - - /* Add the current user to ->mk_users, if applicable. */ - if (mk->mk_users) { err = add_master_key_user(mk); - if (err) { - if (rekey && refcount_dec_and_test(&mk->mk_refcount)) - return KEY_DEAD; + if (err) return err; - } } /* Re-add the secret if needed. */ - if (rekey) + if (!is_master_key_secret_present(&mk->mk_secret)) { + if (!refcount_inc_not_zero(&mk->mk_active_refs)) + return KEY_DEAD; move_master_key_secret(&mk->mk_secret, secret); + } + return 0; } @@ -436,38 +493,36 @@ const struct fscrypt_key_specifier *mk_spec) { static DEFINE_MUTEX(fscrypt_add_key_mutex); - struct key *key; + struct fscrypt_master_key *mk; int err; mutex_lock(&fscrypt_add_key_mutex); /* serialize find + link */ -retry: - key = fscrypt_find_master_key(sb, mk_spec); - if (IS_ERR(key)) { - err = PTR_ERR(key); - if (err != -ENOKEY) - goto out_unlock; + + mk = fscrypt_find_master_key(sb, mk_spec); + if (!mk) { /* Didn't find the key in ->s_master_keys. Add it. */ err = allocate_filesystem_keyring(sb); - if (err) - goto out_unlock; - err = add_new_master_key(secret, mk_spec, sb->s_master_keys); + if (!err) + err = add_new_master_key(sb, secret, mk_spec); } else { /* * Found the key in ->s_master_keys. Re-add the secret if * needed, and add the user to ->mk_users if needed. */ - down_write(&key->sem); - err = add_existing_master_key(key->payload.data[0], secret); - up_write(&key->sem); + down_write(&mk->mk_sem); + err = add_existing_master_key(mk, secret); + up_write(&mk->mk_sem); if (err == KEY_DEAD) { - /* Key being removed or needs to be removed */ - key_invalidate(key); - key_put(key); - goto retry; + /* + * We found a key struct, but it's already been fully + * removed. Ignore the old struct and add a new one. + * fscrypt_add_key_mutex means we don't need to worry + * about concurrent adds. + */ + err = add_new_master_key(sb, secret, mk_spec); } - key_put(key); + fscrypt_put_master_key(mk); } -out_unlock: mutex_unlock(&fscrypt_add_key_mutex); return err; } @@ -771,19 +826,19 @@ const u8 identifier[FSCRYPT_KEY_IDENTIFIER_SIZE]) { struct fscrypt_key_specifier mk_spec; - struct key *key, *mk_user; struct fscrypt_master_key *mk; + struct key *mk_user; int err; mk_spec.type = FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER; memcpy(mk_spec.u.identifier, identifier, FSCRYPT_KEY_IDENTIFIER_SIZE); - key = fscrypt_find_master_key(sb, &mk_spec); - if (IS_ERR(key)) { - err = PTR_ERR(key); + mk = fscrypt_find_master_key(sb, &mk_spec); + if (!mk) { + err = -ENOKEY; goto out; } - mk = key->payload.data[0]; + down_read(&mk->mk_sem); mk_user = find_master_key_user(mk); if (IS_ERR(mk_user)) { err = PTR_ERR(mk_user); @@ -791,7 +846,8 @@ key_put(mk_user); err = 0; } - key_put(key); + up_read(&mk->mk_sem); + fscrypt_put_master_key(mk); out: if (err == -ENOKEY && capable(CAP_FOWNER)) err = 0; @@ -953,11 +1009,10 @@ struct super_block *sb = file_inode(filp)->i_sb; struct fscrypt_remove_key_arg __user *uarg = _uarg; struct fscrypt_remove_key_arg arg; - struct key *key; struct fscrypt_master_key *mk; u32 status_flags = 0; int err; - bool dead; + bool inodes_remain; if (copy_from_user(&arg, uarg, sizeof(arg))) return -EFAULT; @@ -977,12 +1032,10 @@ return -EACCES; /* Find the key being removed. */ - key = fscrypt_find_master_key(sb, &arg.key_spec); - if (IS_ERR(key)) - return PTR_ERR(key); - mk = key->payload.data[0]; - - down_write(&key->sem); + mk = fscrypt_find_master_key(sb, &arg.key_spec); + if (!mk) + return -ENOKEY; + down_write(&mk->mk_sem); /* If relevant, remove current user's (or all users) claim to the key */ if (mk->mk_users && mk->mk_users->keys.nr_leaves_on_tree != 0) { @@ -991,7 +1044,7 @@ else err = remove_master_key_user(mk); if (err) { - up_write(&key->sem); + up_write(&mk->mk_sem); goto out_put_key; } if (mk->mk_users->keys.nr_leaves_on_tree != 0) { @@ -1003,26 +1056,22 @@ status_flags |= FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS; err = 0; - up_write(&key->sem); + up_write(&mk->mk_sem); goto out_put_key; } } /* No user claims remaining. Go ahead and wipe the secret. */ - dead = false; + err = -ENOKEY; if (is_master_key_secret_present(&mk->mk_secret)) { wipe_master_key_secret(&mk->mk_secret); - dead = refcount_dec_and_test(&mk->mk_refcount); - } - up_write(&key->sem); - if (dead) { - /* - * No inodes reference the key, and we wiped the secret, so the - * key object is free to be removed from the keyring. - */ - key_invalidate(key); + fscrypt_put_master_key_activeref(mk); err = 0; - } else { + } + inodes_remain = refcount_read(&mk->mk_active_refs) > 0; + up_write(&mk->mk_sem); + + if (inodes_remain) { /* Some inodes still reference this key; try to evict them. */ err = try_to_lock_encrypted_files(sb, mk); if (err == -EBUSY) { @@ -1038,7 +1087,7 @@ * has been fully removed including all files locked. */ out_put_key: - key_put(key); + fscrypt_put_master_key(mk); if (err == 0) err = put_user(status_flags, &uarg->removal_status_flags); return err; @@ -1085,7 +1134,6 @@ { struct super_block *sb = file_inode(filp)->i_sb; struct fscrypt_get_key_status_arg arg; - struct key *key; struct fscrypt_master_key *mk; int err; @@ -1102,19 +1150,18 @@ arg.user_count = 0; memset(arg.__out_reserved, 0, sizeof(arg.__out_reserved)); - key = fscrypt_find_master_key(sb, &arg.key_spec); - if (IS_ERR(key)) { - if (key != ERR_PTR(-ENOKEY)) - return PTR_ERR(key); + mk = fscrypt_find_master_key(sb, &arg.key_spec); + if (!mk) { arg.status = FSCRYPT_KEY_STATUS_ABSENT; err = 0; goto out; } - mk = key->payload.data[0]; - down_read(&key->sem); + down_read(&mk->mk_sem); if (!is_master_key_secret_present(&mk->mk_secret)) { - arg.status = FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED; + arg.status = refcount_read(&mk->mk_active_refs) > 0 ? + FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED : + FSCRYPT_KEY_STATUS_ABSENT /* raced with full removal */; err = 0; goto out_release_key; } @@ -1136,8 +1183,8 @@ } err = 0; out_release_key: - up_read(&key->sem); - key_put(key); + up_read(&mk->mk_sem); + fscrypt_put_master_key(mk); out: if (!err && copy_to_user(uarg, &arg, sizeof(arg))) err = -EFAULT; @@ -1149,13 +1196,9 @@ { int err; - err = register_key_type(&key_type_fscrypt); - if (err) - return err; - err = register_key_type(&key_type_fscrypt_user); if (err) - goto err_unregister_fscrypt; + return err; err = register_key_type(&key_type_fscrypt_provisioning); if (err) @@ -1165,7 +1208,5 @@ err_unregister_fscrypt_user: unregister_key_type(&key_type_fscrypt_user); -err_unregister_fscrypt: - unregister_key_type(&key_type_fscrypt); return err; } --- linux-5.19.0.orig/fs/crypto/keysetup.c +++ linux-5.19.0/fs/crypto/keysetup.c @@ -9,7 +9,6 @@ */ #include -#include #include #include "fscrypt_private.h" @@ -152,6 +151,7 @@ { crypto_free_skcipher(prep_key->tfm); fscrypt_destroy_inline_crypt_key(prep_key); + memzero_explicit(prep_key, sizeof(*prep_key)); } /* Given a per-file encryption key, set up the file's crypto transform object */ @@ -405,20 +405,18 @@ /* * Find the master key, then set up the inode's actual encryption key. * - * If the master key is found in the filesystem-level keyring, then the - * corresponding 'struct key' is returned in *master_key_ret with its semaphore - * read-locked. This is needed to ensure that only one task links the - * fscrypt_info into ->mk_decrypted_inodes (as multiple tasks may race to create - * an fscrypt_info for the same inode), and to synchronize the master key being - * removed with a new inode starting to use it. + * If the master key is found in the filesystem-level keyring, then it is + * returned in *mk_ret with its semaphore read-locked. This is needed to ensure + * that only one task links the fscrypt_info into ->mk_decrypted_inodes (as + * multiple tasks may race to create an fscrypt_info for the same inode), and to + * synchronize the master key being removed with a new inode starting to use it. */ static int setup_file_encryption_key(struct fscrypt_info *ci, bool need_dirhash_key, - struct key **master_key_ret) + struct fscrypt_master_key **mk_ret) { - struct key *key; - struct fscrypt_master_key *mk = NULL; struct fscrypt_key_specifier mk_spec; + struct fscrypt_master_key *mk; int err; err = fscrypt_select_encryption_impl(ci); @@ -429,11 +427,10 @@ if (err) return err; - key = fscrypt_find_master_key(ci->ci_inode->i_sb, &mk_spec); - if (IS_ERR(key)) { - if (key != ERR_PTR(-ENOKEY) || - ci->ci_policy.version != FSCRYPT_POLICY_V1) - return PTR_ERR(key); + mk = fscrypt_find_master_key(ci->ci_inode->i_sb, &mk_spec); + if (!mk) { + if (ci->ci_policy.version != FSCRYPT_POLICY_V1) + return -ENOKEY; /* * As a legacy fallback for v1 policies, search for the key in @@ -443,9 +440,7 @@ */ return fscrypt_setup_v1_file_key_via_subscribed_keyrings(ci); } - - mk = key->payload.data[0]; - down_read(&key->sem); + down_read(&mk->mk_sem); /* Has the secret been removed (via FS_IOC_REMOVE_ENCRYPTION_KEY)? */ if (!is_master_key_secret_present(&mk->mk_secret)) { @@ -473,18 +468,18 @@ if (err) goto out_release_key; - *master_key_ret = key; + *mk_ret = mk; return 0; out_release_key: - up_read(&key->sem); - key_put(key); + up_read(&mk->mk_sem); + fscrypt_put_master_key(mk); return err; } static void put_crypt_info(struct fscrypt_info *ci) { - struct key *key; + struct fscrypt_master_key *mk; if (!ci) return; @@ -494,24 +489,18 @@ else if (ci->ci_owns_key) fscrypt_destroy_prepared_key(&ci->ci_enc_key); - key = ci->ci_master_key; - if (key) { - struct fscrypt_master_key *mk = key->payload.data[0]; - + mk = ci->ci_master_key; + if (mk) { /* * Remove this inode from the list of inodes that were unlocked - * with the master key. - * - * In addition, if we're removing the last inode from a key that - * already had its secret removed, invalidate the key so that it - * gets removed from ->s_master_keys. + * with the master key. In addition, if we're removing the last + * inode from a master key struct that already had its secret + * removed, then complete the full removal of the struct. */ spin_lock(&mk->mk_decrypted_inodes_lock); list_del(&ci->ci_master_key_link); spin_unlock(&mk->mk_decrypted_inodes_lock); - if (refcount_dec_and_test(&mk->mk_refcount)) - key_invalidate(key); - key_put(key); + fscrypt_put_master_key_activeref(mk); } memzero_explicit(ci, sizeof(*ci)); kmem_cache_free(fscrypt_info_cachep, ci); @@ -525,7 +514,7 @@ { struct fscrypt_info *crypt_info; struct fscrypt_mode *mode; - struct key *master_key = NULL; + struct fscrypt_master_key *mk = NULL; int res; res = fscrypt_initialize(inode->i_sb->s_cop->flags); @@ -548,8 +537,7 @@ WARN_ON(mode->ivsize > FSCRYPT_MAX_IV_SIZE); crypt_info->ci_mode = mode; - res = setup_file_encryption_key(crypt_info, need_dirhash_key, - &master_key); + res = setup_file_encryption_key(crypt_info, need_dirhash_key, &mk); if (res) goto out; @@ -564,12 +552,9 @@ * We won the race and set ->i_crypt_info to our crypt_info. * Now link it into the master key's inode list. */ - if (master_key) { - struct fscrypt_master_key *mk = - master_key->payload.data[0]; - - refcount_inc(&mk->mk_refcount); - crypt_info->ci_master_key = key_get(master_key); + if (mk) { + crypt_info->ci_master_key = mk; + refcount_inc(&mk->mk_active_refs); spin_lock(&mk->mk_decrypted_inodes_lock); list_add(&crypt_info->ci_master_key_link, &mk->mk_decrypted_inodes); @@ -579,9 +564,9 @@ } res = 0; out: - if (master_key) { - up_read(&master_key->sem); - key_put(master_key); + if (mk) { + up_read(&mk->mk_sem); + fscrypt_put_master_key(mk); } put_crypt_info(crypt_info); return res; @@ -746,7 +731,6 @@ int fscrypt_drop_inode(struct inode *inode) { const struct fscrypt_info *ci = fscrypt_get_info(inode); - const struct fscrypt_master_key *mk; /* * If ci is NULL, then the inode doesn't have an encryption key set up @@ -756,7 +740,6 @@ */ if (!ci || !ci->ci_master_key) return 0; - mk = ci->ci_master_key->payload.data[0]; /* * With proper, non-racy use of FS_IOC_REMOVE_ENCRYPTION_KEY, all inodes @@ -775,6 +758,6 @@ * then the thread removing the key will either evict the inode itself * or will correctly detect that it wasn't evicted due to the race. */ - return !is_master_key_secret_present(&mk->mk_secret); + return !is_master_key_secret_present(&ci->ci_master_key->mk_secret); } EXPORT_SYMBOL_GPL(fscrypt_drop_inode); --- linux-5.19.0.orig/fs/crypto/policy.c +++ linux-5.19.0/fs/crypto/policy.c @@ -713,12 +713,8 @@ * delayed key setup that requires the inode number. */ if (ci->ci_policy.version == FSCRYPT_POLICY_V2 && - (ci->ci_policy.v2.flags & FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32)) { - const struct fscrypt_master_key *mk = - ci->ci_master_key->payload.data[0]; - - fscrypt_hash_inode_number(ci, mk); - } + (ci->ci_policy.v2.flags & FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32)) + fscrypt_hash_inode_number(ci, ci->ci_master_key); return inode->i_sb->s_cop->set_context(inode, &ctx, ctxsize, fs_data); } --- linux-5.19.0.orig/fs/dax.c +++ linux-5.19.0/fs/dax.c @@ -1241,6 +1241,9 @@ loff_t done = 0; int ret; + if (!iomi.len) + return 0; + if (iov_iter_rw(iter) == WRITE) { lockdep_assert_held_write(&iomi.inode->i_rwsem); iomi.flags |= IOMAP_WRITE; --- linux-5.19.0.orig/fs/debugfs/file.c +++ linux-5.19.0/fs/debugfs/file.c @@ -378,8 +378,8 @@ } EXPORT_SYMBOL_GPL(debugfs_attr_read); -ssize_t debugfs_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t debugfs_attr_write_xsigned(struct file *file, const char __user *buf, + size_t len, loff_t *ppos, bool is_signed) { struct dentry *dentry = F_DENTRY(file); ssize_t ret; @@ -387,12 +387,28 @@ ret = debugfs_file_get(dentry); if (unlikely(ret)) return ret; - ret = simple_attr_write(file, buf, len, ppos); + if (is_signed) + ret = simple_attr_write_signed(file, buf, len, ppos); + else + ret = simple_attr_write(file, buf, len, ppos); debugfs_file_put(dentry); return ret; } + +ssize_t debugfs_attr_write(struct file *file, const char __user *buf, + size_t len, loff_t *ppos) +{ + return debugfs_attr_write_xsigned(file, buf, len, ppos, false); +} EXPORT_SYMBOL_GPL(debugfs_attr_write); +ssize_t debugfs_attr_write_signed(struct file *file, const char __user *buf, + size_t len, loff_t *ppos) +{ + return debugfs_attr_write_xsigned(file, buf, len, ppos, true); +} +EXPORT_SYMBOL_GPL(debugfs_attr_write_signed); + static struct dentry *debugfs_create_mode_unsafe(const char *name, umode_t mode, struct dentry *parent, void *value, const struct file_operations *fops, @@ -738,11 +754,11 @@ *val = atomic_read((atomic_t *)data); return 0; } -DEFINE_DEBUGFS_ATTRIBUTE(fops_atomic_t, debugfs_atomic_t_get, +DEFINE_DEBUGFS_ATTRIBUTE_SIGNED(fops_atomic_t, debugfs_atomic_t_get, debugfs_atomic_t_set, "%lld\n"); -DEFINE_DEBUGFS_ATTRIBUTE(fops_atomic_t_ro, debugfs_atomic_t_get, NULL, +DEFINE_DEBUGFS_ATTRIBUTE_SIGNED(fops_atomic_t_ro, debugfs_atomic_t_get, NULL, "%lld\n"); -DEFINE_DEBUGFS_ATTRIBUTE(fops_atomic_t_wo, NULL, debugfs_atomic_t_set, +DEFINE_DEBUGFS_ATTRIBUTE_SIGNED(fops_atomic_t_wo, NULL, debugfs_atomic_t_set, "%lld\n"); /** --- linux-5.19.0.orig/fs/debugfs/inode.c +++ linux-5.19.0/fs/debugfs/inode.c @@ -745,6 +745,28 @@ EXPORT_SYMBOL_GPL(debugfs_remove); /** + * debugfs_lookup_and_remove - lookup a directory or file and recursively remove it + * @name: a pointer to a string containing the name of the item to look up. + * @parent: a pointer to the parent dentry of the item. + * + * This is the equlivant of doing something like + * debugfs_remove(debugfs_lookup(..)) but with the proper reference counting + * handled for the directory being looked up. + */ +void debugfs_lookup_and_remove(const char *name, struct dentry *parent) +{ + struct dentry *dentry; + + dentry = debugfs_lookup(name, parent); + if (!dentry) + return; + + debugfs_remove(dentry); + dput(dentry); +} +EXPORT_SYMBOL_GPL(debugfs_lookup_and_remove); + +/** * debugfs_rename - rename a file/directory in the debugfs filesystem * @old_dir: a pointer to the parent dentry for the renamed object. This * should be a directory dentry. --- linux-5.19.0.orig/fs/dlm/ast.c +++ linux-5.19.0/fs/dlm/ast.c @@ -200,13 +200,13 @@ if (!prev_seq) { kref_get(&lkb->lkb_ref); + mutex_lock(&ls->ls_cb_mutex); if (test_bit(LSFL_CB_DELAY, &ls->ls_flags)) { - mutex_lock(&ls->ls_cb_mutex); list_add(&lkb->lkb_cb_list, &ls->ls_cb_delay); - mutex_unlock(&ls->ls_cb_mutex); } else { queue_work(ls->ls_callback_wq, &lkb->lkb_cb_work); } + mutex_unlock(&ls->ls_cb_mutex); } out: mutex_unlock(&lkb->lkb_cb_mutex); @@ -288,7 +288,9 @@ void dlm_callback_suspend(struct dlm_ls *ls) { + mutex_lock(&ls->ls_cb_mutex); set_bit(LSFL_CB_DELAY, &ls->ls_flags); + mutex_unlock(&ls->ls_cb_mutex); if (ls->ls_callback_wq) flush_workqueue(ls->ls_callback_wq); --- linux-5.19.0.orig/fs/dlm/lock.c +++ linux-5.19.0/fs/dlm/lock.c @@ -2920,17 +2920,9 @@ static int validate_lock_args(struct dlm_ls *ls, struct dlm_lkb *lkb, struct dlm_args *args) { - int rv = -EINVAL; + int rv = -EBUSY; if (args->flags & DLM_LKF_CONVERT) { - if (lkb->lkb_flags & DLM_IFL_MSTCPY) - goto out; - - if (args->flags & DLM_LKF_QUECVT && - !__quecvt_compat_matrix[lkb->lkb_grmode+1][args->mode+1]) - goto out; - - rv = -EBUSY; if (lkb->lkb_status != DLM_LKSTS_GRANTED) goto out; @@ -2940,6 +2932,14 @@ if (is_overlap(lkb)) goto out; + + rv = -EINVAL; + if (lkb->lkb_flags & DLM_IFL_MSTCPY) + goto out; + + if (args->flags & DLM_LKF_QUECVT && + !__quecvt_compat_matrix[lkb->lkb_grmode+1][args->mode+1]) + goto out; } lkb->lkb_exflags = args->flags; @@ -3672,7 +3672,7 @@ case cpu_to_le32(DLM_MSG_REQUEST_REPLY): case cpu_to_le32(DLM_MSG_CONVERT_REPLY): case cpu_to_le32(DLM_MSG_GRANT): - if (!lkb->lkb_lvbptr) + if (!lkb->lkb_lvbptr || !(lkb->lkb_exflags & DLM_LKF_VALBLK)) break; memcpy(ms->m_extra, lkb->lkb_lvbptr, r->res_ls->ls_lvblen); break; --- linux-5.19.0.orig/fs/dlm/lowcomms.c +++ linux-5.19.0/fs/dlm/lowcomms.c @@ -1336,6 +1336,8 @@ return NULL; } + /* for dlm_lowcomms_commit_msg() */ + kref_get(&msg->ref); /* we assume if successful commit must called */ msg->idx = idx; return msg; @@ -1375,6 +1377,8 @@ { _dlm_lowcomms_commit_msg(msg); srcu_read_unlock(&connections_srcu, msg->idx); + /* because dlm_lowcomms_new_msg() */ + kref_put(&msg->ref, dlm_msg_release); } #endif --- linux-5.19.0.orig/fs/erofs/decompressor.c +++ linux-5.19.0/fs/erofs/decompressor.c @@ -91,14 +91,18 @@ if (page) { __clear_bit(j, bounced); - if (kaddr) { - if (kaddr + PAGE_SIZE == page_address(page)) + if (!PageHighMem(page)) { + if (!i) { + kaddr = page_address(page); + continue; + } + if (kaddr && + kaddr + PAGE_SIZE == page_address(page)) { kaddr += PAGE_SIZE; - else - kaddr = NULL; - } else if (!i) { - kaddr = page_address(page); + continue; + } } + kaddr = NULL; continue; } kaddr = NULL; --- linux-5.19.0.orig/fs/erofs/decompressor_lzma.c +++ linux-5.19.0/fs/erofs/decompressor_lzma.c @@ -143,6 +143,7 @@ DBG_BUGON(z_erofs_lzma_head); z_erofs_lzma_head = head; spin_unlock(&z_erofs_lzma_lock); + wake_up_all(&z_erofs_lzma_wq); z_erofs_lzma_max_dictsize = dict_size; mutex_unlock(&lzma_resize_mutex); --- linux-5.19.0.orig/fs/erofs/dir.c +++ linux-5.19.0/fs/erofs/dir.c @@ -22,10 +22,9 @@ } static int erofs_fill_dentries(struct inode *dir, struct dir_context *ctx, - void *dentry_blk, unsigned int *ofs, + void *dentry_blk, struct erofs_dirent *de, unsigned int nameoff, unsigned int maxsize) { - struct erofs_dirent *de = dentry_blk + *ofs; const struct erofs_dirent *end = dentry_blk + nameoff; while (de < end) { @@ -59,9 +58,8 @@ /* stopped by some reason */ return 1; ++de; - *ofs += sizeof(struct erofs_dirent); + ctx->pos += sizeof(struct erofs_dirent); } - *ofs = maxsize; return 0; } @@ -95,7 +93,7 @@ "invalid de[0].nameoff %u @ nid %llu", nameoff, EROFS_I(dir)->nid); err = -EFSCORRUPTED; - goto skip_this; + break; } maxsize = min_t(unsigned int, @@ -106,17 +104,17 @@ initial = false; ofs = roundup(ofs, sizeof(struct erofs_dirent)); + ctx->pos = blknr_to_addr(i) + ofs; if (ofs >= nameoff) goto skip_this; } - err = erofs_fill_dentries(dir, ctx, de, &ofs, + err = erofs_fill_dentries(dir, ctx, de, (void *)de + ofs, nameoff, maxsize); -skip_this: - ctx->pos = blknr_to_addr(i) + ofs; - if (err) break; +skip_this: + ctx->pos = blknr_to_addr(i) + maxsize; ++i; ofs = 0; } --- linux-5.19.0.orig/fs/erofs/fscache.c +++ linux-5.19.0/fs/erofs/fscache.c @@ -69,11 +69,15 @@ rcu_read_lock(); xas_for_each(&xas, folio, last_page) { - unsigned int pgpos = - (folio_index(folio) - start_page) * PAGE_SIZE; - unsigned int pgend = pgpos + folio_size(folio); + unsigned int pgpos, pgend; bool pg_failed = false; + if (xas_retry(&xas, folio)) + continue; + + pgpos = (folio_index(folio) - start_page) * PAGE_SIZE; + pgend = pgpos + folio_size(folio); + for (;;) { if (!subreq) { pg_failed = true; @@ -222,8 +226,10 @@ rreq = erofs_fscache_alloc_request(folio_mapping(folio), folio_pos(folio), folio_size(folio)); - if (IS_ERR(rreq)) + if (IS_ERR(rreq)) { + ret = PTR_ERR(rreq); goto out; + } return erofs_fscache_read_folios_async(mdev.m_fscache->cookie, rreq, mdev.m_pa); @@ -232,111 +238,111 @@ return ret; } -static int erofs_fscache_read_folio_inline(struct folio *folio, - struct erofs_map_blocks *map) -{ - struct super_block *sb = folio_mapping(folio)->host->i_sb; - struct erofs_buf buf = __EROFS_BUF_INITIALIZER; - erofs_blk_t blknr; - size_t offset, len; - void *src, *dst; - - /* For tail packing layout, the offset may be non-zero. */ - offset = erofs_blkoff(map->m_pa); - blknr = erofs_blknr(map->m_pa); - len = map->m_llen; - - src = erofs_read_metabuf(&buf, sb, blknr, EROFS_KMAP); - if (IS_ERR(src)) - return PTR_ERR(src); - - dst = kmap_local_folio(folio, 0); - memcpy(dst, src + offset, len); - memset(dst + len, 0, PAGE_SIZE - len); - kunmap_local(dst); - - erofs_put_metabuf(&buf); - return 0; -} - -static int erofs_fscache_read_folio(struct file *file, struct folio *folio) +/* + * Read into page cache in the range described by (@pos, @len). + * + * On return, the caller is responsible for page unlocking if the output @unlock + * is true, or the callee will take this responsibility through netfs_io_request + * interface. + * + * The return value is the number of bytes successfully handled, or negative + * error code on failure. The only exception is that, the length of the range + * instead of the error code is returned on failure after netfs_io_request is + * allocated, so that .readahead() could advance rac accordingly. + */ +static int erofs_fscache_data_read(struct address_space *mapping, + loff_t pos, size_t len, bool *unlock) { - struct inode *inode = folio_mapping(folio)->host; + struct inode *inode = mapping->host; struct super_block *sb = inode->i_sb; + struct netfs_io_request *rreq; struct erofs_map_blocks map; struct erofs_map_dev mdev; - struct netfs_io_request *rreq; - erofs_off_t pos; - loff_t pstart; + struct iov_iter iter; + size_t count; int ret; - DBG_BUGON(folio_size(folio) != EROFS_BLKSIZ); + *unlock = true; - pos = folio_pos(folio); map.m_la = pos; - ret = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW); if (ret) - goto out_unlock; + return ret; - if (!(map.m_flags & EROFS_MAP_MAPPED)) { - folio_zero_range(folio, 0, folio_size(folio)); - goto out_uptodate; + if (map.m_flags & EROFS_MAP_META) { + struct erofs_buf buf = __EROFS_BUF_INITIALIZER; + erofs_blk_t blknr; + size_t offset, size; + void *src; + + /* For tail packing layout, the offset may be non-zero. */ + offset = erofs_blkoff(map.m_pa); + blknr = erofs_blknr(map.m_pa); + size = map.m_llen; + + src = erofs_read_metabuf(&buf, sb, blknr, EROFS_KMAP); + if (IS_ERR(src)) + return PTR_ERR(src); + + iov_iter_xarray(&iter, READ, &mapping->i_pages, pos, PAGE_SIZE); + if (copy_to_iter(src + offset, size, &iter) != size) + return -EFAULT; + iov_iter_zero(PAGE_SIZE - size, &iter); + erofs_put_metabuf(&buf); + return PAGE_SIZE; } - if (map.m_flags & EROFS_MAP_META) { - ret = erofs_fscache_read_folio_inline(folio, &map); - goto out_uptodate; + count = min_t(size_t, map.m_llen - (pos - map.m_la), len); + DBG_BUGON(!count || count % PAGE_SIZE); + + if (!(map.m_flags & EROFS_MAP_MAPPED)) { + iov_iter_xarray(&iter, READ, &mapping->i_pages, pos, count); + iov_iter_zero(count, &iter); + return count; } mdev = (struct erofs_map_dev) { .m_deviceid = map.m_deviceid, .m_pa = map.m_pa, }; - ret = erofs_map_dev(sb, &mdev); if (ret) - goto out_unlock; + return ret; - - rreq = erofs_fscache_alloc_request(folio_mapping(folio), - folio_pos(folio), folio_size(folio)); + rreq = erofs_fscache_alloc_request(mapping, pos, count); if (IS_ERR(rreq)) - goto out_unlock; + return PTR_ERR(rreq); - pstart = mdev.m_pa + (pos - map.m_la); - return erofs_fscache_read_folios_async(mdev.m_fscache->cookie, - rreq, pstart); - -out_uptodate: - if (!ret) - folio_mark_uptodate(folio); -out_unlock: - folio_unlock(folio); - return ret; + *unlock = false; + erofs_fscache_read_folios_async(mdev.m_fscache->cookie, + rreq, mdev.m_pa + (pos - map.m_la)); + return count; } -static void erofs_fscache_advance_folios(struct readahead_control *rac, - size_t len, bool unlock) +static int erofs_fscache_read_folio(struct file *file, struct folio *folio) { - while (len) { - struct folio *folio = readahead_folio(rac); - len -= folio_size(folio); - if (unlock) { + bool unlock; + int ret; + + DBG_BUGON(folio_size(folio) != EROFS_BLKSIZ); + + ret = erofs_fscache_data_read(folio_mapping(folio), folio_pos(folio), + folio_size(folio), &unlock); + if (unlock) { + if (ret > 0) folio_mark_uptodate(folio); - folio_unlock(folio); - } + folio_unlock(folio); } + return ret < 0 ? ret : 0; } static void erofs_fscache_readahead(struct readahead_control *rac) { - struct inode *inode = rac->mapping->host; - struct super_block *sb = inode->i_sb; - size_t len, count, done = 0; - erofs_off_t pos; - loff_t start, offset; - int ret; + struct folio *folio; + size_t len, done = 0; + loff_t start, pos; + bool unlock; + int ret, size; if (!readahead_count(rac)) return; @@ -345,67 +351,22 @@ len = readahead_length(rac); do { - struct erofs_map_blocks map; - struct erofs_map_dev mdev; - struct netfs_io_request *rreq; - pos = start + done; - map.m_la = pos; - - ret = erofs_map_blocks(inode, &map, EROFS_GET_BLOCKS_RAW); - if (ret) + ret = erofs_fscache_data_read(rac->mapping, pos, + len - done, &unlock); + if (ret <= 0) return; - offset = start + done; - count = min_t(size_t, map.m_llen - (pos - map.m_la), - len - done); - - if (!(map.m_flags & EROFS_MAP_MAPPED)) { - struct iov_iter iter; - - iov_iter_xarray(&iter, READ, &rac->mapping->i_pages, - offset, count); - iov_iter_zero(count, &iter); - - erofs_fscache_advance_folios(rac, count, true); - ret = count; - continue; - } - - if (map.m_flags & EROFS_MAP_META) { - struct folio *folio = readahead_folio(rac); - - ret = erofs_fscache_read_folio_inline(folio, &map); - if (!ret) { + size = ret; + while (size) { + folio = readahead_folio(rac); + size -= folio_size(folio); + if (unlock) { folio_mark_uptodate(folio); - ret = folio_size(folio); + folio_unlock(folio); } - - folio_unlock(folio); - continue; } - - mdev = (struct erofs_map_dev) { - .m_deviceid = map.m_deviceid, - .m_pa = map.m_pa, - }; - ret = erofs_map_dev(sb, &mdev); - if (ret) - return; - - rreq = erofs_fscache_alloc_request(rac->mapping, offset, count); - if (IS_ERR(rreq)) - return; - /* - * Drop the ref of folios here. Unlock them in - * rreq_unlock_folios() when rreq complete. - */ - erofs_fscache_advance_folios(rac, count, false); - ret = erofs_fscache_read_folios_async(mdev.m_fscache->cookie, - rreq, mdev.m_pa + (pos - map.m_la)); - if (!ret) - ret = count; - } while (ret > 0 && ((done += ret) < len)); + } while ((done += ret) < len); } static const struct address_space_operations erofs_fscache_meta_aops = { --- linux-5.19.0.orig/fs/erofs/inode.c +++ linux-5.19.0/fs/erofs/inode.c @@ -214,7 +214,7 @@ /* if it cannot be handled with fast symlink scheme */ if (vi->datalayout != EROFS_INODE_FLAT_INLINE || - inode->i_size >= EROFS_BLKSIZ) { + inode->i_size >= EROFS_BLKSIZ || inode->i_size < 0) { inode->i_op = &erofs_symlink_iops; return 0; } --- linux-5.19.0.orig/fs/erofs/internal.h +++ linux-5.19.0/fs/erofs/internal.h @@ -195,7 +195,6 @@ atomic_t refcount; }; -#if defined(CONFIG_SMP) static inline bool erofs_workgroup_try_to_freeze(struct erofs_workgroup *grp, int val) { @@ -224,34 +223,6 @@ return atomic_cond_read_relaxed(&grp->refcount, VAL != EROFS_LOCKED_MAGIC); } -#else -static inline bool erofs_workgroup_try_to_freeze(struct erofs_workgroup *grp, - int val) -{ - preempt_disable(); - /* no need to spin on UP platforms, let's just disable preemption. */ - if (val != atomic_read(&grp->refcount)) { - preempt_enable(); - return false; - } - return true; -} - -static inline void erofs_workgroup_unfreeze(struct erofs_workgroup *grp, - int orig_val) -{ - preempt_enable(); -} - -static inline int erofs_wait_on_workgroup_freezed(struct erofs_workgroup *grp) -{ - int v = atomic_read(&grp->refcount); - - /* workgroup is never freezed on uniprocessor systems */ - DBG_BUGON(v == EROFS_LOCKED_MAGIC); - return v; -} -#endif /* !CONFIG_SMP */ #endif /* !CONFIG_EROFS_FS_ZIP */ /* we strictly follow PAGE_SIZE and no buffer head yet */ --- linux-5.19.0.orig/fs/erofs/super.c +++ linux-5.19.0/fs/erofs/super.c @@ -877,7 +877,7 @@ WARN_ON(sb->s_magic != EROFS_SUPER_MAGIC); if (erofs_is_fscache_mode(sb)) - generic_shutdown_super(sb); + kill_anon_super(sb); else kill_block_super(sb); --- linux-5.19.0.orig/fs/erofs/zdata.c +++ linux-5.19.0/fs/erofs/zdata.c @@ -458,7 +458,8 @@ struct erofs_workgroup *grp; int err; - if (!(map->m_flags & EROFS_MAP_ENCODED)) { + if (!(map->m_flags & EROFS_MAP_ENCODED) || + (!ztailpacking && !(map->m_pa >> PAGE_SHIFT))) { DBG_BUGON(1); return -EFSCORRUPTED; } --- linux-5.19.0.orig/fs/erofs/zmap.c +++ linux-5.19.0/fs/erofs/zmap.c @@ -676,7 +676,7 @@ map->m_pa = blknr_to_addr(m.pblk); err = z_erofs_get_extent_compressedlen(&m, initial_lcn); if (err) - goto out; + goto unmap_out; } if (m.headtype == Z_EROFS_VLE_CLUSTER_TYPE_PLAIN) @@ -694,14 +694,12 @@ if (!err) map->m_flags |= EROFS_MAP_FULL_MAPPED; } + unmap_out: erofs_unmap_metabuf(&m.map->buf); - -out: erofs_dbg("%s, m_la %llu m_pa %llu m_llen %llu m_plen %llu m_flags 0%o", __func__, map->m_la, map->m_pa, map->m_llen, map->m_plen, map->m_flags); - return err; } --- linux-5.19.0.orig/fs/eventfd.c +++ linux-5.19.0/fs/eventfd.c @@ -69,17 +69,17 @@ * it returns false, the eventfd_signal() call should be deferred to a * safe context. */ - if (WARN_ON_ONCE(current->in_eventfd_signal)) + if (WARN_ON_ONCE(current->in_eventfd)) return 0; spin_lock_irqsave(&ctx->wqh.lock, flags); - current->in_eventfd_signal = 1; + current->in_eventfd = 1; if (ULLONG_MAX - ctx->count < n) n = ULLONG_MAX - ctx->count; ctx->count += n; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN); - current->in_eventfd_signal = 0; + current->in_eventfd = 0; spin_unlock_irqrestore(&ctx->wqh.lock, flags); return n; @@ -253,8 +253,10 @@ __set_current_state(TASK_RUNNING); } eventfd_ctx_do_read(ctx, &ucnt); + current->in_eventfd = 1; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLOUT); + current->in_eventfd = 0; spin_unlock_irq(&ctx->wqh.lock); if (unlikely(copy_to_iter(&ucnt, sizeof(ucnt), to) != sizeof(ucnt))) return -EFAULT; @@ -301,8 +303,10 @@ } if (likely(res > 0)) { ctx->count += ucnt; + current->in_eventfd = 1; if (waitqueue_active(&ctx->wqh)) wake_up_locked_poll(&ctx->wqh, EPOLLIN); + current->in_eventfd = 0; } spin_unlock_irq(&ctx->wqh.lock); --- linux-5.19.0.orig/fs/eventpoll.c +++ linux-5.19.0/fs/eventpoll.c @@ -1747,6 +1747,21 @@ return to; } +/* + * autoremove_wake_function, but remove even on failure to wake up, because we + * know that default_wake_function/ttwu will only fail if the thread is already + * woken, and in that case the ep_poll loop will remove the entry anyways, not + * try to reuse it. + */ +static int ep_autoremove_wake_function(struct wait_queue_entry *wq_entry, + unsigned int mode, int sync, void *key) +{ + int ret = default_wake_function(wq_entry, mode, sync, key); + + list_del_init(&wq_entry->entry); + return ret; +} + /** * ep_poll - Retrieves ready events, and delivers them to the caller-supplied * event buffer. @@ -1828,8 +1843,15 @@ * normal wakeup path no need to call __remove_wait_queue() * explicitly, thus ep->lock is not taken, which halts the * event delivery. + * + * In fact, we now use an even more aggressive function that + * unconditionally removes, because we don't reuse the wait + * entry between loop iterations. This lets us also avoid the + * performance issue if a process is killed, causing all of its + * threads to wake up without being removed normally. */ init_wait(&wait); + wait.func = ep_autoremove_wake_function; write_lock_irq(&ep->lock); /* --- linux-5.19.0.orig/fs/exec.c +++ linux-5.19.0/fs/exec.c @@ -1200,11 +1200,11 @@ return -ENOMEM; refcount_set(&newsighand->count, 1); - memcpy(newsighand->action, oldsighand->action, - sizeof(newsighand->action)); write_lock_irq(&tasklist_lock); spin_lock(&oldsighand->siglock); + memcpy(newsighand->action, oldsighand->action, + sizeof(newsighand->action)); rcu_assign_pointer(me->sighand, newsighand); spin_unlock(&oldsighand->siglock); write_unlock_irq(&tasklist_lock); @@ -1301,6 +1301,9 @@ bprm->mm = NULL; #ifdef CONFIG_POSIX_TIMERS + spin_lock_irq(&me->sighand->siglock); + posix_cpu_timers_exit(me); + spin_unlock_irq(&me->sighand->siglock); exit_itimers(me); flush_itimer_signals(); #endif --- linux-5.19.0.orig/fs/exfat/fatent.c +++ linux-5.19.0/fs/exfat/fatent.c @@ -270,8 +270,7 @@ struct super_block *sb = dir->i_sb; struct exfat_sb_info *sbi = EXFAT_SB(sb); struct buffer_head *bh; - sector_t blknr, last_blknr; - int i; + sector_t blknr, last_blknr, i; blknr = exfat_cluster_to_sector(sbi, clu); last_blknr = blknr + sbi->sect_per_clus; --- linux-5.19.0.orig/fs/ext2/super.c +++ linux-5.19.0/fs/ext2/super.c @@ -163,7 +163,7 @@ db_count = sbi->s_gdb_count; for (i = 0; i < db_count; i++) brelse(sbi->s_group_desc[i]); - kfree(sbi->s_group_desc); + kvfree(sbi->s_group_desc); kfree(sbi->s_debts); percpu_counter_destroy(&sbi->s_freeblocks_counter); percpu_counter_destroy(&sbi->s_freeinodes_counter); @@ -1053,27 +1053,47 @@ sbi->s_blocks_per_group); goto failed_mount; } + /* At least inode table, bitmaps, and sb have to fit in one group */ + if (sbi->s_blocks_per_group <= sbi->s_itb_per_group + 3) { + ext2_msg(sb, KERN_ERR, + "error: #blocks per group smaller than metadata size: %lu <= %lu", + sbi->s_blocks_per_group, sbi->s_inodes_per_group + 3); + goto failed_mount; + } if (sbi->s_frags_per_group > sb->s_blocksize * 8) { ext2_msg(sb, KERN_ERR, "error: #fragments per group too big: %lu", sbi->s_frags_per_group); goto failed_mount; } - if (sbi->s_inodes_per_group > sb->s_blocksize * 8) { + if (sbi->s_inodes_per_group < sbi->s_inodes_per_block || + sbi->s_inodes_per_group > sb->s_blocksize * 8) { ext2_msg(sb, KERN_ERR, - "error: #inodes per group too big: %lu", + "error: invalid #inodes per group: %lu", sbi->s_inodes_per_group); goto failed_mount; } + if (sb_bdev_nr_blocks(sb) < le32_to_cpu(es->s_blocks_count)) { + ext2_msg(sb, KERN_ERR, + "bad geometry: block count %u exceeds size of device (%u blocks)", + le32_to_cpu(es->s_blocks_count), + (unsigned)sb_bdev_nr_blocks(sb)); + goto failed_mount; + } - if (EXT2_BLOCKS_PER_GROUP(sb) == 0) - goto cantfind_ext2; sbi->s_groups_count = ((le32_to_cpu(es->s_blocks_count) - le32_to_cpu(es->s_first_data_block) - 1) / EXT2_BLOCKS_PER_GROUP(sb)) + 1; + if ((u64)sbi->s_groups_count * sbi->s_inodes_per_group != + le32_to_cpu(es->s_inodes_count)) { + ext2_msg(sb, KERN_ERR, "error: invalid #inodes: %u vs computed %llu", + le32_to_cpu(es->s_inodes_count), + (u64)sbi->s_groups_count * sbi->s_inodes_per_group); + goto failed_mount; + } db_count = (sbi->s_groups_count + EXT2_DESC_PER_BLOCK(sb) - 1) / EXT2_DESC_PER_BLOCK(sb); - sbi->s_group_desc = kmalloc_array(db_count, + sbi->s_group_desc = kvmalloc_array(db_count, sizeof(struct buffer_head *), GFP_KERNEL); if (sbi->s_group_desc == NULL) { @@ -1199,7 +1219,7 @@ for (i = 0; i < db_count; i++) brelse(sbi->s_group_desc[i]); failed_mount_group_desc: - kfree(sbi->s_group_desc); + kvfree(sbi->s_group_desc); kfree(sbi->s_debts); failed_mount: brelse(bh); --- linux-5.19.0.orig/fs/ext4/ext4.h +++ linux-5.19.0/fs/ext4/ext4.h @@ -167,8 +167,6 @@ #define EXT4_MB_CR0_OPTIMIZED 0x8000 /* Avg fragment size rb tree lookup succeeded at least once for cr = 1 */ #define EXT4_MB_CR1_OPTIMIZED 0x00010000 -/* Perform linear traversal for one group */ -#define EXT4_MB_SEARCH_NEXT_LINEAR 0x00020000 struct ext4_allocation_request { /* target inode for block we're allocating */ struct inode *inode; @@ -1589,8 +1587,8 @@ struct list_head s_discard_list; struct work_struct s_discard_work; atomic_t s_retry_alloc_pending; - struct rb_root s_mb_avg_fragment_size_root; - rwlock_t s_mb_rb_lock; + struct list_head *s_mb_avg_fragment_size; + rwlock_t *s_mb_avg_fragment_size_locks; struct list_head *s_mb_largest_free_orders; rwlock_t *s_mb_largest_free_orders_locks; @@ -3402,6 +3400,8 @@ ext4_grpblk_t bb_first_free; /* first free block */ ext4_grpblk_t bb_free; /* total free blocks */ ext4_grpblk_t bb_fragments; /* nr of freespace fragments */ + int bb_avg_fragment_size_order; /* order of average + fragment in BG */ ext4_grpblk_t bb_largest_free_order;/* order of largest frag in BG */ ext4_group_t bb_group; /* Group number */ struct list_head bb_prealloc_list; @@ -3409,7 +3409,7 @@ void *bb_bitmap; #endif struct rw_semaphore alloc_sem; - struct rb_node bb_avg_fragment_size_rb; + struct list_head bb_avg_fragment_size_node; struct list_head bb_largest_free_order_node; ext4_grpblk_t bb_counters[]; /* Nr of free power-of-two-block * regions, index is order. @@ -3583,6 +3583,7 @@ extern int ext4_inline_data_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, int *has_inline, __u64 start, __u64 len); +extern void *ext4_read_inline_link(struct inode *inode); struct iomap; extern int ext4_inline_data_iomap(struct inode *inode, struct iomap *iomap); --- linux-5.19.0.orig/fs/ext4/extents.c +++ linux-5.19.0/fs/ext4/extents.c @@ -460,6 +460,10 @@ error_msg = "invalid eh_entries"; goto corrupted; } + if (unlikely((eh->eh_entries == 0) && (depth > 0))) { + error_msg = "eh_entries is 0 but eh_depth is > 0"; + goto corrupted; + } if (!ext4_valid_extent_entries(inode, eh, lblk, &pblk, depth)) { error_msg = "invalid extent entries"; goto corrupted; @@ -5179,6 +5183,7 @@ * and it is decreased till we reach start. */ again: + ret = 0; if (SHIFT == SHIFT_LEFT) iterator = &start; else @@ -5222,14 +5227,21 @@ ext4_ext_get_actual_len(extent); } else { extent = EXT_FIRST_EXTENT(path[depth].p_hdr); - if (le32_to_cpu(extent->ee_block) > 0) + if (le32_to_cpu(extent->ee_block) > start) *iterator = le32_to_cpu(extent->ee_block) - 1; - else - /* Beginning is reached, end of the loop */ + else if (le32_to_cpu(extent->ee_block) == start) iterator = NULL; - /* Update path extent in case we need to stop */ - while (le32_to_cpu(extent->ee_block) < start) + else { + extent = EXT_LAST_EXTENT(path[depth].p_hdr); + while (le32_to_cpu(extent->ee_block) >= start) + extent--; + + if (extent == EXT_LAST_EXTENT(path[depth].p_hdr)) + break; + extent++; + iterator = NULL; + } path[depth].p_ext = extent; } ret = ext4_ext_shift_path_extents(path, shift, inode, --- linux-5.19.0.orig/fs/ext4/fast_commit.c +++ linux-5.19.0/fs/ext4/fast_commit.c @@ -874,22 +874,25 @@ tl.fc_tag = cpu_to_le16(EXT4_FC_TAG_INODE); tl.fc_len = cpu_to_le16(inode_len + sizeof(fc_inode.fc_ino)); + ret = -ECANCELED; dst = ext4_fc_reserve_space(inode->i_sb, sizeof(tl) + inode_len + sizeof(fc_inode.fc_ino), crc); if (!dst) - return -ECANCELED; + goto err; if (!ext4_fc_memcpy(inode->i_sb, dst, &tl, sizeof(tl), crc)) - return -ECANCELED; + goto err; dst += sizeof(tl); if (!ext4_fc_memcpy(inode->i_sb, dst, &fc_inode, sizeof(fc_inode), crc)) - return -ECANCELED; + goto err; dst += sizeof(fc_inode); if (!ext4_fc_memcpy(inode->i_sb, dst, (u8 *)ext4_raw_inode(&iloc), inode_len, crc)) - return -ECANCELED; - - return 0; + goto err; + ret = 0; +err: + brelse(iloc.bh); + return ret; } /* @@ -1491,13 +1494,15 @@ if (state->fc_modified_inodes[i] == ino) return 0; if (state->fc_modified_inodes_used == state->fc_modified_inodes_size) { - state->fc_modified_inodes = krealloc( - state->fc_modified_inodes, + int *fc_modified_inodes; + + fc_modified_inodes = krealloc(state->fc_modified_inodes, sizeof(int) * (state->fc_modified_inodes_size + EXT4_FC_REPLAY_REALLOC_INCREMENT), GFP_KERNEL); - if (!state->fc_modified_inodes) + if (!fc_modified_inodes) return -ENOMEM; + state->fc_modified_inodes = fc_modified_inodes; state->fc_modified_inodes_size += EXT4_FC_REPLAY_REALLOC_INCREMENT; } @@ -1682,15 +1687,18 @@ if (replay && state->fc_regions_used != state->fc_regions_valid) state->fc_regions_used = state->fc_regions_valid; if (state->fc_regions_used == state->fc_regions_size) { + struct ext4_fc_alloc_region *fc_regions; + + fc_regions = krealloc(state->fc_regions, + sizeof(struct ext4_fc_alloc_region) * + (state->fc_regions_size + + EXT4_FC_REPLAY_REALLOC_INCREMENT), + GFP_KERNEL); + if (!fc_regions) + return -ENOMEM; state->fc_regions_size += EXT4_FC_REPLAY_REALLOC_INCREMENT; - state->fc_regions = krealloc( - state->fc_regions, - state->fc_regions_size * - sizeof(struct ext4_fc_alloc_region), - GFP_KERNEL); - if (!state->fc_regions) - return -ENOMEM; + state->fc_regions = fc_regions; } region = &state->fc_regions[state->fc_regions_used++]; region->ino = ino; --- linux-5.19.0.orig/fs/ext4/file.c +++ linux-5.19.0/fs/ext4/file.c @@ -528,6 +528,12 @@ ret = -EAGAIN; goto out; } + /* + * Make sure inline data cannot be created anymore since we are going + * to allocate blocks for DIO. We know the inode does not have any + * inline data now because ext4_dio_supported() checked for that. + */ + ext4_clear_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA); offset = iocb->ki_pos; count = ret; --- linux-5.19.0.orig/fs/ext4/ialloc.c +++ linux-5.19.0/fs/ext4/ialloc.c @@ -510,7 +510,7 @@ goto fallback; } - max_dirs = ndirs / ngroups + inodes_per_group / 16; + max_dirs = ndirs / ngroups + inodes_per_group*flex_size / 16; min_inodes = avefreei - inodes_per_group*flex_size / 4; if (min_inodes < 1) min_inodes = 1; --- linux-5.19.0.orig/fs/ext4/inline.c +++ linux-5.19.0/fs/ext4/inline.c @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -35,6 +36,9 @@ struct ext4_inode *raw_inode; int free, min_offs; + if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) + return 0; + min_offs = EXT4_SB(inode->i_sb)->s_inode_size - EXT4_GOOD_OLD_INODE_SIZE - EXT4_I(inode)->i_extra_isize - @@ -1588,6 +1592,35 @@ return ret; } +void *ext4_read_inline_link(struct inode *inode) +{ + struct ext4_iloc iloc; + int ret, inline_size; + void *link; + + ret = ext4_get_inode_loc(inode, &iloc); + if (ret) + return ERR_PTR(ret); + + ret = -ENOMEM; + inline_size = ext4_get_inline_size(inode); + link = kmalloc(inline_size + 1, GFP_NOFS); + if (!link) + goto out; + + ret = ext4_read_inline_data(inode, link, inline_size, &iloc); + if (ret < 0) { + kfree(link); + goto out; + } + nd_terminate_link(link, inode->i_size, ret); +out: + if (ret < 0) + link = ERR_PTR(ret); + brelse(iloc.bh); + return link; +} + struct buffer_head *ext4_get_first_inline_block(struct inode *inode, struct ext4_dir_entry_2 **parent_de, int *retval) --- linux-5.19.0.orig/fs/ext4/inode.c +++ linux-5.19.0/fs/ext4/inode.c @@ -177,6 +177,8 @@ trace_ext4_evict_inode(inode); + if (EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL) + ext4_evict_ea_inode(inode); if (inode->i_nlink) { /* * When journalling data dirty buffers are tracked only in the @@ -1186,6 +1188,13 @@ page = grab_cache_page_write_begin(mapping, index); if (!page) return -ENOMEM; + /* + * The same as page allocation, we prealloc buffer heads before + * starting the handle. + */ + if (!page_has_buffers(page)) + create_empty_buffers(page, inode->i_sb->s_blocksize, 0); + unlock_page(page); retry_journal: @@ -1571,7 +1580,14 @@ ext4_lblk_t start, last; start = index << (PAGE_SHIFT - inode->i_blkbits); last = end << (PAGE_SHIFT - inode->i_blkbits); + + /* + * avoid racing with extent status tree scans made by + * ext4_insert_delayed_block() + */ + down_write(&EXT4_I(inode)->i_data_sem); ext4_es_remove_extent(inode, start, last - start + 1); + up_write(&EXT4_I(inode)->i_data_sem); } pagevec_init(&pvec); @@ -3140,13 +3156,15 @@ { struct inode *inode = mapping->host; journal_t *journal; + sector_t ret = 0; int err; + inode_lock_shared(inode); /* * We can get here for an inline file via the FIBMAP ioctl */ if (ext4_has_inline_data(inode)) - return 0; + goto out; if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY) && test_opt(inode->i_sb, DELALLOC)) { @@ -3185,10 +3203,14 @@ jbd2_journal_unlock_updates(journal); if (err) - return 0; + goto out; } - return iomap_bmap(mapping, block, &ext4_iomap_ops); + ret = iomap_bmap(mapping, block, &ext4_iomap_ops); + +out: + inode_unlock_shared(inode); + return ret; } static int ext4_read_folio(struct file *file, struct folio *folio) @@ -4685,8 +4707,7 @@ __le32 *magic = (void *)raw_inode + EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize; - if (EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize + sizeof(__le32) <= - EXT4_INODE_SIZE(inode->i_sb) && + if (EXT4_INODE_HAS_XATTR_SPACE(inode) && *magic == cpu_to_le32(EXT4_XATTR_MAGIC)) { ext4_set_inode_state(inode, EXT4_STATE_XATTR); return ext4_find_inline_data_nolock(inode); @@ -5326,6 +5347,7 @@ int error, rc = 0; int orphan = 0; const unsigned int ia_valid = attr->ia_valid; + bool inc_ivers = true; if (unlikely(ext4_forced_shutdown(EXT4_SB(inode->i_sb)))) return -EIO; @@ -5411,8 +5433,8 @@ return -EINVAL; } - if (IS_I_VERSION(inode) && attr->ia_size != inode->i_size) - inode_inc_iversion(inode); + if (attr->ia_size == inode->i_size) + inc_ivers = false; if (shrink) { if (ext4_should_order_data(inode)) { @@ -5514,6 +5536,8 @@ } if (!error) { + if (inc_ivers) + inode_inc_iversion(inode); setattr_copy(mnt_userns, inode, attr); mark_inode_dirty(inode); } @@ -5717,9 +5741,6 @@ } ext4_fc_track_inode(handle, inode); - if (IS_I_VERSION(inode)) - inode_inc_iversion(inode); - /* the do_update_inode consumes one bh->b_count */ get_bh(iloc->bh); --- linux-5.19.0.orig/fs/ext4/ioctl.c +++ linux-5.19.0/fs/ext4/ioctl.c @@ -135,9 +135,8 @@ if (ext4_has_metadata_csum(sb) && es->s_checksum != ext4_superblock_csum(sb, es)) { ext4_msg(sb, KERN_ERR, "Invalid checksum for backup " - "superblock %llu\n", sb_block); + "superblock %llu", sb_block); unlock_buffer(bh); - err = -EFSBADCRC; goto out_bh; } func(es, arg); @@ -442,6 +441,7 @@ swap_inode_data(inode, inode_bl); inode->i_ctime = inode_bl->i_ctime = current_time(inode); + inode_inc_iversion(inode); inode->i_generation = prandom_u32(); inode_bl->i_generation = prandom_u32(); @@ -655,6 +655,7 @@ ext4_set_inode_flags(inode, false); inode->i_ctime = current_time(inode); + inode_inc_iversion(inode); err = ext4_mark_iloc_dirty(handle, inode, &iloc); flags_err: @@ -765,6 +766,7 @@ EXT4_I(inode)->i_projid = kprojid; inode->i_ctime = current_time(inode); + inode_inc_iversion(inode); out_dirty: rc = ext4_mark_iloc_dirty(handle, inode, &iloc); if (!err) @@ -1178,6 +1180,7 @@ err = ext4_reserve_inode_write(handle, inode, &iloc); if (err == 0) { inode->i_ctime = current_time(inode); + inode_inc_iversion(inode); inode->i_generation = generation; err = ext4_mark_iloc_dirty(handle, inode, &iloc); } --- linux-5.19.0.orig/fs/ext4/mballoc.c +++ linux-5.19.0/fs/ext4/mballoc.c @@ -140,13 +140,15 @@ * number of buddy bitmap orders possible) number of lists. Group-infos are * placed in appropriate lists. * - * 2) Average fragment size rb tree (sbi->s_mb_avg_fragment_size_root) + * 2) Average fragment size lists (sbi->s_mb_avg_fragment_size) * - * Locking: sbi->s_mb_rb_lock (rwlock) + * Locking: sbi->s_mb_avg_fragment_size_locks(array of rw locks) * - * This is a red black tree consisting of group infos and the tree is sorted - * by average fragment sizes (which is calculated as ext4_group_info->bb_free - * / ext4_group_info->bb_fragments). + * This is an array of lists where in the i-th list there are groups with + * average fragment size >= 2^i and < 2^(i+1). The average fragment size + * is computed as ext4_group_info->bb_free / ext4_group_info->bb_fragments. + * Note that we don't bother with a special list for completely empty groups + * so we only have MB_NUM_ORDERS(sb) lists. * * When "mb_optimize_scan" mount option is set, mballoc consults the above data * structures to decide the order in which groups are to be traversed for @@ -160,7 +162,8 @@ * * At CR = 1, we only consider groups where average fragment size > request * size. So, we lookup a group which has average fragment size just above or - * equal to request size using our rb tree (data structure 2) in O(log N) time. + * equal to request size using our average fragment size group lists (data + * structure 2) in O(1) time. * * If "mb_optimize_scan" mount option is not set, mballoc traverses groups in * linear order which requires O(N) search time for each CR 0 and CR 1 phase. @@ -802,65 +805,51 @@ } } -static void ext4_mb_rb_insert(struct rb_root *root, struct rb_node *new, - int (*cmp)(struct rb_node *, struct rb_node *)) +static int mb_avg_fragment_size_order(struct super_block *sb, ext4_grpblk_t len) { - struct rb_node **iter = &root->rb_node, *parent = NULL; + int order; - while (*iter) { - parent = *iter; - if (cmp(new, *iter) > 0) - iter = &((*iter)->rb_left); - else - iter = &((*iter)->rb_right); - } - - rb_link_node(new, parent, iter); - rb_insert_color(new, root); -} - -static int -ext4_mb_avg_fragment_size_cmp(struct rb_node *rb1, struct rb_node *rb2) -{ - struct ext4_group_info *grp1 = rb_entry(rb1, - struct ext4_group_info, - bb_avg_fragment_size_rb); - struct ext4_group_info *grp2 = rb_entry(rb2, - struct ext4_group_info, - bb_avg_fragment_size_rb); - int num_frags_1, num_frags_2; - - num_frags_1 = grp1->bb_fragments ? - grp1->bb_free / grp1->bb_fragments : 0; - num_frags_2 = grp2->bb_fragments ? - grp2->bb_free / grp2->bb_fragments : 0; - - return (num_frags_2 - num_frags_1); + /* + * We don't bother with a special lists groups with only 1 block free + * extents and for completely empty groups. + */ + order = fls(len) - 2; + if (order < 0) + return 0; + if (order == MB_NUM_ORDERS(sb)) + order--; + return order; } -/* - * Reinsert grpinfo into the avg_fragment_size tree with new average - * fragment size. - */ +/* Move group to appropriate avg_fragment_size list */ static void mb_update_avg_fragment_size(struct super_block *sb, struct ext4_group_info *grp) { struct ext4_sb_info *sbi = EXT4_SB(sb); + int new_order; if (!test_opt2(sb, MB_OPTIMIZE_SCAN) || grp->bb_free == 0) return; - write_lock(&sbi->s_mb_rb_lock); - if (!RB_EMPTY_NODE(&grp->bb_avg_fragment_size_rb)) { - rb_erase(&grp->bb_avg_fragment_size_rb, - &sbi->s_mb_avg_fragment_size_root); - RB_CLEAR_NODE(&grp->bb_avg_fragment_size_rb); - } - - ext4_mb_rb_insert(&sbi->s_mb_avg_fragment_size_root, - &grp->bb_avg_fragment_size_rb, - ext4_mb_avg_fragment_size_cmp); - write_unlock(&sbi->s_mb_rb_lock); + new_order = mb_avg_fragment_size_order(sb, + grp->bb_free / grp->bb_fragments); + if (new_order == grp->bb_avg_fragment_size_order) + return; + + if (grp->bb_avg_fragment_size_order != -1) { + write_lock(&sbi->s_mb_avg_fragment_size_locks[ + grp->bb_avg_fragment_size_order]); + list_del(&grp->bb_avg_fragment_size_node); + write_unlock(&sbi->s_mb_avg_fragment_size_locks[ + grp->bb_avg_fragment_size_order]); + } + grp->bb_avg_fragment_size_order = new_order; + write_lock(&sbi->s_mb_avg_fragment_size_locks[ + grp->bb_avg_fragment_size_order]); + list_add_tail(&grp->bb_avg_fragment_size_node, + &sbi->s_mb_avg_fragment_size[grp->bb_avg_fragment_size_order]); + write_unlock(&sbi->s_mb_avg_fragment_size_locks[ + grp->bb_avg_fragment_size_order]); } /* @@ -909,86 +898,55 @@ *new_cr = 1; } else { *group = grp->bb_group; - ac->ac_last_optimal_group = *group; ac->ac_flags |= EXT4_MB_CR0_OPTIMIZED; } } /* - * Choose next group by traversing average fragment size tree. Updates *new_cr - * if cr lvel needs an update. Sets EXT4_MB_SEARCH_NEXT_LINEAR to indicate that - * the linear search should continue for one iteration since there's lock - * contention on the rb tree lock. + * Choose next group by traversing average fragment size list of suitable + * order. Updates *new_cr if cr level needs an update. */ static void ext4_mb_choose_next_group_cr1(struct ext4_allocation_context *ac, int *new_cr, ext4_group_t *group, ext4_group_t ngroups) { struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb); - int avg_fragment_size, best_so_far; - struct rb_node *node, *found; - struct ext4_group_info *grp; - - /* - * If there is contention on the lock, instead of waiting for the lock - * to become available, just continue searching lineraly. We'll resume - * our rb tree search later starting at ac->ac_last_optimal_group. - */ - if (!read_trylock(&sbi->s_mb_rb_lock)) { - ac->ac_flags |= EXT4_MB_SEARCH_NEXT_LINEAR; - return; - } + struct ext4_group_info *grp = NULL, *iter; + int i; if (unlikely(ac->ac_flags & EXT4_MB_CR1_OPTIMIZED)) { if (sbi->s_mb_stats) atomic_inc(&sbi->s_bal_cr1_bad_suggestions); - /* We have found something at CR 1 in the past */ - grp = ext4_get_group_info(ac->ac_sb, ac->ac_last_optimal_group); - for (found = rb_next(&grp->bb_avg_fragment_size_rb); found != NULL; - found = rb_next(found)) { - grp = rb_entry(found, struct ext4_group_info, - bb_avg_fragment_size_rb); + } + + for (i = mb_avg_fragment_size_order(ac->ac_sb, ac->ac_g_ex.fe_len); + i < MB_NUM_ORDERS(ac->ac_sb); i++) { + if (list_empty(&sbi->s_mb_avg_fragment_size[i])) + continue; + read_lock(&sbi->s_mb_avg_fragment_size_locks[i]); + if (list_empty(&sbi->s_mb_avg_fragment_size[i])) { + read_unlock(&sbi->s_mb_avg_fragment_size_locks[i]); + continue; + } + list_for_each_entry(iter, &sbi->s_mb_avg_fragment_size[i], + bb_avg_fragment_size_node) { if (sbi->s_mb_stats) atomic64_inc(&sbi->s_bal_cX_groups_considered[1]); - if (likely(ext4_mb_good_group(ac, grp->bb_group, 1))) + if (likely(ext4_mb_good_group(ac, iter->bb_group, 1))) { + grp = iter; break; - } - goto done; - } - - node = sbi->s_mb_avg_fragment_size_root.rb_node; - best_so_far = 0; - found = NULL; - - while (node) { - grp = rb_entry(node, struct ext4_group_info, - bb_avg_fragment_size_rb); - avg_fragment_size = 0; - if (ext4_mb_good_group(ac, grp->bb_group, 1)) { - avg_fragment_size = grp->bb_fragments ? - grp->bb_free / grp->bb_fragments : 0; - if (!best_so_far || avg_fragment_size < best_so_far) { - best_so_far = avg_fragment_size; - found = node; } } - if (avg_fragment_size > ac->ac_g_ex.fe_len) - node = node->rb_right; - else - node = node->rb_left; + read_unlock(&sbi->s_mb_avg_fragment_size_locks[i]); + if (grp) + break; } -done: - if (found) { - grp = rb_entry(found, struct ext4_group_info, - bb_avg_fragment_size_rb); + if (grp) { *group = grp->bb_group; ac->ac_flags |= EXT4_MB_CR1_OPTIMIZED; } else { *new_cr = 2; } - - read_unlock(&sbi->s_mb_rb_lock); - ac->ac_last_optimal_group = *group; } static inline int should_optimize_scan(struct ext4_allocation_context *ac) @@ -1017,11 +975,6 @@ goto inc_and_return; } - if (ac->ac_flags & EXT4_MB_SEARCH_NEXT_LINEAR) { - ac->ac_flags &= ~EXT4_MB_SEARCH_NEXT_LINEAR; - goto inc_and_return; - } - return group; inc_and_return: /* @@ -1049,8 +1002,10 @@ { *new_cr = ac->ac_criteria; - if (!should_optimize_scan(ac) || ac->ac_groups_linear_remaining) + if (!should_optimize_scan(ac) || ac->ac_groups_linear_remaining) { + *group = next_linear_group(ac, *group, ngroups); return; + } if (*new_cr == 0) { ext4_mb_choose_next_group_cr0(ac, new_cr, group, ngroups); @@ -1075,23 +1030,25 @@ struct ext4_sb_info *sbi = EXT4_SB(sb); int i; - if (test_opt2(sb, MB_OPTIMIZE_SCAN) && grp->bb_largest_free_order >= 0) { + for (i = MB_NUM_ORDERS(sb) - 1; i >= 0; i--) + if (grp->bb_counters[i] > 0) + break; + /* No need to move between order lists? */ + if (!test_opt2(sb, MB_OPTIMIZE_SCAN) || + i == grp->bb_largest_free_order) { + grp->bb_largest_free_order = i; + return; + } + + if (grp->bb_largest_free_order >= 0) { write_lock(&sbi->s_mb_largest_free_orders_locks[ grp->bb_largest_free_order]); list_del_init(&grp->bb_largest_free_order_node); write_unlock(&sbi->s_mb_largest_free_orders_locks[ grp->bb_largest_free_order]); } - grp->bb_largest_free_order = -1; /* uninit */ - - for (i = MB_NUM_ORDERS(sb) - 1; i >= 0; i--) { - if (grp->bb_counters[i] > 0) { - grp->bb_largest_free_order = i; - break; - } - } - if (test_opt2(sb, MB_OPTIMIZE_SCAN) && - grp->bb_largest_free_order >= 0 && grp->bb_free) { + grp->bb_largest_free_order = i; + if (grp->bb_largest_free_order >= 0 && grp->bb_free) { write_lock(&sbi->s_mb_largest_free_orders_locks[ grp->bb_largest_free_order]); list_add_tail(&grp->bb_largest_free_order_node, @@ -1148,13 +1105,13 @@ EXT4_GROUP_INFO_BBITMAP_CORRUPT); } mb_set_largest_free_order(sb, grp); + mb_update_avg_fragment_size(sb, grp); clear_bit(EXT4_GROUP_INFO_NEED_INIT_BIT, &(grp->bb_state)); period = get_cycles() - period; atomic_inc(&sbi->s_mb_buddies_generated); atomic64_add(period, &sbi->s_mb_generation_time); - mb_update_avg_fragment_size(sb, grp); } /* The buddy information is attached the buddy cache inode @@ -2630,7 +2587,7 @@ ext4_mb_regular_allocator(struct ext4_allocation_context *ac) { ext4_group_t prefetch_grp = 0, ngroups, group, i; - int cr = -1; + int cr = -1, new_cr; int err = 0, first_err = 0; unsigned int nr = 0, prefetch_ios = 0; struct ext4_sb_info *sbi; @@ -2701,17 +2658,14 @@ * from the goal value specified */ group = ac->ac_g_ex.fe_group; - ac->ac_last_optimal_group = group; ac->ac_groups_linear_remaining = sbi->s_mb_max_linear_groups; prefetch_grp = group; - for (i = 0; i < ngroups; group = next_linear_group(ac, group, ngroups), - i++) { - int ret = 0, new_cr; + for (i = 0, new_cr = cr; i < ngroups; i++, + ext4_mb_choose_next_group(ac, &new_cr, &group, ngroups)) { + int ret = 0; cond_resched(); - - ext4_mb_choose_next_group(ac, &new_cr, &group, ngroups); if (new_cr != cr) { cr = new_cr; goto repeat; @@ -2985,9 +2939,7 @@ struct super_block *sb = pde_data(file_inode(seq->file)); unsigned long position; - read_lock(&EXT4_SB(sb)->s_mb_rb_lock); - - if (*pos < 0 || *pos >= MB_NUM_ORDERS(sb) + 1) + if (*pos < 0 || *pos >= 2*MB_NUM_ORDERS(sb)) return NULL; position = *pos + 1; return (void *) ((unsigned long) position); @@ -2999,7 +2951,7 @@ unsigned long position; ++*pos; - if (*pos < 0 || *pos >= MB_NUM_ORDERS(sb) + 1) + if (*pos < 0 || *pos >= 2*MB_NUM_ORDERS(sb)) return NULL; position = *pos + 1; return (void *) ((unsigned long) position); @@ -3011,29 +2963,22 @@ struct ext4_sb_info *sbi = EXT4_SB(sb); unsigned long position = ((unsigned long) v); struct ext4_group_info *grp; - struct rb_node *n; - unsigned int count, min, max; + unsigned int count; position--; if (position >= MB_NUM_ORDERS(sb)) { - seq_puts(seq, "fragment_size_tree:\n"); - n = rb_first(&sbi->s_mb_avg_fragment_size_root); - if (!n) { - seq_puts(seq, "\ttree_min: 0\n\ttree_max: 0\n\ttree_nodes: 0\n"); - return 0; - } - grp = rb_entry(n, struct ext4_group_info, bb_avg_fragment_size_rb); - min = grp->bb_fragments ? grp->bb_free / grp->bb_fragments : 0; - count = 1; - while (rb_next(n)) { - count++; - n = rb_next(n); - } - grp = rb_entry(n, struct ext4_group_info, bb_avg_fragment_size_rb); - max = grp->bb_fragments ? grp->bb_free / grp->bb_fragments : 0; + position -= MB_NUM_ORDERS(sb); + if (position == 0) + seq_puts(seq, "avg_fragment_size_lists:\n"); - seq_printf(seq, "\ttree_min: %u\n\ttree_max: %u\n\ttree_nodes: %u\n", - min, max, count); + count = 0; + read_lock(&sbi->s_mb_avg_fragment_size_locks[position]); + list_for_each_entry(grp, &sbi->s_mb_avg_fragment_size[position], + bb_avg_fragment_size_node) + count++; + read_unlock(&sbi->s_mb_avg_fragment_size_locks[position]); + seq_printf(seq, "\tlist_order_%u_groups: %u\n", + (unsigned int)position, count); return 0; } @@ -3043,9 +2988,11 @@ seq_puts(seq, "max_free_order_lists:\n"); } count = 0; + read_lock(&sbi->s_mb_largest_free_orders_locks[position]); list_for_each_entry(grp, &sbi->s_mb_largest_free_orders[position], bb_largest_free_order_node) count++; + read_unlock(&sbi->s_mb_largest_free_orders_locks[position]); seq_printf(seq, "\tlist_order_%u_groups: %u\n", (unsigned int)position, count); @@ -3053,11 +3000,7 @@ } static void ext4_mb_seq_structs_summary_stop(struct seq_file *seq, void *v) -__releases(&EXT4_SB(sb)->s_mb_rb_lock) { - struct super_block *sb = pde_data(file_inode(seq->file)); - - read_unlock(&EXT4_SB(sb)->s_mb_rb_lock); } const struct seq_operations ext4_mb_seq_structs_summary_ops = { @@ -3170,8 +3113,9 @@ init_rwsem(&meta_group_info[i]->alloc_sem); meta_group_info[i]->bb_free_root = RB_ROOT; INIT_LIST_HEAD(&meta_group_info[i]->bb_largest_free_order_node); - RB_CLEAR_NODE(&meta_group_info[i]->bb_avg_fragment_size_rb); + INIT_LIST_HEAD(&meta_group_info[i]->bb_avg_fragment_size_node); meta_group_info[i]->bb_largest_free_order = -1; /* uninit */ + meta_group_info[i]->bb_avg_fragment_size_order = -1; /* uninit */ meta_group_info[i]->bb_group = group; mb_group_bb_bitmap_alloc(sb, meta_group_info[i], group); @@ -3420,7 +3364,24 @@ i++; } while (i < MB_NUM_ORDERS(sb)); - sbi->s_mb_avg_fragment_size_root = RB_ROOT; + sbi->s_mb_avg_fragment_size = + kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct list_head), + GFP_KERNEL); + if (!sbi->s_mb_avg_fragment_size) { + ret = -ENOMEM; + goto out; + } + sbi->s_mb_avg_fragment_size_locks = + kmalloc_array(MB_NUM_ORDERS(sb), sizeof(rwlock_t), + GFP_KERNEL); + if (!sbi->s_mb_avg_fragment_size_locks) { + ret = -ENOMEM; + goto out; + } + for (i = 0; i < MB_NUM_ORDERS(sb); i++) { + INIT_LIST_HEAD(&sbi->s_mb_avg_fragment_size[i]); + rwlock_init(&sbi->s_mb_avg_fragment_size_locks[i]); + } sbi->s_mb_largest_free_orders = kmalloc_array(MB_NUM_ORDERS(sb), sizeof(struct list_head), GFP_KERNEL); @@ -3439,7 +3400,6 @@ INIT_LIST_HEAD(&sbi->s_mb_largest_free_orders[i]); rwlock_init(&sbi->s_mb_largest_free_orders_locks[i]); } - rwlock_init(&sbi->s_mb_rb_lock); spin_lock_init(&sbi->s_md_lock); sbi->s_mb_free_pending = 0; @@ -3510,6 +3470,8 @@ free_percpu(sbi->s_locality_groups); sbi->s_locality_groups = NULL; out: + kfree(sbi->s_mb_avg_fragment_size); + kfree(sbi->s_mb_avg_fragment_size_locks); kfree(sbi->s_mb_largest_free_orders); kfree(sbi->s_mb_largest_free_orders_locks); kfree(sbi->s_mb_offsets); @@ -3576,6 +3538,8 @@ kvfree(group_info); rcu_read_unlock(); } + kfree(sbi->s_mb_avg_fragment_size); + kfree(sbi->s_mb_avg_fragment_size_locks); kfree(sbi->s_mb_largest_free_orders); kfree(sbi->s_mb_largest_free_orders_locks); kfree(sbi->s_mb_offsets); @@ -5187,6 +5151,7 @@ struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb); int bsbits = ac->ac_sb->s_blocksize_bits; loff_t size, isize; + bool inode_pa_eligible, group_pa_eligible; if (!(ac->ac_flags & EXT4_MB_HINT_DATA)) return; @@ -5194,25 +5159,27 @@ if (unlikely(ac->ac_flags & EXT4_MB_HINT_GOAL_ONLY)) return; + group_pa_eligible = sbi->s_mb_group_prealloc > 0; + inode_pa_eligible = true; size = ac->ac_o_ex.fe_logical + EXT4_C2B(sbi, ac->ac_o_ex.fe_len); isize = (i_size_read(ac->ac_inode) + ac->ac_sb->s_blocksize - 1) >> bsbits; + /* No point in using inode preallocation for closed files */ if ((size == isize) && !ext4_fs_is_busy(sbi) && - !inode_is_open_for_write(ac->ac_inode)) { - ac->ac_flags |= EXT4_MB_HINT_NOPREALLOC; - return; - } - - if (sbi->s_mb_group_prealloc <= 0) { - ac->ac_flags |= EXT4_MB_STREAM_ALLOC; - return; - } + !inode_is_open_for_write(ac->ac_inode)) + inode_pa_eligible = false; - /* don't use group allocation for large files */ size = max(size, isize); - if (size > sbi->s_mb_stream_request) { - ac->ac_flags |= EXT4_MB_STREAM_ALLOC; + /* Don't use group allocation for large files */ + if (size > sbi->s_mb_stream_request) + group_pa_eligible = false; + + if (!group_pa_eligible) { + if (inode_pa_eligible) + ac->ac_flags |= EXT4_MB_STREAM_ALLOC; + else + ac->ac_flags |= EXT4_MB_HINT_NOPREALLOC; return; } @@ -5559,6 +5526,7 @@ ext4_fsblk_t block = 0; unsigned int inquota = 0; unsigned int reserv_clstrs = 0; + int retries = 0; u64 seq; might_sleep(); @@ -5661,7 +5629,8 @@ ar->len = ac->ac_b_ex.fe_len; } } else { - if (ext4_mb_discard_preallocations_should_retry(sb, ac, &seq)) + if (++retries < 3 && + ext4_mb_discard_preallocations_should_retry(sb, ac, &seq)) goto repeat; /* * If block allocation fails then the pa allocated above @@ -5928,6 +5897,15 @@ sbi = EXT4_SB(sb); + if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) && + !ext4_inode_block_valid(inode, block, count)) { + ext4_error(sb, "Freeing blocks in system zone - " + "Block = %llu, count = %lu", block, count); + /* err = 0. ext4_std_error should be a no op */ + goto error_return; + } + flags |= EXT4_FREE_BLOCKS_VALIDATED; + do_more: overflow = 0; ext4_get_group_no_and_offset(sb, block, &block_group, &bit); @@ -5944,6 +5922,8 @@ overflow = EXT4_C2B(sbi, bit) + count - EXT4_BLOCKS_PER_GROUP(sb); count -= overflow; + /* The range changed so it's no longer validated */ + flags &= ~EXT4_FREE_BLOCKS_VALIDATED; } count_clusters = EXT4_NUM_B2C(sbi, count); bitmap_bh = ext4_read_block_bitmap(sb, block_group); @@ -5958,7 +5938,8 @@ goto error_return; } - if (!ext4_inode_block_valid(inode, block, count)) { + if (!(flags & EXT4_FREE_BLOCKS_VALIDATED) && + !ext4_inode_block_valid(inode, block, count)) { ext4_error(sb, "Freeing blocks in system zone - " "Block = %llu, count = %lu", block, count); /* err = 0. ext4_std_error should be a no op */ @@ -6081,6 +6062,8 @@ block += count; count = overflow; put_bh(bitmap_bh); + /* The range changed so it's no longer validated */ + flags &= ~EXT4_FREE_BLOCKS_VALIDATED; goto do_more; } error_return: @@ -6127,6 +6110,7 @@ "block = %llu, count = %lu", block, count); return; } + flags |= EXT4_FREE_BLOCKS_VALIDATED; ext4_debug("freeing block %llu\n", block); trace_ext4_free_blocks(inode, block, count, flags); @@ -6158,6 +6142,8 @@ block -= overflow; count += overflow; } + /* The range changed so it's no longer validated */ + flags &= ~EXT4_FREE_BLOCKS_VALIDATED; } overflow = EXT4_LBLK_COFF(sbi, count); if (overflow) { @@ -6168,6 +6154,8 @@ return; } else count += sbi->s_cluster_ratio - overflow; + /* The range changed so it's no longer validated */ + flags &= ~EXT4_FREE_BLOCKS_VALIDATED; } if (!bh && (flags & EXT4_FREE_BLOCKS_FORGET)) { --- linux-5.19.0.orig/fs/ext4/mballoc.h +++ linux-5.19.0/fs/ext4/mballoc.h @@ -178,7 +178,6 @@ /* copy of the best found extent taken before preallocation efforts */ struct ext4_free_extent ac_f_ex; - ext4_group_t ac_last_optimal_group; __u32 ac_groups_considered; __u32 ac_flags; /* allocation hints */ __u16 ac_groups_scanned; --- linux-5.19.0.orig/fs/ext4/migrate.c +++ linux-5.19.0/fs/ext4/migrate.c @@ -417,7 +417,7 @@ struct inode *tmp_inode = NULL; struct migrate_struct lb; unsigned long max_entries; - __u32 goal; + __u32 goal, tmp_csum_seed; uid_t owner[2]; /* @@ -425,7 +425,8 @@ * already is extent-based, error out. */ if (!ext4_has_feature_extents(inode->i_sb) || - (ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) + ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS) || + ext4_has_inline_data(inode)) return -EINVAL; if (S_ISLNK(inode->i_mode) && inode->i_blocks == 0) @@ -465,6 +466,7 @@ * the migration. */ ei = EXT4_I(inode); + tmp_csum_seed = EXT4_I(tmp_inode)->i_csum_seed; EXT4_I(tmp_inode)->i_csum_seed = ei->i_csum_seed; i_size_write(tmp_inode, i_size_read(inode)); /* @@ -575,6 +577,7 @@ * the inode is not visible to user space. */ tmp_inode->i_blocks = 0; + EXT4_I(tmp_inode)->i_csum_seed = tmp_csum_seed; /* Reset the extent details */ ext4_ext_tree_init(handle, tmp_inode); --- linux-5.19.0.orig/fs/ext4/namei.c +++ linux-5.19.0/fs/ext4/namei.c @@ -54,6 +54,7 @@ struct inode *inode, ext4_lblk_t *block) { + struct ext4_map_blocks map; struct buffer_head *bh; int err; @@ -63,21 +64,41 @@ return ERR_PTR(-ENOSPC); *block = inode->i_size >> inode->i_sb->s_blocksize_bits; + map.m_lblk = *block; + map.m_len = 1; + + /* + * We're appending new directory block. Make sure the block is not + * allocated yet, otherwise we will end up corrupting the + * directory. + */ + err = ext4_map_blocks(NULL, inode, &map, 0); + if (err < 0) + return ERR_PTR(err); + if (err) { + EXT4_ERROR_INODE(inode, "Logical block already allocated"); + return ERR_PTR(-EFSCORRUPTED); + } bh = ext4_bread(handle, inode, *block, EXT4_GET_BLOCKS_CREATE); if (IS_ERR(bh)) return bh; inode->i_size += inode->i_sb->s_blocksize; EXT4_I(inode)->i_disksize = inode->i_size; + err = ext4_mark_inode_dirty(handle, inode); + if (err) + goto out; BUFFER_TRACE(bh, "get_write_access"); err = ext4_journal_get_write_access(handle, inode->i_sb, bh, EXT4_JTR_NONE); - if (err) { - brelse(bh); - ext4_std_error(inode->i_sb, err); - return ERR_PTR(err); - } + if (err) + goto out; return bh; + +out: + brelse(bh); + ext4_std_error(inode->i_sb, err); + return ERR_PTR(err); } static int ext4_dx_csum_verify(struct inode *inode, @@ -110,6 +131,13 @@ struct ext4_dir_entry *dirent; int is_dx_block = 0; + if (block >= inode->i_size >> inode->i_blkbits) { + ext4_error_inode(inode, func, line, block, + "Attempting to read directory block (%u) that is past i_size (%llu)", + block, inode->i_size); + return ERR_PTR(-EFSCORRUPTED); + } + if (ext4_simulate_fail(inode->i_sb, EXT4_SIM_DIRBLOCK_EIO)) bh = ERR_PTR(-EIO); else @@ -2231,8 +2259,16 @@ memset(de, 0, len); /* wipe old data */ de = (struct ext4_dir_entry_2 *) data2; top = data2 + len; - while ((char *)(de2 = ext4_next_entry(de, blocksize)) < top) + while ((char *)(de2 = ext4_next_entry(de, blocksize)) < top) { + if (ext4_check_dir_entry(dir, NULL, de, bh2, data2, len, + (data2 + (blocksize - csum_size) - + (char *) de))) { + brelse(bh2); + brelse(bh); + return -EFSCORRUPTED; + } de = de2; + } de->rec_len = ext4_rec_len_to_disk(data2 + (blocksize - csum_size) - (char *) de, blocksize); @@ -3067,11 +3103,8 @@ de = (struct ext4_dir_entry_2 *) (bh->b_data + (offset & (sb->s_blocksize - 1))); if (ext4_check_dir_entry(inode, NULL, de, bh, - bh->b_data, bh->b_size, offset)) { - offset = (offset | (sb->s_blocksize - 1)) + 1; - continue; - } - if (le32_to_cpu(de->inode)) { + bh->b_data, bh->b_size, offset) || + le32_to_cpu(de->inode)) { brelse(bh); return false; } --- linux-5.19.0.orig/fs/ext4/resize.c +++ linux-5.19.0/fs/ext4/resize.c @@ -1107,6 +1107,16 @@ return err; } +static inline void ext4_set_block_group_nr(struct super_block *sb, char *data, + ext4_group_t group) +{ + struct ext4_super_block *es = (struct ext4_super_block *) data; + + es->s_block_group_nr = cpu_to_le16(group); + if (ext4_has_metadata_csum(sb)) + es->s_checksum = ext4_superblock_csum(sb, es); +} + /* * Update the backup copies of the ext4 metadata. These don't need to be part * of the main resize transaction, because e2fsck will re-write them if there @@ -1155,6 +1165,8 @@ while (group < sbi->s_groups_count) { struct buffer_head *bh; ext4_fsblk_t backup_block; + int has_super = ext4_bg_has_super(sb, group); + ext4_fsblk_t first_block = ext4_group_first_block_no(sb, group); /* Out of journal space, and can't get more - abort - so sad */ err = ext4_resize_ensure_credits_batch(handle, 1); @@ -1164,8 +1176,7 @@ if (meta_bg == 0) backup_block = ((ext4_fsblk_t)group) * bpg + blk_off; else - backup_block = (ext4_group_first_block_no(sb, group) + - ext4_bg_has_super(sb, group)); + backup_block = first_block + has_super; bh = sb_getblk(sb, backup_block); if (unlikely(!bh)) { @@ -1183,6 +1194,8 @@ memcpy(bh->b_data, data, size); if (rest) memset(bh->b_data + size, 0, rest); + if (has_super && (backup_block == first_block)) + ext4_set_block_group_nr(sb, bh->b_data, group); set_buffer_uptodate(bh); unlock_buffer(bh); err = ext4_handle_dirty_metadata(handle, NULL, bh); @@ -1457,8 +1470,6 @@ * active. */ ext4_r_blocks_count_set(es, ext4_r_blocks_count(es) + reserved_blocks); - ext4_superblock_csum_set(sb); - unlock_buffer(sbi->s_sbh); /* Update the free space counts */ percpu_counter_add(&sbi->s_freeclusters_counter, @@ -1484,7 +1495,10 @@ * Update the fs overhead information */ ext4_calculate_overhead(sb); + es->s_overhead_clusters = cpu_to_le32(sbi->s_overhead); + ext4_superblock_csum_set(sb); + unlock_buffer(sbi->s_sbh); if (test_opt(sb, DEBUG)) printk(KERN_DEBUG "EXT4-fs: added group %u:" "%llu blocks(%llu free %llu reserved)\n", flex_gd->count, @@ -1568,8 +1582,8 @@ int meta_bg = ext4_has_feature_meta_bg(sb); sector_t old_gdb = 0; - update_backups(sb, sbi->s_sbh->b_blocknr, (char *)es, - sizeof(struct ext4_super_block), 0); + update_backups(sb, ext4_group_first_block_no(sb, 0), + (char *)es, sizeof(struct ext4_super_block), 0); for (; gdb_num <= gdb_num_end; gdb_num++) { struct buffer_head *gdb_bh; @@ -1780,7 +1794,7 @@ if (test_opt(sb, DEBUG)) printk(KERN_DEBUG "EXT4-fs: extended group to %llu " "blocks\n", ext4_blocks_count(es)); - update_backups(sb, EXT4_SB(sb)->s_sbh->b_blocknr, + update_backups(sb, ext4_group_first_block_no(sb, 0), (char *)es, sizeof(struct ext4_super_block), 0); } return err; @@ -1988,6 +2002,16 @@ } brelse(bh); + /* + * For bigalloc, trim the requested size to the nearest cluster + * boundary to avoid creating an unusable filesystem. We do this + * silently, instead of returning an error, to avoid breaking + * callers that blindly resize the filesystem to the full size of + * the underlying block device. + */ + if (ext4_has_feature_bigalloc(sb)) + n_blocks_count &= ~((1 << EXT4_CLUSTER_BITS(sb)) - 1); + retry: o_blocks_count = ext4_blocks_count(es); @@ -2089,7 +2113,7 @@ goto out; } - if (ext4_blocks_count(es) == n_blocks_count) + if (ext4_blocks_count(es) == n_blocks_count && n_blocks_count_retry == 0) goto out; err = ext4_alloc_flex_bg_array(sb, n_group + 1); --- linux-5.19.0.orig/fs/ext4/super.c +++ linux-5.19.0/fs/ext4/super.c @@ -205,19 +205,12 @@ int ext4_read_bh_lock(struct buffer_head *bh, int op_flags, bool wait) { - if (trylock_buffer(bh)) { - if (wait) - return ext4_read_bh(bh, op_flags, NULL); + lock_buffer(bh); + if (!wait) { ext4_read_bh_nowait(bh, op_flags, NULL); return 0; } - if (wait) { - wait_on_buffer(bh); - if (buffer_uptodate(bh)) - return 0; - return -EIO; - } - return 0; + return ext4_read_bh(bh, op_flags, NULL); } /* @@ -264,7 +257,8 @@ struct buffer_head *bh = sb_getblk_gfp(sb, block, 0); if (likely(bh)) { - ext4_read_bh_lock(bh, REQ_RAHEAD, false); + if (trylock_buffer(bh)) + ext4_read_bh_nowait(bh, REQ_RAHEAD, NULL); brelse(bh); } } @@ -1585,7 +1579,7 @@ Opt_inlinecrypt, Opt_usrjquota, Opt_grpjquota, Opt_quota, Opt_noquota, Opt_barrier, Opt_nobarrier, Opt_err, - Opt_usrquota, Opt_grpquota, Opt_prjquota, Opt_i_version, + Opt_usrquota, Opt_grpquota, Opt_prjquota, Opt_dax, Opt_dax_always, Opt_dax_inode, Opt_dax_never, Opt_stripe, Opt_delalloc, Opt_nodelalloc, Opt_warn_on_error, Opt_nowarn_on_error, Opt_mblk_io_submit, Opt_debug_want_extra_isize, @@ -1694,7 +1688,7 @@ fsparam_flag ("barrier", Opt_barrier), fsparam_u32 ("barrier", Opt_barrier), fsparam_flag ("nobarrier", Opt_nobarrier), - fsparam_flag ("i_version", Opt_i_version), + fsparam_flag ("i_version", Opt_removed), fsparam_flag ("dax", Opt_dax), fsparam_enum ("dax", Opt_dax_type, ext4_param_dax), fsparam_u32 ("stripe", Opt_stripe), @@ -2140,11 +2134,6 @@ case Opt_abort: ctx_set_mount_flag(ctx, EXT4_MF_FS_ABORTED); return 0; - case Opt_i_version: - ext4_msg(NULL, KERN_WARNING, deprecated_msg, param->key, "5.20"); - ext4_msg(NULL, KERN_WARNING, "Use iversion instead\n"); - ctx_set_flags(ctx, SB_I_VERSION); - return 0; case Opt_inlinecrypt: #ifdef CONFIG_FS_ENCRYPTION_INLINE_CRYPT ctx_set_flags(ctx, SB_INLINECRYPT); @@ -2814,14 +2803,6 @@ sb->s_flags &= ~ctx->mask_s_flags; sb->s_flags |= ctx->vals_s_flags; - /* - * i_version differs from common mount option iversion so we have - * to let vfs know that it was set, otherwise it would get cleared - * on remount - */ - if (ctx->mask_s_flags & SB_I_VERSION) - fc->sb_flags |= SB_I_VERSION; - #define APPLY(X) ({ if (ctx->spec & EXT4_SPEC_##X) sbi->X = ctx->X; }) APPLY(s_commit_interval); APPLY(s_stripe); @@ -2970,8 +2951,6 @@ SEQ_OPTS_PRINT("min_batch_time=%u", sbi->s_min_batch_time); if (nodefs || sbi->s_max_batch_time != EXT4_DEF_MAX_BATCH_TIME) SEQ_OPTS_PRINT("max_batch_time=%u", sbi->s_max_batch_time); - if (sb->s_flags & SB_I_VERSION) - SEQ_OPTS_PUTS("i_version"); if (nodefs || sbi->s_stripe) SEQ_OPTS_PRINT("stripe=%lu", sbi->s_stripe); if (nodefs || EXT4_MOUNT_DATA_FLAGS & @@ -3758,6 +3737,7 @@ unsigned long next_wakeup, cur; BUG_ON(NULL == eli); + set_freezable(); cont_thread: while (true) { @@ -3973,9 +3953,9 @@ goto out; } - if (test_opt(sb, NO_PREFETCH_BLOCK_BITMAPS) && - (first_not_zeroed == ngroups || sb_rdonly(sb) || - !test_opt(sb, INIT_INODE_TABLE))) + if (sb_rdonly(sb) || + (test_opt(sb, NO_PREFETCH_BLOCK_BITMAPS) && + (first_not_zeroed == ngroups || !test_opt(sb, INIT_INODE_TABLE)))) goto out; elr = ext4_li_request_new(sb, first_not_zeroed); @@ -4630,6 +4610,9 @@ sb->s_flags = (sb->s_flags & ~SB_POSIXACL) | (test_opt(sb, POSIX_ACL) ? SB_POSIXACL : 0); + /* i_version is always enabled now */ + sb->s_flags |= SB_I_VERSION; + if (le32_to_cpu(es->s_rev_level) == EXT4_GOOD_OLD_REV && (ext4_has_compat_features(sb) || ext4_has_ro_compat_features(sb) || @@ -6643,7 +6626,7 @@ handle_t *handle; /* Data block + inode block */ - handle = ext4_journal_start(d_inode(sb->s_root), EXT4_HT_QUOTA, 2); + handle = ext4_journal_start_sb(sb, EXT4_HT_QUOTA, 2); if (IS_ERR(handle)) return PTR_ERR(handle); ret = dquot_commit_info(sb, type); --- linux-5.19.0.orig/fs/ext4/symlink.c +++ linux-5.19.0/fs/ext4/symlink.c @@ -74,6 +74,21 @@ struct delayed_call *callback) { struct buffer_head *bh; + char *inline_link; + + /* + * Create a new inlined symlink is not supported, just provide a + * method to read the leftovers. + */ + if (ext4_has_inline_data(inode)) { + if (!dentry) + return ERR_PTR(-ECHILD); + + inline_link = ext4_read_inline_link(inode); + if (!IS_ERR(inline_link)) + set_delayed_call(callback, kfree_link, inline_link); + return inline_link; + } if (!dentry) { bh = ext4_getblk(NULL, inode, 0, EXT4_GET_BLOCKS_CACHED_NOWAIT); --- linux-5.19.0.orig/fs/ext4/verity.c +++ linux-5.19.0/fs/ext4/verity.c @@ -365,13 +365,14 @@ pgoff_t index, unsigned long num_ra_pages) { - DEFINE_READAHEAD(ractl, NULL, NULL, inode->i_mapping, index); struct page *page; index += ext4_verity_metadata_pos(inode) >> PAGE_SHIFT; page = find_get_page_flags(inode->i_mapping, index, FGP_ACCESSED); if (!page || !PageUptodate(page)) { + DEFINE_READAHEAD(ractl, NULL, NULL, inode->i_mapping, index); + if (page) put_page(page); else if (num_ra_pages > 1) --- linux-5.19.0.orig/fs/ext4/xattr.c +++ linux-5.19.0/fs/ext4/xattr.c @@ -436,6 +436,21 @@ return err; } +/* Remove entry from mbcache when EA inode is getting evicted */ +void ext4_evict_ea_inode(struct inode *inode) +{ + struct mb_cache_entry *oe; + + if (!EA_INODE_CACHE(inode)) + return; + /* Wait for entry to get unused so that we can remove it */ + while ((oe = mb_cache_entry_delete_or_get(EA_INODE_CACHE(inode), + ext4_xattr_inode_get_hash(inode), inode->i_ino))) { + mb_cache_entry_wait_unused(oe); + mb_cache_entry_put(EA_INODE_CACHE(inode), oe); + } +} + static int ext4_xattr_inode_verify_hashes(struct inode *ea_inode, struct ext4_xattr_entry *entry, void *buffer, @@ -976,10 +991,8 @@ static int ext4_xattr_inode_update_ref(handle_t *handle, struct inode *ea_inode, int ref_change) { - struct mb_cache *ea_inode_cache = EA_INODE_CACHE(ea_inode); struct ext4_iloc iloc; s64 ref_count; - u32 hash; int ret; inode_lock(ea_inode); @@ -1002,14 +1015,6 @@ set_nlink(ea_inode, 1); ext4_orphan_del(handle, ea_inode); - - if (ea_inode_cache) { - hash = ext4_xattr_inode_get_hash(ea_inode); - mb_cache_entry_create(ea_inode_cache, - GFP_NOFS, hash, - ea_inode->i_ino, - true /* reusable */); - } } } else { WARN_ONCE(ref_count < 0, "EA inode %lu ref_count=%lld", @@ -1022,12 +1027,6 @@ clear_nlink(ea_inode); ext4_orphan_add(handle, ea_inode); - - if (ea_inode_cache) { - hash = ext4_xattr_inode_get_hash(ea_inode); - mb_cache_entry_delete(ea_inode_cache, hash, - ea_inode->i_ino); - } } } @@ -1237,6 +1236,7 @@ if (error) goto out; +retry_ref: lock_buffer(bh); hash = le32_to_cpu(BHDR(bh)->h_hash); ref = le32_to_cpu(BHDR(bh)->h_refcount); @@ -1246,9 +1246,18 @@ * This must happen under buffer lock for * ext4_xattr_block_set() to reliably detect freed block */ - if (ea_block_cache) - mb_cache_entry_delete(ea_block_cache, hash, - bh->b_blocknr); + if (ea_block_cache) { + struct mb_cache_entry *oe; + + oe = mb_cache_entry_delete_or_get(ea_block_cache, hash, + bh->b_blocknr); + if (oe) { + unlock_buffer(bh); + mb_cache_entry_wait_unused(oe); + mb_cache_entry_put(ea_block_cache, oe); + goto retry_ref; + } + } get_bh(bh); unlock_buffer(bh); @@ -1858,6 +1867,8 @@ #define header(x) ((struct ext4_xattr_header *)(x)) if (s->base) { + int offset = (char *)s->here - bs->bh->b_data; + BUFFER_TRACE(bs->bh, "get_write_access"); error = ext4_journal_get_write_access(handle, sb, bs->bh, EXT4_JTR_NONE); @@ -1873,9 +1884,20 @@ * ext4_xattr_block_set() to reliably detect modified * block */ - if (ea_block_cache) - mb_cache_entry_delete(ea_block_cache, hash, - bs->bh->b_blocknr); + if (ea_block_cache) { + struct mb_cache_entry *oe; + + oe = mb_cache_entry_delete_or_get(ea_block_cache, + hash, bs->bh->b_blocknr); + if (oe) { + /* + * Xattr block is getting reused. Leave + * it alone. + */ + mb_cache_entry_put(ea_block_cache, oe); + goto clone_block; + } + } ea_bdebug(bs->bh, "modifying in-place"); error = ext4_xattr_set_entry(i, s, handle, inode, true /* is_block */); @@ -1890,49 +1912,47 @@ if (error) goto cleanup; goto inserted; - } else { - int offset = (char *)s->here - bs->bh->b_data; + } +clone_block: + unlock_buffer(bs->bh); + ea_bdebug(bs->bh, "cloning"); + s->base = kmemdup(BHDR(bs->bh), bs->bh->b_size, GFP_NOFS); + error = -ENOMEM; + if (s->base == NULL) + goto cleanup; + s->first = ENTRY(header(s->base)+1); + header(s->base)->h_refcount = cpu_to_le32(1); + s->here = ENTRY(s->base + offset); + s->end = s->base + bs->bh->b_size; - unlock_buffer(bs->bh); - ea_bdebug(bs->bh, "cloning"); - s->base = kmemdup(BHDR(bs->bh), bs->bh->b_size, GFP_NOFS); - error = -ENOMEM; - if (s->base == NULL) + /* + * If existing entry points to an xattr inode, we need + * to prevent ext4_xattr_set_entry() from decrementing + * ref count on it because the reference belongs to the + * original block. In this case, make the entry look + * like it has an empty value. + */ + if (!s->not_found && s->here->e_value_inum) { + ea_ino = le32_to_cpu(s->here->e_value_inum); + error = ext4_xattr_inode_iget(inode, ea_ino, + le32_to_cpu(s->here->e_hash), + &tmp_inode); + if (error) goto cleanup; - s->first = ENTRY(header(s->base)+1); - header(s->base)->h_refcount = cpu_to_le32(1); - s->here = ENTRY(s->base + offset); - s->end = s->base + bs->bh->b_size; - - /* - * If existing entry points to an xattr inode, we need - * to prevent ext4_xattr_set_entry() from decrementing - * ref count on it because the reference belongs to the - * original block. In this case, make the entry look - * like it has an empty value. - */ - if (!s->not_found && s->here->e_value_inum) { - ea_ino = le32_to_cpu(s->here->e_value_inum); - error = ext4_xattr_inode_iget(inode, ea_ino, - le32_to_cpu(s->here->e_hash), - &tmp_inode); - if (error) - goto cleanup; - - if (!ext4_test_inode_state(tmp_inode, - EXT4_STATE_LUSTRE_EA_INODE)) { - /* - * Defer quota free call for previous - * inode until success is guaranteed. - */ - old_ea_inode_quota = le32_to_cpu( - s->here->e_value_size); - } - iput(tmp_inode); - s->here->e_value_inum = 0; - s->here->e_value_size = 0; + if (!ext4_test_inode_state(tmp_inode, + EXT4_STATE_LUSTRE_EA_INODE)) { + /* + * Defer quota free call for previous + * inode until success is guaranteed. + */ + old_ea_inode_quota = le32_to_cpu( + s->here->e_value_size); } + iput(tmp_inode); + + s->here->e_value_inum = 0; + s->here->e_value_size = 0; } } else { /* Allocate a buffer where we construct the new block. */ @@ -1999,18 +2019,13 @@ lock_buffer(new_bh); /* * We have to be careful about races with - * freeing, rehashing or adding references to - * xattr block. Once we hold buffer lock xattr - * block's state is stable so we can check - * whether the block got freed / rehashed or - * not. Since we unhash mbcache entry under - * buffer lock when freeing / rehashing xattr - * block, checking whether entry is still - * hashed is reliable. Same rules hold for - * e_reusable handling. + * adding references to xattr block. Once we + * hold buffer lock xattr block's state is + * stable so we can check the additional + * reference fits. */ - if (hlist_bl_unhashed(&ce->e_hash_list) || - !ce->e_reusable) { + ref = le32_to_cpu(BHDR(new_bh)->h_refcount) + 1; + if (ref > EXT4_XATTR_REFCOUNT_MAX) { /* * Undo everything and check mbcache * again. @@ -2025,9 +2040,8 @@ new_bh = NULL; goto inserted; } - ref = le32_to_cpu(BHDR(new_bh)->h_refcount) + 1; BHDR(new_bh)->h_refcount = cpu_to_le32(ref); - if (ref >= EXT4_XATTR_REFCOUNT_MAX) + if (ref == EXT4_XATTR_REFCOUNT_MAX) ce->e_reusable = 0; ea_bdebug(new_bh, "reusing; refcount now=%d", ref); @@ -2175,8 +2189,9 @@ struct ext4_inode *raw_inode; int error; - if (EXT4_I(inode)->i_extra_isize == 0) + if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) return 0; + raw_inode = ext4_raw_inode(&is->iloc); header = IHDR(inode, raw_inode); is->s.base = is->s.first = IFIRST(header); @@ -2204,8 +2219,9 @@ struct ext4_xattr_search *s = &is->s; int error; - if (EXT4_I(inode)->i_extra_isize == 0) + if (!EXT4_INODE_HAS_XATTR_SPACE(inode)) return -ENOSPC; + error = ext4_xattr_set_entry(i, s, handle, inode, false /* is_block */); if (error) return error; @@ -2396,6 +2412,7 @@ if (!error) { ext4_xattr_update_super_block(handle, inode->i_sb); inode->i_ctime = current_time(inode); + inode_inc_iversion(inode); if (!value) no_expand = 0; error = ext4_mark_iloc_dirty(handle, inode, &is.iloc); --- linux-5.19.0.orig/fs/ext4/xattr.h +++ linux-5.19.0/fs/ext4/xattr.h @@ -95,6 +95,19 @@ #define EXT4_ZERO_XATTR_VALUE ((void *)-1) +/* + * If we want to add an xattr to the inode, we should make sure that + * i_extra_isize is not 0 and that the inode size is not less than + * EXT4_GOOD_OLD_INODE_SIZE + extra_isize + pad. + * EXT4_GOOD_OLD_INODE_SIZE extra_isize header entry pad data + * |--------------------------|------------|------|---------|---|-------| + */ +#define EXT4_INODE_HAS_XATTR_SPACE(inode) \ + ((EXT4_I(inode)->i_extra_isize != 0) && \ + (EXT4_GOOD_OLD_INODE_SIZE + EXT4_I(inode)->i_extra_isize + \ + sizeof(struct ext4_xattr_ibody_header) + EXT4_XATTR_PAD <= \ + EXT4_INODE_SIZE((inode)->i_sb))) + struct ext4_xattr_info { const char *name; const void *value; @@ -178,6 +191,7 @@ extern int ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize, struct ext4_inode *raw_inode, handle_t *handle); +extern void ext4_evict_ea_inode(struct inode *inode); extern const struct xattr_handler *ext4_xattr_handlers[]; --- linux-5.19.0.orig/fs/f2fs/checkpoint.c +++ linux-5.19.0/fs/f2fs/checkpoint.c @@ -140,7 +140,7 @@ unsigned int segno, offset; bool exist; - if (type != DATA_GENERIC_ENHANCE && type != DATA_GENERIC_ENHANCE_READ) + if (type == DATA_GENERIC) return true; segno = GET_SEGNO(sbi, blkaddr); @@ -148,6 +148,13 @@ se = get_seg_entry(sbi, segno); exist = f2fs_test_bit(offset, se->cur_valid_map); + if (exist && type == DATA_GENERIC_ENHANCE_UPDATE) { + f2fs_err(sbi, "Inconsistent error blkaddr:%u, sit bitmap:%d", + blkaddr, exist); + set_sbi_flag(sbi, SBI_NEED_FSCK); + return exist; + } + if (!exist && type == DATA_GENERIC_ENHANCE) { f2fs_err(sbi, "Inconsistent error blkaddr:%u, sit bitmap:%d", blkaddr, exist); @@ -185,6 +192,7 @@ case DATA_GENERIC: case DATA_GENERIC_ENHANCE: case DATA_GENERIC_ENHANCE_READ: + case DATA_GENERIC_ENHANCE_UPDATE: if (unlikely(blkaddr >= MAX_BLKADDR(sbi) || blkaddr < MAIN_BLKADDR(sbi))) { f2fs_warn(sbi, "access invalid blkaddr:%u", @@ -1055,7 +1063,8 @@ spin_unlock(&sbi->inode_lock[type]); } -int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type) +int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type, + bool from_cp) { struct list_head *head; struct inode *inode; @@ -1090,11 +1099,15 @@ if (inode) { unsigned long cur_ino = inode->i_ino; - F2FS_I(inode)->cp_task = current; + if (from_cp) + F2FS_I(inode)->cp_task = current; + F2FS_I(inode)->wb_task = current; filemap_fdatawrite(inode->i_mapping); - F2FS_I(inode)->cp_task = NULL; + F2FS_I(inode)->wb_task = NULL; + if (from_cp) + F2FS_I(inode)->cp_task = NULL; iput(inode); /* We need to give cpu to another writers. */ @@ -1223,7 +1236,7 @@ /* write all the dirty dentry pages */ if (get_pages(sbi, F2FS_DIRTY_DENTS)) { f2fs_unlock_all(sbi); - err = f2fs_sync_dirty_inodes(sbi, DIR_INODE); + err = f2fs_sync_dirty_inodes(sbi, DIR_INODE, true); if (err) return err; cond_resched(); @@ -1894,15 +1907,27 @@ void f2fs_stop_ckpt_thread(struct f2fs_sb_info *sbi) { struct ckpt_req_control *cprc = &sbi->cprc_info; + struct task_struct *ckpt_task; - if (cprc->f2fs_issue_ckpt) { - struct task_struct *ckpt_task = cprc->f2fs_issue_ckpt; + if (!cprc->f2fs_issue_ckpt) + return; - cprc->f2fs_issue_ckpt = NULL; - kthread_stop(ckpt_task); + ckpt_task = cprc->f2fs_issue_ckpt; + cprc->f2fs_issue_ckpt = NULL; + kthread_stop(ckpt_task); - flush_remained_ckpt_reqs(sbi, NULL); - } + f2fs_flush_ckpt_thread(sbi); +} + +void f2fs_flush_ckpt_thread(struct f2fs_sb_info *sbi) +{ + struct ckpt_req_control *cprc = &sbi->cprc_info; + + flush_remained_ckpt_reqs(sbi, NULL); + + /* Let's wait for the previous dispatched checkpoint. */ + while (atomic_read(&cprc->queued_ckpt)) + io_schedule_timeout(DEFAULT_IO_TIMEOUT); } void f2fs_init_ckpt_req_control(struct f2fs_sb_info *sbi) --- linux-5.19.0.orig/fs/f2fs/compress.c +++ linux-5.19.0/fs/f2fs/compress.c @@ -346,7 +346,7 @@ if (!level) level = F2FS_ZSTD_DEFAULT_CLEVEL; - params = zstd_get_params(F2FS_ZSTD_DEFAULT_CLEVEL, cc->rlen); + params = zstd_get_params(level, cc->rlen); workspace_size = zstd_cstream_workspace_bound(¶ms.cParams); workspace = f2fs_kvmalloc(F2FS_I_SB(cc->inode), --- linux-5.19.0.orig/fs/f2fs/data.c +++ linux-5.19.0/fs/f2fs/data.c @@ -1463,9 +1463,12 @@ *map->m_next_extent = pgofs + map->m_len; /* for hardware encryption, but to avoid potential issue in future */ - if (flag == F2FS_GET_BLOCK_DIO) + if (flag == F2FS_GET_BLOCK_DIO) { f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); + invalidate_mapping_pages(META_MAPPING(sbi), + map->m_pblk, map->m_pblk + map->m_len - 1); + } if (map->m_multidev_dio) { block_t blk_addr = map->m_pblk; @@ -1682,7 +1685,7 @@ f2fs_wait_on_block_writeback_range(inode, map->m_pblk, map->m_len); invalidate_mapping_pages(META_MAPPING(sbi), - map->m_pblk, map->m_pblk); + map->m_pblk, map->m_pblk + map->m_len - 1); if (map->m_multidev_dio) { block_t blk_addr = map->m_pblk; @@ -2840,7 +2843,7 @@ } unlock_page(page); if (!S_ISDIR(inode->i_mode) && !IS_NOQUOTA(inode) && - !F2FS_I(inode)->cp_task && allow_balance) + !F2FS_I(inode)->wb_task && allow_balance) f2fs_balance_fs(sbi, need_balance_fs); if (unlikely(f2fs_cp_error(sbi))) { @@ -3138,7 +3141,7 @@ struct writeback_control *wbc) { /* to avoid deadlock in path of data flush */ - if (F2FS_I(inode)->cp_task) + if (F2FS_I(inode)->wb_task) return false; if (!S_ISREG(inode->i_mode)) --- linux-5.19.0.orig/fs/f2fs/extent_cache.c +++ linux-5.19.0/fs/f2fs/extent_cache.c @@ -804,9 +804,8 @@ if (!f2fs_may_extent_tree(inode)) return; - set_inode_flag(inode, FI_NO_EXTENT); - write_lock(&et->lock); + set_inode_flag(inode, FI_NO_EXTENT); __free_extent_tree(sbi, et); if (et->largest.len) { et->largest.len = 0; --- linux-5.19.0.orig/fs/f2fs/f2fs.h +++ linux-5.19.0/fs/f2fs/f2fs.h @@ -266,6 +266,10 @@ * condition of read on truncated area * by extent_cache */ + DATA_GENERIC_ENHANCE_UPDATE, /* + * strong check on range and segment + * bitmap for update case + */ META_GENERIC, }; @@ -757,6 +761,7 @@ FI_ENABLE_COMPRESS, /* enable compression in "user" compression mode */ FI_COMPRESS_RELEASED, /* compressed blocks were released */ FI_ALIGNED_WRITE, /* enable aligned write */ + FI_COW_FILE, /* indicate COW file */ FI_MAX, /* max flag, never be used */ }; @@ -779,6 +784,7 @@ unsigned int clevel; /* maximum level of given file name */ struct task_struct *task; /* lookup and create consistency */ struct task_struct *cp_task; /* separate cp/wb IO stats*/ + struct task_struct *wb_task; /* indicate inode is in context of writeback */ nid_t i_xattr_nid; /* node id that contains xattrs */ loff_t last_disk_size; /* lastly written file size */ spinlock_t i_size_lock; /* protect last_disk_size */ @@ -2929,7 +2935,7 @@ /* Flags that should be inherited by new inodes from their parent. */ #define F2FS_FL_INHERITED (F2FS_SYNC_FL | F2FS_NODUMP_FL | F2FS_NOATIME_FL | \ F2FS_DIRSYNC_FL | F2FS_PROJINHERIT_FL | \ - F2FS_CASEFOLD_FL | F2FS_COMPR_FL | F2FS_NOCOMP_FL) + F2FS_CASEFOLD_FL) /* Flags that are appropriate for regular files (all but dir-specific ones). */ #define F2FS_REG_FLMASK (~(F2FS_DIRSYNC_FL | F2FS_PROJINHERIT_FL | \ @@ -3208,6 +3214,11 @@ return is_inode_flag_set(inode, FI_ATOMIC_FILE); } +static inline bool f2fs_is_cow_file(struct inode *inode) +{ + return is_inode_flag_set(inode, FI_COW_FILE); +} + static inline bool f2fs_is_first_block_written(struct inode *inode) { return is_inode_flag_set(inode, FI_FIRST_BLOCK_WRITTEN); @@ -3670,6 +3681,7 @@ * checkpoint.c */ void f2fs_stop_checkpoint(struct f2fs_sb_info *sbi, bool end_io); +void f2fs_flush_ckpt_thread(struct f2fs_sb_info *sbi); struct page *f2fs_grab_meta_page(struct f2fs_sb_info *sbi, pgoff_t index); struct page *f2fs_get_meta_page(struct f2fs_sb_info *sbi, pgoff_t index); struct page *f2fs_get_meta_page_retry(struct f2fs_sb_info *sbi, pgoff_t index); @@ -3699,7 +3711,8 @@ int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi); void f2fs_update_dirty_folio(struct inode *inode, struct folio *folio); void f2fs_remove_dirty_inode(struct inode *inode); -int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type); +int f2fs_sync_dirty_inodes(struct f2fs_sb_info *sbi, enum inode_type type, + bool from_cp); void f2fs_wait_on_all_pages(struct f2fs_sb_info *sbi, int type); u64 f2fs_get_sectors_written(struct f2fs_sb_info *sbi); int f2fs_write_checkpoint(struct f2fs_sb_info *sbi, struct cp_control *cpc); @@ -4401,7 +4414,7 @@ static inline bool f2fs_may_compress(struct inode *inode) { if (IS_SWAPFILE(inode) || f2fs_is_pinned_file(inode) || - f2fs_is_atomic_file(inode)) + f2fs_is_atomic_file(inode) || f2fs_has_inline_data(inode)) return false; return S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode); } --- linux-5.19.0.orig/fs/f2fs/file.c +++ linux-5.19.0/fs/f2fs/file.c @@ -1873,10 +1873,11 @@ if (masked_flags & F2FS_COMPR_FL) { if (!f2fs_disable_compressed_file(inode)) return -EINVAL; - } - if (iflags & F2FS_NOCOMP_FL) - return -EINVAL; - if (iflags & F2FS_COMPR_FL) { + } else { + /* try to convert inline_data to support compression */ + int err = f2fs_convert_inline_inode(inode); + if (err) + return err; if (!f2fs_may_compress(inode)) return -EINVAL; if (S_ISREG(inode->i_mode) && inode->i_size) @@ -1885,10 +1886,6 @@ set_compress_context(inode); } } - if ((iflags ^ masked_flags) & F2FS_NOCOMP_FL) { - if (masked_flags & F2FS_COMPR_FL) - return -EINVAL; - } fi->i_flags = iflags | (fi->i_flags & ~mask); f2fs_bug_on(F2FS_I_SB(inode), (fi->i_flags & F2FS_COMPR_FL) && @@ -2068,7 +2065,7 @@ spin_unlock(&sbi->inode_lock[ATOMIC_FILE]); set_inode_flag(inode, FI_ATOMIC_FILE); - set_inode_flag(fi->cow_inode, FI_ATOMIC_FILE); + set_inode_flag(fi->cow_inode, FI_COW_FILE); clear_inode_flag(fi->cow_inode, FI_INLINE_DATA); f2fs_up_write(&fi->i_gc_rwsem[WRITE]); @@ -2115,6 +2112,31 @@ return ret; } +static int f2fs_ioc_abort_atomic_write(struct file *filp) +{ + struct inode *inode = file_inode(filp); + struct user_namespace *mnt_userns = file_mnt_user_ns(filp); + int ret; + + if (!inode_owner_or_capable(mnt_userns, inode)) + return -EACCES; + + ret = mnt_want_write_file(filp); + if (ret) + return ret; + + inode_lock(inode); + + if (f2fs_is_atomic_file(inode)) + f2fs_abort_atomic_write(inode, true); + + inode_unlock(inode); + + mnt_drop_write_file(filp); + f2fs_update_time(F2FS_I_SB(inode), REQ_TIME); + return ret; +} + static int f2fs_ioc_shutdown(struct file *filp, unsigned long arg) { struct inode *inode = file_inode(filp); @@ -3945,6 +3967,11 @@ goto out; } + if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) { + ret = -EINVAL; + goto out; + } + ret = filemap_write_and_wait_range(inode->i_mapping, 0, LLONG_MAX); if (ret) goto out; @@ -4012,6 +4039,11 @@ goto out; } + if (is_inode_flag_set(inode, FI_COMPRESS_RELEASED)) { + ret = -EINVAL; + goto out; + } + ret = filemap_write_and_wait_range(inode->i_mapping, 0, LLONG_MAX); if (ret) goto out; @@ -4060,9 +4092,10 @@ return f2fs_ioc_start_atomic_write(filp); case F2FS_IOC_COMMIT_ATOMIC_WRITE: return f2fs_ioc_commit_atomic_write(filp); + case F2FS_IOC_ABORT_ATOMIC_WRITE: + return f2fs_ioc_abort_atomic_write(filp); case F2FS_IOC_START_VOLATILE_WRITE: case F2FS_IOC_RELEASE_VOLATILE_WRITE: - case F2FS_IOC_ABORT_VOLATILE_WRITE: return -EOPNOTSUPP; case F2FS_IOC_SHUTDOWN: return f2fs_ioc_shutdown(filp, arg); @@ -4731,7 +4764,7 @@ case F2FS_IOC_COMMIT_ATOMIC_WRITE: case F2FS_IOC_START_VOLATILE_WRITE: case F2FS_IOC_RELEASE_VOLATILE_WRITE: - case F2FS_IOC_ABORT_VOLATILE_WRITE: + case F2FS_IOC_ABORT_ATOMIC_WRITE: case F2FS_IOC_SHUTDOWN: case FITRIM: case FS_IOC_SET_ENCRYPTION_POLICY: --- linux-5.19.0.orig/fs/f2fs/gc.c +++ linux-5.19.0/fs/f2fs/gc.c @@ -97,14 +97,10 @@ */ if (sbi->gc_mode == GC_URGENT_HIGH) { spin_lock(&sbi->gc_urgent_high_lock); - if (sbi->gc_urgent_high_limited) { - if (!sbi->gc_urgent_high_remaining) { - sbi->gc_urgent_high_limited = false; - spin_unlock(&sbi->gc_urgent_high_lock); - sbi->gc_mode = GC_NORMAL; - continue; - } - sbi->gc_urgent_high_remaining--; + if (sbi->gc_urgent_high_limited && + !sbi->gc_urgent_high_remaining--) { + sbi->gc_urgent_high_limited = false; + sbi->gc_mode = GC_NORMAL; } spin_unlock(&sbi->gc_urgent_high_lock); } @@ -1079,7 +1075,7 @@ { struct page *node_page; nid_t nid; - unsigned int ofs_in_node; + unsigned int ofs_in_node, max_addrs; block_t source_blkaddr; nid = le32_to_cpu(sum->nid); @@ -1105,6 +1101,14 @@ return false; } + max_addrs = IS_INODE(node_page) ? DEF_ADDRS_PER_INODE : + DEF_ADDRS_PER_BLOCK; + if (ofs_in_node >= max_addrs) { + f2fs_err(sbi, "Inconsistent ofs_in_node:%u in summary, ino:%u, nid:%u, max:%u", + ofs_in_node, dni->ino, dni->nid, max_addrs); + return false; + } + *nofs = ofs_of_node(node_page); source_blkaddr = data_blkaddr(NULL, node_page, ofs_in_node); f2fs_put_page(node_page, 1); @@ -1731,8 +1735,9 @@ get_valid_blocks(sbi, segno, false) == 0) seg_freed++; - if (__is_large_section(sbi) && segno + 1 < end_segno) - sbi->next_victim_seg[gc_type] = segno + 1; + if (__is_large_section(sbi)) + sbi->next_victim_seg[gc_type] = + (segno + 1 < end_segno) ? segno + 1 : NULL_SEGNO; skip: f2fs_put_page(sum_page, 0); } @@ -2120,8 +2125,6 @@ if (err) return err; - set_sbi_flag(sbi, SBI_IS_RESIZEFS); - freeze_super(sbi->sb); f2fs_down_write(&sbi->gc_lock); f2fs_down_write(&sbi->cp_global_sem); @@ -2137,6 +2140,7 @@ if (err) goto out_err; + set_sbi_flag(sbi, SBI_IS_RESIZEFS); err = free_segment_range(sbi, secs, false); if (err) goto recover_out; @@ -2160,6 +2164,7 @@ f2fs_commit_super(sbi, false); } recover_out: + clear_sbi_flag(sbi, SBI_IS_RESIZEFS); if (err) { set_sbi_flag(sbi, SBI_NEED_FSCK); f2fs_err(sbi, "resize_fs failed, should run fsck to repair!"); @@ -2172,6 +2177,5 @@ f2fs_up_write(&sbi->cp_global_sem); f2fs_up_write(&sbi->gc_lock); thaw_super(sbi->sb); - clear_sbi_flag(sbi, SBI_IS_RESIZEFS); return err; } --- linux-5.19.0.orig/fs/f2fs/namei.c +++ linux-5.19.0/fs/f2fs/namei.c @@ -22,8 +22,163 @@ #include "acl.h" #include +static inline int is_extension_exist(const unsigned char *s, const char *sub, + bool tmp_ext) +{ + size_t slen = strlen(s); + size_t sublen = strlen(sub); + int i; + + if (sublen == 1 && *sub == '*') + return 1; + + /* + * filename format of multimedia file should be defined as: + * "filename + '.' + extension + (optional: '.' + temp extension)". + */ + if (slen < sublen + 2) + return 0; + + if (!tmp_ext) { + /* file has no temp extension */ + if (s[slen - sublen - 1] != '.') + return 0; + return !strncasecmp(s + slen - sublen, sub, sublen); + } + + for (i = 1; i < slen - sublen; i++) { + if (s[i] != '.') + continue; + if (!strncasecmp(s + i + 1, sub, sublen)) + return 1; + } + + return 0; +} + +int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name, + bool hot, bool set) +{ + __u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list; + int cold_count = le32_to_cpu(sbi->raw_super->extension_count); + int hot_count = sbi->raw_super->hot_ext_count; + int total_count = cold_count + hot_count; + int start, count; + int i; + + if (set) { + if (total_count == F2FS_MAX_EXTENSION) + return -EINVAL; + } else { + if (!hot && !cold_count) + return -EINVAL; + if (hot && !hot_count) + return -EINVAL; + } + + if (hot) { + start = cold_count; + count = total_count; + } else { + start = 0; + count = cold_count; + } + + for (i = start; i < count; i++) { + if (strcmp(name, extlist[i])) + continue; + + if (set) + return -EINVAL; + + memcpy(extlist[i], extlist[i + 1], + F2FS_EXTENSION_LEN * (total_count - i - 1)); + memset(extlist[total_count - 1], 0, F2FS_EXTENSION_LEN); + if (hot) + sbi->raw_super->hot_ext_count = hot_count - 1; + else + sbi->raw_super->extension_count = + cpu_to_le32(cold_count - 1); + return 0; + } + + if (!set) + return -EINVAL; + + if (hot) { + memcpy(extlist[count], name, strlen(name)); + sbi->raw_super->hot_ext_count = hot_count + 1; + } else { + char buf[F2FS_MAX_EXTENSION][F2FS_EXTENSION_LEN]; + + memcpy(buf, &extlist[cold_count], + F2FS_EXTENSION_LEN * hot_count); + memset(extlist[cold_count], 0, F2FS_EXTENSION_LEN); + memcpy(extlist[cold_count], name, strlen(name)); + memcpy(&extlist[cold_count + 1], buf, + F2FS_EXTENSION_LEN * hot_count); + sbi->raw_super->extension_count = cpu_to_le32(cold_count + 1); + } + return 0; +} + +static void set_compress_new_inode(struct f2fs_sb_info *sbi, struct inode *dir, + struct inode *inode, const unsigned char *name) +{ + __u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list; + unsigned char (*noext)[F2FS_EXTENSION_LEN] = + F2FS_OPTION(sbi).noextensions; + unsigned char (*ext)[F2FS_EXTENSION_LEN] = F2FS_OPTION(sbi).extensions; + unsigned char ext_cnt = F2FS_OPTION(sbi).compress_ext_cnt; + unsigned char noext_cnt = F2FS_OPTION(sbi).nocompress_ext_cnt; + int i, cold_count, hot_count; + + if (!f2fs_sb_has_compression(sbi)) + return; + + if (S_ISDIR(inode->i_mode)) + goto inherit_comp; + + /* This name comes only from normal files. */ + if (!name) + return; + + /* Don't compress hot files. */ + f2fs_down_read(&sbi->sb_lock); + cold_count = le32_to_cpu(sbi->raw_super->extension_count); + hot_count = sbi->raw_super->hot_ext_count; + for (i = cold_count; i < cold_count + hot_count; i++) + if (is_extension_exist(name, extlist[i], false)) + break; + f2fs_up_read(&sbi->sb_lock); + if (i < (cold_count + hot_count)) + return; + + /* Don't compress unallowed extension. */ + for (i = 0; i < noext_cnt; i++) + if (is_extension_exist(name, noext[i], false)) + return; + + /* Compress wanting extension. */ + for (i = 0; i < ext_cnt; i++) { + if (is_extension_exist(name, ext[i], false)) { + set_compress_context(inode); + return; + } + } +inherit_comp: + /* Inherit the {no-}compression flag in directory */ + if (F2FS_I(dir)->i_flags & F2FS_NOCOMP_FL) { + F2FS_I(inode)->i_flags |= F2FS_NOCOMP_FL; + f2fs_mark_inode_dirty_sync(inode, true); + } else if (F2FS_I(dir)->i_flags & F2FS_COMPR_FL) { + set_compress_context(inode); + } +} + static struct inode *f2fs_new_inode(struct user_namespace *mnt_userns, - struct inode *dir, umode_t mode) + struct inode *dir, umode_t mode, + const char *name) { struct f2fs_sb_info *sbi = F2FS_I_SB(dir); nid_t ino; @@ -114,12 +269,8 @@ if (F2FS_I(inode)->i_flags & F2FS_PROJINHERIT_FL) set_inode_flag(inode, FI_PROJ_INHERIT); - if (f2fs_sb_has_compression(sbi)) { - /* Inherit the compression flag in directory */ - if ((F2FS_I(dir)->i_flags & F2FS_COMPR_FL) && - f2fs_may_compress(inode)) - set_compress_context(inode); - } + /* Check compression first. */ + set_compress_new_inode(sbi, dir, inode, name); /* Should enable inline_data after compression set */ if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode)) @@ -153,40 +304,6 @@ return ERR_PTR(err); } -static inline int is_extension_exist(const unsigned char *s, const char *sub, - bool tmp_ext) -{ - size_t slen = strlen(s); - size_t sublen = strlen(sub); - int i; - - if (sublen == 1 && *sub == '*') - return 1; - - /* - * filename format of multimedia file should be defined as: - * "filename + '.' + extension + (optional: '.' + temp extension)". - */ - if (slen < sublen + 2) - return 0; - - if (!tmp_ext) { - /* file has no temp extension */ - if (s[slen - sublen - 1] != '.') - return 0; - return !strncasecmp(s + slen - sublen, sub, sublen); - } - - for (i = 1; i < slen - sublen; i++) { - if (s[i] != '.') - continue; - if (!strncasecmp(s + i + 1, sub, sublen)) - return 1; - } - - return 0; -} - /* * Set file's temperature for hot/cold data separation */ @@ -217,124 +334,6 @@ file_set_hot(inode); } -int f2fs_update_extension_list(struct f2fs_sb_info *sbi, const char *name, - bool hot, bool set) -{ - __u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list; - int cold_count = le32_to_cpu(sbi->raw_super->extension_count); - int hot_count = sbi->raw_super->hot_ext_count; - int total_count = cold_count + hot_count; - int start, count; - int i; - - if (set) { - if (total_count == F2FS_MAX_EXTENSION) - return -EINVAL; - } else { - if (!hot && !cold_count) - return -EINVAL; - if (hot && !hot_count) - return -EINVAL; - } - - if (hot) { - start = cold_count; - count = total_count; - } else { - start = 0; - count = cold_count; - } - - for (i = start; i < count; i++) { - if (strcmp(name, extlist[i])) - continue; - - if (set) - return -EINVAL; - - memcpy(extlist[i], extlist[i + 1], - F2FS_EXTENSION_LEN * (total_count - i - 1)); - memset(extlist[total_count - 1], 0, F2FS_EXTENSION_LEN); - if (hot) - sbi->raw_super->hot_ext_count = hot_count - 1; - else - sbi->raw_super->extension_count = - cpu_to_le32(cold_count - 1); - return 0; - } - - if (!set) - return -EINVAL; - - if (hot) { - memcpy(extlist[count], name, strlen(name)); - sbi->raw_super->hot_ext_count = hot_count + 1; - } else { - char buf[F2FS_MAX_EXTENSION][F2FS_EXTENSION_LEN]; - - memcpy(buf, &extlist[cold_count], - F2FS_EXTENSION_LEN * hot_count); - memset(extlist[cold_count], 0, F2FS_EXTENSION_LEN); - memcpy(extlist[cold_count], name, strlen(name)); - memcpy(&extlist[cold_count + 1], buf, - F2FS_EXTENSION_LEN * hot_count); - sbi->raw_super->extension_count = cpu_to_le32(cold_count + 1); - } - return 0; -} - -static void set_compress_inode(struct f2fs_sb_info *sbi, struct inode *inode, - const unsigned char *name) -{ - __u8 (*extlist)[F2FS_EXTENSION_LEN] = sbi->raw_super->extension_list; - unsigned char (*noext)[F2FS_EXTENSION_LEN] = F2FS_OPTION(sbi).noextensions; - unsigned char (*ext)[F2FS_EXTENSION_LEN] = F2FS_OPTION(sbi).extensions; - unsigned char ext_cnt = F2FS_OPTION(sbi).compress_ext_cnt; - unsigned char noext_cnt = F2FS_OPTION(sbi).nocompress_ext_cnt; - int i, cold_count, hot_count; - - if (!f2fs_sb_has_compression(sbi) || - F2FS_I(inode)->i_flags & F2FS_NOCOMP_FL || - !f2fs_may_compress(inode) || - (!ext_cnt && !noext_cnt)) - return; - - f2fs_down_read(&sbi->sb_lock); - - cold_count = le32_to_cpu(sbi->raw_super->extension_count); - hot_count = sbi->raw_super->hot_ext_count; - - for (i = cold_count; i < cold_count + hot_count; i++) { - if (is_extension_exist(name, extlist[i], false)) { - f2fs_up_read(&sbi->sb_lock); - return; - } - } - - f2fs_up_read(&sbi->sb_lock); - - for (i = 0; i < noext_cnt; i++) { - if (is_extension_exist(name, noext[i], false)) { - f2fs_disable_compressed_file(inode); - return; - } - } - - if (is_inode_flag_set(inode, FI_COMPRESSED_FILE)) - return; - - for (i = 0; i < ext_cnt; i++) { - if (!is_extension_exist(name, ext[i], false)) - continue; - - /* Do not use inline_data with compression */ - stat_dec_inline_inode(inode); - clear_inode_flag(inode, FI_INLINE_DATA); - set_compress_context(inode); - return; - } -} - static int f2fs_create(struct user_namespace *mnt_userns, struct inode *dir, struct dentry *dentry, umode_t mode, bool excl) { @@ -352,15 +351,13 @@ if (err) return err; - inode = f2fs_new_inode(mnt_userns, dir, mode); + inode = f2fs_new_inode(mnt_userns, dir, mode, dentry->d_name.name); if (IS_ERR(inode)) return PTR_ERR(inode); if (!test_opt(sbi, DISABLE_EXT_IDENTIFY)) set_file_temperature(sbi, inode, dentry->d_name.name); - set_compress_inode(sbi, inode, dentry->d_name.name); - inode->i_op = &f2fs_file_inode_operations; inode->i_fop = &f2fs_file_operations; inode->i_mapping->a_ops = &f2fs_dblock_aops; @@ -689,7 +686,7 @@ if (err) return err; - inode = f2fs_new_inode(mnt_userns, dir, S_IFLNK | S_IRWXUGO); + inode = f2fs_new_inode(mnt_userns, dir, S_IFLNK | S_IRWXUGO, NULL); if (IS_ERR(inode)) return PTR_ERR(inode); @@ -760,7 +757,7 @@ if (err) return err; - inode = f2fs_new_inode(mnt_userns, dir, S_IFDIR | mode); + inode = f2fs_new_inode(mnt_userns, dir, S_IFDIR | mode, NULL); if (IS_ERR(inode)) return PTR_ERR(inode); @@ -817,7 +814,7 @@ if (err) return err; - inode = f2fs_new_inode(mnt_userns, dir, mode); + inode = f2fs_new_inode(mnt_userns, dir, mode, NULL); if (IS_ERR(inode)) return PTR_ERR(inode); @@ -856,7 +853,7 @@ if (err) return err; - inode = f2fs_new_inode(mnt_userns, dir, mode); + inode = f2fs_new_inode(mnt_userns, dir, mode, NULL); if (IS_ERR(inode)) return PTR_ERR(inode); --- linux-5.19.0.orig/fs/f2fs/node.c +++ linux-5.19.0/fs/f2fs/node.c @@ -1292,7 +1292,11 @@ dec_valid_node_count(sbi, dn->inode, !ofs); goto fail; } - f2fs_bug_on(sbi, new_ni.blk_addr != NULL_ADDR); + if (unlikely(new_ni.blk_addr != NULL_ADDR)) { + err = -EFSCORRUPTED; + set_sbi_flag(sbi, SBI_NEED_FSCK); + goto fail; + } #endif new_ni.nid = dn->nid; new_ni.ino = dn->inode->i_ino; --- linux-5.19.0.orig/fs/f2fs/recovery.c +++ linux-5.19.0/fs/f2fs/recovery.c @@ -474,7 +474,7 @@ struct dnode_of_data tdn = *dn; nid_t ino, nid; struct inode *inode; - unsigned int offset; + unsigned int offset, ofs_in_node, max_addrs; block_t bidx; int i; @@ -501,15 +501,24 @@ got_it: /* Use the locked dnode page and inode */ nid = le32_to_cpu(sum.nid); + ofs_in_node = le16_to_cpu(sum.ofs_in_node); + + max_addrs = ADDRS_PER_PAGE(dn->node_page, dn->inode); + if (ofs_in_node >= max_addrs) { + f2fs_err(sbi, "Inconsistent ofs_in_node:%u in summary, ino:%lu, nid:%u, max:%u", + ofs_in_node, dn->inode->i_ino, nid, max_addrs); + return -EFSCORRUPTED; + } + if (dn->inode->i_ino == nid) { tdn.nid = nid; if (!dn->inode_page_locked) lock_page(dn->inode_page); tdn.node_page = dn->inode_page; - tdn.ofs_in_node = le16_to_cpu(sum.ofs_in_node); + tdn.ofs_in_node = ofs_in_node; goto truncate_out; } else if (dn->nid == nid) { - tdn.ofs_in_node = le16_to_cpu(sum.ofs_in_node); + tdn.ofs_in_node = ofs_in_node; goto truncate_out; } @@ -698,6 +707,14 @@ goto err; } + if (f2fs_is_valid_blkaddr(sbi, dest, + DATA_GENERIC_ENHANCE_UPDATE)) { + f2fs_err(sbi, "Inconsistent dest blkaddr:%u, ino:%lu, ofs:%u", + dest, inode->i_ino, dn.ofs_in_node); + err = -EFSCORRUPTED; + goto err; + } + /* write dummy data page */ f2fs_replace_block(sbi, &dn, src, dest, ni.version, false, false); --- linux-5.19.0.orig/fs/f2fs/segment.c +++ linux-5.19.0/fs/f2fs/segment.c @@ -193,7 +193,7 @@ if (f2fs_is_atomic_file(inode)) { if (clean) truncate_inode_pages_final(inode->i_mapping); - clear_inode_flag(fi->cow_inode, FI_ATOMIC_FILE); + clear_inode_flag(fi->cow_inode, FI_COW_FILE); iput(fi->cow_inode); fi->cow_inode = NULL; clear_inode_flag(inode, FI_ATOMIC_FILE); @@ -469,7 +469,7 @@ mutex_lock(&sbi->flush_lock); blk_start_plug(&plug); - f2fs_sync_dirty_inodes(sbi, FILE_INODE); + f2fs_sync_dirty_inodes(sbi, FILE_INODE, false); blk_finish_plug(&plug); mutex_unlock(&sbi->flush_lock); @@ -1164,7 +1164,7 @@ atomic_inc(&dcc->issued_discard); - f2fs_update_iostat(sbi, FS_DISCARD, 1); + f2fs_update_iostat(sbi, FS_DISCARD, len * F2FS_BLKSIZE); lstart += len; start += len; @@ -1442,7 +1442,7 @@ if (i + 1 < dpolicy->granularity) break; - if (i < DEFAULT_DISCARD_GRANULARITY && dpolicy->ordered) + if (i + 1 < DEFAULT_DISCARD_GRANULARITY && dpolicy->ordered) return __issue_discard_cmd_orderly(sbi, dpolicy); pend_list = &dcc->pend_list[i]; @@ -2019,8 +2019,10 @@ dcc->f2fs_issue_discard = kthread_run(issue_discard_thread, sbi, "f2fs_discard-%u:%u", MAJOR(dev), MINOR(dev)); - if (IS_ERR(dcc->f2fs_issue_discard)) + if (IS_ERR(dcc->f2fs_issue_discard)) { err = PTR_ERR(dcc->f2fs_issue_discard); + dcc->f2fs_issue_discard = NULL; + } return err; } @@ -3166,7 +3168,7 @@ return CURSEG_COLD_DATA; if (file_is_hot(inode) || is_inode_flag_set(inode, FI_HOT_DATA) || - f2fs_is_atomic_file(inode)) + f2fs_is_cow_file(inode)) return CURSEG_HOT_DATA; return f2fs_rw_hint_to_seg_type(inode->i_write_hint); } else { @@ -4362,6 +4364,12 @@ return err; seg_info_from_raw_sit(se, &sit); + if (se->type >= NR_PERSISTENT_LOG) { + f2fs_err(sbi, "Invalid segment type: %u, segno: %u", + se->type, start); + return -EFSCORRUPTED; + } + sit_valid_blocks[SE_PAGETYPE(se)] += se->valid_blocks; if (f2fs_block_unit_discard(sbi)) { @@ -4410,6 +4418,13 @@ break; seg_info_from_raw_sit(se, &sit); + if (se->type >= NR_PERSISTENT_LOG) { + f2fs_err(sbi, "Invalid segment type: %u, segno: %u", + se->type, start); + err = -EFSCORRUPTED; + break; + } + sit_valid_blocks[SE_PAGETYPE(se)] += se->valid_blocks; if (f2fs_block_unit_discard(sbi)) { --- linux-5.19.0.orig/fs/f2fs/super.c +++ linux-5.19.0/fs/f2fs/super.c @@ -298,10 +298,10 @@ static inline void limit_reserve_root(struct f2fs_sb_info *sbi) { - block_t limit = min((sbi->user_block_count << 1) / 1000, + block_t limit = min((sbi->user_block_count >> 3), sbi->user_block_count - sbi->reserved_blocks); - /* limit is 0.2% */ + /* limit is 12.5% */ if (test_opt(sbi, RESERVE_ROOT) && F2FS_OPTION(sbi).root_reserved_blocks > limit) { F2FS_OPTION(sbi).root_reserved_blocks = limit; @@ -1637,9 +1637,8 @@ if (is_sbi_flag_set(F2FS_SB(sb), SBI_IS_DIRTY)) return -EINVAL; - /* ensure no checkpoint required */ - if (!llist_empty(&F2FS_SB(sb)->cprc_info.issue_list)) - return -EINVAL; + /* Let's flush checkpoints and stop the thread. */ + f2fs_flush_ckpt_thread(F2FS_SB(sb)); /* to avoid deadlock on f2fs_evict_inode->SB_FREEZE_FS */ set_sbi_flag(F2FS_SB(sb), SBI_IS_FREEZING); @@ -2146,6 +2145,9 @@ f2fs_up_write(&sbi->gc_lock); f2fs_sync_fs(sbi->sb, 1); + + /* Let's ensure there's no pending checkpoint anymore */ + f2fs_flush_ckpt_thread(sbi); } static int f2fs_remount(struct super_block *sb, int *flags, char *data) @@ -2311,6 +2313,9 @@ f2fs_stop_ckpt_thread(sbi); need_restart_ckpt = true; } else { + /* Flush if the prevous checkpoint, if exists. */ + f2fs_flush_ckpt_thread(sbi); + err = f2fs_start_ckpt_thread(sbi); if (err) { f2fs_err(sbi, @@ -4427,9 +4432,9 @@ f2fs_destroy_node_manager(sbi); free_sm: f2fs_destroy_segment_manager(sbi); - f2fs_destroy_post_read_wq(sbi); stop_ckpt_thread: f2fs_stop_ckpt_thread(sbi); + f2fs_destroy_post_read_wq(sbi); free_devices: destroy_device_list(sbi); kvfree(sbi->ckpt); --- linux-5.19.0.orig/fs/f2fs/verity.c +++ linux-5.19.0/fs/f2fs/verity.c @@ -262,13 +262,14 @@ pgoff_t index, unsigned long num_ra_pages) { - DEFINE_READAHEAD(ractl, NULL, NULL, inode->i_mapping, index); struct page *page; index += f2fs_verity_metadata_pos(inode) >> PAGE_SHIFT; page = find_get_page_flags(inode->i_mapping, index, FGP_ACCESSED); if (!page || !PageUptodate(page)) { + DEFINE_READAHEAD(ractl, NULL, NULL, inode->i_mapping, index); + if (page) put_page(page); else if (num_ra_pages > 1) --- linux-5.19.0.orig/fs/file.c +++ linux-5.19.0/fs/file.c @@ -797,6 +797,7 @@ { return pick_file(current->files, fd); } +EXPORT_SYMBOL(close_fd_get_file); /* * variant of close_fd that gets a ref on the file for later fput. @@ -1002,7 +1003,16 @@ struct files_struct *files = current->files; struct file *file; - if (atomic_read(&files->count) == 1) { + /* + * If another thread is concurrently calling close_fd() followed + * by put_files_struct(), we must not observe the old table + * entry combined with the new refcount - otherwise we could + * return a file that is concurrently being freed. + * + * atomic_read_acquire() pairs with atomic_dec_and_test() in + * put_files_struct(). + */ + if (atomic_read_acquire(&files->count) == 1) { file = files_lookup_fd_raw(files, fd); if (!file || unlikely(file->f_mode & mask)) return 0; --- linux-5.19.0.orig/fs/file_table.c +++ linux-5.19.0/fs/file_table.c @@ -321,12 +321,7 @@ } fops_put(file->f_op); put_pid(file->f_owner.pid); - if ((mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) - i_readcount_dec(inode); - if (mode & FMODE_WRITER) { - put_write_access(inode); - __mnt_drop_write(mnt); - } + put_file_access(file); dput(dentry); if (unlikely(mode & FMODE_NEED_UNMOUNT)) dissolve_on_fput(mnt); --- linux-5.19.0.orig/fs/fs-writeback.c +++ linux-5.19.0/fs/fs-writeback.c @@ -134,10 +134,10 @@ static void wb_wakeup(struct bdi_writeback *wb) { - spin_lock_bh(&wb->work_lock); + spin_lock_irq(&wb->work_lock); if (test_bit(WB_registered, &wb->state)) mod_delayed_work(bdi_wq, &wb->dwork, 0); - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); } static void finish_writeback_work(struct bdi_writeback *wb, @@ -164,7 +164,7 @@ if (work->done) atomic_inc(&work->done->cnt); - spin_lock_bh(&wb->work_lock); + spin_lock_irq(&wb->work_lock); if (test_bit(WB_registered, &wb->state)) { list_add_tail(&work->list, &wb->work_list); @@ -172,7 +172,7 @@ } else finish_writeback_work(wb, work); - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); } /** @@ -1712,15 +1712,28 @@ wb = inode_to_wb_and_lock_list(inode); spin_lock(&inode->i_lock); /* - * If the inode is now fully clean, then it can be safely removed from - * its writeback list (if any). Otherwise the flusher threads are - * responsible for the writeback lists. + * If the inode is freeing, its i_io_list shoudn't be updated + * as it can be finally deleted at this moment. */ - if (!(inode->i_state & I_DIRTY_ALL)) - inode_cgwb_move_to_attached(inode, wb); - else if (!(inode->i_state & I_SYNC_QUEUED) && - (inode->i_state & I_DIRTY)) - redirty_tail_locked(inode, wb); + if (!(inode->i_state & I_FREEING)) { + /* + * If the inode is now fully clean, then it can be safely + * removed from its writeback list (if any). Otherwise the + * flusher threads are responsible for the writeback lists. + */ + if (!(inode->i_state & I_DIRTY_ALL)) + inode_cgwb_move_to_attached(inode, wb); + else if (!(inode->i_state & I_SYNC_QUEUED)) { + if ((inode->i_state & I_DIRTY)) + redirty_tail_locked(inode, wb); + else if (inode->i_state & I_DIRTY_TIME) { + inode->dirtied_when = jiffies; + inode_io_list_move_locked(inode, + wb, + &wb->b_dirty_time); + } + } + } spin_unlock(&wb->list_lock); inode_sync_complete(inode); @@ -2082,13 +2095,13 @@ { struct wb_writeback_work *work = NULL; - spin_lock_bh(&wb->work_lock); + spin_lock_irq(&wb->work_lock); if (!list_empty(&wb->work_list)) { work = list_entry(wb->work_list.next, struct wb_writeback_work, list); list_del_init(&work->list); } - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); return work; } @@ -2370,6 +2383,20 @@ if (flags & I_DIRTY_INODE) { /* + * Inode timestamp update will piggback on this dirtying. + * We tell ->dirty_inode callback that timestamps need to + * be updated by setting I_DIRTY_TIME in flags. + */ + if (inode->i_state & I_DIRTY_TIME) { + spin_lock(&inode->i_lock); + if (inode->i_state & I_DIRTY_TIME) { + inode->i_state &= ~I_DIRTY_TIME; + flags |= I_DIRTY_TIME; + } + spin_unlock(&inode->i_lock); + } + + /* * Notify the filesystem about the inode being dirtied, so that * (if needed) it can update on-disk fields and journal the * inode. This is only needed when the inode itself is being @@ -2378,7 +2405,8 @@ */ trace_writeback_dirty_inode_start(inode, flags); if (sb->s_op->dirty_inode) - sb->s_op->dirty_inode(inode, flags & I_DIRTY_INODE); + sb->s_op->dirty_inode(inode, + flags & (I_DIRTY_INODE | I_DIRTY_TIME)); trace_writeback_dirty_inode(inode, flags); /* I_DIRTY_INODE supersedes I_DIRTY_TIME. */ @@ -2399,21 +2427,15 @@ */ smp_mb(); - if (((inode->i_state & flags) == flags) || - (dirtytime && (inode->i_state & I_DIRTY_INODE))) + if ((inode->i_state & flags) == flags) return; spin_lock(&inode->i_lock); - if (dirtytime && (inode->i_state & I_DIRTY_INODE)) - goto out_unlock_inode; if ((inode->i_state & flags) != flags) { const int was_dirty = inode->i_state & I_DIRTY; inode_attach_wb(inode, NULL); - /* I_DIRTY_INODE supersedes I_DIRTY_TIME. */ - if (flags & I_DIRTY_INODE) - inode->i_state &= ~I_DIRTY_TIME; inode->i_state |= flags; /* @@ -2486,7 +2508,6 @@ out_unlock: if (wb) spin_unlock(&wb->list_lock); -out_unlock_inode: spin_unlock(&inode->i_lock); } EXPORT_SYMBOL(__mark_inode_dirty); --- linux-5.19.0.orig/fs/fs_context.c +++ linux-5.19.0/fs/fs_context.c @@ -548,7 +548,7 @@ param->key); } - if (size + len + 2 > PAGE_SIZE) + if (len > PAGE_SIZE || size + len + 2 > PAGE_SIZE) return invalf(fc, "VFS: Legacy: Cumulative options too large"); if (strchr(param->key, ',') || (param->type == fs_value_is_string && --- linux-5.19.0.orig/fs/fscache/cookie.c +++ linux-5.19.0/fs/fscache/cookie.c @@ -603,6 +603,14 @@ set_bit(FSCACHE_COOKIE_DO_PREP_TO_WRITE, &cookie->flags); queue = true; } + /* + * We could race with cookie_lru which may set LRU_DISCARD bit + * but has yet to run the cookie state machine. If this happens + * and another thread tries to use the cookie, clear LRU_DISCARD + * so we don't end up withdrawing the cookie while in use. + */ + if (test_and_clear_bit(FSCACHE_COOKIE_DO_LRU_DISCARD, &cookie->flags)) + fscache_see_cookie(cookie, fscache_cookie_see_lru_discard_clear); break; case FSCACHE_COOKIE_STATE_FAILED: @@ -739,6 +747,9 @@ fallthrough; case FSCACHE_COOKIE_STATE_FAILED: + if (test_and_clear_bit(FSCACHE_COOKIE_DO_INVALIDATE, &cookie->flags)) + fscache_end_cookie_access(cookie, fscache_access_invalidate_cookie_end); + if (atomic_read(&cookie->n_accesses) != 0) break; if (test_bit(FSCACHE_COOKIE_DO_RELINQUISH, &cookie->flags)) { @@ -1063,8 +1074,8 @@ return; case FSCACHE_COOKIE_STATE_LOOKING_UP: - __fscache_begin_cookie_access(cookie, fscache_access_invalidate_cookie); - set_bit(FSCACHE_COOKIE_DO_INVALIDATE, &cookie->flags); + if (!test_and_set_bit(FSCACHE_COOKIE_DO_INVALIDATE, &cookie->flags)) + __fscache_begin_cookie_access(cookie, fscache_access_invalidate_cookie); fallthrough; case FSCACHE_COOKIE_STATE_CREATING: spin_unlock(&cookie->lock); --- linux-5.19.0.orig/fs/fscache/volume.c +++ linux-5.19.0/fs/fscache/volume.c @@ -203,7 +203,11 @@ struct fscache_volume *volume; struct fscache_cache *cache; size_t klen, hlen; - char *key; + u8 *key; + + klen = strlen(volume_key); + if (klen > NAME_MAX) + return NULL; if (!coherency_data) coherency_len = 0; @@ -229,7 +233,6 @@ /* Stick the length on the front of the key and pad it out to make * hashing easier. */ - klen = strlen(volume_key); hlen = round_up(1 + klen + 1, sizeof(__le32)); key = kzalloc(hlen, GFP_KERNEL); if (!key) --- linux-5.19.0.orig/fs/fuse/control.c +++ linux-5.19.0/fs/fuse/control.c @@ -258,7 +258,7 @@ struct dentry *parent; char name[32]; - if (!fuse_control_sb) + if (!fuse_control_sb || fc->no_control) return 0; parent = fuse_control_sb->s_root; @@ -296,7 +296,7 @@ { int i; - if (!fuse_control_sb) + if (!fuse_control_sb || fc->no_control) return; for (i = fc->ctl_ndents - 1; i >= 0; i--) { --- linux-5.19.0.orig/fs/fuse/dir.c +++ linux-5.19.0/fs/fuse/dir.c @@ -464,29 +464,29 @@ { struct fuse_secctx *fctx; struct fuse_secctx_header *header; - void *ctx = NULL, *ptr; - u32 ctxlen, total_len = sizeof(*header); + struct lsmcontext lsmctx = { }; + void *ptr; + u32 total_len = sizeof(*header); int err, nr_ctx = 0; - const char *name; + const char *name = NULL; size_t namelen; err = security_dentry_init_security(entry, mode, &entry->d_name, - &name, &ctx, &ctxlen); - if (err) { - if (err != -EOPNOTSUPP) - goto out_err; - /* No LSM is supporting this security hook. Ignore error */ - ctxlen = 0; - ctx = NULL; - } + &name, &lsmctx); + + /* If no LSM is supporting this security hook ignore error */ + if (err && err != -EOPNOTSUPP) + goto out_err; - if (ctxlen) { + if (lsmctx.len) { nr_ctx = 1; namelen = strlen(name) + 1; err = -EIO; - if (WARN_ON(namelen > XATTR_NAME_MAX + 1 || ctxlen > S32_MAX)) + if (WARN_ON(namelen > XATTR_NAME_MAX + 1 || + lsmctx.len > S32_MAX)) goto out_err; - total_len += FUSE_REC_ALIGN(sizeof(*fctx) + namelen + ctxlen); + total_len += FUSE_REC_ALIGN(sizeof(*fctx) + namelen + + lsmctx.len); } err = -ENOMEM; @@ -499,19 +499,20 @@ ptr += sizeof(*header); if (nr_ctx) { fctx = ptr; - fctx->size = ctxlen; + fctx->size = lsmctx.len; ptr += sizeof(*fctx); strcpy(ptr, name); ptr += namelen; - memcpy(ptr, ctx, ctxlen); + memcpy(ptr, lsmctx.context, lsmctx.len); } *security_ctxlen = total_len; *security_ctx = header; err = 0; out_err: - kfree(ctx); + if (nr_ctx) + security_release_secctx(&lsmctx); return err; } @@ -537,6 +538,7 @@ struct fuse_file *ff; void *security_ctx = NULL; u32 security_ctxlen; + bool trunc = flags & O_TRUNC; /* Userspace expects S_IFREG in create mode */ BUG_ON((mode & S_IFMT) != S_IFREG); @@ -561,7 +563,7 @@ inarg.mode = mode; inarg.umask = current_umask(); - if (fm->fc->handle_killpriv_v2 && (flags & O_TRUNC) && + if (fm->fc->handle_killpriv_v2 && trunc && !(flags & O_EXCL) && !capable(CAP_FSETID)) { inarg.open_flags |= FUSE_OPEN_KILL_SUIDGID; } @@ -623,6 +625,10 @@ } else { file->private_data = ff; fuse_finish_open(inode, file); + if (fm->fc->atomic_o_trunc && trunc) + truncate_pagecache(inode, 0); + else if (!(ff->open_flags & FOPEN_KEEP_CACHE)) + invalidate_inode_pages2(inode->i_mapping); } return err; --- linux-5.19.0.orig/fs/fuse/file.c +++ linux-5.19.0/fs/fuse/file.c @@ -210,13 +210,9 @@ fi->attr_version = atomic64_inc_return(&fc->attr_version); i_size_write(inode, 0); spin_unlock(&fi->lock); - truncate_pagecache(inode, 0); file_update_time(file); fuse_invalidate_attr_mask(inode, FUSE_STATX_MODSIZE); - } else if (!(ff->open_flags & FOPEN_KEEP_CACHE)) { - invalidate_inode_pages2(inode->i_mapping); } - if ((file->f_mode & FMODE_WRITE) && fc->writeback_cache) fuse_link_write_file(file); } @@ -239,30 +235,38 @@ if (err) return err; - if (is_wb_truncate || dax_truncate) { + if (is_wb_truncate || dax_truncate) inode_lock(inode); - fuse_set_nowrite(inode); - } if (dax_truncate) { filemap_invalidate_lock(inode->i_mapping); err = fuse_dax_break_layouts(inode, 0, 0); if (err) - goto out; + goto out_inode_unlock; } + if (is_wb_truncate || dax_truncate) + fuse_set_nowrite(inode); + err = fuse_do_open(fm, get_node_id(inode), file, isdir); if (!err) fuse_finish_open(inode, file); -out: + if (is_wb_truncate || dax_truncate) + fuse_release_nowrite(inode); + if (!err) { + struct fuse_file *ff = file->private_data; + + if (fc->atomic_o_trunc && (file->f_flags & O_TRUNC)) + truncate_pagecache(inode, 0); + else if (!(ff->open_flags & FOPEN_KEEP_CACHE)) + invalidate_inode_pages2(inode->i_mapping); + } if (dax_truncate) filemap_invalidate_unlock(inode->i_mapping); - - if (is_wb_truncate | dax_truncate) { - fuse_release_nowrite(inode); +out_inode_unlock: + if (is_wb_truncate || dax_truncate) inode_unlock(inode); - } return err; } @@ -338,6 +342,15 @@ static int fuse_release(struct inode *inode, struct file *file) { + struct fuse_conn *fc = get_fuse_conn(inode); + + /* + * Dirty pages might remain despite write_inode_now() call from + * fuse_flush() due to writes racing with the close. + */ + if (fc->writeback_cache) + write_inode_now(inode, 1); + fuse_release_common(file, false); /* return value is ignored by VFS */ @@ -2951,11 +2964,9 @@ .mode = mode }; int err; - bool lock_inode = !(mode & FALLOC_FL_KEEP_SIZE) || - (mode & (FALLOC_FL_PUNCH_HOLE | - FALLOC_FL_ZERO_RANGE)); - - bool block_faults = FUSE_IS_DAX(inode) && lock_inode; + bool block_faults = FUSE_IS_DAX(inode) && + (!(mode & FALLOC_FL_KEEP_SIZE) || + (mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE))); if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)) @@ -2964,22 +2975,20 @@ if (fm->fc->no_fallocate) return -EOPNOTSUPP; - if (lock_inode) { - inode_lock(inode); - if (block_faults) { - filemap_invalidate_lock(inode->i_mapping); - err = fuse_dax_break_layouts(inode, 0, 0); - if (err) - goto out; - } + inode_lock(inode); + if (block_faults) { + filemap_invalidate_lock(inode->i_mapping); + err = fuse_dax_break_layouts(inode, 0, 0); + if (err) + goto out; + } - if (mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)) { - loff_t endbyte = offset + length - 1; - - err = fuse_writeback_range(inode, offset, endbyte); - if (err) - goto out; - } + if (mode & (FALLOC_FL_PUNCH_HOLE | FALLOC_FL_ZERO_RANGE)) { + loff_t endbyte = offset + length - 1; + + err = fuse_writeback_range(inode, offset, endbyte); + if (err) + goto out; } if (!(mode & FALLOC_FL_KEEP_SIZE) && @@ -2989,6 +2998,10 @@ goto out; } + err = file_modified(file); + if (err) + goto out; + if (!(mode & FALLOC_FL_KEEP_SIZE)) set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); @@ -3023,8 +3036,7 @@ if (block_faults) filemap_invalidate_unlock(inode->i_mapping); - if (lock_inode) - inode_unlock(inode); + inode_unlock(inode); fuse_flush_time_update(inode); --- linux-5.19.0.orig/fs/fuse/inode.c +++ linux-5.19.0/fs/fuse/inode.c @@ -180,6 +180,12 @@ inode->i_uid = make_kuid(fc->user_ns, attr->uid); inode->i_gid = make_kgid(fc->user_ns, attr->gid); inode->i_blocks = attr->blocks; + + /* Sanitize nsecs */ + attr->atimensec = min_t(u32, attr->atimensec, NSEC_PER_SEC - 1); + attr->mtimensec = min_t(u32, attr->mtimensec, NSEC_PER_SEC - 1); + attr->ctimensec = min_t(u32, attr->ctimensec, NSEC_PER_SEC - 1); + inode->i_atime.tv_sec = attr->atime; inode->i_atime.tv_nsec = attr->atimensec; /* mtime from server may be stale due to local buffered write */ --- linux-5.19.0.orig/fs/fuse/ioctl.c +++ linux-5.19.0/fs/fuse/ioctl.c @@ -9,6 +9,17 @@ #include #include +static ssize_t fuse_send_ioctl(struct fuse_mount *fm, struct fuse_args *args) +{ + ssize_t ret = fuse_simple_request(fm, args); + + /* Translate ENOSYS, which shouldn't be returned from fs */ + if (ret == -ENOSYS) + ret = -ENOTTY; + + return ret; +} + /* * CUSE servers compiled on 32bit broke on 64bit kernels because the * ABI was defined to be 'struct iovec' which is different on 32bit @@ -259,7 +270,7 @@ ap.args.out_pages = true; ap.args.out_argvar = true; - transferred = fuse_simple_request(fm, &ap.args); + transferred = fuse_send_ioctl(fm, &ap.args); err = transferred; if (transferred < 0) goto out; @@ -393,7 +404,7 @@ args.out_args[1].size = inarg.out_size; args.out_args[1].value = ptr; - err = fuse_simple_request(fm, &args); + err = fuse_send_ioctl(fm, &args); if (!err) { if (outarg.result < 0) err = outarg.result; --- linux-5.19.0.orig/fs/fuse/readdir.c +++ linux-5.19.0/fs/fuse/readdir.c @@ -77,8 +77,10 @@ goto unlock; addr = kmap_local_page(page); - if (!offset) + if (!offset) { clear_page(addr); + SetPageUptodate(page); + } memcpy(addr + offset, dirent, reclen); kunmap_local(addr); fi->rdc.size = (index << PAGE_SHIFT) + offset + reclen; @@ -516,6 +518,12 @@ page = find_get_page_flags(file->f_mapping, index, FGP_ACCESSED | FGP_LOCK); + /* Page gone missing, then re-added to cache, but not initialized? */ + if (page && !PageUptodate(page)) { + unlock_page(page); + put_page(page); + page = NULL; + } spin_lock(&fi->rdc.lock); if (!page) { /* --- linux-5.19.0.orig/fs/gfs2/ops_fstype.c +++ linux-5.19.0/fs/gfs2/ops_fstype.c @@ -180,7 +180,10 @@ pr_warn("Invalid block size\n"); return -EINVAL; } - + if (sb->sb_bsize_shift != ffs(sb->sb_bsize) - 1) { + pr_warn("Invalid block size shift\n"); + return -EINVAL; + } return 0; } @@ -383,8 +386,10 @@ if (!table[0]) table = sdp->sd_vfs->s_id; - strlcpy(sdp->sd_proto_name, proto, GFS2_FSNAME_LEN); - strlcpy(sdp->sd_table_name, table, GFS2_FSNAME_LEN); + BUILD_BUG_ON(GFS2_LOCKNAME_LEN > GFS2_FSNAME_LEN); + + strscpy(sdp->sd_proto_name, proto, GFS2_LOCKNAME_LEN); + strscpy(sdp->sd_table_name, table, GFS2_LOCKNAME_LEN); table = sdp->sd_table_name; while ((table = strchr(table, '/'))) @@ -1441,13 +1446,13 @@ switch (o) { case Opt_lockproto: - strlcpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN); + strscpy(args->ar_lockproto, param->string, GFS2_LOCKNAME_LEN); break; case Opt_locktable: - strlcpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN); + strscpy(args->ar_locktable, param->string, GFS2_LOCKNAME_LEN); break; case Opt_hostdata: - strlcpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN); + strscpy(args->ar_hostdata, param->string, GFS2_LOCKNAME_LEN); break; case Opt_spectator: args->ar_spectator = 1; --- linux-5.19.0.orig/fs/hfs/inode.c +++ linux-5.19.0/fs/hfs/inode.c @@ -458,6 +458,8 @@ /* panic? */ return -EIO; + if (HFS_I(main_inode)->cat_key.CName.len > HFS_NAMELEN) + return -EIO; fd.search_key->cat = HFS_I(main_inode)->cat_key; if (hfs_brec_find(&fd)) /* panic? */ --- linux-5.19.0.orig/fs/hfs/trans.c +++ linux-5.19.0/fs/hfs/trans.c @@ -109,7 +109,7 @@ if (nls_io) { wchar_t ch; - while (srclen > 0) { + while (srclen > 0 && dstlen > 0) { size = nls_io->char2uni(src, srclen, &ch); if (size < 0) { ch = '?'; --- linux-5.19.0.orig/fs/hugetlbfs/inode.c +++ linux-5.19.0/fs/hugetlbfs/inode.c @@ -370,6 +370,12 @@ } else { unlock_page(page); + if (PageHWPoison(page)) { + put_page(page); + retval = -EIO; + break; + } + /* * We have the page, copy it to user space buffer. */ @@ -1034,13 +1040,6 @@ static int hugetlbfs_error_remove_page(struct address_space *mapping, struct page *page) { - struct inode *inode = mapping->host; - pgoff_t index = page->index; - - remove_huge_page(page); - if (unlikely(hugetlb_unreserve_pages(inode, index, index + 1, 1))) - hugetlb_fix_reserve_counts(inode); - return 0; } @@ -1301,7 +1300,7 @@ case Opt_size: /* memparse() will accept a K/M/G without a digit */ - if (!isdigit(param->string[0])) + if (!param->string || !isdigit(param->string[0])) goto bad_val; ctx->max_size_opt = memparse(param->string, &rest); ctx->max_val_type = SIZE_STD; @@ -1311,7 +1310,7 @@ case Opt_nr_inodes: /* memparse() will accept a K/M/G without a digit */ - if (!isdigit(param->string[0])) + if (!param->string || !isdigit(param->string[0])) goto bad_val; ctx->nr_inodes = memparse(param->string, &rest); return 0; @@ -1327,7 +1326,7 @@ case Opt_min_size: /* memparse() will accept a K/M/G without a digit */ - if (!isdigit(param->string[0])) + if (!param->string || !isdigit(param->string[0])) goto bad_val; ctx->min_size_opt = memparse(param->string, &rest); ctx->min_val_type = SIZE_STD; --- linux-5.19.0.orig/fs/inode.c +++ linux-5.19.0/fs/inode.c @@ -192,8 +192,6 @@ inode->i_wb_frn_history = 0; #endif - if (security_inode_alloc(inode)) - goto out; spin_lock_init(&inode->i_lock); lockdep_set_class(&inode->i_lock, &sb->s_type->i_lock_key); @@ -228,6 +226,9 @@ inode->i_fsnotify_mask = 0; #endif inode->i_flctx = NULL; + + if (security_inode_alloc(inode)) + goto out; this_cpu_inc(nr_inodes); return 0; --- linux-5.19.0.orig/fs/internal.h +++ linux-5.19.0/fs/internal.h @@ -16,6 +16,7 @@ struct fs_context; struct user_namespace; struct pipe_inode_info; +struct iov_iter; /* * block/bdev.c @@ -101,6 +102,16 @@ extern struct file *alloc_empty_file(int, const struct cred *); extern struct file *alloc_empty_file_noaccount(int, const struct cred *); +static inline void put_file_access(struct file *file) +{ + if ((file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) { + i_readcount_dec(file->f_inode); + } else if (file->f_mode & FMODE_WRITER) { + put_write_access(file->f_inode); + __mnt_drop_write(file->f_path.mnt); + } +} + /* * super.c */ @@ -221,3 +232,5 @@ int setxattr_copy(const char __user *name, struct xattr_ctx *ctx); int do_setxattr(struct user_namespace *mnt_userns, struct dentry *dentry, struct xattr_ctx *ctx); + +ssize_t __kernel_write_iter(struct file *file, struct iov_iter *from, loff_t *pos); --- linux-5.19.0.orig/fs/iomap/buffered-io.c +++ linux-5.19.0/fs/iomap/buffered-io.c @@ -1412,7 +1412,7 @@ if (!count) folio_end_writeback(folio); done: - mapping_set_error(folio->mapping, error); + mapping_set_error(inode->i_mapping, error); return error; } --- linux-5.19.0.orig/fs/jbd2/commit.c +++ linux-5.19.0/fs/jbd2/commit.c @@ -553,13 +553,13 @@ */ jbd2_journal_switch_revoke_table(journal); + write_lock(&journal->j_state_lock); /* * Reserved credits cannot be claimed anymore, free them */ atomic_sub(atomic_read(&journal->j_reserved_credits), &commit_transaction->t_outstanding_credits); - write_lock(&journal->j_state_lock); trace_jbd2_commit_flushing(journal, commit_transaction); stats.run.rs_flushing = jiffies; stats.run.rs_locked = jbd2_time_diff(stats.run.rs_locked, @@ -570,7 +570,7 @@ journal->j_running_transaction = NULL; start_time = ktime_get(); commit_transaction->t_log_start = journal->j_head; - wake_up(&journal->j_wait_transaction_locked); + wake_up_all(&journal->j_wait_transaction_locked); write_unlock(&journal->j_state_lock); jbd_debug(3, "JBD2: commit phase 2a\n"); --- linux-5.19.0.orig/fs/jbd2/journal.c +++ linux-5.19.0/fs/jbd2/journal.c @@ -926,10 +926,16 @@ for (i = j_fc_off - 1; i >= j_fc_off - num_blks; i--) { bh = journal->j_fc_wbuf[i]; wait_on_buffer(bh); + /* + * Update j_fc_off so jbd2_fc_release_bufs can release remain + * buffer head. + */ + if (unlikely(!buffer_uptodate(bh))) { + journal->j_fc_off = i + 1; + return -EIO; + } put_bh(bh); journal->j_fc_wbuf[i] = NULL; - if (unlikely(!buffer_uptodate(bh))) - return -EIO; } return 0; --- linux-5.19.0.orig/fs/jbd2/recovery.c +++ linux-5.19.0/fs/jbd2/recovery.c @@ -256,6 +256,7 @@ err = journal->j_fc_replay_callback(journal, bh, pass, next_fc_block - journal->j_fc_first, expected_commit_id); + brelse(bh); next_fc_block++; if (err < 0 || err == JBD2_FC_REPLAY_STOP) break; --- linux-5.19.0.orig/fs/jbd2/transaction.c +++ linux-5.19.0/fs/jbd2/transaction.c @@ -168,7 +168,7 @@ int need_to_start; tid_t tid = journal->j_running_transaction->t_tid; - prepare_to_wait(&journal->j_wait_transaction_locked, &wait, + prepare_to_wait_exclusive(&journal->j_wait_transaction_locked, &wait, TASK_UNINTERRUPTIBLE); need_to_start = !tid_geq(journal->j_commit_request, tid); read_unlock(&journal->j_state_lock); @@ -194,7 +194,7 @@ read_unlock(&journal->j_state_lock); return; } - prepare_to_wait(&journal->j_wait_transaction_locked, &wait, + prepare_to_wait_exclusive(&journal->j_wait_transaction_locked, &wait, TASK_UNINTERRUPTIBLE); read_unlock(&journal->j_state_lock); /* @@ -920,7 +920,7 @@ write_lock(&journal->j_state_lock); --journal->j_barrier_count; write_unlock(&journal->j_state_lock); - wake_up(&journal->j_wait_transaction_locked); + wake_up_all(&journal->j_wait_transaction_locked); } static void warn_dirty_buffer(struct buffer_head *bh) @@ -1486,8 +1486,6 @@ struct journal_head *jh; int ret = 0; - if (is_handle_aborted(handle)) - return -EROFS; if (!buffer_jbd(bh)) return -EUCLEAN; @@ -1534,6 +1532,18 @@ journal = transaction->t_journal; spin_lock(&jh->b_state_lock); + if (is_handle_aborted(handle)) { + /* + * Check journal aborting with @jh->b_state_lock locked, + * since 'jh->b_transaction' could be replaced with + * 'jh->b_next_transaction' during old transaction + * committing if journal aborted, which may fail + * assertion on 'jh->b_frozen_data == NULL'. + */ + ret = -EROFS; + goto out_unlock_bh; + } + if (jh->b_modified == 0) { /* * This buffer's got modified and becoming part --- linux-5.19.0.orig/fs/jfs/jfs_dmap.c +++ linux-5.19.0/fs/jfs/jfs_dmap.c @@ -155,7 +155,7 @@ struct bmap *bmp; struct dbmap_disk *dbmp_le; struct metapage *mp; - int i; + int i, err; /* * allocate/initialize the in-memory bmap descriptor @@ -170,8 +170,8 @@ BMAPBLKNO << JFS_SBI(ipbmap->i_sb)->l2nbperpage, PSIZE, 0); if (mp == NULL) { - kfree(bmp); - return -EIO; + err = -EIO; + goto err_kfree_bmp; } /* copy the on-disk bmap descriptor to its in-memory version. */ @@ -181,9 +181,8 @@ bmp->db_l2nbperpage = le32_to_cpu(dbmp_le->dn_l2nbperpage); bmp->db_numag = le32_to_cpu(dbmp_le->dn_numag); if (!bmp->db_numag) { - release_metapage(mp); - kfree(bmp); - return -EINVAL; + err = -EINVAL; + goto err_release_metapage; } bmp->db_maxlevel = le32_to_cpu(dbmp_le->dn_maxlevel); @@ -194,6 +193,16 @@ bmp->db_agwidth = le32_to_cpu(dbmp_le->dn_agwidth); bmp->db_agstart = le32_to_cpu(dbmp_le->dn_agstart); bmp->db_agl2size = le32_to_cpu(dbmp_le->dn_agl2size); + if (bmp->db_agl2size > L2MAXL2SIZE - L2MAXAG) { + err = -EINVAL; + goto err_release_metapage; + } + + if (((bmp->db_mapsize - 1) >> bmp->db_agl2size) > MAXAG) { + err = -EINVAL; + goto err_release_metapage; + } + for (i = 0; i < MAXAG; i++) bmp->db_agfree[i] = le64_to_cpu(dbmp_le->dn_agfree[i]); bmp->db_agsize = le64_to_cpu(dbmp_le->dn_agsize); @@ -214,6 +223,12 @@ BMAP_LOCK_INIT(bmp); return (0); + +err_release_metapage: + release_metapage(mp); +err_kfree_bmp: + kfree(bmp); + return err; } --- linux-5.19.0.orig/fs/jfs/namei.c +++ linux-5.19.0/fs/jfs/namei.c @@ -946,7 +946,7 @@ if (ssize <= IDATASIZE) { ip->i_op = &jfs_fast_symlink_inode_operations; - ip->i_link = JFS_IP(ip)->i_inline; + ip->i_link = JFS_IP(ip)->i_inline_all; memcpy(ip->i_link, name, ssize); ip->i_size = ssize - 1; --- linux-5.19.0.orig/fs/kernfs/dir.c +++ linux-5.19.0/fs/kernfs/dir.c @@ -1343,14 +1343,17 @@ { struct kernfs_node *pos; + /* Short-circuit if non-root @kn has already finished removal. */ + if (!kn) + return; + lockdep_assert_held_write(&kernfs_root(kn)->kernfs_rwsem); /* - * Short-circuit if non-root @kn has already finished removal. * This is for kernfs_remove_self() which plays with active ref * after removal. */ - if (!kn || (kn->parent && RB_EMPTY_NODE(&kn->rb))) + if (kn->parent && RB_EMPTY_NODE(&kn->rb)) return; pr_debug("kernfs %s: removing\n", kn->name); @@ -1582,8 +1585,11 @@ down_write(&root->kernfs_rwsem); kn = kernfs_find_ns(parent, name, ns); - if (kn) + if (kn) { + kernfs_get(kn); __kernfs_remove(kn); + kernfs_put(kn); + } up_write(&root->kernfs_rwsem); --- linux-5.19.0.orig/fs/ksmbd/mgmt/tree_connect.c +++ linux-5.19.0/fs/ksmbd/mgmt/tree_connect.c @@ -18,7 +18,7 @@ struct ksmbd_tree_conn_status ksmbd_tree_conn_connect(struct ksmbd_session *sess, char *share_name) { - struct ksmbd_tree_conn_status status = {-EINVAL, NULL}; + struct ksmbd_tree_conn_status status = {-ENOENT, NULL}; struct ksmbd_tree_connect_response *resp = NULL; struct ksmbd_share_config *sc; struct ksmbd_tree_connect *tree_conn = NULL; --- linux-5.19.0.orig/fs/ksmbd/mgmt/user_session.c +++ linux-5.19.0/fs/ksmbd/mgmt/user_session.c @@ -106,15 +106,17 @@ entry->method = method; entry->id = ksmbd_ipc_id_alloc(); if (entry->id < 0) - goto error; + goto free_entry; resp = ksmbd_rpc_open(sess, entry->id); if (!resp) - goto error; + goto free_id; kvfree(resp); return entry->id; -error: +free_id: + ksmbd_rpc_id_free(entry->id); +free_entry: list_del(&entry->list); kfree(entry); return -EINVAL; --- linux-5.19.0.orig/fs/ksmbd/server.c +++ linux-5.19.0/fs/ksmbd/server.c @@ -235,10 +235,8 @@ if (work->sess && work->sess->enc && work->encrypted && conn->ops->encrypt_resp) { rc = conn->ops->encrypt_resp(work); - if (rc < 0) { + if (rc < 0) conn->ops->set_rsp_status(work, STATUS_DATA_ERROR); - goto send; - } } ksmbd_conn_write(work); --- linux-5.19.0.orig/fs/ksmbd/smb2misc.c +++ linux-5.19.0/fs/ksmbd/smb2misc.c @@ -90,11 +90,6 @@ *off = 0; *len = 0; - /* error reqeusts do not have data area */ - if (hdr->Status && hdr->Status != STATUS_MORE_PROCESSING_REQUIRED && - (((struct smb2_err_rsp *)hdr)->StructureSize) == SMB2_ERROR_STRUCTURE_SIZE2_LE) - return ret; - /* * Following commands have data areas so we have to get the location * of the data buffer offset and data buffer length for the particular @@ -136,8 +131,11 @@ *len = le16_to_cpu(((struct smb2_read_req *)hdr)->ReadChannelInfoLength); break; case SMB2_WRITE: - if (((struct smb2_write_req *)hdr)->DataOffset) { - *off = le16_to_cpu(((struct smb2_write_req *)hdr)->DataOffset); + if (((struct smb2_write_req *)hdr)->DataOffset || + ((struct smb2_write_req *)hdr)->Length) { + *off = max_t(unsigned int, + le16_to_cpu(((struct smb2_write_req *)hdr)->DataOffset), + offsetof(struct smb2_write_req, Buffer)); *len = le32_to_cpu(((struct smb2_write_req *)hdr)->Length); break; } --- linux-5.19.0.orig/fs/ksmbd/smb2pdu.c +++ linux-5.19.0/fs/ksmbd/smb2pdu.c @@ -535,9 +535,10 @@ struct smb2_query_info_req *req; req = smb2_get_msg(work->request_buf); - if (req->InfoType == SMB2_O_INFO_FILE && - (req->FileInfoClass == FILE_FULL_EA_INFORMATION || - req->FileInfoClass == FILE_ALL_INFORMATION)) + if ((req->InfoType == SMB2_O_INFO_FILE && + (req->FileInfoClass == FILE_FULL_EA_INFORMATION || + req->FileInfoClass == FILE_ALL_INFORMATION)) || + req->InfoType == SMB2_O_INFO_SECURITY) sz = large_sz; } @@ -1139,12 +1140,16 @@ status); rsp->hdr.Status = status; rc = -EINVAL; + kfree(conn->preauth_info); + conn->preauth_info = NULL; goto err_out; } rc = init_smb3_11_server(conn); if (rc < 0) { rsp->hdr.Status = STATUS_INVALID_PARAMETER; + kfree(conn->preauth_info); + conn->preauth_info = NULL; goto err_out; } @@ -1925,8 +1930,9 @@ rsp->hdr.Status = STATUS_SUCCESS; rc = 0; break; + case -ENOENT: case KSMBD_TREE_CONN_STATUS_NO_SHARE: - rsp->hdr.Status = STATUS_BAD_NETWORK_PATH; + rsp->hdr.Status = STATUS_BAD_NETWORK_NAME; break; case -ENOMEM: case KSMBD_TREE_CONN_STATUS_NOMEM: @@ -2039,6 +2045,7 @@ ksmbd_close_tree_conn_fds(work); ksmbd_tree_conn_disconnect(sess, tcon); + work->tcon = NULL; return 0; } @@ -2308,15 +2315,15 @@ name += strlen(name) + 1) { ksmbd_debug(SMB, "%s, len %zd\n", name, strlen(name)); - if (strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && - strncmp(&name[XATTR_USER_PREFIX_LEN], DOS_ATTRIBUTE_PREFIX, - DOS_ATTRIBUTE_PREFIX_LEN) && - strncmp(&name[XATTR_USER_PREFIX_LEN], STREAM_PREFIX, STREAM_PREFIX_LEN)) - continue; - - err = ksmbd_vfs_remove_xattr(user_ns, path->dentry, name); - if (err) - ksmbd_debug(SMB, "remove xattr failed : %s\n", name); + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN) && + !strncmp(&name[XATTR_USER_PREFIX_LEN], STREAM_PREFIX, + STREAM_PREFIX_LEN)) { + err = ksmbd_vfs_remove_xattr(user_ns, path->dentry, + name); + if (err) + ksmbd_debug(SMB, "remove xattr failed : %s\n", + name); + } } out: kvfree(xattr_list); @@ -2969,7 +2976,7 @@ goto err_out; rc = build_sec_desc(user_ns, - pntsd, NULL, + pntsd, NULL, 0, OWNER_SECINFO | GROUP_SECINFO | DACL_SECINFO, @@ -3791,11 +3798,6 @@ return 0; } -static void restart_ctx(struct dir_context *ctx) -{ - ctx->pos = 0; -} - static int verify_info_level(int info_level) { switch (info_level) { @@ -3814,6 +3816,15 @@ return 0; } +static int smb2_resp_buf_len(struct ksmbd_work *work, unsigned short hdr2_len) +{ + int free_len; + + free_len = (int)(work->response_sz - + (get_rfc1002_len(work->response_buf) + 4)) - hdr2_len; + return free_len; +} + static int smb2_calc_max_out_buf_len(struct ksmbd_work *work, unsigned short hdr2_len, unsigned int out_buf_len) @@ -3823,9 +3834,7 @@ if (out_buf_len > work->conn->vals->max_trans_size) return -EINVAL; - free_len = (int)(work->response_sz - - (get_rfc1002_len(work->response_buf) + 4)) - - hdr2_len; + free_len = smb2_resp_buf_len(work, hdr2_len); if (free_len < 0) return -EINVAL; @@ -3897,7 +3906,6 @@ if (srch_flag & SMB2_REOPEN || srch_flag & SMB2_RESTART_SCANS) { ksmbd_debug(SMB, "Restart directory scan\n"); generic_file_llseek(dir_fp->filp, 0, SEEK_SET); - restart_ctx(&dir_fp->readdir_data.ctx); } memset(&d_info, 0, sizeof(struct ksmbd_dir_info)); @@ -3944,11 +3952,9 @@ */ if (!d_info.out_buf_len && !d_info.num_entry) goto no_buf_len; - if (rc == 0) - restart_ctx(&dir_fp->readdir_data.ctx); - if (rc == -ENOSPC) + if (rc > 0 || rc == -ENOSPC) rc = 0; - if (rc) + else if (rc) goto err_out; d_info.wptr = d_info.rptr; @@ -4005,6 +4011,8 @@ rsp->hdr.Status = STATUS_NO_MEMORY; else if (rc == -EFAULT) rsp->hdr.Status = STATUS_INVALID_INFO_CLASS; + else if (rc == -EIO) + rsp->hdr.Status = STATUS_FILE_CORRUPT_ERROR; if (!rsp->hdr.Status) rsp->hdr.Status = STATUS_UNEXPECTED_IO_ERROR; @@ -5088,10 +5096,10 @@ struct smb_ntsd *pntsd = (struct smb_ntsd *)rsp->Buffer, *ppntsd = NULL; struct smb_fattr fattr = {{0}}; struct inode *inode; - __u32 secdesclen; + __u32 secdesclen = 0; unsigned int id = KSMBD_NO_FID, pid = KSMBD_NO_FID; int addition_info = le32_to_cpu(req->AdditionalInformation); - int rc; + int rc = 0, ppntsd_size = 0; if (addition_info & ~(OWNER_SECINFO | GROUP_SECINFO | DACL_SECINFO | PROTECTED_DACL_SECINFO | @@ -5137,11 +5145,14 @@ if (test_share_config_flag(work->tcon->share_conf, KSMBD_SHARE_FLAG_ACL_XATTR)) - ksmbd_vfs_get_sd_xattr(work->conn, user_ns, - fp->filp->f_path.dentry, &ppntsd); - - rc = build_sec_desc(user_ns, pntsd, ppntsd, addition_info, - &secdesclen, &fattr); + ppntsd_size = ksmbd_vfs_get_sd_xattr(work->conn, user_ns, + fp->filp->f_path.dentry, + &ppntsd); + + /* Check if sd buffer size exceeds response buffer size */ + if (smb2_resp_buf_len(work, 8) > ppntsd_size) + rc = build_sec_desc(user_ns, pntsd, ppntsd, ppntsd_size, + addition_info, &secdesclen, &fattr); posix_acl_release(fattr.cf_acls); posix_acl_release(fattr.cf_dacls); kfree(ppntsd); @@ -6495,14 +6506,12 @@ writethrough = true; if (is_rdma_channel == false) { - if ((u64)le16_to_cpu(req->DataOffset) + length > - get_rfc1002_len(work->request_buf)) { - pr_err("invalid write data offset %u, smb_len %u\n", - le16_to_cpu(req->DataOffset), - get_rfc1002_len(work->request_buf)); + if (le16_to_cpu(req->DataOffset) < + offsetof(struct smb2_write_req, Buffer)) { err = -EINVAL; goto out; } + data_buf = (char *)(((char *)&req->hdr.ProtocolId) + le16_to_cpu(req->DataOffset)); @@ -7618,11 +7627,16 @@ goto out; } - if (in_buf_len < sizeof(struct validate_negotiate_info_req)) - return -EINVAL; + if (in_buf_len < offsetof(struct validate_negotiate_info_req, + Dialects)) { + ret = -EINVAL; + goto out; + } - if (out_buf_len < sizeof(struct validate_negotiate_info_rsp)) - return -EINVAL; + if (out_buf_len < sizeof(struct validate_negotiate_info_rsp)) { + ret = -EINVAL; + goto out; + } ret = fsctl_validate_negotiate_info(conn, (struct validate_negotiate_info_req *)&req->Buffer[0], --- linux-5.19.0.orig/fs/ksmbd/smb_common.c +++ linux-5.19.0/fs/ksmbd/smb_common.c @@ -4,6 +4,8 @@ * Copyright (C) 2018 Namjae Jeon */ +#include + #include "smb_common.h" #include "server.h" #include "misc.h" @@ -625,8 +627,8 @@ if (!cred) return -ENOMEM; - cred->fsuid = make_kuid(current_user_ns(), uid); - cred->fsgid = make_kgid(current_user_ns(), gid); + cred->fsuid = make_kuid(&init_user_ns, uid); + cred->fsgid = make_kgid(&init_user_ns, gid); gi = groups_alloc(0); if (!gi) { --- linux-5.19.0.orig/fs/ksmbd/smbacl.c +++ linux-5.19.0/fs/ksmbd/smbacl.c @@ -690,6 +690,7 @@ static void set_ntacl_dacl(struct user_namespace *user_ns, struct smb_acl *pndacl, struct smb_acl *nt_dacl, + unsigned int aces_size, const struct smb_sid *pownersid, const struct smb_sid *pgrpsid, struct smb_fattr *fattr) @@ -703,9 +704,19 @@ if (nt_num_aces) { ntace = (struct smb_ace *)((char *)nt_dacl + sizeof(struct smb_acl)); for (i = 0; i < nt_num_aces; i++) { - memcpy((char *)pndace + size, ntace, le16_to_cpu(ntace->size)); - size += le16_to_cpu(ntace->size); - ntace = (struct smb_ace *)((char *)ntace + le16_to_cpu(ntace->size)); + unsigned short nt_ace_size; + + if (offsetof(struct smb_ace, access_req) > aces_size) + break; + + nt_ace_size = le16_to_cpu(ntace->size); + if (nt_ace_size > aces_size) + break; + + memcpy((char *)pndace + size, ntace, nt_ace_size); + size += nt_ace_size; + aces_size -= nt_ace_size; + ntace = (struct smb_ace *)((char *)ntace + nt_ace_size); num_aces++; } } @@ -878,7 +889,7 @@ /* Convert permission bits from mode to equivalent CIFS ACL */ int build_sec_desc(struct user_namespace *user_ns, struct smb_ntsd *pntsd, struct smb_ntsd *ppntsd, - int addition_info, __u32 *secdesclen, + int ppntsd_size, int addition_info, __u32 *secdesclen, struct smb_fattr *fattr) { int rc = 0; @@ -938,15 +949,25 @@ if (!ppntsd) { set_mode_dacl(user_ns, dacl_ptr, fattr); - } else if (!ppntsd->dacloffset) { - goto out; } else { struct smb_acl *ppdacl_ptr; + unsigned int dacl_offset = le32_to_cpu(ppntsd->dacloffset); + int ppdacl_size, ntacl_size = ppntsd_size - dacl_offset; + + if (!dacl_offset || + (dacl_offset + sizeof(struct smb_acl) > ppntsd_size)) + goto out; + + ppdacl_ptr = (struct smb_acl *)((char *)ppntsd + dacl_offset); + ppdacl_size = le16_to_cpu(ppdacl_ptr->size); + if (ppdacl_size > ntacl_size || + ppdacl_size < sizeof(struct smb_acl)) + goto out; - ppdacl_ptr = (struct smb_acl *)((char *)ppntsd + - le32_to_cpu(ppntsd->dacloffset)); set_ntacl_dacl(user_ns, dacl_ptr, ppdacl_ptr, - nowner_sid_ptr, ngroup_sid_ptr, fattr); + ntacl_size - sizeof(struct smb_acl), + nowner_sid_ptr, ngroup_sid_ptr, + fattr); } pntsd->dacloffset = cpu_to_le32(offset); offset += le16_to_cpu(dacl_ptr->size); @@ -980,24 +1001,31 @@ struct smb_sid owner_sid, group_sid; struct dentry *parent = path->dentry->d_parent; struct user_namespace *user_ns = mnt_user_ns(path->mnt); - int inherited_flags = 0, flags = 0, i, ace_cnt = 0, nt_size = 0; - int rc = 0, num_aces, dacloffset, pntsd_type, acl_len; + int inherited_flags = 0, flags = 0, i, ace_cnt = 0, nt_size = 0, pdacl_size; + int rc = 0, num_aces, dacloffset, pntsd_type, pntsd_size, acl_len, aces_size; char *aces_base; bool is_dir = S_ISDIR(d_inode(path->dentry)->i_mode); - acl_len = ksmbd_vfs_get_sd_xattr(conn, user_ns, - parent, &parent_pntsd); - if (acl_len <= 0) + pntsd_size = ksmbd_vfs_get_sd_xattr(conn, user_ns, + parent, &parent_pntsd); + if (pntsd_size <= 0) return -ENOENT; dacloffset = le32_to_cpu(parent_pntsd->dacloffset); - if (!dacloffset) { + if (!dacloffset || (dacloffset + sizeof(struct smb_acl) > pntsd_size)) { rc = -EINVAL; goto free_parent_pntsd; } parent_pdacl = (struct smb_acl *)((char *)parent_pntsd + dacloffset); + acl_len = pntsd_size - dacloffset; num_aces = le32_to_cpu(parent_pdacl->num_aces); pntsd_type = le16_to_cpu(parent_pntsd->type); + pdacl_size = le16_to_cpu(parent_pdacl->size); + + if (pdacl_size > acl_len || pdacl_size < sizeof(struct smb_acl)) { + rc = -EINVAL; + goto free_parent_pntsd; + } aces_base = kmalloc(sizeof(struct smb_ace) * num_aces * 2, GFP_KERNEL); if (!aces_base) { @@ -1008,11 +1036,23 @@ aces = (struct smb_ace *)aces_base; parent_aces = (struct smb_ace *)((char *)parent_pdacl + sizeof(struct smb_acl)); + aces_size = acl_len - sizeof(struct smb_acl); if (pntsd_type & DACL_AUTO_INHERITED) inherited_flags = INHERITED_ACE; for (i = 0; i < num_aces; i++) { + int pace_size; + + if (offsetof(struct smb_ace, access_req) > aces_size) + break; + + pace_size = le16_to_cpu(parent_aces->size); + if (pace_size > aces_size) + break; + + aces_size -= pace_size; + flags = parent_aces->flags; if (!smb_inherit_flags(flags, is_dir)) goto pass; @@ -1057,8 +1097,7 @@ aces = (struct smb_ace *)((char *)aces + le16_to_cpu(aces->size)); ace_cnt++; pass: - parent_aces = - (struct smb_ace *)((char *)parent_aces + le16_to_cpu(parent_aces->size)); + parent_aces = (struct smb_ace *)((char *)parent_aces + pace_size); } if (nt_size > 0) { @@ -1153,7 +1192,7 @@ struct smb_ntsd *pntsd = NULL; struct smb_acl *pdacl; struct posix_acl *posix_acls; - int rc = 0, acl_size; + int rc = 0, pntsd_size, acl_size, aces_size, pdacl_size, dacl_offset; struct smb_sid sid; int granted = le32_to_cpu(*pdaccess & ~FILE_MAXIMAL_ACCESS_LE); struct smb_ace *ace; @@ -1162,37 +1201,33 @@ struct smb_ace *others_ace = NULL; struct posix_acl_entry *pa_entry; unsigned int sid_type = SIDOWNER; - char *end_of_acl; + unsigned short ace_size; ksmbd_debug(SMB, "check permission using windows acl\n"); - acl_size = ksmbd_vfs_get_sd_xattr(conn, user_ns, - path->dentry, &pntsd); - if (acl_size <= 0 || !pntsd || !pntsd->dacloffset) { - kfree(pntsd); - return 0; - } + pntsd_size = ksmbd_vfs_get_sd_xattr(conn, user_ns, + path->dentry, &pntsd); + if (pntsd_size <= 0 || !pntsd) + goto err_out; + + dacl_offset = le32_to_cpu(pntsd->dacloffset); + if (!dacl_offset || + (dacl_offset + sizeof(struct smb_acl) > pntsd_size)) + goto err_out; pdacl = (struct smb_acl *)((char *)pntsd + le32_to_cpu(pntsd->dacloffset)); - end_of_acl = ((char *)pntsd) + acl_size; - if (end_of_acl <= (char *)pdacl) { - kfree(pntsd); - return 0; - } + acl_size = pntsd_size - dacl_offset; + pdacl_size = le16_to_cpu(pdacl->size); - if (end_of_acl < (char *)pdacl + le16_to_cpu(pdacl->size) || - le16_to_cpu(pdacl->size) < sizeof(struct smb_acl)) { - kfree(pntsd); - return 0; - } + if (pdacl_size > acl_size || pdacl_size < sizeof(struct smb_acl)) + goto err_out; if (!pdacl->num_aces) { - if (!(le16_to_cpu(pdacl->size) - sizeof(struct smb_acl)) && + if (!(pdacl_size - sizeof(struct smb_acl)) && *pdaccess & ~(FILE_READ_CONTROL_LE | FILE_WRITE_DAC_LE)) { rc = -EACCES; goto err_out; } - kfree(pntsd); - return 0; + goto err_out; } if (*pdaccess & FILE_MAXIMAL_ACCESS_LE) { @@ -1200,11 +1235,16 @@ DELETE; ace = (struct smb_ace *)((char *)pdacl + sizeof(struct smb_acl)); + aces_size = acl_size - sizeof(struct smb_acl); for (i = 0; i < le32_to_cpu(pdacl->num_aces); i++) { + if (offsetof(struct smb_ace, access_req) > aces_size) + break; + ace_size = le16_to_cpu(ace->size); + if (ace_size > aces_size) + break; + aces_size -= ace_size; granted |= le32_to_cpu(ace->access_req); ace = (struct smb_ace *)((char *)ace + le16_to_cpu(ace->size)); - if (end_of_acl < (char *)ace) - goto err_out; } if (!pdacl->num_aces) @@ -1216,7 +1256,15 @@ id_to_sid(uid, sid_type, &sid); ace = (struct smb_ace *)((char *)pdacl + sizeof(struct smb_acl)); + aces_size = acl_size - sizeof(struct smb_acl); for (i = 0; i < le32_to_cpu(pdacl->num_aces); i++) { + if (offsetof(struct smb_ace, access_req) > aces_size) + break; + ace_size = le16_to_cpu(ace->size); + if (ace_size > aces_size) + break; + aces_size -= ace_size; + if (!compare_sids(&sid, &ace->sid) || !compare_sids(&sid_unix_NFS_mode, &ace->sid)) { found = 1; @@ -1226,8 +1274,6 @@ others_ace = ace; ace = (struct smb_ace *)((char *)ace + le16_to_cpu(ace->size)); - if (end_of_acl < (char *)ace) - goto err_out; } if (*pdaccess & FILE_MAXIMAL_ACCESS_LE && found) { --- linux-5.19.0.orig/fs/ksmbd/smbacl.h +++ linux-5.19.0/fs/ksmbd/smbacl.h @@ -193,7 +193,7 @@ int parse_sec_desc(struct user_namespace *user_ns, struct smb_ntsd *pntsd, int acl_len, struct smb_fattr *fattr); int build_sec_desc(struct user_namespace *user_ns, struct smb_ntsd *pntsd, - struct smb_ntsd *ppntsd, int addition_info, + struct smb_ntsd *ppntsd, int ppntsd_size, int addition_info, __u32 *secdesclen, struct smb_fattr *fattr); int init_acl_state(struct posix_acl_state *state, int cnt); void free_acl_state(struct posix_acl_state *state); --- linux-5.19.0.orig/fs/ksmbd/vfs.c +++ linux-5.19.0/fs/ksmbd/vfs.c @@ -1540,6 +1540,11 @@ } *pntsd = acl.sd_buf; + if (acl.sd_size < sizeof(struct smb_ntsd)) { + pr_err("sd size is invalid\n"); + goto out_free; + } + (*pntsd)->osidoffset = cpu_to_le32(le32_to_cpu((*pntsd)->osidoffset) - NDR_NTSD_OFFSETOF); (*pntsd)->gsidoffset = cpu_to_le32(le32_to_cpu((*pntsd)->gsidoffset) - @@ -1780,9 +1785,9 @@ ret = vfs_copy_file_range(src_fp->filp, src_off, dst_fp->filp, dst_off, len, 0); if (ret == -EOPNOTSUPP || ret == -EXDEV) - ret = generic_copy_file_range(src_fp->filp, src_off, - dst_fp->filp, dst_off, - len, 0); + ret = vfs_copy_file_range(src_fp->filp, src_off, + dst_fp->filp, dst_off, len, + COPY_FILE_SPLICE); if (ret < 0) return ret; --- linux-5.19.0.orig/fs/libfs.c +++ linux-5.19.0/fs/libfs.c @@ -994,8 +994,8 @@ EXPORT_SYMBOL_GPL(simple_attr_read); /* interpret the buffer as a number to call the set function with */ -ssize_t simple_attr_write(struct file *file, const char __user *buf, - size_t len, loff_t *ppos) +static ssize_t simple_attr_write_xsigned(struct file *file, const char __user *buf, + size_t len, loff_t *ppos, bool is_signed) { struct simple_attr *attr; unsigned long long val; @@ -1016,7 +1016,10 @@ goto out; attr->set_buf[size] = '\0'; - ret = kstrtoull(attr->set_buf, 0, &val); + if (is_signed) + ret = kstrtoll(attr->set_buf, 0, &val); + else + ret = kstrtoull(attr->set_buf, 0, &val); if (ret) goto out; ret = attr->set(attr->data, val); @@ -1026,8 +1029,21 @@ mutex_unlock(&attr->mutex); return ret; } + +ssize_t simple_attr_write(struct file *file, const char __user *buf, + size_t len, loff_t *ppos) +{ + return simple_attr_write_xsigned(file, buf, len, ppos, false); +} EXPORT_SYMBOL_GPL(simple_attr_write); +ssize_t simple_attr_write_signed(struct file *file, const char __user *buf, + size_t len, loff_t *ppos) +{ + return simple_attr_write_xsigned(file, buf, len, ppos, true); +} +EXPORT_SYMBOL_GPL(simple_attr_write_signed); + /** * generic_fh_to_dentry - generic helper for the fh_to_dentry export operation * @sb: filesystem to do the file handle conversion on --- linux-5.19.0.orig/fs/lockd/svc4proc.c +++ linux-5.19.0/fs/lockd/svc4proc.c @@ -32,6 +32,10 @@ if (!nlmsvc_ops) return nlm_lck_denied_nolocks; + if (lock->lock_start > OFFSET_MAX || + (lock->lock_len && ((lock->lock_len - 1) > (OFFSET_MAX - lock->lock_start)))) + return nlm4_fbig; + /* Obtain host handle */ if (!(host = nlmsvc_lookup_host(rqstp, lock->caller, lock->len)) || (argp->monitor && nsm_monitor(host) < 0)) @@ -50,6 +54,10 @@ /* Set up the missing parts of the file_lock structure */ lock->fl.fl_file = file->f_file[mode]; lock->fl.fl_pid = current->tgid; + lock->fl.fl_start = (loff_t)lock->lock_start; + lock->fl.fl_end = lock->lock_len ? + (loff_t)(lock->lock_start + lock->lock_len - 1) : + OFFSET_MAX; lock->fl.fl_lmops = &nlmsvc_lock_operations; nlmsvc_locks_init_private(&lock->fl, host, (pid_t)lock->svid); if (!lock->fl.fl_owner) { --- linux-5.19.0.orig/fs/lockd/svcsubs.c +++ linux-5.19.0/fs/lockd/svcsubs.c @@ -176,7 +176,7 @@ } } -static int nlm_unlock_files(struct nlm_file *file, fl_owner_t owner) +static int nlm_unlock_files(struct nlm_file *file, const struct file_lock *fl) { struct file_lock lock; @@ -184,12 +184,15 @@ lock.fl_type = F_UNLCK; lock.fl_start = 0; lock.fl_end = OFFSET_MAX; - lock.fl_owner = owner; - if (file->f_file[O_RDONLY] && - vfs_lock_file(file->f_file[O_RDONLY], F_SETLK, &lock, NULL)) + lock.fl_owner = fl->fl_owner; + lock.fl_pid = fl->fl_pid; + lock.fl_flags = FL_POSIX; + + lock.fl_file = file->f_file[O_RDONLY]; + if (lock.fl_file && vfs_lock_file(lock.fl_file, F_SETLK, &lock, NULL)) goto out_err; - if (file->f_file[O_WRONLY] && - vfs_lock_file(file->f_file[O_WRONLY], F_SETLK, &lock, NULL)) + lock.fl_file = file->f_file[O_WRONLY]; + if (lock.fl_file && vfs_lock_file(lock.fl_file, F_SETLK, &lock, NULL)) goto out_err; return 0; out_err: @@ -226,7 +229,7 @@ if (match(lockhost, host)) { spin_unlock(&flctx->flc_lock); - if (nlm_unlock_files(file, fl->fl_owner)) + if (nlm_unlock_files(file, fl)) return 1; goto again; } --- linux-5.19.0.orig/fs/lockd/xdr4.c +++ linux-5.19.0/fs/lockd/xdr4.c @@ -20,13 +20,6 @@ #include "svcxdr.h" -static inline loff_t -s64_to_loff_t(__s64 offset) -{ - return (loff_t)offset; -} - - static inline s64 loff_t_to_s64(loff_t offset) { @@ -70,8 +63,6 @@ svcxdr_decode_lock(struct xdr_stream *xdr, struct nlm_lock *lock) { struct file_lock *fl = &lock->fl; - u64 len, start; - s64 end; if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len)) return false; @@ -81,20 +72,14 @@ return false; if (xdr_stream_decode_u32(xdr, &lock->svid) < 0) return false; - if (xdr_stream_decode_u64(xdr, &start) < 0) + if (xdr_stream_decode_u64(xdr, &lock->lock_start) < 0) return false; - if (xdr_stream_decode_u64(xdr, &len) < 0) + if (xdr_stream_decode_u64(xdr, &lock->lock_len) < 0) return false; locks_init_lock(fl); fl->fl_flags = FL_POSIX; fl->fl_type = F_RDLCK; - end = start + len - 1; - fl->fl_start = s64_to_loff_t(start); - if (len == 0 || end < 0) - fl->fl_end = OFFSET_MAX; - else - fl->fl_end = s64_to_loff_t(end); return true; } --- linux-5.19.0.orig/fs/mbcache.c +++ linux-5.19.0/fs/mbcache.c @@ -11,7 +11,7 @@ /* * Mbcache is a simple key-value store. Keys need not be unique, however * key-value pairs are expected to be unique (we use this fact in - * mb_cache_entry_delete()). + * mb_cache_entry_delete_or_get()). * * Ext2 and ext4 use this cache for deduplication of extended attribute blocks. * Ext4 also uses it for deduplication of xattr values stored in inodes. @@ -125,6 +125,19 @@ } EXPORT_SYMBOL(__mb_cache_entry_free); +/* + * mb_cache_entry_wait_unused - wait to be the last user of the entry + * + * @entry - entry to work on + * + * Wait to be the last user of the entry. + */ +void mb_cache_entry_wait_unused(struct mb_cache_entry *entry) +{ + wait_var_event(&entry->e_refcnt, atomic_read(&entry->e_refcnt) <= 3); +} +EXPORT_SYMBOL(mb_cache_entry_wait_unused); + static struct mb_cache_entry *__entry_find(struct mb_cache *cache, struct mb_cache_entry *entry, u32 key) @@ -217,7 +230,7 @@ } EXPORT_SYMBOL(mb_cache_entry_get); -/* mb_cache_entry_delete - remove a cache entry +/* mb_cache_entry_delete - try to remove a cache entry * @cache - cache we work with * @key - key * @value - value @@ -254,6 +267,55 @@ } EXPORT_SYMBOL(mb_cache_entry_delete); +/* mb_cache_entry_delete_or_get - remove a cache entry if it has no users + * @cache - cache we work with + * @key - key + * @value - value + * + * Remove entry from cache @cache with key @key and value @value. The removal + * happens only if the entry is unused. The function returns NULL in case the + * entry was successfully removed or there's no entry in cache. Otherwise the + * function grabs reference of the entry that we failed to delete because it + * still has users and return it. + */ +struct mb_cache_entry *mb_cache_entry_delete_or_get(struct mb_cache *cache, + u32 key, u64 value) +{ + struct hlist_bl_node *node; + struct hlist_bl_head *head; + struct mb_cache_entry *entry; + + head = mb_cache_entry_head(cache, key); + hlist_bl_lock(head); + hlist_bl_for_each_entry(entry, node, head, e_hash_list) { + if (entry->e_key == key && entry->e_value == value) { + if (atomic_read(&entry->e_refcnt) > 2) { + atomic_inc(&entry->e_refcnt); + hlist_bl_unlock(head); + return entry; + } + /* We keep hash list reference to keep entry alive */ + hlist_bl_del_init(&entry->e_hash_list); + hlist_bl_unlock(head); + spin_lock(&cache->c_list_lock); + if (!list_empty(&entry->e_list)) { + list_del_init(&entry->e_list); + if (!WARN_ONCE(cache->c_entry_count == 0, + "mbcache: attempt to decrement c_entry_count past zero")) + cache->c_entry_count--; + atomic_dec(&entry->e_refcnt); + } + spin_unlock(&cache->c_list_lock); + mb_cache_entry_put(cache, entry); + return NULL; + } + } + hlist_bl_unlock(head); + + return NULL; +} +EXPORT_SYMBOL(mb_cache_entry_delete_or_get); + /* mb_cache_entry_touch - cache entry got used * @cache - cache the entry belongs to * @entry - entry that got used @@ -288,7 +350,7 @@ while (nr_to_scan-- && !list_empty(&cache->c_list)) { entry = list_first_entry(&cache->c_list, struct mb_cache_entry, e_list); - if (entry->e_referenced) { + if (entry->e_referenced || atomic_read(&entry->e_refcnt) > 2) { entry->e_referenced = 0; list_move_tail(&entry->e_list, &cache->c_list); continue; @@ -302,6 +364,14 @@ spin_unlock(&cache->c_list_lock); head = mb_cache_entry_head(cache, entry->e_key); hlist_bl_lock(head); + /* Now a reliable check if the entry didn't get used... */ + if (atomic_read(&entry->e_refcnt) > 2) { + hlist_bl_unlock(head); + spin_lock(&cache->c_list_lock); + list_add_tail(&entry->e_list, &cache->c_list); + cache->c_entry_count++; + continue; + } if (!hlist_bl_unhashed(&entry->e_hash_list)) { hlist_bl_del_init(&entry->e_hash_list); atomic_dec(&entry->e_refcnt); --- linux-5.19.0.orig/fs/namei.c +++ linux-5.19.0/fs/namei.c @@ -1014,8 +1014,8 @@ path_put(&last->link); } -static int sysctl_protected_symlinks __read_mostly; -static int sysctl_protected_hardlinks __read_mostly; +static int sysctl_protected_symlinks __read_mostly = 1; +static int sysctl_protected_hardlinks __read_mostly = 1; static int sysctl_protected_fifos __read_mostly; static int sysctl_protected_regular __read_mostly; @@ -1505,6 +1505,8 @@ * becoming unpinned. */ flags = dentry->d_flags; + if (read_seqretry(&mount_lock, nd->m_seq)) + return false; continue; } if (read_seqretry(&mount_lock, nd->m_seq)) @@ -3565,6 +3567,8 @@ child = d_alloc(dentry, &slash_name); if (unlikely(!child)) goto out_err; + if (!IS_POSIXACL(dir)) + mode &= ~current_umask(); error = dir->i_op->tmpfile(mnt_userns, dir, child, mode); if (error) goto out_err; @@ -5051,7 +5055,7 @@ const struct address_space_operations *aops = mapping->a_ops; bool nofs = !mapping_gfp_constraint(mapping, __GFP_FS); struct page *page; - void *fsdata; + void *fsdata = NULL; int err; unsigned int flags; --- linux-5.19.0.orig/fs/namespace.c +++ linux-5.19.0/fs/namespace.c @@ -4238,6 +4238,13 @@ err = -EPERM; goto out_fput; } + + /* We're not controlling the target namespace. */ + if (!ns_capable(mnt_userns, CAP_SYS_ADMIN)) { + err = -EPERM; + goto out_fput; + } + kattr->mnt_userns = get_user_ns(mnt_userns); out_fput: --- linux-5.19.0.orig/fs/netfs/buffered_read.c +++ linux-5.19.0/fs/netfs/buffered_read.c @@ -17,9 +17,9 @@ { struct netfs_io_subrequest *subreq; struct folio *folio; - unsigned int iopos, account = 0; pgoff_t start_page = rreq->start / PAGE_SIZE; pgoff_t last_page = ((rreq->start + rreq->len) / PAGE_SIZE) - 1; + size_t account = 0; bool subreq_failed = false; XA_STATE(xas, &rreq->mapping->i_pages, start_page); @@ -39,18 +39,23 @@ */ subreq = list_first_entry(&rreq->subrequests, struct netfs_io_subrequest, rreq_link); - iopos = 0; subreq_failed = (subreq->error < 0); trace_netfs_rreq(rreq, netfs_rreq_trace_unlock); rcu_read_lock(); xas_for_each(&xas, folio, last_page) { - unsigned int pgpos = (folio_index(folio) - start_page) * PAGE_SIZE; - unsigned int pgend = pgpos + folio_size(folio); + loff_t pg_end; bool pg_failed = false; + if (xas_retry(&xas, folio)) + continue; + + pg_end = folio_pos(folio) + folio_size(folio) - 1; + for (;;) { + loff_t sreq_end; + if (!subreq) { pg_failed = true; break; @@ -58,11 +63,11 @@ if (test_bit(NETFS_SREQ_COPY_TO_CACHE, &subreq->flags)) folio_start_fscache(folio); pg_failed |= subreq_failed; - if (pgend < iopos + subreq->len) + sreq_end = subreq->start + subreq->len - 1; + if (pg_end < sreq_end) break; account += subreq->transferred; - iopos += subreq->len; if (!list_is_last(&subreq->rreq_link, &rreq->subrequests)) { subreq = list_next_entry(subreq, rreq_link); subreq_failed = (subreq->error < 0); @@ -70,7 +75,8 @@ subreq = NULL; subreq_failed = false; } - if (pgend == iopos) + + if (pg_end == sreq_end) break; } --- linux-5.19.0.orig/fs/netfs/io.c +++ linux-5.19.0/fs/netfs/io.c @@ -121,6 +121,9 @@ XA_STATE(xas, &rreq->mapping->i_pages, subreq->start / PAGE_SIZE); xas_for_each(&xas, folio, (subreq->start + subreq->len - 1) / PAGE_SIZE) { + if (xas_retry(&xas, folio)) + continue; + /* We might have multiple writes from the same huge * folio, but we mustn't unlock a folio more than once. */ --- linux-5.19.0.orig/fs/nfs/delegation.c +++ linux-5.19.0/fs/nfs/delegation.c @@ -228,8 +228,7 @@ * */ void nfs_inode_reclaim_delegation(struct inode *inode, const struct cred *cred, - fmode_t type, - const nfs4_stateid *stateid, + fmode_t type, const nfs4_stateid *stateid, unsigned long pagemod_limit) { struct nfs_delegation *delegation; @@ -239,25 +238,24 @@ delegation = rcu_dereference(NFS_I(inode)->delegation); if (delegation != NULL) { spin_lock(&delegation->lock); - if (nfs4_is_valid_delegation(delegation, 0)) { - nfs4_stateid_copy(&delegation->stateid, stateid); - delegation->type = type; - delegation->pagemod_limit = pagemod_limit; - oldcred = delegation->cred; - delegation->cred = get_cred(cred); - clear_bit(NFS_DELEGATION_NEED_RECLAIM, - &delegation->flags); - spin_unlock(&delegation->lock); - rcu_read_unlock(); - put_cred(oldcred); - trace_nfs4_reclaim_delegation(inode, type); - return; - } - /* We appear to have raced with a delegation return. */ + nfs4_stateid_copy(&delegation->stateid, stateid); + delegation->type = type; + delegation->pagemod_limit = pagemod_limit; + oldcred = delegation->cred; + delegation->cred = get_cred(cred); + clear_bit(NFS_DELEGATION_NEED_RECLAIM, &delegation->flags); + if (test_and_clear_bit(NFS_DELEGATION_REVOKED, + &delegation->flags)) + atomic_long_inc(&nfs_active_delegations); spin_unlock(&delegation->lock); + rcu_read_unlock(); + put_cred(oldcred); + trace_nfs4_reclaim_delegation(inode, type); + } else { + rcu_read_unlock(); + nfs_inode_set_delegation(inode, cred, type, stateid, + pagemod_limit); } - rcu_read_unlock(); - nfs_inode_set_delegation(inode, cred, type, stateid, pagemod_limit); } static int nfs_do_return_delegation(struct inode *inode, struct nfs_delegation *delegation, int issync) --- linux-5.19.0.orig/fs/nfs/dir.c +++ linux-5.19.0/fs/nfs/dir.c @@ -810,7 +810,7 @@ int ret; if (entry->fattr->label) - entry->fattr->label->len = NFS4_MAXLABELLEN; + entry->fattr->label->lsmctx.len = NFS4_MAXLABELLEN; ret = xdr_decode(desc, entry, stream); if (ret || !desc->plus) return ret; @@ -2906,9 +2906,30 @@ return NULL; } +static u64 nfs_access_login_time(const struct task_struct *task, + const struct cred *cred) +{ + const struct task_struct *parent; + const struct cred *pcred; + u64 ret; + + rcu_read_lock(); + for (;;) { + parent = rcu_dereference(task->real_parent); + pcred = rcu_dereference(parent->cred); + if (parent == task || cred_fscmp(pcred, cred) != 0) + break; + task = parent; + } + ret = task->start_time; + rcu_read_unlock(); + return ret; +} + static int nfs_access_get_cached_locked(struct inode *inode, const struct cred *cred, u32 *mask, bool may_block) { struct nfs_inode *nfsi = NFS_I(inode); + u64 login_time = nfs_access_login_time(current, cred); struct nfs_access_entry *cache; bool retry = true; int err; @@ -2936,6 +2957,9 @@ spin_lock(&inode->i_lock); retry = false; } + err = -ENOENT; + if ((s64)(login_time - cache->timestamp) > 0) + goto out; *mask = cache->mask; list_move_tail(&cache->lru, &nfsi->access_cache_entry_lru); err = 0; @@ -2954,6 +2978,7 @@ * but do it without locking. */ struct nfs_inode *nfsi = NFS_I(inode); + u64 login_time = nfs_access_login_time(current, cred); struct nfs_access_entry *cache; int err = -ECHILD; struct list_head *lh; @@ -2968,6 +2993,8 @@ cache = NULL; if (cache == NULL) goto out; + if ((s64)(login_time - cache->timestamp) > 0) + goto out; if (nfs_check_cache_invalid(inode, NFS_INO_INVALID_ACCESS)) goto out; *mask = cache->mask; @@ -3039,6 +3066,7 @@ cache->fsgid = cred->fsgid; cache->group_info = get_group_info(cred->group_info); cache->mask = set->mask; + cache->timestamp = ktime_get_ns(); /* The above field assignments must be visible * before this item appears on the lru. We cannot easily --- linux-5.19.0.orig/fs/nfs/file.c +++ linux-5.19.0/fs/nfs/file.c @@ -221,8 +221,10 @@ int nfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync) { - struct nfs_open_context *ctx = nfs_file_open_context(file); struct inode *inode = file_inode(file); + struct nfs_inode *nfsi = NFS_I(inode); + long save_nredirtied = atomic_long_read(&nfsi->redirtied_pages); + long nredirtied; int ret; trace_nfs_fsync_enter(inode); @@ -237,15 +239,10 @@ ret = pnfs_sync_inode(inode, !!datasync); if (ret != 0) break; - if (!test_and_clear_bit(NFS_CONTEXT_RESEND_WRITES, &ctx->flags)) + nredirtied = atomic_long_read(&nfsi->redirtied_pages); + if (nredirtied == save_nredirtied) break; - /* - * If nfs_file_fsync_commit detected a server reboot, then - * resend all dirty pages that might have been covered by - * the NFS_CONTEXT_RESEND_WRITES flag - */ - start = 0; - end = LLONG_MAX; + save_nredirtied = nredirtied; } trace_nfs_fsync_exit(inode, ret); --- linux-5.19.0.orig/fs/nfs/flexfilelayout/flexfilelayout.c +++ linux-5.19.0/fs/nfs/flexfilelayout/flexfilelayout.c @@ -1131,6 +1131,8 @@ case -EIO: case -ETIMEDOUT: case -EPIPE: + case -EPROTO: + case -ENODEV: dprintk("%s DS connection error %d\n", __func__, task->tk_status); nfs4_delete_deviceid(devid->ld, devid->nfs_client, @@ -1236,6 +1238,8 @@ case -ENOBUFS: case -EPIPE: case -EPERM: + case -EPROTO: + case -ENODEV: *op_status = status = NFS4ERR_NXIO; break; case -EACCES: --- linux-5.19.0.orig/fs/nfs/inode.c +++ linux-5.19.0/fs/nfs/inode.c @@ -361,14 +361,15 @@ return; if ((fattr->valid & NFS_ATTR_FATTR_V4_SECURITY_LABEL) && inode->i_security) { - error = security_inode_notifysecctx(inode, fattr->label->label, - fattr->label->len); + error = security_inode_notifysecctx(inode, + fattr->label->lsmctx.context, + fattr->label->lsmctx.len); if (error) printk(KERN_ERR "%s() %s %d " "security_inode_notifysecctx() %d\n", __func__, - (char *)fattr->label->label, - fattr->label->len, error); + (char *)fattr->label->lsmctx.context, + fattr->label->lsmctx.len, error); nfs_clear_label_invalid(inode); } } @@ -384,12 +385,14 @@ if (label == NULL) return ERR_PTR(-ENOMEM); - label->label = kzalloc(NFS4_MAXLABELLEN, flags); - if (label->label == NULL) { + label->lsmctx.context = kzalloc(NFS4_MAXLABELLEN, flags); + if (label->lsmctx.context == NULL) { kfree(label); return ERR_PTR(-ENOMEM); } - label->len = NFS4_MAXLABELLEN; + label->lsmctx.len = NFS4_MAXLABELLEN; + /* Use an invalid LSM slot as this should never be "released". */ + label->lsmctx.slot = -1; return label; } @@ -426,6 +429,7 @@ static void nfs_inode_init_regular(struct nfs_inode *nfsi) { atomic_long_set(&nfsi->nrequests, 0); + atomic_long_set(&nfsi->redirtied_pages, 0); INIT_LIST_HEAD(&nfsi->commit_info.list); atomic_long_set(&nfsi->commit_info.ncommit, 0); atomic_set(&nfsi->commit_info.rpcs_out, 0); --- linux-5.19.0.orig/fs/nfs/internal.h +++ linux-5.19.0/fs/nfs/internal.h @@ -342,13 +342,15 @@ if (!dst || !src) return NULL; - if (src->len > NFS4_MAXLABELLEN) + if (src->lsmctx.len > NFS4_MAXLABELLEN) return NULL; dst->lfs = src->lfs; dst->pi = src->pi; - dst->len = src->len; - memcpy(dst->label, src->label, src->len); + /* Use an invalid LSM slot as lsmctx should never be "released" */ + dst->lsmctx.slot = -1; + dst->lsmctx.len = src->lsmctx.len; + memcpy(dst->lsmctx.context, src->lsmctx.context, src->lsmctx.len); return dst; } @@ -604,6 +606,31 @@ return GFP_KERNEL; } +/* + * Special version of should_remove_suid() that ignores capabilities. + */ +static inline int nfs_should_remove_suid(const struct inode *inode) +{ + umode_t mode = inode->i_mode; + int kill = 0; + + /* suid always must be killed */ + if (unlikely(mode & S_ISUID)) + kill = ATTR_KILL_SUID; + + /* + * sgid without any exec bits is just a mandatory locking mark; leave + * it alone. If some exec bits are set, it's a real sgid; kill it. + */ + if (unlikely((mode & S_ISGID) && (mode & S_IXGRP))) + kill |= ATTR_KILL_SGID; + + if (unlikely(kill && S_ISREG(mode))) + return kill; + + return 0; +} + /* unlink.c */ extern struct rpc_task * nfs_async_rename(struct inode *old_dir, struct inode *new_dir, --- linux-5.19.0.orig/fs/nfs/namespace.c +++ linux-5.19.0/fs/nfs/namespace.c @@ -147,7 +147,7 @@ struct nfs_fs_context *ctx; struct fs_context *fc; struct vfsmount *mnt = ERR_PTR(-ENOMEM); - struct nfs_server *server = NFS_SERVER(d_inode(path->dentry)); + struct nfs_server *server = NFS_SB(path->dentry->d_sb); struct nfs_client *client = server->nfs_client; int timeout = READ_ONCE(nfs_mountpoint_expiry_timeout); int ret; --- linux-5.19.0.orig/fs/nfs/nfs3client.c +++ linux-5.19.0/fs/nfs/nfs3client.c @@ -108,7 +108,6 @@ if (mds_srv->flags & NFS_MOUNT_NORESVPORT) __set_bit(NFS_CS_NORESVPORT, &cl_init.init_flags); - __set_bit(NFS_CS_NOPING, &cl_init.init_flags); __set_bit(NFS_CS_DS, &cl_init.init_flags); /* Use the MDS nfs_client cl_ipaddr. */ --- linux-5.19.0.orig/fs/nfs/nfs42proc.c +++ linux-5.19.0/fs/nfs/nfs42proc.c @@ -78,10 +78,15 @@ status = nfs4_call_sync(server->client, server, msg, &args.seq_args, &res.seq_res, 0); - if (status == 0) + if (status == 0) { + if (nfs_should_remove_suid(inode)) { + spin_lock(&inode->i_lock); + nfs_set_cache_invalid(inode, NFS_INO_INVALID_MODE); + spin_unlock(&inode->i_lock); + } status = nfs_post_op_update_inode_force_wcc(inode, res.falloc_fattr); - + } if (msg->rpc_proc == &nfs4_procedures[NFSPROC4_CLNT_ALLOCATE]) trace_nfs4_fallocate(inode, &args, status); else @@ -1088,6 +1093,9 @@ &args.seq_args, &res.seq_res, 0); trace_nfs4_clone(src_inode, dst_inode, &args, status); if (status == 0) { + /* a zero-length count means clone to EOF in src */ + if (count == 0 && res.dst_fattr->valid & NFS_ATTR_FATTR_SIZE) + count = nfs_size_to_loff_t(res.dst_fattr->size) - dst_offset; nfs42_copy_dest_done(dst_inode, dst_offset, count); status = nfs_post_op_update_inode(dst_inode, res.dst_fattr); } --- linux-5.19.0.orig/fs/nfs/nfs4client.c +++ linux-5.19.0/fs/nfs/nfs4client.c @@ -346,6 +346,7 @@ ret = nfs4_setup_slot_table(tbl, NFS4_MAX_SLOT_TABLE, "NFSv4.0 transport Slot table"); if (ret) { + nfs4_shutdown_slot_table(tbl); kfree(tbl); return ret; } --- linux-5.19.0.orig/fs/nfs/nfs4file.c +++ linux-5.19.0/fs/nfs/nfs4file.c @@ -340,6 +340,11 @@ goto out; } + if (!S_ISREG(fattr->mode)) { + res = ERR_PTR(-EBADF); + goto out; + } + res = ERR_PTR(-ENOMEM); len = strlen(SSC_READ_NAME_BODY) + 16; read_name = kzalloc(len, GFP_KERNEL); @@ -357,6 +362,7 @@ r_ino->i_fop); if (IS_ERR(filep)) { res = ERR_CAST(filep); + iput(r_ino); goto out_free_name; } --- linux-5.19.0.orig/fs/nfs/nfs4idmap.c +++ linux-5.19.0/fs/nfs/nfs4idmap.c @@ -561,22 +561,20 @@ return true; } -static void -nfs_idmap_complete_pipe_upcall_locked(struct idmap *idmap, int ret) +static void nfs_idmap_complete_pipe_upcall(struct idmap_legacy_upcalldata *data, + int ret) { - struct key *authkey = idmap->idmap_upcall_data->authkey; - - kfree(idmap->idmap_upcall_data); - idmap->idmap_upcall_data = NULL; - complete_request_key(authkey, ret); - key_put(authkey); + complete_request_key(data->authkey, ret); + key_put(data->authkey); + kfree(data); } -static void -nfs_idmap_abort_pipe_upcall(struct idmap *idmap, int ret) +static void nfs_idmap_abort_pipe_upcall(struct idmap *idmap, + struct idmap_legacy_upcalldata *data, + int ret) { - if (idmap->idmap_upcall_data != NULL) - nfs_idmap_complete_pipe_upcall_locked(idmap, ret); + if (cmpxchg(&idmap->idmap_upcall_data, data, NULL) == data) + nfs_idmap_complete_pipe_upcall(data, ret); } static int nfs_idmap_legacy_upcall(struct key *authkey, void *aux) @@ -613,7 +611,7 @@ ret = rpc_queue_upcall(idmap->idmap_pipe, msg); if (ret < 0) - nfs_idmap_abort_pipe_upcall(idmap, ret); + nfs_idmap_abort_pipe_upcall(idmap, data, ret); return ret; out2: @@ -669,6 +667,7 @@ struct request_key_auth *rka; struct rpc_inode *rpci = RPC_I(file_inode(filp)); struct idmap *idmap = (struct idmap *)rpci->private; + struct idmap_legacy_upcalldata *data; struct key *authkey; struct idmap_msg im; size_t namelen_in; @@ -678,10 +677,11 @@ * will have been woken up and someone else may now have used * idmap_key_cons - so after this point we may no longer touch it. */ - if (idmap->idmap_upcall_data == NULL) + data = xchg(&idmap->idmap_upcall_data, NULL); + if (data == NULL) goto out_noupcall; - authkey = idmap->idmap_upcall_data->authkey; + authkey = data->authkey; rka = get_request_key_auth(authkey); if (mlen != sizeof(im)) { @@ -703,18 +703,17 @@ if (namelen_in == 0 || namelen_in == IDMAP_NAMESZ) { ret = -EINVAL; goto out; -} + } - ret = nfs_idmap_read_and_verify_message(&im, - &idmap->idmap_upcall_data->idmap_msg, - rka->target_key, authkey); + ret = nfs_idmap_read_and_verify_message(&im, &data->idmap_msg, + rka->target_key, authkey); if (ret >= 0) { key_set_timeout(rka->target_key, nfs_idmap_cache_timeout); ret = mlen; } out: - nfs_idmap_complete_pipe_upcall_locked(idmap, ret); + nfs_idmap_complete_pipe_upcall(data, ret); out_noupcall: return ret; } @@ -728,7 +727,7 @@ struct idmap *idmap = data->idmap; if (msg->errno) - nfs_idmap_abort_pipe_upcall(idmap, msg->errno); + nfs_idmap_abort_pipe_upcall(idmap, data, msg->errno); } static void @@ -736,8 +735,11 @@ { struct rpc_inode *rpci = RPC_I(inode); struct idmap *idmap = (struct idmap *)rpci->private; + struct idmap_legacy_upcalldata *data; - nfs_idmap_abort_pipe_upcall(idmap, -EPIPE); + data = xchg(&idmap->idmap_upcall_data, NULL); + if (data) + nfs_idmap_complete_pipe_upcall(data, -EPIPE); } int nfs_map_name_to_uid(const struct nfs_server *server, const char *name, size_t namelen, kuid_t *uid) --- linux-5.19.0.orig/fs/nfs/nfs4proc.c +++ linux-5.19.0/fs/nfs/nfs4proc.c @@ -122,9 +122,11 @@ if (nfs_server_capable(dir, NFS_CAP_SECURITY_LABEL) == 0) return NULL; + label->lfs = 0; + label->pi = 0; + err = security_dentry_init_security(dentry, sattr->ia_mode, - &dentry->d_name, NULL, - (void **)&label->label, &label->len); + &dentry->d_name, NULL, &label->lsmctx); if (err == 0) return label; @@ -134,7 +136,7 @@ nfs4_label_release_security(struct nfs4_label *label) { if (label) - security_release_secctx(label->label, label->len); + security_release_secctx(&label->lsmctx); } static inline u32 *nfs4_bitmask(struct nfs_server *server, struct nfs4_label *label) { @@ -784,10 +786,9 @@ if ((s32)(seqnr - slot->seq_nr_highest_sent) > 0) slot->seq_nr_highest_sent = seqnr; } -static void nfs4_slot_sequence_acked(struct nfs4_slot *slot, - u32 seqnr) +static void nfs4_slot_sequence_acked(struct nfs4_slot *slot, u32 seqnr) { - slot->seq_nr_highest_sent = seqnr; + nfs4_slot_sequence_record_sent(slot, seqnr); slot->seq_nr_last_acked = seqnr; } @@ -854,7 +855,6 @@ __func__, slot->slot_nr, slot->seq_nr); - nfs4_slot_sequence_acked(slot, slot->seq_nr); goto out_retry; case -NFS4ERR_RETRY_UNCACHED_REP: case -NFS4ERR_SEQ_FALSE_RETRY: @@ -2127,18 +2127,18 @@ } static int nfs4_open_recover_helper(struct nfs4_opendata *opendata, - fmode_t fmode) + fmode_t fmode) { struct nfs4_state *newstate; + struct nfs_server *server = NFS_SB(opendata->dentry->d_sb); + int openflags = opendata->o_arg.open_flags; int ret; if (!nfs4_mode_match_open_stateid(opendata->state, fmode)) return 0; - opendata->o_arg.open_flags = 0; opendata->o_arg.fmode = fmode; - opendata->o_arg.share_access = nfs4_map_atomic_open_share( - NFS_SB(opendata->dentry->d_sb), - fmode, 0); + opendata->o_arg.share_access = + nfs4_map_atomic_open_share(server, fmode, openflags); memset(&opendata->o_res, 0, sizeof(opendata->o_res)); memset(&opendata->c_res, 0, sizeof(opendata->c_res)); nfs4_init_opendata_res(opendata); @@ -2720,10 +2720,15 @@ struct nfs4_opendata *opendata; int ret; - opendata = nfs4_open_recoverdata_alloc(ctx, state, - NFS4_OPEN_CLAIM_FH); + opendata = nfs4_open_recoverdata_alloc(ctx, state, NFS4_OPEN_CLAIM_FH); if (IS_ERR(opendata)) return PTR_ERR(opendata); + /* + * We're not recovering a delegation, so ask for no delegation. + * Otherwise the recovery thread could deadlock with an outstanding + * delegation return. + */ + opendata->o_arg.open_flags = O_DIRECT; ret = nfs4_open_recover(opendata, state); if (ret == -ESTALE) d_drop(ctx->dentry); @@ -3098,12 +3103,13 @@ } out: - if (opendata->lgp) { - nfs4_lgopen_release(opendata->lgp); - opendata->lgp = NULL; - } - if (!opendata->cancelled) + if (!opendata->cancelled) { + if (opendata->lgp) { + nfs4_lgopen_release(opendata->lgp); + opendata->lgp = NULL; + } nfs4_sequence_free_slot(&opendata->o_res.seq_res); + } return ret; } @@ -3796,7 +3802,7 @@ int open_flags, struct iattr *attr, int *opened) { struct nfs4_state *state; - struct nfs4_label l = {0, 0, 0, NULL}, *label = NULL; + struct nfs4_label l, *label; label = nfs4_label_init_security(dir, ctx->dentry, attr, &l); @@ -4013,7 +4019,7 @@ page = alloc_page(GFP_KERNEL); if (!page) - return -ENOMEM; + goto out_put_cred; locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); if (!locations) goto out_free; @@ -4035,6 +4041,8 @@ kfree(locations); out_free: __free_page(page); +out_put_cred: + put_cred(cred); return status; } @@ -4682,7 +4690,7 @@ int flags) { struct nfs_server *server = NFS_SERVER(dir); - struct nfs4_label l, *ilabel = NULL; + struct nfs4_label l, *ilabel; struct nfs_open_context *ctx; struct nfs4_state *state; int status = 0; @@ -5033,7 +5041,7 @@ struct nfs4_exception exception = { .interruptible = true, }; - struct nfs4_label l, *label = NULL; + struct nfs4_label l, *label; int err; label = nfs4_label_init_security(dir, dentry, sattr, &l); @@ -5074,7 +5082,7 @@ struct nfs4_exception exception = { .interruptible = true, }; - struct nfs4_label l, *label = NULL; + struct nfs4_label l, *label; int err; label = nfs4_label_init_security(dir, dentry, sattr, &l); @@ -5193,7 +5201,7 @@ struct nfs4_exception exception = { .interruptible = true, }; - struct nfs4_label l, *label = NULL; + struct nfs4_label l, *label; int err; label = nfs4_label_init_security(dir, dentry, sattr, &l); @@ -6111,7 +6119,7 @@ size_t buflen) { struct nfs_server *server = NFS_SERVER(inode); - struct nfs4_label label = {0, 0, buflen, buf}; + struct nfs4_label label = {0, 0, {buf, buflen, -1} }; u32 bitmask[3] = { 0, 0, FATTR4_WORD2_SECURITY_LABEL }; struct nfs_fattr fattr = { @@ -6139,7 +6147,7 @@ return ret; if (!(fattr.valid & NFS_ATTR_FATTR_V4_SECURITY_LABEL)) return -ENOENT; - return label.len; + return label.lsmctx.len; } static int nfs4_get_security_label(struct inode *inode, void *buf, @@ -6216,7 +6224,8 @@ static int nfs4_set_security_label(struct inode *inode, const void *buf, size_t buflen) { - struct nfs4_label ilabel = {0, 0, buflen, (char *)buf }; + struct nfs4_label ilabel = {0, 0, + {(char *)buf, buflen, -1}}; struct nfs_fattr *fattr; int status; @@ -7138,6 +7147,7 @@ { struct nfs4_lockdata *data = calldata; struct nfs4_lock_state *lsp = data->lsp; + struct nfs_server *server = NFS_SERVER(d_inode(data->ctx->dentry)); if (!nfs4_sequence_done(task, &data->res.seq_res)) return; @@ -7145,8 +7155,7 @@ data->rpc_status = task->tk_status; switch (task->tk_status) { case 0: - renew_lease(NFS_SERVER(d_inode(data->ctx->dentry)), - data->timestamp); + renew_lease(server, data->timestamp); if (data->arg.new_lock && !data->cancelled) { data->fl.fl_flags &= ~(FL_SLEEP | FL_ACCESS); if (locks_lock_inode_wait(lsp->ls_state->inode, &data->fl) < 0) @@ -7167,6 +7176,8 @@ if (!nfs4_stateid_match(&data->arg.open_stateid, &lsp->ls_state->open_stateid)) goto out_restart; + else if (nfs4_async_handle_error(task, server, lsp->ls_state, NULL) == -EAGAIN) + goto out_restart; } else if (!nfs4_stateid_match(&data->arg.lock_stateid, &lsp->ls_stateid)) goto out_restart; @@ -9477,6 +9488,9 @@ rpc_delay(task, NFS4_POLL_RETRY_MAX); fallthrough; case -NFS4ERR_RETRY_UNCACHED_REP: + case -EACCES: + dprintk("%s: failed to reclaim complete error %d for server %s, retrying\n", + __func__, task->tk_status, clp->cl_hostname); return -EAGAIN; case -NFS4ERR_BADSESSION: case -NFS4ERR_DEADSESSION: --- linux-5.19.0.orig/fs/nfs/nfs4state.c +++ linux-5.19.0/fs/nfs/nfs4state.c @@ -1232,6 +1232,8 @@ if (IS_ERR(task)) { printk(KERN_ERR "%s: kthread_run: %ld\n", __func__, PTR_ERR(task)); + if (!nfs_client_init_is_complete(clp)) + nfs_mark_client_ready(clp, PTR_ERR(task)); nfs4_clear_state_manager_bit(clp); clear_bit(NFS4CLNT_MANAGER_AVAILABLE, &clp->cl_state); nfs_put_client(clp); @@ -1787,6 +1789,7 @@ static void nfs4_state_start_reclaim_reboot(struct nfs_client *clp) { + set_bit(NFS4CLNT_RECLAIM_REBOOT, &clp->cl_state); /* Mark all delegations for reclaim */ nfs_delegation_mark_reclaim(clp); nfs4_state_mark_reclaim_helper(clp, nfs4_state_mark_reclaim_reboot); @@ -2671,6 +2674,7 @@ if (status < 0) goto out_error; nfs4_state_end_reclaim_reboot(clp); + continue; } /* Detect expired delegations... */ --- linux-5.19.0.orig/fs/nfs/nfs4xdr.c +++ linux-5.19.0/fs/nfs/nfs4xdr.c @@ -1154,7 +1154,7 @@ } if (label && (attrmask[2] & FATTR4_WORD2_SECURITY_LABEL)) { - len += 4 + 4 + 4 + (XDR_QUADLEN(label->len) << 2); + len += 4 + 4 + 4 + (XDR_QUADLEN(label->lsmctx.len) << 2); bmval[2] |= FATTR4_WORD2_SECURITY_LABEL; } @@ -1186,8 +1186,9 @@ if (label && (bmval[2] & FATTR4_WORD2_SECURITY_LABEL)) { *p++ = cpu_to_be32(label->lfs); *p++ = cpu_to_be32(label->pi); - *p++ = cpu_to_be32(label->len); - p = xdr_encode_opaque_fixed(p, label->label, label->len); + *p++ = cpu_to_be32(label->lsmctx.len); + p = xdr_encode_opaque_fixed(p, label->lsmctx.context, + label->lsmctx.len); } if (bmval[2] & FATTR4_WORD2_MODE_UMASK) { *p++ = cpu_to_be32(iap->ia_mode & S_IALLUGO); @@ -4234,26 +4235,25 @@ p = xdr_inline_decode(xdr, len); if (unlikely(!p)) return -EIO; + bitmap[2] &= ~FATTR4_WORD2_SECURITY_LABEL; if (len < NFS4_MAXLABELLEN) { - if (label) { - if (label->len) { - if (label->len < len) - return -ERANGE; - memcpy(label->label, p, len); - } - label->len = len; + if (label && label->lsmctx.len) { + if (label->lsmctx.len < len) + return -ERANGE; + memcpy(label->lsmctx.context, p, len); + label->lsmctx.len = len; label->pi = pi; label->lfs = lfs; status = NFS_ATTR_FATTR_V4_SECURITY_LABEL; } - bitmap[2] &= ~FATTR4_WORD2_SECURITY_LABEL; } else printk(KERN_WARNING "%s: label too long (%u)!\n", __func__, len); - if (label && label->label) + if (label && label->lsmctx.context) dprintk("%s: label=%.*s, len=%d, PI=%d, LFS=%d\n", - __func__, label->len, (char *)label->label, - label->len, label->pi, label->lfs); + __func__, label->lsmctx.len, + (char *)label->lsmctx.context, + label->lsmctx.len, label->pi, label->lfs); } return status; } @@ -4755,12 +4755,10 @@ if (status < 0) goto xdr_error; - if (fattr->label) { - status = decode_attr_security_label(xdr, bitmap, fattr->label); - if (status < 0) - goto xdr_error; - fattr->valid |= status; - } + status = decode_attr_security_label(xdr, bitmap, fattr->label); + if (status < 0) + goto xdr_error; + fattr->valid |= status; xdr_error: dprintk("%s: xdr returned %d\n", __func__, -status); --- linux-5.19.0.orig/fs/nfs/super.c +++ linux-5.19.0/fs/nfs/super.c @@ -1051,22 +1051,31 @@ if (ctx->bsize) sb->s_blocksize = nfs_block_size(ctx->bsize, &sb->s_blocksize_bits); - if (server->nfs_client->rpc_ops->version != 2) { - /* The VFS shouldn't apply the umask to mode bits. We will do - * so ourselves when necessary. + switch (server->nfs_client->rpc_ops->version) { + case 2: + sb->s_time_gran = 1000; + sb->s_time_min = 0; + sb->s_time_max = U32_MAX; + break; + case 3: + /* + * The VFS shouldn't apply the umask to mode bits. + * We will do so ourselves when necessary. */ sb->s_flags |= SB_POSIXACL; sb->s_time_gran = 1; - sb->s_export_op = &nfs_export_ops; - } else - sb->s_time_gran = 1000; - - if (server->nfs_client->rpc_ops->version != 4) { sb->s_time_min = 0; sb->s_time_max = U32_MAX; - } else { + sb->s_export_op = &nfs_export_ops; + break; + case 4: + sb->s_flags |= SB_POSIXACL; + sb->s_time_gran = 1; sb->s_time_min = S64_MIN; sb->s_time_max = S64_MAX; + if (server->caps & NFS_CAP_ATOMIC_OPEN_V1) + sb->s_export_op = &nfs_export_ops; + break; } sb->s_magic = NFS_SUPER_MAGIC; --- linux-5.19.0.orig/fs/nfs/write.c +++ linux-5.19.0/fs/nfs/write.c @@ -1419,10 +1419,12 @@ */ static void nfs_redirty_request(struct nfs_page *req) { + struct nfs_inode *nfsi = NFS_I(page_file_mapping(req->wb_page)->host); + /* Bump the transmission count */ req->wb_nio++; nfs_mark_request_dirty(req); - set_bit(NFS_CONTEXT_RESEND_WRITES, &nfs_req_openctx(req)->flags); + atomic_long_inc(&nfsi->redirtied_pages); nfs_end_page_writeback(req); nfs_release_request(req); } @@ -1495,31 +1497,6 @@ NFS_PROTO(data->inode)->commit_rpc_prepare(task, data); } -/* - * Special version of should_remove_suid() that ignores capabilities. - */ -static int nfs_should_remove_suid(const struct inode *inode) -{ - umode_t mode = inode->i_mode; - int kill = 0; - - /* suid always must be killed */ - if (unlikely(mode & S_ISUID)) - kill = ATTR_KILL_SUID; - - /* - * sgid without any exec bits is just a mandatory locking mark; leave - * it alone. If some exec bits are set, it's a real sgid; kill it. - */ - if (unlikely((mode & S_ISGID) && (mode & S_IXGRP))) - kill |= ATTR_KILL_SGID; - - if (unlikely(kill && S_ISREG(mode))) - return kill; - - return 0; -} - static void nfs_writeback_check_extend(struct nfs_pgio_header *hdr, struct nfs_fattr *fattr) { @@ -1892,7 +1869,7 @@ /* We have a mismatch. Write the page again */ dprintk_cont(" mismatch\n"); nfs_mark_request_dirty(req); - set_bit(NFS_CONTEXT_RESEND_WRITES, &nfs_req_openctx(req)->flags); + atomic_long_inc(&NFS_I(data->inode)->redirtied_pages); next: nfs_unlock_and_release_request(req); /* Latency breaker */ --- linux-5.19.0.orig/fs/nfsd/filecache.c +++ linux-5.19.0/fs/nfsd/filecache.c @@ -184,12 +184,6 @@ nf->nf_hashval = hashval; refcount_set(&nf->nf_ref, 1); nf->nf_may = may & NFSD_FILE_MAY_MASK; - if (may & NFSD_MAY_NOT_BREAK_LEASE) { - if (may & NFSD_MAY_WRITE) - __set_bit(NFSD_FILE_BREAK_WRITE, &nf->nf_flags); - if (may & NFSD_MAY_READ) - __set_bit(NFSD_FILE_BREAK_READ, &nf->nf_flags); - } nf->nf_mark = NULL; trace_nfsd_file_alloc(nf); } @@ -958,21 +952,7 @@ this_cpu_inc(nfsd_file_cache_hits); - if (!(may_flags & NFSD_MAY_NOT_BREAK_LEASE)) { - bool write = (may_flags & NFSD_MAY_WRITE); - - if (test_bit(NFSD_FILE_BREAK_READ, &nf->nf_flags) || - (test_bit(NFSD_FILE_BREAK_WRITE, &nf->nf_flags) && write)) { - status = nfserrno(nfsd_open_break_lease( - file_inode(nf->nf_file), may_flags)); - if (status == nfs_ok) { - clear_bit(NFSD_FILE_BREAK_READ, &nf->nf_flags); - if (write) - clear_bit(NFSD_FILE_BREAK_WRITE, - &nf->nf_flags); - } - } - } + status = nfserrno(nfsd_open_break_lease(file_inode(nf->nf_file), may_flags)); out: if (status == nfs_ok) { *pnf = nf; --- linux-5.19.0.orig/fs/nfsd/filecache.h +++ linux-5.19.0/fs/nfsd/filecache.h @@ -37,9 +37,7 @@ struct net *nf_net; #define NFSD_FILE_HASHED (0) #define NFSD_FILE_PENDING (1) -#define NFSD_FILE_BREAK_READ (2) -#define NFSD_FILE_BREAK_WRITE (3) -#define NFSD_FILE_REFERENCED (4) +#define NFSD_FILE_REFERENCED (2) unsigned long nf_flags; struct inode *nf_inode; unsigned int nf_hashval; --- linux-5.19.0.orig/fs/nfsd/nfs2acl.c +++ linux-5.19.0/fs/nfsd/nfs2acl.c @@ -246,7 +246,6 @@ struct nfsd3_getaclres *resp = rqstp->rq_resp; struct dentry *dentry = resp->fh.fh_dentry; struct inode *inode; - int w; if (!svcxdr_encode_stat(xdr, resp->status)) return false; @@ -260,15 +259,6 @@ if (xdr_stream_encode_u32(xdr, resp->mask) < 0) return false; - rqstp->rq_res.page_len = w = nfsacl_size( - (resp->mask & NFS_ACL) ? resp->acl_access : NULL, - (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); - while (w > 0) { - if (!*(rqstp->rq_next_page++)) - return true; - w -= PAGE_SIZE; - } - if (!nfs_stream_encode_acl(xdr, inode, resp->acl_access, resp->mask & NFS_ACL, 0)) return false; --- linux-5.19.0.orig/fs/nfsd/nfs3acl.c +++ linux-5.19.0/fs/nfsd/nfs3acl.c @@ -171,11 +171,7 @@ { struct nfsd3_getaclres *resp = rqstp->rq_resp; struct dentry *dentry = resp->fh.fh_dentry; - struct kvec *head = rqstp->rq_res.head; struct inode *inode; - unsigned int base; - int n; - int w; if (!svcxdr_encode_nfsstat3(xdr, resp->status)) return false; @@ -187,26 +183,12 @@ if (xdr_stream_encode_u32(xdr, resp->mask) < 0) return false; - base = (char *)xdr->p - (char *)head->iov_base; - - rqstp->rq_res.page_len = w = nfsacl_size( - (resp->mask & NFS_ACL) ? resp->acl_access : NULL, - (resp->mask & NFS_DFACL) ? resp->acl_default : NULL); - while (w > 0) { - if (!*(rqstp->rq_next_page++)) - return false; - w -= PAGE_SIZE; - } - - n = nfsacl_encode(&rqstp->rq_res, base, inode, - resp->acl_access, - resp->mask & NFS_ACL, 0); - if (n > 0) - n = nfsacl_encode(&rqstp->rq_res, base + n, inode, - resp->acl_default, - resp->mask & NFS_DFACL, - NFS_ACL_DEFAULT); - if (n <= 0) + if (!nfs_stream_encode_acl(xdr, inode, resp->acl_access, + resp->mask & NFS_ACL, 0)) + return false; + if (!nfs_stream_encode_acl(xdr, inode, resp->acl_default, + resp->mask & NFS_DFACL, + NFS_ACL_DEFAULT)) return false; break; default: --- linux-5.19.0.orig/fs/nfsd/nfs3proc.c +++ linux-5.19.0/fs/nfsd/nfs3proc.c @@ -147,7 +147,6 @@ { struct nfsd3_readargs *argp = rqstp->rq_argp; struct nfsd3_readres *resp = rqstp->rq_resp; - u32 max_blocksize = svc_max_payload(rqstp); unsigned int len; int v; @@ -156,7 +155,8 @@ (unsigned long) argp->count, (unsigned long long) argp->offset); - argp->count = min_t(u32, argp->count, max_blocksize); + argp->count = min_t(u32, argp->count, svc_max_payload(rqstp)); + argp->count = min_t(u32, argp->count, rqstp->rq_res.buflen); if (argp->offset > (u64)OFFSET_MAX) argp->offset = (u64)OFFSET_MAX; if (argp->offset + argp->count > (u64)OFFSET_MAX) @@ -550,13 +550,14 @@ { struct xdr_buf *buf = &resp->dirlist; struct xdr_stream *xdr = &resp->xdr; - - count = clamp(count, (u32)(XDR_UNIT * 2), svc_max_payload(rqstp)); + unsigned int sendbuf = min_t(unsigned int, rqstp->rq_res.buflen, + svc_max_payload(rqstp)); memset(buf, 0, sizeof(*buf)); /* Reserve room for the NULL ptr & eof flag (-2 words) */ - buf->buflen = count - XDR_UNIT * 2; + buf->buflen = clamp(count, (u32)(XDR_UNIT * 2), sendbuf); + buf->buflen -= XDR_UNIT * 2; buf->pages = rqstp->rq_next_page; rqstp->rq_next_page += (buf->buflen + PAGE_SIZE - 1) >> PAGE_SHIFT; --- linux-5.19.0.orig/fs/nfsd/nfs4callback.c +++ linux-5.19.0/fs/nfsd/nfs4callback.c @@ -917,7 +917,6 @@ } else { if (!conn->cb_xprt) return -EINVAL; - clp->cl_cb_conn.cb_xprt = conn->cb_xprt; clp->cl_cb_session = ses; args.bc_xprt = conn->cb_xprt; args.prognumber = clp->cl_cb_session->se_cb_prog; @@ -937,6 +936,9 @@ rpc_shutdown_client(client); return -ENOMEM; } + + if (clp->cl_minorversion != 0) + clp->cl_cb_conn.cb_xprt = conn->cb_xprt; clp->cl_cb_client = client; clp->cl_cb_cred = cred; rcu_read_lock(); --- linux-5.19.0.orig/fs/nfsd/nfs4proc.c +++ linux-5.19.0/fs/nfsd/nfs4proc.c @@ -1517,13 +1517,6 @@ return status; } -static void -nfsd4_interssc_disconnect(struct vfsmount *ss_mnt) -{ - nfs_do_sb_deactive(ss_mnt->mnt_sb); - mntput(ss_mnt); -} - /* * Verify COPY destination stateid. * @@ -1626,11 +1619,6 @@ { } -static void -nfsd4_interssc_disconnect(struct vfsmount *ss_mnt) -{ -} - static struct file *nfs42_ssc_open(struct vfsmount *ss_mnt, struct nfs_fh *src_fh, nfs4_stateid *stateid) @@ -1692,6 +1680,7 @@ u64 src_pos = copy->cp_src_pos; u64 dst_pos = copy->cp_dst_pos; int status; + loff_t end; /* See RFC 7862 p.67: */ if (bytes_total == 0) @@ -1711,8 +1700,8 @@ /* for a non-zero asynchronous copy do a commit of data */ if (!copy->cp_synchronous && copy->cp_res.wr_bytes_written > 0) { since = READ_ONCE(dst->f_wb_err); - status = vfs_fsync_range(dst, copy->cp_dst_pos, - copy->cp_res.wr_bytes_written, 0); + end = copy->cp_dst_pos + copy->cp_res.wr_bytes_written - 1; + status = vfs_fsync_range(dst, copy->cp_dst_pos, end, 0); if (!status) status = filemap_check_wb_err(dst->f_mapping, since); if (!status) @@ -1788,14 +1777,14 @@ copy->nf_src = kzalloc(sizeof(struct nfsd_file), GFP_KERNEL); if (!copy->nf_src) { copy->nfserr = nfserr_serverfault; - nfsd4_interssc_disconnect(copy->ss_mnt); + /* ss_mnt will be unmounted by the laundromat */ goto do_callback; } copy->nf_src->nf_file = nfs42_ssc_open(copy->ss_mnt, ©->c_fh, ©->stateid); if (IS_ERR(copy->nf_src->nf_file)) { copy->nfserr = nfserr_offload_denied; - nfsd4_interssc_disconnect(copy->ss_mnt); + /* ss_mnt will be unmounted by the laundromat */ goto do_callback; } } @@ -1880,8 +1869,10 @@ if (async_copy) cleanup_async_copy(async_copy); status = nfserrno(-ENOMEM); - if (!copy->cp_intra) - nfsd4_interssc_disconnect(copy->ss_mnt); + /* + * source's vfsmount of inter-copy will be unmounted + * by the laundromat + */ goto out; } @@ -2663,9 +2654,6 @@ status = nfserr_minor_vers_mismatch; if (nfsd_minorversion(nn, args->minorversion, NFSD_TEST) <= 0) goto out; - status = nfserr_resource; - if (args->opcnt > NFSD_MAX_OPS_PER_COMPOUND) - goto out; status = nfs41_check_op_ordering(args); if (status) { @@ -2678,10 +2666,20 @@ rqstp->rq_lease_breaker = (void **)&cstate->clp; - trace_nfsd_compound(rqstp, args->opcnt); + trace_nfsd_compound(rqstp, args->client_opcnt); while (!status && resp->opcnt < args->opcnt) { op = &args->ops[resp->opcnt++]; + if (unlikely(resp->opcnt == NFSD_MAX_OPS_PER_COMPOUND)) { + /* If there are still more operations to process, + * stop here and report NFS4ERR_RESOURCE. */ + if (cstate->minorversion == 0 && + args->client_opcnt > resp->opcnt) { + op->status = nfserr_resource; + goto encode_op; + } + } + /* * The XDR decode routines may have pre-set op->status; * for example, if there is a miscellaneous XDR error @@ -2757,8 +2755,8 @@ status = op->status; } - trace_nfsd_compound_status(args->opcnt, resp->opcnt, status, - nfsd4_op_name(op->opnum)); + trace_nfsd_compound_status(args->client_opcnt, resp->opcnt, + status, nfsd4_op_name(op->opnum)); nfsd4_cstate_clear_replay(cstate); nfsd4_increment_op_stats(op->opnum); @@ -2792,28 +2790,49 @@ #define op_encode_channel_attrs_maxsz (6 + 1 + 1) -static inline u32 nfsd4_only_status_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +/* + * The _rsize() helpers are invoked by the NFSv4 COMPOUND decoder, which + * is called before sunrpc sets rq_res.buflen. Thus we have to compute + * the maximum payload size here, based on transport limits and the size + * of the remaining space in the rq_pages array. + */ +static u32 nfsd4_max_payload(const struct svc_rqst *rqstp) +{ + u32 buflen; + + buflen = (rqstp->rq_page_end - rqstp->rq_next_page) * PAGE_SIZE; + buflen -= rqstp->rq_auth_slack; + buflen -= rqstp->rq_res.head[0].iov_len; + return min_t(u32, buflen, svc_max_payload(rqstp)); +} + +static u32 nfsd4_only_status_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size) * sizeof(__be32); } -static inline u32 nfsd4_status_stateid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_status_stateid_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_stateid_maxsz)* sizeof(__be32); } -static inline u32 nfsd4_access_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_access_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { /* ac_supported, ac_resp_access */ return (op_encode_hdr_size + 2)* sizeof(__be32); } -static inline u32 nfsd4_commit_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_commit_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_verifier_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_create_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_create_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz + nfs4_fattr_bitmap_maxsz) * sizeof(__be32); @@ -2824,17 +2843,17 @@ * the op prematurely if the estimate is too large. We may turn off splice * reads unnecessarily. */ -static inline u32 nfsd4_getattr_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_getattr_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 *bmap = op->u.getattr.ga_bmval; + const u32 *bmap = op->u.getattr.ga_bmval; u32 bmap0 = bmap[0], bmap1 = bmap[1], bmap2 = bmap[2]; u32 ret = 0; if (bmap0 & FATTR4_WORD0_ACL) - return svc_max_payload(rqstp); + return nfsd4_max_payload(rqstp); if (bmap0 & FATTR4_WORD0_FS_LOCATIONS) - return svc_max_payload(rqstp); + return nfsd4_max_payload(rqstp); if (bmap1 & FATTR4_WORD1_OWNER) { ret += IDMAP_NAMESZ + 4; @@ -2862,24 +2881,28 @@ return ret; } -static inline u32 nfsd4_getfh_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_getfh_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1) * sizeof(__be32) + NFS4_FHSIZE; } -static inline u32 nfsd4_link_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_link_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_lock_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_lock_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_lock_denied_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_open_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_open_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_stateid_maxsz + op_encode_change_info_maxsz + 1 @@ -2887,20 +2910,18 @@ + op_encode_delegation_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_read_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_read_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount = 0, rlen = 0; - - maxcount = svc_max_payload(rqstp); - rlen = min(op->u.read.rd_length, maxcount); + u32 rlen = min(op->u.read.rd_length, nfsd4_max_payload(rqstp)); return (op_encode_hdr_size + 2 + XDR_QUADLEN(rlen)) * sizeof(__be32); } -static inline u32 nfsd4_read_plus_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_read_plus_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount = svc_max_payload(rqstp); - u32 rlen = min(op->u.read.rd_length, maxcount); + u32 rlen = min(op->u.read.rd_length, nfsd4_max_payload(rqstp)); /* * If we detect that the file changed during hole encoding, then we * recover by encoding the remaining reply as data. This means we need @@ -2911,70 +2932,77 @@ return (op_encode_hdr_size + 2 + seg_len + XDR_QUADLEN(rlen)) * sizeof(__be32); } -static inline u32 nfsd4_readdir_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_readdir_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount = 0, rlen = 0; - - maxcount = svc_max_payload(rqstp); - rlen = min(op->u.readdir.rd_maxcount, maxcount); + u32 rlen = min(op->u.readdir.rd_maxcount, nfsd4_max_payload(rqstp)); return (op_encode_hdr_size + op_encode_verifier_maxsz + XDR_QUADLEN(rlen)) * sizeof(__be32); } -static inline u32 nfsd4_readlink_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_readlink_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1) * sizeof(__be32) + PAGE_SIZE; } -static inline u32 nfsd4_remove_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_remove_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_rename_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_rename_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz + op_encode_change_info_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_sequence_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_sequence_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + XDR_QUADLEN(NFS4_MAX_SESSIONID_LEN) + 5) * sizeof(__be32); } -static inline u32 nfsd4_test_stateid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_test_stateid_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1 + op->u.test_stateid.ts_num_ids) * sizeof(__be32); } -static inline u32 nfsd4_setattr_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_setattr_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + nfs4_fattr_bitmap_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_secinfo_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_secinfo_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + RPC_AUTH_MAXFLAVOR * (4 + XDR_QUADLEN(GSS_OID_MAX_LEN))) * sizeof(__be32); } -static inline u32 nfsd4_setclientid_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_setclientid_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 2 + XDR_QUADLEN(NFS4_VERIFIER_SIZE)) * sizeof(__be32); } -static inline u32 nfsd4_write_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_write_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 2 + op_encode_verifier_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_exchange_id_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_exchange_id_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 2 + 1 + /* eir_clientid, eir_sequenceid */\ 1 + 1 + /* eir_flags, spr_how */\ @@ -2988,14 +3016,16 @@ 0 /* ignored eir_server_impl_id contents */) * sizeof(__be32); } -static inline u32 nfsd4_bind_conn_to_session_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_bind_conn_to_session_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + \ XDR_QUADLEN(NFS4_MAX_SESSIONID_LEN) + /* bctsr_sessid */\ 2 /* bctsr_dir, use_conn_in_rdma_mode */) * sizeof(__be32); } -static inline u32 nfsd4_create_session_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_create_session_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + \ XDR_QUADLEN(NFS4_MAX_SESSIONID_LEN) + /* sessionid */\ @@ -3004,7 +3034,8 @@ op_encode_channel_attrs_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_copy_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_copy_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1 /* wr_callback */ + @@ -3016,16 +3047,16 @@ 1 /* cr_synchronous */) * sizeof(__be32); } -static inline u32 nfsd4_offload_status_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_offload_status_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 2 /* osr_count */ + 1 /* osr_complete<1> optional 0 for now */) * sizeof(__be32); } -static inline u32 nfsd4_copy_notify_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_copy_notify_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 3 /* cnr_lease_time */ + @@ -3040,12 +3071,10 @@ } #ifdef CONFIG_NFSD_PNFS -static inline u32 nfsd4_getdeviceinfo_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_getdeviceinfo_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount = 0, rlen = 0; - - maxcount = svc_max_payload(rqstp); - rlen = min(op->u.getdeviceinfo.gd_maxcount, maxcount); + u32 rlen = min(op->u.getdeviceinfo.gd_maxcount, nfsd4_max_payload(rqstp)); return (op_encode_hdr_size + 1 /* gd_layout_type*/ + @@ -3058,7 +3087,8 @@ * so we need to define an arbitrary upper bound here. */ #define MAX_LAYOUT_SIZE 128 -static inline u32 nfsd4_layoutget_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_layoutget_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1 /* logr_return_on_close */ + @@ -3067,14 +3097,16 @@ MAX_LAYOUT_SIZE) * sizeof(__be32); } -static inline u32 nfsd4_layoutcommit_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_layoutcommit_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1 /* locr_newsize */ + 2 /* ns_size */) * sizeof(__be32); } -static inline u32 nfsd4_layoutreturn_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_layoutreturn_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 1 /* lrs_stateid */ + @@ -3083,41 +3115,36 @@ #endif /* CONFIG_NFSD_PNFS */ -static inline u32 nfsd4_seek_rsize(struct svc_rqst *rqstp, struct nfsd4_op *op) +static u32 nfsd4_seek_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + 3) * sizeof(__be32); } -static inline u32 nfsd4_getxattr_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_getxattr_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount, rlen; - - maxcount = svc_max_payload(rqstp); - rlen = min_t(u32, XATTR_SIZE_MAX, maxcount); + u32 rlen = min_t(u32, XATTR_SIZE_MAX, nfsd4_max_payload(rqstp)); return (op_encode_hdr_size + 1 + XDR_QUADLEN(rlen)) * sizeof(__be32); } -static inline u32 nfsd4_setxattr_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_setxattr_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz) * sizeof(__be32); } -static inline u32 nfsd4_listxattrs_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_listxattrs_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { - u32 maxcount, rlen; - - maxcount = svc_max_payload(rqstp); - rlen = min(op->u.listxattrs.lsxa_maxcount, maxcount); + u32 rlen = min(op->u.listxattrs.lsxa_maxcount, nfsd4_max_payload(rqstp)); return (op_encode_hdr_size + 4 + XDR_QUADLEN(rlen)) * sizeof(__be32); } -static inline u32 nfsd4_removexattr_rsize(struct svc_rqst *rqstp, - struct nfsd4_op *op) +static u32 nfsd4_removexattr_rsize(const struct svc_rqst *rqstp, + const struct nfsd4_op *op) { return (op_encode_hdr_size + op_encode_change_info_maxsz) * sizeof(__be32); --- linux-5.19.0.orig/fs/nfsd/nfs4recover.c +++ linux-5.19.0/fs/nfsd/nfs4recover.c @@ -815,8 +815,10 @@ princhash.data = memdup_user( &ci->cc_princhash.cp_data, princhashlen); - if (IS_ERR_OR_NULL(princhash.data)) + if (IS_ERR_OR_NULL(princhash.data)) { + kfree(name.data); return -EFAULT; + } princhash.len = princhashlen; } else princhash.len = 0; --- linux-5.19.0.orig/fs/nfsd/nfs4state.c +++ linux-5.19.0/fs/nfsd/nfs4state.c @@ -664,15 +664,26 @@ return ret; } -static struct nfsd_file *find_deleg_file(struct nfs4_file *f) +static struct nfsd_file *find_any_file_locked(struct nfs4_file *f) { - struct nfsd_file *ret = NULL; + lockdep_assert_held(&f->fi_lock); + + if (f->fi_fds[O_RDWR]) + return f->fi_fds[O_RDWR]; + if (f->fi_fds[O_WRONLY]) + return f->fi_fds[O_WRONLY]; + if (f->fi_fds[O_RDONLY]) + return f->fi_fds[O_RDONLY]; + return NULL; +} + +static struct nfsd_file *find_deleg_file_locked(struct nfs4_file *f) +{ + lockdep_assert_held(&f->fi_lock); - spin_lock(&f->fi_lock); if (f->fi_deleg_file) - ret = nfsd_file_get(f->fi_deleg_file); - spin_unlock(&f->fi_lock); - return ret; + return f->fi_deleg_file; + return NULL; } static atomic_long_t num_delegations; @@ -1049,6 +1060,7 @@ static void nfs4_free_deleg(struct nfs4_stid *stid) { + WARN_ON(!list_empty(&stid->sc_cp_list)); kmem_cache_free(deleg_slab, stid); atomic_long_dec(&num_delegations); } @@ -1463,6 +1475,7 @@ release_all_access(stp); if (stp->st_stateowner) nfs4_put_stateowner(stp->st_stateowner); + WARN_ON(!list_empty(&stid->sc_cp_list)); kmem_cache_free(stateid_slab, stid); } @@ -2597,9 +2610,11 @@ ols = openlockstateid(st); oo = ols->st_stateowner; nf = st->sc_file; - file = find_any_file(nf); + + spin_lock(&nf->fi_lock); + file = find_any_file_locked(nf); if (!file) - return 0; + goto out; seq_printf(s, "- "); nfs4_show_stateid(s, &st->sc_stateid); @@ -2621,8 +2636,8 @@ seq_printf(s, ", "); nfs4_show_owner(s, oo); seq_printf(s, " }\n"); - nfsd_file_put(file); - +out: + spin_unlock(&nf->fi_lock); return 0; } @@ -2636,9 +2651,10 @@ ols = openlockstateid(st); oo = ols->st_stateowner; nf = st->sc_file; - file = find_any_file(nf); + spin_lock(&nf->fi_lock); + file = find_any_file_locked(nf); if (!file) - return 0; + goto out; seq_printf(s, "- "); nfs4_show_stateid(s, &st->sc_stateid); @@ -2658,8 +2674,8 @@ seq_printf(s, ", "); nfs4_show_owner(s, oo); seq_printf(s, " }\n"); - nfsd_file_put(file); - +out: + spin_unlock(&nf->fi_lock); return 0; } @@ -2671,9 +2687,10 @@ ds = delegstateid(st); nf = st->sc_file; - file = find_deleg_file(nf); + spin_lock(&nf->fi_lock); + file = find_deleg_file_locked(nf); if (!file) - return 0; + goto out; seq_printf(s, "- "); nfs4_show_stateid(s, &st->sc_stateid); @@ -2689,8 +2706,8 @@ seq_printf(s, ", "); nfs4_show_fname(s, file); seq_printf(s, " }\n"); - nfsd_file_put(file); - +out: + spin_unlock(&nf->fi_lock); return 0; } @@ -6608,6 +6625,7 @@ struct nfs4_client *clp = s->st_stid.sc_client; bool unhashed; LIST_HEAD(reaplist); + struct nfs4_ol_stateid *stp; spin_lock(&clp->cl_lock); unhashed = unhash_open_stateid(s, &reaplist); @@ -6616,6 +6634,8 @@ if (unhashed) put_ol_stateid_locked(s, &reaplist); spin_unlock(&clp->cl_lock); + list_for_each_entry(stp, &reaplist, st_locks) + nfs4_free_cpntf_statelist(clp->net, &stp->st_stid); free_ol_stateid_reaplist(&reaplist); } else { spin_unlock(&clp->cl_lock); --- linux-5.19.0.orig/fs/nfsd/nfs4xdr.c +++ linux-5.19.0/fs/nfsd/nfs4xdr.c @@ -2347,16 +2347,10 @@ if (xdr_stream_decode_u32(argp->xdr, &argp->minorversion) < 0) return false; - if (xdr_stream_decode_u32(argp->xdr, &argp->opcnt) < 0) + if (xdr_stream_decode_u32(argp->xdr, &argp->client_opcnt) < 0) return false; - - /* - * NFS4ERR_RESOURCE is a more helpful error than GARBAGE_ARGS - * here, so we return success at the xdr level so that - * nfsd4_proc can handle this is an NFS-level error. - */ - if (argp->opcnt > NFSD_MAX_OPS_PER_COMPOUND) - return true; + argp->opcnt = min_t(u32, argp->client_opcnt, + NFSD_MAX_OPS_PER_COMPOUND); if (argp->opcnt > ARRAY_SIZE(argp->iops)) { argp->ops = kzalloc(argp->opcnt * sizeof(*argp->ops), GFP_KERNEL); @@ -2722,11 +2716,11 @@ #ifdef CONFIG_NFSD_V4_SECURITY_LABEL static inline __be32 nfsd4_encode_security_label(struct xdr_stream *xdr, struct svc_rqst *rqstp, - void *context, int len) + struct lsmcontext *context) { __be32 *p; - p = xdr_reserve_space(xdr, len + 4 + 4 + 4); + p = xdr_reserve_space(xdr, context->len + 4 + 4 + 4); if (!p) return nfserr_resource; @@ -2736,13 +2730,13 @@ */ *p++ = cpu_to_be32(0); /* lfs */ *p++ = cpu_to_be32(0); /* pi */ - p = xdr_encode_opaque(p, context, len); + p = xdr_encode_opaque(p, context->context, context->len); return 0; } #else static inline __be32 nfsd4_encode_security_label(struct xdr_stream *xdr, struct svc_rqst *rqstp, - void *context, int len) + struct lsmcontext *context) { return 0; } #endif @@ -2839,8 +2833,7 @@ int err; struct nfs4_acl *acl = NULL; #ifdef CONFIG_NFSD_V4_SECURITY_LABEL - void *context = NULL; - int contextlen; + struct lsmcontext context = { }; #endif bool contextsupport = false; struct nfsd4_compoundres *resp = rqstp->rq_resp; @@ -2901,7 +2894,7 @@ bmval0 & FATTR4_WORD0_SUPPORTED_ATTRS) { if (exp->ex_flags & NFSEXP_SECURITY_LABEL) err = security_inode_getsecctx(d_inode(dentry), - &context, &contextlen); + &context); else err = -EOPNOTSUPP; contextsupport = (err == 0); @@ -3328,8 +3321,7 @@ #ifdef CONFIG_NFSD_V4_SECURITY_LABEL if (bmval2 & FATTR4_WORD2_SECURITY_LABEL) { - status = nfsd4_encode_security_label(xdr, rqstp, context, - contextlen); + status = nfsd4_encode_security_label(xdr, rqstp, &context); if (status) goto out; } @@ -3350,8 +3342,8 @@ out: #ifdef CONFIG_NFSD_V4_SECURITY_LABEL - if (context) - security_release_secctx(context, contextlen); + if (context.context) + security_release_secctx(&context); #endif /* CONFIG_NFSD_V4_SECURITY_LABEL */ kfree(acl); if (tempfh) { @@ -4001,7 +3993,7 @@ if (resp->xdr->buf->page_len && test_bit(RQ_SPLICE_OK, &resp->rqstp->rq_flags)) { WARN_ON_ONCE(1); - return nfserr_resource; + return nfserr_serverfault; } xdr_commit_encode(xdr); --- linux-5.19.0.orig/fs/nfsd/nfsproc.c +++ linux-5.19.0/fs/nfsd/nfsproc.c @@ -182,6 +182,7 @@ argp->count, argp->offset); argp->count = min_t(u32, argp->count, NFSSVC_MAXBLKSIZE_V2); + argp->count = min_t(u32, argp->count, rqstp->rq_res.buflen); v = 0; len = argp->count; @@ -556,12 +557,11 @@ struct xdr_buf *buf = &resp->dirlist; struct xdr_stream *xdr = &resp->xdr; - count = clamp(count, (u32)(XDR_UNIT * 2), svc_max_payload(rqstp)); - memset(buf, 0, sizeof(*buf)); /* Reserve room for the NULL ptr & eof flag (-2 words) */ - buf->buflen = count - XDR_UNIT * 2; + buf->buflen = clamp(count, (u32)(XDR_UNIT * 2), (u32)PAGE_SIZE); + buf->buflen -= XDR_UNIT * 2; buf->pages = rqstp->rq_next_page; rqstp->rq_next_page++; --- linux-5.19.0.orig/fs/nfsd/trace.h +++ linux-5.19.0/fs/nfsd/trace.h @@ -696,8 +696,6 @@ __print_flags(val, "|", \ { 1 << NFSD_FILE_HASHED, "HASHED" }, \ { 1 << NFSD_FILE_PENDING, "PENDING" }, \ - { 1 << NFSD_FILE_BREAK_READ, "BREAK_READ" }, \ - { 1 << NFSD_FILE_BREAK_WRITE, "BREAK_WRITE" }, \ { 1 << NFSD_FILE_REFERENCED, "REFERENCED"}) DECLARE_EVENT_CLASS(nfsd_file_class, --- linux-5.19.0.orig/fs/nfsd/vfs.c +++ linux-5.19.0/fs/nfsd/vfs.c @@ -591,8 +591,8 @@ ret = vfs_copy_file_range(src, src_pos, dst, dst_pos, count, 0); if (ret == -EOPNOTSUPP || ret == -EXDEV) - ret = generic_copy_file_range(src, src_pos, dst, dst_pos, - count, 0); + ret = vfs_copy_file_range(src, src_pos, dst, dst_pos, count, + COPY_FILE_SPLICE); return ret; } --- linux-5.19.0.orig/fs/nfsd/xdr4.h +++ linux-5.19.0/fs/nfsd/xdr4.h @@ -689,9 +689,10 @@ struct svcxdr_tmpbuf *to_free; struct svc_rqst *rqstp; - u32 taglen; char * tag; + u32 taglen; u32 minorversion; + u32 client_opcnt; u32 opcnt; struct nfsd4_op *ops; struct nfsd4_op iops[8]; @@ -860,7 +861,8 @@ u32 op_flags; char *op_name; /* Try to get response size before operation */ - u32 (*op_rsize_bop)(struct svc_rqst *, struct nfsd4_op *); + u32 (*op_rsize_bop)(const struct svc_rqst *rqstp, + const struct nfsd4_op *op); void (*op_get_currentstateid)(struct nfsd4_compound_state *, union nfsd4_op_u *); void (*op_set_currentstateid)(struct nfsd4_compound_state *, --- linux-5.19.0.orig/fs/nilfs2/dat.c +++ linux-5.19.0/fs/nilfs2/dat.c @@ -111,6 +111,13 @@ kunmap_atomic(kaddr); nilfs_dat_commit_entry(dat, req); + + if (unlikely(req->pr_desc_bh == NULL || req->pr_bitmap_bh == NULL)) { + nilfs_error(dat->i_sb, + "state inconsistency probably due to duplicate use of vblocknr = %llu", + (unsigned long long)req->pr_entry_nr); + return; + } nilfs_palloc_commit_free_entry(dat, req); } --- linux-5.19.0.orig/fs/nilfs2/inode.c +++ linux-5.19.0/fs/nilfs2/inode.c @@ -328,6 +328,7 @@ struct inode *inode; struct nilfs_inode_info *ii; struct nilfs_root *root; + struct buffer_head *bh; int err = -ENOMEM; ino_t ino; @@ -343,11 +344,25 @@ ii->i_state = BIT(NILFS_I_NEW); ii->i_root = root; - err = nilfs_ifile_create_inode(root->ifile, &ino, &ii->i_bh); + err = nilfs_ifile_create_inode(root->ifile, &ino, &bh); if (unlikely(err)) goto failed_ifile_create_inode; /* reference count of i_bh inherits from nilfs_mdt_read_block() */ + if (unlikely(ino < NILFS_USER_INO)) { + nilfs_warn(sb, + "inode bitmap is inconsistent for reserved inodes"); + do { + brelse(bh); + err = nilfs_ifile_create_inode(root->ifile, &ino, &bh); + if (unlikely(err)) + goto failed_ifile_create_inode; + } while (ino < NILFS_USER_INO); + + nilfs_info(sb, "repaired inode bitmap for reserved inodes"); + } + ii->i_bh = bh; + atomic64_inc(&root->inodes_count); inode_init_owner(&init_user_ns, inode, dir, mode); inode->i_ino = ino; @@ -440,6 +455,8 @@ inode->i_atime.tv_nsec = le32_to_cpu(raw_inode->i_mtime_nsec); inode->i_ctime.tv_nsec = le32_to_cpu(raw_inode->i_ctime_nsec); inode->i_mtime.tv_nsec = le32_to_cpu(raw_inode->i_mtime_nsec); + if (nilfs_is_metadata_file_inode(inode) && !S_ISREG(inode->i_mode)) + return -EIO; /* this inode is for metadata and corrupted */ if (inode->i_nlink == 0) return -ESTALE; /* this inode is deleted */ --- linux-5.19.0.orig/fs/nilfs2/segment.c +++ linux-5.19.0/fs/nilfs2/segment.c @@ -317,7 +317,7 @@ struct the_nilfs *nilfs = sb->s_fs_info; struct nilfs_sc_info *sci = nilfs->ns_writer; - if (!sci || !sci->sc_flush_request) + if (sb_rdonly(sb) || unlikely(!sci) || !sci->sc_flush_request) return; set_bit(NILFS_SC_PRIOR_FLUSH, &sci->sc_flags); @@ -875,9 +875,11 @@ nilfs_mdt_mark_dirty(nilfs->ns_cpfile); nilfs_cpfile_put_checkpoint( nilfs->ns_cpfile, nilfs->ns_cno, bh_cp); - } else - WARN_ON(err == -EINVAL || err == -ENOENT); - + } else if (err == -EINVAL || err == -ENOENT) { + nilfs_error(sci->sc_super, + "checkpoint creation failed due to metadata corruption."); + err = -EIO; + } return err; } @@ -891,7 +893,11 @@ err = nilfs_cpfile_get_checkpoint(nilfs->ns_cpfile, nilfs->ns_cno, 0, &raw_cp, &bh_cp); if (unlikely(err)) { - WARN_ON(err == -EINVAL || err == -ENOENT); + if (err == -EINVAL || err == -ENOENT) { + nilfs_error(sci->sc_super, + "checkpoint finalization failed due to metadata corruption."); + err = -EIO; + } goto failed_ibh; } raw_cp->cp_snapshot_list.ssl_next = 0; @@ -2237,7 +2243,7 @@ struct nilfs_transaction_info *ti; int err; - if (!sci) + if (sb_rdonly(sb) || unlikely(!sci)) return -EROFS; /* A call inside transactions causes a deadlock. */ @@ -2276,7 +2282,7 @@ struct nilfs_transaction_info ti; int err = 0; - if (!sci) + if (sb_rdonly(sb) || unlikely(!sci)) return -EROFS; nilfs_transaction_lock(sb, &ti, 0); @@ -2772,11 +2778,12 @@ if (nilfs->ns_writer) { /* - * This happens if the filesystem was remounted - * read/write after nilfs_error degenerated it into a - * read-only mount. + * This happens if the filesystem is made read-only by + * __nilfs_error or nilfs_remount and then remounted + * read/write. In these cases, reuse the existing + * writer. */ - nilfs_detach_log_writer(sb); + return 0; } nilfs->ns_writer = nilfs_segctor_new(sb, root); @@ -2786,10 +2793,9 @@ inode_attach_wb(nilfs->ns_bdev->bd_inode, NULL); err = nilfs_segctor_start_thread(nilfs->ns_writer); - if (err) { - kfree(nilfs->ns_writer); - nilfs->ns_writer = NULL; - } + if (unlikely(err)) + nilfs_detach_log_writer(sb); + return err; } --- linux-5.19.0.orig/fs/nilfs2/sufile.c +++ linux-5.19.0/fs/nilfs2/sufile.c @@ -495,14 +495,22 @@ int nilfs_sufile_mark_dirty(struct inode *sufile, __u64 segnum) { struct buffer_head *bh; + void *kaddr; + struct nilfs_segment_usage *su; int ret; + down_write(&NILFS_MDT(sufile)->mi_sem); ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, 0, &bh); if (!ret) { mark_buffer_dirty(bh); nilfs_mdt_mark_dirty(sufile); + kaddr = kmap_atomic(bh->b_page); + su = nilfs_sufile_block_get_segment_usage(sufile, segnum, bh, kaddr); + nilfs_segment_usage_set_dirty(su); + kunmap_atomic(kaddr); brelse(bh); } + up_write(&NILFS_MDT(sufile)->mi_sem); return ret; } --- linux-5.19.0.orig/fs/nilfs2/super.c +++ linux-5.19.0/fs/nilfs2/super.c @@ -1133,8 +1133,6 @@ if ((bool)(*flags & SB_RDONLY) == sb_rdonly(sb)) goto out; if (*flags & SB_RDONLY) { - /* Shutting down log writer */ - nilfs_detach_log_writer(sb); sb->s_flags |= SB_RDONLY; /* --- linux-5.19.0.orig/fs/nilfs2/the_nilfs.c +++ linux-5.19.0/fs/nilfs2/the_nilfs.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "nilfs.h" #include "segment.h" @@ -193,6 +194,34 @@ } /** + * nilfs_get_blocksize - get block size from raw superblock data + * @sb: super block instance + * @sbp: superblock raw data buffer + * @blocksize: place to store block size + * + * nilfs_get_blocksize() calculates the block size from the block size + * exponent information written in @sbp and stores it in @blocksize, + * or aborts with an error message if it's too large. + * + * Return Value: On success, 0 is returned. If the block size is too + * large, -EINVAL is returned. + */ +static int nilfs_get_blocksize(struct super_block *sb, + struct nilfs_super_block *sbp, int *blocksize) +{ + unsigned int shift_bits = le32_to_cpu(sbp->s_log_block_size); + + if (unlikely(shift_bits > + ilog2(NILFS_MAX_BLOCK_SIZE) - BLOCK_SIZE_BITS)) { + nilfs_err(sb, "too large filesystem blocksize: 2 ^ %u KiB", + shift_bits); + return -EINVAL; + } + *blocksize = BLOCK_SIZE << shift_bits; + return 0; +} + +/** * load_nilfs - load and recover the nilfs * @nilfs: the_nilfs structure to be released * @sb: super block instance used to recover past segment @@ -245,11 +274,15 @@ nilfs->ns_sbwtime = le64_to_cpu(sbp[0]->s_wtime); /* verify consistency between two super blocks */ - blocksize = BLOCK_SIZE << le32_to_cpu(sbp[0]->s_log_block_size); + err = nilfs_get_blocksize(sb, sbp[0], &blocksize); + if (err) + goto scan_error; + if (blocksize != nilfs->ns_blocksize) { nilfs_warn(sb, "blocksize differs between two super blocks (%d != %d)", blocksize, nilfs->ns_blocksize); + err = -EINVAL; goto scan_error; } @@ -443,11 +476,33 @@ return crc == le32_to_cpu(sbp->s_sum); } -static int nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset) +/** + * nilfs_sb2_bad_offset - check the location of the second superblock + * @sbp: superblock raw data buffer + * @offset: byte offset of second superblock calculated from device size + * + * nilfs_sb2_bad_offset() checks if the position on the second + * superblock is valid or not based on the filesystem parameters + * stored in @sbp. If @offset points to a location within the segment + * area, or if the parameters themselves are not normal, it is + * determined to be invalid. + * + * Return Value: true if invalid, false if valid. + */ +static bool nilfs_sb2_bad_offset(struct nilfs_super_block *sbp, u64 offset) { - return offset < ((le64_to_cpu(sbp->s_nsegments) * - le32_to_cpu(sbp->s_blocks_per_segment)) << - (le32_to_cpu(sbp->s_log_block_size) + 10)); + unsigned int shift_bits = le32_to_cpu(sbp->s_log_block_size); + u32 blocks_per_segment = le32_to_cpu(sbp->s_blocks_per_segment); + u64 nsegments = le64_to_cpu(sbp->s_nsegments); + u64 index; + + if (blocks_per_segment < NILFS_SEG_MIN_BLOCKS || + shift_bits > ilog2(NILFS_MAX_BLOCK_SIZE) - BLOCK_SIZE_BITS) + return true; + + index = offset >> (shift_bits + BLOCK_SIZE_BITS); + do_div(index, blocks_per_segment); + return index < nsegments; } static void nilfs_release_super_block(struct the_nilfs *nilfs) @@ -586,9 +641,11 @@ if (err) goto failed_sbh; - blocksize = BLOCK_SIZE << le32_to_cpu(sbp->s_log_block_size); - if (blocksize < NILFS_MIN_BLOCK_SIZE || - blocksize > NILFS_MAX_BLOCK_SIZE) { + err = nilfs_get_blocksize(sb, sbp, &blocksize); + if (err) + goto failed_sbh; + + if (blocksize < NILFS_MIN_BLOCK_SIZE) { nilfs_err(sb, "couldn't mount because of unsupported filesystem blocksize %d", blocksize); @@ -690,9 +747,7 @@ { unsigned long ncleansegs; - down_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); ncleansegs = nilfs_sufile_get_ncleansegs(nilfs->ns_sufile); - up_read(&NILFS_MDT(nilfs->ns_dat)->mi_sem); *nblocks = (sector_t)ncleansegs * nilfs->ns_blocks_per_segment; return 0; } --- linux-5.19.0.orig/fs/ntfs/attrib.c +++ linux-5.19.0/fs/ntfs/attrib.c @@ -594,17 +594,37 @@ for (;; a = (ATTR_RECORD*)((u8*)a + le32_to_cpu(a->length))) { u8 *mrec_end = (u8 *)ctx->mrec + le32_to_cpu(ctx->mrec->bytes_allocated); - u8 *name_end = (u8 *)a + le16_to_cpu(a->name_offset) + - a->name_length * sizeof(ntfschar); - if ((u8*)a < (u8*)ctx->mrec || (u8*)a > mrec_end || - name_end > mrec_end) + u8 *name_end; + + /* check whether ATTR_RECORD wrap */ + if ((u8 *)a < (u8 *)ctx->mrec) break; + + /* check whether Attribute Record Header is within bounds */ + if ((u8 *)a > mrec_end || + (u8 *)a + sizeof(ATTR_RECORD) > mrec_end) + break; + + /* check whether ATTR_RECORD's name is within bounds */ + name_end = (u8 *)a + le16_to_cpu(a->name_offset) + + a->name_length * sizeof(ntfschar); + if (name_end > mrec_end) + break; + ctx->attr = a; if (unlikely(le32_to_cpu(a->type) > le32_to_cpu(type) || a->type == AT_END)) return -ENOENT; if (unlikely(!a->length)) break; + + /* check whether ATTR_RECORD's length wrap */ + if ((u8 *)a + le32_to_cpu(a->length) < (u8 *)a) + break; + /* check whether ATTR_RECORD's length is within bounds */ + if ((u8 *)a + le32_to_cpu(a->length) > mrec_end) + break; + if (a->type != type) continue; /* --- linux-5.19.0.orig/fs/ntfs/inode.c +++ linux-5.19.0/fs/ntfs/inode.c @@ -1829,6 +1829,13 @@ goto err_out; } + /* Sanity check offset to the first attribute */ + if (le16_to_cpu(m->attrs_offset) >= le32_to_cpu(m->bytes_allocated)) { + ntfs_error(sb, "Incorrect mft offset to the first attribute %u in superblock.", + le16_to_cpu(m->attrs_offset)); + goto err_out; + } + /* Need this to sanity check attribute list references to $MFT. */ vi->i_generation = ni->seq_no = le16_to_cpu(m->sequence_number); --- linux-5.19.0.orig/fs/ntfs/super.c +++ linux-5.19.0/fs/ntfs/super.c @@ -2092,7 +2092,8 @@ // TODO: Initialize security. /* Get the extended system files' directory inode. */ vol->extend_ino = ntfs_iget(sb, FILE_Extend); - if (IS_ERR(vol->extend_ino) || is_bad_inode(vol->extend_ino)) { + if (IS_ERR(vol->extend_ino) || is_bad_inode(vol->extend_ino) || + !S_ISDIR(vol->extend_ino->i_mode)) { if (!IS_ERR(vol->extend_ino)) iput(vol->extend_ino); ntfs_error(sb, "Failed to load $Extend."); --- linux-5.19.0.orig/fs/ntfs3/bitmap.c +++ linux-5.19.0/fs/ntfs3/bitmap.c @@ -1432,7 +1432,7 @@ down_read_nested(&wnd->rw_lock, BITMAP_MUTEX_CLUSTERS); - for (; iw < wnd->nbits; iw++, wbit = 0) { + for (; iw < wnd->nwnd; iw++, wbit = 0) { CLST lcn_wnd = iw * wbits; struct buffer_head *bh; --- linux-5.19.0.orig/fs/ntfs3/fslog.c +++ linux-5.19.0/fs/ntfs3/fslog.c @@ -5057,7 +5057,7 @@ goto add_allocated_vcns; vcn = le64_to_cpu(lrh->target_vcn); - vcn &= ~(log->clst_per_page - 1); + vcn &= ~(u64)(log->clst_per_page - 1); add_allocated_vcns: for (i = 0, vcn = le64_to_cpu(lrh->target_vcn), --- linux-5.19.0.orig/fs/ntfs3/fsntfs.c +++ linux-5.19.0/fs/ntfs3/fsntfs.c @@ -831,10 +831,15 @@ { int err; struct super_block *sb = sbi->sb; - u32 blocksize = sb->s_blocksize; + u32 blocksize; sector_t block1, block2; u32 bytes; + if (!sb) + return -EINVAL; + + blocksize = sb->s_blocksize; + if (!(sbi->flags & NTFS_FLAGS_MFTMIRR)) return 0; --- linux-5.19.0.orig/fs/ntfs3/index.c +++ linux-5.19.0/fs/ntfs3/index.c @@ -1994,7 +1994,7 @@ const struct NTFS_DE *e, bool trim) { int err; - struct indx_node *n; + struct indx_node *n = NULL; struct INDEX_HDR *hdr; CLST vbn = de_get_vbn(e); size_t i; --- linux-5.19.0.orig/fs/ntfs3/inode.c +++ linux-5.19.0/fs/ntfs3/inode.c @@ -430,6 +430,7 @@ } else if (fname && fname->home.low == cpu_to_le32(MFT_REC_EXTEND) && fname->home.seq == cpu_to_le16(MFT_REC_EXTEND)) { /* Records in $Extend are not a files or general directories. */ + inode->i_op = &ntfs_file_inode_operations; } else { err = -EINVAL; goto out; @@ -1940,8 +1941,6 @@ .setattr = ntfs3_setattr, .listxattr = ntfs_listxattr, .permission = ntfs_permission, - .get_acl = ntfs_get_acl, - .set_acl = ntfs_set_acl, }; const struct address_space_operations ntfs_aops = { --- linux-5.19.0.orig/fs/ntfs3/super.c +++ linux-5.19.0/fs/ntfs3/super.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -390,7 +391,7 @@ return -EINVAL; } - memcpy(sbi->options, new_opts, sizeof(*new_opts)); + swap(sbi->options, fc->fs_private); return 0; } @@ -671,7 +672,7 @@ if (boot->sectors_per_clusters <= 0x80) return boot->sectors_per_clusters; if (boot->sectors_per_clusters >= 0xf4) /* limit shift to 2MB max */ - return 1U << (0 - boot->sectors_per_clusters); + return 1U << -(s8)boot->sectors_per_clusters; return -EINVAL; } @@ -900,6 +901,8 @@ ref.high = 0; sbi->sb = sb; + sbi->options = fc->fs_private; + fc->fs_private = NULL; sb->s_flags |= SB_NODIRATIME; sb->s_magic = 0x7366746e; // "ntfs" sb->s_op = &ntfs_sops; @@ -1262,8 +1265,6 @@ goto put_inode_out; } - fc->fs_private = NULL; - return 0; put_inode_out: @@ -1416,7 +1417,6 @@ mutex_init(&sbi->compress.mtx_lzx); #endif - sbi->options = opts; fc->s_fs_info = sbi; ok: fc->fs_private = opts; --- linux-5.19.0.orig/fs/ntfs3/xattr.c +++ linux-5.19.0/fs/ntfs3/xattr.c @@ -107,7 +107,7 @@ return -EFBIG; /* Allocate memory for packed Ea. */ - ea_p = kmalloc(size + add_bytes, GFP_NOFS); + ea_p = kmalloc(size_add(size, add_bytes), GFP_NOFS); if (!ea_p) return -ENOMEM; @@ -118,7 +118,7 @@ run_init(&run); - err = attr_load_runs(attr_ea, ni, &run, NULL); + err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &run, 0, size); if (!err) err = ntfs_read_run_nb(sbi, &run, 0, ea_p, size, NULL); run_close(&run); @@ -444,6 +444,11 @@ /* Delete xattr, ATTR_EA */ ni_remove_attr_le(ni, attr, mi, le); } else if (attr->non_res) { + err = attr_load_runs_range(ni, ATTR_EA, NULL, 0, &ea_run, 0, + size); + if (err) + goto out; + err = ntfs_sb_write_run(sbi, &ea_run, 0, ea_all, size, 0); if (err) goto out; @@ -478,8 +483,7 @@ } #ifdef CONFIG_NTFS3_FS_POSIX_ACL -static struct posix_acl *ntfs_get_acl_ex(struct user_namespace *mnt_userns, - struct inode *inode, int type, +static struct posix_acl *ntfs_get_acl_ex(struct inode *inode, int type, int locked) { struct ntfs_inode *ni = ntfs_i(inode); @@ -514,7 +518,7 @@ /* Translate extended attribute to acl. */ if (err >= 0) { - acl = posix_acl_from_xattr(mnt_userns, buf, err); + acl = posix_acl_from_xattr(&init_user_ns, buf, err); } else if (err == -ENODATA) { acl = NULL; } else { @@ -537,8 +541,7 @@ if (rcu) return ERR_PTR(-ECHILD); - /* TODO: init_user_ns? */ - return ntfs_get_acl_ex(&init_user_ns, inode, type, 0); + return ntfs_get_acl_ex(inode, type, 0); } static noinline int ntfs_set_acl_ex(struct user_namespace *mnt_userns, @@ -547,28 +550,23 @@ { const char *name; size_t size, name_len; - void *value = NULL; - int err = 0; + void *value; + int err; int flags; + umode_t mode; if (S_ISLNK(inode->i_mode)) return -EOPNOTSUPP; + mode = inode->i_mode; switch (type) { case ACL_TYPE_ACCESS: /* Do not change i_mode if we are in init_acl */ if (acl && !init_acl) { - umode_t mode; - err = posix_acl_update_mode(mnt_userns, inode, &mode, &acl); if (err) - goto out; - - if (inode->i_mode != mode) { - inode->i_mode = mode; - mark_inode_dirty(inode); - } + return err; } name = XATTR_NAME_POSIX_ACL_ACCESS; name_len = sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1; @@ -595,7 +593,7 @@ value = kmalloc(size, GFP_NOFS); if (!value) return -ENOMEM; - err = posix_acl_to_xattr(mnt_userns, acl, value, size); + err = posix_acl_to_xattr(&init_user_ns, acl, value, size); if (err < 0) goto out; flags = 0; @@ -604,8 +602,13 @@ err = ntfs_set_ea(inode, name, name_len, value, size, flags, 0); if (err == -ENODATA && !size) err = 0; /* Removing non existed xattr. */ - if (!err) + if (!err) { set_cached_acl(inode, type, acl); + if (inode->i_mode != mode) { + inode->i_mode = mode; + mark_inode_dirty(inode); + } + } out: kfree(value); @@ -622,67 +625,6 @@ return ntfs_set_acl_ex(mnt_userns, inode, acl, type, false); } -static int ntfs_xattr_get_acl(struct user_namespace *mnt_userns, - struct inode *inode, int type, void *buffer, - size_t size) -{ - struct posix_acl *acl; - int err; - - if (!(inode->i_sb->s_flags & SB_POSIXACL)) { - ntfs_inode_warn(inode, "add mount option \"acl\" to use acl"); - return -EOPNOTSUPP; - } - - acl = ntfs_get_acl(inode, type, false); - if (IS_ERR(acl)) - return PTR_ERR(acl); - - if (!acl) - return -ENODATA; - - err = posix_acl_to_xattr(mnt_userns, acl, buffer, size); - posix_acl_release(acl); - - return err; -} - -static int ntfs_xattr_set_acl(struct user_namespace *mnt_userns, - struct inode *inode, int type, const void *value, - size_t size) -{ - struct posix_acl *acl; - int err; - - if (!(inode->i_sb->s_flags & SB_POSIXACL)) { - ntfs_inode_warn(inode, "add mount option \"acl\" to use acl"); - return -EOPNOTSUPP; - } - - if (!inode_owner_or_capable(mnt_userns, inode)) - return -EPERM; - - if (!value) { - acl = NULL; - } else { - acl = posix_acl_from_xattr(mnt_userns, value, size); - if (IS_ERR(acl)) - return PTR_ERR(acl); - - if (acl) { - err = posix_acl_valid(mnt_userns, acl); - if (err) - goto release_and_out; - } - } - - err = ntfs_set_acl(mnt_userns, inode, acl, type); - -release_and_out: - posix_acl_release(acl); - return err; -} - /* * ntfs_init_acl - Initialize the ACLs of a new inode. * @@ -849,23 +791,6 @@ goto out; } -#ifdef CONFIG_NTFS3_FS_POSIX_ACL - if ((name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1 && - !memcmp(name, XATTR_NAME_POSIX_ACL_ACCESS, - sizeof(XATTR_NAME_POSIX_ACL_ACCESS))) || - (name_len == sizeof(XATTR_NAME_POSIX_ACL_DEFAULT) - 1 && - !memcmp(name, XATTR_NAME_POSIX_ACL_DEFAULT, - sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)))) { - /* TODO: init_user_ns? */ - err = ntfs_xattr_get_acl( - &init_user_ns, inode, - name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1 - ? ACL_TYPE_ACCESS - : ACL_TYPE_DEFAULT, - buffer, size); - goto out; - } -#endif /* Deal with NTFS extended attribute. */ err = ntfs_get_ea(inode, name, name_len, buffer, size, NULL); @@ -978,22 +903,6 @@ goto out; } -#ifdef CONFIG_NTFS3_FS_POSIX_ACL - if ((name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1 && - !memcmp(name, XATTR_NAME_POSIX_ACL_ACCESS, - sizeof(XATTR_NAME_POSIX_ACL_ACCESS))) || - (name_len == sizeof(XATTR_NAME_POSIX_ACL_DEFAULT) - 1 && - !memcmp(name, XATTR_NAME_POSIX_ACL_DEFAULT, - sizeof(XATTR_NAME_POSIX_ACL_DEFAULT)))) { - err = ntfs_xattr_set_acl( - mnt_userns, inode, - name_len == sizeof(XATTR_NAME_POSIX_ACL_ACCESS) - 1 - ? ACL_TYPE_ACCESS - : ACL_TYPE_DEFAULT, - value, size); - goto out; - } -#endif /* Deal with NTFS extended attribute. */ err = ntfs_set_ea(inode, name, name_len, value, size, flags, 0); @@ -1083,7 +992,7 @@ } // clang-format off -static const struct xattr_handler ntfs_xattr_handler = { +static const struct xattr_handler ntfs_other_xattr_handler = { .prefix = "", .get = ntfs_getxattr, .set = ntfs_setxattr, @@ -1091,7 +1000,11 @@ }; const struct xattr_handler *ntfs_xattr_handlers[] = { - &ntfs_xattr_handler, +#ifdef CONFIG_NTFS3_FS_POSIX_ACL + &posix_acl_access_xattr_handler, + &posix_acl_default_xattr_handler, +#endif + &ntfs_other_xattr_handler, NULL, }; // clang-format on --- linux-5.19.0.orig/fs/ocfs2/dlmglue.c +++ linux-5.19.0/fs/ocfs2/dlmglue.c @@ -3403,10 +3403,12 @@ ocfs2_lock_res_free(&osb->osb_nfs_sync_lockres); ocfs2_lock_res_free(&osb->osb_orphan_scan.os_lockres); - ocfs2_cluster_disconnect(osb->cconn, hangup_pending); - osb->cconn = NULL; + if (osb->cconn) { + ocfs2_cluster_disconnect(osb->cconn, hangup_pending); + osb->cconn = NULL; - ocfs2_dlm_shutdown_debug(osb); + ocfs2_dlm_shutdown_debug(osb); + } } static int ocfs2_drop_lock(struct ocfs2_super *osb, --- linux-5.19.0.orig/fs/ocfs2/journal.c +++ linux-5.19.0/fs/ocfs2/journal.c @@ -157,7 +157,7 @@ replay_map->rm_state = REPLAY_DONE; } -static void ocfs2_free_replay_slots(struct ocfs2_super *osb) +void ocfs2_free_replay_slots(struct ocfs2_super *osb) { struct ocfs2_replay_map *replay_map = osb->replay_map; --- linux-5.19.0.orig/fs/ocfs2/journal.h +++ linux-5.19.0/fs/ocfs2/journal.h @@ -150,6 +150,7 @@ void ocfs2_recovery_exit(struct ocfs2_super *osb); int ocfs2_compute_replay_slots(struct ocfs2_super *osb); +void ocfs2_free_replay_slots(struct ocfs2_super *osb); /* * Journal Control: * Initialize, Load, Shutdown, Wipe a journal. --- linux-5.19.0.orig/fs/ocfs2/namei.c +++ linux-5.19.0/fs/ocfs2/namei.c @@ -231,6 +231,7 @@ handle_t *handle = NULL; struct ocfs2_super *osb; struct ocfs2_dinode *dirfe; + struct ocfs2_dinode *fe = NULL; struct buffer_head *new_fe_bh = NULL; struct inode *inode = NULL; struct ocfs2_alloc_context *inode_ac = NULL; @@ -381,6 +382,7 @@ goto leave; } + fe = (struct ocfs2_dinode *) new_fe_bh->b_data; if (S_ISDIR(mode)) { status = ocfs2_fill_new_dir(osb, handle, dir, inode, new_fe_bh, data_ac, meta_ac); @@ -453,8 +455,11 @@ leave: if (status < 0 && did_quota_inode) dquot_free_inode(inode); - if (handle) + if (handle) { + if (status < 0 && fe) + ocfs2_set_links_count(fe, 0); ocfs2_commit_trans(osb, handle); + } ocfs2_inode_unlock(dir, 1); if (did_block_signals) @@ -631,18 +636,9 @@ return status; } - status = __ocfs2_mknod_locked(dir, inode, dev, new_fe_bh, + return __ocfs2_mknod_locked(dir, inode, dev, new_fe_bh, parent_fe_bh, handle, inode_ac, fe_blkno, suballoc_loc, suballoc_bit); - if (status < 0) { - u64 bg_blkno = ocfs2_which_suballoc_group(fe_blkno, suballoc_bit); - int tmp = ocfs2_free_suballoc_bits(handle, inode_ac->ac_inode, - inode_ac->ac_bh, suballoc_bit, bg_blkno, 1); - if (tmp) - mlog_errno(tmp); - } - - return status; } static int ocfs2_mkdir(struct user_namespace *mnt_userns, @@ -2027,8 +2023,11 @@ ocfs2_clusters_to_bytes(osb->sb, 1)); if (status < 0 && did_quota_inode) dquot_free_inode(inode); - if (handle) + if (handle) { + if (status < 0 && fe) + ocfs2_set_links_count(fe, 0); ocfs2_commit_trans(osb, handle); + } ocfs2_inode_unlock(dir, 1); if (did_block_signals) --- linux-5.19.0.orig/fs/ocfs2/stackglue.c +++ linux-5.19.0/fs/ocfs2/stackglue.c @@ -669,6 +669,8 @@ static int __init ocfs2_stack_glue_init(void) { + int ret; + strcpy(cluster_stack_name, OCFS2_STACK_PLUGIN_O2CB); ocfs2_table_header = register_sysctl("fs/ocfs2/nm", ocfs2_nm_table); @@ -678,7 +680,11 @@ return -ENOMEM; /* or something. */ } - return ocfs2_sysfs_init(); + ret = ocfs2_sysfs_init(); + if (ret) + unregister_sysctl_table(ocfs2_table_header); + + return ret; } static void __exit ocfs2_stack_glue_exit(void) --- linux-5.19.0.orig/fs/ocfs2/super.c +++ linux-5.19.0/fs/ocfs2/super.c @@ -1159,6 +1159,7 @@ out_dismount: atomic_set(&osb->vol_state, VOLUME_DISABLED); wake_up(&osb->osb_mount_event); + ocfs2_free_replay_slots(osb); ocfs2_dismount_volume(sb, 1); goto out; @@ -1824,12 +1825,14 @@ status = ocfs2_truncate_log_init(osb); if (status < 0) { mlog_errno(status); - goto out_system_inodes; + goto out_check_volume; } ocfs2_super_unlock(osb, 1); return 0; +out_check_volume: + ocfs2_free_replay_slots(osb); out_system_inodes: if (osb->local_alloc_state == OCFS2_LA_ENABLED) ocfs2_shutdown_local_alloc(osb); @@ -1914,8 +1917,7 @@ !ocfs2_is_hard_readonly(osb)) hangup_needed = 1; - if (osb->cconn) - ocfs2_dlm_shutdown(osb, hangup_needed); + ocfs2_dlm_shutdown(osb, hangup_needed); ocfs2_blockcheck_stats_debugfs_remove(&osb->osb_ecc_stats); debugfs_remove_recursive(osb->osb_debug_root); --- linux-5.19.0.orig/fs/open.c +++ linux-5.19.0/fs/open.c @@ -810,7 +810,9 @@ return 0; } - if (f->f_mode & FMODE_WRITE && !special_file(inode->i_mode)) { + if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) { + i_readcount_inc(inode); + } else if (f->f_mode & FMODE_WRITE && !special_file(inode->i_mode)) { error = get_write_access(inode); if (unlikely(error)) goto cleanup_file; @@ -850,8 +852,6 @@ goto cleanup_all; } f->f_mode |= FMODE_OPENED; - if ((f->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) - i_readcount_inc(inode); if ((f->f_mode & FMODE_READ) && likely(f->f_op->read || f->f_op->read_iter)) f->f_mode |= FMODE_CAN_READ; @@ -902,10 +902,7 @@ if (WARN_ON_ONCE(error > 0)) error = -EINVAL; fops_put(f->f_op); - if (f->f_mode & FMODE_WRITER) { - put_write_access(inode); - __mnt_drop_write(f->f_path.mnt); - } + put_file_access(f); cleanup_file: path_put(&f->f_path); f->f_path.mnt = NULL; --- linux-5.19.0.orig/fs/orangefs/orangefs-debugfs.c +++ linux-5.19.0/fs/orangefs/orangefs-debugfs.c @@ -194,15 +194,10 @@ */ static void orangefs_kernel_debug_init(void) { - int rc = -ENOMEM; - char *k_buffer = NULL; + static char k_buffer[ORANGEFS_MAX_DEBUG_STRING_LEN] = { }; gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: start\n", __func__); - k_buffer = kzalloc(ORANGEFS_MAX_DEBUG_STRING_LEN, GFP_KERNEL); - if (!k_buffer) - goto out; - if (strlen(kernel_debug_string) + 1 < ORANGEFS_MAX_DEBUG_STRING_LEN) { strcpy(k_buffer, kernel_debug_string); strcat(k_buffer, "\n"); @@ -213,15 +208,14 @@ debugfs_create_file(ORANGEFS_KMOD_DEBUG_FILE, 0444, debug_dir, k_buffer, &kernel_debug_fops); - -out: - gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: rc:%d:\n", __func__, rc); } void orangefs_debugfs_cleanup(void) { debugfs_remove_recursive(debug_dir); + kfree(debug_help_string); + debug_help_string = NULL; } /* open ORANGEFS_KMOD_DEBUG_HELP_FILE */ @@ -297,18 +291,13 @@ /* * initialize the client-debug file. */ -static int orangefs_client_debug_init(void) +static void orangefs_client_debug_init(void) { - int rc = -ENOMEM; - char *c_buffer = NULL; + static char c_buffer[ORANGEFS_MAX_DEBUG_STRING_LEN] = { }; gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: start\n", __func__); - c_buffer = kzalloc(ORANGEFS_MAX_DEBUG_STRING_LEN, GFP_KERNEL); - if (!c_buffer) - goto out; - if (strlen(client_debug_string) + 1 < ORANGEFS_MAX_DEBUG_STRING_LEN) { strcpy(c_buffer, client_debug_string); strcat(c_buffer, "\n"); @@ -322,13 +311,6 @@ debug_dir, c_buffer, &kernel_debug_fops); - - rc = 0; - -out: - - gossip_debug(GOSSIP_DEBUGFS_DEBUG, "%s: rc:%d:\n", __func__, rc); - return rc; } /* open ORANGEFS_KMOD_DEBUG_FILE or ORANGEFS_CLIENT_DEBUG_FILE.*/ @@ -671,6 +653,7 @@ memset(debug_help_string, 0, DEBUG_HELP_STRING_SIZE); strlcat(debug_help_string, new, string_size); mutex_unlock(&orangefs_help_file_lock); + kfree(new); } rc = 0; --- linux-5.19.0.orig/fs/orangefs/orangefs-mod.c +++ linux-5.19.0/fs/orangefs/orangefs-mod.c @@ -141,7 +141,7 @@ gossip_err("%s: could not initialize device subsystem %d!\n", __func__, ret); - goto cleanup_device; + goto cleanup_sysfs; } ret = register_filesystem(&orangefs_fs_type); @@ -152,11 +152,11 @@ goto out; } - orangefs_sysfs_exit(); - -cleanup_device: orangefs_dev_cleanup(); +cleanup_sysfs: + orangefs_sysfs_exit(); + sysfs_init_failed: orangefs_debugfs_cleanup(); --- linux-5.19.0.orig/fs/overlayfs/copy_up.c +++ linux-5.19.0/fs/overlayfs/copy_up.c @@ -968,6 +968,10 @@ if (err) return err; + if (!kuid_has_mapping(current_user_ns(), ctx.stat.uid) || + !kgid_has_mapping(current_user_ns(), ctx.stat.gid)) + return -EOVERFLOW; + ctx.metacopy = ovl_need_meta_copy_up(dentry, ctx.stat.mode, flags); if (parent) { --- linux-5.19.0.orig/fs/overlayfs/export.c +++ linux-5.19.0/fs/overlayfs/export.c @@ -259,7 +259,7 @@ return FILEID_INVALID; dentry = d_find_any_alias(inode); - if (WARN_ON(!dentry)) + if (!dentry) return FILEID_INVALID; bytes = ovl_dentry_to_fid(ofs, dentry, fid, buflen); --- linux-5.19.0.orig/fs/overlayfs/file.c +++ linux-5.19.0/fs/overlayfs/file.c @@ -488,6 +488,32 @@ return ret; } +/* + * In map_files_get_link() (fs/proc/base.c) + * we need to determine correct path from overlayfs. + * But real_mount(realfile->f_path.mnt) may be not + * equal to real_mount(file->f_path.mnt). In such case + * fdinfo of the same file which was opened from + * /proc//map_files/... and "usual" path + * will show different mnt_id. + * + * We solve issue like in aufs by using additional + * field on struct vm_area_struct called "vm_prfile" + * which is used only for fdinfo/"printing" needs. + * + * See also mm/prfile.c + */ +static void ovl_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 +} + static int ovl_mmap(struct file *file, struct vm_area_struct *vma) { struct file *realfile = file->private_data; @@ -505,6 +531,10 @@ old_cred = ovl_override_creds(file_inode(file)->i_sb); ret = call_mmap(vma->vm_file, vma); revert_creds(old_cred); + + if (!ret) + ovl_vm_prfile_set(vma, file); + ovl_file_accessed(file); return ret; @@ -517,9 +547,16 @@ const struct cred *old_cred; int ret; + inode_lock(inode); + /* Update mode */ + ovl_copyattr(inode); + ret = file_remove_privs(file); + if (ret) + goto out_unlock; + ret = ovl_real_fdget(file, &real); if (ret) - return ret; + goto out_unlock; old_cred = ovl_override_creds(file_inode(file)->i_sb); ret = vfs_fallocate(real.file, mode, offset, len); @@ -530,6 +567,9 @@ fdput(real); +out_unlock: + inode_unlock(inode); + return ret; } @@ -567,14 +607,23 @@ const struct cred *old_cred; loff_t ret; + inode_lock(inode_out); + if (op != OVL_DEDUPE) { + /* Update mode */ + ovl_copyattr(inode_out); + ret = file_remove_privs(file_out); + if (ret) + goto out_unlock; + } + ret = ovl_real_fdget(file_out, &real_out); if (ret) - return ret; + goto out_unlock; ret = ovl_real_fdget(file_in, &real_in); if (ret) { fdput(real_out); - return ret; + goto out_unlock; } old_cred = ovl_override_creds(file_inode(file_out)->i_sb); @@ -603,6 +652,9 @@ fdput(real_in); fdput(real_out); +out_unlock: + inode_unlock(inode_out); + return ret; } --- linux-5.19.0.orig/fs/overlayfs/overlayfs.h +++ linux-5.19.0/fs/overlayfs/overlayfs.h @@ -259,7 +259,12 @@ const char *name, const void *value, size_t size, int flags) { - int err = vfs_setxattr(ovl_upper_mnt_userns(ofs), dentry, name, value, size, flags); + struct inode *inode = dentry->d_inode; + int err; + + inode_lock(inode); + err = __vfs_setxattr_noperm(ovl_upper_mnt_userns(ofs), dentry, name, value, size, flags); + inode_unlock(inode); pr_debug("setxattr(%pd2, \"%s\", \"%*pE\", %zu, %d) = %i\n", dentry, name, min((int)size, 48), value, size, flags, err); @@ -276,7 +281,13 @@ static inline int ovl_do_removexattr(struct ovl_fs *ofs, struct dentry *dentry, const char *name) { - int err = vfs_removexattr(ovl_upper_mnt_userns(ofs), dentry, name); + struct inode *inode = dentry->d_inode; + int err; + + inode_lock(inode); + err = __vfs_removexattr_noperm(ovl_upper_mnt_userns(ofs), dentry, name); + inode_unlock(inode); + pr_debug("removexattr(%pd2, \"%s\") = %i\n", dentry, name, err); return err; } --- linux-5.19.0.orig/fs/overlayfs/super.c +++ linux-5.19.0/fs/overlayfs/super.c @@ -138,11 +138,16 @@ unsigned int flags, bool weak) { struct ovl_entry *oe = dentry->d_fsdata; + struct inode *inode = d_inode_rcu(dentry); struct dentry *upper; unsigned int i; int ret = 1; - upper = ovl_dentry_upper(dentry); + /* Careful in RCU mode */ + if (!inode) + return -ECHILD; + + upper = ovl_i_dentry_upper(inode); if (upper) ret = ovl_revalidate_real(upper, flags, weak); @@ -1418,11 +1423,12 @@ */ err = ovl_setxattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE, "0", 1); if (err) { + pr_warn("failed to set xattr on upper\n"); ofs->noxattr = true; if (ofs->config.index || ofs->config.metacopy) { ofs->config.index = false; ofs->config.metacopy = false; - pr_warn("upper fs does not support xattr, falling back to index=off,metacopy=off.\n"); + pr_warn("...falling back to index=off,metacopy=off.\n"); } /* * xattr support is required for persistent st_ino. @@ -1430,8 +1436,10 @@ */ if (ofs->config.xino == OVL_XINO_AUTO) { ofs->config.xino = OVL_XINO_OFF; - pr_warn("upper fs does not support xattr, falling back to xino=off.\n"); + pr_warn("...falling back to xino=off.\n"); } + if (err == -EPERM && !ofs->config.userxattr) + pr_info("try mounting with 'userxattr' option\n"); err = 0; } else { ovl_removexattr(ofs, ofs->workdir, OVL_XATTR_OPAQUE); --- linux-5.19.0.orig/fs/proc/Makefile +++ linux-5.19.0/fs/proc/Makefile @@ -33,4 +33,4 @@ proc-$(CONFIG_PROC_VMCORE) += vmcore.o proc-$(CONFIG_PRINTK) += kmsg.o proc-$(CONFIG_PROC_PAGE_MONITOR) += page.o -proc-$(CONFIG_BOOT_CONFIG) += bootconfig.o +proc-$(CONFIG_BOOT_CONFIG) += bootconfig.o version_signature.o --- linux-5.19.0.orig/fs/proc/base.c +++ linux-5.19.0/fs/proc/base.c @@ -1885,7 +1885,7 @@ put_pid(pid); } -struct inode *proc_pid_make_inode(struct super_block * sb, +struct inode *proc_pid_make_inode(struct super_block *sb, struct task_struct *task, umode_t mode) { struct inode * inode; @@ -1914,11 +1914,6 @@ /* Let the pid remember us for quick removal */ ei->pid = pid; - if (S_ISDIR(mode)) { - spin_lock(&pid->lock); - hlist_add_head_rcu(&ei->sibling_inodes, &pid->inodes); - spin_unlock(&pid->lock); - } task_dump_owner(task, 0, &inode->i_uid, &inode->i_gid); security_task_to_inode(task, inode); @@ -1931,6 +1926,39 @@ return NULL; } +/* + * Generating an inode and adding it into @pid->inodes, so that task will + * invalidate inode's dentry before being released. + * + * This helper is used for creating dir-type entries under '/proc' and + * '/proc//task'. Other entries(eg. fd, stat) under '/proc/' + * can be released by invalidating '/proc/' dentry. + * In theory, dentries under '/proc//task' can also be released by + * invalidating '/proc/' dentry, we reserve it to handle single + * thread exiting situation: Any one of threads should invalidate its + * '/proc//task/' dentry before released. + */ +static struct inode *proc_pid_make_base_inode(struct super_block *sb, + struct task_struct *task, umode_t mode) +{ + struct inode *inode; + struct proc_inode *ei; + struct pid *pid; + + inode = proc_pid_make_inode(sb, task, mode); + if (!inode) + return NULL; + + /* Let proc_flush_pid find this directory inode */ + ei = PROC_I(inode); + pid = ei->pid; + spin_lock(&pid->lock); + hlist_add_head_rcu(&ei->sibling_inodes, &pid->inodes); + spin_unlock(&pid->lock); + + return inode; +} + int pid_getattr(struct user_namespace *mnt_userns, const struct path *path, struct kstat *stat, u32 request_mask, unsigned int query_flags) { @@ -2190,7 +2218,7 @@ rc = -ENOENT; vma = find_exact_vma(mm, vm_start, vm_end); if (vma && vma->vm_file) { - *path = vma->vm_file->f_path; + *path = vma_pr_or_file(vma)->f_path; path_get(path); rc = 0; } @@ -2827,6 +2855,8 @@ ATTR(NULL, "fscreate", 0666), ATTR(NULL, "keycreate", 0666), ATTR(NULL, "sockcreate", 0666), + ATTR(NULL, "interface_lsm", 0666), + ATTR(NULL, "context", 0444), #ifdef CONFIG_SECURITY_SMACK DIR("smack", 0555, proc_smack_attr_dir_inode_ops, proc_smack_attr_dir_ops), @@ -3369,7 +3399,8 @@ { struct inode *inode; - inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); + inode = proc_pid_make_base_inode(dentry->d_sb, task, + S_IFDIR | S_IRUGO | S_IXUGO); if (!inode) return ERR_PTR(-ENOENT); @@ -3671,7 +3702,8 @@ struct task_struct *task, const void *ptr) { struct inode *inode; - inode = proc_pid_make_inode(dentry->d_sb, task, S_IFDIR | S_IRUGO | S_IXUGO); + inode = proc_pid_make_base_inode(dentry->d_sb, task, + S_IFDIR | S_IRUGO | S_IXUGO); if (!inode) return ERR_PTR(-ENOENT); --- linux-5.19.0.orig/fs/proc/nommu.c +++ linux-5.19.0/fs/proc/nommu.c @@ -40,7 +40,10 @@ file = region->vm_file; if (file) { - struct inode *inode = file_inode(region->vm_file); + struct inode *inode; + + file = vmr_pr_or_file(region); + inode = file_inode(file); dev = inode->i_sb->s_dev; ino = inode->i_ino; } --- linux-5.19.0.orig/fs/proc/task_mmu.c +++ linux-5.19.0/fs/proc/task_mmu.c @@ -281,7 +281,10 @@ const char *name = NULL; if (file) { - struct inode *inode = file_inode(vma->vm_file); + struct inode *inode; + + file = vma_pr_or_file(vma); + inode = file_inode(file); dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; @@ -525,10 +528,12 @@ struct vm_area_struct *vma = walk->vma; bool locked = !!(vma->vm_flags & VM_LOCKED); struct page *page = NULL; - bool migration = false; + bool migration = false, young = false, dirty = false; if (pte_present(*pte)) { page = vm_normal_page(vma, addr, *pte); + young = pte_young(*pte); + dirty = pte_dirty(*pte); } else if (is_swap_pte(*pte)) { swp_entry_t swpent = pte_to_swp_entry(*pte); @@ -558,8 +563,7 @@ if (!page) return; - smaps_account(mss, page, false, pte_young(*pte), pte_dirty(*pte), - locked, migration); + smaps_account(mss, page, false, young, dirty, locked, migration); } #ifdef CONFIG_TRANSPARENT_HUGEPAGE @@ -965,7 +969,7 @@ vma = vma->vm_next; } - show_vma_header_prefix(m, priv->mm->mmap->vm_start, + show_vma_header_prefix(m, priv->mm->mmap ? priv->mm->mmap->vm_start : 0, last_vma_end, 0, 0, 0, 0); seq_pad(m, ' '); seq_puts(m, "[rollup]\n"); @@ -1908,7 +1912,7 @@ struct proc_maps_private *proc_priv = &numa_priv->proc_maps; struct vm_area_struct *vma = v; struct numa_maps *md = &numa_priv->md; - struct file *file = vma->vm_file; + struct file *file = vma_pr_or_file(vma); struct mm_struct *mm = vma->vm_mm; struct mempolicy *pol; char buffer[64]; --- linux-5.19.0.orig/fs/proc/task_nommu.c +++ linux-5.19.0/fs/proc/task_nommu.c @@ -155,7 +155,10 @@ file = vma->vm_file; if (file) { - struct inode *inode = file_inode(vma->vm_file); + struct inode *inode; + + file = vma_pr_or_file(vma); + inode = file_inode(file); dev = inode->i_sb->s_dev; ino = inode->i_ino; pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT; --- linux-5.19.0.orig/fs/proc/version_signature.c +++ linux-5.19.0/fs/proc/version_signature.c @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include +#include +#include + +static int version_signature_proc_show(struct seq_file *m, void *v) +{ + seq_printf(m, "%s\n", CONFIG_VERSION_SIGNATURE); + return 0; +} + +static int version_signature_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, version_signature_proc_show, NULL); +} + +static const struct proc_ops version_signature_proc_fops = { + .proc_open = version_signature_proc_open, + .proc_read = seq_read, + .proc_lseek = seq_lseek, + .proc_release = single_release, +}; + +static int __init proc_version_signature_init(void) +{ + proc_create("version_signature", 0, NULL, &version_signature_proc_fops); + return 0; +} +module_init(proc_version_signature_init); --- linux-5.19.0.orig/fs/pstore/Kconfig +++ linux-5.19.0/fs/pstore/Kconfig @@ -126,6 +126,7 @@ config PSTORE_PMSG bool "Log user space messages" depends on PSTORE + select RT_MUTEXES help When the option is enabled, pstore will export a character interface /dev/pmsg0 to log user space messages. On reboot --- linux-5.19.0.orig/fs/pstore/pmsg.c +++ linux-5.19.0/fs/pstore/pmsg.c @@ -7,9 +7,10 @@ #include #include #include +#include #include "internal.h" -static DEFINE_MUTEX(pmsg_lock); +static DEFINE_RT_MUTEX(pmsg_lock); static ssize_t write_pmsg(struct file *file, const char __user *buf, size_t count, loff_t *ppos) @@ -28,9 +29,9 @@ if (!access_ok(buf, count)) return -EFAULT; - mutex_lock(&pmsg_lock); + rt_mutex_lock(&pmsg_lock); ret = psinfo->write_user(&record, buf); - mutex_unlock(&pmsg_lock); + rt_mutex_unlock(&pmsg_lock); return ret ? ret : count; } --- linux-5.19.0.orig/fs/pstore/ram.c +++ linux-5.19.0/fs/pstore/ram.c @@ -735,6 +735,7 @@ /* Make sure we didn't get bogus platform data pointer. */ if (!pdata) { pr_err("NULL platform data\n"); + err = -EINVAL; goto fail_out; } @@ -742,6 +743,7 @@ !pdata->ftrace_size && !pdata->pmsg_size)) { pr_err("The memory size and the record/console size must be " "non-zero\n"); + err = -EINVAL; goto fail_out; } --- linux-5.19.0.orig/fs/pstore/ram_core.c +++ linux-5.19.0/fs/pstore/ram_core.c @@ -439,7 +439,11 @@ phys_addr_t addr = page_start + i * PAGE_SIZE; pages[i] = pfn_to_page(addr >> PAGE_SHIFT); } - vaddr = vmap(pages, page_count, VM_MAP, prot); + /* + * VM_IOREMAP used here to bypass this region during vread() + * and kmap_atomic() (i.e. kcore) to avoid __va() failures. + */ + vaddr = vmap(pages, page_count, VM_MAP | VM_IOREMAP, prot); kfree(pages); /* --- linux-5.19.0.orig/fs/quota/quota_tree.c +++ linux-5.19.0/fs/quota/quota_tree.c @@ -71,6 +71,35 @@ return ret; } +static inline int do_check_range(struct super_block *sb, const char *val_name, + uint val, uint min_val, uint max_val) +{ + if (val < min_val || val > max_val) { + quota_error(sb, "Getting %s %u out of range %u-%u", + val_name, val, min_val, max_val); + return -EUCLEAN; + } + + return 0; +} + +static int check_dquot_block_header(struct qtree_mem_dqinfo *info, + struct qt_disk_dqdbheader *dh) +{ + int err = 0; + + err = do_check_range(info->dqi_sb, "dqdh_next_free", + le32_to_cpu(dh->dqdh_next_free), 0, + info->dqi_blocks - 1); + if (err) + return err; + err = do_check_range(info->dqi_sb, "dqdh_prev_free", + le32_to_cpu(dh->dqdh_prev_free), 0, + info->dqi_blocks - 1); + + return err; +} + /* Remove empty block from list and return it */ static int get_free_dqblk(struct qtree_mem_dqinfo *info) { @@ -85,6 +114,9 @@ ret = read_blk(info, blk, buf); if (ret < 0) goto out_buf; + ret = check_dquot_block_header(info, dh); + if (ret) + goto out_buf; info->dqi_free_blk = le32_to_cpu(dh->dqdh_next_free); } else { @@ -232,6 +264,9 @@ *err = read_blk(info, blk, buf); if (*err < 0) goto out_buf; + *err = check_dquot_block_header(info, dh); + if (*err) + goto out_buf; } else { blk = get_free_dqblk(info); if ((int)blk < 0) { @@ -424,6 +459,9 @@ goto out_buf; } dh = (struct qt_disk_dqdbheader *)buf; + ret = check_dquot_block_header(info, dh); + if (ret) + goto out_buf; le16_add_cpu(&dh->dqdh_entries, -1); if (!le16_to_cpu(dh->dqdh_entries)) { /* Block got free? */ ret = remove_free_dqentry(info, buf, blk); --- linux-5.19.0.orig/fs/read_write.c +++ linux-5.19.0/fs/read_write.c @@ -509,14 +509,9 @@ } /* caller is responsible for file_start_write/file_end_write */ -ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) +ssize_t __kernel_write_iter(struct file *file, struct iov_iter *from, loff_t *pos) { - struct kvec iov = { - .iov_base = (void *)buf, - .iov_len = min_t(size_t, count, MAX_RW_COUNT), - }; struct kiocb kiocb; - struct iov_iter iter; ssize_t ret; if (WARN_ON_ONCE(!(file->f_mode & FMODE_WRITE))) @@ -532,8 +527,7 @@ init_sync_kiocb(&kiocb, file); kiocb.ki_pos = pos ? *pos : 0; - iov_iter_kvec(&iter, WRITE, &iov, 1, iov.iov_len); - ret = file->f_op->write_iter(&kiocb, &iter); + ret = file->f_op->write_iter(&kiocb, from); if (ret > 0) { if (pos) *pos = kiocb.ki_pos; @@ -543,6 +537,18 @@ inc_syscw(current); return ret; } + +/* caller is responsible for file_start_write/file_end_write */ +ssize_t __kernel_write(struct file *file, const void *buf, size_t count, loff_t *pos) +{ + struct kvec iov = { + .iov_base = (void *)buf, + .iov_len = min_t(size_t, count, MAX_RW_COUNT), + }; + struct iov_iter iter; + iov_iter_kvec(&iter, WRITE, &iov, 1, iov.iov_len); + return __kernel_write_iter(file, &iter, pos); +} /* * This "EXPORT_SYMBOL_GPL()" is more of a "EXPORT_SYMBOL_DONTUSE()", * but autofs is one of the few internal kernel users that actually @@ -1395,6 +1401,8 @@ struct file *file_out, loff_t pos_out, size_t len, unsigned int flags) { + lockdep_assert(sb_write_started(file_inode(file_out)->i_sb)); + return do_splice_direct(file_in, &pos_in, file_out, &pos_out, len > MAX_RW_COUNT ? MAX_RW_COUNT : len, 0); } @@ -1431,7 +1439,9 @@ * and several different sets of file_operations, but they all end up * using the same ->copy_file_range() function pointer. */ - if (file_out->f_op->copy_file_range) { + if (flags & COPY_FILE_SPLICE) { + /* cross sb splice is allowed */ + } else if (file_out->f_op->copy_file_range) { if (file_in->f_op->copy_file_range != file_out->f_op->copy_file_range) return -EXDEV; @@ -1481,8 +1491,9 @@ size_t len, unsigned int flags) { ssize_t ret; + bool splice = flags & COPY_FILE_SPLICE; - if (flags != 0) + if (flags & ~COPY_FILE_SPLICE) return -EINVAL; ret = generic_copy_file_checks(file_in, pos_in, file_out, pos_out, &len, @@ -1508,14 +1519,14 @@ * same sb using clone, but for filesystems where both clone and copy * are supported (e.g. nfs,cifs), we only call the copy method. */ - if (file_out->f_op->copy_file_range) { + if (!splice && file_out->f_op->copy_file_range) { ret = file_out->f_op->copy_file_range(file_in, pos_in, file_out, pos_out, len, flags); goto done; } - if (file_in->f_op->remap_file_range && + if (!splice && file_in->f_op->remap_file_range && file_inode(file_in)->i_sb == file_inode(file_out)->i_sb) { ret = file_in->f_op->remap_file_range(file_in, pos_in, file_out, pos_out, @@ -1535,6 +1546,8 @@ * consistent story about which filesystems support copy_file_range() * and which filesystems do not, that will allow userspace tools to * make consistent desicions w.r.t using copy_file_range(). + * + * We also get here if caller (e.g. nfsd) requested COPY_FILE_SPLICE. */ ret = generic_copy_file_range(file_in, pos_in, file_out, pos_out, len, flags); @@ -1589,6 +1602,10 @@ pos_out = f_out.file->f_pos; } + ret = -EINVAL; + if (flags != 0) + goto out; + ret = vfs_copy_file_range(f_in.file, pos_in, f_out.file, pos_out, len, flags); if (ret > 0) { --- linux-5.19.0.orig/fs/reiserfs/namei.c +++ linux-5.19.0/fs/reiserfs/namei.c @@ -696,6 +696,7 @@ out_failed: reiserfs_write_unlock(dir->i_sb); + reiserfs_security_free(&security); return retval; } @@ -779,6 +780,7 @@ out_failed: reiserfs_write_unlock(dir->i_sb); + reiserfs_security_free(&security); return retval; } @@ -878,6 +880,7 @@ retval = journal_end(&th); out_failed: reiserfs_write_unlock(dir->i_sb); + reiserfs_security_free(&security); return retval; } @@ -1194,6 +1197,7 @@ retval = journal_end(&th); out_failed: reiserfs_write_unlock(parent_dir->i_sb); + reiserfs_security_free(&security); return retval; } --- linux-5.19.0.orig/fs/reiserfs/xattr_security.c +++ linux-5.19.0/fs/reiserfs/xattr_security.c @@ -50,6 +50,7 @@ int error; sec->name = NULL; + sec->value = NULL; /* Don't add selinux attributes on xattrs - they'll never get used */ if (IS_PRIVATE(dir)) @@ -95,7 +96,6 @@ void reiserfs_security_free(struct reiserfs_security_handle *sec) { - kfree(sec->name); kfree(sec->value); sec->name = NULL; sec->value = NULL; --- linux-5.19.0.orig/fs/shiftfs.c +++ linux-5.19.0/fs/shiftfs.c @@ -0,0 +1,2204 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +struct shiftfs_super_info { + struct vfsmount *mnt; + struct user_namespace *userns; + /* creds of process who created the super block */ + const struct cred *creator_cred; + bool mark; + unsigned int passthrough; + unsigned int passthrough_mark; +}; + +static void shiftfs_fill_inode(struct inode *inode, unsigned long ino, + umode_t mode, dev_t dev, struct dentry *dentry); + +#define SHIFTFS_PASSTHROUGH_NONE 0 +#define SHIFTFS_PASSTHROUGH_STAT 1 +#define SHIFTFS_PASSTHROUGH_IOCTL 2 +#define SHIFTFS_PASSTHROUGH_ALL \ + (SHIFTFS_PASSTHROUGH_STAT | SHIFTFS_PASSTHROUGH_IOCTL) + +static inline bool shiftfs_passthrough_ioctls(struct shiftfs_super_info *info) +{ + if (!(info->passthrough & SHIFTFS_PASSTHROUGH_IOCTL)) + return false; + + return true; +} + +static inline bool shiftfs_passthrough_statfs(struct shiftfs_super_info *info) +{ + if (!(info->passthrough & SHIFTFS_PASSTHROUGH_STAT)) + return false; + + return true; +} + +enum { + OPT_MARK, + OPT_PASSTHROUGH, + OPT_LAST, +}; + +/* global filesystem options */ +static const match_table_t tokens = { + { OPT_MARK, "mark" }, + { OPT_PASSTHROUGH, "passthrough=%u" }, + { OPT_LAST, NULL } +}; + +static const struct cred *shiftfs_override_creds(const struct super_block *sb) +{ + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + + return override_creds(sbinfo->creator_cred); +} + +static inline void shiftfs_revert_object_creds(const struct cred *oldcred, + struct cred *newcred) +{ + revert_creds(oldcred); + put_cred(newcred); +} + +static kuid_t shift_kuid(struct user_namespace *from, struct user_namespace *to, + kuid_t kuid) +{ + uid_t uid = from_kuid(from, kuid); + return make_kuid(to, uid); +} + +static kgid_t shift_kgid(struct user_namespace *from, struct user_namespace *to, + kgid_t kgid) +{ + gid_t gid = from_kgid(from, kgid); + return make_kgid(to, gid); +} + +static int shiftfs_override_object_creds(const struct super_block *sb, + const struct cred **oldcred, + struct cred **newcred, + struct dentry *dentry, umode_t mode, + bool hardlink) +{ + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + kuid_t fsuid = current_fsuid(); + kgid_t fsgid = current_fsgid(); + + *oldcred = shiftfs_override_creds(sb); + + *newcred = prepare_creds(); + if (!*newcred) { + revert_creds(*oldcred); + return -ENOMEM; + } + + (*newcred)->fsuid = shift_kuid(sb->s_user_ns, sbinfo->userns, fsuid); + (*newcred)->fsgid = shift_kgid(sb->s_user_ns, sbinfo->userns, fsgid); + + if (!hardlink) { + int err = security_dentry_create_files_as(dentry, mode, + &dentry->d_name, + *oldcred, *newcred); + if (err) { + shiftfs_revert_object_creds(*oldcred, *newcred); + return err; + } + } + + put_cred(override_creds(*newcred)); + return 0; +} + +static void shiftfs_copyattr(struct inode *from, struct inode *to) +{ + struct user_namespace *from_ns = from->i_sb->s_user_ns; + struct user_namespace *to_ns = to->i_sb->s_user_ns; + + to->i_uid = shift_kuid(from_ns, to_ns, from->i_uid); + to->i_gid = shift_kgid(from_ns, to_ns, from->i_gid); + to->i_mode = from->i_mode; + to->i_atime = from->i_atime; + to->i_mtime = from->i_mtime; + to->i_ctime = from->i_ctime; + i_size_write(to, i_size_read(from)); +} + +static void shiftfs_copyflags(struct inode *from, struct inode *to) +{ + unsigned int mask = S_SYNC | S_IMMUTABLE | S_APPEND | S_NOATIME; + + inode_set_flags(to, from->i_flags & mask, mask); +} + +static void shiftfs_file_accessed(struct file *file) +{ + struct inode *upperi, *loweri; + + if (file->f_flags & O_NOATIME) + return; + + upperi = file_inode(file); + loweri = upperi->i_private; + + if (!loweri) + return; + + upperi->i_mtime = loweri->i_mtime; + upperi->i_ctime = loweri->i_ctime; + + touch_atime(&file->f_path); +} + +static int shiftfs_parse_mount_options(struct shiftfs_super_info *sbinfo, + char *options) +{ + char *p; + substring_t args[MAX_OPT_ARGS]; + + sbinfo->mark = false; + sbinfo->passthrough = 0; + + while ((p = strsep(&options, ",")) != NULL) { + int err, intarg, token; + + if (!*p) + continue; + + token = match_token(p, tokens, args); + switch (token) { + case OPT_MARK: + sbinfo->mark = true; + break; + case OPT_PASSTHROUGH: + err = match_int(&args[0], &intarg); + if (err) + return err; + + if (intarg & ~SHIFTFS_PASSTHROUGH_ALL) + return -EINVAL; + + sbinfo->passthrough = intarg; + break; + default: + return -EINVAL; + } + } + + return 0; +} + +static void shiftfs_d_release(struct dentry *dentry) +{ + struct dentry *lowerd = dentry->d_fsdata; + + if (lowerd) + dput(lowerd); +} + +static struct dentry *shiftfs_d_real(struct dentry *dentry, + const struct inode *inode) +{ + struct dentry *lowerd = dentry->d_fsdata; + + if (inode && d_inode(dentry) == inode) + return dentry; + + lowerd = d_real(lowerd, inode); + if (lowerd && (!inode || inode == d_inode(lowerd))) + return lowerd; + + WARN(1, "shiftfs_d_real(%pd4, %s:%lu): real dentry not found\n", dentry, + inode ? inode->i_sb->s_id : "NULL", inode ? inode->i_ino : 0); + return dentry; +} + +static int shiftfs_d_weak_revalidate(struct dentry *dentry, unsigned int flags) +{ + int err = 1; + struct dentry *lowerd = dentry->d_fsdata; + + if (d_is_negative(lowerd) != d_is_negative(dentry)) + return 0; + + if ((lowerd->d_flags & DCACHE_OP_WEAK_REVALIDATE)) + err = lowerd->d_op->d_weak_revalidate(lowerd, flags); + + if (d_really_is_positive(dentry)) { + struct inode *inode = d_inode(dentry); + struct inode *loweri = d_inode(lowerd); + + shiftfs_copyattr(loweri, inode); + } + + return err; +} + +static int shiftfs_d_revalidate(struct dentry *dentry, unsigned int flags) +{ + int err = 1; + struct dentry *lowerd = dentry->d_fsdata; + + if (d_unhashed(lowerd) || + ((d_is_negative(lowerd) != d_is_negative(dentry)))) + return 0; + + if (flags & LOOKUP_RCU) + return -ECHILD; + + if ((lowerd->d_flags & DCACHE_OP_REVALIDATE)) + err = lowerd->d_op->d_revalidate(lowerd, flags); + + if (d_really_is_positive(dentry)) { + struct inode *inode = d_inode(dentry); + struct inode *loweri = d_inode(lowerd); + + shiftfs_copyattr(loweri, inode); + } + + return err; +} + +static const struct dentry_operations shiftfs_dentry_ops = { + .d_release = shiftfs_d_release, + .d_real = shiftfs_d_real, + .d_revalidate = shiftfs_d_revalidate, + .d_weak_revalidate = shiftfs_d_weak_revalidate, +}; + +static const char *shiftfs_get_link(struct dentry *dentry, struct inode *inode, + struct delayed_call *done) +{ + const char *p; + const struct cred *oldcred; + struct dentry *lowerd; + + /* RCU lookup not supported */ + if (!dentry) + return ERR_PTR(-ECHILD); + + lowerd = dentry->d_fsdata; + oldcred = shiftfs_override_creds(dentry->d_sb); + p = vfs_get_link(lowerd, done); + revert_creds(oldcred); + + return p; +} + +static int shiftfs_setxattr(struct dentry *dentry, struct inode *inode, + const char *name, const void *value, + size_t size, int flags) +{ + struct dentry *lowerd = dentry->d_fsdata; + int err; + const struct cred *oldcred; + + oldcred = shiftfs_override_creds(dentry->d_sb); + err = vfs_setxattr(&init_user_ns, lowerd, name, value, size, flags); + revert_creds(oldcred); + + shiftfs_copyattr(lowerd->d_inode, inode); + + return err; +} + +static int shiftfs_xattr_get(const struct xattr_handler *handler, + struct dentry *dentry, struct inode *inode, + const char *name, void *value, size_t size) +{ + struct dentry *lowerd = dentry->d_fsdata; + int err; + const struct cred *oldcred; + + oldcred = shiftfs_override_creds(dentry->d_sb); + err = vfs_getxattr(&init_user_ns, lowerd, name, value, size); + revert_creds(oldcred); + + return err; +} + +static ssize_t shiftfs_listxattr(struct dentry *dentry, char *list, + size_t size) +{ + struct dentry *lowerd = dentry->d_fsdata; + int err; + const struct cred *oldcred; + + oldcred = shiftfs_override_creds(dentry->d_sb); + err = vfs_listxattr(lowerd, list, size); + revert_creds(oldcred); + + return err; +} + +static int shiftfs_removexattr(struct user_namespace *ns, + struct dentry *dentry, const char *name) +{ + struct dentry *lowerd = dentry->d_fsdata; + int err; + const struct cred *oldcred; + + oldcred = shiftfs_override_creds(dentry->d_sb); + err = vfs_removexattr(&init_user_ns, lowerd, name); + revert_creds(oldcred); + + /* update c/mtime */ + shiftfs_copyattr(lowerd->d_inode, d_inode(dentry)); + + return err; +} + +static int shiftfs_xattr_set(const struct xattr_handler *handler, + struct user_namespace *ns, + struct dentry *dentry, struct inode *inode, + const char *name, const void *value, size_t size, + int flags) +{ + if (!value) + return shiftfs_removexattr(&init_user_ns, dentry, name); + return shiftfs_setxattr(dentry, inode, name, value, size, flags); +} + +static int shiftfs_inode_test(struct inode *inode, void *data) +{ + return inode->i_private == data; +} + +static int shiftfs_inode_set(struct inode *inode, void *data) +{ + inode->i_private = data; + return 0; +} + +static int shiftfs_create_object(struct inode *diri, struct dentry *dentry, + umode_t mode, const char *symlink, + struct dentry *hardlink, bool excl) +{ + int err; + const struct cred *oldcred; + struct cred *newcred; + void *loweri_iop_ptr = NULL; + umode_t modei = mode; + struct super_block *dir_sb = diri->i_sb; + struct dentry *lowerd_new = dentry->d_fsdata; + struct inode *inode = NULL, *loweri_dir = diri->i_private; + const struct inode_operations *loweri_dir_iop = loweri_dir->i_op; + struct dentry *lowerd_link = NULL; + + if (hardlink) { + loweri_iop_ptr = loweri_dir_iop->link; + } else { + switch (mode & S_IFMT) { + case S_IFDIR: + loweri_iop_ptr = loweri_dir_iop->mkdir; + break; + case S_IFREG: + loweri_iop_ptr = loweri_dir_iop->create; + break; + case S_IFLNK: + loweri_iop_ptr = loweri_dir_iop->symlink; + break; + case S_IFSOCK: + /* fall through */ + case S_IFIFO: + loweri_iop_ptr = loweri_dir_iop->mknod; + break; + } + } + if (!loweri_iop_ptr) { + err = -EINVAL; + goto out_iput; + } + + inode_lock_nested(loweri_dir, I_MUTEX_PARENT); + + if (!hardlink) { + inode = new_inode(dir_sb); + if (!inode) { + err = -ENOMEM; + goto out_iput; + } + + /* + * new_inode() will have added the new inode to the super + * block's list of inodes. Further below we will call + * inode_insert5() Which would perform the same operation again + * thereby corrupting the list. To avoid this raise I_CREATING + * in i_state which will cause inode_insert5() to skip this + * step. I_CREATING will be cleared by d_instantiate_new() + * below. + */ + spin_lock(&inode->i_lock); + inode->i_state |= I_CREATING; + spin_unlock(&inode->i_lock); + + inode_init_owner(&init_user_ns, inode, diri, mode); + modei = inode->i_mode; + } + + err = shiftfs_override_object_creds(dentry->d_sb, &oldcred, &newcred, + dentry, modei, hardlink != NULL); + if (err) + goto out_iput; + + if (hardlink) { + lowerd_link = hardlink->d_fsdata; + err = vfs_link(lowerd_link, &init_user_ns, loweri_dir, lowerd_new, NULL); + } else { + switch (modei & S_IFMT) { + case S_IFDIR: + err = vfs_mkdir(&init_user_ns, loweri_dir, lowerd_new, modei); + break; + case S_IFREG: + err = vfs_create(&init_user_ns, loweri_dir, lowerd_new, modei, excl); + break; + case S_IFLNK: + err = vfs_symlink(&init_user_ns, loweri_dir, lowerd_new, symlink); + break; + case S_IFSOCK: + /* fall through */ + case S_IFIFO: + err = vfs_mknod(&init_user_ns, loweri_dir, lowerd_new, modei, 0); + break; + default: + err = -EINVAL; + break; + } + } + + shiftfs_revert_object_creds(oldcred, newcred); + + if (!err && WARN_ON(!lowerd_new->d_inode)) + err = -EIO; + if (err) + goto out_iput; + + if (hardlink) { + inode = d_inode(hardlink); + ihold(inode); + + /* copy up times from lower inode */ + shiftfs_copyattr(d_inode(lowerd_link), inode); + set_nlink(d_inode(hardlink), d_inode(lowerd_link)->i_nlink); + d_instantiate(dentry, inode); + } else { + struct inode *inode_tmp; + struct inode *loweri_new = d_inode(lowerd_new); + + inode_tmp = inode_insert5(inode, (unsigned long)loweri_new, + shiftfs_inode_test, shiftfs_inode_set, + loweri_new); + if (unlikely(inode_tmp != inode)) { + pr_err_ratelimited("shiftfs: newly created inode found in cache\n"); + iput(inode_tmp); + err = -EINVAL; + goto out_iput; + } + + ihold(loweri_new); + shiftfs_fill_inode(inode, loweri_new->i_ino, loweri_new->i_mode, + 0, lowerd_new); + d_instantiate_new(dentry, inode); + } + + shiftfs_copyattr(loweri_dir, diri); + if (loweri_iop_ptr == loweri_dir_iop->mkdir) + set_nlink(diri, loweri_dir->i_nlink); + + inode = NULL; + +out_iput: + iput(inode); + inode_unlock(loweri_dir); + + return err; +} + +static int shiftfs_create(struct user_namespace *ns, + struct inode *dir, struct dentry *dentry, + umode_t mode, bool excl) +{ + mode |= S_IFREG; + + return shiftfs_create_object(dir, dentry, mode, NULL, NULL, excl); +} + +static int shiftfs_mkdir(struct user_namespace *ns, struct inode *dir, struct dentry *dentry, + umode_t mode) +{ + mode |= S_IFDIR; + + return shiftfs_create_object(dir, dentry, mode, NULL, NULL, false); +} + +static int shiftfs_link(struct dentry *hardlink, struct inode *dir, + struct dentry *dentry) +{ + return shiftfs_create_object(dir, dentry, 0, NULL, hardlink, false); +} + +static int shiftfs_mknod(struct user_namespace *ns, + struct inode *dir, struct dentry *dentry, umode_t mode, + dev_t rdev) +{ + if (!S_ISFIFO(mode) && !S_ISSOCK(mode)) + return -EPERM; + + return shiftfs_create_object(dir, dentry, mode, NULL, NULL, false); +} + +static int shiftfs_symlink(struct user_namespace *ns, struct inode *dir, struct dentry *dentry, + const char *symlink) +{ + return shiftfs_create_object(dir, dentry, S_IFLNK, symlink, NULL, false); +} + +static int shiftfs_rm(struct inode *dir, struct dentry *dentry, bool rmdir) +{ + struct dentry *lowerd = dentry->d_fsdata; + struct inode *loweri = dir->i_private; + struct inode *inode = d_inode(dentry); + int err; + const struct cred *oldcred; + + dget(lowerd); + oldcred = shiftfs_override_creds(dentry->d_sb); + inode_lock_nested(loweri, I_MUTEX_PARENT); + if (rmdir) + err = vfs_rmdir(&init_user_ns, loweri, lowerd); + else + err = vfs_unlink(&init_user_ns, loweri, lowerd, NULL); + revert_creds(oldcred); + + if (!err) { + d_drop(dentry); + + if (rmdir) + clear_nlink(inode); + else + drop_nlink(inode); + } + inode_unlock(loweri); + + shiftfs_copyattr(loweri, dir); + dput(lowerd); + + return err; +} + +static int shiftfs_unlink(struct inode *dir, struct dentry *dentry) +{ + return shiftfs_rm(dir, dentry, false); +} + +static int shiftfs_rmdir(struct inode *dir, struct dentry *dentry) +{ + return shiftfs_rm(dir, dentry, true); +} + +static int shiftfs_rename(struct user_namespace *ns, + struct inode *olddir, struct dentry *old, + struct inode *newdir, struct dentry *new, + unsigned int flags) +{ + struct dentry *lowerd_dir_old = old->d_parent->d_fsdata, + *lowerd_dir_new = new->d_parent->d_fsdata, + *lowerd_old = old->d_fsdata, *lowerd_new = new->d_fsdata, + *trapd; + struct inode *loweri_dir_old = lowerd_dir_old->d_inode, + *loweri_dir_new = lowerd_dir_new->d_inode; + struct renamedata rd = { + .old_mnt_userns = &init_user_ns, + .old_dir = loweri_dir_old, + .old_dentry = lowerd_old, + .new_mnt_userns = &init_user_ns, + .new_dir = loweri_dir_new, + .new_dentry = lowerd_new, + }; + int err = -EINVAL; + const struct cred *oldcred; + + trapd = lock_rename(lowerd_dir_new, lowerd_dir_old); + + if (trapd == lowerd_old || trapd == lowerd_new) + goto out_unlock; + + oldcred = shiftfs_override_creds(old->d_sb); + err = vfs_rename(&rd); + revert_creds(oldcred); + + shiftfs_copyattr(loweri_dir_old, olddir); + shiftfs_copyattr(loweri_dir_new, newdir); + +out_unlock: + unlock_rename(lowerd_dir_new, lowerd_dir_old); + + return err; +} + +static struct dentry *shiftfs_lookup(struct inode *dir, struct dentry *dentry, + unsigned int flags) +{ + struct dentry *new; + struct inode *newi; + const struct cred *oldcred; + struct dentry *lowerd = dentry->d_parent->d_fsdata; + struct inode *inode = NULL, *loweri = lowerd->d_inode; + + inode_lock(loweri); + oldcred = shiftfs_override_creds(dentry->d_sb); + new = lookup_one_len(dentry->d_name.name, lowerd, dentry->d_name.len); + revert_creds(oldcred); + inode_unlock(loweri); + + if (IS_ERR(new)) + return new; + + dentry->d_fsdata = new; + + newi = new->d_inode; + if (!newi) + goto out; + + inode = iget5_locked(dentry->d_sb, (unsigned long)newi, + shiftfs_inode_test, shiftfs_inode_set, newi); + if (!inode) { + dput(new); + return ERR_PTR(-ENOMEM); + } + if (inode->i_state & I_NEW) { + /* + * inode->i_private set by shiftfs_inode_set(), but we still + * need to take a reference + */ + ihold(newi); + shiftfs_fill_inode(inode, newi->i_ino, newi->i_mode, 0, new); + unlock_new_inode(inode); + } + +out: + return d_splice_alias(inode, dentry); +} + +static int shiftfs_permission(struct user_namespace *ns, struct inode *inode, int mask) +{ + int err; + const struct cred *oldcred; + struct inode *loweri = inode->i_private; + + if (!loweri) { + WARN_ON(!(mask & MAY_NOT_BLOCK)); + return -ECHILD; + } + + err = generic_permission(&init_user_ns, inode, mask); + if (err) + return err; + + oldcred = shiftfs_override_creds(inode->i_sb); + err = inode_permission(&init_user_ns, loweri, mask); + revert_creds(oldcred); + + return err; +} + +static int shiftfs_fiemap(struct inode *inode, + struct fiemap_extent_info *fieinfo, u64 start, + u64 len) +{ + int err; + const struct cred *oldcred; + struct inode *loweri = inode->i_private; + + if (!loweri->i_op->fiemap) + return -EOPNOTSUPP; + + oldcred = shiftfs_override_creds(inode->i_sb); + if (fieinfo->fi_flags & FIEMAP_FLAG_SYNC) + filemap_write_and_wait(loweri->i_mapping); + err = loweri->i_op->fiemap(loweri, fieinfo, start, len); + revert_creds(oldcred); + + return err; +} + +static int shiftfs_tmpfile(struct user_namespace *ns, + struct inode *dir, struct dentry *dentry, + umode_t mode) +{ + int err; + const struct cred *oldcred; + struct dentry *lowerd = dentry->d_fsdata; + struct inode *loweri = dir->i_private; + + if (!loweri->i_op->tmpfile) + return -EOPNOTSUPP; + + oldcred = shiftfs_override_creds(dir->i_sb); + err = loweri->i_op->tmpfile(&init_user_ns, loweri, lowerd, mode); + revert_creds(oldcred); + + return err; +} + +static int shiftfs_setattr(struct user_namespace *ns, struct dentry *dentry, struct iattr *attr) +{ + struct dentry *lowerd = dentry->d_fsdata; + struct inode *loweri = lowerd->d_inode; + struct iattr newattr; + const struct cred *oldcred; + struct super_block *sb = dentry->d_sb; + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + int err; + + err = setattr_prepare(&init_user_ns, dentry, attr); + if (err) + return err; + + newattr = *attr; + newattr.ia_uid = shift_kuid(sb->s_user_ns, sbinfo->userns, attr->ia_uid); + newattr.ia_gid = shift_kgid(sb->s_user_ns, sbinfo->userns, attr->ia_gid); + + /* + * mode change is for clearing setuid/setgid bits. Allow lower fs + * to interpret this in its own way. + */ + if (newattr.ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) + newattr.ia_valid &= ~ATTR_MODE; + + inode_lock(loweri); + oldcred = shiftfs_override_creds(dentry->d_sb); + err = notify_change(&init_user_ns, lowerd, &newattr, NULL); + revert_creds(oldcred); + inode_unlock(loweri); + + shiftfs_copyattr(loweri, d_inode(dentry)); + + return err; +} + +static int shiftfs_getattr(struct user_namespace *ns, + const struct path *path, struct kstat *stat, + u32 request_mask, unsigned int query_flags) +{ + struct inode *inode = path->dentry->d_inode; + struct dentry *lowerd = path->dentry->d_fsdata; + struct inode *loweri = lowerd->d_inode; + struct shiftfs_super_info *info = path->dentry->d_sb->s_fs_info; + struct path newpath = { .mnt = info->mnt, .dentry = lowerd }; + struct user_namespace *from_ns = loweri->i_sb->s_user_ns; + struct user_namespace *to_ns = inode->i_sb->s_user_ns; + const struct cred *oldcred; + int err; + + oldcred = shiftfs_override_creds(inode->i_sb); + err = vfs_getattr(&newpath, stat, request_mask, query_flags); + revert_creds(oldcred); + + if (err) + return err; + + /* transform the underlying id */ + stat->uid = shift_kuid(from_ns, to_ns, stat->uid); + stat->gid = shift_kgid(from_ns, to_ns, stat->gid); + return 0; +} + +#ifdef CONFIG_SHIFT_FS_POSIX_ACL + +static int +shift_acl_ids(struct user_namespace *from, struct user_namespace *to, + struct posix_acl *acl) +{ + int i; + + for (i = 0; i < acl->a_count; i++) { + struct posix_acl_entry *e = &acl->a_entries[i]; + switch(e->e_tag) { + case ACL_USER: + e->e_uid = shift_kuid(from, to, e->e_uid); + if (!uid_valid(e->e_uid)) + return -EOVERFLOW; + break; + case ACL_GROUP: + e->e_gid = shift_kgid(from, to, e->e_gid); + if (!gid_valid(e->e_gid)) + return -EOVERFLOW; + break; + } + } + return 0; +} + +static void +shift_acl_xattr_ids(struct user_namespace *from, struct user_namespace *to, + void *value, size_t size) +{ + struct posix_acl_xattr_header *header = value; + struct posix_acl_xattr_entry *entry = (void *)(header + 1), *end; + int count; + kuid_t kuid; + kgid_t kgid; + + if (!value) + return; + if (size < sizeof(struct posix_acl_xattr_header)) + return; + if (header->a_version != cpu_to_le32(POSIX_ACL_XATTR_VERSION)) + return; + + count = posix_acl_xattr_count(size); + if (count < 0) + return; + if (count == 0) + return; + + for (end = entry + count; entry != end; entry++) { + switch(le16_to_cpu(entry->e_tag)) { + case ACL_USER: + kuid = make_kuid(&init_user_ns, le32_to_cpu(entry->e_id)); + kuid = shift_kuid(from, to, kuid); + entry->e_id = cpu_to_le32(from_kuid(&init_user_ns, kuid)); + break; + case ACL_GROUP: + kgid = make_kgid(from, le32_to_cpu(entry->e_id)); + kgid = shift_kgid(from, to, kgid); + entry->e_id = cpu_to_le32(from_kgid(from, kgid)); + break; + default: + break; + } + } +} + +static struct posix_acl * +shiftfs_get_acl(struct inode *inode, int type, bool rcu) +{ + struct inode *loweri = inode->i_private; + const struct cred *oldcred; + struct posix_acl *lower_acl, *acl = NULL; + struct user_namespace *from_ns = loweri->i_sb->s_user_ns; + struct user_namespace *to_ns = inode->i_sb->s_user_ns; + int size; + int err; + + if (rcu) + return ERR_PTR(-ECHILD); + + if (!IS_POSIXACL(loweri)) + return NULL; + + oldcred = shiftfs_override_creds(inode->i_sb); + lower_acl = get_acl(loweri, type); + revert_creds(oldcred); + + if (lower_acl && !IS_ERR(lower_acl)) { + /* XXX: export posix_acl_clone? */ + size = sizeof(struct posix_acl) + + lower_acl->a_count * sizeof(struct posix_acl_entry); + acl = kmemdup(lower_acl, size, GFP_KERNEL); + posix_acl_release(lower_acl); + + if (!acl) + return ERR_PTR(-ENOMEM); + + refcount_set(&acl->a_refcount, 1); + + err = shift_acl_ids(from_ns, to_ns, acl); + if (err) { + kfree(acl); + return ERR_PTR(err); + } + } + + return acl; +} + +static int +shiftfs_posix_acl_xattr_get(const struct xattr_handler *handler, + struct dentry *dentry, struct inode *inode, + const char *name, void *buffer, size_t size) +{ + struct inode *loweri = inode->i_private; + int ret; + + ret = shiftfs_xattr_get(NULL, dentry, inode, handler->name, + buffer, size); + if (ret < 0) + return ret; + + inode_lock(loweri); + shift_acl_xattr_ids(loweri->i_sb->s_user_ns, inode->i_sb->s_user_ns, + buffer, size); + inode_unlock(loweri); + return ret; +} + +static int +shiftfs_posix_acl_xattr_set(const struct xattr_handler *handler, + struct user_namespace *ns, + struct dentry *dentry, struct inode *inode, + const char *name, const void *value, + size_t size, int flags) +{ + struct inode *loweri = inode->i_private; + int err; + + if (!IS_POSIXACL(loweri) || !loweri->i_op->set_acl) + return -EOPNOTSUPP; + if (handler->flags == ACL_TYPE_DEFAULT && !S_ISDIR(inode->i_mode)) + return value ? -EACCES : 0; + if (!inode_owner_or_capable(&init_user_ns, inode)) + return -EPERM; + + if (value) { + shift_acl_xattr_ids(inode->i_sb->s_user_ns, + loweri->i_sb->s_user_ns, + (void *)value, size); + err = shiftfs_setxattr(dentry, inode, handler->name, value, + size, flags); + } else { + err = shiftfs_removexattr(&init_user_ns, dentry, handler->name); + } + + if (!err) + shiftfs_copyattr(loweri, inode); + + return err; +} + +static const struct xattr_handler +shiftfs_posix_acl_access_xattr_handler = { + .name = XATTR_NAME_POSIX_ACL_ACCESS, + .flags = ACL_TYPE_ACCESS, + .get = shiftfs_posix_acl_xattr_get, + .set = shiftfs_posix_acl_xattr_set, +}; + +static const struct xattr_handler +shiftfs_posix_acl_default_xattr_handler = { + .name = XATTR_NAME_POSIX_ACL_DEFAULT, + .flags = ACL_TYPE_DEFAULT, + .get = shiftfs_posix_acl_xattr_get, + .set = shiftfs_posix_acl_xattr_set, +}; + +#else /* !CONFIG_SHIFT_FS_POSIX_ACL */ + +#define shiftfs_get_acl NULL + +#endif /* CONFIG_SHIFT_FS_POSIX_ACL */ + +static const struct inode_operations shiftfs_dir_inode_operations = { + .lookup = shiftfs_lookup, + .mkdir = shiftfs_mkdir, + .symlink = shiftfs_symlink, + .unlink = shiftfs_unlink, + .rmdir = shiftfs_rmdir, + .rename = shiftfs_rename, + .link = shiftfs_link, + .setattr = shiftfs_setattr, + .create = shiftfs_create, + .mknod = shiftfs_mknod, + .permission = shiftfs_permission, + .getattr = shiftfs_getattr, + .listxattr = shiftfs_listxattr, + .get_acl = shiftfs_get_acl, +}; + +static const struct inode_operations shiftfs_file_inode_operations = { + .fiemap = shiftfs_fiemap, + .getattr = shiftfs_getattr, + .get_acl = shiftfs_get_acl, + .listxattr = shiftfs_listxattr, + .permission = shiftfs_permission, + .setattr = shiftfs_setattr, + .tmpfile = shiftfs_tmpfile, +}; + +static const struct inode_operations shiftfs_special_inode_operations = { + .getattr = shiftfs_getattr, + .get_acl = shiftfs_get_acl, + .listxattr = shiftfs_listxattr, + .permission = shiftfs_permission, + .setattr = shiftfs_setattr, +}; + +static const struct inode_operations shiftfs_symlink_inode_operations = { + .getattr = shiftfs_getattr, + .get_link = shiftfs_get_link, + .listxattr = shiftfs_listxattr, + .setattr = shiftfs_setattr, +}; + +static struct file *shiftfs_open_realfile(const struct file *file, + struct inode *realinode) +{ + struct file *realfile; + const struct cred *old_cred; + struct inode *inode = file_inode(file); + struct dentry *lowerd = file->f_path.dentry->d_fsdata; + struct shiftfs_super_info *info = inode->i_sb->s_fs_info; + struct path realpath = { .mnt = info->mnt, .dentry = lowerd }; + + old_cred = shiftfs_override_creds(inode->i_sb); + realfile = open_with_fake_path(&realpath, file->f_flags, realinode, + info->creator_cred); + revert_creds(old_cred); + + return realfile; +} + +#define SHIFTFS_SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT) + +static int shiftfs_change_flags(struct file *file, unsigned int flags) +{ + struct inode *inode = file_inode(file); + int err; + + /* if some flag changed that cannot be changed then something's amiss */ + if (WARN_ON((file->f_flags ^ flags) & ~SHIFTFS_SETFL_MASK)) + return -EIO; + + flags &= SHIFTFS_SETFL_MASK; + + if (((flags ^ file->f_flags) & O_APPEND) && IS_APPEND(inode)) + return -EPERM; + + if (flags & O_DIRECT) { + if (!file->f_mapping->a_ops || + !file->f_mapping->a_ops->direct_IO) + return -EINVAL; + } + + if (file->f_op->check_flags) { + err = file->f_op->check_flags(flags); + if (err) + return err; + } + + spin_lock(&file->f_lock); + file->f_flags = (file->f_flags & ~SHIFTFS_SETFL_MASK) | flags; + spin_unlock(&file->f_lock); + + return 0; +} + +static int shiftfs_open(struct inode *inode, struct file *file) +{ + struct file *realfile; + + realfile = shiftfs_open_realfile(file, inode->i_private); + if (IS_ERR(realfile)) + return PTR_ERR(realfile); + + file->private_data = realfile; + /* For O_DIRECT dentry_open() checks f_mapping->a_ops->direct_IO. */ + file->f_mapping = realfile->f_mapping; + + return 0; +} + +static int shiftfs_dir_open(struct inode *inode, struct file *file) +{ + struct file *realfile; + const struct cred *oldcred; + struct dentry *lowerd = file->f_path.dentry->d_fsdata; + struct shiftfs_super_info *info = inode->i_sb->s_fs_info; + struct path realpath = { .mnt = info->mnt, .dentry = lowerd }; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + realfile = dentry_open(&realpath, file->f_flags | O_NOATIME, + info->creator_cred); + revert_creds(oldcred); + if (IS_ERR(realfile)) + return PTR_ERR(realfile); + + file->private_data = realfile; + + return 0; +} + +static int shiftfs_release(struct inode *inode, struct file *file) +{ + struct file *realfile = file->private_data; + + if (realfile) + fput(realfile); + + return 0; +} + +static int shiftfs_dir_release(struct inode *inode, struct file *file) +{ + return shiftfs_release(inode, file); +} + +static loff_t shiftfs_dir_llseek(struct file *file, loff_t offset, int whence) +{ + struct file *realfile = file->private_data; + + return vfs_llseek(realfile, offset, whence); +} + +static loff_t shiftfs_file_llseek(struct file *file, loff_t offset, int whence) +{ + struct inode *realinode = file_inode(file)->i_private; + + return generic_file_llseek_size(file, offset, whence, + realinode->i_sb->s_maxbytes, + i_size_read(realinode)); +} + +/* XXX: Need to figure out what to to about atime updates, maybe other + * timestamps too ... ref. ovl_file_accessed() */ + +static rwf_t shiftfs_iocb_to_rwf(struct kiocb *iocb) +{ + int ifl = iocb->ki_flags; + rwf_t flags = 0; + + if (ifl & IOCB_NOWAIT) + flags |= RWF_NOWAIT; + if (ifl & IOCB_HIPRI) + flags |= RWF_HIPRI; + if (ifl & IOCB_DSYNC) + flags |= RWF_DSYNC; + if (ifl & IOCB_SYNC) + flags |= RWF_SYNC; + + return flags; +} + +static int shiftfs_real_fdget(const struct file *file, struct fd *lowerfd) +{ + struct file *realfile; + + if (file->f_op->open != shiftfs_open && + file->f_op->open != shiftfs_dir_open) + return -EINVAL; + + realfile = file->private_data; + lowerfd->flags = 0; + lowerfd->file = realfile; + + /* Did the flags change since open? */ + if (unlikely(file->f_flags & ~lowerfd->file->f_flags)) + return shiftfs_change_flags(lowerfd->file, file->f_flags); + + return 0; +} + +static ssize_t shiftfs_read_iter(struct kiocb *iocb, struct iov_iter *iter) +{ + struct file *file = iocb->ki_filp; + struct fd lowerfd; + const struct cred *oldcred; + ssize_t ret; + + if (!iov_iter_count(iter)) + return 0; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + return ret; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + ret = vfs_iter_read(lowerfd.file, iter, &iocb->ki_pos, + shiftfs_iocb_to_rwf(iocb)); + revert_creds(oldcred); + + shiftfs_file_accessed(file); + + fdput(lowerfd); + return ret; +} + +static ssize_t shiftfs_write_iter(struct kiocb *iocb, struct iov_iter *iter) +{ + struct file *file = iocb->ki_filp; + struct inode *inode = file_inode(file); + struct fd lowerfd; + const struct cred *oldcred; + ssize_t ret; + + if (!iov_iter_count(iter)) + return 0; + + inode_lock(inode); + /* Update mode */ + shiftfs_copyattr(inode->i_private, inode); + ret = file_remove_privs(file); + if (ret) + goto out_unlock; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + goto out_unlock; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + file_start_write(lowerfd.file); + ret = vfs_iter_write(lowerfd.file, iter, &iocb->ki_pos, + shiftfs_iocb_to_rwf(iocb)); + file_end_write(lowerfd.file); + revert_creds(oldcred); + + /* Update size */ + shiftfs_copyattr(inode->i_private, inode); + + fdput(lowerfd); + +out_unlock: + inode_unlock(inode); + return ret; +} + +static int shiftfs_fsync(struct file *file, loff_t start, loff_t end, + int datasync) +{ + struct fd lowerfd; + const struct cred *oldcred; + int ret; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + return ret; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + ret = vfs_fsync_range(lowerfd.file, start, end, datasync); + revert_creds(oldcred); + + fdput(lowerfd); + return ret; +} + +static int shiftfs_mmap(struct file *file, struct vm_area_struct *vma) +{ + struct file *realfile = file->private_data; + const struct cred *oldcred; + int ret; + + if (!realfile->f_op->mmap) + return -ENODEV; + + if (WARN_ON(file != vma->vm_file)) + return -EIO; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + vma->vm_file = get_file(realfile); + ret = call_mmap(vma->vm_file, vma); + revert_creds(oldcred); + + shiftfs_file_accessed(file); + + if (ret) { + /* + * Drop refcount from new vm_file value and restore original + * vm_file value + */ + vma->vm_file = file; + fput(realfile); + } else { + /* Drop refcount from previous vm_file value */ + fput(file); + } + + return ret; +} + +static long shiftfs_fallocate(struct file *file, int mode, loff_t offset, + loff_t len) +{ + struct inode *inode = file_inode(file); + struct inode *loweri = inode->i_private; + struct fd lowerfd; + const struct cred *oldcred; + int ret; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + return ret; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + ret = vfs_fallocate(lowerfd.file, mode, offset, len); + revert_creds(oldcred); + + /* Update size */ + shiftfs_copyattr(loweri, inode); + + fdput(lowerfd); + return ret; +} + +static int shiftfs_fadvise(struct file *file, loff_t offset, loff_t len, + int advice) +{ + struct fd lowerfd; + const struct cred *oldcred; + int ret; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + return ret; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + ret = vfs_fadvise(lowerfd.file, offset, len, advice); + revert_creds(oldcred); + + fdput(lowerfd); + return ret; +} + +static int shiftfs_override_ioctl_creds(int cmd, const struct super_block *sb, + const struct cred **oldcred, + struct cred **newcred) +{ + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + kuid_t fsuid = current_fsuid(); + kgid_t fsgid = current_fsgid(); + + *oldcred = shiftfs_override_creds(sb); + + *newcred = prepare_creds(); + if (!*newcred) { + revert_creds(*oldcred); + return -ENOMEM; + } + + (*newcred)->fsuid = shift_kuid(sb->s_user_ns, sbinfo->userns, fsuid); + (*newcred)->fsgid = shift_kgid(sb->s_user_ns, sbinfo->userns, fsgid); + + /* clear all caps to prevent bypassing capable() checks */ + cap_clear((*newcred)->cap_bset); + cap_clear((*newcred)->cap_effective); + cap_clear((*newcred)->cap_inheritable); + cap_clear((*newcred)->cap_permitted); + + if (cmd == BTRFS_IOC_SNAP_DESTROY) { + kuid_t kuid_root = make_kuid(sb->s_user_ns, 0); + /* + * Allow the root user in the container to remove subvolumes + * from other users. + */ + if (uid_valid(kuid_root) && uid_eq(fsuid, kuid_root)) + cap_raise((*newcred)->cap_effective, CAP_DAC_OVERRIDE); + } + + put_cred(override_creds(*newcred)); + return 0; +} + +static inline void shiftfs_revert_ioctl_creds(const struct cred *oldcred, + struct cred *newcred) +{ + return shiftfs_revert_object_creds(oldcred, newcred); +} + +static inline bool is_btrfs_snap_ioctl(int cmd) +{ + if ((cmd == BTRFS_IOC_SNAP_CREATE) || (cmd == BTRFS_IOC_SNAP_CREATE_V2)) + return true; + + return false; +} + +static int shiftfs_btrfs_ioctl_fd_restore(int cmd, int fd, void __user *arg, + struct btrfs_ioctl_vol_args *v1, + struct btrfs_ioctl_vol_args_v2 *v2) +{ + int ret; + + if (!is_btrfs_snap_ioctl(cmd)) + return 0; + + if (cmd == BTRFS_IOC_SNAP_CREATE) + ret = copy_to_user(arg, v1, sizeof(*v1)); + else + ret = copy_to_user(arg, v2, sizeof(*v2)); + + close_fd(fd); + kfree(v1); + kfree(v2); + + return ret ? -EFAULT: 0; +} + +static int shiftfs_btrfs_ioctl_fd_replace(int cmd, void __user *arg, + struct btrfs_ioctl_vol_args **b1, + struct btrfs_ioctl_vol_args_v2 **b2, + int *newfd) +{ + int oldfd, ret; + struct fd src; + struct fd lfd = {}; + struct btrfs_ioctl_vol_args *v1 = NULL; + struct btrfs_ioctl_vol_args_v2 *v2 = NULL; + + *b1 = NULL; + *b2 = NULL; + + if (!is_btrfs_snap_ioctl(cmd)) + return 0; + + if (cmd == BTRFS_IOC_SNAP_CREATE) { + v1 = memdup_user(arg, sizeof(*v1)); + if (IS_ERR(v1)) + return PTR_ERR(v1); + oldfd = v1->fd; + } else { + v2 = memdup_user(arg, sizeof(*v2)); + if (IS_ERR(v2)) + return PTR_ERR(v2); + oldfd = v2->fd; + } + + src = fdget(oldfd); + if (!src.file) { + ret = -EINVAL; + goto err_free; + } + + ret = shiftfs_real_fdget(src.file, &lfd); + if (ret) { + fdput(src); + goto err_free; + } + + /* + * shiftfs_real_fdget() does not take a reference to lfd.file, so + * take a reference here to offset the one which will be put by + * close_fd(), and make sure that reference is put on fdput(lfd). + */ + get_file(lfd.file); + lfd.flags |= FDPUT_FPUT; + fdput(src); + + *newfd = get_unused_fd_flags(lfd.file->f_flags); + if (*newfd < 0) { + fdput(lfd); + ret = *newfd; + goto err_free; + } + + fd_install(*newfd, lfd.file); + + if (cmd == BTRFS_IOC_SNAP_CREATE) { + v1->fd = *newfd; + ret = copy_to_user(arg, v1, sizeof(*v1)); + v1->fd = oldfd; + } else { + v2->fd = *newfd; + ret = copy_to_user(arg, v2, sizeof(*v2)); + v2->fd = oldfd; + } + + if (!ret) { + *b1 = v1; + *b2 = v2; + } else { + shiftfs_btrfs_ioctl_fd_restore(cmd, *newfd, arg, v1, v2); + ret = -EFAULT; + } + + return ret; + +err_free: + kfree(v1); + kfree(v2); + + return ret; +} + +static long shiftfs_real_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct fd lowerfd; + struct cred *newcred; + const struct cred *oldcred; + int newfd = -EBADF; + long err = 0, ret = 0; + void __user *argp = (void __user *)arg; + struct super_block *sb = file->f_path.dentry->d_sb; + struct btrfs_ioctl_vol_args *btrfs_v1 = NULL; + struct btrfs_ioctl_vol_args_v2 *btrfs_v2 = NULL; + + ret = shiftfs_btrfs_ioctl_fd_replace(cmd, argp, &btrfs_v1, &btrfs_v2, + &newfd); + if (ret < 0) + return ret; + + ret = shiftfs_real_fdget(file, &lowerfd); + if (ret) + goto out_restore; + + ret = shiftfs_override_ioctl_creds(cmd, sb, &oldcred, &newcred); + if (ret) + goto out_fdput; + + ret = vfs_ioctl(lowerfd.file, cmd, arg); + + shiftfs_revert_ioctl_creds(oldcred, newcred); + + shiftfs_copyattr(file_inode(lowerfd.file), file_inode(file)); + shiftfs_copyflags(file_inode(lowerfd.file), file_inode(file)); + +out_fdput: + fdput(lowerfd); + +out_restore: + err = shiftfs_btrfs_ioctl_fd_restore(cmd, newfd, argp, + btrfs_v1, btrfs_v2); + if (!ret) + ret = err; + + return ret; +} + +static bool in_ioctl_whitelist(int flag, unsigned long arg) +{ + void __user *argp = (void __user *)arg; + u64 flags = 0; + + switch (flag) { + case BTRFS_IOC_FS_INFO: + return true; + case BTRFS_IOC_SNAP_CREATE: + return true; + case BTRFS_IOC_SNAP_CREATE_V2: + return true; + case BTRFS_IOC_SUBVOL_CREATE: + return true; + case BTRFS_IOC_SUBVOL_CREATE_V2: + return true; + case BTRFS_IOC_SUBVOL_GETFLAGS: + return true; + case BTRFS_IOC_SUBVOL_SETFLAGS: + if (copy_from_user(&flags, argp, sizeof(flags))) + return false; + + if (flags & ~BTRFS_SUBVOL_RDONLY) + return false; + + return true; + case BTRFS_IOC_SNAP_DESTROY: + return true; + } + + return false; +} + +static long shiftfs_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case FS_IOC_GETVERSION: + /* fall through */ + case FS_IOC_GETFLAGS: + /* fall through */ + case FS_IOC_SETFLAGS: + break; + default: + if (!in_ioctl_whitelist(cmd, arg) || + !shiftfs_passthrough_ioctls(file->f_path.dentry->d_sb->s_fs_info)) + return -ENOTTY; + } + + return shiftfs_real_ioctl(file, cmd, arg); +} + +static long shiftfs_compat_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case FS_IOC32_GETVERSION: + /* fall through */ + case FS_IOC32_GETFLAGS: + /* fall through */ + case FS_IOC32_SETFLAGS: + break; + default: + if (!in_ioctl_whitelist(cmd, arg) || + !shiftfs_passthrough_ioctls(file->f_path.dentry->d_sb->s_fs_info)) + return -ENOIOCTLCMD; + } + + return shiftfs_real_ioctl(file, cmd, arg); +} + +enum shiftfs_copyop { + SHIFTFS_COPY, + SHIFTFS_CLONE, + SHIFTFS_DEDUPE, +}; + +static ssize_t shiftfs_copyfile(struct file *file_in, loff_t pos_in, + struct file *file_out, loff_t pos_out, u64 len, + unsigned int flags, enum shiftfs_copyop op) +{ + ssize_t ret; + struct fd real_in, real_out; + const struct cred *oldcred; + struct inode *inode_out = file_inode(file_out); + struct inode *loweri = inode_out->i_private; + + ret = shiftfs_real_fdget(file_out, &real_out); + if (ret) + return ret; + + ret = shiftfs_real_fdget(file_in, &real_in); + if (ret) { + fdput(real_out); + return ret; + } + + oldcred = shiftfs_override_creds(inode_out->i_sb); + switch (op) { + case SHIFTFS_COPY: + ret = vfs_copy_file_range(real_in.file, pos_in, real_out.file, + pos_out, len, flags); + break; + + case SHIFTFS_CLONE: + ret = vfs_clone_file_range(real_in.file, pos_in, real_out.file, + pos_out, len, flags); + break; + + case SHIFTFS_DEDUPE: + ret = vfs_dedupe_file_range_one(real_in.file, pos_in, + real_out.file, pos_out, len, + flags); + break; + } + revert_creds(oldcred); + + /* Update size */ + shiftfs_copyattr(loweri, inode_out); + + fdput(real_in); + fdput(real_out); + + return ret; +} + +static ssize_t shiftfs_copy_file_range(struct file *file_in, loff_t pos_in, + struct file *file_out, loff_t pos_out, + size_t len, unsigned int flags) +{ + return shiftfs_copyfile(file_in, pos_in, file_out, pos_out, len, flags, + SHIFTFS_COPY); +} + +static loff_t shiftfs_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) +{ + enum shiftfs_copyop op; + + if (remap_flags & ~(REMAP_FILE_DEDUP | REMAP_FILE_ADVISORY)) + return -EINVAL; + + if (remap_flags & REMAP_FILE_DEDUP) + op = SHIFTFS_DEDUPE; + else + op = SHIFTFS_CLONE; + + return shiftfs_copyfile(file_in, pos_in, file_out, pos_out, len, + remap_flags, op); +} + +static int shiftfs_iterate_shared(struct file *file, struct dir_context *ctx) +{ + const struct cred *oldcred; + int err = -ENOTDIR; + struct file *realfile = file->private_data; + + oldcred = shiftfs_override_creds(file->f_path.dentry->d_sb); + err = iterate_dir(realfile, ctx); + revert_creds(oldcred); + + return err; +} + +const struct file_operations shiftfs_file_operations = { + .open = shiftfs_open, + .release = shiftfs_release, + .llseek = shiftfs_file_llseek, + .read_iter = shiftfs_read_iter, + .write_iter = shiftfs_write_iter, + .fsync = shiftfs_fsync, + .mmap = shiftfs_mmap, + .fallocate = shiftfs_fallocate, + .fadvise = shiftfs_fadvise, + .unlocked_ioctl = shiftfs_ioctl, + .compat_ioctl = shiftfs_compat_ioctl, + .copy_file_range = shiftfs_copy_file_range, + .remap_file_range = shiftfs_remap_file_range, + .splice_read = generic_file_splice_read, + .splice_write = iter_file_splice_write, +}; + +const struct file_operations shiftfs_dir_operations = { + .open = shiftfs_dir_open, + .release = shiftfs_dir_release, + .compat_ioctl = shiftfs_compat_ioctl, + .fsync = shiftfs_fsync, + .iterate_shared = shiftfs_iterate_shared, + .llseek = shiftfs_dir_llseek, + .read = generic_read_dir, + .unlocked_ioctl = shiftfs_ioctl, +}; + +static const struct address_space_operations shiftfs_aops = { + /* For O_DIRECT dentry_open() checks f_mapping->a_ops->direct_IO */ + .direct_IO = noop_direct_IO, +}; + +static void shiftfs_fill_inode(struct inode *inode, unsigned long ino, + umode_t mode, dev_t dev, struct dentry *dentry) +{ + struct inode *loweri; + + inode->i_ino = ino; + inode->i_flags |= S_NOCMTIME; + + mode &= S_IFMT; + inode->i_mode = mode; + switch (mode & S_IFMT) { + case S_IFDIR: + inode->i_op = &shiftfs_dir_inode_operations; + inode->i_fop = &shiftfs_dir_operations; + break; + case S_IFLNK: + inode->i_op = &shiftfs_symlink_inode_operations; + break; + case S_IFREG: + inode->i_op = &shiftfs_file_inode_operations; + inode->i_fop = &shiftfs_file_operations; + inode->i_mapping->a_ops = &shiftfs_aops; + break; + default: + inode->i_op = &shiftfs_special_inode_operations; + init_special_inode(inode, mode, dev); + break; + } + + if (!dentry) + return; + + loweri = dentry->d_inode; + if (!loweri->i_op->get_link) + inode->i_opflags |= IOP_NOFOLLOW; + + shiftfs_copyattr(loweri, inode); + shiftfs_copyflags(loweri, inode); + set_nlink(inode, loweri->i_nlink); +} + +static int shiftfs_show_options(struct seq_file *m, struct dentry *dentry) +{ + struct super_block *sb = dentry->d_sb; + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + + if (sbinfo->mark) + seq_show_option(m, "mark", NULL); + + if (sbinfo->passthrough) + seq_printf(m, ",passthrough=%u", sbinfo->passthrough); + + return 0; +} + +static int shiftfs_statfs(struct dentry *dentry, struct kstatfs *buf) +{ + struct super_block *sb = dentry->d_sb; + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + struct dentry *root = sb->s_root; + struct dentry *realroot = root->d_fsdata; + struct path realpath = { .mnt = sbinfo->mnt, .dentry = realroot }; + int err; + + err = vfs_statfs(&realpath, buf); + if (err) + return err; + + if (!shiftfs_passthrough_statfs(sbinfo)) + buf->f_type = sb->s_magic; + + return 0; +} + +static void shiftfs_evict_inode(struct inode *inode) +{ + struct inode *loweri = inode->i_private; + + clear_inode(inode); + + if (loweri) + iput(loweri); +} + +static void shiftfs_put_super(struct super_block *sb) +{ + struct shiftfs_super_info *sbinfo = sb->s_fs_info; + + if (sbinfo) { + mntput(sbinfo->mnt); + put_cred(sbinfo->creator_cred); + kfree(sbinfo); + } +} + +static const struct xattr_handler shiftfs_xattr_handler = { + .prefix = "", + .get = shiftfs_xattr_get, + .set = shiftfs_xattr_set, +}; + +const struct xattr_handler *shiftfs_xattr_handlers[] = { +#ifdef CONFIG_SHIFT_FS_POSIX_ACL + &shiftfs_posix_acl_access_xattr_handler, + &shiftfs_posix_acl_default_xattr_handler, +#endif + &shiftfs_xattr_handler, + NULL +}; + +static inline bool passthrough_is_subset(int old_flags, int new_flags) +{ + if ((new_flags & old_flags) != new_flags) + return false; + + return true; +} + +static int shiftfs_super_check_flags(unsigned long old_flags, + unsigned long new_flags) +{ + if ((old_flags & SB_RDONLY) && !(new_flags & SB_RDONLY)) + return -EPERM; + + if ((old_flags & SB_NOSUID) && !(new_flags & SB_NOSUID)) + return -EPERM; + + if ((old_flags & SB_NODEV) && !(new_flags & SB_NODEV)) + return -EPERM; + + if ((old_flags & SB_NOEXEC) && !(new_flags & SB_NOEXEC)) + return -EPERM; + + if ((old_flags & SB_NOATIME) && !(new_flags & SB_NOATIME)) + return -EPERM; + + if ((old_flags & SB_NODIRATIME) && !(new_flags & SB_NODIRATIME)) + return -EPERM; + + if (!(old_flags & SB_POSIXACL) && (new_flags & SB_POSIXACL)) + return -EPERM; + + return 0; +} + +static int shiftfs_remount(struct super_block *sb, int *flags, char *data) +{ + int err; + struct shiftfs_super_info new = {}; + struct shiftfs_super_info *info = sb->s_fs_info; + + err = shiftfs_parse_mount_options(&new, data); + if (err) + return err; + + err = shiftfs_super_check_flags(sb->s_flags, *flags); + if (err) + return err; + + /* Mark mount option cannot be changed. */ + if (info->mark || (info->mark != new.mark)) + return -EPERM; + + if (info->passthrough != new.passthrough) { + /* Don't allow exceeding passthrough options of mark mount. */ + if (!passthrough_is_subset(info->passthrough_mark, + info->passthrough)) + return -EPERM; + + info->passthrough = new.passthrough; + } + + return 0; +} + +static const struct super_operations shiftfs_super_ops = { + .put_super = shiftfs_put_super, + .show_options = shiftfs_show_options, + .statfs = shiftfs_statfs, + .remount_fs = shiftfs_remount, + .evict_inode = shiftfs_evict_inode, +}; + +struct shiftfs_data { + void *data; + const char *path; +}; + +static void shiftfs_super_force_flags(struct super_block *sb, + unsigned long lower_flags) +{ + sb->s_flags |= lower_flags & (SB_RDONLY | SB_NOSUID | SB_NODEV | + SB_NOEXEC | SB_NOATIME | SB_NODIRATIME); + + if (!(lower_flags & SB_POSIXACL)) + sb->s_flags &= ~SB_POSIXACL; +} + +static int shiftfs_fill_super(struct super_block *sb, void *raw_data, + int silent) +{ + int err; + struct path path = {}; + struct shiftfs_super_info *sbinfo_mp; + char *name = NULL; + struct inode *inode = NULL; + struct dentry *dentry = NULL; + struct shiftfs_data *data = raw_data; + struct shiftfs_super_info *sbinfo = NULL; + + if (!data->path) + return -EINVAL; + + sb->s_fs_info = kzalloc(sizeof(*sbinfo), GFP_KERNEL); + if (!sb->s_fs_info) + return -ENOMEM; + sbinfo = sb->s_fs_info; + + err = shiftfs_parse_mount_options(sbinfo, data->data); + if (err) + return err; + + /* to mount a mark, must be userns admin */ + if (!sbinfo->mark && !ns_capable(current_user_ns(), CAP_SYS_ADMIN)) + return -EPERM; + + name = kstrdup(data->path, GFP_KERNEL); + if (!name) + return -ENOMEM; + + err = kern_path(name, LOOKUP_FOLLOW, &path); + if (err) + goto out_free_name; + + if (!S_ISDIR(path.dentry->d_inode->i_mode)) { + err = -ENOTDIR; + goto out_put_path; + } + + /* + * It makes no sense to handle idmapped layers from shiftfs. + * And we didn't support it properly anyway. + */ + if (is_idmapped_mnt(path.mnt)) { + err = -EINVAL; + pr_err("idmapped layers are currently not supported\n"); + goto out_put_path; + } + + sb->s_flags |= SB_POSIXACL; + + if (sbinfo->mark) { + struct cred *cred_tmp; + struct super_block *lower_sb = path.mnt->mnt_sb; + + /* to mark a mount point, must root wrt lower s_user_ns */ + if (!ns_capable(lower_sb->s_user_ns, CAP_SYS_ADMIN)) { + err = -EPERM; + goto out_put_path; + } + + /* + * this part is visible unshifted, so make sure no + * executables that could be used to give suid + * privileges + */ + sb->s_iflags = SB_I_NOEXEC; + + shiftfs_super_force_flags(sb, lower_sb->s_flags); + + /* + * Handle nesting of shiftfs mounts by referring this mark + * mount back to the original mark mount. This is more + * efficient and alleviates concerns about stack depth. + */ + if (lower_sb->s_magic == SHIFTFS_MAGIC) { + sbinfo_mp = lower_sb->s_fs_info; + + /* Doesn't make sense to mark a mark mount */ + if (sbinfo_mp->mark) { + err = -EINVAL; + goto out_put_path; + } + + if (!passthrough_is_subset(sbinfo_mp->passthrough, + sbinfo->passthrough)) { + err = -EPERM; + goto out_put_path; + } + + sbinfo->mnt = mntget(sbinfo_mp->mnt); + dentry = dget(path.dentry->d_fsdata); + /* + * Copy up the passthrough mount options from the + * parent mark mountpoint. + */ + sbinfo->passthrough_mark = sbinfo_mp->passthrough_mark; + sbinfo->creator_cred = get_cred(sbinfo_mp->creator_cred); + } else { + sbinfo->mnt = mntget(path.mnt); + dentry = dget(path.dentry); + /* + * For a new mark passthrough_mark and passthrough + * are identical. + */ + sbinfo->passthrough_mark = sbinfo->passthrough; + + cred_tmp = prepare_creds(); + if (!cred_tmp) { + err = -ENOMEM; + goto out_put_path; + } + /* Don't override disk quota limits or use reserved space. */ + cap_lower(cred_tmp->cap_effective, CAP_SYS_RESOURCE); + sbinfo->creator_cred = cred_tmp; + } + } else { + /* + * This leg executes if we're admin capable in the namespace, + * so be very careful. + */ + err = -EPERM; + if (path.dentry->d_sb->s_magic != SHIFTFS_MAGIC) + goto out_put_path; + + sbinfo_mp = path.dentry->d_sb->s_fs_info; + if (!sbinfo_mp->mark) + goto out_put_path; + + if (!passthrough_is_subset(sbinfo_mp->passthrough, + sbinfo->passthrough)) + goto out_put_path; + + sbinfo->mnt = mntget(sbinfo_mp->mnt); + sbinfo->creator_cred = get_cred(sbinfo_mp->creator_cred); + dentry = dget(path.dentry->d_fsdata); + /* + * Copy up passthrough settings from mark mountpoint so we can + * verify when the overlay wants to remount with different + * passthrough settings. + */ + sbinfo->passthrough_mark = sbinfo_mp->passthrough; + shiftfs_super_force_flags(sb, path.mnt->mnt_sb->s_flags); + } + + sb->s_stack_depth = dentry->d_sb->s_stack_depth + 1; + if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + printk(KERN_ERR "shiftfs: maximum stacking depth exceeded\n"); + err = -EINVAL; + goto out_put_path; + } + + inode = new_inode(sb); + if (!inode) { + err = -ENOMEM; + goto out_put_path; + } + shiftfs_fill_inode(inode, dentry->d_inode->i_ino, S_IFDIR, 0, dentry); + + ihold(dentry->d_inode); + inode->i_private = dentry->d_inode; + + sb->s_magic = SHIFTFS_MAGIC; + sb->s_maxbytes = MAX_LFS_FILESIZE; + sb->s_op = &shiftfs_super_ops; + sb->s_xattr = shiftfs_xattr_handlers; + sb->s_d_op = &shiftfs_dentry_ops; + sb->s_root = d_make_root(inode); + if (!sb->s_root) { + err = -ENOMEM; + goto out_put_path; + } + + sb->s_root->d_fsdata = dentry; + sbinfo->userns = get_user_ns(dentry->d_sb->s_user_ns); + shiftfs_copyattr(dentry->d_inode, sb->s_root->d_inode); + + dentry = NULL; + err = 0; + +out_put_path: + path_put(&path); + +out_free_name: + kfree(name); + + dput(dentry); + + return err; +} + +static struct dentry *shiftfs_mount(struct file_system_type *fs_type, + int flags, const char *dev_name, void *data) +{ + struct shiftfs_data d = { data, dev_name }; + + return mount_nodev(fs_type, flags, &d, shiftfs_fill_super); +} + +static struct file_system_type shiftfs_type = { + .owner = THIS_MODULE, + .name = "shiftfs", + .mount = shiftfs_mount, + .kill_sb = kill_anon_super, + .fs_flags = FS_USERNS_MOUNT, +}; + +static int __init shiftfs_init(void) +{ + return register_filesystem(&shiftfs_type); +} + +static void __exit shiftfs_exit(void) +{ + unregister_filesystem(&shiftfs_type); +} + +MODULE_ALIAS_FS("shiftfs"); +MODULE_AUTHOR("James Bottomley"); +MODULE_AUTHOR("Seth Forshee "); +MODULE_AUTHOR("Christian Brauner "); +MODULE_DESCRIPTION("id shifting filesystem"); +MODULE_LICENSE("GPL v2"); +module_init(shiftfs_init) +module_exit(shiftfs_exit) --- linux-5.19.0.orig/fs/super.c +++ linux-5.19.0/fs/super.c @@ -291,7 +291,7 @@ WARN_ON(s->s_inode_lru.node); WARN_ON(!list_empty(&s->s_mounts)); security_sb_free(s); - fscrypt_sb_free(s); + fscrypt_destroy_keyring(s); put_user_ns(s->s_user_ns); kfree(s->s_subtype); call_rcu(&s->rcu, destroy_super_rcu); @@ -451,6 +451,7 @@ evict_inodes(sb); /* only nonzero refcount inodes can have marks */ fsnotify_sb_delete(sb); + fscrypt_destroy_keyring(sb); security_sb_delete(sb); if (sb->s_dio_done_wq) { --- linux-5.19.0.orig/fs/sysv/itree.c +++ linux-5.19.0/fs/sysv/itree.c @@ -438,7 +438,7 @@ res += blocks; direct = 1; } - return blocks; + return res; } int sysv_getattr(struct user_namespace *mnt_userns, const struct path *path, --- linux-5.19.0.orig/fs/tracefs/inode.c +++ linux-5.19.0/fs/tracefs/inode.c @@ -141,6 +141,8 @@ kuid_t uid; kgid_t gid; umode_t mode; + /* Opt_* bitfield. */ + unsigned int opts; }; enum { @@ -241,6 +243,7 @@ kgid_t gid; char *p; + opts->opts = 0; opts->mode = TRACEFS_DEFAULT_MODE; while ((p = strsep(&data, ",")) != NULL) { @@ -275,24 +278,36 @@ * but traditionally tracefs has ignored all mount options */ } + + opts->opts |= BIT(token); } return 0; } -static int tracefs_apply_options(struct super_block *sb) +static int tracefs_apply_options(struct super_block *sb, bool remount) { struct tracefs_fs_info *fsi = sb->s_fs_info; struct inode *inode = d_inode(sb->s_root); struct tracefs_mount_opts *opts = &fsi->mount_opts; - inode->i_mode &= ~S_IALLUGO; - inode->i_mode |= opts->mode; + /* + * On remount, only reset mode/uid/gid if they were provided as mount + * options. + */ + + if (!remount || opts->opts & BIT(Opt_mode)) { + inode->i_mode &= ~S_IALLUGO; + inode->i_mode |= opts->mode; + } - inode->i_uid = opts->uid; + if (!remount || opts->opts & BIT(Opt_uid)) + inode->i_uid = opts->uid; - /* Set all the group ids to the mount option */ - set_gid(sb->s_root, opts->gid); + if (!remount || opts->opts & BIT(Opt_gid)) { + /* Set all the group ids to the mount option */ + set_gid(sb->s_root, opts->gid); + } return 0; } @@ -307,7 +322,7 @@ if (err) goto fail; - tracefs_apply_options(sb); + tracefs_apply_options(sb, true); fail: return err; @@ -359,7 +374,7 @@ sb->s_op = &tracefs_super_operations; - tracefs_apply_options(sb); + tracefs_apply_options(sb, false); return 0; --- linux-5.19.0.orig/fs/udf/inode.c +++ linux-5.19.0/fs/udf/inode.c @@ -439,6 +439,12 @@ iinfo->i_next_alloc_goal++; } + /* + * Block beyond EOF and prealloc extents? Just discard preallocation + * as it is not useful and complicates things. + */ + if (((loff_t)block) << inode->i_blkbits > iinfo->i_lenExtents) + udf_discard_prealloc(inode); udf_clear_extent_cache(inode); phys = inode_getblk(inode, block, &err, &new); if (!phys) @@ -488,8 +494,6 @@ uint32_t add; int count = 0, fake = !(last_ext->extLength & UDF_EXTENT_LENGTH_MASK); struct super_block *sb = inode->i_sb; - struct kernel_lb_addr prealloc_loc = {}; - uint32_t prealloc_len = 0; struct udf_inode_info *iinfo; int err; @@ -510,19 +514,6 @@ ~(sb->s_blocksize - 1); } - /* Last extent are just preallocated blocks? */ - if ((last_ext->extLength & UDF_EXTENT_FLAG_MASK) == - EXT_NOT_RECORDED_ALLOCATED) { - /* Save the extent so that we can reattach it to the end */ - prealloc_loc = last_ext->extLocation; - prealloc_len = last_ext->extLength; - /* Mark the extent as a hole */ - last_ext->extLength = EXT_NOT_RECORDED_NOT_ALLOCATED | - (last_ext->extLength & UDF_EXTENT_LENGTH_MASK); - last_ext->extLocation.logicalBlockNum = 0; - last_ext->extLocation.partitionReferenceNum = 0; - } - /* Can we merge with the previous extent? */ if ((last_ext->extLength & UDF_EXTENT_FLAG_MASK) == EXT_NOT_RECORDED_NOT_ALLOCATED) { @@ -550,7 +541,7 @@ * more extents, we may need to enter possible following * empty indirect extent. */ - if (new_block_bytes || prealloc_len) + if (new_block_bytes) udf_next_aext(inode, last_pos, &tmploc, &tmplen, 0); } @@ -584,17 +575,6 @@ } out: - /* Do we have some preallocated blocks saved? */ - if (prealloc_len) { - err = udf_add_aext(inode, last_pos, &prealloc_loc, - prealloc_len, 1); - if (err) - return err; - last_ext->extLocation = prealloc_loc; - last_ext->extLength = prealloc_len; - count++; - } - /* last_pos should point to the last written extent... */ if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) last_pos->offset -= sizeof(struct short_ad); @@ -610,13 +590,17 @@ static void udf_do_extend_final_block(struct inode *inode, struct extent_position *last_pos, struct kernel_long_ad *last_ext, - uint32_t final_block_len) + uint32_t new_elen) { - struct super_block *sb = inode->i_sb; uint32_t added_bytes; - added_bytes = final_block_len - - (last_ext->extLength & (sb->s_blocksize - 1)); + /* + * Extent already large enough? It may be already rounded up to block + * size... + */ + if (new_elen <= (last_ext->extLength & UDF_EXTENT_LENGTH_MASK)) + return; + added_bytes = (last_ext->extLength & UDF_EXTENT_LENGTH_MASK) - new_elen; last_ext->extLength += added_bytes; UDF_I(inode)->i_lenExtents += added_bytes; @@ -633,12 +617,12 @@ int8_t etype; struct super_block *sb = inode->i_sb; sector_t first_block = newsize >> sb->s_blocksize_bits, offset; - unsigned long partial_final_block; + loff_t new_elen; int adsize; struct udf_inode_info *iinfo = UDF_I(inode); struct kernel_long_ad extent; int err = 0; - int within_final_block; + bool within_last_ext; if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) adsize = sizeof(struct short_ad); @@ -647,8 +631,17 @@ else BUG(); + /* + * When creating hole in file, just don't bother with preserving + * preallocation. It likely won't be very useful anyway. + */ + udf_discard_prealloc(inode); + etype = inode_bmap(inode, first_block, &epos, &eloc, &elen, &offset); - within_final_block = (etype != -1); + within_last_ext = (etype != -1); + /* We don't expect extents past EOF... */ + WARN_ON_ONCE(within_last_ext && + elen > ((loff_t)offset + 1) << inode->i_blkbits); if ((!epos.bh && epos.offset == udf_file_entry_alloc_offset(inode)) || (epos.bh && epos.offset == sizeof(struct allocExtDesc))) { @@ -664,19 +657,17 @@ extent.extLength |= etype << 30; } - partial_final_block = newsize & (sb->s_blocksize - 1); + new_elen = ((loff_t)offset << inode->i_blkbits) | + (newsize & (sb->s_blocksize - 1)); /* File has extent covering the new size (could happen when extending * inside a block)? */ - if (within_final_block) { + if (within_last_ext) { /* Extending file within the last file block */ - udf_do_extend_final_block(inode, &epos, &extent, - partial_final_block); + udf_do_extend_final_block(inode, &epos, &extent, new_elen); } else { - loff_t add = ((loff_t)offset << sb->s_blocksize_bits) | - partial_final_block; - err = udf_do_extend_file(inode, &epos, &extent, add); + err = udf_do_extend_file(inode, &epos, &extent, new_elen); } if (err < 0) @@ -777,10 +768,11 @@ goto out_free; } - /* Are we beyond EOF? */ + /* Are we beyond EOF and preallocated extent? */ if (etype == -1) { int ret; loff_t hole_len; + isBeyondEOF = true; if (count) { if (c) --- linux-5.19.0.orig/fs/udf/namei.c +++ linux-5.19.0/fs/udf/namei.c @@ -240,7 +240,7 @@ poffset - lfi); else { if (!copy_name) { - copy_name = kmalloc(UDF_NAME_LEN, + copy_name = kmalloc(UDF_NAME_LEN_CS0, GFP_NOFS); if (!copy_name) { fi = ERR_PTR(-ENOMEM); @@ -1091,8 +1091,9 @@ return -EINVAL; ofi = udf_find_entry(old_dir, &old_dentry->d_name, &ofibh, &ocfi); - if (IS_ERR(ofi)) { - retval = PTR_ERR(ofi); + if (!ofi || IS_ERR(ofi)) { + if (IS_ERR(ofi)) + retval = PTR_ERR(ofi); goto end_rename; } @@ -1101,8 +1102,7 @@ brelse(ofibh.sbh); tloc = lelb_to_cpu(ocfi.icb.extLocation); - if (!ofi || udf_get_lb_pblock(old_dir->i_sb, &tloc, 0) - != old_inode->i_ino) + if (udf_get_lb_pblock(old_dir->i_sb, &tloc, 0) != old_inode->i_ino) goto end_rename; nfi = udf_find_entry(new_dir, &new_dentry->d_name, &nfibh, &ncfi); --- linux-5.19.0.orig/fs/udf/truncate.c +++ linux-5.19.0/fs/udf/truncate.c @@ -120,60 +120,42 @@ void udf_discard_prealloc(struct inode *inode) { - struct extent_position epos = { NULL, 0, {0, 0} }; + struct extent_position epos = {}; + struct extent_position prev_epos = {}; struct kernel_lb_addr eloc; uint32_t elen; uint64_t lbcount = 0; int8_t etype = -1, netype; - int adsize; struct udf_inode_info *iinfo = UDF_I(inode); + int bsize = 1 << inode->i_blkbits; if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_IN_ICB || - inode->i_size == iinfo->i_lenExtents) + ALIGN(inode->i_size, bsize) == ALIGN(iinfo->i_lenExtents, bsize)) return; - if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_SHORT) - adsize = sizeof(struct short_ad); - else if (iinfo->i_alloc_type == ICBTAG_FLAG_AD_LONG) - adsize = sizeof(struct long_ad); - else - adsize = 0; - epos.block = iinfo->i_location; /* Find the last extent in the file */ - while ((netype = udf_next_aext(inode, &epos, &eloc, &elen, 1)) != -1) { - etype = netype; + while ((netype = udf_next_aext(inode, &epos, &eloc, &elen, 0)) != -1) { + brelse(prev_epos.bh); + prev_epos = epos; + if (prev_epos.bh) + get_bh(prev_epos.bh); + + etype = udf_next_aext(inode, &epos, &eloc, &elen, 1); lbcount += elen; } if (etype == (EXT_NOT_RECORDED_ALLOCATED >> 30)) { - epos.offset -= adsize; lbcount -= elen; - extent_trunc(inode, &epos, &eloc, etype, elen, 0); - if (!epos.bh) { - iinfo->i_lenAlloc = - epos.offset - - udf_file_entry_alloc_offset(inode); - mark_inode_dirty(inode); - } else { - struct allocExtDesc *aed = - (struct allocExtDesc *)(epos.bh->b_data); - aed->lengthAllocDescs = - cpu_to_le32(epos.offset - - sizeof(struct allocExtDesc)); - if (!UDF_QUERY_FLAG(inode->i_sb, UDF_FLAG_STRICT) || - UDF_SB(inode->i_sb)->s_udfrev >= 0x0201) - udf_update_tag(epos.bh->b_data, epos.offset); - else - udf_update_tag(epos.bh->b_data, - sizeof(struct allocExtDesc)); - mark_buffer_dirty_inode(epos.bh, inode); - } + udf_delete_aext(inode, prev_epos); + udf_free_blocks(inode->i_sb, inode, &eloc, 0, + DIV_ROUND_UP(elen, 1 << inode->i_blkbits)); } /* This inode entry is in-memory only and thus we don't have to mark * the inode dirty */ iinfo->i_lenExtents = lbcount; brelse(epos.bh); + brelse(prev_epos.bh); } static void udf_update_alloc_ext_desc(struct inode *inode, --- linux-5.19.0.orig/fs/userfaultfd.c +++ linux-5.19.0/fs/userfaultfd.c @@ -991,7 +991,7 @@ int fd; fd = anon_inode_getfd_secure("[userfaultfd]", &userfaultfd_fops, new, - O_RDWR | (new->flags & UFFD_SHARED_FCNTL_FLAGS), inode); + O_RDONLY | (new->flags & UFFD_SHARED_FCNTL_FLAGS), inode); if (fd < 0) return fd; @@ -1601,6 +1601,10 @@ wake_userfault(vma->vm_userfaultfd_ctx.ctx, &range); } + /* Reset ptes for the whole vma range if wr-protected */ + if (userfaultfd_wp(vma)) + uffd_wp_range(mm, vma, start, vma_end - start, false); + new_flags = vma->vm_flags & ~__VM_UFFD_FLAGS; prev = vma_merge(mm, prev, start, vma_end, new_flags, vma->anon_vma, vma->vm_file, vma->vm_pgoff, @@ -2092,7 +2096,7 @@ mmgrab(ctx->mm); fd = anon_inode_getfd_secure("[userfaultfd]", &userfaultfd_fops, ctx, - O_RDWR | (flags & UFFD_SHARED_FCNTL_FLAGS), NULL); + O_RDONLY | (flags & UFFD_SHARED_FCNTL_FLAGS), NULL); if (fd < 0) { mmdrop(ctx->mm); kmem_cache_free(userfaultfd_ctx_cachep, ctx); --- linux-5.19.0.orig/fs/xattr.c +++ linux-5.19.0/fs/xattr.c @@ -239,6 +239,7 @@ return error; } +EXPORT_SYMBOL_GPL(__vfs_setxattr_noperm); /** * __vfs_setxattr_locked - set an extended attribute while holding the inode @@ -473,6 +474,34 @@ EXPORT_SYMBOL(__vfs_removexattr); /** + * __vfs_removexattr_noperm - perform removexattr operation without + * performing permission checks. + * + * @dentry - object to perform setxattr on + * @name - xattr name to set + * + * returns the result of the internal setxattr or setsecurity operations. + * + * This function requires the caller to lock the inode's i_mutex before it + * is executed. It also assumes that the caller will make the appropriate + * permission checks. + */ +int +__vfs_removexattr_noperm(struct user_namespace *mnt_userns, + struct dentry *dentry, const char *name) +{ + int error; + + error =__vfs_removexattr(mnt_userns, dentry, name); + if (!error) { + fsnotify_xattr(dentry); + evm_inode_post_removexattr(dentry, name); + } + return error; +} +EXPORT_SYMBOL_GPL(__vfs_removexattr_noperm); + +/** * __vfs_removexattr_locked - set an extended attribute while holding the inode * lock * @@ -502,12 +531,7 @@ if (error) goto out; - error = __vfs_removexattr(mnt_userns, dentry, name); - - if (!error) { - fsnotify_xattr(dentry); - evm_inode_post_removexattr(dentry, name); - } + error = __vfs_removexattr_noperm(mnt_userns, dentry, name); out: return error; @@ -1136,7 +1160,7 @@ ssize_t simple_xattr_list(struct inode *inode, struct simple_xattrs *xattrs, char *buffer, size_t size) { - bool trusted = capable(CAP_SYS_ADMIN); + bool trusted = ns_capable_noaudit(&init_user_ns, CAP_SYS_ADMIN); struct simple_xattr *xattr; ssize_t remaining_size = size; int err = 0; --- linux-5.19.0.orig/fs/xfs/xfs_super.c +++ linux-5.19.0/fs/xfs/xfs_super.c @@ -650,7 +650,7 @@ static void xfs_fs_dirty_inode( struct inode *inode, - int flag) + int flags) { struct xfs_inode *ip = XFS_I(inode); struct xfs_mount *mp = ip->i_mount; @@ -658,7 +658,13 @@ if (!(inode->i_sb->s_flags & SB_LAZYTIME)) return; - if (flag != I_DIRTY_SYNC || !(inode->i_state & I_DIRTY_TIME)) + + /* + * Only do the timestamp update if the inode is dirty (I_DIRTY_SYNC) + * and has dirty timestamp (I_DIRTY_TIME). I_DIRTY_TIME can be passed + * in flags possibly together with I_DIRTY_SYNC. + */ + if ((flags & ~I_DIRTY_TIME) != I_DIRTY_SYNC || !(flags & I_DIRTY_TIME)) return; if (xfs_trans_alloc(mp, &M_RES(mp)->tr_fsyncts, 0, 0, 0, &tp)) --- linux-5.19.0.orig/fs/zonefs/super.c +++ linux-5.19.0/fs/zonefs/super.c @@ -41,6 +41,13 @@ return; /* + * For zones that transitioned to the offline or readonly condition, + * we only need to clear the active state. + */ + if (zi->i_flags & (ZONEFS_ZONE_OFFLINE | ZONEFS_ZONE_READONLY)) + goto out; + + /* * If the zone is active, that is, if it is explicitly open or * partially written, check if it was already accounted as active. */ @@ -53,6 +60,7 @@ return; } +out: /* The zone is not active. If it was, update the active count */ if (zi->i_flags & ZONEFS_ZONE_ACTIVE) { zi->i_flags &= ~ZONEFS_ZONE_ACTIVE; @@ -333,6 +341,7 @@ inode->i_flags |= S_IMMUTABLE; inode->i_mode &= ~0777; zone->wp = zone->start; + zi->i_flags |= ZONEFS_ZONE_OFFLINE; return 0; case BLK_ZONE_COND_READONLY: /* @@ -351,8 +360,10 @@ zone->cond = BLK_ZONE_COND_OFFLINE; inode->i_mode &= ~0777; zone->wp = zone->start; + zi->i_flags |= ZONEFS_ZONE_OFFLINE; return 0; } + zi->i_flags |= ZONEFS_ZONE_READONLY; inode->i_mode &= ~0222; return i_size_read(inode); case BLK_ZONE_COND_FULL: @@ -487,8 +498,7 @@ struct super_block *sb = inode->i_sb; struct zonefs_sb_info *sbi = ZONEFS_SB(sb); unsigned int noio_flag; - unsigned int nr_zones = - zi->i_zone_size >> (sbi->s_zone_sectors_shift + SECTOR_SHIFT); + unsigned int nr_zones = 1; struct zonefs_ioerr_data err = { .inode = inode, .write = write, @@ -496,6 +506,15 @@ int ret; /* + * The only files that have more than one zone are conventional zone + * files with aggregated conventional zones, for which the inode zone + * size is always larger than the device zone size. + */ + if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev)) + nr_zones = zi->i_zone_size >> + (sbi->s_zone_sectors_shift + SECTOR_SHIFT); + + /* * Memory allocations in blkdev_report_zones() can trigger a memory * reclaim which may in turn cause a recursion into zonefs as well as * struct request allocations for the same device. The former case may @@ -1416,6 +1435,14 @@ zi->i_ztype = type; zi->i_zsector = zone->start; zi->i_zone_size = zone->len << SECTOR_SHIFT; + if (zi->i_zone_size > bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT && + !(sbi->s_features & ZONEFS_F_AGGRCNV)) { + zonefs_err(sb, + "zone size %llu doesn't match device's zone sectors %llu\n", + zi->i_zone_size, + bdev_zone_sectors(sb->s_bdev) << SECTOR_SHIFT); + return -EINVAL; + } zi->i_max_size = min_t(loff_t, MAX_LFS_FILESIZE, zone->capacity << SECTOR_SHIFT); @@ -1465,11 +1492,11 @@ struct inode *dir = d_inode(parent); struct dentry *dentry; struct inode *inode; - int ret; + int ret = -ENOMEM; dentry = d_alloc_name(parent, name); if (!dentry) - return NULL; + return ERR_PTR(ret); inode = new_inode(parent->d_sb); if (!inode) @@ -1494,7 +1521,7 @@ dput: dput(dentry); - return NULL; + return ERR_PTR(ret); } struct zonefs_zone_data { @@ -1514,7 +1541,7 @@ struct blk_zone *zone, *next, *end; const char *zgroup_name; char *file_name; - struct dentry *dir; + struct dentry *dir, *dent; unsigned int n = 0; int ret; @@ -1532,8 +1559,8 @@ zgroup_name = "seq"; dir = zonefs_create_inode(sb->s_root, zgroup_name, NULL, type); - if (!dir) { - ret = -ENOMEM; + if (IS_ERR(dir)) { + ret = PTR_ERR(dir); goto free; } @@ -1579,8 +1606,9 @@ * Use the file number within its group as file name. */ snprintf(file_name, ZONEFS_NAME_MAX - 1, "%u", n); - if (!zonefs_create_inode(dir, file_name, zone, type)) { - ret = -ENOMEM; + dent = zonefs_create_inode(dir, file_name, zone, type); + if (IS_ERR(dent)) { + ret = PTR_ERR(dent); goto free; } @@ -1917,18 +1945,18 @@ if (ret) return ret; - ret = register_filesystem(&zonefs_type); + ret = zonefs_sysfs_init(); if (ret) goto destroy_inodecache; - ret = zonefs_sysfs_init(); + ret = register_filesystem(&zonefs_type); if (ret) - goto unregister_fs; + goto sysfs_exit; return 0; -unregister_fs: - unregister_filesystem(&zonefs_type); +sysfs_exit: + zonefs_sysfs_exit(); destroy_inodecache: zonefs_destroy_inodecache(); @@ -1937,9 +1965,9 @@ static void __exit zonefs_exit(void) { + unregister_filesystem(&zonefs_type); zonefs_sysfs_exit(); zonefs_destroy_inodecache(); - unregister_filesystem(&zonefs_type); } MODULE_AUTHOR("Damien Le Moal"); --- linux-5.19.0.orig/fs/zonefs/zonefs.h +++ linux-5.19.0/fs/zonefs/zonefs.h @@ -39,8 +39,10 @@ return ZONEFS_ZTYPE_SEQ; } -#define ZONEFS_ZONE_OPEN (1 << 0) -#define ZONEFS_ZONE_ACTIVE (1 << 1) +#define ZONEFS_ZONE_OPEN (1U << 0) +#define ZONEFS_ZONE_ACTIVE (1U << 1) +#define ZONEFS_ZONE_OFFLINE (1U << 2) +#define ZONEFS_ZONE_READONLY (1U << 3) /* * In-memory inode data. --- linux-5.19.0.orig/include/acpi/cppc_acpi.h +++ linux-5.19.0/include/acpi/cppc_acpi.h @@ -17,7 +17,7 @@ #include #include -/* Support CPPCv2 and CPPCv3 */ +/* CPPCv2 and CPPCv3 support */ #define CPPC_V2_REV 2 #define CPPC_V3_REV 3 #define CPPC_V2_NUM_ENT 21 --- linux-5.19.0.orig/include/acpi/ghes.h +++ linux-5.19.0/include/acpi/ghes.h @@ -71,7 +71,7 @@ void ghes_unregister_vendor_record_notifier(struct notifier_block *nb); #endif -int ghes_estatus_pool_init(int num_ghes); +int ghes_estatus_pool_init(unsigned int num_ghes); /* From drivers/edac/ghes_edac.c */ --- linux-5.19.0.orig/include/asm-generic/bitops/atomic.h +++ linux-5.19.0/include/asm-generic/bitops/atomic.h @@ -39,9 +39,6 @@ unsigned long mask = BIT_MASK(nr); p += BIT_WORD(nr); - if (READ_ONCE(*p) & mask) - return 1; - old = arch_atomic_long_fetch_or(mask, (atomic_long_t *)p); return !!(old & mask); } @@ -53,9 +50,6 @@ unsigned long mask = BIT_MASK(nr); p += BIT_WORD(nr); - if (!(READ_ONCE(*p) & mask)) - return 0; - old = arch_atomic_long_fetch_andnot(mask, (atomic_long_t *)p); return !!(old & mask); } --- linux-5.19.0.orig/include/asm-generic/sections.h +++ linux-5.19.0/include/asm-generic/sections.h @@ -97,7 +97,7 @@ /** * memory_intersects - checks if the region occupied by an object intersects * with another memory region - * @begin: virtual address of the beginning of the memory regien + * @begin: virtual address of the beginning of the memory region * @end: virtual address of the end of the memory region * @virt: virtual address of the memory object * @size: size of the memory object @@ -110,7 +110,10 @@ { void *vend = virt + size; - return (virt >= begin && virt < end) || (vend >= begin && vend < end); + if (virt < end && vend > begin) + return true; + + return false; } /** --- linux-5.19.0.orig/include/asm-generic/tlb.h +++ linux-5.19.0/include/asm-generic/tlb.h @@ -222,12 +222,16 @@ #define tlb_needs_table_invalidate() (true) #endif +void tlb_remove_table_sync_one(void); + #else #ifdef tlb_needs_table_invalidate #error tlb_needs_table_invalidate() requires MMU_GATHER_RCU_TABLE_FREE #endif +static inline void tlb_remove_table_sync_one(void) { } + #endif /* CONFIG_MMU_GATHER_RCU_TABLE_FREE */ --- linux-5.19.0.orig/include/asm-generic/vmlinux.lds.h +++ linux-5.19.0/include/asm-generic/vmlinux.lds.h @@ -333,6 +333,7 @@ #define DATA_DATA \ *(.xiptext) \ *(DATA_MAIN) \ + *(.data..decrypted) \ *(.ref.data) \ *(.data..shared_aligned) /* percpu related */ \ MEM_KEEP(init.data*) \ @@ -543,10 +544,9 @@ */ #ifdef CONFIG_CFI_CLANG #define TEXT_CFI_JT \ - . = ALIGN(PMD_SIZE); \ + ALIGN_FUNCTION(); \ __cfi_jt_start = .; \ *(.text..L.cfi.jumptable .text..L.cfi.jumptable.*) \ - . = ALIGN(PMD_SIZE); \ __cfi_jt_end = .; #else #define TEXT_CFI_JT @@ -976,7 +976,6 @@ #ifdef CONFIG_AMD_MEM_ENCRYPT #define PERCPU_DECRYPTED_SECTION \ . = ALIGN(PAGE_SIZE); \ - *(.data..decrypted) \ *(.data..percpu..decrypted) \ . = ALIGN(PAGE_SIZE); #else --- linux-5.19.0.orig/include/crypto/internal/blake2s.h +++ linux-5.19.0/include/crypto/internal/blake2s.h @@ -8,7 +8,6 @@ #define _CRYPTO_INTERNAL_BLAKE2S_H #include -#include #include void blake2s_compress_generic(struct blake2s_state *state, const u8 *block, @@ -19,111 +18,4 @@ bool blake2s_selftest(void); -static inline void blake2s_set_lastblock(struct blake2s_state *state) -{ - state->f[0] = -1; -} - -/* Helper functions for BLAKE2s shared by the library and shash APIs */ - -static __always_inline void -__blake2s_update(struct blake2s_state *state, const u8 *in, size_t inlen, - bool force_generic) -{ - const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen; - - if (unlikely(!inlen)) - return; - if (inlen > fill) { - memcpy(state->buf + state->buflen, in, fill); - if (force_generic) - blake2s_compress_generic(state, state->buf, 1, - BLAKE2S_BLOCK_SIZE); - else - blake2s_compress(state, state->buf, 1, - BLAKE2S_BLOCK_SIZE); - state->buflen = 0; - in += fill; - inlen -= fill; - } - if (inlen > BLAKE2S_BLOCK_SIZE) { - const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE); - /* Hash one less (full) block than strictly possible */ - if (force_generic) - blake2s_compress_generic(state, in, nblocks - 1, - BLAKE2S_BLOCK_SIZE); - else - blake2s_compress(state, in, nblocks - 1, - BLAKE2S_BLOCK_SIZE); - in += BLAKE2S_BLOCK_SIZE * (nblocks - 1); - inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1); - } - memcpy(state->buf + state->buflen, in, inlen); - state->buflen += inlen; -} - -static __always_inline void -__blake2s_final(struct blake2s_state *state, u8 *out, bool force_generic) -{ - blake2s_set_lastblock(state); - memset(state->buf + state->buflen, 0, - BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */ - if (force_generic) - blake2s_compress_generic(state, state->buf, 1, state->buflen); - else - blake2s_compress(state, state->buf, 1, state->buflen); - cpu_to_le32_array(state->h, ARRAY_SIZE(state->h)); - memcpy(out, state->h, state->outlen); -} - -/* Helper functions for shash implementations of BLAKE2s */ - -struct blake2s_tfm_ctx { - u8 key[BLAKE2S_KEY_SIZE]; - unsigned int keylen; -}; - -static inline int crypto_blake2s_setkey(struct crypto_shash *tfm, - const u8 *key, unsigned int keylen) -{ - struct blake2s_tfm_ctx *tctx = crypto_shash_ctx(tfm); - - if (keylen == 0 || keylen > BLAKE2S_KEY_SIZE) - return -EINVAL; - - memcpy(tctx->key, key, keylen); - tctx->keylen = keylen; - - return 0; -} - -static inline int crypto_blake2s_init(struct shash_desc *desc) -{ - const struct blake2s_tfm_ctx *tctx = crypto_shash_ctx(desc->tfm); - struct blake2s_state *state = shash_desc_ctx(desc); - unsigned int outlen = crypto_shash_digestsize(desc->tfm); - - __blake2s_init(state, outlen, tctx->key, tctx->keylen); - return 0; -} - -static inline int crypto_blake2s_update(struct shash_desc *desc, - const u8 *in, unsigned int inlen, - bool force_generic) -{ - struct blake2s_state *state = shash_desc_ctx(desc); - - __blake2s_update(state, in, inlen, force_generic); - return 0; -} - -static inline int crypto_blake2s_final(struct shash_desc *desc, u8 *out, - bool force_generic) -{ - struct blake2s_state *state = shash_desc_ctx(desc); - - __blake2s_final(state, out, force_generic); - return 0; -} - #endif /* _CRYPTO_INTERNAL_BLAKE2S_H */ --- linux-5.19.0.orig/include/drm/drm_connector.h +++ linux-5.19.0/include/drm/drm_connector.h @@ -323,6 +323,22 @@ }; /** + * struct drm_luminance_range_info - Panel's luminance range for + * &drm_display_info. Calculated using data in EDID + * + * This struct is used to store a luminance range supported by panel + * as calculated using data from EDID's static hdr metadata. + * + * @min_luminance: This is the min supported luminance value + * + * @max_luminance: This is the max supported luminance value + */ +struct drm_luminance_range_info { + u32 min_luminance; + u32 max_luminance; +}; + +/** * enum drm_privacy_screen_status - privacy screen status * * This enum is used to track and control the state of the integrated privacy @@ -624,6 +640,11 @@ struct drm_monitor_range_info monitor_range; /** + * @luminance_range: Luminance range supported by panel + */ + struct drm_luminance_range_info luminance_range; + + /** * @mso_stream_count: eDP Multi-SST Operation (MSO) stream count from * the DisplayID VESA vendor block. 0 for conventional Single-Stream * Transport (SST), or 2 or 4 MSO streams. --- linux-5.19.0.orig/include/drm/i915_pciids.h +++ linux-5.19.0/include/drm/i915_pciids.h @@ -641,6 +641,7 @@ INTEL_VGA_DEVICE(0x4682, info), \ INTEL_VGA_DEVICE(0x4688, info), \ INTEL_VGA_DEVICE(0x468A, info), \ + INTEL_VGA_DEVICE(0x468B, info), \ INTEL_VGA_DEVICE(0x4690, info), \ INTEL_VGA_DEVICE(0x4692, info), \ INTEL_VGA_DEVICE(0x4693, info) --- linux-5.19.0.orig/include/drm/ttm/ttm_tt.h +++ linux-5.19.0/include/drm/ttm/ttm_tt.h @@ -88,7 +88,7 @@ #define TTM_TT_FLAG_EXTERNAL (1 << 2) #define TTM_TT_FLAG_EXTERNAL_MAPPABLE (1 << 3) -#define TTM_TT_FLAG_PRIV_POPULATED (1 << 31) +#define TTM_TT_FLAG_PRIV_POPULATED (1U << 31) uint32_t page_flags; /** @num_pages: Number of pages in the page array. */ uint32_t num_pages; --- linux-5.19.0.orig/include/dt-bindings/clock/imx8mn-clock.h +++ linux-5.19.0/include/dt-bindings/clock/imx8mn-clock.h @@ -19,7 +19,8 @@ #define IMX8MN_VIDEO_PLL1_REF_SEL 10 #define IMX8MN_DRAM_PLL_REF_SEL 11 #define IMX8MN_GPU_PLL_REF_SEL 12 -#define IMX8MN_VPU_PLL_REF_SEL 13 +#define IMX8MN_M7_ALT_PLL_REF_SEL 13 +#define IMX8MN_VPU_PLL_REF_SEL IMX8MN_M7_ALT_PLL_REF_SEL #define IMX8MN_ARM_PLL_REF_SEL 14 #define IMX8MN_SYS_PLL1_REF_SEL 15 #define IMX8MN_SYS_PLL2_REF_SEL 16 @@ -29,7 +30,8 @@ #define IMX8MN_VIDEO_PLL1 20 #define IMX8MN_DRAM_PLL 21 #define IMX8MN_GPU_PLL 22 -#define IMX8MN_VPU_PLL 23 +#define IMX8MN_M7_ALT_PLL 23 +#define IMX8MN_VPU_PLL IMX8MN_M7_ALT_PLL #define IMX8MN_ARM_PLL 24 #define IMX8MN_SYS_PLL1 25 #define IMX8MN_SYS_PLL2 26 @@ -39,7 +41,8 @@ #define IMX8MN_VIDEO_PLL1_BYPASS 30 #define IMX8MN_DRAM_PLL_BYPASS 31 #define IMX8MN_GPU_PLL_BYPASS 32 -#define IMX8MN_VPU_PLL_BYPASS 33 +#define IMX8MN_M7_ALT_PLL_BYPASS 33 +#define IMX8MN_VPU_PLL_BYPASS IMX8MN_M7_ALT_PLL_BYPASS #define IMX8MN_ARM_PLL_BYPASS 34 #define IMX8MN_SYS_PLL1_BYPASS 35 #define IMX8MN_SYS_PLL2_BYPASS 36 @@ -49,7 +52,8 @@ #define IMX8MN_VIDEO_PLL1_OUT 40 #define IMX8MN_DRAM_PLL_OUT 41 #define IMX8MN_GPU_PLL_OUT 42 -#define IMX8MN_VPU_PLL_OUT 43 +#define IMX8MN_M7_ALT_PLL_OUT 43 +#define IMX8MN_VPU_PLL_OUT IMX8MN_M7_ALT_PLL_OUT #define IMX8MN_ARM_PLL_OUT 44 #define IMX8MN_SYS_PLL1_OUT 45 #define IMX8MN_SYS_PLL2_OUT 46 --- linux-5.19.0.orig/include/dt-bindings/clock/imx8mp-clock.h +++ linux-5.19.0/include/dt-bindings/clock/imx8mp-clock.h @@ -324,8 +324,9 @@ #define IMX8MP_CLK_CLKOUT2_SEL 317 #define IMX8MP_CLK_CLKOUT2_DIV 318 #define IMX8MP_CLK_CLKOUT2 319 +#define IMX8MP_CLK_USB_SUSP 320 -#define IMX8MP_CLK_END 320 +#define IMX8MP_CLK_END 321 #define IMX8MP_CLK_AUDIOMIX_SAI1_IPG 0 #define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1 1 --- linux-5.19.0.orig/include/dt-bindings/clock/qcom,gcc-msm8939.h +++ linux-5.19.0/include/dt-bindings/clock/qcom,gcc-msm8939.h @@ -192,6 +192,7 @@ #define GCC_VENUS0_CORE0_VCODEC0_CLK 183 #define GCC_VENUS0_CORE1_VCODEC0_CLK 184 #define GCC_OXILI_TIMER_CLK 185 +#define SYSTEM_MM_NOC_BFDCD_CLK_SRC 186 /* Indexes for GDSCs */ #define BIMC_GDSC 0 --- linux-5.19.0.orig/include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h +++ linux-5.19.0/include/dt-bindings/clock/qcom,lpassaudiocc-sc7280.h @@ -24,6 +24,11 @@ #define LPASS_AUDIO_CC_RX_MCLK_CLK 14 #define LPASS_AUDIO_CC_RX_MCLK_CLK_SRC 15 +/* LPASS AUDIO CC CSR */ +#define LPASS_AUDIO_SWR_RX_CGCR 0 +#define LPASS_AUDIO_SWR_TX_CGCR 1 +#define LPASS_AUDIO_SWR_WSA_CGCR 2 + /* LPASS_AON_CC clocks */ #define LPASS_AON_CC_PLL 0 #define LPASS_AON_CC_PLL_OUT_EVEN 1 --- linux-5.19.0.orig/include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h +++ linux-5.19.0/include/dt-bindings/clock/qcom,lpasscorecc-sc7280.h @@ -19,6 +19,8 @@ #define LPASS_CORE_CC_LPM_CORE_CLK 9 #define LPASS_CORE_CC_LPM_MEM0_CORE_CLK 10 #define LPASS_CORE_CC_SYSNOC_MPORT_CORE_CLK 11 +#define LPASS_CORE_CC_EXT_MCLK0_CLK 12 +#define LPASS_CORE_CC_EXT_MCLK0_CLK_SRC 13 /* LPASS_CORE_CC power domains */ #define LPASS_CORE_CC_LPASS_CORE_HM_GDSC 0 --- linux-5.19.0.orig/include/dt-bindings/clock/samsung,exynosautov9.h +++ linux-5.19.0/include/dt-bindings/clock/samsung,exynosautov9.h @@ -226,21 +226,21 @@ #define CLK_GOUT_PERIC0_IPCLK_8 28 #define CLK_GOUT_PERIC0_IPCLK_9 29 #define CLK_GOUT_PERIC0_IPCLK_10 30 -#define CLK_GOUT_PERIC0_IPCLK_11 30 -#define CLK_GOUT_PERIC0_PCLK_0 31 -#define CLK_GOUT_PERIC0_PCLK_1 32 -#define CLK_GOUT_PERIC0_PCLK_2 33 -#define CLK_GOUT_PERIC0_PCLK_3 34 -#define CLK_GOUT_PERIC0_PCLK_4 35 -#define CLK_GOUT_PERIC0_PCLK_5 36 -#define CLK_GOUT_PERIC0_PCLK_6 37 -#define CLK_GOUT_PERIC0_PCLK_7 38 -#define CLK_GOUT_PERIC0_PCLK_8 39 -#define CLK_GOUT_PERIC0_PCLK_9 40 -#define CLK_GOUT_PERIC0_PCLK_10 41 -#define CLK_GOUT_PERIC0_PCLK_11 42 +#define CLK_GOUT_PERIC0_IPCLK_11 31 +#define CLK_GOUT_PERIC0_PCLK_0 32 +#define CLK_GOUT_PERIC0_PCLK_1 33 +#define CLK_GOUT_PERIC0_PCLK_2 34 +#define CLK_GOUT_PERIC0_PCLK_3 35 +#define CLK_GOUT_PERIC0_PCLK_4 36 +#define CLK_GOUT_PERIC0_PCLK_5 37 +#define CLK_GOUT_PERIC0_PCLK_6 38 +#define CLK_GOUT_PERIC0_PCLK_7 39 +#define CLK_GOUT_PERIC0_PCLK_8 40 +#define CLK_GOUT_PERIC0_PCLK_9 41 +#define CLK_GOUT_PERIC0_PCLK_10 42 +#define CLK_GOUT_PERIC0_PCLK_11 43 -#define PERIC0_NR_CLK 43 +#define PERIC0_NR_CLK 44 /* CMU_PERIC1 */ #define CLK_MOUT_PERIC1_BUS_USER 1 @@ -272,21 +272,21 @@ #define CLK_GOUT_PERIC1_IPCLK_8 28 #define CLK_GOUT_PERIC1_IPCLK_9 29 #define CLK_GOUT_PERIC1_IPCLK_10 30 -#define CLK_GOUT_PERIC1_IPCLK_11 30 -#define CLK_GOUT_PERIC1_PCLK_0 31 -#define CLK_GOUT_PERIC1_PCLK_1 32 -#define CLK_GOUT_PERIC1_PCLK_2 33 -#define CLK_GOUT_PERIC1_PCLK_3 34 -#define CLK_GOUT_PERIC1_PCLK_4 35 -#define CLK_GOUT_PERIC1_PCLK_5 36 -#define CLK_GOUT_PERIC1_PCLK_6 37 -#define CLK_GOUT_PERIC1_PCLK_7 38 -#define CLK_GOUT_PERIC1_PCLK_8 39 -#define CLK_GOUT_PERIC1_PCLK_9 40 -#define CLK_GOUT_PERIC1_PCLK_10 41 -#define CLK_GOUT_PERIC1_PCLK_11 42 +#define CLK_GOUT_PERIC1_IPCLK_11 31 +#define CLK_GOUT_PERIC1_PCLK_0 32 +#define CLK_GOUT_PERIC1_PCLK_1 33 +#define CLK_GOUT_PERIC1_PCLK_2 34 +#define CLK_GOUT_PERIC1_PCLK_3 35 +#define CLK_GOUT_PERIC1_PCLK_4 36 +#define CLK_GOUT_PERIC1_PCLK_5 37 +#define CLK_GOUT_PERIC1_PCLK_6 38 +#define CLK_GOUT_PERIC1_PCLK_7 39 +#define CLK_GOUT_PERIC1_PCLK_8 40 +#define CLK_GOUT_PERIC1_PCLK_9 41 +#define CLK_GOUT_PERIC1_PCLK_10 42 +#define CLK_GOUT_PERIC1_PCLK_11 43 -#define PERIC1_NR_CLK 43 +#define PERIC1_NR_CLK 44 /* CMU_PERIS */ #define CLK_MOUT_PERIS_BUS_USER 1 --- linux-5.19.0.orig/include/kunit/test.h +++ linux-5.19.0/include/kunit/test.h @@ -863,7 +863,7 @@ #define KUNIT_EXPECT_LE_MSG(test, left, right, fmt, ...) \ KUNIT_BINARY_INT_ASSERTION(test, \ - KUNIT_ASSERTION, \ + KUNIT_EXPECTATION, \ left, <=, right, \ fmt, \ ##__VA_ARGS__) @@ -1153,7 +1153,7 @@ #define KUNIT_ASSERT_LT_MSG(test, left, right, fmt, ...) \ KUNIT_BINARY_INT_ASSERTION(test, \ - KUNIT_EXPECTATION, \ + KUNIT_ASSERTION, \ left, <, right, \ fmt, \ ##__VA_ARGS__) @@ -1194,7 +1194,7 @@ #define KUNIT_ASSERT_GT_MSG(test, left, right, fmt, ...) \ KUNIT_BINARY_INT_ASSERTION(test, \ - KUNIT_EXPECTATION, \ + KUNIT_ASSERTION, \ left, >, right, \ fmt, \ ##__VA_ARGS__) --- linux-5.19.0.orig/include/linux/acpi_viot.h +++ linux-5.19.0/include/linux/acpi_viot.h @@ -6,9 +6,11 @@ #include #ifdef CONFIG_ACPI_VIOT +void __init acpi_viot_early_init(void); void __init acpi_viot_init(void); int viot_iommu_configure(struct device *dev); #else +static inline void acpi_viot_early_init(void) {} static inline void acpi_viot_init(void) {} static inline int viot_iommu_configure(struct device *dev) { --- linux-5.19.0.orig/include/linux/ata.h +++ linux-5.19.0/include/linux/ata.h @@ -566,6 +566,18 @@ ((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \ ((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \ ((id)[ATA_ID_FEATURE_SUPP] & (1 << 2))) +#define ata_id_has_devslp(id) \ + ((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \ + ((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \ + ((id)[ATA_ID_FEATURE_SUPP] & (1 << 8))) +#define ata_id_has_ncq_autosense(id) \ + ((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \ + ((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \ + ((id)[ATA_ID_FEATURE_SUPP] & (1 << 7))) +#define ata_id_has_dipm(id) \ + ((((id)[ATA_ID_SATA_CAPABILITY] != 0x0000) && \ + ((id)[ATA_ID_SATA_CAPABILITY] != 0xffff)) && \ + ((id)[ATA_ID_FEATURE_SUPP] & (1 << 3))) #define ata_id_iordy_disable(id) ((id)[ATA_ID_CAPABILITY] & (1 << 10)) #define ata_id_has_iordy(id) ((id)[ATA_ID_CAPABILITY] & (1 << 11)) #define ata_id_u32(id,n) \ @@ -578,9 +590,6 @@ #define ata_id_cdb_intr(id) (((id)[ATA_ID_CONFIG] & 0x60) == 0x20) #define ata_id_has_da(id) ((id)[ATA_ID_SATA_CAPABILITY_2] & (1 << 4)) -#define ata_id_has_devslp(id) ((id)[ATA_ID_FEATURE_SUPP] & (1 << 8)) -#define ata_id_has_ncq_autosense(id) \ - ((id)[ATA_ID_FEATURE_SUPP] & (1 << 7)) static inline bool ata_id_has_hipm(const u16 *id) { @@ -592,17 +601,6 @@ return val & (1 << 9); } -static inline bool ata_id_has_dipm(const u16 *id) -{ - u16 val = id[ATA_ID_FEATURE_SUPP]; - - if (val == 0 || val == 0xffff) - return false; - - return val & (1 << 3); -} - - static inline bool ata_id_has_fua(const u16 *id) { if ((id[ATA_ID_CFSSE] & 0xC000) != 0x4000) @@ -771,16 +769,21 @@ static inline bool ata_id_has_sense_reporting(const u16 *id) { - if (!(id[ATA_ID_CFS_ENABLE_2] & (1 << 15))) + if (!(id[ATA_ID_CFS_ENABLE_2] & BIT(15))) + return false; + if ((id[ATA_ID_COMMAND_SET_3] & (BIT(15) | BIT(14))) != BIT(14)) return false; - return id[ATA_ID_COMMAND_SET_3] & (1 << 6); + return id[ATA_ID_COMMAND_SET_3] & BIT(6); } static inline bool ata_id_sense_reporting_enabled(const u16 *id) { - if (!(id[ATA_ID_CFS_ENABLE_2] & (1 << 15))) + if (!ata_id_has_sense_reporting(id)) + return false; + /* ata_id_has_sense_reporting() == true, word 86 must have bit 15 set */ + if ((id[ATA_ID_COMMAND_SET_4] & (BIT(15) | BIT(14))) != BIT(14)) return false; - return id[ATA_ID_COMMAND_SET_4] & (1 << 6); + return id[ATA_ID_COMMAND_SET_4] & BIT(6); } /** --- linux-5.19.0.orig/include/linux/audit.h +++ linux-5.19.0/include/linux/audit.h @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -59,6 +60,10 @@ /* Flag to indicate legacy AUDIT_LOGINUID unset usage */ #define AUDIT_LOGINUID_LEGACY 0x1 +struct audit_lsm_rules { + void *rule[LSMBLOB_ENTRIES]; +}; + struct audit_field { u32 type; union { @@ -66,8 +71,8 @@ kuid_t uid; kgid_t gid; struct { - char *lsm_str; - void *lsm_rule; + char *lsm_str; + struct audit_lsm_rules lsm_rules; }; }; u32 op; @@ -185,6 +190,10 @@ const char *operation); extern void audit_log_lost(const char *message); +extern void audit_log_object_context(struct audit_buffer *ab, + struct lsmblob *blob); +extern int audit_log_subject_context(struct audit_buffer *ab, + struct lsmblob *blob); extern int audit_log_task_context(struct audit_buffer *ab); extern void audit_log_task_info(struct audit_buffer *ab); @@ -245,6 +254,14 @@ { } static inline void audit_log_path_denied(int type, const char *operation) { } +static inline void audit_log_object_context(struct audit_buffer *ab, + struct lsmblob *blob) +{ } +static inline int audit_log_subject_context(struct audit_buffer *ab, + struct lsmblob *blob) +{ + return 0; +} static inline int audit_log_task_context(struct audit_buffer *ab) { return 0; --- linux-5.19.0.orig/include/linux/bio.h +++ linux-5.19.0/include/linux/bio.h @@ -509,7 +509,7 @@ { bio_clear_flag(bio, BIO_REMAPPED); if (bio->bi_bdev != bdev) - bio_clear_flag(bio, BIO_THROTTLED); + bio_clear_flag(bio, BIO_BPS_THROTTLED); bio->bi_bdev = bdev; bio_associate_blkg(bio); } --- linux-5.19.0.orig/include/linux/blk-mq.h +++ linux-5.19.0/include/linux/blk-mq.h @@ -265,9 +265,16 @@ rq_list_add(dst, rq); } +/** + * enum blk_eh_timer_return - How the timeout handler should proceed + * @BLK_EH_DONE: The block driver completed the command or will complete it at + * a later time. + * @BLK_EH_RESET_TIMER: Reset the request timer and continue waiting for the + * request to complete. + */ enum blk_eh_timer_return { - BLK_EH_DONE, /* drivers has completed the command */ - BLK_EH_RESET_TIMER, /* reset timer and try again */ + BLK_EH_DONE, + BLK_EH_RESET_TIMER, }; #define BLK_TAG_ALLOC_FIFO 0 /* allocate starting from 0 */ @@ -686,10 +693,13 @@ \ __blk_mq_alloc_disk(set, queuedata, &__key); \ }) +struct gendisk *blk_mq_alloc_disk_for_queue(struct request_queue *q, + struct lock_class_key *lkclass); struct request_queue *blk_mq_init_queue(struct blk_mq_tag_set *); int blk_mq_init_allocated_queue(struct blk_mq_tag_set *set, struct request_queue *q); void blk_mq_unregister_dev(struct device *, struct request_queue *); +void blk_mq_destroy_queue(struct request_queue *); int blk_mq_alloc_tag_set(struct blk_mq_tag_set *set); int blk_mq_alloc_sq_tag_set(struct blk_mq_tag_set *set, --- linux-5.19.0.orig/include/linux/blk_types.h +++ linux-5.19.0/include/linux/blk_types.h @@ -323,7 +323,7 @@ BIO_QUIET, /* Make BIO Quiet */ BIO_CHAIN, /* chained bio, ->bi_remaining in effect */ BIO_REFFED, /* bio has elevated ->bi_cnt */ - BIO_THROTTLED, /* This bio has already been subjected to + BIO_BPS_THROTTLED, /* This bio has already been subjected to * throttling rules. Don't do it again. */ BIO_TRACE_COMPLETION, /* bio_endio() should trace the final completion * of this bio. */ --- linux-5.19.0.orig/include/linux/blkdev.h +++ linux-5.19.0/include/linux/blkdev.h @@ -148,6 +148,7 @@ #define GD_NATIVE_CAPACITY 3 #define GD_ADDED 4 #define GD_SUPPRESS_PART_SCAN 5 +#define GD_OWNS_QUEUE 6 struct mutex open_mutex; /* open/close mutex */ unsigned open_partitions; /* number of open partitions */ @@ -559,7 +560,6 @@ #define QUEUE_FLAG_NOXMERGES 9 /* No extended merges */ #define QUEUE_FLAG_ADD_RANDOM 10 /* Contributes to random pool */ #define QUEUE_FLAG_SAME_FORCE 12 /* force complete on same CPU */ -#define QUEUE_FLAG_DEAD 13 /* queue tear-down finished */ #define QUEUE_FLAG_INIT_DONE 14 /* queue is initialized */ #define QUEUE_FLAG_STABLE_WRITES 15 /* don't modify blks until WB is done */ #define QUEUE_FLAG_POLL 16 /* IO polling enabled if set */ @@ -587,7 +587,6 @@ #define blk_queue_stopped(q) test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags) #define blk_queue_dying(q) test_bit(QUEUE_FLAG_DYING, &(q)->queue_flags) #define blk_queue_has_srcu(q) test_bit(QUEUE_FLAG_HAS_SRCU, &(q)->queue_flags) -#define blk_queue_dead(q) test_bit(QUEUE_FLAG_DEAD, &(q)->queue_flags) #define blk_queue_init_done(q) test_bit(QUEUE_FLAG_INIT_DONE, &(q)->queue_flags) #define blk_queue_nomerges(q) test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags) #define blk_queue_noxmerges(q) \ @@ -812,8 +811,6 @@ int bdev_disk_changed(struct gendisk *disk, bool invalidate); -struct gendisk *__alloc_disk_node(struct request_queue *q, int node_id, - struct lock_class_key *lkclass); void put_disk(struct gendisk *disk); struct gendisk *__blk_alloc_disk(int node, struct lock_class_key *lkclass); @@ -955,7 +952,6 @@ /* * Access functions for manipulating queue properties */ -extern void blk_cleanup_queue(struct request_queue *); void blk_queue_bounce_limit(struct request_queue *q, enum blk_bounce limit); extern void blk_queue_max_hw_sectors(struct request_queue *, unsigned int); extern void blk_queue_chunk_sectors(struct request_queue *, unsigned int); @@ -983,7 +979,6 @@ extern void blk_limits_io_opt(struct queue_limits *limits, unsigned int opt); extern void blk_queue_io_opt(struct request_queue *q, unsigned int opt); extern void blk_set_queue_depth(struct request_queue *q, unsigned int depth); -extern void blk_set_default_limits(struct queue_limits *lim); extern void blk_set_stacking_limits(struct queue_limits *lim); extern int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, sector_t offset); @@ -1206,6 +1201,11 @@ return queue_max_zone_append_sectors(bdev_get_queue(bdev)); } +static inline unsigned int bdev_max_segments(struct block_device *bdev) +{ + return queue_max_segments(bdev_get_queue(bdev)); +} + static inline unsigned queue_logical_block_size(const struct request_queue *q) { int retval = 512; --- linux-5.19.0.orig/include/linux/bpf-cgroup-defs.h +++ linux-5.19.0/include/linux/bpf-cgroup-defs.h @@ -47,8 +47,8 @@ * have either zero or one element * when BPF_F_ALLOW_MULTI the list can have up to BPF_CGROUP_MAX_PROGS */ - struct list_head progs[MAX_CGROUP_BPF_ATTACH_TYPE]; - u32 flags[MAX_CGROUP_BPF_ATTACH_TYPE]; + struct hlist_head progs[MAX_CGROUP_BPF_ATTACH_TYPE]; + u8 flags[MAX_CGROUP_BPF_ATTACH_TYPE]; /* list of cgroup shared storages */ struct list_head storages; --- linux-5.19.0.orig/include/linux/bpf-cgroup.h +++ linux-5.19.0/include/linux/bpf-cgroup.h @@ -95,7 +95,7 @@ }; struct bpf_prog_list { - struct list_head node; + struct hlist_node node; struct bpf_prog *prog; struct bpf_cgroup_link *link; struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE]; --- linux-5.19.0.orig/include/linux/bpf.h +++ linux-5.19.0/include/linux/bpf.h @@ -398,6 +398,9 @@ /* DYNPTR points to a ringbuf record. */ DYNPTR_TYPE_RINGBUF = BIT(9 + BPF_BASE_TYPE_BITS), + /* Size is known at compile time. */ + MEM_FIXED_SIZE = BIT(10 + BPF_BASE_TYPE_BITS), + __BPF_TYPE_FLAG_MAX, __BPF_TYPE_LAST_FLAG = __BPF_TYPE_FLAG_MAX - 1, }; @@ -461,6 +464,8 @@ * all bytes or clear them in error case. */ ARG_PTR_TO_UNINIT_MEM = MEM_UNINIT | ARG_PTR_TO_MEM, + /* Pointer to valid memory of size known at compile time. */ + ARG_PTR_TO_FIXED_SIZE_MEM = MEM_FIXED_SIZE | ARG_PTR_TO_MEM, /* This must be the last entry. Its purpose is to ensure the enum is * wide enough to hold the higher bits reserved for bpf_type_flag. @@ -526,6 +531,14 @@ u32 *arg5_btf_id; }; u32 *arg_btf_id[5]; + struct { + size_t arg1_size; + size_t arg2_size; + size_t arg3_size; + size_t arg4_size; + size_t arg5_size; + }; + size_t arg_size[5]; }; int *ret_btf_id; /* return value btf_id */ bool (*allowed)(const struct bpf_prog *prog); @@ -856,6 +869,7 @@ struct bpf_dispatcher_prog progs[BPF_DISPATCHER_MAX]; int num_progs; void *image; + void *rw_image; u32 image_off; struct bpf_ksym ksym; }; @@ -875,7 +889,7 @@ struct bpf_trampoline *bpf_trampoline_get(u64 key, struct bpf_attach_target_info *tgt_info); void bpf_trampoline_put(struct bpf_trampoline *tr); -int arch_prepare_bpf_dispatcher(void *image, s64 *funcs, int num_funcs); +int arch_prepare_bpf_dispatcher(void *image, void *buf, s64 *funcs, int num_funcs); #define BPF_DISPATCHER_INIT(_name) { \ .mutex = __MUTEX_INITIALIZER(_name.mutex), \ .func = &_name##_func, \ @@ -1025,7 +1039,6 @@ bool sleepable; bool tail_call_reachable; bool xdp_has_frags; - bool use_bpf_prog_pack; /* BTF_KIND_FUNC_PROTO for valid attach_btf_id */ const struct btf_type *attach_func_proto; /* function name for valid attach_btf_id */ @@ -1825,6 +1838,7 @@ return !sysctl_unprivileged_bpf_disabled; } +void notrace bpf_prog_inc_misses_counter(struct bpf_prog *prog); #else /* !CONFIG_BPF_SYSCALL */ static inline struct bpf_prog *bpf_prog_get(u32 ufd) { @@ -2034,6 +2048,9 @@ return false; } +static inline void bpf_prog_inc_misses_counter(struct bpf_prog *prog) +{ +} #endif /* CONFIG_BPF_SYSCALL */ void __bpf_free_used_btfs(struct bpf_prog_aux *aux, @@ -2104,6 +2121,7 @@ union bpf_attr __user *uattr); void sock_map_unhash(struct sock *sk); +void sock_map_destroy(struct sock *sk); void sock_map_close(struct sock *sk, long timeout); #else static inline int bpf_prog_offload_init(struct bpf_prog *prog, @@ -2261,12 +2279,9 @@ extern const struct bpf_func_proto bpf_btf_find_by_name_kind_proto; extern const struct bpf_func_proto bpf_sk_setsockopt_proto; extern const struct bpf_func_proto bpf_sk_getsockopt_proto; -extern const struct bpf_func_proto bpf_kallsyms_lookup_name_proto; extern const struct bpf_func_proto bpf_find_vma_proto; extern const struct bpf_func_proto bpf_loop_proto; -extern const struct bpf_func_proto bpf_strncmp_proto; extern const struct bpf_func_proto bpf_copy_from_user_task_proto; -extern const struct bpf_func_proto bpf_kptr_xchg_proto; const struct bpf_func_proto *tracing_prog_func_proto( enum bpf_func_id func_id, const struct bpf_prog *prog); --- linux-5.19.0.orig/include/linux/bpf_verifier.h +++ linux-5.19.0/include/linux/bpf_verifier.h @@ -212,6 +212,17 @@ * is used purely to inform the user of a reference leak. */ int insn_idx; + /* There can be a case like: + * main (frame 0) + * cb (frame 1) + * func (frame 3) + * cb (frame 4) + * Hence for frame 4, if callback_ref just stored boolean, it would be + * impossible to distinguish nested callback refs. Hence store the + * frameno and compare that to callback_ref in check_reference_leak when + * exiting a callback function. + */ + int callback_ref; }; /* state of the program: @@ -337,6 +348,27 @@ iter < frame->allocated_stack / BPF_REG_SIZE; \ iter++, reg = bpf_get_spilled_reg(iter, frame)) +/* Invoke __expr over regsiters in __vst, setting __state and __reg */ +#define bpf_for_each_reg_in_vstate(__vst, __state, __reg, __expr) \ + ({ \ + struct bpf_verifier_state *___vstate = __vst; \ + int ___i, ___j; \ + for (___i = 0; ___i <= ___vstate->curframe; ___i++) { \ + struct bpf_reg_state *___regs; \ + __state = ___vstate->frame[___i]; \ + ___regs = __state->regs; \ + for (___j = 0; ___j < MAX_BPF_REG; ___j++) { \ + __reg = &___regs[___j]; \ + (void)(__expr); \ + } \ + bpf_for_each_spilled_reg(___j, __state, __reg) { \ + if (!__reg) \ + continue; \ + (void)(__expr); \ + } \ + } \ + }) + /* linked list of verifier states used to prune search */ struct bpf_verifier_state_list { struct bpf_verifier_state state; --- linux-5.19.0.orig/include/linux/bpfptr.h +++ linux-5.19.0/include/linux/bpfptr.h @@ -49,7 +49,9 @@ static inline int copy_from_bpfptr_offset(void *dst, bpfptr_t src, size_t offset, size_t size) { - return copy_from_sockptr_offset(dst, (sockptr_t) src, offset, size); + if (!bpfptr_is_kernel(src)) + return copy_from_user(dst, src.user + offset, size); + return copy_from_kernel_nofault(dst, src.kernel + offset, size); } static inline int copy_from_bpfptr(void *dst, bpfptr_t src, size_t size) @@ -78,7 +80,9 @@ static inline long strncpy_from_bpfptr(char *dst, bpfptr_t src, size_t count) { - return strncpy_from_sockptr(dst, (sockptr_t) src, count); + if (bpfptr_is_kernel(src)) + return strncpy_from_kernel_nofault(dst, src.kernel, count); + return strncpy_from_user(dst, src.user, count); } #endif /* _LINUX_BPFPTR_H */ --- linux-5.19.0.orig/include/linux/buffer_head.h +++ linux-5.19.0/include/linux/buffer_head.h @@ -117,7 +117,6 @@ * of the form "mark_buffer_foo()". These are higher-level functions which * do something in addition to setting a b_state bit. */ -BUFFER_FNS(Uptodate, uptodate) BUFFER_FNS(Dirty, dirty) TAS_BUFFER_FNS(Dirty, dirty) BUFFER_FNS(Lock, locked) @@ -135,6 +134,41 @@ BUFFER_FNS(Prio, prio) BUFFER_FNS(Defer_Completion, defer_completion) +static __always_inline void set_buffer_uptodate(struct buffer_head *bh) +{ + /* + * If somebody else already set this uptodate, they will + * have done the memory barrier, and a reader will thus + * see *some* valid buffer state. + * + * Any other serialization (with IO errors or whatever that + * might clear the bit) has to come from other state (eg BH_Lock). + */ + if (test_bit(BH_Uptodate, &bh->b_state)) + return; + + /* + * make it consistent with folio_mark_uptodate + * pairs with smp_load_acquire in buffer_uptodate + */ + smp_mb__before_atomic(); + set_bit(BH_Uptodate, &bh->b_state); +} + +static __always_inline void clear_buffer_uptodate(struct buffer_head *bh) +{ + clear_bit(BH_Uptodate, &bh->b_state); +} + +static __always_inline int buffer_uptodate(const struct buffer_head *bh) +{ + /* + * make it consistent with folio_test_uptodate + * pairs with smp_mb__before_atomic in set_buffer_uptodate + */ + return (smp_load_acquire(&bh->b_state) & (1UL << BH_Uptodate)) != 0; +} + #define bh_offset(bh) ((unsigned long)(bh)->b_data & ~PAGE_MASK) /* If we *know* page->private refers to buffer_heads */ --- linux-5.19.0.orig/include/linux/can/platform/sja1000.h +++ linux-5.19.0/include/linux/can/platform/sja1000.h @@ -14,7 +14,7 @@ #define OCR_MODE_TEST 0x01 #define OCR_MODE_NORMAL 0x02 #define OCR_MODE_CLOCK 0x03 -#define OCR_MODE_MASK 0x07 +#define OCR_MODE_MASK 0x03 #define OCR_TX0_INVERT 0x04 #define OCR_TX0_PULLDOWN 0x08 #define OCR_TX0_PULLUP 0x10 --- linux-5.19.0.orig/include/linux/cgroup.h +++ linux-5.19.0/include/linux/cgroup.h @@ -68,6 +68,7 @@ struct list_head iters_node; /* css_set->task_iters */ }; +extern struct file_system_type cgroup_fs_type; extern struct cgroup_root cgrp_dfl_root; extern struct css_set init_css_set; --- linux-5.19.0.orig/include/linux/clk.h +++ linux-5.19.0/include/linux/clk.h @@ -459,6 +459,47 @@ struct clk *devm_clk_get(struct device *dev, const char *id); /** + * devm_clk_get_prepared - devm_clk_get() + clk_prepare() + * @dev: device for clock "consumer" + * @id: clock consumer ID + * + * Context: May sleep. + * + * Return: a struct clk corresponding to the clock producer, or + * valid IS_ERR() condition containing errno. The implementation + * uses @dev and @id to determine the clock consumer, and thereby + * the clock producer. (IOW, @id may be identical strings, but + * clk_get may return different clock producers depending on @dev.) + * + * The returned clk (if valid) is prepared. Drivers must however assume + * that the clock is not enabled. + * + * The clock will automatically be unprepared and freed when the device + * is unbound from the bus. + */ +struct clk *devm_clk_get_prepared(struct device *dev, const char *id); + +/** + * devm_clk_get_enabled - devm_clk_get() + clk_prepare_enable() + * @dev: device for clock "consumer" + * @id: clock consumer ID + * + * Context: May sleep. + * + * Return: a struct clk corresponding to the clock producer, or + * valid IS_ERR() condition containing errno. The implementation + * uses @dev and @id to determine the clock consumer, and thereby + * the clock producer. (IOW, @id may be identical strings, but + * clk_get may return different clock producers depending on @dev.) + * + * The returned clk (if valid) is prepared and enabled. + * + * The clock will automatically be disabled, unprepared and freed + * when the device is unbound from the bus. + */ +struct clk *devm_clk_get_enabled(struct device *dev, const char *id); + +/** * devm_clk_get_optional - lookup and obtain a managed reference to an optional * clock producer. * @dev: device for clock "consumer" @@ -470,6 +511,50 @@ struct clk *devm_clk_get_optional(struct device *dev, const char *id); /** + * devm_clk_get_optional_prepared - devm_clk_get_optional() + clk_prepare() + * @dev: device for clock "consumer" + * @id: clock consumer ID + * + * Context: May sleep. + * + * Return: a struct clk corresponding to the clock producer, or + * valid IS_ERR() condition containing errno. The implementation + * uses @dev and @id to determine the clock consumer, and thereby + * the clock producer. If no such clk is found, it returns NULL + * which serves as a dummy clk. That's the only difference compared + * to devm_clk_get_prepared(). + * + * The returned clk (if valid) is prepared. Drivers must however + * assume that the clock is not enabled. + * + * The clock will automatically be unprepared and freed when the + * device is unbound from the bus. + */ +struct clk *devm_clk_get_optional_prepared(struct device *dev, const char *id); + +/** + * devm_clk_get_optional_enabled - devm_clk_get_optional() + + * clk_prepare_enable() + * @dev: device for clock "consumer" + * @id: clock consumer ID + * + * Context: May sleep. + * + * Return: a struct clk corresponding to the clock producer, or + * valid IS_ERR() condition containing errno. The implementation + * uses @dev and @id to determine the clock consumer, and thereby + * the clock producer. If no such clk is found, it returns NULL + * which serves as a dummy clk. That's the only difference compared + * to devm_clk_get_enabled(). + * + * The returned clk (if valid) is prepared and enabled. + * + * The clock will automatically be disabled, unprepared and freed + * when the device is unbound from the bus. + */ +struct clk *devm_clk_get_optional_enabled(struct device *dev, const char *id); + +/** * devm_get_clk_from_child - lookup and obtain a managed reference to a * clock producer from child node. * @dev: device for clock "consumer" @@ -813,11 +898,35 @@ return NULL; } +static inline struct clk *devm_clk_get_prepared(struct device *dev, + const char *id) +{ + return NULL; +} + +static inline struct clk *devm_clk_get_enabled(struct device *dev, + const char *id) +{ + return NULL; +} + static inline struct clk *devm_clk_get_optional(struct device *dev, const char *id) { return NULL; } + +static inline struct clk *devm_clk_get_optional_prepared(struct device *dev, + const char *id) +{ + return NULL; +} + +static inline struct clk *devm_clk_get_optional_enabled(struct device *dev, + const char *id) +{ + return NULL; +} static inline int __must_check devm_clk_bulk_get(struct device *dev, int num_clks, struct clk_bulk_data *clks) --- linux-5.19.0.orig/include/linux/cpumask.h +++ linux-5.19.0/include/linux/cpumask.h @@ -1071,4 +1071,23 @@ [0] = 1UL \ } } +/* + * Provide a valid theoretical max size for cpumap and cpulist sysfs files + * to avoid breaking userspace which may allocate a buffer based on the size + * reported by e.g. fstat. + * + * for cpumap NR_CPUS * 9/32 - 1 should be an exact length. + * + * For cpulist 7 is (ceil(log10(NR_CPUS)) + 1) allowing for NR_CPUS to be up + * to 2 orders of magnitude larger than 8192. And then we divide by 2 to + * cover a worst-case of every other cpu being on one of two nodes for a + * very large NR_CPUS. + * + * Use PAGE_SIZE as a minimum for smaller configurations while avoiding + * unsigned comparison to -1. + */ +#define CPUMAP_FILE_MAX_BYTES (((NR_CPUS * 9)/32 > PAGE_SIZE) \ + ? (NR_CPUS * 9)/32 - 1 : PAGE_SIZE) +#define CPULIST_FILE_MAX_BYTES (((NR_CPUS * 7)/2 > PAGE_SIZE) ? (NR_CPUS * 7)/2 : PAGE_SIZE) + #endif /* __LINUX_CPUMASK_H */ --- linux-5.19.0.orig/include/linux/cred.h +++ linux-5.19.0/include/linux/cred.h @@ -18,6 +18,7 @@ struct cred; struct inode; +struct lsmblob; /* * COW Supplementary groups list @@ -165,7 +166,7 @@ extern void revert_creds(const struct cred *); extern struct cred *prepare_kernel_cred(struct task_struct *); extern int change_create_files_as(struct cred *, struct inode *); -extern int set_security_override(struct cred *, u32); +extern int set_security_override(struct cred *, struct lsmblob *); extern int set_security_override_from_ctx(struct cred *, const char *); extern int set_create_files_as(struct cred *, struct inode *); extern int cred_fscmp(const struct cred *, const struct cred *); --- linux-5.19.0.orig/include/linux/debugfs.h +++ linux-5.19.0/include/linux/debugfs.h @@ -45,7 +45,7 @@ extern struct dentry *arch_debugfs_dir; -#define DEFINE_DEBUGFS_ATTRIBUTE(__fops, __get, __set, __fmt) \ +#define DEFINE_DEBUGFS_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, __is_signed) \ static int __fops ## _open(struct inode *inode, struct file *file) \ { \ __simple_attr_check_format(__fmt, 0ull); \ @@ -56,10 +56,16 @@ .open = __fops ## _open, \ .release = simple_attr_release, \ .read = debugfs_attr_read, \ - .write = debugfs_attr_write, \ + .write = (__is_signed) ? debugfs_attr_write_signed : debugfs_attr_write, \ .llseek = no_llseek, \ } +#define DEFINE_DEBUGFS_ATTRIBUTE(__fops, __get, __set, __fmt) \ + DEFINE_DEBUGFS_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, false) + +#define DEFINE_DEBUGFS_ATTRIBUTE_SIGNED(__fops, __get, __set, __fmt) \ + DEFINE_DEBUGFS_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, true) + typedef struct vfsmount *(*debugfs_automount_t)(struct dentry *, void *); #if defined(CONFIG_DEBUG_FS) @@ -91,6 +97,8 @@ void debugfs_remove(struct dentry *dentry); #define debugfs_remove_recursive debugfs_remove +void debugfs_lookup_and_remove(const char *name, struct dentry *parent); + const struct file_operations *debugfs_real_fops(const struct file *filp); int debugfs_file_get(struct dentry *dentry); @@ -100,6 +108,8 @@ size_t len, loff_t *ppos); ssize_t debugfs_attr_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos); +ssize_t debugfs_attr_write_signed(struct file *file, const char __user *buf, + size_t len, loff_t *ppos); struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, struct dentry *new_dir, const char *new_name); @@ -225,6 +235,10 @@ static inline void debugfs_remove_recursive(struct dentry *dentry) { } +static inline void debugfs_lookup_and_remove(const char *name, + struct dentry *parent) +{ } + const struct file_operations *debugfs_real_fops(const struct file *filp); static inline int debugfs_file_get(struct dentry *dentry) @@ -245,6 +259,13 @@ const char __user *buf, size_t len, loff_t *ppos) { + return -ENODEV; +} + +static inline ssize_t debugfs_attr_write_signed(struct file *file, + const char __user *buf, + size_t len, loff_t *ppos) +{ return -ENODEV; } --- linux-5.19.0.orig/include/linux/device-mapper.h +++ linux-5.19.0/include/linux/device-mapper.h @@ -373,6 +373,12 @@ * after returning DM_MAPIO_SUBMITTED from its map function. */ bool accounts_remapped_io:1; + + /* + * Set if the target will submit the DM bio without first calling + * bio_set_dev(). NOTE: ideally a target should _not_ need this. + */ + bool needs_bio_set_dev:1; }; void *dm_per_bio_data(struct bio *bio, size_t data_size); --- linux-5.19.0.orig/include/linux/dynamic_debug.h +++ linux-5.19.0/include/linux/dynamic_debug.h @@ -55,9 +55,6 @@ #if defined(CONFIG_DYNAMIC_DEBUG_CORE) -/* exported for module authors to exercise >control */ -int dynamic_debug_exec_queries(const char *query, const char *modname); - int ddebug_add_module(struct _ddebug *tab, unsigned int n, const char *modname); extern int ddebug_remove_module(const char *mod_name); @@ -201,7 +198,7 @@ static inline int ddebug_dyndbg_module_param_cb(char *param, char *val, const char *modname) { - if (strstr(param, "dyndbg")) { + if (!strcmp(param, "dyndbg")) { /* avoid pr_warn(), which wants pr_fmt() fully defined */ printk(KERN_WARNING "dyndbg param is supported only in " "CONFIG_DYNAMIC_DEBUG builds\n"); @@ -221,12 +218,6 @@ rowsize, groupsize, buf, len, ascii); \ } while (0) -static inline int dynamic_debug_exec_queries(const char *query, const char *modname) -{ - pr_warn("kernel not built with CONFIG_DYNAMIC_DEBUG_CORE\n"); - return 0; -} - #endif /* !CONFIG_DYNAMIC_DEBUG_CORE */ #endif --- linux-5.19.0.orig/include/linux/efi.h +++ linux-5.19.0/include/linux/efi.h @@ -43,6 +43,8 @@ #define EFI_ABORTED (21 | (1UL << (BITS_PER_LONG-1))) #define EFI_SECURITY_VIOLATION (26 | (1UL << (BITS_PER_LONG-1))) +#define EFI_IS_ERROR(x) ((x) & (1UL << (BITS_PER_LONG-1))) + typedef unsigned long efi_status_t; typedef u8 efi_bool_t; typedef u16 efi_char16_t; /* UNICODE character */ @@ -849,6 +851,23 @@ #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ +#define EFI_SECURE_BOOT 13 /* Are we in Secure Boot mode? */ + +enum efi_secureboot_mode { + efi_secureboot_mode_unset, + efi_secureboot_mode_unknown, + efi_secureboot_mode_disabled, + efi_secureboot_mode_enabled, +}; + +#ifdef CONFIG_EFI_PARAMS_FROM_FDT +u32 __init efi_get__secure_boot(void); +#else +static inline u32 efi_get__secure_boot(void) +{ + return efi_secureboot_mode_unset; +}; +#endif #ifdef CONFIG_EFI /* @@ -860,6 +879,8 @@ } extern void efi_reboot(enum reboot_mode reboot_mode, const char *__unused); +extern void __init efi_set_secure_boot(enum efi_secureboot_mode mode); + bool __pure __efi_soft_reserve_enabled(void); static inline bool __pure efi_soft_reserve_enabled(void) @@ -880,6 +901,8 @@ static inline void efi_reboot(enum reboot_mode reboot_mode, const char *__unused) {} +static inline void efi_set_secure_boot(enum efi_secureboot_mode mode) {} + static inline bool efi_soft_reserve_enabled(void) { return false; @@ -892,6 +915,7 @@ #endif extern int efi_status_to_err(efi_status_t status); +extern const char *efi_status_to_str(efi_status_t status); /* * Variable Attributes @@ -1144,13 +1168,6 @@ extern void efi_call_virt_check_flags(unsigned long flags, const char *call); extern unsigned long efi_call_virt_save_flags(void); -enum efi_secureboot_mode { - efi_secureboot_mode_unset, - efi_secureboot_mode_unknown, - efi_secureboot_mode_disabled, - efi_secureboot_mode_enabled, -}; - static inline enum efi_secureboot_mode efi_get_secureboot_mode(efi_get_variable_t *get_var) { @@ -1230,7 +1247,7 @@ arch_efi_call_virt_teardown(); \ }) -#define EFI_RANDOM_SEED_SIZE 64U +#define EFI_RANDOM_SEED_SIZE 32U // BLAKE2S_HASH_SIZE struct linux_efi_random_seed { u32 size; --- linux-5.19.0.orig/include/linux/energy_model.h +++ linux-5.19.0/include/linux/energy_model.h @@ -62,7 +62,7 @@ /* * em_perf_domain flags: * - * EM_PERF_DOMAIN_MILLIWATTS: The power values are in milli-Watts or some + * EM_PERF_DOMAIN_MICROWATTS: The power values are in micro-Watts or some * other scale. * * EM_PERF_DOMAIN_SKIP_INEFFICIENCIES: Skip inefficient states when estimating @@ -71,7 +71,7 @@ * EM_PERF_DOMAIN_ARTIFICIAL: The power values are artificial and might be * created by platform missing real power information */ -#define EM_PERF_DOMAIN_MILLIWATTS BIT(0) +#define EM_PERF_DOMAIN_MICROWATTS BIT(0) #define EM_PERF_DOMAIN_SKIP_INEFFICIENCIES BIT(1) #define EM_PERF_DOMAIN_ARTIFICIAL BIT(2) @@ -79,22 +79,44 @@ #define em_is_artificial(em) ((em)->flags & EM_PERF_DOMAIN_ARTIFICIAL) #ifdef CONFIG_ENERGY_MODEL -#define EM_MAX_POWER 0xFFFF +/* + * The max power value in micro-Watts. The limit of 64 Watts is set as + * a safety net to not overflow multiplications on 32bit platforms. The + * 32bit value limit for total Perf Domain power implies a limit of + * maximum CPUs in such domain to 64. + */ +#define EM_MAX_POWER (64000000) /* 64 Watts */ /* - * Increase resolution of energy estimation calculations for 64-bit - * architectures. The extra resolution improves decision made by EAS for the - * task placement when two Performance Domains might provide similar energy - * estimation values (w/o better resolution the values could be equal). - * - * We increase resolution only if we have enough bits to allow this increased - * resolution (i.e. 64-bit). The costs for increasing resolution when 32-bit - * are pretty high and the returns do not justify the increased costs. + * To avoid possible energy estimation overflow on 32bit machines add + * limits to number of CPUs in the Perf. Domain. + * We are safe on 64bit machine, thus some big number. + */ +#ifdef CONFIG_64BIT +#define EM_MAX_NUM_CPUS 4096 +#else +#define EM_MAX_NUM_CPUS 16 +#endif + +/* + * To avoid an overflow on 32bit machines while calculating the energy + * use a different order in the operation. First divide by the 'cpu_scale' + * which would reduce big value stored in the 'cost' field, then multiply by + * the 'sum_util'. This would allow to handle existing platforms, which have + * e.g. power ~1.3 Watt at max freq, so the 'cost' value > 1mln micro-Watts. + * In such scenario, where there are 4 CPUs in the Perf. Domain the 'sum_util' + * could be 4096, then multiplication: 'cost' * 'sum_util' would overflow. + * This reordering of operations has some limitations, we lose small + * precision in the estimation (comparing to 64bit platform w/o reordering). + * + * We are safe on 64bit machine. */ #ifdef CONFIG_64BIT -#define em_scale_power(p) ((p) * 1000) +#define em_estimate_energy(cost, sum_util, scale_cpu) \ + (((cost) * (sum_util)) / (scale_cpu)) #else -#define em_scale_power(p) (p) +#define em_estimate_energy(cost, sum_util, scale_cpu) \ + (((cost) / (scale_cpu)) * (sum_util)) #endif struct em_data_callback { @@ -112,7 +134,7 @@ * and frequency. * * In case of CPUs, the power is the one of a single CPU in the domain, - * expressed in milli-Watts or an abstract scale. It is expected to + * expressed in micro-Watts or an abstract scale. It is expected to * fit in the [0, EM_MAX_POWER] range. * * Return 0 on success. @@ -148,7 +170,7 @@ struct em_perf_domain *em_pd_get(struct device *dev); int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states, struct em_data_callback *cb, cpumask_t *span, - bool milliwatts); + bool microwatts); void em_dev_unregister_perf_domain(struct device *dev); /** @@ -273,7 +295,7 @@ * pd_nrg = ------------------------ (4) * scale_cpu */ - return ps->cost * sum_util / scale_cpu; + return em_estimate_energy(ps->cost, sum_util, scale_cpu); } /** @@ -297,7 +319,7 @@ static inline int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states, struct em_data_callback *cb, cpumask_t *span, - bool milliwatts) + bool microwatts) { return -EINVAL; } --- linux-5.19.0.orig/include/linux/eventfd.h +++ linux-5.19.0/include/linux/eventfd.h @@ -46,7 +46,7 @@ static inline bool eventfd_signal_allowed(void) { - return !current->in_eventfd_signal; + return !current->in_eventfd; } #else /* CONFIG_EVENTFD */ @@ -61,7 +61,7 @@ return ERR_PTR(-ENOSYS); } -static inline int eventfd_signal(struct eventfd_ctx *ctx, int n) +static inline int eventfd_signal(struct eventfd_ctx *ctx, __u64 n) { return -ENOSYS; } --- linux-5.19.0.orig/include/linux/export-internal.h +++ linux-5.19.0/include/linux/export-internal.h @@ -10,8 +10,10 @@ #include #include -/* __used is needed to keep __crc_* for LTO */ #define SYMBOL_CRC(sym, crc, sec) \ - u32 __section("___kcrctab" sec "+" #sym) __used __crc_##sym = crc + asm(".section \"___kcrctab" sec "+" #sym "\",\"a\"" "\n" \ + "__crc_" #sym ":" "\n" \ + ".long " #crc "\n" \ + ".previous" "\n") #endif /* __LINUX_EXPORT_INTERNAL_H__ */ --- linux-5.19.0.orig/include/linux/fault-inject.h +++ linux-5.19.0/include/linux/fault-inject.h @@ -20,7 +20,6 @@ atomic_t space; unsigned long verbose; bool task_filter; - bool no_warn; unsigned long stacktrace_depth; unsigned long require_start; unsigned long require_end; @@ -32,6 +31,10 @@ struct dentry *dname; }; +enum fault_flags { + FAULT_NOWARN = 1 << 0, +}; + #define FAULT_ATTR_INITIALIZER { \ .interval = 1, \ .times = ATOMIC_INIT(1), \ @@ -40,11 +43,11 @@ .ratelimit_state = RATELIMIT_STATE_INIT_DISABLED, \ .verbose = 2, \ .dname = NULL, \ - .no_warn = false, \ } #define DECLARE_FAULT_ATTR(name) struct fault_attr name = FAULT_ATTR_INITIALIZER int setup_fault_attr(struct fault_attr *attr, char *str); +bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags); bool should_fail(struct fault_attr *attr, ssize_t size); #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS --- linux-5.19.0.orig/include/linux/filter.h +++ linux-5.19.0/include/linux/filter.h @@ -948,6 +948,7 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog); void bpf_jit_compile(struct bpf_prog *prog); bool bpf_jit_needs_zext(void); +bool bpf_jit_supports_subprog_tailcalls(void); bool bpf_jit_supports_kfunc_call(void); bool bpf_helper_changes_pkt_data(void *func); @@ -1051,6 +1052,8 @@ typedef void (*bpf_jit_fill_hole_t)(void *area, unsigned int size); +void bpf_jit_fill_hole_with_zero(void *area, unsigned int size); + struct bpf_binary_header * bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr, unsigned int alignment, @@ -1060,6 +1063,17 @@ void *bpf_jit_alloc_exec(unsigned long size); void bpf_jit_free_exec(void *addr); void bpf_jit_free(struct bpf_prog *fp); +struct bpf_binary_header * +bpf_jit_binary_pack_hdr(const struct bpf_prog *fp); + +void *bpf_prog_pack_alloc(u32 size, bpf_jit_fill_hole_t bpf_fill_ill_insns); +void bpf_prog_pack_free(struct bpf_binary_header *hdr); + +static inline bool bpf_prog_kallsyms_verify_off(const struct bpf_prog *fp) +{ + return list_empty(&fp->aux->ksym.lnode) || + fp->aux->ksym.lnode.prev == LIST_POISON2; +} struct bpf_binary_header * bpf_jit_binary_pack_alloc(unsigned int proglen, u8 **ro_image, --- linux-5.19.0.orig/include/linux/fortify-string.h +++ linux-5.19.0/include/linux/fortify-string.h @@ -16,10 +16,11 @@ #define __compiletime_strlen(p) \ ({ \ - unsigned char *__p = (unsigned char *)(p); \ + char *__p = (char *)(p); \ size_t __ret = (size_t)-1; \ size_t __p_size = __builtin_object_size(p, 1); \ - if (__p_size != (size_t)-1) { \ + if (__p_size != (size_t)-1 && \ + __builtin_constant_p(*__p)) { \ size_t __p_len = __p_size - 1; \ if (__builtin_constant_p(__p[__p_len]) && \ __p[__p_len] == '\0') \ --- linux-5.19.0.orig/include/linux/fs.h +++ linux-5.19.0/include/linux/fs.h @@ -1455,7 +1455,7 @@ const struct xattr_handler **s_xattr; #ifdef CONFIG_FS_ENCRYPTION const struct fscrypt_operations *s_cop; - struct key *s_master_keys; /* master crypto keys in use */ + struct fscrypt_keyring *s_master_keys; /* master crypto keys in use */ #endif #ifdef CONFIG_FS_VERITY const struct fsverity_operations *s_vop; @@ -1958,6 +1958,14 @@ */ #define REMAP_FILE_ADVISORY (REMAP_FILE_CAN_SHORTEN) +/* + * These flags control the behavior of vfs_copy_file_range(). + * They are not available to the user via syscall. + * + * COPY_FILE_SPLICE: call splice direct instead of fs clone/copy ops + */ +#define COPY_FILE_SPLICE (1 << 0) + struct iov_iter; struct io_uring_cmd; @@ -2241,13 +2249,14 @@ * don't have to write inode on fdatasync() when only * e.g. the timestamps have changed. * I_DIRTY_PAGES Inode has dirty pages. Inode itself may be clean. - * I_DIRTY_TIME The inode itself only has dirty timestamps, and the + * I_DIRTY_TIME The inode itself has dirty timestamps, and the * lazytime mount option is enabled. We keep track of this * separately from I_DIRTY_SYNC in order to implement * lazytime. This gets cleared if I_DIRTY_INODE - * (I_DIRTY_SYNC and/or I_DIRTY_DATASYNC) gets set. I.e. - * either I_DIRTY_TIME *or* I_DIRTY_INODE can be set in - * i_state, but not both. I_DIRTY_PAGES may still be set. + * (I_DIRTY_SYNC and/or I_DIRTY_DATASYNC) gets set. But + * I_DIRTY_TIME can still be set if I_DIRTY_SYNC is already + * in place because writeback might already be in progress + * and we don't want to lose the time update * I_NEW Serves as both a mutex and completion notification. * New inodes set I_NEW. If two processes both create * the same inode, one of them will release its inode and @@ -3345,7 +3354,7 @@ * All attributes contain a text representation of a numeric value * that are accessed with the get() and set() functions. */ -#define DEFINE_SIMPLE_ATTRIBUTE(__fops, __get, __set, __fmt) \ +#define DEFINE_SIMPLE_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, __is_signed) \ static int __fops ## _open(struct inode *inode, struct file *file) \ { \ __simple_attr_check_format(__fmt, 0ull); \ @@ -3356,10 +3365,16 @@ .open = __fops ## _open, \ .release = simple_attr_release, \ .read = simple_attr_read, \ - .write = simple_attr_write, \ + .write = (__is_signed) ? simple_attr_write_signed : simple_attr_write, \ .llseek = generic_file_llseek, \ } +#define DEFINE_SIMPLE_ATTRIBUTE(__fops, __get, __set, __fmt) \ + DEFINE_SIMPLE_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, false) + +#define DEFINE_SIMPLE_ATTRIBUTE_SIGNED(__fops, __get, __set, __fmt) \ + DEFINE_SIMPLE_ATTRIBUTE_XSIGNED(__fops, __get, __set, __fmt, true) + static inline __printf(1, 2) void __simple_attr_check_format(const char *fmt, ...) { @@ -3374,6 +3389,8 @@ size_t len, loff_t *ppos); ssize_t simple_attr_write(struct file *file, const char __user *buf, size_t len, loff_t *ppos); +ssize_t simple_attr_write_signed(struct file *file, const char __user *buf, + size_t len, loff_t *ppos); struct ctl_table; int __init list_bdev_fs_names(char *buf, size_t size); --- linux-5.19.0.orig/include/linux/fscache.h +++ linux-5.19.0/include/linux/fscache.h @@ -75,7 +75,7 @@ atomic_t n_accesses; /* Number of cache accesses in progress */ unsigned int debug_id; unsigned int key_hash; /* Hash of key string */ - char *key; /* Volume ID, eg. "afs@example.com@1234" */ + u8 *key; /* Volume ID, eg. "afs@example.com@1234" */ struct list_head proc_link; /* Link in /proc/fs/fscache/volumes */ struct hlist_bl_node hash_link; /* Link in hash table */ struct work_struct work; --- linux-5.19.0.orig/include/linux/fscrypt.h +++ linux-5.19.0/include/linux/fscrypt.h @@ -311,7 +311,7 @@ } /* keyring.c */ -void fscrypt_sb_free(struct super_block *sb); +void fscrypt_destroy_keyring(struct super_block *sb); int fscrypt_ioctl_add_key(struct file *filp, void __user *arg); int fscrypt_add_test_dummy_key(struct super_block *sb, const struct fscrypt_dummy_policy *dummy_policy); @@ -521,7 +521,7 @@ } /* keyring.c */ -static inline void fscrypt_sb_free(struct super_block *sb) +static inline void fscrypt_destroy_keyring(struct super_block *sb) { } --- linux-5.19.0.orig/include/linux/highmem.h +++ linux-5.19.0/include/linux/highmem.h @@ -243,6 +243,16 @@ kunmap_local(kaddr); } +static inline void clear_highpage_kasan_tagged(struct page *page) +{ + u8 tag; + + tag = page_kasan_tag(page); + page_kasan_tag_reset(page); + clear_highpage(page); + page_kasan_tag_set(page, tag); +} + #ifndef __HAVE_ARCH_TAG_CLEAR_HIGHPAGE static inline void tag_clear_highpage(struct page *page) --- linux-5.19.0.orig/include/linux/hisi_acc_qm.h +++ linux-5.19.0/include/linux/hisi_acc_qm.h @@ -370,14 +370,14 @@ static inline int q_num_set(const char *val, const struct kernel_param *kp, unsigned int device) { - struct pci_dev *pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, - device, NULL); + struct pci_dev *pdev; u32 n, q_num; int ret; if (!val) return -EINVAL; + pdev = pci_get_device(PCI_VENDOR_ID_HUAWEI, device, NULL); if (!pdev) { q_num = min_t(u32, QM_QNUM_V1, QM_QNUM_V2); pr_info("No device found currently, suppose queue number is %u\n", @@ -387,6 +387,8 @@ q_num = QM_QNUM_V1; else q_num = QM_QNUM_V2; + + pci_dev_put(pdev); } ret = kstrtou32(val, 10, &n); --- linux-5.19.0.orig/include/linux/hugetlb.h +++ linux-5.19.0/include/linux/hugetlb.h @@ -170,7 +170,7 @@ vm_flags_t vm_flags); long hugetlb_unreserve_pages(struct inode *inode, long start, long end, long freed); -bool isolate_huge_page(struct page *page, struct list_head *list); +int isolate_hugetlb(struct page *page, struct list_head *list); int get_hwpoison_huge_page(struct page *page, bool *hugetlb); int get_huge_page_for_hwpoison(unsigned long pfn, int flags); void putback_active_hugepage(struct page *page); @@ -203,8 +203,8 @@ struct page *follow_huge_pd(struct vm_area_struct *vma, unsigned long address, hugepd_t hpd, int flags, int pdshift); -struct page *follow_huge_pmd(struct mm_struct *mm, unsigned long address, - pmd_t *pmd, int flags); +struct page *follow_huge_pmd_pte(struct vm_area_struct *vma, unsigned long address, + int flags); struct page *follow_huge_pud(struct mm_struct *mm, unsigned long address, pud_t *pud, int flags); struct page *follow_huge_pgd(struct mm_struct *mm, unsigned long address, @@ -308,8 +308,8 @@ return NULL; } -static inline struct page *follow_huge_pmd(struct mm_struct *mm, - unsigned long address, pmd_t *pmd, int flags) +static inline struct page *follow_huge_pmd_pte(struct vm_area_struct *vma, + unsigned long address, int flags) { return NULL; } @@ -376,9 +376,9 @@ return NULL; } -static inline bool isolate_huge_page(struct page *page, struct list_head *list) +static inline int isolate_hugetlb(struct page *page, struct list_head *list) { - return false; + return -EBUSY; } static inline int get_hwpoison_huge_page(struct page *page, bool *hugetlb) --- linux-5.19.0.orig/include/linux/hw_random.h +++ linux-5.19.0/include/linux/hw_random.h @@ -50,6 +50,7 @@ struct list_head list; struct kref ref; struct completion cleanup_done; + struct completion dying; }; struct device; @@ -61,4 +62,6 @@ extern void hwrng_unregister(struct hwrng *rng); extern void devm_hwrng_unregister(struct device *dve, struct hwrng *rng); +extern long hwrng_msleep(struct hwrng *rng, unsigned int msecs); + #endif /* LINUX_HWRANDOM_H_ */ --- linux-5.19.0.orig/include/linux/hyperv.h +++ linux-5.19.0/include/linux/hyperv.h @@ -1341,6 +1341,8 @@ int hv_ringbuffer_get_debuginfo(struct hv_ring_buffer_info *ring_info, struct hv_ring_buffer_debug_info *debug_info); +bool hv_ringbuffer_spinlock_busy(struct vmbus_channel *channel); + /* Vmbus interface */ #define vmbus_driver_register(driver) \ __vmbus_driver_register(driver, THIS_MODULE, KBUILD_MODNAME) --- linux-5.19.0.orig/include/linux/hypervisor.h +++ linux-5.19.0/include/linux/hypervisor.h @@ -32,4 +32,12 @@ #endif /* !CONFIG_X86 */ +static inline bool hypervisor_isolated_pci_functions(void) +{ + if (IS_ENABLED(CONFIG_S390)) + return true; + + return jailhouse_paravirt(); +} + #endif /* __LINUX_HYPEVISOR_H */ --- linux-5.19.0.orig/include/linux/idr.h +++ linux-5.19.0/include/linux/idr.h @@ -171,7 +171,7 @@ */ static inline void idr_preload_end(void) { - local_unlock(&radix_tree_preloads.lock); + preempt_enable(); } /** --- linux-5.19.0.orig/include/linux/ieee80211.h +++ linux-5.19.0/include/linux/ieee80211.h @@ -4345,4 +4345,7 @@ IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_UNSPECIFIED, }; +/* multi-link device */ +#define IEEE80211_MLD_MAX_NUM_LINKS 15 + #endif /* LINUX_IEEE80211_H */ --- linux-5.19.0.orig/include/linux/iio/common/cros_ec_sensors_core.h +++ linux-5.19.0/include/linux/iio/common/cros_ec_sensors_core.h @@ -95,8 +95,11 @@ struct platform_device; int cros_ec_sensors_core_init(struct platform_device *pdev, struct iio_dev *indio_dev, bool physical_device, - cros_ec_sensors_capture_t trigger_capture, - cros_ec_sensorhub_push_data_cb_t push_data); + cros_ec_sensors_capture_t trigger_capture); + +int cros_ec_sensors_core_register(struct device *dev, + struct iio_dev *indio_dev, + cros_ec_sensorhub_push_data_cb_t push_data); irqreturn_t cros_ec_sensors_capture(int irq, void *p); int cros_ec_sensors_push_data(struct iio_dev *indio_dev, --- linux-5.19.0.orig/include/linux/iio/iio-opaque.h +++ linux-5.19.0/include/linux/iio/iio-opaque.h @@ -11,6 +11,7 @@ * checked by device drivers but should be considered * read-only as this is a core internal bit * @driver_module: used to make it harder to undercut users + * @mlock_key: lockdep class for iio_dev lock * @info_exist_lock: lock to prevent use during removal * @trig_readonly: mark the current trigger immutable * @event_interface: event chrdevs associated with interrupt lines @@ -42,6 +43,7 @@ int currentmode; int id; struct module *driver_module; + struct lock_class_key mlock_key; struct mutex info_exist_lock; bool trig_readonly; struct iio_event_interface *event_interface; --- linux-5.19.0.orig/include/linux/iio/iio.h +++ linux-5.19.0/include/linux/iio/iio.h @@ -9,6 +9,7 @@ #include #include +#include #include #include /* IIO TODO LIST */ @@ -709,8 +710,13 @@ return dev_get_drvdata(&indio_dev->dev); } -/* Can we make this smaller? */ -#define IIO_ALIGN L1_CACHE_BYTES +/* + * Used to ensure the iio_priv() structure is aligned to allow that structure + * to in turn include IIO_DMA_MINALIGN'd elements such as buffers which + * must not share cachelines with the rest of the structure, thus making + * them safe for use with non-coherent DMA. + */ +#define IIO_DMA_MINALIGN ARCH_KMALLOC_MINALIGN struct iio_dev *iio_device_alloc(struct device *parent, int sizeof_priv); /* The information at the returned address is guaranteed to be cacheline aligned */ --- linux-5.19.0.orig/include/linux/iio/imu/adis.h +++ linux-5.19.0/include/linux/iio/imu/adis.h @@ -402,9 +402,20 @@ __adis_update_bits_base(adis, reg, mask, val, sizeof(val)); \ }) -int adis_enable_irq(struct adis *adis, bool enable); int __adis_check_status(struct adis *adis); int __adis_initial_startup(struct adis *adis); +int __adis_enable_irq(struct adis *adis, bool enable); + +static inline int adis_enable_irq(struct adis *adis, bool enable) +{ + int ret; + + mutex_lock(&adis->state_lock); + ret = __adis_enable_irq(adis, enable); + mutex_unlock(&adis->state_lock); + + return ret; +} static inline int adis_check_status(struct adis *adis) { --- linux-5.19.0.orig/include/linux/intel-iommu.h +++ linux-5.19.0/include/linux/intel-iommu.h @@ -196,7 +196,6 @@ #define ecap_dis(e) (((e) >> 27) & 0x1) #define ecap_nest(e) (((e) >> 26) & 0x1) #define ecap_mts(e) (((e) >> 25) & 0x1) -#define ecap_ecs(e) (((e) >> 24) & 0x1) #define ecap_iotlb_offset(e) ((((e) >> 8) & 0x3ff) * 16) #define ecap_max_iotlb_offset(e) (ecap_iotlb_offset(e) + 16) #define ecap_coherent(e) ((e) & 0x1) @@ -264,7 +263,6 @@ #define DMA_GSTS_CFIS (((u32)1) << 23) /* DMA_RTADDR_REG */ -#define DMA_RTADDR_RTT (((u64)1) << 11) #define DMA_RTADDR_SMT (((u64)1) << 10) /* CCMD_REG */ @@ -579,6 +577,7 @@ #ifdef CONFIG_INTEL_IOMMU unsigned long *domain_ids; /* bitmap of domains */ + unsigned long *copied_tables; /* bitmap of copied tables */ spinlock_t lock; /* protect context, domain ids */ struct root_entry *root_entry; /* virtual address */ @@ -692,6 +691,11 @@ (struct dma_pte *)ALIGN((unsigned long)pte, VTD_PAGE_SIZE) - pte; } +static inline bool context_present(struct context_entry *context) +{ + return (context->lo & 1); +} + extern struct dmar_drhd_unit * dmar_find_matched_drhd_unit(struct pci_dev *dev); extern int dmar_enable_qi(struct intel_iommu *iommu); @@ -776,7 +780,6 @@ #endif /* CONFIG_INTEL_IOMMU_DEBUGFS */ extern const struct attribute_group *intel_iommu_groups[]; -bool context_present(struct context_entry *context); struct context_entry *iommu_context_addr(struct intel_iommu *iommu, u8 bus, u8 devfn, int alloc); --- linux-5.19.0.orig/include/linux/io-pgtable.h +++ linux-5.19.0/include/linux/io-pgtable.h @@ -74,17 +74,22 @@ * to support up to 35 bits PA where the bit32, bit33 and bit34 are * encoded in the bit9, bit4 and bit5 of the PTE respectively. * + * IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT: (ARM v7s format) MediaTek IOMMUs + * extend the translation table base support up to 35 bits PA, the + * encoding format is same with IO_PGTABLE_QUIRK_ARM_MTK_EXT. + * * IO_PGTABLE_QUIRK_ARM_TTBR1: (ARM LPAE format) Configure the table * for use in the upper half of a split address space. * * IO_PGTABLE_QUIRK_ARM_OUTER_WBWA: Override the outer-cacheability * attributes set in the TCR for a non-coherent page-table walker. */ - #define IO_PGTABLE_QUIRK_ARM_NS BIT(0) - #define IO_PGTABLE_QUIRK_NO_PERMS BIT(1) - #define IO_PGTABLE_QUIRK_ARM_MTK_EXT BIT(3) - #define IO_PGTABLE_QUIRK_ARM_TTBR1 BIT(5) - #define IO_PGTABLE_QUIRK_ARM_OUTER_WBWA BIT(6) + #define IO_PGTABLE_QUIRK_ARM_NS BIT(0) + #define IO_PGTABLE_QUIRK_NO_PERMS BIT(1) + #define IO_PGTABLE_QUIRK_ARM_MTK_EXT BIT(3) + #define IO_PGTABLE_QUIRK_ARM_MTK_TTBR_EXT BIT(4) + #define IO_PGTABLE_QUIRK_ARM_TTBR1 BIT(5) + #define IO_PGTABLE_QUIRK_ARM_OUTER_WBWA BIT(6) unsigned long quirks; unsigned long pgsize_bitmap; unsigned int ias; --- linux-5.19.0.orig/include/linux/ioprio.h +++ linux-5.19.0/include/linux/ioprio.h @@ -11,7 +11,7 @@ /* * Default IO priority. */ -#define IOPRIO_DEFAULT IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_BE_NORM) +#define IOPRIO_DEFAULT IOPRIO_PRIO_VALUE(IOPRIO_CLASS_NONE, 0) /* * Check that a priority value has a valid class. --- linux-5.19.0.orig/include/linux/iova.h +++ linux-5.19.0/include/linux/iova.h @@ -75,7 +75,7 @@ return iova >> iova_shift(iovad); } -#if IS_ENABLED(CONFIG_IOMMU_IOVA) +#if IS_REACHABLE(CONFIG_IOMMU_IOVA) int iova_cache_get(void); void iova_cache_put(void); --- linux-5.19.0.orig/include/linux/ipc_namespace.h +++ linux-5.19.0/include/linux/ipc_namespace.h @@ -127,6 +127,9 @@ static inline int mq_init_ns(struct ipc_namespace *ns) { return 0; } #endif +extern struct ipc_namespace *get_ipc_ns_exported(struct ipc_namespace *ns); +extern struct ipc_namespace *show_init_ipc_ns(void); + #if defined(CONFIG_IPC_NS) extern struct ipc_namespace *copy_ipcs(unsigned long flags, struct user_namespace *user_ns, struct ipc_namespace *ns); --- linux-5.19.0.orig/include/linux/kexec.h +++ linux-5.19.0/include/linux/kexec.h @@ -19,6 +19,7 @@ #include #include +#include /* Location of a reserved region to hold the crash kernel. */ @@ -188,21 +189,54 @@ void *buf, unsigned int size, bool get_value); void *kexec_purgatory_get_symbol_addr(struct kimage *image, const char *name); +void *kexec_image_load_default(struct kimage *image); + +#ifndef arch_kexec_kernel_image_probe +static inline int +arch_kexec_kernel_image_probe(struct kimage *image, void *buf, unsigned long buf_len) +{ + return kexec_image_probe_default(image, buf, buf_len); +} +#endif + +#ifndef arch_kimage_file_post_load_cleanup +static inline int arch_kimage_file_post_load_cleanup(struct kimage *image) +{ + return kexec_image_post_load_cleanup_default(image); +} +#endif + +#ifndef arch_kexec_kernel_image_load +static inline void *arch_kexec_kernel_image_load(struct kimage *image) +{ + return kexec_image_load_default(image); +} +#endif -/* Architectures may override the below functions */ -int arch_kexec_kernel_image_probe(struct kimage *image, void *buf, - unsigned long buf_len); -void *arch_kexec_kernel_image_load(struct kimage *image); -int arch_kimage_file_post_load_cleanup(struct kimage *image); #ifdef CONFIG_KEXEC_SIG -int arch_kexec_kernel_verify_sig(struct kimage *image, void *buf, - unsigned long buf_len); +#ifdef CONFIG_SIGNED_PE_FILE_VERIFICATION +int kexec_kernel_verify_pe_sig(const char *kernel, unsigned long kernel_len); +#endif #endif -int arch_kexec_locate_mem_hole(struct kexec_buf *kbuf); extern int kexec_add_buffer(struct kexec_buf *kbuf); int kexec_locate_mem_hole(struct kexec_buf *kbuf); +#ifndef arch_kexec_locate_mem_hole +/** + * arch_kexec_locate_mem_hole - Find free memory to place the segments. + * @kbuf: Parameters for the memory search. + * + * On success, kbuf->mem will have the start address of the memory region found. + * + * Return: 0 on success, negative errno on error. + */ +static inline int arch_kexec_locate_mem_hole(struct kexec_buf *kbuf) +{ + return kexec_locate_mem_hole(kbuf); +} +#endif + /* Alignment required for elf header segment */ #define ELF_CORE_HEADER_ALIGN 4096 --- linux-5.19.0.orig/include/linux/kfifo.h +++ linux-5.19.0/include/linux/kfifo.h @@ -688,7 +688,7 @@ * writer, you don't need extra locking to use these macro. */ #define kfifo_to_user(fifo, to, len, copied) \ -__kfifo_uint_must_check_helper( \ +__kfifo_int_must_check_helper( \ ({ \ typeof((fifo) + 1) __tmp = (fifo); \ void __user *__to = (to); \ --- linux-5.19.0.orig/include/linux/kvm_host.h +++ linux-5.19.0/include/linux/kvm_host.h @@ -1248,8 +1248,18 @@ void kvm_vcpu_mark_page_dirty(struct kvm_vcpu *vcpu, gfn_t gfn); /** - * kvm_gfn_to_pfn_cache_init - prepare a cached kernel mapping and HPA for a - * given guest physical address. + * kvm_gpc_init - initialize gfn_to_pfn_cache. + * + * @gpc: struct gfn_to_pfn_cache object. + * + * This sets up a gfn_to_pfn_cache by initializing locks. Note, the cache must + * be zero-allocated (or zeroed by the caller before init). + */ +void kvm_gpc_init(struct gfn_to_pfn_cache *gpc); + +/** + * kvm_gpc_activate - prepare a cached kernel mapping and HPA for a given guest + * physical address. * * @kvm: pointer to kvm instance. * @gpc: struct gfn_to_pfn_cache object. @@ -1273,9 +1283,9 @@ * kvm_gfn_to_pfn_cache_check() to ensure that the cache is valid before * accessing the target page. */ -int kvm_gfn_to_pfn_cache_init(struct kvm *kvm, struct gfn_to_pfn_cache *gpc, - struct kvm_vcpu *vcpu, enum pfn_cache_usage usage, - gpa_t gpa, unsigned long len); +int kvm_gpc_activate(struct kvm *kvm, struct gfn_to_pfn_cache *gpc, + struct kvm_vcpu *vcpu, enum pfn_cache_usage usage, + gpa_t gpa, unsigned long len); /** * kvm_gfn_to_pfn_cache_check - check validity of a gfn_to_pfn_cache. @@ -1332,7 +1342,7 @@ void kvm_gfn_to_pfn_cache_unmap(struct kvm *kvm, struct gfn_to_pfn_cache *gpc); /** - * kvm_gfn_to_pfn_cache_destroy - destroy and unlink a gfn_to_pfn_cache. + * kvm_gpc_deactivate - deactivate and unlink a gfn_to_pfn_cache. * * @kvm: pointer to kvm instance. * @gpc: struct gfn_to_pfn_cache object. @@ -1340,7 +1350,7 @@ * This removes a cache from the @kvm's list to be processed on MMU notifier * invocation. */ -void kvm_gfn_to_pfn_cache_destroy(struct kvm *kvm, struct gfn_to_pfn_cache *gpc); +void kvm_gpc_deactivate(struct kvm *kvm, struct gfn_to_pfn_cache *gpc); void kvm_sigset_activate(struct kvm_vcpu *vcpu); void kvm_sigset_deactivate(struct kvm_vcpu *vcpu); @@ -1397,6 +1407,8 @@ struct kvm_enable_cap *cap); long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg); +long kvm_arch_vm_compat_ioctl(struct file *filp, unsigned int ioctl, + unsigned long arg); int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu); int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu); --- linux-5.19.0.orig/include/linux/kvm_types.h +++ linux-5.19.0/include/linux/kvm_types.h @@ -19,6 +19,7 @@ enum kvm_mr_change; #include +#include #include #include @@ -69,6 +70,7 @@ struct kvm_vcpu *vcpu; struct list_head list; rwlock_t lock; + struct mutex refresh_lock; void *khva; kvm_pfn_t pfn; enum pfn_cache_usage usage; --- linux-5.19.0.orig/include/linux/lockd/xdr.h +++ linux-5.19.0/include/linux/lockd/xdr.h @@ -41,6 +41,8 @@ struct nfs_fh fh; struct xdr_netobj oh; u32 svid; + u64 lock_start; + u64 lock_len; struct file_lock fl; }; --- linux-5.19.0.orig/include/linux/lockdep.h +++ linux-5.19.0/include/linux/lockdep.h @@ -188,7 +188,7 @@ lockdep_init_map_waits(struct lockdep_map *lock, const char *name, struct lock_class_key *key, int subclass, u8 inner, u8 outer) { - lockdep_init_map_type(lock, name, key, subclass, inner, LD_WAIT_INV, LD_LOCK_NORMAL); + lockdep_init_map_type(lock, name, key, subclass, inner, outer, LD_LOCK_NORMAL); } static inline void @@ -211,24 +211,28 @@ * or they are too narrow (they suffer from a false class-split): */ #define lockdep_set_class(lock, key) \ - lockdep_init_map_waits(&(lock)->dep_map, #key, key, 0, \ - (lock)->dep_map.wait_type_inner, \ - (lock)->dep_map.wait_type_outer) + lockdep_init_map_type(&(lock)->dep_map, #key, key, 0, \ + (lock)->dep_map.wait_type_inner, \ + (lock)->dep_map.wait_type_outer, \ + (lock)->dep_map.lock_type) #define lockdep_set_class_and_name(lock, key, name) \ - lockdep_init_map_waits(&(lock)->dep_map, name, key, 0, \ - (lock)->dep_map.wait_type_inner, \ - (lock)->dep_map.wait_type_outer) + lockdep_init_map_type(&(lock)->dep_map, name, key, 0, \ + (lock)->dep_map.wait_type_inner, \ + (lock)->dep_map.wait_type_outer, \ + (lock)->dep_map.lock_type) #define lockdep_set_class_and_subclass(lock, key, sub) \ - lockdep_init_map_waits(&(lock)->dep_map, #key, key, sub,\ - (lock)->dep_map.wait_type_inner, \ - (lock)->dep_map.wait_type_outer) + lockdep_init_map_type(&(lock)->dep_map, #key, key, sub, \ + (lock)->dep_map.wait_type_inner, \ + (lock)->dep_map.wait_type_outer, \ + (lock)->dep_map.lock_type) #define lockdep_set_subclass(lock, sub) \ - lockdep_init_map_waits(&(lock)->dep_map, #lock, (lock)->dep_map.key, sub,\ - (lock)->dep_map.wait_type_inner, \ - (lock)->dep_map.wait_type_outer) + lockdep_init_map_type(&(lock)->dep_map, #lock, (lock)->dep_map.key, sub,\ + (lock)->dep_map.wait_type_inner, \ + (lock)->dep_map.wait_type_outer, \ + (lock)->dep_map.lock_type) #define lockdep_set_novalidate_class(lock) \ lockdep_set_class_and_name(lock, &__lockdep_no_validate__, #lock) --- linux-5.19.0.orig/include/linux/lsm_hook_defs.h +++ linux-5.19.0/include/linux/lsm_hook_defs.h @@ -223,6 +223,7 @@ unsigned long arg3, unsigned long arg4, unsigned long arg5) LSM_HOOK(void, LSM_RET_VOID, task_to_inode, struct task_struct *p, struct inode *inode) +LSM_HOOK(int, 0, userns_create, const struct cred *cred) LSM_HOOK(int, 0, ipc_permission, struct kern_ipc_perm *ipcp, short flag) LSM_HOOK(void, LSM_RET_VOID, ipc_getsecid, struct kern_ipc_perm *ipcp, u32 *secid) @@ -394,6 +395,8 @@ #endif /* CONFIG_BPF_SYSCALL */ LSM_HOOK(int, 0, locked_down, enum lockdown_reason what) +LSM_HOOK(int, 0, lock_kernel_down, const char *where, enum lockdown_reason level) + #ifdef CONFIG_PERF_EVENTS LSM_HOOK(int, 0, perf_event_open, struct perf_event_attr *attr, int type) @@ -406,4 +409,5 @@ #ifdef CONFIG_IO_URING LSM_HOOK(int, 0, uring_override_creds, const struct cred *new) LSM_HOOK(int, 0, uring_sqpoll, void) +LSM_HOOK(int, 0, uring_cmd, struct io_uring_cmd *ioucmd) #endif /* CONFIG_IO_URING */ --- linux-5.19.0.orig/include/linux/lsm_hooks.h +++ linux-5.19.0/include/linux/lsm_hooks.h @@ -799,6 +799,10 @@ * security attributes, e.g. for /proc/pid inodes. * @p contains the task_struct for the task. * @inode contains the inode structure for the inode. + * @userns_create: + * Check permission prior to creating a new user namespace. + * @cred points to prepared creds. + * Return 0 if successful, otherwise < 0 error code. * * Security hooks for Netlink messaging. * @@ -1402,6 +1406,12 @@ * @pages contains the number of pages. * Return 0 if permission is granted. * + * @getprocattr: + * Provide the named process attribute for display in special files in + * the /proc/.../attr directory. Attribute naming and the data displayed + * is at the discretion of the security modules. The exception is the + * "context" attribute, which will contain the security context of the + * task as a nul terminated text string without trailing whitespace. * @ismaclabel: * Check if the extended attribute specified by @name * represents a MAC label. Returns 1 if name is a MAC @@ -1550,6 +1560,12 @@ * * @what: kernel feature being accessed * + * @lock_kernel_down + * Put the kernel into lock-down mode. + * + * @where: Where the lock-down is originating from (e.g. command line option) + * @level: The lock-down level (can only increase) + * * Security hooks for perf events * * @perf_event_open: @@ -1575,6 +1591,9 @@ * Check whether the current task is allowed to spawn a io_uring polling * thread (IORING_SETUP_SQPOLL). * + * @uring_cmd: + * Check whether the file_operations uring_cmd is allowed to run. + * */ union security_list_options { #define LSM_HOOK(RET, DEFAULT, NAME, ...) RET (*NAME)(__VA_ARGS__); @@ -1589,6 +1608,14 @@ } __randomize_layout; /* + * Information that identifies a security module. + */ +struct lsm_id { + const char *lsm; /* Name of the LSM */ + int slot; /* Slot in lsmblob if one is allocated */ +}; + +/* * Security module hook list structure. * For use with generic list macros for common operations. */ @@ -1596,7 +1623,7 @@ struct hlist_node list; struct hlist_head *head; union security_list_options hook; - const char *lsm; + struct lsm_id *lsmid; } __randomize_layout; /* @@ -1606,6 +1633,7 @@ int lbs_cred; int lbs_file; int lbs_inode; + int lbs_sock; int lbs_superblock; int lbs_ipc; int lbs_msg_msg; @@ -1631,7 +1659,7 @@ extern char *lsm_names; extern void security_add_hooks(struct security_hook_list *hooks, int count, - const char *lsm); + struct lsm_id *lsmid); #define LSM_FLAG_LEGACY_MAJOR BIT(0) #define LSM_FLAG_EXCLUSIVE BIT(1) --- linux-5.19.0.orig/include/linux/mbcache.h +++ linux-5.19.0/include/linux/mbcache.h @@ -30,15 +30,23 @@ int mb_cache_entry_create(struct mb_cache *cache, gfp_t mask, u32 key, u64 value, bool reusable); void __mb_cache_entry_free(struct mb_cache_entry *entry); +void mb_cache_entry_wait_unused(struct mb_cache_entry *entry); static inline int mb_cache_entry_put(struct mb_cache *cache, struct mb_cache_entry *entry) { - if (!atomic_dec_and_test(&entry->e_refcnt)) + unsigned int cnt = atomic_dec_return(&entry->e_refcnt); + + if (cnt > 0) { + if (cnt <= 3) + wake_up_var(&entry->e_refcnt); return 0; + } __mb_cache_entry_free(entry); return 1; } +struct mb_cache_entry *mb_cache_entry_delete_or_get(struct mb_cache *cache, + u32 key, u64 value); void mb_cache_entry_delete(struct mb_cache *cache, u32 key, u64 value); struct mb_cache_entry *mb_cache_entry_get(struct mb_cache *cache, u32 key, u64 value); --- linux-5.19.0.orig/include/linux/mdev.h +++ linux-5.19.0/include/linux/mdev.h @@ -17,6 +17,7 @@ guid_t uuid; struct list_head next; struct mdev_type *type; + struct device *iommu_device; bool active; }; @@ -25,6 +26,25 @@ return container_of(dev, struct mdev_device, dev); } +/* + * Called by the parent device driver to set the device which represents + * this mdev in iommu protection scope. By default, the iommu device is + * NULL, that indicates using vendor defined isolation. + * + * @dev: the mediated device that iommu will isolate. + * @iommu_device: a pci device which represents the iommu for @dev. + */ +static inline void mdev_set_iommu_device(struct mdev_device *mdev, + struct device *iommu_device) +{ + mdev->iommu_device = iommu_device; +} + +static inline struct device *mdev_get_iommu_device(struct mdev_device *mdev) +{ + return mdev->iommu_device; +} + unsigned int mdev_get_type_group_id(struct mdev_device *mdev); unsigned int mtype_get_type_group_id(struct mdev_type *mtype); struct device *mtype_get_parent_dev(struct mdev_type *mtype); @@ -65,11 +85,6 @@ struct device_driver driver; }; -static inline const guid_t *mdev_uuid(struct mdev_device *mdev) -{ - return &mdev->uuid; -} - extern struct bus_type mdev_bus_type; int mdev_register_device(struct device *dev, struct mdev_driver *mdev_driver); --- linux-5.19.0.orig/include/linux/memcontrol.h +++ linux-5.19.0/include/linux/memcontrol.h @@ -978,19 +978,30 @@ static inline unsigned long memcg_page_state(struct mem_cgroup *memcg, int idx) { - return READ_ONCE(memcg->vmstats.state[idx]); + long x = READ_ONCE(memcg->vmstats.state[idx]); +#ifdef CONFIG_SMP + if (x < 0) + x = 0; +#endif + return x; } static inline unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) { struct mem_cgroup_per_node *pn; + long x; if (mem_cgroup_disabled()) return node_page_state(lruvec_pgdat(lruvec), idx); pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); - return READ_ONCE(pn->lruvec_stats.state[idx]); + x = READ_ONCE(pn->lruvec_stats.state[idx]); +#ifdef CONFIG_SMP + if (x < 0) + x = 0; +#endif + return x; } static inline unsigned long lruvec_page_state_local(struct lruvec *lruvec, --- linux-5.19.0.orig/include/linux/mfd/t7l66xb.h +++ linux-5.19.0/include/linux/mfd/t7l66xb.h @@ -12,7 +12,6 @@ struct t7l66xb_platform_data { int (*enable)(struct platform_device *dev); - int (*disable)(struct platform_device *dev); int (*suspend)(struct platform_device *dev); int (*resume)(struct platform_device *dev); --- linux-5.19.0.orig/include/linux/mlx5/driver.h +++ linux-5.19.0/include/linux/mlx5/driver.h @@ -606,6 +606,7 @@ spinlock_t ctx_lock; struct mlx5_adev **adev; int adev_idx; + int sw_vhca_id; struct mlx5_events *events; struct mlx5_flow_steering *steering; @@ -773,6 +774,7 @@ enum mlx5_device_state state; /* sync interface state */ struct mutex intf_state_mutex; + struct lock_class_key lock_key; unsigned long intf_state; struct mlx5_priv priv; struct mlx5_profile profile; @@ -966,7 +968,7 @@ struct mlx5_async_ctx { struct mlx5_core_dev *dev; atomic_t num_inflight; - struct wait_queue_head wait; + struct completion inflight_done; }; struct mlx5_async_work; @@ -977,6 +979,7 @@ struct mlx5_async_ctx *ctx; mlx5_async_cbk_t user_callback; u16 opcode; /* cmd opcode */ + u16 op_mod; /* cmd op_mod */ void *out; /* pointer to the cmd output buffer */ }; @@ -1273,16 +1276,17 @@ MLX5_TRIGGERED_CMD_COMP = (u64)1 << 32, }; -static inline bool mlx5_is_roce_init_enabled(struct mlx5_core_dev *dev) +bool mlx5_is_roce_on(struct mlx5_core_dev *dev); + +static inline bool mlx5_get_roce_state(struct mlx5_core_dev *dev) { - struct devlink *devlink = priv_to_devlink(dev); - union devlink_param_value val; - int err; - - err = devlink_param_driverinit_value_get(devlink, - DEVLINK_PARAM_GENERIC_ID_ENABLE_ROCE, - &val); - return err ? MLX5_CAP_GEN(dev, roce) : val.vbool; + if (MLX5_CAP_GEN(dev, roce_rw_supported)) + return MLX5_CAP_GEN(dev, roce); + + /* If RoCE cap is read-only in FW, get RoCE state from devlink + * in order to support RoCE enable/disable feature + */ + return mlx5_is_roce_on(dev); } #endif /* MLX5_DRIVER_H */ --- linux-5.19.0.orig/include/linux/mlx5/mlx5_ifc.h +++ linux-5.19.0/include/linux/mlx5/mlx5_ifc.h @@ -1685,7 +1685,9 @@ u8 steering_format_version[0x4]; u8 create_qp_start_hint[0x18]; - u8 reserved_at_460[0x3]; + u8 reserved_at_460[0x1]; + u8 ats[0x1]; + u8 reserved_at_462[0x1]; u8 log_max_uctx[0x5]; u8 reserved_at_468[0x2]; u8 ipsec_offload[0x1]; @@ -1804,7 +1806,14 @@ u8 max_reformat_remove_size[0x8]; u8 max_reformat_remove_offset[0x8]; - u8 reserved_at_c0[0x740]; + u8 reserved_at_c0[0x160]; + + u8 reserved_at_220[0x1]; + u8 sw_vhca_id_valid[0x1]; + u8 sw_vhca_id[0xe]; + u8 reserved_at_230[0x10]; + + u8 reserved_at_240[0x5c0]; }; enum mlx5_ifc_flow_destination_type { @@ -3715,6 +3724,11 @@ struct mlx5_ifc_wq_bits wq; }; +enum { + VHCA_ID_TYPE_HW = 0, + VHCA_ID_TYPE_SW = 1, +}; + struct mlx5_ifc_nic_vport_context_bits { u8 reserved_at_0[0x5]; u8 min_wqe_inline_mode[0x3]; @@ -3731,8 +3745,8 @@ u8 event_on_mc_address_change[0x1]; u8 event_on_uc_address_change[0x1]; - u8 reserved_at_40[0xc]; - + u8 vhca_id_type[0x1]; + u8 reserved_at_41[0xb]; u8 affiliation_criteria[0x4]; u8 affiliated_vhca_id[0x10]; @@ -3788,7 +3802,9 @@ u8 lw[0x1]; u8 lr[0x1]; u8 access_mode_1_0[0x2]; - u8 reserved_at_18[0x8]; + u8 reserved_at_18[0x2]; + u8 ma_translation_mode[0x2]; + u8 reserved_at_1c[0x4]; u8 qpn[0x18]; u8 mkey_7_0[0x8]; @@ -7189,7 +7205,12 @@ u8 reserved_at_20[0x10]; u8 op_mod[0x10]; - u8 reserved_at_40[0x40]; + u8 reserved_at_40[0x20]; + + u8 reserved_at_60[0x2]; + u8 sw_vhca_id[0xe]; + u8 reserved_at_70[0x10]; + u8 sw_owner_id[4][0x20]; }; @@ -11041,7 +11062,8 @@ struct mlx5_ifc_umem_bits { u8 reserved_at_0[0x80]; - u8 reserved_at_80[0x1b]; + u8 ats[0x1]; + u8 reserved_at_81[0x1a]; u8 log_page_size[0x5]; u8 page_offset[0x20]; --- linux-5.19.0.orig/include/linux/mm.h +++ linux-5.19.0/include/linux/mm.h @@ -1829,6 +1829,25 @@ extern void show_free_areas(unsigned int flags, nodemask_t *nodemask); +/* + * Parameter block passed down to zap_pte_range in exceptional cases. + */ +struct zap_details { + struct folio *single_folio; /* Locked folio to be unmapped */ + bool even_cows; /* Zap COWed private pages too? */ + zap_flags_t zap_flags; /* Extra flags for zapping */ +}; + +/* + * Whether to drop the pte markers, for example, the uffd-wp information for + * file-backed memory. This should only be specified when we will completely + * drop the page in the mm, either by truncation or unmapping of the vma. By + * default, the flag is not set. + */ +#define ZAP_FLAG_DROP_MARKER ((__force zap_flags_t) BIT(0)) +/* Set in unmap_vmas() to indicate a final unmap call. Only used by hugetlb */ +#define ZAP_FLAG_UNMAP ((__force zap_flags_t) BIT(1)) + #ifdef CONFIG_MMU extern bool can_do_mlock(void); #else @@ -1848,6 +1867,8 @@ unsigned long size); void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, unsigned long start, unsigned long end); +void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, + unsigned long size, struct zap_details *details); struct mmu_notifier_range; @@ -1909,6 +1930,28 @@ unmap_mapping_range(mapping, holebegin, holelen, 0); } +extern void vma_do_file_update_time(struct vm_area_struct *, const char[], int); +extern struct file *vma_do_pr_or_file(struct vm_area_struct *, const char[], + int); +extern void vma_do_get_file(struct vm_area_struct *, const char[], int); +extern void vma_do_fput(struct vm_area_struct *, const char[], int); + +#define vma_file_update_time(vma) vma_do_file_update_time(vma, __func__, \ + __LINE__) +#define vma_pr_or_file(vma) vma_do_pr_or_file(vma, __func__, \ + __LINE__) +#define vma_get_file(vma) vma_do_get_file(vma, __func__, __LINE__) +#define vma_fput(vma) vma_do_fput(vma, __func__, __LINE__) + +#ifndef CONFIG_MMU +extern struct file *vmr_do_pr_or_file(struct vm_region *, const char[], int); +extern void vmr_do_fput(struct vm_region *, const char[], int); + +#define vmr_pr_or_file(region) vmr_do_pr_or_file(region, __func__, \ + __LINE__) +#define vmr_fput(region) vmr_do_fput(region, __func__, __LINE__) +#endif /* !CONFIG_MMU */ + extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, unsigned int gup_flags); extern int access_remote_vm(struct mm_struct *mm, unsigned long addr, @@ -2939,7 +2982,6 @@ #define FOLL_MIGRATION 0x400 /* wait for page to replace migration entry */ #define FOLL_TRIED 0x800 /* a retry, previous pass started an IO */ #define FOLL_REMOTE 0x2000 /* we are working on non-current tsk/mm */ -#define FOLL_COW 0x4000 /* internal GUP flag */ #define FOLL_ANON 0x8000 /* don't do file mappings */ #define FOLL_LONGTERM 0x10000 /* mapping lifetime is indefinite: see below */ #define FOLL_SPLIT_PMD 0x20000 /* split huge pmd before returning */ @@ -3439,12 +3481,4 @@ } #endif -/* - * Whether to drop the pte markers, for example, the uffd-wp information for - * file-backed memory. This should only be specified when we will completely - * drop the page in the mm, either by truncation or unmapping of the vma. By - * default, the flag is not set. - */ -#define ZAP_FLAG_DROP_MARKER ((__force zap_flags_t) BIT(0)) - #endif /* _LINUX_MM_H */ --- linux-5.19.0.orig/include/linux/mm_types.h +++ linux-5.19.0/include/linux/mm_types.h @@ -367,6 +367,7 @@ unsigned long vm_top; /* region allocated to here */ unsigned long vm_pgoff; /* the offset in vm_file corresponding to vm_start */ struct file *vm_file; /* the backing file or NULL */ + struct file *vm_prfile; /* the virtual backing file or NULL */ int vm_usage; /* region usage count (access under nommu_region_sem) */ bool vm_icache_flushed : 1; /* true if the icache has been flushed for @@ -463,6 +464,7 @@ unsigned long vm_pgoff; /* Offset (within vm_file) in PAGE_SIZE units */ struct file * vm_file; /* File we map to (can be NULL). */ + struct file *vm_prfile; /* shadow of vm_file */ void * vm_private_data; /* was vm_pte (shared mem) */ #ifdef CONFIG_SWAP --- linux-5.19.0.orig/include/linux/mmc/card.h +++ linux-5.19.0/include/linux/mmc/card.h @@ -292,6 +292,7 @@ #define MMC_QUIRK_BROKEN_IRQ_POLLING (1<<11) /* Polling SDIO_CCCR_INTx could create a fake interrupt */ #define MMC_QUIRK_TRIM_BROKEN (1<<12) /* Skip trim */ #define MMC_QUIRK_BROKEN_HPI (1<<13) /* Disable broken HPI support */ +#define MMC_QUIRK_BROKEN_SD_DISCARD (1<<14) /* Disable broken SD discard support */ bool reenable_cmdq; /* Re-enable Command Queue */ --- linux-5.19.0.orig/include/linux/mmc/mmc.h +++ linux-5.19.0/include/linux/mmc/mmc.h @@ -445,7 +445,7 @@ #define MMC_SECURE_TRIM1_ARG 0x80000001 #define MMC_SECURE_TRIM2_ARG 0x80008000 #define MMC_SECURE_ARGS 0x80000000 -#define MMC_TRIM_ARGS 0x00008001 +#define MMC_TRIM_OR_DISCARD_ARGS 0x00008003 #define mmc_driver_type_mask(n) (1 << (n)) --- linux-5.19.0.orig/include/linux/module.h +++ linux-5.19.0/include/linux/module.h @@ -874,8 +874,17 @@ } #endif /* CONFIG_MODULE_SIG */ +#if defined(CONFIG_MODULES) && defined(CONFIG_KALLSYMS) int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data); +#else +static inline int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, + struct module *, unsigned long), + void *data) +{ + return -EOPNOTSUPP; +} +#endif /* CONFIG_MODULES && CONFIG_KALLSYMS */ #endif /* _LINUX_MODULE_H */ --- linux-5.19.0.orig/include/linux/net.h +++ linux-5.19.0/include/linux/net.h @@ -41,6 +41,7 @@ #define SOCK_NOSPACE 2 #define SOCK_PASSCRED 3 #define SOCK_PASSSEC 4 +#define SOCK_SUPPORT_ZC 5 #ifndef ARCH_HAS_SOCKET_TYPES /** --- linux-5.19.0.orig/include/linux/netdevice.h +++ linux-5.19.0/include/linux/netdevice.h @@ -171,31 +171,38 @@ * (unsigned long) so they can be read and written atomically. */ +#define NET_DEV_STAT(FIELD) \ + union { \ + unsigned long FIELD; \ + atomic_long_t __##FIELD; \ + } + struct net_device_stats { - unsigned long rx_packets; - unsigned long tx_packets; - unsigned long rx_bytes; - unsigned long tx_bytes; - unsigned long rx_errors; - unsigned long tx_errors; - unsigned long rx_dropped; - unsigned long tx_dropped; - unsigned long multicast; - unsigned long collisions; - unsigned long rx_length_errors; - unsigned long rx_over_errors; - unsigned long rx_crc_errors; - unsigned long rx_frame_errors; - unsigned long rx_fifo_errors; - unsigned long rx_missed_errors; - unsigned long tx_aborted_errors; - unsigned long tx_carrier_errors; - unsigned long tx_fifo_errors; - unsigned long tx_heartbeat_errors; - unsigned long tx_window_errors; - unsigned long rx_compressed; - unsigned long tx_compressed; + NET_DEV_STAT(rx_packets); + NET_DEV_STAT(tx_packets); + NET_DEV_STAT(rx_bytes); + NET_DEV_STAT(tx_bytes); + NET_DEV_STAT(rx_errors); + NET_DEV_STAT(tx_errors); + NET_DEV_STAT(rx_dropped); + NET_DEV_STAT(tx_dropped); + NET_DEV_STAT(multicast); + NET_DEV_STAT(collisions); + NET_DEV_STAT(rx_length_errors); + NET_DEV_STAT(rx_over_errors); + NET_DEV_STAT(rx_crc_errors); + NET_DEV_STAT(rx_frame_errors); + NET_DEV_STAT(rx_fifo_errors); + NET_DEV_STAT(rx_missed_errors); + NET_DEV_STAT(tx_aborted_errors); + NET_DEV_STAT(tx_carrier_errors); + NET_DEV_STAT(tx_fifo_errors); + NET_DEV_STAT(tx_heartbeat_errors); + NET_DEV_STAT(tx_window_errors); + NET_DEV_STAT(rx_compressed); + NET_DEV_STAT(tx_compressed); }; +#undef NET_DEV_STAT /* per-cpu stats, allocated on demand. * Try to fit them in a single cache line, for dev_get_stats() sake. @@ -640,9 +647,23 @@ */ static inline bool net_has_fallback_tunnels(const struct net *net) { - return !IS_ENABLED(CONFIG_SYSCTL) || - !sysctl_fb_tunnels_only_for_init_net || - (net == &init_net && sysctl_fb_tunnels_only_for_init_net == 1); +#if IS_ENABLED(CONFIG_SYSCTL) + int fb_tunnels_only_for_init_net = READ_ONCE(sysctl_fb_tunnels_only_for_init_net); + + return !fb_tunnels_only_for_init_net || + (net_eq(net, &init_net) && fb_tunnels_only_for_init_net == 1); +#else + return true; +#endif +} + +static inline int net_inherit_devconf(void) +{ +#if IS_ENABLED(CONFIG_SYSCTL) + return READ_ONCE(sysctl_devconf_inherit_init_net); +#else + return 0; +#endif } static inline int netdev_queue_numa_node_read(const struct netdev_queue *q) @@ -5129,4 +5150,9 @@ extern struct net_device *blackhole_netdev; +/* Note: Avoid these macros in fast path, prefer per-cpu or per-queue counters. */ +#define DEV_STATS_INC(DEV, FIELD) atomic_long_inc(&(DEV)->stats.__##FIELD) +#define DEV_STATS_ADD(DEV, FIELD, VAL) \ + atomic_long_add((VAL), &(DEV)->stats.__##FIELD) + #endif /* _LINUX_NETDEVICE_H */ --- linux-5.19.0.orig/include/linux/netfilter_bridge/ebtables.h +++ linux-5.19.0/include/linux/netfilter_bridge/ebtables.h @@ -94,10 +94,6 @@ struct ebt_replace_kernel *table; unsigned int valid_hooks; rwlock_t lock; - /* e.g. could be the table explicitly only allows certain - * matches, targets, ... 0 == let it in */ - int (*check)(const struct ebt_table_info *info, - unsigned int valid_hooks); /* the data used by the kernel */ struct ebt_table_info *private; struct nf_hook_ops *ops; --- linux-5.19.0.orig/include/linux/nfs4.h +++ linux-5.19.0/include/linux/nfs4.h @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -44,10 +45,9 @@ #define NFS4_MAXLABELLEN 2048 struct nfs4_label { - uint32_t lfs; - uint32_t pi; - u32 len; - char *label; + uint32_t lfs; + uint32_t pi; + struct lsmcontext lsmctx; }; typedef struct { char data[NFS4_VERIFIER_SIZE]; } nfs4_verifier; --- linux-5.19.0.orig/include/linux/nfs_fs.h +++ linux-5.19.0/include/linux/nfs_fs.h @@ -59,6 +59,7 @@ kuid_t fsuid; kgid_t fsgid; struct group_info *group_info; + u64 timestamp; __u32 mask; struct rcu_head rcu_head; }; @@ -182,6 +183,7 @@ /* Regular file */ struct { atomic_long_t nrequests; + atomic_long_t redirtied_pages; struct nfs_mds_commit_info commit_info; struct mutex commit_mutex; }; @@ -428,7 +430,7 @@ { #ifdef CONFIG_NFS_V4_SECURITY_LABEL if (label) { - kfree(label->label); + kfree(label->lsmctx.context); kfree(label); } #endif --- linux-5.19.0.orig/include/linux/nmi.h +++ linux-5.19.0/include/linux/nmi.h @@ -122,6 +122,8 @@ int watchdog_nmi_enable(unsigned int cpu); void watchdog_nmi_disable(unsigned int cpu); +void lockup_detector_reconfigure(void); + /** * touch_nmi_watchdog - restart NMI watchdog timeout. * --- linux-5.19.0.orig/include/linux/of_device.h +++ linux-5.19.0/include/linux/of_device.h @@ -101,8 +101,9 @@ } static inline int of_dma_configure_id(struct device *dev, - struct device_node *np, - bool force_dma) + struct device_node *np, + bool force_dma, + const u32 *id) { return 0; } --- linux-5.19.0.orig/include/linux/once.h +++ linux-5.19.0/include/linux/once.h @@ -5,10 +5,18 @@ #include #include +/* Helpers used from arbitrary contexts. + * Hard irqs are blocked, be cautious. + */ bool __do_once_start(bool *done, unsigned long *flags); void __do_once_done(bool *done, struct static_key_true *once_key, unsigned long *flags, struct module *mod); +/* Variant for process contexts only. */ +bool __do_once_slow_start(bool *done); +void __do_once_slow_done(bool *done, struct static_key_true *once_key, + struct module *mod); + /* Call a function exactly once. The idea of DO_ONCE() is to perform * a function call such as initialization of random seeds, etc, only * once, where DO_ONCE() can live in the fast-path. After @func has @@ -52,9 +60,29 @@ ___ret; \ }) +/* Variant of DO_ONCE() for process/sleepable contexts. */ +#define DO_ONCE_SLOW(func, ...) \ + ({ \ + bool ___ret = false; \ + static bool __section(".data.once") ___done = false; \ + static DEFINE_STATIC_KEY_TRUE(___once_key); \ + if (static_branch_unlikely(&___once_key)) { \ + ___ret = __do_once_slow_start(&___done); \ + if (unlikely(___ret)) { \ + func(__VA_ARGS__); \ + __do_once_slow_done(&___done, &___once_key, \ + THIS_MODULE); \ + } \ + } \ + ___ret; \ + }) + #define get_random_once(buf, nbytes) \ DO_ONCE(get_random_bytes, (buf), (nbytes)) #define get_random_once_wait(buf, nbytes) \ DO_ONCE(get_random_bytes_wait, (buf), (nbytes)) \ +#define get_random_slow_once(buf, nbytes) \ + DO_ONCE_SLOW(get_random_bytes, (buf), (nbytes)) + #endif /* _LINUX_ONCE_H */ --- linux-5.19.0.orig/include/linux/once_lite.h +++ linux-5.19.0/include/linux/once_lite.h @@ -9,15 +9,27 @@ */ #define DO_ONCE_LITE(func, ...) \ DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__) -#define DO_ONCE_LITE_IF(condition, func, ...) \ + +#define __ONCE_LITE_IF(condition) \ ({ \ static bool __section(".data.once") __already_done; \ - bool __ret_do_once = !!(condition); \ + bool __ret_cond = !!(condition); \ + bool __ret_once = false; \ \ - if (unlikely(__ret_do_once && !__already_done)) { \ + if (unlikely(__ret_cond && !__already_done)) { \ __already_done = true; \ - func(__VA_ARGS__); \ + __ret_once = true; \ } \ + unlikely(__ret_once); \ + }) + +#define DO_ONCE_LITE_IF(condition, func, ...) \ + ({ \ + bool __ret_do_once = !!(condition); \ + \ + if (__ONCE_LITE_IF(__ret_do_once)) \ + func(__VA_ARGS__); \ + \ unlikely(__ret_do_once); \ }) --- linux-5.19.0.orig/include/linux/pci.h +++ linux-5.19.0/include/linux/pci.h @@ -244,6 +244,8 @@ PCI_DEV_FLAGS_NO_RELAXED_ORDERING = (__force pci_dev_flags_t) (1 << 11), /* Device does honor MSI masking despite saying otherwise */ PCI_DEV_FLAGS_HAS_MSI_MASKING = (__force pci_dev_flags_t) (1 << 12), + /* Enable ASPM regardless of how LnkCtl is programmed */ + PCI_DEV_FLAGS_ENABLE_ASPM = (__force pci_dev_flags_t) (1 << 13), }; enum pci_irq_reroute_variant { @@ -475,6 +477,7 @@ unsigned int broken_cmd_compl:1; /* No compl for some cmds */ #endif #ifdef CONFIG_PCIE_PTM + u16 ptm_cap; /* PTM Capability */ unsigned int ptm_root:1; unsigned int ptm_enabled:1; u8 ptm_granularity; @@ -1657,6 +1660,7 @@ void pcie_no_aspm(void); bool pcie_aspm_support_enabled(void); bool pcie_aspm_enabled(struct pci_dev *pdev); +bool pcie_aspm_capable(struct pci_dev *pdev); #else static inline int pci_disable_link_state(struct pci_dev *pdev, int state) { return 0; } @@ -1665,6 +1669,7 @@ static inline void pcie_no_aspm(void) { } static inline bool pcie_aspm_support_enabled(void) { return false; } static inline bool pcie_aspm_enabled(struct pci_dev *pdev) { return false; } +static inline bool pcie_aspm_capable(struct pci_dev *pdev) { return false; } #endif #ifdef CONFIG_PCIEAER @@ -1677,10 +1682,12 @@ #ifdef CONFIG_PCIE_PTM int pci_enable_ptm(struct pci_dev *dev, u8 *granularity); +void pci_disable_ptm(struct pci_dev *dev); bool pcie_ptm_enabled(struct pci_dev *dev); #else static inline int pci_enable_ptm(struct pci_dev *dev, u8 *granularity) { return -EINVAL; } +static inline void pci_disable_ptm(struct pci_dev *dev) { } static inline bool pcie_ptm_enabled(struct pci_dev *dev) { return false; } #endif --- linux-5.19.0.orig/include/linux/perf_event.h +++ linux-5.19.0/include/linux/perf_event.h @@ -736,11 +736,14 @@ struct fasync_struct *fasync; /* delayed work for NMIs and such */ - int pending_wakeup; - int pending_kill; - int pending_disable; + unsigned int pending_wakeup; + unsigned int pending_kill; + unsigned int pending_disable; + unsigned int pending_sigtrap; unsigned long pending_addr; /* SIGTRAP */ - struct irq_work pending; + struct irq_work pending_irq; + struct callback_head pending_task; + unsigned int pending_work; atomic_t event_limit; @@ -855,6 +858,14 @@ #endif void *task_ctx_data; /* pmu specific data */ struct rcu_head rcu_head; + + /* + * Sum (event->pending_sigtrap + event->pending_work) + * + * The SIGTRAP is targeted at ctx->task, as such it won't do changing + * that until the signal is delivered. + */ + local_t nr_pending; }; /* @@ -1358,6 +1369,12 @@ #define PERF_SECURITY_CPU 1 #define PERF_SECURITY_KERNEL 2 #define PERF_SECURITY_TRACEPOINT 3 +#define PERF_SECURITY_MAX 4 + +static inline bool perf_paranoid_any(void) +{ + return sysctl_perf_event_paranoid >= PERF_SECURITY_MAX; +} static inline int perf_is_paranoid(void) { --- linux-5.19.0.orig/include/linux/phylink.h +++ linux-5.19.0/include/linux/phylink.h @@ -88,6 +88,7 @@ * (See commit 7cceb599d15d ("net: phylink: avoid mac_config calls") * @poll_fixed_state: if true, starts link_poll, * if MAC link is at %MLO_AN_FIXED mode. + * @mac_managed_pm: if true, indicate the MAC driver is responsible for PHY PM. * @ovr_an_inband: if true, override PCS to MLO_AN_INBAND * @get_fixed_state: callback to execute to determine the fixed link state, * if MAC link is at %MLO_AN_FIXED mode. @@ -100,6 +101,7 @@ enum phylink_op_type type; bool legacy_pre_march2020; bool poll_fixed_state; + bool mac_managed_pm; bool ovr_an_inband; void (*get_fixed_state)(struct phylink_config *config, struct phylink_link_state *state); --- linux-5.19.0.orig/include/linux/pipe_fs_i.h +++ linux-5.19.0/include/linux/pipe_fs_i.h @@ -229,6 +229,15 @@ return buf->ops->try_steal(pipe, buf); } +static inline void pipe_discard_from(struct pipe_inode_info *pipe, + unsigned int old_head) +{ + unsigned int mask = pipe->ring_size - 1; + + while (pipe->head > old_head) + pipe_buf_release(pipe, &pipe->bufs[--pipe->head & mask]); +} + /* Differs from PIPE_BUF in that PIPE_SIZE is the length of the actual memory allocation, whereas PIPE_BUF makes atomicity guarantees. */ #define PIPE_SIZE PAGE_SIZE --- linux-5.19.0.orig/include/linux/platform-feature.h +++ linux-5.19.0/include/linux/platform-feature.h @@ -6,11 +6,7 @@ #include /* The platform features are starting with the architecture specific ones. */ - -/* Used to enable platform specific DMA handling for virtio devices. */ -#define PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS (0 + PLATFORM_ARCH_FEAT_N) - -#define PLATFORM_FEAT_N (1 + PLATFORM_ARCH_FEAT_N) +#define PLATFORM_FEAT_N (0 + PLATFORM_ARCH_FEAT_N) void platform_set(unsigned int feature); void platform_clear(unsigned int feature); --- linux-5.19.0.orig/include/linux/platform_data/x86/asus-wmi.h +++ linux-5.19.0/include/linux/platform_data/x86/asus-wmi.h @@ -64,6 +64,7 @@ #define ASUS_WMI_DEVID_PANEL_OD 0x00050019 #define ASUS_WMI_DEVID_CAMERA 0x00060013 #define ASUS_WMI_DEVID_LID_FLIP 0x00060062 +#define ASUS_WMI_DEVID_LID_FLIP_ROG 0x00060077 /* Storage */ #define ASUS_WMI_DEVID_CARDREADER 0x00080013 --- linux-5.19.0.orig/include/linux/platform_data/x86/pmc_atom.h +++ linux-5.19.0/include/linux/platform_data/x86/pmc_atom.h @@ -7,6 +7,8 @@ #ifndef PMC_ATOM_H #define PMC_ATOM_H +#include + /* ValleyView Power Control Unit PCI Device ID */ #define PCI_DEVICE_ID_VLV_PMC 0x0F1C /* CherryTrail Power Control Unit PCI Device ID */ @@ -139,9 +141,9 @@ #define ACPI_MMIO_REG_LEN 0x100 #define PM1_CNT 0x4 -#define SLEEP_TYPE_MASK 0xFFFFECFF +#define SLEEP_TYPE_MASK GENMASK(12, 10) #define SLEEP_TYPE_S5 0x1C00 -#define SLEEP_ENABLE 0x2000 +#define SLEEP_ENABLE BIT(13) extern int pmc_atom_read(int offset, u32 *value); --- linux-5.19.0.orig/include/linux/proc_fs.h +++ linux-5.19.0/include/linux/proc_fs.h @@ -208,8 +208,10 @@ static inline int remove_proc_subtree(const char *name, struct proc_dir_entry *parent) { return 0; } #define proc_create_net_data(name, mode, parent, ops, state_size, data) ({NULL;}) +#define proc_create_net_data_write(name, mode, parent, ops, write, state_size, data) ({NULL;}) #define proc_create_net(name, mode, parent, state_size, ops) ({NULL;}) #define proc_create_net_single(name, mode, parent, show, data) ({NULL;}) +#define proc_create_net_single_write(name, mode, parent, show, write, data) ({NULL;}) static inline struct pid *tgid_pidfd_to_pid(const struct file *file) { --- linux-5.19.0.orig/include/linux/radix-tree.h +++ linux-5.19.0/include/linux/radix-tree.h @@ -19,20 +19,11 @@ #include #include #include -#include /* Keep unconverted code working */ #define radix_tree_root xarray #define radix_tree_node xa_node -struct radix_tree_preload { - local_lock_t lock; - unsigned nr; - /* nodes->parent points to next preallocated node */ - struct radix_tree_node *nodes; -}; -DECLARE_PER_CPU(struct radix_tree_preload, radix_tree_preloads); - /* * The bottom two bits of the slot determine how the remaining bits in the * slot are interpreted: @@ -257,7 +248,7 @@ static inline void radix_tree_preload_end(void) { - local_unlock(&radix_tree_preloads.lock); + preempt_enable(); } void __rcu **idr_get_free(struct radix_tree_root *root, --- linux-5.19.0.orig/include/linux/ring_buffer.h +++ linux-5.19.0/include/linux/ring_buffer.h @@ -100,8 +100,8 @@ int ring_buffer_wait(struct trace_buffer *buffer, int cpu, int full); __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, - struct file *filp, poll_table *poll_table); - + struct file *filp, poll_table *poll_table, int full); +void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu); #define RING_BUFFER_ALL_CPUS -1 --- linux-5.19.0.orig/include/linux/rmap.h +++ linux-5.19.0/include/linux/rmap.h @@ -41,12 +41,15 @@ atomic_t refcount; /* - * Count of child anon_vmas and VMAs which points to this anon_vma. + * Count of child anon_vmas. Equals to the count of all anon_vmas that + * have ->parent pointing to this one, including itself. * * This counter is used for making decision about reusing anon_vma * instead of forking new one. See comments in function anon_vma_clone. */ - unsigned degree; + unsigned long num_children; + /* Count of VMAs whose ->anon_vma pointer points to this object. */ + unsigned long num_active_vmas; struct anon_vma *parent; /* Parent of this anon_vma */ @@ -325,8 +328,8 @@ #define DEFINE_PAGE_VMA_WALK(name, _page, _vma, _address, _flags) \ struct page_vma_mapped_walk name = { \ .pfn = page_to_pfn(_page), \ - .nr_pages = compound_nr(page), \ - .pgoff = page_to_pgoff(page), \ + .nr_pages = compound_nr(_page), \ + .pgoff = page_to_pgoff(_page), \ .vma = _vma, \ .address = _address, \ .flags = _flags, \ --- linux-5.19.0.orig/include/linux/sched.h +++ linux-5.19.0/include/linux/sched.h @@ -934,7 +934,7 @@ #endif #ifdef CONFIG_EVENTFD /* Recursion prevention for eventfd_signal() */ - unsigned in_eventfd_signal:1; + unsigned in_eventfd:1; #endif #ifdef CONFIG_IOMMU_SVA unsigned pasid_activated:1; @@ -1813,7 +1813,7 @@ } extern int cpuset_cpumask_can_shrink(const struct cpumask *cur, const struct cpumask *trial); -extern int task_can_attach(struct task_struct *p, const struct cpumask *cs_cpus_allowed); +extern int task_can_attach(struct task_struct *p, const struct cpumask *cs_effective_cpus); #ifdef CONFIG_SMP extern void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask); extern int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask); --- linux-5.19.0.orig/include/linux/sched/rt.h +++ linux-5.19.0/include/linux/sched/rt.h @@ -39,20 +39,12 @@ } extern void rt_mutex_setprio(struct task_struct *p, struct task_struct *pi_task); extern void rt_mutex_adjust_pi(struct task_struct *p); -static inline bool tsk_is_pi_blocked(struct task_struct *tsk) -{ - return tsk->pi_blocked_on != NULL; -} #else static inline struct task_struct *rt_mutex_get_top_task(struct task_struct *task) { return NULL; } # define rt_mutex_adjust_pi(p) do { } while (0) -static inline bool tsk_is_pi_blocked(struct task_struct *tsk) -{ - return false; -} #endif extern void normalize_rt_tasks(void); --- linux-5.19.0.orig/include/linux/sched/topology.h +++ linux-5.19.0/include/linux/sched/topology.h @@ -81,6 +81,7 @@ atomic_t ref; atomic_t nr_busy_cpus; int has_idle_cores; + int nr_idle_scan; }; struct sched_domain { --- linux-5.19.0.orig/include/linux/sched/user.h +++ linux-5.19.0/include/linux/sched/user.h @@ -24,7 +24,8 @@ kuid_t uid; #if defined(CONFIG_PERF_EVENTS) || defined(CONFIG_BPF_SYSCALL) || \ - defined(CONFIG_NET) || defined(CONFIG_IO_URING) + defined(CONFIG_NET) || defined(CONFIG_IO_URING) || \ + defined(CONFIG_VFIO_PCI_ZDEV_KVM) atomic_long_t locked_vm; #endif #ifdef CONFIG_WATCH_QUEUE --- linux-5.19.0.orig/include/linux/scmi_protocol.h +++ linux-5.19.0/include/linux/scmi_protocol.h @@ -78,7 +78,7 @@ struct scmi_clk_proto_ops { int (*count_get)(const struct scmi_protocol_handle *ph); - const struct scmi_clock_info *(*info_get) + const struct scmi_clock_info __must_check *(*info_get) (const struct scmi_protocol_handle *ph, u32 clk_id); int (*rate_get)(const struct scmi_protocol_handle *ph, u32 clk_id, u64 *rate); @@ -460,7 +460,7 @@ */ struct scmi_sensor_proto_ops { int (*count_get)(const struct scmi_protocol_handle *ph); - const struct scmi_sensor_info *(*info_get) + const struct scmi_sensor_info __must_check *(*info_get) (const struct scmi_protocol_handle *ph, u32 sensor_id); int (*trip_point_config)(const struct scmi_protocol_handle *ph, u32 sensor_id, u8 trip_id, u64 trip_value); --- linux-5.19.0.orig/include/linux/security.h +++ linux-5.19.0/include/linux/security.h @@ -39,6 +39,7 @@ struct sembuf; struct kern_ipc_perm; struct audit_context; +struct audit_lsm_rules; struct super_block; struct inode; struct dentry; @@ -136,6 +137,160 @@ extern const char *const lockdown_reasons[LOCKDOWN_CONFIDENTIALITY_MAX+1]; +/* + * A "security context" is the text representation of + * the information used by LSMs. + * This structure contains the string, its length, and which LSM + * it is useful for. + */ +struct lsmcontext { + char *context; /* Provided by the module */ + u32 len; + int slot; /* Identifies the module */ +}; + +/* + * Data exported by the security modules + * + * Any LSM that provides secid or secctx based hooks must be included. + */ +#define LSMBLOB_ENTRIES ( \ + (IS_ENABLED(CONFIG_SECURITY_SELINUX) ? 1 : 0) + \ + (IS_ENABLED(CONFIG_SECURITY_SMACK) ? 1 : 0) + \ + (IS_ENABLED(CONFIG_SECURITY_APPARMOR) ? 1 : 0) + \ + (IS_ENABLED(CONFIG_BPF_LSM) ? 1 : 0)) + +struct lsmblob { + u32 secid[LSMBLOB_ENTRIES]; +}; + +#define LSMBLOB_INVALID -1 /* Not a valid LSM slot number */ +#define LSMBLOB_NEEDED -2 /* Slot requested on initialization */ +#define LSMBLOB_NOT_NEEDED -3 /* Slot not requested */ +#define LSMBLOB_DISPLAY -4 /* Use the "interface_lsm" slot */ +#define LSMBLOB_FIRST -5 /* Use the first slot */ + +/** + * lsmblob_init - initialize a lsmblob structure + * @blob: Pointer to the data to initialize + * @secid: The initial secid value + * + * Set all secid for all modules to the specified value. + */ +static inline void lsmblob_init(struct lsmblob *blob, u32 secid) +{ + int i; + + for (i = 0; i < LSMBLOB_ENTRIES; i++) + blob->secid[i] = secid; +} + +/** + * lsmblob_is_set - report if there is a value in the lsmblob + * @blob: Pointer to the exported LSM data + * + * Returns true if there is a secid set, false otherwise + */ +static inline bool lsmblob_is_set(struct lsmblob *blob) +{ + const struct lsmblob empty = {}; + + return !!memcmp(blob, &empty, sizeof(*blob)); +} + +/** + * lsmblob_equal - report if the two lsmblob's are equal + * @bloba: Pointer to one LSM data + * @blobb: Pointer to the other LSM data + * + * Returns true if all entries in the two are equal, false otherwise + */ +static inline bool lsmblob_equal(const struct lsmblob *bloba, + const struct lsmblob *blobb) +{ + return !memcmp(bloba, blobb, sizeof(*bloba)); +} + +/* Map lsm names to blob slot numbers */ +#if LSMBLOB_ENTRIES > 0 +extern int lsm_name_to_slot(char *name); +extern const char *lsm_slot_to_name(int slot); +#else +static inline int lsm_name_to_slot(char *name) +{ + return LSMBLOB_INVALID; +} +static inline const char *lsm_slot_to_name(int slot) +{ + return NULL; +} +#endif + +static inline bool lsm_multiple_contexts(void) +{ +#ifdef CONFIG_SECURITY + return lsm_slot_to_name(1) != NULL; +#else + return false; +#endif +} + +/** + * lsmblob_value - find the first non-zero value in an lsmblob structure. + * @blob: Pointer to the data + * + * This needs to be used with extreme caution, as the cases where + * it is appropriate are rare. + * + * Return the first secid value set in the lsmblob. + * There should only be one. + */ +static inline u32 lsmblob_value(const struct lsmblob *blob) +{ + int i; + + for (i = 0; i < LSMBLOB_ENTRIES; i++) + if (blob->secid[i]) + return blob->secid[i]; + + return 0; +} + +/** + * lsmblob_first - secid value for the first LSM slot + * @blob: Pointer to the data + * + * Return the secid value from the first LSM slot. + * There may not be any LSM slots. + * + * Return the value in secid[0] if there are any slots, 0 otherwise. + */ +static inline u32 lsmblob_first(const struct lsmblob *blob) +{ +#if LSMBLOB_ENTRIES > 0 + return blob->secid[0]; +#else + return 0; +#endif +} + +/** + * lsm_task_ilsm - the "interface_lsm" for this task + * @task: The task to report on + * + * Returns the task's interface LSM slot. + */ +static inline int lsm_task_ilsm(struct task_struct *task) +{ +#ifdef CONFIG_SECURITY + int *ilsm = task->security; + + if (ilsm) + return *ilsm; +#endif + return LSMBLOB_INVALID; +} + /* These functions are in security/commoncap.c */ extern int cap_capable(const struct cred *cred, struct user_namespace *ns, int cap, unsigned int opts); @@ -318,8 +473,8 @@ int security_move_mount(const struct path *from_path, const struct path *to_path); int security_dentry_init_security(struct dentry *dentry, int mode, const struct qstr *name, - const char **xattr_name, void **ctx, - u32 *ctxlen); + const char **xattr_name, + struct lsmcontext *lsmcxt); int security_dentry_create_files_as(struct dentry *dentry, int mode, struct qstr *name, const struct cred *old, @@ -372,7 +527,7 @@ void **buffer, bool alloc); int security_inode_setsecurity(struct inode *inode, const char *name, const void *value, size_t size, int flags); int security_inode_listsecurity(struct inode *inode, char *buffer, size_t buffer_size); -void security_inode_getsecid(struct inode *inode, u32 *secid); +void security_inode_getsecid(struct inode *inode, struct lsmblob *blob); int security_inode_copy_up(struct dentry *src, struct cred **new); int security_inode_copy_up_xattr(const char *name); int security_kernfs_init_security(struct kernfs_node *kn_dir, @@ -399,8 +554,8 @@ void security_cred_free(struct cred *cred); int security_prepare_creds(struct cred *new, const struct cred *old, gfp_t gfp); void security_transfer_creds(struct cred *new, const struct cred *old); -void security_cred_getsecid(const struct cred *c, u32 *secid); -int security_kernel_act_as(struct cred *new, u32 secid); +void security_cred_getsecid(const struct cred *c, struct lsmblob *blob); +int security_kernel_act_as(struct cred *new, struct lsmblob *blob); int security_kernel_create_files_as(struct cred *new, struct inode *inode); int security_kernel_module_request(char *kmod_name); int security_kernel_load_data(enum kernel_load_data_id id, bool contents); @@ -418,8 +573,8 @@ int security_task_setpgid(struct task_struct *p, pid_t pgid); int security_task_getpgid(struct task_struct *p); int security_task_getsid(struct task_struct *p); -void security_current_getsecid_subj(u32 *secid); -void security_task_getsecid_obj(struct task_struct *p, u32 *secid); +void security_current_getsecid_subj(struct lsmblob *blob); +void security_task_getsecid_obj(struct task_struct *p, struct lsmblob *blob); int security_task_setnice(struct task_struct *p, int nice); int security_task_setioprio(struct task_struct *p, int ioprio); int security_task_getioprio(struct task_struct *p); @@ -435,8 +590,9 @@ int security_task_prctl(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5); void security_task_to_inode(struct task_struct *p, struct inode *inode); +int security_create_user_ns(const struct cred *cred); int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag); -void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid); +void security_ipc_getsecid(struct kern_ipc_perm *ipcp, struct lsmblob *blob); int security_msg_msg_alloc(struct msg_msg *msg); void security_msg_msg_free(struct msg_msg *msg); int security_msg_queue_alloc(struct kern_ipc_perm *msq); @@ -465,14 +621,17 @@ size_t size); int security_netlink_send(struct sock *sk, struct sk_buff *skb); int security_ismaclabel(const char *name); -int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen); -int security_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid); -void security_release_secctx(char *secdata, u32 seclen); +int security_secid_to_secctx(struct lsmblob *blob, struct lsmcontext *cp, + int ilsm); +int security_secctx_to_secid(const char *secdata, u32 seclen, + struct lsmblob *blob); +void security_release_secctx(struct lsmcontext *cp); void security_inode_invalidate_secctx(struct inode *inode); int security_inode_notifysecctx(struct inode *inode, void *ctx, u32 ctxlen); int security_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen); -int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen); +int security_inode_getsecctx(struct inode *inode, struct lsmcontext *cp); int security_locked_down(enum lockdown_reason what); +int security_lock_kernel_down(const char *where, enum lockdown_reason level); #else /* CONFIG_SECURITY */ static inline int call_blocking_lsm_notifier(enum lsm_event event, void *data) @@ -735,8 +894,7 @@ int mode, const struct qstr *name, const char **xattr_name, - void **ctx, - u32 *ctxlen) + struct lsmcontext *lsmcxt) { return -EOPNOTSUPP; } @@ -917,9 +1075,10 @@ return 0; } -static inline void security_inode_getsecid(struct inode *inode, u32 *secid) +static inline void security_inode_getsecid(struct inode *inode, + struct lsmblob *blob) { - *secid = 0; + lsmblob_init(blob, 0); } static inline int security_inode_copy_up(struct dentry *src, struct cred **new) @@ -1037,12 +1196,14 @@ { } -static inline void security_cred_getsecid(const struct cred *c, u32 *secid) +static inline void security_cred_getsecid(const struct cred *c, + struct lsmblob *blob) { - *secid = 0; + lsmblob_init(blob, 0); } -static inline int security_kernel_act_as(struct cred *cred, u32 secid) +static inline int security_kernel_act_as(struct cred *cred, + struct lsmblob *blob) { return 0; } @@ -1113,14 +1274,15 @@ return 0; } -static inline void security_current_getsecid_subj(u32 *secid) +static inline void security_current_getsecid_subj(struct lsmblob *blob) { - *secid = 0; + lsmblob_init(blob, 0); } -static inline void security_task_getsecid_obj(struct task_struct *p, u32 *secid) +static inline void security_task_getsecid_obj(struct task_struct *p, + struct lsmblob *blob) { - *secid = 0; + lsmblob_init(blob, 0); } static inline int security_task_setnice(struct task_struct *p, int nice) @@ -1185,15 +1347,21 @@ static inline void security_task_to_inode(struct task_struct *p, struct inode *inode) { } +static inline int security_create_user_ns(const struct cred *cred) +{ + return 0; +} + static inline int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) { return 0; } -static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) +static inline void security_ipc_getsecid(struct kern_ipc_perm *ipcp, + struct lsmblob *blob) { - *secid = 0; + lsmblob_init(blob, 0); } static inline int security_msg_msg_alloc(struct msg_msg *msg) @@ -1313,19 +1481,20 @@ return 0; } -static inline int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) +static inline int security_secid_to_secctx(struct lsmblob *blob, + struct lsmcontext *cp, int ilsm) { return -EOPNOTSUPP; } static inline int security_secctx_to_secid(const char *secdata, u32 seclen, - u32 *secid) + struct lsmblob *blob) { return -EOPNOTSUPP; } -static inline void security_release_secctx(char *secdata, u32 seclen) +static inline void security_release_secctx(struct lsmcontext *cp) { } @@ -1341,7 +1510,8 @@ { return -EOPNOTSUPP; } -static inline int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) +static inline int security_inode_getsecctx(struct inode *inode, + struct lsmcontext *cp) { return -EOPNOTSUPP; } @@ -1349,6 +1519,10 @@ { return 0; } +static inline int security_lock_kernel_down(const char *where, enum lockdown_reason level) +{ + return 0; +} #endif /* CONFIG_SECURITY */ #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) @@ -1889,15 +2063,17 @@ #ifdef CONFIG_AUDIT #ifdef CONFIG_SECURITY -int security_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule); +int security_audit_rule_init(u32 field, u32 op, char *rulestr, + struct audit_lsm_rules *lsmrules); int security_audit_rule_known(struct audit_krule *krule); -int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule); -void security_audit_rule_free(void *lsmrule); +int security_audit_rule_match(struct lsmblob *blob, u32 field, u32 op, + struct audit_lsm_rules *lsmrules); +void security_audit_rule_free(struct audit_lsm_rules *lsmrules); #else static inline int security_audit_rule_init(u32 field, u32 op, char *rulestr, - void **lsmrule) + struct audit_lsm_rules *lsmrules) { return 0; } @@ -1907,18 +2083,45 @@ return 0; } -static inline int security_audit_rule_match(u32 secid, u32 field, u32 op, - void *lsmrule) +static inline int security_audit_rule_match(struct lsmblob *blob, + u32 field, u32 op, + struct audit_lsm_rules *lsmrules) { return 0; } -static inline void security_audit_rule_free(void *lsmrule) +static inline void security_audit_rule_free(struct audit_lsm_rules *lsmrules) { } #endif /* CONFIG_SECURITY */ #endif /* CONFIG_AUDIT */ +#if defined(CONFIG_IMA_LSM_RULES) && defined(CONFIG_SECURITY) +int ima_filter_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule, + int lsmslot); +int ima_filter_rule_match(struct lsmblob *blob, u32 field, u32 op, + void *lsmrule, int lsmslot); +void ima_filter_rule_free(void *lsmrule, int lsmslot); + +#else + +static inline int ima_filter_rule_init(u32 field, u32 op, char *rulestr, + void **lsmrule, int lsmslot) +{ + return 0; +} + +static inline int ima_filter_rule_match(struct lsmblob *blob, u32 field, u32 op, + void *lsmrule, int lsmslot) +{ + return 0; +} + +static inline void ima_filter_rule_free(void *lsmrule, int lsmslot) +{ } + +#endif /* defined(CONFIG_IMA_LSM_RULES) && defined(CONFIG_SECURITY) */ + #ifdef CONFIG_SECURITYFS extern struct dentry *securityfs_create_file(const char *name, umode_t mode, @@ -2051,6 +2254,7 @@ #ifdef CONFIG_SECURITY extern int security_uring_override_creds(const struct cred *new); extern int security_uring_sqpoll(void); +extern int security_uring_cmd(struct io_uring_cmd *ioucmd); #else static inline int security_uring_override_creds(const struct cred *new) { @@ -2060,6 +2264,10 @@ { return 0; } +static inline int security_uring_cmd(struct io_uring_cmd *ioucmd) +{ + return 0; +} #endif /* CONFIG_SECURITY */ #endif /* CONFIG_IO_URING */ --- linux-5.19.0.orig/include/linux/serial_8250.h +++ linux-5.19.0/include/linux/serial_8250.h @@ -74,6 +74,7 @@ struct uart_8250_ops { int (*setup_irq)(struct uart_8250_port *); void (*release_irq)(struct uart_8250_port *); + void (*setup_timer)(struct uart_8250_port *); }; struct uart_8250_em485 { --- linux-5.19.0.orig/include/linux/serial_core.h +++ linux-5.19.0/include/linux/serial_core.h @@ -101,7 +101,7 @@ __u32 buf_overrun; }; -typedef unsigned int __bitwise upf_t; +typedef u64 __bitwise upf_t; typedef unsigned int __bitwise upstat_t; struct uart_port { @@ -208,6 +208,7 @@ #define UPF_FIXED_PORT ((__force upf_t) (1 << 29)) #define UPF_DEAD ((__force upf_t) (1 << 30)) #define UPF_IOREMAP ((__force upf_t) (1 << 31)) +#define UPF_FULL_PROBE ((__force upf_t) (1ULL << 32)) #define __UPF_CHANGE_MASK 0x17fff #define UPF_CHANGE_MASK ((__force upf_t) __UPF_CHANGE_MASK) @@ -255,6 +256,7 @@ struct attribute_group *attr_group; /* port specific attributes */ const struct attribute_group **tty_groups; /* all attributes (serial core use only) */ struct serial_rs485 rs485; + const struct serial_rs485 *rs485_supported; /* Supported mask for serial_rs485 */ struct gpio_desc *rs485_term_gpio; /* enable RS485 bus termination */ struct serial_iso7816 iso7816; void *private_data; /* generic platform data pointer */ @@ -302,6 +304,23 @@ /* number of characters left in xmit buffer before we ask for more */ #define WAKEUP_CHARS 256 +/** + * uart_xmit_advance - Advance xmit buffer and account Tx'ed chars + * @up: uart_port structure describing the port + * @chars: number of characters sent + * + * This function advances the tail of circular xmit buffer by the number of + * @chars transmitted and handles accounting of transmitted bytes (into + * @up's icount.tx). + */ +static inline void uart_xmit_advance(struct uart_port *up, unsigned int chars) +{ + struct circ_buf *xmit = &up->state->xmit; + + xmit->tail = (xmit->tail + chars) & (UART_XMIT_SIZE - 1); + up->icount.tx += chars; +} + struct module; struct tty_driver; --- linux-5.19.0.orig/include/linux/skbuff.h +++ linux-5.19.0/include/linux/skbuff.h @@ -965,6 +965,7 @@ * @csum_level: indicates the number of consecutive checksums found in * the packet minus one that have been verified as * CHECKSUM_UNNECESSARY (max 3) + * @scm_io_uring: SKB holds io_uring registered files * @dst_pending_confirm: need to confirm neighbour * @decrypted: Decrypted SKB * @slow_gro: state present at GRO time, slower prepare step required @@ -1144,6 +1145,7 @@ #endif __u8 slow_gro:1; __u8 csum_not_inet:1; + __u8 scm_io_uring:1; #ifdef CONFIG_NET_SCHED __u16 tc_index; /* traffic control index */ @@ -2528,6 +2530,22 @@ return skb_headlen(skb) + __skb_pagelen(skb); } +static inline void __skb_fill_page_desc_noacc(struct skb_shared_info *shinfo, + int i, struct page *page, + int off, int size) +{ + skb_frag_t *frag = &shinfo->frags[i]; + + /* + * Propagate page pfmemalloc to the skb if we can. The problem is + * that not all callers have unique ownership of the page but rely + * on page_is_pfmemalloc doing the right thing(tm). + */ + frag->bv_page = page; + frag->bv_offset = off; + skb_frag_size_set(frag, size); +} + /** * __skb_fill_page_desc - initialise a paged fragment in an skb * @skb: buffer containing fragment to be initialised @@ -2544,17 +2562,7 @@ static inline void __skb_fill_page_desc(struct sk_buff *skb, int i, struct page *page, int off, int size) { - skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - - /* - * Propagate page pfmemalloc to the skb if we can. The problem is - * that not all callers have unique ownership of the page but rely - * on page_is_pfmemalloc doing the right thing(tm). - */ - frag->bv_page = page; - frag->bv_offset = off; - skb_frag_size_set(frag, size); - + __skb_fill_page_desc_noacc(skb_shinfo(skb), i, page, off, size); page = compound_head(page); if (page_is_pfmemalloc(page)) skb->pfmemalloc = true; @@ -2581,6 +2589,27 @@ skb_shinfo(skb)->nr_frags = i + 1; } +/** + * skb_fill_page_desc_noacc - initialise a paged fragment in an skb + * @skb: buffer containing fragment to be initialised + * @i: paged fragment index to initialise + * @page: the page to use for this fragment + * @off: the offset to the data with @page + * @size: the length of the data + * + * Variant of skb_fill_page_desc() which does not deal with + * pfmemalloc, if page is not owned by us. + */ +static inline void skb_fill_page_desc_noacc(struct sk_buff *skb, int i, + struct page *page, int off, + int size) +{ + struct skb_shared_info *shinfo = skb_shinfo(skb); + + __skb_fill_page_desc_noacc(shinfo, i, page, off, size); + shinfo->nr_frags = i + 1; +} + void skb_add_rx_frag(struct sk_buff *skb, int i, struct page *page, int off, int size, unsigned int truesize); @@ -2624,6 +2653,14 @@ #endif /* NET_SKBUFF_DATA_USES_OFFSET */ +static inline void skb_assert_len(struct sk_buff *skb) +{ +#ifdef CONFIG_DEBUG_NET + if (WARN_ONCE(!skb->len, "%s\n", __func__)) + DO_ONCE_LITE(skb_dump, KERN_ERR, skb, false); +#endif /* CONFIG_DEBUG_NET */ +} + /* * Add data to an sk_buff */ --- linux-5.19.0.orig/include/linux/skmsg.h +++ linux-5.19.0/include/linux/skmsg.h @@ -82,6 +82,7 @@ u32 apply_bytes; u32 cork_bytes; u32 eval; + bool redir_ingress; /* undefined if sk_redir is null */ struct sk_msg *cork; struct sk_psock_progs progs; #if IS_ENABLED(CONFIG_BPF_STREAM_PARSER) @@ -95,6 +96,7 @@ spinlock_t link_lock; refcount_t refcnt; void (*saved_unhash)(struct sock *sk); + void (*saved_destroy)(struct sock *sk); void (*saved_close)(struct sock *sk, long timeout); void (*saved_write_space)(struct sock *sk); void (*saved_data_ready)(struct sock *sk); @@ -277,7 +279,8 @@ static inline struct sk_psock *sk_psock(const struct sock *sk) { - return rcu_dereference_sk_user_data(sk); + return __rcu_dereference_sk_user_data_with_flags(sk, + SK_USER_DATA_PSOCK); } static inline void sk_psock_set_state(struct sk_psock *psock, @@ -374,7 +377,7 @@ } struct sk_psock *sk_psock_init(struct sock *sk, int node); -void sk_psock_stop(struct sk_psock *psock, bool wait); +void sk_psock_stop(struct sk_psock *psock); #if IS_ENABLED(CONFIG_BPF_STREAM_PARSER) int sk_psock_init_strp(struct sock *sk, struct sk_psock *psock); --- linux-5.19.0.orig/include/linux/soundwire/sdw.h +++ linux-5.19.0/include/linux/soundwire/sdw.h @@ -646,9 +646,6 @@ * @dev_num: Current Device Number, values can be 0 or dev_num_sticky * @dev_num_sticky: one-time static Device Number assigned by Bus * @probed: boolean tracking driver state - * @probe_complete: completion utility to control potential races - * on startup between driver probe/initialization and SoundWire - * Slave state changes/implementation-defined interrupts * @enumeration_complete: completion utility to control potential races * on startup between device enumeration and read/write access to the * Slave device @@ -663,6 +660,7 @@ * for a Slave happens for the first time after enumeration * @is_mockup_device: status flag used to squelch errors in the command/control * protocol for SoundWire mockup devices + * @sdw_dev_lock: mutex used to protect callbacks/remove races */ struct sdw_slave { struct sdw_slave_id id; @@ -680,12 +678,12 @@ u16 dev_num; u16 dev_num_sticky; bool probed; - struct completion probe_complete; struct completion enumeration_complete; struct completion initialization_complete; u32 unattach_request; bool first_interrupt_done; bool is_mockup_device; + struct mutex sdw_dev_lock; /* protect callbacks/remove races */ }; #define dev_to_sdw_dev(_dev) container_of(_dev, struct sdw_slave, dev) --- linux-5.19.0.orig/include/linux/soundwire/sdw_intel.h +++ linux-5.19.0/include/linux/soundwire/sdw_intel.h @@ -9,6 +9,8 @@ #define SDW_SHIM_BASE 0x2C000 #define SDW_ALH_BASE 0x2C800 +#define SDW_SHIM_BASE_ACE 0x38000 +#define SDW_ALH_BASE_ACE 0x24000 #define SDW_LINK_BASE 0x30000 #define SDW_LINK_SIZE 0x10000 --- linux-5.19.0.orig/include/linux/sunrpc/svc.h +++ linux-5.19.0/include/linux/sunrpc/svc.h @@ -544,16 +544,27 @@ } /** - * svcxdr_init_decode - Prepare an xdr_stream for svc Call decoding + * svcxdr_init_decode - Prepare an xdr_stream for Call decoding * @rqstp: controlling server RPC transaction context * + * This function currently assumes the RPC header in rq_arg has + * already been decoded. Upon return, xdr->p points to the + * location of the upper layer header. */ static inline void svcxdr_init_decode(struct svc_rqst *rqstp) { struct xdr_stream *xdr = &rqstp->rq_arg_stream; - struct kvec *argv = rqstp->rq_arg.head; + struct xdr_buf *buf = &rqstp->rq_arg; + struct kvec *argv = buf->head; - xdr_init_decode(xdr, &rqstp->rq_arg, argv->iov_base, NULL); + /* + * svc_getnl() and friends do not keep the xdr_buf's ::len + * field up to date. Refresh that field before initializing + * the argument decoding stream. + */ + buf->len = buf->head->iov_len + buf->page_len + buf->tail->iov_len; + + xdr_init_decode(xdr, buf, argv->iov_base, NULL); xdr_set_scratch_page(xdr, rqstp->rq_scratch_page); } @@ -576,7 +587,7 @@ xdr->end = resv->iov_base + PAGE_SIZE - rqstp->rq_auth_slack; buf->len = resv->iov_len; xdr->page_ptr = buf->pages - 1; - buf->buflen = PAGE_SIZE * (1 + rqstp->rq_page_end - buf->pages); + buf->buflen = PAGE_SIZE * (rqstp->rq_page_end - buf->pages); buf->buflen -= rqstp->rq_auth_slack; xdr->rqst = NULL; } --- linux-5.19.0.orig/include/linux/sunrpc/xdr.h +++ linux-5.19.0/include/linux/sunrpc/xdr.h @@ -419,8 +419,8 @@ */ static inline __be32 *xdr_encode_bool(__be32 *p, u32 n) { - *p = n ? xdr_one : xdr_zero; - return p++; + *p++ = n ? xdr_one : xdr_zero; + return p; } /** --- linux-5.19.0.orig/include/linux/sunrpc/xprt.h +++ linux-5.19.0/include/linux/sunrpc/xprt.h @@ -144,7 +144,8 @@ unsigned short (*get_srcport)(struct rpc_xprt *xprt); int (*buf_alloc)(struct rpc_task *task); void (*buf_free)(struct rpc_task *task); - int (*prepare_request)(struct rpc_rqst *req); + int (*prepare_request)(struct rpc_rqst *req, + struct xdr_buf *buf); int (*send_request)(struct rpc_rqst *req); void (*wait_for_reply_request)(struct rpc_task *task); void (*timer)(struct rpc_xprt *xprt, struct rpc_task *task); --- linux-5.19.0.orig/include/linux/swapops.h +++ linux-5.19.0/include/linux/swapops.h @@ -244,8 +244,10 @@ spinlock_t *ptl); extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address); -extern void migration_entry_wait_huge(struct vm_area_struct *vma, - struct mm_struct *mm, pte_t *pte); +#ifdef CONFIG_HUGETLB_PAGE +extern void __migration_entry_wait_huge(pte_t *ptep, spinlock_t *ptl); +extern void migration_entry_wait_huge(struct vm_area_struct *vma, pte_t *pte); +#endif #else static inline swp_entry_t make_readable_migration_entry(pgoff_t offset) { @@ -271,8 +273,10 @@ spinlock_t *ptl) { } static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address) { } -static inline void migration_entry_wait_huge(struct vm_area_struct *vma, - struct mm_struct *mm, pte_t *pte) { } +#ifdef CONFIG_HUGETLB_PAGE +static inline void __migration_entry_wait_huge(pte_t *ptep, spinlock_t *ptl) { } +static inline void migration_entry_wait_huge(struct vm_area_struct *vma, pte_t *pte) { } +#endif static inline int is_writable_migration_entry(swp_entry_t entry) { return 0; --- linux-5.19.0.orig/include/linux/tcp.h +++ linux-5.19.0/include/linux/tcp.h @@ -265,7 +265,7 @@ u32 packets_out; /* Packets which are "in flight" */ u32 retrans_out; /* Retransmitted packets out */ u32 max_packets_out; /* max packets_out in last window */ - u32 max_packets_seq; /* right edge of max_packets_out flight */ + u32 cwnd_usage_seq; /* right edge of cwnd usage tracking flight */ u16 urg_data; /* Saved octet of OOB data and control flags */ u8 ecn_flags; /* ECN status bits. */ --- linux-5.19.0.orig/include/linux/time64.h +++ linux-5.19.0/include/linux/time64.h @@ -20,6 +20,9 @@ struct timespec64 it_value; }; +/* Parameters used to convert the timespec values: */ +#define PSEC_PER_NSEC 1000L + /* Located here for timespec[64]_valid_strict */ #define TIME64_MAX ((s64)~((u64)1 << 63)) #define TIME64_MIN (-TIME64_MAX - 1) --- linux-5.19.0.orig/include/linux/timerqueue.h +++ linux-5.19.0/include/linux/timerqueue.h @@ -35,7 +35,7 @@ { struct rb_node *leftmost = rb_first_cached(&head->rb_root); - return rb_entry(leftmost, struct timerqueue_node, node); + return rb_entry_safe(leftmost, struct timerqueue_node, node); } static inline void timerqueue_init(struct timerqueue_node *node) --- linux-5.19.0.orig/include/linux/tpm_eventlog.h +++ linux-5.19.0/include/linux/tpm_eventlog.h @@ -157,7 +157,7 @@ * Return: size of the event on success, 0 on failure */ -static inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, +static __always_inline int __calc_tpm2_event_size(struct tcg_pcr_event2_head *event, struct tcg_pcr_event *event_header, bool do_mapping) { --- linux-5.19.0.orig/include/linux/trace.h +++ linux-5.19.0/include/linux/trace.h @@ -2,8 +2,6 @@ #ifndef _LINUX_TRACE_H #define _LINUX_TRACE_H -#ifdef CONFIG_TRACING - #define TRACE_EXPORT_FUNCTION BIT(0) #define TRACE_EXPORT_EVENT BIT(1) #define TRACE_EXPORT_MARKER BIT(2) @@ -28,11 +26,13 @@ int flags; }; +struct trace_array; + +#ifdef CONFIG_TRACING + int register_ftrace_export(struct trace_export *export); int unregister_ftrace_export(struct trace_export *export); -struct trace_array; - void trace_printk_init_buffers(void); __printf(3, 4) int trace_array_printk(struct trace_array *tr, unsigned long ip, @@ -48,6 +48,38 @@ void osnoise_trace_irq_entry(int id); void osnoise_trace_irq_exit(int id, const char *desc); +#else /* CONFIG_TRACING */ +static inline int register_ftrace_export(struct trace_export *export) +{ + return -EINVAL; +} +static inline int unregister_ftrace_export(struct trace_export *export) +{ + return 0; +} +static inline void trace_printk_init_buffers(void) +{ +} +static inline int trace_array_printk(struct trace_array *tr, unsigned long ip, + const char *fmt, ...) +{ + return 0; +} +static inline int trace_array_init_printk(struct trace_array *tr) +{ + return -EINVAL; +} +static inline void trace_array_put(struct trace_array *tr) +{ +} +static inline struct trace_array *trace_array_get_by_name(const char *name) +{ + return NULL; +} +static inline int trace_array_destroy(struct trace_array *tr) +{ + return 0; +} #endif /* CONFIG_TRACING */ #endif /* _LINUX_TRACE_H */ --- linux-5.19.0.orig/include/linux/trace_events.h +++ linux-5.19.0/include/linux/trace_events.h @@ -92,6 +92,7 @@ unsigned int temp_size; char *fmt; /* modified format holder */ unsigned int fmt_size; + long wait_index; /* trace_seq for __print_flags() and __print_symbolic() etc. */ struct trace_seq tmp_seq; @@ -916,6 +917,24 @@ #endif +#define TRACE_EVENT_STR_MAX 512 + +/* + * gcc warns that you can not use a va_list in an inlined + * function. But lets me make it into a macro :-/ + */ +#define __trace_event_vstr_len(fmt, va) \ +({ \ + va_list __ap; \ + int __ret; \ + \ + va_copy(__ap, *(va)); \ + __ret = vsnprintf(NULL, 0, fmt, __ap) + 1; \ + va_end(__ap); \ + \ + min(__ret, TRACE_EVENT_STR_MAX); \ +}) + #endif /* _LINUX_TRACE_EVENT_H */ /* --- linux-5.19.0.orig/include/linux/uacce.h +++ linux-5.19.0/include/linux/uacce.h @@ -70,6 +70,7 @@ * @wait: wait queue head * @list: index into uacce queues list * @qfrs: pointer of qfr regions + * @mutex: protects queue state * @state: queue state machine * @pasid: pasid associated to the mm * @handle: iommu_sva handle returned by iommu_sva_bind_device() @@ -80,6 +81,7 @@ wait_queue_head_t wait; struct list_head list; struct uacce_qfile_region *qfrs[UACCE_MAX_REGION]; + struct mutex mutex; enum uacce_q_state state; u32 pasid; struct iommu_sva *handle; @@ -97,9 +99,9 @@ * @dev_id: id of the uacce device * @cdev: cdev of the uacce * @dev: dev of the uacce + * @mutex: protects uacce operation * @priv: private pointer of the uacce * @queues: list of queues - * @queues_lock: lock for queues list * @inode: core vfs */ struct uacce_device { @@ -113,9 +115,9 @@ u32 dev_id; struct cdev *cdev; struct device dev; + struct mutex mutex; void *priv; struct list_head queues; - struct mutex queues_lock; struct inode *inode; }; --- linux-5.19.0.orig/include/linux/udp.h +++ linux-5.19.0/include/linux/udp.h @@ -70,6 +70,7 @@ * For encapsulation sockets. */ int (*encap_rcv)(struct sock *sk, struct sk_buff *skb); + void (*encap_err_rcv)(struct sock *sk, struct sk_buff *skb, unsigned int udp_offset); int (*encap_err_lookup)(struct sock *sk, struct sk_buff *skb); void (*encap_destroy)(struct sock *sk); --- linux-5.19.0.orig/include/linux/usb.h +++ linux-5.19.0/include/linux/usb.h @@ -575,6 +575,7 @@ * @devaddr: device address, XHCI: assigned by HW, others: same as devnum * @can_submit: URBs may be submitted * @persist_enabled: USB_PERSIST enabled for this device + * @reset_in_progress: the device is being reset * @have_langid: whether string_langid is valid * @authorized: policy has said we can use it; * (user space) policy determines if we authorize this device to be @@ -661,6 +662,7 @@ unsigned can_submit:1; unsigned persist_enabled:1; + unsigned reset_in_progress:1; unsigned have_langid:1; unsigned authorized:1; unsigned authenticated:1; --- linux-5.19.0.orig/include/linux/usb/hcd.h +++ linux-5.19.0/include/linux/usb/hcd.h @@ -66,6 +66,7 @@ struct giveback_urb_bh { bool running; + bool high_prio; spinlock_t lock; struct list_head head; struct tasklet_struct bh; --- linux-5.19.0.orig/include/linux/usb/typec_dp.h +++ linux-5.19.0/include/linux/usb/typec_dp.h @@ -73,6 +73,11 @@ #define DP_CAP_USB BIT(7) #define DP_CAP_DFP_D_PIN_ASSIGN(_cap_) (((_cap_) & GENMASK(15, 8)) >> 8) #define DP_CAP_UFP_D_PIN_ASSIGN(_cap_) (((_cap_) & GENMASK(23, 16)) >> 16) +/* Get pin assignment taking plug & receptacle into consideration */ +#define DP_CAP_PIN_ASSIGN_UFP_D(_cap_) ((_cap_ & DP_CAP_RECEPTACLE) ? \ + DP_CAP_UFP_D_PIN_ASSIGN(_cap_) : DP_CAP_DFP_D_PIN_ASSIGN(_cap_)) +#define DP_CAP_PIN_ASSIGN_DFP_D(_cap_) ((_cap_ & DP_CAP_RECEPTACLE) ? \ + DP_CAP_DFP_D_PIN_ASSIGN(_cap_) : DP_CAP_UFP_D_PIN_ASSIGN(_cap_)) /* DisplayPort Status Update VDO bits */ #define DP_STATUS_CONNECTION(_status_) ((_status_) & 3) --- linux-5.19.0.orig/include/linux/usb/typec_mux.h +++ linux-5.19.0/include/linux/usb/typec_mux.h @@ -58,17 +58,13 @@ void *drvdata; }; +#if IS_ENABLED(CONFIG_TYPEC) + struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode, const struct typec_altmode_desc *desc); void typec_mux_put(struct typec_mux *mux); int typec_mux_set(struct typec_mux *mux, struct typec_mux_state *state); -static inline struct typec_mux * -typec_mux_get(struct device *dev, const struct typec_altmode_desc *desc) -{ - return fwnode_typec_mux_get(dev_fwnode(dev), desc); -} - struct typec_mux_dev * typec_mux_register(struct device *parent, const struct typec_mux_desc *desc); void typec_mux_unregister(struct typec_mux_dev *mux); @@ -76,4 +72,40 @@ void typec_mux_set_drvdata(struct typec_mux_dev *mux, void *data); void *typec_mux_get_drvdata(struct typec_mux_dev *mux); +#else + +static inline struct typec_mux *fwnode_typec_mux_get(struct fwnode_handle *fwnode, + const struct typec_altmode_desc *desc) +{ + return NULL; +} + +static inline void typec_mux_put(struct typec_mux *mux) {} + +static inline int typec_mux_set(struct typec_mux *mux, struct typec_mux_state *state) +{ + return 0; +} + +static inline struct typec_mux_dev * +typec_mux_register(struct device *parent, const struct typec_mux_desc *desc) +{ + return ERR_PTR(-EOPNOTSUPP); +} +static inline void typec_mux_unregister(struct typec_mux_dev *mux) {} + +static inline void typec_mux_set_drvdata(struct typec_mux_dev *mux, void *data) {} +static inline void *typec_mux_get_drvdata(struct typec_mux_dev *mux) +{ + return ERR_PTR(-EOPNOTSUPP); +} + +#endif /* CONFIG_TYPEC */ + +static inline struct typec_mux * +typec_mux_get(struct device *dev, const struct typec_altmode_desc *desc) +{ + return fwnode_typec_mux_get(dev_fwnode(dev), desc); +} + #endif /* __USB_TYPEC_MUX */ --- linux-5.19.0.orig/include/linux/user_namespace.h +++ linux-5.19.0/include/linux/user_namespace.h @@ -170,6 +170,8 @@ const struct user_namespace *child); extern bool current_in_userns(const struct user_namespace *target_ns); struct ns_common *ns_get_owner(struct ns_common *ns); + +extern int unprivileged_userns_clone; #else static inline struct user_namespace *get_user_ns(struct user_namespace *ns) --- linux-5.19.0.orig/include/linux/userfaultfd_k.h +++ linux-5.19.0/include/linux/userfaultfd_k.h @@ -73,6 +73,8 @@ extern int mwriteprotect_range(struct mm_struct *dst_mm, unsigned long start, unsigned long len, bool enable_wp, atomic_t *mmap_changing); +extern void uffd_wp_range(struct mm_struct *dst_mm, struct vm_area_struct *vma, + unsigned long start, unsigned long len, bool enable_wp); /* mm helpers */ static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, @@ -144,9 +146,9 @@ static inline bool vma_can_userfault(struct vm_area_struct *vma, unsigned long vm_flags) { - if (vm_flags & VM_UFFD_MINOR) - return is_vm_hugetlb_page(vma) || vma_is_shmem(vma); - + if ((vm_flags & VM_UFFD_MINOR) && + (!is_vm_hugetlb_page(vma) && !vma_is_shmem(vma))) + return false; #ifndef CONFIG_PTE_MARKER_UFFD_WP /* * If user requested uffd-wp but not enabled pte markers for --- linux-5.19.0.orig/include/linux/vfio.h +++ linux-5.19.0/include/linux/vfio.h @@ -32,6 +32,11 @@ struct vfio_device { struct device *dev; const struct vfio_device_ops *ops; + /* + * mig_ops is a static property of the vfio_device which must be set + * prior to registering the vfio_device. + */ + const struct vfio_migration_ops *mig_ops; struct vfio_group *group; struct vfio_device_set *dev_set; struct list_head dev_set_list; @@ -61,16 +66,6 @@ * match, -errno for abort (ex. match with insufficient or incorrect * additional args) * @device_feature: Optional, fill in the VFIO_DEVICE_FEATURE ioctl - * @migration_set_state: Optional callback to change the migration state for - * devices that support migration. It's mandatory for - * VFIO_DEVICE_FEATURE_MIGRATION migration support. - * The returned FD is used for data transfer according to the FSM - * definition. The driver is responsible to ensure that FD reaches end - * of stream or error whenever the migration FSM leaves a data transfer - * state or before close_device() returns. - * @migration_get_state: Optional callback to get the migration state for - * devices that support migration. It's mandatory for - * VFIO_DEVICE_FEATURE_MIGRATION migration support. */ struct vfio_device_ops { char *name; @@ -87,6 +82,21 @@ int (*match)(struct vfio_device *vdev, char *buf); int (*device_feature)(struct vfio_device *device, u32 flags, void __user *arg, size_t argsz); +}; + +/** + * @migration_set_state: Optional callback to change the migration state for + * devices that support migration. It's mandatory for + * VFIO_DEVICE_FEATURE_MIGRATION migration support. + * The returned FD is used for data transfer according to the FSM + * definition. The driver is responsible to ensure that FD reaches end + * of stream or error whenever the migration FSM leaves a data transfer + * state or before close_device() returns. + * @migration_get_state: Optional callback to get the migration state for + * devices that support migration. It's mandatory for + * VFIO_DEVICE_FEATURE_MIGRATION migration support. + */ +struct vfio_migration_ops { struct file *(*migration_set_state)( struct vfio_device *device, enum vfio_device_mig_state new_state); --- linux-5.19.0.orig/include/linux/vfio_pci_core.h +++ linux-5.19.0/include/linux/vfio_pci_core.h @@ -206,15 +206,25 @@ } #endif -#ifdef CONFIG_S390 +#ifdef CONFIG_VFIO_PCI_ZDEV_KVM extern int vfio_pci_info_zdev_add_caps(struct vfio_pci_core_device *vdev, struct vfio_info_cap *caps); +int vfio_pci_zdev_open_device(struct vfio_pci_core_device *vdev); +void vfio_pci_zdev_close_device(struct vfio_pci_core_device *vdev); #else static inline int vfio_pci_info_zdev_add_caps(struct vfio_pci_core_device *vdev, struct vfio_info_cap *caps) { return -ENODEV; } + +static inline int vfio_pci_zdev_open_device(struct vfio_pci_core_device *vdev) +{ + return 0; +} + +static inline void vfio_pci_zdev_close_device(struct vfio_pci_core_device *vdev) +{} #endif /* Will be exported for vfio pci drivers usage */ --- linux-5.19.0.orig/include/linux/virtio_anchor.h +++ linux-5.19.0/include/linux/virtio_anchor.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_VIRTIO_ANCHOR_H +#define _LINUX_VIRTIO_ANCHOR_H + +#ifdef CONFIG_VIRTIO_ANCHOR +struct virtio_device; + +bool virtio_require_restricted_mem_acc(struct virtio_device *dev); +extern bool (*virtio_check_mem_acc_cb)(struct virtio_device *dev); + +static inline void virtio_set_mem_acc_cb(bool (*func)(struct virtio_device *)) +{ + virtio_check_mem_acc_cb = func; +} +#else +#define virtio_set_mem_acc_cb(func) do { } while (0) +#endif + +#endif /* _LINUX_VIRTIO_ANCHOR_H */ --- linux-5.19.0.orig/include/linux/wait.h +++ linux-5.19.0/include/linux/wait.h @@ -544,10 +544,11 @@ \ hrtimer_init_sleeper_on_stack(&__t, CLOCK_MONOTONIC, \ HRTIMER_MODE_REL); \ - if ((timeout) != KTIME_MAX) \ - hrtimer_start_range_ns(&__t.timer, timeout, \ - current->timer_slack_ns, \ - HRTIMER_MODE_REL); \ + if ((timeout) != KTIME_MAX) { \ + hrtimer_set_expires_range_ns(&__t.timer, timeout, \ + current->timer_slack_ns); \ + hrtimer_sleeper_start_expires(&__t, HRTIMER_MODE_REL); \ + } \ \ __ret = ___wait_event(wq_head, condition, state, 0, 0, \ if (!__t.task) { \ --- linux-5.19.0.orig/include/linux/wireless.h +++ linux-5.19.0/include/linux/wireless.h @@ -26,7 +26,15 @@ struct __compat_iw_event { __u16 len; /* Real length of this stuff */ __u16 cmd; /* Wireless IOCTL */ - compat_caddr_t pointer; + + union { + compat_caddr_t pointer; + + /* we need ptr_bytes to make memcpy() run-time destination + * buffer bounds checking happy, nothing special + */ + DECLARE_FLEX_ARRAY(__u8, ptr_bytes); + }; }; #define IW_EV_COMPAT_LCP_LEN offsetof(struct __compat_iw_event, pointer) #define IW_EV_COMPAT_POINT_OFF offsetof(struct compat_iw_point, length) --- linux-5.19.0.orig/include/linux/xattr.h +++ linux-5.19.0/include/linux/xattr.h @@ -63,6 +63,7 @@ int vfs_setxattr(struct user_namespace *, struct dentry *, const char *, const void *, size_t, int); int __vfs_removexattr(struct user_namespace *, struct dentry *, const char *); +int __vfs_removexattr_noperm(struct user_namespace *, struct dentry *, const char *); int __vfs_removexattr_locked(struct user_namespace *, struct dentry *, const char *, struct inode **); int vfs_removexattr(struct user_namespace *, struct dentry *, const char *); --- linux-5.19.0.orig/include/media/dvbdev.h +++ linux-5.19.0/include/media/dvbdev.h @@ -126,6 +126,7 @@ * struct dvb_device - represents a DVB device node * * @list_head: List head with all DVB devices + * @ref: reference counter * @fops: pointer to struct file_operations * @adapter: pointer to the adapter that holds this device node * @type: type of the device, as defined by &enum dvb_device_type. @@ -156,6 +157,7 @@ */ struct dvb_device { struct list_head list_head; + struct kref ref; const struct file_operations *fops; struct dvb_adapter *adapter; enum dvb_device_type type; @@ -188,6 +190,20 @@ }; /** + * dvb_device_get - Increase dvb_device reference + * + * @dvbdev: pointer to struct dvb_device + */ +struct dvb_device *dvb_device_get(struct dvb_device *dvbdev); + +/** + * dvb_device_put - Decrease dvb_device reference + * + * @dvbdev: pointer to struct dvb_device + */ +void dvb_device_put(struct dvb_device *dvbdev); + +/** * dvb_register_adapter - Registers a new DVB adapter * * @adap: pointer to struct dvb_adapter @@ -231,29 +247,17 @@ /** * dvb_remove_device - Remove a registered DVB device * - * This does not free memory. To do that, call dvb_free_device(). + * This does not free memory. dvb_free_device() will do that when + * reference counter is empty * * @dvbdev: pointer to struct dvb_device */ void dvb_remove_device(struct dvb_device *dvbdev); -/** - * dvb_free_device - Free memory occupied by a DVB device. - * - * Call dvb_unregister_device() before calling this function. - * - * @dvbdev: pointer to struct dvb_device - */ -void dvb_free_device(struct dvb_device *dvbdev); /** * dvb_unregister_device - Unregisters a DVB device * - * This is a combination of dvb_remove_device() and dvb_free_device(). - * Using this function is usually a mistake, and is often an indicator - * for a use-after-free bug (when a userspace process keeps a file - * handle to a detached device). - * * @dvbdev: pointer to struct dvb_device */ void dvb_unregister_device(struct dvb_device *dvbdev); --- linux-5.19.0.orig/include/media/hevc-ctrls.h +++ linux-5.19.0/include/media/hevc-ctrls.h @@ -135,7 +135,7 @@ __u64 timestamp; __u8 flags; __u8 field_pic; - __u16 pic_order_cnt[2]; + __s32 pic_order_cnt_val; __u8 padding[2]; }; @@ -178,7 +178,7 @@ /* ISO/IEC 23008-2, ITU-T Rec. H.265: General slice segment header */ __u8 slice_type; __u8 colour_plane_id; - __u16 slice_pic_order_cnt; + __s32 slice_pic_order_cnt; __u8 num_ref_idx_l0_active_minus1; __u8 num_ref_idx_l1_active_minus1; __u8 collocated_ref_idx; --- linux-5.19.0.orig/include/media/v4l2-common.h +++ linux-5.19.0/include/media/v4l2-common.h @@ -175,7 +175,8 @@ * * @sd: pointer to &struct v4l2_subdev * @client: pointer to struct i2c_client - * @devname: the name of the device; if NULL, the I²C device's name will be used + * @devname: the name of the device; if NULL, the I²C device drivers's name + * will be used * @postfix: sub-device specific string to put right after the I²C device name; * may be NULL */ --- linux-5.19.0.orig/include/media/v4l2-subdev.h +++ linux-5.19.0/include/media/v4l2-subdev.h @@ -1046,6 +1046,8 @@ struct v4l2_subdev_state *state, unsigned int pad) { + if (WARN_ON(!state)) + return NULL; if (WARN_ON(pad >= sd->entity.num_pads)) pad = 0; return &state->pads[pad].try_fmt; @@ -1064,6 +1066,8 @@ struct v4l2_subdev_state *state, unsigned int pad) { + if (WARN_ON(!state)) + return NULL; if (WARN_ON(pad >= sd->entity.num_pads)) pad = 0; return &state->pads[pad].try_crop; @@ -1082,6 +1086,8 @@ struct v4l2_subdev_state *state, unsigned int pad) { + if (WARN_ON(!state)) + return NULL; if (WARN_ON(pad >= sd->entity.num_pads)) pad = 0; return &state->pads[pad].try_compose; --- linux-5.19.0.orig/include/net/9p/client.h +++ linux-5.19.0/include/net/9p/client.h @@ -76,7 +76,7 @@ struct p9_req_t { int status; int t_err; - struct kref refcount; + refcount_t refcount; wait_queue_head_t wq; struct p9_fcall tc; struct p9_fcall rc; @@ -227,15 +227,15 @@ static inline void p9_req_get(struct p9_req_t *r) { - kref_get(&r->refcount); + refcount_inc(&r->refcount); } static inline int p9_req_try_get(struct p9_req_t *r) { - return kref_get_unless_zero(&r->refcount); + return refcount_inc_not_zero(&r->refcount); } -int p9_req_put(struct p9_req_t *r); +int p9_req_put(struct p9_client *c, struct p9_req_t *r); void p9_client_cb(struct p9_client *c, struct p9_req_t *req, int status); --- linux-5.19.0.orig/include/net/ax25.h +++ linux-5.19.0/include/net/ax25.h @@ -236,6 +236,7 @@ ax25_address source_addr, dest_addr; ax25_digi *digipeat; ax25_dev *ax25_dev; + netdevice_tracker dev_tracker; unsigned char iamdigi; unsigned char state, modulus, pidincl; unsigned short vs, vr, va; --- linux-5.19.0.orig/include/net/bluetooth/hci.h +++ linux-5.19.0/include/net/bluetooth/hci.h @@ -361,6 +361,7 @@ HCI_QUALITY_REPORT, HCI_OFFLOAD_CODECS_ENABLED, HCI_LE_SIMULTANEOUS_ROLES, + HCI_CMD_DRAIN_WORKQUEUE, __HCI_NUM_FLAGS, }; @@ -1425,7 +1426,6 @@ } __packed; struct hci_vnd_codec_v2 { - __u8 id; __le16 cid; __le16 vid; __u8 transport; --- linux-5.19.0.orig/include/net/bond_3ad.h +++ linux-5.19.0/include/net/bond_3ad.h @@ -15,8 +15,6 @@ #define PKT_TYPE_LACPDU cpu_to_be16(ETH_P_SLOW) #define AD_TIMER_INTERVAL 100 /*msec*/ -#define MULTICAST_LACPDU_ADDR {0x01, 0x80, 0xC2, 0x00, 0x00, 0x02} - #define AD_LACP_SLOW 0 #define AD_LACP_FAST 1 --- linux-5.19.0.orig/include/net/bonding.h +++ linux-5.19.0/include/net/bonding.h @@ -161,8 +161,9 @@ struct net_device *dev; /* first - useful for panic debug */ struct bonding *bond; /* our master */ int delay; - /* all three in jiffies */ + /* all 4 in jiffies */ unsigned long last_link_up; + unsigned long last_tx; unsigned long last_rx; unsigned long target_last_arp_rx[BOND_MAX_ARP_TARGETS]; s8 link; /* one of BOND_LINK_XXXX */ @@ -539,6 +540,16 @@ return slave->last_rx; } +static inline void slave_update_last_tx(struct slave *slave) +{ + WRITE_ONCE(slave->last_tx, jiffies); +} + +static inline unsigned long slave_last_tx(struct slave *slave) +{ + return READ_ONCE(slave->last_tx); +} + #ifdef CONFIG_NET_POLL_CONTROLLER static inline netdev_tx_t bond_netpoll_send_skb(const struct slave *slave, struct sk_buff *skb) @@ -774,6 +785,9 @@ /* exported from bond_sysfs_slave.c */ extern const struct sysfs_ops slave_sysfs_ops; +/* exported from bond_3ad.c */ +extern const u8 lacpdu_mcast_addr[]; + static inline netdev_tx_t bond_tx_drop(struct net_device *dev, struct sk_buff *skb) { dev_core_stats_tx_dropped_inc(dev); --- linux-5.19.0.orig/include/net/busy_poll.h +++ linux-5.19.0/include/net/busy_poll.h @@ -33,7 +33,7 @@ static inline bool net_busy_loop_on(void) { - return sysctl_net_busy_poll; + return READ_ONCE(sysctl_net_busy_poll); } static inline bool sk_can_busy_loop(const struct sock *sk) --- linux-5.19.0.orig/include/net/cfg80211.h +++ linux-5.19.0/include/net/cfg80211.h @@ -1158,6 +1158,7 @@ /** * struct cfg80211_beacon_data - beacon data + * @link_id: the link ID for the AP MLD link sending this beacon * @head: head portion of beacon (before TIM IE) * or %NULL if not changed * @tail: tail portion of beacon (after TIM IE) @@ -1188,6 +1189,8 @@ * attribute is present in beacon data or not. */ struct cfg80211_beacon_data { + unsigned int link_id; + const u8 *head, *tail; const u8 *beacon_ies; const u8 *proberesp_ies; @@ -4201,7 +4204,8 @@ struct cfg80211_ap_settings *settings); int (*change_beacon)(struct wiphy *wiphy, struct net_device *dev, struct cfg80211_beacon_data *info); - int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev); + int (*stop_ap)(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id); int (*add_station)(struct wiphy *wiphy, struct net_device *dev, @@ -4309,6 +4313,7 @@ int (*set_bitrate_mask)(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id, const u8 *peer, const struct cfg80211_bitrate_mask *mask); @@ -4384,6 +4389,7 @@ int (*get_channel)(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef); int (*start_p2p_device)(struct wiphy *wiphy, @@ -4420,6 +4426,7 @@ struct cfg80211_qos_map *qos_map); int (*set_ap_chanwidth)(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id, struct cfg80211_chan_def *chandef); int (*add_tx_ts)(struct wiphy *wiphy, struct net_device *dev, @@ -4545,10 +4552,14 @@ * @WIPHY_FLAG_HAS_STATIC_WEP: The device supports static WEP key installation * before connection. * @WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK: The device supports bigger kek and kck keys + * @WIPHY_FLAG_SUPPORTS_MLO: This is a temporary flag gating the MLO APIs, + * in order to not have them reachable in normal drivers, until we have + * complete feature/interface combinations/etc. advertisement. No driver + * should set this flag for now. */ enum wiphy_flags { WIPHY_FLAG_SUPPORTS_EXT_KEK_KCK = BIT(0), - /* use hole at 1 */ + WIPHY_FLAG_SUPPORTS_MLO = BIT(1), WIPHY_FLAG_SPLIT_SCAN_6GHZ = BIT(2), WIPHY_FLAG_NETNS_OK = BIT(3), WIPHY_FLAG_PS_ON_BY_DEFAULT = BIT(4), @@ -5505,6 +5516,8 @@ * @netdev: (private) Used to reference back to the netdev, may be %NULL * @identifier: (private) Identifier used in nl80211 to identify this * wireless device if it has no netdev + * @connected_addr: (private) BSSID or AP MLD address if connected + * @connected: indicates if connected or not (STA mode) * @current_bss: (private) Used by the internal configuration code * @chandef: (private) Used by the internal configuration code to track * the user-set channel definition. @@ -5585,8 +5598,6 @@ u8 address[ETH_ALEN] __aligned(sizeof(u16)); /* currently used for IBSS and SME - might be rearranged later */ - u8 ssid[IEEE80211_MAX_SSID_LEN]; - u8 ssid_len, mesh_id_len, mesh_id_up_len; struct cfg80211_conn *conn; struct cfg80211_cached_keys *connect_keys; enum ieee80211_bss_type conn_bss_type; @@ -5598,20 +5609,17 @@ struct list_head event_list; spinlock_t event_lock; - struct cfg80211_internal_bss *current_bss; /* associated / joined */ - struct cfg80211_chan_def preset_chandef; - struct cfg80211_chan_def chandef; + u8 connected:1; bool ps; int ps_timeout; - int beacon_interval; - u32 ap_unexpected_nlportid; u32 owner_nlportid; bool nl_owner_dead; + /* FIXME: need to rework radar detection for MLO */ bool cac_started; unsigned long cac_start_time; unsigned int cac_time_ms; @@ -5639,6 +5647,50 @@ struct work_struct pmsr_free_wk; unsigned long unprot_beacon_reported; + + union { + struct { + u8 connected_addr[ETH_ALEN] __aligned(2); + u8 ssid[IEEE80211_MAX_SSID_LEN]; + u8 ssid_len; + } client; + struct { + int beacon_interval; + struct cfg80211_chan_def preset_chandef; + struct cfg80211_chan_def chandef; + u8 id[IEEE80211_MAX_SSID_LEN]; + u8 id_len, id_up_len; + } mesh; + struct { + struct cfg80211_chan_def preset_chandef; + u8 ssid[IEEE80211_MAX_SSID_LEN]; + u8 ssid_len; + } ap; + struct { + struct cfg80211_internal_bss *current_bss; + struct cfg80211_chan_def chandef; + int beacon_interval; + u8 ssid[IEEE80211_MAX_SSID_LEN]; + u8 ssid_len; + } ibss; + struct { + struct cfg80211_chan_def chandef; + } ocb; + } u; + + struct { + u8 addr[ETH_ALEN] __aligned(2); + union { + struct { + unsigned int beacon_interval; + struct cfg80211_chan_def chandef; + } ap; + struct { + struct cfg80211_internal_bss *current_bss; + } client; + }; + } links[IEEE80211_MLD_MAX_NUM_LINKS]; + u16 valid_links; }; static inline const u8 *wdev_address(struct wireless_dev *wdev) @@ -5668,6 +5720,31 @@ } /** + * wdev_chandef - return chandef pointer from wireless_dev + * @wdev: the wdev + * @link_id: the link ID for MLO + * + * Return: The chandef depending on the mode, or %NULL. + */ +struct cfg80211_chan_def *wdev_chandef(struct wireless_dev *wdev, + unsigned int link_id); + +static inline void WARN_INVALID_LINK_ID(struct wireless_dev *wdev, + unsigned int link_id) +{ + WARN_ON(link_id && !wdev->valid_links); + WARN_ON(wdev->valid_links && + !(wdev->valid_links & BIT(link_id))); +} + +#define for_each_valid_link(wdev, link_id) \ + for (link_id = 0; \ + link_id < ((wdev)->valid_links ? ARRAY_SIZE((wdev)->links) : 1); \ + link_id++) \ + if (!(wdev)->valid_links || \ + ((wdev)->valid_links & BIT(link_id))) + +/** * DOC: Utility functions * * cfg80211 offers a number of utility functions that can be useful. @@ -7882,12 +7959,14 @@ * cfg80211_ch_switch_notify - update wdev channel and notify userspace * @dev: the device which switched channels * @chandef: the new channel definition + * @link_id: the link ID for MLO, must be 0 for non-MLO * * Caller must acquire wdev_lock, therefore must only be called from sleepable * driver context! */ void cfg80211_ch_switch_notify(struct net_device *dev, - struct cfg80211_chan_def *chandef); + struct cfg80211_chan_def *chandef, + unsigned int link_id); /* * cfg80211_ch_switch_started_notify - notify channel switch start --- linux-5.19.0.orig/include/net/dst.h +++ linux-5.19.0/include/net/dst.h @@ -362,9 +362,8 @@ static inline void skb_tunnel_rx(struct sk_buff *skb, struct net_device *dev, struct net *net) { - /* TODO : stats should be SMP safe */ - dev->stats.rx_packets++; - dev->stats.rx_bytes += skb->len; + DEV_STATS_INC(dev, rx_packets); + DEV_STATS_ADD(dev, rx_bytes, skb->len); __skb_tunnel_rx(skb, dev, net); } --- linux-5.19.0.orig/include/net/gro.h +++ linux-5.19.0/include/net/gro.h @@ -439,7 +439,7 @@ { list_add_tail(&skb->list, &napi->rx_list); napi->rx_count += segs; - if (napi->rx_count >= gro_normal_batch) + if (napi->rx_count >= READ_ONCE(gro_normal_batch)) gro_normal_list(napi); } --- linux-5.19.0.orig/include/net/ieee802154_netdev.h +++ linux-5.19.0/include/net/ieee802154_netdev.h @@ -15,6 +15,22 @@ #ifndef IEEE802154_NETDEVICE_H #define IEEE802154_NETDEVICE_H +#define IEEE802154_REQUIRED_SIZE(struct_type, member) \ + (offsetof(typeof(struct_type), member) + \ + sizeof(((typeof(struct_type) *)(NULL))->member)) + +#define IEEE802154_ADDR_OFFSET \ + offsetof(typeof(struct sockaddr_ieee802154), addr) + +#define IEEE802154_MIN_NAMELEN (IEEE802154_ADDR_OFFSET + \ + IEEE802154_REQUIRED_SIZE(struct ieee802154_addr_sa, addr_type)) + +#define IEEE802154_NAMELEN_SHORT (IEEE802154_ADDR_OFFSET + \ + IEEE802154_REQUIRED_SIZE(struct ieee802154_addr_sa, short_addr)) + +#define IEEE802154_NAMELEN_LONG (IEEE802154_ADDR_OFFSET + \ + IEEE802154_REQUIRED_SIZE(struct ieee802154_addr_sa, hwaddr)) + #include #include #include @@ -165,6 +181,33 @@ memcpy(raw, &temp, IEEE802154_ADDR_LEN); } +static inline int +ieee802154_sockaddr_check_size(struct sockaddr_ieee802154 *daddr, int len) +{ + struct ieee802154_addr_sa *sa; + int ret = 0; + + sa = &daddr->addr; + if (len < IEEE802154_MIN_NAMELEN) + return -EINVAL; + switch (sa->addr_type) { + case IEEE802154_ADDR_NONE: + break; + case IEEE802154_ADDR_SHORT: + if (len < IEEE802154_NAMELEN_SHORT) + ret = -EINVAL; + break; + case IEEE802154_ADDR_LONG: + if (len < IEEE802154_NAMELEN_LONG) + ret = -EINVAL; + break; + default: + ret = -EINVAL; + break; + } + return ret; +} + static inline void ieee802154_addr_from_sa(struct ieee802154_addr *a, const struct ieee802154_addr_sa *sa) { --- linux-5.19.0.orig/include/net/inet6_hashtables.h +++ linux-5.19.0/include/net/inet6_hashtables.h @@ -110,8 +110,6 @@ const __portpair ports, const int dif, const int sdif) { - int bound_dev_if; - if (!net_eq(sock_net(sk), net) || sk->sk_family != AF_INET6 || sk->sk_portpair != ports || @@ -119,8 +117,9 @@ !ipv6_addr_equal(&sk->sk_v6_rcv_saddr, daddr)) return false; - bound_dev_if = READ_ONCE(sk->sk_bound_dev_if); - return bound_dev_if == dif || bound_dev_if == sdif; + /* READ_ONCE() paired with WRITE_ONCE() in sock_bindtoindex_locked() */ + return inet_sk_bound_dev_eq(net, READ_ONCE(sk->sk_bound_dev_if), dif, + sdif); } #endif /* IS_ENABLED(CONFIG_IPV6) */ --- linux-5.19.0.orig/include/net/inet_hashtables.h +++ linux-5.19.0/include/net/inet_hashtables.h @@ -175,17 +175,6 @@ hashinfo->ehash_locks = NULL; } -static inline bool inet_sk_bound_dev_eq(struct net *net, int bound_dev_if, - int dif, int sdif) -{ -#if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV) - return inet_bound_dev_eq(!!READ_ONCE(net->ipv4.sysctl_tcp_l3mdev_accept), - bound_dev_if, dif, sdif); -#else - return inet_bound_dev_eq(true, bound_dev_if, dif, sdif); -#endif -} - struct inet_bind_bucket * inet_bind_bucket_create(struct kmem_cache *cachep, struct net *net, struct inet_bind_hashbucket *head, @@ -271,16 +260,14 @@ const __addrpair cookie, const __portpair ports, int dif, int sdif) { - int bound_dev_if; - if (!net_eq(sock_net(sk), net) || sk->sk_portpair != ports || sk->sk_addrpair != cookie) return false; - /* Paired with WRITE_ONCE() from sock_bindtoindex_locked() */ - bound_dev_if = READ_ONCE(sk->sk_bound_dev_if); - return bound_dev_if == dif || bound_dev_if == sdif; + /* READ_ONCE() paired with WRITE_ONCE() in sock_bindtoindex_locked() */ + return inet_sk_bound_dev_eq(net, READ_ONCE(sk->sk_bound_dev_if), dif, + sdif); } /* Sockets in TCP_CLOSE state are _always_ taken out of the hash, so we need --- linux-5.19.0.orig/include/net/inet_sock.h +++ linux-5.19.0/include/net/inet_sock.h @@ -149,6 +149,17 @@ return bound_dev_if == dif || bound_dev_if == sdif; } +static inline bool inet_sk_bound_dev_eq(struct net *net, int bound_dev_if, + int dif, int sdif) +{ +#if IS_ENABLED(CONFIG_NET_L3_MASTER_DEV) + return inet_bound_dev_eq(!!READ_ONCE(net->ipv4.sysctl_tcp_l3mdev_accept), + bound_dev_if, dif, sdif); +#else + return inet_bound_dev_eq(true, bound_dev_if, dif, sdif); +#endif +} + struct inet_cork { unsigned int flags; __be32 addr; --- linux-5.19.0.orig/include/net/ip.h +++ linux-5.19.0/include/net/ip.h @@ -563,7 +563,7 @@ BUILD_BUG_ON(offsetof(typeof(flow->addrs), v4addrs.dst) != offsetof(typeof(flow->addrs), v4addrs.src) + sizeof(flow->addrs.v4addrs.src)); - memcpy(&flow->addrs.v4addrs, &iph->saddr, sizeof(flow->addrs.v4addrs)); + memcpy(&flow->addrs.v4addrs, &iph->addrs, sizeof(flow->addrs.v4addrs)); flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV4_ADDRS; } --- linux-5.19.0.orig/include/net/ip_tunnels.h +++ linux-5.19.0/include/net/ip_tunnels.h @@ -54,6 +54,7 @@ __be32 label; /* Flow Label for IPv6 */ __be16 tp_src; __be16 tp_dst; + __u8 flow_flags; }; /* Flags for ip_tunnel_info mode. */ @@ -100,6 +101,28 @@ }; struct metadata_dst; +/* A fan overlay /8 (250.0.0.0/8, for example) maps to exactly one /16 + * underlay (10.88.0.0/16, for example). Multiple local addresses within + * the /16 may be used, but a particular overlay may not span + * multiple underlay subnets. + * + * We store one underlay, indexed by the overlay's high order octet. + */ +#define FAN_OVERLAY_CNT 256 + +struct ip_fan_map { + __be32 underlay; + __be32 overlay; + u16 underlay_prefix; + u16 overlay_prefix; + u32 overlay_mask; + struct list_head list; + struct rcu_head rcu; +}; + +struct ip_tunnel_fan { + struct list_head fan_maps; +}; struct ip_tunnel { struct ip_tunnel __rcu *next; @@ -140,6 +163,7 @@ #endif struct ip_tunnel_prl_entry __rcu *prl; /* potential router list */ unsigned int prl_count; /* # of entries in PRL */ + struct ip_tunnel_fan fan; unsigned int ip_tnl_net_id; struct gro_cells gro_cells; __u32 fwmark; @@ -147,6 +171,11 @@ bool ignore_df; }; +static inline int fan_has_map(const struct ip_tunnel_fan *fan) +{ + return !list_empty(&fan->fan_maps); +} + struct tnl_ptk_info { __be16 flags; __be16 proto; @@ -245,7 +274,8 @@ __be32 daddr, __be32 saddr, __be32 key, __u8 tos, struct net *net, int oif, - __u32 mark, __u32 tun_inner_hash) + __u32 mark, __u32 tun_inner_hash, + __u8 flow_flags) { memset(fl4, 0, sizeof(*fl4)); @@ -262,6 +292,7 @@ fl4->fl4_gre_key = key; fl4->flowi4_mark = mark; fl4->flowi4_multipath_hash = tun_inner_hash; + fl4->flowi4_flags = flow_flags; } int ip_tunnel_init(struct net_device *dev); --- linux-5.19.0.orig/include/net/ip_vs.h +++ linux-5.19.0/include/net/ip_vs.h @@ -351,11 +351,11 @@ /* counters per cpu */ struct ip_vs_counters { - __u64 conns; /* connections scheduled */ - __u64 inpkts; /* incoming packets */ - __u64 outpkts; /* outgoing packets */ - __u64 inbytes; /* incoming bytes */ - __u64 outbytes; /* outgoing bytes */ + u64_stats_t conns; /* connections scheduled */ + u64_stats_t inpkts; /* incoming packets */ + u64_stats_t outpkts; /* outgoing packets */ + u64_stats_t inbytes; /* incoming bytes */ + u64_stats_t outbytes; /* outgoing bytes */ }; /* Stats per cpu */ struct ip_vs_cpu_stats { --- linux-5.19.0.orig/include/net/ipv6.h +++ linux-5.19.0/include/net/ipv6.h @@ -897,7 +897,7 @@ BUILD_BUG_ON(offsetof(typeof(flow->addrs), v6addrs.dst) != offsetof(typeof(flow->addrs), v6addrs.src) + sizeof(flow->addrs.v6addrs.src)); - memcpy(&flow->addrs.v6addrs, &iph->saddr, sizeof(flow->addrs.v6addrs)); + memcpy(&flow->addrs.v6addrs, &iph->addrs, sizeof(flow->addrs.v6addrs)); flow->control.addr_type = FLOW_DISSECTOR_KEY_IPV6_ADDRS; } --- linux-5.19.0.orig/include/net/mac80211.h +++ linux-5.19.0/include/net/mac80211.h @@ -636,6 +636,19 @@ * @tx_pwr_env_num: number of @tx_pwr_env. * @pwr_reduction: power constraint of BSS. * @eht_support: does this BSS support EHT + * @csa_active: marks whether a channel switch is going on. Internally it is + * write-protected by sdata_lock and local->mtx so holding either is fine + * for read access. + * @mu_mimo_owner: indicates interface owns MU-MIMO capability + * @chanctx_conf: The channel context this interface is assigned to, or %NULL + * when it is not assigned. This pointer is RCU-protected due to the TX + * path needing to access it; even though the netdev carrier will always + * be off when it is %NULL there can still be races and packets could be + * processed after it switches back to %NULL. + * @color_change_active: marks whether a color change is ongoing. Internally it is + * write-protected by sdata_lock and local->mtx so holding either is fine + * for read access. + * @color_change_color: the bss color that will be used after the change. */ struct ieee80211_bss_conf { const u8 *bssid; @@ -711,6 +724,13 @@ u8 tx_pwr_env_num; u8 pwr_reduction; bool eht_support; + + bool csa_active; + bool mu_mimo_owner; + struct ieee80211_chanctx_conf __rcu *chanctx_conf; + + bool color_change_active; + u8 color_change_color; }; /** @@ -1713,10 +1733,6 @@ * @addr: address of this interface * @p2p: indicates whether this AP or STA interface is a p2p * interface, i.e. a GO or p2p-sta respectively - * @csa_active: marks whether a channel switch is going on. Internally it is - * write-protected by sdata_lock and local->mtx so holding either is fine - * for read access. - * @mu_mimo_owner: indicates interface owns MU-MIMO capability * @driver_flags: flags/capabilities the driver has for this interface, * these need to be set (or cleared) when the interface is added * or, if supported by the driver, the interface type is changed @@ -1728,11 +1744,6 @@ * restrictions. * @hw_queue: hardware queue for each AC * @cab_queue: content-after-beacon (DTIM beacon really) queue, AP mode only - * @chanctx_conf: The channel context this interface is assigned to, or %NULL - * when it is not assigned. This pointer is RCU-protected due to the TX - * path needing to access it; even though the netdev carrier will always - * be off when it is %NULL there can still be races and packets could be - * processed after it switches back to %NULL. * @debugfs_dir: debugfs dentry, can be used by drivers to create own per * interface debug files. Note that it will be NULL for the virtual * monitor interface (if that is requested.) @@ -1747,10 +1758,6 @@ * protected by fq->lock. * @offload_flags: 802.3 -> 802.11 enapsulation offload flags, see * &enum ieee80211_offload_flags. - * @color_change_active: marks whether a color change is ongoing. Internally it is - * write-protected by sdata_lock and local->mtx so holding either is fine - * for read access. - * @color_change_color: the bss color that will be used after the change. * @mbssid_tx_vif: Pointer to the transmitting interface if MBSSID is enabled. */ struct ieee80211_vif { @@ -1758,16 +1765,12 @@ struct ieee80211_bss_conf bss_conf; u8 addr[ETH_ALEN] __aligned(2); bool p2p; - bool csa_active; - bool mu_mimo_owner; u8 cab_queue; u8 hw_queue[IEEE80211_NUM_ACS]; struct ieee80211_txq *txq; - struct ieee80211_chanctx_conf __rcu *chanctx_conf; - u32 driver_flags; u32 offload_flags; @@ -1780,9 +1783,6 @@ bool txqs_stopped[IEEE80211_NUM_ACS]; - bool color_change_active; - u8 color_change_color; - struct ieee80211_vif *mbssid_tx_vif; /* must be last */ --- linux-5.19.0.orig/include/net/mptcp.h +++ linux-5.19.0/include/net/mptcp.h @@ -290,4 +290,8 @@ static inline struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) { return NULL; } #endif +#if !IS_ENABLED(CONFIG_MPTCP) +struct mptcp_sock { }; +#endif + #endif /* __NET_MPTCP_H */ --- linux-5.19.0.orig/include/net/mrp.h +++ linux-5.19.0/include/net/mrp.h @@ -120,6 +120,7 @@ struct sk_buff *pdu; struct rb_root mad; struct rcu_head rcu; + bool active; }; struct mrp_port { --- linux-5.19.0.orig/include/net/netfilter/nf_flow_table.h +++ linux-5.19.0/include/net/netfilter/nf_flow_table.h @@ -270,6 +270,7 @@ struct flow_offload_tuple_rhash *flow_offload_lookup(struct nf_flowtable *flow_table, struct flow_offload_tuple *tuple); +void nf_flow_table_gc_run(struct nf_flowtable *flow_table); void nf_flow_table_gc_cleanup(struct nf_flowtable *flowtable, struct net_device *dev); void nf_flow_table_cleanup(struct net_device *dev); @@ -306,6 +307,8 @@ struct flow_offload *flow); void nf_flow_table_offload_flush(struct nf_flowtable *flowtable); +void nf_flow_table_offload_flush_cleanup(struct nf_flowtable *flowtable); + int nf_flow_table_offload_setup(struct nf_flowtable *flowtable, struct net_device *dev, enum flow_block_command cmd); --- linux-5.19.0.orig/include/net/netfilter/nf_tables.h +++ linux-5.19.0/include/net/netfilter/nf_tables.h @@ -206,13 +206,18 @@ bool report; }; +enum nft_data_desc_flags { + NFT_DATA_DESC_SETELEM = (1 << 0), +}; + struct nft_data_desc { enum nft_data_types type; + unsigned int size; unsigned int len; + unsigned int flags; }; -int nft_data_init(const struct nft_ctx *ctx, - struct nft_data *data, unsigned int size, +int nft_data_init(const struct nft_ctx *ctx, struct nft_data *data, struct nft_data_desc *desc, const struct nlattr *nla); void nft_data_hold(const struct nft_data *data, enum nft_data_types type); void nft_data_release(const struct nft_data *data, enum nft_data_types type); @@ -1630,6 +1635,7 @@ struct list_head module_list; struct list_head notify_list; struct mutex commit_mutex; + u64 table_handle; unsigned int base_seq; u8 validate_state; }; --- linux-5.19.0.orig/include/net/netlabel.h +++ linux-5.19.0/include/net/netlabel.h @@ -97,7 +97,7 @@ /* NetLabel audit information */ struct netlbl_audit { - u32 secid; + struct lsmblob lsmblob; kuid_t loginuid; unsigned int sessionid; }; @@ -166,7 +166,7 @@ * @attr.mls: MLS sensitivity label * @attr.mls.cat: MLS category bitmap * @attr.mls.lvl: MLS sensitivity level - * @attr.secid: LSM specific secid token + * @attr.lsmblob: LSM specific data * * Description: * This structure is used to pass security attributes between NetLabel and the @@ -201,7 +201,7 @@ struct netlbl_lsm_catmap *cat; u32 lvl; } mls; - u32 secid; + struct lsmblob lsmblob; } attr; }; @@ -415,7 +415,7 @@ const void *addr, const void *mask, u16 family, - u32 secid, + struct lsmblob *lsmblob, struct netlbl_audit *audit_info); int netlbl_cfg_unlbl_static_del(struct net *net, const char *dev_name, @@ -523,7 +523,7 @@ const void *addr, const void *mask, u16 family, - u32 secid, + struct lsmblob *lsmblob, struct netlbl_audit *audit_info) { return -ENOSYS; --- linux-5.19.0.orig/include/net/netns/conntrack.h +++ linux-5.19.0/include/net/netns/conntrack.h @@ -95,7 +95,7 @@ struct netns_ct { #ifdef CONFIG_NF_CONNTRACK_EVENTS - bool ctnetlink_has_listener; + u8 ctnetlink_has_listener; bool ecache_dwork_pending; #endif u8 sysctl_log_invalid; /* Log invalid packets */ --- linux-5.19.0.orig/include/net/ping.h +++ linux-5.19.0/include/net/ping.h @@ -16,9 +16,6 @@ #define PING_HTABLE_SIZE 64 #define PING_HTABLE_MASK (PING_HTABLE_SIZE-1) -#define ping_portaddr_for_each_entry(__sk, node, list) \ - hlist_nulls_for_each_entry(__sk, node, list, sk_nulls_node) - /* * gid_t is either uint or ushort. We want to pass it to * proc_dointvec_minmax(), so it must not be larger than MAX_INT --- linux-5.19.0.orig/include/net/pkt_sched.h +++ linux-5.19.0/include/net/pkt_sched.h @@ -173,11 +173,28 @@ struct tc_taprio_sched_entry entries[]; }; +#if IS_ENABLED(CONFIG_NET_SCH_TAPRIO) + /* Reference counting */ struct tc_taprio_qopt_offload *taprio_offload_get(struct tc_taprio_qopt_offload *offload); void taprio_offload_free(struct tc_taprio_qopt_offload *offload); +#else + +/* Reference counting */ +static inline struct tc_taprio_qopt_offload * +taprio_offload_get(struct tc_taprio_qopt_offload *offload) +{ + return NULL; +} + +static inline void taprio_offload_free(struct tc_taprio_qopt_offload *offload) +{ +} + +#endif + /* Ensure skb_mstamp_ns, which might have been populated with the txtime, is * not mistaken for a software timestamp, because this will otherwise prevent * the dispatch of hardware timestamps to the socket. --- linux-5.19.0.orig/include/net/raw.h +++ linux-5.19.0/include/net/raw.h @@ -20,9 +20,8 @@ extern struct proto raw_prot; extern struct raw_hashinfo raw_v4_hashinfo; -struct sock *__raw_v4_lookup(struct net *net, struct sock *sk, - unsigned short num, __be32 raddr, - __be32 laddr, int dif, int sdif); +bool raw_v4_match(struct net *net, struct sock *sk, unsigned short num, + __be32 raddr, __be32 laddr, int dif, int sdif); int raw_abort(struct sock *sk, int err); void raw_icmp_error(struct sk_buff *, int, u32); @@ -34,9 +33,18 @@ struct raw_hashinfo { rwlock_t lock; - struct hlist_head ht[RAW_HTABLE_SIZE]; + struct hlist_nulls_head ht[RAW_HTABLE_SIZE]; }; +static inline void raw_hashinfo_init(struct raw_hashinfo *hashinfo) +{ + int i; + + rwlock_init(&hashinfo->lock); + for (i = 0; i < RAW_HTABLE_SIZE; i++) + INIT_HLIST_NULLS_HEAD(&hashinfo->ht[i], i); +} + #ifdef CONFIG_PROC_FS int raw_proc_init(void); void raw_proc_exit(void); --- linux-5.19.0.orig/include/net/rawv6.h +++ linux-5.19.0/include/net/rawv6.h @@ -3,11 +3,12 @@ #define _NET_RAWV6_H #include +#include extern struct raw_hashinfo raw_v6_hashinfo; -struct sock *__raw_v6_lookup(struct net *net, struct sock *sk, - unsigned short num, const struct in6_addr *loc_addr, - const struct in6_addr *rmt_addr, int dif, int sdif); +bool raw_v6_match(struct net *net, struct sock *sk, unsigned short num, + const struct in6_addr *loc_addr, + const struct in6_addr *rmt_addr, int dif, int sdif); int raw_abort(struct sock *sk, int err); --- linux-5.19.0.orig/include/net/sch_generic.h +++ linux-5.19.0/include/net/sch_generic.h @@ -1156,7 +1156,6 @@ static inline void qdisc_reset_queue(struct Qdisc *sch) { __qdisc_reset_queue(&sch->q); - sch->qstats.backlog = 0; } static inline struct Qdisc *qdisc_replace(struct Qdisc *sch, struct Qdisc *new, --- linux-5.19.0.orig/include/net/scm.h +++ linux-5.19.0/include/net/scm.h @@ -92,16 +92,21 @@ #ifdef CONFIG_SECURITY_NETWORK static inline void scm_passec(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm) { - char *secdata; - u32 seclen; + struct lsmcontext context; + struct lsmblob lb; int err; if (test_bit(SOCK_PASSSEC, &sock->flags)) { - err = security_secid_to_secctx(scm->secid, &secdata, &seclen); + /* There can only be one security module using the secid, + * and the infrastructure will know which it is. + */ + lsmblob_init(&lb, scm->secid); + err = security_secid_to_secctx(&lb, &context, LSMBLOB_DISPLAY); if (!err) { - put_cmsg(msg, SOL_SOCKET, SCM_SECURITY, seclen, secdata); - security_release_secctx(secdata, seclen); + put_cmsg(msg, SOL_SOCKET, SCM_SECURITY, context.len, + context.context); + security_release_secctx(&context); } } } --- linux-5.19.0.orig/include/net/sctp/stream_sched.h +++ linux-5.19.0/include/net/sctp/stream_sched.h @@ -26,6 +26,8 @@ int (*init)(struct sctp_stream *stream); /* Init a stream */ int (*init_sid)(struct sctp_stream *stream, __u16 sid, gfp_t gfp); + /* free a stream */ + void (*free_sid)(struct sctp_stream *stream, __u16 sid); /* Frees the entire thing */ void (*free)(struct sctp_stream *stream); --- linux-5.19.0.orig/include/net/sock.h +++ linux-5.19.0/include/net/sock.h @@ -545,14 +545,26 @@ SK_PACING_FQ = 2, }; -/* Pointer stored in sk_user_data might not be suitable for copying - * when cloning the socket. For instance, it can point to a reference - * counted object. sk_user_data bottom bit is set if pointer must not - * be copied. +/* flag bits in sk_user_data + * + * - SK_USER_DATA_NOCOPY: Pointer stored in sk_user_data might + * not be suitable for copying when cloning the socket. For instance, + * it can point to a reference counted object. sk_user_data bottom + * bit is set if pointer must not be copied. + * + * - SK_USER_DATA_BPF: Mark whether sk_user_data field is + * managed/owned by a BPF reuseport array. This bit should be set + * when sk_user_data's sk is added to the bpf's reuseport_array. + * + * - SK_USER_DATA_PSOCK: Mark whether pointer stored in + * sk_user_data points to psock type. This bit should be set + * when sk_user_data is assigned to a psock object. */ #define SK_USER_DATA_NOCOPY 1UL -#define SK_USER_DATA_BPF 2UL /* Managed by BPF */ -#define SK_USER_DATA_PTRMASK ~(SK_USER_DATA_NOCOPY | SK_USER_DATA_BPF) +#define SK_USER_DATA_BPF 2UL +#define SK_USER_DATA_PSOCK 4UL +#define SK_USER_DATA_PTRMASK ~(SK_USER_DATA_NOCOPY | SK_USER_DATA_BPF |\ + SK_USER_DATA_PSOCK) /** * sk_user_data_is_nocopy - Test if sk_user_data pointer must not be copied @@ -565,24 +577,40 @@ #define __sk_user_data(sk) ((*((void __rcu **)&(sk)->sk_user_data))) +/** + * __rcu_dereference_sk_user_data_with_flags - return the pointer + * only if argument flags all has been set in sk_user_data. Otherwise + * return NULL + * + * @sk: socket + * @flags: flag bits + */ +static inline void * +__rcu_dereference_sk_user_data_with_flags(const struct sock *sk, + uintptr_t flags) +{ + uintptr_t sk_user_data = (uintptr_t)rcu_dereference(__sk_user_data(sk)); + + WARN_ON_ONCE(flags & SK_USER_DATA_PTRMASK); + + if ((sk_user_data & flags) == flags) + return (void *)(sk_user_data & SK_USER_DATA_PTRMASK); + return NULL; +} + #define rcu_dereference_sk_user_data(sk) \ + __rcu_dereference_sk_user_data_with_flags(sk, 0) +#define __rcu_assign_sk_user_data_with_flags(sk, ptr, flags) \ ({ \ - void *__tmp = rcu_dereference(__sk_user_data((sk))); \ - (void *)((uintptr_t)__tmp & SK_USER_DATA_PTRMASK); \ -}) -#define rcu_assign_sk_user_data(sk, ptr) \ -({ \ - uintptr_t __tmp = (uintptr_t)(ptr); \ - WARN_ON_ONCE(__tmp & ~SK_USER_DATA_PTRMASK); \ - rcu_assign_pointer(__sk_user_data((sk)), __tmp); \ -}) -#define rcu_assign_sk_user_data_nocopy(sk, ptr) \ -({ \ - uintptr_t __tmp = (uintptr_t)(ptr); \ - WARN_ON_ONCE(__tmp & ~SK_USER_DATA_PTRMASK); \ + uintptr_t __tmp1 = (uintptr_t)(ptr), \ + __tmp2 = (uintptr_t)(flags); \ + WARN_ON_ONCE(__tmp1 & ~SK_USER_DATA_PTRMASK); \ + WARN_ON_ONCE(__tmp2 & SK_USER_DATA_PTRMASK); \ rcu_assign_pointer(__sk_user_data((sk)), \ - __tmp | SK_USER_DATA_NOCOPY); \ + __tmp1 | __tmp2); \ }) +#define rcu_assign_sk_user_data(sk, ptr) \ + __rcu_assign_sk_user_data_with_flags(sk, ptr, 0) static inline struct net *sock_net(const struct sock *sk) @@ -1552,19 +1580,23 @@ static inline bool sk_wmem_schedule(struct sock *sk, int size) { + int delta; + if (!sk_has_account(sk)) return true; - return size <= sk->sk_forward_alloc || - __sk_mem_schedule(sk, size, SK_MEM_SEND); + delta = size - sk->sk_forward_alloc; + return delta <= 0 || __sk_mem_schedule(sk, delta, SK_MEM_SEND); } static inline bool sk_rmem_schedule(struct sock *sk, struct sk_buff *skb, int size) { + int delta; + if (!sk_has_account(sk)) return true; - return size <= sk->sk_forward_alloc || - __sk_mem_schedule(sk, size, SK_MEM_RECV) || + delta = size - sk->sk_forward_alloc; + return delta <= 0 || __sk_mem_schedule(sk, delta, SK_MEM_RECV) || skb_pfmemalloc(skb); } @@ -1836,6 +1868,13 @@ void sock_kzfree_s(struct sock *sk, void *mem, int size); void sk_send_sigurg(struct sock *sk); +static inline void sock_replace_proto(struct sock *sk, struct proto *proto) +{ + if (sk->sk_socket) + clear_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags); + WRITE_ONCE(sk->sk_prot, proto); +} + struct sockcm_cookie { u64 transmit_time; u32 mark; @@ -2534,7 +2573,7 @@ static inline gfp_t gfp_memcg_charge(void) { - return in_softirq() ? GFP_NOWAIT : GFP_KERNEL; + return in_softirq() ? GFP_ATOMIC : GFP_KERNEL; } static inline long sock_rcvtimeo(const struct sock *sk, bool noblock) --- linux-5.19.0.orig/include/net/sock_reuseport.h +++ linux-5.19.0/include/net/sock_reuseport.h @@ -16,6 +16,7 @@ u16 max_socks; /* length of socks */ u16 num_socks; /* elements in socks */ u16 num_closed_socks; /* closed elements in socks */ + u16 incoming_cpu; /* The last synq overflow event timestamp of this * reuse->socks[] group. */ @@ -43,21 +44,21 @@ extern int reuseport_attach_prog(struct sock *sk, struct bpf_prog *prog); extern int reuseport_detach_prog(struct sock *sk); -static inline bool reuseport_has_conns(struct sock *sk, bool set) +static inline bool reuseport_has_conns(struct sock *sk) { struct sock_reuseport *reuse; bool ret = false; rcu_read_lock(); reuse = rcu_dereference(sk->sk_reuseport_cb); - if (reuse) { - if (set) - reuse->has_conns = 1; - ret = reuse->has_conns; - } + if (reuse && reuse->has_conns) + ret = true; rcu_read_unlock(); return ret; } +void reuseport_has_conns_set(struct sock *sk); +void reuseport_update_incoming_cpu(struct sock *sk, int val); + #endif /* _SOCK_REUSEPORT_H */ --- linux-5.19.0.orig/include/net/tcp.h +++ linux-5.19.0/include/net/tcp.h @@ -1289,11 +1289,14 @@ { const struct tcp_sock *tp = tcp_sk(sk); + if (tp->is_cwnd_limited) + return true; + /* If in slow start, ensure cwnd grows to twice what was ACKed. */ if (tcp_in_slow_start(tp)) return tcp_snd_cwnd(tp) < 2 * tp->max_packets_out; - return tp->is_cwnd_limited; + return false; } /* BBR congestion control needs pacing. @@ -2275,8 +2278,8 @@ void tcp_bpf_clone(const struct sock *sk, struct sock *newsk); #endif /* CONFIG_BPF_SYSCALL */ -int tcp_bpf_sendmsg_redir(struct sock *sk, struct sk_msg *msg, u32 bytes, - int flags); +int tcp_bpf_sendmsg_redir(struct sock *sk, bool ingress, + struct sk_msg *msg, u32 bytes, int flags); #endif /* CONFIG_NET_SOCK_MSG */ #if !defined(CONFIG_BPF_SYSCALL) || !defined(CONFIG_NET_SOCK_MSG) --- linux-5.19.0.orig/include/net/udp_tunnel.h +++ linux-5.19.0/include/net/udp_tunnel.h @@ -67,6 +67,9 @@ typedef int (*udp_tunnel_encap_rcv_t)(struct sock *sk, struct sk_buff *skb); typedef int (*udp_tunnel_encap_err_lookup_t)(struct sock *sk, struct sk_buff *skb); +typedef void (*udp_tunnel_encap_err_rcv_t)(struct sock *sk, + struct sk_buff *skb, + unsigned int udp_offset); typedef void (*udp_tunnel_encap_destroy_t)(struct sock *sk); typedef struct sk_buff *(*udp_tunnel_gro_receive_t)(struct sock *sk, struct list_head *head, @@ -80,6 +83,7 @@ __u8 encap_type; udp_tunnel_encap_rcv_t encap_rcv; udp_tunnel_encap_err_lookup_t encap_err_lookup; + udp_tunnel_encap_err_rcv_t encap_err_rcv; udp_tunnel_encap_destroy_t encap_destroy; udp_tunnel_gro_receive_t gro_receive; udp_tunnel_gro_complete_t gro_complete; --- linux-5.19.0.orig/include/net/vxlan.h +++ linux-5.19.0/include/net/vxlan.h @@ -292,6 +292,8 @@ struct net *net; /* netns for packet i/o */ struct vxlan_rdst default_dst; /* default destination */ + struct ip_tunnel_fan fan; + struct timer_list age_timer; spinlock_t hash_lock[FDB_HASH_SIZE]; unsigned int addrcnt; --- linux-5.19.0.orig/include/net/xdp_sock_drv.h +++ linux-5.19.0/include/net/xdp_sock_drv.h @@ -95,6 +95,13 @@ xp_free(xskb); } +static inline void xsk_buff_discard(struct xdp_buff *xdp) +{ + struct xdp_buff_xsk *xskb = container_of(xdp, struct xdp_buff_xsk, xdp); + + xp_release(xskb); +} + static inline void xsk_buff_set_size(struct xdp_buff *xdp, u32 size) { xdp->data = xdp->data_hard_start + XDP_PACKET_HEADROOM; @@ -238,6 +245,10 @@ { } +static inline void xsk_buff_discard(struct xdp_buff *xdp) +{ +} + static inline void xsk_buff_set_size(struct xdp_buff *xdp, u32 size) { } --- linux-5.19.0.orig/include/net/xfrm.h +++ linux-5.19.0/include/net/xfrm.h @@ -1195,6 +1195,8 @@ static inline int xfrm_sk_clone_policy(struct sock *sk, const struct sock *osk) { + if (!sk_fullsock(osk)) + return 0; sk->sk_policy[0] = NULL; sk->sk_policy[1] = NULL; if (unlikely(osk->sk_policy[0] || osk->sk_policy[1])) --- linux-5.19.0.orig/include/net/xsk_buff_pool.h +++ linux-5.19.0/include/net/xsk_buff_pool.h @@ -95,7 +95,7 @@ struct xdp_umem *umem); int xp_assign_dev(struct xsk_buff_pool *pool, struct net_device *dev, u16 queue_id, u16 flags); -int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_umem *umem, +int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs, struct net_device *dev, u16 queue_id); int xp_alloc_tx_descs(struct xsk_buff_pool *pool, struct xdp_sock *xs); void xp_destroy(struct xsk_buff_pool *pool); --- linux-5.19.0.orig/include/rdma/ib_umem.h +++ linux-5.19.0/include/rdma/ib_umem.h @@ -25,6 +25,8 @@ u32 writable : 1; u32 is_odp : 1; u32 is_dmabuf : 1; + /* Placing at the end of the bitfield list is ABI preserving on LE */ + u32 is_peer : 1; struct work_struct work; struct sg_append_table sgt_append; }; @@ -46,6 +48,12 @@ return container_of(umem, struct ib_umem_dmabuf, umem); } +typedef void (*umem_invalidate_func_t)(struct ib_umem *umem, void *priv); +enum ib_peer_mem_flags { + IB_PEER_MEM_ALLOW = 1 << 0, + IB_PEER_MEM_INVAL_SUPP = 1 << 1, +}; + /* Returns the offset of the umem start relative to the first page. */ static inline int ib_umem_offset(struct ib_umem *umem) { @@ -147,6 +155,13 @@ int ib_umem_dmabuf_map_pages(struct ib_umem_dmabuf *umem_dmabuf); void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf); void ib_umem_dmabuf_release(struct ib_umem_dmabuf *umem_dmabuf); +struct ib_umem *ib_umem_get_peer(struct ib_device *device, unsigned long addr, + size_t size, int access, + unsigned long peer_mem_flags); +void ib_umem_activate_invalidation_notifier(struct ib_umem *umem, + umem_invalidate_func_t func, + void *cookie); +void ib_umem_stop_invalidation_notifier(struct ib_umem *umem); #else /* CONFIG_INFINIBAND_USER_MEM */ @@ -196,6 +211,20 @@ } static inline void ib_umem_dmabuf_unmap_pages(struct ib_umem_dmabuf *umem_dmabuf) { } static inline void ib_umem_dmabuf_release(struct ib_umem_dmabuf *umem_dmabuf) { } +static inline struct ib_umem *ib_umem_get_peer(struct ib_device *device, + unsigned long addr, size_t size, + int access, + unsigned long peer_mem_flags) +{ + return ERR_PTR(-EINVAL); +} +static inline void ib_umem_activate_invalidation_notifier( + struct ib_umem *umem, umem_invalidate_func_t func, void *cookie) +{ +} +static inline void ib_umem_stop_invalidation_notifier(struct ib_umem *umem) +{ +} #endif /* CONFIG_INFINIBAND_USER_MEM */ #endif /* IB_UMEM_H */ --- linux-5.19.0.orig/include/rdma/peer_mem.h +++ linux-5.19.0/include/rdma/peer_mem.h @@ -0,0 +1,175 @@ +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ +/* + * Copyright (c) 2014-2020, Mellanox Technologies. All rights reserved. + */ +#ifndef RDMA_PEER_MEM_H +#define RDMA_PEER_MEM_H + +#include + +#define IB_PEER_MEMORY_NAME_MAX 64 +#define IB_PEER_MEMORY_VER_MAX 16 + +/* + * Prior versions used a void * for core_context, at some point this was + * switched to use u64. Be careful if compiling this as 32 bit. To help the + * value of core_context is limited to u32 so it should work OK despite the + * type change. + */ +#define PEER_MEM_U64_CORE_CONTEXT + +struct device; + +/** + * struct peer_memory_client - registration information for user virtual + * memory handlers + * + * The peer_memory_client scheme allows a driver to register with the ib_umem + * system that it has the ability to understand user virtual address ranges + * that are not compatible with get_user_pages(). For instance VMAs created + * with io_remap_pfn_range(), or other driver special VMA. + * + * For ranges the interface understands it can provide a DMA mapped sg_table + * for use by the ib_umem, allowing user virtual ranges that cannot be + * supported by get_user_pages() to be used as umems. + */ +struct peer_memory_client { + char name[IB_PEER_MEMORY_NAME_MAX]; + char version[IB_PEER_MEMORY_VER_MAX]; + + /** + * acquire - Begin working with a user space virtual address range + * + * @addr - Virtual address to be checked whether belongs to peer. + * @size - Length of the virtual memory area starting at addr. + * @peer_mem_private_data - Obsolete, always NULL + * @peer_mem_name - Obsolete, always NULL + * @client_context - Returns an opaque value for this acquire use in + * other APIs + * + * Returns 1 if the peer_memory_client supports the entire virtual + * address range, 0 or -ERRNO otherwise. If 1 is returned then + * release() will be called to release the acquire(). + */ + int (*acquire)(unsigned long addr, size_t size, + void *peer_mem_private_data, char *peer_mem_name, + void **client_context); + /** + * get_pages - Fill in the first part of a sg_table for a virtual + * address range + * + * @addr - Virtual address to be checked whether belongs to peer. + * @size - Length of the virtual memory area starting at addr. + * @write - Always 1 + * @force - 1 if write is required + * @sg_head - Obsolete, always NULL + * @client_context - Value returned by acquire() + * @core_context - Value to be passed to invalidate_peer_memory for + * this get + * + * addr/size are passed as the raw virtual address range requested by + * the user, it is not aligned to any page size. get_pages() is always + * followed by dma_map(). + * + * Upon return the caller can call the invalidate_callback(). + * + * Returns 0 on success, -ERRNO on failure. After success put_pages() + * will be called to return the pages. + */ + int (*get_pages)(unsigned long addr, size_t size, int write, int force, + struct sg_table *sg_head, void *client_context, + u64 core_context); + /** + * dma_map - Create a DMA mapped sg_table + * + * @sg_head - The sg_table to allocate + * @client_context - Value returned by acquire() + * @dma_device - The device that will be doing DMA from these addresses + * @dmasync - Obsolete, always 0 + * @nmap - Returns the number of dma mapped entries in the sg_head + * + * Must be called after get_pages(). This must fill in the sg_head with + * DMA mapped SGLs for dma_device. Each SGL start and end must meet a + * minimum alignment of at least PAGE_SIZE, though individual sgls can + * be multiples of PAGE_SIZE, in any mixture. Since the user virtual + * address/size are not page aligned, the implementation must increase + * it to the logical alignment when building the SGLs. + * + * Returns 0 on success, -ERRNO on failure. After success dma_unmap() + * will be called to unmap the pages. On failure sg_head must be left + * untouched or point to a valid sg_table. + */ + int (*dma_map)(struct sg_table *sg_head, void *client_context, + struct device *dma_device, int dmasync, int *nmap); + /** + * dma_unmap - Unmap a DMA mapped sg_table + * + * @sg_head - The sg_table to unmap + * @client_context - Value returned by acquire() + * @dma_device - The device that will be doing DMA from these addresses + * + * sg_head will not be touched after this function returns. + * + * Must return 0. + */ + int (*dma_unmap)(struct sg_table *sg_head, void *client_context, + struct device *dma_device); + /** + * put_pages - Unpin a SGL + * + * @sg_head - The sg_table to unpin + * @client_context - Value returned by acquire() + * + * sg_head must be freed on return. + */ + void (*put_pages)(struct sg_table *sg_head, void *client_context); + /* Client should always return PAGE_SIZE */ + unsigned long (*get_page_size)(void *client_context); + /** + * release - Undo acquire + * + * @client_context - Value returned by acquire() + * + * If acquire() returns 1 then release() must be called. All + * get_pages() and dma_map()'s must be undone before calling this + * function. + */ + void (*release)(void *client_context); +}; + +enum { + PEER_MEM_INVALIDATE_UNMAPS = 1 << 0, +}; + +struct peer_memory_client_ex { + struct peer_memory_client client; + size_t ex_size; + u32 flags; +}; + +/* + * If invalidate_callback() is non-NULL then the client will only support + * umems which can be invalidated. The caller may call the + * invalidate_callback() after acquire() on return the range will no longer + * have DMA active, and release() will have been called. + * + * Note: The implementation locking must ensure that get_pages(), and + * dma_map() do not have locking dependencies with invalidate_callback(). The + * ib_core will wait until any concurrent get_pages() or dma_map() completes + * before returning. + * + * Similarly, this can call dma_unmap(), put_pages() and release() from within + * the callback, or will wait for another thread doing those operations to + * complete. + * + * For these reasons the user of invalidate_callback() must be careful with + * locking. + */ +typedef int (*invalidate_peer_memory)(void *reg_handle, u64 core_context); + +void * +ib_register_peer_memory_client(const struct peer_memory_client *peer_client, + invalidate_peer_memory *invalidate_callback); +void ib_unregister_peer_memory_client(void *reg_handle); + +#endif --- linux-5.19.0.orig/include/scsi/libiscsi.h +++ linux-5.19.0/include/scsi/libiscsi.h @@ -213,6 +213,8 @@ struct list_head cmdqueue; /* data-path cmd queue */ struct list_head requeue; /* tasks needing another run */ struct work_struct xmitwork; /* per-conn. xmit workqueue */ + /* recv */ + struct work_struct recvwork; unsigned long flags; /* ISCSI_CONN_FLAGs */ /* negotiated params */ @@ -411,7 +413,7 @@ extern struct Scsi_Host *iscsi_host_alloc(struct scsi_host_template *sht, int dd_data_size, bool xmit_can_sleep); -extern void iscsi_host_remove(struct Scsi_Host *shost); +extern void iscsi_host_remove(struct Scsi_Host *shost, bool is_shutdown); extern void iscsi_host_free(struct Scsi_Host *shost); extern int iscsi_target_alloc(struct scsi_target *starget); extern int iscsi_host_get_max_scsi_cmds(struct Scsi_Host *shost, @@ -452,8 +454,10 @@ extern int iscsi_conn_get_addr_param(struct sockaddr_storage *addr, enum iscsi_param param, char *buf); extern void iscsi_suspend_tx(struct iscsi_conn *conn); +extern void iscsi_suspend_rx(struct iscsi_conn *conn); extern void iscsi_suspend_queue(struct iscsi_conn *conn); -extern void iscsi_conn_queue_work(struct iscsi_conn *conn); +extern void iscsi_conn_queue_xmit(struct iscsi_conn *conn); +extern void iscsi_conn_queue_recv(struct iscsi_conn *conn); #define iscsi_conn_printk(prefix, _c, fmt, a...) \ iscsi_cls_conn_printk(prefix, ((struct iscsi_conn *)_c)->cls_conn, \ --- linux-5.19.0.orig/include/scsi/scsi_cmnd.h +++ linux-5.19.0/include/scsi/scsi_cmnd.h @@ -201,7 +201,7 @@ for_each_sg(scsi_sglist(cmd), sg, nseg, __i) static inline int scsi_sg_copy_from_buffer(struct scsi_cmnd *cmd, - void *buf, int buflen) + const void *buf, int buflen) { return sg_copy_from_buffer(scsi_sglist(cmd), scsi_sg_count(cmd), buf, buflen); --- linux-5.19.0.orig/include/scsi/scsi_host.h +++ linux-5.19.0/include/scsi/scsi_host.h @@ -557,6 +557,8 @@ struct scsi_host_template *hostt; struct scsi_transport_template *transportt; + struct kref tagset_refcnt; + struct completion tagset_freed; /* Area to keep a shared tag map */ struct blk_mq_tag_set tag_set; --- linux-5.19.0.orig/include/scsi/scsi_transport_iscsi.h +++ linux-5.19.0/include/scsi/scsi_transport_iscsi.h @@ -442,6 +442,7 @@ struct iscsi_transport *t, int dd_size, unsigned int target_id); +extern void iscsi_force_destroy_session(struct iscsi_cls_session *session); extern void iscsi_remove_session(struct iscsi_cls_session *session); extern void iscsi_free_session(struct iscsi_cls_session *session); extern struct iscsi_cls_conn *iscsi_alloc_conn(struct iscsi_cls_session *sess, --- linux-5.19.0.orig/include/soc/at91/sama7-ddr.h +++ linux-5.19.0/include/soc/at91/sama7-ddr.h @@ -26,7 +26,10 @@ #define DDR3PHY_PGSR (0x0C) /* DDR3PHY PHY General Status Register */ #define DDR3PHY_PGSR_IDONE (1 << 0) /* Initialization Done */ -#define DDR3PHY_ACIOCR (0x24) /* DDR3PHY AC I/O Configuration Register */ +#define DDR3PHY_ACDLLCR (0x14) /* DDR3PHY AC DLL Control Register */ +#define DDR3PHY_ACDLLCR_DLLSRST (1 << 30) /* DLL Soft Reset */ + +#define DDR3PHY_ACIOCR (0x24) /* DDR3PHY AC I/O Configuration Register */ #define DDR3PHY_ACIOCR_CSPDD_CS0 (1 << 18) /* CS#[0] Power Down Driver */ #define DDR3PHY_ACIOCR_CKPDD_CK0 (1 << 8) /* CK[0] Power Down Driver */ #define DDR3PHY_ACIORC_ACPDD (1 << 3) /* AC Power Down Driver */ @@ -38,6 +41,14 @@ #define DDR3PHY_DSGCR_ODTPDD_ODT0 (1 << 20) /* ODT[0] Power Down Driver */ #define DDR3PHY_ZQ0SR0 (0x188) /* ZQ status register 0 */ +#define DDR3PHY_ZQ0SR0_PDO_OFF (0) /* Pull-down output impedance select offset */ +#define DDR3PHY_ZQ0SR0_PUO_OFF (5) /* Pull-up output impedance select offset */ +#define DDR3PHY_ZQ0SR0_PDODT_OFF (10) /* Pull-down on-die termination impedance select offset */ +#define DDR3PHY_ZQ0SRO_PUODT_OFF (15) /* Pull-up on-die termination impedance select offset */ + +#define DDR3PHY_DX0DLLCR (0x1CC) /* DDR3PHY DATX8 DLL Control Register */ +#define DDR3PHY_DX1DLLCR (0x20C) /* DDR3PHY DATX8 DLL Control Register */ +#define DDR3PHY_DXDLLCR_DLLDIS (1 << 31) /* DLL Disable */ /* UDDRC */ #define UDDRC_STAT (0x04) /* UDDRC Operating Mode Status Register */ --- linux-5.19.0.orig/include/soc/mscc/ocelot.h +++ linux-5.19.0/include/soc/mscc/ocelot.h @@ -105,11 +105,6 @@ #define REG_RESERVED_ADDR 0xffffffff #define REG_RESERVED(reg) REG(reg, REG_RESERVED_ADDR) -#define for_each_stat(ocelot, stat) \ - for ((stat) = (ocelot)->stats_layout; \ - ((stat)->name[0] != '\0'); \ - (stat)++) - enum ocelot_target { ANA = 1, QS, @@ -335,7 +330,8 @@ SYS_COUNT_RX_64, SYS_COUNT_RX_65_127, SYS_COUNT_RX_128_255, - SYS_COUNT_RX_256_1023, + SYS_COUNT_RX_256_511, + SYS_COUNT_RX_512_1023, SYS_COUNT_RX_1024_1526, SYS_COUNT_RX_1527_MAX, SYS_COUNT_RX_PAUSE, @@ -351,7 +347,8 @@ SYS_COUNT_TX_PAUSE, SYS_COUNT_TX_64, SYS_COUNT_TX_65_127, - SYS_COUNT_TX_128_511, + SYS_COUNT_TX_128_255, + SYS_COUNT_TX_256_511, SYS_COUNT_TX_512_1023, SYS_COUNT_TX_1024_1526, SYS_COUNT_TX_1527_MAX, @@ -538,13 +535,108 @@ TOD_ACC_PIN }; +enum ocelot_stat { + OCELOT_STAT_RX_OCTETS, + OCELOT_STAT_RX_UNICAST, + OCELOT_STAT_RX_MULTICAST, + OCELOT_STAT_RX_BROADCAST, + OCELOT_STAT_RX_SHORTS, + OCELOT_STAT_RX_FRAGMENTS, + OCELOT_STAT_RX_JABBERS, + OCELOT_STAT_RX_CRC_ALIGN_ERRS, + OCELOT_STAT_RX_SYM_ERRS, + OCELOT_STAT_RX_64, + OCELOT_STAT_RX_65_127, + OCELOT_STAT_RX_128_255, + OCELOT_STAT_RX_256_511, + OCELOT_STAT_RX_512_1023, + OCELOT_STAT_RX_1024_1526, + OCELOT_STAT_RX_1527_MAX, + OCELOT_STAT_RX_PAUSE, + OCELOT_STAT_RX_CONTROL, + OCELOT_STAT_RX_LONGS, + OCELOT_STAT_RX_CLASSIFIED_DROPS, + OCELOT_STAT_RX_RED_PRIO_0, + OCELOT_STAT_RX_RED_PRIO_1, + OCELOT_STAT_RX_RED_PRIO_2, + OCELOT_STAT_RX_RED_PRIO_3, + OCELOT_STAT_RX_RED_PRIO_4, + OCELOT_STAT_RX_RED_PRIO_5, + OCELOT_STAT_RX_RED_PRIO_6, + OCELOT_STAT_RX_RED_PRIO_7, + OCELOT_STAT_RX_YELLOW_PRIO_0, + OCELOT_STAT_RX_YELLOW_PRIO_1, + OCELOT_STAT_RX_YELLOW_PRIO_2, + OCELOT_STAT_RX_YELLOW_PRIO_3, + OCELOT_STAT_RX_YELLOW_PRIO_4, + OCELOT_STAT_RX_YELLOW_PRIO_5, + OCELOT_STAT_RX_YELLOW_PRIO_6, + OCELOT_STAT_RX_YELLOW_PRIO_7, + OCELOT_STAT_RX_GREEN_PRIO_0, + OCELOT_STAT_RX_GREEN_PRIO_1, + OCELOT_STAT_RX_GREEN_PRIO_2, + OCELOT_STAT_RX_GREEN_PRIO_3, + OCELOT_STAT_RX_GREEN_PRIO_4, + OCELOT_STAT_RX_GREEN_PRIO_5, + OCELOT_STAT_RX_GREEN_PRIO_6, + OCELOT_STAT_RX_GREEN_PRIO_7, + OCELOT_STAT_TX_OCTETS, + OCELOT_STAT_TX_UNICAST, + OCELOT_STAT_TX_MULTICAST, + OCELOT_STAT_TX_BROADCAST, + OCELOT_STAT_TX_COLLISION, + OCELOT_STAT_TX_DROPS, + OCELOT_STAT_TX_PAUSE, + OCELOT_STAT_TX_64, + OCELOT_STAT_TX_65_127, + OCELOT_STAT_TX_128_255, + OCELOT_STAT_TX_256_511, + OCELOT_STAT_TX_512_1023, + OCELOT_STAT_TX_1024_1526, + OCELOT_STAT_TX_1527_MAX, + OCELOT_STAT_TX_YELLOW_PRIO_0, + OCELOT_STAT_TX_YELLOW_PRIO_1, + OCELOT_STAT_TX_YELLOW_PRIO_2, + OCELOT_STAT_TX_YELLOW_PRIO_3, + OCELOT_STAT_TX_YELLOW_PRIO_4, + OCELOT_STAT_TX_YELLOW_PRIO_5, + OCELOT_STAT_TX_YELLOW_PRIO_6, + OCELOT_STAT_TX_YELLOW_PRIO_7, + OCELOT_STAT_TX_GREEN_PRIO_0, + OCELOT_STAT_TX_GREEN_PRIO_1, + OCELOT_STAT_TX_GREEN_PRIO_2, + OCELOT_STAT_TX_GREEN_PRIO_3, + OCELOT_STAT_TX_GREEN_PRIO_4, + OCELOT_STAT_TX_GREEN_PRIO_5, + OCELOT_STAT_TX_GREEN_PRIO_6, + OCELOT_STAT_TX_GREEN_PRIO_7, + OCELOT_STAT_TX_AGED, + OCELOT_STAT_DROP_LOCAL, + OCELOT_STAT_DROP_TAIL, + OCELOT_STAT_DROP_YELLOW_PRIO_0, + OCELOT_STAT_DROP_YELLOW_PRIO_1, + OCELOT_STAT_DROP_YELLOW_PRIO_2, + OCELOT_STAT_DROP_YELLOW_PRIO_3, + OCELOT_STAT_DROP_YELLOW_PRIO_4, + OCELOT_STAT_DROP_YELLOW_PRIO_5, + OCELOT_STAT_DROP_YELLOW_PRIO_6, + OCELOT_STAT_DROP_YELLOW_PRIO_7, + OCELOT_STAT_DROP_GREEN_PRIO_0, + OCELOT_STAT_DROP_GREEN_PRIO_1, + OCELOT_STAT_DROP_GREEN_PRIO_2, + OCELOT_STAT_DROP_GREEN_PRIO_3, + OCELOT_STAT_DROP_GREEN_PRIO_4, + OCELOT_STAT_DROP_GREEN_PRIO_5, + OCELOT_STAT_DROP_GREEN_PRIO_6, + OCELOT_STAT_DROP_GREEN_PRIO_7, + OCELOT_NUM_STATS, +}; + struct ocelot_stat_layout { u32 offset; char name[ETH_GSTRING_LEN]; }; -#define OCELOT_STAT_END { .name = "" } - struct ocelot_stats_region { struct list_head node; u32 offset; @@ -575,6 +667,7 @@ int (*psfp_stats_get)(struct ocelot *ocelot, struct flow_cls_offload *f, struct flow_stats *stats); void (*cut_through_fwd)(struct ocelot *ocelot); + void (*tas_clock_adjust)(struct ocelot *ocelot); }; struct ocelot_vcap_policer { @@ -669,6 +762,8 @@ /* VLAN that untagged frames are classified to, on ingress */ const struct ocelot_bridge_vlan *pvid_vlan; + struct tc_taprio_qopt_offload *taprio; + phy_interface_t phy_mode; unsigned int ptp_skbs_in_flight; @@ -704,7 +799,6 @@ const u32 *const *map; const struct ocelot_stat_layout *stats_layout; struct list_head stats_regions; - unsigned int num_stats; u32 pool_size[OCELOT_SB_NUM][OCELOT_SB_POOL_NUM]; int packet_buffer_size; @@ -747,7 +841,7 @@ struct ocelot_psfp_list psfp; /* Workqueue to check statistics for overflow with its lock */ - struct mutex stats_lock; + spinlock_t stats_lock; u64 *stats; struct delayed_work stats_work; struct workqueue_struct *stats_queue; @@ -757,6 +851,9 @@ /* Lock for serializing forwarding domain changes */ struct mutex fwd_domain_lock; + /* Lock for serializing Time-Aware Shaper changes */ + struct mutex tas_lock; + struct workqueue_struct *owq; u8 ptp:1; --- linux-5.19.0.orig/include/sound/acp62_chip_offset_byte.h +++ linux-5.19.0/include/sound/acp62_chip_offset_byte.h @@ -0,0 +1,444 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * AMD ACP 6.2 Register Documentation + * + * Copyright 2022 Advanced Micro Devices, Inc. + */ + +#ifndef _acp_ip_OFFSET_HEADER +#define _acp_ip_OFFSET_HEADER + +/* Registers from ACP_DMA block */ +#define ACP_DMA_CNTL_0 0x0000000 +#define ACP_DMA_CNTL_1 0x0000004 +#define ACP_DMA_CNTL_2 0x0000008 +#define ACP_DMA_CNTL_3 0x000000C +#define ACP_DMA_CNTL_4 0x0000010 +#define ACP_DMA_CNTL_5 0x0000014 +#define ACP_DMA_CNTL_6 0x0000018 +#define ACP_DMA_CNTL_7 0x000001C +#define ACP_DMA_DSCR_STRT_IDX_0 0x0000020 +#define ACP_DMA_DSCR_STRT_IDX_1 0x0000024 +#define ACP_DMA_DSCR_STRT_IDX_2 0x0000028 +#define ACP_DMA_DSCR_STRT_IDX_3 0x000002C +#define ACP_DMA_DSCR_STRT_IDX_4 0x0000030 +#define ACP_DMA_DSCR_STRT_IDX_5 0x0000034 +#define ACP_DMA_DSCR_STRT_IDX_6 0x0000038 +#define ACP_DMA_DSCR_STRT_IDX_7 0x000003C +#define ACP_DMA_DSCR_CNT_0 0x0000040 +#define ACP_DMA_DSCR_CNT_1 0x0000044 +#define ACP_DMA_DSCR_CNT_2 0x0000048 +#define ACP_DMA_DSCR_CNT_3 0x000004C +#define ACP_DMA_DSCR_CNT_4 0x0000050 +#define ACP_DMA_DSCR_CNT_5 0x0000054 +#define ACP_DMA_DSCR_CNT_6 0x0000058 +#define ACP_DMA_DSCR_CNT_7 0x000005C +#define ACP_DMA_PRIO_0 0x0000060 +#define ACP_DMA_PRIO_1 0x0000064 +#define ACP_DMA_PRIO_2 0x0000068 +#define ACP_DMA_PRIO_3 0x000006C +#define ACP_DMA_PRIO_4 0x0000070 +#define ACP_DMA_PRIO_5 0x0000074 +#define ACP_DMA_PRIO_6 0x0000078 +#define ACP_DMA_PRIO_7 0x000007C +#define ACP_DMA_CUR_DSCR_0 0x0000080 +#define ACP_DMA_CUR_DSCR_1 0x0000084 +#define ACP_DMA_CUR_DSCR_2 0x0000088 +#define ACP_DMA_CUR_DSCR_3 0x000008C +#define ACP_DMA_CUR_DSCR_4 0x0000090 +#define ACP_DMA_CUR_DSCR_5 0x0000094 +#define ACP_DMA_CUR_DSCR_6 0x0000098 +#define ACP_DMA_CUR_DSCR_7 0x000009C +#define ACP_DMA_CUR_TRANS_CNT_0 0x00000A0 +#define ACP_DMA_CUR_TRANS_CNT_1 0x00000A4 +#define ACP_DMA_CUR_TRANS_CNT_2 0x00000A8 +#define ACP_DMA_CUR_TRANS_CNT_3 0x00000AC +#define ACP_DMA_CUR_TRANS_CNT_4 0x00000B0 +#define ACP_DMA_CUR_TRANS_CNT_5 0x00000B4 +#define ACP_DMA_CUR_TRANS_CNT_6 0x00000B8 +#define ACP_DMA_CUR_TRANS_CNT_7 0x00000BC +#define ACP_DMA_ERR_STS_0 0x00000C0 +#define ACP_DMA_ERR_STS_1 0x00000C4 +#define ACP_DMA_ERR_STS_2 0x00000C8 +#define ACP_DMA_ERR_STS_3 0x00000CC +#define ACP_DMA_ERR_STS_4 0x00000D0 +#define ACP_DMA_ERR_STS_5 0x00000D4 +#define ACP_DMA_ERR_STS_6 0x00000D8 +#define ACP_DMA_ERR_STS_7 0x00000DC +#define ACP_DMA_DESC_BASE_ADDR 0x00000E0 +#define ACP_DMA_DESC_MAX_NUM_DSCR 0x00000E4 +#define ACP_DMA_CH_STS 0x00000E8 +#define ACP_DMA_CH_GROUP 0x00000EC +#define ACP_DMA_CH_RST_STS 0x00000F0 + +/* Registers from ACP_AXI2AXIATU block */ +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1 0x0000C00 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_1 0x0000C04 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_2 0x0000C08 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_2 0x0000C0C +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_3 0x0000C10 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_3 0x0000C14 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_4 0x0000C18 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_4 0x0000C1C +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_5 0x0000C20 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_5 0x0000C24 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_6 0x0000C28 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_6 0x0000C2C +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_7 0x0000C30 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_7 0x0000C34 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_8 0x0000C38 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_8 0x0000C3C +#define ACPAXI2AXI_ATU_CTRL 0x0000C40 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_9 0x0000C44 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_9 0x0000C48 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_10 0x0000C4C +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_10 0x0000C50 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_11 0x0000C54 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_11 0x0000C58 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_12 0x0000C5C +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_12 0x0000C60 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_13 0x0000C64 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_13 0x0000C68 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_14 0x0000C6C +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_14 0x0000C70 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_15 0x0000C74 +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_15 0x0000C78 +#define ACPAXI2AXI_ATU_PAGE_SIZE_GRP_16 0x0000C7C +#define ACPAXI2AXI_ATU_BASE_ADDR_GRP_16 0x0000C80 + +/* Registers from ACP_CLKRST block */ +#define ACP_SOFT_RESET 0x0001000 +#define ACP_CONTROL 0x0001004 +#define ACP_STATUS 0x0001008 +#define ACP_DYNAMIC_CG_MASTER_CONTROL 0x0001010 +#define ACP_ZSC_DSP_CTRL 0x0001014 +#define ACP_ZSC_STS 0x0001018 +#define ACP_PGFSM_CONTROL 0x0001024 +#define ACP_PGFSM_STATUS 0x0001028 +#define ACP_CLKMUX_SEL 0x000102C + +/* Registers from ACP_AON block */ +#define ACP_PME_EN 0x0001400 +#define ACP_DEVICE_STATE 0x0001404 +#define AZ_DEVICE_STATE 0x0001408 +#define ACP_PIN_CONFIG 0x0001440 +#define ACP_PAD_PULLUP_CTRL 0x0001444 +#define ACP_PAD_PULLDOWN_CTRL 0x0001448 +#define ACP_PAD_DRIVE_STRENGTH_CTRL 0x000144C +#define ACP_PAD_SCHMEN_CTRL 0x0001450 +#define ACP_SW_PAD_KEEPER_EN 0x0001454 +#define ACP_SW_WAKE_EN 0x0001458 +#define ACP_I2S_WAKE_EN 0x000145C +#define ACP_SW1_WAKE_EN 0x0001460 + +/* Registers from ACP_P1_MISC block */ +#define ACP_EXTERNAL_INTR_ENB 0x0001A00 +#define ACP_EXTERNAL_INTR_CNTL 0x0001A04 +#define ACP_EXTERNAL_INTR_CNTL1 0x0001A08 +#define ACP_EXTERNAL_INTR_STAT 0x0001A0C +#define ACP_EXTERNAL_INTR_STAT1 0x0001A10 +#define ACP_ERROR_STATUS 0x0001A4C +#define ACP_P1_SW_I2S_ERROR_REASON 0x0001A50 +#define ACP_P1_SW_POS_TRACK_I2S_TX_CTRL 0x0001A6C +#define ACP_P1_SW_I2S_TX_DMA_POS 0x0001A70 +#define ACP_P1_SW_POS_TRACK_I2S_RX_CTRL 0x0001A74 +#define ACP_P1_SW_I2S_RX_DMA_POS 0x0001A78 +#define ACP_P1_DMIC_I2S_GPIO_INTR_CTRL 0x0001A7C +#define ACP_P1_DMIC_I2S_GPIO_INTR_STATUS 0x0001A80 +#define ACP_SCRATCH_REG_BASE_ADDR 0x0001A84 +#define ACP_P1_SW_POS_TRACK_BT_TX_CTRL 0x0001A88 +#define ACP_P1_SW_BT_TX_DMA_POS 0x0001A8C +#define ACP_P1_SW_POS_TRACK_HS_TX_CTRL 0x0001A90 +#define ACP_P1_SW_HS_TX_DMA_POS 0x0001A94 +#define ACP_P1_SW_POS_TRACK_BT_RX_CTRL 0x0001A98 +#define ACP_P1_SW_BT_RX_DMA_POS 0x0001A9C +#define ACP_P1_SW_POS_TRACK_HS_RX_CTRL 0x0001AA0 +#define ACP_P1_SW_HS_RX_DMA_POS 0x0001AA4 + +/* Registers from ACP_AUDIO_BUFFERS block */ +#define ACP_I2S_RX_RINGBUFADDR 0x0002000 +#define ACP_I2S_RX_RINGBUFSIZE 0x0002004 +#define ACP_I2S_RX_LINKPOSITIONCNTR 0x0002008 +#define ACP_I2S_RX_FIFOADDR 0x000200C +#define ACP_I2S_RX_FIFOSIZE 0x0002010 +#define ACP_I2S_RX_DMA_SIZE 0x0002014 +#define ACP_I2S_RX_LINEARPOSITIONCNTR_HIGH 0x0002018 +#define ACP_I2S_RX_LINEARPOSITIONCNTR_LOW 0x000201C +#define ACP_I2S_RX_INTR_WATERMARK_SIZE 0x0002020 +#define ACP_I2S_TX_RINGBUFADDR 0x0002024 +#define ACP_I2S_TX_RINGBUFSIZE 0x0002028 +#define ACP_I2S_TX_LINKPOSITIONCNTR 0x000202C +#define ACP_I2S_TX_FIFOADDR 0x0002030 +#define ACP_I2S_TX_FIFOSIZE 0x0002034 +#define ACP_I2S_TX_DMA_SIZE 0x0002038 +#define ACP_I2S_TX_LINEARPOSITIONCNTR_HIGH 0x000203C +#define ACP_I2S_TX_LINEARPOSITIONCNTR_LOW 0x0002040 +#define ACP_I2S_TX_INTR_WATERMARK_SIZE 0x0002044 +#define ACP_BT_RX_RINGBUFADDR 0x0002048 +#define ACP_BT_RX_RINGBUFSIZE 0x000204C +#define ACP_BT_RX_LINKPOSITIONCNTR 0x0002050 +#define ACP_BT_RX_FIFOADDR 0x0002054 +#define ACP_BT_RX_FIFOSIZE 0x0002058 +#define ACP_BT_RX_DMA_SIZE 0x000205C +#define ACP_BT_RX_LINEARPOSITIONCNTR_HIGH 0x0002060 +#define ACP_BT_RX_LINEARPOSITIONCNTR_LOW 0x0002064 +#define ACP_BT_RX_INTR_WATERMARK_SIZE 0x0002068 +#define ACP_BT_TX_RINGBUFADDR 0x000206C +#define ACP_BT_TX_RINGBUFSIZE 0x0002070 +#define ACP_BT_TX_LINKPOSITIONCNTR 0x0002074 +#define ACP_BT_TX_FIFOADDR 0x0002078 +#define ACP_BT_TX_FIFOSIZE 0x000207C +#define ACP_BT_TX_DMA_SIZE 0x0002080 +#define ACP_BT_TX_LINEARPOSITIONCNTR_HIGH 0x0002084 +#define ACP_BT_TX_LINEARPOSITIONCNTR_LOW 0x0002088 +#define ACP_BT_TX_INTR_WATERMARK_SIZE 0x000208C +#define ACP_HS_RX_RINGBUFADDR 0x0002090 +#define ACP_HS_RX_RINGBUFSIZE 0x0002094 +#define ACP_HS_RX_LINKPOSITIONCNTR 0x0002098 +#define ACP_HS_RX_FIFOADDR 0x000209C +#define ACP_HS_RX_FIFOSIZE 0x00020A0 +#define ACP_HS_RX_DMA_SIZE 0x00020A4 +#define ACP_HS_RX_LINEARPOSITIONCNTR_HIGH 0x00020A8 +#define ACP_HS_RX_LINEARPOSITIONCNTR_LOW 0x00020AC +#define ACP_HS_RX_INTR_WATERMARK_SIZE 0x00020B0 +#define ACP_HS_TX_RINGBUFADDR 0x00020B4 +#define ACP_HS_TX_RINGBUFSIZE 0x00020B8 +#define ACP_HS_TX_LINKPOSITIONCNTR 0x00020BC +#define ACP_HS_TX_FIFOADDR 0x00020C0 +#define ACP_HS_TX_FIFOSIZE 0x00020C4 +#define ACP_HS_TX_DMA_SIZE 0x00020C8 +#define ACP_HS_TX_LINEARPOSITIONCNTR_HIGH 0x00020CC +#define ACP_HS_TX_LINEARPOSITIONCNTR_LOW 0x00020D0 +#define ACP_HS_TX_INTR_WATERMARK_SIZE 0x00020D4 + +/* Registers from ACP_I2S_TDM block */ +#define ACP_I2STDM_IER 0x0002400 +#define ACP_I2STDM_IRER 0x0002404 +#define ACP_I2STDM_RXFRMT 0x0002408 +#define ACP_I2STDM_ITER 0x000240C +#define ACP_I2STDM_TXFRMT 0x0002410 +#define ACP_I2STDM0_MSTRCLKGEN 0x0002414 +#define ACP_I2STDM1_MSTRCLKGEN 0x0002418 +#define ACP_I2STDM2_MSTRCLKGEN 0x000241C +#define ACP_I2STDM_REFCLKGEN 0x0002420 + +/* Registers from ACP_BT_TDM block */ +#define ACP_BTTDM_IER 0x0002800 +#define ACP_BTTDM_IRER 0x0002804 +#define ACP_BTTDM_RXFRMT 0x0002808 +#define ACP_BTTDM_ITER 0x000280C +#define ACP_BTTDM_TXFRMT 0x0002810 +#define ACP_HSTDM_IER 0x0002814 +#define ACP_HSTDM_IRER 0x0002818 +#define ACP_HSTDM_RXFRMT 0x000281C +#define ACP_HSTDM_ITER 0x0002820 +#define ACP_HSTDM_TXFRMT 0x0002824 + +/* Registers from ACP_WOV block */ +#define ACP_WOV_PDM_ENABLE 0x0002C04 +#define ACP_WOV_PDM_DMA_ENABLE 0x0002C08 +#define ACP_WOV_RX_RINGBUFADDR 0x0002C0C +#define ACP_WOV_RX_RINGBUFSIZE 0x0002C10 +#define ACP_WOV_RX_LINKPOSITIONCNTR 0x0002C14 +#define ACP_WOV_RX_LINEARPOSITIONCNTR_HIGH 0x0002C18 +#define ACP_WOV_RX_LINEARPOSITIONCNTR_LOW 0x0002C1C +#define ACP_WOV_RX_INTR_WATERMARK_SIZE 0x0002C20 +#define ACP_WOV_PDM_FIFO_FLUSH 0x0002C24 +#define ACP_WOV_PDM_NO_OF_CHANNELS 0x0002C28 +#define ACP_WOV_PDM_DECIMATION_FACTOR 0x0002C2C +#define ACP_WOV_PDM_VAD_CTRL 0x0002C30 +#define ACP_WOV_WAKE 0x0002C54 +#define ACP_WOV_BUFFER_STATUS 0x0002C58 +#define ACP_WOV_MISC_CTRL 0x0002C5C +#define ACP_WOV_CLK_CTRL 0x0002C60 +#define ACP_PDM_VAD_DYNAMIC_CLK_GATING_EN 0x0002C64 +#define ACP_WOV_ERROR_STATUS_REGISTER 0x0002C68 +#define ACP_PDM_CLKDIV 0x0002C6C + +/* Registers from ACP_P1_AUDIO_BUFFERS block */ +#define ACP_P1_I2S_RX_RINGBUFADDR 0x0003A00 +#define ACP_P1_I2S_RX_RINGBUFSIZE 0x0003A04 +#define ACP_P1_I2S_RX_LINKPOSITIONCNTR 0x0003A08 +#define ACP_P1_I2S_RX_FIFOADDR 0x0003A0C +#define ACP_P1_I2S_RX_FIFOSIZE 0x0003A10 +#define ACP_P1_I2S_RX_DMA_SIZE 0x0003A14 +#define ACP_P1_I2S_RX_LINEARPOSITIONCNTR_HIGH 0x0003A18 +#define ACP_P1_I2S_RX_LINEARPOSITIONCNTR_LOW 0x0003A1C +#define ACP_P1_I2S_RX_INTR_WATERMARK_SIZE 0x0003A20 +#define ACP_P1_I2S_TX_RINGBUFADDR 0x0003A24 +#define ACP_P1_I2S_TX_RINGBUFSIZE 0x0003A28 +#define ACP_P1_I2S_TX_LINKPOSITIONCNTR 0x0003A2C +#define ACP_P1_I2S_TX_FIFOADDR 0x0003A30 +#define ACP_P1_I2S_TX_FIFOSIZE 0x0003A34 +#define ACP_P1_I2S_TX_DMA_SIZE 0x0003A38 +#define ACP_P1_I2S_TX_LINEARPOSITIONCNTR_HIGH 0x0003A3C +#define ACP_P1_I2S_TX_LINEARPOSITIONCNTR_LOW 0x0003A40 +#define ACP_P1_I2S_TX_INTR_WATERMARK_SIZE 0x0003A44 +#define ACP_P1_BT_RX_RINGBUFADDR 0x0003A48 +#define ACP_P1_BT_RX_RINGBUFSIZE 0x0003A4C +#define ACP_P1_BT_RX_LINKPOSITIONCNTR 0x0003A50 +#define ACP_P1_BT_RX_FIFOADDR 0x0003A54 +#define ACP_P1_BT_RX_FIFOSIZE 0x0003A58 +#define ACP_P1_BT_RX_DMA_SIZE 0x0003A5C +#define ACP_P1_BT_RX_LINEARPOSITIONCNTR_HIGH 0x0003A60 +#define ACP_P1_BT_RX_LINEARPOSITIONCNTR_LOW 0x0003A64 +#define ACP_P1_BT_RX_INTR_WATERMARK_SIZE 0x0003A68 +#define ACP_P1_BT_TX_RINGBUFADDR 0x0003A6C +#define ACP_P1_BT_TX_RINGBUFSIZE 0x0003A70 +#define ACP_P1_BT_TX_LINKPOSITIONCNTR 0x0003A74 +#define ACP_P1_BT_TX_FIFOADDR 0x0003A78 +#define ACP_P1_BT_TX_FIFOSIZE 0x0003A7C +#define ACP_P1_BT_TX_DMA_SIZE 0x0003A80 +#define ACP_P1_BT_TX_LINEARPOSITIONCNTR_HIGH 0x0003A84 +#define ACP_P1_BT_TX_LINEARPOSITIONCNTR_LOW 0x0003A88 +#define ACP_P1_BT_TX_INTR_WATERMARK_SIZE 0x0003A8C +#define ACP_P1_HS_RX_RINGBUFADDR 0x0003A90 +#define ACP_P1_HS_RX_RINGBUFSIZE 0x0003A94 +#define ACP_P1_HS_RX_LINKPOSITIONCNTR 0x0003A98 +#define ACP_P1_HS_RX_FIFOADDR 0x0003A9C +#define ACP_P1_HS_RX_FIFOSIZE 0x0003AA0 +#define ACP_P1_HS_RX_DMA_SIZE 0x0003AA4 +#define ACP_P1_HS_RX_LINEARPOSITIONCNTR_HIGH 0x0003AA8 +#define ACP_P1_HS_RX_LINEARPOSITIONCNTR_LOW 0x0003AAC +#define ACP_P1_HS_RX_INTR_WATERMARK_SIZE 0x0003AB0 +#define ACP_P1_HS_TX_RINGBUFADDR 0x0003AB4 +#define ACP_P1_HS_TX_RINGBUFSIZE 0x0003AB8 +#define ACP_P1_HS_TX_LINKPOSITIONCNTR 0x0003ABC +#define ACP_P1_HS_TX_FIFOADDR 0x0003AC0 +#define ACP_P1_HS_TX_FIFOSIZE 0x0003AC4 +#define ACP_P1_HS_TX_DMA_SIZE 0x0003AC8 +#define ACP_P1_HS_TX_LINEARPOSITIONCNTR_HIGH 0x0003ACC +#define ACP_P1_HS_TX_LINEARPOSITIONCNTR_LOW 0x0003AD0 +#define ACP_P1_HS_TX_INTR_WATERMARK_SIZE 0x0003AD4 + +/* Registers from ACP_SCRATCH block */ +#define ACP_SCRATCH_REG_0 0x0010000 +#define ACP_SCRATCH_REG_1 0x0010004 +#define ACP_SCRATCH_REG_2 0x0010008 +#define ACP_SCRATCH_REG_3 0x001000C +#define ACP_SCRATCH_REG_4 0x0010010 +#define ACP_SCRATCH_REG_5 0x0010014 +#define ACP_SCRATCH_REG_6 0x0010018 +#define ACP_SCRATCH_REG_7 0x001001C +#define ACP_SCRATCH_REG_8 0x0010020 +#define ACP_SCRATCH_REG_9 0x0010024 +#define ACP_SCRATCH_REG_10 0x0010028 +#define ACP_SCRATCH_REG_11 0x001002C +#define ACP_SCRATCH_REG_12 0x0010030 +#define ACP_SCRATCH_REG_13 0x0010034 +#define ACP_SCRATCH_REG_14 0x0010038 +#define ACP_SCRATCH_REG_15 0x001003C +#define ACP_SCRATCH_REG_16 0x0010040 +#define ACP_SCRATCH_REG_17 0x0010044 +#define ACP_SCRATCH_REG_18 0x0010048 +#define ACP_SCRATCH_REG_19 0x001004C +#define ACP_SCRATCH_REG_20 0x0010050 +#define ACP_SCRATCH_REG_21 0x0010054 +#define ACP_SCRATCH_REG_22 0x0010058 +#define ACP_SCRATCH_REG_23 0x001005C +#define ACP_SCRATCH_REG_24 0x0010060 +#define ACP_SCRATCH_REG_25 0x0010064 +#define ACP_SCRATCH_REG_26 0x0010068 +#define ACP_SCRATCH_REG_27 0x001006C +#define ACP_SCRATCH_REG_28 0x0010070 +#define ACP_SCRATCH_REG_29 0x0010074 +#define ACP_SCRATCH_REG_30 0x0010078 +#define ACP_SCRATCH_REG_31 0x001007C +#define ACP_SCRATCH_REG_32 0x0010080 +#define ACP_SCRATCH_REG_33 0x0010084 +#define ACP_SCRATCH_REG_34 0x0010088 +#define ACP_SCRATCH_REG_35 0x001008C +#define ACP_SCRATCH_REG_36 0x0010090 +#define ACP_SCRATCH_REG_37 0x0010094 +#define ACP_SCRATCH_REG_38 0x0010098 +#define ACP_SCRATCH_REG_39 0x001009C +#define ACP_SCRATCH_REG_40 0x00100A0 +#define ACP_SCRATCH_REG_41 0x00100A4 +#define ACP_SCRATCH_REG_42 0x00100A8 +#define ACP_SCRATCH_REG_43 0x00100AC +#define ACP_SCRATCH_REG_44 0x00100B0 +#define ACP_SCRATCH_REG_45 0x00100B4 +#define ACP_SCRATCH_REG_46 0x00100B8 +#define ACP_SCRATCH_REG_47 0x00100BC +#define ACP_SCRATCH_REG_48 0x00100C0 +#define ACP_SCRATCH_REG_49 0x00100C4 +#define ACP_SCRATCH_REG_50 0x00100C8 +#define ACP_SCRATCH_REG_51 0x00100CC +#define ACP_SCRATCH_REG_52 0x00100D0 +#define ACP_SCRATCH_REG_53 0x00100D4 +#define ACP_SCRATCH_REG_54 0x00100D8 +#define ACP_SCRATCH_REG_55 0x00100DC +#define ACP_SCRATCH_REG_56 0x00100E0 +#define ACP_SCRATCH_REG_57 0x00100E4 +#define ACP_SCRATCH_REG_58 0x00100E8 +#define ACP_SCRATCH_REG_59 0x00100EC +#define ACP_SCRATCH_REG_60 0x00100F0 +#define ACP_SCRATCH_REG_61 0x00100F4 +#define ACP_SCRATCH_REG_62 0x00100F8 +#define ACP_SCRATCH_REG_63 0x00100FC +#define ACP_SCRATCH_REG_64 0x0010100 +#define ACP_SCRATCH_REG_65 0x0010104 +#define ACP_SCRATCH_REG_66 0x0010108 +#define ACP_SCRATCH_REG_67 0x001010C +#define ACP_SCRATCH_REG_68 0x0010110 +#define ACP_SCRATCH_REG_69 0x0010114 +#define ACP_SCRATCH_REG_70 0x0010118 +#define ACP_SCRATCH_REG_71 0x001011C +#define ACP_SCRATCH_REG_72 0x0010120 +#define ACP_SCRATCH_REG_73 0x0010124 +#define ACP_SCRATCH_REG_74 0x0010128 +#define ACP_SCRATCH_REG_75 0x001012C +#define ACP_SCRATCH_REG_76 0x0010130 +#define ACP_SCRATCH_REG_77 0x0010134 +#define ACP_SCRATCH_REG_78 0x0010138 +#define ACP_SCRATCH_REG_79 0x001013C +#define ACP_SCRATCH_REG_80 0x0010140 +#define ACP_SCRATCH_REG_81 0x0010144 +#define ACP_SCRATCH_REG_82 0x0010148 +#define ACP_SCRATCH_REG_83 0x001014C +#define ACP_SCRATCH_REG_84 0x0010150 +#define ACP_SCRATCH_REG_85 0x0010154 +#define ACP_SCRATCH_REG_86 0x0010158 +#define ACP_SCRATCH_REG_87 0x001015C +#define ACP_SCRATCH_REG_88 0x0010160 +#define ACP_SCRATCH_REG_89 0x0010164 +#define ACP_SCRATCH_REG_90 0x0010168 +#define ACP_SCRATCH_REG_91 0x001016C +#define ACP_SCRATCH_REG_92 0x0010170 +#define ACP_SCRATCH_REG_93 0x0010174 +#define ACP_SCRATCH_REG_94 0x0010178 +#define ACP_SCRATCH_REG_95 0x001017C +#define ACP_SCRATCH_REG_96 0x0010180 +#define ACP_SCRATCH_REG_97 0x0010184 +#define ACP_SCRATCH_REG_98 0x0010188 +#define ACP_SCRATCH_REG_99 0x001018C +#define ACP_SCRATCH_REG_100 0x0010190 +#define ACP_SCRATCH_REG_101 0x0010194 +#define ACP_SCRATCH_REG_102 0x0010198 +#define ACP_SCRATCH_REG_103 0x001019C +#define ACP_SCRATCH_REG_104 0x00101A0 +#define ACP_SCRATCH_REG_105 0x00101A4 +#define ACP_SCRATCH_REG_106 0x00101A8 +#define ACP_SCRATCH_REG_107 0x00101AC +#define ACP_SCRATCH_REG_108 0x00101B0 +#define ACP_SCRATCH_REG_109 0x00101B4 +#define ACP_SCRATCH_REG_110 0x00101B8 +#define ACP_SCRATCH_REG_111 0x00101BC +#define ACP_SCRATCH_REG_112 0x00101C0 +#define ACP_SCRATCH_REG_113 0x00101C4 +#define ACP_SCRATCH_REG_114 0x00101C8 +#define ACP_SCRATCH_REG_115 0x00101CC +#define ACP_SCRATCH_REG_116 0x00101D0 +#define ACP_SCRATCH_REG_117 0x00101D4 +#define ACP_SCRATCH_REG_118 0x00101D8 +#define ACP_SCRATCH_REG_119 0x00101DC +#define ACP_SCRATCH_REG_120 0x00101E0 +#define ACP_SCRATCH_REG_121 0x00101E4 +#define ACP_SCRATCH_REG_122 0x00101E8 +#define ACP_SCRATCH_REG_123 0x00101EC +#define ACP_SCRATCH_REG_124 0x00101F0 +#define ACP_SCRATCH_REG_125 0x00101F4 +#define ACP_SCRATCH_REG_126 0x00101F8 +#define ACP_SCRATCH_REG_127 0x00101FC +#define ACP_SCRATCH_REG_128 0x0010200 +#endif --- linux-5.19.0.orig/include/sound/control.h +++ linux-5.19.0/include/sound/control.h @@ -109,7 +109,7 @@ int preferred_subdevice[SND_CTL_SUBDEV_ITEMS]; wait_queue_head_t change_sleep; spinlock_t read_lock; - struct fasync_struct *fasync; + struct snd_fasync *fasync; int subscribed; /* read interface is activated */ struct list_head events; /* waiting events for read */ }; --- linux-5.19.0.orig/include/sound/core.h +++ linux-5.19.0/include/sound/core.h @@ -501,4 +501,12 @@ } #endif +/* async signal helpers */ +struct snd_fasync; + +int snd_fasync_helper(int fd, struct file *file, int on, + struct snd_fasync **fasyncp); +void snd_kill_fasync(struct snd_fasync *fasync, int signal, int poll); +void snd_fasync_free(struct snd_fasync *fasync); + #endif /* __SOUND_CORE_H */ --- linux-5.19.0.orig/include/sound/cs35l41.h +++ linux-5.19.0/include/sound/cs35l41.h @@ -665,6 +665,10 @@ #define CS35L41_BST_EN_DEFAULT 0x2 #define CS35L41_AMP_EN_SHIFT 0 #define CS35L41_AMP_EN_MASK 1 +#define CS35L41_VMON_EN_MASK 0x1000 +#define CS35L41_VMON_EN_SHIFT 12 +#define CS35L41_IMON_EN_MASK 0x2000 +#define CS35L41_IMON_EN_SHIFT 13 #define CS35L41_PDN_DONE_MASK 0x00800000 #define CS35L41_PDN_DONE_SHIFT 23 @@ -881,6 +885,9 @@ int cs35l41_set_cspl_mbox_cmd(struct device *dev, struct regmap *regmap, enum cs35l41_cspl_mbox_cmd cmd); int cs35l41_write_fs_errata(struct device *dev, struct regmap *regmap); +int cs35l41_enter_hibernate(struct device *dev, struct regmap *regmap, + enum cs35l41_boost_type b_type); +int cs35l41_exit_hibernate(struct device *dev, struct regmap *regmap); int cs35l41_init_boost(struct device *dev, struct regmap *regmap, struct cs35l41_hw_cfg *hw_cfg); bool cs35l41_safe_reset(struct regmap *regmap, enum cs35l41_boost_type b_type); --- linux-5.19.0.orig/include/sound/hda_codec.h +++ linux-5.19.0/include/sound/hda_codec.h @@ -260,6 +260,7 @@ unsigned int relaxed_resume:1; /* don't resume forcibly for jack */ unsigned int forced_resume:1; /* forced resume for jack */ unsigned int mst_no_extra_pcms:1; /* no backup PCMs for DP-MST */ + unsigned int no_stream_clean_at_suspend:1; /* do not clean streams at suspend */ #ifdef CONFIG_PM unsigned long power_on_acct; --- linux-5.19.0.orig/include/sound/hdaudio.h +++ linux-5.19.0/include/sound/hdaudio.h @@ -561,6 +561,7 @@ void snd_hdac_stream_start(struct hdac_stream *azx_dev, bool fresh_start); void snd_hdac_stream_clear(struct hdac_stream *azx_dev); void snd_hdac_stream_stop(struct hdac_stream *azx_dev); +void snd_hdac_stop_streams(struct hdac_bus *bus); void snd_hdac_stop_streams_and_chip(struct hdac_bus *bus); void snd_hdac_stream_reset(struct hdac_stream *azx_dev); void snd_hdac_stream_sync_trigger(struct hdac_stream *azx_dev, bool set, --- linux-5.19.0.orig/include/sound/pcm.h +++ linux-5.19.0/include/sound/pcm.h @@ -106,24 +106,24 @@ #define SNDRV_PCM_POS_XRUN ((snd_pcm_uframes_t)-1) /* If you change this don't forget to change rates[] table in pcm_native.c */ -#define SNDRV_PCM_RATE_5512 (1<<0) /* 5512Hz */ -#define SNDRV_PCM_RATE_8000 (1<<1) /* 8000Hz */ -#define SNDRV_PCM_RATE_11025 (1<<2) /* 11025Hz */ -#define SNDRV_PCM_RATE_16000 (1<<3) /* 16000Hz */ -#define SNDRV_PCM_RATE_22050 (1<<4) /* 22050Hz */ -#define SNDRV_PCM_RATE_32000 (1<<5) /* 32000Hz */ -#define SNDRV_PCM_RATE_44100 (1<<6) /* 44100Hz */ -#define SNDRV_PCM_RATE_48000 (1<<7) /* 48000Hz */ -#define SNDRV_PCM_RATE_64000 (1<<8) /* 64000Hz */ -#define SNDRV_PCM_RATE_88200 (1<<9) /* 88200Hz */ -#define SNDRV_PCM_RATE_96000 (1<<10) /* 96000Hz */ -#define SNDRV_PCM_RATE_176400 (1<<11) /* 176400Hz */ -#define SNDRV_PCM_RATE_192000 (1<<12) /* 192000Hz */ -#define SNDRV_PCM_RATE_352800 (1<<13) /* 352800Hz */ -#define SNDRV_PCM_RATE_384000 (1<<14) /* 384000Hz */ +#define SNDRV_PCM_RATE_5512 (1U<<0) /* 5512Hz */ +#define SNDRV_PCM_RATE_8000 (1U<<1) /* 8000Hz */ +#define SNDRV_PCM_RATE_11025 (1U<<2) /* 11025Hz */ +#define SNDRV_PCM_RATE_16000 (1U<<3) /* 16000Hz */ +#define SNDRV_PCM_RATE_22050 (1U<<4) /* 22050Hz */ +#define SNDRV_PCM_RATE_32000 (1U<<5) /* 32000Hz */ +#define SNDRV_PCM_RATE_44100 (1U<<6) /* 44100Hz */ +#define SNDRV_PCM_RATE_48000 (1U<<7) /* 48000Hz */ +#define SNDRV_PCM_RATE_64000 (1U<<8) /* 64000Hz */ +#define SNDRV_PCM_RATE_88200 (1U<<9) /* 88200Hz */ +#define SNDRV_PCM_RATE_96000 (1U<<10) /* 96000Hz */ +#define SNDRV_PCM_RATE_176400 (1U<<11) /* 176400Hz */ +#define SNDRV_PCM_RATE_192000 (1U<<12) /* 192000Hz */ +#define SNDRV_PCM_RATE_352800 (1U<<13) /* 352800Hz */ +#define SNDRV_PCM_RATE_384000 (1U<<14) /* 384000Hz */ -#define SNDRV_PCM_RATE_CONTINUOUS (1<<30) /* continuous range */ -#define SNDRV_PCM_RATE_KNOT (1<<31) /* supports more non-continuos rates */ +#define SNDRV_PCM_RATE_CONTINUOUS (1U<<30) /* continuous range */ +#define SNDRV_PCM_RATE_KNOT (1U<<31) /* supports more non-continuos rates */ #define SNDRV_PCM_RATE_8000_44100 (SNDRV_PCM_RATE_8000|SNDRV_PCM_RATE_11025|\ SNDRV_PCM_RATE_16000|SNDRV_PCM_RATE_22050|\ @@ -399,7 +399,7 @@ snd_pcm_uframes_t twake; /* do transfer (!poll) wakeup if non-zero */ wait_queue_head_t sleep; /* poll sleep */ wait_queue_head_t tsleep; /* transfer sleep */ - struct fasync_struct *fasync; + struct snd_fasync *fasync; bool stop_operating; /* sync_stop will be called */ struct mutex buffer_mutex; /* protect for buffer changes */ atomic_t buffer_accessing; /* >0: in r/w operation, <0: blocked */ --- linux-5.19.0.orig/include/sound/soc-acpi-intel-match.h +++ linux-5.19.0/include/sound/soc-acpi-intel-match.h @@ -30,6 +30,8 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_ehl_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_jsl_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_machines[]; +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[]; +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cnl_sdw_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_cfl_sdw_machines[]; @@ -37,6 +39,8 @@ extern struct snd_soc_acpi_mach snd_soc_acpi_intel_icl_sdw_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_tgl_sdw_machines[]; extern struct snd_soc_acpi_mach snd_soc_acpi_intel_adl_sdw_machines[]; +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[]; +extern struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[]; /* * generic table used for HDA codec-based platforms, possibly with --- linux-5.19.0.orig/include/sound/sof/info.h +++ linux-5.19.0/include/sound/sof/info.h @@ -36,6 +36,10 @@ SOF_IPC_EXT_USER_ABI_INFO = 4, }; +/* Build u32 number in format MMmmmppp */ +#define SOF_FW_VER(MAJOR, MINOR, PATCH) ((uint32_t)( \ + ((MAJOR) << 24) | ((MINOR) << 12) | (PATCH))) + /* FW version - SOF_IPC_GLB_VERSION */ struct sof_ipc_fw_version { struct sof_ipc_hdr hdr; --- linux-5.19.0.orig/include/trace/events/f2fs.h +++ linux-5.19.0/include/trace/events/f2fs.h @@ -322,7 +322,7 @@ __field(ino_t, ino) __field(loff_t, size) __field(blkcnt_t, blocks) - __field(const char *, name) + __string(name, dentry->d_name.name) ), TP_fast_assign( @@ -330,7 +330,7 @@ __entry->ino = dir->i_ino; __entry->size = dir->i_size; __entry->blocks = dir->i_blocks; - __entry->name = dentry->d_name.name; + __assign_str(name, dentry->d_name.name); ), TP_printk("dev = (%d,%d), dir ino = %lu, i_size = %lld, " @@ -338,7 +338,7 @@ show_dev_ino(__entry), __entry->size, (unsigned long long)__entry->blocks, - __entry->name) + __get_str(name)) ); DEFINE_EVENT(f2fs__inode_exit, f2fs_unlink_exit, @@ -940,25 +940,29 @@ TP_STRUCT__entry( __field(dev_t, dev) __field(ino_t, ino) - __field(struct kiocb *, iocb) + __field(loff_t, ki_pos) + __field(int, ki_flags) + __field(u16, ki_ioprio) __field(unsigned long, len) __field(int, rw) ), TP_fast_assign( - __entry->dev = inode->i_sb->s_dev; - __entry->ino = inode->i_ino; - __entry->iocb = iocb; - __entry->len = len; - __entry->rw = rw; + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ki_pos = iocb->ki_pos; + __entry->ki_flags = iocb->ki_flags; + __entry->ki_ioprio = iocb->ki_ioprio; + __entry->len = len; + __entry->rw = rw; ), TP_printk("dev = (%d,%d), ino = %lu pos = %lld len = %lu ki_flags = %x ki_ioprio = %x rw = %d", show_dev_ino(__entry), - __entry->iocb->ki_pos, + __entry->ki_pos, __entry->len, - __entry->iocb->ki_flags, - __entry->iocb->ki_ioprio, + __entry->ki_flags, + __entry->ki_ioprio, __entry->rw) ); @@ -1407,19 +1411,19 @@ TP_STRUCT__entry( __field(dev_t, dev) __field(int, reason) - __field(char *, msg) + __string(dest_msg, msg) ), TP_fast_assign( __entry->dev = sb->s_dev; __entry->reason = reason; - __entry->msg = msg; + __assign_str(dest_msg, msg); ), TP_printk("dev = (%d,%d), checkpoint for %s, state = %s", show_dev(__entry->dev), show_cpreason(__entry->reason), - __entry->msg) + __get_str(dest_msg)) ); DECLARE_EVENT_CLASS(f2fs_discard, --- linux-5.19.0.orig/include/trace/events/fscache.h +++ linux-5.19.0/include/trace/events/fscache.h @@ -65,6 +65,7 @@ fscache_cookie_put_work, fscache_cookie_see_active, fscache_cookie_see_lru_discard, + fscache_cookie_see_lru_discard_clear, fscache_cookie_see_lru_do_one, fscache_cookie_see_relinquish, fscache_cookie_see_withdraw, @@ -147,6 +148,7 @@ EM(fscache_cookie_put_work, "PQ work ") \ EM(fscache_cookie_see_active, "- activ") \ EM(fscache_cookie_see_lru_discard, "- x-lru") \ + EM(fscache_cookie_see_lru_discard_clear,"- lrudc") \ EM(fscache_cookie_see_lru_do_one, "- lrudo") \ EM(fscache_cookie_see_relinquish, "- x-rlq") \ EM(fscache_cookie_see_withdraw, "- x-wth") \ --- linux-5.19.0.orig/include/trace/events/ib_mad.h +++ linux-5.19.0/include/trace/events/ib_mad.h @@ -49,7 +49,6 @@ __field(int, retries_left) __field(int, max_retries) __field(int, retry) - __field(u16, pkey) ), TP_fast_assign( @@ -89,7 +88,7 @@ "hdr : base_ver 0x%x class 0x%x class_ver 0x%x " \ "method 0x%x status 0x%x class_specific 0x%x tid 0x%llx " \ "attr_id 0x%x attr_mod 0x%x => dlid 0x%08x sl %d "\ - "pkey 0x%x rpqn 0x%x rqpkey 0x%x", + "rpqn 0x%x rqpkey 0x%x", __entry->dev_index, __entry->port_num, __entry->qp_num, __entry->agent_priv, be64_to_cpu(__entry->wrtid), __entry->retries_left, __entry->max_retries, @@ -100,7 +99,7 @@ be16_to_cpu(__entry->class_specific), be64_to_cpu(__entry->tid), be16_to_cpu(__entry->attr_id), be32_to_cpu(__entry->attr_mod), - be32_to_cpu(__entry->dlid), __entry->sl, __entry->pkey, + be32_to_cpu(__entry->dlid), __entry->sl, __entry->rqpn, __entry->rqkey ) ); @@ -204,7 +203,6 @@ __field(u16, wc_status) __field(u32, slid) __field(u32, dev_index) - __field(u16, pkey) ), TP_fast_assign( @@ -224,9 +222,6 @@ __entry->slid = wc->slid; __entry->src_qp = wc->src_qp; __entry->sl = wc->sl; - ib_query_pkey(qp_info->port_priv->device, - qp_info->port_priv->port_num, - wc->pkey_index, &__entry->pkey); __entry->wc_status = wc->status; ), @@ -234,7 +229,7 @@ "base_ver 0x%02x class 0x%02x class_ver 0x%02x " \ "method 0x%02x status 0x%04x class_specific 0x%04x " \ "tid 0x%016llx attr_id 0x%04x attr_mod 0x%08x " \ - "slid 0x%08x src QP%d, sl %d pkey 0x%04x", + "slid 0x%08x src QP%d, sl %d", __entry->dev_index, __entry->port_num, __entry->qp_num, __entry->wc_status, __entry->length, @@ -244,7 +239,7 @@ be16_to_cpu(__entry->class_specific), be64_to_cpu(__entry->tid), be16_to_cpu(__entry->attr_id), be32_to_cpu(__entry->attr_mod), - __entry->slid, __entry->src_qp, __entry->sl, __entry->pkey + __entry->slid, __entry->src_qp, __entry->sl ) ); --- linux-5.19.0.orig/include/trace/events/io_uring.h +++ linux-5.19.0/include/trace/events/io_uring.h @@ -622,7 +622,7 @@ __entry->ocqe = ocqe; ), - TP_printk("ring %p, user_data 0x%llx, res %d, flags %x, " + TP_printk("ring %p, user_data 0x%llx, res %d, cflags 0x%x, " "overflow_cqe %p", __entry->ctx, __entry->user_data, __entry->res, __entry->cflags, __entry->ocqe) --- linux-5.19.0.orig/include/trace/events/spmi.h +++ linux-5.19.0/include/trace/events/spmi.h @@ -21,15 +21,15 @@ __field ( u8, sid ) __field ( u16, addr ) __field ( u8, len ) - __dynamic_array ( u8, buf, len + 1 ) + __dynamic_array ( u8, buf, len ) ), TP_fast_assign( __entry->opcode = opcode; __entry->sid = sid; __entry->addr = addr; - __entry->len = len + 1; - memcpy(__get_dynamic_array(buf), buf, len + 1); + __entry->len = len; + memcpy(__get_dynamic_array(buf), buf, len); ), TP_printk("opc=%d sid=%02d addr=0x%04x len=%d buf=0x[%*phD]", @@ -92,7 +92,7 @@ __field ( u16, addr ) __field ( int, ret ) __field ( u8, len ) - __dynamic_array ( u8, buf, len + 1 ) + __dynamic_array ( u8, buf, len ) ), TP_fast_assign( @@ -100,8 +100,8 @@ __entry->sid = sid; __entry->addr = addr; __entry->ret = ret; - __entry->len = len + 1; - memcpy(__get_dynamic_array(buf), buf, len + 1); + __entry->len = len; + memcpy(__get_dynamic_array(buf), buf, len); ), TP_printk("opc=%d sid=%02d addr=0x%04x ret=%d len=%02d buf=0x[%*phD]", --- linux-5.19.0.orig/include/trace/stages/stage1_struct_define.h +++ linux-5.19.0/include/trace/stages/stage1_struct_define.h @@ -26,6 +26,9 @@ #undef __string_len #define __string_len(item, src, len) __dynamic_array(char, item, -1) +#undef __vstring +#define __vstring(item, fmt, ap) __dynamic_array(char, item, -1) + #undef __bitmask #define __bitmask(item, nr_bits) __dynamic_array(char, item, -1) --- linux-5.19.0.orig/include/trace/stages/stage2_data_offsets.h +++ linux-5.19.0/include/trace/stages/stage2_data_offsets.h @@ -32,6 +32,9 @@ #undef __string_len #define __string_len(item, src, len) __dynamic_array(char, item, -1) +#undef __vstring +#define __vstring(item, fmt, ap) __dynamic_array(char, item, -1) + #undef __bitmask #define __bitmask(item, nr_bits) __dynamic_array(unsigned long, item, -1) --- linux-5.19.0.orig/include/trace/stages/stage4_event_fields.h +++ linux-5.19.0/include/trace/stages/stage4_event_fields.h @@ -2,16 +2,18 @@ /* Stage 4 definitions for creating trace events */ +#define ALIGN_STRUCTFIELD(type) ((int)(offsetof(struct {char a; type b;}, b))) + #undef __field_ext #define __field_ext(_type, _item, _filter_type) { \ .type = #_type, .name = #_item, \ - .size = sizeof(_type), .align = __alignof__(_type), \ + .size = sizeof(_type), .align = ALIGN_STRUCTFIELD(_type), \ .is_signed = is_signed_type(_type), .filter_type = _filter_type }, #undef __field_struct_ext #define __field_struct_ext(_type, _item, _filter_type) { \ .type = #_type, .name = #_item, \ - .size = sizeof(_type), .align = __alignof__(_type), \ + .size = sizeof(_type), .align = ALIGN_STRUCTFIELD(_type), \ 0, .filter_type = _filter_type }, #undef __field @@ -23,7 +25,7 @@ #undef __array #define __array(_type, _item, _len) { \ .type = #_type"["__stringify(_len)"]", .name = #_item, \ - .size = sizeof(_type[_len]), .align = __alignof__(_type), \ + .size = sizeof(_type[_len]), .align = ALIGN_STRUCTFIELD(_type), \ .is_signed = is_signed_type(_type), .filter_type = FILTER_OTHER }, #undef __dynamic_array @@ -38,6 +40,9 @@ #undef __string_len #define __string_len(item, src, len) __dynamic_array(char, item, -1) +#undef __vstring +#define __vstring(item, fmt, ap) __dynamic_array(char, item, -1) + #undef __bitmask #define __bitmask(item, nr_bits) __dynamic_array(unsigned long, item, -1) --- linux-5.19.0.orig/include/trace/stages/stage5_get_offsets.h +++ linux-5.19.0/include/trace/stages/stage5_get_offsets.h @@ -39,6 +39,10 @@ #undef __string_len #define __string_len(item, src, len) __dynamic_array(char, item, (len) + 1) +#undef __vstring +#define __vstring(item, fmt, ap) __dynamic_array(char, item, \ + __trace_event_vstr_len(fmt, ap)) + #undef __rel_dynamic_array #define __rel_dynamic_array(type, item, len) \ __item_length = (len) * sizeof(type); \ --- linux-5.19.0.orig/include/trace/stages/stage6_event_callback.h +++ linux-5.19.0/include/trace/stages/stage6_event_callback.h @@ -24,6 +24,9 @@ #undef __string_len #define __string_len(item, src, len) __dynamic_array(char, item, -1) +#undef __vstring +#define __vstring(item, fmt, ap) __dynamic_array(char, item, -1) + #undef __assign_str #define __assign_str(dst, src) \ strcpy(__get_str(dst), (src) ? (const char *)(src) : "(null)"); @@ -35,6 +38,15 @@ __get_str(dst)[len] = '\0'; \ } while(0) +#undef __assign_vstr +#define __assign_vstr(dst, fmt, va) \ + do { \ + va_list __cp_va; \ + va_copy(__cp_va, *(va)); \ + vsnprintf(__get_str(dst), TRACE_EVENT_STR_MAX, fmt, __cp_va); \ + va_end(__cp_va); \ + } while (0) + #undef __bitmask #define __bitmask(item, nr_bits) __dynamic_array(unsigned long, item, -1) --- linux-5.19.0.orig/include/uapi/asm-generic/fcntl.h +++ linux-5.19.0/include/uapi/asm-generic/fcntl.h @@ -116,13 +116,11 @@ #define F_GETSIG 11 /* for sockets. */ #endif -#if __BITS_PER_LONG == 32 || defined(__KERNEL__) #ifndef F_GETLK64 #define F_GETLK64 12 /* using 'struct flock64' */ #define F_SETLK64 13 #define F_SETLKW64 14 #endif -#endif /* __BITS_PER_LONG == 32 || defined(__KERNEL__) */ #ifndef F_SETOWN_EX #define F_SETOWN_EX 15 --- linux-5.19.0.orig/include/uapi/linux/atm_zatm.h +++ linux-5.19.0/include/uapi/linux/atm_zatm.h @@ -0,0 +1,47 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* atm_zatm.h - Driver-specific declarations of the ZATM driver (for use by + driver-specific utilities) */ + +/* Written 1995-1999 by Werner Almesberger, EPFL LRC/ICA */ + + +#ifndef LINUX_ATM_ZATM_H +#define LINUX_ATM_ZATM_H + +/* + * Note: non-kernel programs including this file must also include + * sys/types.h for struct timeval + */ + +#include +#include + +#define ZATM_GETPOOL _IOW('a',ATMIOC_SARPRV+1,struct atmif_sioc) + /* get pool statistics */ +#define ZATM_GETPOOLZ _IOW('a',ATMIOC_SARPRV+2,struct atmif_sioc) + /* get statistics and zero */ +#define ZATM_SETPOOL _IOW('a',ATMIOC_SARPRV+3,struct atmif_sioc) + /* set pool parameters */ + +struct zatm_pool_info { + int ref_count; /* free buffer pool usage counters */ + int low_water,high_water; /* refill parameters */ + int rqa_count,rqu_count; /* queue condition counters */ + int offset,next_off; /* alignment optimizations: offset */ + int next_cnt,next_thres; /* repetition counter and threshold */ +}; + +struct zatm_pool_req { + int pool_num; /* pool number */ + struct zatm_pool_info info; /* actual information */ +}; + +#define ZATM_OAM_POOL 0 /* free buffer pool for OAM cells */ +#define ZATM_AAL0_POOL 1 /* free buffer pool for AAL0 cells */ +#define ZATM_AAL5_POOL_BASE 2 /* first AAL5 free buffer pool */ +#define ZATM_LAST_POOL ZATM_AAL5_POOL_BASE+10 /* max. 64 kB */ + +#define ZATM_TIMER_HISTORY_SIZE 16 /* number of timer adjustments to + record; must be 2^n */ + +#endif --- linux-5.19.0.orig/include/uapi/linux/audit.h +++ linux-5.19.0/include/uapi/linux/audit.h @@ -143,6 +143,8 @@ #define AUDIT_MAC_UNLBL_STCDEL 1417 /* NetLabel: del a static label */ #define AUDIT_MAC_CALIPSO_ADD 1418 /* NetLabel: add CALIPSO DOI entry */ #define AUDIT_MAC_CALIPSO_DEL 1419 /* NetLabel: del CALIPSO DOI entry */ +#define AUDIT_MAC_TASK_CONTEXTS 1420 /* Multiple LSM task contexts */ +#define AUDIT_MAC_OBJ_CONTEXTS 1421 /* Multiple LSM objext contexts */ #define AUDIT_FIRST_KERN_ANOM_MSG 1700 #define AUDIT_LAST_KERN_ANOM_MSG 1799 @@ -187,7 +189,7 @@ #define AUDIT_MAX_KEY_LEN 256 #define AUDIT_BITMASK_SIZE 64 #define AUDIT_WORD(nr) ((__u32)((nr)/32)) -#define AUDIT_BIT(nr) (1 << ((nr) - AUDIT_WORD(nr)*32)) +#define AUDIT_BIT(nr) (1U << ((nr) - AUDIT_WORD(nr)*32)) #define AUDIT_SYSCALL_CLASSES 16 #define AUDIT_CLASS_DIR_WRITE 0 --- linux-5.19.0.orig/include/uapi/linux/can/error.h +++ linux-5.19.0/include/uapi/linux/can/error.h @@ -120,6 +120,9 @@ #define CAN_ERR_TRX_CANL_SHORT_TO_GND 0x70 /* 0111 0000 */ #define CAN_ERR_TRX_CANL_SHORT_TO_CANH 0x80 /* 1000 0000 */ -/* controller specific additional information / data[5..7] */ +/* data[5] is reserved (do not use) */ + +/* TX error counter / data[6] */ +/* RX error counter / data[7] */ #endif /* _UAPI_CAN_ERROR_H */ --- linux-5.19.0.orig/include/uapi/linux/capability.h +++ linux-5.19.0/include/uapi/linux/capability.h @@ -426,7 +426,7 @@ */ #define CAP_TO_INDEX(x) ((x) >> 5) /* 1 << 5 == bits in __u32 */ -#define CAP_TO_MASK(x) (1 << ((x) & 31)) /* mask for indexed __u32 */ +#define CAP_TO_MASK(x) (1U << ((x) & 31)) /* mask for indexed __u32 */ #endif /* _UAPI_LINUX_CAPABILITY_H */ --- linux-5.19.0.orig/include/uapi/linux/dm-ioctl.h +++ linux-5.19.0/include/uapi/linux/dm-ioctl.h @@ -286,9 +286,9 @@ #define DM_DEV_SET_GEOMETRY _IOWR(DM_IOCTL, DM_DEV_SET_GEOMETRY_CMD, struct dm_ioctl) #define DM_VERSION_MAJOR 4 -#define DM_VERSION_MINOR 46 +#define DM_VERSION_MINOR 47 #define DM_VERSION_PATCHLEVEL 0 -#define DM_VERSION_EXTRA "-ioctl (2022-02-22)" +#define DM_VERSION_EXTRA "-ioctl (2022-07-28)" /* Status bits */ #define DM_READONLY_FLAG (1 << 0) /* In/Out */ --- linux-5.19.0.orig/include/uapi/linux/f2fs.h +++ linux-5.19.0/include/uapi/linux/f2fs.h @@ -13,7 +13,7 @@ #define F2FS_IOC_COMMIT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 2) #define F2FS_IOC_START_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 3) #define F2FS_IOC_RELEASE_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 4) -#define F2FS_IOC_ABORT_VOLATILE_WRITE _IO(F2FS_IOCTL_MAGIC, 5) +#define F2FS_IOC_ABORT_ATOMIC_WRITE _IO(F2FS_IOCTL_MAGIC, 5) #define F2FS_IOC_GARBAGE_COLLECT _IOW(F2FS_IOCTL_MAGIC, 6, __u32) #define F2FS_IOC_WRITE_CHECKPOINT _IO(F2FS_IOCTL_MAGIC, 7) #define F2FS_IOC_DEFRAGMENT _IOWR(F2FS_IOCTL_MAGIC, 8, \ --- linux-5.19.0.orig/include/uapi/linux/idxd.h +++ linux-5.19.0/include/uapi/linux/idxd.h @@ -29,6 +29,7 @@ IDXD_SCMD_WQ_NO_SIZE = 0x800e0000, IDXD_SCMD_WQ_NO_PRIV = 0x800f0000, IDXD_SCMD_WQ_IRQ_ERR = 0x80100000, + IDXD_SCMD_WQ_USER_NO_IOMMU = 0x80110000, }; #define IDXD_SCMD_SOFTERR_MASK 0x80000000 @@ -294,7 +295,7 @@ }; uint32_t delta_rec_size; - uint32_t crc_val; + uint64_t crc_val; /* DIF check & strip */ struct { --- linux-5.19.0.orig/include/uapi/linux/if_link.h +++ linux-5.19.0/include/uapi/linux/if_link.h @@ -816,6 +816,7 @@ IFLA_VXLAN_TTL_INHERIT, IFLA_VXLAN_DF, IFLA_VXLAN_VNIFILTER, /* only applicable with COLLECT_METADATA mode */ + IFLA_VXLAN_FAN_MAP = 33, __IFLA_VXLAN_MAX }; #define IFLA_VXLAN_MAX (__IFLA_VXLAN_MAX - 1) --- linux-5.19.0.orig/include/uapi/linux/if_tunnel.h +++ linux-5.19.0/include/uapi/linux/if_tunnel.h @@ -77,6 +77,10 @@ IFLA_IPTUN_ENCAP_DPORT, IFLA_IPTUN_COLLECT_METADATA, IFLA_IPTUN_FWMARK, + + __IFLA_IPTUN_VENDOR_BREAK, /* Ensure new entries do not hit the below. */ + IFLA_IPTUN_FAN_MAP = 33, + __IFLA_IPTUN_MAX, }; #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) @@ -182,4 +186,19 @@ (TUNNEL_GENEVE_OPT | TUNNEL_VXLAN_OPT | TUNNEL_ERSPAN_OPT | \ TUNNEL_GTP_OPT) +enum { + IFLA_FAN_UNSPEC, + IFLA_FAN_MAPPING, + __IFLA_FAN_MAX, +}; + +#define IFLA_FAN_MAX (__IFLA_FAN_MAX - 1) + +struct ifla_fan_map { + __be32 underlay; + __be32 overlay; + __u16 underlay_prefix; + __u16 overlay_prefix; +}; + #endif /* _UAPI_IF_TUNNEL_H_ */ --- linux-5.19.0.orig/include/uapi/linux/ip.h +++ linux-5.19.0/include/uapi/linux/ip.h @@ -100,8 +100,10 @@ __u8 ttl; __u8 protocol; __sum16 check; - __be32 saddr; - __be32 daddr; + __struct_group(/* no tag */, addrs, /* no attrs */, + __be32 saddr; + __be32 daddr; + ); /*The options start here. */ }; --- linux-5.19.0.orig/include/uapi/linux/ipv6.h +++ linux-5.19.0/include/uapi/linux/ipv6.h @@ -130,8 +130,10 @@ __u8 nexthdr; __u8 hop_limit; - struct in6_addr saddr; - struct in6_addr daddr; + __struct_group(/* no tag */, addrs, /* no attrs */, + struct in6_addr saddr; + struct in6_addr daddr; + ); }; --- linux-5.19.0.orig/include/uapi/linux/kvm.h +++ linux-5.19.0/include/uapi/linux/kvm.h @@ -1157,6 +1157,8 @@ #define KVM_CAP_VM_TSC_CONTROL 214 #define KVM_CAP_SYSTEM_EVENT_DATA 215 #define KVM_CAP_ARM_SYSTEM_SUSPEND 216 +#define KVM_CAP_S390_PROTECTED_DUMP 217 +#define KVM_CAP_S390_ZPCI_OP 221 #ifdef KVM_CAP_IRQ_ROUTING @@ -1660,6 +1662,55 @@ __u64 tweak; }; +enum pv_cmd_dmp_id { + KVM_PV_DUMP_INIT, + KVM_PV_DUMP_CONFIG_STOR_STATE, + KVM_PV_DUMP_COMPLETE, + KVM_PV_DUMP_CPU, +}; + +struct kvm_s390_pv_dmp { + __u64 subcmd; + __u64 buff_addr; + __u64 buff_len; + __u64 gaddr; /* For dump storage state */ + __u64 reserved[4]; +}; + +enum pv_cmd_info_id { + KVM_PV_INFO_VM, + KVM_PV_INFO_DUMP, +}; + +struct kvm_s390_pv_info_dump { + __u64 dump_cpu_buffer_len; + __u64 dump_config_mem_buffer_per_1m; + __u64 dump_config_finalize_len; +}; + +struct kvm_s390_pv_info_vm { + __u64 inst_calls_list[4]; + __u64 max_cpus; + __u64 max_guests; + __u64 max_guest_addr; + __u64 feature_indication; +}; + +struct kvm_s390_pv_info_header { + __u32 id; + __u32 len_max; + __u32 len_written; + __u32 reserved; +}; + +struct kvm_s390_pv_info { + struct kvm_s390_pv_info_header header; + union { + struct kvm_s390_pv_info_dump dump; + struct kvm_s390_pv_info_vm vm; + }; +}; + enum pv_cmd_id { KVM_PV_ENABLE, KVM_PV_DISABLE, @@ -1668,6 +1719,8 @@ KVM_PV_VERIFY, KVM_PV_PREP_RESET, KVM_PV_UNSHARE_ALL, + KVM_PV_INFO, + KVM_PV_DUMP, }; struct kvm_pv_cmd { @@ -2119,4 +2172,37 @@ /* Available with KVM_CAP_XSAVE2 */ #define KVM_GET_XSAVE2 _IOR(KVMIO, 0xcf, struct kvm_xsave) +/* Available with KVM_CAP_S390_ZPCI_OP */ +#define KVM_S390_ZPCI_OP _IOW(KVMIO, 0xd1, struct kvm_s390_zpci_op) + +struct kvm_s390_zpci_op { + /* in */ + __u32 fh; /* target device */ + __u8 op; /* operation to perform */ + __u8 pad[3]; + union { + /* for KVM_S390_ZPCIOP_REG_AEN */ + struct { + __u64 ibv; /* Guest addr of interrupt bit vector */ + __u64 sb; /* Guest addr of summary bit */ + __u32 flags; + __u32 noi; /* Number of interrupts */ + __u8 isc; /* Guest interrupt subclass */ + __u8 sbo; /* Offset of guest summary bit vector */ + __u16 pad; + } reg_aen; + __u64 reserved[8]; + } u; +}; + +/* types for kvm_s390_zpci_op->op */ +#define KVM_S390_ZPCIOP_REG_AEN 0 +#define KVM_S390_ZPCIOP_DEREG_AEN 1 + +/* flags for kvm_s390_zpci_op->u.reg_aen.flags */ +#define KVM_S390_ZPCIOP_REGAEN_HOST (1 << 0) + +/* Available with KVM_CAP_S390_PROTECTED_DUMP */ +#define KVM_S390_PV_CPU_COMMAND _IOWR(KVMIO, 0xd0, struct kvm_pv_cmd) + #endif /* __LINUX_KVM_H */ --- linux-5.19.0.orig/include/uapi/linux/magic.h +++ linux-5.19.0/include/uapi/linux/magic.h @@ -106,4 +106,6 @@ #define PPC_CMM_MAGIC 0xc7571590 #define SECRETMEM_MAGIC 0x5345434d /* "SECM" */ +#define SHIFTFS_MAGIC 0x6a656a62 + #endif /* __LINUX_MAGIC_H__ */ --- linux-5.19.0.orig/include/uapi/linux/netfilter/xt_IDLETIMER.h +++ linux-5.19.0/include/uapi/linux/netfilter/xt_IDLETIMER.h @@ -1,6 +1,5 @@ +/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */ /* - * linux/include/linux/netfilter/xt_IDLETIMER.h - * * Header file for Xtables timer target module. * * Copyright (C) 2004, 2010 Nokia Corporation @@ -10,20 +9,6 @@ * by Luciano Coelho * * Contact: Luciano Coelho - * - * 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. - * - * 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 */ #ifndef _XT_IDLETIMER_H --- linux-5.19.0.orig/include/uapi/linux/nl80211.h +++ linux-5.19.0/include/uapi/linux/nl80211.h @@ -324,6 +324,17 @@ */ /** + * DOC: Multi-Link Operation + * + * In Multi-Link Operation, a connection between to MLDs utilizes multiple + * links. To use this in nl80211, various commands and responses now need + * to or will include the new %NL80211_ATTR_MLO_LINKS attribute. + * Additionally, various commands that need to operate on a specific link + * now need to be given the %NL80211_ATTR_MLO_LINK_ID attribute, e.g. to + * use %NL80211_CMD_START_AP or similar functions. + */ + +/** * enum nl80211_commands - supported nl80211 commands * * @NL80211_CMD_UNSPEC: unspecified command to catch errors @@ -1237,6 +1248,12 @@ * to describe the BSSID address of the AP and %NL80211_ATTR_TIMEOUT to * specify the timeout value. * + * @NL80211_CMD_ADD_LINK: Add a new link to an interface. The + * %NL80211_ATTR_MLO_LINK_ID attribute is used for the new link. + * @NL80211_CMD_REMOVE_LINK: Remove a link from an interface. This may come + * without %NL80211_ATTR_MLO_LINK_ID as an easy way to remove all links + * in preparation for e.g. roaming to a regular (non-MLO) AP. + * * @NL80211_CMD_MAX: highest used command number * @__NL80211_CMD_AFTER_LAST: internal use */ @@ -1481,6 +1498,9 @@ NL80211_CMD_ASSOC_COMEBACK, + NL80211_CMD_ADD_LINK, + NL80211_CMD_REMOVE_LINK, + /* add new commands above here */ /* used to define NL80211_CMD_MAX below */ @@ -2663,6 +2683,11 @@ * association request when used with NL80211_CMD_NEW_STATION). Can be set * only if %NL80211_STA_FLAG_WME is set. * + * @NL80211_ATTR_MLO_LINK_ID: A (u8) link ID for use with MLO, to be used with + * various commands that need a link ID to operate. + * @NL80211_ATTR_MLO_LINKS: A nested array of links, each containing some + * per-link information and a link ID. + * * @NUM_NL80211_ATTR: total number of nl80211_attrs available * @NL80211_ATTR_MAX: highest attribute number currently defined * @__NL80211_ATTR_AFTER_LAST: internal use @@ -3177,6 +3202,9 @@ NL80211_ATTR_DISABLE_EHT, + NL80211_ATTR_MLO_LINKS, + NL80211_ATTR_MLO_LINK_ID, + /* add attributes here, update the policy in nl80211.c */ __NL80211_ATTR_AFTER_LAST, --- linux-5.19.0.orig/include/uapi/linux/rfkill.h +++ linux-5.19.0/include/uapi/linux/rfkill.h @@ -159,16 +159,8 @@ * old behaviour for all userspace, unless it explicitly opts in to the * rules outlined here by using the new &struct rfkill_event_ext. * - * Additionally, some other userspace (bluez, g-s-d) was reading with a - * large size but as streaming reads rather than message-based, or with - * too strict checks for the returned size. So eventually, we completely - * reverted this, and extended messages need to be opted in to by using - * an ioctl: - * - * ioctl(fd, RFKILL_IOCTL_MAX_SIZE, sizeof(struct rfkill_event_ext)); - * - * Userspace using &struct rfkill_event_ext and the ioctl must adhere to - * the following rules: + * Userspace using &struct rfkill_event_ext must adhere to the following + * rules * * 1. accept short writes, optionally using them to detect that it's * running on an older kernel; @@ -183,8 +175,6 @@ #define RFKILL_IOC_MAGIC 'R' #define RFKILL_IOC_NOINPUT 1 #define RFKILL_IOCTL_NOINPUT _IO(RFKILL_IOC_MAGIC, RFKILL_IOC_NOINPUT) -#define RFKILL_IOC_MAX_SIZE 2 -#define RFKILL_IOCTL_MAX_SIZE _IOW(RFKILL_IOC_MAGIC, RFKILL_IOC_MAX_SIZE, __u32) /* and that's all userspace gets */ --- linux-5.19.0.orig/include/uapi/linux/swab.h +++ linux-5.19.0/include/uapi/linux/swab.h @@ -3,7 +3,7 @@ #define _UAPI_LINUX_SWAB_H #include -#include +#include #include #include --- linux-5.19.0.orig/include/uapi/linux/sysctl.h +++ linux-5.19.0/include/uapi/linux/sysctl.h @@ -153,7 +153,7 @@ KERN_NMI_WATCHDOG=75, /* int: enable/disable nmi watchdog */ KERN_PANIC_ON_NMI=76, /* int: whether we will panic on an unrecovered */ KERN_PANIC_ON_WARN=77, /* int: call panic() in WARN() functions */ - KERN_PANIC_PRINT=78, /* ulong: bitmask to print system info on panic */ + KERN_PANIC_PRINT=78, /* unsigned long: bitmask to print system info on panic */ }; --- linux-5.19.0.orig/include/uapi/linux/tdx-guest.h +++ linux-5.19.0/include/uapi/linux/tdx-guest.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Userspace interface for TDX guest driver + * + * Copyright (C) 2022 Intel Corporation + */ + +#ifndef _UAPI_LINUX_TDX_GUEST_H_ +#define _UAPI_LINUX_TDX_GUEST_H_ + +#include +#include + +/* Length of the REPORTDATA used in TDG.MR.REPORT TDCALL */ +#define TDX_REPORTDATA_LEN 64 + +/* Length of TDREPORT used in TDG.MR.REPORT TDCALL */ +#define TDX_REPORT_LEN 1024 + +/** + * struct tdx_report_req - Request struct for TDX_CMD_GET_REPORT0 IOCTL. + * + * @reportdata: User buffer with REPORTDATA to be included into TDREPORT. + * Typically it can be some nonce provided by attestation + * service, so the generated TDREPORT can be uniquely verified. + * @tdreport: User buffer to store TDREPORT output from TDCALL[TDG.MR.REPORT]. + */ +struct tdx_report_req { + __u8 reportdata[TDX_REPORTDATA_LEN]; + __u8 tdreport[TDX_REPORT_LEN]; +}; + +/* + * TDX_CMD_GET_REPORT0 - Get TDREPORT0 (a.k.a. TDREPORT subtype 0) using + * TDCALL[TDG.MR.REPORT] + * + * Return 0 on success, -EIO on TDCALL execution failure, and + * standard errno on other general error cases. + */ +#define TDX_CMD_GET_REPORT0 _IOWR('T', 1, struct tdx_report_req) + +#endif /* _UAPI_LINUX_TDX_GUEST_H_ */ --- linux-5.19.0.orig/include/uapi/linux/tty_flags.h +++ linux-5.19.0/include/uapi/linux/tty_flags.h @@ -32,6 +32,7 @@ #define ASYNCB_AUTOPROBE 15 /* [x] Port was autoprobed by PCI/PNP code */ #define ASYNCB_MAGIC_MULTIPLIER 16 /* Use special CLK or divisor */ #define ASYNCB_LAST_USER 16 +#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */ /* * Internal flags used only by kernel (read-only) @@ -40,7 +41,6 @@ * TTY_PORT_ flags in the iflags field (and not userspace-visible) */ #ifndef __KERNEL__ -#define ASYNCB_INITIALIZED 31 /* Serial port was initialized */ #define ASYNCB_SUSPENDED 30 /* Serial port is suspended */ #define ASYNCB_NORMAL_ACTIVE 29 /* Normal device is active */ #define ASYNCB_BOOT_AUTOCONF 28 /* Autoconfigure port on bootup */ --- linux-5.19.0.orig/include/uapi/linux/vfio_zdev.h +++ linux-5.19.0/include/uapi/linux/vfio_zdev.h @@ -29,6 +29,9 @@ __u16 fmb_length; /* Measurement Block Length (in bytes) */ __u8 pft; /* PCI Function Type */ __u8 gid; /* PCI function group ID */ + /* End of version 1 */ + __u32 fh; /* PCI function handle */ + /* End of version 2 */ }; /** @@ -47,6 +50,10 @@ __u16 noi; /* Maximum number of MSIs */ __u16 maxstbl; /* Maximum Store Block Length */ __u8 version; /* Supported PCI Version */ + /* End of version 1 */ + __u8 reserved; + __u16 imaxstbl; /* Maximum Interpreted Store Block Length */ + /* End of version 2 */ }; /** --- linux-5.19.0.orig/include/uapi/linux/videodev2.h +++ linux-5.19.0/include/uapi/linux/videodev2.h @@ -1575,7 +1575,8 @@ ((bt)->width + V4L2_DV_BT_BLANKING_WIDTH(bt)) #define V4L2_DV_BT_BLANKING_HEIGHT(bt) \ ((bt)->vfrontporch + (bt)->vsync + (bt)->vbackporch + \ - (bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) + ((bt)->interlaced ? \ + ((bt)->il_vfrontporch + (bt)->il_vsync + (bt)->il_vbackporch) : 0)) #define V4L2_DV_BT_FRAME_HEIGHT(bt) \ ((bt)->height + V4L2_DV_BT_BLANKING_HEIGHT(bt)) --- linux-5.19.0.orig/include/uapi/linux/xfrm.h +++ linux-5.19.0/include/uapi/linux/xfrm.h @@ -296,7 +296,7 @@ XFRMA_ETIMER_THRESH, XFRMA_SRCADDR, /* xfrm_address_t */ XFRMA_COADDR, /* xfrm_address_t */ - XFRMA_LASTUSED, /* unsigned long */ + XFRMA_LASTUSED, /* __u64 */ XFRMA_POLICY_TYPE, /* struct xfrm_userpolicy_type */ XFRMA_MIGRATE, XFRMA_ALG_AEAD, /* struct xfrm_algo_aead */ --- linux-5.19.0.orig/include/uapi/rdma/hns-abi.h +++ linux-5.19.0/include/uapi/rdma/hns-abi.h @@ -85,11 +85,26 @@ __aligned_u64 dwqe_mmap_key; }; +enum { + HNS_ROCE_EXSGE_FLAGS = 1 << 0, +}; + +enum { + HNS_ROCE_RSP_EXSGE_FLAGS = 1 << 0, +}; + struct hns_roce_ib_alloc_ucontext_resp { __u32 qp_tab_size; __u32 cqe_size; __u32 srq_tab_size; __u32 reserved; + __u32 config; + __u32 max_inline_data; +}; + +struct hns_roce_ib_alloc_ucontext { + __u32 config; + __u32 reserved; }; struct hns_roce_ib_alloc_pd_resp { --- linux-5.19.0.orig/include/uapi/rdma/mlx5-abi.h +++ linux-5.19.0/include/uapi/rdma/mlx5-abi.h @@ -104,6 +104,7 @@ MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_ECE = 1UL << 2, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_SQD2RTS = 1UL << 3, MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_REAL_TIME_TS = 1UL << 4, + MLX5_IB_ALLOC_UCONTEXT_RESP_MASK_MKEY_UPDATE_TAG = 1UL << 5, }; enum mlx5_user_cmds_supp_uhw { --- linux-5.19.0.orig/include/uapi/sound/asequencer.h +++ linux-5.19.0/include/uapi/sound/asequencer.h @@ -344,10 +344,10 @@ #define KERNEL_CLIENT ((__force snd_seq_client_type_t) 2) /* event filter flags */ -#define SNDRV_SEQ_FILTER_BROADCAST (1<<0) /* accept broadcast messages */ -#define SNDRV_SEQ_FILTER_MULTICAST (1<<1) /* accept multicast messages */ -#define SNDRV_SEQ_FILTER_BOUNCE (1<<2) /* accept bounce event in error */ -#define SNDRV_SEQ_FILTER_USE_EVENT (1<<31) /* use event filter */ +#define SNDRV_SEQ_FILTER_BROADCAST (1U<<0) /* accept broadcast messages */ +#define SNDRV_SEQ_FILTER_MULTICAST (1U<<1) /* accept multicast messages */ +#define SNDRV_SEQ_FILTER_BOUNCE (1U<<2) /* accept bounce event in error */ +#define SNDRV_SEQ_FILTER_USE_EVENT (1U<<31) /* use event filter */ struct snd_seq_client_info { int client; /* client number to inquire */ --- linux-5.19.0.orig/include/ufs/ufshcd.h +++ linux-5.19.0/include/ufs/ufshcd.h @@ -577,6 +577,18 @@ * support physical host configuration. */ UFSHCD_QUIRK_SKIP_PH_CONFIGURATION = 1 << 16, + + /* + * This quirk needs to be enabled if the host controller has + * 64-bit addressing supported capability but it doesn't work. + */ + UFSHCD_QUIRK_BROKEN_64BIT_ADDRESS = 1 << 17, + + /* + * This quirk needs to be enabled if the host controller has + * auto-hibernate capability but it's FASTAUTO only. + */ + UFSHCD_QUIRK_HIBERN_FASTAUTO = 1 << 18, }; enum ufshcd_caps { --- linux-5.19.0.orig/include/ufs/ufshci.h +++ linux-5.19.0/include/ufs/ufshci.h @@ -135,11 +135,7 @@ #define UFSHCD_UIC_MASK (UIC_COMMAND_COMPL | UFSHCD_UIC_PWR_MASK) -#define UFSHCD_ERROR_MASK (UIC_ERROR |\ - DEVICE_FATAL_ERROR |\ - CONTROLLER_FATAL_ERROR |\ - SYSTEM_BUS_FATAL_ERROR |\ - CRYPTO_ENGINE_FATAL_ERROR) +#define UFSHCD_ERROR_MASK (UIC_ERROR | INT_FATAL_ERRORS) #define INT_FATAL_ERRORS (DEVICE_FATAL_ERROR |\ CONTROLLER_FATAL_ERROR |\ --- linux-5.19.0.orig/include/xen/xen-ops.h +++ linux-5.19.0/include/xen/xen-ops.h @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -217,6 +218,7 @@ #ifdef CONFIG_XEN_GRANT_DMA_OPS void xen_grant_setup_dma_ops(struct device *dev); bool xen_is_grant_dma_device(struct device *dev); +bool xen_virtio_mem_acc(struct virtio_device *dev); #else static inline void xen_grant_setup_dma_ops(struct device *dev) { @@ -225,6 +227,13 @@ { return false; } + +struct virtio_device; + +static inline bool xen_virtio_mem_acc(struct virtio_device *dev) +{ + return false; +} #endif /* CONFIG_XEN_GRANT_DMA_OPS */ #endif /* INCLUDE_XEN_OPS_H */ --- linux-5.19.0.orig/include/xen/xen.h +++ linux-5.19.0/include/xen/xen.h @@ -52,14 +52,6 @@ extern u64 xen_saved_max_mem_size; #endif -#include - -static inline void xen_set_restricted_virtio_memory_access(void) -{ - if (IS_ENABLED(CONFIG_XEN_VIRTIO) && xen_domain()) - platform_set(PLATFORM_VIRTIO_RESTRICTED_MEM_ACCESS); -} - #ifdef CONFIG_XEN_UNPOPULATED_ALLOC int xen_alloc_unpopulated_pages(unsigned int nr_pages, struct page **pages); void xen_free_unpopulated_pages(unsigned int nr_pages, struct page **pages); --- linux-5.19.0.orig/init/Kconfig +++ linux-5.19.0/init/Kconfig @@ -80,7 +80,7 @@ config CC_HAS_ASM_GOTO_TIED_OUTPUT depends on CC_HAS_ASM_GOTO_OUTPUT # Detect buggy gcc and clang, fixed in gcc-11 clang-14. - def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .\n": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null) + def_bool $(success,echo 'int foo(int *x) { asm goto (".long (%l[bar]) - .": "+m"(*x) ::: bar); return *x; bar: return 0; }' | $CC -x c - -c -o /dev/null) config TOOLS_SUPPORT_RELR def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh) @@ -357,6 +357,15 @@ but you may wish to use a different default here to make a minimal system more usable with less configuration. +config VERSION_SIGNATURE + string "Arbitrary version signature" + help + This string will be created in a file, /proc/version_signature. It + is useful in determining arbitrary data about your kernel. For instance, + if you have several kernels of the same version, but need to keep track + of a revision of the same kernel, but not affect it's ability to load + compatible modules, this is the easiest way to do that. + config SYSVIPC bool "System V IPC" help --- linux-5.19.0.orig/init/do_mounts.c +++ linux-5.19.0/init/do_mounts.c @@ -599,6 +599,8 @@ */ void __init prepare_namespace(void) { + int err; + if (root_delay) { printk(KERN_INFO "Waiting %d sec before mounting root device...\n", root_delay); @@ -646,6 +648,13 @@ devtmpfs_mount(); init_mount(".", "/", NULL, MS_MOVE, NULL); init_chroot("."); +#ifdef CONFIG_BLOCK + /* recreate the /dev/root */ + err = create_dev("/dev/root", ROOT_DEV); + + if (err < 0) + pr_emerg("Failed to create /dev/root: %d\n", err); +#endif } static bool is_tmpfs; --- linux-5.19.0.orig/init/main.c +++ linux-5.19.0/init/main.c @@ -99,6 +99,7 @@ #include #include #include +#include #include #include @@ -1445,13 +1446,25 @@ #if defined(CONFIG_STRICT_KERNEL_RWX) || defined(CONFIG_STRICT_MODULE_RWX) bool rodata_enabled __ro_after_init = true; + +#ifndef arch_parse_debug_rodata +static inline bool arch_parse_debug_rodata(char *str) { return false; } +#endif + static int __init set_debug_rodata(char *str) { - if (strtobool(str, &rodata_enabled)) + if (arch_parse_debug_rodata(str)) + return 0; + + if (str && !strcmp(str, "on")) + rodata_enabled = true; + else if (str && !strcmp(str, "off")) + rodata_enabled = false; + else pr_warn("Invalid option string for rodata: '%s'\n", str); - return 1; + return 0; } -__setup("rodata=", set_debug_rodata); +early_param("rodata", set_debug_rodata); #endif #ifdef CONFIG_STRICT_KERNEL_RWX --- linux-5.19.0.orig/init/version.c +++ linux-5.19.0/init/version.c @@ -38,7 +38,11 @@ /* FIXED STRINGS! Don't touch! */ const char linux_banner[] = "Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@" - LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n"; + LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION +#ifdef CONFIG_VERSION_SIGNATURE + " (" CONFIG_VERSION_SIGNATURE ")" +#endif + "\n"; const char linux_proc_banner[] = "%s version %s" --- linux-5.19.0.orig/io_uring/Makefile +++ linux-5.19.0/io_uring/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for io_uring + +obj-$(CONFIG_IO_URING) += io_uring.o +obj-$(CONFIG_IO_WQ) += io-wq.o --- linux-5.19.0.orig/io_uring/io-wq.c +++ linux-5.19.0/io_uring/io-wq.c @@ -0,0 +1,1424 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Basic worker thread pool for io_uring + * + * Copyright (C) 2019 Jens Axboe + * + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "io-wq.h" + +#define WORKER_IDLE_TIMEOUT (5 * HZ) + +enum { + IO_WORKER_F_UP = 1, /* up and active */ + IO_WORKER_F_RUNNING = 2, /* account as running */ + IO_WORKER_F_FREE = 4, /* worker on free list */ + IO_WORKER_F_BOUND = 8, /* is doing bounded work */ +}; + +enum { + IO_WQ_BIT_EXIT = 0, /* wq exiting */ +}; + +enum { + IO_ACCT_STALLED_BIT = 0, /* stalled on hash */ +}; + +/* + * One for each thread in a wqe pool + */ +struct io_worker { + refcount_t ref; + unsigned flags; + struct hlist_nulls_node nulls_node; + struct list_head all_list; + struct task_struct *task; + struct io_wqe *wqe; + + struct io_wq_work *cur_work; + struct io_wq_work *next_work; + raw_spinlock_t lock; + + struct completion ref_done; + + unsigned long create_state; + struct callback_head create_work; + int create_index; + + union { + struct rcu_head rcu; + struct work_struct work; + }; +}; + +#if BITS_PER_LONG == 64 +#define IO_WQ_HASH_ORDER 6 +#else +#define IO_WQ_HASH_ORDER 5 +#endif + +#define IO_WQ_NR_HASH_BUCKETS (1u << IO_WQ_HASH_ORDER) + +struct io_wqe_acct { + unsigned nr_workers; + unsigned max_workers; + int index; + atomic_t nr_running; + raw_spinlock_t lock; + struct io_wq_work_list work_list; + unsigned long flags; +}; + +enum { + IO_WQ_ACCT_BOUND, + IO_WQ_ACCT_UNBOUND, + IO_WQ_ACCT_NR, +}; + +/* + * Per-node worker thread pool + */ +struct io_wqe { + raw_spinlock_t lock; + struct io_wqe_acct acct[IO_WQ_ACCT_NR]; + + int node; + + struct hlist_nulls_head free_list; + struct list_head all_list; + + struct wait_queue_entry wait; + + struct io_wq *wq; + struct io_wq_work *hash_tail[IO_WQ_NR_HASH_BUCKETS]; + + cpumask_var_t cpu_mask; +}; + +/* + * Per io_wq state + */ +struct io_wq { + unsigned long state; + + free_work_fn *free_work; + io_wq_work_fn *do_work; + + struct io_wq_hash *hash; + + atomic_t worker_refs; + struct completion worker_done; + + struct hlist_node cpuhp_node; + + struct task_struct *task; + + struct io_wqe *wqes[]; +}; + +static enum cpuhp_state io_wq_online; + +struct io_cb_cancel_data { + work_cancel_fn *fn; + void *data; + int nr_running; + int nr_pending; + bool cancel_all; +}; + +static bool create_io_worker(struct io_wq *wq, struct io_wqe *wqe, int index); +static void io_wqe_dec_running(struct io_worker *worker); +static bool io_acct_cancel_pending_work(struct io_wqe *wqe, + struct io_wqe_acct *acct, + struct io_cb_cancel_data *match); +static void create_worker_cb(struct callback_head *cb); +static void io_wq_cancel_tw_create(struct io_wq *wq); + +static bool io_worker_get(struct io_worker *worker) +{ + return refcount_inc_not_zero(&worker->ref); +} + +static void io_worker_release(struct io_worker *worker) +{ + if (refcount_dec_and_test(&worker->ref)) + complete(&worker->ref_done); +} + +static inline struct io_wqe_acct *io_get_acct(struct io_wqe *wqe, bool bound) +{ + return &wqe->acct[bound ? IO_WQ_ACCT_BOUND : IO_WQ_ACCT_UNBOUND]; +} + +static inline struct io_wqe_acct *io_work_get_acct(struct io_wqe *wqe, + struct io_wq_work *work) +{ + return io_get_acct(wqe, !(work->flags & IO_WQ_WORK_UNBOUND)); +} + +static inline struct io_wqe_acct *io_wqe_get_acct(struct io_worker *worker) +{ + return io_get_acct(worker->wqe, worker->flags & IO_WORKER_F_BOUND); +} + +static void io_worker_ref_put(struct io_wq *wq) +{ + if (atomic_dec_and_test(&wq->worker_refs)) + complete(&wq->worker_done); +} + +static void io_worker_cancel_cb(struct io_worker *worker) +{ + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + struct io_wqe *wqe = worker->wqe; + struct io_wq *wq = wqe->wq; + + atomic_dec(&acct->nr_running); + raw_spin_lock(&worker->wqe->lock); + acct->nr_workers--; + raw_spin_unlock(&worker->wqe->lock); + io_worker_ref_put(wq); + clear_bit_unlock(0, &worker->create_state); + io_worker_release(worker); +} + +static bool io_task_worker_match(struct callback_head *cb, void *data) +{ + struct io_worker *worker; + + if (cb->func != create_worker_cb) + return false; + worker = container_of(cb, struct io_worker, create_work); + return worker == data; +} + +static void io_worker_exit(struct io_worker *worker) +{ + struct io_wqe *wqe = worker->wqe; + struct io_wq *wq = wqe->wq; + + while (1) { + struct callback_head *cb = task_work_cancel_match(wq->task, + io_task_worker_match, worker); + + if (!cb) + break; + io_worker_cancel_cb(worker); + } + + io_worker_release(worker); + wait_for_completion(&worker->ref_done); + + raw_spin_lock(&wqe->lock); + if (worker->flags & IO_WORKER_F_FREE) + hlist_nulls_del_rcu(&worker->nulls_node); + list_del_rcu(&worker->all_list); + raw_spin_unlock(&wqe->lock); + io_wqe_dec_running(worker); + worker->flags = 0; + preempt_disable(); + current->flags &= ~PF_IO_WORKER; + preempt_enable(); + + kfree_rcu(worker, rcu); + io_worker_ref_put(wqe->wq); + do_exit(0); +} + +static inline bool io_acct_run_queue(struct io_wqe_acct *acct) +{ + bool ret = false; + + raw_spin_lock(&acct->lock); + if (!wq_list_empty(&acct->work_list) && + !test_bit(IO_ACCT_STALLED_BIT, &acct->flags)) + ret = true; + raw_spin_unlock(&acct->lock); + + return ret; +} + +/* + * Check head of free list for an available worker. If one isn't available, + * caller must create one. + */ +static bool io_wqe_activate_free_worker(struct io_wqe *wqe, + struct io_wqe_acct *acct) + __must_hold(RCU) +{ + struct hlist_nulls_node *n; + struct io_worker *worker; + + /* + * Iterate free_list and see if we can find an idle worker to + * activate. If a given worker is on the free_list but in the process + * of exiting, keep trying. + */ + hlist_nulls_for_each_entry_rcu(worker, n, &wqe->free_list, nulls_node) { + if (!io_worker_get(worker)) + continue; + if (io_wqe_get_acct(worker) != acct) { + io_worker_release(worker); + continue; + } + if (wake_up_process(worker->task)) { + io_worker_release(worker); + return true; + } + io_worker_release(worker); + } + + return false; +} + +/* + * We need a worker. If we find a free one, we're good. If not, and we're + * below the max number of workers, create one. + */ +static bool io_wqe_create_worker(struct io_wqe *wqe, struct io_wqe_acct *acct) +{ + /* + * Most likely an attempt to queue unbounded work on an io_wq that + * wasn't setup with any unbounded workers. + */ + if (unlikely(!acct->max_workers)) + pr_warn_once("io-wq is not configured for unbound workers"); + + raw_spin_lock(&wqe->lock); + if (acct->nr_workers >= acct->max_workers) { + raw_spin_unlock(&wqe->lock); + return true; + } + acct->nr_workers++; + raw_spin_unlock(&wqe->lock); + atomic_inc(&acct->nr_running); + atomic_inc(&wqe->wq->worker_refs); + return create_io_worker(wqe->wq, wqe, acct->index); +} + +static void io_wqe_inc_running(struct io_worker *worker) +{ + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + + atomic_inc(&acct->nr_running); +} + +static void create_worker_cb(struct callback_head *cb) +{ + struct io_worker *worker; + struct io_wq *wq; + struct io_wqe *wqe; + struct io_wqe_acct *acct; + bool do_create = false; + + worker = container_of(cb, struct io_worker, create_work); + wqe = worker->wqe; + wq = wqe->wq; + acct = &wqe->acct[worker->create_index]; + raw_spin_lock(&wqe->lock); + if (acct->nr_workers < acct->max_workers) { + acct->nr_workers++; + do_create = true; + } + raw_spin_unlock(&wqe->lock); + if (do_create) { + create_io_worker(wq, wqe, worker->create_index); + } else { + atomic_dec(&acct->nr_running); + io_worker_ref_put(wq); + } + clear_bit_unlock(0, &worker->create_state); + io_worker_release(worker); +} + +static bool io_queue_worker_create(struct io_worker *worker, + struct io_wqe_acct *acct, + task_work_func_t func) +{ + struct io_wqe *wqe = worker->wqe; + struct io_wq *wq = wqe->wq; + + /* raced with exit, just ignore create call */ + if (test_bit(IO_WQ_BIT_EXIT, &wq->state)) + goto fail; + if (!io_worker_get(worker)) + goto fail; + /* + * create_state manages ownership of create_work/index. We should + * only need one entry per worker, as the worker going to sleep + * will trigger the condition, and waking will clear it once it + * runs the task_work. + */ + if (test_bit(0, &worker->create_state) || + test_and_set_bit_lock(0, &worker->create_state)) + goto fail_release; + + atomic_inc(&wq->worker_refs); + init_task_work(&worker->create_work, func); + worker->create_index = acct->index; + if (!task_work_add(wq->task, &worker->create_work, TWA_SIGNAL)) { + /* + * EXIT may have been set after checking it above, check after + * adding the task_work and remove any creation item if it is + * now set. wq exit does that too, but we can have added this + * work item after we canceled in io_wq_exit_workers(). + */ + if (test_bit(IO_WQ_BIT_EXIT, &wq->state)) + io_wq_cancel_tw_create(wq); + io_worker_ref_put(wq); + return true; + } + io_worker_ref_put(wq); + clear_bit_unlock(0, &worker->create_state); +fail_release: + io_worker_release(worker); +fail: + atomic_dec(&acct->nr_running); + io_worker_ref_put(wq); + return false; +} + +static void io_wqe_dec_running(struct io_worker *worker) +{ + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + struct io_wqe *wqe = worker->wqe; + + if (!(worker->flags & IO_WORKER_F_UP)) + return; + + if (!atomic_dec_and_test(&acct->nr_running)) + return; + if (!io_acct_run_queue(acct)) + return; + + atomic_inc(&acct->nr_running); + atomic_inc(&wqe->wq->worker_refs); + io_queue_worker_create(worker, acct, create_worker_cb); +} + +/* + * Worker will start processing some work. Move it to the busy list, if + * it's currently on the freelist + */ +static void __io_worker_busy(struct io_wqe *wqe, struct io_worker *worker) +{ + if (worker->flags & IO_WORKER_F_FREE) { + worker->flags &= ~IO_WORKER_F_FREE; + raw_spin_lock(&wqe->lock); + hlist_nulls_del_init_rcu(&worker->nulls_node); + raw_spin_unlock(&wqe->lock); + } +} + +/* + * No work, worker going to sleep. Move to freelist, and unuse mm if we + * have one attached. Dropping the mm may potentially sleep, so we drop + * the lock in that case and return success. Since the caller has to + * retry the loop in that case (we changed task state), we don't regrab + * the lock if we return success. + */ +static void __io_worker_idle(struct io_wqe *wqe, struct io_worker *worker) + __must_hold(wqe->lock) +{ + if (!(worker->flags & IO_WORKER_F_FREE)) { + worker->flags |= IO_WORKER_F_FREE; + hlist_nulls_add_head_rcu(&worker->nulls_node, &wqe->free_list); + } +} + +static inline unsigned int io_get_work_hash(struct io_wq_work *work) +{ + return work->flags >> IO_WQ_HASH_SHIFT; +} + +static bool io_wait_on_hash(struct io_wqe *wqe, unsigned int hash) +{ + struct io_wq *wq = wqe->wq; + bool ret = false; + + spin_lock_irq(&wq->hash->wait.lock); + if (list_empty(&wqe->wait.entry)) { + __add_wait_queue(&wq->hash->wait, &wqe->wait); + if (!test_bit(hash, &wq->hash->map)) { + __set_current_state(TASK_RUNNING); + list_del_init(&wqe->wait.entry); + ret = true; + } + } + spin_unlock_irq(&wq->hash->wait.lock); + return ret; +} + +static struct io_wq_work *io_get_next_work(struct io_wqe_acct *acct, + struct io_worker *worker) + __must_hold(acct->lock) +{ + struct io_wq_work_node *node, *prev; + struct io_wq_work *work, *tail; + unsigned int stall_hash = -1U; + struct io_wqe *wqe = worker->wqe; + + wq_list_for_each(node, prev, &acct->work_list) { + unsigned int hash; + + work = container_of(node, struct io_wq_work, list); + + /* not hashed, can run anytime */ + if (!io_wq_is_hashed(work)) { + wq_list_del(&acct->work_list, node, prev); + return work; + } + + hash = io_get_work_hash(work); + /* all items with this hash lie in [work, tail] */ + tail = wqe->hash_tail[hash]; + + /* hashed, can run if not already running */ + if (!test_and_set_bit(hash, &wqe->wq->hash->map)) { + wqe->hash_tail[hash] = NULL; + wq_list_cut(&acct->work_list, &tail->list, prev); + return work; + } + if (stall_hash == -1U) + stall_hash = hash; + /* fast forward to a next hash, for-each will fix up @prev */ + node = &tail->list; + } + + if (stall_hash != -1U) { + bool unstalled; + + /* + * Set this before dropping the lock to avoid racing with new + * work being added and clearing the stalled bit. + */ + set_bit(IO_ACCT_STALLED_BIT, &acct->flags); + raw_spin_unlock(&acct->lock); + unstalled = io_wait_on_hash(wqe, stall_hash); + raw_spin_lock(&acct->lock); + if (unstalled) { + clear_bit(IO_ACCT_STALLED_BIT, &acct->flags); + if (wq_has_sleeper(&wqe->wq->hash->wait)) + wake_up(&wqe->wq->hash->wait); + } + } + + return NULL; +} + +static bool io_flush_signals(void) +{ + if (unlikely(test_thread_flag(TIF_NOTIFY_SIGNAL))) { + __set_current_state(TASK_RUNNING); + clear_notify_signal(); + if (task_work_pending(current)) + task_work_run(); + return true; + } + return false; +} + +static void io_assign_current_work(struct io_worker *worker, + struct io_wq_work *work) +{ + if (work) { + io_flush_signals(); + cond_resched(); + } + + raw_spin_lock(&worker->lock); + worker->cur_work = work; + worker->next_work = NULL; + raw_spin_unlock(&worker->lock); +} + +static void io_wqe_enqueue(struct io_wqe *wqe, struct io_wq_work *work); + +static void io_worker_handle_work(struct io_worker *worker) +{ + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + struct io_wqe *wqe = worker->wqe; + struct io_wq *wq = wqe->wq; + bool do_kill = test_bit(IO_WQ_BIT_EXIT, &wq->state); + + do { + struct io_wq_work *work; + + /* + * If we got some work, mark us as busy. If we didn't, but + * the list isn't empty, it means we stalled on hashed work. + * Mark us stalled so we don't keep looking for work when we + * can't make progress, any work completion or insertion will + * clear the stalled flag. + */ + raw_spin_lock(&acct->lock); + work = io_get_next_work(acct, worker); + raw_spin_unlock(&acct->lock); + if (work) { + __io_worker_busy(wqe, worker); + + /* + * Make sure cancelation can find this, even before + * it becomes the active work. That avoids a window + * where the work has been removed from our general + * work list, but isn't yet discoverable as the + * current work item for this worker. + */ + raw_spin_lock(&worker->lock); + worker->next_work = work; + raw_spin_unlock(&worker->lock); + } else { + break; + } + io_assign_current_work(worker, work); + __set_current_state(TASK_RUNNING); + + /* handle a whole dependent link */ + do { + struct io_wq_work *next_hashed, *linked; + unsigned int hash = io_get_work_hash(work); + + next_hashed = wq_next_work(work); + + if (unlikely(do_kill) && (work->flags & IO_WQ_WORK_UNBOUND)) + work->flags |= IO_WQ_WORK_CANCEL; + wq->do_work(work); + io_assign_current_work(worker, NULL); + + linked = wq->free_work(work); + work = next_hashed; + if (!work && linked && !io_wq_is_hashed(linked)) { + work = linked; + linked = NULL; + } + io_assign_current_work(worker, work); + if (linked) + io_wqe_enqueue(wqe, linked); + + if (hash != -1U && !next_hashed) { + /* serialize hash clear with wake_up() */ + spin_lock_irq(&wq->hash->wait.lock); + clear_bit(hash, &wq->hash->map); + clear_bit(IO_ACCT_STALLED_BIT, &acct->flags); + spin_unlock_irq(&wq->hash->wait.lock); + if (wq_has_sleeper(&wq->hash->wait)) + wake_up(&wq->hash->wait); + } + } while (work); + } while (1); +} + +static int io_wqe_worker(void *data) +{ + struct io_worker *worker = data; + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + struct io_wqe *wqe = worker->wqe; + struct io_wq *wq = wqe->wq; + bool last_timeout = false; + char buf[TASK_COMM_LEN]; + + worker->flags |= (IO_WORKER_F_UP | IO_WORKER_F_RUNNING); + + snprintf(buf, sizeof(buf), "iou-wrk-%d", wq->task->pid); + set_task_comm(current, buf); + + audit_alloc_kernel(current); + + while (!test_bit(IO_WQ_BIT_EXIT, &wq->state)) { + long ret; + + set_current_state(TASK_INTERRUPTIBLE); + while (io_acct_run_queue(acct)) + io_worker_handle_work(worker); + + raw_spin_lock(&wqe->lock); + /* timed out, exit unless we're the last worker */ + if (last_timeout && acct->nr_workers > 1) { + acct->nr_workers--; + raw_spin_unlock(&wqe->lock); + __set_current_state(TASK_RUNNING); + break; + } + last_timeout = false; + __io_worker_idle(wqe, worker); + raw_spin_unlock(&wqe->lock); + if (io_flush_signals()) + continue; + ret = schedule_timeout(WORKER_IDLE_TIMEOUT); + if (signal_pending(current)) { + struct ksignal ksig; + + if (!get_signal(&ksig)) + continue; + break; + } + last_timeout = !ret; + } + + if (test_bit(IO_WQ_BIT_EXIT, &wq->state)) + io_worker_handle_work(worker); + + audit_free(current); + io_worker_exit(worker); + return 0; +} + +/* + * Called when a worker is scheduled in. Mark us as currently running. + */ +void io_wq_worker_running(struct task_struct *tsk) +{ + struct io_worker *worker = tsk->worker_private; + + if (!worker) + return; + if (!(worker->flags & IO_WORKER_F_UP)) + return; + if (worker->flags & IO_WORKER_F_RUNNING) + return; + worker->flags |= IO_WORKER_F_RUNNING; + io_wqe_inc_running(worker); +} + +/* + * Called when worker is going to sleep. If there are no workers currently + * running and we have work pending, wake up a free one or create a new one. + */ +void io_wq_worker_sleeping(struct task_struct *tsk) +{ + struct io_worker *worker = tsk->worker_private; + + if (!worker) + return; + if (!(worker->flags & IO_WORKER_F_UP)) + return; + if (!(worker->flags & IO_WORKER_F_RUNNING)) + return; + + worker->flags &= ~IO_WORKER_F_RUNNING; + io_wqe_dec_running(worker); +} + +static void io_init_new_worker(struct io_wqe *wqe, struct io_worker *worker, + struct task_struct *tsk) +{ + tsk->worker_private = worker; + worker->task = tsk; + set_cpus_allowed_ptr(tsk, wqe->cpu_mask); + tsk->flags |= PF_NO_SETAFFINITY; + + raw_spin_lock(&wqe->lock); + hlist_nulls_add_head_rcu(&worker->nulls_node, &wqe->free_list); + list_add_tail_rcu(&worker->all_list, &wqe->all_list); + worker->flags |= IO_WORKER_F_FREE; + raw_spin_unlock(&wqe->lock); + wake_up_new_task(tsk); +} + +static bool io_wq_work_match_all(struct io_wq_work *work, void *data) +{ + return true; +} + +static inline bool io_should_retry_thread(long err) +{ + /* + * Prevent perpetual task_work retry, if the task (or its group) is + * exiting. + */ + if (fatal_signal_pending(current)) + return false; + + switch (err) { + case -EAGAIN: + case -ERESTARTSYS: + case -ERESTARTNOINTR: + case -ERESTARTNOHAND: + return true; + default: + return false; + } +} + +static void create_worker_cont(struct callback_head *cb) +{ + struct io_worker *worker; + struct task_struct *tsk; + struct io_wqe *wqe; + + worker = container_of(cb, struct io_worker, create_work); + clear_bit_unlock(0, &worker->create_state); + wqe = worker->wqe; + tsk = create_io_thread(io_wqe_worker, worker, wqe->node); + if (!IS_ERR(tsk)) { + io_init_new_worker(wqe, worker, tsk); + io_worker_release(worker); + return; + } else if (!io_should_retry_thread(PTR_ERR(tsk))) { + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + + atomic_dec(&acct->nr_running); + raw_spin_lock(&wqe->lock); + acct->nr_workers--; + if (!acct->nr_workers) { + struct io_cb_cancel_data match = { + .fn = io_wq_work_match_all, + .cancel_all = true, + }; + + raw_spin_unlock(&wqe->lock); + while (io_acct_cancel_pending_work(wqe, acct, &match)) + ; + } else { + raw_spin_unlock(&wqe->lock); + } + io_worker_ref_put(wqe->wq); + kfree(worker); + return; + } + + /* re-create attempts grab a new worker ref, drop the existing one */ + io_worker_release(worker); + schedule_work(&worker->work); +} + +static void io_workqueue_create(struct work_struct *work) +{ + struct io_worker *worker = container_of(work, struct io_worker, work); + struct io_wqe_acct *acct = io_wqe_get_acct(worker); + + if (!io_queue_worker_create(worker, acct, create_worker_cont)) + kfree(worker); +} + +static bool create_io_worker(struct io_wq *wq, struct io_wqe *wqe, int index) +{ + struct io_wqe_acct *acct = &wqe->acct[index]; + struct io_worker *worker; + struct task_struct *tsk; + + __set_current_state(TASK_RUNNING); + + worker = kzalloc_node(sizeof(*worker), GFP_KERNEL, wqe->node); + if (!worker) { +fail: + atomic_dec(&acct->nr_running); + raw_spin_lock(&wqe->lock); + acct->nr_workers--; + raw_spin_unlock(&wqe->lock); + io_worker_ref_put(wq); + return false; + } + + refcount_set(&worker->ref, 1); + worker->wqe = wqe; + raw_spin_lock_init(&worker->lock); + init_completion(&worker->ref_done); + + if (index == IO_WQ_ACCT_BOUND) + worker->flags |= IO_WORKER_F_BOUND; + + tsk = create_io_thread(io_wqe_worker, worker, wqe->node); + if (!IS_ERR(tsk)) { + io_init_new_worker(wqe, worker, tsk); + } else if (!io_should_retry_thread(PTR_ERR(tsk))) { + kfree(worker); + goto fail; + } else { + INIT_WORK(&worker->work, io_workqueue_create); + schedule_work(&worker->work); + } + + return true; +} + +/* + * Iterate the passed in list and call the specific function for each + * worker that isn't exiting + */ +static bool io_wq_for_each_worker(struct io_wqe *wqe, + bool (*func)(struct io_worker *, void *), + void *data) +{ + struct io_worker *worker; + bool ret = false; + + list_for_each_entry_rcu(worker, &wqe->all_list, all_list) { + if (io_worker_get(worker)) { + /* no task if node is/was offline */ + if (worker->task) + ret = func(worker, data); + io_worker_release(worker); + if (ret) + break; + } + } + + return ret; +} + +static bool io_wq_worker_wake(struct io_worker *worker, void *data) +{ + __set_notify_signal(worker->task); + wake_up_process(worker->task); + return false; +} + +static void io_run_cancel(struct io_wq_work *work, struct io_wqe *wqe) +{ + struct io_wq *wq = wqe->wq; + + do { + work->flags |= IO_WQ_WORK_CANCEL; + wq->do_work(work); + work = wq->free_work(work); + } while (work); +} + +static void io_wqe_insert_work(struct io_wqe *wqe, struct io_wq_work *work) +{ + struct io_wqe_acct *acct = io_work_get_acct(wqe, work); + unsigned int hash; + struct io_wq_work *tail; + + if (!io_wq_is_hashed(work)) { +append: + wq_list_add_tail(&work->list, &acct->work_list); + return; + } + + hash = io_get_work_hash(work); + tail = wqe->hash_tail[hash]; + wqe->hash_tail[hash] = work; + if (!tail) + goto append; + + wq_list_add_after(&work->list, &tail->list, &acct->work_list); +} + +static bool io_wq_work_match_item(struct io_wq_work *work, void *data) +{ + return work == data; +} + +static void io_wqe_enqueue(struct io_wqe *wqe, struct io_wq_work *work) +{ + struct io_wqe_acct *acct = io_work_get_acct(wqe, work); + struct io_cb_cancel_data match; + unsigned work_flags = work->flags; + bool do_create; + + /* + * If io-wq is exiting for this task, or if the request has explicitly + * been marked as one that should not get executed, cancel it here. + */ + if (test_bit(IO_WQ_BIT_EXIT, &wqe->wq->state) || + (work->flags & IO_WQ_WORK_CANCEL)) { + io_run_cancel(work, wqe); + return; + } + + raw_spin_lock(&acct->lock); + io_wqe_insert_work(wqe, work); + clear_bit(IO_ACCT_STALLED_BIT, &acct->flags); + raw_spin_unlock(&acct->lock); + + raw_spin_lock(&wqe->lock); + rcu_read_lock(); + do_create = !io_wqe_activate_free_worker(wqe, acct); + rcu_read_unlock(); + + raw_spin_unlock(&wqe->lock); + + if (do_create && ((work_flags & IO_WQ_WORK_CONCURRENT) || + !atomic_read(&acct->nr_running))) { + bool did_create; + + did_create = io_wqe_create_worker(wqe, acct); + if (likely(did_create)) + return; + + raw_spin_lock(&wqe->lock); + if (acct->nr_workers) { + raw_spin_unlock(&wqe->lock); + return; + } + raw_spin_unlock(&wqe->lock); + + /* fatal condition, failed to create the first worker */ + match.fn = io_wq_work_match_item, + match.data = work, + match.cancel_all = false, + + io_acct_cancel_pending_work(wqe, acct, &match); + } +} + +void io_wq_enqueue(struct io_wq *wq, struct io_wq_work *work) +{ + struct io_wqe *wqe = wq->wqes[numa_node_id()]; + + io_wqe_enqueue(wqe, work); +} + +/* + * Work items that hash to the same value will not be done in parallel. + * Used to limit concurrent writes, generally hashed by inode. + */ +void io_wq_hash_work(struct io_wq_work *work, void *val) +{ + unsigned int bit; + + bit = hash_ptr(val, IO_WQ_HASH_ORDER); + work->flags |= (IO_WQ_WORK_HASHED | (bit << IO_WQ_HASH_SHIFT)); +} + +static bool __io_wq_worker_cancel(struct io_worker *worker, + struct io_cb_cancel_data *match, + struct io_wq_work *work) +{ + if (work && match->fn(work, match->data)) { + work->flags |= IO_WQ_WORK_CANCEL; + __set_notify_signal(worker->task); + return true; + } + + return false; +} + +static bool io_wq_worker_cancel(struct io_worker *worker, void *data) +{ + struct io_cb_cancel_data *match = data; + + /* + * Hold the lock to avoid ->cur_work going out of scope, caller + * may dereference the passed in work. + */ + raw_spin_lock(&worker->lock); + if (__io_wq_worker_cancel(worker, match, worker->cur_work) || + __io_wq_worker_cancel(worker, match, worker->next_work)) + match->nr_running++; + raw_spin_unlock(&worker->lock); + + return match->nr_running && !match->cancel_all; +} + +static inline void io_wqe_remove_pending(struct io_wqe *wqe, + struct io_wq_work *work, + struct io_wq_work_node *prev) +{ + struct io_wqe_acct *acct = io_work_get_acct(wqe, work); + unsigned int hash = io_get_work_hash(work); + struct io_wq_work *prev_work = NULL; + + if (io_wq_is_hashed(work) && work == wqe->hash_tail[hash]) { + if (prev) + prev_work = container_of(prev, struct io_wq_work, list); + if (prev_work && io_get_work_hash(prev_work) == hash) + wqe->hash_tail[hash] = prev_work; + else + wqe->hash_tail[hash] = NULL; + } + wq_list_del(&acct->work_list, &work->list, prev); +} + +static bool io_acct_cancel_pending_work(struct io_wqe *wqe, + struct io_wqe_acct *acct, + struct io_cb_cancel_data *match) +{ + struct io_wq_work_node *node, *prev; + struct io_wq_work *work; + + raw_spin_lock(&acct->lock); + wq_list_for_each(node, prev, &acct->work_list) { + work = container_of(node, struct io_wq_work, list); + if (!match->fn(work, match->data)) + continue; + io_wqe_remove_pending(wqe, work, prev); + raw_spin_unlock(&acct->lock); + io_run_cancel(work, wqe); + match->nr_pending++; + /* not safe to continue after unlock */ + return true; + } + raw_spin_unlock(&acct->lock); + + return false; +} + +static void io_wqe_cancel_pending_work(struct io_wqe *wqe, + struct io_cb_cancel_data *match) +{ + int i; +retry: + for (i = 0; i < IO_WQ_ACCT_NR; i++) { + struct io_wqe_acct *acct = io_get_acct(wqe, i == 0); + + if (io_acct_cancel_pending_work(wqe, acct, match)) { + if (match->cancel_all) + goto retry; + break; + } + } +} + +static void io_wqe_cancel_running_work(struct io_wqe *wqe, + struct io_cb_cancel_data *match) +{ + rcu_read_lock(); + io_wq_for_each_worker(wqe, io_wq_worker_cancel, match); + rcu_read_unlock(); +} + +enum io_wq_cancel io_wq_cancel_cb(struct io_wq *wq, work_cancel_fn *cancel, + void *data, bool cancel_all) +{ + struct io_cb_cancel_data match = { + .fn = cancel, + .data = data, + .cancel_all = cancel_all, + }; + int node; + + /* + * First check pending list, if we're lucky we can just remove it + * from there. CANCEL_OK means that the work is returned as-new, + * no completion will be posted for it. + * + * Then check if a free (going busy) or busy worker has the work + * currently running. If we find it there, we'll return CANCEL_RUNNING + * as an indication that we attempt to signal cancellation. The + * completion will run normally in this case. + * + * Do both of these while holding the wqe->lock, to ensure that + * we'll find a work item regardless of state. + */ + for_each_node(node) { + struct io_wqe *wqe = wq->wqes[node]; + + io_wqe_cancel_pending_work(wqe, &match); + if (match.nr_pending && !match.cancel_all) + return IO_WQ_CANCEL_OK; + + raw_spin_lock(&wqe->lock); + io_wqe_cancel_running_work(wqe, &match); + raw_spin_unlock(&wqe->lock); + if (match.nr_running && !match.cancel_all) + return IO_WQ_CANCEL_RUNNING; + } + + if (match.nr_running) + return IO_WQ_CANCEL_RUNNING; + if (match.nr_pending) + return IO_WQ_CANCEL_OK; + return IO_WQ_CANCEL_NOTFOUND; +} + +static int io_wqe_hash_wake(struct wait_queue_entry *wait, unsigned mode, + int sync, void *key) +{ + struct io_wqe *wqe = container_of(wait, struct io_wqe, wait); + int i; + + list_del_init(&wait->entry); + + rcu_read_lock(); + for (i = 0; i < IO_WQ_ACCT_NR; i++) { + struct io_wqe_acct *acct = &wqe->acct[i]; + + if (test_and_clear_bit(IO_ACCT_STALLED_BIT, &acct->flags)) + io_wqe_activate_free_worker(wqe, acct); + } + rcu_read_unlock(); + return 1; +} + +struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data) +{ + int ret, node, i; + struct io_wq *wq; + + if (WARN_ON_ONCE(!data->free_work || !data->do_work)) + return ERR_PTR(-EINVAL); + if (WARN_ON_ONCE(!bounded)) + return ERR_PTR(-EINVAL); + + wq = kzalloc(struct_size(wq, wqes, nr_node_ids), GFP_KERNEL); + if (!wq) + return ERR_PTR(-ENOMEM); + ret = cpuhp_state_add_instance_nocalls(io_wq_online, &wq->cpuhp_node); + if (ret) + goto err_wq; + + refcount_inc(&data->hash->refs); + wq->hash = data->hash; + wq->free_work = data->free_work; + wq->do_work = data->do_work; + + ret = -ENOMEM; + for_each_node(node) { + struct io_wqe *wqe; + int alloc_node = node; + + if (!node_online(alloc_node)) + alloc_node = NUMA_NO_NODE; + wqe = kzalloc_node(sizeof(struct io_wqe), GFP_KERNEL, alloc_node); + if (!wqe) + goto err; + wq->wqes[node] = wqe; + if (!alloc_cpumask_var(&wqe->cpu_mask, GFP_KERNEL)) + goto err; + cpumask_copy(wqe->cpu_mask, cpumask_of_node(node)); + wqe->node = alloc_node; + wqe->acct[IO_WQ_ACCT_BOUND].max_workers = bounded; + wqe->acct[IO_WQ_ACCT_UNBOUND].max_workers = + task_rlimit(current, RLIMIT_NPROC); + INIT_LIST_HEAD(&wqe->wait.entry); + wqe->wait.func = io_wqe_hash_wake; + for (i = 0; i < IO_WQ_ACCT_NR; i++) { + struct io_wqe_acct *acct = &wqe->acct[i]; + + acct->index = i; + atomic_set(&acct->nr_running, 0); + INIT_WQ_LIST(&acct->work_list); + raw_spin_lock_init(&acct->lock); + } + wqe->wq = wq; + raw_spin_lock_init(&wqe->lock); + INIT_HLIST_NULLS_HEAD(&wqe->free_list, 0); + INIT_LIST_HEAD(&wqe->all_list); + } + + wq->task = get_task_struct(data->task); + atomic_set(&wq->worker_refs, 1); + init_completion(&wq->worker_done); + return wq; +err: + io_wq_put_hash(data->hash); + cpuhp_state_remove_instance_nocalls(io_wq_online, &wq->cpuhp_node); + for_each_node(node) { + if (!wq->wqes[node]) + continue; + free_cpumask_var(wq->wqes[node]->cpu_mask); + kfree(wq->wqes[node]); + } +err_wq: + kfree(wq); + return ERR_PTR(ret); +} + +static bool io_task_work_match(struct callback_head *cb, void *data) +{ + struct io_worker *worker; + + if (cb->func != create_worker_cb && cb->func != create_worker_cont) + return false; + worker = container_of(cb, struct io_worker, create_work); + return worker->wqe->wq == data; +} + +void io_wq_exit_start(struct io_wq *wq) +{ + set_bit(IO_WQ_BIT_EXIT, &wq->state); +} + +static void io_wq_cancel_tw_create(struct io_wq *wq) +{ + struct callback_head *cb; + + while ((cb = task_work_cancel_match(wq->task, io_task_work_match, wq)) != NULL) { + struct io_worker *worker; + + worker = container_of(cb, struct io_worker, create_work); + io_worker_cancel_cb(worker); + } +} + +static void io_wq_exit_workers(struct io_wq *wq) +{ + int node; + + if (!wq->task) + return; + + io_wq_cancel_tw_create(wq); + + rcu_read_lock(); + for_each_node(node) { + struct io_wqe *wqe = wq->wqes[node]; + + io_wq_for_each_worker(wqe, io_wq_worker_wake, NULL); + } + rcu_read_unlock(); + io_worker_ref_put(wq); + wait_for_completion(&wq->worker_done); + + for_each_node(node) { + spin_lock_irq(&wq->hash->wait.lock); + list_del_init(&wq->wqes[node]->wait.entry); + spin_unlock_irq(&wq->hash->wait.lock); + } + put_task_struct(wq->task); + wq->task = NULL; +} + +static void io_wq_destroy(struct io_wq *wq) +{ + int node; + + cpuhp_state_remove_instance_nocalls(io_wq_online, &wq->cpuhp_node); + + for_each_node(node) { + struct io_wqe *wqe = wq->wqes[node]; + struct io_cb_cancel_data match = { + .fn = io_wq_work_match_all, + .cancel_all = true, + }; + io_wqe_cancel_pending_work(wqe, &match); + free_cpumask_var(wqe->cpu_mask); + kfree(wqe); + } + io_wq_put_hash(wq->hash); + kfree(wq); +} + +void io_wq_put_and_exit(struct io_wq *wq) +{ + WARN_ON_ONCE(!test_bit(IO_WQ_BIT_EXIT, &wq->state)); + + io_wq_exit_workers(wq); + io_wq_destroy(wq); +} + +struct online_data { + unsigned int cpu; + bool online; +}; + +static bool io_wq_worker_affinity(struct io_worker *worker, void *data) +{ + struct online_data *od = data; + + if (od->online) + cpumask_set_cpu(od->cpu, worker->wqe->cpu_mask); + else + cpumask_clear_cpu(od->cpu, worker->wqe->cpu_mask); + return false; +} + +static int __io_wq_cpu_online(struct io_wq *wq, unsigned int cpu, bool online) +{ + struct online_data od = { + .cpu = cpu, + .online = online + }; + int i; + + rcu_read_lock(); + for_each_node(i) + io_wq_for_each_worker(wq->wqes[i], io_wq_worker_affinity, &od); + rcu_read_unlock(); + return 0; +} + +static int io_wq_cpu_online(unsigned int cpu, struct hlist_node *node) +{ + struct io_wq *wq = hlist_entry_safe(node, struct io_wq, cpuhp_node); + + return __io_wq_cpu_online(wq, cpu, true); +} + +static int io_wq_cpu_offline(unsigned int cpu, struct hlist_node *node) +{ + struct io_wq *wq = hlist_entry_safe(node, struct io_wq, cpuhp_node); + + return __io_wq_cpu_online(wq, cpu, false); +} + +int io_wq_cpu_affinity(struct io_wq *wq, cpumask_var_t mask) +{ + int i; + + rcu_read_lock(); + for_each_node(i) { + struct io_wqe *wqe = wq->wqes[i]; + + if (mask) + cpumask_copy(wqe->cpu_mask, mask); + else + cpumask_copy(wqe->cpu_mask, cpumask_of_node(i)); + } + rcu_read_unlock(); + return 0; +} + +/* + * Set max number of unbounded workers, returns old value. If new_count is 0, + * then just return the old value. + */ +int io_wq_max_workers(struct io_wq *wq, int *new_count) +{ + int prev[IO_WQ_ACCT_NR]; + bool first_node = true; + int i, node; + + BUILD_BUG_ON((int) IO_WQ_ACCT_BOUND != (int) IO_WQ_BOUND); + BUILD_BUG_ON((int) IO_WQ_ACCT_UNBOUND != (int) IO_WQ_UNBOUND); + BUILD_BUG_ON((int) IO_WQ_ACCT_NR != 2); + + for (i = 0; i < IO_WQ_ACCT_NR; i++) { + if (new_count[i] > task_rlimit(current, RLIMIT_NPROC)) + new_count[i] = task_rlimit(current, RLIMIT_NPROC); + } + + for (i = 0; i < IO_WQ_ACCT_NR; i++) + prev[i] = 0; + + rcu_read_lock(); + for_each_node(node) { + struct io_wqe *wqe = wq->wqes[node]; + struct io_wqe_acct *acct; + + raw_spin_lock(&wqe->lock); + for (i = 0; i < IO_WQ_ACCT_NR; i++) { + acct = &wqe->acct[i]; + if (first_node) + prev[i] = max_t(int, acct->max_workers, prev[i]); + if (new_count[i]) + acct->max_workers = new_count[i]; + } + raw_spin_unlock(&wqe->lock); + first_node = false; + } + rcu_read_unlock(); + + for (i = 0; i < IO_WQ_ACCT_NR; i++) + new_count[i] = prev[i]; + + return 0; +} + +static __init int io_wq_init(void) +{ + int ret; + + ret = cpuhp_setup_state_multi(CPUHP_AP_ONLINE_DYN, "io-wq/online", + io_wq_cpu_online, io_wq_cpu_offline); + if (ret < 0) + return ret; + io_wq_online = ret; + return 0; +} +subsys_initcall(io_wq_init); --- linux-5.19.0.orig/io_uring/io-wq.h +++ linux-5.19.0/io_uring/io-wq.h @@ -0,0 +1,228 @@ +#ifndef INTERNAL_IO_WQ_H +#define INTERNAL_IO_WQ_H + +#include + +struct io_wq; + +enum { + IO_WQ_WORK_CANCEL = 1, + IO_WQ_WORK_HASHED = 2, + IO_WQ_WORK_UNBOUND = 4, + IO_WQ_WORK_CONCURRENT = 16, + + IO_WQ_HASH_SHIFT = 24, /* upper 8 bits are used for hash key */ +}; + +enum io_wq_cancel { + IO_WQ_CANCEL_OK, /* cancelled before started */ + IO_WQ_CANCEL_RUNNING, /* found, running, and attempted cancelled */ + IO_WQ_CANCEL_NOTFOUND, /* work not found */ +}; + +struct io_wq_work_node { + struct io_wq_work_node *next; +}; + +struct io_wq_work_list { + struct io_wq_work_node *first; + struct io_wq_work_node *last; +}; + +#define wq_list_for_each(pos, prv, head) \ + for (pos = (head)->first, prv = NULL; pos; prv = pos, pos = (pos)->next) + +#define wq_list_for_each_resume(pos, prv) \ + for (; pos; prv = pos, pos = (pos)->next) + +#define wq_list_empty(list) (READ_ONCE((list)->first) == NULL) +#define INIT_WQ_LIST(list) do { \ + (list)->first = NULL; \ +} while (0) + +static inline void wq_list_add_after(struct io_wq_work_node *node, + struct io_wq_work_node *pos, + struct io_wq_work_list *list) +{ + struct io_wq_work_node *next = pos->next; + + pos->next = node; + node->next = next; + if (!next) + list->last = node; +} + +/** + * wq_list_merge - merge the second list to the first one. + * @list0: the first list + * @list1: the second list + * Return the first node after mergence. + */ +static inline struct io_wq_work_node *wq_list_merge(struct io_wq_work_list *list0, + struct io_wq_work_list *list1) +{ + struct io_wq_work_node *ret; + + if (!list0->first) { + ret = list1->first; + } else { + ret = list0->first; + list0->last->next = list1->first; + } + INIT_WQ_LIST(list0); + INIT_WQ_LIST(list1); + return ret; +} + +static inline void wq_list_add_tail(struct io_wq_work_node *node, + struct io_wq_work_list *list) +{ + node->next = NULL; + if (!list->first) { + list->last = node; + WRITE_ONCE(list->first, node); + } else { + list->last->next = node; + list->last = node; + } +} + +static inline void wq_list_add_head(struct io_wq_work_node *node, + struct io_wq_work_list *list) +{ + node->next = list->first; + if (!node->next) + list->last = node; + WRITE_ONCE(list->first, node); +} + +static inline void wq_list_cut(struct io_wq_work_list *list, + struct io_wq_work_node *last, + struct io_wq_work_node *prev) +{ + /* first in the list, if prev==NULL */ + if (!prev) + WRITE_ONCE(list->first, last->next); + else + prev->next = last->next; + + if (last == list->last) + list->last = prev; + last->next = NULL; +} + +static inline void __wq_list_splice(struct io_wq_work_list *list, + struct io_wq_work_node *to) +{ + list->last->next = to->next; + to->next = list->first; + INIT_WQ_LIST(list); +} + +static inline bool wq_list_splice(struct io_wq_work_list *list, + struct io_wq_work_node *to) +{ + if (!wq_list_empty(list)) { + __wq_list_splice(list, to); + return true; + } + return false; +} + +static inline void wq_stack_add_head(struct io_wq_work_node *node, + struct io_wq_work_node *stack) +{ + node->next = stack->next; + stack->next = node; +} + +static inline void wq_list_del(struct io_wq_work_list *list, + struct io_wq_work_node *node, + struct io_wq_work_node *prev) +{ + wq_list_cut(list, node, prev); +} + +static inline +struct io_wq_work_node *wq_stack_extract(struct io_wq_work_node *stack) +{ + struct io_wq_work_node *node = stack->next; + + stack->next = node->next; + return node; +} + +struct io_wq_work { + struct io_wq_work_node list; + unsigned flags; + int cancel_seq; +}; + +static inline struct io_wq_work *wq_next_work(struct io_wq_work *work) +{ + if (!work->list.next) + return NULL; + + return container_of(work->list.next, struct io_wq_work, list); +} + +typedef struct io_wq_work *(free_work_fn)(struct io_wq_work *); +typedef void (io_wq_work_fn)(struct io_wq_work *); + +struct io_wq_hash { + refcount_t refs; + unsigned long map; + struct wait_queue_head wait; +}; + +static inline void io_wq_put_hash(struct io_wq_hash *hash) +{ + if (refcount_dec_and_test(&hash->refs)) + kfree(hash); +} + +struct io_wq_data { + struct io_wq_hash *hash; + struct task_struct *task; + io_wq_work_fn *do_work; + free_work_fn *free_work; +}; + +struct io_wq *io_wq_create(unsigned bounded, struct io_wq_data *data); +void io_wq_exit_start(struct io_wq *wq); +void io_wq_put_and_exit(struct io_wq *wq); + +void io_wq_enqueue(struct io_wq *wq, struct io_wq_work *work); +void io_wq_hash_work(struct io_wq_work *work, void *val); + +int io_wq_cpu_affinity(struct io_wq *wq, cpumask_var_t mask); +int io_wq_max_workers(struct io_wq *wq, int *new_count); + +static inline bool io_wq_is_hashed(struct io_wq_work *work) +{ + return work->flags & IO_WQ_WORK_HASHED; +} + +typedef bool (work_cancel_fn)(struct io_wq_work *, void *); + +enum io_wq_cancel io_wq_cancel_cb(struct io_wq *wq, work_cancel_fn *cancel, + void *data, bool cancel_all); + +#if defined(CONFIG_IO_WQ) +extern void io_wq_worker_sleeping(struct task_struct *); +extern void io_wq_worker_running(struct task_struct *); +#else +static inline void io_wq_worker_sleeping(struct task_struct *tsk) +{ +} +static inline void io_wq_worker_running(struct task_struct *tsk) +{ +} +#endif + +static inline bool io_wq_current_is_worker(void) +{ + return in_task() && (current->flags & PF_IO_WORKER) && + current->worker_private; +} +#endif --- linux-5.19.0.orig/io_uring/io_uring.c +++ linux-5.19.0/io_uring/io_uring.c @@ -0,0 +1,13229 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Shared application/kernel submission and completion ring pairs, for + * supporting fast/efficient IO. + * + * A note on the read/write ordering memory barriers that are matched between + * the application and kernel side. + * + * After the application reads the CQ ring tail, it must use an + * appropriate smp_rmb() to pair with the smp_wmb() the kernel uses + * before writing the tail (using smp_load_acquire to read the tail will + * do). It also needs a smp_mb() before updating CQ head (ordering the + * entry load(s) with the head store), pairing with an implicit barrier + * through a control-dependency in io_get_cqe (smp_store_release to + * store head will do). Failure to do so could lead to reading invalid + * CQ entries. + * + * Likewise, the application must use an appropriate smp_wmb() before + * writing the SQ tail (ordering SQ entry stores with the tail store), + * which pairs with smp_load_acquire in io_get_sqring (smp_store_release + * to store the tail will do). And it needs a barrier ordering the SQ + * head load before writing new SQ entries (smp_load_acquire to read + * head will do). + * + * When using the SQ poll thread (IORING_SETUP_SQPOLL), the application + * needs to check the SQ flags for IORING_SQ_NEED_WAKEUP *after* + * updating the SQ tail; a full memory barrier smp_mb() is needed + * between. + * + * Also see the examples in the liburing library: + * + * git://git.kernel.dk/liburing + * + * io_uring also uses READ/WRITE_ONCE() for _any_ store or load that happens + * from data shared between the kernel and application. This is done both + * for ordering purposes, but also to ensure that once a value is loaded from + * data that the application could potentially modify, it remains stable. + * + * Copyright (C) 2018-2019 Jens Axboe + * Copyright (c) 2018-2019 Christoph Hellwig + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define CREATE_TRACE_POINTS +#include + +#include + +#include "../fs/internal.h" +#include "io-wq.h" + +#define IORING_MAX_ENTRIES 32768 +#define IORING_MAX_CQ_ENTRIES (2 * IORING_MAX_ENTRIES) +#define IORING_SQPOLL_CAP_ENTRIES_VALUE 8 + +/* only define max */ +#define IORING_MAX_FIXED_FILES (1U << 20) +#define IORING_MAX_RESTRICTIONS (IORING_RESTRICTION_LAST + \ + IORING_REGISTER_LAST + IORING_OP_LAST) + +#define IO_RSRC_TAG_TABLE_SHIFT (PAGE_SHIFT - 3) +#define IO_RSRC_TAG_TABLE_MAX (1U << IO_RSRC_TAG_TABLE_SHIFT) +#define IO_RSRC_TAG_TABLE_MASK (IO_RSRC_TAG_TABLE_MAX - 1) + +#define IORING_MAX_REG_BUFFERS (1U << 14) + +#define SQE_COMMON_FLAGS (IOSQE_FIXED_FILE | IOSQE_IO_LINK | \ + IOSQE_IO_HARDLINK | IOSQE_ASYNC) + +#define SQE_VALID_FLAGS (SQE_COMMON_FLAGS | IOSQE_BUFFER_SELECT | \ + IOSQE_IO_DRAIN | IOSQE_CQE_SKIP_SUCCESS) + +#define IO_REQ_CLEAN_FLAGS (REQ_F_BUFFER_SELECTED | REQ_F_NEED_CLEANUP | \ + REQ_F_POLLED | REQ_F_INFLIGHT | REQ_F_CREDS | \ + REQ_F_ASYNC_DATA) + +#define IO_REQ_CLEAN_SLOW_FLAGS (REQ_F_REFCOUNT | REQ_F_LINK | REQ_F_HARDLINK |\ + IO_REQ_CLEAN_FLAGS) + +#define IO_APOLL_MULTI_POLLED (REQ_F_APOLL_MULTISHOT | REQ_F_POLLED) + +#define IO_TCTX_REFS_CACHE_NR (1U << 10) + +struct io_uring { + u32 head ____cacheline_aligned_in_smp; + u32 tail ____cacheline_aligned_in_smp; +}; + +/* + * This data is shared with the application through the mmap at offsets + * IORING_OFF_SQ_RING and IORING_OFF_CQ_RING. + * + * The offsets to the member fields are published through struct + * io_sqring_offsets when calling io_uring_setup. + */ +struct io_rings { + /* + * Head and tail offsets into the ring; the offsets need to be + * masked to get valid indices. + * + * The kernel controls head of the sq ring and the tail of the cq ring, + * and the application controls tail of the sq ring and the head of the + * cq ring. + */ + struct io_uring sq, cq; + /* + * Bitmasks to apply to head and tail offsets (constant, equals + * ring_entries - 1) + */ + u32 sq_ring_mask, cq_ring_mask; + /* Ring sizes (constant, power of 2) */ + u32 sq_ring_entries, cq_ring_entries; + /* + * Number of invalid entries dropped by the kernel due to + * invalid index stored in array + * + * Written by the kernel, shouldn't be modified by the + * application (i.e. get number of "new events" by comparing to + * cached value). + * + * After a new SQ head value was read by the application this + * counter includes all submissions that were dropped reaching + * the new SQ head (and possibly more). + */ + u32 sq_dropped; + /* + * Runtime SQ flags + * + * Written by the kernel, shouldn't be modified by the + * application. + * + * The application needs a full memory barrier before checking + * for IORING_SQ_NEED_WAKEUP after updating the sq tail. + */ + atomic_t sq_flags; + /* + * Runtime CQ flags + * + * Written by the application, shouldn't be modified by the + * kernel. + */ + u32 cq_flags; + /* + * Number of completion events lost because the queue was full; + * this should be avoided by the application by making sure + * there are not more requests pending than there is space in + * the completion queue. + * + * Written by the kernel, shouldn't be modified by the + * application (i.e. get number of "new events" by comparing to + * cached value). + * + * As completion events come in out of order this counter is not + * ordered with any other data. + */ + u32 cq_overflow; + /* + * Ring buffer of completion events. + * + * The kernel writes completion events fresh every time they are + * produced, so the application is allowed to modify pending + * entries. + */ + struct io_uring_cqe cqes[] ____cacheline_aligned_in_smp; +}; + +struct io_mapped_ubuf { + u64 ubuf; + u64 ubuf_end; + unsigned int nr_bvecs; + unsigned long acct_pages; + struct bio_vec bvec[]; +}; + +struct io_ring_ctx; + +struct io_overflow_cqe { + struct list_head list; + struct io_uring_cqe cqe; +}; + +/* + * FFS_SCM is only available on 64-bit archs, for 32-bit we just define it as 0 + * and define IO_URING_SCM_ALL. For this case, we use SCM for all files as we + * can't safely always dereference the file when the task has exited and ring + * cleanup is done. If a file is tracked and part of SCM, then unix gc on + * process exit may reap it before __io_sqe_files_unregister() is run. + */ +#define FFS_NOWAIT 0x1UL +#define FFS_ISREG 0x2UL +#if defined(CONFIG_64BIT) +#define FFS_SCM 0x4UL +#else +#define IO_URING_SCM_ALL +#define FFS_SCM 0x0UL +#endif +#define FFS_MASK ~(FFS_NOWAIT|FFS_ISREG|FFS_SCM) + +struct io_fixed_file { + /* file * with additional FFS_* flags */ + unsigned long file_ptr; +}; + +struct io_rsrc_put { + struct list_head list; + u64 tag; + union { + void *rsrc; + struct file *file; + struct io_mapped_ubuf *buf; + }; +}; + +struct io_file_table { + struct io_fixed_file *files; + unsigned long *bitmap; + unsigned int alloc_hint; +}; + +struct io_rsrc_node { + struct percpu_ref refs; + struct list_head node; + struct list_head rsrc_list; + struct io_rsrc_data *rsrc_data; + struct llist_node llist; + bool done; +}; + +typedef void (rsrc_put_fn)(struct io_ring_ctx *ctx, struct io_rsrc_put *prsrc); + +struct io_rsrc_data { + struct io_ring_ctx *ctx; + + u64 **tags; + unsigned int nr; + rsrc_put_fn *do_put; + atomic_t refs; + struct completion done; + bool quiesce; +}; + +#define IO_BUFFER_LIST_BUF_PER_PAGE (PAGE_SIZE / sizeof(struct io_uring_buf)) +struct io_buffer_list { + /* + * If ->buf_nr_pages is set, then buf_pages/buf_ring are used. If not, + * then these are classic provided buffers and ->buf_list is used. + */ + union { + struct list_head buf_list; + struct { + struct page **buf_pages; + struct io_uring_buf_ring *buf_ring; + }; + }; + __u16 bgid; + + /* below is for ring provided buffers */ + __u16 buf_nr_pages; + __u16 nr_entries; + __u16 head; + __u16 mask; +}; + +struct io_buffer { + struct list_head list; + __u64 addr; + __u32 len; + __u16 bid; + __u16 bgid; +}; + +struct io_restriction { + DECLARE_BITMAP(register_op, IORING_REGISTER_LAST); + DECLARE_BITMAP(sqe_op, IORING_OP_LAST); + u8 sqe_flags_allowed; + u8 sqe_flags_required; + bool registered; +}; + +enum { + IO_SQ_THREAD_SHOULD_STOP = 0, + IO_SQ_THREAD_SHOULD_PARK, +}; + +struct io_sq_data { + refcount_t refs; + atomic_t park_pending; + struct mutex lock; + + /* ctx's that are using this sqd */ + struct list_head ctx_list; + + struct task_struct *thread; + struct wait_queue_head wait; + + unsigned sq_thread_idle; + int sq_cpu; + pid_t task_pid; + pid_t task_tgid; + + unsigned long state; + struct completion exited; +}; + +#define IO_COMPL_BATCH 32 +#define IO_REQ_CACHE_SIZE 32 +#define IO_REQ_ALLOC_BATCH 8 + +struct io_submit_link { + struct io_kiocb *head; + struct io_kiocb *last; +}; + +struct io_submit_state { + /* inline/task_work completion list, under ->uring_lock */ + struct io_wq_work_node free_list; + /* batch completion logic */ + struct io_wq_work_list compl_reqs; + struct io_submit_link link; + + bool plug_started; + bool need_plug; + bool flush_cqes; + unsigned short submit_nr; + struct blk_plug plug; +}; + +struct io_ev_fd { + struct eventfd_ctx *cq_ev_fd; + unsigned int eventfd_async: 1; + struct rcu_head rcu; +}; + +#define BGID_ARRAY 64 + +struct io_ring_ctx { + /* const or read-mostly hot data */ + struct { + struct percpu_ref refs; + + struct io_rings *rings; + unsigned int flags; + enum task_work_notify_mode notify_method; + unsigned int compat: 1; + unsigned int drain_next: 1; + unsigned int restricted: 1; + unsigned int off_timeout_used: 1; + unsigned int drain_active: 1; + unsigned int drain_disabled: 1; + unsigned int has_evfd: 1; + unsigned int syscall_iopoll: 1; + } ____cacheline_aligned_in_smp; + + /* submission data */ + struct { + struct mutex uring_lock; + + /* + * Ring buffer of indices into array of io_uring_sqe, which is + * mmapped by the application using the IORING_OFF_SQES offset. + * + * This indirection could e.g. be used to assign fixed + * io_uring_sqe entries to operations and only submit them to + * the queue when needed. + * + * The kernel modifies neither the indices array nor the entries + * array. + */ + u32 *sq_array; + struct io_uring_sqe *sq_sqes; + unsigned cached_sq_head; + unsigned sq_entries; + struct list_head defer_list; + + /* + * Fixed resources fast path, should be accessed only under + * uring_lock, and updated through io_uring_register(2) + */ + struct io_rsrc_node *rsrc_node; + int rsrc_cached_refs; + atomic_t cancel_seq; + struct io_file_table file_table; + unsigned nr_user_files; + unsigned nr_user_bufs; + struct io_mapped_ubuf **user_bufs; + + struct io_submit_state submit_state; + + struct io_buffer_list *io_bl; + struct xarray io_bl_xa; + struct list_head io_buffers_cache; + + struct list_head timeout_list; + struct list_head ltimeout_list; + struct list_head cq_overflow_list; + struct list_head apoll_cache; + struct xarray personalities; + u32 pers_next; + unsigned sq_thread_idle; + } ____cacheline_aligned_in_smp; + + /* IRQ completion list, under ->completion_lock */ + struct io_wq_work_list locked_free_list; + unsigned int locked_free_nr; + + const struct cred *sq_creds; /* cred used for __io_sq_thread() */ + struct io_sq_data *sq_data; /* if using sq thread polling */ + + struct wait_queue_head sqo_sq_wait; + struct list_head sqd_list; + + unsigned long check_cq; + + struct { + /* + * We cache a range of free CQEs we can use, once exhausted it + * should go through a slower range setup, see __io_get_cqe() + */ + struct io_uring_cqe *cqe_cached; + struct io_uring_cqe *cqe_sentinel; + + unsigned cached_cq_tail; + unsigned cq_entries; + struct io_ev_fd __rcu *io_ev_fd; + struct wait_queue_head cq_wait; + unsigned cq_extra; + atomic_t cq_timeouts; + unsigned cq_last_tm_flush; + } ____cacheline_aligned_in_smp; + + struct { + spinlock_t completion_lock; + + spinlock_t timeout_lock; + + /* + * ->iopoll_list is protected by the ctx->uring_lock for + * io_uring instances that don't use IORING_SETUP_SQPOLL. + * For SQPOLL, only the single threaded io_sq_thread() will + * manipulate the list, hence no extra locking is needed there. + */ + struct io_wq_work_list iopoll_list; + struct hlist_head *cancel_hash; + unsigned cancel_hash_bits; + bool poll_multi_queue; + + struct list_head io_buffers_comp; + } ____cacheline_aligned_in_smp; + + struct io_restriction restrictions; + + /* slow path rsrc auxilary data, used by update/register */ + struct { + struct io_rsrc_node *rsrc_backup_node; + struct io_mapped_ubuf *dummy_ubuf; + struct io_rsrc_data *file_data; + struct io_rsrc_data *buf_data; + + struct delayed_work rsrc_put_work; + struct llist_head rsrc_put_llist; + struct list_head rsrc_ref_list; + spinlock_t rsrc_ref_lock; + + struct list_head io_buffers_pages; + }; + + /* Keep this last, we don't need it for the fast path */ + struct { + #if defined(CONFIG_UNIX) + struct socket *ring_sock; + #endif + /* hashed buffered write serialization */ + struct io_wq_hash *hash_map; + + /* Only used for accounting purposes */ + struct user_struct *user; + struct mm_struct *mm_account; + + /* ctx exit and cancelation */ + struct llist_head fallback_llist; + struct delayed_work fallback_work; + struct work_struct exit_work; + struct list_head tctx_list; + struct completion ref_comp; + u32 iowq_limits[2]; + bool iowq_limits_set; + }; +}; + +/* + * Arbitrary limit, can be raised if need be + */ +#define IO_RINGFD_REG_MAX 16 + +struct io_uring_task { + /* submission side */ + int cached_refs; + struct xarray xa; + struct wait_queue_head wait; + const struct io_ring_ctx *last; + struct io_wq *io_wq; + struct percpu_counter inflight; + atomic_t inflight_tracked; + atomic_t in_idle; + + spinlock_t task_lock; + struct io_wq_work_list task_list; + struct io_wq_work_list prio_task_list; + struct callback_head task_work; + struct file **registered_rings; + bool task_running; +}; + +/* + * First field must be the file pointer in all the + * iocb unions! See also 'struct kiocb' in + */ +struct io_poll_iocb { + struct file *file; + struct wait_queue_head *head; + __poll_t events; + struct wait_queue_entry wait; +}; + +struct io_poll_update { + struct file *file; + u64 old_user_data; + u64 new_user_data; + __poll_t events; + bool update_events; + bool update_user_data; +}; + +struct io_close { + struct file *file; + int fd; + u32 file_slot; +}; + +struct io_timeout_data { + struct io_kiocb *req; + struct hrtimer timer; + struct timespec64 ts; + enum hrtimer_mode mode; + u32 flags; +}; + +struct io_accept { + struct file *file; + struct sockaddr __user *addr; + int __user *addr_len; + int flags; + u32 file_slot; + unsigned long nofile; +}; + +struct io_socket { + struct file *file; + int domain; + int type; + int protocol; + int flags; + u32 file_slot; + unsigned long nofile; +}; + +struct io_sync { + struct file *file; + loff_t len; + loff_t off; + int flags; + int mode; +}; + +struct io_cancel { + struct file *file; + u64 addr; + u32 flags; + s32 fd; +}; + +struct io_timeout { + struct file *file; + u32 off; + u32 target_seq; + struct list_head list; + /* head of the link, used by linked timeouts only */ + struct io_kiocb *head; + /* for linked completions */ + struct io_kiocb *prev; +}; + +struct io_timeout_rem { + struct file *file; + u64 addr; + + /* timeout update */ + struct timespec64 ts; + u32 flags; + bool ltimeout; +}; + +struct io_rw { + /* NOTE: kiocb has the file as the first member, so don't do it here */ + struct kiocb kiocb; + u64 addr; + u32 len; + rwf_t flags; +}; + +struct io_connect { + struct file *file; + struct sockaddr __user *addr; + int addr_len; +}; + +struct io_sr_msg { + struct file *file; + union { + struct compat_msghdr __user *umsg_compat; + struct user_msghdr __user *umsg; + void __user *buf; + }; + int msg_flags; + size_t len; + size_t done_io; + unsigned int flags; +}; + +struct io_open { + struct file *file; + int dfd; + u32 file_slot; + struct filename *filename; + struct open_how how; + unsigned long nofile; +}; + +struct io_rsrc_update { + struct file *file; + u64 arg; + u32 nr_args; + u32 offset; +}; + +struct io_fadvise { + struct file *file; + u64 offset; + u32 len; + u32 advice; +}; + +struct io_madvise { + struct file *file; + u64 addr; + u32 len; + u32 advice; +}; + +struct io_epoll { + struct file *file; + int epfd; + int op; + int fd; + struct epoll_event event; +}; + +struct io_splice { + struct file *file_out; + loff_t off_out; + loff_t off_in; + u64 len; + int splice_fd_in; + unsigned int flags; +}; + +struct io_provide_buf { + struct file *file; + __u64 addr; + __u32 len; + __u32 bgid; + __u16 nbufs; + __u16 bid; +}; + +struct io_statx { + struct file *file; + int dfd; + unsigned int mask; + unsigned int flags; + struct filename *filename; + struct statx __user *buffer; +}; + +struct io_shutdown { + struct file *file; + int how; +}; + +struct io_rename { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_unlink { + struct file *file; + int dfd; + int flags; + struct filename *filename; +}; + +struct io_mkdir { + struct file *file; + int dfd; + umode_t mode; + struct filename *filename; +}; + +struct io_symlink { + struct file *file; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; +}; + +struct io_hardlink { + struct file *file; + int old_dfd; + int new_dfd; + struct filename *oldpath; + struct filename *newpath; + int flags; +}; + +struct io_msg { + struct file *file; + u64 user_data; + u32 len; +}; + +struct io_async_connect { + struct sockaddr_storage address; +}; + +struct io_async_msghdr { + struct iovec fast_iov[UIO_FASTIOV]; + /* points to an allocated iov, if NULL we use fast_iov instead */ + struct iovec *free_iov; + struct sockaddr __user *uaddr; + struct msghdr msg; + struct sockaddr_storage addr; +}; + +struct io_rw_state { + struct iov_iter iter; + struct iov_iter_state iter_state; + struct iovec fast_iov[UIO_FASTIOV]; +}; + +struct io_async_rw { + struct io_rw_state s; + const struct iovec *free_iovec; + size_t bytes_done; + struct wait_page_queue wpq; +}; + +struct io_xattr { + struct file *file; + struct xattr_ctx ctx; + struct filename *filename; +}; + +enum { + REQ_F_FIXED_FILE_BIT = IOSQE_FIXED_FILE_BIT, + REQ_F_IO_DRAIN_BIT = IOSQE_IO_DRAIN_BIT, + REQ_F_LINK_BIT = IOSQE_IO_LINK_BIT, + REQ_F_HARDLINK_BIT = IOSQE_IO_HARDLINK_BIT, + REQ_F_FORCE_ASYNC_BIT = IOSQE_ASYNC_BIT, + REQ_F_BUFFER_SELECT_BIT = IOSQE_BUFFER_SELECT_BIT, + REQ_F_CQE_SKIP_BIT = IOSQE_CQE_SKIP_SUCCESS_BIT, + + /* first byte is taken by user flags, shift it to not overlap */ + REQ_F_FAIL_BIT = 8, + REQ_F_INFLIGHT_BIT, + REQ_F_CUR_POS_BIT, + REQ_F_NOWAIT_BIT, + REQ_F_LINK_TIMEOUT_BIT, + REQ_F_NEED_CLEANUP_BIT, + REQ_F_POLLED_BIT, + REQ_F_BUFFER_SELECTED_BIT, + REQ_F_BUFFER_RING_BIT, + REQ_F_COMPLETE_INLINE_BIT, + REQ_F_REISSUE_BIT, + REQ_F_CREDS_BIT, + REQ_F_REFCOUNT_BIT, + REQ_F_ARM_LTIMEOUT_BIT, + REQ_F_ASYNC_DATA_BIT, + REQ_F_SKIP_LINK_CQES_BIT, + REQ_F_SINGLE_POLL_BIT, + REQ_F_DOUBLE_POLL_BIT, + REQ_F_PARTIAL_IO_BIT, + REQ_F_CQE32_INIT_BIT, + REQ_F_APOLL_MULTISHOT_BIT, + /* keep async read/write and isreg together and in order */ + REQ_F_SUPPORT_NOWAIT_BIT, + REQ_F_ISREG_BIT, + + /* not a real bit, just to check we're not overflowing the space */ + __REQ_F_LAST_BIT, +}; + +enum { + /* ctx owns file */ + REQ_F_FIXED_FILE = BIT(REQ_F_FIXED_FILE_BIT), + /* drain existing IO first */ + REQ_F_IO_DRAIN = BIT(REQ_F_IO_DRAIN_BIT), + /* linked sqes */ + REQ_F_LINK = BIT(REQ_F_LINK_BIT), + /* doesn't sever on completion < 0 */ + REQ_F_HARDLINK = BIT(REQ_F_HARDLINK_BIT), + /* IOSQE_ASYNC */ + REQ_F_FORCE_ASYNC = BIT(REQ_F_FORCE_ASYNC_BIT), + /* IOSQE_BUFFER_SELECT */ + REQ_F_BUFFER_SELECT = BIT(REQ_F_BUFFER_SELECT_BIT), + /* IOSQE_CQE_SKIP_SUCCESS */ + REQ_F_CQE_SKIP = BIT(REQ_F_CQE_SKIP_BIT), + + /* fail rest of links */ + REQ_F_FAIL = BIT(REQ_F_FAIL_BIT), + /* on inflight list, should be cancelled and waited on exit reliably */ + REQ_F_INFLIGHT = BIT(REQ_F_INFLIGHT_BIT), + /* read/write uses file position */ + REQ_F_CUR_POS = BIT(REQ_F_CUR_POS_BIT), + /* must not punt to workers */ + REQ_F_NOWAIT = BIT(REQ_F_NOWAIT_BIT), + /* has or had linked timeout */ + REQ_F_LINK_TIMEOUT = BIT(REQ_F_LINK_TIMEOUT_BIT), + /* needs cleanup */ + REQ_F_NEED_CLEANUP = BIT(REQ_F_NEED_CLEANUP_BIT), + /* already went through poll handler */ + REQ_F_POLLED = BIT(REQ_F_POLLED_BIT), + /* buffer already selected */ + REQ_F_BUFFER_SELECTED = BIT(REQ_F_BUFFER_SELECTED_BIT), + /* buffer selected from ring, needs commit */ + REQ_F_BUFFER_RING = BIT(REQ_F_BUFFER_RING_BIT), + /* completion is deferred through io_comp_state */ + REQ_F_COMPLETE_INLINE = BIT(REQ_F_COMPLETE_INLINE_BIT), + /* caller should reissue async */ + REQ_F_REISSUE = BIT(REQ_F_REISSUE_BIT), + /* supports async reads/writes */ + REQ_F_SUPPORT_NOWAIT = BIT(REQ_F_SUPPORT_NOWAIT_BIT), + /* regular file */ + REQ_F_ISREG = BIT(REQ_F_ISREG_BIT), + /* has creds assigned */ + REQ_F_CREDS = BIT(REQ_F_CREDS_BIT), + /* skip refcounting if not set */ + REQ_F_REFCOUNT = BIT(REQ_F_REFCOUNT_BIT), + /* there is a linked timeout that has to be armed */ + REQ_F_ARM_LTIMEOUT = BIT(REQ_F_ARM_LTIMEOUT_BIT), + /* ->async_data allocated */ + REQ_F_ASYNC_DATA = BIT(REQ_F_ASYNC_DATA_BIT), + /* don't post CQEs while failing linked requests */ + REQ_F_SKIP_LINK_CQES = BIT(REQ_F_SKIP_LINK_CQES_BIT), + /* single poll may be active */ + REQ_F_SINGLE_POLL = BIT(REQ_F_SINGLE_POLL_BIT), + /* double poll may active */ + REQ_F_DOUBLE_POLL = BIT(REQ_F_DOUBLE_POLL_BIT), + /* request has already done partial IO */ + REQ_F_PARTIAL_IO = BIT(REQ_F_PARTIAL_IO_BIT), + /* fast poll multishot mode */ + REQ_F_APOLL_MULTISHOT = BIT(REQ_F_APOLL_MULTISHOT_BIT), + /* ->extra1 and ->extra2 are initialised */ + REQ_F_CQE32_INIT = BIT(REQ_F_CQE32_INIT_BIT), +}; + +struct async_poll { + struct io_poll_iocb poll; + struct io_poll_iocb *double_poll; +}; + +typedef void (*io_req_tw_func_t)(struct io_kiocb *req, bool *locked); + +struct io_task_work { + union { + struct io_wq_work_node node; + struct llist_node fallback_node; + }; + io_req_tw_func_t func; +}; + +enum { + IORING_RSRC_FILE = 0, + IORING_RSRC_BUFFER = 1, +}; + +struct io_cqe { + __u64 user_data; + __s32 res; + /* fd initially, then cflags for completion */ + union { + __u32 flags; + int fd; + }; +}; + +enum { + IO_CHECK_CQ_OVERFLOW_BIT, + IO_CHECK_CQ_DROPPED_BIT, +}; + +/* + * NOTE! Each of the iocb union members has the file pointer + * as the first entry in their struct definition. So you can + * access the file pointer through any of the sub-structs, + * or directly as just 'file' in this struct. + */ +struct io_kiocb { + union { + struct file *file; + struct io_rw rw; + struct io_poll_iocb poll; + struct io_poll_update poll_update; + struct io_accept accept; + struct io_sync sync; + struct io_cancel cancel; + struct io_timeout timeout; + struct io_timeout_rem timeout_rem; + struct io_connect connect; + struct io_sr_msg sr_msg; + struct io_open open; + struct io_close close; + struct io_rsrc_update rsrc_update; + struct io_fadvise fadvise; + struct io_madvise madvise; + struct io_epoll epoll; + struct io_splice splice; + struct io_provide_buf pbuf; + struct io_statx statx; + struct io_shutdown shutdown; + struct io_rename rename; + struct io_unlink unlink; + struct io_mkdir mkdir; + struct io_symlink symlink; + struct io_hardlink hardlink; + struct io_msg msg; + struct io_xattr xattr; + struct io_socket sock; + struct io_uring_cmd uring_cmd; + }; + + u8 opcode; + /* polled IO has completed */ + u8 iopoll_completed; + /* + * Can be either a fixed buffer index, or used with provided buffers. + * For the latter, before issue it points to the buffer group ID, + * and after selection it points to the buffer ID itself. + */ + u16 buf_index; + unsigned int flags; + + struct io_cqe cqe; + + struct io_ring_ctx *ctx; + struct task_struct *task; + + struct io_rsrc_node *rsrc_node; + + union { + /* store used ubuf, so we can prevent reloading */ + struct io_mapped_ubuf *imu; + + /* stores selected buf, valid IFF REQ_F_BUFFER_SELECTED is set */ + struct io_buffer *kbuf; + + /* + * stores buffer ID for ring provided buffers, valid IFF + * REQ_F_BUFFER_RING is set. + */ + struct io_buffer_list *buf_list; + }; + + union { + /* used by request caches, completion batching and iopoll */ + struct io_wq_work_node comp_list; + /* cache ->apoll->events */ + __poll_t apoll_events; + }; + atomic_t refs; + atomic_t poll_refs; + struct io_task_work io_task_work; + /* for polled requests, i.e. IORING_OP_POLL_ADD and async armed poll */ + union { + struct hlist_node hash_node; + struct { + u64 extra1; + u64 extra2; + }; + }; + /* internal polling, see IORING_FEAT_FAST_POLL */ + struct async_poll *apoll; + /* opcode allocated if it needs to store data for async defer */ + void *async_data; + /* linked requests, IFF REQ_F_HARDLINK or REQ_F_LINK are set */ + struct io_kiocb *link; + /* custom credentials, valid IFF REQ_F_CREDS is set */ + const struct cred *creds; + struct io_wq_work work; +}; + +struct io_tctx_node { + struct list_head ctx_node; + struct task_struct *task; + struct io_ring_ctx *ctx; +}; + +struct io_defer_entry { + struct list_head list; + struct io_kiocb *req; + u32 seq; +}; + +struct io_cancel_data { + struct io_ring_ctx *ctx; + union { + u64 data; + struct file *file; + }; + u32 flags; + int seq; +}; + +/* + * The URING_CMD payload starts at 'cmd' in the first sqe, and continues into + * the following sqe if SQE128 is used. + */ +#define uring_cmd_pdu_size(is_sqe128) \ + ((1 + !!(is_sqe128)) * sizeof(struct io_uring_sqe) - \ + offsetof(struct io_uring_sqe, cmd)) + +struct io_op_def { + /* needs req->file assigned */ + unsigned needs_file : 1; + /* should block plug */ + unsigned plug : 1; + /* hash wq insertion if file is a regular file */ + unsigned hash_reg_file : 1; + /* unbound wq insertion if file is a non-regular file */ + unsigned unbound_nonreg_file : 1; + /* set if opcode supports polled "wait" */ + unsigned pollin : 1; + unsigned pollout : 1; + unsigned poll_exclusive : 1; + /* op supports buffer selection */ + unsigned buffer_select : 1; + /* do prep async if is going to be punted */ + unsigned needs_async_setup : 1; + /* opcode is not supported by this kernel */ + unsigned not_supported : 1; + /* skip auditing */ + unsigned audit_skip : 1; + /* supports ioprio */ + unsigned ioprio : 1; + /* supports iopoll */ + unsigned iopoll : 1; + /* size of async data needed, if any */ + unsigned short async_size; + + int (*prep)(struct io_kiocb *, const struct io_uring_sqe *); + int (*issue)(struct io_kiocb *, unsigned int); +}; + +static const struct io_op_def io_op_defs[]; + +/* requests with any of those set should undergo io_disarm_next() */ +#define IO_DISARM_MASK (REQ_F_ARM_LTIMEOUT | REQ_F_LINK_TIMEOUT | REQ_F_FAIL) +#define IO_REQ_LINK_FLAGS (REQ_F_LINK | REQ_F_HARDLINK) + +static bool io_disarm_next(struct io_kiocb *req); +static void io_uring_del_tctx_node(unsigned long index); +static void io_uring_try_cancel_requests(struct io_ring_ctx *ctx, + struct task_struct *task, + bool cancel_all); +static void io_uring_cancel_generic(bool cancel_all, struct io_sq_data *sqd); + +static void __io_req_complete_post(struct io_kiocb *req, s32 res, u32 cflags); +static void io_dismantle_req(struct io_kiocb *req); +static void io_queue_linked_timeout(struct io_kiocb *req); +static int __io_register_rsrc_update(struct io_ring_ctx *ctx, unsigned type, + struct io_uring_rsrc_update2 *up, + unsigned nr_args); +static void io_clean_op(struct io_kiocb *req); +static inline struct file *io_file_get_fixed(struct io_kiocb *req, int fd, + unsigned issue_flags); +static struct file *io_file_get_normal(struct io_kiocb *req, int fd); +static void io_queue_sqe(struct io_kiocb *req); +static void io_rsrc_put_work(struct work_struct *work); + +static void io_req_task_queue(struct io_kiocb *req); +static void __io_submit_flush_completions(struct io_ring_ctx *ctx); +static int io_req_prep_async(struct io_kiocb *req); + +static int io_install_fixed_file(struct io_kiocb *req, struct file *file, + unsigned int issue_flags, u32 slot_index); +static int __io_close_fixed(struct io_kiocb *req, unsigned int issue_flags, + unsigned int offset); +static inline int io_close_fixed(struct io_kiocb *req, unsigned int issue_flags); + +static enum hrtimer_restart io_link_timeout_fn(struct hrtimer *timer); +static void io_eventfd_signal(struct io_ring_ctx *ctx); +static void io_req_tw_post_queue(struct io_kiocb *req, s32 res, u32 cflags); + +static struct kmem_cache *req_cachep; + +static const struct file_operations io_uring_fops; + +const char *io_uring_get_opcode(u8 opcode) +{ + switch ((enum io_uring_op)opcode) { + case IORING_OP_NOP: + return "NOP"; + case IORING_OP_READV: + return "READV"; + case IORING_OP_WRITEV: + return "WRITEV"; + case IORING_OP_FSYNC: + return "FSYNC"; + case IORING_OP_READ_FIXED: + return "READ_FIXED"; + case IORING_OP_WRITE_FIXED: + return "WRITE_FIXED"; + case IORING_OP_POLL_ADD: + return "POLL_ADD"; + case IORING_OP_POLL_REMOVE: + return "POLL_REMOVE"; + case IORING_OP_SYNC_FILE_RANGE: + return "SYNC_FILE_RANGE"; + case IORING_OP_SENDMSG: + return "SENDMSG"; + case IORING_OP_RECVMSG: + return "RECVMSG"; + case IORING_OP_TIMEOUT: + return "TIMEOUT"; + case IORING_OP_TIMEOUT_REMOVE: + return "TIMEOUT_REMOVE"; + case IORING_OP_ACCEPT: + return "ACCEPT"; + case IORING_OP_ASYNC_CANCEL: + return "ASYNC_CANCEL"; + case IORING_OP_LINK_TIMEOUT: + return "LINK_TIMEOUT"; + case IORING_OP_CONNECT: + return "CONNECT"; + case IORING_OP_FALLOCATE: + return "FALLOCATE"; + case IORING_OP_OPENAT: + return "OPENAT"; + case IORING_OP_CLOSE: + return "CLOSE"; + case IORING_OP_FILES_UPDATE: + return "FILES_UPDATE"; + case IORING_OP_STATX: + return "STATX"; + case IORING_OP_READ: + return "READ"; + case IORING_OP_WRITE: + return "WRITE"; + case IORING_OP_FADVISE: + return "FADVISE"; + case IORING_OP_MADVISE: + return "MADVISE"; + case IORING_OP_SEND: + return "SEND"; + case IORING_OP_RECV: + return "RECV"; + case IORING_OP_OPENAT2: + return "OPENAT2"; + case IORING_OP_EPOLL_CTL: + return "EPOLL_CTL"; + case IORING_OP_SPLICE: + return "SPLICE"; + case IORING_OP_PROVIDE_BUFFERS: + return "PROVIDE_BUFFERS"; + case IORING_OP_REMOVE_BUFFERS: + return "REMOVE_BUFFERS"; + case IORING_OP_TEE: + return "TEE"; + case IORING_OP_SHUTDOWN: + return "SHUTDOWN"; + case IORING_OP_RENAMEAT: + return "RENAMEAT"; + case IORING_OP_UNLINKAT: + return "UNLINKAT"; + case IORING_OP_MKDIRAT: + return "MKDIRAT"; + case IORING_OP_SYMLINKAT: + return "SYMLINKAT"; + case IORING_OP_LINKAT: + return "LINKAT"; + case IORING_OP_MSG_RING: + return "MSG_RING"; + case IORING_OP_FSETXATTR: + return "FSETXATTR"; + case IORING_OP_SETXATTR: + return "SETXATTR"; + case IORING_OP_FGETXATTR: + return "FGETXATTR"; + case IORING_OP_GETXATTR: + return "GETXATTR"; + case IORING_OP_SOCKET: + return "SOCKET"; + case IORING_OP_URING_CMD: + return "URING_CMD"; + case IORING_OP_LAST: + return "INVALID"; + } + return "INVALID"; +} + +struct sock *io_uring_get_socket(struct file *file) +{ +#if defined(CONFIG_UNIX) + if (file->f_op == &io_uring_fops) { + struct io_ring_ctx *ctx = file->private_data; + + return ctx->ring_sock->sk; + } +#endif + return NULL; +} +EXPORT_SYMBOL(io_uring_get_socket); + +#if defined(CONFIG_UNIX) +static inline bool io_file_need_scm(struct file *filp) +{ +#if defined(IO_URING_SCM_ALL) + return true; +#else + return !!unix_get_socket(filp); +#endif +} +#else +static inline bool io_file_need_scm(struct file *filp) +{ + return false; +} +#endif + +static void io_ring_submit_unlock(struct io_ring_ctx *ctx, unsigned issue_flags) +{ + lockdep_assert_held(&ctx->uring_lock); + if (issue_flags & IO_URING_F_UNLOCKED) + mutex_unlock(&ctx->uring_lock); +} + +static void io_ring_submit_lock(struct io_ring_ctx *ctx, unsigned issue_flags) +{ + /* + * "Normal" inline submissions always hold the uring_lock, since we + * grab it from the system call. Same is true for the SQPOLL offload. + * The only exception is when we've detached the request and issue it + * from an async worker thread, grab the lock for that case. + */ + if (issue_flags & IO_URING_F_UNLOCKED) + mutex_lock(&ctx->uring_lock); + lockdep_assert_held(&ctx->uring_lock); +} + +static inline void io_tw_lock(struct io_ring_ctx *ctx, bool *locked) +{ + if (!*locked) { + mutex_lock(&ctx->uring_lock); + *locked = true; + } +} + +#define io_for_each_link(pos, head) \ + for (pos = (head); pos; pos = pos->link) + +/* + * Shamelessly stolen from the mm implementation of page reference checking, + * see commit f958d7b528b1 for details. + */ +#define req_ref_zero_or_close_to_overflow(req) \ + ((unsigned int) atomic_read(&(req->refs)) + 127u <= 127u) + +static inline bool req_ref_inc_not_zero(struct io_kiocb *req) +{ + WARN_ON_ONCE(!(req->flags & REQ_F_REFCOUNT)); + return atomic_inc_not_zero(&req->refs); +} + +static inline bool req_ref_put_and_test(struct io_kiocb *req) +{ + if (likely(!(req->flags & REQ_F_REFCOUNT))) + return true; + + WARN_ON_ONCE(req_ref_zero_or_close_to_overflow(req)); + return atomic_dec_and_test(&req->refs); +} + +static inline void req_ref_get(struct io_kiocb *req) +{ + WARN_ON_ONCE(!(req->flags & REQ_F_REFCOUNT)); + WARN_ON_ONCE(req_ref_zero_or_close_to_overflow(req)); + atomic_inc(&req->refs); +} + +static inline void io_submit_flush_completions(struct io_ring_ctx *ctx) +{ + if (!wq_list_empty(&ctx->submit_state.compl_reqs)) + __io_submit_flush_completions(ctx); +} + +static inline void __io_req_set_refcount(struct io_kiocb *req, int nr) +{ + if (!(req->flags & REQ_F_REFCOUNT)) { + req->flags |= REQ_F_REFCOUNT; + atomic_set(&req->refs, nr); + } +} + +static inline void io_req_set_refcount(struct io_kiocb *req) +{ + __io_req_set_refcount(req, 1); +} + +#define IO_RSRC_REF_BATCH 100 + +static void io_rsrc_put_node(struct io_rsrc_node *node, int nr) +{ + percpu_ref_put_many(&node->refs, nr); +} + +static inline void io_req_put_rsrc_locked(struct io_kiocb *req, + struct io_ring_ctx *ctx) + __must_hold(&ctx->uring_lock) +{ + struct io_rsrc_node *node = req->rsrc_node; + + if (node) { + if (node == ctx->rsrc_node) + ctx->rsrc_cached_refs++; + else + io_rsrc_put_node(node, 1); + } +} + +static inline void io_req_put_rsrc(struct io_kiocb *req) +{ + if (req->rsrc_node) + io_rsrc_put_node(req->rsrc_node, 1); +} + +static __cold void io_rsrc_refs_drop(struct io_ring_ctx *ctx) + __must_hold(&ctx->uring_lock) +{ + if (ctx->rsrc_cached_refs) { + io_rsrc_put_node(ctx->rsrc_node, ctx->rsrc_cached_refs); + ctx->rsrc_cached_refs = 0; + } +} + +static void io_rsrc_refs_refill(struct io_ring_ctx *ctx) + __must_hold(&ctx->uring_lock) +{ + ctx->rsrc_cached_refs += IO_RSRC_REF_BATCH; + percpu_ref_get_many(&ctx->rsrc_node->refs, IO_RSRC_REF_BATCH); +} + +static inline void io_req_set_rsrc_node(struct io_kiocb *req, + struct io_ring_ctx *ctx, + unsigned int issue_flags) +{ + if (!req->rsrc_node) { + req->rsrc_node = ctx->rsrc_node; + + if (!(issue_flags & IO_URING_F_UNLOCKED)) { + lockdep_assert_held(&ctx->uring_lock); + ctx->rsrc_cached_refs--; + if (unlikely(ctx->rsrc_cached_refs < 0)) + io_rsrc_refs_refill(ctx); + } else { + percpu_ref_get(&req->rsrc_node->refs); + } + } +} + +static unsigned int __io_put_kbuf(struct io_kiocb *req, struct list_head *list) +{ + if (req->flags & REQ_F_BUFFER_RING) { + if (req->buf_list) + req->buf_list->head++; + req->flags &= ~REQ_F_BUFFER_RING; + } else { + list_add(&req->kbuf->list, list); + req->flags &= ~REQ_F_BUFFER_SELECTED; + } + + return IORING_CQE_F_BUFFER | (req->buf_index << IORING_CQE_BUFFER_SHIFT); +} + +static inline unsigned int io_put_kbuf_comp(struct io_kiocb *req) +{ + lockdep_assert_held(&req->ctx->completion_lock); + + if (!(req->flags & (REQ_F_BUFFER_SELECTED|REQ_F_BUFFER_RING))) + return 0; + return __io_put_kbuf(req, &req->ctx->io_buffers_comp); +} + +static inline unsigned int io_put_kbuf(struct io_kiocb *req, + unsigned issue_flags) +{ + unsigned int cflags; + + if (!(req->flags & (REQ_F_BUFFER_SELECTED|REQ_F_BUFFER_RING))) + return 0; + + /* + * We can add this buffer back to two lists: + * + * 1) The io_buffers_cache list. This one is protected by the + * ctx->uring_lock. If we already hold this lock, add back to this + * list as we can grab it from issue as well. + * 2) The io_buffers_comp list. This one is protected by the + * ctx->completion_lock. + * + * We migrate buffers from the comp_list to the issue cache list + * when we need one. + */ + if (req->flags & REQ_F_BUFFER_RING) { + /* no buffers to recycle for this case */ + cflags = __io_put_kbuf(req, NULL); + } else if (issue_flags & IO_URING_F_UNLOCKED) { + struct io_ring_ctx *ctx = req->ctx; + + spin_lock(&ctx->completion_lock); + cflags = __io_put_kbuf(req, &ctx->io_buffers_comp); + spin_unlock(&ctx->completion_lock); + } else { + lockdep_assert_held(&req->ctx->uring_lock); + + cflags = __io_put_kbuf(req, &req->ctx->io_buffers_cache); + } + + return cflags; +} + +static struct io_buffer_list *io_buffer_get_list(struct io_ring_ctx *ctx, + unsigned int bgid) +{ + if (ctx->io_bl && bgid < BGID_ARRAY) + return &ctx->io_bl[bgid]; + + return xa_load(&ctx->io_bl_xa, bgid); +} + +static void io_kbuf_recycle(struct io_kiocb *req, unsigned issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_buffer_list *bl; + struct io_buffer *buf; + + if (!(req->flags & (REQ_F_BUFFER_SELECTED|REQ_F_BUFFER_RING))) + return; + /* + * For legacy provided buffer mode, don't recycle if we already did + * IO to this buffer. For ring-mapped provided buffer mode, we should + * increment ring->head to explicitly monopolize the buffer to avoid + * multiple use. + */ + if ((req->flags & REQ_F_BUFFER_SELECTED) && + (req->flags & REQ_F_PARTIAL_IO)) + return; + + /* + * READV uses fields in `struct io_rw` (len/addr) to stash the selected + * buffer data. However if that buffer is recycled the original request + * data stored in addr is lost. Therefore forbid recycling for now. + */ + if (req->opcode == IORING_OP_READV) + return; + + /* + * We don't need to recycle for REQ_F_BUFFER_RING, we can just clear + * the flag and hence ensure that bl->head doesn't get incremented. + * If the tail has already been incremented, hang on to it. + */ + if (req->flags & REQ_F_BUFFER_RING) { + if (req->buf_list) { + if (req->flags & REQ_F_PARTIAL_IO) { + req->buf_list->head++; + req->buf_list = NULL; + } else { + req->buf_index = req->buf_list->bgid; + req->flags &= ~REQ_F_BUFFER_RING; + } + } + return; + } + + io_ring_submit_lock(ctx, issue_flags); + + buf = req->kbuf; + bl = io_buffer_get_list(ctx, buf->bgid); + list_add(&buf->list, &bl->buf_list); + req->flags &= ~REQ_F_BUFFER_SELECTED; + req->buf_index = buf->bgid; + + io_ring_submit_unlock(ctx, issue_flags); +} + +static bool io_match_task(struct io_kiocb *head, struct task_struct *task, + bool cancel_all) + __must_hold(&req->ctx->timeout_lock) +{ + struct io_kiocb *req; + + if (task && head->task != task) + return false; + if (cancel_all) + return true; + + io_for_each_link(req, head) { + if (req->flags & REQ_F_INFLIGHT) + return true; + } + return false; +} + +static inline unsigned int __io_cqring_events_user(struct io_ring_ctx *ctx) +{ + return READ_ONCE(ctx->rings->cq.tail) - READ_ONCE(ctx->rings->cq.head); +} + +static bool io_match_linked(struct io_kiocb *head) +{ + struct io_kiocb *req; + + io_for_each_link(req, head) { + if (req->flags & REQ_F_INFLIGHT) + return true; + } + return false; +} + +/* + * As io_match_task() but protected against racing with linked timeouts. + * User must not hold timeout_lock. + */ +static bool io_match_task_safe(struct io_kiocb *head, struct task_struct *task, + bool cancel_all) +{ + bool matched; + + if (task && head->task != task) + return false; + if (cancel_all) + return true; + + if (head->flags & REQ_F_LINK_TIMEOUT) { + struct io_ring_ctx *ctx = head->ctx; + + /* protect against races with linked timeouts */ + spin_lock_irq(&ctx->timeout_lock); + matched = io_match_linked(head); + spin_unlock_irq(&ctx->timeout_lock); + } else { + matched = io_match_linked(head); + } + return matched; +} + +static inline bool req_has_async_data(struct io_kiocb *req) +{ + return req->flags & REQ_F_ASYNC_DATA; +} + +static inline void req_set_fail(struct io_kiocb *req) +{ + req->flags |= REQ_F_FAIL; + if (req->flags & REQ_F_CQE_SKIP) { + req->flags &= ~REQ_F_CQE_SKIP; + req->flags |= REQ_F_SKIP_LINK_CQES; + } +} + +static inline void req_fail_link_node(struct io_kiocb *req, int res) +{ + req_set_fail(req); + req->cqe.res = res; +} + +static inline void io_req_add_to_cache(struct io_kiocb *req, struct io_ring_ctx *ctx) +{ + wq_stack_add_head(&req->comp_list, &ctx->submit_state.free_list); +} + +static __cold void io_ring_ctx_ref_free(struct percpu_ref *ref) +{ + struct io_ring_ctx *ctx = container_of(ref, struct io_ring_ctx, refs); + + complete(&ctx->ref_comp); +} + +static inline bool io_is_timeout_noseq(struct io_kiocb *req) +{ + return !req->timeout.off; +} + +static __cold void io_fallback_req_func(struct work_struct *work) +{ + struct io_ring_ctx *ctx = container_of(work, struct io_ring_ctx, + fallback_work.work); + struct llist_node *node = llist_del_all(&ctx->fallback_llist); + struct io_kiocb *req, *tmp; + bool locked = false; + + percpu_ref_get(&ctx->refs); + llist_for_each_entry_safe(req, tmp, node, io_task_work.fallback_node) + req->io_task_work.func(req, &locked); + + if (locked) { + io_submit_flush_completions(ctx); + mutex_unlock(&ctx->uring_lock); + } + percpu_ref_put(&ctx->refs); +} + +static __cold struct io_ring_ctx *io_ring_ctx_alloc(struct io_uring_params *p) +{ + struct io_ring_ctx *ctx; + int hash_bits; + + ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return NULL; + + xa_init(&ctx->io_bl_xa); + + /* + * Use 5 bits less than the max cq entries, that should give us around + * 32 entries per hash list if totally full and uniformly spread. + */ + hash_bits = ilog2(p->cq_entries); + hash_bits -= 5; + if (hash_bits <= 0) + hash_bits = 1; + ctx->cancel_hash_bits = hash_bits; + ctx->cancel_hash = kmalloc((1U << hash_bits) * sizeof(struct hlist_head), + GFP_KERNEL); + if (!ctx->cancel_hash) + goto err; + __hash_init(ctx->cancel_hash, 1U << hash_bits); + + ctx->dummy_ubuf = kzalloc(sizeof(*ctx->dummy_ubuf), GFP_KERNEL); + if (!ctx->dummy_ubuf) + goto err; + /* set invalid range, so io_import_fixed() fails meeting it */ + ctx->dummy_ubuf->ubuf = -1UL; + + if (percpu_ref_init(&ctx->refs, io_ring_ctx_ref_free, + 0, GFP_KERNEL)) + goto err; + + ctx->flags = p->flags; + init_waitqueue_head(&ctx->sqo_sq_wait); + INIT_LIST_HEAD(&ctx->sqd_list); + INIT_LIST_HEAD(&ctx->cq_overflow_list); + INIT_LIST_HEAD(&ctx->io_buffers_cache); + INIT_LIST_HEAD(&ctx->apoll_cache); + init_completion(&ctx->ref_comp); + xa_init_flags(&ctx->personalities, XA_FLAGS_ALLOC1); + mutex_init(&ctx->uring_lock); + init_waitqueue_head(&ctx->cq_wait); + spin_lock_init(&ctx->completion_lock); + spin_lock_init(&ctx->timeout_lock); + INIT_WQ_LIST(&ctx->iopoll_list); + INIT_LIST_HEAD(&ctx->io_buffers_pages); + INIT_LIST_HEAD(&ctx->io_buffers_comp); + INIT_LIST_HEAD(&ctx->defer_list); + INIT_LIST_HEAD(&ctx->timeout_list); + INIT_LIST_HEAD(&ctx->ltimeout_list); + spin_lock_init(&ctx->rsrc_ref_lock); + INIT_LIST_HEAD(&ctx->rsrc_ref_list); + INIT_DELAYED_WORK(&ctx->rsrc_put_work, io_rsrc_put_work); + init_llist_head(&ctx->rsrc_put_llist); + INIT_LIST_HEAD(&ctx->tctx_list); + ctx->submit_state.free_list.next = NULL; + INIT_WQ_LIST(&ctx->locked_free_list); + INIT_DELAYED_WORK(&ctx->fallback_work, io_fallback_req_func); + INIT_WQ_LIST(&ctx->submit_state.compl_reqs); + return ctx; +err: + kfree(ctx->dummy_ubuf); + kfree(ctx->cancel_hash); + kfree(ctx->io_bl); + xa_destroy(&ctx->io_bl_xa); + kfree(ctx); + return NULL; +} + +static void io_account_cq_overflow(struct io_ring_ctx *ctx) +{ + struct io_rings *r = ctx->rings; + + WRITE_ONCE(r->cq_overflow, READ_ONCE(r->cq_overflow) + 1); + ctx->cq_extra--; +} + +static bool req_need_defer(struct io_kiocb *req, u32 seq) +{ + if (unlikely(req->flags & REQ_F_IO_DRAIN)) { + struct io_ring_ctx *ctx = req->ctx; + + return seq + READ_ONCE(ctx->cq_extra) != ctx->cached_cq_tail; + } + + return false; +} + +static inline bool io_req_ffs_set(struct io_kiocb *req) +{ + return req->flags & REQ_F_FIXED_FILE; +} + +static inline void io_req_track_inflight(struct io_kiocb *req) +{ + if (!(req->flags & REQ_F_INFLIGHT)) { + req->flags |= REQ_F_INFLIGHT; + atomic_inc(&req->task->io_uring->inflight_tracked); + } +} + +static struct io_kiocb *__io_prep_linked_timeout(struct io_kiocb *req) +{ + if (WARN_ON_ONCE(!req->link)) + return NULL; + + req->flags &= ~REQ_F_ARM_LTIMEOUT; + req->flags |= REQ_F_LINK_TIMEOUT; + + /* linked timeouts should have two refs once prep'ed */ + io_req_set_refcount(req); + __io_req_set_refcount(req->link, 2); + return req->link; +} + +static inline struct io_kiocb *io_prep_linked_timeout(struct io_kiocb *req) +{ + if (likely(!(req->flags & REQ_F_ARM_LTIMEOUT))) + return NULL; + return __io_prep_linked_timeout(req); +} + +static noinline void __io_arm_ltimeout(struct io_kiocb *req) +{ + io_queue_linked_timeout(__io_prep_linked_timeout(req)); +} + +static inline void io_arm_ltimeout(struct io_kiocb *req) +{ + if (unlikely(req->flags & REQ_F_ARM_LTIMEOUT)) + __io_arm_ltimeout(req); +} + +static void io_prep_async_work(struct io_kiocb *req) +{ + const struct io_op_def *def = &io_op_defs[req->opcode]; + struct io_ring_ctx *ctx = req->ctx; + + if (!(req->flags & REQ_F_CREDS)) { + req->flags |= REQ_F_CREDS; + req->creds = get_current_cred(); + } + + req->work.list.next = NULL; + req->work.flags = 0; + req->work.cancel_seq = atomic_read(&ctx->cancel_seq); + if (req->flags & REQ_F_FORCE_ASYNC) + req->work.flags |= IO_WQ_WORK_CONCURRENT; + + if (req->flags & REQ_F_ISREG) { + if (def->hash_reg_file || (ctx->flags & IORING_SETUP_IOPOLL)) + io_wq_hash_work(&req->work, file_inode(req->file)); + } else if (!req->file || !S_ISBLK(file_inode(req->file)->i_mode)) { + if (def->unbound_nonreg_file) + req->work.flags |= IO_WQ_WORK_UNBOUND; + } +} + +static void io_prep_async_link(struct io_kiocb *req) +{ + struct io_kiocb *cur; + + if (req->flags & REQ_F_LINK_TIMEOUT) { + struct io_ring_ctx *ctx = req->ctx; + + spin_lock_irq(&ctx->timeout_lock); + io_for_each_link(cur, req) + io_prep_async_work(cur); + spin_unlock_irq(&ctx->timeout_lock); + } else { + io_for_each_link(cur, req) + io_prep_async_work(cur); + } +} + +static inline void io_req_add_compl_list(struct io_kiocb *req) +{ + struct io_submit_state *state = &req->ctx->submit_state; + + if (!(req->flags & REQ_F_CQE_SKIP)) + state->flush_cqes = true; + wq_list_add_tail(&req->comp_list, &state->compl_reqs); +} + +static void io_queue_iowq(struct io_kiocb *req, bool *dont_use) +{ + struct io_kiocb *link = io_prep_linked_timeout(req); + struct io_uring_task *tctx = req->task->io_uring; + + BUG_ON(!tctx); + BUG_ON(!tctx->io_wq); + + /* init ->work of the whole link before punting */ + io_prep_async_link(req); + + /* + * Not expected to happen, but if we do have a bug where this _can_ + * happen, catch it here and ensure the request is marked as + * canceled. That will make io-wq go through the usual work cancel + * procedure rather than attempt to run this request (or create a new + * worker for it). + */ + if (WARN_ON_ONCE(!same_thread_group(req->task, current))) + req->work.flags |= IO_WQ_WORK_CANCEL; + + trace_io_uring_queue_async_work(req->ctx, req, req->cqe.user_data, + req->opcode, req->flags, &req->work, + io_wq_is_hashed(&req->work)); + io_wq_enqueue(tctx->io_wq, &req->work); + if (link) + io_queue_linked_timeout(link); +} + +static void io_kill_timeout(struct io_kiocb *req, int status) + __must_hold(&req->ctx->completion_lock) + __must_hold(&req->ctx->timeout_lock) +{ + struct io_timeout_data *io = req->async_data; + + if (hrtimer_try_to_cancel(&io->timer) != -1) { + if (status) + req_set_fail(req); + atomic_set(&req->ctx->cq_timeouts, + atomic_read(&req->ctx->cq_timeouts) + 1); + list_del_init(&req->timeout.list); + io_req_tw_post_queue(req, status, 0); + } +} + +static __cold void io_queue_deferred(struct io_ring_ctx *ctx) +{ + while (!list_empty(&ctx->defer_list)) { + struct io_defer_entry *de = list_first_entry(&ctx->defer_list, + struct io_defer_entry, list); + + if (req_need_defer(de->req, de->seq)) + break; + list_del_init(&de->list); + io_req_task_queue(de->req); + kfree(de); + } +} + +static __cold void io_flush_timeouts(struct io_ring_ctx *ctx) + __must_hold(&ctx->completion_lock) +{ + u32 seq = ctx->cached_cq_tail - atomic_read(&ctx->cq_timeouts); + struct io_kiocb *req, *tmp; + + spin_lock_irq(&ctx->timeout_lock); + list_for_each_entry_safe(req, tmp, &ctx->timeout_list, timeout.list) { + u32 events_needed, events_got; + + if (io_is_timeout_noseq(req)) + break; + + /* + * Since seq can easily wrap around over time, subtract + * the last seq at which timeouts were flushed before comparing. + * Assuming not more than 2^31-1 events have happened since, + * these subtractions won't have wrapped, so we can check if + * target is in [last_seq, current_seq] by comparing the two. + */ + events_needed = req->timeout.target_seq - ctx->cq_last_tm_flush; + events_got = seq - ctx->cq_last_tm_flush; + if (events_got < events_needed) + break; + + io_kill_timeout(req, 0); + } + ctx->cq_last_tm_flush = seq; + spin_unlock_irq(&ctx->timeout_lock); +} + +static inline void io_commit_cqring(struct io_ring_ctx *ctx) +{ + /* order cqe stores with ring update */ + smp_store_release(&ctx->rings->cq.tail, ctx->cached_cq_tail); +} + +static void __io_commit_cqring_flush(struct io_ring_ctx *ctx) +{ + if (ctx->off_timeout_used || ctx->drain_active) { + spin_lock(&ctx->completion_lock); + if (ctx->off_timeout_used) + io_flush_timeouts(ctx); + if (ctx->drain_active) + io_queue_deferred(ctx); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + } + if (ctx->has_evfd) + io_eventfd_signal(ctx); +} + +static inline bool io_sqring_full(struct io_ring_ctx *ctx) +{ + struct io_rings *r = ctx->rings; + + return READ_ONCE(r->sq.tail) - ctx->cached_sq_head == ctx->sq_entries; +} + +static inline unsigned int __io_cqring_events(struct io_ring_ctx *ctx) +{ + return ctx->cached_cq_tail - READ_ONCE(ctx->rings->cq.head); +} + +/* + * writes to the cq entry need to come after reading head; the + * control dependency is enough as we're using WRITE_ONCE to + * fill the cq entry + */ +static noinline struct io_uring_cqe *__io_get_cqe(struct io_ring_ctx *ctx) +{ + struct io_rings *rings = ctx->rings; + unsigned int off = ctx->cached_cq_tail & (ctx->cq_entries - 1); + unsigned int shift = 0; + unsigned int free, queued, len; + + if (ctx->flags & IORING_SETUP_CQE32) + shift = 1; + + /* userspace may cheat modifying the tail, be safe and do min */ + queued = min(__io_cqring_events(ctx), ctx->cq_entries); + free = ctx->cq_entries - queued; + /* we need a contiguous range, limit based on the current array offset */ + len = min(free, ctx->cq_entries - off); + if (!len) + return NULL; + + ctx->cached_cq_tail++; + ctx->cqe_cached = &rings->cqes[off]; + ctx->cqe_sentinel = ctx->cqe_cached + len; + ctx->cqe_cached++; + return &rings->cqes[off << shift]; +} + +static inline struct io_uring_cqe *io_get_cqe(struct io_ring_ctx *ctx) +{ + if (likely(ctx->cqe_cached < ctx->cqe_sentinel)) { + struct io_uring_cqe *cqe = ctx->cqe_cached; + + if (ctx->flags & IORING_SETUP_CQE32) { + unsigned int off = ctx->cqe_cached - ctx->rings->cqes; + + cqe += off; + } + + ctx->cached_cq_tail++; + ctx->cqe_cached++; + return cqe; + } + + return __io_get_cqe(ctx); +} + +static void io_eventfd_signal(struct io_ring_ctx *ctx) +{ + struct io_ev_fd *ev_fd; + + rcu_read_lock(); + /* + * rcu_dereference ctx->io_ev_fd once and use it for both for checking + * and eventfd_signal + */ + ev_fd = rcu_dereference(ctx->io_ev_fd); + + /* + * Check again if ev_fd exists incase an io_eventfd_unregister call + * completed between the NULL check of ctx->io_ev_fd at the start of + * the function and rcu_read_lock. + */ + if (unlikely(!ev_fd)) + goto out; + if (READ_ONCE(ctx->rings->cq_flags) & IORING_CQ_EVENTFD_DISABLED) + goto out; + + if (!ev_fd->eventfd_async || io_wq_current_is_worker()) + eventfd_signal(ev_fd->cq_ev_fd, 1); +out: + rcu_read_unlock(); +} + +static inline void io_cqring_wake(struct io_ring_ctx *ctx) +{ + /* + * wake_up_all() may seem excessive, but io_wake_function() and + * io_should_wake() handle the termination of the loop and only + * wake as many waiters as we need to. + */ + if (wq_has_sleeper(&ctx->cq_wait)) + wake_up_all(&ctx->cq_wait); +} + +/* + * This should only get called when at least one event has been posted. + * Some applications rely on the eventfd notification count only changing + * IFF a new CQE has been added to the CQ ring. There's no depedency on + * 1:1 relationship between how many times this function is called (and + * hence the eventfd count) and number of CQEs posted to the CQ ring. + */ +static inline void io_cqring_ev_posted(struct io_ring_ctx *ctx) +{ + if (unlikely(ctx->off_timeout_used || ctx->drain_active || + ctx->has_evfd)) + __io_commit_cqring_flush(ctx); + + io_cqring_wake(ctx); +} + +static void io_cqring_ev_posted_iopoll(struct io_ring_ctx *ctx) +{ + if (unlikely(ctx->off_timeout_used || ctx->drain_active || + ctx->has_evfd)) + __io_commit_cqring_flush(ctx); + + if (ctx->flags & IORING_SETUP_SQPOLL) + io_cqring_wake(ctx); +} + +/* Returns true if there are no backlogged entries after the flush */ +static bool __io_cqring_overflow_flush(struct io_ring_ctx *ctx, bool force) +{ + bool all_flushed, posted; + size_t cqe_size = sizeof(struct io_uring_cqe); + + if (!force && __io_cqring_events(ctx) == ctx->cq_entries) + return false; + + if (ctx->flags & IORING_SETUP_CQE32) + cqe_size <<= 1; + + posted = false; + spin_lock(&ctx->completion_lock); + while (!list_empty(&ctx->cq_overflow_list)) { + struct io_uring_cqe *cqe = io_get_cqe(ctx); + struct io_overflow_cqe *ocqe; + + if (!cqe && !force) + break; + ocqe = list_first_entry(&ctx->cq_overflow_list, + struct io_overflow_cqe, list); + if (cqe) + memcpy(cqe, &ocqe->cqe, cqe_size); + else + io_account_cq_overflow(ctx); + + posted = true; + list_del(&ocqe->list); + kfree(ocqe); + } + + all_flushed = list_empty(&ctx->cq_overflow_list); + if (all_flushed) { + clear_bit(IO_CHECK_CQ_OVERFLOW_BIT, &ctx->check_cq); + atomic_andnot(IORING_SQ_CQ_OVERFLOW, &ctx->rings->sq_flags); + } + + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + if (posted) + io_cqring_ev_posted(ctx); + return all_flushed; +} + +static bool io_cqring_overflow_flush(struct io_ring_ctx *ctx) +{ + bool ret = true; + + if (test_bit(IO_CHECK_CQ_OVERFLOW_BIT, &ctx->check_cq)) { + /* iopoll syncs against uring_lock, not completion_lock */ + if (ctx->flags & IORING_SETUP_IOPOLL) + mutex_lock(&ctx->uring_lock); + ret = __io_cqring_overflow_flush(ctx, false); + if (ctx->flags & IORING_SETUP_IOPOLL) + mutex_unlock(&ctx->uring_lock); + } + + return ret; +} + +static void __io_put_task(struct task_struct *task, int nr) +{ + struct io_uring_task *tctx = task->io_uring; + + percpu_counter_sub(&tctx->inflight, nr); + if (unlikely(atomic_read(&tctx->in_idle))) + wake_up(&tctx->wait); + put_task_struct_many(task, nr); +} + +/* must to be called somewhat shortly after putting a request */ +static inline void io_put_task(struct task_struct *task, int nr) +{ + if (likely(task == current)) + task->io_uring->cached_refs += nr; + else + __io_put_task(task, nr); +} + +static void io_task_refs_refill(struct io_uring_task *tctx) +{ + unsigned int refill = -tctx->cached_refs + IO_TCTX_REFS_CACHE_NR; + + percpu_counter_add(&tctx->inflight, refill); + refcount_add(refill, ¤t->usage); + tctx->cached_refs += refill; +} + +static inline void io_get_task_refs(int nr) +{ + struct io_uring_task *tctx = current->io_uring; + + tctx->cached_refs -= nr; + if (unlikely(tctx->cached_refs < 0)) + io_task_refs_refill(tctx); +} + +static __cold void io_uring_drop_tctx_refs(struct task_struct *task) +{ + struct io_uring_task *tctx = task->io_uring; + unsigned int refs = tctx->cached_refs; + + if (refs) { + tctx->cached_refs = 0; + percpu_counter_sub(&tctx->inflight, refs); + put_task_struct_many(task, refs); + } +} + +static bool io_cqring_event_overflow(struct io_ring_ctx *ctx, u64 user_data, + s32 res, u32 cflags, u64 extra1, + u64 extra2) +{ + struct io_overflow_cqe *ocqe; + size_t ocq_size = sizeof(struct io_overflow_cqe); + bool is_cqe32 = (ctx->flags & IORING_SETUP_CQE32); + + if (is_cqe32) + ocq_size += sizeof(struct io_uring_cqe); + + ocqe = kmalloc(ocq_size, GFP_ATOMIC | __GFP_ACCOUNT); + trace_io_uring_cqe_overflow(ctx, user_data, res, cflags, ocqe); + if (!ocqe) { + /* + * If we're in ring overflow flush mode, or in task cancel mode, + * or cannot allocate an overflow entry, then we need to drop it + * on the floor. + */ + io_account_cq_overflow(ctx); + set_bit(IO_CHECK_CQ_DROPPED_BIT, &ctx->check_cq); + return false; + } + if (list_empty(&ctx->cq_overflow_list)) { + set_bit(IO_CHECK_CQ_OVERFLOW_BIT, &ctx->check_cq); + atomic_or(IORING_SQ_CQ_OVERFLOW, &ctx->rings->sq_flags); + + } + ocqe->cqe.user_data = user_data; + ocqe->cqe.res = res; + ocqe->cqe.flags = cflags; + if (is_cqe32) { + ocqe->cqe.big_cqe[0] = extra1; + ocqe->cqe.big_cqe[1] = extra2; + } + list_add_tail(&ocqe->list, &ctx->cq_overflow_list); + return true; +} + +static inline bool __io_fill_cqe_req(struct io_ring_ctx *ctx, + struct io_kiocb *req) +{ + struct io_uring_cqe *cqe; + + if (!(ctx->flags & IORING_SETUP_CQE32)) { + trace_io_uring_complete(req->ctx, req, req->cqe.user_data, + req->cqe.res, req->cqe.flags, 0, 0); + + /* + * If we can't get a cq entry, userspace overflowed the + * submission (by quite a lot). Increment the overflow count in + * the ring. + */ + cqe = io_get_cqe(ctx); + if (likely(cqe)) { + memcpy(cqe, &req->cqe, sizeof(*cqe)); + return true; + } + + return io_cqring_event_overflow(ctx, req->cqe.user_data, + req->cqe.res, req->cqe.flags, + 0, 0); + } else { + u64 extra1 = 0, extra2 = 0; + + if (req->flags & REQ_F_CQE32_INIT) { + extra1 = req->extra1; + extra2 = req->extra2; + } + + trace_io_uring_complete(req->ctx, req, req->cqe.user_data, + req->cqe.res, req->cqe.flags, extra1, extra2); + + /* + * If we can't get a cq entry, userspace overflowed the + * submission (by quite a lot). Increment the overflow count in + * the ring. + */ + cqe = io_get_cqe(ctx); + if (likely(cqe)) { + memcpy(cqe, &req->cqe, sizeof(struct io_uring_cqe)); + WRITE_ONCE(cqe->big_cqe[0], extra1); + WRITE_ONCE(cqe->big_cqe[1], extra2); + return true; + } + + return io_cqring_event_overflow(ctx, req->cqe.user_data, + req->cqe.res, req->cqe.flags, + extra1, extra2); + } +} + +static noinline bool io_fill_cqe_aux(struct io_ring_ctx *ctx, u64 user_data, + s32 res, u32 cflags) +{ + struct io_uring_cqe *cqe; + + ctx->cq_extra++; + trace_io_uring_complete(ctx, NULL, user_data, res, cflags, 0, 0); + + /* + * If we can't get a cq entry, userspace overflowed the + * submission (by quite a lot). Increment the overflow count in + * the ring. + */ + cqe = io_get_cqe(ctx); + if (likely(cqe)) { + WRITE_ONCE(cqe->user_data, user_data); + WRITE_ONCE(cqe->res, res); + WRITE_ONCE(cqe->flags, cflags); + + if (ctx->flags & IORING_SETUP_CQE32) { + WRITE_ONCE(cqe->big_cqe[0], 0); + WRITE_ONCE(cqe->big_cqe[1], 0); + } + return true; + } + return io_cqring_event_overflow(ctx, user_data, res, cflags, 0, 0); +} + +static void __io_req_complete_put(struct io_kiocb *req) +{ + /* + * If we're the last reference to this request, add to our locked + * free_list cache. + */ + if (req_ref_put_and_test(req)) { + struct io_ring_ctx *ctx = req->ctx; + + if (req->flags & IO_REQ_LINK_FLAGS) { + if (req->flags & IO_DISARM_MASK) + io_disarm_next(req); + if (req->link) { + io_req_task_queue(req->link); + req->link = NULL; + } + } + io_req_put_rsrc(req); + /* + * Selected buffer deallocation in io_clean_op() assumes that + * we don't hold ->completion_lock. Clean them here to avoid + * deadlocks. + */ + io_put_kbuf_comp(req); + io_dismantle_req(req); + io_put_task(req->task, 1); + wq_list_add_head(&req->comp_list, &ctx->locked_free_list); + ctx->locked_free_nr++; + } +} + +static void __io_req_complete_post(struct io_kiocb *req, s32 res, + u32 cflags) +{ + if (!(req->flags & REQ_F_CQE_SKIP)) { + req->cqe.res = res; + req->cqe.flags = cflags; + __io_fill_cqe_req(req->ctx, req); + } + __io_req_complete_put(req); +} + +static void io_req_complete_post(struct io_kiocb *req, s32 res, u32 cflags) +{ + struct io_ring_ctx *ctx = req->ctx; + + spin_lock(&ctx->completion_lock); + __io_req_complete_post(req, res, cflags); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_cqring_ev_posted(ctx); +} + +static inline void io_req_complete_state(struct io_kiocb *req, s32 res, + u32 cflags) +{ + req->cqe.res = res; + req->cqe.flags = cflags; + req->flags |= REQ_F_COMPLETE_INLINE; +} + +static inline void __io_req_complete(struct io_kiocb *req, unsigned issue_flags, + s32 res, u32 cflags) +{ + if (issue_flags & IO_URING_F_COMPLETE_DEFER) + io_req_complete_state(req, res, cflags); + else + io_req_complete_post(req, res, cflags); +} + +static inline void io_req_complete(struct io_kiocb *req, s32 res) +{ + if (res < 0) + req_set_fail(req); + __io_req_complete(req, 0, res, 0); +} + +static void io_req_complete_failed(struct io_kiocb *req, s32 res) +{ + req_set_fail(req); + io_req_complete_post(req, res, io_put_kbuf(req, IO_URING_F_UNLOCKED)); +} + +/* + * Don't initialise the fields below on every allocation, but do that in + * advance and keep them valid across allocations. + */ +static void io_preinit_req(struct io_kiocb *req, struct io_ring_ctx *ctx) +{ + req->ctx = ctx; + req->link = NULL; + req->async_data = NULL; + /* not necessary, but safer to zero */ + req->cqe.res = 0; +} + +static void io_flush_cached_locked_reqs(struct io_ring_ctx *ctx, + struct io_submit_state *state) +{ + spin_lock(&ctx->completion_lock); + wq_list_splice(&ctx->locked_free_list, &state->free_list); + ctx->locked_free_nr = 0; + spin_unlock(&ctx->completion_lock); +} + +static inline bool io_req_cache_empty(struct io_ring_ctx *ctx) +{ + return !ctx->submit_state.free_list.next; +} + +/* + * A request might get retired back into the request caches even before opcode + * handlers and io_issue_sqe() are done with it, e.g. inline completion path. + * Because of that, io_alloc_req() should be called only under ->uring_lock + * and with extra caution to not get a request that is still worked on. + */ +static __cold bool __io_alloc_req_refill(struct io_ring_ctx *ctx) + __must_hold(&ctx->uring_lock) +{ + gfp_t gfp = GFP_KERNEL | __GFP_NOWARN; + void *reqs[IO_REQ_ALLOC_BATCH]; + int ret, i; + + /* + * If we have more than a batch's worth of requests in our IRQ side + * locked cache, grab the lock and move them over to our submission + * side cache. + */ + if (data_race(ctx->locked_free_nr) > IO_COMPL_BATCH) { + io_flush_cached_locked_reqs(ctx, &ctx->submit_state); + if (!io_req_cache_empty(ctx)) + return true; + } + + ret = kmem_cache_alloc_bulk(req_cachep, gfp, ARRAY_SIZE(reqs), reqs); + + /* + * Bulk alloc is all-or-nothing. If we fail to get a batch, + * retry single alloc to be on the safe side. + */ + if (unlikely(ret <= 0)) { + reqs[0] = kmem_cache_alloc(req_cachep, gfp); + if (!reqs[0]) + return false; + ret = 1; + } + + percpu_ref_get_many(&ctx->refs, ret); + for (i = 0; i < ret; i++) { + struct io_kiocb *req = reqs[i]; + + io_preinit_req(req, ctx); + io_req_add_to_cache(req, ctx); + } + return true; +} + +static inline bool io_alloc_req_refill(struct io_ring_ctx *ctx) +{ + if (unlikely(io_req_cache_empty(ctx))) + return __io_alloc_req_refill(ctx); + return true; +} + +static inline struct io_kiocb *io_alloc_req(struct io_ring_ctx *ctx) +{ + struct io_wq_work_node *node; + + node = wq_stack_extract(&ctx->submit_state.free_list); + return container_of(node, struct io_kiocb, comp_list); +} + +static inline void io_put_file(struct file *file) +{ + if (file) + fput(file); +} + +static inline void io_dismantle_req(struct io_kiocb *req) +{ + unsigned int flags = req->flags; + + if (unlikely(flags & IO_REQ_CLEAN_FLAGS)) + io_clean_op(req); + if (!(flags & REQ_F_FIXED_FILE)) + io_put_file(req->file); +} + +static __cold void io_free_req(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + + io_req_put_rsrc(req); + io_dismantle_req(req); + io_put_task(req->task, 1); + + spin_lock(&ctx->completion_lock); + wq_list_add_head(&req->comp_list, &ctx->locked_free_list); + ctx->locked_free_nr++; + spin_unlock(&ctx->completion_lock); +} + +static inline void io_remove_next_linked(struct io_kiocb *req) +{ + struct io_kiocb *nxt = req->link; + + req->link = nxt->link; + nxt->link = NULL; +} + +static struct io_kiocb *io_disarm_linked_timeout(struct io_kiocb *req) + __must_hold(&req->ctx->completion_lock) + __must_hold(&req->ctx->timeout_lock) +{ + struct io_kiocb *link = req->link; + + if (link && link->opcode == IORING_OP_LINK_TIMEOUT) { + struct io_timeout_data *io = link->async_data; + + io_remove_next_linked(req); + link->timeout.head = NULL; + if (hrtimer_try_to_cancel(&io->timer) != -1) { + list_del(&link->timeout.list); + return link; + } + } + return NULL; +} + +static void io_fail_links(struct io_kiocb *req) + __must_hold(&req->ctx->completion_lock) +{ + struct io_kiocb *nxt, *link = req->link; + bool ignore_cqes = req->flags & REQ_F_SKIP_LINK_CQES; + + req->link = NULL; + while (link) { + long res = -ECANCELED; + + if (link->flags & REQ_F_FAIL) + res = link->cqe.res; + + nxt = link->link; + link->link = NULL; + + trace_io_uring_fail_link(req->ctx, req, req->cqe.user_data, + req->opcode, link); + + if (ignore_cqes) + link->flags |= REQ_F_CQE_SKIP; + else + link->flags &= ~REQ_F_CQE_SKIP; + __io_req_complete_post(link, res, 0); + link = nxt; + } +} + +static bool io_disarm_next(struct io_kiocb *req) + __must_hold(&req->ctx->completion_lock) +{ + struct io_kiocb *link = NULL; + bool posted = false; + + if (req->flags & REQ_F_ARM_LTIMEOUT) { + link = req->link; + req->flags &= ~REQ_F_ARM_LTIMEOUT; + if (link && link->opcode == IORING_OP_LINK_TIMEOUT) { + io_remove_next_linked(req); + io_req_tw_post_queue(link, -ECANCELED, 0); + posted = true; + } + } else if (req->flags & REQ_F_LINK_TIMEOUT) { + struct io_ring_ctx *ctx = req->ctx; + + spin_lock_irq(&ctx->timeout_lock); + link = io_disarm_linked_timeout(req); + spin_unlock_irq(&ctx->timeout_lock); + if (link) { + posted = true; + io_req_tw_post_queue(link, -ECANCELED, 0); + } + } + if (unlikely((req->flags & REQ_F_FAIL) && + !(req->flags & REQ_F_HARDLINK))) { + posted |= (req->link != NULL); + io_fail_links(req); + } + return posted; +} + +static void __io_req_find_next_prep(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + bool posted; + + spin_lock(&ctx->completion_lock); + posted = io_disarm_next(req); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + if (posted) + io_cqring_ev_posted(ctx); +} + +static inline struct io_kiocb *io_req_find_next(struct io_kiocb *req) +{ + struct io_kiocb *nxt; + + /* + * If LINK is set, we have dependent requests in this chain. If we + * didn't fail this request, queue the first one up, moving any other + * dependencies to the next request. In case of failure, fail the rest + * of the chain. + */ + if (unlikely(req->flags & IO_DISARM_MASK)) + __io_req_find_next_prep(req); + nxt = req->link; + req->link = NULL; + return nxt; +} + +static void ctx_flush_and_put(struct io_ring_ctx *ctx, bool *locked) +{ + if (!ctx) + return; + if (ctx->flags & IORING_SETUP_TASKRUN_FLAG) + atomic_andnot(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); + if (*locked) { + io_submit_flush_completions(ctx); + mutex_unlock(&ctx->uring_lock); + *locked = false; + } + percpu_ref_put(&ctx->refs); +} + +static inline void ctx_commit_and_unlock(struct io_ring_ctx *ctx) +{ + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_cqring_ev_posted(ctx); +} + +static void handle_prev_tw_list(struct io_wq_work_node *node, + struct io_ring_ctx **ctx, bool *uring_locked) +{ + if (*ctx && !*uring_locked) + spin_lock(&(*ctx)->completion_lock); + + do { + struct io_wq_work_node *next = node->next; + struct io_kiocb *req = container_of(node, struct io_kiocb, + io_task_work.node); + + prefetch(container_of(next, struct io_kiocb, io_task_work.node)); + + if (req->ctx != *ctx) { + if (unlikely(!*uring_locked && *ctx)) + ctx_commit_and_unlock(*ctx); + + ctx_flush_and_put(*ctx, uring_locked); + *ctx = req->ctx; + /* if not contended, grab and improve batching */ + *uring_locked = mutex_trylock(&(*ctx)->uring_lock); + percpu_ref_get(&(*ctx)->refs); + if (unlikely(!*uring_locked)) + spin_lock(&(*ctx)->completion_lock); + } + if (likely(*uring_locked)) + req->io_task_work.func(req, uring_locked); + else + __io_req_complete_post(req, req->cqe.res, + io_put_kbuf_comp(req)); + node = next; + } while (node); + + if (unlikely(!*uring_locked)) + ctx_commit_and_unlock(*ctx); +} + +static void handle_tw_list(struct io_wq_work_node *node, + struct io_ring_ctx **ctx, bool *locked) +{ + do { + struct io_wq_work_node *next = node->next; + struct io_kiocb *req = container_of(node, struct io_kiocb, + io_task_work.node); + + prefetch(container_of(next, struct io_kiocb, io_task_work.node)); + + if (req->ctx != *ctx) { + ctx_flush_and_put(*ctx, locked); + *ctx = req->ctx; + /* if not contended, grab and improve batching */ + *locked = mutex_trylock(&(*ctx)->uring_lock); + percpu_ref_get(&(*ctx)->refs); + } + req->io_task_work.func(req, locked); + node = next; + } while (node); +} + +static void tctx_task_work(struct callback_head *cb) +{ + bool uring_locked = false; + struct io_ring_ctx *ctx = NULL; + struct io_uring_task *tctx = container_of(cb, struct io_uring_task, + task_work); + + while (1) { + struct io_wq_work_node *node1, *node2; + + spin_lock_irq(&tctx->task_lock); + node1 = tctx->prio_task_list.first; + node2 = tctx->task_list.first; + INIT_WQ_LIST(&tctx->task_list); + INIT_WQ_LIST(&tctx->prio_task_list); + if (!node2 && !node1) + tctx->task_running = false; + spin_unlock_irq(&tctx->task_lock); + if (!node2 && !node1) + break; + + if (node1) + handle_prev_tw_list(node1, &ctx, &uring_locked); + if (node2) + handle_tw_list(node2, &ctx, &uring_locked); + cond_resched(); + + if (data_race(!tctx->task_list.first) && + data_race(!tctx->prio_task_list.first) && uring_locked) + io_submit_flush_completions(ctx); + } + + ctx_flush_and_put(ctx, &uring_locked); + + /* relaxed read is enough as only the task itself sets ->in_idle */ + if (unlikely(atomic_read(&tctx->in_idle))) + io_uring_drop_tctx_refs(current); +} + +static void __io_req_task_work_add(struct io_kiocb *req, + struct io_uring_task *tctx, + struct io_wq_work_list *list) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_wq_work_node *node; + unsigned long flags; + bool running; + + spin_lock_irqsave(&tctx->task_lock, flags); + wq_list_add_tail(&req->io_task_work.node, list); + running = tctx->task_running; + if (!running) + tctx->task_running = true; + spin_unlock_irqrestore(&tctx->task_lock, flags); + + /* task_work already pending, we're done */ + if (running) + return; + + if (ctx->flags & IORING_SETUP_TASKRUN_FLAG) + atomic_or(IORING_SQ_TASKRUN, &ctx->rings->sq_flags); + + if (likely(!task_work_add(req->task, &tctx->task_work, ctx->notify_method))) + return; + + spin_lock_irqsave(&tctx->task_lock, flags); + tctx->task_running = false; + node = wq_list_merge(&tctx->prio_task_list, &tctx->task_list); + spin_unlock_irqrestore(&tctx->task_lock, flags); + + while (node) { + req = container_of(node, struct io_kiocb, io_task_work.node); + node = node->next; + if (llist_add(&req->io_task_work.fallback_node, + &req->ctx->fallback_llist)) + schedule_delayed_work(&req->ctx->fallback_work, 1); + } +} + +static void io_req_task_work_add(struct io_kiocb *req) +{ + struct io_uring_task *tctx = req->task->io_uring; + + __io_req_task_work_add(req, tctx, &tctx->task_list); +} + +static void io_req_task_prio_work_add(struct io_kiocb *req) +{ + struct io_uring_task *tctx = req->task->io_uring; + + if (req->ctx->flags & IORING_SETUP_SQPOLL) + __io_req_task_work_add(req, tctx, &tctx->prio_task_list); + else + __io_req_task_work_add(req, tctx, &tctx->task_list); +} + +static void io_req_tw_post(struct io_kiocb *req, bool *locked) +{ + io_req_complete_post(req, req->cqe.res, req->cqe.flags); +} + +static void io_req_tw_post_queue(struct io_kiocb *req, s32 res, u32 cflags) +{ + req->cqe.res = res; + req->cqe.flags = cflags; + req->io_task_work.func = io_req_tw_post; + io_req_task_work_add(req); +} + +static void io_req_task_cancel(struct io_kiocb *req, bool *locked) +{ + /* not needed for normal modes, but SQPOLL depends on it */ + io_tw_lock(req->ctx, locked); + io_req_complete_failed(req, req->cqe.res); +} + +static void io_req_task_submit(struct io_kiocb *req, bool *locked) +{ + io_tw_lock(req->ctx, locked); + /* req->task == current here, checking PF_EXITING is safe */ + if (likely(!(req->task->flags & PF_EXITING))) + io_queue_sqe(req); + else + io_req_complete_failed(req, -EFAULT); +} + +static void io_req_task_queue_fail(struct io_kiocb *req, int ret) +{ + req->cqe.res = ret; + req->io_task_work.func = io_req_task_cancel; + io_req_task_work_add(req); +} + +static void io_req_task_queue(struct io_kiocb *req) +{ + req->io_task_work.func = io_req_task_submit; + io_req_task_work_add(req); +} + +static void io_req_task_queue_reissue(struct io_kiocb *req) +{ + req->io_task_work.func = io_queue_iowq; + io_req_task_work_add(req); +} + +static void io_queue_next(struct io_kiocb *req) +{ + struct io_kiocb *nxt = io_req_find_next(req); + + if (nxt) + io_req_task_queue(nxt); +} + +static void io_free_batch_list(struct io_ring_ctx *ctx, + struct io_wq_work_node *node) + __must_hold(&ctx->uring_lock) +{ + struct task_struct *task = NULL; + int task_refs = 0; + + do { + struct io_kiocb *req = container_of(node, struct io_kiocb, + comp_list); + + if (unlikely(req->flags & IO_REQ_CLEAN_SLOW_FLAGS)) { + if (req->flags & REQ_F_REFCOUNT) { + node = req->comp_list.next; + if (!req_ref_put_and_test(req)) + continue; + } + if ((req->flags & REQ_F_POLLED) && req->apoll) { + struct async_poll *apoll = req->apoll; + + if (apoll->double_poll) + kfree(apoll->double_poll); + list_add(&apoll->poll.wait.entry, + &ctx->apoll_cache); + req->flags &= ~REQ_F_POLLED; + } + if (req->flags & IO_REQ_LINK_FLAGS) + io_queue_next(req); + if (unlikely(req->flags & IO_REQ_CLEAN_FLAGS)) + io_clean_op(req); + } + if (!(req->flags & REQ_F_FIXED_FILE)) + io_put_file(req->file); + + io_req_put_rsrc_locked(req, ctx); + + if (req->task != task) { + if (task) + io_put_task(task, task_refs); + task = req->task; + task_refs = 0; + } + task_refs++; + node = req->comp_list.next; + io_req_add_to_cache(req, ctx); + } while (node); + + if (task) + io_put_task(task, task_refs); +} + +static void __io_submit_flush_completions(struct io_ring_ctx *ctx) + __must_hold(&ctx->uring_lock) +{ + struct io_wq_work_node *node, *prev; + struct io_submit_state *state = &ctx->submit_state; + + if (state->flush_cqes) { + spin_lock(&ctx->completion_lock); + wq_list_for_each(node, prev, &state->compl_reqs) { + struct io_kiocb *req = container_of(node, struct io_kiocb, + comp_list); + + if (!(req->flags & REQ_F_CQE_SKIP)) + __io_fill_cqe_req(ctx, req); + } + + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_cqring_ev_posted(ctx); + state->flush_cqes = false; + } + + io_free_batch_list(ctx, state->compl_reqs.first); + INIT_WQ_LIST(&state->compl_reqs); +} + +/* + * Drop reference to request, return next in chain (if there is one) if this + * was the last reference to this request. + */ +static inline struct io_kiocb *io_put_req_find_next(struct io_kiocb *req) +{ + struct io_kiocb *nxt = NULL; + + if (req_ref_put_and_test(req)) { + if (unlikely(req->flags & IO_REQ_LINK_FLAGS)) + nxt = io_req_find_next(req); + io_free_req(req); + } + return nxt; +} + +static inline void io_put_req(struct io_kiocb *req) +{ + if (req_ref_put_and_test(req)) { + io_queue_next(req); + io_free_req(req); + } +} + +static unsigned io_cqring_events(struct io_ring_ctx *ctx) +{ + /* See comment at the top of this file */ + smp_rmb(); + return __io_cqring_events(ctx); +} + +static inline unsigned int io_sqring_entries(struct io_ring_ctx *ctx) +{ + struct io_rings *rings = ctx->rings; + + /* make sure SQ entry isn't read before tail */ + return smp_load_acquire(&rings->sq.tail) - ctx->cached_sq_head; +} + +static inline bool io_run_task_work(void) +{ + if (test_thread_flag(TIF_NOTIFY_SIGNAL) || task_work_pending(current)) { + __set_current_state(TASK_RUNNING); + clear_notify_signal(); + if (task_work_pending(current)) + task_work_run(); + return true; + } + + return false; +} + +static int io_do_iopoll(struct io_ring_ctx *ctx, bool force_nonspin) +{ + struct io_wq_work_node *pos, *start, *prev; + unsigned int poll_flags = BLK_POLL_NOSLEEP; + DEFINE_IO_COMP_BATCH(iob); + int nr_events = 0; + + /* + * Only spin for completions if we don't have multiple devices hanging + * off our complete list. + */ + if (ctx->poll_multi_queue || force_nonspin) + poll_flags |= BLK_POLL_ONESHOT; + + wq_list_for_each(pos, start, &ctx->iopoll_list) { + struct io_kiocb *req = container_of(pos, struct io_kiocb, comp_list); + struct kiocb *kiocb = &req->rw.kiocb; + int ret; + + /* + * Move completed and retryable entries to our local lists. + * If we find a request that requires polling, break out + * and complete those lists first, if we have entries there. + */ + if (READ_ONCE(req->iopoll_completed)) + break; + + ret = kiocb->ki_filp->f_op->iopoll(kiocb, &iob, poll_flags); + if (unlikely(ret < 0)) + return ret; + else if (ret) + poll_flags |= BLK_POLL_ONESHOT; + + /* iopoll may have completed current req */ + if (!rq_list_empty(iob.req_list) || + READ_ONCE(req->iopoll_completed)) + break; + } + + if (!rq_list_empty(iob.req_list)) + iob.complete(&iob); + else if (!pos) + return 0; + + prev = start; + wq_list_for_each_resume(pos, prev) { + struct io_kiocb *req = container_of(pos, struct io_kiocb, comp_list); + + /* order with io_complete_rw_iopoll(), e.g. ->result updates */ + if (!smp_load_acquire(&req->iopoll_completed)) + break; + nr_events++; + if (unlikely(req->flags & REQ_F_CQE_SKIP)) + continue; + + req->cqe.flags = io_put_kbuf(req, 0); + __io_fill_cqe_req(req->ctx, req); + } + + if (unlikely(!nr_events)) + return 0; + + io_commit_cqring(ctx); + io_cqring_ev_posted_iopoll(ctx); + pos = start ? start->next : ctx->iopoll_list.first; + wq_list_cut(&ctx->iopoll_list, prev, start); + io_free_batch_list(ctx, pos); + return nr_events; +} + +/* + * We can't just wait for polled events to come to us, we have to actively + * find and complete them. + */ +static __cold void io_iopoll_try_reap_events(struct io_ring_ctx *ctx) +{ + if (!(ctx->flags & IORING_SETUP_IOPOLL)) + return; + + mutex_lock(&ctx->uring_lock); + while (!wq_list_empty(&ctx->iopoll_list)) { + /* let it sleep and repeat later if can't complete a request */ + if (io_do_iopoll(ctx, true) == 0) + break; + /* + * Ensure we allow local-to-the-cpu processing to take place, + * in this case we need to ensure that we reap all events. + * Also let task_work, etc. to progress by releasing the mutex + */ + if (need_resched()) { + mutex_unlock(&ctx->uring_lock); + cond_resched(); + mutex_lock(&ctx->uring_lock); + } + } + mutex_unlock(&ctx->uring_lock); +} + +static int io_iopoll_check(struct io_ring_ctx *ctx, long min) +{ + unsigned int nr_events = 0; + int ret = 0; + unsigned long check_cq; + + /* + * Don't enter poll loop if we already have events pending. + * If we do, we can potentially be spinning for commands that + * already triggered a CQE (eg in error). + */ + check_cq = READ_ONCE(ctx->check_cq); + if (check_cq & BIT(IO_CHECK_CQ_OVERFLOW_BIT)) + __io_cqring_overflow_flush(ctx, false); + if (io_cqring_events(ctx)) + return 0; + + /* + * Similarly do not spin if we have not informed the user of any + * dropped CQE. + */ + if (unlikely(check_cq & BIT(IO_CHECK_CQ_DROPPED_BIT))) + return -EBADR; + + do { + /* + * If a submit got punted to a workqueue, we can have the + * application entering polling for a command before it gets + * issued. That app will hold the uring_lock for the duration + * of the poll right here, so we need to take a breather every + * now and then to ensure that the issue has a chance to add + * the poll to the issued list. Otherwise we can spin here + * forever, while the workqueue is stuck trying to acquire the + * very same mutex. + */ + if (wq_list_empty(&ctx->iopoll_list)) { + u32 tail = ctx->cached_cq_tail; + + mutex_unlock(&ctx->uring_lock); + io_run_task_work(); + mutex_lock(&ctx->uring_lock); + + /* some requests don't go through iopoll_list */ + if (tail != ctx->cached_cq_tail || + wq_list_empty(&ctx->iopoll_list)) + break; + } + ret = io_do_iopoll(ctx, !min); + if (ret < 0) + break; + nr_events += ret; + ret = 0; + } while (nr_events < min && !need_resched()); + + return ret; +} + +static void kiocb_end_write(struct io_kiocb *req) +{ + /* + * Tell lockdep we inherited freeze protection from submission + * thread. + */ + if (req->flags & REQ_F_ISREG) { + struct super_block *sb = file_inode(req->file)->i_sb; + + __sb_writers_acquired(sb, SB_FREEZE_WRITE); + sb_end_write(sb); + } +} + +#ifdef CONFIG_BLOCK +static bool io_resubmit_prep(struct io_kiocb *req) +{ + struct io_async_rw *rw = req->async_data; + + if (!req_has_async_data(req)) + return !io_req_prep_async(req); + iov_iter_restore(&rw->s.iter, &rw->s.iter_state); + return true; +} + +static bool io_rw_should_reissue(struct io_kiocb *req) +{ + umode_t mode = file_inode(req->file)->i_mode; + struct io_ring_ctx *ctx = req->ctx; + + if (!S_ISBLK(mode) && !S_ISREG(mode)) + return false; + if ((req->flags & REQ_F_NOWAIT) || (io_wq_current_is_worker() && + !(ctx->flags & IORING_SETUP_IOPOLL))) + return false; + /* + * If ref is dying, we might be running poll reap from the exit work. + * Don't attempt to reissue from that path, just let it fail with + * -EAGAIN. + */ + if (percpu_ref_is_dying(&ctx->refs)) + return false; + /* + * Play it safe and assume not safe to re-import and reissue if we're + * not in the original thread group (or in task context). + */ + if (!same_thread_group(req->task, current) || !in_task()) + return false; + return true; +} +#else +static bool io_resubmit_prep(struct io_kiocb *req) +{ + return false; +} +static bool io_rw_should_reissue(struct io_kiocb *req) +{ + return false; +} +#endif + +static bool __io_complete_rw_common(struct io_kiocb *req, long res) +{ + if (req->rw.kiocb.ki_flags & IOCB_WRITE) { + kiocb_end_write(req); + fsnotify_modify(req->file); + } else { + fsnotify_access(req->file); + } + if (unlikely(res != req->cqe.res)) { + if ((res == -EAGAIN || res == -EOPNOTSUPP) && + io_rw_should_reissue(req)) { + req->flags |= REQ_F_REISSUE | REQ_F_PARTIAL_IO; + return true; + } + req_set_fail(req); + req->cqe.res = res; + } + return false; +} + +static inline void io_req_task_complete(struct io_kiocb *req, bool *locked) +{ + int res = req->cqe.res; + + if (*locked) { + io_req_complete_state(req, res, io_put_kbuf(req, 0)); + io_req_add_compl_list(req); + } else { + io_req_complete_post(req, res, + io_put_kbuf(req, IO_URING_F_UNLOCKED)); + } +} + +static void __io_complete_rw(struct io_kiocb *req, long res, + unsigned int issue_flags) +{ + if (__io_complete_rw_common(req, res)) + return; + __io_req_complete(req, issue_flags, req->cqe.res, + io_put_kbuf(req, issue_flags)); +} + +static void io_complete_rw(struct kiocb *kiocb, long res) +{ + struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb); + + if (__io_complete_rw_common(req, res)) + return; + req->cqe.res = res; + req->io_task_work.func = io_req_task_complete; + io_req_task_prio_work_add(req); +} + +static void io_complete_rw_iopoll(struct kiocb *kiocb, long res) +{ + struct io_kiocb *req = container_of(kiocb, struct io_kiocb, rw.kiocb); + + if (kiocb->ki_flags & IOCB_WRITE) + kiocb_end_write(req); + if (unlikely(res != req->cqe.res)) { + if (res == -EAGAIN && io_rw_should_reissue(req)) { + req->flags |= REQ_F_REISSUE | REQ_F_PARTIAL_IO; + return; + } + req->cqe.res = res; + } + + /* order with io_iopoll_complete() checking ->iopoll_completed */ + smp_store_release(&req->iopoll_completed, 1); +} + +/* + * After the iocb has been issued, it's safe to be found on the poll list. + * Adding the kiocb to the list AFTER submission ensures that we don't + * find it from a io_do_iopoll() thread before the issuer is done + * accessing the kiocb cookie. + */ +static void io_iopoll_req_issued(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + const bool needs_lock = issue_flags & IO_URING_F_UNLOCKED; + + /* workqueue context doesn't hold uring_lock, grab it now */ + if (unlikely(needs_lock)) + mutex_lock(&ctx->uring_lock); + + /* + * Track whether we have multiple files in our lists. This will impact + * how we do polling eventually, not spinning if we're on potentially + * different devices. + */ + if (wq_list_empty(&ctx->iopoll_list)) { + ctx->poll_multi_queue = false; + } else if (!ctx->poll_multi_queue) { + struct io_kiocb *list_req; + + list_req = container_of(ctx->iopoll_list.first, struct io_kiocb, + comp_list); + if (list_req->file != req->file) + ctx->poll_multi_queue = true; + } + + /* + * For fast devices, IO may have already completed. If it has, add + * it to the front so we find it first. + */ + if (READ_ONCE(req->iopoll_completed)) + wq_list_add_head(&req->comp_list, &ctx->iopoll_list); + else + wq_list_add_tail(&req->comp_list, &ctx->iopoll_list); + + if (unlikely(needs_lock)) { + /* + * If IORING_SETUP_SQPOLL is enabled, sqes are either handle + * in sq thread task context or in io worker task context. If + * current task context is sq thread, we don't need to check + * whether should wake up sq thread. + */ + if ((ctx->flags & IORING_SETUP_SQPOLL) && + wq_has_sleeper(&ctx->sq_data->wait)) + wake_up(&ctx->sq_data->wait); + + mutex_unlock(&ctx->uring_lock); + } +} + +static bool io_bdev_nowait(struct block_device *bdev) +{ + return !bdev || blk_queue_nowait(bdev_get_queue(bdev)); +} + +/* + * If we tracked the file through the SCM inflight mechanism, we could support + * any file. For now, just ensure that anything potentially problematic is done + * inline. + */ +static bool __io_file_supports_nowait(struct file *file, umode_t mode) +{ + if (S_ISBLK(mode)) { + if (IS_ENABLED(CONFIG_BLOCK) && + io_bdev_nowait(I_BDEV(file->f_mapping->host))) + return true; + return false; + } + if (S_ISSOCK(mode)) + return true; + if (S_ISREG(mode)) { + if (IS_ENABLED(CONFIG_BLOCK) && + io_bdev_nowait(file->f_inode->i_sb->s_bdev) && + file->f_op != &io_uring_fops) + return true; + return false; + } + + /* any ->read/write should understand O_NONBLOCK */ + if (file->f_flags & O_NONBLOCK) + return true; + return file->f_mode & FMODE_NOWAIT; +} + +/* + * If we tracked the file through the SCM inflight mechanism, we could support + * any file. For now, just ensure that anything potentially problematic is done + * inline. + */ +static unsigned int io_file_get_flags(struct file *file) +{ + umode_t mode = file_inode(file)->i_mode; + unsigned int res = 0; + + if (S_ISREG(mode)) + res |= FFS_ISREG; + if (__io_file_supports_nowait(file, mode)) + res |= FFS_NOWAIT; + if (io_file_need_scm(file)) + res |= FFS_SCM; + return res; +} + +static inline bool io_file_supports_nowait(struct io_kiocb *req) +{ + return req->flags & REQ_F_SUPPORT_NOWAIT; +} + +static int io_prep_rw(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct kiocb *kiocb = &req->rw.kiocb; + unsigned ioprio; + int ret; + + kiocb->ki_pos = READ_ONCE(sqe->off); + /* used for fixed read/write too - just read unconditionally */ + req->buf_index = READ_ONCE(sqe->buf_index); + + if (req->opcode == IORING_OP_READ_FIXED || + req->opcode == IORING_OP_WRITE_FIXED) { + struct io_ring_ctx *ctx = req->ctx; + u16 index; + + if (unlikely(req->buf_index >= ctx->nr_user_bufs)) + return -EFAULT; + index = array_index_nospec(req->buf_index, ctx->nr_user_bufs); + req->imu = ctx->user_bufs[index]; + io_req_set_rsrc_node(req, ctx, 0); + } + + ioprio = READ_ONCE(sqe->ioprio); + if (ioprio) { + ret = ioprio_check_cap(ioprio); + if (ret) + return ret; + + kiocb->ki_ioprio = ioprio; + } else { + kiocb->ki_ioprio = get_current_ioprio(); + } + + req->rw.addr = READ_ONCE(sqe->addr); + req->rw.len = READ_ONCE(sqe->len); + req->rw.flags = READ_ONCE(sqe->rw_flags); + return 0; +} + +static inline void io_rw_done(struct kiocb *kiocb, ssize_t ret) +{ + switch (ret) { + case -EIOCBQUEUED: + break; + case -ERESTARTSYS: + case -ERESTARTNOINTR: + case -ERESTARTNOHAND: + case -ERESTART_RESTARTBLOCK: + /* + * We can't just restart the syscall, since previously + * submitted sqes may already be in progress. Just fail this + * IO with EINTR. + */ + ret = -EINTR; + fallthrough; + default: + kiocb->ki_complete(kiocb, ret); + } +} + +static inline loff_t *io_kiocb_update_pos(struct io_kiocb *req) +{ + struct kiocb *kiocb = &req->rw.kiocb; + + if (kiocb->ki_pos != -1) + return &kiocb->ki_pos; + + if (!(req->file->f_mode & FMODE_STREAM)) { + req->flags |= REQ_F_CUR_POS; + kiocb->ki_pos = req->file->f_pos; + return &kiocb->ki_pos; + } + + kiocb->ki_pos = 0; + return NULL; +} + +static void kiocb_done(struct io_kiocb *req, ssize_t ret, + unsigned int issue_flags) +{ + struct io_async_rw *io = req->async_data; + + /* add previously done IO, if any */ + if (req_has_async_data(req) && io->bytes_done > 0) { + if (ret < 0) + ret = io->bytes_done; + else + ret += io->bytes_done; + } + + if (req->flags & REQ_F_CUR_POS) + req->file->f_pos = req->rw.kiocb.ki_pos; + if (ret >= 0 && (req->rw.kiocb.ki_complete == io_complete_rw)) + __io_complete_rw(req, ret, issue_flags); + else + io_rw_done(&req->rw.kiocb, ret); + + if (req->flags & REQ_F_REISSUE) { + req->flags &= ~REQ_F_REISSUE; + if (io_resubmit_prep(req)) + io_req_task_queue_reissue(req); + else + io_req_task_queue_fail(req, ret); + } +} + +static int __io_import_fixed(struct io_kiocb *req, int rw, struct iov_iter *iter, + struct io_mapped_ubuf *imu) +{ + size_t len = req->rw.len; + u64 buf_end, buf_addr = req->rw.addr; + size_t offset; + + if (unlikely(check_add_overflow(buf_addr, (u64)len, &buf_end))) + return -EFAULT; + /* not inside the mapped region */ + if (unlikely(buf_addr < imu->ubuf || buf_end > imu->ubuf_end)) + return -EFAULT; + + /* + * May not be a start of buffer, set size appropriately + * and advance us to the beginning. + */ + offset = buf_addr - imu->ubuf; + iov_iter_bvec(iter, rw, imu->bvec, imu->nr_bvecs, offset + len); + + if (offset) { + /* + * Don't use iov_iter_advance() here, as it's really slow for + * using the latter parts of a big fixed buffer - it iterates + * over each segment manually. We can cheat a bit here, because + * we know that: + * + * 1) it's a BVEC iter, we set it up + * 2) all bvecs are PAGE_SIZE in size, except potentially the + * first and last bvec + * + * So just find our index, and adjust the iterator afterwards. + * If the offset is within the first bvec (or the whole first + * bvec, just use iov_iter_advance(). This makes it easier + * since we can just skip the first segment, which may not + * be PAGE_SIZE aligned. + */ + const struct bio_vec *bvec = imu->bvec; + + if (offset <= bvec->bv_len) { + iov_iter_advance(iter, offset); + } else { + unsigned long seg_skip; + + /* skip first vec */ + offset -= bvec->bv_len; + seg_skip = 1 + (offset >> PAGE_SHIFT); + + iter->bvec = bvec + seg_skip; + iter->nr_segs -= seg_skip; + iter->count -= bvec->bv_len + offset; + iter->iov_offset = offset & ~PAGE_MASK; + } + } + + return 0; +} + +static int io_import_fixed(struct io_kiocb *req, int rw, struct iov_iter *iter, + unsigned int issue_flags) +{ + if (WARN_ON_ONCE(!req->imu)) + return -EFAULT; + return __io_import_fixed(req, rw, iter, req->imu); +} + +static int io_buffer_add_list(struct io_ring_ctx *ctx, + struct io_buffer_list *bl, unsigned int bgid) +{ + bl->bgid = bgid; + if (bgid < BGID_ARRAY) + return 0; + + return xa_err(xa_store(&ctx->io_bl_xa, bgid, bl, GFP_KERNEL)); +} + +static void __user *io_provided_buffer_select(struct io_kiocb *req, size_t *len, + struct io_buffer_list *bl) +{ + if (!list_empty(&bl->buf_list)) { + struct io_buffer *kbuf; + + kbuf = list_first_entry(&bl->buf_list, struct io_buffer, list); + list_del(&kbuf->list); + if (*len > kbuf->len) + *len = kbuf->len; + req->flags |= REQ_F_BUFFER_SELECTED; + req->kbuf = kbuf; + req->buf_index = kbuf->bid; + return u64_to_user_ptr(kbuf->addr); + } + return NULL; +} + +static void __user *io_ring_buffer_select(struct io_kiocb *req, size_t *len, + struct io_buffer_list *bl, + unsigned int issue_flags) +{ + struct io_uring_buf_ring *br = bl->buf_ring; + struct io_uring_buf *buf; + __u16 head = bl->head; + + if (unlikely(smp_load_acquire(&br->tail) == head)) + return NULL; + + head &= bl->mask; + if (head < IO_BUFFER_LIST_BUF_PER_PAGE) { + buf = &br->bufs[head]; + } else { + int off = head & (IO_BUFFER_LIST_BUF_PER_PAGE - 1); + int index = head / IO_BUFFER_LIST_BUF_PER_PAGE; + buf = page_address(bl->buf_pages[index]); + buf += off; + } + if (*len > buf->len) + *len = buf->len; + req->flags |= REQ_F_BUFFER_RING; + req->buf_list = bl; + req->buf_index = buf->bid; + + if (issue_flags & IO_URING_F_UNLOCKED || !file_can_poll(req->file)) { + /* + * If we came in unlocked, we have no choice but to consume the + * buffer here. This does mean it'll be pinned until the IO + * completes. But coming in unlocked means we're in io-wq + * context, hence there should be no further retry. For the + * locked case, the caller must ensure to call the commit when + * the transfer completes (or if we get -EAGAIN and must poll + * or retry). + */ + req->buf_list = NULL; + bl->head++; + } + return u64_to_user_ptr(buf->addr); +} + +static void __user *io_buffer_select(struct io_kiocb *req, size_t *len, + unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_buffer_list *bl; + void __user *ret = NULL; + + io_ring_submit_lock(req->ctx, issue_flags); + + bl = io_buffer_get_list(ctx, req->buf_index); + if (likely(bl)) { + if (bl->buf_nr_pages) + ret = io_ring_buffer_select(req, len, bl, issue_flags); + else + ret = io_provided_buffer_select(req, len, bl); + } + io_ring_submit_unlock(req->ctx, issue_flags); + return ret; +} + +#ifdef CONFIG_COMPAT +static ssize_t io_compat_import(struct io_kiocb *req, struct iovec *iov, + unsigned int issue_flags) +{ + struct compat_iovec __user *uiov; + compat_ssize_t clen; + void __user *buf; + size_t len; + + uiov = u64_to_user_ptr(req->rw.addr); + if (!access_ok(uiov, sizeof(*uiov))) + return -EFAULT; + if (__get_user(clen, &uiov->iov_len)) + return -EFAULT; + if (clen < 0) + return -EINVAL; + + len = clen; + buf = io_buffer_select(req, &len, issue_flags); + if (!buf) + return -ENOBUFS; + req->rw.addr = (unsigned long) buf; + iov[0].iov_base = buf; + req->rw.len = iov[0].iov_len = (compat_size_t) len; + return 0; +} +#endif + +static ssize_t __io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, + unsigned int issue_flags) +{ + struct iovec __user *uiov = u64_to_user_ptr(req->rw.addr); + void __user *buf; + ssize_t len; + + if (copy_from_user(iov, uiov, sizeof(*uiov))) + return -EFAULT; + + len = iov[0].iov_len; + if (len < 0) + return -EINVAL; + buf = io_buffer_select(req, &len, issue_flags); + if (!buf) + return -ENOBUFS; + req->rw.addr = (unsigned long) buf; + iov[0].iov_base = buf; + req->rw.len = iov[0].iov_len = len; + return 0; +} + +static ssize_t io_iov_buffer_select(struct io_kiocb *req, struct iovec *iov, + unsigned int issue_flags) +{ + if (req->flags & (REQ_F_BUFFER_SELECTED|REQ_F_BUFFER_RING)) { + iov[0].iov_base = u64_to_user_ptr(req->rw.addr); + iov[0].iov_len = req->rw.len; + return 0; + } + if (req->rw.len != 1) + return -EINVAL; + +#ifdef CONFIG_COMPAT + if (req->ctx->compat) + return io_compat_import(req, iov, issue_flags); +#endif + + return __io_iov_buffer_select(req, iov, issue_flags); +} + +static inline bool io_do_buffer_select(struct io_kiocb *req) +{ + if (!(req->flags & REQ_F_BUFFER_SELECT)) + return false; + return !(req->flags & (REQ_F_BUFFER_SELECTED|REQ_F_BUFFER_RING)); +} + +static struct iovec *__io_import_iovec(int rw, struct io_kiocb *req, + struct io_rw_state *s, + unsigned int issue_flags) +{ + struct iov_iter *iter = &s->iter; + u8 opcode = req->opcode; + struct iovec *iovec; + void __user *buf; + size_t sqe_len; + ssize_t ret; + + if (opcode == IORING_OP_READ_FIXED || opcode == IORING_OP_WRITE_FIXED) { + ret = io_import_fixed(req, rw, iter, issue_flags); + if (ret) + return ERR_PTR(ret); + return NULL; + } + + buf = u64_to_user_ptr(req->rw.addr); + sqe_len = req->rw.len; + + if (opcode == IORING_OP_READ || opcode == IORING_OP_WRITE) { + if (io_do_buffer_select(req)) { + buf = io_buffer_select(req, &sqe_len, issue_flags); + if (!buf) + return ERR_PTR(-ENOBUFS); + req->rw.addr = (unsigned long) buf; + req->rw.len = sqe_len; + } + + ret = import_single_range(rw, buf, sqe_len, s->fast_iov, iter); + if (ret) + return ERR_PTR(ret); + return NULL; + } + + iovec = s->fast_iov; + if (req->flags & REQ_F_BUFFER_SELECT) { + ret = io_iov_buffer_select(req, iovec, issue_flags); + if (ret) + return ERR_PTR(ret); + iov_iter_init(iter, rw, iovec, 1, iovec->iov_len); + return NULL; + } + + ret = __import_iovec(rw, buf, sqe_len, UIO_FASTIOV, &iovec, iter, + req->ctx->compat); + if (unlikely(ret < 0)) + return ERR_PTR(ret); + return iovec; +} + +static inline int io_import_iovec(int rw, struct io_kiocb *req, + struct iovec **iovec, struct io_rw_state *s, + unsigned int issue_flags) +{ + *iovec = __io_import_iovec(rw, req, s, issue_flags); + if (unlikely(IS_ERR(*iovec))) + return PTR_ERR(*iovec); + + iov_iter_save_state(&s->iter, &s->iter_state); + return 0; +} + +static inline loff_t *io_kiocb_ppos(struct kiocb *kiocb) +{ + return (kiocb->ki_filp->f_mode & FMODE_STREAM) ? NULL : &kiocb->ki_pos; +} + +/* + * For files that don't have ->read_iter() and ->write_iter(), handle them + * by looping over ->read() or ->write() manually. + */ +static ssize_t loop_rw_iter(int rw, struct io_kiocb *req, struct iov_iter *iter) +{ + struct kiocb *kiocb = &req->rw.kiocb; + struct file *file = req->file; + ssize_t ret = 0; + loff_t *ppos; + + /* + * Don't support polled IO through this interface, and we can't + * support non-blocking either. For the latter, this just causes + * the kiocb to be handled from an async context. + */ + if (kiocb->ki_flags & IOCB_HIPRI) + return -EOPNOTSUPP; + if ((kiocb->ki_flags & IOCB_NOWAIT) && + !(kiocb->ki_filp->f_flags & O_NONBLOCK)) + return -EAGAIN; + + ppos = io_kiocb_ppos(kiocb); + + while (iov_iter_count(iter)) { + struct iovec iovec; + ssize_t nr; + + if (!iov_iter_is_bvec(iter)) { + iovec = iov_iter_iovec(iter); + } else { + iovec.iov_base = u64_to_user_ptr(req->rw.addr); + iovec.iov_len = req->rw.len; + } + + if (rw == READ) { + nr = file->f_op->read(file, iovec.iov_base, + iovec.iov_len, ppos); + } else { + nr = file->f_op->write(file, iovec.iov_base, + iovec.iov_len, ppos); + } + + if (nr < 0) { + if (!ret) + ret = nr; + break; + } + ret += nr; + if (!iov_iter_is_bvec(iter)) { + iov_iter_advance(iter, nr); + } else { + req->rw.addr += nr; + req->rw.len -= nr; + if (!req->rw.len) + break; + } + if (nr != iovec.iov_len) + break; + } + + return ret; +} + +static void io_req_map_rw(struct io_kiocb *req, const struct iovec *iovec, + const struct iovec *fast_iov, struct iov_iter *iter) +{ + struct io_async_rw *rw = req->async_data; + + memcpy(&rw->s.iter, iter, sizeof(*iter)); + rw->free_iovec = iovec; + rw->bytes_done = 0; + /* can only be fixed buffers, no need to do anything */ + if (iov_iter_is_bvec(iter)) + return; + if (!iovec) { + unsigned iov_off = 0; + + rw->s.iter.iov = rw->s.fast_iov; + if (iter->iov != fast_iov) { + iov_off = iter->iov - fast_iov; + rw->s.iter.iov += iov_off; + } + if (rw->s.fast_iov != fast_iov) + memcpy(rw->s.fast_iov + iov_off, fast_iov + iov_off, + sizeof(struct iovec) * iter->nr_segs); + } else { + req->flags |= REQ_F_NEED_CLEANUP; + } +} + +static inline bool io_alloc_async_data(struct io_kiocb *req) +{ + WARN_ON_ONCE(!io_op_defs[req->opcode].async_size); + req->async_data = kmalloc(io_op_defs[req->opcode].async_size, GFP_KERNEL); + if (req->async_data) { + req->flags |= REQ_F_ASYNC_DATA; + return false; + } + return true; +} + +static int io_setup_async_rw(struct io_kiocb *req, const struct iovec *iovec, + struct io_rw_state *s, bool force) +{ + if (!force && !io_op_defs[req->opcode].needs_async_setup) + return 0; + if (!req_has_async_data(req)) { + struct io_async_rw *iorw; + + if (io_alloc_async_data(req)) { + kfree(iovec); + return -ENOMEM; + } + + io_req_map_rw(req, iovec, s->fast_iov, &s->iter); + iorw = req->async_data; + /* we've copied and mapped the iter, ensure state is saved */ + iov_iter_save_state(&iorw->s.iter, &iorw->s.iter_state); + } + return 0; +} + +static inline int io_rw_prep_async(struct io_kiocb *req, int rw) +{ + struct io_async_rw *iorw = req->async_data; + struct iovec *iov; + int ret; + + /* submission path, ->uring_lock should already be taken */ + ret = io_import_iovec(rw, req, &iov, &iorw->s, 0); + if (unlikely(ret < 0)) + return ret; + + iorw->bytes_done = 0; + iorw->free_iovec = iov; + if (iov) + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_readv_prep_async(struct io_kiocb *req) +{ + return io_rw_prep_async(req, READ); +} + +static int io_writev_prep_async(struct io_kiocb *req) +{ + return io_rw_prep_async(req, WRITE); +} + +/* + * This is our waitqueue callback handler, registered through __folio_lock_async() + * when we initially tried to do the IO with the iocb armed our waitqueue. + * This gets called when the page is unlocked, and we generally expect that to + * happen when the page IO is completed and the page is now uptodate. This will + * queue a task_work based retry of the operation, attempting to copy the data + * again. If the latter fails because the page was NOT uptodate, then we will + * do a thread based blocking retry of the operation. That's the unexpected + * slow path. + */ +static int io_async_buf_func(struct wait_queue_entry *wait, unsigned mode, + int sync, void *arg) +{ + struct wait_page_queue *wpq; + struct io_kiocb *req = wait->private; + struct wait_page_key *key = arg; + + wpq = container_of(wait, struct wait_page_queue, wait); + + if (!wake_page_match(wpq, key)) + return 0; + + req->rw.kiocb.ki_flags &= ~IOCB_WAITQ; + list_del_init(&wait->entry); + io_req_task_queue(req); + return 1; +} + +/* + * This controls whether a given IO request should be armed for async page + * based retry. If we return false here, the request is handed to the async + * worker threads for retry. If we're doing buffered reads on a regular file, + * we prepare a private wait_page_queue entry and retry the operation. This + * will either succeed because the page is now uptodate and unlocked, or it + * will register a callback when the page is unlocked at IO completion. Through + * that callback, io_uring uses task_work to setup a retry of the operation. + * That retry will attempt the buffered read again. The retry will generally + * succeed, or in rare cases where it fails, we then fall back to using the + * async worker threads for a blocking retry. + */ +static bool io_rw_should_retry(struct io_kiocb *req) +{ + struct io_async_rw *rw = req->async_data; + struct wait_page_queue *wait = &rw->wpq; + struct kiocb *kiocb = &req->rw.kiocb; + + /* never retry for NOWAIT, we just complete with -EAGAIN */ + if (req->flags & REQ_F_NOWAIT) + return false; + + /* Only for buffered IO */ + if (kiocb->ki_flags & (IOCB_DIRECT | IOCB_HIPRI)) + return false; + + /* + * just use poll if we can, and don't attempt if the fs doesn't + * support callback based unlocks + */ + if (file_can_poll(req->file) || !(req->file->f_mode & FMODE_BUF_RASYNC)) + return false; + + wait->wait.func = io_async_buf_func; + wait->wait.private = req; + wait->wait.flags = 0; + INIT_LIST_HEAD(&wait->wait.entry); + kiocb->ki_flags |= IOCB_WAITQ; + kiocb->ki_flags &= ~IOCB_NOWAIT; + kiocb->ki_waitq = wait; + return true; +} + +static inline int io_iter_do_read(struct io_kiocb *req, struct iov_iter *iter) +{ + if (likely(req->file->f_op->read_iter)) + return call_read_iter(req->file, &req->rw.kiocb, iter); + else if (req->file->f_op->read) + return loop_rw_iter(READ, req, iter); + else + return -EINVAL; +} + +static bool need_read_all(struct io_kiocb *req) +{ + return req->flags & REQ_F_ISREG || + S_ISBLK(file_inode(req->file)->i_mode); +} + +static int io_rw_init_file(struct io_kiocb *req, fmode_t mode) +{ + struct kiocb *kiocb = &req->rw.kiocb; + struct io_ring_ctx *ctx = req->ctx; + struct file *file = req->file; + int ret; + + if (unlikely(!file || !(file->f_mode & mode))) + return -EBADF; + + if (!io_req_ffs_set(req)) + req->flags |= io_file_get_flags(file) << REQ_F_SUPPORT_NOWAIT_BIT; + + kiocb->ki_flags = iocb_flags(file); + ret = kiocb_set_rw_flags(kiocb, req->rw.flags); + if (unlikely(ret)) + return ret; + + /* + * If the file is marked O_NONBLOCK, still allow retry for it if it + * supports async. Otherwise it's impossible to use O_NONBLOCK files + * reliably. If not, or it IOCB_NOWAIT is set, don't retry. + */ + if ((kiocb->ki_flags & IOCB_NOWAIT) || + ((file->f_flags & O_NONBLOCK) && !io_file_supports_nowait(req))) + req->flags |= REQ_F_NOWAIT; + + if (ctx->flags & IORING_SETUP_IOPOLL) { + if (!(kiocb->ki_flags & IOCB_DIRECT) || !file->f_op->iopoll) + return -EOPNOTSUPP; + + kiocb->private = NULL; + kiocb->ki_flags |= IOCB_HIPRI | IOCB_ALLOC_CACHE; + kiocb->ki_complete = io_complete_rw_iopoll; + req->iopoll_completed = 0; + } else { + if (kiocb->ki_flags & IOCB_HIPRI) + return -EINVAL; + kiocb->ki_complete = io_complete_rw; + } + + return 0; +} + +static int io_read(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_rw_state __s, *s = &__s; + struct iovec *iovec; + struct kiocb *kiocb = &req->rw.kiocb; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + struct io_async_rw *rw; + ssize_t ret, ret2; + loff_t *ppos; + + if (!req_has_async_data(req)) { + ret = io_import_iovec(READ, req, &iovec, s, issue_flags); + if (unlikely(ret < 0)) + return ret; + } else { + rw = req->async_data; + s = &rw->s; + + /* + * Safe and required to re-import if we're using provided + * buffers, as we dropped the selected one before retry. + */ + if (io_do_buffer_select(req)) { + ret = io_import_iovec(READ, req, &iovec, s, issue_flags); + if (unlikely(ret < 0)) + return ret; + } + + /* + * We come here from an earlier attempt, restore our state to + * match in case it doesn't. It's cheap enough that we don't + * need to make this conditional. + */ + iov_iter_restore(&s->iter, &s->iter_state); + iovec = NULL; + } + ret = io_rw_init_file(req, FMODE_READ); + if (unlikely(ret)) { + kfree(iovec); + return ret; + } + req->cqe.res = iov_iter_count(&s->iter); + + if (force_nonblock) { + /* If the file doesn't support async, just async punt */ + if (unlikely(!io_file_supports_nowait(req))) { + ret = io_setup_async_rw(req, iovec, s, true); + return ret ?: -EAGAIN; + } + kiocb->ki_flags |= IOCB_NOWAIT; + } else { + /* Ensure we clear previously set non-block flag */ + kiocb->ki_flags &= ~IOCB_NOWAIT; + } + + ppos = io_kiocb_update_pos(req); + + ret = rw_verify_area(READ, req->file, ppos, req->cqe.res); + if (unlikely(ret)) { + kfree(iovec); + return ret; + } + + ret = io_iter_do_read(req, &s->iter); + + if (ret == -EAGAIN || (req->flags & REQ_F_REISSUE)) { + req->flags &= ~REQ_F_REISSUE; + /* if we can poll, just do that */ + if (req->opcode == IORING_OP_READ && file_can_poll(req->file)) + return -EAGAIN; + /* IOPOLL retry should happen for io-wq threads */ + if (!force_nonblock && !(req->ctx->flags & IORING_SETUP_IOPOLL)) + goto done; + /* no retry on NONBLOCK nor RWF_NOWAIT */ + if (req->flags & REQ_F_NOWAIT) + goto done; + ret = 0; + } else if (ret == -EIOCBQUEUED) { + goto out_free; + } else if (ret == req->cqe.res || ret <= 0 || !force_nonblock || + (req->flags & REQ_F_NOWAIT) || !need_read_all(req)) { + /* read all, failed, already did sync or don't want to retry */ + goto done; + } + + /* + * Don't depend on the iter state matching what was consumed, or being + * untouched in case of error. Restore it and we'll advance it + * manually if we need to. + */ + iov_iter_restore(&s->iter, &s->iter_state); + + ret2 = io_setup_async_rw(req, iovec, s, true); + if (ret2) + return ret2; + + iovec = NULL; + rw = req->async_data; + s = &rw->s; + /* + * Now use our persistent iterator and state, if we aren't already. + * We've restored and mapped the iter to match. + */ + + do { + /* + * We end up here because of a partial read, either from + * above or inside this loop. Advance the iter by the bytes + * that were consumed. + */ + iov_iter_advance(&s->iter, ret); + if (!iov_iter_count(&s->iter)) + break; + rw->bytes_done += ret; + iov_iter_save_state(&s->iter, &s->iter_state); + + /* if we can retry, do so with the callbacks armed */ + if (!io_rw_should_retry(req)) { + kiocb->ki_flags &= ~IOCB_WAITQ; + return -EAGAIN; + } + + req->cqe.res = iov_iter_count(&s->iter); + /* + * Now retry read with the IOCB_WAITQ parts set in the iocb. If + * we get -EIOCBQUEUED, then we'll get a notification when the + * desired page gets unlocked. We can also get a partial read + * here, and if we do, then just retry at the new offset. + */ + ret = io_iter_do_read(req, &s->iter); + if (ret == -EIOCBQUEUED) + return 0; + /* we got some bytes, but not all. retry. */ + kiocb->ki_flags &= ~IOCB_WAITQ; + iov_iter_restore(&s->iter, &s->iter_state); + } while (ret > 0); +done: + kiocb_done(req, ret, issue_flags); +out_free: + /* it's faster to check here then delegate to kfree */ + if (iovec) + kfree(iovec); + return 0; +} + +static int io_write(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_rw_state __s, *s = &__s; + struct iovec *iovec; + struct kiocb *kiocb = &req->rw.kiocb; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + ssize_t ret, ret2; + loff_t *ppos; + + if (!req_has_async_data(req)) { + ret = io_import_iovec(WRITE, req, &iovec, s, issue_flags); + if (unlikely(ret < 0)) + return ret; + } else { + struct io_async_rw *rw = req->async_data; + + s = &rw->s; + iov_iter_restore(&s->iter, &s->iter_state); + iovec = NULL; + } + ret = io_rw_init_file(req, FMODE_WRITE); + if (unlikely(ret)) { + kfree(iovec); + return ret; + } + req->cqe.res = iov_iter_count(&s->iter); + + if (force_nonblock) { + /* If the file doesn't support async, just async punt */ + if (unlikely(!io_file_supports_nowait(req))) + goto copy_iov; + + /* file path doesn't support NOWAIT for non-direct_IO */ + if (force_nonblock && !(kiocb->ki_flags & IOCB_DIRECT) && + (req->flags & REQ_F_ISREG)) + goto copy_iov; + + kiocb->ki_flags |= IOCB_NOWAIT; + } else { + /* Ensure we clear previously set non-block flag */ + kiocb->ki_flags &= ~IOCB_NOWAIT; + } + + ppos = io_kiocb_update_pos(req); + + ret = rw_verify_area(WRITE, req->file, ppos, req->cqe.res); + if (unlikely(ret)) + goto out_free; + + /* + * Open-code file_start_write here to grab freeze protection, + * which will be released by another thread in + * io_complete_rw(). Fool lockdep by telling it the lock got + * released so that it doesn't complain about the held lock when + * we return to userspace. + */ + if (req->flags & REQ_F_ISREG) { + sb_start_write(file_inode(req->file)->i_sb); + __sb_writers_release(file_inode(req->file)->i_sb, + SB_FREEZE_WRITE); + } + kiocb->ki_flags |= IOCB_WRITE; + + if (likely(req->file->f_op->write_iter)) + ret2 = call_write_iter(req->file, kiocb, &s->iter); + else if (req->file->f_op->write) + ret2 = loop_rw_iter(WRITE, req, &s->iter); + else + ret2 = -EINVAL; + + if (req->flags & REQ_F_REISSUE) { + req->flags &= ~REQ_F_REISSUE; + ret2 = -EAGAIN; + } + + /* + * Raw bdev writes will return -EOPNOTSUPP for IOCB_NOWAIT. Just + * retry them without IOCB_NOWAIT. + */ + if (ret2 == -EOPNOTSUPP && (kiocb->ki_flags & IOCB_NOWAIT)) + ret2 = -EAGAIN; + /* no retry on NONBLOCK nor RWF_NOWAIT */ + if (ret2 == -EAGAIN && (req->flags & REQ_F_NOWAIT)) + goto done; + if (!force_nonblock || ret2 != -EAGAIN) { + /* IOPOLL retry should happen for io-wq threads */ + if (ret2 == -EAGAIN && (req->ctx->flags & IORING_SETUP_IOPOLL)) + goto copy_iov; +done: + kiocb_done(req, ret2, issue_flags); + } else { +copy_iov: + iov_iter_restore(&s->iter, &s->iter_state); + ret = io_setup_async_rw(req, iovec, s, false); + if (!ret) { + if (kiocb->ki_flags & IOCB_WRITE) + kiocb_end_write(req); + return -EAGAIN; + } + return ret; + } +out_free: + /* it's reportedly faster than delegating the null check to kfree() */ + if (iovec) + kfree(iovec); + return ret; +} + +static int io_renameat_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_rename *ren = &req->rename; + const char __user *oldf, *newf; + + if (sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + ren->old_dfd = READ_ONCE(sqe->fd); + oldf = u64_to_user_ptr(READ_ONCE(sqe->addr)); + newf = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + ren->new_dfd = READ_ONCE(sqe->len); + ren->flags = READ_ONCE(sqe->rename_flags); + + ren->oldpath = getname(oldf); + if (IS_ERR(ren->oldpath)) + return PTR_ERR(ren->oldpath); + + ren->newpath = getname(newf); + if (IS_ERR(ren->newpath)) { + putname(ren->oldpath); + return PTR_ERR(ren->newpath); + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_renameat(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_rename *ren = &req->rename; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_renameat2(ren->old_dfd, ren->oldpath, ren->new_dfd, + ren->newpath, ren->flags); + + req->flags &= ~REQ_F_NEED_CLEANUP; + io_req_complete(req, ret); + return 0; +} + +static inline void __io_xattr_finish(struct io_kiocb *req) +{ + struct io_xattr *ix = &req->xattr; + + if (ix->filename) + putname(ix->filename); + + kfree(ix->ctx.kname); + kvfree(ix->ctx.kvalue); +} + +static void io_xattr_finish(struct io_kiocb *req, int ret) +{ + req->flags &= ~REQ_F_NEED_CLEANUP; + + __io_xattr_finish(req); + io_req_complete(req, ret); +} + +static int __io_getxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_xattr *ix = &req->xattr; + const char __user *name; + int ret; + + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + ix->filename = NULL; + ix->ctx.kvalue = NULL; + name = u64_to_user_ptr(READ_ONCE(sqe->addr)); + ix->ctx.cvalue = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + ix->ctx.size = READ_ONCE(sqe->len); + ix->ctx.flags = READ_ONCE(sqe->xattr_flags); + + if (ix->ctx.flags) + return -EINVAL; + + ix->ctx.kname = kmalloc(sizeof(*ix->ctx.kname), GFP_KERNEL); + if (!ix->ctx.kname) + return -ENOMEM; + + ret = strncpy_from_user(ix->ctx.kname->name, name, + sizeof(ix->ctx.kname->name)); + if (!ret || ret == sizeof(ix->ctx.kname->name)) + ret = -ERANGE; + if (ret < 0) { + kfree(ix->ctx.kname); + return ret; + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_fgetxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + return __io_getxattr_prep(req, sqe); +} + +static int io_getxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_xattr *ix = &req->xattr; + const char __user *path; + int ret; + + ret = __io_getxattr_prep(req, sqe); + if (ret) + return ret; + + path = u64_to_user_ptr(READ_ONCE(sqe->addr3)); + + ix->filename = getname_flags(path, LOOKUP_FOLLOW, NULL); + if (IS_ERR(ix->filename)) { + ret = PTR_ERR(ix->filename); + ix->filename = NULL; + } + + return ret; +} + +static int io_fgetxattr(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_xattr *ix = &req->xattr; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_getxattr(mnt_user_ns(req->file->f_path.mnt), + req->file->f_path.dentry, + &ix->ctx); + + io_xattr_finish(req, ret); + return 0; +} + +static int io_getxattr(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_xattr *ix = &req->xattr; + unsigned int lookup_flags = LOOKUP_FOLLOW; + struct path path; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + +retry: + ret = filename_lookup(AT_FDCWD, ix->filename, lookup_flags, &path, NULL); + if (!ret) { + ret = do_getxattr(mnt_user_ns(path.mnt), + path.dentry, + &ix->ctx); + + path_put(&path); + if (retry_estale(ret, lookup_flags)) { + lookup_flags |= LOOKUP_REVAL; + goto retry; + } + } + + io_xattr_finish(req, ret); + return 0; +} + +static int __io_setxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_xattr *ix = &req->xattr; + const char __user *name; + int ret; + + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + ix->filename = NULL; + name = u64_to_user_ptr(READ_ONCE(sqe->addr)); + ix->ctx.cvalue = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + ix->ctx.kvalue = NULL; + ix->ctx.size = READ_ONCE(sqe->len); + ix->ctx.flags = READ_ONCE(sqe->xattr_flags); + + ix->ctx.kname = kmalloc(sizeof(*ix->ctx.kname), GFP_KERNEL); + if (!ix->ctx.kname) + return -ENOMEM; + + ret = setxattr_copy(name, &ix->ctx); + if (ret) { + kfree(ix->ctx.kname); + return ret; + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_setxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_xattr *ix = &req->xattr; + const char __user *path; + int ret; + + ret = __io_setxattr_prep(req, sqe); + if (ret) + return ret; + + path = u64_to_user_ptr(READ_ONCE(sqe->addr3)); + + ix->filename = getname_flags(path, LOOKUP_FOLLOW, NULL); + if (IS_ERR(ix->filename)) { + ret = PTR_ERR(ix->filename); + ix->filename = NULL; + } + + return ret; +} + +static int io_fsetxattr_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + return __io_setxattr_prep(req, sqe); +} + +static int __io_setxattr(struct io_kiocb *req, unsigned int issue_flags, + struct path *path) +{ + struct io_xattr *ix = &req->xattr; + int ret; + + ret = mnt_want_write(path->mnt); + if (!ret) { + ret = do_setxattr(mnt_user_ns(path->mnt), path->dentry, &ix->ctx); + mnt_drop_write(path->mnt); + } + + return ret; +} + +static int io_fsetxattr(struct io_kiocb *req, unsigned int issue_flags) +{ + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = __io_setxattr(req, issue_flags, &req->file->f_path); + io_xattr_finish(req, ret); + + return 0; +} + +static int io_setxattr(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_xattr *ix = &req->xattr; + unsigned int lookup_flags = LOOKUP_FOLLOW; + struct path path; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + +retry: + ret = filename_lookup(AT_FDCWD, ix->filename, lookup_flags, &path, NULL); + if (!ret) { + ret = __io_setxattr(req, issue_flags, &path); + path_put(&path); + if (retry_estale(ret, lookup_flags)) { + lookup_flags |= LOOKUP_REVAL; + goto retry; + } + } + + io_xattr_finish(req, ret); + return 0; +} + +static int io_unlinkat_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_unlink *un = &req->unlink; + const char __user *fname; + + if (sqe->off || sqe->len || sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + un->dfd = READ_ONCE(sqe->fd); + + un->flags = READ_ONCE(sqe->unlink_flags); + if (un->flags & ~AT_REMOVEDIR) + return -EINVAL; + + fname = u64_to_user_ptr(READ_ONCE(sqe->addr)); + un->filename = getname(fname); + if (IS_ERR(un->filename)) + return PTR_ERR(un->filename); + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_unlinkat(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_unlink *un = &req->unlink; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + if (un->flags & AT_REMOVEDIR) + ret = do_rmdir(un->dfd, un->filename); + else + ret = do_unlinkat(un->dfd, un->filename); + + req->flags &= ~REQ_F_NEED_CLEANUP; + io_req_complete(req, ret); + return 0; +} + +static int io_mkdirat_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_mkdir *mkd = &req->mkdir; + const char __user *fname; + + if (sqe->off || sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + mkd->dfd = READ_ONCE(sqe->fd); + mkd->mode = READ_ONCE(sqe->len); + + fname = u64_to_user_ptr(READ_ONCE(sqe->addr)); + mkd->filename = getname(fname); + if (IS_ERR(mkd->filename)) + return PTR_ERR(mkd->filename); + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_mkdirat(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_mkdir *mkd = &req->mkdir; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_mkdirat(mkd->dfd, mkd->filename, mkd->mode); + + req->flags &= ~REQ_F_NEED_CLEANUP; + io_req_complete(req, ret); + return 0; +} + +static int io_symlinkat_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_symlink *sl = &req->symlink; + const char __user *oldpath, *newpath; + + if (sqe->len || sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + sl->new_dfd = READ_ONCE(sqe->fd); + oldpath = u64_to_user_ptr(READ_ONCE(sqe->addr)); + newpath = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + + sl->oldpath = getname(oldpath); + if (IS_ERR(sl->oldpath)) + return PTR_ERR(sl->oldpath); + + sl->newpath = getname(newpath); + if (IS_ERR(sl->newpath)) { + putname(sl->oldpath); + return PTR_ERR(sl->newpath); + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_symlinkat(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_symlink *sl = &req->symlink; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_symlinkat(sl->oldpath, sl->new_dfd, sl->newpath); + + req->flags &= ~REQ_F_NEED_CLEANUP; + io_req_complete(req, ret); + return 0; +} + +static int io_linkat_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_hardlink *lnk = &req->hardlink; + const char __user *oldf, *newf; + + if (sqe->rw_flags || sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + lnk->old_dfd = READ_ONCE(sqe->fd); + lnk->new_dfd = READ_ONCE(sqe->len); + oldf = u64_to_user_ptr(READ_ONCE(sqe->addr)); + newf = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + lnk->flags = READ_ONCE(sqe->hardlink_flags); + + lnk->oldpath = getname(oldf); + if (IS_ERR(lnk->oldpath)) + return PTR_ERR(lnk->oldpath); + + lnk->newpath = getname(newf); + if (IS_ERR(lnk->newpath)) { + putname(lnk->oldpath); + return PTR_ERR(lnk->newpath); + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_linkat(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_hardlink *lnk = &req->hardlink; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_linkat(lnk->old_dfd, lnk->oldpath, lnk->new_dfd, + lnk->newpath, lnk->flags); + + req->flags &= ~REQ_F_NEED_CLEANUP; + io_req_complete(req, ret); + return 0; +} + +static void io_uring_cmd_work(struct io_kiocb *req, bool *locked) +{ + req->uring_cmd.task_work_cb(&req->uring_cmd); +} + +void io_uring_cmd_complete_in_task(struct io_uring_cmd *ioucmd, + void (*task_work_cb)(struct io_uring_cmd *)) +{ + struct io_kiocb *req = container_of(ioucmd, struct io_kiocb, uring_cmd); + + req->uring_cmd.task_work_cb = task_work_cb; + req->io_task_work.func = io_uring_cmd_work; + io_req_task_work_add(req); +} +EXPORT_SYMBOL_GPL(io_uring_cmd_complete_in_task); + +static inline void io_req_set_cqe32_extra(struct io_kiocb *req, + u64 extra1, u64 extra2) +{ + req->extra1 = extra1; + req->extra2 = extra2; + req->flags |= REQ_F_CQE32_INIT; +} + +/* + * Called by consumers of io_uring_cmd, if they originally returned + * -EIOCBQUEUED upon receiving the command. + */ +void io_uring_cmd_done(struct io_uring_cmd *ioucmd, ssize_t ret, ssize_t res2) +{ + struct io_kiocb *req = container_of(ioucmd, struct io_kiocb, uring_cmd); + + if (ret < 0) + req_set_fail(req); + + if (req->ctx->flags & IORING_SETUP_CQE32) + io_req_set_cqe32_extra(req, res2, 0); + io_req_complete(req, ret); +} +EXPORT_SYMBOL_GPL(io_uring_cmd_done); + +static int io_uring_cmd_prep_async(struct io_kiocb *req) +{ + size_t cmd_size; + + cmd_size = uring_cmd_pdu_size(req->ctx->flags & IORING_SETUP_SQE128); + + memcpy(req->async_data, req->uring_cmd.cmd, cmd_size); + return 0; +} + +static int io_uring_cmd_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_uring_cmd *ioucmd = &req->uring_cmd; + + if (sqe->rw_flags || sqe->__pad1) + return -EINVAL; + ioucmd->cmd = sqe->cmd; + ioucmd->cmd_op = READ_ONCE(sqe->cmd_op); + return 0; +} + +static int io_uring_cmd(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_uring_cmd *ioucmd = &req->uring_cmd; + struct io_ring_ctx *ctx = req->ctx; + struct file *file = req->file; + int ret; + + if (!req->file->f_op->uring_cmd) + return -EOPNOTSUPP; + + ret = security_uring_cmd(ioucmd); + if (ret) + return ret; + + if (ctx->flags & IORING_SETUP_SQE128) + issue_flags |= IO_URING_F_SQE128; + if (ctx->flags & IORING_SETUP_CQE32) + issue_flags |= IO_URING_F_CQE32; + if (ctx->flags & IORING_SETUP_IOPOLL) + issue_flags |= IO_URING_F_IOPOLL; + + if (req_has_async_data(req)) + ioucmd->cmd = req->async_data; + + ret = file->f_op->uring_cmd(ioucmd, issue_flags); + if (ret == -EAGAIN) { + if (!req_has_async_data(req)) { + if (io_alloc_async_data(req)) + return -ENOMEM; + io_uring_cmd_prep_async(req); + } + return -EAGAIN; + } + + if (ret != -EIOCBQUEUED) + io_uring_cmd_done(ioucmd, ret, 0); + return 0; +} + +static int __io_splice_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_splice *sp = &req->splice; + unsigned int valid_flags = SPLICE_F_FD_IN_FIXED | SPLICE_F_ALL; + + sp->len = READ_ONCE(sqe->len); + sp->flags = READ_ONCE(sqe->splice_flags); + if (unlikely(sp->flags & ~valid_flags)) + return -EINVAL; + sp->splice_fd_in = READ_ONCE(sqe->splice_fd_in); + return 0; +} + +static int io_tee_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (READ_ONCE(sqe->splice_off_in) || READ_ONCE(sqe->off)) + return -EINVAL; + return __io_splice_prep(req, sqe); +} + +static int io_tee(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_splice *sp = &req->splice; + struct file *out = sp->file_out; + unsigned int flags = sp->flags & ~SPLICE_F_FD_IN_FIXED; + struct file *in; + long ret = 0; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + if (sp->flags & SPLICE_F_FD_IN_FIXED) + in = io_file_get_fixed(req, sp->splice_fd_in, issue_flags); + else + in = io_file_get_normal(req, sp->splice_fd_in); + if (!in) { + ret = -EBADF; + goto done; + } + + if (sp->len) + ret = do_tee(in, out, sp->len, flags); + + if (!(sp->flags & SPLICE_F_FD_IN_FIXED)) + io_put_file(in); +done: + if (ret != sp->len) + req_set_fail(req); + __io_req_complete(req, 0, ret, 0); + return 0; +} + +static int io_splice_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_splice *sp = &req->splice; + + sp->off_in = READ_ONCE(sqe->splice_off_in); + sp->off_out = READ_ONCE(sqe->off); + return __io_splice_prep(req, sqe); +} + +static int io_splice(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_splice *sp = &req->splice; + struct file *out = sp->file_out; + unsigned int flags = sp->flags & ~SPLICE_F_FD_IN_FIXED; + loff_t *poff_in, *poff_out; + struct file *in; + long ret = 0; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + if (sp->flags & SPLICE_F_FD_IN_FIXED) + in = io_file_get_fixed(req, sp->splice_fd_in, issue_flags); + else + in = io_file_get_normal(req, sp->splice_fd_in); + if (!in) { + ret = -EBADF; + goto done; + } + + poff_in = (sp->off_in == -1) ? NULL : &sp->off_in; + poff_out = (sp->off_out == -1) ? NULL : &sp->off_out; + + if (sp->len) + ret = do_splice(in, poff_in, out, poff_out, sp->len, flags); + + if (!(sp->flags & SPLICE_F_FD_IN_FIXED)) + io_put_file(in); +done: + if (ret != sp->len) + req_set_fail(req); + __io_req_complete(req, 0, ret, 0); + return 0; +} + +static int io_nop_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + return 0; +} + +/* + * IORING_OP_NOP just posts a completion event, nothing else. + */ +static int io_nop(struct io_kiocb *req, unsigned int issue_flags) +{ + __io_req_complete(req, issue_flags, 0, 0); + return 0; +} + +static int io_msg_ring_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (unlikely(sqe->addr || sqe->rw_flags || sqe->splice_fd_in || + sqe->buf_index || sqe->personality)) + return -EINVAL; + + req->msg.user_data = READ_ONCE(sqe->off); + req->msg.len = READ_ONCE(sqe->len); + return 0; +} + +static int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_ring_ctx *target_ctx; + struct io_msg *msg = &req->msg; + bool filled; + int ret; + + ret = -EBADFD; + if (req->file->f_op != &io_uring_fops) + goto done; + + ret = -EOVERFLOW; + target_ctx = req->file->private_data; + + spin_lock(&target_ctx->completion_lock); + filled = io_fill_cqe_aux(target_ctx, msg->user_data, msg->len, 0); + io_commit_cqring(target_ctx); + spin_unlock(&target_ctx->completion_lock); + + if (filled) { + io_cqring_ev_posted(target_ctx); + ret = 0; + } + +done: + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + /* put file to avoid an attempt to IOPOLL the req */ + if (!(req->flags & REQ_F_FIXED_FILE)) + io_put_file(req->file); + req->file = NULL; + return 0; +} + +static int io_fsync_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + if (unlikely(sqe->addr || sqe->buf_index || sqe->splice_fd_in)) + return -EINVAL; + + req->sync.flags = READ_ONCE(sqe->fsync_flags); + if (unlikely(req->sync.flags & ~IORING_FSYNC_DATASYNC)) + return -EINVAL; + + req->sync.off = READ_ONCE(sqe->off); + req->sync.len = READ_ONCE(sqe->len); + return 0; +} + +static int io_fsync(struct io_kiocb *req, unsigned int issue_flags) +{ + loff_t end = req->sync.off + req->sync.len; + int ret; + + /* fsync always requires a blocking context */ + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = vfs_fsync_range(req->file, req->sync.off, + end > 0 ? end : LLONG_MAX, + req->sync.flags & IORING_FSYNC_DATASYNC); + io_req_complete(req, ret); + return 0; +} + +static int io_fallocate_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in) + return -EINVAL; + + req->sync.off = READ_ONCE(sqe->off); + req->sync.len = READ_ONCE(sqe->addr); + req->sync.mode = READ_ONCE(sqe->len); + return 0; +} + +static int io_fallocate(struct io_kiocb *req, unsigned int issue_flags) +{ + int ret; + + /* fallocate always requiring blocking context */ + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + ret = vfs_fallocate(req->file, req->sync.mode, req->sync.off, + req->sync.len); + if (ret >= 0) + fsnotify_modify(req->file); + io_req_complete(req, ret); + return 0; +} + +static int __io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + const char __user *fname; + int ret; + + if (unlikely(sqe->buf_index)) + return -EINVAL; + if (unlikely(req->flags & REQ_F_FIXED_FILE)) + return -EBADF; + + /* open.how should be already initialised */ + if (!(req->open.how.flags & O_PATH) && force_o_largefile()) + req->open.how.flags |= O_LARGEFILE; + + req->open.dfd = READ_ONCE(sqe->fd); + fname = u64_to_user_ptr(READ_ONCE(sqe->addr)); + req->open.filename = getname(fname); + if (IS_ERR(req->open.filename)) { + ret = PTR_ERR(req->open.filename); + req->open.filename = NULL; + return ret; + } + + req->open.file_slot = READ_ONCE(sqe->file_index); + if (req->open.file_slot && (req->open.how.flags & O_CLOEXEC)) + return -EINVAL; + + req->open.nofile = rlimit(RLIMIT_NOFILE); + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_openat_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + u64 mode = READ_ONCE(sqe->len); + u64 flags = READ_ONCE(sqe->open_flags); + + req->open.how = build_open_how(flags, mode); + return __io_openat_prep(req, sqe); +} + +static int io_openat2_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct open_how __user *how; + size_t len; + int ret; + + how = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + len = READ_ONCE(sqe->len); + if (len < OPEN_HOW_SIZE_VER0) + return -EINVAL; + + ret = copy_struct_from_user(&req->open.how, sizeof(req->open.how), how, + len); + if (ret) + return ret; + + return __io_openat_prep(req, sqe); +} + +static int io_file_bitmap_get(struct io_ring_ctx *ctx) +{ + struct io_file_table *table = &ctx->file_table; + unsigned long nr = ctx->nr_user_files; + int ret; + + do { + ret = find_next_zero_bit(table->bitmap, nr, table->alloc_hint); + if (ret != nr) + return ret; + + if (!table->alloc_hint) + break; + + nr = table->alloc_hint; + table->alloc_hint = 0; + } while (1); + + return -ENFILE; +} + +/* + * Note when io_fixed_fd_install() returns error value, it will ensure + * fput() is called correspondingly. + */ +static int io_fixed_fd_install(struct io_kiocb *req, unsigned int issue_flags, + struct file *file, unsigned int file_slot) +{ + bool alloc_slot = file_slot == IORING_FILE_INDEX_ALLOC; + struct io_ring_ctx *ctx = req->ctx; + int ret; + + io_ring_submit_lock(ctx, issue_flags); + + if (alloc_slot) { + ret = io_file_bitmap_get(ctx); + if (unlikely(ret < 0)) + goto err; + file_slot = ret; + } else { + file_slot--; + } + + ret = io_install_fixed_file(req, file, issue_flags, file_slot); + if (!ret && alloc_slot) + ret = file_slot; +err: + io_ring_submit_unlock(ctx, issue_flags); + if (unlikely(ret < 0)) + fput(file); + return ret; +} + +static int io_openat2(struct io_kiocb *req, unsigned int issue_flags) +{ + struct open_flags op; + struct file *file; + bool resolve_nonblock, nonblock_set; + bool fixed = !!req->open.file_slot; + int ret; + + ret = build_open_flags(&req->open.how, &op); + if (ret) + goto err; + nonblock_set = op.open_flag & O_NONBLOCK; + resolve_nonblock = req->open.how.resolve & RESOLVE_CACHED; + if (issue_flags & IO_URING_F_NONBLOCK) { + /* + * Don't bother trying for O_TRUNC, O_CREAT, or O_TMPFILE open, + * it'll always -EAGAIN + */ + if (req->open.how.flags & (O_TRUNC | O_CREAT | O_TMPFILE)) + return -EAGAIN; + op.lookup_flags |= LOOKUP_CACHED; + op.open_flag |= O_NONBLOCK; + } + + if (!fixed) { + ret = __get_unused_fd_flags(req->open.how.flags, req->open.nofile); + if (ret < 0) + goto err; + } + + file = do_filp_open(req->open.dfd, req->open.filename, &op); + if (IS_ERR(file)) { + /* + * We could hang on to this 'fd' on retrying, but seems like + * marginal gain for something that is now known to be a slower + * path. So just put it, and we'll get a new one when we retry. + */ + if (!fixed) + put_unused_fd(ret); + + ret = PTR_ERR(file); + /* only retry if RESOLVE_CACHED wasn't already set by application */ + if (ret == -EAGAIN && + (!resolve_nonblock && (issue_flags & IO_URING_F_NONBLOCK))) + return -EAGAIN; + goto err; + } + + if ((issue_flags & IO_URING_F_NONBLOCK) && !nonblock_set) + file->f_flags &= ~O_NONBLOCK; + fsnotify_open(file); + + if (!fixed) + fd_install(ret, file); + else + ret = io_fixed_fd_install(req, issue_flags, file, + req->open.file_slot); +err: + putname(req->open.filename); + req->flags &= ~REQ_F_NEED_CLEANUP; + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_openat(struct io_kiocb *req, unsigned int issue_flags) +{ + return io_openat2(req, issue_flags); +} + +static int io_remove_buffers_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_provide_buf *p = &req->pbuf; + u64 tmp; + + if (sqe->rw_flags || sqe->addr || sqe->len || sqe->off || + sqe->splice_fd_in) + return -EINVAL; + + tmp = READ_ONCE(sqe->fd); + if (!tmp || tmp > USHRT_MAX) + return -EINVAL; + + memset(p, 0, sizeof(*p)); + p->nbufs = tmp; + p->bgid = READ_ONCE(sqe->buf_group); + return 0; +} + +static int __io_remove_buffers(struct io_ring_ctx *ctx, + struct io_buffer_list *bl, unsigned nbufs) +{ + unsigned i = 0; + + /* shouldn't happen */ + if (!nbufs) + return 0; + + if (bl->buf_nr_pages) { + int j; + + i = bl->buf_ring->tail - bl->head; + for (j = 0; j < bl->buf_nr_pages; j++) + unpin_user_page(bl->buf_pages[j]); + kvfree(bl->buf_pages); + bl->buf_pages = NULL; + bl->buf_nr_pages = 0; + /* make sure it's seen as empty */ + INIT_LIST_HEAD(&bl->buf_list); + return i; + } + + /* the head kbuf is the list itself */ + while (!list_empty(&bl->buf_list)) { + struct io_buffer *nxt; + + nxt = list_first_entry(&bl->buf_list, struct io_buffer, list); + list_del(&nxt->list); + if (++i == nbufs) + return i; + cond_resched(); + } + i++; + + return i; +} + +static int io_remove_buffers(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_provide_buf *p = &req->pbuf; + struct io_ring_ctx *ctx = req->ctx; + struct io_buffer_list *bl; + int ret = 0; + + io_ring_submit_lock(ctx, issue_flags); + + ret = -ENOENT; + bl = io_buffer_get_list(ctx, p->bgid); + if (bl) { + ret = -EINVAL; + /* can't use provide/remove buffers command on mapped buffers */ + if (!bl->buf_nr_pages) + ret = __io_remove_buffers(ctx, bl, p->nbufs); + } + if (ret < 0) + req_set_fail(req); + + /* complete before unlock, IOPOLL may need the lock */ + __io_req_complete(req, issue_flags, ret, 0); + io_ring_submit_unlock(ctx, issue_flags); + return 0; +} + +static int io_provide_buffers_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + unsigned long size, tmp_check; + struct io_provide_buf *p = &req->pbuf; + u64 tmp; + + if (sqe->rw_flags || sqe->splice_fd_in) + return -EINVAL; + + tmp = READ_ONCE(sqe->fd); + if (!tmp || tmp > USHRT_MAX) + return -E2BIG; + p->nbufs = tmp; + p->addr = READ_ONCE(sqe->addr); + p->len = READ_ONCE(sqe->len); + + if (check_mul_overflow((unsigned long)p->len, (unsigned long)p->nbufs, + &size)) + return -EOVERFLOW; + if (check_add_overflow((unsigned long)p->addr, size, &tmp_check)) + return -EOVERFLOW; + + size = (unsigned long)p->len * p->nbufs; + if (!access_ok(u64_to_user_ptr(p->addr), size)) + return -EFAULT; + + p->bgid = READ_ONCE(sqe->buf_group); + tmp = READ_ONCE(sqe->off); + if (tmp > USHRT_MAX) + return -E2BIG; + p->bid = tmp; + return 0; +} + +static int io_refill_buffer_cache(struct io_ring_ctx *ctx) +{ + struct io_buffer *buf; + struct page *page; + int bufs_in_page; + + /* + * Completions that don't happen inline (eg not under uring_lock) will + * add to ->io_buffers_comp. If we don't have any free buffers, check + * the completion list and splice those entries first. + */ + if (!list_empty_careful(&ctx->io_buffers_comp)) { + spin_lock(&ctx->completion_lock); + if (!list_empty(&ctx->io_buffers_comp)) { + list_splice_init(&ctx->io_buffers_comp, + &ctx->io_buffers_cache); + spin_unlock(&ctx->completion_lock); + return 0; + } + spin_unlock(&ctx->completion_lock); + } + + /* + * No free buffers and no completion entries either. Allocate a new + * page worth of buffer entries and add those to our freelist. + */ + page = alloc_page(GFP_KERNEL_ACCOUNT); + if (!page) + return -ENOMEM; + + list_add(&page->lru, &ctx->io_buffers_pages); + + buf = page_address(page); + bufs_in_page = PAGE_SIZE / sizeof(*buf); + while (bufs_in_page) { + list_add_tail(&buf->list, &ctx->io_buffers_cache); + buf++; + bufs_in_page--; + } + + return 0; +} + +static int io_add_buffers(struct io_ring_ctx *ctx, struct io_provide_buf *pbuf, + struct io_buffer_list *bl) +{ + struct io_buffer *buf; + u64 addr = pbuf->addr; + int i, bid = pbuf->bid; + + for (i = 0; i < pbuf->nbufs; i++) { + if (list_empty(&ctx->io_buffers_cache) && + io_refill_buffer_cache(ctx)) + break; + buf = list_first_entry(&ctx->io_buffers_cache, struct io_buffer, + list); + list_move_tail(&buf->list, &bl->buf_list); + buf->addr = addr; + buf->len = min_t(__u32, pbuf->len, MAX_RW_COUNT); + buf->bid = bid; + buf->bgid = pbuf->bgid; + addr += pbuf->len; + bid++; + cond_resched(); + } + + return i ? 0 : -ENOMEM; +} + +static __cold int io_init_bl_list(struct io_ring_ctx *ctx) +{ + int i; + + ctx->io_bl = kcalloc(BGID_ARRAY, sizeof(struct io_buffer_list), + GFP_KERNEL); + if (!ctx->io_bl) + return -ENOMEM; + + for (i = 0; i < BGID_ARRAY; i++) { + INIT_LIST_HEAD(&ctx->io_bl[i].buf_list); + ctx->io_bl[i].bgid = i; + } + + return 0; +} + +static int io_provide_buffers(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_provide_buf *p = &req->pbuf; + struct io_ring_ctx *ctx = req->ctx; + struct io_buffer_list *bl; + int ret = 0; + + io_ring_submit_lock(ctx, issue_flags); + + if (unlikely(p->bgid < BGID_ARRAY && !ctx->io_bl)) { + ret = io_init_bl_list(ctx); + if (ret) + goto err; + } + + bl = io_buffer_get_list(ctx, p->bgid); + if (unlikely(!bl)) { + bl = kzalloc(sizeof(*bl), GFP_KERNEL_ACCOUNT); + if (!bl) { + ret = -ENOMEM; + goto err; + } + INIT_LIST_HEAD(&bl->buf_list); + ret = io_buffer_add_list(ctx, bl, p->bgid); + if (ret) { + kfree(bl); + goto err; + } + } + /* can't add buffers via this command for a mapped buffer ring */ + if (bl->buf_nr_pages) { + ret = -EINVAL; + goto err; + } + + ret = io_add_buffers(ctx, p, bl); +err: + if (ret < 0) + req_set_fail(req); + /* complete before unlock, IOPOLL may need the lock */ + __io_req_complete(req, issue_flags, ret, 0); + io_ring_submit_unlock(ctx, issue_flags); + return 0; +} + +static int io_epoll_ctl_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ +#if defined(CONFIG_EPOLL) + if (sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + + req->epoll.epfd = READ_ONCE(sqe->fd); + req->epoll.op = READ_ONCE(sqe->len); + req->epoll.fd = READ_ONCE(sqe->off); + + if (ep_op_has_event(req->epoll.op)) { + struct epoll_event __user *ev; + + ev = u64_to_user_ptr(READ_ONCE(sqe->addr)); + if (copy_from_user(&req->epoll.event, ev, sizeof(*ev))) + return -EFAULT; + } + + return 0; +#else + return -EOPNOTSUPP; +#endif +} + +static int io_epoll_ctl(struct io_kiocb *req, unsigned int issue_flags) +{ +#if defined(CONFIG_EPOLL) + struct io_epoll *ie = &req->epoll; + int ret; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + + ret = do_epoll_ctl(ie->epfd, ie->op, ie->fd, &ie->event, force_nonblock); + if (force_nonblock && ret == -EAGAIN) + return -EAGAIN; + + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +#else + return -EOPNOTSUPP; +#endif +} + +static int io_madvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ +#if defined(CONFIG_ADVISE_SYSCALLS) && defined(CONFIG_MMU) + if (sqe->buf_index || sqe->off || sqe->splice_fd_in) + return -EINVAL; + + req->madvise.addr = READ_ONCE(sqe->addr); + req->madvise.len = READ_ONCE(sqe->len); + req->madvise.advice = READ_ONCE(sqe->fadvise_advice); + return 0; +#else + return -EOPNOTSUPP; +#endif +} + +static int io_madvise(struct io_kiocb *req, unsigned int issue_flags) +{ +#if defined(CONFIG_ADVISE_SYSCALLS) && defined(CONFIG_MMU) + struct io_madvise *ma = &req->madvise; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_madvise(current->mm, ma->addr, ma->len, ma->advice); + io_req_complete(req, ret); + return 0; +#else + return -EOPNOTSUPP; +#endif +} + +static int io_fadvise_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + if (sqe->buf_index || sqe->addr || sqe->splice_fd_in) + return -EINVAL; + + req->fadvise.offset = READ_ONCE(sqe->off); + req->fadvise.len = READ_ONCE(sqe->len); + req->fadvise.advice = READ_ONCE(sqe->fadvise_advice); + return 0; +} + +static int io_fadvise(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_fadvise *fa = &req->fadvise; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) { + switch (fa->advice) { + case POSIX_FADV_NORMAL: + case POSIX_FADV_RANDOM: + case POSIX_FADV_SEQUENTIAL: + break; + default: + return -EAGAIN; + } + } + + ret = vfs_fadvise(req->file, fa->offset, fa->len, fa->advice); + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_statx_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + const char __user *path; + + if (sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + if (req->flags & REQ_F_FIXED_FILE) + return -EBADF; + + req->statx.dfd = READ_ONCE(sqe->fd); + req->statx.mask = READ_ONCE(sqe->len); + path = u64_to_user_ptr(READ_ONCE(sqe->addr)); + req->statx.buffer = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + req->statx.flags = READ_ONCE(sqe->statx_flags); + + req->statx.filename = getname_flags(path, + getname_statx_lookup_flags(req->statx.flags), + NULL); + + if (IS_ERR(req->statx.filename)) { + int ret = PTR_ERR(req->statx.filename); + + req->statx.filename = NULL; + return ret; + } + + req->flags |= REQ_F_NEED_CLEANUP; + return 0; +} + +static int io_statx(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_statx *ctx = &req->statx; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = do_statx(ctx->dfd, ctx->filename, ctx->flags, ctx->mask, + ctx->buffer); + io_req_complete(req, ret); + return 0; +} + +static int io_close_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + if (sqe->off || sqe->addr || sqe->len || sqe->rw_flags || sqe->buf_index) + return -EINVAL; + if (req->flags & REQ_F_FIXED_FILE) + return -EBADF; + + req->close.fd = READ_ONCE(sqe->fd); + req->close.file_slot = READ_ONCE(sqe->file_index); + if (req->close.file_slot && req->close.fd) + return -EINVAL; + + return 0; +} + +static int io_close(struct io_kiocb *req, unsigned int issue_flags) +{ + struct files_struct *files = current->files; + struct io_close *close = &req->close; + struct fdtable *fdt; + struct file *file; + int ret = -EBADF; + + if (req->close.file_slot) { + ret = io_close_fixed(req, issue_flags); + goto err; + } + + spin_lock(&files->file_lock); + fdt = files_fdtable(files); + if (close->fd >= fdt->max_fds) { + spin_unlock(&files->file_lock); + goto err; + } + file = rcu_dereference_protected(fdt->fd[close->fd], + lockdep_is_held(&files->file_lock)); + if (!file || file->f_op == &io_uring_fops) { + spin_unlock(&files->file_lock); + goto err; + } + + /* if the file has a flush method, be safe and punt to async */ + if (file->f_op->flush && (issue_flags & IO_URING_F_NONBLOCK)) { + spin_unlock(&files->file_lock); + return -EAGAIN; + } + + file = __close_fd_get_file(close->fd); + spin_unlock(&files->file_lock); + if (!file) + goto err; + + /* No ->flush() or already async, safely close from here */ + ret = filp_close(file, current->files); +err: + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_sfr_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + if (unlikely(sqe->addr || sqe->buf_index || sqe->splice_fd_in)) + return -EINVAL; + + req->sync.off = READ_ONCE(sqe->off); + req->sync.len = READ_ONCE(sqe->len); + req->sync.flags = READ_ONCE(sqe->sync_range_flags); + return 0; +} + +static int io_sync_file_range(struct io_kiocb *req, unsigned int issue_flags) +{ + int ret; + + /* sync_file_range always requires a blocking context */ + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + ret = sync_file_range(req->file, req->sync.off, req->sync.len, + req->sync.flags); + io_req_complete(req, ret); + return 0; +} + +#if defined(CONFIG_NET) +static int io_shutdown_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (unlikely(sqe->off || sqe->addr || sqe->rw_flags || + sqe->buf_index || sqe->splice_fd_in)) + return -EINVAL; + + req->shutdown.how = READ_ONCE(sqe->len); + return 0; +} + +static int io_shutdown(struct io_kiocb *req, unsigned int issue_flags) +{ + struct socket *sock; + int ret; + + if (issue_flags & IO_URING_F_NONBLOCK) + return -EAGAIN; + + sock = sock_from_file(req->file); + if (unlikely(!sock)) + return -ENOTSOCK; + + ret = __sys_shutdown_sock(sock, req->shutdown.how); + io_req_complete(req, ret); + return 0; +} + +static bool io_net_retry(struct socket *sock, int flags) +{ + if (!(flags & MSG_WAITALL)) + return false; + return sock->type == SOCK_STREAM || sock->type == SOCK_SEQPACKET; +} + +static int io_setup_async_msg(struct io_kiocb *req, + struct io_async_msghdr *kmsg) +{ + struct io_async_msghdr *async_msg = req->async_data; + + if (async_msg) + return -EAGAIN; + if (io_alloc_async_data(req)) { + kfree(kmsg->free_iov); + return -ENOMEM; + } + async_msg = req->async_data; + req->flags |= REQ_F_NEED_CLEANUP; + memcpy(async_msg, kmsg, sizeof(*kmsg)); + if (async_msg->msg.msg_name) + async_msg->msg.msg_name = &async_msg->addr; + /* if were using fast_iov, set it to the new one */ + if (!kmsg->free_iov) { + size_t fast_idx = kmsg->msg.msg_iter.iov - kmsg->fast_iov; + async_msg->msg.msg_iter.iov = &async_msg->fast_iov[fast_idx]; + } + + return -EAGAIN; +} + +static int io_sendmsg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg) +{ + iomsg->msg.msg_name = &iomsg->addr; + iomsg->free_iov = iomsg->fast_iov; + return sendmsg_copy_msghdr(&iomsg->msg, req->sr_msg.umsg, + req->sr_msg.msg_flags, &iomsg->free_iov); +} + +static int io_sendmsg_prep_async(struct io_kiocb *req) +{ + int ret; + + ret = io_sendmsg_copy_hdr(req, req->async_data); + if (!ret) + req->flags |= REQ_F_NEED_CLEANUP; + return ret; +} + +static int io_sendmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_sr_msg *sr = &req->sr_msg; + + if (unlikely(sqe->file_index || sqe->addr2)) + return -EINVAL; + + sr->umsg = u64_to_user_ptr(READ_ONCE(sqe->addr)); + sr->len = READ_ONCE(sqe->len); + sr->flags = READ_ONCE(sqe->ioprio); + if (sr->flags & ~IORING_RECVSEND_POLL_FIRST) + return -EINVAL; + sr->msg_flags = READ_ONCE(sqe->msg_flags) | MSG_NOSIGNAL; + if (sr->msg_flags & MSG_DONTWAIT) + req->flags |= REQ_F_NOWAIT; + +#ifdef CONFIG_COMPAT + if (req->ctx->compat) + sr->msg_flags |= MSG_CMSG_COMPAT; +#endif + sr->done_io = 0; + return 0; +} + +static int io_sendmsg(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_async_msghdr iomsg, *kmsg; + struct io_sr_msg *sr = &req->sr_msg; + struct socket *sock; + unsigned flags; + int min_ret = 0; + int ret; + + sock = sock_from_file(req->file); + if (unlikely(!sock)) + return -ENOTSOCK; + + if (req_has_async_data(req)) { + kmsg = req->async_data; + } else { + ret = io_sendmsg_copy_hdr(req, &iomsg); + if (ret) + return ret; + kmsg = &iomsg; + } + + if (!(req->flags & REQ_F_POLLED) && + (sr->flags & IORING_RECVSEND_POLL_FIRST)) + return io_setup_async_msg(req, kmsg); + + flags = sr->msg_flags; + if (issue_flags & IO_URING_F_NONBLOCK) + flags |= MSG_DONTWAIT; + if (flags & MSG_WAITALL) + min_ret = iov_iter_count(&kmsg->msg.msg_iter); + + ret = __sys_sendmsg_sock(sock, &kmsg->msg, flags); + + if (ret < min_ret) { + if (ret == -EAGAIN && (issue_flags & IO_URING_F_NONBLOCK)) + return io_setup_async_msg(req, kmsg); + if (ret == -ERESTARTSYS) + ret = -EINTR; + if (ret > 0 && io_net_retry(sock, flags)) { + sr->done_io += ret; + req->flags |= REQ_F_PARTIAL_IO; + return io_setup_async_msg(req, kmsg); + } + req_set_fail(req); + } + /* fast path, check for non-NULL to avoid function call */ + if (kmsg->free_iov) + kfree(kmsg->free_iov); + req->flags &= ~REQ_F_NEED_CLEANUP; + if (ret >= 0) + ret += sr->done_io; + else if (sr->done_io) + ret = sr->done_io; + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_send(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_sr_msg *sr = &req->sr_msg; + struct msghdr msg; + struct iovec iov; + struct socket *sock; + unsigned flags; + int min_ret = 0; + int ret; + + if (!(req->flags & REQ_F_POLLED) && + (sr->flags & IORING_RECVSEND_POLL_FIRST)) + return -EAGAIN; + + sock = sock_from_file(req->file); + if (unlikely(!sock)) + return -ENOTSOCK; + + ret = import_single_range(WRITE, sr->buf, sr->len, &iov, &msg.msg_iter); + if (unlikely(ret)) + return ret; + + msg.msg_name = NULL; + msg.msg_control = NULL; + msg.msg_controllen = 0; + msg.msg_namelen = 0; + + flags = sr->msg_flags; + if (issue_flags & IO_URING_F_NONBLOCK) + flags |= MSG_DONTWAIT; + if (flags & MSG_WAITALL) + min_ret = iov_iter_count(&msg.msg_iter); + + msg.msg_flags = flags; + ret = sock_sendmsg(sock, &msg); + if (ret < min_ret) { + if (ret == -EAGAIN && (issue_flags & IO_URING_F_NONBLOCK)) + return -EAGAIN; + if (ret == -ERESTARTSYS) + ret = -EINTR; + if (ret > 0 && io_net_retry(sock, flags)) { + sr->len -= ret; + sr->buf += ret; + sr->done_io += ret; + req->flags |= REQ_F_PARTIAL_IO; + return -EAGAIN; + } + req_set_fail(req); + } + if (ret >= 0) + ret += sr->done_io; + else if (sr->done_io) + ret = sr->done_io; + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int __io_recvmsg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg) +{ + struct io_sr_msg *sr = &req->sr_msg; + struct iovec __user *uiov; + size_t iov_len; + int ret; + + ret = __copy_msghdr_from_user(&iomsg->msg, sr->umsg, + &iomsg->uaddr, &uiov, &iov_len); + if (ret) + return ret; + + if (req->flags & REQ_F_BUFFER_SELECT) { + if (iov_len > 1) + return -EINVAL; + if (copy_from_user(iomsg->fast_iov, uiov, sizeof(*uiov))) + return -EFAULT; + sr->len = iomsg->fast_iov[0].iov_len; + iomsg->free_iov = NULL; + } else { + iomsg->free_iov = iomsg->fast_iov; + ret = __import_iovec(READ, uiov, iov_len, UIO_FASTIOV, + &iomsg->free_iov, &iomsg->msg.msg_iter, + false); + if (ret > 0) + ret = 0; + } + + return ret; +} + +#ifdef CONFIG_COMPAT +static int __io_compat_recvmsg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg) +{ + struct io_sr_msg *sr = &req->sr_msg; + struct compat_iovec __user *uiov; + compat_uptr_t ptr; + compat_size_t len; + int ret; + + ret = __get_compat_msghdr(&iomsg->msg, sr->umsg_compat, &iomsg->uaddr, + &ptr, &len); + if (ret) + return ret; + + uiov = compat_ptr(ptr); + if (req->flags & REQ_F_BUFFER_SELECT) { + compat_ssize_t clen; + + if (len > 1) + return -EINVAL; + if (!access_ok(uiov, sizeof(*uiov))) + return -EFAULT; + if (__get_user(clen, &uiov->iov_len)) + return -EFAULT; + if (clen < 0) + return -EINVAL; + sr->len = clen; + iomsg->free_iov = NULL; + } else { + iomsg->free_iov = iomsg->fast_iov; + ret = __import_iovec(READ, (struct iovec __user *)uiov, len, + UIO_FASTIOV, &iomsg->free_iov, + &iomsg->msg.msg_iter, true); + if (ret < 0) + return ret; + } + + return 0; +} +#endif + +static int io_recvmsg_copy_hdr(struct io_kiocb *req, + struct io_async_msghdr *iomsg) +{ + iomsg->msg.msg_name = &iomsg->addr; + +#ifdef CONFIG_COMPAT + if (req->ctx->compat) + return __io_compat_recvmsg_copy_hdr(req, iomsg); +#endif + + return __io_recvmsg_copy_hdr(req, iomsg); +} + +static int io_recvmsg_prep_async(struct io_kiocb *req) +{ + int ret; + + ret = io_recvmsg_copy_hdr(req, req->async_data); + if (!ret) + req->flags |= REQ_F_NEED_CLEANUP; + return ret; +} + +static int io_recvmsg_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_sr_msg *sr = &req->sr_msg; + + if (unlikely(sqe->file_index || sqe->addr2)) + return -EINVAL; + + sr->umsg = u64_to_user_ptr(READ_ONCE(sqe->addr)); + sr->len = READ_ONCE(sqe->len); + sr->flags = READ_ONCE(sqe->ioprio); + if (sr->flags & ~IORING_RECVSEND_POLL_FIRST) + return -EINVAL; + sr->msg_flags = READ_ONCE(sqe->msg_flags) | MSG_NOSIGNAL; + if (sr->msg_flags & MSG_DONTWAIT) + req->flags |= REQ_F_NOWAIT; + +#ifdef CONFIG_COMPAT + if (req->ctx->compat) + sr->msg_flags |= MSG_CMSG_COMPAT; +#endif + sr->done_io = 0; + return 0; +} + +static int io_recvmsg(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_async_msghdr iomsg, *kmsg; + struct io_sr_msg *sr = &req->sr_msg; + struct socket *sock; + unsigned int cflags; + unsigned flags; + int ret, min_ret = 0; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + + sock = sock_from_file(req->file); + if (unlikely(!sock)) + return -ENOTSOCK; + + if (req_has_async_data(req)) { + kmsg = req->async_data; + } else { + ret = io_recvmsg_copy_hdr(req, &iomsg); + if (ret) + return ret; + kmsg = &iomsg; + } + + if (!(req->flags & REQ_F_POLLED) && + (sr->flags & IORING_RECVSEND_POLL_FIRST)) + return io_setup_async_msg(req, kmsg); + + if (io_do_buffer_select(req)) { + void __user *buf; + + buf = io_buffer_select(req, &sr->len, issue_flags); + if (!buf) + return -ENOBUFS; + kmsg->fast_iov[0].iov_base = buf; + kmsg->fast_iov[0].iov_len = sr->len; + iov_iter_init(&kmsg->msg.msg_iter, READ, kmsg->fast_iov, 1, + sr->len); + } + + flags = sr->msg_flags; + if (force_nonblock) + flags |= MSG_DONTWAIT; + if (flags & MSG_WAITALL) + min_ret = iov_iter_count(&kmsg->msg.msg_iter); + + kmsg->msg.msg_get_inq = 1; + ret = __sys_recvmsg_sock(sock, &kmsg->msg, sr->umsg, kmsg->uaddr, flags); + if (ret < min_ret) { + if (ret == -EAGAIN && force_nonblock) + return io_setup_async_msg(req, kmsg); + if (ret == -ERESTARTSYS) + ret = -EINTR; + if (ret > 0 && io_net_retry(sock, flags)) { + sr->done_io += ret; + req->flags |= REQ_F_PARTIAL_IO; + return io_setup_async_msg(req, kmsg); + } + req_set_fail(req); + } else if ((flags & MSG_WAITALL) && (kmsg->msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) { + req_set_fail(req); + } + + /* fast path, check for non-NULL to avoid function call */ + if (kmsg->free_iov) + kfree(kmsg->free_iov); + req->flags &= ~REQ_F_NEED_CLEANUP; + if (ret >= 0) + ret += sr->done_io; + else if (sr->done_io) + ret = sr->done_io; + cflags = io_put_kbuf(req, issue_flags); + if (kmsg->msg.msg_inq) + cflags |= IORING_CQE_F_SOCK_NONEMPTY; + __io_req_complete(req, issue_flags, ret, cflags); + return 0; +} + +static int io_recv(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_sr_msg *sr = &req->sr_msg; + struct msghdr msg; + struct socket *sock; + struct iovec iov; + unsigned int cflags; + unsigned flags; + int ret, min_ret = 0; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + + if (!(req->flags & REQ_F_POLLED) && + (sr->flags & IORING_RECVSEND_POLL_FIRST)) + return -EAGAIN; + + sock = sock_from_file(req->file); + if (unlikely(!sock)) + return -ENOTSOCK; + + if (io_do_buffer_select(req)) { + void __user *buf; + + buf = io_buffer_select(req, &sr->len, issue_flags); + if (!buf) + return -ENOBUFS; + sr->buf = buf; + } + + ret = import_single_range(READ, sr->buf, sr->len, &iov, &msg.msg_iter); + if (unlikely(ret)) + goto out_free; + + msg.msg_name = NULL; + msg.msg_namelen = 0; + msg.msg_control = NULL; + msg.msg_get_inq = 1; + msg.msg_flags = 0; + msg.msg_controllen = 0; + msg.msg_iocb = NULL; + + flags = sr->msg_flags; + if (force_nonblock) + flags |= MSG_DONTWAIT; + if (flags & MSG_WAITALL) + min_ret = iov_iter_count(&msg.msg_iter); + + ret = sock_recvmsg(sock, &msg, flags); + if (ret < min_ret) { + if (ret == -EAGAIN && force_nonblock) + return -EAGAIN; + if (ret == -ERESTARTSYS) + ret = -EINTR; + if (ret > 0 && io_net_retry(sock, flags)) { + sr->len -= ret; + sr->buf += ret; + sr->done_io += ret; + req->flags |= REQ_F_PARTIAL_IO; + return -EAGAIN; + } + req_set_fail(req); + } else if ((flags & MSG_WAITALL) && (msg.msg_flags & (MSG_TRUNC | MSG_CTRUNC))) { +out_free: + req_set_fail(req); + } + + if (ret >= 0) + ret += sr->done_io; + else if (sr->done_io) + ret = sr->done_io; + cflags = io_put_kbuf(req, issue_flags); + if (msg.msg_inq) + cflags |= IORING_CQE_F_SOCK_NONEMPTY; + __io_req_complete(req, issue_flags, ret, cflags); + return 0; +} + +static int io_accept_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_accept *accept = &req->accept; + unsigned flags; + + if (sqe->len || sqe->buf_index) + return -EINVAL; + + accept->addr = u64_to_user_ptr(READ_ONCE(sqe->addr)); + accept->addr_len = u64_to_user_ptr(READ_ONCE(sqe->addr2)); + accept->flags = READ_ONCE(sqe->accept_flags); + accept->nofile = rlimit(RLIMIT_NOFILE); + flags = READ_ONCE(sqe->ioprio); + if (flags & ~IORING_ACCEPT_MULTISHOT) + return -EINVAL; + + accept->file_slot = READ_ONCE(sqe->file_index); + if (accept->file_slot) { + if (accept->flags & SOCK_CLOEXEC) + return -EINVAL; + if (flags & IORING_ACCEPT_MULTISHOT && + accept->file_slot != IORING_FILE_INDEX_ALLOC) + return -EINVAL; + } + if (accept->flags & ~(SOCK_CLOEXEC | SOCK_NONBLOCK)) + return -EINVAL; + if (SOCK_NONBLOCK != O_NONBLOCK && (accept->flags & SOCK_NONBLOCK)) + accept->flags = (accept->flags & ~SOCK_NONBLOCK) | O_NONBLOCK; + if (flags & IORING_ACCEPT_MULTISHOT) + req->flags |= REQ_F_APOLL_MULTISHOT; + return 0; +} + +static int io_accept(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_accept *accept = &req->accept; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + unsigned int file_flags = force_nonblock ? O_NONBLOCK : 0; + bool fixed = !!accept->file_slot; + struct file *file; + int ret, fd; + +retry: + if (!fixed) { + fd = __get_unused_fd_flags(accept->flags, accept->nofile); + if (unlikely(fd < 0)) + return fd; + } + file = do_accept(req->file, file_flags, accept->addr, accept->addr_len, + accept->flags); + if (IS_ERR(file)) { + if (!fixed) + put_unused_fd(fd); + ret = PTR_ERR(file); + if (ret == -EAGAIN && force_nonblock) { + /* + * if it's multishot and polled, we don't need to + * return EAGAIN to arm the poll infra since it + * has already been done + */ + if ((req->flags & IO_APOLL_MULTI_POLLED) == + IO_APOLL_MULTI_POLLED) + ret = 0; + return ret; + } + if (ret == -ERESTARTSYS) + ret = -EINTR; + req_set_fail(req); + } else if (!fixed) { + fd_install(fd, file); + ret = fd; + } else { + ret = io_fixed_fd_install(req, issue_flags, file, + accept->file_slot); + } + + if (!(req->flags & REQ_F_APOLL_MULTISHOT)) { + __io_req_complete(req, issue_flags, ret, 0); + return 0; + } + if (ret >= 0) { + bool filled; + + spin_lock(&ctx->completion_lock); + filled = io_fill_cqe_aux(ctx, req->cqe.user_data, ret, + IORING_CQE_F_MORE); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + if (filled) { + io_cqring_ev_posted(ctx); + goto retry; + } + ret = -ECANCELED; + } + + return ret; +} + +static int io_socket_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_socket *sock = &req->sock; + + if (sqe->addr || sqe->rw_flags || sqe->buf_index) + return -EINVAL; + + sock->domain = READ_ONCE(sqe->fd); + sock->type = READ_ONCE(sqe->off); + sock->protocol = READ_ONCE(sqe->len); + sock->file_slot = READ_ONCE(sqe->file_index); + sock->nofile = rlimit(RLIMIT_NOFILE); + + sock->flags = sock->type & ~SOCK_TYPE_MASK; + if (sock->file_slot && (sock->flags & SOCK_CLOEXEC)) + return -EINVAL; + if (sock->flags & ~(SOCK_CLOEXEC | SOCK_NONBLOCK)) + return -EINVAL; + return 0; +} + +static int io_socket(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_socket *sock = &req->sock; + bool fixed = !!sock->file_slot; + struct file *file; + int ret, fd; + + if (!fixed) { + fd = __get_unused_fd_flags(sock->flags, sock->nofile); + if (unlikely(fd < 0)) + return fd; + } + file = __sys_socket_file(sock->domain, sock->type, sock->protocol); + if (IS_ERR(file)) { + if (!fixed) + put_unused_fd(fd); + ret = PTR_ERR(file); + if (ret == -EAGAIN && (issue_flags & IO_URING_F_NONBLOCK)) + return -EAGAIN; + if (ret == -ERESTARTSYS) + ret = -EINTR; + req_set_fail(req); + } else if (!fixed) { + fd_install(fd, file); + ret = fd; + } else { + ret = io_fixed_fd_install(req, issue_flags, file, + sock->file_slot); + } + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_connect_prep_async(struct io_kiocb *req) +{ + struct io_async_connect *io = req->async_data; + struct io_connect *conn = &req->connect; + + return move_addr_to_kernel(conn->addr, conn->addr_len, &io->address); +} + +static int io_connect_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_connect *conn = &req->connect; + + if (sqe->len || sqe->buf_index || sqe->rw_flags || sqe->splice_fd_in) + return -EINVAL; + + conn->addr = u64_to_user_ptr(READ_ONCE(sqe->addr)); + conn->addr_len = READ_ONCE(sqe->addr2); + return 0; +} + +static int io_connect(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_async_connect __io, *io; + unsigned file_flags; + int ret; + bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK; + + if (req_has_async_data(req)) { + io = req->async_data; + } else { + ret = move_addr_to_kernel(req->connect.addr, + req->connect.addr_len, + &__io.address); + if (ret) + goto out; + io = &__io; + } + + file_flags = force_nonblock ? O_NONBLOCK : 0; + + ret = __sys_connect_file(req->file, &io->address, + req->connect.addr_len, file_flags); + if ((ret == -EAGAIN || ret == -EINPROGRESS) && force_nonblock) { + if (req_has_async_data(req)) + return -EAGAIN; + if (io_alloc_async_data(req)) { + ret = -ENOMEM; + goto out; + } + memcpy(req->async_data, &__io, sizeof(__io)); + return -EAGAIN; + } + if (ret == -ERESTARTSYS) + ret = -EINTR; +out: + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} +#else /* !CONFIG_NET */ +#define IO_NETOP_FN(op) \ +static int io_##op(struct io_kiocb *req, unsigned int issue_flags) \ +{ \ + return -EOPNOTSUPP; \ +} + +#define IO_NETOP_PREP(op) \ +IO_NETOP_FN(op) \ +static int io_##op##_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) \ +{ \ + return -EOPNOTSUPP; \ +} \ + +#define IO_NETOP_PREP_ASYNC(op) \ +IO_NETOP_PREP(op) \ +static int io_##op##_prep_async(struct io_kiocb *req) \ +{ \ + return -EOPNOTSUPP; \ +} + +IO_NETOP_PREP_ASYNC(sendmsg); +IO_NETOP_PREP_ASYNC(recvmsg); +IO_NETOP_PREP_ASYNC(connect); +IO_NETOP_PREP(accept); +IO_NETOP_PREP(socket); +IO_NETOP_PREP(shutdown); +IO_NETOP_FN(send); +IO_NETOP_FN(recv); +#endif /* CONFIG_NET */ + +struct io_poll_table { + struct poll_table_struct pt; + struct io_kiocb *req; + int nr_entries; + int error; +}; + +#define IO_POLL_CANCEL_FLAG BIT(31) +#define IO_POLL_RETRY_FLAG BIT(30) +#define IO_POLL_REF_MASK GENMASK(29, 0) + +/* + * We usually have 1-2 refs taken, 128 is more than enough and we want to + * maximise the margin between this amount and the moment when it overflows. + */ +#define IO_POLL_REF_BIAS 128 + +static bool io_poll_get_ownership_slowpath(struct io_kiocb *req) +{ + int v; + + /* + * poll_refs are already elevated and we don't have much hope for + * grabbing the ownership. Instead of incrementing set a retry flag + * to notify the loop that there might have been some change. + */ + v = atomic_fetch_or(IO_POLL_RETRY_FLAG, &req->poll_refs); + if (v & IO_POLL_REF_MASK) + return false; + return !(atomic_fetch_inc(&req->poll_refs) & IO_POLL_REF_MASK); +} + +/* + * If refs part of ->poll_refs (see IO_POLL_REF_MASK) is 0, it's free. We can + * bump it and acquire ownership. It's disallowed to modify requests while not + * owning it, that prevents from races for enqueueing task_work's and b/w + * arming poll and wakeups. + */ +static inline bool io_poll_get_ownership(struct io_kiocb *req) +{ + if (unlikely(atomic_read(&req->poll_refs) >= IO_POLL_REF_BIAS)) + return io_poll_get_ownership_slowpath(req); + return !(atomic_fetch_inc(&req->poll_refs) & IO_POLL_REF_MASK); +} + +static void io_poll_mark_cancelled(struct io_kiocb *req) +{ + atomic_or(IO_POLL_CANCEL_FLAG, &req->poll_refs); +} + +static struct io_poll_iocb *io_poll_get_double(struct io_kiocb *req) +{ + /* pure poll stashes this in ->async_data, poll driven retry elsewhere */ + if (req->opcode == IORING_OP_POLL_ADD) + return req->async_data; + return req->apoll->double_poll; +} + +static struct io_poll_iocb *io_poll_get_single(struct io_kiocb *req) +{ + if (req->opcode == IORING_OP_POLL_ADD) + return &req->poll; + return &req->apoll->poll; +} + +static void io_poll_req_insert(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + struct hlist_head *list; + + list = &ctx->cancel_hash[hash_long(req->cqe.user_data, ctx->cancel_hash_bits)]; + hlist_add_head(&req->hash_node, list); +} + +static void io_init_poll_iocb(struct io_poll_iocb *poll, __poll_t events, + wait_queue_func_t wake_func) +{ + poll->head = NULL; +#define IO_POLL_UNMASK (EPOLLERR|EPOLLHUP|EPOLLNVAL|EPOLLRDHUP) + /* mask in events that we always want/need */ + poll->events = events | IO_POLL_UNMASK; + INIT_LIST_HEAD(&poll->wait.entry); + init_waitqueue_func_entry(&poll->wait, wake_func); +} + +static inline void io_poll_remove_entry(struct io_poll_iocb *poll) +{ + struct wait_queue_head *head = smp_load_acquire(&poll->head); + + if (head) { + spin_lock_irq(&head->lock); + list_del_init(&poll->wait.entry); + poll->head = NULL; + spin_unlock_irq(&head->lock); + } +} + +static void io_poll_remove_entries(struct io_kiocb *req) +{ + /* + * Nothing to do if neither of those flags are set. Avoid dipping + * into the poll/apoll/double cachelines if we can. + */ + if (!(req->flags & (REQ_F_SINGLE_POLL | REQ_F_DOUBLE_POLL))) + return; + + /* + * While we hold the waitqueue lock and the waitqueue is nonempty, + * wake_up_pollfree() will wait for us. However, taking the waitqueue + * lock in the first place can race with the waitqueue being freed. + * + * We solve this as eventpoll does: by taking advantage of the fact that + * all users of wake_up_pollfree() will RCU-delay the actual free. If + * we enter rcu_read_lock() and see that the pointer to the queue is + * non-NULL, we can then lock it without the memory being freed out from + * under us. + * + * Keep holding rcu_read_lock() as long as we hold the queue lock, in + * case the caller deletes the entry from the queue, leaving it empty. + * In that case, only RCU prevents the queue memory from being freed. + */ + rcu_read_lock(); + if (req->flags & REQ_F_SINGLE_POLL) + io_poll_remove_entry(io_poll_get_single(req)); + if (req->flags & REQ_F_DOUBLE_POLL) + io_poll_remove_entry(io_poll_get_double(req)); + rcu_read_unlock(); +} + +static int io_issue_sqe(struct io_kiocb *req, unsigned int issue_flags); +/* + * All poll tw should go through this. Checks for poll events, manages + * references, does rewait, etc. + * + * Returns a negative error on failure. >0 when no action require, which is + * either spurious wakeup or multishot CQE is served. 0 when it's done with + * the request, then the mask is stored in req->cqe.res. + */ +static int io_poll_check_events(struct io_kiocb *req, bool *locked) +{ + struct io_ring_ctx *ctx = req->ctx; + int v, ret; + + /* req->task == current here, checking PF_EXITING is safe */ + if (unlikely(req->task->flags & PF_EXITING)) + return -ECANCELED; + + do { + v = atomic_read(&req->poll_refs); + + /* tw handler should be the owner, and so have some references */ + if (WARN_ON_ONCE(!(v & IO_POLL_REF_MASK))) + return 0; + if (v & IO_POLL_CANCEL_FLAG) + return -ECANCELED; + + /* + * cqe.res contains only events of the first wake up + * and all others are be lost. Redo vfs_poll() to get + * up to date state. + */ + if ((v & IO_POLL_REF_MASK) != 1) + req->cqe.res = 0; + if (v & IO_POLL_RETRY_FLAG) { + req->cqe.res = 0; + /* + * We won't find new events that came in between + * vfs_poll and the ref put unless we clear the flag + * in advance. + */ + atomic_andnot(IO_POLL_RETRY_FLAG, &req->poll_refs); + v &= ~IO_POLL_RETRY_FLAG; + } + + if (!req->cqe.res) { + struct poll_table_struct pt = { ._key = req->apoll_events }; + req->cqe.res = vfs_poll(req->file, &pt) & req->apoll_events; + } + + if ((unlikely(!req->cqe.res))) + continue; + if (req->apoll_events & EPOLLONESHOT) + return 0; + + /* multishot, just fill a CQE and proceed */ + if (!(req->flags & REQ_F_APOLL_MULTISHOT)) { + __poll_t mask = mangle_poll(req->cqe.res & + req->apoll_events); + bool filled; + + spin_lock(&ctx->completion_lock); + filled = io_fill_cqe_aux(ctx, req->cqe.user_data, + mask, IORING_CQE_F_MORE); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + if (filled) { + io_cqring_ev_posted(ctx); + continue; + } + return -ECANCELED; + } + + io_tw_lock(req->ctx, locked); + if (unlikely(req->task->flags & PF_EXITING)) + return -EFAULT; + ret = io_issue_sqe(req, + IO_URING_F_NONBLOCK|IO_URING_F_COMPLETE_DEFER); + if (ret) + return ret; + + /* + * Release all references, retry if someone tried to restart + * task_work while we were executing it. + */ + } while (atomic_sub_return(v & IO_POLL_REF_MASK, &req->poll_refs) & + IO_POLL_REF_MASK); + + return 1; +} + +static void io_poll_task_func(struct io_kiocb *req, bool *locked) +{ + struct io_ring_ctx *ctx = req->ctx; + int ret; + + ret = io_poll_check_events(req, locked); + if (ret > 0) + return; + + if (!ret) { + req->cqe.res = mangle_poll(req->cqe.res & req->poll.events); + } else { + req->cqe.res = ret; + req_set_fail(req); + } + + io_poll_remove_entries(req); + spin_lock(&ctx->completion_lock); + hash_del(&req->hash_node); + __io_req_complete_post(req, req->cqe.res, 0); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_cqring_ev_posted(ctx); +} + +static void io_apoll_task_func(struct io_kiocb *req, bool *locked) +{ + struct io_ring_ctx *ctx = req->ctx; + int ret; + + ret = io_poll_check_events(req, locked); + if (ret > 0) + return; + + io_poll_remove_entries(req); + spin_lock(&ctx->completion_lock); + hash_del(&req->hash_node); + spin_unlock(&ctx->completion_lock); + + if (!ret) + io_req_task_submit(req, locked); + else + io_req_complete_failed(req, ret); +} + +static void __io_poll_execute(struct io_kiocb *req, int mask, + __poll_t __maybe_unused events) +{ + req->cqe.res = mask; + /* + * This is useful for poll that is armed on behalf of another + * request, and where the wakeup path could be on a different + * CPU. We want to avoid pulling in req->apoll->events for that + * case. + */ + if (req->opcode == IORING_OP_POLL_ADD) + req->io_task_work.func = io_poll_task_func; + else + req->io_task_work.func = io_apoll_task_func; + + trace_io_uring_task_add(req->ctx, req, req->cqe.user_data, req->opcode, mask); + io_req_task_work_add(req); +} + +static inline void io_poll_execute(struct io_kiocb *req, int res, + __poll_t events) +{ + if (io_poll_get_ownership(req)) + __io_poll_execute(req, res, events); +} + +static void io_poll_cancel_req(struct io_kiocb *req) +{ + io_poll_mark_cancelled(req); + /* kick tw, which should complete the request */ + io_poll_execute(req, 0, 0); +} + +#define wqe_to_req(wait) ((void *)((unsigned long) (wait)->private & ~1)) +#define wqe_is_double(wait) ((unsigned long) (wait)->private & 1) +#define IO_ASYNC_POLL_COMMON (EPOLLONESHOT | EPOLLPRI) + +static int io_poll_wake(struct wait_queue_entry *wait, unsigned mode, int sync, + void *key) +{ + struct io_kiocb *req = wqe_to_req(wait); + struct io_poll_iocb *poll = container_of(wait, struct io_poll_iocb, + wait); + __poll_t mask = key_to_poll(key); + + if (unlikely(mask & POLLFREE)) { + io_poll_mark_cancelled(req); + /* we have to kick tw in case it's not already */ + io_poll_execute(req, 0, poll->events); + + /* + * If the waitqueue is being freed early but someone is already + * holds ownership over it, we have to tear down the request as + * best we can. That means immediately removing the request from + * its waitqueue and preventing all further accesses to the + * waitqueue via the request. + */ + list_del_init(&poll->wait.entry); + + /* + * Careful: this *must* be the last step, since as soon + * as req->head is NULL'ed out, the request can be + * completed and freed, since aio_poll_complete_work() + * will no longer need to take the waitqueue lock. + */ + smp_store_release(&poll->head, NULL); + return 1; + } + + /* for instances that support it check for an event match first */ + if (mask && !(mask & (poll->events & ~IO_ASYNC_POLL_COMMON))) + return 0; + + if (io_poll_get_ownership(req)) { + /* optional, saves extra locking for removal in tw handler */ + if (mask && poll->events & EPOLLONESHOT) { + list_del_init(&poll->wait.entry); + poll->head = NULL; + if (wqe_is_double(wait)) + req->flags &= ~REQ_F_DOUBLE_POLL; + else + req->flags &= ~REQ_F_SINGLE_POLL; + } + __io_poll_execute(req, mask, poll->events); + } + return 1; +} + +static void __io_queue_proc(struct io_poll_iocb *poll, struct io_poll_table *pt, + struct wait_queue_head *head, + struct io_poll_iocb **poll_ptr) +{ + struct io_kiocb *req = pt->req; + unsigned long wqe_private = (unsigned long) req; + + /* + * The file being polled uses multiple waitqueues for poll handling + * (e.g. one for read, one for write). Setup a separate io_poll_iocb + * if this happens. + */ + if (unlikely(pt->nr_entries)) { + struct io_poll_iocb *first = poll; + + /* double add on the same waitqueue head, ignore */ + if (first->head == head) + return; + /* already have a 2nd entry, fail a third attempt */ + if (*poll_ptr) { + if ((*poll_ptr)->head == head) + return; + pt->error = -EINVAL; + return; + } + + poll = kmalloc(sizeof(*poll), GFP_ATOMIC); + if (!poll) { + pt->error = -ENOMEM; + return; + } + /* mark as double wq entry */ + wqe_private |= 1; + req->flags |= REQ_F_DOUBLE_POLL; + io_init_poll_iocb(poll, first->events, first->wait.func); + *poll_ptr = poll; + if (req->opcode == IORING_OP_POLL_ADD) + req->flags |= REQ_F_ASYNC_DATA; + } + + req->flags |= REQ_F_SINGLE_POLL; + pt->nr_entries++; + poll->head = head; + poll->wait.private = (void *) wqe_private; + + if (poll->events & EPOLLEXCLUSIVE) + add_wait_queue_exclusive(head, &poll->wait); + else + add_wait_queue(head, &poll->wait); +} + +static void io_poll_queue_proc(struct file *file, struct wait_queue_head *head, + struct poll_table_struct *p) +{ + struct io_poll_table *pt = container_of(p, struct io_poll_table, pt); + + __io_queue_proc(&pt->req->poll, pt, head, + (struct io_poll_iocb **) &pt->req->async_data); +} + +static int __io_arm_poll_handler(struct io_kiocb *req, + struct io_poll_iocb *poll, + struct io_poll_table *ipt, __poll_t mask) +{ + struct io_ring_ctx *ctx = req->ctx; + + INIT_HLIST_NODE(&req->hash_node); + req->work.cancel_seq = atomic_read(&ctx->cancel_seq); + io_init_poll_iocb(poll, mask, io_poll_wake); + poll->file = req->file; + + req->apoll_events = poll->events; + + ipt->pt._key = mask; + ipt->req = req; + ipt->error = 0; + ipt->nr_entries = 0; + + /* + * Take the ownership to delay any tw execution up until we're done + * with poll arming. see io_poll_get_ownership(). + */ + atomic_set(&req->poll_refs, 1); + mask = vfs_poll(req->file, &ipt->pt) & poll->events; + + if (mask && (poll->events & EPOLLONESHOT)) { + io_poll_remove_entries(req); + /* no one else has access to the req, forget about the ref */ + return mask; + } + if (!mask && unlikely(ipt->error || !ipt->nr_entries)) { + io_poll_remove_entries(req); + if (!ipt->error) + ipt->error = -EINVAL; + return 0; + } + + spin_lock(&ctx->completion_lock); + io_poll_req_insert(req); + spin_unlock(&ctx->completion_lock); + + if (mask) { + /* can't multishot if failed, just queue the event we've got */ + if (unlikely(ipt->error || !ipt->nr_entries)) { + poll->events |= EPOLLONESHOT; + req->apoll_events |= EPOLLONESHOT; + ipt->error = 0; + } + __io_poll_execute(req, mask, poll->events); + return 0; + } + + /* + * Try to release ownership. If we see a change of state, e.g. + * poll was waken up, queue up a tw, it'll deal with it. + */ + if (atomic_cmpxchg(&req->poll_refs, 1, 0) != 1) + __io_poll_execute(req, 0, poll->events); + return 0; +} + +static void io_async_queue_proc(struct file *file, struct wait_queue_head *head, + struct poll_table_struct *p) +{ + struct io_poll_table *pt = container_of(p, struct io_poll_table, pt); + struct async_poll *apoll = pt->req->apoll; + + __io_queue_proc(&apoll->poll, pt, head, &apoll->double_poll); +} + +enum { + IO_APOLL_OK, + IO_APOLL_ABORTED, + IO_APOLL_READY +}; + +static int io_arm_poll_handler(struct io_kiocb *req, unsigned issue_flags) +{ + const struct io_op_def *def = &io_op_defs[req->opcode]; + struct io_ring_ctx *ctx = req->ctx; + struct async_poll *apoll; + struct io_poll_table ipt; + __poll_t mask = POLLPRI | POLLERR; + int ret; + + if (!def->pollin && !def->pollout) + return IO_APOLL_ABORTED; + if (!file_can_poll(req->file)) + return IO_APOLL_ABORTED; + if ((req->flags & (REQ_F_POLLED|REQ_F_PARTIAL_IO)) == REQ_F_POLLED) + return IO_APOLL_ABORTED; + if (!(req->flags & REQ_F_APOLL_MULTISHOT)) + mask |= EPOLLONESHOT; + + if (def->pollin) { + mask |= EPOLLIN | EPOLLRDNORM; + + /* If reading from MSG_ERRQUEUE using recvmsg, ignore POLLIN */ + if ((req->opcode == IORING_OP_RECVMSG) && + (req->sr_msg.msg_flags & MSG_ERRQUEUE)) + mask &= ~EPOLLIN; + } else { + mask |= EPOLLOUT | EPOLLWRNORM; + } + if (def->poll_exclusive) + mask |= EPOLLEXCLUSIVE; + if (req->flags & REQ_F_POLLED) { + apoll = req->apoll; + kfree(apoll->double_poll); + } else if (!(issue_flags & IO_URING_F_UNLOCKED) && + !list_empty(&ctx->apoll_cache)) { + apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, + poll.wait.entry); + list_del_init(&apoll->poll.wait.entry); + } else { + apoll = kmalloc(sizeof(*apoll), GFP_ATOMIC); + if (unlikely(!apoll)) + return IO_APOLL_ABORTED; + } + apoll->double_poll = NULL; + req->apoll = apoll; + req->flags |= REQ_F_POLLED; + ipt.pt._qproc = io_async_queue_proc; + + io_kbuf_recycle(req, issue_flags); + + ret = __io_arm_poll_handler(req, &apoll->poll, &ipt, mask); + if (ret || ipt.error) + return ret ? IO_APOLL_READY : IO_APOLL_ABORTED; + + trace_io_uring_poll_arm(ctx, req, req->cqe.user_data, req->opcode, + mask, apoll->poll.events); + return IO_APOLL_OK; +} + +/* + * Returns true if we found and killed one or more poll requests + */ +static __cold bool io_poll_remove_all(struct io_ring_ctx *ctx, + struct task_struct *tsk, bool cancel_all) +{ + struct hlist_node *tmp; + struct io_kiocb *req; + bool found = false; + int i; + + spin_lock(&ctx->completion_lock); + for (i = 0; i < (1U << ctx->cancel_hash_bits); i++) { + struct hlist_head *list; + + list = &ctx->cancel_hash[i]; + hlist_for_each_entry_safe(req, tmp, list, hash_node) { + if (io_match_task_safe(req, tsk, cancel_all)) { + hlist_del_init(&req->hash_node); + io_poll_cancel_req(req); + found = true; + } + } + } + spin_unlock(&ctx->completion_lock); + return found; +} + +static struct io_kiocb *io_poll_find(struct io_ring_ctx *ctx, bool poll_only, + struct io_cancel_data *cd) + __must_hold(&ctx->completion_lock) +{ + struct hlist_head *list; + struct io_kiocb *req; + + list = &ctx->cancel_hash[hash_long(cd->data, ctx->cancel_hash_bits)]; + hlist_for_each_entry(req, list, hash_node) { + if (cd->data != req->cqe.user_data) + continue; + if (poll_only && req->opcode != IORING_OP_POLL_ADD) + continue; + if (cd->flags & IORING_ASYNC_CANCEL_ALL) { + if (cd->seq == req->work.cancel_seq) + continue; + req->work.cancel_seq = cd->seq; + } + return req; + } + return NULL; +} + +static struct io_kiocb *io_poll_file_find(struct io_ring_ctx *ctx, + struct io_cancel_data *cd) + __must_hold(&ctx->completion_lock) +{ + struct io_kiocb *req; + int i; + + for (i = 0; i < (1U << ctx->cancel_hash_bits); i++) { + struct hlist_head *list; + + list = &ctx->cancel_hash[i]; + hlist_for_each_entry(req, list, hash_node) { + if (!(cd->flags & IORING_ASYNC_CANCEL_ANY) && + req->file != cd->file) + continue; + if (cd->seq == req->work.cancel_seq) + continue; + req->work.cancel_seq = cd->seq; + return req; + } + } + return NULL; +} + +static bool io_poll_disarm(struct io_kiocb *req) + __must_hold(&ctx->completion_lock) +{ + if (!io_poll_get_ownership(req)) + return false; + io_poll_remove_entries(req); + hash_del(&req->hash_node); + return true; +} + +static int io_poll_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd) + __must_hold(&ctx->completion_lock) +{ + struct io_kiocb *req; + + if (cd->flags & (IORING_ASYNC_CANCEL_FD|IORING_ASYNC_CANCEL_ANY)) + req = io_poll_file_find(ctx, cd); + else + req = io_poll_find(ctx, false, cd); + if (!req) + return -ENOENT; + io_poll_cancel_req(req); + return 0; +} + +static __poll_t io_poll_parse_events(const struct io_uring_sqe *sqe, + unsigned int flags) +{ + u32 events; + + events = READ_ONCE(sqe->poll32_events); +#ifdef __BIG_ENDIAN + events = swahw32(events); +#endif + if (!(flags & IORING_POLL_ADD_MULTI)) + events |= EPOLLONESHOT; + return demangle_poll(events) | (events & (EPOLLEXCLUSIVE|EPOLLONESHOT)); +} + +static int io_poll_remove_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_poll_update *upd = &req->poll_update; + u32 flags; + + if (sqe->buf_index || sqe->splice_fd_in) + return -EINVAL; + flags = READ_ONCE(sqe->len); + if (flags & ~(IORING_POLL_UPDATE_EVENTS | IORING_POLL_UPDATE_USER_DATA | + IORING_POLL_ADD_MULTI)) + return -EINVAL; + /* meaningless without update */ + if (flags == IORING_POLL_ADD_MULTI) + return -EINVAL; + + upd->old_user_data = READ_ONCE(sqe->addr); + upd->update_events = flags & IORING_POLL_UPDATE_EVENTS; + upd->update_user_data = flags & IORING_POLL_UPDATE_USER_DATA; + + upd->new_user_data = READ_ONCE(sqe->off); + if (!upd->update_user_data && upd->new_user_data) + return -EINVAL; + if (upd->update_events) + upd->events = io_poll_parse_events(sqe, flags); + else if (sqe->poll32_events) + return -EINVAL; + + return 0; +} + +static int io_poll_add_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe) +{ + struct io_poll_iocb *poll = &req->poll; + u32 flags; + + if (sqe->buf_index || sqe->off || sqe->addr) + return -EINVAL; + flags = READ_ONCE(sqe->len); + if (flags & ~IORING_POLL_ADD_MULTI) + return -EINVAL; + if ((flags & IORING_POLL_ADD_MULTI) && (req->flags & REQ_F_CQE_SKIP)) + return -EINVAL; + + io_req_set_refcount(req); + poll->events = io_poll_parse_events(sqe, flags); + return 0; +} + +static int io_poll_add(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_poll_iocb *poll = &req->poll; + struct io_poll_table ipt; + int ret; + + ipt.pt._qproc = io_poll_queue_proc; + + ret = __io_arm_poll_handler(req, &req->poll, &ipt, poll->events); + if (!ret && ipt.error) + req_set_fail(req); + ret = ret ?: ipt.error; + if (ret) + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_poll_remove(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_cancel_data cd = { .data = req->poll_update.old_user_data, }; + struct io_ring_ctx *ctx = req->ctx; + struct io_kiocb *preq; + int ret2, ret = 0; + bool locked; + + spin_lock(&ctx->completion_lock); + preq = io_poll_find(ctx, true, &cd); + if (!preq || !io_poll_disarm(preq)) { + spin_unlock(&ctx->completion_lock); + ret = preq ? -EALREADY : -ENOENT; + goto out; + } + spin_unlock(&ctx->completion_lock); + + if (req->poll_update.update_events || req->poll_update.update_user_data) { + /* only mask one event flags, keep behavior flags */ + if (req->poll_update.update_events) { + preq->poll.events &= ~0xffff; + preq->poll.events |= req->poll_update.events & 0xffff; + preq->poll.events |= IO_POLL_UNMASK; + } + if (req->poll_update.update_user_data) + preq->cqe.user_data = req->poll_update.new_user_data; + + ret2 = io_poll_add(preq, issue_flags); + /* successfully updated, don't complete poll request */ + if (!ret2) + goto out; + } + + req_set_fail(preq); + preq->cqe.res = -ECANCELED; + locked = !(issue_flags & IO_URING_F_UNLOCKED); + io_req_task_complete(preq, &locked); +out: + if (ret < 0) + req_set_fail(req); + /* complete update request, we're done with it */ + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static enum hrtimer_restart io_timeout_fn(struct hrtimer *timer) +{ + struct io_timeout_data *data = container_of(timer, + struct io_timeout_data, timer); + struct io_kiocb *req = data->req; + struct io_ring_ctx *ctx = req->ctx; + unsigned long flags; + + spin_lock_irqsave(&ctx->timeout_lock, flags); + list_del_init(&req->timeout.list); + atomic_set(&req->ctx->cq_timeouts, + atomic_read(&req->ctx->cq_timeouts) + 1); + spin_unlock_irqrestore(&ctx->timeout_lock, flags); + + if (!(data->flags & IORING_TIMEOUT_ETIME_SUCCESS)) + req_set_fail(req); + + req->cqe.res = -ETIME; + req->io_task_work.func = io_req_task_complete; + io_req_task_work_add(req); + return HRTIMER_NORESTART; +} + +static struct io_kiocb *io_timeout_extract(struct io_ring_ctx *ctx, + struct io_cancel_data *cd) + __must_hold(&ctx->timeout_lock) +{ + struct io_timeout_data *io; + struct io_kiocb *req; + bool found = false; + + list_for_each_entry(req, &ctx->timeout_list, timeout.list) { + if (!(cd->flags & IORING_ASYNC_CANCEL_ANY) && + cd->data != req->cqe.user_data) + continue; + if (cd->flags & (IORING_ASYNC_CANCEL_ALL|IORING_ASYNC_CANCEL_ANY)) { + if (cd->seq == req->work.cancel_seq) + continue; + req->work.cancel_seq = cd->seq; + } + found = true; + break; + } + if (!found) + return ERR_PTR(-ENOENT); + + io = req->async_data; + if (hrtimer_try_to_cancel(&io->timer) == -1) + return ERR_PTR(-EALREADY); + list_del_init(&req->timeout.list); + return req; +} + +static int io_timeout_cancel(struct io_ring_ctx *ctx, struct io_cancel_data *cd) + __must_hold(&ctx->completion_lock) +{ + struct io_kiocb *req; + + spin_lock_irq(&ctx->timeout_lock); + req = io_timeout_extract(ctx, cd); + spin_unlock_irq(&ctx->timeout_lock); + + if (IS_ERR(req)) + return PTR_ERR(req); + io_req_task_queue_fail(req, -ECANCELED); + return 0; +} + +static clockid_t io_timeout_get_clock(struct io_timeout_data *data) +{ + switch (data->flags & IORING_TIMEOUT_CLOCK_MASK) { + case IORING_TIMEOUT_BOOTTIME: + return CLOCK_BOOTTIME; + case IORING_TIMEOUT_REALTIME: + return CLOCK_REALTIME; + default: + /* can't happen, vetted at prep time */ + WARN_ON_ONCE(1); + fallthrough; + case 0: + return CLOCK_MONOTONIC; + } +} + +static int io_linked_timeout_update(struct io_ring_ctx *ctx, __u64 user_data, + struct timespec64 *ts, enum hrtimer_mode mode) + __must_hold(&ctx->timeout_lock) +{ + struct io_timeout_data *io; + struct io_kiocb *req; + bool found = false; + + list_for_each_entry(req, &ctx->ltimeout_list, timeout.list) { + found = user_data == req->cqe.user_data; + if (found) + break; + } + if (!found) + return -ENOENT; + + io = req->async_data; + if (hrtimer_try_to_cancel(&io->timer) == -1) + return -EALREADY; + hrtimer_init(&io->timer, io_timeout_get_clock(io), mode); + io->timer.function = io_link_timeout_fn; + hrtimer_start(&io->timer, timespec64_to_ktime(*ts), mode); + return 0; +} + +static int io_timeout_update(struct io_ring_ctx *ctx, __u64 user_data, + struct timespec64 *ts, enum hrtimer_mode mode) + __must_hold(&ctx->timeout_lock) +{ + struct io_cancel_data cd = { .data = user_data, }; + struct io_kiocb *req = io_timeout_extract(ctx, &cd); + struct io_timeout_data *data; + + if (IS_ERR(req)) + return PTR_ERR(req); + + req->timeout.off = 0; /* noseq */ + data = req->async_data; + list_add_tail(&req->timeout.list, &ctx->timeout_list); + hrtimer_init(&data->timer, io_timeout_get_clock(data), mode); + data->timer.function = io_timeout_fn; + hrtimer_start(&data->timer, timespec64_to_ktime(*ts), mode); + return 0; +} + +static int io_timeout_remove_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + struct io_timeout_rem *tr = &req->timeout_rem; + + if (unlikely(req->flags & (REQ_F_FIXED_FILE | REQ_F_BUFFER_SELECT))) + return -EINVAL; + if (sqe->buf_index || sqe->len || sqe->splice_fd_in) + return -EINVAL; + + tr->ltimeout = false; + tr->addr = READ_ONCE(sqe->addr); + tr->flags = READ_ONCE(sqe->timeout_flags); + if (tr->flags & IORING_TIMEOUT_UPDATE_MASK) { + if (hweight32(tr->flags & IORING_TIMEOUT_CLOCK_MASK) > 1) + return -EINVAL; + if (tr->flags & IORING_LINK_TIMEOUT_UPDATE) + tr->ltimeout = true; + if (tr->flags & ~(IORING_TIMEOUT_UPDATE_MASK|IORING_TIMEOUT_ABS)) + return -EINVAL; + if (get_timespec64(&tr->ts, u64_to_user_ptr(sqe->addr2))) + return -EFAULT; + if (tr->ts.tv_sec < 0 || tr->ts.tv_nsec < 0) + return -EINVAL; + } else if (tr->flags) { + /* timeout removal doesn't support flags */ + return -EINVAL; + } + + return 0; +} + +static inline enum hrtimer_mode io_translate_timeout_mode(unsigned int flags) +{ + return (flags & IORING_TIMEOUT_ABS) ? HRTIMER_MODE_ABS + : HRTIMER_MODE_REL; +} + +/* + * Remove or update an existing timeout command + */ +static int io_timeout_remove(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_timeout_rem *tr = &req->timeout_rem; + struct io_ring_ctx *ctx = req->ctx; + int ret; + + if (!(req->timeout_rem.flags & IORING_TIMEOUT_UPDATE)) { + struct io_cancel_data cd = { .data = tr->addr, }; + + spin_lock(&ctx->completion_lock); + ret = io_timeout_cancel(ctx, &cd); + spin_unlock(&ctx->completion_lock); + } else { + enum hrtimer_mode mode = io_translate_timeout_mode(tr->flags); + + spin_lock_irq(&ctx->timeout_lock); + if (tr->ltimeout) + ret = io_linked_timeout_update(ctx, tr->addr, &tr->ts, mode); + else + ret = io_timeout_update(ctx, tr->addr, &tr->ts, mode); + spin_unlock_irq(&ctx->timeout_lock); + } + + if (ret < 0) + req_set_fail(req); + io_req_complete_post(req, ret, 0); + return 0; +} + +static int __io_timeout_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe, + bool is_timeout_link) +{ + struct io_timeout_data *data; + unsigned flags; + u32 off = READ_ONCE(sqe->off); + + if (sqe->buf_index || sqe->len != 1 || sqe->splice_fd_in) + return -EINVAL; + if (off && is_timeout_link) + return -EINVAL; + flags = READ_ONCE(sqe->timeout_flags); + if (flags & ~(IORING_TIMEOUT_ABS | IORING_TIMEOUT_CLOCK_MASK | + IORING_TIMEOUT_ETIME_SUCCESS)) + return -EINVAL; + /* more than one clock specified is invalid, obviously */ + if (hweight32(flags & IORING_TIMEOUT_CLOCK_MASK) > 1) + return -EINVAL; + + INIT_LIST_HEAD(&req->timeout.list); + req->timeout.off = off; + if (unlikely(off && !req->ctx->off_timeout_used)) + req->ctx->off_timeout_used = true; + + if (WARN_ON_ONCE(req_has_async_data(req))) + return -EFAULT; + if (io_alloc_async_data(req)) + return -ENOMEM; + + data = req->async_data; + data->req = req; + data->flags = flags; + + if (get_timespec64(&data->ts, u64_to_user_ptr(sqe->addr))) + return -EFAULT; + + if (data->ts.tv_sec < 0 || data->ts.tv_nsec < 0) + return -EINVAL; + + INIT_LIST_HEAD(&req->timeout.list); + data->mode = io_translate_timeout_mode(flags); + hrtimer_init(&data->timer, io_timeout_get_clock(data), data->mode); + + if (is_timeout_link) { + struct io_submit_link *link = &req->ctx->submit_state.link; + + if (!link->head) + return -EINVAL; + if (link->last->opcode == IORING_OP_LINK_TIMEOUT) + return -EINVAL; + req->timeout.head = link->last; + link->last->flags |= REQ_F_ARM_LTIMEOUT; + } + return 0; +} + +static int io_timeout_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + return __io_timeout_prep(req, sqe, false); +} + +static int io_link_timeout_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + return __io_timeout_prep(req, sqe, true); +} + +static int io_timeout(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_timeout_data *data = req->async_data; + struct list_head *entry; + u32 tail, off = req->timeout.off; + + spin_lock_irq(&ctx->timeout_lock); + + /* + * sqe->off holds how many events that need to occur for this + * timeout event to be satisfied. If it isn't set, then this is + * a pure timeout request, sequence isn't used. + */ + if (io_is_timeout_noseq(req)) { + entry = ctx->timeout_list.prev; + goto add; + } + + tail = ctx->cached_cq_tail - atomic_read(&ctx->cq_timeouts); + req->timeout.target_seq = tail + off; + + /* Update the last seq here in case io_flush_timeouts() hasn't. + * This is safe because ->completion_lock is held, and submissions + * and completions are never mixed in the same ->completion_lock section. + */ + ctx->cq_last_tm_flush = tail; + + /* + * Insertion sort, ensuring the first entry in the list is always + * the one we need first. + */ + list_for_each_prev(entry, &ctx->timeout_list) { + struct io_kiocb *nxt = list_entry(entry, struct io_kiocb, + timeout.list); + + if (io_is_timeout_noseq(nxt)) + continue; + /* nxt.seq is behind @tail, otherwise would've been completed */ + if (off >= nxt->timeout.target_seq - tail) + break; + } +add: + list_add(&req->timeout.list, entry); + data->timer.function = io_timeout_fn; + hrtimer_start(&data->timer, timespec64_to_ktime(data->ts), data->mode); + spin_unlock_irq(&ctx->timeout_lock); + return 0; +} + +static bool io_cancel_cb(struct io_wq_work *work, void *data) +{ + struct io_kiocb *req = container_of(work, struct io_kiocb, work); + struct io_cancel_data *cd = data; + + if (req->ctx != cd->ctx) + return false; + if (cd->flags & IORING_ASYNC_CANCEL_ANY) { + ; + } else if (cd->flags & IORING_ASYNC_CANCEL_FD) { + if (req->file != cd->file) + return false; + } else { + if (req->cqe.user_data != cd->data) + return false; + } + if (cd->flags & (IORING_ASYNC_CANCEL_ALL|IORING_ASYNC_CANCEL_ANY)) { + if (cd->seq == req->work.cancel_seq) + return false; + req->work.cancel_seq = cd->seq; + } + return true; +} + +static int io_async_cancel_one(struct io_uring_task *tctx, + struct io_cancel_data *cd) +{ + enum io_wq_cancel cancel_ret; + int ret = 0; + bool all; + + if (!tctx || !tctx->io_wq) + return -ENOENT; + + all = cd->flags & (IORING_ASYNC_CANCEL_ALL|IORING_ASYNC_CANCEL_ANY); + cancel_ret = io_wq_cancel_cb(tctx->io_wq, io_cancel_cb, cd, all); + switch (cancel_ret) { + case IO_WQ_CANCEL_OK: + ret = 0; + break; + case IO_WQ_CANCEL_RUNNING: + ret = -EALREADY; + break; + case IO_WQ_CANCEL_NOTFOUND: + ret = -ENOENT; + break; + } + + return ret; +} + +static int io_try_cancel(struct io_kiocb *req, struct io_cancel_data *cd) +{ + struct io_ring_ctx *ctx = req->ctx; + int ret; + + WARN_ON_ONCE(!io_wq_current_is_worker() && req->task != current); + + ret = io_async_cancel_one(req->task->io_uring, cd); + /* + * Fall-through even for -EALREADY, as we may have poll armed + * that need unarming. + */ + if (!ret) + return 0; + + spin_lock(&ctx->completion_lock); + ret = io_poll_cancel(ctx, cd); + if (ret != -ENOENT) + goto out; + if (!(cd->flags & IORING_ASYNC_CANCEL_FD)) + ret = io_timeout_cancel(ctx, cd); +out: + spin_unlock(&ctx->completion_lock); + return ret; +} + +#define CANCEL_FLAGS (IORING_ASYNC_CANCEL_ALL | IORING_ASYNC_CANCEL_FD | \ + IORING_ASYNC_CANCEL_ANY) + +static int io_async_cancel_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (unlikely(req->flags & REQ_F_BUFFER_SELECT)) + return -EINVAL; + if (sqe->off || sqe->len || sqe->splice_fd_in) + return -EINVAL; + + req->cancel.addr = READ_ONCE(sqe->addr); + req->cancel.flags = READ_ONCE(sqe->cancel_flags); + if (req->cancel.flags & ~CANCEL_FLAGS) + return -EINVAL; + if (req->cancel.flags & IORING_ASYNC_CANCEL_FD) { + if (req->cancel.flags & IORING_ASYNC_CANCEL_ANY) + return -EINVAL; + req->cancel.fd = READ_ONCE(sqe->fd); + } + + return 0; +} + +static int __io_async_cancel(struct io_cancel_data *cd, struct io_kiocb *req, + unsigned int issue_flags) +{ + bool all = cd->flags & (IORING_ASYNC_CANCEL_ALL|IORING_ASYNC_CANCEL_ANY); + struct io_ring_ctx *ctx = cd->ctx; + struct io_tctx_node *node; + int ret, nr = 0; + + do { + ret = io_try_cancel(req, cd); + if (ret == -ENOENT) + break; + if (!all) + return ret; + nr++; + } while (1); + + /* slow path, try all io-wq's */ + io_ring_submit_lock(ctx, issue_flags); + ret = -ENOENT; + list_for_each_entry(node, &ctx->tctx_list, ctx_node) { + struct io_uring_task *tctx = node->task->io_uring; + + ret = io_async_cancel_one(tctx, cd); + if (ret != -ENOENT) { + if (!all) + break; + nr++; + } + } + io_ring_submit_unlock(ctx, issue_flags); + return all ? nr : ret; +} + +static int io_async_cancel(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_cancel_data cd = { + .ctx = req->ctx, + .data = req->cancel.addr, + .flags = req->cancel.flags, + .seq = atomic_inc_return(&req->ctx->cancel_seq), + }; + int ret; + + if (cd.flags & IORING_ASYNC_CANCEL_FD) { + if (req->flags & REQ_F_FIXED_FILE) + req->file = io_file_get_fixed(req, req->cancel.fd, + issue_flags); + else + req->file = io_file_get_normal(req, req->cancel.fd); + if (!req->file) { + ret = -EBADF; + goto done; + } + cd.file = req->file; + } + + ret = __io_async_cancel(&cd, req, issue_flags); +done: + if (ret < 0) + req_set_fail(req); + io_req_complete_post(req, ret, 0); + return 0; +} + +static int io_files_update_prep(struct io_kiocb *req, + const struct io_uring_sqe *sqe) +{ + if (unlikely(req->flags & (REQ_F_FIXED_FILE | REQ_F_BUFFER_SELECT))) + return -EINVAL; + if (sqe->rw_flags || sqe->splice_fd_in) + return -EINVAL; + + req->rsrc_update.offset = READ_ONCE(sqe->off); + req->rsrc_update.nr_args = READ_ONCE(sqe->len); + if (!req->rsrc_update.nr_args) + return -EINVAL; + req->rsrc_update.arg = READ_ONCE(sqe->addr); + return 0; +} + +static int io_files_update_with_index_alloc(struct io_kiocb *req, + unsigned int issue_flags) +{ + __s32 __user *fds = u64_to_user_ptr(req->rsrc_update.arg); + unsigned int done; + struct file *file; + int ret, fd; + + if (!req->ctx->file_data) + return -ENXIO; + + for (done = 0; done < req->rsrc_update.nr_args; done++) { + if (copy_from_user(&fd, &fds[done], sizeof(fd))) { + ret = -EFAULT; + break; + } + + file = fget(fd); + if (!file) { + ret = -EBADF; + break; + } + ret = io_fixed_fd_install(req, issue_flags, file, + IORING_FILE_INDEX_ALLOC); + if (ret < 0) + break; + if (copy_to_user(&fds[done], &ret, sizeof(ret))) { + __io_close_fixed(req, issue_flags, ret); + ret = -EFAULT; + break; + } + } + + if (done) + return done; + return ret; +} + +static int io_files_update(struct io_kiocb *req, unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_uring_rsrc_update2 up; + int ret; + + up.offset = req->rsrc_update.offset; + up.data = req->rsrc_update.arg; + up.nr = 0; + up.tags = 0; + up.resv = 0; + up.resv2 = 0; + + if (req->rsrc_update.offset == IORING_FILE_INDEX_ALLOC) { + ret = io_files_update_with_index_alloc(req, issue_flags); + } else { + io_ring_submit_lock(ctx, issue_flags); + ret = __io_register_rsrc_update(ctx, IORING_RSRC_FILE, + &up, req->rsrc_update.nr_args); + io_ring_submit_unlock(ctx, issue_flags); + } + + if (ret < 0) + req_set_fail(req); + __io_req_complete(req, issue_flags, ret, 0); + return 0; +} + +static int io_req_prep_async(struct io_kiocb *req) +{ + const struct io_op_def *def = &io_op_defs[req->opcode]; + + /* assign early for deferred execution for non-fixed file */ + if (def->needs_file && !(req->flags & REQ_F_FIXED_FILE)) + req->file = io_file_get_normal(req, req->cqe.fd); + if (!def->needs_async_setup) + return 0; + if (WARN_ON_ONCE(req_has_async_data(req))) + return -EFAULT; + if (io_alloc_async_data(req)) + return -EAGAIN; + + switch (req->opcode) { + case IORING_OP_READV: + return io_readv_prep_async(req); + case IORING_OP_WRITEV: + return io_writev_prep_async(req); + case IORING_OP_SENDMSG: + return io_sendmsg_prep_async(req); + case IORING_OP_RECVMSG: + return io_recvmsg_prep_async(req); + case IORING_OP_CONNECT: + return io_connect_prep_async(req); + case IORING_OP_URING_CMD: + return io_uring_cmd_prep_async(req); + } + + printk_once(KERN_WARNING "io_uring: unhandled opcode %d\n", + req->opcode); + return -EINVAL; +} + +static u32 io_get_sequence(struct io_kiocb *req) +{ + u32 seq = req->ctx->cached_sq_head; + struct io_kiocb *cur; + + /* need original cached_sq_head, but it was increased for each req */ + io_for_each_link(cur, req) + seq--; + return seq; +} + +static __cold void io_drain_req(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_defer_entry *de; + int ret; + u32 seq = io_get_sequence(req); + + /* Still need defer if there is pending req in defer list. */ + spin_lock(&ctx->completion_lock); + if (!req_need_defer(req, seq) && list_empty_careful(&ctx->defer_list)) { + spin_unlock(&ctx->completion_lock); +queue: + ctx->drain_active = false; + io_req_task_queue(req); + return; + } + spin_unlock(&ctx->completion_lock); + + ret = io_req_prep_async(req); + if (ret) { +fail: + io_req_complete_failed(req, ret); + return; + } + io_prep_async_link(req); + de = kmalloc(sizeof(*de), GFP_KERNEL); + if (!de) { + ret = -ENOMEM; + goto fail; + } + + spin_lock(&ctx->completion_lock); + if (!req_need_defer(req, seq) && list_empty(&ctx->defer_list)) { + spin_unlock(&ctx->completion_lock); + kfree(de); + goto queue; + } + + trace_io_uring_defer(ctx, req, req->cqe.user_data, req->opcode); + de->req = req; + de->seq = seq; + list_add_tail(&de->list, &ctx->defer_list); + spin_unlock(&ctx->completion_lock); +} + +static void io_clean_op(struct io_kiocb *req) +{ + if (req->flags & REQ_F_BUFFER_SELECTED) { + spin_lock(&req->ctx->completion_lock); + io_put_kbuf_comp(req); + spin_unlock(&req->ctx->completion_lock); + } + + if (req->flags & REQ_F_NEED_CLEANUP) { + switch (req->opcode) { + case IORING_OP_READV: + case IORING_OP_READ_FIXED: + case IORING_OP_READ: + case IORING_OP_WRITEV: + case IORING_OP_WRITE_FIXED: + case IORING_OP_WRITE: { + struct io_async_rw *io = req->async_data; + + kfree(io->free_iovec); + break; + } + case IORING_OP_RECVMSG: + case IORING_OP_SENDMSG: { + struct io_async_msghdr *io = req->async_data; + + kfree(io->free_iov); + break; + } + case IORING_OP_OPENAT: + case IORING_OP_OPENAT2: + if (req->open.filename) + putname(req->open.filename); + break; + case IORING_OP_RENAMEAT: + putname(req->rename.oldpath); + putname(req->rename.newpath); + break; + case IORING_OP_UNLINKAT: + putname(req->unlink.filename); + break; + case IORING_OP_MKDIRAT: + putname(req->mkdir.filename); + break; + case IORING_OP_SYMLINKAT: + putname(req->symlink.oldpath); + putname(req->symlink.newpath); + break; + case IORING_OP_LINKAT: + putname(req->hardlink.oldpath); + putname(req->hardlink.newpath); + break; + case IORING_OP_STATX: + if (req->statx.filename) + putname(req->statx.filename); + break; + case IORING_OP_SETXATTR: + case IORING_OP_FSETXATTR: + case IORING_OP_GETXATTR: + case IORING_OP_FGETXATTR: + __io_xattr_finish(req); + break; + } + } + if ((req->flags & REQ_F_POLLED) && req->apoll) { + kfree(req->apoll->double_poll); + kfree(req->apoll); + req->apoll = NULL; + } + if (req->flags & REQ_F_INFLIGHT) { + struct io_uring_task *tctx = req->task->io_uring; + + atomic_dec(&tctx->inflight_tracked); + } + if (req->flags & REQ_F_CREDS) + put_cred(req->creds); + if (req->flags & REQ_F_ASYNC_DATA) { + kfree(req->async_data); + req->async_data = NULL; + } + req->flags &= ~IO_REQ_CLEAN_FLAGS; +} + +static bool io_assign_file(struct io_kiocb *req, unsigned int issue_flags) +{ + if (req->file || !io_op_defs[req->opcode].needs_file) + return true; + + if (req->flags & REQ_F_FIXED_FILE) + req->file = io_file_get_fixed(req, req->cqe.fd, issue_flags); + else + req->file = io_file_get_normal(req, req->cqe.fd); + + return !!req->file; +} + +static int io_issue_sqe(struct io_kiocb *req, unsigned int issue_flags) +{ + const struct io_op_def *def = &io_op_defs[req->opcode]; + const struct cred *creds = NULL; + int ret; + + if (unlikely(!io_assign_file(req, issue_flags))) + return -EBADF; + + if (unlikely((req->flags & REQ_F_CREDS) && req->creds != current_cred())) + creds = override_creds(req->creds); + + if (!def->audit_skip) + audit_uring_entry(req->opcode); + + ret = def->issue(req, issue_flags); + + if (!def->audit_skip) + audit_uring_exit(!ret, ret); + + if (creds) + revert_creds(creds); + if (ret) + return ret; + /* If the op doesn't have a file, we're not polling for it */ + if ((req->ctx->flags & IORING_SETUP_IOPOLL) && req->file) + io_iopoll_req_issued(req, issue_flags); + + return 0; +} + +static struct io_wq_work *io_wq_free_work(struct io_wq_work *work) +{ + struct io_kiocb *req = container_of(work, struct io_kiocb, work); + + req = io_put_req_find_next(req); + return req ? &req->work : NULL; +} + +static void io_wq_submit_work(struct io_wq_work *work) +{ + struct io_kiocb *req = container_of(work, struct io_kiocb, work); + const struct io_op_def *def = &io_op_defs[req->opcode]; + unsigned int issue_flags = IO_URING_F_UNLOCKED; + bool needs_poll = false; + int ret = 0, err = -ECANCELED; + + /* one will be dropped by ->io_free_work() after returning to io-wq */ + if (!(req->flags & REQ_F_REFCOUNT)) + __io_req_set_refcount(req, 2); + else + req_ref_get(req); + + io_arm_ltimeout(req); + + /* either cancelled or io-wq is dying, so don't touch tctx->iowq */ + if (work->flags & IO_WQ_WORK_CANCEL) { +fail: + io_req_task_queue_fail(req, err); + return; + } + if (!io_assign_file(req, issue_flags)) { + err = -EBADF; + work->flags |= IO_WQ_WORK_CANCEL; + goto fail; + } + + if (req->flags & REQ_F_FORCE_ASYNC) { + bool opcode_poll = def->pollin || def->pollout; + + if (opcode_poll && file_can_poll(req->file)) { + needs_poll = true; + issue_flags |= IO_URING_F_NONBLOCK; + } + } + + do { + ret = io_issue_sqe(req, issue_flags); + if (ret != -EAGAIN) + break; + /* + * We can get EAGAIN for iopolled IO even though we're + * forcing a sync submission from here, since we can't + * wait for request slots on the block side. + */ + if (!needs_poll) { + if (!(req->ctx->flags & IORING_SETUP_IOPOLL)) + break; + cond_resched(); + continue; + } + + if (io_arm_poll_handler(req, issue_flags) == IO_APOLL_OK) + return; + /* aborted or ready, in either case retry blocking */ + needs_poll = false; + issue_flags &= ~IO_URING_F_NONBLOCK; + } while (1); + + /* avoid locking problems by failing it from a clean context */ + if (ret) + io_req_task_queue_fail(req, ret); +} + +static inline struct io_fixed_file *io_fixed_file_slot(struct io_file_table *table, + unsigned i) +{ + return &table->files[i]; +} + +static inline struct file *io_file_from_index(struct io_ring_ctx *ctx, + int index) +{ + struct io_fixed_file *slot = io_fixed_file_slot(&ctx->file_table, index); + + return (struct file *) (slot->file_ptr & FFS_MASK); +} + +static void io_fixed_file_set(struct io_fixed_file *file_slot, struct file *file) +{ + unsigned long file_ptr = (unsigned long) file; + + file_ptr |= io_file_get_flags(file); + file_slot->file_ptr = file_ptr; +} + +static inline struct file *io_file_get_fixed(struct io_kiocb *req, int fd, + unsigned int issue_flags) +{ + struct io_ring_ctx *ctx = req->ctx; + struct file *file = NULL; + unsigned long file_ptr; + + io_ring_submit_lock(ctx, issue_flags); + + if (unlikely((unsigned int)fd >= ctx->nr_user_files)) + goto out; + fd = array_index_nospec(fd, ctx->nr_user_files); + file_ptr = io_fixed_file_slot(&ctx->file_table, fd)->file_ptr; + file = (struct file *) (file_ptr & FFS_MASK); + file_ptr &= ~FFS_MASK; + /* mask in overlapping REQ_F and FFS bits */ + req->flags |= (file_ptr << REQ_F_SUPPORT_NOWAIT_BIT); + io_req_set_rsrc_node(req, ctx, 0); + WARN_ON_ONCE(file && !test_bit(fd, ctx->file_table.bitmap)); +out: + io_ring_submit_unlock(ctx, issue_flags); + return file; +} + +static struct file *io_file_get_normal(struct io_kiocb *req, int fd) +{ + struct file *file = fget(fd); + + trace_io_uring_file_get(req->ctx, req, req->cqe.user_data, fd); + + /* we don't allow fixed io_uring files */ + if (file && file->f_op == &io_uring_fops) + io_req_track_inflight(req); + return file; +} + +static void io_req_task_link_timeout(struct io_kiocb *req, bool *locked) +{ + struct io_kiocb *prev = req->timeout.prev; + int ret = -ENOENT; + + if (prev) { + if (!(req->task->flags & PF_EXITING)) { + struct io_cancel_data cd = { + .ctx = req->ctx, + .data = prev->cqe.user_data, + }; + + ret = io_try_cancel(req, &cd); + } + io_req_complete_post(req, ret ?: -ETIME, 0); + io_put_req(prev); + } else { + io_req_complete_post(req, -ETIME, 0); + } +} + +static enum hrtimer_restart io_link_timeout_fn(struct hrtimer *timer) +{ + struct io_timeout_data *data = container_of(timer, + struct io_timeout_data, timer); + struct io_kiocb *prev, *req = data->req; + struct io_ring_ctx *ctx = req->ctx; + unsigned long flags; + + spin_lock_irqsave(&ctx->timeout_lock, flags); + prev = req->timeout.head; + req->timeout.head = NULL; + + /* + * We don't expect the list to be empty, that will only happen if we + * race with the completion of the linked work. + */ + if (prev) { + io_remove_next_linked(prev); + if (!req_ref_inc_not_zero(prev)) + prev = NULL; + } + list_del(&req->timeout.list); + req->timeout.prev = prev; + spin_unlock_irqrestore(&ctx->timeout_lock, flags); + + req->io_task_work.func = io_req_task_link_timeout; + io_req_task_work_add(req); + return HRTIMER_NORESTART; +} + +static void io_queue_linked_timeout(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + + spin_lock_irq(&ctx->timeout_lock); + /* + * If the back reference is NULL, then our linked request finished + * before we got a chance to setup the timer + */ + if (req->timeout.head) { + struct io_timeout_data *data = req->async_data; + + data->timer.function = io_link_timeout_fn; + hrtimer_start(&data->timer, timespec64_to_ktime(data->ts), + data->mode); + list_add_tail(&req->timeout.list, &ctx->ltimeout_list); + } + spin_unlock_irq(&ctx->timeout_lock); + /* drop submission reference */ + io_put_req(req); +} + +static void io_queue_async(struct io_kiocb *req, int ret) + __must_hold(&req->ctx->uring_lock) +{ + struct io_kiocb *linked_timeout; + + if (ret != -EAGAIN || (req->flags & REQ_F_NOWAIT)) { + io_req_complete_failed(req, ret); + return; + } + + linked_timeout = io_prep_linked_timeout(req); + + switch (io_arm_poll_handler(req, 0)) { + case IO_APOLL_READY: + io_kbuf_recycle(req, 0); + io_req_task_queue(req); + break; + case IO_APOLL_ABORTED: + /* + * Queued up for async execution, worker will release + * submit reference when the iocb is actually submitted. + */ + io_kbuf_recycle(req, 0); + io_queue_iowq(req, NULL); + break; + case IO_APOLL_OK: + break; + } + + if (linked_timeout) + io_queue_linked_timeout(linked_timeout); +} + +static inline void io_queue_sqe(struct io_kiocb *req) + __must_hold(&req->ctx->uring_lock) +{ + int ret; + + ret = io_issue_sqe(req, IO_URING_F_NONBLOCK|IO_URING_F_COMPLETE_DEFER); + + if (req->flags & REQ_F_COMPLETE_INLINE) { + io_req_add_compl_list(req); + return; + } + /* + * We async punt it if the file wasn't marked NOWAIT, or if the file + * doesn't support non-blocking read/write attempts + */ + if (likely(!ret)) + io_arm_ltimeout(req); + else + io_queue_async(req, ret); +} + +static void io_queue_sqe_fallback(struct io_kiocb *req) + __must_hold(&req->ctx->uring_lock) +{ + if (unlikely(req->flags & REQ_F_FAIL)) { + /* + * We don't submit, fail them all, for that replace hardlinks + * with normal links. Extra REQ_F_LINK is tolerated. + */ + req->flags &= ~REQ_F_HARDLINK; + req->flags |= REQ_F_LINK; + io_req_complete_failed(req, req->cqe.res); + } else if (unlikely(req->ctx->drain_active)) { + io_drain_req(req); + } else { + int ret = io_req_prep_async(req); + + if (unlikely(ret)) + io_req_complete_failed(req, ret); + else + io_queue_iowq(req, NULL); + } +} + +/* + * Check SQE restrictions (opcode and flags). + * + * Returns 'true' if SQE is allowed, 'false' otherwise. + */ +static inline bool io_check_restriction(struct io_ring_ctx *ctx, + struct io_kiocb *req, + unsigned int sqe_flags) +{ + if (!test_bit(req->opcode, ctx->restrictions.sqe_op)) + return false; + + if ((sqe_flags & ctx->restrictions.sqe_flags_required) != + ctx->restrictions.sqe_flags_required) + return false; + + if (sqe_flags & ~(ctx->restrictions.sqe_flags_allowed | + ctx->restrictions.sqe_flags_required)) + return false; + + return true; +} + +static void io_init_req_drain(struct io_kiocb *req) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_kiocb *head = ctx->submit_state.link.head; + + ctx->drain_active = true; + if (head) { + /* + * If we need to drain a request in the middle of a link, drain + * the head request and the next request/link after the current + * link. Considering sequential execution of links, + * REQ_F_IO_DRAIN will be maintained for every request of our + * link. + */ + head->flags |= REQ_F_IO_DRAIN | REQ_F_FORCE_ASYNC; + ctx->drain_next = true; + } +} + +static int io_init_req(struct io_ring_ctx *ctx, struct io_kiocb *req, + const struct io_uring_sqe *sqe) + __must_hold(&ctx->uring_lock) +{ + const struct io_op_def *def; + unsigned int sqe_flags; + int personality; + u8 opcode; + + /* req is partially pre-initialised, see io_preinit_req() */ + req->opcode = opcode = READ_ONCE(sqe->opcode); + /* same numerical values with corresponding REQ_F_*, safe to copy */ + req->flags = sqe_flags = READ_ONCE(sqe->flags); + req->cqe.user_data = READ_ONCE(sqe->user_data); + req->file = NULL; + req->rsrc_node = NULL; + req->task = current; + + if (unlikely(opcode >= IORING_OP_LAST)) { + req->opcode = 0; + return -EINVAL; + } + def = &io_op_defs[opcode]; + if (unlikely(sqe_flags & ~SQE_COMMON_FLAGS)) { + /* enforce forwards compatibility on users */ + if (sqe_flags & ~SQE_VALID_FLAGS) + return -EINVAL; + if (sqe_flags & IOSQE_BUFFER_SELECT) { + if (!def->buffer_select) + return -EOPNOTSUPP; + req->buf_index = READ_ONCE(sqe->buf_group); + } + if (sqe_flags & IOSQE_CQE_SKIP_SUCCESS) + ctx->drain_disabled = true; + if (sqe_flags & IOSQE_IO_DRAIN) { + if (ctx->drain_disabled) + return -EOPNOTSUPP; + io_init_req_drain(req); + } + } + if (unlikely(ctx->restricted || ctx->drain_active || ctx->drain_next)) { + if (ctx->restricted && !io_check_restriction(ctx, req, sqe_flags)) + return -EACCES; + /* knock it to the slow queue path, will be drained there */ + if (ctx->drain_active) + req->flags |= REQ_F_FORCE_ASYNC; + /* if there is no link, we're at "next" request and need to drain */ + if (unlikely(ctx->drain_next) && !ctx->submit_state.link.head) { + ctx->drain_next = false; + ctx->drain_active = true; + req->flags |= REQ_F_IO_DRAIN | REQ_F_FORCE_ASYNC; + } + } + + if (!def->ioprio && sqe->ioprio) + return -EINVAL; + if (!def->iopoll && (ctx->flags & IORING_SETUP_IOPOLL)) + return -EINVAL; + + if (def->needs_file) { + struct io_submit_state *state = &ctx->submit_state; + + req->cqe.fd = READ_ONCE(sqe->fd); + + /* + * Plug now if we have more than 2 IO left after this, and the + * target is potentially a read/write to block based storage. + */ + if (state->need_plug && def->plug) { + state->plug_started = true; + state->need_plug = false; + blk_start_plug_nr_ios(&state->plug, state->submit_nr); + } + } + + personality = READ_ONCE(sqe->personality); + if (personality) { + int ret; + + req->creds = xa_load(&ctx->personalities, personality); + if (!req->creds) + return -EINVAL; + get_cred(req->creds); + ret = security_uring_override_creds(req->creds); + if (ret) { + put_cred(req->creds); + return ret; + } + req->flags |= REQ_F_CREDS; + } + + return def->prep(req, sqe); +} + +static __cold int io_submit_fail_init(const struct io_uring_sqe *sqe, + struct io_kiocb *req, int ret) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_submit_link *link = &ctx->submit_state.link; + struct io_kiocb *head = link->head; + + trace_io_uring_req_failed(sqe, ctx, req, ret); + + /* + * Avoid breaking links in the middle as it renders links with SQPOLL + * unusable. Instead of failing eagerly, continue assembling the link if + * applicable and mark the head with REQ_F_FAIL. The link flushing code + * should find the flag and handle the rest. + */ + req_fail_link_node(req, ret); + if (head && !(head->flags & REQ_F_FAIL)) + req_fail_link_node(head, -ECANCELED); + + if (!(req->flags & IO_REQ_LINK_FLAGS)) { + if (head) { + link->last->link = req; + link->head = NULL; + req = head; + } + io_queue_sqe_fallback(req); + return ret; + } + + if (head) + link->last->link = req; + else + link->head = req; + link->last = req; + return 0; +} + +static inline int io_submit_sqe(struct io_ring_ctx *ctx, struct io_kiocb *req, + const struct io_uring_sqe *sqe) + __must_hold(&ctx->uring_lock) +{ + struct io_submit_link *link = &ctx->submit_state.link; + int ret; + + ret = io_init_req(ctx, req, sqe); + if (unlikely(ret)) + return io_submit_fail_init(sqe, req, ret); + + /* don't need @sqe from now on */ + trace_io_uring_submit_sqe(ctx, req, req->cqe.user_data, req->opcode, + req->flags, true, + ctx->flags & IORING_SETUP_SQPOLL); + + /* + * If we already have a head request, queue this one for async + * submittal once the head completes. If we don't have a head but + * IOSQE_IO_LINK is set in the sqe, start a new head. This one will be + * submitted sync once the chain is complete. If none of those + * conditions are true (normal request), then just queue it. + */ + if (unlikely(link->head)) { + ret = io_req_prep_async(req); + if (unlikely(ret)) + return io_submit_fail_init(sqe, req, ret); + + trace_io_uring_link(ctx, req, link->head); + link->last->link = req; + link->last = req; + + if (req->flags & IO_REQ_LINK_FLAGS) + return 0; + /* last request of the link, flush it */ + req = link->head; + link->head = NULL; + if (req->flags & (REQ_F_FORCE_ASYNC | REQ_F_FAIL)) + goto fallback; + + } else if (unlikely(req->flags & (IO_REQ_LINK_FLAGS | + REQ_F_FORCE_ASYNC | REQ_F_FAIL))) { + if (req->flags & IO_REQ_LINK_FLAGS) { + link->head = req; + link->last = req; + } else { +fallback: + io_queue_sqe_fallback(req); + } + return 0; + } + + io_queue_sqe(req); + return 0; +} + +/* + * Batched submission is done, ensure local IO is flushed out. + */ +static void io_submit_state_end(struct io_ring_ctx *ctx) +{ + struct io_submit_state *state = &ctx->submit_state; + + if (unlikely(state->link.head)) + io_queue_sqe_fallback(state->link.head); + /* flush only after queuing links as they can generate completions */ + io_submit_flush_completions(ctx); + if (state->plug_started) + blk_finish_plug(&state->plug); +} + +/* + * Start submission side cache. + */ +static void io_submit_state_start(struct io_submit_state *state, + unsigned int max_ios) +{ + state->plug_started = false; + state->need_plug = max_ios > 2; + state->submit_nr = max_ios; + /* set only head, no need to init link_last in advance */ + state->link.head = NULL; +} + +static void io_commit_sqring(struct io_ring_ctx *ctx) +{ + struct io_rings *rings = ctx->rings; + + /* + * Ensure any loads from the SQEs are done at this point, + * since once we write the new head, the application could + * write new data to them. + */ + smp_store_release(&rings->sq.head, ctx->cached_sq_head); +} + +/* + * Fetch an sqe, if one is available. Note this returns a pointer to memory + * that is mapped by userspace. This means that care needs to be taken to + * ensure that reads are stable, as we cannot rely on userspace always + * being a good citizen. If members of the sqe are validated and then later + * used, it's important that those reads are done through READ_ONCE() to + * prevent a re-load down the line. + */ +static const struct io_uring_sqe *io_get_sqe(struct io_ring_ctx *ctx) +{ + unsigned head, mask = ctx->sq_entries - 1; + unsigned sq_idx = ctx->cached_sq_head++ & mask; + + /* + * The cached sq head (or cq tail) serves two purposes: + * + * 1) allows us to batch the cost of updating the user visible + * head updates. + * 2) allows the kernel side to track the head on its own, even + * though the application is the one updating it. + */ + head = READ_ONCE(ctx->sq_array[sq_idx]); + if (likely(head < ctx->sq_entries)) { + /* double index for 128-byte SQEs, twice as long */ + if (ctx->flags & IORING_SETUP_SQE128) + head <<= 1; + return &ctx->sq_sqes[head]; + } + + /* drop invalid entries */ + ctx->cq_extra--; + WRITE_ONCE(ctx->rings->sq_dropped, + READ_ONCE(ctx->rings->sq_dropped) + 1); + return NULL; +} + +static int io_submit_sqes(struct io_ring_ctx *ctx, unsigned int nr) + __must_hold(&ctx->uring_lock) +{ + unsigned int entries = io_sqring_entries(ctx); + unsigned int left; + int ret; + + if (unlikely(!entries)) + return 0; + /* make sure SQ entry isn't read before tail */ + ret = left = min3(nr, ctx->sq_entries, entries); + io_get_task_refs(left); + io_submit_state_start(&ctx->submit_state, left); + + do { + const struct io_uring_sqe *sqe; + struct io_kiocb *req; + + if (unlikely(!io_alloc_req_refill(ctx))) + break; + req = io_alloc_req(ctx); + sqe = io_get_sqe(ctx); + if (unlikely(!sqe)) { + io_req_add_to_cache(req, ctx); + break; + } + + /* + * Continue submitting even for sqe failure if the + * ring was setup with IORING_SETUP_SUBMIT_ALL + */ + if (unlikely(io_submit_sqe(ctx, req, sqe)) && + !(ctx->flags & IORING_SETUP_SUBMIT_ALL)) { + left--; + break; + } + } while (--left); + + if (unlikely(left)) { + ret -= left; + /* try again if it submitted nothing and can't allocate a req */ + if (!ret && io_req_cache_empty(ctx)) + ret = -EAGAIN; + current->io_uring->cached_refs += left; + } + + io_submit_state_end(ctx); + /* Commit SQ ring head once we've consumed and submitted all SQEs */ + io_commit_sqring(ctx); + return ret; +} + +static inline bool io_sqd_events_pending(struct io_sq_data *sqd) +{ + return READ_ONCE(sqd->state); +} + +static int __io_sq_thread(struct io_ring_ctx *ctx, bool cap_entries) +{ + unsigned int to_submit; + int ret = 0; + + to_submit = io_sqring_entries(ctx); + /* if we're handling multiple rings, cap submit size for fairness */ + if (cap_entries && to_submit > IORING_SQPOLL_CAP_ENTRIES_VALUE) + to_submit = IORING_SQPOLL_CAP_ENTRIES_VALUE; + + if (!wq_list_empty(&ctx->iopoll_list) || to_submit) { + const struct cred *creds = NULL; + + if (ctx->sq_creds != current_cred()) + creds = override_creds(ctx->sq_creds); + + mutex_lock(&ctx->uring_lock); + if (!wq_list_empty(&ctx->iopoll_list)) + io_do_iopoll(ctx, true); + + /* + * Don't submit if refs are dying, good for io_uring_register(), + * but also it is relied upon by io_ring_exit_work() + */ + if (to_submit && likely(!percpu_ref_is_dying(&ctx->refs)) && + !(ctx->flags & IORING_SETUP_R_DISABLED)) + ret = io_submit_sqes(ctx, to_submit); + mutex_unlock(&ctx->uring_lock); + + if (to_submit && wq_has_sleeper(&ctx->sqo_sq_wait)) + wake_up(&ctx->sqo_sq_wait); + if (creds) + revert_creds(creds); + } + + return ret; +} + +static __cold void io_sqd_update_thread_idle(struct io_sq_data *sqd) +{ + struct io_ring_ctx *ctx; + unsigned sq_thread_idle = 0; + + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) + sq_thread_idle = max(sq_thread_idle, ctx->sq_thread_idle); + sqd->sq_thread_idle = sq_thread_idle; +} + +static bool io_sqd_handle_event(struct io_sq_data *sqd) +{ + bool did_sig = false; + struct ksignal ksig; + + if (test_bit(IO_SQ_THREAD_SHOULD_PARK, &sqd->state) || + signal_pending(current)) { + mutex_unlock(&sqd->lock); + if (signal_pending(current)) + did_sig = get_signal(&ksig); + cond_resched(); + mutex_lock(&sqd->lock); + } + return did_sig || test_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state); +} + +static int io_sq_thread(void *data) +{ + struct io_sq_data *sqd = data; + struct io_ring_ctx *ctx; + unsigned long timeout = 0; + char buf[TASK_COMM_LEN]; + DEFINE_WAIT(wait); + + snprintf(buf, sizeof(buf), "iou-sqp-%d", sqd->task_pid); + set_task_comm(current, buf); + + if (sqd->sq_cpu != -1) + set_cpus_allowed_ptr(current, cpumask_of(sqd->sq_cpu)); + else + set_cpus_allowed_ptr(current, cpu_online_mask); + current->flags |= PF_NO_SETAFFINITY; + + audit_alloc_kernel(current); + + mutex_lock(&sqd->lock); + while (1) { + bool cap_entries, sqt_spin = false; + + if (io_sqd_events_pending(sqd) || signal_pending(current)) { + if (io_sqd_handle_event(sqd)) + break; + timeout = jiffies + sqd->sq_thread_idle; + } + + cap_entries = !list_is_singular(&sqd->ctx_list); + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) { + int ret = __io_sq_thread(ctx, cap_entries); + + if (!sqt_spin && (ret > 0 || !wq_list_empty(&ctx->iopoll_list))) + sqt_spin = true; + } + if (io_run_task_work()) + sqt_spin = true; + + if (sqt_spin || !time_after(jiffies, timeout)) { + cond_resched(); + if (sqt_spin) + timeout = jiffies + sqd->sq_thread_idle; + continue; + } + + prepare_to_wait(&sqd->wait, &wait, TASK_INTERRUPTIBLE); + if (!io_sqd_events_pending(sqd) && !task_work_pending(current)) { + bool needs_sched = true; + + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) { + atomic_or(IORING_SQ_NEED_WAKEUP, + &ctx->rings->sq_flags); + if ((ctx->flags & IORING_SETUP_IOPOLL) && + !wq_list_empty(&ctx->iopoll_list)) { + needs_sched = false; + break; + } + + /* + * Ensure the store of the wakeup flag is not + * reordered with the load of the SQ tail + */ + smp_mb__after_atomic(); + + if (io_sqring_entries(ctx)) { + needs_sched = false; + break; + } + } + + if (needs_sched) { + mutex_unlock(&sqd->lock); + schedule(); + mutex_lock(&sqd->lock); + } + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) + atomic_andnot(IORING_SQ_NEED_WAKEUP, + &ctx->rings->sq_flags); + } + + finish_wait(&sqd->wait, &wait); + timeout = jiffies + sqd->sq_thread_idle; + } + + io_uring_cancel_generic(true, sqd); + sqd->thread = NULL; + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) + atomic_or(IORING_SQ_NEED_WAKEUP, &ctx->rings->sq_flags); + io_run_task_work(); + mutex_unlock(&sqd->lock); + + audit_free(current); + + complete(&sqd->exited); + do_exit(0); +} + +struct io_wait_queue { + struct wait_queue_entry wq; + struct io_ring_ctx *ctx; + unsigned cq_tail; + unsigned nr_timeouts; +}; + +static inline bool io_should_wake(struct io_wait_queue *iowq) +{ + struct io_ring_ctx *ctx = iowq->ctx; + int dist = READ_ONCE(ctx->rings->cq.tail) - (int) iowq->cq_tail; + + /* + * Wake up if we have enough events, or if a timeout occurred since we + * started waiting. For timeouts, we always want to return to userspace, + * regardless of event count. + */ + return dist >= 0 || atomic_read(&ctx->cq_timeouts) != iowq->nr_timeouts; +} + +static int io_wake_function(struct wait_queue_entry *curr, unsigned int mode, + int wake_flags, void *key) +{ + struct io_wait_queue *iowq = container_of(curr, struct io_wait_queue, + wq); + + /* + * Cannot safely flush overflowed CQEs from here, ensure we wake up + * the task, and the next invocation will do it. + */ + if (io_should_wake(iowq) || + test_bit(IO_CHECK_CQ_OVERFLOW_BIT, &iowq->ctx->check_cq)) + return autoremove_wake_function(curr, mode, wake_flags, key); + return -1; +} + +static int io_run_task_work_sig(void) +{ + if (io_run_task_work()) + return 1; + if (test_thread_flag(TIF_NOTIFY_SIGNAL)) + return -ERESTARTSYS; + if (task_sigpending(current)) + return -EINTR; + return 0; +} + +/* when returns >0, the caller should retry */ +static inline int io_cqring_wait_schedule(struct io_ring_ctx *ctx, + struct io_wait_queue *iowq, + ktime_t timeout) +{ + int ret; + unsigned long check_cq; + + /* make sure we run task_work before checking for signals */ + ret = io_run_task_work_sig(); + if (ret || io_should_wake(iowq)) + return ret; + check_cq = READ_ONCE(ctx->check_cq); + /* let the caller flush overflows, retry */ + if (check_cq & BIT(IO_CHECK_CQ_OVERFLOW_BIT)) + return 1; + if (unlikely(check_cq & BIT(IO_CHECK_CQ_DROPPED_BIT))) + return -EBADR; + if (!schedule_hrtimeout(&timeout, HRTIMER_MODE_ABS)) + return -ETIME; + return 1; +} + +/* + * Wait until events become available, if we don't already have some. The + * application must reap them itself, as they reside on the shared cq ring. + */ +static int io_cqring_wait(struct io_ring_ctx *ctx, int min_events, + const sigset_t __user *sig, size_t sigsz, + struct __kernel_timespec __user *uts) +{ + struct io_wait_queue iowq; + struct io_rings *rings = ctx->rings; + ktime_t timeout = KTIME_MAX; + int ret; + + do { + io_cqring_overflow_flush(ctx); + /* if user messes with these they will just get an early return */ + if (__io_cqring_events_user(ctx) >= min_events) + return 0; + if (!io_run_task_work()) + break; + } while (1); + + if (sig) { +#ifdef CONFIG_COMPAT + if (in_compat_syscall()) + ret = set_compat_user_sigmask((const compat_sigset_t __user *)sig, + sigsz); + else +#endif + ret = set_user_sigmask(sig, sigsz); + + if (ret) + return ret; + } + + if (uts) { + struct timespec64 ts; + + if (get_timespec64(&ts, uts)) + return -EFAULT; + timeout = ktime_add_ns(timespec64_to_ktime(ts), ktime_get_ns()); + } + + init_waitqueue_func_entry(&iowq.wq, io_wake_function); + iowq.wq.private = current; + INIT_LIST_HEAD(&iowq.wq.entry); + iowq.ctx = ctx; + iowq.nr_timeouts = atomic_read(&ctx->cq_timeouts); + iowq.cq_tail = READ_ONCE(ctx->rings->cq.head) + min_events; + + trace_io_uring_cqring_wait(ctx, min_events); + do { + /* if we can't even flush overflow, don't wait for more */ + if (!io_cqring_overflow_flush(ctx)) { + ret = -EBUSY; + break; + } + prepare_to_wait_exclusive(&ctx->cq_wait, &iowq.wq, + TASK_INTERRUPTIBLE); + ret = io_cqring_wait_schedule(ctx, &iowq, timeout); + cond_resched(); + } while (ret > 0); + + finish_wait(&ctx->cq_wait, &iowq.wq); + restore_saved_sigmask_unless(ret == -EINTR); + + return READ_ONCE(rings->cq.head) == READ_ONCE(rings->cq.tail) ? ret : 0; +} + +static void io_free_page_table(void **table, size_t size) +{ + unsigned i, nr_tables = DIV_ROUND_UP(size, PAGE_SIZE); + + for (i = 0; i < nr_tables; i++) + kfree(table[i]); + kfree(table); +} + +static __cold void **io_alloc_page_table(size_t size) +{ + unsigned i, nr_tables = DIV_ROUND_UP(size, PAGE_SIZE); + size_t init_size = size; + void **table; + + table = kcalloc(nr_tables, sizeof(*table), GFP_KERNEL_ACCOUNT); + if (!table) + return NULL; + + for (i = 0; i < nr_tables; i++) { + unsigned int this_size = min_t(size_t, size, PAGE_SIZE); + + table[i] = kzalloc(this_size, GFP_KERNEL_ACCOUNT); + if (!table[i]) { + io_free_page_table(table, init_size); + return NULL; + } + size -= this_size; + } + return table; +} + +static void io_rsrc_node_destroy(struct io_rsrc_node *ref_node) +{ + percpu_ref_exit(&ref_node->refs); + kfree(ref_node); +} + +static __cold void io_rsrc_node_ref_zero(struct percpu_ref *ref) +{ + struct io_rsrc_node *node = container_of(ref, struct io_rsrc_node, refs); + struct io_ring_ctx *ctx = node->rsrc_data->ctx; + unsigned long flags; + bool first_add = false; + unsigned long delay = HZ; + + spin_lock_irqsave(&ctx->rsrc_ref_lock, flags); + node->done = true; + + /* if we are mid-quiesce then do not delay */ + if (node->rsrc_data->quiesce) + delay = 0; + + while (!list_empty(&ctx->rsrc_ref_list)) { + node = list_first_entry(&ctx->rsrc_ref_list, + struct io_rsrc_node, node); + /* recycle ref nodes in order */ + if (!node->done) + break; + list_del(&node->node); + first_add |= llist_add(&node->llist, &ctx->rsrc_put_llist); + } + spin_unlock_irqrestore(&ctx->rsrc_ref_lock, flags); + + if (first_add) + mod_delayed_work(system_wq, &ctx->rsrc_put_work, delay); +} + +static struct io_rsrc_node *io_rsrc_node_alloc(void) +{ + struct io_rsrc_node *ref_node; + + ref_node = kzalloc(sizeof(*ref_node), GFP_KERNEL); + if (!ref_node) + return NULL; + + if (percpu_ref_init(&ref_node->refs, io_rsrc_node_ref_zero, + 0, GFP_KERNEL)) { + kfree(ref_node); + return NULL; + } + INIT_LIST_HEAD(&ref_node->node); + INIT_LIST_HEAD(&ref_node->rsrc_list); + ref_node->done = false; + return ref_node; +} + +static void io_rsrc_node_switch(struct io_ring_ctx *ctx, + struct io_rsrc_data *data_to_kill) + __must_hold(&ctx->uring_lock) +{ + WARN_ON_ONCE(!ctx->rsrc_backup_node); + WARN_ON_ONCE(data_to_kill && !ctx->rsrc_node); + + io_rsrc_refs_drop(ctx); + + if (data_to_kill) { + struct io_rsrc_node *rsrc_node = ctx->rsrc_node; + + rsrc_node->rsrc_data = data_to_kill; + spin_lock_irq(&ctx->rsrc_ref_lock); + list_add_tail(&rsrc_node->node, &ctx->rsrc_ref_list); + spin_unlock_irq(&ctx->rsrc_ref_lock); + + atomic_inc(&data_to_kill->refs); + percpu_ref_kill(&rsrc_node->refs); + ctx->rsrc_node = NULL; + } + + if (!ctx->rsrc_node) { + ctx->rsrc_node = ctx->rsrc_backup_node; + ctx->rsrc_backup_node = NULL; + } +} + +static int io_rsrc_node_switch_start(struct io_ring_ctx *ctx) +{ + if (ctx->rsrc_backup_node) + return 0; + ctx->rsrc_backup_node = io_rsrc_node_alloc(); + return ctx->rsrc_backup_node ? 0 : -ENOMEM; +} + +static __cold int io_rsrc_ref_quiesce(struct io_rsrc_data *data, + struct io_ring_ctx *ctx) +{ + int ret; + + /* As we may drop ->uring_lock, other task may have started quiesce */ + if (data->quiesce) + return -ENXIO; + + data->quiesce = true; + do { + ret = io_rsrc_node_switch_start(ctx); + if (ret) + break; + io_rsrc_node_switch(ctx, data); + + /* kill initial ref, already quiesced if zero */ + if (atomic_dec_and_test(&data->refs)) + break; + mutex_unlock(&ctx->uring_lock); + flush_delayed_work(&ctx->rsrc_put_work); + ret = wait_for_completion_interruptible(&data->done); + if (!ret) { + mutex_lock(&ctx->uring_lock); + if (atomic_read(&data->refs) > 0) { + /* + * it has been revived by another thread while + * we were unlocked + */ + mutex_unlock(&ctx->uring_lock); + } else { + break; + } + } + + atomic_inc(&data->refs); + /* wait for all works potentially completing data->done */ + flush_delayed_work(&ctx->rsrc_put_work); + reinit_completion(&data->done); + + ret = io_run_task_work_sig(); + mutex_lock(&ctx->uring_lock); + } while (ret >= 0); + data->quiesce = false; + + return ret; +} + +static u64 *io_get_tag_slot(struct io_rsrc_data *data, unsigned int idx) +{ + unsigned int off = idx & IO_RSRC_TAG_TABLE_MASK; + unsigned int table_idx = idx >> IO_RSRC_TAG_TABLE_SHIFT; + + return &data->tags[table_idx][off]; +} + +static void io_rsrc_data_free(struct io_rsrc_data *data) +{ + size_t size = data->nr * sizeof(data->tags[0][0]); + + if (data->tags) + io_free_page_table((void **)data->tags, size); + kfree(data); +} + +static __cold int io_rsrc_data_alloc(struct io_ring_ctx *ctx, rsrc_put_fn *do_put, + u64 __user *utags, unsigned nr, + struct io_rsrc_data **pdata) +{ + struct io_rsrc_data *data; + int ret = -ENOMEM; + unsigned i; + + data = kzalloc(sizeof(*data), GFP_KERNEL); + if (!data) + return -ENOMEM; + data->tags = (u64 **)io_alloc_page_table(nr * sizeof(data->tags[0][0])); + if (!data->tags) { + kfree(data); + return -ENOMEM; + } + + data->nr = nr; + data->ctx = ctx; + data->do_put = do_put; + if (utags) { + ret = -EFAULT; + for (i = 0; i < nr; i++) { + u64 *tag_slot = io_get_tag_slot(data, i); + + if (copy_from_user(tag_slot, &utags[i], + sizeof(*tag_slot))) + goto fail; + } + } + + atomic_set(&data->refs, 1); + init_completion(&data->done); + *pdata = data; + return 0; +fail: + io_rsrc_data_free(data); + return ret; +} + +static bool io_alloc_file_tables(struct io_file_table *table, unsigned nr_files) +{ + table->files = kvcalloc(nr_files, sizeof(table->files[0]), + GFP_KERNEL_ACCOUNT); + if (unlikely(!table->files)) + return false; + + table->bitmap = bitmap_zalloc(nr_files, GFP_KERNEL_ACCOUNT); + if (unlikely(!table->bitmap)) { + kvfree(table->files); + return false; + } + + return true; +} + +static void io_free_file_tables(struct io_file_table *table) +{ + kvfree(table->files); + bitmap_free(table->bitmap); + table->files = NULL; + table->bitmap = NULL; +} + +static inline void io_file_bitmap_set(struct io_file_table *table, int bit) +{ + WARN_ON_ONCE(test_bit(bit, table->bitmap)); + __set_bit(bit, table->bitmap); + table->alloc_hint = bit + 1; +} + +static inline void io_file_bitmap_clear(struct io_file_table *table, int bit) +{ + __clear_bit(bit, table->bitmap); + table->alloc_hint = bit; +} + +static void __io_sqe_files_unregister(struct io_ring_ctx *ctx) +{ +#if !defined(IO_URING_SCM_ALL) + int i; + + for (i = 0; i < ctx->nr_user_files; i++) { + struct file *file = io_file_from_index(ctx, i); + + if (!file) + continue; + if (io_fixed_file_slot(&ctx->file_table, i)->file_ptr & FFS_SCM) + continue; + io_file_bitmap_clear(&ctx->file_table, i); + fput(file); + } +#endif + +#if defined(CONFIG_UNIX) + if (ctx->ring_sock) { + struct sock *sock = ctx->ring_sock->sk; + struct sk_buff *skb; + + while ((skb = skb_dequeue(&sock->sk_receive_queue)) != NULL) + kfree_skb(skb); + } +#endif + io_free_file_tables(&ctx->file_table); + io_rsrc_data_free(ctx->file_data); + ctx->file_data = NULL; + ctx->nr_user_files = 0; +} + +static int io_sqe_files_unregister(struct io_ring_ctx *ctx) +{ + unsigned nr = ctx->nr_user_files; + int ret; + + if (!ctx->file_data) + return -ENXIO; + + /* + * Quiesce may unlock ->uring_lock, and while it's not held + * prevent new requests using the table. + */ + ctx->nr_user_files = 0; + ret = io_rsrc_ref_quiesce(ctx->file_data, ctx); + ctx->nr_user_files = nr; + if (!ret) + __io_sqe_files_unregister(ctx); + return ret; +} + +static void io_sq_thread_unpark(struct io_sq_data *sqd) + __releases(&sqd->lock) +{ + WARN_ON_ONCE(sqd->thread == current); + + /* + * Do the dance but not conditional clear_bit() because it'd race with + * other threads incrementing park_pending and setting the bit. + */ + clear_bit(IO_SQ_THREAD_SHOULD_PARK, &sqd->state); + if (atomic_dec_return(&sqd->park_pending)) + set_bit(IO_SQ_THREAD_SHOULD_PARK, &sqd->state); + mutex_unlock(&sqd->lock); +} + +static void io_sq_thread_park(struct io_sq_data *sqd) + __acquires(&sqd->lock) +{ + WARN_ON_ONCE(sqd->thread == current); + + atomic_inc(&sqd->park_pending); + set_bit(IO_SQ_THREAD_SHOULD_PARK, &sqd->state); + mutex_lock(&sqd->lock); + if (sqd->thread) + wake_up_process(sqd->thread); +} + +static void io_sq_thread_stop(struct io_sq_data *sqd) +{ + WARN_ON_ONCE(sqd->thread == current); + WARN_ON_ONCE(test_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state)); + + set_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state); + mutex_lock(&sqd->lock); + if (sqd->thread) + wake_up_process(sqd->thread); + mutex_unlock(&sqd->lock); + wait_for_completion(&sqd->exited); +} + +static void io_put_sq_data(struct io_sq_data *sqd) +{ + if (refcount_dec_and_test(&sqd->refs)) { + WARN_ON_ONCE(atomic_read(&sqd->park_pending)); + + io_sq_thread_stop(sqd); + kfree(sqd); + } +} + +static void io_sq_thread_finish(struct io_ring_ctx *ctx) +{ + struct io_sq_data *sqd = ctx->sq_data; + + if (sqd) { + io_sq_thread_park(sqd); + list_del_init(&ctx->sqd_list); + io_sqd_update_thread_idle(sqd); + io_sq_thread_unpark(sqd); + + io_put_sq_data(sqd); + ctx->sq_data = NULL; + } +} + +static struct io_sq_data *io_attach_sq_data(struct io_uring_params *p) +{ + struct io_ring_ctx *ctx_attach; + struct io_sq_data *sqd; + struct fd f; + + f = fdget(p->wq_fd); + if (!f.file) + return ERR_PTR(-ENXIO); + if (f.file->f_op != &io_uring_fops) { + fdput(f); + return ERR_PTR(-EINVAL); + } + + ctx_attach = f.file->private_data; + sqd = ctx_attach->sq_data; + if (!sqd) { + fdput(f); + return ERR_PTR(-EINVAL); + } + if (sqd->task_tgid != current->tgid) { + fdput(f); + return ERR_PTR(-EPERM); + } + + refcount_inc(&sqd->refs); + fdput(f); + return sqd; +} + +static struct io_sq_data *io_get_sq_data(struct io_uring_params *p, + bool *attached) +{ + struct io_sq_data *sqd; + + *attached = false; + if (p->flags & IORING_SETUP_ATTACH_WQ) { + sqd = io_attach_sq_data(p); + if (!IS_ERR(sqd)) { + *attached = true; + return sqd; + } + /* fall through for EPERM case, setup new sqd/task */ + if (PTR_ERR(sqd) != -EPERM) + return sqd; + } + + sqd = kzalloc(sizeof(*sqd), GFP_KERNEL); + if (!sqd) + return ERR_PTR(-ENOMEM); + + atomic_set(&sqd->park_pending, 0); + refcount_set(&sqd->refs, 1); + INIT_LIST_HEAD(&sqd->ctx_list); + mutex_init(&sqd->lock); + init_waitqueue_head(&sqd->wait); + init_completion(&sqd->exited); + return sqd; +} + +/* + * Ensure the UNIX gc is aware of our file set, so we are certain that + * the io_uring can be safely unregistered on process exit, even if we have + * loops in the file referencing. We account only files that can hold other + * files because otherwise they can't form a loop and so are not interesting + * for GC. + */ +static int io_scm_file_account(struct io_ring_ctx *ctx, struct file *file) +{ +#if defined(CONFIG_UNIX) + struct sock *sk = ctx->ring_sock->sk; + struct sk_buff_head *head = &sk->sk_receive_queue; + struct scm_fp_list *fpl; + struct sk_buff *skb; + + if (likely(!io_file_need_scm(file))) + return 0; + + /* + * See if we can merge this file into an existing skb SCM_RIGHTS + * file set. If there's no room, fall back to allocating a new skb + * and filling it in. + */ + spin_lock_irq(&head->lock); + skb = skb_peek(head); + if (skb && UNIXCB(skb).fp->count < SCM_MAX_FD) + __skb_unlink(skb, head); + else + skb = NULL; + spin_unlock_irq(&head->lock); + + if (!skb) { + fpl = kzalloc(sizeof(*fpl), GFP_KERNEL); + if (!fpl) + return -ENOMEM; + + skb = alloc_skb(0, GFP_KERNEL); + if (!skb) { + kfree(fpl); + return -ENOMEM; + } + + fpl->user = get_uid(current_user()); + fpl->max = SCM_MAX_FD; + fpl->count = 0; + + UNIXCB(skb).fp = fpl; + skb->sk = sk; + skb->scm_io_uring = 1; + skb->destructor = unix_destruct_scm; + refcount_add(skb->truesize, &sk->sk_wmem_alloc); + } + + fpl = UNIXCB(skb).fp; + fpl->fp[fpl->count++] = get_file(file); + unix_inflight(fpl->user, file); + skb_queue_head(head, skb); + fput(file); +#endif + return 0; +} + +static void io_rsrc_file_put(struct io_ring_ctx *ctx, struct io_rsrc_put *prsrc) +{ + struct file *file = prsrc->file; +#if defined(CONFIG_UNIX) + struct sock *sock = ctx->ring_sock->sk; + struct sk_buff_head list, *head = &sock->sk_receive_queue; + struct sk_buff *skb; + int i; + + if (!io_file_need_scm(file)) { + fput(file); + return; + } + + __skb_queue_head_init(&list); + + /* + * Find the skb that holds this file in its SCM_RIGHTS. When found, + * remove this entry and rearrange the file array. + */ + skb = skb_dequeue(head); + while (skb) { + struct scm_fp_list *fp; + + fp = UNIXCB(skb).fp; + for (i = 0; i < fp->count; i++) { + int left; + + if (fp->fp[i] != file) + continue; + + unix_notinflight(fp->user, fp->fp[i]); + left = fp->count - 1 - i; + if (left) { + memmove(&fp->fp[i], &fp->fp[i + 1], + left * sizeof(struct file *)); + } + fp->count--; + if (!fp->count) { + kfree_skb(skb); + skb = NULL; + } else { + __skb_queue_tail(&list, skb); + } + fput(file); + file = NULL; + break; + } + + if (!file) + break; + + __skb_queue_tail(&list, skb); + + skb = skb_dequeue(head); + } + + if (skb_peek(&list)) { + spin_lock_irq(&head->lock); + while ((skb = __skb_dequeue(&list)) != NULL) + __skb_queue_tail(head, skb); + spin_unlock_irq(&head->lock); + } +#else + fput(file); +#endif +} + +static void __io_rsrc_put_work(struct io_rsrc_node *ref_node) +{ + struct io_rsrc_data *rsrc_data = ref_node->rsrc_data; + struct io_ring_ctx *ctx = rsrc_data->ctx; + struct io_rsrc_put *prsrc, *tmp; + + list_for_each_entry_safe(prsrc, tmp, &ref_node->rsrc_list, list) { + list_del(&prsrc->list); + + if (prsrc->tag) { + if (ctx->flags & IORING_SETUP_IOPOLL) + mutex_lock(&ctx->uring_lock); + + spin_lock(&ctx->completion_lock); + io_fill_cqe_aux(ctx, prsrc->tag, 0, 0); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + io_cqring_ev_posted(ctx); + + if (ctx->flags & IORING_SETUP_IOPOLL) + mutex_unlock(&ctx->uring_lock); + } + + rsrc_data->do_put(ctx, prsrc); + kfree(prsrc); + } + + io_rsrc_node_destroy(ref_node); + if (atomic_dec_and_test(&rsrc_data->refs)) + complete(&rsrc_data->done); +} + +static void io_rsrc_put_work(struct work_struct *work) +{ + struct io_ring_ctx *ctx; + struct llist_node *node; + + ctx = container_of(work, struct io_ring_ctx, rsrc_put_work.work); + node = llist_del_all(&ctx->rsrc_put_llist); + + while (node) { + struct io_rsrc_node *ref_node; + struct llist_node *next = node->next; + + ref_node = llist_entry(node, struct io_rsrc_node, llist); + __io_rsrc_put_work(ref_node); + node = next; + } +} + +static int io_sqe_files_register(struct io_ring_ctx *ctx, void __user *arg, + unsigned nr_args, u64 __user *tags) +{ + __s32 __user *fds = (__s32 __user *) arg; + struct file *file; + int fd, ret; + unsigned i; + + if (ctx->file_data) + return -EBUSY; + if (!nr_args) + return -EINVAL; + if (nr_args > IORING_MAX_FIXED_FILES) + return -EMFILE; + if (nr_args > rlimit(RLIMIT_NOFILE)) + return -EMFILE; + ret = io_rsrc_node_switch_start(ctx); + if (ret) + return ret; + ret = io_rsrc_data_alloc(ctx, io_rsrc_file_put, tags, nr_args, + &ctx->file_data); + if (ret) + return ret; + + if (!io_alloc_file_tables(&ctx->file_table, nr_args)) { + io_rsrc_data_free(ctx->file_data); + ctx->file_data = NULL; + return -ENOMEM; + } + + for (i = 0; i < nr_args; i++, ctx->nr_user_files++) { + struct io_fixed_file *file_slot; + + if (fds && copy_from_user(&fd, &fds[i], sizeof(fd))) { + ret = -EFAULT; + goto fail; + } + /* allow sparse sets */ + if (!fds || fd == -1) { + ret = -EINVAL; + if (unlikely(*io_get_tag_slot(ctx->file_data, i))) + goto fail; + continue; + } + + file = fget(fd); + ret = -EBADF; + if (unlikely(!file)) + goto fail; + + /* + * Don't allow io_uring instances to be registered. If UNIX + * isn't enabled, then this causes a reference cycle and this + * instance can never get freed. If UNIX is enabled we'll + * handle it just fine, but there's still no point in allowing + * a ring fd as it doesn't support regular read/write anyway. + */ + if (file->f_op == &io_uring_fops) { + fput(file); + goto fail; + } + ret = io_scm_file_account(ctx, file); + if (ret) { + fput(file); + goto fail; + } + file_slot = io_fixed_file_slot(&ctx->file_table, i); + io_fixed_file_set(file_slot, file); + io_file_bitmap_set(&ctx->file_table, i); + } + + io_rsrc_node_switch(ctx, NULL); + return 0; +fail: + __io_sqe_files_unregister(ctx); + return ret; +} + +static int io_queue_rsrc_removal(struct io_rsrc_data *data, unsigned idx, + struct io_rsrc_node *node, void *rsrc) +{ + u64 *tag_slot = io_get_tag_slot(data, idx); + struct io_rsrc_put *prsrc; + + prsrc = kzalloc(sizeof(*prsrc), GFP_KERNEL); + if (!prsrc) + return -ENOMEM; + + prsrc->tag = *tag_slot; + *tag_slot = 0; + prsrc->rsrc = rsrc; + list_add(&prsrc->list, &node->rsrc_list); + return 0; +} + +static int io_install_fixed_file(struct io_kiocb *req, struct file *file, + unsigned int issue_flags, u32 slot_index) + __must_hold(&req->ctx->uring_lock) +{ + struct io_ring_ctx *ctx = req->ctx; + bool needs_switch = false; + struct io_fixed_file *file_slot; + int ret; + + if (file->f_op == &io_uring_fops) + return -EBADF; + if (!ctx->file_data) + return -ENXIO; + if (slot_index >= ctx->nr_user_files) + return -EINVAL; + + slot_index = array_index_nospec(slot_index, ctx->nr_user_files); + file_slot = io_fixed_file_slot(&ctx->file_table, slot_index); + + if (file_slot->file_ptr) { + struct file *old_file; + + ret = io_rsrc_node_switch_start(ctx); + if (ret) + goto err; + + old_file = (struct file *)(file_slot->file_ptr & FFS_MASK); + ret = io_queue_rsrc_removal(ctx->file_data, slot_index, + ctx->rsrc_node, old_file); + if (ret) + goto err; + file_slot->file_ptr = 0; + io_file_bitmap_clear(&ctx->file_table, slot_index); + needs_switch = true; + } + + ret = io_scm_file_account(ctx, file); + if (!ret) { + *io_get_tag_slot(ctx->file_data, slot_index) = 0; + io_fixed_file_set(file_slot, file); + io_file_bitmap_set(&ctx->file_table, slot_index); + } +err: + if (needs_switch) + io_rsrc_node_switch(ctx, ctx->file_data); + return ret; +} + +static int __io_close_fixed(struct io_kiocb *req, unsigned int issue_flags, + unsigned int offset) +{ + struct io_ring_ctx *ctx = req->ctx; + struct io_fixed_file *file_slot; + struct file *file; + int ret; + + io_ring_submit_lock(ctx, issue_flags); + ret = -ENXIO; + if (unlikely(!ctx->file_data)) + goto out; + ret = -EINVAL; + if (offset >= ctx->nr_user_files) + goto out; + ret = io_rsrc_node_switch_start(ctx); + if (ret) + goto out; + + offset = array_index_nospec(offset, ctx->nr_user_files); + file_slot = io_fixed_file_slot(&ctx->file_table, offset); + ret = -EBADF; + if (!file_slot->file_ptr) + goto out; + + file = (struct file *)(file_slot->file_ptr & FFS_MASK); + ret = io_queue_rsrc_removal(ctx->file_data, offset, ctx->rsrc_node, file); + if (ret) + goto out; + + file_slot->file_ptr = 0; + io_file_bitmap_clear(&ctx->file_table, offset); + io_rsrc_node_switch(ctx, ctx->file_data); + ret = 0; +out: + io_ring_submit_unlock(ctx, issue_flags); + return ret; +} + +static inline int io_close_fixed(struct io_kiocb *req, unsigned int issue_flags) +{ + return __io_close_fixed(req, issue_flags, req->close.file_slot - 1); +} + +static int __io_sqe_files_update(struct io_ring_ctx *ctx, + struct io_uring_rsrc_update2 *up, + unsigned nr_args) +{ + u64 __user *tags = u64_to_user_ptr(up->tags); + __s32 __user *fds = u64_to_user_ptr(up->data); + struct io_rsrc_data *data = ctx->file_data; + struct io_fixed_file *file_slot; + struct file *file; + int fd, i, err = 0; + unsigned int done; + bool needs_switch = false; + + if (!ctx->file_data) + return -ENXIO; + if (up->offset + nr_args > ctx->nr_user_files) + return -EINVAL; + + for (done = 0; done < nr_args; done++) { + u64 tag = 0; + + if ((tags && copy_from_user(&tag, &tags[done], sizeof(tag))) || + copy_from_user(&fd, &fds[done], sizeof(fd))) { + err = -EFAULT; + break; + } + if ((fd == IORING_REGISTER_FILES_SKIP || fd == -1) && tag) { + err = -EINVAL; + break; + } + if (fd == IORING_REGISTER_FILES_SKIP) + continue; + + i = array_index_nospec(up->offset + done, ctx->nr_user_files); + file_slot = io_fixed_file_slot(&ctx->file_table, i); + + if (file_slot->file_ptr) { + file = (struct file *)(file_slot->file_ptr & FFS_MASK); + err = io_queue_rsrc_removal(data, i, ctx->rsrc_node, file); + if (err) + break; + file_slot->file_ptr = 0; + io_file_bitmap_clear(&ctx->file_table, i); + needs_switch = true; + } + if (fd != -1) { + file = fget(fd); + if (!file) { + err = -EBADF; + break; + } + /* + * Don't allow io_uring instances to be registered. If + * UNIX isn't enabled, then this causes a reference + * cycle and this instance can never get freed. If UNIX + * is enabled we'll handle it just fine, but there's + * still no point in allowing a ring fd as it doesn't + * support regular read/write anyway. + */ + if (file->f_op == &io_uring_fops) { + fput(file); + err = -EBADF; + break; + } + err = io_scm_file_account(ctx, file); + if (err) { + fput(file); + break; + } + *io_get_tag_slot(data, i) = tag; + io_fixed_file_set(file_slot, file); + io_file_bitmap_set(&ctx->file_table, i); + } + } + + if (needs_switch) + io_rsrc_node_switch(ctx, data); + return done ? done : err; +} + +static struct io_wq *io_init_wq_offload(struct io_ring_ctx *ctx, + struct task_struct *task) +{ + struct io_wq_hash *hash; + struct io_wq_data data; + unsigned int concurrency; + + mutex_lock(&ctx->uring_lock); + hash = ctx->hash_map; + if (!hash) { + hash = kzalloc(sizeof(*hash), GFP_KERNEL); + if (!hash) { + mutex_unlock(&ctx->uring_lock); + return ERR_PTR(-ENOMEM); + } + refcount_set(&hash->refs, 1); + init_waitqueue_head(&hash->wait); + ctx->hash_map = hash; + } + mutex_unlock(&ctx->uring_lock); + + data.hash = hash; + data.task = task; + data.free_work = io_wq_free_work; + data.do_work = io_wq_submit_work; + + /* Do QD, or 4 * CPUS, whatever is smallest */ + concurrency = min(ctx->sq_entries, 4 * num_online_cpus()); + + return io_wq_create(concurrency, &data); +} + +static __cold int io_uring_alloc_task_context(struct task_struct *task, + struct io_ring_ctx *ctx) +{ + struct io_uring_task *tctx; + int ret; + + tctx = kzalloc(sizeof(*tctx), GFP_KERNEL); + if (unlikely(!tctx)) + return -ENOMEM; + + tctx->registered_rings = kcalloc(IO_RINGFD_REG_MAX, + sizeof(struct file *), GFP_KERNEL); + if (unlikely(!tctx->registered_rings)) { + kfree(tctx); + return -ENOMEM; + } + + ret = percpu_counter_init(&tctx->inflight, 0, GFP_KERNEL); + if (unlikely(ret)) { + kfree(tctx->registered_rings); + kfree(tctx); + return ret; + } + + tctx->io_wq = io_init_wq_offload(ctx, task); + if (IS_ERR(tctx->io_wq)) { + ret = PTR_ERR(tctx->io_wq); + percpu_counter_destroy(&tctx->inflight); + kfree(tctx->registered_rings); + kfree(tctx); + return ret; + } + + xa_init(&tctx->xa); + init_waitqueue_head(&tctx->wait); + atomic_set(&tctx->in_idle, 0); + atomic_set(&tctx->inflight_tracked, 0); + task->io_uring = tctx; + spin_lock_init(&tctx->task_lock); + INIT_WQ_LIST(&tctx->task_list); + INIT_WQ_LIST(&tctx->prio_task_list); + init_task_work(&tctx->task_work, tctx_task_work); + return 0; +} + +void __io_uring_free(struct task_struct *tsk) +{ + struct io_uring_task *tctx = tsk->io_uring; + + WARN_ON_ONCE(!xa_empty(&tctx->xa)); + WARN_ON_ONCE(tctx->io_wq); + WARN_ON_ONCE(tctx->cached_refs); + + kfree(tctx->registered_rings); + percpu_counter_destroy(&tctx->inflight); + kfree(tctx); + tsk->io_uring = NULL; +} + +static __cold int io_sq_offload_create(struct io_ring_ctx *ctx, + struct io_uring_params *p) +{ + int ret; + + /* Retain compatibility with failing for an invalid attach attempt */ + if ((ctx->flags & (IORING_SETUP_ATTACH_WQ | IORING_SETUP_SQPOLL)) == + IORING_SETUP_ATTACH_WQ) { + struct fd f; + + f = fdget(p->wq_fd); + if (!f.file) + return -ENXIO; + if (f.file->f_op != &io_uring_fops) { + fdput(f); + return -EINVAL; + } + fdput(f); + } + if (ctx->flags & IORING_SETUP_SQPOLL) { + struct task_struct *tsk; + struct io_sq_data *sqd; + bool attached; + + ret = security_uring_sqpoll(); + if (ret) + return ret; + + sqd = io_get_sq_data(p, &attached); + if (IS_ERR(sqd)) { + ret = PTR_ERR(sqd); + goto err; + } + + ctx->sq_creds = get_current_cred(); + ctx->sq_data = sqd; + ctx->sq_thread_idle = msecs_to_jiffies(p->sq_thread_idle); + if (!ctx->sq_thread_idle) + ctx->sq_thread_idle = HZ; + + io_sq_thread_park(sqd); + list_add(&ctx->sqd_list, &sqd->ctx_list); + io_sqd_update_thread_idle(sqd); + /* don't attach to a dying SQPOLL thread, would be racy */ + ret = (attached && !sqd->thread) ? -ENXIO : 0; + io_sq_thread_unpark(sqd); + + if (ret < 0) + goto err; + if (attached) + return 0; + + if (p->flags & IORING_SETUP_SQ_AFF) { + int cpu = p->sq_thread_cpu; + + ret = -EINVAL; + if (cpu >= nr_cpu_ids || !cpu_online(cpu)) + goto err_sqpoll; + sqd->sq_cpu = cpu; + } else { + sqd->sq_cpu = -1; + } + + sqd->task_pid = current->pid; + sqd->task_tgid = current->tgid; + tsk = create_io_thread(io_sq_thread, sqd, NUMA_NO_NODE); + if (IS_ERR(tsk)) { + ret = PTR_ERR(tsk); + goto err_sqpoll; + } + + sqd->thread = tsk; + ret = io_uring_alloc_task_context(tsk, ctx); + wake_up_new_task(tsk); + if (ret) + goto err; + } else if (p->flags & IORING_SETUP_SQ_AFF) { + /* Can't have SQ_AFF without SQPOLL */ + ret = -EINVAL; + goto err; + } + + return 0; +err_sqpoll: + complete(&ctx->sq_data->exited); +err: + io_sq_thread_finish(ctx); + return ret; +} + +static inline void __io_unaccount_mem(struct user_struct *user, + unsigned long nr_pages) +{ + atomic_long_sub(nr_pages, &user->locked_vm); +} + +static inline int __io_account_mem(struct user_struct *user, + unsigned long nr_pages) +{ + unsigned long page_limit, cur_pages, new_pages; + + /* Don't allow more pages than we can safely lock */ + page_limit = rlimit(RLIMIT_MEMLOCK) >> PAGE_SHIFT; + + do { + cur_pages = atomic_long_read(&user->locked_vm); + new_pages = cur_pages + nr_pages; + if (new_pages > page_limit) + return -ENOMEM; + } while (atomic_long_cmpxchg(&user->locked_vm, cur_pages, + new_pages) != cur_pages); + + return 0; +} + +static void io_unaccount_mem(struct io_ring_ctx *ctx, unsigned long nr_pages) +{ + if (ctx->user) + __io_unaccount_mem(ctx->user, nr_pages); + + if (ctx->mm_account) + atomic64_sub(nr_pages, &ctx->mm_account->pinned_vm); +} + +static int io_account_mem(struct io_ring_ctx *ctx, unsigned long nr_pages) +{ + int ret; + + if (ctx->user) { + ret = __io_account_mem(ctx->user, nr_pages); + if (ret) + return ret; + } + + if (ctx->mm_account) + atomic64_add(nr_pages, &ctx->mm_account->pinned_vm); + + return 0; +} + +static void io_mem_free(void *ptr) +{ + struct page *page; + + if (!ptr) + return; + + page = virt_to_head_page(ptr); + if (put_page_testzero(page)) + free_compound_page(page); +} + +static void *io_mem_alloc(size_t size) +{ + gfp_t gfp = GFP_KERNEL_ACCOUNT | __GFP_ZERO | __GFP_NOWARN | __GFP_COMP; + + return (void *) __get_free_pages(gfp, get_order(size)); +} + +static unsigned long rings_size(struct io_ring_ctx *ctx, unsigned int sq_entries, + unsigned int cq_entries, size_t *sq_offset) +{ + struct io_rings *rings; + size_t off, sq_array_size; + + off = struct_size(rings, cqes, cq_entries); + if (off == SIZE_MAX) + return SIZE_MAX; + if (ctx->flags & IORING_SETUP_CQE32) { + if (check_shl_overflow(off, 1, &off)) + return SIZE_MAX; + } + +#ifdef CONFIG_SMP + off = ALIGN(off, SMP_CACHE_BYTES); + if (off == 0) + return SIZE_MAX; +#endif + + if (sq_offset) + *sq_offset = off; + + sq_array_size = array_size(sizeof(u32), sq_entries); + if (sq_array_size == SIZE_MAX) + return SIZE_MAX; + + if (check_add_overflow(off, sq_array_size, &off)) + return SIZE_MAX; + + return off; +} + +static void io_buffer_unmap(struct io_ring_ctx *ctx, struct io_mapped_ubuf **slot) +{ + struct io_mapped_ubuf *imu = *slot; + unsigned int i; + + if (imu != ctx->dummy_ubuf) { + for (i = 0; i < imu->nr_bvecs; i++) + unpin_user_page(imu->bvec[i].bv_page); + if (imu->acct_pages) + io_unaccount_mem(ctx, imu->acct_pages); + kvfree(imu); + } + *slot = NULL; +} + +static void io_rsrc_buf_put(struct io_ring_ctx *ctx, struct io_rsrc_put *prsrc) +{ + io_buffer_unmap(ctx, &prsrc->buf); + prsrc->buf = NULL; +} + +static void __io_sqe_buffers_unregister(struct io_ring_ctx *ctx) +{ + unsigned int i; + + for (i = 0; i < ctx->nr_user_bufs; i++) + io_buffer_unmap(ctx, &ctx->user_bufs[i]); + kfree(ctx->user_bufs); + io_rsrc_data_free(ctx->buf_data); + ctx->user_bufs = NULL; + ctx->buf_data = NULL; + ctx->nr_user_bufs = 0; +} + +static int io_sqe_buffers_unregister(struct io_ring_ctx *ctx) +{ + unsigned nr = ctx->nr_user_bufs; + int ret; + + if (!ctx->buf_data) + return -ENXIO; + + /* + * Quiesce may unlock ->uring_lock, and while it's not held + * prevent new requests using the table. + */ + ctx->nr_user_bufs = 0; + ret = io_rsrc_ref_quiesce(ctx->buf_data, ctx); + ctx->nr_user_bufs = nr; + if (!ret) + __io_sqe_buffers_unregister(ctx); + return ret; +} + +static int io_copy_iov(struct io_ring_ctx *ctx, struct iovec *dst, + void __user *arg, unsigned index) +{ + struct iovec __user *src; + +#ifdef CONFIG_COMPAT + if (ctx->compat) { + struct compat_iovec __user *ciovs; + struct compat_iovec ciov; + + ciovs = (struct compat_iovec __user *) arg; + if (copy_from_user(&ciov, &ciovs[index], sizeof(ciov))) + return -EFAULT; + + dst->iov_base = u64_to_user_ptr((u64)ciov.iov_base); + dst->iov_len = ciov.iov_len; + return 0; + } +#endif + src = (struct iovec __user *) arg; + if (copy_from_user(dst, &src[index], sizeof(*dst))) + return -EFAULT; + return 0; +} + +/* + * Not super efficient, but this is just a registration time. And we do cache + * the last compound head, so generally we'll only do a full search if we don't + * match that one. + * + * We check if the given compound head page has already been accounted, to + * avoid double accounting it. This allows us to account the full size of the + * page, not just the constituent pages of a huge page. + */ +static bool headpage_already_acct(struct io_ring_ctx *ctx, struct page **pages, + int nr_pages, struct page *hpage) +{ + int i, j; + + /* check current page array */ + for (i = 0; i < nr_pages; i++) { + if (!PageCompound(pages[i])) + continue; + if (compound_head(pages[i]) == hpage) + return true; + } + + /* check previously registered pages */ + for (i = 0; i < ctx->nr_user_bufs; i++) { + struct io_mapped_ubuf *imu = ctx->user_bufs[i]; + + for (j = 0; j < imu->nr_bvecs; j++) { + if (!PageCompound(imu->bvec[j].bv_page)) + continue; + if (compound_head(imu->bvec[j].bv_page) == hpage) + return true; + } + } + + return false; +} + +static int io_buffer_account_pin(struct io_ring_ctx *ctx, struct page **pages, + int nr_pages, struct io_mapped_ubuf *imu, + struct page **last_hpage) +{ + int i, ret; + + imu->acct_pages = 0; + for (i = 0; i < nr_pages; i++) { + if (!PageCompound(pages[i])) { + imu->acct_pages++; + } else { + struct page *hpage; + + hpage = compound_head(pages[i]); + if (hpage == *last_hpage) + continue; + *last_hpage = hpage; + if (headpage_already_acct(ctx, pages, i, hpage)) + continue; + imu->acct_pages += page_size(hpage) >> PAGE_SHIFT; + } + } + + if (!imu->acct_pages) + return 0; + + ret = io_account_mem(ctx, imu->acct_pages); + if (ret) + imu->acct_pages = 0; + return ret; +} + +static struct page **io_pin_pages(unsigned long ubuf, unsigned long len, + int *npages) +{ + unsigned long start, end, nr_pages; + struct vm_area_struct **vmas = NULL; + struct page **pages = NULL; + int i, pret, ret = -ENOMEM; + + end = (ubuf + len + PAGE_SIZE - 1) >> PAGE_SHIFT; + start = ubuf >> PAGE_SHIFT; + nr_pages = end - start; + + pages = kvmalloc_array(nr_pages, sizeof(struct page *), GFP_KERNEL); + if (!pages) + goto done; + + vmas = kvmalloc_array(nr_pages, sizeof(struct vm_area_struct *), + GFP_KERNEL); + if (!vmas) + goto done; + + ret = 0; + mmap_read_lock(current->mm); + pret = pin_user_pages(ubuf, nr_pages, FOLL_WRITE | FOLL_LONGTERM, + pages, vmas); + if (pret == nr_pages) { + /* don't support file backed memory */ + for (i = 0; i < nr_pages; i++) { + struct vm_area_struct *vma = vmas[i]; + + if (vma_is_shmem(vma)) + continue; + if (vma->vm_file && + !is_file_hugepages(vma->vm_file)) { + ret = -EOPNOTSUPP; + break; + } + } + *npages = nr_pages; + } else { + ret = pret < 0 ? pret : -EFAULT; + } + mmap_read_unlock(current->mm); + if (ret) { + /* + * if we did partial map, or found file backed vmas, + * release any pages we did get + */ + if (pret > 0) + unpin_user_pages(pages, pret); + goto done; + } + ret = 0; +done: + kvfree(vmas); + if (ret < 0) { + kvfree(pages); + pages = ERR_PTR(ret); + } + return pages; +} + +static int io_sqe_buffer_register(struct io_ring_ctx *ctx, struct iovec *iov, + struct io_mapped_ubuf **pimu, + struct page **last_hpage) +{ + struct io_mapped_ubuf *imu = NULL; + struct page **pages = NULL; + unsigned long off; + size_t size; + int ret, nr_pages, i; + + if (!iov->iov_base) { + *pimu = ctx->dummy_ubuf; + return 0; + } + + *pimu = NULL; + ret = -ENOMEM; + + pages = io_pin_pages((unsigned long) iov->iov_base, iov->iov_len, + &nr_pages); + if (IS_ERR(pages)) { + ret = PTR_ERR(pages); + pages = NULL; + goto done; + } + + imu = kvmalloc(struct_size(imu, bvec, nr_pages), GFP_KERNEL); + if (!imu) + goto done; + + ret = io_buffer_account_pin(ctx, pages, nr_pages, imu, last_hpage); + if (ret) { + unpin_user_pages(pages, nr_pages); + goto done; + } + + off = (unsigned long) iov->iov_base & ~PAGE_MASK; + size = iov->iov_len; + for (i = 0; i < nr_pages; i++) { + size_t vec_len; + + vec_len = min_t(size_t, size, PAGE_SIZE - off); + imu->bvec[i].bv_page = pages[i]; + imu->bvec[i].bv_len = vec_len; + imu->bvec[i].bv_offset = off; + off = 0; + size -= vec_len; + } + /* store original address for later verification */ + imu->ubuf = (unsigned long) iov->iov_base; + imu->ubuf_end = imu->ubuf + iov->iov_len; + imu->nr_bvecs = nr_pages; + *pimu = imu; + ret = 0; +done: + if (ret) + kvfree(imu); + kvfree(pages); + return ret; +} + +static int io_buffers_map_alloc(struct io_ring_ctx *ctx, unsigned int nr_args) +{ + ctx->user_bufs = kcalloc(nr_args, sizeof(*ctx->user_bufs), GFP_KERNEL); + return ctx->user_bufs ? 0 : -ENOMEM; +} + +static int io_buffer_validate(struct iovec *iov) +{ + unsigned long tmp, acct_len = iov->iov_len + (PAGE_SIZE - 1); + + /* + * Don't impose further limits on the size and buffer + * constraints here, we'll -EINVAL later when IO is + * submitted if they are wrong. + */ + if (!iov->iov_base) + return iov->iov_len ? -EFAULT : 0; + if (!iov->iov_len) + return -EFAULT; + + /* arbitrary limit, but we need something */ + if (iov->iov_len > SZ_1G) + return -EFAULT; + + if (check_add_overflow((unsigned long)iov->iov_base, acct_len, &tmp)) + return -EOVERFLOW; + + return 0; +} + +static int io_sqe_buffers_register(struct io_ring_ctx *ctx, void __user *arg, + unsigned int nr_args, u64 __user *tags) +{ + struct page *last_hpage = NULL; + struct io_rsrc_data *data; + int i, ret; + struct iovec iov; + + if (ctx->user_bufs) + return -EBUSY; + if (!nr_args || nr_args > IORING_MAX_REG_BUFFERS) + return -EINVAL; + ret = io_rsrc_node_switch_start(ctx); + if (ret) + return ret; + ret = io_rsrc_data_alloc(ctx, io_rsrc_buf_put, tags, nr_args, &data); + if (ret) + return ret; + ret = io_buffers_map_alloc(ctx, nr_args); + if (ret) { + io_rsrc_data_free(data); + return ret; + } + + for (i = 0; i < nr_args; i++, ctx->nr_user_bufs++) { + if (arg) { + ret = io_copy_iov(ctx, &iov, arg, i); + if (ret) + break; + ret = io_buffer_validate(&iov); + if (ret) + break; + } else { + memset(&iov, 0, sizeof(iov)); + } + + if (!iov.iov_base && *io_get_tag_slot(data, i)) { + ret = -EINVAL; + break; + } + + ret = io_sqe_buffer_register(ctx, &iov, &ctx->user_bufs[i], + &last_hpage); + if (ret) + break; + } + + WARN_ON_ONCE(ctx->buf_data); + + ctx->buf_data = data; + if (ret) + __io_sqe_buffers_unregister(ctx); + else + io_rsrc_node_switch(ctx, NULL); + return ret; +} + +static int __io_sqe_buffers_update(struct io_ring_ctx *ctx, + struct io_uring_rsrc_update2 *up, + unsigned int nr_args) +{ + u64 __user *tags = u64_to_user_ptr(up->tags); + struct iovec iov, __user *iovs = u64_to_user_ptr(up->data); + struct page *last_hpage = NULL; + bool needs_switch = false; + __u32 done; + int i, err; + + if (!ctx->buf_data) + return -ENXIO; + if (up->offset + nr_args > ctx->nr_user_bufs) + return -EINVAL; + + for (done = 0; done < nr_args; done++) { + struct io_mapped_ubuf *imu; + int offset = up->offset + done; + u64 tag = 0; + + err = io_copy_iov(ctx, &iov, iovs, done); + if (err) + break; + if (tags && copy_from_user(&tag, &tags[done], sizeof(tag))) { + err = -EFAULT; + break; + } + err = io_buffer_validate(&iov); + if (err) + break; + if (!iov.iov_base && tag) { + err = -EINVAL; + break; + } + err = io_sqe_buffer_register(ctx, &iov, &imu, &last_hpage); + if (err) + break; + + i = array_index_nospec(offset, ctx->nr_user_bufs); + if (ctx->user_bufs[i] != ctx->dummy_ubuf) { + err = io_queue_rsrc_removal(ctx->buf_data, i, + ctx->rsrc_node, ctx->user_bufs[i]); + if (unlikely(err)) { + io_buffer_unmap(ctx, &imu); + break; + } + ctx->user_bufs[i] = NULL; + needs_switch = true; + } + + ctx->user_bufs[i] = imu; + *io_get_tag_slot(ctx->buf_data, offset) = tag; + } + + if (needs_switch) + io_rsrc_node_switch(ctx, ctx->buf_data); + return done ? done : err; +} + +static int io_eventfd_register(struct io_ring_ctx *ctx, void __user *arg, + unsigned int eventfd_async) +{ + struct io_ev_fd *ev_fd; + __s32 __user *fds = arg; + int fd; + + ev_fd = rcu_dereference_protected(ctx->io_ev_fd, + lockdep_is_held(&ctx->uring_lock)); + if (ev_fd) + return -EBUSY; + + if (copy_from_user(&fd, fds, sizeof(*fds))) + return -EFAULT; + + ev_fd = kmalloc(sizeof(*ev_fd), GFP_KERNEL); + if (!ev_fd) + return -ENOMEM; + + ev_fd->cq_ev_fd = eventfd_ctx_fdget(fd); + if (IS_ERR(ev_fd->cq_ev_fd)) { + int ret = PTR_ERR(ev_fd->cq_ev_fd); + kfree(ev_fd); + return ret; + } + ev_fd->eventfd_async = eventfd_async; + ctx->has_evfd = true; + rcu_assign_pointer(ctx->io_ev_fd, ev_fd); + return 0; +} + +static void io_eventfd_put(struct rcu_head *rcu) +{ + struct io_ev_fd *ev_fd = container_of(rcu, struct io_ev_fd, rcu); + + eventfd_ctx_put(ev_fd->cq_ev_fd); + kfree(ev_fd); +} + +static int io_eventfd_unregister(struct io_ring_ctx *ctx) +{ + struct io_ev_fd *ev_fd; + + ev_fd = rcu_dereference_protected(ctx->io_ev_fd, + lockdep_is_held(&ctx->uring_lock)); + if (ev_fd) { + ctx->has_evfd = false; + rcu_assign_pointer(ctx->io_ev_fd, NULL); + call_rcu(&ev_fd->rcu, io_eventfd_put); + return 0; + } + + return -ENXIO; +} + +static void io_destroy_buffers(struct io_ring_ctx *ctx) +{ + struct io_buffer_list *bl; + unsigned long index; + int i; + + for (i = 0; i < BGID_ARRAY; i++) { + if (!ctx->io_bl) + break; + __io_remove_buffers(ctx, &ctx->io_bl[i], -1U); + } + + xa_for_each(&ctx->io_bl_xa, index, bl) { + xa_erase(&ctx->io_bl_xa, bl->bgid); + __io_remove_buffers(ctx, bl, -1U); + kfree(bl); + } + + while (!list_empty(&ctx->io_buffers_pages)) { + struct page *page; + + page = list_first_entry(&ctx->io_buffers_pages, struct page, lru); + list_del_init(&page->lru); + __free_page(page); + } +} + +static void io_req_caches_free(struct io_ring_ctx *ctx) +{ + struct io_submit_state *state = &ctx->submit_state; + int nr = 0; + + mutex_lock(&ctx->uring_lock); + io_flush_cached_locked_reqs(ctx, state); + + while (!io_req_cache_empty(ctx)) { + struct io_wq_work_node *node; + struct io_kiocb *req; + + node = wq_stack_extract(&state->free_list); + req = container_of(node, struct io_kiocb, comp_list); + kmem_cache_free(req_cachep, req); + nr++; + } + if (nr) + percpu_ref_put_many(&ctx->refs, nr); + mutex_unlock(&ctx->uring_lock); +} + +static void io_wait_rsrc_data(struct io_rsrc_data *data) +{ + if (data && !atomic_dec_and_test(&data->refs)) + wait_for_completion(&data->done); +} + +static void io_flush_apoll_cache(struct io_ring_ctx *ctx) +{ + struct async_poll *apoll; + + while (!list_empty(&ctx->apoll_cache)) { + apoll = list_first_entry(&ctx->apoll_cache, struct async_poll, + poll.wait.entry); + list_del(&apoll->poll.wait.entry); + kfree(apoll); + } +} + +static __cold void io_ring_ctx_free(struct io_ring_ctx *ctx) +{ + io_sq_thread_finish(ctx); + io_rsrc_refs_drop(ctx); + /* __io_rsrc_put_work() may need uring_lock to progress, wait w/o it */ + io_wait_rsrc_data(ctx->buf_data); + io_wait_rsrc_data(ctx->file_data); + + mutex_lock(&ctx->uring_lock); + if (ctx->buf_data) + __io_sqe_buffers_unregister(ctx); + if (ctx->file_data) + __io_sqe_files_unregister(ctx); + if (ctx->rings) + __io_cqring_overflow_flush(ctx, true); + io_eventfd_unregister(ctx); + io_flush_apoll_cache(ctx); + mutex_unlock(&ctx->uring_lock); + io_destroy_buffers(ctx); + if (ctx->sq_creds) + put_cred(ctx->sq_creds); + + /* there are no registered resources left, nobody uses it */ + if (ctx->rsrc_node) + io_rsrc_node_destroy(ctx->rsrc_node); + if (ctx->rsrc_backup_node) + io_rsrc_node_destroy(ctx->rsrc_backup_node); + flush_delayed_work(&ctx->rsrc_put_work); + flush_delayed_work(&ctx->fallback_work); + + WARN_ON_ONCE(!list_empty(&ctx->rsrc_ref_list)); + WARN_ON_ONCE(!llist_empty(&ctx->rsrc_put_llist)); + +#if defined(CONFIG_UNIX) + if (ctx->ring_sock) { + ctx->ring_sock->file = NULL; /* so that iput() is called */ + sock_release(ctx->ring_sock); + } +#endif + WARN_ON_ONCE(!list_empty(&ctx->ltimeout_list)); + + if (ctx->mm_account) { + mmdrop(ctx->mm_account); + ctx->mm_account = NULL; + } + io_mem_free(ctx->rings); + io_mem_free(ctx->sq_sqes); + + percpu_ref_exit(&ctx->refs); + free_uid(ctx->user); + io_req_caches_free(ctx); + if (ctx->hash_map) + io_wq_put_hash(ctx->hash_map); + kfree(ctx->cancel_hash); + kfree(ctx->dummy_ubuf); + kfree(ctx->io_bl); + xa_destroy(&ctx->io_bl_xa); + kfree(ctx); +} + +static __poll_t io_uring_poll(struct file *file, poll_table *wait) +{ + struct io_ring_ctx *ctx = file->private_data; + __poll_t mask = 0; + + poll_wait(file, &ctx->cq_wait, wait); + /* + * synchronizes with barrier from wq_has_sleeper call in + * io_commit_cqring + */ + smp_rmb(); + if (!io_sqring_full(ctx)) + mask |= EPOLLOUT | EPOLLWRNORM; + + /* + * Don't flush cqring overflow list here, just do a simple check. + * Otherwise there could possible be ABBA deadlock: + * CPU0 CPU1 + * ---- ---- + * lock(&ctx->uring_lock); + * lock(&ep->mtx); + * lock(&ctx->uring_lock); + * lock(&ep->mtx); + * + * Users may get EPOLLIN meanwhile seeing nothing in cqring, this + * pushs them to do the flush. + */ + if (io_cqring_events(ctx) || + test_bit(IO_CHECK_CQ_OVERFLOW_BIT, &ctx->check_cq)) + mask |= EPOLLIN | EPOLLRDNORM; + + return mask; +} + +static int io_unregister_personality(struct io_ring_ctx *ctx, unsigned id) +{ + const struct cred *creds; + + creds = xa_erase(&ctx->personalities, id); + if (creds) { + put_cred(creds); + return 0; + } + + return -EINVAL; +} + +struct io_tctx_exit { + struct callback_head task_work; + struct completion completion; + struct io_ring_ctx *ctx; +}; + +static __cold void io_tctx_exit_cb(struct callback_head *cb) +{ + struct io_uring_task *tctx = current->io_uring; + struct io_tctx_exit *work; + + work = container_of(cb, struct io_tctx_exit, task_work); + /* + * When @in_idle, we're in cancellation and it's racy to remove the + * node. It'll be removed by the end of cancellation, just ignore it. + * tctx can be NULL if the queueing of this task_work raced with + * work cancelation off the exec path. + */ + if (tctx && !atomic_read(&tctx->in_idle)) + io_uring_del_tctx_node((unsigned long)work->ctx); + complete(&work->completion); +} + +static __cold bool io_cancel_ctx_cb(struct io_wq_work *work, void *data) +{ + struct io_kiocb *req = container_of(work, struct io_kiocb, work); + + return req->ctx == data; +} + +static __cold void io_ring_exit_work(struct work_struct *work) +{ + struct io_ring_ctx *ctx = container_of(work, struct io_ring_ctx, exit_work); + unsigned long timeout = jiffies + HZ * 60 * 5; + unsigned long interval = HZ / 20; + struct io_tctx_exit exit; + struct io_tctx_node *node; + int ret; + + /* + * If we're doing polled IO and end up having requests being + * submitted async (out-of-line), then completions can come in while + * we're waiting for refs to drop. We need to reap these manually, + * as nobody else will be looking for them. + */ + do { + io_uring_try_cancel_requests(ctx, NULL, true); + if (ctx->sq_data) { + struct io_sq_data *sqd = ctx->sq_data; + struct task_struct *tsk; + + io_sq_thread_park(sqd); + tsk = sqd->thread; + if (tsk && tsk->io_uring && tsk->io_uring->io_wq) + io_wq_cancel_cb(tsk->io_uring->io_wq, + io_cancel_ctx_cb, ctx, true); + io_sq_thread_unpark(sqd); + } + + io_req_caches_free(ctx); + + if (WARN_ON_ONCE(time_after(jiffies, timeout))) { + /* there is little hope left, don't run it too often */ + interval = HZ * 60; + } + } while (!wait_for_completion_timeout(&ctx->ref_comp, interval)); + + init_completion(&exit.completion); + init_task_work(&exit.task_work, io_tctx_exit_cb); + exit.ctx = ctx; + /* + * Some may use context even when all refs and requests have been put, + * and they are free to do so while still holding uring_lock or + * completion_lock, see io_req_task_submit(). Apart from other work, + * this lock/unlock section also waits them to finish. + */ + mutex_lock(&ctx->uring_lock); + while (!list_empty(&ctx->tctx_list)) { + WARN_ON_ONCE(time_after(jiffies, timeout)); + + node = list_first_entry(&ctx->tctx_list, struct io_tctx_node, + ctx_node); + /* don't spin on a single task if cancellation failed */ + list_rotate_left(&ctx->tctx_list); + ret = task_work_add(node->task, &exit.task_work, TWA_SIGNAL); + if (WARN_ON_ONCE(ret)) + continue; + + mutex_unlock(&ctx->uring_lock); + wait_for_completion(&exit.completion); + mutex_lock(&ctx->uring_lock); + } + mutex_unlock(&ctx->uring_lock); + spin_lock(&ctx->completion_lock); + spin_unlock(&ctx->completion_lock); + + io_ring_ctx_free(ctx); +} + +/* Returns true if we found and killed one or more timeouts */ +static __cold bool io_kill_timeouts(struct io_ring_ctx *ctx, + struct task_struct *tsk, bool cancel_all) +{ + struct io_kiocb *req, *tmp; + int canceled = 0; + + spin_lock(&ctx->completion_lock); + spin_lock_irq(&ctx->timeout_lock); + list_for_each_entry_safe(req, tmp, &ctx->timeout_list, timeout.list) { + if (io_match_task(req, tsk, cancel_all)) { + io_kill_timeout(req, -ECANCELED); + canceled++; + } + } + spin_unlock_irq(&ctx->timeout_lock); + io_commit_cqring(ctx); + spin_unlock(&ctx->completion_lock); + if (canceled != 0) + io_cqring_ev_posted(ctx); + return canceled != 0; +} + +static __cold void io_ring_ctx_wait_and_kill(struct io_ring_ctx *ctx) +{ + unsigned long index; + struct creds *creds; + + mutex_lock(&ctx->uring_lock); + percpu_ref_kill(&ctx->refs); + if (ctx->rings) + __io_cqring_overflow_flush(ctx, true); + xa_for_each(&ctx->personalities, index, creds) + io_unregister_personality(ctx, index); + mutex_unlock(&ctx->uring_lock); + + /* failed during ring init, it couldn't have issued any requests */ + if (ctx->rings) { + io_kill_timeouts(ctx, NULL, true); + io_poll_remove_all(ctx, NULL, true); + /* if we failed setting up the ctx, we might not have any rings */ + io_iopoll_try_reap_events(ctx); + /* drop cached put refs after potentially doing completions */ + if (current->io_uring) + io_uring_drop_tctx_refs(current); + } + + INIT_WORK(&ctx->exit_work, io_ring_exit_work); + /* + * Use system_unbound_wq to avoid spawning tons of event kworkers + * if we're exiting a ton of rings at the same time. It just adds + * noise and overhead, there's no discernable change in runtime + * over using system_wq. + */ + queue_work(system_unbound_wq, &ctx->exit_work); +} + +static int io_uring_release(struct inode *inode, struct file *file) +{ + struct io_ring_ctx *ctx = file->private_data; + + file->private_data = NULL; + io_ring_ctx_wait_and_kill(ctx); + return 0; +} + +struct io_task_cancel { + struct task_struct *task; + bool all; +}; + +static bool io_cancel_task_cb(struct io_wq_work *work, void *data) +{ + struct io_kiocb *req = container_of(work, struct io_kiocb, work); + struct io_task_cancel *cancel = data; + + return io_match_task_safe(req, cancel->task, cancel->all); +} + +static __cold bool io_cancel_defer_files(struct io_ring_ctx *ctx, + struct task_struct *task, + bool cancel_all) +{ + struct io_defer_entry *de; + LIST_HEAD(list); + + spin_lock(&ctx->completion_lock); + list_for_each_entry_reverse(de, &ctx->defer_list, list) { + if (io_match_task_safe(de->req, task, cancel_all)) { + list_cut_position(&list, &ctx->defer_list, &de->list); + break; + } + } + spin_unlock(&ctx->completion_lock); + if (list_empty(&list)) + return false; + + while (!list_empty(&list)) { + de = list_first_entry(&list, struct io_defer_entry, list); + list_del_init(&de->list); + io_req_complete_failed(de->req, -ECANCELED); + kfree(de); + } + return true; +} + +static __cold bool io_uring_try_cancel_iowq(struct io_ring_ctx *ctx) +{ + struct io_tctx_node *node; + enum io_wq_cancel cret; + bool ret = false; + + mutex_lock(&ctx->uring_lock); + list_for_each_entry(node, &ctx->tctx_list, ctx_node) { + struct io_uring_task *tctx = node->task->io_uring; + + /* + * io_wq will stay alive while we hold uring_lock, because it's + * killed after ctx nodes, which requires to take the lock. + */ + if (!tctx || !tctx->io_wq) + continue; + cret = io_wq_cancel_cb(tctx->io_wq, io_cancel_ctx_cb, ctx, true); + ret |= (cret != IO_WQ_CANCEL_NOTFOUND); + } + mutex_unlock(&ctx->uring_lock); + + return ret; +} + +static __cold void io_uring_try_cancel_requests(struct io_ring_ctx *ctx, + struct task_struct *task, + bool cancel_all) +{ + struct io_task_cancel cancel = { .task = task, .all = cancel_all, }; + struct io_uring_task *tctx = task ? task->io_uring : NULL; + + /* failed during ring init, it couldn't have issued any requests */ + if (!ctx->rings) + return; + + while (1) { + enum io_wq_cancel cret; + bool ret = false; + + if (!task) { + ret |= io_uring_try_cancel_iowq(ctx); + } else if (tctx && tctx->io_wq) { + /* + * Cancels requests of all rings, not only @ctx, but + * it's fine as the task is in exit/exec. + */ + cret = io_wq_cancel_cb(tctx->io_wq, io_cancel_task_cb, + &cancel, true); + ret |= (cret != IO_WQ_CANCEL_NOTFOUND); + } + + /* SQPOLL thread does its own polling */ + if ((!(ctx->flags & IORING_SETUP_SQPOLL) && cancel_all) || + (ctx->sq_data && ctx->sq_data->thread == current)) { + while (!wq_list_empty(&ctx->iopoll_list)) { + io_iopoll_try_reap_events(ctx); + ret = true; + } + } + + ret |= io_cancel_defer_files(ctx, task, cancel_all); + ret |= io_poll_remove_all(ctx, task, cancel_all); + ret |= io_kill_timeouts(ctx, task, cancel_all); + if (task) + ret |= io_run_task_work(); + if (!ret) + break; + cond_resched(); + } +} + +static int __io_uring_add_tctx_node(struct io_ring_ctx *ctx) +{ + struct io_uring_task *tctx = current->io_uring; + struct io_tctx_node *node; + int ret; + + if (unlikely(!tctx)) { + ret = io_uring_alloc_task_context(current, ctx); + if (unlikely(ret)) + return ret; + + tctx = current->io_uring; + if (ctx->iowq_limits_set) { + unsigned int limits[2] = { ctx->iowq_limits[0], + ctx->iowq_limits[1], }; + + ret = io_wq_max_workers(tctx->io_wq, limits); + if (ret) + return ret; + } + } + if (!xa_load(&tctx->xa, (unsigned long)ctx)) { + node = kmalloc(sizeof(*node), GFP_KERNEL); + if (!node) + return -ENOMEM; + node->ctx = ctx; + node->task = current; + + ret = xa_err(xa_store(&tctx->xa, (unsigned long)ctx, + node, GFP_KERNEL)); + if (ret) { + kfree(node); + return ret; + } + + mutex_lock(&ctx->uring_lock); + list_add(&node->ctx_node, &ctx->tctx_list); + mutex_unlock(&ctx->uring_lock); + } + tctx->last = ctx; + return 0; +} + +/* + * Note that this task has used io_uring. We use it for cancelation purposes. + */ +static inline int io_uring_add_tctx_node(struct io_ring_ctx *ctx) +{ + struct io_uring_task *tctx = current->io_uring; + + if (likely(tctx && tctx->last == ctx)) + return 0; + return __io_uring_add_tctx_node(ctx); +} + +/* + * Remove this io_uring_file -> task mapping. + */ +static __cold void io_uring_del_tctx_node(unsigned long index) +{ + struct io_uring_task *tctx = current->io_uring; + struct io_tctx_node *node; + + if (!tctx) + return; + node = xa_erase(&tctx->xa, index); + if (!node) + return; + + WARN_ON_ONCE(current != node->task); + WARN_ON_ONCE(list_empty(&node->ctx_node)); + + mutex_lock(&node->ctx->uring_lock); + list_del(&node->ctx_node); + mutex_unlock(&node->ctx->uring_lock); + + if (tctx->last == node->ctx) + tctx->last = NULL; + kfree(node); +} + +static __cold void io_uring_clean_tctx(struct io_uring_task *tctx) +{ + struct io_wq *wq = tctx->io_wq; + struct io_tctx_node *node; + unsigned long index; + + xa_for_each(&tctx->xa, index, node) { + io_uring_del_tctx_node(index); + cond_resched(); + } + if (wq) { + /* + * Must be after io_uring_del_tctx_node() (removes nodes under + * uring_lock) to avoid race with io_uring_try_cancel_iowq(). + */ + io_wq_put_and_exit(wq); + tctx->io_wq = NULL; + } +} + +static s64 tctx_inflight(struct io_uring_task *tctx, bool tracked) +{ + if (tracked) + return atomic_read(&tctx->inflight_tracked); + return percpu_counter_sum(&tctx->inflight); +} + +/* + * Find any io_uring ctx that this task has registered or done IO on, and cancel + * requests. @sqd should be not-null IFF it's an SQPOLL thread cancellation. + */ +static __cold void io_uring_cancel_generic(bool cancel_all, + struct io_sq_data *sqd) +{ + struct io_uring_task *tctx = current->io_uring; + struct io_ring_ctx *ctx; + s64 inflight; + DEFINE_WAIT(wait); + + WARN_ON_ONCE(sqd && sqd->thread != current); + + if (!current->io_uring) + return; + if (tctx->io_wq) + io_wq_exit_start(tctx->io_wq); + + atomic_inc(&tctx->in_idle); + do { + io_uring_drop_tctx_refs(current); + /* read completions before cancelations */ + inflight = tctx_inflight(tctx, !cancel_all); + if (!inflight) + break; + + if (!sqd) { + struct io_tctx_node *node; + unsigned long index; + + xa_for_each(&tctx->xa, index, node) { + /* sqpoll task will cancel all its requests */ + if (node->ctx->sq_data) + continue; + io_uring_try_cancel_requests(node->ctx, current, + cancel_all); + } + } else { + list_for_each_entry(ctx, &sqd->ctx_list, sqd_list) + io_uring_try_cancel_requests(ctx, current, + cancel_all); + } + + prepare_to_wait(&tctx->wait, &wait, TASK_INTERRUPTIBLE); + io_run_task_work(); + io_uring_drop_tctx_refs(current); + + /* + * If we've seen completions, retry without waiting. This + * avoids a race where a completion comes in before we did + * prepare_to_wait(). + */ + if (inflight == tctx_inflight(tctx, !cancel_all)) + schedule(); + finish_wait(&tctx->wait, &wait); + } while (1); + + io_uring_clean_tctx(tctx); + if (cancel_all) { + /* + * We shouldn't run task_works after cancel, so just leave + * ->in_idle set for normal exit. + */ + atomic_dec(&tctx->in_idle); + /* for exec all current's requests should be gone, kill tctx */ + __io_uring_free(current); + } +} + +void __io_uring_cancel(bool cancel_all) +{ + io_uring_cancel_generic(cancel_all, NULL); +} + +void io_uring_unreg_ringfd(void) +{ + struct io_uring_task *tctx = current->io_uring; + int i; + + for (i = 0; i < IO_RINGFD_REG_MAX; i++) { + if (tctx->registered_rings[i]) { + fput(tctx->registered_rings[i]); + tctx->registered_rings[i] = NULL; + } + } +} + +static int io_ring_add_registered_fd(struct io_uring_task *tctx, int fd, + int start, int end) +{ + struct file *file; + int offset; + + for (offset = start; offset < end; offset++) { + offset = array_index_nospec(offset, IO_RINGFD_REG_MAX); + if (tctx->registered_rings[offset]) + continue; + + file = fget(fd); + if (!file) { + return -EBADF; + } else if (file->f_op != &io_uring_fops) { + fput(file); + return -EOPNOTSUPP; + } + tctx->registered_rings[offset] = file; + return offset; + } + + return -EBUSY; +} + +/* + * Register a ring fd to avoid fdget/fdput for each io_uring_enter() + * invocation. User passes in an array of struct io_uring_rsrc_update + * with ->data set to the ring_fd, and ->offset given for the desired + * index. If no index is desired, application may set ->offset == -1U + * and we'll find an available index. Returns number of entries + * successfully processed, or < 0 on error if none were processed. + */ +static int io_ringfd_register(struct io_ring_ctx *ctx, void __user *__arg, + unsigned nr_args) +{ + struct io_uring_rsrc_update __user *arg = __arg; + struct io_uring_rsrc_update reg; + struct io_uring_task *tctx; + int ret, i; + + if (!nr_args || nr_args > IO_RINGFD_REG_MAX) + return -EINVAL; + + mutex_unlock(&ctx->uring_lock); + ret = io_uring_add_tctx_node(ctx); + mutex_lock(&ctx->uring_lock); + if (ret) + return ret; + + tctx = current->io_uring; + for (i = 0; i < nr_args; i++) { + int start, end; + + if (copy_from_user(®, &arg[i], sizeof(reg))) { + ret = -EFAULT; + break; + } + + if (reg.resv) { + ret = -EINVAL; + break; + } + + if (reg.offset == -1U) { + start = 0; + end = IO_RINGFD_REG_MAX; + } else { + if (reg.offset >= IO_RINGFD_REG_MAX) { + ret = -EINVAL; + break; + } + start = reg.offset; + end = start + 1; + } + + ret = io_ring_add_registered_fd(tctx, reg.data, start, end); + if (ret < 0) + break; + + reg.offset = ret; + if (copy_to_user(&arg[i], ®, sizeof(reg))) { + fput(tctx->registered_rings[reg.offset]); + tctx->registered_rings[reg.offset] = NULL; + ret = -EFAULT; + break; + } + } + + return i ? i : ret; +} + +static int io_ringfd_unregister(struct io_ring_ctx *ctx, void __user *__arg, + unsigned nr_args) +{ + struct io_uring_rsrc_update __user *arg = __arg; + struct io_uring_task *tctx = current->io_uring; + struct io_uring_rsrc_update reg; + int ret = 0, i; + + if (!nr_args || nr_args > IO_RINGFD_REG_MAX) + return -EINVAL; + if (!tctx) + return 0; + + for (i = 0; i < nr_args; i++) { + if (copy_from_user(®, &arg[i], sizeof(reg))) { + ret = -EFAULT; + break; + } + if (reg.resv || reg.data || reg.offset >= IO_RINGFD_REG_MAX) { + ret = -EINVAL; + break; + } + + reg.offset = array_index_nospec(reg.offset, IO_RINGFD_REG_MAX); + if (tctx->registered_rings[reg.offset]) { + fput(tctx->registered_rings[reg.offset]); + tctx->registered_rings[reg.offset] = NULL; + } + } + + return i ? i : ret; +} + +static void *io_uring_validate_mmap_request(struct file *file, + loff_t pgoff, size_t sz) +{ + struct io_ring_ctx *ctx = file->private_data; + loff_t offset = pgoff << PAGE_SHIFT; + struct page *page; + void *ptr; + + switch (offset) { + case IORING_OFF_SQ_RING: + case IORING_OFF_CQ_RING: + ptr = ctx->rings; + break; + case IORING_OFF_SQES: + ptr = ctx->sq_sqes; + break; + default: + return ERR_PTR(-EINVAL); + } + + page = virt_to_head_page(ptr); + if (sz > page_size(page)) + return ERR_PTR(-EINVAL); + + return ptr; +} + +#ifdef CONFIG_MMU + +static __cold int io_uring_mmap(struct file *file, struct vm_area_struct *vma) +{ + size_t sz = vma->vm_end - vma->vm_start; + unsigned long pfn; + void *ptr; + + ptr = io_uring_validate_mmap_request(file, vma->vm_pgoff, sz); + if (IS_ERR(ptr)) + return PTR_ERR(ptr); + + pfn = virt_to_phys(ptr) >> PAGE_SHIFT; + return remap_pfn_range(vma, vma->vm_start, pfn, sz, vma->vm_page_prot); +} + +#else /* !CONFIG_MMU */ + +static int io_uring_mmap(struct file *file, struct vm_area_struct *vma) +{ + return vma->vm_flags & (VM_SHARED | VM_MAYSHARE) ? 0 : -EINVAL; +} + +static unsigned int io_uring_nommu_mmap_capabilities(struct file *file) +{ + return NOMMU_MAP_DIRECT | NOMMU_MAP_READ | NOMMU_MAP_WRITE; +} + +static unsigned long io_uring_nommu_get_unmapped_area(struct file *file, + unsigned long addr, unsigned long len, + unsigned long pgoff, unsigned long flags) +{ + void *ptr; + + ptr = io_uring_validate_mmap_request(file, pgoff, len); + if (IS_ERR(ptr)) + return PTR_ERR(ptr); + + return (unsigned long) ptr; +} + +#endif /* !CONFIG_MMU */ + +static int io_sqpoll_wait_sq(struct io_ring_ctx *ctx) +{ + DEFINE_WAIT(wait); + + do { + if (!io_sqring_full(ctx)) + break; + prepare_to_wait(&ctx->sqo_sq_wait, &wait, TASK_INTERRUPTIBLE); + + if (!io_sqring_full(ctx)) + break; + schedule(); + } while (!signal_pending(current)); + + finish_wait(&ctx->sqo_sq_wait, &wait); + return 0; +} + +static int io_validate_ext_arg(unsigned flags, const void __user *argp, size_t argsz) +{ + if (flags & IORING_ENTER_EXT_ARG) { + struct io_uring_getevents_arg arg; + + if (argsz != sizeof(arg)) + return -EINVAL; + if (copy_from_user(&arg, argp, sizeof(arg))) + return -EFAULT; + } + return 0; +} + +static int io_get_ext_arg(unsigned flags, const void __user *argp, size_t *argsz, + struct __kernel_timespec __user **ts, + const sigset_t __user **sig) +{ + struct io_uring_getevents_arg arg; + + /* + * If EXT_ARG isn't set, then we have no timespec and the argp pointer + * is just a pointer to the sigset_t. + */ + if (!(flags & IORING_ENTER_EXT_ARG)) { + *sig = (const sigset_t __user *) argp; + *ts = NULL; + return 0; + } + + /* + * EXT_ARG is set - ensure we agree on the size of it and copy in our + * timespec and sigset_t pointers if good. + */ + if (*argsz != sizeof(arg)) + return -EINVAL; + if (copy_from_user(&arg, argp, sizeof(arg))) + return -EFAULT; + if (arg.pad) + return -EINVAL; + *sig = u64_to_user_ptr(arg.sigmask); + *argsz = arg.sigmask_sz; + *ts = u64_to_user_ptr(arg.ts); + return 0; +} + +SYSCALL_DEFINE6(io_uring_enter, unsigned int, fd, u32, to_submit, + u32, min_complete, u32, flags, const void __user *, argp, + size_t, argsz) +{ + struct io_ring_ctx *ctx; + struct fd f; + long ret; + + io_run_task_work(); + + if (unlikely(flags & ~(IORING_ENTER_GETEVENTS | IORING_ENTER_SQ_WAKEUP | + IORING_ENTER_SQ_WAIT | IORING_ENTER_EXT_ARG | + IORING_ENTER_REGISTERED_RING))) + return -EINVAL; + + /* + * Ring fd has been registered via IORING_REGISTER_RING_FDS, we + * need only dereference our task private array to find it. + */ + if (flags & IORING_ENTER_REGISTERED_RING) { + struct io_uring_task *tctx = current->io_uring; + + if (!tctx || fd >= IO_RINGFD_REG_MAX) + return -EINVAL; + fd = array_index_nospec(fd, IO_RINGFD_REG_MAX); + f.file = tctx->registered_rings[fd]; + f.flags = 0; + } else { + f = fdget(fd); + } + + if (unlikely(!f.file)) + return -EBADF; + + ret = -EOPNOTSUPP; + if (unlikely(f.file->f_op != &io_uring_fops)) + goto out_fput; + + ret = -ENXIO; + ctx = f.file->private_data; + if (unlikely(!percpu_ref_tryget(&ctx->refs))) + goto out_fput; + + ret = -EBADFD; + if (unlikely(ctx->flags & IORING_SETUP_R_DISABLED)) + goto out; + + /* + * For SQ polling, the thread will do all submissions and completions. + * Just return the requested submit count, and wake the thread if + * we were asked to. + */ + ret = 0; + if (ctx->flags & IORING_SETUP_SQPOLL) { + io_cqring_overflow_flush(ctx); + + if (unlikely(ctx->sq_data->thread == NULL)) { + ret = -EOWNERDEAD; + goto out; + } + if (flags & IORING_ENTER_SQ_WAKEUP) + wake_up(&ctx->sq_data->wait); + if (flags & IORING_ENTER_SQ_WAIT) { + ret = io_sqpoll_wait_sq(ctx); + if (ret) + goto out; + } + ret = to_submit; + } else if (to_submit) { + ret = io_uring_add_tctx_node(ctx); + if (unlikely(ret)) + goto out; + + mutex_lock(&ctx->uring_lock); + ret = io_submit_sqes(ctx, to_submit); + if (ret != to_submit) { + mutex_unlock(&ctx->uring_lock); + goto out; + } + if ((flags & IORING_ENTER_GETEVENTS) && ctx->syscall_iopoll) + goto iopoll_locked; + mutex_unlock(&ctx->uring_lock); + } + if (flags & IORING_ENTER_GETEVENTS) { + int ret2; + if (ctx->syscall_iopoll) { + /* + * We disallow the app entering submit/complete with + * polling, but we still need to lock the ring to + * prevent racing with polled issue that got punted to + * a workqueue. + */ + mutex_lock(&ctx->uring_lock); +iopoll_locked: + ret2 = io_validate_ext_arg(flags, argp, argsz); + if (likely(!ret2)) { + min_complete = min(min_complete, + ctx->cq_entries); + ret2 = io_iopoll_check(ctx, min_complete); + } + mutex_unlock(&ctx->uring_lock); + } else { + const sigset_t __user *sig; + struct __kernel_timespec __user *ts; + + ret2 = io_get_ext_arg(flags, argp, &argsz, &ts, &sig); + if (likely(!ret2)) { + min_complete = min(min_complete, + ctx->cq_entries); + ret2 = io_cqring_wait(ctx, min_complete, sig, + argsz, ts); + } + } + + if (!ret) { + ret = ret2; + + /* + * EBADR indicates that one or more CQE were dropped. + * Once the user has been informed we can clear the bit + * as they are obviously ok with those drops. + */ + if (unlikely(ret2 == -EBADR)) + clear_bit(IO_CHECK_CQ_DROPPED_BIT, + &ctx->check_cq); + } + } + +out: + percpu_ref_put(&ctx->refs); +out_fput: + fdput(f); + return ret; +} + +#ifdef CONFIG_PROC_FS +static __cold int io_uring_show_cred(struct seq_file *m, unsigned int id, + const struct cred *cred) +{ + struct user_namespace *uns = seq_user_ns(m); + struct group_info *gi; + kernel_cap_t cap; + unsigned __capi; + int g; + + seq_printf(m, "%5d\n", id); + seq_put_decimal_ull(m, "\tUid:\t", from_kuid_munged(uns, cred->uid)); + seq_put_decimal_ull(m, "\t\t", from_kuid_munged(uns, cred->euid)); + seq_put_decimal_ull(m, "\t\t", from_kuid_munged(uns, cred->suid)); + seq_put_decimal_ull(m, "\t\t", from_kuid_munged(uns, cred->fsuid)); + seq_put_decimal_ull(m, "\n\tGid:\t", from_kgid_munged(uns, cred->gid)); + seq_put_decimal_ull(m, "\t\t", from_kgid_munged(uns, cred->egid)); + seq_put_decimal_ull(m, "\t\t", from_kgid_munged(uns, cred->sgid)); + seq_put_decimal_ull(m, "\t\t", from_kgid_munged(uns, cred->fsgid)); + seq_puts(m, "\n\tGroups:\t"); + gi = cred->group_info; + for (g = 0; g < gi->ngroups; g++) { + seq_put_decimal_ull(m, g ? " " : "", + from_kgid_munged(uns, gi->gid[g])); + } + seq_puts(m, "\n\tCapEff:\t"); + cap = cred->cap_effective; + CAP_FOR_EACH_U32(__capi) + seq_put_hex_ll(m, NULL, cap.cap[CAP_LAST_U32 - __capi], 8); + seq_putc(m, '\n'); + return 0; +} + +static __cold void __io_uring_show_fdinfo(struct io_ring_ctx *ctx, + struct seq_file *m) +{ + struct io_sq_data *sq = NULL; + struct io_overflow_cqe *ocqe; + struct io_rings *r = ctx->rings; + unsigned int sq_mask = ctx->sq_entries - 1, cq_mask = ctx->cq_entries - 1; + unsigned int sq_head = READ_ONCE(r->sq.head); + unsigned int sq_tail = READ_ONCE(r->sq.tail); + unsigned int cq_head = READ_ONCE(r->cq.head); + unsigned int cq_tail = READ_ONCE(r->cq.tail); + unsigned int cq_shift = 0; + unsigned int sq_entries, cq_entries; + bool has_lock; + bool is_cqe32 = (ctx->flags & IORING_SETUP_CQE32); + unsigned int i; + + if (is_cqe32) + cq_shift = 1; + + /* + * we may get imprecise sqe and cqe info if uring is actively running + * since we get cached_sq_head and cached_cq_tail without uring_lock + * and sq_tail and cq_head are changed by userspace. But it's ok since + * we usually use these info when it is stuck. + */ + seq_printf(m, "SqMask:\t0x%x\n", sq_mask); + seq_printf(m, "SqHead:\t%u\n", sq_head); + seq_printf(m, "SqTail:\t%u\n", sq_tail); + seq_printf(m, "CachedSqHead:\t%u\n", ctx->cached_sq_head); + seq_printf(m, "CqMask:\t0x%x\n", cq_mask); + seq_printf(m, "CqHead:\t%u\n", cq_head); + seq_printf(m, "CqTail:\t%u\n", cq_tail); + seq_printf(m, "CachedCqTail:\t%u\n", ctx->cached_cq_tail); + seq_printf(m, "SQEs:\t%u\n", sq_tail - ctx->cached_sq_head); + sq_entries = min(sq_tail - sq_head, ctx->sq_entries); + for (i = 0; i < sq_entries; i++) { + unsigned int entry = i + sq_head; + unsigned int sq_idx = READ_ONCE(ctx->sq_array[entry & sq_mask]); + struct io_uring_sqe *sqe; + + if (sq_idx > sq_mask) + continue; + sqe = &ctx->sq_sqes[sq_idx]; + seq_printf(m, "%5u: opcode:%d, fd:%d, flags:%x, user_data:%llu\n", + sq_idx, sqe->opcode, sqe->fd, sqe->flags, + sqe->user_data); + } + seq_printf(m, "CQEs:\t%u\n", cq_tail - cq_head); + cq_entries = min(cq_tail - cq_head, ctx->cq_entries); + for (i = 0; i < cq_entries; i++) { + unsigned int entry = i + cq_head; + struct io_uring_cqe *cqe = &r->cqes[(entry & cq_mask) << cq_shift]; + + if (!is_cqe32) { + seq_printf(m, "%5u: user_data:%llu, res:%d, flag:%x\n", + entry & cq_mask, cqe->user_data, cqe->res, + cqe->flags); + } else { + seq_printf(m, "%5u: user_data:%llu, res:%d, flag:%x, " + "extra1:%llu, extra2:%llu\n", + entry & cq_mask, cqe->user_data, cqe->res, + cqe->flags, cqe->big_cqe[0], cqe->big_cqe[1]); + } + } + + /* + * Avoid ABBA deadlock between the seq lock and the io_uring mutex, + * since fdinfo case grabs it in the opposite direction of normal use + * cases. If we fail to get the lock, we just don't iterate any + * structures that could be going away outside the io_uring mutex. + */ + has_lock = mutex_trylock(&ctx->uring_lock); + + if (has_lock && (ctx->flags & IORING_SETUP_SQPOLL)) { + sq = ctx->sq_data; + if (!sq->thread) + sq = NULL; + } + + seq_printf(m, "SqThread:\t%d\n", sq ? task_pid_nr(sq->thread) : -1); + seq_printf(m, "SqThreadCpu:\t%d\n", sq ? task_cpu(sq->thread) : -1); + seq_printf(m, "UserFiles:\t%u\n", ctx->nr_user_files); + for (i = 0; has_lock && i < ctx->nr_user_files; i++) { + struct file *f = io_file_from_index(ctx, i); + + if (f) + seq_printf(m, "%5u: %s\n", i, file_dentry(f)->d_iname); + else + seq_printf(m, "%5u: \n", i); + } + seq_printf(m, "UserBufs:\t%u\n", ctx->nr_user_bufs); + for (i = 0; has_lock && i < ctx->nr_user_bufs; i++) { + struct io_mapped_ubuf *buf = ctx->user_bufs[i]; + unsigned int len = buf->ubuf_end - buf->ubuf; + + seq_printf(m, "%5u: 0x%llx/%u\n", i, buf->ubuf, len); + } + if (has_lock && !xa_empty(&ctx->personalities)) { + unsigned long index; + const struct cred *cred; + + seq_printf(m, "Personalities:\n"); + xa_for_each(&ctx->personalities, index, cred) + io_uring_show_cred(m, index, cred); + } + if (has_lock) + mutex_unlock(&ctx->uring_lock); + + seq_puts(m, "PollList:\n"); + spin_lock(&ctx->completion_lock); + for (i = 0; i < (1U << ctx->cancel_hash_bits); i++) { + struct hlist_head *list = &ctx->cancel_hash[i]; + struct io_kiocb *req; + + hlist_for_each_entry(req, list, hash_node) + seq_printf(m, " op=%d, task_works=%d\n", req->opcode, + task_work_pending(req->task)); + } + + seq_puts(m, "CqOverflowList:\n"); + list_for_each_entry(ocqe, &ctx->cq_overflow_list, list) { + struct io_uring_cqe *cqe = &ocqe->cqe; + + seq_printf(m, " user_data=%llu, res=%d, flags=%x\n", + cqe->user_data, cqe->res, cqe->flags); + + } + + spin_unlock(&ctx->completion_lock); +} + +static __cold void io_uring_show_fdinfo(struct seq_file *m, struct file *f) +{ + struct io_ring_ctx *ctx = f->private_data; + + if (percpu_ref_tryget(&ctx->refs)) { + __io_uring_show_fdinfo(ctx, m); + percpu_ref_put(&ctx->refs); + } +} +#endif + +static const struct file_operations io_uring_fops = { + .release = io_uring_release, + .mmap = io_uring_mmap, +#ifndef CONFIG_MMU + .get_unmapped_area = io_uring_nommu_get_unmapped_area, + .mmap_capabilities = io_uring_nommu_mmap_capabilities, +#endif + .poll = io_uring_poll, +#ifdef CONFIG_PROC_FS + .show_fdinfo = io_uring_show_fdinfo, +#endif +}; + +static __cold int io_allocate_scq_urings(struct io_ring_ctx *ctx, + struct io_uring_params *p) +{ + struct io_rings *rings; + size_t size, sq_array_offset; + + /* make sure these are sane, as we already accounted them */ + ctx->sq_entries = p->sq_entries; + ctx->cq_entries = p->cq_entries; + + size = rings_size(ctx, p->sq_entries, p->cq_entries, &sq_array_offset); + if (size == SIZE_MAX) + return -EOVERFLOW; + + rings = io_mem_alloc(size); + if (!rings) + return -ENOMEM; + + ctx->rings = rings; + ctx->sq_array = (u32 *)((char *)rings + sq_array_offset); + rings->sq_ring_mask = p->sq_entries - 1; + rings->cq_ring_mask = p->cq_entries - 1; + rings->sq_ring_entries = p->sq_entries; + rings->cq_ring_entries = p->cq_entries; + + if (p->flags & IORING_SETUP_SQE128) + size = array_size(2 * sizeof(struct io_uring_sqe), p->sq_entries); + else + size = array_size(sizeof(struct io_uring_sqe), p->sq_entries); + if (size == SIZE_MAX) { + io_mem_free(ctx->rings); + ctx->rings = NULL; + return -EOVERFLOW; + } + + ctx->sq_sqes = io_mem_alloc(size); + if (!ctx->sq_sqes) { + io_mem_free(ctx->rings); + ctx->rings = NULL; + return -ENOMEM; + } + + return 0; +} + +static int io_uring_install_fd(struct io_ring_ctx *ctx, struct file *file) +{ + int ret, fd; + + fd = get_unused_fd_flags(O_RDWR | O_CLOEXEC); + if (fd < 0) + return fd; + + ret = io_uring_add_tctx_node(ctx); + if (ret) { + put_unused_fd(fd); + return ret; + } + fd_install(fd, file); + return fd; +} + +/* + * Allocate an anonymous fd, this is what constitutes the application + * visible backing of an io_uring instance. The application mmaps this + * fd to gain access to the SQ/CQ ring details. If UNIX sockets are enabled, + * we have to tie this fd to a socket for file garbage collection purposes. + */ +static struct file *io_uring_get_file(struct io_ring_ctx *ctx) +{ + struct file *file; +#if defined(CONFIG_UNIX) + int ret; + + ret = sock_create_kern(&init_net, PF_UNIX, SOCK_RAW, IPPROTO_IP, + &ctx->ring_sock); + if (ret) + return ERR_PTR(ret); +#endif + + file = anon_inode_getfile_secure("[io_uring]", &io_uring_fops, ctx, + O_RDWR | O_CLOEXEC, NULL); +#if defined(CONFIG_UNIX) + if (IS_ERR(file)) { + sock_release(ctx->ring_sock); + ctx->ring_sock = NULL; + } else { + ctx->ring_sock->file = file; + } +#endif + return file; +} + +static __cold int io_uring_create(unsigned entries, struct io_uring_params *p, + struct io_uring_params __user *params) +{ + struct io_ring_ctx *ctx; + struct file *file; + int ret; + + if (!entries) + return -EINVAL; + if (entries > IORING_MAX_ENTRIES) { + if (!(p->flags & IORING_SETUP_CLAMP)) + return -EINVAL; + entries = IORING_MAX_ENTRIES; + } + + /* + * Use twice as many entries for the CQ ring. It's possible for the + * application to drive a higher depth than the size of the SQ ring, + * since the sqes are only used at submission time. This allows for + * some flexibility in overcommitting a bit. If the application has + * set IORING_SETUP_CQSIZE, it will have passed in the desired number + * of CQ ring entries manually. + */ + p->sq_entries = roundup_pow_of_two(entries); + if (p->flags & IORING_SETUP_CQSIZE) { + /* + * If IORING_SETUP_CQSIZE is set, we do the same roundup + * to a power-of-two, if it isn't already. We do NOT impose + * any cq vs sq ring sizing. + */ + if (!p->cq_entries) + return -EINVAL; + if (p->cq_entries > IORING_MAX_CQ_ENTRIES) { + if (!(p->flags & IORING_SETUP_CLAMP)) + return -EINVAL; + p->cq_entries = IORING_MAX_CQ_ENTRIES; + } + p->cq_entries = roundup_pow_of_two(p->cq_entries); + if (p->cq_entries < p->sq_entries) + return -EINVAL; + } else { + p->cq_entries = 2 * p->sq_entries; + } + + ctx = io_ring_ctx_alloc(p); + if (!ctx) + return -ENOMEM; + + /* + * When SETUP_IOPOLL and SETUP_SQPOLL are both enabled, user + * space applications don't need to do io completion events + * polling again, they can rely on io_sq_thread to do polling + * work, which can reduce cpu usage and uring_lock contention. + */ + if (ctx->flags & IORING_SETUP_IOPOLL && + !(ctx->flags & IORING_SETUP_SQPOLL)) + ctx->syscall_iopoll = 1; + + ctx->compat = in_compat_syscall(); + if (!capable(CAP_IPC_LOCK)) + ctx->user = get_uid(current_user()); + + /* + * For SQPOLL, we just need a wakeup, always. For !SQPOLL, if + * COOP_TASKRUN is set, then IPIs are never needed by the app. + */ + ret = -EINVAL; + if (ctx->flags & IORING_SETUP_SQPOLL) { + /* IPI related flags don't make sense with SQPOLL */ + if (ctx->flags & (IORING_SETUP_COOP_TASKRUN | + IORING_SETUP_TASKRUN_FLAG)) + goto err; + ctx->notify_method = TWA_SIGNAL_NO_IPI; + } else if (ctx->flags & IORING_SETUP_COOP_TASKRUN) { + ctx->notify_method = TWA_SIGNAL_NO_IPI; + } else { + if (ctx->flags & IORING_SETUP_TASKRUN_FLAG) + goto err; + ctx->notify_method = TWA_SIGNAL; + } + + /* + * This is just grabbed for accounting purposes. When a process exits, + * the mm is exited and dropped before the files, hence we need to hang + * on to this mm purely for the purposes of being able to unaccount + * memory (locked/pinned vm). It's not used for anything else. + */ + mmgrab(current->mm); + ctx->mm_account = current->mm; + + ret = io_allocate_scq_urings(ctx, p); + if (ret) + goto err; + + ret = io_sq_offload_create(ctx, p); + if (ret) + goto err; + /* always set a rsrc node */ + ret = io_rsrc_node_switch_start(ctx); + if (ret) + goto err; + io_rsrc_node_switch(ctx, NULL); + + memset(&p->sq_off, 0, sizeof(p->sq_off)); + p->sq_off.head = offsetof(struct io_rings, sq.head); + p->sq_off.tail = offsetof(struct io_rings, sq.tail); + p->sq_off.ring_mask = offsetof(struct io_rings, sq_ring_mask); + p->sq_off.ring_entries = offsetof(struct io_rings, sq_ring_entries); + p->sq_off.flags = offsetof(struct io_rings, sq_flags); + p->sq_off.dropped = offsetof(struct io_rings, sq_dropped); + p->sq_off.array = (char *)ctx->sq_array - (char *)ctx->rings; + + memset(&p->cq_off, 0, sizeof(p->cq_off)); + p->cq_off.head = offsetof(struct io_rings, cq.head); + p->cq_off.tail = offsetof(struct io_rings, cq.tail); + p->cq_off.ring_mask = offsetof(struct io_rings, cq_ring_mask); + p->cq_off.ring_entries = offsetof(struct io_rings, cq_ring_entries); + p->cq_off.overflow = offsetof(struct io_rings, cq_overflow); + p->cq_off.cqes = offsetof(struct io_rings, cqes); + p->cq_off.flags = offsetof(struct io_rings, cq_flags); + + p->features = IORING_FEAT_SINGLE_MMAP | IORING_FEAT_NODROP | + IORING_FEAT_SUBMIT_STABLE | IORING_FEAT_RW_CUR_POS | + IORING_FEAT_CUR_PERSONALITY | IORING_FEAT_FAST_POLL | + IORING_FEAT_POLL_32BITS | IORING_FEAT_SQPOLL_NONFIXED | + IORING_FEAT_EXT_ARG | IORING_FEAT_NATIVE_WORKERS | + IORING_FEAT_RSRC_TAGS | IORING_FEAT_CQE_SKIP | + IORING_FEAT_LINKED_FILE; + + if (copy_to_user(params, p, sizeof(*p))) { + ret = -EFAULT; + goto err; + } + + file = io_uring_get_file(ctx); + if (IS_ERR(file)) { + ret = PTR_ERR(file); + goto err; + } + + /* + * Install ring fd as the very last thing, so we don't risk someone + * having closed it before we finish setup + */ + ret = io_uring_install_fd(ctx, file); + if (ret < 0) { + /* fput will clean it up */ + fput(file); + return ret; + } + + trace_io_uring_create(ret, ctx, p->sq_entries, p->cq_entries, p->flags); + return ret; +err: + io_ring_ctx_wait_and_kill(ctx); + return ret; +} + +/* + * Sets up an aio uring context, and returns the fd. Applications asks for a + * ring size, we return the actual sq/cq ring sizes (among other things) in the + * params structure passed in. + */ +static long io_uring_setup(u32 entries, struct io_uring_params __user *params) +{ + struct io_uring_params p; + int i; + + if (copy_from_user(&p, params, sizeof(p))) + return -EFAULT; + for (i = 0; i < ARRAY_SIZE(p.resv); i++) { + if (p.resv[i]) + return -EINVAL; + } + + if (p.flags & ~(IORING_SETUP_IOPOLL | IORING_SETUP_SQPOLL | + IORING_SETUP_SQ_AFF | IORING_SETUP_CQSIZE | + IORING_SETUP_CLAMP | IORING_SETUP_ATTACH_WQ | + IORING_SETUP_R_DISABLED | IORING_SETUP_SUBMIT_ALL | + IORING_SETUP_COOP_TASKRUN | IORING_SETUP_TASKRUN_FLAG | + IORING_SETUP_SQE128 | IORING_SETUP_CQE32)) + return -EINVAL; + + return io_uring_create(entries, &p, params); +} + +SYSCALL_DEFINE2(io_uring_setup, u32, entries, + struct io_uring_params __user *, params) +{ + return io_uring_setup(entries, params); +} + +static __cold int io_probe(struct io_ring_ctx *ctx, void __user *arg, + unsigned nr_args) +{ + struct io_uring_probe *p; + size_t size; + int i, ret; + + size = struct_size(p, ops, nr_args); + if (size == SIZE_MAX) + return -EOVERFLOW; + p = kzalloc(size, GFP_KERNEL); + if (!p) + return -ENOMEM; + + ret = -EFAULT; + if (copy_from_user(p, arg, size)) + goto out; + ret = -EINVAL; + if (memchr_inv(p, 0, size)) + goto out; + + p->last_op = IORING_OP_LAST - 1; + if (nr_args > IORING_OP_LAST) + nr_args = IORING_OP_LAST; + + for (i = 0; i < nr_args; i++) { + p->ops[i].op = i; + if (!io_op_defs[i].not_supported) + p->ops[i].flags = IO_URING_OP_SUPPORTED; + } + p->ops_len = i; + + ret = 0; + if (copy_to_user(arg, p, size)) + ret = -EFAULT; +out: + kfree(p); + return ret; +} + +static int io_register_personality(struct io_ring_ctx *ctx) +{ + const struct cred *creds; + u32 id; + int ret; + + creds = get_current_cred(); + + ret = xa_alloc_cyclic(&ctx->personalities, &id, (void *)creds, + XA_LIMIT(0, USHRT_MAX), &ctx->pers_next, GFP_KERNEL); + if (ret < 0) { + put_cred(creds); + return ret; + } + return id; +} + +static __cold int io_register_restrictions(struct io_ring_ctx *ctx, + void __user *arg, unsigned int nr_args) +{ + struct io_uring_restriction *res; + size_t size; + int i, ret; + + /* Restrictions allowed only if rings started disabled */ + if (!(ctx->flags & IORING_SETUP_R_DISABLED)) + return -EBADFD; + + /* We allow only a single restrictions registration */ + if (ctx->restrictions.registered) + return -EBUSY; + + if (!arg || nr_args > IORING_MAX_RESTRICTIONS) + return -EINVAL; + + size = array_size(nr_args, sizeof(*res)); + if (size == SIZE_MAX) + return -EOVERFLOW; + + res = memdup_user(arg, size); + if (IS_ERR(res)) + return PTR_ERR(res); + + ret = 0; + + for (i = 0; i < nr_args; i++) { + switch (res[i].opcode) { + case IORING_RESTRICTION_REGISTER_OP: + if (res[i].register_op >= IORING_REGISTER_LAST) { + ret = -EINVAL; + goto out; + } + + __set_bit(res[i].register_op, + ctx->restrictions.register_op); + break; + case IORING_RESTRICTION_SQE_OP: + if (res[i].sqe_op >= IORING_OP_LAST) { + ret = -EINVAL; + goto out; + } + + __set_bit(res[i].sqe_op, ctx->restrictions.sqe_op); + break; + case IORING_RESTRICTION_SQE_FLAGS_ALLOWED: + ctx->restrictions.sqe_flags_allowed = res[i].sqe_flags; + break; + case IORING_RESTRICTION_SQE_FLAGS_REQUIRED: + ctx->restrictions.sqe_flags_required = res[i].sqe_flags; + break; + default: + ret = -EINVAL; + goto out; + } + } + +out: + /* Reset all restrictions if an error happened */ + if (ret != 0) + memset(&ctx->restrictions, 0, sizeof(ctx->restrictions)); + else + ctx->restrictions.registered = true; + + kfree(res); + return ret; +} + +static int io_register_enable_rings(struct io_ring_ctx *ctx) +{ + if (!(ctx->flags & IORING_SETUP_R_DISABLED)) + return -EBADFD; + + if (ctx->restrictions.registered) + ctx->restricted = 1; + + ctx->flags &= ~IORING_SETUP_R_DISABLED; + if (ctx->sq_data && wq_has_sleeper(&ctx->sq_data->wait)) + wake_up(&ctx->sq_data->wait); + return 0; +} + +static int __io_register_rsrc_update(struct io_ring_ctx *ctx, unsigned type, + struct io_uring_rsrc_update2 *up, + unsigned nr_args) +{ + __u32 tmp; + int err; + + if (check_add_overflow(up->offset, nr_args, &tmp)) + return -EOVERFLOW; + err = io_rsrc_node_switch_start(ctx); + if (err) + return err; + + switch (type) { + case IORING_RSRC_FILE: + return __io_sqe_files_update(ctx, up, nr_args); + case IORING_RSRC_BUFFER: + return __io_sqe_buffers_update(ctx, up, nr_args); + } + return -EINVAL; +} + +static int io_register_files_update(struct io_ring_ctx *ctx, void __user *arg, + unsigned nr_args) +{ + struct io_uring_rsrc_update2 up; + + if (!nr_args) + return -EINVAL; + memset(&up, 0, sizeof(up)); + if (copy_from_user(&up, arg, sizeof(struct io_uring_rsrc_update))) + return -EFAULT; + if (up.resv || up.resv2) + return -EINVAL; + return __io_register_rsrc_update(ctx, IORING_RSRC_FILE, &up, nr_args); +} + +static int io_register_rsrc_update(struct io_ring_ctx *ctx, void __user *arg, + unsigned size, unsigned type) +{ + struct io_uring_rsrc_update2 up; + + if (size != sizeof(up)) + return -EINVAL; + if (copy_from_user(&up, arg, sizeof(up))) + return -EFAULT; + if (!up.nr || up.resv || up.resv2) + return -EINVAL; + return __io_register_rsrc_update(ctx, type, &up, up.nr); +} + +static __cold int io_register_rsrc(struct io_ring_ctx *ctx, void __user *arg, + unsigned int size, unsigned int type) +{ + struct io_uring_rsrc_register rr; + + /* keep it extendible */ + if (size != sizeof(rr)) + return -EINVAL; + + memset(&rr, 0, sizeof(rr)); + if (copy_from_user(&rr, arg, size)) + return -EFAULT; + if (!rr.nr || rr.resv2) + return -EINVAL; + if (rr.flags & ~IORING_RSRC_REGISTER_SPARSE) + return -EINVAL; + + switch (type) { + case IORING_RSRC_FILE: + if (rr.flags & IORING_RSRC_REGISTER_SPARSE && rr.data) + break; + return io_sqe_files_register(ctx, u64_to_user_ptr(rr.data), + rr.nr, u64_to_user_ptr(rr.tags)); + case IORING_RSRC_BUFFER: + if (rr.flags & IORING_RSRC_REGISTER_SPARSE && rr.data) + break; + return io_sqe_buffers_register(ctx, u64_to_user_ptr(rr.data), + rr.nr, u64_to_user_ptr(rr.tags)); + } + return -EINVAL; +} + +static __cold int io_register_iowq_aff(struct io_ring_ctx *ctx, + void __user *arg, unsigned len) +{ + struct io_uring_task *tctx = current->io_uring; + cpumask_var_t new_mask; + int ret; + + if (!tctx || !tctx->io_wq) + return -EINVAL; + + if (!alloc_cpumask_var(&new_mask, GFP_KERNEL)) + return -ENOMEM; + + cpumask_clear(new_mask); + if (len > cpumask_size()) + len = cpumask_size(); + + if (in_compat_syscall()) { + ret = compat_get_bitmap(cpumask_bits(new_mask), + (const compat_ulong_t __user *)arg, + len * 8 /* CHAR_BIT */); + } else { + ret = copy_from_user(new_mask, arg, len); + } + + if (ret) { + free_cpumask_var(new_mask); + return -EFAULT; + } + + ret = io_wq_cpu_affinity(tctx->io_wq, new_mask); + free_cpumask_var(new_mask); + return ret; +} + +static __cold int io_unregister_iowq_aff(struct io_ring_ctx *ctx) +{ + struct io_uring_task *tctx = current->io_uring; + + if (!tctx || !tctx->io_wq) + return -EINVAL; + + return io_wq_cpu_affinity(tctx->io_wq, NULL); +} + +static __cold int io_register_iowq_max_workers(struct io_ring_ctx *ctx, + void __user *arg) + __must_hold(&ctx->uring_lock) +{ + struct io_tctx_node *node; + struct io_uring_task *tctx = NULL; + struct io_sq_data *sqd = NULL; + __u32 new_count[2]; + int i, ret; + + if (copy_from_user(new_count, arg, sizeof(new_count))) + return -EFAULT; + for (i = 0; i < ARRAY_SIZE(new_count); i++) + if (new_count[i] > INT_MAX) + return -EINVAL; + + if (ctx->flags & IORING_SETUP_SQPOLL) { + sqd = ctx->sq_data; + if (sqd) { + /* + * Observe the correct sqd->lock -> ctx->uring_lock + * ordering. Fine to drop uring_lock here, we hold + * a ref to the ctx. + */ + refcount_inc(&sqd->refs); + mutex_unlock(&ctx->uring_lock); + mutex_lock(&sqd->lock); + mutex_lock(&ctx->uring_lock); + if (sqd->thread) + tctx = sqd->thread->io_uring; + } + } else { + tctx = current->io_uring; + } + + BUILD_BUG_ON(sizeof(new_count) != sizeof(ctx->iowq_limits)); + + for (i = 0; i < ARRAY_SIZE(new_count); i++) + if (new_count[i]) + ctx->iowq_limits[i] = new_count[i]; + ctx->iowq_limits_set = true; + + if (tctx && tctx->io_wq) { + ret = io_wq_max_workers(tctx->io_wq, new_count); + if (ret) + goto err; + } else { + memset(new_count, 0, sizeof(new_count)); + } + + if (sqd) { + mutex_unlock(&sqd->lock); + io_put_sq_data(sqd); + } + + if (copy_to_user(arg, new_count, sizeof(new_count))) + return -EFAULT; + + /* that's it for SQPOLL, only the SQPOLL task creates requests */ + if (sqd) + return 0; + + /* now propagate the restriction to all registered users */ + list_for_each_entry(node, &ctx->tctx_list, ctx_node) { + struct io_uring_task *tctx = node->task->io_uring; + + if (WARN_ON_ONCE(!tctx->io_wq)) + continue; + + for (i = 0; i < ARRAY_SIZE(new_count); i++) + new_count[i] = ctx->iowq_limits[i]; + /* ignore errors, it always returns zero anyway */ + (void)io_wq_max_workers(tctx->io_wq, new_count); + } + return 0; +err: + if (sqd) { + mutex_unlock(&sqd->lock); + io_put_sq_data(sqd); + } + return ret; +} + +static int io_register_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg) +{ + struct io_uring_buf_ring *br; + struct io_uring_buf_reg reg; + struct io_buffer_list *bl, *free_bl = NULL; + struct page **pages; + int nr_pages; + + if (copy_from_user(®, arg, sizeof(reg))) + return -EFAULT; + + if (reg.pad || reg.resv[0] || reg.resv[1] || reg.resv[2]) + return -EINVAL; + if (!reg.ring_addr) + return -EFAULT; + if (reg.ring_addr & ~PAGE_MASK) + return -EINVAL; + if (!is_power_of_2(reg.ring_entries)) + return -EINVAL; + + /* cannot disambiguate full vs empty due to head/tail size */ + if (reg.ring_entries >= 65536) + return -EINVAL; + + if (unlikely(reg.bgid < BGID_ARRAY && !ctx->io_bl)) { + int ret = io_init_bl_list(ctx); + if (ret) + return ret; + } + + bl = io_buffer_get_list(ctx, reg.bgid); + if (bl) { + /* if mapped buffer ring OR classic exists, don't allow */ + if (bl->buf_nr_pages || !list_empty(&bl->buf_list)) + return -EEXIST; + } else { + free_bl = bl = kzalloc(sizeof(*bl), GFP_KERNEL); + if (!bl) + return -ENOMEM; + } + + pages = io_pin_pages(reg.ring_addr, + struct_size(br, bufs, reg.ring_entries), + &nr_pages); + if (IS_ERR(pages)) { + kfree(free_bl); + return PTR_ERR(pages); + } + + br = page_address(pages[0]); + bl->buf_pages = pages; + bl->buf_nr_pages = nr_pages; + bl->nr_entries = reg.ring_entries; + bl->buf_ring = br; + bl->mask = reg.ring_entries - 1; + io_buffer_add_list(ctx, bl, reg.bgid); + return 0; +} + +static int io_unregister_pbuf_ring(struct io_ring_ctx *ctx, void __user *arg) +{ + struct io_uring_buf_reg reg; + struct io_buffer_list *bl; + + if (copy_from_user(®, arg, sizeof(reg))) + return -EFAULT; + if (reg.pad || reg.resv[0] || reg.resv[1] || reg.resv[2]) + return -EINVAL; + + bl = io_buffer_get_list(ctx, reg.bgid); + if (!bl) + return -ENOENT; + if (!bl->buf_nr_pages) + return -EINVAL; + + __io_remove_buffers(ctx, bl, -1U); + if (bl->bgid >= BGID_ARRAY) { + xa_erase(&ctx->io_bl_xa, bl->bgid); + kfree(bl); + } + return 0; +} + +static int __io_uring_register(struct io_ring_ctx *ctx, unsigned opcode, + void __user *arg, unsigned nr_args) + __releases(ctx->uring_lock) + __acquires(ctx->uring_lock) +{ + int ret; + + /* + * We're inside the ring mutex, if the ref is already dying, then + * someone else killed the ctx or is already going through + * io_uring_register(). + */ + if (percpu_ref_is_dying(&ctx->refs)) + return -ENXIO; + + if (ctx->restricted) { + if (opcode >= IORING_REGISTER_LAST) + return -EINVAL; + opcode = array_index_nospec(opcode, IORING_REGISTER_LAST); + if (!test_bit(opcode, ctx->restrictions.register_op)) + return -EACCES; + } + + switch (opcode) { + case IORING_REGISTER_BUFFERS: + ret = -EFAULT; + if (!arg) + break; + ret = io_sqe_buffers_register(ctx, arg, nr_args, NULL); + break; + case IORING_UNREGISTER_BUFFERS: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_sqe_buffers_unregister(ctx); + break; + case IORING_REGISTER_FILES: + ret = -EFAULT; + if (!arg) + break; + ret = io_sqe_files_register(ctx, arg, nr_args, NULL); + break; + case IORING_UNREGISTER_FILES: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_sqe_files_unregister(ctx); + break; + case IORING_REGISTER_FILES_UPDATE: + ret = io_register_files_update(ctx, arg, nr_args); + break; + case IORING_REGISTER_EVENTFD: + ret = -EINVAL; + if (nr_args != 1) + break; + ret = io_eventfd_register(ctx, arg, 0); + break; + case IORING_REGISTER_EVENTFD_ASYNC: + ret = -EINVAL; + if (nr_args != 1) + break; + ret = io_eventfd_register(ctx, arg, 1); + break; + case IORING_UNREGISTER_EVENTFD: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_eventfd_unregister(ctx); + break; + case IORING_REGISTER_PROBE: + ret = -EINVAL; + if (!arg || nr_args > 256) + break; + ret = io_probe(ctx, arg, nr_args); + break; + case IORING_REGISTER_PERSONALITY: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_register_personality(ctx); + break; + case IORING_UNREGISTER_PERSONALITY: + ret = -EINVAL; + if (arg) + break; + ret = io_unregister_personality(ctx, nr_args); + break; + case IORING_REGISTER_ENABLE_RINGS: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_register_enable_rings(ctx); + break; + case IORING_REGISTER_RESTRICTIONS: + ret = io_register_restrictions(ctx, arg, nr_args); + break; + case IORING_REGISTER_FILES2: + ret = io_register_rsrc(ctx, arg, nr_args, IORING_RSRC_FILE); + break; + case IORING_REGISTER_FILES_UPDATE2: + ret = io_register_rsrc_update(ctx, arg, nr_args, + IORING_RSRC_FILE); + break; + case IORING_REGISTER_BUFFERS2: + ret = io_register_rsrc(ctx, arg, nr_args, IORING_RSRC_BUFFER); + break; + case IORING_REGISTER_BUFFERS_UPDATE: + ret = io_register_rsrc_update(ctx, arg, nr_args, + IORING_RSRC_BUFFER); + break; + case IORING_REGISTER_IOWQ_AFF: + ret = -EINVAL; + if (!arg || !nr_args) + break; + ret = io_register_iowq_aff(ctx, arg, nr_args); + break; + case IORING_UNREGISTER_IOWQ_AFF: + ret = -EINVAL; + if (arg || nr_args) + break; + ret = io_unregister_iowq_aff(ctx); + break; + case IORING_REGISTER_IOWQ_MAX_WORKERS: + ret = -EINVAL; + if (!arg || nr_args != 2) + break; + ret = io_register_iowq_max_workers(ctx, arg); + break; + case IORING_REGISTER_RING_FDS: + ret = io_ringfd_register(ctx, arg, nr_args); + break; + case IORING_UNREGISTER_RING_FDS: + ret = io_ringfd_unregister(ctx, arg, nr_args); + break; + case IORING_REGISTER_PBUF_RING: + ret = -EINVAL; + if (!arg || nr_args != 1) + break; + ret = io_register_pbuf_ring(ctx, arg); + break; + case IORING_UNREGISTER_PBUF_RING: + ret = -EINVAL; + if (!arg || nr_args != 1) + break; + ret = io_unregister_pbuf_ring(ctx, arg); + break; + default: + ret = -EINVAL; + break; + } + + return ret; +} + +SYSCALL_DEFINE4(io_uring_register, unsigned int, fd, unsigned int, opcode, + void __user *, arg, unsigned int, nr_args) +{ + struct io_ring_ctx *ctx; + long ret = -EBADF; + struct fd f; + + f = fdget(fd); + if (!f.file) + return -EBADF; + + ret = -EOPNOTSUPP; + if (f.file->f_op != &io_uring_fops) + goto out_fput; + + ctx = f.file->private_data; + + io_run_task_work(); + + mutex_lock(&ctx->uring_lock); + ret = __io_uring_register(ctx, opcode, arg, nr_args); + mutex_unlock(&ctx->uring_lock); + trace_io_uring_register(ctx, opcode, ctx->nr_user_files, ctx->nr_user_bufs, ret); +out_fput: + fdput(f); + return ret; +} + +static int io_no_issue(struct io_kiocb *req, unsigned int issue_flags) +{ + WARN_ON_ONCE(1); + return -ECANCELED; +} + +static const struct io_op_def io_op_defs[] = { + [IORING_OP_NOP] = { + .audit_skip = 1, + .iopoll = 1, + .prep = io_nop_prep, + .issue = io_nop, + }, + [IORING_OP_READV] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .buffer_select = 1, + .needs_async_setup = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_read, + }, + [IORING_OP_WRITEV] = { + .needs_file = 1, + .hash_reg_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .needs_async_setup = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_write, + }, + [IORING_OP_FSYNC] = { + .needs_file = 1, + .audit_skip = 1, + .prep = io_fsync_prep, + .issue = io_fsync, + }, + [IORING_OP_READ_FIXED] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_read, + }, + [IORING_OP_WRITE_FIXED] = { + .needs_file = 1, + .hash_reg_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_write, + }, + [IORING_OP_POLL_ADD] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .audit_skip = 1, + .prep = io_poll_add_prep, + .issue = io_poll_add, + }, + [IORING_OP_POLL_REMOVE] = { + .audit_skip = 1, + .prep = io_poll_remove_prep, + .issue = io_poll_remove, + }, + [IORING_OP_SYNC_FILE_RANGE] = { + .needs_file = 1, + .audit_skip = 1, + .prep = io_sfr_prep, + .issue = io_sync_file_range, + }, + [IORING_OP_SENDMSG] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .needs_async_setup = 1, + .ioprio = 1, + .async_size = sizeof(struct io_async_msghdr), + .prep = io_sendmsg_prep, + .issue = io_sendmsg, + }, + [IORING_OP_RECVMSG] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .buffer_select = 1, + .needs_async_setup = 1, + .ioprio = 1, + .async_size = sizeof(struct io_async_msghdr), + .prep = io_recvmsg_prep, + .issue = io_recvmsg, + }, + [IORING_OP_TIMEOUT] = { + .audit_skip = 1, + .async_size = sizeof(struct io_timeout_data), + .prep = io_timeout_prep, + .issue = io_timeout, + }, + [IORING_OP_TIMEOUT_REMOVE] = { + /* used by timeout updates' prep() */ + .audit_skip = 1, + .prep = io_timeout_remove_prep, + .issue = io_timeout_remove, + }, + [IORING_OP_ACCEPT] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .poll_exclusive = 1, + .ioprio = 1, /* used for flags */ + .prep = io_accept_prep, + .issue = io_accept, + }, + [IORING_OP_ASYNC_CANCEL] = { + .audit_skip = 1, + .prep = io_async_cancel_prep, + .issue = io_async_cancel, + }, + [IORING_OP_LINK_TIMEOUT] = { + .audit_skip = 1, + .async_size = sizeof(struct io_timeout_data), + .prep = io_link_timeout_prep, + .issue = io_no_issue, + }, + [IORING_OP_CONNECT] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .needs_async_setup = 1, + .async_size = sizeof(struct io_async_connect), + .prep = io_connect_prep, + .issue = io_connect, + }, + [IORING_OP_FALLOCATE] = { + .needs_file = 1, + .prep = io_fallocate_prep, + .issue = io_fallocate, + }, + [IORING_OP_OPENAT] = { + .prep = io_openat_prep, + .issue = io_openat, + }, + [IORING_OP_CLOSE] = { + .prep = io_close_prep, + .issue = io_close, + }, + [IORING_OP_FILES_UPDATE] = { + .audit_skip = 1, + .iopoll = 1, + .prep = io_files_update_prep, + .issue = io_files_update, + }, + [IORING_OP_STATX] = { + .audit_skip = 1, + .prep = io_statx_prep, + .issue = io_statx, + }, + [IORING_OP_READ] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .buffer_select = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_read, + }, + [IORING_OP_WRITE] = { + .needs_file = 1, + .hash_reg_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .plug = 1, + .audit_skip = 1, + .ioprio = 1, + .iopoll = 1, + .async_size = sizeof(struct io_async_rw), + .prep = io_prep_rw, + .issue = io_write, + }, + [IORING_OP_FADVISE] = { + .needs_file = 1, + .audit_skip = 1, + .prep = io_fadvise_prep, + .issue = io_fadvise, + }, + [IORING_OP_MADVISE] = { + .prep = io_madvise_prep, + .issue = io_madvise, + }, + [IORING_OP_SEND] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollout = 1, + .audit_skip = 1, + .ioprio = 1, + .prep = io_sendmsg_prep, + .issue = io_send, + }, + [IORING_OP_RECV] = { + .needs_file = 1, + .unbound_nonreg_file = 1, + .pollin = 1, + .buffer_select = 1, + .audit_skip = 1, + .ioprio = 1, + .prep = io_recvmsg_prep, + .issue = io_recv, + }, + [IORING_OP_OPENAT2] = { + .prep = io_openat2_prep, + .issue = io_openat2, + }, + [IORING_OP_EPOLL_CTL] = { + .unbound_nonreg_file = 1, + .audit_skip = 1, + .prep = io_epoll_ctl_prep, + .issue = io_epoll_ctl, + }, + [IORING_OP_SPLICE] = { + .needs_file = 1, + .hash_reg_file = 1, + .unbound_nonreg_file = 1, + .audit_skip = 1, + .prep = io_splice_prep, + .issue = io_splice, + }, + [IORING_OP_PROVIDE_BUFFERS] = { + .audit_skip = 1, + .iopoll = 1, + .prep = io_provide_buffers_prep, + .issue = io_provide_buffers, + }, + [IORING_OP_REMOVE_BUFFERS] = { + .audit_skip = 1, + .iopoll = 1, + .prep = io_remove_buffers_prep, + .issue = io_remove_buffers, + }, + [IORING_OP_TEE] = { + .needs_file = 1, + .hash_reg_file = 1, + .unbound_nonreg_file = 1, + .audit_skip = 1, + .prep = io_tee_prep, + .issue = io_tee, + }, + [IORING_OP_SHUTDOWN] = { + .needs_file = 1, + .prep = io_shutdown_prep, + .issue = io_shutdown, + }, + [IORING_OP_RENAMEAT] = { + .prep = io_renameat_prep, + .issue = io_renameat, + }, + [IORING_OP_UNLINKAT] = { + .prep = io_unlinkat_prep, + .issue = io_unlinkat, + }, + [IORING_OP_MKDIRAT] = { + .prep = io_mkdirat_prep, + .issue = io_mkdirat, + }, + [IORING_OP_SYMLINKAT] = { + .prep = io_symlinkat_prep, + .issue = io_symlinkat, + }, + [IORING_OP_LINKAT] = { + .prep = io_linkat_prep, + .issue = io_linkat, + }, + [IORING_OP_MSG_RING] = { + .needs_file = 1, + .iopoll = 1, + .prep = io_msg_ring_prep, + .issue = io_msg_ring, + }, + [IORING_OP_FSETXATTR] = { + .needs_file = 1, + .prep = io_fsetxattr_prep, + .issue = io_fsetxattr, + }, + [IORING_OP_SETXATTR] = { + .prep = io_setxattr_prep, + .issue = io_setxattr, + }, + [IORING_OP_FGETXATTR] = { + .needs_file = 1, + .prep = io_fgetxattr_prep, + .issue = io_fgetxattr, + }, + [IORING_OP_GETXATTR] = { + .prep = io_getxattr_prep, + .issue = io_getxattr, + }, + [IORING_OP_SOCKET] = { + .audit_skip = 1, + .prep = io_socket_prep, + .issue = io_socket, + }, + [IORING_OP_URING_CMD] = { + .needs_file = 1, + .plug = 1, + .needs_async_setup = 1, + .async_size = uring_cmd_pdu_size(1), + .prep = io_uring_cmd_prep, + .issue = io_uring_cmd, + }, +}; + +static int __init io_uring_init(void) +{ + int i; + +#define __BUILD_BUG_VERIFY_ELEMENT(stype, eoffset, etype, ename) do { \ + BUILD_BUG_ON(offsetof(stype, ename) != eoffset); \ + BUILD_BUG_ON(sizeof(etype) != sizeof_field(stype, ename)); \ +} while (0) + +#define BUILD_BUG_SQE_ELEM(eoffset, etype, ename) \ + __BUILD_BUG_VERIFY_ELEMENT(struct io_uring_sqe, eoffset, etype, ename) + BUILD_BUG_ON(sizeof(struct io_uring_sqe) != 64); + BUILD_BUG_SQE_ELEM(0, __u8, opcode); + BUILD_BUG_SQE_ELEM(1, __u8, flags); + BUILD_BUG_SQE_ELEM(2, __u16, ioprio); + BUILD_BUG_SQE_ELEM(4, __s32, fd); + BUILD_BUG_SQE_ELEM(8, __u64, off); + BUILD_BUG_SQE_ELEM(8, __u64, addr2); + BUILD_BUG_SQE_ELEM(16, __u64, addr); + BUILD_BUG_SQE_ELEM(16, __u64, splice_off_in); + BUILD_BUG_SQE_ELEM(24, __u32, len); + BUILD_BUG_SQE_ELEM(28, __kernel_rwf_t, rw_flags); + BUILD_BUG_SQE_ELEM(28, /* compat */ int, rw_flags); + BUILD_BUG_SQE_ELEM(28, /* compat */ __u32, rw_flags); + BUILD_BUG_SQE_ELEM(28, __u32, fsync_flags); + BUILD_BUG_SQE_ELEM(28, /* compat */ __u16, poll_events); + BUILD_BUG_SQE_ELEM(28, __u32, poll32_events); + BUILD_BUG_SQE_ELEM(28, __u32, sync_range_flags); + BUILD_BUG_SQE_ELEM(28, __u32, msg_flags); + BUILD_BUG_SQE_ELEM(28, __u32, timeout_flags); + BUILD_BUG_SQE_ELEM(28, __u32, accept_flags); + BUILD_BUG_SQE_ELEM(28, __u32, cancel_flags); + BUILD_BUG_SQE_ELEM(28, __u32, open_flags); + BUILD_BUG_SQE_ELEM(28, __u32, statx_flags); + BUILD_BUG_SQE_ELEM(28, __u32, fadvise_advice); + BUILD_BUG_SQE_ELEM(28, __u32, splice_flags); + BUILD_BUG_SQE_ELEM(32, __u64, user_data); + BUILD_BUG_SQE_ELEM(40, __u16, buf_index); + BUILD_BUG_SQE_ELEM(40, __u16, buf_group); + BUILD_BUG_SQE_ELEM(42, __u16, personality); + BUILD_BUG_SQE_ELEM(44, __s32, splice_fd_in); + BUILD_BUG_SQE_ELEM(44, __u32, file_index); + BUILD_BUG_SQE_ELEM(48, __u64, addr3); + + BUILD_BUG_ON(sizeof(struct io_uring_files_update) != + sizeof(struct io_uring_rsrc_update)); + BUILD_BUG_ON(sizeof(struct io_uring_rsrc_update) > + sizeof(struct io_uring_rsrc_update2)); + + /* ->buf_index is u16 */ + BUILD_BUG_ON(IORING_MAX_REG_BUFFERS >= (1u << 16)); + BUILD_BUG_ON(BGID_ARRAY * sizeof(struct io_buffer_list) > PAGE_SIZE); + BUILD_BUG_ON(offsetof(struct io_uring_buf_ring, bufs) != 0); + BUILD_BUG_ON(offsetof(struct io_uring_buf, resv) != + offsetof(struct io_uring_buf_ring, tail)); + + /* should fit into one byte */ + BUILD_BUG_ON(SQE_VALID_FLAGS >= (1 << 8)); + BUILD_BUG_ON(SQE_COMMON_FLAGS >= (1 << 8)); + BUILD_BUG_ON((SQE_VALID_FLAGS | SQE_COMMON_FLAGS) != SQE_VALID_FLAGS); + + BUILD_BUG_ON(ARRAY_SIZE(io_op_defs) != IORING_OP_LAST); + BUILD_BUG_ON(__REQ_F_LAST_BIT > 8 * sizeof(int)); + + BUILD_BUG_ON(sizeof(atomic_t) != sizeof(u32)); + + BUILD_BUG_ON(sizeof(struct io_uring_cmd) > 64); + + for (i = 0; i < ARRAY_SIZE(io_op_defs); i++) { + BUG_ON(!io_op_defs[i].prep); + BUG_ON(!io_op_defs[i].issue); + } + + req_cachep = KMEM_CACHE(io_kiocb, SLAB_HWCACHE_ALIGN | SLAB_PANIC | + SLAB_ACCOUNT); + return 0; +}; +__initcall(io_uring_init); --- linux-5.19.0.orig/ipc/mqueue.c +++ linux-5.19.0/ipc/mqueue.c @@ -1727,7 +1727,8 @@ if (!setup_mq_sysctls(&init_ipc_ns)) { pr_warn("sysctl registration failed\n"); - return -ENOMEM; + error = -ENOMEM; + goto out_kmem; } error = register_filesystem(&mqueue_fs_type); @@ -1745,6 +1746,8 @@ out_filesystem: unregister_filesystem(&mqueue_fs_type); out_sysctl: + retire_mq_sysctls(&init_ipc_ns); +out_kmem: kmem_cache_destroy(mqueue_inode_cachep); return error; } --- linux-5.19.0.orig/ipc/namespace.c +++ linux-5.19.0/ipc/namespace.c @@ -185,6 +185,23 @@ schedule_work(&free_ipc_work); } } +EXPORT_SYMBOL(put_ipc_ns); + +struct ipc_namespace *get_ipc_ns_exported(struct ipc_namespace *ns) +{ + return get_ipc_ns(ns); +} +EXPORT_SYMBOL(get_ipc_ns_exported); + +struct ipc_namespace *show_init_ipc_ns(void) +{ +#if defined(CONFIG_IPC_NS) + return &init_ipc_ns; +#else + return NULL; +#endif +} +EXPORT_SYMBOL(show_init_ipc_ns); static inline struct ipc_namespace *to_ipc_ns(struct ns_common *ns) { --- linux-5.19.0.orig/ipc/sem.c +++ linux-5.19.0/ipc/sem.c @@ -2179,14 +2179,15 @@ * scenarios where we were awakened externally, during the * window between wake_q_add() and wake_up_q(). */ + rcu_read_lock(); error = READ_ONCE(queue.status); if (error != -EINTR) { /* see SEM_BARRIER_2 for purpose/pairing */ smp_acquire__after_ctrl_dep(); + rcu_read_unlock(); goto out; } - rcu_read_lock(); locknum = sem_lock(sma, sops, nsops); if (!ipc_valid_object(&sma->sem_perm)) --- linux-5.19.0.orig/kernel/acct.c +++ linux-5.19.0/kernel/acct.c @@ -350,6 +350,8 @@ exp++; } + if (exp > (((comp_t) ~0U) >> MANTSIZE)) + return (comp_t) ~0U; /* * Clean it up and polish it off. */ --- linux-5.19.0.orig/kernel/audit.c +++ linux-5.19.0/kernel/audit.c @@ -125,7 +125,7 @@ /* The identity of the user shutting down the audit system. */ static kuid_t audit_sig_uid = INVALID_UID; static pid_t audit_sig_pid = -1; -static u32 audit_sig_sid; +static struct lsmblob audit_sig_lsm; /* Records can be lost in several ways: 0) [suppressed in audit_alloc] @@ -197,8 +197,10 @@ * to place it on a transmit queue. Multiple audit_buffers can be in * use simultaneously. */ struct audit_buffer { - struct sk_buff *skb; /* formatted skb ready to send */ + struct sk_buff *skb; /* the skb for audit_log functions */ + struct sk_buff_head skb_list; /* formatted skbs, ready to send */ struct audit_context *ctx; /* NULL or associated context */ + struct audit_stamp stamp; /* audit stamp for these records */ gfp_t gfp_mask; }; @@ -1105,7 +1107,6 @@ return af.features & AUDIT_FEATURE_TO_MASK(i); } - static int audit_get_feature(struct sk_buff *skb) { u32 seq; @@ -1212,8 +1213,6 @@ struct audit_buffer *ab; u16 msg_type = nlh->nlmsg_type; struct audit_sig_info *sig_data; - char *ctx = NULL; - u32 len; err = audit_netlink_ok(skb, msg_type); if (err) @@ -1461,29 +1460,33 @@ kfree(new); break; } - case AUDIT_SIGNAL_INFO: - len = 0; - if (audit_sig_sid) { - err = security_secid_to_secctx(audit_sig_sid, &ctx, &len); + case AUDIT_SIGNAL_INFO: { + struct lsmcontext context = { }; + + if (lsmblob_is_set(&audit_sig_lsm)) { + err = security_secid_to_secctx(&audit_sig_lsm, + &context, LSMBLOB_FIRST); if (err) return err; } - sig_data = kmalloc(struct_size(sig_data, ctx, len), GFP_KERNEL); + sig_data = kmalloc(struct_size(sig_data, ctx, context.len), + GFP_KERNEL); if (!sig_data) { - if (audit_sig_sid) - security_release_secctx(ctx, len); + if (lsmblob_is_set(&audit_sig_lsm)) + security_release_secctx(&context); return -ENOMEM; } sig_data->uid = from_kuid(&init_user_ns, audit_sig_uid); sig_data->pid = audit_sig_pid; - if (audit_sig_sid) { - memcpy(sig_data->ctx, ctx, len); - security_release_secctx(ctx, len); + if (lsmblob_is_set(&audit_sig_lsm)) { + memcpy(sig_data->ctx, context.context, context.len); + security_release_secctx(&context); } - audit_send_reply(skb, seq, AUDIT_SIGNAL_INFO, 0, 0, - sig_data, struct_size(sig_data, ctx, len)); + audit_send_reply(skb, seq, AUDIT_SIGNAL_INFO, 0, 0, sig_data, + struct_size(sig_data, ctx, context.len)); kfree(sig_data); break; + } case AUDIT_TTY_GET: { struct audit_tty_status s; unsigned int t; @@ -1763,10 +1766,13 @@ static void audit_buffer_free(struct audit_buffer *ab) { + struct sk_buff *skb; + if (!ab) return; - kfree_skb(ab->skb); + while ((skb = skb_dequeue(&ab->skb_list))) + kfree_skb(skb); kmem_cache_free(audit_buffer_cache, ab); } @@ -1782,6 +1788,10 @@ ab->skb = nlmsg_new(AUDIT_BUFSIZ, gfp_mask); if (!ab->skb) goto err; + + skb_queue_head_init(&ab->skb_list); + skb_queue_tail(&ab->skb_list, ab->skb); + if (!nlmsg_put(ab->skb, 0, 0, type, 0, 0)) goto err; @@ -1820,11 +1830,11 @@ } static inline void audit_get_stamp(struct audit_context *ctx, - struct timespec64 *t, unsigned int *serial) + struct audit_stamp *stamp) { - if (!ctx || !auditsc_get_stamp(ctx, t, serial)) { - ktime_get_coarse_real_ts64(t); - *serial = audit_serial(); + if (!ctx || !auditsc_get_stamp(ctx, stamp)) { + ktime_get_coarse_real_ts64(&stamp->ctime); + stamp->serial = audit_serial(); } } @@ -1847,8 +1857,6 @@ int type) { struct audit_buffer *ab; - struct timespec64 t; - unsigned int serial; if (audit_initialized != AUDIT_INITIALIZED) return NULL; @@ -1903,12 +1911,14 @@ return NULL; } - audit_get_stamp(ab->ctx, &t, &serial); + audit_get_stamp(ab->ctx, &ab->stamp); /* cancel dummy context to enable supporting records */ if (ctx) ctx->dummy = 0; audit_log_format(ab, "audit(%llu.%03lu:%u): ", - (unsigned long long)t.tv_sec, t.tv_nsec/1000000, serial); + (unsigned long long)ab->stamp.ctime.tv_sec, + ab->stamp.ctime.tv_nsec/1000000, + ab->stamp.serial); return ab; } @@ -2164,34 +2174,167 @@ audit_log_format(ab, "(null)"); } -int audit_log_task_context(struct audit_buffer *ab) +/** + * audit_buffer_aux_new - Add an aux record buffer to the skb list + * @ab: audit_buffer + * @type: message type + * + * Aux records are allocated and added to the skb list of + * the "main" record. The ab->skb is reset to point to the + * aux record on its creation. When the aux record in complete + * ab->skb has to be reset to point to the "main" record. + * This allows the audit_log_ functions to be ignorant of + * which kind of record it is logging to. It also avoids adding + * special data for aux records. + * + * On success ab->skb will point to the new aux record. + * Returns 0 on success, -ENOMEM should allocation fail. + */ +static int audit_buffer_aux_new(struct audit_buffer *ab, int type) +{ + WARN_ON(ab->skb != skb_peek(&ab->skb_list)); + + ab->skb = nlmsg_new(AUDIT_BUFSIZ, ab->gfp_mask); + if (!ab->skb) + goto err; + if (!nlmsg_put(ab->skb, 0, 0, type, 0, 0)) + goto err; + skb_queue_tail(&ab->skb_list, ab->skb); + + audit_log_format(ab, "audit(%llu.%03lu:%u): ", + (unsigned long long)ab->stamp.ctime.tv_sec, + ab->stamp.ctime.tv_nsec/1000000, + ab->stamp.serial); + + return 0; + +err: + kfree_skb(ab->skb); + ab->skb = skb_peek(&ab->skb_list); + return -ENOMEM; +} + +/** + * audit_buffer_aux_end - Switch back to the "main" record from an aux record + * @ab: audit_buffer + * + * Restores the "main" audit record to ab->skb. + */ +static void audit_buffer_aux_end(struct audit_buffer *ab) +{ + ab->skb = skb_peek(&ab->skb_list); +} + +int audit_log_subject_context(struct audit_buffer *ab, struct lsmblob *blob) { - char *ctx = NULL; - unsigned len; + int i; int error; - u32 sid; + struct lsmcontext context; - security_current_getsecid_subj(&sid); - if (!sid) + if (!lsmblob_is_set(blob)) return 0; - error = security_secid_to_secctx(sid, &ctx, &len); - if (error) { - if (error != -EINVAL) + if (!lsm_multiple_contexts()) { + error = security_secid_to_secctx(blob, &context, LSMBLOB_FIRST); + if (error) { + if (error != -EINVAL) + goto error_path; + return 0; + } + audit_log_format(ab, " subj=%s", context.context); + security_release_secctx(&context); + } else { + /* Multiple LSMs provide contexts. Include an aux record. */ + audit_log_format(ab, " subj=?"); + error = audit_buffer_aux_new(ab, AUDIT_MAC_TASK_CONTEXTS); + if (error) goto error_path; - return 0; + for (i = 0; i < LSMBLOB_ENTRIES; i++) { + if (blob->secid[i] == 0) + continue; + error = security_secid_to_secctx(blob, &context, i); + if (error) { + audit_log_format(ab, "%ssubj_%s=?", + i ? " " : "", + lsm_slot_to_name(i)); + if (error != -EINVAL) + audit_panic("error in audit_log_subject_context"); + } else { + audit_log_format(ab, "%ssubj_%s=%s", + i ? " " : "", + lsm_slot_to_name(i), + context.context); + security_release_secctx(&context); + } + } + audit_buffer_aux_end(ab); } - audit_log_format(ab, " subj=%s", ctx); - security_release_secctx(ctx, len); return 0; error_path: - audit_panic("error in audit_log_task_context"); + audit_panic("error in audit_log_subject_context"); return error; } +EXPORT_SYMBOL(audit_log_subject_context); + +int audit_log_task_context(struct audit_buffer *ab) +{ + struct lsmblob blob; + + security_current_getsecid_subj(&blob); + return audit_log_subject_context(ab, &blob); +} EXPORT_SYMBOL(audit_log_task_context); +void audit_log_object_context(struct audit_buffer *ab, struct lsmblob *blob) +{ + int i; + int error; + struct lsmcontext context; + + if (!lsm_multiple_contexts()) { + error = security_secid_to_secctx(blob, &context, LSMBLOB_FIRST); + if (error) { + if (error != -EINVAL) + goto error_path; + return; + } + audit_log_format(ab, " obj=%s", context.context); + security_release_secctx(&context); + } else { + audit_log_format(ab, " obj=?"); + error = audit_buffer_aux_new(ab, AUDIT_MAC_OBJ_CONTEXTS); + if (error) + goto error_path; + + for (i = 0; i < LSMBLOB_ENTRIES; i++) { + if (blob->secid[i] == 0) + continue; + error = security_secid_to_secctx(blob, &context, i); + if (error) { + audit_log_format(ab, "%sobj_%s=?", + i ? " " : "", + lsm_slot_to_name(i)); + if (error != -EINVAL) + audit_panic("error in audit_log_object_context"); + } else { + audit_log_format(ab, "%sobj_%s=%s", + i ? " " : "", + lsm_slot_to_name(i), + context.context); + security_release_secctx(&context); + } + } + + audit_buffer_aux_end(ab); + } + return; + +error_path: + audit_panic("error in audit_log_object_context"); +} + void audit_log_d_path_exe(struct audit_buffer *ab, struct mm_struct *mm) { @@ -2392,33 +2535,21 @@ audit_sig_uid = auid; else audit_sig_uid = uid; - security_current_getsecid_subj(&audit_sig_sid); + security_current_getsecid_subj(&audit_sig_lsm); } return audit_signal_info_syscall(t); } /** - * audit_log_end - end one audit record - * @ab: the audit_buffer - * - * We can not do a netlink send inside an irq context because it blocks (last - * arg, flags, is not set to MSG_DONTWAIT), so the audit buffer is placed on a - * queue and a kthread is scheduled to remove them from the queue outside the - * irq context. May be called in any context. + * __audit_log_end - enqueue one audit record + * @skb: the buffer to send */ -void audit_log_end(struct audit_buffer *ab) +static void __audit_log_end(struct sk_buff *skb) { - struct sk_buff *skb; struct nlmsghdr *nlh; - if (!ab) - return; - if (audit_rate_check()) { - skb = ab->skb; - ab->skb = NULL; - /* setup the netlink header, see the comments in * kauditd_send_multicast_skb() for length quirks */ nlh = nlmsg_hdr(skb); @@ -2429,6 +2560,26 @@ wake_up_interruptible(&kauditd_wait); } else audit_log_lost("rate limit exceeded"); +} + +/** + * audit_log_end - end one audit record + * @ab: the audit_buffer + * + * We can not do a netlink send inside an irq context because it blocks (last + * arg, flags, is not set to MSG_DONTWAIT), so the audit buffer is placed on a + * queue and a kthread is scheduled to remove them from the queue outside the + * irq context. May be called in any context. + */ +void audit_log_end(struct audit_buffer *ab) +{ + struct sk_buff *skb; + + if (!ab) + return; + + while ((skb = skb_dequeue(&ab->skb_list))) + __audit_log_end(skb); audit_buffer_free(ab); } --- linux-5.19.0.orig/kernel/audit.h +++ linux-5.19.0/kernel/audit.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include // struct open_how @@ -81,7 +82,7 @@ kuid_t uid; kgid_t gid; dev_t rdev; - u32 osid; + struct lsmblob lsmblob; struct audit_cap_data fcap; unsigned int fcap_ver; unsigned char type; /* record type */ @@ -98,6 +99,12 @@ char *value; /* the cmdline field */ }; +/* A timestamp/serial pair to identify an event */ +struct audit_stamp { + struct timespec64 ctime; /* time of syscall entry */ + unsigned int serial; /* serial number for record */ +}; + /* The per-task audit context. */ struct audit_context { int dummy; /* must be the first element */ @@ -107,10 +114,9 @@ AUDIT_CTX_URING, /* in use by io_uring */ } context; enum audit_state state, current_state; - unsigned int serial; /* serial number for record */ + struct audit_stamp stamp; /* event identifier */ int major; /* syscall number */ int uring_op; /* uring operation */ - struct timespec64 ctime; /* time of syscall entry */ unsigned long argv[4]; /* syscall arguments */ long return_code;/* syscall return code */ u64 prio; @@ -143,7 +149,7 @@ kuid_t target_auid; kuid_t target_uid; unsigned int target_sessionid; - u32 target_sid; + struct lsmblob target_lsm; char target_comm[TASK_COMM_LEN]; struct audit_tree_refs *trees, *first_trees; @@ -264,7 +270,7 @@ #ifdef CONFIG_AUDITSYSCALL extern unsigned int audit_serial(void); extern int auditsc_get_stamp(struct audit_context *ctx, - struct timespec64 *t, unsigned int *serial); + struct audit_stamp *stamp); extern void audit_put_watch(struct audit_watch *watch); extern void audit_get_watch(struct audit_watch *watch); @@ -305,7 +311,7 @@ struct audit_context *ctx); extern struct list_head *audit_killed_trees(void); #else /* CONFIG_AUDITSYSCALL */ -#define auditsc_get_stamp(c, t, s) 0 +#define auditsc_get_stamp(c, s) 0 #define audit_put_watch(w) do { } while (0) #define audit_get_watch(w) do { } while (0) #define audit_to_watch(k, p, l, o) (-EINVAL) --- linux-5.19.0.orig/kernel/audit_fsnotify.c +++ linux-5.19.0/kernel/audit_fsnotify.c @@ -102,6 +102,7 @@ ret = fsnotify_add_inode_mark(&audit_mark->mark, inode, 0); if (ret < 0) { + audit_mark->path = NULL; fsnotify_put_mark(&audit_mark->mark); audit_mark = ERR_PTR(ret); } --- linux-5.19.0.orig/kernel/auditfilter.c +++ linux-5.19.0/kernel/auditfilter.c @@ -76,7 +76,7 @@ case AUDIT_OBJ_LEV_LOW: case AUDIT_OBJ_LEV_HIGH: kfree(f->lsm_str); - security_audit_rule_free(f->lsm_rule); + security_audit_rule_free(&f->lsm_rules); } } @@ -529,7 +529,7 @@ entry->rule.buflen += f_val; f->lsm_str = str; err = security_audit_rule_init(f->type, f->op, str, - (void **)&f->lsm_rule); + &f->lsm_rules); /* Keep currently invalid fields around in case they * become valid after a policy reload. */ if (err == -EINVAL) { @@ -782,7 +782,7 @@ return 0; } -/* Duplicate LSM field information. The lsm_rule is opaque, so must be +/* Duplicate LSM field information. The lsm_rules is opaque, so must be * re-initialized. */ static inline int audit_dupe_lsm_field(struct audit_field *df, struct audit_field *sf) @@ -796,9 +796,9 @@ return -ENOMEM; df->lsm_str = lsm_str; - /* our own (refreshed) copy of lsm_rule */ + /* our own (refreshed) copy of lsm_rules */ ret = security_audit_rule_init(df->type, df->op, df->lsm_str, - (void **)&df->lsm_rule); + &df->lsm_rules); /* Keep currently invalid fields around in case they * become valid after a policy reload. */ if (ret == -EINVAL) { @@ -850,7 +850,7 @@ new->tree = old->tree; memcpy(new->fields, old->fields, sizeof(struct audit_field) * fcount); - /* deep copy this information, updating the lsm_rule fields, because + /* deep copy this information, updating the lsm_rules fields, because * the originals will all be freed when the old rule is freed. */ for (i = 0; i < fcount; i++) { switch (new->fields[i].type) { @@ -1337,8 +1337,8 @@ for (i = 0; i < e->rule.field_count; i++) { struct audit_field *f = &e->rule.fields[i]; + struct lsmblob blob; pid_t pid; - u32 sid; switch (f->type) { case AUDIT_PID: @@ -1367,10 +1367,11 @@ case AUDIT_SUBJ_TYPE: case AUDIT_SUBJ_SEN: case AUDIT_SUBJ_CLR: - if (f->lsm_rule) { - security_current_getsecid_subj(&sid); - result = security_audit_rule_match(sid, - f->type, f->op, f->lsm_rule); + if (f->lsm_str) { + security_current_getsecid_subj(&blob); + result = security_audit_rule_match( + &blob, f->type, f->op, + &f->lsm_rules); } break; case AUDIT_EXE: @@ -1397,7 +1398,7 @@ return ret; } -static int update_lsm_rule(struct audit_krule *r) +static int update_lsm_rules(struct audit_krule *r) { struct audit_entry *entry = container_of(r, struct audit_entry, rule); struct audit_entry *nentry; @@ -1429,7 +1430,7 @@ return err; } -/* This function will re-initialize the lsm_rule field of all applicable rules. +/* This function will re-initialize the lsm_rules field of all applicable rules. * It will traverse the filter lists serarching for rules that contain LSM * specific filter fields. When such a rule is found, it is copied, the * LSM field is re-initialized, and the old rule is replaced with the @@ -1444,7 +1445,7 @@ for (i = 0; i < AUDIT_NR_FILTERS; i++) { list_for_each_entry_safe(r, n, &audit_rules_list[i], list) { - int res = update_lsm_rule(r); + int res = update_lsm_rules(r); if (!err) err = res; } --- linux-5.19.0.orig/kernel/auditsc.c +++ linux-5.19.0/kernel/auditsc.c @@ -99,7 +99,7 @@ kuid_t target_auid[AUDIT_AUX_PIDS]; kuid_t target_uid[AUDIT_AUX_PIDS]; unsigned int target_sessionid[AUDIT_AUX_PIDS]; - u32 target_sid[AUDIT_AUX_PIDS]; + struct lsmblob target_lsm[AUDIT_AUX_PIDS]; char target_comm[AUDIT_AUX_PIDS][TASK_COMM_LEN]; int pid_count; }; @@ -467,7 +467,7 @@ { const struct cred *cred; int i, need_sid = 1; - u32 sid; + struct lsmblob blob; unsigned int sessionid; if (ctx && rule->prio <= ctx->prio) @@ -664,7 +664,7 @@ match for now to avoid losing information that may be wanted. An error message will also be logged upon error */ - if (f->lsm_rule) { + if (f->lsm_str) { if (need_sid) { /* @tsk should always be equal to * @current with the exception of @@ -675,12 +675,12 @@ * here even though it always refs * @current's creds */ - security_current_getsecid_subj(&sid); + security_current_getsecid_subj(&blob); need_sid = 0; } - result = security_audit_rule_match(sid, f->type, - f->op, - f->lsm_rule); + result = security_audit_rule_match(&blob, + f->type, f->op, + &f->lsm_rules); } break; case AUDIT_OBJ_USER: @@ -690,21 +690,27 @@ case AUDIT_OBJ_LEV_HIGH: /* The above note for AUDIT_SUBJ_USER...AUDIT_SUBJ_CLR also applies here */ - if (f->lsm_rule) { + if (f->lsm_str) { /* Find files that match */ if (name) { + /* + * lsmblob_init sets all values in the + * lsmblob to sid. This is temporary + * until name->osid is converted to a + * lsmblob, which happens later in + * this patch set. + */ result = security_audit_rule_match( - name->osid, + &name->lsmblob, f->type, f->op, - f->lsm_rule); + &f->lsm_rules); } else if (ctx) { list_for_each_entry(n, &ctx->names_list, list) { if (security_audit_rule_match( - n->osid, - f->type, - f->op, - f->lsm_rule)) { + &n->lsmblob, + f->type, f->op, + &f->lsm_rules)) { ++result; break; } @@ -713,9 +719,10 @@ /* Find ipc objects that match */ if (!ctx || ctx->type != AUDIT_IPC) break; - if (security_audit_rule_match(ctx->ipc.osid, + lsmblob_init(&blob, ctx->ipc.osid); + if (security_audit_rule_match(&blob, f->type, f->op, - f->lsm_rule)) + &f->lsm_rules)) ++result; } break; @@ -985,10 +992,10 @@ */ ctx->current_state = ctx->state; - ctx->serial = 0; + ctx->stamp.serial = 0; ctx->major = 0; ctx->uring_op = 0; - ctx->ctime = (struct timespec64){ .tv_sec = 0, .tv_nsec = 0 }; + ctx->stamp.ctime = (struct timespec64){ .tv_sec = 0, .tv_nsec = 0 }; memset(ctx->argv, 0, sizeof(ctx->argv)); ctx->return_code = 0; ctx->prio = (ctx->state == AUDIT_STATE_RECORD ? ~0ULL : 0); @@ -1010,13 +1017,12 @@ ctx->target_pid = 0; ctx->target_auid = ctx->target_uid = KUIDT_INIT(0); ctx->target_sessionid = 0; - ctx->target_sid = 0; + lsmblob_init(&ctx->target_lsm, 0); ctx->target_comm[0] = '\0'; unroll_tree_refs(ctx, NULL, 0); WARN_ON(!list_empty(&ctx->killed_trees)); audit_free_module(ctx); ctx->fds[0] = -1; - audit_proctitle_free(ctx); ctx->type = 0; /* reset last for audit_free_*() */ } @@ -1102,41 +1108,31 @@ { /* resetting is extra work, but it is likely just noise */ audit_reset_context(context); + audit_proctitle_free(context); free_tree_refs(context); kfree(context->filterkey); kfree(context); } -static int audit_log_pid_context(struct audit_context *context, pid_t pid, - kuid_t auid, kuid_t uid, unsigned int sessionid, - u32 sid, char *comm) +static void audit_log_pid_context(struct audit_context *context, pid_t pid, + kuid_t auid, kuid_t uid, + unsigned int sessionid, + struct lsmblob *blob, char *comm) { struct audit_buffer *ab; - char *ctx = NULL; - u32 len; - int rc = 0; ab = audit_log_start(context, GFP_KERNEL, AUDIT_OBJ_PID); if (!ab) - return rc; + return; audit_log_format(ab, "opid=%d oauid=%d ouid=%d oses=%d", pid, from_kuid(&init_user_ns, auid), from_kuid(&init_user_ns, uid), sessionid); - if (sid) { - if (security_secid_to_secctx(sid, &ctx, &len)) { - audit_log_format(ab, " obj=(none)"); - rc = 1; - } else { - audit_log_format(ab, " obj=%s", ctx); - security_release_secctx(ctx, len); - } - } + if (lsmblob_is_set(blob)) + audit_log_object_context(ab, blob); audit_log_format(ab, " ocomm="); audit_log_untrustedstring(ab, comm); audit_log_end(ab); - - return rc; } static void audit_log_execve_info(struct audit_context *context, @@ -1413,16 +1409,10 @@ from_kgid(&init_user_ns, context->ipc.gid), context->ipc.mode); if (osid) { - char *ctx = NULL; - u32 len; + struct lsmblob blob; - if (security_secid_to_secctx(osid, &ctx, &len)) { - audit_log_format(ab, " osid=%u", osid); - *call_panic = 1; - } else { - audit_log_format(ab, " obj=%s", ctx); - security_release_secctx(ctx, len); - } + lsmblob_init(&blob, osid); + audit_log_object_context(ab, &blob); } if (context->ipc.has_perm) { audit_log_end(ab); @@ -1579,20 +1569,8 @@ from_kgid(&init_user_ns, n->gid), MAJOR(n->rdev), MINOR(n->rdev)); - if (n->osid != 0) { - char *ctx = NULL; - u32 len; - - if (security_secid_to_secctx( - n->osid, &ctx, &len)) { - audit_log_format(ab, " osid=%u", n->osid); - if (call_panic) - *call_panic = 2; - } else { - audit_log_format(ab, " obj=%s", ctx); - security_release_secctx(ctx, len); - } - } + if (lsmblob_is_set(&n->lsmblob)) + audit_log_object_context(ab, &n->lsmblob); /* log the audit_names record type */ switch (n->type) { @@ -1797,21 +1775,20 @@ struct audit_aux_data_pids *axs = (void *)aux; for (i = 0; i < axs->pid_count; i++) - if (audit_log_pid_context(context, axs->target_pid[i], - axs->target_auid[i], - axs->target_uid[i], - axs->target_sessionid[i], - axs->target_sid[i], - axs->target_comm[i])) - call_panic = 1; + audit_log_pid_context(context, axs->target_pid[i], + axs->target_auid[i], + axs->target_uid[i], + axs->target_sessionid[i], + &axs->target_lsm[i], + axs->target_comm[i]); } - if (context->target_pid && - audit_log_pid_context(context, context->target_pid, - context->target_auid, context->target_uid, - context->target_sessionid, - context->target_sid, context->target_comm)) - call_panic = 1; + if (context->target_pid) + audit_log_pid_context(context, context->target_pid, + context->target_auid, context->target_uid, + context->target_sessionid, + &context->target_lsm, + context->target_comm); if (context->pwd.dentry && context->pwd.mnt) { ab = audit_log_start(context, GFP_KERNEL, AUDIT_CWD); @@ -1942,7 +1919,7 @@ ctx->context = AUDIT_CTX_URING; ctx->current_state = ctx->state; - ktime_get_coarse_real_ts64(&ctx->ctime); + ktime_get_coarse_real_ts64(&ctx->stamp.ctime); } /** @@ -1965,6 +1942,7 @@ goto out; } + audit_return_fixup(ctx, success, code); if (ctx->context == AUDIT_CTX_SYSCALL) { /* * NOTE: See the note in __audit_uring_entry() about the case @@ -2006,7 +1984,6 @@ audit_filter_inodes(current, ctx); if (ctx->current_state != AUDIT_STATE_RECORD) goto out; - audit_return_fixup(ctx, success, code); audit_log_exit(); out: @@ -2064,7 +2041,7 @@ context->argv[3] = a4; context->context = AUDIT_CTX_SYSCALL; context->current_state = state; - ktime_get_coarse_real_ts64(&context->ctime); + ktime_get_coarse_real_ts64(&context->stamp.ctime); } /** @@ -2090,13 +2067,13 @@ if (!list_empty(&context->killed_trees)) audit_kill_trees(context); + audit_return_fixup(context, success, return_code); /* run through both filters to ensure we set the filterkey properly */ audit_filter_syscall(current, context); audit_filter_inodes(current, context); - if (context->current_state < AUDIT_STATE_RECORD) + if (context->current_state != AUDIT_STATE_RECORD) goto out; - audit_return_fixup(context, success, return_code); audit_log_exit(); out: @@ -2299,7 +2276,7 @@ name->uid = inode->i_uid; name->gid = inode->i_gid; name->rdev = inode->i_rdev; - security_inode_getsecid(inode, &name->osid); + security_inode_getsecid(inode, &name->lsmblob); if (flags & AUDIT_INODE_NOEVAL) { name->fcap_ver = -1; return; @@ -2533,21 +2510,17 @@ /** * auditsc_get_stamp - get local copies of audit_context values * @ctx: audit_context for the task - * @t: timespec64 to store time recorded in the audit_context - * @serial: serial value that is recorded in the audit_context + * @stamp: timestamp to record * * Also sets the context as auditable. */ -int auditsc_get_stamp(struct audit_context *ctx, - struct timespec64 *t, unsigned int *serial) +int auditsc_get_stamp(struct audit_context *ctx, struct audit_stamp *stamp) { if (ctx->context == AUDIT_CTX_UNUSED) return 0; - if (!ctx->serial) - ctx->serial = audit_serial(); - t->tv_sec = ctx->ctime.tv_sec; - t->tv_nsec = ctx->ctime.tv_nsec; - *serial = ctx->serial; + if (!ctx->stamp.serial) + ctx->stamp.serial = audit_serial(); + *stamp = ctx->stamp; if (!ctx->prio) { ctx->prio = 1; ctx->current_state = AUDIT_STATE_RECORD; @@ -2646,12 +2619,17 @@ void __audit_ipc_obj(struct kern_ipc_perm *ipcp) { struct audit_context *context = audit_context(); + struct lsmblob blob; context->ipc.uid = ipcp->uid; context->ipc.gid = ipcp->gid; context->ipc.mode = ipcp->mode; context->ipc.has_perm = 0; - security_ipc_getsecid(ipcp, &context->ipc.osid); + security_ipc_getsecid(ipcp, &blob); + /* context->ipc.osid will be changed to a lsmblob later in + * the patch series. This will allow auditing of all the object + * labels associated with the ipc object. */ + context->ipc.osid = lsmblob_value(&blob); context->type = AUDIT_IPC; } @@ -2748,7 +2726,7 @@ context->target_auid = audit_get_loginuid(t); context->target_uid = task_uid(t); context->target_sessionid = audit_get_sessionid(t); - security_task_getsecid_obj(t, &context->target_sid); + security_task_getsecid_obj(t, &context->target_lsm); memcpy(context->target_comm, t->comm, TASK_COMM_LEN); } @@ -2775,7 +2753,7 @@ ctx->target_auid = audit_get_loginuid(t); ctx->target_uid = t_uid; ctx->target_sessionid = audit_get_sessionid(t); - security_task_getsecid_obj(t, &ctx->target_sid); + security_task_getsecid_obj(t, &ctx->target_lsm); memcpy(ctx->target_comm, t->comm, TASK_COMM_LEN); return 0; } @@ -2796,7 +2774,7 @@ axp->target_auid[axp->pid_count] = audit_get_loginuid(t); axp->target_uid[axp->pid_count] = t_uid; axp->target_sessionid[axp->pid_count] = audit_get_sessionid(t); - security_task_getsecid_obj(t, &axp->target_sid[axp->pid_count]); + security_task_getsecid_obj(t, &axp->target_lsm[axp->pid_count]); memcpy(axp->target_comm[axp->pid_count], t->comm, TASK_COMM_LEN); axp->pid_count++; --- linux-5.19.0.orig/kernel/bpf/arraymap.c +++ linux-5.19.0/kernel/bpf/arraymap.c @@ -156,6 +156,11 @@ return &array->map; } +static void *array_map_elem_ptr(struct bpf_array* array, u32 index) +{ + return array->value + (u64)array->elem_size * index; +} + /* Called from syscall or from eBPF program */ static void *array_map_lookup_elem(struct bpf_map *map, void *key) { @@ -165,7 +170,7 @@ if (unlikely(index >= array->map.max_entries)) return NULL; - return array->value + array->elem_size * (index & array->index_mask); + return array->value + (u64)array->elem_size * (index & array->index_mask); } static int array_map_direct_value_addr(const struct bpf_map *map, u64 *imm, @@ -339,7 +344,7 @@ value, map->value_size); } else { val = array->value + - array->elem_size * (index & array->index_mask); + (u64)array->elem_size * (index & array->index_mask); if (map_flags & BPF_F_LOCK) copy_map_value_locked(map, val, value, false); else @@ -408,8 +413,7 @@ return; for (i = 0; i < array->map.max_entries; i++) - bpf_timer_cancel_and_free(array->value + array->elem_size * i + - map->timer_off); + bpf_timer_cancel_and_free(array_map_elem_ptr(array, i) + map->timer_off); } /* Called when map->refcnt goes to zero, either from workqueue or from syscall */ @@ -420,7 +424,7 @@ if (map_value_has_kptrs(map)) { for (i = 0; i < array->map.max_entries; i++) - bpf_map_free_kptrs(map, array->value + array->elem_size * i); + bpf_map_free_kptrs(map, array_map_elem_ptr(array, i)); bpf_map_free_kptr_off_tab(map); } @@ -556,7 +560,7 @@ index = info->index & array->index_mask; if (info->percpu_value_buf) return array->pptrs[index]; - return array->value + array->elem_size * index; + return array_map_elem_ptr(array, index); } static void *bpf_array_map_seq_next(struct seq_file *seq, void *v, loff_t *pos) @@ -575,7 +579,7 @@ index = info->index & array->index_mask; if (info->percpu_value_buf) return array->pptrs[index]; - return array->value + array->elem_size * index; + return array_map_elem_ptr(array, index); } static int __bpf_array_map_seq_show(struct seq_file *seq, void *v) @@ -645,6 +649,11 @@ seq_info->percpu_value_buf = value_buf; } + /* bpf_iter_attach_map() acquires a map uref, and the uref may be + * released before or in the middle of iterating map elements, so + * acquire an extra map uref for iterator. + */ + bpf_map_inc_with_uref(map); seq_info->map = map; return 0; } @@ -653,6 +662,7 @@ { struct bpf_iter_seq_array_map_info *seq_info = priv_data; + bpf_map_put_with_uref(seq_info->map); kfree(seq_info->percpu_value_buf); } @@ -690,7 +700,7 @@ if (is_percpu) val = this_cpu_ptr(array->pptrs[i]); else - val = array->value + array->elem_size * i; + val = array_map_elem_ptr(array, i); num_elems++; key = i; ret = callback_fn((u64)(long)map, (u64)(long)&key, --- linux-5.19.0.orig/kernel/bpf/bpf_local_storage.c +++ linux-5.19.0/kernel/bpf/bpf_local_storage.c @@ -74,7 +74,7 @@ gfp_flags | __GFP_NOWARN); if (selem) { if (value) - memcpy(SDATA(selem)->data, value, smap->map.value_size); + copy_map_value(&smap->map, SDATA(selem)->data, value); return selem; } @@ -555,11 +555,11 @@ struct bpf_local_storage_elem, map_node))) { if (busy_counter) { migrate_disable(); - __this_cpu_inc(*busy_counter); + this_cpu_inc(*busy_counter); } bpf_selem_unlink(selem, false); if (busy_counter) { - __this_cpu_dec(*busy_counter); + this_cpu_dec(*busy_counter); migrate_enable(); } cond_resched_rcu(); --- linux-5.19.0.orig/kernel/bpf/bpf_lsm.c +++ linux-5.19.0/kernel/bpf/bpf_lsm.c @@ -250,6 +250,7 @@ BTF_ID(func, bpf_lsm_task_prctl) BTF_ID(func, bpf_lsm_task_setscheduler) BTF_ID(func, bpf_lsm_task_to_inode) +BTF_ID(func, bpf_lsm_userns_create) BTF_SET_END(sleepable_lsm_hooks) bool bpf_lsm_is_sleepable_hook(u32 btf_id) --- linux-5.19.0.orig/kernel/bpf/bpf_task_storage.c +++ linux-5.19.0/kernel/bpf/bpf_task_storage.c @@ -26,20 +26,20 @@ static void bpf_task_storage_lock(void) { migrate_disable(); - __this_cpu_inc(bpf_task_storage_busy); + this_cpu_inc(bpf_task_storage_busy); } static void bpf_task_storage_unlock(void) { - __this_cpu_dec(bpf_task_storage_busy); + this_cpu_dec(bpf_task_storage_busy); migrate_enable(); } static bool bpf_task_storage_trylock(void) { migrate_disable(); - if (unlikely(__this_cpu_inc_return(bpf_task_storage_busy) != 1)) { - __this_cpu_dec(bpf_task_storage_busy); + if (unlikely(this_cpu_inc_return(bpf_task_storage_busy) != 1)) { + this_cpu_dec(bpf_task_storage_busy); migrate_enable(); return false; } --- linux-5.19.0.orig/kernel/bpf/btf.c +++ linux-5.19.0/kernel/bpf/btf.c @@ -3120,7 +3120,7 @@ if (v->next_member) { const struct btf_type *last_member_type; const struct btf_member *last_member; - u16 last_member_type_id; + u32 last_member_type_id; last_member = btf_type_member(v->t) + v->next_member - 1; last_member_type_id = last_member->type; @@ -4325,6 +4325,11 @@ return -EINVAL; } + if (btf_type_is_resolve_source_only(ret_type)) { + btf_verifier_log_type(env, t, "Invalid return type"); + return -EINVAL; + } + if (btf_type_needs_resolve(ret_type) && !env_type_is_resolved(env, ret_type_id)) { err = btf_resolve(env, ret_type, ret_type_id); @@ -4365,6 +4370,11 @@ break; } + if (btf_type_is_resolve_source_only(arg_type)) { + btf_verifier_log_type(env, t, "Invalid arg#%u", i + 1); + return -EINVAL; + } + if (args[i].name_off && (!btf_name_offset_valid(btf, args[i].name_off) || !btf_name_valid_identifier(btf, args[i].name_off))) { --- linux-5.19.0.orig/kernel/bpf/cgroup.c +++ linux-5.19.0/kernel/bpf/cgroup.c @@ -157,11 +157,12 @@ mutex_lock(&cgroup_mutex); for (atype = 0; atype < ARRAY_SIZE(cgrp->bpf.progs); atype++) { - struct list_head *progs = &cgrp->bpf.progs[atype]; - struct bpf_prog_list *pl, *pltmp; + struct hlist_head *progs = &cgrp->bpf.progs[atype]; + struct bpf_prog_list *pl; + struct hlist_node *pltmp; - list_for_each_entry_safe(pl, pltmp, progs, node) { - list_del(&pl->node); + hlist_for_each_entry_safe(pl, pltmp, progs, node) { + hlist_del(&pl->node); if (pl->prog) bpf_prog_put(pl->prog); if (pl->link) @@ -217,12 +218,12 @@ /* count number of elements in the list. * it's slow but the list cannot be long */ -static u32 prog_list_length(struct list_head *head) +static u32 prog_list_length(struct hlist_head *head) { struct bpf_prog_list *pl; u32 cnt = 0; - list_for_each_entry(pl, head, node) { + hlist_for_each_entry(pl, head, node) { if (!prog_list_prog(pl)) continue; cnt++; @@ -291,7 +292,7 @@ if (cnt > 0 && !(p->bpf.flags[atype] & BPF_F_ALLOW_MULTI)) continue; - list_for_each_entry(pl, &p->bpf.progs[atype], node) { + hlist_for_each_entry(pl, &p->bpf.progs[atype], node) { if (!prog_list_prog(pl)) continue; @@ -342,7 +343,7 @@ cgroup_bpf_get(p); for (i = 0; i < NR; i++) - INIT_LIST_HEAD(&cgrp->bpf.progs[i]); + INIT_HLIST_HEAD(&cgrp->bpf.progs[i]); INIT_LIST_HEAD(&cgrp->bpf.storages); @@ -418,7 +419,7 @@ #define BPF_CGROUP_MAX_PROGS 64 -static struct bpf_prog_list *find_attach_entry(struct list_head *progs, +static struct bpf_prog_list *find_attach_entry(struct hlist_head *progs, struct bpf_prog *prog, struct bpf_cgroup_link *link, struct bpf_prog *replace_prog, @@ -428,12 +429,12 @@ /* single-attach case */ if (!allow_multi) { - if (list_empty(progs)) + if (hlist_empty(progs)) return NULL; - return list_first_entry(progs, typeof(*pl), node); + return hlist_entry(progs->first, typeof(*pl), node); } - list_for_each_entry(pl, progs, node) { + hlist_for_each_entry(pl, progs, node) { if (prog && pl->prog == prog && prog != replace_prog) /* disallow attaching the same prog twice */ return ERR_PTR(-EINVAL); @@ -444,7 +445,7 @@ /* direct prog multi-attach w/ replacement case */ if (replace_prog) { - list_for_each_entry(pl, progs, node) { + hlist_for_each_entry(pl, progs, node) { if (pl->prog == replace_prog) /* a match found */ return pl; @@ -480,7 +481,7 @@ struct bpf_cgroup_storage *new_storage[MAX_BPF_CGROUP_STORAGE_TYPE] = {}; enum cgroup_bpf_attach_type atype; struct bpf_prog_list *pl; - struct list_head *progs; + struct hlist_head *progs; int err; if (((flags & BPF_F_ALLOW_OVERRIDE) && (flags & BPF_F_ALLOW_MULTI)) || @@ -503,7 +504,7 @@ if (!hierarchy_allows_attach(cgrp, atype)) return -EPERM; - if (!list_empty(progs) && cgrp->bpf.flags[atype] != saved_flags) + if (!hlist_empty(progs) && cgrp->bpf.flags[atype] != saved_flags) /* Disallow attaching non-overridable on top * of existing overridable in this cgroup. * Disallow attaching multi-prog if overridable or none @@ -525,12 +526,22 @@ if (pl) { old_prog = pl->prog; } else { + struct hlist_node *last = NULL; + pl = kmalloc(sizeof(*pl), GFP_KERNEL); if (!pl) { bpf_cgroup_storages_free(new_storage); return -ENOMEM; } - list_add_tail(&pl->node, progs); + if (hlist_empty(progs)) + hlist_add_head(&pl->node, progs); + else + hlist_for_each(last, progs) { + if (last->next) + continue; + hlist_add_behind(&pl->node, last); + break; + } } pl->prog = prog; @@ -556,7 +567,7 @@ } bpf_cgroup_storages_free(new_storage); if (!old_prog) { - list_del(&pl->node); + hlist_del(&pl->node); kfree(pl); } return err; @@ -587,7 +598,7 @@ struct cgroup_subsys_state *css; struct bpf_prog_array *progs; struct bpf_prog_list *pl; - struct list_head *head; + struct hlist_head *head; struct cgroup *cg; int pos; @@ -603,7 +614,7 @@ continue; head = &cg->bpf.progs[atype]; - list_for_each_entry(pl, head, node) { + hlist_for_each_entry(pl, head, node) { if (!prog_list_prog(pl)) continue; if (pl->link == link) @@ -637,7 +648,7 @@ enum cgroup_bpf_attach_type atype; struct bpf_prog *old_prog; struct bpf_prog_list *pl; - struct list_head *progs; + struct hlist_head *progs; bool found = false; atype = to_cgroup_bpf_attach_type(link->type); @@ -649,7 +660,7 @@ if (link->link.prog->type != new_prog->type) return -EINVAL; - list_for_each_entry(pl, progs, node) { + hlist_for_each_entry(pl, progs, node) { if (pl->link == link) { found = true; break; @@ -688,7 +699,7 @@ return ret; } -static struct bpf_prog_list *find_detach_entry(struct list_head *progs, +static struct bpf_prog_list *find_detach_entry(struct hlist_head *progs, struct bpf_prog *prog, struct bpf_cgroup_link *link, bool allow_multi) @@ -696,14 +707,14 @@ struct bpf_prog_list *pl; if (!allow_multi) { - if (list_empty(progs)) + if (hlist_empty(progs)) /* report error when trying to detach and nothing is attached */ return ERR_PTR(-ENOENT); /* to maintain backward compatibility NONE and OVERRIDE cgroups * allow detaching with invalid FD (prog==NULL) in legacy mode */ - return list_first_entry(progs, typeof(*pl), node); + return hlist_entry(progs->first, typeof(*pl), node); } if (!prog && !link) @@ -713,7 +724,7 @@ return ERR_PTR(-EINVAL); /* find the prog or link and detach it */ - list_for_each_entry(pl, progs, node) { + hlist_for_each_entry(pl, progs, node) { if (pl->prog == prog && pl->link == link) return pl; } @@ -721,6 +732,62 @@ } /** + * purge_effective_progs() - After compute_effective_progs fails to alloc new + * cgrp->bpf.inactive table we can recover by + * recomputing the array in place. + * + * @cgrp: The cgroup which descendants to travers + * @prog: A program to detach or NULL + * @link: A link to detach or NULL + * @atype: Type of detach operation + */ +static void purge_effective_progs(struct cgroup *cgrp, struct bpf_prog *prog, + struct bpf_cgroup_link *link, + enum cgroup_bpf_attach_type atype) +{ + struct cgroup_subsys_state *css; + struct bpf_prog_array *progs; + struct bpf_prog_list *pl; + struct hlist_head *head; + struct cgroup *cg; + int pos; + + /* recompute effective prog array in place */ + css_for_each_descendant_pre(css, &cgrp->self) { + struct cgroup *desc = container_of(css, struct cgroup, self); + + if (percpu_ref_is_zero(&desc->bpf.refcnt)) + continue; + + /* find position of link or prog in effective progs array */ + for (pos = 0, cg = desc; cg; cg = cgroup_parent(cg)) { + if (pos && !(cg->bpf.flags[atype] & BPF_F_ALLOW_MULTI)) + continue; + + head = &cg->bpf.progs[atype]; + hlist_for_each_entry(pl, head, node) { + if (!prog_list_prog(pl)) + continue; + if (pl->prog == prog && pl->link == link) + goto found; + pos++; + } + } + + /* no link or prog match, skip the cgroup of this layer */ + continue; +found: + progs = rcu_dereference_protected( + desc->bpf.effective[atype], + lockdep_is_held(&cgroup_mutex)); + + /* Remove the program from the array */ + WARN_ONCE(bpf_prog_array_delete_safe_at(progs, pos), + "Failed to purge a prog from array at index %d", pos); + } +} + +/** * __cgroup_bpf_detach() - Detach the program or link from a cgroup, and * propagate the change to descendants * @cgrp: The cgroup which descendants to traverse @@ -737,9 +804,8 @@ enum cgroup_bpf_attach_type atype; struct bpf_prog *old_prog; struct bpf_prog_list *pl; - struct list_head *progs; + struct hlist_head *progs; u32 flags; - int err; atype = to_cgroup_bpf_attach_type(type); if (atype < 0) @@ -761,26 +827,24 @@ pl->prog = NULL; pl->link = NULL; - err = update_effective_progs(cgrp, atype); - if (err) - goto cleanup; + if (update_effective_progs(cgrp, atype)) { + /* if update effective array failed replace the prog with a dummy prog*/ + pl->prog = old_prog; + pl->link = link; + purge_effective_progs(cgrp, old_prog, link, atype); + } /* now can actually delete it from this cgroup list */ - list_del(&pl->node); + hlist_del(&pl->node); + kfree(pl); - if (list_empty(progs)) + if (hlist_empty(progs)) /* last program was detached, reset flags to zero */ cgrp->bpf.flags[atype] = 0; if (old_prog) bpf_prog_put(old_prog); static_branch_dec(&cgroup_bpf_enabled_key[atype]); return 0; - -cleanup: - /* restore back prog or link */ - pl->prog = old_prog; - pl->link = link; - return err; } static int cgroup_bpf_detach(struct cgroup *cgrp, struct bpf_prog *prog, @@ -802,7 +866,7 @@ enum bpf_attach_type type = attr->query.attach_type; enum cgroup_bpf_attach_type atype; struct bpf_prog_array *effective; - struct list_head *progs; + struct hlist_head *progs; struct bpf_prog *prog; int cnt, ret = 0, i; u32 flags; @@ -841,7 +905,7 @@ u32 id; i = 0; - list_for_each_entry(pl, progs, node) { + hlist_for_each_entry(pl, progs, node) { prog = prog_list_prog(pl); id = prog->aux->id; if (copy_to_user(prog_ids + i, &id, sizeof(id))) --- linux-5.19.0.orig/kernel/bpf/core.c +++ linux-5.19.0/kernel/bpf/core.c @@ -649,12 +649,6 @@ return fp->jited && !bpf_prog_was_classic(fp); } -static bool bpf_prog_kallsyms_verify_off(const struct bpf_prog *fp) -{ - return list_empty(&fp->aux->ksym.lnode) || - fp->aux->ksym.lnode.prev == LIST_POISON2; -} - void bpf_prog_kallsyms_add(struct bpf_prog *fp) { if (!bpf_prog_kallsyms_candidate(fp) || @@ -828,6 +822,11 @@ unsigned long bitmap[]; }; +void bpf_jit_fill_hole_with_zero(void *area, unsigned int size) +{ + memset(area, 0, size); +} + #define BPF_PROG_SIZE_TO_NBITS(size) (round_up(size, BPF_PROG_CHUNK_SIZE) / BPF_PROG_CHUNK_SIZE) static size_t bpf_prog_pack_size = -1; @@ -898,7 +897,7 @@ return pack; } -static void *bpf_prog_pack_alloc(u32 size, bpf_jit_fill_hole_t bpf_fill_ill_insns) +void *bpf_prog_pack_alloc(u32 size, bpf_jit_fill_hole_t bpf_fill_ill_insns) { unsigned int nbits = BPF_PROG_SIZE_TO_NBITS(size); struct bpf_prog_pack *pack; @@ -942,7 +941,7 @@ return ptr; } -static void bpf_prog_pack_free(struct bpf_binary_header *hdr) +void bpf_prog_pack_free(struct bpf_binary_header *hdr) { struct bpf_prog_pack *pack = NULL, *tmp; unsigned int nbits; @@ -1011,7 +1010,7 @@ int bpf_jit_charge_modmem(u32 size) { - if (atomic_long_add_return(size, &bpf_jit_current) > bpf_jit_limit) { + if (atomic_long_add_return(size, &bpf_jit_current) > READ_ONCE(bpf_jit_limit)) { if (!bpf_capable()) { atomic_long_sub(size, &bpf_jit_current); return -EPERM; @@ -1152,7 +1151,6 @@ bpf_prog_pack_free(ro_header); return PTR_ERR(ptr); } - prog->aux->use_bpf_prog_pack = true; return 0; } @@ -1176,17 +1174,23 @@ bpf_jit_uncharge_modmem(size); } +struct bpf_binary_header * +bpf_jit_binary_pack_hdr(const struct bpf_prog *fp) +{ + unsigned long real_start = (unsigned long)fp->bpf_func; + unsigned long addr; + + addr = real_start & BPF_PROG_CHUNK_MASK; + return (void *)addr; +} + static inline struct bpf_binary_header * bpf_jit_binary_hdr(const struct bpf_prog *fp) { unsigned long real_start = (unsigned long)fp->bpf_func; unsigned long addr; - if (fp->aux->use_bpf_prog_pack) - addr = real_start & BPF_PROG_CHUNK_MASK; - else - addr = real_start & PAGE_MASK; - + addr = real_start & PAGE_MASK; return (void *)addr; } @@ -1199,11 +1203,7 @@ if (fp->jited) { struct bpf_binary_header *hdr = bpf_jit_binary_hdr(fp); - if (fp->aux->use_bpf_prog_pack) - bpf_jit_binary_pack_free(hdr, NULL /* rw_buffer */); - else - bpf_jit_binary_free(hdr); - + bpf_jit_binary_free(hdr); WARN_ON_ONCE(!bpf_prog_kallsyms_verify_off(fp)); } @@ -2715,6 +2715,12 @@ { return false; } + +/* Return TRUE if the JIT backend supports mixing bpf2bpf and tailcalls. */ +bool __weak bpf_jit_supports_subprog_tailcalls(void) +{ + return false; +} bool __weak bpf_jit_supports_kfunc_call(void) { --- linux-5.19.0.orig/kernel/bpf/dispatcher.c +++ linux-5.19.0/kernel/bpf/dispatcher.c @@ -85,12 +85,12 @@ return false; } -int __weak arch_prepare_bpf_dispatcher(void *image, s64 *funcs, int num_funcs) +int __weak arch_prepare_bpf_dispatcher(void *image, void *buf, s64 *funcs, int num_funcs) { return -ENOTSUPP; } -static int bpf_dispatcher_prepare(struct bpf_dispatcher *d, void *image) +static int bpf_dispatcher_prepare(struct bpf_dispatcher *d, void *image, void *buf) { s64 ips[BPF_DISPATCHER_MAX] = {}, *ipsp = &ips[0]; int i; @@ -99,12 +99,12 @@ if (d->progs[i].prog) *ipsp++ = (s64)(uintptr_t)d->progs[i].prog->bpf_func; } - return arch_prepare_bpf_dispatcher(image, &ips[0], d->num_progs); + return arch_prepare_bpf_dispatcher(image, buf, &ips[0], d->num_progs); } static void bpf_dispatcher_update(struct bpf_dispatcher *d, int prev_num_progs) { - void *old, *new; + void *old, *new, *tmp; u32 noff; int err; @@ -117,8 +117,14 @@ } new = d->num_progs ? d->image + noff : NULL; + tmp = d->num_progs ? d->rw_image + noff : NULL; if (new) { - if (bpf_dispatcher_prepare(d, new)) + /* Prepare the dispatcher in d->rw_image. Then use + * bpf_arch_text_copy to update d->image, which is RO+X. + */ + if (bpf_dispatcher_prepare(d, new, tmp)) + return; + if (IS_ERR(bpf_arch_text_copy(new, tmp, PAGE_SIZE / 2))) return; } @@ -140,9 +146,18 @@ mutex_lock(&d->mutex); if (!d->image) { - d->image = bpf_jit_alloc_exec_page(); + d->image = bpf_prog_pack_alloc(PAGE_SIZE, bpf_jit_fill_hole_with_zero); if (!d->image) goto out; + d->rw_image = bpf_jit_alloc_exec(PAGE_SIZE); + if (!d->rw_image) { + u32 size = PAGE_SIZE; + + bpf_arch_text_copy(d->image, &size, sizeof(size)); + bpf_prog_pack_free((struct bpf_binary_header *)d->image); + d->image = NULL; + goto out; + } bpf_image_ksym_add(d->image, &d->ksym); } --- linux-5.19.0.orig/kernel/bpf/hashtab.c +++ linux-5.19.0/kernel/bpf/hashtab.c @@ -162,17 +162,25 @@ unsigned long *pflags) { unsigned long flags; + bool use_raw_lock; hash = hash & HASHTAB_MAP_LOCK_MASK; - migrate_disable(); + use_raw_lock = htab_use_raw_lock(htab); + if (use_raw_lock) + preempt_disable(); + else + migrate_disable(); if (unlikely(__this_cpu_inc_return(*(htab->map_locked[hash])) != 1)) { __this_cpu_dec(*(htab->map_locked[hash])); - migrate_enable(); + if (use_raw_lock) + preempt_enable(); + else + migrate_enable(); return -EBUSY; } - if (htab_use_raw_lock(htab)) + if (use_raw_lock) raw_spin_lock_irqsave(&b->raw_lock, flags); else spin_lock_irqsave(&b->lock, flags); @@ -185,13 +193,18 @@ struct bucket *b, u32 hash, unsigned long flags) { + bool use_raw_lock = htab_use_raw_lock(htab); + hash = hash & HASHTAB_MAP_LOCK_MASK; - if (htab_use_raw_lock(htab)) + if (use_raw_lock) raw_spin_unlock_irqrestore(&b->raw_lock, flags); else spin_unlock_irqrestore(&b->lock, flags); __this_cpu_dec(*(htab->map_locked[hash])); - migrate_enable(); + if (use_raw_lock) + preempt_enable(); + else + migrate_enable(); } static bool htab_lru_map_delete_node(void *arg, struct bpf_lru_node *node); @@ -311,12 +324,8 @@ struct htab_elem *l; if (node) { - u32 key_size = htab->map.key_size; - l = container_of(node, struct htab_elem, lru_node); - memcpy(l->key, key, key_size); - check_and_init_map_value(&htab->map, - l->key + round_up(key_size, 8)); + memcpy(l->key, key, htab->map.key_size); return l; } @@ -1695,8 +1704,11 @@ /* do not grab the lock unless need it (bucket_cnt > 0). */ if (locked) { ret = htab_lock_bucket(htab, b, batch, &flags); - if (ret) - goto next_batch; + if (ret) { + rcu_read_unlock(); + bpf_enable_instrumentation(); + goto after_loop; + } } bucket_cnt = 0; @@ -2064,6 +2076,7 @@ seq_info->percpu_value_buf = value_buf; } + bpf_map_inc_with_uref(map); seq_info->map = map; seq_info->htab = container_of(map, struct bpf_htab, map); return 0; @@ -2073,6 +2086,7 @@ { struct bpf_iter_seq_hash_map_info *seq_info = priv_data; + bpf_map_put_with_uref(seq_info->map); kfree(seq_info->percpu_value_buf); } --- linux-5.19.0.orig/kernel/bpf/helpers.c +++ linux-5.19.0/kernel/bpf/helpers.c @@ -584,7 +584,7 @@ return strncmp(s1, s2, s1_sz); } -const struct bpf_func_proto bpf_strncmp_proto = { +static const struct bpf_func_proto bpf_strncmp_proto = { .func = bpf_strncmp, .gpl_only = false, .ret_type = RET_INTEGER, @@ -1402,7 +1402,7 @@ */ #define BPF_PTR_POISON ((void *)((0xeB9FUL << 2) + POISON_POINTER_DELTA)) -const struct bpf_func_proto bpf_kptr_xchg_proto = { +static const struct bpf_func_proto bpf_kptr_xchg_proto = { .func = bpf_kptr_xchg, .gpl_only = false, .ret_type = RET_PTR_TO_BTF_ID_OR_NULL, @@ -1468,6 +1468,8 @@ { int err; + BTF_TYPE_EMIT(struct bpf_dynptr); + err = bpf_dynptr_check_size(size); if (err) goto error; @@ -1487,7 +1489,7 @@ return err; } -const struct bpf_func_proto bpf_dynptr_from_mem_proto = { +static const struct bpf_func_proto bpf_dynptr_from_mem_proto = { .func = bpf_dynptr_from_mem, .gpl_only = false, .ret_type = RET_INTEGER, @@ -1514,7 +1516,7 @@ return 0; } -const struct bpf_func_proto bpf_dynptr_read_proto = { +static const struct bpf_func_proto bpf_dynptr_read_proto = { .func = bpf_dynptr_read, .gpl_only = false, .ret_type = RET_INTEGER, @@ -1542,7 +1544,7 @@ return 0; } -const struct bpf_func_proto bpf_dynptr_write_proto = { +static const struct bpf_func_proto bpf_dynptr_write_proto = { .func = bpf_dynptr_write, .gpl_only = false, .ret_type = RET_INTEGER, @@ -1570,7 +1572,7 @@ return (unsigned long)(ptr->data + ptr->offset + offset); } -const struct bpf_func_proto bpf_dynptr_data_proto = { +static const struct bpf_func_proto bpf_dynptr_data_proto = { .func = bpf_dynptr_data, .gpl_only = false, .ret_type = RET_PTR_TO_DYNPTR_MEM_OR_NULL, @@ -1627,26 +1629,12 @@ return &bpf_ringbuf_discard_proto; case BPF_FUNC_ringbuf_query: return &bpf_ringbuf_query_proto; - case BPF_FUNC_ringbuf_reserve_dynptr: - return &bpf_ringbuf_reserve_dynptr_proto; - case BPF_FUNC_ringbuf_submit_dynptr: - return &bpf_ringbuf_submit_dynptr_proto; - case BPF_FUNC_ringbuf_discard_dynptr: - return &bpf_ringbuf_discard_dynptr_proto; case BPF_FUNC_for_each_map_elem: return &bpf_for_each_map_elem_proto; case BPF_FUNC_loop: return &bpf_loop_proto; case BPF_FUNC_strncmp: return &bpf_strncmp_proto; - case BPF_FUNC_dynptr_from_mem: - return &bpf_dynptr_from_mem_proto; - case BPF_FUNC_dynptr_read: - return &bpf_dynptr_read_proto; - case BPF_FUNC_dynptr_write: - return &bpf_dynptr_write_proto; - case BPF_FUNC_dynptr_data: - return &bpf_dynptr_data_proto; default: break; } @@ -1675,6 +1663,20 @@ return &bpf_timer_cancel_proto; case BPF_FUNC_kptr_xchg: return &bpf_kptr_xchg_proto; + case BPF_FUNC_ringbuf_reserve_dynptr: + return &bpf_ringbuf_reserve_dynptr_proto; + case BPF_FUNC_ringbuf_submit_dynptr: + return &bpf_ringbuf_submit_dynptr_proto; + case BPF_FUNC_ringbuf_discard_dynptr: + return &bpf_ringbuf_discard_dynptr_proto; + case BPF_FUNC_dynptr_from_mem: + return &bpf_dynptr_from_mem_proto; + case BPF_FUNC_dynptr_read: + return &bpf_dynptr_read_proto; + case BPF_FUNC_dynptr_write: + return &bpf_dynptr_write_proto; + case BPF_FUNC_dynptr_data: + return &bpf_dynptr_data_proto; default: break; } --- linux-5.19.0.orig/kernel/bpf/percpu_freelist.c +++ linux-5.19.0/kernel/bpf/percpu_freelist.c @@ -102,22 +102,21 @@ u32 nr_elems) { struct pcpu_freelist_head *head; - int i, cpu, pcpu_entries; + unsigned int cpu, cpu_idx, i, j, n, m; - pcpu_entries = nr_elems / num_possible_cpus() + 1; - i = 0; + n = nr_elems / num_possible_cpus(); + m = nr_elems % num_possible_cpus(); + cpu_idx = 0; for_each_possible_cpu(cpu) { -again: head = per_cpu_ptr(s->freelist, cpu); - /* No locking required as this is not visible yet. */ - pcpu_freelist_push_node(head, buf); - i++; - buf += elem_size; - if (i == nr_elems) - break; - if (i % pcpu_entries) - goto again; + j = n + (cpu_idx < m ? 1 : 0); + for (i = 0; i < j; i++) { + /* No locking required as this is not visible yet. */ + pcpu_freelist_push_node(head, buf); + buf += elem_size; + } + cpu_idx++; } } --- linux-5.19.0.orig/kernel/bpf/syscall.c +++ linux-5.19.0/kernel/bpf/syscall.c @@ -578,7 +578,7 @@ if (off_desc->type == BPF_KPTR_UNREF) { u64 *p = (u64 *)btf_id_ptr; - WRITE_ONCE(p, 0); + WRITE_ONCE(*p, 0); continue; } old_ptr = xchg(btf_id_ptr, 0); @@ -2074,6 +2074,17 @@ u64 misses; }; +void notrace bpf_prog_inc_misses_counter(struct bpf_prog *prog) +{ + struct bpf_prog_stats *stats; + unsigned int flags; + + stats = this_cpu_ptr(prog->stats); + flags = u64_stats_update_begin_irqsave(&stats->syncp); + u64_stats_inc(&stats->misses); + u64_stats_update_end_irqrestore(&stats->syncp, flags); +} + static void bpf_prog_get_stats(const struct bpf_prog *prog, struct bpf_prog_kstats *stats) { @@ -4361,7 +4372,9 @@ if (attr->task_fd_query.flags != 0) return -EINVAL; + rcu_read_lock(); task = get_pid_task(find_vpid(pid), PIDTYPE_PID); + rcu_read_unlock(); if (!task) return -ENOENT; @@ -5035,9 +5048,6 @@ BPF_CALL_3(bpf_sys_bpf, int, cmd, union bpf_attr *, attr, u32, attr_size) { - struct bpf_prog * __maybe_unused prog; - struct bpf_tramp_run_ctx __maybe_unused run_ctx; - switch (cmd) { case BPF_MAP_CREATE: case BPF_MAP_UPDATE_ELEM: @@ -5047,6 +5057,18 @@ case BPF_LINK_CREATE: case BPF_RAW_TRACEPOINT_OPEN: break; + default: + return -EINVAL; + } + return __sys_bpf(cmd, KERNEL_BPFPTR(attr), attr_size); +} + +int kern_sys_bpf(int cmd, union bpf_attr *attr, unsigned int size) +{ + struct bpf_prog * __maybe_unused prog; + struct bpf_tramp_run_ctx __maybe_unused run_ctx; + + switch (cmd) { #ifdef CONFIG_BPF_JIT /* __bpf_prog_enter_sleepable used by trampoline and JIT */ case BPF_PROG_TEST_RUN: if (attr->test.data_in || attr->test.data_out || @@ -5077,11 +5099,10 @@ return 0; #endif default: - return -EINVAL; + return ____bpf_sys_bpf(cmd, attr, size); } - return __sys_bpf(cmd, KERNEL_BPFPTR(attr), attr_size); } -EXPORT_SYMBOL(bpf_sys_bpf); +EXPORT_SYMBOL(kern_sys_bpf); static const struct bpf_func_proto bpf_sys_bpf_proto = { .func = bpf_sys_bpf, @@ -5130,7 +5151,7 @@ return *res ? 0 : -ENOENT; } -const struct bpf_func_proto bpf_kallsyms_lookup_name_proto = { +static const struct bpf_func_proto bpf_kallsyms_lookup_name_proto = { .func = bpf_kallsyms_lookup_name, .gpl_only = false, .ret_type = RET_INTEGER, @@ -5145,7 +5166,7 @@ { switch (func_id) { case BPF_FUNC_sys_bpf: - return &bpf_sys_bpf_proto; + return !perfmon_capable() ? NULL : &bpf_sys_bpf_proto; case BPF_FUNC_btf_find_by_name_kind: return &bpf_btf_find_by_name_kind_proto; case BPF_FUNC_sys_close: --- linux-5.19.0.orig/kernel/bpf/trampoline.c +++ linux-5.19.0/kernel/bpf/trampoline.c @@ -553,17 +553,6 @@ return start; } -static void notrace inc_misses_counter(struct bpf_prog *prog) -{ - struct bpf_prog_stats *stats; - unsigned int flags; - - stats = this_cpu_ptr(prog->stats); - flags = u64_stats_update_begin_irqsave(&stats->syncp); - u64_stats_inc(&stats->misses); - u64_stats_update_end_irqrestore(&stats->syncp, flags); -} - /* The logic is similar to bpf_prog_run(), but with an explicit * rcu_read_lock() and migrate_disable() which are required * for the trampoline. The macro is split into @@ -585,8 +574,8 @@ run_ctx->saved_run_ctx = bpf_set_run_ctx(&run_ctx->run_ctx); - if (unlikely(__this_cpu_inc_return(*(prog->active)) != 1)) { - inc_misses_counter(prog); + if (unlikely(this_cpu_inc_return(*(prog->active)) != 1)) { + bpf_prog_inc_misses_counter(prog); return 0; } return bpf_prog_start_time(); @@ -620,7 +609,7 @@ bpf_reset_run_ctx(run_ctx->saved_run_ctx); update_prog_stats(prog, start); - __this_cpu_dec(*(prog->active)); + this_cpu_dec(*(prog->active)); migrate_enable(); rcu_read_unlock(); } @@ -631,8 +620,8 @@ migrate_disable(); might_fault(); - if (unlikely(__this_cpu_inc_return(*(prog->active)) != 1)) { - inc_misses_counter(prog); + if (unlikely(this_cpu_inc_return(*(prog->active)) != 1)) { + bpf_prog_inc_misses_counter(prog); return 0; } @@ -647,7 +636,7 @@ bpf_reset_run_ctx(run_ctx->saved_run_ctx); update_prog_stats(prog, start); - __this_cpu_dec(*(prog->active)); + this_cpu_dec(*(prog->active)); migrate_enable(); rcu_read_unlock_trace(); } --- linux-5.19.0.orig/kernel/bpf/verifier.c +++ linux-5.19.0/kernel/bpf/verifier.c @@ -467,25 +467,11 @@ return type & MEM_RDONLY; } -static bool arg_type_may_be_refcounted(enum bpf_arg_type type) -{ - return type == ARG_PTR_TO_SOCK_COMMON; -} - static bool type_may_be_null(u32 type) { return type & PTR_MAYBE_NULL; } -static bool may_be_acquire_function(enum bpf_func_id func_id) -{ - return func_id == BPF_FUNC_sk_lookup_tcp || - func_id == BPF_FUNC_sk_lookup_udp || - func_id == BPF_FUNC_skc_lookup_tcp || - func_id == BPF_FUNC_map_lookup_elem || - func_id == BPF_FUNC_ringbuf_reserve; -} - static bool is_acquire_function(enum bpf_func_id func_id, const struct bpf_map *map) { @@ -518,6 +504,26 @@ func_id == BPF_FUNC_skc_to_tcp_request_sock; } +static bool is_dynptr_acquire_function(enum bpf_func_id func_id) +{ + return func_id == BPF_FUNC_dynptr_data; +} + +static bool helper_multiple_ref_obj_use(enum bpf_func_id func_id, + const struct bpf_map *map) +{ + int ref_obj_uses = 0; + + if (is_ptr_cast_function(func_id)) + ref_obj_uses++; + if (is_acquire_function(func_id, map)) + ref_obj_uses++; + if (is_dynptr_acquire_function(func_id)) + ref_obj_uses++; + + return ref_obj_uses > 1; +} + static bool is_cmpxchg_insn(const struct bpf_insn *insn) { return BPF_CLASS(insn->code) == BPF_STX && @@ -1005,12 +1011,17 @@ */ static void *realloc_array(void *arr, size_t old_n, size_t new_n, size_t size) { + void *new_arr; + if (!new_n || old_n == new_n) goto out; - arr = krealloc_array(arr, new_n, size, GFP_KERNEL); - if (!arr) + new_arr = krealloc_array(arr, new_n, size, GFP_KERNEL); + if (!new_arr) { + kfree(arr); return NULL; + } + arr = new_arr; if (new_n > old_n) memset(arr + old_n * size, 0, (new_n - old_n) * size); @@ -1086,6 +1097,7 @@ id = ++env->id_gen; state->refs[new_ofs].id = id; state->refs[new_ofs].insn_idx = insn_idx; + state->refs[new_ofs].callback_ref = state->in_callback_fn ? state->frameno : 0; return id; } @@ -1098,6 +1110,9 @@ last_idx = state->acquired_refs - 1; for (i = 0; i < state->acquired_refs; i++) { if (state->refs[i].id == ptr_id) { + /* Cannot release caller references in callbacks */ + if (state->in_callback_fn && state->refs[i].callback_ref != state->frameno) + return -EINVAL; if (last_idx && i != last_idx) memcpy(&state->refs[i], &state->refs[last_idx], sizeof(*state->refs)); @@ -2736,7 +2751,7 @@ } } -static int __mark_chain_precision(struct bpf_verifier_env *env, int regno, +static int __mark_chain_precision(struct bpf_verifier_env *env, int frame, int regno, int spi) { struct bpf_verifier_state *st = env->cur_state; @@ -2753,7 +2768,7 @@ if (!env->bpf_capable) return 0; - func = st->frame[st->curframe]; + func = st->frame[frame]; if (regno >= 0) { reg = &func->regs[regno]; if (reg->type != SCALAR_VALUE) { @@ -2834,7 +2849,7 @@ break; new_marks = false; - func = st->frame[st->curframe]; + func = st->frame[frame]; bitmap_from_u64(mask, reg_mask); for_each_set_bit(i, mask, 32) { reg = &func->regs[i]; @@ -2900,12 +2915,17 @@ static int mark_chain_precision(struct bpf_verifier_env *env, int regno) { - return __mark_chain_precision(env, regno, -1); + return __mark_chain_precision(env, env->cur_state->curframe, regno, -1); } -static int mark_chain_precision_stack(struct bpf_verifier_env *env, int spi) +static int mark_chain_precision_frame(struct bpf_verifier_env *env, int frame, int regno) { - return __mark_chain_precision(env, -1, spi); + return __mark_chain_precision(env, frame, regno, -1); +} + +static int mark_chain_precision_stack_frame(struct bpf_verifier_env *env, int frame, int spi) +{ + return __mark_chain_precision(env, frame, -1, spi); } static bool is_spillable_regtype(enum bpf_reg_type type) @@ -3154,14 +3174,17 @@ stype = &state->stack[spi].slot_type[slot % BPF_REG_SIZE]; mark_stack_slot_scratched(env, spi); - if (!env->allow_ptr_leaks - && *stype != NOT_INIT - && *stype != SCALAR_VALUE) { - /* Reject the write if there's are spilled pointers in - * range. If we didn't reject here, the ptr status - * would be erased below (even though not all slots are - * actually overwritten), possibly opening the door to - * leaks. + if (!env->allow_ptr_leaks && *stype != STACK_MISC && *stype != STACK_ZERO) { + /* Reject the write if range we may write to has not + * been initialized beforehand. If we didn't reject + * here, the ptr status would be erased below (even + * though not all slots are actually overwritten), + * possibly opening the door to leaks. + * + * We do however catch STACK_INVALID case below, and + * only allow reading possibly uninitialized memory + * later for CAP_PERFMON, as the write may not happen to + * that slot. */ verbose(env, "spilled ptr in range of var-offset stack write; insn %d, ptr off: %d", insn_idx, i); @@ -5128,10 +5151,6 @@ } if (is_spilled_reg(&state->stack[spi]) && - base_type(state->stack[spi].spilled_ptr.type) == PTR_TO_BTF_ID) - goto mark; - - if (is_spilled_reg(&state->stack[spi]) && (state->stack[spi].spilled_ptr.type == SCALAR_VALUE || env->allow_ptr_leaks)) { if (clobber) { @@ -5161,6 +5180,11 @@ mark_reg_read(env, &state->stack[spi].spilled_ptr, state->stack[spi].spilled_ptr.parent, REG_LIVE_READ64); + /* We do not set REG_LIVE_WRITTEN for stack slot, as we can not + * be sure that whether stack slot is written to or not. Hence, + * we must still conservatively propagate reads upwards even if + * helper may write to the entire memory range. + */ } return update_stack_depth(env, state, min_off); } @@ -5533,17 +5557,6 @@ type == ARG_CONST_SIZE_OR_ZERO; } -static bool arg_type_is_alloc_size(enum bpf_arg_type type) -{ - return type == ARG_CONST_ALLOC_SIZE_OR_ZERO; -} - -static bool arg_type_is_int_ptr(enum bpf_arg_type type) -{ - return type == ARG_PTR_TO_INT || - type == ARG_PTR_TO_LONG; -} - static bool arg_type_is_release(enum bpf_arg_type type) { return type & OBJ_RELEASE; @@ -5847,6 +5860,7 @@ struct bpf_reg_state *regs = cur_regs(env), *reg = ®s[regno]; enum bpf_arg_type arg_type = fn->arg_type[arg]; enum bpf_reg_type type = reg->type; + u32 *arg_btf_id = NULL; int err = 0; if (arg_type == ARG_DONTCARE) @@ -5883,7 +5897,19 @@ */ goto skip_type_check; - err = check_reg_type(env, regno, arg_type, fn->arg_btf_id[arg], meta); + /* We already checked for NULL above */ + if (arg_type == ARG_PTR_TO_ALLOC_MEM) { + if (reg->off != 0 || !tnum_is_const(reg->var_off)) { + verbose(env, "helper wants pointer to allocated memory\n"); + return -EACCES; + } + } + + /* arg_btf_id and arg_size are in a union. */ + if (base_type(arg_type) == ARG_PTR_TO_BTF_ID) + arg_btf_id = fn->arg_btf_id[arg]; + + err = check_reg_type(env, regno, arg_type, arg_btf_id, meta); if (err) return err; @@ -5924,7 +5950,8 @@ meta->ref_obj_id = reg->ref_obj_id; } - if (arg_type == ARG_CONST_MAP_PTR) { + switch (base_type(arg_type)) { + case ARG_CONST_MAP_PTR: /* bpf_map_xxx(map_ptr) call: remember that map_ptr */ if (meta->map_ptr) { /* Use map_uid (which is unique id of inner map) to reject: @@ -5949,7 +5976,8 @@ } meta->map_ptr = reg->map_ptr; meta->map_uid = reg->map_uid; - } else if (arg_type == ARG_PTR_TO_MAP_KEY) { + break; + case ARG_PTR_TO_MAP_KEY: /* bpf_map_xxx(..., map_ptr, ..., key) call: * check that [key, key + map->key_size) are within * stack limits and initialized @@ -5966,7 +5994,8 @@ err = check_helper_mem_access(env, regno, meta->map_ptr->key_size, false, NULL); - } else if (base_type(arg_type) == ARG_PTR_TO_MAP_VALUE) { + break; + case ARG_PTR_TO_MAP_VALUE: if (type_may_be_null(arg_type) && register_is_null(reg)) return 0; @@ -5982,14 +6011,16 @@ err = check_helper_mem_access(env, regno, meta->map_ptr->value_size, false, meta); - } else if (arg_type == ARG_PTR_TO_PERCPU_BTF_ID) { + break; + case ARG_PTR_TO_PERCPU_BTF_ID: if (!reg->btf_id) { verbose(env, "Helper has invalid btf_id in R%d\n", regno); return -EACCES; } meta->ret_btf = reg->btf; meta->ret_btf_id = reg->btf_id; - } else if (arg_type == ARG_PTR_TO_SPIN_LOCK) { + break; + case ARG_PTR_TO_SPIN_LOCK: if (meta->func_id == BPF_FUNC_spin_lock) { if (process_spin_lock(env, regno, true)) return -EACCES; @@ -6000,21 +6031,32 @@ verbose(env, "verifier internal error\n"); return -EFAULT; } - } else if (arg_type == ARG_PTR_TO_TIMER) { + break; + case ARG_PTR_TO_TIMER: if (process_timer_func(env, regno, meta)) return -EACCES; - } else if (arg_type == ARG_PTR_TO_FUNC) { + break; + case ARG_PTR_TO_FUNC: meta->subprogno = reg->subprogno; - } else if (base_type(arg_type) == ARG_PTR_TO_MEM) { + break; + case ARG_PTR_TO_MEM: /* The access to this pointer is only checked when we hit the * next is_mem_size argument below. */ meta->raw_mode = arg_type & MEM_UNINIT; - } else if (arg_type_is_mem_size(arg_type)) { - bool zero_size_allowed = (arg_type == ARG_CONST_SIZE_OR_ZERO); - - err = check_mem_size_reg(env, reg, regno, zero_size_allowed, meta); - } else if (arg_type_is_dynptr(arg_type)) { + if (arg_type & MEM_FIXED_SIZE) { + err = check_helper_mem_access(env, regno, + fn->arg_size[arg], false, + meta); + } + break; + case ARG_CONST_SIZE: + err = check_mem_size_reg(env, reg, regno, false, meta); + break; + case ARG_CONST_SIZE_OR_ZERO: + err = check_mem_size_reg(env, reg, regno, true, meta); + break; + case ARG_PTR_TO_DYNPTR: if (arg_type & MEM_UNINIT) { if (!is_dynptr_reg_valid_uninit(env, reg)) { verbose(env, "Dynptr has to be an uninitialized dynptr\n"); @@ -6048,21 +6090,31 @@ err_extra, arg + 1); return -EINVAL; } - } else if (arg_type_is_alloc_size(arg_type)) { + break; + case ARG_CONST_ALLOC_SIZE_OR_ZERO: if (!tnum_is_const(reg->var_off)) { verbose(env, "R%d is not a known constant'\n", regno); return -EACCES; } meta->mem_size = reg->var_off.value; - } else if (arg_type_is_int_ptr(arg_type)) { + err = mark_chain_precision(env, regno); + if (err) + return err; + break; + case ARG_PTR_TO_INT: + case ARG_PTR_TO_LONG: + { int size = int_ptr_type_to_size(arg_type); err = check_helper_mem_access(env, regno, size, false, meta); if (err) return err; err = check_ptr_alignment(env, reg, 0, size, true); - } else if (arg_type == ARG_PTR_TO_CONST_STR) { + break; + } + case ARG_PTR_TO_CONST_STR: + { struct bpf_map *map = reg->map_ptr; int map_off; u64 map_addr; @@ -6101,9 +6153,12 @@ verbose(env, "string is not zero-terminated\n"); return -EINVAL; } - } else if (arg_type == ARG_PTR_TO_KPTR) { + break; + } + case ARG_PTR_TO_KPTR: if (process_kptr_func(env, regno, meta)) return -EACCES; + break; } return err; @@ -6143,7 +6198,8 @@ static bool allow_tail_call_in_subprogs(struct bpf_verifier_env *env) { - return env->prog->jit_requested && IS_ENABLED(CONFIG_X86_64); + return env->prog->jit_requested && + bpf_jit_supports_subprog_tailcalls(); } static int check_map_func_compatibility(struct bpf_verifier_env *env, @@ -6399,11 +6455,19 @@ return count <= 1; } -static bool check_args_pair_invalid(enum bpf_arg_type arg_curr, - enum bpf_arg_type arg_next) +static bool check_args_pair_invalid(const struct bpf_func_proto *fn, int arg) { - return (base_type(arg_curr) == ARG_PTR_TO_MEM) != - arg_type_is_mem_size(arg_next); + bool is_fixed = fn->arg_type[arg] & MEM_FIXED_SIZE; + bool has_size = fn->arg_size[arg] != 0; + bool is_next_size = false; + + if (arg + 1 < ARRAY_SIZE(fn->arg_type)) + is_next_size = arg_type_is_mem_size(fn->arg_type[arg + 1]); + + if (base_type(fn->arg_type[arg]) != ARG_PTR_TO_MEM) + return is_next_size; + + return has_size == is_next_size || is_next_size == is_fixed; } static bool check_arg_pair_ok(const struct bpf_func_proto *fn) @@ -6414,43 +6478,16 @@ * helper function specification. */ if (arg_type_is_mem_size(fn->arg1_type) || - base_type(fn->arg5_type) == ARG_PTR_TO_MEM || - check_args_pair_invalid(fn->arg1_type, fn->arg2_type) || - check_args_pair_invalid(fn->arg2_type, fn->arg3_type) || - check_args_pair_invalid(fn->arg3_type, fn->arg4_type) || - check_args_pair_invalid(fn->arg4_type, fn->arg5_type)) + check_args_pair_invalid(fn, 0) || + check_args_pair_invalid(fn, 1) || + check_args_pair_invalid(fn, 2) || + check_args_pair_invalid(fn, 3) || + check_args_pair_invalid(fn, 4)) return false; return true; } -static bool check_refcount_ok(const struct bpf_func_proto *fn, int func_id) -{ - int count = 0; - - if (arg_type_may_be_refcounted(fn->arg1_type)) - count++; - if (arg_type_may_be_refcounted(fn->arg2_type)) - count++; - if (arg_type_may_be_refcounted(fn->arg3_type)) - count++; - if (arg_type_may_be_refcounted(fn->arg4_type)) - count++; - if (arg_type_may_be_refcounted(fn->arg5_type)) - count++; - - /* A reference acquiring function cannot acquire - * another refcounted ptr. - */ - if (may_be_acquire_function(func_id) && count) - return false; - - /* We only support one arg being unreferenced at the moment, - * which is sufficient for the helper functions we have right now. - */ - return count <= 1; -} - static bool check_btf_id_ok(const struct bpf_func_proto *fn) { int i; @@ -6459,7 +6496,10 @@ if (base_type(fn->arg_type[i]) == ARG_PTR_TO_BTF_ID && !fn->arg_btf_id[i]) return false; - if (base_type(fn->arg_type[i]) != ARG_PTR_TO_BTF_ID && fn->arg_btf_id[i]) + if (base_type(fn->arg_type[i]) != ARG_PTR_TO_BTF_ID && fn->arg_btf_id[i] && + /* arg_btf_id and arg_size are in a union. */ + (base_type(fn->arg_type[i]) != ARG_PTR_TO_MEM || + !(fn->arg_type[i] & MEM_FIXED_SIZE))) return false; } @@ -6471,38 +6511,21 @@ { return check_raw_mode_ok(fn) && check_arg_pair_ok(fn) && - check_btf_id_ok(fn) && - check_refcount_ok(fn, func_id) ? 0 : -EINVAL; + check_btf_id_ok(fn) ? 0 : -EINVAL; } /* Packet data might have moved, any old PTR_TO_PACKET[_META,_END] * are now invalid, so turn them into unknown SCALAR_VALUE. */ -static void __clear_all_pkt_pointers(struct bpf_verifier_env *env, - struct bpf_func_state *state) +static void clear_all_pkt_pointers(struct bpf_verifier_env *env) { - struct bpf_reg_state *regs = state->regs, *reg; - int i; - - for (i = 0; i < MAX_BPF_REG; i++) - if (reg_is_pkt_pointer_any(®s[i])) - mark_reg_unknown(env, regs, i); + struct bpf_func_state *state; + struct bpf_reg_state *reg; - bpf_for_each_spilled_reg(i, state, reg) { - if (!reg) - continue; + bpf_for_each_reg_in_vstate(env->cur_state, state, reg, ({ if (reg_is_pkt_pointer_any(reg)) __mark_reg_unknown(env, reg); - } -} - -static void clear_all_pkt_pointers(struct bpf_verifier_env *env) -{ - struct bpf_verifier_state *vstate = env->cur_state; - int i; - - for (i = 0; i <= vstate->curframe; i++) - __clear_all_pkt_pointers(env, vstate->frame[i]); + })); } enum { @@ -6531,41 +6554,28 @@ reg->range = AT_PKT_END; } -static void release_reg_references(struct bpf_verifier_env *env, - struct bpf_func_state *state, - int ref_obj_id) -{ - struct bpf_reg_state *regs = state->regs, *reg; - int i; - - for (i = 0; i < MAX_BPF_REG; i++) - if (regs[i].ref_obj_id == ref_obj_id) - mark_reg_unknown(env, regs, i); - - bpf_for_each_spilled_reg(i, state, reg) { - if (!reg) - continue; - if (reg->ref_obj_id == ref_obj_id) - __mark_reg_unknown(env, reg); - } -} - /* The pointer with the specified id has released its reference to kernel * resources. Identify all copies of the same pointer and clear the reference. */ static int release_reference(struct bpf_verifier_env *env, int ref_obj_id) { - struct bpf_verifier_state *vstate = env->cur_state; + struct bpf_func_state *state; + struct bpf_reg_state *reg; int err; - int i; err = release_reference_state(cur_func(env), ref_obj_id); if (err) return err; - for (i = 0; i <= vstate->curframe; i++) - release_reg_references(env, vstate->frame[i], ref_obj_id); + bpf_for_each_reg_in_vstate(env->cur_state, state, reg, ({ + if (reg->ref_obj_id == ref_obj_id) { + if (!env->allow_ptr_leaks) + __mark_reg_not_init(env, reg); + else + __mark_reg_unknown(env, reg); + } + })); return 0; } @@ -6681,11 +6691,11 @@ /* Transfer references to the callee */ err = copy_reference_state(callee, caller); if (err) - return err; + goto err_out; err = set_callee_state_cb(env, caller, callee, *insn_idx); if (err) - return err; + goto err_out; clear_caller_saved_regs(env, caller->regs); @@ -6702,6 +6712,11 @@ print_verifier_state(env, callee, true); } return 0; + +err_out: + free_func_state(callee); + state->frame[state->curframe + 1] = NULL; + return err; } int map_set_for_each_callback_args(struct bpf_verifier_env *env, @@ -6887,8 +6902,7 @@ return -EINVAL; } - state->curframe--; - caller = state->frame[state->curframe]; + caller = state->frame[state->curframe - 1]; if (callee->in_callback_fn) { /* enforce R0 return value range [0, 1]. */ struct tnum range = tnum_range(0, 1); @@ -6906,10 +6920,17 @@ caller->regs[BPF_REG_0] = *r0; } - /* Transfer references to the caller */ - err = copy_reference_state(caller, callee); - if (err) - return err; + /* callback_fn frame should have released its own additions to parent's + * reference state at this point, or check_reference_leak would + * complain, hence it must be the same as the caller. There is no need + * to copy it back. + */ + if (!callee->in_callback_fn) { + /* Transfer references to the caller */ + err = copy_reference_state(caller, callee); + if (err) + return err; + } *insn_idx = callee->callsite + 1; if (env->log.level & BPF_LOG_LEVEL) { @@ -6920,7 +6941,7 @@ } /* clear everything in the callee */ free_func_state(callee); - state->frame[state->curframe + 1] = NULL; + state->frame[state->curframe--] = NULL; return 0; } @@ -6998,8 +7019,7 @@ struct bpf_insn_aux_data *aux = &env->insn_aux_data[insn_idx]; struct bpf_reg_state *regs = cur_regs(env), *reg; struct bpf_map *map = meta->map_ptr; - struct tnum range; - u64 val; + u64 val, max; int err; if (func_id != BPF_FUNC_tail_call) @@ -7009,10 +7029,11 @@ return -EINVAL; } - range = tnum_range(0, map->max_entries - 1); reg = ®s[BPF_REG_3]; + val = reg->var_off.value; + max = map->max_entries; - if (!register_is_const(reg) || !tnum_in(range, reg->var_off)) { + if (!(register_is_const(reg) && val < max)) { bpf_map_key_store(aux, BPF_MAP_KEY_POISON); return 0; } @@ -7020,8 +7041,6 @@ err = mark_chain_precision(env, BPF_REG_3); if (err) return err; - - val = reg->var_off.value; if (bpf_map_key_unseen(aux)) bpf_map_key_store(aux, val); else if (!bpf_map_key_poisoned(aux) && @@ -7033,13 +7052,20 @@ static int check_reference_leak(struct bpf_verifier_env *env) { struct bpf_func_state *state = cur_func(env); + bool refs_lingering = false; int i; + if (state->frameno && !state->in_callback_fn) + return 0; + for (i = 0; i < state->acquired_refs; i++) { + if (state->in_callback_fn && state->refs[i].callback_ref != state->frameno) + continue; verbose(env, "Unreleased reference id=%d alloc_insn=%d\n", state->refs[i].id, state->refs[i].insn_idx); + refs_lingering = true; } - return state->acquired_refs ? -EINVAL : 0; + return refs_lingering ? -EINVAL : 0; } static int check_bpf_snprintf_call(struct bpf_verifier_env *env, @@ -7377,6 +7403,12 @@ if (type_may_be_null(regs[BPF_REG_0].type)) regs[BPF_REG_0].id = ++env->id_gen; + if (helper_multiple_ref_obj_use(func_id, meta.map_ptr)) { + verbose(env, "verifier internal error: func %s#%d sets ref_obj_id more than once\n", + func_id_name(func_id), func_id); + return -EFAULT; + } + if (is_ptr_cast_function(func_id)) { /* For release_reference() */ regs[BPF_REG_0].ref_obj_id = meta.ref_obj_id; @@ -7389,10 +7421,10 @@ regs[BPF_REG_0].id = id; /* For release_reference() */ regs[BPF_REG_0].ref_obj_id = id; - } else if (func_id == BPF_FUNC_dynptr_data) { + } else if (is_dynptr_acquire_function(func_id)) { int dynptr_id = 0, i; - /* Find the id of the dynptr we're acquiring a reference to */ + /* Find the id of the dynptr we're tracking the reference of */ for (i = 0; i < MAX_BPF_FUNC_REG_ARGS; i++) { if (arg_type_is_dynptr(fn->arg_type[i])) { if (dynptr_id) { @@ -8997,6 +9029,11 @@ return err; return adjust_ptr_min_max_vals(env, insn, dst_reg, src_reg); + } else if (dst_reg->precise) { + /* if dst_reg is precise, src_reg should be precise as well */ + err = mark_chain_precision(env, insn->src_reg); + if (err) + return err; } } else { /* Pretend the src is a reg with a known value, since we only @@ -9198,34 +9235,14 @@ return 0; } -static void __find_good_pkt_pointers(struct bpf_func_state *state, - struct bpf_reg_state *dst_reg, - enum bpf_reg_type type, int new_range) -{ - struct bpf_reg_state *reg; - int i; - - for (i = 0; i < MAX_BPF_REG; i++) { - reg = &state->regs[i]; - if (reg->type == type && reg->id == dst_reg->id) - /* keep the maximum range already checked */ - reg->range = max(reg->range, new_range); - } - - bpf_for_each_spilled_reg(i, state, reg) { - if (!reg) - continue; - if (reg->type == type && reg->id == dst_reg->id) - reg->range = max(reg->range, new_range); - } -} - static void find_good_pkt_pointers(struct bpf_verifier_state *vstate, struct bpf_reg_state *dst_reg, enum bpf_reg_type type, bool range_right_open) { - int new_range, i; + struct bpf_func_state *state; + struct bpf_reg_state *reg; + int new_range; if (dst_reg->off < 0 || (dst_reg->off == 0 && range_right_open)) @@ -9290,9 +9307,11 @@ * the range won't allow anything. * dst_reg->off is known < MAX_PACKET_OFF, therefore it fits in a u16. */ - for (i = 0; i <= vstate->curframe; i++) - __find_good_pkt_pointers(vstate->frame[i], dst_reg, type, - new_range); + bpf_for_each_reg_in_vstate(vstate, state, reg, ({ + if (reg->type == type && reg->id == dst_reg->id) + /* keep the maximum range already checked */ + reg->range = max(reg->range, new_range); + })); } static int is_branch32_taken(struct bpf_reg_state *reg, u32 val, u8 opcode) @@ -9781,7 +9800,7 @@ if (!reg_may_point_to_spin_lock(reg)) { /* For not-NULL ptr, reg->ref_obj_id will be reset - * in release_reg_references(). + * in release_reference(). * * reg->id is still used by spin_lock ptr. Other * than spin_lock ptr type, reg->id can be reset. @@ -9791,22 +9810,6 @@ } } -static void __mark_ptr_or_null_regs(struct bpf_func_state *state, u32 id, - bool is_null) -{ - struct bpf_reg_state *reg; - int i; - - for (i = 0; i < MAX_BPF_REG; i++) - mark_ptr_or_null_reg(state, &state->regs[i], id, is_null); - - bpf_for_each_spilled_reg(i, state, reg) { - if (!reg) - continue; - mark_ptr_or_null_reg(state, reg, id, is_null); - } -} - /* The logic is similar to find_good_pkt_pointers(), both could eventually * be folded together at some point. */ @@ -9814,10 +9817,9 @@ bool is_null) { struct bpf_func_state *state = vstate->frame[vstate->curframe]; - struct bpf_reg_state *regs = state->regs; + struct bpf_reg_state *regs = state->regs, *reg; u32 ref_obj_id = regs[regno].ref_obj_id; u32 id = regs[regno].id; - int i; if (ref_obj_id && ref_obj_id == id && is_null) /* regs[regno] is in the " == NULL" branch. @@ -9826,8 +9828,9 @@ */ WARN_ON_ONCE(release_reference_state(state, id)); - for (i = 0; i <= vstate->curframe; i++) - __mark_ptr_or_null_regs(vstate->frame[i], id, is_null); + bpf_for_each_reg_in_vstate(vstate, state, reg, ({ + mark_ptr_or_null_reg(state, reg, id, is_null); + })); } static bool try_match_pkt_pointers(const struct bpf_insn *insn, @@ -9940,23 +9943,11 @@ { struct bpf_func_state *state; struct bpf_reg_state *reg; - int i, j; - for (i = 0; i <= vstate->curframe; i++) { - state = vstate->frame[i]; - for (j = 0; j < MAX_BPF_REG; j++) { - reg = &state->regs[j]; - if (reg->type == SCALAR_VALUE && reg->id == known_reg->id) - *reg = *known_reg; - } - - bpf_for_each_spilled_reg(j, state, reg) { - if (!reg) - continue; - if (reg->type == SCALAR_VALUE && reg->id == known_reg->id) - *reg = *known_reg; - } - } + bpf_for_each_reg_in_vstate(vstate, state, reg, ({ + if (reg->type == SCALAR_VALUE && reg->id == known_reg->id) + *reg = *known_reg; + })); } static int check_cond_jmp_op(struct bpf_verifier_env *env, @@ -11649,34 +11640,36 @@ { struct bpf_reg_state *state_reg; struct bpf_func_state *state; - int i, err = 0; + int i, err = 0, fr; - state = old->frame[old->curframe]; - state_reg = state->regs; - for (i = 0; i < BPF_REG_FP; i++, state_reg++) { - if (state_reg->type != SCALAR_VALUE || - !state_reg->precise) - continue; - if (env->log.level & BPF_LOG_LEVEL2) - verbose(env, "propagating r%d\n", i); - err = mark_chain_precision(env, i); - if (err < 0) - return err; - } + for (fr = old->curframe; fr >= 0; fr--) { + state = old->frame[fr]; + state_reg = state->regs; + for (i = 0; i < BPF_REG_FP; i++, state_reg++) { + if (state_reg->type != SCALAR_VALUE || + !state_reg->precise) + continue; + if (env->log.level & BPF_LOG_LEVEL2) + verbose(env, "frame %d: propagating r%d\n", i, fr); + err = mark_chain_precision_frame(env, fr, i); + if (err < 0) + return err; + } - for (i = 0; i < state->allocated_stack / BPF_REG_SIZE; i++) { - if (!is_spilled_reg(&state->stack[i])) - continue; - state_reg = &state->stack[i].spilled_ptr; - if (state_reg->type != SCALAR_VALUE || - !state_reg->precise) - continue; - if (env->log.level & BPF_LOG_LEVEL2) - verbose(env, "propagating fp%d\n", - (-i - 1) * BPF_REG_SIZE); - err = mark_chain_precision_stack(env, i); - if (err < 0) - return err; + for (i = 0; i < state->allocated_stack / BPF_REG_SIZE; i++) { + if (!is_spilled_reg(&state->stack[i])) + continue; + state_reg = &state->stack[i].spilled_ptr; + if (state_reg->type != SCALAR_VALUE || + !state_reg->precise) + continue; + if (env->log.level & BPF_LOG_LEVEL2) + verbose(env, "frame %d: propagating fp%d\n", + (-i - 1) * BPF_REG_SIZE, fr); + err = mark_chain_precision_stack_frame(env, fr, i); + if (err < 0) + return err; + } } return 0; } @@ -12227,6 +12220,16 @@ return -EINVAL; } + /* We must do check_reference_leak here before + * prepare_func_exit to handle the case when + * state->curframe > 0, it may be a callback + * function, for which reference_state must + * match caller reference state when it exits. + */ + err = check_reference_leak(env); + if (err) + return err; + if (state->curframe) { /* exit from nested function */ err = prepare_func_exit(env, &env->insn_idx); @@ -12236,10 +12239,6 @@ continue; } - err = check_reference_leak(env); - if (err) - return err; - err = check_return_code(env); if (err) return err; @@ -13232,6 +13231,10 @@ if (!bpf_jit_needs_zext() && !is_cmpxchg_insn(&insn)) continue; + /* Zero-extension is done by the caller. */ + if (bpf_pseudo_kfunc_call(&insn)) + continue; + if (WARN_ON(load_reg == -1)) { verbose(env, "verifier bug. zext_dst is set, but no reg is defined\n"); return -EFAULT; @@ -13525,6 +13528,7 @@ /* Below members will be freed only at prog->aux */ func[i]->aux->btf = prog->aux->btf; func[i]->aux->func_info = prog->aux->func_info; + func[i]->aux->func_info_cnt = prog->aux->func_info_cnt; func[i]->aux->poke_tab = prog->aux->poke_tab; func[i]->aux->size_poke_tab = prog->aux->size_poke_tab; @@ -13537,9 +13541,6 @@ poke->aux = func[i]->aux; } - /* Use bpf_prog_F_tag to indicate functions in stack traces. - * Long term would need debug info to populate names - */ func[i]->aux->name[0] = 'F'; func[i]->aux->stack_depth = env->subprog_info[i].stack_depth; func[i]->jit_requested = 1; --- linux-5.19.0.orig/kernel/cgroup/cgroup-internal.h +++ linux-5.19.0/kernel/cgroup/cgroup-internal.h @@ -168,7 +168,6 @@ extern spinlock_t css_set_lock; extern struct cgroup_subsys *cgroup_subsys[]; extern struct list_head cgroup_roots; -extern struct file_system_type cgroup_fs_type; /* iterate across the hierarchies */ #define for_each_root(root) \ --- linux-5.19.0.orig/kernel/cgroup/cgroup-v1.c +++ linux-5.19.0/kernel/cgroup/cgroup-v1.c @@ -59,6 +59,7 @@ int retval = 0; mutex_lock(&cgroup_mutex); + cpus_read_lock(); percpu_down_write(&cgroup_threadgroup_rwsem); for_each_root(root) { struct cgroup *from_cgrp; @@ -72,6 +73,7 @@ break; } percpu_up_write(&cgroup_threadgroup_rwsem); + cpus_read_unlock(); mutex_unlock(&cgroup_mutex); return retval; --- linux-5.19.0.orig/kernel/cgroup/cgroup.c +++ linux-5.19.0/kernel/cgroup/cgroup.c @@ -1811,6 +1811,7 @@ if (ss->css_rstat_flush) { list_del_rcu(&css->rstat_css_node); + synchronize_rcu(); list_add_rcu(&css->rstat_css_node, &dcgrp->rstat_css_list); } @@ -2346,6 +2347,47 @@ EXPORT_SYMBOL_GPL(task_cgroup_path); /** + * cgroup_attach_lock - Lock for ->attach() + * @lock_threadgroup: whether to down_write cgroup_threadgroup_rwsem + * + * cgroup migration sometimes needs to stabilize threadgroups against forks and + * exits by write-locking cgroup_threadgroup_rwsem. However, some ->attach() + * implementations (e.g. cpuset), also need to disable CPU hotplug. + * Unfortunately, letting ->attach() operations acquire cpus_read_lock() can + * lead to deadlocks. + * + * Bringing up a CPU may involve creating and destroying tasks which requires + * read-locking threadgroup_rwsem, so threadgroup_rwsem nests inside + * cpus_read_lock(). If we call an ->attach() which acquires the cpus lock while + * write-locking threadgroup_rwsem, the locking order is reversed and we end up + * waiting for an on-going CPU hotplug operation which in turn is waiting for + * the threadgroup_rwsem to be released to create new tasks. For more details: + * + * http://lkml.kernel.org/r/20220711174629.uehfmqegcwn2lqzu@wubuntu + * + * Resolve the situation by always acquiring cpus_read_lock() before optionally + * write-locking cgroup_threadgroup_rwsem. This allows ->attach() to assume that + * CPU hotplug is disabled on entry. + */ +static void cgroup_attach_lock(bool lock_threadgroup) +{ + cpus_read_lock(); + if (lock_threadgroup) + percpu_down_write(&cgroup_threadgroup_rwsem); +} + +/** + * cgroup_attach_unlock - Undo cgroup_attach_lock() + * @lock_threadgroup: whether to up_write cgroup_threadgroup_rwsem + */ +static void cgroup_attach_unlock(bool lock_threadgroup) +{ + if (lock_threadgroup) + percpu_up_write(&cgroup_threadgroup_rwsem); + cpus_read_unlock(); +} + +/** * cgroup_migrate_add_task - add a migration target task to a migration context * @task: target task * @mgctx: target migration context @@ -2821,8 +2863,7 @@ } struct task_struct *cgroup_procs_write_start(char *buf, bool threadgroup, - bool *locked) - __acquires(&cgroup_threadgroup_rwsem) + bool *threadgroup_locked) { struct task_struct *tsk; pid_t pid; @@ -2839,12 +2880,8 @@ * Therefore, we can skip the global lock. */ lockdep_assert_held(&cgroup_mutex); - if (pid || threadgroup) { - percpu_down_write(&cgroup_threadgroup_rwsem); - *locked = true; - } else { - *locked = false; - } + *threadgroup_locked = pid || threadgroup; + cgroup_attach_lock(*threadgroup_locked); rcu_read_lock(); if (pid) { @@ -2875,17 +2912,14 @@ goto out_unlock_rcu; out_unlock_threadgroup: - if (*locked) { - percpu_up_write(&cgroup_threadgroup_rwsem); - *locked = false; - } + cgroup_attach_unlock(*threadgroup_locked); + *threadgroup_locked = false; out_unlock_rcu: rcu_read_unlock(); return tsk; } -void cgroup_procs_write_finish(struct task_struct *task, bool locked) - __releases(&cgroup_threadgroup_rwsem) +void cgroup_procs_write_finish(struct task_struct *task, bool threadgroup_locked) { struct cgroup_subsys *ss; int ssid; @@ -2893,8 +2927,8 @@ /* release reference from cgroup_procs_write_start() */ put_task_struct(task); - if (locked) - percpu_up_write(&cgroup_threadgroup_rwsem); + cgroup_attach_unlock(threadgroup_locked); + for_each_subsys(ss, ssid) if (ss->post_attach) ss->post_attach(); @@ -2949,12 +2983,11 @@ struct cgroup_subsys_state *d_css; struct cgroup *dsct; struct css_set *src_cset; + bool has_tasks; int ret; lockdep_assert_held(&cgroup_mutex); - percpu_down_write(&cgroup_threadgroup_rwsem); - /* look up all csses currently attached to @cgrp's subtree */ spin_lock_irq(&css_set_lock); cgroup_for_each_live_descendant_pre(dsct, d_css, cgrp) { @@ -2965,6 +2998,15 @@ } spin_unlock_irq(&css_set_lock); + /* + * We need to write-lock threadgroup_rwsem while migrating tasks. + * However, if there are no source csets for @cgrp, changing its + * controllers isn't gonna produce any task migrations and the + * write-locking can be skipped safely. + */ + has_tasks = !list_empty(&mgctx.preloaded_src_csets); + cgroup_attach_lock(has_tasks); + /* NULL dst indicates self on default hierarchy */ ret = cgroup_migrate_prepare_dst(&mgctx); if (ret) @@ -2984,7 +3026,7 @@ ret = cgroup_migrate_execute(&mgctx); out_finish: cgroup_migrate_finish(&mgctx); - percpu_up_write(&cgroup_threadgroup_rwsem); + cgroup_attach_unlock(has_tasks); return ret; } @@ -4932,13 +4974,13 @@ struct task_struct *task; const struct cred *saved_cred; ssize_t ret; - bool locked; + bool threadgroup_locked; dst_cgrp = cgroup_kn_lock_live(of->kn, false); if (!dst_cgrp) return -ENODEV; - task = cgroup_procs_write_start(buf, threadgroup, &locked); + task = cgroup_procs_write_start(buf, threadgroup, &threadgroup_locked); ret = PTR_ERR_OR_ZERO(task); if (ret) goto out_unlock; @@ -4964,7 +5006,7 @@ ret = cgroup_attach_task(dst_cgrp, task, threadgroup); out_finish: - cgroup_procs_write_finish(task, locked); + cgroup_procs_write_finish(task, threadgroup_locked); out_unlock: cgroup_kn_unlock(of->kn); @@ -5984,6 +6026,9 @@ if (!kn) goto out; + if (kernfs_type(kn) != KERNFS_DIR) + goto put; + rcu_read_lock(); cgrp = rcu_dereference(*(void __rcu __force **)&kn->priv); @@ -5991,7 +6036,7 @@ cgrp = NULL; rcu_read_unlock(); - +put: kernfs_put(kn); out: return cgrp; @@ -6570,8 +6615,12 @@ { struct kernfs_node *kn; struct cgroup *cgrp = ERR_PTR(-ENOENT); + struct cgroup *root_cgrp; - kn = kernfs_walk_and_get(cgrp_dfl_root.cgrp.kn, path); + spin_lock_irq(&css_set_lock); + root_cgrp = current_cgns_cgroup_from_root(&cgrp_dfl_root); + kn = kernfs_walk_and_get(root_cgrp->kn, path); + spin_unlock_irq(&css_set_lock); if (!kn) goto out; --- linux-5.19.0.orig/kernel/cgroup/cpuset.c +++ linux-5.19.0/kernel/cgroup/cpuset.c @@ -33,6 +33,7 @@ #include #include #include +#include #include #include #include @@ -1127,10 +1128,18 @@ { struct css_task_iter it; struct task_struct *task; + bool top_cs = cs == &top_cpuset; css_task_iter_start(&cs->css, 0, &it); - while ((task = css_task_iter_next(&it))) + while ((task = css_task_iter_next(&it))) { + /* + * Percpu kthreads in top_cpuset are ignored + */ + if (top_cs && (task->flags & PF_KTHREAD) && + kthread_is_per_cpu(task)) + continue; set_cpus_allowed_ptr(task, cs->effective_cpus); + } css_task_iter_end(&it); } @@ -2092,12 +2101,7 @@ update_flag(CS_CPU_EXCLUSIVE, cs, 0); } - /* - * Update cpumask of parent's tasks except when it is the top - * cpuset as some system daemons cannot be mapped to other CPUs. - */ - if (parent != &top_cpuset) - update_tasks_cpumask(parent); + update_tasks_cpumask(parent); if (parent->child_ecpus_count) update_sibling_cpumasks(parent, cs, &tmpmask); @@ -2239,7 +2243,7 @@ goto out_unlock; cgroup_taskset_for_each(task, css, tset) { - ret = task_can_attach(task, cs->cpus_allowed); + ret = task_can_attach(task, cs->effective_cpus); if (ret) goto out_unlock; ret = security_task_setscheduler(task); @@ -2289,7 +2293,7 @@ cgroup_taskset_first(tset, &css); cs = css_cs(css); - cpus_read_lock(); + lockdep_assert_cpus_held(); /* see cgroup_attach_lock() */ percpu_down_write(&cpuset_rwsem); guarantee_online_mems(cs, &cpuset_attach_nodemask_to); @@ -2343,7 +2347,6 @@ wake_up(&cpuset_attach_wq); percpu_up_write(&cpuset_rwsem); - cpus_read_unlock(); } /* The various types of files and directories in a cpuset file system */ --- linux-5.19.0.orig/kernel/cpu.c +++ linux-5.19.0/kernel/cpu.c @@ -663,21 +663,51 @@ return true; } -static int cpuhp_invoke_callback_range(bool bringup, - unsigned int cpu, - struct cpuhp_cpu_state *st, - enum cpuhp_state target) +static int __cpuhp_invoke_callback_range(bool bringup, + unsigned int cpu, + struct cpuhp_cpu_state *st, + enum cpuhp_state target, + bool nofail) { enum cpuhp_state state; - int err = 0; + int ret = 0; while (cpuhp_next_state(bringup, &state, st, target)) { + int err; + err = cpuhp_invoke_callback(cpu, state, bringup, NULL, NULL); - if (err) + if (!err) + continue; + + if (nofail) { + pr_warn("CPU %u %s state %s (%d) failed (%d)\n", + cpu, bringup ? "UP" : "DOWN", + cpuhp_get_step(st->state)->name, + st->state, err); + ret = -1; + } else { + ret = err; break; + } } - return err; + return ret; +} + +static inline int cpuhp_invoke_callback_range(bool bringup, + unsigned int cpu, + struct cpuhp_cpu_state *st, + enum cpuhp_state target) +{ + return __cpuhp_invoke_callback_range(bringup, cpu, st, target, false); +} + +static inline void cpuhp_invoke_callback_range_nofail(bool bringup, + unsigned int cpu, + struct cpuhp_cpu_state *st, + enum cpuhp_state target) +{ + __cpuhp_invoke_callback_range(bringup, cpu, st, target, true); } static inline bool can_rollback_cpu(struct cpuhp_cpu_state *st) @@ -999,7 +1029,6 @@ struct cpuhp_cpu_state *st = this_cpu_ptr(&cpuhp_state); enum cpuhp_state target = max((int)st->target, CPUHP_AP_OFFLINE); int err, cpu = smp_processor_id(); - int ret; /* Ensure this CPU doesn't handle any more interrupts. */ err = __cpu_disable(); @@ -1012,13 +1041,10 @@ */ WARN_ON(st->state != (CPUHP_TEARDOWN_CPU - 1)); - /* Invoke the former CPU_DYING callbacks */ - ret = cpuhp_invoke_callback_range(false, cpu, st, target); - /* - * DYING must not fail! + * Invoke the former CPU_DYING callbacks. DYING must not fail! */ - WARN_ON_ONCE(ret); + cpuhp_invoke_callback_range_nofail(false, cpu, st, target); /* Give up timekeeping duties */ tick_handover_do_timer(); @@ -1296,16 +1322,14 @@ { struct cpuhp_cpu_state *st = per_cpu_ptr(&cpuhp_state, cpu); enum cpuhp_state target = min((int)st->target, CPUHP_AP_ONLINE); - int ret; rcu_cpu_starting(cpu); /* Enables RCU usage on this CPU. */ cpumask_set_cpu(cpu, &cpus_booted_once_mask); - ret = cpuhp_invoke_callback_range(true, cpu, st, target); /* * STARTING must not fail! */ - WARN_ON_ONCE(ret); + cpuhp_invoke_callback_range_nofail(true, cpu, st, target); } /* @@ -2326,8 +2350,10 @@ if (st->state < target) ret = cpu_up(dev->id, target); - else + else if (st->state > target) ret = cpu_down(dev->id, target); + else if (WARN_ON(st->target != target)) + st->target = target; out: unlock_device_hotplug(); return ret ? ret : count; --- linux-5.19.0.orig/kernel/cred.c +++ linux-5.19.0/kernel/cred.c @@ -767,14 +767,14 @@ /** * set_security_override - Set the security ID in a set of credentials * @new: The credentials to alter - * @secid: The LSM security ID to set + * @blob: The LSM security information to set * * Set the LSM security ID in a set of credentials so that the subjective * security is overridden when an alternative set of credentials is used. */ -int set_security_override(struct cred *new, u32 secid) +int set_security_override(struct cred *new, struct lsmblob *blob) { - return security_kernel_act_as(new, secid); + return security_kernel_act_as(new, blob); } EXPORT_SYMBOL(set_security_override); @@ -790,14 +790,14 @@ */ int set_security_override_from_ctx(struct cred *new, const char *secctx) { - u32 secid; + struct lsmblob blob; int ret; - ret = security_secctx_to_secid(secctx, strlen(secctx), &secid); + ret = security_secctx_to_secid(secctx, strlen(secctx), &blob); if (ret < 0) return ret; - return set_security_override(new, secid); + return set_security_override(new, &blob); } EXPORT_SYMBOL(set_security_override_from_ctx); --- linux-5.19.0.orig/kernel/dma/swiotlb.c +++ linux-5.19.0/kernel/dma/swiotlb.c @@ -464,7 +464,10 @@ } } -#define slot_addr(start, idx) ((start) + ((idx) << IO_TLB_SHIFT)) +static inline phys_addr_t slot_addr(phys_addr_t start, phys_addr_t idx) +{ + return start + (idx << IO_TLB_SHIFT); +} /* * Carefully handle integer overflow which can occur when boundary_mask == ~0UL. @@ -580,7 +583,7 @@ int index; phys_addr_t tlb_addr; - if (!mem) + if (!mem || !mem->nslabs) panic("Can not allocate SWIOTLB buffer earlier and can't now provide you with the DMA bounce buffer"); if (cc_platform_has(CC_ATTR_MEM_ENCRYPT)) --- linux-5.19.0.orig/kernel/events/core.c +++ linux-5.19.0/kernel/events/core.c @@ -54,6 +54,7 @@ #include #include #include +#include #include "internal.h" @@ -414,8 +415,13 @@ * 0 - disallow raw tracepoint access for unpriv * 1 - disallow cpu events for unpriv * 2 - disallow kernel profiling for unpriv + * 4 - disallow all unpriv perf event use */ +#ifdef CONFIG_SECURITY_PERF_EVENTS_RESTRICT +int sysctl_perf_event_paranoid __read_mostly = PERF_SECURITY_MAX; +#else int sysctl_perf_event_paranoid __read_mostly = 2; +#endif /* Minimum for 512 kiB + 1 user control page */ int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ @@ -2265,11 +2271,27 @@ event->pmu->del(event, 0); event->oncpu = -1; - if (READ_ONCE(event->pending_disable) >= 0) { - WRITE_ONCE(event->pending_disable, -1); + if (event->pending_disable) { + event->pending_disable = 0; perf_cgroup_event_disable(event, ctx); state = PERF_EVENT_STATE_OFF; } + + if (event->pending_sigtrap) { + bool dec = true; + + event->pending_sigtrap = 0; + if (state != PERF_EVENT_STATE_OFF && + !event->pending_work) { + event->pending_work = 1; + dec = false; + WARN_ON_ONCE(!atomic_long_inc_not_zero(&event->refcount)); + task_work_add(current, &event->pending_task, TWA_RESUME); + } + if (dec) + local_dec(&event->ctx->nr_pending); + } + perf_event_set_state(event, state); if (!is_software_event(event)) @@ -2309,6 +2331,7 @@ #define DETACH_GROUP 0x01UL #define DETACH_CHILD 0x02UL +#define DETACH_DEAD 0x04UL /* * Cross CPU call to remove a performance event @@ -2329,12 +2352,20 @@ update_cgrp_time_from_cpuctx(cpuctx, false); } + /* + * Ensure event_sched_out() switches to OFF, at the very least + * this avoids raising perf_pending_task() at this time. + */ + if (flags & DETACH_DEAD) + event->pending_disable = 1; event_sched_out(event, cpuctx, ctx); if (flags & DETACH_GROUP) perf_group_detach(event); if (flags & DETACH_CHILD) perf_child_detach(event); list_del_event(event, ctx); + if (flags & DETACH_DEAD) + event->state = PERF_EVENT_STATE_DEAD; if (!ctx->nr_events && ctx->is_active) { if (ctx == &cpuctx->ctx) @@ -2421,7 +2452,7 @@ * hold the top-level event's child_mutex, so any descendant that * goes to exit will block in perf_event_exit_event(). * - * When called from perf_pending_event it's OK because event->ctx + * When called from perf_pending_irq it's OK because event->ctx * is the current context on this CPU and preemption is disabled, * hence we can't get into perf_event_task_sched_out for this context. */ @@ -2460,9 +2491,8 @@ void perf_event_disable_inatomic(struct perf_event *event) { - WRITE_ONCE(event->pending_disable, smp_processor_id()); - /* can fail, see perf_pending_event_disable() */ - irq_work_queue(&event->pending); + event->pending_disable = 1; + irq_work_queue(&event->pending_irq); } #define MAX_INTERRUPTS (~0ULL) @@ -3417,11 +3447,23 @@ raw_spin_lock_nested(&next_ctx->lock, SINGLE_DEPTH_NESTING); if (context_equiv(ctx, next_ctx)) { + perf_pmu_disable(pmu); + + /* PMIs are disabled; ctx->nr_pending is stable. */ + if (local_read(&ctx->nr_pending) || + local_read(&next_ctx->nr_pending)) { + /* + * Must not swap out ctx when there's pending + * events that rely on the ctx->task relation. + */ + raw_spin_unlock(&next_ctx->lock); + rcu_read_unlock(); + goto inside_switch; + } + WRITE_ONCE(ctx->task, next); WRITE_ONCE(next_ctx->task, task); - perf_pmu_disable(pmu); - if (cpuctx->sched_cb_usage && pmu->sched_task) pmu->sched_task(ctx, false); @@ -3462,6 +3504,7 @@ raw_spin_lock(&ctx->lock); perf_pmu_disable(pmu); +inside_switch: if (cpuctx->sched_cb_usage && pmu->sched_task) pmu->sched_task(ctx, false); task_ctx_sched_out(cpuctx, ctx, EVENT_ALL); @@ -4928,7 +4971,7 @@ static void _free_event(struct perf_event *event) { - irq_work_sync(&event->pending); + irq_work_sync(&event->pending_irq); unaccount_event(event); @@ -5082,9 +5125,7 @@ ctx = perf_event_ctx_lock(event); WARN_ON_ONCE(ctx->parent_ctx); - perf_remove_from_context(event, DETACH_GROUP); - raw_spin_lock_irq(&ctx->lock); /* * Mark this event as STATE_DEAD, there is no external reference to it * anymore. @@ -5096,8 +5137,7 @@ * Thus this guarantees that we will in fact observe and kill _ALL_ * child events. */ - event->state = PERF_EVENT_STATE_DEAD; - raw_spin_unlock_irq(&ctx->lock); + perf_remove_from_context(event, DETACH_GROUP|DETACH_DEAD); perf_event_ctx_unlock(event, ctx); @@ -6422,7 +6462,8 @@ return; /* - * perf_pending_event() can race with the task exiting. + * Both perf_pending_task() and perf_pending_irq() can race with the + * task exiting. */ if (current->flags & PF_EXITING) return; @@ -6431,23 +6472,33 @@ event->attr.type, event->attr.sig_data); } -static void perf_pending_event_disable(struct perf_event *event) +/* + * Deliver the pending work in-event-context or follow the context. + */ +static void __perf_pending_irq(struct perf_event *event) { - int cpu = READ_ONCE(event->pending_disable); + int cpu = READ_ONCE(event->oncpu); + /* + * If the event isn't running; we done. event_sched_out() will have + * taken care of things. + */ if (cpu < 0) return; + /* + * Yay, we hit home and are in the context of the event. + */ if (cpu == smp_processor_id()) { - WRITE_ONCE(event->pending_disable, -1); - - if (event->attr.sigtrap) { + if (event->pending_sigtrap) { + event->pending_sigtrap = 0; perf_sigtrap(event); - atomic_set_release(&event->event_limit, 1); /* rearm event */ - return; + local_dec(&event->ctx->nr_pending); + } + if (event->pending_disable) { + event->pending_disable = 0; + perf_event_disable_local(event); } - - perf_event_disable_local(event); return; } @@ -6467,35 +6518,64 @@ * irq_work_queue(); // FAILS * * irq_work_run() - * perf_pending_event() + * perf_pending_irq() * * But the event runs on CPU-B and wants disabling there. */ - irq_work_queue_on(&event->pending, cpu); + irq_work_queue_on(&event->pending_irq, cpu); } -static void perf_pending_event(struct irq_work *entry) +static void perf_pending_irq(struct irq_work *entry) { - struct perf_event *event = container_of(entry, struct perf_event, pending); + struct perf_event *event = container_of(entry, struct perf_event, pending_irq); int rctx; - rctx = perf_swevent_get_recursion_context(); /* * If we 'fail' here, that's OK, it means recursion is already disabled * and we won't recurse 'further'. */ + rctx = perf_swevent_get_recursion_context(); - perf_pending_event_disable(event); - + /* + * The wakeup isn't bound to the context of the event -- it can happen + * irrespective of where the event is. + */ if (event->pending_wakeup) { event->pending_wakeup = 0; perf_event_wakeup(event); } + __perf_pending_irq(event); + if (rctx >= 0) perf_swevent_put_recursion_context(rctx); } +static void perf_pending_task(struct callback_head *head) +{ + struct perf_event *event = container_of(head, struct perf_event, pending_task); + int rctx; + + /* + * If we 'fail' here, that's OK, it means recursion is already disabled + * and we won't recurse 'further'. + */ + preempt_disable_notrace(); + rctx = perf_swevent_get_recursion_context(); + + if (event->pending_work) { + event->pending_work = 0; + perf_sigtrap(event); + local_dec(&event->ctx->nr_pending); + } + + if (rctx >= 0) + perf_swevent_put_recursion_context(rctx); + preempt_enable_notrace(); + + put_event(event); +} + #ifdef CONFIG_GUEST_PERF_EVENTS struct perf_guest_info_callbacks __rcu *perf_guest_cbs; @@ -8916,7 +8996,7 @@ PERF_RECORD_KSYMBOL_TYPE_BPF, (u64)(unsigned long)subprog->bpf_func, subprog->jited_len, unregister, - prog->aux->ksym.name); + subprog->aux->ksym.name); } } } @@ -9164,8 +9244,8 @@ */ static int __perf_event_overflow(struct perf_event *event, - int throttle, struct perf_sample_data *data, - struct pt_regs *regs) + int throttle, struct perf_sample_data *data, + struct pt_regs *regs) { int events = atomic_read(&event->event_limit); int ret = 0; @@ -9188,24 +9268,49 @@ if (events && atomic_dec_and_test(&event->event_limit)) { ret = 1; event->pending_kill = POLL_HUP; - event->pending_addr = data->addr; - perf_event_disable_inatomic(event); } + if (event->attr.sigtrap) { + unsigned int pending_id = 1; + + if (regs) + pending_id = hash32_ptr((void *)instruction_pointer(regs)) ?: 1; + if (!event->pending_sigtrap) { + event->pending_sigtrap = pending_id; + local_inc(&event->ctx->nr_pending); + } else if (event->attr.exclude_kernel) { + /* + * Should not be able to return to user space without + * consuming pending_sigtrap; with exceptions: + * + * 1. Where !exclude_kernel, events can overflow again + * in the kernel without returning to user space. + * + * 2. Events that can overflow again before the IRQ- + * work without user space progress (e.g. hrtimer). + * To approximate progress (with false negatives), + * check 32-bit hash of the current IP. + */ + WARN_ON_ONCE(event->pending_sigtrap != pending_id); + } + event->pending_addr = data->addr; + irq_work_queue(&event->pending_irq); + } + READ_ONCE(event->overflow_handler)(event, data, regs); if (*perf_event_fasync(event) && event->pending_kill) { event->pending_wakeup = 1; - irq_work_queue(&event->pending); + irq_work_queue(&event->pending_irq); } return ret; } int perf_event_overflow(struct perf_event *event, - struct perf_sample_data *data, - struct pt_regs *regs) + struct perf_sample_data *data, + struct pt_regs *regs) { return __perf_event_overflow(event, 1, data, regs); } @@ -11008,13 +11113,15 @@ pmu->dev->groups = pmu->attr_groups; device_initialize(pmu->dev); - ret = dev_set_name(pmu->dev, "%s", pmu->name); - if (ret) - goto free_dev; dev_set_drvdata(pmu->dev, pmu); pmu->dev->bus = &pmu_bus; pmu->dev->release = pmu_dev_release; + + ret = dev_set_name(pmu->dev, "%s", pmu->name); + if (ret) + goto free_dev; + ret = device_add(pmu->dev); if (ret) goto free_dev; @@ -11509,8 +11616,8 @@ init_waitqueue_head(&event->waitq); - event->pending_disable = -1; - init_irq_work(&event->pending, perf_pending_event); + init_irq_work(&event->pending_irq, perf_pending_irq); + init_task_work(&event->pending_task, perf_pending_task); mutex_init(&event->mmap_mutex); raw_spin_lock_init(&event->addr_filters.lock); @@ -11532,9 +11639,6 @@ if (parent_event) event->event_caps = parent_event->event_caps; - if (event->attr.sigtrap) - atomic_set(&event->event_limit, 1); - if (task) { event->attach_state = PERF_ATTACH_TASK; /* @@ -12054,6 +12158,9 @@ if (err) return err; + if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN)) + return -EACCES; + err = perf_copy_attr(attr_uptr, &attr); if (err) return err; --- linux-5.19.0.orig/kernel/events/ring_buffer.c +++ linux-5.19.0/kernel/events/ring_buffer.c @@ -22,7 +22,7 @@ atomic_set(&handle->rb->poll, EPOLLIN); handle->event->pending_wakeup = 1; - irq_work_queue(&handle->event->pending); + irq_work_queue(&handle->event->pending_irq); } /* --- linux-5.19.0.orig/kernel/fork.c +++ linux-5.19.0/kernel/fork.c @@ -109,6 +109,11 @@ #define CREATE_TRACE_POINTS #include +#ifdef CONFIG_USER_NS +extern int unprivileged_userns_clone; +#else +#define unprivileged_userns_clone 0 +#endif /* * Minimum number of threads to boot the kernel @@ -537,6 +542,9 @@ void free_task(struct task_struct *tsk) { +#ifdef CONFIG_SECCOMP + WARN_ON_ONCE(tsk->seccomp.filter); +#endif release_user_cpus_ptr(tsk); scs_release(tsk); @@ -662,7 +670,7 @@ if (file) { struct address_space *mapping = file->f_mapping; - get_file(file); + vma_get_file(tmp); i_mmap_lock_write(mapping); if (tmp->vm_flags & VM_SHARED) mapping_allow_writable(mapping); @@ -1225,6 +1233,7 @@ schedule_work(&mm->async_put_work); } } +EXPORT_SYMBOL(mmput_async); #endif /** @@ -1995,6 +2004,10 @@ if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); + if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) + if (!capable(CAP_SYS_ADMIN)) + return ERR_PTR(-EPERM); + /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. @@ -2393,12 +2406,6 @@ spin_lock(¤t->sighand->siglock); - /* - * Copy seccomp details explicitly here, in case they were changed - * before holding sighand lock. - */ - copy_seccomp(p); - rseq_fork(p, clone_flags); /* Don't start children in a dying pid namespace */ @@ -2413,6 +2420,14 @@ goto bad_fork_cancel_cgroup; } + /* No more failure paths after this point. */ + + /* + * Copy seccomp details explicitly here, in case they were changed + * before holding sighand lock. + */ + copy_seccomp(p); + init_task_pid_links(p); if (likely(p->pid)) { ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace); @@ -3143,6 +3158,12 @@ if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; + if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) { + err = -EPERM; + if (!capable(CAP_SYS_ADMIN)) + goto bad_unshare_out; + } + err = check_unshare_flags(unshare_flags); if (err) goto bad_unshare_out; --- linux-5.19.0.orig/kernel/futex/core.c +++ linux-5.19.0/kernel/futex/core.c @@ -638,6 +638,7 @@ bool pi, bool pending_op) { u32 uval, nval, mval; + pid_t owner; int err; /* Futex address must be 32bit aligned */ @@ -659,6 +660,10 @@ * 2. A woken up waiter is killed before it can acquire the * futex in user space. * + * In the second case, the wake up notification could be generated + * by the unlock path in user space after setting the futex value + * to zero or by the kernel after setting the OWNER_DIED bit below. + * * In both cases the TID validation below prevents a wakeup of * potential waiters which can cause these waiters to block * forever. @@ -667,24 +672,27 @@ * * 1) task->robust_list->list_op_pending != NULL * @pending_op == true - * 2) User space futex value == 0 + * 2) The owner part of user space futex value == 0 * 3) Regular futex: @pi == false * * If these conditions are met, it is safe to attempt waking up a * potential waiter without touching the user space futex value and - * trying to set the OWNER_DIED bit. The user space futex value is - * uncontended and the rest of the user space mutex state is - * consistent, so a woken waiter will just take over the - * uncontended futex. Setting the OWNER_DIED bit would create - * inconsistent state and malfunction of the user space owner died - * handling. + * trying to set the OWNER_DIED bit. If the futex value is zero, + * the rest of the user space mutex state is consistent, so a woken + * waiter will just take over the uncontended futex. Setting the + * OWNER_DIED bit would create inconsistent state and malfunction + * of the user space owner died handling. Otherwise, the OWNER_DIED + * bit is already set, and the woken waiter is expected to deal with + * this. */ - if (pending_op && !pi && !uval) { + owner = uval & FUTEX_TID_MASK; + + if (pending_op && !pi && !owner) { futex_wake(uaddr, 1, 1, FUTEX_BITSET_MATCH_ANY); return 0; } - if ((uval & FUTEX_TID_MASK) != task_pid_vnr(curr)) + if (owner != task_pid_vnr(curr)) return 0; /* --- linux-5.19.0.orig/kernel/gcov/clang.c +++ linux-5.19.0/kernel/gcov/clang.c @@ -280,6 +280,8 @@ for (i = 0; i < sfn_ptr->num_counters; i++) dfn_ptr->counters[i] += sfn_ptr->counters[i]; + + sfn_ptr = list_next_entry(sfn_ptr, head); } } --- linux-5.19.0.orig/kernel/gcov/gcc_4_7.c +++ linux-5.19.0/kernel/gcov/gcc_4_7.c @@ -30,6 +30,13 @@ #define GCOV_TAG_FUNCTION_LENGTH 3 +/* Since GCC 12.1 sizes are in BYTES and not in WORDS (4B). */ +#if (__GNUC__ >= 12) +#define GCOV_UNIT_SIZE 4 +#else +#define GCOV_UNIT_SIZE 1 +#endif + static struct gcov_info *gcov_info_head; /** @@ -75,6 +82,7 @@ * @version: gcov version magic indicating the gcc version used for compilation * @next: list head for a singly-linked list * @stamp: uniquifying time stamp + * @checksum: unique object checksum * @filename: name of the associated gcov data file * @merge: merge functions (null for unused counter type) * @n_functions: number of instrumented functions @@ -87,6 +95,10 @@ unsigned int version; struct gcov_info *next; unsigned int stamp; + /* Since GCC 12.1 a checksum field is added. */ +#if (__GNUC__ >= 12) + unsigned int checksum; +#endif const char *filename; void (*merge[GCOV_COUNTERS])(gcov_type *, unsigned int); unsigned int n_functions; @@ -383,12 +395,18 @@ pos += store_gcov_u32(buffer, pos, info->version); pos += store_gcov_u32(buffer, pos, info->stamp); +#if (__GNUC__ >= 12) + /* Use zero as checksum of the compilation unit. */ + pos += store_gcov_u32(buffer, pos, 0); +#endif + for (fi_idx = 0; fi_idx < info->n_functions; fi_idx++) { fi_ptr = info->functions[fi_idx]; /* Function record. */ pos += store_gcov_u32(buffer, pos, GCOV_TAG_FUNCTION); - pos += store_gcov_u32(buffer, pos, GCOV_TAG_FUNCTION_LENGTH); + pos += store_gcov_u32(buffer, pos, + GCOV_TAG_FUNCTION_LENGTH * GCOV_UNIT_SIZE); pos += store_gcov_u32(buffer, pos, fi_ptr->ident); pos += store_gcov_u32(buffer, pos, fi_ptr->lineno_checksum); pos += store_gcov_u32(buffer, pos, fi_ptr->cfg_checksum); @@ -402,7 +420,8 @@ /* Counter record. */ pos += store_gcov_u32(buffer, pos, GCOV_TAG_FOR_COUNTER(ct_idx)); - pos += store_gcov_u32(buffer, pos, ci_ptr->num * 2); + pos += store_gcov_u32(buffer, pos, + ci_ptr->num * 2 * GCOV_UNIT_SIZE); for (cv_idx = 0; cv_idx < ci_ptr->num; cv_idx++) { pos += store_gcov_u64(buffer, pos, --- linux-5.19.0.orig/kernel/irq/Kconfig +++ linux-5.19.0/kernel/irq/Kconfig @@ -82,6 +82,7 @@ # Generic IRQ IPI support config GENERIC_IRQ_IPI bool + depends on SMP select IRQ_DOMAIN_HIERARCHY # Generic MSI interrupt support --- linux-5.19.0.orig/kernel/irq/chip.c +++ linux-5.19.0/kernel/irq/chip.c @@ -1516,7 +1516,8 @@ if (data->chip->irq_request_resources) return data->chip->irq_request_resources(data); - return -ENOSYS; + /* no error on missing optional irq_chip::irq_request_resources */ + return 0; } EXPORT_SYMBOL_GPL(irq_chip_request_resources_parent); --- linux-5.19.0.orig/kernel/irq/internals.h +++ linux-5.19.0/kernel/irq/internals.h @@ -52,6 +52,7 @@ * IRQS_PENDING - irq is pending and replayed later * IRQS_SUSPENDED - irq is suspended * IRQS_NMI - irq line is used to deliver NMIs + * IRQS_SYSFS - descriptor has been added to sysfs */ enum { IRQS_AUTODETECT = 0x00000001, @@ -64,6 +65,7 @@ IRQS_SUSPENDED = 0x00000800, IRQS_TIMINGS = 0x00001000, IRQS_NMI = 0x00002000, + IRQS_SYSFS = 0x00004000, }; #include "debug.h" --- linux-5.19.0.orig/kernel/irq/irqdesc.c +++ linux-5.19.0/kernel/irq/irqdesc.c @@ -288,22 +288,25 @@ if (irq_kobj_base) { /* * Continue even in case of failure as this is nothing - * crucial. + * crucial and failures in the late irq_sysfs_init() + * cannot be rolled back. */ if (kobject_add(&desc->kobj, irq_kobj_base, "%d", irq)) pr_warn("Failed to add kobject for irq %d\n", irq); + else + desc->istate |= IRQS_SYSFS; } } static void irq_sysfs_del(struct irq_desc *desc) { /* - * If irq_sysfs_init() has not yet been invoked (early boot), then - * irq_kobj_base is NULL and the descriptor was never added. - * kobject_del() complains about a object with no parent, so make - * it conditional. + * Only invoke kobject_del() when kobject_add() was successfully + * invoked for the descriptor. This covers both early boot, where + * sysfs is not initialized yet, and the case of a failed + * kobject_add() invocation. */ - if (irq_kobj_base) + if (desc->istate & IRQS_SYSFS) kobject_del(&desc->kobj); } --- linux-5.19.0.orig/kernel/irq/irqdomain.c +++ linux-5.19.0/kernel/irq/irqdomain.c @@ -910,6 +910,8 @@ data = irq_domain_get_irq_data(domain, hwirq); if (data && data->hwirq == hwirq) desc = irq_data_to_desc(data); + if (irq && desc) + *irq = hwirq; } return desc; --- linux-5.19.0.orig/kernel/kexec_file.c +++ linux-5.19.0/kernel/kexec_file.c @@ -62,14 +62,7 @@ return ret; } -/* Architectures can provide this probe function */ -int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf, - unsigned long buf_len) -{ - return kexec_image_probe_default(image, buf, buf_len); -} - -static void *kexec_image_load_default(struct kimage *image) +void *kexec_image_load_default(struct kimage *image) { if (!image->fops || !image->fops->load) return ERR_PTR(-ENOEXEC); @@ -80,11 +73,6 @@ image->cmdline_buf_len); } -void * __weak arch_kexec_kernel_image_load(struct kimage *image) -{ - return kexec_image_load_default(image); -} - int kexec_image_post_load_cleanup_default(struct kimage *image) { if (!image->fops || !image->fops->cleanup) @@ -93,30 +81,6 @@ return image->fops->cleanup(image->image_loader_data); } -int __weak arch_kimage_file_post_load_cleanup(struct kimage *image) -{ - return kexec_image_post_load_cleanup_default(image); -} - -#ifdef CONFIG_KEXEC_SIG -static int kexec_image_verify_sig_default(struct kimage *image, void *buf, - unsigned long buf_len) -{ - if (!image->fops || !image->fops->verify_sig) { - pr_debug("kernel loader does not support signature verification.\n"); - return -EKEYREJECTED; - } - - return image->fops->verify_sig(buf, buf_len); -} - -int __weak arch_kexec_kernel_verify_sig(struct kimage *image, void *buf, - unsigned long buf_len) -{ - return kexec_image_verify_sig_default(image, buf, buf_len); -} -#endif - /* * Free up memory used by kernel, initrd, and command line. This is temporary * memory allocation which is not needed any more after these buffers have @@ -159,13 +123,41 @@ } #ifdef CONFIG_KEXEC_SIG +#ifdef CONFIG_SIGNED_PE_FILE_VERIFICATION +int kexec_kernel_verify_pe_sig(const char *kernel, unsigned long kernel_len) +{ + int ret; + + ret = verify_pefile_signature(kernel, kernel_len, + VERIFY_USE_SECONDARY_KEYRING, + VERIFYING_KEXEC_PE_SIGNATURE); + if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { + ret = verify_pefile_signature(kernel, kernel_len, + VERIFY_USE_PLATFORM_KEYRING, + VERIFYING_KEXEC_PE_SIGNATURE); + } + return ret; +} +#endif + +static int kexec_image_verify_sig(struct kimage *image, void *buf, + unsigned long buf_len) +{ + if (!image->fops || !image->fops->verify_sig) { + pr_debug("kernel loader does not support signature verification.\n"); + return -EKEYREJECTED; + } + + return image->fops->verify_sig(buf, buf_len); +} + static int kimage_validate_signature(struct kimage *image) { int ret; - ret = arch_kexec_kernel_verify_sig(image, image->kernel_buf, - image->kernel_buf_len); + ret = kexec_image_verify_sig(image, image->kernel_buf, + image->kernel_buf_len); if (ret) { if (sig_enforce) { @@ -622,19 +614,6 @@ } /** - * arch_kexec_locate_mem_hole - Find free memory to place the segments. - * @kbuf: Parameters for the memory search. - * - * On success, kbuf->mem will have the start address of the memory region found. - * - * Return: 0 on success, negative errno on error. - */ -int __weak arch_kexec_locate_mem_hole(struct kexec_buf *kbuf) -{ - return kexec_locate_mem_hole(kbuf); -} - -/** * kexec_add_buffer - place a buffer in a kexec segment * @kbuf: Buffer contents and memory parameters. * --- linux-5.19.0.orig/kernel/kprobes.c +++ linux-5.19.0/kernel/kprobes.c @@ -1560,7 +1560,9 @@ preempt_disable(); /* Ensure it is not in reserved area nor out of text */ - if (!kernel_text_address((unsigned long) p->addr) || + if (!(core_kernel_text((unsigned long) p->addr) || + is_module_text_address((unsigned long) p->addr)) || + in_gate_area_no_mm((unsigned long) p->addr) || within_kprobe_blacklist((unsigned long) p->addr) || jump_label_text_reserved(p->addr, p->addr) || static_call_text_reserved(p->addr, p->addr) || @@ -1706,11 +1708,12 @@ /* Try to disarm and disable this/parent probe */ if (p == orig_p || aggr_kprobe_disabled(orig_p)) { /* - * If 'kprobes_all_disarmed' is set, 'orig_p' - * should have already been disarmed, so - * skip unneed disarming process. + * Don't be lazy here. Even if 'kprobes_all_disarmed' + * is false, 'orig_p' might not have been armed yet. + * Note arm_all_kprobes() __tries__ to arm all kprobes + * on the best effort basis. */ - if (!kprobes_all_disarmed) { + if (!kprobes_all_disarmed && !kprobe_disabled(orig_p)) { ret = disarm_kprobe(orig_p, true); if (ret) { p->flags &= ~KPROBE_FLAG_DISABLED; @@ -1759,7 +1762,13 @@ if ((list_p != p) && (list_p->post_handler)) goto noclean; } - ap->post_handler = NULL; + /* + * For the kprobe-on-ftrace case, we keep the + * post_handler setting to identify this aggrprobe + * armed with kprobe_ipmodify_ops. + */ + if (!kprobe_ftrace(ap)) + ap->post_handler = NULL; } noclean: /* @@ -2351,6 +2360,14 @@ lockdep_assert_held(&kprobe_mutex); + /* + * The module is going away. We should disarm the kprobe which + * is using ftrace, because ftrace framework is still available at + * 'MODULE_STATE_GOING' notification. + */ + if (kprobe_ftrace(p) && !kprobe_disabled(p) && !kprobes_all_disarmed) + disarm_kprobe_ftrace(p); + p->flags |= KPROBE_FLAG_GONE; if (kprobe_aggrprobe(p)) { /* @@ -2367,14 +2384,6 @@ * the original probed function (which will be freed soon) any more. */ arch_remove_kprobe(p); - - /* - * The module is going away. We should disarm the kprobe which - * is using ftrace, because ftrace framework is still available at - * 'MODULE_STATE_GOING' notification. - */ - if (kprobe_ftrace(p) && !kprobe_disabled(p) && !kprobes_all_disarmed) - disarm_kprobe_ftrace(p); } /* Disable one kprobe */ @@ -2422,8 +2431,11 @@ if (!kprobes_all_disarmed && kprobe_disabled(p)) { p->flags &= ~KPROBE_FLAG_DISABLED; ret = arm_kprobe(p); - if (ret) + if (ret) { p->flags |= KPROBE_FLAG_DISABLED; + if (p != kp) + kp->flags |= KPROBE_FLAG_DISABLED; + } } out: mutex_unlock(&kprobe_mutex); --- linux-5.19.0.orig/kernel/kthread.c +++ linux-5.19.0/kernel/kthread.c @@ -439,6 +439,17 @@ * new kernel thread. */ if (unlikely(wait_for_completion_killable(&done))) { + int i = 0; + + /* + * I got SIGKILL, but wait for 10 more seconds for completion + * unless chosen by the OOM killer. This delay is there as a + * workaround for boot failure caused by SIGKILL upon device + * driver initialization timeout. + */ + while (i++ < 10 && !test_tsk_thread_flag(current, TIF_MEMDIE)) + if (wait_for_completion_timeout(&done, HZ)) + goto ready; /* * If I was killed by a fatal signal before kthreadd (or new * kernel thread) calls complete(), leave the cleanup of this @@ -452,6 +463,7 @@ */ wait_for_completion(&done); } +ready: task = create->result; if (!IS_ERR(task)) { char name[TASK_COMM_LEN]; --- linux-5.19.0.orig/kernel/livepatch/transition.c +++ linux-5.19.0/kernel/livepatch/transition.c @@ -610,9 +610,23 @@ /* Called from copy_process() during fork */ void klp_copy_process(struct task_struct *child) { - child->patch_state = current->patch_state; - /* TIF_PATCH_PENDING gets copied in setup_thread_stack() */ + /* + * The parent process may have gone through a KLP transition since + * the thread flag was copied in setup_thread_stack earlier. Bring + * the task flag up to date with the parent here. + * + * The operation is serialized against all klp_*_transition() + * operations by the tasklist_lock. The only exception is + * klp_update_patch_state(current), but we cannot race with + * that because we are current. + */ + if (test_tsk_thread_flag(current, TIF_PATCH_PENDING)) + set_tsk_thread_flag(child, TIF_PATCH_PENDING); + else + clear_tsk_thread_flag(child, TIF_PATCH_PENDING); + + child->patch_state = current->patch_state; } /* --- linux-5.19.0.orig/kernel/locking/lockdep.c +++ linux-5.19.0/kernel/locking/lockdep.c @@ -5238,9 +5238,10 @@ return 0; } - lockdep_init_map_waits(lock, name, key, 0, - lock->wait_type_inner, - lock->wait_type_outer); + lockdep_init_map_type(lock, name, key, 0, + lock->wait_type_inner, + lock->wait_type_outer, + lock->lock_type); class = register_lock_class(lock, subclass, 0); hlock->class_idx = class - lock_classes; --- linux-5.19.0.orig/kernel/module/decompress.c +++ linux-5.19.0/kernel/module/decompress.c @@ -114,8 +114,8 @@ do { struct page *page = module_get_next_page(info); - if (!page) { - retval = -ENOMEM; + if (IS_ERR(page)) { + retval = PTR_ERR(page); goto out_inflate_end; } @@ -173,8 +173,8 @@ do { struct page *page = module_get_next_page(info); - if (!page) { - retval = -ENOMEM; + if (IS_ERR(page)) { + retval = PTR_ERR(page); goto out; } --- linux-5.19.0.orig/kernel/module/kallsyms.c +++ linux-5.19.0/kernel/module/kallsyms.c @@ -481,7 +481,6 @@ return ret; } -#ifdef CONFIG_LIVEPATCH int module_kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, unsigned long), void *data) @@ -518,4 +517,3 @@ mutex_unlock(&module_mutex); return ret; } -#endif /* CONFIG_LIVEPATCH */ --- linux-5.19.0.orig/kernel/module/signing.c +++ linux-5.19.0/kernel/module/signing.c @@ -61,10 +61,17 @@ modlen -= sig_len + sizeof(ms); info->len = modlen; - return verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, VERIFY_USE_SECONDARY_KEYRING, VERIFYING_MODULE_SIGNATURE, NULL, NULL); + if (ret == -ENOKEY && IS_ENABLED(CONFIG_INTEGRITY_PLATFORM_KEYRING)) { + ret = verify_pkcs7_signature(mod, modlen, mod + modlen, sig_len, + VERIFY_USE_PLATFORM_KEYRING, + VERIFYING_MODULE_SIGNATURE, + NULL, NULL); + } + return ret; } int module_sig_check(struct load_info *info, int flags) --- linux-5.19.0.orig/kernel/module/tracking.c +++ linux-5.19.0/kernel/module/tracking.c @@ -21,6 +21,9 @@ module_assert_mutex_or_preempt(); + if (!mod->taints) + goto out; + list_for_each_entry_rcu(mod_taint, &unloaded_tainted_modules, list, lockdep_is_held(&module_mutex)) { if (!strcmp(mod_taint->name, mod->name) && --- linux-5.19.0.orig/kernel/padata.c +++ linux-5.19.0/kernel/padata.c @@ -207,14 +207,16 @@ pw = padata_work_alloc(); spin_unlock(&padata_works_lock); + if (!pw) { + /* Maximum works limit exceeded, run in the current task. */ + padata->parallel(padata); + } + rcu_read_unlock_bh(); if (pw) { padata_work_init(pw, padata_parallel_worker, padata, 0); queue_work(pinst->parallel_wq, &pw->pw_work); - } else { - /* Maximum works limit exceeded, run in the current task. */ - padata->parallel(padata); } return 0; @@ -388,13 +390,16 @@ int hashed_cpu = padata_cpu_hash(pd, padata->seq_nr); struct padata_list *reorder = per_cpu_ptr(pd->reorder_list, hashed_cpu); struct padata_priv *cur; + struct list_head *pos; spin_lock(&reorder->lock); /* Sort in ascending order of sequence number. */ - list_for_each_entry_reverse(cur, &reorder->list, list) + list_for_each_prev(pos, &reorder->list) { + cur = list_entry(pos, struct padata_priv, list); if (cur->seq_nr < padata->seq_nr) break; - list_add(&padata->list, &cur->list); + } + list_add(&padata->list, pos); spin_unlock(&reorder->lock); /* --- linux-5.19.0.orig/kernel/power/energy_model.c +++ linux-5.19.0/kernel/power/energy_model.c @@ -145,7 +145,7 @@ /* * The power returned by active_state() is expected to be - * positive and to fit into 16 bits. + * positive and be in range. */ if (!power || power > EM_MAX_POWER) { dev_err(dev, "EM: invalid power: %lu\n", @@ -170,7 +170,7 @@ goto free_ps_table; } } else { - power_res = em_scale_power(table[i].power); + power_res = table[i].power; cost = div64_u64(fmax * power_res, table[i].frequency); } @@ -201,9 +201,17 @@ { struct em_perf_domain *pd; struct device *cpu_dev; - int cpu, ret; + int cpu, ret, num_cpus; if (_is_cpu_device(dev)) { + num_cpus = cpumask_weight(cpus); + + /* Prevent max possible energy calculation to not overflow */ + if (num_cpus > EM_MAX_NUM_CPUS) { + dev_err(dev, "EM: too many CPUs, overflow possible\n"); + return -EINVAL; + } + pd = kzalloc(sizeof(*pd) + cpumask_size(), GFP_KERNEL); if (!pd) return -ENOMEM; @@ -314,13 +322,13 @@ * @cpus : Pointer to cpumask_t, which in case of a CPU device is * obligatory. It can be taken from i.e. 'policy->cpus'. For other * type of devices this should be set to NULL. - * @milliwatts : Flag indicating that the power values are in milliWatts or + * @microwatts : Flag indicating that the power values are in micro-Watts or * in some other scale. It must be set properly. * * Create Energy Model tables for a performance domain using the callbacks * defined in cb. * - * The @milliwatts is important to set with correct value. Some kernel + * The @microwatts is important to set with correct value. Some kernel * sub-systems might rely on this flag and check if all devices in the EM are * using the same scale. * @@ -331,7 +339,7 @@ */ int em_dev_register_perf_domain(struct device *dev, unsigned int nr_states, struct em_data_callback *cb, cpumask_t *cpus, - bool milliwatts) + bool microwatts) { unsigned long cap, prev_cap = 0; unsigned long flags = 0; @@ -381,8 +389,8 @@ } } - if (milliwatts) - flags |= EM_PERF_DOMAIN_MILLIWATTS; + if (microwatts) + flags |= EM_PERF_DOMAIN_MICROWATTS; else if (cb->get_cost) flags |= EM_PERF_DOMAIN_ARTIFICIAL; --- linux-5.19.0.orig/kernel/power/hibernate.c +++ linux-5.19.0/kernel/power/hibernate.c @@ -641,7 +641,7 @@ int error; if (hibernation_mode == HIBERNATION_SUSPEND) { - error = suspend_devices_and_enter(PM_SUSPEND_MEM); + error = suspend_devices_and_enter(mem_sleep_current); if (error) { hibernation_mode = hibernation_ops ? HIBERNATION_PLATFORM : --- linux-5.19.0.orig/kernel/power/snapshot.c +++ linux-5.19.0/kernel/power/snapshot.c @@ -1723,8 +1723,8 @@ * /sys/power/reserved_size, respectively). To make this happen, we compute the * total number of available page frames and allocate at least * - * ([page frames total] + PAGES_FOR_IO + [metadata pages]) / 2 - * + 2 * DIV_ROUND_UP(reserved_size, PAGE_SIZE) + * ([page frames total] - PAGES_FOR_IO - [metadata pages]) / 2 + * - 2 * DIV_ROUND_UP(reserved_size, PAGE_SIZE) * * of them, which corresponds to the maximum size of a hibernation image. * --- linux-5.19.0.orig/kernel/power/user.c +++ linux-5.19.0/kernel/power/user.c @@ -26,6 +26,7 @@ #include "power.h" +static bool need_wait; static struct snapshot_data { struct snapshot_handle handle; @@ -78,7 +79,7 @@ * Resuming. We may need to wait for the image device to * appear. */ - wait_for_device_probe(); + need_wait = true; data->swap = -1; data->mode = O_WRONLY; @@ -168,6 +169,11 @@ ssize_t res; loff_t pg_offp = *offp & ~PAGE_MASK; + if (need_wait) { + wait_for_device_probe(); + need_wait = false; + } + lock_system_sleep(); data = filp->private_data; @@ -244,6 +250,11 @@ loff_t size; sector_t offset; + if (need_wait) { + wait_for_device_probe(); + need_wait = false; + } + if (_IOC_TYPE(cmd) != SNAPSHOT_IOC_MAGIC) return -ENOTTY; if (_IOC_NR(cmd) > SNAPSHOT_IOC_MAXNR) --- linux-5.19.0.orig/kernel/profile.c +++ linux-5.19.0/kernel/profile.c @@ -109,6 +109,13 @@ /* only text is profiled */ prof_len = (_etext - _stext) >> prof_shift; + + if (!prof_len) { + pr_warn("profiling shift: %u too large\n", prof_shift); + prof_on = 0; + return -EINVAL; + } + buffer_bytes = prof_len*sizeof(atomic_t); if (!alloc_cpumask_var(&prof_cpu_mask, GFP_KERNEL)) --- linux-5.19.0.orig/kernel/rcu/rcutorture.c +++ linux-5.19.0/kernel/rcu/rcutorture.c @@ -2075,6 +2075,19 @@ if (boost_tasks[cpu] != NULL) return 0; /* Already created, nothing more to do. */ + // Testing RCU priority boosting requires rcutorture do + // some serious abuse. Counter this by running ksoftirqd + // at higher priority. + if (IS_BUILTIN(CONFIG_RCU_TORTURE_TEST)) { + struct sched_param sp; + struct task_struct *t; + + t = per_cpu(ksoftirqd, cpu); + WARN_ON_ONCE(!t); + sp.sched_priority = 2; + sched_setscheduler_nocheck(t, SCHED_FIFO, &sp); + } + /* Don't allow time recalculation while creating a new task. */ mutex_lock(&boost_mutex); rcu_torture_disable_rt_throttle(); @@ -3329,21 +3342,6 @@ rcutor_hp = firsterr; if (torture_init_error(firsterr)) goto unwind; - - // Testing RCU priority boosting requires rcutorture do - // some serious abuse. Counter this by running ksoftirqd - // at higher priority. - if (IS_BUILTIN(CONFIG_RCU_TORTURE_TEST)) { - for_each_online_cpu(cpu) { - struct sched_param sp; - struct task_struct *t; - - t = per_cpu(ksoftirqd, cpu); - WARN_ON_ONCE(!t); - sp.sched_priority = 2; - sched_setscheduler_nocheck(t, SCHED_FIFO, &sp); - } - } } shutdown_jiffies = jiffies + shutdown_secs * HZ; firsterr = torture_shutdown_init(shutdown_secs, rcu_torture_cleanup); --- linux-5.19.0.orig/kernel/rcu/tasks.h +++ linux-5.19.0/kernel/rcu/tasks.h @@ -327,7 +327,7 @@ static void synchronize_rcu_tasks_generic(struct rcu_tasks *rtp) { /* Complain if the scheduler has not started. */ - RCU_LOCKDEP_WARN(rcu_scheduler_active == RCU_SCHEDULER_INACTIVE, + WARN_ONCE(rcu_scheduler_active == RCU_SCHEDULER_INACTIVE, "synchronize_rcu_tasks called too soon"); /* Wait for the grace period. */ --- linux-5.19.0.orig/kernel/rcu/tree.c +++ linux-5.19.0/kernel/rcu/tree.c @@ -2746,7 +2746,7 @@ struct rcu_node *rnp_old = NULL; /* Funnel through hierarchy to reduce memory contention. */ - rnp = __this_cpu_read(rcu_data.mynode); + rnp = raw_cpu_read(rcu_data.mynode); for (; rnp != NULL; rnp = rnp->parent) { ret = (READ_ONCE(rcu_state.gp_flags) & RCU_GP_FLAG_FQS) || !raw_spin_trylock(&rnp->fqslock); @@ -3508,15 +3508,16 @@ bnode = (struct kvfree_rcu_bulk_data *) __get_free_page(GFP_KERNEL | __GFP_NORETRY | __GFP_NOMEMALLOC | __GFP_NOWARN); - if (bnode) { - raw_spin_lock_irqsave(&krcp->lock, flags); - pushed = put_cached_bnode(krcp, bnode); - raw_spin_unlock_irqrestore(&krcp->lock, flags); + if (!bnode) + break; - if (!pushed) { - free_page((unsigned long) bnode); - break; - } + raw_spin_lock_irqsave(&krcp->lock, flags); + pushed = put_cached_bnode(krcp, bnode); + raw_spin_unlock_irqrestore(&krcp->lock, flags); + + if (!pushed) { + free_page((unsigned long) bnode); + break; } } --- linux-5.19.0.orig/kernel/rcu/tree_plugin.h +++ linux-5.19.0/kernel/rcu/tree_plugin.h @@ -641,7 +641,8 @@ expboost = (t->rcu_blocked_node && READ_ONCE(t->rcu_blocked_node->exp_tasks)) || (rdp->grpmask & READ_ONCE(rnp->expmask)) || - IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD) || + (IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD) && + ((rdp->grpmask & READ_ONCE(rnp->qsmask)) || t->rcu_blocked_node)) || (IS_ENABLED(CONFIG_RCU_BOOST) && irqs_were_disabled && t->rcu_blocked_node); // Need to defer quiescent state until everything is enabled. --- linux-5.19.0.orig/kernel/relay.c +++ linux-5.19.0/kernel/relay.c @@ -151,13 +151,13 @@ { struct rchan_buf *buf; - if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t *)) + if (chan->n_subbufs > KMALLOC_MAX_SIZE / sizeof(size_t)) return NULL; buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL); if (!buf) return NULL; - buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t *), + buf->padding = kmalloc_array(chan->n_subbufs, sizeof(size_t), GFP_KERNEL); if (!buf->padding) goto free_buf; --- linux-5.19.0.orig/kernel/sched/core.c +++ linux-5.19.0/kernel/sched/core.c @@ -91,7 +91,7 @@ #include "stats.h" #include "../workqueue_internal.h" -#include "../../fs/io-wq.h" +#include "../../io_uring/io-wq.h" #include "../smpboot.h" /* @@ -1404,7 +1404,7 @@ if (!(rq->uclamp_flags & UCLAMP_FLAG_IDLE)) return; - WRITE_ONCE(rq->uclamp[clamp_id].value, clamp_value); + uclamp_rq_set(rq, clamp_id, clamp_value); } static inline @@ -1555,8 +1555,8 @@ if (bucket->tasks == 1 || uc_se->value > bucket->value) bucket->value = uc_se->value; - if (uc_se->value > READ_ONCE(uc_rq->value)) - WRITE_ONCE(uc_rq->value, uc_se->value); + if (uc_se->value > uclamp_rq_get(rq, clamp_id)) + uclamp_rq_set(rq, clamp_id, uc_se->value); } /* @@ -1622,7 +1622,7 @@ if (likely(bucket->tasks)) return; - rq_clamp = READ_ONCE(uc_rq->value); + rq_clamp = uclamp_rq_get(rq, clamp_id); /* * Defensive programming: this should never happen. If it happens, * e.g. due to future modification, warn and fixup the expected value. @@ -1630,7 +1630,7 @@ SCHED_WARN_ON(bucket->value > rq_clamp); if (bucket->value >= rq_clamp) { bkt_clamp = uclamp_rq_max_value(rq, clamp_id, uc_se->value); - WRITE_ONCE(uc_rq->value, bkt_clamp); + uclamp_rq_set(rq, clamp_id, bkt_clamp); } } @@ -3808,7 +3808,7 @@ return per_cpu(sd_llc_id, this_cpu) == per_cpu(sd_llc_id, that_cpu); } -static inline bool ttwu_queue_cond(int cpu, int wake_flags) +static inline bool ttwu_queue_cond(struct task_struct *p, int cpu) { /* * Do not complicate things with the async wake_list while the CPU is @@ -3817,6 +3817,10 @@ if (!cpu_active(cpu)) return false; + /* Ensure the task will still be allowed to run on the CPU. */ + if (!cpumask_test_cpu(cpu, p->cpus_ptr)) + return false; + /* * If the CPU does not share cache, then queue the task on the * remote rqs wakelist to avoid accessing remote data. @@ -3824,13 +3828,21 @@ if (!cpus_share_cache(smp_processor_id(), cpu)) return true; + if (cpu == smp_processor_id()) + return false; + /* - * If the task is descheduling and the only running task on the - * CPU then use the wakelist to offload the task activation to - * the soon-to-be-idle CPU as the current CPU is likely busy. - * nr_running is checked to avoid unnecessary task stacking. + * If the wakee cpu is idle, or the task is descheduling and the + * only running task on the CPU, then use the wakelist to offload + * the task activation to the idle (or soon-to-be-idle) CPU as + * the current CPU is likely busy. nr_running is checked to + * avoid unnecessary task stacking. + * + * Note that we can only get here with (wakee) p->on_rq=0, + * p->on_cpu can be whatever, we've done the dequeue, so + * the wakee has been accounted out of ->nr_running. */ - if ((wake_flags & WF_ON_CPU) && cpu_rq(cpu)->nr_running <= 1) + if (!cpu_rq(cpu)->nr_running) return true; return false; @@ -3838,10 +3850,7 @@ static bool ttwu_queue_wakelist(struct task_struct *p, int cpu, int wake_flags) { - if (sched_feat(TTWU_QUEUE) && ttwu_queue_cond(cpu, wake_flags)) { - if (WARN_ON_ONCE(cpu == smp_processor_id())) - return false; - + if (sched_feat(TTWU_QUEUE) && ttwu_queue_cond(p, cpu)) { sched_clock_cpu(cpu); /* Sync clocks across CPUs */ __ttwu_queue_wakelist(p, cpu, wake_flags); return true; @@ -4163,7 +4172,7 @@ * scheduling. */ if (smp_load_acquire(&p->on_cpu) && - ttwu_queue_wakelist(p, task_cpu(p), wake_flags | WF_ON_CPU)) + ttwu_queue_wakelist(p, task_cpu(p), wake_flags)) goto unlock; /* @@ -4753,7 +4762,8 @@ * Claim the task as running, we do this before switching to it * such that any running task will have this set. * - * See the ttwu() WF_ON_CPU case and its ordering comment. + * See the smp_load_acquire(&p->on_cpu) case in ttwu() and + * its ordering comment. */ WRITE_ONCE(next->on_cpu, 1); #endif @@ -6500,8 +6510,12 @@ io_wq_worker_sleeping(tsk); } - if (tsk_is_pi_blocked(tsk)) - return; + /* + * spinlock and rwlock must not flush block requests. This will + * deadlock if the callback attempts to acquire a lock which is + * already acquired. + */ + SCHED_WARN_ON(current->__state & TASK_RTLOCK_WAIT); /* * If we are going to sleep and we have plugged IO queued, @@ -6998,18 +7012,31 @@ EXPORT_SYMBOL(set_user_nice); /* - * can_nice - check if a task can reduce its nice value + * is_nice_reduction - check if nice value is an actual reduction + * + * Similar to can_nice() but does not perform a capability check. + * * @p: task * @nice: nice value */ -int can_nice(const struct task_struct *p, const int nice) +static bool is_nice_reduction(const struct task_struct *p, const int nice) { /* Convert nice value [19,-20] to rlimit style value [1,40]: */ int nice_rlim = nice_to_rlimit(nice); - return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) || - capable(CAP_SYS_NICE)); + return (nice_rlim <= task_rlimit(p, RLIMIT_NICE)); +} + +/* + * can_nice - check if a task can reduce its nice value + * @p: task + * @nice: nice value + */ +int can_nice(const struct task_struct *p, const int nice) +{ + return is_nice_reduction(p, nice) || capable(CAP_SYS_NICE); } +EXPORT_SYMBOL(can_nice); #ifdef __ARCH_WANT_SYS_NICE @@ -7287,6 +7314,69 @@ return match; } +/* + * Allow unprivileged RT tasks to decrease priority. + * Only issue a capable test if needed and only once to avoid an audit + * event on permitted non-privileged operations: + */ +static int user_check_sched_setscheduler(struct task_struct *p, + const struct sched_attr *attr, + int policy, int reset_on_fork) +{ + if (fair_policy(policy)) { + if (attr->sched_nice < task_nice(p) && + !is_nice_reduction(p, attr->sched_nice)) + goto req_priv; + } + + if (rt_policy(policy)) { + unsigned long rlim_rtprio = task_rlimit(p, RLIMIT_RTPRIO); + + /* Can't set/change the rt policy: */ + if (policy != p->policy && !rlim_rtprio) + goto req_priv; + + /* Can't increase priority: */ + if (attr->sched_priority > p->rt_priority && + attr->sched_priority > rlim_rtprio) + goto req_priv; + } + + /* + * Can't set/change SCHED_DEADLINE policy at all for now + * (safest behavior); in the future we would like to allow + * unprivileged DL tasks to increase their relative deadline + * or reduce their runtime (both ways reducing utilization) + */ + if (dl_policy(policy)) + goto req_priv; + + /* + * Treat SCHED_IDLE as nice 20. Only allow a switch to + * SCHED_NORMAL if the RLIMIT_NICE would normally permit it. + */ + if (task_has_idle_policy(p) && !idle_policy(policy)) { + if (!is_nice_reduction(p, task_nice(p))) + goto req_priv; + } + + /* Can't change other user's priorities: */ + if (!check_same_owner(p)) + goto req_priv; + + /* Normal users shall not reset the sched_reset_on_fork flag: */ + if (p->sched_reset_on_fork && !reset_on_fork) + goto req_priv; + + return 0; + +req_priv: + if (!capable(CAP_SYS_NICE)) + return -EPERM; + + return 0; +} + static int __sched_setscheduler(struct task_struct *p, const struct sched_attr *attr, bool user, bool pi) @@ -7328,58 +7418,11 @@ (rt_policy(policy) != (attr->sched_priority != 0))) return -EINVAL; - /* - * Allow unprivileged RT tasks to decrease priority: - */ - if (user && !capable(CAP_SYS_NICE)) { - if (fair_policy(policy)) { - if (attr->sched_nice < task_nice(p) && - !can_nice(p, attr->sched_nice)) - return -EPERM; - } - - if (rt_policy(policy)) { - unsigned long rlim_rtprio = - task_rlimit(p, RLIMIT_RTPRIO); - - /* Can't set/change the rt policy: */ - if (policy != p->policy && !rlim_rtprio) - return -EPERM; - - /* Can't increase priority: */ - if (attr->sched_priority > p->rt_priority && - attr->sched_priority > rlim_rtprio) - return -EPERM; - } - - /* - * Can't set/change SCHED_DEADLINE policy at all for now - * (safest behavior); in the future we would like to allow - * unprivileged DL tasks to increase their relative deadline - * or reduce their runtime (both ways reducing utilization) - */ - if (dl_policy(policy)) - return -EPERM; - - /* - * Treat SCHED_IDLE as nice 20. Only allow a switch to - * SCHED_NORMAL if the RLIMIT_NICE would normally permit it. - */ - if (task_has_idle_policy(p) && !idle_policy(policy)) { - if (!can_nice(p, task_nice(p))) - return -EPERM; - } - - /* Can't change other user's priorities: */ - if (!check_same_owner(p)) - return -EPERM; - - /* Normal users shall not reset the sched_reset_on_fork flag: */ - if (p->sched_reset_on_fork && !reset_on_fork) - return -EPERM; - } - if (user) { + retval = user_check_sched_setscheduler(p, attr, policy, reset_on_fork); + if (retval) + return retval; + if (attr->sched_flags & SCHED_FLAG_SUGOV) return -EINVAL; @@ -8947,7 +8990,7 @@ } int task_can_attach(struct task_struct *p, - const struct cpumask *cs_cpus_allowed) + const struct cpumask *cs_effective_cpus) { int ret = 0; @@ -8966,9 +9009,11 @@ } if (dl_task(p) && !cpumask_intersects(task_rq(p)->rd->span, - cs_cpus_allowed)) { - int cpu = cpumask_any_and(cpu_active_mask, cs_cpus_allowed); + cs_effective_cpus)) { + int cpu = cpumask_any_and(cpu_active_mask, cs_effective_cpus); + if (unlikely(cpu >= nr_cpu_ids)) + return -EINVAL; ret = dl_cpu_busy(cpu, p); } --- linux-5.19.0.orig/kernel/sched/cpudeadline.c +++ linux-5.19.0/kernel/sched/cpudeadline.c @@ -123,7 +123,7 @@ unsigned long cap, max_cap = 0; int cpu, max_cpu = -1; - if (!static_branch_unlikely(&sched_asym_cpucapacity)) + if (!sched_asym_cpucap_active()) return 1; /* Ensure the capacity of the CPUs fits the task. */ --- linux-5.19.0.orig/kernel/sched/deadline.c +++ linux-5.19.0/kernel/sched/deadline.c @@ -142,7 +142,7 @@ */ static inline unsigned long dl_bw_capacity(int i) { - if (!static_branch_unlikely(&sched_asym_cpucapacity) && + if (!sched_asym_cpucap_active() && capacity_orig_of(i) == SCHED_CAPACITY_SCALE) { return dl_bw_cpus(i) << SCHED_CAPACITY_SHIFT; } else { @@ -1847,7 +1847,7 @@ * Take the capacity of the CPU into account to * ensure it fits the requirement of the task. */ - if (static_branch_unlikely(&sched_asym_cpucapacity)) + if (sched_asym_cpucap_active()) select_rq |= !dl_task_fits_capacity(p, cpu); if (select_rq) { --- linux-5.19.0.orig/kernel/sched/debug.c +++ linux-5.19.0/kernel/sched/debug.c @@ -416,7 +416,7 @@ char buf[32]; snprintf(buf, sizeof(buf), "cpu%d", cpu); - debugfs_remove(debugfs_lookup(buf, sd_dentry)); + debugfs_lookup_and_remove(buf, sd_dentry); d_cpu = debugfs_create_dir(buf, sd_dentry); i = 0; --- linux-5.19.0.orig/kernel/sched/fair.c +++ linux-5.19.0/kernel/sched/fair.c @@ -2885,6 +2885,7 @@ p->node_stamp = 0; p->numa_scan_seq = mm ? mm->numa_scan_seq : 0; p->numa_scan_period = sysctl_numa_balancing_scan_delay; + p->numa_migrate_retry = 0; /* Protect against double add, see task_tick_numa and task_numa_work */ p->numa_work.next = &p->numa_work; p->numa_faults = NULL; @@ -4022,14 +4023,16 @@ } #ifdef CONFIG_UCLAMP_TASK -static inline unsigned long uclamp_task_util(struct task_struct *p) +static inline unsigned long uclamp_task_util(struct task_struct *p, + unsigned long uclamp_min, + unsigned long uclamp_max) { - return clamp(task_util_est(p), - uclamp_eff_value(p, UCLAMP_MIN), - uclamp_eff_value(p, UCLAMP_MAX)); + return clamp(task_util_est(p), uclamp_min, uclamp_max); } #else -static inline unsigned long uclamp_task_util(struct task_struct *p) +static inline unsigned long uclamp_task_util(struct task_struct *p, + unsigned long uclamp_min, + unsigned long uclamp_max) { return task_util_est(p); } @@ -4168,15 +4171,140 @@ trace_sched_util_est_se_tp(&p->se); } -static inline int task_fits_capacity(struct task_struct *p, - unsigned long capacity) +static inline int util_fits_cpu(unsigned long util, + unsigned long uclamp_min, + unsigned long uclamp_max, + int cpu) { - return fits_capacity(uclamp_task_util(p), capacity); + unsigned long capacity_orig, capacity_orig_thermal; + unsigned long capacity = capacity_of(cpu); + bool fits, uclamp_max_fits; + + /* + * Check if the real util fits without any uclamp boost/cap applied. + */ + fits = fits_capacity(util, capacity); + + if (!uclamp_is_used()) + return fits; + + /* + * We must use capacity_orig_of() for comparing against uclamp_min and + * uclamp_max. We only care about capacity pressure (by using + * capacity_of()) for comparing against the real util. + * + * If a task is boosted to 1024 for example, we don't want a tiny + * pressure to skew the check whether it fits a CPU or not. + * + * Similarly if a task is capped to capacity_orig_of(little_cpu), it + * should fit a little cpu even if there's some pressure. + * + * Only exception is for thermal pressure since it has a direct impact + * on available OPP of the system. + * + * We honour it for uclamp_min only as a drop in performance level + * could result in not getting the requested minimum performance level. + * + * For uclamp_max, we can tolerate a drop in performance level as the + * goal is to cap the task. So it's okay if it's getting less. + * + * In case of capacity inversion, which is not handled yet, we should + * honour the inverted capacity for both uclamp_min and uclamp_max all + * the time. + */ + capacity_orig = capacity_orig_of(cpu); + capacity_orig_thermal = capacity_orig - arch_scale_thermal_pressure(cpu); + + /* + * We want to force a task to fit a cpu as implied by uclamp_max. + * But we do have some corner cases to cater for.. + * + * + * C=z + * | ___ + * | C=y | | + * |_ _ _ _ _ _ _ _ _ ___ _ _ _ | _ | _ _ _ _ _ uclamp_max + * | C=x | | | | + * | ___ | | | | + * | | | | | | | (util somewhere in this region) + * | | | | | | | + * | | | | | | | + * +---------------------------------------- + * cpu0 cpu1 cpu2 + * + * In the above example if a task is capped to a specific performance + * point, y, then when: + * + * * util = 80% of x then it does not fit on cpu0 and should migrate + * to cpu1 + * * util = 80% of y then it is forced to fit on cpu1 to honour + * uclamp_max request. + * + * which is what we're enforcing here. A task always fits if + * uclamp_max <= capacity_orig. But when uclamp_max > capacity_orig, + * the normal upmigration rules should withhold still. + * + * Only exception is when we are on max capacity, then we need to be + * careful not to block overutilized state. This is so because: + * + * 1. There's no concept of capping at max_capacity! We can't go + * beyond this performance level anyway. + * 2. The system is being saturated when we're operating near + * max capacity, it doesn't make sense to block overutilized. + */ + uclamp_max_fits = (capacity_orig == SCHED_CAPACITY_SCALE) && (uclamp_max == SCHED_CAPACITY_SCALE); + uclamp_max_fits = !uclamp_max_fits && (uclamp_max <= capacity_orig); + fits = fits || uclamp_max_fits; + + /* + * + * C=z + * | ___ (region a, capped, util >= uclamp_max) + * | C=y | | + * |_ _ _ _ _ _ _ _ _ ___ _ _ _ | _ | _ _ _ _ _ uclamp_max + * | C=x | | | | + * | ___ | | | | (region b, uclamp_min <= util <= uclamp_max) + * |_ _ _|_ _|_ _ _ _| _ | _ _ _| _ | _ _ _ _ _ uclamp_min + * | | | | | | | + * | | | | | | | (region c, boosted, util < uclamp_min) + * +---------------------------------------- + * cpu0 cpu1 cpu2 + * + * a) If util > uclamp_max, then we're capped, we don't care about + * actual fitness value here. We only care if uclamp_max fits + * capacity without taking margin/pressure into account. + * See comment above. + * + * b) If uclamp_min <= util <= uclamp_max, then the normal + * fits_capacity() rules apply. Except we need to ensure that we + * enforce we remain within uclamp_max, see comment above. + * + * c) If util < uclamp_min, then we are boosted. Same as (b) but we + * need to take into account the boosted value fits the CPU without + * taking margin/pressure into account. + * + * Cases (a) and (b) are handled in the 'fits' variable already. We + * just need to consider an extra check for case (c) after ensuring we + * handle the case uclamp_min > uclamp_max. + */ + uclamp_min = min(uclamp_min, uclamp_max); + if (util < uclamp_min && capacity_orig != SCHED_CAPACITY_SCALE) + fits = fits && (uclamp_min <= capacity_orig_thermal); + + return fits; +} + +static inline int task_fits_cpu(struct task_struct *p, int cpu) +{ + unsigned long uclamp_min = uclamp_eff_value(p, UCLAMP_MIN); + unsigned long uclamp_max = uclamp_eff_value(p, UCLAMP_MAX); + unsigned long util = task_util_est(p); + return util_fits_cpu(util, uclamp_min, uclamp_max, cpu); } static inline void update_misfit_status(struct task_struct *p, struct rq *rq) { - if (!static_branch_unlikely(&sched_asym_cpucapacity)) + if (!sched_asym_cpucap_active()) return; if (!p || p->nr_cpus_allowed == 1) { @@ -4184,7 +4312,7 @@ return; } - if (task_fits_capacity(p, capacity_of(cpu_of(rq)))) { + if (task_fits_cpu(p, cpu_of(rq))) { rq->misfit_task_load = 0; return; } @@ -5610,7 +5738,10 @@ #ifdef CONFIG_SMP static inline bool cpu_overutilized(int cpu) { - return !fits_capacity(cpu_util_cfs(cpu), capacity_of(cpu)); + unsigned long rq_util_min = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MIN); + unsigned long rq_util_max = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MAX); + + return !util_fits_cpu(cpu_util_cfs(cpu), rq_util_min, rq_util_max, cpu); } static inline void update_overutilized_status(struct rq *rq) @@ -6336,6 +6467,7 @@ { struct cpumask *cpus = this_cpu_cpumask_var_ptr(select_idle_mask); int i, cpu, idle_cpu = -1, nr = INT_MAX; + struct sched_domain_shared *sd_share; struct rq *this_rq = this_rq(); int this = smp_processor_id(); struct sched_domain *this_sd; @@ -6375,6 +6507,17 @@ time = cpu_clock(this); } + if (sched_feat(SIS_UTIL)) { + sd_share = rcu_dereference(per_cpu(sd_llc_shared, target)); + if (sd_share) { + /* because !--nr is the condition to stop scan */ + nr = READ_ONCE(sd_share->nr_idle_scan) + 1; + /* overloaded LLC is unlikely to have idle cpu/core */ + if (nr == 1) + return -1; + } + } + for_each_cpu_wrap(cpu, cpus, target + 1) { if (has_idle_core) { i = select_idle_core(p, cpu, cpus, &idle_cpu); @@ -6416,21 +6559,23 @@ static int select_idle_capacity(struct task_struct *p, struct sched_domain *sd, int target) { - unsigned long task_util, best_cap = 0; + unsigned long task_util, util_min, util_max, best_cap = 0; int cpu, best_cpu = -1; struct cpumask *cpus; cpus = this_cpu_cpumask_var_ptr(select_idle_mask); cpumask_and(cpus, sched_domain_span(sd), p->cpus_ptr); - task_util = uclamp_task_util(p); + task_util = task_util_est(p); + util_min = uclamp_eff_value(p, UCLAMP_MIN); + util_max = uclamp_eff_value(p, UCLAMP_MAX); for_each_cpu_wrap(cpu, cpus, target) { unsigned long cpu_cap = capacity_of(cpu); if (!available_idle_cpu(cpu) && !sched_idle_cpu(cpu)) continue; - if (fits_capacity(task_util, cpu_cap)) + if (util_fits_cpu(task_util, util_min, util_max, cpu)) return cpu; if (cpu_cap > best_cap) { @@ -6442,10 +6587,13 @@ return best_cpu; } -static inline bool asym_fits_capacity(unsigned long task_util, int cpu) +static inline bool asym_fits_cpu(unsigned long util, + unsigned long util_min, + unsigned long util_max, + int cpu) { - if (static_branch_unlikely(&sched_asym_cpucapacity)) - return fits_capacity(task_util, capacity_of(cpu)); + if (sched_asym_cpucap_active()) + return util_fits_cpu(util, util_min, util_max, cpu); return true; } @@ -6457,16 +6605,18 @@ { bool has_idle_core = false; struct sched_domain *sd; - unsigned long task_util; + unsigned long task_util, util_min, util_max; int i, recent_used_cpu; /* * On asymmetric system, update task utilization because we will check * that the task fits with cpu's capacity. */ - if (static_branch_unlikely(&sched_asym_cpucapacity)) { + if (sched_asym_cpucap_active()) { sync_entity_load_avg(&p->se); - task_util = uclamp_task_util(p); + task_util = task_util_est(p); + util_min = uclamp_eff_value(p, UCLAMP_MIN); + util_max = uclamp_eff_value(p, UCLAMP_MAX); } /* @@ -6475,7 +6625,7 @@ lockdep_assert_irqs_disabled(); if ((available_idle_cpu(target) || sched_idle_cpu(target)) && - asym_fits_capacity(task_util, target)) + asym_fits_cpu(task_util, util_min, util_max, target)) return target; /* @@ -6483,7 +6633,7 @@ */ if (prev != target && cpus_share_cache(prev, target) && (available_idle_cpu(prev) || sched_idle_cpu(prev)) && - asym_fits_capacity(task_util, prev)) + asym_fits_cpu(task_util, util_min, util_max, prev)) return prev; /* @@ -6498,7 +6648,7 @@ in_task() && prev == smp_processor_id() && this_rq()->nr_running <= 1 && - asym_fits_capacity(task_util, prev)) { + asym_fits_cpu(task_util, util_min, util_max, prev)) { return prev; } @@ -6510,7 +6660,7 @@ cpus_share_cache(recent_used_cpu, target) && (available_idle_cpu(recent_used_cpu) || sched_idle_cpu(recent_used_cpu)) && cpumask_test_cpu(p->recent_used_cpu, p->cpus_ptr) && - asym_fits_capacity(task_util, recent_used_cpu)) { + asym_fits_cpu(task_util, util_min, util_max, recent_used_cpu)) { return recent_used_cpu; } @@ -6518,7 +6668,7 @@ * For asymmetric CPU capacity systems, our domain of interest is * sd_asym_cpucapacity rather than sd_llc. */ - if (static_branch_unlikely(&sched_asym_cpucapacity)) { + if (sched_asym_cpucap_active()) { sd = rcu_dereference(per_cpu(sd_asym_cpucapacity, target)); /* * On an asymmetric CPU capacity system where an exclusive @@ -6754,6 +6904,8 @@ static int find_energy_efficient_cpu(struct task_struct *p, int prev_cpu) { unsigned long prev_delta = ULONG_MAX, best_delta = ULONG_MAX; + unsigned long p_util_min = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MIN) : 0; + unsigned long p_util_max = uclamp_is_used() ? uclamp_eff_value(p, UCLAMP_MAX) : 1024; struct root_domain *rd = cpu_rq(smp_processor_id())->rd; int cpu, best_energy_cpu = prev_cpu, target = -1; unsigned long cpu_cap, util, base_energy = 0; @@ -6778,11 +6930,13 @@ target = prev_cpu; sync_entity_load_avg(&p->se); - if (!task_util_est(p)) + if (!uclamp_task_util(p, p_util_min, p_util_max)) goto unlock; for (; pd; pd = pd->next) { unsigned long cur_delta, spare_cap, max_spare_cap = 0; + unsigned long rq_util_min, rq_util_max; + unsigned long util_min, util_max; bool compute_prev_delta = false; unsigned long base_energy_pd; int max_spare_cap_cpu = -1; @@ -6803,8 +6957,26 @@ * much capacity we can get out of the CPU; this is * aligned with sched_cpu_util(). */ - util = uclamp_rq_util_with(cpu_rq(cpu), util, p); - if (!fits_capacity(util, cpu_cap)) + if (uclamp_is_used()) { + if (uclamp_rq_is_idle(cpu_rq(cpu))) { + util_min = p_util_min; + util_max = p_util_max; + } else { + /* + * Open code uclamp_rq_util_with() except for + * the clamp() part. Ie: apply max aggregation + * only. util_fits_cpu() logic requires to + * operate on non clamped util but must use the + * max-aggregated uclamp_{min, max}. + */ + rq_util_min = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MIN); + rq_util_max = uclamp_rq_get(cpu_rq(cpu), UCLAMP_MAX); + + util_min = max(rq_util_min, p_util_min); + util_max = max(rq_util_max, p_util_max); + } + } + if (!util_fits_cpu(util, util_min, util_max, cpu)) continue; if (cpu == prev_cpu) { @@ -7585,8 +7757,8 @@ */ group_fully_busy, /* - * SD_ASYM_CPUCAPACITY only: One task doesn't fit with CPU's capacity - * and must be migrated to a more powerful CPU. + * One task doesn't fit with CPU's capacity and must be migrated to a + * more powerful CPU. */ group_misfit_task, /* @@ -7982,7 +8154,7 @@ case migrate_misfit: /* This is not a misfit task */ - if (task_fits_capacity(p, capacity_of(env->src_cpu))) + if (task_fits_cpu(p, env->src_cpu)) goto next; env->imbalance = 0; @@ -8669,6 +8841,19 @@ return sched_asym_prefer(env->dst_cpu, group->asym_prefer_cpu); } +static inline bool +sched_reduced_capacity(struct rq *rq, struct sched_domain *sd) +{ + /* + * When there is more than 1 task, the group_overloaded case already + * takes care of cpu with reduced capacity + */ + if (rq->cfs.h_nr_running != 1) + return false; + + return check_cpu_capacity(rq, sd); +} + /** * update_sg_lb_stats - Update sched_group's statistics for load balancing. * @env: The load balancing environment. @@ -8691,8 +8876,9 @@ for_each_cpu_and(i, sched_group_span(group), env->cpus) { struct rq *rq = cpu_rq(i); + unsigned long load = cpu_load(rq); - sgs->group_load += cpu_load(rq); + sgs->group_load += load; sgs->group_util += cpu_util_cfs(i); sgs->group_runnable += cpu_runnable(rq); sgs->sum_h_nr_running += rq->cfs.h_nr_running; @@ -8722,11 +8908,17 @@ if (local_group) continue; - /* Check for a misfit task on the cpu */ - if (env->sd->flags & SD_ASYM_CPUCAPACITY && - sgs->group_misfit_task_load < rq->misfit_task_load) { - sgs->group_misfit_task_load = rq->misfit_task_load; - *sg_status |= SG_OVERLOAD; + if (env->sd->flags & SD_ASYM_CPUCAPACITY) { + /* Check for a misfit task on the cpu */ + if (sgs->group_misfit_task_load < rq->misfit_task_load) { + sgs->group_misfit_task_load = rq->misfit_task_load; + *sg_status |= SG_OVERLOAD; + } + } else if ((env->idle != CPU_NOT_IDLE) && + sched_reduced_capacity(rq, env->sd)) { + /* Check for a task running on a CPU with reduced capacity */ + if (sgs->group_misfit_task_load < load) + sgs->group_misfit_task_load = load; } } @@ -8779,7 +8971,8 @@ * CPUs in the group should either be possible to resolve * internally or be covered by avg_load imbalance (eventually). */ - if (sgs->group_type == group_misfit_task && + if ((env->sd->flags & SD_ASYM_CPUCAPACITY) && + (sgs->group_type == group_misfit_task) && (!capacity_greater(capacity_of(env->dst_cpu), sg->sgc->max_capacity) || sds->local_stat.group_type != group_has_spare)) return false; @@ -8963,6 +9156,10 @@ memset(sgs, 0, sizeof(*sgs)); + /* Assume that task can't fit any CPU of the group */ + if (sd->flags & SD_ASYM_CPUCAPACITY) + sgs->group_misfit_task_load = 1; + for_each_cpu(i, sched_group_span(group)) { struct rq *rq = cpu_rq(i); unsigned int local; @@ -8982,12 +9179,12 @@ if (!nr_running && idle_cpu_without(i, p)) sgs->idle_cpus++; - } + /* Check if task fits in the CPU */ + if (sd->flags & SD_ASYM_CPUCAPACITY && + sgs->group_misfit_task_load && + task_fits_cpu(p, i)) + sgs->group_misfit_task_load = 0; - /* Check if task fits in the group */ - if (sd->flags & SD_ASYM_CPUCAPACITY && - !task_fits_capacity(p, group->sgc->max_capacity)) { - sgs->group_misfit_task_load = 1; } sgs->group_capacity = group->sgc->capacity; @@ -9222,6 +9419,77 @@ return idlest; } +static void update_idle_cpu_scan(struct lb_env *env, + unsigned long sum_util) +{ + struct sched_domain_shared *sd_share; + int llc_weight, pct; + u64 x, y, tmp; + /* + * Update the number of CPUs to scan in LLC domain, which could + * be used as a hint in select_idle_cpu(). The update of sd_share + * could be expensive because it is within a shared cache line. + * So the write of this hint only occurs during periodic load + * balancing, rather than CPU_NEWLY_IDLE, because the latter + * can fire way more frequently than the former. + */ + if (!sched_feat(SIS_UTIL) || env->idle == CPU_NEWLY_IDLE) + return; + + llc_weight = per_cpu(sd_llc_size, env->dst_cpu); + if (env->sd->span_weight != llc_weight) + return; + + sd_share = rcu_dereference(per_cpu(sd_llc_shared, env->dst_cpu)); + if (!sd_share) + return; + + /* + * The number of CPUs to search drops as sum_util increases, when + * sum_util hits 85% or above, the scan stops. + * The reason to choose 85% as the threshold is because this is the + * imbalance_pct(117) when a LLC sched group is overloaded. + * + * let y = SCHED_CAPACITY_SCALE - p * x^2 [1] + * and y'= y / SCHED_CAPACITY_SCALE + * + * x is the ratio of sum_util compared to the CPU capacity: + * x = sum_util / (llc_weight * SCHED_CAPACITY_SCALE) + * y' is the ratio of CPUs to be scanned in the LLC domain, + * and the number of CPUs to scan is calculated by: + * + * nr_scan = llc_weight * y' [2] + * + * When x hits the threshold of overloaded, AKA, when + * x = 100 / pct, y drops to 0. According to [1], + * p should be SCHED_CAPACITY_SCALE * pct^2 / 10000 + * + * Scale x by SCHED_CAPACITY_SCALE: + * x' = sum_util / llc_weight; [3] + * + * and finally [1] becomes: + * y = SCHED_CAPACITY_SCALE - + * x'^2 * pct^2 / (10000 * SCHED_CAPACITY_SCALE) [4] + * + */ + /* equation [3] */ + x = sum_util; + do_div(x, llc_weight); + + /* equation [4] */ + pct = env->sd->imbalance_pct; + tmp = x * x * pct * pct; + do_div(tmp, 10000 * SCHED_CAPACITY_SCALE); + tmp = min_t(long, tmp, SCHED_CAPACITY_SCALE); + y = SCHED_CAPACITY_SCALE - tmp; + + /* equation [2] */ + y *= llc_weight; + do_div(y, SCHED_CAPACITY_SCALE); + if ((int)y != sd_share->nr_idle_scan) + WRITE_ONCE(sd_share->nr_idle_scan, (int)y); +} + /** * update_sd_lb_stats - Update sched_domain's statistics for load balancing. * @env: The load balancing environment. @@ -9234,6 +9502,7 @@ struct sched_group *sg = env->sd->groups; struct sg_lb_stats *local = &sds->local_stat; struct sg_lb_stats tmp_sgs; + unsigned long sum_util = 0; int sg_status = 0; do { @@ -9266,6 +9535,7 @@ sds->total_load += sgs->group_load; sds->total_capacity += sgs->group_capacity; + sum_util += sgs->group_util; sg = sg->next; } while (sg != env->sd->groups); @@ -9291,6 +9561,8 @@ WRITE_ONCE(rd->overutilized, SG_OVERUTILIZED); trace_sched_overutilized_tp(rd, SG_OVERUTILIZED); } + + update_idle_cpu_scan(env, sum_util); } #define NUMA_IMBALANCE_MIN 2 @@ -9325,9 +9597,18 @@ busiest = &sds->busiest_stat; if (busiest->group_type == group_misfit_task) { - /* Set imbalance to allow misfit tasks to be balanced. */ - env->migration_type = migrate_misfit; - env->imbalance = 1; + if (env->sd->flags & SD_ASYM_CPUCAPACITY) { + /* Set imbalance to allow misfit tasks to be balanced. */ + env->migration_type = migrate_misfit; + env->imbalance = 1; + } else { + /* + * Set load imbalance to allow moving task from cpu + * with reduced capacity. + */ + env->migration_type = migrate_load; + env->imbalance = busiest->group_misfit_task_load; + } return; } --- linux-5.19.0.orig/kernel/sched/features.h +++ linux-5.19.0/kernel/sched/features.h @@ -60,7 +60,8 @@ /* * When doing wakeups, attempt to limit superfluous scans of the LLC domain. */ -SCHED_FEAT(SIS_PROP, true) +SCHED_FEAT(SIS_PROP, false) +SCHED_FEAT(SIS_UTIL, true) /* * Issue a WARN when we do multiple update_rq_clock() calls --- linux-5.19.0.orig/kernel/sched/psi.c +++ linux-5.19.0/kernel/sched/psi.c @@ -541,10 +541,12 @@ /* Calculate growth since last update */ growth = window_update(&t->win, now, total[t->state]); - if (growth < t->threshold) - continue; + if (!t->pending_event) { + if (growth < t->threshold) + continue; - t->pending_event = true; + t->pending_event = true; + } } /* Limit event signaling to once per window */ if (now < t->last_event_time + t->win.size) --- linux-5.19.0.orig/kernel/sched/rt.c +++ linux-5.19.0/kernel/sched/rt.c @@ -480,7 +480,7 @@ #endif /* CONFIG_SMP */ static void enqueue_top_rt_rq(struct rt_rq *rt_rq); -static void dequeue_top_rt_rq(struct rt_rq *rt_rq); +static void dequeue_top_rt_rq(struct rt_rq *rt_rq, unsigned int count); static inline int on_rt_rq(struct sched_rt_entity *rt_se) { @@ -509,7 +509,7 @@ unsigned int cpu_cap; /* Only heterogeneous systems can benefit from this check */ - if (!static_branch_unlikely(&sched_asym_cpucapacity)) + if (!sched_asym_cpucap_active()) return true; min_cap = uclamp_eff_value(p, UCLAMP_MIN); @@ -601,7 +601,7 @@ rt_se = rt_rq->tg->rt_se[cpu]; if (!rt_se) { - dequeue_top_rt_rq(rt_rq); + dequeue_top_rt_rq(rt_rq, rt_rq->rt_nr_running); /* Kick cpufreq (see the comment in kernel/sched/sched.h). */ cpufreq_update_util(rq_of_rt_rq(rt_rq), 0); } @@ -687,7 +687,7 @@ static inline void sched_rt_rq_dequeue(struct rt_rq *rt_rq) { - dequeue_top_rt_rq(rt_rq); + dequeue_top_rt_rq(rt_rq, rt_rq->rt_nr_running); } static inline int rt_rq_throttled(struct rt_rq *rt_rq) @@ -1089,7 +1089,7 @@ } static void -dequeue_top_rt_rq(struct rt_rq *rt_rq) +dequeue_top_rt_rq(struct rt_rq *rt_rq, unsigned int count) { struct rq *rq = rq_of_rt_rq(rt_rq); @@ -1100,7 +1100,7 @@ BUG_ON(!rq->nr_running); - sub_nr_running(rq, rt_rq->rt_nr_running); + sub_nr_running(rq, count); rt_rq->rt_queued = 0; } @@ -1486,18 +1486,21 @@ static void dequeue_rt_stack(struct sched_rt_entity *rt_se, unsigned int flags) { struct sched_rt_entity *back = NULL; + unsigned int rt_nr_running; for_each_sched_rt_entity(rt_se) { rt_se->back = back; back = rt_se; } - dequeue_top_rt_rq(rt_rq_of_se(back)); + rt_nr_running = rt_rq_of_se(back)->rt_nr_running; for (rt_se = back; rt_se; rt_se = rt_se->back) { if (on_rt_rq(rt_se)) __dequeue_rt_entity(rt_se, flags); } + + dequeue_top_rt_rq(rt_rq_of_se(back), rt_nr_running); } static void enqueue_rt_entity(struct sched_rt_entity *rt_se, unsigned int flags) @@ -1894,7 +1897,7 @@ * If we're on asym system ensure we consider the different capacities * of the CPUs when searching for the lowest_mask. */ - if (static_branch_unlikely(&sched_asym_cpucapacity)) { + if (sched_asym_cpucap_active()) { ret = cpupri_find_fitness(&task_rq(task)->rd->cpupri, task, lowest_mask, --- linux-5.19.0.orig/kernel/sched/sched.h +++ linux-5.19.0/kernel/sched/sched.h @@ -1146,6 +1146,14 @@ #endif } +DECLARE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); + +#define cpu_rq(cpu) (&per_cpu(runqueues, (cpu))) +#define this_rq() this_cpu_ptr(&runqueues) +#define task_rq(p) cpu_rq(task_cpu(p)) +#define cpu_curr(cpu) (cpu_rq(cpu)->curr) +#define raw_rq() raw_cpu_ptr(&runqueues) + struct sched_group; #ifdef CONFIG_SCHED_CORE static inline struct cpumask *sched_group_span(struct sched_group *sg); @@ -1233,7 +1241,7 @@ return true; for_each_cpu_and(cpu, sched_group_span(group), p->cpus_ptr) { - if (sched_core_cookie_match(rq, p)) + if (sched_core_cookie_match(cpu_rq(cpu), p)) return true; } return false; @@ -1348,14 +1356,6 @@ static inline void update_idle_core(struct rq *rq) { } #endif -DECLARE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues); - -#define cpu_rq(cpu) (&per_cpu(runqueues, (cpu))) -#define this_rq() this_cpu_ptr(&runqueues) -#define task_rq(p) cpu_rq(task_cpu(p)) -#define cpu_curr(cpu) (cpu_rq(cpu)->curr) -#define raw_rq() raw_cpu_ptr(&runqueues) - #ifdef CONFIG_FAIR_GROUP_SCHED static inline struct task_struct *task_of(struct sched_entity *se) { @@ -1764,6 +1764,11 @@ DECLARE_PER_CPU(struct sched_domain __rcu *, sd_asym_cpucapacity); extern struct static_key_false sched_asym_cpucapacity; +static __always_inline bool sched_asym_cpucap_active(void) +{ + return static_branch_unlikely(&sched_asym_cpucapacity); +} + struct sched_group_capacity { atomic_t ref; /* @@ -2044,7 +2049,6 @@ #define WF_SYNC 0x10 /* Waker goes to sleep after wakeup */ #define WF_MIGRATED 0x20 /* Internal use, task got migrated */ -#define WF_ON_CPU 0x40 /* Wakee is on_cpu */ #ifdef CONFIG_SMP static_assert(WF_EXEC == SD_BALANCE_EXEC); @@ -2922,6 +2926,23 @@ #ifdef CONFIG_UCLAMP_TASK unsigned long uclamp_eff_value(struct task_struct *p, enum uclamp_id clamp_id); +static inline unsigned long uclamp_rq_get(struct rq *rq, + enum uclamp_id clamp_id) +{ + return READ_ONCE(rq->uclamp[clamp_id].value); +} + +static inline void uclamp_rq_set(struct rq *rq, enum uclamp_id clamp_id, + unsigned int value) +{ + WRITE_ONCE(rq->uclamp[clamp_id].value, value); +} + +static inline bool uclamp_rq_is_idle(struct rq *rq) +{ + return rq->uclamp_flags & UCLAMP_FLAG_IDLE; +} + /** * uclamp_rq_util_with - clamp @util with @rq and @p effective uclamp values. * @rq: The rq to clamp against. Must not be NULL. @@ -2957,12 +2978,12 @@ * Ignore last runnable task's max clamp, as this task will * reset it. Similarly, no need to read the rq's min clamp. */ - if (rq->uclamp_flags & UCLAMP_FLAG_IDLE) + if (uclamp_rq_is_idle(rq)) goto out; } - min_util = max_t(unsigned long, min_util, READ_ONCE(rq->uclamp[UCLAMP_MIN].value)); - max_util = max_t(unsigned long, max_util, READ_ONCE(rq->uclamp[UCLAMP_MAX].value)); + min_util = max_t(unsigned long, min_util, uclamp_rq_get(rq, UCLAMP_MIN)); + max_util = max_t(unsigned long, max_util, uclamp_rq_get(rq, UCLAMP_MAX)); out: /* * Since CPU's {min,max}_util clamps are MAX aggregated considering @@ -3003,6 +3024,15 @@ return static_branch_likely(&sched_uclamp_used); } #else /* CONFIG_UCLAMP_TASK */ +static inline unsigned long uclamp_eff_value(struct task_struct *p, + enum uclamp_id clamp_id) +{ + if (clamp_id == UCLAMP_MIN) + return 0; + + return SCHED_CAPACITY_SCALE; +} + static inline unsigned long uclamp_rq_util_with(struct rq *rq, unsigned long util, struct task_struct *p) @@ -3016,6 +3046,25 @@ { return false; } + +static inline unsigned long uclamp_rq_get(struct rq *rq, + enum uclamp_id clamp_id) +{ + if (clamp_id == UCLAMP_MIN) + return 0; + + return SCHED_CAPACITY_SCALE; +} + +static inline void uclamp_rq_set(struct rq *rq, enum uclamp_id clamp_id, + unsigned int value) +{ +} + +static inline bool uclamp_rq_is_idle(struct rq *rq) +{ + return false; +} #endif /* CONFIG_UCLAMP_TASK */ #ifdef CONFIG_HAVE_SCHED_AVG_IRQ --- linux-5.19.0.orig/kernel/sched/wait.c +++ linux-5.19.0/kernel/sched/wait.c @@ -243,6 +243,7 @@ /* POLLFREE must have cleared the queue. */ WARN_ON_ONCE(waitqueue_active(wq_head)); } +EXPORT_SYMBOL_GPL(__wake_up_pollfree); /* * Note: we use "set_current_state()" _after_ the wait-queue add, --- linux-5.19.0.orig/kernel/smp.c +++ linux-5.19.0/kernel/smp.c @@ -174,9 +174,9 @@ if (val) static_branch_enable(&csdlock_debug_enabled); - return 0; + return 1; } -early_param("csdlock_debug", csdlock_debug); +__setup("csdlock_debug=", csdlock_debug); static DEFINE_PER_CPU(call_single_data_t *, cur_csd); static DEFINE_PER_CPU(smp_call_func_t, cur_csd_func); --- linux-5.19.0.orig/kernel/sys.c +++ linux-5.19.0/kernel/sys.c @@ -1244,6 +1244,21 @@ DECLARE_RWSEM(uts_sem); #ifdef COMPAT_UTS_MACHINE +static char compat_uts_machine[__OLD_UTS_LEN+1] = COMPAT_UTS_MACHINE; + +static int __init parse_compat_uts_machine(char *arg) +{ + strncpy(compat_uts_machine, arg, __OLD_UTS_LEN); + compat_uts_machine[__OLD_UTS_LEN] = 0; + return 0; +} +early_param("compat_uts_machine", parse_compat_uts_machine); + +#undef COMPAT_UTS_MACHINE +#define COMPAT_UTS_MACHINE compat_uts_machine +#endif + +#ifdef COMPAT_UTS_MACHINE #define override_architecture(name) \ (personality(current->personality) == PER_LINUX32 && \ copy_to_user(name->machine, COMPAT_UTS_MACHINE, \ --- linux-5.19.0.orig/kernel/sys_ni.c +++ linux-5.19.0/kernel/sys_ni.c @@ -277,6 +277,7 @@ /* mm/fadvise.c */ COND_SYSCALL(fadvise64_64); +COND_SYSCALL_COMPAT(fadvise64_64); /* mm/, CONFIG_MMU only */ COND_SYSCALL(swapon); --- linux-5.19.0.orig/kernel/sysctl.c +++ linux-5.19.0/kernel/sysctl.c @@ -64,6 +64,7 @@ #include #include #include +#include #include "../lib/kstrtox.h" @@ -265,13 +266,14 @@ ppos); } -static size_t proc_skip_spaces(char **buf) +static void proc_skip_spaces(char **buf, size_t *size) { - size_t ret; - char *tmp = skip_spaces(*buf); - ret = tmp - *buf; - *buf = tmp; - return ret; + while (*size) { + if (!isspace(**buf)) + break; + (*size)--; + (*buf)++; + } } static void proc_skip_char(char **buf, size_t *size, const char v) @@ -340,13 +342,12 @@ unsigned long *val, bool *neg, const char *perm_tr, unsigned perm_tr_len, char *tr) { - int len; char *p, tmp[TMPBUFLEN]; + ssize_t len = *size; - if (!*size) + if (len <= 0) return -EINVAL; - len = *size; if (len > TMPBUFLEN - 1) len = TMPBUFLEN - 1; @@ -519,7 +520,7 @@ bool neg; if (write) { - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); if (!left) break; @@ -546,7 +547,7 @@ if (!write && !first && left && !err) proc_put_char(&buffer, &left, '\n'); if (write && !err && left) - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); if (write && first) return err ? : -EINVAL; *lenp -= left; @@ -588,7 +589,7 @@ if (left > PAGE_SIZE - 1) left = PAGE_SIZE - 1; - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); if (!left) { err = -EINVAL; goto out_free; @@ -608,7 +609,7 @@ } if (!err && left) - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); out_free: if (err) @@ -1073,7 +1074,7 @@ if (write) { bool neg; - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); if (!left) break; @@ -1102,7 +1103,7 @@ if (!write && !first && left && !err) proc_put_char(&buffer, &left, '\n'); if (write && !err) - left -= proc_skip_spaces(&p); + proc_skip_spaces(&p, &left); if (write && first) return err ? : -EINVAL; *lenp -= left; @@ -1751,6 +1752,15 @@ .proc_handler = sysrq_sysctl_handler, }, #endif +#ifdef CONFIG_USER_NS + { + .procname = "unprivileged_userns_clone", + .data = &unprivileged_userns_clone, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec, + }, +#endif #ifdef CONFIG_PROC_SYSCTL { .procname = "cad_pid", --- linux-5.19.0.orig/kernel/task_work.c +++ linux-5.19.0/kernel/task_work.c @@ -73,6 +73,7 @@ return 0; } +EXPORT_SYMBOL(task_work_add); /** * task_work_cancel_match - cancel a pending work added by task_work_add() --- linux-5.19.0.orig/kernel/time/hrtimer.c +++ linux-5.19.0/kernel/time/hrtimer.c @@ -2311,6 +2311,7 @@ return !t.task ? 0 : -EINTR; } +EXPORT_SYMBOL_GPL(schedule_hrtimeout_range_clock); /** * schedule_hrtimeout_range - sleep until timeout --- linux-5.19.0.orig/kernel/time/timekeeping.c +++ linux-5.19.0/kernel/time/timekeeping.c @@ -23,6 +23,7 @@ #include #include #include +#include #include "tick-internal.h" #include "ntp_internal.h" @@ -1343,8 +1344,10 @@ /* Signal hrtimers about time change */ clock_was_set(CLOCK_SET_WALL); - if (!ret) + if (!ret) { audit_tk_injoffset(ts_delta); + add_device_randomness(ts, sizeof(*ts)); + } return ret; } @@ -2430,6 +2433,7 @@ ret = timekeeping_validate_timex(txc); if (ret) return ret; + add_device_randomness(txc, sizeof(*txc)); if (txc->modes & ADJ_SETOFFSET) { struct timespec64 delta; @@ -2447,6 +2451,7 @@ audit_ntp_init(&ad); ktime_get_real_ts64(&ts); + add_device_randomness(&ts, sizeof(ts)); raw_spin_lock_irqsave(&timekeeper_lock, flags); write_seqcount_begin(&tk_core.seq); --- linux-5.19.0.orig/kernel/trace/blktrace.c +++ linux-5.19.0/kernel/trace/blktrace.c @@ -1058,7 +1058,7 @@ r.sector_from = cpu_to_be64(from); __blk_add_trace(bt, blk_rq_pos(rq), blk_rq_bytes(rq), - rq_data_dir(rq), 0, BLK_TA_REMAP, 0, + req_op(rq), rq->cmd_flags, BLK_TA_REMAP, 0, sizeof(r), &r, blk_trace_request_get_cgid(rq)); rcu_read_unlock(); } @@ -1547,7 +1547,8 @@ static enum print_line_t blk_tracer_print_line(struct trace_iterator *iter) { - if (!(blk_tracer_flags.val & TRACE_BLK_OPT_CLASSIC)) + if ((iter->ent->type != TRACE_BLK) || + !(blk_tracer_flags.val & TRACE_BLK_OPT_CLASSIC)) return TRACE_TYPE_UNHANDLED; return print_one_line(iter, true); --- linux-5.19.0.orig/kernel/trace/bpf_trace.c +++ linux-5.19.0/kernel/trace/bpf_trace.c @@ -1026,6 +1026,22 @@ .arg1_type = ARG_PTR_TO_CTX, }; +#ifdef CONFIG_X86_KERNEL_IBT +static unsigned long get_entry_ip(unsigned long fentry_ip) +{ + u32 instr; + + /* Being extra safe in here in case entry ip is on the page-edge. */ + if (get_kernel_nofault(instr, (u32 *) fentry_ip - 1)) + return fentry_ip; + if (is_endbr(instr)) + fentry_ip -= ENDBR_INSN_SIZE; + return fentry_ip; +} +#else +#define get_entry_ip(fentry_ip) fentry_ip +#endif + BPF_CALL_1(bpf_get_func_ip_kprobe, struct pt_regs *, regs) { struct kprobe *kp = kprobe_running(); @@ -2042,9 +2058,15 @@ void __bpf_trace_run(struct bpf_prog *prog, u64 *args) { cant_sleep(); + if (unlikely(this_cpu_inc_return(*(prog->active)) != 1)) { + bpf_prog_inc_misses_counter(prog); + goto out; + } rcu_read_lock(); (void) bpf_prog_run(prog, args); rcu_read_unlock(); +out: + this_cpu_dec(*(prog->active)); } #define UNPACK(...) __VA_ARGS__ @@ -2242,6 +2264,8 @@ unsigned long *addrs; u64 *cookies; u32 cnt; + u32 mods_cnt; + struct module **mods; }; struct bpf_kprobe_multi_run_ctx { @@ -2297,6 +2321,14 @@ return err; } +static void kprobe_multi_put_modules(struct module **mods, u32 cnt) +{ + u32 i; + + for (i = 0; i < cnt; i++) + module_put(mods[i]); +} + static void free_user_syms(struct user_syms *us) { kvfree(us->syms); @@ -2309,6 +2341,7 @@ kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link); unregister_fprobe(&kmulti_link->fp); + kprobe_multi_put_modules(kmulti_link->mods, kmulti_link->mods_cnt); } static void bpf_kprobe_multi_link_dealloc(struct bpf_link *link) @@ -2318,6 +2351,7 @@ kmulti_link = container_of(link, struct bpf_kprobe_multi_link, link); kvfree(kmulti_link->addrs); kvfree(kmulti_link->cookies); + kfree(kmulti_link->mods); kfree(kmulti_link); } @@ -2340,7 +2374,7 @@ swap(*cookie_a, *cookie_b); } -static int __bpf_kprobe_multi_cookie_cmp(const void *a, const void *b) +static int bpf_kprobe_multi_addrs_cmp(const void *a, const void *b) { const unsigned long *addr_a = a, *addr_b = b; @@ -2351,7 +2385,7 @@ static int bpf_kprobe_multi_cookie_cmp(const void *a, const void *b, const void *priv) { - return __bpf_kprobe_multi_cookie_cmp(a, b); + return bpf_kprobe_multi_addrs_cmp(a, b); } static u64 bpf_kprobe_multi_cookie(struct bpf_run_ctx *ctx) @@ -2369,7 +2403,7 @@ return 0; entry_ip = run_ctx->entry_ip; addr = bsearch(&entry_ip, link->addrs, link->cnt, sizeof(entry_ip), - __bpf_kprobe_multi_cookie_cmp); + bpf_kprobe_multi_addrs_cmp); if (!addr) return 0; cookie = link->cookies + (addr - link->addrs); @@ -2414,13 +2448,13 @@ } static void -kprobe_multi_link_handler(struct fprobe *fp, unsigned long entry_ip, +kprobe_multi_link_handler(struct fprobe *fp, unsigned long fentry_ip, struct pt_regs *regs) { struct bpf_kprobe_multi_link *link; link = container_of(fp, struct bpf_kprobe_multi_link, fp); - kprobe_multi_link_prog_run(link, entry_ip, regs); + kprobe_multi_link_prog_run(link, get_entry_ip(fentry_ip), regs); } static int symbols_cmp_r(const void *a, const void *b, const void *priv) @@ -2453,6 +2487,71 @@ } } +struct module_addr_args { + unsigned long *addrs; + u32 addrs_cnt; + struct module **mods; + int mods_cnt; + int mods_cap; +}; + +static int module_callback(void *data, const char *name, + struct module *mod, unsigned long addr) +{ + struct module_addr_args *args = data; + struct module **mods; + + /* We iterate all modules symbols and for each we: + * - search for it in provided addresses array + * - if found we check if we already have the module pointer stored + * (we iterate modules sequentially, so we can check just the last + * module pointer) + * - take module reference and store it + */ + if (!bsearch(&addr, args->addrs, args->addrs_cnt, sizeof(addr), + bpf_kprobe_multi_addrs_cmp)) + return 0; + + if (args->mods && args->mods[args->mods_cnt - 1] == mod) + return 0; + + if (args->mods_cnt == args->mods_cap) { + args->mods_cap = max(16, args->mods_cap * 3 / 2); + mods = krealloc_array(args->mods, args->mods_cap, sizeof(*mods), GFP_KERNEL); + if (!mods) + return -ENOMEM; + args->mods = mods; + } + + if (!try_module_get(mod)) + return -EINVAL; + + args->mods[args->mods_cnt] = mod; + args->mods_cnt++; + return 0; +} + +static int get_modules_for_addrs(struct module ***mods, unsigned long *addrs, u32 addrs_cnt) +{ + struct module_addr_args args = { + .addrs = addrs, + .addrs_cnt = addrs_cnt, + }; + int err; + + /* We return either err < 0 in case of error, ... */ + err = module_kallsyms_on_each_symbol(module_callback, &args); + if (err) { + kprobe_multi_put_modules(args.mods, args.mods_cnt); + kfree(args.mods); + return err; + } + + /* or number of modules found if everything is ok. */ + *mods = args.mods; + return args.mods_cnt; +} + int bpf_kprobe_multi_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) { struct bpf_kprobe_multi_link *link = NULL; @@ -2563,10 +2662,25 @@ bpf_kprobe_multi_cookie_cmp, bpf_kprobe_multi_cookie_swap, link); + } else { + /* + * We need to sort addrs array even if there are no cookies + * provided, to allow bsearch in get_modules_for_addrs. + */ + sort(addrs, cnt, sizeof(*addrs), + bpf_kprobe_multi_addrs_cmp, NULL); + } + + err = get_modules_for_addrs(&link->mods, addrs, cnt); + if (err < 0) { + bpf_link_cleanup(&link_primer); + return err; } + link->mods_cnt = err; err = register_fprobe_ips(&link->fp, addrs, cnt); if (err) { + kprobe_multi_put_modules(link->mods, link->mods_cnt); bpf_link_cleanup(&link_primer); return err; } --- linux-5.19.0.orig/kernel/trace/fprobe.c +++ linux-5.19.0/kernel/trace/fprobe.c @@ -141,6 +141,8 @@ return -E2BIG; fp->rethook = rethook_alloc((void *)fp, fprobe_exit_handler); + if (!fp->rethook) + return -ENOMEM; for (i = 0; i < size; i++) { struct fprobe_rethook_node *node; @@ -301,7 +303,8 @@ { int ret; - if (!fp || fp->ops.func != fprobe_handler) + if (!fp || (fp->ops.saved_func != fprobe_handler && + fp->ops.saved_func != fprobe_kprobe_handler)) return -EINVAL; /* --- linux-5.19.0.orig/kernel/trace/ftrace.c +++ linux-5.19.0/kernel/trace/ftrace.c @@ -1289,6 +1289,7 @@ if (!ftrace_mod) return -ENOMEM; + INIT_LIST_HEAD(&ftrace_mod->list); ftrace_mod->func = kstrdup(func, GFP_KERNEL); ftrace_mod->module = kstrdup(module, GFP_KERNEL); ftrace_mod->enable = enable; @@ -1644,6 +1645,18 @@ static struct ftrace_ops * ftrace_find_tramp_ops_next(struct dyn_ftrace *rec, struct ftrace_ops *ops); +static bool skip_record(struct dyn_ftrace *rec) +{ + /* + * At boot up, weak functions are set to disable. Function tracing + * can be enabled before they are, and they still need to be disabled now. + * If the record is disabled, still continue if it is marked as already + * enabled (this is needed to keep the accounting working). + */ + return rec->flags & FTRACE_FL_DISABLED && + !(rec->flags & FTRACE_FL_ENABLED); +} + static bool __ftrace_hash_rec_update(struct ftrace_ops *ops, int filter_hash, bool inc) @@ -1693,7 +1706,7 @@ int in_hash = 0; int match = 0; - if (rec->flags & FTRACE_FL_DISABLED) + if (skip_record(rec)) continue; if (all) { @@ -2090,7 +2103,7 @@ ftrace_bug_type = FTRACE_BUG_UNKNOWN; - if (rec->flags & FTRACE_FL_DISABLED) + if (skip_record(rec)) return FTRACE_UPDATE_IGNORE; /* @@ -2205,7 +2218,7 @@ if (update) { /* If there's no more users, clear all flags */ if (!ftrace_rec_count(rec)) - rec->flags = 0; + rec->flags &= FTRACE_FL_DISABLED; else /* * Just disable the record, but keep the ops TRAMP @@ -2599,7 +2612,7 @@ do_for_each_ftrace_rec(pg, rec) { - if (rec->flags & FTRACE_FL_DISABLED) + if (skip_record(rec)) continue; failed = __ftrace_replace_code(rec, enable); @@ -2937,6 +2950,16 @@ ftrace_startup_enable(command); + /* + * If ftrace is in an undefined state, we just remove ops from list + * to prevent the NULL pointer, instead of totally rolling it back and + * free trampoline, because those actions could cause further damage. + */ + if (unlikely(ftrace_disabled)) { + __unregister_ftrace_function(ops); + return -ENODEV; + } + ops->flags &= ~FTRACE_OPS_FL_ADDING; return 0; @@ -2974,18 +2997,8 @@ command |= FTRACE_UPDATE_TRACE_FUNC; } - if (!command || !ftrace_enabled) { - /* - * If these are dynamic or per_cpu ops, they still - * need their data freed. Since, function tracing is - * not currently active, we can just free them - * without synchronizing all CPUs. - */ - if (ops->flags & FTRACE_OPS_FL_DYNAMIC) - goto free_ops; - - return 0; - } + if (!command || !ftrace_enabled) + goto out; /* * If the ops uses a trampoline, then it needs to be @@ -3022,6 +3035,7 @@ removed_ops = NULL; ops->flags &= ~FTRACE_OPS_FL_REMOVING; +out: /* * Dynamic ops may be freed, we must make sure that all * callers are done before leaving this function. @@ -3049,7 +3063,6 @@ if (IS_ENABLED(CONFIG_PREEMPTION)) synchronize_rcu_tasks(); - free_ops: ftrace_trampoline_free(ops); } @@ -3176,7 +3189,7 @@ /* if we can't allocate this size, try something smaller */ if (!order) return -ENOMEM; - order >>= 1; + order--; goto again; } @@ -6027,8 +6040,12 @@ if (filter_hash) { orig_hash = &iter->ops->func_hash->filter_hash; - if (iter->tr && !list_empty(&iter->tr->mod_trace)) - iter->hash->flags |= FTRACE_HASH_FL_MOD; + if (iter->tr) { + if (list_empty(&iter->tr->mod_trace)) + iter->hash->flags &= ~FTRACE_HASH_FL_MOD; + else + iter->hash->flags |= FTRACE_HASH_FL_MOD; + } } else orig_hash = &iter->ops->func_hash->notrace_hash; @@ -7298,7 +7315,7 @@ } pr_info("ftrace: allocating %ld entries in %ld pages\n", - count, count / ENTRIES_PER_PAGE + 1); + count, DIV_ROUND_UP(count, ENTRIES_PER_PAGE)); ret = ftrace_process_locs(NULL, __start_mcount_loc, @@ -8025,6 +8042,10 @@ size_t found; }; +/* This function gets called for all kernel and module symbols + * and returns 1 in case we resolved all the requested symbols, + * 0 otherwise. + */ static int kallsyms_callback(void *data, const char *name, struct module *mod, unsigned long addr) { @@ -8068,17 +8089,19 @@ int ftrace_lookup_symbols(const char **sorted_syms, size_t cnt, unsigned long *addrs) { struct kallsyms_data args; - int err; + int found_all; memset(addrs, 0, sizeof(*addrs) * cnt); args.addrs = addrs; args.syms = sorted_syms; args.cnt = cnt; args.found = 0; - err = kallsyms_on_each_symbol(kallsyms_callback, &args); - if (err < 0) - return err; - return args.found == args.cnt ? 0 : -ESRCH; + + found_all = kallsyms_on_each_symbol(kallsyms_callback, &args); + if (found_all) + return 0; + found_all = module_kallsyms_on_each_symbol(kallsyms_callback, &args); + return found_all ? 0 : -ESRCH; } #ifdef CONFIG_SYSCTL --- linux-5.19.0.orig/kernel/trace/kprobe_event_gen_test.c +++ linux-5.19.0/kernel/trace/kprobe_event_gen_test.c @@ -35,6 +35,49 @@ static struct trace_event_file *gen_kprobe_test; static struct trace_event_file *gen_kretprobe_test; +#define KPROBE_GEN_TEST_FUNC "do_sys_open" + +/* X86 */ +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_32) +#define KPROBE_GEN_TEST_ARG0 "dfd=%ax" +#define KPROBE_GEN_TEST_ARG1 "filename=%dx" +#define KPROBE_GEN_TEST_ARG2 "flags=%cx" +#define KPROBE_GEN_TEST_ARG3 "mode=+4($stack)" + +/* ARM64 */ +#elif defined(CONFIG_ARM64) +#define KPROBE_GEN_TEST_ARG0 "dfd=%x0" +#define KPROBE_GEN_TEST_ARG1 "filename=%x1" +#define KPROBE_GEN_TEST_ARG2 "flags=%x2" +#define KPROBE_GEN_TEST_ARG3 "mode=%x3" + +/* ARM */ +#elif defined(CONFIG_ARM) +#define KPROBE_GEN_TEST_ARG0 "dfd=%r0" +#define KPROBE_GEN_TEST_ARG1 "filename=%r1" +#define KPROBE_GEN_TEST_ARG2 "flags=%r2" +#define KPROBE_GEN_TEST_ARG3 "mode=%r3" + +/* RISCV */ +#elif defined(CONFIG_RISCV) +#define KPROBE_GEN_TEST_ARG0 "dfd=%a0" +#define KPROBE_GEN_TEST_ARG1 "filename=%a1" +#define KPROBE_GEN_TEST_ARG2 "flags=%a2" +#define KPROBE_GEN_TEST_ARG3 "mode=%a3" + +/* others */ +#else +#define KPROBE_GEN_TEST_ARG0 NULL +#define KPROBE_GEN_TEST_ARG1 NULL +#define KPROBE_GEN_TEST_ARG2 NULL +#define KPROBE_GEN_TEST_ARG3 NULL +#endif + +static bool trace_event_file_is_valid(struct trace_event_file *input) +{ + return input && !IS_ERR(input); +} + /* * Test to make sure we can create a kprobe event, then add more * fields. @@ -58,23 +101,23 @@ * fields. */ ret = kprobe_event_gen_cmd_start(&cmd, "gen_kprobe_test", - "do_sys_open", - "dfd=%ax", "filename=%dx"); + KPROBE_GEN_TEST_FUNC, + KPROBE_GEN_TEST_ARG0, KPROBE_GEN_TEST_ARG1); if (ret) - goto free; + goto out; /* Use kprobe_event_add_fields to add the rest of the fields */ - ret = kprobe_event_add_fields(&cmd, "flags=%cx", "mode=+4($stack)"); + ret = kprobe_event_add_fields(&cmd, KPROBE_GEN_TEST_ARG2, KPROBE_GEN_TEST_ARG3); if (ret) - goto free; + goto out; /* * This actually creates the event. */ ret = kprobe_event_gen_cmd_end(&cmd); if (ret) - goto free; + goto out; /* * Now get the gen_kprobe_test event file. We need to prevent @@ -97,13 +140,13 @@ goto delete; } out: + kfree(buf); return ret; delete: + if (trace_event_file_is_valid(gen_kprobe_test)) + gen_kprobe_test = NULL; /* We got an error after creating the event, delete it */ ret = kprobe_event_delete("gen_kprobe_test"); - free: - kfree(buf); - goto out; } @@ -128,17 +171,17 @@ * Define the kretprobe event. */ ret = kretprobe_event_gen_cmd_start(&cmd, "gen_kretprobe_test", - "do_sys_open", + KPROBE_GEN_TEST_FUNC, "$retval"); if (ret) - goto free; + goto out; /* * This actually creates the event. */ ret = kretprobe_event_gen_cmd_end(&cmd); if (ret) - goto free; + goto out; /* * Now get the gen_kretprobe_test event file. We need to @@ -162,13 +205,13 @@ goto delete; } out: + kfree(buf); return ret; delete: + if (trace_event_file_is_valid(gen_kretprobe_test)) + gen_kretprobe_test = NULL; /* We got an error after creating the event, delete it */ ret = kprobe_event_delete("gen_kretprobe_test"); - free: - kfree(buf); - goto out; } @@ -182,10 +225,12 @@ ret = test_gen_kretprobe_cmd(); if (ret) { - WARN_ON(trace_array_set_clr_event(gen_kretprobe_test->tr, - "kprobes", - "gen_kretprobe_test", false)); - trace_put_event_file(gen_kretprobe_test); + if (trace_event_file_is_valid(gen_kretprobe_test)) { + WARN_ON(trace_array_set_clr_event(gen_kretprobe_test->tr, + "kprobes", + "gen_kretprobe_test", false)); + trace_put_event_file(gen_kretprobe_test); + } WARN_ON(kprobe_event_delete("gen_kretprobe_test")); } @@ -194,24 +239,30 @@ static void __exit kprobe_event_gen_test_exit(void) { - /* Disable the event or you can't remove it */ - WARN_ON(trace_array_set_clr_event(gen_kprobe_test->tr, - "kprobes", - "gen_kprobe_test", false)); + if (trace_event_file_is_valid(gen_kprobe_test)) { + /* Disable the event or you can't remove it */ + WARN_ON(trace_array_set_clr_event(gen_kprobe_test->tr, + "kprobes", + "gen_kprobe_test", false)); + + /* Now give the file and instance back */ + trace_put_event_file(gen_kprobe_test); + } - /* Now give the file and instance back */ - trace_put_event_file(gen_kprobe_test); /* Now unregister and free the event */ WARN_ON(kprobe_event_delete("gen_kprobe_test")); - /* Disable the event or you can't remove it */ - WARN_ON(trace_array_set_clr_event(gen_kprobe_test->tr, - "kprobes", - "gen_kretprobe_test", false)); + if (trace_event_file_is_valid(gen_kretprobe_test)) { + /* Disable the event or you can't remove it */ + WARN_ON(trace_array_set_clr_event(gen_kretprobe_test->tr, + "kprobes", + "gen_kretprobe_test", false)); + + /* Now give the file and instance back */ + trace_put_event_file(gen_kretprobe_test); + } - /* Now give the file and instance back */ - trace_put_event_file(gen_kretprobe_test); /* Now unregister and free the event */ WARN_ON(kprobe_event_delete("gen_kretprobe_test")); --- linux-5.19.0.orig/kernel/trace/rethook.c +++ linux-5.19.0/kernel/trace/rethook.c @@ -83,8 +83,10 @@ { struct rethook *rh = kzalloc(sizeof(struct rethook), GFP_KERNEL); - if (!rh || !handler) + if (!rh || !handler) { + kfree(rh); return NULL; + } rh->data = data; rh->handler = handler; --- linux-5.19.0.orig/kernel/trace/ring_buffer.c +++ linux-5.19.0/kernel/trace/ring_buffer.c @@ -413,6 +413,7 @@ struct irq_work work; wait_queue_head_t waiters; wait_queue_head_t full_waiters; + long wait_index; bool waiters_pending; bool full_waiters_pending; bool wakeup_full; @@ -518,6 +519,7 @@ local_t committing; local_t commits; local_t pages_touched; + local_t pages_lost; local_t pages_read; long last_pages_touch; size_t shortest_full; @@ -893,10 +895,18 @@ size_t ring_buffer_nr_dirty_pages(struct trace_buffer *buffer, int cpu) { size_t read; + size_t lost; size_t cnt; read = local_read(&buffer->buffers[cpu]->pages_read); + lost = local_read(&buffer->buffers[cpu]->pages_lost); cnt = local_read(&buffer->buffers[cpu]->pages_touched); + + if (WARN_ON_ONCE(cnt < lost)) + return 0; + + cnt -= lost; + /* The reader can read an empty page, but not more than that */ if (cnt < read) { WARN_ON_ONCE(read > cnt + 1); @@ -906,6 +916,21 @@ return cnt - read; } +static __always_inline bool full_hit(struct trace_buffer *buffer, int cpu, int full) +{ + struct ring_buffer_per_cpu *cpu_buffer = buffer->buffers[cpu]; + size_t nr_pages; + size_t dirty; + + nr_pages = cpu_buffer->nr_pages; + if (!nr_pages || !full) + return true; + + dirty = ring_buffer_nr_dirty_pages(buffer, cpu); + + return (dirty * 100) > (full * nr_pages); +} + /* * rb_wake_up_waiters - wake up tasks waiting for ring buffer input * @@ -917,13 +942,56 @@ struct rb_irq_work *rbwork = container_of(work, struct rb_irq_work, work); wake_up_all(&rbwork->waiters); - if (rbwork->wakeup_full) { + if (rbwork->full_waiters_pending || rbwork->wakeup_full) { rbwork->wakeup_full = false; + rbwork->full_waiters_pending = false; wake_up_all(&rbwork->full_waiters); } } /** + * ring_buffer_wake_waiters - wake up any waiters on this ring buffer + * @buffer: The ring buffer to wake waiters on + * + * In the case of a file that represents a ring buffer is closing, + * it is prudent to wake up any waiters that are on this. + */ +void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu) +{ + struct ring_buffer_per_cpu *cpu_buffer; + struct rb_irq_work *rbwork; + + if (!buffer) + return; + + if (cpu == RING_BUFFER_ALL_CPUS) { + + /* Wake up individual ones too. One level recursion */ + for_each_buffer_cpu(buffer, cpu) + ring_buffer_wake_waiters(buffer, cpu); + + rbwork = &buffer->irq_work; + } else { + if (WARN_ON_ONCE(!buffer->buffers)) + return; + if (WARN_ON_ONCE(cpu >= nr_cpu_ids)) + return; + + cpu_buffer = buffer->buffers[cpu]; + /* The CPU buffer may not have been initialized yet */ + if (!cpu_buffer) + return; + rbwork = &cpu_buffer->irq_work; + } + + rbwork->wait_index++; + /* make sure the waiters see the new index */ + smp_wmb(); + + rb_wake_up_waiters(&rbwork->work); +} + +/** * ring_buffer_wait - wait for input to the ring buffer * @buffer: buffer to wait on * @cpu: the cpu buffer to wait on @@ -938,6 +1006,7 @@ struct ring_buffer_per_cpu *cpu_buffer; DEFINE_WAIT(wait); struct rb_irq_work *work; + long wait_index; int ret = 0; /* @@ -956,6 +1025,7 @@ work = &cpu_buffer->irq_work; } + wait_index = READ_ONCE(work->wait_index); while (true) { if (full) @@ -1000,26 +1070,29 @@ !ring_buffer_empty_cpu(buffer, cpu)) { unsigned long flags; bool pagebusy; - size_t nr_pages; - size_t dirty; + bool done; if (!full) break; raw_spin_lock_irqsave(&cpu_buffer->reader_lock, flags); pagebusy = cpu_buffer->reader_page == cpu_buffer->commit_page; - nr_pages = cpu_buffer->nr_pages; - dirty = ring_buffer_nr_dirty_pages(buffer, cpu); + done = !pagebusy && full_hit(buffer, cpu, full); + if (!cpu_buffer->shortest_full || - cpu_buffer->shortest_full < full) + cpu_buffer->shortest_full > full) cpu_buffer->shortest_full = full; raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags); - if (!pagebusy && - (!nr_pages || (dirty * 100) > full * nr_pages)) + if (done) break; } schedule(); + + /* Make sure to see the new wait index */ + smp_rmb(); + if (wait_index != work->wait_index) + break; } if (full) @@ -1036,6 +1109,7 @@ * @cpu: the cpu buffer to wait on * @filp: the file descriptor * @poll_table: The poll descriptor + * @full: wait until the percentage of pages are available, if @cpu != RING_BUFFER_ALL_CPUS * * If @cpu == RING_BUFFER_ALL_CPUS then the task will wake up as soon * as data is added to any of the @buffer's cpu buffers. Otherwise @@ -1045,14 +1119,15 @@ * zero otherwise. */ __poll_t ring_buffer_poll_wait(struct trace_buffer *buffer, int cpu, - struct file *filp, poll_table *poll_table) + struct file *filp, poll_table *poll_table, int full) { struct ring_buffer_per_cpu *cpu_buffer; struct rb_irq_work *work; - if (cpu == RING_BUFFER_ALL_CPUS) + if (cpu == RING_BUFFER_ALL_CPUS) { work = &buffer->irq_work; - else { + full = 0; + } else { if (!cpumask_test_cpu(cpu, buffer->cpumask)) return -EINVAL; @@ -1060,8 +1135,14 @@ work = &cpu_buffer->irq_work; } - poll_wait(filp, &work->waiters, poll_table); - work->waiters_pending = true; + if (full) { + poll_wait(filp, &work->full_waiters, poll_table); + work->full_waiters_pending = true; + } else { + poll_wait(filp, &work->waiters, poll_table); + work->waiters_pending = true; + } + /* * There's a tight race between setting the waiters_pending and * checking if the ring buffer is empty. Once the waiters_pending bit @@ -1077,6 +1158,9 @@ */ smp_mb(); + if (full) + return full_hit(buffer, cpu, full) ? EPOLLIN | EPOLLRDNORM : 0; + if ((cpu == RING_BUFFER_ALL_CPUS && !ring_buffer_empty(buffer)) || (cpu != RING_BUFFER_ALL_CPUS && !ring_buffer_empty_cpu(buffer, cpu))) return EPOLLIN | EPOLLRDNORM; @@ -1718,9 +1802,9 @@ free_buffer_page(cpu_buffer->reader_page); - rb_head_page_deactivate(cpu_buffer); - if (head) { + rb_head_page_deactivate(cpu_buffer); + list_for_each_entry_safe(bpage, tmp, head, list) { list_del_init(&bpage->list); free_buffer_page(bpage); @@ -1956,6 +2040,7 @@ */ local_add(page_entries, &cpu_buffer->overrun); local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); + local_inc(&cpu_buffer->pages_lost); } /* @@ -2440,6 +2525,7 @@ */ local_add(entries, &cpu_buffer->overrun); local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes); + local_inc(&cpu_buffer->pages_lost); /* * The entries will be zeroed out when we move the @@ -2608,6 +2694,9 @@ /* Mark the rest of the page with padding */ rb_event_set_padding(event); + /* Make sure the padding is visible before the write update */ + smp_wmb(); + /* Set the write back to the previous setting */ local_sub(length, &tail_page->write); return; @@ -2619,6 +2708,9 @@ /* time delta must be non zero */ event->time_delta = 1; + /* Make sure the padding is visible before the tail_page->write update */ + smp_wmb(); + /* Set write to end of buffer */ length = (tail + length) - BUF_PAGE_SIZE; local_sub(length, &tail_page->write); @@ -3098,10 +3190,6 @@ static __always_inline void rb_wakeups(struct trace_buffer *buffer, struct ring_buffer_per_cpu *cpu_buffer) { - size_t nr_pages; - size_t dirty; - size_t full; - if (buffer->irq_work.waiters_pending) { buffer->irq_work.waiters_pending = false; /* irq_work_queue() supplies it's own memory barriers */ @@ -3125,10 +3213,7 @@ cpu_buffer->last_pages_touch = local_read(&cpu_buffer->pages_touched); - full = cpu_buffer->shortest_full; - nr_pages = cpu_buffer->nr_pages; - dirty = ring_buffer_nr_dirty_pages(buffer, cpu_buffer->cpu); - if (full && nr_pages && (dirty * 100) <= full * nr_pages) + if (!full_hit(buffer, cpu_buffer->cpu, cpu_buffer->shortest_full)) return; cpu_buffer->irq_work.wakeup_full = true; @@ -4587,6 +4672,33 @@ arch_spin_unlock(&cpu_buffer->lock); local_irq_restore(flags); + /* + * The writer has preempt disable, wait for it. But not forever + * Although, 1 second is pretty much "forever" + */ +#define USECS_WAIT 1000000 + for (nr_loops = 0; nr_loops < USECS_WAIT; nr_loops++) { + /* If the write is past the end of page, a writer is still updating it */ + if (likely(!reader || rb_page_write(reader) <= BUF_PAGE_SIZE)) + break; + + udelay(1); + + /* Get the latest version of the reader write value */ + smp_rmb(); + } + + /* The writer is not moving forward? Something is wrong */ + if (RB_WARN_ON(cpu_buffer, nr_loops == USECS_WAIT)) + reader = NULL; + + /* + * Make sure we see any padding after the write update + * (see rb_reset_tail()) + */ + smp_rmb(); + + return reader; } @@ -5164,6 +5276,7 @@ local_set(&cpu_buffer->committing, 0); local_set(&cpu_buffer->commits, 0); local_set(&cpu_buffer->pages_touched, 0); + local_set(&cpu_buffer->pages_lost, 0); local_set(&cpu_buffer->pages_read, 0); cpu_buffer->last_pages_touch = 0; cpu_buffer->shortest_full = 0; @@ -5616,7 +5729,15 @@ unsigned int pos = 0; unsigned int size; - if (full) + /* + * If a full page is expected, this can still be returned + * if there's been a previous partial read and the + * rest of the page can be read and the commit page is off + * the reader page. + */ + if (full && + (!read || (len < (commit - read)) || + cpu_buffer->reader_page == cpu_buffer->commit_page)) goto out_unlock; if (len > (commit - read)) --- linux-5.19.0.orig/kernel/trace/synth_event_gen_test.c +++ linux-5.19.0/kernel/trace/synth_event_gen_test.c @@ -120,15 +120,13 @@ /* Now generate a gen_synth_test event */ ret = synth_event_trace_array(gen_synth_test, vals, ARRAY_SIZE(vals)); - out: + free: + kfree(buf); return ret; delete: /* We got an error after creating the event, delete it */ synth_event_delete("gen_synth_test"); - free: - kfree(buf); - - goto out; + goto free; } /* @@ -227,15 +225,13 @@ /* Now trace an empty_synth_test event */ ret = synth_event_trace_array(empty_synth_test, vals, ARRAY_SIZE(vals)); - out: + free: + kfree(buf); return ret; delete: /* We got an error after creating the event, delete it */ synth_event_delete("empty_synth_test"); - free: - kfree(buf); - - goto out; + goto free; } static struct synth_field_desc create_synth_test_fields[] = { --- linux-5.19.0.orig/kernel/trace/trace.c +++ linux-5.19.0/kernel/trace/trace.c @@ -1193,12 +1193,14 @@ { void *cond_data = NULL; + local_irq_disable(); arch_spin_lock(&tr->max_lock); if (tr->cond_snapshot) cond_data = tr->cond_snapshot->cond_data; arch_spin_unlock(&tr->max_lock); + local_irq_enable(); return cond_data; } @@ -1334,9 +1336,11 @@ goto fail_unlock; } + local_irq_disable(); arch_spin_lock(&tr->max_lock); tr->cond_snapshot = cond_snapshot; arch_spin_unlock(&tr->max_lock); + local_irq_enable(); mutex_unlock(&trace_types_lock); @@ -1363,6 +1367,7 @@ { int ret = 0; + local_irq_disable(); arch_spin_lock(&tr->max_lock); if (!tr->cond_snapshot) @@ -1373,6 +1378,7 @@ } arch_spin_unlock(&tr->max_lock); + local_irq_enable(); return ret; } @@ -2200,6 +2206,11 @@ #define SAVED_CMDLINES_DEFAULT 128 #define NO_CMDLINE_MAP UINT_MAX +/* + * Preemption must be disabled before acquiring trace_cmdline_lock. + * The various trace_arrays' max_lock must be acquired in a context + * where interrupt is disabled. + */ static arch_spinlock_t trace_cmdline_lock = __ARCH_SPIN_LOCK_UNLOCKED; struct saved_cmdlines_buffer { unsigned map_pid_to_cmdline[PID_MAX_DEFAULT+1]; @@ -2412,7 +2423,11 @@ * the lock, but we also don't want to spin * nor do we want to disable interrupts, * so if we miss here, then better luck next time. + * + * This is called within the scheduler and wake up, so interrupts + * had better been disabled and run queue lock been held. */ + lockdep_assert_preemption_disabled(); if (!arch_spin_trylock(&trace_cmdline_lock)) return 0; @@ -5890,9 +5905,11 @@ char buf[64]; int r; + preempt_disable(); arch_spin_lock(&trace_cmdline_lock); r = scnprintf(buf, sizeof(buf), "%u\n", savedcmd->cmdline_num); arch_spin_unlock(&trace_cmdline_lock); + preempt_enable(); return simple_read_from_buffer(ubuf, cnt, ppos, buf, r); } @@ -5917,10 +5934,12 @@ return -ENOMEM; } + preempt_disable(); arch_spin_lock(&trace_cmdline_lock); savedcmd_temp = savedcmd; savedcmd = s; arch_spin_unlock(&trace_cmdline_lock); + preempt_enable(); free_saved_cmdlines_buffer(savedcmd_temp); return 0; @@ -6373,10 +6392,12 @@ #ifdef CONFIG_TRACER_SNAPSHOT if (t->use_max_tr) { + local_irq_disable(); arch_spin_lock(&tr->max_lock); if (tr->cond_snapshot) ret = -EBUSY; arch_spin_unlock(&tr->max_lock); + local_irq_enable(); if (ret) goto out; } @@ -6407,12 +6428,12 @@ if (tr->current_trace->reset) tr->current_trace->reset(tr); +#ifdef CONFIG_TRACER_MAX_TRACE + had_max_tr = tr->current_trace->use_max_tr; + /* Current trace needs to be nop_trace before synchronize_rcu */ tr->current_trace = &nop_trace; -#ifdef CONFIG_TRACER_MAX_TRACE - had_max_tr = tr->allocated_snapshot; - if (had_max_tr && !t->use_max_tr) { /* * We need to make sure that the update_max_tr sees that @@ -6425,11 +6446,13 @@ free_snapshot(tr); } - if (t->use_max_tr && !had_max_tr) { + if (t->use_max_tr && !tr->allocated_snapshot) { ret = tracing_alloc_snapshot_instance(tr); if (ret < 0) goto out; } +#else + tr->current_trace = &nop_trace; #endif if (t->init) { @@ -6634,6 +6657,7 @@ mutex_unlock(&trace_types_lock); free_cpumask_var(iter->started); + kfree(iter->fmt); mutex_destroy(&iter->mutex); kfree(iter); @@ -6658,7 +6682,7 @@ return EPOLLIN | EPOLLRDNORM; else return ring_buffer_poll_wait(iter->array_buffer->buffer, iter->cpu_file, - filp, poll_table); + filp, poll_table, iter->tr->buffer_percent); } static __poll_t @@ -7436,10 +7460,12 @@ goto out; } + local_irq_disable(); arch_spin_lock(&tr->max_lock); if (tr->cond_snapshot) ret = -EBUSY; arch_spin_unlock(&tr->max_lock); + local_irq_enable(); if (ret) goto out; @@ -7777,6 +7803,7 @@ int len) { struct tracing_log_err *err; + char *cmd; if (tr->n_err_log_entries < TRACING_LOG_ERRS_MAX) { err = alloc_tracing_log_err(len); @@ -7785,12 +7812,12 @@ return err; } - + cmd = kzalloc(len, GFP_KERNEL); + if (!cmd) + return ERR_PTR(-ENOMEM); err = list_first_entry(&tr->err_log, struct tracing_log_err, list); kfree(err->cmd); - err->cmd = kzalloc(len, GFP_KERNEL); - if (!err->cmd) - return ERR_PTR(-ENOMEM); + err->cmd = cmd; list_del(&err->list); return err; @@ -8137,6 +8164,12 @@ __trace_array_put(iter->tr); + iter->wait_index++; + /* Make sure the waiters see the new wait_index */ + smp_wmb(); + + ring_buffer_wake_waiters(iter->array_buffer->buffer, iter->cpu_file); + if (info->spare) ring_buffer_free_read_page(iter->array_buffer->buffer, info->spare_cpu, info->spare); @@ -8290,6 +8323,8 @@ /* did we read anything? */ if (!spd.nr_pages) { + long wait_index; + if (ret) goto out; @@ -8297,10 +8332,21 @@ if ((file->f_flags & O_NONBLOCK) || (flags & SPLICE_F_NONBLOCK)) goto out; + wait_index = READ_ONCE(iter->wait_index); + ret = wait_on_pipe(iter, iter->tr->buffer_percent); if (ret) goto out; + /* No need to wait after waking up when tracing is off */ + if (!tracer_tracing_is_on(iter->tr)) + goto out; + + /* Make sure we see the new wait_index */ + smp_rmb(); + if (wait_index != iter->wait_index) + goto out; + goto again; } @@ -8311,12 +8357,34 @@ return ret; } +/* An ioctl call with cmd 0 to the ring buffer file will wake up all waiters */ +static long tracing_buffers_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct ftrace_buffer_info *info = file->private_data; + struct trace_iterator *iter = &info->iter; + + if (cmd) + return -ENOIOCTLCMD; + + mutex_lock(&trace_types_lock); + + iter->wait_index++; + /* Make sure the waiters see the new wait_index */ + smp_wmb(); + + ring_buffer_wake_waiters(iter->array_buffer->buffer, iter->cpu_file); + + mutex_unlock(&trace_types_lock); + return 0; +} + static const struct file_operations tracing_buffers_fops = { .open = tracing_buffers_open, .read = tracing_buffers_read, .poll = tracing_buffers_poll, .release = tracing_buffers_release, .splice_read = tracing_buffers_splice_read, + .unlocked_ioctl = tracing_buffers_ioctl, .llseek = no_llseek, }; @@ -9005,6 +9073,8 @@ tracer_tracing_off(tr); if (tr->current_trace->stop) tr->current_trace->stop(tr); + /* Wake up any waiters */ + ring_buffer_wake_waiters(buffer, RING_BUFFER_ALL_CPUS); } mutex_unlock(&trace_types_lock); } --- linux-5.19.0.orig/kernel/trace/trace_dynevent.c +++ linux-5.19.0/kernel/trace/trace_dynevent.c @@ -118,6 +118,7 @@ if (ret) break; } + tracing_reset_all_online_cpus(); mutex_unlock(&event_mutex); out: argv_free(argv); @@ -214,6 +215,7 @@ break; } out: + tracing_reset_all_online_cpus(); mutex_unlock(&event_mutex); return ret; --- linux-5.19.0.orig/kernel/trace/trace_eprobe.c +++ linux-5.19.0/kernel/trace/trace_eprobe.c @@ -16,6 +16,7 @@ #include "trace_dynevent.h" #include "trace_probe.h" #include "trace_probe_tmpl.h" +#include "trace_probe_kernel.h" #define EPROBE_EVENT_SYSTEM "eprobes" @@ -226,6 +227,7 @@ struct probe_arg *parg = &ep->tp.args[i]; struct ftrace_event_field *field; struct list_head *head; + int ret = -ENOENT; head = trace_get_fields(ep->event); list_for_each_entry(field, head, link) { @@ -235,9 +237,20 @@ return 0; } } + + /* + * Argument not found on event. But allow for comm and COMM + * to be used to get the current->comm. + */ + if (strcmp(parg->code->data, "COMM") == 0 || + strcmp(parg->code->data, "comm") == 0) { + parg->code->op = FETCH_OP_COMM; + ret = 0; + } + kfree(parg->code->data); parg->code->data = NULL; - return -ENOENT; + return ret; } static int eprobe_event_define_fields(struct trace_event_call *event_call) @@ -310,6 +323,27 @@ addr = rec + field->offset; + if (is_string_field(field)) { + switch (field->filter_type) { + case FILTER_DYN_STRING: + val = (unsigned long)(rec + (*(unsigned int *)addr & 0xffff)); + break; + case FILTER_RDYN_STRING: + val = (unsigned long)(addr + (*(unsigned int *)addr & 0xffff)); + break; + case FILTER_STATIC_STRING: + val = (unsigned long)addr; + break; + case FILTER_PTR_STRING: + val = (unsigned long)(*(char *)addr); + break; + default: + WARN_ON_ONCE(1); + return 0; + } + return val; + } + switch (field->size) { case 1: if (field->is_signed) @@ -341,16 +375,38 @@ static int get_eprobe_size(struct trace_probe *tp, void *rec) { + struct fetch_insn *code; struct probe_arg *arg; int i, len, ret = 0; for (i = 0; i < tp->nr_args; i++) { arg = tp->args + i; - if (unlikely(arg->dynamic)) { + if (arg->dynamic) { unsigned long val; - val = get_event_field(arg->code, rec); - len = process_fetch_insn_bottom(arg->code + 1, val, NULL, NULL); + code = arg->code; + retry: + switch (code->op) { + case FETCH_OP_TP_ARG: + val = get_event_field(code, rec); + break; + case FETCH_OP_IMM: + val = code->immediate; + break; + case FETCH_OP_COMM: + val = (unsigned long)current->comm; + break; + case FETCH_OP_DATA: + val = (unsigned long)code->data; + break; + case FETCH_NOP_SYMBOL: /* Ignore a place holder */ + code++; + goto retry; + default: + continue; + } + code++; + len = process_fetch_insn_bottom(code, val, NULL, NULL); if (len > 0) ret += len; } @@ -368,8 +424,28 @@ { unsigned long val; - val = get_event_field(code, rec); - return process_fetch_insn_bottom(code + 1, val, dest, base); + retry: + switch (code->op) { + case FETCH_OP_TP_ARG: + val = get_event_field(code, rec); + break; + case FETCH_OP_IMM: + val = code->immediate; + break; + case FETCH_OP_COMM: + val = (unsigned long)current->comm; + break; + case FETCH_OP_DATA: + val = (unsigned long)code->data; + break; + case FETCH_NOP_SYMBOL: /* Ignore a place holder */ + code++; + goto retry; + default: + return -EILSEQ; + } + code++; + return process_fetch_insn_bottom(code, val, dest, base); } NOKPROBE_SYMBOL(process_fetch_insn) @@ -377,29 +453,14 @@ static nokprobe_inline int fetch_store_strlen_user(unsigned long addr) { - const void __user *uaddr = (__force const void __user *)addr; - - return strnlen_user_nofault(uaddr, MAX_STRING_SIZE); + return kern_fetch_store_strlen_user(addr); } /* Return the length of string -- including null terminal byte */ static nokprobe_inline int fetch_store_strlen(unsigned long addr) { - int ret, len = 0; - u8 c; - -#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE - if (addr < TASK_SIZE) - return fetch_store_strlen_user(addr); -#endif - - do { - ret = copy_from_kernel_nofault(&c, (u8 *)addr + len, 1); - len++; - } while (c && ret == 0 && len < MAX_STRING_SIZE); - - return (ret < 0) ? ret : len; + return kern_fetch_store_strlen(addr); } /* @@ -409,21 +470,7 @@ static nokprobe_inline int fetch_store_string_user(unsigned long addr, void *dest, void *base) { - const void __user *uaddr = (__force const void __user *)addr; - int maxlen = get_loc_len(*(u32 *)dest); - void *__dest; - long ret; - - if (unlikely(!maxlen)) - return -ENOMEM; - - __dest = get_loc_data(dest, base); - - ret = strncpy_from_user_nofault(__dest, uaddr, maxlen); - if (ret >= 0) - *(u32 *)dest = make_data_loc(ret, __dest - base); - - return ret; + return kern_fetch_store_string_user(addr, dest, base); } /* @@ -433,29 +480,7 @@ static nokprobe_inline int fetch_store_string(unsigned long addr, void *dest, void *base) { - int maxlen = get_loc_len(*(u32 *)dest); - void *__dest; - long ret; - -#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE - if ((unsigned long)addr < TASK_SIZE) - return fetch_store_string_user(addr, dest, base); -#endif - - if (unlikely(!maxlen)) - return -ENOMEM; - - __dest = get_loc_data(dest, base); - - /* - * Try to get string again, since the string can be changed while - * probing. - */ - ret = strncpy_from_kernel_nofault(__dest, (void *)addr, maxlen); - if (ret >= 0) - *(u32 *)dest = make_data_loc(ret, __dest - base); - - return ret; + return kern_fetch_store_string(addr, dest, base); } static nokprobe_inline int @@ -534,6 +559,9 @@ { struct eprobe_data *edata = data->private_data; + if (unlikely(!rec)) + return; + __eprobe_trace_func(edata, rec); } @@ -841,6 +869,10 @@ if (ep->tp.args[i].code->op == FETCH_OP_TP_ARG) ret = trace_eprobe_tp_arg_update(ep, i); + /* Handle symbols "@" */ + if (!ret) + ret = traceprobe_update_arg(&ep->tp.args[i]); + return ret; } --- linux-5.19.0.orig/kernel/trace/trace_event_perf.c +++ linux-5.19.0/kernel/trace/trace_event_perf.c @@ -157,7 +157,7 @@ int i; if (--tp_event->perf_refcount > 0) - goto out; + return; tp_event->class->reg(tp_event, TRACE_REG_PERF_UNREGISTER, NULL); @@ -176,8 +176,6 @@ perf_trace_buf[i] = NULL; } } -out: - trace_event_put_ref(tp_event); } static int perf_trace_event_open(struct perf_event *p_event) @@ -241,6 +239,7 @@ mutex_lock(&event_mutex); perf_trace_event_close(p_event); perf_trace_event_unreg(p_event); + trace_event_put_ref(p_event->tp_event); mutex_unlock(&event_mutex); } @@ -292,6 +291,7 @@ mutex_lock(&event_mutex); perf_trace_event_close(p_event); perf_trace_event_unreg(p_event); + trace_event_put_ref(p_event->tp_event); mutex_unlock(&event_mutex); destroy_local_trace_kprobe(p_event->tp_event); @@ -347,6 +347,7 @@ mutex_lock(&event_mutex); perf_trace_event_close(p_event); perf_trace_event_unreg(p_event); + trace_event_put_ref(p_event->tp_event); mutex_unlock(&event_mutex); destroy_local_trace_uprobe(p_event->tp_event); } --- linux-5.19.0.orig/kernel/trace/trace_events.c +++ linux-5.19.0/kernel/trace/trace_events.c @@ -176,6 +176,7 @@ __generic_field(int, CPU, FILTER_CPU); __generic_field(int, cpu, FILTER_CPU); + __generic_field(int, common_cpu, FILTER_CPU); __generic_field(char *, COMM, FILTER_COMM); __generic_field(char *, comm, FILTER_COMM); @@ -2879,7 +2880,10 @@ * TRACE_REG_UNREGISTER. */ if (file->flags & EVENT_FILE_FL_ENABLED) - return -EBUSY; + goto busy; + + if (file->flags & EVENT_FILE_FL_WAS_ENABLED) + tr->clear_trace = true; /* * The do_for_each_event_file_safe() is * a double loop. After finding the call for this @@ -2892,6 +2896,12 @@ __trace_remove_event_call(call); return 0; + busy: + /* No need to clear the trace now */ + list_for_each_entry(tr, &ftrace_trace_arrays, list) { + tr->clear_trace = false; + } + return -EBUSY; } /* Remove an event_call */ --- linux-5.19.0.orig/kernel/trace/trace_events_hist.c +++ linux-5.19.0/kernel/trace/trace_events_hist.c @@ -5052,6 +5052,9 @@ void *key = NULL; unsigned int i; + if (unlikely(!rbe)) + return; + memset(compound_key, 0, hist_data->key_size); for_each_hist_key_field(i, hist_data) { @@ -6344,7 +6347,7 @@ if (se) se->ref++; out: - if (ret == 0) + if (ret == 0 && glob[0]) hist_err_clear(); return ret; --- linux-5.19.0.orig/kernel/trace/trace_events_synth.c +++ linux-5.19.0/kernel/trace/trace_events_synth.c @@ -17,6 +17,8 @@ /* for gfp flag names */ #include #include +#include "trace_probe.h" +#include "trace_probe_kernel.h" #include "trace_synth.h" @@ -409,6 +411,7 @@ { unsigned int len = 0; char *str_field; + int ret; if (is_dynamic) { u32 data_offset; @@ -417,19 +420,27 @@ data_offset += event->n_u64 * sizeof(u64); data_offset += data_size; - str_field = (char *)entry + data_offset; - - len = strlen(str_val) + 1; - strscpy(str_field, str_val, len); + len = kern_fetch_store_strlen((unsigned long)str_val); data_offset |= len << 16; *(u32 *)&entry->fields[*n_u64] = data_offset; + ret = kern_fetch_store_string((unsigned long)str_val, &entry->fields[*n_u64], entry); + (*n_u64)++; } else { str_field = (char *)&entry->fields[*n_u64]; - strscpy(str_field, str_val, STR_VAR_LEN_MAX); +#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE + if ((unsigned long)str_val < TASK_SIZE) + ret = strncpy_from_user_nofault(str_field, str_val, STR_VAR_LEN_MAX); + else +#endif + ret = strncpy_from_kernel_nofault(str_field, str_val, STR_VAR_LEN_MAX); + + if (ret < 0) + strcpy(str_field, FAULT_STRING); + (*n_u64) += STR_VAR_LEN_MAX / sizeof(u64); } @@ -462,7 +473,7 @@ val_idx = var_ref_idx[field_pos]; str_val = (char *)(long)var_ref_vals[val_idx]; - len = strlen(str_val) + 1; + len = kern_fetch_store_strlen((unsigned long)str_val); fields_size += len; } @@ -817,10 +828,9 @@ } ret = set_synth_event_print_fmt(call); - if (ret < 0) { + /* unregister_trace_event() will be called inside */ + if (ret < 0) trace_remove_event_call(call); - goto err; - } out: return ret; err: --- linux-5.19.0.orig/kernel/trace/trace_events_trigger.c +++ linux-5.19.0/kernel/trace/trace_events_trigger.c @@ -142,7 +142,8 @@ { struct event_trigger_data *data; - list_for_each_entry_rcu(data, &file->triggers, list) { + list_for_each_entry_rcu(data, &file->triggers, list, + lockdep_is_held(&event_mutex)) { if (data->flags & EVENT_TRIGGER_FL_PROBE) continue; return true; --- linux-5.19.0.orig/kernel/trace/trace_events_user.c +++ linux-5.19.0/kernel/trace/trace_events_user.c @@ -1127,6 +1127,7 @@ put_user: user_event_destroy_fields(user); user_event_destroy_validators(user); + kfree(user->call.print_fmt); kfree(user); return ret; } --- linux-5.19.0.orig/kernel/trace/trace_kprobe.c +++ linux-5.19.0/kernel/trace/trace_kprobe.c @@ -20,6 +20,7 @@ #include "trace_kprobe_selftest.h" #include "trace_probe.h" #include "trace_probe_tmpl.h" +#include "trace_probe_kernel.h" #define KPROBE_EVENT_SYSTEM "kprobes" #define KRETPROBE_MAXACTIVE_MAX 4096 @@ -1219,29 +1220,14 @@ static nokprobe_inline int fetch_store_strlen_user(unsigned long addr) { - const void __user *uaddr = (__force const void __user *)addr; - - return strnlen_user_nofault(uaddr, MAX_STRING_SIZE); + return kern_fetch_store_strlen_user(addr); } /* Return the length of string -- including null terminal byte */ static nokprobe_inline int fetch_store_strlen(unsigned long addr) { - int ret, len = 0; - u8 c; - -#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE - if (addr < TASK_SIZE) - return fetch_store_strlen_user(addr); -#endif - - do { - ret = copy_from_kernel_nofault(&c, (u8 *)addr + len, 1); - len++; - } while (c && ret == 0 && len < MAX_STRING_SIZE); - - return (ret < 0) ? ret : len; + return kern_fetch_store_strlen(addr); } /* @@ -1251,21 +1237,7 @@ static nokprobe_inline int fetch_store_string_user(unsigned long addr, void *dest, void *base) { - const void __user *uaddr = (__force const void __user *)addr; - int maxlen = get_loc_len(*(u32 *)dest); - void *__dest; - long ret; - - if (unlikely(!maxlen)) - return -ENOMEM; - - __dest = get_loc_data(dest, base); - - ret = strncpy_from_user_nofault(__dest, uaddr, maxlen); - if (ret >= 0) - *(u32 *)dest = make_data_loc(ret, __dest - base); - - return ret; + return kern_fetch_store_string_user(addr, dest, base); } /* @@ -1275,29 +1247,7 @@ static nokprobe_inline int fetch_store_string(unsigned long addr, void *dest, void *base) { - int maxlen = get_loc_len(*(u32 *)dest); - void *__dest; - long ret; - -#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE - if ((unsigned long)addr < TASK_SIZE) - return fetch_store_string_user(addr, dest, base); -#endif - - if (unlikely(!maxlen)) - return -ENOMEM; - - __dest = get_loc_data(dest, base); - - /* - * Try to get string again, since the string can be changed while - * probing. - */ - ret = strncpy_from_kernel_nofault(__dest, (void *)addr, maxlen); - if (ret >= 0) - *(u32 *)dest = make_data_loc(ret, __dest - base); - - return ret; + return kern_fetch_store_string(addr, dest, base); } static nokprobe_inline int --- linux-5.19.0.orig/kernel/trace/trace_osnoise.c +++ linux-5.19.0/kernel/trace/trace_osnoise.c @@ -917,7 +917,7 @@ void osnoise_trace_irq_exit(int id, const char *desc) { struct osnoise_variables *osn_var = this_cpu_osn_var(); - int duration; + s64 duration; if (!osn_var->sampling) return; @@ -1048,7 +1048,7 @@ static void trace_softirq_exit_callback(void *data, unsigned int vec_nr) { struct osnoise_variables *osn_var = this_cpu_osn_var(); - int duration; + s64 duration; if (!osn_var->sampling) return; @@ -1144,7 +1144,7 @@ static void thread_exit(struct osnoise_variables *osn_var, struct task_struct *t) { - int duration; + s64 duration; if (!osn_var->sampling) return; @@ -1786,8 +1786,9 @@ for_each_cpu(cpu, current_mask) { retval = start_kthread(cpu); if (retval) { + cpus_read_unlock(); stop_per_cpu_kthreads(); - break; + return retval; } } --- linux-5.19.0.orig/kernel/trace/trace_preemptirq.c +++ linux-5.19.0/kernel/trace/trace_preemptirq.c @@ -95,14 +95,14 @@ } lockdep_hardirqs_on_prepare(); - lockdep_hardirqs_on(CALLER_ADDR0); + lockdep_hardirqs_on(caller_addr); } EXPORT_SYMBOL(trace_hardirqs_on_caller); NOKPROBE_SYMBOL(trace_hardirqs_on_caller); __visible void trace_hardirqs_off_caller(unsigned long caller_addr) { - lockdep_hardirqs_off(CALLER_ADDR0); + lockdep_hardirqs_off(caller_addr); if (!this_cpu_read(tracing_irq_cpu)) { this_cpu_write(tracing_irq_cpu, 1); --- linux-5.19.0.orig/kernel/trace/trace_probe.c +++ linux-5.19.0/kernel/trace/trace_probe.c @@ -279,7 +279,14 @@ int ret = 0; int len; - if (strcmp(arg, "retval") == 0) { + if (flags & TPARG_FL_TPOINT) { + if (code->data) + return -EFAULT; + code->data = kstrdup(arg, GFP_KERNEL); + if (!code->data) + return -ENOMEM; + code->op = FETCH_OP_TP_ARG; + } else if (strcmp(arg, "retval") == 0) { if (flags & TPARG_FL_RETURN) { code->op = FETCH_OP_RETVAL; } else { @@ -303,7 +310,7 @@ } } else goto inval_var; - } else if (strcmp(arg, "comm") == 0) { + } else if (strcmp(arg, "comm") == 0 || strcmp(arg, "COMM") == 0) { code->op = FETCH_OP_COMM; #ifdef CONFIG_HAVE_FUNCTION_ARG_ACCESS_API } else if (((flags & TPARG_FL_MASK) == @@ -319,13 +326,6 @@ code->op = FETCH_OP_ARG; code->param = (unsigned int)param - 1; #endif - } else if (flags & TPARG_FL_TPOINT) { - if (code->data) - return -EFAULT; - code->data = kstrdup(arg, GFP_KERNEL); - if (!code->data) - return -ENOMEM; - code->op = FETCH_OP_TP_ARG; } else goto inval_var; @@ -380,6 +380,11 @@ break; case '%': /* named register */ + if (flags & TPARG_FL_TPOINT) { + /* eprobes do not handle registers */ + trace_probe_log_err(offs, BAD_VAR); + break; + } ret = regs_query_register_offset(arg + 1); if (ret >= 0) { code->op = FETCH_OP_REG; @@ -613,9 +618,11 @@ /* * Since $comm and immediate string can not be dereferenced, - * we can find those by strcmp. + * we can find those by strcmp. But ignore for eprobes. */ - if (strcmp(arg, "$comm") == 0 || strncmp(arg, "\\\"", 2) == 0) { + if (!(flags & TPARG_FL_TPOINT) && + (strcmp(arg, "$comm") == 0 || strcmp(arg, "$COMM") == 0 || + strncmp(arg, "\\\"", 2) == 0)) { /* The type of $comm must be "string", and not an array. */ if (parg->count || (t && strcmp(t, "string"))) goto out; --- linux-5.19.0.orig/kernel/trace/trace_probe_kernel.h +++ linux-5.19.0/kernel/trace/trace_probe_kernel.h @@ -0,0 +1,115 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __TRACE_PROBE_KERNEL_H_ +#define __TRACE_PROBE_KERNEL_H_ + +#define FAULT_STRING "(fault)" + +/* + * This depends on trace_probe.h, but can not include it due to + * the way trace_probe_tmpl.h is used by trace_kprobe.c and trace_eprobe.c. + * Which means that any other user must include trace_probe.h before including + * this file. + */ +/* Return the length of string -- including null terminal byte */ +static nokprobe_inline int +kern_fetch_store_strlen_user(unsigned long addr) +{ + const void __user *uaddr = (__force const void __user *)addr; + int ret; + + ret = strnlen_user_nofault(uaddr, MAX_STRING_SIZE); + /* + * strnlen_user_nofault returns zero on fault, insert the + * FAULT_STRING when that occurs. + */ + if (ret <= 0) + return strlen(FAULT_STRING) + 1; + return ret; +} + +/* Return the length of string -- including null terminal byte */ +static nokprobe_inline int +kern_fetch_store_strlen(unsigned long addr) +{ + int ret, len = 0; + u8 c; + +#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE + if (addr < TASK_SIZE) + return kern_fetch_store_strlen_user(addr); +#endif + + do { + ret = copy_from_kernel_nofault(&c, (u8 *)addr + len, 1); + len++; + } while (c && ret == 0 && len < MAX_STRING_SIZE); + + /* For faults, return enough to hold the FAULT_STRING */ + return (ret < 0) ? strlen(FAULT_STRING) + 1 : len; +} + +static nokprobe_inline void set_data_loc(int ret, void *dest, void *__dest, void *base, int len) +{ + if (ret >= 0) { + *(u32 *)dest = make_data_loc(ret, __dest - base); + } else { + strscpy(__dest, FAULT_STRING, len); + ret = strlen(__dest) + 1; + } +} + +/* + * Fetch a null-terminated string from user. Caller MUST set *(u32 *)buf + * with max length and relative data location. + */ +static nokprobe_inline int +kern_fetch_store_string_user(unsigned long addr, void *dest, void *base) +{ + const void __user *uaddr = (__force const void __user *)addr; + int maxlen = get_loc_len(*(u32 *)dest); + void *__dest; + long ret; + + if (unlikely(!maxlen)) + return -ENOMEM; + + __dest = get_loc_data(dest, base); + + ret = strncpy_from_user_nofault(__dest, uaddr, maxlen); + set_data_loc(ret, dest, __dest, base, maxlen); + + return ret; +} + +/* + * Fetch a null-terminated string. Caller MUST set *(u32 *)buf with max + * length and relative data location. + */ +static nokprobe_inline int +kern_fetch_store_string(unsigned long addr, void *dest, void *base) +{ + int maxlen = get_loc_len(*(u32 *)dest); + void *__dest; + long ret; + +#ifdef CONFIG_ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE + if ((unsigned long)addr < TASK_SIZE) + return kern_fetch_store_string_user(addr, dest, base); +#endif + + if (unlikely(!maxlen)) + return -ENOMEM; + + __dest = get_loc_data(dest, base); + + /* + * Try to get string again, since the string can be changed while + * probing. + */ + ret = strncpy_from_kernel_nofault(__dest, (void *)addr, maxlen); + set_data_loc(ret, dest, __dest, base, maxlen); + + return ret; +} + +#endif /* __TRACE_PROBE_KERNEL_H_ */ --- linux-5.19.0.orig/kernel/user_namespace.c +++ linux-5.19.0/kernel/user_namespace.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -21,6 +22,12 @@ #include #include +/* + * sysctl determining whether unprivileged users may unshare a new + * userns. Allowed by default + */ +int unprivileged_userns_clone = 1; + static struct kmem_cache *user_ns_cachep __read_mostly; static DEFINE_MUTEX(userns_state_mutex); @@ -113,6 +120,10 @@ !kgid_has_mapping(parent_ns, group)) goto fail_dec; + ret = security_create_user_ns(new); + if (ret < 0) + goto fail_dec; + ret = -ENOMEM; ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL); if (!ns) --- linux-5.19.0.orig/kernel/watchdog.c +++ linux-5.19.0/kernel/watchdog.c @@ -537,7 +537,7 @@ return 0; } -static void lockup_detector_reconfigure(void) +static void __lockup_detector_reconfigure(void) { cpus_read_lock(); watchdog_nmi_stop(); @@ -557,6 +557,13 @@ __lockup_detector_cleanup(); } +void lockup_detector_reconfigure(void) +{ + mutex_lock(&watchdog_mutex); + __lockup_detector_reconfigure(); + mutex_unlock(&watchdog_mutex); +} + /* * Create the watchdog infrastructure and configure the detector(s). */ @@ -573,13 +580,13 @@ return; mutex_lock(&watchdog_mutex); - lockup_detector_reconfigure(); + __lockup_detector_reconfigure(); softlockup_initialized = true; mutex_unlock(&watchdog_mutex); } #else /* CONFIG_SOFTLOCKUP_DETECTOR */ -static void lockup_detector_reconfigure(void) +static void __lockup_detector_reconfigure(void) { cpus_read_lock(); watchdog_nmi_stop(); @@ -587,9 +594,13 @@ watchdog_nmi_start(); cpus_read_unlock(); } +void lockup_detector_reconfigure(void) +{ + __lockup_detector_reconfigure(); +} static inline void lockup_detector_setup(void) { - lockup_detector_reconfigure(); + __lockup_detector_reconfigure(); } #endif /* !CONFIG_SOFTLOCKUP_DETECTOR */ @@ -629,7 +640,7 @@ { /* Remove impossible cpus to keep sysctl output clean. */ cpumask_and(&watchdog_cpumask, &watchdog_cpumask, cpu_possible_mask); - lockup_detector_reconfigure(); + __lockup_detector_reconfigure(); } /* --- linux-5.19.0.orig/kernel/workqueue.c +++ linux-5.19.0/kernel/workqueue.c @@ -3066,10 +3066,8 @@ if (WARN_ON(!work->func)) return false; - if (!from_cancel) { - lock_map_acquire(&work->lockdep_map); - lock_map_release(&work->lockdep_map); - } + lock_map_acquire(&work->lockdep_map); + lock_map_release(&work->lockdep_map); if (start_flush_work(work, &barr, from_cancel)) { wait_for_completion(&barr.done); --- linux-5.19.0.orig/lib/Kconfig.debug +++ linux-5.19.0/lib/Kconfig.debug @@ -231,6 +231,11 @@ in the "Debug information" choice below, indicating that debug information will be generated for build targets. +# Clang is known to generate .{s,u}leb128 with symbol deltas with DWARF5, which +# some targets may not support: https://sourceware.org/bugzilla/show_bug.cgi?id=27215 +config AS_HAS_NON_CONST_LEB128 + def_bool $(as-instr,.uleb128 .Lexpr_end4 - .Lexpr_start3\n.Lexpr_start3:\n.Lexpr_end4:) + choice prompt "Debug information" depends on DEBUG_KERNEL @@ -253,6 +258,7 @@ config DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT bool "Rely on the toolchain's implicit default DWARF version" select DEBUG_INFO + depends on !CC_IS_CLANG || AS_IS_LLVM || CLANG_VERSION < 140000 || (AS_IS_GNU && AS_VERSION >= 23502 && AS_HAS_NON_CONST_LEB128) help The implicit default version of DWARF debug info produced by a toolchain changes over time. @@ -264,8 +270,10 @@ config DEBUG_INFO_DWARF4 bool "Generate DWARF Version 4 debuginfo" select DEBUG_INFO + depends on !CC_IS_CLANG || AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502) help - Generate DWARF v4 debug info. This requires gcc 4.5+ and gdb 7.0+. + Generate DWARF v4 debug info. This requires gcc 4.5+, binutils 2.35.2 + if using clang without clang's integrated assembler, and gdb 7.0+. If you have consumers of DWARF debug info that are not ready for newer revisions of DWARF, you may wish to choose this or have your @@ -274,7 +282,7 @@ config DEBUG_INFO_DWARF5 bool "Generate DWARF Version 5 debuginfo" select DEBUG_INFO - depends on !CC_IS_CLANG || (CC_IS_CLANG && (AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502))) + depends on !CC_IS_CLANG || AS_IS_LLVM || (AS_IS_GNU && AS_VERSION >= 23502 && AS_HAS_NON_CONST_LEB128) help Generate DWARF v5 debug info. Requires binutils 2.35.2, gcc 5.0+ (gcc 5.0+ accepts the -gdwarf-5 flag but only had partial support for some @@ -390,6 +398,7 @@ default 2048 if GCC_PLUGIN_LATENT_ENTROPY default 2048 if PARISC default 1536 if (!64BIT && XTENSA) + default 1280 if KASAN && !64BIT default 1024 if !64BIT default 2048 if 64BIT help @@ -1846,8 +1855,14 @@ If unsure, say N. config FUNCTION_ERROR_INJECTION - def_bool y + bool "Fault-injections of functions" depends on HAVE_FUNCTION_ERROR_INJECTION && KPROBES + help + Add fault injections into various functions that are annotated with + ALLOW_ERROR_INJECTION() in the kernel. BPF may also modify the return + value of theses functions. This is useful to test error paths of code. + + If unsure, say N config FAULT_INJECTION bool "Fault-injection framework" @@ -2067,6 +2082,7 @@ depends on DEBUG_KERNEL depends on KPROBES depends on KUNIT + select STACKTRACE if ARCH_CORRECT_STACKTRACE_ON_KRETPROBE default KUNIT_ALL_TESTS help This option provides for testing basic kprobes functionality on --- linux-5.19.0.orig/lib/bitmap.c +++ linux-5.19.0/lib/bitmap.c @@ -1564,7 +1564,7 @@ /* Clear tail bits in the last element of array beyond nbits. */ if (nbits % 64) - buf[-1] &= GENMASK_ULL(nbits % 64, 0); + buf[-1] &= GENMASK_ULL((nbits - 1) % 64, 0); } EXPORT_SYMBOL(bitmap_to_arr64); #endif --- linux-5.19.0.orig/lib/crypto/Kconfig +++ linux-5.19.0/lib/crypto/Kconfig @@ -33,7 +33,6 @@ config CRYPTO_LIB_CHACHA_GENERIC tristate - select XOR_BLOCKS help This symbol can be depended upon by arch implementations of the ChaCha library interface that require the generic code as a --- linux-5.19.0.orig/lib/crypto/blake2s-selftest.c +++ linux-5.19.0/lib/crypto/blake2s-selftest.c @@ -4,6 +4,8 @@ */ #include +#include +#include #include /* @@ -587,5 +589,44 @@ } } + for (i = 0; i < 32; ++i) { + enum { TEST_ALIGNMENT = 16 }; + u8 unaligned_block[BLAKE2S_BLOCK_SIZE + TEST_ALIGNMENT - 1] + __aligned(TEST_ALIGNMENT); + u8 blocks[BLAKE2S_BLOCK_SIZE * 2]; + struct blake2s_state state1, state2; + + get_random_bytes(blocks, sizeof(blocks)); + get_random_bytes(&state, sizeof(state)); + +#if defined(CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC) && \ + defined(CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S) + memcpy(&state1, &state, sizeof(state1)); + memcpy(&state2, &state, sizeof(state2)); + blake2s_compress(&state1, blocks, 2, BLAKE2S_BLOCK_SIZE); + blake2s_compress_generic(&state2, blocks, 2, BLAKE2S_BLOCK_SIZE); + if (memcmp(&state1, &state2, sizeof(state1))) { + pr_err("blake2s random compress self-test %d: FAIL\n", + i + 1); + success = false; + } +#endif + + memcpy(&state1, &state, sizeof(state1)); + blake2s_compress(&state1, blocks, 1, BLAKE2S_BLOCK_SIZE); + for (l = 1; l < TEST_ALIGNMENT; ++l) { + memcpy(unaligned_block + l, blocks, + BLAKE2S_BLOCK_SIZE); + memcpy(&state2, &state, sizeof(state2)); + blake2s_compress(&state2, unaligned_block + l, 1, + BLAKE2S_BLOCK_SIZE); + if (memcmp(&state1, &state2, sizeof(state1))) { + pr_err("blake2s random compress align %d self-test %d: FAIL\n", + l, i + 1); + success = false; + } + } + } + return success; } --- linux-5.19.0.orig/lib/crypto/blake2s.c +++ linux-5.19.0/lib/crypto/blake2s.c @@ -16,16 +16,44 @@ #include #include +static inline void blake2s_set_lastblock(struct blake2s_state *state) +{ + state->f[0] = -1; +} + void blake2s_update(struct blake2s_state *state, const u8 *in, size_t inlen) { - __blake2s_update(state, in, inlen, false); + const size_t fill = BLAKE2S_BLOCK_SIZE - state->buflen; + + if (unlikely(!inlen)) + return; + if (inlen > fill) { + memcpy(state->buf + state->buflen, in, fill); + blake2s_compress(state, state->buf, 1, BLAKE2S_BLOCK_SIZE); + state->buflen = 0; + in += fill; + inlen -= fill; + } + if (inlen > BLAKE2S_BLOCK_SIZE) { + const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_SIZE); + blake2s_compress(state, in, nblocks - 1, BLAKE2S_BLOCK_SIZE); + in += BLAKE2S_BLOCK_SIZE * (nblocks - 1); + inlen -= BLAKE2S_BLOCK_SIZE * (nblocks - 1); + } + memcpy(state->buf + state->buflen, in, inlen); + state->buflen += inlen; } EXPORT_SYMBOL(blake2s_update); void blake2s_final(struct blake2s_state *state, u8 *out) { WARN_ON(IS_ENABLED(DEBUG) && !out); - __blake2s_final(state, out, false); + blake2s_set_lastblock(state); + memset(state->buf + state->buflen, 0, + BLAKE2S_BLOCK_SIZE - state->buflen); /* Padding */ + blake2s_compress(state, state->buf, 1, state->buflen); + cpu_to_le32_array(state->h, ARRAY_SIZE(state->h)); + memcpy(out, state->h, state->outlen); memzero_explicit(state, sizeof(*state)); } EXPORT_SYMBOL(blake2s_final); @@ -38,12 +66,7 @@ return 0; } -static void __exit blake2s_mod_exit(void) -{ -} - module_init(blake2s_mod_init); -module_exit(blake2s_mod_exit); MODULE_LICENSE("GPL v2"); MODULE_DESCRIPTION("BLAKE2s hash function"); MODULE_AUTHOR("Jason A. Donenfeld "); --- linux-5.19.0.orig/lib/debugobjects.c +++ linux-5.19.0/lib/debugobjects.c @@ -437,6 +437,7 @@ struct debug_percpu_free *percpu_pool; struct hlist_node *tmp; struct debug_obj *obj; + unsigned long flags; /* Remote access is safe as the CPU is dead already */ percpu_pool = per_cpu_ptr(&percpu_obj_pool, cpu); @@ -444,6 +445,12 @@ hlist_del(&obj->node); kmem_cache_free(obj_cache, obj); } + + raw_spin_lock_irqsave(&pool_lock, flags); + obj_pool_used -= percpu_pool->obj_free; + debug_objects_freed += percpu_pool->obj_free; + raw_spin_unlock_irqrestore(&pool_lock, flags); + percpu_pool->obj_free = 0; return 0; @@ -1318,6 +1325,8 @@ hlist_add_head(&obj->node, &objects); } + debug_objects_allocated += i; + /* * debug_objects_mem_init() is now called early that only one CPU is up * and interrupts have been disabled, so it is safe to replace the @@ -1386,6 +1395,7 @@ debug_objects_enabled = 0; kmem_cache_destroy(obj_cache); pr_warn("out of memory.\n"); + return; } else debug_objects_selftest(); --- linux-5.19.0.orig/lib/dynamic_debug.c +++ linux-5.19.0/lib/dynamic_debug.c @@ -211,10 +211,11 @@ continue; #ifdef CONFIG_JUMP_LABEL if (dp->flags & _DPRINTK_FLAGS_PRINT) { - if (!(modifiers->flags & _DPRINTK_FLAGS_PRINT)) + if (!(newflags & _DPRINTK_FLAGS_PRINT)) static_branch_disable(&dp->key.dd_key_true); - } else if (modifiers->flags & _DPRINTK_FLAGS_PRINT) + } else if (newflags & _DPRINTK_FLAGS_PRINT) { static_branch_enable(&dp->key.dd_key_true); + } #endif dp->flags = newflags; v4pr_info("changed %s:%d [%s]%s =%s\n", @@ -383,10 +384,6 @@ return -EINVAL; } - if (modname) - /* support $modname.dyndbg= */ - query->module = modname; - for (i = 0; i < nwords; i += 2) { char *keyword = words[i]; char *arg = words[i+1]; @@ -427,6 +424,13 @@ if (rc) return rc; } + if (!query->module && modname) + /* + * support $modname.dyndbg=, when + * not given in the query itself + */ + query->module = modname; + vpr_info_dq(query, "parsed"); return 0; } @@ -553,35 +557,6 @@ return nfound; } -/** - * dynamic_debug_exec_queries - select and change dynamic-debug prints - * @query: query-string described in admin-guide/dynamic-debug-howto - * @modname: string containing module name, usually &module.mod_name - * - * This uses the >/proc/dynamic_debug/control reader, allowing module - * authors to modify their dynamic-debug callsites. The modname is - * canonically struct module.mod_name, but can also be null or a - * module-wildcard, for example: "drm*". - */ -int dynamic_debug_exec_queries(const char *query, const char *modname) -{ - int rc; - char *qry; /* writable copy of query */ - - if (!query) { - pr_err("non-null query/command string expected\n"); - return -EINVAL; - } - qry = kstrndup(query, PAGE_SIZE, GFP_KERNEL); - if (!qry) - return -ENOMEM; - - rc = ddebug_exec_queries(qry, modname); - kfree(qry); - return rc; -} -EXPORT_SYMBOL_GPL(dynamic_debug_exec_queries); - #define PREFIX_SIZE 64 static int remaining(int wrote) --- linux-5.19.0.orig/lib/fault-inject.c +++ linux-5.19.0/lib/fault-inject.c @@ -41,9 +41,6 @@ static void fail_dump(struct fault_attr *attr) { - if (attr->no_warn) - return; - if (attr->verbose > 0 && __ratelimit(&attr->ratelimit_state)) { printk(KERN_NOTICE "FAULT_INJECTION: forcing a failure.\n" "name %pd, interval %lu, probability %lu, " @@ -103,7 +100,7 @@ * http://www.nongnu.org/failmalloc/ */ -bool should_fail(struct fault_attr *attr, ssize_t size) +bool should_fail_ex(struct fault_attr *attr, ssize_t size, int flags) { if (in_task()) { unsigned int fail_nth = READ_ONCE(current->fail_nth); @@ -146,13 +143,19 @@ return false; fail: - fail_dump(attr); + if (!(flags & FAULT_NOWARN)) + fail_dump(attr); if (atomic_read(&attr->times) != -1) atomic_dec_not_zero(&attr->times); return true; } + +bool should_fail(struct fault_attr *attr, ssize_t size) +{ + return should_fail_ex(attr, size, 0); +} EXPORT_SYMBOL_GPL(should_fail); #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS --- linux-5.19.0.orig/lib/fonts/fonts.c +++ linux-5.19.0/lib/fonts/fonts.c @@ -135,8 +135,8 @@ if (res > 20) c += 20 - res; - if ((font_w & (1 << (f->width - 1))) && - (font_h & (1 << (f->height - 1)))) + if ((font_w & (1U << (f->width - 1))) && + (font_h & (1U << (f->height - 1)))) c += 1000; if (c > cc) { --- linux-5.19.0.orig/lib/iov_iter.c +++ linux-5.19.0/lib/iov_iter.c @@ -689,6 +689,7 @@ struct pipe_inode_info *pipe = i->pipe; unsigned int p_mask = pipe->ring_size - 1; unsigned int i_head; + unsigned int valid = pipe->head; size_t n, off, xfer = 0; if (!sanity(i)) @@ -702,11 +703,17 @@ rem = copy_mc_to_kernel(p + off, addr + xfer, chunk); chunk -= rem; kunmap_local(p); - i->head = i_head; - i->iov_offset = off + chunk; - xfer += chunk; - if (rem) + if (chunk) { + i->head = i_head; + i->iov_offset = off + chunk; + xfer += chunk; + valid = i_head + 1; + } + if (rem) { + pipe->bufs[i_head & p_mask].len -= rem; + pipe_discard_from(pipe, valid); break; + } n -= chunk; off = 0; i_head++; --- linux-5.19.0.orig/lib/kunit/executor.c +++ linux-5.19.0/lib/kunit/executor.c @@ -76,8 +76,10 @@ memcpy(copy, suite, sizeof(*copy)); filtered = kcalloc(n + 1, sizeof(*filtered), GFP_KERNEL); - if (!filtered) + if (!filtered) { + kfree(copy); return ERR_PTR(-ENOMEM); + } n = 0; kunit_suite_for_each_test_case(suite, test_case) { --- linux-5.19.0.orig/lib/list_debug.c +++ linux-5.19.0/lib/list_debug.c @@ -20,7 +20,11 @@ bool __list_add_valid(struct list_head *new, struct list_head *prev, struct list_head *next) { - if (CHECK_DATA_CORRUPTION(next->prev != prev, + if (CHECK_DATA_CORRUPTION(prev == NULL, + "list_add corruption. prev is NULL.\n") || + CHECK_DATA_CORRUPTION(next == NULL, + "list_add corruption. next is NULL.\n") || + CHECK_DATA_CORRUPTION(next->prev != prev, "list_add corruption. next->prev should be prev (%px), but was %px. (next=%px).\n", prev, next->prev, next) || CHECK_DATA_CORRUPTION(prev->next != next, @@ -42,7 +46,11 @@ prev = entry->prev; next = entry->next; - if (CHECK_DATA_CORRUPTION(next == LIST_POISON1, + if (CHECK_DATA_CORRUPTION(next == NULL, + "list_del corruption, %px->next is NULL\n", entry) || + CHECK_DATA_CORRUPTION(prev == NULL, + "list_del corruption, %px->prev is NULL\n", entry) || + CHECK_DATA_CORRUPTION(next == LIST_POISON1, "list_del corruption, %px->next is LIST_POISON1 (%px)\n", entry, LIST_POISON1) || CHECK_DATA_CORRUPTION(prev == LIST_POISON2, --- linux-5.19.0.orig/lib/livepatch/test_klp_callbacks_busy.c +++ linux-5.19.0/lib/livepatch/test_klp_callbacks_busy.c @@ -16,10 +16,12 @@ static void busymod_work_func(struct work_struct *work); static DECLARE_WORK(work, busymod_work_func); +static DECLARE_COMPLETION(busymod_work_started); static void busymod_work_func(struct work_struct *work) { pr_info("%s enter\n", __func__); + complete(&busymod_work_started); while (READ_ONCE(block_transition)) { /* @@ -37,6 +39,12 @@ pr_info("%s\n", __func__); schedule_work(&work); + /* + * To synchronize kernel messages, hold the init function from + * exiting until the work function's entry message has printed. + */ + wait_for_completion(&busymod_work_started); + if (!block_transition) { /* * Serialize output: print all messages from the work --- linux-5.19.0.orig/lib/notifier-error-inject.c +++ linux-5.19.0/lib/notifier-error-inject.c @@ -15,7 +15,7 @@ return 0; } -DEFINE_SIMPLE_ATTRIBUTE(fops_errno, debugfs_errno_get, debugfs_errno_set, +DEFINE_SIMPLE_ATTRIBUTE_SIGNED(fops_errno, debugfs_errno_get, debugfs_errno_set, "%lld\n"); static struct dentry *debugfs_create_errno(const char *name, umode_t mode, --- linux-5.19.0.orig/lib/once.c +++ linux-5.19.0/lib/once.c @@ -66,3 +66,33 @@ once_disable_jump(once_key, mod); } EXPORT_SYMBOL(__do_once_done); + +static DEFINE_MUTEX(once_mutex); + +bool __do_once_slow_start(bool *done) + __acquires(once_mutex) +{ + mutex_lock(&once_mutex); + if (*done) { + mutex_unlock(&once_mutex); + /* Keep sparse happy by restoring an even lock count on + * this mutex. In case we return here, we don't call into + * __do_once_done but return early in the DO_ONCE_SLOW() macro. + */ + __acquire(once_mutex); + return false; + } + + return true; +} +EXPORT_SYMBOL(__do_once_slow_start); + +void __do_once_slow_done(bool *done, struct static_key_true *once_key, + struct module *mod) + __releases(once_mutex) +{ + *done = true; + mutex_unlock(&once_mutex); + once_disable_jump(once_key, mod); +} +EXPORT_SYMBOL(__do_once_slow_done); --- linux-5.19.0.orig/lib/overflow_kunit.c +++ linux-5.19.0/lib/overflow_kunit.c @@ -91,6 +91,7 @@ {-4U, 5U, 1U, -9U, -20U, true, false, true}, }; +#if BITS_PER_LONG == 64 DEFINE_TEST_ARRAY(u64) = { {0, 0, 0, 0, 0, false, false, false}, {1, 1, 2, 0, 1, false, false, false}, @@ -114,6 +115,7 @@ false, true, false}, {-15ULL, 10ULL, -5ULL, -25ULL, -150ULL, false, false, true}, }; +#endif DEFINE_TEST_ARRAY(s8) = { {0, 0, 0, 0, 0, false, false, false}, @@ -188,6 +190,8 @@ {S32_MIN, S32_MIN, 0, 0, 0, true, false, true}, {S32_MAX, S32_MAX, -2, 0, 1, true, false, true}, }; + +#if BITS_PER_LONG == 64 DEFINE_TEST_ARRAY(s64) = { {0, 0, 0, 0, 0, false, false, false}, @@ -216,6 +220,7 @@ {-128, -1, -129, -127, 128, false, false, false}, {0, -S64_MAX, -S64_MAX, S64_MAX, 0, false, false, false}, }; +#endif #define check_one_op(t, fmt, op, sym, a, b, r, of) do { \ t _r; \ @@ -650,6 +655,7 @@ KUNIT_CASE(s16_overflow_test), KUNIT_CASE(u32_overflow_test), KUNIT_CASE(s32_overflow_test), +/* Clang 13 and earlier generate unwanted libcalls on 32-bit. */ #if BITS_PER_LONG == 64 KUNIT_CASE(u64_overflow_test), KUNIT_CASE(s64_overflow_test), --- linux-5.19.0.orig/lib/radix-tree.c +++ linux-5.19.0/lib/radix-tree.c @@ -27,6 +27,7 @@ #include #include + /* * Radix tree node cache. */ @@ -57,10 +58,12 @@ /* * Per-cpu pool of preloaded nodes */ -DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { - .lock = INIT_LOCAL_LOCK(lock), +struct radix_tree_preload { + unsigned nr; + /* nodes->parent points to next preallocated node */ + struct radix_tree_node *nodes; }; -EXPORT_PER_CPU_SYMBOL_GPL(radix_tree_preloads); +static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, }; static inline struct radix_tree_node *entry_to_node(void *ptr) { @@ -329,14 +332,14 @@ */ gfp_mask &= ~__GFP_ACCOUNT; - local_lock(&radix_tree_preloads.lock); + preempt_disable(); rtp = this_cpu_ptr(&radix_tree_preloads); while (rtp->nr < nr) { - local_unlock(&radix_tree_preloads.lock); + preempt_enable(); node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask); if (node == NULL) goto out; - local_lock(&radix_tree_preloads.lock); + preempt_disable(); rtp = this_cpu_ptr(&radix_tree_preloads); if (rtp->nr < nr) { node->parent = rtp->nodes; @@ -378,7 +381,7 @@ if (gfpflags_allow_blocking(gfp_mask)) return __radix_tree_preload(gfp_mask, RADIX_TREE_PRELOAD_SIZE); /* Preloading doesn't help anything with this gfp mask, skip it */ - local_lock(&radix_tree_preloads.lock); + preempt_disable(); return 0; } EXPORT_SYMBOL(radix_tree_maybe_preload); @@ -1468,7 +1471,7 @@ void idr_preload(gfp_t gfp_mask) { if (__radix_tree_preload(gfp_mask, IDR_PRELOAD_SIZE)) - local_lock(&radix_tree_preloads.lock); + preempt_disable(); } EXPORT_SYMBOL(idr_preload); --- linux-5.19.0.orig/lib/ratelimit.c +++ linux-5.19.0/lib/ratelimit.c @@ -26,10 +26,16 @@ */ int ___ratelimit(struct ratelimit_state *rs, const char *func) { + /* Paired with WRITE_ONCE() in .proc_handler(). + * Changing two values seperately could be inconsistent + * and some message could be lost. (See: net_ratelimit_state). + */ + int interval = READ_ONCE(rs->interval); + int burst = READ_ONCE(rs->burst); unsigned long flags; int ret; - if (!rs->interval) + if (!interval) return 1; /* @@ -44,7 +50,7 @@ if (!rs->begin) rs->begin = jiffies; - if (time_is_before_jiffies(rs->begin + rs->interval)) { + if (time_is_before_jiffies(rs->begin + interval)) { if (rs->missed) { if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE)) { printk_deferred(KERN_WARNING @@ -56,7 +62,7 @@ rs->begin = jiffies; rs->printed = 0; } - if (rs->burst && rs->burst > rs->printed) { + if (burst && burst > rs->printed) { rs->printed++; ret = 1; } else { --- linux-5.19.0.orig/lib/smp_processor_id.c +++ linux-5.19.0/lib/smp_processor_id.c @@ -47,9 +47,9 @@ printk("caller is %pS\n", __builtin_return_address(0)); dump_stack(); - instrumentation_end(); out_enable: + instrumentation_end(); preempt_enable_no_resched_notrace(); out: return this_cpu; --- linux-5.19.0.orig/lib/test_bpf.c +++ linux-5.19.0/lib/test_bpf.c @@ -14733,9 +14733,9 @@ .build_skb = build_test_skb_linear_no_head_frag, .features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_GSO | - NETIF_F_LLTX_BIT | NETIF_F_GRO | + NETIF_F_LLTX | NETIF_F_GRO | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM | - NETIF_F_HW_VLAN_STAG_TX_BIT + NETIF_F_HW_VLAN_STAG_TX } }; --- linux-5.19.0.orig/lib/test_firmware.c +++ linux-5.19.0/lib/test_firmware.c @@ -1491,6 +1491,7 @@ rc = misc_register(&test_fw_misc_device); if (rc) { + __test_firmware_config_free(); kfree(test_fw_config); pr_err("could not register misc device: %d\n", rc); return rc; --- linux-5.19.0.orig/lib/test_hmm.c +++ linux-5.19.0/lib/test_hmm.c @@ -732,7 +732,7 @@ mmap_read_lock(mm); for (addr = start; addr < end; addr = next) { - unsigned long mapped; + unsigned long mapped = 0; int i; if (end < addr + (ARRAY_SIZE(pages) << PAGE_SHIFT)) @@ -741,7 +741,13 @@ next = addr + (ARRAY_SIZE(pages) << PAGE_SHIFT); ret = make_device_exclusive_range(mm, addr, next, pages, NULL); - mapped = dmirror_atomic_map(addr, next, pages, dmirror); + /* + * Do dmirror_atomic_map() iff all pages are marked for + * exclusive access to avoid accessing uninitialized + * fields of pages. + */ + if (ret == (next - addr) >> PAGE_SHIFT) + mapped = dmirror_atomic_map(addr, next, pages, dmirror); for (i = 0; i < ret; i++) { if (pages[i]) { unlock_page(pages[i]); --- linux-5.19.0.orig/lib/test_kasan.c +++ linux-5.19.0/lib/test_kasan.c @@ -131,6 +131,7 @@ ptr = kmalloc(size, GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); + OPTIMIZER_HIDE_VAR(ptr); /* * An unaligned access past the requested kmalloc size. * Only generic KASAN can precisely detect these. @@ -159,6 +160,7 @@ ptr = kmalloc(size, GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); + OPTIMIZER_HIDE_VAR(ptr); KUNIT_EXPECT_KASAN_FAIL(test, *ptr = *(ptr - 1)); kfree(ptr); } @@ -171,6 +173,7 @@ ptr = kmalloc_node(size, GFP_KERNEL, 0); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); + OPTIMIZER_HIDE_VAR(ptr); KUNIT_EXPECT_KASAN_FAIL(test, ptr[0] = ptr[size]); kfree(ptr); } @@ -191,6 +194,7 @@ ptr = kmalloc(size, GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); + OPTIMIZER_HIDE_VAR(ptr); KUNIT_EXPECT_KASAN_FAIL(test, ptr[size + OOB_TAG_OFF] = 0); kfree(ptr); @@ -271,6 +275,7 @@ ptr = kmalloc(size, GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); + OPTIMIZER_HIDE_VAR(ptr); KUNIT_EXPECT_KASAN_FAIL(test, ptr[size] = 0); kfree(ptr); } @@ -410,6 +415,8 @@ ptr2 = kmalloc(sizeof(*ptr2), GFP_KERNEL); KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr2); + OPTIMIZER_HIDE_VAR(ptr1); + OPTIMIZER_HIDE_VAR(ptr2); KUNIT_EXPECT_KASAN_FAIL(test, *ptr1 = *ptr2); kfree(ptr1); kfree(ptr2); @@ -756,6 +763,8 @@ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); real_size = ksize(ptr); + OPTIMIZER_HIDE_VAR(ptr); + /* This access shouldn't trigger a KASAN report. */ ptr[size] = 'x'; @@ -778,6 +787,7 @@ KUNIT_ASSERT_NOT_ERR_OR_NULL(test, ptr); kfree(ptr); + OPTIMIZER_HIDE_VAR(ptr); KUNIT_EXPECT_KASAN_FAIL(test, ksize(ptr)); KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[0]); KUNIT_EXPECT_KASAN_FAIL(test, ((volatile char *)ptr)[size]); --- linux-5.19.0.orig/lib/vdso/Makefile +++ linux-5.19.0/lib/vdso/Makefile @@ -17,6 +17,6 @@ endif quiet_cmd_vdso_check = VDSOCHK $@ - cmd_vdso_check = if $(OBJDUMP) -R $@ | egrep -h "$(ARCH_REL_TYPE_ABS)"; \ + cmd_vdso_check = if $(OBJDUMP) -R $@ | grep -E -h "$(ARCH_REL_TYPE_ABS)"; \ then (echo >&2 "$@: dynamic relocations are not supported"; \ rm -f $@; /bin/false); fi --- linux-5.19.0.orig/mm/Makefile +++ linux-5.19.0/mm/Makefile @@ -54,7 +54,7 @@ mm_init.o percpu.o slab_common.o \ compaction.o vmacache.o \ interval_tree.o list_lru.o workingset.o \ - debug.o gup.o mmap_lock.o $(mmu-y) + prfile.o debug.o gup.o mmap_lock.o $(mmu-y) # Give 'page_alloc' its own module-parameter namespace page-alloc-y := page_alloc.o --- linux-5.19.0.orig/mm/backing-dev.c +++ linux-5.19.0/mm/backing-dev.c @@ -260,10 +260,10 @@ unsigned long timeout; timeout = msecs_to_jiffies(dirty_writeback_interval * 10); - spin_lock_bh(&wb->work_lock); + spin_lock_irq(&wb->work_lock); if (test_bit(WB_registered, &wb->state)) queue_delayed_work(bdi_wq, &wb->dwork, timeout); - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); } static void wb_update_bandwidth_workfn(struct work_struct *work) @@ -334,12 +334,12 @@ static void wb_shutdown(struct bdi_writeback *wb) { /* Make sure nobody queues further work */ - spin_lock_bh(&wb->work_lock); + spin_lock_irq(&wb->work_lock); if (!test_and_clear_bit(WB_registered, &wb->state)) { - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); return; } - spin_unlock_bh(&wb->work_lock); + spin_unlock_irq(&wb->work_lock); cgwb_remove_from_bdi_list(wb); /* --- linux-5.19.0.orig/mm/bootmem_info.c +++ linux-5.19.0/mm/bootmem_info.c @@ -12,6 +12,7 @@ #include #include #include +#include void get_page_bootmem(unsigned long info, struct page *page, unsigned long type) { @@ -33,6 +34,7 @@ ClearPagePrivate(page); set_page_private(page, 0); INIT_LIST_HEAD(&page->lru); + kmemleak_free_part(page_to_virt(page), PAGE_SIZE); free_reserved_page(page); } } --- linux-5.19.0.orig/mm/compaction.c +++ linux-5.19.0/mm/compaction.c @@ -989,28 +989,28 @@ } /* + * Be careful not to clear PageLRU until after we're + * sure the page is not being freed elsewhere -- the + * page release code relies on it. + */ + if (unlikely(!get_page_unless_zero(page))) + goto isolate_fail; + + /* * Migration will fail if an anonymous page is pinned in memory, * so avoid taking lru_lock and isolating it unnecessarily in an * admittedly racy check. */ mapping = page_mapping(page); - if (!mapping && page_count(page) > page_mapcount(page)) - goto isolate_fail; + if (!mapping && (page_count(page) - 1) > total_mapcount(page)) + goto isolate_fail_put; /* * Only allow to migrate anonymous pages in GFP_NOFS context * because those do not depend on fs locks. */ if (!(cc->gfp_mask & __GFP_FS) && mapping) - goto isolate_fail; - - /* - * Be careful not to clear PageLRU until after we're - * sure the page is not being freed elsewhere -- the - * page release code relies on it. - */ - if (unlikely(!get_page_unless_zero(page))) - goto isolate_fail; + goto isolate_fail_put; /* Only take pages on LRU: a check now makes later tests safe */ if (!PageLRU(page)) --- linux-5.19.0.orig/mm/damon/dbgfs.c +++ linux-5.19.0/mm/damon/dbgfs.c @@ -787,6 +787,9 @@ return -ENOENT; new_dir = debugfs_create_dir(name, root); + /* Below check is required for a potential duplicated name case */ + if (IS_ERR(new_dir)) + return PTR_ERR(new_dir); dbgfs_dirs[dbgfs_nr_ctxs] = new_dir; new_ctx = dbgfs_new_ctx(); @@ -848,8 +851,10 @@ static int dbgfs_rm_context(char *name) { struct dentry *root, *dir, **new_dirs; + struct inode *inode; struct damon_ctx **new_ctxs; int i, j; + int ret = 0; if (damon_nr_running_ctxs()) return -EBUSY; @@ -862,16 +867,24 @@ if (!dir) return -ENOENT; + inode = d_inode(dir); + if (!S_ISDIR(inode->i_mode)) { + ret = -EINVAL; + goto out_dput; + } + new_dirs = kmalloc_array(dbgfs_nr_ctxs - 1, sizeof(*dbgfs_dirs), GFP_KERNEL); - if (!new_dirs) - return -ENOMEM; + if (!new_dirs) { + ret = -ENOMEM; + goto out_dput; + } new_ctxs = kmalloc_array(dbgfs_nr_ctxs - 1, sizeof(*dbgfs_ctxs), GFP_KERNEL); if (!new_ctxs) { - kfree(new_dirs); - return -ENOMEM; + ret = -ENOMEM; + goto out_new_dirs; } for (i = 0, j = 0; i < dbgfs_nr_ctxs; i++) { @@ -891,7 +904,13 @@ dbgfs_ctxs = new_ctxs; dbgfs_nr_ctxs--; - return 0; + goto out_dput; + +out_new_dirs: + kfree(new_dirs); +out_dput: + dput(dir); + return ret; } static ssize_t dbgfs_rm_context_write(struct file *file, --- linux-5.19.0.orig/mm/damon/reclaim.c +++ linux-5.19.0/mm/damon/reclaim.c @@ -441,8 +441,10 @@ if (!ctx) return -ENOMEM; - if (damon_select_ops(ctx, DAMON_OPS_PADDR)) + if (damon_select_ops(ctx, DAMON_OPS_PADDR)) { + damon_destroy_ctx(ctx); return -EINVAL; + } ctx->callback.after_wmarks_check = damon_reclaim_after_wmarks_check; ctx->callback.after_aggregation = damon_reclaim_after_aggregation; --- linux-5.19.0.orig/mm/damon/sysfs.c +++ linux-5.19.0/mm/damon/sysfs.c @@ -2181,13 +2181,13 @@ if (!t) return -ENOMEM; + damon_add_target(ctx, t); if (ctx->ops.id == DAMON_OPS_VADDR || ctx->ops.id == DAMON_OPS_FVADDR) { t->pid = find_get_pid(sys_target->pid); if (!t->pid) goto destroy_targets_out; } - damon_add_target(ctx, t); err = damon_sysfs_set_regions(t, sys_target->regions); if (err) goto destroy_targets_out; @@ -2286,12 +2286,54 @@ sysfs_scheme->action, "a, &wmarks); } +static void damon_sysfs_update_scheme(struct damos *scheme, + struct damon_sysfs_scheme *sysfs_scheme) +{ + struct damon_sysfs_access_pattern *access_pattern = + sysfs_scheme->access_pattern; + struct damon_sysfs_quotas *sysfs_quotas = sysfs_scheme->quotas; + struct damon_sysfs_weights *sysfs_weights = sysfs_quotas->weights; + struct damon_sysfs_watermarks *sysfs_wmarks = sysfs_scheme->watermarks; + + scheme->pattern.min_sz_region = access_pattern->sz->min; + scheme->pattern.max_sz_region = access_pattern->sz->max; + scheme->pattern.min_nr_accesses = access_pattern->nr_accesses->min; + scheme->pattern.max_nr_accesses = access_pattern->nr_accesses->max; + scheme->pattern.min_age_region = access_pattern->age->min; + scheme->pattern.max_age_region = access_pattern->age->max; + + scheme->action = sysfs_scheme->action; + + scheme->quota.ms = sysfs_quotas->ms; + scheme->quota.sz = sysfs_quotas->sz; + scheme->quota.reset_interval = sysfs_quotas->reset_interval_ms; + scheme->quota.weight_sz = sysfs_weights->sz; + scheme->quota.weight_nr_accesses = sysfs_weights->nr_accesses; + scheme->quota.weight_age = sysfs_weights->age; + + scheme->wmarks.metric = sysfs_wmarks->metric; + scheme->wmarks.interval = sysfs_wmarks->interval_us; + scheme->wmarks.high = sysfs_wmarks->high; + scheme->wmarks.mid = sysfs_wmarks->mid; + scheme->wmarks.low = sysfs_wmarks->low; +} + static int damon_sysfs_set_schemes(struct damon_ctx *ctx, struct damon_sysfs_schemes *sysfs_schemes) { - int i; + struct damos *scheme, *next; + int i = 0; - for (i = 0; i < sysfs_schemes->nr; i++) { + damon_for_each_scheme_safe(scheme, next, ctx) { + if (i < sysfs_schemes->nr) + damon_sysfs_update_scheme(scheme, + sysfs_schemes->schemes_arr[i]); + else + damon_destroy_scheme(scheme); + i++; + } + + for (; i < sysfs_schemes->nr; i++) { struct damos *scheme, *next; scheme = damon_sysfs_mk_scheme(sysfs_schemes->schemes_arr[i]); @@ -2342,6 +2384,10 @@ damon_for_each_scheme(scheme, ctx) { struct damon_sysfs_stats *sysfs_stats; + /* user could have removed the scheme sysfs dir */ + if (schemes_idx >= sysfs_schemes->nr) + break; + sysfs_stats = sysfs_schemes->schemes_arr[schemes_idx++]->stats; sysfs_stats->nr_tried = scheme->stat.nr_tried; sysfs_stats->sz_tried = scheme->stat.sz_tried; --- linux-5.19.0.orig/mm/damon/vaddr.c +++ linux-5.19.0/mm/damon/vaddr.c @@ -304,6 +304,11 @@ if (pmd_huge(*pmd)) { ptl = pmd_lock(walk->mm, pmd); + if (!pmd_present(*pmd)) { + spin_unlock(ptl); + return 0; + } + if (pmd_huge(*pmd)) { damon_pmdp_mkold(pmd, walk->mm, addr); spin_unlock(ptl); @@ -431,6 +436,11 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE if (pmd_huge(*pmd)) { ptl = pmd_lock(walk->mm, pmd); + if (!pmd_present(*pmd)) { + spin_unlock(ptl); + return 0; + } + if (!pmd_huge(*pmd)) { spin_unlock(ptl); goto regular_page; --- linux-5.19.0.orig/mm/failslab.c +++ linux-5.19.0/mm/failslab.c @@ -16,6 +16,8 @@ bool __should_failslab(struct kmem_cache *s, gfp_t gfpflags) { + int flags = 0; + /* No fault-injection for bootstrap cache */ if (unlikely(s == kmem_cache)) return false; @@ -30,10 +32,16 @@ if (failslab.cache_filter && !(s->flags & SLAB_FAILSLAB)) return false; + /* + * In some cases, it expects to specify __GFP_NOWARN + * to avoid printing any information(not just a warning), + * thus avoiding deadlocks. See commit 6b9dbedbe349 for + * details. + */ if (gfpflags & __GFP_NOWARN) - failslab.attr.no_warn = true; + flags |= FAULT_NOWARN; - return should_fail(&failslab.attr, s->object_size); + return should_fail_ex(&failslab.attr, s->object_size, flags); } static int __init setup_failslab(char *str) --- linux-5.19.0.orig/mm/filemap.c +++ linux-5.19.0/mm/filemap.c @@ -3431,7 +3431,7 @@ vm_fault_t ret = VM_FAULT_LOCKED; sb_start_pagefault(mapping->host->i_sb); - file_update_time(vmf->vma->vm_file); + vma_file_update_time(vmf->vma); folio_lock(folio); if (folio->mapping != mapping) { folio_unlock(folio); @@ -3753,7 +3753,7 @@ unsigned long offset; /* Offset into pagecache page */ unsigned long bytes; /* Bytes to write to page */ size_t copied; /* Bytes copied from user */ - void *fsdata; + void *fsdata = NULL; offset = (pos & (PAGE_SIZE - 1)); bytes = min_t(unsigned long, PAGE_SIZE - offset, --- linux-5.19.0.orig/mm/frontswap.c +++ linux-5.19.0/mm/frontswap.c @@ -125,6 +125,9 @@ * p->frontswap set to something valid to work properly. */ frontswap_map_set(sis, map); + + if (!frontswap_enabled()) + return; frontswap_ops->init(type); } --- linux-5.19.0.orig/mm/gup.c +++ linux-5.19.0/mm/gup.c @@ -478,14 +478,43 @@ return -EEXIST; } -/* - * FOLL_FORCE can write to even unwritable pte's, but only - * after we've gone through a COW cycle and they are dirty. - */ -static inline bool can_follow_write_pte(pte_t pte, unsigned int flags) -{ - return pte_write(pte) || - ((flags & FOLL_FORCE) && (flags & FOLL_COW) && pte_dirty(pte)); +/* FOLL_FORCE can write to even unwritable PTEs in COW mappings. */ +static inline bool can_follow_write_pte(pte_t pte, struct page *page, + struct vm_area_struct *vma, + unsigned int flags) +{ + /* If the pte is writable, we can write to the page. */ + if (pte_write(pte)) + return true; + + /* Maybe FOLL_FORCE is set to override it? */ + if (!(flags & FOLL_FORCE)) + return false; + + /* But FOLL_FORCE has no effect on shared mappings */ + if (vma->vm_flags & (VM_MAYSHARE | VM_SHARED)) + return false; + + /* ... or read-only private ones */ + if (!(vma->vm_flags & VM_MAYWRITE)) + return false; + + /* ... or already writable ones that just need to take a write fault */ + if (vma->vm_flags & VM_WRITE) + return false; + + /* + * See can_change_pte_writable(): we broke COW and could map the page + * writable if we have an exclusive anonymous page ... + */ + if (!page || !PageAnon(page) || !PageAnonExclusive(page)) + return false; + + /* ... and a write-fault isn't required for other reasons. */ + if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && + !(vma->vm_flags & VM_SOFTDIRTY) && !pte_soft_dirty(pte)) + return false; + return !userfaultfd_pte_wp(vma, pte); } static struct page *follow_page_pte(struct vm_area_struct *vma, @@ -502,6 +531,18 @@ if (WARN_ON_ONCE((flags & (FOLL_PIN | FOLL_GET)) == (FOLL_PIN | FOLL_GET))) return ERR_PTR(-EINVAL); + + /* + * Considering PTE level hugetlb, like continuous-PTE hugetlb on + * ARM64 architecture. + */ + if (is_vm_hugetlb_page(vma)) { + page = follow_huge_pmd_pte(vma, address, flags); + if (page) + return page; + return no_page_table(vma, flags); + } + retry: if (unlikely(pmd_bad(*pmd))) return no_page_table(vma, flags); @@ -528,12 +569,19 @@ } if ((flags & FOLL_NUMA) && pte_protnone(pte)) goto no_page; - if ((flags & FOLL_WRITE) && !can_follow_write_pte(pte, flags)) { - pte_unmap_unlock(ptep, ptl); - return NULL; - } page = vm_normal_page(vma, address, pte); + + /* + * We only care about anon pages in can_follow_write_pte() and don't + * have to worry about pte_devmap() because they are never anon. + */ + if ((flags & FOLL_WRITE) && + !can_follow_write_pte(pte, page, vma, flags)) { + page = NULL; + goto out; + } + if (!page && pte_devmap(pte) && (flags & (FOLL_GET | FOLL_PIN))) { /* * Only return device mapping pages in the FOLL_GET or FOLL_PIN @@ -627,7 +675,7 @@ if (pmd_none(pmdval)) return no_page_table(vma, flags); if (pmd_huge(pmdval) && is_vm_hugetlb_page(vma)) { - page = follow_huge_pmd(mm, address, pmd, flags); + page = follow_huge_pmd_pte(vma, address, flags); if (page) return page; return no_page_table(vma, flags); @@ -967,17 +1015,6 @@ return -EBUSY; } - /* - * The VM_FAULT_WRITE bit tells us that do_wp_page has broken COW when - * necessary, even if maybe_mkwrite decided not to set pte_write. We - * can thus safely do subsequent page lookups as if they were reads. - * But only do so when looping for pte_write is futile: in some cases - * userspace may also be wanting to write to the gotten user page, - * which a read fault here might prevent (a readonly page might get - * reCOWed by userspace write). - */ - if ((ret & VM_FAULT_WRITE) && !(vma->vm_flags & VM_WRITE)) - *flags |= FOLL_COW; return 0; } @@ -1003,6 +1040,9 @@ if (!(vm_flags & VM_WRITE)) { if (!(gup_flags & FOLL_FORCE)) return -EFAULT; + /* hugetlb does not support FOLL_FORCE|FOLL_WRITE. */ + if (is_vm_hugetlb_page(vma)) + return -EFAULT; /* * We used to let the write,force case do COW in a * VM_MAYWRITE VM_SHARED !VM_WRITE vma, so ptrace could @@ -1900,7 +1940,7 @@ * Try to move out any movable page before pinning the range. */ if (folio_test_hugetlb(folio)) { - if (!isolate_huge_page(&folio->page, + if (isolate_hugetlb(&folio->page, &movable_page_list)) isolation_error_count++; continue; @@ -2253,8 +2293,28 @@ } #ifdef CONFIG_ARCH_HAS_PTE_SPECIAL -static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, - unsigned int flags, struct page **pages, int *nr) +/* + * Fast-gup relies on pte change detection to avoid concurrent pgtable + * operations. + * + * To pin the page, fast-gup needs to do below in order: + * (1) pin the page (by prefetching pte), then (2) check pte not changed. + * + * For the rest of pgtable operations where pgtable updates can be racy + * with fast-gup, we need to do (1) clear pte, then (2) check whether page + * is pinned. + * + * Above will work for all pte-level operations, including THP split. + * + * For THP collapse, it's a bit more complicated because fast-gup may be + * walking a pgtable page that is being freed (pte is still valid but pmd + * can be cleared already). To avoid race in such condition, we need to + * also check pmd here to make sure pmd doesn't change (corresponds to + * pmdp_collapse_flush() in the THP collapse code path). + */ +static int gup_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr, + unsigned long end, unsigned int flags, + struct page **pages, int *nr) { struct dev_pagemap *pgmap = NULL; int nr_start = *nr, ret = 0; @@ -2300,7 +2360,8 @@ goto pte_unmap; } - if (unlikely(pte_val(pte) != pte_val(*ptep))) { + if (unlikely(pmd_val(pmd) != pmd_val(*pmdp)) || + unlikely(pte_val(pte) != pte_val(*ptep))) { gup_put_folio(folio, 1, flags); goto pte_unmap; } @@ -2347,8 +2408,9 @@ * get_user_pages_fast_only implementation that can pin pages. Thus it's still * useful to have gup_huge_pmd even if we can't operate on ptes. */ -static int gup_pte_range(pmd_t pmd, unsigned long addr, unsigned long end, - unsigned int flags, struct page **pages, int *nr) +static int gup_pte_range(pmd_t pmd, pmd_t *pmdp, unsigned long addr, + unsigned long end, unsigned int flags, + struct page **pages, int *nr) { return 0; } @@ -2672,7 +2734,7 @@ if (!gup_huge_pd(__hugepd(pmd_val(pmd)), addr, PMD_SHIFT, next, flags, pages, nr)) return 0; - } else if (!gup_pte_range(pmd, addr, next, flags, pages, nr)) + } else if (!gup_pte_range(pmd, pmdp, addr, next, flags, pages, nr)) return 0; } while (pmdp++, addr = next, addr != end); @@ -2692,7 +2754,7 @@ next = pud_addr_end(addr, end); if (unlikely(!pud_present(pud))) return 0; - if (unlikely(pud_huge(pud))) { + if (unlikely(pud_huge(pud) || pud_devmap(pud))) { if (!gup_huge_pud(pud, pudp, addr, next, flags, pages, nr)) return 0; --- linux-5.19.0.orig/mm/huge_memory.c +++ linux-5.19.0/mm/huge_memory.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -977,12 +978,6 @@ assert_spin_locked(pmd_lockptr(mm, pmd)); - /* - * When we COW a devmap PMD entry, we split it into PTEs, so we should - * not be in this function with `flags & FOLL_COW` set. - */ - WARN_ONCE(flags & FOLL_COW, "mm: In follow_devmap_pmd with FOLL_COW set"); - /* FOLL_GET and FOLL_PIN are mutually exclusive. */ if (WARN_ON_ONCE((flags & (FOLL_PIN | FOLL_GET)) == (FOLL_PIN | FOLL_GET))) @@ -1348,14 +1343,43 @@ return VM_FAULT_FALLBACK; } -/* - * FOLL_FORCE can write to even unwritable pmd's, but only - * after we've gone through a COW cycle and they are dirty. - */ -static inline bool can_follow_write_pmd(pmd_t pmd, unsigned int flags) +/* FOLL_FORCE can write to even unwritable PMDs in COW mappings. */ +static inline bool can_follow_write_pmd(pmd_t pmd, struct page *page, + struct vm_area_struct *vma, + unsigned int flags) { - return pmd_write(pmd) || - ((flags & FOLL_FORCE) && (flags & FOLL_COW) && pmd_dirty(pmd)); + /* If the pmd is writable, we can write to the page. */ + if (pmd_write(pmd)) + return true; + + /* Maybe FOLL_FORCE is set to override it? */ + if (!(flags & FOLL_FORCE)) + return false; + + /* But FOLL_FORCE has no effect on shared mappings */ + if (vma->vm_flags & (VM_MAYSHARE | VM_SHARED)) + return false; + + /* ... or read-only private ones */ + if (!(vma->vm_flags & VM_MAYWRITE)) + return false; + + /* ... or already writable ones that just need to take a write fault */ + if (vma->vm_flags & VM_WRITE) + return false; + + /* + * See can_change_pte_writable(): we broke COW and could map the page + * writable if we have an exclusive anonymous page ... + */ + if (!page || !PageAnon(page) || !PageAnonExclusive(page)) + return false; + + /* ... and a write-fault isn't required for other reasons. */ + if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && + !(vma->vm_flags & VM_SOFTDIRTY) && !pmd_soft_dirty(pmd)) + return false; + return !userfaultfd_huge_pmd_wp(vma, pmd); } struct page *follow_trans_huge_pmd(struct vm_area_struct *vma, @@ -1364,12 +1388,16 @@ unsigned int flags) { struct mm_struct *mm = vma->vm_mm; - struct page *page = NULL; + struct page *page; assert_spin_locked(pmd_lockptr(mm, pmd)); - if (flags & FOLL_WRITE && !can_follow_write_pmd(*pmd, flags)) - goto out; + page = pmd_page(*pmd); + VM_BUG_ON_PAGE(!PageHead(page) && !is_zone_device_page(page), page); + + if ((flags & FOLL_WRITE) && + !can_follow_write_pmd(*pmd, page, vma, flags)) + return NULL; /* Avoid dumping huge zero page */ if ((flags & FOLL_DUMP) && is_huge_zero_pmd(*pmd)) @@ -1377,10 +1405,7 @@ /* Full NUMA hinting faults to serialise migration in fault paths */ if ((flags & FOLL_NUMA) && pmd_protnone(*pmd)) - goto out; - - page = pmd_page(*pmd); - VM_BUG_ON_PAGE(!PageHead(page) && !is_zone_device_page(page), page); + return NULL; if (!pmd_write(*pmd) && gup_must_unshare(flags, page)) return ERR_PTR(-EMLINK); @@ -1397,7 +1422,6 @@ page += (addr & ~HPAGE_PMD_MASK) >> PAGE_SHIFT; VM_BUG_ON_PAGE(!PageCompound(page) && !is_zone_device_page(page), page); -out: return page; } @@ -2377,7 +2401,16 @@ page_tail); page_tail->mapping = head->mapping; page_tail->index = head->index + tail; - page_tail->private = 0; + + /* + * page->private should not be set in tail pages with the exception + * of swap cache pages that store the swp_entry_t in tail pages. + * Fix up and warn once if private is unexpectedly set. + */ + if (!folio_test_swapcache(page_folio(head))) { + VM_WARN_ON_ONCE_PAGE(page_tail->private != 0, head); + page_tail->private = 0; + } /* Page flags must be visible before we make the page non-compound. */ smp_wmb(); @@ -2440,11 +2473,15 @@ __split_huge_page_tail(head, i, lruvec, list); /* Some pages can be beyond EOF: drop them from page cache */ if (head[i].index >= end) { - ClearPageDirty(head + i); - __delete_from_page_cache(head + i, NULL); + struct folio *tail = page_folio(head + i); + if (shmem_mapping(head->mapping)) shmem_uncharge(head->mapping->host, 1); - put_page(head + i); + else if (folio_test_clear_dirty(tail)) + folio_account_cleaned(tail, + inode_to_wb(folio->mapping->host)); + __filemap_remove_folio(tail, NULL); + folio_put(tail); } else if (!PageAnon(page)) { __xa_store(&head->mapping->i_pages, head[i].index, head + i, 0); --- linux-5.19.0.orig/mm/hugetlb.c +++ linux-5.19.0/mm/hugetlb.c @@ -2766,8 +2766,7 @@ * Fail with -EBUSY if not possible. */ spin_unlock_irq(&hugetlb_lock); - if (!isolate_huge_page(old_page, list)) - ret = -EBUSY; + ret = isolate_hugetlb(old_page, list); spin_lock_irq(&hugetlb_lock); goto free_new; } else if (!HPageFreed(old_page)) { @@ -2843,7 +2842,7 @@ if (hstate_is_gigantic(h)) return -ENOMEM; - if (page_count(head) && isolate_huge_page(head, list)) + if (page_count(head) && !isolate_hugetlb(head, list)) ret = 0; else if (!page_count(head)) ret = alloc_and_dissolve_huge_page(h, head, list); @@ -2925,11 +2924,11 @@ page = alloc_buddy_huge_page_with_mpol(h, vma, addr); if (!page) goto out_uncharge_cgroup; + spin_lock_irq(&hugetlb_lock); if (!avoid_reserve && vma_has_reserves(vma, gbl_chg)) { SetHPageRestoreReserve(page); h->resv_huge_pages--; } - spin_lock_irq(&hugetlb_lock); list_add(&page->lru, &h->hugepage_activelist); /* Fall through */ } @@ -3419,6 +3418,7 @@ { int i, nid = page_to_nid(page); struct hstate *target_hstate; + struct page *subpage; int rc = 0; target_hstate = size_to_hstate(PAGE_SIZE << h->demote_order); @@ -3452,15 +3452,16 @@ mutex_lock(&target_hstate->resize_lock); for (i = 0; i < pages_per_huge_page(h); i += pages_per_huge_page(target_hstate)) { + subpage = nth_page(page, i); if (hstate_is_gigantic(target_hstate)) - prep_compound_gigantic_page_for_demote(page + i, + prep_compound_gigantic_page_for_demote(subpage, target_hstate->order); else - prep_compound_page(page + i, target_hstate->order); - set_page_private(page + i, 0); - set_page_refcounted(page + i); - prep_new_huge_page(target_hstate, page + i, nid); - put_page(page + i); + prep_compound_page(subpage, target_hstate->order); + set_page_private(subpage, 0); + set_page_refcounted(subpage); + prep_new_huge_page(target_hstate, subpage, nid); + put_page(subpage); } mutex_unlock(&target_hstate->resize_lock); @@ -5049,6 +5050,7 @@ * unmapped and its refcount is dropped, so just clear pte here. */ if (unlikely(!pte_present(pte))) { +#ifdef CONFIG_PTE_MARKER_UFFD_WP /* * If the pte was wr-protected by uffd-wp in any of the * swap forms, meanwhile the caller does not want to @@ -5060,6 +5062,7 @@ set_huge_pte_at(mm, address, ptep, make_pte_marker(PTE_MARKER_UFFD_WP)); else +#endif huge_pte_clear(mm, address, ptep, sz); spin_unlock(ptl); continue; @@ -5088,11 +5091,13 @@ tlb_remove_huge_tlb_entry(h, tlb, ptep, address); if (huge_pte_dirty(pte)) set_page_dirty(page); +#ifdef CONFIG_PTE_MARKER_UFFD_WP /* Leave a uffd-wp pte marker if needed */ if (huge_pte_uffd_wp(pte) && !(zap_flags & ZAP_FLAG_DROP_MARKER)) set_huge_pte_at(mm, address, ptep, make_pte_marker(PTE_MARKER_UFFD_WP)); +#endif hugetlb_count_sub(pages_per_huge_page(h), mm); page_remove_rmap(page, vma, true); @@ -5131,17 +5136,20 @@ { __unmap_hugepage_range(tlb, vma, start, end, ref_page, zap_flags); - /* - * Clear this flag so that x86's huge_pmd_share page_table_shareable - * test will fail on a vma being torn down, and not grab a page table - * on its way out. We're lucky that the flag has such an appropriate - * name, and can in fact be safely cleared here. We could clear it - * before the __unmap_hugepage_range above, but all that's necessary - * is to clear it before releasing the i_mmap_rwsem. This works - * because in the context this is called, the VMA is about to be - * destroyed and the i_mmap_rwsem is held. - */ - vma->vm_flags &= ~VM_MAYSHARE; + if (zap_flags & ZAP_FLAG_UNMAP) { /* final unmap */ + /* + * Clear this flag so that x86's huge_pmd_share + * page_table_shareable test will fail on a vma being torn + * down, and not grab a page table on its way out. We're lucky + * that the flag has such an appropriate name, and can in fact + * be safely cleared here. We could clear it before the + * __unmap_hugepage_range above, but all that's necessary + * is to clear it before releasing the i_mmap_rwsem. This works + * because in the context this is called, the VMA is about to + * be destroyed and the i_mmap_rwsem is held. + */ + vma->vm_flags &= ~VM_MAYSHARE; + } } void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, @@ -5233,6 +5241,21 @@ VM_BUG_ON(unshare && (flags & FOLL_WRITE)); VM_BUG_ON(!unshare && !(flags & FOLL_WRITE)); + /* + * hugetlb does not support FOLL_FORCE-style write faults that keep the + * PTE mapped R/O such as maybe_mkwrite() would do. + */ + if (WARN_ON_ONCE(!unshare && !(vma->vm_flags & VM_WRITE))) + return VM_FAULT_SIGSEGV; + + /* Let's take out MAP_SHARED mappings first. */ + if (vma->vm_flags & VM_MAYSHARE) { + if (unlikely(unshare)) + return 0; + set_huge_ptep_writable(vma, haddr, ptep); + return 0; + } + pte = huge_ptep_get(ptep); old_page = pte_page(pte); @@ -5447,7 +5470,6 @@ unsigned long addr, unsigned long reason) { - vm_fault_t ret; u32 hash; struct vm_fault vmf = { .vma = vma, @@ -5465,18 +5487,14 @@ }; /* - * hugetlb_fault_mutex and i_mmap_rwsem must be - * dropped before handling userfault. Reacquire - * after handling fault to make calling code simpler. + * vma_lock and hugetlb_fault_mutex must be dropped before handling + * userfault. Also mmap_lock will be dropped during handling + * userfault, any vma operation should be careful from here. */ hash = hugetlb_fault_mutex_hash(mapping, idx); mutex_unlock(&hugetlb_fault_mutex_table[hash]); i_mmap_unlock_read(mapping); - ret = handle_userfault(&vmf, reason); - i_mmap_lock_read(mapping); - mutex_lock(&hugetlb_fault_mutex_table[hash]); - - return ret; + return handle_userfault(&vmf, reason); } static vm_fault_t hugetlb_no_page(struct mm_struct *mm, @@ -5494,6 +5512,7 @@ spinlock_t *ptl; unsigned long haddr = address & huge_page_mask(h); bool new_page, new_pagecache_page = false; + u32 hash = hugetlb_fault_mutex_hash(mapping, idx); /* * Currently, we are forced to kill the process in the event the @@ -5504,7 +5523,7 @@ if (is_vma_resv_set(vma, HPAGE_RESV_UNMAPPED)) { pr_warn_ratelimited("PID %d killed due to inadequate hugepage pool\n", current->pid); - return ret; + goto out; } /* @@ -5521,12 +5540,10 @@ page = find_lock_page(mapping, idx); if (!page) { /* Check for page in userfault range */ - if (userfaultfd_missing(vma)) { - ret = hugetlb_handle_userfault(vma, mapping, idx, + if (userfaultfd_missing(vma)) + return hugetlb_handle_userfault(vma, mapping, idx, flags, haddr, address, VM_UFFD_MISSING); - goto out; - } page = alloc_huge_page(vma, haddr, 0); if (IS_ERR(page)) { @@ -5586,10 +5603,9 @@ if (userfaultfd_minor(vma)) { unlock_page(page); put_page(page); - ret = hugetlb_handle_userfault(vma, mapping, idx, + return hugetlb_handle_userfault(vma, mapping, idx, flags, haddr, address, VM_UFFD_MINOR); - goto out; } } @@ -5647,6 +5663,8 @@ unlock_page(page); out: + mutex_unlock(&hugetlb_fault_mutex_table[hash]); + i_mmap_unlock_read(mapping); return ret; backout: @@ -5708,7 +5726,7 @@ */ entry = huge_ptep_get(ptep); if (unlikely(is_hugetlb_entry_migration(entry))) { - migration_entry_wait_huge(vma, mm, ptep); + migration_entry_wait_huge(vma, ptep); return 0; } else if (unlikely(is_hugetlb_entry_hwpoisoned(entry))) return VM_FAULT_HWPOISON_LARGE | @@ -5745,11 +5763,13 @@ entry = huge_ptep_get(ptep); /* PTE markers should be handled the same way as none pte */ - if (huge_pte_none_mostly(entry)) { - ret = hugetlb_no_page(mm, vma, mapping, idx, address, ptep, + if (huge_pte_none_mostly(entry)) + /* + * hugetlb_no_page will drop vma lock and hugetlb fault + * mutex internally, which make us return immediately. + */ + return hugetlb_no_page(mm, vma, mapping, idx, address, ptep, entry, flags); - goto out_mutex; - } ret = 0; @@ -5767,12 +5787,11 @@ * If we are going to COW/unshare the mapping later, we examine the * pending reservations for this page now. This will ensure that any * allocations necessary to record that reservation occur outside the - * spinlock. For private mappings, we also lookup the pagecache - * page now as it is used to determine if a reservation has been - * consumed. + * spinlock. Also lookup the pagecache page now as it is used to + * determine if a reservation has been consumed. */ if ((flags & (FAULT_FLAG_WRITE|FAULT_FLAG_UNSHARE)) && - !huge_pte_write(entry)) { + !(vma->vm_flags & VM_MAYSHARE) && !huge_pte_write(entry)) { if (vma_needs_reservation(h, vma, haddr) < 0) { ret = VM_FAULT_OOM; goto out_mutex; @@ -5780,9 +5799,7 @@ /* Just decrements count, does not deallocate */ vma_end_reservation(h, vma, haddr); - if (!(vma->vm_flags & VM_MAYSHARE)) - pagecache_page = hugetlbfs_pagecache_page(h, - vma, haddr); + pagecache_page = hugetlbfs_pagecache_page(h, vma, haddr); } ptl = huge_pte_lock(h, mm, ptep); @@ -5992,6 +6009,10 @@ ptl = huge_pte_lockptr(h, dst_mm, dst_pte); spin_lock(ptl); + ret = -EIO; + if (PageHWPoison(page)) + goto out_release_unlock; + /* * Recheck the i_size after holding PT lock to make sure not * to leave any page mapped (as page_mapped()) beyond the end @@ -6015,7 +6036,7 @@ if (!huge_pte_none_mostly(huge_ptep_get(dst_pte))) goto out_release_unlock; - if (vm_shared) { + if (page_in_pagecache) { page_dup_file_rmap(page, true); } else { ClearHPageRestoreReserve(page); @@ -6893,12 +6914,13 @@ } struct page * __weak -follow_huge_pmd(struct mm_struct *mm, unsigned long address, - pmd_t *pmd, int flags) +follow_huge_pmd_pte(struct vm_area_struct *vma, unsigned long address, int flags) { + struct hstate *h = hstate_vma(vma); + struct mm_struct *mm = vma->vm_mm; struct page *page = NULL; spinlock_t *ptl; - pte_t pte; + pte_t *ptep, pte; /* * FOLL_PIN is not supported for follow_page(). Ordinary GUP goes via @@ -6908,17 +6930,15 @@ return NULL; retry: - ptl = pmd_lockptr(mm, pmd); - spin_lock(ptl); - /* - * make sure that the address range covered by this pmd is not - * unmapped from other threads. - */ - if (!pmd_huge(*pmd)) - goto out; - pte = huge_ptep_get((pte_t *)pmd); + ptep = huge_pte_offset(mm, address, huge_page_size(h)); + if (!ptep) + return NULL; + + ptl = huge_pte_lock(h, mm, ptep); + pte = huge_ptep_get(ptep); if (pte_present(pte)) { - page = pmd_page(*pmd) + ((address & ~PMD_MASK) >> PAGE_SHIFT); + page = pte_page(pte) + + ((address & ~huge_page_mask(h)) >> PAGE_SHIFT); /* * try_grab_page() should always succeed here, because: a) we * hold the pmd (ptl) lock, and b) we've just checked that the @@ -6934,7 +6954,7 @@ } else { if (is_hugetlb_entry_migration(pte)) { spin_unlock(ptl); - __migration_entry_wait(mm, (pte_t *)pmd, ptl); + __migration_entry_wait_huge(ptep, ptl); goto retry; } /* @@ -6966,15 +6986,15 @@ return pte_page(*(pte_t *)pgd) + ((address & ~PGDIR_MASK) >> PAGE_SHIFT); } -bool isolate_huge_page(struct page *page, struct list_head *list) +int isolate_hugetlb(struct page *page, struct list_head *list) { - bool ret = true; + int ret = 0; spin_lock_irq(&hugetlb_lock); if (!PageHeadHuge(page) || !HPageMigratable(page) || !get_page_unless_zero(page)) { - ret = false; + ret = -EBUSY; goto unlock; } ClearHPageMigratable(page); --- linux-5.19.0.orig/mm/hugetlb_cgroup.c +++ linux-5.19.0/mm/hugetlb_cgroup.c @@ -772,6 +772,7 @@ /* Add the numa stat file */ cft = &h->cgroup_files_dfl[6]; snprintf(cft->name, MAX_CFTYPE_NAME, "%s.numa_stat", buf); + cft->private = MEMFILE_PRIVATE(idx, 0); cft->seq_show = hugetlb_cgroup_read_numa_stat; cft->flags = CFTYPE_NOT_ON_ROOT; --- linux-5.19.0.orig/mm/kasan/hw_tags.c +++ linux-5.19.0/mm/kasan/hw_tags.c @@ -257,27 +257,37 @@ } } +static void init_vmalloc_pages(const void *start, unsigned long size) +{ + const void *addr; + + for (addr = start; addr < start + size; addr += PAGE_SIZE) { + struct page *page = virt_to_page(addr); + + clear_highpage_kasan_tagged(page); + } +} + void *__kasan_unpoison_vmalloc(const void *start, unsigned long size, kasan_vmalloc_flags_t flags) { u8 tag; unsigned long redzone_start, redzone_size; - if (!kasan_vmalloc_enabled()) - return (void *)start; - - if (!is_vmalloc_or_module_addr(start)) + if (!kasan_vmalloc_enabled() || !is_vmalloc_or_module_addr(start)) { + if (flags & KASAN_VMALLOC_INIT) + init_vmalloc_pages(start, size); return (void *)start; + } /* - * Skip unpoisoning and assigning a pointer tag for non-VM_ALLOC - * mappings as: + * Don't tag non-VM_ALLOC mappings, as: * * 1. Unlike the software KASAN modes, hardware tag-based KASAN only * supports tagging physical memory. Therefore, it can only tag a * single mapping of normal physical pages. * 2. Hardware tag-based KASAN can only tag memory mapped with special - * mapping protection bits, see arch_vmalloc_pgprot_modify(). + * mapping protection bits, see arch_vmap_pgprot_tagged(). * As non-VM_ALLOC mappings can be mapped outside of vmalloc code, * providing these bits would require tracking all non-VM_ALLOC * mappers. @@ -289,15 +299,19 @@ * * For non-VM_ALLOC allocations, page_alloc memory is tagged as usual. */ - if (!(flags & KASAN_VMALLOC_VM_ALLOC)) + if (!(flags & KASAN_VMALLOC_VM_ALLOC)) { + WARN_ON(flags & KASAN_VMALLOC_INIT); return (void *)start; + } /* * Don't tag executable memory. * The kernel doesn't tolerate having the PC register tagged. */ - if (!(flags & KASAN_VMALLOC_PROT_NORMAL)) + if (!(flags & KASAN_VMALLOC_PROT_NORMAL)) { + WARN_ON(flags & KASAN_VMALLOC_INIT); return (void *)start; + } tag = kasan_random_tag(); start = set_tag(start, tag); --- linux-5.19.0.orig/mm/kfence/core.c +++ linux-5.19.0/mm/kfence/core.c @@ -603,6 +603,14 @@ addr += 2 * PAGE_SIZE; } + /* + * The pool is live and will never be deallocated from this point on. + * Remove the pool object from the kmemleak object tree, as it would + * otherwise overlap with allocations returned by kfence_alloc(), which + * are registered with kmemleak through the slab post-alloc hook. + */ + kmemleak_free(__kfence_pool); + return 0; } @@ -615,16 +623,8 @@ addr = kfence_init_pool(); - if (!addr) { - /* - * The pool is live and will never be deallocated from this point on. - * Ignore the pool object from the kmemleak phys object tree, as it would - * otherwise overlap with allocations returned by kfence_alloc(), which - * are registered with kmemleak through the slab post-alloc hook. - */ - kmemleak_ignore_phys(__pa(__kfence_pool)); + if (!addr) return true; - } /* * Only release unprotected pages, and do not try to go back and change --- linux-5.19.0.orig/mm/khugepaged.c +++ linux-5.19.0/mm/khugepaged.c @@ -1121,14 +1121,17 @@ pmd_ptl = pmd_lock(mm, pmd); /* probably unnecessary */ /* - * After this gup_fast can't run anymore. This also removes - * any huge TLB entry from the CPU so we won't allow - * huge and small TLB entries for the same virtual address - * to avoid the risk of CPU bugs in that area. + * This removes any huge TLB entry from the CPU so we won't allow + * huge and small TLB entries for the same virtual address to + * avoid the risk of CPU bugs in that area. + * + * Parallel fast GUP is fine since fast GUP will back off when + * it detects PMD is changed. */ _pmd = pmdp_collapse_flush(vma, address, pmd); spin_unlock(pmd_ptl); mmu_notifier_invalidate_range_end(&range); + tlb_remove_table_sync_one(); spin_lock(pte_ptl); isolated = __collapse_huge_page_isolate(vma, address, pte, @@ -1397,16 +1400,43 @@ return 0; } +/* + * A note about locking: + * Trying to take the page table spinlocks would be useless here because those + * are only used to synchronize: + * + * - modifying terminal entries (ones that point to a data page, not to another + * page table) + * - installing *new* non-terminal entries + * + * Instead, we need roughly the same kind of protection as free_pgtables() or + * mm_take_all_locks() (but only for a single VMA): + * The mmap lock together with this VMA's rmap locks covers all paths towards + * the page table entries we're messing with here, except for hardware page + * table walks and lockless_pages_from_mm(). + */ static void collapse_and_free_pmd(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, pmd_t *pmdp) { - spinlock_t *ptl; pmd_t pmd; + struct mmu_notifier_range range; mmap_assert_write_locked(mm); - ptl = pmd_lock(vma->vm_mm, pmdp); + if (vma->vm_file) + lockdep_assert_held_write(&vma->vm_file->f_mapping->i_mmap_rwsem); + /* + * All anon_vmas attached to the VMA have the same root and are + * therefore locked by the same lock. + */ + if (vma->anon_vma) + lockdep_assert_held_write(&vma->anon_vma->root->rwsem); + + mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, NULL, mm, addr, + addr + HPAGE_PMD_SIZE); + mmu_notifier_invalidate_range_start(&range); pmd = pmdp_collapse_flush(vma, addr, pmdp); - spin_unlock(ptl); + tlb_remove_table_sync_one(); + mmu_notifier_invalidate_range_end(&range); mm_dec_nr_ptes(mm); page_table_check_pte_clear_range(mm, addr, pmd); pte_free(mm, pmd_pgtable(pmd)); @@ -1447,6 +1477,14 @@ if (!hugepage_vma_check(vma, vma->vm_flags | VM_HUGEPAGE)) return; + /* + * Symmetry with retract_page_tables(): Exclude MAP_PRIVATE mappings + * that got written to. Without this, we'd have to also lock the + * anon_vma if one exists. + */ + if (vma->anon_vma) + return; + /* Keep pmd pgtable for uffd-wp; see comment in retract_page_tables() */ if (userfaultfd_wp(vma)) return; @@ -1463,6 +1501,20 @@ if (!pmd) goto drop_hpage; + /* + * We need to lock the mapping so that from here on, only GUP-fast and + * hardware page walks can access the parts of the page tables that + * we're operating on. + * See collapse_and_free_pmd(). + */ + i_mmap_lock_write(vma->vm_file->f_mapping); + + /* + * This spinlock should be unnecessary: Nobody else should be accessing + * the page tables under spinlock protection here, only + * lockless_pages_from_mm() and the hardware page walker can access page + * tables while all the high-level locks are held in write mode. + */ start_pte = pte_offset_map_lock(mm, pmd, haddr, &ptl); /* step 1: check all mapped PTEs are to the right huge page */ @@ -1510,6 +1562,9 @@ /* step 4: collapse pmd */ collapse_and_free_pmd(mm, vma, haddr, pmd); + + i_mmap_unlock_write(vma->vm_file->f_mapping); + drop_hpage: unlock_page(hpage); put_page(hpage); @@ -1517,6 +1572,7 @@ abort: pte_unmap_unlock(start_pte, ptl); + i_mmap_unlock_write(vma->vm_file->f_mapping); goto drop_hpage; } @@ -1565,7 +1621,8 @@ * An alternative would be drop the check, but check that page * table is clear before calling pmdp_collapse_flush() under * ptl. It has higher chance to recover THP for the VMA, but - * has higher cost too. + * has higher cost too. It would also probably require locking + * the anon_vma. */ if (vma->anon_vma) continue; --- linux-5.19.0.orig/mm/kmemleak.c +++ linux-5.19.0/mm/kmemleak.c @@ -1132,7 +1132,7 @@ void __ref kmemleak_alloc_phys(phys_addr_t phys, size_t size, int min_count, gfp_t gfp) { - if (PHYS_PFN(phys) >= min_low_pfn && PHYS_PFN(phys) < max_low_pfn) + if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn) kmemleak_alloc(__va(phys), size, min_count, gfp); } EXPORT_SYMBOL(kmemleak_alloc_phys); @@ -1146,7 +1146,7 @@ */ void __ref kmemleak_free_part_phys(phys_addr_t phys, size_t size) { - if (PHYS_PFN(phys) >= min_low_pfn && PHYS_PFN(phys) < max_low_pfn) + if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn) kmemleak_free_part(__va(phys), size); } EXPORT_SYMBOL(kmemleak_free_part_phys); @@ -1158,7 +1158,7 @@ */ void __ref kmemleak_not_leak_phys(phys_addr_t phys) { - if (PHYS_PFN(phys) >= min_low_pfn && PHYS_PFN(phys) < max_low_pfn) + if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn) kmemleak_not_leak(__va(phys)); } EXPORT_SYMBOL(kmemleak_not_leak_phys); @@ -1170,7 +1170,7 @@ */ void __ref kmemleak_ignore_phys(phys_addr_t phys) { - if (PHYS_PFN(phys) >= min_low_pfn && PHYS_PFN(phys) < max_low_pfn) + if (!IS_ENABLED(CONFIG_HIGHMEM) || PHYS_PFN(phys) < max_low_pfn) kmemleak_ignore(__va(phys)); } EXPORT_SYMBOL(kmemleak_ignore_phys); --- linux-5.19.0.orig/mm/ksm.c +++ linux-5.19.0/mm/ksm.c @@ -2427,9 +2427,14 @@ if (ksmd_should_run()) { sleep_ms = READ_ONCE(ksm_thread_sleep_millisecs); - wait_event_interruptible_timeout(ksm_iter_wait, - sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs), - msecs_to_jiffies(sleep_ms)); + if (sleep_ms >= 1000) + wait_event_interruptible_timeout(ksm_iter_wait, + sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs), + msecs_to_jiffies(round_jiffies_relative(sleep_ms))); + else + wait_event_interruptible_timeout(ksm_iter_wait, + sleep_ms != READ_ONCE(ksm_thread_sleep_millisecs), + msecs_to_jiffies(sleep_ms)); } else { wait_event_freezable(ksm_thread_wait, ksmd_should_run() || kthread_should_stop()); --- linux-5.19.0.orig/mm/maccess.c +++ linux-5.19.0/mm/maccess.c @@ -97,7 +97,7 @@ return src - unsafe_addr; Efault: pagefault_enable(); - dst[-1] = '\0'; + dst[0] = '\0'; return -EFAULT; } --- linux-5.19.0.orig/mm/madvise.c +++ linux-5.19.0/mm/madvise.c @@ -451,8 +451,11 @@ continue; } - /* Do not interfere with other mappings of this page */ - if (page_mapcount(page) != 1) + /* + * Do not interfere with other mappings of this page and + * non-LRU page. + */ + if (!PageLRU(page) || page_mapcount(page) != 1) continue; VM_BUG_ON_PAGE(PageTransCompound(page), page); @@ -767,8 +770,8 @@ * Application no longer needs these pages. If the pages are dirty, * it's OK to just throw them away. The app will be more careful about * data it wants to keep. Be sure to free swap resources too. The - * zap_page_range call sets things up for shrink_active_list to actually free - * these pages later if no one else has touched them in the meantime, + * zap_page_range_single call sets things up for shrink_active_list to actually + * free these pages later if no one else has touched them in the meantime, * although we could add these pages to a global reuse list for * shrink_active_list to pick up before reclaiming other pages. * @@ -785,7 +788,7 @@ static long madvise_dontneed_single_vma(struct vm_area_struct *vma, unsigned long start, unsigned long end) { - zap_page_range(vma, start, end - start); + zap_page_range_single(vma, start, end - start, NULL); return 0; } @@ -808,7 +811,14 @@ if (start & ~huge_page_mask(hstate_vma(vma))) return false; - *end = ALIGN(*end, huge_page_size(hstate_vma(vma))); + /* + * Madvise callers expect the length to be rounded up to PAGE_SIZE + * boundaries, and may be unaware that this VMA uses huge pages. + * Avoid unexpected data loss by rounding down the number of + * huge pages freed. + */ + *end = ALIGN_DOWN(*end, huge_page_size(hstate_vma(vma))); + return true; } @@ -823,6 +833,9 @@ if (!madvise_dontneed_free_valid_vma(vma, start, &end, behavior)) return -EINVAL; + if (start == end) + return 0; + if (!userfaultfd_remove(vma, start, end)) { *prev = NULL; /* mmap_lock has been dropped, prev is stale */ --- linux-5.19.0.orig/mm/memcontrol.c +++ linux-5.19.0/mm/memcontrol.c @@ -2930,7 +2930,7 @@ { struct obj_cgroup *objcg; - if (!memcg_kmem_enabled() || memcg_kmem_bypass()) + if (!memcg_kmem_enabled()) return NULL; if (PageMemcgKmem(page)) { @@ -4730,6 +4730,7 @@ unsigned int efd, cfd; struct fd efile; struct fd cfile; + struct dentry *cdentry; const char *name; char *endp; int ret; @@ -4784,6 +4785,16 @@ goto out_put_cfile; /* + * The control file must be a regular cgroup1 file. As a regular cgroup + * file can't be renamed, it's safe to access its name afterwards. + */ + cdentry = cfile.file->f_path.dentry; + if (cdentry->d_sb->s_type != &cgroup_fs_type || !d_is_reg(cdentry)) { + ret = -EINVAL; + goto out_put_cfile; + } + + /* * Determine the event callbacks and set them in @event. This used * to be done via struct cftype but cgroup core no longer knows * about these events. The following is crude but the whole thing @@ -4791,7 +4802,7 @@ * * DO NOT ADD NEW FILES. */ - name = cfile.file->f_path.dentry->d_name.name; + name = cdentry->d_name.name; if (!strcmp(name, "memory.usage_in_bytes")) { event->register_event = mem_cgroup_usage_register_event; @@ -4815,7 +4826,7 @@ * automatically removed on cgroup destruction but the removal is * asynchronous, so take an extra ref on @css. */ - cfile_css = css_tryget_online_from_dir(cfile.file->f_path.dentry->d_parent, + cfile_css = css_tryget_online_from_dir(cdentry->d_parent, &memory_cgrp_subsys); ret = -EINVAL; if (IS_ERR(cfile_css)) --- linux-5.19.0.orig/mm/memory-failure.c +++ linux-5.19.0/mm/memory-failure.c @@ -697,6 +697,9 @@ }; priv.tk.tsk = p; + if (!p->mm) + return -EFAULT; + mmap_read_lock(p->mm); ret = walk_page_range(p->mm, 0, TASK_SIZE, &hwp_walk_ops, (void *)&priv); @@ -1031,6 +1034,7 @@ int res; struct page *hpage = compound_head(p); struct address_space *mapping; + bool extra_pins = false; if (!PageHuge(hpage)) return MF_DELAYED; @@ -1038,6 +1042,8 @@ mapping = page_mapping(hpage); if (mapping) { res = truncate_error_page(hpage, page_to_pfn(p), mapping); + /* The page is kept in page cache. */ + extra_pins = true; unlock_page(hpage); } else { res = MF_FAILED; @@ -1054,7 +1060,7 @@ } } - if (has_extra_refcount(ps, p, false)) + if (has_extra_refcount(ps, p, extra_pins)) res = MF_FAILED; return res; @@ -2178,7 +2184,7 @@ bool lru = PageLRU(page); if (PageHuge(page)) { - isolated = isolate_huge_page(page, pagelist); + isolated = !isolate_hugetlb(page, pagelist); } else { if (lru) isolated = !isolate_lru_page(page); --- linux-5.19.0.orig/mm/memory.c +++ linux-5.19.0/mm/memory.c @@ -1333,15 +1333,6 @@ return ret; } -/* - * Parameter block passed down to zap_pte_range in exceptional cases. - */ -struct zap_details { - struct folio *single_folio; /* Locked folio to be unmapped */ - bool even_cows; /* Zap COWed private pages too? */ - zap_flags_t zap_flags; /* Extra flags for zapping */ -}; - /* Whether we should zap all COWed (private) pages too */ static inline bool should_zap_cows(struct zap_details *details) { @@ -1385,10 +1376,12 @@ unsigned long addr, pte_t *pte, struct zap_details *details, pte_t pteval) { +#ifdef CONFIG_PTE_MARKER_UFFD_WP if (zap_drop_file_uffd_wp(details)) return; pte_install_uffd_wp_if_needed(vma, addr, pte, pteval); +#endif } static unsigned long zap_pte_range(struct mmu_gather *tlb, @@ -1711,7 +1704,7 @@ { struct mmu_notifier_range range; struct zap_details details = { - .zap_flags = ZAP_FLAG_DROP_MARKER, + .zap_flags = ZAP_FLAG_DROP_MARKER | ZAP_FLAG_UNMAP, /* Careful - we need to zap private pages too! */ .even_cows = true, }; @@ -1749,6 +1742,7 @@ mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); } +EXPORT_SYMBOL(zap_page_range); /** * zap_page_range_single - remove user pages in a given range @@ -1759,19 +1753,27 @@ * * The range must fit into one VMA. */ -static void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, +void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, unsigned long size, struct zap_details *details) { + const unsigned long end = address + size; struct mmu_notifier_range range; struct mmu_gather tlb; lru_add_drain(); mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, vma->vm_mm, - address, address + size); + address, end); + if (is_vm_hugetlb_page(vma)) + adjust_range_if_pmd_sharing_possible(vma, &range.start, + &range.end); tlb_gather_mmu(&tlb, vma->vm_mm); update_hiwater_rss(vma->vm_mm); mmu_notifier_invalidate_range_start(&range); - unmap_single_vma(&tlb, vma, address, range.end, details); + /* + * unmap 'address-end' not 'range.start-range.end' as range + * could have been expanded for hugetlb pmd sharing. + */ + unmap_single_vma(&tlb, vma, address, end, details); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); } @@ -4378,14 +4380,20 @@ vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl); - ret = 0; + /* Re-check under ptl */ - if (likely(!vmf_pte_changed(vmf))) + if (likely(!vmf_pte_changed(vmf))) { do_set_pte(vmf, page, vmf->address); - else + + /* no need to invalidate: a not-present page won't be cached */ + update_mmu_cache(vma, vmf->address, vmf->pte); + + ret = 0; + } else { + update_mmu_tlb(vma, vmf->address, vmf->pte); ret = VM_FAULT_NOPAGE; + } - update_mmu_tlb(vma, vmf->address, vmf->pte); pte_unmap_unlock(vmf->pte, vmf->ptl); return ret; } --- linux-5.19.0.orig/mm/memory_hotplug.c +++ linux-5.19.0/mm/memory_hotplug.c @@ -1643,7 +1643,7 @@ if (PageHuge(page)) { pfn = page_to_pfn(head) + compound_nr(head) - 1; - isolate_huge_page(head, &source); + isolate_hugetlb(head, &source); continue; } else if (PageTransHuge(page)) pfn = page_to_pfn(head) + thp_nr_pages(page) - 1; --- linux-5.19.0.orig/mm/mempolicy.c +++ linux-5.19.0/mm/mempolicy.c @@ -602,7 +602,7 @@ /* With MPOL_MF_MOVE, we migrate only unshared hugepage. */ if (flags & (MPOL_MF_MOVE_ALL) || (flags & MPOL_MF_MOVE && page_mapcount(page) == 1)) { - if (!isolate_huge_page(page, qp->pagelist) && + if (isolate_hugetlb(page, qp->pagelist) && (flags & MPOL_MF_STRICT)) /* * Failed to isolate page but allow migrating pages @@ -1388,7 +1388,7 @@ unsigned long bits = min_t(unsigned long, maxnode, BITS_PER_LONG); unsigned long t; - if (get_bitmap(&t, &nmask[maxnode / BITS_PER_LONG], bits)) + if (get_bitmap(&t, &nmask[(maxnode - 1) / BITS_PER_LONG], bits)) return -EFAULT; if (maxnode - bits >= MAX_NUMNODES) { --- linux-5.19.0.orig/mm/memremap.c +++ linux-5.19.0/mm/memremap.c @@ -141,10 +141,10 @@ for (i = 0; i < pgmap->nr_range; i++) percpu_ref_put_many(&pgmap->ref, pfn_len(pgmap, i)); wait_for_completion(&pgmap->done); - percpu_ref_exit(&pgmap->ref); for (i = 0; i < pgmap->nr_range; i++) pageunmap_range(pgmap, i); + percpu_ref_exit(&pgmap->ref); WARN_ONCE(pgmap->altmap.alloc, "failed to free all reserved pages\n"); devmap_managed_enable_put(pgmap); @@ -320,6 +320,7 @@ WARN(1, "File system DAX not supported\n"); return ERR_PTR(-EINVAL); } + params.pgprot = pgprot_decrypted(params.pgprot); break; case MEMORY_DEVICE_GENERIC: break; --- linux-5.19.0.orig/mm/migrate.c +++ linux-5.19.0/mm/migrate.c @@ -133,7 +133,7 @@ * * This function shall be used whenever the isolated pageset has been * built from lru, balloon, hugetlbfs page. See isolate_migratepages_range() - * and isolate_huge_page(). + * and isolate_hugetlb(). */ void putback_movable_pages(struct list_head *l) { @@ -315,12 +315,27 @@ __migration_entry_wait(mm, ptep, ptl); } -void migration_entry_wait_huge(struct vm_area_struct *vma, - struct mm_struct *mm, pte_t *pte) +#ifdef CONFIG_HUGETLB_PAGE +void __migration_entry_wait_huge(pte_t *ptep, spinlock_t *ptl) +{ + pte_t pte; + + spin_lock(ptl); + pte = huge_ptep_get(ptep); + + if (unlikely(!is_hugetlb_entry_migration(pte))) + spin_unlock(ptl); + else + migration_entry_wait_on_locked(pte_to_swp_entry(pte), NULL, ptl); +} + +void migration_entry_wait_huge(struct vm_area_struct *vma, pte_t *pte) { - spinlock_t *ptl = huge_pte_lockptr(hstate_vma(vma), mm, pte); - __migration_entry_wait(mm, pte, ptl); + spinlock_t *ptl = huge_pte_lockptr(hstate_vma(vma), vma->vm_mm, pte); + + __migration_entry_wait_huge(pte, ptl); } +#endif #ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION void pmd_migration_entry_wait(struct mm_struct *mm, pmd_t *pmd) @@ -1506,6 +1521,13 @@ */ list_splice(&ret_pages, from); + /* + * Return 0 in case all subpages of fail-to-migrate THPs are + * migrated successfully. + */ + if (list_empty(from)) + rc = 0; + count_vm_events(PGMIGRATE_SUCCESS, nr_succeeded); count_vm_events(PGMIGRATE_FAIL, nr_failed_pages); count_vm_events(THP_MIGRATION_SUCCESS, nr_thp_succeeded); @@ -1633,8 +1655,9 @@ if (PageHuge(page)) { if (PageHead(page)) { - isolate_huge_page(page, pagelist); - err = 1; + err = isolate_hugetlb(page, pagelist); + if (!err) + err = 1; } } else { struct page *head; --- linux-5.19.0.orig/mm/migrate_device.c +++ linux-5.19.0/mm/migrate_device.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -187,10 +188,10 @@ bool anon_exclusive; pte_t swp_pte; + flush_cache_page(vma, addr, pte_pfn(*ptep)); anon_exclusive = PageAnon(page) && PageAnonExclusive(page); if (anon_exclusive) { - flush_cache_page(vma, addr, pte_pfn(*ptep)); - ptep_clear_flush(vma, addr, ptep); + pte = ptep_clear_flush(vma, addr, ptep); if (page_try_share_anon_rmap(page)) { set_pte_at(mm, addr, ptep, pte); @@ -200,11 +201,15 @@ goto next; } } else { - ptep_get_and_clear(mm, addr, ptep); + pte = ptep_get_and_clear(mm, addr, ptep); } migrate->cpages++; + /* Set the dirty flag on the folio now the pte is gone. */ + if (pte_dirty(pte)) + folio_mark_dirty(page_folio(page)); + /* Setup special migration page table entry */ if (mpfn & MIGRATE_PFN_WRITE) entry = make_writable_migration_entry( @@ -248,13 +253,14 @@ migrate->dst[migrate->npages] = 0; migrate->src[migrate->npages++] = mpfn; } - arch_leave_lazy_mmu_mode(); - pte_unmap_unlock(ptep - 1, ptl); /* Only flush the TLB if we actually modified any entries */ if (unmapped) flush_tlb_range(walk->vma, start, end); + arch_leave_lazy_mmu_mode(); + pte_unmap_unlock(ptep - 1, ptl); + return 0; } --- linux-5.19.0.orig/mm/mmap.c +++ linux-5.19.0/mm/mmap.c @@ -189,7 +189,7 @@ if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); if (vma->vm_file) - fput(vma->vm_file); + vma_fput(vma); mpol_put(vma_policy(vma)); vm_area_free(vma); return next; @@ -958,7 +958,7 @@ if (remove_next) { if (file) { uprobe_munmap(next, next->vm_start, next->vm_end); - fput(file); + vma_fput(vma); } if (next->anon_vma) anon_vma_merge(vma, next); @@ -1693,8 +1693,12 @@ pgprot_val(vm_pgprot_modify(vm_page_prot, vm_flags))) return 0; - /* Do we need to track softdirty? */ - if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && !(vm_flags & VM_SOFTDIRTY)) + /* + * Do we need to track softdirty? hugetlb does not support softdirty + * tracking yet. + */ + if (IS_ENABLED(CONFIG_MEM_SOFT_DIRTY) && !(vm_flags & VM_SOFTDIRTY) && + !is_vm_hugetlb_page(vma)) return 1; /* Specialty mapping? */ @@ -1841,7 +1845,7 @@ if (!arch_validate_flags(vma->vm_flags)) { error = -EINVAL; if (file) - goto unmap_and_free_vma; + goto close_and_free_vma; else goto free_vma; } @@ -1888,13 +1892,15 @@ return addr; +close_and_free_vma: + if (vma->vm_ops && vma->vm_ops->close) + vma->vm_ops->close(vma); unmap_and_free_vma: - fput(vma->vm_file); + vma_fput(vma); vma->vm_file = NULL; /* Undo any partial mapping done by a device driver. */ unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); - charged = 0; if (vm_flags & VM_SHARED) mapping_unmap_writable(file->f_mapping); free_vma: @@ -2751,7 +2757,7 @@ goto out_free_mpol; if (new->vm_file) - get_file(new->vm_file); + vma_get_file(new); if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); @@ -2770,7 +2776,7 @@ if (new->vm_ops && new->vm_ops->close) new->vm_ops->close(new); if (new->vm_file) - fput(new->vm_file); + vma_fput(new); unlink_anon_vmas(new); out_free_mpol: mpol_put(vma_policy(new)); @@ -2942,7 +2948,7 @@ struct vm_area_struct *vma; unsigned long populate = 0; unsigned long ret = -EINVAL; - struct file *file; + struct file *file, *prfile; pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n", current->comm, current->pid); @@ -2998,10 +3004,27 @@ if (vma->vm_flags & VM_LOCKED) flags |= MAP_LOCKED; - file = get_file(vma->vm_file); + vma_get_file(vma); + file = vma->vm_file; + prfile = vma->vm_prfile; ret = do_mmap(vma->vm_file, start, size, prot, flags, pgoff, &populate, NULL); + if (!IS_ERR_VALUE(ret) && file && prfile) { + struct vm_area_struct *new_vma; + + new_vma = find_vma(mm, ret); + if (!new_vma->vm_prfile) + new_vma->vm_prfile = prfile; + if (new_vma != vma) + get_file(prfile); + } + /* + * two fput()s instead of vma_fput(vma), + * coz vma may not be available anymore. + */ fput(file); + if (prfile) + fput(prfile); out: mmap_write_unlock(mm); if (populate) @@ -3275,7 +3298,7 @@ if (anon_vma_clone(new_vma, vma)) goto out_free_mempol; if (new_vma->vm_file) - get_file(new_vma->vm_file); + vma_get_file(new_vma); if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); vma_link(mm, new_vma, prev, rb_link, rb_parent); --- linux-5.19.0.orig/mm/mmu_gather.c +++ linux-5.19.0/mm/mmu_gather.c @@ -152,7 +152,7 @@ /* Simply deliver the interrupt */ } -static void tlb_remove_table_sync_one(void) +void tlb_remove_table_sync_one(void) { /* * This isn't an RCU grace period and hence the page-tables cannot be @@ -176,8 +176,6 @@ #else /* !CONFIG_MMU_GATHER_RCU_TABLE_FREE */ -static void tlb_remove_table_sync_one(void) { } - static void tlb_remove_table_free(struct mmu_table_batch *batch) { __tlb_remove_table_free(batch); --- linux-5.19.0.orig/mm/mprotect.c +++ linux-5.19.0/mm/mprotect.c @@ -158,10 +158,11 @@ pages++; } else if (is_swap_pte(oldpte)) { swp_entry_t entry = pte_to_swp_entry(oldpte); - struct page *page = pfn_swap_entry_to_page(entry); pte_t newpte; if (is_writable_migration_entry(entry)) { + struct page *page = pfn_swap_entry_to_page(entry); + /* * A protection check is difficult so * just be safe and disable write @@ -221,6 +222,7 @@ } else { /* It must be an none page, or what else?.. */ WARN_ON_ONCE(!pte_none(oldpte)); +#ifdef CONFIG_PTE_MARKER_UFFD_WP if (unlikely(uffd_wp && !vma_is_anonymous(vma))) { /* * For file-backed mem, we need to be able to @@ -232,6 +234,7 @@ make_pte_marker(PTE_MARKER_UFFD_WP)); pages++; } +#endif } } while (pte++, addr += PAGE_SIZE, addr != end); arch_leave_lazy_mmu_mode(); --- linux-5.19.0.orig/mm/nommu.c +++ linux-5.19.0/mm/nommu.c @@ -524,7 +524,7 @@ up_write(&nommu_region_sem); if (region->vm_file) - fput(region->vm_file); + vmr_fput(region); /* IO memory and memory shared directly out of the pagecache * from ramfs/tmpfs mustn't be released here */ @@ -656,7 +656,7 @@ if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); if (vma->vm_file) - fput(vma->vm_file); + vma_fput(vma); put_nommu_region(vma->vm_region); vm_area_free(vma); } @@ -1176,7 +1176,7 @@ goto error_just_free; } } - fput(region->vm_file); + vmr_fput(region); kmem_cache_free(vm_region_jar, region); region = pregion; result = start; @@ -1253,10 +1253,10 @@ up_write(&nommu_region_sem); error: if (region->vm_file) - fput(region->vm_file); + vmr_fput(region); kmem_cache_free(vm_region_jar, region); if (vma->vm_file) - fput(vma->vm_file); + vma_fput(vma); vm_area_free(vma); return ret; --- linux-5.19.0.orig/mm/page-writeback.c +++ linux-5.19.0/mm/page-writeback.c @@ -2867,6 +2867,7 @@ static void wb_inode_writeback_end(struct bdi_writeback *wb) { + unsigned long flags; atomic_dec(&wb->writeback_inodes); /* * Make sure estimate of writeback throughput gets updated after @@ -2875,7 +2876,10 @@ * that if multiple inodes end writeback at a similar time, they get * batched into one bandwidth update. */ - queue_delayed_work(bdi_wq, &wb->bw_dwork, BANDWIDTH_INTERVAL); + spin_lock_irqsave(&wb->work_lock, flags); + if (test_bit(WB_registered, &wb->state)) + queue_delayed_work(bdi_wq, &wb->bw_dwork, BANDWIDTH_INTERVAL); + spin_unlock_irqrestore(&wb->work_lock, flags); } bool __folio_end_writeback(struct folio *folio) --- linux-5.19.0.orig/mm/page_alloc.c +++ linux-5.19.0/mm/page_alloc.c @@ -1302,12 +1302,8 @@ /* s390's use of memset() could override KASAN redzones. */ kasan_disable_current(); - for (i = 0; i < numpages; i++) { - u8 tag = page_kasan_tag(page + i); - page_kasan_tag_reset(page + i); - clear_highpage(page + i); - page_kasan_tag_set(page + i, tag); - } + for (i = 0; i < numpages; i++) + clear_highpage_kasan_tagged(page + i); kasan_enable_current(); } @@ -3801,6 +3797,8 @@ static bool __should_fail_alloc_page(gfp_t gfp_mask, unsigned int order) { + int flags = 0; + if (order < fail_page_alloc.min_order) return false; if (gfp_mask & __GFP_NOFAIL) @@ -3811,10 +3809,11 @@ (gfp_mask & __GFP_DIRECT_RECLAIM)) return false; + /* See comment in __should_failslab() */ if (gfp_mask & __GFP_NOWARN) - fail_page_alloc.attr.no_warn = true; + flags |= FAULT_NOWARN; - return should_fail(&fail_page_alloc.attr, 1 << order); + return should_fail_ex(&fail_page_alloc.attr, 1 << order, flags); } #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS @@ -4627,6 +4626,30 @@ EXPORT_SYMBOL_GPL(fs_reclaim_release); #endif +/* + * Zonelists may change due to hotplug during allocation. Detect when zonelists + * have been rebuilt so allocation retries. Reader side does not lock and + * retries the allocation if zonelist changes. Writer side is protected by the + * embedded spin_lock. + */ +static DEFINE_SEQLOCK(zonelist_update_seq); + +static unsigned int zonelist_iter_begin(void) +{ + if (IS_ENABLED(CONFIG_MEMORY_HOTREMOVE)) + return read_seqbegin(&zonelist_update_seq); + + return 0; +} + +static unsigned int check_retry_zonelist(unsigned int seq) +{ + if (IS_ENABLED(CONFIG_MEMORY_HOTREMOVE)) + return read_seqretry(&zonelist_update_seq, seq); + + return seq; +} + /* Perform direct synchronous page reclaim */ static unsigned long __perform_reclaim(gfp_t gfp_mask, unsigned int order, @@ -4920,6 +4943,7 @@ int compaction_retries; int no_progress_loops; unsigned int cpuset_mems_cookie; + unsigned int zonelist_iter_cookie; int reserve_flags; /* @@ -4930,11 +4954,12 @@ (__GFP_ATOMIC|__GFP_DIRECT_RECLAIM))) gfp_mask &= ~__GFP_ATOMIC; -retry_cpuset: +restart: compaction_retries = 0; no_progress_loops = 0; compact_priority = DEF_COMPACT_PRIORITY; cpuset_mems_cookie = read_mems_allowed_begin(); + zonelist_iter_cookie = zonelist_iter_begin(); /* * The fast path uses conservative alloc_flags to succeed only until @@ -5106,9 +5131,13 @@ goto retry; - /* Deal with possible cpuset update races before we start OOM killing */ - if (check_retry_cpuset(cpuset_mems_cookie, ac)) - goto retry_cpuset; + /* + * Deal with possible cpuset update races or zonelist updates to avoid + * a unnecessary OOM kill. + */ + if (check_retry_cpuset(cpuset_mems_cookie, ac) || + check_retry_zonelist(zonelist_iter_cookie)) + goto restart; /* Reclaim has failed us, start killing things */ page = __alloc_pages_may_oom(gfp_mask, order, ac, &did_some_progress); @@ -5128,9 +5157,13 @@ } nopage: - /* Deal with possible cpuset update races before we fail */ - if (check_retry_cpuset(cpuset_mems_cookie, ac)) - goto retry_cpuset; + /* + * Deal with possible cpuset update races or zonelist updates to avoid + * a unnecessary OOM kill. + */ + if (check_retry_cpuset(cpuset_mems_cookie, ac) || + check_retry_zonelist(zonelist_iter_cookie)) + goto restart; /* * Make sure that __GFP_NOFAIL request doesn't leak out and make sure @@ -5621,6 +5654,18 @@ /* reset page count bias and offset to start of new frag */ nc->pagecnt_bias = PAGE_FRAG_CACHE_MAX_SIZE + 1; offset = size - fragsz; + if (unlikely(offset < 0)) { + /* + * The caller is trying to allocate a fragment + * with fragsz > PAGE_SIZE but the cache isn't big + * enough to satisfy the request, this may + * happen in low memory conditions. + * We don't release the cache page because + * it could make memory pressure worse + * so we simply return NULL here. + */ + return NULL; + } } nc->pagecnt_bias--; @@ -6425,9 +6470,8 @@ int nid; int __maybe_unused cpu; pg_data_t *self = data; - static DEFINE_SPINLOCK(lock); - spin_lock(&lock); + write_seqlock(&zonelist_update_seq); #ifdef CONFIG_NUMA memset(node_load, 0, sizeof(node_load)); @@ -6464,7 +6508,7 @@ #endif } - spin_unlock(&lock); + write_sequnlock(&zonelist_update_seq); } static noinline void __init --- linux-5.19.0.orig/mm/page_isolation.c +++ linux-5.19.0/mm/page_isolation.c @@ -288,6 +288,7 @@ * @isolate_before: isolate the pageblock before the boundary_pfn * @skip_isolation: the flag to skip the pageblock isolation in second * isolate_single_pageblock() + * @migratetype: migrate type to set in error recovery. * * Free and in-use pages can be as big as MAX_ORDER-1 and contain more than one * pageblock. When not all pageblocks within a page are isolated at the same @@ -302,9 +303,9 @@ * the in-use page then splitting the free page. */ static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, - gfp_t gfp_flags, bool isolate_before, bool skip_isolation) + gfp_t gfp_flags, bool isolate_before, bool skip_isolation, + int migratetype) { - unsigned char saved_mt; unsigned long start_pfn; unsigned long isolate_pageblock; unsigned long pfn; @@ -328,13 +329,13 @@ start_pfn = max(ALIGN_DOWN(isolate_pageblock, MAX_ORDER_NR_PAGES), zone->zone_start_pfn); - saved_mt = get_pageblock_migratetype(pfn_to_page(isolate_pageblock)); + if (skip_isolation) { + int mt = get_pageblock_migratetype(pfn_to_page(isolate_pageblock)); - if (skip_isolation) - VM_BUG_ON(!is_migrate_isolate(saved_mt)); - else { - ret = set_migratetype_isolate(pfn_to_page(isolate_pageblock), saved_mt, flags, - isolate_pageblock, isolate_pageblock + pageblock_nr_pages); + VM_BUG_ON(!is_migrate_isolate(mt)); + } else { + ret = set_migratetype_isolate(pfn_to_page(isolate_pageblock), migratetype, + flags, isolate_pageblock, isolate_pageblock + pageblock_nr_pages); if (ret) return ret; @@ -475,7 +476,7 @@ failed: /* restore the original migratetype */ if (!skip_isolation) - unset_migratetype_isolate(pfn_to_page(isolate_pageblock), saved_mt); + unset_migratetype_isolate(pfn_to_page(isolate_pageblock), migratetype); return -EBUSY; } @@ -537,7 +538,8 @@ bool skip_isolation = false; /* isolate [isolate_start, isolate_start + pageblock_nr_pages) pageblock */ - ret = isolate_single_pageblock(isolate_start, flags, gfp_flags, false, skip_isolation); + ret = isolate_single_pageblock(isolate_start, flags, gfp_flags, false, + skip_isolation, migratetype); if (ret) return ret; @@ -545,7 +547,8 @@ skip_isolation = true; /* isolate [isolate_end - pageblock_nr_pages, isolate_end) pageblock */ - ret = isolate_single_pageblock(isolate_end, flags, gfp_flags, true, skip_isolation); + ret = isolate_single_pageblock(isolate_end, flags, gfp_flags, true, + skip_isolation, migratetype); if (ret) { unset_migratetype_isolate(pfn_to_page(isolate_start), migratetype); return ret; --- linux-5.19.0.orig/mm/pagewalk.c +++ linux-5.19.0/mm/pagewalk.c @@ -110,7 +110,7 @@ do { again: next = pmd_addr_end(addr, end); - if (pmd_none(*pmd) || (!walk->vma && !walk->no_vma)) { + if (pmd_none(*pmd)) { if (ops->pte_hole) err = ops->pte_hole(addr, next, depth, walk); if (err) @@ -171,7 +171,7 @@ do { again: next = pud_addr_end(addr, end); - if (pud_none(*pud) || (!walk->vma && !walk->no_vma)) { + if (pud_none(*pud)) { if (ops->pte_hole) err = ops->pte_hole(addr, next, depth, walk); if (err) @@ -366,19 +366,19 @@ struct vm_area_struct *vma = walk->vma; const struct mm_walk_ops *ops = walk->ops; - if (vma && ops->pre_vma) { + if (ops->pre_vma) { err = ops->pre_vma(start, end, walk); if (err) return err; } - if (vma && is_vm_hugetlb_page(vma)) { + if (is_vm_hugetlb_page(vma)) { if (ops->hugetlb_entry) err = walk_hugetlb_range(start, end, walk); } else err = walk_pgd_range(start, end, walk); - if (vma && ops->post_vma) + if (ops->post_vma) ops->post_vma(walk); return err; @@ -450,9 +450,13 @@ if (!vma) { /* after the last vma */ walk.vma = NULL; next = end; + if (ops->pte_hole) + err = ops->pte_hole(start, next, -1, &walk); } else if (start < vma->vm_start) { /* outside vma */ walk.vma = NULL; next = min(end, vma->vm_start); + if (ops->pte_hole) + err = ops->pte_hole(start, next, -1, &walk); } else { /* inside vma */ walk.vma = vma; next = min(end, vma->vm_end); @@ -470,9 +474,8 @@ } if (err < 0) break; - } - if (walk.vma || walk.ops->pte_hole) err = __walk_page_range(start, next, &walk); + } if (err) break; } while (start = next, start < end); @@ -501,9 +504,9 @@ if (start >= end || !walk.mm) return -EINVAL; - mmap_assert_locked(walk.mm); + mmap_assert_write_locked(walk.mm); - return __walk_page_range(start, end, &walk); + return walk_pgd_range(start, end, &walk); } int walk_page_vma(struct vm_area_struct *vma, const struct mm_walk_ops *ops, --- linux-5.19.0.orig/mm/percpu.c +++ linux-5.19.0/mm/percpu.c @@ -3104,7 +3104,7 @@ goto out_free_areas; } /* kmemleak tracks the percpu allocations separately */ - kmemleak_free(ptr); + kmemleak_ignore_phys(__pa(ptr)); areas[group] = ptr; base = min(ptr, base); @@ -3304,7 +3304,7 @@ goto enomem; } /* kmemleak tracks the percpu allocations separately */ - kmemleak_free(ptr); + kmemleak_ignore_phys(__pa(ptr)); pages[j++] = virt_to_page(ptr); } } @@ -3417,7 +3417,7 @@ if (!ai || !fc) panic("Failed to allocate memory for percpu areas."); /* kmemleak tracks the percpu allocations separately */ - kmemleak_free(fc); + kmemleak_ignore_phys(__pa(fc)); ai->dyn_size = unit_size; ai->unit_size = unit_size; --- linux-5.19.0.orig/mm/prfile.c +++ linux-5.19.0/mm/prfile.c @@ -0,0 +1,86 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Mainly for aufs which mmap(2) different file and wants to print different + * path in /proc/PID/maps. + * Call these functions via macros defined in linux/mm.h. + * + * See Documentation/filesystems/aufs/design/06mmap.txt + * + * Copyright (c) 2014-2021 Junjro R. Okajima + * Copyright (c) 2014 Ian Campbell + */ + +#include +#include +#include + +/* #define PRFILE_TRACE */ +static inline void prfile_trace(struct file *f, struct file *pr, + const char func[], int line, const char func2[]) +{ +#ifdef PRFILE_TRACE + if (pr) + pr_info("%s:%d: %s, %pD2\n", func, line, func2, f); +#endif +} + +void vma_do_file_update_time(struct vm_area_struct *vma, const char func[], + int line) +{ + struct file *f = vma->vm_file, *pr = vma->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + file_update_time(f); + if (f && pr) + file_update_time(pr); +} + +struct file *vma_do_pr_or_file(struct vm_area_struct *vma, const char func[], + int line) +{ + struct file *f = vma->vm_file, *pr = vma->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + return (f && pr) ? pr : f; +} + +void vma_do_get_file(struct vm_area_struct *vma, const char func[], int line) +{ + struct file *f = vma->vm_file, *pr = vma->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + get_file(f); + if (f && pr) + get_file(pr); +} + +void vma_do_fput(struct vm_area_struct *vma, const char func[], int line) +{ + struct file *f = vma->vm_file, *pr = vma->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + fput(f); + if (f && pr) + fput(pr); +} + +#ifndef CONFIG_MMU +struct file *vmr_do_pr_or_file(struct vm_region *region, const char func[], + int line) +{ + struct file *f = region->vm_file, *pr = region->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + return (f && pr) ? pr : f; +} + +void vmr_do_fput(struct vm_region *region, const char func[], int line) +{ + struct file *f = region->vm_file, *pr = region->vm_prfile; + + prfile_trace(f, pr, func, line, __func__); + fput(f); + if (f && pr) + fput(pr); +} +#endif /* !CONFIG_MMU */ --- linux-5.19.0.orig/mm/ptdump.c +++ linux-5.19.0/mm/ptdump.c @@ -152,13 +152,13 @@ { const struct ptdump_range *range = st->range; - mmap_read_lock(mm); + mmap_write_lock(mm); while (range->start != range->end) { walk_page_range_novma(mm, range->start, range->end, &ptdump_ops, pgd, st); range++; } - mmap_read_unlock(mm); + mmap_write_unlock(mm); /* Flush out the last page */ st->note_page(st, 0, -1, 0); --- linux-5.19.0.orig/mm/rmap.c +++ linux-5.19.0/mm/rmap.c @@ -93,7 +93,8 @@ anon_vma = kmem_cache_alloc(anon_vma_cachep, GFP_KERNEL); if (anon_vma) { atomic_set(&anon_vma->refcount, 1); - anon_vma->degree = 1; /* Reference for first vma */ + anon_vma->num_children = 0; + anon_vma->num_active_vmas = 0; anon_vma->parent = anon_vma; /* * Initialise the anon_vma root to point to itself. If called @@ -201,6 +202,7 @@ anon_vma = anon_vma_alloc(); if (unlikely(!anon_vma)) goto out_enomem_free_avc; + anon_vma->num_children++; /* self-parent link for new root */ allocated = anon_vma; } @@ -210,8 +212,7 @@ if (likely(!vma->anon_vma)) { vma->anon_vma = anon_vma; anon_vma_chain_link(vma, avc, anon_vma); - /* vma reference or self-parent link for new root */ - anon_vma->degree++; + anon_vma->num_active_vmas++; allocated = NULL; avc = NULL; } @@ -296,19 +297,19 @@ anon_vma_chain_link(dst, avc, anon_vma); /* - * Reuse existing anon_vma if its degree lower than two, - * that means it has no vma and only one anon_vma child. + * Reuse existing anon_vma if it has no vma and only one + * anon_vma child. * - * Do not choose parent anon_vma, otherwise first child - * will always reuse it. Root anon_vma is never reused: + * Root anon_vma is never reused: * it has self-parent reference and at least one child. */ if (!dst->anon_vma && src->anon_vma && - anon_vma != src->anon_vma && anon_vma->degree < 2) + anon_vma->num_children < 2 && + anon_vma->num_active_vmas == 0) dst->anon_vma = anon_vma; } if (dst->anon_vma) - dst->anon_vma->degree++; + dst->anon_vma->num_active_vmas++; unlock_anon_vma_root(root); return 0; @@ -358,6 +359,7 @@ anon_vma = anon_vma_alloc(); if (!anon_vma) goto out_error; + anon_vma->num_active_vmas++; avc = anon_vma_chain_alloc(GFP_KERNEL); if (!avc) goto out_error_free_anon_vma; @@ -378,7 +380,7 @@ vma->anon_vma = anon_vma; anon_vma_lock_write(anon_vma); anon_vma_chain_link(vma, avc, anon_vma); - anon_vma->parent->degree++; + anon_vma->parent->num_children++; anon_vma_unlock_write(anon_vma); return 0; @@ -410,7 +412,7 @@ * to free them outside the lock. */ if (RB_EMPTY_ROOT(&anon_vma->rb_root.rb_root)) { - anon_vma->parent->degree--; + anon_vma->parent->num_children--; continue; } @@ -418,7 +420,7 @@ anon_vma_chain_free(avc); } if (vma->anon_vma) { - vma->anon_vma->degree--; + vma->anon_vma->num_active_vmas--; /* * vma would still be needed after unlink, and anon_vma will be prepared @@ -436,7 +438,8 @@ list_for_each_entry_safe(avc, next, &vma->anon_vma_chain, same_vma) { struct anon_vma *anon_vma = avc->anon_vma; - VM_WARN_ON(anon_vma->degree); + VM_WARN_ON(anon_vma->num_children); + VM_WARN_ON(anon_vma->num_active_vmas); put_anon_vma(anon_vma); list_del(&avc->same_vma); --- linux-5.19.0.orig/mm/secretmem.c +++ linux-5.19.0/mm/secretmem.c @@ -283,7 +283,7 @@ secretmem_mnt = kern_mount(&secretmem_fs); if (IS_ERR(secretmem_mnt)) - ret = PTR_ERR(secretmem_mnt); + return PTR_ERR(secretmem_mnt); /* prevent secretmem mappings from ever getting PROT_EXEC */ secretmem_mnt->mnt_flags |= MNT_NOEXEC; --- linux-5.19.0.orig/mm/shmem.c +++ linux-5.19.0/mm/shmem.c @@ -958,6 +958,15 @@ index++; } + /* + * When undoing a failed fallocate, we want none of the partial folio + * zeroing and splitting below, but shall want to truncate the whole + * folio when !uptodate indicates that it was added by this fallocate, + * even when [lstart, lend] covers only a part of the folio. + */ + if (unfalloc) + goto whole_folios; + same_folio = (lstart >> PAGE_SHIFT) == (lend >> PAGE_SHIFT); folio = shmem_get_partial_folio(inode, lstart >> PAGE_SHIFT); if (folio) { @@ -983,6 +992,8 @@ folio_put(folio); } +whole_folios: + index = start; while (index < end) { cond_resched(); @@ -1771,6 +1782,7 @@ if (shmem_should_replace_folio(folio, gfp)) { error = shmem_replace_page(&page, gfp, info, index); + folio = page_folio(page); if (error) goto failed; } --- linux-5.19.0.orig/mm/slab_common.c +++ linux-5.19.0/mm/slab_common.c @@ -420,6 +420,28 @@ } EXPORT_SYMBOL(kmem_cache_create); +#ifdef SLAB_SUPPORTS_SYSFS +/* + * For a given kmem_cache, kmem_cache_destroy() should only be called + * once or there will be a use-after-free problem. The actual deletion + * and release of the kobject does not need slab_mutex or cpu_hotplug_lock + * protection. So they are now done without holding those locks. + * + * Note that there will be a slight delay in the deletion of sysfs files + * if kmem_cache_release() is called indrectly from a work function. + */ +static void kmem_cache_release(struct kmem_cache *s) +{ + sysfs_slab_unlink(s); + sysfs_slab_release(s); +} +#else +static void kmem_cache_release(struct kmem_cache *s) +{ + slab_kmem_cache_release(s); +} +#endif + static void slab_caches_to_rcu_destroy_workfn(struct work_struct *work) { LIST_HEAD(to_destroy); @@ -446,11 +468,7 @@ list_for_each_entry_safe(s, s2, &to_destroy, list) { debugfs_slab_release(s); kfence_shutdown_cache(s); -#ifdef SLAB_SUPPORTS_SYSFS - sysfs_slab_release(s); -#else - slab_kmem_cache_release(s); -#endif + kmem_cache_release(s); } } @@ -465,20 +483,11 @@ list_del(&s->list); if (s->flags & SLAB_TYPESAFE_BY_RCU) { -#ifdef SLAB_SUPPORTS_SYSFS - sysfs_slab_unlink(s); -#endif list_add_tail(&s->list, &slab_caches_to_rcu_destroy); schedule_work(&slab_caches_to_rcu_destroy_work); } else { kfence_shutdown_cache(s); debugfs_slab_release(s); -#ifdef SLAB_SUPPORTS_SYSFS - sysfs_slab_unlink(s); - sysfs_slab_release(s); -#else - slab_kmem_cache_release(s); -#endif } return 0; @@ -493,14 +502,19 @@ void kmem_cache_destroy(struct kmem_cache *s) { + int refcnt; + bool rcu_set; + if (unlikely(!s) || !kasan_check_byte(s)) return; cpus_read_lock(); mutex_lock(&slab_mutex); - s->refcount--; - if (s->refcount) + rcu_set = s->flags & SLAB_TYPESAFE_BY_RCU; + + refcnt = --s->refcount; + if (refcnt) goto out_unlock; WARN(shutdown_cache(s), @@ -509,6 +523,8 @@ out_unlock: mutex_unlock(&slab_mutex); cpus_read_unlock(); + if (!refcnt && !rcu_set) + kmem_cache_release(s); } EXPORT_SYMBOL(kmem_cache_destroy); --- linux-5.19.0.orig/mm/slub.c +++ linux-5.19.0/mm/slub.c @@ -310,6 +310,11 @@ */ static nodemask_t slab_nodes; +/* + * Workqueue used for flush_cpu_slab(). + */ +static struct workqueue_struct *flushwq; + /******************************************************************** * Core slab cache functions *******************************************************************/ @@ -2730,7 +2735,7 @@ INIT_WORK(&sfw->work, flush_cpu_slab); sfw->skip = false; sfw->s = s; - schedule_work_on(cpu, &sfw->work); + queue_work_on(cpu, flushwq, &sfw->work); } for_each_online_cpu(cpu) { @@ -4880,6 +4885,8 @@ void __init kmem_cache_init_late(void) { + flushwq = alloc_workqueue("slub_flushwq", WQ_MEM_RECLAIM, 0); + WARN_ON(!flushwq); } struct kmem_cache * @@ -4950,6 +4957,8 @@ /* Honor the call site pointer we received. */ trace_kmalloc(caller, ret, size, s->size, gfpflags); + ret = kasan_kmalloc(s, ret, size, gfpflags); + return ret; } EXPORT_SYMBOL(__kmalloc_track_caller); @@ -4981,6 +4990,8 @@ /* Honor the call site pointer we received. */ trace_kmalloc_node(caller, ret, size, s->size, gfpflags, node); + ret = kasan_kmalloc(s, ret, size, gfpflags); + return ret; } EXPORT_SYMBOL(__kmalloc_node_track_caller); @@ -5914,7 +5925,8 @@ char *name = kmalloc(ID_STR_LENGTH, GFP_KERNEL); char *p = name; - BUG_ON(!name); + if (!name) + return ERR_PTR(-ENOMEM); *p++ = ':'; /* @@ -5972,6 +5984,8 @@ * for the symlinks. */ name = create_unique_id(s); + if (IS_ERR(name)) + return PTR_ERR(name); } s->kobj.kset = kset; --- linux-5.19.0.orig/mm/swap_state.c +++ linux-5.19.0/mm/swap_state.c @@ -39,7 +39,7 @@ struct address_space *swapper_spaces[MAX_SWAPFILES] __read_mostly; static unsigned int nr_swapper_spaces[MAX_SWAPFILES] __read_mostly; -static bool enable_vma_readahead __read_mostly = true; +static bool enable_vma_readahead __read_mostly = false; #define SWAP_RA_WIN_SHIFT (PAGE_SHIFT / 2) #define SWAP_RA_HITS_MASK ((1UL << SWAP_RA_WIN_SHIFT) - 1) --- linux-5.19.0.orig/mm/userfaultfd.c +++ linux-5.19.0/mm/userfaultfd.c @@ -64,7 +64,7 @@ pte_t _dst_pte, *dst_pte; bool writable = dst_vma->vm_flags & VM_WRITE; bool vm_shared = dst_vma->vm_flags & VM_SHARED; - bool page_in_cache = page->mapping; + bool page_in_cache = page_mapping(page); spinlock_t *ptl; struct inode *inode; pgoff_t offset, max_off; @@ -703,14 +703,29 @@ mmap_changing, 0); } +void uffd_wp_range(struct mm_struct *dst_mm, struct vm_area_struct *dst_vma, + unsigned long start, unsigned long len, bool enable_wp) +{ + struct mmu_gather tlb; + pgprot_t newprot; + + if (enable_wp) + newprot = vm_get_page_prot(dst_vma->vm_flags & ~(VM_WRITE)); + else + newprot = vm_get_page_prot(dst_vma->vm_flags); + + tlb_gather_mmu(&tlb, dst_mm); + change_protection(&tlb, dst_vma, start, start + len, newprot, + enable_wp ? MM_CP_UFFD_WP : MM_CP_UFFD_WP_RESOLVE); + tlb_finish_mmu(&tlb); +} + int mwriteprotect_range(struct mm_struct *dst_mm, unsigned long start, unsigned long len, bool enable_wp, atomic_t *mmap_changing) { struct vm_area_struct *dst_vma; unsigned long page_mask; - struct mmu_gather tlb; - pgprot_t newprot; int err; /* @@ -750,15 +765,7 @@ goto out_unlock; } - if (enable_wp) - newprot = vm_get_page_prot(dst_vma->vm_flags & ~(VM_WRITE)); - else - newprot = vm_get_page_prot(dst_vma->vm_flags); - - tlb_gather_mmu(&tlb, dst_mm); - change_protection(&tlb, dst_vma, start, start + len, newprot, - enable_wp ? MM_CP_UFFD_WP : MM_CP_UFFD_WP_RESOLVE); - tlb_finish_mmu(&tlb); + uffd_wp_range(dst_mm, dst_vma, start, len, enable_wp); err = 0; out_unlock: --- linux-5.19.0.orig/mm/util.c +++ linux-5.19.0/mm/util.c @@ -619,6 +619,10 @@ if (ret || size <= PAGE_SIZE) return ret; + /* non-sleeping allocations are not supported by vmalloc */ + if (!gfpflags_allow_blocking(flags)) + return NULL; + /* Don't even allow crazy sizes */ if (unlikely(size > INT_MAX)) { WARN_ON_ONCE(!(flags & __GFP_NOWARN)); --- linux-5.19.0.orig/mm/vmalloc.c +++ linux-5.19.0/mm/vmalloc.c @@ -2499,6 +2499,7 @@ NUMA_NO_NODE, GFP_KERNEL, __builtin_return_address(0)); } +EXPORT_SYMBOL(get_vm_area); struct vm_struct *get_vm_area_caller(unsigned long size, unsigned long flags, const void *caller) @@ -3168,15 +3169,15 @@ /* * Mark the pages as accessible, now that they are mapped. - * The init condition should match the one in post_alloc_hook() - * (except for the should_skip_init() check) to make sure that memory - * is initialized under the same conditions regardless of the enabled - * KASAN mode. + * The condition for setting KASAN_VMALLOC_INIT should complement the + * one in post_alloc_hook() with regards to the __GFP_SKIP_ZERO check + * to make sure that memory is initialized under the same conditions. * Tag-based KASAN modes only assign tags to normal non-executable * allocations, see __kasan_unpoison_vmalloc(). */ kasan_flags |= KASAN_VMALLOC_VM_ALLOC; - if (!want_init_on_free() && want_init_on_alloc(gfp_mask)) + if (!want_init_on_free() && want_init_on_alloc(gfp_mask) && + (gfp_mask & __GFP_SKIP_ZERO)) kasan_flags |= KASAN_VMALLOC_INIT; /* KASAN_VMALLOC_PROT_NORMAL already set if required. */ area->addr = kasan_unpoison_vmalloc(area->addr, real_size, kasan_flags); --- linux-5.19.0.orig/mm/vmscan.c +++ linux-5.19.0/mm/vmscan.c @@ -2411,8 +2411,20 @@ * the flushers simply cannot keep up with the allocation * rate. Nudge the flusher threads in case they are asleep. */ - if (stat.nr_unqueued_dirty == nr_taken) + if (stat.nr_unqueued_dirty == nr_taken) { wakeup_flusher_threads(WB_REASON_VMSCAN); + /* + * For cgroupv1 dirty throttling is achieved by waking up + * the kernel flusher here and later waiting on folios + * which are in writeback to finish (see shrink_folio_list()). + * + * Flusher may not be able to issue writeback quickly + * enough for cgroupv1 writeback throttling to work + * on a large system. + */ + if (!writeback_throttling_sane(sc)) + reclaim_throttle(pgdat, VMSCAN_THROTTLE_WRITEBACK); + } sc->nr.dirty += stat.nr_dirty; sc->nr.congested += stat.nr_congested; @@ -2897,8 +2909,8 @@ enum lru_list lru; unsigned long nr_reclaimed = 0; unsigned long nr_to_reclaim = sc->nr_to_reclaim; + bool proportional_reclaim; struct blk_plug plug; - bool scan_adjusted; get_scan_count(lruvec, sc, nr); @@ -2916,8 +2928,8 @@ * abort proportional reclaim if either the file or anon lru has already * dropped to zero at the first pass. */ - scan_adjusted = (!cgroup_reclaim(sc) && !current_is_kswapd() && - sc->priority == DEF_PRIORITY); + proportional_reclaim = (!cgroup_reclaim(sc) && !current_is_kswapd() && + sc->priority == DEF_PRIORITY); blk_start_plug(&plug); while (nr[LRU_INACTIVE_ANON] || nr[LRU_ACTIVE_FILE] || @@ -2937,7 +2949,7 @@ cond_resched(); - if (nr_reclaimed < nr_to_reclaim || scan_adjusted) + if (nr_reclaimed < nr_to_reclaim || proportional_reclaim) continue; /* @@ -2988,8 +3000,6 @@ nr_scanned = targets[lru] - nr[lru]; nr[lru] = targets[lru] * (100 - percentage) / 100; nr[lru] -= min(nr[lru], nr_scanned); - - scan_adjusted = true; } blk_finish_plug(&plug); sc->nr_reclaimed += nr_reclaimed; --- linux-5.19.0.orig/net/802/mrp.c +++ linux-5.19.0/net/802/mrp.c @@ -606,7 +606,10 @@ spin_unlock(&app->lock); mrp_queue_xmit(app); - mrp_join_timer_arm(app); + spin_lock(&app->lock); + if (likely(app->active)) + mrp_join_timer_arm(app); + spin_unlock(&app->lock); } static void mrp_periodic_timer_arm(struct mrp_applicant *app) @@ -620,11 +623,12 @@ struct mrp_applicant *app = from_timer(app, t, periodic_timer); spin_lock(&app->lock); - mrp_mad_event(app, MRP_EVENT_PERIODIC); - mrp_pdu_queue(app); + if (likely(app->active)) { + mrp_mad_event(app, MRP_EVENT_PERIODIC); + mrp_pdu_queue(app); + mrp_periodic_timer_arm(app); + } spin_unlock(&app->lock); - - mrp_periodic_timer_arm(app); } static int mrp_pdu_parse_end_mark(struct sk_buff *skb, int *offset) @@ -872,6 +876,7 @@ app->dev = dev; app->app = appl; app->mad = RB_ROOT; + app->active = true; spin_lock_init(&app->lock); skb_queue_head_init(&app->queue); rcu_assign_pointer(dev->mrp_port->applicants[appl->type], app); @@ -900,6 +905,9 @@ RCU_INIT_POINTER(port->applicants[appl->type], NULL); + spin_lock_bh(&app->lock); + app->active = false; + spin_unlock_bh(&app->lock); /* Delete timer and generate a final TX event to flush out * all pending messages before the applicant is gone. */ --- linux-5.19.0.orig/net/9p/client.c +++ linux-5.19.0/net/9p/client.c @@ -279,6 +279,11 @@ p9pdu_reset(&req->rc); req->t_err = 0; req->status = REQ_STATUS_ALLOC; + /* refcount needs to be set to 0 before inserting into the idr + * so p9_tag_lookup does not accept a request that is not fully + * initialized. refcount_set to 2 below will mark request ready. + */ + refcount_set(&req->refcount, 0); init_waitqueue_head(&req->wq); INIT_LIST_HEAD(&req->req_list); @@ -305,7 +310,7 @@ * callback), so p9_client_cb eats the second ref there * as the pointer is duplicated directly by virtqueue_add_sgs() */ - refcount_set(&req->refcount.refcount, 2); + refcount_set(&req->refcount, 2); return req; @@ -341,7 +346,7 @@ if (!p9_req_try_get(req)) goto again; if (req->tc.tag != tag) { - p9_req_put(req); + p9_req_put(c, req); goto again; } } @@ -367,21 +372,18 @@ spin_lock_irqsave(&c->lock, flags); idr_remove(&c->reqs, tag); spin_unlock_irqrestore(&c->lock, flags); - return p9_req_put(r); + return p9_req_put(c, r); } -static void p9_req_free(struct kref *ref) +int p9_req_put(struct p9_client *c, struct p9_req_t *r) { - struct p9_req_t *r = container_of(ref, struct p9_req_t, refcount); - - p9_fcall_fini(&r->tc); - p9_fcall_fini(&r->rc); - kmem_cache_free(p9_req_cache, r); -} - -int p9_req_put(struct p9_req_t *r) -{ - return kref_put(&r->refcount, p9_req_free); + if (refcount_dec_and_test(&r->refcount)) { + p9_fcall_fini(&r->tc); + p9_fcall_fini(&r->rc); + kmem_cache_free(p9_req_cache, r); + return 1; + } + return 0; } EXPORT_SYMBOL(p9_req_put); @@ -426,7 +428,7 @@ wake_up(&req->wq); p9_debug(P9_DEBUG_MUX, "wakeup: %d\n", req->tc.tag); - p9_req_put(req); + p9_req_put(c, req); } EXPORT_SYMBOL(p9_client_cb); @@ -709,7 +711,7 @@ reterr: p9_tag_remove(c, req); /* We have to put also the 2nd reference as it won't be used */ - p9_req_put(req); + p9_req_put(c, req); return ERR_PTR(err); } @@ -746,7 +748,7 @@ err = c->trans_mod->request(c, req); if (err < 0) { /* write won't happen */ - p9_req_put(req); + p9_req_put(c, req); if (err != -ERESTARTSYS && err != -EFAULT) c->status = Disconnected; goto recalc_sigpending; @@ -889,16 +891,13 @@ struct p9_fid *fid; p9_debug(P9_DEBUG_FID, "clnt %p\n", clnt); - fid = kmalloc(sizeof(*fid), GFP_KERNEL); + fid = kzalloc(sizeof(*fid), GFP_KERNEL); if (!fid) return NULL; - memset(&fid->qid, 0, sizeof(fid->qid)); fid->mode = -1; fid->uid = current_fsuid(); fid->clnt = clnt; - fid->rdir = NULL; - fid->fid = 0; refcount_set(&fid->count, 1); idr_preload(GFP_KERNEL); --- linux-5.19.0.orig/net/9p/trans_fd.c +++ linux-5.19.0/net/9p/trans_fd.c @@ -91,6 +91,7 @@ * @mux_list: list link for mux to manage multiple connections (?) * @client: reference to client instance for this connection * @err: error state + * @req_lock: lock protecting req_list and requests statuses * @req_list: accounting for requests which have been sent * @unsent_req_list: accounting for requests that haven't been sent * @rreq: read request @@ -114,11 +115,12 @@ struct list_head mux_list; struct p9_client *client; int err; + spinlock_t req_lock; struct list_head req_list; struct list_head unsent_req_list; struct p9_req_t *rreq; struct p9_req_t *wreq; - char tmp_buf[7]; + char tmp_buf[P9_HDRSZ]; struct p9_fcall rc; int wpos; int wsize; @@ -189,10 +191,10 @@ p9_debug(P9_DEBUG_ERROR, "mux %p err %d\n", m, err); - spin_lock(&m->client->lock); + spin_lock(&m->req_lock); if (m->err) { - spin_unlock(&m->client->lock); + spin_unlock(&m->req_lock); return; } @@ -200,11 +202,15 @@ list_for_each_entry_safe(req, rtmp, &m->req_list, req_list) { list_move(&req->req_list, &cancel_list); + req->status = REQ_STATUS_ERROR; } list_for_each_entry_safe(req, rtmp, &m->unsent_req_list, req_list) { list_move(&req->req_list, &cancel_list); + req->status = REQ_STATUS_ERROR; } + spin_unlock(&m->req_lock); + list_for_each_entry_safe(req, rtmp, &cancel_list, req_list) { p9_debug(P9_DEBUG_ERROR, "call back req %p\n", req); list_del(&req->req_list); @@ -212,7 +218,6 @@ req->t_err = err; p9_client_cb(m->client, req, REQ_STATUS_ERROR); } - spin_unlock(&m->client->lock); } static __poll_t @@ -288,7 +293,7 @@ if (!m->rc.sdata) { m->rc.sdata = m->tmp_buf; m->rc.offset = 0; - m->rc.capacity = 7; /* start by reading header */ + m->rc.capacity = P9_HDRSZ; /* start by reading header */ } clear_bit(Rpending, &m->wsched); @@ -311,7 +316,7 @@ p9_debug(P9_DEBUG_TRANS, "got new header\n"); /* Header size */ - m->rc.size = 7; + m->rc.size = P9_HDRSZ; err = p9_parse_header(&m->rc, &m->rc.size, NULL, NULL, 0); if (err) { p9_debug(P9_DEBUG_ERROR, @@ -343,6 +348,7 @@ p9_debug(P9_DEBUG_ERROR, "No recv fcall for tag %d (req %p), disconnecting!\n", m->rc.tag, m->rreq); + p9_req_put(m->client, m->rreq); m->rreq = NULL; err = -EIO; goto error; @@ -358,7 +364,7 @@ if ((m->rreq) && (m->rc.offset == m->rc.capacity)) { p9_debug(P9_DEBUG_TRANS, "got new packet\n"); m->rreq->rc.size = m->rc.offset; - spin_lock(&m->client->lock); + spin_lock(&m->req_lock); if (m->rreq->status == REQ_STATUS_SENT) { list_del(&m->rreq->req_list); p9_client_cb(m->client, m->rreq, REQ_STATUS_RCVD); @@ -367,18 +373,18 @@ p9_debug(P9_DEBUG_TRANS, "Ignore replies associated with a cancelled request\n"); } else { - spin_unlock(&m->client->lock); + spin_unlock(&m->req_lock); p9_debug(P9_DEBUG_ERROR, "Request tag %d errored out while we were reading the reply\n", m->rc.tag); err = -EIO; goto error; } - spin_unlock(&m->client->lock); + spin_unlock(&m->req_lock); m->rc.sdata = NULL; m->rc.offset = 0; m->rc.capacity = 0; - p9_req_put(m->rreq); + p9_req_put(m->client, m->rreq); m->rreq = NULL; } @@ -452,10 +458,10 @@ } if (!m->wsize) { - spin_lock(&m->client->lock); + spin_lock(&m->req_lock); if (list_empty(&m->unsent_req_list)) { clear_bit(Wworksched, &m->wsched); - spin_unlock(&m->client->lock); + spin_unlock(&m->req_lock); return; } @@ -470,7 +476,7 @@ m->wpos = 0; p9_req_get(req); m->wreq = req; - spin_unlock(&m->client->lock); + spin_unlock(&m->req_lock); } p9_debug(P9_DEBUG_TRANS, "mux %p pos %d size %d\n", @@ -492,7 +498,7 @@ m->wpos += err; if (m->wpos == m->wsize) { m->wpos = m->wsize = 0; - p9_req_put(m->wreq); + p9_req_put(m->client, m->wreq); m->wreq = NULL; } @@ -587,6 +593,7 @@ INIT_LIST_HEAD(&m->mux_list); m->client = client; + spin_lock_init(&m->req_lock); INIT_LIST_HEAD(&m->req_list); INIT_LIST_HEAD(&m->unsent_req_list); INIT_WORK(&m->rq, p9_read_work); @@ -668,10 +675,10 @@ if (m->err < 0) return m->err; - spin_lock(&client->lock); + spin_lock(&m->req_lock); req->status = REQ_STATUS_UNSENT; list_add_tail(&req->req_list, &m->unsent_req_list); - spin_unlock(&client->lock); + spin_unlock(&m->req_lock); if (test_and_clear_bit(Wpending, &m->wsched)) n = EPOLLOUT; @@ -686,33 +693,38 @@ static int p9_fd_cancel(struct p9_client *client, struct p9_req_t *req) { + struct p9_trans_fd *ts = client->trans; + struct p9_conn *m = &ts->conn; int ret = 1; p9_debug(P9_DEBUG_TRANS, "client %p req %p\n", client, req); - spin_lock(&client->lock); + spin_lock(&m->req_lock); if (req->status == REQ_STATUS_UNSENT) { list_del(&req->req_list); req->status = REQ_STATUS_FLSHD; - p9_req_put(req); + p9_req_put(client, req); ret = 0; } - spin_unlock(&client->lock); + spin_unlock(&m->req_lock); return ret; } static int p9_fd_cancelled(struct p9_client *client, struct p9_req_t *req) { + struct p9_trans_fd *ts = client->trans; + struct p9_conn *m = &ts->conn; + p9_debug(P9_DEBUG_TRANS, "client %p req %p\n", client, req); - spin_lock(&client->lock); + spin_lock(&m->req_lock); /* Ignore cancelled request if message has been received * before lock. */ if (req->status == REQ_STATUS_RCVD) { - spin_unlock(&client->lock); + spin_unlock(&m->req_lock); return 0; } @@ -721,8 +733,9 @@ */ list_del(&req->req_list); req->status = REQ_STATUS_FLSHD; - spin_unlock(&client->lock); - p9_req_put(req); + spin_unlock(&m->req_lock); + + p9_req_put(client, req); return 0; } @@ -820,11 +833,14 @@ goto out_free_ts; if (!(ts->rd->f_mode & FMODE_READ)) goto out_put_rd; + /* prevent workers from hanging on IO when fd is a pipe */ + ts->rd->f_flags |= O_NONBLOCK; ts->wr = fget(wfd); if (!ts->wr) goto out_put_rd; if (!(ts->wr->f_mode & FMODE_WRITE)) goto out_put_wr; + ts->wr->f_flags |= O_NONBLOCK; client->trans = ts; client->status = Connected; @@ -846,8 +862,10 @@ struct file *file; p = kzalloc(sizeof(struct p9_trans_fd), GFP_KERNEL); - if (!p) + if (!p) { + sock_release(csocket); return -ENOMEM; + } csocket->sk->sk_allocation = GFP_NOIO; file = sock_alloc_file(csocket, 0, NULL); @@ -883,12 +901,12 @@ p9_mux_poll_stop(m); cancel_work_sync(&m->rq); if (m->rreq) { - p9_req_put(m->rreq); + p9_req_put(m->client, m->rreq); m->rreq = NULL; } cancel_work_sync(&m->wq); if (m->wreq) { - p9_req_put(m->wreq); + p9_req_put(m->client, m->wreq); m->wreq = NULL; } --- linux-5.19.0.orig/net/9p/trans_rdma.c +++ linux-5.19.0/net/9p/trans_rdma.c @@ -350,7 +350,7 @@ c->busa, c->req->tc.size, DMA_TO_DEVICE); up(&rdma->sq_sem); - p9_req_put(c->req); + p9_req_put(client, c->req); kfree(c); } --- linux-5.19.0.orig/net/9p/trans_virtio.c +++ linux-5.19.0/net/9p/trans_virtio.c @@ -199,7 +199,7 @@ /* Reply won't come, so drop req ref */ static int p9_virtio_cancelled(struct p9_client *client, struct p9_req_t *req) { - p9_req_put(req); + p9_req_put(client, req); return 0; } @@ -523,7 +523,7 @@ kvfree(out_pages); if (!kicked) { /* reply won't come */ - p9_req_put(req); + p9_req_put(client, req); } return err; } --- linux-5.19.0.orig/net/9p/trans_xen.c +++ linux-5.19.0/net/9p/trans_xen.c @@ -163,7 +163,7 @@ ring->intf->out_prod = prod; spin_unlock_irqrestore(&ring->lock, flags); notify_remote_via_irq(ring->irq); - p9_req_put(p9_req); + p9_req_put(client, p9_req); return 0; } @@ -208,6 +208,14 @@ continue; } + if (h.size > req->rc.capacity) { + dev_warn(&priv->dev->dev, + "requested packet size too big: %d for tag %d with capacity %zd\n", + h.size, h.tag, req->rc.capacity); + req->status = REQ_STATUS_ERROR; + goto recv_error; + } + memcpy(&req->rc, &h, sizeof(h)); req->rc.offset = 0; @@ -217,6 +225,7 @@ masked_prod, &masked_cons, XEN_9PFS_RING_SIZE(ring)); +recv_error: virt_mb(); cons += h.size; ring->intf->in_cons = cons; --- linux-5.19.0.orig/net/atm/mpoa_proc.c +++ linux-5.19.0/net/atm/mpoa_proc.c @@ -219,11 +219,12 @@ if (!page) return -ENOMEM; - for (p = page, len = 0; len < nbytes; p++, len++) { + for (p = page, len = 0; len < nbytes; p++) { if (get_user(*p, buff++)) { free_page((unsigned long)page); return -EFAULT; } + len += 1; if (*p == '\0' || *p == '\n') break; } --- linux-5.19.0.orig/net/ax25/af_ax25.c +++ linux-5.19.0/net/ax25/af_ax25.c @@ -1065,7 +1065,7 @@ del_timer_sync(&ax25->t3timer); del_timer_sync(&ax25->idletimer); } - dev_put_track(ax25_dev->dev, &ax25_dev->dev_tracker); + dev_put_track(ax25_dev->dev, &ax25->dev_tracker); ax25_dev_put(ax25_dev); } @@ -1146,7 +1146,7 @@ if (ax25_dev) { ax25_fillin_cb(ax25, ax25_dev); - dev_hold_track(ax25_dev->dev, &ax25_dev->dev_tracker, GFP_ATOMIC); + dev_hold_track(ax25_dev->dev, &ax25->dev_tracker, GFP_ATOMIC); } done: --- linux-5.19.0.orig/net/batman-adv/hard-interface.c +++ linux-5.19.0/net/batman-adv/hard-interface.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -700,6 +701,9 @@ int max_header_len = batadv_max_header_len(); int ret; + if (hard_iface->net_dev->mtu < ETH_MIN_MTU + max_header_len) + return -EINVAL; + if (hard_iface->if_status != BATADV_IF_NOT_IN_USE) goto out; --- linux-5.19.0.orig/net/batman-adv/trace.h +++ linux-5.19.0/net/batman-adv/trace.h @@ -28,8 +28,6 @@ #endif /* CONFIG_BATMAN_ADV_TRACING */ -#define BATADV_MAX_MSG_LEN 256 - TRACE_EVENT(batadv_dbg, TP_PROTO(struct batadv_priv *bat_priv, @@ -40,16 +38,13 @@ TP_STRUCT__entry( __string(device, bat_priv->soft_iface->name) __string(driver, KBUILD_MODNAME) - __dynamic_array(char, msg, BATADV_MAX_MSG_LEN) + __vstring(msg, vaf->fmt, vaf->va) ), TP_fast_assign( __assign_str(device, bat_priv->soft_iface->name); __assign_str(driver, KBUILD_MODNAME); - WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), - BATADV_MAX_MSG_LEN, - vaf->fmt, - *vaf->va) >= BATADV_MAX_MSG_LEN); + __assign_vstr(msg, vaf->fmt, vaf->va); ), TP_printk( --- linux-5.19.0.orig/net/bluetooth/6lowpan.c +++ linux-5.19.0/net/bluetooth/6lowpan.c @@ -972,6 +972,7 @@ hci_dev_lock(hdev); hcon = hci_conn_hash_lookup_le(hdev, addr, *addr_type); hci_dev_unlock(hdev); + hci_dev_put(hdev); if (!hcon) return -ENOENT; --- linux-5.19.0.orig/net/bluetooth/af_bluetooth.c +++ linux-5.19.0/net/bluetooth/af_bluetooth.c @@ -735,7 +735,7 @@ err = bt_sysfs_init(); if (err < 0) - return err; + goto cleanup_led; err = sock_register(&bt_sock_family_ops); if (err) @@ -771,6 +771,8 @@ sock_unregister(PF_BLUETOOTH); cleanup_sysfs: bt_sysfs_cleanup(); +cleanup_led: + bt_leds_cleanup(); return err; } --- linux-5.19.0.orig/net/bluetooth/hci_codec.c +++ linux-5.19.0/net/bluetooth/hci_codec.c @@ -72,9 +72,8 @@ continue; } - skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODEC_CAPS, - sizeof(*cmd), cmd, - HCI_CMD_TIMEOUT); + skb = __hci_cmd_sync_sk(hdev, HCI_OP_READ_LOCAL_CODEC_CAPS, + sizeof(*cmd), cmd, 0, HCI_CMD_TIMEOUT, NULL); if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to read codec capabilities (%ld)", PTR_ERR(skb)); @@ -127,8 +126,8 @@ struct hci_op_read_local_codec_caps caps; __u8 i; - skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODECS, 0, NULL, - HCI_CMD_TIMEOUT); + skb = __hci_cmd_sync_sk(hdev, HCI_OP_READ_LOCAL_CODECS, 0, NULL, + 0, HCI_CMD_TIMEOUT, NULL); if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to read local supported codecs (%ld)", @@ -158,7 +157,8 @@ for (i = 0; i < std_codecs->num; i++) { caps.id = std_codecs->codec[i]; caps.direction = 0x00; - hci_read_codec_capabilities(hdev, LOCAL_CODEC_ACL_MASK, &caps); + hci_read_codec_capabilities(hdev, + LOCAL_CODEC_ACL_MASK | LOCAL_CODEC_SCO_MASK, &caps); } skb_pull(skb, flex_array_size(std_codecs, codec, std_codecs->num) @@ -178,7 +178,8 @@ caps.cid = vnd_codecs->codec[i].cid; caps.vid = vnd_codecs->codec[i].vid; caps.direction = 0x00; - hci_read_codec_capabilities(hdev, LOCAL_CODEC_ACL_MASK, &caps); + hci_read_codec_capabilities(hdev, + LOCAL_CODEC_ACL_MASK | LOCAL_CODEC_SCO_MASK, &caps); } error: @@ -194,8 +195,8 @@ struct hci_op_read_local_codec_caps caps; __u8 i; - skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODECS_V2, 0, NULL, - HCI_CMD_TIMEOUT); + skb = __hci_cmd_sync_sk(hdev, HCI_OP_READ_LOCAL_CODECS_V2, 0, NULL, + 0, HCI_CMD_TIMEOUT, NULL); if (IS_ERR(skb)) { bt_dev_err(hdev, "Failed to read local supported codecs (%ld)", --- linux-5.19.0.orig/net/bluetooth/hci_core.c +++ linux-5.19.0/net/bluetooth/hci_core.c @@ -594,6 +594,20 @@ skb_queue_purge(&hdev->rx_q); skb_queue_purge(&hdev->cmd_q); + /* Cancel these to avoid queueing non-chained pending work */ + hci_dev_set_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE); + /* Wait for + * + * if (!hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) + * queue_delayed_work(&hdev->{cmd,ncmd}_timer) + * + * inside RCU section to see the flag or complete scheduling. + */ + synchronize_rcu(); + /* Explicitly cancel works in case scheduled after setting the flag. */ + cancel_delayed_work(&hdev->cmd_timer); + cancel_delayed_work(&hdev->ncmd_timer); + /* Avoid potential lockdep warnings from the *_flush() calls by * ensuring the workqueue is empty up front. */ @@ -607,6 +621,8 @@ if (hdev->flush) hdev->flush(hdev); + hci_dev_clear_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE); + atomic_set(&hdev->cmd_cnt, 1); hdev->acl_cnt = 0; hdev->sco_cnt = 0; hdev->le_cnt = 0; @@ -2640,7 +2656,8 @@ hci_sock_dev_event(hdev, HCI_DEV_REG); hci_dev_hold(hdev); - if (!test_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks)) { + if (!hdev->suspend_notifier.notifier_call && + !test_bit(HCI_QUIRK_NO_SUSPEND_NOTIFIER, &hdev->quirks)) { hdev->suspend_notifier.notifier_call = hci_suspend_notifier; error = register_pm_notifier(&hdev->suspend_notifier); if (error) @@ -3354,15 +3371,27 @@ return DIV_ROUND_UP(skb->len - HCI_ACL_HDR_SIZE, hdev->block_len); } -static void __check_timeout(struct hci_dev *hdev, unsigned int cnt) +static void __check_timeout(struct hci_dev *hdev, unsigned int cnt, u8 type) { - if (!hci_dev_test_flag(hdev, HCI_UNCONFIGURED)) { - /* ACL tx timeout must be longer than maximum - * link supervision timeout (40.9 seconds) */ - if (!cnt && time_after(jiffies, hdev->acl_last_tx + - HCI_ACL_TX_TIMEOUT)) - hci_link_tx_to(hdev, ACL_LINK); + unsigned long last_tx; + + if (hci_dev_test_flag(hdev, HCI_UNCONFIGURED)) + return; + + switch (type) { + case LE_LINK: + last_tx = hdev->le_last_tx; + break; + default: + last_tx = hdev->acl_last_tx; + break; } + + /* tx timeout must be longer than maximum link supervision timeout + * (40.9 seconds) + */ + if (!cnt && time_after(jiffies, last_tx + HCI_ACL_TX_TIMEOUT)) + hci_link_tx_to(hdev, type); } /* Schedule SCO */ @@ -3420,7 +3449,7 @@ struct sk_buff *skb; int quote; - __check_timeout(hdev, cnt); + __check_timeout(hdev, cnt, ACL_LINK); while (hdev->acl_cnt && (chan = hci_chan_sent(hdev, ACL_LINK, "e))) { @@ -3463,8 +3492,6 @@ int quote; u8 type; - __check_timeout(hdev, cnt); - BT_DBG("%s", hdev->name); if (hdev->dev_type == HCI_AMP) @@ -3472,6 +3499,8 @@ else type = ACL_LINK; + __check_timeout(hdev, cnt, type); + while (hdev->block_cnt > 0 && (chan = hci_chan_sent(hdev, type, "e))) { u32 priority = (skb_peek(&chan->data_q))->priority; @@ -3545,7 +3574,7 @@ cnt = hdev->le_pkts ? hdev->le_cnt : hdev->acl_cnt; - __check_timeout(hdev, cnt); + __check_timeout(hdev, cnt, LE_LINK); tmp = cnt; while (cnt && (chan = hci_chan_sent(hdev, LE_LINK, "e))) { @@ -3769,7 +3798,7 @@ *req_complete_skb = bt_cb(skb)->hci.req_complete_skb; else *req_complete = bt_cb(skb)->hci.req_complete; - kfree_skb(skb); + dev_kfree_skb_irq(skb); } spin_unlock_irqrestore(&hdev->cmd_q.lock, flags); } @@ -3864,11 +3893,14 @@ if (res < 0) __hci_cmd_sync_cancel(hdev, -res); - if (test_bit(HCI_RESET, &hdev->flags)) + rcu_read_lock(); + if (test_bit(HCI_RESET, &hdev->flags) || + hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) cancel_delayed_work(&hdev->cmd_timer); else - schedule_delayed_work(&hdev->cmd_timer, - HCI_CMD_TIMEOUT); + queue_delayed_work(hdev->workqueue, &hdev->cmd_timer, + HCI_CMD_TIMEOUT); + rcu_read_unlock(); } else { skb_queue_head(&hdev->cmd_q, skb); queue_work(hdev->workqueue, &hdev->cmd_work); --- linux-5.19.0.orig/net/bluetooth/hci_event.c +++ linux-5.19.0/net/bluetooth/hci_event.c @@ -3763,15 +3763,18 @@ { cancel_delayed_work(&hdev->cmd_timer); + rcu_read_lock(); if (!test_bit(HCI_RESET, &hdev->flags)) { if (ncmd) { cancel_delayed_work(&hdev->ncmd_timer); atomic_set(&hdev->cmd_cnt, 1); } else { - schedule_delayed_work(&hdev->ncmd_timer, - HCI_NCMD_TIMEOUT); + if (!hci_dev_test_flag(hdev, HCI_CMD_DRAIN_WORKQUEUE)) + queue_delayed_work(hdev->workqueue, &hdev->ncmd_timer, + HCI_NCMD_TIMEOUT); } } + rcu_read_unlock(); } #define HCI_CC_VL(_op, _func, _min, _max) \ @@ -3997,6 +4000,17 @@ } } + if (i == ARRAY_SIZE(hci_cc_table)) { + /* Unknown opcode, assume byte 0 contains the status, so + * that e.g. __hci_cmd_sync() properly returns errors + * for vendor specific commands send by HCI drivers. + * If a vendor doesn't actually follow this convention we may + * need to introduce a vendor CC table in order to properly set + * the status. + */ + *status = skb->data[0]; + } + handle_cmd_cnt_and_timer(hdev, ev->ncmd); hci_req_cmd_complete(hdev, *opcode, *status, req_complete, @@ -5556,7 +5570,7 @@ */ hci_dev_clear_flag(hdev, HCI_LE_ADV); - conn = hci_lookup_le_connect(hdev); + conn = hci_conn_hash_lookup_ba(hdev, LE_LINK, bdaddr); if (!conn) { /* In case of error status and there is no connection pending * just unlock as there is nothing to cleanup. --- linux-5.19.0.orig/net/bluetooth/hci_request.c +++ linux-5.19.0/net/bluetooth/hci_request.c @@ -1485,7 +1485,7 @@ /* Set duration per instance since controller is responsible for * scheduling it. */ - if (adv_instance && adv_instance->duration) { + if (adv_instance && adv_instance->timeout) { u16 duration = adv_instance->timeout * MSEC_PER_SEC; /* Time = N * 10 ms */ --- linux-5.19.0.orig/net/bluetooth/hci_sync.c +++ linux-5.19.0/net/bluetooth/hci_sync.c @@ -12,6 +12,7 @@ #include #include "hci_request.h" +#include "hci_codec.h" #include "hci_debugfs.h" #include "smp.h" #include "eir.h" @@ -1612,6 +1613,9 @@ bacpy(&cp.bdaddr, ¶ms->addr); memcpy(cp.peer_irk, irk->val, 16); + /* Default privacy mode is always Network */ + params->privacy_mode = HCI_NETWORK_PRIVACY; + done: if (hci_dev_test_flag(hdev, HCI_PRIVACY)) memcpy(cp.local_irk, hdev->irk, 16); @@ -3616,11 +3620,12 @@ /* Read local codec list if the HCI command is supported */ static int hci_read_local_codecs_sync(struct hci_dev *hdev) { - if (!(hdev->commands[29] & 0x20)) - return 0; + if (hdev->commands[45] & 0x04) + hci_read_supported_codecs_v2(hdev); + else if (hdev->commands[29] & 0x20) + hci_read_supported_codecs(hdev); - return __hci_cmd_sync_status(hdev, HCI_OP_READ_LOCAL_CODECS, 0, NULL, - HCI_CMD_TIMEOUT); + return 0; } /* Read local pairing options if the HCI command is supported */ @@ -4030,6 +4035,7 @@ hci_dev_test_flag(hdev, HCI_MGMT) && hdev->dev_type == HCI_PRIMARY) { ret = hci_powered_update_sync(hdev); + mgmt_power_on(hdev, ret); } } else { /* Init failed, cleanup */ @@ -4449,9 +4455,11 @@ /* Cleanup hci_conn object if it cannot be cancelled as it * likelly means the controller and host stack are out of sync. */ - if (err) + if (err) { + hci_dev_lock(hdev); hci_conn_failed(conn, err); - + hci_dev_unlock(hdev); + } return err; case BT_CONNECT2: return hci_reject_conn_sync(hdev, conn, reason); @@ -4964,17 +4972,21 @@ /* Prevent disconnects from causing scanning to be re-enabled */ hci_pause_scan_sync(hdev); - /* Soft disconnect everything (power off) */ - err = hci_disconnect_all_sync(hdev, HCI_ERROR_REMOTE_POWER_OFF); - if (err) { - /* Set state to BT_RUNNING so resume doesn't notify */ - hdev->suspend_state = BT_RUNNING; - hci_resume_sync(hdev); - return err; - } + if (hci_conn_count(hdev)) { + /* Soft disconnect everything (power off) */ + err = hci_disconnect_all_sync(hdev, HCI_ERROR_REMOTE_POWER_OFF); + if (err) { + /* Set state to BT_RUNNING so resume doesn't notify */ + hdev->suspend_state = BT_RUNNING; + hci_resume_sync(hdev); + return err; + } - /* Update event mask so only the allowed event can wakeup the host */ - hci_set_event_mask_sync(hdev); + /* Update event mask so only the allowed event can wakeup the + * host. + */ + hci_set_event_mask_sync(hdev); + } /* Only configure accept list if disconnect succeeded and wake * isn't being prevented. @@ -5039,13 +5051,13 @@ if (!hdev->scanning_paused) return 0; + hdev->scanning_paused = false; + hci_update_scan_sync(hdev); /* Reset passive scanning to normal */ hci_update_passive_scan_sync(hdev); - hdev->scanning_paused = false; - return 0; } @@ -5064,7 +5076,6 @@ return 0; hdev->suspended = false; - hdev->scanning_paused = false; /* Restore event mask */ hci_set_event_mask_sync(hdev); --- linux-5.19.0.orig/net/bluetooth/hci_sysfs.c +++ linux-5.19.0/net/bluetooth/hci_sysfs.c @@ -48,6 +48,9 @@ BT_DBG("conn %p", conn); + if (device_is_registered(&conn->dev)) + return; + dev_set_name(&conn->dev, "%s:%d", hdev->name, conn->handle); if (device_add(&conn->dev) < 0) { --- linux-5.19.0.orig/net/bluetooth/l2cap_core.c +++ linux-5.19.0/net/bluetooth/l2cap_core.c @@ -61,6 +61,9 @@ static void l2cap_tx(struct l2cap_chan *chan, struct l2cap_ctrl *control, struct sk_buff_head *skbs, u8 event); +static void l2cap_retrans_timeout(struct work_struct *work); +static void l2cap_monitor_timeout(struct work_struct *work); +static void l2cap_ack_timeout(struct work_struct *work); static inline u8 bdaddr_type(u8 link_type, u8 bdaddr_type) { @@ -476,6 +479,9 @@ write_unlock(&chan_list_lock); INIT_DELAYED_WORK(&chan->chan_timer, l2cap_chan_timeout); + INIT_DELAYED_WORK(&chan->retrans_timer, l2cap_retrans_timeout); + INIT_DELAYED_WORK(&chan->monitor_timer, l2cap_monitor_timeout); + INIT_DELAYED_WORK(&chan->ack_timer, l2cap_ack_timeout); chan->state = BT_OPEN; @@ -1969,11 +1975,11 @@ bdaddr_t *dst, u8 link_type) { - struct l2cap_chan *c, *c1 = NULL; + struct l2cap_chan *c, *tmp, *c1 = NULL; read_lock(&chan_list_lock); - list_for_each_entry(c, &chan_list, global_l) { + list_for_each_entry_safe(c, tmp, &chan_list, global_l) { if (state && c->state != state) continue; @@ -1983,7 +1989,7 @@ if (link_type == LE_LINK && c->src_type == BDADDR_BREDR) continue; - if (c->psm == psm) { + if (c->chan_type != L2CAP_CHAN_FIXED && c->psm == psm) { int src_match, dst_match; int src_any, dst_any; @@ -1991,8 +1997,7 @@ src_match = !bacmp(&c->src, src); dst_match = !bacmp(&c->dst, dst); if (src_match && dst_match) { - c = l2cap_chan_hold_unless_zero(c); - if (!c) + if (!l2cap_chan_hold_unless_zero(c)) continue; read_unlock(&chan_list_lock); @@ -3320,10 +3325,6 @@ chan->rx_state = L2CAP_RX_STATE_RECV; chan->tx_state = L2CAP_TX_STATE_XMIT; - INIT_DELAYED_WORK(&chan->retrans_timer, l2cap_retrans_timeout); - INIT_DELAYED_WORK(&chan->monitor_timer, l2cap_monitor_timeout); - INIT_DELAYED_WORK(&chan->ack_timer, l2cap_ack_timeout); - skb_queue_head_init(&chan->srej_q); err = l2cap_seq_list_init(&chan->srej_list, chan->tx_win); @@ -3762,7 +3763,8 @@ l2cap_add_conf_opt(&ptr, L2CAP_CONF_RFC, sizeof(rfc), (unsigned long) &rfc, endptr - ptr); - if (test_bit(FLAG_EFS_ENABLE, &chan->flags)) { + if (remote_efs && + test_bit(FLAG_EFS_ENABLE, &chan->flags)) { chan->remote_id = efs.id; chan->remote_stype = efs.stype; chan->remote_msdu = le16_to_cpu(efs.msdu); @@ -4307,6 +4309,12 @@ } } + chan = l2cap_chan_hold_unless_zero(chan); + if (!chan) { + err = -EBADSLT; + goto unlock; + } + err = 0; l2cap_chan_lock(chan); @@ -4336,6 +4344,7 @@ } l2cap_chan_unlock(chan); + l2cap_chan_put(chan); unlock: mutex_unlock(&conn->chan_lock); @@ -4443,7 +4452,8 @@ chan->ident = cmd->ident; l2cap_send_cmd(conn, cmd->ident, L2CAP_CONF_RSP, len, rsp); - chan->num_conf_rsp++; + if (chan->num_conf_rsp < L2CAP_CONF_MAX_CONF_RSP) + chan->num_conf_rsp++; /* Reset config buffer. */ chan->conf_len = 0; @@ -5804,6 +5814,19 @@ BT_DBG("psm 0x%2.2x scid 0x%4.4x mtu %u mps %u", __le16_to_cpu(psm), scid, mtu, mps); + /* BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 3, Part A + * page 1059: + * + * Valid range: 0x0001-0x00ff + * + * Table 4.15: L2CAP_LE_CREDIT_BASED_CONNECTION_REQ SPSM ranges + */ + if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { + result = L2CAP_CR_LE_BAD_PSM; + chan = NULL; + goto response; + } + /* Check if we have socket listening on psm */ pchan = l2cap_global_chan_by_psm(BT_LISTEN, psm, &conn->hcon->src, &conn->hcon->dst, LE_LINK); @@ -5992,6 +6015,18 @@ psm = req->psm; + /* BLUETOOTH CORE SPECIFICATION Version 5.3 | Vol 3, Part A + * page 1059: + * + * Valid range: 0x0001-0x00ff + * + * Table 4.15: L2CAP_LE_CREDIT_BASED_CONNECTION_REQ SPSM ranges + */ + if (!psm || __le16_to_cpu(psm) > L2CAP_PSM_LE_DYN_END) { + result = L2CAP_CR_LE_BAD_PSM; + goto response; + } + BT_DBG("psm 0x%2.2x mtu %u mps %u", __le16_to_cpu(psm), mtu, mps); memset(&pdu, 0, sizeof(pdu)); @@ -6876,6 +6911,7 @@ struct l2cap_ctrl *control, struct sk_buff *skb, u8 event) { + struct l2cap_ctrl local_control; int err = 0; bool skb_in_use = false; @@ -6900,15 +6936,32 @@ chan->buffer_seq = chan->expected_tx_seq; skb_in_use = true; + /* l2cap_reassemble_sdu may free skb, hence invalidate + * control, so make a copy in advance to use it after + * l2cap_reassemble_sdu returns and to avoid the race + * condition, for example: + * + * The current thread calls: + * l2cap_reassemble_sdu + * chan->ops->recv == l2cap_sock_recv_cb + * __sock_queue_rcv_skb + * Another thread calls: + * bt_sock_recvmsg + * skb_recv_datagram + * skb_free_datagram + * Then the current thread tries to access control, but + * it was freed by skb_free_datagram. + */ + local_control = *control; err = l2cap_reassemble_sdu(chan, skb, control); if (err) break; - if (control->final) { + if (local_control.final) { if (!test_and_clear_bit(CONN_REJ_ACT, &chan->conn_state)) { - control->final = 0; - l2cap_retransmit_all(chan, control); + local_control.final = 0; + l2cap_retransmit_all(chan, &local_control); l2cap_ertm_send(chan); } } @@ -7288,11 +7341,27 @@ static int l2cap_stream_rx(struct l2cap_chan *chan, struct l2cap_ctrl *control, struct sk_buff *skb) { + /* l2cap_reassemble_sdu may free skb, hence invalidate control, so store + * the txseq field in advance to use it after l2cap_reassemble_sdu + * returns and to avoid the race condition, for example: + * + * The current thread calls: + * l2cap_reassemble_sdu + * chan->ops->recv == l2cap_sock_recv_cb + * __sock_queue_rcv_skb + * Another thread calls: + * bt_sock_recvmsg + * skb_recv_datagram + * skb_free_datagram + * Then the current thread tries to access control, but it was freed by + * skb_free_datagram. + */ + u16 txseq = control->txseq; + BT_DBG("chan %p, control %p, skb %p, state %d", chan, control, skb, chan->rx_state); - if (l2cap_classify_txseq(chan, control->txseq) == - L2CAP_TXSEQ_EXPECTED) { + if (l2cap_classify_txseq(chan, txseq) == L2CAP_TXSEQ_EXPECTED) { l2cap_pass_to_tx(chan, control); BT_DBG("buffer_seq %u->%u", chan->buffer_seq, @@ -7315,8 +7384,8 @@ } } - chan->last_acked_seq = control->txseq; - chan->expected_tx_seq = __next_seq(chan, control->txseq); + chan->last_acked_seq = txseq; + chan->expected_tx_seq = __next_seq(chan, txseq); return 0; } @@ -7572,6 +7641,7 @@ return; } + l2cap_chan_hold(chan); l2cap_chan_lock(chan); } else { BT_DBG("unknown cid 0x%4.4x", cid); @@ -8417,9 +8487,8 @@ * expected length. */ if (skb->len < L2CAP_LEN_SIZE) { - if (l2cap_recv_frag(conn, skb, conn->mtu) < 0) - goto drop; - return; + l2cap_recv_frag(conn, skb, conn->mtu); + break; } len = get_unaligned_le16(skb->data) + L2CAP_HDR_SIZE; @@ -8463,7 +8532,7 @@ /* Header still could not be read just continue */ if (conn->rx_skb->len < L2CAP_LEN_SIZE) - return; + break; } if (skb->len > conn->rx_len) { --- linux-5.19.0.orig/net/bluetooth/mgmt.c +++ linux-5.19.0/net/bluetooth/mgmt.c @@ -4420,6 +4420,22 @@ MGMT_STATUS_NOT_SUPPORTED); } +static u32 get_params_flags(struct hci_dev *hdev, + struct hci_conn_params *params) +{ + u32 flags = hdev->conn_flags; + + /* Devices using RPAs can only be programmed in the acceptlist if + * LL Privacy has been enable otherwise they cannot mark + * HCI_CONN_FLAG_REMOTE_WAKEUP. + */ + if ((flags & HCI_CONN_FLAG_REMOTE_WAKEUP) && !use_ll_privacy(hdev) && + hci_find_irk_by_addr(hdev, ¶ms->addr, params->addr_type)) + flags &= ~HCI_CONN_FLAG_REMOTE_WAKEUP; + + return flags; +} + static int get_device_flags(struct sock *sk, struct hci_dev *hdev, void *data, u16 data_len) { @@ -4451,10 +4467,10 @@ } else { params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, le_addr_type(cp->addr.type)); - if (!params) goto done; + supported_flags = get_params_flags(hdev, params); current_flags = params->flags; } @@ -4523,38 +4539,35 @@ bt_dev_warn(hdev, "No such BR/EDR device %pMR (0x%x)", &cp->addr.bdaddr, cp->addr.type); } - } else { - params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, - le_addr_type(cp->addr.type)); - if (params) { - /* Devices using RPAs can only be programmed in the - * acceptlist LL Privacy has been enable otherwise they - * cannot mark HCI_CONN_FLAG_REMOTE_WAKEUP. - */ - if ((current_flags & HCI_CONN_FLAG_REMOTE_WAKEUP) && - !use_ll_privacy(hdev) && - hci_find_irk_by_addr(hdev, ¶ms->addr, - params->addr_type)) { - bt_dev_warn(hdev, - "Cannot set wakeable for RPA"); - goto unlock; - } - params->flags = current_flags; - status = MGMT_STATUS_SUCCESS; + goto unlock; + } - /* Update passive scan if HCI_CONN_FLAG_DEVICE_PRIVACY - * has been set. - */ - if (params->flags & HCI_CONN_FLAG_DEVICE_PRIVACY) - hci_update_passive_scan(hdev); - } else { - bt_dev_warn(hdev, "No such LE device %pMR (0x%x)", - &cp->addr.bdaddr, - le_addr_type(cp->addr.type)); - } + params = hci_conn_params_lookup(hdev, &cp->addr.bdaddr, + le_addr_type(cp->addr.type)); + if (!params) { + bt_dev_warn(hdev, "No such LE device %pMR (0x%x)", + &cp->addr.bdaddr, le_addr_type(cp->addr.type)); + goto unlock; } + supported_flags = get_params_flags(hdev, params); + + if ((supported_flags | current_flags) != supported_flags) { + bt_dev_warn(hdev, "Bad flag given (0x%x) vs supported (0x%0x)", + current_flags, supported_flags); + goto unlock; + } + + params->flags = current_flags; + status = MGMT_STATUS_SUCCESS; + + /* Update passive scan if HCI_CONN_FLAG_DEVICE_PRIVACY + * has been set. + */ + if (params->flags & HCI_CONN_FLAG_DEVICE_PRIVACY) + hci_update_passive_scan(hdev); + unlock: hci_dev_unlock(hdev); @@ -6820,11 +6833,14 @@ cmd = mgmt_pending_new(sk, MGMT_OP_GET_CONN_INFO, hdev, data, len); - if (!cmd) + if (!cmd) { err = -ENOMEM; - else + } else { + hci_conn_hold(conn); + cmd->user_data = hci_conn_get(conn); err = hci_cmd_sync_queue(hdev, get_conn_info_sync, cmd, get_conn_info_complete); + } if (err < 0) { mgmt_cmd_complete(sk, hdev->id, MGMT_OP_GET_CONN_INFO, @@ -6836,9 +6852,6 @@ goto unlock; } - hci_conn_hold(conn); - cmd->user_data = hci_conn_get(conn); - conn->conn_info_timestamp = jiffies; } else { /* Cache is valid, just reply with values cached in hci_conn */ @@ -8303,7 +8316,7 @@ * extra parameters we don't know about will be ignored in this request. */ if (data_len < MGMT_ADD_EXT_ADV_PARAMS_MIN_SIZE) - return mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_ADVERTISING, + return mgmt_cmd_status(sk, hdev->id, MGMT_OP_ADD_EXT_ADV_PARAMS, MGMT_STATUS_INVALID_PARAMS); flags = __le32_to_cpu(cp->flags); --- linux-5.19.0.orig/net/bluetooth/rfcomm/core.c +++ linux-5.19.0/net/bluetooth/rfcomm/core.c @@ -590,7 +590,7 @@ ret = rfcomm_dlc_send_frag(d, frag); if (ret < 0) { - kfree_skb(frag); + dev_kfree_skb_irq(frag); goto unlock; } --- linux-5.19.0.orig/net/bluetooth/rfcomm/sock.c +++ linux-5.19.0/net/bluetooth/rfcomm/sock.c @@ -902,7 +902,10 @@ lock_sock(sk); if (!sk->sk_shutdown) { sk->sk_shutdown = SHUTDOWN_MASK; + + release_sock(sk); __rfcomm_sock_close(sk); + lock_sock(sk); if (sock_flag(sk, SOCK_LINGER) && sk->sk_lingertime && !(current->flags & PF_EXITING)) --- linux-5.19.0.orig/net/bpf/test_run.c +++ linux-5.19.0/net/bpf/test_run.c @@ -750,6 +750,7 @@ if (user_size > size) return ERR_PTR(-EMSGSIZE); + size = SKB_DATA_ALIGN(size); data = kzalloc(size + headroom + tailroom, GFP_USER); if (!data) return ERR_PTR(-ENOMEM); --- linux-5.19.0.orig/net/bridge/br_netfilter_hooks.c +++ linux-5.19.0/net/bridge/br_netfilter_hooks.c @@ -384,6 +384,7 @@ /* - Bridged-and-DNAT'ed traffic doesn't * require ip_forwarding. */ if (rt->dst.dev == dev) { + skb_dst_drop(skb); skb_dst_set(skb, &rt->dst); goto bridged_dnat; } @@ -413,6 +414,7 @@ kfree_skb(skb); return 0; } + skb_dst_drop(skb); skb_dst_set_noref(skb, &rt->dst); } --- linux-5.19.0.orig/net/bridge/br_netfilter_ipv6.c +++ linux-5.19.0/net/bridge/br_netfilter_ipv6.c @@ -197,6 +197,7 @@ kfree_skb(skb); return 0; } + skb_dst_drop(skb); skb_dst_set_noref(skb, &rt->dst); } --- linux-5.19.0.orig/net/bridge/br_netlink.c +++ linux-5.19.0/net/bridge/br_netlink.c @@ -1332,7 +1332,7 @@ if (data[IFLA_BR_FDB_FLUSH]) { struct net_bridge_fdb_flush_desc desc = { - .flags_mask = BR_FDB_STATIC + .flags_mask = BIT(BR_FDB_STATIC) }; br_fdb_flush(br, &desc); --- linux-5.19.0.orig/net/bridge/br_sysfs_br.c +++ linux-5.19.0/net/bridge/br_sysfs_br.c @@ -345,7 +345,7 @@ struct netlink_ext_ack *extack) { struct net_bridge_fdb_flush_desc desc = { - .flags_mask = BR_FDB_STATIC + .flags_mask = BIT(BR_FDB_STATIC) }; br_fdb_flush(br, &desc); --- linux-5.19.0.orig/net/bridge/br_vlan.c +++ linux-5.19.0/net/bridge/br_vlan.c @@ -959,6 +959,8 @@ list_for_each_entry(p, &br->port_list, list) { vg = nbp_vlan_group(p); list_for_each_entry(vlan, &vg->vlan_list, vlist) { + if (vlan->priv_flags & BR_VLFLAG_ADDED_BY_SWITCHDEV) + continue; err = vlan_vid_add(p->dev, proto, vlan->vid); if (err) goto err_filt; @@ -973,8 +975,11 @@ /* Delete VLANs for the old proto from the device filter. */ list_for_each_entry(p, &br->port_list, list) { vg = nbp_vlan_group(p); - list_for_each_entry(vlan, &vg->vlan_list, vlist) + list_for_each_entry(vlan, &vg->vlan_list, vlist) { + if (vlan->priv_flags & BR_VLFLAG_ADDED_BY_SWITCHDEV) + continue; vlan_vid_del(p->dev, oldproto, vlan->vid); + } } return 0; @@ -983,13 +988,19 @@ attr.u.vlan_protocol = ntohs(oldproto); switchdev_port_attr_set(br->dev, &attr, NULL); - list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) + list_for_each_entry_continue_reverse(vlan, &vg->vlan_list, vlist) { + if (vlan->priv_flags & BR_VLFLAG_ADDED_BY_SWITCHDEV) + continue; vlan_vid_del(p->dev, proto, vlan->vid); + } list_for_each_entry_continue_reverse(p, &br->port_list, list) { vg = nbp_vlan_group(p); - list_for_each_entry(vlan, &vg->vlan_list, vlist) + list_for_each_entry(vlan, &vg->vlan_list, vlist) { + if (vlan->priv_flags & BR_VLFLAG_ADDED_BY_SWITCHDEV) + continue; vlan_vid_del(p->dev, proto, vlan->vid); + } } return err; --- linux-5.19.0.orig/net/bridge/netfilter/ebtable_broute.c +++ linux-5.19.0/net/bridge/netfilter/ebtable_broute.c @@ -36,18 +36,10 @@ .entries = (char *)&initial_chain, }; -static int check(const struct ebt_table_info *info, unsigned int valid_hooks) -{ - if (valid_hooks & ~(1 << NF_BR_BROUTING)) - return -EINVAL; - return 0; -} - static const struct ebt_table broute_table = { .name = "broute", .table = &initial_table, .valid_hooks = 1 << NF_BR_BROUTING, - .check = check, .me = THIS_MODULE, }; --- linux-5.19.0.orig/net/bridge/netfilter/ebtable_filter.c +++ linux-5.19.0/net/bridge/netfilter/ebtable_filter.c @@ -43,18 +43,10 @@ .entries = (char *)initial_chains, }; -static int check(const struct ebt_table_info *info, unsigned int valid_hooks) -{ - if (valid_hooks & ~FILTER_VALID_HOOKS) - return -EINVAL; - return 0; -} - static const struct ebt_table frame_filter = { .name = "filter", .table = &initial_table, .valid_hooks = FILTER_VALID_HOOKS, - .check = check, .me = THIS_MODULE, }; --- linux-5.19.0.orig/net/bridge/netfilter/ebtable_nat.c +++ linux-5.19.0/net/bridge/netfilter/ebtable_nat.c @@ -43,18 +43,10 @@ .entries = (char *)initial_chains, }; -static int check(const struct ebt_table_info *info, unsigned int valid_hooks) -{ - if (valid_hooks & ~NAT_VALID_HOOKS) - return -EINVAL; - return 0; -} - static const struct ebt_table frame_nat = { .name = "nat", .table = &initial_table, .valid_hooks = NAT_VALID_HOOKS, - .check = check, .me = THIS_MODULE, }; --- linux-5.19.0.orig/net/bridge/netfilter/ebtables.c +++ linux-5.19.0/net/bridge/netfilter/ebtables.c @@ -1040,9 +1040,10 @@ goto free_iterate; } - /* the table doesn't like it */ - if (t->check && (ret = t->check(newinfo, repl->valid_hooks))) + if (repl->valid_hooks != t->valid_hooks) { + ret = -EINVAL; goto free_unlock; + } if (repl->num_counters && repl->num_counters != t->private->nentries) { ret = -EINVAL; @@ -1231,11 +1232,6 @@ if (ret != 0) goto free_chainstack; - if (table->check && table->check(newinfo, table->valid_hooks)) { - ret = -EINVAL; - goto free_chainstack; - } - table->private = newinfo; rwlock_init(&table->lock); mutex_lock(&ebt_mutex); --- linux-5.19.0.orig/net/caif/chnl_net.c +++ linux-5.19.0/net/caif/chnl_net.c @@ -310,9 +310,6 @@ if (result == 0) { pr_debug("connect timeout\n"); - caif_disconnect_client(dev_net(dev), &priv->chnl); - priv->state = CAIF_DISCONNECTED; - pr_debug("state disconnected\n"); result = -ETIMEDOUT; goto error; } --- linux-5.19.0.orig/net/can/af_can.c +++ linux-5.19.0/net/can/af_can.c @@ -451,7 +451,7 @@ /* insert new receiver (dev,canid,mask) -> (func,data) */ - if (dev && dev->type != ARPHRD_CAN) + if (dev && (dev->type != ARPHRD_CAN || !can_get_ml_priv(dev))) return -ENODEV; if (dev && !net_eq(net, dev_net(dev))) @@ -680,7 +680,7 @@ { struct canfd_frame *cfd = (struct canfd_frame *)skb->data; - if (unlikely(dev->type != ARPHRD_CAN || skb->len != CAN_MTU)) { + if (unlikely(dev->type != ARPHRD_CAN || !can_get_ml_priv(dev) || skb->len != CAN_MTU)) { pr_warn_once("PF_CAN: dropped non conform CAN skbuff: dev type %d, len %d\n", dev->type, skb->len); goto free_skb; @@ -706,7 +706,7 @@ { struct canfd_frame *cfd = (struct canfd_frame *)skb->data; - if (unlikely(dev->type != ARPHRD_CAN || skb->len != CANFD_MTU)) { + if (unlikely(dev->type != ARPHRD_CAN || !can_get_ml_priv(dev) || skb->len != CANFD_MTU)) { pr_warn_once("PF_CAN: dropped non conform CAN FD skbuff: dev type %d, len %d\n", dev->type, skb->len); goto free_skb; --- linux-5.19.0.orig/net/can/bcm.c +++ linux-5.19.0/net/can/bcm.c @@ -274,6 +274,7 @@ struct sk_buff *skb; struct net_device *dev; struct canfd_frame *cf = op->frames + op->cfsiz * op->currframe; + int err; /* no target device? => exit */ if (!op->ifindex) @@ -298,11 +299,11 @@ /* send with loopback */ skb->dev = dev; can_skb_set_owner(skb, op->sk); - can_send(skb, 1); + err = can_send(skb, 1); + if (!err) + op->frames_abs++; - /* update statistics */ op->currframe++; - op->frames_abs++; /* reached last frame? */ if (op->currframe >= op->nframes) --- linux-5.19.0.orig/net/can/isotp.c +++ linux-5.19.0/net/can/isotp.c @@ -111,6 +111,9 @@ #define ISOTP_FC_WT 1 /* wait */ #define ISOTP_FC_OVFLW 2 /* overflow */ +#define ISOTP_FC_TIMEOUT 1 /* 1 sec */ +#define ISOTP_ECHO_TIMEOUT 2 /* 2 secs */ + enum { ISOTP_IDLE = 0, ISOTP_WAIT_FIRST_FC, @@ -258,7 +261,8 @@ so->lastrxcf_tstamp = ktime_set(0, 0); /* start rx timeout watchdog */ - hrtimer_start(&so->rxtimer, ktime_set(1, 0), HRTIMER_MODE_REL_SOFT); + hrtimer_start(&so->rxtimer, ktime_set(ISOTP_FC_TIMEOUT, 0), + HRTIMER_MODE_REL_SOFT); return 0; } @@ -344,6 +348,8 @@ return 0; } +static void isotp_send_cframe(struct isotp_sock *so); + static int isotp_rcv_fc(struct isotp_sock *so, struct canfd_frame *cf, int ae) { struct sock *sk = &so->sk; @@ -398,14 +404,15 @@ case ISOTP_FC_CTS: so->tx.bs = 0; so->tx.state = ISOTP_SENDING; - /* start cyclic timer for sending CF frame */ - hrtimer_start(&so->txtimer, so->tx_gap, + /* send CF frame and enable echo timeout handling */ + hrtimer_start(&so->txtimer, ktime_set(ISOTP_ECHO_TIMEOUT, 0), HRTIMER_MODE_REL_SOFT); + isotp_send_cframe(so); break; case ISOTP_FC_WT: /* start timer to wait for next FC frame */ - hrtimer_start(&so->txtimer, ktime_set(1, 0), + hrtimer_start(&so->txtimer, ktime_set(ISOTP_FC_TIMEOUT, 0), HRTIMER_MODE_REL_SOFT); break; @@ -600,7 +607,7 @@ /* perform blocksize handling, if enabled */ if (!so->rxfc.bs || ++so->rx.bs < so->rxfc.bs) { /* start rx timeout watchdog */ - hrtimer_start(&so->rxtimer, ktime_set(1, 0), + hrtimer_start(&so->rxtimer, ktime_set(ISOTP_FC_TIMEOUT, 0), HRTIMER_MODE_REL_SOFT); return 0; } @@ -829,7 +836,7 @@ struct isotp_sock *so = isotp_sk(sk); struct canfd_frame *cf = (struct canfd_frame *)skb->data; - /* only handle my own local echo skb's */ + /* only handle my own local echo CF/SF skb's (no FF!) */ if (skb->sk != sk || so->cfecho != *(u32 *)cf->data) return; @@ -849,13 +856,16 @@ if (so->txfc.bs && so->tx.bs >= so->txfc.bs) { /* stop and wait for FC with timeout */ so->tx.state = ISOTP_WAIT_FC; - hrtimer_start(&so->txtimer, ktime_set(1, 0), + hrtimer_start(&so->txtimer, ktime_set(ISOTP_FC_TIMEOUT, 0), HRTIMER_MODE_REL_SOFT); return; } /* no gap between data frames needed => use burst mode */ if (!so->tx_gap) { + /* enable echo timeout handling */ + hrtimer_start(&so->txtimer, ktime_set(ISOTP_ECHO_TIMEOUT, 0), + HRTIMER_MODE_REL_SOFT); isotp_send_cframe(so); return; } @@ -879,7 +889,7 @@ /* start timeout for unlikely lost echo skb */ hrtimer_set_expires(&so->txtimer, ktime_add(ktime_get(), - ktime_set(2, 0))); + ktime_set(ISOTP_ECHO_TIMEOUT, 0))); restart = HRTIMER_RESTART; /* push out the next consecutive frame */ @@ -907,7 +917,8 @@ break; default: - WARN_ON_ONCE(1); + WARN_ONCE(1, "can-isotp: tx timer state %08X cfecho %08X\n", + so->tx.state, so->cfecho); } return restart; @@ -923,7 +934,7 @@ struct canfd_frame *cf; int ae = (so->opt.flags & CAN_ISOTP_EXTEND_ADDR) ? 1 : 0; int wait_tx_done = (so->opt.flags & CAN_ISOTP_WAIT_TX_DONE) ? 1 : 0; - s64 hrtimer_sec = 0; + s64 hrtimer_sec = ISOTP_ECHO_TIMEOUT; int off; int err; @@ -942,6 +953,8 @@ err = wait_event_interruptible(so->wait, so->tx.state == ISOTP_IDLE); if (err) goto err_out; + + so->tx.state = ISOTP_SENDING; } if (!size || size > MAX_MSG_LENGTH) { @@ -986,6 +999,10 @@ cf = (struct canfd_frame *)skb->data; skb_put_zero(skb, so->ll.mtu); + /* cfecho should have been zero'ed by init / former isotp_rcv_echo() */ + if (so->cfecho) + pr_notice_once("can-isotp: uninit cfecho %08X\n", so->cfecho); + /* check for single frame transmission depending on TX_DL */ if (size <= so->tx.ll_dl - SF_PCI_SZ4 - ae - off) { /* The message size generally fits into a SingleFrame - good. @@ -1011,11 +1028,8 @@ else cf->data[ae] |= size; - so->tx.state = ISOTP_IDLE; - wake_up_interruptible(&so->wait); - - /* don't enable wait queue for a single frame transmission */ - wait_tx_done = 0; + /* set CF echo tag for isotp_rcv_echo() (SF-mode) */ + so->cfecho = *(u32 *)cf->data; } else { /* send first frame */ @@ -1031,31 +1045,23 @@ /* disable wait for FCs due to activated block size */ so->txfc.bs = 0; - /* cfecho should have been zero'ed by init */ - if (so->cfecho) - pr_notice_once("can-isotp: no fc cfecho %08X\n", - so->cfecho); - - /* set consecutive frame echo tag */ + /* set CF echo tag for isotp_rcv_echo() (CF-mode) */ so->cfecho = *(u32 *)cf->data; - - /* switch directly to ISOTP_SENDING state */ - so->tx.state = ISOTP_SENDING; - - /* start timeout for unlikely lost echo skb */ - hrtimer_sec = 2; } else { /* standard flow control check */ so->tx.state = ISOTP_WAIT_FIRST_FC; /* start timeout for FC */ - hrtimer_sec = 1; - } + hrtimer_sec = ISOTP_FC_TIMEOUT; - hrtimer_start(&so->txtimer, ktime_set(hrtimer_sec, 0), - HRTIMER_MODE_REL_SOFT); + /* no CF echo tag for isotp_rcv_echo() (FF-mode) */ + so->cfecho = 0; + } } + hrtimer_start(&so->txtimer, ktime_set(hrtimer_sec, 0), + HRTIMER_MODE_REL_SOFT); + /* send the first or only CAN frame */ cf->flags = so->ll.tx_flags; @@ -1068,8 +1074,7 @@ __func__, ERR_PTR(err)); /* no transmission -> no timeout monitoring */ - if (hrtimer_sec) - hrtimer_cancel(&so->txtimer); + hrtimer_cancel(&so->txtimer); /* reset consecutive frame echo tag */ so->cfecho = 0; --- linux-5.19.0.orig/net/can/j1939/main.c +++ linux-5.19.0/net/can/j1939/main.c @@ -332,6 +332,9 @@ /* re-claim the CAN_HDR from the SKB */ cf = skb_push(skb, J1939_CAN_HDR); + /* initialize header structure */ + memset(cf, 0, J1939_CAN_HDR); + /* make it a full can frame again */ skb_put(skb, J1939_CAN_FTR + (8 - dlc)); --- linux-5.19.0.orig/net/can/j1939/socket.c +++ linux-5.19.0/net/can/j1939/socket.c @@ -178,7 +178,10 @@ if (!first) return; - if (WARN_ON_ONCE(j1939_session_activate(first))) { + if (j1939_session_activate(first)) { + netdev_warn_once(first->priv->ndev, + "%s: 0x%p: Identical session is already activated.\n", + __func__, first); first->err = -EBUSY; goto activate_next; } else { --- linux-5.19.0.orig/net/can/j1939/transport.c +++ linux-5.19.0/net/can/j1939/transport.c @@ -260,6 +260,8 @@ static void j1939_session_destroy(struct j1939_session *session) { + struct sk_buff *skb; + if (session->transmission) { if (session->err) j1939_sk_errqueue(session, J1939_ERRQUEUE_TX_ABORT); @@ -274,7 +276,11 @@ WARN_ON_ONCE(!list_empty(&session->sk_session_queue_entry)); WARN_ON_ONCE(!list_empty(&session->active_session_list_entry)); - skb_queue_purge(&session->skb_queue); + while ((skb = skb_dequeue(&session->skb_queue)) != NULL) { + /* drop ref taken in j1939_session_skb_queue() */ + skb_unref(skb); + kfree_skb(skb); + } __j1939_session_drop(session); j1939_priv_put(session->priv); kfree(session); @@ -336,10 +342,12 @@ __skb_unlink(do_skb, &session->skb_queue); /* drop ref taken in j1939_session_skb_queue() */ skb_unref(do_skb); + spin_unlock_irqrestore(&session->skb_queue.lock, flags); kfree_skb(do_skb); + } else { + spin_unlock_irqrestore(&session->skb_queue.lock, flags); } - spin_unlock_irqrestore(&session->skb_queue.lock, flags); } void j1939_session_skb_queue(struct j1939_session *session, --- linux-5.19.0.orig/net/core/bpf_sk_storage.c +++ linux-5.19.0/net/core/bpf_sk_storage.c @@ -310,11 +310,12 @@ static int bpf_sk_storage_charge(struct bpf_local_storage_map *smap, void *owner, u32 size) { + int optmem_max = READ_ONCE(sysctl_optmem_max); struct sock *sk = (struct sock *)owner; /* same check as in sock_kmalloc() */ - if (size <= sysctl_optmem_max && - atomic_read(&sk->sk_omem_alloc) + size < sysctl_optmem_max) { + if (size <= optmem_max && + atomic_read(&sk->sk_omem_alloc) + size < optmem_max) { atomic_add(size, &sk->sk_omem_alloc); return 0; } @@ -875,10 +876,18 @@ { struct bpf_iter_seq_sk_storage_map_info *seq_info = priv_data; + bpf_map_inc_with_uref(aux->map); seq_info->map = aux->map; return 0; } +static void bpf_iter_fini_sk_storage_map(void *priv_data) +{ + struct bpf_iter_seq_sk_storage_map_info *seq_info = priv_data; + + bpf_map_put_with_uref(seq_info->map); +} + static int bpf_iter_attach_map(struct bpf_prog *prog, union bpf_iter_link_info *linfo, struct bpf_iter_aux_info *aux) @@ -896,7 +905,7 @@ if (map->map_type != BPF_MAP_TYPE_SK_STORAGE) goto put_map; - if (prog->aux->max_rdonly_access > map->value_size) { + if (prog->aux->max_rdwr_access > map->value_size) { err = -EACCES; goto put_map; } @@ -924,7 +933,7 @@ static const struct bpf_iter_seq_info iter_seq_info = { .seq_ops = &bpf_sk_storage_map_seq_ops, .init_seq_private = bpf_iter_init_sk_storage_map, - .fini_seq_private = NULL, + .fini_seq_private = bpf_iter_fini_sk_storage_map, .seq_priv_size = sizeof(struct bpf_iter_seq_sk_storage_map_info), }; --- linux-5.19.0.orig/net/core/datagram.c +++ linux-5.19.0/net/core/datagram.c @@ -675,7 +675,7 @@ page_ref_sub(last_head, refs); refs = 0; } - skb_fill_page_desc(skb, frag++, head, start, size); + skb_fill_page_desc_noacc(skb, frag++, head, start, size); } if (refs) page_ref_sub(last_head, refs); --- linux-5.19.0.orig/net/core/dev.c +++ linux-5.19.0/net/core/dev.c @@ -4168,6 +4168,7 @@ bool again = false; skb_reset_mac_header(skb); + skb_assert_len(skb); if (unlikely(skb_shinfo(skb)->tx_flags & SKBTX_SCHED_TSTAMP)) __skb_tstamp_tx(skb, NULL, NULL, skb->sk, SCM_TSTAMP_SCHED); @@ -4623,7 +4624,7 @@ struct softnet_data *sd; unsigned int old_flow, new_flow; - if (qlen < (netdev_max_backlog >> 1)) + if (qlen < (READ_ONCE(netdev_max_backlog) >> 1)) return false; sd = this_cpu_ptr(&softnet_data); @@ -4671,7 +4672,7 @@ if (!netif_running(skb->dev)) goto drop; qlen = skb_queue_len(&sd->input_pkt_queue); - if (qlen <= netdev_max_backlog && !skb_flow_limit(skb, qlen)) { + if (qlen <= READ_ONCE(netdev_max_backlog) && !skb_flow_limit(skb, qlen)) { if (qlen) { enqueue: __skb_queue_tail(&sd->input_pkt_queue, skb); @@ -4927,7 +4928,7 @@ { int ret; - net_timestamp_check(netdev_tstamp_prequeue, skb); + net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb); trace_netif_rx(skb); @@ -5135,11 +5136,13 @@ case TC_ACT_SHOT: mini_qdisc_qstats_cpu_drop(miniq); kfree_skb_reason(skb, SKB_DROP_REASON_TC_INGRESS); + *ret = NET_RX_DROP; return NULL; case TC_ACT_STOLEN: case TC_ACT_QUEUED: case TC_ACT_TRAP: consume_skb(skb); + *ret = NET_RX_SUCCESS; return NULL; case TC_ACT_REDIRECT: /* skb_mac_header check was done by cls/act_bpf, so @@ -5152,8 +5155,10 @@ *another = true; break; } + *ret = NET_RX_SUCCESS; return NULL; case TC_ACT_CONSUMED: + *ret = NET_RX_SUCCESS; return NULL; default: break; @@ -5280,7 +5285,7 @@ int ret = NET_RX_DROP; __be16 type; - net_timestamp_check(!netdev_tstamp_prequeue, skb); + net_timestamp_check(!READ_ONCE(netdev_tstamp_prequeue), skb); trace_netif_receive_skb(skb); @@ -5663,7 +5668,7 @@ { int ret; - net_timestamp_check(netdev_tstamp_prequeue, skb); + net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb); if (skb_defer_rx_timestamp(skb)) return NET_RX_SUCCESS; @@ -5693,7 +5698,7 @@ INIT_LIST_HEAD(&sublist); list_for_each_entry_safe(skb, next, head, list) { - net_timestamp_check(netdev_tstamp_prequeue, skb); + net_timestamp_check(READ_ONCE(netdev_tstamp_prequeue), skb); skb_list_del_init(skb); if (!skb_defer_rx_timestamp(skb)) list_add_tail(&skb->list, &sublist); @@ -5917,7 +5922,7 @@ net_rps_action_and_irq_enable(sd); } - napi->weight = dev_rx_weight; + napi->weight = READ_ONCE(dev_rx_weight); while (again) { struct sk_buff *skb; @@ -6646,8 +6651,8 @@ { struct softnet_data *sd = this_cpu_ptr(&softnet_data); unsigned long time_limit = jiffies + - usecs_to_jiffies(netdev_budget_usecs); - int budget = netdev_budget; + usecs_to_jiffies(READ_ONCE(netdev_budget_usecs)); + int budget = READ_ONCE(netdev_budget); LIST_HEAD(list); LIST_HEAD(repoll); @@ -10265,7 +10270,7 @@ return dev; if (time_after(jiffies, warning_time + - netdev_unregister_timeout_secs * HZ)) { + READ_ONCE(netdev_unregister_timeout_secs) * HZ)) { list_for_each_entry(dev, list, todo_list) { pr_emerg("unregister_netdevice: waiting for %s to become free. Usage count = %d\n", dev->name, netdev_refcnt_read(dev)); @@ -10375,24 +10380,16 @@ void netdev_stats_to_stats64(struct rtnl_link_stats64 *stats64, const struct net_device_stats *netdev_stats) { -#if BITS_PER_LONG == 64 - BUILD_BUG_ON(sizeof(*stats64) < sizeof(*netdev_stats)); - memcpy(stats64, netdev_stats, sizeof(*netdev_stats)); - /* zero out counters that only exist in rtnl_link_stats64 */ - memset((char *)stats64 + sizeof(*netdev_stats), 0, - sizeof(*stats64) - sizeof(*netdev_stats)); -#else - size_t i, n = sizeof(*netdev_stats) / sizeof(unsigned long); - const unsigned long *src = (const unsigned long *)netdev_stats; + size_t i, n = sizeof(*netdev_stats) / sizeof(atomic_long_t); + const atomic_long_t *src = (atomic_long_t *)netdev_stats; u64 *dst = (u64 *)stats64; BUILD_BUG_ON(n > sizeof(*stats64) / sizeof(u64)); for (i = 0; i < n; i++) - dst[i] = src[i]; + dst[i] = atomic_long_read(&src[i]); /* zero out counters that only exist in rtnl_link_stats64 */ memset((char *)stats64 + n * sizeof(u64), 0, sizeof(*stats64) - n * sizeof(u64)); -#endif } EXPORT_SYMBOL(netdev_stats_to_stats64); --- linux-5.19.0.orig/net/core/devlink.c +++ linux-5.19.0/net/core/devlink.c @@ -4943,7 +4943,7 @@ const struct devlink_param *param, struct devlink_param_gset_ctx *ctx) { - if (!param->get) + if (!param->get || devlink->reload_failed) return -EOPNOTSUPP; return param->get(devlink, param->id, ctx); } @@ -4952,7 +4952,7 @@ const struct devlink_param *param, struct devlink_param_gset_ctx *ctx) { - if (!param->set) + if (!param->set || devlink->reload_failed) return -EOPNOTSUPP; return param->set(devlink, param->id, ctx); } --- linux-5.19.0.orig/net/core/filter.c +++ linux-5.19.0/net/core/filter.c @@ -1214,10 +1214,11 @@ static bool __sk_filter_charge(struct sock *sk, struct sk_filter *fp) { u32 filter_size = bpf_prog_size(fp->prog->len); + int optmem_max = READ_ONCE(sysctl_optmem_max); /* same check as in sock_kmalloc() */ - if (filter_size <= sysctl_optmem_max && - atomic_read(&sk->sk_omem_alloc) + filter_size < sysctl_optmem_max) { + if (filter_size <= optmem_max && + atomic_read(&sk->sk_omem_alloc) + filter_size < optmem_max) { atomic_add(filter_size, &sk->sk_omem_alloc); return true; } @@ -1548,7 +1549,7 @@ if (IS_ERR(prog)) return PTR_ERR(prog); - if (bpf_prog_size(prog->len) > sysctl_optmem_max) + if (bpf_prog_size(prog->len) > READ_ONCE(sysctl_optmem_max)) err = -ENOMEM; else err = reuseport_attach_prog(sk, prog); @@ -1615,7 +1616,7 @@ } } else { /* BPF_PROG_TYPE_SOCKET_FILTER */ - if (bpf_prog_size(prog->len) > sysctl_optmem_max) { + if (bpf_prog_size(prog->len) > READ_ONCE(sysctl_optmem_max)) { err = -ENOMEM; goto err_prog_put; } @@ -2122,8 +2123,17 @@ { unsigned int mlen = skb_network_offset(skb); + if (unlikely(skb->len <= mlen)) { + kfree_skb(skb); + return -ERANGE; + } + if (mlen) { __skb_pull(skb, mlen); + if (unlikely(!skb->len)) { + kfree_skb(skb); + return -ERANGE; + } /* At ingress, the mac header has already been pulled once. * At egress, skb_pospull_rcsum has to be done in case that @@ -2143,7 +2153,7 @@ u32 flags) { /* Verify that a link layer header is carried */ - if (unlikely(skb->mac_header >= skb->network_header)) { + if (unlikely(skb->mac_header >= skb->network_header || skb->len == 0)) { kfree_skb(skb); return -ERANGE; } @@ -3918,7 +3928,7 @@ offset -= frag_size; } out: - return offset + len < size ? addr + offset : NULL; + return offset + len <= size ? addr + offset : NULL; } BPF_CALL_4(bpf_xdp_load_bytes, struct xdp_buff *, xdp, u32, offset, @@ -4653,6 +4663,7 @@ } else { info->key.u.ipv4.dst = cpu_to_be32(from->remote_ipv4); info->key.u.ipv4.src = cpu_to_be32(from->local_ipv4); + info->key.flow_flags = FLOWI_FLAG_ANYSRC; } return 0; @@ -5035,14 +5046,14 @@ /* Only some socketops are supported */ switch (optname) { case SO_RCVBUF: - val = min_t(u32, val, sysctl_rmem_max); + val = min_t(u32, val, READ_ONCE(sysctl_rmem_max)); val = min_t(int, val, INT_MAX / 2); sk->sk_userlocks |= SOCK_RCVBUF_LOCK; WRITE_ONCE(sk->sk_rcvbuf, max_t(int, val * 2, SOCK_MIN_RCVBUF)); break; case SO_SNDBUF: - val = min_t(u32, val, sysctl_wmem_max); + val = min_t(u32, val, READ_ONCE(sysctl_wmem_max)); val = min_t(int, val, INT_MAX / 2); sk->sk_userlocks |= SOCK_SNDBUF_LOCK; WRITE_ONCE(sk->sk_sndbuf, --- linux-5.19.0.orig/net/core/flow_dissector.c +++ linux-5.19.0/net/core/flow_dissector.c @@ -272,7 +272,7 @@ key->ct_zone = ct->zone.id; #endif #if IS_ENABLED(CONFIG_NF_CONNTRACK_MARK) - key->ct_mark = ct->mark; + key->ct_mark = READ_ONCE(ct->mark); #endif cl = nf_ct_labels_find(ct); @@ -1168,8 +1168,8 @@ nhoff += sizeof(*vlan); } - if (dissector_uses_key(flow_dissector, - FLOW_DISSECTOR_KEY_NUM_OF_VLANS)) { + if (dissector_uses_key(flow_dissector, FLOW_DISSECTOR_KEY_NUM_OF_VLANS) && + !(key_control->flags & FLOW_DIS_ENCAPSULATION)) { struct flow_dissector_key_num_of_vlans *key_nvs; key_nvs = skb_flow_dissector_target(flow_dissector, @@ -1572,9 +1572,8 @@ switch (keys->control.addr_type) { case FLOW_DISSECTOR_KEY_IPV4_ADDRS: - addr_diff = (__force u32)keys->addrs.v4addrs.dst - - (__force u32)keys->addrs.v4addrs.src; - if (addr_diff < 0) + if ((__force u32)keys->addrs.v4addrs.dst < + (__force u32)keys->addrs.v4addrs.src) swap(keys->addrs.v4addrs.src, keys->addrs.v4addrs.dst); if ((__force u16)keys->ports.dst < --- linux-5.19.0.orig/net/core/gen_stats.c +++ linux-5.19.0/net/core/gen_stats.c @@ -345,7 +345,7 @@ for_each_possible_cpu(i) { const struct gnet_stats_queue *qcpu = per_cpu_ptr(q, i); - qstats->qlen += qcpu->backlog; + qstats->qlen += qcpu->qlen; qstats->backlog += qcpu->backlog; qstats->drops += qcpu->drops; qstats->requeues += qcpu->requeues; --- linux-5.19.0.orig/net/core/gro_cells.c +++ linux-5.19.0/net/core/gro_cells.c @@ -26,7 +26,7 @@ cell = this_cpu_ptr(gcells->cells); - if (skb_queue_len(&cell->napi_skbs) > netdev_max_backlog) { + if (skb_queue_len(&cell->napi_skbs) > READ_ONCE(netdev_max_backlog)) { drop: dev_core_stats_rx_dropped_inc(dev); kfree_skb(skb); --- linux-5.19.0.orig/net/core/neighbour.c +++ linux-5.19.0/net/core/neighbour.c @@ -307,11 +307,26 @@ return 0; } -static void pneigh_queue_purge(struct sk_buff_head *list) +static void pneigh_queue_purge(struct sk_buff_head *list, struct net *net) { + struct sk_buff_head tmp; + unsigned long flags; struct sk_buff *skb; - while ((skb = skb_dequeue(list)) != NULL) { + skb_queue_head_init(&tmp); + spin_lock_irqsave(&list->lock, flags); + skb = skb_peek(list); + while (skb != NULL) { + struct sk_buff *skb_next = skb_peek_next(skb, list); + if (net == NULL || net_eq(dev_net(skb->dev), net)) { + __skb_unlink(skb, list); + __skb_queue_tail(&tmp, skb); + } + skb = skb_next; + } + spin_unlock_irqrestore(&list->lock, flags); + + while ((skb = __skb_dequeue(&tmp))) { dev_put(skb->dev); kfree_skb(skb); } @@ -385,9 +400,9 @@ write_lock_bh(&tbl->lock); neigh_flush_dev(tbl, dev, skip_perm); pneigh_ifdown_and_unlock(tbl, dev); - - del_timer_sync(&tbl->proxy_timer); - pneigh_queue_purge(&tbl->proxy_queue); + pneigh_queue_purge(&tbl->proxy_queue, dev ? dev_net(dev) : NULL); + if (skb_queue_empty_lockless(&tbl->proxy_queue)) + del_timer_sync(&tbl->proxy_timer); return 0; } @@ -1787,7 +1802,7 @@ cancel_delayed_work_sync(&tbl->managed_work); cancel_delayed_work_sync(&tbl->gc_work); del_timer_sync(&tbl->proxy_timer); - pneigh_queue_purge(&tbl->proxy_queue); + pneigh_queue_purge(&tbl->proxy_queue, NULL); neigh_ifdown(tbl, NULL); if (atomic_read(&tbl->entries)) pr_crit("neighbour leakage\n"); --- linux-5.19.0.orig/net/core/net_namespace.c +++ linux-5.19.0/net/core/net_namespace.c @@ -117,6 +117,7 @@ static int ops_init(const struct pernet_operations *ops, struct net *net) { + struct net_generic *ng; int err = -ENOMEM; void *data = NULL; @@ -135,7 +136,13 @@ if (!err) return 0; + if (ops->id && ops->size) { cleanup: + ng = rcu_dereference_protected(net->gen, + lockdep_is_held(&pernet_ops_rwsem)); + ng->ptr[*ops->id] = NULL; + } + kfree(data); out: --- linux-5.19.0.orig/net/core/rtnetlink.c +++ linux-5.19.0/net/core/rtnetlink.c @@ -6070,6 +6070,7 @@ if (kind == RTNL_KIND_DEL && (nlh->nlmsg_flags & NLM_F_BULK) && !(flags & RTNL_FLAG_BULK_DEL_SUPPORTED)) { NL_SET_ERR_MSG(extack, "Bulk delete is not supported"); + module_put(owner); goto err_unlock; } --- linux-5.19.0.orig/net/core/skbuff.c +++ linux-5.19.0/net/core/skbuff.c @@ -2279,6 +2279,9 @@ insp = list; } else { /* Eaten partially. */ + if (skb_is_gso(skb) && !list->head_frag && + skb_headlen(list)) + skb_shinfo(skb)->gso_type |= SKB_GSO_DODGY; if (skb_shared(list)) { /* Sucks! We need to fork list. :-( */ @@ -3838,7 +3841,7 @@ skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], size); } else if (i < MAX_SKB_FRAGS) { get_page(page); - skb_fill_page_desc(skb, i, page, offset, size); + skb_fill_page_desc_noacc(skb, i, page, offset, size); } else { return -EMSGSIZE; } @@ -4001,23 +4004,25 @@ int i = 0; int pos; - if (list_skb && !list_skb->head_frag && skb_headlen(list_skb) && - (skb_shinfo(head_skb)->gso_type & SKB_GSO_DODGY)) { - /* gso_size is untrusted, and we have a frag_list with a linear - * non head_frag head. - * - * (we assume checking the first list_skb member suffices; - * i.e if either of the list_skb members have non head_frag - * head, then the first one has too). - * - * If head_skb's headlen does not fit requested gso_size, it - * means that the frag_list members do NOT terminate on exact - * gso_size boundaries. Hence we cannot perform skb_frag_t page - * sharing. Therefore we must fallback to copying the frag_list - * skbs; we do so by disabling SG. - */ - if (mss != GSO_BY_FRAGS && mss != skb_headlen(head_skb)) - features &= ~NETIF_F_SG; + if ((skb_shinfo(head_skb)->gso_type & SKB_GSO_DODGY) && + mss != GSO_BY_FRAGS && mss != skb_headlen(head_skb)) { + struct sk_buff *check_skb; + + for (check_skb = list_skb; check_skb; check_skb = check_skb->next) { + if (skb_headlen(check_skb) && !check_skb->head_frag) { + /* gso_size is untrusted, and we have a frag_list with + * a linear non head_frag item. + * + * If head_skb's headlen does not fit requested gso_size, + * it means that the frag_list members do NOT terminate + * on exact gso_size boundaries. Hence we cannot perform + * skb_frag_t page sharing. Therefore we must fallback to + * copying the frag_list skbs; we do so by disabling SG. + */ + features &= ~NETIF_F_SG; + break; + } + } } __skb_push(head_skb, doffset); @@ -4179,9 +4184,8 @@ SKB_GSO_CB(nskb)->csum_start = skb_headroom(nskb) + doffset; } else { - skb_copy_bits(head_skb, offset, - skb_put(nskb, len), - len); + if (skb_copy_bits(head_skb, offset, skb_put(nskb, len), len)) + goto err; } continue; } @@ -4772,7 +4776,7 @@ { bool ret; - if (likely(sysctl_tstamp_allow_data || tsonly)) + if (likely(READ_ONCE(sysctl_tstamp_allow_data) || tsonly)) return true; read_lock_bh(&sk->sk_callback_lock); --- linux-5.19.0.orig/net/core/skmsg.c +++ linux-5.19.0/net/core/skmsg.c @@ -435,8 +435,10 @@ if (copied + copy > len) copy = len - copied; copy = copy_page_to_iter(page, sge->offset, copy, iter); - if (!copy) - return copied ? copied : -EFAULT; + if (!copy) { + copied = copied ? copied : -EFAULT; + goto out; + } copied += copy; if (likely(!peek)) { @@ -456,13 +458,13 @@ * didn't copy the entire length lets just break. */ if (copy != sge->length) - return copied; + goto out; sk_msg_iter_var_next(i); } if (copied == len) break; - } while (i != msg_rx->sg.end); + } while ((i != msg_rx->sg.end) && !sg_is_last(sge)); if (unlikely(peek)) { msg_rx = sk_psock_next_msg(psock, msg_rx); @@ -472,13 +474,15 @@ } msg_rx->sg.start = i; - if (!sge->length && msg_rx->sg.start == msg_rx->sg.end) { + if (!sge->length && (i == msg_rx->sg.end || sg_is_last(sge))) { msg_rx = sk_psock_dequeue_msg(psock); kfree_sk_msg(msg_rx); } msg_rx = sk_psock_peek_msg(psock); } - +out: + if (psock->work_state.skb && copied > 0) + schedule_work(&psock->work); return copied; } EXPORT_SYMBOL_GPL(sk_msg_recvmsg); @@ -720,6 +724,7 @@ psock->eval = __SK_NONE; psock->sk_proto = prot; psock->saved_unhash = prot->unhash; + psock->saved_destroy = prot->destroy; psock->saved_close = prot->close; psock->saved_write_space = sk->sk_write_space; @@ -735,7 +740,9 @@ sk_psock_set_state(psock, SK_PSOCK_TX_ENABLED); refcount_set(&psock->refcnt, 1); - rcu_assign_sk_user_data_nocopy(sk, psock); + __rcu_assign_sk_user_data_with_flags(sk, psock, + SK_USER_DATA_NOCOPY | + SK_USER_DATA_PSOCK); sock_hold(sk); out: @@ -794,16 +801,13 @@ } } -void sk_psock_stop(struct sk_psock *psock, bool wait) +void sk_psock_stop(struct sk_psock *psock) { spin_lock_bh(&psock->ingress_lock); sk_psock_clear_state(psock, SK_PSOCK_TX_ENABLED); sk_psock_cork_free(psock); __sk_psock_zap_ingress(psock); spin_unlock_bh(&psock->ingress_lock); - - if (wait) - cancel_work_sync(&psock->work); } static void sk_psock_done_strp(struct sk_psock *psock); @@ -841,7 +845,7 @@ sk_psock_stop_verdict(sk, psock); write_unlock_bh(&sk->sk_callback_lock); - sk_psock_stop(psock, false); + sk_psock_stop(psock); INIT_RCU_WORK(&psock->rwork, sk_psock_destroy); queue_rcu_work(system_wq, &psock->rwork); @@ -880,13 +884,16 @@ ret = sk_psock_map_verd(ret, msg->sk_redir); psock->apply_bytes = msg->apply_bytes; if (ret == __SK_REDIRECT) { - if (psock->sk_redir) + if (psock->sk_redir) { sock_put(psock->sk_redir); - psock->sk_redir = msg->sk_redir; - if (!psock->sk_redir) { + psock->sk_redir = NULL; + } + if (!msg->sk_redir) { ret = __SK_DROP; goto out; } + psock->redir_ingress = sk_msg_to_ingress(msg); + psock->sk_redir = msg->sk_redir; sock_hold(psock->sk_redir); } out: --- linux-5.19.0.orig/net/core/sock.c +++ linux-5.19.0/net/core/sock.c @@ -1100,7 +1100,7 @@ * play 'guess the biggest size' games. RCVBUF/SNDBUF * are treated in BSD as hints */ - val = min_t(u32, val, sysctl_wmem_max); + val = min_t(u32, val, READ_ONCE(sysctl_wmem_max)); set_sndbuf: /* Ensure val * 2 fits into an int, to prevent max_t() * from treating it as a negative value. @@ -1132,7 +1132,7 @@ * play 'guess the biggest size' games. RCVBUF/SNDBUF * are treated in BSD as hints */ - __sock_set_rcvbuf(sk, min_t(u32, val, sysctl_rmem_max)); + __sock_set_rcvbuf(sk, min_t(u32, val, READ_ONCE(sysctl_rmem_max))); break; case SO_RCVBUFFORCE: @@ -1399,7 +1399,7 @@ break; } case SO_INCOMING_CPU: - WRITE_ONCE(sk->sk_incoming_cpu, val); + reuseport_update_incoming_cpu(sk, val); break; case SO_CNX_ADVICE: @@ -2535,7 +2535,7 @@ /* small safe race: SKB_TRUESIZE may differ from final skb->truesize */ if (atomic_read(&sk->sk_omem_alloc) + SKB_TRUESIZE(size) > - sysctl_optmem_max) + READ_ONCE(sysctl_optmem_max)) return NULL; skb = alloc_skb(size, priority); @@ -2553,8 +2553,10 @@ */ void *sock_kmalloc(struct sock *sk, int size, gfp_t priority) { - if ((unsigned int)size <= sysctl_optmem_max && - atomic_read(&sk->sk_omem_alloc) + size < sysctl_optmem_max) { + int optmem_max = READ_ONCE(sysctl_optmem_max); + + if ((unsigned int)size <= optmem_max && + atomic_read(&sk->sk_omem_alloc) + size < optmem_max) { void *mem; /* First do the add, to avoid the race if kmalloc * might sleep. @@ -3307,8 +3309,8 @@ timer_setup(&sk->sk_timer, NULL, 0); sk->sk_allocation = GFP_KERNEL; - sk->sk_rcvbuf = sysctl_rmem_default; - sk->sk_sndbuf = sysctl_wmem_default; + sk->sk_rcvbuf = READ_ONCE(sysctl_rmem_default); + sk->sk_sndbuf = READ_ONCE(sysctl_wmem_default); sk->sk_state = TCP_CLOSE; sk_set_socket(sk, sock); @@ -3363,7 +3365,7 @@ #ifdef CONFIG_NET_RX_BUSY_POLL sk->sk_napi_id = 0; - sk->sk_ll_usec = sysctl_net_busy_read; + sk->sk_ll_usec = READ_ONCE(sysctl_net_busy_read); #endif sk->sk_max_pacing_rate = ~0UL; @@ -3552,7 +3554,8 @@ { struct sock *sk = sock->sk; - return sk->sk_prot->getsockopt(sk, level, optname, optval, optlen); + /* IPV6_ADDRFORM can change sk->sk_prot under us. */ + return READ_ONCE(sk->sk_prot)->getsockopt(sk, level, optname, optval, optlen); } EXPORT_SYMBOL(sock_common_getsockopt); @@ -3578,7 +3581,8 @@ { struct sock *sk = sock->sk; - return sk->sk_prot->setsockopt(sk, level, optname, optval, optlen); + /* IPV6_ADDRFORM can change sk->sk_prot under us. */ + return READ_ONCE(sk->sk_prot)->setsockopt(sk, level, optname, optval, optlen); } EXPORT_SYMBOL(sock_common_setsockopt); --- linux-5.19.0.orig/net/core/sock_map.c +++ linux-5.19.0/net/core/sock_map.c @@ -349,11 +349,13 @@ sk = xchg(psk, NULL); if (sk) { + sock_hold(sk); lock_sock(sk); rcu_read_lock(); sock_map_unref(sk, psk); rcu_read_unlock(); release_sock(sk); + sock_put(sk); } } @@ -783,13 +785,22 @@ { struct sock_map_seq_info *info = priv_data; + bpf_map_inc_with_uref(aux->map); info->map = aux->map; return 0; } +static void sock_map_fini_seq_private(void *priv_data) +{ + struct sock_map_seq_info *info = priv_data; + + bpf_map_put_with_uref(info->map); +} + static const struct bpf_iter_seq_info sock_map_iter_seq_info = { .seq_ops = &sock_map_seq_ops, .init_seq_private = sock_map_init_seq_private, + .fini_seq_private = sock_map_fini_seq_private, .seq_priv_size = sizeof(struct sock_map_seq_info), }; @@ -1369,18 +1380,27 @@ }; static int sock_hash_init_seq_private(void *priv_data, - struct bpf_iter_aux_info *aux) + struct bpf_iter_aux_info *aux) { struct sock_hash_seq_info *info = priv_data; + bpf_map_inc_with_uref(aux->map); info->map = aux->map; info->htab = container_of(aux->map, struct bpf_shtab, map); return 0; } +static void sock_hash_fini_seq_private(void *priv_data) +{ + struct sock_hash_seq_info *info = priv_data; + + bpf_map_put_with_uref(info->map); +} + static const struct bpf_iter_seq_info sock_hash_iter_seq_info = { .seq_ops = &sock_hash_seq_ops, .init_seq_private = sock_hash_init_seq_private, + .fini_seq_private = sock_hash_fini_seq_private, .seq_priv_size = sizeof(struct sock_hash_seq_info), }; @@ -1561,6 +1581,29 @@ } EXPORT_SYMBOL_GPL(sock_map_unhash); +void sock_map_destroy(struct sock *sk) +{ + void (*saved_destroy)(struct sock *sk); + struct sk_psock *psock; + + rcu_read_lock(); + psock = sk_psock_get(sk); + if (unlikely(!psock)) { + rcu_read_unlock(); + if (sk->sk_prot->destroy) + sk->sk_prot->destroy(sk); + return; + } + + saved_destroy = psock->saved_destroy; + sock_map_remove_links(sk, psock); + rcu_read_unlock(); + sk_psock_stop(psock); + sk_psock_put(sk, psock); + saved_destroy(sk); +} +EXPORT_SYMBOL_GPL(sock_map_destroy); + void sock_map_close(struct sock *sk, long timeout) { void (*saved_close)(struct sock *sk, long timeout); @@ -1578,9 +1621,10 @@ saved_close = psock->saved_close; sock_map_remove_links(sk, psock); rcu_read_unlock(); - sk_psock_stop(psock, true); - sk_psock_put(sk, psock); + sk_psock_stop(psock); release_sock(sk); + cancel_work_sync(&psock->work); + sk_psock_put(sk, psock); saved_close(sk, timeout); } EXPORT_SYMBOL_GPL(sock_map_close); --- linux-5.19.0.orig/net/core/sock_reuseport.c +++ linux-5.19.0/net/core/sock_reuseport.c @@ -21,6 +21,86 @@ static int reuseport_resurrect(struct sock *sk, struct sock_reuseport *old_reuse, struct sock_reuseport *reuse, bool bind_inany); +void reuseport_has_conns_set(struct sock *sk) +{ + struct sock_reuseport *reuse; + + if (!rcu_access_pointer(sk->sk_reuseport_cb)) + return; + + spin_lock_bh(&reuseport_lock); + reuse = rcu_dereference_protected(sk->sk_reuseport_cb, + lockdep_is_held(&reuseport_lock)); + if (likely(reuse)) + reuse->has_conns = 1; + spin_unlock_bh(&reuseport_lock); +} +EXPORT_SYMBOL(reuseport_has_conns_set); + +static void __reuseport_get_incoming_cpu(struct sock_reuseport *reuse) +{ + /* Paired with READ_ONCE() in reuseport_select_sock_by_hash(). */ + WRITE_ONCE(reuse->incoming_cpu, reuse->incoming_cpu + 1); +} + +static void __reuseport_put_incoming_cpu(struct sock_reuseport *reuse) +{ + /* Paired with READ_ONCE() in reuseport_select_sock_by_hash(). */ + WRITE_ONCE(reuse->incoming_cpu, reuse->incoming_cpu - 1); +} + +static void reuseport_get_incoming_cpu(struct sock *sk, struct sock_reuseport *reuse) +{ + if (sk->sk_incoming_cpu >= 0) + __reuseport_get_incoming_cpu(reuse); +} + +static void reuseport_put_incoming_cpu(struct sock *sk, struct sock_reuseport *reuse) +{ + if (sk->sk_incoming_cpu >= 0) + __reuseport_put_incoming_cpu(reuse); +} + +void reuseport_update_incoming_cpu(struct sock *sk, int val) +{ + struct sock_reuseport *reuse; + int old_sk_incoming_cpu; + + if (unlikely(!rcu_access_pointer(sk->sk_reuseport_cb))) { + /* Paired with REAE_ONCE() in sk_incoming_cpu_update() + * and compute_score(). + */ + WRITE_ONCE(sk->sk_incoming_cpu, val); + return; + } + + spin_lock_bh(&reuseport_lock); + + /* This must be done under reuseport_lock to avoid a race with + * reuseport_grow(), which accesses sk->sk_incoming_cpu without + * lock_sock() when detaching a shutdown()ed sk. + * + * Paired with READ_ONCE() in reuseport_select_sock_by_hash(). + */ + old_sk_incoming_cpu = sk->sk_incoming_cpu; + WRITE_ONCE(sk->sk_incoming_cpu, val); + + reuse = rcu_dereference_protected(sk->sk_reuseport_cb, + lockdep_is_held(&reuseport_lock)); + + /* reuseport_grow() has detached a closed sk. */ + if (!reuse) + goto out; + + if (old_sk_incoming_cpu < 0 && val >= 0) + __reuseport_get_incoming_cpu(reuse); + else if (old_sk_incoming_cpu >= 0 && val < 0) + __reuseport_put_incoming_cpu(reuse); + +out: + spin_unlock_bh(&reuseport_lock); +} + static int reuseport_sock_index(struct sock *sk, const struct sock_reuseport *reuse, bool closed) @@ -48,6 +128,7 @@ /* paired with smp_rmb() in reuseport_(select|migrate)_sock() */ smp_wmb(); reuse->num_socks++; + reuseport_get_incoming_cpu(sk, reuse); } static bool __reuseport_detach_sock(struct sock *sk, @@ -60,6 +141,7 @@ reuse->socks[i] = reuse->socks[reuse->num_socks - 1]; reuse->num_socks--; + reuseport_put_incoming_cpu(sk, reuse); return true; } @@ -70,6 +152,7 @@ reuse->socks[reuse->max_socks - reuse->num_closed_socks - 1] = sk; /* paired with READ_ONCE() in inet_csk_bind_conflict() */ WRITE_ONCE(reuse->num_closed_socks, reuse->num_closed_socks + 1); + reuseport_get_incoming_cpu(sk, reuse); } static bool __reuseport_detach_closed_sock(struct sock *sk, @@ -83,6 +166,7 @@ reuse->socks[i] = reuse->socks[reuse->max_socks - reuse->num_closed_socks]; /* paired with READ_ONCE() in inet_csk_bind_conflict() */ WRITE_ONCE(reuse->num_closed_socks, reuse->num_closed_socks - 1); + reuseport_put_incoming_cpu(sk, reuse); return true; } @@ -150,6 +234,7 @@ reuse->bind_inany = bind_inany; reuse->socks[0] = sk; reuse->num_socks = 1; + reuseport_get_incoming_cpu(sk, reuse); rcu_assign_pointer(sk->sk_reuseport_cb, reuse); out: @@ -193,6 +278,7 @@ more_reuse->reuseport_id = reuse->reuseport_id; more_reuse->bind_inany = reuse->bind_inany; more_reuse->has_conns = reuse->has_conns; + more_reuse->incoming_cpu = reuse->incoming_cpu; memcpy(more_reuse->socks, reuse->socks, reuse->num_socks * sizeof(struct sock *)); @@ -442,18 +528,32 @@ static struct sock *reuseport_select_sock_by_hash(struct sock_reuseport *reuse, u32 hash, u16 num_socks) { + struct sock *first_valid_sk = NULL; int i, j; i = j = reciprocal_scale(hash, num_socks); - while (reuse->socks[i]->sk_state == TCP_ESTABLISHED) { + do { + struct sock *sk = reuse->socks[i]; + + if (sk->sk_state != TCP_ESTABLISHED) { + /* Paired with WRITE_ONCE() in __reuseport_(get|put)_incoming_cpu(). */ + if (!READ_ONCE(reuse->incoming_cpu)) + return sk; + + /* Paired with WRITE_ONCE() in reuseport_update_incoming_cpu(). */ + if (READ_ONCE(sk->sk_incoming_cpu) == raw_smp_processor_id()) + return sk; + + if (!first_valid_sk) + first_valid_sk = sk; + } + i++; if (i >= num_socks) i = 0; - if (i == j) - return NULL; - } + } while (i != j); - return reuse->socks[i]; + return first_valid_sk; } /** --- linux-5.19.0.orig/net/core/stream.c +++ linux-5.19.0/net/core/stream.c @@ -159,7 +159,8 @@ *timeo_p = current_timeo; } out: - remove_wait_queue(sk_sleep(sk), &wait); + if (!sock_flag(sk, SOCK_DEAD)) + remove_wait_queue(sk_sleep(sk), &wait); return err; do_error: @@ -195,6 +196,12 @@ /* First the read buffer. */ __skb_queue_purge(&sk->sk_receive_queue); + /* Next, the error queue. + * We need to use queue lock, because other threads might + * add packets to the queue without socket lock being held. + */ + skb_queue_purge(&sk->sk_error_queue); + /* Next, the write queue. */ WARN_ON(!skb_queue_empty(&sk->sk_write_queue)); --- linux-5.19.0.orig/net/core/sysctl_net_core.c +++ linux-5.19.0/net/core/sysctl_net_core.c @@ -234,14 +234,17 @@ static int proc_do_dev_weight(struct ctl_table *table, int write, void *buffer, size_t *lenp, loff_t *ppos) { - int ret; + static DEFINE_MUTEX(dev_weight_mutex); + int ret, weight; + mutex_lock(&dev_weight_mutex); ret = proc_dointvec(table, write, buffer, lenp, ppos); - if (ret != 0) - return ret; - - dev_rx_weight = weight_p * dev_weight_rx_bias; - dev_tx_weight = weight_p * dev_weight_tx_bias; + if (!ret && write) { + weight = READ_ONCE(weight_p); + WRITE_ONCE(dev_rx_weight, weight * dev_weight_rx_bias); + WRITE_ONCE(dev_tx_weight, weight * dev_weight_tx_bias); + } + mutex_unlock(&dev_weight_mutex); return ret; } --- linux-5.19.0.orig/net/dccp/ipv4.c +++ linux-5.19.0/net/dccp/ipv4.c @@ -136,6 +136,8 @@ * This unhashes the socket and releases the local port, if necessary. */ dccp_set_state(sk, DCCP_CLOSED); + if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK)) + inet_reset_saddr(sk); ip_rt_put(rt); sk->sk_route_caps = 0; inet->inet_dport = 0; --- linux-5.19.0.orig/net/dccp/ipv6.c +++ linux-5.19.0/net/dccp/ipv6.c @@ -967,6 +967,8 @@ late_failure: dccp_set_state(sk, DCCP_CLOSED); + if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK)) + inet_reset_saddr(sk); __sk_dst_reset(sk); failure: inet->inet_dport = 0; --- linux-5.19.0.orig/net/dccp/minisocks.c +++ linux-5.19.0/net/dccp/minisocks.c @@ -94,6 +94,8 @@ newdp->dccps_role = DCCP_ROLE_SERVER; newdp->dccps_hc_rx_ackvec = NULL; + newdp->dccps_hc_rx_ccid = NULL; + newdp->dccps_hc_tx_ccid = NULL; newdp->dccps_service_list = NULL; newdp->dccps_hc_rx_ccid = NULL; newdp->dccps_hc_tx_ccid = NULL; --- linux-5.19.0.orig/net/dccp/proto.c +++ linux-5.19.0/net/dccp/proto.c @@ -736,11 +736,6 @@ lock_sock(sk); - if (dccp_qpolicy_full(sk)) { - rc = -EAGAIN; - goto out_release; - } - timeo = sock_sndtimeo(sk, noblock); /* @@ -759,6 +754,11 @@ if (skb == NULL) goto out_release; + if (dccp_qpolicy_full(sk)) { + rc = -EAGAIN; + goto out_discard; + } + if (sk->sk_state == DCCP_CLOSED) { rc = -ENOTCONN; goto out_discard; --- linux-5.19.0.orig/net/dsa/dsa2.c +++ linux-5.19.0/net/dsa/dsa2.c @@ -850,6 +850,14 @@ return err; } +static void dsa_switch_teardown_tag_protocol(struct dsa_switch *ds) +{ + const struct dsa_device_ops *tag_ops = ds->dst->tag_ops; + + if (tag_ops->disconnect) + tag_ops->disconnect(ds); +} + static int dsa_switch_setup(struct dsa_switch *ds) { struct dsa_devlink_priv *dl_priv; @@ -953,6 +961,8 @@ ds->slave_mii_bus = NULL; } + dsa_switch_teardown_tag_protocol(ds); + if (ds->ops->teardown) ds->ops->teardown(ds); @@ -1407,9 +1417,9 @@ static int dsa_port_parse_cpu(struct dsa_port *dp, struct net_device *master, const char *user_protocol) { + const struct dsa_device_ops *tag_ops = NULL; struct dsa_switch *ds = dp->ds; struct dsa_switch_tree *dst = ds->dst; - const struct dsa_device_ops *tag_ops; enum dsa_tag_protocol default_proto; /* Find out which protocol the switch would prefer. */ @@ -1432,10 +1442,17 @@ } tag_ops = dsa_find_tagger_by_name(user_protocol); - } else { - tag_ops = dsa_tag_driver_get(default_proto); + if (IS_ERR(tag_ops)) { + dev_warn(ds->dev, + "Failed to find a tagging driver for protocol %s, using default\n", + user_protocol); + tag_ops = NULL; + } } + if (!tag_ops) + tag_ops = dsa_tag_driver_get(default_proto); + if (IS_ERR(tag_ops)) { if (PTR_ERR(tag_ops) == -ENOPROTOOPT) return -EPROBE_DEFER; --- linux-5.19.0.orig/net/dsa/dsa_priv.h +++ linux-5.19.0/net/dsa/dsa_priv.h @@ -201,6 +201,7 @@ } /* port.c */ +bool dsa_port_supports_hwtstamp(struct dsa_port *dp, struct ifreq *ifr); void dsa_port_set_tag_protocol(struct dsa_port *cpu_dp, const struct dsa_device_ops *tag_ops); int dsa_port_set_state(struct dsa_port *dp, u8 state, bool do_fast_age); --- linux-5.19.0.orig/net/dsa/master.c +++ linux-5.19.0/net/dsa/master.c @@ -204,8 +204,7 @@ * switch in the tree that is PTP capable. */ list_for_each_entry(dp, &dst->ports, list) - if (dp->ds->ops->port_hwtstamp_get || - dp->ds->ops->port_hwtstamp_set) + if (dsa_port_supports_hwtstamp(dp, ifr)) return -EBUSY; break; } --- linux-5.19.0.orig/net/dsa/port.c +++ linux-5.19.0/net/dsa/port.c @@ -109,6 +109,22 @@ return !err; } +bool dsa_port_supports_hwtstamp(struct dsa_port *dp, struct ifreq *ifr) +{ + struct dsa_switch *ds = dp->ds; + int err; + + if (!ds->ops->port_hwtstamp_get || !ds->ops->port_hwtstamp_set) + return false; + + /* "See through" shim implementations of the "get" method. + * This will clobber the ifreq structure, but we will either return an + * error, or the master will overwrite it with proper values. + */ + err = ds->ops->port_hwtstamp_get(ds, dp->index, ifr); + return err != -EOPNOTSUPP; +} + int dsa_port_set_state(struct dsa_port *dp, u8 state, bool do_fast_age) { struct dsa_switch *ds = dp->ds; @@ -145,11 +161,14 @@ static void dsa_port_set_state_now(struct dsa_port *dp, u8 state, bool do_fast_age) { + struct dsa_switch *ds = dp->ds; int err; err = dsa_port_set_state(dp, state, do_fast_age); - if (err) - pr_err("DSA: failed to set STP state %u (%d)\n", state, err); + if (err && err != -EOPNOTSUPP) { + dev_err(ds->dev, "port %d failed to set STP state %u: %pe\n", + dp->index, state, ERR_PTR(err)); + } } int dsa_port_set_mst_state(struct dsa_port *dp, --- linux-5.19.0.orig/net/dsa/tag_8021q.c +++ linux-5.19.0/net/dsa/tag_8021q.c @@ -400,6 +400,7 @@ int dsa_tag_8021q_register(struct dsa_switch *ds, __be16 proto) { struct dsa_8021q_context *ctx; + int err; ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); if (!ctx) @@ -412,7 +413,15 @@ ds->tag_8021q_ctx = ctx; - return dsa_tag_8021q_setup(ds); + err = dsa_tag_8021q_setup(ds); + if (err) + goto err_free; + + return 0; + +err_free: + kfree(ctx); + return err; } EXPORT_SYMBOL_GPL(dsa_tag_8021q_register); --- linux-5.19.0.orig/net/dsa/tag_hellcreek.c +++ linux-5.19.0/net/dsa/tag_hellcreek.c @@ -45,11 +45,12 @@ skb->dev = dsa_master_find_slave(dev, 0, port); if (!skb->dev) { - netdev_warn(dev, "Failed to get source port: %d\n", port); + netdev_warn_once(dev, "Failed to get source port: %d\n", port); return NULL; } - pskb_trim_rcsum(skb, skb->len - HELLCREEK_TAG_LEN); + if (pskb_trim_rcsum(skb, skb->len - HELLCREEK_TAG_LEN)) + return NULL; dsa_default_offload_fwd_mark(skb); --- linux-5.19.0.orig/net/dsa/tag_ksz.c +++ linux-5.19.0/net/dsa/tag_ksz.c @@ -21,7 +21,8 @@ if (!skb->dev) return NULL; - pskb_trim_rcsum(skb, skb->len - len); + if (pskb_trim_rcsum(skb, skb->len - len)) + return NULL; dsa_default_offload_fwd_mark(skb); --- linux-5.19.0.orig/net/dsa/tag_sja1105.c +++ linux-5.19.0/net/dsa/tag_sja1105.c @@ -665,7 +665,8 @@ * padding and trailer we need to account for the fact that * skb->data points to skb_mac_header(skb) + ETH_HLEN. */ - pskb_trim_rcsum(skb, start_of_padding - ETH_HLEN); + if (pskb_trim_rcsum(skb, start_of_padding - ETH_HLEN)) + return NULL; /* Trap-to-host frame, no timestamp trailer */ } else { *source_port = SJA1110_RX_HEADER_SRC_PORT(rx_header); --- linux-5.19.0.orig/net/ethtool/eeprom.c +++ linux-5.19.0/net/ethtool/eeprom.c @@ -124,7 +124,7 @@ if (ret) goto err_free; - ret = get_module_eeprom_by_page(dev, &page_data, info->extack); + ret = get_module_eeprom_by_page(dev, &page_data, info ? info->extack : NULL); if (ret < 0) goto err_ops; --- linux-5.19.0.orig/net/ethtool/ioctl.c +++ linux-5.19.0/net/ethtool/ioctl.c @@ -2020,7 +2020,8 @@ } else { /* Driver expects to be called at twice the frequency in rc */ int n = rc * 2, interval = HZ / n; - u64 count = n * id.data, i = 0; + u64 count = mul_u32_u32(n, id.data); + u64 i = 0; do { rtnl_lock(); --- linux-5.19.0.orig/net/hsr/hsr_device.c +++ linux-5.19.0/net/hsr/hsr_device.c @@ -219,7 +219,9 @@ skb->dev = master->dev; skb_reset_mac_header(skb); skb_reset_mac_len(skb); + spin_lock_bh(&hsr->seqnr_lock); hsr_forward_skb(skb, master); + spin_unlock_bh(&hsr->seqnr_lock); } else { dev_core_stats_tx_dropped_inc(dev); dev_kfree_skb_any(skb); @@ -278,7 +280,6 @@ __u8 type = HSR_TLV_LIFE_CHECK; struct hsr_sup_payload *hsr_sp; struct hsr_sup_tag *hsr_stag; - unsigned long irqflags; struct sk_buff *skb; *interval = msecs_to_jiffies(HSR_LIFE_CHECK_INTERVAL); @@ -299,7 +300,7 @@ set_hsr_stag_HSR_ver(hsr_stag, hsr->prot_version); /* From HSRv1 on we have separate supervision sequence numbers. */ - spin_lock_irqsave(&master->hsr->seqnr_lock, irqflags); + spin_lock_bh(&hsr->seqnr_lock); if (hsr->prot_version > 0) { hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr); hsr->sup_sequence_nr++; @@ -307,7 +308,6 @@ hsr_stag->sequence_nr = htons(hsr->sequence_nr); hsr->sequence_nr++; } - spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); hsr_stag->tlv.HSR_TLV_type = type; /* TODO: Why 12 in HSRv0? */ @@ -318,11 +318,13 @@ hsr_sp = skb_put(skb, sizeof(struct hsr_sup_payload)); ether_addr_copy(hsr_sp->macaddress_A, master->dev->dev_addr); - if (skb_put_padto(skb, ETH_ZLEN)) + if (skb_put_padto(skb, ETH_ZLEN)) { + spin_unlock_bh(&hsr->seqnr_lock); return; + } hsr_forward_skb(skb, master); - + spin_unlock_bh(&hsr->seqnr_lock); return; } @@ -332,7 +334,6 @@ struct hsr_priv *hsr = master->hsr; struct hsr_sup_payload *hsr_sp; struct hsr_sup_tag *hsr_stag; - unsigned long irqflags; struct sk_buff *skb; skb = hsr_init_skb(master); @@ -347,7 +348,7 @@ set_hsr_stag_HSR_ver(hsr_stag, (hsr->prot_version ? 1 : 0)); /* From HSRv1 on we have separate supervision sequence numbers. */ - spin_lock_irqsave(&master->hsr->seqnr_lock, irqflags); + spin_lock_bh(&hsr->seqnr_lock); hsr_stag->sequence_nr = htons(hsr->sup_sequence_nr); hsr->sup_sequence_nr++; hsr_stag->tlv.HSR_TLV_type = PRP_TLV_LIFE_CHECK_DD; @@ -358,13 +359,12 @@ ether_addr_copy(hsr_sp->macaddress_A, master->dev->dev_addr); if (skb_put_padto(skb, ETH_ZLEN)) { - spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); + spin_unlock_bh(&hsr->seqnr_lock); return; } - spin_unlock_irqrestore(&master->hsr->seqnr_lock, irqflags); - hsr_forward_skb(skb, master); + spin_unlock_bh(&hsr->seqnr_lock); } /* Announce (supervision frame) timer function @@ -444,7 +444,7 @@ dev->header_ops = &hsr_header_ops; dev->netdev_ops = &hsr_device_ops; SET_NETDEV_DEVTYPE(dev, &hsr_type); - dev->priv_flags |= IFF_NO_QUEUE; + dev->priv_flags |= IFF_NO_QUEUE | IFF_DISABLE_NETPOLL; dev->needs_free_netdev = true; --- linux-5.19.0.orig/net/hsr/hsr_forward.c +++ linux-5.19.0/net/hsr/hsr_forward.c @@ -150,15 +150,15 @@ struct hsr_port *port) { if (!frame->skb_std) { - if (frame->skb_hsr) { + if (frame->skb_hsr) frame->skb_std = create_stripped_skb_hsr(frame->skb_hsr, frame); - } else { - /* Unexpected */ - WARN_ONCE(1, "%s:%d: Unexpected frame received (port_src %s)\n", - __FILE__, __LINE__, port->dev->name); + else + netdev_warn_once(port->dev, + "Unexpected frame received in hsr_get_untagged_frame()\n"); + + if (!frame->skb_std) return NULL; - } } return skb_clone(frame->skb_std, GFP_ATOMIC); @@ -351,17 +351,18 @@ struct hsr_node *node_src) { bool was_multicast_frame; - int res; + int res, recv_len; was_multicast_frame = (skb->pkt_type == PACKET_MULTICAST); hsr_addr_subst_source(node_src, skb); skb_pull(skb, ETH_HLEN); + recv_len = skb->len; res = netif_rx(skb); if (res == NET_RX_DROP) { dev->stats.rx_dropped++; } else { dev->stats.rx_packets++; - dev->stats.rx_bytes += skb->len; + dev->stats.rx_bytes += recv_len; if (was_multicast_frame) dev->stats.multicast++; } @@ -499,7 +500,6 @@ { struct hsr_port *port = frame->port_rcv; struct hsr_priv *hsr = port->hsr; - unsigned long irqflags; frame->skb_hsr = NULL; frame->skb_prp = NULL; @@ -509,10 +509,9 @@ frame->is_from_san = true; } else { /* Sequence nr for the master node */ - spin_lock_irqsave(&hsr->seqnr_lock, irqflags); + lockdep_assert_held(&hsr->seqnr_lock); frame->sequence_nr = hsr->sequence_nr; hsr->sequence_nr++; - spin_unlock_irqrestore(&hsr->seqnr_lock, irqflags); } } @@ -616,11 +615,13 @@ { struct hsr_frame_info frame; + rcu_read_lock(); if (fill_frame_info(&frame, skb, port) < 0) goto out_drop; hsr_register_frame_in(frame.node_src, port, frame.sequence_nr); hsr_forward_do(&frame); + rcu_read_unlock(); /* Gets called for ingress frames as well as egress from master port. * So check and increment stats for master port only here. */ @@ -635,6 +636,7 @@ return; out_drop: + rcu_read_unlock(); port->dev->stats.tx_dropped++; kfree_skb(skb); } --- linux-5.19.0.orig/net/hsr/hsr_framereg.c +++ linux-5.19.0/net/hsr/hsr_framereg.c @@ -182,6 +182,7 @@ return NULL; ether_addr_copy(new_node->macaddress_A, addr); + spin_lock_init(&new_node->seq_out_lock); /* We are only interested in time diffs here, so use current jiffies * as initialization. (0 could trigger an spurious ring error warning). @@ -382,6 +383,7 @@ } ether_addr_copy(node_real->macaddress_B, ethhdr->h_source); + spin_lock_bh(&node_real->seq_out_lock); for (i = 0; i < HSR_PT_PORTS; i++) { if (!node_curr->time_in_stale[i] && time_after(node_curr->time_in[i], node_real->time_in[i])) { @@ -392,12 +394,16 @@ if (seq_nr_after(node_curr->seq_out[i], node_real->seq_out[i])) node_real->seq_out[i] = node_curr->seq_out[i]; } + spin_unlock_bh(&node_real->seq_out_lock); node_real->addr_B_port = port_rcv->type; spin_lock_bh(&hsr->list_lock); - hlist_del_rcu(&node_curr->mac_list); + if (!node_curr->removed) { + hlist_del_rcu(&node_curr->mac_list); + node_curr->removed = true; + kfree_rcu(node_curr, rcu_head); + } spin_unlock_bh(&hsr->list_lock); - kfree_rcu(node_curr, rcu_head); done: /* Push back here */ @@ -484,13 +490,17 @@ int hsr_register_frame_out(struct hsr_port *port, struct hsr_node *node, u16 sequence_nr) { + spin_lock_bh(&node->seq_out_lock); if (seq_nr_before_or_eq(sequence_nr, node->seq_out[port->type]) && time_is_after_jiffies(node->time_out[port->type] + - msecs_to_jiffies(HSR_ENTRY_FORGET_TIME))) + msecs_to_jiffies(HSR_ENTRY_FORGET_TIME))) { + spin_unlock_bh(&node->seq_out_lock); return 1; + } node->time_out[port->type] = jiffies; node->seq_out[port->type] = sequence_nr; + spin_unlock_bh(&node->seq_out_lock); return 0; } @@ -581,11 +591,12 @@ if (time_is_before_jiffies(timestamp + msecs_to_jiffies(HSR_NODE_FORGET_TIME))) { hsr_nl_nodedown(hsr, node->macaddress_A); - hlist_del_rcu(&node->mac_list); - /* Note that we need to free this - * entry later: - */ - kfree_rcu(node, rcu_head); + if (!node->removed) { + hlist_del_rcu(&node->mac_list); + node->removed = true; + /* Note that we need to free this entry later: */ + kfree_rcu(node, rcu_head); + } } } } --- linux-5.19.0.orig/net/hsr/hsr_framereg.h +++ linux-5.19.0/net/hsr/hsr_framereg.h @@ -77,6 +77,8 @@ struct hsr_node { struct hlist_node mac_list; + /* Protect R/W access to seq_out */ + spinlock_t seq_out_lock; unsigned char macaddress_A[ETH_ALEN]; unsigned char macaddress_B[ETH_ALEN]; /* Local slave through which AddrB frames are received from this node */ @@ -88,6 +90,7 @@ bool san_a; bool san_b; u16 seq_out[HSR_PT_PORTS]; + bool removed; struct rcu_head rcu_head; }; --- linux-5.19.0.orig/net/ieee802154/socket.c +++ linux-5.19.0/net/ieee802154/socket.c @@ -200,8 +200,9 @@ int err = 0; struct net_device *dev = NULL; - if (len < sizeof(*uaddr)) - return -EINVAL; + err = ieee802154_sockaddr_check_size(uaddr, len); + if (err < 0) + return err; uaddr = (struct sockaddr_ieee802154 *)_uaddr; if (uaddr->family != AF_IEEE802154) @@ -271,6 +272,10 @@ err = -EMSGSIZE; goto out_dev; } + if (!size) { + err = 0; + goto out_dev; + } hlen = LL_RESERVED_SPACE(dev); tlen = dev->needed_tailroom; @@ -493,11 +498,14 @@ ro->bound = 0; - if (len < sizeof(*addr)) + err = ieee802154_sockaddr_check_size(addr, len); + if (err < 0) goto out; - if (addr->family != AF_IEEE802154) + if (addr->family != AF_IEEE802154) { + err = -EINVAL; goto out; + } ieee802154_addr_from_sa(&haddr, &addr->addr); dev = ieee802154_get_dev(sock_net(sk), &haddr); @@ -564,8 +572,9 @@ struct dgram_sock *ro = dgram_sk(sk); int err = 0; - if (len < sizeof(*addr)) - return -EINVAL; + err = ieee802154_sockaddr_check_size(addr, len); + if (err < 0) + return err; if (addr->family != AF_IEEE802154) return -EINVAL; @@ -604,6 +613,7 @@ struct ieee802154_mac_cb *cb; struct dgram_sock *ro = dgram_sk(sk); struct ieee802154_addr dst_addr; + DECLARE_SOCKADDR(struct sockaddr_ieee802154*, daddr, msg->msg_name); int hlen, tlen; int err; @@ -612,10 +622,20 @@ return -EOPNOTSUPP; } - if (!ro->connected && !msg->msg_name) - return -EDESTADDRREQ; - else if (ro->connected && msg->msg_name) - return -EISCONN; + if (msg->msg_name) { + if (ro->connected) + return -EISCONN; + if (msg->msg_namelen < IEEE802154_MIN_NAMELEN) + return -EINVAL; + err = ieee802154_sockaddr_check_size(daddr, msg->msg_namelen); + if (err < 0) + return err; + ieee802154_addr_from_sa(&dst_addr, &daddr->addr); + } else { + if (!ro->connected) + return -EDESTADDRREQ; + dst_addr = ro->dst_addr; + } if (!ro->bound) dev = dev_getfirstbyhwtype(sock_net(sk), ARPHRD_IEEE802154); @@ -651,16 +671,6 @@ cb = mac_cb_init(skb); cb->type = IEEE802154_FC_TYPE_DATA; cb->ackreq = ro->want_ack; - - if (msg->msg_name) { - DECLARE_SOCKADDR(struct sockaddr_ieee802154*, - daddr, msg->msg_name); - - ieee802154_addr_from_sa(&dst_addr, &daddr->addr); - } else { - dst_addr = ro->dst_addr; - } - cb->secen = ro->secen; cb->secen_override = ro->secen_override; cb->seclevel = ro->seclevel; --- linux-5.19.0.orig/net/ipv4/Kconfig +++ linux-5.19.0/net/ipv4/Kconfig @@ -402,6 +402,16 @@ If unsure, say Y. +config INET_TABLE_PERTURB_ORDER + int "INET: Source port perturbation table size (as power of 2)" if EXPERT + default 16 + help + Source port perturbation table size (as power of 2) for + RFC 6056 3.3.4. Algorithm 4: Double-Hash Port Selection Algorithm. + + The default is almost always what you want. + Only change this if you know what you are doing. + config INET_XFRM_TUNNEL tristate select INET_TUNNEL --- linux-5.19.0.orig/net/ipv4/af_inet.c +++ linux-5.19.0/net/ipv4/af_inet.c @@ -558,22 +558,27 @@ int addr_len, int flags) { struct sock *sk = sock->sk; + const struct proto *prot; int err; if (addr_len < sizeof(uaddr->sa_family)) return -EINVAL; + + /* IPV6_ADDRFORM can change sk->sk_prot under us. */ + prot = READ_ONCE(sk->sk_prot); + if (uaddr->sa_family == AF_UNSPEC) - return sk->sk_prot->disconnect(sk, flags); + return prot->disconnect(sk, flags); if (BPF_CGROUP_PRE_CONNECT_ENABLED(sk)) { - err = sk->sk_prot->pre_connect(sk, uaddr, addr_len); + err = prot->pre_connect(sk, uaddr, addr_len); if (err) return err; } if (data_race(!inet_sk(sk)->inet_num) && inet_autobind(sk)) return -EAGAIN; - return sk->sk_prot->connect(sk, uaddr, addr_len); + return prot->connect(sk, uaddr, addr_len); } EXPORT_SYMBOL(inet_dgram_connect); @@ -734,10 +739,11 @@ int inet_accept(struct socket *sock, struct socket *newsock, int flags, bool kern) { - struct sock *sk1 = sock->sk; + struct sock *sk1 = sock->sk, *sk2; int err = -EINVAL; - struct sock *sk2 = sk1->sk_prot->accept(sk1, flags, &err, kern); + /* IPV6_ADDRFORM can change sk->sk_prot under us. */ + sk2 = READ_ONCE(sk1->sk_prot)->accept(sk1, flags, &err, kern); if (!sk2) goto do_err; @@ -748,6 +754,8 @@ (TCPF_ESTABLISHED | TCPF_SYN_RECV | TCPF_CLOSE_WAIT | TCPF_CLOSE))); + if (test_bit(SOCK_SUPPORT_ZC, &sock->flags)) + set_bit(SOCK_SUPPORT_ZC, &newsock->flags); sock_graft(sk2, newsock); newsock->state = SS_CONNECTED; @@ -825,12 +833,15 @@ size_t size, int flags) { struct sock *sk = sock->sk; + const struct proto *prot; if (unlikely(inet_send_prepare(sk))) return -EAGAIN; - if (sk->sk_prot->sendpage) - return sk->sk_prot->sendpage(sk, page, offset, size, flags); + /* IPV6_ADDRFORM can change sk->sk_prot under us. */ + prot = READ_ONCE(sk->sk_prot); + if (prot->sendpage) + return prot->sendpage(sk, page, offset, size, flags); return sock_no_sendpage(sock, page, offset, size, flags); } EXPORT_SYMBOL(inet_sendpage); @@ -1919,6 +1930,8 @@ sock_skb_cb_check_size(sizeof(struct inet_skb_parm)); + raw_hashinfo_init(&raw_v4_hashinfo); + rc = proto_register(&tcp_prot, 1); if (rc) goto out; --- linux-5.19.0.orig/net/ipv4/cipso_ipv4.c +++ linux-5.19.0/net/ipv4/cipso_ipv4.c @@ -106,15 +106,17 @@ /* Base length of the local tag (non-standard tag). * Tag definition (may change between kernel versions) * - * 0 8 16 24 32 - * +----------+----------+----------+----------+ - * | 10000000 | 00000110 | 32-bit secid value | - * +----------+----------+----------+----------+ - * | in (host byte order)| - * +----------+----------+ - * + * 0 8 16 16 + sizeof(struct lsmblob) + * +----------+----------+---------------------+ + * | 10000000 | 00000110 | LSM blob data | + * +----------+----------+---------------------+ + * + * All secid and flag fields are in host byte order. + * The lsmblob structure size varies depending on which + * Linux security modules are built in the kernel. + * The data is opaque. */ -#define CIPSO_V4_TAG_LOC_BLEN 6 +#define CIPSO_V4_TAG_LOC_BLEN (2 + sizeof(struct lsmblob)) /* * Helper Functions @@ -1462,7 +1464,11 @@ buffer[0] = CIPSO_V4_TAG_LOCAL; buffer[1] = CIPSO_V4_TAG_LOC_BLEN; - *(u32 *)&buffer[2] = secattr->attr.secid; + /* Ensure that there is sufficient space in the CIPSO header + * for the LSM data. */ + BUILD_BUG_ON(CIPSO_V4_TAG_LOC_BLEN > CIPSO_V4_OPT_LEN_MAX); + memcpy(&buffer[2], &secattr->attr.lsmblob, + sizeof(secattr->attr.lsmblob)); return CIPSO_V4_TAG_LOC_BLEN; } @@ -1482,7 +1488,7 @@ const unsigned char *tag, struct netlbl_lsm_secattr *secattr) { - secattr->attr.secid = *(u32 *)&tag[2]; + memcpy(&secattr->attr.lsmblob, &tag[2], sizeof(secattr->attr.lsmblob)); secattr->flags |= NETLBL_SECATTR_SECID; return 0; --- linux-5.19.0.orig/net/ipv4/datagram.c +++ linux-5.19.0/net/ipv4/datagram.c @@ -42,6 +42,8 @@ oif = inet->mc_index; if (!saddr) saddr = inet->mc_addr; + } else if (!oif) { + oif = inet->uc_index; } fl4 = &inet->cork.fl.u.ip4; rt = ip_route_connect(fl4, usin->sin_addr.s_addr, saddr, oif, @@ -68,7 +70,7 @@ } inet->inet_daddr = fl4->daddr; inet->inet_dport = usin->sin_port; - reuseport_has_conns(sk, true); + reuseport_has_conns_set(sk); sk->sk_state = TCP_ESTABLISHED; sk_set_txhash(sk); inet->inet_id = prandom_u32(); --- linux-5.19.0.orig/net/ipv4/devinet.c +++ linux-5.19.0/net/ipv4/devinet.c @@ -2682,23 +2682,27 @@ #endif if (!net_eq(net, &init_net)) { - if (IS_ENABLED(CONFIG_SYSCTL) && - sysctl_devconf_inherit_init_net == 3) { + switch (net_inherit_devconf()) { + case 3: /* copy from the current netns */ memcpy(all, current->nsproxy->net_ns->ipv4.devconf_all, sizeof(ipv4_devconf)); memcpy(dflt, current->nsproxy->net_ns->ipv4.devconf_dflt, sizeof(ipv4_devconf_dflt)); - } else if (!IS_ENABLED(CONFIG_SYSCTL) || - sysctl_devconf_inherit_init_net != 2) { - /* inherit == 0 or 1: copy from init_net */ + break; + case 0: + case 1: + /* copy from init_net */ memcpy(all, init_net.ipv4.devconf_all, sizeof(ipv4_devconf)); memcpy(dflt, init_net.ipv4.devconf_dflt, sizeof(ipv4_devconf_dflt)); + break; + case 2: + /* use compiled values */ + break; } - /* else inherit == 2: use compiled values */ } #ifdef CONFIG_SYSCTL --- linux-5.19.0.orig/net/ipv4/esp4_offload.c +++ linux-5.19.0/net/ipv4/esp4_offload.c @@ -110,7 +110,10 @@ struct sk_buff *skb, netdev_features_t features) { - return skb_eth_gso_segment(skb, features, htons(ETH_P_IP)); + __be16 type = x->inner_mode.family == AF_INET6 ? htons(ETH_P_IPV6) + : htons(ETH_P_IP); + + return skb_eth_gso_segment(skb, features, type); } static struct sk_buff *xfrm4_transport_gso_segment(struct xfrm_state *x, @@ -311,6 +314,9 @@ xo->seq.low += skb_shinfo(skb)->gso_segs; } + if (xo->seq.low < seq) + xo->seq.hi++; + esp.seqno = cpu_to_be64(seq + ((u64)xo->seq.hi << 32)); ip_hdr(skb)->tot_len = htons(skb->len); --- linux-5.19.0.orig/net/ipv4/fib_frontend.c +++ linux-5.19.0/net/ipv4/fib_frontend.c @@ -389,7 +389,7 @@ dev_match = dev_match || (res.type == RTN_LOCAL && dev == net->loopback_dev); if (dev_match) { - ret = FIB_RES_NHC(res)->nhc_scope >= RT_SCOPE_HOST; + ret = FIB_RES_NHC(res)->nhc_scope >= RT_SCOPE_LINK; return ret; } if (no_addr) @@ -401,7 +401,7 @@ ret = 0; if (fib_lookup(net, &fl4, &res, FIB_LOOKUP_IGNORE_LINKSTATE) == 0) { if (res.type == RTN_UNICAST) - ret = FIB_RES_NHC(res)->nhc_scope >= RT_SCOPE_HOST; + ret = FIB_RES_NHC(res)->nhc_scope >= RT_SCOPE_LINK; } return ret; @@ -841,6 +841,9 @@ return -EINVAL; } + if (!cfg->fc_table) + cfg->fc_table = RT_TABLE_MAIN; + return 0; errout: return err; --- linux-5.19.0.orig/net/ipv4/fib_semantics.c +++ linux-5.19.0/net/ipv4/fib_semantics.c @@ -423,6 +423,7 @@ nfi->fib_prefsrc == fi->fib_prefsrc && nfi->fib_priority == fi->fib_priority && nfi->fib_type == fi->fib_type && + nfi->fib_tb_id == fi->fib_tb_id && memcmp(nfi->fib_metrics, fi->fib_metrics, sizeof(u32) * RTAX_MAX) == 0 && !((nfi->fib_flags ^ fi->fib_flags) & ~RTNH_COMPARE_MASK) && @@ -888,13 +889,15 @@ return 1; } + if (fi->nh) { + if (cfg->fc_oif || cfg->fc_gw_family || cfg->fc_mp) + return 1; + return 0; + } + if (cfg->fc_oif || cfg->fc_gw_family) { struct fib_nh *nh; - /* cannot match on nexthop object attributes */ - if (fi->nh) - return 1; - nh = fib_info_nh(fi, 0); if (cfg->fc_encap) { if (fib_encap_match(net, cfg->fc_encap_type, --- linux-5.19.0.orig/net/ipv4/fib_trie.c +++ linux-5.19.0/net/ipv4/fib_trie.c @@ -1381,8 +1381,10 @@ /* The alias was already inserted, so the node must exist. */ l = l ? l : fib_find_node(t, &tp, key); - if (WARN_ON_ONCE(!l)) + if (WARN_ON_ONCE(!l)) { + err = -ENOENT; goto out_free_new_fa; + } if (fib_find_alias(&l->leaf, new_fa->fa_slen, 0, 0, tb->tb_id, true) == new_fa) { --- linux-5.19.0.orig/net/ipv4/inet_connection_sock.c +++ linux-5.19.0/net/ipv4/inet_connection_sock.c @@ -1037,11 +1037,25 @@ } EXPORT_SYMBOL(inet_csk_prepare_forced_close); +static int inet_ulp_can_listen(const struct sock *sk) +{ + const struct inet_connection_sock *icsk = inet_csk(sk); + + if (icsk->icsk_ulp_ops && !icsk->icsk_ulp_ops->clone) + return -EINVAL; + + return 0; +} + int inet_csk_listen_start(struct sock *sk) { struct inet_connection_sock *icsk = inet_csk(sk); struct inet_sock *inet = inet_sk(sk); - int err = -EADDRINUSE; + int err; + + err = inet_ulp_can_listen(sk); + if (unlikely(err)) + return err; reqsk_queue_alloc(&icsk->icsk_accept_queue); @@ -1057,6 +1071,8 @@ * after validation is complete. */ inet_sk_state_store(sk, TCP_LISTEN); + /* get_port does not return an error code, yet */ + err = -EADDRINUSE; if (!sk->sk_prot->get_port(sk, inet->inet_num)) { inet->inet_sport = htons(inet->inet_num); --- linux-5.19.0.orig/net/ipv4/inet_hashtables.c +++ linux-5.19.0/net/ipv4/inet_hashtables.c @@ -679,13 +679,13 @@ * Note that we use 32bit integers (vs RFC 'short integers') * because 2^16 is not a multiple of num_ephemeral and this * property might be used by clever attacker. + * * RFC claims using TABLE_LENGTH=10 buckets gives an improvement, though - * attacks were since demonstrated, thus we use 65536 instead to really - * give more isolation and privacy, at the expense of 256kB of kernel - * memory. + * attacks were since demonstrated, thus we use 65536 by default instead + * to really give more isolation and privacy, at the expense of 256kB + * of kernel memory. */ -#define INET_TABLE_PERTURB_SHIFT 16 -#define INET_TABLE_PERTURB_SIZE (1 << INET_TABLE_PERTURB_SHIFT) +#define INET_TABLE_PERTURB_SIZE (1 << CONFIG_INET_TABLE_PERTURB_ORDER) static u32 *table_perturb; int __inet_hash_connect(struct inet_timewait_death_row *death_row, @@ -729,8 +729,8 @@ if (likely(remaining > 1)) remaining &= ~1U; - net_get_random_once(table_perturb, - INET_TABLE_PERTURB_SIZE * sizeof(*table_perturb)); + get_random_slow_once(table_perturb, + INET_TABLE_PERTURB_SIZE * sizeof(*table_perturb)); index = port_offset & (INET_TABLE_PERTURB_SIZE - 1); offset = READ_ONCE(table_perturb[index]) + (port_offset >> 32); --- linux-5.19.0.orig/net/ipv4/ip_gre.c +++ linux-5.19.0/net/ipv4/ip_gre.c @@ -609,7 +609,7 @@ ip_tunnel_init_flow(&fl4, IPPROTO_GRE, key->u.ipv4.dst, key->u.ipv4.src, tunnel_id_to_key32(key->tun_id), key->tos & ~INET_ECN_MASK, dev_net(dev), 0, - skb->mark, skb_get_hash(skb)); + skb->mark, skb_get_hash(skb), key->flow_flags); rt = ip_route_output_key(dev_net(dev), &fl4); if (IS_ERR(rt)) return PTR_ERR(rt); @@ -1492,24 +1492,6 @@ struct ip_tunnel_parm *p = &t->parms; __be16 o_flags = p->o_flags; - if (t->erspan_ver <= 2) { - if (t->erspan_ver != 0 && !t->collect_md) - o_flags |= TUNNEL_KEY; - - if (nla_put_u8(skb, IFLA_GRE_ERSPAN_VER, t->erspan_ver)) - goto nla_put_failure; - - if (t->erspan_ver == 1) { - if (nla_put_u32(skb, IFLA_GRE_ERSPAN_INDEX, t->index)) - goto nla_put_failure; - } else if (t->erspan_ver == 2) { - if (nla_put_u8(skb, IFLA_GRE_ERSPAN_DIR, t->dir)) - goto nla_put_failure; - if (nla_put_u16(skb, IFLA_GRE_ERSPAN_HWID, t->hwid)) - goto nla_put_failure; - } - } - if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) || nla_put_be16(skb, IFLA_GRE_IFLAGS, gre_tnl_flags_to_gre_flags(p->i_flags)) || @@ -1550,6 +1532,34 @@ return -EMSGSIZE; } +static int erspan_fill_info(struct sk_buff *skb, const struct net_device *dev) +{ + struct ip_tunnel *t = netdev_priv(dev); + + if (t->erspan_ver <= 2) { + if (t->erspan_ver != 0 && !t->collect_md) + t->parms.o_flags |= TUNNEL_KEY; + + if (nla_put_u8(skb, IFLA_GRE_ERSPAN_VER, t->erspan_ver)) + goto nla_put_failure; + + if (t->erspan_ver == 1) { + if (nla_put_u32(skb, IFLA_GRE_ERSPAN_INDEX, t->index)) + goto nla_put_failure; + } else if (t->erspan_ver == 2) { + if (nla_put_u8(skb, IFLA_GRE_ERSPAN_DIR, t->dir)) + goto nla_put_failure; + if (nla_put_u16(skb, IFLA_GRE_ERSPAN_HWID, t->hwid)) + goto nla_put_failure; + } + } + + return ipgre_fill_info(skb, dev); + +nla_put_failure: + return -EMSGSIZE; +} + static void erspan_setup(struct net_device *dev) { struct ip_tunnel *t = netdev_priv(dev); @@ -1628,7 +1638,7 @@ .changelink = erspan_changelink, .dellink = ip_tunnel_dellink, .get_size = ipgre_get_size, - .fill_info = ipgre_fill_info, + .fill_info = erspan_fill_info, .get_link_net = ip_tunnel_get_link_net, }; --- linux-5.19.0.orig/net/ipv4/ip_input.c +++ linux-5.19.0/net/ipv4/ip_input.c @@ -366,6 +366,11 @@ iph->tos, dev); if (unlikely(err)) goto drop_error; + } else { + struct in_device *in_dev = __in_dev_get_rcu(dev); + + if (in_dev && IN_DEV_ORCONF(in_dev, NOPOLICY)) + IPCB(skb)->flags |= IPSKB_NOPOLICY; } #ifdef CONFIG_IP_ROUTE_CLASSID --- linux-5.19.0.orig/net/ipv4/ip_output.c +++ linux-5.19.0/net/ipv4/ip_output.c @@ -1704,7 +1704,7 @@ tcp_hdr(skb)->source, tcp_hdr(skb)->dest, arg->uid); security_skb_classify_flow(skb, flowi4_to_flowi_common(&fl4)); - rt = ip_route_output_key(net, &fl4); + rt = ip_route_output_flow(net, &fl4, sk); if (IS_ERR(rt)) return; @@ -1712,7 +1712,7 @@ sk->sk_protocol = ip_hdr(skb)->protocol; sk->sk_bound_dev_if = arg->bound_dev_if; - sk->sk_sndbuf = sysctl_wmem_default; + sk->sk_sndbuf = READ_ONCE(sysctl_wmem_default); ipc.sockc.mark = fl4.flowi4_mark; err = ip_append_data(sk, &fl4, ip_reply_glue_bits, arg->iov->iov_base, len, 0, &ipc, &rt, MSG_DONTWAIT); --- linux-5.19.0.orig/net/ipv4/ip_sockglue.c +++ linux-5.19.0/net/ipv4/ip_sockglue.c @@ -130,20 +130,22 @@ static void ip_cmsg_recv_security(struct msghdr *msg, struct sk_buff *skb) { - char *secdata; - u32 seclen, secid; + struct lsmcontext context; + struct lsmblob lb; + u32 secid; int err; err = security_socket_getpeersec_dgram(NULL, skb, &secid); if (err) return; - err = security_secid_to_secctx(secid, &secdata, &seclen); + lsmblob_init(&lb, secid); + err = security_secid_to_secctx(&lb, &context, LSMBLOB_DISPLAY); if (err) return; - put_cmsg(msg, SOL_IP, SCM_SECURITY, seclen, secdata); - security_release_secctx(secdata, seclen); + put_cmsg(msg, SOL_IP, SCM_SECURITY, context.len, context.context); + security_release_secctx(&context); } static void ip_cmsg_recv_dstaddr(struct msghdr *msg, struct sk_buff *skb) @@ -772,7 +774,7 @@ if (optlen < GROUP_FILTER_SIZE(0)) return -EINVAL; - if (optlen > sysctl_optmem_max) + if (optlen > READ_ONCE(sysctl_optmem_max)) return -ENOBUFS; gsf = memdup_sockptr(optval, optlen); @@ -808,7 +810,7 @@ if (optlen < size0) return -EINVAL; - if (optlen > sysctl_optmem_max - 4) + if (optlen > READ_ONCE(sysctl_optmem_max) - 4) return -ENOBUFS; p = kmalloc(optlen + 4, GFP_KERNEL); @@ -1233,7 +1235,7 @@ if (optlen < IP_MSFILTER_SIZE(0)) goto e_inval; - if (optlen > sysctl_optmem_max) { + if (optlen > READ_ONCE(sysctl_optmem_max)) { err = -ENOBUFS; break; } --- linux-5.19.0.orig/net/ipv4/ip_tunnel.c +++ linux-5.19.0/net/ipv4/ip_tunnel.c @@ -295,7 +295,7 @@ ip_tunnel_init_flow(&fl4, iph->protocol, iph->daddr, iph->saddr, tunnel->parms.o_key, RT_TOS(iph->tos), dev_net(dev), - tunnel->parms.link, tunnel->fwmark, 0); + tunnel->parms.link, tunnel->fwmark, 0, 0); rt = ip_route_output_key(tunnel->net, &fl4); if (!IS_ERR(rt)) { @@ -570,7 +570,8 @@ } ip_tunnel_init_flow(&fl4, proto, key->u.ipv4.dst, key->u.ipv4.src, tunnel_id_to_key32(key->tun_id), RT_TOS(tos), - dev_net(dev), 0, skb->mark, skb_get_hash(skb)); + dev_net(dev), 0, skb->mark, skb_get_hash(skb), + key->flow_flags); if (tunnel->encap.type != TUNNEL_ENCAP_NONE) goto tx_error; @@ -728,7 +729,7 @@ ip_tunnel_init_flow(&fl4, protocol, dst, tnl_params->saddr, tunnel->parms.o_key, RT_TOS(tos), dev_net(dev), tunnel->parms.link, - tunnel->fwmark, skb_get_hash(skb)); + tunnel->fwmark, skb_get_hash(skb), 0); if (ip_tunnel_encap(skb, tunnel, &protocol, &fl4) < 0) goto tx_error; @@ -1189,7 +1190,7 @@ struct ip_tunnel_net *itn = net_generic(net, tunnel->ip_tnl_net_id); if (dev == itn->fb_tunnel_dev) - return -EINVAL; + return fan_has_map(&tunnel->fan) ? 0 : -EINVAL; t = ip_tunnel_find(itn, p, dev->type); --- linux-5.19.0.orig/net/ipv4/ipip.c +++ linux-5.19.0/net/ipv4/ipip.c @@ -101,6 +101,8 @@ #include #include #include +#include +#include #include #include @@ -266,6 +268,147 @@ } #endif +static struct ip_fan_map *ipip_fan_find_map(struct ip_tunnel *t, __be32 daddr) +{ + struct ip_fan_map *fan_map; + + rcu_read_lock(); + list_for_each_entry_rcu(fan_map, &t->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; +} + +/* Determine fan tunnel endpoint to send packet to, based on the inner IP + * address. + * + * Given a /8 overlay and /16 underlay, for an overlay (inner) address + * Y.A.B.C, the transformation is F.G.A.B, where "F" and "G" are the first + * two octets of the underlay network (the network portion of a /16), "A" + * and "B" are the low order two octets of the underlay network host (the + * host portion of a /16), and "Y" is a configured first octet of the + * overlay network. + * + * E.g., underlay host 10.88.3.4/16 with an overlay of 99.0.0.0/8 would + * host overlay subnet 99.3.4.0/24. An overlay network datagram from + * 99.3.4.5 to 99.6.7.8, would be directed to underlay host 10.88.6.7, + * which hosts overlay network subnet 99.6.7.0/24. This transformation is + * described in detail further below. + * + * Using netmasks for the overlay and underlay other than /8 and /16, as + * shown above, can yield larger (or smaller) overlay subnets, with the + * trade-off of allowing fewer (or more) underlay hosts to participate. + * + * The size of each overlay network subnet is defined by the total of the + * network mask of the overlay plus the size of host portion of the + * underlay network. In the above example, /8 + /16 = /24. + * + * E.g., consider underlay host 10.99.238.5/20 and overlay 99.0.0.0/8. In + * this case, the network portion of the underlay is 10.99.224.0/20, and + * the host portion is 0.0.14.5 (12 bits). To determine the overlay + * network subnet, the 12 bits of host portion are left shifted 12 bits + * (/20 - /8) and ORed with the overlay subnet prefix. This yields an + * overlay subnet of 99.224.80/20, composed of 8 bits overlay, followed by + * 12 bits underlay. This yields 12 bits in the overlay network portion, + * allowing for 4094 addresses in each overlay network subnet. The + * trade-off is that fewer hosts may participate in the underlay network, + * as its host address size has shrunk from 16 bits (65534 addresses) in + * the first example to 12 bits (4094 addresses) here. + * + * For fewer hosts per overlay subnet (permitting a larger number of + * underlay hosts to participate), the underlay netmask may be made + * smaller. + * + * E.g., underlay host 10.111.1.2/12 (network 10.96.0.0/12, host portion + * is 0.15.1.2, 20 bits) with an overlay of 33.0.0.0/8 would left shift + * the 20 bits of host by 4 (so that it's highest order bit is adjacent to + * the lowest order bit of the /8 overlay). This yields an overlay subnet + * of 33.240.16.32/28 (8 bits overlay, 20 bits from the host portion of + * the underlay). This provides more addresses for the underlay network + * (approximately 2^20), but each host's segment of the overlay provides + * only 4 bits of addresses (14 usable). + * + * It is also possible to adjust the overlay subnet. + * + * For an overlay of 240.0.0.0/5 and underlay of 10.88.0.0/20, consider + * underlay host 10.88.129.2; the 12 bits of host, 0.0.1.2, are left + * shifted 15 bits (/20 - /5), yielding an overlay network of + * 240.129.0.0/17. An underlay host of 10.88.244.215 would yield an + * overlay network of 242.107.128.0/17. + * + * For an overlay of 100.64.0.0/10 and underlay of 10.224.220.0/24, for + * underlay host 10.224.220.10, the underlay host portion (.10) is left + * shifted 14 bits, yielding an overlay network subnet of 100.66.128.0/18. + * This would permit 254 addresses on the underlay, with each overlay + * segment providing approximately 2^14 - 2 addresses (16382). + * + * For packets being encapsulated, the overlay network destination IP + * address is deconstructed into its overlay and underlay-derived + * portions. The underlay portion (determined by the overlay mask and + * overlay subnet mask) is right shifted according to the size of the + * underlay network mask. This value is then ORed with the network + * portion of the underlay network to produce the underlay network + * destination for the encapsulated datagram. + * + * For example, using the initial example of underlay 10.88.3.4/16 and + * overlay 99.0.0.0/8, with underlay host 10.88.3.4/16 providing overlay + * subnet 99.3.4.0/24 with specfic host 99.3.4.5. A datagram from + * 99.3.4.5 to 99.6.7.8 would first have the underlay host derived portion + * of the address extracted. This is a number of bits equal to underlay + * network host portion. In the destination address, the highest order of + * these bits is one bit lower than the lowest order bit from the overlay + * network mask. + * + * Using the sample value, 99.6.7.8, the overlay mask is /8, and the + * underlay mask is /16 (leaving 16 bits for the host portion). The bits + * to be shifted are the middle two octets, 0.6.7.0, as this is 99.6.7.8 + * ANDed with the mask 0x00ffff00 (which is 16 bits, the highest order of + * which is 1 bit lower than the lowest order overlay address bit). + * + * These octets, 0.6.7.0, are then right shifted 8 bits, yielding 0.0.6.7. + * This value is then ORed with the underlay network portion, + * 10.88.0.0/16, providing 10.88.6.7 as the final underlay destination for + * the encapuslated datagram. + * + * Another transform using the final example: overlay 100.64.0.0/10 and + * underlay 10.224.220.0/24. Consider overlay address 100.66.128.1 + * sending a datagram to 100.66.200.5. In this case, 8 bits (the host + * portion size of 10.224.220.0/24) beginning after the 100.64/10 overlay + * prefix are masked off, yielding 0.2.192.0. This is right shifted 14 + * (32 - 10 - (32 - 24), i.e., the number of bits between the overlay + * network portion and the underlay host portion) bits, yielding 0.0.0.11. + * This is ORed with the underlay network portion, 10.224.220.0/24, giving + * the underlay destination of 10.224.220.11 for overlay destination + * 100.66.200.5. + */ +static int ipip_build_fan_iphdr(struct ip_tunnel *tunnel, struct sk_buff *skb, struct iphdr *iph) +{ + struct ip_fan_map *f_map; + u32 daddr, underlay; + + f_map = ipip_fan_find_map(tunnel, ip_hdr(skb)->daddr); + if (!f_map) + return -ENOENT; + + daddr = ntohl(ip_hdr(skb)->daddr); + underlay = ntohl(f_map->underlay); + if (!underlay) + return -EINVAL; + + *iph = tunnel->parms.iph; + iph->daddr = htonl(underlay | + ((daddr & ~f_map->overlay_mask) >> + (32 - f_map->overlay_prefix - + (32 - f_map->underlay_prefix)))); + return 0; +} + /* * This function assumes it is being called from dev_queue_xmit() * and that skb is filled properly by that function. @@ -276,6 +419,7 @@ struct ip_tunnel *tunnel = netdev_priv(dev); const struct iphdr *tiph = &tunnel->parms.iph; u8 ipproto; + struct iphdr fiph; if (!pskb_inet_may_pull(skb)) goto tx_error; @@ -299,6 +443,14 @@ if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP4)) goto tx_error; + if (fan_has_map(&tunnel->fan)) { + if (ipip_build_fan_iphdr(tunnel, skb, &fiph)) + goto tx_error; + tiph = &fiph; + } else { + tiph = &tunnel->parms.iph; + } + skb_set_inner_ipproto(skb, ipproto); if (tunnel->collect_md) @@ -362,6 +514,8 @@ static void ipip_tunnel_setup(struct net_device *dev) { + struct ip_tunnel *t = netdev_priv(dev); + dev->netdev_ops = &ipip_netdev_ops; dev->header_ops = &ip_tunnel_header_ops; @@ -374,6 +528,7 @@ dev->features |= IPIP_FEATURES; dev->hw_features |= IPIP_FEATURES; ip_tunnel_setup(dev, ipip_net_id); + INIT_LIST_HEAD(&t->fan.fan_maps); } static int ipip_tunnel_init(struct net_device *dev) @@ -482,6 +637,93 @@ return ret; } +static void ipip_fan_flush_map(struct ip_tunnel *t) +{ + struct ip_fan_map *fan_map; + + list_for_each_entry_rcu(fan_map, &t->fan.fan_maps, list) { + list_del_rcu(&fan_map->list); + kfree_rcu(fan_map, rcu); + } +} + +static int ipip_fan_del_map(struct ip_tunnel *t, __be32 overlay) +{ + struct ip_fan_map *fan_map; + + fan_map = ipip_fan_find_map(t, overlay); + if (!fan_map) + return -ENOENT; + + list_del_rcu(&fan_map->list); + kfree_rcu(fan_map, rcu); + + return 0; +} + +static int ipip_fan_add_map(struct ip_tunnel *t, 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); + + 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) { + ipip_fan_flush_map(t); + return 0; + } + + /* Special case: overlay set and underlay 0: clear map for overlay */ + if (!map->underlay) + return ipip_fan_del_map(t, map->overlay); + + if (ipip_fan_find_map(t, 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, &t->fan.fan_maps); + + return 0; +} + + +static int ipip_netlink_fan(struct nlattr *data[], struct ip_tunnel *t, + struct ip_tunnel_parm *parms) +{ + struct ifla_fan_map *map; + struct nlattr *attr; + int rem, rv; + + if (data == NULL || !data[IFLA_IPTUN_FAN_MAP]) + return 0; + + if (parms->iph.daddr) + return -EINVAL; + + nla_for_each_nested(attr, data[IFLA_IPTUN_FAN_MAP], rem) { + map = nla_data(attr); + rv = ipip_fan_add_map(t, map); + if (rv) + return rv; + } + + return 0; +} + static int ipip_newlink(struct net *src_net, struct net_device *dev, struct nlattr *tb[], struct nlattr *data[], struct netlink_ext_ack *extack) @@ -490,15 +732,19 @@ struct ip_tunnel_parm p; struct ip_tunnel_encap ipencap; __u32 fwmark = 0; + int err; if (ipip_netlink_encap_parms(data, &ipencap)) { - int err = ip_tunnel_encap_setup(t, &ipencap); + err = ip_tunnel_encap_setup(t, &ipencap); if (err < 0) return err; } ipip_netlink_parms(data, &p, &t->collect_md, &fwmark); + err = ipip_netlink_fan(data, t, &p); + if (err < 0) + return err; return ip_tunnel_newlink(dev, tb, &p, fwmark); } @@ -511,9 +757,10 @@ struct ip_tunnel_encap ipencap; bool collect_md; __u32 fwmark = t->fwmark; + int err; if (ipip_netlink_encap_parms(data, &ipencap)) { - int err = ip_tunnel_encap_setup(t, &ipencap); + err = ip_tunnel_encap_setup(t, &ipencap); if (err < 0) return err; @@ -522,6 +769,9 @@ ipip_netlink_parms(data, &p, &collect_md, &fwmark); if (collect_md) return -EINVAL; + err = ipip_netlink_fan(data, t, &p); + if (err < 0) + return err; if (((dev->flags & IFF_POINTOPOINT) && !p.iph.daddr) || (!(dev->flags & IFF_POINTOPOINT) && p.iph.daddr)) @@ -559,6 +809,8 @@ nla_total_size(0) + /* IFLA_IPTUN_FWMARK */ nla_total_size(4) + + /* IFLA_IPTUN_FAN_MAP */ + nla_total_size(sizeof(struct ifla_fan_map)) * 256 + 0; } @@ -591,6 +843,26 @@ if (tunnel->collect_md) if (nla_put_flag(skb, IFLA_IPTUN_COLLECT_METADATA)) goto nla_put_failure; + if (fan_has_map(&tunnel->fan)) { + struct nlattr *fan_nest; + struct ip_fan_map *fan_map; + + fan_nest = nla_nest_start(skb, IFLA_IPTUN_FAN_MAP); + if (!fan_nest) + goto nla_put_failure; + list_for_each_entry_rcu(fan_map, &tunnel->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); + } + return 0; nla_put_failure: @@ -611,6 +883,9 @@ [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, + + [__IFLA_IPTUN_VENDOR_BREAK ... IFLA_IPTUN_MAX] = { .type = NLA_BINARY }, + [IFLA_IPTUN_FAN_MAP] = { .type = NLA_NESTED }, }; static struct rtnl_link_ops ipip_link_ops __read_mostly = { @@ -659,6 +934,23 @@ .size = sizeof(struct ip_tunnel_net), }; +#ifdef CONFIG_SYSCTL +static struct ctl_table_header *ipip_fan_header; +static unsigned int ipip_fan_version = 3; + +static struct ctl_table ipip_fan_sysctls[] = { + { + .procname = "version", + .data = &ipip_fan_version, + .maxlen = sizeof(ipip_fan_version), + .mode = 0444, + .proc_handler = proc_dointvec, + }, + {}, +}; + +#endif /* CONFIG_SYSCTL */ + static int __init ipip_init(void) { int err; @@ -684,9 +976,22 @@ if (err < 0) goto rtnl_link_failed; +#ifdef CONFIG_SYSCTL + ipip_fan_header = register_net_sysctl(&init_net, "net/fan", + ipip_fan_sysctls); + if (!ipip_fan_header) { + err = -ENOMEM; + goto sysctl_failed; + } +#endif /* CONFIG_SYSCTL */ + out: return err; +#ifdef CONFIG_SYSCTL +sysctl_failed: + rtnl_link_unregister(&ipip_link_ops); +#endif /* CONFIG_SYSCTL */ rtnl_link_failed: #if IS_ENABLED(CONFIG_MPLS) xfrm4_tunnel_deregister(&mplsip_handler, AF_MPLS); @@ -701,6 +1006,9 @@ static void __exit ipip_fini(void) { +#ifdef CONFIG_SYSCTL + unregister_net_sysctl_table(ipip_fan_header); +#endif /* CONFIG_SYSCTL */ rtnl_link_unregister(&ipip_link_ops); if (xfrm4_tunnel_deregister(&ipip_handler, AF_INET)) pr_info("%s: can't deregister tunnel\n", __func__); --- linux-5.19.0.orig/net/ipv4/netfilter/arp_tables.c +++ linux-5.19.0/net/ipv4/netfilter/arp_tables.c @@ -296,6 +296,17 @@ memcmp(&e->arp, &uncond, sizeof(uncond)) == 0; } +static bool next_offset_ok(const struct xt_table_info *t, unsigned int newpos) +{ + if (newpos > t->size - sizeof(struct arpt_entry)) + return false; + + if (newpos % __alignof__(struct arpt_entry) != 0) + return false; + + return true; +} + /* Figures out from what hook each rule can be called: returns 0 if * there are loops. Puts hook bitmask in comefrom. */ @@ -354,6 +365,8 @@ /* Move along one */ size = e->next_offset; + if (!next_offset_ok(newinfo, pos + size)) + return 0; e = entry0 + pos + size; if (pos + size >= newinfo->size) return 0; @@ -375,6 +388,10 @@ if (newpos >= newinfo->size) return 0; } + + if (!next_offset_ok(newinfo, newpos)) + return 0; + e = entry0 + newpos; e->counters.pcnt = pos; pos = newpos; --- linux-5.19.0.orig/net/ipv4/netfilter/ip_tables.c +++ linux-5.19.0/net/ipv4/netfilter/ip_tables.c @@ -363,6 +363,17 @@ else return verdict; } +static bool next_offset_ok(const struct xt_table_info *t, unsigned int newpos) +{ + if (newpos > t->size - sizeof(struct ipt_entry)) + return false; + + if (newpos % __alignof__(struct ipt_entry) != 0) + return false; + + return true; +} + /* Figures out from what hook each rule can be called: returns 0 if there are loops. Puts hook bitmask in comefrom. */ static int @@ -418,6 +429,8 @@ /* Move along one */ size = e->next_offset; + if (!next_offset_ok(newinfo, pos + size)) + return 0; e = entry0 + pos + size; if (pos + size >= newinfo->size) return 0; @@ -439,6 +452,10 @@ if (newpos >= newinfo->size) return 0; } + + if (!next_offset_ok(newinfo, newpos)) + return 0; + e = entry0 + newpos; e->counters.pcnt = pos; pos = newpos; --- linux-5.19.0.orig/net/ipv4/netfilter/ipt_CLUSTERIP.c +++ linux-5.19.0/net/ipv4/netfilter/ipt_CLUSTERIP.c @@ -435,7 +435,7 @@ switch (ctinfo) { case IP_CT_NEW: - ct->mark = hash; + WRITE_ONCE(ct->mark, hash); break; case IP_CT_RELATED: case IP_CT_RELATED_REPLY: @@ -452,7 +452,7 @@ #ifdef DEBUG nf_ct_dump_tuple_ip(&ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple); #endif - pr_debug("hash=%u ct_hash=%u ", hash, ct->mark); + pr_debug("hash=%u ct_hash=%u ", hash, READ_ONCE(ct->mark)); if (!clusterip_responsible(cipinfo->config, hash)) { pr_debug("not responsible\n"); return NF_DROP; --- linux-5.19.0.orig/net/ipv4/netfilter/ipt_rpfilter.c +++ linux-5.19.0/net/ipv4/netfilter/ipt_rpfilter.c @@ -78,7 +78,8 @@ flow.flowi4_mark = info->flags & XT_RPFILTER_VALID_MARK ? skb->mark : 0; flow.flowi4_tos = iph->tos & IPTOS_RT_MASK; flow.flowi4_scope = RT_SCOPE_UNIVERSE; - flow.flowi4_oif = l3mdev_master_ifindex_rcu(xt_in(par)); + flow.flowi4_l3mdev = l3mdev_master_ifindex_rcu(xt_in(par)); + flow.flowi4_uid = sock_net_uid(xt_net(par), NULL); return rpfilter_lookup_reverse(xt_net(par), &flow, xt_in(par), info->flags) ^ invert; } --- linux-5.19.0.orig/net/ipv4/netfilter/nft_fib_ipv4.c +++ linux-5.19.0/net/ipv4/netfilter/nft_fib_ipv4.c @@ -65,6 +65,7 @@ struct flowi4 fl4 = { .flowi4_scope = RT_SCOPE_UNIVERSE, .flowi4_iif = LOOPBACK_IFINDEX, + .flowi4_uid = sock_net_uid(nft_net(pkt), NULL), }; const struct net_device *oif; const struct net_device *found; @@ -83,6 +84,9 @@ else oif = NULL; + if (priv->flags & NFTA_FIB_F_IIF) + fl4.flowi4_l3mdev = l3mdev_master_ifindex_rcu(oif); + if (nft_hook(pkt) == NF_INET_PRE_ROUTING && nft_fib_is_loopback(pkt->skb, nft_in(pkt))) { nft_fib_store_result(dest, priv, nft_in(pkt)); --- linux-5.19.0.orig/net/ipv4/nexthop.c +++ linux-5.19.0/net/ipv4/nexthop.c @@ -2534,7 +2534,7 @@ if (!err) { nh->nh_flags = fib_nh->fib_nh_flags; fib_info_update_nhc_saddr(net, &fib_nh->nh_common, - fib_nh->fib_nh_scope); + !fib_nh->fib_nh_scope ? 0 : fib_nh->fib_nh_scope - 1); } else { fib_nh_release(net, fib_nh); } --- linux-5.19.0.orig/net/ipv4/ping.c +++ linux-5.19.0/net/ipv4/ping.c @@ -48,9 +48,14 @@ #include #endif +#define ping_portaddr_for_each_entry(__sk, node, list) \ + hlist_nulls_for_each_entry(__sk, node, list, sk_nulls_node) +#define ping_portaddr_for_each_entry_rcu(__sk, node, list) \ + hlist_nulls_for_each_entry_rcu(__sk, node, list, sk_nulls_node) + struct ping_table { struct hlist_nulls_head hash[PING_HTABLE_SIZE]; - rwlock_t lock; + spinlock_t lock; }; static struct ping_table ping_table; @@ -82,7 +87,7 @@ struct sock *sk2 = NULL; isk = inet_sk(sk); - write_lock_bh(&ping_table.lock); + spin_lock(&ping_table.lock); if (ident == 0) { u32 i; u16 result = ping_port_rover + 1; @@ -128,14 +133,15 @@ if (sk_unhashed(sk)) { pr_debug("was not hashed\n"); sock_hold(sk); - hlist_nulls_add_head(&sk->sk_nulls_node, hlist); + sock_set_flag(sk, SOCK_RCU_FREE); + hlist_nulls_add_head_rcu(&sk->sk_nulls_node, hlist); sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); } - write_unlock_bh(&ping_table.lock); + spin_unlock(&ping_table.lock); return 0; fail: - write_unlock_bh(&ping_table.lock); + spin_unlock(&ping_table.lock); return 1; } EXPORT_SYMBOL_GPL(ping_get_port); @@ -153,19 +159,19 @@ struct inet_sock *isk = inet_sk(sk); pr_debug("ping_unhash(isk=%p,isk->num=%u)\n", isk, isk->inet_num); - write_lock_bh(&ping_table.lock); + spin_lock(&ping_table.lock); if (sk_hashed(sk)) { - hlist_nulls_del(&sk->sk_nulls_node); - sk_nulls_node_init(&sk->sk_nulls_node); + hlist_nulls_del_init_rcu(&sk->sk_nulls_node); sock_put(sk); isk->inet_num = 0; isk->inet_sport = 0; sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); } - write_unlock_bh(&ping_table.lock); + spin_unlock(&ping_table.lock); } EXPORT_SYMBOL_GPL(ping_unhash); +/* Called under rcu_read_lock() */ static struct sock *ping_lookup(struct net *net, struct sk_buff *skb, u16 ident) { struct hlist_nulls_head *hslot = ping_hashslot(&ping_table, net, ident); @@ -190,9 +196,7 @@ return NULL; } - read_lock_bh(&ping_table.lock); - - ping_portaddr_for_each_entry(sk, hnode, hslot) { + ping_portaddr_for_each_entry_rcu(sk, hnode, hslot) { isk = inet_sk(sk); pr_debug("iterate\n"); @@ -230,13 +234,11 @@ sk->sk_bound_dev_if != sdif) continue; - sock_hold(sk); goto exit; } sk = NULL; exit: - read_unlock_bh(&ping_table.lock); return sk; } @@ -592,7 +594,7 @@ sk->sk_err = err; sk_error_report(sk); out: - sock_put(sk); + return; } EXPORT_SYMBOL_GPL(ping_err); @@ -998,7 +1000,6 @@ reason = __ping_queue_rcv_skb(sk, skb2); else reason = SKB_DROP_REASON_NOMEM; - sock_put(sk); } if (reason) @@ -1084,13 +1085,13 @@ } void *ping_seq_start(struct seq_file *seq, loff_t *pos, sa_family_t family) - __acquires(ping_table.lock) + __acquires(RCU) { struct ping_iter_state *state = seq->private; state->bucket = 0; state->family = family; - read_lock_bh(&ping_table.lock); + rcu_read_lock(); return *pos ? ping_get_idx(seq, *pos-1) : SEQ_START_TOKEN; } @@ -1116,9 +1117,9 @@ EXPORT_SYMBOL_GPL(ping_seq_next); void ping_seq_stop(struct seq_file *seq, void *v) - __releases(ping_table.lock) + __releases(RCU) { - read_unlock_bh(&ping_table.lock); + rcu_read_unlock(); } EXPORT_SYMBOL_GPL(ping_seq_stop); @@ -1202,5 +1203,5 @@ for (i = 0; i < PING_HTABLE_SIZE; i++) INIT_HLIST_NULLS_HEAD(&ping_table.hash[i], i); - rwlock_init(&ping_table.lock); + spin_lock_init(&ping_table.lock); } --- linux-5.19.0.orig/net/ipv4/raw.c +++ linux-5.19.0/net/ipv4/raw.c @@ -85,20 +85,19 @@ int hlen; }; -struct raw_hashinfo raw_v4_hashinfo = { - .lock = __RW_LOCK_UNLOCKED(raw_v4_hashinfo.lock), -}; +struct raw_hashinfo raw_v4_hashinfo; EXPORT_SYMBOL_GPL(raw_v4_hashinfo); int raw_hash_sk(struct sock *sk) { struct raw_hashinfo *h = sk->sk_prot->h.raw_hash; - struct hlist_head *head; + struct hlist_nulls_head *hlist; - head = &h->ht[inet_sk(sk)->inet_num & (RAW_HTABLE_SIZE - 1)]; + hlist = &h->ht[inet_sk(sk)->inet_num & (RAW_HTABLE_SIZE - 1)]; write_lock_bh(&h->lock); - sk_add_node(sk, head); + hlist_nulls_add_head_rcu(&sk->sk_nulls_node, hlist); + sock_set_flag(sk, SOCK_RCU_FREE); write_unlock_bh(&h->lock); sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); @@ -111,30 +110,25 @@ struct raw_hashinfo *h = sk->sk_prot->h.raw_hash; write_lock_bh(&h->lock); - if (sk_del_node_init(sk)) + if (__sk_nulls_del_node_init_rcu(sk)) sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); write_unlock_bh(&h->lock); } EXPORT_SYMBOL_GPL(raw_unhash_sk); -struct sock *__raw_v4_lookup(struct net *net, struct sock *sk, - unsigned short num, __be32 raddr, __be32 laddr, - int dif, int sdif) -{ - sk_for_each_from(sk) { - struct inet_sock *inet = inet_sk(sk); - - if (net_eq(sock_net(sk), net) && inet->inet_num == num && - !(inet->inet_daddr && inet->inet_daddr != raddr) && - !(inet->inet_rcv_saddr && inet->inet_rcv_saddr != laddr) && - raw_sk_bound_dev_eq(net, sk->sk_bound_dev_if, dif, sdif)) - goto found; /* gotcha */ - } - sk = NULL; -found: - return sk; +bool raw_v4_match(struct net *net, struct sock *sk, unsigned short num, + __be32 raddr, __be32 laddr, int dif, int sdif) +{ + struct inet_sock *inet = inet_sk(sk); + + if (net_eq(sock_net(sk), net) && inet->inet_num == num && + !(inet->inet_daddr && inet->inet_daddr != raddr) && + !(inet->inet_rcv_saddr && inet->inet_rcv_saddr != laddr) && + raw_sk_bound_dev_eq(net, sk->sk_bound_dev_if, dif, sdif)) + return true; + return false; } -EXPORT_SYMBOL_GPL(__raw_v4_lookup); +EXPORT_SYMBOL_GPL(raw_v4_match); /* * 0 - deliver @@ -168,23 +162,20 @@ */ static int raw_v4_input(struct sk_buff *skb, const struct iphdr *iph, int hash) { + struct net *net = dev_net(skb->dev); + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; int sdif = inet_sdif(skb); int dif = inet_iif(skb); - struct sock *sk; - struct hlist_head *head; int delivered = 0; - struct net *net; - - read_lock(&raw_v4_hashinfo.lock); - head = &raw_v4_hashinfo.ht[hash]; - if (hlist_empty(head)) - goto out; - - net = dev_net(skb->dev); - sk = __raw_v4_lookup(net, __sk_head(head), iph->protocol, - iph->saddr, iph->daddr, dif, sdif); + struct sock *sk; - while (sk) { + hlist = &raw_v4_hashinfo.ht[hash]; + rcu_read_lock(); + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { + if (!raw_v4_match(net, sk, iph->protocol, + iph->saddr, iph->daddr, dif, sdif)) + continue; delivered = 1; if ((iph->protocol != IPPROTO_ICMP || !icmp_filter(sk, skb)) && ip_mc_sf_allow(sk, iph->daddr, iph->saddr, @@ -195,31 +186,16 @@ if (clone) raw_rcv(sk, clone); } - sk = __raw_v4_lookup(net, sk_next(sk), iph->protocol, - iph->saddr, iph->daddr, - dif, sdif); } -out: - read_unlock(&raw_v4_hashinfo.lock); + rcu_read_unlock(); return delivered; } int raw_local_deliver(struct sk_buff *skb, int protocol) { - int hash; - struct sock *raw_sk; - - hash = protocol & (RAW_HTABLE_SIZE - 1); - raw_sk = sk_head(&raw_v4_hashinfo.ht[hash]); - - /* If there maybe a raw socket we must check - if not we - * don't care less - */ - if (raw_sk && !raw_v4_input(skb, ip_hdr(skb), hash)) - raw_sk = NULL; - - return raw_sk != NULL; + int hash = protocol & (RAW_HTABLE_SIZE - 1); + return raw_v4_input(skb, ip_hdr(skb), hash); } static void raw_err(struct sock *sk, struct sk_buff *skb, u32 info) @@ -286,31 +262,27 @@ void raw_icmp_error(struct sk_buff *skb, int protocol, u32 info) { - int hash; - struct sock *raw_sk; + struct net *net = dev_net(skb->dev); + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; + int dif = skb->dev->ifindex; + int sdif = inet_sdif(skb); const struct iphdr *iph; - struct net *net; + struct sock *sk; + int hash; hash = protocol & (RAW_HTABLE_SIZE - 1); + hlist = &raw_v4_hashinfo.ht[hash]; - read_lock(&raw_v4_hashinfo.lock); - raw_sk = sk_head(&raw_v4_hashinfo.ht[hash]); - if (raw_sk) { - int dif = skb->dev->ifindex; - int sdif = inet_sdif(skb); - + rcu_read_lock(); + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { iph = (const struct iphdr *)skb->data; - net = dev_net(skb->dev); - - while ((raw_sk = __raw_v4_lookup(net, raw_sk, protocol, - iph->daddr, iph->saddr, - dif, sdif)) != NULL) { - raw_err(raw_sk, skb, info); - raw_sk = sk_next(raw_sk); - iph = (const struct iphdr *)skb->data; - } + if (!raw_v4_match(net, sk, iph->protocol, + iph->daddr, iph->saddr, dif, sdif)) + continue; + raw_err(sk, skb, info); } - read_unlock(&raw_v4_hashinfo.lock); + rcu_read_unlock(); } static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb) @@ -971,44 +943,41 @@ }; #ifdef CONFIG_PROC_FS -static struct sock *raw_get_first(struct seq_file *seq) +static struct sock *raw_get_first(struct seq_file *seq, int bucket) { - struct sock *sk; struct raw_hashinfo *h = pde_data(file_inode(seq->file)); struct raw_iter_state *state = raw_seq_private(seq); + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; + struct sock *sk; - for (state->bucket = 0; state->bucket < RAW_HTABLE_SIZE; + for (state->bucket = bucket; state->bucket < RAW_HTABLE_SIZE; ++state->bucket) { - sk_for_each(sk, &h->ht[state->bucket]) + hlist = &h->ht[state->bucket]; + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { if (sock_net(sk) == seq_file_net(seq)) - goto found; + return sk; + } } - sk = NULL; -found: - return sk; + return NULL; } static struct sock *raw_get_next(struct seq_file *seq, struct sock *sk) { - struct raw_hashinfo *h = pde_data(file_inode(seq->file)); struct raw_iter_state *state = raw_seq_private(seq); do { - sk = sk_next(sk); -try_again: - ; + sk = sk_nulls_next(sk); } while (sk && sock_net(sk) != seq_file_net(seq)); - if (!sk && ++state->bucket < RAW_HTABLE_SIZE) { - sk = sk_head(&h->ht[state->bucket]); - goto try_again; - } + if (!sk) + return raw_get_first(seq, state->bucket + 1); return sk; } static struct sock *raw_get_idx(struct seq_file *seq, loff_t pos) { - struct sock *sk = raw_get_first(seq); + struct sock *sk = raw_get_first(seq, 0); if (sk) while (pos && (sk = raw_get_next(seq, sk)) != NULL) @@ -1017,11 +986,9 @@ } void *raw_seq_start(struct seq_file *seq, loff_t *pos) - __acquires(&h->lock) + __acquires(RCU) { - struct raw_hashinfo *h = pde_data(file_inode(seq->file)); - - read_lock(&h->lock); + rcu_read_lock(); return *pos ? raw_get_idx(seq, *pos - 1) : SEQ_START_TOKEN; } EXPORT_SYMBOL_GPL(raw_seq_start); @@ -1031,7 +998,7 @@ struct sock *sk; if (v == SEQ_START_TOKEN) - sk = raw_get_first(seq); + sk = raw_get_first(seq, 0); else sk = raw_get_next(seq, v); ++*pos; @@ -1040,11 +1007,9 @@ EXPORT_SYMBOL_GPL(raw_seq_next); void raw_seq_stop(struct seq_file *seq, void *v) - __releases(&h->lock) + __releases(RCU) { - struct raw_hashinfo *h = pde_data(file_inode(seq->file)); - - read_unlock(&h->lock); + rcu_read_unlock(); } EXPORT_SYMBOL_GPL(raw_seq_stop); @@ -1106,6 +1071,7 @@ int __init raw_proc_init(void) { + return register_pernet_subsys(&raw_net_ops); } --- linux-5.19.0.orig/net/ipv4/raw_diag.c +++ linux-5.19.0/net/ipv4/raw_diag.c @@ -34,57 +34,57 @@ * use helper to figure it out. */ -static struct sock *raw_lookup(struct net *net, struct sock *from, - const struct inet_diag_req_v2 *req) +static bool raw_lookup(struct net *net, struct sock *sk, + const struct inet_diag_req_v2 *req) { struct inet_diag_req_raw *r = (void *)req; - struct sock *sk = NULL; if (r->sdiag_family == AF_INET) - sk = __raw_v4_lookup(net, from, r->sdiag_raw_protocol, - r->id.idiag_dst[0], - r->id.idiag_src[0], - r->id.idiag_if, 0); + return raw_v4_match(net, sk, r->sdiag_raw_protocol, + r->id.idiag_dst[0], + r->id.idiag_src[0], + r->id.idiag_if, 0); #if IS_ENABLED(CONFIG_IPV6) else - sk = __raw_v6_lookup(net, from, r->sdiag_raw_protocol, - (const struct in6_addr *)r->id.idiag_src, - (const struct in6_addr *)r->id.idiag_dst, - r->id.idiag_if, 0); + return raw_v6_match(net, sk, r->sdiag_raw_protocol, + (const struct in6_addr *)r->id.idiag_src, + (const struct in6_addr *)r->id.idiag_dst, + r->id.idiag_if, 0); #endif - return sk; + return false; } static struct sock *raw_sock_get(struct net *net, const struct inet_diag_req_v2 *r) { struct raw_hashinfo *hashinfo = raw_get_hashinfo(r); - struct sock *sk = NULL, *s; + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; + struct sock *sk; int slot; if (IS_ERR(hashinfo)) return ERR_CAST(hashinfo); - read_lock(&hashinfo->lock); + rcu_read_lock(); for (slot = 0; slot < RAW_HTABLE_SIZE; slot++) { - sk_for_each(s, &hashinfo->ht[slot]) { - sk = raw_lookup(net, s, r); - if (sk) { + hlist = &hashinfo->ht[slot]; + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { + if (raw_lookup(net, sk, r)) { /* * Grab it and keep until we fill - * diag meaage to be reported, so + * diag message to be reported, so * caller should call sock_put then. - * We can do that because we're keeping - * hashinfo->lock here. */ - sock_hold(sk); - goto out_unlock; + if (refcount_inc_not_zero(&sk->sk_refcnt)) + goto out_unlock; } } } + sk = ERR_PTR(-ENOENT); out_unlock: - read_unlock(&hashinfo->lock); + rcu_read_unlock(); - return sk ? sk : ERR_PTR(-ENOENT); + return sk; } static int raw_diag_dump_one(struct netlink_callback *cb, @@ -142,6 +142,8 @@ struct raw_hashinfo *hashinfo = raw_get_hashinfo(r); struct net *net = sock_net(skb->sk); struct inet_diag_dump_data *cb_data; + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; int num, s_num, slot, s_slot; struct sock *sk = NULL; struct nlattr *bc; @@ -158,7 +160,8 @@ for (slot = s_slot; slot < RAW_HTABLE_SIZE; s_num = 0, slot++) { num = 0; - sk_for_each(sk, &hashinfo->ht[slot]) { + hlist = &hashinfo->ht[slot]; + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { struct inet_sock *inet = inet_sk(sk); if (!net_eq(sock_net(sk), net)) --- linux-5.19.0.orig/net/ipv4/tcp.c +++ linux-5.19.0/net/ipv4/tcp.c @@ -455,6 +455,7 @@ WRITE_ONCE(sk->sk_sndbuf, READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_wmem[1])); WRITE_ONCE(sk->sk_rcvbuf, READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[1])); + set_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags); sk_sockets_allocated_inc(sk); } EXPORT_SYMBOL(tcp_init_sock); @@ -952,6 +953,23 @@ return 0; } +static int tcp_wmem_schedule(struct sock *sk, int copy) +{ + int left; + + if (likely(sk_wmem_schedule(sk, copy))) + return copy; + + /* We could be in trouble if we have nothing queued. + * Use whatever is left in sk->sk_forward_alloc and tcp_wmem[0] + * to guarantee some progress. + */ + left = sock_net(sk)->ipv4.sysctl_tcp_wmem[0] - sk->sk_wmem_queued; + if (left > 0) + sk_forced_mem_schedule(sk, min(left, copy)); + return min(copy, sk->sk_forward_alloc); +} + static struct sk_buff *tcp_build_frag(struct sock *sk, int size_goal, int flags, struct page *page, int offset, size_t *size) { @@ -983,18 +1001,22 @@ i = skb_shinfo(skb)->nr_frags; can_coalesce = skb_can_coalesce(skb, i, page, offset); - if (!can_coalesce && i >= sysctl_max_skb_frags) { + if (!can_coalesce && i >= READ_ONCE(sysctl_max_skb_frags)) { tcp_mark_push(tp, skb); goto new_segment; } - if (tcp_downgrade_zcopy_pure(sk, skb) || !sk_wmem_schedule(sk, copy)) + if (tcp_downgrade_zcopy_pure(sk, skb)) + return NULL; + + copy = tcp_wmem_schedule(sk, copy); + if (!copy) return NULL; if (can_coalesce) { skb_frag_size_add(&skb_shinfo(skb)->frags[i - 1], copy); } else { get_page(page); - skb_fill_page_desc(skb, i, page, offset, copy); + skb_fill_page_desc_noacc(skb, i, page, offset, copy); } if (!(flags & MSG_NO_SHARED_FRAGS)) @@ -1327,7 +1349,7 @@ if (!skb_can_coalesce(skb, i, pfrag->page, pfrag->offset)) { - if (i >= sysctl_max_skb_frags) { + if (i >= READ_ONCE(sysctl_max_skb_frags)) { tcp_mark_push(tp, skb); goto new_segment; } @@ -1336,8 +1358,11 @@ copy = min_t(int, copy, pfrag->size - pfrag->offset); - if (tcp_downgrade_zcopy_pure(sk, skb) || - !sk_wmem_schedule(sk, copy)) + if (tcp_downgrade_zcopy_pure(sk, skb)) + goto wait_for_space; + + copy = tcp_wmem_schedule(sk, copy); + if (!copy) goto wait_for_space; err = skb_copy_to_page_nocache(sk, &msg->msg_iter, skb, @@ -1364,7 +1389,8 @@ skb_shinfo(skb)->flags |= SKBFL_PURE_ZEROCOPY; if (!skb_zcopy_pure(skb)) { - if (!sk_wmem_schedule(sk, copy)) + copy = tcp_wmem_schedule(sk, copy); + if (!copy) goto wait_for_space; } @@ -3017,6 +3043,8 @@ tp->snd_ssthresh = TCP_INFINITE_SSTHRESH; tcp_snd_cwnd_set(tp, TCP_INIT_CWND); tp->snd_cwnd_cnt = 0; + tp->is_cwnd_limited = 0; + tp->max_packets_out = 0; tp->window_clamp = 0; tp->delivered = 0; tp->delivered_ce = 0; @@ -3525,7 +3553,7 @@ case TCP_REPAIR_OPTIONS: if (!tp->repair) err = -EINVAL; - else if (sk->sk_state == TCP_ESTABLISHED) + else if (sk->sk_state == TCP_ESTABLISHED && !tp->bytes_sent) err = tcp_repair_options_est(sk, optval, optlen); else err = -EPERM; @@ -3675,8 +3703,9 @@ const struct inet_connection_sock *icsk = inet_csk(sk); if (level != SOL_TCP) - return icsk->icsk_af_ops->setsockopt(sk, level, optname, - optval, optlen); + /* Paired with WRITE_ONCE() in do_ipv6_setsockopt() and tcp_v6_connect() */ + return READ_ONCE(icsk->icsk_af_ops)->setsockopt(sk, level, optname, + optval, optlen); return do_tcp_setsockopt(sk, level, optname, optval, optlen); } EXPORT_SYMBOL(tcp_setsockopt); @@ -4274,8 +4303,9 @@ struct inet_connection_sock *icsk = inet_csk(sk); if (level != SOL_TCP) - return icsk->icsk_af_ops->getsockopt(sk, level, optname, - optval, optlen); + /* Paired with WRITE_ONCE() in do_ipv6_setsockopt() and tcp_v6_connect() */ + return READ_ONCE(icsk->icsk_af_ops)->getsockopt(sk, level, optname, + optval, optlen); return do_tcp_getsockopt(sk, level, optname, optval, optlen); } EXPORT_SYMBOL(tcp_getsockopt); @@ -4322,12 +4352,16 @@ * to memory. See smp_rmb() in tcp_get_md5sig_pool() */ smp_wmb(); - tcp_md5sig_pool_populated = true; + /* Paired with READ_ONCE() from tcp_alloc_md5sig_pool() + * and tcp_get_md5sig_pool(). + */ + WRITE_ONCE(tcp_md5sig_pool_populated, true); } bool tcp_alloc_md5sig_pool(void) { - if (unlikely(!tcp_md5sig_pool_populated)) { + /* Paired with WRITE_ONCE() from __tcp_alloc_md5sig_pool() */ + if (unlikely(!READ_ONCE(tcp_md5sig_pool_populated))) { mutex_lock(&tcp_md5sig_mutex); if (!tcp_md5sig_pool_populated) { @@ -4338,7 +4372,8 @@ mutex_unlock(&tcp_md5sig_mutex); } - return tcp_md5sig_pool_populated; + /* Paired with WRITE_ONCE() from __tcp_alloc_md5sig_pool() */ + return READ_ONCE(tcp_md5sig_pool_populated); } EXPORT_SYMBOL(tcp_alloc_md5sig_pool); @@ -4354,7 +4389,8 @@ { local_bh_disable(); - if (tcp_md5sig_pool_populated) { + /* Paired with WRITE_ONCE() from __tcp_alloc_md5sig_pool() */ + if (READ_ONCE(tcp_md5sig_pool_populated)) { /* coupled with smp_wmb() in __tcp_alloc_md5sig_pool() */ smp_rmb(); return this_cpu_ptr(&tcp_md5sig_pool); --- linux-5.19.0.orig/net/ipv4/tcp_bpf.c +++ linux-5.19.0/net/ipv4/tcp_bpf.c @@ -45,8 +45,11 @@ tmp->sg.end = i; if (apply) { apply_bytes -= size; - if (!apply_bytes) + if (!apply_bytes) { + if (sge->length) + sk_msg_iter_var_prev(i); break; + } } } while (i != msg->sg.end); @@ -131,10 +134,9 @@ return ret; } -int tcp_bpf_sendmsg_redir(struct sock *sk, struct sk_msg *msg, - u32 bytes, int flags) +int tcp_bpf_sendmsg_redir(struct sock *sk, bool ingress, + struct sk_msg *msg, u32 bytes, int flags) { - bool ingress = sk_msg_to_ingress(msg); struct sk_psock *psock = sk_psock_get(sk); int ret; @@ -276,10 +278,10 @@ static int tcp_bpf_send_verdict(struct sock *sk, struct sk_psock *psock, struct sk_msg *msg, int *copied, int flags) { - bool cork = false, enospc = sk_msg_full(msg); + bool cork = false, enospc = sk_msg_full(msg), redir_ingress; struct sock *sk_redir; - u32 tosend, delta = 0; - u32 eval = __SK_NONE; + u32 tosend, origsize, sent, delta = 0; + u32 eval; int ret; more_data: @@ -310,6 +312,7 @@ tosend = msg->sg.size; if (psock->apply_bytes && psock->apply_bytes < tosend) tosend = psock->apply_bytes; + eval = __SK_NONE; switch (psock->eval) { case __SK_PASS: @@ -321,6 +324,7 @@ sk_msg_apply_bytes(psock, tosend); break; case __SK_REDIRECT: + redir_ingress = psock->redir_ingress; sk_redir = psock->sk_redir; sk_msg_apply_bytes(psock, tosend); if (!psock->apply_bytes) { @@ -333,10 +337,13 @@ cork = true; psock->cork = NULL; } - sk_msg_return(sk, msg, msg->sg.size); + sk_msg_return(sk, msg, tosend); release_sock(sk); - ret = tcp_bpf_sendmsg_redir(sk_redir, msg, tosend, flags); + origsize = msg->sg.size; + ret = tcp_bpf_sendmsg_redir(sk_redir, redir_ingress, + msg, tosend, flags); + sent = origsize - msg->sg.size; if (eval == __SK_REDIRECT) sock_put(sk_redir); @@ -375,7 +382,7 @@ msg->sg.data[msg->sg.start].page_link && msg->sg.data[msg->sg.start].length) { if (eval == __SK_REDIRECT) - sk_mem_charge(sk, msg->sg.size); + sk_mem_charge(sk, tosend - sent); goto more_data; } } @@ -540,6 +547,7 @@ struct proto *base) { prot[TCP_BPF_BASE] = *base; + prot[TCP_BPF_BASE].destroy = sock_map_destroy; prot[TCP_BPF_BASE].close = sock_map_close; prot[TCP_BPF_BASE].recvmsg = tcp_bpf_recvmsg; prot[TCP_BPF_BASE].sock_is_readable = sk_msg_is_readable; @@ -606,7 +614,7 @@ } else { sk->sk_write_space = psock->saved_write_space; /* Pairs with lockless read in sk_clone_lock() */ - WRITE_ONCE(sk->sk_prot, psock->sk_proto); + sock_replace_proto(sk, psock->sk_proto); } return 0; } @@ -619,7 +627,7 @@ } /* Pairs with lockless read in sk_clone_lock() */ - WRITE_ONCE(sk->sk_prot, &tcp_bpf_prots[family][config]); + sock_replace_proto(sk, &tcp_bpf_prots[family][config]); return 0; } EXPORT_SYMBOL_GPL(tcp_bpf_update_proto); --- linux-5.19.0.orig/net/ipv4/tcp_cdg.c +++ linux-5.19.0/net/ipv4/tcp_cdg.c @@ -375,6 +375,7 @@ struct cdg *ca = inet_csk_ca(sk); struct tcp_sock *tp = tcp_sk(sk); + ca->gradients = NULL; /* We silently fall back to window = 1 if allocation fails. */ if (window > 1) ca->gradients = kcalloc(window, sizeof(ca->gradients[0]), @@ -388,6 +389,7 @@ struct cdg *ca = inet_csk_ca(sk); kfree(ca->gradients); + ca->gradients = NULL; } static struct tcp_congestion_ops tcp_cdg __read_mostly = { --- linux-5.19.0.orig/net/ipv4/tcp_input.c +++ linux-5.19.0/net/ipv4/tcp_input.c @@ -2193,7 +2193,8 @@ */ static bool tcp_check_sack_reneging(struct sock *sk, int flag) { - if (flag & FLAG_SACK_RENEGING) { + if (flag & FLAG_SACK_RENEGING && + flag & FLAG_SND_UNA_ADVANCED) { struct tcp_sock *tp = tcp_sk(sk); unsigned long delay = max(usecs_to_jiffies(tp->srtt_us >> 4), msecs_to_jiffies(10)); @@ -2514,6 +2515,21 @@ return tp->undo_marker && (!tp->undo_retrans || tcp_packet_delayed(tp)); } +static bool tcp_is_non_sack_preventing_reopen(struct sock *sk) +{ + struct tcp_sock *tp = tcp_sk(sk); + + if (tp->snd_una == tp->high_seq && tcp_is_reno(tp)) { + /* Hold old state until something *above* high_seq + * is ACKed. For Reno it is MUST to prevent false + * fast retransmits (RFC2582). SACK TCP is safe. */ + if (!tcp_any_retrans_done(sk)) + tp->retrans_stamp = 0; + return true; + } + return false; +} + /* People celebrate: "We love our President!" */ static bool tcp_try_undo_recovery(struct sock *sk) { @@ -2536,14 +2552,8 @@ } else if (tp->rack.reo_wnd_persist) { tp->rack.reo_wnd_persist--; } - if (tp->snd_una == tp->high_seq && tcp_is_reno(tp)) { - /* Hold old state until something *above* high_seq - * is ACKed. For Reno it is MUST to prevent false - * fast retransmits (RFC2582). SACK TCP is safe. */ - if (!tcp_any_retrans_done(sk)) - tp->retrans_stamp = 0; + if (tcp_is_non_sack_preventing_reopen(sk)) return true; - } tcp_set_ca_state(sk, TCP_CA_Open); tp->is_sack_reneg = 0; return false; @@ -2579,6 +2589,8 @@ NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPSPURIOUSRTOS); inet_csk(sk)->icsk_retransmits = 0; + if (tcp_is_non_sack_preventing_reopen(sk)) + return true; if (frto_undo || tcp_is_sack(tp)) { tcp_set_ca_state(sk, TCP_CA_Open); tp->is_sack_reneg = 0; @@ -3630,11 +3642,11 @@ /* Then check host-wide RFC 5961 rate limit. */ now = jiffies / HZ; - if (now != challenge_timestamp) { + if (now != READ_ONCE(challenge_timestamp)) { u32 ack_limit = READ_ONCE(net->ipv4.sysctl_tcp_challenge_ack_limit); u32 half = (ack_limit + 1) >> 1; - challenge_timestamp = now; + WRITE_ONCE(challenge_timestamp, now); WRITE_ONCE(challenge_count, half + prandom_u32_max(ack_limit)); } count = READ_ONCE(challenge_count); --- linux-5.19.0.orig/net/ipv4/tcp_ipv4.c +++ linux-5.19.0/net/ipv4/tcp_ipv4.c @@ -323,6 +323,8 @@ * if necessary. */ tcp_set_state(sk, TCP_CLOSE); + if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK)) + inet_reset_saddr(sk); ip_rt_put(rt); sk->sk_route_caps = 0; inet->inet_dport = 0; @@ -819,6 +821,7 @@ ctl_sk->sk_priority = (sk->sk_state == TCP_TIME_WAIT) ? inet_twsk(sk)->tw_priority : sk->sk_priority; transmit_time = tcp_transmit_time(sk); + xfrm_sk_clone_policy(ctl_sk, sk); } ip_send_unicast_reply(ctl_sk, skb, &TCP_SKB_CB(skb)->header.h4.opt, @@ -827,6 +830,7 @@ transmit_time); ctl_sk->sk_mark = 0; + xfrm_sk_free_policy(ctl_sk); sock_net_set(ctl_sk, &init_net); __TCP_INC_STATS(net, TCP_MIB_OUTSEGS); __TCP_INC_STATS(net, TCP_MIB_OUTRSTS); @@ -1851,11 +1855,13 @@ __skb_push(skb, hdrlen); no_coalesce: + limit = (u32)READ_ONCE(sk->sk_rcvbuf) + (u32)(READ_ONCE(sk->sk_sndbuf) >> 1); + /* Only socket owner can try to collapse/prune rx queues * to reduce memory overhead, so add a little headroom here. * Few sockets backlog are possibly concurrently non empty. */ - limit = READ_ONCE(sk->sk_rcvbuf) + READ_ONCE(sk->sk_sndbuf) + 64*1024; + limit += 64 * 1024; if (unlikely(sk_add_backlog(sk, skb, limit))) { bh_unlock_sock(sk); --- linux-5.19.0.orig/net/ipv4/tcp_output.c +++ linux-5.19.0/net/ipv4/tcp_output.c @@ -239,7 +239,7 @@ if (wscale_ok) { /* Set window scaling on max possible window */ space = max_t(u32, space, READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[2])); - space = max_t(u32, space, sysctl_rmem_max); + space = max_t(u32, space, READ_ONCE(sysctl_rmem_max)); space = min_t(u32, space, *window_clamp); *rcv_wscale = clamp_t(int, ilog2(space) - 15, 0, TCP_MAX_WSCALE); @@ -1875,15 +1875,20 @@ const struct tcp_congestion_ops *ca_ops = inet_csk(sk)->icsk_ca_ops; struct tcp_sock *tp = tcp_sk(sk); - /* Track the maximum number of outstanding packets in each - * window, and remember whether we were cwnd-limited then. - */ - if (!before(tp->snd_una, tp->max_packets_seq) || - tp->packets_out > tp->max_packets_out || - is_cwnd_limited) { - tp->max_packets_out = tp->packets_out; - tp->max_packets_seq = tp->snd_nxt; + /* Track the strongest available signal of the degree to which the cwnd + * is fully utilized. If cwnd-limited then remember that fact for the + * current window. If not cwnd-limited then track the maximum number of + * outstanding packets in the current window. (If cwnd-limited then we + * chose to not update tp->max_packets_out to avoid an extra else + * clause with no functional impact.) + */ + if (!before(tp->snd_una, tp->cwnd_usage_seq) || + is_cwnd_limited || + (!tp->is_cwnd_limited && + tp->packets_out > tp->max_packets_out)) { tp->is_cwnd_limited = is_cwnd_limited; + tp->max_packets_out = tp->packets_out; + tp->cwnd_usage_seq = tp->snd_nxt; } if (tcp_is_cwnd_limited(sk)) { @@ -3142,7 +3147,7 @@ struct tcp_sock *tp = tcp_sk(sk); unsigned int cur_mss; int diff, len, err; - + int avail_wnd; /* Inconclusive MTU probe */ if (icsk->icsk_mtup.probe_size) @@ -3164,17 +3169,25 @@ return -EHOSTUNREACH; /* Routing failure or similar. */ cur_mss = tcp_current_mss(sk); + avail_wnd = tcp_wnd_end(tp) - TCP_SKB_CB(skb)->seq; /* If receiver has shrunk his window, and skb is out of * new window, do not retransmit it. The exception is the * case, when window is shrunk to zero. In this case - * our retransmit serves as a zero window probe. + * our retransmit of one segment serves as a zero window probe. */ - if (!before(TCP_SKB_CB(skb)->seq, tcp_wnd_end(tp)) && - TCP_SKB_CB(skb)->seq != tp->snd_una) - return -EAGAIN; + if (avail_wnd <= 0) { + if (TCP_SKB_CB(skb)->seq != tp->snd_una) + return -EAGAIN; + avail_wnd = cur_mss; + } len = cur_mss * segs; + if (len > avail_wnd) { + len = rounddown(avail_wnd, cur_mss); + if (!len) + len = avail_wnd; + } if (skb->len > len) { if (tcp_fragment(sk, TCP_FRAG_IN_RTX_QUEUE, skb, len, cur_mss, GFP_ATOMIC)) @@ -3188,8 +3201,9 @@ diff -= tcp_skb_pcount(skb); if (diff) tcp_adjust_pcount(sk, skb, diff); - if (skb->len < cur_mss) - tcp_retrans_try_collapse(sk, skb, cur_mss); + avail_wnd = min_t(int, avail_wnd, cur_mss); + if (skb->len < avail_wnd) + tcp_retrans_try_collapse(sk, skb, avail_wnd); } /* RFC3168, section 6.1.1.1. ECN fallback */ @@ -3360,11 +3374,12 @@ */ void sk_forced_mem_schedule(struct sock *sk, int size) { - int amt; + int delta, amt; - if (size <= sk->sk_forward_alloc) + delta = size - sk->sk_forward_alloc; + if (delta <= 0) return; - amt = sk_mem_pages(size); + amt = sk_mem_pages(delta); sk->sk_forward_alloc += amt * SK_MEM_QUANTUM; sk_memory_allocated_add(sk, amt); --- linux-5.19.0.orig/net/ipv4/tcp_ulp.c +++ linux-5.19.0/net/ipv4/tcp_ulp.c @@ -136,6 +136,13 @@ if (icsk->icsk_ulp_ops) goto out_err; + if (sk->sk_socket) + clear_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags); + + err = -ENOTCONN; + if (!ulp_ops->clone && sk->sk_state == TCP_LISTEN) + goto out_err; + err = ulp_ops->init(sk); if (err) goto out_err; --- linux-5.19.0.orig/net/ipv4/udp.c +++ linux-5.19.0/net/ipv4/udp.c @@ -446,7 +446,7 @@ result = lookup_reuseport(net, sk, skb, saddr, sport, daddr, hnum); /* Fall back to scoring if group has connections */ - if (result && !reuseport_has_conns(sk, false)) + if (result && !reuseport_has_conns(sk)) return result; result = result ? : sk; @@ -781,6 +781,8 @@ */ if (tunnel) { /* ...not for tunnels though: we don't have a sending socket */ + if (udp_sk(sk)->encap_err_rcv) + udp_sk(sk)->encap_err_rcv(sk, skb, iph->ihl << 2); goto out; } if (!inet->recverr) { @@ -1616,6 +1618,7 @@ { skb_queue_head_init(&udp_sk(sk)->reader_queue); sk->sk_destruct = udp_destruct_sock; + set_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags); return 0; } EXPORT_SYMBOL_GPL(udp_init_sock); --- linux-5.19.0.orig/net/ipv4/udp_bpf.c +++ linux-5.19.0/net/ipv4/udp_bpf.c @@ -141,14 +141,14 @@ if (restore) { sk->sk_write_space = psock->saved_write_space; - WRITE_ONCE(sk->sk_prot, psock->sk_proto); + sock_replace_proto(sk, psock->sk_proto); return 0; } if (sk->sk_family == AF_INET6) udp_bpf_check_v6_needs_rebuild(psock->sk_proto); - WRITE_ONCE(sk->sk_prot, &udp_bpf_prots[family]); + sock_replace_proto(sk, &udp_bpf_prots[family]); return 0; } EXPORT_SYMBOL_GPL(udp_bpf_update_proto); --- linux-5.19.0.orig/net/ipv4/udp_tunnel_core.c +++ linux-5.19.0/net/ipv4/udp_tunnel_core.c @@ -72,6 +72,7 @@ udp_sk(sk)->encap_type = cfg->encap_type; udp_sk(sk)->encap_rcv = cfg->encap_rcv; + udp_sk(sk)->encap_err_rcv = cfg->encap_err_rcv; udp_sk(sk)->encap_err_lookup = cfg->encap_err_lookup; udp_sk(sk)->encap_destroy = cfg->encap_destroy; udp_sk(sk)->gro_receive = cfg->gro_receive; @@ -175,6 +176,7 @@ void udp_tunnel_sock_release(struct socket *sock) { rcu_assign_sk_user_data(sock->sk, NULL); + synchronize_rcu(); kernel_sock_shutdown(sock, SHUT_RDWR); sock_release(sock); } --- linux-5.19.0.orig/net/ipv6/addrconf.c +++ linux-5.19.0/net/ipv6/addrconf.c @@ -3557,11 +3557,15 @@ fallthrough; case NETDEV_UP: case NETDEV_CHANGE: - if (dev->flags & IFF_SLAVE) + if (idev && idev->cnf.disable_ipv6) break; - if (idev && idev->cnf.disable_ipv6) + if (dev->flags & IFF_SLAVE) { + if (event == NETDEV_UP && !IS_ERR_OR_NULL(idev) && + dev->flags & IFF_UP && dev->flags & IFF_MULTICAST) + ipv6_mc_up(idev); break; + } if (event == NETDEV_UP) { /* restore routes for permanent addresses */ @@ -7158,9 +7162,8 @@ if (!dflt) goto err_alloc_dflt; - if (IS_ENABLED(CONFIG_SYSCTL) && - !net_eq(net, &init_net)) { - switch (sysctl_devconf_inherit_init_net) { + if (!net_eq(net, &init_net)) { + switch (net_inherit_devconf()) { case 1: /* copy from init_net */ memcpy(all, init_net.ipv6.devconf_all, sizeof(ipv6_devconf)); @@ -7207,9 +7210,11 @@ __addrconf_sysctl_unregister(net, all, NETCONFA_IFINDEX_ALL); err_reg_all: kfree(dflt); + net->ipv6.devconf_dflt = NULL; #endif err_alloc_dflt: kfree(all); + net->ipv6.devconf_all = NULL; err_alloc_all: kfree(net->ipv6.inet6_addr_lst); err_alloc_addr: --- linux-5.19.0.orig/net/ipv6/addrlabel.c +++ linux-5.19.0/net/ipv6/addrlabel.c @@ -437,6 +437,7 @@ { struct ifaddrlblmsg *ifal = nlmsg_data(nlh); ifal->ifal_family = AF_INET6; + ifal->__ifal_reserved = 0; ifal->ifal_prefixlen = prefixlen; ifal->ifal_flags = 0; ifal->ifal_index = ifindex; --- linux-5.19.0.orig/net/ipv6/af_inet6.c +++ linux-5.19.0/net/ipv6/af_inet6.c @@ -63,6 +63,7 @@ #include #include #include +#include #include #include @@ -1068,6 +1069,8 @@ for (r = &inetsw6[0]; r < &inetsw6[SOCK_MAX]; ++r) INIT_LIST_HEAD(r); + raw_hashinfo_init(&raw_v6_hashinfo); + if (disable_ipv6_mod) { pr_info("Loaded, but administratively disabled, reboot required to enable\n"); goto out; --- linux-5.19.0.orig/net/ipv6/datagram.c +++ linux-5.19.0/net/ipv6/datagram.c @@ -42,24 +42,29 @@ { struct inet_sock *inet = inet_sk(sk); struct ipv6_pinfo *np = inet6_sk(sk); + int oif = sk->sk_bound_dev_if; memset(fl6, 0, sizeof(*fl6)); fl6->flowi6_proto = sk->sk_protocol; fl6->daddr = sk->sk_v6_daddr; fl6->saddr = np->saddr; - fl6->flowi6_oif = sk->sk_bound_dev_if; fl6->flowi6_mark = sk->sk_mark; fl6->fl6_dport = inet->inet_dport; fl6->fl6_sport = inet->inet_sport; fl6->flowlabel = np->flow_label; fl6->flowi6_uid = sk->sk_uid; - if (!fl6->flowi6_oif) - fl6->flowi6_oif = np->sticky_pktinfo.ipi6_ifindex; + if (!oif) + oif = np->sticky_pktinfo.ipi6_ifindex; - if (!fl6->flowi6_oif && ipv6_addr_is_multicast(&fl6->daddr)) - fl6->flowi6_oif = np->mcast_oif; + if (!oif) { + if (ipv6_addr_is_multicast(&fl6->daddr)) + oif = np->mcast_oif; + else + oif = np->ucast_oif; + } + fl6->flowi6_oif = oif; security_sk_classify_flow(sk, flowi6_to_flowi_common(fl6)); } @@ -256,7 +261,7 @@ goto out; } - reuseport_has_conns(sk, true); + reuseport_has_conns_set(sk); sk->sk_state = TCP_ESTABLISHED; sk_set_txhash(sk); out: --- linux-5.19.0.orig/net/ipv6/esp6_offload.c +++ linux-5.19.0/net/ipv6/esp6_offload.c @@ -145,7 +145,10 @@ struct sk_buff *skb, netdev_features_t features) { - return skb_eth_gso_segment(skb, features, htons(ETH_P_IPV6)); + __be16 type = x->inner_mode.family == AF_INET ? htons(ETH_P_IP) + : htons(ETH_P_IPV6); + + return skb_eth_gso_segment(skb, features, type); } static struct sk_buff *xfrm6_transport_gso_segment(struct xfrm_state *x, @@ -343,6 +346,9 @@ xo->seq.low += skb_shinfo(skb)->gso_segs; } + if (xo->seq.low < seq) + xo->seq.hi++; + esp.seqno = cpu_to_be64(xo->seq.low + ((u64)xo->seq.hi << 32)); len = skb->len - sizeof(struct ipv6hdr); --- linux-5.19.0.orig/net/ipv6/ip6_gre.c +++ linux-5.19.0/net/ipv6/ip6_gre.c @@ -1148,14 +1148,16 @@ dev->needed_headroom = dst_len; if (set_mtu) { - dev->mtu = rt->dst.dev->mtu - t_hlen; + int mtu = rt->dst.dev->mtu - t_hlen; + if (!(t->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT)) - dev->mtu -= 8; + mtu -= 8; if (dev->type == ARPHRD_ETHER) - dev->mtu -= ETH_HLEN; + mtu -= ETH_HLEN; - if (dev->mtu < IPV6_MIN_MTU) - dev->mtu = IPV6_MIN_MTU; + if (mtu < IPV6_MIN_MTU) + mtu = IPV6_MIN_MTU; + WRITE_ONCE(dev->mtu, mtu); } } ip6_rt_put(rt); --- linux-5.19.0.orig/net/ipv6/ip6_output.c +++ linux-5.19.0/net/ipv6/ip6_output.c @@ -492,6 +492,9 @@ u32 mtu; idev = __in6_dev_get_safely(dev_get_by_index_rcu(net, IP6CB(skb)->iif)); + if (unlikely(!idev)) + idev = __in6_dev_get_safely(skb->dev); + if (net->ipv6.devconf_all->forwarding == 0) goto error; @@ -920,6 +923,9 @@ if (err < 0) goto fail; + /* We prevent @rt from being freed. */ + rcu_read_lock(); + for (;;) { /* Prepare header of the next frame, * before previous one went down. */ @@ -943,6 +949,7 @@ if (err == 0) { IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), IPSTATS_MIB_FRAGOKS); + rcu_read_unlock(); return 0; } @@ -950,6 +957,7 @@ IP6_INC_STATS(net, ip6_dst_idev(&rt->dst), IPSTATS_MIB_FRAGFAILS); + rcu_read_unlock(); return err; slow_path_clean: @@ -1311,8 +1319,7 @@ fl6.daddr = info->key.u.ipv6.dst; fl6.saddr = info->key.u.ipv6.src; prio = info->key.tos; - fl6.flowlabel = ip6_make_flowinfo(RT_TOS(prio), - info->key.label); + fl6.flowlabel = ip6_make_flowinfo(prio, info->key.label); dst = ipv6_stub->ipv6_dst_lookup_flow(net, sock->sk, &fl6, NULL); --- linux-5.19.0.orig/net/ipv6/ip6_tunnel.c +++ linux-5.19.0/net/ipv6/ip6_tunnel.c @@ -1452,8 +1452,8 @@ struct net_device *tdev = NULL; struct __ip6_tnl_parm *p = &t->parms; struct flowi6 *fl6 = &t->fl.u.ip6; - unsigned int mtu; int t_hlen; + int mtu; __dev_addr_set(dev, &p->laddr, sizeof(struct in6_addr)); memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr)); @@ -1500,12 +1500,13 @@ dev->hard_header_len = tdev->hard_header_len + t_hlen; mtu = min_t(unsigned int, tdev->mtu, IP6_MAX_MTU); - dev->mtu = mtu - t_hlen; + mtu = mtu - t_hlen; if (!(t->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT)) - dev->mtu -= 8; + mtu -= 8; - if (dev->mtu < IPV6_MIN_MTU) - dev->mtu = IPV6_MIN_MTU; + if (mtu < IPV6_MIN_MTU) + mtu = IPV6_MIN_MTU; + WRITE_ONCE(dev->mtu, mtu); } } } --- linux-5.19.0.orig/net/ipv6/ipv6_sockglue.c +++ linux-5.19.0/net/ipv6/ipv6_sockglue.c @@ -210,7 +210,7 @@ if (optlen < GROUP_FILTER_SIZE(0)) return -EINVAL; - if (optlen > sysctl_optmem_max) + if (optlen > READ_ONCE(sysctl_optmem_max)) return -ENOBUFS; gsf = memdup_sockptr(optval, optlen); @@ -244,7 +244,7 @@ if (optlen < size0) return -EINVAL; - if (optlen > sysctl_optmem_max - 4) + if (optlen > READ_ONCE(sysctl_optmem_max) - 4) return -ENOBUFS; p = kmalloc(optlen + 4, GFP_KERNEL); @@ -419,6 +419,12 @@ rtnl_lock(); lock_sock(sk); + /* Another thread has converted the socket into IPv4 with + * IPV6_ADDRFORM concurrently. + */ + if (unlikely(sk->sk_family != AF_INET6)) + goto unlock; + switch (optname) { case IPV6_ADDRFORM: @@ -475,9 +481,10 @@ sock_prot_inuse_add(net, sk->sk_prot, -1); sock_prot_inuse_add(net, &tcp_prot, 1); - /* Paired with READ_ONCE(sk->sk_prot) in net/ipv6/af_inet6.c */ + /* Paired with READ_ONCE(sk->sk_prot) in inet6_stream_ops */ WRITE_ONCE(sk->sk_prot, &tcp_prot); - icsk->icsk_af_ops = &ipv4_specific; + /* Paired with READ_ONCE() in tcp_(get|set)sockopt() */ + WRITE_ONCE(icsk->icsk_af_ops, &ipv4_specific); sk->sk_socket->ops = &inet_stream_ops; sk->sk_family = PF_INET; tcp_sync_mss(sk, icsk->icsk_pmtu_cookie); @@ -490,7 +497,7 @@ sock_prot_inuse_add(net, sk->sk_prot, -1); sock_prot_inuse_add(net, prot, 1); - /* Paired with READ_ONCE(sk->sk_prot) in net/ipv6/af_inet6.c */ + /* Paired with READ_ONCE(sk->sk_prot) in inet6_dgram_ops */ WRITE_ONCE(sk->sk_prot, prot); sk->sk_socket->ops = &inet_dgram_ops; sk->sk_family = PF_INET; @@ -994,6 +1001,7 @@ break; } +unlock: release_sock(sk); if (needs_rtnl) rtnl_unlock(); --- linux-5.19.0.orig/net/ipv6/ndisc.c +++ linux-5.19.0/net/ipv6/ndisc.c @@ -1358,6 +1358,9 @@ if (!rt && lifetime) { ND_PRINTK(3, info, "RA: adding default router\n"); + if (neigh) + neigh_release(neigh); + rt = rt6_add_dflt_router(net, &ipv6_hdr(skb)->saddr, skb->dev, pref, defrtr_usr_metric); if (!rt) { --- linux-5.19.0.orig/net/ipv6/netfilter/ip6_tables.c +++ linux-5.19.0/net/ipv6/netfilter/ip6_tables.c @@ -381,6 +381,17 @@ else return verdict; } +static bool next_offset_ok(const struct xt_table_info *t, unsigned int newpos) +{ + if (newpos > t->size - sizeof(struct ip6t_entry)) + return false; + + if (newpos % __alignof__(struct ip6t_entry) != 0) + return false; + + return true; +} + /* Figures out from what hook each rule can be called: returns 0 if there are loops. Puts hook bitmask in comefrom. */ static int @@ -436,6 +447,8 @@ /* Move along one */ size = e->next_offset; + if (!next_offset_ok(newinfo, pos + size)) + return 0; e = entry0 + pos + size; if (pos + size >= newinfo->size) return 0; @@ -457,6 +470,10 @@ if (newpos >= newinfo->size) return 0; } + + if (!next_offset_ok(newinfo, newpos)) + return 0; + e = entry0 + newpos; e->counters.pcnt = pos; pos = newpos; --- linux-5.19.0.orig/net/ipv6/netfilter/ip6t_rpfilter.c +++ linux-5.19.0/net/ipv6/netfilter/ip6t_rpfilter.c @@ -37,8 +37,10 @@ bool ret = false; struct flowi6 fl6 = { .flowi6_iif = LOOPBACK_IFINDEX, + .flowi6_l3mdev = l3mdev_master_ifindex_rcu(dev), .flowlabel = (* (__be32 *) iph) & IPV6_FLOWINFO_MASK, .flowi6_proto = iph->nexthdr, + .flowi6_uid = sock_net_uid(net, NULL), .daddr = iph->saddr, }; int lookup_flags; @@ -55,9 +57,7 @@ if (rpfilter_addr_linklocal(&iph->saddr)) { lookup_flags |= RT6_LOOKUP_F_IFACE; fl6.flowi6_oif = dev->ifindex; - /* Set flowi6_oif for vrf devices to lookup route in l3mdev domain. */ - } else if (netif_is_l3_master(dev) || netif_is_l3_slave(dev) || - (flags & XT_RPFILTER_LOOSE) == 0) + } else if ((flags & XT_RPFILTER_LOOSE) == 0) fl6.flowi6_oif = dev->ifindex; rt = (void *)ip6_route_lookup(net, &fl6, skb, lookup_flags); @@ -72,9 +72,7 @@ goto out; } - if (rt->rt6i_idev->dev == dev || - l3mdev_master_ifindex_rcu(rt->rt6i_idev->dev) == dev->ifindex || - (flags & XT_RPFILTER_LOOSE)) + if (rt->rt6i_idev->dev == dev || (flags & XT_RPFILTER_LOOSE)) ret = true; out: ip6_rt_put(rt); --- linux-5.19.0.orig/net/ipv6/netfilter/nft_fib_ipv6.c +++ linux-5.19.0/net/ipv6/netfilter/nft_fib_ipv6.c @@ -41,6 +41,8 @@ if (ipv6_addr_type(&fl6->daddr) & IPV6_ADDR_LINKLOCAL) { lookup_flags |= RT6_LOOKUP_F_IFACE; fl6->flowi6_oif = get_ifindex(dev ? dev : pkt->skb->dev); + } else if (priv->flags & NFTA_FIB_F_IIF) { + fl6->flowi6_l3mdev = l3mdev_master_ifindex_rcu(dev); } if (ipv6_addr_type(&fl6->saddr) & IPV6_ADDR_UNICAST) @@ -64,6 +66,7 @@ struct flowi6 fl6 = { .flowi6_iif = LOOPBACK_IFINDEX, .flowi6_proto = pkt->tprot, + .flowi6_uid = sock_net_uid(nft_net(pkt), NULL), }; u32 ret = 0; @@ -161,6 +164,7 @@ struct flowi6 fl6 = { .flowi6_iif = LOOPBACK_IFINDEX, .flowi6_proto = pkt->tprot, + .flowi6_uid = sock_net_uid(nft_net(pkt), NULL), }; struct rt6_info *rt; int lookup_flags; @@ -197,7 +201,8 @@ if (rt->rt6i_flags & (RTF_REJECT | RTF_ANYCAST | RTF_LOCAL)) goto put_rt_err; - if (oif && oif != rt->rt6i_idev->dev) + if (oif && oif != rt->rt6i_idev->dev && + l3mdev_master_ifindex_rcu(rt->rt6i_idev->dev) != oif->ifindex) goto put_rt_err; nft_fib_store_result(dest, priv, rt->rt6i_idev->dev); --- linux-5.19.0.orig/net/ipv6/raw.c +++ linux-5.19.0/net/ipv6/raw.c @@ -61,46 +61,30 @@ #define ICMPV6_HDRLEN 4 /* ICMPv6 header, RFC 4443 Section 2.1 */ -struct raw_hashinfo raw_v6_hashinfo = { - .lock = __RW_LOCK_UNLOCKED(raw_v6_hashinfo.lock), -}; +struct raw_hashinfo raw_v6_hashinfo; EXPORT_SYMBOL_GPL(raw_v6_hashinfo); -struct sock *__raw_v6_lookup(struct net *net, struct sock *sk, - unsigned short num, const struct in6_addr *loc_addr, - const struct in6_addr *rmt_addr, int dif, int sdif) +bool raw_v6_match(struct net *net, struct sock *sk, unsigned short num, + const struct in6_addr *loc_addr, + const struct in6_addr *rmt_addr, int dif, int sdif) { - bool is_multicast = ipv6_addr_is_multicast(loc_addr); + if (inet_sk(sk)->inet_num != num || + !net_eq(sock_net(sk), net) || + (!ipv6_addr_any(&sk->sk_v6_daddr) && + !ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr)) || + !raw_sk_bound_dev_eq(net, sk->sk_bound_dev_if, + dif, sdif)) + return false; + + if (ipv6_addr_any(&sk->sk_v6_rcv_saddr) || + ipv6_addr_equal(&sk->sk_v6_rcv_saddr, loc_addr) || + (ipv6_addr_is_multicast(loc_addr) && + inet6_mc_check(sk, loc_addr, rmt_addr))) + return true; - sk_for_each_from(sk) - if (inet_sk(sk)->inet_num == num) { - - if (!net_eq(sock_net(sk), net)) - continue; - - if (!ipv6_addr_any(&sk->sk_v6_daddr) && - !ipv6_addr_equal(&sk->sk_v6_daddr, rmt_addr)) - continue; - - if (!raw_sk_bound_dev_eq(net, sk->sk_bound_dev_if, - dif, sdif)) - continue; - - if (!ipv6_addr_any(&sk->sk_v6_rcv_saddr)) { - if (ipv6_addr_equal(&sk->sk_v6_rcv_saddr, loc_addr)) - goto found; - if (is_multicast && - inet6_mc_check(sk, loc_addr, rmt_addr)) - goto found; - continue; - } - goto found; - } - sk = NULL; -found: - return sk; + return false; } -EXPORT_SYMBOL_GPL(__raw_v6_lookup); +EXPORT_SYMBOL_GPL(raw_v6_match); /* * 0 - deliver @@ -156,31 +140,27 @@ */ static bool ipv6_raw_deliver(struct sk_buff *skb, int nexthdr) { + struct net *net = dev_net(skb->dev); + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; const struct in6_addr *saddr; const struct in6_addr *daddr; struct sock *sk; bool delivered = false; __u8 hash; - struct net *net; saddr = &ipv6_hdr(skb)->saddr; daddr = saddr + 1; hash = nexthdr & (RAW_HTABLE_SIZE - 1); - - read_lock(&raw_v6_hashinfo.lock); - sk = sk_head(&raw_v6_hashinfo.ht[hash]); - - if (!sk) - goto out; - - net = dev_net(skb->dev); - sk = __raw_v6_lookup(net, sk, nexthdr, daddr, saddr, - inet6_iif(skb), inet6_sdif(skb)); - - while (sk) { + hlist = &raw_v6_hashinfo.ht[hash]; + rcu_read_lock(); + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { int filtered; + if (!raw_v6_match(net, sk, nexthdr, daddr, saddr, + inet6_iif(skb), inet6_sdif(skb))) + continue; delivered = true; switch (nexthdr) { case IPPROTO_ICMPV6: @@ -219,23 +199,14 @@ rawv6_rcv(sk, clone); } } - sk = __raw_v6_lookup(net, sk_next(sk), nexthdr, daddr, saddr, - inet6_iif(skb), inet6_sdif(skb)); } -out: - read_unlock(&raw_v6_hashinfo.lock); + rcu_read_unlock(); return delivered; } bool raw6_local_deliver(struct sk_buff *skb, int nexthdr) { - struct sock *raw_sk; - - raw_sk = sk_head(&raw_v6_hashinfo.ht[nexthdr & (RAW_HTABLE_SIZE - 1)]); - if (raw_sk && !ipv6_raw_deliver(skb, nexthdr)) - raw_sk = NULL; - - return raw_sk != NULL; + return ipv6_raw_deliver(skb, nexthdr); } /* This cleans up af_inet6 a bit. -DaveM */ @@ -361,30 +332,25 @@ void raw6_icmp_error(struct sk_buff *skb, int nexthdr, u8 type, u8 code, int inner_offset, __be32 info) { + struct net *net = dev_net(skb->dev); + struct hlist_nulls_head *hlist; + struct hlist_nulls_node *hnode; struct sock *sk; int hash; - const struct in6_addr *saddr, *daddr; - struct net *net; hash = nexthdr & (RAW_HTABLE_SIZE - 1); - - read_lock(&raw_v6_hashinfo.lock); - sk = sk_head(&raw_v6_hashinfo.ht[hash]); - if (sk) { + hlist = &raw_v6_hashinfo.ht[hash]; + rcu_read_lock(); + hlist_nulls_for_each_entry(sk, hnode, hlist, sk_nulls_node) { /* Note: ipv6_hdr(skb) != skb->data */ const struct ipv6hdr *ip6h = (const struct ipv6hdr *)skb->data; - saddr = &ip6h->saddr; - daddr = &ip6h->daddr; - net = dev_net(skb->dev); - - while ((sk = __raw_v6_lookup(net, sk, nexthdr, saddr, daddr, - inet6_iif(skb), inet6_iif(skb)))) { - rawv6_err(sk, skb, NULL, type, code, - inner_offset, info); - sk = sk_next(sk); - } + + if (!raw_v6_match(net, sk, nexthdr, &ip6h->saddr, &ip6h->daddr, + inet6_iif(skb), inet6_iif(skb))) + continue; + rawv6_err(sk, skb, NULL, type, code, inner_offset, info); } - read_unlock(&raw_v6_hashinfo.lock); + rcu_read_unlock(); } static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb) --- linux-5.19.0.orig/net/ipv6/route.c +++ linux-5.19.0/net/ipv6/route.c @@ -6555,10 +6555,16 @@ static int __net_init ip6_route_net_init_late(struct net *net) { #ifdef CONFIG_PROC_FS - proc_create_net("ipv6_route", 0, net->proc_net, &ipv6_route_seq_ops, - sizeof(struct ipv6_route_iter)); - proc_create_net_single("rt6_stats", 0444, net->proc_net, - rt6_stats_seq_show, NULL); + if (!proc_create_net("ipv6_route", 0, net->proc_net, + &ipv6_route_seq_ops, + sizeof(struct ipv6_route_iter))) + return -ENOMEM; + + if (!proc_create_net_single("rt6_stats", 0444, net->proc_net, + rt6_stats_seq_show, NULL)) { + remove_proc_entry("ipv6_route", net->proc_net); + return -ENOMEM; + } #endif return 0; } --- linux-5.19.0.orig/net/ipv6/seg6.c +++ linux-5.19.0/net/ipv6/seg6.c @@ -191,6 +191,11 @@ goto out_unlock; } + if (slen > nla_len(info->attrs[SEG6_ATTR_SECRET])) { + err = -EINVAL; + goto out_unlock; + } + if (hinfo) { err = seg6_hmac_info_del(net, hmackeyid); if (err) --- linux-5.19.0.orig/net/ipv6/sit.c +++ linux-5.19.0/net/ipv6/sit.c @@ -696,7 +696,7 @@ skb->dev = tunnel->dev; if (packet_is_spoofed(skb, iph, tunnel)) { - tunnel->dev->stats.rx_errors++; + DEV_STATS_INC(tunnel->dev, rx_errors); goto out; } @@ -716,8 +716,8 @@ net_info_ratelimited("non-ECT from %pI4 with TOS=%#x\n", &iph->saddr, iph->tos); if (err > 1) { - ++tunnel->dev->stats.rx_frame_errors; - ++tunnel->dev->stats.rx_errors; + DEV_STATS_INC(tunnel->dev, rx_frame_errors); + DEV_STATS_INC(tunnel->dev, rx_errors); goto out; } } @@ -948,7 +948,7 @@ if (!rt) { rt = ip_route_output_flow(tunnel->net, &fl4, NULL); if (IS_ERR(rt)) { - dev->stats.tx_carrier_errors++; + DEV_STATS_INC(dev, tx_carrier_errors); goto tx_error_icmp; } dst_cache_set_ip4(&tunnel->dst_cache, &rt->dst, fl4.saddr); @@ -956,14 +956,14 @@ if (rt->rt_type != RTN_UNICAST && rt->rt_type != RTN_LOCAL) { ip_rt_put(rt); - dev->stats.tx_carrier_errors++; + DEV_STATS_INC(dev, tx_carrier_errors); goto tx_error_icmp; } tdev = rt->dst.dev; if (tdev == dev) { ip_rt_put(rt); - dev->stats.collisions++; + DEV_STATS_INC(dev, collisions); goto tx_error; } @@ -976,7 +976,7 @@ mtu = dst_mtu(&rt->dst) - t_hlen; if (mtu < IPV4_MIN_MTU) { - dev->stats.collisions++; + DEV_STATS_INC(dev, collisions); ip_rt_put(rt); goto tx_error; } @@ -1015,7 +1015,7 @@ struct sk_buff *new_skb = skb_realloc_headroom(skb, max_headroom); if (!new_skb) { ip_rt_put(rt); - dev->stats.tx_dropped++; + DEV_STATS_INC(dev, tx_dropped); kfree_skb(skb); return NETDEV_TX_OK; } @@ -1045,7 +1045,7 @@ dst_link_failure(skb); tx_error: kfree_skb(skb); - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); return NETDEV_TX_OK; } @@ -1064,7 +1064,7 @@ return NETDEV_TX_OK; tx_error: kfree_skb(skb); - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); return NETDEV_TX_OK; } @@ -1093,7 +1093,7 @@ return NETDEV_TX_OK; tx_err: - dev->stats.tx_errors++; + DEV_STATS_INC(dev, tx_errors); kfree_skb(skb); return NETDEV_TX_OK; @@ -1130,10 +1130,12 @@ if (tdev && !netif_is_l3_master(tdev)) { int t_hlen = tunnel->hlen + sizeof(struct iphdr); + int mtu; - dev->mtu = tdev->mtu - t_hlen; - if (dev->mtu < IPV6_MIN_MTU) - dev->mtu = IPV6_MIN_MTU; + mtu = tdev->mtu - t_hlen; + if (mtu < IPV6_MIN_MTU) + mtu = IPV6_MIN_MTU; + WRITE_ONCE(dev->mtu, mtu); } } --- linux-5.19.0.orig/net/ipv6/tcp_ipv6.c +++ linux-5.19.0/net/ipv6/tcp_ipv6.c @@ -237,7 +237,8 @@ sin.sin_port = usin->sin6_port; sin.sin_addr.s_addr = usin->sin6_addr.s6_addr32[3]; - icsk->icsk_af_ops = &ipv6_mapped; + /* Paired with READ_ONCE() in tcp_(get|set)sockopt() */ + WRITE_ONCE(icsk->icsk_af_ops, &ipv6_mapped); if (sk_is_mptcp(sk)) mptcpv6_handle_mapped(sk, true); sk->sk_backlog_rcv = tcp_v4_do_rcv; @@ -249,7 +250,8 @@ if (err) { icsk->icsk_ext_hdr_len = exthdrlen; - icsk->icsk_af_ops = &ipv6_specific; + /* Paired with READ_ONCE() in tcp_(get|set)sockopt() */ + WRITE_ONCE(icsk->icsk_af_ops, &ipv6_specific); if (sk_is_mptcp(sk)) mptcpv6_handle_mapped(sk, false); sk->sk_backlog_rcv = tcp_v6_do_rcv; @@ -340,6 +342,8 @@ late_failure: tcp_set_state(sk, TCP_CLOSE); + if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK)) + inet_reset_saddr(sk); failure: inet->inet_dport = 0; sk->sk_route_caps = 0; @@ -952,7 +956,10 @@ * Underlying function will use this to retrieve the network * namespace */ - dst = ip6_dst_lookup_flow(sock_net(ctl_sk), ctl_sk, &fl6, NULL); + if (sk && sk->sk_state != TCP_TIME_WAIT) + dst = ip6_dst_lookup_flow(net, sk, &fl6, NULL); /*sk's xfrm_policy can be referred*/ + else + dst = ip6_dst_lookup_flow(net, ctl_sk, &fl6, NULL); if (!IS_ERR(dst)) { skb_dst_set(buff, dst); ip6_xmit(ctl_sk, buff, &fl6, fl6.flowi6_mark, NULL, --- linux-5.19.0.orig/net/ipv6/udp.c +++ linux-5.19.0/net/ipv6/udp.c @@ -182,7 +182,7 @@ result = lookup_reuseport(net, sk, skb, saddr, sport, daddr, hnum); /* Fall back to scoring if group has connections */ - if (result && !reuseport_has_conns(sk, false)) + if (result && !reuseport_has_conns(sk)) return result; result = result ? : sk; @@ -616,8 +616,11 @@ } /* Tunnels don't have an application socket: don't pass errors back */ - if (tunnel) + if (tunnel) { + if (udp_sk(sk)->encap_err_rcv) + udp_sk(sk)->encap_err_rcv(sk, skb, offset); goto out; + } if (!np->recverr) { if (!harderr || sk->sk_state != TCP_ESTABLISHED) --- linux-5.19.0.orig/net/ipv6/xfrm6_policy.c +++ linux-5.19.0/net/ipv6/xfrm6_policy.c @@ -287,9 +287,13 @@ if (ret) goto out_state; - register_pernet_subsys(&xfrm6_net_ops); + ret = register_pernet_subsys(&xfrm6_net_ops); + if (ret) + goto out_protocol; out: return ret; +out_protocol: + xfrm6_protocol_fini(); out_state: xfrm6_state_fini(); out_policy: --- linux-5.19.0.orig/net/kcm/kcmsock.c +++ linux-5.19.0/net/kcm/kcmsock.c @@ -162,7 +162,8 @@ /* Buffer limit is okay now, add to ready list */ list_add_tail(&kcm->wait_rx_list, &kcm->mux->kcm_rx_waiters); - kcm->rx_wait = true; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_wait, true); } static void kcm_rfree(struct sk_buff *skb) @@ -178,7 +179,7 @@ /* For reading rx_wait and rx_psock without holding lock */ smp_mb__after_atomic(); - if (!kcm->rx_wait && !kcm->rx_psock && + if (!READ_ONCE(kcm->rx_wait) && !READ_ONCE(kcm->rx_psock) && sk_rmem_alloc_get(sk) < sk->sk_rcvlowat) { spin_lock_bh(&mux->rx_lock); kcm_rcv_ready(kcm); @@ -221,7 +222,7 @@ struct sk_buff *skb; struct kcm_sock *kcm; - while ((skb = __skb_dequeue(head))) { + while ((skb = skb_dequeue(head))) { /* Reset destructor to avoid calling kcm_rcv_ready */ skb->destructor = sock_rfree; skb_orphan(skb); @@ -237,7 +238,8 @@ if (kcm_queue_rcv_skb(&kcm->sk, skb)) { /* Should mean socket buffer full */ list_del(&kcm->wait_rx_list); - kcm->rx_wait = false; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_wait, false); /* Commit rx_wait to read in kcm_free */ smp_wmb(); @@ -280,10 +282,12 @@ kcm = list_first_entry(&mux->kcm_rx_waiters, struct kcm_sock, wait_rx_list); list_del(&kcm->wait_rx_list); - kcm->rx_wait = false; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_wait, false); psock->rx_kcm = kcm; - kcm->rx_psock = psock; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_psock, psock); spin_unlock_bh(&mux->rx_lock); @@ -310,7 +314,8 @@ spin_lock_bh(&mux->rx_lock); psock->rx_kcm = NULL; - kcm->rx_psock = NULL; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_psock, NULL); /* Commit kcm->rx_psock before sk_rmem_alloc_get to sync with * kcm_rfree @@ -834,7 +839,7 @@ } get_page(page); - skb_fill_page_desc(skb, i, page, offset, size); + skb_fill_page_desc_noacc(skb, i, page, offset, size); skb_shinfo(skb)->flags |= SKBFL_SHARED_FRAG; coalesced: @@ -1080,53 +1085,17 @@ return err; } -static struct sk_buff *kcm_wait_data(struct sock *sk, int flags, - long timeo, int *err) -{ - struct sk_buff *skb; - - while (!(skb = skb_peek(&sk->sk_receive_queue))) { - if (sk->sk_err) { - *err = sock_error(sk); - return NULL; - } - - if (sock_flag(sk, SOCK_DONE)) - return NULL; - - if ((flags & MSG_DONTWAIT) || !timeo) { - *err = -EAGAIN; - return NULL; - } - - sk_wait_data(sk, &timeo, NULL); - - /* Handle signals */ - if (signal_pending(current)) { - *err = sock_intr_errno(timeo); - return NULL; - } - } - - return skb; -} - static int kcm_recvmsg(struct socket *sock, struct msghdr *msg, size_t len, int flags) { struct sock *sk = sock->sk; struct kcm_sock *kcm = kcm_sk(sk); int err = 0; - long timeo; struct strp_msg *stm; int copied = 0; struct sk_buff *skb; - timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); - - lock_sock(sk); - - skb = kcm_wait_data(sk, flags, timeo, &err); + skb = skb_recv_datagram(sk, flags, &err); if (!skb) goto out; @@ -1157,14 +1126,11 @@ /* Finished with message */ msg->msg_flags |= MSG_EOR; KCM_STATS_INCR(kcm->stats.rx_msgs); - skb_unlink(skb, &sk->sk_receive_queue); - kfree_skb(skb); } } out: - release_sock(sk); - + skb_free_datagram(sk, skb); return copied ? : err; } @@ -1174,7 +1140,6 @@ { struct sock *sk = sock->sk; struct kcm_sock *kcm = kcm_sk(sk); - long timeo; struct strp_msg *stm; int err = 0; ssize_t copied; @@ -1182,11 +1147,7 @@ /* Only support splice for SOCKSEQPACKET */ - timeo = sock_rcvtimeo(sk, flags & MSG_DONTWAIT); - - lock_sock(sk); - - skb = kcm_wait_data(sk, flags, timeo, &err); + skb = skb_recv_datagram(sk, flags, &err); if (!skb) goto err_out; @@ -1214,13 +1175,11 @@ * finish reading the message. */ - release_sock(sk); - + skb_free_datagram(sk, skb); return copied; err_out: - release_sock(sk); - + skb_free_datagram(sk, skb); return err; } @@ -1240,7 +1199,8 @@ if (!kcm->rx_psock) { if (kcm->rx_wait) { list_del(&kcm->wait_rx_list); - kcm->rx_wait = false; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_wait, false); } requeue_rx_msgs(mux, &kcm->sk.sk_receive_queue); @@ -1412,12 +1372,6 @@ psock->sk = csk; psock->bpf_prog = prog; - err = strp_init(&psock->strp, csk, &cb); - if (err) { - kmem_cache_free(kcm_psockp, psock); - goto out; - } - write_lock_bh(&csk->sk_callback_lock); /* Check if sk_user_data is already by KCM or someone else. @@ -1425,13 +1379,18 @@ */ if (csk->sk_user_data) { write_unlock_bh(&csk->sk_callback_lock); - strp_stop(&psock->strp); - strp_done(&psock->strp); kmem_cache_free(kcm_psockp, psock); err = -EALREADY; goto out; } + err = strp_init(&psock->strp, csk, &cb); + if (err) { + write_unlock_bh(&csk->sk_callback_lock); + kmem_cache_free(kcm_psockp, psock); + goto out; + } + psock->save_data_ready = csk->sk_data_ready; psock->save_write_space = csk->sk_write_space; psock->save_state_change = csk->sk_state_change; @@ -1794,7 +1753,8 @@ if (kcm->rx_wait) { list_del(&kcm->wait_rx_list); - kcm->rx_wait = false; + /* paired with lockless reads in kcm_rfree() */ + WRITE_ONCE(kcm->rx_wait, false); } /* Move any pending receive messages to other kcm sockets */ requeue_rx_msgs(mux, &sk->sk_receive_queue); @@ -1839,10 +1799,10 @@ kcm = kcm_sk(sk); mux = kcm->mux; + lock_sock(sk); sock_orphan(sk); kfree_skb(kcm->seq_skb); - lock_sock(sk); /* Purge queue under lock to avoid race condition with tx_work trying * to act when queue is nonempty. If tx_work runs after this point * it will just return. --- linux-5.19.0.orig/net/key/af_key.c +++ linux-5.19.0/net/key/af_key.c @@ -1697,9 +1697,12 @@ pfk->registered |= (1<sadb_msg_satype); } + mutex_lock(&pfkey_mutex); xfrm_probe_algs(); supp_skb = compose_sadb_supported(hdr, GFP_KERNEL | __GFP_ZERO); + mutex_unlock(&pfkey_mutex); + if (!supp_skb) { if (hdr->sadb_msg_satype != SADB_SATYPE_UNSPEC) pfk->registered &= ~(1<sadb_msg_satype); @@ -2902,7 +2905,7 @@ break; if (!aalg->pfkey_supported) continue; - if (aalg_tmpl_set(t, aalg) && aalg->available) + if (aalg_tmpl_set(t, aalg)) sz += sizeof(struct sadb_comb); } return sz + sizeof(struct sadb_prop); @@ -2920,7 +2923,7 @@ if (!ealg->pfkey_supported) continue; - if (!(ealg_tmpl_set(t, ealg) && ealg->available)) + if (!(ealg_tmpl_set(t, ealg))) continue; for (k = 1; ; k++) { @@ -2931,16 +2934,17 @@ if (!aalg->pfkey_supported) continue; - if (aalg_tmpl_set(t, aalg) && aalg->available) + if (aalg_tmpl_set(t, aalg)) sz += sizeof(struct sadb_comb); } } return sz + sizeof(struct sadb_prop); } -static void dump_ah_combs(struct sk_buff *skb, const struct xfrm_tmpl *t) +static int dump_ah_combs(struct sk_buff *skb, const struct xfrm_tmpl *t) { struct sadb_prop *p; + int sz = 0; int i; p = skb_put(skb, sizeof(struct sadb_prop)); @@ -2968,13 +2972,17 @@ c->sadb_comb_soft_addtime = 20*60*60; c->sadb_comb_hard_usetime = 8*60*60; c->sadb_comb_soft_usetime = 7*60*60; + sz += sizeof(*c); } } + + return sz + sizeof(*p); } -static void dump_esp_combs(struct sk_buff *skb, const struct xfrm_tmpl *t) +static int dump_esp_combs(struct sk_buff *skb, const struct xfrm_tmpl *t) { struct sadb_prop *p; + int sz = 0; int i, k; p = skb_put(skb, sizeof(struct sadb_prop)); @@ -3016,8 +3024,11 @@ c->sadb_comb_soft_addtime = 20*60*60; c->sadb_comb_hard_usetime = 8*60*60; c->sadb_comb_soft_usetime = 7*60*60; + sz += sizeof(*c); } } + + return sz + sizeof(*p); } static int key_notify_policy_expire(struct xfrm_policy *xp, const struct km_event *c) @@ -3147,6 +3158,7 @@ struct sadb_x_sec_ctx *sec_ctx; struct xfrm_sec_ctx *xfrm_ctx; int ctx_size = 0; + int alg_size = 0; sockaddr_size = pfkey_sockaddr_size(x->props.family); if (!sockaddr_size) @@ -3158,16 +3170,16 @@ sizeof(struct sadb_x_policy); if (x->id.proto == IPPROTO_AH) - size += count_ah_combs(t); + alg_size = count_ah_combs(t); else if (x->id.proto == IPPROTO_ESP) - size += count_esp_combs(t); + alg_size = count_esp_combs(t); if ((xfrm_ctx = x->security)) { ctx_size = PFKEY_ALIGN8(xfrm_ctx->ctx_len); size += sizeof(struct sadb_x_sec_ctx) + ctx_size; } - skb = alloc_skb(size + 16, GFP_ATOMIC); + skb = alloc_skb(size + alg_size + 16, GFP_ATOMIC); if (skb == NULL) return -ENOMEM; @@ -3221,10 +3233,13 @@ pol->sadb_x_policy_priority = xp->priority; /* Set sadb_comb's. */ + alg_size = 0; if (x->id.proto == IPPROTO_AH) - dump_ah_combs(skb, t); + alg_size = dump_ah_combs(skb, t); else if (x->id.proto == IPPROTO_ESP) - dump_esp_combs(skb, t); + alg_size = dump_esp_combs(skb, t); + + hdr->sadb_msg_len += alg_size / 8; /* security context */ if (xfrm_ctx) { @@ -3379,7 +3394,7 @@ hdr->sadb_msg_len = size / sizeof(uint64_t); hdr->sadb_msg_errno = 0; hdr->sadb_msg_reserved = 0; - hdr->sadb_msg_seq = x->km.seq = get_acqseq(); + hdr->sadb_msg_seq = x->km.seq; hdr->sadb_msg_pid = 0; /* SA */ --- linux-5.19.0.orig/net/mac80211/airtime.c +++ linux-5.19.0/net/mac80211/airtime.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: ISC /* * Copyright (C) 2019 Felix Fietkau - * Copyright (C) 2021 Intel Corporation + * Copyright (C) 2021-2022 Intel Corporation */ #include @@ -452,6 +452,9 @@ (status->encoding == RX_ENC_HE && streams > 8))) return 0; + if (idx >= MCS_GROUP_RATES) + return 0; + duration = airtime_mcs_groups[group].duration[idx]; duration <<= airtime_mcs_groups[group].shift; *overhead = 36 + (streams << 2); @@ -637,7 +640,7 @@ len += 38; /* Ethernet header length */ - conf = rcu_dereference(vif->chanctx_conf); + conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (conf) { band = conf->def.chan->band; shift = ieee80211_chandef_get_shift(&conf->def); --- linux-5.19.0.orig/net/mac80211/cfg.c +++ linux-5.19.0/net/mac80211/cfg.c @@ -53,7 +53,7 @@ params->vht_mumimo_follow_addr); } - sdata->vif.mu_mimo_owner = mu_mimo_groups || mu_mimo_follow; + sdata->vif.bss_conf.mu_mimo_owner = mu_mimo_groups || mu_mimo_follow; } static int ieee80211_set_mon_options(struct ieee80211_sub_if_data *sdata, @@ -1326,7 +1326,7 @@ /* don't allow changing the beacon while a countdown is in place - offset * of channel switch counter may change */ - if (sdata->vif.csa_active || sdata->vif.color_change_active) + if (sdata->vif.bss_conf.csa_active || sdata->vif.bss_conf.color_change_active) return -EBUSY; old = sdata_dereference(sdata->u.ap.beacon, sdata); @@ -1358,7 +1358,8 @@ sdata->u.ap.next_beacon = NULL; } -static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev) +static int ieee80211_stop_ap(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); struct ieee80211_sub_if_data *vlan; @@ -1383,7 +1384,7 @@ /* abort any running channel switch */ mutex_lock(&local->mtx); - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; if (sdata->csa_block_tx) { ieee80211_wake_vif_queues(local, sdata, IEEE80211_QUEUE_STOP_REASON_CSA); @@ -3065,6 +3066,7 @@ static int ieee80211_set_bitrate_mask(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id, const u8 *addr, const struct cfg80211_bitrate_mask *mask) { @@ -3081,7 +3083,7 @@ * to send something, and if we're an AP we have to be able to do * so at a basic rate so that all clients can receive it. */ - if (rcu_access_pointer(sdata->vif.chanctx_conf) && + if (rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) && sdata->vif.bss_conf.chandef.chan) { u32 basic_rates = sdata->vif.bss_conf.basic_rates; enum nl80211_band band = sdata->vif.bss_conf.chandef.chan->band; @@ -3388,7 +3390,7 @@ &sdata->csa_chandef)) return -EINVAL; - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; err = ieee80211_set_after_csa_beacon(sdata, &changed); if (err) @@ -3406,7 +3408,7 @@ if (err) return err; - cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef); + cfg80211_ch_switch_notify(sdata->dev, &sdata->csa_chandef, 0); return 0; } @@ -3432,7 +3434,7 @@ mutex_lock(&local->chanctx_mtx); /* AP might have been stopped while waiting for the lock. */ - if (!sdata->vif.csa_active) + if (!sdata->vif.bss_conf.csa_active) goto unlock; if (!ieee80211_sdata_running(sdata)) @@ -3543,9 +3545,6 @@ case NL80211_IFTYPE_MESH_POINT: { struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; - if (params->chandef.width != sdata->vif.bss_conf.chandef.width) - return -EINVAL; - /* changes into another band are not supported */ if (sdata->vif.bss_conf.chandef.chan->band != params->chandef.chan->band) @@ -3584,7 +3583,7 @@ static void ieee80211_color_change_abort(struct ieee80211_sub_if_data *sdata) { - sdata->vif.color_change_active = false; + sdata->vif.bss_conf.color_change_active = false; ieee80211_free_next_beacon(sdata); @@ -3617,11 +3616,11 @@ return -EINVAL; /* don't allow another channel switch if one is already active. */ - if (sdata->vif.csa_active) + if (sdata->vif.bss_conf.csa_active) return -EBUSY; mutex_lock(&local->chanctx_mtx); - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (!conf) { err = -EBUSY; @@ -3660,7 +3659,7 @@ } /* if there is a color change in progress, abort it */ - if (sdata->vif.color_change_active) + if (sdata->vif.bss_conf.color_change_active) ieee80211_color_change_abort(sdata); err = ieee80211_set_csa_beacon(sdata, params, &changed); @@ -3671,7 +3670,7 @@ sdata->csa_chandef = params->chandef; sdata->csa_block_tx = params->block_tx; - sdata->vif.csa_active = true; + sdata->vif.bss_conf.csa_active = true; if (sdata->csa_block_tx) ieee80211_stop_vif_queues(local, sdata, @@ -3840,7 +3839,7 @@ mutex_lock(&local->mtx); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { ret = -EINVAL; goto unlock; @@ -3914,6 +3913,7 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct ieee80211_sub_if_data *sdata = IEEE80211_WDEV_TO_SUB_IF(wdev); @@ -3922,7 +3922,7 @@ int ret = -ENODATA; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (chanctx_conf) { *chandef = sdata->vif.bss_conf.chandef; ret = 0; @@ -3974,6 +3974,7 @@ static int ieee80211_set_ap_chanwidth(struct wiphy *wiphy, struct net_device *dev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); @@ -4417,7 +4418,7 @@ sdata_assert_lock(sdata); lockdep_assert_held(&local->mtx); - sdata->vif.color_change_active = false; + sdata->vif.bss_conf.color_change_active = false; err = ieee80211_set_after_color_change_beacon(sdata, &changed); if (err) { @@ -4426,7 +4427,7 @@ } ieee80211_color_change_bss_config_notify(sdata, - sdata->vif.color_change_color, + sdata->vif.bss_conf.color_change_color, 1, changed); cfg80211_color_change_notify(sdata->dev); @@ -4444,7 +4445,7 @@ mutex_lock(&local->mtx); /* AP might have been stopped while waiting for the lock. */ - if (!sdata->vif.color_change_active) + if (!sdata->vif.bss_conf.color_change_active) goto unlock; if (!ieee80211_sdata_running(sdata)) @@ -4472,7 +4473,7 @@ { struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); - if (sdata->vif.color_change_active || sdata->vif.csa_active) + if (sdata->vif.bss_conf.color_change_active || sdata->vif.bss_conf.csa_active) return; cfg80211_obss_color_collision_notify(sdata->dev, color_bitmap, gfp); @@ -4498,7 +4499,7 @@ /* don't allow another color change if one is already active or if csa * is active */ - if (sdata->vif.color_change_active || sdata->vif.csa_active) { + if (sdata->vif.bss_conf.color_change_active || sdata->vif.bss_conf.csa_active) { err = -EBUSY; goto out; } @@ -4507,8 +4508,8 @@ if (err) goto out; - sdata->vif.color_change_active = true; - sdata->vif.color_change_color = params->color; + sdata->vif.bss_conf.color_change_active = true; + sdata->vif.bss_conf.color_change_color = params->color; cfg80211_color_change_started_notify(sdata->dev, params->count); --- linux-5.19.0.orig/net/mac80211/chan.c +++ linux-5.19.0/net/mac80211/chan.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * mac80211 - channel management - * Copyright 2020 - 2021 Intel Corporation + * Copyright 2020 - 2022 Intel Corporation */ #include @@ -72,7 +72,7 @@ struct ieee80211_local *local __maybe_unused = sdata->local; struct ieee80211_chanctx_conf *conf; - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (!conf) return NULL; @@ -260,7 +260,7 @@ if (!ieee80211_sdata_running(sdata)) continue; - if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) + if (rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) != conf) continue; switch (vif->type) { @@ -298,7 +298,7 @@ /* use the configured bandwidth in case of monitor interface */ sdata = rcu_dereference(local->monitor_sdata); - if (sdata && rcu_access_pointer(sdata->vif.chanctx_conf) == conf) + if (sdata && rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) == conf) max_bw = max(max_bw, conf->def.width); rcu_read_unlock(); @@ -368,7 +368,7 @@ if (!ieee80211_sdata_running(sta->sdata)) continue; - if (rcu_access_pointer(sta->sdata->vif.chanctx_conf) != + if (rcu_access_pointer(sta->sdata->vif.bss_conf.chanctx_conf) != &ctx->conf) continue; @@ -533,7 +533,7 @@ list_for_each_entry_rcu(sdata, &local->interfaces, list) { if (!ieee80211_sdata_running(sdata)) continue; - if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) + if (rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) != conf) continue; if (!sdata->radar_required) continue; @@ -689,7 +689,7 @@ if (!ieee80211_sdata_running(sdata)) continue; - if (rcu_access_pointer(sdata->vif.chanctx_conf) != conf) + if (rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) != conf) continue; if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) continue; @@ -759,7 +759,7 @@ if (WARN_ON(sdata->vif.type == NL80211_IFTYPE_NAN)) return -ENOTSUPP; - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (conf) { @@ -781,7 +781,7 @@ } out: - rcu_assign_pointer(sdata->vif.chanctx_conf, conf); + rcu_assign_pointer(sdata->vif.bss_conf.chanctx_conf, conf); sdata->vif.bss_conf.idle = !conf; @@ -825,7 +825,7 @@ if (!ieee80211_sdata_running(sdata)) continue; - if (rcu_access_pointer(sdata->vif.chanctx_conf) != + if (rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) != &chanctx->conf) continue; @@ -874,7 +874,7 @@ /* Disable SMPS for the monitor interface */ sdata = rcu_dereference(local->monitor_sdata); if (sdata && - rcu_access_pointer(sdata->vif.chanctx_conf) == &chanctx->conf) + rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf) == &chanctx->conf) rx_chains_dynamic = rx_chains_static = local->rx_chains; rcu_read_unlock(); @@ -917,7 +917,7 @@ * channel context pointer for a while, possibly pointing * to a channel context that has already been freed. */ - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); WARN_ON(!conf); @@ -925,7 +925,7 @@ conf = NULL; list_for_each_entry(vlan, &sdata->u.ap.vlans, u.vlan.list) - rcu_assign_pointer(vlan->vif.chanctx_conf, conf); + rcu_assign_pointer(vlan->vif.bss_conf.chanctx_conf, conf); } void ieee80211_vif_copy_chanctx_to_vlans(struct ieee80211_sub_if_data *sdata, @@ -1173,7 +1173,7 @@ } list_move(&sdata->assigned_chanctx_list, &new_ctx->assigned_vifs); - rcu_assign_pointer(sdata->vif.chanctx_conf, &new_ctx->conf); + rcu_assign_pointer(sdata->vif.bss_conf.chanctx_conf, &new_ctx->conf); if (sdata->vif.type == NL80211_IFTYPE_AP) __ieee80211_vif_copy_chanctx_to_vlans(sdata, false); @@ -1515,7 +1515,8 @@ if (!ieee80211_vif_has_in_place_reservation(sdata)) continue; - rcu_assign_pointer(sdata->vif.chanctx_conf, &ctx->conf); + rcu_assign_pointer(sdata->vif.bss_conf.chanctx_conf, + &ctx->conf); if (sdata->vif.type == NL80211_IFTYPE_AP) __ieee80211_vif_copy_chanctx_to_vlans(sdata, @@ -1634,7 +1635,7 @@ lockdep_assert_held(&local->chanctx_mtx); - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (!conf) return; @@ -1809,7 +1810,7 @@ goto out; } - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (!conf) { ret = -EINVAL; @@ -1879,9 +1880,9 @@ mutex_lock(&local->chanctx_mtx); - conf = rcu_dereference_protected(ap->vif.chanctx_conf, + conf = rcu_dereference_protected(ap->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); - rcu_assign_pointer(sdata->vif.chanctx_conf, conf); + rcu_assign_pointer(sdata->vif.bss_conf.chanctx_conf, conf); mutex_unlock(&local->chanctx_mtx); } --- linux-5.19.0.orig/net/mac80211/driver-ops.h +++ linux-5.19.0/net/mac80211/driver-ops.h @@ -165,7 +165,7 @@ if (WARN_ON_ONCE(sdata->vif.type == NL80211_IFTYPE_P2P_DEVICE || sdata->vif.type == NL80211_IFTYPE_NAN || (sdata->vif.type == NL80211_IFTYPE_MONITOR && - !sdata->vif.mu_mimo_owner && + !sdata->vif.bss_conf.mu_mimo_owner && !(changed & BSS_CHANGED_TXPOWER)))) return; --- linux-5.19.0.orig/net/mac80211/ethtool.c +++ linux-5.19.0/net/mac80211/ethtool.c @@ -5,7 +5,7 @@ * Copied from cfg.c - originally * Copyright 2006-2010 Johannes Berg * Copyright 2014 Intel Corporation (Author: Johannes Berg) - * Copyright (C) 2018 Intel Corporation + * Copyright (C) 2018, 2022 Intel Corporation */ #include #include @@ -150,7 +150,7 @@ survey.filled = 0; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (chanctx_conf) channel = chanctx_conf->def.chan; else --- linux-5.19.0.orig/net/mac80211/ibss.c +++ linux-5.19.0/net/mac80211/ibss.c @@ -9,7 +9,7 @@ * Copyright 2009, Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright(c) 2016 Intel Deutschland GmbH - * Copyright(c) 2018-2021 Intel Corporation + * Copyright(c) 2018-2022 Intel Corporation */ #include @@ -534,6 +534,10 @@ sdata_assert_lock(sdata); + /* When not connected/joined, sending CSA doesn't make sense. */ + if (ifibss->state != IEEE80211_IBSS_MLME_JOINED) + return -ENOLINK; + /* update cfg80211 bss information with the new channel */ if (!is_zero_ether_addr(ifibss->bssid)) { cbss = cfg80211_get_bss(sdata->local->hw.wiphy, @@ -622,7 +626,7 @@ } rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON_ONCE(!chanctx_conf)) return NULL; band = chanctx_conf->def.chan->band; @@ -923,7 +927,7 @@ if (len < required_len) return; - if (!sdata->vif.csa_active) + if (!sdata->vif.bss_conf.csa_active) ieee80211_ibss_process_chanswitch(sdata, elems, false); } @@ -1143,7 +1147,7 @@ goto put_bss; /* process channel switch */ - if (sdata->vif.csa_active || + if (sdata->vif.bss_conf.csa_active || ieee80211_ibss_process_chanswitch(sdata, elems, true)) goto put_bss; @@ -1220,7 +1224,7 @@ return; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON_ONCE(!chanctx_conf)) { rcu_read_unlock(); return; --- linux-5.19.0.orig/net/mac80211/ieee80211_i.h +++ linux-5.19.0/net/mac80211/ieee80211_i.h @@ -1077,7 +1077,7 @@ int shift = 0; rcu_read_lock(); - chanctx_conf = rcu_dereference(vif->chanctx_conf); + chanctx_conf = rcu_dereference(vif->bss_conf.chanctx_conf); if (chanctx_conf) shift = ieee80211_chandef_get_shift(&chanctx_conf->def); rcu_read_unlock(); @@ -1528,7 +1528,7 @@ enum nl80211_band band; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { rcu_read_unlock(); @@ -1640,6 +1640,14 @@ /* whether a parse error occurred while retrieving these elements */ bool parse_error; + + /* + * scratch buffer that can be used for various element parsing related + * tasks, e.g., element de-fragmentation etc. + */ + size_t scratch_len; + u8 *scratch_pos; + u8 scratch[]; }; static inline struct ieee80211_local *hw_to_local( @@ -2225,7 +2233,7 @@ struct ieee80211_chanctx_conf *chanctx_conf; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); kfree_skb(skb); --- linux-5.19.0.orig/net/mac80211/iface.c +++ linux-5.19.0/net/mac80211/iface.c @@ -51,7 +51,7 @@ int power; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { rcu_read_unlock(); return false; @@ -275,7 +275,7 @@ * will not add another interface while any channel * switch is active. */ - if (nsdata->vif.csa_active) + if (nsdata->vif.bss_conf.csa_active) return -EBUSY; /* @@ -451,7 +451,7 @@ cancel_work_sync(&sdata->recalc_smps); sdata_lock(sdata); mutex_lock(&local->mtx); - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; if (sdata->vif.type == NL80211_IFTYPE_STATION) sdata->u.mgd.csa_waiting_bcn = false; if (sdata->csa_block_tx) { @@ -503,7 +503,7 @@ mutex_lock(&local->mtx); list_del(&sdata->u.vlan.list); mutex_unlock(&local->mtx); - RCU_INIT_POINTER(sdata->vif.chanctx_conf, NULL); + RCU_INIT_POINTER(sdata->vif.bss_conf.chanctx_conf, NULL); /* see comment in the default case below */ ieee80211_free_keys(sdata, true); /* no need to tell driver */ @@ -2146,6 +2146,7 @@ ret = cfg80211_register_netdevice(ndev); if (ret) { + ieee80211_if_free(ndev); free_netdev(ndev); return ret; } --- linux-5.19.0.orig/net/mac80211/key.c +++ linux-5.19.0/net/mac80211/key.c @@ -433,13 +433,25 @@ int idx; int ret = 0; bool defunikey, defmultikey, defmgmtkey, defbeaconkey; + bool is_wep; /* caller must provide at least one old/new */ if (WARN_ON(!new && !old)) return 0; - if (new) + if (new) { + idx = new->conf.keyidx; list_add_tail_rcu(&new->list, &sdata->key_list); + is_wep = new->conf.cipher == WLAN_CIPHER_SUITE_WEP40 || + new->conf.cipher == WLAN_CIPHER_SUITE_WEP104; + } else { + idx = old->conf.keyidx; + is_wep = old->conf.cipher == WLAN_CIPHER_SUITE_WEP40 || + old->conf.cipher == WLAN_CIPHER_SUITE_WEP104; + } + + if ((is_wep || pairwise) && idx >= NUM_DEFAULT_KEYS) + return -EINVAL; WARN_ON(new && old && new->conf.keyidx != old->conf.keyidx); @@ -451,8 +463,6 @@ } if (old) { - idx = old->conf.keyidx; - if (old->flags & KEY_FLAG_UPLOADED_TO_HARDWARE) { ieee80211_key_disable_hw_accel(old); @@ -460,8 +470,6 @@ ret = ieee80211_key_enable_hw_accel(new); } } else { - /* new must be provided in case old is not */ - idx = new->conf.keyidx; if (!new->local->wowlan) ret = ieee80211_key_enable_hw_accel(new); } --- linux-5.19.0.orig/net/mac80211/main.c +++ linux-5.19.0/net/mac80211/main.c @@ -147,7 +147,7 @@ rcu_read_lock(); list_for_each_entry_rcu(sdata, &local->interfaces, list) { - if (!rcu_access_pointer(sdata->vif.chanctx_conf)) + if (!rcu_access_pointer(sdata->vif.bss_conf.chanctx_conf)) continue; if (sdata->vif.type == NL80211_IFTYPE_AP_VLAN) continue; @@ -284,7 +284,7 @@ * Then we can have a race... */ cancel_work_sync(&sdata->u.mgd.csa_connection_drop_work); - if (sdata->vif.csa_active) { + if (sdata->vif.bss_conf.csa_active) { sdata_lock(sdata); ieee80211_sta_connection_lost(sdata, WLAN_REASON_UNSPECIFIED, @@ -1369,8 +1369,10 @@ ieee80211_led_exit(local); destroy_workqueue(local->workqueue); fail_workqueue: - if (local->wiphy_ciphers_allocated) + if (local->wiphy_ciphers_allocated) { kfree(local->hw.wiphy->cipher_suites); + local->wiphy_ciphers_allocated = false; + } kfree(local->int_scan_req); return result; } @@ -1438,8 +1440,10 @@ mutex_destroy(&local->iflist_mtx); mutex_destroy(&local->mtx); - if (local->wiphy_ciphers_allocated) + if (local->wiphy_ciphers_allocated) { kfree(local->hw.wiphy->cipher_suites); + local->wiphy_ciphers_allocated = false; + } idr_for_each(&local->ack_status_frames, ieee80211_free_ack_frame, NULL); --- linux-5.19.0.orig/net/mac80211/mesh.c +++ linux-5.19.0/net/mac80211/mesh.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2008, 2009 open80211s Ltd. - * Copyright (C) 2018 - 2021 Intel Corporation + * Copyright (C) 2018 - 2022 Intel Corporation * Authors: Luis Carlos Cobo * Javier Cardona */ @@ -399,7 +399,7 @@ return -ENOMEM; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return -EINVAL; @@ -455,7 +455,7 @@ u8 *pos; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return -EINVAL; @@ -527,7 +527,7 @@ u8 *pos; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return -EINVAL; @@ -820,7 +820,7 @@ sdata = container_of(ifmsh, struct ieee80211_sub_if_data, u.mesh); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); band = chanctx_conf->def.chan->band; rcu_read_unlock(); @@ -1357,7 +1357,7 @@ rx_status); if (ifmsh->csa_role != IEEE80211_MESH_CSA_ROLE_INIT && - !sdata->vif.csa_active) + !sdata->vif.bss_conf.csa_active) ieee80211_mesh_process_chnswitch(sdata, elems, true); } @@ -1488,7 +1488,7 @@ ifmsh->pre_value = pre_value; - if (!sdata->vif.csa_active && + if (!sdata->vif.bss_conf.csa_active && !ieee80211_mesh_process_chnswitch(sdata, elems, false)) { mcsa_dbg(sdata, "Failed to process CSA action frame"); goto free; --- linux-5.19.0.orig/net/mac80211/mesh_pathtbl.c +++ linux-5.19.0/net/mac80211/mesh_pathtbl.c @@ -710,7 +710,7 @@ void mesh_path_discard_frame(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb) { - kfree_skb(skb); + ieee80211_free_txskb(&sdata->local->hw, skb); sdata->u.mesh.mshstats.dropped_frames_no_route++; } --- linux-5.19.0.orig/net/mac80211/mlme.c +++ linux-5.19.0/net/mac80211/mlme.c @@ -624,7 +624,7 @@ struct ieee80211_sub_if_data *other; list_for_each_entry_rcu(other, &local->interfaces, list) { - if (other->vif.mu_mimo_owner) { + if (other->vif.bss_conf.mu_mimo_owner) { disable_mu_mimo = true; break; } @@ -632,7 +632,7 @@ if (disable_mu_mimo) cap &= ~IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE; else - sdata->vif.mu_mimo_owner = true; + sdata->vif.bss_conf.mu_mimo_owner = true; } mask = IEEE80211_VHT_CAP_BEAMFORMEE_STS_MASK; @@ -664,7 +664,7 @@ bool reg_cap = false; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!WARN_ON_ONCE(!chanctx_conf)) reg_cap = cfg80211_chandef_usable(sdata->wdev.wiphy, &chanctx_conf->def, @@ -705,7 +705,7 @@ bool reg_cap = false; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!WARN_ON_ONCE(!chanctx_conf)) reg_cap = cfg80211_chandef_usable(sdata->wdev.wiphy, &chanctx_conf->def, @@ -766,7 +766,7 @@ sdata_assert_lock(sdata); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return -EINVAL; @@ -1229,7 +1229,7 @@ if (!ifmgd->associated) goto out; - if (!sdata->vif.csa_active) + if (!sdata->vif.bss_conf.csa_active) goto out; /* @@ -1289,7 +1289,7 @@ sdata_assert_lock(sdata); - WARN_ON(!sdata->vif.csa_active); + WARN_ON(!sdata->vif.bss_conf.csa_active); if (sdata->csa_block_tx) { ieee80211_wake_vif_queues(local, sdata, @@ -1297,7 +1297,7 @@ sdata->csa_block_tx = false; } - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; ifmgd->csa_waiting_bcn = false; /* * If the CSA IE is still present on the beacon after the switch, @@ -1314,7 +1314,7 @@ return; } - cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef); + cfg80211_ch_switch_notify(sdata->dev, &sdata->reserved_chandef, 0); } void ieee80211_chswitch_done(struct ieee80211_vif *vif, bool success) @@ -1361,7 +1361,7 @@ IEEE80211_QUEUE_STOP_REASON_CSA); sdata->csa_block_tx = false; - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; mutex_unlock(&local->mtx); @@ -1412,13 +1412,13 @@ if (res < 0) goto lock_and_drop_connection; - if (beacon && sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) { + if (beacon && sdata->vif.bss_conf.csa_active && !ifmgd->csa_waiting_bcn) { if (res) ieee80211_sta_abort_chanswitch(sdata); else drv_channel_switch_rx_beacon(sdata, &ch_switch); return; - } else if (sdata->vif.csa_active || res) { + } else if (sdata->vif.bss_conf.csa_active || res) { /* disregard subsequent announcements if already processing */ return; } @@ -1471,7 +1471,7 @@ mutex_lock(&local->mtx); mutex_lock(&local->chanctx_mtx); - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (!conf) { sdata_info(sdata, @@ -1504,7 +1504,7 @@ } mutex_unlock(&local->chanctx_mtx); - sdata->vif.csa_active = true; + sdata->vif.bss_conf.csa_active = true; sdata->csa_chandef = csa_ie.chandef; sdata->csa_block_tx = csa_ie.mode; ifmgd->csa_ignored_same_chan = false; @@ -1543,7 +1543,7 @@ * send a deauthentication frame. Those two fields will be * reset when the disconnection worker runs. */ - sdata->vif.csa_active = true; + sdata->vif.bss_conf.csa_active = true; sdata->csa_block_tx = csa_ie.mode; ieee80211_queue_work(&local->hw, &ifmgd->csa_connection_drop_work); @@ -2447,7 +2447,7 @@ memset(sdata->vif.bss_conf.mu_group.position, 0, sizeof(sdata->vif.bss_conf.mu_group.position)); changed |= BSS_CHANGED_MU_GROUPS; - sdata->vif.mu_mimo_owner = false; + sdata->vif.bss_conf.mu_mimo_owner = false; sdata->ap_power_level = IEEE80211_UNSET_POWER_LEVEL; @@ -2482,7 +2482,7 @@ mutex_lock(&local->mtx); ieee80211_vif_release_channel(sdata); - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; ifmgd->csa_waiting_bcn = false; ifmgd->csa_ignored_same_chan = false; if (sdata->csa_block_tx) { @@ -2810,7 +2810,7 @@ WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY, tx, frame_buf); mutex_lock(&local->mtx); - sdata->vif.csa_active = false; + sdata->vif.bss_conf.csa_active = false; ifmgd->csa_waiting_bcn = false; if (sdata->csa_block_tx) { ieee80211_wake_vif_queues(local, sdata, @@ -2950,7 +2950,7 @@ eth_zero_addr(sdata->u.mgd.bssid); ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BSSID); sdata->u.mgd.flags = 0; - sdata->vif.mu_mimo_owner = false; + sdata->vif.bss_conf.mu_mimo_owner = false; mutex_lock(&sdata->local->mtx); ieee80211_vif_release_channel(sdata); @@ -4136,7 +4136,7 @@ return; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { rcu_read_unlock(); return; @@ -4805,7 +4805,7 @@ from_timer(sdata, t, u.mgd.bcn_mon_timer); struct ieee80211_if_managed *ifmgd = &sdata->u.mgd; - if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) + if (sdata->vif.bss_conf.csa_active && !ifmgd->csa_waiting_bcn) return; if (sdata->vif.driver_flags & IEEE80211_VIF_BEACON_FILTER) @@ -4825,7 +4825,7 @@ struct sta_info *sta; unsigned long timeout; - if (sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) + if (sdata->vif.bss_conf.csa_active && !ifmgd->csa_waiting_bcn) return; sta = sta_info_get(sdata, ifmgd->bssid); --- linux-5.19.0.orig/net/mac80211/ocb.c +++ linux-5.19.0/net/mac80211/ocb.c @@ -4,6 +4,7 @@ * * Copyright: (c) 2014 Czech Technical University in Prague * (c) 2014 Volkswagen Group Research + * Copyright (C) 2022 Intel Corporation * Author: Rostislav Lisovy * Funded by: Volkswagen Group Research */ @@ -59,7 +60,7 @@ ocb_dbg(sdata, "Adding new OCB station %pM\n", addr); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON_ONCE(!chanctx_conf)) { rcu_read_unlock(); return; --- linux-5.19.0.orig/net/mac80211/offchannel.c +++ linux-5.19.0/net/mac80211/offchannel.c @@ -8,7 +8,7 @@ * Copyright 2006-2007 Jiri Benc * Copyright 2007, Michael Wu * Copyright 2009 Johannes Berg - * Copyright (C) 2019 Intel Corporation + * Copyright (C) 2019, 2022 Intel Corporation */ #include #include @@ -845,7 +845,7 @@ struct ieee80211_chanctx_conf *chanctx_conf; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (chanctx_conf) { need_offchan = params->chan && @@ -876,7 +876,7 @@ data = skb_put_data(skb, params->buf, params->len); /* Update CSA counters */ - if (sdata->vif.csa_active && + if (sdata->vif.bss_conf.csa_active && (sdata->vif.type == NL80211_IFTYPE_AP || sdata->vif.type == NL80211_IFTYPE_MESH_POINT || sdata->vif.type == NL80211_IFTYPE_ADHOC) && --- linux-5.19.0.orig/net/mac80211/rate.c +++ linux-5.19.0/net/mac80211/rate.c @@ -4,6 +4,7 @@ * Copyright 2005-2006, Devicescape Software, Inc. * Copyright (c) 2006 Jiri Benc * Copyright 2017 Intel Deutschland GmbH + * Copyright (C) 2022 Intel Corporation */ #include @@ -43,7 +44,7 @@ rcu_read_lock(); - chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sta->sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return; @@ -100,7 +101,7 @@ if (ref && ref->ops->rate_update) { rcu_read_lock(); - chanctx_conf = rcu_dereference(sta->sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sta->sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); return; --- linux-5.19.0.orig/net/mac80211/rc80211_minstrel_ht.c +++ linux-5.19.0/net/mac80211/rc80211_minstrel_ht.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include "rate.h" #include "sta_info.h" @@ -1550,6 +1551,7 @@ { struct ieee80211_sta_rates *rates; int i = 0; + int max_rates = min_t(int, mp->hw->max_rates, IEEE80211_TX_RATE_TABLE_SIZE); rates = kzalloc(sizeof(*rates), GFP_ATOMIC); if (!rates) @@ -1559,10 +1561,10 @@ minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_tp_rate[0]); /* Fill up remaining, keep one entry for max_probe_rate */ - for (; i < (mp->hw->max_rates - 1); i++) + for (; i < (max_rates - 1); i++) minstrel_ht_set_rate(mp, mi, rates, i, mi->max_tp_rate[i]); - if (i < mp->hw->max_rates) + if (i < max_rates) minstrel_ht_set_rate(mp, mi, rates, i++, mi->max_prob_rate); if (i < IEEE80211_TX_RATE_TABLE_SIZE) --- linux-5.19.0.orig/net/mac80211/rx.c +++ linux-5.19.0/net/mac80211/rx.c @@ -1988,10 +1988,11 @@ if (mmie_keyidx < NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS || mmie_keyidx >= NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS + - NUM_DEFAULT_BEACON_KEYS) { - cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, - skb->data, - skb->len); + NUM_DEFAULT_BEACON_KEYS) { + if (rx->sdata->dev) + cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, + skb->data, + skb->len); return RX_DROP_MONITOR; /* unexpected BIP keyidx */ } @@ -2139,7 +2140,8 @@ /* either the frame has been decrypted or will be dropped */ status->flag |= RX_FLAG_DECRYPTED; - if (unlikely(ieee80211_is_beacon(fc) && result == RX_DROP_UNUSABLE)) + if (unlikely(ieee80211_is_beacon(fc) && result == RX_DROP_UNUSABLE && + rx->sdata->dev)) cfg80211_rx_unprot_mlme_mgmt(rx->sdata->dev, skb->data, skb->len); @@ -3192,7 +3194,7 @@ if (ieee80211_hw_check(&rx->local->hw, DETECTS_COLOR_COLLISION)) return; - if (rx->sdata->vif.csa_active) + if (rx->sdata->vif.bss_conf.csa_active) return; baselen = mgmt->u.beacon.variable - rx->skb->data; --- linux-5.19.0.orig/net/mac80211/s1g.c +++ linux-5.19.0/net/mac80211/s1g.c @@ -112,6 +112,9 @@ goto out; } + /* TWT Information not supported yet */ + twt->control |= IEEE80211_TWT_CONTROL_RX_DISABLED; + drv_add_twt_setup(sdata->local, sdata, &sta->sta, twt); out: ieee80211_s1g_send_twt_setup(sdata, mgmt->sa, sdata->vif.addr, twt); --- linux-5.19.0.orig/net/mac80211/scan.c +++ linux-5.19.0/net/mac80211/scan.c @@ -465,16 +465,19 @@ scan_req = rcu_dereference_protected(local->scan_req, lockdep_is_held(&local->mtx)); - if (scan_req != local->int_scan_req) { - local->scan_info.aborted = aborted; - cfg80211_scan_done(scan_req, &local->scan_info); - } RCU_INIT_POINTER(local->scan_req, NULL); RCU_INIT_POINTER(local->scan_sdata, NULL); local->scanning = 0; local->scan_chandef.chan = NULL; + synchronize_rcu(); + + if (scan_req != local->int_scan_req) { + local->scan_info.aborted = aborted; + cfg80211_scan_done(scan_req, &local->scan_info); + } + /* Set power back to normal operating levels. */ ieee80211_hw_config(local, 0); --- linux-5.19.0.orig/net/mac80211/sta_info.c +++ linux-5.19.0/net/mac80211/sta_info.c @@ -373,6 +373,8 @@ memcpy(sta->addr, addr, ETH_ALEN); memcpy(sta->sta.addr, addr, ETH_ALEN); + memcpy(sta->deflink.addr, addr, ETH_ALEN); + memcpy(sta->sta.deflink.addr, addr, ETH_ALEN); sta->sta.max_rx_aggregation_subframes = local->hw.max_rx_aggregation_subframes; @@ -1467,7 +1469,7 @@ skb->dev = sdata->dev; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (WARN_ON(!chanctx_conf)) { rcu_read_unlock(); kfree_skb(skb); @@ -2219,9 +2221,9 @@ u64 value; do { - start = u64_stats_fetch_begin(&rxstats->syncp); + start = u64_stats_fetch_begin_irq(&rxstats->syncp); value = rxstats->msdu[tid]; - } while (u64_stats_fetch_retry(&rxstats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rxstats->syncp, start)); return value; } @@ -2287,9 +2289,9 @@ u64 value; do { - start = u64_stats_fetch_begin(&rxstats->syncp); + start = u64_stats_fetch_begin_irq(&rxstats->syncp); value = rxstats->bytes; - } while (u64_stats_fetch_retry(&rxstats->syncp, start)); + } while (u64_stats_fetch_retry_irq(&rxstats->syncp, start)); return value; } --- linux-5.19.0.orig/net/mac80211/tdls.c +++ linux-5.19.0/net/mac80211/tdls.c @@ -6,7 +6,7 @@ * Copyright 2014, Intel Corporation * Copyright 2014 Intel Mobile Communications GmbH * Copyright 2015 - 2016 Intel Deutschland GmbH - * Copyright (C) 2019, 2021 Intel Corporation + * Copyright (C) 2019, 2021-2022 Intel Corporation */ #include @@ -1254,7 +1254,7 @@ struct ieee80211_supported_band *sband; mutex_lock(&local->chanctx_mtx); - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (conf) { width = conf->def.width; @@ -1372,7 +1372,7 @@ switch (oper) { case NL80211_TDLS_ENABLE_LINK: - if (sdata->vif.csa_active) { + if (sdata->vif.bss_conf.csa_active) { tdls_dbg(sdata, "TDLS: disallow link during CSA\n"); ret = -EBUSY; break; --- linux-5.19.0.orig/net/mac80211/tx.c +++ linux-5.19.0/net/mac80211/tx.c @@ -57,7 +57,7 @@ return 0; rcu_read_lock(); - chanctx_conf = rcu_dereference(tx->sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(tx->sdata->vif.bss_conf.chanctx_conf); if (chanctx_conf) { shift = ieee80211_chandef_get_shift(&chanctx_conf->def); rate_flags = ieee80211_chandef_rate_flags(&chanctx_conf->def); @@ -2347,12 +2347,12 @@ } } - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { tmp_sdata = rcu_dereference(local->monitor_sdata); if (tmp_sdata) chanctx_conf = - rcu_dereference(tmp_sdata->vif.chanctx_conf); + rcu_dereference(tmp_sdata->vif.bss_conf.chanctx_conf); } if (chanctx_conf) @@ -2601,7 +2601,7 @@ } ap_sdata = container_of(sdata->bss, struct ieee80211_sub_if_data, u.ap); - chanctx_conf = rcu_dereference(ap_sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(ap_sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2612,7 +2612,7 @@ fallthrough; case NL80211_IFTYPE_AP: if (sdata->vif.type == NL80211_IFTYPE_AP) - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2691,7 +2691,7 @@ skb->data + ETH_ALEN); } - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2734,7 +2734,7 @@ memcpy(hdr.addr3, skb->data, ETH_ALEN); hdrlen = 24; } - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2747,7 +2747,7 @@ memcpy(hdr.addr2, skb->data + ETH_ALEN, ETH_ALEN); eth_broadcast_addr(hdr.addr3); hdrlen = 24; - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2760,7 +2760,7 @@ memcpy(hdr.addr2, skb->data + ETH_ALEN, ETH_ALEN); memcpy(hdr.addr3, sdata->u.ibss.bssid, ETH_ALEN); hdrlen = 24; - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { ret = -ENOTCONN; goto free; @@ -2974,7 +2974,7 @@ goto out; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) { rcu_read_unlock(); goto out; @@ -4605,7 +4605,7 @@ sdata = vif_to_sdata(info->control.vif); if (info->control.flags & IEEE80211_TX_INTCFL_NEED_TXPROCESSING) { - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (unlikely(!chanctx_conf)) { dev_kfree_skb(skb); return true; @@ -4809,7 +4809,7 @@ bcn_offsets = beacon->cntdwn_counter_offsets; count = beacon->cntdwn_current_counter; - if (sdata->vif.csa_active) + if (sdata->vif.bss_conf.csa_active) max_count = IEEE80211_MAX_CNTDWN_COUNTERS_NUM; for (i = 0; i < max_count; ++i) { @@ -5120,7 +5120,7 @@ rcu_read_lock(); sdata = vif_to_sdata(vif); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!ieee80211_sdata_running(sdata) || !chanctx_conf) goto out; @@ -5537,7 +5537,7 @@ sdata = vif_to_sdata(vif); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (!chanctx_conf) goto out; @@ -5761,6 +5761,9 @@ skb_reset_network_header(skb); skb_reset_mac_header(skb); + if (local->hw.queues < IEEE80211_NUM_ACS) + goto start_xmit; + /* update QoS header to prioritize control port frames if possible, * priorization also happens for control port frames send over * AF_PACKET @@ -5776,6 +5779,7 @@ rcu_read_unlock(); +start_xmit: /* mutex lock is only needed for incrementing the cookie counter */ mutex_lock(&local->mtx); --- linux-5.19.0.orig/net/mac80211/util.c +++ linux-5.19.0/net/mac80211/util.c @@ -301,14 +301,14 @@ local_bh_disable(); spin_lock(&fq->lock); + sdata->vif.txqs_stopped[ac] = false; + if (!test_bit(SDATA_STATE_RUNNING, &sdata->state)) goto out; if (sdata->vif.type == NL80211_IFTYPE_AP) ps = &sdata->bss->ps; - sdata->vif.txqs_stopped[ac] = false; - list_for_each_entry_rcu(sta, &local->sta_list, list) { if (sdata != sta->sdata) continue; @@ -1439,6 +1439,8 @@ for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, start, len) { if (elem->datalen < 2) continue; + if (elem->data[0] < 1 || elem->data[0] > 8) + continue; for_each_element(sub, elem->data + 1, elem->datalen - 1) { u8 new_bssid[ETH_ALEN]; @@ -1501,25 +1503,28 @@ const struct element *non_inherit = NULL; u8 *nontransmitted_profile; int nontransmitted_profile_len = 0; + size_t scratch_len = len; - elems = kzalloc(sizeof(*elems), GFP_ATOMIC); + elems = kzalloc(sizeof(*elems) + scratch_len, GFP_ATOMIC); if (!elems) return NULL; elems->ie_start = start; elems->total_len = len; + elems->scratch_len = scratch_len; + elems->scratch_pos = elems->scratch; - nontransmitted_profile = kmalloc(len, GFP_ATOMIC); - if (nontransmitted_profile) { - nontransmitted_profile_len = - ieee802_11_find_bssid_profile(start, len, elems, - transmitter_bssid, - bss_bssid, - nontransmitted_profile); - non_inherit = - cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE, - nontransmitted_profile, - nontransmitted_profile_len); - } + nontransmitted_profile = elems->scratch_pos; + nontransmitted_profile_len = + ieee802_11_find_bssid_profile(start, len, elems, + transmitter_bssid, + bss_bssid, + nontransmitted_profile); + elems->scratch_pos += nontransmitted_profile_len; + elems->scratch_len -= nontransmitted_profile_len; + non_inherit = + cfg80211_find_ext_elem(WLAN_EID_EXT_NON_INHERITANCE, + nontransmitted_profile, + nontransmitted_profile_len); crc = _ieee802_11_parse_elems_crc(start, len, action, elems, filter, crc, non_inherit); @@ -1548,8 +1553,6 @@ offsetofend(struct ieee80211_bssid_index, dtim_count)) elems->dtim_count = elems->bssid_index->dtim_count; - kfree(nontransmitted_profile); - elems->crc = crc; return elems; @@ -1569,7 +1572,7 @@ return; rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); if (chanctx_conf) center_freq = chanctx_conf->def.chan->center_freq; @@ -1616,7 +1619,7 @@ memset(&qparam, 0, sizeof(qparam)); rcu_read_lock(); - chanctx_conf = rcu_dereference(sdata->vif.chanctx_conf); + chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf); use_11b = (chanctx_conf && chanctx_conf->def.chan->band == NL80211_BAND_2GHZ) && !(sdata->flags & IEEE80211_SDATA_OPERATING_GMODE); @@ -2267,7 +2270,7 @@ return; mutex_lock(&local->chanctx_mtx); - conf = rcu_dereference_protected(sdata->vif.chanctx_conf, + conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, lockdep_is_held(&local->chanctx_mtx)); if (conf) { ctx = container_of(conf, struct ieee80211_chanctx, conf); @@ -2526,7 +2529,7 @@ BSS_CHANGED_TXPOWER | BSS_CHANGED_MCAST_RATE; - if (sdata->vif.mu_mimo_owner) + if (sdata->vif.bss_conf.mu_mimo_owner) changed |= BSS_CHANGED_MU_GROUPS; switch (sdata->vif.type) { @@ -2809,8 +2812,8 @@ mutex_lock(&local->chanctx_mtx); - chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, - lockdep_is_held(&local->chanctx_mtx)); + chanctx_conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, + lockdep_is_held(&local->chanctx_mtx)); /* * This function can be called from a work, thus it may be possible @@ -2835,8 +2838,8 @@ mutex_lock(&local->chanctx_mtx); - chanctx_conf = rcu_dereference_protected(sdata->vif.chanctx_conf, - lockdep_is_held(&local->chanctx_mtx)); + chanctx_conf = rcu_dereference_protected(sdata->vif.bss_conf.chanctx_conf, + lockdep_is_held(&local->chanctx_mtx)); if (WARN_ON_ONCE(!chanctx_conf)) goto unlock; --- linux-5.19.0.orig/net/mac80211/vht.c +++ linux-5.19.0/net/mac80211/vht.c @@ -4,7 +4,7 @@ * * Portions of this file * Copyright(c) 2015 - 2016 Intel Deutschland GmbH - * Copyright (C) 2018 - 2021 Intel Corporation + * Copyright (C) 2018 - 2022 Intel Corporation */ #include @@ -649,7 +649,7 @@ { struct ieee80211_bss_conf *bss_conf = &sdata->vif.bss_conf; - if (!sdata->vif.mu_mimo_owner) + if (!sdata->vif.bss_conf.mu_mimo_owner) return; if (!memcmp(mgmt->u.action.u.vht_group_notif.position, @@ -673,7 +673,7 @@ { struct ieee80211_bss_conf *bss_conf = &vif->bss_conf; - if (WARN_ON_ONCE(!vif->mu_mimo_owner)) + if (WARN_ON_ONCE(!vif->bss_conf.mu_mimo_owner)) return; memcpy(bss_conf->mu_group.membership, membership, WLAN_MEMBERSHIP_LEN); --- linux-5.19.0.orig/net/mac802154/iface.c +++ linux-5.19.0/net/mac802154/iface.c @@ -662,6 +662,7 @@ sdata->dev = ndev; sdata->wpan_dev.wpan_phy = local->hw.phy; sdata->local = local; + INIT_LIST_HEAD(&sdata->wpan_dev.list); /* setup type-dependent data */ ret = ieee802154_setup_sdata(sdata, type); --- linux-5.19.0.orig/net/mac802154/rx.c +++ linux-5.19.0/net/mac802154/rx.c @@ -44,7 +44,7 @@ switch (mac_cb(skb)->dest.mode) { case IEEE802154_ADDR_NONE: - if (mac_cb(skb)->dest.mode != IEEE802154_ADDR_NONE) + if (hdr->source.mode != IEEE802154_ADDR_NONE) /* FIXME: check if we are PAN coordinator */ skb->pkt_type = PACKET_OTHERHOST; else @@ -132,7 +132,7 @@ ieee802154_parse_frame_start(struct sk_buff *skb, struct ieee802154_hdr *hdr) { int hlen; - struct ieee802154_mac_cb *cb = mac_cb_init(skb); + struct ieee802154_mac_cb *cb = mac_cb(skb); skb_reset_mac_header(skb); @@ -294,8 +294,9 @@ ieee802154_rx_irqsafe(struct ieee802154_hw *hw, struct sk_buff *skb, u8 lqi) { struct ieee802154_local *local = hw_to_local(hw); + struct ieee802154_mac_cb *cb = mac_cb_init(skb); - mac_cb(skb)->lqi = lqi; + cb->lqi = lqi; skb->pkt_type = IEEE802154_RX_MSG; skb_queue_tail(&local->skb_queue, skb); tasklet_schedule(&local->tasklet); --- linux-5.19.0.orig/net/mctp/af_mctp.c +++ linux-5.19.0/net/mctp/af_mctp.c @@ -295,11 +295,12 @@ mctp_dev_release_key(key->dev, key); spin_unlock_irqrestore(&key->lock, flags); - hlist_del(&key->hlist); - hlist_del(&key->sklist); - - /* unref for the lists */ - mctp_key_unref(key); + if (!hlist_unhashed(&key->hlist)) { + hlist_del_init(&key->hlist); + hlist_del_init(&key->sklist); + /* unref for the lists */ + mctp_key_unref(key); + } kfree_skb(skb); } @@ -373,9 +374,17 @@ ctl.tag = tag | MCTP_TAG_OWNER | MCTP_TAG_PREALLOC; if (copy_to_user((void __user *)arg, &ctl, sizeof(ctl))) { - spin_lock_irqsave(&key->lock, flags); - __mctp_key_remove(key, net, flags, MCTP_TRACE_KEY_DROPPED); + unsigned long fl2; + /* Unwind our key allocation: the keys list lock needs to be + * taken before the individual key locks, and we need a valid + * flags value (fl2) to pass to __mctp_key_remove, hence the + * second spin_lock_irqsave() rather than a plain spin_lock(). + */ + spin_lock_irqsave(&net->mctp.keys_lock, flags); + spin_lock_irqsave(&key->lock, fl2); + __mctp_key_remove(key, net, fl2, MCTP_TRACE_KEY_DROPPED); mctp_key_unref(key); + spin_unlock_irqrestore(&net->mctp.keys_lock, flags); return -EFAULT; } @@ -656,12 +665,14 @@ rc = mctp_neigh_init(); if (rc) - goto err_unreg_proto; + goto err_unreg_routes; mctp_device_init(); return 0; +err_unreg_routes: + mctp_routes_exit(); err_unreg_proto: proto_unregister(&mctp_proto); err_unreg_sock: --- linux-5.19.0.orig/net/mctp/device.c +++ linux-5.19.0/net/mctp/device.c @@ -429,12 +429,6 @@ struct mctp_dev *mdev; mdev = mctp_dev_get_rtnl(dev); - if (mdev && !mctp_known(dev)) { - // Sanity check, should match what was set in mctp_register - netdev_warn(dev, "%s: BUG mctp_ptr set for unknown type %d", - __func__, dev->type); - return; - } if (!mdev) return; @@ -451,14 +445,8 @@ struct mctp_dev *mdev; /* Already registered? */ - mdev = rtnl_dereference(dev->mctp_ptr); - - if (mdev) { - if (!mctp_known(dev)) - netdev_warn(dev, "%s: BUG mctp_ptr set for unknown type %d", - __func__, dev->type); + if (rtnl_dereference(dev->mctp_ptr)) return 0; - } /* only register specific types */ if (!mctp_known(dev)) --- linux-5.19.0.orig/net/mctp/route.c +++ linux-5.19.0/net/mctp/route.c @@ -228,12 +228,12 @@ if (!key->manual_alloc) { spin_lock_irqsave(&net->mctp.keys_lock, flags); - hlist_del(&key->hlist); - hlist_del(&key->sklist); + if (!hlist_unhashed(&key->hlist)) { + hlist_del_init(&key->hlist); + hlist_del_init(&key->sklist); + mctp_key_unref(key); + } spin_unlock_irqrestore(&net->mctp.keys_lock, flags); - - /* unref for the lists */ - mctp_key_unref(key); } /* and one for the local reference */ @@ -1400,7 +1400,7 @@ return register_pernet_subsys(&mctp_net_ops); } -void __exit mctp_routes_exit(void) +void mctp_routes_exit(void) { unregister_pernet_subsys(&mctp_net_ops); rtnl_unregister(PF_MCTP, RTM_DELROUTE); --- linux-5.19.0.orig/net/mpls/af_mpls.c +++ linux-5.19.0/net/mpls/af_mpls.c @@ -1079,9 +1079,9 @@ p = per_cpu_ptr(mdev->stats, i); do { - start = u64_stats_fetch_begin(&p->syncp); + start = u64_stats_fetch_begin_irq(&p->syncp); local = p->stats; - } while (u64_stats_fetch_retry(&p->syncp, start)); + } while (u64_stats_fetch_retry_irq(&p->syncp, start)); stats->rx_packets += local.rx_packets; stats->rx_bytes += local.rx_bytes; @@ -1428,6 +1428,7 @@ free: kfree(table); out: + mdev->sysctl = NULL; return -ENOBUFS; } @@ -1437,6 +1438,9 @@ struct net *net = dev_net(dev); struct ctl_table *table; + if (!mdev->sysctl) + return; + table = mdev->sysctl->ctl_table_arg; unregister_net_sysctl_table(mdev->sysctl); kfree(table); --- linux-5.19.0.orig/net/mptcp/protocol.c +++ linux-5.19.0/net/mptcp/protocol.c @@ -323,9 +323,10 @@ struct mptcp_sock *msk = mptcp_sk(sk); int amt, amount; - if (size < msk->rmem_fwd_alloc) + if (size <= msk->rmem_fwd_alloc) return true; + size -= msk->rmem_fwd_alloc; amt = sk_mem_pages(size); amount = amt << SK_MEM_QUANTUM_SHIFT; msk->rmem_fwd_alloc += amount; @@ -1275,6 +1276,9 @@ info->limit > dfrag->data_len)) return 0; + if (unlikely(!__tcp_can_send(ssk))) + return -EAGAIN; + /* compute send limit */ info->mss_now = tcp_send_mss(ssk, &info->size_goal, info->flags); copy = info->size_goal; @@ -1295,7 +1299,7 @@ i = skb_shinfo(skb)->nr_frags; can_coalesce = skb_can_coalesce(skb, i, dfrag->page, offset); - if (!can_coalesce && i >= sysctl_max_skb_frags) { + if (!can_coalesce && i >= READ_ONCE(sysctl_max_skb_frags)) { tcp_mark_push(tcp_sk(ssk), skb); goto alloc_skb; } @@ -1448,7 +1452,8 @@ if (__mptcp_check_fallback(msk)) { if (!msk->first) return NULL; - return sk_stream_memory_free(msk->first) ? msk->first : NULL; + return __tcp_can_send(msk->first) && + sk_stream_memory_free(msk->first) ? msk->first : NULL; } /* re-use last subflow, if the burst allow that */ @@ -1599,6 +1604,8 @@ ret = mptcp_sendmsg_frag(sk, ssk, dfrag, &info); if (ret <= 0) { + if (ret == -EAGAIN) + continue; mptcp_push_release(ssk, &info); goto out; } @@ -2320,12 +2327,7 @@ goto out; } - /* if we are invoked by the msk cleanup code, the subflow is - * already orphaned - */ - if (ssk->sk_socket) - sock_orphan(ssk); - + sock_orphan(ssk); subflow->disposable = 1; /* if ssk hit tcp_done(), tcp_cleanup_ulp() cleared the related ops @@ -2685,7 +2687,7 @@ dfrag_clear(sk, dfrag); } -static void mptcp_cancel_work(struct sock *sk) +void mptcp_cancel_work(struct sock *sk) { struct mptcp_sock *msk = mptcp_sk(sk); @@ -2804,30 +2806,16 @@ static void __mptcp_destroy_sock(struct sock *sk) { - struct mptcp_subflow_context *subflow, *tmp; struct mptcp_sock *msk = mptcp_sk(sk); - LIST_HEAD(conn_list); pr_debug("msk=%p", msk); might_sleep(); - /* join list will be eventually flushed (with rst) at sock lock release time*/ - list_splice_init(&msk->conn_list, &conn_list); - mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); msk->pm.status = 0; - /* clears msk->subflow, allowing the following loop to close - * even the initial subflow - */ - mptcp_dispose_initial_subflow(msk); - list_for_each_entry_safe(subflow, tmp, &conn_list, node) { - struct sock *ssk = mptcp_subflow_tcp_sock(subflow); - __mptcp_close_ssk(sk, ssk, subflow, 0); - } - sk->sk_prot->destroy(sk); WARN_ON_ONCE(msk->rmem_fwd_alloc); @@ -2839,13 +2827,12 @@ sock_put(sk); } -static void mptcp_close(struct sock *sk, long timeout) +bool __mptcp_close(struct sock *sk, long timeout) { struct mptcp_subflow_context *subflow; struct mptcp_sock *msk = mptcp_sk(sk); bool do_cancel_work = false; - lock_sock(sk); sk->sk_shutdown = SHUTDOWN_MASK; if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE)) { @@ -2871,7 +2858,11 @@ if (ssk == msk->first) subflow->fail_tout = 0; - sock_orphan(ssk); + /* detach from the parent socket, but allow data_ready to + * push incoming data into the mptcp stack, to properly ack it + */ + ssk->sk_socket = NULL; + ssk->sk_wq = NULL; unlock_sock_fast(ssk, slow); } sock_orphan(sk); @@ -2887,6 +2878,17 @@ } else { mptcp_reset_timeout(msk, 0); } + + return do_cancel_work; +} + +static void mptcp_close(struct sock *sk, long timeout) +{ + bool do_cancel_work; + + lock_sock(sk); + + do_cancel_work = __mptcp_close(sk, timeout); release_sock(sk); if (do_cancel_work) mptcp_cancel_work(sk); @@ -2894,7 +2896,7 @@ sock_put(sk); } -static void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk) +void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk) { #if IS_ENABLED(CONFIG_MPTCP_IPV6) const struct ipv6_pinfo *ssk6 = inet6_sk(ssk); @@ -2919,24 +2921,20 @@ static int mptcp_disconnect(struct sock *sk, int flags) { - struct mptcp_subflow_context *subflow, *tmp; struct mptcp_sock *msk = mptcp_sk(sk); inet_sk_state_store(sk, TCP_CLOSE); - list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) { - struct sock *ssk = mptcp_subflow_tcp_sock(subflow); - - __mptcp_close_ssk(sk, ssk, subflow, MPTCP_CF_FASTCLOSE); - } - mptcp_stop_timer(sk); sk_stop_timer(sk, &sk->sk_timer); if (mptcp_sk(sk)->token) mptcp_event(MPTCP_EVENT_CLOSED, mptcp_sk(sk), NULL, GFP_KERNEL); - mptcp_destroy_common(msk); + /* msk->subflow is still intact, the following will not free the first + * subflow + */ + mptcp_destroy_common(msk, MPTCP_CF_FASTCLOSE); msk->last_snd = NULL; WRITE_ONCE(msk->flags, 0); msk->cb_flags = 0; @@ -3086,12 +3084,17 @@ return newsk; } -void mptcp_destroy_common(struct mptcp_sock *msk) +void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags) { + struct mptcp_subflow_context *subflow, *tmp; struct sock *sk = (struct sock *)msk; __mptcp_clear_xmit(sk); + /* join list will be eventually flushed (with rst) at sock lock release time */ + list_for_each_entry_safe(subflow, tmp, &msk->conn_list, node) + __mptcp_close_ssk(sk, mptcp_subflow_tcp_sock(subflow), subflow, flags); + /* move to sk_receive_queue, sk_stream_kill_queues will purge it */ mptcp_data_lock(sk); skb_queue_splice_tail_init(&msk->receive_queue, &sk->sk_receive_queue); @@ -3113,7 +3116,11 @@ { struct mptcp_sock *msk = mptcp_sk(sk); - mptcp_destroy_common(msk); + /* clears msk->subflow, allowing the following to close + * even the initial subflow + */ + mptcp_dispose_initial_subflow(msk); + mptcp_destroy_common(msk, 0); sk_sockets_allocated_dec(sk); } @@ -3632,7 +3639,6 @@ if (mptcp_is_fully_established(newsk)) mptcp_pm_fully_established(msk, msk->first, GFP_KERNEL); - mptcp_copy_inaddrs(newsk, msk->first); mptcp_rcv_space_init(msk, msk->first); mptcp_propagate_sndbuf(newsk, msk->first); --- linux-5.19.0.orig/net/mptcp/protocol.h +++ linux-5.19.0/net/mptcp/protocol.h @@ -597,6 +597,7 @@ int mptcp_allow_join_id0(const struct net *net); unsigned int mptcp_stale_loss_cnt(const struct net *net); int mptcp_get_pm_type(const struct net *net); +void mptcp_copy_inaddrs(struct sock *msk, const struct sock *ssk); void mptcp_subflow_fully_established(struct mptcp_subflow_context *subflow, struct mptcp_options_received *mp_opt); bool __mptcp_retransmit_pending_data(struct sock *sk); @@ -613,6 +614,8 @@ void mptcp_subflow_queue_clean(struct sock *ssk); void mptcp_sock_graft(struct sock *sk, struct socket *parent); struct socket *__mptcp_nmpc_socket(const struct mptcp_sock *msk); +bool __mptcp_close(struct sock *sk, long timeout); +void mptcp_cancel_work(struct sock *sk); bool mptcp_addresses_equal(const struct mptcp_addr_info *a, const struct mptcp_addr_info *b, bool use_port); @@ -625,16 +628,19 @@ struct sockaddr_storage *addr, unsigned short family); -static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) +static inline bool __tcp_can_send(const struct sock *ssk) { - struct sock *ssk = mptcp_subflow_tcp_sock(subflow); + /* only send if our side has not closed yet */ + return ((1 << inet_sk_state_load(ssk)) & (TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)); +} +static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) +{ /* can't send if JOIN hasn't completed yet (i.e. is usable for mptcp) */ if (subflow->request_join && !subflow->fully_established) return false; - /* only send if our side has not closed yet */ - return ((1 << ssk->sk_state) & (TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)); + return __tcp_can_send(mptcp_subflow_tcp_sock(subflow)); } void mptcp_subflow_set_active(struct mptcp_subflow_context *subflow); @@ -718,7 +724,7 @@ } } -void mptcp_destroy_common(struct mptcp_sock *msk); +void mptcp_destroy_common(struct mptcp_sock *msk, unsigned int flags); #define MPTCP_TOKEN_MAX_RETRIES 4 --- linux-5.19.0.orig/net/mptcp/subflow.c +++ linux-5.19.0/net/mptcp/subflow.c @@ -602,29 +602,6 @@ return !crypto_memneq(hmac, mp_opt->hmac, MPTCPOPT_HMAC_LEN); } -static void mptcp_sock_destruct(struct sock *sk) -{ - /* if new mptcp socket isn't accepted, it is free'd - * from the tcp listener sockets request queue, linked - * from req->sk. The tcp socket is released. - * This calls the ULP release function which will - * also remove the mptcp socket, via - * sock_put(ctx->conn). - * - * Problem is that the mptcp socket will be in - * ESTABLISHED state and will not have the SOCK_DEAD flag. - * Both result in warnings from inet_sock_destruct. - */ - if ((1 << sk->sk_state) & (TCPF_ESTABLISHED | TCPF_CLOSE_WAIT)) { - sk->sk_state = TCP_CLOSE; - WARN_ON_ONCE(sk->sk_socket); - sock_orphan(sk); - } - - mptcp_destroy_common(mptcp_sk(sk)); - inet_sock_destruct(sk); -} - static void mptcp_force_close(struct sock *sk) { /* the msk is not yet exposed to user-space */ @@ -746,6 +723,8 @@ goto dispose_child; } + if (new_msk) + mptcp_copy_inaddrs(new_msk, child); subflow_drop_ctx(child); goto out; } @@ -767,13 +746,17 @@ /* new mpc subflow takes ownership of the newly * created mptcp socket */ - new_msk->sk_destruct = mptcp_sock_destruct; mptcp_sk(new_msk)->setsockopt_seq = ctx->setsockopt_seq; mptcp_pm_new_connection(mptcp_sk(new_msk), child, 1); mptcp_token_accept(subflow_req, mptcp_sk(new_msk)); ctx->conn = new_msk; new_msk = NULL; + /* set msk addresses early to ensure mptcp_pm_get_local_id() + * uses the correct data + */ + mptcp_copy_inaddrs(ctx->conn, child); + /* with OoO packets we can reach here without ingress * mpc option */ @@ -1762,13 +1745,19 @@ for (msk = head; msk; msk = next) { struct sock *sk = (struct sock *)msk; - bool slow; + bool do_cancel_work; - slow = lock_sock_fast_nested(sk); + sock_hold(sk); + lock_sock_nested(sk, SINGLE_DEPTH_NESTING); next = msk->dl_next; msk->first = NULL; msk->dl_next = NULL; - unlock_sock_fast(sk, slow); + + do_cancel_work = __mptcp_close(sk, 0); + release_sock(sk); + if (do_cancel_work) + mptcp_cancel_work(sk); + sock_put(sk); } /* we are still under the listener msk socket lock */ --- linux-5.19.0.orig/net/netfilter/Kconfig +++ linux-5.19.0/net/netfilter/Kconfig @@ -144,7 +144,6 @@ config NF_CONNTRACK_PROCFS bool "Supply CT list in procfs (OBSOLETE)" - default y depends on PROC_FS help This option enables for the list of known conntrack entries --- linux-5.19.0.orig/net/netfilter/ipset/ip_set_core.c +++ linux-5.19.0/net/netfilter/ipset/ip_set_core.c @@ -1719,11 +1719,13 @@ skb2 = nlmsg_new(payload, GFP_KERNEL); if (!skb2) return -ENOMEM; - rep = __nlmsg_put(skb2, NETLINK_CB(skb).portid, - nlh->nlmsg_seq, NLMSG_ERROR, payload, 0); + rep = nlmsg_put(skb2, NETLINK_CB(skb).portid, + nlh->nlmsg_seq, NLMSG_ERROR, payload, 0); errmsg = nlmsg_data(rep); errmsg->error = ret; - memcpy(&errmsg->msg, nlh, nlh->nlmsg_len); + unsafe_memcpy(&errmsg->msg, nlh, nlh->nlmsg_len, + /* Bounds checked by the skb layer. */); + cmdattr = (void *)&errmsg->msg + min_len; ret = nla_parse(cda, IPSET_ATTR_CMD_MAX, cmdattr, --- linux-5.19.0.orig/net/netfilter/ipset/ip_set_hash_gen.h +++ linux-5.19.0/net/netfilter/ipset/ip_set_hash_gen.h @@ -42,31 +42,8 @@ #define AHASH_MAX_SIZE (6 * AHASH_INIT_SIZE) /* Max muber of elements in the array block when tuned */ #define AHASH_MAX_TUNED 64 - #define AHASH_MAX(h) ((h)->bucketsize) -/* Max number of elements can be tuned */ -#ifdef IP_SET_HASH_WITH_MULTI -static u8 -tune_bucketsize(u8 curr, u32 multi) -{ - u32 n; - - if (multi < curr) - return curr; - - n = curr + AHASH_INIT_SIZE; - /* Currently, at listing one hash bucket must fit into a message. - * Therefore we have a hard limit here. - */ - return n > curr && n <= AHASH_MAX_TUNED ? n : curr; -} -#define TUNE_BUCKETSIZE(h, multi) \ - ((h)->bucketsize = tune_bucketsize((h)->bucketsize, multi)) -#else -#define TUNE_BUCKETSIZE(h, multi) -#endif - /* A hash bucket */ struct hbucket { struct rcu_head rcu; /* for call_rcu */ @@ -936,7 +913,12 @@ goto set_full; /* Create a new slot */ if (n->pos >= n->size) { - TUNE_BUCKETSIZE(h, multi); +#ifdef IP_SET_HASH_WITH_MULTI + if (h->bucketsize >= AHASH_MAX_TUNED) + goto set_full; + else if (h->bucketsize <= multi) + h->bucketsize += AHASH_INIT_SIZE; +#endif if (n->size >= AHASH_MAX(h)) { /* Trigger rehashing */ mtype_data_next(&h->next, d); --- linux-5.19.0.orig/net/netfilter/ipset/ip_set_hash_ip.c +++ linux-5.19.0/net/netfilter/ipset/ip_set_hash_ip.c @@ -151,18 +151,16 @@ if (((u64)ip_to - ip + 1) >> (32 - h->netmask) > IPSET_MAX_RANGE) return -ERANGE; - if (retried) { + if (retried) ip = ntohl(h->next.ip); - e.ip = htonl(ip); - } for (; ip <= ip_to;) { + e.ip = htonl(ip); ret = adtfn(set, &e, &ext, &ext, flags); if (ret && !ip_set_eexist(ret, flags)) return ret; ip += hosts; - e.ip = htonl(ip); - if (e.ip == 0) + if (ip == 0) return 0; ret = 0; --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_app.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_app.c @@ -599,13 +599,19 @@ int __net_init ip_vs_app_net_init(struct netns_ipvs *ipvs) { INIT_LIST_HEAD(&ipvs->app_list); - proc_create_net("ip_vs_app", 0, ipvs->net->proc_net, &ip_vs_app_seq_ops, - sizeof(struct seq_net_private)); +#ifdef CONFIG_PROC_FS + if (!proc_create_net("ip_vs_app", 0, ipvs->net->proc_net, + &ip_vs_app_seq_ops, + sizeof(struct seq_net_private))) + return -ENOMEM; +#endif return 0; } void __net_exit ip_vs_app_net_cleanup(struct netns_ipvs *ipvs) { unregister_ip_vs_app(ipvs, NULL /* all */); +#ifdef CONFIG_PROC_FS remove_proc_entry("ip_vs_app", ipvs->net->proc_net); +#endif } --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_conn.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_conn.c @@ -1265,8 +1265,8 @@ * The drop rate array needs tuning for real environments. * Called from timer bh only => no locking */ - static const char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; - static char todrop_counter[9] = {0}; + static const signed char todrop_rate[9] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; + static signed char todrop_counter[9] = {0}; int i; /* if the conn entry hasn't lasted for 60 seconds, don't drop it. @@ -1447,20 +1447,36 @@ { atomic_set(&ipvs->conn_count, 0); - proc_create_net("ip_vs_conn", 0, ipvs->net->proc_net, - &ip_vs_conn_seq_ops, sizeof(struct ip_vs_iter_state)); - proc_create_net("ip_vs_conn_sync", 0, ipvs->net->proc_net, - &ip_vs_conn_sync_seq_ops, - sizeof(struct ip_vs_iter_state)); +#ifdef CONFIG_PROC_FS + if (!proc_create_net("ip_vs_conn", 0, ipvs->net->proc_net, + &ip_vs_conn_seq_ops, + sizeof(struct ip_vs_iter_state))) + goto err_conn; + + if (!proc_create_net("ip_vs_conn_sync", 0, ipvs->net->proc_net, + &ip_vs_conn_sync_seq_ops, + sizeof(struct ip_vs_iter_state))) + goto err_conn_sync; +#endif + return 0; + +#ifdef CONFIG_PROC_FS +err_conn_sync: + remove_proc_entry("ip_vs_conn", ipvs->net->proc_net); +err_conn: + return -ENOMEM; +#endif } void __net_exit ip_vs_conn_net_cleanup(struct netns_ipvs *ipvs) { /* flush all the connection entries first */ ip_vs_conn_flush(ipvs); +#ifdef CONFIG_PROC_FS remove_proc_entry("ip_vs_conn", ipvs->net->proc_net); remove_proc_entry("ip_vs_conn_sync", ipvs->net->proc_net); +#endif } int __init ip_vs_conn_init(void) --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_core.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_core.c @@ -132,21 +132,21 @@ s = this_cpu_ptr(dest->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.inpkts++; - s->cnt.inbytes += skb->len; + u64_stats_inc(&s->cnt.inpkts); + u64_stats_add(&s->cnt.inbytes, skb->len); u64_stats_update_end(&s->syncp); svc = rcu_dereference(dest->svc); s = this_cpu_ptr(svc->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.inpkts++; - s->cnt.inbytes += skb->len; + u64_stats_inc(&s->cnt.inpkts); + u64_stats_add(&s->cnt.inbytes, skb->len); u64_stats_update_end(&s->syncp); s = this_cpu_ptr(ipvs->tot_stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.inpkts++; - s->cnt.inbytes += skb->len; + u64_stats_inc(&s->cnt.inpkts); + u64_stats_add(&s->cnt.inbytes, skb->len); u64_stats_update_end(&s->syncp); local_bh_enable(); @@ -168,21 +168,21 @@ s = this_cpu_ptr(dest->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.outpkts++; - s->cnt.outbytes += skb->len; + u64_stats_inc(&s->cnt.outpkts); + u64_stats_add(&s->cnt.outbytes, skb->len); u64_stats_update_end(&s->syncp); svc = rcu_dereference(dest->svc); s = this_cpu_ptr(svc->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.outpkts++; - s->cnt.outbytes += skb->len; + u64_stats_inc(&s->cnt.outpkts); + u64_stats_add(&s->cnt.outbytes, skb->len); u64_stats_update_end(&s->syncp); s = this_cpu_ptr(ipvs->tot_stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.outpkts++; - s->cnt.outbytes += skb->len; + u64_stats_inc(&s->cnt.outpkts); + u64_stats_add(&s->cnt.outbytes, skb->len); u64_stats_update_end(&s->syncp); local_bh_enable(); @@ -200,17 +200,17 @@ s = this_cpu_ptr(cp->dest->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.conns++; + u64_stats_inc(&s->cnt.conns); u64_stats_update_end(&s->syncp); s = this_cpu_ptr(svc->stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.conns++; + u64_stats_inc(&s->cnt.conns); u64_stats_update_end(&s->syncp); s = this_cpu_ptr(ipvs->tot_stats.cpustats); u64_stats_update_begin(&s->syncp); - s->cnt.conns++; + u64_stats_inc(&s->cnt.conns); u64_stats_update_end(&s->syncp); local_bh_enable(); --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_ctl.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_ctl.c @@ -2297,11 +2297,11 @@ do { start = u64_stats_fetch_begin_irq(&u->syncp); - conns = u->cnt.conns; - inpkts = u->cnt.inpkts; - outpkts = u->cnt.outpkts; - inbytes = u->cnt.inbytes; - outbytes = u->cnt.outbytes; + conns = u64_stats_read(&u->cnt.conns); + inpkts = u64_stats_read(&u->cnt.inpkts); + outpkts = u64_stats_read(&u->cnt.outpkts); + inbytes = u64_stats_read(&u->cnt.inbytes); + outbytes = u64_stats_read(&u->cnt.outbytes); } while (u64_stats_fetch_retry_irq(&u->syncp, start)); seq_printf(seq, "%3X %8LX %8LX %8LX %16LX %16LX\n", --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_est.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_est.c @@ -67,11 +67,11 @@ if (add) { do { start = u64_stats_fetch_begin(&s->syncp); - conns = s->cnt.conns; - inpkts = s->cnt.inpkts; - outpkts = s->cnt.outpkts; - inbytes = s->cnt.inbytes; - outbytes = s->cnt.outbytes; + conns = u64_stats_read(&s->cnt.conns); + inpkts = u64_stats_read(&s->cnt.inpkts); + outpkts = u64_stats_read(&s->cnt.outpkts); + inbytes = u64_stats_read(&s->cnt.inbytes); + outbytes = u64_stats_read(&s->cnt.outbytes); } while (u64_stats_fetch_retry(&s->syncp, start)); sum->conns += conns; sum->inpkts += inpkts; @@ -82,11 +82,11 @@ add = true; do { start = u64_stats_fetch_begin(&s->syncp); - sum->conns = s->cnt.conns; - sum->inpkts = s->cnt.inpkts; - sum->outpkts = s->cnt.outpkts; - sum->inbytes = s->cnt.inbytes; - sum->outbytes = s->cnt.outbytes; + sum->conns = u64_stats_read(&s->cnt.conns); + sum->inpkts = u64_stats_read(&s->cnt.inpkts); + sum->outpkts = u64_stats_read(&s->cnt.outpkts); + sum->inbytes = u64_stats_read(&s->cnt.inbytes); + sum->outbytes = u64_stats_read(&s->cnt.outbytes); } while (u64_stats_fetch_retry(&s->syncp, start)); } } --- linux-5.19.0.orig/net/netfilter/ipvs/ip_vs_sync.c +++ linux-5.19.0/net/netfilter/ipvs/ip_vs_sync.c @@ -1280,12 +1280,12 @@ lock_sock(sk); if (mode) { val = clamp_t(int, val, (SOCK_MIN_SNDBUF + 1) / 2, - sysctl_wmem_max); + READ_ONCE(sysctl_wmem_max)); sk->sk_sndbuf = val * 2; sk->sk_userlocks |= SOCK_SNDBUF_LOCK; } else { val = clamp_t(int, val, (SOCK_MIN_RCVBUF + 1) / 2, - sysctl_rmem_max); + READ_ONCE(sysctl_rmem_max)); sk->sk_rcvbuf = val * 2; sk->sk_userlocks |= SOCK_RCVBUF_LOCK; } --- linux-5.19.0.orig/net/netfilter/nf_conntrack_core.c +++ linux-5.19.0/net/netfilter/nf_conntrack_core.c @@ -67,6 +67,7 @@ struct delayed_work dwork; u32 next_bucket; u32 avg_timeout; + u32 count; u32 start_time; bool exiting; bool early_drop; @@ -85,10 +86,12 @@ /* clamp timeouts to this value (TCP unacked) */ #define GC_SCAN_INTERVAL_CLAMP (300ul * HZ) -/* large initial bias so that we don't scan often just because we have - * three entries with a 1s timeout. +/* Initial bias pretending we have 100 entries at the upper bound so we don't + * wakeup often just because we have three entries with a 1s timeout while still + * allowing non-idle machines to wakeup more often when needed. */ -#define GC_SCAN_INTERVAL_INIT INT_MAX +#define GC_SCAN_INITIAL_COUNT 100 +#define GC_SCAN_INTERVAL_INIT GC_SCAN_INTERVAL_MAX #define GC_SCAN_MAX_DURATION msecs_to_jiffies(10) #define GC_SCAN_EXPIRED_MAX (64000u / HZ) @@ -890,7 +893,7 @@ zone = nf_ct_zone(ct); if (!nf_ct_ext_valid_pre(ct->ext)) { - NF_CT_STAT_INC(net, insert_failed); + NF_CT_STAT_INC_ATOMIC(net, insert_failed); return -ETIMEDOUT; } @@ -937,7 +940,7 @@ if (!nf_ct_ext_valid_post(ct->ext)) { nf_ct_kill(ct); - NF_CT_STAT_INC(net, drop); + NF_CT_STAT_INC_ATOMIC(net, drop); return -ETIMEDOUT; } @@ -1274,7 +1277,7 @@ */ if (!nf_ct_ext_valid_post(ct->ext)) { nf_ct_kill(ct); - NF_CT_STAT_INC(net, drop); + NF_CT_STAT_INC_ATOMIC(net, drop); return NF_DROP; } @@ -1468,6 +1471,7 @@ unsigned int expired_count = 0; unsigned long next_run; s32 delta_time; + long count; gc_work = container_of(work, struct conntrack_gc_work, dwork.work); @@ -1477,10 +1481,12 @@ if (i == 0) { gc_work->avg_timeout = GC_SCAN_INTERVAL_INIT; + gc_work->count = GC_SCAN_INITIAL_COUNT; gc_work->start_time = start_time; } next_run = gc_work->avg_timeout; + count = gc_work->count; end_time = start_time + GC_SCAN_MAX_DURATION; @@ -1500,8 +1506,8 @@ hlist_nulls_for_each_entry_rcu(h, n, &ct_hash[i], hnnode) { struct nf_conntrack_net *cnet; - unsigned long expires; struct net *net; + long expires; tmp = nf_ct_tuplehash_to_ctrack(h); @@ -1515,6 +1521,7 @@ gc_work->next_bucket = i; gc_work->avg_timeout = next_run; + gc_work->count = count; delta_time = nfct_time_stamp - gc_work->start_time; @@ -1530,8 +1537,8 @@ } expires = clamp(nf_ct_expires(tmp), GC_SCAN_INTERVAL_MIN, GC_SCAN_INTERVAL_CLAMP); + expires = (expires - (long)next_run) / ++count; next_run += expires; - next_run /= 2u; if (nf_conntrack_max95 == 0 || gc_worker_skip_ct(tmp)) continue; @@ -1572,6 +1579,7 @@ delta_time = nfct_time_stamp - end_time; if (delta_time > 0 && i < hashsz) { gc_work->avg_timeout = next_run; + gc_work->count = count; gc_work->next_bucket = i; next_run = 0; goto early_exit; @@ -1775,7 +1783,7 @@ } #ifdef CONFIG_NF_CONNTRACK_MARK - ct->mark = exp->master->mark; + ct->mark = READ_ONCE(exp->master->mark); #endif #ifdef CONFIG_NF_CONNTRACK_SECMARK ct->secmark = exp->master->secmark; --- linux-5.19.0.orig/net/netfilter/nf_conntrack_ftp.c +++ linux-5.19.0/net/netfilter/nf_conntrack_ftp.c @@ -33,10 +33,6 @@ MODULE_DESCRIPTION("ftp connection tracking helper"); MODULE_ALIAS("ip_conntrack_ftp"); MODULE_ALIAS_NFCT_HELPER(HELPER_NAME); - -/* This is slow, but it's simple. --RR */ -static char *ftp_buffer; - static DEFINE_SPINLOCK(nf_ftp_lock); #define MAX_PORTS 8 @@ -398,6 +394,9 @@ return NF_ACCEPT; } + if (unlikely(skb_linearize(skb))) + return NF_DROP; + th = skb_header_pointer(skb, protoff, sizeof(_tcph), &_tcph); if (th == NULL) return NF_ACCEPT; @@ -411,12 +410,9 @@ } datalen = skb->len - dataoff; + /* seqadj (nat) uses ct->lock internally, nf_nat_ftp would cause deadlock */ spin_lock_bh(&nf_ftp_lock); - fb_ptr = skb_header_pointer(skb, dataoff, datalen, ftp_buffer); - if (!fb_ptr) { - spin_unlock_bh(&nf_ftp_lock); - return NF_ACCEPT; - } + fb_ptr = skb->data + dataoff; ends_in_nl = (fb_ptr[datalen - 1] == '\n'); seq = ntohl(th->seq) + datalen; @@ -571,7 +567,6 @@ static void __exit nf_conntrack_ftp_fini(void) { nf_conntrack_helpers_unregister(ftp, ports_c * 2); - kfree(ftp_buffer); } static int __init nf_conntrack_ftp_init(void) @@ -580,10 +575,6 @@ NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_ftp_master)); - ftp_buffer = kmalloc(65536, GFP_KERNEL); - if (!ftp_buffer) - return -ENOMEM; - if (ports_c == 0) ports[ports_c++] = FTP_PORT; @@ -603,7 +594,6 @@ ret = nf_conntrack_helpers_register(ftp, ports_c * 2); if (ret < 0) { pr_err("failed to register helpers\n"); - kfree(ftp_buffer); return ret; } --- linux-5.19.0.orig/net/netfilter/nf_conntrack_h323_main.c +++ linux-5.19.0/net/netfilter/nf_conntrack_h323_main.c @@ -34,6 +34,8 @@ #include #include +#define H323_MAX_SIZE 65535 + /* Parameters */ static unsigned int default_rrq_ttl __read_mostly = 300; module_param(default_rrq_ttl, uint, 0600); @@ -142,6 +144,9 @@ if (tcpdatalen <= 0) /* No TCP data */ goto clear_out; + if (tcpdatalen > H323_MAX_SIZE) + tcpdatalen = H323_MAX_SIZE; + if (*data == NULL) { /* first TPKT */ /* Get first TPKT pointer */ tpkt = skb_header_pointer(skb, tcpdataoff, tcpdatalen, @@ -1220,6 +1225,9 @@ if (dataoff >= skb->len) return NULL; *datalen = skb->len - dataoff; + if (*datalen > H323_MAX_SIZE) + *datalen = H323_MAX_SIZE; + return skb_header_pointer(skb, dataoff, *datalen, h323_buffer); } @@ -1821,7 +1829,7 @@ NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_h323_master)); - h323_buffer = kmalloc(65536, GFP_KERNEL); + h323_buffer = kmalloc(H323_MAX_SIZE + 1, GFP_KERNEL); if (!h323_buffer) return -ENOMEM; ret = h323_helper_init(); --- linux-5.19.0.orig/net/netfilter/nf_conntrack_irc.c +++ linux-5.19.0/net/netfilter/nf_conntrack_irc.c @@ -39,6 +39,7 @@ EXPORT_SYMBOL_GPL(nf_nat_irc_hook); #define HELPER_NAME "irc" +#define MAX_SEARCH_SIZE 4095 MODULE_AUTHOR("Harald Welte "); MODULE_DESCRIPTION("IRC (DCC) connection tracking helper"); @@ -121,6 +122,7 @@ int i, ret = NF_ACCEPT; char *addr_beg_p, *addr_end_p; typeof(nf_nat_irc_hook) nf_nat_irc; + unsigned int datalen; /* If packet is coming from IRC server */ if (dir == IP_CT_DIR_REPLY) @@ -140,8 +142,12 @@ if (dataoff >= skb->len) return NF_ACCEPT; + datalen = skb->len - dataoff; + if (datalen > MAX_SEARCH_SIZE) + datalen = MAX_SEARCH_SIZE; + spin_lock_bh(&irc_buffer_lock); - ib_ptr = skb_header_pointer(skb, dataoff, skb->len - dataoff, + ib_ptr = skb_header_pointer(skb, dataoff, datalen, irc_buffer); if (!ib_ptr) { spin_unlock_bh(&irc_buffer_lock); @@ -149,17 +155,39 @@ } data = ib_ptr; - data_limit = ib_ptr + skb->len - dataoff; + data_limit = ib_ptr + datalen; + + /* Skip any whitespace */ + while (data < data_limit - 10) { + if (*data == ' ' || *data == '\r' || *data == '\n') + data++; + else + break; + } - /* strlen("\1DCC SENT t AAAAAAAA P\1\n")=24 - * 5+MINMATCHLEN+strlen("t AAAAAAAA P\1\n")=14 */ - while (data < data_limit - (19 + MINMATCHLEN)) { - if (memcmp(data, "\1DCC ", 5)) { + /* strlen("PRIVMSG x ")=10 */ + if (data < data_limit - 10) { + if (strncasecmp("PRIVMSG ", data, 8)) + goto out; + data += 8; + } + + /* strlen(" :\1DCC SENT t AAAAAAAA P\1\n")=26 + * 7+MINMATCHLEN+strlen("t AAAAAAAA P\1\n")=26 + */ + while (data < data_limit - (21 + MINMATCHLEN)) { + /* Find first " :", the start of message */ + if (memcmp(data, " :", 2)) { data++; continue; } + data += 2; + + /* then check that place only for the DCC command */ + if (memcmp(data, "\1DCC ", 5)) + goto out; data += 5; - /* we have at least (19+MINMATCHLEN)-5 bytes valid data left */ + /* we have at least (21+MINMATCHLEN)-(2+5) bytes valid data left */ iph = ip_hdr(skb); pr_debug("DCC found in master %pI4:%u %pI4:%u\n", @@ -175,7 +203,7 @@ pr_debug("DCC %s detected\n", dccprotos[i]); /* we have at least - * (19+MINMATCHLEN)-5-dccprotos[i].matchlen bytes valid + * (21+MINMATCHLEN)-7-dccprotos[i].matchlen bytes valid * data left (== 14/13 bytes) */ if (parse_dcc(data, data_limit, &dcc_ip, &dcc_port, &addr_beg_p, &addr_end_p)) { @@ -188,8 +216,9 @@ /* dcc_ip can be the internal OR external (NAT'ed) IP */ tuple = &ct->tuplehash[dir].tuple; - if (tuple->src.u3.ip != dcc_ip && - tuple->dst.u3.ip != dcc_ip) { + if ((tuple->src.u3.ip != dcc_ip && + ct->tuplehash[!dir].tuple.dst.u3.ip != dcc_ip) || + dcc_port == 0) { net_warn_ratelimited("Forged DCC command from %pI4: %pI4:%u\n", &tuple->src.u3.ip, &dcc_ip, dcc_port); @@ -251,7 +280,7 @@ irc_exp_policy.max_expected = max_dcc_channels; irc_exp_policy.timeout = dcc_timeout; - irc_buffer = kmalloc(65536, GFP_KERNEL); + irc_buffer = kmalloc(MAX_SEARCH_SIZE + 1, GFP_KERNEL); if (!irc_buffer) return -ENOMEM; --- linux-5.19.0.orig/net/netfilter/nf_conntrack_netlink.c +++ linux-5.19.0/net/netfilter/nf_conntrack_netlink.c @@ -330,7 +330,12 @@ #ifdef CONFIG_NF_CONNTRACK_MARK static int ctnetlink_dump_mark(struct sk_buff *skb, const struct nf_conn *ct) { - if (nla_put_be32(skb, CTA_MARK, htonl(ct->mark))) + u32 mark = READ_ONCE(ct->mark); + + if (!mark) + return 0; + + if (nla_put_be32(skb, CTA_MARK, htonl(mark))) goto nla_put_failure; return 0; @@ -345,10 +350,15 @@ static int ctnetlink_dump_secctx(struct sk_buff *skb, const struct nf_conn *ct) { struct nlattr *nest_secctx; - int len, ret; - char *secctx; + int ret; + struct lsmblob blob; + struct lsmcontext context; - ret = security_secid_to_secctx(ct->secmark, &secctx, &len); + /* lsmblob_init() puts ct->secmark into all of the secids in blob. + * security_secid_to_secctx() will know which security module + * to use to create the secctx. */ + lsmblob_init(&blob, ct->secmark); + ret = security_secid_to_secctx(&blob, &context, LSMBLOB_DISPLAY); if (ret) return 0; @@ -357,13 +367,13 @@ if (!nest_secctx) goto nla_put_failure; - if (nla_put_string(skb, CTA_SECCTX_NAME, secctx)) + if (nla_put_string(skb, CTA_SECCTX_NAME, context.context)) goto nla_put_failure; nla_nest_end(skb, nest_secctx); ret = 0; nla_put_failure: - security_release_secctx(secctx, len); + security_release_secctx(&context); return ret; } #else @@ -655,10 +665,11 @@ static inline int ctnetlink_secctx_size(const struct nf_conn *ct) { #ifdef CONFIG_NF_CONNTRACK_SECMARK - int len, ret; + int len; + struct lsmblob blob; - ret = security_secid_to_secctx(ct->secmark, NULL, &len); - if (ret) + len = security_secid_to_secctx(&blob, NULL, LSMBLOB_DISPLAY); + if (len <= 0) return 0; return nla_total_size(0) /* CTA_SECCTX */ @@ -826,8 +837,8 @@ } #ifdef CONFIG_NF_CONNTRACK_MARK - if ((events & (1 << IPCT_MARK) || ct->mark) - && ctnetlink_dump_mark(skb, ct) < 0) + if (events & (1 << IPCT_MARK) && + ctnetlink_dump_mark(skb, ct) < 0) goto nla_put_failure; #endif nlmsg_end(skb, nlh); @@ -1154,7 +1165,7 @@ } #ifdef CONFIG_NF_CONNTRACK_MARK - if ((ct->mark & filter->mark.mask) != filter->mark.val) + if ((READ_ONCE(ct->mark) & filter->mark.mask) != filter->mark.val) goto ignore_entry; #endif status = (u32)READ_ONCE(ct->status); @@ -2046,9 +2057,9 @@ mask = ~ntohl(nla_get_be32(cda[CTA_MARK_MASK])); mark = ntohl(nla_get_be32(cda[CTA_MARK])); - newmark = (ct->mark & mask) ^ mark; - if (newmark != ct->mark) - ct->mark = newmark; + newmark = (READ_ONCE(ct->mark) & mask) ^ mark; + if (newmark != READ_ONCE(ct->mark)) + WRITE_ONCE(ct->mark, newmark); } #endif @@ -2781,7 +2792,7 @@ goto nla_put_failure; #ifdef CONFIG_NF_CONNTRACK_MARK - if (ct->mark && ctnetlink_dump_mark(skb, ct) < 0) + if (ctnetlink_dump_mark(skb, ct) < 0) goto nla_put_failure; #endif if (ctnetlink_dump_labels(skb, ct) < 0) --- linux-5.19.0.orig/net/netfilter/nf_conntrack_proto_icmpv6.c +++ linux-5.19.0/net/netfilter/nf_conntrack_proto_icmpv6.c @@ -129,6 +129,56 @@ nf_l4proto_log_invalid(skb, state, IPPROTO_ICMPV6, "%s", msg); } +static noinline_for_stack int +nf_conntrack_icmpv6_redirect(struct nf_conn *tmpl, struct sk_buff *skb, + unsigned int dataoff, + const struct nf_hook_state *state) +{ + u8 hl = ipv6_hdr(skb)->hop_limit; + union nf_inet_addr outer_daddr; + union { + struct nd_opt_hdr nd_opt; + struct rd_msg rd_msg; + } tmp; + const struct nd_opt_hdr *nd_opt; + const struct rd_msg *rd_msg; + + rd_msg = skb_header_pointer(skb, dataoff, sizeof(*rd_msg), &tmp.rd_msg); + if (!rd_msg) { + icmpv6_error_log(skb, state, "short redirect"); + return -NF_ACCEPT; + } + + if (rd_msg->icmph.icmp6_code != 0) + return NF_ACCEPT; + + if (hl != 255 || !(ipv6_addr_type(&ipv6_hdr(skb)->saddr) & IPV6_ADDR_LINKLOCAL)) { + icmpv6_error_log(skb, state, "invalid saddr or hoplimit for redirect"); + return -NF_ACCEPT; + } + + dataoff += sizeof(*rd_msg); + + /* warning: rd_msg no longer usable after this call */ + nd_opt = skb_header_pointer(skb, dataoff, sizeof(*nd_opt), &tmp.nd_opt); + if (!nd_opt || nd_opt->nd_opt_len == 0) { + icmpv6_error_log(skb, state, "redirect without options"); + return -NF_ACCEPT; + } + + /* We could call ndisc_parse_options(), but it would need + * skb_linearize() and a bit more work. + */ + if (nd_opt->nd_opt_type != ND_OPT_REDIRECT_HDR) + return NF_ACCEPT; + + memcpy(&outer_daddr.ip6, &ipv6_hdr(skb)->daddr, + sizeof(outer_daddr.ip6)); + dataoff += 8; + return nf_conntrack_inet_error(tmpl, skb, dataoff, state, + IPPROTO_ICMPV6, &outer_daddr); +} + int nf_conntrack_icmpv6_error(struct nf_conn *tmpl, struct sk_buff *skb, unsigned int dataoff, @@ -159,6 +209,9 @@ return NF_ACCEPT; } + if (icmp6h->icmp6_type == NDISC_REDIRECT) + return nf_conntrack_icmpv6_redirect(tmpl, skb, dataoff, state); + /* is not error message ? */ if (icmp6h->icmp6_type >= 128) return NF_ACCEPT; --- linux-5.19.0.orig/net/netfilter/nf_conntrack_proto_tcp.c +++ linux-5.19.0/net/netfilter/nf_conntrack_proto_tcp.c @@ -655,6 +655,37 @@ tn->tcp_be_liberal) res = true; if (!res) { + bool seq_ok = before(seq, sender->td_maxend + 1); + + if (!seq_ok) { + u32 overshot = end - sender->td_maxend + 1; + bool ack_ok; + + ack_ok = after(sack, receiver->td_end - MAXACKWINDOW(sender) - 1); + + if (in_recv_win && + ack_ok && + overshot <= receiver->td_maxwin && + before(sack, receiver->td_end + 1)) { + /* Work around TCPs that send more bytes than allowed by + * the receive window. + * + * If the (marked as invalid) packet is allowed to pass by + * the ruleset and the peer acks this data, then its possible + * all future packets will trigger 'ACK is over upper bound' check. + * + * Thus if only the sequence check fails then do update td_end so + * possible ACK for this data can update internal state. + */ + sender->td_end = end; + sender->flags |= IP_CT_TCP_FLAG_DATA_UNACKNOWLEDGED; + + nf_ct_l4proto_log_invalid(skb, ct, hook_state, + "%u bytes more than expected", overshot); + return res; + } + } + nf_ct_l4proto_log_invalid(skb, ct, hook_state, "%s", before(seq, sender->td_maxend + 1) ? --- linux-5.19.0.orig/net/netfilter/nf_conntrack_sane.c +++ linux-5.19.0/net/netfilter/nf_conntrack_sane.c @@ -34,10 +34,6 @@ MODULE_DESCRIPTION("SANE connection tracking helper"); MODULE_ALIAS_NFCT_HELPER(HELPER_NAME); -static char *sane_buffer; - -static DEFINE_SPINLOCK(nf_sane_lock); - #define MAX_PORTS 8 static u_int16_t ports[MAX_PORTS]; static unsigned int ports_c; @@ -67,14 +63,16 @@ unsigned int dataoff, datalen; const struct tcphdr *th; struct tcphdr _tcph; - void *sb_ptr; int ret = NF_ACCEPT; int dir = CTINFO2DIR(ctinfo); struct nf_ct_sane_master *ct_sane_info = nfct_help_data(ct); struct nf_conntrack_expect *exp; struct nf_conntrack_tuple *tuple; - struct sane_request *req; struct sane_reply_net_start *reply; + union { + struct sane_request req; + struct sane_reply_net_start repl; + } buf; /* Until there's been traffic both ways, don't look in packets. */ if (ctinfo != IP_CT_ESTABLISHED && @@ -92,59 +90,62 @@ return NF_ACCEPT; datalen = skb->len - dataoff; - - spin_lock_bh(&nf_sane_lock); - sb_ptr = skb_header_pointer(skb, dataoff, datalen, sane_buffer); - if (!sb_ptr) { - spin_unlock_bh(&nf_sane_lock); - return NF_ACCEPT; - } - if (dir == IP_CT_DIR_ORIGINAL) { + const struct sane_request *req; + if (datalen != sizeof(struct sane_request)) - goto out; + return NF_ACCEPT; + + req = skb_header_pointer(skb, dataoff, datalen, &buf.req); + if (!req) + return NF_ACCEPT; - req = sb_ptr; if (req->RPC_code != htonl(SANE_NET_START)) { /* Not an interesting command */ - ct_sane_info->state = SANE_STATE_NORMAL; - goto out; + WRITE_ONCE(ct_sane_info->state, SANE_STATE_NORMAL); + return NF_ACCEPT; } /* We're interested in the next reply */ - ct_sane_info->state = SANE_STATE_START_REQUESTED; - goto out; + WRITE_ONCE(ct_sane_info->state, SANE_STATE_START_REQUESTED); + return NF_ACCEPT; } + /* IP_CT_DIR_REPLY */ + /* Is it a reply to an uninteresting command? */ - if (ct_sane_info->state != SANE_STATE_START_REQUESTED) - goto out; + if (READ_ONCE(ct_sane_info->state) != SANE_STATE_START_REQUESTED) + return NF_ACCEPT; /* It's a reply to SANE_NET_START. */ - ct_sane_info->state = SANE_STATE_NORMAL; + WRITE_ONCE(ct_sane_info->state, SANE_STATE_NORMAL); if (datalen < sizeof(struct sane_reply_net_start)) { pr_debug("NET_START reply too short\n"); - goto out; + return NF_ACCEPT; } - reply = sb_ptr; + datalen = sizeof(struct sane_reply_net_start); + + reply = skb_header_pointer(skb, dataoff, datalen, &buf.repl); + if (!reply) + return NF_ACCEPT; + if (reply->status != htonl(SANE_STATUS_SUCCESS)) { /* saned refused the command */ pr_debug("unsuccessful SANE_STATUS = %u\n", ntohl(reply->status)); - goto out; + return NF_ACCEPT; } /* Invalid saned reply? Ignore it. */ if (reply->zero != 0) - goto out; + return NF_ACCEPT; exp = nf_ct_expect_alloc(ct); if (exp == NULL) { nf_ct_helper_log(skb, ct, "cannot alloc expectation"); - ret = NF_DROP; - goto out; + return NF_DROP; } tuple = &ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple; @@ -162,9 +163,6 @@ } nf_ct_expect_put(exp); - -out: - spin_unlock_bh(&nf_sane_lock); return ret; } @@ -178,7 +176,6 @@ static void __exit nf_conntrack_sane_fini(void) { nf_conntrack_helpers_unregister(sane, ports_c * 2); - kfree(sane_buffer); } static int __init nf_conntrack_sane_init(void) @@ -187,10 +184,6 @@ NF_CT_HELPER_BUILD_BUG_ON(sizeof(struct nf_ct_sane_master)); - sane_buffer = kmalloc(65536, GFP_KERNEL); - if (!sane_buffer) - return -ENOMEM; - if (ports_c == 0) ports[ports_c++] = SANE_PORT; @@ -210,7 +203,6 @@ ret = nf_conntrack_helpers_register(sane, ports_c * 2); if (ret < 0) { pr_err("failed to register helpers\n"); - kfree(sane_buffer); return ret; } --- linux-5.19.0.orig/net/netfilter/nf_conntrack_sip.c +++ linux-5.19.0/net/netfilter/nf_conntrack_sip.c @@ -477,7 +477,7 @@ return ret; if (ret == 0) break; - dataoff += *matchoff; + dataoff = *matchoff; } *in_header = 0; } @@ -489,7 +489,7 @@ break; if (ret == 0) return ret; - dataoff += *matchoff; + dataoff = *matchoff; } if (in_header) --- linux-5.19.0.orig/net/netfilter/nf_conntrack_standalone.c +++ linux-5.19.0/net/netfilter/nf_conntrack_standalone.c @@ -176,16 +176,17 @@ static void ct_show_secctx(struct seq_file *s, const struct nf_conn *ct) { int ret; - u32 len; - char *secctx; + struct lsmblob blob; + struct lsmcontext context; - ret = security_secid_to_secctx(ct->secmark, &secctx, &len); + lsmblob_init(&blob, ct->secmark); + ret = security_secid_to_secctx(&blob, &context, LSMBLOB_DISPLAY); if (ret) return; - seq_printf(s, "secctx=%s ", secctx); + seq_printf(s, "secctx=%s ", context.context); - security_release_secctx(secctx, len); + security_release_secctx(&context); } #else static inline void ct_show_secctx(struct seq_file *s, const struct nf_conn *ct) @@ -366,7 +367,7 @@ goto release; #if defined(CONFIG_NF_CONNTRACK_MARK) - seq_printf(s, "mark=%u ", ct->mark); + seq_printf(s, "mark=%u ", READ_ONCE(ct->mark)); #endif ct_show_secctx(s, ct); --- linux-5.19.0.orig/net/netfilter/nf_flow_table_core.c +++ linux-5.19.0/net/netfilter/nf_flow_table_core.c @@ -442,12 +442,17 @@ } } +void nf_flow_table_gc_run(struct nf_flowtable *flow_table) +{ + nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL); +} + static void nf_flow_offload_work_gc(struct work_struct *work) { struct nf_flowtable *flow_table; flow_table = container_of(work, struct nf_flowtable, gc_work.work); - nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL); + nf_flow_table_gc_run(flow_table); queue_delayed_work(system_power_efficient_wq, &flow_table->gc_work, HZ); } @@ -605,11 +610,11 @@ mutex_unlock(&flowtable_lock); cancel_delayed_work_sync(&flow_table->gc_work); - nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL); - nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL); nf_flow_table_offload_flush(flow_table); - if (nf_flowtable_hw_offload(flow_table)) - nf_flow_table_iterate(flow_table, nf_flow_offload_gc_step, NULL); + /* ... no more pending work after this stage ... */ + nf_flow_table_iterate(flow_table, nf_flow_table_do_cleanup, NULL); + nf_flow_table_gc_run(flow_table); + nf_flow_table_offload_flush_cleanup(flow_table); rhashtable_destroy(&flow_table->rhashtable); } EXPORT_SYMBOL_GPL(nf_flow_table_free); --- linux-5.19.0.orig/net/netfilter/nf_flow_table_offload.c +++ linux-5.19.0/net/netfilter/nf_flow_table_offload.c @@ -383,12 +383,12 @@ const __be32 *addr, const __be32 *mask) { struct flow_action_entry *entry; - int i, j; + int i; - for (i = 0, j = 0; i < sizeof(struct in6_addr) / sizeof(u32); i += sizeof(u32), j++) { + for (i = 0; i < sizeof(struct in6_addr) / sizeof(u32); i++) { entry = flow_action_entry_next(flow_rule); flow_offload_mangle(entry, FLOW_ACT_MANGLE_HDR_TYPE_IP6, - offset + i, &addr[j], mask); + offset + i * sizeof(u32), &addr[i], mask); } } @@ -1063,6 +1063,14 @@ flow_offload_queue_work(offload); } +void nf_flow_table_offload_flush_cleanup(struct nf_flowtable *flowtable) +{ + if (nf_flowtable_hw_offload(flowtable)) { + flush_workqueue(nf_flow_offload_del_wq); + nf_flow_table_gc_run(flowtable); + } +} + void nf_flow_table_offload_flush(struct nf_flowtable *flowtable) { if (nf_flowtable_hw_offload(flowtable)) { @@ -1079,6 +1087,7 @@ struct flow_block_cb *block_cb, *next; int err = 0; + down_write(&flowtable->flow_block_lock); switch (cmd) { case FLOW_BLOCK_BIND: list_splice(&bo->cb_list, &flowtable->flow_block.cb_list); @@ -1093,6 +1102,7 @@ WARN_ON_ONCE(1); err = -EOPNOTSUPP; } + up_write(&flowtable->flow_block_lock); return err; } @@ -1149,7 +1159,9 @@ nf_flow_table_block_offload_init(bo, dev_net(dev), cmd, flowtable, extack); + down_write(&flowtable->flow_block_lock); err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_FT, bo); + up_write(&flowtable->flow_block_lock); if (err < 0) return err; --- linux-5.19.0.orig/net/netfilter/nf_tables_api.c +++ linux-5.19.0/net/netfilter/nf_tables_api.c @@ -32,7 +32,6 @@ static LIST_HEAD(nf_tables_flowtables); static LIST_HEAD(nf_tables_destroy_list); static DEFINE_SPINLOCK(nf_tables_destroy_list_lock); -static u64 table_handle; enum { NFT_VALIDATE_SKIP = 0, @@ -153,6 +152,7 @@ if (trans == NULL) return NULL; + INIT_LIST_HEAD(&trans->list); trans->msg_type = msg_type; trans->ctx = *ctx; @@ -888,7 +888,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (family != NFPROTO_UNSPEC && family != table->family) @@ -1234,7 +1234,7 @@ INIT_LIST_HEAD(&table->flowtables); table->family = family; table->flags = flags; - table->handle = ++table_handle; + table->handle = ++nft_net->table_handle; if (table->flags & NFT_TABLE_F_OWNER) table->nlpid = NETLINK_CB(skb).portid; @@ -1704,7 +1704,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (family != NFPROTO_UNSPEC && family != table->family) @@ -2166,8 +2166,10 @@ chain->flags |= NFT_CHAIN_BASE | flags; basechain->policy = NF_ACCEPT; if (chain->flags & NFT_CHAIN_HW_OFFLOAD && - !nft_chain_offload_support(basechain)) + !nft_chain_offload_support(basechain)) { + list_splice_init(&basechain->hook_list, &hook->list); return -EOPNOTSUPP; + } flow_block_init(&basechain->flow_block); @@ -2197,7 +2199,6 @@ const struct nlattr * const *nla = ctx->nla; struct nft_table *table = ctx->table; struct nft_base_chain *basechain; - struct nft_stats __percpu *stats; struct net *net = ctx->net; char name[NFT_NAME_MAXLEN]; struct nft_rule_blob *blob; @@ -2210,6 +2211,7 @@ return -EOVERFLOW; if (nla[NFTA_CHAIN_HOOK]) { + struct nft_stats __percpu *stats = NULL; struct nft_chain_hook hook; if (flags & NFT_CHAIN_BINDING) @@ -2235,15 +2237,17 @@ return PTR_ERR(stats); } rcu_assign_pointer(basechain->stats, stats); - static_branch_inc(&nft_counters_enabled); } err = nft_basechain_init(basechain, family, &hook, flags); if (err < 0) { nft_chain_release_hook(&hook); kfree(basechain); + free_percpu(stats); return err; } + if (stats) + static_branch_inc(&nft_counters_enabled); } else { if (flags & NFT_CHAIN_BASE) return -EINVAL; @@ -2472,6 +2476,7 @@ } static struct nft_chain *nft_chain_lookup_byid(const struct net *net, + const struct nft_table *table, const struct nlattr *nla) { struct nftables_pernet *nft_net = nft_pernet(net); @@ -2482,6 +2487,7 @@ struct nft_chain *chain = trans->ctx.chain; if (trans->msg_type == NFT_MSG_NEWCHAIN && + chain->table == table && id == nft_trans_chain_id(trans)) return chain; } @@ -2571,6 +2577,9 @@ nft_ctx_init(&ctx, net, skb, info->nlh, family, table, chain, nla); if (chain != NULL) { + if (chain->flags & NFT_CHAIN_BINDING) + return -EINVAL; + if (info->nlh->nlmsg_flags & NLM_F_EXCL) { NL_SET_BAD_ATTR(extack, attr); return -EEXIST; @@ -3146,7 +3155,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (family != NFPROTO_UNSPEC && family != table->family) @@ -3371,6 +3380,7 @@ } static struct nft_rule *nft_rule_lookup_byid(const struct net *net, + const struct nft_chain *chain, const struct nlattr *nla); #define NFT_RULE_MAXEXPRS 128 @@ -3417,7 +3427,7 @@ return -EOPNOTSUPP; } else if (nla[NFTA_RULE_CHAIN_ID]) { - chain = nft_chain_lookup_byid(net, nla[NFTA_RULE_CHAIN_ID]); + chain = nft_chain_lookup_byid(net, table, nla[NFTA_RULE_CHAIN_ID]); if (IS_ERR(chain)) { NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_CHAIN_ID]); return PTR_ERR(chain); @@ -3459,7 +3469,7 @@ return PTR_ERR(old_rule); } } else if (nla[NFTA_RULE_POSITION_ID]) { - old_rule = nft_rule_lookup_byid(net, nla[NFTA_RULE_POSITION_ID]); + old_rule = nft_rule_lookup_byid(net, chain, nla[NFTA_RULE_POSITION_ID]); if (IS_ERR(old_rule)) { NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_POSITION_ID]); return PTR_ERR(old_rule); @@ -3604,6 +3614,7 @@ } static struct nft_rule *nft_rule_lookup_byid(const struct net *net, + const struct nft_chain *chain, const struct nlattr *nla) { struct nftables_pernet *nft_net = nft_pernet(net); @@ -3614,6 +3625,7 @@ struct nft_rule *rule = nft_trans_rule(trans); if (trans->msg_type == NFT_MSG_NEWRULE && + trans->ctx.chain == chain && id == nft_trans_rule_id(trans)) return rule; } @@ -3663,7 +3675,7 @@ err = nft_delrule(&ctx, rule); } else if (nla[NFTA_RULE_ID]) { - rule = nft_rule_lookup_byid(net, nla[NFTA_RULE_ID]); + rule = nft_rule_lookup_byid(net, chain, nla[NFTA_RULE_ID]); if (IS_ERR(rule)) { NL_SET_BAD_ATTR(extack, nla[NFTA_RULE_ID]); return PTR_ERR(rule); @@ -3842,6 +3854,7 @@ } static struct nft_set *nft_set_lookup_byid(const struct net *net, + const struct nft_table *table, const struct nlattr *nla, u8 genmask) { struct nftables_pernet *nft_net = nft_pernet(net); @@ -3853,6 +3866,7 @@ struct nft_set *set = nft_trans_set(trans); if (id == nft_trans_set_id(trans) && + set->table == table && nft_active_genmask(set, genmask)) return set; } @@ -3873,7 +3887,7 @@ if (!nla_set_id) return set; - set = nft_set_lookup_byid(net, nla_set_id, genmask); + set = nft_set_lookup_byid(net, table, nla_set_id, genmask); } return set; } @@ -3899,7 +3913,7 @@ list_for_each_entry(i, &ctx->table->sets, list) { int tmp; - if (!nft_is_active_next(ctx->net, set)) + if (!nft_is_active_next(ctx->net, i)) continue; if (!sscanf(i->name, name, &tmp)) continue; @@ -4125,7 +4139,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (ctx->family != NFPROTO_UNSPEC && @@ -4443,6 +4457,11 @@ err = nf_tables_set_desc_parse(&desc, nla[NFTA_SET_DESC]); if (err < 0) return err; + + if (desc.field_count > 1 && !(flags & NFT_SET_CONCAT)) + return -EINVAL; + } else if (flags & NFT_SET_CONCAT) { + return -EINVAL; } if (nla[NFTA_SET_EXPR] || nla[NFTA_SET_EXPRESSIONS]) @@ -5053,6 +5072,8 @@ rcu_read_lock(); nft_net = nft_pernet(net); + cb->seq = READ_ONCE(nft_net->base_seq); + list_for_each_entry_rcu(table, &nft_net->tables, list) { if (dump_ctx->ctx.family != NFPROTO_UNSPEC && dump_ctx->ctx.family != table->family) @@ -5188,6 +5209,9 @@ if (!(set->flags & NFT_SET_INTERVAL) && *flags & NFT_SET_ELEM_INTERVAL_END) return -EINVAL; + if ((*flags & (NFT_SET_ELEM_INTERVAL_END | NFT_SET_ELEM_CATCHALL)) == + (NFT_SET_ELEM_INTERVAL_END | NFT_SET_ELEM_CATCHALL)) + return -EINVAL; return 0; } @@ -5195,19 +5219,13 @@ static int nft_setelem_parse_key(struct nft_ctx *ctx, struct nft_set *set, struct nft_data *key, struct nlattr *attr) { - struct nft_data_desc desc; - int err; - - err = nft_data_init(ctx, key, NFT_DATA_VALUE_MAXLEN, &desc, attr); - if (err < 0) - return err; - - if (desc.type != NFT_DATA_VALUE || desc.len != set->klen) { - nft_data_release(key, desc.type); - return -EINVAL; - } + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = NFT_DATA_VALUE_MAXLEN, + .len = set->klen, + }; - return 0; + return nft_data_init(ctx, key, &desc, attr); } static int nft_setelem_parse_data(struct nft_ctx *ctx, struct nft_set *set, @@ -5216,24 +5234,18 @@ struct nlattr *attr) { u32 dtype; - int err; - - err = nft_data_init(ctx, data, NFT_DATA_VALUE_MAXLEN, desc, attr); - if (err < 0) - return err; if (set->dtype == NFT_DATA_VERDICT) dtype = NFT_DATA_VERDICT; else dtype = NFT_DATA_VALUE; - if (dtype != desc->type || - set->dlen != desc->len) { - nft_data_release(data, desc->type); - return -EINVAL; - } + desc->type = dtype; + desc->size = NFT_DATA_VALUE_MAXLEN; + desc->len = set->dlen; + desc->flags = NFT_DATA_DESC_SETELEM; - return 0; + return nft_data_init(ctx, data, desc, attr); } static void *nft_setelem_catchall_get(const struct net *net, @@ -5568,7 +5580,7 @@ err = nft_expr_clone(expr, set->exprs[i]); if (err < 0) { - nft_expr_destroy(ctx, expr); + kfree(expr); goto err_expr; } expr_array[i] = expr; @@ -5800,6 +5812,25 @@ set->ops->remove(net, set, elem); } +static bool nft_setelem_valid_key_end(const struct nft_set *set, + struct nlattr **nla, u32 flags) +{ + if ((set->flags & (NFT_SET_CONCAT | NFT_SET_INTERVAL)) == + (NFT_SET_CONCAT | NFT_SET_INTERVAL)) { + if (flags & NFT_SET_ELEM_INTERVAL_END) + return false; + + if (nla[NFTA_SET_ELEM_KEY_END] && + flags & NFT_SET_ELEM_CATCHALL) + return false; + } else { + if (nla[NFTA_SET_ELEM_KEY_END]) + return false; + } + + return true; +} + static int nft_add_set_elem(struct nft_ctx *ctx, struct nft_set *set, const struct nlattr *attr, u32 nlmsg_flags) { @@ -5850,6 +5881,18 @@ return -EINVAL; } + if (set->flags & NFT_SET_OBJECT) { + if (!nla[NFTA_SET_ELEM_OBJREF] && + !(flags & NFT_SET_ELEM_INTERVAL_END)) + return -EINVAL; + } else { + if (nla[NFTA_SET_ELEM_OBJREF]) + return -EINVAL; + } + + if (!nft_setelem_valid_key_end(set, nla, flags)) + return -EINVAL; + if ((flags & NFT_SET_ELEM_INTERVAL_END) && (nla[NFTA_SET_ELEM_DATA] || nla[NFTA_SET_ELEM_OBJREF] || @@ -5857,6 +5900,7 @@ nla[NFTA_SET_ELEM_EXPIRATION] || nla[NFTA_SET_ELEM_USERDATA] || nla[NFTA_SET_ELEM_EXPR] || + nla[NFTA_SET_ELEM_KEY_END] || nla[NFTA_SET_ELEM_EXPRESSIONS])) return -EINVAL; @@ -5868,7 +5912,8 @@ &timeout); if (err) return err; - } else if (set->flags & NFT_SET_TIMEOUT) { + } else if (set->flags & NFT_SET_TIMEOUT && + !(flags & NFT_SET_ELEM_INTERVAL_END)) { timeout = set->timeout; } @@ -5934,7 +5979,8 @@ err = -EOPNOTSUPP; goto err_set_elem_expr; } - } else if (set->num_exprs > 0) { + } else if (set->num_exprs > 0 && + !(flags & NFT_SET_ELEM_INTERVAL_END)) { err = nft_set_elem_expr_clone(ctx, set, expr_array); if (err < 0) goto err_set_elem_expr_clone; @@ -5987,10 +6033,6 @@ } if (nla[NFTA_SET_ELEM_OBJREF] != NULL) { - if (!(set->flags & NFT_SET_OBJECT)) { - err = -EINVAL; - goto err_parse_key_end; - } obj = nft_obj_lookup(ctx->net, ctx->table, nla[NFTA_SET_ELEM_OBJREF], set->objtype, genmask); @@ -6277,6 +6319,9 @@ if (!nla[NFTA_SET_ELEM_KEY] && !(flags & NFT_SET_ELEM_CATCHALL)) return -EINVAL; + if (!nft_setelem_valid_key_end(set, nla, flags)) + return -EINVAL; + nft_set_ext_prepare(&tmpl); if (flags != 0) { @@ -6891,7 +6936,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (family != NFPROTO_UNSPEC && family != table->family) @@ -7823,7 +7868,7 @@ rcu_read_lock(); nft_net = nft_pernet(net); - cb->seq = nft_net->base_seq; + cb->seq = READ_ONCE(nft_net->base_seq); list_for_each_entry_rcu(table, &nft_net->tables, list) { if (family != NFPROTO_UNSPEC && family != table->family) @@ -8368,9 +8413,6 @@ nf_tables_chain_destroy(&trans->ctx); break; case NFT_MSG_DELRULE: - if (trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD) - nft_flow_rule_destroy(nft_trans_flow_rule(trans)); - nf_tables_rule_destroy(&trans->ctx, nft_trans_rule(trans)); break; case NFT_MSG_DELSET: @@ -8756,6 +8798,7 @@ struct nft_trans_elem *te; struct nft_chain *chain; struct nft_table *table; + unsigned int base_seq; LIST_HEAD(adl); int err; @@ -8805,9 +8848,12 @@ * Bump generation counter, invalidate any dump in progress. * Cannot fail after this point. */ - while (++nft_net->base_seq == 0) + base_seq = READ_ONCE(nft_net->base_seq); + while (++base_seq == 0) ; + WRITE_ONCE(nft_net->base_seq, base_seq); + /* step 3. Start new generation, rules_gen_X now in use. */ net->nft.gencursor = nft_gencursor_next(net); @@ -8872,6 +8918,9 @@ nft_rule_expr_deactivate(&trans->ctx, nft_trans_rule(trans), NFT_TRANS_COMMIT); + + if (trans->ctx.chain->flags & NFT_CHAIN_HW_OFFLOAD) + nft_flow_rule_destroy(nft_trans_flow_rule(trans)); break; case NFT_MSG_NEWSET: nft_clear(net, nft_trans_set(trans)); @@ -9369,13 +9418,9 @@ break; } } - - cond_resched(); } list_for_each_entry(set, &ctx->table->sets, list) { - cond_resched(); - if (!nft_is_active_next(ctx->net, set)) continue; if (!(set->flags & NFT_SET_MAP) || @@ -9605,7 +9650,7 @@ tb[NFTA_VERDICT_CHAIN], genmask); } else if (tb[NFTA_VERDICT_CHAIN_ID]) { - chain = nft_chain_lookup_byid(ctx->net, + chain = nft_chain_lookup_byid(ctx->net, ctx->table, tb[NFTA_VERDICT_CHAIN_ID]); if (IS_ERR(chain)) return PTR_ERR(chain); @@ -9617,6 +9662,11 @@ return PTR_ERR(chain); if (nft_is_base_chain(chain)) return -EOPNOTSUPP; + if (nft_chain_is_bound(chain)) + return -EINVAL; + if (desc->flags & NFT_DATA_DESC_SETELEM && + chain->flags & NFT_CHAIN_BINDING) + return -EINVAL; chain->use++; data->verdict.chain = chain; @@ -9624,7 +9674,7 @@ } desc->len = sizeof(data->verdict); - desc->type = NFT_DATA_VERDICT; + return 0; } @@ -9677,20 +9727,25 @@ } static int nft_value_init(const struct nft_ctx *ctx, - struct nft_data *data, unsigned int size, - struct nft_data_desc *desc, const struct nlattr *nla) + struct nft_data *data, struct nft_data_desc *desc, + const struct nlattr *nla) { unsigned int len; len = nla_len(nla); if (len == 0) return -EINVAL; - if (len > size) + if (len > desc->size) return -EOVERFLOW; + if (desc->len) { + if (len != desc->len) + return -EINVAL; + } else { + desc->len = len; + } nla_memcpy(data->data, nla, len); - desc->type = NFT_DATA_VALUE; - desc->len = len; + return 0; } @@ -9710,7 +9765,6 @@ * * @ctx: context of the expression using the data * @data: destination struct nft_data - * @size: maximum data length * @desc: data description * @nla: netlink attribute containing data * @@ -9720,24 +9774,35 @@ * The caller can indicate that it only wants to accept data of type * NFT_DATA_VALUE by passing NULL for the ctx argument. */ -int nft_data_init(const struct nft_ctx *ctx, - struct nft_data *data, unsigned int size, +int nft_data_init(const struct nft_ctx *ctx, struct nft_data *data, struct nft_data_desc *desc, const struct nlattr *nla) { struct nlattr *tb[NFTA_DATA_MAX + 1]; int err; + if (WARN_ON_ONCE(!desc->size)) + return -EINVAL; + err = nla_parse_nested_deprecated(tb, NFTA_DATA_MAX, nla, nft_data_policy, NULL); if (err < 0) return err; - if (tb[NFTA_DATA_VALUE]) - return nft_value_init(ctx, data, size, desc, - tb[NFTA_DATA_VALUE]); - if (tb[NFTA_DATA_VERDICT] && ctx != NULL) - return nft_verdict_init(ctx, data, desc, tb[NFTA_DATA_VERDICT]); - return -EINVAL; + if (tb[NFTA_DATA_VALUE]) { + if (desc->type != NFT_DATA_VALUE) + return -EINVAL; + + err = nft_value_init(ctx, data, desc, tb[NFTA_DATA_VALUE]); + } else if (tb[NFTA_DATA_VERDICT] && ctx != NULL) { + if (desc->type != NFT_DATA_VERDICT) + return -EINVAL; + + err = nft_verdict_init(ctx, data, desc, tb[NFTA_DATA_VERDICT]); + } else { + err = -EINVAL; + } + + return err; } EXPORT_SYMBOL_GPL(nft_data_init); @@ -9913,6 +9978,8 @@ nft_net = nft_pernet(net); deleted = 0; mutex_lock(&nft_net->commit_mutex); + if (!list_empty(&nf_tables_destroy_list)) + rcu_barrier(); again: list_for_each_entry(table, &nft_net->tables, list) { if (nft_table_has_owner(table) && @@ -9971,7 +10038,8 @@ struct nftables_pernet *nft_net = nft_pernet(net); mutex_lock(&nft_net->commit_mutex); - if (!list_empty(&nft_net->commit_list)) + if (!list_empty(&nft_net->commit_list) || + !list_empty(&nft_net->module_list)) __nf_tables_abort(net, NFNL_ABORT_NONE); __nft_release_tables(net); mutex_unlock(&nft_net->commit_mutex); --- linux-5.19.0.orig/net/netfilter/nf_tables_core.c +++ linux-5.19.0/net/netfilter/nf_tables_core.c @@ -34,25 +34,23 @@ nft_trace_notify(info); } -static inline void nft_trace_packet(struct nft_traceinfo *info, +static inline void nft_trace_packet(const struct nft_pktinfo *pkt, + struct nft_traceinfo *info, const struct nft_chain *chain, const struct nft_rule_dp *rule, enum nft_trace_types type) { if (static_branch_unlikely(&nft_trace_enabled)) { - const struct nft_pktinfo *pkt = info->pkt; - info->nf_trace = pkt->skb->nf_trace; info->rule = rule; __nft_trace_packet(info, chain, type); } } -static inline void nft_trace_copy_nftrace(struct nft_traceinfo *info) +static inline void nft_trace_copy_nftrace(const struct nft_pktinfo *pkt, + struct nft_traceinfo *info) { if (static_branch_unlikely(&nft_trace_enabled)) { - const struct nft_pktinfo *pkt = info->pkt; - if (info->trace) info->nf_trace = pkt->skb->nf_trace; } @@ -96,7 +94,6 @@ const struct nft_chain *chain, const struct nft_regs *regs) { - const struct nft_pktinfo *pkt = info->pkt; enum nft_trace_types type; switch (regs->verdict.code) { @@ -110,7 +107,9 @@ break; default: type = NFT_TRACETYPE_RULE; - info->nf_trace = pkt->skb->nf_trace; + + if (info->trace) + info->nf_trace = info->pkt->skb->nf_trace; break; } @@ -271,10 +270,10 @@ switch (regs.verdict.code) { case NFT_BREAK: regs.verdict.code = NFT_CONTINUE; - nft_trace_copy_nftrace(&info); + nft_trace_copy_nftrace(pkt, &info); continue; case NFT_CONTINUE: - nft_trace_packet(&info, chain, rule, + nft_trace_packet(pkt, &info, chain, rule, NFT_TRACETYPE_RULE); continue; } @@ -318,7 +317,7 @@ goto next_rule; } - nft_trace_packet(&info, basechain, NULL, NFT_TRACETYPE_POLICY); + nft_trace_packet(pkt, &info, basechain, NULL, NFT_TRACETYPE_POLICY); if (static_branch_unlikely(&nft_counters_enabled)) nft_update_chain_stats(basechain, pkt); --- linux-5.19.0.orig/net/netfilter/nfnetlink.c +++ linux-5.19.0/net/netfilter/nfnetlink.c @@ -44,6 +44,10 @@ static unsigned int nfnetlink_pernet_id __read_mostly; +#ifdef CONFIG_NF_CONNTRACK_EVENTS +static DEFINE_SPINLOCK(nfnl_grp_active_lock); +#endif + struct nfnl_net { struct sock *nfnl; }; @@ -290,6 +294,7 @@ nfnl_lock(subsys_id); if (nfnl_dereference_protected(subsys_id) != ss || nfnetlink_find_client(type, ss) != nc) { + nfnl_unlock(subsys_id); err = -EAGAIN; break; } @@ -654,6 +659,44 @@ netlink_rcv_skb(skb, nfnetlink_rcv_msg); } +static void nfnetlink_bind_event(struct net *net, unsigned int group) +{ +#ifdef CONFIG_NF_CONNTRACK_EVENTS + int type, group_bit; + u8 v; + + /* All NFNLGRP_CONNTRACK_* group bits fit into u8. + * The other groups are not relevant and can be ignored. + */ + if (group >= 8) + return; + + type = nfnl_group2type[group]; + + switch (type) { + case NFNL_SUBSYS_CTNETLINK: + break; + case NFNL_SUBSYS_CTNETLINK_EXP: + break; + default: + return; + } + + group_bit = (1 << group); + + spin_lock(&nfnl_grp_active_lock); + v = READ_ONCE(net->ct.ctnetlink_has_listener); + if ((v & group_bit) == 0) { + v |= group_bit; + + /* read concurrently without nfnl_grp_active_lock held. */ + WRITE_ONCE(net->ct.ctnetlink_has_listener, v); + } + + spin_unlock(&nfnl_grp_active_lock); +#endif +} + static int nfnetlink_bind(struct net *net, int group) { const struct nfnetlink_subsystem *ss; @@ -670,28 +713,45 @@ if (!ss) request_module_nowait("nfnetlink-subsys-%d", type); -#ifdef CONFIG_NF_CONNTRACK_EVENTS - if (type == NFNL_SUBSYS_CTNETLINK) { - nfnl_lock(NFNL_SUBSYS_CTNETLINK); - WRITE_ONCE(net->ct.ctnetlink_has_listener, true); - nfnl_unlock(NFNL_SUBSYS_CTNETLINK); - } -#endif + nfnetlink_bind_event(net, group); return 0; } static void nfnetlink_unbind(struct net *net, int group) { #ifdef CONFIG_NF_CONNTRACK_EVENTS + int type, group_bit; + if (group <= NFNLGRP_NONE || group > NFNLGRP_MAX) return; - if (nfnl_group2type[group] == NFNL_SUBSYS_CTNETLINK) { - nfnl_lock(NFNL_SUBSYS_CTNETLINK); - if (!nfnetlink_has_listeners(net, group)) - WRITE_ONCE(net->ct.ctnetlink_has_listener, false); - nfnl_unlock(NFNL_SUBSYS_CTNETLINK); + type = nfnl_group2type[group]; + + switch (type) { + case NFNL_SUBSYS_CTNETLINK: + break; + case NFNL_SUBSYS_CTNETLINK_EXP: + break; + default: + return; + } + + /* ctnetlink_has_listener is u8 */ + if (group >= 8) + return; + + group_bit = (1 << group); + + spin_lock(&nfnl_grp_active_lock); + if (!nfnetlink_has_listeners(net, group)) { + u8 v = READ_ONCE(net->ct.ctnetlink_has_listener); + + v &= ~group_bit; + + /* read concurrently without nfnl_grp_active_lock held. */ + WRITE_ONCE(net->ct.ctnetlink_has_listener, v); } + spin_unlock(&nfnl_grp_active_lock); #endif } --- linux-5.19.0.orig/net/netfilter/nfnetlink_osf.c +++ linux-5.19.0/net/netfilter/nfnetlink_osf.c @@ -269,6 +269,7 @@ struct nf_osf_hdr_ctx ctx; const struct tcphdr *tcp; struct tcphdr _tcph; + bool found = false; memset(&ctx, 0, sizeof(ctx)); @@ -283,10 +284,11 @@ data->genre = f->genre; data->version = f->version; + found = true; break; } - return true; + return found; } EXPORT_SYMBOL_GPL(nf_osf_find); --- linux-5.19.0.orig/net/netfilter/nfnetlink_queue.c +++ linux-5.19.0/net/netfilter/nfnetlink_queue.c @@ -301,21 +301,27 @@ return -1; } -static u32 nfqnl_get_sk_secctx(struct sk_buff *skb, char **secdata) +static void nfqnl_get_sk_secctx(struct sk_buff *skb, struct lsmcontext *context) { - u32 seclen = 0; #if IS_ENABLED(CONFIG_NETWORK_SECMARK) + struct lsmblob blob; + if (!skb || !sk_fullsock(skb->sk)) - return 0; + return; read_lock_bh(&skb->sk->sk_callback_lock); - if (skb->secmark) - security_secid_to_secctx(skb->secmark, secdata, &seclen); + if (skb->secmark) { + /* lsmblob_init() puts ct->secmark into all of the secids in + * blob. security_secid_to_secctx() will know which security + * module to use to create the secctx. */ + lsmblob_init(&blob, skb->secmark); + security_secid_to_secctx(&blob, context, LSMBLOB_DISPLAY); + } read_unlock_bh(&skb->sk->sk_callback_lock); #endif - return seclen; + return; } static u32 nfqnl_get_bridge_size(struct nf_queue_entry *entry) @@ -387,11 +393,10 @@ struct net_device *indev; struct net_device *outdev; struct nf_conn *ct = NULL; + struct lsmcontext context = { }; enum ip_conntrack_info ctinfo = 0; const struct nfnl_ct_hook *nfnl_ct; bool csum_verify; - char *secdata = NULL; - u32 seclen = 0; ktime_t tstamp; size = nlmsg_total_size(sizeof(struct nfgenmsg)) @@ -462,9 +467,9 @@ } if ((queue->flags & NFQA_CFG_F_SECCTX) && entskb->sk) { - seclen = nfqnl_get_sk_secctx(entskb, &secdata); - if (seclen) - size += nla_total_size(seclen); + nfqnl_get_sk_secctx(entskb, &context); + if (context.len) + size += nla_total_size(context.len); } skb = alloc_skb(size, GFP_ATOMIC); @@ -599,7 +604,8 @@ nfqnl_put_sk_uidgid(skb, entskb->sk) < 0) goto nla_put_failure; - if (seclen && nla_put(skb, NFQA_SECCTX, seclen, secdata)) + if (context.len && + nla_put(skb, NFQA_SECCTX, context.len, context.context)) goto nla_put_failure; if (ct && nfnl_ct->build(skb, ct, ctinfo, NFQA_CT, NFQA_CT_INFO) < 0) @@ -627,8 +633,8 @@ } nlh->nlmsg_len = skb->len; - if (seclen) - security_release_secctx(secdata, seclen); + if (context.len) + security_release_secctx(&context); return skb; nla_put_failure: @@ -636,8 +642,8 @@ kfree_skb(skb); net_err_ratelimited("nf_queue: error creating packet message\n"); nlmsg_failure: - if (seclen) - security_release_secctx(secdata, seclen); + if (context.len) + security_release_secctx(&context); return NULL; } --- linux-5.19.0.orig/net/netfilter/nft_bitwise.c +++ linux-5.19.0/net/netfilter/nft_bitwise.c @@ -93,7 +93,16 @@ static int nft_bitwise_init_bool(struct nft_bitwise *priv, const struct nlattr *const tb[]) { - struct nft_data_desc mask, xor; + struct nft_data_desc mask = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->mask), + .len = priv->len, + }; + struct nft_data_desc xor = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->xor), + .len = priv->len, + }; int err; if (tb[NFTA_BITWISE_DATA]) @@ -103,37 +112,30 @@ !tb[NFTA_BITWISE_XOR]) return -EINVAL; - err = nft_data_init(NULL, &priv->mask, sizeof(priv->mask), &mask, - tb[NFTA_BITWISE_MASK]); + err = nft_data_init(NULL, &priv->mask, &mask, tb[NFTA_BITWISE_MASK]); if (err < 0) return err; - if (mask.type != NFT_DATA_VALUE || mask.len != priv->len) { - err = -EINVAL; - goto err_mask_release; - } - err = nft_data_init(NULL, &priv->xor, sizeof(priv->xor), &xor, - tb[NFTA_BITWISE_XOR]); + err = nft_data_init(NULL, &priv->xor, &xor, tb[NFTA_BITWISE_XOR]); if (err < 0) - goto err_mask_release; - if (xor.type != NFT_DATA_VALUE || xor.len != priv->len) { - err = -EINVAL; - goto err_xor_release; - } + goto err_xor_err; return 0; -err_xor_release: - nft_data_release(&priv->xor, xor.type); -err_mask_release: +err_xor_err: nft_data_release(&priv->mask, mask.type); + return err; } static int nft_bitwise_init_shift(struct nft_bitwise *priv, const struct nlattr *const tb[]) { - struct nft_data_desc d; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->data), + .len = sizeof(u32), + }; int err; if (tb[NFTA_BITWISE_MASK] || @@ -143,13 +145,12 @@ if (!tb[NFTA_BITWISE_DATA]) return -EINVAL; - err = nft_data_init(NULL, &priv->data, sizeof(priv->data), &d, - tb[NFTA_BITWISE_DATA]); + err = nft_data_init(NULL, &priv->data, &desc, tb[NFTA_BITWISE_DATA]); if (err < 0) return err; - if (d.type != NFT_DATA_VALUE || d.len != sizeof(u32) || - priv->data.data[0] >= BITS_PER_TYPE(u32)) { - nft_data_release(&priv->data, d.type); + + if (priv->data.data[0] >= BITS_PER_TYPE(u32)) { + nft_data_release(&priv->data, desc.type); return -EINVAL; } @@ -339,22 +340,21 @@ static int nft_bitwise_extract_u32_data(const struct nlattr * const tb, u32 *out) { - struct nft_data_desc desc; struct nft_data data; - int err = 0; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(data), + .len = sizeof(u32), + }; + int err; - err = nft_data_init(NULL, &data, sizeof(data), &desc, tb); + err = nft_data_init(NULL, &data, &desc, tb); if (err < 0) return err; - if (desc.type != NFT_DATA_VALUE || desc.len != sizeof(u32)) { - err = -EINVAL; - goto err; - } *out = data.data[0]; -err: - nft_data_release(&data, desc.type); - return err; + + return 0; } static int nft_bitwise_fast_init(const struct nft_ctx *ctx, --- linux-5.19.0.orig/net/netfilter/nft_cmp.c +++ linux-5.19.0/net/netfilter/nft_cmp.c @@ -73,20 +73,16 @@ const struct nlattr * const tb[]) { struct nft_cmp_expr *priv = nft_expr_priv(expr); - struct nft_data_desc desc; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->data), + }; int err; - err = nft_data_init(NULL, &priv->data, sizeof(priv->data), &desc, - tb[NFTA_CMP_DATA]); + err = nft_data_init(NULL, &priv->data, &desc, tb[NFTA_CMP_DATA]); if (err < 0) return err; - if (desc.type != NFT_DATA_VALUE) { - err = -EINVAL; - nft_data_release(&priv->data, desc.type); - return err; - } - err = nft_parse_register_load(tb[NFTA_CMP_SREG], &priv->sreg, desc.len); if (err < 0) return err; @@ -202,12 +198,14 @@ const struct nlattr * const tb[]) { struct nft_cmp_fast_expr *priv = nft_expr_priv(expr); - struct nft_data_desc desc; struct nft_data data; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(data), + }; int err; - err = nft_data_init(NULL, &data, sizeof(data), &desc, - tb[NFTA_CMP_DATA]); + err = nft_data_init(NULL, &data, &desc, tb[NFTA_CMP_DATA]); if (err < 0) return err; @@ -301,11 +299,13 @@ const struct nlattr * const tb[]) { struct nft_cmp16_fast_expr *priv = nft_expr_priv(expr); - struct nft_data_desc desc; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->data), + }; int err; - err = nft_data_init(NULL, &priv->data, sizeof(priv->data), &desc, - tb[NFTA_CMP_DATA]); + err = nft_data_init(NULL, &priv->data, &desc, tb[NFTA_CMP_DATA]); if (err < 0) return err; @@ -368,8 +368,11 @@ static const struct nft_expr_ops * nft_cmp_select_ops(const struct nft_ctx *ctx, const struct nlattr * const tb[]) { - struct nft_data_desc desc; struct nft_data data; + struct nft_data_desc desc = { + .type = NFT_DATA_VALUE, + .size = sizeof(data), + }; enum nft_cmp_ops op; u8 sreg; int err; @@ -392,14 +395,10 @@ return ERR_PTR(-EINVAL); } - err = nft_data_init(NULL, &data, sizeof(data), &desc, - tb[NFTA_CMP_DATA]); + err = nft_data_init(NULL, &data, &desc, tb[NFTA_CMP_DATA]); if (err < 0) return ERR_PTR(err); - if (desc.type != NFT_DATA_VALUE) - goto err1; - sreg = ntohl(nla_get_be32(tb[NFTA_CMP_SREG])); if (op == NFT_CMP_EQ || op == NFT_CMP_NEQ) { @@ -411,9 +410,6 @@ return &nft_cmp16_fast_ops; } return &nft_cmp_ops; -err1: - nft_data_release(&data, desc.type); - return ERR_PTR(-EINVAL); } struct nft_expr_type nft_cmp_type __read_mostly = { --- linux-5.19.0.orig/net/netfilter/nft_ct.c +++ linux-5.19.0/net/netfilter/nft_ct.c @@ -98,7 +98,7 @@ return; #ifdef CONFIG_NF_CONNTRACK_MARK case NFT_CT_MARK: - *dest = ct->mark; + *dest = READ_ONCE(ct->mark); return; #endif #ifdef CONFIG_NF_CONNTRACK_SECMARK @@ -297,8 +297,8 @@ switch (priv->key) { #ifdef CONFIG_NF_CONNTRACK_MARK case NFT_CT_MARK: - if (ct->mark != value) { - ct->mark = value; + if (READ_ONCE(ct->mark) != value) { + WRITE_ONCE(ct->mark, value); nf_conntrack_event_cache(IPCT_MARK, ct); } break; --- linux-5.19.0.orig/net/netfilter/nft_immediate.c +++ linux-5.19.0/net/netfilter/nft_immediate.c @@ -29,20 +29,36 @@ [NFTA_IMMEDIATE_DATA] = { .type = NLA_NESTED }, }; +static enum nft_data_types nft_reg_to_type(const struct nlattr *nla) +{ + enum nft_data_types type; + u8 reg; + + reg = ntohl(nla_get_be32(nla)); + if (reg == NFT_REG_VERDICT) + type = NFT_DATA_VERDICT; + else + type = NFT_DATA_VALUE; + + return type; +} + static int nft_immediate_init(const struct nft_ctx *ctx, const struct nft_expr *expr, const struct nlattr * const tb[]) { struct nft_immediate_expr *priv = nft_expr_priv(expr); - struct nft_data_desc desc; + struct nft_data_desc desc = { + .size = sizeof(priv->data), + }; int err; if (tb[NFTA_IMMEDIATE_DREG] == NULL || tb[NFTA_IMMEDIATE_DATA] == NULL) return -EINVAL; - err = nft_data_init(ctx, &priv->data, sizeof(priv->data), &desc, - tb[NFTA_IMMEDIATE_DATA]); + desc.type = nft_reg_to_type(tb[NFTA_IMMEDIATE_DREG]); + err = nft_data_init(ctx, &priv->data, &desc, tb[NFTA_IMMEDIATE_DATA]); if (err < 0) return err; --- linux-5.19.0.orig/net/netfilter/nft_meta.c +++ linux-5.19.0/net/netfilter/nft_meta.c @@ -851,21 +851,21 @@ static int nft_secmark_compute_secid(struct nft_secmark *priv) { - u32 tmp_secid = 0; + struct lsmblob blob; int err; - err = security_secctx_to_secid(priv->ctx, strlen(priv->ctx), &tmp_secid); + err = security_secctx_to_secid(priv->ctx, strlen(priv->ctx), &blob); if (err) return err; - if (!tmp_secid) + if (!lsmblob_is_set(&blob)) return -ENOENT; - err = security_secmark_relabel_packet(tmp_secid); + err = security_secmark_relabel_packet(lsmblob_value(&blob)); if (err) return err; - priv->secid = tmp_secid; + priv->secid = lsmblob_value(&blob); return 0; } --- linux-5.19.0.orig/net/netfilter/nft_osf.c +++ linux-5.19.0/net/netfilter/nft_osf.c @@ -115,9 +115,21 @@ const struct nft_expr *expr, const struct nft_data **data) { - return nft_chain_validate_hooks(ctx->chain, (1 << NF_INET_LOCAL_IN) | - (1 << NF_INET_PRE_ROUTING) | - (1 << NF_INET_FORWARD)); + unsigned int hooks; + + switch (ctx->family) { + case NFPROTO_IPV4: + case NFPROTO_IPV6: + case NFPROTO_INET: + hooks = (1 << NF_INET_LOCAL_IN) | + (1 << NF_INET_PRE_ROUTING) | + (1 << NF_INET_FORWARD); + break; + default: + return -EOPNOTSUPP; + } + + return nft_chain_validate_hooks(ctx->chain, hooks); } static bool nft_osf_reduce(struct nft_regs_track *track, --- linux-5.19.0.orig/net/netfilter/nft_payload.c +++ linux-5.19.0/net/netfilter/nft_payload.c @@ -62,7 +62,7 @@ return false; if (offset + len > VLAN_ETH_HLEN + vlan_hlen) - ethlen -= offset + len - VLAN_ETH_HLEN + vlan_hlen; + ethlen -= offset + len - VLAN_ETH_HLEN - vlan_hlen; memcpy(dst_u8, vlanh + offset - vlan_hlen, ethlen); @@ -740,17 +740,23 @@ const struct nlattr * const tb[]) { struct nft_payload_set *priv = nft_expr_priv(expr); + u32 csum_offset, csum_type = NFT_PAYLOAD_CSUM_NONE; + int err; priv->base = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_BASE])); priv->offset = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_OFFSET])); priv->len = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_LEN])); if (tb[NFTA_PAYLOAD_CSUM_TYPE]) - priv->csum_type = - ntohl(nla_get_be32(tb[NFTA_PAYLOAD_CSUM_TYPE])); - if (tb[NFTA_PAYLOAD_CSUM_OFFSET]) - priv->csum_offset = - ntohl(nla_get_be32(tb[NFTA_PAYLOAD_CSUM_OFFSET])); + csum_type = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_CSUM_TYPE])); + if (tb[NFTA_PAYLOAD_CSUM_OFFSET]) { + err = nft_parse_u32_check(tb[NFTA_PAYLOAD_CSUM_OFFSET], U8_MAX, + &csum_offset); + if (err < 0) + return err; + + priv->csum_offset = csum_offset; + } if (tb[NFTA_PAYLOAD_CSUM_FLAGS]) { u32 flags; @@ -761,7 +767,7 @@ priv->csum_flags = flags; } - switch (priv->csum_type) { + switch (csum_type) { case NFT_PAYLOAD_CSUM_NONE: case NFT_PAYLOAD_CSUM_INET: break; @@ -775,6 +781,7 @@ default: return -EOPNOTSUPP; } + priv->csum_type = csum_type; return nft_parse_register_load(tb[NFTA_PAYLOAD_SREG], &priv->sreg, priv->len); @@ -833,6 +840,7 @@ { enum nft_payload_bases base; unsigned int offset, len; + int err; if (tb[NFTA_PAYLOAD_BASE] == NULL || tb[NFTA_PAYLOAD_OFFSET] == NULL || @@ -859,8 +867,13 @@ if (tb[NFTA_PAYLOAD_DREG] == NULL) return ERR_PTR(-EINVAL); - offset = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_OFFSET])); - len = ntohl(nla_get_be32(tb[NFTA_PAYLOAD_LEN])); + err = nft_parse_u32_check(tb[NFTA_PAYLOAD_OFFSET], U8_MAX, &offset); + if (err < 0) + return ERR_PTR(err); + + err = nft_parse_u32_check(tb[NFTA_PAYLOAD_LEN], U8_MAX, &len); + if (err < 0) + return ERR_PTR(err); if (len <= 4 && is_power_of_2(len) && IS_ALIGNED(offset, len) && base != NFT_PAYLOAD_LL_HEADER && base != NFT_PAYLOAD_INNER_HEADER) --- linux-5.19.0.orig/net/netfilter/nft_range.c +++ linux-5.19.0/net/netfilter/nft_range.c @@ -51,7 +51,14 @@ const struct nlattr * const tb[]) { struct nft_range_expr *priv = nft_expr_priv(expr); - struct nft_data_desc desc_from, desc_to; + struct nft_data_desc desc_from = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->data_from), + }; + struct nft_data_desc desc_to = { + .type = NFT_DATA_VALUE, + .size = sizeof(priv->data_to), + }; int err; u32 op; @@ -61,26 +68,16 @@ !tb[NFTA_RANGE_TO_DATA]) return -EINVAL; - err = nft_data_init(NULL, &priv->data_from, sizeof(priv->data_from), - &desc_from, tb[NFTA_RANGE_FROM_DATA]); + err = nft_data_init(NULL, &priv->data_from, &desc_from, + tb[NFTA_RANGE_FROM_DATA]); if (err < 0) return err; - if (desc_from.type != NFT_DATA_VALUE) { - err = -EINVAL; - goto err1; - } - - err = nft_data_init(NULL, &priv->data_to, sizeof(priv->data_to), - &desc_to, tb[NFTA_RANGE_TO_DATA]); + err = nft_data_init(NULL, &priv->data_to, &desc_to, + tb[NFTA_RANGE_TO_DATA]); if (err < 0) goto err1; - if (desc_to.type != NFT_DATA_VALUE) { - err = -EINVAL; - goto err2; - } - if (desc_from.len != desc_to.len) { err = -EINVAL; goto err2; --- linux-5.19.0.orig/net/netfilter/nft_set_pipapo.c +++ linux-5.19.0/net/netfilter/nft_set_pipapo.c @@ -1162,6 +1162,7 @@ struct nft_pipapo_match *m = priv->clone; u8 genmask = nft_genmask_next(net); struct nft_pipapo_field *f; + const u8 *start_p, *end_p; int i, bsize_max, err = 0; if (nft_set_ext_exists(ext, NFT_SET_EXT_KEY_END)) @@ -1202,9 +1203,9 @@ } /* Validate */ + start_p = start; + end_p = end; nft_pipapo_for_each_field(f, i, m) { - const u8 *start_p = start, *end_p = end; - if (f->rules >= (unsigned long)NFT_PIPAPO_RULE0_MAX) return -ENOSPC; --- linux-5.19.0.orig/net/netfilter/nft_tproxy.c +++ linux-5.19.0/net/netfilter/nft_tproxy.c @@ -312,6 +312,13 @@ return 0; } +static int nft_tproxy_validate(const struct nft_ctx *ctx, + const struct nft_expr *expr, + const struct nft_data **data) +{ + return nft_chain_validate_hooks(ctx->chain, 1 << NF_INET_PRE_ROUTING); +} + static struct nft_expr_type nft_tproxy_type; static const struct nft_expr_ops nft_tproxy_ops = { .type = &nft_tproxy_type, @@ -321,6 +328,7 @@ .destroy = nft_tproxy_destroy, .dump = nft_tproxy_dump, .reduce = NFT_REDUCE_READONLY, + .validate = nft_tproxy_validate, }; static struct nft_expr_type nft_tproxy_type __read_mostly = { --- linux-5.19.0.orig/net/netfilter/nft_tunnel.c +++ linux-5.19.0/net/netfilter/nft_tunnel.c @@ -161,6 +161,7 @@ static struct nft_expr_type nft_tunnel_type __read_mostly = { .name = "tunnel", + .family = NFPROTO_NETDEV, .ops = &nft_tunnel_get_ops, .policy = nft_tunnel_policy, .maxattr = NFTA_TUNNEL_MAX, --- linux-5.19.0.orig/net/netfilter/xt_SECMARK.c +++ linux-5.19.0/net/netfilter/xt_SECMARK.c @@ -42,13 +42,14 @@ static int checkentry_lsm(struct xt_secmark_target_info_v1 *info) { + struct lsmblob blob; int err; info->secctx[SECMARK_SECCTX_MAX - 1] = '\0'; info->secid = 0; err = security_secctx_to_secid(info->secctx, strlen(info->secctx), - &info->secid); + &blob); if (err) { if (err == -EINVAL) pr_info_ratelimited("invalid security context \'%s\'\n", @@ -56,6 +57,10 @@ return err; } + /* xt_secmark_target_info can't be changed to use lsmblobs because + * it is exposed as an API. Use lsmblob_value() to get the one + * value that got set by security_secctx_to_secid(). */ + info->secid = lsmblob_value(&blob); if (!info->secid) { pr_info_ratelimited("unable to map security context \'%s\'\n", info->secctx); --- linux-5.19.0.orig/net/netfilter/xt_connmark.c +++ linux-5.19.0/net/netfilter/xt_connmark.c @@ -30,6 +30,7 @@ u_int32_t new_targetmark; struct nf_conn *ct; u_int32_t newmark; + u_int32_t oldmark; ct = nf_ct_get(skb, &ctinfo); if (ct == NULL) @@ -37,14 +38,15 @@ switch (info->mode) { case XT_CONNMARK_SET: - newmark = (ct->mark & ~info->ctmask) ^ info->ctmark; + oldmark = READ_ONCE(ct->mark); + newmark = (oldmark & ~info->ctmask) ^ info->ctmark; if (info->shift_dir == D_SHIFT_RIGHT) newmark >>= info->shift_bits; else newmark <<= info->shift_bits; - if (ct->mark != newmark) { - ct->mark = newmark; + if (READ_ONCE(ct->mark) != newmark) { + WRITE_ONCE(ct->mark, newmark); nf_conntrack_event_cache(IPCT_MARK, ct); } break; @@ -55,15 +57,15 @@ else new_targetmark <<= info->shift_bits; - newmark = (ct->mark & ~info->ctmask) ^ + newmark = (READ_ONCE(ct->mark) & ~info->ctmask) ^ new_targetmark; - if (ct->mark != newmark) { - ct->mark = newmark; + if (READ_ONCE(ct->mark) != newmark) { + WRITE_ONCE(ct->mark, newmark); nf_conntrack_event_cache(IPCT_MARK, ct); } break; case XT_CONNMARK_RESTORE: - new_targetmark = (ct->mark & info->ctmask); + new_targetmark = (READ_ONCE(ct->mark) & info->ctmask); if (info->shift_dir == D_SHIFT_RIGHT) new_targetmark >>= info->shift_bits; else @@ -126,7 +128,7 @@ if (ct == NULL) return false; - return ((ct->mark & info->mask) == info->mark) ^ info->invert; + return ((READ_ONCE(ct->mark) & info->mask) == info->mark) ^ info->invert; } static int connmark_mt_check(const struct xt_mtchk_param *par) --- linux-5.19.0.orig/net/netlabel/netlabel_kapi.c +++ linux-5.19.0/net/netlabel/netlabel_kapi.c @@ -196,7 +196,7 @@ * @addr: IP address in network byte order (struct in[6]_addr) * @mask: address mask in network byte order (struct in[6]_addr) * @family: address family - * @secid: LSM secid value for the entry + * @lsmblob: LSM data value for the entry * @audit_info: NetLabel audit information * * Description: @@ -210,7 +210,7 @@ const void *addr, const void *mask, u16 family, - u32 secid, + struct lsmblob *lsmblob, struct netlbl_audit *audit_info) { u32 addr_len; @@ -230,7 +230,7 @@ return netlbl_unlhsh_add(net, dev_name, addr, mask, addr_len, - secid, audit_info); + lsmblob, audit_info); } /** --- linux-5.19.0.orig/net/netlabel/netlabel_unlabeled.c +++ linux-5.19.0/net/netlabel/netlabel_unlabeled.c @@ -66,7 +66,7 @@ #define netlbl_unlhsh_addr4_entry(iter) \ container_of(iter, struct netlbl_unlhsh_addr4, list) struct netlbl_unlhsh_addr4 { - u32 secid; + struct lsmblob lsmblob; struct netlbl_af4list list; struct rcu_head rcu; @@ -74,7 +74,7 @@ #define netlbl_unlhsh_addr6_entry(iter) \ container_of(iter, struct netlbl_unlhsh_addr6, list) struct netlbl_unlhsh_addr6 { - u32 secid; + struct lsmblob lsmblob; struct netlbl_af6list list; struct rcu_head rcu; @@ -220,7 +220,7 @@ * @iface: the associated interface entry * @addr: IPv4 address in network byte order * @mask: IPv4 address mask in network byte order - * @secid: LSM secid value for entry + * @lsmblob: LSM data value for entry * * Description: * Add a new address entry into the unlabeled connection hash table using the @@ -231,7 +231,7 @@ static int netlbl_unlhsh_add_addr4(struct netlbl_unlhsh_iface *iface, const struct in_addr *addr, const struct in_addr *mask, - u32 secid) + struct lsmblob *lsmblob) { int ret_val; struct netlbl_unlhsh_addr4 *entry; @@ -243,7 +243,7 @@ entry->list.addr = addr->s_addr & mask->s_addr; entry->list.mask = mask->s_addr; entry->list.valid = 1; - entry->secid = secid; + entry->lsmblob = *lsmblob; spin_lock(&netlbl_unlhsh_lock); ret_val = netlbl_af4list_add(&entry->list, &iface->addr4_list); @@ -260,7 +260,7 @@ * @iface: the associated interface entry * @addr: IPv6 address in network byte order * @mask: IPv6 address mask in network byte order - * @secid: LSM secid value for entry + * @lsmblob: LSM data value for entry * * Description: * Add a new address entry into the unlabeled connection hash table using the @@ -271,7 +271,7 @@ static int netlbl_unlhsh_add_addr6(struct netlbl_unlhsh_iface *iface, const struct in6_addr *addr, const struct in6_addr *mask, - u32 secid) + struct lsmblob *lsmblob) { int ret_val; struct netlbl_unlhsh_addr6 *entry; @@ -287,7 +287,7 @@ entry->list.addr.s6_addr32[3] &= mask->s6_addr32[3]; entry->list.mask = *mask; entry->list.valid = 1; - entry->secid = secid; + entry->lsmblob = *lsmblob; spin_lock(&netlbl_unlhsh_lock); ret_val = netlbl_af6list_add(&entry->list, &iface->addr6_list); @@ -366,7 +366,7 @@ const void *addr, const void *mask, u32 addr_len, - u32 secid, + struct lsmblob *lsmblob, struct netlbl_audit *audit_info) { int ret_val; @@ -374,8 +374,7 @@ struct net_device *dev; struct netlbl_unlhsh_iface *iface; struct audit_buffer *audit_buf = NULL; - char *secctx = NULL; - u32 secctx_len; + struct lsmcontext context; if (addr_len != sizeof(struct in_addr) && addr_len != sizeof(struct in6_addr)) @@ -408,7 +407,7 @@ const struct in_addr *addr4 = addr; const struct in_addr *mask4 = mask; - ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, secid); + ret_val = netlbl_unlhsh_add_addr4(iface, addr4, mask4, lsmblob); if (audit_buf != NULL) netlbl_af4list_audit_addr(audit_buf, 1, dev_name, @@ -421,7 +420,7 @@ const struct in6_addr *addr6 = addr; const struct in6_addr *mask6 = mask; - ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, secid); + ret_val = netlbl_unlhsh_add_addr6(iface, addr6, mask6, lsmblob); if (audit_buf != NULL) netlbl_af6list_audit_addr(audit_buf, 1, dev_name, @@ -438,11 +437,11 @@ unlhsh_add_return: rcu_read_unlock(); if (audit_buf != NULL) { - if (security_secid_to_secctx(secid, - &secctx, - &secctx_len) == 0) { - audit_log_format(audit_buf, " sec_obj=%s", secctx); - security_release_secctx(secctx, secctx_len); + if (security_secid_to_secctx(lsmblob, &context, + LSMBLOB_FIRST) == 0) { + audit_log_format(audit_buf, " sec_obj=%s", + context.context); + security_release_secctx(&context); } audit_log_format(audit_buf, " res=%u", ret_val == 0 ? 1 : 0); audit_log_end(audit_buf); @@ -473,8 +472,7 @@ struct netlbl_unlhsh_addr4 *entry; struct audit_buffer *audit_buf; struct net_device *dev; - char *secctx; - u32 secctx_len; + struct lsmcontext context; spin_lock(&netlbl_unlhsh_lock); list_entry = netlbl_af4list_remove(addr->s_addr, mask->s_addr, @@ -494,10 +492,11 @@ addr->s_addr, mask->s_addr); dev_put(dev); if (entry != NULL && - security_secid_to_secctx(entry->secid, - &secctx, &secctx_len) == 0) { - audit_log_format(audit_buf, " sec_obj=%s", secctx); - security_release_secctx(secctx, secctx_len); + security_secid_to_secctx(&entry->lsmblob, &context, + LSMBLOB_FIRST) == 0) { + audit_log_format(audit_buf, " sec_obj=%s", + context.context); + security_release_secctx(&context); } audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0); audit_log_end(audit_buf); @@ -534,8 +533,7 @@ struct netlbl_unlhsh_addr6 *entry; struct audit_buffer *audit_buf; struct net_device *dev; - char *secctx; - u32 secctx_len; + struct lsmcontext context; spin_lock(&netlbl_unlhsh_lock); list_entry = netlbl_af6list_remove(addr, mask, &iface->addr6_list); @@ -554,10 +552,11 @@ addr, mask); dev_put(dev); if (entry != NULL && - security_secid_to_secctx(entry->secid, - &secctx, &secctx_len) == 0) { - audit_log_format(audit_buf, " sec_obj=%s", secctx); - security_release_secctx(secctx, secctx_len); + security_secid_to_secctx(&entry->lsmblob, &context, + LSMBLOB_FIRST) == 0) { + audit_log_format(audit_buf, " sec_obj=%s", + context.context); + security_release_secctx(&context); } audit_log_format(audit_buf, " res=%u", entry != NULL ? 1 : 0); audit_log_end(audit_buf); @@ -880,7 +879,7 @@ void *addr; void *mask; u32 addr_len; - u32 secid; + struct lsmblob blob; struct netlbl_audit audit_info; /* Don't allow users to add both IPv4 and IPv6 addresses for a @@ -904,13 +903,12 @@ ret_val = security_secctx_to_secid( nla_data(info->attrs[NLBL_UNLABEL_A_SECCTX]), nla_len(info->attrs[NLBL_UNLABEL_A_SECCTX]), - &secid); + &blob); if (ret_val != 0) return ret_val; - return netlbl_unlhsh_add(&init_net, - dev_name, addr, mask, addr_len, secid, - &audit_info); + return netlbl_unlhsh_add(&init_net, dev_name, addr, mask, addr_len, + &blob, &audit_info); } /** @@ -931,7 +929,7 @@ void *addr; void *mask; u32 addr_len; - u32 secid; + struct lsmblob blob; struct netlbl_audit audit_info; /* Don't allow users to add both IPv4 and IPv6 addresses for a @@ -953,12 +951,11 @@ ret_val = security_secctx_to_secid( nla_data(info->attrs[NLBL_UNLABEL_A_SECCTX]), nla_len(info->attrs[NLBL_UNLABEL_A_SECCTX]), - &secid); + &blob); if (ret_val != 0) return ret_val; - return netlbl_unlhsh_add(&init_net, - NULL, addr, mask, addr_len, secid, + return netlbl_unlhsh_add(&init_net, NULL, addr, mask, addr_len, &blob, &audit_info); } @@ -1069,10 +1066,9 @@ int ret_val = -ENOMEM; struct netlbl_unlhsh_walk_arg *cb_arg = arg; struct net_device *dev; + struct lsmcontext context; void *data; - u32 secid; - char *secctx; - u32 secctx_len; + struct lsmblob *lsmb; data = genlmsg_put(cb_arg->skb, NETLINK_CB(cb_arg->nl_cb->skb).portid, cb_arg->seq, &netlbl_unlabel_gnl_family, @@ -1110,7 +1106,7 @@ if (ret_val != 0) goto list_cb_failure; - secid = addr4->secid; + lsmb = (struct lsmblob *)&addr4->lsmblob; } else { ret_val = nla_put_in6_addr(cb_arg->skb, NLBL_UNLABEL_A_IPV6ADDR, @@ -1124,17 +1120,17 @@ if (ret_val != 0) goto list_cb_failure; - secid = addr6->secid; + lsmb = (struct lsmblob *)&addr6->lsmblob; } - ret_val = security_secid_to_secctx(secid, &secctx, &secctx_len); + ret_val = security_secid_to_secctx(lsmb, &context, LSMBLOB_FIRST); if (ret_val != 0) goto list_cb_failure; ret_val = nla_put(cb_arg->skb, NLBL_UNLABEL_A_SECCTX, - secctx_len, - secctx); - security_release_secctx(secctx, secctx_len); + context.len, + context.context); + security_release_secctx(&context); if (ret_val != 0) goto list_cb_failure; @@ -1486,7 +1482,7 @@ &iface->addr4_list); if (addr4 == NULL) goto unlabel_getattr_nolabel; - secattr->attr.secid = netlbl_unlhsh_addr4_entry(addr4)->secid; + secattr->attr.lsmblob = netlbl_unlhsh_addr4_entry(addr4)->lsmblob; break; } #if IS_ENABLED(CONFIG_IPV6) @@ -1499,7 +1495,7 @@ &iface->addr6_list); if (addr6 == NULL) goto unlabel_getattr_nolabel; - secattr->attr.secid = netlbl_unlhsh_addr6_entry(addr6)->secid; + secattr->attr.lsmblob = netlbl_unlhsh_addr6_entry(addr6)->lsmblob; break; } #endif /* IPv6 */ @@ -1537,7 +1533,7 @@ /* Only the kernel is allowed to call this function and the only time * it is called is at bootup before the audit subsystem is reporting * messages so don't worry to much about these values. */ - security_current_getsecid_subj(&audit_info.secid); + security_current_getsecid_subj(&audit_info.lsmblob); audit_info.loginuid = GLOBAL_ROOT_UID; audit_info.sessionid = 0; --- linux-5.19.0.orig/net/netlabel/netlabel_unlabeled.h +++ linux-5.19.0/net/netlabel/netlabel_unlabeled.h @@ -211,7 +211,7 @@ const void *addr, const void *mask, u32 addr_len, - u32 secid, + struct lsmblob *lsmblob, struct netlbl_audit *audit_info); int netlbl_unlhsh_remove(struct net *net, const char *dev_name, --- linux-5.19.0.orig/net/netlabel/netlabel_user.c +++ linux-5.19.0/net/netlabel/netlabel_user.c @@ -84,8 +84,6 @@ struct netlbl_audit *audit_info) { struct audit_buffer *audit_buf; - char *secctx; - u32 secctx_len; if (audit_enabled == AUDIT_OFF) return NULL; @@ -98,13 +96,7 @@ from_kuid(&init_user_ns, audit_info->loginuid), audit_info->sessionid); - if (audit_info->secid != 0 && - security_secid_to_secctx(audit_info->secid, - &secctx, - &secctx_len) == 0) { - audit_log_format(audit_buf, " subj=%s", secctx); - security_release_secctx(secctx, secctx_len); - } + audit_log_subject_context(audit_buf, &audit_info->lsmblob); return audit_buf; } --- linux-5.19.0.orig/net/netlabel/netlabel_user.h +++ linux-5.19.0/net/netlabel/netlabel_user.h @@ -32,7 +32,7 @@ */ static inline void netlbl_netlink_auditinfo(struct netlbl_audit *audit_info) { - security_current_getsecid_subj(&audit_info->secid); + security_current_getsecid_subj(&audit_info->lsmblob); audit_info->loginuid = audit_get_loginuid(current); audit_info->sessionid = audit_get_sessionid(current); } --- linux-5.19.0.orig/net/netlink/af_netlink.c +++ linux-5.19.0/net/netlink/af_netlink.c @@ -2440,11 +2440,13 @@ return; } - rep = __nlmsg_put(skb, NETLINK_CB(in_skb).portid, nlh->nlmsg_seq, - NLMSG_ERROR, payload, flags); + rep = nlmsg_put(skb, NETLINK_CB(in_skb).portid, nlh->nlmsg_seq, + NLMSG_ERROR, payload, flags); errmsg = nlmsg_data(rep); errmsg->error = err; - memcpy(&errmsg->msg, nlh, payload > sizeof(*errmsg) ? nlh->nlmsg_len : sizeof(*nlh)); + unsafe_memcpy(&errmsg->msg, nlh, payload > sizeof(*errmsg) + ? nlh->nlmsg_len : sizeof(*nlh), + /* Bounds checked by the skb layer. */); if (nlk_has_extack && extack) { if (extack->_msg) { --- linux-5.19.0.orig/net/netlink/genetlink.c +++ linux-5.19.0/net/netlink/genetlink.c @@ -1174,13 +1174,17 @@ op.policy, op.maxattr); if (err) - return err; + goto err_free_state; } } if (!ctx->state) return -ENODATA; return 0; + +err_free_state: + netlink_policy_dump_free(ctx->state); + return err; } static void *ctrl_dumppolicy_prep(struct sk_buff *skb, --- linux-5.19.0.orig/net/netlink/policy.c +++ linux-5.19.0/net/netlink/policy.c @@ -144,7 +144,7 @@ err = add_policy(&state, policy, maxtype); if (err) - return err; + goto err_try_undo; for (policy_idx = 0; policy_idx < state->n_alloc && state->policies[policy_idx].policy; @@ -164,7 +164,7 @@ policy[type].nested_policy, policy[type].len); if (err) - return err; + goto err_try_undo; break; default: break; @@ -174,6 +174,16 @@ *pstate = state; return 0; + +err_try_undo: + /* Try to preserve reasonable unwind semantics - if we're starting from + * scratch clean up fully, otherwise record what we got and caller will. + */ + if (!*pstate) + netlink_policy_dump_free(state); + else + *pstate = state; + return err; } static bool --- linux-5.19.0.orig/net/nfc/nci/core.c +++ linux-5.19.0/net/nfc/nci/core.c @@ -542,7 +542,7 @@ skb_queue_purge(&ndev->tx_q); ndev->ops->close(ndev); - ndev->flags = 0; + ndev->flags &= BIT(NCI_UNREG); } done: --- linux-5.19.0.orig/net/nfc/nci/data.c +++ linux-5.19.0/net/nfc/nci/data.c @@ -279,8 +279,10 @@ nci_plen(skb->data)); conn_info = nci_get_conn_info_by_conn_id(ndev, nci_conn_id(skb->data)); - if (!conn_info) + if (!conn_info) { + kfree_skb(skb); return; + } /* strip the nci data header */ skb_pull(skb, NCI_DATA_HDR_SIZE); --- linux-5.19.0.orig/net/nfc/nci/ntf.c +++ linux-5.19.0/net/nfc/nci/ntf.c @@ -240,6 +240,8 @@ target->sens_res = nfca_poll->sens_res; target->sel_res = nfca_poll->sel_res; target->nfcid1_len = nfca_poll->nfcid1_len; + if (target->nfcid1_len > ARRAY_SIZE(target->nfcid1)) + return -EPROTO; if (target->nfcid1_len > 0) { memcpy(target->nfcid1, nfca_poll->nfcid1, target->nfcid1_len); @@ -248,6 +250,8 @@ nfcb_poll = (struct rf_tech_specific_params_nfcb_poll *)params; target->sensb_res_len = nfcb_poll->sensb_res_len; + if (target->sensb_res_len > ARRAY_SIZE(target->sensb_res)) + return -EPROTO; if (target->sensb_res_len > 0) { memcpy(target->sensb_res, nfcb_poll->sensb_res, target->sensb_res_len); @@ -256,6 +260,8 @@ nfcf_poll = (struct rf_tech_specific_params_nfcf_poll *)params; target->sensf_res_len = nfcf_poll->sensf_res_len; + if (target->sensf_res_len > ARRAY_SIZE(target->sensf_res)) + return -EPROTO; if (target->sensf_res_len > 0) { memcpy(target->sensf_res, nfcf_poll->sensf_res, target->sensf_res_len); --- linux-5.19.0.orig/net/openvswitch/conntrack.c +++ linux-5.19.0/net/openvswitch/conntrack.c @@ -152,7 +152,7 @@ static u32 ovs_ct_get_mark(const struct nf_conn *ct) { #if IS_ENABLED(CONFIG_NF_CONNTRACK_MARK) - return ct ? ct->mark : 0; + return ct ? READ_ONCE(ct->mark) : 0; #else return 0; #endif @@ -340,9 +340,9 @@ #if IS_ENABLED(CONFIG_NF_CONNTRACK_MARK) u32 new_mark; - new_mark = ct_mark | (ct->mark & ~(mask)); - if (ct->mark != new_mark) { - ct->mark = new_mark; + new_mark = ct_mark | (READ_ONCE(ct->mark) & ~(mask)); + if (READ_ONCE(ct->mark) != new_mark) { + WRITE_ONCE(ct->mark, new_mark); if (nf_ct_is_confirmed(ct)) nf_conntrack_event_cache(IPCT_MARK, ct); key->ct.mark = new_mark; --- linux-5.19.0.orig/net/openvswitch/datapath.c +++ linux-5.19.0/net/openvswitch/datapath.c @@ -252,10 +252,17 @@ upcall.mru = OVS_CB(skb)->mru; error = ovs_dp_upcall(dp, skb, key, &upcall, 0); - if (unlikely(error)) - kfree_skb(skb); - else + switch (error) { + case 0: + case -EAGAIN: + case -ERESTARTSYS: + case -EINTR: consume_skb(skb); + break; + default: + kfree_skb(skb); + break; + } stats_counter = &stats->n_missed; goto out; } @@ -551,8 +558,9 @@ out: if (err) skb_tx_error(skb); - kfree_skb(user_skb); - kfree_skb(nskb); + consume_skb(user_skb); + consume_skb(nskb); + return err; } @@ -939,6 +947,7 @@ struct sw_flow_mask mask; struct sk_buff *reply; struct datapath *dp; + struct sw_flow_key *key; struct sw_flow_actions *acts; struct sw_flow_match match; u32 ufid_flags = ovs_nla_get_ufid_flags(a[OVS_FLOW_ATTR_UFID_FLAGS]); @@ -966,24 +975,26 @@ } /* Extract key. */ - ovs_match_init(&match, &new_flow->key, false, &mask); + key = kzalloc(sizeof(*key), GFP_KERNEL); + if (!key) { + error = -ENOMEM; + goto err_kfree_key; + } + + ovs_match_init(&match, key, false, &mask); error = ovs_nla_get_match(net, &match, a[OVS_FLOW_ATTR_KEY], a[OVS_FLOW_ATTR_MASK], log); if (error) goto err_kfree_flow; + ovs_flow_mask_key(&new_flow->key, key, true, &mask); + /* Extract flow identifier. */ error = ovs_nla_get_identifier(&new_flow->id, a[OVS_FLOW_ATTR_UFID], - &new_flow->key, log); + key, log); if (error) goto err_kfree_flow; - /* unmasked key is needed to match when ufid is not used. */ - if (ovs_identifier_is_key(&new_flow->id)) - match.key = new_flow->id.unmasked_key; - - ovs_flow_mask_key(&new_flow->key, &new_flow->key, true, &mask); - /* Validate actions. */ error = ovs_nla_copy_actions(net, a[OVS_FLOW_ATTR_ACTIONS], &new_flow->key, &acts, log); @@ -1010,7 +1021,7 @@ if (ovs_identifier_is_ufid(&new_flow->id)) flow = ovs_flow_tbl_lookup_ufid(&dp->table, &new_flow->id); if (!flow) - flow = ovs_flow_tbl_lookup(&dp->table, &new_flow->key); + flow = ovs_flow_tbl_lookup(&dp->table, key); if (likely(!flow)) { rcu_assign_pointer(new_flow->sf_acts, acts); @@ -1080,6 +1091,8 @@ if (reply) ovs_notify(&dp_flow_genl_family, reply, info); + + kfree(key); return 0; err_unlock_ovs: @@ -1089,6 +1102,8 @@ ovs_nla_free_flow_actions(acts); err_kfree_flow: ovs_flow_free(new_flow, false); +err_kfree_key: + kfree(key); error: return error; } @@ -1598,7 +1613,8 @@ if (IS_ERR(dp)) return; - WARN(dp->user_features, "Dropping previously announced user features\n"); + pr_warn("%s: Dropping previously announced user features\n", + ovs_dp_name(dp)); dp->user_features = 0; } @@ -1802,7 +1818,7 @@ ovs_dp_reset_user_features(skb, info); } - goto err_unlock_and_destroy_meters; + goto err_destroy_portids; } err = ovs_dp_cmd_fill_info(dp, reply, info->snd_portid, @@ -1817,6 +1833,8 @@ ovs_notify(&dp_datapath_genl_family, reply, info); return 0; +err_destroy_portids: + kfree(rcu_dereference_raw(dp->upcall_portids)); err_unlock_and_destroy_meters: ovs_unlock(); ovs_meters_exit(dp); --- linux-5.19.0.orig/net/packet/af_packet.c +++ linux-5.19.0/net/packet/af_packet.c @@ -2293,8 +2293,7 @@ if (skb->ip_summed == CHECKSUM_PARTIAL) status |= TP_STATUS_CSUMNOTREADY; else if (skb->pkt_type != PACKET_OUTGOING && - (skb->ip_summed == CHECKSUM_COMPLETE || - skb_csum_unnecessary(skb))) + skb_csum_unnecessary(skb)) status |= TP_STATUS_CSUM_VALID; if (snaplen > res) @@ -3037,8 +3036,8 @@ if (err) goto out_free; - if (sock->type == SOCK_RAW && - !dev_validate_header(dev, skb->data, len)) { + if ((sock->type == SOCK_RAW && + !dev_validate_header(dev, skb->data, len)) || !skb->len) { err = -EINVAL; goto out_free; } @@ -3520,8 +3519,7 @@ if (skb->ip_summed == CHECKSUM_PARTIAL) aux.tp_status |= TP_STATUS_CSUMNOTREADY; else if (skb->pkt_type != PACKET_OUTGOING && - (skb->ip_summed == CHECKSUM_COMPLETE || - skb_csum_unnecessary(skb))) + skb_csum_unnecessary(skb)) aux.tp_status |= TP_STATUS_CSUM_VALID; aux.tp_len = origlen; --- linux-5.19.0.orig/net/qrtr/mhi.c +++ linux-5.19.0/net/qrtr/mhi.c @@ -78,11 +78,6 @@ struct qrtr_mhi_dev *qdev; int rc; - /* start channels */ - rc = mhi_prepare_for_transfer_autoqueue(mhi_dev); - if (rc) - return rc; - qdev = devm_kzalloc(&mhi_dev->dev, sizeof(*qdev), GFP_KERNEL); if (!qdev) return -ENOMEM; @@ -96,6 +91,13 @@ if (rc) return rc; + /* start channels */ + rc = mhi_prepare_for_transfer_autoqueue(mhi_dev); + if (rc) { + qrtr_endpoint_unregister(&qdev->ep); + return rc; + } + dev_dbg(qdev->dev, "Qualcomm MHI QRTR driver probed\n"); return 0; --- linux-5.19.0.orig/net/rds/ib_recv.c +++ linux-5.19.0/net/rds/ib_recv.c @@ -363,6 +363,7 @@ static void release_refill(struct rds_connection *conn) { clear_bit(RDS_RECV_REFILL, &conn->c_flags); + smp_mb__after_atomic(); /* We don't use wait_on_bit()/wake_up_bit() because our waking is in a * hot path and finding waiters is very rare. We don't want to walk --- linux-5.19.0.orig/net/rds/ib_send.c +++ linux-5.19.0/net/rds/ib_send.c @@ -503,7 +503,7 @@ int flow_controlled = 0; int nr_sig = 0; - BUG_ON(off % RDS_FRAG_SIZE); + BUG_ON(!conn->c_loopback && off % RDS_FRAG_SIZE); BUG_ON(hdr_off != 0 && hdr_off != sizeof(struct rds_header)); /* Do not send cong updates to IB loopback */ --- linux-5.19.0.orig/net/rds/tcp.c +++ linux-5.19.0/net/rds/tcp.c @@ -166,10 +166,10 @@ */ atomic_set(&cp->cp_state, RDS_CONN_RESETTING); wait_event(cp->cp_waitq, !test_bit(RDS_IN_XMIT, &cp->cp_flags)); - lock_sock(osock->sk); /* reset receive side state for rds_tcp_data_recv() for osock */ cancel_delayed_work_sync(&cp->cp_send_w); cancel_delayed_work_sync(&cp->cp_recv_w); + lock_sock(osock->sk); if (tc->t_tinc) { rds_inc_put(&tc->t_tinc->ti_inc); tc->t_tinc = NULL; --- linux-5.19.0.orig/net/rfkill/core.c +++ linux-5.19.0/net/rfkill/core.c @@ -78,7 +78,6 @@ struct mutex mtx; wait_queue_head_t read_wait; bool input_handler; - u8 max_size; }; @@ -1154,8 +1153,6 @@ if (!data) return -ENOMEM; - data->max_size = RFKILL_EVENT_SIZE_V1; - INIT_LIST_HEAD(&data->events); mutex_init(&data->mtx); init_waitqueue_head(&data->read_wait); @@ -1238,7 +1235,6 @@ list); sz = min_t(unsigned long, sizeof(ev->ev), count); - sz = min_t(unsigned long, sz, data->max_size); ret = sz; if (copy_to_user(buf, &ev->ev, sz)) ret = -EFAULT; @@ -1253,7 +1249,6 @@ static ssize_t rfkill_fop_write(struct file *file, const char __user *buf, size_t count, loff_t *pos) { - struct rfkill_data *data = file->private_data; struct rfkill *rfkill; struct rfkill_event_ext ev; int ret; @@ -1268,7 +1263,6 @@ * our API version even in a write() call, if it cares. */ count = min(count, sizeof(ev)); - count = min_t(size_t, count, data->max_size); if (copy_from_user(&ev, buf, count)) return -EFAULT; @@ -1328,47 +1322,31 @@ return 0; } +#ifdef CONFIG_RFKILL_INPUT static long rfkill_fop_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { struct rfkill_data *data = file->private_data; - int ret = -ENOSYS; - u32 size; if (_IOC_TYPE(cmd) != RFKILL_IOC_MAGIC) return -ENOSYS; + if (_IOC_NR(cmd) != RFKILL_IOC_NOINPUT) + return -ENOSYS; + mutex_lock(&data->mtx); - switch (_IOC_NR(cmd)) { -#ifdef CONFIG_RFKILL_INPUT - case RFKILL_IOC_NOINPUT: - if (!data->input_handler) { - if (atomic_inc_return(&rfkill_input_disabled) == 1) - printk(KERN_DEBUG "rfkill: input handler disabled\n"); - data->input_handler = true; - } - ret = 0; - break; -#endif - case RFKILL_IOC_MAX_SIZE: - if (get_user(size, (__u32 __user *)arg)) { - ret = -EFAULT; - break; - } - if (size < RFKILL_EVENT_SIZE_V1 || size > U8_MAX) { - ret = -EINVAL; - break; - } - data->max_size = size; - ret = 0; - break; - default: - break; + + if (!data->input_handler) { + if (atomic_inc_return(&rfkill_input_disabled) == 1) + printk(KERN_DEBUG "rfkill: input handler disabled\n"); + data->input_handler = true; } + mutex_unlock(&data->mtx); - return ret; + return 0; } +#endif static const struct file_operations rfkill_fops = { .owner = THIS_MODULE, @@ -1377,8 +1355,10 @@ .write = rfkill_fop_write, .poll = rfkill_fop_poll, .release = rfkill_fop_release, +#ifdef CONFIG_RFKILL_INPUT .unlocked_ioctl = rfkill_fop_ioctl, .compat_ioctl = compat_ptr_ioctl, +#endif .llseek = no_llseek, }; --- linux-5.19.0.orig/net/rose/af_rose.c +++ linux-5.19.0/net/rose/af_rose.c @@ -192,6 +192,7 @@ rose_disconnect(s, ENETUNREACH, ROSE_OUT_OF_ORDER, 0); if (rose->neighbour) rose->neighbour->use--; + dev_put(rose->device); rose->device = NULL; } } @@ -592,6 +593,8 @@ rose->idle = orose->idle; rose->defer = orose->defer; rose->device = orose->device; + if (rose->device) + dev_hold(rose->device); rose->qbitincl = orose->qbitincl; return sk; @@ -645,6 +648,7 @@ break; } + dev_put(rose->device); sock->sk = NULL; release_sock(sk); sock_put(sk); @@ -721,7 +725,6 @@ struct rose_sock *rose = rose_sk(sk); struct sockaddr_rose *addr = (struct sockaddr_rose *)uaddr; unsigned char cause, diagnostic; - struct net_device *dev; ax25_uid_assoc *user; int n, err = 0; @@ -778,9 +781,12 @@ } if (sock_flag(sk, SOCK_ZAPPED)) { /* Must bind first - autobinding in this may or may not work */ + struct net_device *dev; + sock_reset_flag(sk, SOCK_ZAPPED); - if ((dev = rose_dev_first()) == NULL) { + dev = rose_dev_first(); + if (!dev) { err = -ENETUNREACH; goto out_release; } @@ -788,6 +794,7 @@ user = ax25_findbyuid(current_euid()); if (!user) { err = -EINVAL; + dev_put(dev); goto out_release; } --- linux-5.19.0.orig/net/rose/rose_link.c +++ linux-5.19.0/net/rose/rose_link.c @@ -236,6 +236,9 @@ unsigned char *dptr; int len; + if (!neigh->dev) + return; + len = AX25_BPQ_HEADER_LEN + AX25_MAX_HEADER_LEN + ROSE_MIN_LEN + 3; if ((skb = alloc_skb(len, GFP_ATOMIC)) == NULL) --- linux-5.19.0.orig/net/rose/rose_loopback.c +++ linux-5.19.0/net/rose/rose_loopback.c @@ -96,7 +96,8 @@ } if (frametype == ROSE_CALL_REQUEST) { - if (!rose_loopback_neigh->dev) { + if (!rose_loopback_neigh->dev && + !rose_loopback_neigh->loopback) { kfree_skb(skb); continue; } --- linux-5.19.0.orig/net/rose/rose_route.c +++ linux-5.19.0/net/rose/rose_route.c @@ -615,6 +615,8 @@ if (first == NULL || strncmp(dev->name, first->name, 3) < 0) first = dev; } + if (first) + dev_hold(first); rcu_read_unlock(); return first; --- linux-5.19.0.orig/net/rxrpc/ar-internal.h +++ linux-5.19.0/net/rxrpc/ar-internal.h @@ -399,6 +399,7 @@ struct rxrpc_bundle { struct rxrpc_conn_parameters params; refcount_t ref; + atomic_t active; /* Number of active users */ unsigned int debug_id; bool try_upgrade; /* True if the bundle is attempting upgrade */ bool alloc_conn; /* True if someone's getting a conn */ @@ -982,6 +983,7 @@ /* * peer_event.c */ +void rxrpc_encap_err_rcv(struct sock *sk, struct sk_buff *skb, unsigned int udp_offset); void rxrpc_error_report(struct sock *); void rxrpc_peer_keepalive_worker(struct work_struct *); --- linux-5.19.0.orig/net/rxrpc/call_object.c +++ linux-5.19.0/net/rxrpc/call_object.c @@ -285,8 +285,10 @@ _enter("%p,%lx", rx, p->user_call_ID); limiter = rxrpc_get_call_slot(p, gfp); - if (!limiter) + if (!limiter) { + release_sock(&rx->sk); return ERR_PTR(-ERESTARTSYS); + } call = rxrpc_alloc_client_call(rx, srx, gfp, debug_id); if (IS_ERR(call)) { --- linux-5.19.0.orig/net/rxrpc/conn_client.c +++ linux-5.19.0/net/rxrpc/conn_client.c @@ -40,6 +40,8 @@ DEFINE_IDR(rxrpc_client_conn_ids); static DEFINE_SPINLOCK(rxrpc_conn_id_lock); +static void rxrpc_deactivate_bundle(struct rxrpc_bundle *bundle); + /* * Get a connection ID and epoch for a client connection from the global pool. * The connection struct pointer is then recorded in the idr radix tree. The @@ -123,6 +125,7 @@ bundle->params = *cp; rxrpc_get_peer(bundle->params.peer); refcount_set(&bundle->ref, 1); + atomic_set(&bundle->active, 1); spin_lock_init(&bundle->channel_lock); INIT_LIST_HEAD(&bundle->waiting_calls); } @@ -149,7 +152,7 @@ dead = __refcount_dec_and_test(&bundle->ref, &r); - _debug("PUT B=%x %d", d, r); + _debug("PUT B=%x %d", d, r - 1); if (dead) rxrpc_free_bundle(bundle); } @@ -338,6 +341,7 @@ rxrpc_free_bundle(candidate); found_bundle: rxrpc_get_bundle(bundle); + atomic_inc(&bundle->active); spin_unlock(&local->client_bundles_lock); _leave(" = %u [found]", bundle->debug_id); return bundle; @@ -435,6 +439,7 @@ if (old) trace_rxrpc_client(old, -1, rxrpc_client_replace); candidate->bundle_shift = shift; + atomic_inc(&bundle->active); bundle->conns[i] = candidate; for (j = 0; j < RXRPC_MAXCALLS; j++) set_bit(shift + j, &bundle->avail_chans); @@ -725,6 +730,7 @@ smp_rmb(); out_put_bundle: + rxrpc_deactivate_bundle(bundle); rxrpc_put_bundle(bundle); out: _leave(" = %d", ret); @@ -900,9 +906,8 @@ static void rxrpc_unbundle_conn(struct rxrpc_connection *conn) { struct rxrpc_bundle *bundle = conn->bundle; - struct rxrpc_local *local = bundle->params.local; unsigned int bindex; - bool need_drop = false, need_put = false; + bool need_drop = false; int i; _enter("C=%x", conn->debug_id); @@ -921,15 +926,22 @@ } spin_unlock(&bundle->channel_lock); - /* If there are no more connections, remove the bundle */ - if (!bundle->avail_chans) { - _debug("maybe unbundle"); - spin_lock(&local->client_bundles_lock); - - for (i = 0; i < ARRAY_SIZE(bundle->conns); i++) - if (bundle->conns[i]) - break; - if (i == ARRAY_SIZE(bundle->conns) && !bundle->params.exclusive) { + if (need_drop) { + rxrpc_deactivate_bundle(bundle); + rxrpc_put_connection(conn); + } +} + +/* + * Drop the active count on a bundle. + */ +static void rxrpc_deactivate_bundle(struct rxrpc_bundle *bundle) +{ + struct rxrpc_local *local = bundle->params.local; + bool need_put = false; + + if (atomic_dec_and_lock(&bundle->active, &local->client_bundles_lock)) { + if (!bundle->params.exclusive) { _debug("erase bundle"); rb_erase(&bundle->local_node, &local->client_bundles); need_put = true; @@ -939,10 +951,6 @@ if (need_put) rxrpc_put_bundle(bundle); } - - if (need_drop) - rxrpc_put_connection(conn); - _leave(""); } /* --- linux-5.19.0.orig/net/rxrpc/local_object.c +++ linux-5.19.0/net/rxrpc/local_object.c @@ -137,6 +137,7 @@ tuncfg.encap_type = UDP_ENCAP_RXRPC; tuncfg.encap_rcv = rxrpc_input_packet; + tuncfg.encap_err_rcv = rxrpc_encap_err_rcv; tuncfg.sk_user_data = local; setup_udp_tunnel_sock(net, local->socket, &tuncfg); --- linux-5.19.0.orig/net/rxrpc/output.c +++ linux-5.19.0/net/rxrpc/output.c @@ -93,7 +93,7 @@ *_hard_ack = hard_ack; *_top = top; - pkt->ack.bufferSpace = htons(8); + pkt->ack.bufferSpace = htons(0); pkt->ack.maxSkew = htons(0); pkt->ack.firstPacket = htonl(hard_ack + 1); pkt->ack.previousPacket = htonl(call->ackr_highest_seq); --- linux-5.19.0.orig/net/rxrpc/peer_event.c +++ linux-5.19.0/net/rxrpc/peer_event.c @@ -16,22 +16,105 @@ #include #include #include +#include #include "ar-internal.h" +static void rxrpc_adjust_mtu(struct rxrpc_peer *, unsigned int); static void rxrpc_store_error(struct rxrpc_peer *, struct sock_exterr_skb *); static void rxrpc_distribute_error(struct rxrpc_peer *, int, enum rxrpc_call_completion); /* - * Find the peer associated with an ICMP packet. + * Find the peer associated with an ICMPv4 packet. */ static struct rxrpc_peer *rxrpc_lookup_peer_icmp_rcu(struct rxrpc_local *local, - const struct sk_buff *skb, + struct sk_buff *skb, + unsigned int udp_offset, + unsigned int *info, struct sockaddr_rxrpc *srx) { - struct sock_exterr_skb *serr = SKB_EXT_ERR(skb); + struct iphdr *ip, *ip0 = ip_hdr(skb); + struct icmphdr *icmp = icmp_hdr(skb); + struct udphdr *udp = (struct udphdr *)(skb->data + udp_offset); + + _enter("%u,%u,%u", ip0->protocol, icmp->type, icmp->code); + + switch (icmp->type) { + case ICMP_DEST_UNREACH: + *info = ntohs(icmp->un.frag.mtu); + fallthrough; + case ICMP_TIME_EXCEEDED: + case ICMP_PARAMETERPROB: + ip = (struct iphdr *)((void *)icmp + 8); + break; + default: + return NULL; + } - _enter(""); + memset(srx, 0, sizeof(*srx)); + srx->transport_type = local->srx.transport_type; + srx->transport_len = local->srx.transport_len; + srx->transport.family = local->srx.transport.family; + + /* Can we see an ICMP4 packet on an ICMP6 listening socket? and vice + * versa? + */ + switch (srx->transport.family) { + case AF_INET: + srx->transport_len = sizeof(srx->transport.sin); + srx->transport.family = AF_INET; + srx->transport.sin.sin_port = udp->dest; + memcpy(&srx->transport.sin.sin_addr, &ip->daddr, + sizeof(struct in_addr)); + break; + +#ifdef CONFIG_AF_RXRPC_IPV6 + case AF_INET6: + srx->transport_len = sizeof(srx->transport.sin); + srx->transport.family = AF_INET; + srx->transport.sin.sin_port = udp->dest; + memcpy(&srx->transport.sin.sin_addr, &ip->daddr, + sizeof(struct in_addr)); + break; +#endif + + default: + WARN_ON_ONCE(1); + return NULL; + } + + _net("ICMP {%pISp}", &srx->transport); + return rxrpc_lookup_peer_rcu(local, srx); +} + +#ifdef CONFIG_AF_RXRPC_IPV6 +/* + * Find the peer associated with an ICMPv6 packet. + */ +static struct rxrpc_peer *rxrpc_lookup_peer_icmp6_rcu(struct rxrpc_local *local, + struct sk_buff *skb, + unsigned int udp_offset, + unsigned int *info, + struct sockaddr_rxrpc *srx) +{ + struct icmp6hdr *icmp = icmp6_hdr(skb); + struct ipv6hdr *ip, *ip0 = ipv6_hdr(skb); + struct udphdr *udp = (struct udphdr *)(skb->data + udp_offset); + + _enter("%u,%u,%u", ip0->nexthdr, icmp->icmp6_type, icmp->icmp6_code); + + switch (icmp->icmp6_type) { + case ICMPV6_DEST_UNREACH: + *info = ntohl(icmp->icmp6_mtu); + fallthrough; + case ICMPV6_PKT_TOOBIG: + case ICMPV6_TIME_EXCEED: + case ICMPV6_PARAMPROB: + ip = (struct ipv6hdr *)((void *)icmp + 8); + break; + default: + return NULL; + } memset(srx, 0, sizeof(*srx)); srx->transport_type = local->srx.transport_type; @@ -43,6 +126,165 @@ */ switch (srx->transport.family) { case AF_INET: + _net("Rx ICMP6 on v4 sock"); + srx->transport_len = sizeof(srx->transport.sin); + srx->transport.family = AF_INET; + srx->transport.sin.sin_port = udp->dest; + memcpy(&srx->transport.sin.sin_addr, + &ip->daddr.s6_addr32[3], sizeof(struct in_addr)); + break; + case AF_INET6: + _net("Rx ICMP6"); + srx->transport.sin.sin_port = udp->dest; + memcpy(&srx->transport.sin6.sin6_addr, &ip->daddr, + sizeof(struct in6_addr)); + break; + default: + WARN_ON_ONCE(1); + return NULL; + } + + _net("ICMP {%pISp}", &srx->transport); + return rxrpc_lookup_peer_rcu(local, srx); +} +#endif /* CONFIG_AF_RXRPC_IPV6 */ + +/* + * Handle an error received on the local endpoint as a tunnel. + */ +void rxrpc_encap_err_rcv(struct sock *sk, struct sk_buff *skb, + unsigned int udp_offset) +{ + struct sock_extended_err ee; + struct sockaddr_rxrpc srx; + struct rxrpc_local *local; + struct rxrpc_peer *peer; + unsigned int info = 0; + int err; + u8 version = ip_hdr(skb)->version; + u8 type = icmp_hdr(skb)->type; + u8 code = icmp_hdr(skb)->code; + + rcu_read_lock(); + local = rcu_dereference_sk_user_data(sk); + if (unlikely(!local)) { + rcu_read_unlock(); + return; + } + + rxrpc_new_skb(skb, rxrpc_skb_received); + + switch (ip_hdr(skb)->version) { + case IPVERSION: + peer = rxrpc_lookup_peer_icmp_rcu(local, skb, udp_offset, + &info, &srx); + break; +#ifdef CONFIG_AF_RXRPC_IPV6 + case 6: + peer = rxrpc_lookup_peer_icmp6_rcu(local, skb, udp_offset, + &info, &srx); + break; +#endif + default: + rcu_read_unlock(); + return; + } + + if (peer && !rxrpc_get_peer_maybe(peer)) + peer = NULL; + if (!peer) { + rcu_read_unlock(); + return; + } + + memset(&ee, 0, sizeof(ee)); + + switch (version) { + case IPVERSION: + switch (type) { + case ICMP_DEST_UNREACH: + switch (code) { + case ICMP_FRAG_NEEDED: + rxrpc_adjust_mtu(peer, info); + rcu_read_unlock(); + rxrpc_put_peer(peer); + return; + default: + break; + } + + err = EHOSTUNREACH; + if (code <= NR_ICMP_UNREACH) { + /* Might want to do something different with + * non-fatal errors + */ + //harderr = icmp_err_convert[code].fatal; + err = icmp_err_convert[code].errno; + } + break; + + case ICMP_TIME_EXCEEDED: + err = EHOSTUNREACH; + break; + default: + err = EPROTO; + break; + } + + ee.ee_origin = SO_EE_ORIGIN_ICMP; + ee.ee_type = type; + ee.ee_code = code; + ee.ee_errno = err; + break; + +#ifdef CONFIG_AF_RXRPC_IPV6 + case 6: + switch (type) { + case ICMPV6_PKT_TOOBIG: + rxrpc_adjust_mtu(peer, info); + rcu_read_unlock(); + rxrpc_put_peer(peer); + return; + } + + icmpv6_err_convert(type, code, &err); + + if (err == EACCES) + err = EHOSTUNREACH; + + ee.ee_origin = SO_EE_ORIGIN_ICMP6; + ee.ee_type = type; + ee.ee_code = code; + ee.ee_errno = err; + break; +#endif + } + + trace_rxrpc_rx_icmp(peer, &ee, &srx); + + rxrpc_distribute_error(peer, err, RXRPC_CALL_NETWORK_ERROR); + rcu_read_unlock(); + rxrpc_put_peer(peer); +} + +/* + * Find the peer associated with a local error. + */ +static struct rxrpc_peer *rxrpc_lookup_peer_local_rcu(struct rxrpc_local *local, + const struct sk_buff *skb, + struct sockaddr_rxrpc *srx) +{ + struct sock_exterr_skb *serr = SKB_EXT_ERR(skb); + + _enter(""); + + memset(srx, 0, sizeof(*srx)); + srx->transport_type = local->srx.transport_type; + srx->transport_len = local->srx.transport_len; + srx->transport.family = local->srx.transport.family; + + switch (srx->transport.family) { + case AF_INET: srx->transport_len = sizeof(srx->transport.sin); srx->transport.family = AF_INET; srx->transport.sin.sin_port = serr->port; @@ -104,10 +346,8 @@ /* * Handle an MTU/fragmentation problem. */ -static void rxrpc_adjust_mtu(struct rxrpc_peer *peer, struct sock_exterr_skb *serr) +static void rxrpc_adjust_mtu(struct rxrpc_peer *peer, unsigned int mtu) { - u32 mtu = serr->ee.ee_info; - _net("Rx ICMP Fragmentation Needed (%d)", mtu); /* wind down the local interface MTU */ @@ -148,7 +388,7 @@ struct sock_exterr_skb *serr; struct sockaddr_rxrpc srx; struct rxrpc_local *local; - struct rxrpc_peer *peer; + struct rxrpc_peer *peer = NULL; struct sk_buff *skb; rcu_read_lock(); @@ -172,41 +412,20 @@ } rxrpc_new_skb(skb, rxrpc_skb_received); serr = SKB_EXT_ERR(skb); - if (!skb->len && serr->ee.ee_origin == SO_EE_ORIGIN_TIMESTAMPING) { - _leave("UDP empty message"); - rcu_read_unlock(); - rxrpc_free_skb(skb, rxrpc_skb_freed); - return; - } - peer = rxrpc_lookup_peer_icmp_rcu(local, skb, &srx); - if (peer && !rxrpc_get_peer_maybe(peer)) - peer = NULL; - if (!peer) { - rcu_read_unlock(); - rxrpc_free_skb(skb, rxrpc_skb_freed); - _leave(" [no peer]"); - return; - } - - trace_rxrpc_rx_icmp(peer, &serr->ee, &srx); - - if ((serr->ee.ee_origin == SO_EE_ORIGIN_ICMP && - serr->ee.ee_type == ICMP_DEST_UNREACH && - serr->ee.ee_code == ICMP_FRAG_NEEDED)) { - rxrpc_adjust_mtu(peer, serr); - rcu_read_unlock(); - rxrpc_free_skb(skb, rxrpc_skb_freed); - rxrpc_put_peer(peer); - _leave(" [MTU update]"); - return; + if (serr->ee.ee_origin == SO_EE_ORIGIN_LOCAL) { + peer = rxrpc_lookup_peer_local_rcu(local, skb, &srx); + if (peer && !rxrpc_get_peer_maybe(peer)) + peer = NULL; + if (peer) { + trace_rxrpc_rx_icmp(peer, &serr->ee, &srx); + rxrpc_store_error(peer, serr); + } } - rxrpc_store_error(peer, serr); rcu_read_unlock(); rxrpc_free_skb(skb, rxrpc_skb_freed); rxrpc_put_peer(peer); - _leave(""); } --- linux-5.19.0.orig/net/rxrpc/rxkad.c +++ linux-5.19.0/net/rxrpc/rxkad.c @@ -540,7 +540,7 @@ * directly into the target buffer. */ sg = _sg; - nsg = skb_shinfo(skb)->nr_frags; + nsg = skb_shinfo(skb)->nr_frags + 1; if (nsg <= 4) { nsg = 4; } else { --- linux-5.19.0.orig/net/rxrpc/sendmsg.c +++ linux-5.19.0/net/rxrpc/sendmsg.c @@ -51,10 +51,7 @@ return sock_intr_errno(*timeo); trace_rxrpc_transmit(call, rxrpc_transmit_wait); - mutex_unlock(&call->user_mutex); *timeo = schedule_timeout(*timeo); - if (mutex_lock_interruptible(&call->user_mutex) < 0) - return sock_intr_errno(*timeo); } } @@ -290,37 +287,48 @@ static int rxrpc_send_data(struct rxrpc_sock *rx, struct rxrpc_call *call, struct msghdr *msg, size_t len, - rxrpc_notify_end_tx_t notify_end_tx) + rxrpc_notify_end_tx_t notify_end_tx, + bool *_dropped_lock) { struct rxrpc_skb_priv *sp; struct sk_buff *skb; struct sock *sk = &rx->sk; + enum rxrpc_call_state state; long timeo; - bool more; - int ret, copied; + bool more = msg->msg_flags & MSG_MORE; + int ret, copied = 0; timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT); /* this should be in poll */ sk_clear_bit(SOCKWQ_ASYNC_NOSPACE, sk); +reload: + ret = -EPIPE; if (sk->sk_shutdown & SEND_SHUTDOWN) - return -EPIPE; - - more = msg->msg_flags & MSG_MORE; + goto maybe_error; + state = READ_ONCE(call->state); + ret = -ESHUTDOWN; + if (state >= RXRPC_CALL_COMPLETE) + goto maybe_error; + ret = -EPROTO; + if (state != RXRPC_CALL_CLIENT_SEND_REQUEST && + state != RXRPC_CALL_SERVER_ACK_REQUEST && + state != RXRPC_CALL_SERVER_SEND_REPLY) + goto maybe_error; + ret = -EMSGSIZE; if (call->tx_total_len != -1) { - if (len > call->tx_total_len) - return -EMSGSIZE; - if (!more && len != call->tx_total_len) - return -EMSGSIZE; + if (len - copied > call->tx_total_len) + goto maybe_error; + if (!more && len - copied != call->tx_total_len) + goto maybe_error; } skb = call->tx_pending; call->tx_pending = NULL; rxrpc_see_skb(skb, rxrpc_skb_seen); - copied = 0; do { /* Check to see if there's a ping ACK to reply to. */ if (call->ackr_reason == RXRPC_ACK_PING_RESPONSE) @@ -331,16 +339,8 @@ _debug("alloc"); - if (!rxrpc_check_tx_space(call, NULL)) { - ret = -EAGAIN; - if (msg->msg_flags & MSG_DONTWAIT) - goto maybe_error; - ret = rxrpc_wait_for_tx_window(rx, call, - &timeo, - msg->msg_flags & MSG_WAITALL); - if (ret < 0) - goto maybe_error; - } + if (!rxrpc_check_tx_space(call, NULL)) + goto wait_for_space; /* Work out the maximum size of a packet. Assume that * the security header is going to be in the padded @@ -468,6 +468,27 @@ efault: ret = -EFAULT; goto out; + +wait_for_space: + ret = -EAGAIN; + if (msg->msg_flags & MSG_DONTWAIT) + goto maybe_error; + mutex_unlock(&call->user_mutex); + *_dropped_lock = true; + ret = rxrpc_wait_for_tx_window(rx, call, &timeo, + msg->msg_flags & MSG_WAITALL); + if (ret < 0) + goto maybe_error; + if (call->interruptibility == RXRPC_INTERRUPTIBLE) { + if (mutex_lock_interruptible(&call->user_mutex) < 0) { + ret = sock_intr_errno(timeo); + goto maybe_error; + } + } else { + mutex_lock(&call->user_mutex); + } + *_dropped_lock = false; + goto reload; } /* @@ -629,6 +650,7 @@ enum rxrpc_call_state state; struct rxrpc_call *call; unsigned long now, j; + bool dropped_lock = false; int ret; struct rxrpc_send_params p = { @@ -694,7 +716,7 @@ if (call->tx_total_len != -1 || call->tx_pending || call->tx_top != 0) - goto error_put; + goto out_put_unlock; call->tx_total_len = p.call.tx_total_len; } } @@ -737,21 +759,13 @@ ret = rxrpc_send_abort_packet(call); } else if (p.command != RXRPC_CMD_SEND_DATA) { ret = -EINVAL; - } else if (rxrpc_is_client_call(call) && - state != RXRPC_CALL_CLIENT_SEND_REQUEST) { - /* request phase complete for this client call */ - ret = -EPROTO; - } else if (rxrpc_is_service_call(call) && - state != RXRPC_CALL_SERVER_ACK_REQUEST && - state != RXRPC_CALL_SERVER_SEND_REPLY) { - /* Reply phase not begun or not complete for service call. */ - ret = -EPROTO; } else { - ret = rxrpc_send_data(rx, call, msg, len, NULL); + ret = rxrpc_send_data(rx, call, msg, len, NULL, &dropped_lock); } out_put_unlock: - mutex_unlock(&call->user_mutex); + if (!dropped_lock) + mutex_unlock(&call->user_mutex); error_put: rxrpc_put_call(call, rxrpc_call_put); _leave(" = %d", ret); @@ -779,6 +793,7 @@ struct msghdr *msg, size_t len, rxrpc_notify_end_tx_t notify_end_tx) { + bool dropped_lock = false; int ret; _enter("{%d,%s},", call->debug_id, rxrpc_call_states[call->state]); @@ -796,7 +811,7 @@ case RXRPC_CALL_SERVER_ACK_REQUEST: case RXRPC_CALL_SERVER_SEND_REPLY: ret = rxrpc_send_data(rxrpc_sk(sock->sk), call, msg, len, - notify_end_tx); + notify_end_tx, &dropped_lock); break; case RXRPC_CALL_COMPLETE: read_lock_bh(&call->state_lock); @@ -810,7 +825,8 @@ break; } - mutex_unlock(&call->user_mutex); + if (!dropped_lock) + mutex_unlock(&call->user_mutex); _leave(" = %d", ret); return ret; } --- linux-5.19.0.orig/net/sched/Kconfig +++ linux-5.19.0/net/sched/Kconfig @@ -503,17 +503,6 @@ To compile this code as a module, choose M here: the module will be called cls_basic. -config NET_CLS_TCINDEX - tristate "Traffic-Control Index (TCINDEX)" - select NET_CLS - help - Say Y here if you want to be able to classify packets based on - traffic control indices. You will want this feature if you want - to implement Differentiated Services together with DSMARK. - - To compile this code as a module, choose M here: the - module will be called cls_tcindex. - config NET_CLS_ROUTE4 tristate "Routing decision (ROUTE)" depends on INET @@ -976,7 +965,7 @@ config NET_ACT_CT tristate "connection tracking tc action" - depends on NET_CLS_ACT && NF_CONNTRACK && NF_NAT && NF_FLOW_TABLE + depends on NET_CLS_ACT && NF_CONNTRACK && (!NF_NAT || NF_NAT) && NF_FLOW_TABLE help Say Y here to allow sending the packets to conntrack module. --- linux-5.19.0.orig/net/sched/Makefile +++ linux-5.19.0/net/sched/Makefile @@ -70,7 +70,6 @@ obj-$(CONFIG_NET_CLS_ROUTE4) += cls_route.o obj-$(CONFIG_NET_CLS_FW) += cls_fw.o obj-$(CONFIG_NET_CLS_RSVP) += cls_rsvp.o -obj-$(CONFIG_NET_CLS_TCINDEX) += cls_tcindex.o obj-$(CONFIG_NET_CLS_RSVP6) += cls_rsvp6.o obj-$(CONFIG_NET_CLS_BASIC) += cls_basic.o obj-$(CONFIG_NET_CLS_FLOW) += cls_flow.o --- linux-5.19.0.orig/net/sched/act_connmark.c +++ linux-5.19.0/net/sched/act_connmark.c @@ -62,7 +62,7 @@ c = nf_ct_get(skb, &ctinfo); if (c) { - skb->mark = c->mark; + skb->mark = READ_ONCE(c->mark); /* using overlimits stats to count how many packets marked */ ca->tcf_qstats.overlimits++; goto out; @@ -82,7 +82,7 @@ c = nf_ct_tuplehash_to_ctrack(thash); /* using overlimits stats to count how many packets marked */ ca->tcf_qstats.overlimits++; - skb->mark = c->mark; + skb->mark = READ_ONCE(c->mark); nf_ct_put(c); out: --- linux-5.19.0.orig/net/sched/act_ct.c +++ linux-5.19.0/net/sched/act_ct.c @@ -178,7 +178,7 @@ entry = tcf_ct_flow_table_flow_action_get_next(action); entry->id = FLOW_ACTION_CT_METADATA; #if IS_ENABLED(CONFIG_NF_CONNTRACK_MARK) - entry->ct_metadata.mark = ct->mark; + entry->ct_metadata.mark = READ_ONCE(ct->mark); #endif ctinfo = dir == IP_CT_DIR_ORIGINAL ? IP_CT_ESTABLISHED : IP_CT_ESTABLISHED_REPLY; @@ -939,9 +939,9 @@ if (!mask) return; - new_mark = mark | (ct->mark & ~(mask)); - if (ct->mark != new_mark) { - ct->mark = new_mark; + new_mark = mark | (READ_ONCE(ct->mark) & ~(mask)); + if (READ_ONCE(ct->mark) != new_mark) { + WRITE_ONCE(ct->mark, new_mark); if (nf_ct_is_confirmed(ct)) nf_conntrack_event_cache(IPCT_MARK, ct); } @@ -1393,7 +1393,7 @@ err = tcf_ct_flow_table_get(params); if (err) - goto cleanup; + goto cleanup_params; spin_lock_bh(&c->tcf_lock); goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch); @@ -1408,6 +1408,9 @@ return res; +cleanup_params: + if (params->tmpl) + nf_ct_put(params->tmpl); cleanup: if (goto_ch) tcf_chain_put_by_act(goto_ch); --- linux-5.19.0.orig/net/sched/act_ctinfo.c +++ linux-5.19.0/net/sched/act_ctinfo.c @@ -33,7 +33,7 @@ { u8 dscp, newdscp; - newdscp = (((ct->mark & cp->dscpmask) >> cp->dscpmaskshift) << 2) & + newdscp = (((READ_ONCE(ct->mark) & cp->dscpmask) >> cp->dscpmaskshift) << 2) & ~INET_ECN_MASK; switch (proto) { @@ -73,7 +73,7 @@ struct sk_buff *skb) { ca->stats_cpmark_set++; - skb->mark = ct->mark & cp->cpmarkmask; + skb->mark = READ_ONCE(ct->mark) & cp->cpmarkmask; } static int tcf_ctinfo_act(struct sk_buff *skb, const struct tc_action *a, @@ -131,7 +131,7 @@ } if (cp->mode & CTINFO_MODE_DSCP) - if (!cp->dscpstatemask || (ct->mark & cp->dscpstatemask)) + if (!cp->dscpstatemask || (READ_ONCE(ct->mark) & cp->dscpstatemask)) tcf_ctinfo_dscp_set(ct, ca, cp, skb, wlen, proto); if (cp->mode & CTINFO_MODE_CPMARK) --- linux-5.19.0.orig/net/sched/cls_api.c +++ linux-5.19.0/net/sched/cls_api.c @@ -2136,6 +2136,7 @@ } if (chain->tmplt_ops && chain->tmplt_ops != tp->ops) { + tfilter_put(tp, fh); NL_SET_ERR_MSG(extack, "Chain template is set to a different filter kind"); err = -EINVAL; goto errout; --- linux-5.19.0.orig/net/sched/cls_route.c +++ linux-5.19.0/net/sched/cls_route.c @@ -424,6 +424,11 @@ return -EINVAL; } + if (!nhandle) { + NL_SET_ERR_MSG(extack, "Replacing with handle of 0 is invalid"); + return -EINVAL; + } + h1 = to_hash(nhandle); b = rtnl_dereference(head->table[h1]); if (!b) { @@ -477,6 +482,11 @@ int err; bool new = true; + if (!handle) { + NL_SET_ERR_MSG(extack, "Creating with handle of 0 is invalid"); + return -EINVAL; + } + if (opt == NULL) return handle ? -EINVAL : 0; @@ -526,7 +536,7 @@ rcu_assign_pointer(f->next, f1); rcu_assign_pointer(*fp, f); - if (fold && fold->handle && f->handle != fold->handle) { + if (fold) { th = to_hash(fold->handle); h = from_hash(fold->handle >> 16); b = rtnl_dereference(head->table[th]); --- linux-5.19.0.orig/net/sched/cls_u32.c +++ linux-5.19.0/net/sched/cls_u32.c @@ -1040,7 +1040,11 @@ } #endif - memcpy(&n->sel, s, sel_size); + unsafe_memcpy(&n->sel, s, sel_size, + /* A composite flex-array structure destination, + * which was correctly sized with struct_size(), + * bounds-checked against nla_len(), and allocated + * above. */); RCU_INIT_POINTER(n->ht_up, ht); n->handle = handle; n->fshift = s->hmask ? ffs(ntohl(s->hmask)) - 1 : 0; --- linux-5.19.0.orig/net/sched/ematch.c +++ linux-5.19.0/net/sched/ematch.c @@ -255,6 +255,8 @@ * the value carried. */ if (em_hdr->flags & TCF_EM_SIMPLE) { + if (em->ops->datalen > 0) + goto errout; if (data_len < sizeof(u32)) goto errout; em->data = *(u32 *) data; --- linux-5.19.0.orig/net/sched/sch_api.c +++ linux-5.19.0/net/sched/sch_api.c @@ -1081,12 +1081,13 @@ skip: if (!ingress) { - notify_and_destroy(net, skb, n, classid, - rtnl_dereference(dev->qdisc), new); + old = rtnl_dereference(dev->qdisc); if (new && !new->ops->attach) qdisc_refcount_inc(new); rcu_assign_pointer(dev->qdisc, new ? : &noop_qdisc); + notify_and_destroy(net, skb, n, classid, old, new); + if (new && new->ops->attach) new->ops->attach(new); } else { @@ -1113,6 +1114,11 @@ return -ENOENT; } + if (new && new->ops == &noqueue_qdisc_ops) { + NL_SET_ERR_MSG(extack, "Cannot assign noqueue to a class"); + return -EINVAL; + } + err = cops->graft(parent, cl, new, &old, extack); if (err) return err; --- linux-5.19.0.orig/net/sched/sch_atm.c +++ linux-5.19.0/net/sched/sch_atm.c @@ -577,7 +577,6 @@ pr_debug("atm_tc_reset(sch %p,[qdisc %p])\n", sch, p); list_for_each_entry(flow, &p->flows, list) qdisc_reset(flow->q); - sch->q.qlen = 0; } static void atm_tc_destroy(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_cake.c +++ linux-5.19.0/net/sched/sch_cake.c @@ -2224,8 +2224,12 @@ static void cake_reset(struct Qdisc *sch) { + struct cake_sched_data *q = qdisc_priv(sch); u32 c; + if (!q->tins) + return; + for (c = 0; c < CAKE_MAX_TINS; c++) cake_clear_tin(sch, c); } --- linux-5.19.0.orig/net/sched/sch_cbq.c +++ linux-5.19.0/net/sched/sch_cbq.c @@ -1052,7 +1052,6 @@ cl->cpriority = cl->priority; } } - sch->q.qlen = 0; } --- linux-5.19.0.orig/net/sched/sch_choke.c +++ linux-5.19.0/net/sched/sch_choke.c @@ -315,8 +315,6 @@ rtnl_qdisc_drop(skb, sch); } - sch->q.qlen = 0; - sch->qstats.backlog = 0; if (q->tab) memset(q->tab, 0, (q->tab_mask + 1) * sizeof(struct sk_buff *)); q->head = q->tail = 0; --- linux-5.19.0.orig/net/sched/sch_drr.c +++ linux-5.19.0/net/sched/sch_drr.c @@ -441,8 +441,6 @@ qdisc_reset(cl->qdisc); } } - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void drr_destroy_qdisc(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_dsmark.c +++ linux-5.19.0/net/sched/sch_dsmark.c @@ -409,8 +409,6 @@ pr_debug("%s(sch %p,[qdisc %p])\n", __func__, sch, p); if (p->q) qdisc_reset(p->q); - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void dsmark_destroy(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_etf.c +++ linux-5.19.0/net/sched/sch_etf.c @@ -445,9 +445,6 @@ timesortedlist_clear(sch); __qdisc_reset_queue(&sch->q); - sch->qstats.backlog = 0; - sch->q.qlen = 0; - q->last = 0; } --- linux-5.19.0.orig/net/sched/sch_ets.c +++ linux-5.19.0/net/sched/sch_ets.c @@ -727,8 +727,6 @@ } for (band = 0; band < q->nbands; band++) qdisc_reset(q->classes[band].qdisc); - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void ets_qdisc_destroy(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_fq_codel.c +++ linux-5.19.0/net/sched/sch_fq_codel.c @@ -347,8 +347,6 @@ codel_vars_init(&flow->cvars); } memset(q->backlogs, 0, q->flows_cnt * sizeof(u32)); - sch->q.qlen = 0; - sch->qstats.backlog = 0; q->memory_usage = 0; } --- linux-5.19.0.orig/net/sched/sch_fq_pie.c +++ linux-5.19.0/net/sched/sch_fq_pie.c @@ -521,9 +521,6 @@ INIT_LIST_HEAD(&flow->flowchain); pie_vars_init(&flow->vars); } - - sch->q.qlen = 0; - sch->qstats.backlog = 0; } static void fq_pie_destroy(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_generic.c +++ linux-5.19.0/net/sched/sch_generic.c @@ -409,7 +409,7 @@ void __qdisc_run(struct Qdisc *q) { - int quota = dev_tx_weight; + int quota = READ_ONCE(dev_tx_weight); int packets; while (qdisc_restart(q, &packets)) { @@ -1125,6 +1125,21 @@ } EXPORT_SYMBOL(dev_graft_qdisc); +static void shutdown_scheduler_queue(struct net_device *dev, + struct netdev_queue *dev_queue, + void *_qdisc_default) +{ + struct Qdisc *qdisc = dev_queue->qdisc_sleeping; + struct Qdisc *qdisc_default = _qdisc_default; + + if (qdisc) { + rcu_assign_pointer(dev_queue->qdisc, qdisc_default); + dev_queue->qdisc_sleeping = qdisc_default; + + qdisc_put(qdisc); + } +} + static void attach_one_default_qdisc(struct net_device *dev, struct netdev_queue *dev_queue, void *_unused) @@ -1172,6 +1187,7 @@ if (qdisc == &noop_qdisc) { netdev_warn(dev, "default qdisc (%s) fail, fallback to %s\n", default_qdisc_ops->id, noqueue_qdisc_ops.id); + netdev_for_each_tx_queue(dev, shutdown_scheduler_queue, &noop_qdisc); dev->priv_flags |= IFF_NO_QUEUE; netdev_for_each_tx_queue(dev, attach_one_default_qdisc, NULL); qdisc = txq->qdisc_sleeping; @@ -1450,21 +1466,6 @@ timer_setup(&dev->watchdog_timer, dev_watchdog, 0); } -static void shutdown_scheduler_queue(struct net_device *dev, - struct netdev_queue *dev_queue, - void *_qdisc_default) -{ - struct Qdisc *qdisc = dev_queue->qdisc_sleeping; - struct Qdisc *qdisc_default = _qdisc_default; - - if (qdisc) { - rcu_assign_pointer(dev_queue->qdisc, qdisc_default); - dev_queue->qdisc_sleeping = qdisc_default; - - qdisc_put(qdisc); - } -} - void dev_shutdown(struct net_device *dev) { netdev_for_each_tx_queue(dev, shutdown_scheduler_queue, &noop_qdisc); --- linux-5.19.0.orig/net/sched/sch_hfsc.c +++ linux-5.19.0/net/sched/sch_hfsc.c @@ -1484,8 +1484,6 @@ } q->eligible = RB_ROOT; qdisc_watchdog_cancel(&q->watchdog); - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void --- linux-5.19.0.orig/net/sched/sch_htb.c +++ linux-5.19.0/net/sched/sch_htb.c @@ -1008,8 +1008,6 @@ } qdisc_watchdog_cancel(&q->watchdog); __qdisc_reset_queue(&q->direct_queue); - sch->q.qlen = 0; - sch->qstats.backlog = 0; memset(q->hlevel, 0, sizeof(q->hlevel)); memset(q->row_mask, 0, sizeof(q->row_mask)); } --- linux-5.19.0.orig/net/sched/sch_multiq.c +++ linux-5.19.0/net/sched/sch_multiq.c @@ -152,7 +152,6 @@ for (band = 0; band < q->bands; band++) qdisc_reset(q->queues[band]); - sch->q.qlen = 0; q->curband = 0; } --- linux-5.19.0.orig/net/sched/sch_prio.c +++ linux-5.19.0/net/sched/sch_prio.c @@ -135,8 +135,6 @@ for (prio = 0; prio < q->bands; prio++) qdisc_reset(q->queues[prio]); - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static int prio_offload(struct Qdisc *sch, struct tc_prio_qopt *qopt) --- linux-5.19.0.orig/net/sched/sch_qfq.c +++ linux-5.19.0/net/sched/sch_qfq.c @@ -1458,8 +1458,6 @@ qdisc_reset(cl->qdisc); } } - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void qfq_destroy_qdisc(struct Qdisc *sch) --- linux-5.19.0.orig/net/sched/sch_red.c +++ linux-5.19.0/net/sched/sch_red.c @@ -72,6 +72,7 @@ { struct red_sched_data *q = qdisc_priv(sch); struct Qdisc *child = q->qdisc; + unsigned int len; int ret; q->vars.qavg = red_calc_qavg(&q->parms, @@ -126,9 +127,10 @@ break; } + len = qdisc_pkt_len(skb); ret = qdisc_enqueue(skb, child, to_free); if (likely(ret == NET_XMIT_SUCCESS)) { - qdisc_qstats_backlog_inc(sch, skb); + sch->qstats.backlog += len; sch->q.qlen++; } else if (net_xmit_drop_count(ret)) { q->stats.pdrop++; @@ -176,8 +178,6 @@ struct red_sched_data *q = qdisc_priv(sch); qdisc_reset(q->qdisc); - sch->qstats.backlog = 0; - sch->q.qlen = 0; red_restart(&q->vars); } --- linux-5.19.0.orig/net/sched/sch_sfb.c +++ linux-5.19.0/net/sched/sch_sfb.c @@ -135,15 +135,15 @@ } } -static void increment_qlen(const struct sk_buff *skb, struct sfb_sched_data *q) +static void increment_qlen(const struct sfb_skb_cb *cb, struct sfb_sched_data *q) { u32 sfbhash; - sfbhash = sfb_hash(skb, 0); + sfbhash = cb->hashes[0]; if (sfbhash) increment_one_qlen(sfbhash, 0, q); - sfbhash = sfb_hash(skb, 1); + sfbhash = cb->hashes[1]; if (sfbhash) increment_one_qlen(sfbhash, 1, q); } @@ -281,8 +281,10 @@ { struct sfb_sched_data *q = qdisc_priv(sch); + unsigned int len = qdisc_pkt_len(skb); struct Qdisc *child = q->qdisc; struct tcf_proto *fl; + struct sfb_skb_cb cb; int i; u32 p_min = ~0; u32 minqlen = ~0; @@ -399,11 +401,12 @@ } enqueue: + memcpy(&cb, sfb_skb_cb(skb), sizeof(cb)); ret = qdisc_enqueue(skb, child, to_free); if (likely(ret == NET_XMIT_SUCCESS)) { - qdisc_qstats_backlog_inc(sch, skb); + sch->qstats.backlog += len; sch->q.qlen++; - increment_qlen(skb, q); + increment_qlen(&cb, q); } else if (net_xmit_drop_count(ret)) { q->stats.childdrop++; qdisc_qstats_drop(sch); @@ -452,9 +455,8 @@ { struct sfb_sched_data *q = qdisc_priv(sch); - qdisc_reset(q->qdisc); - sch->qstats.backlog = 0; - sch->q.qlen = 0; + if (likely(q->qdisc)) + qdisc_reset(q->qdisc); q->slot = 0; q->double_buffering = false; sfb_zero_all_buckets(q); --- linux-5.19.0.orig/net/sched/sch_skbprio.c +++ linux-5.19.0/net/sched/sch_skbprio.c @@ -213,9 +213,6 @@ struct skbprio_sched_data *q = qdisc_priv(sch); int prio; - sch->qstats.backlog = 0; - sch->q.qlen = 0; - for (prio = 0; prio < SKBPRIO_MAX_PRIORITY; prio++) __skb_queue_purge(&q->qdiscs[prio]); --- linux-5.19.0.orig/net/sched/sch_taprio.c +++ linux-5.19.0/net/sched/sch_taprio.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -66,6 +67,7 @@ u32 flags; enum tk_offsets tk_offset; int clockid; + bool offloaded; atomic64_t picos_per_byte; /* Using picoseconds because for 10Gbps+ * speeds it's sub-nanoseconds per byte */ @@ -176,7 +178,7 @@ static int length_to_duration(struct taprio_sched *q, int len) { - return div_u64(len * atomic64_read(&q->picos_per_byte), 1000); + return div_u64(len * atomic64_read(&q->picos_per_byte), PSEC_PER_NSEC); } /* Returns the entry corresponding to next available interval. If @@ -551,7 +553,7 @@ static void taprio_set_budget(struct taprio_sched *q, struct sched_entry *entry) { atomic_set(&entry->budget, - div64_u64((u64)entry->interval * 1000, + div64_u64((u64)entry->interval * PSEC_PER_NSEC, atomic64_read(&q->picos_per_byte))); } @@ -1278,6 +1280,8 @@ goto done; } + q->offloaded = true; + done: taprio_offload_free(offload); @@ -1292,12 +1296,9 @@ struct tc_taprio_qopt_offload *offload; int err; - if (!FULL_OFFLOAD_IS_ENABLED(q->flags)) + if (!q->offloaded) return 0; - if (!ops->ndo_setup_tc) - return -EOPNOTSUPP; - offload = taprio_offload_alloc(0); if (!offload) { NL_SET_ERR_MSG(extack, @@ -1313,6 +1314,8 @@ goto out; } + q->offloaded = false; + out: taprio_offload_free(offload); @@ -1635,8 +1638,6 @@ if (q->qdiscs[i]) qdisc_reset(q->qdiscs[i]); } - sch->qstats.backlog = 0; - sch->q.qlen = 0; } static void taprio_destroy(struct Qdisc *sch) @@ -1948,12 +1949,14 @@ static struct Qdisc *taprio_leaf(struct Qdisc *sch, unsigned long cl) { - struct netdev_queue *dev_queue = taprio_queue_get(sch, cl); + struct taprio_sched *q = qdisc_priv(sch); + struct net_device *dev = qdisc_dev(sch); + unsigned int ntx = cl - 1; - if (!dev_queue) + if (ntx >= dev->num_tx_queues) return NULL; - return dev_queue->qdisc_sleeping; + return q->qdiscs[ntx]; } static unsigned long taprio_find(struct Qdisc *sch, u32 classid) --- linux-5.19.0.orig/net/sched/sch_tbf.c +++ linux-5.19.0/net/sched/sch_tbf.c @@ -330,8 +330,6 @@ struct tbf_sched_data *q = qdisc_priv(sch); qdisc_reset(q->qdisc); - sch->qstats.backlog = 0; - sch->q.qlen = 0; q->t_c = ktime_get_ns(); q->tokens = q->buffer; q->ptokens = q->mtu; @@ -356,6 +354,7 @@ struct nlattr *tb[TCA_TBF_MAX + 1]; struct tc_tbf_qopt *qopt; struct Qdisc *child = NULL; + struct Qdisc *old = NULL; struct psched_ratecfg rate; struct psched_ratecfg peak; u64 max_size; @@ -447,7 +446,7 @@ sch_tree_lock(sch); if (child) { qdisc_tree_flush_backlog(q->qdisc); - qdisc_put(q->qdisc); + old = q->qdisc; q->qdisc = child; } q->limit = qopt->limit; @@ -467,6 +466,7 @@ memcpy(&q->peak, &peak, sizeof(struct psched_ratecfg)); sch_tree_unlock(sch); + qdisc_put(old); err = 0; tbf_offload_change(sch); --- linux-5.19.0.orig/net/sched/sch_teql.c +++ linux-5.19.0/net/sched/sch_teql.c @@ -124,7 +124,6 @@ struct teql_sched_data *dat = qdisc_priv(sch); skb_queue_purge(&dat->q); - sch->q.qlen = 0; } static void --- linux-5.19.0.orig/net/sctp/auth.c +++ linux-5.19.0/net/sctp/auth.c @@ -863,12 +863,17 @@ } list_del_init(&shkey->key_list); - sctp_auth_shkey_release(shkey); list_add(&cur_key->key_list, sh_keys); - if (asoc && asoc->active_key_id == auth_key->sca_keynumber) - sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL); + if (asoc && asoc->active_key_id == auth_key->sca_keynumber && + sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL)) { + list_del_init(&cur_key->key_list); + sctp_auth_shkey_release(cur_key); + list_add(&shkey->key_list, sh_keys); + return -ENOMEM; + } + sctp_auth_shkey_release(shkey); return 0; } @@ -902,8 +907,13 @@ return -EINVAL; if (asoc) { + __u16 active_key_id = asoc->active_key_id; + asoc->active_key_id = key_id; - sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL); + if (sctp_auth_asoc_init_active_key(asoc, GFP_KERNEL)) { + asoc->active_key_id = active_key_id; + return -ENOMEM; + } } else ep->active_key_id = key_id; --- linux-5.19.0.orig/net/sctp/outqueue.c +++ linux-5.19.0/net/sctp/outqueue.c @@ -384,6 +384,7 @@ { struct sctp_outq *q = &asoc->outqueue; struct sctp_chunk *chk, *temp; + struct sctp_stream_out *sout; q->sched->unsched_all(&asoc->stream); @@ -398,12 +399,14 @@ sctp_sched_dequeue_common(q, chk); asoc->sent_cnt_removable--; asoc->abandoned_unsent[SCTP_PR_INDEX(PRIO)]++; - if (chk->sinfo.sinfo_stream < asoc->stream.outcnt) { - struct sctp_stream_out *streamout = - SCTP_SO(&asoc->stream, chk->sinfo.sinfo_stream); - streamout->ext->abandoned_unsent[SCTP_PR_INDEX(PRIO)]++; - } + sout = SCTP_SO(&asoc->stream, chk->sinfo.sinfo_stream); + sout->ext->abandoned_unsent[SCTP_PR_INDEX(PRIO)]++; + + /* clear out_curr if all frag chunks are pruned */ + if (asoc->stream.out_curr == sout && + list_is_last(&chk->frag_list, &chk->msg->chunks)) + asoc->stream.out_curr = NULL; msg_len -= chk->skb->truesize + sizeof(struct sctp_chunk); sctp_chunk_free(chk); --- linux-5.19.0.orig/net/sctp/stream.c +++ linux-5.19.0/net/sctp/stream.c @@ -52,6 +52,19 @@ } } +static void sctp_stream_free_ext(struct sctp_stream *stream, __u16 sid) +{ + struct sctp_sched_ops *sched; + + if (!SCTP_SO(stream, sid)->ext) + return; + + sched = sctp_sched_ops_from_stream(stream); + sched->free_sid(stream, sid); + kfree(SCTP_SO(stream, sid)->ext); + SCTP_SO(stream, sid)->ext = NULL; +} + /* Migrates chunks from stream queues to new stream queues if needed, * but not across associations. Also, removes those chunks to streams * higher than the new max. @@ -70,16 +83,14 @@ * sctp_stream_update will swap ->out pointers. */ for (i = 0; i < outcnt; i++) { - kfree(SCTP_SO(new, i)->ext); + sctp_stream_free_ext(new, i); SCTP_SO(new, i)->ext = SCTP_SO(stream, i)->ext; SCTP_SO(stream, i)->ext = NULL; } } - for (i = outcnt; i < stream->outcnt; i++) { - kfree(SCTP_SO(stream, i)->ext); - SCTP_SO(stream, i)->ext = NULL; - } + for (i = outcnt; i < stream->outcnt; i++) + sctp_stream_free_ext(stream, i); } static int sctp_stream_alloc_out(struct sctp_stream *stream, __u16 outcnt, @@ -174,9 +185,9 @@ struct sctp_sched_ops *sched = sctp_sched_ops_from_stream(stream); int i; - sched->free(stream); + sched->unsched_all(stream); for (i = 0; i < stream->outcnt; i++) - kfree(SCTP_SO(stream, i)->ext); + sctp_stream_free_ext(stream, i); genradix_free(&stream->out); genradix_free(&stream->in); } --- linux-5.19.0.orig/net/sctp/stream_sched.c +++ linux-5.19.0/net/sctp/stream_sched.c @@ -46,6 +46,10 @@ return 0; } +static void sctp_sched_fcfs_free_sid(struct sctp_stream *stream, __u16 sid) +{ +} + static void sctp_sched_fcfs_free(struct sctp_stream *stream) { } @@ -96,6 +100,7 @@ .get = sctp_sched_fcfs_get, .init = sctp_sched_fcfs_init, .init_sid = sctp_sched_fcfs_init_sid, + .free_sid = sctp_sched_fcfs_free_sid, .free = sctp_sched_fcfs_free, .enqueue = sctp_sched_fcfs_enqueue, .dequeue = sctp_sched_fcfs_dequeue, --- linux-5.19.0.orig/net/sctp/stream_sched_prio.c +++ linux-5.19.0/net/sctp/stream_sched_prio.c @@ -204,6 +204,24 @@ return sctp_sched_prio_set(stream, sid, 0, gfp); } +static void sctp_sched_prio_free_sid(struct sctp_stream *stream, __u16 sid) +{ + struct sctp_stream_priorities *prio = SCTP_SO(stream, sid)->ext->prio_head; + int i; + + if (!prio) + return; + + SCTP_SO(stream, sid)->ext->prio_head = NULL; + for (i = 0; i < stream->outcnt; i++) { + if (SCTP_SO(stream, i)->ext && + SCTP_SO(stream, i)->ext->prio_head == prio) + return; + } + + kfree(prio); +} + static void sctp_sched_prio_free(struct sctp_stream *stream) { struct sctp_stream_priorities *prio, *n; @@ -323,6 +341,7 @@ .get = sctp_sched_prio_get, .init = sctp_sched_prio_init, .init_sid = sctp_sched_prio_init_sid, + .free_sid = sctp_sched_prio_free_sid, .free = sctp_sched_prio_free, .enqueue = sctp_sched_prio_enqueue, .dequeue = sctp_sched_prio_dequeue, --- linux-5.19.0.orig/net/sctp/stream_sched_rr.c +++ linux-5.19.0/net/sctp/stream_sched_rr.c @@ -90,6 +90,10 @@ return 0; } +static void sctp_sched_rr_free_sid(struct sctp_stream *stream, __u16 sid) +{ +} + static void sctp_sched_rr_free(struct sctp_stream *stream) { sctp_sched_rr_unsched_all(stream); @@ -177,6 +181,7 @@ .get = sctp_sched_rr_get, .init = sctp_sched_rr_init, .init_sid = sctp_sched_rr_init_sid, + .free_sid = sctp_sched_rr_free_sid, .free = sctp_sched_rr_free, .enqueue = sctp_sched_rr_enqueue, .dequeue = sctp_sched_rr_dequeue, --- linux-5.19.0.orig/net/sctp/sysctl.c +++ linux-5.19.0/net/sctp/sysctl.c @@ -84,17 +84,18 @@ { /* sentinel */ } }; +/* The following index defines are used in sctp_sysctl_net_register(). + * If you add new items to the sctp_net_table, please ensure that + * the index values of these defines hold the same meaning indicated by + * their macro names when they appear in sctp_net_table. + */ +#define SCTP_RTO_MIN_IDX 0 +#define SCTP_RTO_MAX_IDX 1 +#define SCTP_PF_RETRANS_IDX 2 +#define SCTP_PS_RETRANS_IDX 3 + static struct ctl_table sctp_net_table[] = { - { - .procname = "rto_initial", - .data = &init_net.sctp.rto_initial, - .maxlen = sizeof(unsigned int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = SYSCTL_ONE, - .extra2 = &timer_max - }, - { + [SCTP_RTO_MIN_IDX] = { .procname = "rto_min", .data = &init_net.sctp.rto_min, .maxlen = sizeof(unsigned int), @@ -103,7 +104,7 @@ .extra1 = SYSCTL_ONE, .extra2 = &init_net.sctp.rto_max }, - { + [SCTP_RTO_MAX_IDX] = { .procname = "rto_max", .data = &init_net.sctp.rto_max, .maxlen = sizeof(unsigned int), @@ -112,6 +113,33 @@ .extra1 = &init_net.sctp.rto_min, .extra2 = &timer_max }, + [SCTP_PF_RETRANS_IDX] = { + .procname = "pf_retrans", + .data = &init_net.sctp.pf_retrans, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ZERO, + .extra2 = &init_net.sctp.ps_retrans, + }, + [SCTP_PS_RETRANS_IDX] = { + .procname = "ps_retrans", + .data = &init_net.sctp.ps_retrans, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &init_net.sctp.pf_retrans, + .extra2 = &ps_retrans_max, + }, + { + .procname = "rto_initial", + .data = &init_net.sctp.rto_initial, + .maxlen = sizeof(unsigned int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = SYSCTL_ONE, + .extra2 = &timer_max + }, { .procname = "rto_alpha_exp_divisor", .data = &init_net.sctp.rto_alpha, @@ -208,24 +236,6 @@ .extra2 = SYSCTL_INT_MAX, }, { - .procname = "pf_retrans", - .data = &init_net.sctp.pf_retrans, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = SYSCTL_ZERO, - .extra2 = &init_net.sctp.ps_retrans, - }, - { - .procname = "ps_retrans", - .data = &init_net.sctp.ps_retrans, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &init_net.sctp.pf_retrans, - .extra2 = &ps_retrans_max, - }, - { .procname = "sndbuf_policy", .data = &init_net.sctp.sndbuf_policy, .maxlen = sizeof(int), @@ -586,6 +596,11 @@ for (i = 0; table[i].data; i++) table[i].data += (char *)(&net->sctp) - (char *)&init_net.sctp; + table[SCTP_RTO_MIN_IDX].extra2 = &net->sctp.rto_max; + table[SCTP_RTO_MAX_IDX].extra1 = &net->sctp.rto_min; + table[SCTP_PF_RETRANS_IDX].extra2 = &net->sctp.ps_retrans; + table[SCTP_PS_RETRANS_IDX].extra1 = &net->sctp.pf_retrans; + net->sctp.sysctl_header = register_net_sysctl(net, "net/sctp", table); if (net->sctp.sysctl_header == NULL) { kfree(table); --- linux-5.19.0.orig/net/smc/af_smc.c +++ linux-5.19.0/net/smc/af_smc.c @@ -1812,7 +1812,6 @@ { struct sock *newsmcsk = &new_smc->sk; - sk_refcnt_debug_inc(newsmcsk); if (newsmcsk->sk_state == SMC_INIT) newsmcsk->sk_state = SMC_ACTIVE; @@ -3333,14 +3332,14 @@ rc = register_pernet_subsys(&smc_net_stat_ops); if (rc) - return rc; + goto out_pernet_subsys; smc_ism_init(); smc_clc_init(); rc = smc_nl_init(); if (rc) - goto out_pernet_subsys; + goto out_pernet_subsys_stat; rc = smc_pnet_init(); if (rc) @@ -3433,6 +3432,8 @@ smc_pnet_exit(); out_nl: smc_nl_exit(); +out_pernet_subsys_stat: + unregister_pernet_subsys(&smc_net_stat_ops); out_pernet_subsys: unregister_pernet_subsys(&smc_net_ops); --- linux-5.19.0.orig/net/smc/smc_core.c +++ linux-5.19.0/net/smc/smc_core.c @@ -755,6 +755,7 @@ lnk->lgr = lgr; smc_lgr_hold(lgr); /* lgr_put in smcr_link_clear() */ lnk->link_idx = link_idx; + lnk->wr_rx_id_compl = 0; smc_ibdev_cnt_inc(lnk); smcr_copy_dev_info_to_link(lnk); atomic_set(&lnk->conn_cnt, 0); @@ -893,7 +894,8 @@ } memcpy(lgr->pnet_id, ibdev->pnetid[ibport - 1], SMC_MAX_PNETID_LEN); - if (smc_wr_alloc_lgr_mem(lgr)) + rc = smc_wr_alloc_lgr_mem(lgr); + if (rc) goto free_wq; smc_llc_lgr_init(lgr, smc); @@ -2147,7 +2149,7 @@ static int smcr_buf_map_usable_links(struct smc_link_group *lgr, struct smc_buf_desc *buf_desc, bool is_rmb) { - int i, rc = 0; + int i, rc = 0, cnt = 0; /* protect against parallel link reconfiguration */ mutex_lock(&lgr->llc_conf_mutex); @@ -2160,9 +2162,12 @@ rc = -ENOMEM; goto out; } + cnt++; } out: mutex_unlock(&lgr->llc_conf_mutex); + if (!rc && !cnt) + rc = -EINVAL; return rc; } --- linux-5.19.0.orig/net/smc/smc_core.h +++ linux-5.19.0/net/smc/smc_core.h @@ -115,8 +115,10 @@ dma_addr_t wr_rx_dma_addr; /* DMA address of wr_rx_bufs */ dma_addr_t wr_rx_v2_dma_addr; /* DMA address of v2 rx buf*/ u64 wr_rx_id; /* seq # of last recv WR */ + u64 wr_rx_id_compl; /* seq # of last completed WR */ u32 wr_rx_cnt; /* number of WR recv buffers */ unsigned long wr_rx_tstamp; /* jiffies when last buf rx */ + wait_queue_head_t wr_rx_empty_wait; /* wait for RQ empty */ struct ib_reg_wr wr_reg; /* WR register memory region */ wait_queue_head_t wr_reg_wait; /* wait for wr_reg result */ --- linux-5.19.0.orig/net/smc/smc_wr.c +++ linux-5.19.0/net/smc/smc_wr.c @@ -454,6 +454,7 @@ for (i = 0; i < num; i++) { link = wc[i].qp->qp_context; + link->wr_rx_id_compl = wc[i].wr_id; if (wc[i].status == IB_WC_SUCCESS) { link->wr_rx_tstamp = jiffies; smc_wr_rx_demultiplex(&wc[i]); @@ -465,6 +466,8 @@ case IB_WC_RNR_RETRY_EXC_ERR: case IB_WC_WR_FLUSH_ERR: smcr_link_down_cond_sched(link); + if (link->wr_rx_id_compl == link->wr_rx_id) + wake_up(&link->wr_rx_empty_wait); break; default: smc_wr_rx_post(link); /* refill WR RX */ @@ -639,6 +642,7 @@ return; ibdev = lnk->smcibdev->ibdev; + smc_wr_drain_cq(lnk); smc_wr_wakeup_reg_wait(lnk); smc_wr_wakeup_tx_wait(lnk); @@ -889,6 +893,7 @@ atomic_set(&lnk->wr_tx_refcnt, 0); init_waitqueue_head(&lnk->wr_reg_wait); atomic_set(&lnk->wr_reg_refcnt, 0); + init_waitqueue_head(&lnk->wr_rx_empty_wait); return rc; dma_unmap: --- linux-5.19.0.orig/net/smc/smc_wr.h +++ linux-5.19.0/net/smc/smc_wr.h @@ -73,6 +73,11 @@ wake_up_all(&link->wr_tx_wait); } +static inline void smc_wr_drain_cq(struct smc_link *lnk) +{ + wait_event(lnk->wr_rx_empty_wait, lnk->wr_rx_id_compl == lnk->wr_rx_id); +} + static inline void smc_wr_wakeup_tx_wait(struct smc_link *lnk) { wake_up_all(&lnk->wr_tx_wait); --- linux-5.19.0.orig/net/socket.c +++ linux-5.19.0/net/socket.c @@ -449,7 +449,9 @@ * * Returns the &file bound with @sock, implicitly storing it * in sock->file. If dname is %NULL, sets to "". - * On failure the return is a ERR pointer (see linux/err.h). + * + * On failure @sock is released, and an ERR pointer is returned. + * * This function uses GFP_KERNEL internally. */ @@ -1610,7 +1612,6 @@ struct file *__sys_socket_file(int family, int type, int protocol) { struct socket *sock; - struct file *file; int flags; sock = __sys_socket_create(family, type, protocol); @@ -1621,11 +1622,7 @@ if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK)) flags = (flags & ~SOCK_NONBLOCK) | O_NONBLOCK; - file = sock_alloc_file(sock, flags, NULL); - if (IS_ERR(file)) - sock_release(sock); - - return file; + return sock_alloc_file(sock, flags, NULL); } int __sys_socket(int family, int type, int protocol) @@ -1801,7 +1798,7 @@ sock = sockfd_lookup_light(fd, &err, &fput_needed); if (sock) { - somaxconn = sock_net(sock->sk)->core.sysctl_somaxconn; + somaxconn = READ_ONCE(sock_net(sock->sk)->core.sysctl_somaxconn); if ((unsigned int)backlog > somaxconn) backlog = somaxconn; --- linux-5.19.0.orig/net/sunrpc/auth.c +++ linux-5.19.0/net/sunrpc/auth.c @@ -445,7 +445,7 @@ * Enforce a 60 second garbage collection moratorium * Note that the cred_unused list must be time-ordered. */ - if (!time_in_range(cred->cr_expire, expired, jiffies)) + if (time_in_range(cred->cr_expire, expired, jiffies)) continue; if (!rpcauth_unhash_cred(cred)) continue; --- linux-5.19.0.orig/net/sunrpc/auth_gss/auth_gss.c +++ linux-5.19.0/net/sunrpc/auth_gss/auth_gss.c @@ -1992,7 +1992,7 @@ goto unwrap_failed; mic.len = len; mic.data = kmalloc(len, GFP_KERNEL); - if (!mic.data) + if (ZERO_OR_NULL_PTR(mic.data)) goto unwrap_failed; if (read_bytes_from_xdr_buf(rcv_buf, offset, mic.data, mic.len)) goto unwrap_failed; --- linux-5.19.0.orig/net/sunrpc/backchannel_rqst.c +++ linux-5.19.0/net/sunrpc/backchannel_rqst.c @@ -64,6 +64,17 @@ kfree(req); } +static void xprt_bc_reinit_xdr_buf(struct xdr_buf *buf) +{ + buf->head[0].iov_len = PAGE_SIZE; + buf->tail[0].iov_len = 0; + buf->pages = NULL; + buf->page_len = 0; + buf->flags = 0; + buf->len = 0; + buf->buflen = PAGE_SIZE; +} + static int xprt_alloc_xdr_buf(struct xdr_buf *buf, gfp_t gfp_flags) { struct page *page; @@ -292,6 +303,9 @@ */ spin_lock_bh(&xprt->bc_pa_lock); if (xprt_need_to_requeue(xprt)) { + xprt_bc_reinit_xdr_buf(&req->rq_snd_buf); + xprt_bc_reinit_xdr_buf(&req->rq_rcv_buf); + req->rq_rcv_buf.len = PAGE_SIZE; list_add_tail(&req->rq_bc_pa_list, &xprt->bc_pa_list); xprt->bc_alloc_count++; atomic_inc(&xprt->bc_slot_count); --- linux-5.19.0.orig/net/sunrpc/clnt.c +++ linux-5.19.0/net/sunrpc/clnt.c @@ -1377,7 +1377,7 @@ break; default: err = -EAFNOSUPPORT; - goto out; + goto out_release; } if (err < 0) { dprintk("RPC: can't bind UDP socket (%d)\n", err); @@ -1856,7 +1856,6 @@ req->rq_snd_buf.head[0].iov_len = 0; xdr_init_encode(&xdr, &req->rq_snd_buf, req->rq_snd_buf.head[0].iov_base, req); - xdr_free_bvec(&req->rq_snd_buf); if (rpc_encode_header(task, &xdr)) return; @@ -1889,7 +1888,7 @@ break; case -EKEYEXPIRED: if (!task->tk_cred_retry) { - rpc_exit(task, task->tk_status); + rpc_call_rpcerror(task, task->tk_status); } else { task->tk_action = call_refresh; task->tk_cred_retry--; @@ -2859,6 +2858,9 @@ task = rpc_call_null_helper(clnt, xprt, NULL, RPC_TASK_ASYNC, &rpc_cb_add_xprt_call_ops, data); + if (IS_ERR(task)) + return PTR_ERR(task); + data->xps->xps_nunique_destaddr_xprts++; rpc_put_task(task); success: --- linux-5.19.0.orig/net/sunrpc/sysfs.c +++ linux-5.19.0/net/sunrpc/sysfs.c @@ -291,8 +291,10 @@ int offline = 0, online = 0, remove = 0; struct rpc_xprt_switch *xps = rpc_sysfs_xprt_kobj_get_xprt_switch(kobj); - if (!xprt) - return 0; + if (!xprt || !xps) { + count = 0; + goto out_put; + } if (!strncmp(buf, "offline", 7)) offline = 1; @@ -534,13 +536,16 @@ struct net *net) { struct rpc_sysfs_client *rpc_client; + struct rpc_sysfs_xprt_switch *xswitch = + (struct rpc_sysfs_xprt_switch *)xprt_switch->xps_sysfs; + + if (!xswitch) + return; rpc_client = rpc_sysfs_client_alloc(rpc_sunrpc_client_kobj, net, clnt->cl_clid); if (rpc_client) { char name[] = "switch"; - struct rpc_sysfs_xprt_switch *xswitch = - (struct rpc_sysfs_xprt_switch *)xprt_switch->xps_sysfs; int ret; clnt->cl_sysfs = rpc_client; @@ -574,6 +579,8 @@ rpc_xprt_switch->xprt_switch = xprt_switch; rpc_xprt_switch->xprt = xprt; kobject_uevent(&rpc_xprt_switch->kobject, KOBJ_ADD); + } else { + xprt_switch->xps_sysfs = NULL; } } @@ -585,6 +592,9 @@ struct rpc_sysfs_xprt_switch *switch_obj = (struct rpc_sysfs_xprt_switch *)xprt_switch->xps_sysfs; + if (!switch_obj) + return; + rpc_xprt = rpc_sysfs_xprt_alloc(&switch_obj->kobject, xprt, gfp_flags); if (rpc_xprt) { xprt->xprt_sysfs = rpc_xprt; --- linux-5.19.0.orig/net/sunrpc/xprt.c +++ linux-5.19.0/net/sunrpc/xprt.c @@ -73,7 +73,7 @@ static __be32 xprt_alloc_xid(struct rpc_xprt *xprt); static void xprt_destroy(struct rpc_xprt *xprt); static void xprt_request_init(struct rpc_task *task); -static int xprt_request_prepare(struct rpc_rqst *req); +static int xprt_request_prepare(struct rpc_rqst *req, struct xdr_buf *buf); static DEFINE_SPINLOCK(xprt_list_lock); static LIST_HEAD(xprt_list); @@ -1149,7 +1149,7 @@ if (!xprt_request_need_enqueue_receive(task, req)) return 0; - ret = xprt_request_prepare(task->tk_rqstp); + ret = xprt_request_prepare(task->tk_rqstp, &req->rq_rcv_buf); if (ret) return ret; spin_lock(&xprt->queue_lock); @@ -1218,6 +1218,8 @@ xprt->stat.recvs++; + xdr_free_bvec(&req->rq_rcv_buf); + req->rq_private_buf.bvec = NULL; req->rq_private_buf.len = copied; /* Ensure all writes are done before we update */ /* req->rq_reply_bytes_recvd */ @@ -1336,8 +1338,14 @@ { struct rpc_rqst *pos, *req = task->tk_rqstp; struct rpc_xprt *xprt = req->rq_xprt; + int ret; if (xprt_request_need_enqueue_transmit(task, req)) { + ret = xprt_request_prepare(task->tk_rqstp, &req->rq_snd_buf); + if (ret) { + task->tk_status = ret; + return; + } req->rq_bytes_sent = 0; spin_lock(&xprt->queue_lock); /* @@ -1397,6 +1405,7 @@ } else list_del(&req->rq_xmit2); atomic_long_dec(&req->rq_xprt->xmit_queuelen); + xdr_free_bvec(&req->rq_snd_buf); } /** @@ -1433,8 +1442,6 @@ test_bit(RPC_TASK_NEED_RECV, &task->tk_runstate) || xprt_is_pinned_rqst(req)) { spin_lock(&xprt->queue_lock); - xprt_request_dequeue_transmit_locked(task); - xprt_request_dequeue_receive_locked(task); while (xprt_is_pinned_rqst(req)) { set_bit(RPC_TASK_MSG_PIN_WAIT, &task->tk_runstate); spin_unlock(&xprt->queue_lock); @@ -1442,25 +1449,29 @@ spin_lock(&xprt->queue_lock); clear_bit(RPC_TASK_MSG_PIN_WAIT, &task->tk_runstate); } + xprt_request_dequeue_transmit_locked(task); + xprt_request_dequeue_receive_locked(task); spin_unlock(&xprt->queue_lock); + xdr_free_bvec(&req->rq_rcv_buf); } } /** * xprt_request_prepare - prepare an encoded request for transport * @req: pointer to rpc_rqst + * @buf: pointer to send/rcv xdr_buf * * Calls into the transport layer to do whatever is needed to prepare * the request for transmission or receive. * Returns error, or zero. */ static int -xprt_request_prepare(struct rpc_rqst *req) +xprt_request_prepare(struct rpc_rqst *req, struct xdr_buf *buf) { struct rpc_xprt *xprt = req->rq_xprt; if (xprt->ops->prepare_request) - return xprt->ops->prepare_request(req); + return xprt->ops->prepare_request(req, buf); return 0; } @@ -1961,8 +1972,6 @@ spin_unlock(&xprt->transport_lock); if (req->rq_buffer) xprt->ops->buf_free(task); - xdr_free_bvec(&req->rq_rcv_buf); - xdr_free_bvec(&req->rq_snd_buf); if (req->rq_cred != NULL) put_rpccred(req->rq_cred); if (req->rq_release_snd_buf) --- linux-5.19.0.orig/net/sunrpc/xprtrdma/verbs.c +++ linux-5.19.0/net/sunrpc/xprtrdma/verbs.c @@ -834,7 +834,7 @@ return req; out3: - kfree(req->rl_sendbuf); + rpcrdma_regbuf_free(req->rl_sendbuf); out2: kfree(req); out1: --- linux-5.19.0.orig/net/sunrpc/xprtsock.c +++ linux-5.19.0/net/sunrpc/xprtsock.c @@ -822,17 +822,9 @@ return ret; } -static int -xs_stream_prepare_request(struct rpc_rqst *req) +static int xs_stream_prepare_request(struct rpc_rqst *req, struct xdr_buf *buf) { - gfp_t gfp = rpc_task_gfp_mask(); - int ret; - - ret = xdr_alloc_bvec(&req->rq_snd_buf, gfp); - if (ret < 0) - return ret; - xdr_free_bvec(&req->rq_rcv_buf); - return xdr_alloc_bvec(&req->rq_rcv_buf, gfp); + return xdr_alloc_bvec(buf, rpc_task_gfp_mask()); } /* --- linux-5.19.0.orig/net/tipc/crypto.c +++ linux-5.19.0/net/tipc/crypto.c @@ -1971,6 +1971,9 @@ /* Ok, everything's fine, try to synch own keys according to peers' */ tipc_crypto_key_synch(rx, *skb); + /* Re-fetch skb cb as skb might be changed in tipc_msg_validate */ + skb_cb = TIPC_SKB_CB(*skb); + /* Mark skb decrypted */ skb_cb->decrypted = 1; --- linux-5.19.0.orig/net/tipc/discover.c +++ linux-5.19.0/net/tipc/discover.c @@ -148,8 +148,8 @@ { struct net *net = d->net; struct tipc_net *tn = tipc_net(net); - bool trial = time_before(jiffies, tn->addr_trial_end); u32 self = tipc_own_addr(net); + bool trial = time_before(jiffies, tn->addr_trial_end) && !self; if (mtyp == DSC_TRIAL_FAIL_MSG) { if (!trial) @@ -211,7 +211,10 @@ u32 self; int err; - skb_linearize(skb); + if (skb_linearize(skb)) { + kfree_skb(skb); + return; + } hdr = buf_msg(skb); if (caps & TIPC_NODE_ID128) --- linux-5.19.0.orig/net/tipc/link.c +++ linux-5.19.0/net/tipc/link.c @@ -2224,7 +2224,9 @@ if (tipc_own_addr(l->net) > msg_prevnode(hdr)) l->net_plane = msg_net_plane(hdr); - skb_linearize(skb); + if (skb_linearize(skb)) + goto exit; + hdr = buf_msg(skb); data = msg_data(hdr); --- linux-5.19.0.orig/net/tipc/monitor.c +++ linux-5.19.0/net/tipc/monitor.c @@ -160,7 +160,7 @@ static int map_get(u64 up_map, int i) { - return (up_map & (1 << i)) >> i; + return (up_map & (1ULL << i)) >> i; } static struct tipc_peer *peer_prev(struct tipc_peer *peer) --- linux-5.19.0.orig/net/tipc/netlink_compat.c +++ linux-5.19.0/net/tipc/netlink_compat.c @@ -880,7 +880,7 @@ }; ntq = (struct tipc_name_table_query *)TLV_DATA(msg->req); - if (TLV_GET_DATA_LEN(msg->req) < sizeof(struct tipc_name_table_query)) + if (TLV_GET_DATA_LEN(msg->req) < (int)sizeof(struct tipc_name_table_query)) return -EINVAL; depth = ntohl(ntq->depth); --- linux-5.19.0.orig/net/tipc/node.c +++ linux-5.19.0/net/tipc/node.c @@ -1689,6 +1689,7 @@ struct tipc_node *n; struct sk_buff_head xmitq; bool node_up = false; + struct net *peer_net; int bearer_id; int rc; @@ -1705,18 +1706,23 @@ return -EHOSTUNREACH; } + rcu_read_lock(); tipc_node_read_lock(n); node_up = node_is_up(n); - if (node_up && n->peer_net && check_net(n->peer_net)) { + peer_net = n->peer_net; + tipc_node_read_unlock(n); + if (node_up && peer_net && check_net(peer_net)) { /* xmit inner linux container */ - tipc_lxc_xmit(n->peer_net, list); + tipc_lxc_xmit(peer_net, list); if (likely(skb_queue_empty(list))) { - tipc_node_read_unlock(n); + rcu_read_unlock(); tipc_node_put(n); return 0; } } + rcu_read_unlock(); + tipc_node_read_lock(n); bearer_id = n->active_links[selector & 1]; if (unlikely(bearer_id == INVALID_BEARER_ID)) { tipc_node_read_unlock(n); --- linux-5.19.0.orig/net/tipc/topsrv.c +++ linux-5.19.0/net/tipc/topsrv.c @@ -176,7 +176,7 @@ conn_put(con); } -static struct tipc_conn *tipc_conn_alloc(struct tipc_topsrv *s) +static struct tipc_conn *tipc_conn_alloc(struct tipc_topsrv *s, struct socket *sock) { struct tipc_conn *con; int ret; @@ -202,10 +202,12 @@ } con->conid = ret; s->idr_in_use++; - spin_unlock_bh(&s->idr_lock); set_bit(CF_CONNECTED, &con->flags); con->server = s; + con->sock = sock; + conn_get(con); + spin_unlock_bh(&s->idr_lock); return con; } @@ -450,17 +452,24 @@ static void tipc_topsrv_accept(struct work_struct *work) { struct tipc_topsrv *srv = container_of(work, struct tipc_topsrv, awork); - struct socket *lsock = srv->listener; - struct socket *newsock; + struct socket *newsock, *lsock; struct tipc_conn *con; struct sock *newsk; int ret; + spin_lock_bh(&srv->idr_lock); + if (!srv->listener) { + spin_unlock_bh(&srv->idr_lock); + return; + } + lsock = srv->listener; + spin_unlock_bh(&srv->idr_lock); + while (1) { ret = kernel_accept(lsock, &newsock, O_NONBLOCK); if (ret < 0) return; - con = tipc_conn_alloc(srv); + con = tipc_conn_alloc(srv, newsock); if (IS_ERR(con)) { ret = PTR_ERR(con); sock_release(newsock); @@ -472,11 +481,11 @@ newsk->sk_data_ready = tipc_conn_data_ready; newsk->sk_write_space = tipc_conn_write_space; newsk->sk_user_data = con; - con->sock = newsock; write_unlock_bh(&newsk->sk_callback_lock); /* Wake up receive process in case of 'SYN+' message */ newsk->sk_data_ready(newsk); + conn_put(con); } } @@ -489,7 +498,7 @@ read_lock_bh(&sk->sk_callback_lock); srv = sk->sk_user_data; - if (srv->listener) + if (srv) queue_work(srv->rcv_wq, &srv->awork); read_unlock_bh(&sk->sk_callback_lock); } @@ -568,19 +577,19 @@ sub.seq.upper = upper; sub.timeout = TIPC_WAIT_FOREVER; sub.filter = filter; - *(u32 *)&sub.usr_handle = port; + *(u64 *)&sub.usr_handle = (u64)port; - con = tipc_conn_alloc(tipc_topsrv(net)); + con = tipc_conn_alloc(tipc_topsrv(net), NULL); if (IS_ERR(con)) return false; *conid = con->conid; - con->sock = NULL; rc = tipc_conn_rcv_sub(tipc_topsrv(net), con, &sub); - if (rc >= 0) - return true; + if (rc) + conn_put(con); + conn_put(con); - return false; + return !rc; } void tipc_topsrv_kern_unsubscr(struct net *net, int conid) @@ -699,8 +708,9 @@ __module_get(lsock->sk->sk_prot_creator->owner); srv->listener = NULL; spin_unlock_bh(&srv->idr_lock); - sock_release(lsock); + tipc_topsrv_work_stop(srv); + sock_release(lsock); idr_destroy(&srv->conn_idr); kfree(srv); } --- linux-5.19.0.orig/net/tls/tls_sw.c +++ linux-5.19.0/net/tls/tls_sw.c @@ -801,7 +801,7 @@ struct sk_psock *psock; struct sock *sk_redir; struct tls_rec *rec; - bool enospc, policy; + bool enospc, policy, redir_ingress; int err = 0, send; u32 delta = 0; @@ -846,6 +846,7 @@ } break; case __SK_REDIRECT: + redir_ingress = psock->redir_ingress; sk_redir = psock->sk_redir; memcpy(&msg_redir, msg, sizeof(*msg)); if (msg->apply_bytes < send) @@ -855,7 +856,8 @@ sk_msg_return_zero(sk, msg, send); msg->sg.size -= send; release_sock(sk); - err = tcp_bpf_sendmsg_redir(sk_redir, &msg_redir, send, flags); + err = tcp_bpf_sendmsg_redir(sk_redir, redir_ingress, + &msg_redir, send, flags); lock_sock(sk); if (err < 0) { *copied -= sk_msg_free_nocharge(sk, &msg_redir); --- linux-5.19.0.orig/net/unix/af_unix.c +++ linux-5.19.0/net/unix/af_unix.c @@ -548,12 +548,6 @@ skb_queue_purge(&sk->sk_receive_queue); -#if IS_ENABLED(CONFIG_AF_UNIX_OOB) - if (u->oob_skb) { - kfree_skb(u->oob_skb); - u->oob_skb = NULL; - } -#endif WARN_ON(refcount_read(&sk->sk_wmem_alloc)); WARN_ON(!sk_unhashed(sk)); WARN_ON(sk->sk_socket); @@ -598,6 +592,13 @@ unix_state_unlock(sk); +#if IS_ENABLED(CONFIG_AF_UNIX_OOB) + if (u->oob_skb) { + kfree_skb(u->oob_skb); + u->oob_skb = NULL; + } +#endif + wake_up_interruptible_all(&u->peer_wait); if (skpair != NULL) { @@ -1951,13 +1952,20 @@ unix_state_lock(sk); err = 0; - if (unix_peer(sk) == other) { + if (sk->sk_type == SOCK_SEQPACKET) { + /* We are here only when racing with unix_release_sock() + * is clearing @other. Never change state to TCP_CLOSE + * unlike SOCK_DGRAM wants. + */ + unix_state_unlock(sk); + err = -EPIPE; + } else if (unix_peer(sk) == other) { unix_peer(sk) = NULL; unix_dgram_peer_wake_disconnect_wakeup(sk, other); + sk->sk_state = TCP_CLOSE; unix_state_unlock(sk); - sk->sk_state = TCP_CLOSE; unix_dgram_disconnected(sk, other); sock_put(other); err = -ECONNREFUSED; @@ -3683,6 +3691,7 @@ rc = proto_register(&unix_stream_proto, 1); if (rc != 0) { pr_crit("%s: Cannot create unix_sock SLAB cache!\n", __func__); + proto_unregister(&unix_dgram_proto); goto out; } --- linux-5.19.0.orig/net/unix/diag.c +++ linux-5.19.0/net/unix/diag.c @@ -114,14 +114,16 @@ return nla_put(nlskb, UNIX_DIAG_RQLEN, sizeof(rql), &rql); } -static int sk_diag_dump_uid(struct sock *sk, struct sk_buff *nlskb) +static int sk_diag_dump_uid(struct sock *sk, struct sk_buff *nlskb, + struct user_namespace *user_ns) { - uid_t uid = from_kuid_munged(sk_user_ns(nlskb->sk), sock_i_uid(sk)); + uid_t uid = from_kuid_munged(user_ns, sock_i_uid(sk)); return nla_put(nlskb, UNIX_DIAG_UID, sizeof(uid_t), &uid); } static int sk_diag_fill(struct sock *sk, struct sk_buff *skb, struct unix_diag_req *req, - u32 portid, u32 seq, u32 flags, int sk_ino) + struct user_namespace *user_ns, + u32 portid, u32 seq, u32 flags, int sk_ino) { struct nlmsghdr *nlh; struct unix_diag_msg *rep; @@ -167,7 +169,7 @@ goto out_nlmsg_trim; if ((req->udiag_show & UDIAG_SHOW_UID) && - sk_diag_dump_uid(sk, skb)) + sk_diag_dump_uid(sk, skb, user_ns)) goto out_nlmsg_trim; nlmsg_end(skb, nlh); @@ -179,7 +181,8 @@ } static int sk_diag_dump(struct sock *sk, struct sk_buff *skb, struct unix_diag_req *req, - u32 portid, u32 seq, u32 flags) + struct user_namespace *user_ns, + u32 portid, u32 seq, u32 flags) { int sk_ino; @@ -190,7 +193,7 @@ if (!sk_ino) return 0; - return sk_diag_fill(sk, skb, req, portid, seq, flags, sk_ino); + return sk_diag_fill(sk, skb, req, user_ns, portid, seq, flags, sk_ino); } static int unix_diag_dump(struct sk_buff *skb, struct netlink_callback *cb) @@ -218,7 +221,7 @@ goto next; if (!(req->udiag_states & (1 << sk->sk_state))) goto next; - if (sk_diag_dump(sk, skb, req, + if (sk_diag_dump(sk, skb, req, sk_user_ns(skb->sk), NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, NLM_F_MULTI) < 0) { @@ -286,7 +289,8 @@ if (!rep) goto out; - err = sk_diag_fill(sk, rep, req, NETLINK_CB(in_skb).portid, + err = sk_diag_fill(sk, rep, req, sk_user_ns(NETLINK_CB(in_skb).sk), + NETLINK_CB(in_skb).portid, nlh->nlmsg_seq, 0, req->udiag_ino); if (err < 0) { nlmsg_free(rep); --- linux-5.19.0.orig/net/unix/garbage.c +++ linux-5.19.0/net/unix/garbage.c @@ -204,6 +204,7 @@ /* The external entry point: unix_gc() */ void unix_gc(void) { + struct sk_buff *next_skb, *skb; struct unix_sock *u; struct unix_sock *next; struct sk_buff_head hitlist; @@ -297,11 +298,30 @@ spin_unlock(&unix_gc_lock); + /* We need io_uring to clean its registered files, ignore all io_uring + * originated skbs. It's fine as io_uring doesn't keep references to + * other io_uring instances and so killing all other files in the cycle + * will put all io_uring references forcing it to go through normal + * release.path eventually putting registered files. + */ + skb_queue_walk_safe(&hitlist, skb, next_skb) { + if (skb->scm_io_uring) { + __skb_unlink(skb, &hitlist); + skb_queue_tail(&skb->sk->sk_receive_queue, skb); + } + } + /* Here we are. Hitlist is filled. Die. */ __skb_queue_purge(&hitlist); spin_lock(&unix_gc_lock); + /* There could be io_uring registered files, just push them back to + * the inflight list + */ + list_for_each_entry_safe(u, next, &gc_candidates, link) + list_move_tail(&u->link, &gc_inflight_list); + /* All candidates should have been detached by now. */ BUG_ON(!list_empty(&gc_candidates)); --- linux-5.19.0.orig/net/unix/unix_bpf.c +++ linux-5.19.0/net/unix/unix_bpf.c @@ -145,12 +145,12 @@ if (restore) { sk->sk_write_space = psock->saved_write_space; - WRITE_ONCE(sk->sk_prot, psock->sk_proto); + sock_replace_proto(sk, psock->sk_proto); return 0; } unix_dgram_bpf_check_needs_rebuild(psock->sk_proto); - WRITE_ONCE(sk->sk_prot, &unix_dgram_bpf_prot); + sock_replace_proto(sk, &unix_dgram_bpf_prot); return 0; } @@ -158,12 +158,12 @@ { if (restore) { sk->sk_write_space = psock->saved_write_space; - WRITE_ONCE(sk->sk_prot, psock->sk_proto); + sock_replace_proto(sk, psock->sk_proto); return 0; } unix_stream_bpf_check_needs_rebuild(psock->sk_proto); - WRITE_ONCE(sk->sk_prot, &unix_stream_bpf_prot); + sock_replace_proto(sk, &unix_stream_bpf_prot); return 0; } --- linux-5.19.0.orig/net/vmw_vsock/af_vsock.c +++ linux-5.19.0/net/vmw_vsock/af_vsock.c @@ -1286,6 +1286,7 @@ if (sk->sk_state == TCP_SYN_SENT && (sk->sk_shutdown != SHUTDOWN_MASK)) { sk->sk_state = TCP_CLOSE; + sk->sk_socket->state = SS_UNCONNECTED; sk->sk_err = ETIMEDOUT; sk_error_report(sk); vsock_transport_cancel_pkt(vsk); @@ -1391,7 +1392,14 @@ * timeout fires. */ sock_hold(sk); - schedule_delayed_work(&vsk->connect_work, timeout); + + /* If the timeout function is already scheduled, + * reschedule it, then ungrab the socket refcount to + * keep it balanced. + */ + if (mod_delayed_work(system_wq, &vsk->connect_work, + timeout)) + sock_put(sk); /* Skip ahead to preserve error code set above. */ goto out_wait; @@ -1886,8 +1894,11 @@ err = 0; transport = vsk->transport; - while ((data = vsock_connectible_has_data(vsk)) == 0) { + while (1) { prepare_to_wait(sk_sleep(sk), wait, TASK_INTERRUPTIBLE); + data = vsock_connectible_has_data(vsk); + if (data != 0) + break; if (sk->sk_err != 0 || (sk->sk_shutdown & RCV_SHUTDOWN) || --- linux-5.19.0.orig/net/vmw_vsock/virtio_transport_common.c +++ linux-5.19.0/net/vmw_vsock/virtio_transport_common.c @@ -1342,7 +1342,7 @@ void virtio_transport_free_pkt(struct virtio_vsock_pkt *pkt) { - kfree(pkt->buf); + kvfree(pkt->buf); kfree(pkt); } EXPORT_SYMBOL_GPL(virtio_transport_free_pkt); --- linux-5.19.0.orig/net/vmw_vsock/vmci_transport.c +++ linux-5.19.0/net/vmw_vsock/vmci_transport.c @@ -1711,7 +1711,11 @@ if (!dg) return -ENOMEM; - memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len); + err = memcpy_from_msg(VMCI_DG_PAYLOAD(dg), msg, len); + if (err) { + kfree(dg); + return err; + } dg->dst = vmci_make_handle(remote_addr->svm_cid, remote_addr->svm_port); --- linux-5.19.0.orig/net/wireless/ap.c +++ linux-5.19.0/net/wireless/ap.c @@ -1,4 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 +/* + * Parts of this file are + * Copyright (C) 2022 Intel Corporation + */ #include #include #include @@ -7,8 +11,9 @@ #include "rdev-ops.h" -int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify) +static int ___cfg80211_stop_ap(struct cfg80211_registered_device *rdev, + struct net_device *dev, unsigned int link_id, + bool notify) { struct wireless_dev *wdev = dev->ieee80211_ptr; int err; @@ -22,15 +27,16 @@ dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) return -EOPNOTSUPP; - if (!wdev->beacon_interval) + if (!wdev->links[link_id].ap.beacon_interval) return -ENOENT; - err = rdev_stop_ap(rdev, dev); + err = rdev_stop_ap(rdev, dev, link_id); if (!err) { wdev->conn_owner_nlportid = 0; - wdev->beacon_interval = 0; - memset(&wdev->chandef, 0, sizeof(wdev->chandef)); - wdev->ssid_len = 0; + wdev->links[link_id].ap.beacon_interval = 0; + memset(&wdev->links[link_id].ap.chandef, 0, + sizeof(wdev->links[link_id].ap.chandef)); + wdev->u.ap.ssid_len = 0; rdev_set_qos_map(rdev, dev, NULL); if (notify) nl80211_send_ap_stopped(wdev); @@ -46,14 +52,36 @@ return err; } +int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev, + struct net_device *dev, int link_id, + bool notify) +{ + unsigned int link; + int ret = 0; + + if (link_id >= 0) + return ___cfg80211_stop_ap(rdev, dev, link_id, notify); + + for_each_valid_link(dev->ieee80211_ptr, link) { + int ret1 = ___cfg80211_stop_ap(rdev, dev, link, notify); + + if (ret1) + ret = ret1; + /* try the next one also if one errored */ + } + + return ret; +} + int cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify) + struct net_device *dev, int link_id, + bool notify) { struct wireless_dev *wdev = dev->ieee80211_ptr; int err; wdev_lock(wdev); - err = __cfg80211_stop_ap(rdev, dev, notify); + err = __cfg80211_stop_ap(rdev, dev, link_id, notify); wdev_unlock(wdev); return err; --- linux-5.19.0.orig/net/wireless/chan.c +++ linux-5.19.0/net/wireless/chan.c @@ -672,14 +672,21 @@ * range of chandef. */ bool cfg80211_is_sub_chan(struct cfg80211_chan_def *chandef, - struct ieee80211_channel *chan) + struct ieee80211_channel *chan, + bool primary_only) { int width; u32 freq; + if (!chandef->chan) + return false; + if (chandef->chan->center_freq == chan->center_freq) return true; + if (primary_only) + return false; + width = cfg80211_chandef_get_width(chandef); if (width <= 20) return false; @@ -704,23 +711,25 @@ bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev) { - bool active = false; + unsigned int link; ASSERT_WDEV_LOCK(wdev); - if (!wdev->chandef.chan) - return false; - switch (wdev->iftype) { case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: - active = wdev->beacon_interval != 0; + for_each_valid_link(wdev, link) { + if (wdev->links[link].ap.beacon_interval) + return true; + } break; case NL80211_IFTYPE_ADHOC: - active = wdev->ssid_len != 0; + if (wdev->u.ibss.ssid_len) + return true; break; case NL80211_IFTYPE_MESH_POINT: - active = wdev->mesh_id_len != 0; + if (wdev->u.mesh.id_len) + return true; break; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_OCB: @@ -737,7 +746,35 @@ WARN_ON(1); } - return active; + return false; +} + +bool cfg80211_wdev_on_sub_chan(struct wireless_dev *wdev, + struct ieee80211_channel *chan, + bool primary_only) +{ + unsigned int link; + + switch (wdev->iftype) { + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + for_each_valid_link(wdev, link) { + if (cfg80211_is_sub_chan(&wdev->links[link].ap.chandef, + chan, primary_only)) + return true; + } + break; + case NL80211_IFTYPE_ADHOC: + return cfg80211_is_sub_chan(&wdev->u.ibss.chandef, chan, + primary_only); + case NL80211_IFTYPE_MESH_POINT: + return cfg80211_is_sub_chan(&wdev->u.mesh.chandef, chan, + primary_only); + default: + break; + } + + return false; } static bool cfg80211_is_wiphy_oper_chan(struct wiphy *wiphy, @@ -752,7 +789,7 @@ continue; } - if (cfg80211_is_sub_chan(&wdev->chandef, chan)) { + if (cfg80211_wdev_on_sub_chan(wdev, chan, false)) { wdev_unlock(wdev); return true; } @@ -772,7 +809,8 @@ if (!cfg80211_chandef_valid(&rdev->background_radar_chandef)) return false; - return cfg80211_is_sub_chan(&rdev->background_radar_chandef, channel); + return cfg80211_is_sub_chan(&rdev->background_radar_chandef, channel, + false); } bool cfg80211_any_wiphy_oper_chan(struct wiphy *wiphy, @@ -1176,6 +1214,68 @@ } EXPORT_SYMBOL(cfg80211_chandef_usable); +static bool cfg80211_ir_permissive_check_wdev(enum nl80211_iftype iftype, + struct wireless_dev *wdev, + struct ieee80211_channel *chan) +{ + struct ieee80211_channel *other_chan = NULL; + unsigned int link_id; + int r1, r2; + + for_each_valid_link(wdev, link_id) { + if (wdev->iftype == NL80211_IFTYPE_STATION && + wdev->links[link_id].client.current_bss) + other_chan = wdev->links[link_id].client.current_bss->pub.channel; + + /* + * If a GO already operates on the same GO_CONCURRENT channel, + * this one (maybe the same one) can beacon as well. We allow + * the operation even if the station we relied on with + * GO_CONCURRENT is disconnected now. But then we must make sure + * we're not outdoor on an indoor-only channel. + */ + if (iftype == NL80211_IFTYPE_P2P_GO && + wdev->iftype == NL80211_IFTYPE_P2P_GO && + wdev->links[link_id].ap.beacon_interval && + !(chan->flags & IEEE80211_CHAN_INDOOR_ONLY)) + other_chan = wdev->links[link_id].ap.chandef.chan; + + if (!other_chan) + continue; + + if (chan == other_chan) + return true; + + if (chan->band != NL80211_BAND_5GHZ && + chan->band != NL80211_BAND_6GHZ) + continue; + + r1 = cfg80211_get_unii(chan->center_freq); + r2 = cfg80211_get_unii(other_chan->center_freq); + + if (r1 != -EINVAL && r1 == r2) { + /* + * At some locations channels 149-165 are considered a + * bundle, but at other locations, e.g., Indonesia, + * channels 149-161 are considered a bundle while + * channel 165 is left out and considered to be in a + * different bundle. Thus, in case that there is a + * station interface connected to an AP on channel 165, + * it is assumed that channels 149-161 are allowed for + * GO operations. However, having a station interface + * connected to an AP on channels 149-161, does not + * allow GO operation on channel 165. + */ + if (chan->center_freq == 5825 && + other_chan->center_freq != 5825) + continue; + return true; + } + } + + return false; +} + /* * Check if the channel can be used under permissive conditions mandated by * some regulatory bodies, i.e., the channel is marked with @@ -1219,59 +1319,14 @@ * the current registered device. */ list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { - struct ieee80211_channel *other_chan = NULL; - int r1, r2; + bool ret; wdev_lock(wdev); - if (wdev->iftype == NL80211_IFTYPE_STATION && - wdev->current_bss) - other_chan = wdev->current_bss->pub.channel; - - /* - * If a GO already operates on the same GO_CONCURRENT channel, - * this one (maybe the same one) can beacon as well. We allow - * the operation even if the station we relied on with - * GO_CONCURRENT is disconnected now. But then we must make sure - * we're not outdoor on an indoor-only channel. - */ - if (iftype == NL80211_IFTYPE_P2P_GO && - wdev->iftype == NL80211_IFTYPE_P2P_GO && - wdev->beacon_interval && - !(chan->flags & IEEE80211_CHAN_INDOOR_ONLY)) - other_chan = wdev->chandef.chan; + ret = cfg80211_ir_permissive_check_wdev(iftype, wdev, chan); wdev_unlock(wdev); - if (!other_chan) - continue; - - if (chan == other_chan) - return true; - - if (chan->band != NL80211_BAND_5GHZ && - chan->band != NL80211_BAND_6GHZ) - continue; - - r1 = cfg80211_get_unii(chan->center_freq); - r2 = cfg80211_get_unii(other_chan->center_freq); - - if (r1 != -EINVAL && r1 == r2) { - /* - * At some locations channels 149-165 are considered a - * bundle, but at other locations, e.g., Indonesia, - * channels 149-161 are considered a bundle while - * channel 165 is left out and considered to be in a - * different bundle. Thus, in case that there is a - * station interface connected to an AP on channel 165, - * it is assumed that channels 149-161 are allowed for - * GO operations. However, having a station interface - * connected to an AP on channels 149-161, does not - * allow GO operation on channel 165. - */ - if (chan->center_freq == 5825 && - other_chan->center_freq != 5825) - continue; - return true; - } + if (ret) + return ret; } return false; @@ -1374,3 +1429,34 @@ return false; } EXPORT_SYMBOL(cfg80211_any_usable_channels); + +struct cfg80211_chan_def *wdev_chandef(struct wireless_dev *wdev, + unsigned int link_id) +{ + /* + * We need to sort out the locking here - in some cases + * where we get here we really just don't care (yet) + * about the valid links, but in others we do. But we + * get here with various driver cases, so we cannot + * easily require the wdev mutex. + */ + if (link_id || wdev->valid_links & BIT(0)) { + ASSERT_WDEV_LOCK(wdev); + WARN_ON(!(wdev->valid_links & BIT(link_id))); + } + + switch (wdev->iftype) { + case NL80211_IFTYPE_MESH_POINT: + return &wdev->u.mesh.chandef; + case NL80211_IFTYPE_ADHOC: + return &wdev->u.ibss.chandef; + case NL80211_IFTYPE_OCB: + return &wdev->u.ocb.chandef; + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + return &wdev->links[link_id].ap.chandef; + default: + return NULL; + } +} +EXPORT_SYMBOL(wdev_chandef); --- linux-5.19.0.orig/net/wireless/core.c +++ linux-5.19.0/net/wireless/core.c @@ -1118,6 +1118,7 @@ bool unregister_netdev) { struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); + unsigned int link_id; ASSERT_RTNL(); lockdep_assert_held(&rdev->wiphy.mtx); @@ -1167,11 +1168,22 @@ */ cfg80211_process_wdev_events(wdev); - if (WARN_ON(wdev->current_bss)) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); - wdev->current_bss = NULL; + if (wdev->iftype == NL80211_IFTYPE_STATION || + wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) { + for (link_id = 0; link_id < ARRAY_SIZE(wdev->links); link_id++) { + struct cfg80211_internal_bss *curbss; + + curbss = wdev->links[link_id].client.current_bss; + + if (WARN_ON(curbss)) { + cfg80211_unhold_bss(curbss); + cfg80211_put_bss(wdev->wiphy, &curbss->pub); + wdev->links[link_id].client.current_bss = NULL; + } + } } + + wdev->connected = false; } void cfg80211_unregister_wdev(struct wireless_dev *wdev) @@ -1233,7 +1245,7 @@ break; case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: - __cfg80211_stop_ap(rdev, dev, true); + __cfg80211_stop_ap(rdev, dev, -1, true); break; case NL80211_IFTYPE_OCB: __cfg80211_leave_ocb(rdev, dev); @@ -1463,9 +1475,9 @@ memcpy(&setup, &default_mesh_setup, sizeof(setup)); /* back compat only needed for mesh_id */ - setup.mesh_id = wdev->ssid; - setup.mesh_id_len = wdev->mesh_id_up_len; - if (wdev->mesh_id_up_len) + setup.mesh_id = wdev->u.mesh.id; + setup.mesh_id_len = wdev->u.mesh.id_up_len; + if (wdev->u.mesh.id_up_len) __cfg80211_join_mesh(rdev, dev, &setup, &default_mesh_config); --- linux-5.19.0.orig/net/wireless/core.h +++ linux-5.19.0/net/wireless/core.h @@ -307,6 +307,7 @@ void cfg80211_bss_age(struct cfg80211_registered_device *rdev, unsigned long age_secs); void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev, + unsigned int link, struct ieee80211_channel *channel); /* IBSS */ @@ -353,9 +354,11 @@ /* AP */ int __cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify); + struct net_device *dev, int link, + bool notify); int cfg80211_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev, bool notify); + struct net_device *dev, int link, + bool notify); /* MLME */ int cfg80211_mlme_auth(struct cfg80211_registered_device *rdev, @@ -507,7 +510,11 @@ bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev); bool cfg80211_is_sub_chan(struct cfg80211_chan_def *chandef, - struct ieee80211_channel *chan); + struct ieee80211_channel *chan, + bool primary_only); +bool cfg80211_wdev_on_sub_chan(struct wireless_dev *wdev, + struct ieee80211_channel *chan, + bool primary_only); static inline unsigned int elapsed_jiffies_msecs(unsigned long start) { --- linux-5.19.0.orig/net/wireless/debugfs.c +++ linux-5.19.0/net/wireless/debugfs.c @@ -65,9 +65,10 @@ { struct wiphy *wiphy = file->private_data; char *buf; - unsigned int offset = 0, buf_size = PAGE_SIZE, i, r; + unsigned int offset = 0, buf_size = PAGE_SIZE, i; enum nl80211_band band; struct ieee80211_supported_band *sband; + ssize_t r; buf = kzalloc(buf_size, GFP_KERNEL); if (!buf) --- linux-5.19.0.orig/net/wireless/ibss.c +++ linux-5.19.0/net/wireless/ibss.c @@ -28,7 +28,7 @@ if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) return; - if (!wdev->ssid_len) + if (!wdev->u.ibss.ssid_len) return; bss = cfg80211_get_bss(wdev->wiphy, channel, bssid, NULL, 0, @@ -37,13 +37,13 @@ if (WARN_ON(!bss)) return; - if (wdev->current_bss) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); + if (wdev->u.ibss.current_bss) { + cfg80211_unhold_bss(wdev->u.ibss.current_bss); + cfg80211_put_bss(wdev->wiphy, &wdev->u.ibss.current_bss->pub); } cfg80211_hold_bss(bss_from_pub(bss)); - wdev->current_bss = bss_from_pub(bss); + wdev->u.ibss.current_bss = bss_from_pub(bss); if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP)) cfg80211_upload_connect_keys(wdev); @@ -96,7 +96,7 @@ lockdep_assert_held(&rdev->wiphy.mtx); ASSERT_WDEV_LOCK(wdev); - if (wdev->ssid_len) + if (wdev->u.ibss.ssid_len) return -EALREADY; if (!params->basic_rates) { @@ -131,7 +131,7 @@ kfree_sensitive(wdev->connect_keys); wdev->connect_keys = connkeys; - wdev->chandef = params->chandef; + wdev->u.ibss.chandef = params->chandef; if (connkeys) { params->wep_keys = connkeys->params; params->wep_tx_key = connkeys->def; @@ -146,8 +146,8 @@ return err; } - memcpy(wdev->ssid, params->ssid, params->ssid_len); - wdev->ssid_len = params->ssid_len; + memcpy(wdev->u.ibss.ssid, params->ssid, params->ssid_len); + wdev->u.ibss.ssid_len = params->ssid_len; return 0; } @@ -173,14 +173,14 @@ for (i = 0; i < 6; i++) rdev_del_key(rdev, dev, i, false, NULL); - if (wdev->current_bss) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); + if (wdev->u.ibss.current_bss) { + cfg80211_unhold_bss(wdev->u.ibss.current_bss); + cfg80211_put_bss(wdev->wiphy, &wdev->u.ibss.current_bss->pub); } - wdev->current_bss = NULL; - wdev->ssid_len = 0; - memset(&wdev->chandef, 0, sizeof(wdev->chandef)); + wdev->u.ibss.current_bss = NULL; + wdev->u.ibss.ssid_len = 0; + memset(&wdev->u.ibss.chandef, 0, sizeof(wdev->u.ibss.chandef)); #ifdef CONFIG_CFG80211_WEXT if (!nowext) wdev->wext.ibss.ssid_len = 0; @@ -205,7 +205,7 @@ ASSERT_WDEV_LOCK(wdev); - if (!wdev->ssid_len) + if (!wdev->u.ibss.ssid_len) return -ENOLINK; err = rdev_leave_ibss(rdev, dev); @@ -339,7 +339,7 @@ wdev_lock(wdev); err = 0; - if (wdev->ssid_len) + if (wdev->u.ibss.ssid_len) err = __cfg80211_leave_ibss(rdev, dev, true); wdev_unlock(wdev); @@ -374,8 +374,8 @@ return -EINVAL; wdev_lock(wdev); - if (wdev->current_bss) - chan = wdev->current_bss->pub.channel; + if (wdev->u.ibss.current_bss) + chan = wdev->u.ibss.current_bss->pub.channel; else if (wdev->wext.ibss.chandef.chan) chan = wdev->wext.ibss.chandef.chan; wdev_unlock(wdev); @@ -408,7 +408,7 @@ wdev_lock(wdev); err = 0; - if (wdev->ssid_len) + if (wdev->u.ibss.ssid_len) err = __cfg80211_leave_ibss(rdev, dev, true); wdev_unlock(wdev); @@ -419,8 +419,8 @@ if (len > 0 && ssid[len - 1] == '\0') len--; - memcpy(wdev->ssid, ssid, len); - wdev->wext.ibss.ssid = wdev->ssid; + memcpy(wdev->u.ibss.ssid, ssid, len); + wdev->wext.ibss.ssid = wdev->u.ibss.ssid; wdev->wext.ibss.ssid_len = len; wdev_lock(wdev); @@ -443,10 +443,10 @@ data->flags = 0; wdev_lock(wdev); - if (wdev->ssid_len) { + if (wdev->u.ibss.ssid_len) { data->flags = 1; - data->length = wdev->ssid_len; - memcpy(ssid, wdev->ssid, data->length); + data->length = wdev->u.ibss.ssid_len; + memcpy(ssid, wdev->u.ibss.ssid, data->length); } else if (wdev->wext.ibss.ssid && wdev->wext.ibss.ssid_len) { data->flags = 1; data->length = wdev->wext.ibss.ssid_len; @@ -494,7 +494,7 @@ wdev_lock(wdev); err = 0; - if (wdev->ssid_len) + if (wdev->u.ibss.ssid_len) err = __cfg80211_leave_ibss(rdev, dev, true); wdev_unlock(wdev); @@ -527,8 +527,9 @@ ap_addr->sa_family = ARPHRD_ETHER; wdev_lock(wdev); - if (wdev->current_bss) - memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN); + if (wdev->u.ibss.current_bss) + memcpy(ap_addr->sa_data, wdev->u.ibss.current_bss->pub.bssid, + ETH_ALEN); else if (wdev->wext.ibss.bssid) memcpy(ap_addr->sa_data, wdev->wext.ibss.bssid, ETH_ALEN); else --- linux-5.19.0.orig/net/wireless/mesh.c +++ linux-5.19.0/net/wireless/mesh.c @@ -1,4 +1,8 @@ // SPDX-License-Identifier: GPL-2.0 +/* + * Portions + * Copyright (C) 2022 Intel Corporation + */ #include #include #include @@ -114,7 +118,7 @@ setup->is_secure) return -EOPNOTSUPP; - if (wdev->mesh_id_len) + if (wdev->u.mesh.id_len) return -EALREADY; if (!setup->mesh_id_len) @@ -125,7 +129,7 @@ if (!setup->chandef.chan) { /* if no channel explicitly given, use preset channel */ - setup->chandef = wdev->preset_chandef; + setup->chandef = wdev->u.mesh.preset_chandef; } if (!setup->chandef.chan) { @@ -209,10 +213,10 @@ err = rdev_join_mesh(rdev, dev, conf, setup); if (!err) { - memcpy(wdev->ssid, setup->mesh_id, setup->mesh_id_len); - wdev->mesh_id_len = setup->mesh_id_len; - wdev->chandef = setup->chandef; - wdev->beacon_interval = setup->beacon_interval; + memcpy(wdev->u.mesh.id, setup->mesh_id, setup->mesh_id_len); + wdev->u.mesh.id_len = setup->mesh_id_len; + wdev->u.mesh.chandef = setup->chandef; + wdev->u.mesh.beacon_interval = setup->beacon_interval; } return err; @@ -241,15 +245,15 @@ err = rdev_libertas_set_mesh_channel(rdev, wdev->netdev, chandef->chan); if (!err) - wdev->chandef = *chandef; + wdev->u.mesh.chandef = *chandef; return err; } - if (wdev->mesh_id_len) + if (wdev->u.mesh.id_len) return -EBUSY; - wdev->preset_chandef = *chandef; + wdev->u.mesh.preset_chandef = *chandef; return 0; } @@ -267,15 +271,16 @@ if (!rdev->ops->leave_mesh) return -EOPNOTSUPP; - if (!wdev->mesh_id_len) + if (!wdev->u.mesh.id_len) return -ENOTCONN; err = rdev_leave_mesh(rdev, dev); if (!err) { wdev->conn_owner_nlportid = 0; - wdev->mesh_id_len = 0; - wdev->beacon_interval = 0; - memset(&wdev->chandef, 0, sizeof(wdev->chandef)); + wdev->u.mesh.id_len = 0; + wdev->u.mesh.beacon_interval = 0; + memset(&wdev->u.mesh.chandef, 0, + sizeof(wdev->u.mesh.chandef)); rdev_set_qos_map(rdev, dev, NULL); cfg80211_sched_dfs_chan_update(rdev); } --- linux-5.19.0.orig/net/wireless/mlme.c +++ linux-5.19.0/net/wireless/mlme.c @@ -92,8 +92,7 @@ nl80211_send_deauth(rdev, wdev->netdev, buf, len, reconnect, GFP_KERNEL); - if (!wdev->current_bss || - !ether_addr_equal(wdev->current_bss->pub.bssid, bssid)) + if (!wdev->connected || !ether_addr_equal(wdev->u.client.connected_addr, bssid)) return; __cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap); @@ -113,8 +112,8 @@ nl80211_send_disassoc(rdev, wdev->netdev, buf, len, reconnect, GFP_KERNEL); - if (WARN_ON(!wdev->current_bss || - !ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) + if (WARN_ON(!wdev->connected || + !ether_addr_equal(wdev->u.client.connected_addr, bssid))) return; __cfg80211_disconnected(wdev->netdev, NULL, 0, reason_code, from_ap); @@ -260,8 +259,8 @@ if (!key || !key_len || key_idx < 0 || key_idx > 3) return -EINVAL; - if (wdev->current_bss && - ether_addr_equal(bssid, wdev->current_bss->pub.bssid)) + if (wdev->connected && + ether_addr_equal(bssid, wdev->u.client.connected_addr)) return -EALREADY; req.bss = cfg80211_get_bss(&rdev->wiphy, chan, bssid, ssid, ssid_len, @@ -322,9 +321,9 @@ ASSERT_WDEV_LOCK(wdev); - if (wdev->current_bss && - (!req->prev_bssid || !ether_addr_equal(wdev->current_bss->pub.bssid, - req->prev_bssid))) + if (wdev->connected && + (!req->prev_bssid || + !ether_addr_equal(wdev->u.client.connected_addr, req->prev_bssid))) return -EALREADY; cfg80211_oper_and_ht_capa(&req->ht_capa_mask, @@ -364,13 +363,13 @@ ASSERT_WDEV_LOCK(wdev); if (local_state_change && - (!wdev->current_bss || - !ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) + (!wdev->connected || + !ether_addr_equal(wdev->u.client.connected_addr, bssid))) return 0; if (ether_addr_equal(wdev->disconnect_bssid, bssid) || - (wdev->current_bss && - ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) + (wdev->connected && + ether_addr_equal(wdev->u.client.connected_addr, bssid))) wdev->conn_owner_nlportid = 0; return rdev_deauth(rdev, dev, &req); @@ -392,11 +391,12 @@ ASSERT_WDEV_LOCK(wdev); - if (!wdev->current_bss) + if (!wdev->connected) return -ENOTCONN; - if (ether_addr_equal(wdev->current_bss->pub.bssid, bssid)) - req.bss = &wdev->current_bss->pub; + if (ether_addr_equal(wdev->links[0].client.current_bss->pub.bssid, + bssid)) + req.bss = &wdev->links[0].client.current_bss->pub; else return -ENOTCONN; @@ -405,7 +405,7 @@ return err; /* driver should have reported the disassoc */ - WARN_ON(wdev->current_bss); + WARN_ON(wdev->connected); return 0; } @@ -420,10 +420,10 @@ if (!rdev->ops->deauth) return; - if (!wdev->current_bss) + if (!wdev->connected) return; - memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN); + memcpy(bssid, wdev->u.client.connected_addr, ETH_ALEN); cfg80211_mlme_deauth(rdev, dev, bssid, NULL, 0, WLAN_REASON_DEAUTH_LEAVING, false); } @@ -676,28 +676,34 @@ switch (wdev->iftype) { case NL80211_IFTYPE_ADHOC: + /* + * check for IBSS DA must be done by driver as + * cfg80211 doesn't track the stations + */ + if (!wdev->u.ibss.current_bss || + !ether_addr_equal(wdev->u.ibss.current_bss->pub.bssid, + mgmt->bssid)) { + err = -ENOTCONN; + break; + } + break; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - if (!wdev->current_bss) { + if (!wdev->connected) { err = -ENOTCONN; break; } - if (!ether_addr_equal(wdev->current_bss->pub.bssid, + /* FIXME: MLD may address this differently */ + + if (!ether_addr_equal(wdev->u.client.connected_addr, mgmt->bssid)) { err = -ENOTCONN; break; } - /* - * check for IBSS DA must be done by driver as - * cfg80211 doesn't track the stations - */ - if (wdev->iftype == NL80211_IFTYPE_ADHOC) - break; - /* for station, check that DA is the AP */ - if (!ether_addr_equal(wdev->current_bss->pub.bssid, + if (!ether_addr_equal(wdev->u.client.connected_addr, mgmt->da)) { err = -ENOTCONN; break; @@ -743,12 +749,12 @@ if (!ieee80211_is_action(mgmt->frame_control) || mgmt->u.action.category != WLAN_CATEGORY_PUBLIC) return -EINVAL; - if (!wdev->current_bss && + if (!wdev->connected && !wiphy_ext_feature_isset( &rdev->wiphy, NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA)) return -EINVAL; - if (wdev->current_bss && + if (wdev->connected && !wiphy_ext_feature_isset( &rdev->wiphy, NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED)) @@ -940,14 +946,15 @@ struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); unsigned long timeout; + /* not yet supported */ + if (wdev->valid_links) + return; + trace_cfg80211_cac_event(netdev, event); if (WARN_ON(!wdev->cac_started && event != NL80211_RADAR_CAC_STARTED)) return; - if (WARN_ON(!wdev->chandef.chan)) - return; - switch (event) { case NL80211_RADAR_CAC_FINISHED: timeout = wdev->cac_start_time + --- linux-5.19.0.orig/net/wireless/nl80211.c +++ linux-5.19.0/net/wireless/nl80211.c @@ -792,6 +792,10 @@ NL80211_EHT_MIN_CAPABILITY_LEN, NL80211_EHT_MAX_CAPABILITY_LEN), [NL80211_ATTR_DISABLE_EHT] = { .type = NLA_FLAG }, + [NL80211_ATTR_MLO_LINKS] = + NLA_POLICY_NESTED_ARRAY(nl80211_policy), + [NL80211_ATTR_MLO_LINK_ID] = + NLA_POLICY_RANGE(NLA_U8, 0, IEEE80211_MLD_MAX_NUM_LINKS), }; /* policy for the key attributes */ @@ -1225,6 +1229,37 @@ /* netlink command implementations */ +/** + * nl80211_link_id - return link ID + * @attrs: attributes to look at + * + * Returns: the link ID or 0 if not given + * + * Note this function doesn't do any validation of the link + * ID validity wrt. links that were actually added, so it must + * be called only from ops with %NL80211_FLAG_MLO_VALID_LINK_ID + * or if additional validation is done. + */ +static unsigned int nl80211_link_id(struct nlattr **attrs) +{ + struct nlattr *linkid = attrs[NL80211_ATTR_MLO_LINK_ID]; + + if (!linkid) + return 0; + + return nla_get_u8(linkid); +} + +static int nl80211_link_id_or_invalid(struct nlattr **attrs) +{ + struct nlattr *linkid = attrs[NL80211_ATTR_MLO_LINK_ID]; + + if (!linkid) + return -1; + + return nla_get_u8(linkid); +} + struct key_parse { struct key_params p; int idx; @@ -1496,11 +1531,15 @@ case NL80211_IFTYPE_MESH_POINT: break; case NL80211_IFTYPE_ADHOC: + if (wdev->u.ibss.current_bss) + return 0; + return -ENOLINK; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - if (!wdev->current_bss) - return -ENOLINK; - break; + /* for MLO, require driver validation of the link ID */ + if (wdev->connected) + return 0; + return -ENOLINK; case NL80211_IFTYPE_UNSPECIFIED: case NL80211_IFTYPE_OCB: case NL80211_IFTYPE_MONITOR: @@ -3232,12 +3271,14 @@ static int __nl80211_set_channel(struct cfg80211_registered_device *rdev, struct net_device *dev, - struct genl_info *info) + struct genl_info *info, + int _link_id) { struct cfg80211_chan_def chandef; int result; enum nl80211_iftype iftype = NL80211_IFTYPE_MONITOR; struct wireless_dev *wdev = NULL; + int link_id = _link_id; if (dev) wdev = dev->ieee80211_ptr; @@ -3246,6 +3287,12 @@ if (wdev) iftype = wdev->iftype; + if (link_id < 0) { + if (wdev && wdev->valid_links) + return -EINVAL; + link_id = 0; + } + result = nl80211_parse_chandef(rdev, info, &chandef); if (result) return result; @@ -3254,49 +3301,48 @@ case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: if (!cfg80211_reg_can_beacon_relax(&rdev->wiphy, &chandef, - iftype)) { - result = -EINVAL; - break; - } - if (wdev->beacon_interval) { + iftype)) + return -EINVAL; + if (wdev->links[link_id].ap.beacon_interval) { + struct ieee80211_channel *cur_chan; + if (!dev || !rdev->ops->set_ap_chanwidth || !(rdev->wiphy.features & - NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE)) { - result = -EBUSY; - break; - } + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE)) + return -EBUSY; /* Only allow dynamic channel width changes */ - if (chandef.chan != wdev->preset_chandef.chan) { - result = -EBUSY; - break; - } - result = rdev_set_ap_chanwidth(rdev, dev, &chandef); + cur_chan = wdev->links[link_id].ap.chandef.chan; + if (chandef.chan != cur_chan) + return -EBUSY; + + result = rdev_set_ap_chanwidth(rdev, dev, link_id, + &chandef); if (result) - break; + return result; + wdev->links[link_id].ap.chandef = chandef; + } else { + wdev->u.ap.preset_chandef = chandef; } - wdev->preset_chandef = chandef; - result = 0; - break; + return 0; case NL80211_IFTYPE_MESH_POINT: - result = cfg80211_set_mesh_channel(rdev, wdev, &chandef); - break; + return cfg80211_set_mesh_channel(rdev, wdev, &chandef); case NL80211_IFTYPE_MONITOR: - result = cfg80211_set_monitor_channel(rdev, &chandef); - break; + return cfg80211_set_monitor_channel(rdev, &chandef); default: - result = -EINVAL; + break; } - return result; + return -EINVAL; } static int nl80211_set_channel(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + int link_id = nl80211_link_id_or_invalid(info->attrs); struct net_device *netdev = info->user_ptr[1]; - return __nl80211_set_channel(rdev, netdev, info); + return __nl80211_set_channel(rdev, netdev, info, link_id); } static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info) @@ -3411,7 +3457,7 @@ result = __nl80211_set_channel( rdev, nl80211_can_set_dev_channel(wdev) ? netdev : NULL, - info); + info, -1); if (result) goto out; } @@ -3696,15 +3742,13 @@ nla_put_u8(msg, NL80211_ATTR_4ADDR, wdev->use_4addr)) goto nla_put_failure; - if (rdev->ops->get_channel) { - int ret; + if (rdev->ops->get_channel && !wdev->valid_links) { struct cfg80211_chan_def chandef = {}; + int ret; - ret = rdev_get_channel(rdev, wdev, &chandef); - if (ret == 0) { - if (nl80211_send_chandef(msg, &chandef)) - goto nla_put_failure; - } + ret = rdev_get_channel(rdev, wdev, 0, &chandef); + if (ret == 0 && nl80211_send_chandef(msg, &chandef)) + goto nla_put_failure; } if (rdev->ops->get_tx_power) { @@ -3721,27 +3765,24 @@ switch (wdev->iftype) { case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: - if (wdev->ssid_len && - nla_put(msg, NL80211_ATTR_SSID, wdev->ssid_len, wdev->ssid)) + if (wdev->u.ap.ssid_len && + nla_put(msg, NL80211_ATTR_SSID, wdev->u.ap.ssid_len, + wdev->u.ap.ssid)) goto nla_put_failure_locked; break; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - case NL80211_IFTYPE_ADHOC: { - const struct element *ssid_elem; - - if (!wdev->current_bss) - break; - rcu_read_lock(); - ssid_elem = ieee80211_bss_get_elem(&wdev->current_bss->pub, - WLAN_EID_SSID); - if (ssid_elem && - nla_put(msg, NL80211_ATTR_SSID, ssid_elem->datalen, - ssid_elem->data)) - goto nla_put_failure_rcu_locked; - rcu_read_unlock(); + if (wdev->u.client.ssid_len && + nla_put(msg, NL80211_ATTR_SSID, wdev->u.client.ssid_len, + wdev->u.client.ssid)) + goto nla_put_failure_locked; + break; + case NL80211_IFTYPE_ADHOC: + if (wdev->u.ibss.ssid_len && + nla_put(msg, NL80211_ATTR_SSID, wdev->u.ibss.ssid_len, + wdev->u.ibss.ssid)) + goto nla_put_failure_locked; break; - } default: /* nothing */ break; @@ -3761,8 +3802,6 @@ genlmsg_end(msg, hdr); return 0; - nla_put_failure_rcu_locked: - rcu_read_unlock(); nla_put_failure_locked: wdev_unlock(wdev); nla_put_failure: @@ -4014,10 +4053,11 @@ wdev_lock(wdev); BUILD_BUG_ON(IEEE80211_MAX_SSID_LEN != IEEE80211_MAX_MESH_ID_LEN); - wdev->mesh_id_up_len = + wdev->u.mesh.id_up_len = nla_len(info->attrs[NL80211_ATTR_MESH_ID]); - memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]), - wdev->mesh_id_up_len); + memcpy(wdev->u.mesh.id, + nla_data(info->attrs[NL80211_ATTR_MESH_ID]), + wdev->u.mesh.id_up_len); wdev_unlock(wdev); } @@ -4122,10 +4162,11 @@ wdev_lock(wdev); BUILD_BUG_ON(IEEE80211_MAX_SSID_LEN != IEEE80211_MAX_MESH_ID_LEN); - wdev->mesh_id_up_len = + wdev->u.mesh.id_up_len = nla_len(info->attrs[NL80211_ATTR_MESH_ID]); - memcpy(wdev->ssid, nla_data(info->attrs[NL80211_ATTR_MESH_ID]), - wdev->mesh_id_up_len); + memcpy(wdev->u.mesh.id, + nla_data(info->attrs[NL80211_ATTR_MESH_ID]), + wdev->u.mesh.id_up_len); wdev_unlock(wdev); break; case NL80211_IFTYPE_NAN: @@ -4662,7 +4703,7 @@ dev->ieee80211_ptr->iftype != NL80211_IFTYPE_P2P_GO) return -EOPNOTSUPP; - if (!dev->ieee80211_ptr->beacon_interval) + if (!dev->ieee80211_ptr->links[0].ap.beacon_interval) return -EINVAL; acl = parse_acl_data(&rdev->wiphy, info); @@ -4818,14 +4859,24 @@ } } -static u16 he_get_txmcsmap(struct genl_info *info, +static u16 he_get_txmcsmap(struct genl_info *info, unsigned int link_id, const struct ieee80211_sta_he_cap *he_cap) { struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; - __le16 tx_mcs; + struct cfg80211_chan_def *chandef; + __le16 tx_mcs; - switch (wdev->chandef.width) { + chandef = wdev_chandef(wdev, link_id); + if (!chandef) { + /* + * This is probably broken, but we never maintained + * a chandef in these cases, so it always was. + */ + return le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80); + } + + switch (chandef->width) { case NL80211_CHAN_WIDTH_80P80: tx_mcs = he_cap->he_mcs_nss_supp.tx_mcs_80p80; break; @@ -4836,6 +4887,7 @@ tx_mcs = he_cap->he_mcs_nss_supp.tx_mcs_80; break; } + return le16_to_cpu(tx_mcs); } @@ -4843,7 +4895,8 @@ struct wireless_dev *wdev, struct ieee80211_supported_band *sband, struct nl80211_txrate_he *txrate, - u16 mcs[NL80211_HE_NSS_MAX]) + u16 mcs[NL80211_HE_NSS_MAX], + unsigned int link_id) { const struct ieee80211_sta_he_cap *he_cap; u16 tx_mcs_mask[NL80211_HE_NSS_MAX] = {}; @@ -4856,7 +4909,7 @@ memset(mcs, 0, sizeof(u16) * NL80211_HE_NSS_MAX); - tx_mcs_map = he_get_txmcsmap(info, he_cap); + tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap); /* Build he_mcs_mask from HE capabilities */ he_build_mcs_mask(tx_mcs_map, tx_mcs_mask); @@ -4876,7 +4929,8 @@ enum nl80211_attrs attr, struct cfg80211_bitrate_mask *mask, struct net_device *dev, - bool default_all_enabled) + bool default_all_enabled, + unsigned int link_id) { struct nlattr *tb[NL80211_TXRATE_MAX + 1]; struct cfg80211_registered_device *rdev = info->user_ptr[0]; @@ -4913,7 +4967,7 @@ if (!he_cap) continue; - he_tx_mcs_map = he_get_txmcsmap(info, he_cap); + he_tx_mcs_map = he_get_txmcsmap(info, link_id, he_cap); he_build_mcs_mask(he_tx_mcs_map, mask->control[i].he_mcs); mask->control[i].he_gi = 0xFF; @@ -4978,7 +5032,8 @@ if (tb[NL80211_TXRATE_HE] && !he_set_mcs_mask(info, wdev, sband, nla_data(tb[NL80211_TXRATE_HE]), - mask->control[band].he_mcs)) + mask->control[band].he_mcs, + link_id)) return -EINVAL; if (tb[NL80211_TXRATE_HE_GI]) @@ -5215,6 +5270,8 @@ memset(bcn, 0, sizeof(*bcn)); + bcn->link_id = nl80211_link_id(attrs); + if (attrs[NL80211_ATTR_BEACON_HEAD]) { bcn->head = nla_data(attrs[NL80211_ATTR_BEACON_HEAD]); bcn->head_len = nla_len(attrs[NL80211_ATTR_BEACON_HEAD]); @@ -5468,22 +5525,20 @@ struct cfg80211_ap_settings *params) { struct wireless_dev *wdev; - bool ret = false; list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { if (wdev->iftype != NL80211_IFTYPE_AP && wdev->iftype != NL80211_IFTYPE_P2P_GO) continue; - if (!wdev->preset_chandef.chan) + if (!wdev->u.ap.preset_chandef.chan) continue; - params->chandef = wdev->preset_chandef; - ret = true; - break; + params->chandef = wdev->u.ap.preset_chandef; + return true; } - return ret; + return false; } static bool nl80211_valid_auth_type(struct cfg80211_registered_device *rdev, @@ -5541,6 +5596,7 @@ static int nl80211_start_ap(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + unsigned int link_id = nl80211_link_id(info->attrs); struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_ap_settings *params; @@ -5553,7 +5609,7 @@ if (!rdev->ops->start_ap) return -EOPNOTSUPP; - if (wdev->beacon_interval) + if (wdev->links[link_id].ap.beacon_interval) return -EALREADY; /* these are required for START_AP */ @@ -5595,6 +5651,18 @@ err = -EINVAL; goto out; } + + if (wdev->u.ap.ssid_len && + (wdev->u.ap.ssid_len != params->ssid_len || + memcmp(wdev->u.ap.ssid, params->ssid, params->ssid_len))) { + /* require identical SSID for MLO */ + err = -EINVAL; + goto out; + } + } else if (wdev->valid_links) { + /* require SSID for MLO */ + err = -EINVAL; + goto out; } if (info->attrs[NL80211_ATTR_HIDDEN_SSID]) @@ -5662,8 +5730,12 @@ err = nl80211_parse_chandef(rdev, info, ¶ms->chandef); if (err) goto out; - } else if (wdev->preset_chandef.chan) { - params->chandef = wdev->preset_chandef; + } else if (wdev->valid_links) { + /* with MLD need to specify the channel configuration */ + err = -EINVAL; + goto out; + } else if (wdev->u.ap.preset_chandef.chan) { + params->chandef = wdev->u.ap.preset_chandef; } else if (!nl80211_get_ap_channel(rdev, params)) { err = -EINVAL; goto out; @@ -5675,18 +5747,20 @@ goto out; } + wdev_lock(wdev); + if (info->attrs[NL80211_ATTR_TX_RATES]) { err = nl80211_parse_tx_bitrate_mask(info, info->attrs, NL80211_ATTR_TX_RATES, ¶ms->beacon_rate, - dev, false); + dev, false, link_id); if (err) - goto out; + goto out_unlock; err = validate_beacon_tx_rate(rdev, params->chandef.chan->band, ¶ms->beacon_rate); if (err) - goto out; + goto out_unlock; } if (info->attrs[NL80211_ATTR_SMPS_MODE]) { @@ -5699,19 +5773,19 @@ if (!(rdev->wiphy.features & NL80211_FEATURE_STATIC_SMPS)) { err = -EINVAL; - goto out; + goto out_unlock; } break; case NL80211_SMPS_DYNAMIC: if (!(rdev->wiphy.features & NL80211_FEATURE_DYNAMIC_SMPS)) { err = -EINVAL; - goto out; + goto out_unlock; } break; default: err = -EINVAL; - goto out; + goto out_unlock; } } else { params->smps_mode = NL80211_SMPS_OFF; @@ -5720,7 +5794,7 @@ params->pbss = nla_get_flag(info->attrs[NL80211_ATTR_PBSS]); if (params->pbss && !rdev->wiphy.bands[NL80211_BAND_60GHZ]) { err = -EOPNOTSUPP; - goto out; + goto out_unlock; } if (info->attrs[NL80211_ATTR_ACL_POLICY]) { @@ -5728,7 +5802,7 @@ if (IS_ERR(params->acl)) { err = PTR_ERR(params->acl); params->acl = NULL; - goto out; + goto out_unlock; } } @@ -5740,7 +5814,7 @@ info->attrs[NL80211_ATTR_HE_OBSS_PD], ¶ms->he_obss_pd); if (err) - goto out; + goto out_unlock; } if (info->attrs[NL80211_ATTR_FILS_DISCOVERY]) { @@ -5748,7 +5822,7 @@ info->attrs[NL80211_ATTR_FILS_DISCOVERY], params); if (err) - goto out; + goto out_unlock; } if (info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP]) { @@ -5756,7 +5830,7 @@ rdev, info->attrs[NL80211_ATTR_UNSOL_BCAST_PROBE_RESP], params); if (err) - goto out; + goto out_unlock; } if (info->attrs[NL80211_ATTR_MBSSID_CONFIG]) { @@ -5767,7 +5841,7 @@ params->beacon.mbssid_ies->cnt : 0); if (err) - goto out; + goto out_unlock; } nl80211_calculate_ap_params(params); @@ -5778,20 +5852,28 @@ else if (info->attrs[NL80211_ATTR_EXTERNAL_AUTH_SUPPORT]) params->flags |= NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT; - wdev_lock(wdev); + if (wdev->conn_owner_nlportid && + info->attrs[NL80211_ATTR_SOCKET_OWNER] && + wdev->conn_owner_nlportid != info->snd_portid) { + err = -EINVAL; + goto out_unlock; + } + + /* FIXME: validate MLO/link-id against driver capabilities */ + err = rdev_start_ap(rdev, dev, params); if (!err) { - wdev->preset_chandef = params->chandef; - wdev->beacon_interval = params->beacon_interval; - wdev->chandef = params->chandef; - wdev->ssid_len = params->ssid_len; - memcpy(wdev->ssid, params->ssid, wdev->ssid_len); + wdev->links[link_id].ap.beacon_interval = params->beacon_interval; + wdev->links[link_id].ap.chandef = params->chandef; + wdev->u.ap.ssid_len = params->ssid_len; + memcpy(wdev->u.ap.ssid, params->ssid, + params->ssid_len); if (info->attrs[NL80211_ATTR_SOCKET_OWNER]) wdev->conn_owner_nlportid = info->snd_portid; } +out_unlock: wdev_unlock(wdev); - out: kfree(params->acl); kfree(params->beacon.mbssid_ies); @@ -5807,6 +5889,7 @@ static int nl80211_set_beacon(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + unsigned int link_id = nl80211_link_id(info->attrs); struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_beacon_data params; @@ -5819,7 +5902,7 @@ if (!rdev->ops->change_beacon) return -EOPNOTSUPP; - if (!wdev->beacon_interval) + if (!wdev->links[link_id].ap.beacon_interval) return -EINVAL; err = nl80211_parse_beacon(rdev, info->attrs, ¶ms); @@ -5838,9 +5921,10 @@ static int nl80211_stop_ap(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + unsigned int link_id = nl80211_link_id(info->attrs); struct net_device *dev = info->user_ptr[1]; - return cfg80211_stop_ap(rdev, dev, false); + return cfg80211_stop_ap(rdev, dev, link_id, false); } static const struct nla_policy sta_flags_policy[NL80211_STA_FLAG_MAX + 1] = { @@ -7590,7 +7674,7 @@ wdev_lock(wdev); /* If not connected, get default parameters */ - if (!wdev->mesh_id_len) + if (!wdev->u.mesh.id_len) memcpy(&cur_params, &default_mesh_config, sizeof(cur_params)); else err = rdev_get_mesh_config(rdev, dev, &cur_params); @@ -7971,7 +8055,7 @@ return err; wdev_lock(wdev); - if (!wdev->mesh_id_len) + if (!wdev->u.mesh.id_len) err = -ENOLINK; if (!err) @@ -8463,14 +8547,44 @@ return 0; } -static bool cfg80211_off_channel_oper_allowed(struct wireless_dev *wdev) +static bool cfg80211_off_channel_oper_allowed(struct wireless_dev *wdev, + struct ieee80211_channel *chan) { + unsigned int link_id; + bool all_ok = true; + ASSERT_WDEV_LOCK(wdev); if (!cfg80211_beaconing_iface_active(wdev)) return true; - if (!(wdev->chandef.chan->flags & IEEE80211_CHAN_RADAR)) + /* + * FIXME: check if we have a free HW resource/link for chan + * + * This, as well as the FIXME below, requires knowing the link + * capabilities of the hardware. + */ + + /* we cannot leave radar channels */ + for_each_valid_link(wdev, link_id) { + struct cfg80211_chan_def *chandef; + + chandef = wdev_chandef(wdev, link_id); + if (!chandef) + continue; + + /* + * FIXME: don't require all_ok, but rather check only the + * correct HW resource/link onto which 'chan' falls, + * as only that link leaves the channel for doing + * the off-channel operation. + */ + + if (chandef->chan->flags & IEEE80211_CHAN_RADAR) + all_ok = false; + } + + if (all_ok) return true; return regulatory_pre_cac_allowed(wdev->wiphy); @@ -8553,7 +8667,7 @@ int err; if (!(wiphy->features & randomness_flag) || - (wdev && wdev->current_bss)) + (wdev && wdev->connected)) return -EOPNOTSUPP; err = nl80211_parse_random_mac(attrs, mac_addr, mac_addr_mask); @@ -8690,17 +8804,14 @@ request->n_channels = i; wdev_lock(wdev); - if (!cfg80211_off_channel_oper_allowed(wdev)) { - struct ieee80211_channel *chan; + for (i = 0; i < request->n_channels; i++) { + struct ieee80211_channel *chan = request->channels[i]; - if (request->n_channels != 1) { - wdev_unlock(wdev); - err = -EBUSY; - goto out_free; - } + /* if we can go off-channel to the target channel we're good */ + if (cfg80211_off_channel_oper_allowed(wdev, chan)) + continue; - chan = request->channels[0]; - if (chan->center_freq != wdev->chandef.chan->center_freq) { + if (!cfg80211_wdev_on_sub_chan(wdev, chan, true)) { wdev_unlock(wdev); err = -EBUSY; goto out_free; @@ -9445,7 +9556,7 @@ err = rdev_start_radar_detection(rdev, dev, &chandef, cac_time_ms); if (!err) { - wdev->chandef = chandef; + wdev->links[0].ap.chandef = chandef; wdev->cac_started = true; wdev->cac_start_time = jiffies; wdev->cac_time_ms = cac_time_ms; @@ -9513,6 +9624,7 @@ static int nl80211_channel_switch(struct sk_buff *skb, struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + unsigned int link_id = nl80211_link_id(info->attrs); struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_csa_settings params; @@ -9539,15 +9651,15 @@ need_handle_dfs_flag = false; /* useless if AP is not running */ - if (!wdev->beacon_interval) + if (!wdev->links[link_id].ap.beacon_interval) return -ENOTCONN; break; case NL80211_IFTYPE_ADHOC: - if (!wdev->ssid_len) + if (!wdev->u.ibss.ssid_len) return -ENOTCONN; break; case NL80211_IFTYPE_MESH_POINT: - if (!wdev->mesh_id_len) + if (!wdev->u.mesh.id_len) return -ENOTCONN; break; default: @@ -9718,6 +9830,7 @@ { struct cfg80211_bss *res = &intbss->pub; const struct cfg80211_bss_ies *ies; + unsigned int link_id; void *hdr; struct nlattr *bss; @@ -9822,13 +9935,15 @@ switch (wdev->iftype) { case NL80211_IFTYPE_P2P_CLIENT: case NL80211_IFTYPE_STATION: - if (intbss == wdev->current_bss && - nla_put_u32(msg, NL80211_BSS_STATUS, - NL80211_BSS_STATUS_ASSOCIATED)) - goto nla_put_failure; + for_each_valid_link(wdev, link_id) { + if (intbss == wdev->links[link_id].client.current_bss && + nla_put_u32(msg, NL80211_BSS_STATUS, + NL80211_BSS_STATUS_ASSOCIATED)) + goto nla_put_failure; + } break; case NL80211_IFTYPE_ADHOC: - if (intbss == wdev->current_bss && + if (intbss == wdev->u.ibss.current_bss && nla_put_u32(msg, NL80211_BSS_STATUS, NL80211_BSS_STATUS_IBSS_JOINED)) goto nla_put_failure; @@ -10012,7 +10127,9 @@ } while (1) { + wdev_lock(wdev); res = rdev_dump_survey(rdev, wdev->netdev, survey_idx, &survey); + wdev_unlock(wdev); if (res == -ENOENT) break; if (res) @@ -11362,7 +11479,7 @@ } wdev_lock(dev->ieee80211_ptr); - if (!wdev->current_bss) + if (!wdev->connected) ret = -ENOLINK; else ret = rdev_update_connect_params(rdev, dev, &connect, changed); @@ -11575,9 +11692,9 @@ struct genl_info *info) { struct cfg80211_registered_device *rdev = info->user_ptr[0]; + unsigned int link_id = nl80211_link_id(info->attrs); struct wireless_dev *wdev = info->user_ptr[1]; struct cfg80211_chan_def chandef; - const struct cfg80211_chan_def *compat_chandef; struct sk_buff *msg; void *hdr; u64 cookie; @@ -11607,10 +11724,22 @@ return err; wdev_lock(wdev); - if (!cfg80211_off_channel_oper_allowed(wdev) && - !cfg80211_chandef_identical(&wdev->chandef, &chandef)) { - compat_chandef = cfg80211_chandef_compatible(&wdev->chandef, - &chandef); + if (!cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) { + const struct cfg80211_chan_def *oper_chandef, *compat_chandef; + + oper_chandef = wdev_chandef(wdev, link_id); + + if (WARN_ON(!oper_chandef)) { + /* cannot happen since we must beacon to get here */ + WARN_ON(1); + wdev_unlock(wdev); + return -EBUSY; + } + + /* note: returns first one if identical chandefs */ + compat_chandef = cfg80211_chandef_compatible(&chandef, + oper_chandef); + if (compat_chandef != &chandef) { wdev_unlock(wdev); return -EBUSY; @@ -11672,6 +11801,7 @@ struct genl_info *info) { struct cfg80211_bitrate_mask mask; + unsigned int link_id = nl80211_link_id(info->attrs); struct cfg80211_registered_device *rdev = info->user_ptr[0]; struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; @@ -11683,11 +11813,11 @@ wdev_lock(wdev); err = nl80211_parse_tx_bitrate_mask(info, info->attrs, NL80211_ATTR_TX_RATES, &mask, - dev, true); + dev, true, link_id); if (err) goto out; - err = rdev_set_bitrate_mask(rdev, dev, NULL, &mask); + err = rdev_set_bitrate_mask(rdev, dev, link_id, NULL, &mask); out: wdev_unlock(wdev); return err; @@ -11812,7 +11942,8 @@ return -EINVAL; wdev_lock(wdev); - if (params.offchan && !cfg80211_off_channel_oper_allowed(wdev)) { + if (params.offchan && + !cfg80211_off_channel_oper_allowed(wdev, chandef.chan)) { wdev_unlock(wdev); return -EBUSY; } @@ -12030,12 +12161,13 @@ * connection is established and enough beacons received to calculate * the average. */ - if (!wdev->cqm_config->last_rssi_event_value && wdev->current_bss && + if (!wdev->cqm_config->last_rssi_event_value && + wdev->links[0].client.current_bss && rdev->ops->get_station) { struct station_info sinfo = {}; u8 *mac_addr; - mac_addr = wdev->current_bss->pub.bssid; + mac_addr = wdev->links[0].client.current_bss->pub.bssid; err = rdev_get_station(rdev, dev, mac_addr, &sinfo); if (err) @@ -12298,7 +12430,7 @@ err = nl80211_parse_tx_bitrate_mask(info, info->attrs, NL80211_ATTR_TX_RATES, &setup.beacon_rate, - dev, false); + dev, false, 0); if (err) return err; @@ -13268,7 +13400,7 @@ rekey_data.akm = nla_get_u32(tb[NL80211_REKEY_DATA_AKM]); wdev_lock(wdev); - if (!wdev->current_bss) { + if (!wdev->connected) { err = -ENOTCONN; goto out; } @@ -14537,7 +14669,7 @@ switch (wdev->iftype) { case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - if (wdev->current_bss) + if (wdev->connected) break; err = -ENOTCONN; goto out; @@ -14710,13 +14842,13 @@ return -EINVAL; wdev_lock(wdev); - if (!wdev->current_bss) { + if (!wdev->connected) { ret = -ENOTCONN; goto out; } pmk_conf.aa = nla_data(info->attrs[NL80211_ATTR_MAC]); - if (memcmp(pmk_conf.aa, wdev->current_bss->pub.bssid, ETH_ALEN)) { + if (memcmp(pmk_conf.aa, wdev->u.client.connected_addr, ETH_ALEN)) { ret = -EINVAL; goto out; } @@ -14844,9 +14976,13 @@ case NL80211_IFTYPE_MESH_POINT: break; case NL80211_IFTYPE_ADHOC: + if (wdev->u.ibss.current_bss) + break; + err = -ENOTCONN; + goto out; case NL80211_IFTYPE_STATION: case NL80211_IFTYPE_P2P_CLIENT: - if (wdev->current_bss) + if (wdev->connected) break; err = -ENOTCONN; goto out; @@ -14882,12 +15018,14 @@ struct net_device *dev = info->user_ptr[1]; struct wireless_dev *wdev = dev->ieee80211_ptr; struct cfg80211_ftm_responder_stats ftm_stats = {}; + unsigned int link_id = nl80211_link_id(info->attrs); struct sk_buff *msg; void *hdr; struct nlattr *ftm_stats_attr; int err; - if (wdev->iftype != NL80211_IFTYPE_AP || !wdev->beacon_interval) + if (wdev->iftype != NL80211_IFTYPE_AP || + !wdev->links[link_id].ap.beacon_interval) return -EOPNOTSUPP; err = rdev_get_ftm_responder_stats(rdev, dev, &ftm_stats); @@ -15017,7 +15155,8 @@ static int parse_tid_conf(struct cfg80211_registered_device *rdev, struct nlattr *attrs[], struct net_device *dev, struct cfg80211_tid_cfg *tid_conf, - struct genl_info *info, const u8 *peer) + struct genl_info *info, const u8 *peer, + unsigned int link_id) { struct netlink_ext_ack *extack = info->extack; u64 mask; @@ -15092,7 +15231,7 @@ attr = NL80211_TID_CONFIG_ATTR_TX_RATE; err = nl80211_parse_tx_bitrate_mask(info, attrs, attr, &tid_conf->txrate_mask, dev, - true); + true, link_id); if (err) return err; @@ -15119,6 +15258,7 @@ { struct cfg80211_registered_device *rdev = info->user_ptr[0]; struct nlattr *attrs[NL80211_TID_CONFIG_ATTR_MAX + 1]; + unsigned int link_id = nl80211_link_id(info->attrs); struct net_device *dev = info->user_ptr[1]; struct cfg80211_tid_config *tid_config; struct nlattr *tid; @@ -15146,6 +15286,8 @@ if (info->attrs[NL80211_ATTR_MAC]) tid_config->peer = nla_data(info->attrs[NL80211_ATTR_MAC]); + wdev_lock(dev->ieee80211_ptr); + nla_for_each_nested(tid, info->attrs[NL80211_ATTR_TID_CONFIG], rem_conf) { ret = nla_parse_nested(attrs, NL80211_TID_CONFIG_ATTR_MAX, @@ -15156,7 +15298,7 @@ ret = parse_tid_conf(rdev, attrs, dev, &tid_config->tid_conf[conf_idx], - info, tid_config->peer); + info, tid_config->peer, link_id); if (ret) goto bad_tid_conf; @@ -15167,6 +15309,7 @@ bad_tid_conf: kfree(tid_config); + wdev_unlock(dev->ieee80211_ptr); return ret; } @@ -15295,6 +15438,62 @@ return rdev_set_fils_aad(rdev, dev, &fils_aad); } +static int nl80211_add_link(struct sk_buff *skb, struct genl_info *info) +{ + unsigned int link_id = nl80211_link_id(info->attrs); + struct net_device *dev = info->user_ptr[1]; + struct wireless_dev *wdev = dev->ieee80211_ptr; + + if (!(wdev->wiphy->flags & WIPHY_FLAG_SUPPORTS_MLO)) + return -EINVAL; + + switch (wdev->iftype) { + case NL80211_IFTYPE_AP: + break; + default: + return -EINVAL; + } + + if (!info->attrs[NL80211_ATTR_MAC] || + !is_valid_ether_addr(nla_data(info->attrs[NL80211_ATTR_MAC]))) + return -EINVAL; + + wdev_lock(wdev); + wdev->valid_links |= BIT(link_id); + ether_addr_copy(wdev->links[link_id].addr, + nla_data(info->attrs[NL80211_ATTR_MAC])); + wdev_unlock(wdev); + + return 0; +} + +static int nl80211_remove_link(struct sk_buff *skb, struct genl_info *info) +{ + unsigned int link_id = nl80211_link_id(info->attrs); + struct net_device *dev = info->user_ptr[1]; + struct wireless_dev *wdev = dev->ieee80211_ptr; + + /* cannot remove if there's no link */ + if (!info->attrs[NL80211_ATTR_MLO_LINK_ID]) + return -EINVAL; + + switch (wdev->iftype) { + case NL80211_IFTYPE_AP: + break; + default: + return -EINVAL; + } + + /* FIXME: stop the link operations first */ + + wdev_lock(wdev); + wdev->valid_links &= ~BIT(link_id); + eth_zero_addr(wdev->links[link_id].addr); + wdev_unlock(wdev); + + return 0; +} + #define NL80211_FLAG_NEED_WIPHY 0x01 #define NL80211_FLAG_NEED_NETDEV 0x02 #define NL80211_FLAG_NEED_RTNL 0x04 @@ -15307,6 +15506,8 @@ NL80211_FLAG_CHECK_NETDEV_UP) #define NL80211_FLAG_CLEAR_SKB 0x20 #define NL80211_FLAG_NO_WIPHY_MTX 0x40 +#define NL80211_FLAG_MLO_VALID_LINK_ID 0x80 +#define NL80211_FLAG_MLO_UNSUPPORTED 0x100 #define INTERNAL_FLAG_SELECTORS(__sel) \ SELECTOR(__sel, NONE, 0) /* must be first */ \ @@ -15316,6 +15517,12 @@ NL80211_FLAG_NEED_WDEV) \ SELECTOR(__sel, NETDEV, \ NL80211_FLAG_NEED_NETDEV) \ + SELECTOR(__sel, NETDEV_LINK, \ + NL80211_FLAG_NEED_NETDEV | \ + NL80211_FLAG_MLO_VALID_LINK_ID) \ + SELECTOR(__sel, NETDEV_NO_MLO, \ + NL80211_FLAG_NEED_NETDEV | \ + NL80211_FLAG_MLO_UNSUPPORTED) \ SELECTOR(__sel, WIPHY_RTNL, \ NL80211_FLAG_NEED_WIPHY | \ NL80211_FLAG_NEED_RTNL) \ @@ -15331,14 +15538,31 @@ NL80211_FLAG_NEED_RTNL) \ SELECTOR(__sel, NETDEV_UP, \ NL80211_FLAG_NEED_NETDEV_UP) \ + SELECTOR(__sel, NETDEV_UP_LINK, \ + NL80211_FLAG_NEED_NETDEV_UP | \ + NL80211_FLAG_MLO_VALID_LINK_ID) \ + SELECTOR(__sel, NETDEV_UP_NO_MLO, \ + NL80211_FLAG_NEED_NETDEV_UP | \ + NL80211_FLAG_MLO_UNSUPPORTED) \ + SELECTOR(__sel, NETDEV_UP_NO_MLO_CLEAR, \ + NL80211_FLAG_NEED_NETDEV_UP | \ + NL80211_FLAG_CLEAR_SKB | \ + NL80211_FLAG_MLO_UNSUPPORTED) \ SELECTOR(__sel, NETDEV_UP_NOTMX, \ NL80211_FLAG_NEED_NETDEV_UP | \ NL80211_FLAG_NO_WIPHY_MTX) \ + SELECTOR(__sel, NETDEV_UP_NOTMX_NOMLO, \ + NL80211_FLAG_NEED_NETDEV_UP | \ + NL80211_FLAG_NO_WIPHY_MTX | \ + NL80211_FLAG_MLO_UNSUPPORTED) \ SELECTOR(__sel, NETDEV_UP_CLEAR, \ NL80211_FLAG_NEED_NETDEV_UP | \ NL80211_FLAG_CLEAR_SKB) \ SELECTOR(__sel, WDEV_UP, \ NL80211_FLAG_NEED_WDEV_UP) \ + SELECTOR(__sel, WDEV_UP_LINK, \ + NL80211_FLAG_NEED_WDEV_UP | \ + NL80211_FLAG_MLO_VALID_LINK_ID) \ SELECTOR(__sel, WDEV_UP_RTNL, \ NL80211_FLAG_NEED_WDEV_UP | \ NL80211_FLAG_NEED_RTNL) \ @@ -15362,9 +15586,10 @@ struct genl_info *info) { struct cfg80211_registered_device *rdev = NULL; - struct wireless_dev *wdev; - struct net_device *dev; + struct wireless_dev *wdev = NULL; + struct net_device *dev = NULL; u32 internal_flags; + int err; if (WARN_ON(ops->internal_flags >= ARRAY_SIZE(nl80211_internal_flags))) return -EINVAL; @@ -15375,8 +15600,8 @@ if (internal_flags & NL80211_FLAG_NEED_WIPHY) { rdev = cfg80211_get_dev_from_info(genl_info_net(info), info); if (IS_ERR(rdev)) { - rtnl_unlock(); - return PTR_ERR(rdev); + err = PTR_ERR(rdev); + goto out_unlock; } info->user_ptr[0] = rdev; } else if (internal_flags & NL80211_FLAG_NEED_NETDEV || @@ -15384,17 +15609,18 @@ wdev = __cfg80211_wdev_from_attrs(NULL, genl_info_net(info), info->attrs); if (IS_ERR(wdev)) { - rtnl_unlock(); - return PTR_ERR(wdev); + err = PTR_ERR(wdev); + goto out_unlock; } dev = wdev->netdev; + dev_hold(dev); rdev = wiphy_to_rdev(wdev->wiphy); if (internal_flags & NL80211_FLAG_NEED_NETDEV) { if (!dev) { - rtnl_unlock(); - return -EINVAL; + err = -EINVAL; + goto out_unlock; } info->user_ptr[1] = dev; @@ -15404,14 +15630,44 @@ if (internal_flags & NL80211_FLAG_CHECK_NETDEV_UP && !wdev_running(wdev)) { - rtnl_unlock(); - return -ENETDOWN; + err = -ENETDOWN; + goto out_unlock; } - dev_hold(dev); info->user_ptr[0] = rdev; } + if (internal_flags & NL80211_FLAG_MLO_VALID_LINK_ID) { + struct nlattr *link_id = info->attrs[NL80211_ATTR_MLO_LINK_ID]; + + if (!wdev) { + err = -EINVAL; + goto out_unlock; + } + + /* MLO -> require valid link ID */ + if (wdev->valid_links && + (!link_id || + !(wdev->valid_links & BIT(nla_get_u16(link_id))))) { + err = -EINVAL; + goto out_unlock; + } + + /* non-MLO -> no link ID attribute accepted */ + if (!wdev->valid_links && link_id) { + err = -EINVAL; + goto out_unlock; + } + } + + if (internal_flags & NL80211_FLAG_MLO_UNSUPPORTED) { + if (info->attrs[NL80211_ATTR_MLO_LINK_ID] || + (wdev && wdev->valid_links)) { + err = -EINVAL; + goto out_unlock; + } + } + if (rdev && !(internal_flags & NL80211_FLAG_NO_WIPHY_MTX)) { wiphy_lock(&rdev->wiphy); /* we keep the mutex locked until post_doit */ @@ -15421,6 +15677,10 @@ rtnl_unlock(); return 0; +out_unlock: + rtnl_unlock(); + dev_put(dev); + return err; } static void nl80211_post_doit(const struct genl_ops *ops, struct sk_buff *skb, @@ -15636,6 +15896,7 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_set_key, .flags = GENL_UNS_ADMIN_PERM, + /* cannot use NL80211_FLAG_MLO_VALID_LINK_ID, depends on key */ .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | NL80211_FLAG_CLEAR_SKB), }, @@ -15659,21 +15920,24 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .flags = GENL_UNS_ADMIN_PERM, .doit = nl80211_set_beacon, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_START_AP, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .flags = GENL_UNS_ADMIN_PERM, .doit = nl80211_start_ap, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_STOP_AP, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .flags = GENL_UNS_ADMIN_PERM, .doit = nl80211_stop_ap, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_GET_STATION, @@ -15939,7 +16203,9 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_remain_on_channel, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP), + /* FIXME: requiring a link ID here is probably not good */ + .internal_flags = IFLAGS(NL80211_FLAG_NEED_WDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL, @@ -15953,7 +16219,8 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_set_tx_bitrate_mask, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_REGISTER_FRAME, @@ -16002,7 +16269,8 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_set_channel, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_JOIN_MESH, @@ -16163,7 +16431,8 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_set_mac_acl, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | + NL80211_FLAG_MLO_UNSUPPORTED), }, { .cmd = NL80211_CMD_RADAR_DETECT, @@ -16171,7 +16440,8 @@ .doit = nl80211_start_radar_detection, .flags = GENL_UNS_ADMIN_PERM, .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | - NL80211_FLAG_NO_WIPHY_MTX), + NL80211_FLAG_NO_WIPHY_MTX | + NL80211_FLAG_MLO_UNSUPPORTED), }, { .cmd = NL80211_CMD_GET_PROTOCOL_FEATURES, @@ -16217,7 +16487,8 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_channel_switch, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_VENDOR, @@ -16240,7 +16511,8 @@ .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_add_tx_ts, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_UNSUPPORTED), }, { .cmd = NL80211_CMD_DEL_TX_TS, @@ -16301,7 +16573,8 @@ .cmd = NL80211_CMD_GET_FTM_RESPONDER_STATS, .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, .doit = nl80211_get_ftm_responder_stats, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_PEER_MEASUREMENT_START, @@ -16333,7 +16606,8 @@ .cmd = NL80211_CMD_SET_TID_CONFIG, .doit = nl80211_set_tid_config, .flags = GENL_UNS_ADMIN_PERM, - .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV), + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV | + NL80211_FLAG_MLO_VALID_LINK_ID), }, { .cmd = NL80211_CMD_SET_SAR_SPECS, @@ -16357,6 +16631,19 @@ .flags = GENL_UNS_ADMIN_PERM, .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), }, + { + .cmd = NL80211_CMD_ADD_LINK, + .doit = nl80211_add_link, + .flags = GENL_UNS_ADMIN_PERM, + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP), + }, + { + .cmd = NL80211_CMD_REMOVE_LINK, + .doit = nl80211_remove_link, + .flags = GENL_UNS_ADMIN_PERM, + .internal_flags = IFLAGS(NL80211_FLAG_NEED_NETDEV_UP | + NL80211_FLAG_MLO_VALID_LINK_ID), + }, }; static struct genl_family nl80211_fam __ro_after_init = { @@ -17984,23 +18271,40 @@ } void cfg80211_ch_switch_notify(struct net_device *dev, - struct cfg80211_chan_def *chandef) + struct cfg80211_chan_def *chandef, + unsigned int link_id) { struct wireless_dev *wdev = dev->ieee80211_ptr; struct wiphy *wiphy = wdev->wiphy; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); ASSERT_WDEV_LOCK(wdev); + WARN_INVALID_LINK_ID(wdev, link_id); - trace_cfg80211_ch_switch_notify(dev, chandef); + trace_cfg80211_ch_switch_notify(dev, chandef, link_id); - wdev->chandef = *chandef; - wdev->preset_chandef = *chandef; - - if ((wdev->iftype == NL80211_IFTYPE_STATION || - wdev->iftype == NL80211_IFTYPE_P2P_CLIENT) && - !WARN_ON(!wdev->current_bss)) - cfg80211_update_assoc_bss_entry(wdev, chandef->chan); + switch (wdev->iftype) { + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_P2P_CLIENT: + if (!WARN_ON(!wdev->links[link_id].client.current_bss)) + cfg80211_update_assoc_bss_entry(wdev, link_id, + chandef->chan); + break; + case NL80211_IFTYPE_MESH_POINT: + wdev->u.mesh.chandef = *chandef; + wdev->u.mesh.preset_chandef = *chandef; + break; + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + wdev->links[link_id].ap.chandef = *chandef; + break; + case NL80211_IFTYPE_ADHOC: + wdev->u.ibss.chandef = *chandef; + break; + default: + WARN_ON(1); + break; + } cfg80211_sched_dfs_chan_update(rdev); --- linux-5.19.0.orig/net/wireless/ocb.c +++ linux-5.19.0/net/wireless/ocb.c @@ -4,6 +4,7 @@ * * Copyright: (c) 2014 Czech Technical University in Prague * (c) 2014 Volkswagen Group Research + * Copyright (C) 2022 Intel Corporation * Author: Rostislav Lisovy * Funded by: Volkswagen Group Research */ @@ -34,7 +35,7 @@ err = rdev_join_ocb(rdev, dev, setup); if (!err) - wdev->chandef = setup->chandef; + wdev->u.ocb.chandef = setup->chandef; return err; } @@ -69,7 +70,7 @@ err = rdev_leave_ocb(rdev, dev); if (!err) - memset(&wdev->chandef, 0, sizeof(wdev->chandef)); + memset(&wdev->u.ocb.chandef, 0, sizeof(wdev->u.ocb.chandef)); return err; } --- linux-5.19.0.orig/net/wireless/rdev-ops.h +++ linux-5.19.0/net/wireless/rdev-ops.h @@ -1,4 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0 */ +/* + * Portions of this file + * Copyright(c) 2016-2017 Intel Deutschland GmbH + * Copyright (C) 2018, 2021-2022 Intel Corporation + */ #ifndef __CFG80211_RDEV_OPS #define __CFG80211_RDEV_OPS @@ -172,11 +177,11 @@ } static inline int rdev_stop_ap(struct cfg80211_registered_device *rdev, - struct net_device *dev) + struct net_device *dev, unsigned int link_id) { int ret; - trace_rdev_stop_ap(&rdev->wiphy, dev); - ret = rdev->ops->stop_ap(&rdev->wiphy, dev); + trace_rdev_stop_ap(&rdev->wiphy, dev, link_id); + ret = rdev->ops->stop_ap(&rdev->wiphy, dev, link_id); trace_rdev_return_int(&rdev->wiphy, ret); return ret; } @@ -651,12 +656,14 @@ static inline int rdev_set_bitrate_mask(struct cfg80211_registered_device *rdev, - struct net_device *dev, const u8 *peer, + struct net_device *dev, unsigned int link_id, + const u8 *peer, const struct cfg80211_bitrate_mask *mask) { int ret; - trace_rdev_set_bitrate_mask(&rdev->wiphy, dev, peer, mask); - ret = rdev->ops->set_bitrate_mask(&rdev->wiphy, dev, peer, mask); + trace_rdev_set_bitrate_mask(&rdev->wiphy, dev, link_id, peer, mask); + ret = rdev->ops->set_bitrate_mask(&rdev->wiphy, dev, link_id, + peer, mask); trace_rdev_return_int(&rdev->wiphy, ret); return ret; } @@ -944,12 +951,13 @@ static inline int rdev_get_channel(struct cfg80211_registered_device *rdev, struct wireless_dev *wdev, + unsigned int link_id, struct cfg80211_chan_def *chandef) { int ret; - trace_rdev_get_channel(&rdev->wiphy, wdev); - ret = rdev->ops->get_channel(&rdev->wiphy, wdev, chandef); + trace_rdev_get_channel(&rdev->wiphy, wdev, link_id); + ret = rdev->ops->get_channel(&rdev->wiphy, wdev, link_id, chandef); trace_rdev_return_chandef(&rdev->wiphy, ret, chandef); return ret; @@ -1107,12 +1115,14 @@ static inline int rdev_set_ap_chanwidth(struct cfg80211_registered_device *rdev, - struct net_device *dev, struct cfg80211_chan_def *chandef) + struct net_device *dev, + unsigned int link_id, + struct cfg80211_chan_def *chandef) { int ret; - trace_rdev_set_ap_chanwidth(&rdev->wiphy, dev, chandef); - ret = rdev->ops->set_ap_chanwidth(&rdev->wiphy, dev, chandef); + trace_rdev_set_ap_chanwidth(&rdev->wiphy, dev, link_id, chandef); + ret = rdev->ops->set_ap_chanwidth(&rdev->wiphy, dev, link_id, chandef); trace_rdev_return_int(&rdev->wiphy, ret); return ret; --- linux-5.19.0.orig/net/wireless/reg.c +++ linux-5.19.0/net/wireless/reg.c @@ -5,7 +5,7 @@ * Copyright 2008-2011 Luis R. Rodriguez * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2017 Intel Deutschland GmbH - * Copyright (C) 2018 - 2021 Intel Corporation + * Copyright (C) 2018 - 2022 Intel Corporation * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -1084,6 +1084,8 @@ static int query_regdb_file(const char *alpha2) { + int err; + ASSERT_RTNL(); if (regdb) @@ -1093,9 +1095,13 @@ if (!alpha2) return -ENOMEM; - return request_firmware_nowait(THIS_MODULE, true, "regulatory.db", - ®_pdev->dev, GFP_KERNEL, - (void *)alpha2, regdb_fw_cb); + err = request_firmware_nowait(THIS_MODULE, true, "regulatory.db", + ®_pdev->dev, GFP_KERNEL, + (void *)alpha2, regdb_fw_cb); + if (err) + kfree(alpha2); + + return err; } int reg_reload_regdb(void) @@ -2370,6 +2376,7 @@ struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); enum nl80211_iftype iftype; bool ret; + int link; wdev_lock(wdev); iftype = wdev->iftype; @@ -2378,62 +2385,87 @@ if (!wdev->netdev || !netif_running(wdev->netdev)) goto wdev_inactive_unlock; - switch (iftype) { - case NL80211_IFTYPE_AP: - case NL80211_IFTYPE_P2P_GO: - case NL80211_IFTYPE_MESH_POINT: - if (!wdev->beacon_interval) - goto wdev_inactive_unlock; - chandef = wdev->chandef; - break; - case NL80211_IFTYPE_ADHOC: - if (!wdev->ssid_len) - goto wdev_inactive_unlock; - chandef = wdev->chandef; - break; - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_P2P_CLIENT: - if (!wdev->current_bss || - !wdev->current_bss->pub.channel) - goto wdev_inactive_unlock; - - if (!rdev->ops->get_channel || - rdev_get_channel(rdev, wdev, &chandef)) - cfg80211_chandef_create(&chandef, - wdev->current_bss->pub.channel, - NL80211_CHAN_NO_HT); - break; - case NL80211_IFTYPE_MONITOR: - case NL80211_IFTYPE_AP_VLAN: - case NL80211_IFTYPE_P2P_DEVICE: - /* no enforcement required */ - break; - default: - /* others not implemented for now */ - WARN_ON(1); - break; - } + for (link = 0; link < ARRAY_SIZE(wdev->links); link++) { + struct ieee80211_channel *chan; - wdev_unlock(wdev); + if (!wdev->valid_links && link > 0) + break; + if (!(wdev->valid_links & BIT(link))) + continue; + switch (iftype) { + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + if (!wdev->links[link].ap.beacon_interval) + continue; + chandef = wdev->links[link].ap.chandef; + break; + case NL80211_IFTYPE_MESH_POINT: + if (!wdev->u.mesh.beacon_interval) + continue; + chandef = wdev->u.mesh.chandef; + break; + case NL80211_IFTYPE_ADHOC: + if (!wdev->u.ibss.ssid_len) + continue; + chandef = wdev->u.ibss.chandef; + break; + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_P2P_CLIENT: + /* Maybe we could consider disabling that link only? */ + if (!wdev->links[link].client.current_bss) + continue; - switch (iftype) { - case NL80211_IFTYPE_AP: - case NL80211_IFTYPE_P2P_GO: - case NL80211_IFTYPE_ADHOC: - case NL80211_IFTYPE_MESH_POINT: - wiphy_lock(wiphy); - ret = cfg80211_reg_can_beacon_relax(wiphy, &chandef, iftype); - wiphy_unlock(wiphy); + chan = wdev->links[link].client.current_bss->pub.channel; + if (!chan) + continue; - return ret; - case NL80211_IFTYPE_STATION: - case NL80211_IFTYPE_P2P_CLIENT: - return cfg80211_chandef_usable(wiphy, &chandef, - IEEE80211_CHAN_DISABLED); - default: - break; + if (!rdev->ops->get_channel || + rdev_get_channel(rdev, wdev, link, &chandef)) + cfg80211_chandef_create(&chandef, chan, + NL80211_CHAN_NO_HT); + break; + case NL80211_IFTYPE_MONITOR: + case NL80211_IFTYPE_AP_VLAN: + case NL80211_IFTYPE_P2P_DEVICE: + /* no enforcement required */ + break; + default: + /* others not implemented for now */ + WARN_ON(1); + break; + } + + wdev_unlock(wdev); + + switch (iftype) { + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + case NL80211_IFTYPE_ADHOC: + case NL80211_IFTYPE_MESH_POINT: + wiphy_lock(wiphy); + ret = cfg80211_reg_can_beacon_relax(wiphy, &chandef, + iftype); + wiphy_unlock(wiphy); + + if (!ret) + return ret; + break; + case NL80211_IFTYPE_STATION: + case NL80211_IFTYPE_P2P_CLIENT: + ret = cfg80211_chandef_usable(wiphy, &chandef, + IEEE80211_CHAN_DISABLED); + if (!ret) + return ret; + break; + default: + break; + } + + wdev_lock(wdev); } + wdev_unlock(wdev); + return true; wdev_inactive_unlock: @@ -4215,8 +4247,17 @@ * In both cases we should end the CAC on the wdev. */ list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { - if (wdev->cac_started && - !cfg80211_chandef_dfs_usable(&rdev->wiphy, &wdev->chandef)) + struct cfg80211_chan_def *chandef; + + if (!wdev->cac_started) + continue; + + /* FIXME: radar detection is tied to link 0 for now */ + chandef = wdev_chandef(wdev, 0); + if (!chandef) + continue; + + if (!cfg80211_chandef_dfs_usable(&rdev->wiphy, chandef)) rdev_end_cac(rdev, wdev->netdev); } } @@ -4270,8 +4311,10 @@ return -EINVAL; err = load_builtin_regdb_keys(); - if (err) + if (err) { + platform_device_unregister(reg_pdev); return err; + } /* We always try to get an update for the static regdomain */ err = regulatory_hint_core(cfg80211_world_regdom->alpha2); --- linux-5.19.0.orig/net/wireless/scan.c +++ linux-5.19.0/net/wireless/scan.c @@ -5,7 +5,7 @@ * Copyright 2008 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2016 Intel Deutschland GmbH - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation */ #include #include @@ -143,18 +143,12 @@ lockdep_assert_held(&rdev->bss_lock); bss->refcount++; - if (bss->pub.hidden_beacon_bss) { - bss = container_of(bss->pub.hidden_beacon_bss, - struct cfg80211_internal_bss, - pub); - bss->refcount++; - } - if (bss->pub.transmitted_bss) { - bss = container_of(bss->pub.transmitted_bss, - struct cfg80211_internal_bss, - pub); - bss->refcount++; - } + + if (bss->pub.hidden_beacon_bss) + bss_from_pub(bss->pub.hidden_beacon_bss)->refcount++; + + if (bss->pub.transmitted_bss) + bss_from_pub(bss->pub.transmitted_bss)->refcount++; } static inline void bss_ref_put(struct cfg80211_registered_device *rdev, @@ -304,7 +298,8 @@ tmp_old = cfg80211_find_ie(WLAN_EID_SSID, ie, ielen); tmp_old = (tmp_old) ? tmp_old + tmp_old[1] + 2 : ie; - while (tmp_old + tmp_old[1] + 2 - ie <= ielen) { + while (tmp_old + 2 - ie <= ielen && + tmp_old + tmp_old[1] + 2 - ie <= ielen) { if (tmp_old[0] == 0) { tmp_old++; continue; @@ -335,7 +330,8 @@ * determine if they are the same ie. */ if (tmp_old[0] == WLAN_EID_VENDOR_SPECIFIC) { - if (!memcmp(tmp_old + 2, tmp + 2, 5)) { + if (tmp_old[1] >= 5 && tmp[1] >= 5 && + !memcmp(tmp_old + 2, tmp + 2, 5)) { /* same vendor ie, copy from * subelement */ @@ -364,7 +360,8 @@ * copied to new ie, skip ssid, capability, bssid-index ie */ tmp_new = sub_copy; - while (tmp_new + tmp_new[1] + 2 - sub_copy <= subie_len) { + while (tmp_new + 2 - sub_copy <= subie_len && + tmp_new + tmp_new[1] + 2 - sub_copy <= subie_len) { if (!(tmp_new[0] == WLAN_EID_NON_TX_BSSID_CAP || tmp_new[0] == WLAN_EID_SSID)) { memcpy(pos, tmp_new, tmp_new[1] + 2); @@ -427,6 +424,15 @@ rcu_read_unlock(); + /* + * This is a bit weird - it's not on the list, but already on another + * one! The only way that could happen is if there's some BSSID/SSID + * shared by multiple APs in their multi-BSSID profiles, potentially + * with hidden SSID mixed in ... ignore it. + */ + if (!list_empty(&nontrans_bss->nontrans_list)) + return -EINVAL; + /* add to the list */ list_add_tail(&nontrans_bss->nontrans_list, &trans_bss->nontrans_list); return 0; @@ -1602,6 +1608,23 @@ u8 bssid_index; }; +static void cfg80211_update_hidden_bsses(struct cfg80211_internal_bss *known, + const struct cfg80211_bss_ies *new_ies, + const struct cfg80211_bss_ies *old_ies) +{ + struct cfg80211_internal_bss *bss; + + /* Assign beacon IEs to all sub entries */ + list_for_each_entry(bss, &known->hidden_list, hidden_list) { + const struct cfg80211_bss_ies *ies; + + ies = rcu_access_pointer(bss->pub.beacon_ies); + WARN_ON(ies != old_ies); + + rcu_assign_pointer(bss->pub.beacon_ies, new_ies); + } +} + static bool cfg80211_update_known_bss(struct cfg80211_registered_device *rdev, struct cfg80211_internal_bss *known, @@ -1625,7 +1648,6 @@ kfree_rcu((struct cfg80211_bss_ies *)old, rcu_head); } else if (rcu_access_pointer(new->pub.beacon_ies)) { const struct cfg80211_bss_ies *old; - struct cfg80211_internal_bss *bss; if (known->pub.hidden_beacon_bss && !list_empty(&known->hidden_list)) { @@ -1653,16 +1675,9 @@ if (old == rcu_access_pointer(known->pub.ies)) rcu_assign_pointer(known->pub.ies, new->pub.beacon_ies); - /* Assign beacon IEs to all sub entries */ - list_for_each_entry(bss, &known->hidden_list, hidden_list) { - const struct cfg80211_bss_ies *ies; - - ies = rcu_access_pointer(bss->pub.beacon_ies); - WARN_ON(ies != old); - - rcu_assign_pointer(bss->pub.beacon_ies, - new->pub.beacon_ies); - } + cfg80211_update_hidden_bsses(known, + rcu_access_pointer(new->pub.beacon_ies), + old); if (old) kfree_rcu((struct cfg80211_bss_ies *)old, rcu_head); @@ -1739,6 +1754,8 @@ new->refcount = 1; INIT_LIST_HEAD(&new->hidden_list); INIT_LIST_HEAD(&new->pub.nontrans_list); + /* we'll set this later if it was non-NULL */ + new->pub.transmitted_bss = NULL; if (rcu_access_pointer(tmp->pub.proberesp_ies)) { hidden = rb_find_bss(rdev, tmp, BSS_CMP_HIDE_ZLEN); @@ -2021,10 +2038,15 @@ spin_lock_bh(&rdev->bss_lock); if (cfg80211_add_nontrans_list(non_tx_data->tx_bss, &res->pub)) { - if (__cfg80211_unlink_bss(rdev, res)) + if (__cfg80211_unlink_bss(rdev, res)) { rdev->bss_generation++; + res = NULL; + } } spin_unlock_bh(&rdev->bss_lock); + + if (!res) + return NULL; } trace_cfg80211_return_bss(&res->pub); @@ -2143,6 +2165,8 @@ for_each_element_id(elem, WLAN_EID_MULTIPLE_BSSID, ie, ielen) { if (elem->datalen < 4) continue; + if (elem->data[0] < 1 || (int)elem->data[0] > 8) + continue; for_each_element(sub, elem->data + 1, elem->datalen - 1) { u8 profile_len; @@ -2279,7 +2303,7 @@ size_t new_ie_len; struct cfg80211_bss_ies *new_ies; const struct cfg80211_bss_ies *old; - u8 cpy_len; + size_t cpy_len; lockdep_assert_held(&wiphy_to_rdev(wiphy)->bss_lock); @@ -2346,6 +2370,8 @@ } else { old = rcu_access_pointer(nontrans_bss->beacon_ies); rcu_assign_pointer(nontrans_bss->beacon_ies, new_ies); + cfg80211_update_hidden_bsses(bss_from_pub(nontrans_bss), + new_ies, old); rcu_assign_pointer(nontrans_bss->ies, new_ies); if (old) kfree_rcu((struct cfg80211_bss_ies *)old, rcu_head); @@ -2501,10 +2527,15 @@ const struct cfg80211_bss_ies *ies1, *ies2; size_t ielen = len - offsetof(struct ieee80211_mgmt, u.probe_resp.variable); - struct cfg80211_non_tx_bss non_tx_data; + struct cfg80211_non_tx_bss non_tx_data = {}; res = cfg80211_inform_single_bss_frame_data(wiphy, data, mgmt, len, gfp); + + /* don't do any further MBSSID handling for S1G */ + if (ieee80211_is_s1g_beacon(mgmt->frame_control)) + return res; + if (!res || !wiphy->support_mbssid || !cfg80211_find_elem(WLAN_EID_MULTIPLE_BSSID, ie, ielen)) return res; @@ -2617,7 +2648,8 @@ spin_lock_bh(&rdev->bss_lock); list_for_each_entry(bss, &rdev->bss_list, list) { - if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel)) + if (!chandef || cfg80211_is_sub_chan(chandef, bss->pub.channel, + false)) iter(wiphy, &bss->pub, iter_data); } @@ -2626,11 +2658,12 @@ EXPORT_SYMBOL(cfg80211_bss_iter); void cfg80211_update_assoc_bss_entry(struct wireless_dev *wdev, + unsigned int link_id, struct ieee80211_channel *chan) { struct wiphy *wiphy = wdev->wiphy; struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy); - struct cfg80211_internal_bss *cbss = wdev->current_bss; + struct cfg80211_internal_bss *cbss = wdev->links[link_id].client.current_bss; struct cfg80211_internal_bss *new = NULL; struct cfg80211_internal_bss *bss; struct cfg80211_bss *nontrans_bss; --- linux-5.19.0.orig/net/wireless/sme.c +++ linux-5.19.0/net/wireless/sme.c @@ -5,7 +5,7 @@ * (for nl80211's connect() and wext) * * Copyright 2009 Johannes Berg - * Copyright (C) 2009, 2020 Intel Corporation. All rights reserved. + * Copyright (C) 2009, 2020, 2022 Intel Corporation. All rights reserved. * Copyright 2017 Intel Deutschland GmbH */ @@ -454,6 +454,20 @@ schedule_work(&rdev->conn_work); } +static void cfg80211_wdev_release_bsses(struct wireless_dev *wdev) +{ + unsigned int link; + + for_each_valid_link(wdev, link) { + if (!wdev->links[link].client.current_bss) + continue; + cfg80211_unhold_bss(wdev->links[link].client.current_bss); + cfg80211_put_bss(wdev->wiphy, + &wdev->links[link].client.current_bss->pub); + wdev->links[link].client.current_bss = NULL; + } +} + static int cfg80211_sme_get_conn_ies(struct wireless_dev *wdev, const u8 *ies, size_t ies_len, const u8 **out_ies, size_t *out_ies_len) @@ -521,12 +535,11 @@ if (!rdev->ops->auth || !rdev->ops->assoc) return -EOPNOTSUPP; - if (wdev->current_bss) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); - wdev->current_bss = NULL; + cfg80211_wdev_release_bsses(wdev); + if (wdev->connected) { cfg80211_sme_free(wdev); + wdev->connected = false; } if (wdev->conn) @@ -563,8 +576,8 @@ wdev->conn->auto_auth = false; } - wdev->conn->params.ssid = wdev->ssid; - wdev->conn->params.ssid_len = wdev->ssid_len; + wdev->conn->params.ssid = wdev->u.client.ssid; + wdev->conn->params.ssid_len = wdev->u.client.ssid_len; /* see if we have the bss already */ bss = cfg80211_get_conn_bss(wdev); @@ -648,7 +661,7 @@ list_for_each_entry(rdev, &cfg80211_rdev_list, list) { list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { wdev_lock(wdev); - if (wdev->conn || wdev->current_bss || + if (wdev->conn || wdev->connected || cfg80211_beaconing_iface_active(wdev)) is_all_idle = false; wdev_unlock(wdev); @@ -668,7 +681,6 @@ DECLARE_WORK(cfg80211_disconnect_work, disconnect_work); - /* * API calls for drivers implementing connect/disconnect and * SME event handling @@ -729,23 +741,19 @@ if (!cr->bss && (cr->status == WLAN_STATUS_SUCCESS)) { WARN_ON_ONCE(!wiphy_to_rdev(wdev->wiphy)->ops->connect); cr->bss = cfg80211_get_bss(wdev->wiphy, NULL, cr->bssid, - wdev->ssid, wdev->ssid_len, + wdev->u.client.ssid, wdev->u.client.ssid_len, wdev->conn_bss_type, IEEE80211_PRIVACY_ANY); if (cr->bss) cfg80211_hold_bss(bss_from_pub(cr->bss)); } - if (wdev->current_bss) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); - wdev->current_bss = NULL; - } + cfg80211_wdev_release_bsses(wdev); if (cr->status != WLAN_STATUS_SUCCESS) { kfree_sensitive(wdev->connect_keys); wdev->connect_keys = NULL; - wdev->ssid_len = 0; + wdev->u.client.ssid_len = 0; wdev->conn_owner_nlportid = 0; if (cr->bss) { cfg80211_unhold_bss(bss_from_pub(cr->bss)); @@ -758,7 +766,9 @@ if (WARN_ON(!cr->bss)) return; - wdev->current_bss = bss_from_pub(cr->bss); + wdev->links[0].client.current_bss = bss_from_pub(cr->bss); + wdev->connected = true; + ether_addr_copy(wdev->u.client.connected_addr, cr->bss->bssid); if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP)) cfg80211_upload_connect_keys(wdev); @@ -801,7 +811,7 @@ found = cfg80211_get_bss(wdev->wiphy, NULL, params->bss->bssid, - wdev->ssid, wdev->ssid_len, + wdev->u.client.ssid, wdev->u.client.ssid_len, wdev->conn_bss_type, IEEE80211_PRIVACY_ANY); if (found) { @@ -906,18 +916,17 @@ wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)) goto out; - if (WARN_ON(!wdev->current_bss)) + if (WARN_ON(!wdev->connected)) goto out; - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); - wdev->current_bss = NULL; + cfg80211_wdev_release_bsses(wdev); if (WARN_ON(!info->bss)) return; cfg80211_hold_bss(bss_from_pub(info->bss)); - wdev->current_bss = bss_from_pub(info->bss); + wdev->links[0].client.current_bss = bss_from_pub(info->bss); + ether_addr_copy(wdev->u.client.connected_addr, info->bss->bssid); wdev->unprot_beacon_reported = 0; nl80211_send_roamed(wiphy_to_rdev(wdev->wiphy), @@ -963,8 +972,8 @@ if (!info->bss) { info->bss = cfg80211_get_bss(wdev->wiphy, info->channel, - info->bssid, wdev->ssid, - wdev->ssid_len, + info->bssid, wdev->u.client.ssid, + wdev->u.client.ssid_len, wdev->conn_bss_type, IEEE80211_PRIVACY_ANY); } @@ -1035,8 +1044,8 @@ wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)) return; - if (WARN_ON(!wdev->current_bss) || - WARN_ON(!ether_addr_equal(wdev->current_bss->pub.bssid, bssid))) + if (WARN_ON(!wdev->connected) || + WARN_ON(!ether_addr_equal(wdev->u.client.connected_addr, bssid))) return; nl80211_send_port_authorized(wiphy_to_rdev(wdev->wiphy), wdev->netdev, @@ -1088,13 +1097,9 @@ wdev->iftype != NL80211_IFTYPE_P2P_CLIENT)) return; - if (wdev->current_bss) { - cfg80211_unhold_bss(wdev->current_bss); - cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); - } - - wdev->current_bss = NULL; - wdev->ssid_len = 0; + cfg80211_wdev_release_bsses(wdev); + wdev->connected = false; + wdev->u.client.ssid_len = 0; wdev->conn_owner_nlportid = 0; kfree_sensitive(wdev->connect_keys); wdev->connect_keys = NULL; @@ -1183,19 +1188,20 @@ * already connected, so reject a new SSID unless it's the * same (which is the case for re-association.) */ - if (wdev->ssid_len && - (wdev->ssid_len != connect->ssid_len || - memcmp(wdev->ssid, connect->ssid, wdev->ssid_len))) + if (wdev->u.client.ssid_len && + (wdev->u.client.ssid_len != connect->ssid_len || + memcmp(wdev->u.client.ssid, connect->ssid, wdev->u.client.ssid_len))) return -EALREADY; /* * If connected, reject (re-)association unless prev_bssid * matches the current BSSID. */ - if (wdev->current_bss) { + if (wdev->connected) { if (!prev_bssid) return -EALREADY; - if (!ether_addr_equal(prev_bssid, wdev->current_bss->pub.bssid)) + if (!ether_addr_equal(prev_bssid, + wdev->u.client.connected_addr)) return -ENOTCONN; } @@ -1246,8 +1252,8 @@ } wdev->connect_keys = connkeys; - memcpy(wdev->ssid, connect->ssid, connect->ssid_len); - wdev->ssid_len = connect->ssid_len; + memcpy(wdev->u.client.ssid, connect->ssid, connect->ssid_len); + wdev->u.client.ssid_len = connect->ssid_len; wdev->conn_bss_type = connect->pbss ? IEEE80211_BSS_TYPE_PBSS : IEEE80211_BSS_TYPE_ESS; @@ -1263,8 +1269,8 @@ * This could be reassoc getting refused, don't clear * ssid_len in that case. */ - if (!wdev->current_bss) - wdev->ssid_len = 0; + if (!wdev->connected) + wdev->u.client.ssid_len = 0; return err; } @@ -1288,7 +1294,7 @@ err = cfg80211_sme_disconnect(wdev, reason); else if (!rdev->ops->disconnect) cfg80211_mlme_down(rdev, dev); - else if (wdev->ssid_len) + else if (wdev->u.client.ssid_len) err = rdev_disconnect(rdev, dev, reason); /* @@ -1296,8 +1302,8 @@ * in which case cfg80211_disconnected() will take care of * this later. */ - if (!wdev->current_bss) - wdev->ssid_len = 0; + if (!wdev->connected) + wdev->u.client.ssid_len = 0; return err; } @@ -1321,7 +1327,7 @@ break; case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: - __cfg80211_stop_ap(rdev, wdev->netdev, false); + __cfg80211_stop_ap(rdev, wdev->netdev, -1, false); break; case NL80211_IFTYPE_MESH_POINT: __cfg80211_leave_mesh(rdev, wdev->netdev); @@ -1333,7 +1339,7 @@ * ops->disconnect not implemented. Otherwise we can * use cfg80211_disconnect. */ - if (rdev->ops->disconnect || wdev->current_bss) + if (rdev->ops->disconnect || wdev->connected) cfg80211_disconnect(rdev, wdev->netdev, WLAN_REASON_DEAUTH_LEAVING, true); --- linux-5.19.0.orig/net/wireless/trace.h +++ linux-5.19.0/net/wireless/trace.h @@ -569,6 +569,7 @@ __field(bool, privacy) __field(enum nl80211_auth_type, auth_type) __field(int, inactivity_timeout) + __field(unsigned int, link_id) ), TP_fast_assign( WIPHY_ASSIGN; @@ -583,16 +584,17 @@ __entry->inactivity_timeout = settings->inactivity_timeout; memset(__entry->ssid, 0, IEEE80211_MAX_SSID_LEN + 1); memcpy(__entry->ssid, settings->ssid, settings->ssid_len); + __entry->link_id = settings->beacon.link_id; ), TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", AP settings - ssid: %s, " CHAN_DEF_PR_FMT ", beacon interval: %d, dtim period: %d, " "hidden ssid: %d, wpa versions: %u, privacy: %s, " - "auth type: %d, inactivity timeout: %d", + "auth type: %d, inactivity timeout: %d, link_id: %d", WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->ssid, CHAN_DEF_PR_ARG, __entry->beacon_interval, __entry->dtim_period, __entry->hidden_ssid, __entry->wpa_ver, BOOL_TO_STR(__entry->privacy), __entry->auth_type, - __entry->inactivity_timeout) + __entry->inactivity_timeout, __entry->link_id) ); TRACE_EVENT(rdev_change_beacon, @@ -602,6 +604,7 @@ TP_STRUCT__entry( WIPHY_ENTRY NETDEV_ENTRY + __field(int, link_id) __dynamic_array(u8, head, info ? info->head_len : 0) __dynamic_array(u8, tail, info ? info->tail_len : 0) __dynamic_array(u8, beacon_ies, info ? info->beacon_ies_len : 0) @@ -615,6 +618,7 @@ WIPHY_ASSIGN; NETDEV_ASSIGN; if (info) { + __entry->link_id = info->link_id; if (info->head) memcpy(__get_dynamic_array(head), info->head, info->head_len); @@ -635,9 +639,30 @@ if (info->probe_resp) memcpy(__get_dynamic_array(probe_resp), info->probe_resp, info->probe_resp_len); + } else { + __entry->link_id = -1; } ), - TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) + TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id:%d", + WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) +); + +TRACE_EVENT(rdev_stop_ap, + TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, + unsigned int link_id), + TP_ARGS(wiphy, netdev, link_id), + TP_STRUCT__entry( + WIPHY_ENTRY + NETDEV_ENTRY + __field(unsigned int, link_id) + ), + TP_fast_assign( + WIPHY_ASSIGN; + NETDEV_ASSIGN; + __entry->link_id = link_id; + ), + TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d", + WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id) ); DECLARE_EVENT_CLASS(wiphy_netdev_evt, @@ -654,11 +679,6 @@ TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT, WIPHY_PR_ARG, NETDEV_PR_ARG) ); -DEFINE_EVENT(wiphy_netdev_evt, rdev_stop_ap, - TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), - TP_ARGS(wiphy, netdev) -); - DEFINE_EVENT(wiphy_netdev_evt, rdev_set_rekey_data, TP_PROTO(struct wiphy *wiphy, struct net_device *netdev), TP_ARGS(wiphy, netdev) @@ -1619,20 +1639,24 @@ TRACE_EVENT(rdev_set_bitrate_mask, TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, + unsigned int link_id, const u8 *peer, const struct cfg80211_bitrate_mask *mask), - TP_ARGS(wiphy, netdev, peer, mask), + TP_ARGS(wiphy, netdev, link_id, peer, mask), TP_STRUCT__entry( WIPHY_ENTRY NETDEV_ENTRY + __field(unsigned int, link_id) MAC_ENTRY(peer) ), TP_fast_assign( WIPHY_ASSIGN; NETDEV_ASSIGN; + __entry->link_id = link_id; MAC_ASSIGN(peer, peer); ), - TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", peer: " MAC_PR_FMT, - WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(peer)) + TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", link_id: %d, peer: " MAC_PR_FMT, + WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->link_id, + MAC_PR_ARG(peer)) ); TRACE_EVENT(rdev_update_mgmt_frame_registrations, @@ -2040,9 +2064,22 @@ WIPHY_PR_ARG, NETDEV_PR_ARG, __entry->noack_map) ); -DEFINE_EVENT(wiphy_wdev_evt, rdev_get_channel, - TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev), - TP_ARGS(wiphy, wdev) +TRACE_EVENT(rdev_get_channel, + TP_PROTO(struct wiphy *wiphy, struct wireless_dev *wdev, + unsigned int link_id), + TP_ARGS(wiphy, wdev, link_id), + TP_STRUCT__entry( + WIPHY_ENTRY + WDEV_ENTRY + __field(unsigned int, link_id) + ), + TP_fast_assign( + WIPHY_ASSIGN; + WDEV_ASSIGN; + __entry->link_id = link_id; + ), + TP_printk(WIPHY_PR_FMT ", " WDEV_PR_FMT ", link_id: %u", + WIPHY_PR_ARG, WDEV_PR_ARG, __entry->link_id) ); TRACE_EVENT(rdev_return_chandef, @@ -2296,20 +2333,24 @@ TRACE_EVENT(rdev_set_ap_chanwidth, TP_PROTO(struct wiphy *wiphy, struct net_device *netdev, + unsigned int link_id, struct cfg80211_chan_def *chandef), - TP_ARGS(wiphy, netdev, chandef), + TP_ARGS(wiphy, netdev, link_id, chandef), TP_STRUCT__entry( WIPHY_ENTRY NETDEV_ENTRY CHAN_DEF_ENTRY + __field(unsigned int, link_id) ), TP_fast_assign( WIPHY_ASSIGN; NETDEV_ASSIGN; CHAN_DEF_ASSIGN(chandef); + __entry->link_id = link_id; ), - TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, - WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG) + TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", + WIPHY_PR_ARG, NETDEV_PR_ARG, CHAN_DEF_PR_ARG, + __entry->link_id) ); TRACE_EVENT(rdev_add_tx_ts, @@ -3022,18 +3063,21 @@ TRACE_EVENT(cfg80211_ch_switch_notify, TP_PROTO(struct net_device *netdev, - struct cfg80211_chan_def *chandef), - TP_ARGS(netdev, chandef), + struct cfg80211_chan_def *chandef, + unsigned int link_id), + TP_ARGS(netdev, chandef, link_id), TP_STRUCT__entry( NETDEV_ENTRY CHAN_DEF_ENTRY + __field(unsigned int, link_id) ), TP_fast_assign( NETDEV_ASSIGN; CHAN_DEF_ASSIGN(chandef); + __entry->link_id = link_id; ), - TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT, - NETDEV_PR_ARG, CHAN_DEF_PR_ARG) + TP_printk(NETDEV_PR_FMT ", " CHAN_DEF_PR_FMT ", link:%d", + NETDEV_PR_ARG, CHAN_DEF_PR_ARG, __entry->link_id) ); TRACE_EVENT(cfg80211_ch_switch_started_notify, --- linux-5.19.0.orig/net/wireless/util.c +++ linux-5.19.0/net/wireless/util.c @@ -5,7 +5,7 @@ * Copyright 2007-2009 Johannes Berg * Copyright 2013-2014 Intel Mobile Communications GmbH * Copyright 2017 Intel Deutschland GmbH - * Copyright (C) 2018-2021 Intel Corporation + * Copyright (C) 2018-2022 Intel Corporation */ #include #include @@ -1041,7 +1041,6 @@ return -EBUSY; dev->ieee80211_ptr->use_4addr = false; - dev->ieee80211_ptr->mesh_id_up_len = 0; wdev_lock(dev->ieee80211_ptr); rdev_set_qos_map(rdev, dev, NULL); wdev_unlock(dev->ieee80211_ptr); @@ -1049,7 +1048,7 @@ switch (otype) { case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: - cfg80211_stop_ap(rdev, dev, true); + cfg80211_stop_ap(rdev, dev, -1, true); break; case NL80211_IFTYPE_ADHOC: cfg80211_leave_ibss(rdev, dev, false); @@ -1073,6 +1072,11 @@ cfg80211_process_rdev_events(rdev); cfg80211_mlme_purge_registrations(dev->ieee80211_ptr); + + memset(&dev->ieee80211_ptr->u, 0, + sizeof(dev->ieee80211_ptr->u)); + memset(&dev->ieee80211_ptr->links, 0, + sizeof(dev->ieee80211_ptr->links)); } err = rdev_change_virtual_intf(rdev, dev, ntype, params); @@ -1357,7 +1361,7 @@ 25599, /* 4.166666... */ 17067, /* 2.777777... */ 12801, /* 2.083333... */ - 11769, /* 1.851851... */ + 11377, /* 1.851725... */ 10239, /* 1.666666... */ 8532, /* 1.388888... */ 7680, /* 1.250000... */ @@ -1440,7 +1444,7 @@ 25599, /* 4.166666... */ 17067, /* 2.777777... */ 12801, /* 2.083333... */ - 11769, /* 1.851851... */ + 11377, /* 1.851725... */ 10239, /* 1.666666... */ 8532, /* 1.388888... */ 7680, /* 1.250000... */ @@ -1551,10 +1555,12 @@ tmp = result; tmp *= SCALE; do_div(tmp, mcs_divisors[rate->mcs]); - result = tmp; /* and take NSS */ - result = (result * rate->nss) / 8; + tmp *= rate->nss; + do_div(tmp, 8); + + result = tmp; return result / 10000; } @@ -1930,6 +1936,24 @@ } EXPORT_SYMBOL(ieee80211_chandef_to_operating_class); +static int cfg80211_wdev_bi(struct wireless_dev *wdev) +{ + switch (wdev->iftype) { + case NL80211_IFTYPE_AP: + case NL80211_IFTYPE_P2P_GO: + WARN_ON(wdev->valid_links); + return wdev->links[0].ap.beacon_interval; + case NL80211_IFTYPE_MESH_POINT: + return wdev->u.mesh.beacon_interval; + case NL80211_IFTYPE_ADHOC: + return wdev->u.ibss.beacon_interval; + default: + break; + } + + return 0; +} + static void cfg80211_calculate_bi_data(struct wiphy *wiphy, u32 new_beacon_int, u32 *beacon_int_gcd, bool *beacon_int_different) @@ -1940,19 +1964,27 @@ *beacon_int_different = false; list_for_each_entry(wdev, &wiphy->wdev_list, list) { - if (!wdev->beacon_interval) + int wdev_bi; + + /* this feature isn't supported with MLO */ + if (wdev->valid_links) + continue; + + wdev_bi = cfg80211_wdev_bi(wdev); + + if (!wdev_bi) continue; if (!*beacon_int_gcd) { - *beacon_int_gcd = wdev->beacon_interval; + *beacon_int_gcd = wdev_bi; continue; } - if (wdev->beacon_interval == *beacon_int_gcd) + if (wdev_bi == *beacon_int_gcd) continue; *beacon_int_different = true; - *beacon_int_gcd = gcd(*beacon_int_gcd, wdev->beacon_interval); + *beacon_int_gcd = gcd(*beacon_int_gcd, wdev_bi); } if (new_beacon_int && *beacon_int_gcd != new_beacon_int) { --- linux-5.19.0.orig/net/wireless/wext-compat.c +++ linux-5.19.0/net/wireless/wext-compat.c @@ -7,7 +7,7 @@ * we directly assign the wireless handlers of wireless interfaces. * * Copyright 2008-2009 Johannes Berg - * Copyright (C) 2019-2021 Intel Corporation + * Copyright (C) 2019-2022 Intel Corporation */ #include @@ -415,6 +415,9 @@ int err, i; bool rejoin = false; + if (wdev->valid_links) + return -EINVAL; + if (pairwise && !addr) return -EINVAL; @@ -437,7 +440,7 @@ return -EOPNOTSUPP; if (params->cipher == WLAN_CIPHER_SUITE_AES_CMAC) { - if (!wdev->current_bss) + if (!wdev->connected) return -ENOLINK; if (!rdev->ops->set_default_mgmt_key) @@ -450,7 +453,9 @@ if (remove) { err = 0; - if (wdev->current_bss) { + if (wdev->connected || + (wdev->iftype == NL80211_IFTYPE_ADHOC && + wdev->u.ibss.current_bss)) { /* * If removing the current TX key, we will need to * join a new IBSS without the privacy bit clear. @@ -501,7 +506,9 @@ return -EINVAL; err = 0; - if (wdev->current_bss) + if (wdev->connected || + (wdev->iftype == NL80211_IFTYPE_ADHOC && + wdev->u.ibss.current_bss)) err = rdev_add_key(rdev, dev, idx, pairwise, addr, params); else if (params->cipher != WLAN_CIPHER_SUITE_WEP40 && params->cipher != WLAN_CIPHER_SUITE_WEP104) @@ -526,7 +533,9 @@ if ((params->cipher == WLAN_CIPHER_SUITE_WEP40 || params->cipher == WLAN_CIPHER_SUITE_WEP104) && (tx_key || (!addr && wdev->wext.default_key == -1))) { - if (wdev->current_bss) { + if (wdev->connected || + (wdev->iftype == NL80211_IFTYPE_ADHOC && + wdev->u.ibss.current_bss)) { /* * If we are getting a new TX key from not having * had one before we need to join a new IBSS with @@ -549,7 +558,9 @@ if (params->cipher == WLAN_CIPHER_SUITE_AES_CMAC && (tx_key || (!addr && wdev->wext.default_mgmt_key == -1))) { - if (wdev->current_bss) + if (wdev->connected || + (wdev->iftype == NL80211_IFTYPE_ADHOC && + wdev->u.ibss.current_bss)) err = rdev_set_default_mgmt_key(rdev, dev, idx); if (!err) wdev->wext.default_mgmt_key = idx; @@ -595,6 +606,11 @@ return -EOPNOTSUPP; wiphy_lock(&rdev->wiphy); + if (wdev->valid_links) { + err = -EOPNOTSUPP; + goto out; + } + idx = erq->flags & IW_ENCODE_INDEX; if (idx == 0) { idx = wdev->wext.default_key; @@ -613,7 +629,9 @@ /* No key data - just set the default TX key index */ err = 0; wdev_lock(wdev); - if (wdev->current_bss) + if (wdev->connected || + (wdev->iftype == NL80211_IFTYPE_ADHOC && + wdev->u.ibss.current_bss)) err = rdev_set_default_key(rdev, dev, idx, true, true); if (!err) @@ -865,7 +883,7 @@ break; } - ret = rdev_get_channel(rdev, wdev, &chandef); + ret = rdev_get_channel(rdev, wdev, 0, &chandef); if (ret) break; freq->m = chandef.chan->center_freq; @@ -1270,7 +1288,10 @@ return -EINVAL; wiphy_lock(&rdev->wiphy); - ret = rdev_set_bitrate_mask(rdev, dev, NULL, &mask); + if (dev->ieee80211_ptr->valid_links) + ret = -EOPNOTSUPP; + else + ret = rdev_set_bitrate_mask(rdev, dev, 0, NULL, &mask); wiphy_unlock(&rdev->wiphy); return ret; @@ -1294,8 +1315,9 @@ err = 0; wdev_lock(wdev); - if (wdev->current_bss) - memcpy(addr, wdev->current_bss->pub.bssid, ETH_ALEN); + if (!wdev->valid_links && wdev->links[0].client.current_bss) + memcpy(addr, wdev->links[0].client.current_bss->pub.bssid, + ETH_ALEN); else err = -EOPNOTSUPP; wdev_unlock(wdev); @@ -1339,11 +1361,11 @@ /* Grab BSSID of current BSS, if any */ wdev_lock(wdev); - if (!wdev->current_bss) { + if (wdev->valid_links || !wdev->links[0].client.current_bss) { wdev_unlock(wdev); return NULL; } - memcpy(bssid, wdev->current_bss->pub.bssid, ETH_ALEN); + memcpy(bssid, wdev->links[0].client.current_bss->pub.bssid, ETH_ALEN); wdev_unlock(wdev); memset(&sinfo, 0, sizeof(sinfo)); --- linux-5.19.0.orig/net/wireless/wext-core.c +++ linux-5.19.0/net/wireless/wext-core.c @@ -468,6 +468,7 @@ struct __compat_iw_event *compat_event; struct compat_iw_point compat_wrqu; struct sk_buff *compskb; + int ptr_len; #endif /* @@ -582,6 +583,9 @@ nlmsg_end(skb, nlh); #ifdef CONFIG_COMPAT hdr_len = compat_event_type_size[descr->header_type]; + + /* ptr_len is remaining size in event header apart from LCP */ + ptr_len = hdr_len - IW_EV_COMPAT_LCP_LEN; event_len = hdr_len + extra_len; compskb = nlmsg_new(NLMSG_DEFAULT_SIZE, GFP_ATOMIC); @@ -612,16 +616,15 @@ if (descr->header_type == IW_HEADER_TYPE_POINT) { compat_wrqu.length = wrqu->data.length; compat_wrqu.flags = wrqu->data.flags; - memcpy(&compat_event->pointer, - ((char *) &compat_wrqu) + IW_EV_COMPAT_POINT_OFF, - hdr_len - IW_EV_COMPAT_LCP_LEN); + memcpy(compat_event->ptr_bytes, + ((char *)&compat_wrqu) + IW_EV_COMPAT_POINT_OFF, + ptr_len); if (extra_len) - memcpy(((char *) compat_event) + hdr_len, - extra, extra_len); + memcpy(&compat_event->ptr_bytes[ptr_len], + extra, extra_len); } else { /* extra_len must be zero, so no if (extra) needed */ - memcpy(&compat_event->pointer, wrqu, - hdr_len - IW_EV_COMPAT_LCP_LEN); + memcpy(compat_event->ptr_bytes, wrqu, ptr_len); } nlmsg_end(compskb, nlh); --- linux-5.19.0.orig/net/wireless/wext-sme.c +++ linux-5.19.0/net/wireless/wext-sme.c @@ -3,7 +3,7 @@ * cfg80211 wext compat for managed mode. * * Copyright 2009 Johannes Berg - * Copyright (C) 2009, 2020-2021 Intel Corporation. + * Copyright (C) 2009, 2020-2022 Intel Corporation */ #include @@ -124,9 +124,12 @@ if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION)) return -EINVAL; + if (wdev->valid_links) + return -EOPNOTSUPP; + wdev_lock(wdev); - if (wdev->current_bss) - chan = wdev->current_bss->pub.channel; + if (wdev->links[0].client.current_bss) + chan = wdev->links[0].client.current_bss->pub.channel; else if (wdev->wext.connect.channel) chan = wdev->wext.connect.channel; wdev_unlock(wdev); @@ -208,15 +211,19 @@ if (WARN_ON(wdev->iftype != NL80211_IFTYPE_STATION)) return -EINVAL; + if (wdev->valid_links) + return -EINVAL; + data->flags = 0; wdev_lock(wdev); - if (wdev->current_bss) { + if (wdev->links[0].client.current_bss) { const struct element *ssid_elem; rcu_read_lock(); - ssid_elem = ieee80211_bss_get_elem(&wdev->current_bss->pub, - WLAN_EID_SSID); + ssid_elem = ieee80211_bss_get_elem( + &wdev->links[0].client.current_bss->pub, + WLAN_EID_SSID); if (ssid_elem) { data->flags = 1; data->length = ssid_elem->datalen; @@ -300,8 +307,14 @@ ap_addr->sa_family = ARPHRD_ETHER; wdev_lock(wdev); - if (wdev->current_bss) - memcpy(ap_addr->sa_data, wdev->current_bss->pub.bssid, ETH_ALEN); + if (wdev->valid_links) { + wdev_unlock(wdev); + return -EOPNOTSUPP; + } + if (wdev->links[0].client.current_bss) + memcpy(ap_addr->sa_data, + wdev->links[0].client.current_bss->pub.bssid, + ETH_ALEN); else eth_zero_addr(ap_addr->sa_data); wdev_unlock(wdev); --- linux-5.19.0.orig/net/x25/x25_dev.c +++ linux-5.19.0/net/x25/x25_dev.c @@ -117,7 +117,7 @@ if (!pskb_may_pull(skb, 1)) { x25_neigh_put(nb); - return 0; + goto drop; } switch (skb->data[0]) { --- linux-5.19.0.orig/net/xdp/xsk.c +++ linux-5.19.0/net/xdp/xsk.c @@ -355,16 +355,15 @@ return nb_pkts; } -u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 max_entries) +u32 xsk_tx_peek_release_desc_batch(struct xsk_buff_pool *pool, u32 nb_pkts) { struct xdp_sock *xs; - u32 nb_pkts; rcu_read_lock(); if (!list_is_singular(&pool->xsk_tx_list)) { /* Fallback to the non-batched version */ rcu_read_unlock(); - return xsk_tx_peek_release_fallback(pool, max_entries); + return xsk_tx_peek_release_fallback(pool, nb_pkts); } xs = list_first_or_null_rcu(&pool->xsk_tx_list, struct xdp_sock, tx_list); @@ -373,12 +372,7 @@ goto out; } - max_entries = xskq_cons_nb_entries(xs->tx, max_entries); - nb_pkts = xskq_cons_read_desc_batch(xs->tx, pool, max_entries); - if (!nb_pkts) { - xs->tx->queue_empty_descs++; - goto out; - } + nb_pkts = xskq_cons_nb_entries(xs->tx, nb_pkts); /* This is the backpressure mechanism for the Tx path. Try to * reserve space in the completion queue for all packets, but @@ -386,12 +380,18 @@ * packets. This avoids having to implement any buffering in * the Tx path. */ - nb_pkts = xskq_prod_reserve_addr_batch(pool->cq, pool->tx_descs, nb_pkts); + nb_pkts = xskq_prod_nb_free(pool->cq, nb_pkts); if (!nb_pkts) goto out; - xskq_cons_release_n(xs->tx, max_entries); + nb_pkts = xskq_cons_read_desc_batch(xs->tx, pool, nb_pkts); + if (!nb_pkts) { + xs->tx->queue_empty_descs++; + goto out; + } + __xskq_cons_release(xs->tx); + xskq_prod_write_addr_batch(pool->cq, pool->tx_descs, nb_pkts); xs->sk.sk_write_space(&xs->sk); out: @@ -951,8 +951,8 @@ goto out_unlock; } - err = xp_assign_dev_shared(xs->pool, umem_xs->umem, - dev, qid); + err = xp_assign_dev_shared(xs->pool, umem_xs, dev, + qid); if (err) { xp_destroy(xs->pool); xs->pool = NULL; --- linux-5.19.0.orig/net/xdp/xsk_buff_pool.c +++ linux-5.19.0/net/xdp/xsk_buff_pool.c @@ -212,17 +212,18 @@ return err; } -int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_umem *umem, +int xp_assign_dev_shared(struct xsk_buff_pool *pool, struct xdp_sock *umem_xs, struct net_device *dev, u16 queue_id) { u16 flags; + struct xdp_umem *umem = umem_xs->umem; /* One fill and completion ring required for each queue id. */ if (!pool->fq || !pool->cq) return -EINVAL; flags = umem->zc ? XDP_ZEROCOPY : XDP_COPY; - if (pool->uses_need_wakeup) + if (umem_xs->pool->uses_need_wakeup) flags |= XDP_USE_NEED_WAKEUP; return xp_assign_dev(pool, dev, queue_id, flags); @@ -379,6 +380,16 @@ static int xp_init_dma_info(struct xsk_buff_pool *pool, struct xsk_dma_map *dma_map) { + if (!pool->unaligned) { + u32 i; + + for (i = 0; i < pool->heads_cnt; i++) { + struct xdp_buff_xsk *xskb = &pool->heads[i]; + + xp_init_xskb_dma(xskb, pool, dma_map->dma_pages, xskb->orig_addr); + } + } + pool->dma_pages = kvcalloc(dma_map->dma_pages_cnt, sizeof(*pool->dma_pages), GFP_KERNEL); if (!pool->dma_pages) return -ENOMEM; @@ -428,12 +439,6 @@ if (pool->unaligned) xp_check_dma_contiguity(dma_map); - else - for (i = 0; i < pool->heads_cnt; i++) { - struct xdp_buff_xsk *xskb = &pool->heads[i]; - - xp_init_xskb_dma(xskb, pool, dma_map->dma_pages, xskb->orig_addr); - } err = xp_init_dma_info(pool, dma_map); if (err) { --- linux-5.19.0.orig/net/xdp/xsk_queue.h +++ linux-5.19.0/net/xdp/xsk_queue.h @@ -205,6 +205,11 @@ return false; } +static inline void xskq_cons_release_n(struct xsk_queue *q, u32 cnt) +{ + q->cached_cons += cnt; +} + static inline u32 xskq_cons_read_desc_batch(struct xsk_queue *q, struct xsk_buff_pool *pool, u32 max) { @@ -226,6 +231,8 @@ cached_cons++; } + /* Release valid plus any invalid entries */ + xskq_cons_release_n(q, cached_cons - q->cached_cons); return nb_entries; } @@ -291,11 +298,6 @@ q->cached_cons++; } -static inline void xskq_cons_release_n(struct xsk_queue *q, u32 cnt) -{ - q->cached_cons += cnt; -} - static inline u32 xskq_cons_present_entries(struct xsk_queue *q) { /* No barriers needed since data is not accessed */ @@ -350,21 +352,17 @@ return 0; } -static inline u32 xskq_prod_reserve_addr_batch(struct xsk_queue *q, struct xdp_desc *descs, - u32 max) +static inline void xskq_prod_write_addr_batch(struct xsk_queue *q, struct xdp_desc *descs, + u32 nb_entries) { struct xdp_umem_ring *ring = (struct xdp_umem_ring *)q->ring; - u32 nb_entries, i, cached_prod; - - nb_entries = xskq_prod_nb_free(q, max); + u32 i, cached_prod; /* A, matches D */ cached_prod = q->cached_prod; for (i = 0; i < nb_entries; i++) ring->desc[cached_prod++ & q->ring_mask] = descs[i].addr; q->cached_prod = cached_prod; - - return nb_entries; } static inline int xskq_prod_reserve_desc(struct xsk_queue *q, --- linux-5.19.0.orig/net/xfrm/espintcp.c +++ linux-5.19.0/net/xfrm/espintcp.c @@ -168,7 +168,7 @@ { struct espintcp_ctx *ctx = espintcp_getctx(sk); - if (skb_queue_len(&ctx->out_queue) >= netdev_max_backlog) + if (skb_queue_len(&ctx->out_queue) >= READ_ONCE(netdev_max_backlog)) return -ENOBUFS; __skb_queue_tail(&ctx->out_queue, skb); --- linux-5.19.0.orig/net/xfrm/xfrm_device.c +++ linux-5.19.0/net/xfrm/xfrm_device.c @@ -97,6 +97,18 @@ } } +static inline bool xmit_xfrm_check_overflow(struct sk_buff *skb) +{ + struct xfrm_offload *xo = xfrm_offload(skb); + __u32 seq = xo->seq.low; + + seq += skb_shinfo(skb)->gso_segs; + if (unlikely(seq < xo->seq.low)) + return true; + + return false; +} + struct sk_buff *validate_xmit_xfrm(struct sk_buff *skb, netdev_features_t features, bool *again) { int err; @@ -134,7 +146,8 @@ return skb; } - if (skb_is_gso(skb) && unlikely(x->xso.dev != dev)) { + if (skb_is_gso(skb) && (unlikely(x->xso.dev != dev) || + unlikely(xmit_xfrm_check_overflow(skb)))) { struct sk_buff *segs; /* Packet got rerouted, fixup features and segment it. */ --- linux-5.19.0.orig/net/xfrm/xfrm_input.c +++ linux-5.19.0/net/xfrm/xfrm_input.c @@ -24,7 +24,8 @@ #include "xfrm_inout.h" struct xfrm_trans_tasklet { - struct tasklet_struct tasklet; + struct work_struct work; + spinlock_t queue_lock; struct sk_buff_head queue; }; @@ -669,7 +670,6 @@ x->curlft.bytes += skb->len; x->curlft.packets++; - x->curlft.use_time = ktime_get_real_seconds(); spin_unlock(&x->lock); @@ -761,18 +761,22 @@ } EXPORT_SYMBOL(xfrm_input_resume); -static void xfrm_trans_reinject(struct tasklet_struct *t) +static void xfrm_trans_reinject(struct work_struct *work) { - struct xfrm_trans_tasklet *trans = from_tasklet(trans, t, tasklet); + struct xfrm_trans_tasklet *trans = container_of(work, struct xfrm_trans_tasklet, work); struct sk_buff_head queue; struct sk_buff *skb; __skb_queue_head_init(&queue); + spin_lock_bh(&trans->queue_lock); skb_queue_splice_init(&trans->queue, &queue); + spin_unlock_bh(&trans->queue_lock); + local_bh_disable(); while ((skb = __skb_dequeue(&queue))) XFRM_TRANS_SKB_CB(skb)->finish(XFRM_TRANS_SKB_CB(skb)->net, NULL, skb); + local_bh_enable(); } int xfrm_trans_queue_net(struct net *net, struct sk_buff *skb, @@ -783,15 +787,17 @@ trans = this_cpu_ptr(&xfrm_trans_tasklet); - if (skb_queue_len(&trans->queue) >= netdev_max_backlog) + if (skb_queue_len(&trans->queue) >= READ_ONCE(netdev_max_backlog)) return -ENOBUFS; BUILD_BUG_ON(sizeof(struct xfrm_trans_cb) > sizeof(skb->cb)); XFRM_TRANS_SKB_CB(skb)->finish = finish; XFRM_TRANS_SKB_CB(skb)->net = net; + spin_lock_bh(&trans->queue_lock); __skb_queue_tail(&trans->queue, skb); - tasklet_schedule(&trans->tasklet); + spin_unlock_bh(&trans->queue_lock); + schedule_work(&trans->work); return 0; } EXPORT_SYMBOL(xfrm_trans_queue_net); @@ -818,7 +824,8 @@ struct xfrm_trans_tasklet *trans; trans = &per_cpu(xfrm_trans_tasklet, i); + spin_lock_init(&trans->queue_lock); __skb_queue_head_init(&trans->queue); - tasklet_setup(&trans->tasklet, xfrm_trans_reinject); + INIT_WORK(&trans->work, xfrm_trans_reinject); } } --- linux-5.19.0.orig/net/xfrm/xfrm_ipcomp.c +++ linux-5.19.0/net/xfrm/xfrm_ipcomp.c @@ -203,6 +203,7 @@ vfree(*per_cpu_ptr(scratches, i)); free_percpu(scratches); + ipcomp_scratches = NULL; } static void * __percpu *ipcomp_alloc_scratches(void) --- linux-5.19.0.orig/net/xfrm/xfrm_output.c +++ linux-5.19.0/net/xfrm/xfrm_output.c @@ -534,7 +534,6 @@ x->curlft.bytes += skb->len; x->curlft.packets++; - x->curlft.use_time = ktime_get_real_seconds(); spin_unlock_bh(&x->lock); --- linux-5.19.0.orig/net/xfrm/xfrm_policy.c +++ linux-5.19.0/net/xfrm/xfrm_policy.c @@ -3162,7 +3162,7 @@ return dst; nopol: - if (!(dst_orig->dev->flags & IFF_LOOPBACK) && + if ((!dst_orig->dev || !(dst_orig->dev->flags & IFF_LOOPBACK)) && net->xfrm.policy_default[dir] == XFRM_USERPOLICY_BLOCK) { err = -EPERM; goto error; @@ -3599,6 +3599,7 @@ if (pols[1]) { if (IS_ERR(pols[1])) { XFRM_INC_STATS(net, LINUX_MIB_XFRMINPOLERROR); + xfrm_pol_put(pols[0]); return 0; } pols[1]->curlft.use_time = ktime_get_real_seconds(); --- linux-5.19.0.orig/net/xfrm/xfrm_replay.c +++ linux-5.19.0/net/xfrm/xfrm_replay.c @@ -714,7 +714,7 @@ oseq += skb_shinfo(skb)->gso_segs; } - if (unlikely(oseq < replay_esn->oseq)) { + if (unlikely(xo->seq.low < replay_esn->oseq)) { XFRM_SKB_CB(skb)->seq.output.hi = ++oseq_hi; xo->seq.hi = oseq_hi; replay_esn->oseq_hi = oseq_hi; --- linux-5.19.0.orig/net/xfrm/xfrm_state.c +++ linux-5.19.0/net/xfrm/xfrm_state.c @@ -1592,6 +1592,7 @@ x->replay = orig->replay; x->preplay = orig->preplay; x->mapping_maxage = orig->mapping_maxage; + x->lastused = orig->lastused; x->new_mapping = 0; x->new_mapping_sport = 0; --- linux-5.19.0.orig/samples/bpf/xdp_router_ipv4.bpf.c +++ linux-5.19.0/samples/bpf/xdp_router_ipv4.bpf.c @@ -150,6 +150,15 @@ dest_mac = bpf_map_lookup_elem(&arp_table, &prefix_value->gw); + if (!dest_mac) { + /* Forward the packet to the kernel in + * order to trigger ARP discovery for + * the default gw. + */ + if (rec) + NO_TEAR_INC(rec->xdp_pass); + return XDP_PASS; + } } } --- linux-5.19.0.orig/samples/vfio-mdev/mdpy-fb.c +++ linux-5.19.0/samples/vfio-mdev/mdpy-fb.c @@ -109,7 +109,7 @@ ret = pci_request_regions(pdev, "mdpy-fb"); if (ret < 0) - return ret; + goto err_disable_dev; pci_read_config_dword(pdev, MDPY_FORMAT_OFFSET, &format); pci_read_config_dword(pdev, MDPY_WIDTH_OFFSET, &width); @@ -191,6 +191,9 @@ err_release_regions: pci_release_regions(pdev); +err_disable_dev: + pci_disable_device(pdev); + return ret; } @@ -199,7 +202,10 @@ struct fb_info *info = pci_get_drvdata(pdev); unregister_framebuffer(info); + iounmap(info->screen_base); framebuffer_release(info); + pci_release_regions(pdev); + pci_disable_device(pdev); } static struct pci_device_id mdpy_fb_pci_table[] = { --- linux-5.19.0.orig/scripts/Kbuild.include +++ linux-5.19.0/scripts/Kbuild.include @@ -100,8 +100,29 @@ quiet_redirect := silent_redirect := exec >/dev/null; +# Delete the target on interruption +# +# GNU Make automatically deletes the target if it has already been changed by +# the interrupted recipe. So, you can safely stop the build by Ctrl-C (Make +# will delete incomplete targets), and resume it later. +# +# However, this does not work when the stderr is piped to another program, like +# $ make >&2 | tee log +# Make dies with SIGPIPE before cleaning the targets. +# +# To address it, we clean the target in signal traps. +# +# Make deletes the target when it catches SIGHUP, SIGINT, SIGQUIT, SIGTERM. +# So, we cover them, and also SIGPIPE just in case. +# +# Of course, this is unneeded for phony targets. +delete-on-interrupt = \ + $(if $(filter-out $(PHONY), $@), \ + $(foreach sig, HUP INT QUIT TERM PIPE, \ + trap 'rm -f $@; trap - $(sig); kill -s $(sig) $$$$' $(sig);)) + # printing commands -cmd = @set -e; $(echo-cmd) $($(quiet)redirect) $(cmd_$(1)) +cmd = @set -e; $(echo-cmd) $($(quiet)redirect) $(delete-on-interrupt) $(cmd_$(1)) ### # if_changed - execute command if any prerequisite is newer than --- linux-5.19.0.orig/scripts/Makefile.build +++ linux-5.19.0/scripts/Makefile.build @@ -225,6 +225,12 @@ cmd_check_local_export = $(srctree)/scripts/check-local-export $@ +ifdef CONFIG_RETPOLINE +cmd_ubuntu_retpoline = $(CONFIG_SHELL) $(srctree)/scripts/ubuntu-retpoline-extract-one $(@) $(<) "$(filter -m16 %code16gcc.h,$(a_flags))"; +else +cmd_ubuntu_retpoline = +endif + define rule_cc_o_c $(call cmd_and_fixdep,cc_o_c) $(call cmd,gen_ksymdeps) @@ -233,6 +239,7 @@ $(call cmd,checkdoc) $(call cmd,gen_objtooldep) $(call cmd,gen_symversions_c) + $(call cmd,ubuntu-retpoline) $(call cmd,record_mcount) endef @@ -242,6 +249,7 @@ $(call cmd,check_local_export) $(call cmd,gen_objtooldep) $(call cmd,gen_symversions_S) + $(call cmd,ubuntu-retpoline) endef # Built-in and composite module parts --- linux-5.19.0.orig/scripts/Makefile.debug +++ linux-5.19.0/scripts/Makefile.debug @@ -1,20 +1,19 @@ DEBUG_CFLAGS := +debug-flags-y := -g ifdef CONFIG_DEBUG_INFO_SPLIT DEBUG_CFLAGS += -gsplit-dwarf -else -DEBUG_CFLAGS += -g endif -ifndef CONFIG_AS_IS_LLVM -KBUILD_AFLAGS += -Wa,-gdwarf-2 -endif - -ifndef CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT -dwarf-version-$(CONFIG_DEBUG_INFO_DWARF4) := 4 -dwarf-version-$(CONFIG_DEBUG_INFO_DWARF5) := 5 -DEBUG_CFLAGS += -gdwarf-$(dwarf-version-y) +debug-flags-$(CONFIG_DEBUG_INFO_DWARF4) += -gdwarf-4 +debug-flags-$(CONFIG_DEBUG_INFO_DWARF5) += -gdwarf-5 +ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_AS_IS_GNU),yy) +# Clang does not pass -g or -gdwarf-* option down to GAS. +# Add -Wa, prefix to explicitly specify the flags. +KBUILD_AFLAGS += $(addprefix -Wa$(comma), $(debug-flags-y)) endif +DEBUG_CFLAGS += $(debug-flags-y) +KBUILD_AFLAGS += $(debug-flags-y) ifdef CONFIG_DEBUG_INFO_REDUCED DEBUG_CFLAGS += -fno-var-tracking @@ -29,5 +28,5 @@ KBUILD_LDFLAGS += --compress-debug-sections=zlib endif -KBUILD_CFLAGS += $(DEBUG_CFLAGS) +KBUILD_CFLAGS += $(DEBUG_CFLAGS) export DEBUG_CFLAGS --- linux-5.19.0.orig/scripts/Makefile.extrawarn +++ linux-5.19.0/scripts/Makefile.extrawarn @@ -53,6 +53,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast) KBUILD_CFLAGS += -Wno-tautological-constant-out-of-range-compare KBUILD_CFLAGS += $(call cc-disable-warning, unaligned-access) +KBUILD_CFLAGS += $(call cc-disable-warning, cast-function-type-strict) endif endif --- linux-5.19.0.orig/scripts/Makefile.gcc-plugins +++ linux-5.19.0/scripts/Makefile.gcc-plugins @@ -4,7 +4,7 @@ gcc-plugin-cflags-$(CONFIG_GCC_PLUGIN_LATENT_ENTROPY) \ += -DLATENT_ENTROPY_PLUGIN ifdef CONFIG_GCC_PLUGIN_LATENT_ENTROPY - DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable + DISABLE_LATENT_ENTROPY_PLUGIN += -fplugin-arg-latent_entropy_plugin-disable -ULATENT_ENTROPY_PLUGIN endif export DISABLE_LATENT_ENTROPY_PLUGIN --- linux-5.19.0.orig/scripts/Makefile.modinst +++ linux-5.19.0/scripts/Makefile.modinst @@ -65,8 +65,11 @@ ifeq ($(CONFIG_MODULE_SIG_ALL),y) sig-key := $(if $(wildcard $(CONFIG_MODULE_SIG_KEY)),,$(srctree)/)$(CONFIG_MODULE_SIG_KEY) quiet_cmd_sign = SIGN $@ - cmd_sign = scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(sig-key) certs/signing_key.x509 $@ \ - $(if $(KBUILD_EXTMOD),|| true) + cmd_sign = if test -e $(srctree)/debian/scripts/sign-module && \ + $(srctree)/debian/scripts/sign-module $@ ; \ + then scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(sig-key) certs/signing_key.x509 $@ \ + $(if $(KBUILD_EXTMOD),|| true) ; \ + fi else quiet_cmd_sign := cmd_sign := : --- linux-5.19.0.orig/scripts/dummy-tools/gcc +++ linux-5.19.0/scripts/dummy-tools/gcc @@ -96,12 +96,8 @@ # To set GCC_PLUGINS if arg_contain -print-file-name=plugin "$@"; then - plugin_dir=$(mktemp -d) - - mkdir -p $plugin_dir/include - touch $plugin_dir/include/plugin-version.h - - echo $plugin_dir + # Use $0 to find the in-tree dummy directory + echo "$(dirname "$(readlink -f "$0")")/dummy-plugin-dir" exit 0 fi --- linux-5.19.0.orig/scripts/faddr2line +++ linux-5.19.0/scripts/faddr2line @@ -73,7 +73,8 @@ find_dir_prefix() { local objfile=$1 - local start_kernel_addr=$(${READELF} --symbols --wide $objfile | ${AWK} '$8 == "start_kernel" {printf "0x%s", $2}') + local start_kernel_addr=$(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | + ${AWK} '$8 == "start_kernel" {printf "0x%s", $2}') [[ -z $start_kernel_addr ]] && return local file_line=$(${ADDR2LINE} -e $objfile $start_kernel_addr) @@ -112,7 +113,9 @@ # section offsets. local file_type=$(${READELF} --file-header $objfile | ${AWK} '$1 == "Type:" { print $2; exit }') - [[ $file_type = "EXEC" ]] && is_vmlinux=1 + if [[ $file_type = "EXEC" ]] || [[ $file_type == "DYN" ]]; then + is_vmlinux=1 + fi # Go through each of the object's symbols which match the func name. # In rare cases there might be duplicates, in which case we print all @@ -175,7 +178,7 @@ found=2 break fi - done < <(${READELF} --symbols --wide $objfile | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2) + done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK} -v sec=$sym_sec '$7 == sec' | sort --key=2) if [[ $found = 0 ]]; then warn "can't find symbol: sym_name: $sym_name sym_sec: $sym_sec sym_addr: $sym_addr sym_elf_size: $sym_elf_size" @@ -256,7 +259,7 @@ DONE=1 - done < <(${READELF} --symbols --wide $objfile | ${AWK} -v fn=$sym_name '$4 == "FUNC" && $8 == fn') + done < <(${READELF} --symbols --wide $objfile | sed 's/\[.*\]//' | ${AWK} -v fn=$sym_name '$4 == "FUNC" && $8 == fn') } [[ $# -lt 2 ]] && usage --- linux-5.19.0.orig/scripts/gdb/linux/dmesg.py +++ linux-5.19.0/scripts/gdb/linux/dmesg.py @@ -22,7 +22,6 @@ prb_desc_ring_type = utils.CachedType("struct prb_desc_ring") prb_data_ring_type = utils.CachedType("struct prb_data_ring") printk_ringbuffer_type = utils.CachedType("struct printk_ringbuffer") -atomic_long_type = utils.CachedType("atomic_long_t") class LxDmesg(gdb.Command): """Print Linux kernel log buffer.""" @@ -68,8 +67,6 @@ off = prb_data_ring_type.get_type()['data'].bitpos // 8 text_data_addr = utils.read_ulong(text_data_ring, off) - counter_off = atomic_long_type.get_type()['counter'].bitpos // 8 - sv_off = prb_desc_type.get_type()['state_var'].bitpos // 8 off = prb_desc_type.get_type()['text_blk_lpos'].bitpos // 8 @@ -89,9 +86,9 @@ # read in tail and head descriptor ids off = prb_desc_ring_type.get_type()['tail_id'].bitpos // 8 - tail_id = utils.read_u64(desc_ring, off + counter_off) + tail_id = utils.read_atomic_long(desc_ring, off) off = prb_desc_ring_type.get_type()['head_id'].bitpos // 8 - head_id = utils.read_u64(desc_ring, off + counter_off) + head_id = utils.read_atomic_long(desc_ring, off) did = tail_id while True: @@ -102,7 +99,7 @@ desc = utils.read_memoryview(inf, desc_addr + desc_off, desc_sz).tobytes() # skip non-committed record - state = 3 & (utils.read_u64(desc, sv_off + counter_off) >> desc_flags_shift) + state = 3 & (utils.read_atomic_long(desc, sv_off) >> desc_flags_shift) if state != desc_committed and state != desc_finalized: if did == head_id: break --- linux-5.19.0.orig/scripts/gdb/linux/utils.py +++ linux-5.19.0/scripts/gdb/linux/utils.py @@ -35,13 +35,12 @@ long_type = CachedType("long") - +atomic_long_type = CachedType("atomic_long_t") def get_long_type(): global long_type return long_type.get_type() - def offset_of(typeobj, field): element = gdb.Value(0).cast(typeobj) return int(str(element[field].address).split()[0], 16) @@ -129,6 +128,17 @@ else: return read_u32(buffer, offset) +atomic_long_counter_offset = atomic_long_type.get_type()['counter'].bitpos +atomic_long_counter_sizeof = atomic_long_type.get_type()['counter'].type.sizeof + +def read_atomic_long(buffer, offset): + global atomic_long_counter_offset + global atomic_long_counter_sizeof + + if atomic_long_counter_sizeof == 8: + return read_u64(buffer, offset + atomic_long_counter_offset) + else: + return read_u32(buffer, offset + atomic_long_counter_offset) target_arch = None --- linux-5.19.0.orig/scripts/insert-sys-cert.c +++ linux-5.19.0/scripts/insert-sys-cert.c @@ -7,7 +7,8 @@ * This software may be used and distributed according to the terms * of the GNU General Public License, incorporated herein by reference. * - * Usage: insert-sys-cert [-s -b -c + * Usage: insert-sys-cert [-s ] -b -c + * [-s ] -z -c */ #define _GNU_SOURCE @@ -257,6 +258,169 @@ return buf; } +static void get_payload_info(char *bzimage, int *offset, int *size) +{ + unsigned int system_offset; + unsigned char setup_sectors; + + setup_sectors = bzimage[0x1f1] + 1; + system_offset = setup_sectors * 512; + *offset = system_offset + *((int*)&bzimage[0x248]); + *size = *((int*)&bzimage[0x24c]); +} + +static void update_payload_info(char* bzimage, int new_size) +{ + int offset, size; + get_payload_info(bzimage, &offset, &size); + *((int*)&bzimage[0x24c]) = new_size; + if (new_size < size) + memset(bzimage + offset + new_size, 0, size - new_size); +} + +struct zipper { + unsigned char pattern[10]; + int length; + char *command; + char *compress; +}; + +struct zipper zippers[] = { + {{0x7F,'E','L','F'}, 4, "cat", "cat"}, + {{0x1F,0x8B}, 2, "gunzip", "gzip -n -f -9"}, + {{0xFD,'7','z','X','Z',0}, 6, "unxz", "xz"}, + {{'B','Z','h'},3, "bunzip2", "bzip2 -9"}, + {{0xFF,'L','Z','M','A',0}, 6, "unlzma", "lzma -9"}, + {{0xD3,'L','Z','O',0,'\r','\n',0x20,'\n'}, 9, "lzop -d", "lzop -9"} +}; + +static struct zipper* get_zipper(char *p) { + int i; + for (i = 0; i < sizeof(zippers)/sizeof(struct zipper); i++) { + if (memcmp(p, zippers[i].pattern, zippers[i].length) == 0) + return &zippers[i]; + } + return NULL; +} + +/* + * This only works for x86 bzImage + */ +static void extract_vmlinux(char *bzimage, int bzimage_size, + char **file, struct zipper **zipper) +{ + int r; + char src[15] = "vmlinux-XXXXXX"; + char dest[15] = "vmlinux-XXXXXX"; + char cmd[100]; + int src_fd, dest_fd; + int offset, size; + struct zipper *z; + + /* TODO: verify that bzImage is supported */ + + get_payload_info(bzimage, &offset, &size); + z = get_zipper(bzimage + offset); + if (z == NULL) { + err("Unable to determine the compression of vmlinux\n"); + return; + } + + src_fd = mkstemp(src); + if (src_fd == -1) { + perror("Could not create temp file"); + return; + } + + r = write(src_fd, bzimage + offset, size); + if (r != size) { + perror("Could not write vmlinux"); + return; + } + dest_fd = mkstemp(dest); + if (dest_fd == -1) { + perror("Could not create temp file"); + return; + } + + snprintf(cmd, sizeof(cmd), "%s <%s >%s", z->command, src, dest); + info("Executing: %s\n", cmd); + r = system(cmd); + if (r!=0) + warn("Possible errors when extracting\n"); + + r = remove(src); + if (r!=0) + perror(src); + + *file = strdup(dest); + *zipper = z; +} + +static void repack_image(char *bzimage, int bzimage_size, + char* vmlinux_file, struct zipper *z) +{ + char tmp[15] = "vmlinux-XXXXXX"; + char cmd[100]; + int fd; + struct stat st; + int new_size; + int r; + int offset, size; + + get_payload_info(bzimage, &offset, &size); + + fd = mkstemp(tmp); + if (fd == -1) { + perror("Could not create temp file"); + return; + } + snprintf(cmd, sizeof(cmd), "%s <%s >%s", + z->compress, vmlinux_file, tmp); + + info("Executing: %s\n", cmd); + r = system(cmd); + if (r!=0) + warn("Possible errors when compressing\n"); + + r = remove(vmlinux_file); + if (r!=0) + perror(vmlinux_file); + + if (fstat(fd, &st)) { + perror("Could not determine file size"); + close(fd); + + } + new_size = st.st_size; + if (new_size > size) { + err("Increase in compressed size is not supported.\n"); + err("Old size was %d, new size is %d\n", size, new_size); + exit(EXIT_FAILURE); + } + + r = read(fd, bzimage + offset, new_size); + if (r != new_size) + perror(tmp); + + r = remove(tmp); + if (r!=0) + perror(tmp); + + /* x86 specific patching of bzimage */ + update_payload_info(bzimage, new_size); + + /* TODO: update CRC */ + +} + +static void fill_random(unsigned char *p, int n) { + srand(0); + int i; + for (i = 0; i < n; i++) + p[i] = rand(); +} + static void print_sym(Elf_Ehdr *hdr, struct sym *s) { info("sym: %s\n", s->name); @@ -267,18 +431,23 @@ static void print_usage(char *e) { - printf("Usage %s [-s ] -b -c \n", e); + printf("Usage: %s [-s ] -b -c \n", e); + printf(" %s [-s ] -z -c \n", e); } int main(int argc, char **argv) { char *system_map_file = NULL; char *vmlinux_file = NULL; + char *bzimage_file = NULL; char *cert_file = NULL; int vmlinux_size; + int bzimage_size; int cert_size; Elf_Ehdr *hdr; char *cert; + char *bzimage = NULL; + struct zipper *z = NULL; FILE *system_map; unsigned long *lsize; int *used; @@ -286,7 +455,7 @@ Elf_Shdr *symtab = NULL; struct sym cert_sym, lsize_sym, used_sym; - while ((opt = getopt(argc, argv, "b:c:s:")) != -1) { + while ((opt = getopt(argc, argv, "b:z:c:s:")) != -1) { switch (opt) { case 's': system_map_file = optarg; @@ -294,6 +463,9 @@ case 'b': vmlinux_file = optarg; break; + case 'z': + bzimage_file = optarg; + break; case 'c': cert_file = optarg; break; @@ -302,7 +474,9 @@ } } - if (!vmlinux_file || !cert_file) { + if (!cert_file || + (!vmlinux_file && !bzimage_file) || + (vmlinux_file && bzimage_file)) { print_usage(argv[0]); exit(EXIT_FAILURE); } @@ -311,6 +485,16 @@ if (!cert) exit(EXIT_FAILURE); + if (bzimage_file) { + bzimage = map_file(bzimage_file, &bzimage_size); + if (!bzimage) + exit(EXIT_FAILURE); + + extract_vmlinux(bzimage, bzimage_size, &vmlinux_file, &z); + if (!vmlinux_file) + exit(EXIT_FAILURE); + } + hdr = map_file(vmlinux_file, &vmlinux_size); if (!hdr) exit(EXIT_FAILURE); @@ -386,7 +570,7 @@ } /* If the existing cert is the same, don't overwrite */ - if (cert_size == *used && + if (cert_size > 0 && cert_size == *used && strncmp(cert_sym.content, cert, cert_size) == 0) { warn("Certificate was already inserted.\n"); exit(EXIT_SUCCESS); @@ -396,9 +580,11 @@ warn("Replacing previously inserted certificate.\n"); memcpy(cert_sym.content, cert, cert_size); + if (cert_size < cert_sym.size) - memset(cert_sym.content + cert_size, - 0, cert_sym.size - cert_size); + /* This makes the reserved space incompressable */ + fill_random(cert_sym.content + cert_size, + cert_sym.size - cert_size); *lsize = *lsize + cert_size - *used; *used = cert_size; @@ -406,5 +592,15 @@ cert_sym.address); info("Used %d bytes out of %d bytes reserved.\n", *used, cert_sym.size); + + if (munmap(hdr, vmlinux_size) == -1) { + perror(vmlinux_file); + exit(EXIT_FAILURE); + } + + if (bzimage) { + repack_image(bzimage, bzimage_size, vmlinux_file, z); + } + exit(EXIT_SUCCESS); } --- linux-5.19.0.orig/scripts/kconfig/lkc.h +++ linux-5.19.0/scripts/kconfig/lkc.h @@ -46,7 +46,9 @@ /* confdata.c and expr.c */ static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out) { - assert(len != 0); + //assert(len != 0); + if (len == 0) + return; if (fwrite(str, len, count, out) != count) fprintf(stderr, "Error in writing or end of file.\n"); --- linux-5.19.0.orig/scripts/mod/modpost.c +++ linux-5.19.0/scripts/mod/modpost.c @@ -2203,13 +2203,11 @@ /* record CRCs for exported symbols */ buf_printf(buf, "\n"); list_for_each_entry(sym, &mod->exported_symbols, list) { - if (!sym->crc_valid) { + if (!sym->crc_valid) warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n" "Is \"%s\" prototyped in ?\n", sym->name, mod->name, mod->is_vmlinux ? "" : ".ko", sym->name); - continue; - } buf_printf(buf, "SYMBOL_CRC(%s, 0x%08x, \"%s\");\n", sym->name, sym->crc, sym->is_gpl_only ? "_gpl" : ""); --- linux-5.19.0.orig/scripts/module.lds.S +++ linux-5.19.0/scripts/module.lds.S @@ -27,6 +27,8 @@ .ctors 0 : ALIGN(8) { *(SORT(.ctors.*)) *(.ctors) } .init_array 0 : ALIGN(8) { *(SORT(.init_array.*)) *(.init_array) } + .altinstructions 0 : ALIGN(8) { KEEP(*(.altinstructions)) } + __bug_table 0 : ALIGN(8) { KEEP(*(__bug_table)) } __jump_table 0 : ALIGN(8) { KEEP(*(__jump_table)) } __patchable_function_entries : { *(__patchable_function_entries) } --- linux-5.19.0.orig/scripts/package/mkspec +++ linux-5.19.0/scripts/package/mkspec @@ -85,10 +85,10 @@ mkdir -p %{buildroot}/boot %ifarch ia64 mkdir -p %{buildroot}/boot/efi - cp \$($MAKE image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE + cp \$($MAKE -s image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/ %else - cp \$($MAKE image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE + cp \$($MAKE -s image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE %endif $M $MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install $MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install --- linux-5.19.0.orig/scripts/pahole-flags.sh +++ linux-5.19.0/scripts/pahole-flags.sh @@ -20,4 +20,8 @@ extra_paholeopt="${extra_paholeopt} -j" fi +if [ "${pahole_ver}" -ge "124" ]; then + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_enum64" +fi + echo ${extra_paholeopt} --- linux-5.19.0.orig/scripts/selinux/install_policy.sh +++ linux-5.19.0/scripts/selinux/install_policy.sh @@ -78,7 +78,7 @@ $SF -F file_contexts / mounts=`cat /proc/$$/mounts | \ - egrep "ext[234]|jfs|xfs|reiserfs|jffs2|gfs2|btrfs|f2fs|ocfs2" | \ + grep -E "ext[234]|jfs|xfs|reiserfs|jffs2|gfs2|btrfs|f2fs|ocfs2" | \ awk '{ print $2 '}` $SF -F file_contexts $mounts --- linux-5.19.0.orig/scripts/ubuntu-retpoline-extract-one +++ linux-5.19.0/scripts/ubuntu-retpoline-extract-one @@ -0,0 +1,270 @@ +#!/bin/bash + +exec &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 add and + # shove that into in the segment of the . + # + # Format: + # 64 bits + # 32 bits + # 32 bits + # 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 and add that to the + # existing contents of in the segment of the . + # + # Format: + # 32 bits + # 24 bits + # 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-5.19.0.orig/security/Kconfig +++ linux-5.19.0/security/Kconfig @@ -19,6 +19,15 @@ If you are unsure how to answer this question, answer N. +config SECURITY_PERF_EVENTS_RESTRICT + bool "Restrict unprivileged use of performance events" + depends on PERF_EVENTS + help + If you say Y here, the kernel.perf_event_paranoid sysctl + will be set to 3 by default, and no unprivileged use of the + perf_event_open syscall will be permitted unless it is + changed. + config SECURITY bool "Enable different security models" depends on SYSFS --- linux-5.19.0.orig/security/Kconfig.hardening +++ linux-5.19.0/security/Kconfig.hardening @@ -22,11 +22,17 @@ config CC_HAS_AUTO_VAR_INIT_PATTERN def_bool $(cc-option,-ftrivial-auto-var-init=pattern) -config CC_HAS_AUTO_VAR_INIT_ZERO - # GCC ignores the -enable flag, so we can test for the feature with - # a single invocation using the flag, but drop it as appropriate in - # the Makefile, depending on the presence of Clang. +config CC_HAS_AUTO_VAR_INIT_ZERO_BARE + def_bool $(cc-option,-ftrivial-auto-var-init=zero) + +config CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER + # Clang 16 and later warn about using the -enable flag, but it + # is required before then. def_bool $(cc-option,-ftrivial-auto-var-init=zero -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang) + depends on !CC_HAS_AUTO_VAR_INIT_ZERO_BARE + +config CC_HAS_AUTO_VAR_INIT_ZERO + def_bool CC_HAS_AUTO_VAR_INIT_ZERO_BARE || CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER choice prompt "Initialize kernel stack variables at function entry" @@ -247,6 +253,9 @@ config CC_HAS_ZERO_CALL_USED_REGS def_bool $(cc-option,-fzero-call-used-regs=used-gpr) + # https://github.com/ClangBuiltLinux/linux/issues/1766 + # https://github.com/llvm/llvm-project/issues/59242 + depends on !CC_IS_CLANG || CLANG_VERSION > 150006 config ZERO_CALL_USED_REGS bool "Enable register zeroing on function exit" --- linux-5.19.0.orig/security/apparmor/Kconfig +++ linux-5.19.0/security/apparmor/Kconfig @@ -6,8 +6,6 @@ select SECURITY_PATH select SECURITYFS select SECURITY_NETWORK - select ZLIB_INFLATE - select ZLIB_DEFLATE default n help This enables the AppArmor security module. @@ -17,29 +15,6 @@ If you are unsure how to answer this question, answer N. -config SECURITY_APPARMOR_HASH - bool "Enable introspection of sha1 hashes for loaded profiles" - depends on SECURITY_APPARMOR - select CRYPTO - select CRYPTO_SHA1 - default y - help - This option selects whether introspection of loaded policy - is available to userspace via the apparmor filesystem. - -config SECURITY_APPARMOR_HASH_DEFAULT - bool "Enable policy hash introspection by default" - depends on SECURITY_APPARMOR_HASH - default y - help - This option selects whether sha1 hashing of loaded policy - is enabled by default. The generation of sha1 hashes for - loaded policy provide system administrators a quick way - to verify that policy in the kernel matches what is expected, - however it can slow down policy load on some devices. In - these cases policy hashing can be disabled by default and - enabled only if needed. - config SECURITY_APPARMOR_DEBUG bool "Build AppArmor with debug code" depends on SECURITY_APPARMOR @@ -69,6 +44,79 @@ When enabled, various debug messages will be logged to the kernel message buffer. +config SECURITY_APPARMOR_INTROSPECT_POLICY + bool "Allow loaded policy to be introspected" + depends on SECURITY_APPARMOR + default y + help + This option selects whether introspection of loaded policy + is available to userspace via the apparmor filesystem. This + adds to kernel memory usage. It is required for introspection + of loaded policy, and check point and restore support. It + can be disabled for embedded systems where reducing memory and + cpu is paramount. + +config SECURITY_APPARMOR_HASH + bool "Enable introspection of sha1 hashes for loaded profiles" + depends on SECURITY_APPARMOR_INTROSPECT_POLICY + select CRYPTO + select CRYPTO_SHA1 + default y + help + This option selects whether introspection of loaded policy + hashes is available to userspace via the apparmor + filesystem. This option provides a light weight means of + checking loaded policy. This option adds to policy load + time and can be disabled for small embedded systems. + +config SECURITY_APPARMOR_HASH_DEFAULT + bool "Enable policy hash introspection by default" + depends on SECURITY_APPARMOR_HASH + default y + help + This option selects whether sha1 hashing of loaded policy + is enabled by default. The generation of sha1 hashes for + loaded policy provide system administrators a quick way + to verify that policy in the kernel matches what is expected, + however it can slow down policy load on some devices. In + these cases policy hashing can be disabled by default and + enabled only if needed. + +config SECURITY_APPARMOR_EXPORT_BINARY + bool "Allow exporting the raw binary policy" + depends on SECURITY_APPARMOR_INTROSPECT_POLICY + select ZSTD_COMPRESS + select ZSTD_DECOMPRESS + default y + help + This option allows reading back binary policy as it was loaded. + It increases the amount of kernel memory needed by policy and + also increases policy load time. This option is required for + checkpoint and restore support, and debugging of loaded policy. + +config SECURITY_APPARMOR_PARANOID_LOAD + bool "Perform full verification of loaded policy" + depends on SECURITY_APPARMOR + default y + help + This options allows controlling whether apparmor does a full + verification of loaded policy. This should not be disabled + except for embedded systems where the image is read only, + includes policy, and has some form of integrity check. + Disabling the check will speed up policy loads. + +config SECURITY_APPARMOR_RESTRICT_USERNS + bool "Restrict user namespace creation to confined domains" + depends on SECURITY_APPARMOR + default y + help + This options allows controlling whether apparmor restricts + the creation of new user namespaces to confined tasks by + default. If set unconfined tasks without CAP_MAC_OVERRIDE + will not be allowed to create new user namespaces. Confined + tasks ability to create new user namespaces will be controlled + by their profile. + config SECURITY_APPARMOR_KUNIT_TEST bool "Build KUnit tests for policy_unpack.c" if !KUNIT_ALL_TESTS depends on KUNIT=y && SECURITY_APPARMOR --- linux-5.19.0.orig/security/apparmor/Makefile +++ linux-5.19.0/security/apparmor/Makefile @@ -5,7 +5,8 @@ apparmor-y := apparmorfs.o audit.o capability.o task.o ipc.o lib.o match.o \ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \ - resource.o secid.o file.o policy_ns.o label.o mount.o net.o + resource.o secid.o file.o policy_ns.o label.o mount.o net.o \ + policy_compat.o af_unix.o apparmor-$(CONFIG_SECURITY_APPARMOR_HASH) += crypto.o clean-files := capability_names.h rlim_names.h net_names.h --- linux-5.19.0.orig/security/apparmor/af_unix.c +++ linux-5.19.0/security/apparmor/af_unix.c @@ -0,0 +1,677 @@ +/* + * AppArmor security module + * + * This file contains AppArmor af_unix fine grained mediation + * + * Copyright 2018 Canonical Ltd. + * + * 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 of the + * License. + */ + +#include + +#include "include/audit.h" +#include "include/af_unix.h" +#include "include/apparmor.h" +#include "include/file.h" +#include "include/label.h" +#include "include/path.h" +#include "include/policy.h" +#include "include/cred.h" + +static inline struct sock *aa_unix_sk(struct unix_sock *u) +{ + return &u->sk; +} + +static umode_t sock_i_mode(struct sock *sk) +{ + umode_t mode; + + read_lock_bh(&sk->sk_callback_lock); + mode = sk->sk_socket ? SOCK_INODE(sk->sk_socket)->i_mode : 0; + read_unlock_bh(&sk->sk_callback_lock); + return mode; +} + +static inline int unix_fs_perm(const char *op, u32 mask, struct aa_label *label, + struct unix_sock *u, int flags) +{ + AA_BUG(!label); + AA_BUG(!u); + AA_BUG(!UNIX_FS(aa_unix_sk(u))); + + if (unconfined(label) || !LABEL_MEDIATES(label, AA_CLASS_FILE)) + return 0; + + mask &= NET_FS_PERMS; + if (!u->path.dentry) { + struct path_cond cond = { + .uid = sock_i_uid(&u->sk), + .mode = sock_i_mode(&u->sk), + }; + struct aa_perms perms = { }; + struct aa_profile *profile; + + /* socket path has been cleared because it is being shutdown + * can only fall back to original sun_path request + */ + struct aa_sk_ctx *ctx = aa_sock(&u->sk); + if (ctx->path.dentry) + return aa_path_perm(op, label, &ctx->path, flags, mask, + &cond); + return fn_for_each_confined(label, profile, + ((flags | profile->path_flags) & PATH_MEDIATE_DELETED) ? + __aa_path_perm(op, profile, + u->addr->name->sun_path, mask, + &cond, flags, &perms) : + aa_audit_file(profile, &nullperms, op, mask, + u->addr->name->sun_path, NULL, + NULL, cond.uid, + "Failed name lookup - " + "deleted entry", -EACCES)); + } else { + /* the sunpath may not be valid for this ns so use the path */ + struct path_cond cond = { u->path.dentry->d_inode->i_uid, + u->path.dentry->d_inode->i_mode + }; + + return aa_path_perm(op, label, &u->path, flags, mask, &cond); + } + + return 0; +} + +/* passing in state returned by PROFILE_MEDIATES_AF */ +static unsigned int match_to_prot(struct aa_dfa *dfa, + unsigned int state, int type, int protocol, + const char **info) +{ + __be16 buffer[2]; + buffer[0] = cpu_to_be16(type); + buffer[1] = cpu_to_be16(protocol); + state = aa_dfa_match_len(dfa, state, (char *) &buffer, 4); + if (!state) + *info = "failed type and protocol match"; + return state; +} + +static unsigned int match_addr(struct aa_dfa *dfa, unsigned int state, + struct sockaddr_un *addr, int addrlen) +{ + if (addr) + /* include leading \0 */ + state = aa_dfa_match_len(dfa, state, addr->sun_path, + unix_addr_len(addrlen)); + else + /* anonymous end point */ + state = aa_dfa_match_len(dfa, state, "\x01", 1); + /* todo change to out of band */ + state = aa_dfa_null_transition(dfa, state); + return state; +} + +static unsigned int match_to_local(struct aa_dfa *dfa, + unsigned int state, int type, int protocol, + struct sockaddr_un *addr, int addrlen, + const char **info) +{ + state = match_to_prot(dfa, state, type, protocol, info); + if (state) { + state = match_addr(dfa, state, addr, addrlen); + if (state) { + /* todo: local label matching */ + state = aa_dfa_null_transition(dfa, state); + if (!state) + *info = "failed local label match"; + } else + *info = "failed local address match"; + } + + return state; +} + +static unsigned int match_to_sk(struct aa_dfa *dfa, + unsigned int state, struct unix_sock *u, + const char **info) +{ + struct sockaddr_un *addr = NULL; + int addrlen = 0; + + if (u->addr) { + addr = u->addr->name; + addrlen = u->addr->len; + } + + return match_to_local(dfa, state, u->sk.sk_type, u->sk.sk_protocol, + addr, addrlen, info); +} + +#define CMD_ADDR 1 +#define CMD_LISTEN 2 +#define CMD_OPT 4 + +static inline unsigned int match_to_cmd(struct aa_dfa *dfa, + unsigned int state, struct unix_sock *u, + char cmd, const char **info) +{ + state = match_to_sk(dfa, state, u, info); + if (state) { + state = aa_dfa_match_len(dfa, state, &cmd, 1); + if (!state) + *info = "failed cmd selection match"; + } + + return state; +} + +static inline unsigned int match_to_peer(struct aa_dfa *dfa, + unsigned int state, + struct unix_sock *u, + struct sockaddr_un *peer_addr, + int peer_addrlen, + const char **info) +{ + state = match_to_cmd(dfa, state, u, CMD_ADDR, info); + if (state) { + state = match_addr(dfa, state, peer_addr, peer_addrlen); + if (!state) + *info = "failed peer address match"; + } + return state; +} + +static int do_perms(struct aa_profile *profile, struct aa_ruleset *rule, + unsigned int state, u32 request, + struct common_audit_data *sa) +{ + struct aa_perms perms; + + AA_BUG(!profile); + + perms = *aa_lookup_perms(&rule->policy, state); + aa_apply_modes_to_perms(profile, &perms); + return aa_check_perms(profile, &perms, request, sa, + audit_net_cb); +} + +static int match_label(struct aa_profile *profile, struct aa_ruleset *rule, + struct aa_profile *peer, unsigned int state, u32 request, + struct common_audit_data *sa) +{ + AA_BUG(!profile); + AA_BUG(!peer); + + aad(sa)->peer = &peer->label; + + if (state) { + state = aa_dfa_match(rule->policy.dfa, state, + peer->base.hname); + if (!state) + aad(sa)->info = "failed peer label match"; + } + return do_perms(profile, rule, state, request, sa); +} + + +/* unix sock creation comes before we know if the socket will be an fs + * socket + * v6 - semantics are handled by mapping in profile load + * v7 - semantics require sock create for tasks creating an fs socket. + */ +static int profile_create_perm(struct aa_profile *profile, int family, + int type, int protocol) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + aa_state_t state; + DEFINE_AUDIT_NET(sa, OP_CREATE, NULL, family, type, protocol); + + AA_BUG(!profile); + AA_BUG(profile_unconfined(profile)); + + if ((state = RULE_MEDIATES_AF(rules, AF_UNIX))) { + state = match_to_prot(rules->policy.dfa, state, type, protocol, + &aad(&sa)->info); + return do_perms(profile, rules, state, AA_MAY_CREATE, &sa); + } + + return aa_profile_af_perm(profile, &sa, AA_MAY_CREATE, family, type); +} + +int aa_unix_create_perm(struct aa_label *label, int family, int type, + int protocol) +{ + struct aa_profile *profile; + + if (unconfined(label)) + return 0; + + return fn_for_each_confined(label, profile, + profile_create_perm(profile, family, type, protocol)); +} + + +static inline int profile_sk_perm(struct aa_profile *profile, const char *op, + u32 request, struct sock *sk) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), + list); + unsigned int state; + DEFINE_AUDIT_SK(sa, op, sk); + + AA_BUG(!profile); + AA_BUG(!sk); + AA_BUG(UNIX_FS(sk)); + AA_BUG(profile_unconfined(profile)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + state = match_to_sk(rules->policy.dfa, state, unix_sk(sk), + &aad(&sa)->info); + return do_perms(profile, rules, state, request, &sa); + } + + return aa_profile_af_sk_perm(profile, &sa, request, sk); +} + +int aa_unix_label_sk_perm(struct aa_label *label, const char *op, u32 request, + struct sock *sk) +{ + struct aa_profile *profile; + + return fn_for_each_confined(label, profile, + profile_sk_perm(profile, op, request, sk)); +} + +static int unix_label_sock_perm(struct aa_label *label, const char *op, u32 request, + struct socket *sock) +{ + if (unconfined(label)) + return 0; + if (UNIX_FS(sock->sk)) + return unix_fs_perm(op, request, label, unix_sk(sock->sk), 0); + + return aa_unix_label_sk_perm(label, op, request, sock->sk); +} + +/* revaliation, get/set attr */ +int aa_unix_sock_perm(const char *op, u32 request, struct socket *sock) +{ + struct aa_label *label; + int error; + + label = begin_current_label_crit_section(); + error = unix_label_sock_perm(label, op, request, sock); + end_current_label_crit_section(label); + + return error; +} + +static int profile_bind_perm(struct aa_profile *profile, struct sock *sk, + struct sockaddr *addr, int addrlen) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + unsigned int state; + DEFINE_AUDIT_SK(sa, OP_BIND, sk); + + AA_BUG(!profile); + AA_BUG(!sk); + AA_BUG(addr->sa_family != AF_UNIX); + AA_BUG(profile_unconfined(profile)); + AA_BUG(unix_addr_fs(addr, addrlen)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + /* bind for abstract socket */ + aad(&sa)->net.addr = unix_addr(addr); + aad(&sa)->net.addrlen = addrlen; + + state = match_to_local(rules->policy.dfa, state, + sk->sk_type, sk->sk_protocol, + unix_addr(addr), addrlen, + &aad(&sa)->info); + return do_perms(profile, rules, state, AA_MAY_BIND, &sa); + } + + return aa_profile_af_sk_perm(profile, &sa, AA_MAY_BIND, sk); +} + +int aa_unix_bind_perm(struct socket *sock, struct sockaddr *address, + int addrlen) +{ + struct aa_profile *profile; + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + /* fs bind is handled by mknod */ + if (!(unconfined(label) || unix_addr_fs(address, addrlen))) + error = fn_for_each_confined(label, profile, + profile_bind_perm(profile, sock->sk, address, + addrlen)); + end_current_label_crit_section(label); + + return error; +} + +int aa_unix_connect_perm(struct socket *sock, struct sockaddr *address, + int addrlen) +{ + /* unix connections are covered by the + * - unix_stream_connect (stream) and unix_may_send hooks (dgram) + * - fs connect is handled by open + */ + return 0; +} + +static int profile_listen_perm(struct aa_profile *profile, struct sock *sk, + int backlog) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + unsigned int state; + DEFINE_AUDIT_SK(sa, OP_LISTEN, sk); + + AA_BUG(!profile); + AA_BUG(!sk); + AA_BUG(UNIX_FS(sk)); + AA_BUG(profile_unconfined(profile)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + __be16 b = cpu_to_be16(backlog); + + state = match_to_cmd(rules->policy.dfa, state, unix_sk(sk), + CMD_LISTEN, &aad(&sa)->info); + if (state) { + state = aa_dfa_match_len(rules->policy.dfa, state, + (char *) &b, 2); + if (!state) + aad(&sa)->info = "failed listen backlog match"; + } + return do_perms(profile, rules, state, AA_MAY_LISTEN, &sa); + } + + return aa_profile_af_sk_perm(profile, &sa, AA_MAY_LISTEN, sk); +} + +int aa_unix_listen_perm(struct socket *sock, int backlog) +{ + struct aa_profile *profile; + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + if (!(unconfined(label) || UNIX_FS(sock->sk))) + error = fn_for_each_confined(label, profile, + profile_listen_perm(profile, sock->sk, + backlog)); + end_current_label_crit_section(label); + + return error; +} + + +static inline int profile_accept_perm(struct aa_profile *profile, + struct sock *sk, + struct sock *newsk) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + unsigned int state; + DEFINE_AUDIT_SK(sa, OP_ACCEPT, sk); + + AA_BUG(!profile); + AA_BUG(!sk); + AA_BUG(UNIX_FS(sk)); + AA_BUG(profile_unconfined(profile)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + state = match_to_sk(rules->policy.dfa, state, unix_sk(sk), + &aad(&sa)->info); + return do_perms(profile, rules, state, AA_MAY_ACCEPT, &sa); + } + + return aa_profile_af_sk_perm(profile, &sa, AA_MAY_ACCEPT, sk); +} + +/* ability of sock to connect, not peer address binding */ +int aa_unix_accept_perm(struct socket *sock, struct socket *newsock) +{ + struct aa_profile *profile; + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + if (!(unconfined(label) || UNIX_FS(sock->sk))) + error = fn_for_each_confined(label, profile, + profile_accept_perm(profile, sock->sk, + newsock->sk)); + end_current_label_crit_section(label); + + return error; +} + + +/* dgram handled by unix_may_sendmsg, right to send on stream done at connect + * could do per msg unix_stream here + */ +/* sendmsg, recvmsg */ +int aa_unix_msg_perm(const char *op, u32 request, struct socket *sock, + struct msghdr *msg, int size) +{ + return 0; +} + + +static int profile_opt_perm(struct aa_profile *profile, const char *op, u32 request, + struct sock *sk, int level, int optname) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + unsigned int state; + DEFINE_AUDIT_SK(sa, op, sk); + + AA_BUG(!profile); + AA_BUG(!sk); + AA_BUG(UNIX_FS(sk)); + AA_BUG(profile_unconfined(profile)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + __be16 b = cpu_to_be16(optname); + + state = match_to_cmd(rules->policy.dfa, state, unix_sk(sk), + CMD_OPT, &aad(&sa)->info); + if (state) { + state = aa_dfa_match_len(rules->policy.dfa, state, + (char *) &b, 2); + if (!state) + aad(&sa)->info = "failed sockopt match"; + } + return do_perms(profile, rules, state, request, &sa); + } + + return aa_profile_af_sk_perm(profile, &sa, request, sk); +} + +int aa_unix_opt_perm(const char *op, u32 request, struct socket *sock, int level, + int optname) +{ + struct aa_profile *profile; + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + if (!(unconfined(label) || UNIX_FS(sock->sk))) + error = fn_for_each_confined(label, profile, + profile_opt_perm(profile, op, request, + sock->sk, level, optname)); + end_current_label_crit_section(label); + + return error; +} + +/* null peer_label is allowed, in which case the peer_sk label is used */ +static int profile_peer_perm(struct aa_profile *profile, const char *op, u32 request, + struct sock *sk, struct sock *peer_sk, + struct aa_label *peer_label, + struct common_audit_data *sa) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + unsigned int state; + + AA_BUG(!profile); + AA_BUG(profile_unconfined(profile)); + AA_BUG(!sk); + AA_BUG(!peer_sk); + AA_BUG(UNIX_FS(peer_sk)); + + state = RULE_MEDIATES_AF(rules, AF_UNIX); + if (state) { + struct aa_sk_ctx *peer_ctx = aa_sock(peer_sk); + struct aa_profile *peerp; + struct sockaddr_un *addr = NULL; + int len = 0; + if (unix_sk(peer_sk)->addr) { + addr = unix_sk(peer_sk)->addr->name; + len = unix_sk(peer_sk)->addr->len; + } + state = match_to_peer(rules->policy.dfa, state, unix_sk(sk), + addr, len, &aad(sa)->info); + if (!peer_label) + peer_label = peer_ctx->label; + return fn_for_each_in_ns(peer_label, peerp, + match_label(profile, rules, peerp, state, + request, sa)); + } + + return aa_profile_af_sk_perm(profile, sa, request, sk); +} + +/** + * + * Requires: lock held on both @sk and @peer_sk + */ +int aa_unix_peer_perm(struct aa_label *label, const char *op, u32 request, + struct sock *sk, struct sock *peer_sk, + struct aa_label *peer_label) +{ + struct unix_sock *peeru = unix_sk(peer_sk); + struct unix_sock *u = unix_sk(sk); + + AA_BUG(!label); + AA_BUG(!sk); + AA_BUG(!peer_sk); + + if (UNIX_FS(aa_unix_sk(peeru))) + return unix_fs_perm(op, request, label, peeru, 0); + else if (UNIX_FS(aa_unix_sk(u))) + return unix_fs_perm(op, request, label, u, 0); + else { + struct aa_profile *profile; + DEFINE_AUDIT_SK(sa, op, sk); + aad(&sa)->net.peer_sk = peer_sk; + + /* TODO: ns!!! */ + if (!net_eq(sock_net(sk), sock_net(peer_sk))) { + ; + } + + if (unconfined(label)) + return 0; + + return fn_for_each_confined(label, profile, + profile_peer_perm(profile, op, request, sk, + peer_sk, peer_label, &sa)); + } +} + + +/* from net/unix/af_unix.c */ +static void unix_state_double_lock(struct sock *sk1, struct sock *sk2) +{ + if (unlikely(sk1 == sk2) || !sk2) { + unix_state_lock(sk1); + return; + } + if (sk1 < sk2) { + unix_state_lock(sk1); + unix_state_lock_nested(sk2); + } else { + unix_state_lock(sk2); + unix_state_lock_nested(sk1); + } +} + +static void unix_state_double_unlock(struct sock *sk1, struct sock *sk2) +{ + if (unlikely(sk1 == sk2) || !sk2) { + unix_state_unlock(sk1); + return; + } + unix_state_unlock(sk1); + unix_state_unlock(sk2); +} + +int aa_unix_file_perm(struct aa_label *label, const char *op, u32 request, + struct socket *sock) +{ + struct sock *peer_sk = NULL; + u32 sk_req = request & ~NET_PEER_MASK; + int error = 0; + + AA_BUG(!label); + AA_BUG(!sock); + AA_BUG(!sock->sk); + AA_BUG(sock->sk->sk_family != AF_UNIX); + + /* TODO: update sock label with new task label */ + unix_state_lock(sock->sk); + peer_sk = unix_peer(sock->sk); + if (peer_sk) + sock_hold(peer_sk); + if (!unix_connected(sock) && sk_req) { + error = unix_label_sock_perm(label, op, sk_req, sock); + if (!error) { + // update label + } + } + unix_state_unlock(sock->sk); + if (!peer_sk) + return error; + + unix_state_double_lock(sock->sk, peer_sk); + if (UNIX_FS(sock->sk)) { + error = unix_fs_perm(op, request, label, unix_sk(sock->sk), + PATH_SOCK_COND); + } else if (UNIX_FS(peer_sk)) { + error = unix_fs_perm(op, request, label, unix_sk(peer_sk), + PATH_SOCK_COND); + } else { + struct aa_sk_ctx *pctx = aa_sock(peer_sk); + if (sk_req) + error = aa_unix_label_sk_perm(label, op, sk_req, + sock->sk); + last_error(error, + xcheck(aa_unix_peer_perm(label, op, + MAY_READ | MAY_WRITE, + sock->sk, peer_sk, NULL), + aa_unix_peer_perm(pctx->label, op, + MAY_READ | MAY_WRITE, + peer_sk, sock->sk, label))); + } + + unix_state_double_unlock(sock->sk, peer_sk); + sock_put(peer_sk); + + return error; +} --- linux-5.19.0.orig/security/apparmor/apparmorfs.c +++ linux-5.19.0/security/apparmor/apparmorfs.c @@ -21,7 +21,7 @@ #include #include #include -#include +#include #include #include @@ -36,6 +36,7 @@ #include "include/policy_ns.h" #include "include/resource.h" #include "include/policy_unpack.h" +#include "include/task.h" /* * The apparmor filesystem interface used for policy load and introspection @@ -70,6 +71,7 @@ struct aa_loaddata *loaddata; }; +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY #define RAWDATA_F_DATA_BUF(p) (char *)(p + 1) static void rawdata_f_data_free(struct rawdata_f_data *private) @@ -94,9 +96,10 @@ return ret; } +#endif /** - * aa_mangle_name - mangle a profile name to std profile layout form + * mangle_name - mangle a profile name to std profile layout form * @name: profile name to mangle (NOT NULL) * @target: buffer to store mangled name, same length as @name (MAYBE NULL) * @@ -401,7 +404,7 @@ data->size = copy_size; if (copy_from_user(data->data, userbuf, copy_size)) { - kvfree(data); + aa_put_loaddata(data); return ERR_PTR(-EFAULT); } @@ -608,29 +611,30 @@ static void profile_query_cb(struct aa_profile *profile, struct aa_perms *perms, const char *match_str, size_t match_len) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_perms tmp = { }; - struct aa_dfa *dfa; - unsigned int state = 0; + aa_state_t state = DFA_NOMATCH; if (profile_unconfined(profile)) return; - if (profile->file.dfa && *match_str == AA_CLASS_FILE) { - dfa = profile->file.dfa; - state = aa_dfa_match_len(dfa, profile->file.start, + if (rules->file.dfa && *match_str == AA_CLASS_FILE) { + state = aa_dfa_match_len(rules->file.dfa, + rules->file.start[AA_CLASS_FILE], match_str + 1, match_len - 1); if (state) { struct path_cond cond = { }; - tmp = aa_compute_fperms(dfa, state, &cond); + tmp = *(aa_lookup_fperms(&(rules->file), state, &cond)); } - } else if (profile->policy.dfa) { - if (!PROFILE_MEDIATES(profile, *match_str)) + } else if (rules->policy.dfa) { + if (!RULE_MEDIATES(rules, *match_str)) return; /* no change to current perms */ - dfa = profile->policy.dfa; - state = aa_dfa_match_len(dfa, profile->policy.start[0], + state = aa_dfa_match_len(rules->policy.dfa, + rules->policy.start[0], match_str, match_len); if (state) - aa_compute_perms(dfa, state, &tmp); + tmp = *aa_lookup_perms(&rules->policy, state); } aa_apply_modes_to_perms(profile, &tmp); aa_perms_accum_raw(perms, &tmp); @@ -865,8 +869,10 @@ if (!t) return ERR_PTR(-ENOMEM); kref_init(&t->count); - if (copy_from_user(t->data, buf, size)) + if (copy_from_user(t->data, buf, size)) { + put_multi_transaction(t); return ERR_PTR(-EFAULT); + } return t; } @@ -1087,9 +1093,9 @@ struct aa_proxy *proxy = seq->private; struct aa_label *label = aa_get_label_rcu(&proxy->label); struct aa_profile *profile = labels_profile(label); - if (profile->attach) - seq_printf(seq, "%s\n", profile->attach); - else if (profile->xmatch) + if (profile->attach.xmatch_str) + seq_printf(seq, "%s\n", profile->attach.xmatch_str); + else if (profile->attach.xmatch.dfa) seq_puts(seq, "\n"); else seq_printf(seq, "%s\n", profile->base.name); @@ -1194,14 +1200,28 @@ return 0; } +static int seq_ns_compress_min_show(struct seq_file *seq, void *v) +{ + seq_printf(seq, "%d\n", zstd_min_clevel()); + return 0; +} + +static int seq_ns_compress_max_show(struct seq_file *seq, void *v) +{ + seq_printf(seq, "%d\n", zstd_max_clevel()); + return 0; +} + SEQ_NS_FOPS(stacked); SEQ_NS_FOPS(nsstacked); SEQ_NS_FOPS(level); SEQ_NS_FOPS(name); +SEQ_NS_FOPS(compress_min); +SEQ_NS_FOPS(compress_max); /* policy/raw_data/ * file ops */ - +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY #define SEQ_RAWDATA_FOPS(NAME) \ static int seq_rawdata_ ##NAME ##_open(struct inode *inode, struct file *file)\ { \ @@ -1292,46 +1312,41 @@ SEQ_RAWDATA_FOPS(hash); SEQ_RAWDATA_FOPS(compressed_size); -static int deflate_decompress(char *src, size_t slen, char *dst, size_t dlen) +static int decompress_zstd(char *src, size_t slen, char *dst, size_t dlen) { - int error; - struct z_stream_s strm; - +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY if (aa_g_rawdata_compression_level == 0) { - if (dlen < slen) - return -EINVAL; - memcpy(dst, src, slen); - return 0; - } - - memset(&strm, 0, sizeof(strm)); - - strm.workspace = kvzalloc(zlib_inflate_workspacesize(), GFP_KERNEL); - if (!strm.workspace) - return -ENOMEM; - - strm.next_in = src; - strm.avail_in = slen; - - error = zlib_inflateInit(&strm); - if (error != Z_OK) { - error = -ENOMEM; - goto fail_inflate_init; + const size_t wksp_len = zstd_dctx_workspace_bound(); + zstd_dctx *ctx; + void *wksp; + size_t out_len; + int ret = 0; + + wksp = kvzalloc(wksp_len, GFP_KERNEL); + if (!wksp) { + ret = -ENOMEM; + goto cleanup; + } + ctx = zstd_init_dctx(wksp, wksp_len); + if (ctx == NULL) { + ret = -ENOMEM; + goto cleanup; + } + out_len = zstd_decompress_dctx(ctx, dst, dlen, src, slen); + if (zstd_is_error(out_len)) { + ret = -EINVAL; + goto cleanup; + } +cleanup: + kvfree(wksp); + return ret; } +#endif - strm.next_out = dst; - strm.avail_out = dlen; - - error = zlib_inflate(&strm, Z_FINISH); - if (error != Z_STREAM_END) - error = -EINVAL; - else - error = 0; - - zlib_inflateEnd(&strm); -fail_inflate_init: - kvfree(strm.workspace); - return error; + if (dlen < slen) + return -EINVAL; + memcpy(dst, src, slen); + return 0; } static ssize_t rawdata_read(struct file *file, char __user *buf, size_t size, @@ -1373,9 +1388,9 @@ private->loaddata = loaddata; - error = deflate_decompress(loaddata->data, loaddata->compressed_size, - RAWDATA_F_DATA_BUF(private), - loaddata->size); + error = decompress_zstd(loaddata->data, loaddata->compressed_size, + RAWDATA_F_DATA_BUF(private), + loaddata->size); if (error) goto fail_decompress; @@ -1492,10 +1507,12 @@ return PTR_ERR(dent); } +#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */ + /** fns to setup dynamic per profile/namespace files **/ -/** +/* * * Requires: @profile->ns->lock held */ @@ -1522,7 +1539,7 @@ } } -/** +/* * * Requires: @old->ns->lock held */ @@ -1557,6 +1574,7 @@ return dent; } +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY static int profile_depth(struct aa_profile *profile) { int depth = 0; @@ -1658,7 +1676,7 @@ static const struct inode_operations rawdata_link_data_iops = { .get_link = rawdata_get_link_data, }; - +#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */ /* * Requires: @profile->ns->lock held @@ -1729,15 +1747,17 @@ profile->dents[AAFS_PROF_HASH] = dent; } +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY if (profile->rawdata) { - dent = aafs_create("raw_sha1", S_IFLNK | 0444, dir, - profile->label.proxy, NULL, NULL, - &rawdata_link_sha1_iops); - if (IS_ERR(dent)) - goto fail; - aa_get_proxy(profile->label.proxy); - profile->dents[AAFS_PROF_RAW_HASH] = dent; - + if (aa_g_hash_policy) { + dent = aafs_create("raw_sha1", S_IFLNK | 0444, dir, + profile->label.proxy, NULL, NULL, + &rawdata_link_sha1_iops); + if (IS_ERR(dent)) + goto fail; + aa_get_proxy(profile->label.proxy); + profile->dents[AAFS_PROF_RAW_HASH] = dent; + } dent = aafs_create("raw_abi", S_IFLNK | 0444, dir, profile->label.proxy, NULL, NULL, &rawdata_link_abi_iops); @@ -1754,6 +1774,7 @@ aa_get_proxy(profile->label.proxy); profile->dents[AAFS_PROF_RAW_DATA] = dent; } +#endif /*CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */ list_for_each_entry(child, &profile->base.profiles, base.list) { error = __aafs_profile_mkdir(child, prof_child_dir(profile)); @@ -1880,7 +1901,7 @@ __aa_fs_remove_rawdata(ent); } -/** +/* * * Requires: @ns->lock held */ @@ -2290,6 +2311,12 @@ { } }; +static struct aa_sfs_entry aa_sfs_entry_ipc[] = { + AA_SFS_FILE_STRING("posix_mqueue", + "create read write open delete setattr getattr"), + { } +}; + static struct aa_sfs_entry aa_sfs_entry_ptrace[] = { AA_SFS_FILE_STRING("mask", "read trace"), { } @@ -2323,6 +2350,7 @@ AA_SFS_FILE_BOOLEAN("v6", 1), AA_SFS_FILE_BOOLEAN("v7", 1), AA_SFS_FILE_BOOLEAN("v8", 1), + AA_SFS_FILE_BOOLEAN("v9", 1), { } }; @@ -2342,6 +2370,12 @@ static struct aa_sfs_entry aa_sfs_entry_ns[] = { AA_SFS_FILE_BOOLEAN("profile", 1), AA_SFS_FILE_BOOLEAN("pivot_root", 0), + AA_SFS_FILE_STRING("mask", "userns_create"), + { } +}; + +static struct aa_sfs_entry aa_sfs_entry_dbus[] = { + AA_SFS_FILE_STRING("mask", "acquire send receive"), { } }; @@ -2360,7 +2394,9 @@ AA_SFS_DIR("policy", aa_sfs_entry_policy), AA_SFS_DIR("domain", aa_sfs_entry_domain), AA_SFS_DIR("file", aa_sfs_entry_file), + AA_SFS_DIR("ipc", aa_sfs_entry_ipc), AA_SFS_DIR("network_v8", aa_sfs_entry_network), + AA_SFS_DIR("network", aa_sfs_entry_network_compat), AA_SFS_DIR("mount", aa_sfs_entry_mount), AA_SFS_DIR("namespaces", aa_sfs_entry_ns), AA_SFS_FILE_U64("capability", VFS_CAP_FLAGS_MASK), @@ -2368,6 +2404,7 @@ AA_SFS_DIR("caps", aa_sfs_entry_caps), AA_SFS_DIR("ptrace", aa_sfs_entry_ptrace), AA_SFS_DIR("signal", aa_sfs_entry_signal), + AA_SFS_DIR("dbus", aa_sfs_entry_dbus), AA_SFS_DIR("query", aa_sfs_entry_query), { } }; @@ -2379,6 +2416,8 @@ AA_SFS_FILE_FOPS(".ns_level", 0444, &seq_ns_level_fops), AA_SFS_FILE_FOPS(".ns_name", 0444, &seq_ns_name_fops), AA_SFS_FILE_FOPS("profiles", 0444, &aa_sfs_profiles_fops), + AA_SFS_FILE_FOPS("raw_data_compression_level_min", 0444, &seq_ns_compress_min_fops), + AA_SFS_FILE_FOPS("raw_data_compression_level_max", 0444, &seq_ns_compress_max_fops), AA_SFS_DIR("features", aa_sfs_entry_features), { } }; --- linux-5.19.0.orig/security/apparmor/audit.c +++ linux-5.19.0/security/apparmor/audit.c @@ -36,6 +36,43 @@ "AUTO" }; +static const char *const aa_class_names[] = { + "none", + "unknown", + "file", + "cap", + "net", + "rlimits", + "domain", + "mount", + "unknown", + "ptrace", + "signal", + "xmatch", + "unknown", + "unknown", + "net", + "unknown", + "label", + "posix_mqueue", + "io_uring", + "module", + "lsm", + "namespace", + "unknown", + "unknown", + "unknown", + "unknown", + "unknown", + "unknown", + "unknown", + "unknown", + "unknown", + "X", + "dbus", +}; + + /* * Currently AppArmor auditing is fed straight into the audit framework. * @@ -65,6 +102,12 @@ audit_log_format(ab, " operation=\"%s\"", aad(sa)->op); } + if (aad(sa)->class) + audit_log_format(ab, " class=\"%s\"", + aad(sa)->class <= AA_CLASS_LAST ? + aa_class_names[aad(sa)->class] : + "unknown"); + if (aad(sa)->info) { audit_log_format(ab, " info=\"%s\"", aad(sa)->info); if (aad(sa)->error) @@ -137,7 +180,7 @@ } if (AUDIT_MODE(profile) == AUDIT_QUIET || (type == AUDIT_APPARMOR_DENIED && - AUDIT_MODE(profile) == AUDIT_QUIET)) + AUDIT_MODE(profile) == AUDIT_QUIET_DENIED)) return aad(sa)->error; if (KILL_MODE(profile) && type == AUDIT_APPARMOR_DENIED) --- linux-5.19.0.orig/security/apparmor/capability.c +++ linux-5.19.0/security/apparmor/capability.c @@ -64,6 +64,8 @@ static int audit_caps(struct common_audit_data *sa, struct aa_profile *profile, int cap, int error) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct audit_cache *ent; int type = AUDIT_APPARMOR_AUTO; @@ -72,13 +74,13 @@ if (likely(!error)) { /* test if auditing is being forced */ if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && - !cap_raised(profile->caps.audit, cap))) + !cap_raised(rules->caps.audit, cap))) return 0; type = AUDIT_APPARMOR_AUDIT; } else if (KILL_MODE(profile) || - cap_raised(profile->caps.kill, cap)) { + cap_raised(rules->caps.kill, cap)) { type = AUDIT_APPARMOR_KILL; - } else if (cap_raised(profile->caps.quiet, cap) && + } else if (cap_raised(rules->caps.quiet, cap) && AUDIT_MODE(profile) != AUDIT_NOQUIET && AUDIT_MODE(profile) != AUDIT_ALL) { /* quiet auditing */ @@ -114,10 +116,12 @@ static int profile_capable(struct aa_profile *profile, int cap, unsigned int opts, struct common_audit_data *sa) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); int error; - if (cap_raised(profile->caps.allow, cap) && - !cap_raised(profile->caps.denied, cap)) + if (cap_raised(rules->caps.allow, cap) && + !cap_raised(rules->caps.denied, cap)) error = 0; else error = -EPERM; @@ -148,7 +152,7 @@ { struct aa_profile *profile; int error = 0; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_CAP, OP_CAPABLE); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_CAP, AA_CLASS_CAP, OP_CAPABLE); sa.u.cap = cap; error = fn_for_each_confined(label, profile, --- linux-5.19.0.orig/security/apparmor/crypto.c +++ linux-5.19.0/security/apparmor/crypto.c @@ -25,6 +25,25 @@ return apparmor_hash_size; } +void aa_snprint_hashstr(char *out, unsigned char *hash, unsigned int hsize) +{ + unsigned int i; + + for (i = 0; i < hsize; i++) + sprintf(out + i*2, "%.2x", hash[i]); + out[hsize*2] = 0; +} + +char *aa_asprint_hashstr(unsigned char *hash, unsigned int hsize, gfp_t gfp) +{ + char *buffer = kmalloc(hsize*2 + 1, gfp); + if (!buffer) + return NULL; + aa_snprint_hashstr(buffer, hash, hsize); + + return buffer; +} + char *aa_calc_hash(void *data, size_t len) { SHASH_DESC_ON_STACK(desc, apparmor_tfm); --- linux-5.19.0.orig/security/apparmor/domain.c +++ linux-5.19.0/security/apparmor/domain.c @@ -30,24 +30,6 @@ #include "include/policy_ns.h" /** - * aa_free_domain_entries - free entries in a domain table - * @domain: the domain table to free (MAYBE NULL) - */ -void aa_free_domain_entries(struct aa_domain *domain) -{ - int i; - if (domain) { - if (!domain->table) - return; - - for (i = 0; i < domain->size; i++) - kfree_sensitive(domain->table[i]); - kfree_sensitive(domain->table); - domain->table = NULL; - } -} - -/** * may_change_ptraced_domain - check if can change profile on ptraced task * @to_label: profile to change to (NOT NULL) * @info: message if there is an error @@ -95,23 +77,25 @@ * If a subns profile is not to be matched should be prescreened with * visibility test. */ -static inline unsigned int match_component(struct aa_profile *profile, - struct aa_profile *tp, - bool stack, unsigned int state) +static inline aa_state_t match_component(struct aa_profile *profile, + struct aa_profile *tp, + bool stack, aa_state_t state) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); const char *ns_name; if (stack) - state = aa_dfa_match(profile->file.dfa, state, "&"); + state = aa_dfa_match(rules->file.dfa, state, "&"); if (profile->ns == tp->ns) - return aa_dfa_match(profile->file.dfa, state, tp->base.hname); + return aa_dfa_match(rules->file.dfa, state, tp->base.hname); /* try matching with namespace name and then profile */ ns_name = aa_ns_name(profile->ns, tp->ns, true); - state = aa_dfa_match_len(profile->file.dfa, state, ":", 1); - state = aa_dfa_match(profile->file.dfa, state, ns_name); - state = aa_dfa_match_len(profile->file.dfa, state, ":", 1); - return aa_dfa_match(profile->file.dfa, state, tp->base.hname); + state = aa_dfa_match_len(rules->file.dfa, state, ":", 1); + state = aa_dfa_match(rules->file.dfa, state, ns_name); + state = aa_dfa_match_len(rules->file.dfa, state, ":", 1); + return aa_dfa_match(rules->file.dfa, state, tp->base.hname); } /** @@ -119,7 +103,7 @@ * @profile: profile to find perms for * @label: label to check access permissions for * @stack: whether this is a stacking request - * @start: state to start match in + * @state: state to start match in * @subns: whether to do permission checks on components in a subns * @request: permissions to request * @perms: perms struct to set @@ -132,9 +116,11 @@ */ static int label_compound_match(struct aa_profile *profile, struct aa_label *label, bool stack, - unsigned int state, bool subns, u32 request, + aa_state_t state, bool subns, u32 request, struct aa_perms *perms) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_profile *tp; struct label_it i; struct path_cond cond = { }; @@ -157,12 +143,12 @@ label_for_each_cont(i, label, tp) { if (!aa_ns_visible(profile->ns, tp->ns, subns)) continue; - state = aa_dfa_match(profile->file.dfa, state, "//&"); + state = aa_dfa_match(rules->file.dfa, state, "//&"); state = match_component(profile, tp, false, state); if (!state) goto fail; } - *perms = aa_compute_fperms(profile->file.dfa, state, &cond); + *perms = *(aa_lookup_fperms(&(rules->file), state, &cond)); aa_apply_modes_to_perms(profile, perms); if ((perms->allow & request) != request) return -EACCES; @@ -192,14 +178,16 @@ */ static int label_components_match(struct aa_profile *profile, struct aa_label *label, bool stack, - unsigned int start, bool subns, u32 request, + aa_state_t start, bool subns, u32 request, struct aa_perms *perms) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_profile *tp; struct label_it i; struct aa_perms tmp; struct path_cond cond = { }; - unsigned int state = 0; + aa_state_t state = 0; /* find first subcomponent to test */ label_for_each(i, label, tp) { @@ -215,7 +203,7 @@ return 0; next: - tmp = aa_compute_fperms(profile->file.dfa, state, &cond); + tmp = *(aa_lookup_fperms(&(rules->file), state, &cond)); aa_apply_modes_to_perms(profile, &tmp); aa_perms_accum(perms, &tmp); label_for_each_cont(i, label, tp) { @@ -224,7 +212,7 @@ state = match_component(profile, tp, stack, start); if (!state) goto fail; - tmp = aa_compute_fperms(profile->file.dfa, state, &cond); + tmp = *(aa_lookup_fperms(&(rules->file), state, &cond)); aa_apply_modes_to_perms(profile, &tmp); aa_perms_accum(perms, &tmp); } @@ -252,7 +240,7 @@ * Returns: the state the match finished in, may be the none matching state */ static int label_match(struct aa_profile *profile, struct aa_label *label, - bool stack, unsigned int state, bool subns, u32 request, + bool stack, aa_state_t state, bool subns, u32 request, struct aa_perms *perms) { int error; @@ -286,7 +274,7 @@ */ static int change_profile_perms(struct aa_profile *profile, struct aa_label *target, bool stack, - u32 request, unsigned int start, + u32 request, aa_state_t start, struct aa_perms *perms) { if (profile_unconfined(profile)) { @@ -308,45 +296,48 @@ * Returns: number of extended attributes that matched, or < 0 on error */ static int aa_xattrs_match(const struct linux_binprm *bprm, - struct aa_profile *profile, unsigned int state) + struct aa_profile *profile, aa_state_t state) { int i; ssize_t size; struct dentry *d; char *value = NULL; - int value_size = 0, ret = profile->xattr_count; + struct aa_attachment *attach = &profile->attach; + int value_size = 0, ret = attach->xattr_count; - if (!bprm || !profile->xattr_count) + if (!bprm || !attach->xattr_count) return 0; might_sleep(); /* transition from exec match to xattr set */ - state = aa_dfa_outofband_transition(profile->xmatch, state); + state = aa_dfa_outofband_transition(attach->xmatch.dfa, state); d = bprm->file->f_path.dentry; - for (i = 0; i < profile->xattr_count; i++) { - size = vfs_getxattr_alloc(&init_user_ns, d, profile->xattrs[i], + for (i = 0; i < attach->xattr_count; i++) { + size = vfs_getxattr_alloc(&init_user_ns, d, attach->xattrs[i], &value, value_size, GFP_KERNEL); if (size >= 0) { - u32 perm; + u32 index, perm; /* * Check the xattr presence before value. This ensure * that not present xattr can be distinguished from a 0 * length value or rule that matches any value */ - state = aa_dfa_null_transition(profile->xmatch, state); + state = aa_dfa_null_transition(attach->xmatch.dfa, + state); /* Check xattr value */ - state = aa_dfa_match_len(profile->xmatch, state, value, - size); - perm = dfa_user_allow(profile->xmatch, state); + state = aa_dfa_match_len(attach->xmatch.dfa, state, + value, size); + index = ACCEPT_TABLE(attach->xmatch.dfa)[state]; + perm = attach->xmatch.perms[index].allow; if (!(perm & MAY_EXEC)) { ret = -EINVAL; goto out; } } /* transition to next element */ - state = aa_dfa_outofband_transition(profile->xmatch, state); + state = aa_dfa_outofband_transition(attach->xmatch.dfa, state); if (size < 0) { /* * No xattr match, so verify if transition to @@ -398,6 +389,8 @@ rcu_read_lock(); restart: list_for_each_entry_rcu(profile, head, base.list) { + struct aa_attachment *attach = &profile->attach; + if (profile->label.flags & FLAG_NULL && &profile->label == ns_unconfined(profile->ns)) continue; @@ -413,13 +406,16 @@ * as another profile, signal a conflict and refuse to * match. */ - if (profile->xmatch) { - unsigned int state, count; - u32 perm; - - state = aa_dfa_leftmatch(profile->xmatch, DFA_START, - name, &count); - perm = dfa_user_allow(profile->xmatch, state); + if (attach->xmatch.dfa) { + unsigned int count; + aa_state_t state; + u32 index, perm; + + state = aa_dfa_leftmatch(attach->xmatch.dfa, + attach->xmatch.start[AA_CLASS_XMATCH], + name, &count); + index = ACCEPT_TABLE(attach->xmatch.dfa)[state]; + perm = attach->xmatch.perms[index].allow; /* any accepting state means a valid match. */ if (perm & MAY_EXEC) { int ret = 0; @@ -427,7 +423,7 @@ if (count < candidate_len) continue; - if (bprm && profile->xattr_count) { + if (bprm && attach->xattr_count) { long rev = READ_ONCE(ns->revision); if (!aa_get_profile_not0(profile)) @@ -466,7 +462,7 @@ * xattrs, or a longer match */ candidate = profile; - candidate_len = profile->xmatch_len; + candidate_len = max(count, attach->xmatch_len); candidate_xattrs = ret; conflict = false; } @@ -510,6 +506,8 @@ struct aa_label *x_table_lookup(struct aa_profile *profile, u32 xindex, const char **name) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_label *label = NULL; u32 xtype = xindex & AA_X_TYPE_MASK; int index = xindex & AA_X_INDEX_MASK; @@ -520,7 +518,7 @@ /* TODO: move lookup parsing to unpack time so this is a straight * index into the resultant label */ - for (*name = profile->file.trans.table[index]; !label && *name; + for (*name = rules->file.trans.table[index]; !label && *name; *name = next_name(xtype, *name)) { if (xindex & AA_X_CHILD) { struct aa_profile *new_profile; @@ -559,6 +557,8 @@ const char **lookupname, const char **info) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_label *new = NULL; struct aa_ns *ns = profile->ns; u32 xtype = xindex & AA_X_TYPE_MASK; @@ -571,7 +571,7 @@ break; case AA_X_TABLE: /* TODO: fix when perm mapping done at unload */ - stack = profile->file.trans.table[xindex & AA_X_INDEX_MASK]; + stack = rules->file.trans.table[xindex & AA_X_INDEX_MASK]; if (*stack != '&') { /* released by caller */ new = x_table_lookup(profile, xindex, lookupname); @@ -625,9 +625,11 @@ char *buffer, struct path_cond *cond, bool *secure_exec) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_label *new = NULL; const char *info = NULL, *name = NULL, *target = NULL; - unsigned int state = profile->file.start; + aa_state_t state = rules->file.start[AA_CLASS_FILE]; struct aa_perms perms = {}; bool nonewprivs = false; int error = 0; @@ -661,7 +663,7 @@ } /* find exec permissions for name */ - state = aa_str_perms(profile->file.dfa, state, name, cond, &perms); + state = aa_str_perms(&(rules->file), state, name, cond, &perms); if (perms.allow & MAY_EXEC) { /* exec permission determine how to transition */ new = x_to_label(profile, bprm, name, perms.xindex, &target, @@ -723,7 +725,9 @@ char *buffer, struct path_cond *cond, bool *secure_exec) { - unsigned int state = profile->file.start; + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + aa_state_t state = rules->file.start[AA_CLASS_FILE]; struct aa_perms perms = {}; const char *xname = NULL, *info = "change_profile onexec"; int error = -EACCES; @@ -756,7 +760,7 @@ } /* find exec permissions for name */ - state = aa_str_perms(profile->file.dfa, state, xname, cond, &perms); + state = aa_str_perms(&(rules->file), state, xname, cond, &perms); if (!(perms.allow & AA_MAY_ONEXEC)) { info = "no change_onexec valid for executable"; goto audit; @@ -765,7 +769,7 @@ * onexec permission is linked to exec with a standard pairing * exec\0change_profile */ - state = aa_dfa_null_transition(profile->file.dfa, state); + state = aa_dfa_null_transition(rules->file.dfa, state); error = change_profile_perms(profile, onexec, stack, AA_MAY_ONEXEC, state, &perms); if (error) { @@ -1262,12 +1266,15 @@ struct aa_label *target, bool stack, u32 request, struct aa_perms *perms) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); const char *info = NULL; int error = 0; if (!error) error = change_profile_perms(profile, target, stack, request, - profile->file.start, perms); + rules->file.start[AA_CLASS_FILE], + perms); if (error) error = aa_audit_file(profile, perms, op, request, name, NULL, target, GLOBAL_ROOT_UID, info, @@ -1279,7 +1286,6 @@ /** * aa_change_profile - perform a one-way profile transition * @fqname: name of profile may include namespace (NOT NULL) - * @onexec: whether this transition is to take place immediately or at exec * @flags: flags affecting change behavior * * Change to new profile @name. Unlike with hats, there is no way --- linux-5.19.0.orig/security/apparmor/file.c +++ linux-5.19.0/security/apparmor/file.c @@ -14,10 +14,12 @@ #include #include +#include "include/af_unix.h" #include "include/apparmor.h" #include "include/audit.h" #include "include/cred.h" #include "include/file.h" +#include "include/ipc.h" #include "include/match.h" #include "include/net.h" #include "include/path.h" @@ -95,7 +97,7 @@ kuid_t ouid, const char *info, int error) { int type = AUDIT_APPARMOR_AUTO; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_TASK, op); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_TASK, AA_CLASS_FILE, op); sa.u.tsk = NULL; aad(&sa)->request = request; @@ -175,73 +177,28 @@ } /** - * map_old_perms - map old file perms layout to the new layout - * @old: permission set in old mapping - * - * Returns: new permission mapping - */ -static u32 map_old_perms(u32 old) -{ - u32 new = old & 0xf; - if (old & MAY_READ) - new |= AA_MAY_GETATTR | AA_MAY_OPEN; - if (old & MAY_WRITE) - new |= AA_MAY_SETATTR | AA_MAY_CREATE | AA_MAY_DELETE | - AA_MAY_CHMOD | AA_MAY_CHOWN | AA_MAY_OPEN; - if (old & 0x10) - new |= AA_MAY_LINK; - /* the old mapping lock and link_subset flags where overlaid - * and use was determined by part of a pair that they were in - */ - if (old & 0x20) - new |= AA_MAY_LOCK | AA_LINK_SUBSET; - if (old & 0x40) /* AA_EXEC_MMAP */ - new |= AA_EXEC_MMAP; - - return new; -} - -/** - * aa_compute_fperms - convert dfa compressed perms to internal perms - * @dfa: dfa to compute perms for (NOT NULL) + * aa_lookup_fperms - convert dfa compressed perms to internal perms + * @dfa: dfa to lookup perms for (NOT NULL) * @state: state in dfa * @cond: conditions to consider (NOT NULL) * - * TODO: convert from dfa + state to permission entry, do computation conversion - * at load time. + * TODO: convert from dfa + state to permission entry * - * Returns: computed permission set + * Returns: a pointer to a file permission set */ -struct aa_perms aa_compute_fperms(struct aa_dfa *dfa, unsigned int state, - struct path_cond *cond) +struct aa_perms default_perms = {}; +struct aa_perms *aa_lookup_fperms(struct aa_policydb *file_rules, + aa_state_t state, struct path_cond *cond) { - /* FIXME: change over to new dfa format - * currently file perms are encoded in the dfa, new format - * splits the permissions from the dfa. This mapping can be - * done at profile load - */ - struct aa_perms perms = { }; + unsigned int index = ACCEPT_TABLE(file_rules->dfa)[state]; - if (uid_eq(current_fsuid(), cond->uid)) { - perms.allow = map_old_perms(dfa_user_allow(dfa, state)); - perms.audit = map_old_perms(dfa_user_audit(dfa, state)); - perms.quiet = map_old_perms(dfa_user_quiet(dfa, state)); - perms.xindex = dfa_user_xindex(dfa, state); - } else { - perms.allow = map_old_perms(dfa_other_allow(dfa, state)); - perms.audit = map_old_perms(dfa_other_audit(dfa, state)); - perms.quiet = map_old_perms(dfa_other_quiet(dfa, state)); - perms.xindex = dfa_other_xindex(dfa, state); - } - perms.allow |= AA_MAY_GETATTR; - - /* change_profile wasn't determined by ownership in old mapping */ - if (ACCEPT_TABLE(dfa)[state] & 0x80000000) - perms.allow |= AA_MAY_CHANGE_PROFILE; - if (ACCEPT_TABLE(dfa)[state] & 0x40000000) - perms.allow |= AA_MAY_ONEXEC; + if (!(file_rules->perms)) + return &default_perms; - return perms; + if (uid_eq(current_fsuid(), cond->uid)) + return &(file_rules->perms[index]); + + return &(file_rules->perms[index + 1]); } /** @@ -254,13 +211,13 @@ * * Returns: the final state in @dfa when beginning @start and walking @name */ -unsigned int aa_str_perms(struct aa_dfa *dfa, unsigned int start, - const char *name, struct path_cond *cond, - struct aa_perms *perms) -{ - unsigned int state; - state = aa_dfa_match(dfa, start, name); - *perms = aa_compute_fperms(dfa, state, cond); +aa_state_t aa_str_perms(struct aa_policydb *file_rules, aa_state_t start, + const char *name, struct path_cond *cond, + struct aa_perms *perms) +{ + aa_state_t state; + state = aa_dfa_match(file_rules->dfa, start, name); + *perms = *(aa_lookup_fperms(file_rules, state, cond)); return state; } @@ -269,11 +226,15 @@ u32 request, struct path_cond *cond, int flags, struct aa_perms *perms) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); int e = 0; - if (profile_unconfined(profile)) + if (profile_unconfined(profile) || + ((flags & PATH_SOCK_COND) && !RULE_MEDIATES_AF(rules, AF_UNIX))) return 0; - aa_str_perms(profile->file.dfa, profile->file.start, name, cond, perms); + aa_str_perms(&(rules->file), rules->file.start[AA_CLASS_FILE], + name, cond, perms); if (request & ~perms->allow) e = -EACCES; return aa_audit_file(profile, perms, op, request, name, NULL, NULL, @@ -360,11 +321,13 @@ const struct path *target, char *buffer2, struct path_cond *cond) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); const char *lname, *tname = NULL; struct aa_perms lperms = {}, perms; const char *info = NULL; u32 request = AA_MAY_LINK; - unsigned int state; + aa_state_t state; int error; error = path_name(OP_LINK, &profile->label, link, profile->path_flags, @@ -380,15 +343,16 @@ error = -EACCES; /* aa_str_perms - handles the case of the dfa being NULL */ - state = aa_str_perms(profile->file.dfa, profile->file.start, lname, + state = aa_str_perms(&(rules->file), + rules->file.start[AA_CLASS_FILE], lname, cond, &lperms); if (!(lperms.allow & AA_MAY_LINK)) goto audit; /* test to see if target can be paired with link */ - state = aa_dfa_null_transition(profile->file.dfa, state); - aa_str_perms(profile->file.dfa, state, tname, cond, &perms); + state = aa_dfa_null_transition(rules->file.dfa, state); + aa_str_perms(&(rules->file), state, tname, cond, &perms); /* force audit/quiet masks for link are stored in the second entry * in the link pair. @@ -410,8 +374,8 @@ /* Do link perm subset test requiring allowed permission on link are * a subset of the allowed permissions on target. */ - aa_str_perms(profile->file.dfa, profile->file.start, tname, cond, - &perms); + aa_str_perms(&(rules->file), rules->file.start[AA_CLASS_FILE], + tname, cond, &perms); /* AA_MAY_LINK is not considered in the subset test */ request = lperms.allow & ~AA_MAY_LINK; @@ -585,6 +549,60 @@ return error; } +/* TODO: combine with __file_path_perm */ +static int __file_mqueue_perm(const char *op, struct aa_label *label, + struct aa_label *flabel, struct file *file, + u32 request, u32 denied, bool in_atomic) +{ + struct aa_profile *profile; + char *buffer; + int error; + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_POSIX_MQUEUE, op); + + /* revalidation due to label out of date. No revocation at this time */ + if (!denied && aa_label_is_subset(flabel, label)) + /* TODO: check for revocation on stale profiles */ + return 0; + + buffer = aa_get_buffer(in_atomic); + if (!buffer) + return -ENOMEM; + + aad(&sa)->request = request; + aad(&sa)->peer = NULL; + aad(&sa)->mq.ouid = file_inode(file)->i_uid; + aad(&sa)->mq.fsuid = current_fsuid(); /* mqueue uses fsuid() */ + + /* check every profile in task label not in current cache */ + error = fn_for_each_not_in_set(flabel, label, profile, + aa_profile_mqueue_perm(profile, &file->f_path, + request, buffer, &sa)); + if (denied && !error) { + /* + * check every profile in file label that was not tested + * in the initial check above. + * + * TODO: cache full perms so this only happens because of + * conditionals + * TODO: don't audit here + */ + if (label == flabel) + error = fn_for_each(label, profile, + aa_profile_mqueue_perm(profile, &file->f_path, + request, buffer, &sa)); + else + error = fn_for_each_not_in_set(label, flabel, profile, + aa_profile_mqueue_perm(profile, &file->f_path, + request, buffer, &sa)); + } + if (!error) + update_file_ctx(file_ctx(file), label, request); + + aa_put_buffer(buffer); + + return error; +} + /** * aa_file_perm - do permission revalidation check & audit for @file * @op: operation being checked @@ -630,7 +648,10 @@ rcu_read_unlock(); /* TODO: label cross check */ - if (file->f_path.mnt && path_mediated_fs(file->f_path.dentry)) + if (is_mqueue_inode(file_inode(file))) { + error = __file_mqueue_perm(op, label, flabel, file, + request, denied, in_atomic); + } else if (file->f_path.mnt && path_mediated_fs(file->f_path.dentry)) error = __file_path_perm(op, label, flabel, file, request, denied, in_atomic); --- linux-5.19.0.orig/security/apparmor/include/af_unix.h +++ linux-5.19.0/security/apparmor/include/af_unix.h @@ -0,0 +1,114 @@ +/* + * AppArmor security module + * + * This file contains AppArmor af_unix fine grained mediation + * + * Copyright 2014 Canonical Ltd. + * + * 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 of the + * License. + */ +#ifndef __AA_AF_UNIX_H + +#include + +#include "label.h" +//#include "include/net.h" + +#define unix_addr_len(L) ((L) - sizeof(sa_family_t)) +#define unix_abstract_name_len(L) (unix_addr_len(L) - 1) +#define unix_abstract_len(U) (unix_abstract_name_len((U)->addr->len)) +#define addr_unix_abstract_name(B) ((B)[0] == 0) +#define addr_unix_anonymous(U) (addr_unix_len(U) <= 0) +#define addr_unix_abstract(U) (!addr_unix_anonymous(U) && addr_unix_abstract_name((U)->addr)) +//#define unix_addr_fs(U) (!unix_addr_anonymous(U) && !unix_addr_abstract_name((U)->addr)) + +#define unix_addr(A) ((struct sockaddr_un *)(A)) +#define unix_addr_anon(A, L) ((A) && unix_addr_len(L) <= 0) +#define unix_addr_fs(A, L) (!unix_addr_anon(A, L) && !addr_unix_abstract_name(unix_addr(A)->sun_path)) + +#define UNIX_ANONYMOUS(U) (!unix_sk(U)->addr) +/* from net/unix/af_unix.c */ +#define UNIX_ABSTRACT(U) (!UNIX_ANONYMOUS(U) && \ + unix_sk(U)->addr->hash < UNIX_HASH_SIZE) +#define UNIX_FS(U) (!UNIX_ANONYMOUS(U) && unix_sk(U)->addr->name->sun_path[0]) +#define unix_peer(sk) (unix_sk(sk)->peer) +#define unix_connected(S) ((S)->state == SS_CONNECTED) + +static inline void print_unix_addr(struct sockaddr_un *A, int L) +{ + char *buf = (A) ? (char *) &(A)->sun_path : NULL; + int len = unix_addr_len(L); + if (!buf || len <= 0) + printk(" "); + else if (buf[0]) + printk(" %s", buf); + else + /* abstract name len includes leading \0 */ + printk(" %d @%.*s", len - 1, len - 1, buf+1); +}; + +/* + printk("%s: %s: f %d, t %d, p %d", __FUNCTION__, \ + #SK , \ +*/ +#define print_unix_sk(SK) \ +do { \ + struct unix_sock *u = unix_sk(SK); \ + printk("%s: f %d, t %d, p %d", #SK , \ + (SK)->sk_family, (SK)->sk_type, (SK)->sk_protocol); \ + if (u->addr) \ + print_unix_addr(u->addr->name, u->addr->len); \ + else \ + print_unix_addr(NULL, sizeof(sa_family_t)); \ + /* printk("\n");*/ \ +} while (0) + +#define print_sk(SK) \ +do { \ + if (!(SK)) { \ + printk("%s: %s is null\n", __FUNCTION__, #SK); \ + } else if ((SK)->sk_family == PF_UNIX) { \ + print_unix_sk(SK); \ + printk("\n"); \ + } else { \ + printk("%s: %s: family %d\n", __FUNCTION__, #SK , \ + (SK)->sk_family); \ + } \ +} while (0) + +#define print_sock_addr(U) \ +do { \ + printk("%s:\n", __FUNCTION__); \ + printk(" sock %s:", sock_ctx && sock_ctx->label ? aa_label_printk(sock_ctx->label, GFP_ATOMIC); : ""); print_sk(sock); \ + printk(" other %s:", other_ctx && other_ctx->label ? aa_label_printk(other_ctx->label, GFP_ATOMIC); : ""); print_sk(other); \ + printk(" new %s", new_ctx && new_ctx->label ? aa_label_printk(new_ctx->label, GFP_ATOMIC); : ""); print_sk(newsk); \ +} while (0) + + + + +int aa_unix_peer_perm(struct aa_label *label, const char *op, u32 request, + struct sock *sk, struct sock *peer_sk, + struct aa_label *peer_label); +int aa_unix_label_sk_perm(struct aa_label *label, const char *op, u32 request, + struct sock *sk); +int aa_unix_sock_perm(const char *op, u32 request, struct socket *sock); +int aa_unix_create_perm(struct aa_label *label, int family, int type, + int protocol); +int aa_unix_bind_perm(struct socket *sock, struct sockaddr *address, + int addrlen); +int aa_unix_connect_perm(struct socket *sock, struct sockaddr *address, + int addrlen); +int aa_unix_listen_perm(struct socket *sock, int backlog); +int aa_unix_accept_perm(struct socket *sock, struct socket *newsock); +int aa_unix_msg_perm(const char *op, u32 request, struct socket *sock, + struct msghdr *msg, int size); +int aa_unix_opt_perm(const char *op, u32 request, struct socket *sock, int level, + int optname); +int aa_unix_file_perm(struct aa_label *label, const char *op, u32 request, + struct socket *sock); + +#endif /* __AA_AF_UNIX_H */ --- linux-5.19.0.orig/security/apparmor/include/apparmor.h +++ linux-5.19.0/security/apparmor/include/apparmor.h @@ -16,26 +16,36 @@ /* * Class of mediation types in the AppArmor policy db */ -#define AA_CLASS_ENTRY 0 +#define AA_CLASS_NONE 0 #define AA_CLASS_UNKNOWN 1 #define AA_CLASS_FILE 2 #define AA_CLASS_CAP 3 -#define AA_CLASS_DEPRECATED 4 +#define AA_CLASS_NET_COMPAT 4 #define AA_CLASS_RLIMITS 5 #define AA_CLASS_DOMAIN 6 #define AA_CLASS_MOUNT 7 #define AA_CLASS_PTRACE 9 #define AA_CLASS_SIGNAL 10 +#define AA_CLASS_XMATCH 11 #define AA_CLASS_NET 14 #define AA_CLASS_LABEL 16 +#define AA_CLASS_POSIX_MQUEUE 17 +#define AA_CLASS_IO_URING 18 +#define AA_CLASS_MODULE 19 +#define AA_CLASS_DISPLAY_LSM 20 +#define AA_CLASS_NS 21 -#define AA_CLASS_LAST AA_CLASS_LABEL +#define AA_CLASS_X 31 +#define AA_CLASS_DBUS 32 + +#define AA_CLASS_LAST AA_CLASS_DBUS /* Control parameters settable through module/boot flags */ extern enum audit_mode aa_g_audit; extern bool aa_g_audit_header; extern bool aa_g_debug; extern bool aa_g_hash_policy; +extern bool aa_g_export_binary; extern int aa_g_rawdata_compression_level; extern bool aa_g_lock_policy; extern bool aa_g_logsyscall; --- linux-5.19.0.orig/security/apparmor/include/apparmorfs.h +++ linux-5.19.0/security/apparmor/include/apparmorfs.h @@ -114,7 +114,21 @@ struct dentry *dent); struct aa_loaddata; + +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY void __aa_fs_remove_rawdata(struct aa_loaddata *rawdata); int __aa_fs_create_rawdata(struct aa_ns *ns, struct aa_loaddata *rawdata); +#else +static inline void __aa_fs_remove_rawdata(struct aa_loaddata *rawdata) +{ + /* empty stub */ +} + +static inline int __aa_fs_create_rawdata(struct aa_ns *ns, + struct aa_loaddata *rawdata) +{ + return 0; +} +#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */ #endif /* __AA_APPARMORFS_H */ --- linux-5.19.0.orig/security/apparmor/include/audit.h +++ linux-5.19.0/security/apparmor/include/audit.h @@ -103,10 +103,12 @@ #define OP_PROF_LOAD "profile_load" #define OP_PROF_RM "profile_remove" +#define OP_USERNS_CREATE "userns_create" struct apparmor_audit_data { int error; int type; + u16 class; const char *op; struct aa_label *label; const char *name; @@ -136,6 +138,10 @@ void *addr; int addrlen; } net; + struct { + kuid_t fsuid; + kuid_t ouid; + } mq; }; }; struct { @@ -155,9 +161,12 @@ /* macros for dealing with apparmor_audit_data structure */ #define aad(SA) ((SA)->apparmor_audit_data) -#define DEFINE_AUDIT_DATA(NAME, T, X) \ +#define DEFINE_AUDIT_DATA(NAME, T, C, X) \ /* TODO: cleanup audit init so we don't need _aad = {0,} */ \ - struct apparmor_audit_data NAME ## _aad = { .op = (X), }; \ + struct apparmor_audit_data NAME ## _aad = { \ + .class = (C), \ + .op = (X), \ + }; \ struct common_audit_data NAME = \ { \ .type = (T), \ --- linux-5.19.0.orig/security/apparmor/include/cred.h +++ linux-5.19.0/security/apparmor/include/cred.h @@ -64,19 +64,6 @@ } /** - * __aa_task_raw_label - retrieve another task's label - * @task: task to query (NOT NULL) - * - * Returns: @task's label without incrementing its ref count - * - * If @task != current needs to be called in RCU safe critical section - */ -static inline struct aa_label *__aa_task_raw_label(struct task_struct *task) -{ - return aa_cred_raw_label(__task_cred(task)); -} - -/** * aa_current_raw_label - find the current tasks confining label * * Returns: up to date confining label or the ns unconfined label (NOT NULL) --- linux-5.19.0.orig/security/apparmor/include/crypto.h +++ linux-5.19.0/security/apparmor/include/crypto.h @@ -14,6 +14,8 @@ #ifdef CONFIG_SECURITY_APPARMOR_HASH unsigned int aa_hash_size(void); +void aa_snprint_hashstr(char *out, unsigned char *hash, unsigned int hsize); +char *aa_asprint_hashstr(unsigned char *hash, unsigned int hsize, gfp_t gfp); char *aa_calc_hash(void *data, size_t len); int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start, size_t len); @@ -32,6 +34,15 @@ { return 0; } + +void aa_snprint_hashstr(char *out, unsigned char *hash, unsigned int hsize) +{ +} + +char *aa_asprint_hashstr(unsigned char *hash, unsigned int hsize, gfp_t gfp); +{ + return NULL; +} #endif #endif /* __APPARMOR_CRYPTO_H */ --- linux-5.19.0.orig/security/apparmor/include/domain.h +++ linux-5.19.0/security/apparmor/include/domain.h @@ -16,11 +16,6 @@ #ifndef __AA_DOMAIN_H #define __AA_DOMAIN_H -struct aa_domain { - int size; - char **table; -}; - #define AA_CHANGE_NOFLAGS 0 #define AA_CHANGE_TEST 1 #define AA_CHANGE_CHILD 2 @@ -32,7 +27,6 @@ int apparmor_bprm_creds_for_exec(struct linux_binprm *bprm); -void aa_free_domain_entries(struct aa_domain *domain); int aa_change_hat(const char *hats[], int count, u64 token, int flags); int aa_change_profile(const char *fqname, int flags); --- linux-5.19.0.orig/security/apparmor/include/file.h +++ linux-5.19.0/security/apparmor/include/file.h @@ -17,6 +17,7 @@ #include "match.h" #include "perms.h" +struct aa_policydb; struct aa_profile; struct path; @@ -87,18 +88,17 @@ * - exec type - which determines how the executable name and index are used * - flags - which modify how the destination name is applied */ -#define AA_X_INDEX_MASK 0x03ff +#define AA_X_INDEX_MASK AA_INDEX_MASK -#define AA_X_TYPE_MASK 0x0c00 -#define AA_X_TYPE_SHIFT 10 -#define AA_X_NONE 0x0000 -#define AA_X_NAME 0x0400 /* use executable name px */ -#define AA_X_TABLE 0x0800 /* use a specified name ->n# */ - -#define AA_X_UNSAFE 0x1000 -#define AA_X_CHILD 0x2000 /* make >AA_X_NONE apply to children */ -#define AA_X_INHERIT 0x4000 -#define AA_X_UNCONFINED 0x8000 +#define AA_X_TYPE_MASK 0x0c000000 +#define AA_X_NONE AA_INDEX_NONE +#define AA_X_NAME 0x04000000 /* use executable name px */ +#define AA_X_TABLE 0x08000000 /* use a specified name ->n# */ + +#define AA_X_UNSAFE 0x10000000 +#define AA_X_CHILD 0x20000000 +#define AA_X_INHERIT 0x40000000 +#define AA_X_UNCONFINED 0x80000000 /* need to make conditional which ones are being set */ struct path_cond { @@ -108,83 +108,16 @@ #define COMBINED_PERM_MASK(X) ((X).allow | (X).audit | (X).quiet | (X).kill) -/* FIXME: split perms from dfa and match this to description - * also add delegation info. - */ -static inline u16 dfa_map_xindex(u16 mask) -{ - u16 old_index = (mask >> 10) & 0xf; - u16 index = 0; - - if (mask & 0x100) - index |= AA_X_UNSAFE; - if (mask & 0x200) - index |= AA_X_INHERIT; - if (mask & 0x80) - index |= AA_X_UNCONFINED; - - if (old_index == 1) { - index |= AA_X_UNCONFINED; - } else if (old_index == 2) { - index |= AA_X_NAME; - } else if (old_index == 3) { - index |= AA_X_NAME | AA_X_CHILD; - } else if (old_index) { - index |= AA_X_TABLE; - index |= old_index - 4; - } - - return index; -} - -/* - * map old dfa inline permissions to new format - */ -#define dfa_user_allow(dfa, state) (((ACCEPT_TABLE(dfa)[state]) & 0x7f) | \ - ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) -#define dfa_user_audit(dfa, state) ((ACCEPT_TABLE2(dfa)[state]) & 0x7f) -#define dfa_user_quiet(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 7) & 0x7f) -#define dfa_user_xindex(dfa, state) \ - (dfa_map_xindex(ACCEPT_TABLE(dfa)[state] & 0x3fff)) - -#define dfa_other_allow(dfa, state) ((((ACCEPT_TABLE(dfa)[state]) >> 14) & \ - 0x7f) | \ - ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) -#define dfa_other_audit(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 14) & 0x7f) -#define dfa_other_quiet(dfa, state) \ - ((((ACCEPT_TABLE2(dfa)[state]) >> 7) >> 14) & 0x7f) -#define dfa_other_xindex(dfa, state) \ - dfa_map_xindex((ACCEPT_TABLE(dfa)[state] >> 14) & 0x3fff) - int aa_audit_file(struct aa_profile *profile, struct aa_perms *perms, const char *op, u32 request, const char *name, const char *target, struct aa_label *tlabel, kuid_t ouid, const char *info, int error); -/** - * struct aa_file_rules - components used for file rule permissions - * @dfa: dfa to match path names and conditionals against - * @perms: permission table indexed by the matched state accept entry of @dfa - * @trans: transition table for indexed by named x transitions - * - * File permission are determined by matching a path against @dfa and - * then using the value of the accept entry for the matching state as - * an index into @perms. If a named exec transition is required it is - * looked up in the transition table. - */ -struct aa_file_rules { - unsigned int start; - struct aa_dfa *dfa; - /* struct perms perms; */ - struct aa_domain trans; - /* TODO: add delegate table */ -}; - -struct aa_perms aa_compute_fperms(struct aa_dfa *dfa, unsigned int state, - struct path_cond *cond); -unsigned int aa_str_perms(struct aa_dfa *dfa, unsigned int start, - const char *name, struct path_cond *cond, - struct aa_perms *perms); +struct aa_perms *aa_lookup_fperms(struct aa_policydb *file_rules, + aa_state_t state, struct path_cond *cond); +aa_state_t aa_str_perms(struct aa_policydb *file_rules, aa_state_t start, + const char *name, struct path_cond *cond, + struct aa_perms *perms); int __aa_path_perm(const char *op, struct aa_profile *profile, const char *name, u32 request, struct path_cond *cond, @@ -201,11 +134,6 @@ void aa_inherit_files(const struct cred *cred, struct files_struct *files); -static inline void aa_free_file_rules(struct aa_file_rules *rules) -{ - aa_put_dfa(rules->dfa); - aa_free_domain_entries(&rules->trans); -} /** * aa_map_file_perms - map file flags to AppArmor permissions --- linux-5.19.0.orig/security/apparmor/include/inode.h +++ linux-5.19.0/security/apparmor/include/inode.h @@ -0,0 +1,42 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * AppArmor security module + * + * This file contains AppArmor file mediation function definitions. + * + * Copyright 2022 Canonical Ltd. + */ + +#ifndef __AA_INODE_H +#define __AA_INODE_H + +#include + +#include "lib.h" + +struct aa_inode_sec { + struct inode *inode; /* back pointer to inode object */ + struct aa_label *label; + u16 sclass; /* security class of this object */ + bool initialized; /* initialization flag */ + spinlock_t lock; +}; + +struct aa_superblock_sec { + struct aa_label *label; +}; + +static inline struct aa_inode_sec *apparmor_inode(const struct inode *inode) +{ + if (unlikely(!inode->i_security)) + return NULL; + return inode->i_security + apparmor_blob_sizes.lbs_inode; +} + +static inline struct aa_superblock_sec *apparmor_superblock( + const struct super_block *sb) +{ + return sb->s_security + apparmor_blob_sizes.lbs_superblock; +} + +#endif /* __AA_INODE_H */ --- linux-5.19.0.orig/security/apparmor/include/ipc.h +++ linux-5.19.0/security/apparmor/include/ipc.h @@ -11,26 +11,65 @@ #ifndef __AA_IPC_H #define __AA_IPC_H +#include #include -struct aa_profile; +#include "inode.h" +#include "perms.h" -#define AA_PTRACE_TRACE MAY_WRITE -#define AA_PTRACE_READ MAY_READ -#define AA_MAY_BE_TRACED AA_MAY_APPEND -#define AA_MAY_BE_READ AA_MAY_CREATE -#define PTRACE_PERM_SHIFT 2 - -#define AA_PTRACE_PERM_MASK (AA_PTRACE_READ | AA_PTRACE_TRACE | \ - AA_MAY_BE_READ | AA_MAY_BE_TRACED) -#define AA_SIGNAL_PERM_MASK (MAY_READ | MAY_WRITE) - -#define AA_SFS_SIG_MASK "hup int quit ill trap abrt bus fpe kill usr1 " \ - "segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg " \ - "xcpu xfsz vtalrm prof winch io pwr sys emt lost" +struct aa_msg_sec { + struct aa_label *label; +}; + +struct aa_ipc_sec { + struct aa_label *label; +}; + +static inline struct aa_ipc_sec *apparmor_ipc(const struct kern_ipc_perm *ipc) +{ + return ipc->security + apparmor_blob_sizes.lbs_ipc; +} + +static inline struct aa_msg_sec *apparmor_msg_msg(const struct msg_msg *msg_msg) +{ + return msg_msg->security + apparmor_blob_sizes.lbs_msg_msg; +} + + +static inline bool is_mqueue_sb(struct super_block *sb) +{ + if (!sb) + pr_warn("mqueue sb == NULL\n"); + if (!sb && !sb->s_type->name) + pr_warn("mqueue sb name == NULL\n"); + return sb && sb->s_type->name && strcmp(sb->s_type->name, "mqueue") == 0; +} + +static inline bool is_mqueue_inode(struct inode *i) +{ + struct aa_inode_sec *isec; + + if (!i) + return false; + + isec = apparmor_inode(i); + return isec && isec->sclass == AA_CLASS_POSIX_MQUEUE; +} -int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, - u32 request); int aa_may_signal(struct aa_label *sender, struct aa_label *target, int sig); +#define AA_AUDIT_POSIX_MQUEUE_MASK (AA_MAY_WRITE | AA_MAY_READ | \ + AA_MAY_CREATE | AA_MAY_DELETE | \ + AA_MAY_OPEN | AA_MAY_SETATTR | \ + AA_MAY_GETATTR) + + +int aa_profile_mqueue_perm(struct aa_profile *profile, + const struct path *path, + u32 request, char *buffer, + struct common_audit_data *sa); + +int aa_mqueue_perm(const char *op, struct aa_label *label, + const struct path *path, u32 request); + #endif /* __AA_IPC_H */ --- linux-5.19.0.orig/security/apparmor/include/label.h +++ linux-5.19.0/security/apparmor/include/label.h @@ -92,6 +92,8 @@ FLAG_STALE = 0x800, /* replaced/removed */ FLAG_RENAMED = 0x1000, /* label has renaming in it */ FLAG_REVOKED = 0x2000, /* label has revocation in it */ + FLAG_DEBUG1 = 0x4000, + FLAG_DEBUG2 = 0x8000, /* These flags must correspond with PATH_flags */ /* TODO: add new path flags */ @@ -259,7 +261,10 @@ struct label_it i; \ int ret = 0; \ label_for_each(i, (L), profile) { \ - if (PROFILE_MEDIATES(profile, (C))) { \ + struct aa_ruleset *rules = \ + list_first_entry(&profile->rules, typeof(*rules),\ + list); \ + if (RULE_MEDIATES(rules, (C))) { \ ret = 1; \ break; \ } \ @@ -331,7 +336,7 @@ static inline const char *aa_label_strn_split(const char *str, int n) { const char *pos; - unsigned int state; + aa_state_t state; state = aa_dfa_matchn_until(stacksplitdfa, DFA_START, str, n, &pos); if (!ACCEPT_TABLE(stacksplitdfa)[state]) @@ -343,7 +348,7 @@ static inline const char *aa_label_str_split(const char *str) { const char *pos; - unsigned int state; + aa_state_t state; state = aa_dfa_match_until(stacksplitdfa, DFA_START, str, &pos); if (!ACCEPT_TABLE(stacksplitdfa)[state]) @@ -355,9 +360,10 @@ struct aa_perms; -int aa_label_match(struct aa_profile *profile, struct aa_label *label, - unsigned int state, bool subns, u32 request, - struct aa_perms *perms); +struct aa_ruleset; +int aa_label_match(struct aa_profile *profile, struct aa_ruleset *rules, + struct aa_label *label, aa_state_t state, bool subns, + u32 request, struct aa_perms *perms); /** --- linux-5.19.0.orig/security/apparmor/include/lib.h +++ linux-5.19.0/security/apparmor/include/lib.h @@ -22,6 +22,11 @@ */ #define DEBUG_ON (aa_g_debug) +/* + * split individual debug cases out in preparation for finer grained + * debug controls in the future. + */ +#define AA_DEBUG_LABEL DEBUG_ON #define dbg_printk(__fmt, __args...) pr_debug(__fmt, ##__args) #define AA_DEBUG(fmt, args...) \ do { \ @@ -82,8 +87,8 @@ * character which is not used in standard matching and is only * used to separate pairs. */ -static inline unsigned int aa_dfa_null_transition(struct aa_dfa *dfa, - unsigned int start) +static inline aa_state_t aa_dfa_null_transition(struct aa_dfa *dfa, + aa_state_t start) { /* the null transition only needs the string's null terminator byte */ return aa_dfa_next(dfa, start, 0); @@ -94,6 +99,12 @@ return !(dentry->d_sb->s_flags & SB_NOUSER); } +struct aa_str_table { + int size; + char **table; +}; + +void aa_free_str_table(struct aa_str_table *table); struct counted_str { struct kref count; --- linux-5.19.0.orig/security/apparmor/include/match.h +++ linux-5.19.0/security/apparmor/include/match.h @@ -125,19 +125,19 @@ int aa_setup_dfa_engine(void); void aa_teardown_dfa_engine(void); +#define aa_state_t unsigned int + struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags); -unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start, - const char *str, int len); -unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start, - const char *str); -unsigned int aa_dfa_next(struct aa_dfa *dfa, unsigned int state, - const char c); -unsigned int aa_dfa_outofband_transition(struct aa_dfa *dfa, - unsigned int state); -unsigned int aa_dfa_match_until(struct aa_dfa *dfa, unsigned int start, - const char *str, const char **retpos); -unsigned int aa_dfa_matchn_until(struct aa_dfa *dfa, unsigned int start, - const char *str, int n, const char **retpos); +aa_state_t aa_dfa_match_len(struct aa_dfa *dfa, aa_state_t start, + const char *str, int len); +aa_state_t aa_dfa_match(struct aa_dfa *dfa, aa_state_t start, + const char *str); +aa_state_t aa_dfa_next(struct aa_dfa *dfa, aa_state_t state, const char c); +aa_state_t aa_dfa_outofband_transition(struct aa_dfa *dfa, aa_state_t state); +aa_state_t aa_dfa_match_until(struct aa_dfa *dfa, aa_state_t start, + const char *str, const char **retpos); +aa_state_t aa_dfa_matchn_until(struct aa_dfa *dfa, aa_state_t start, + const char *str, int n, const char **retpos); void aa_dfa_free_kref(struct kref *kref); @@ -156,8 +156,8 @@ .len = 0, \ } -unsigned int aa_dfa_leftmatch(struct aa_dfa *dfa, unsigned int start, - const char *str, unsigned int *count); +aa_state_t aa_dfa_leftmatch(struct aa_dfa *dfa, aa_state_t start, + const char *str, unsigned int *count); /** * aa_get_dfa - increment refcount on dfa @p --- linux-5.19.0.orig/security/apparmor/include/net.h +++ linux-5.19.0/security/apparmor/include/net.h @@ -49,9 +49,14 @@ struct aa_sk_ctx { struct aa_label *label; struct aa_label *peer; + struct path path; }; -#define SK_CTX(X) ((X)->sk_security) +static inline struct aa_sk_ctx *aa_sock(const struct sock *sk) +{ + return sk->sk_security + apparmor_blob_sizes.lbs_sock; +} + #define SOCK_ctx(X) SOCK_INODE(X)->i_security #define DEFINE_AUDIT_NET(NAME, OP, SK, F, T, P) \ struct lsm_network_audit NAME ## _net = { .sk = (SK), \ @@ -59,6 +64,7 @@ DEFINE_AUDIT_DATA(NAME, \ ((SK) && (F) != AF_UNIX) ? LSM_AUDIT_DATA_NET : \ LSM_AUDIT_DATA_NONE, \ + AA_CLASS_NET, \ OP); \ NAME.u.net = &(NAME ## _net); \ aad(&NAME)->net.type = (T); \ @@ -68,11 +74,24 @@ DEFINE_AUDIT_NET(NAME, OP, SK, (SK)->sk_family, (SK)->sk_type, \ (SK)->sk_protocol) +/* struct aa_net - network confinement data + * @allow: basic network families permissions + * @audit: which network permissions to force audit + * @quiet: which network permissions to quiet rejects + */ +struct aa_net_compat { + u16 allow[AF_MAX]; + u16 audit[AF_MAX]; + u16 quiet[AF_MAX]; +}; #define af_select(FAMILY, FN, DEF_FN) \ ({ \ int __e; \ switch ((FAMILY)) { \ + case AF_UNIX: \ + __e = aa_unix_ ## FN; \ + break; \ default: \ __e = DEF_FN; \ } \ @@ -87,6 +106,7 @@ }; extern struct aa_sfs_entry aa_sfs_entry_network[]; +extern struct aa_sfs_entry aa_sfs_entry_network_compat[]; void audit_net_cb(struct audit_buffer *ab, void *va); int aa_profile_af_perm(struct aa_profile *profile, struct common_audit_data *sa, --- linux-5.19.0.orig/security/apparmor/include/path.h +++ linux-5.19.0/security/apparmor/include/path.h @@ -13,12 +13,13 @@ enum path_flags { PATH_IS_DIR = 0x1, /* path is a directory */ + PATH_SOCK_COND = 0x2, PATH_CONNECT_PATH = 0x4, /* connect disconnected paths to / */ PATH_CHROOT_REL = 0x8, /* do path lookup relative to chroot */ PATH_CHROOT_NSCONNECT = 0x10, /* connect paths that are at ns root */ - PATH_DELEGATE_DELETED = 0x08000, /* delegate deleted files */ - PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */ + PATH_DELEGATE_DELETED = 0x10000, /* delegate deleted files */ + PATH_MEDIATE_DELETED = 0x20000, /* mediate deleted paths */ }; int aa_path_name(const struct path *path, int flags, char *buffer, --- linux-5.19.0.orig/security/apparmor/include/perms.h +++ linux-5.19.0/security/apparmor/include/perms.h @@ -65,29 +65,90 @@ struct aa_perms { u32 allow; - u32 audit; /* set only when allow is set */ - u32 deny; /* explicit deny, or conflict if allow also set */ - u32 quiet; /* set only when ~allow | deny */ - u32 kill; /* set only when ~allow | deny */ - u32 stop; /* set only when ~allow | deny */ - u32 complain; /* accumulates only used when ~allow & ~deny */ + u32 subtree; /* allow perm on full subtree only when allow is set */ u32 cond; /* set only when ~allow and ~deny */ - u32 hide; /* set only when ~allow | deny */ + u32 kill; /* set only when ~allow | deny */ + u32 complain; /* accumulates only used when ~allow & ~deny */ u32 prompt; /* accumulates only used when ~allow & ~deny */ - /* Reserved: - * u32 subtree; / * set only when allow is set * / - */ - u16 xindex; + u32 audit; /* set only when allow is set */ + u32 quiet; /* set only when ~allow | deny */ + u32 hide; /* set only when ~allow | deny */ + + + u32 xindex; + u32 tag; /* tag string index, if present */ + u32 label; /* label string index, if present */ }; +/* + * Indexes are broken into a 24 bit index and 8 bit flag. + * For the index to be valid there must be a value in the flag + */ +#define AA_INDEX_MASK 0x00ffffff +#define AA_INDEX_FLAG_MASK 0xff000000 +#define AA_INDEX_NONE 0 + #define ALL_PERMS_MASK 0xffffffff extern struct aa_perms nullperms; extern struct aa_perms allperms; +/** + * aa_perms_accum_raw - accumulate perms with out masking off overlapping perms + * @accum - perms struct to accumulate into + * @addend - perms struct to add to @accum + */ +static inline void aa_perms_accum_raw(struct aa_perms *accum, + struct aa_perms *addend) +{ + accum->deny |= addend->deny; + accum->allow &= addend->allow & ~addend->deny; + accum->audit |= addend->audit & addend->allow; + accum->quiet &= addend->quiet & ~addend->allow; + accum->kill |= addend->kill & ~addend->allow; + accum->complain |= addend->complain & ~addend->allow & ~addend->deny; + accum->cond |= addend->cond & ~addend->allow & ~addend->deny; + accum->hide &= addend->hide & ~addend->allow; + accum->prompt |= addend->prompt & ~addend->allow & ~addend->deny; + accum->subtree |= addend->subtree & ~addend->deny; + + if (!accum->xindex) + accum->xindex = addend->xindex; + if (!accum->tag) + accum->tag = addend->tag; + if (!accum->label) + accum->label = addend->label; +} + +/** + * aa_perms_accum - accumulate perms, masking off overlapping perms + * @accum - perms struct to accumulate into + * @addend - perms struct to add to @accum + */ +static inline void aa_perms_accum(struct aa_perms *accum, + struct aa_perms *addend) +{ + accum->deny |= addend->deny; + accum->allow &= addend->allow & ~accum->deny; + accum->audit |= addend->audit & accum->allow; + accum->quiet &= addend->quiet & ~accum->allow; + accum->kill |= addend->kill & ~accum->allow; + accum->complain |= addend->complain & ~accum->allow & ~accum->deny; + accum->cond |= addend->cond & ~accum->allow & ~accum->deny; + accum->hide &= addend->hide & ~accum->allow; + accum->prompt |= addend->prompt & ~accum->allow & ~accum->deny; + accum->subtree &= addend->subtree & ~accum->deny; + + if (!accum->xindex) + accum->xindex = addend->xindex; + if (!accum->tag) + accum->tag = addend->tag; + if (!accum->label) + accum->label = addend->label; +} #define xcheck(FN1, FN2) \ ({ \ @@ -133,23 +194,34 @@ xcheck(fn_for_each((L1), (P), (FN1)), fn_for_each((L2), (P), (FN2))) +extern struct aa_perms default_perms; + + void aa_perm_mask_to_str(char *str, size_t str_size, const char *chrs, u32 mask); void aa_audit_perm_names(struct audit_buffer *ab, const char * const *names, u32 mask); +void aa_audit_perms(struct audit_buffer *ab, struct common_audit_data *sa, + const char *chrs, u32 chrsmask, const char * const *names, + u32 namesmask); void aa_audit_perm_mask(struct audit_buffer *ab, u32 mask, const char *chrs, u32 chrsmask, const char * const *names, u32 namesmask); void aa_apply_modes_to_perms(struct aa_profile *profile, struct aa_perms *perms); -void aa_compute_perms(struct aa_dfa *dfa, unsigned int state, - struct aa_perms *perms); void aa_perms_accum(struct aa_perms *accum, struct aa_perms *addend); void aa_perms_accum_raw(struct aa_perms *accum, struct aa_perms *addend); -void aa_profile_match_label(struct aa_profile *profile, struct aa_label *label, +void aa_profile_match_label(struct aa_profile *profile, + struct aa_ruleset *rules, struct aa_label *label, int type, u32 request, struct aa_perms *perms); int aa_profile_label_perm(struct aa_profile *profile, struct aa_profile *target, u32 request, int type, u32 *deny, struct common_audit_data *sa); + +static inline u32 denied_perms(struct aa_perms *perms, u32 request) +{ + return request & (~perms->allow | perms->deny); +} + int aa_check_perms(struct aa_profile *profile, struct aa_perms *perms, u32 request, struct common_audit_data *sa, void (*cb)(struct audit_buffer *, void *)); --- linux-5.19.0.orig/security/apparmor/include/policy.h +++ linux-5.19.0/security/apparmor/include/policy.h @@ -34,6 +34,7 @@ struct aa_ns; extern int unprivileged_userns_apparmor_policy; +extern bool unprivileged_userns_restricted; extern const char *const aa_profile_mode_names[]; #define APPARMOR_MODE_NAMES_MAX_INDEX 4 @@ -44,10 +45,16 @@ #define COMPLAIN_MODE(_profile) PROFILE_MODE((_profile), APPARMOR_COMPLAIN) +#define USER_MODE(_profile) PROFILE_MODE((_profile), APPARMOR_USER) + #define KILL_MODE(_profile) PROFILE_MODE((_profile), APPARMOR_KILL) #define PROFILE_IS_HAT(_profile) ((_profile)->label.flags & FLAG_HAT) +#define CHECK_DEBUG1(_profile) ((_profile)->label.flags & FLAG_DEBUG1) + +#define CHECK_DEBUG2(_profile) ((_profile)->label.flags & FLAG_DEBUG2) + #define profile_is_stale(_profile) (label_is_stale(&(_profile)->label)) #define on_list_rcu(X) (!list_empty(X) && (X)->prev != LIST_POISON2) @@ -63,20 +70,47 @@ APPARMOR_COMPLAIN, /* allow and log access violations */ APPARMOR_KILL, /* kill task on access violation */ APPARMOR_UNCONFINED, /* profile set to unconfined */ + APPARMOR_USER, /* modified complain mode to userspace */ }; /* struct aa_policydb - match engine for a policy * dfa: dfa pattern match + * perms: table of permissions + * strs: table of strings, index by x * start: set of start states for the different classes of data */ struct aa_policydb { - /* Generic policy DFA specific rule types will be subsections of it */ struct aa_dfa *dfa; - unsigned int start[AA_CLASS_LAST + 1]; - + struct { + struct aa_perms *perms; + u32 size; + }; + struct aa_str_table trans; + aa_state_t start[AA_CLASS_LAST + 1]; }; +static inline void aa_destroy_policydb(struct aa_policydb *policy) +{ + aa_put_dfa(policy->dfa); + if (policy->perms) + kvfree(policy->perms); + aa_free_str_table(&policy->trans); + +} + +static inline struct aa_perms *aa_lookup_perms(struct aa_policydb *policy, + aa_state_t state) +{ + unsigned int index = ACCEPT_TABLE(policy->dfa)[state]; + + if (!(policy->perms)) + return &default_perms; + + return &(policy->perms[index]); +} + + /* struct aa_data - generic data structure * key: name for retrieving this data * size: size of data in bytes @@ -90,6 +124,47 @@ struct rhash_head head; }; +/* struct aa_ruleset - data covering mediation rules + * @list: list the rule is on + * @size: the memory consumed by this ruleset + * @policy: general match rules governing policy + * @file: The set of rules governing basic file access and domain transitions + * @caps: capabilities for the profile + * @rlimits: rlimits for the profile + * @secmark_count: number of secmark entries + * @secmark: secmark label match info + */ +struct aa_ruleset { + struct list_head list; + + int size; + + /* TODO: merge policy and file */ + struct aa_policydb policy; + struct aa_policydb file; + struct aa_caps caps; + + struct aa_rlimit rlimits; + + int secmark_count; + struct aa_secmark *secmark; +}; + +/* struct aa_attachment - data and rules for a profiles attachment + * @list: + * @xmatch_str: human readable attachment string + * @xmatch: optional extended matching for unconfined executables names + * @xmatch_len: xmatch prefix len, used to determine xmatch priority + * @xattr_count: number of xattrs in table + * @xattrs: table of xattrs + */ +struct aa_attachment { + const char *xmatch_str; + struct aa_policydb xmatch; + unsigned int xmatch_len; + int xattr_count; + char **xattrs; +}; /* struct aa_profile - basic confinement data * @base - base components of the profile (name, refcount, lists, lock ...) @@ -97,18 +172,14 @@ * @parent: parent of profile * @ns: namespace the profile is in * @rename: optional profile name that this profile renamed - * @attach: human readable attachment string - * @xmatch: optional extended matching for unconfined executables names - * @xmatch_len: xmatch prefix len, used to determine xmatch priority + * * @audit: the auditing mode of the profile * @mode: the enforcement mode of the profile * @path_flags: flags controlling path generation behavior * @disconnected: what to prepend if attach_disconnected is specified - * @size: the memory consumed by this profiles rules - * @policy: general match rules governing policy - * @file: The set of rules governing basic file access and domain transitions - * @caps: capabilities for the profile - * @rlimits: rlimits for the profile + * @attach: attachment rules for the profile + * @rules: rules to be enforced + * @net_compat: v2 compat network controls for the profile * * @dents: dentries for the profiles file entries in apparmorfs * @dirname: name of the profile dir in apparmorfs @@ -133,26 +204,14 @@ struct aa_ns *ns; const char *rename; - const char *attach; - struct aa_dfa *xmatch; - int xmatch_len; enum audit_mode audit; long mode; u32 path_flags; const char *disconnected; - int size; - struct aa_policydb policy; - struct aa_file_rules file; - struct aa_caps caps; - - int xattr_count; - char **xattrs; - - struct aa_rlimit rlimits; - - int secmark_count; - struct aa_secmark *secmark; + struct aa_attachment attach; + struct list_head rules; + struct aa_net_compat *net_compat; struct aa_loaddata *rawdata; unsigned char *hash; @@ -175,6 +234,7 @@ void aa_free_proxy_kref(struct kref *kref); +struct aa_ruleset *aa_alloc_ruleset(gfp_t gfp); struct aa_profile *aa_alloc_profile(const char *name, struct aa_proxy *proxy, gfp_t gfp); struct aa_profile *aa_new_null_profile(struct aa_profile *parent, bool hat, @@ -213,24 +273,37 @@ return labels_profile(aa_get_newest_label(&p->label)); } -static inline unsigned int PROFILE_MEDIATES(struct aa_profile *profile, - unsigned char class) +static inline aa_state_t RULE_MEDIATES(struct aa_ruleset *rules, + unsigned char class) { if (class <= AA_CLASS_LAST) - return profile->policy.start[class]; + return rules->policy.start[class]; else - return aa_dfa_match_len(profile->policy.dfa, - profile->policy.start[0], &class, 1); + return aa_dfa_match_len(rules->policy.dfa, + rules->policy.start[0], &class, 1); } -static inline unsigned int PROFILE_MEDIATES_AF(struct aa_profile *profile, - u16 AF) { - unsigned int state = PROFILE_MEDIATES(profile, AA_CLASS_NET); +static inline aa_state_t RULE_MEDIATES_AF(struct aa_ruleset *rules, u16 AF) +{ + aa_state_t state = RULE_MEDIATES(rules, AA_CLASS_NET); __be16 be_af = cpu_to_be16(AF); - if (!state) - return 0; - return aa_dfa_match_len(profile->policy.dfa, state, (char *) &be_af, 2); + if (!state) { + state = RULE_MEDIATES(rules, AA_CLASS_NET_COMPAT); + if (!state) + return DFA_NOMATCH; + } + return aa_dfa_match_len(rules->policy.dfa, state, (char *) &be_af, 2); +} + +static inline aa_state_t ANY_RULE_MEDIATES(struct list_head *head, + unsigned char class) +{ + struct aa_ruleset *rule; + + /* TODO: change to list walk */ + rule = list_first_entry(head, typeof(*rule), list); + return RULE_MEDIATES(rule, class); } /** --- linux-5.19.0.orig/security/apparmor/include/policy_compat.h +++ linux-5.19.0/security/apparmor/include/policy_compat.h @@ -0,0 +1,33 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* + * AppArmor security module + * + * Code to provide backwards compatibility with older policy versions, + * by converting/mapping older policy formats into the newer internal + * formats. + * + * Copyright 2022 Canonical Ltd. + */ + +#ifndef __POLICY_COMPAT_H +#define __POLICY_COMPAT_H + +#include "policy.h" + +#define K_ABI_MASK 0x3ff +#define FORCE_COMPLAIN_FLAG 0x800 +#define VERSION_LT(X, Y) (((X) & K_ABI_MASK) < ((Y) & K_ABI_MASK)) +#define VERSION_LE(X, Y) (((X) & K_ABI_MASK) <= ((Y) & K_ABI_MASK)) +#define VERSION_GT(X, Y) (((X) & K_ABI_MASK) > ((Y) & K_ABI_MASK)) + +#define v5 5 /* base version */ +#define v6 6 /* per entry policydb mediation check */ +#define v7 7 +#define v8 8 /* full network masking */ +#define v9 9 /* xbits are used as permission bits in policydb */ + +int aa_compat_map_xmatch(struct aa_policydb *policy); +int aa_compat_map_policy(struct aa_policydb *policy, u32 version); +int aa_compat_map_file(struct aa_policydb *policy); + +#endif /* __POLICY_COMPAT_H */ --- linux-5.19.0.orig/security/apparmor/include/policy_ns.h +++ linux-5.19.0/security/apparmor/include/policy_ns.h @@ -74,6 +74,7 @@ struct dentry *dents[AAFS_NS_SIZEOF]; }; +extern struct aa_label *kernel_t; extern struct aa_ns *root_ns; extern const char *aa_hidden_ns_name; --- linux-5.19.0.orig/security/apparmor/include/policy_unpack.h +++ linux-5.19.0/security/apparmor/include/policy_unpack.h @@ -16,6 +16,7 @@ #include #include + struct aa_load_ent { struct list_head list; struct aa_profile *new; @@ -28,11 +29,14 @@ struct aa_load_ent *aa_load_ent_alloc(void); #define PACKED_FLAG_HAT 1 +#define PACKED_FLAG_DEBUG1 2 +#define PACKED_FLAG_DEBUG2 4 #define PACKED_MODE_ENFORCE 0 #define PACKED_MODE_COMPLAIN 1 #define PACKED_MODE_KILL 2 #define PACKED_MODE_UNCONFINED 3 +#define PACKED_MODE_USER 4 struct aa_ns; --- linux-5.19.0.orig/security/apparmor/include/procattr.h +++ linux-5.19.0/security/apparmor/include/procattr.h @@ -11,7 +11,7 @@ #ifndef __AA_PROCATTR_H #define __AA_PROCATTR_H -int aa_getprocattr(struct aa_label *label, char **string); +int aa_getprocattr(struct aa_label *label, char **string, bool newline); int aa_setprocattr_changehat(char *args, size_t size, int flags); #endif /* __AA_PROCATTR_H */ --- linux-5.19.0.orig/security/apparmor/include/secid.h +++ linux-5.19.0/security/apparmor/include/secid.h @@ -21,6 +21,9 @@ /* secid value that matches any other secid */ #define AA_SECID_WILDCARD 1 +/* sysctl to enable displaying mode when converting secid to secctx */ +extern int apparmor_display_secid_mode; + struct aa_label *aa_secid_to_label(u32 secid); int apparmor_secid_to_secctx(u32 secid, char **secdata, u32 *seclen); int apparmor_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid); @@ -31,6 +34,4 @@ void aa_free_secid(u32 secid); void aa_secid_update(u32 secid, struct aa_label *label); -void aa_secids_init(void); - #endif /* __AA_SECID_H */ --- linux-5.19.0.orig/security/apparmor/include/task.h +++ linux-5.19.0/security/apparmor/include/task.h @@ -77,4 +77,28 @@ ctx->token = 0; } +#define AA_PTRACE_TRACE MAY_WRITE +#define AA_PTRACE_READ MAY_READ +#define AA_MAY_BE_TRACED AA_MAY_APPEND +#define AA_MAY_BE_READ AA_MAY_CREATE +#define PTRACE_PERM_SHIFT 2 + +#define AA_PTRACE_PERM_MASK (AA_PTRACE_READ | AA_PTRACE_TRACE | \ + AA_MAY_BE_READ | AA_MAY_BE_TRACED) +#define AA_SIGNAL_PERM_MASK (MAY_READ | MAY_WRITE) + +#define AA_SFS_SIG_MASK "hup int quit ill trap abrt bus fpe kill usr1 " \ + "segv usr2 pipe alrm term stkflt chld cont stop stp ttin ttou urg " \ + "xcpu xfsz vtalrm prof winch io pwr sys emt lost" + +int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, + u32 request); + + + +#define AA_USERNS_CREATE 8 + +int aa_profile_ns_perm(struct aa_profile *profile, struct common_audit_data *sa, + u32 request); + #endif /* __AA_TASK_H */ --- linux-5.19.0.orig/security/apparmor/ipc.c +++ linux-5.19.0/security/apparmor/ipc.c @@ -9,124 +9,17 @@ */ #include -#include +#include +#include #include "include/audit.h" #include "include/capability.h" #include "include/cred.h" +#include "include/path.h" #include "include/policy.h" #include "include/ipc.h" #include "include/sig_names.h" -/** - * audit_ptrace_mask - convert mask to permission string - * @mask: permission mask to convert - * - * Returns: pointer to static string - */ -static const char *audit_ptrace_mask(u32 mask) -{ - switch (mask) { - case MAY_READ: - return "read"; - case MAY_WRITE: - return "trace"; - case AA_MAY_BE_READ: - return "readby"; - case AA_MAY_BE_TRACED: - return "tracedby"; - } - return ""; -} - -/* call back to audit ptrace fields */ -static void audit_ptrace_cb(struct audit_buffer *ab, void *va) -{ - struct common_audit_data *sa = va; - - if (aad(sa)->request & AA_PTRACE_PERM_MASK) { - audit_log_format(ab, " requested_mask=\"%s\"", - audit_ptrace_mask(aad(sa)->request)); - - if (aad(sa)->denied & AA_PTRACE_PERM_MASK) { - audit_log_format(ab, " denied_mask=\"%s\"", - audit_ptrace_mask(aad(sa)->denied)); - } - } - audit_log_format(ab, " peer="); - aa_label_xaudit(ab, labels_ns(aad(sa)->label), aad(sa)->peer, - FLAGS_NONE, GFP_ATOMIC); -} - -/* assumes check for PROFILE_MEDIATES is already done */ -/* TODO: conditionals */ -static int profile_ptrace_perm(struct aa_profile *profile, - struct aa_label *peer, u32 request, - struct common_audit_data *sa) -{ - struct aa_perms perms = { }; - - aad(sa)->peer = peer; - aa_profile_match_label(profile, peer, AA_CLASS_PTRACE, request, - &perms); - aa_apply_modes_to_perms(profile, &perms); - return aa_check_perms(profile, &perms, request, sa, audit_ptrace_cb); -} - -static int profile_tracee_perm(struct aa_profile *tracee, - struct aa_label *tracer, u32 request, - struct common_audit_data *sa) -{ - if (profile_unconfined(tracee) || unconfined(tracer) || - !PROFILE_MEDIATES(tracee, AA_CLASS_PTRACE)) - return 0; - - return profile_ptrace_perm(tracee, tracer, request, sa); -} - -static int profile_tracer_perm(struct aa_profile *tracer, - struct aa_label *tracee, u32 request, - struct common_audit_data *sa) -{ - if (profile_unconfined(tracer)) - return 0; - - if (PROFILE_MEDIATES(tracer, AA_CLASS_PTRACE)) - return profile_ptrace_perm(tracer, tracee, request, sa); - - /* profile uses the old style capability check for ptrace */ - if (&tracer->label == tracee) - return 0; - - aad(sa)->label = &tracer->label; - aad(sa)->peer = tracee; - aad(sa)->request = 0; - aad(sa)->error = aa_capable(&tracer->label, CAP_SYS_PTRACE, - CAP_OPT_NONE); - - return aa_audit(AUDIT_APPARMOR_AUTO, tracer, sa, audit_ptrace_cb); -} - -/** - * aa_may_ptrace - test if tracer task can trace the tracee - * @tracer: label of the task doing the tracing (NOT NULL) - * @tracee: task label to be traced - * @request: permission request - * - * Returns: %0 else error code if permission denied or error - */ -int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, - u32 request) -{ - struct aa_profile *profile; - u32 xrequest = request << PTRACE_PERM_SHIFT; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, OP_PTRACE); - - return xcheck_labels(tracer, tracee, profile, - profile_tracer_perm(profile, tracee, request, &sa), - profile_tracee_perm(profile, tracer, xrequest, &sa)); -} - static inline int map_signal_num(int sig) { @@ -188,19 +81,21 @@ struct aa_label *peer, u32 request, struct common_audit_data *sa) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_perms perms; - unsigned int state; + aa_state_t state; if (profile_unconfined(profile) || - !PROFILE_MEDIATES(profile, AA_CLASS_SIGNAL)) + !ANY_RULE_MEDIATES(&profile->rules, AA_CLASS_SIGNAL)) return 0; aad(sa)->peer = peer; /* TODO: secondary cache check */ - state = aa_dfa_next(profile->policy.dfa, - profile->policy.start[AA_CLASS_SIGNAL], + state = aa_dfa_next(rules->policy.dfa, + rules->policy.start[AA_CLASS_SIGNAL], aad(sa)->signal); - aa_label_match(profile, peer, state, false, request, &perms); + aa_label_match(profile, rules, peer, state, false, request, &perms); aa_apply_modes_to_perms(profile, &perms); return aa_check_perms(profile, &perms, request, sa, audit_signal_cb); } @@ -208,7 +103,7 @@ int aa_may_signal(struct aa_label *sender, struct aa_label *target, int sig) { struct aa_profile *profile; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, OP_SIGNAL); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_SIGNAL, OP_SIGNAL); aad(&sa)->signal = map_signal_num(sig); aad(&sa)->unmappedsig = sig; @@ -216,3 +111,106 @@ profile_signal_perm(profile, target, MAY_WRITE, &sa), profile_signal_perm(profile, sender, MAY_READ, &sa)); } + + +static void audit_mqueue_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + aa_audit_perms(ab, sa, NULL, 0, NULL, AA_AUDIT_POSIX_MQUEUE_MASK); + + /* move class into generic audit framse work */ + audit_log_format(ab, "class=\"posix_mqueue\""); + if (aad(sa)->request & AA_AUDIT_FILE_MASK) { + audit_log_format(ab, " fsuid=%u", + from_kuid(&init_user_ns, aad(sa)->mq.fsuid)); + audit_log_format(ab, " ouid=%u", + from_kuid(&init_user_ns, aad(sa)->mq.ouid)); + } + if (aad(sa)->peer) { + audit_log_format(ab, " olabel="); + aa_label_xaudit(ab, labels_ns(aad(sa)->label), aad(sa)->peer, + FLAGS_NONE, GFP_ATOMIC); + } +} + +int aa_profile_mqueue_perm(struct aa_profile *profile, const struct path *path, + u32 request, char *buffer, + struct common_audit_data *sa) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + struct aa_perms perms = { }; + unsigned int state; + char *name; + + if (profile_unconfined(profile) || + !RULE_MEDIATES(rules, AA_CLASS_POSIX_MQUEUE)) + return 0; + + aad(sa)->label = &profile->label; + + name = dentry_path_raw(path->dentry, buffer, aa_g_path_max); + if (IS_ERR(name)) + return PTR_ERR(name); + if (path->mnt != current->nsproxy->ipc_ns->mq_mnt) { + /* TODO: disconnected path detection */ + pr_warn("apparmor mqueue disconnected TODO\n"); + } + + aad(sa)->name = name; + + state = aa_dfa_match(rules->policy.dfa, + rules->policy.start[AA_CLASS_POSIX_MQUEUE], + name); + perms = *aa_lookup_perms(&rules->policy, state); + aa_apply_modes_to_perms(profile, &perms); + if (!denied_perms(&perms, request)) { + /* early bailout sufficient perms no need to do further + * checks */ + return aa_check_perms(profile, &perms, request, sa, + audit_mqueue_cb); + } + /* continue check to see if we have label perms */ + //aa_label_match(profile, peer??, state false, request, &perms); + //aa_apply_modes_to_perms(profile, &perms); + + // this will just cause failure without above label check + return aa_check_perms(profile, &perms, request, sa, audit_mqueue_cb); +} + +/* mqueue - no label caching test */ +int aa_mqueue_perm(const char *op, struct aa_label *label, + const struct path *path, u32 request) +{ + struct aa_profile *profile; + char *buffer; + int error; + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_POSIX_MQUEUE, op); + + // do we need delegate deleted with mqueues? probably + //flags |= PATH_DELEGATE_DELETED; + + /* sadly due to rcu walk hairiness, we use dentry_path_raw instead + * of just accessing the name directly, which means we need to + * do the whole buffer allocation mess + */ + buffer = aa_get_buffer(false); + if (!buffer) + return -ENOMEM; + + /* audit fields that won't change during iteration */ + aad(&sa)->request = request; + aad(&sa)->peer = NULL; + aad(&sa)->mq.fsuid = current_fsuid(); /* mqueue uses fsuid() */ + aad(&sa)->mq.ouid = d_backing_inode(path->dentry) ? + d_backing_inode(path->dentry)->i_uid: + current_fsuid(); + + error = fn_for_each_confined(label, profile, + aa_profile_mqueue_perm(profile, path, request, + buffer, &sa)); + aa_put_buffer(buffer); + + return error; +} --- linux-5.19.0.orig/security/apparmor/label.c +++ linux-5.19.0/security/apparmor/label.c @@ -197,18 +197,21 @@ return false; } -static bool vec_unconfined(struct aa_profile **vec, int n) +static long accum_vec_flags(struct aa_profile **vec, int n) { + long u = FLAG_UNCONFINED; int i; AA_BUG(!vec); for (i = 0; i < n; i++) { - if (!profile_unconfined(vec[i])) - return false; + u |= vec[i]->label.flags & (FLAG_DEBUG1 | FLAG_DEBUG2 | + FLAG_STALE); + if (!(u & vec[i]->label.flags & FLAG_UNCONFINED)) + u &= ~FLAG_UNCONFINED; } - return true; + return u; } static int sort_cmp(const void *a, const void *b) @@ -485,7 +488,7 @@ } /** - * aa_label_next_not_in_set - return the next profile of @sub not in @set + * __aa_label_next_not_in_set - return the next profile of @sub not in @set * @I: label iterator * @set: label to test against * @sub: label to if is subset of @set @@ -1097,8 +1100,7 @@ else if (k == b->size) return aa_get_label(b); } - if (vec_unconfined(new->vec, new->size)) - new->flags |= FLAG_UNCONFINED; + new->flags |= accum_vec_flags(new->vec, new->size); ls = labels_set(new); write_lock_irqsave(&ls->lock, flags); label = __label_insert(labels_set(new), new, false); @@ -1265,21 +1267,22 @@ * If a subns profile is not to be matched should be prescreened with * visibility test. */ -static inline unsigned int match_component(struct aa_profile *profile, - struct aa_profile *tp, - unsigned int state) +static inline aa_state_t match_component(struct aa_profile *profile, + struct aa_ruleset *rules, + struct aa_profile *tp, + aa_state_t state) { const char *ns_name; if (profile->ns == tp->ns) - return aa_dfa_match(profile->policy.dfa, state, tp->base.hname); + return aa_dfa_match(rules->policy.dfa, state, tp->base.hname); /* try matching with namespace name and then profile */ ns_name = aa_ns_name(profile->ns, tp->ns, true); - state = aa_dfa_match_len(profile->policy.dfa, state, ":", 1); - state = aa_dfa_match(profile->policy.dfa, state, ns_name); - state = aa_dfa_match_len(profile->policy.dfa, state, ":", 1); - return aa_dfa_match(profile->policy.dfa, state, tp->base.hname); + state = aa_dfa_match_len(rules->policy.dfa, state, ":", 1); + state = aa_dfa_match(rules->policy.dfa, state, ns_name); + state = aa_dfa_match_len(rules->policy.dfa, state, ":", 1); + return aa_dfa_match(rules->policy.dfa, state, tp->base.hname); } /** @@ -1298,8 +1301,9 @@ * check to be stacked. */ static int label_compound_match(struct aa_profile *profile, + struct aa_ruleset *rules, struct aa_label *label, - unsigned int state, bool subns, u32 request, + aa_state_t state, bool subns, u32 request, struct aa_perms *perms) { struct aa_profile *tp; @@ -1309,7 +1313,7 @@ label_for_each(i, label, tp) { if (!aa_ns_visible(profile->ns, tp->ns, subns)) continue; - state = match_component(profile, tp, state); + state = match_component(profile, rules, tp, state); if (!state) goto fail; goto next; @@ -1323,12 +1327,12 @@ label_for_each_cont(i, label, tp) { if (!aa_ns_visible(profile->ns, tp->ns, subns)) continue; - state = aa_dfa_match(profile->policy.dfa, state, "//&"); - state = match_component(profile, tp, state); + state = aa_dfa_match(rules->policy.dfa, state, "//&"); + state = match_component(profile, rules, tp, state); if (!state) goto fail; } - aa_compute_perms(profile->policy.dfa, state, perms); + *perms = *aa_lookup_perms(&rules->policy, state); aa_apply_modes_to_perms(profile, perms); if ((perms->allow & request) != request) return -EACCES; @@ -1343,6 +1347,7 @@ /** * label_components_match - find perms for all subcomponents of a label * @profile: profile to find perms for + * @rules: ruleset to search * @label: label to check access permissions for * @start: state to start match in * @subns: whether to do permission checks on components in a subns @@ -1356,20 +1361,21 @@ * check to be stacked. */ static int label_components_match(struct aa_profile *profile, - struct aa_label *label, unsigned int start, + struct aa_ruleset *rules, + struct aa_label *label, aa_state_t start, bool subns, u32 request, struct aa_perms *perms) { struct aa_profile *tp; struct label_it i; struct aa_perms tmp; - unsigned int state = 0; + aa_state_t state = 0; /* find first subcomponent to test */ label_for_each(i, label, tp) { if (!aa_ns_visible(profile->ns, tp->ns, subns)) continue; - state = match_component(profile, tp, start); + state = match_component(profile, rules, tp, start); if (!state) goto fail; goto next; @@ -1379,16 +1385,16 @@ return 0; next: - aa_compute_perms(profile->policy.dfa, state, &tmp); + tmp = *aa_lookup_perms(&rules->policy, state); aa_apply_modes_to_perms(profile, &tmp); aa_perms_accum(perms, &tmp); label_for_each_cont(i, label, tp) { if (!aa_ns_visible(profile->ns, tp->ns, subns)) continue; - state = match_component(profile, tp, start); + state = match_component(profile, rules, tp, start); if (!state) goto fail; - aa_compute_perms(profile->policy.dfa, state, &tmp); + tmp = *aa_lookup_perms(&rules->policy, state); aa_apply_modes_to_perms(profile, &tmp); aa_perms_accum(perms, &tmp); } @@ -1406,6 +1412,7 @@ /** * aa_label_match - do a multi-component label match * @profile: profile to match against (NOT NULL) + * @rules: ruleset to search * @label: label to match (NOT NULL) * @state: state to start in * @subns: whether to match subns components @@ -1414,18 +1421,18 @@ * * Returns: the state the match finished in, may be the none matching state */ -int aa_label_match(struct aa_profile *profile, struct aa_label *label, - unsigned int state, bool subns, u32 request, - struct aa_perms *perms) +int aa_label_match(struct aa_profile *profile, struct aa_ruleset *rules, + struct aa_label *label, aa_state_t state, bool subns, + u32 request, struct aa_perms *perms) { - int error = label_compound_match(profile, label, state, subns, request, - perms); + int error = label_compound_match(profile, rules, label, state, subns, + request, perms); if (!error) return error; *perms = allperms; - return label_components_match(profile, label, state, subns, request, - perms); + return label_components_match(profile, rules, label, state, subns, + request, perms); } @@ -1631,9 +1638,9 @@ AA_BUG(!str && size != 0); AA_BUG(!label); - if (flags & FLAG_ABS_ROOT) { + if (AA_DEBUG_LABEL && (flags & FLAG_ABS_ROOT)) { ns = root_ns; - len = snprintf(str, size, "="); + len = snprintf(str, size, "_"); update_for_len(total, len, size, str); } else if (!ns) { ns = labels_ns(label); @@ -1744,7 +1751,7 @@ if (!use_label_hname(ns, label, flags) || display_mode(ns, label, flags)) { len = aa_label_asxprint(&name, ns, label, flags, gfp); - if (len == -1) { + if (len < 0) { AA_DEBUG("label print error"); return; } @@ -1772,7 +1779,7 @@ int len; len = aa_label_asxprint(&str, ns, label, flags, gfp); - if (len == -1) { + if (len < 0) { AA_DEBUG("label print error"); return; } @@ -1795,7 +1802,7 @@ int len; len = aa_label_asxprint(&str, ns, label, flags, gfp); - if (len == -1) { + if (len < 0) { AA_DEBUG("label print error"); return; } @@ -1895,7 +1902,8 @@ AA_BUG(!str); str = skipn_spaces(str, n); - if (str == NULL || (*str == '=' && base != &root_ns->unconfined->label)) + if (str == NULL || (AA_DEBUG_LABEL && *str == '_' && + base != &root_ns->unconfined->label)) return ERR_PTR(-EINVAL); len = label_count_strn_entries(str, end - str); @@ -2136,7 +2144,7 @@ } /** - * __aa_labelset_udate_subtree - update all labels with a stale component + * __aa_labelset_update_subtree - update all labels with a stale component * @ns: ns to start update at (NOT NULL) * * Requires: @ns lock be held --- linux-5.19.0.orig/security/apparmor/lib.c +++ linux-5.19.0/security/apparmor/lib.c @@ -26,6 +26,25 @@ .hide = ALL_PERMS_MASK }; /** + * aa_free_str_table - free entries str table + * @str: the string table to free (MAYBE NULL) + */ +void aa_free_str_table(struct aa_str_table *t) +{ + int i; + + if (t) { + if (!t->table) + return; + + for (i = 0; i < t->size; i++) + kfree_sensitive(t->table[i]); + kfree_sensitive(t->table); + t->table = NULL; + } +} + +/** * aa_split_fqname - split a fqname into a profile and namespace name * @fqname: a full qualified name in namespace profile format (NOT NULL) * @ns_name: pointer to portion of the string containing the ns name (NOT NULL) @@ -124,7 +143,7 @@ void aa_info_message(const char *str) { if (audit_enabled) { - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, NULL); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_NONE, NULL); aad(&sa)->info = str; aa_audit_msg(AUDIT_APPARMOR_STATUS, &sa, NULL); @@ -136,7 +155,7 @@ { struct counted_str *str; - str = kmalloc(sizeof(struct counted_str) + size, gfp); + str = kmalloc(struct_size(str, name, size), gfp); if (!str) return NULL; @@ -151,7 +170,7 @@ const char aa_file_perm_chrs[] = "xwracd km l "; -const char *aa_file_perm_names[] = { +const char *aa_base_perm_names[] = { "exec", "write", "read", @@ -241,6 +260,10 @@ { char str[33]; + if (!chrs) + chrs = aa_file_perm_chrs; + if (!names) + names = aa_base_perm_names; audit_log_format(ab, "\""); if ((mask & chrsmask) && chrs) { aa_perm_mask_to_str(str, sizeof(str), chrs, mask & chrsmask); @@ -254,6 +277,22 @@ audit_log_format(ab, "\""); } +void aa_audit_perms(struct audit_buffer *ab, struct common_audit_data *sa, + const char *chrs, u32 chrsmask, const char * const *names, + u32 namesmask) +{ + if (aad(sa)->request) { + audit_log_format(ab, " requested="); + aa_audit_perm_mask(ab, aad(sa)->request, chrs, chrsmask, + names, namesmask); + } + if (aad(sa)->denied) { + audit_log_format(ab, " denied="); + aa_audit_perm_mask(ab, aad(sa)->denied, chrs, chrsmask, + names, namesmask); + } +} + /** * aa_audit_perms_cb - generic callback fn for auditing perms * @ab: audit buffer (NOT NULL) @@ -263,18 +302,8 @@ { struct common_audit_data *sa = va; - if (aad(sa)->request) { - audit_log_format(ab, " requested_mask="); - aa_audit_perm_mask(ab, aad(sa)->request, aa_file_perm_chrs, - PERMS_CHRS_MASK, aa_file_perm_names, - PERMS_NAMES_MASK); - } - if (aad(sa)->denied) { - audit_log_format(ab, "denied_mask="); - aa_audit_perm_mask(ab, aad(sa)->denied, aa_file_perm_chrs, - PERMS_CHRS_MASK, aa_file_perm_names, - PERMS_NAMES_MASK); - } + aa_audit_perms(ab, sa, aa_file_perm_chrs, PERMS_CHRS_MASK, + aa_base_perm_names, PERMS_NAMES_MASK); audit_log_format(ab, " peer="); aa_label_xaudit(ab, labels_ns(aad(sa)->label), aad(sa)->peer, FLAGS_NONE, GFP_ATOMIC); @@ -308,86 +337,22 @@ perms->kill = ALL_PERMS_MASK; else if (COMPLAIN_MODE(profile)) perms->complain = ALL_PERMS_MASK; -/* - * TODO: - * else if (PROMPT_MODE(profile)) - * perms->prompt = ALL_PERMS_MASK; - */ -} - -static u32 map_other(u32 x) -{ - return ((x & 0x3) << 8) | /* SETATTR/GETATTR */ - ((x & 0x1c) << 18) | /* ACCEPT/BIND/LISTEN */ - ((x & 0x60) << 19); /* SETOPT/GETOPT */ -} - -void aa_compute_perms(struct aa_dfa *dfa, unsigned int state, - struct aa_perms *perms) -{ - *perms = (struct aa_perms) { - .allow = dfa_user_allow(dfa, state), - .audit = dfa_user_audit(dfa, state), - .quiet = dfa_user_quiet(dfa, state), - }; - - /* for v5 perm mapping in the policydb, the other set is used - * to extend the general perm set - */ - perms->allow |= map_other(dfa_other_allow(dfa, state)); - perms->audit |= map_other(dfa_other_audit(dfa, state)); - perms->quiet |= map_other(dfa_other_quiet(dfa, state)); -// perms->xindex = dfa_user_xindex(dfa, state); -} - -/** - * aa_perms_accum_raw - accumulate perms with out masking off overlapping perms - * @accum - perms struct to accumulate into - * @addend - perms struct to add to @accum - */ -void aa_perms_accum_raw(struct aa_perms *accum, struct aa_perms *addend) -{ - accum->deny |= addend->deny; - accum->allow &= addend->allow & ~addend->deny; - accum->audit |= addend->audit & addend->allow; - accum->quiet &= addend->quiet & ~addend->allow; - accum->kill |= addend->kill & ~addend->allow; - accum->stop |= addend->stop & ~addend->allow; - accum->complain |= addend->complain & ~addend->allow & ~addend->deny; - accum->cond |= addend->cond & ~addend->allow & ~addend->deny; - accum->hide &= addend->hide & ~addend->allow; - accum->prompt |= addend->prompt & ~addend->allow & ~addend->deny; -} - -/** - * aa_perms_accum - accumulate perms, masking off overlapping perms - * @accum - perms struct to accumulate into - * @addend - perms struct to add to @accum - */ -void aa_perms_accum(struct aa_perms *accum, struct aa_perms *addend) -{ - accum->deny |= addend->deny; - accum->allow &= addend->allow & ~accum->deny; - accum->audit |= addend->audit & accum->allow; - accum->quiet &= addend->quiet & ~accum->allow; - accum->kill |= addend->kill & ~accum->allow; - accum->stop |= addend->stop & ~accum->allow; - accum->complain |= addend->complain & ~accum->allow & ~accum->deny; - accum->cond |= addend->cond & ~accum->allow & ~accum->deny; - accum->hide &= addend->hide & ~accum->allow; - accum->prompt |= addend->prompt & ~accum->allow & ~accum->deny; + else if (USER_MODE(profile)) + perms->prompt = ALL_PERMS_MASK; } -void aa_profile_match_label(struct aa_profile *profile, struct aa_label *label, +void aa_profile_match_label(struct aa_profile *profile, + struct aa_ruleset *rules, + struct aa_label *label, int type, u32 request, struct aa_perms *perms) { /* TODO: doesn't yet handle extended types */ - unsigned int state; + aa_state_t state; - state = aa_dfa_next(profile->policy.dfa, - profile->policy.start[AA_CLASS_LABEL], + state = aa_dfa_next(rules->policy.dfa, + rules->policy.start[AA_CLASS_LABEL], type); - aa_label_match(profile, label, state, false, request, perms); + aa_label_match(profile, rules, label, state, false, request, perms); } @@ -396,13 +361,16 @@ u32 request, int type, u32 *deny, struct common_audit_data *sa) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_perms perms; aad(sa)->label = &profile->label; aad(sa)->peer = &target->label; aad(sa)->request = request; - aa_profile_match_label(profile, &target->label, type, request, &perms); + aa_profile_match_label(profile, rules, &target->label, type, request, + &perms); aa_apply_modes_to_perms(profile, &perms); *deny |= request & perms.deny; return aa_check_perms(profile, &perms, request, sa, aa_audit_perms_cb); @@ -431,7 +399,7 @@ void (*cb)(struct audit_buffer *, void *)) { int type, error; - u32 denied = request & (~perms->allow | perms->deny); + u32 denied = denied_perms(perms, request); if (likely(!denied)) { /* mask off perms that are not being force audited */ --- linux-5.19.0.orig/security/apparmor/lsm.c +++ linux-5.19.0/security/apparmor/lsm.c @@ -18,19 +18,23 @@ #include #include #include +#include +#include #include #include #include -#include +#include #include #include +#include "include/af_unix.h" #include "include/apparmor.h" #include "include/apparmorfs.h" #include "include/audit.h" #include "include/capability.h" #include "include/cred.h" #include "include/file.h" +#include "include/inode.h" #include "include/ipc.h" #include "include/net.h" #include "include/path.h" @@ -56,6 +60,11 @@ static LIST_HEAD(aa_global_buffers); static DEFINE_SPINLOCK(aa_buffers_lock); +static bool is_mqueue_dentry(struct dentry *dentry) +{ + return dentry && is_mqueue_inode(d_backing_inode(dentry)); +} + /* * LSM hook functions */ @@ -163,12 +172,15 @@ struct label_it i; label_for_each_confined(i, label, profile) { + struct aa_ruleset *rules; if (COMPLAIN_MODE(profile)) continue; + rules = list_first_entry(&profile->rules, + typeof(*rules), list); *effective = cap_intersect(*effective, - profile->caps.allow); + rules->caps.allow); *permitted = cap_intersect(*permitted, - profile->caps.allow); + rules->caps.allow); } } rcu_read_unlock(); @@ -419,11 +431,167 @@ return common_perm_cond(OP_CHOWN, path, AA_MAY_CHOWN); } +static int common_mqueue_path_perm(const char *op, u32 request, + const struct path *path) +{ + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + if (!unconfined(label)) + error = aa_mqueue_perm(OP_UNLINK, label, path, request); + + end_current_label_crit_section(label); + + return error; +} + static int apparmor_inode_getattr(const struct path *path) { + if (is_mqueue_dentry(path->dentry)) + /* TODO: fn() for d_parent */ + return common_mqueue_path_perm(OP_UNLINK, AA_MAY_GETATTR, path); + return common_perm_cond(OP_GETATTR, path, AA_MAY_GETATTR); } +/* inode security operations */ + +/* alloced by infrastructure */ +static int apparmor_inode_alloc_security(struct inode *inode) +{ + struct aa_inode_sec *isec = apparmor_inode(inode); + + spin_lock_init(&isec->lock); + isec->inode = inode; + isec->label = NULL; + isec->sclass = 0; + isec->initialized = false; + + return 0; +} + +/* freed by infrastructure */ +static void apparmor_inode_free_security(struct inode *inode) +{ + struct aa_inode_sec *isec = apparmor_inode(inode); + + if (!isec) + return; + + aa_put_label(isec->label); +} + + +/* this is broken, in that we must make it work for ALL xattr fs + * or it will bail early, so this does not work with LSM stacking + */ +static int apparmor_inode_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr, + const char **name, + void **value, size_t *len) +{ + struct aa_inode_sec *isec = apparmor_inode(inode); + + if (is_mqueue_inode(dir)) { + /* only initialize based on implied label atm */ + isec->label = aa_get_current_label(); + isec->sclass = AA_CLASS_POSIX_MQUEUE; + isec->initialized = true; + } + + /* we aren't setting xattrs yet so pretend it isn't supported, + * note bug in LSM means other LSMs won't get to init inode either + */ + return -EOPNOTSUPP; +} + +static int inode_init_with_dentry(struct inode *inode, struct dentry *dentry) +{ + struct aa_inode_sec *isec = apparmor_inode(inode); + + if (isec->initialized) + return 0; + spin_lock(&isec->lock); + /* recheck under lock */ + if (isec->initialized) + goto unlock; + + if (is_mqueue_sb(inode->i_sb)) { + /* only initialize based on implied label atm */ + isec->label = aa_get_current_label(); + isec->sclass = AA_CLASS_POSIX_MQUEUE; + isec->initialized = true; + } + +unlock: + spin_unlock(&isec->lock); + + return 0; +} + +static void apparmor_d_instantiate(struct dentry *dentry, struct inode *inode) +{ + if (inode) + inode_init_with_dentry(inode, dentry); +} + +static int apparmor_inode_create(struct inode *dir, struct dentry *dentry, + umode_t mode) +{ + struct aa_label *label; + int error = 0; + + label = begin_current_label_crit_section(); + if (!unconfined(label)) { + struct path path = { + .dentry = dentry, + .mnt = current->nsproxy->ipc_ns->mq_mnt, + }; + if (is_mqueue_inode(dir)) { + error = aa_mqueue_perm(OP_CREATE, label, &path, AA_MAY_CREATE); + } + } + end_current_label_crit_section(label); + + return error; +} + +static int common_mqueue_perm(const char *op, u32 request, struct inode *dir, struct dentry *dentry) +{ + /* can't directly determine ipc ns, but know for mqueues dir is mnt_root */ + struct path path = { + .dentry = dentry, + .mnt = d_inode(current->nsproxy->ipc_ns->mq_mnt->mnt_root) == dir ? current->nsproxy->ipc_ns->mq_mnt : NULL, + }; + + if (dir != d_inode(current->nsproxy->ipc_ns->mq_mnt->mnt_root)) + pr_warn("apparmor: unlink dir != mnt_root - disconnected"); + + return common_mqueue_path_perm(op, request, &path); +} + +static int apparmor_inode_unlink(struct inode *dir, struct dentry *dentry) +{ + int error = 0; + + if (is_mqueue_dentry(dentry)) + error = common_mqueue_perm(OP_UNLINK, AA_MAY_DELETE, dir, dentry); + + return error; +} + +static int apparmor_inode_setattr(struct dentry *dentry, struct iattr *iattr) +{ + /* TODO: extend to support iattr as a parameter */ + if (is_mqueue_dentry(dentry)) + /* TODO: fn() for d_parent */ + return common_mqueue_perm(OP_UNLINK, AA_MAY_SETATTR, + d_backing_inode(dentry->d_parent), dentry); + + return 0; +} + static int apparmor_file_open(struct file *file) { struct aa_file_ctx *fctx = file_ctx(file); @@ -452,10 +620,15 @@ inode->i_mode }; - error = aa_path_perm(OP_OPEN, label, &file->f_path, 0, - aa_map_file_to_perms(file), &cond); + if (is_mqueue_inode(file_inode(file))) + error = aa_mqueue_perm(OP_OPEN, label, &file->f_path, + aa_map_file_to_perms(file)); + else + error = aa_path_perm(OP_OPEN, label, &file->f_path, 0, + aa_map_file_to_perms(file), &cond); /* todo cache full allowed permissions set and state */ - fctx->allow = aa_map_file_to_perms(file); + if (!error) + fctx->allow = aa_map_file_to_perms(file); } aa_put_label(label); @@ -467,6 +640,7 @@ struct aa_file_ctx *ctx = file_ctx(file); struct aa_label *label = begin_current_label_crit_section(); + /* no inode available here */ spin_lock_init(&ctx->lock); rcu_assign_pointer(ctx->label, aa_get_label(label)); end_current_label_crit_section(label); @@ -622,6 +796,7 @@ const struct cred *cred = get_task_cred(task); struct aa_task_ctx *ctx = task_ctx(current); struct aa_label *label = NULL; + bool newline = true; if (strcmp(name, "current") == 0) label = aa_get_newest_label(cred_label(cred)); @@ -629,11 +804,14 @@ label = aa_get_newest_label(ctx->previous); else if (strcmp(name, "exec") == 0 && ctx->onexec) label = aa_get_newest_label(ctx->onexec); - else + else if (strcmp(name, "context") == 0) { + label = aa_get_newest_label(cred_label(cred)); + newline = false; + } else error = -EINVAL; if (label) - error = aa_getprocattr(label, value); + error = aa_getprocattr(label, value, newline); aa_put_label(label); put_cred(cred); @@ -641,17 +819,52 @@ return error; } + +static int profile_interface_lsm(struct aa_profile *profile, + struct common_audit_data *sa) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + struct aa_perms perms = { }; + unsigned int state; + + state = RULE_MEDIATES(rules, AA_CLASS_DISPLAY_LSM); + if (state) { + perms = *aa_lookup_perms(&rules->policy, state); + aa_apply_modes_to_perms(profile, &perms); + aad(sa)->label = &profile->label; + + return aa_check_perms(profile, &perms, AA_MAY_WRITE, sa, NULL); + } + + return 0; +} + static int apparmor_setprocattr(const char *name, void *value, size_t size) { char *command, *largs = NULL, *args = value; size_t arg_size; int error; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, OP_SETPROCATTR); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_NONE, + OP_SETPROCATTR); if (size == 0) return -EINVAL; + /* LSM infrastructure does actual setting of interface_lsm if allowed */ + if (!strcmp(name, "interface_lsm")) { + struct aa_profile *profile; + struct aa_label *label; + + aad(&sa)->info = "set interface lsm"; + label = begin_current_label_crit_section(); + error = fn_for_each_confined(label, profile, + profile_interface_lsm(profile, &sa)); + end_current_label_crit_section(label); + return error; + } + /* AppArmor requires that the buffer must be null terminated atm */ if (args[size - 1] != '\0') { /* null terminate */ @@ -802,20 +1015,23 @@ return error; } -/** - * apparmor_sk_alloc_security - allocate and attach the sk_security field - */ -static int apparmor_sk_alloc_security(struct sock *sk, int family, gfp_t flags) +static int apparmor_userns_create(const struct cred *cred) { - struct aa_sk_ctx *ctx; - - ctx = kzalloc(sizeof(*ctx), flags); - if (!ctx) - return -ENOMEM; + struct aa_label *label; + struct aa_profile *profile; + int error = 0; + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_TASK, AA_CLASS_NS, + OP_USERNS_CREATE); - SK_CTX(sk) = ctx; + label = begin_current_label_crit_section(); + if (unprivileged_userns_restricted || !unconfined(label)) { + error = fn_for_each(label, profile, + aa_profile_ns_perm(profile, &sa, + AA_USERNS_CREATE)); + end_current_label_crit_section(label); + } - return 0; + return error; } /** @@ -823,22 +1039,21 @@ */ static void apparmor_sk_free_security(struct sock *sk) { - struct aa_sk_ctx *ctx = SK_CTX(sk); + struct aa_sk_ctx *ctx = aa_sock(sk); - SK_CTX(sk) = NULL; aa_put_label(ctx->label); aa_put_label(ctx->peer); - kfree(ctx); + path_put(&ctx->path); } /** - * apparmor_clone_security - clone the sk_security field + * apparmor_sk_clone_security - clone the sk_security field */ static void apparmor_sk_clone_security(const struct sock *sk, struct sock *newsk) { - struct aa_sk_ctx *ctx = SK_CTX(sk); - struct aa_sk_ctx *new = SK_CTX(newsk); + struct aa_sk_ctx *ctx = aa_sock(sk); + struct aa_sk_ctx *new = aa_sock(newsk); if (new->label) aa_put_label(new->label); @@ -847,6 +1062,99 @@ if (new->peer) aa_put_label(new->peer); new->peer = aa_get_label(ctx->peer); + new->path = ctx->path; + path_get(&new->path); +} + +static struct path *UNIX_FS_CONN_PATH(struct sock *sk, struct sock *newsk) +{ + if (sk->sk_family == PF_UNIX && UNIX_FS(sk)) + return &unix_sk(sk)->path; + else if (newsk->sk_family == PF_UNIX && UNIX_FS(newsk)) + return &unix_sk(newsk)->path; + return NULL; +} + +/** + * apparmor_unix_stream_connect - check perms before making unix domain conn + * + * peer is locked when this hook is called + */ +static int apparmor_unix_stream_connect(struct sock *sk, struct sock *peer_sk, + struct sock *newsk) +{ + struct aa_sk_ctx *sk_ctx = aa_sock(sk); + struct aa_sk_ctx *peer_ctx = aa_sock(peer_sk); + struct aa_sk_ctx *new_ctx = aa_sock(newsk); + struct aa_label *label; + struct path *path; + int error; + + label = __begin_current_label_crit_section(); + error = aa_unix_peer_perm(label, OP_CONNECT, + (AA_MAY_CONNECT | AA_MAY_SEND | AA_MAY_RECEIVE), + sk, peer_sk, NULL); + if (!UNIX_FS(peer_sk)) { + last_error(error, + aa_unix_peer_perm(peer_ctx->label, OP_CONNECT, + (AA_MAY_ACCEPT | AA_MAY_SEND | AA_MAY_RECEIVE), + peer_sk, sk, label)); + } + __end_current_label_crit_section(label); + + if (error) + return error; + + /* label newsk if it wasn't labeled in post_create. Normally this + * would be done in sock_graft, but because we are directly looking + * at the peer_sk to obtain peer_labeling for unix socks this + * does not work + */ + if (!new_ctx->label) + new_ctx->label = aa_get_label(peer_ctx->label); + + /* Cross reference the peer labels for SO_PEERSEC */ + if (new_ctx->peer) + aa_put_label(new_ctx->peer); + + if (sk_ctx->peer) + aa_put_label(sk_ctx->peer); + + new_ctx->peer = aa_get_label(sk_ctx->label); + sk_ctx->peer = aa_get_label(peer_ctx->label); + + path = UNIX_FS_CONN_PATH(sk, peer_sk); + if (path) { + new_ctx->path = *path; + sk_ctx->path = *path; + path_get(path); + path_get(path); + } + return 0; +} + +/** + * apparmor_unix_may_send - check perms before conn or sending unix dgrams + * + * other is locked when this hook is called + * + * dgram connect calls may_send, peer setup but path not copied????? + */ +static int apparmor_unix_may_send(struct socket *sock, struct socket *peer) +{ + struct aa_sk_ctx *peer_ctx = aa_sock(peer->sk); + struct aa_label *label; + int error; + + label = __begin_current_label_crit_section(); + error = xcheck(aa_unix_peer_perm(label, OP_SENDMSG, AA_MAY_SEND, + sock->sk, peer->sk, NULL), + aa_unix_peer_perm(peer_ctx->label, OP_SENDMSG, + AA_MAY_RECEIVE, + peer->sk, sock->sk, label)); + __end_current_label_crit_section(label); + + return error; } /** @@ -886,15 +1194,12 @@ struct aa_label *label; if (kern) { - struct aa_ns *ns = aa_get_current_ns(); - - label = aa_get_label(ns_unconfined(ns)); - aa_put_ns(ns); + label = aa_get_label(kernel_t); } else label = aa_get_current_label(); if (sock->sk) { - struct aa_sk_ctx *ctx = SK_CTX(sock->sk); + struct aa_sk_ctx *ctx = aa_sock(sock->sk); aa_put_label(ctx->label); ctx->label = aa_get_label(label); @@ -937,7 +1242,7 @@ } /** - * apparmor_socket_list - check perms before allowing listen + * apparmor_socket_listen - check perms before allowing listen */ static int apparmor_socket_listen(struct socket *sock, int backlog) { @@ -1041,7 +1346,7 @@ } /** - * apparmor_getsockopt - check perms before getting socket options + * apparmor_socket_getsockopt - check perms before getting socket options */ static int apparmor_socket_getsockopt(struct socket *sock, int level, int optname) @@ -1051,7 +1356,7 @@ } /** - * apparmor_setsockopt - check perms before setting socket options + * apparmor_socket_setsockopt - check perms before setting socket options */ static int apparmor_socket_setsockopt(struct socket *sock, int level, int optname) @@ -1070,7 +1375,7 @@ #ifdef CONFIG_NETWORK_SECMARK /** - * apparmor_socket_sock_recv_skb - check perms before associating skb to sk + * apparmor_socket_sock_rcv_skb - check perms before associating skb to sk * * Note: can not sleep may be called with locks held * @@ -1079,7 +1384,7 @@ */ static int apparmor_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb) { - struct aa_sk_ctx *ctx = SK_CTX(sk); + struct aa_sk_ctx *ctx = aa_sock(sk); if (!skb->secmark) return 0; @@ -1092,12 +1397,28 @@ static struct aa_label *sk_peer_label(struct sock *sk) { - struct aa_sk_ctx *ctx = SK_CTX(sk); + struct sock *peer_sk; + struct aa_sk_ctx *ctx = aa_sock(sk); + struct aa_label *label = ERR_PTR(-ENOPROTOOPT); if (ctx->peer) - return ctx->peer; + return aa_get_label(ctx->peer); - return ERR_PTR(-ENOPROTOOPT); + if (sk->sk_family != PF_UNIX) + return ERR_PTR(-ENOPROTOOPT); + + /* check for sockpair peering which does not go through + * security_unix_stream_connect + */ + peer_sk = unix_peer_get(sk); + if (peer_sk) { + ctx = aa_sock(peer_sk); + if (ctx->label) + label = aa_get_label(ctx->label); + sock_put(peer_sk); + } + + return label; } /** @@ -1141,6 +1462,7 @@ } + aa_put_label(peer); done: end_current_label_crit_section(label); @@ -1148,22 +1470,6 @@ } /** - * apparmor_socket_getpeersec_dgram - get security label of packet - * @sock: the peer socket - * @skb: packet data - * @secid: pointer to where to put the secid of the packet - * - * Sets the netlabel socket state on sk from parent - */ -static int apparmor_socket_getpeersec_dgram(struct socket *sock, - struct sk_buff *skb, u32 *secid) - -{ - /* TODO: requires secid support */ - return -ENOPROTOOPT; -} - -/** * apparmor_sock_graft - Initialize newly created socket * @sk: child sock * @parent: parent socket @@ -1176,7 +1482,7 @@ */ static void apparmor_sock_graft(struct sock *sk, struct socket *parent) { - struct aa_sk_ctx *ctx = SK_CTX(sk); + struct aa_sk_ctx *ctx = aa_sock(sk); if (!ctx->label) ctx->label = aa_get_current_label(); @@ -1186,7 +1492,7 @@ static int apparmor_inet_conn_request(const struct sock *sk, struct sk_buff *skb, struct request_sock *req) { - struct aa_sk_ctx *ctx = SK_CTX(sk); + struct aa_sk_ctx *ctx = aa_sock(sk); if (!skb->secmark) return 0; @@ -1197,12 +1503,22 @@ #endif /* - * The cred blob is a pointer to, not an instance of, an aa_task_ctx. + * The cred blob is a pointer to, not an instance of, an aa_label. */ struct lsm_blob_sizes apparmor_blob_sizes __lsm_ro_after_init = { - .lbs_cred = sizeof(struct aa_task_ctx *), + .lbs_cred = sizeof(struct aa_label *), .lbs_file = sizeof(struct aa_file_ctx), + .lbs_inode = sizeof(struct aa_inode_sec), .lbs_task = sizeof(struct aa_task_ctx), + .lbs_sock = sizeof(struct aa_sk_ctx), + .lbs_ipc = sizeof(struct aa_ipc_sec), + .lbs_msg_msg = sizeof(struct aa_msg_sec), + .lbs_superblock = sizeof(struct aa_superblock_sec), +}; + +static struct lsm_id apparmor_lsmid __lsm_ro_after_init = { + .lsm = "apparmor", + .slot = LSMBLOB_NEEDED }; static struct security_hook_list apparmor_hooks[] __lsm_ro_after_init = { @@ -1227,6 +1543,16 @@ LSM_HOOK_INIT(path_truncate, apparmor_path_truncate), LSM_HOOK_INIT(inode_getattr, apparmor_inode_getattr), + LSM_HOOK_INIT(inode_alloc_security, apparmor_inode_alloc_security), + LSM_HOOK_INIT(inode_free_security, apparmor_inode_free_security), + LSM_HOOK_INIT(inode_init_security, apparmor_inode_init_security), + LSM_HOOK_INIT(d_instantiate, apparmor_d_instantiate), + + LSM_HOOK_INIT(inode_create, apparmor_inode_create), + LSM_HOOK_INIT(inode_unlink, apparmor_inode_unlink), + LSM_HOOK_INIT(inode_setattr, apparmor_inode_setattr), + LSM_HOOK_INIT(inode_getattr, apparmor_inode_getattr), + LSM_HOOK_INIT(file_open, apparmor_file_open), LSM_HOOK_INIT(file_receive, apparmor_file_receive), LSM_HOOK_INIT(file_permission, apparmor_file_permission), @@ -1239,10 +1565,12 @@ LSM_HOOK_INIT(getprocattr, apparmor_getprocattr), LSM_HOOK_INIT(setprocattr, apparmor_setprocattr), - LSM_HOOK_INIT(sk_alloc_security, apparmor_sk_alloc_security), LSM_HOOK_INIT(sk_free_security, apparmor_sk_free_security), LSM_HOOK_INIT(sk_clone_security, apparmor_sk_clone_security), + LSM_HOOK_INIT(unix_stream_connect, apparmor_unix_stream_connect), + LSM_HOOK_INIT(unix_may_send, apparmor_unix_may_send), + LSM_HOOK_INIT(socket_create, apparmor_socket_create), LSM_HOOK_INIT(socket_post_create, apparmor_socket_post_create), LSM_HOOK_INIT(socket_bind, apparmor_socket_bind), @@ -1261,8 +1589,6 @@ #endif LSM_HOOK_INIT(socket_getpeersec_stream, apparmor_socket_getpeersec_stream), - LSM_HOOK_INIT(socket_getpeersec_dgram, - apparmor_socket_getpeersec_dgram), LSM_HOOK_INIT(sock_graft, apparmor_sock_graft), #ifdef CONFIG_NETWORK_SECMARK LSM_HOOK_INIT(inet_conn_request, apparmor_inet_conn_request), @@ -1283,6 +1609,7 @@ LSM_HOOK_INIT(task_getsecid_obj, apparmor_task_getsecid_obj), LSM_HOOK_INIT(task_setrlimit, apparmor_task_setrlimit), LSM_HOOK_INIT(task_kill, apparmor_task_kill), + LSM_HOOK_INIT(userns_create, apparmor_userns_create), #ifdef CONFIG_AUDIT LSM_HOOK_INIT(audit_rule_init, aa_audit_rule_init), @@ -1357,8 +1684,14 @@ module_param_named(hash_policy, aa_g_hash_policy, aabool, S_IRUSR | S_IWUSR); #endif +/* whether policy exactly as loaded is retained for debug and checkpointing */ +bool aa_g_export_binary = IS_ENABLED(CONFIG_SECURITY_APPARMOR_EXPORT_BINARY); +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY +module_param_named(export_binary, aa_g_export_binary, aabool, 0600); +#endif + /* policy loaddata compression level */ -int aa_g_rawdata_compression_level = Z_DEFAULT_COMPRESSION; +int aa_g_rawdata_compression_level = ZSTD_CLEVEL_DEFAULT; module_param_named(rawdata_compression_level, aa_g_rawdata_compression_level, aacompressionlevel, 0400); @@ -1399,7 +1732,7 @@ * DEPRECATED: read only as strict checking of load is always done now * that none root users (user namespaces) can load policy. */ -bool aa_g_paranoid_load = true; +bool aa_g_paranoid_load = IS_ENABLED(CONFIG_SECURITY_APPARMOR_PARANOID_LOAD); module_param_named(paranoid_load, aa_g_paranoid_load, aabool, S_IRUGO); static int param_get_aaintbool(char *buffer, const struct kernel_param *kp); @@ -1540,9 +1873,9 @@ error = param_set_int(val, kp); aa_g_rawdata_compression_level = clamp(aa_g_rawdata_compression_level, - Z_NO_COMPRESSION, - Z_BEST_COMPRESSION); - pr_info("AppArmor: policy rawdata compression level set to %u\n", + zstd_min_clevel(), + zstd_max_clevel()); + pr_info("AppArmor: policy rawdata compression level set to %d\n", aa_g_rawdata_compression_level); return error; @@ -1761,6 +2094,20 @@ .mode = 0600, .proc_handler = apparmor_dointvec, }, + { + .procname = "apparmor_display_secid_mode", + .data = &apparmor_display_secid_mode, + .maxlen = sizeof(int), + .mode = 0600, + .proc_handler = apparmor_dointvec, + }, + { + .procname = "apparmor_restrict_unprivileged_userns", + .data = &unprivileged_userns_restricted, + .maxlen = sizeof(int), + .mode = 0600, + .proc_handler = apparmor_dointvec, + }, { } }; @@ -1791,7 +2138,7 @@ if (sk == NULL) return NF_ACCEPT; - ctx = SK_CTX(sk); + ctx = aa_sock(sk); if (!apparmor_secmark_check(ctx->label, OP_SENDMSG, AA_MAY_SEND, skb->secmark, sk)) return NF_ACCEPT; @@ -1819,11 +2166,8 @@ static int __net_init apparmor_nf_register(struct net *net) { - int ret; - - ret = nf_register_net_hooks(net, apparmor_nf_ops, + return nf_register_net_hooks(net, apparmor_nf_ops, ARRAY_SIZE(apparmor_nf_ops)); - return ret; } static void __net_exit apparmor_nf_unregister(struct net *net) @@ -1857,8 +2201,6 @@ { int error; - aa_secids_init(); - error = aa_setup_dfa_engine(); if (error) { AA_ERROR("Unable to setup dfa engine\n"); @@ -1891,7 +2233,7 @@ goto buffers_out; } security_add_hooks(apparmor_hooks, ARRAY_SIZE(apparmor_hooks), - "apparmor"); + &apparmor_lsmid); /* Report that AppArmor successfully initialized */ apparmor_initialized = 1; @@ -1916,7 +2258,7 @@ DEFINE_LSM(apparmor) = { .name = "apparmor", - .flags = LSM_FLAG_LEGACY_MAJOR | LSM_FLAG_EXCLUSIVE, + .flags = LSM_FLAG_LEGACY_MAJOR, .enabled = &apparmor_enabled, .blobs = &apparmor_blob_sizes, .init = apparmor_init, --- linux-5.19.0.orig/security/apparmor/match.c +++ linux-5.19.0/security/apparmor/match.c @@ -436,17 +436,17 @@ * * Returns: final state reached after input is consumed */ -unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start, - const char *str, int len) +aa_state_t aa_dfa_match_len(struct aa_dfa *dfa, aa_state_t start, + const char *str, int len) { u16 *def = DEFAULT_TABLE(dfa); u32 *base = BASE_TABLE(dfa); u16 *next = NEXT_TABLE(dfa); u16 *check = CHECK_TABLE(dfa); - unsigned int state = start; + aa_state_t state = start; - if (state == 0) - return 0; + if (state == DFA_NOMATCH) + return DFA_NOMATCH; /* current state is , matching character *str */ if (dfa->tables[YYTD_ID_EC]) { @@ -476,17 +476,16 @@ * * Returns: final state reached after input is consumed */ -unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start, - const char *str) +aa_state_t aa_dfa_match(struct aa_dfa *dfa, aa_state_t start, const char *str) { u16 *def = DEFAULT_TABLE(dfa); u32 *base = BASE_TABLE(dfa); u16 *next = NEXT_TABLE(dfa); u16 *check = CHECK_TABLE(dfa); - unsigned int state = start; + aa_state_t state = start; - if (state == 0) - return 0; + if (state == DFA_NOMATCH) + return DFA_NOMATCH; /* current state is , matching character *str */ if (dfa->tables[YYTD_ID_EC]) { @@ -515,8 +514,7 @@ * * Returns: state reach after input @c */ -unsigned int aa_dfa_next(struct aa_dfa *dfa, unsigned int state, - const char c) +aa_state_t aa_dfa_next(struct aa_dfa *dfa, aa_state_t state, const char c) { u16 *def = DEFAULT_TABLE(dfa); u32 *base = BASE_TABLE(dfa); @@ -534,7 +532,7 @@ return state; } -unsigned int aa_dfa_outofband_transition(struct aa_dfa *dfa, unsigned int state) +aa_state_t aa_dfa_outofband_transition(struct aa_dfa *dfa, aa_state_t state) { u16 *def = DEFAULT_TABLE(dfa); u32 *base = BASE_TABLE(dfa); @@ -564,7 +562,7 @@ * * Returns: final state reached after input is consumed */ -unsigned int aa_dfa_match_until(struct aa_dfa *dfa, unsigned int start, +aa_state_t aa_dfa_match_until(struct aa_dfa *dfa, aa_state_t start, const char *str, const char **retpos) { u16 *def = DEFAULT_TABLE(dfa); @@ -572,10 +570,10 @@ u16 *next = NEXT_TABLE(dfa); u16 *check = CHECK_TABLE(dfa); u32 *accept = ACCEPT_TABLE(dfa); - unsigned int state = start, pos; + aa_state_t state = start, pos; - if (state == 0) - return 0; + if (state == DFA_NOMATCH) + return DFA_NOMATCH; /* current state is , matching character *str */ if (dfa->tables[YYTD_ID_EC]) { @@ -625,7 +623,7 @@ * * Returns: final state reached after input is consumed */ -unsigned int aa_dfa_matchn_until(struct aa_dfa *dfa, unsigned int start, +aa_state_t aa_dfa_matchn_until(struct aa_dfa *dfa, aa_state_t start, const char *str, int n, const char **retpos) { u16 *def = DEFAULT_TABLE(dfa); @@ -633,11 +631,11 @@ u16 *next = NEXT_TABLE(dfa); u16 *check = CHECK_TABLE(dfa); u32 *accept = ACCEPT_TABLE(dfa); - unsigned int state = start, pos; + aa_state_t state = start, pos; *retpos = NULL; - if (state == 0) - return 0; + if (state == DFA_NOMATCH) + return DFA_NOMATCH; /* current state is , matching character *str */ if (dfa->tables[YYTD_ID_EC]) { @@ -677,11 +675,11 @@ } while (0) /* For DFAs that don't support extended tagging of states */ -static bool is_loop(struct match_workbuf *wb, unsigned int state, +static bool is_loop(struct match_workbuf *wb, aa_state_t state, unsigned int *adjust) { - unsigned int pos = wb->pos; - unsigned int i; + aa_state_t pos = wb->pos; + aa_state_t i; if (wb->history[pos] < state) return false; @@ -700,7 +698,7 @@ return true; } -static unsigned int leftmatch_fb(struct aa_dfa *dfa, unsigned int start, +static aa_state_t leftmatch_fb(struct aa_dfa *dfa, aa_state_t start, const char *str, struct match_workbuf *wb, unsigned int *count) { @@ -708,7 +706,7 @@ u32 *base = BASE_TABLE(dfa); u16 *next = NEXT_TABLE(dfa); u16 *check = CHECK_TABLE(dfa); - unsigned int state = start, pos; + aa_state_t state = start, pos; AA_BUG(!dfa); AA_BUG(!str); @@ -716,8 +714,8 @@ AA_BUG(!count); *count = 0; - if (state == 0) - return 0; + if (state == DFA_NOMATCH) + return DFA_NOMATCH; /* current state is , matching character *str */ if (dfa->tables[YYTD_ID_EC]) { @@ -781,8 +779,8 @@ * * Returns: final state reached after input is consumed */ -unsigned int aa_dfa_leftmatch(struct aa_dfa *dfa, unsigned int start, - const char *str, unsigned int *count) +aa_state_t aa_dfa_leftmatch(struct aa_dfa *dfa, aa_state_t start, + const char *str, unsigned int *count) { DEFINE_MATCH_WB(wb); --- linux-5.19.0.orig/security/apparmor/mount.c +++ linux-5.19.0/security/apparmor/mount.c @@ -134,7 +134,7 @@ struct aa_perms *perms, const char *info, int error) { int audit_type = AUDIT_APPARMOR_AUTO; - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, op); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_MOUNT, op); if (likely(!error)) { u32 mask = perms->audit; @@ -190,7 +190,7 @@ * * Returns: next state after flags match */ -static unsigned int match_mnt_flags(struct aa_dfa *dfa, unsigned int state, +static aa_state_t match_mnt_flags(struct aa_dfa *dfa, aa_state_t state, unsigned long flags) { unsigned int i; @@ -203,89 +203,72 @@ return state; } -/** - * compute_mnt_perms - compute mount permission associated with @state - * @dfa: dfa to match against (NOT NULL) - * @state: state match finished in - * - * Returns: mount permissions - */ -static struct aa_perms compute_mnt_perms(struct aa_dfa *dfa, - unsigned int state) -{ - struct aa_perms perms = { - .allow = dfa_user_allow(dfa, state), - .audit = dfa_user_audit(dfa, state), - .quiet = dfa_user_quiet(dfa, state), - .xindex = dfa_user_xindex(dfa, state), - }; - - return perms; -} - static const char * const mnt_info_table[] = { "match succeeded", "failed mntpnt match", "failed srcname match", "failed type match", "failed flags match", - "failed data match" + "failed data match", + "failed perms check" }; /* * Returns 0 on success else element that match failed in, this is the * index into the mnt_info_table above */ -static int do_match_mnt(struct aa_dfa *dfa, unsigned int start, +static int do_match_mnt(struct aa_policydb *policy, aa_state_t start, const char *mntpnt, const char *devname, const char *type, unsigned long flags, void *data, bool binary, struct aa_perms *perms) { - unsigned int state; + aa_state_t state; - AA_BUG(!dfa); + AA_BUG(!policy); + AA_BUG(!policy->dfa); + AA_BUG(!policy->perms); AA_BUG(!perms); - state = aa_dfa_match(dfa, start, mntpnt); - state = aa_dfa_null_transition(dfa, state); + state = aa_dfa_match(policy->dfa, start, mntpnt); + state = aa_dfa_null_transition(policy->dfa, state); if (!state) return 1; if (devname) - state = aa_dfa_match(dfa, state, devname); - state = aa_dfa_null_transition(dfa, state); + state = aa_dfa_match(policy->dfa, state, devname); + state = aa_dfa_null_transition(policy->dfa, state); if (!state) return 2; if (type) - state = aa_dfa_match(dfa, state, type); - state = aa_dfa_null_transition(dfa, state); + state = aa_dfa_match(policy->dfa, state, type); + state = aa_dfa_null_transition(policy->dfa, state); if (!state) return 3; - state = match_mnt_flags(dfa, state, flags); + state = match_mnt_flags(policy->dfa, state, flags); if (!state) return 4; - *perms = compute_mnt_perms(dfa, state); + *perms = *aa_lookup_perms(policy, state); if (perms->allow & AA_MAY_MOUNT) return 0; /* only match data if not binary and the DFA flags data is expected */ if (data && !binary && (perms->allow & AA_MNT_CONT_MATCH)) { - state = aa_dfa_null_transition(dfa, state); + state = aa_dfa_null_transition(policy->dfa, state); if (!state) return 4; - state = aa_dfa_match(dfa, state, data); + state = aa_dfa_match(policy->dfa, state, data); if (!state) return 5; - *perms = compute_mnt_perms(dfa, state); + *perms = *aa_lookup_perms(policy, state); if (perms->allow & AA_MAY_MOUNT) return 0; } - /* failed at end of flags match */ - return 4; + /* failed at perms check, don't confuse with flags match */ + return 6; } @@ -303,7 +286,7 @@ * @profile: the confining profile * @mntpath: for the mntpnt (NOT NULL) * @buffer: buffer to be used to lookup mntpath - * @devnme: string for the devname/src_name (MAY BE NULL OR ERRPTR) + * @devname: string for the devname/src_name (MAY BE NULL OR ERRPTR) * @type: string for the dev type (MAYBE NULL) * @flags: mount flags to match * @data: fs mount data (MAYBE NULL) @@ -320,13 +303,15 @@ { struct aa_perms perms = { }; const char *mntpnt = NULL, *info = NULL; + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); int pos, error; AA_BUG(!profile); AA_BUG(!mntpath); AA_BUG(!buffer); - if (!PROFILE_MEDIATES(profile, AA_CLASS_MOUNT)) + if (!RULE_MEDIATES(rules, AA_CLASS_MOUNT)) return 0; error = aa_path_name(mntpath, path_flags(profile, mntpath), buffer, @@ -341,8 +326,8 @@ } error = -EACCES; - pos = do_match_mnt(profile->policy.dfa, - profile->policy.start[AA_CLASS_MOUNT], + pos = do_match_mnt(&rules->policy, + rules->policy.start[AA_CLASS_MOUNT], mntpnt, devname, type, flags, data, binary, &perms); if (pos) { info = mnt_info_table[pos]; @@ -358,7 +343,7 @@ /** * match_mnt - handle path matching for mount * @profile: the confining profile - * @mntpath: for the mntpnt (NOT NULL) + * @path: for the mntpnt (NOT NULL) * @buffer: buffer to be used to lookup mntpath * @devpath: path devname/src_name (MAYBE NULL) * @devbuffer: buffer to be used to lookup devname/src_name @@ -375,12 +360,14 @@ bool binary) { const char *devname = NULL, *info = NULL; + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); int error = -EACCES; AA_BUG(!profile); AA_BUG(devpath && !devbuffer); - if (!PROFILE_MEDIATES(profile, AA_CLASS_MOUNT)) + if (!RULE_MEDIATES(rules, AA_CLASS_MOUNT)) return 0; if (devpath) { @@ -582,15 +569,17 @@ static int profile_umount(struct aa_profile *profile, const struct path *path, char *buffer) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_perms perms = { }; const char *name = NULL, *info = NULL; - unsigned int state; + aa_state_t state; int error; AA_BUG(!profile); AA_BUG(!path); - if (!PROFILE_MEDIATES(profile, AA_CLASS_MOUNT)) + if (!RULE_MEDIATES(rules, AA_CLASS_MOUNT)) return 0; error = aa_path_name(path, path_flags(profile, path), buffer, &name, @@ -598,10 +587,10 @@ if (error) goto audit; - state = aa_dfa_match(profile->policy.dfa, - profile->policy.start[AA_CLASS_MOUNT], + state = aa_dfa_match(rules->policy.dfa, + rules->policy.start[AA_CLASS_MOUNT], name); - perms = compute_mnt_perms(profile->policy.dfa, state); + perms = *aa_lookup_perms(&rules->policy, state); if (AA_MAY_UMOUNT & ~perms.allow) error = -EACCES; @@ -641,10 +630,12 @@ const struct path *old_path, char *old_buffer) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); const char *old_name, *new_name = NULL, *info = NULL; const char *trans_name = NULL; struct aa_perms perms = { }; - unsigned int state; + aa_state_t state; int error; AA_BUG(!profile); @@ -652,7 +643,7 @@ AA_BUG(!old_path); if (profile_unconfined(profile) || - !PROFILE_MEDIATES(profile, AA_CLASS_MOUNT)) + !RULE_MEDIATES(rules, AA_CLASS_MOUNT)) return aa_get_newest_label(&profile->label); error = aa_path_name(old_path, path_flags(profile, old_path), @@ -667,12 +658,12 @@ goto audit; error = -EACCES; - state = aa_dfa_match(profile->policy.dfa, - profile->policy.start[AA_CLASS_MOUNT], + state = aa_dfa_match(rules->policy.dfa, + rules->policy.start[AA_CLASS_MOUNT], new_name); - state = aa_dfa_null_transition(profile->policy.dfa, state); - state = aa_dfa_match(profile->policy.dfa, state, old_name); - perms = compute_mnt_perms(profile->policy.dfa, state); + state = aa_dfa_null_transition(rules->policy.dfa, state); + state = aa_dfa_match(rules->policy.dfa, state, old_name); + perms = *aa_lookup_perms(&rules->policy, state); if (AA_MAY_PIVOTROOT & perms.allow) error = 0; @@ -718,6 +709,7 @@ aa_put_label(target); goto out; } + aa_put_label(target); } else /* already audited error */ error = PTR_ERR(target); --- linux-5.19.0.orig/security/apparmor/net.c +++ linux-5.19.0/security/apparmor/net.c @@ -8,6 +8,7 @@ * Copyright 2009-2017 Canonical Ltd. */ +#include "include/af_unix.h" #include "include/apparmor.h" #include "include/audit.h" #include "include/cred.h" @@ -24,6 +25,12 @@ { } }; +struct aa_sfs_entry aa_sfs_entry_network_compat[] = { + AA_SFS_FILE_STRING("af_mask", AA_SFS_AF_MASK), + AA_SFS_FILE_BOOLEAN("af_unix", 1), + { } +}; + static const char * const net_mask_names[] = { "unknown", "send", @@ -66,6 +73,36 @@ "unknown", }; +static void audit_unix_addr(struct audit_buffer *ab, const char *str, + struct sockaddr_un *addr, int addrlen) +{ + int len = unix_addr_len(addrlen); + + if (!addr || len <= 0) { + audit_log_format(ab, " %s=none", str); + } else if (addr->sun_path[0]) { + audit_log_format(ab, " %s=", str); + audit_log_untrustedstring(ab, addr->sun_path); + } else { + audit_log_format(ab, " %s=\"@", str); + if (audit_string_contains_control(&addr->sun_path[1], len - 1)) + audit_log_n_hex(ab, &addr->sun_path[1], len - 1); + else + audit_log_format(ab, "%.*s", len - 1, + &addr->sun_path[1]); + audit_log_format(ab, "\""); + } +} + +static void audit_unix_sk_addr(struct audit_buffer *ab, const char *str, + const struct sock *sk) +{ + struct unix_sock *u = unix_sk(sk); + if (u && u->addr) + audit_unix_addr(ab, str, u->addr->name, u->addr->len); + else + audit_unix_addr(ab, str, NULL, 0); +} /* audit callback for net specific fields */ void audit_net_cb(struct audit_buffer *ab, void *va) @@ -97,6 +134,23 @@ net_mask_names, NET_PERMS_MASK); } } + if (sa->u.net->family == AF_UNIX) { + if ((aad(sa)->request & ~NET_PEER_MASK) && aad(sa)->net.addr) + audit_unix_addr(ab, "addr", + unix_addr(aad(sa)->net.addr), + aad(sa)->net.addrlen); + else + audit_unix_sk_addr(ab, "addr", sa->u.net->sk); + if (aad(sa)->request & NET_PEER_MASK) { + if (aad(sa)->net.addr) + audit_unix_addr(ab, "peer_addr", + unix_addr(aad(sa)->net.addr), + aad(sa)->net.addrlen); + else + audit_unix_sk_addr(ab, "peer_addr", + aad(sa)->net.peer_sk); + } + } if (aad(sa)->peer) { audit_log_format(ab, " peer="); aa_label_xaudit(ab, labels_ns(aad(sa)->label), aad(sa)->peer, @@ -108,8 +162,10 @@ int aa_profile_af_perm(struct aa_profile *profile, struct common_audit_data *sa, u32 request, u16 family, int type) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); struct aa_perms perms = { }; - unsigned int state; + aa_state_t state; __be16 buffer[2]; AA_BUG(family >= AF_MAX); @@ -117,15 +173,25 @@ if (profile_unconfined(profile)) return 0; - state = PROFILE_MEDIATES(profile, AA_CLASS_NET); - if (!state) - return 0; + state = RULE_MEDIATES(rules, AA_CLASS_NET); + if (state) { + buffer[0] = cpu_to_be16(family); + buffer[1] = cpu_to_be16((u16) type); + state = aa_dfa_match_len(rules->policy.dfa, state, + (char *) &buffer, 4); + perms = *aa_lookup_perms(&rules->policy, state); + } else if (profile->net_compat) { + /* 2.x socket mediation compat */ + perms.allow = (profile->net_compat->allow[family] & (1 << type)) ? + ALL_PERMS_MASK : 0; + perms.audit = (profile->net_compat->audit[family] & (1 << type)) ? + ALL_PERMS_MASK : 0; + perms.quiet = (profile->net_compat->quiet[family] & (1 << type)) ? + ALL_PERMS_MASK : 0; - buffer[0] = cpu_to_be16(family); - buffer[1] = cpu_to_be16((u16) type); - state = aa_dfa_match_len(profile->policy.dfa, state, (char *) &buffer, - 4); - aa_compute_perms(profile->policy.dfa, state, &perms); + } else { + return 0; + } aa_apply_modes_to_perms(profile, &perms); return aa_check_perms(profile, &perms, request, sa, audit_net_cb); @@ -145,12 +211,13 @@ static int aa_label_sk_perm(struct aa_label *label, const char *op, u32 request, struct sock *sk) { + struct aa_sk_ctx *ctx = aa_sock(sk); int error = 0; AA_BUG(!label); AA_BUG(!sk); - if (!unconfined(label)) { + if (ctx->label != kernel_t && !unconfined(label)) { struct aa_profile *profile; DEFINE_AUDIT_SK(sa, op, sk); @@ -185,7 +252,9 @@ AA_BUG(!sock); AA_BUG(!sock->sk); - return aa_label_sk_perm(label, op, request, sock->sk); + return af_select(sock->sk->sk_family, + file_perm(label, op, request, sock), + aa_label_sk_perm(label, op, request, sock->sk)); } #ifdef CONFIG_NETWORK_SECMARK @@ -215,25 +284,27 @@ { int i, ret; struct aa_perms perms = { }; + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); - if (profile->secmark_count == 0) + if (rules->secmark_count == 0) return 0; - for (i = 0; i < profile->secmark_count; i++) { - if (!profile->secmark[i].secid) { - ret = apparmor_secmark_init(&profile->secmark[i]); + for (i = 0; i < rules->secmark_count; i++) { + if (!rules->secmark[i].secid) { + ret = apparmor_secmark_init(&rules->secmark[i]); if (ret) return ret; } - if (profile->secmark[i].secid == secid || - profile->secmark[i].secid == AA_SECID_WILDCARD) { - if (profile->secmark[i].deny) + if (rules->secmark[i].secid == secid || + rules->secmark[i].secid == AA_SECID_WILDCARD) { + if (rules->secmark[i].deny) perms.deny = ALL_PERMS_MASK; else perms.allow = ALL_PERMS_MASK; - if (profile->secmark[i].audit) + if (rules->secmark[i].audit) perms.audit = ALL_PERMS_MASK; } } --- linux-5.19.0.orig/security/apparmor/policy.c +++ linux-5.19.0/security/apparmor/policy.c @@ -88,12 +88,14 @@ #include "include/resource.h" int unprivileged_userns_apparmor_policy = 1; +bool unprivileged_userns_restricted = IS_ENABLED(CONFIG_SECURITY_APPARMOR_RESTRICT_USERNS); const char *const aa_profile_mode_names[] = { "enforce", "complain", "kill", "unconfined", + "user", }; @@ -192,6 +194,41 @@ kfree_sensitive(data); } +static void free_attachment(struct aa_attachment *attach) +{ + int i; + + for (i = 0; i < attach->xattr_count; i++) + kfree_sensitive(attach->xattrs[i]); + kfree_sensitive(attach->xattrs); + aa_destroy_policydb(&attach->xmatch); +} + +static void free_ruleset(struct aa_ruleset *rules) +{ + int i; + + aa_destroy_policydb(&rules->file); + aa_destroy_policydb(&rules->policy); + aa_free_cap_rules(&rules->caps); + aa_free_rlimit_rules(&rules->rlimits); + + for (i = 0; i < rules->secmark_count; i++) + kfree_sensitive(rules->secmark[i].label); + kfree_sensitive(rules->secmark); +} + +struct aa_ruleset *aa_alloc_ruleset(gfp_t gfp) +{ + struct aa_ruleset *rules; + + rules = kzalloc(sizeof(*rules), gfp); + if (rules) + INIT_LIST_HEAD(&rules->list); + + return rules; +} + /** * aa_free_profile - free a profile * @profile: the profile to free (MAYBE NULL) @@ -204,8 +241,8 @@ */ void aa_free_profile(struct aa_profile *profile) { + struct aa_ruleset *rule, *tmp; struct rhashtable *rht; - int i; AA_DEBUG("%s(%p)\n", __func__, profile); @@ -219,19 +256,18 @@ aa_put_ns(profile->ns); kfree_sensitive(profile->rename); - aa_free_file_rules(&profile->file); - aa_free_cap_rules(&profile->caps); - aa_free_rlimit_rules(&profile->rlimits); - - for (i = 0; i < profile->xattr_count; i++) - kfree_sensitive(profile->xattrs[i]); - kfree_sensitive(profile->xattrs); - for (i = 0; i < profile->secmark_count; i++) - kfree_sensitive(profile->secmark[i].label); - kfree_sensitive(profile->secmark); + free_attachment(&profile->attach); + kfree_sensitive(profile->net_compat); + + /* + * at this point there are no tasks that can have a reference + * to rules + */ + list_for_each_entry_safe(rule, tmp, &profile->rules, list) { + list_del_init(&rule->list); + free_ruleset(rule); + } kfree_sensitive(profile->dirname); - aa_put_dfa(profile->xmatch); - aa_put_dfa(profile->policy.dfa); if (profile->data) { rht = profile->data; @@ -258,6 +294,7 @@ gfp_t gfp) { struct aa_profile *profile; + struct aa_ruleset *rules; /* freed by free_profile - usually through aa_put_profile */ profile = kzalloc(struct_size(profile, label.vec, 2), gfp); @@ -269,6 +306,14 @@ if (!aa_label_init(&profile->label, 1, gfp)) goto fail; + INIT_LIST_HEAD(&profile->rules); + + /* allocate the first ruleset, but leave it empty */ + rules = aa_alloc_ruleset(gfp); + if (!rules) + goto fail; + list_add(&rules->list, &profile->rules); + /* update being set needed by fs interface */ if (!proxy) { proxy = aa_alloc_proxy(&profile->label, gfp); @@ -422,7 +467,7 @@ } /** - * aa_lookup_profile - find a profile by its full or partial name + * aa_lookupn_profile - find a profile by its full or partial name * @ns: the namespace to start from (NOT NULL) * @hname: name to do lookup on. Does not contain namespace prefix (NOT NULL) * @n: size of @hname @@ -502,6 +547,7 @@ struct aa_profile *aa_new_null_profile(struct aa_profile *parent, bool hat, const char *base, gfp_t gfp) { + struct aa_ruleset *rules; struct aa_profile *p, *profile; const char *bname; char *name = NULL; @@ -544,8 +590,9 @@ /* released on free_profile */ rcu_assign_pointer(profile->parent, aa_get_profile(parent)); profile->ns = aa_get_ns(parent->ns); - profile->file.dfa = aa_get_dfa(nulldfa); - profile->policy.dfa = aa_get_dfa(nulldfa); + rules = list_first_entry(&profile->rules, typeof(*rules), list); + rules->file.dfa = aa_get_dfa(nulldfa); + rules->policy.dfa = aa_get_dfa(nulldfa); mutex_lock_nested(&profile->ns->lock, profile->ns->level); p = __find_child(&parent->base.profiles, bname); @@ -618,7 +665,7 @@ const char *ns_name, const char *name, const char *info, int error) { - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, op); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_NONE, op); aad(&sa)->iface.ns = ns_name; aad(&sa)->name = name; @@ -952,16 +999,18 @@ mutex_lock_nested(&ns->lock, ns->level); /* check for duplicate rawdata blobs: space and file dedup */ - list_for_each_entry(rawdata_ent, &ns->rawdata_list, list) { - if (aa_rawdata_eq(rawdata_ent, udata)) { - struct aa_loaddata *tmp; - - tmp = __aa_get_loaddata(rawdata_ent); - /* check we didn't fail the race */ - if (tmp) { - aa_put_loaddata(udata); - udata = tmp; - break; + if (!list_empty(&ns->rawdata_list)) { + list_for_each_entry(rawdata_ent, &ns->rawdata_list, list) { + if (aa_rawdata_eq(rawdata_ent, udata)) { + struct aa_loaddata *tmp; + + tmp = __aa_get_loaddata(rawdata_ent); + /* check we didn't fail the race */ + if (tmp) { + aa_put_loaddata(udata); + udata = tmp; + break; + } } } } @@ -969,7 +1018,8 @@ list_for_each_entry(ent, &lh, list) { struct aa_policy *policy; - ent->new->rawdata = aa_get_loaddata(udata); + if (aa_g_export_binary) + ent->new->rawdata = aa_get_loaddata(udata); error = __lookup_replace(ns, ent->new->base.hname, !(mask & AA_MAY_REPLACE_POLICY), &ent->old, &info); @@ -1009,7 +1059,7 @@ } /* create new fs entries for introspection if needed */ - if (!udata->dents[AAFS_LOADDATA_DIR]) { + if (!udata->dents[AAFS_LOADDATA_DIR] && aa_g_export_binary) { error = __aa_fs_create_rawdata(ns, udata); if (error) { info = "failed to create raw_data dir and files"; @@ -1037,12 +1087,14 @@ /* Done with checks that may fail - do actual replacement */ __aa_bump_ns_revision(ns); - __aa_loaddata_update(udata, ns->revision); + if (aa_g_export_binary) + __aa_loaddata_update(udata, ns->revision); list_for_each_entry_safe(ent, tmp, &lh, list) { list_del_init(&ent->list); op = (!ent->old && !ent->rename) ? OP_PROF_LOAD : OP_PROF_REPL; - if (ent->old && ent->old->rawdata == ent->new->rawdata) { + if (ent->old && ent->old->rawdata == ent->new->rawdata && + ent->new->rawdata) { /* dedup actual profile replacement */ audit_policy(label, op, ns_name, ent->new->base.hname, "same as current profile, skipping", @@ -1165,7 +1217,7 @@ if (!name) { /* remove namespace - can only happen if fqname[0] == ':' */ - mutex_lock_nested(&ns->parent->lock, ns->level); + mutex_lock_nested(&ns->parent->lock, ns->parent->level); __aa_bump_ns_revision(ns); __aa_remove_ns(ns); mutex_unlock(&ns->parent->lock); --- linux-5.19.0.orig/security/apparmor/policy_compat.c +++ linux-5.19.0/security/apparmor/policy_compat.c @@ -0,0 +1,318 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * AppArmor security module + * + * This file contains AppArmor functions for unpacking policy loaded + * from userspace. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2022 Canonical Ltd. + * + * Code to provide backwards compatibility with older policy versions, + * by converting/mapping older policy formats into the newer internal + * formats. + */ + +#include +#include + +#include "include/lib.h" +#include "include/policy_unpack.h" +#include "include/policy_compat.h" + +/* remap old accept table embedded permissions to separate permission table */ +static u32 dfa_map_xindex(u16 mask) +{ + u16 old_index = (mask >> 10) & 0xf; + u32 index = 0; + + if (mask & 0x100) + index |= AA_X_UNSAFE; + if (mask & 0x200) + index |= AA_X_INHERIT; + if (mask & 0x80) + index |= AA_X_UNCONFINED; + + if (old_index == 1) { + index |= AA_X_UNCONFINED; + } else if (old_index == 2) { + index |= AA_X_NAME; + } else if (old_index == 3) { + index |= AA_X_NAME | AA_X_CHILD; + } else if (old_index) { + index |= AA_X_TABLE; + index |= old_index - 4; + } + + return index; +} + +/* + * map old dfa inline permissions to new format + */ +#define dfa_user_allow(dfa, state) (((ACCEPT_TABLE(dfa)[state]) & 0x7f) | \ + ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) +#define dfa_user_xbits(dfa, state) (((ACCEPT_TABLE(dfa)[state]) >> 7) & 0x7f) +#define dfa_user_audit(dfa, state) ((ACCEPT_TABLE2(dfa)[state]) & 0x7f) +#define dfa_user_quiet(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 7) & 0x7f) +#define dfa_user_xindex(dfa, state) \ + (dfa_map_xindex(ACCEPT_TABLE(dfa)[state] & 0x3fff)) + +#define dfa_other_allow(dfa, state) ((((ACCEPT_TABLE(dfa)[state]) >> 14) & \ + 0x7f) | \ + ((ACCEPT_TABLE(dfa)[state]) & 0x80000000)) +#define dfa_other_xbits(dfa, state) \ + ((((ACCEPT_TABLE(dfa)[state]) >> 7) >> 14) & 0x7f) +#define dfa_other_audit(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 14) & 0x7f) +#define dfa_other_quiet(dfa, state) \ + ((((ACCEPT_TABLE2(dfa)[state]) >> 7) >> 14) & 0x7f) +#define dfa_other_xindex(dfa, state) \ + dfa_map_xindex((ACCEPT_TABLE(dfa)[state] >> 14) & 0x3fff) + +/** + * map_old_perms - map old file perms layout to the new layout + * @old: permission set in old mapping + * + * Returns: new permission mapping + */ +static u32 map_old_perms(u32 old) +{ + u32 new = old & 0xf; + + if (old & MAY_READ) + new |= AA_MAY_GETATTR | AA_MAY_OPEN; + if (old & MAY_WRITE) + new |= AA_MAY_SETATTR | AA_MAY_CREATE | AA_MAY_DELETE | + AA_MAY_CHMOD | AA_MAY_CHOWN | AA_MAY_OPEN; + if (old & 0x10) + new |= AA_MAY_LINK; + /* the old mapping lock and link_subset flags where overlaid + * and use was determined by part of a pair that they were in + */ + if (old & 0x20) + new |= AA_MAY_LOCK | AA_LINK_SUBSET; + if (old & 0x40) /* AA_EXEC_MMAP */ + new |= AA_EXEC_MMAP; + + return new; +} + +static void compute_fperms_allow(struct aa_perms *perms, struct aa_dfa *dfa, + aa_state_t state) +{ + perms->allow |= AA_MAY_GETATTR; + + /* change_profile wasn't determined by ownership in old mapping */ + if (ACCEPT_TABLE(dfa)[state] & 0x80000000) + perms->allow |= AA_MAY_CHANGE_PROFILE; + if (ACCEPT_TABLE(dfa)[state] & 0x40000000) + perms->allow |= AA_MAY_ONEXEC; +} + +static struct aa_perms compute_fperms_user(struct aa_dfa *dfa, + aa_state_t state) +{ + struct aa_perms perms = { }; + + perms.allow = map_old_perms(dfa_user_allow(dfa, state)); + perms.audit = map_old_perms(dfa_user_audit(dfa, state)); + perms.quiet = map_old_perms(dfa_user_quiet(dfa, state)); + perms.xindex = dfa_user_xindex(dfa, state); + + compute_fperms_allow(&perms, dfa, state); + + return perms; +} + +static struct aa_perms compute_fperms_other(struct aa_dfa *dfa, + aa_state_t state) +{ + struct aa_perms perms = { }; + + perms.allow = map_old_perms(dfa_other_allow(dfa, state)); + perms.audit = map_old_perms(dfa_other_audit(dfa, state)); + perms.quiet = map_old_perms(dfa_other_quiet(dfa, state)); + perms.xindex = dfa_other_xindex(dfa, state); + + compute_fperms_allow(&perms, dfa, state); + + return perms; +} + +/** + * compute_fperms - convert dfa compressed perms to internal perms and store + * them so they can be retrieved later. + * @dfa: a dfa using fperms to remap to internal permissions + * + * Returns: remapped perm table + */ +static struct aa_perms *compute_fperms(struct aa_dfa *dfa) +{ + aa_state_t state; + unsigned int state_count; + struct aa_perms *table; + + AA_BUG(!dfa); + + state_count = dfa->tables[YYTD_ID_BASE]->td_lolen; + /* DFAs are restricted from having a state_count of less than 2 */ + table = kvcalloc(state_count * 2, sizeof(struct aa_perms), GFP_KERNEL); + if (!table) + return NULL; + + for (state = 0; state < state_count; state++) { + table[state * 2] = compute_fperms_user(dfa, state); + table[state * 2 + 1] = compute_fperms_other(dfa, state); + } + + return table; +} + +static struct aa_perms *compute_xmatch_perms(struct aa_dfa *xmatch) +{ + struct aa_perms *perms; + int state; + int state_count; + + AA_BUG(!xmatch); + + state_count = xmatch->tables[YYTD_ID_BASE]->td_lolen; + /* DFAs are restricted from having a state_count of less than 2 */ + perms = kvcalloc(state_count, sizeof(struct aa_perms), GFP_KERNEL); + + /* zero init so skip the trap state (state == 0) */ + for (state = 1; state < state_count; state++) + perms[state].allow = dfa_user_allow(xmatch, state); + + return perms; +} + +static u32 map_other(u32 x) +{ + return ((x & 0x3) << 8) | /* SETATTR/GETATTR */ + ((x & 0x1c) << 18) | /* ACCEPT/BIND/LISTEN */ + ((x & 0x60) << 19); /* SETOPT/GETOPT */ +} + +static u32 map_xbits(u32 x) +{ + return ((x & 0x1) << 7) | + ((x & 0x7e) << 9); +} + +static struct aa_perms compute_perms_entry(struct aa_dfa *dfa, + aa_state_t state, + u32 version) +{ + struct aa_perms perms = { }; + + perms.allow = dfa_user_allow(dfa, state); + perms.audit = dfa_user_audit(dfa, state); + perms.quiet = dfa_user_quiet(dfa, state); + + /* + * This mapping is convulated due to history. + * v1-v4: only file perms, which are handled by compute_fperms + * v5: added policydb which dropped user conditional to gain new + * perm bits, but had to map around the xbits because the + * userspace compiler was still munging them. + * v9: adds using the xbits in policydb because the compiler now + * supports treating policydb permission bits different. + * Unfortunately there is no way to force auditing on the + * perms represented by the xbits + */ + perms.allow |= map_other(dfa_other_allow(dfa, state)); + if (VERSION_LE(version, v8)) + perms.allow |= AA_MAY_LOCK; + else + perms.allow |= map_xbits(dfa_user_xbits(dfa, state)); + + /* + * for v5-v9 perm mapping in the policydb, the other set is used + * to extend the general perm set + */ + perms.audit |= map_other(dfa_other_audit(dfa, state)); + perms.quiet |= map_other(dfa_other_quiet(dfa, state)); + if (VERSION_GT(version, v8)) + perms.quiet |= map_xbits(dfa_other_xbits(dfa, state)); + + return perms; +} + +static struct aa_perms *compute_perms(struct aa_dfa *dfa, u32 version) +{ + unsigned int state; + unsigned int state_count; + struct aa_perms *table; + + AA_BUG(!dfa); + + state_count = dfa->tables[YYTD_ID_BASE]->td_lolen; + /* DFAs are restricted from having a state_count of less than 2 */ + table = kvcalloc(state_count, sizeof(struct aa_perms), GFP_KERNEL); + if (!table) + return NULL; + + /* zero init so skip the trap state (state == 0) */ + for (state = 1; state < state_count; state++) + table[state] = compute_perms_entry(dfa, state, version); + + return table; +} + +/** + * remap_dfa_accept - remap old dfa accept table to be an index + * @dfa: dfa to do the remapping on + * @factor: scaling factor for the index conversion. + * + * Used in conjunction with compute_Xperms, it converts old style perms + * that are encoded in the dfa accept tables to the new style where + * there is a permission table and the accept table is an index into + * the permission table. + */ +static void remap_dfa_accept(struct aa_dfa *dfa, unsigned int factor) +{ + unsigned int state; + unsigned int state_count = dfa->tables[YYTD_ID_BASE]->td_lolen; + + AA_BUG(!dfa); + + for (state = 0; state < state_count; state++) + ACCEPT_TABLE(dfa)[state] = state * factor; + kvfree(dfa->tables[YYTD_ID_ACCEPT2]); + dfa->tables[YYTD_ID_ACCEPT2] = NULL; +} + +/* TODO: merge different dfa mappings into single map_policy fn */ +int aa_compat_map_xmatch(struct aa_policydb *policy) +{ + policy->perms = compute_xmatch_perms(policy->dfa); + if (!policy->perms) + return -ENOMEM; + + remap_dfa_accept(policy->dfa, 1); + + return 0; +} + +int aa_compat_map_policy(struct aa_policydb *policy, u32 version) +{ + policy->perms = compute_perms(policy->dfa, version); + if (!policy->perms) + return -ENOMEM; + + remap_dfa_accept(policy->dfa, 1); + + return 0; +} + +int aa_compat_map_file(struct aa_policydb *policy) +{ + policy->perms = compute_fperms(policy->dfa); + if (!policy->perms) + return -ENOMEM; + + remap_dfa_accept(policy->dfa, 2); + + return 0; +} --- linux-5.19.0.orig/security/apparmor/policy_ns.c +++ linux-5.19.0/security/apparmor/policy_ns.c @@ -22,6 +22,9 @@ #include "include/label.h" #include "include/policy.h" +/* kernel label */ +struct aa_label *kernel_t; + /* root profile namespace */ struct aa_ns *root_ns; const char *aa_hidden_ns_name = "---"; @@ -51,10 +54,10 @@ } /** - * aa_na_name - Find the ns name to display for @view from @curr - * @curr - current namespace (NOT NULL) - * @view - namespace attempting to view (NOT NULL) - * @subns - are subns visible + * aa_ns_name - Find the ns name to display for @view from @curr + * @curr: current namespace (NOT NULL) + * @view: namespace attempting to view (NOT NULL) + * @subns: are subns visible * * Returns: name of @view visible from @curr */ @@ -77,6 +80,25 @@ return aa_hidden_ns_name; } +static struct aa_profile *alloc_unconfined(const char *name) +{ + struct aa_profile *profile; + struct aa_ruleset *rules; + + profile = aa_alloc_profile(name, NULL, GFP_KERNEL); + if (!profile) + return NULL; + + profile->label.flags |= FLAG_IX_ON_NAME_ERROR | + FLAG_IMMUTIBLE | FLAG_NS_COUNT | FLAG_UNCONFINED; + profile->mode = APPARMOR_UNCONFINED; + rules = list_first_entry(&profile->rules, typeof(*rules), list); + rules->file.dfa = aa_get_dfa(nulldfa); + rules->policy.dfa = aa_get_dfa(nulldfa); + + return profile; +} + /** * alloc_ns - allocate, initialize and return a new namespace * @prefix: parent namespace name (MAYBE NULL) @@ -101,16 +123,9 @@ init_waitqueue_head(&ns->wait); /* released by aa_free_ns() */ - ns->unconfined = aa_alloc_profile("unconfined", NULL, GFP_KERNEL); + ns->unconfined = alloc_unconfined("unconfined"); if (!ns->unconfined) goto fail_unconfined; - - ns->unconfined->label.flags |= FLAG_IX_ON_NAME_ERROR | - FLAG_IMMUTIBLE | FLAG_NS_COUNT | FLAG_UNCONFINED; - ns->unconfined->mode = APPARMOR_UNCONFINED; - ns->unconfined->file.dfa = aa_get_dfa(nulldfa); - ns->unconfined->policy.dfa = aa_get_dfa(nulldfa); - /* ns and ns->unconfined share ns->unconfined refcount */ ns->unconfined->ns = ns; @@ -121,7 +136,7 @@ return ns; fail_unconfined: - kfree_sensitive(ns->base.hname); + aa_policy_destroy(&ns->base); fail_ns: kfree_sensitive(ns); return NULL; @@ -187,7 +202,7 @@ /** * __aa_lookupn_ns - lookup the namespace matching @hname - * @base: base list to start looking up profile name from (NOT NULL) + * @view: namespace to search in (NOT NULL) * @hname: hierarchical ns name (NOT NULL) * @n: length of @hname * @@ -272,7 +287,7 @@ } /** - * aa_create_ns - create an ns, fail if it already exists + * __aa_find_or_create_ns - create an ns, fail if it already exists * @parent: the parent of the namespace being created * @name: the name of the namespace * @dir: if not null the dir to put the ns entries in @@ -388,11 +403,22 @@ */ int __init aa_alloc_root_ns(void) { + struct aa_profile *kernel_p; + /* released by aa_free_root_ns - used as list ref*/ root_ns = alloc_ns(NULL, "root"); if (!root_ns) return -ENOMEM; + kernel_p = alloc_unconfined("kernel_t"); + if (!kernel_p) { + destroy_ns(root_ns); + aa_free_ns(root_ns); + return -ENOMEM; + } + kernel_t = &kernel_p->label; + root_ns->unconfined->ns = aa_get_ns(root_ns); + return 0; } @@ -405,6 +431,7 @@ root_ns = NULL; + aa_label_free(kernel_t); destroy_ns(ns); aa_put_ns(ns); } --- linux-5.19.0.orig/security/apparmor/policy_unpack.c +++ linux-5.19.0/security/apparmor/policy_unpack.c @@ -16,26 +16,19 @@ #include #include #include -#include +#include #include "include/apparmor.h" #include "include/audit.h" #include "include/cred.h" #include "include/crypto.h" +#include "include/file.h" #include "include/match.h" #include "include/path.h" #include "include/policy.h" #include "include/policy_unpack.h" +#include "include/policy_compat.h" -#define K_ABI_MASK 0x3ff -#define FORCE_COMPLAIN_FLAG 0x800 -#define VERSION_LT(X, Y) (((X) & K_ABI_MASK) < ((Y) & K_ABI_MASK)) -#define VERSION_GT(X, Y) (((X) & K_ABI_MASK) > ((Y) & K_ABI_MASK)) - -#define v5 5 /* base version */ -#define v6 6 /* per entry policydb mediation check */ -#define v7 7 -#define v8 8 /* full network masking */ /* * The AppArmor interface treats data as a type byte followed by the @@ -74,6 +67,11 @@ u32 version; }; +#define tri int +#define TRI_TRUE 1 +#define TRI_NONE 0 +#define TRI_FALSE -1 + /* audit callback for unpack fields */ static void audit_cb(struct audit_buffer *ab, void *va) { @@ -107,7 +105,7 @@ int error) { struct aa_profile *profile = labels_profile(aa_current_raw_label()); - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, NULL); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_NONE, NULL); if (e) aad(&sa)->iface.pos = e->pos - e->start; aad(&sa)->iface.ns = ns_name; @@ -125,15 +123,16 @@ { AA_BUG(!data); AA_BUG(!data->ns); - AA_BUG(!data->dents[AAFS_LOADDATA_REVISION]); AA_BUG(!mutex_is_locked(&data->ns->lock)); AA_BUG(data->revision > revision); data->revision = revision; - d_inode(data->dents[AAFS_LOADDATA_DIR])->i_mtime = - current_time(d_inode(data->dents[AAFS_LOADDATA_DIR])); - d_inode(data->dents[AAFS_LOADDATA_REVISION])->i_mtime = - current_time(d_inode(data->dents[AAFS_LOADDATA_REVISION])); + if ((data->dents[AAFS_LOADDATA_REVISION])) { + d_inode(data->dents[AAFS_LOADDATA_DIR])->i_mtime = + current_time(d_inode(data->dents[AAFS_LOADDATA_DIR])); + d_inode(data->dents[AAFS_LOADDATA_REVISION])->i_mtime = + current_time(d_inode(data->dents[AAFS_LOADDATA_REVISION])); + } } bool aa_rawdata_eq(struct aa_loaddata *l, struct aa_loaddata *r) @@ -213,7 +212,7 @@ } /** - * aa_u16_chunck - test and do bounds checking for a u16 size based chunk + * unpack_u16_chunk - test and do bounds checking for a u16 size based chunk * @e: serialized data read head (NOT NULL) * @chunk: start address for chunk of data (NOT NULL) * @@ -314,6 +313,19 @@ return false; } +static bool unpack_u16(struct aa_ext *e, u16 *data, const char *name) +{ + if (unpack_nameX(e, AA_U16, name)) { + if (!inbounds(e, sizeof(u16))) + return 0; + if (data) + *data = le16_to_cpu(get_unaligned((__le16 *) e->pos)); + e->pos += sizeof(u16); + return 1; + } + return 0; +} + static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name) { void *pos = e->pos; @@ -350,22 +362,22 @@ return false; } -static size_t unpack_array(struct aa_ext *e, const char *name) +static tri unpack_array(struct aa_ext *e, const char *name, u16 *size) { void *pos = e->pos; if (unpack_nameX(e, AA_ARRAY, name)) { - int size; if (!inbounds(e, sizeof(u16))) goto fail; - size = (int)le16_to_cpu(get_unaligned((__le16 *) e->pos)); + *size = le16_to_cpu(get_unaligned((__le16 *) e->pos)); e->pos += sizeof(u16); - return size; + return TRI_TRUE; } + return TRI_NONE; fail: e->pos = pos; - return 0; + return TRI_FALSE; } static size_t unpack_blob(struct aa_ext *e, char **blob, const char *name) @@ -436,10 +448,11 @@ /** * unpack_dfa - unpack a file rule dfa * @e: serialized data extent information (NOT NULL) + * @flags: dfa flags to check * * returns dfa or ERR_PTR or NULL if no dfa */ -static struct aa_dfa *unpack_dfa(struct aa_ext *e) +static struct aa_dfa *unpack_dfa(struct aa_ext *e, int flags) { char *blob = NULL; size_t size; @@ -455,8 +468,8 @@ size_t sz = blob - (char *) e->start - ((e->pos - e->start) & 7); size_t pad = ALIGN(sz, 8) - sz; - int flags = TO_ACCEPT1_FLAG(YYTD_DATA32) | - TO_ACCEPT2_FLAG(YYTD_DATA32) | DFA_FLAG_VERIFY_STATES; + if (aa_g_paranoid_load) + flags |= DFA_FLAG_VERIFY_STATES; dfa = aa_dfa_unpack(blob + pad, size - pad, flags); if (IS_ERR(dfa)) @@ -470,28 +483,32 @@ /** * unpack_trans_table - unpack a profile transition table * @e: serialized data extent information (NOT NULL) - * @profile: profile to add the accept table to (NOT NULL) + * @table: str table to unpack to (NOT NULL) * - * Returns: true if table successfully unpacked + * Returns: true if table successfully unpacked or not present */ -static bool unpack_trans_table(struct aa_ext *e, struct aa_profile *profile) +static bool unpack_trans_table(struct aa_ext *e, struct aa_str_table *strs) { void *saved_pos = e->pos; + char **table; /* exec table is optional */ if (unpack_nameX(e, AA_STRUCT, "xtable")) { - int i, size; + u16 size; + int i; - size = unpack_array(e, NULL); - /* currently 4 exec bits and entries 0-3 are reserved iupcx */ - if (size > 16 - 4) + if (unpack_array(e, NULL, &size) != TRI_TRUE) + /* + * Note: index into trans table array is a max + * of 2^24, but unpack array can only unpack + * an array of 2^16 in size atm so no need + * for size check here + */ goto fail; - profile->file.trans.table = kcalloc(size, sizeof(char *), - GFP_KERNEL); - if (!profile->file.trans.table) + table = kcalloc(size, sizeof(char *), GFP_KERNEL); + if (!table) goto fail; - profile->file.trans.size = size; for (i = 0; i < size; i++) { char *str; int c, j, pos, size2 = unpack_strdup(e, &str, NULL); @@ -500,7 +517,7 @@ */ if (!size2) goto fail; - profile->file.trans.table[i] = str; + table[i] = str; /* verify that name doesn't start with space */ if (isspace(*str)) goto fail; @@ -534,11 +551,14 @@ goto fail; if (!unpack_nameX(e, AA_STRUCTEND, NULL)) goto fail; + + strs->table = table; + strs->size = size; } return true; fail: - aa_free_domain_entries(&profile->file.trans); + kfree_sensitive(table); e->pos = saved_pos; return false; } @@ -548,15 +568,17 @@ void *pos = e->pos; if (unpack_nameX(e, AA_STRUCT, "xattrs")) { - int i, size; + u16 size; + int i; - size = unpack_array(e, NULL); - profile->xattr_count = size; - profile->xattrs = kcalloc(size, sizeof(char *), GFP_KERNEL); - if (!profile->xattrs) + if (unpack_array(e, NULL, &size) != TRI_TRUE) + goto fail; + profile->attach.xattr_count = size; + profile->attach.xattrs = kcalloc(size, sizeof(char *), GFP_KERNEL); + if (!profile->attach.xattrs) goto fail; for (i = 0; i < size; i++) { - if (!unpack_strdup(e, &profile->xattrs[i], NULL)) + if (!unpack_strdup(e, &profile->attach.xattrs[i], NULL)) goto fail; } if (!unpack_nameX(e, AA_ARRAYEND, NULL)) @@ -572,27 +594,29 @@ return false; } -static bool unpack_secmark(struct aa_ext *e, struct aa_profile *profile) +static bool unpack_secmark(struct aa_ext *e, struct aa_ruleset *rules) { void *pos = e->pos; - int i, size; + u16 size; + int i; if (unpack_nameX(e, AA_STRUCT, "secmark")) { - size = unpack_array(e, NULL); + if (unpack_array(e, NULL, &size) != TRI_TRUE) + goto fail; - profile->secmark = kcalloc(size, sizeof(struct aa_secmark), + rules->secmark = kcalloc(size, sizeof(struct aa_secmark), GFP_KERNEL); - if (!profile->secmark) + if (!rules->secmark) goto fail; - profile->secmark_count = size; + rules->secmark_count = size; for (i = 0; i < size; i++) { - if (!unpack_u8(e, &profile->secmark[i].audit, NULL)) + if (!unpack_u8(e, &rules->secmark[i].audit, NULL)) goto fail; - if (!unpack_u8(e, &profile->secmark[i].deny, NULL)) + if (!unpack_u8(e, &rules->secmark[i].deny, NULL)) goto fail; - if (!unpack_strdup(e, &profile->secmark[i].label, NULL)) + if (!unpack_strdup(e, &rules->secmark[i].label, NULL)) goto fail; } if (!unpack_nameX(e, AA_ARRAYEND, NULL)) @@ -604,39 +628,40 @@ return true; fail: - if (profile->secmark) { + if (rules->secmark) { for (i = 0; i < size; i++) - kfree(profile->secmark[i].label); - kfree(profile->secmark); - profile->secmark_count = 0; - profile->secmark = NULL; + kfree(rules->secmark[i].label); + kfree(rules->secmark); + rules->secmark_count = 0; + rules->secmark = NULL; } e->pos = pos; return false; } -static bool unpack_rlimits(struct aa_ext *e, struct aa_profile *profile) +static bool unpack_rlimits(struct aa_ext *e, struct aa_ruleset *rules) { void *pos = e->pos; /* rlimits are optional */ if (unpack_nameX(e, AA_STRUCT, "rlimits")) { - int i, size; + u16 size; + int i; u32 tmp = 0; if (!unpack_u32(e, &tmp, NULL)) goto fail; - profile->rlimits.mask = tmp; + rules->rlimits.mask = tmp; - size = unpack_array(e, NULL); - if (size > RLIM_NLIMITS) + if (unpack_array(e, NULL, &size) != TRI_TRUE || + size > RLIM_NLIMITS) goto fail; for (i = 0; i < size; i++) { u64 tmp2 = 0; int a = aa_map_resource(i); if (!unpack_u64(e, &tmp2, NULL)) goto fail; - profile->rlimits.limits[a].rlim_max = tmp2; + rules->rlimits.limits[a].rlim_max = tmp2; } if (!unpack_nameX(e, AA_ARRAYEND, NULL)) goto fail; @@ -650,6 +675,140 @@ return false; } +static bool unpack_perm(struct aa_ext *e, u32 version, struct aa_perms *perm) +{ + bool res; + + if (version != 1) + return false; + + res = unpack_u32(e, &perm->allow, NULL); + res = res && unpack_u32(e, &perm->allow, NULL); + res = res && unpack_u32(e, &perm->deny, NULL); + res = res && unpack_u32(e, &perm->subtree, NULL); + res = res && unpack_u32(e, &perm->cond, NULL); + res = res && unpack_u32(e, &perm->kill, NULL); + res = res && unpack_u32(e, &perm->complain, NULL); + res = res && unpack_u32(e, &perm->prompt, NULL); + res = res && unpack_u32(e, &perm->audit, NULL); + res = res && unpack_u32(e, &perm->quiet, NULL); + res = res && unpack_u32(e, &perm->hide, NULL); + res = res && unpack_u32(e, &perm->xindex, NULL); + res = res && unpack_u32(e, &perm->tag, NULL); + res = res && unpack_u32(e, &perm->label, NULL); + + return res; +} + +static ssize_t unpack_perms_table(struct aa_ext *e, struct aa_perms **perms) +{ + void *pos = e->pos; + u16 size = 0; + + AA_BUG(!perms); + /* + * policy perms are optional, in which case perms are embedded + * in the dfa accept table + */ + if (unpack_nameX(e, AA_STRUCT, "perms")) { + int i; + u32 version; + + if (!unpack_u32(e, &version, "version")) + goto fail_reset; + if (unpack_array(e, NULL, &size) != TRI_TRUE) + goto fail_reset; + *perms = kcalloc(size, sizeof(struct aa_perms), GFP_KERNEL); + if (!*perms) + goto fail_reset; + for (i = 0; i < size; i++) { + if (!unpack_perm(e, version, &(*perms)[i])) + goto fail; + } + if (!unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + if (!unpack_nameX(e, AA_STRUCTEND, NULL)) + goto fail; + } else + *perms = NULL; + + return size; + +fail: + kfree(*perms); +fail_reset: + e->pos = pos; + return -EPROTO; +} + +static int unpack_pdb(struct aa_ext *e, struct aa_policydb *policy, + bool required_dfa, bool required_trans, + const char **info) +{ + void *pos = e->pos; + int i, flags, error = -EPROTO; + + policy->size = unpack_perms_table(e, &policy->perms); + if (policy->size < 0) { + error = policy->size; + policy->perms = NULL; + *info = "failed to unpack - perms"; + goto fail; + } else if (policy->perms) { + /* perms table present accept is index */ + flags = TO_ACCEPT1_FLAG(YYTD_DATA32); + } else { + /* packed perms in accept1 and accept2 */ + flags = TO_ACCEPT1_FLAG(YYTD_DATA32) | + TO_ACCEPT2_FLAG(YYTD_DATA32); + } + + policy->dfa = unpack_dfa(e, flags); + if (IS_ERR(policy->dfa)) { + error = PTR_ERR(policy->dfa); + policy->dfa = NULL; + *info = "failed to unpack - dfa"; + goto fail; + } else if (!policy->dfa) { + if (required_dfa) { + *info = "missing required dfa"; + goto fail; + } + goto out; + } + + /* + * only unpack the following if a dfa is present + * + * sadly start was given different names for file and policydb + * but since it is optional we can try both + */ + if (!unpack_u32(e, &policy->start[0], "start")) + /* default start state */ + policy->start[0] = DFA_START; + if (!unpack_u32(e, &policy->start[AA_CLASS_FILE], "dfa_start")) { + /* default start state for xmatch and file dfa */ + policy->start[AA_CLASS_FILE] = DFA_START; + } /* setup class index */ + for (i = AA_CLASS_FILE + 1; i <= AA_CLASS_LAST; i++) { + policy->start[i] = aa_dfa_next(policy->dfa, policy->start[0], + i); + } + if (!unpack_trans_table(e, &policy->trans) && required_trans) { + *info = "failed to unpack profile transition table"; + goto fail; + } + + /* TODO: move compat mapping here, requires dfa merging first */ + /* TODO: move verify here, it has to be done after compat mappings */ +out: + return 0; + +fail: + e->pos = pos; + return error; +} + static u32 strhash(const void *data, u32 len, u32 seed) { const char * const *key = data; @@ -668,19 +827,22 @@ /** * unpack_profile - unpack a serialized profile * @e: serialized data extent information (NOT NULL) + * @ns_name: pointer of newly allocated copy of %NULL in case of error * * NOTE: unpack profile sets audit struct if there is a failure */ static struct aa_profile *unpack_profile(struct aa_ext *e, char **ns_name) { + struct aa_ruleset *rules; struct aa_profile *profile = NULL; const char *tmpname, *tmpns = NULL, *name = NULL; const char *info = "failed to unpack profile"; + u16 size = 0; size_t ns_len; struct rhashtable_params params = { 0 }; char *key = NULL; struct aa_data *data; - int i, error = -EPROTO; + int error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; @@ -707,28 +869,33 @@ profile = aa_alloc_profile(name, NULL, GFP_KERNEL); if (!profile) return ERR_PTR(-ENOMEM); + rules = list_first_entry(&profile->rules, typeof(*rules), list); /* profile renaming is optional */ (void) unpack_str(e, &profile->rename, "rename"); /* attachment string is optional */ - (void) unpack_str(e, &profile->attach, "attach"); + (void) unpack_str(e, &profile->attach.xmatch_str, "attach"); /* xmatch is optional and may be NULL */ - profile->xmatch = unpack_dfa(e); - if (IS_ERR(profile->xmatch)) { - error = PTR_ERR(profile->xmatch); - profile->xmatch = NULL; + error = unpack_pdb(e, &profile->attach.xmatch, false, false, &info); + if (error) { info = "bad xmatch"; goto fail; } - /* xmatch_len is not optional if xmatch is set */ - if (profile->xmatch) { + + /* neither xmatch_len not xmatch_perms are optional if xmatch is set */ + if (profile->attach.xmatch.dfa) { if (!unpack_u32(e, &tmp, NULL)) { info = "missing xmatch len"; goto fail; } - profile->xmatch_len = tmp; + profile->attach.xmatch_len = tmp; + profile->attach.xmatch.start[AA_CLASS_XMATCH] = DFA_START; + if (aa_compat_map_xmatch(&profile->attach.xmatch)) { + info = "failed to convert xmatch permission table"; + goto fail; + } } /* disconnected attachment string is optional */ @@ -744,18 +911,26 @@ goto fail; if (tmp & PACKED_FLAG_HAT) profile->label.flags |= FLAG_HAT; + if (tmp & PACKED_FLAG_DEBUG1) + profile->label.flags |= FLAG_DEBUG1; + if (tmp & PACKED_FLAG_DEBUG2) + profile->label.flags |= FLAG_DEBUG2; if (!unpack_u32(e, &tmp, NULL)) goto fail; - if (tmp == PACKED_MODE_COMPLAIN || (e->version & FORCE_COMPLAIN_FLAG)) + if (tmp == PACKED_MODE_COMPLAIN || (e->version & FORCE_COMPLAIN_FLAG)) { profile->mode = APPARMOR_COMPLAIN; - else if (tmp == PACKED_MODE_ENFORCE) + } else if (tmp == PACKED_MODE_ENFORCE) { profile->mode = APPARMOR_ENFORCE; - else if (tmp == PACKED_MODE_KILL) + } else if (tmp == PACKED_MODE_KILL) { profile->mode = APPARMOR_KILL; - else if (tmp == PACKED_MODE_UNCONFINED) + } else if (tmp == PACKED_MODE_UNCONFINED) { profile->mode = APPARMOR_UNCONFINED; - else + profile->label.flags |= FLAG_UNCONFINED; + } else if (tmp == PACKED_MODE_USER) { + profile->mode = APPARMOR_USER; + } else { goto fail; + } if (!unpack_u32(e, &tmp, NULL)) goto fail; if (tmp) @@ -773,11 +948,11 @@ profile->path_flags = PATH_MEDIATE_DELETED; info = "failed to unpack profile capabilities"; - if (!unpack_u32(e, &(profile->caps.allow.cap[0]), NULL)) + if (!unpack_u32(e, &(rules->caps.allow.cap[0]), NULL)) goto fail; - if (!unpack_u32(e, &(profile->caps.audit.cap[0]), NULL)) + if (!unpack_u32(e, &(rules->caps.audit.cap[0]), NULL)) goto fail; - if (!unpack_u32(e, &(profile->caps.quiet.cap[0]), NULL)) + if (!unpack_u32(e, &(rules->caps.quiet.cap[0]), NULL)) goto fail; if (!unpack_u32(e, &tmpcap.cap[0], NULL)) goto fail; @@ -785,11 +960,11 @@ info = "failed to unpack upper profile capabilities"; if (unpack_nameX(e, AA_STRUCT, "caps64")) { /* optional upper half of 64 bit caps */ - if (!unpack_u32(e, &(profile->caps.allow.cap[1]), NULL)) + if (!unpack_u32(e, &(rules->caps.allow.cap[1]), NULL)) goto fail; - if (!unpack_u32(e, &(profile->caps.audit.cap[1]), NULL)) + if (!unpack_u32(e, &(rules->caps.audit.cap[1]), NULL)) goto fail; - if (!unpack_u32(e, &(profile->caps.quiet.cap[1]), NULL)) + if (!unpack_u32(e, &(rules->caps.quiet.cap[1]), NULL)) goto fail; if (!unpack_u32(e, &(tmpcap.cap[1]), NULL)) goto fail; @@ -800,9 +975,9 @@ info = "failed to unpack extended profile capabilities"; if (unpack_nameX(e, AA_STRUCT, "capsx")) { /* optional extended caps mediation mask */ - if (!unpack_u32(e, &(profile->caps.extended.cap[0]), NULL)) + if (!unpack_u32(e, &(rules->caps.extended.cap[0]), NULL)) goto fail; - if (!unpack_u32(e, &(profile->caps.extended.cap[1]), NULL)) + if (!unpack_u32(e, &(rules->caps.extended.cap[1]), NULL)) goto fail; if (!unpack_nameX(e, AA_STRUCTEND, NULL)) goto fail; @@ -813,65 +988,93 @@ goto fail; } - if (!unpack_rlimits(e, profile)) { + if (!unpack_rlimits(e, rules)) { info = "failed to unpack profile rlimits"; goto fail; } - if (!unpack_secmark(e, profile)) { + if (!unpack_secmark(e, rules)) { info = "failed to unpack profile secmark rules"; goto fail; } + if (unpack_array(e, "net_allowed_af", &size) == TRI_TRUE || + VERSION_LT(e->version, v8)) { + u16 i; + + profile->net_compat = kzalloc(sizeof(struct aa_net_compat), GFP_KERNEL); + if (!profile->net_compat) { + info = "out of memory"; + goto fail; + } + for (i = 0; i < size; i++) { + /* discard extraneous rules that this kernel will + * never request + */ + if (i >= AF_MAX) { + u16 tmp; + + if (!unpack_u16(e, &tmp, NULL) || + !unpack_u16(e, &tmp, NULL) || + !unpack_u16(e, &tmp, NULL)) + goto fail; + continue; + } + if (!unpack_u16(e, &profile->net_compat->allow[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net_compat->audit[i], NULL)) + goto fail; + if (!unpack_u16(e, &profile->net_compat->quiet[i], NULL)) + goto fail; + } + if (size && !unpack_nameX(e, AA_ARRAYEND, NULL)) + goto fail; + if (VERSION_LT(e->version, v7)) { + /* pre v7 policy always allowed these */ + profile->net_compat->allow[AF_UNIX] = 0xffff; + profile->net_compat->allow[AF_NETLINK] = 0xffff; + } + } + + if (unpack_nameX(e, AA_STRUCT, "policydb")) { /* generic policy dfa - optional and may be NULL */ info = "failed to unpack policydb"; - profile->policy.dfa = unpack_dfa(e); - if (IS_ERR(profile->policy.dfa)) { - error = PTR_ERR(profile->policy.dfa); - profile->policy.dfa = NULL; - goto fail; - } else if (!profile->policy.dfa) { - error = -EPROTO; - goto fail; - } - if (!unpack_u32(e, &profile->policy.start[0], "start")) - /* default start state */ - profile->policy.start[0] = DFA_START; - /* setup class index */ - for (i = AA_CLASS_FILE; i <= AA_CLASS_LAST; i++) { - profile->policy.start[i] = - aa_dfa_next(profile->policy.dfa, - profile->policy.start[0], - i); - } + error = unpack_pdb(e, &rules->policy, true, false, + &info); + if (error) + goto fail; + /* Fixup: drop when we get rid of start array */ + if (aa_dfa_next(rules->policy.dfa, rules->policy.start[0], + AA_CLASS_FILE)) + rules->policy.start[AA_CLASS_FILE] = + aa_dfa_next(rules->policy.dfa, + rules->policy.start[0], + AA_CLASS_FILE); if (!unpack_nameX(e, AA_STRUCTEND, NULL)) goto fail; + if (aa_compat_map_policy(&rules->policy, e->version)) { + info = "failed to remap policydb permission table"; + goto fail; + } } else - profile->policy.dfa = aa_get_dfa(nulldfa); + rules->policy.dfa = aa_get_dfa(nulldfa); /* get file rules */ - profile->file.dfa = unpack_dfa(e); - if (IS_ERR(profile->file.dfa)) { - error = PTR_ERR(profile->file.dfa); - profile->file.dfa = NULL; - info = "failed to unpack profile file rules"; - goto fail; - } else if (profile->file.dfa) { - if (!unpack_u32(e, &profile->file.start, "dfa_start")) - /* default start state */ - profile->file.start = DFA_START; - } else if (profile->policy.dfa && - profile->policy.start[AA_CLASS_FILE]) { - profile->file.dfa = aa_get_dfa(profile->policy.dfa); - profile->file.start = profile->policy.start[AA_CLASS_FILE]; - } else - profile->file.dfa = aa_get_dfa(nulldfa); - - if (!unpack_trans_table(e, profile)) { - info = "failed to unpack profile transition table"; + error = unpack_pdb(e, &rules->file, false, true, &info); + if (error) { goto fail; - } + } else if (rules->file.dfa) { + if (aa_compat_map_file(&rules->file)) { + info = "failed to remap file permission table"; + goto fail; + } + } else if (rules->policy.dfa && + rules->policy.start[AA_CLASS_FILE]) { + rules->file.dfa = aa_get_dfa(rules->policy.dfa); + rules->file.start[AA_CLASS_FILE] = rules->policy.start[AA_CLASS_FILE]; + } else + rules->file.dfa = aa_get_dfa(nulldfa); if (unpack_nameX(e, AA_STRUCT, "data")) { info = "out of memory"; @@ -936,7 +1139,7 @@ } /** - * verify_head - unpack serialized stream header + * verify_header - unpack serialized stream header * @e: serialized data read head (NOT NULL) * @required: whether the header is required or optional * @ns: Returns - namespace if one is specified else NULL (NOT NULL) @@ -962,7 +1165,7 @@ * if not specified use previous version * Mask off everything that is not kernel abi version */ - if (VERSION_LT(e->version, v5) || VERSION_GT(e->version, v7)) { + if (VERSION_LT(e->version, v5) || VERSION_GT(e->version, v9)) { audit_iface(NULL, NULL, NULL, "unsupported interface version", e, error); return error; @@ -1003,11 +1206,51 @@ { int i; for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) { - if (!verify_xindex(dfa_user_xindex(dfa, i), table_size)) + if (!verify_xindex(ACCEPT_TABLE(dfa)[i], table_size)) return false; - if (!verify_xindex(dfa_other_xindex(dfa, i), table_size)) + } + return true; +} + +static bool verify_perm(struct aa_perms *perm) +{ + /* TODO: allow option to just force the perms into a valid state */ + if (perm->allow & perm->deny) + return false; + if (perm->subtree & ~perm->allow) + return false; + if (perm->cond & (perm->allow | perm->deny)) + return false; + if (perm->kill & perm->allow) + return false; + if (perm->complain & (perm->allow | perm->deny)) + return false; + if (perm->prompt & (perm->allow | perm->deny)) + return false; + if (perm->complain & perm->prompt) + return false; + if (perm->hide & perm->allow) + return false; + + return true; +} + +static bool verify_perms(struct aa_policydb *pdb) +{ + int i; + + for (i = 0; i < pdb->size; i++) { + if (!verify_perm(&pdb->perms[i])) + return false; + /* verify indexes into str table */ + if (pdb->perms[i].xindex >= pdb->trans.size) + return false; + if (pdb->perms[i].tag >= pdb->trans.size) + return false; + if (pdb->perms[i].label >= pdb->trans.size) return false; } + return true; } @@ -1016,14 +1259,38 @@ * @profile: profile to verify (NOT NULL) * * Returns: 0 if passes verification else error + * + * This verification is post any unpack mapping or changes */ static int verify_profile(struct aa_profile *profile) { - if (profile->file.dfa && - !verify_dfa_xindex(profile->file.dfa, - profile->file.trans.size)) { - audit_iface(profile, NULL, NULL, "Invalid named transition", - NULL, -EPROTO); + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + if (!rules) + return 0; + + if ((rules->file.dfa && !verify_dfa_xindex(rules->file.dfa, + rules->file.trans.size)) || + (rules->policy.dfa && + !verify_dfa_xindex(rules->policy.dfa, rules->policy.trans.size))) { + audit_iface(profile, NULL, NULL, + "Unpack: Invalid named transition", NULL, -EPROTO); + return -EPROTO; + } + + if (!verify_perms(&rules->file)) { + audit_iface(profile, NULL, NULL, + "Unpack: Invalid perm index", NULL, -EPROTO); + return -EPROTO; + } + if (!verify_perms(&rules->policy)) { + audit_iface(profile, NULL, NULL, + "Unpack: Invalid perm index", NULL, -EPROTO); + return -EPROTO; + } + if (!verify_perms(&profile->attach.xmatch)) { + audit_iface(profile, NULL, NULL, + "Unpack: Invalid perm index", NULL, -EPROTO); return -EPROTO; } @@ -1049,85 +1316,81 @@ return ent; } -static int deflate_compress(const char *src, size_t slen, char **dst, - size_t *dlen) +static int compress_zstd(const char *src, size_t slen, char **dst, size_t *dlen) { - int error; - struct z_stream_s strm; - void *stgbuf, *dstbuf; - size_t stglen = deflateBound(slen); - - memset(&strm, 0, sizeof(strm)); - - if (stglen < slen) - return -EFBIG; - - strm.workspace = kvzalloc(zlib_deflate_workspacesize(MAX_WBITS, - MAX_MEM_LEVEL), - GFP_KERNEL); - if (!strm.workspace) - return -ENOMEM; - - error = zlib_deflateInit(&strm, aa_g_rawdata_compression_level); - if (error != Z_OK) { - error = -ENOMEM; - goto fail_deflate_init; - } - - stgbuf = kvzalloc(stglen, GFP_KERNEL); - if (!stgbuf) { - error = -ENOMEM; - goto fail_stg_alloc; - } - - strm.next_in = src; - strm.avail_in = slen; - strm.next_out = stgbuf; - strm.avail_out = stglen; - - error = zlib_deflate(&strm, Z_FINISH); - if (error != Z_STREAM_END) { - error = -EINVAL; - goto fail_deflate; - } - error = 0; - - if (is_vmalloc_addr(stgbuf)) { - dstbuf = kvzalloc(strm.total_out, GFP_KERNEL); - if (dstbuf) { - memcpy(dstbuf, stgbuf, strm.total_out); - kvfree(stgbuf); +#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY + const zstd_parameters params = + zstd_get_params(aa_g_rawdata_compression_level, slen); + const size_t wksp_len = zstd_cctx_workspace_bound(¶ms.cParams); + void *wksp = NULL; + zstd_cctx *ctx = NULL; + size_t out_len = zstd_compress_bound(slen); + void *out = NULL; + int ret = 0; + + out = kvzalloc(out_len, GFP_KERNEL); + if (!out) { + ret = -ENOMEM; + goto cleanup; + } + + wksp = kvzalloc(wksp_len, GFP_KERNEL); + if (!wksp) { + ret = -ENOMEM; + goto cleanup; + } + + ctx = zstd_init_cctx(wksp, wksp_len); + if (!ctx) { + ret = -EINVAL; + goto cleanup; + } + + out_len = zstd_compress_cctx(ctx, out, out_len, src, slen, ¶ms); + if (zstd_is_error(out_len)) { + ret = -EINVAL; + goto cleanup; + } + + if (is_vmalloc_addr(out)) { + *dst = kvzalloc(out_len, GFP_KERNEL); + if (*dst) { + memcpy(*dst, out, out_len); + kvfree(out); + out = NULL; } - } else + } else { /* * If the staging buffer was kmalloc'd, then using krealloc is * probably going to be faster. The destination buffer will * always be smaller, so it's just shrunk, avoiding a memcpy */ - dstbuf = krealloc(stgbuf, strm.total_out, GFP_KERNEL); + *dst = krealloc(out, out_len, GFP_KERNEL); + } - if (!dstbuf) { - error = -ENOMEM; - goto fail_deflate; + if (!*dst) { + ret = -ENOMEM; + goto cleanup; } - *dst = dstbuf; - *dlen = strm.total_out; + *dlen = out_len; -fail_stg_alloc: - zlib_deflateEnd(&strm); -fail_deflate_init: - kvfree(strm.workspace); - return error; +cleanup: + if (ret) { + kvfree(out); + *dst = NULL; + } -fail_deflate: - kvfree(stgbuf); - goto fail_stg_alloc; + kvfree(wksp); + return ret; +#else + *dlen = slen; + return 0; +#endif } static int compress_loaddata(struct aa_loaddata *data) { - AA_BUG(data->compressed_size > 0); /* @@ -1136,12 +1399,13 @@ */ if (aa_g_rawdata_compression_level != 0) { void *udata = data->data; - int error = deflate_compress(udata, data->size, &data->data, - &data->compressed_size); + int error = compress_zstd(udata, data->size, &data->data, + &data->compressed_size); if (error) return error; - kvfree(udata); + if (udata != data->data) + kvfree(udata); } else data->compressed_size = data->size; @@ -1216,9 +1480,12 @@ goto fail; } } - error = compress_loaddata(udata); - if (error) - goto fail; + + if (aa_g_export_binary) { + error = compress_loaddata(udata); + if (error) + goto fail; + } return 0; fail_profile: --- linux-5.19.0.orig/security/apparmor/policy_unpack_test.c +++ linux-5.19.0/security/apparmor/policy_unpack_test.c @@ -48,8 +48,8 @@ size_t e_size; }; -struct aa_ext *build_aa_ext_struct(struct policy_unpack_fixture *puf, - struct kunit *test, size_t buf_size) +static struct aa_ext *build_aa_ext_struct(struct policy_unpack_fixture *puf, + struct kunit *test, size_t buf_size) { char *buf; struct aa_ext *e; @@ -144,8 +144,8 @@ puf->e->pos += TEST_ARRAY_BUF_OFFSET; - array_size = unpack_array(puf->e, NULL); - + KUNIT_EXPECT_EQ(test, unpack_array(puf->e, NULL, &array_size), + TRI_TRUE); KUNIT_EXPECT_EQ(test, array_size, (u16)TEST_ARRAY_SIZE); KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, puf->e->start + TEST_ARRAY_BUF_OFFSET + sizeof(u16) + 1); @@ -159,8 +159,8 @@ puf->e->pos += TEST_NAMED_ARRAY_BUF_OFFSET; - array_size = unpack_array(puf->e, name); - + KUNIT_EXPECT_EQ(test, unpack_array(puf->e, name, &array_size), + TRI_TRUE); KUNIT_EXPECT_EQ(test, array_size, (u16)TEST_ARRAY_SIZE); KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, puf->e->start + TEST_ARRAY_BUF_OFFSET + sizeof(u16) + 1); @@ -175,9 +175,9 @@ puf->e->pos += TEST_NAMED_ARRAY_BUF_OFFSET; puf->e->end = puf->e->start + TEST_ARRAY_BUF_OFFSET + sizeof(u16); - array_size = unpack_array(puf->e, name); - - KUNIT_EXPECT_EQ(test, array_size, (u16)0); + KUNIT_EXPECT_EQ(test, unpack_array(puf->e, name, &array_size), + TRI_TRUE); + KUNIT_EXPECT_EQ(test, array_size, 0); KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, puf->e->start + TEST_NAMED_ARRAY_BUF_OFFSET); } @@ -391,10 +391,10 @@ size = unpack_u16_chunk(puf->e, &chunk); - KUNIT_EXPECT_PTR_EQ(test, (void *)chunk, + KUNIT_EXPECT_PTR_EQ(test, chunk, puf->e->start + TEST_U16_OFFSET + 2); - KUNIT_EXPECT_EQ(test, size, (size_t)TEST_U16_DATA); - KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, (void *)(chunk + TEST_U16_DATA)); + KUNIT_EXPECT_EQ(test, size, TEST_U16_DATA); + KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, (chunk + TEST_U16_DATA)); } static void policy_unpack_test_unpack_u16_chunk_out_of_bounds_1( @@ -408,7 +408,7 @@ size = unpack_u16_chunk(puf->e, &chunk); - KUNIT_EXPECT_EQ(test, size, (size_t)0); + KUNIT_EXPECT_EQ(test, size, 0); KUNIT_EXPECT_NULL(test, chunk); KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, puf->e->end - 1); } @@ -430,7 +430,7 @@ size = unpack_u16_chunk(puf->e, &chunk); - KUNIT_EXPECT_EQ(test, size, (size_t)0); + KUNIT_EXPECT_EQ(test, size, 0); KUNIT_EXPECT_NULL(test, chunk); KUNIT_EXPECT_PTR_EQ(test, puf->e->pos, puf->e->start + TEST_U16_OFFSET); } @@ -439,7 +439,7 @@ { struct policy_unpack_fixture *puf = test->priv; bool success; - u32 data; + u32 data = 0; puf->e->pos += TEST_U32_BUF_OFFSET; @@ -456,7 +456,7 @@ struct policy_unpack_fixture *puf = test->priv; const char name[] = TEST_U32_NAME; bool success; - u32 data; + u32 data = 0; puf->e->pos += TEST_NAMED_U32_BUF_OFFSET; @@ -473,7 +473,7 @@ struct policy_unpack_fixture *puf = test->priv; const char name[] = TEST_U32_NAME; bool success; - u32 data; + u32 data = 0; puf->e->pos += TEST_NAMED_U32_BUF_OFFSET; puf->e->end = puf->e->start + TEST_U32_BUF_OFFSET + sizeof(u32); @@ -489,7 +489,7 @@ { struct policy_unpack_fixture *puf = test->priv; bool success; - u64 data; + u64 data = 0; puf->e->pos += TEST_U64_BUF_OFFSET; @@ -506,7 +506,7 @@ struct policy_unpack_fixture *puf = test->priv; const char name[] = TEST_U64_NAME; bool success; - u64 data; + u64 data = 0; puf->e->pos += TEST_NAMED_U64_BUF_OFFSET; @@ -523,7 +523,7 @@ struct policy_unpack_fixture *puf = test->priv; const char name[] = TEST_U64_NAME; bool success; - u64 data; + u64 data = 0; puf->e->pos += TEST_NAMED_U64_BUF_OFFSET; puf->e->end = puf->e->start + TEST_U64_BUF_OFFSET + sizeof(u64); --- linux-5.19.0.orig/security/apparmor/procattr.c +++ linux-5.19.0/security/apparmor/procattr.c @@ -20,6 +20,7 @@ * aa_getprocattr - Return the profile information for @profile * @profile: the profile to print profile info about (NOT NULL) * @string: Returns - string containing the profile info (NOT NULL) + * @newline: Should a newline be added to @string. * * Requires: profile != NULL * @@ -28,20 +29,21 @@ * * Returns: size of string placed in @string else error code on failure */ -int aa_getprocattr(struct aa_label *label, char **string) +int aa_getprocattr(struct aa_label *label, char **string, bool newline) { struct aa_ns *ns = labels_ns(label); struct aa_ns *current_ns = aa_get_current_ns(); + int flags = FLAG_VIEW_SUBNS | FLAG_HIDDEN_UNCONFINED; int len; if (!aa_ns_visible(current_ns, ns, true)) { aa_put_ns(current_ns); return -EACCES; } + if (newline) + flags |= FLAG_SHOW_MODE; - len = aa_label_snxprint(NULL, 0, current_ns, label, - FLAG_SHOW_MODE | FLAG_VIEW_SUBNS | - FLAG_HIDDEN_UNCONFINED); + len = aa_label_snxprint(NULL, 0, current_ns, label, flags); AA_BUG(len < 0); *string = kmalloc(len + 2, GFP_KERNEL); @@ -50,19 +52,19 @@ return -ENOMEM; } - len = aa_label_snxprint(*string, len + 2, current_ns, label, - FLAG_SHOW_MODE | FLAG_VIEW_SUBNS | - FLAG_HIDDEN_UNCONFINED); + len = aa_label_snxprint(*string, len + 2, current_ns, label, flags); if (len < 0) { aa_put_ns(current_ns); return len; } - (*string)[len] = '\n'; - (*string)[len + 1] = 0; + if (newline) { + (*string)[len] = '\n'; + (*string)[++len] = 0; + } aa_put_ns(current_ns); - return len + 1; + return len; } /** @@ -90,7 +92,7 @@ } /** - * aa_setprocattr_chagnehat - handle procattr interface to change_hat + * aa_setprocattr_changehat - handle procattr interface to change_hat * @args: args received from writing to /proc//attr/current (NOT NULL) * @size: size of the args * @flags: set of flags governing behavior --- linux-5.19.0.orig/security/apparmor/resource.c +++ linux-5.19.0/security/apparmor/resource.c @@ -53,7 +53,8 @@ unsigned long value, struct aa_label *peer, const char *info, int error) { - DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, OP_SETRLIMIT); + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_RLIMITS, + OP_SETRLIMIT); aad(&sa)->rlim.rlim = resource; aad(&sa)->rlim.max = value; @@ -81,10 +82,12 @@ static int profile_setrlimit(struct aa_profile *profile, unsigned int resource, struct rlimit *new_rlim) { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); int e = 0; - if (profile->rlimits.mask & (1 << resource) && new_rlim->rlim_max > - profile->rlimits.limits[resource].rlim_max) + if (rules->rlimits.mask & (1 << resource) && new_rlim->rlim_max > + rules->rlimits.limits[resource].rlim_max) e = -EACCES; return audit_resource(profile, resource, new_rlim->rlim_max, NULL, NULL, e); @@ -152,12 +155,15 @@ * to the lesser of the tasks hard limit and the init tasks soft limit */ label_for_each_confined(i, old_l, old) { - if (old->rlimits.mask) { + struct aa_ruleset *rules = list_first_entry(&old->rules, + typeof(*rules), + list); + if (rules->rlimits.mask) { int j; for (j = 0, mask = 1; j < RLIM_NLIMITS; j++, mask <<= 1) { - if (old->rlimits.mask & mask) { + if (rules->rlimits.mask & mask) { rlim = current->signal->rlim + j; initrlim = init_task.signal->rlim + j; rlim->rlim_cur = min(rlim->rlim_max, @@ -169,17 +175,20 @@ /* set any new hard limits as dictated by the new profile */ label_for_each_confined(i, new_l, new) { + struct aa_ruleset *rules = list_first_entry(&new->rules, + typeof(*rules), + list); int j; - if (!new->rlimits.mask) + if (!rules->rlimits.mask) continue; for (j = 0, mask = 1; j < RLIM_NLIMITS; j++, mask <<= 1) { - if (!(new->rlimits.mask & mask)) + if (!(rules->rlimits.mask & mask)) continue; rlim = current->signal->rlim + j; rlim->rlim_max = min(rlim->rlim_max, - new->rlimits.limits[j].rlim_max); + rules->rlimits.limits[j].rlim_max); /* soft limit should not exceed hard limit */ rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); } --- linux-5.19.0.orig/security/apparmor/secid.c +++ linux-5.19.0/security/apparmor/secid.c @@ -13,9 +13,9 @@ #include #include #include -#include #include #include +#include #include "include/cred.h" #include "include/lib.h" @@ -29,8 +29,9 @@ */ #define AA_FIRST_SECID 2 -static DEFINE_IDR(aa_secids); -static DEFINE_SPINLOCK(secid_lock); +static DEFINE_XARRAY_FLAGS(aa_secids, XA_FLAGS_LOCK_IRQ | XA_FLAGS_TRACK_FREE); + +int apparmor_display_secid_mode; /* * TODO: allow policy to reserve a secid range? @@ -47,9 +48,9 @@ { unsigned long flags; - spin_lock_irqsave(&secid_lock, flags); - idr_replace(&aa_secids, label, secid); - spin_unlock_irqrestore(&secid_lock, flags); + xa_lock_irqsave(&aa_secids, flags); + __xa_store(&aa_secids, secid, label, 0); + xa_unlock_irqrestore(&aa_secids, flags); } /** @@ -58,19 +59,14 @@ */ struct aa_label *aa_secid_to_label(u32 secid) { - struct aa_label *label; - - rcu_read_lock(); - label = idr_find(&aa_secids, secid); - rcu_read_unlock(); - - return label; + return xa_load(&aa_secids, secid); } int apparmor_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) { /* TODO: cache secctx and ref count so we don't have to recreate */ struct aa_label *label = aa_secid_to_label(secid); + int flags = FLAG_VIEW_SUBNS | FLAG_HIDDEN_UNCONFINED | FLAG_ABS_ROOT; int len; AA_BUG(!seclen); @@ -78,15 +74,15 @@ if (!label) return -EINVAL; + if (apparmor_display_secid_mode) + flags |= FLAG_SHOW_MODE; + if (secdata) len = aa_label_asxprint(secdata, root_ns, label, - FLAG_SHOW_MODE | FLAG_VIEW_SUBNS | - FLAG_HIDDEN_UNCONFINED | FLAG_ABS_ROOT, - GFP_ATOMIC); + flags, GFP_ATOMIC); else - len = aa_label_snxprint(NULL, 0, root_ns, label, - FLAG_SHOW_MODE | FLAG_VIEW_SUBNS | - FLAG_HIDDEN_UNCONFINED | FLAG_ABS_ROOT); + len = aa_label_snxprint(NULL, 0, root_ns, label, flags); + if (len < 0) return -ENOMEM; @@ -126,19 +122,16 @@ unsigned long flags; int ret; - idr_preload(gfp); - spin_lock_irqsave(&secid_lock, flags); - ret = idr_alloc(&aa_secids, label, AA_FIRST_SECID, 0, GFP_ATOMIC); - spin_unlock_irqrestore(&secid_lock, flags); - idr_preload_end(); + xa_lock_irqsave(&aa_secids, flags); + ret = __xa_alloc(&aa_secids, &label->secid, label, + XA_LIMIT(AA_FIRST_SECID, INT_MAX), gfp); + xa_unlock_irqrestore(&aa_secids, flags); if (ret < 0) { label->secid = AA_SECID_INVALID; return ret; } - AA_BUG(ret == AA_SECID_INVALID); - label->secid = ret; return 0; } @@ -150,12 +143,7 @@ { unsigned long flags; - spin_lock_irqsave(&secid_lock, flags); - idr_remove(&aa_secids, secid); - spin_unlock_irqrestore(&secid_lock, flags); -} - -void aa_secids_init(void) -{ - idr_init_base(&aa_secids, AA_FIRST_SECID); + xa_lock_irqsave(&aa_secids, flags); + __xa_erase(&aa_secids, secid); + xa_unlock_irqrestore(&aa_secids, flags); } --- linux-5.19.0.orig/security/apparmor/task.c +++ linux-5.19.0/security/apparmor/task.c @@ -12,7 +12,12 @@ * should return to the previous cred if it has not been modified. */ +#include +#include + +#include "include/audit.h" #include "include/cred.h" +#include "include/policy.h" #include "include/task.h" /** @@ -26,7 +31,7 @@ struct aa_label *p; rcu_read_lock(); - p = aa_get_newest_label(__aa_task_raw_label(task)); + p = aa_get_newest_cred_label(__task_cred(task)); rcu_read_unlock(); return p; @@ -177,3 +182,158 @@ return 0; } + +/** + * audit_ptrace_mask - convert mask to permission string + * @mask: permission mask to convert + * + * Returns: pointer to static string + */ +static const char *audit_ptrace_mask(u32 mask) +{ + switch (mask) { + case MAY_READ: + return "read"; + case MAY_WRITE: + return "trace"; + case AA_MAY_BE_READ: + return "readby"; + case AA_MAY_BE_TRACED: + return "tracedby"; + } + return ""; +} + +/* call back to audit ptrace fields */ +static void audit_ptrace_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + if (aad(sa)->request & AA_PTRACE_PERM_MASK) { + audit_log_format(ab, " requested_mask=\"%s\"", + audit_ptrace_mask(aad(sa)->request)); + + if (aad(sa)->denied & AA_PTRACE_PERM_MASK) { + audit_log_format(ab, " denied_mask=\"%s\"", + audit_ptrace_mask(aad(sa)->denied)); + } + } + audit_log_format(ab, " peer="); + aa_label_xaudit(ab, labels_ns(aad(sa)->label), aad(sa)->peer, + FLAGS_NONE, GFP_ATOMIC); +} + +/* assumes check for RULE_MEDIATES is already done */ +/* TODO: conditionals */ +static int profile_ptrace_perm(struct aa_profile *profile, + struct aa_label *peer, u32 request, + struct common_audit_data *sa) +{ + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), list); + struct aa_perms perms = { }; + + aad(sa)->peer = peer; + aa_profile_match_label(profile, rules, peer, AA_CLASS_PTRACE, request, + &perms); + aa_apply_modes_to_perms(profile, &perms); + return aa_check_perms(profile, &perms, request, sa, audit_ptrace_cb); +} + +static int profile_tracee_perm(struct aa_profile *tracee, + struct aa_label *tracer, u32 request, + struct common_audit_data *sa) +{ + if (profile_unconfined(tracee) || unconfined(tracer) || + !ANY_RULE_MEDIATES(&tracee->rules, AA_CLASS_PTRACE)) + return 0; + + return profile_ptrace_perm(tracee, tracer, request, sa); +} + +static int profile_tracer_perm(struct aa_profile *tracer, + struct aa_label *tracee, u32 request, + struct common_audit_data *sa) +{ + if (profile_unconfined(tracer)) + return 0; + + if (ANY_RULE_MEDIATES(&tracer->rules, AA_CLASS_PTRACE)) + return profile_ptrace_perm(tracer, tracee, request, sa); + + /* profile uses the old style capability check for ptrace */ + if (&tracer->label == tracee) + return 0; + + aad(sa)->label = &tracer->label; + aad(sa)->peer = tracee; + aad(sa)->request = 0; + aad(sa)->error = aa_capable(&tracer->label, CAP_SYS_PTRACE, + CAP_OPT_NONE); + + return aa_audit(AUDIT_APPARMOR_AUTO, tracer, sa, audit_ptrace_cb); +} + +/** + * aa_may_ptrace - test if tracer task can trace the tracee + * @tracer: label of the task doing the tracing (NOT NULL) + * @tracee: task label to be traced + * @request: permission request + * + * Returns: %0 else error code if permission denied or error + */ +int aa_may_ptrace(struct aa_label *tracer, struct aa_label *tracee, + u32 request) +{ + struct aa_profile *profile; + u32 xrequest = request << PTRACE_PERM_SHIFT; + DEFINE_AUDIT_DATA(sa, LSM_AUDIT_DATA_NONE, AA_CLASS_PTRACE, OP_PTRACE); + + return xcheck_labels(tracer, tracee, profile, + profile_tracer_perm(profile, tracee, request, &sa), + profile_tracee_perm(profile, tracer, xrequest, &sa)); +} + +/* call back to audit ptrace fields */ +static void audit_ns_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + if (aad(sa)->request & AA_USERNS_CREATE) + audit_log_format(ab, " requested=\"userns_create\""); + + if (aad(sa)->denied & AA_USERNS_CREATE) + audit_log_format(ab, " denied=\"userns_create\""); +} + +int aa_profile_ns_perm(struct aa_profile *profile, struct common_audit_data *sa, + u32 request) +{ + struct aa_perms perms = { }; + + aad(sa)->label = &profile->label; + aad(sa)->request = request; + + if (profile_unconfined(profile)) { + if (!unprivileged_userns_restricted || + ns_capable_noaudit(current_user_ns(), CAP_SYS_ADMIN)) + return 0; + + aad(sa)->info = "User namespace creation restricted"; + /* fall through to below allows complain mode to override */ + } else { + struct aa_ruleset *rules = list_first_entry(&profile->rules, + typeof(*rules), + list); + aa_state_t state; + + state = RULE_MEDIATES(rules, aad(sa)->class); + if (!state) + /* TODO: add flag to complain about unmediated */ + return 0; + perms = *aa_lookup_perms(&rules->policy, state); + } + + aa_apply_modes_to_perms(profile, &perms); + return aa_check_perms(profile, &perms, request, sa, audit_ns_cb); +} --- linux-5.19.0.orig/security/bpf/hooks.c +++ linux-5.19.0/security/bpf/hooks.c @@ -15,9 +15,19 @@ LSM_HOOK_INIT(task_free, bpf_task_storage_free), }; +/* + * slot has to be LSMBLOB_NEEDED because some of the hooks + * supplied by this module require a slot. + */ +struct lsm_id bpf_lsmid __lsm_ro_after_init = { + .lsm = "bpf", + .slot = LSMBLOB_NEEDED +}; + static int __init bpf_lsm_init(void) { - security_add_hooks(bpf_lsm_hooks, ARRAY_SIZE(bpf_lsm_hooks), "bpf"); + security_add_hooks(bpf_lsm_hooks, ARRAY_SIZE(bpf_lsm_hooks), + &bpf_lsmid); pr_info("LSM support for eBPF active\n"); return 0; } --- linux-5.19.0.orig/security/commoncap.c +++ linux-5.19.0/security/commoncap.c @@ -401,8 +401,10 @@ &tmpbuf, size, GFP_NOFS); dput(dentry); - if (ret < 0 || !tmpbuf) - return ret; + if (ret < 0 || !tmpbuf) { + size = ret; + goto out_free; + } fs_ns = inode->i_sb->s_user_ns; cap = (struct vfs_cap_data *) tmpbuf; @@ -1446,6 +1448,11 @@ #ifdef CONFIG_SECURITY +static struct lsm_id capability_lsmid __lsm_ro_after_init = { + .lsm = "capability", + .slot = LSMBLOB_NOT_NEEDED +}; + static struct security_hook_list capability_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(capable, cap_capable), LSM_HOOK_INIT(settime, cap_settime), @@ -1470,7 +1477,7 @@ static int __init capability_init(void) { security_add_hooks(capability_hooks, ARRAY_SIZE(capability_hooks), - "capability"); + &capability_lsmid); return 0; } --- linux-5.19.0.orig/security/integrity/digsig.c +++ linux-5.19.0/security/integrity/digsig.c @@ -126,6 +126,7 @@ { struct key_restriction *restriction; key_perm_t perm; + int ret; perm = (KEY_POS_ALL & ~KEY_POS_SETATTR) | KEY_USR_VIEW | KEY_USR_READ | KEY_USR_SEARCH; @@ -154,7 +155,10 @@ perm |= KEY_USR_WRITE; out: - return __integrity_init_keyring(id, perm, restriction); + ret = __integrity_init_keyring(id, perm, restriction); + if (ret) + kfree(restriction); + return ret; } static int __init integrity_add_key(const unsigned int id, const void *data, @@ -192,7 +196,7 @@ rc = kernel_read_file_from_path(path, 0, &data, INT_MAX, NULL, READING_X509_CERTIFICATE); if (rc < 0) { - pr_err("Unable to open file: %s (%d)", path, rc); + pr_warn("Unable to open file: %s (%d)", path, rc); return rc; } size = rc; --- linux-5.19.0.orig/security/integrity/ima/ima.h +++ linux-5.19.0/security/integrity/ima/ima.h @@ -255,7 +255,7 @@ /* LIM API function definitions */ int ima_get_action(struct user_namespace *mnt_userns, struct inode *inode, - const struct cred *cred, u32 secid, int mask, + const struct cred *cred, struct lsmblob *blob, int mask, enum ima_hooks func, int *pcr, struct ima_template_desc **template_desc, const char *func_data, unsigned int *allowed_algos); @@ -286,8 +286,8 @@ /* IMA policy related functions */ int ima_match_policy(struct user_namespace *mnt_userns, struct inode *inode, - const struct cred *cred, u32 secid, enum ima_hooks func, - int mask, int flags, int *pcr, + const struct cred *cred, struct lsmblob *blob, + enum ima_hooks func, int mask, int flags, int *pcr, struct ima_template_desc **template_desc, const char *func_data, unsigned int *allowed_algos); void ima_init_policy(void); @@ -418,32 +418,6 @@ } #endif /* CONFIG_IMA_APPRAISE_MODSIG */ -/* LSM based policy rules require audit */ -#ifdef CONFIG_IMA_LSM_RULES - -#define ima_filter_rule_init security_audit_rule_init -#define ima_filter_rule_free security_audit_rule_free -#define ima_filter_rule_match security_audit_rule_match - -#else - -static inline int ima_filter_rule_init(u32 field, u32 op, char *rulestr, - void **lsmrule) -{ - return -EINVAL; -} - -static inline void ima_filter_rule_free(void *lsmrule) -{ -} - -static inline int ima_filter_rule_match(u32 secid, u32 field, u32 op, - void *lsmrule) -{ - return -EINVAL; -} -#endif /* CONFIG_IMA_LSM_RULES */ - #ifdef CONFIG_IMA_READ_POLICY #define POLICY_FILE_FLAGS (S_IWUSR | S_IRUSR) #else --- linux-5.19.0.orig/security/integrity/ima/ima_api.c +++ linux-5.19.0/security/integrity/ima/ima_api.c @@ -166,7 +166,7 @@ * @mnt_userns: user namespace of the mount the inode was found from * @inode: pointer to the inode associated with the object being validated * @cred: pointer to credentials structure to validate - * @secid: secid of the task being validated + * @blob: secid(s) of the task being validated * @mask: contains the permission mask (MAY_READ, MAY_WRITE, MAY_EXEC, * MAY_APPEND) * @func: caller identifier @@ -187,7 +187,7 @@ * */ int ima_get_action(struct user_namespace *mnt_userns, struct inode *inode, - const struct cred *cred, u32 secid, int mask, + const struct cred *cred, struct lsmblob *blob, int mask, enum ima_hooks func, int *pcr, struct ima_template_desc **template_desc, const char *func_data, unsigned int *allowed_algos) @@ -196,7 +196,7 @@ flags &= ima_policy_flag; - return ima_match_policy(mnt_userns, inode, cred, secid, func, mask, + return ima_match_policy(mnt_userns, inode, cred, blob, func, mask, flags, pcr, template_desc, func_data, allowed_algos); } --- linux-5.19.0.orig/security/integrity/ima/ima_appraise.c +++ linux-5.19.0/security/integrity/ima/ima_appraise.c @@ -73,15 +73,16 @@ int ima_must_appraise(struct user_namespace *mnt_userns, struct inode *inode, int mask, enum ima_hooks func) { - u32 secid; + struct lsmblob blob; if (!ima_appraise) return 0; - security_current_getsecid_subj(&secid); - return ima_match_policy(mnt_userns, inode, current_cred(), secid, - func, mask, IMA_APPRAISE | IMA_HASH, NULL, - NULL, NULL, NULL); + security_current_getsecid_subj(&blob); + return ima_match_policy(mnt_userns, inode, current_cred(), + &blob, func, mask, + IMA_APPRAISE | IMA_HASH, NULL, NULL, NULL, + NULL); } static int ima_fix_xattr(struct dentry *dentry, @@ -750,22 +751,26 @@ const struct evm_ima_xattr_data *xvalue = xattr_value; int digsig = 0; int result; + int err; result = ima_protect_xattr(dentry, xattr_name, xattr_value, xattr_value_len); if (result == 1) { if (!xattr_value_len || (xvalue->type >= IMA_XATTR_LAST)) return -EINVAL; + + err = validate_hash_algo(dentry, xvalue, xattr_value_len); + if (err) + return err; + digsig = (xvalue->type == EVM_IMA_XATTR_DIGSIG); } else if (!strcmp(xattr_name, XATTR_NAME_EVM) && xattr_value_len > 0) { digsig = (xvalue->type == EVM_XATTR_PORTABLE_DIGSIG); } if (result == 1 || evm_revalidate_status(xattr_name)) { - result = validate_hash_algo(dentry, xvalue, xattr_value_len); - if (result) - return result; - ima_reset_appraise_flags(d_backing_inode(dentry), digsig); + if (result == 1) + result = 0; } return result; } --- linux-5.19.0.orig/security/integrity/ima/ima_fs.c +++ linux-5.19.0/security/integrity/ima/ima_fs.c @@ -287,7 +287,7 @@ rc = kernel_read_file_from_path(path, 0, &data, INT_MAX, NULL, READING_POLICY); if (rc < 0) { - pr_err("Unable to open file: %s (%d)", path, rc); + pr_warn("Unable to open file: %s (%d)", path, rc); return rc; } size = rc; --- linux-5.19.0.orig/security/integrity/ima/ima_main.c +++ linux-5.19.0/security/integrity/ima/ima_main.c @@ -199,8 +199,8 @@ } static int process_measurement(struct file *file, const struct cred *cred, - u32 secid, char *buf, loff_t size, int mask, - enum ima_hooks func) + struct lsmblob *blob, char *buf, loff_t size, + int mask, enum ima_hooks func) { struct inode *inode = file_inode(file); struct integrity_iint_cache *iint = NULL; @@ -224,7 +224,7 @@ * bitmask based on the appraise/audit/measurement policy. * Included is the appraise submask. */ - action = ima_get_action(file_mnt_user_ns(file), inode, cred, secid, + action = ima_get_action(file_mnt_user_ns(file), inode, cred, blob, mask, func, &pcr, &template_desc, NULL, &allowed_algos); violation_check = ((func == FILE_CHECK || func == MMAP_CHECK) && @@ -405,12 +405,13 @@ */ int ima_file_mmap(struct file *file, unsigned long prot) { - u32 secid; + struct lsmblob blob; if (file && (prot & PROT_EXEC)) { - security_current_getsecid_subj(&secid); - return process_measurement(file, current_cred(), secid, NULL, - 0, MAY_EXEC, MMAP_CHECK); + security_current_getsecid_subj(&blob); + return process_measurement(file, current_cred(), + &blob, NULL, 0, + MAY_EXEC, MMAP_CHECK); } return 0; @@ -437,9 +438,9 @@ char *pathbuf = NULL; const char *pathname = NULL; struct inode *inode; + struct lsmblob blob; int result = 0; int action; - u32 secid; int pcr; /* Is mprotect making an mmap'ed file executable? */ @@ -447,11 +448,12 @@ !(prot & PROT_EXEC) || (vma->vm_flags & VM_EXEC)) return 0; - security_current_getsecid_subj(&secid); + security_current_getsecid_subj(&blob); inode = file_inode(vma->vm_file); action = ima_get_action(file_mnt_user_ns(vma->vm_file), inode, - current_cred(), secid, MAY_EXEC, MMAP_CHECK, - &pcr, &template, NULL, NULL); + current_cred(), &blob, + MAY_EXEC, MMAP_CHECK, &pcr, &template, NULL, + NULL); /* Is the mmap'ed file in policy? */ if (!(action & (IMA_MEASURE | IMA_APPRAISE_SUBMASK))) @@ -486,16 +488,16 @@ int ima_bprm_check(struct linux_binprm *bprm) { int ret; - u32 secid; + struct lsmblob blob; - security_current_getsecid_subj(&secid); - ret = process_measurement(bprm->file, current_cred(), secid, NULL, 0, - MAY_EXEC, BPRM_CHECK); + security_current_getsecid_subj(&blob); + ret = process_measurement(bprm->file, current_cred(), + &blob, NULL, 0, MAY_EXEC, BPRM_CHECK); if (ret) return ret; - security_cred_getsecid(bprm->cred, &secid); - return process_measurement(bprm->file, bprm->cred, secid, NULL, 0, + security_cred_getsecid(bprm->cred, &blob); + return process_measurement(bprm->file, bprm->cred, &blob, NULL, 0, MAY_EXEC, CREDS_CHECK); } @@ -511,10 +513,10 @@ */ int ima_file_check(struct file *file, int mask) { - u32 secid; + struct lsmblob blob; - security_current_getsecid_subj(&secid); - return process_measurement(file, current_cred(), secid, NULL, 0, + security_current_getsecid_subj(&blob); + return process_measurement(file, current_cred(), &blob, NULL, 0, mask & (MAY_READ | MAY_WRITE | MAY_EXEC | MAY_APPEND), FILE_CHECK); } @@ -710,7 +712,7 @@ bool contents) { enum ima_hooks func; - u32 secid; + struct lsmblob blob; /* * Do devices using pre-allocated memory run the risk of the @@ -730,9 +732,9 @@ /* Read entire file for all partial reads. */ func = read_idmap[read_id] ?: FILE_CHECK; - security_current_getsecid_subj(&secid); - return process_measurement(file, current_cred(), secid, NULL, - 0, MAY_READ, func); + security_current_getsecid_subj(&blob); + return process_measurement(file, current_cred(), &blob, NULL, 0, + MAY_READ, func); } const int read_idmap[READING_MAX_ID] = { @@ -760,7 +762,7 @@ enum kernel_read_file_id read_id) { enum ima_hooks func; - u32 secid; + struct lsmblob blob; /* permit signed certs */ if (!file && read_id == READING_X509_CERTIFICATE) @@ -773,8 +775,8 @@ } func = read_idmap[read_id] ?: FILE_CHECK; - security_current_getsecid_subj(&secid); - return process_measurement(file, current_cred(), secid, buf, size, + security_current_getsecid_subj(&blob); + return process_measurement(file, current_cred(), &blob, buf, size, MAY_READ, func); } @@ -900,7 +902,7 @@ int digest_hash_len = hash_digest_size[ima_hash_algo]; int violation = 0; int action = 0; - u32 secid; + struct lsmblob blob; if (digest && digest_len < digest_hash_len) return -EINVAL; @@ -923,9 +925,9 @@ * buffer measurements. */ if (func) { - security_current_getsecid_subj(&secid); + security_current_getsecid_subj(&blob); action = ima_get_action(mnt_userns, inode, current_cred(), - secid, 0, func, &pcr, &template, + &blob, 0, func, &pcr, &template, func_data, NULL); if (!(action & IMA_MEASURE) && !digest) return -ENOENT; --- linux-5.19.0.orig/security/integrity/ima/ima_policy.c +++ linux-5.19.0/security/integrity/ima/ima_policy.c @@ -93,6 +93,8 @@ void *rule; /* LSM file metadata specific */ char *args_p; /* audit value */ int type; /* audit type */ + int rules_lsm; /* which LSM rule applies to */ + bool lsm_specific; /* true if lsm is specified */ } lsm[MAX_LSM_RULES]; char *fsname; struct ima_rule_opt_list *keyrings; /* Measure keys added to these keyrings */ @@ -285,6 +287,30 @@ } __setup("ima_appraise_tcb", default_appraise_policy_setup); +static int default_rules_lsm __ro_after_init = LSMBLOB_INVALID; + +static int __init ima_rules_lsm_init(char *str) +{ + const char *oldstr; + int newdrl; + + newdrl = lsm_name_to_slot(str); + if (newdrl >= 0) { + default_rules_lsm = newdrl; + return 1; + } + + oldstr = lsm_slot_to_name(default_rules_lsm); + if (oldstr) { + pr_err("default ima rule lsm \"%s\" not registered, continue using \"%s\"", + str, oldstr); + return 1; + } + + return 1; +} +__setup("ima_rules_lsm=", ima_rules_lsm_init); + static struct ima_rule_opt_list *ima_alloc_rule_opt_list(const substring_t *src) { struct ima_rule_opt_list *opt_list; @@ -356,7 +382,8 @@ int i; for (i = 0; i < MAX_LSM_RULES; i++) { - ima_filter_rule_free(entry->lsm[i].rule); + ima_filter_rule_free(entry->lsm[i].rule, + entry->lsm[i].rules_lsm); kfree(entry->lsm[i].args_p); } } @@ -407,7 +434,8 @@ ima_filter_rule_init(nentry->lsm[i].type, Audit_equal, nentry->lsm[i].args_p, - &nentry->lsm[i].rule); + &nentry->lsm[i].rule, + entry->lsm[i].rules_lsm); if (!nentry->lsm[i].rule) pr_warn("rule for LSM \'%s\' is undefined\n", nentry->lsm[i].args_p); @@ -535,7 +563,7 @@ * @mnt_userns: user namespace of the mount the inode was found from * @inode: a pointer to an inode * @cred: a pointer to a credentials structure for user validation - * @secid: the secid of the task to be validated + * @blob: the secid(s) of the task to be validated * @func: LIM hook identifier * @mask: requested action (MAY_READ | MAY_WRITE | MAY_APPEND | MAY_EXEC) * @func_data: func specific data, may be NULL @@ -545,7 +573,7 @@ static bool ima_match_rules(struct ima_rule_entry *rule, struct user_namespace *mnt_userns, struct inode *inode, const struct cred *cred, - u32 secid, enum ima_hooks func, int mask, + struct lsmblob *blob, enum ima_hooks func, int mask, const char *func_data) { int i; @@ -608,7 +636,7 @@ return false; for (i = 0; i < MAX_LSM_RULES; i++) { int rc = 0; - u32 osid; + struct lsmblob lsmdata; if (!rule->lsm[i].rule) { if (!rule->lsm[i].args_p) @@ -620,17 +648,21 @@ case LSM_OBJ_USER: case LSM_OBJ_ROLE: case LSM_OBJ_TYPE: - security_inode_getsecid(inode, &osid); - rc = ima_filter_rule_match(osid, rule->lsm[i].type, + security_inode_getsecid(inode, &lsmdata); + rc = ima_filter_rule_match(&lsmdata, + rule->lsm[i].type, Audit_equal, - rule->lsm[i].rule); + rule->lsm[i].rule, + rule->lsm[i].rules_lsm); break; case LSM_SUBJ_USER: case LSM_SUBJ_ROLE: case LSM_SUBJ_TYPE: - rc = ima_filter_rule_match(secid, rule->lsm[i].type, + rc = ima_filter_rule_match(blob, + rule->lsm[i].type, Audit_equal, - rule->lsm[i].rule); + rule->lsm[i].rule, + rule->lsm[i].rules_lsm); break; default: break; @@ -672,7 +704,7 @@ * @inode: pointer to an inode for which the policy decision is being made * @cred: pointer to a credentials structure for which the policy decision is * being made - * @secid: LSM secid of the task to be validated + * @blob: LSM secid(s) of the task to be validated * @func: IMA hook identifier * @mask: requested action (MAY_READ | MAY_WRITE | MAY_APPEND | MAY_EXEC) * @pcr: set the pcr to extend @@ -688,8 +720,8 @@ * than writes so ima_match_policy() is classical RCU candidate. */ int ima_match_policy(struct user_namespace *mnt_userns, struct inode *inode, - const struct cred *cred, u32 secid, enum ima_hooks func, - int mask, int flags, int *pcr, + const struct cred *cred, struct lsmblob *blob, + enum ima_hooks func, int mask, int flags, int *pcr, struct ima_template_desc **template_desc, const char *func_data, unsigned int *allowed_algos) { @@ -707,7 +739,7 @@ if (!(entry->action & actmask)) continue; - if (!ima_match_rules(entry, mnt_userns, inode, cred, secid, + if (!ima_match_rules(entry, mnt_userns, inode, cred, blob, func, mask, func_data)) continue; @@ -1026,7 +1058,7 @@ Opt_digest_type, Opt_appraise_type, Opt_appraise_flag, Opt_appraise_algos, Opt_permit_directio, Opt_pcr, Opt_template, Opt_keyrings, - Opt_label, Opt_err + Opt_lsm, Opt_label, Opt_err }; static const match_table_t policy_tokens = { @@ -1074,6 +1106,7 @@ {Opt_pcr, "pcr=%s"}, {Opt_template, "template=%s"}, {Opt_keyrings, "keyrings=%s"}, + {Opt_lsm, "lsm=%s"}, {Opt_label, "label=%s"}, {Opt_err, NULL} }; @@ -1093,7 +1126,8 @@ entry->lsm[lsm_rule].type = audit_type; result = ima_filter_rule_init(entry->lsm[lsm_rule].type, Audit_equal, entry->lsm[lsm_rule].args_p, - &entry->lsm[lsm_rule].rule); + &entry->lsm[lsm_rule].rule, + entry->lsm[lsm_rule].rules_lsm); if (!entry->lsm[lsm_rule].rule) { pr_warn("rule for LSM \'%s\' is undefined\n", entry->lsm[lsm_rule].args_p); @@ -1833,6 +1867,23 @@ &(template_desc->num_fields)); entry->template = template_desc; break; + case Opt_lsm: { + int i; + + result = lsm_name_to_slot(args[0].from); + if (result < 0) { + for (i = 0; i < MAX_LSM_RULES; i++) + entry->lsm[i].args_p = NULL; + result = -EINVAL; + break; + } + for (i = 0; i < MAX_LSM_RULES; i++) { + entry->lsm[i].rules_lsm = result; + entry->lsm[i].lsm_specific = true; + } + result = 0; + break; + } case Opt_err: ima_log_string(ab, "UNKNOWN", p); result = -EINVAL; @@ -1878,6 +1929,7 @@ struct ima_rule_entry *entry; ssize_t result, len; int audit_info = 0; + int i; p = strsep(&rule, "\n"); len = strlen(p) + 1; @@ -1895,6 +1947,11 @@ INIT_LIST_HEAD(&entry->list); + for (i = 0; i < MAX_LSM_RULES; i++) { + entry->lsm[i].rules_lsm = default_rules_lsm; + entry->lsm[i].lsm_specific = false; + } + result = ima_parse_rule(p, entry); if (result) { ima_free_rule(entry); @@ -2205,6 +2262,9 @@ entry->lsm[i].args_p); break; } + if (entry->lsm[i].lsm_specific) + seq_printf(m, pt(Opt_lsm), + lsm_slot_to_name(entry->lsm[i].rules_lsm)); seq_puts(m, " "); } } --- linux-5.19.0.orig/security/integrity/ima/ima_template.c +++ linux-5.19.0/security/integrity/ima/ima_template.c @@ -245,11 +245,11 @@ } if (fields && num_fields) { - *fields = kmalloc_array(i, sizeof(*fields), GFP_KERNEL); + *fields = kmalloc_array(i, sizeof(**fields), GFP_KERNEL); if (*fields == NULL) return -ENOMEM; - memcpy(*fields, found_fields, i * sizeof(*fields)); + memcpy(*fields, found_fields, i * sizeof(**fields)); *num_fields = i; } --- linux-5.19.0.orig/security/integrity/platform_certs/keyring_handler.c +++ linux-5.19.0/security/integrity/platform_certs/keyring_handler.c @@ -40,6 +40,7 @@ static __init void uefi_revocation_list_x509(const char *source, const void *data, size_t len) { + pr_info("Revoking X.509 certificate: %s\n", source); add_key_to_revocation_list(data, len); } --- linux-5.19.0.orig/security/integrity/platform_certs/load_uefi.c +++ linux-5.19.0/security/integrity/platform_certs/load_uefi.c @@ -31,7 +31,7 @@ { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "MacBookAir8,1") }, { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "MacBookAir8,2") }, { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "MacBookAir9,1") }, - { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "MacMini8,1") }, + { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "Macmini8,1") }, { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "MacPro7,1") }, { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "iMac20,1") }, { UEFI_QUIRK_SKIP_CERT("Apple Inc.", "iMac20,2") }, @@ -73,7 +73,8 @@ return NULL; if (*status != EFI_BUFFER_TOO_SMALL) { - pr_err("Couldn't get size: 0x%lx\n", *status); + pr_err("Couldn't get size: %s (0x%lx)\n", + efi_status_to_str(*status), *status); return NULL; } @@ -84,7 +85,8 @@ *status = efi.get_variable(name, guid, NULL, &lsize, db); if (*status != EFI_SUCCESS) { kfree(db); - pr_err("Error reading db var: 0x%lx\n", *status); + pr_err("Error reading db var: %s (0x%lx)\n", + efi_status_to_str(*status), *status); return NULL; } @@ -93,17 +95,18 @@ } /* - * load_moklist_certs() - Load MokList certs + * load_moklist_certs() - Load Mok(X)List certs + * @load_db: Load MokListRT into db when true; MokListXRT into dbx when false * - * Load the certs contained in the UEFI MokListRT database into the - * platform trusted keyring. + * Load the certs contained in the UEFI MokList(X)RT database into the + * platform trusted/denied keyring. * * This routine checks the EFI MOK config table first. If and only if - * that fails, this routine uses the MokListRT ordinary UEFI variable. + * that fails, this routine uses the MokList(X)RT ordinary UEFI variable. * * Return: Status */ -static int __init load_moklist_certs(void) +static int __init load_moklist_certs(const bool load_db) { struct efi_mokvar_table_entry *mokvar_entry; efi_guid_t mok_var = EFI_SHIM_LOCK_GUID; @@ -111,41 +114,55 @@ unsigned long moksize; efi_status_t status; int rc; + const char *mokvar_name = "MokListRT"; + /* Should be const, but get_cert_list() doesn't have it as const yet */ + efi_char16_t *efivar_name = L"MokListRT"; + const char *parse_mokvar_name = "UEFI:MokListRT (MOKvar table)"; + const char *parse_efivar_name = "UEFI:MokListRT"; + efi_element_handler_t (*get_handler_for_guid)(const efi_guid_t *) = get_handler_for_db; + + if (!load_db) { + mokvar_name = "MokListXRT"; + efivar_name = L"MokListXRT"; + parse_mokvar_name = "UEFI:MokListXRT (MOKvar table)"; + parse_efivar_name = "UEFI:MokListXRT"; + get_handler_for_guid = get_handler_for_dbx; + } /* First try to load certs from the EFI MOKvar config table. * It's not an error if the MOKvar config table doesn't exist * or the MokListRT entry is not found in it. */ - mokvar_entry = efi_mokvar_entry_find("MokListRT"); + mokvar_entry = efi_mokvar_entry_find(mokvar_name); if (mokvar_entry) { - rc = parse_efi_signature_list("UEFI:MokListRT (MOKvar table)", + rc = parse_efi_signature_list(parse_mokvar_name, mokvar_entry->data, mokvar_entry->data_size, - get_handler_for_mok); + get_handler_for_guid); /* All done if that worked. */ if (!rc) return rc; - pr_err("Couldn't parse MokListRT signatures from EFI MOKvar config table: %d\n", - rc); + pr_err("Couldn't parse %s signatures from EFI MOKvar config table: %d\n", + mokvar_name, rc); } /* Get MokListRT. It might not exist, so it isn't an error * if we can't get it. */ - mok = get_cert_list(L"MokListRT", &mok_var, &moksize, &status); + mok = get_cert_list(efivar_name, &mok_var, &moksize, &status); if (mok) { - rc = parse_efi_signature_list("UEFI:MokListRT", - mok, moksize, get_handler_for_mok); + rc = parse_efi_signature_list(parse_efivar_name, + mok, moksize, get_handler_for_guid); kfree(mok); if (rc) - pr_err("Couldn't parse MokListRT signatures: %d\n", rc); + pr_err("Couldn't parse %s signatures: %d\n", mokvar_name, rc); return rc; } if (status == EFI_NOT_FOUND) - pr_debug("MokListRT variable wasn't found\n"); + pr_debug("%s variable wasn't found\n", mokvar_name); else - pr_info("Couldn't get UEFI MokListRT\n"); + pr_info("Couldn't get UEFI %s\n", mokvar_name); return 0; } @@ -159,9 +176,8 @@ static int __init load_uefi_certs(void) { efi_guid_t secure_var = EFI_IMAGE_SECURITY_DATABASE_GUID; - efi_guid_t mok_var = EFI_SHIM_LOCK_GUID; - void *db = NULL, *dbx = NULL, *mokx = NULL; - unsigned long dbsize = 0, dbxsize = 0, mokxsize = 0; + void *db = NULL, *dbx = NULL; + unsigned long dbsize = 0, dbxsize = 0; efi_status_t status; int rc = 0; const struct dmi_system_id *dmi_id; @@ -214,23 +230,15 @@ if (!arch_ima_get_secureboot()) return 0; - mokx = get_cert_list(L"MokListXRT", &mok_var, &mokxsize, &status); - if (!mokx) { - if (status == EFI_NOT_FOUND) - pr_debug("mokx variable wasn't found\n"); - else - pr_info("Couldn't get mokx list\n"); - } else { - rc = parse_efi_signature_list("UEFI:MokListXRT", - mokx, mokxsize, - get_handler_for_dbx); - if (rc) - pr_err("Couldn't parse mokx signatures %d\n", rc); - kfree(mokx); - } + /* Load the MokListXRT certs */ + rc = load_moklist_certs(false); + if (rc) + pr_err("Couldn't parse mokx signatures: %d\n", rc); /* Load the MokListRT certs */ - rc = load_moklist_certs(); + rc = load_moklist_certs(true); + if (rc) + pr_err("Couldn't parse mok signatures: %d\n", rc); return rc; } --- linux-5.19.0.orig/security/keys/encrypted-keys/encrypted.c +++ linux-5.19.0/security/keys/encrypted-keys/encrypted.c @@ -627,7 +627,7 @@ pr_err("encrypted key: instantiation of keys using provided decrypted data is disabled since CONFIG_USER_DECRYPTED_DATA is set to false\n"); return ERR_PTR(-EINVAL); } - if (strlen(decrypted_data) != decrypted_datalen) { + if (strlen(decrypted_data) != decrypted_datalen * 2) { pr_err("encrypted key: decrypted data provided does not match decrypted data length provided\n"); return ERR_PTR(-EINVAL); } @@ -791,8 +791,8 @@ ret = encrypted_key_decrypt(epayload, format, hex_encoded_iv); } else if (decrypted_data) { get_random_bytes(epayload->iv, ivsize); - memcpy(epayload->decrypted_data, decrypted_data, - epayload->decrypted_datalen); + ret = hex2bin(epayload->decrypted_data, decrypted_data, + epayload->decrypted_datalen); } else { get_random_bytes(epayload->iv, ivsize); get_random_bytes(epayload->decrypted_data, epayload->decrypted_datalen); --- linux-5.19.0.orig/security/landlock/cred.c +++ linux-5.19.0/security/landlock/cred.c @@ -42,5 +42,5 @@ __init void landlock_add_cred_hooks(void) { security_add_hooks(landlock_hooks, ARRAY_SIZE(landlock_hooks), - LANDLOCK_NAME); + &landlock_lsmid); } --- linux-5.19.0.orig/security/landlock/fs.c +++ linux-5.19.0/security/landlock/fs.c @@ -150,6 +150,16 @@ /* clang-format on */ /* + * All access rights that are denied by default whether they are handled or not + * by a ruleset/layer. This must be ORed with all ruleset->fs_access_masks[] + * entries when we need to get the absolute handled access masks. + */ +/* clang-format off */ +#define ACCESS_INITIALLY_DENIED ( \ + LANDLOCK_ACCESS_FS_REFER) +/* clang-format on */ + +/* * @path: Should have been checked by get_path_from_fd(). */ int landlock_append_fs_rule(struct landlock_ruleset *const ruleset, @@ -167,7 +177,9 @@ return -EINVAL; /* Transforms relative access rights to absolute ones. */ - access_rights |= LANDLOCK_MASK_ACCESS_FS & ~ruleset->fs_access_masks[0]; + access_rights |= + LANDLOCK_MASK_ACCESS_FS & + ~(ruleset->fs_access_masks[0] | ACCESS_INITIALLY_DENIED); object = get_inode_object(d_backing_inode(path->dentry)); if (IS_ERR(object)) return PTR_ERR(object); @@ -277,23 +289,12 @@ static inline access_mask_t get_handled_accesses(const struct landlock_ruleset *const domain) { - access_mask_t access_dom = 0; - unsigned long access_bit; - - for (access_bit = 0; access_bit < LANDLOCK_NUM_ACCESS_FS; - access_bit++) { - size_t layer_level; + access_mask_t access_dom = ACCESS_INITIALLY_DENIED; + size_t layer_level; - for (layer_level = 0; layer_level < domain->num_layers; - layer_level++) { - if (domain->fs_access_masks[layer_level] & - BIT_ULL(access_bit)) { - access_dom |= BIT_ULL(access_bit); - break; - } - } - } - return access_dom; + for (layer_level = 0; layer_level < domain->num_layers; layer_level++) + access_dom |= domain->fs_access_masks[layer_level]; + return access_dom & LANDLOCK_MASK_ACCESS_FS; } static inline access_mask_t @@ -316,8 +317,13 @@ for_each_set_bit(access_bit, &access_req, ARRAY_SIZE(*layer_masks)) { - if (domain->fs_access_masks[layer_level] & - BIT_ULL(access_bit)) { + /* + * Artificially handles all initially denied by default + * access rights. + */ + if (BIT_ULL(access_bit) & + (domain->fs_access_masks[layer_level] | + ACCESS_INITIALLY_DENIED)) { (*layer_masks)[access_bit] |= BIT_ULL(layer_level); handled_accesses |= BIT_ULL(access_bit); @@ -857,10 +863,6 @@ NULL, NULL); } - /* Backward compatibility: no reparenting support. */ - if (!(get_handled_accesses(dom) & LANDLOCK_ACCESS_FS_REFER)) - return -EXDEV; - access_request_parent1 |= LANDLOCK_ACCESS_FS_REFER; access_request_parent2 |= LANDLOCK_ACCESS_FS_REFER; @@ -1199,5 +1201,5 @@ __init void landlock_add_fs_hooks(void) { security_add_hooks(landlock_hooks, ARRAY_SIZE(landlock_hooks), - LANDLOCK_NAME); + &landlock_lsmid); } --- linux-5.19.0.orig/security/landlock/ptrace.c +++ linux-5.19.0/security/landlock/ptrace.c @@ -116,5 +116,5 @@ __init void landlock_add_ptrace_hooks(void) { security_add_hooks(landlock_hooks, ARRAY_SIZE(landlock_hooks), - LANDLOCK_NAME); + &landlock_lsmid); } --- linux-5.19.0.orig/security/landlock/setup.c +++ linux-5.19.0/security/landlock/setup.c @@ -23,6 +23,11 @@ .lbs_superblock = sizeof(struct landlock_superblock_security), }; +struct lsm_id landlock_lsmid __lsm_ro_after_init = { + .lsm = LANDLOCK_NAME, + .slot = LSMBLOB_NOT_NEEDED, +}; + static int __init landlock_init(void) { landlock_add_cred_hooks(); --- linux-5.19.0.orig/security/landlock/setup.h +++ linux-5.19.0/security/landlock/setup.h @@ -14,5 +14,6 @@ extern bool landlock_initialized; extern struct lsm_blob_sizes landlock_blob_sizes; +extern struct lsm_id landlock_lsmid; #endif /* _SECURITY_LANDLOCK_SETUP_H */ --- linux-5.19.0.orig/security/loadpin/loadpin.c +++ linux-5.19.0/security/loadpin/loadpin.c @@ -115,21 +115,11 @@ } } -static int loadpin_read_file(struct file *file, enum kernel_read_file_id id, - bool contents) +static int loadpin_check(struct file *file, enum kernel_read_file_id id) { struct super_block *load_root; const char *origin = kernel_read_file_id_str(id); - /* - * If we will not know that we'll be seeing the full contents - * then we cannot trust a load will be complete and unchanged - * off disk. Treat all contents=false hooks as if there were - * no associated file struct. - */ - if (!contents) - file = NULL; - /* If the file id is excluded, ignore the pinning. */ if ((unsigned int)id < ARRAY_SIZE(ignore_read_file_id) && ignore_read_file_id[id]) { @@ -184,11 +174,32 @@ return 0; } +static int loadpin_read_file(struct file *file, enum kernel_read_file_id id, + bool contents) +{ + /* + * LoadPin only cares about the _origin_ of a file, not its + * contents, so we can ignore the "are full contents available" + * argument here. + */ + return loadpin_check(file, id); +} + static int loadpin_load_data(enum kernel_load_data_id id, bool contents) { - return loadpin_read_file(NULL, (enum kernel_read_file_id) id, contents); + /* + * LoadPin only cares about the _origin_ of a file, not its + * contents, so a NULL file is passed, and we can ignore the + * state of "contents". + */ + return loadpin_check(NULL, (enum kernel_read_file_id) id); } +static struct lsm_id loadpin_lsmid __lsm_ro_after_init = { + .lsm = "loadpin", + .slot = LSMBLOB_NOT_NEEDED +}; + static struct security_hook_list loadpin_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(sb_free_security, loadpin_sb_free_security), LSM_HOOK_INIT(kernel_read_file, loadpin_read_file), @@ -236,7 +247,8 @@ pr_info("ready to pin (currently %senforcing)\n", enforce ? "" : "not "); parse_exclude(); - security_add_hooks(loadpin_hooks, ARRAY_SIZE(loadpin_hooks), "loadpin"); + security_add_hooks(loadpin_hooks, ARRAY_SIZE(loadpin_hooks), + &loadpin_lsmid); return 0; } --- linux-5.19.0.orig/security/lockdown/Kconfig +++ linux-5.19.0/security/lockdown/Kconfig @@ -16,6 +16,19 @@ subsystem is fully initialised. If enabled, lockdown will unconditionally be called before any other LSMs. +config LOCK_DOWN_IN_SECURE_BOOT + bool "Lock down the kernel in Secure Boot mode" + default n + depends on (EFI || S390 || PPC) && SECURITY_LOCKDOWN_LSM_EARLY + help + Secure Boot provides a mechanism for ensuring that the firmware will + only load signed bootloaders and kernels. Secure boot mode + determination is platform-specific; examples include EFI secure boot + and SIPL on s390. + + Enabling this option results in kernel lockdown being triggered if + booted under secure boot. + choice prompt "Kernel default lockdown mode" default LOCK_DOWN_KERNEL_FORCE_NONE --- linux-5.19.0.orig/security/lockdown/lockdown.c +++ linux-5.19.0/security/lockdown/lockdown.c @@ -73,6 +73,12 @@ static struct security_hook_list lockdown_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(locked_down, lockdown_is_locked_down), + LSM_HOOK_INIT(lock_kernel_down, lock_kernel_down), +}; + +static struct lsm_id lockdown_lsmid __lsm_ro_after_init = { + .lsm = "lockdown", + .slot = LSMBLOB_NOT_NEEDED }; static int __init lockdown_lsm_init(void) @@ -83,7 +89,7 @@ lock_kernel_down("Kernel configuration", LOCKDOWN_CONFIDENTIALITY_MAX); #endif security_add_hooks(lockdown_hooks, ARRAY_SIZE(lockdown_hooks), - "lockdown"); + &lockdown_lsmid); return 0; } --- linux-5.19.0.orig/security/safesetid/lsm.c +++ linux-5.19.0/security/safesetid/lsm.c @@ -241,6 +241,11 @@ return -EACCES; } +static struct lsm_id safesetid_lsmid __lsm_ro_after_init = { + .lsm = "safesetid", + .slot = LSMBLOB_NOT_NEEDED +}; + static struct security_hook_list safesetid_security_hooks[] = { LSM_HOOK_INIT(task_fix_setuid, safesetid_task_fix_setuid), LSM_HOOK_INIT(task_fix_setgid, safesetid_task_fix_setgid), @@ -250,7 +255,8 @@ static int __init safesetid_security_init(void) { security_add_hooks(safesetid_security_hooks, - ARRAY_SIZE(safesetid_security_hooks), "safesetid"); + ARRAY_SIZE(safesetid_security_hooks), + &safesetid_lsmid); /* Report that SafeSetID successfully initialized */ safesetid_initialized = 1; --- linux-5.19.0.orig/security/security.c +++ linux-5.19.0/security/security.c @@ -29,6 +29,7 @@ #include #include #include +#include #define MAX_LSM_EVM_XATTR 2 @@ -79,7 +80,16 @@ static struct kmem_cache *lsm_inode_cache; char *lsm_names; -static struct lsm_blob_sizes blob_sizes __lsm_ro_after_init; + +/* + * The task blob includes the "interface_lsm" slot used for + * chosing which module presents contexts. + * Using a long to avoid potential alignment issues with + * module assigned task blobs. + */ +static struct lsm_blob_sizes blob_sizes __lsm_ro_after_init = { + .lbs_task = sizeof(long), +}; /* Boot-time LSM user choice */ static __initdata const char *chosen_lsm_order; @@ -206,6 +216,7 @@ lsm_set_blob_size(&needed->lbs_inode, &blob_sizes.lbs_inode); lsm_set_blob_size(&needed->lbs_ipc, &blob_sizes.lbs_ipc); lsm_set_blob_size(&needed->lbs_msg_msg, &blob_sizes.lbs_msg_msg); + lsm_set_blob_size(&needed->lbs_sock, &blob_sizes.lbs_sock); lsm_set_blob_size(&needed->lbs_superblock, &blob_sizes.lbs_superblock); lsm_set_blob_size(&needed->lbs_task, &blob_sizes.lbs_task); } @@ -342,8 +353,10 @@ init_debug("inode blob size = %d\n", blob_sizes.lbs_inode); init_debug("ipc blob size = %d\n", blob_sizes.lbs_ipc); init_debug("msg_msg blob size = %d\n", blob_sizes.lbs_msg_msg); + init_debug("sock blob size = %d\n", blob_sizes.lbs_sock); init_debug("superblock blob size = %d\n", blob_sizes.lbs_superblock); init_debug("task blob size = %d\n", blob_sizes.lbs_task); + init_debug("lsmblob size = %zu\n", sizeof(struct lsmblob)); /* * Create any kmem_caches needed for blobs @@ -470,21 +483,88 @@ return 0; } +/* + * Current index to use while initializing the lsmblob secid list. + */ +static int lsm_slot __lsm_ro_after_init; + +#if LSMBLOB_ENTRIES > 0 +static struct lsm_id *lsm_slotlist[LSMBLOB_ENTRIES] __lsm_ro_after_init; + +/** + * lsm_name_to_slot - Report the slot number for a security module + * @name: name of the security module + * + * Look up the slot number for the named security module. + * Returns the slot number or LSMBLOB_INVALID if @name is not + * a registered security module name. + */ +int lsm_name_to_slot(char *name) +{ + int i; + + for (i = 0; i < lsm_slot; i++) + if (strcmp(lsm_slotlist[i]->lsm, name) == 0) + return i; + + return LSMBLOB_INVALID; +} + +/** + * lsm_slot_to_name - Get the name of the security module in a slot + * @slot: index into the interface LSM slot list. + * + * Provide the name of the security module associated with + * a interface LSM slot. + * + * If @slot is LSMBLOB_INVALID return the value + * for slot 0 if it has been set, otherwise NULL. + * + * Returns a pointer to the name string or NULL. + */ +const char *lsm_slot_to_name(int slot) +{ + if (slot == LSMBLOB_INVALID) + slot = 0; + else if (slot >= LSMBLOB_ENTRIES || slot < 0) + return NULL; + + if (lsm_slotlist[slot] == NULL) + return NULL; + return lsm_slotlist[slot]->lsm; +} +#endif /* LSMBLOB_ENTRIES > 0 */ + /** * security_add_hooks - Add a modules hooks to the hook lists. * @hooks: the hooks to add * @count: the number of hooks to add - * @lsm: the name of the security module + * @lsmid: the identification information for the security module * * Each LSM has to register its hooks with the infrastructure. + * If the LSM is using hooks that export secids allocate a slot + * for it in the lsmblob. */ void __init security_add_hooks(struct security_hook_list *hooks, int count, - const char *lsm) + struct lsm_id *lsmid) { int i; + WARN_ON(!lsmid->slot || !lsmid->lsm); + +#if LSMBLOB_ENTRIES > 0 + if (lsmid->slot == LSMBLOB_NEEDED) { + if (lsm_slot >= LSMBLOB_ENTRIES) + panic("%s Too many LSMs registered.\n", __func__); + lsm_slotlist[lsm_slot] = lsmid; + lsmid->slot = lsm_slot++; + init_debug("%s assigned lsmblob slot %d\n", lsmid->lsm, + lsmid->slot); + } +#endif /* LSMBLOB_ENTRIES > 0 */ + for (i = 0; i < count; i++) { - hooks[i].lsm = lsm; + hooks[i].lsmid = lsmid; hlist_add_tail_rcu(&hooks[i].list, hooks[i].head); } @@ -493,7 +573,7 @@ * and fix this up afterwards. */ if (slab_is_available()) { - if (lsm_append(lsm, &lsm_names) < 0) + if (lsm_append(lsmid->lsm, &lsm_names) < 0) panic("%s - Cannot get early memory.\n", __func__); } } @@ -607,6 +687,8 @@ */ static int lsm_task_alloc(struct task_struct *task) { + int *ilsm; + if (blob_sizes.lbs_task == 0) { task->security = NULL; return 0; @@ -615,6 +697,15 @@ task->security = kzalloc(blob_sizes.lbs_task, GFP_KERNEL); if (task->security == NULL) return -ENOMEM; + + /* + * The start of the task blob contains the "interface" LSM slot number. + * Start with it set to the invalid slot number, indicating that the + * default first registered LSM be displayed. + */ + ilsm = task->security; + *ilsm = LSMBLOB_INVALID; + return 0; } @@ -661,6 +752,28 @@ } /** + * lsm_sock_alloc - allocate a composite sock blob + * @sock: the sock that needs a blob + * @priority: allocation mode + * + * Allocate the sock blob for all the modules + * + * Returns 0, or -ENOMEM if memory can't be allocated. + */ +static int lsm_sock_alloc(struct sock *sock, gfp_t priority) +{ + if (blob_sizes.lbs_sock == 0) { + sock->sk_security = NULL; + return 0; + } + + sock->sk_security = kzalloc(blob_sizes.lbs_sock, priority); + if (sock->sk_security == NULL) + return -ENOMEM; + return 0; +} + +/** * lsm_early_task - during initialization allocate a composite task blob * @task: the task that needs a blob * @@ -695,6 +808,57 @@ return 0; } +/** + * append_ctx - append a lsm/context pair to a compound context + * @ctx: the existing compound context + * @ctxlen: size of the old context, including terminating nul byte + * @lsm: new lsm name, nul terminated + * @new: new context, possibly nul terminated + * @newlen: maximum size of @new + * + * replace @ctx with a new compound context, appending @newlsm and @new + * to @ctx. On exit the new data replaces the old, which is freed. + * @ctxlen is set to the new size, which includes a trailing nul byte. + * + * Returns 0 on success, -ENOMEM if no memory is available. + */ +static int append_ctx(char **ctx, int *ctxlen, const char *lsm, char *new, + int newlen) +{ + char *final; + size_t llen; + size_t nlen; + size_t flen; + + llen = strlen(lsm) + 1; + /* + * A security module may or may not provide a trailing nul on + * when returning a security context. There is no definition + * of which it should be, and there are modules that do it + * each way. + */ + nlen = strnlen(new, newlen); + + flen = *ctxlen + llen + nlen + 1; + final = kzalloc(flen, GFP_KERNEL); + + if (final == NULL) + return -ENOMEM; + + if (*ctxlen) + memcpy(final, *ctx, *ctxlen); + + memcpy(final + *ctxlen, lsm, llen); + memcpy(final + *ctxlen + llen, new, nlen); + + kfree(*ctx); + + *ctx = final; + *ctxlen = flen; + + return 0; +} + /* * The default value of the LSM hook is defined in linux/lsm_hook_defs.h and * can be accessed with: @@ -752,24 +916,28 @@ { return call_int_hook(binder_set_context_mgr, 0, mgr); } +EXPORT_SYMBOL(security_binder_set_context_mgr); int security_binder_transaction(const struct cred *from, const struct cred *to) { return call_int_hook(binder_transaction, 0, from, to); } +EXPORT_SYMBOL(security_binder_transaction); int security_binder_transfer_binder(const struct cred *from, const struct cred *to) { return call_int_hook(binder_transfer_binder, 0, from, to); } +EXPORT_SYMBOL(security_binder_transfer_binder); int security_binder_transfer_file(const struct cred *from, const struct cred *to, struct file *file) { return call_int_hook(binder_transfer_file, 0, from, to, file); } +EXPORT_SYMBOL(security_binder_transfer_file); int security_ptrace_access_check(struct task_struct *child, unsigned int mode) { @@ -1059,8 +1227,8 @@ int security_dentry_init_security(struct dentry *dentry, int mode, const struct qstr *name, - const char **xattr_name, void **ctx, - u32 *ctxlen) + const char **xattr_name, + struct lsmcontext *lsmctx) { struct security_hook_list *hp; int rc; @@ -1068,9 +1236,13 @@ /* * Only one module will provide a security context. */ - hlist_for_each_entry(hp, &security_hook_heads.dentry_init_security, list) { + hlist_for_each_entry(hp, &security_hook_heads.dentry_init_security, + list) { rc = hp->hook.dentry_init_security(dentry, mode, name, - xattr_name, ctx, ctxlen); + xattr_name, + (void **)&lsmctx->context, + &lsmctx->len); + lsmctx->slot = hp->lsmid->slot; if (rc != LSM_RET_DEFAULT(dentry_init_security)) return rc; } @@ -1472,9 +1644,16 @@ } EXPORT_SYMBOL(security_inode_listsecurity); -void security_inode_getsecid(struct inode *inode, u32 *secid) +void security_inode_getsecid(struct inode *inode, struct lsmblob *blob) { - call_void_hook(inode_getsecid, inode, secid); + struct security_hook_list *hp; + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.inode_getsecid, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + hp->hook.inode_getsecid(inode, &blob->secid[hp->lsmid->slot]); + } } int security_inode_copy_up(struct dentry *src, struct cred **new) @@ -1651,14 +1830,26 @@ int security_task_alloc(struct task_struct *task, unsigned long clone_flags) { + int *oilsm = current->security; + int *nilsm; int rc = lsm_task_alloc(task); - if (rc) + if (unlikely(rc)) return rc; + rc = call_int_hook(task_alloc, 0, task, clone_flags); - if (unlikely(rc)) + if (unlikely(rc)) { security_task_free(task); - return rc; + return rc; + } + + if (oilsm) { + nilsm = task->security; + if (nilsm) + *nilsm = *oilsm; + } + + return 0; } void security_task_free(struct task_struct *task) @@ -1715,16 +1906,32 @@ call_void_hook(cred_transfer, new, old); } -void security_cred_getsecid(const struct cred *c, u32 *secid) +void security_cred_getsecid(const struct cred *c, struct lsmblob *blob) { - *secid = 0; - call_void_hook(cred_getsecid, c, secid); + struct security_hook_list *hp; + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.cred_getsecid, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + hp->hook.cred_getsecid(c, &blob->secid[hp->lsmid->slot]); + } } EXPORT_SYMBOL(security_cred_getsecid); -int security_kernel_act_as(struct cred *new, u32 secid) +int security_kernel_act_as(struct cred *new, struct lsmblob *blob) { - return call_int_hook(kernel_act_as, 0, new, secid); + struct security_hook_list *hp; + int rc; + + hlist_for_each_entry(hp, &security_hook_heads.kernel_act_as, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + rc = hp->hook.kernel_act_as(new, blob->secid[hp->lsmid->slot]); + if (rc != 0) + return rc; + } + return 0; } int security_kernel_create_files_as(struct cred *new, struct inode *inode) @@ -1818,17 +2025,30 @@ return call_int_hook(task_getsid, 0, p); } -void security_current_getsecid_subj(u32 *secid) +void security_current_getsecid_subj(struct lsmblob *blob) { - *secid = 0; - call_void_hook(current_getsecid_subj, secid); + struct security_hook_list *hp; + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.current_getsecid_subj, + list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + hp->hook.current_getsecid_subj(&blob->secid[hp->lsmid->slot]); + } } EXPORT_SYMBOL(security_current_getsecid_subj); -void security_task_getsecid_obj(struct task_struct *p, u32 *secid) +void security_task_getsecid_obj(struct task_struct *p, struct lsmblob *blob) { - *secid = 0; - call_void_hook(task_getsecid_obj, p, secid); + struct security_hook_list *hp; + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.task_getsecid_obj, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + hp->hook.task_getsecid_obj(p, &blob->secid[hp->lsmid->slot]); + } } EXPORT_SYMBOL(security_task_getsecid_obj); @@ -1903,15 +2123,26 @@ call_void_hook(task_to_inode, p, inode); } +int security_create_user_ns(const struct cred *cred) +{ + return call_int_hook(userns_create, 0, cred); +} + int security_ipc_permission(struct kern_ipc_perm *ipcp, short flag) { return call_int_hook(ipc_permission, 0, ipcp, flag); } -void security_ipc_getsecid(struct kern_ipc_perm *ipcp, u32 *secid) +void security_ipc_getsecid(struct kern_ipc_perm *ipcp, struct lsmblob *blob) { - *secid = 0; - call_void_hook(ipc_getsecid, ipcp, secid); + struct security_hook_list *hp; + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.ipc_getsecid, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + hp->hook.ipc_getsecid(ipcp, &blob->secid[hp->lsmid->slot]); + } } int security_msg_msg_alloc(struct msg_msg *msg) @@ -2055,22 +2286,140 @@ char **value) { struct security_hook_list *hp; + char *final = NULL; + char *cp; + int rc = 0; + int finallen = 0; + int ilsm = lsm_task_ilsm(current); + int slot = 0; + + if (!strcmp(name, "interface_lsm")) { + /* + * lsm_slot will be 0 if there are no displaying modules. + */ + if (lsm_slot == 0) + return -EINVAL; + + /* + * Only allow getting the current process' interface_lsm. + * There are too few reasons to get another process' + * interface_lsm and too many LSM policy issues. + */ + if (current != p) + return -EINVAL; + + ilsm = lsm_task_ilsm(p); + if (ilsm != LSMBLOB_INVALID) + slot = ilsm; + *value = kstrdup(lsm_slot_to_name(slot), GFP_KERNEL); + if (*value) + return strlen(*value); + return -ENOMEM; + } + + if (!strcmp(name, "context")) { + hlist_for_each_entry(hp, &security_hook_heads.getprocattr, + list) { + rc = hp->hook.getprocattr(p, "context", &cp); + if (rc == -EINVAL) + continue; + if (rc < 0) { + kfree(final); + return rc; + } + rc = append_ctx(&final, &finallen, hp->lsmid->lsm, + cp, rc); + kfree(cp); + if (rc < 0) { + kfree(final); + return rc; + } + } + if (final == NULL) + return -EINVAL; + *value = final; + return finallen; + } hlist_for_each_entry(hp, &security_hook_heads.getprocattr, list) { - if (lsm != NULL && strcmp(lsm, hp->lsm)) + if (lsm != NULL && strcmp(lsm, hp->lsmid->lsm)) + continue; + if (lsm == NULL && ilsm != LSMBLOB_INVALID && + ilsm != hp->lsmid->slot) continue; return hp->hook.getprocattr(p, name, value); } return LSM_RET_DEFAULT(getprocattr); } +/** + * security_setprocattr - Set process attributes via /proc + * @lsm: name of module involved, or NULL + * @name: name of the attribute + * @value: value to set the attribute to + * @size: size of the value + * + * Set the process attribute for the specified security module + * to the specified value. Note that this can only be used to set + * the process attributes for the current, or "self" process. + * The /proc code has already done this check. + * + * Returns 0 on success, an appropriate code otherwise. + */ int security_setprocattr(const char *lsm, const char *name, void *value, size_t size) { struct security_hook_list *hp; + const char *slotname; + char *termed; + char *copy; + int *ilsm = current->security; + int rc = -EINVAL; + int slot = 0; + + if (!strcmp(name, "interface_lsm")) { + /* + * Change the "interface_lsm" value only if all the security + * modules that support setting a procattr allow it. + * It is assumed that all such security modules will be + * cooperative. + */ + if (size == 0) + return -EINVAL; + + hlist_for_each_entry(hp, &security_hook_heads.setprocattr, + list) { + rc = hp->hook.setprocattr(name, value, size); + if (rc < 0 && rc != LSM_RET_DEFAULT(setprocattr)) + return rc; + } + + rc = -EINVAL; + + copy = kmemdup_nul(value, size, GFP_KERNEL); + if (copy == NULL) + return -ENOMEM; + + termed = strsep(©, " \n"); + + for (slot = 0; slot < lsm_slot; slot++) { + slotname = lsm_slot_to_name(slot); + if (!strcmp(termed, lsm_slotlist[slot]->lsm)) { + *ilsm = slot; + rc = size; + break; + } + } + + kfree(termed); + return rc; + } hlist_for_each_entry(hp, &security_hook_heads.setprocattr, list) { - if (lsm != NULL && strcmp(lsm, hp->lsm)) + if (lsm != NULL && strcmp(lsm, hp->lsmid->lsm)) + continue; + if (lsm == NULL && *ilsm != LSMBLOB_INVALID && + *ilsm != hp->lsmid->slot) continue; return hp->hook.setprocattr(name, value, size); } @@ -2088,35 +2437,92 @@ } EXPORT_SYMBOL(security_ismaclabel); -int security_secid_to_secctx(u32 secid, char **secdata, u32 *seclen) +/** + * security_secid_to_secctx - convert secid to secctx + * @blob: set of secids + * @cp: lsm context into which result is put + * @ilsm: which security module to report + * + * Translate secid information into a secctx string. + * Return a negative value on error. + * If cp is NULL return the length of the string. + * Otherwise, return 0. + */ +int security_secid_to_secctx(struct lsmblob *blob, struct lsmcontext *cp, + int ilsm) { struct security_hook_list *hp; - int rc; + + if (cp) + memset(cp, 0, sizeof(*cp)); /* - * Currently, only one LSM can implement secid_to_secctx (i.e this - * LSM hook is not "stackable"). + * ilsm either is the slot number use for formatting + * or an instruction on which relative slot to use. */ + if (ilsm == LSMBLOB_DISPLAY) + ilsm = lsm_task_ilsm(current); + else if (ilsm == LSMBLOB_FIRST) + ilsm = LSMBLOB_INVALID; + else if (ilsm < 0) { + WARN_ONCE(true, "LSM: %s unknown interface LSM\n", __func__); + ilsm = LSMBLOB_INVALID; + } else if (ilsm >= lsm_slot) { + WARN_ONCE(true, "LSM: %s invalid interface LSM\n", __func__); + ilsm = LSMBLOB_INVALID; + } hlist_for_each_entry(hp, &security_hook_heads.secid_to_secctx, list) { - rc = hp->hook.secid_to_secctx(secid, secdata, seclen); - if (rc != LSM_RET_DEFAULT(secid_to_secctx)) - return rc; + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + if (ilsm == LSMBLOB_INVALID || ilsm == hp->lsmid->slot) { + if (!cp) { + int len; + int rc; + rc = hp->hook.secid_to_secctx( + blob->secid[hp->lsmid->slot], + NULL, &len); + return rc ? rc : len; + } + cp->slot = hp->lsmid->slot; + return hp->hook.secid_to_secctx( + blob->secid[hp->lsmid->slot], + &cp->context, &cp->len); + } } return LSM_RET_DEFAULT(secid_to_secctx); } EXPORT_SYMBOL(security_secid_to_secctx); -int security_secctx_to_secid(const char *secdata, u32 seclen, u32 *secid) +int security_secctx_to_secid(const char *secdata, u32 seclen, + struct lsmblob *blob) { - *secid = 0; - return call_int_hook(secctx_to_secid, 0, secdata, seclen, secid); + struct security_hook_list *hp; + int ilsm = lsm_task_ilsm(current); + + lsmblob_init(blob, 0); + hlist_for_each_entry(hp, &security_hook_heads.secctx_to_secid, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + if (ilsm == LSMBLOB_INVALID || ilsm == hp->lsmid->slot) + return hp->hook.secctx_to_secid(secdata, seclen, + &blob->secid[hp->lsmid->slot]); + } + return 0; } EXPORT_SYMBOL(security_secctx_to_secid); -void security_release_secctx(char *secdata, u32 seclen) +void security_release_secctx(struct lsmcontext *cp) { - call_void_hook(release_secctx, secdata, seclen); + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.release_secctx, list) + if (cp->slot == hp->lsmid->slot) { + hp->hook.release_secctx(cp->context, cp->len); + break; + } + + memset(cp, 0, sizeof(*cp)); } EXPORT_SYMBOL(security_release_secctx); @@ -2138,9 +2544,18 @@ } EXPORT_SYMBOL(security_inode_setsecctx); -int security_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen) +int security_inode_getsecctx(struct inode *inode, struct lsmcontext *cp) { - return call_int_hook(inode_getsecctx, -EOPNOTSUPP, inode, ctx, ctxlen); + struct security_hook_list *hp; + + memset(cp, 0, sizeof(*cp)); + + hlist_for_each_entry(hp, &security_hook_heads.inode_getsecctx, list) { + cp->slot = hp->lsmid->slot; + return hp->hook.inode_getsecctx(inode, (void **)&cp->context, + &cp->len); + } + return -EOPNOTSUPP; } EXPORT_SYMBOL(security_inode_getsecctx); @@ -2257,25 +2672,57 @@ int security_socket_getpeersec_stream(struct socket *sock, char __user *optval, int __user *optlen, unsigned len) { - return call_int_hook(socket_getpeersec_stream, -ENOPROTOOPT, sock, - optval, optlen, len); + int ilsm = lsm_task_ilsm(current); + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.socket_getpeersec_stream, + list) + if (ilsm == LSMBLOB_INVALID || ilsm == hp->lsmid->slot) + return hp->hook.socket_getpeersec_stream(sock, optval, + optlen, len); + return -ENOPROTOOPT; } -int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, u32 *secid) +int security_socket_getpeersec_dgram(struct socket *sock, struct sk_buff *skb, + u32 *secid) { - return call_int_hook(socket_getpeersec_dgram, -ENOPROTOOPT, sock, - skb, secid); + struct security_hook_list *hp; + int rc = -ENOPROTOOPT; + + /* + * Only one security module should provide a real hook for + * this. A stub or bypass like is used in BPF should either + * (somehow) leave rc unaltered or return -ENOPROTOOPT. + */ + hlist_for_each_entry(hp, &security_hook_heads.socket_getpeersec_dgram, + list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + rc = hp->hook.socket_getpeersec_dgram(sock, skb, secid); + if (rc != -ENOPROTOOPT) + break; + } + return rc; } EXPORT_SYMBOL(security_socket_getpeersec_dgram); int security_sk_alloc(struct sock *sk, int family, gfp_t priority) { - return call_int_hook(sk_alloc_security, 0, sk, family, priority); + int rc = lsm_sock_alloc(sk, priority); + + if (unlikely(rc)) + return rc; + rc = call_int_hook(sk_alloc_security, 0, sk, family, priority); + if (unlikely(rc)) + security_sk_free(sk); + return rc; } void security_sk_free(struct sock *sk) { call_void_hook(sk_free_security, sk); + kfree(sk->sk_security); + sk->sk_security = NULL; } void security_sk_clone(const struct sock *sk, struct sock *newsk) @@ -2559,9 +3006,27 @@ #ifdef CONFIG_AUDIT -int security_audit_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule) +int security_audit_rule_init(u32 field, u32 op, char *rulestr, + struct audit_lsm_rules *lsmrules) { - return call_int_hook(audit_rule_init, 0, field, op, rulestr, lsmrule); + struct security_hook_list *hp; + bool one_is_good = false; + int rc = 0; + int trc; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_init, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + trc = hp->hook.audit_rule_init(field, op, rulestr, + &lsmrules->rule[hp->lsmid->slot]); + if (trc == 0) + one_is_good = true; + else + rc = trc; + } + if (one_is_good) + return 0; + return rc; } int security_audit_rule_known(struct audit_krule *krule) @@ -2569,17 +3034,84 @@ return call_int_hook(audit_rule_known, 0, krule); } -void security_audit_rule_free(void *lsmrule) +void security_audit_rule_free(struct audit_lsm_rules *lsmrules) { - call_void_hook(audit_rule_free, lsmrule); + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_free, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + if (lsmrules->rule[hp->lsmid->slot] == NULL) + continue; + hp->hook.audit_rule_free(lsmrules->rule[hp->lsmid->slot]); + } } -int security_audit_rule_match(u32 secid, u32 field, u32 op, void *lsmrule) +int security_audit_rule_match(struct lsmblob *blob, u32 field, u32 op, + struct audit_lsm_rules *lsmrules) { - return call_int_hook(audit_rule_match, 0, secid, field, op, lsmrule); + struct security_hook_list *hp; + int rc; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_match, list) { + if (WARN_ON(hp->lsmid->slot < 0 || hp->lsmid->slot >= lsm_slot)) + continue; + if (lsmrules->rule[hp->lsmid->slot] == NULL) + continue; + rc = hp->hook.audit_rule_match(blob->secid[hp->lsmid->slot], + field, op, + &lsmrules->rule[hp->lsmid->slot]); + if (rc) + return rc; + } + return 0; } #endif /* CONFIG_AUDIT */ +#ifdef CONFIG_IMA_LSM_RULES +/* + * The integrity subsystem uses the same hooks as + * the audit subsystem. + */ +int ima_filter_rule_init(u32 field, u32 op, char *rulestr, void **lsmrule, + int lsmslot) +{ + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_init, list) + if (hp->lsmid->slot == lsmslot) + return hp->hook.audit_rule_init(field, op, rulestr, + lsmrule); + + return 0; +} + +void ima_filter_rule_free(void *lsmrule, int lsmslot) +{ + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_free, list) { + if (hp->lsmid->slot == lsmslot) { + hp->hook.audit_rule_free(lsmrule); + return; + } + } +} + +int ima_filter_rule_match(struct lsmblob *blob, u32 field, u32 op, + void *lsmrule, int lsmslot) +{ + struct security_hook_list *hp; + + hlist_for_each_entry(hp, &security_hook_heads.audit_rule_match, list) + if (hp->lsmid->slot == lsmslot) + return hp->hook.audit_rule_match(blob->secid[lsmslot], + field, op, lsmrule); + + return 0; +} +#endif /* CONFIG_IMA_LSM_RULES */ + #ifdef CONFIG_BPF_SYSCALL int security_bpf(int cmd, union bpf_attr *attr, unsigned int size) { @@ -2617,6 +3149,12 @@ } EXPORT_SYMBOL(security_locked_down); +int security_lock_kernel_down(const char *where, enum lockdown_reason level) +{ + return call_int_hook(lock_kernel_down, 0, where, level); +} +EXPORT_SYMBOL(security_lock_kernel_down); + #ifdef CONFIG_PERF_EVENTS int security_perf_event_open(struct perf_event_attr *attr, int type) { @@ -2654,4 +3192,8 @@ { return call_int_hook(uring_sqpoll, 0); } +int security_uring_cmd(struct io_uring_cmd *ioucmd) +{ + return call_int_hook(uring_cmd, 0, ioucmd); +} #endif /* CONFIG_IO_URING */ --- linux-5.19.0.orig/security/selinux/hooks.c +++ linux-5.19.0/security/selinux/hooks.c @@ -91,6 +91,7 @@ #include #include #include +#include #include "avc.h" #include "objsec.h" @@ -4224,6 +4225,14 @@ spin_unlock(&isec->lock); } +static int selinux_userns_create(const struct cred *cred) +{ + u32 sid = current_sid(); + + return avc_has_perm(&selinux_state, sid, sid, SECCLASS_USER_NAMESPACE, + USER_NAMESPACE__CREATE, NULL); +} + /* Returns error only if unable to parse addresses */ static int selinux_parse_skb_ipv4(struct sk_buff *skb, struct common_audit_data *ad, u8 *proto) @@ -4532,7 +4541,7 @@ static int sock_has_perm(struct sock *sk, u32 perms) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct common_audit_data ad; struct lsm_network_audit net = {0,}; @@ -4589,7 +4598,7 @@ isec->initialized = LABEL_INITIALIZED; if (sock->sk) { - sksec = sock->sk->sk_security; + sksec = selinux_sock(sock->sk); sksec->sclass = sclass; sksec->sid = sid; /* Allows detection of the first association on this socket */ @@ -4605,8 +4614,8 @@ static int selinux_socket_socketpair(struct socket *socka, struct socket *sockb) { - struct sk_security_struct *sksec_a = socka->sk->sk_security; - struct sk_security_struct *sksec_b = sockb->sk->sk_security; + struct sk_security_struct *sksec_a = selinux_sock(socka->sk); + struct sk_security_struct *sksec_b = selinux_sock(sockb->sk); sksec_a->peer_sid = sksec_b->sid; sksec_b->peer_sid = sksec_a->sid; @@ -4621,7 +4630,7 @@ static int selinux_socket_bind(struct socket *sock, struct sockaddr *address, int addrlen) { struct sock *sk = sock->sk; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); u16 family; int err; @@ -4756,7 +4765,7 @@ struct sockaddr *address, int addrlen) { struct sock *sk = sock->sk; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); int err; err = sock_has_perm(sk, SOCKET__CONNECT); @@ -4935,9 +4944,9 @@ struct sock *other, struct sock *newsk) { - struct sk_security_struct *sksec_sock = sock->sk_security; - struct sk_security_struct *sksec_other = other->sk_security; - struct sk_security_struct *sksec_new = newsk->sk_security; + struct sk_security_struct *sksec_sock = selinux_sock(sock); + struct sk_security_struct *sksec_other = selinux_sock(other); + struct sk_security_struct *sksec_new = selinux_sock(newsk); struct common_audit_data ad; struct lsm_network_audit net = {0,}; int err; @@ -4969,8 +4978,8 @@ static int selinux_socket_unix_may_send(struct socket *sock, struct socket *other) { - struct sk_security_struct *ssec = sock->sk->sk_security; - struct sk_security_struct *osec = other->sk->sk_security; + struct sk_security_struct *ssec = selinux_sock(sock->sk); + struct sk_security_struct *osec = selinux_sock(other->sk); struct common_audit_data ad; struct lsm_network_audit net = {0,}; @@ -5012,7 +5021,7 @@ u16 family) { int err = 0; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); u32 sk_sid = sksec->sid; struct common_audit_data ad; struct lsm_network_audit net = {0,}; @@ -5045,7 +5054,7 @@ static int selinux_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb) { int err; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); u16 family = sk->sk_family; u32 sk_sid = sksec->sid; struct common_audit_data ad; @@ -5113,13 +5122,15 @@ return err; } -static int selinux_socket_getpeersec_stream(struct socket *sock, char __user *optval, - int __user *optlen, unsigned len) +static int selinux_socket_getpeersec_stream(struct socket *sock, + char __user *optval, + int __user *optlen, + unsigned int len) { int err = 0; char *scontext; u32 scontext_len; - struct sk_security_struct *sksec = sock->sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sock->sk); u32 peer_sid = SECSID_NULL; if (sksec->sclass == SECCLASS_UNIX_STREAM_SOCKET || @@ -5179,34 +5190,27 @@ static int selinux_sk_alloc_security(struct sock *sk, int family, gfp_t priority) { - struct sk_security_struct *sksec; - - sksec = kzalloc(sizeof(*sksec), priority); - if (!sksec) - return -ENOMEM; + struct sk_security_struct *sksec = selinux_sock(sk); sksec->peer_sid = SECINITSID_UNLABELED; sksec->sid = SECINITSID_UNLABELED; sksec->sclass = SECCLASS_SOCKET; selinux_netlbl_sk_security_reset(sksec); - sk->sk_security = sksec; return 0; } static void selinux_sk_free_security(struct sock *sk) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); - sk->sk_security = NULL; selinux_netlbl_sk_security_free(sksec); - kfree(sksec); } static void selinux_sk_clone_security(const struct sock *sk, struct sock *newsk) { - struct sk_security_struct *sksec = sk->sk_security; - struct sk_security_struct *newsksec = newsk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); + struct sk_security_struct *newsksec = selinux_sock(newsk); newsksec->sid = sksec->sid; newsksec->peer_sid = sksec->peer_sid; @@ -5220,7 +5224,7 @@ if (!sk) *secid = SECINITSID_ANY_SOCKET; else { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); *secid = sksec->sid; } @@ -5230,7 +5234,7 @@ { struct inode_security_struct *isec = inode_security_novalidate(SOCK_INODE(parent)); - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); if (sk->sk_family == PF_INET || sk->sk_family == PF_INET6 || sk->sk_family == PF_UNIX) @@ -5247,7 +5251,7 @@ { struct sock *sk = asoc->base.sk; u16 family = sk->sk_family; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct common_audit_data ad; struct lsm_network_audit net = {0,}; int err; @@ -5305,7 +5309,7 @@ static int selinux_sctp_assoc_request(struct sctp_association *asoc, struct sk_buff *skb) { - struct sk_security_struct *sksec = asoc->base.sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(asoc->base.sk); u32 conn_sid; int err; @@ -5338,7 +5342,7 @@ static int selinux_sctp_assoc_established(struct sctp_association *asoc, struct sk_buff *skb) { - struct sk_security_struct *sksec = asoc->base.sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(asoc->base.sk); if (!selinux_policycap_extsockclass()) return 0; @@ -5437,8 +5441,8 @@ static void selinux_sctp_sk_clone(struct sctp_association *asoc, struct sock *sk, struct sock *newsk) { - struct sk_security_struct *sksec = sk->sk_security; - struct sk_security_struct *newsksec = newsk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); + struct sk_security_struct *newsksec = selinux_sock(newsk); /* If policy does not support SECCLASS_SCTP_SOCKET then call * the non-sctp clone version. @@ -5455,7 +5459,7 @@ static int selinux_inet_conn_request(const struct sock *sk, struct sk_buff *skb, struct request_sock *req) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); int err; u16 family = req->rsk_ops->family; u32 connsid; @@ -5476,7 +5480,7 @@ static void selinux_inet_csk_clone(struct sock *newsk, const struct request_sock *req) { - struct sk_security_struct *newsksec = newsk->sk_security; + struct sk_security_struct *newsksec = selinux_sock(newsk); newsksec->sid = req->secid; newsksec->peer_sid = req->peer_secid; @@ -5493,7 +5497,7 @@ static void selinux_inet_conn_established(struct sock *sk, struct sk_buff *skb) { u16 family = sk->sk_family; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); /* handle mapped IPv4 packets arriving via IPv6 sockets */ if (family == PF_INET6 && skb->protocol == htons(ETH_P_IP)) @@ -5577,7 +5581,7 @@ static int selinux_tun_dev_attach(struct sock *sk, void *security) { struct tun_security_struct *tunsec = security; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); /* we don't currently perform any NetLabel based labeling here and it * isn't clear that we would want to do so anyway; while we could apply @@ -5706,7 +5710,7 @@ return NF_ACCEPT; /* standard practice, label using the parent socket */ - sksec = sk->sk_security; + sksec = selinux_sock(sk); sid = sksec->sid; } else sid = SECINITSID_KERNEL; @@ -5729,7 +5733,7 @@ sk = skb_to_full_sk(skb); if (sk == NULL) return NF_ACCEPT; - sksec = sk->sk_security; + sksec = selinux_sock(sk); ad.type = LSM_AUDIT_DATA_NET; ad.u.net = &net; @@ -5822,7 +5826,7 @@ u32 skb_sid; struct sk_security_struct *sksec; - sksec = sk->sk_security; + sksec = selinux_sock(sk); if (selinux_skb_peerlbl_sid(skb, family, &skb_sid)) return NF_DROP; /* At this point, if the returned skb peerlbl is SECSID_NULL @@ -5851,7 +5855,7 @@ } else { /* Locally generated packet, fetch the security label from the * associated socket. */ - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); peer_sid = sksec->sid; secmark_perm = PACKET__SEND; } @@ -5900,7 +5904,7 @@ unsigned int data_len = skb->len; unsigned char *data = skb->data; struct nlmsghdr *nlh; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); u16 sclass = sksec->sclass; u32 perm; @@ -6348,7 +6352,7 @@ goto bad; } - if (!strcmp(name, "current")) + if (!strcmp(name, "current") || !strcmp(name, "context")) sid = __tsec->sid; else if (!strcmp(name, "prev")) sid = __tsec->osid; @@ -6390,6 +6394,17 @@ /* * Basic control over ability to set these attributes at all. */ + + /* + * For setting interface_lsm, we only perform a permission check; + * the actual update to the interface_lsm value is handled by the + * LSM framework. + */ + if (!strcmp(name, "interface_lsm")) + return avc_has_perm(&selinux_state, + mysid, mysid, SECCLASS_PROCESS2, + PROCESS2__SETINTERFACE_LSM, NULL); + if (!strcmp(name, "exec")) error = avc_has_perm(&selinux_state, mysid, mysid, SECCLASS_PROCESS, @@ -6899,6 +6914,7 @@ .lbs_inode = sizeof(struct inode_security_struct), .lbs_ipc = sizeof(struct ipc_security_struct), .lbs_msg_msg = sizeof(struct msg_security_struct), + .lbs_sock = sizeof(struct sk_security_struct), .lbs_superblock = sizeof(struct superblock_security_struct), }; @@ -6990,8 +7006,35 @@ return avc_has_perm(&selinux_state, sid, sid, SECCLASS_IO_URING, IO_URING__SQPOLL, NULL); } + +/** + * selinux_uring_cmd - check if IORING_OP_URING_CMD is allowed + * @ioucmd: the io_uring command structure + * + * Check to see if the current domain is allowed to execute an + * IORING_OP_URING_CMD against the device/file specified in @ioucmd. + * + */ +static int selinux_uring_cmd(struct io_uring_cmd *ioucmd) +{ + struct file *file = ioucmd->file; + struct inode *inode = file_inode(file); + struct inode_security_struct *isec = selinux_inode(inode); + struct common_audit_data ad; + + ad.type = LSM_AUDIT_DATA_FILE; + ad.u.file = file; + + return avc_has_perm(&selinux_state, current_sid(), isec->sid, + SECCLASS_IO_URING, IO_URING__CMD, &ad); +} #endif /* CONFIG_IO_URING */ +struct lsm_id selinux_lsmid __lsm_ro_after_init = { + .lsm = "selinux", + .slot = LSMBLOB_NEEDED +}; + /* * IMPORTANT NOTE: When adding new hooks, please be careful to keep this order: * 1. any hooks that don't belong to (2.) or (3.) below, @@ -7114,6 +7157,7 @@ LSM_HOOK_INIT(task_movememory, selinux_task_movememory), LSM_HOOK_INIT(task_kill, selinux_task_kill), LSM_HOOK_INIT(task_to_inode, selinux_task_to_inode), + LSM_HOOK_INIT(userns_create, selinux_userns_create), LSM_HOOK_INIT(ipc_permission, selinux_ipc_permission), LSM_HOOK_INIT(ipc_getsecid, selinux_ipc_getsecid), @@ -7234,6 +7278,7 @@ #ifdef CONFIG_IO_URING LSM_HOOK_INIT(uring_override_creds, selinux_uring_override_creds), LSM_HOOK_INIT(uring_sqpoll, selinux_uring_sqpoll), + LSM_HOOK_INIT(uring_cmd, selinux_uring_cmd), #endif /* @@ -7310,7 +7355,8 @@ hashtab_cache_init(); - security_add_hooks(selinux_hooks, ARRAY_SIZE(selinux_hooks), "selinux"); + security_add_hooks(selinux_hooks, ARRAY_SIZE(selinux_hooks), + &selinux_lsmid); if (avc_add_callback(selinux_netcache_avc_callback, AVC_CALLBACK_RESET)) panic("SELinux: Unable to register AVC netcache callback\n"); --- linux-5.19.0.orig/security/selinux/include/classmap.h +++ linux-5.19.0/security/selinux/include/classmap.h @@ -53,7 +53,8 @@ "execmem", "execstack", "execheap", "setkeycreate", "setsockcreate", "getrlimit", NULL } }, { "process2", - { "nnp_transition", "nosuid_transition", NULL } }, + { "nnp_transition", "nosuid_transition", "setinterface_lsm", + NULL } }, { "system", { "ipc_info", "syslog_read", "syslog_mod", "syslog_console", "module_request", "module_load", NULL } }, @@ -253,7 +254,9 @@ { "anon_inode", { COMMON_FILE_PERMS, NULL } }, { "io_uring", - { "override_creds", "sqpoll", NULL } }, + { "override_creds", "sqpoll", "cmd", NULL } }, + { "user_namespace", + { "create", NULL } }, { NULL } }; --- linux-5.19.0.orig/security/selinux/include/objsec.h +++ linux-5.19.0/security/selinux/include/objsec.h @@ -194,4 +194,9 @@ return superblock->s_security + selinux_blob_sizes.lbs_superblock; } +static inline struct sk_security_struct *selinux_sock(const struct sock *sock) +{ + return sock->sk_security + selinux_blob_sizes.lbs_sock; +} + #endif /* _SELINUX_OBJSEC_H_ */ --- linux-5.19.0.orig/security/selinux/include/security.h +++ linux-5.19.0/security/selinux/include/security.h @@ -75,6 +75,7 @@ struct netlbl_lsm_secattr; extern int selinux_enabled_boot; +extern struct lsm_id selinux_lsmid; /* * type_datum properties --- linux-5.19.0.orig/security/selinux/netlabel.c +++ linux-5.19.0/security/selinux/netlabel.c @@ -17,6 +17,7 @@ #include #include #include +#include #include #include #include @@ -68,7 +69,7 @@ static struct netlbl_lsm_secattr *selinux_netlbl_sock_genattr(struct sock *sk) { int rc; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct netlbl_lsm_secattr *secattr; if (sksec->nlbl_secattr != NULL) @@ -101,14 +102,14 @@ const struct sock *sk, u32 sid) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct netlbl_lsm_secattr *secattr = sksec->nlbl_secattr; if (secattr == NULL) return NULL; if ((secattr->flags & NETLBL_SECATTR_SECID) && - (secattr->attr.secid == sid)) + (secattr->attr.lsmblob.secid[selinux_lsmid.slot] == sid)) return secattr; return NULL; @@ -236,7 +237,7 @@ * being labeled by it's parent socket, if it is just exit */ sk = skb_to_full_sk(skb); if (sk != NULL) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); if (sksec->nlbl_state != NLBL_REQSKB) return 0; @@ -274,7 +275,7 @@ { int rc; struct netlbl_lsm_secattr secattr; - struct sk_security_struct *sksec = asoc->base.sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(asoc->base.sk); struct sockaddr_in addr4; struct sockaddr_in6 addr6; @@ -355,7 +356,7 @@ */ void selinux_netlbl_inet_csk_clone(struct sock *sk, u16 family) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); if (family == PF_INET) sksec->nlbl_state = NLBL_LABELED; @@ -373,8 +374,8 @@ */ void selinux_netlbl_sctp_sk_clone(struct sock *sk, struct sock *newsk) { - struct sk_security_struct *sksec = sk->sk_security; - struct sk_security_struct *newsksec = newsk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); + struct sk_security_struct *newsksec = selinux_sock(newsk); newsksec->nlbl_state = sksec->nlbl_state; } @@ -392,7 +393,7 @@ int selinux_netlbl_socket_post_create(struct sock *sk, u16 family) { int rc; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct netlbl_lsm_secattr *secattr; if (family != PF_INET && family != PF_INET6) @@ -507,7 +508,7 @@ { int rc = 0; struct sock *sk = sock->sk; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct netlbl_lsm_secattr secattr; if (selinux_netlbl_option(level, optname) && @@ -545,7 +546,7 @@ struct sockaddr *addr) { int rc; - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); struct netlbl_lsm_secattr *secattr; /* connected sockets are allowed to disconnect when the address family @@ -584,7 +585,7 @@ int selinux_netlbl_socket_connect_locked(struct sock *sk, struct sockaddr *addr) { - struct sk_security_struct *sksec = sk->sk_security; + struct sk_security_struct *sksec = selinux_sock(sk); if (sksec->nlbl_state != NLBL_REQSKB && sksec->nlbl_state != NLBL_CONNLABELED) --- linux-5.19.0.orig/security/selinux/ss/policydb.h +++ linux-5.19.0/security/selinux/ss/policydb.h @@ -370,6 +370,8 @@ { size_t len = bytes * num; + if (len > fp->len) + return -EINVAL; memcpy(fp->data, buf, len); fp->data += len; fp->len -= len; --- linux-5.19.0.orig/security/selinux/ss/services.c +++ linux-5.19.0/security/selinux/ss/services.c @@ -2022,7 +2022,8 @@ * in `newc'. Verify that the context is valid * under the new policy. */ -static int convert_context(struct context *oldc, struct context *newc, void *p) +static int convert_context(struct context *oldc, struct context *newc, void *p, + gfp_t gfp_flags) { struct convert_context_args *args; struct ocontext *oc; @@ -2036,7 +2037,7 @@ args = p; if (oldc->str) { - s = kstrdup(oldc->str, GFP_KERNEL); + s = kstrdup(oldc->str, gfp_flags); if (!s) return -ENOMEM; @@ -3896,7 +3897,7 @@ if (secattr->flags & NETLBL_SECATTR_CACHE) *sid = *(u32 *)secattr->cache->data; else if (secattr->flags & NETLBL_SECATTR_SECID) - *sid = secattr->attr.secid; + *sid = secattr->attr.lsmblob.secid[selinux_lsmid.slot]; else if (secattr->flags & NETLBL_SECATTR_MLS_LVL) { rc = -EIDRM; ctx = sidtab_search(sidtab, SECINITSID_NETMSG); @@ -3974,7 +3975,7 @@ if (secattr->domain == NULL) goto out; - secattr->attr.secid = sid; + secattr->attr.lsmblob.secid[selinux_lsmid.slot] = sid; secattr->flags |= NETLBL_SECATTR_DOMAIN_CPY | NETLBL_SECATTR_SECID; mls_export_netlbl_lvl(policydb, ctx, secattr); rc = mls_export_netlbl_cat(policydb, ctx, secattr); @@ -4048,6 +4049,7 @@ int security_read_state_kernel(struct selinux_state *state, void **data, size_t *len) { + int err; struct selinux_policy *policy; policy = rcu_dereference_protected( @@ -4060,5 +4062,11 @@ if (!*data) return -ENOMEM; - return __security_read_policy(policy, *data, len); + err = __security_read_policy(policy, *data, len); + if (err) { + vfree(*data); + *data = NULL; + *len = 0; + } + return err; } --- linux-5.19.0.orig/security/selinux/ss/sidtab.c +++ linux-5.19.0/security/selinux/ss/sidtab.c @@ -325,7 +325,7 @@ } rc = convert->func(context, &dst_convert->context, - convert->args); + convert->args, GFP_ATOMIC); if (rc) { context_destroy(&dst->context); goto out_unlock; @@ -404,7 +404,7 @@ while (i < SIDTAB_LEAF_ENTRIES && *pos < count) { rc = convert->func(&esrc->ptr_leaf->entries[i].context, &edst->ptr_leaf->entries[i].context, - convert->args); + convert->args, GFP_KERNEL); if (rc) return rc; (*pos)++; --- linux-5.19.0.orig/security/selinux/ss/sidtab.h +++ linux-5.19.0/security/selinux/ss/sidtab.h @@ -65,7 +65,7 @@ }; struct sidtab_convert_params { - int (*func)(struct context *oldc, struct context *newc, void *args); + int (*func)(struct context *oldc, struct context *newc, void *args, gfp_t gfp_flags); void *args; struct sidtab *target; }; --- linux-5.19.0.orig/security/smack/smack.h +++ linux-5.19.0/security/smack/smack.h @@ -303,6 +303,7 @@ * Shared data. */ extern int smack_enabled __initdata; +extern struct lsm_id smack_lsmid; extern int smack_cipso_direct; extern int smack_cipso_mapped; extern struct smack_known *smack_net_ambient; @@ -363,6 +364,11 @@ return superblock->s_security + smack_blob_sizes.lbs_superblock; } +static inline struct socket_smack *smack_sock(const struct sock *sock) +{ + return sock->sk_security + smack_blob_sizes.lbs_sock; +} + /* * Is the directory transmuting? */ --- linux-5.19.0.orig/security/smack/smack_access.c +++ linux-5.19.0/security/smack/smack_access.c @@ -524,7 +524,7 @@ { int slen; - skp->smk_netlabel.attr.secid = skp->smk_secid; + skp->smk_netlabel.attr.lsmblob.secid[smack_lsmid.slot] = skp->smk_secid; skp->smk_netlabel.domain = skp->smk_known; skp->smk_netlabel.cache = netlbl_secattr_cache_alloc(GFP_ATOMIC); if (skp->smk_netlabel.cache != NULL) { --- linux-5.19.0.orig/security/smack/smack_lsm.c +++ linux-5.19.0/security/smack/smack_lsm.c @@ -42,6 +42,7 @@ #include #include #include +#include #include "smack.h" #define TRANS_TRUE "TRUE" @@ -1434,7 +1435,7 @@ if (sock == NULL || sock->sk == NULL) return -EOPNOTSUPP; - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); if (strcmp(name, XATTR_SMACK_IPIN) == 0) isp = ssp->smk_in; @@ -1817,7 +1818,7 @@ if (inode->i_sb->s_magic == SOCKFS_MAGIC) { sock = SOCKET_I(inode); - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); tsp = smack_cred(current_cred()); /* * If the receiving process can't write to the @@ -2237,11 +2238,7 @@ static int smack_sk_alloc_security(struct sock *sk, int family, gfp_t gfp_flags) { struct smack_known *skp = smk_of_current(); - struct socket_smack *ssp; - - ssp = kzalloc(sizeof(struct socket_smack), gfp_flags); - if (ssp == NULL) - return -ENOMEM; + struct socket_smack *ssp = smack_sock(sk); /* * Sockets created by kernel threads receive web label. @@ -2255,11 +2252,10 @@ } ssp->smk_packet = NULL; - sk->sk_security = ssp; - return 0; } +#ifdef SMACK_IPV6_PORT_LABELING /** * smack_sk_free_security - Free a socket blob * @sk: the socket @@ -2268,7 +2264,6 @@ */ static void smack_sk_free_security(struct sock *sk) { -#ifdef SMACK_IPV6_PORT_LABELING struct smk_port_label *spp; if (sk->sk_family == PF_INET6) { @@ -2281,9 +2276,8 @@ } rcu_read_unlock(); } -#endif - kfree(sk->sk_security); } +#endif /** * smack_ipv4host_label - check host based restrictions @@ -2396,7 +2390,7 @@ */ static int smack_netlbl_add(struct sock *sk) { - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct smack_known *skp = ssp->smk_out; int rc; @@ -2428,7 +2422,7 @@ */ static void smack_netlbl_delete(struct sock *sk) { - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); /* * Take the label off the socket if one is set. @@ -2460,7 +2454,7 @@ struct smack_known *skp; int rc = 0; struct smack_known *hkp; - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct smk_audit_info ad; rcu_read_lock(); @@ -2533,7 +2527,7 @@ { struct sock *sk = sock->sk; struct sockaddr_in6 *addr6; - struct socket_smack *ssp = sock->sk->sk_security; + struct socket_smack *ssp = smack_sock(sock->sk); struct smk_port_label *spp; unsigned short port = 0; @@ -2621,7 +2615,7 @@ int act) { struct smk_port_label *spp; - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct smack_known *skp = NULL; unsigned short port; struct smack_known *object; @@ -2715,7 +2709,7 @@ if (sock == NULL || sock->sk == NULL) return -EOPNOTSUPP; - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); if (strcmp(name, XATTR_SMACK_IPIN) == 0) ssp->smk_in = skp; @@ -2763,7 +2757,7 @@ * Sockets created by kernel threads receive web label. */ if (unlikely(current->flags & PF_KTHREAD)) { - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); ssp->smk_in = &smack_known_web; ssp->smk_out = &smack_known_web; } @@ -2788,8 +2782,8 @@ static int smack_socket_socketpair(struct socket *socka, struct socket *sockb) { - struct socket_smack *asp = socka->sk->sk_security; - struct socket_smack *bsp = sockb->sk->sk_security; + struct socket_smack *asp = smack_sock(socka->sk); + struct socket_smack *bsp = smack_sock(sockb->sk); asp->smk_packet = bsp->smk_out; bsp->smk_packet = asp->smk_out; @@ -2852,7 +2846,7 @@ if (__is_defined(SMACK_IPV6_SECMARK_LABELING)) rsp = smack_ipv6host_label(sip); if (rsp != NULL) { - struct socket_smack *ssp = sock->sk->sk_security; + struct socket_smack *ssp = smack_sock(sock->sk); rc = smk_ipv6_check(ssp->smk_out, rsp, sip, SMK_CONNECTING); @@ -3492,7 +3486,7 @@ char *cp; int slen; - if (strcmp(name, "current") != 0) + if (strcmp(name, "current") != 0 && strcmp(name, "context") != 0) return -EINVAL; cp = kstrdup(skp->smk_known, GFP_KERNEL); @@ -3523,6 +3517,13 @@ struct smack_known_list_elem *sklep; int rc; + /* + * Allow the /proc/.../attr/current and SO_PEERSEC "interface_lsm" + * to be reset at will. + */ + if (strcmp(name, "interface_lsm") == 0) + return 0; + if (!smack_privileged(CAP_MAC_ADMIN) && list_empty(&tsp->smk_relabel)) return -EPERM; @@ -3583,9 +3584,9 @@ { struct smack_known *skp; struct smack_known *okp; - struct socket_smack *ssp = sock->sk_security; - struct socket_smack *osp = other->sk_security; - struct socket_smack *nsp = newsk->sk_security; + struct socket_smack *ssp = smack_sock(sock); + struct socket_smack *osp = smack_sock(other); + struct socket_smack *nsp = smack_sock(newsk); struct smk_audit_info ad; int rc = 0; #ifdef CONFIG_AUDIT @@ -3631,8 +3632,8 @@ */ static int smack_unix_may_send(struct socket *sock, struct socket *other) { - struct socket_smack *ssp = sock->sk->sk_security; - struct socket_smack *osp = other->sk->sk_security; + struct socket_smack *ssp = smack_sock(sock->sk); + struct socket_smack *osp = smack_sock(other->sk); struct smk_audit_info ad; int rc; @@ -3669,7 +3670,7 @@ struct sockaddr_in6 *sap = (struct sockaddr_in6 *) msg->msg_name; #endif #ifdef SMACK_IPV6_SECMARK_LABELING - struct socket_smack *ssp = sock->sk->sk_security; + struct socket_smack *ssp = smack_sock(sock->sk); struct smack_known *rsp; #endif int rc = 0; @@ -3728,11 +3729,12 @@ if ((sap->flags & NETLBL_SECATTR_CACHE) != 0) return (struct smack_known *)sap->cache->data; + /* + * Looks like a fallback, which gives us a secid. + */ if ((sap->flags & NETLBL_SECATTR_SECID) != 0) - /* - * Looks like a fallback, which gives us a secid. - */ - return smack_from_secid(sap->attr.secid); + return smack_from_secid( + sap->attr.lsmblob.secid[smack_lsmid.slot]); if ((sap->flags & NETLBL_SECATTR_MLS_LVL) != 0) { /* @@ -3881,7 +3883,7 @@ netlbl_secattr_init(&secattr); if (sk) - ssp = sk->sk_security; + ssp = smack_sock(sk); if (netlbl_skbuff_getattr(skb, family, &secattr) == 0) { skp = smack_from_secattr(&secattr, ssp); @@ -3903,7 +3905,7 @@ */ static int smack_socket_sock_rcv_skb(struct sock *sk, struct sk_buff *skb) { - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct smack_known *skp = NULL; int rc = 0; struct smk_audit_info ad; @@ -4007,7 +4009,7 @@ int slen = 1; int rc = 0; - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); if (ssp->smk_packet != NULL) { rcp = ssp->smk_packet->smk_known; slen = strlen(rcp) + 1; @@ -4056,7 +4058,7 @@ switch (family) { case PF_UNIX: - ssp = sock->sk->sk_security; + ssp = smack_sock(sock->sk); s = ssp->smk_out->smk_secid; break; case PF_INET: @@ -4105,7 +4107,7 @@ (sk->sk_family != PF_INET && sk->sk_family != PF_INET6)) return; - ssp = sk->sk_security; + ssp = smack_sock(sk); ssp->smk_in = skp; ssp->smk_out = skp; /* cssp->smk_packet is already set in smack_inet_csk_clone() */ @@ -4125,7 +4127,7 @@ { u16 family = sk->sk_family; struct smack_known *skp; - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct sockaddr_in addr; struct iphdr *hdr; struct smack_known *hskp; @@ -4211,7 +4213,7 @@ static void smack_inet_csk_clone(struct sock *sk, const struct request_sock *req) { - struct socket_smack *ssp = sk->sk_security; + struct socket_smack *ssp = smack_sock(sk); struct smack_known *skp; if (req->peer_secid != 0) { @@ -4739,6 +4741,36 @@ return -EPERM; } +/** + * smack_uring_cmd - check on file operations for io_uring + * @ioucmd: the command in question + * + * Make a best guess about whether a io_uring "command" should + * be allowed. Use the same logic used for determining if the + * file could be opened for read in the absence of better criteria. + */ +static int smack_uring_cmd(struct io_uring_cmd *ioucmd) +{ + struct file *file = ioucmd->file; + struct smk_audit_info ad; + struct task_smack *tsp; + struct inode *inode; + int rc; + + if (!file) + return -EINVAL; + + tsp = smack_cred(file->f_cred); + inode = file_inode(file); + + smk_ad_init(&ad, __func__, LSM_AUDIT_DATA_PATH); + smk_ad_setfield_u_fs_path(&ad, file->f_path); + rc = smk_tskacc(tsp, smk_of_inode(inode), MAY_READ, &ad); + rc = smk_bu_credfile(file->f_cred, file, MAY_READ, rc); + + return rc; +} + #endif /* CONFIG_IO_URING */ struct lsm_blob_sizes smack_blob_sizes __lsm_ro_after_init = { @@ -4747,9 +4779,15 @@ .lbs_inode = sizeof(struct inode_smack), .lbs_ipc = sizeof(struct smack_known *), .lbs_msg_msg = sizeof(struct smack_known *), + .lbs_sock = sizeof(struct socket_smack), .lbs_superblock = sizeof(struct superblock_smack), }; +struct lsm_id smack_lsmid __lsm_ro_after_init = { + .lsm = "smack", + .slot = LSMBLOB_NEEDED +}; + static struct security_hook_list smack_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, smack_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, smack_ptrace_traceme), @@ -4857,7 +4895,9 @@ LSM_HOOK_INIT(socket_getpeersec_stream, smack_socket_getpeersec_stream), LSM_HOOK_INIT(socket_getpeersec_dgram, smack_socket_getpeersec_dgram), LSM_HOOK_INIT(sk_alloc_security, smack_sk_alloc_security), +#ifdef SMACK_IPV6_PORT_LABELING LSM_HOOK_INIT(sk_free_security, smack_sk_free_security), +#endif LSM_HOOK_INIT(sock_graft, smack_sock_graft), LSM_HOOK_INIT(inet_conn_request, smack_inet_conn_request), LSM_HOOK_INIT(inet_csk_clone, smack_inet_csk_clone), @@ -4896,6 +4936,7 @@ #ifdef CONFIG_IO_URING LSM_HOOK_INIT(uring_override_creds, smack_uring_override_creds), LSM_HOOK_INIT(uring_sqpoll, smack_uring_sqpoll), + LSM_HOOK_INIT(uring_cmd, smack_uring_cmd), #endif }; @@ -4951,7 +4992,7 @@ /* * Register with LSM */ - security_add_hooks(smack_hooks, ARRAY_SIZE(smack_hooks), "smack"); + security_add_hooks(smack_hooks, ARRAY_SIZE(smack_hooks), &smack_lsmid); smack_enabled = 1; pr_info("Smack: Initializing.\n"); --- linux-5.19.0.orig/security/smack/smack_netfilter.c +++ linux-5.19.0/security/smack/smack_netfilter.c @@ -26,8 +26,8 @@ struct socket_smack *ssp; struct smack_known *skp; - if (sk && sk->sk_security) { - ssp = sk->sk_security; + if (sk) { + ssp = smack_sock(sk); skp = ssp->smk_out; skb->secmark = skp->smk_secid; } --- linux-5.19.0.orig/security/smack/smackfs.c +++ linux-5.19.0/security/smack/smackfs.c @@ -186,7 +186,7 @@ nap->loginuid = audit_get_loginuid(current); nap->sessionid = audit_get_sessionid(current); - nap->secid = skp->smk_secid; + nap->lsmblob.secid[smack_lsmid.slot] = skp->smk_secid; } /* @@ -1144,6 +1144,7 @@ static ssize_t smk_write_net4addr(struct file *file, const char __user *buf, size_t count, loff_t *ppos) { + struct lsmblob lsmblob; struct smk_net4addr *snp; struct sockaddr_in newname; char *smack; @@ -1274,10 +1275,13 @@ * this host so that incoming packets get labeled. * but only if we didn't get the special CIPSO option */ - if (rc == 0 && skp != NULL) + if (rc == 0 && skp != NULL) { + lsmblob_init(&lsmblob, 0); + lsmblob.secid[smack_lsmid.slot] = snp->smk_label->smk_secid; rc = netlbl_cfg_unlbl_static_add(&init_net, NULL, - &snp->smk_host, &snp->smk_mask, PF_INET, - snp->smk_label->smk_secid, &audit_info); + &snp->smk_host, &snp->smk_mask, PF_INET, &lsmblob, + &audit_info); + } if (rc == 0) rc = count; --- linux-5.19.0.orig/security/tomoyo/tomoyo.c +++ linux-5.19.0/security/tomoyo/tomoyo.c @@ -530,6 +530,11 @@ } } +static struct lsm_id tomoyo_lsmid __lsm_ro_after_init = { + .lsm = "tomoyo", + .slot = LSMBLOB_NOT_NEEDED +}; + /* * tomoyo_security_ops is a "struct security_operations" which is used for * registering TOMOYO. @@ -582,7 +587,8 @@ struct tomoyo_task *s = tomoyo_task(current); /* register ourselves with the security framework */ - security_add_hooks(tomoyo_hooks, ARRAY_SIZE(tomoyo_hooks), "tomoyo"); + security_add_hooks(tomoyo_hooks, ARRAY_SIZE(tomoyo_hooks), + &tomoyo_lsmid); pr_info("TOMOYO Linux initialized\n"); s->domain_info = &tomoyo_kernel_domain; atomic_inc(&tomoyo_kernel_domain.users); --- linux-5.19.0.orig/security/yama/yama_lsm.c +++ linux-5.19.0/security/yama/yama_lsm.c @@ -421,6 +421,11 @@ return rc; } +static struct lsm_id yama_lsmid __lsm_ro_after_init = { + .lsm = "yama", + .slot = LSMBLOB_NOT_NEEDED +}; + static struct security_hook_list yama_hooks[] __lsm_ro_after_init = { LSM_HOOK_INIT(ptrace_access_check, yama_ptrace_access_check), LSM_HOOK_INIT(ptrace_traceme, yama_ptrace_traceme), @@ -477,7 +482,7 @@ static int __init yama_init(void) { pr_info("Yama: becoming mindful.\n"); - security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks), "yama"); + security_add_hooks(yama_hooks, ARRAY_SIZE(yama_hooks), &yama_lsmid); yama_init_sysctl(); return 0; } --- linux-5.19.0.orig/snapcraft.yaml +++ linux-5.19.0/snapcraft.yaml @@ -0,0 +1,36 @@ +name: pc-kernel +version: null +version-script: | + . debian/debian.env + dpkg-parsechangelog -l $DEBIAN/changelog -S version +summary: The Ubuntu generic Linux kernel +description: This Ubuntu generic Linux kernel +grade: stable +confinement: strict +type: kernel + +parts: + kernel: + plugin: kernel + source: . + source-type: git + kconfigflavour: generic + kconfigs: + - CONFIG_DEBUG_INFO=n + override-build: | + cp debian/scripts/retpoline-extract-one \ + $SNAPCRAFT_PART_BUILD/scripts/ubuntu-retpoline-extract-one + snapcraftctl build + kernel-with-firmware: false + firmware: + plugin: nil + stage-packages: + - linux-firmware + organize: + lib/firmware: firmware + prime: + - -usr + - -lib + build-packages: + - cpio + - libssl-dev --- linux-5.19.0.orig/sound/aoa/soundbus/i2sbus/core.c +++ linux-5.19.0/sound/aoa/soundbus/i2sbus/core.c @@ -147,6 +147,7 @@ return rc; } +/* Returns 1 if added, 0 for otherwise; don't return a negative value! */ /* FIXME: look at device node refcounting */ static int i2sbus_add_dev(struct macio_dev *macio, struct i2sbus_control *control, @@ -213,7 +214,7 @@ * either as the second one in that case is just a modem. */ if (!ok) { kfree(dev); - return -ENODEV; + return 0; } mutex_init(&dev->lock); @@ -302,6 +303,10 @@ if (soundbus_add_one(&dev->sound)) { printk(KERN_DEBUG "i2sbus: device registration error!\n"); + if (dev->sound.ofdev.dev.kobj.state_initialized) { + soundbus_dev_put(&dev->sound); + return 0; + } goto err; } --- linux-5.19.0.orig/sound/arm/pxa2xx-ac97-lib.c +++ linux-5.19.0/sound/arm/pxa2xx-ac97-lib.c @@ -402,8 +402,10 @@ goto err_clk2; irq = platform_get_irq(dev, 0); - if (!irq) + if (irq < 0) { + ret = irq; goto err_irq; + } ret = request_irq(irq, pxa2xx_ac97_irq, 0, "AC97", NULL); if (ret < 0) --- linux-5.19.0.orig/sound/core/control.c +++ linux-5.19.0/sound/core/control.c @@ -127,6 +127,7 @@ if (control->vd[idx].owner == ctl) control->vd[idx].owner = NULL; up_write(&card->controls_rwsem); + snd_fasync_free(ctl->fasync); snd_ctl_empty_read_queue(ctl); put_pid(ctl->pid); kfree(ctl); @@ -181,7 +182,7 @@ _found: wake_up(&ctl->change_sleep); spin_unlock(&ctl->read_lock); - kill_fasync(&ctl->fasync, SIGIO, POLL_IN); + snd_kill_fasync(ctl->fasync, SIGIO, POLL_IN); } read_unlock_irqrestore(&card->ctl_files_rwlock, flags); } @@ -1066,14 +1067,19 @@ const u32 pattern = 0xdeadbeef; int ret; + down_read(&card->controls_rwsem); kctl = snd_ctl_find_id(card, &control->id); - if (kctl == NULL) - return -ENOENT; + if (kctl == NULL) { + ret = -ENOENT; + goto unlock; + } index_offset = snd_ctl_get_ioff(kctl, &control->id); vd = &kctl->vd[index_offset]; - if (!(vd->access & SNDRV_CTL_ELEM_ACCESS_READ) || kctl->get == NULL) - return -EPERM; + if (!(vd->access & SNDRV_CTL_ELEM_ACCESS_READ) || kctl->get == NULL) { + ret = -EPERM; + goto unlock; + } snd_ctl_build_ioff(&control->id, kctl, index_offset); @@ -1083,7 +1089,7 @@ info.id = control->id; ret = __snd_ctl_elem_info(card, kctl, &info, NULL); if (ret < 0) - return ret; + goto unlock; #endif if (!snd_ctl_skip_validation(&info)) @@ -1093,7 +1099,7 @@ ret = kctl->get(kctl, control); snd_power_unref(card); if (ret < 0) - return ret; + goto unlock; if (!snd_ctl_skip_validation(&info) && sanity_check_elem_value(card, control, &info, pattern) < 0) { dev_err(card->dev, @@ -1101,8 +1107,11 @@ control->id.iface, control->id.device, control->id.subdevice, control->id.name, control->id.index); - return -EINVAL; + ret = -EINVAL; + goto unlock; } +unlock: + up_read(&card->controls_rwsem); return ret; } @@ -1116,9 +1125,7 @@ if (IS_ERR(control)) return PTR_ERR(control); - down_read(&card->controls_rwsem); result = snd_ctl_elem_read(card, control); - up_read(&card->controls_rwsem); if (result < 0) goto error; @@ -2002,7 +2009,7 @@ struct snd_ctl_file *ctl; ctl = file->private_data; - return fasync_helper(fd, file, on, &ctl->fasync); + return snd_fasync_helper(fd, file, on, &ctl->fasync); } /* return the preferred subdevice number if already assigned; @@ -2170,7 +2177,7 @@ read_lock_irqsave(&card->ctl_files_rwlock, flags); list_for_each_entry(ctl, &card->ctl_files, list) { wake_up(&ctl->change_sleep); - kill_fasync(&ctl->fasync, SIGIO, POLL_ERR); + snd_kill_fasync(ctl->fasync, SIGIO, POLL_ERR); } read_unlock_irqrestore(&card->ctl_files_rwlock, flags); --- linux-5.19.0.orig/sound/core/info.c +++ linux-5.19.0/sound/core/info.c @@ -111,9 +111,9 @@ entry = data->entry; mutex_lock(&entry->access); if (entry->c.ops->llseek) { - offset = entry->c.ops->llseek(entry, - data->file_private_data, - file, offset, orig); + ret = entry->c.ops->llseek(entry, + data->file_private_data, + file, offset, orig); goto out; } --- linux-5.19.0.orig/sound/core/init.c +++ linux-5.19.0/sound/core/init.c @@ -178,10 +178,8 @@ return -ENOMEM; err = snd_card_init(card, parent, idx, xid, module, extra_size); - if (err < 0) { - kfree(card); - return err; - } + if (err < 0) + return err; /* card is freed by error handler */ *card_ret = card; return 0; @@ -231,7 +229,7 @@ card->managed = true; err = snd_card_init(card, parent, idx, xid, module, extra_size); if (err < 0) { - devres_free(card); + devres_free(card); /* in managed mode, we need to free manually */ return err; } @@ -293,6 +291,8 @@ mutex_unlock(&snd_card_mutex); dev_err(parent, "cannot find the slot for index %d (range 0-%i), error: %d\n", idx, snd_ecards_limit - 1, err); + if (!card->managed) + kfree(card); /* manually free here, as no destructor called */ return err; } set_bit(idx, snd_cards_lock); /* lock it */ --- linux-5.19.0.orig/sound/core/memalloc.c +++ linux-5.19.0/sound/core/memalloc.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -20,6 +21,13 @@ static const struct snd_malloc_ops *snd_dma_get_ops(struct snd_dma_buffer *dmab); +#ifdef CONFIG_SND_DMA_SGBUF +static void *do_alloc_fallback_pages(struct device *dev, size_t size, + dma_addr_t *addr, bool wc); +static void do_free_fallback_pages(void *p, size_t size, bool wc); +static void *snd_dma_sg_fallback_alloc(struct snd_dma_buffer *dmab, size_t size); +#endif + /* a cast to gfp flag from the dev pointer; for CONTINUOUS and VMALLOC types */ static inline gfp_t snd_mem_get_gfp_flags(const struct snd_dma_buffer *dmab, gfp_t default_gfp) @@ -269,16 +277,21 @@ /* * Continuous pages allocator */ -static void *snd_dma_continuous_alloc(struct snd_dma_buffer *dmab, size_t size) +static void *do_alloc_pages(size_t size, dma_addr_t *addr, gfp_t gfp) { - gfp_t gfp = snd_mem_get_gfp_flags(dmab, GFP_KERNEL); void *p = alloc_pages_exact(size, gfp); if (p) - dmab->addr = page_to_phys(virt_to_page(p)); + *addr = page_to_phys(virt_to_page(p)); return p; } +static void *snd_dma_continuous_alloc(struct snd_dma_buffer *dmab, size_t size) +{ + return do_alloc_pages(size, &dmab->addr, + snd_mem_get_gfp_flags(dmab, GFP_KERNEL)); +} + static void snd_dma_continuous_free(struct snd_dma_buffer *dmab) { free_pages_exact(dmab->area, dmab->bytes); @@ -455,6 +468,25 @@ /* * Write-combined pages */ +/* x86-specific allocations */ +#ifdef CONFIG_SND_DMA_SGBUF +static void *snd_dma_wc_alloc(struct snd_dma_buffer *dmab, size_t size) +{ + return do_alloc_fallback_pages(dmab->dev.dev, size, &dmab->addr, true); +} + +static void snd_dma_wc_free(struct snd_dma_buffer *dmab) +{ + do_free_fallback_pages(dmab->area, dmab->bytes, true); +} + +static int snd_dma_wc_mmap(struct snd_dma_buffer *dmab, + struct vm_area_struct *area) +{ + area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); + return snd_dma_continuous_mmap(dmab, area); +} +#else static void *snd_dma_wc_alloc(struct snd_dma_buffer *dmab, size_t size) { return dma_alloc_wc(dmab->dev.dev, size, &dmab->addr, DEFAULT_GFP); @@ -471,6 +503,7 @@ return dma_mmap_wc(dmab->dev.dev, area, dmab->area, dmab->addr, dmab->bytes); } +#endif /* CONFIG_SND_DMA_SGBUF */ static const struct snd_malloc_ops snd_dma_wc_ops = { .alloc = snd_dma_wc_alloc, @@ -478,10 +511,6 @@ .mmap = snd_dma_wc_mmap, }; -#ifdef CONFIG_SND_DMA_SGBUF -static void *snd_dma_sg_fallback_alloc(struct snd_dma_buffer *dmab, size_t size); -#endif - /* * Non-contiguous pages allocator */ @@ -490,27 +519,31 @@ struct sg_table *sgt; void *p; - sgt = dma_alloc_noncontiguous(dmab->dev.dev, size, dmab->dev.dir, - DEFAULT_GFP, 0); - if (!sgt) { #ifdef CONFIG_SND_DMA_SGBUF + if (!get_dma_ops(dmab->dev.dev)) { if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG) dmab->dev.type = SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK; else dmab->dev.type = SNDRV_DMA_TYPE_DEV_SG_FALLBACK; return snd_dma_sg_fallback_alloc(dmab, size); -#else - return NULL; -#endif } +#endif + + sgt = dma_alloc_noncontiguous(dmab->dev.dev, size, dmab->dev.dir, + DEFAULT_GFP, 0); + if (!sgt) + return NULL; dmab->dev.need_sync = dma_need_sync(dmab->dev.dev, sg_dma_address(sgt->sgl)); p = dma_vmap_noncontiguous(dmab->dev.dev, size, sgt); - if (p) + if (p) { dmab->private_data = sgt; - else + /* store the first page address for convenience */ + dmab->addr = snd_sgbuf_get_addr(dmab, 0); + } else { dma_free_noncontiguous(dmab->dev.dev, size, sgt, dmab->dev.dir); + } return p; } @@ -661,6 +694,37 @@ .get_chunk_size = snd_dma_noncontig_get_chunk_size, }; +/* manual page allocations with wc setup */ +static void *do_alloc_fallback_pages(struct device *dev, size_t size, + dma_addr_t *addr, bool wc) +{ + gfp_t gfp = GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN; + void *p; + + again: + p = do_alloc_pages(size, addr, gfp); + if (!p || (*addr + size - 1) & ~dev->coherent_dma_mask) { + if (IS_ENABLED(CONFIG_ZONE_DMA32) && !(gfp & GFP_DMA32)) { + gfp |= GFP_DMA32; + goto again; + } + if (IS_ENABLED(CONFIG_ZONE_DMA) && !(gfp & GFP_DMA)) { + gfp = (gfp & ~GFP_DMA32) | GFP_DMA; + goto again; + } + } + if (p && wc) + set_memory_wc((unsigned long)(p), size >> PAGE_SHIFT); + return p; +} + +static void do_free_fallback_pages(void *p, size_t size, bool wc) +{ + if (wc) + set_memory_wb((unsigned long)(p), size >> PAGE_SHIFT); + free_pages_exact(p, size); +} + /* Fallback SG-buffer allocations for x86 */ struct snd_dma_sg_fallback { size_t count; @@ -671,14 +735,11 @@ static void __snd_dma_sg_fallback_free(struct snd_dma_buffer *dmab, struct snd_dma_sg_fallback *sgbuf) { + bool wc = dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK; size_t i; - if (sgbuf->count && dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK) - set_pages_array_wb(sgbuf->pages, sgbuf->count); for (i = 0; i < sgbuf->count && sgbuf->pages[i]; i++) - dma_free_coherent(dmab->dev.dev, PAGE_SIZE, - page_address(sgbuf->pages[i]), - sgbuf->addrs[i]); + do_free_fallback_pages(page_address(sgbuf->pages[i]), PAGE_SIZE, wc); kvfree(sgbuf->pages); kvfree(sgbuf->addrs); kfree(sgbuf); @@ -690,6 +751,7 @@ struct page **pages; size_t i, count; void *p; + bool wc = dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK; sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL); if (!sgbuf) @@ -704,19 +766,19 @@ goto error; for (i = 0; i < count; sgbuf->count++, i++) { - p = dma_alloc_coherent(dmab->dev.dev, PAGE_SIZE, - &sgbuf->addrs[i], DEFAULT_GFP); + p = do_alloc_fallback_pages(dmab->dev.dev, PAGE_SIZE, + &sgbuf->addrs[i], wc); if (!p) goto error; sgbuf->pages[i] = virt_to_page(p); } - if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK) - set_pages_array_wc(pages, count); p = vmap(pages, count, VM_MAP, PAGE_KERNEL); if (!p) goto error; dmab->private_data = sgbuf; + /* store the first page address for convenience */ + dmab->addr = snd_sgbuf_get_addr(dmab, 0); return p; error: @@ -806,7 +868,7 @@ /* * Entry points */ -static const struct snd_malloc_ops *dma_ops[] = { +static const struct snd_malloc_ops *snd_dma_ops[] = { [SNDRV_DMA_TYPE_CONTINUOUS] = &snd_dma_continuous_ops, [SNDRV_DMA_TYPE_VMALLOC] = &snd_dma_vmalloc_ops, #ifdef CONFIG_HAS_DMA @@ -832,7 +894,7 @@ if (WARN_ON_ONCE(!dmab)) return NULL; if (WARN_ON_ONCE(dmab->dev.type <= SNDRV_DMA_TYPE_UNKNOWN || - dmab->dev.type >= ARRAY_SIZE(dma_ops))) + dmab->dev.type >= ARRAY_SIZE(snd_dma_ops))) return NULL; - return dma_ops[dmab->dev.type]; + return snd_dma_ops[dmab->dev.type]; } --- linux-5.19.0.orig/sound/core/misc.c +++ linux-5.19.0/sound/core/misc.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #ifdef CONFIG_SND_DEBUG @@ -145,3 +146,96 @@ } EXPORT_SYMBOL(snd_pci_quirk_lookup); #endif + +/* + * Deferred async signal helpers + * + * Below are a few helper functions to wrap the async signal handling + * in the deferred work. The main purpose is to avoid the messy deadlock + * around tasklist_lock and co at the kill_fasync() invocation. + * fasync_helper() and kill_fasync() are replaced with snd_fasync_helper() + * and snd_kill_fasync(), respectively. In addition, snd_fasync_free() has + * to be called at releasing the relevant file object. + */ +struct snd_fasync { + struct fasync_struct *fasync; + int signal; + int poll; + int on; + struct list_head list; +}; + +static DEFINE_SPINLOCK(snd_fasync_lock); +static LIST_HEAD(snd_fasync_list); + +static void snd_fasync_work_fn(struct work_struct *work) +{ + struct snd_fasync *fasync; + + spin_lock_irq(&snd_fasync_lock); + while (!list_empty(&snd_fasync_list)) { + fasync = list_first_entry(&snd_fasync_list, struct snd_fasync, list); + list_del_init(&fasync->list); + spin_unlock_irq(&snd_fasync_lock); + if (fasync->on) + kill_fasync(&fasync->fasync, fasync->signal, fasync->poll); + spin_lock_irq(&snd_fasync_lock); + } + spin_unlock_irq(&snd_fasync_lock); +} + +static DECLARE_WORK(snd_fasync_work, snd_fasync_work_fn); + +int snd_fasync_helper(int fd, struct file *file, int on, + struct snd_fasync **fasyncp) +{ + struct snd_fasync *fasync = NULL; + + if (on) { + fasync = kzalloc(sizeof(*fasync), GFP_KERNEL); + if (!fasync) + return -ENOMEM; + INIT_LIST_HEAD(&fasync->list); + } + + spin_lock_irq(&snd_fasync_lock); + if (*fasyncp) { + kfree(fasync); + fasync = *fasyncp; + } else { + if (!fasync) { + spin_unlock_irq(&snd_fasync_lock); + return 0; + } + *fasyncp = fasync; + } + fasync->on = on; + spin_unlock_irq(&snd_fasync_lock); + return fasync_helper(fd, file, on, &fasync->fasync); +} +EXPORT_SYMBOL_GPL(snd_fasync_helper); + +void snd_kill_fasync(struct snd_fasync *fasync, int signal, int poll) +{ + unsigned long flags; + + if (!fasync || !fasync->on) + return; + spin_lock_irqsave(&snd_fasync_lock, flags); + fasync->signal = signal; + fasync->poll = poll; + list_move(&fasync->list, &snd_fasync_list); + schedule_work(&snd_fasync_work); + spin_unlock_irqrestore(&snd_fasync_lock, flags); +} +EXPORT_SYMBOL_GPL(snd_kill_fasync); + +void snd_fasync_free(struct snd_fasync *fasync) +{ + if (!fasync) + return; + fasync->on = 0; + flush_work(&snd_fasync_work); + kfree(fasync); +} +EXPORT_SYMBOL_GPL(snd_fasync_free); --- linux-5.19.0.orig/sound/core/oss/pcm_oss.c +++ linux-5.19.0/sound/core/oss/pcm_oss.c @@ -1672,14 +1672,14 @@ runtime = substream->runtime; if (atomic_read(&substream->mmap_count)) goto __direct; - err = snd_pcm_oss_make_ready(substream); - if (err < 0) - return err; atomic_inc(&runtime->oss.rw_ref); if (mutex_lock_interruptible(&runtime->oss.params_lock)) { atomic_dec(&runtime->oss.rw_ref); return -ERESTARTSYS; } + err = snd_pcm_oss_make_ready_locked(substream); + if (err < 0) + goto unlock; format = snd_pcm_oss_format_from(runtime->oss.format); width = snd_pcm_format_physical_width(format); if (runtime->oss.buffer_used > 0) { --- linux-5.19.0.orig/sound/core/pcm.c +++ linux-5.19.0/sound/core/pcm.c @@ -1005,6 +1005,7 @@ substream->runtime = NULL; } mutex_destroy(&runtime->buffer_mutex); + snd_fasync_free(runtime->fasync); kfree(runtime); put_pid(substream->pid); substream->pid = NULL; --- linux-5.19.0.orig/sound/core/pcm_dmaengine.c +++ linux-5.19.0/sound/core/pcm_dmaengine.c @@ -131,12 +131,14 @@ static void dmaengine_pcm_dma_complete(void *arg) { + unsigned int new_pos; struct snd_pcm_substream *substream = arg; struct dmaengine_pcm_runtime_data *prtd = substream_to_prtd(substream); - prtd->pos += snd_pcm_lib_period_bytes(substream); - if (prtd->pos >= snd_pcm_lib_buffer_bytes(substream)) - prtd->pos = 0; + new_pos = prtd->pos + snd_pcm_lib_period_bytes(substream); + if (new_pos >= snd_pcm_lib_buffer_bytes(substream)) + new_pos = 0; + prtd->pos = new_pos; snd_pcm_period_elapsed(substream); } --- linux-5.19.0.orig/sound/core/pcm_lib.c +++ linux-5.19.0/sound/core/pcm_lib.c @@ -1822,7 +1822,7 @@ snd_timer_interrupt(substream->timer, 1); #endif _end: - kill_fasync(&runtime->fasync, SIGIO, POLL_IN); + snd_kill_fasync(runtime->fasync, SIGIO, POLL_IN); } EXPORT_SYMBOL(snd_pcm_period_elapsed_under_stream_lock); @@ -1906,9 +1906,11 @@ if (avail >= runtime->twake) break; snd_pcm_stream_unlock_irq(substream); + mutex_unlock(&runtime->buffer_mutex); tout = schedule_timeout(wait_time); + mutex_lock(&runtime->buffer_mutex); snd_pcm_stream_lock_irq(substream); set_current_state(TASK_INTERRUPTIBLE); switch (runtime->status->state) { @@ -2219,6 +2221,7 @@ nonblock = !!(substream->f_flags & O_NONBLOCK); + mutex_lock(&runtime->buffer_mutex); snd_pcm_stream_lock_irq(substream); err = pcm_accessible_state(runtime); if (err < 0) @@ -2315,6 +2318,7 @@ if (xfer > 0 && err >= 0) snd_pcm_update_state(substream, runtime); snd_pcm_stream_unlock_irq(substream); + mutex_unlock(&runtime->buffer_mutex); return xfer > 0 ? (snd_pcm_sframes_t)xfer : err; } EXPORT_SYMBOL(__snd_pcm_lib_xfer); --- linux-5.19.0.orig/sound/core/pcm_native.c +++ linux-5.19.0/sound/core/pcm_native.c @@ -1432,8 +1432,10 @@ static void snd_pcm_undo_start(struct snd_pcm_substream *substream, snd_pcm_state_t state) { - if (substream->runtime->trigger_master == substream) + if (substream->runtime->trigger_master == substream) { substream->ops->trigger(substream, SNDRV_PCM_TRIGGER_STOP); + substream->runtime->stop_operating = true; + } } static void snd_pcm_post_start(struct snd_pcm_substream *substream, @@ -3945,7 +3947,7 @@ runtime = substream->runtime; if (runtime->status->state == SNDRV_PCM_STATE_DISCONNECTED) return -EBADFD; - return fasync_helper(fd, file, on, &runtime->fasync); + return snd_fasync_helper(fd, file, on, &runtime->fasync); } /* --- linux-5.19.0.orig/sound/core/rawmidi.c +++ linux-5.19.0/sound/core/rawmidi.c @@ -1835,10 +1835,8 @@ snd_info_free_entry(rmidi->proc_entry); rmidi->proc_entry = NULL; - mutex_lock(®ister_mutex); if (rmidi->ops && rmidi->ops->dev_unregister) rmidi->ops->dev_unregister(rmidi); - mutex_unlock(®ister_mutex); snd_rawmidi_free_substreams(&rmidi->streams[SNDRV_RAWMIDI_STREAM_INPUT]); snd_rawmidi_free_substreams(&rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT]); --- linux-5.19.0.orig/sound/core/seq/oss/seq_oss_midi.c +++ linux-5.19.0/sound/core/seq/oss/seq_oss_midi.c @@ -270,7 +270,9 @@ void snd_seq_oss_midi_setup(struct seq_oss_devinfo *dp) { + spin_lock_irq(®ister_lock); dp->max_mididev = max_midi_devs; + spin_unlock_irq(®ister_lock); } /* --- linux-5.19.0.orig/sound/core/seq/seq_clientmgr.c +++ linux-5.19.0/sound/core/seq/seq_clientmgr.c @@ -121,13 +121,13 @@ spin_unlock_irqrestore(&clients_lock, flags); #ifdef CONFIG_MODULES if (!in_interrupt()) { - static char client_requested[SNDRV_SEQ_GLOBAL_CLIENTS]; - static char card_requested[SNDRV_CARDS]; + static DECLARE_BITMAP(client_requested, SNDRV_SEQ_GLOBAL_CLIENTS); + static DECLARE_BITMAP(card_requested, SNDRV_CARDS); + if (clientid < SNDRV_SEQ_GLOBAL_CLIENTS) { int idx; - if (!client_requested[clientid]) { - client_requested[clientid] = 1; + if (!test_and_set_bit(clientid, client_requested)) { for (idx = 0; idx < 15; idx++) { if (seq_client_load[idx] < 0) break; @@ -142,10 +142,8 @@ int card = (clientid - SNDRV_SEQ_GLOBAL_CLIENTS) / SNDRV_SEQ_CLIENTS_PER_CARD; if (card < snd_ecards_limit) { - if (! card_requested[card]) { - card_requested[card] = 1; + if (!test_and_set_bit(card, card_requested)) snd_request_card(card); - } snd_seq_device_load_drivers(); } } --- linux-5.19.0.orig/sound/core/seq/seq_memory.c +++ linux-5.19.0/sound/core/seq/seq_memory.c @@ -113,15 +113,19 @@ * expand the variable length event to linear buffer space. */ -static int seq_copy_in_kernel(char **bufptr, const void *src, int size) +static int seq_copy_in_kernel(void *ptr, void *src, int size) { + char **bufptr = ptr; + memcpy(*bufptr, src, size); *bufptr += size; return 0; } -static int seq_copy_in_user(char __user **bufptr, const void *src, int size) +static int seq_copy_in_user(void *ptr, void *src, int size) { + char __user **bufptr = ptr; + if (copy_to_user(*bufptr, src, size)) return -EFAULT; *bufptr += size; @@ -151,8 +155,7 @@ return newlen; } err = snd_seq_dump_var_event(event, - in_kernel ? (snd_seq_dump_func_t)seq_copy_in_kernel : - (snd_seq_dump_func_t)seq_copy_in_user, + in_kernel ? seq_copy_in_kernel : seq_copy_in_user, &buf); return err < 0 ? err : newlen; } --- linux-5.19.0.orig/sound/core/sound_oss.c +++ linux-5.19.0/sound/core/sound_oss.c @@ -162,7 +162,6 @@ mutex_unlock(&sound_oss_mutex); return -ENOENT; } - unregister_sound_special(minor); switch (SNDRV_MINOR_OSS_DEVICE(minor)) { case SNDRV_MINOR_OSS_PCM: track2 = SNDRV_MINOR_OSS(cidx, SNDRV_MINOR_OSS_AUDIO); @@ -174,12 +173,18 @@ track2 = SNDRV_MINOR_OSS(cidx, SNDRV_MINOR_OSS_DMMIDI1); break; } - if (track2 >= 0) { - unregister_sound_special(track2); + if (track2 >= 0) snd_oss_minors[track2] = NULL; - } snd_oss_minors[minor] = NULL; mutex_unlock(&sound_oss_mutex); + + /* call unregister_sound_special() outside sound_oss_mutex; + * otherwise may deadlock, as it can trigger the release of a card + */ + unregister_sound_special(minor); + if (track2 >= 0) + unregister_sound_special(track2); + kfree(mptr); return 0; } --- linux-5.19.0.orig/sound/core/timer.c +++ linux-5.19.0/sound/core/timer.c @@ -83,7 +83,7 @@ unsigned int filter; struct timespec64 tstamp; /* trigger tstamp */ wait_queue_head_t qchange_sleep; - struct fasync_struct *fasync; + struct snd_fasync *fasync; struct mutex ioctl_lock; }; @@ -1345,7 +1345,7 @@ } __wake: spin_unlock(&tu->qlock); - kill_fasync(&tu->fasync, SIGIO, POLL_IN); + snd_kill_fasync(tu->fasync, SIGIO, POLL_IN); wake_up(&tu->qchange_sleep); } @@ -1383,7 +1383,7 @@ spin_lock_irqsave(&tu->qlock, flags); snd_timer_user_append_to_tqueue(tu, &r1); spin_unlock_irqrestore(&tu->qlock, flags); - kill_fasync(&tu->fasync, SIGIO, POLL_IN); + snd_kill_fasync(tu->fasync, SIGIO, POLL_IN); wake_up(&tu->qchange_sleep); } @@ -1453,7 +1453,7 @@ spin_unlock(&tu->qlock); if (append == 0) return; - kill_fasync(&tu->fasync, SIGIO, POLL_IN); + snd_kill_fasync(tu->fasync, SIGIO, POLL_IN); wake_up(&tu->qchange_sleep); } @@ -1521,6 +1521,7 @@ snd_timer_instance_free(tu->timeri); } mutex_unlock(&tu->ioctl_lock); + snd_fasync_free(tu->fasync); kfree(tu->queue); kfree(tu->tqueue); kfree(tu); @@ -2135,7 +2136,7 @@ struct snd_timer_user *tu; tu = file->private_data; - return fasync_helper(fd, file, on, &tu->fasync); + return snd_fasync_helper(fd, file, on, &tu->fasync); } static ssize_t snd_timer_user_read(struct file *file, char __user *buffer, --- linux-5.19.0.orig/sound/drivers/aloop.c +++ linux-5.19.0/sound/drivers/aloop.c @@ -605,17 +605,18 @@ cable->streams[SNDRV_PCM_STREAM_PLAYBACK]; struct loopback_pcm *dpcm_capt = cable->streams[SNDRV_PCM_STREAM_CAPTURE]; - unsigned long delta_play = 0, delta_capt = 0; + unsigned long delta_play = 0, delta_capt = 0, cur_jiffies; unsigned int running, count1, count2; + cur_jiffies = jiffies; running = cable->running ^ cable->pause; if (running & (1 << SNDRV_PCM_STREAM_PLAYBACK)) { - delta_play = jiffies - dpcm_play->last_jiffies; + delta_play = cur_jiffies - dpcm_play->last_jiffies; dpcm_play->last_jiffies += delta_play; } if (running & (1 << SNDRV_PCM_STREAM_CAPTURE)) { - delta_capt = jiffies - dpcm_capt->last_jiffies; + delta_capt = cur_jiffies - dpcm_capt->last_jiffies; dpcm_capt->last_jiffies += delta_capt; } --- linux-5.19.0.orig/sound/drivers/mts64.c +++ linux-5.19.0/sound/drivers/mts64.c @@ -815,6 +815,9 @@ u8 status, data; struct snd_rawmidi_substream *substream; + if (!mts) + return; + spin_lock(&mts->lock); ret = mts64_read(mts->pardev->port); data = ret & 0x00ff; --- linux-5.19.0.orig/sound/firewire/dice/dice-stream.c +++ linux-5.19.0/sound/firewire/dice/dice-stream.c @@ -59,7 +59,7 @@ static int select_clock(struct snd_dice *dice, unsigned int rate) { - __be32 reg; + __be32 reg, new; u32 data; int i; int err; @@ -83,15 +83,17 @@ if (completion_done(&dice->clock_accepted)) reinit_completion(&dice->clock_accepted); - reg = cpu_to_be32(data); + new = cpu_to_be32(data); err = snd_dice_transaction_write_global(dice, GLOBAL_CLOCK_SELECT, - ®, sizeof(reg)); + &new, sizeof(new)); if (err < 0) return err; if (wait_for_completion_timeout(&dice->clock_accepted, - msecs_to_jiffies(NOTIFICATION_TIMEOUT_MS)) == 0) - return -ETIMEDOUT; + msecs_to_jiffies(NOTIFICATION_TIMEOUT_MS)) == 0) { + if (reg != new) + return -ETIMEDOUT; + } return 0; } --- linux-5.19.0.orig/sound/hda/hdac_stream.c +++ linux-5.19.0/sound/hda/hdac_stream.c @@ -143,16 +143,27 @@ EXPORT_SYMBOL_GPL(snd_hdac_stream_stop); /** + * snd_hdac_stop_streams - stop all streams + * @bus: HD-audio core bus + */ +void snd_hdac_stop_streams(struct hdac_bus *bus) +{ + struct hdac_stream *stream; + + list_for_each_entry(stream, &bus->stream_list, list) + snd_hdac_stream_stop(stream); +} +EXPORT_SYMBOL_GPL(snd_hdac_stop_streams); + +/** * snd_hdac_stop_streams_and_chip - stop all streams and chip if running * @bus: HD-audio core bus */ void snd_hdac_stop_streams_and_chip(struct hdac_bus *bus) { - struct hdac_stream *stream; if (bus->chip_init) { - list_for_each_entry(stream, &bus->stream_list, list) - snd_hdac_stream_stop(stream); + snd_hdac_stop_streams(bus); snd_hdac_bus_stop_chip(bus); } } --- linux-5.19.0.orig/sound/hda/hdac_sysfs.c +++ linux-5.19.0/sound/hda/hdac_sysfs.c @@ -346,8 +346,10 @@ return -ENOMEM; kobject_init(kobj, &widget_ktype); err = kobject_add(kobj, parent, "%02x", nid); - if (err < 0) + if (err < 0) { + kobject_put(kobj); return err; + } err = sysfs_create_group(kobj, group); if (err < 0) { kobject_put(kobj); --- linux-5.19.0.orig/sound/hda/intel-dsp-config.c +++ linux-5.19.0/sound/hda/intel-dsp-config.c @@ -321,6 +321,11 @@ } }, { + .flags = FLAG_SOF, + .device = 0x34c8, + .codec_hid = &essx_83x6, + }, + { .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, .device = 0x34c8, }, @@ -423,6 +428,11 @@ }, /* Alderlake-PS */ { + .flags = FLAG_SOF, + .device = 0x51c9, + .codec_hid = &essx_83x6, + }, + { .flags = FLAG_SOF | FLAG_SOF_ONLY_IF_DMIC_OR_SOUNDWIRE, .device = 0x51c9, }, --- linux-5.19.0.orig/sound/hda/intel-nhlt.c +++ linux-5.19.0/sound/hda/intel-nhlt.c @@ -55,16 +55,22 @@ /* find max number of channels based on format_configuration */ if (fmt_configs->fmt_count) { + struct nhlt_fmt_cfg *fmt_cfg = fmt_configs->fmt_config; + dev_dbg(dev, "found %d format definitions\n", fmt_configs->fmt_count); for (i = 0; i < fmt_configs->fmt_count; i++) { struct wav_fmt_ext *fmt_ext; - fmt_ext = &fmt_configs->fmt_config[i].fmt_ext; + fmt_ext = &fmt_cfg->fmt_ext; if (fmt_ext->fmt.channels > max_ch) max_ch = fmt_ext->fmt.channels; + + /* Move to the next nhlt_fmt_cfg */ + fmt_cfg = (struct nhlt_fmt_cfg *)(fmt_cfg->config.caps + + fmt_cfg->config.size); } dev_dbg(dev, "max channels found %d\n", max_ch); } else { --- linux-5.19.0.orig/sound/pci/ac97/ac97_codec.c +++ linux-5.19.0/sound/pci/ac97/ac97_codec.c @@ -2009,6 +2009,7 @@ err = device_register(&ac97->dev); if (err < 0) { ac97_err(ac97, "Can't register ac97 bus\n"); + put_device(&ac97->dev); ac97->dev.bus = NULL; return err; } --- linux-5.19.0.orig/sound/pci/asihpi/hpioctl.c +++ linux-5.19.0/sound/pci/asihpi/hpioctl.c @@ -361,7 +361,7 @@ pci_dev->device, pci_dev->subsystem_vendor, pci_dev->subsystem_device, pci_dev->devfn); - if (pci_enable_device(pci_dev) < 0) { + if (pcim_enable_device(pci_dev) < 0) { dev_err(&pci_dev->dev, "pci_enable_device failed, disabling device\n"); return -EIO; --- linux-5.19.0.orig/sound/pci/au88x0/au88x0.h +++ linux-5.19.0/sound/pci/au88x0/au88x0.h @@ -141,7 +141,7 @@ #ifndef CHIP_AU8810 stream_t dma_wt[NR_WT]; wt_voice_t wt_voice[NR_WT]; /* WT register cache. */ - char mixwt[(NR_WT / NR_WTPB) * 6]; /* WT mixin objects */ + s8 mixwt[(NR_WT / NR_WTPB) * 6]; /* WT mixin objects */ #endif /* Global resources */ @@ -235,8 +235,8 @@ static void vortex_connect_default(vortex_t * vortex, int en); static int vortex_adb_allocroute(vortex_t * vortex, int dma, int nr_ch, int dir, int type, int subdev); -static char vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, - int restype); +static int vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, + int restype); #ifndef CHIP_AU8810 static int vortex_wt_allocroute(vortex_t * vortex, int dma, int nr_ch); static void vortex_wt_connect(vortex_t * vortex, int en); --- linux-5.19.0.orig/sound/pci/au88x0/au88x0_core.c +++ linux-5.19.0/sound/pci/au88x0/au88x0_core.c @@ -1998,7 +1998,7 @@ out: Mean checkout if != 0. Else mean Checkin resource. restype: Indicates type of resource to be checked in or out. */ -static char +static int vortex_adb_checkinout(vortex_t * vortex, int resmap[], int out, int restype) { int i, qty = resnum[restype], resinuse = 0; --- linux-5.19.0.orig/sound/pci/emu10k1/emupcm.c +++ linux-5.19.0/sound/pci/emu10k1/emupcm.c @@ -124,7 +124,7 @@ epcm->voices[0]->epcm = epcm; if (voices > 1) { for (i = 1; i < voices; i++) { - epcm->voices[i] = &epcm->emu->voices[epcm->voices[0]->number + i]; + epcm->voices[i] = &epcm->emu->voices[(epcm->voices[0]->number + i) % NUM_G]; epcm->voices[i]->epcm = epcm; } } --- linux-5.19.0.orig/sound/pci/hda/Kconfig +++ linux-5.19.0/sound/pci/hda/Kconfig @@ -93,16 +93,21 @@ config SND_HDA_SCODEC_CS35L41 tristate + select SND_HDA_GENERIC + select REGMAP_IRQ + +config SND_HDA_CS_DSP_CONTROLS + tristate + select CS_DSP config SND_HDA_SCODEC_CS35L41_I2C tristate "Build CS35L41 HD-audio side codec support for I2C Bus" depends on I2C depends on ACPI depends on SND_SOC - select SND_HDA_GENERIC select SND_SOC_CS35L41_LIB select SND_HDA_SCODEC_CS35L41 - select REGMAP_IRQ + select SND_HDA_CS_DSP_CONTROLS help Say Y or M here to include CS35L41 I2C HD-audio side codec support in snd-hda-intel driver, such as ALC287. @@ -115,10 +120,9 @@ depends on SPI_MASTER depends on ACPI depends on SND_SOC - select SND_HDA_GENERIC select SND_SOC_CS35L41_LIB select SND_HDA_SCODEC_CS35L41 - select REGMAP_IRQ + select SND_HDA_CS_DSP_CONTROLS help Say Y or M here to include CS35L41 SPI HD-audio side codec support in snd-hda-intel driver, such as ALC287. --- linux-5.19.0.orig/sound/pci/hda/Makefile +++ linux-5.19.0/sound/pci/hda/Makefile @@ -31,6 +31,7 @@ snd-hda-scodec-cs35l41-objs := cs35l41_hda.o snd-hda-scodec-cs35l41-i2c-objs := cs35l41_hda_i2c.o snd-hda-scodec-cs35l41-spi-objs := cs35l41_hda_spi.o +snd-hda-cs-dsp-ctls-objs := hda_cs_dsp_ctl.o # common driver obj-$(CONFIG_SND_HDA) := snd-hda-codec.o @@ -54,6 +55,7 @@ obj-$(CONFIG_SND_HDA_SCODEC_CS35L41) += snd-hda-scodec-cs35l41.o obj-$(CONFIG_SND_HDA_SCODEC_CS35L41_I2C) += snd-hda-scodec-cs35l41-i2c.o obj-$(CONFIG_SND_HDA_SCODEC_CS35L41_SPI) += snd-hda-scodec-cs35l41-spi.o +obj-$(CONFIG_SND_HDA_CS_DSP_CONTROLS) += snd-hda-cs-dsp-ctls.o # this must be the last entry after codec drivers; # otherwise the codec patches won't be hooked before the PCI probe --- linux-5.19.0.orig/sound/pci/hda/cs35l41_hda.c +++ linux-5.19.0/sound/pci/hda/cs35l41_hda.c @@ -8,30 +8,464 @@ #include #include +#include #include +#include +#include #include "hda_local.h" #include "hda_auto_parser.h" #include "hda_jack.h" #include "hda_generic.h" #include "hda_component.h" #include "cs35l41_hda.h" +#include "hda_cs_dsp_ctl.h" + +#define CS35L41_FIRMWARE_ROOT "cirrus/" +#define CS35L41_PART "cs35l41" + +#define HALO_STATE_DSP_CTL_NAME "HALO_STATE" +#define HALO_STATE_DSP_CTL_TYPE 5 +#define HALO_STATE_DSP_CTL_ALG 262308 +#define CAL_R_DSP_CTL_NAME "CAL_R" +#define CAL_STATUS_DSP_CTL_NAME "CAL_STATUS" +#define CAL_CHECKSUM_DSP_CTL_NAME "CAL_CHECKSUM" +#define CAL_AMBIENT_DSP_CTL_NAME "CAL_AMBIENT" +#define CAL_DSP_CTL_TYPE 5 +#define CAL_DSP_CTL_ALG 205 + +static bool firmware_autostart = 1; +module_param(firmware_autostart, bool, 0444); +MODULE_PARM_DESC(firmware_autostart, "Allow automatic firmware download on boot" + "(0=Disable, 1=Enable) (default=1); "); static const struct reg_sequence cs35l41_hda_config[] = { { CS35L41_PLL_CLK_CTRL, 0x00000430 }, // 3072000Hz, BCLK Input, PLL_REFCLK_EN = 1 + { CS35L41_DSP_CLK_CTRL, 0x00000003 }, // DSP CLK EN { CS35L41_GLOBAL_CLK_CTRL, 0x00000003 }, // GLOBAL_FS = 48 kHz { CS35L41_SP_ENABLES, 0x00010000 }, // ASP_RX1_EN = 1 { CS35L41_SP_RATE_CTRL, 0x00000021 }, // ASP_BCLK_FREQ = 3.072 MHz { CS35L41_SP_FORMAT, 0x20200200 }, // 32 bits RX/TX slots, I2S, clk consumer + { CS35L41_SP_HIZ_CTRL, 0x00000002 }, // Hi-Z unused + { CS35L41_SP_TX_WL, 0x00000018 }, // 24 cycles/slot + { CS35L41_SP_RX_WL, 0x00000018 }, // 24 cycles/slot { CS35L41_DAC_PCM1_SRC, 0x00000008 }, // DACPCM1_SRC = ASPRX1 + { CS35L41_ASP_TX1_SRC, 0x00000018 }, // ASPTX1 SRC = VMON + { CS35L41_ASP_TX2_SRC, 0x00000019 }, // ASPTX2 SRC = IMON + { CS35L41_ASP_TX3_SRC, 0x00000032 }, // ASPTX3 SRC = ERRVOL + { CS35L41_ASP_TX4_SRC, 0x00000033 }, // ASPTX4 SRC = CLASSH_TGT + { CS35L41_DSP1_RX1_SRC, 0x00000008 }, // DSP1RX1 SRC = ASPRX1 + { CS35L41_DSP1_RX2_SRC, 0x00000009 }, // DSP1RX2 SRC = ASPRX2 + { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON + { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON + { CS35L41_DSP1_RX5_SRC, 0x00000020 }, // DSP1RX5 SRC = ERRVOL { CS35L41_AMP_DIG_VOL_CTRL, 0x00000000 }, // AMP_VOL_PCM 0.0 dB { CS35L41_AMP_GAIN_CTRL, 0x00000084 }, // AMP_GAIN_PCM 4.5 dB }; +static const struct reg_sequence cs35l41_hda_config_dsp[] = { + { CS35L41_PLL_CLK_CTRL, 0x00000430 }, // 3072000Hz, BCLK Input, PLL_REFCLK_EN = 1 + { CS35L41_DSP_CLK_CTRL, 0x00000003 }, // DSP CLK EN + { CS35L41_GLOBAL_CLK_CTRL, 0x00000003 }, // GLOBAL_FS = 48 kHz + { CS35L41_SP_ENABLES, 0x00010001 }, // ASP_RX1_EN = 1, ASP_TX1_EN = 1 + { CS35L41_SP_RATE_CTRL, 0x00000021 }, // ASP_BCLK_FREQ = 3.072 MHz + { CS35L41_SP_FORMAT, 0x20200200 }, // 32 bits RX/TX slots, I2S, clk consumer + { CS35L41_SP_HIZ_CTRL, 0x00000003 }, // Hi-Z unused/disabled + { CS35L41_SP_TX_WL, 0x00000018 }, // 24 cycles/slot + { CS35L41_SP_RX_WL, 0x00000018 }, // 24 cycles/slot + { CS35L41_DAC_PCM1_SRC, 0x00000032 }, // DACPCM1_SRC = ERR_VOL + { CS35L41_ASP_TX1_SRC, 0x00000018 }, // ASPTX1 SRC = VMON + { CS35L41_ASP_TX2_SRC, 0x00000019 }, // ASPTX2 SRC = IMON + { CS35L41_ASP_TX3_SRC, 0x00000028 }, // ASPTX3 SRC = VPMON + { CS35L41_ASP_TX4_SRC, 0x00000029 }, // ASPTX4 SRC = VBSTMON + { CS35L41_DSP1_RX1_SRC, 0x00000008 }, // DSP1RX1 SRC = ASPRX1 + { CS35L41_DSP1_RX2_SRC, 0x00000008 }, // DSP1RX2 SRC = ASPRX1 + { CS35L41_DSP1_RX3_SRC, 0x00000018 }, // DSP1RX3 SRC = VMON + { CS35L41_DSP1_RX4_SRC, 0x00000019 }, // DSP1RX4 SRC = IMON + { CS35L41_DSP1_RX5_SRC, 0x00000029 }, // DSP1RX5 SRC = VBSTMON + { CS35L41_AMP_DIG_VOL_CTRL, 0x00000000 }, // AMP_VOL_PCM 0.0 dB + { CS35L41_AMP_GAIN_CTRL, 0x00000233 }, // AMP_GAIN_PCM = 17.5dB AMP_GAIN_PDM = 19.5dB +}; + static const struct reg_sequence cs35l41_hda_mute[] = { { CS35L41_AMP_GAIN_CTRL, 0x00000000 }, // AMP_GAIN_PCM 0.5 dB { CS35L41_AMP_DIG_VOL_CTRL, 0x0000A678 }, // AMP_VOL_PCM Mute }; +static int cs35l41_control_add(struct cs_dsp_coeff_ctl *cs_ctl) +{ + struct cs35l41_hda *cs35l41 = container_of(cs_ctl->dsp, struct cs35l41_hda, cs_dsp); + struct hda_cs_dsp_ctl_info info; + + info.device_name = cs35l41->amp_name; + info.fw_type = cs35l41->firmware_type; + info.card = cs35l41->codec->card; + + return hda_cs_dsp_control_add(cs_ctl, &info); +} + +static const struct cs_dsp_client_ops client_ops = { + .control_add = cs35l41_control_add, + .control_remove = hda_cs_dsp_control_remove, +}; + +static int cs35l41_request_firmware_file(struct cs35l41_hda *cs35l41, + const struct firmware **firmware, char **filename, + const char *dir, const char *ssid, const char *amp_name, + int spkid, const char *filetype) +{ + const char * const dsp_name = cs35l41->cs_dsp.name; + char *s, c; + int ret = 0; + + if (spkid > -1 && ssid && amp_name) + *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s-spkid%d-%s.%s", dir, CS35L41_PART, + dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type], + ssid, spkid, amp_name, filetype); + else if (spkid > -1 && ssid) + *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s-spkid%d.%s", dir, CS35L41_PART, + dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type], + ssid, spkid, filetype); + else if (ssid && amp_name) + *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s-%s.%s", dir, CS35L41_PART, + dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type], + ssid, amp_name, filetype); + else if (ssid) + *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s-%s.%s", dir, CS35L41_PART, + dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type], + ssid, filetype); + else + *filename = kasprintf(GFP_KERNEL, "%s%s-%s-%s.%s", dir, CS35L41_PART, + dsp_name, hda_cs_dsp_fw_ids[cs35l41->firmware_type], + filetype); + + if (*filename == NULL) + return -ENOMEM; + + /* + * Make sure that filename is lower-case and any non alpha-numeric + * characters except full stop and '/' are replaced with hyphens. + */ + s = *filename; + while (*s) { + c = *s; + if (isalnum(c)) + *s = tolower(c); + else if (c != '.' && c != '/') + *s = '-'; + s++; + } + + ret = firmware_request_nowarn(firmware, *filename, cs35l41->dev); + if (ret != 0) { + dev_dbg(cs35l41->dev, "Failed to request '%s'\n", *filename); + kfree(*filename); + *filename = NULL; + } + + return ret; +} + +static int cs35l41_request_firmware_files_spkid(struct cs35l41_hda *cs35l41, + const struct firmware **wmfw_firmware, + char **wmfw_filename, + const struct firmware **coeff_firmware, + char **coeff_filename) +{ + int ret; + + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, cs35l41->amp_name, + cs35l41->speaker_id, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, cs35l41->amp_name, + cs35l41->speaker_id, "bin"); + return 0; + } + + /* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + cs35l41->amp_name, -1, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + cs35l41->amp_name, cs35l41->speaker_id, "bin"); + return 0; + } + + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + NULL, cs35l41->speaker_id, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ + ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + cs35l41->amp_name, cs35l41->speaker_id, "bin"); + if (ret) + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + NULL, cs35l41->speaker_id, "bin"); + return 0; + } + + /* try cirrus/part-dspN-fwtype-sub.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + NULL, -1, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-spkidN><-ampname>.bin */ + ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + cs35l41->amp_name, cs35l41->speaker_id, "bin"); + if (ret) + /* try cirrus/part-dspN-fwtype-sub<-spkidN>.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + NULL, cs35l41->speaker_id, "bin"); + return 0; + } + + /* fallback try cirrus/part-dspN-fwtype.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw"); + if (!ret) { + /* fallback try cirrus/part-dspN-fwtype.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin"); + return 0; + } + + dev_warn(cs35l41->dev, "Failed to request firmware\n"); + + return ret; +} + +static int cs35l41_request_firmware_files(struct cs35l41_hda *cs35l41, + const struct firmware **wmfw_firmware, + char **wmfw_filename, + const struct firmware **coeff_firmware, + char **coeff_filename) +{ + int ret; + + if (cs35l41->speaker_id > -1) + return cs35l41_request_firmware_files_spkid(cs35l41, wmfw_firmware, wmfw_filename, + coeff_firmware, coeff_filename); + + /* try cirrus/part-dspN-fwtype-sub<-ampname>.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + cs35l41->amp_name, -1, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-ampname>.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + cs35l41->amp_name, -1, "bin"); + return 0; + } + + /* try cirrus/part-dspN-fwtype-sub.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, cs35l41->acpi_subsystem_id, + NULL, -1, "wmfw"); + if (!ret) { + /* try cirrus/part-dspN-fwtype-sub<-ampname>.bin */ + ret = cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + cs35l41->amp_name, -1, "bin"); + if (ret) + /* try cirrus/part-dspN-fwtype-sub.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, + cs35l41->acpi_subsystem_id, + NULL, -1, "bin"); + return 0; + } + + /* fallback try cirrus/part-dspN-fwtype.wmfw */ + ret = cs35l41_request_firmware_file(cs35l41, wmfw_firmware, wmfw_filename, + CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "wmfw"); + if (!ret) { + /* fallback try cirrus/part-dspN-fwtype.bin */ + cs35l41_request_firmware_file(cs35l41, coeff_firmware, coeff_filename, + CS35L41_FIRMWARE_ROOT, NULL, NULL, -1, "bin"); + return 0; + } + + dev_warn(cs35l41->dev, "Failed to request firmware\n"); + + return ret; +} + +#if IS_ENABLED(CONFIG_EFI) +static int cs35l41_apply_calibration(struct cs35l41_hda *cs35l41, unsigned int ambient, + unsigned int r0, unsigned int status, unsigned int checksum) +{ + int ret; + + ret = hda_cs_dsp_write_ctl(&cs35l41->cs_dsp, CAL_AMBIENT_DSP_CTL_NAME, CAL_DSP_CTL_TYPE, + CAL_DSP_CTL_ALG, &ambient, 4); + if (ret) { + dev_err(cs35l41->dev, "Cannot Write Control: %s - %d\n", CAL_AMBIENT_DSP_CTL_NAME, + ret); + return ret; + } + ret = hda_cs_dsp_write_ctl(&cs35l41->cs_dsp, CAL_R_DSP_CTL_NAME, CAL_DSP_CTL_TYPE, + CAL_DSP_CTL_ALG, &r0, 4); + if (ret) { + dev_err(cs35l41->dev, "Cannot Write Control: %s - %d\n", CAL_R_DSP_CTL_NAME, ret); + return ret; + } + ret = hda_cs_dsp_write_ctl(&cs35l41->cs_dsp, CAL_STATUS_DSP_CTL_NAME, CAL_DSP_CTL_TYPE, + CAL_DSP_CTL_ALG, &status, 4); + if (ret) { + dev_err(cs35l41->dev, "Cannot Write Control: %s - %d\n", CAL_STATUS_DSP_CTL_NAME, + ret); + return ret; + } + ret = hda_cs_dsp_write_ctl(&cs35l41->cs_dsp, CAL_CHECKSUM_DSP_CTL_NAME, CAL_DSP_CTL_TYPE, + CAL_DSP_CTL_ALG, &checksum, 4); + if (ret) { + dev_err(cs35l41->dev, "Cannot Write Control: %s - %d\n", CAL_CHECKSUM_DSP_CTL_NAME, + ret); + return ret; + } + + return 0; +} + +static int cs35l41_save_calibration(struct cs35l41_hda *cs35l41) +{ + static efi_guid_t efi_guid = EFI_GUID(0x02f9af02, 0x7734, 0x4233, 0xb4, 0x3d, 0x93, 0xfe, + 0x5a, 0xa3, 0x5d, 0xb3); + static efi_char16_t efi_name[] = L"CirrusSmartAmpCalibrationData"; + const struct cs35l41_amp_efi_data *efi_data; + const struct cs35l41_amp_cal_data *cl; + unsigned long data_size = 0; + efi_status_t status; + int ret = 0; + u8 *data = NULL; + u32 attr; + + /* Get real size of UEFI variable */ + status = efi.get_variable(efi_name, &efi_guid, &attr, &data_size, data); + if (status == EFI_BUFFER_TOO_SMALL) { + ret = -ENODEV; + /* Allocate data buffer of data_size bytes */ + data = vmalloc(data_size); + if (!data) + return -ENOMEM; + /* Get variable contents into buffer */ + status = efi.get_variable(efi_name, &efi_guid, &attr, &data_size, data); + if (status == EFI_SUCCESS) { + efi_data = (struct cs35l41_amp_efi_data *)data; + dev_dbg(cs35l41->dev, "Calibration: Size=%d, Amp Count=%d\n", + efi_data->size, efi_data->count); + if (efi_data->count > cs35l41->index) { + cl = &efi_data->data[cs35l41->index]; + dev_dbg(cs35l41->dev, + "Calibration: Ambient=%02x, Status=%02x, R0=%d\n", + cl->calAmbient, cl->calStatus, cl->calR); + + /* Calibration can only be applied whilst the DSP is not running */ + ret = cs35l41_apply_calibration(cs35l41, + cpu_to_be32(cl->calAmbient), + cpu_to_be32(cl->calR), + cpu_to_be32(cl->calStatus), + cpu_to_be32(cl->calR + 1)); + } + } + vfree(data); + } + return ret; +} +#else +static int cs35l41_save_calibration(struct cs35l41_hda *cs35l41) +{ + dev_warn(cs35l41->dev, "Calibration not supported without EFI support.\n"); + return 0; +} +#endif + +static int cs35l41_init_dsp(struct cs35l41_hda *cs35l41) +{ + const struct firmware *coeff_firmware = NULL; + const struct firmware *wmfw_firmware = NULL; + struct cs_dsp *dsp = &cs35l41->cs_dsp; + char *coeff_filename = NULL; + char *wmfw_filename = NULL; + int ret; + + if (!cs35l41->halo_initialized) { + cs35l41_configure_cs_dsp(cs35l41->dev, cs35l41->regmap, dsp); + dsp->client_ops = &client_ops; + + ret = cs_dsp_halo_init(&cs35l41->cs_dsp); + if (ret) + return ret; + cs35l41->halo_initialized = true; + } + + ret = cs35l41_request_firmware_files(cs35l41, &wmfw_firmware, &wmfw_filename, + &coeff_firmware, &coeff_filename); + if (ret < 0) + return ret; + + dev_dbg(cs35l41->dev, "Loading WMFW Firmware: %s\n", wmfw_filename); + if (coeff_filename) + dev_dbg(cs35l41->dev, "Loading Coefficient File: %s\n", coeff_filename); + else + dev_warn(cs35l41->dev, "No Coefficient File available.\n"); + + ret = cs_dsp_power_up(dsp, wmfw_firmware, wmfw_filename, coeff_firmware, coeff_filename, + hda_cs_dsp_fw_ids[cs35l41->firmware_type]); + if (ret) + goto err_release; + + ret = cs35l41_save_calibration(cs35l41); + +err_release: + release_firmware(wmfw_firmware); + release_firmware(coeff_firmware); + kfree(wmfw_filename); + kfree(coeff_filename); + + return ret; +} + +static void cs35l41_shutdown_dsp(struct cs35l41_hda *cs35l41) +{ + struct cs_dsp *dsp = &cs35l41->cs_dsp; + + cs_dsp_stop(dsp); + cs_dsp_power_down(dsp); + cs35l41->firmware_running = false; + dev_dbg(cs35l41->dev, "Unloaded Firmware\n"); +} + +static void cs35l41_remove_dsp(struct cs35l41_hda *cs35l41) +{ + struct cs_dsp *dsp = &cs35l41->cs_dsp; + + cancel_work_sync(&cs35l41->fw_load_work); + cs35l41_shutdown_dsp(cs35l41); + cs_dsp_remove(dsp); + cs35l41->halo_initialized = false; +} + /* Protection release cycle to get the speaker out of Safe-Mode */ static void cs35l41_error_release(struct device *dev, struct regmap *regmap, unsigned int mask) { @@ -53,9 +487,23 @@ struct regmap *reg = cs35l41->regmap; int ret = 0; + mutex_lock(&cs35l41->fw_mutex); + switch (action) { case HDA_GEN_PCM_ACT_OPEN: - regmap_multi_reg_write(reg, cs35l41_hda_config, ARRAY_SIZE(cs35l41_hda_config)); + cs35l41->playback_started = true; + if (cs35l41->firmware_running) { + regmap_multi_reg_write(reg, cs35l41_hda_config_dsp, + ARRAY_SIZE(cs35l41_hda_config_dsp)); + regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, + CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, + 1 << CS35L41_VMON_EN_SHIFT | 1 << CS35L41_IMON_EN_SHIFT); + cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, + CSPL_MBOX_CMD_RESUME); + } else { + regmap_multi_reg_write(reg, cs35l41_hda_config, + ARRAY_SIZE(cs35l41_hda_config)); + } ret = regmap_update_bits(reg, CS35L41_PWR_CTRL2, CS35L41_AMP_EN_MASK, 1 << CS35L41_AMP_EN_SHIFT); if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) @@ -73,13 +521,23 @@ CS35L41_AMP_EN_MASK, 0 << CS35L41_AMP_EN_SHIFT); if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) regmap_write(reg, CS35L41_GPIO1_CTRL1, 0x00000001); + if (cs35l41->firmware_running) { + cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, + CSPL_MBOX_CMD_PAUSE); + regmap_update_bits(cs35l41->regmap, CS35L41_PWR_CTRL2, + CS35L41_VMON_EN_MASK | CS35L41_IMON_EN_MASK, + 0 << CS35L41_VMON_EN_SHIFT | 0 << CS35L41_IMON_EN_SHIFT); + } cs35l41_irq_release(cs35l41); + cs35l41->playback_started = false; break; default: dev_warn(cs35l41->dev, "Playback action not supported: %d\n", action); break; } + mutex_unlock(&cs35l41->fw_mutex); + if (ret) dev_err(cs35l41->dev, "Regmap access fail: %d\n", ret); } @@ -104,10 +562,274 @@ rx_slot); } +static int cs35l41_runtime_suspend(struct device *dev) +{ + struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); + + dev_dbg(cs35l41->dev, "Suspend\n"); + + if (!cs35l41->firmware_running) + return 0; + + if (cs35l41_enter_hibernate(cs35l41->dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type) < 0) + return 0; + + regcache_cache_only(cs35l41->regmap, true); + regcache_mark_dirty(cs35l41->regmap); + + return 0; +} + +static int cs35l41_runtime_resume(struct device *dev) +{ + struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); + int ret; + + dev_dbg(cs35l41->dev, "Resume.\n"); + + if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST_NO_VSPK_SWITCH) { + dev_dbg(cs35l41->dev, "System does not support Resume\n"); + return 0; + } + + if (!cs35l41->firmware_running) + return 0; + + regcache_cache_only(cs35l41->regmap, false); + + ret = cs35l41_exit_hibernate(cs35l41->dev, cs35l41->regmap); + if (ret) { + regcache_cache_only(cs35l41->regmap, true); + return ret; + } + + /* Test key needs to be unlocked to allow the OTP settings to re-apply */ + cs35l41_test_key_unlock(cs35l41->dev, cs35l41->regmap); + ret = regcache_sync(cs35l41->regmap); + cs35l41_test_key_lock(cs35l41->dev, cs35l41->regmap); + if (ret) { + dev_err(cs35l41->dev, "Failed to restore register cache: %d\n", ret); + return ret; + } + + if (cs35l41->hw_cfg.bst_type == CS35L41_EXT_BOOST) + cs35l41_init_boost(cs35l41->dev, cs35l41->regmap, &cs35l41->hw_cfg); + + return 0; +} + +static int cs35l41_hda_suspend_hook(struct device *dev) +{ + dev_dbg(dev, "Request Suspend\n"); + pm_runtime_mark_last_busy(dev); + return pm_runtime_put_autosuspend(dev); +} + +static int cs35l41_hda_resume_hook(struct device *dev) +{ + dev_dbg(dev, "Request Resume\n"); + return pm_runtime_get_sync(dev); +} + +static int cs35l41_smart_amp(struct cs35l41_hda *cs35l41) +{ + int halo_sts; + int ret; + + ret = cs35l41_init_dsp(cs35l41); + if (ret) { + dev_warn(cs35l41->dev, "Cannot Initialize Firmware. Error: %d\n", ret); + goto clean_dsp; + } + + ret = cs35l41_write_fs_errata(cs35l41->dev, cs35l41->regmap); + if (ret) { + dev_err(cs35l41->dev, "Cannot Write FS Errata: %d\n", ret); + goto clean_dsp; + } + + ret = cs_dsp_run(&cs35l41->cs_dsp); + if (ret) { + dev_err(cs35l41->dev, "Fail to start dsp: %d\n", ret); + goto clean_dsp; + } + + ret = read_poll_timeout(hda_cs_dsp_read_ctl, ret, + be32_to_cpu(halo_sts) == HALO_STATE_CODE_RUN, + 1000, 15000, false, &cs35l41->cs_dsp, HALO_STATE_DSP_CTL_NAME, + HALO_STATE_DSP_CTL_TYPE, HALO_STATE_DSP_CTL_ALG, + &halo_sts, sizeof(halo_sts)); + + if (ret) { + dev_err(cs35l41->dev, "Timeout waiting for HALO Core to start. State: %d\n", + halo_sts); + goto clean_dsp; + } + + cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, CSPL_MBOX_CMD_PAUSE); + cs35l41->firmware_running = true; + + return 0; + +clean_dsp: + cs35l41_shutdown_dsp(cs35l41); + return ret; +} + +static void cs35l41_load_firmware(struct cs35l41_hda *cs35l41, bool load) +{ + pm_runtime_get_sync(cs35l41->dev); + + if (cs35l41->firmware_running && !load) { + dev_dbg(cs35l41->dev, "Unloading Firmware\n"); + cs35l41_shutdown_dsp(cs35l41); + } else if (!cs35l41->firmware_running && load) { + dev_dbg(cs35l41->dev, "Loading Firmware\n"); + cs35l41_smart_amp(cs35l41); + } else { + dev_dbg(cs35l41->dev, "Unable to Load firmware.\n"); + } + + pm_runtime_mark_last_busy(cs35l41->dev); + pm_runtime_put_autosuspend(cs35l41->dev); +} + +static int cs35l41_fw_load_ctl_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct cs35l41_hda *cs35l41 = snd_kcontrol_chip(kcontrol); + + ucontrol->value.integer.value[0] = cs35l41->request_fw_load; + return 0; +} + +static void cs35l41_fw_load_work(struct work_struct *work) +{ + struct cs35l41_hda *cs35l41 = container_of(work, struct cs35l41_hda, fw_load_work); + + mutex_lock(&cs35l41->fw_mutex); + + /* Recheck if playback is ongoing, mutex will block playback during firmware loading */ + if (cs35l41->playback_started) + dev_err(cs35l41->dev, "Cannot Load/Unload firmware during Playback\n"); + else + cs35l41_load_firmware(cs35l41, cs35l41->request_fw_load); + + cs35l41->fw_request_ongoing = false; + mutex_unlock(&cs35l41->fw_mutex); +} + +static int cs35l41_fw_load_ctl_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct cs35l41_hda *cs35l41 = snd_kcontrol_chip(kcontrol); + unsigned int ret = 0; + + mutex_lock(&cs35l41->fw_mutex); + + if (cs35l41->request_fw_load == ucontrol->value.integer.value[0]) + goto err; + + if (cs35l41->fw_request_ongoing) { + dev_dbg(cs35l41->dev, "Existing request not complete\n"); + ret = -EBUSY; + goto err; + } + + /* Check if playback is ongoing when initial request is made */ + if (cs35l41->playback_started) { + dev_err(cs35l41->dev, "Cannot Load/Unload firmware during Playback\n"); + ret = -EBUSY; + goto err; + } + + cs35l41->fw_request_ongoing = true; + cs35l41->request_fw_load = ucontrol->value.integer.value[0]; + schedule_work(&cs35l41->fw_load_work); + +err: + mutex_unlock(&cs35l41->fw_mutex); + + return ret; +} + +static int cs35l41_fw_type_ctl_get(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct cs35l41_hda *cs35l41 = snd_kcontrol_chip(kcontrol); + + ucontrol->value.enumerated.item[0] = cs35l41->firmware_type; + + return 0; +} + +static int cs35l41_fw_type_ctl_put(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_value *ucontrol) +{ + struct cs35l41_hda *cs35l41 = snd_kcontrol_chip(kcontrol); + + if (ucontrol->value.enumerated.item[0] < HDA_CS_DSP_NUM_FW) { + cs35l41->firmware_type = ucontrol->value.enumerated.item[0]; + return 0; + } + + return -EINVAL; +} + +static int cs35l41_fw_type_ctl_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) +{ + return snd_ctl_enum_info(uinfo, 1, ARRAY_SIZE(hda_cs_dsp_fw_ids), hda_cs_dsp_fw_ids); +} + +static int cs35l41_create_controls(struct cs35l41_hda *cs35l41) +{ + char fw_type_ctl_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + char fw_load_ctl_name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + struct snd_kcontrol_new fw_type_ctl = { + .name = fw_type_ctl_name, + .iface = SNDRV_CTL_ELEM_IFACE_CARD, + .info = cs35l41_fw_type_ctl_info, + .get = cs35l41_fw_type_ctl_get, + .put = cs35l41_fw_type_ctl_put, + }; + struct snd_kcontrol_new fw_load_ctl = { + .name = fw_load_ctl_name, + .iface = SNDRV_CTL_ELEM_IFACE_CARD, + .info = snd_ctl_boolean_mono_info, + .get = cs35l41_fw_load_ctl_get, + .put = cs35l41_fw_load_ctl_put, + }; + int ret; + + scnprintf(fw_type_ctl_name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, "%s DSP1 Firmware Type", + cs35l41->amp_name); + scnprintf(fw_load_ctl_name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, "%s DSP1 Firmware Load", + cs35l41->amp_name); + + ret = snd_ctl_add(cs35l41->codec->card, snd_ctl_new1(&fw_type_ctl, cs35l41)); + if (ret) { + dev_err(cs35l41->dev, "Failed to add KControl %s = %d\n", fw_type_ctl.name, ret); + return ret; + } + + dev_dbg(cs35l41->dev, "Added Control %s\n", fw_type_ctl.name); + + ret = snd_ctl_add(cs35l41->codec->card, snd_ctl_new1(&fw_load_ctl, cs35l41)); + if (ret) { + dev_err(cs35l41->dev, "Failed to add KControl %s = %d\n", fw_load_ctl.name, ret); + return ret; + } + + dev_dbg(cs35l41->dev, "Added Control %s\n", fw_load_ctl.name); + + return 0; +} + static int cs35l41_hda_bind(struct device *dev, struct device *master, void *master_data) { struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); struct hda_component *comps = master_data; + int ret = 0; if (!comps || cs35l41->index < 0 || cs35l41->index >= HDA_MAX_COMPONENTS) return -EINVAL; @@ -116,11 +838,38 @@ if (comps->dev) return -EBUSY; + pm_runtime_get_sync(dev); + comps->dev = dev; + if (!cs35l41->acpi_subsystem_id) + cs35l41->acpi_subsystem_id = devm_kasprintf(dev, GFP_KERNEL, "%.8x", + comps->codec->core.subsystem_id); + cs35l41->codec = comps->codec; strscpy(comps->name, dev_name(dev), sizeof(comps->name)); + + cs35l41->firmware_type = HDA_CS_DSP_FW_SPK_PROT; + + if (firmware_autostart) { + dev_dbg(cs35l41->dev, "Firmware Autostart.\n"); + cs35l41->request_fw_load = true; + mutex_lock(&cs35l41->fw_mutex); + if (cs35l41_smart_amp(cs35l41) < 0) + dev_warn(cs35l41->dev, "Cannot Run Firmware, reverting to dsp bypass...\n"); + mutex_unlock(&cs35l41->fw_mutex); + } else { + dev_dbg(cs35l41->dev, "Firmware Autostart is disabled.\n"); + } + + ret = cs35l41_create_controls(cs35l41); + comps->playback_hook = cs35l41_hda_playback_hook; + comps->suspend_hook = cs35l41_hda_suspend_hook; + comps->resume_hook = cs35l41_hda_resume_hook; - return 0; + pm_runtime_mark_last_busy(dev); + pm_runtime_put_autosuspend(dev); + + return ret; } static void cs35l41_hda_unbind(struct device *dev, struct device *master, void *master_data) @@ -215,7 +964,7 @@ CS35L41_REG_IRQ(IRQ1_STATUS1, AMP_SHORT_ERR), }; -static const struct regmap_irq_chip cs35l41_regmap_irq_chip = { +static struct regmap_irq_chip cs35l41_regmap_irq_chip = { .name = "cs35l41 IRQ1 Controller", .status_base = CS35L41_IRQ1_STATUS1, .mask_base = CS35L41_IRQ1_MASK1, @@ -223,6 +972,7 @@ .num_regs = 4, .irqs = cs35l41_reg_irqs, .num_irqs = ARRAY_SIZE(cs35l41_reg_irqs), + .runtime_pm = true, }; static int cs35l41_hda_apply_properties(struct cs35l41_hda *cs35l41) @@ -297,6 +1047,91 @@ return cs35l41_hda_channel_map(cs35l41->dev, 0, NULL, 1, &hw_cfg->spk_pos); } +static int cs35l41_get_acpi_sub_string(struct device *dev, struct acpi_device *adev, + const char **subsysid) +{ + struct acpi_buffer buffer = { ACPI_ALLOCATE_BUFFER, NULL }; + union acpi_object *obj; + acpi_status status; + int ret = 0; + + status = acpi_evaluate_object(adev->handle, "_SUB", NULL, &buffer); + if (ACPI_SUCCESS(status)) { + obj = buffer.pointer; + if (obj->type == ACPI_TYPE_STRING) { + *subsysid = devm_kstrdup(dev, obj->string.pointer, GFP_KERNEL); + if (*subsysid == NULL) { + dev_err(dev, "Cannot allocate Subsystem ID"); + ret = -ENOMEM; + } + } else { + dev_warn(dev, "Warning ACPI _SUB did not return a string\n"); + ret = -ENODEV; + } + acpi_os_free(buffer.pointer); + } else { + dev_dbg(dev, "Warning ACPI _SUB failed: %#x\n", status); + ret = -ENODEV; + } + + return ret; +} + +static int cs35l41_get_speaker_id(struct device *dev, int amp_index, + int num_amps, int fixed_gpio_id) +{ + struct gpio_desc *speaker_id_desc; + int speaker_id = -ENODEV; + + if (fixed_gpio_id >= 0) { + dev_dbg(dev, "Found Fixed Speaker ID GPIO (index = %d)\n", fixed_gpio_id); + speaker_id_desc = gpiod_get_index(dev, NULL, fixed_gpio_id, GPIOD_IN); + if (IS_ERR(speaker_id_desc)) { + speaker_id = PTR_ERR(speaker_id_desc); + return speaker_id; + } + speaker_id = gpiod_get_value_cansleep(speaker_id_desc); + gpiod_put(speaker_id_desc); + dev_dbg(dev, "Speaker ID = %d\n", speaker_id); + } else { + int base_index; + int gpios_per_amp; + int count; + int tmp; + int i; + + count = gpiod_count(dev, "spk-id"); + if (count > 0) { + speaker_id = 0; + gpios_per_amp = count / num_amps; + base_index = gpios_per_amp * amp_index; + + if (count % num_amps) + return -EINVAL; + + dev_dbg(dev, "Found %d Speaker ID GPIOs per Amp\n", gpios_per_amp); + + for (i = 0; i < gpios_per_amp; i++) { + speaker_id_desc = gpiod_get_index(dev, "spk-id", i + base_index, + GPIOD_IN); + if (IS_ERR(speaker_id_desc)) { + speaker_id = PTR_ERR(speaker_id_desc); + break; + } + tmp = gpiod_get_value_cansleep(speaker_id_desc); + gpiod_put(speaker_id_desc); + if (tmp < 0) { + speaker_id = tmp; + break; + } + speaker_id |= tmp << i; + } + dev_dbg(dev, "Speaker ID = %d\n", speaker_id); + } + } + return speaker_id; +} + static int cs35l41_hda_read_acpi(struct cs35l41_hda *cs35l41, const char *hid, int id) { struct cs35l41_hw_cfg *hw_cfg = &cs35l41->hw_cfg; @@ -316,6 +1151,12 @@ physdev = get_device(acpi_get_first_physical_node(adev)); acpi_dev_put(adev); + ret = cs35l41_get_acpi_sub_string(cs35l41->dev, adev, &cs35l41->acpi_subsystem_id); + if (ret) + dev_info(cs35l41->dev, "No Subsystem ID found in ACPI: %d", ret); + else + dev_dbg(cs35l41->dev, "Subsystem ID %s found", cs35l41->acpi_subsystem_id); + property = "cirrus,dev-index"; ret = device_property_count_u32(physdev, property); if (ret <= 0) @@ -347,7 +1188,7 @@ /* To use the same release code for all laptop variants we can't use devm_ version of * gpiod_get here, as CLSA010* don't have a fully functional bios with an _DSD node */ - cs35l41->reset_gpio = fwnode_gpiod_get_index(&adev->fwnode, "reset", cs35l41->index, + cs35l41->reset_gpio = fwnode_gpiod_get_index(acpi_fwnode_handle(adev), "reset", cs35l41->index, GPIOD_OUT_LOW, "cs35l41-reset"); property = "cirrus,speaker-position"; @@ -396,6 +1237,8 @@ else hw_cfg->bst_cap = -1; + cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, cs35l41->index, nval, -1); + if (hw_cfg->bst_ind > 0 || hw_cfg->bst_cap > 0 || hw_cfg->bst_ipk > 0) hw_cfg->bst_type = CS35L41_INT_BOOST; else @@ -429,6 +1272,7 @@ cs35l41->channel_index = 0; cs35l41->reset_gpio = gpiod_get_index(physdev, NULL, 0, GPIOD_OUT_HIGH); cs35l41->hw_cfg.bst_type = CS35L41_EXT_BOOST_NO_VSPK_SWITCH; + cs35l41->speaker_id = cs35l41_get_speaker_id(physdev, 0, 0, 2); hw_cfg->gpio2.func = CS35L41_GPIO2_INT_OPEN_DRAIN; hw_cfg->gpio2.valid = true; cs35l41->hw_cfg.valid = true; @@ -536,13 +1380,26 @@ if (ret) goto err; + INIT_WORK(&cs35l41->fw_load_work, cs35l41_fw_load_work); + mutex_init(&cs35l41->fw_mutex); + + pm_runtime_set_autosuspend_delay(cs35l41->dev, 3000); + pm_runtime_use_autosuspend(cs35l41->dev); + pm_runtime_mark_last_busy(cs35l41->dev); + pm_runtime_set_active(cs35l41->dev); + pm_runtime_get_noresume(cs35l41->dev); + pm_runtime_enable(cs35l41->dev); + ret = cs35l41_hda_apply_properties(cs35l41); if (ret) - goto err; + goto err_pm; + + pm_runtime_put_autosuspend(cs35l41->dev); ret = component_add(cs35l41->dev, &cs35l41_hda_comp_ops); if (ret) { dev_err(cs35l41->dev, "Register component failed: %d\n", ret); + pm_runtime_disable(cs35l41->dev); goto err; } @@ -550,6 +1407,10 @@ return 0; +err_pm: + pm_runtime_disable(cs35l41->dev); + pm_runtime_put_noidle(cs35l41->dev); + err: if (cs35l41_safe_reset(cs35l41->regmap, cs35l41->hw_cfg.bst_type)) gpiod_set_value_cansleep(cs35l41->reset_gpio, 0); @@ -563,14 +1424,28 @@ { struct cs35l41_hda *cs35l41 = dev_get_drvdata(dev); + pm_runtime_get_sync(cs35l41->dev); + pm_runtime_disable(cs35l41->dev); + + if (cs35l41->halo_initialized) + cs35l41_remove_dsp(cs35l41); + component_del(cs35l41->dev, &cs35l41_hda_comp_ops); + pm_runtime_put_noidle(cs35l41->dev); + if (cs35l41_safe_reset(cs35l41->regmap, cs35l41->hw_cfg.bst_type)) gpiod_set_value_cansleep(cs35l41->reset_gpio, 0); gpiod_put(cs35l41->reset_gpio); } EXPORT_SYMBOL_NS_GPL(cs35l41_hda_remove, SND_HDA_SCODEC_CS35L41); +const struct dev_pm_ops cs35l41_hda_pm_ops = { + SET_RUNTIME_PM_OPS(cs35l41_runtime_suspend, cs35l41_runtime_resume, NULL) +}; +EXPORT_SYMBOL_NS_GPL(cs35l41_hda_pm_ops, SND_HDA_SCODEC_CS35L41); + MODULE_DESCRIPTION("CS35L41 HDA Driver"); +MODULE_IMPORT_NS(SND_HDA_CS_DSP_CONTROLS); MODULE_AUTHOR("Lucas Tanure, Cirrus Logic Inc, "); MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/sound/pci/hda/cs35l41_hda.h +++ linux-5.19.0/sound/pci/hda/cs35l41_hda.h @@ -10,11 +10,29 @@ #ifndef __CS35L41_HDA_H__ #define __CS35L41_HDA_H__ +#include #include #include #include #include +#include +#include + +struct cs35l41_amp_cal_data { + u32 calTarget[2]; + u32 calTime[2]; + s8 calAmbient; + u8 calStatus; + u16 calR; +} __packed; + +struct cs35l41_amp_efi_data { + u32 size; + u32 count; + struct cs35l41_amp_cal_data data[]; +} __packed; + enum cs35l41_hda_spk_pos { CS35l41_LEFT, CS35l41_RIGHT, @@ -32,15 +50,36 @@ struct regmap *regmap; struct gpio_desc *reset_gpio; struct cs35l41_hw_cfg hw_cfg; + struct hda_codec *codec; int irq; int index; int channel_index; unsigned volatile long irq_errors; const char *amp_name; + const char *acpi_subsystem_id; + int firmware_type; + int speaker_id; + struct mutex fw_mutex; + struct work_struct fw_load_work; + struct regmap_irq_chip_data *irq_data; + bool firmware_running; + bool request_fw_load; + bool fw_request_ongoing; + bool halo_initialized; + bool playback_started; + struct cs_dsp cs_dsp; }; +enum halo_state { + HALO_STATE_CODE_INIT_DOWNLOAD = 0, + HALO_STATE_CODE_START, + HALO_STATE_CODE_RUN +}; + +extern const struct dev_pm_ops cs35l41_hda_pm_ops; + int cs35l41_hda_probe(struct device *dev, const char *device_name, int id, int irq, struct regmap *regmap); void cs35l41_hda_remove(struct device *dev); --- linux-5.19.0.orig/sound/pci/hda/cs35l41_hda_i2c.c +++ linux-5.19.0/sound/pci/hda/cs35l41_hda_i2c.c @@ -6,9 +6,9 @@ // // Author: Lucas Tanure +#include #include #include -#include #include "cs35l41_hda.h" @@ -42,19 +42,18 @@ {} }; -#ifdef CONFIG_ACPI static const struct acpi_device_id cs35l41_acpi_hda_match[] = { {"CLSA0100", 0 }, {"CSC3551", 0 }, - { }, + {} }; MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match); -#endif static struct i2c_driver cs35l41_i2c_driver = { .driver = { .name = "cs35l41-hda", - .acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match), + .acpi_match_table = cs35l41_acpi_hda_match, + .pm = &cs35l41_hda_pm_ops, }, .id_table = cs35l41_hda_i2c_id, .probe = cs35l41_hda_i2c_probe, --- linux-5.19.0.orig/sound/pci/hda/cs35l41_hda_spi.c +++ linux-5.19.0/sound/pci/hda/cs35l41_hda_spi.c @@ -6,7 +6,7 @@ // // Author: Lucas Tanure -#include +#include #include #include @@ -38,18 +38,17 @@ {} }; -#ifdef CONFIG_ACPI static const struct acpi_device_id cs35l41_acpi_hda_match[] = { { "CSC3551", 0 }, - {}, + {} }; MODULE_DEVICE_TABLE(acpi, cs35l41_acpi_hda_match); -#endif static struct spi_driver cs35l41_spi_driver = { .driver = { .name = "cs35l41-hda", - .acpi_match_table = ACPI_PTR(cs35l41_acpi_hda_match), + .acpi_match_table = cs35l41_acpi_hda_match, + .pm = &cs35l41_hda_pm_ops, }, .id_table = cs35l41_hda_spi_id, .probe = cs35l41_hda_spi_probe, --- linux-5.19.0.orig/sound/pci/hda/hda_beep.c +++ linux-5.19.0/sound/pci/hda/hda_beep.c @@ -118,6 +118,12 @@ return 0; } +static void turn_on_beep(struct hda_beep *beep) +{ + if (beep->keep_power_at_enable) + snd_hda_power_up_pm(beep->codec); +} + static void turn_off_beep(struct hda_beep *beep) { cancel_work_sync(&beep->beep_work); @@ -125,6 +131,8 @@ /* turn off beep */ generate_tone(beep, 0); } + if (beep->keep_power_at_enable) + snd_hda_power_down_pm(beep->codec); } /** @@ -140,7 +148,9 @@ enable = !!enable; if (beep->enabled != enable) { beep->enabled = enable; - if (!enable) + if (enable) + turn_on_beep(beep); + else turn_off_beep(beep); return 1; } @@ -167,7 +177,8 @@ input_unregister_device(beep->dev); else input_free_device(beep->dev); - turn_off_beep(beep); + if (beep->enabled) + turn_off_beep(beep); return 0; } --- linux-5.19.0.orig/sound/pci/hda/hda_beep.h +++ linux-5.19.0/sound/pci/hda/hda_beep.h @@ -25,6 +25,7 @@ unsigned int enabled:1; unsigned int linear_tone:1; /* linear tone for IDT/STAC codec */ unsigned int playing:1; + unsigned int keep_power_at_enable:1; /* set by driver */ struct work_struct beep_work; /* scheduled task for beep event */ struct mutex mutex; void (*power_hook)(struct hda_beep *beep, bool on); --- linux-5.19.0.orig/sound/pci/hda/hda_bind.c +++ linux-5.19.0/sound/pci/hda/hda_bind.c @@ -157,10 +157,10 @@ return codec->bus->core.ext_ops->hdev_detach(&codec->core); } - refcount_dec(&codec->pcm_ref); snd_hda_codec_disconnect_pcms(codec); snd_hda_jack_tbl_disconnect(codec); - wait_event(codec->remove_sleep, !refcount_read(&codec->pcm_ref)); + if (!refcount_dec_and_test(&codec->pcm_ref)) + wait_event(codec->remove_sleep, !refcount_read(&codec->pcm_ref)); snd_power_sync_ref(codec->bus->card); if (codec->patch_ops.free) --- linux-5.19.0.orig/sound/pci/hda/hda_codec.c +++ linux-5.19.0/sound/pci/hda/hda_codec.c @@ -2888,7 +2888,8 @@ snd_hdac_enter_pm(&codec->core); if (codec->patch_ops.suspend) codec->patch_ops.suspend(codec); - hda_cleanup_all_streams(codec); + if (!codec->no_stream_clean_at_suspend) + hda_cleanup_all_streams(codec); state = hda_set_power_state(codec, AC_PWRST_D3); update_power_acct(codec, true); snd_hdac_leave_pm(&codec->core); @@ -2935,8 +2936,7 @@ if (!codec->card) return 0; - if (!codec->bus->jackpoll_in_suspend) - cancel_delayed_work_sync(&codec->jackpoll_work); + cancel_delayed_work_sync(&codec->jackpoll_work); state = hda_call_codec_suspend(codec); if (codec->link_down_at_suspend || @@ -2944,6 +2944,11 @@ (state & AC_PWRST_CLK_STOP_OK))) snd_hdac_codec_link_down(&codec->core); snd_hda_codec_display_power(codec, false); + + if (codec->bus->jackpoll_in_suspend && + (dev->power.power_state.event != PM_EVENT_SUSPEND)) + schedule_delayed_work(&codec->jackpoll_work, + codec->jackpoll_interval); return 0; } @@ -2967,6 +2972,9 @@ #ifdef CONFIG_PM_SLEEP static int hda_codec_pm_prepare(struct device *dev) { + struct hda_codec *codec = dev_to_hda_codec(dev); + + cancel_delayed_work_sync(&codec->jackpoll_work); dev->power.power_state = PMSG_SUSPEND; return pm_runtime_suspended(dev); } @@ -2986,9 +2994,6 @@ static int hda_codec_pm_suspend(struct device *dev) { - struct hda_codec *codec = dev_to_hda_codec(dev); - - cancel_delayed_work_sync(&codec->jackpoll_work); dev->power.power_state = PMSG_SUSPEND; return pm_runtime_force_suspend(dev); } --- linux-5.19.0.orig/sound/pci/hda/hda_component.h +++ linux-5.19.0/sound/pci/hda/hda_component.h @@ -14,5 +14,8 @@ struct hda_component { struct device *dev; char name[HDA_MAX_NAME_SIZE]; + struct hda_codec *codec; void (*playback_hook)(struct device *dev, int action); + int (*suspend_hook)(struct device *dev); + int (*resume_hook)(struct device *dev); }; --- linux-5.19.0.orig/sound/pci/hda/hda_controller.c +++ linux-5.19.0/sound/pci/hda/hda_controller.c @@ -1033,10 +1033,8 @@ void azx_stop_all_streams(struct azx *chip) { struct hdac_bus *bus = azx_bus(chip); - struct hdac_stream *s; - list_for_each_entry(s, &bus->stream_list, list) - snd_hdac_stream_stop(s); + snd_hdac_stop_streams(bus); } EXPORT_SYMBOL_GPL(azx_stop_all_streams); --- linux-5.19.0.orig/sound/pci/hda/hda_cs_dsp_ctl.c +++ linux-5.19.0/sound/pci/hda/hda_cs_dsp_ctl.c @@ -0,0 +1,240 @@ +// SPDX-License-Identifier: GPL-2.0 +// +// HDA DSP ALSA Control Driver +// +// Copyright 2022 Cirrus Logic, Inc. +// +// Author: Stefan Binding + +#include +#include +#include +#include +#include "hda_cs_dsp_ctl.h" + +#define ADSP_MAX_STD_CTRL_SIZE 512 + +struct hda_cs_dsp_coeff_ctl { + struct cs_dsp_coeff_ctl *cs_ctl; + struct snd_card *card; + struct snd_kcontrol *kctl; +}; + +static const char * const hda_cs_dsp_fw_text[HDA_CS_DSP_NUM_FW] = { + [HDA_CS_DSP_FW_SPK_PROT] = "Prot", + [HDA_CS_DSP_FW_SPK_CALI] = "Cali", + [HDA_CS_DSP_FW_SPK_DIAG] = "Diag", + [HDA_CS_DSP_FW_MISC] = "Misc", +}; + +const char * const hda_cs_dsp_fw_ids[HDA_CS_DSP_NUM_FW] = { + [HDA_CS_DSP_FW_SPK_PROT] = "spk-prot", + [HDA_CS_DSP_FW_SPK_CALI] = "spk-cali", + [HDA_CS_DSP_FW_SPK_DIAG] = "spk-diag", + [HDA_CS_DSP_FW_MISC] = "misc", +}; +EXPORT_SYMBOL_NS_GPL(hda_cs_dsp_fw_ids, SND_HDA_CS_DSP_CONTROLS); + +static int hda_cs_dsp_coeff_info(struct snd_kcontrol *kctl, struct snd_ctl_elem_info *uinfo) +{ + struct hda_cs_dsp_coeff_ctl *ctl = (struct hda_cs_dsp_coeff_ctl *)snd_kcontrol_chip(kctl); + struct cs_dsp_coeff_ctl *cs_ctl = ctl->cs_ctl; + + uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES; + uinfo->count = cs_ctl->len; + + return 0; +} + +static int hda_cs_dsp_coeff_put(struct snd_kcontrol *kctl, struct snd_ctl_elem_value *ucontrol) +{ + struct hda_cs_dsp_coeff_ctl *ctl = (struct hda_cs_dsp_coeff_ctl *)snd_kcontrol_chip(kctl); + struct cs_dsp_coeff_ctl *cs_ctl = ctl->cs_ctl; + char *p = ucontrol->value.bytes.data; + int ret = 0; + + mutex_lock(&cs_ctl->dsp->pwr_lock); + ret = cs_dsp_coeff_write_ctrl(cs_ctl, 0, p, cs_ctl->len); + mutex_unlock(&cs_ctl->dsp->pwr_lock); + + return ret; +} + +static int hda_cs_dsp_coeff_get(struct snd_kcontrol *kctl, struct snd_ctl_elem_value *ucontrol) +{ + struct hda_cs_dsp_coeff_ctl *ctl = (struct hda_cs_dsp_coeff_ctl *)snd_kcontrol_chip(kctl); + struct cs_dsp_coeff_ctl *cs_ctl = ctl->cs_ctl; + char *p = ucontrol->value.bytes.data; + int ret; + + mutex_lock(&cs_ctl->dsp->pwr_lock); + ret = cs_dsp_coeff_read_ctrl(cs_ctl, 0, p, cs_ctl->len); + mutex_unlock(&cs_ctl->dsp->pwr_lock); + + return ret; +} + +static unsigned int wmfw_convert_flags(unsigned int in) +{ + unsigned int out, rd, wr, vol; + + rd = SNDRV_CTL_ELEM_ACCESS_READ; + wr = SNDRV_CTL_ELEM_ACCESS_WRITE; + vol = SNDRV_CTL_ELEM_ACCESS_VOLATILE; + + out = 0; + + if (in) { + out |= rd; + if (in & WMFW_CTL_FLAG_WRITEABLE) + out |= wr; + if (in & WMFW_CTL_FLAG_VOLATILE) + out |= vol; + } else { + out |= rd | wr | vol; + } + + return out; +} + +static int hda_cs_dsp_add_kcontrol(struct hda_cs_dsp_coeff_ctl *ctl, const char *name) +{ + struct cs_dsp_coeff_ctl *cs_ctl = ctl->cs_ctl; + struct snd_kcontrol_new kcontrol = {0}; + struct snd_kcontrol *kctl; + int ret = 0; + + if (cs_ctl->len > ADSP_MAX_STD_CTRL_SIZE) { + dev_err(cs_ctl->dsp->dev, "KControl %s: length %zu exceeds maximum %d\n", name, + cs_ctl->len, ADSP_MAX_STD_CTRL_SIZE); + return -EINVAL; + } + + kcontrol.name = name; + kcontrol.info = hda_cs_dsp_coeff_info; + kcontrol.iface = SNDRV_CTL_ELEM_IFACE_MIXER; + kcontrol.access = wmfw_convert_flags(cs_ctl->flags); + kcontrol.get = hda_cs_dsp_coeff_get; + kcontrol.put = hda_cs_dsp_coeff_put; + + /* Save ctl inside private_data, ctl is owned by cs_dsp, + * and will be freed when cs_dsp removes the control */ + kctl = snd_ctl_new1(&kcontrol, (void *)ctl); + if (!kctl) { + ret = -ENOMEM; + return ret; + } + + ret = snd_ctl_add(ctl->card, kctl); + if (ret) { + dev_err(cs_ctl->dsp->dev, "Failed to add KControl %s = %d\n", kcontrol.name, ret); + return ret; + } + + dev_dbg(cs_ctl->dsp->dev, "Added KControl: %s\n", kcontrol.name); + ctl->kctl = kctl; + + return 0; +} + +int hda_cs_dsp_control_add(struct cs_dsp_coeff_ctl *cs_ctl, struct hda_cs_dsp_ctl_info *info) +{ + struct cs_dsp *cs_dsp = cs_ctl->dsp; + char name[SNDRV_CTL_ELEM_ID_NAME_MAXLEN]; + struct hda_cs_dsp_coeff_ctl *ctl; + const char *region_name; + int ret; + + if (cs_ctl->flags & WMFW_CTL_FLAG_SYS) + return 0; + + region_name = cs_dsp_mem_region_name(cs_ctl->alg_region.type); + if (!region_name) { + dev_err(cs_dsp->dev, "Unknown region type: %d\n", cs_ctl->alg_region.type); + return -EINVAL; + } + + ret = scnprintf(name, SNDRV_CTL_ELEM_ID_NAME_MAXLEN, "%s %s %.12s %x", info->device_name, + cs_dsp->name, hda_cs_dsp_fw_text[info->fw_type], cs_ctl->alg_region.alg); + + if (cs_ctl->subname) { + int avail = SNDRV_CTL_ELEM_ID_NAME_MAXLEN - ret - 2; + int skip = 0; + + /* Truncate the subname from the start if it is too long */ + if (cs_ctl->subname_len > avail) + skip = cs_ctl->subname_len - avail; + + snprintf(name + ret, SNDRV_CTL_ELEM_ID_NAME_MAXLEN - ret, + " %.*s", cs_ctl->subname_len - skip, cs_ctl->subname + skip); + } + + ctl = kzalloc(sizeof(*ctl), GFP_KERNEL); + if (!ctl) + return -ENOMEM; + + ctl->cs_ctl = cs_ctl; + ctl->card = info->card; + cs_ctl->priv = ctl; + + ret = hda_cs_dsp_add_kcontrol(ctl, name); + if (ret) { + dev_err(cs_dsp->dev, "Error (%d) adding control %s\n", ret, name); + kfree(ctl); + return ret; + } + + return 0; +} +EXPORT_SYMBOL_NS_GPL(hda_cs_dsp_control_add, SND_HDA_CS_DSP_CONTROLS); + +void hda_cs_dsp_control_remove(struct cs_dsp_coeff_ctl *cs_ctl) +{ + struct hda_cs_dsp_coeff_ctl *ctl = cs_ctl->priv; + + kfree(ctl); +} +EXPORT_SYMBOL_NS_GPL(hda_cs_dsp_control_remove, SND_HDA_CS_DSP_CONTROLS); + +int hda_cs_dsp_write_ctl(struct cs_dsp *dsp, const char *name, int type, + unsigned int alg, const void *buf, size_t len) +{ + struct cs_dsp_coeff_ctl *cs_ctl; + struct hda_cs_dsp_coeff_ctl *ctl; + int ret; + + cs_ctl = cs_dsp_get_ctl(dsp, name, type, alg); + if (!cs_ctl) + return -EINVAL; + + ctl = cs_ctl->priv; + + ret = cs_dsp_coeff_write_ctrl(cs_ctl, 0, buf, len); + if (ret) + return ret; + + if (cs_ctl->flags & WMFW_CTL_FLAG_SYS) + return 0; + + snd_ctl_notify(ctl->card, SNDRV_CTL_EVENT_MASK_VALUE, &ctl->kctl->id); + + return 0; +} +EXPORT_SYMBOL_NS_GPL(hda_cs_dsp_write_ctl, SND_HDA_CS_DSP_CONTROLS); + +int hda_cs_dsp_read_ctl(struct cs_dsp *dsp, const char *name, int type, + unsigned int alg, void *buf, size_t len) +{ + struct cs_dsp_coeff_ctl *cs_ctl; + + cs_ctl = cs_dsp_get_ctl(dsp, name, type, alg); + if (!cs_ctl) + return -EINVAL; + + return cs_dsp_coeff_read_ctrl(cs_ctl, 0, buf, len); +} +EXPORT_SYMBOL_NS_GPL(hda_cs_dsp_read_ctl, SND_HDA_CS_DSP_CONTROLS); + +MODULE_DESCRIPTION("CS_DSP ALSA Control HDA Library"); +MODULE_AUTHOR("Stefan Binding, "); +MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/sound/pci/hda/hda_cs_dsp_ctl.h +++ linux-5.19.0/sound/pci/hda/hda_cs_dsp_ctl.h @@ -0,0 +1,39 @@ +/* SPDX-License-Identifier: GPL-2.0 + * + * HDA DSP ALSA Control Driver + * + * Copyright 2022 Cirrus Logic, Inc. + * + * Author: Stefan Binding + */ + +#ifndef __HDA_CS_DSP_CTL_H__ +#define __HDA_CS_DSP_CTL_H__ + +#include +#include + +enum hda_cs_dsp_fw_id { + HDA_CS_DSP_FW_SPK_PROT, + HDA_CS_DSP_FW_SPK_CALI, + HDA_CS_DSP_FW_SPK_DIAG, + HDA_CS_DSP_FW_MISC, + HDA_CS_DSP_NUM_FW +}; + +struct hda_cs_dsp_ctl_info { + struct snd_card *card; + enum hda_cs_dsp_fw_id fw_type; + const char *device_name; +}; + +extern const char * const hda_cs_dsp_fw_ids[HDA_CS_DSP_NUM_FW]; + +int hda_cs_dsp_control_add(struct cs_dsp_coeff_ctl *cs_ctl, struct hda_cs_dsp_ctl_info *info); +void hda_cs_dsp_control_remove(struct cs_dsp_coeff_ctl *cs_ctl); +int hda_cs_dsp_write_ctl(struct cs_dsp *dsp, const char *name, int type, + unsigned int alg, const void *buf, size_t len); +int hda_cs_dsp_read_ctl(struct cs_dsp *dsp, const char *name, int type, + unsigned int alg, void *buf, size_t len); + +#endif /*__HDA_CS_DSP_CTL_H__*/ --- linux-5.19.0.orig/sound/pci/hda/hda_intel.c +++ linux-5.19.0/sound/pci/hda/hda_intel.c @@ -1817,7 +1817,7 @@ /* use the non-cached pages in non-snoop mode */ if (!azx_snoop(chip)) - azx_bus(chip)->dma_type = SNDRV_DMA_TYPE_DEV_WC; + azx_bus(chip)->dma_type = SNDRV_DMA_TYPE_DEV_WC_SG; if (chip->driver_type == AZX_DRIVER_NVIDIA) { dev_dbg(chip->card->dev, "Enable delay in RIRB handling\n"); @@ -2550,9 +2550,12 @@ /* 5 Series/3400 */ { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM }, + { PCI_DEVICE(0x8086, 0x3b57), + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_NOPM }, /* Poulsbo */ { PCI_DEVICE(0x8086, 0x811b), - .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_BASE }, + .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_BASE | + AZX_DCAPS_POSFIX_LPIB }, /* Oaktrail */ { PCI_DEVICE(0x8086, 0x080a), .driver_data = AZX_DRIVER_SCH | AZX_DCAPS_INTEL_PCH_BASE }, @@ -2715,6 +2718,9 @@ { PCI_DEVICE(0x1002, 0xab28), .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS | AZX_DCAPS_PM_RUNTIME }, + { PCI_DEVICE(0x1002, 0xab30), + .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS | + AZX_DCAPS_PM_RUNTIME }, { PCI_DEVICE(0x1002, 0xab38), .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI_NS | AZX_DCAPS_PM_RUNTIME }, --- linux-5.19.0.orig/sound/pci/hda/patch_ca0132.c +++ linux-5.19.0/sound/pci/hda/patch_ca0132.c @@ -1306,6 +1306,7 @@ SND_PCI_QUIRK(0x1458, 0xA026, "Gigabyte G1.Sniper Z97", QUIRK_R3DI), SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI), SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI), + SND_PCI_QUIRK(0x3842, 0x1055, "EVGA Z390 DARK", QUIRK_R3DI), SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D), SND_PCI_QUIRK(0x1102, 0x0018, "Recon3D", QUIRK_R3D), SND_PCI_QUIRK(0x1102, 0x0051, "Sound Blaster AE-5", QUIRK_AE5), --- linux-5.19.0.orig/sound/pci/hda/patch_cirrus.c +++ linux-5.19.0/sound/pci/hda/patch_cirrus.c @@ -395,6 +395,7 @@ /* codec SSID */ SND_PCI_QUIRK(0x106b, 0x0600, "iMac 14,1", CS420X_IMAC27_122), + SND_PCI_QUIRK(0x106b, 0x0900, "iMac 12,1", CS420X_IMAC27_122), SND_PCI_QUIRK(0x106b, 0x1c00, "MacBookPro 8,1", CS420X_MBP81), SND_PCI_QUIRK(0x106b, 0x2000, "iMac 12,2", CS420X_IMAC27_122), SND_PCI_QUIRK(0x106b, 0x2800, "MacBookPro 10,1", CS420X_MBP101), --- linux-5.19.0.orig/sound/pci/hda/patch_conexant.c +++ linux-5.19.0/sound/pci/hda/patch_conexant.c @@ -222,6 +222,7 @@ CXT_PINCFG_LEMOTE_A1205, CXT_PINCFG_COMPAQ_CQ60, CXT_FIXUP_STEREO_DMIC, + CXT_PINCFG_LENOVO_NOTEBOOK, CXT_FIXUP_INC_MIC_BOOST, CXT_FIXUP_HEADPHONE_MIC_PIN, CXT_FIXUP_HEADPHONE_MIC, @@ -772,6 +773,14 @@ .type = HDA_FIXUP_FUNC, .v.func = cxt_fixup_stereo_dmic, }, + [CXT_PINCFG_LENOVO_NOTEBOOK] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1a, 0x05d71030 }, + { } + }, + .chain_id = CXT_FIXUP_STEREO_DMIC, + }, [CXT_FIXUP_INC_MIC_BOOST] = { .type = HDA_FIXUP_FUNC, .v.func = cxt5066_increase_mic_boost, @@ -971,7 +980,7 @@ SND_PCI_QUIRK(0x17aa, 0x3905, "Lenovo G50-30", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x390b, "Lenovo G50-80", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x3975, "Lenovo U300s", CXT_FIXUP_STEREO_DMIC), - SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_FIXUP_STEREO_DMIC), + SND_PCI_QUIRK(0x17aa, 0x3977, "Lenovo IdeaPad U310", CXT_PINCFG_LENOVO_NOTEBOOK), SND_PCI_QUIRK(0x17aa, 0x3978, "Lenovo G50-70", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x17aa, 0x397b, "Lenovo S205", CXT_FIXUP_STEREO_DMIC), SND_PCI_QUIRK_VENDOR(0x17aa, "Thinkpad", CXT_FIXUP_THINKPAD_ACPI), --- linux-5.19.0.orig/sound/pci/hda/patch_cs8409-tables.c +++ linux-5.19.0/sound/pci/hda/patch_cs8409-tables.c @@ -546,6 +546,10 @@ SND_PCI_QUIRK(0x1028, 0x0BD6, "Dolphin", CS8409_DOLPHIN), SND_PCI_QUIRK(0x1028, 0x0BD7, "Dolphin", CS8409_DOLPHIN), SND_PCI_QUIRK(0x1028, 0x0BD8, "Dolphin", CS8409_DOLPHIN), + SND_PCI_QUIRK(0x1028, 0x0C43, "Dolphin", CS8409_DOLPHIN), + SND_PCI_QUIRK(0x1028, 0x0C50, "Dolphin", CS8409_DOLPHIN), + SND_PCI_QUIRK(0x1028, 0x0C51, "Dolphin", CS8409_DOLPHIN), + SND_PCI_QUIRK(0x1028, 0x0C52, "Dolphin", CS8409_DOLPHIN), {} /* terminator */ }; --- linux-5.19.0.orig/sound/pci/hda/patch_cs8409.c +++ linux-5.19.0/sound/pci/hda/patch_cs8409.c @@ -888,7 +888,7 @@ /* Initialize CS42L42 companion codec */ cs8409_i2c_bulk_write(cs42l42, cs42l42->init_seq, cs42l42->init_seq_num); - usleep_range(20000, 25000); + usleep_range(30000, 35000); /* Clear interrupts, by reading interrupt status registers */ cs8409_i2c_bulk_read(cs42l42, irq_regs, ARRAY_SIZE(irq_regs)); --- linux-5.19.0.orig/sound/pci/hda/patch_hdmi.c +++ linux-5.19.0/sound/pci/hda/patch_hdmi.c @@ -53,7 +53,8 @@ struct hdmi_spec_per_cvt { hda_nid_t cvt_nid; - int assigned; + bool assigned; /* the stream has been assigned */ + bool silent_stream; /* silent stream activated */ unsigned int channels_min; unsigned int channels_max; u32 rates; @@ -170,6 +171,8 @@ bool dyn_pcm_no_legacy; /* hdmi interrupt trigger control flag for Nvidia codec */ bool hdmi_intr_trig_ctrl; + bool nv_dp_workaround; /* workaround DP audio infoframe for Nvidia */ + bool intel_hsw_fixup; /* apply Intel platform-specific fixups */ /* * Non-generic VIA/NVIDIA specific @@ -679,15 +682,24 @@ int ca, int active_channels, int conn_type) { + struct hdmi_spec *spec = codec->spec; union audio_infoframe ai; memset(&ai, 0, sizeof(ai)); - if (conn_type == 0) { /* HDMI */ + if ((conn_type == 0) || /* HDMI */ + /* Nvidia DisplayPort: Nvidia HW expects same layout as HDMI */ + (conn_type == 1 && spec->nv_dp_workaround)) { struct hdmi_audio_infoframe *hdmi_ai = &ai.hdmi; - hdmi_ai->type = 0x84; - hdmi_ai->ver = 0x01; - hdmi_ai->len = 0x0a; + if (conn_type == 0) { /* HDMI */ + hdmi_ai->type = 0x84; + hdmi_ai->ver = 0x01; + hdmi_ai->len = 0x0a; + } else {/* Nvidia DP */ + hdmi_ai->type = 0x84; + hdmi_ai->ver = 0x1b; + hdmi_ai->len = 0x11 << 2; + } hdmi_ai->CC02_CT47 = active_channels - 1; hdmi_ai->CA = ca; hdmi_checksum_audio_infoframe(hdmi_ai); @@ -977,7 +989,8 @@ * of the pin. */ static int hdmi_choose_cvt(struct hda_codec *codec, - int pin_idx, int *cvt_id) + int pin_idx, int *cvt_id, + bool silent) { struct hdmi_spec *spec = codec->spec; struct hdmi_spec_per_pin *per_pin; @@ -992,6 +1005,9 @@ if (per_pin && per_pin->silent_stream) { cvt_idx = cvt_nid_to_cvt_index(codec, per_pin->cvt_nid); + per_cvt = get_cvt(spec, cvt_idx); + if (per_cvt->assigned && !silent) + return -EBUSY; if (cvt_id) *cvt_id = cvt_idx; return 0; @@ -1002,7 +1018,7 @@ per_cvt = get_cvt(spec, cvt_idx); /* Must not already be assigned */ - if (per_cvt->assigned) + if (per_cvt->assigned || per_cvt->silent_stream) continue; if (per_pin == NULL) break; @@ -1188,12 +1204,12 @@ if (pcm_idx < 0) return -EINVAL; - err = hdmi_choose_cvt(codec, -1, &cvt_idx); + err = hdmi_choose_cvt(codec, -1, &cvt_idx, false); if (err) return err; per_cvt = get_cvt(spec, cvt_idx); - per_cvt->assigned = 1; + per_cvt->assigned = true; hinfo->nid = per_cvt->cvt_nid; pin_cvt_fixup(codec, NULL, per_cvt->cvt_nid); @@ -1256,13 +1272,13 @@ } } - err = hdmi_choose_cvt(codec, pin_idx, &cvt_idx); + err = hdmi_choose_cvt(codec, pin_idx, &cvt_idx, false); if (err < 0) goto unlock; per_cvt = get_cvt(spec, cvt_idx); /* Claim converter */ - per_cvt->assigned = 1; + per_cvt->assigned = true; set_bit(pcm_idx, &spec->pcm_in_use); per_pin = get_pin(spec, pin_idx); @@ -1296,7 +1312,7 @@ snd_hdmi_eld_update_pcm_info(&eld->info, hinfo); if (hinfo->channels_min > hinfo->channels_max || !hinfo->rates || !hinfo->formats) { - per_cvt->assigned = 0; + per_cvt->assigned = false; hinfo->nid = 0; snd_hda_spdif_ctls_unassign(codec, pcm_idx); err = -ENODEV; @@ -1748,14 +1764,14 @@ } pin_idx = pin_id_to_pin_index(codec, per_pin->pin_nid, per_pin->dev_id); - err = hdmi_choose_cvt(codec, pin_idx, &cvt_idx); + err = hdmi_choose_cvt(codec, pin_idx, &cvt_idx, true); if (err) { codec_err(codec, "hdmi: no free converter to enable silent mode\n"); goto unlock_out; } per_cvt = get_cvt(spec, cvt_idx); - per_cvt->assigned = 1; + per_cvt->silent_stream = true; per_pin->cvt_nid = per_cvt->cvt_nid; per_pin->silent_stream = true; @@ -1772,6 +1788,7 @@ switch (spec->silent_stream_type) { case SILENT_STREAM_KAE: + silent_stream_enable_i915(codec, per_pin); silent_stream_set_kae(codec, per_pin, true); break; case SILENT_STREAM_I915: @@ -1815,7 +1832,7 @@ cvt_idx = cvt_nid_to_cvt_index(codec, per_pin->cvt_nid); if (cvt_idx >= 0 && cvt_idx < spec->num_cvts) { per_cvt = get_cvt(spec, cvt_idx); - per_cvt->assigned = 0; + per_cvt->silent_stream = false; } if (spec->silent_stream_type == SILENT_STREAM_I915) { @@ -2012,6 +2029,7 @@ static const struct snd_pci_quirk force_connect_list[] = { SND_PCI_QUIRK(0x103c, 0x870f, "HP", 1), SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1), + SND_PCI_QUIRK(0x103c, 0x8711, "HP", 1), SND_PCI_QUIRK(0x1462, 0xec94, "MS-7C94", 1), SND_PCI_QUIRK(0x8086, 0x2081, "Intel NUC 10", 1), {} @@ -2211,7 +2229,7 @@ goto unlock; } per_cvt = get_cvt(spec, cvt_idx); - per_cvt->assigned = 0; + per_cvt->assigned = false; hinfo->nid = 0; azx_stream(get_azx_dev(substream))->stripe = 0; @@ -2735,9 +2753,6 @@ */ if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND) return; - /* ditto during suspend/resume process itself */ - if (snd_hdac_is_in_pm(&codec->core)) - return; check_presence_and_report(codec, pin_nid, dev_id); } @@ -2921,9 +2936,6 @@ */ if (codec->core.dev.power.power_state.event == PM_EVENT_SUSPEND) return; - /* ditto during suspend/resume process itself */ - if (snd_hdac_is_in_pm(&codec->core)) - return; snd_hdac_i915_set_bclk(&codec->bus->core); check_presence_and_report(codec, pin_nid, dev_id); @@ -2953,9 +2965,33 @@ hda_nid_t pin_nid, int dev_id, u32 stream_tag, int format) { + struct hdmi_spec *spec = codec->spec; + int pin_idx = pin_id_to_pin_index(codec, pin_nid, dev_id); + struct hdmi_spec_per_pin *per_pin; + int res; + + if (pin_idx < 0) + per_pin = NULL; + else + per_pin = get_pin(spec, pin_idx); + haswell_verify_D0(codec, cvt_nid, pin_nid); - return hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id, - stream_tag, format); + + if (spec->silent_stream_type == SILENT_STREAM_KAE && per_pin && per_pin->silent_stream) { + silent_stream_set_kae(codec, per_pin, false); + /* wait for pending transfers in codec to clear */ + usleep_range(100, 200); + } + + res = hdmi_setup_stream(codec, cvt_nid, pin_nid, dev_id, + stream_tag, format); + + if (spec->silent_stream_type == SILENT_STREAM_KAE && per_pin && per_pin->silent_stream) { + usleep_range(100, 200); + silent_stream_set_kae(codec, per_pin, true); + } + + return res; } /* pin_cvt_fixup ops override for HSW+ and VLV+ */ @@ -2975,6 +3011,88 @@ } } +#ifdef CONFIG_PM +static int i915_adlp_hdmi_suspend(struct hda_codec *codec) +{ + struct hdmi_spec *spec = codec->spec; + bool silent_streams = false; + int pin_idx, res; + + res = generic_hdmi_suspend(codec); + + for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) { + struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); + + if (per_pin->silent_stream) { + silent_streams = true; + break; + } + } + + if (silent_streams && spec->silent_stream_type == SILENT_STREAM_KAE) { + /* + * stream-id should remain programmed when codec goes + * to runtime suspend + */ + codec->no_stream_clean_at_suspend = 1; + + /* + * the system might go to S3, in which case keep-alive + * must be reprogrammed upon resume + */ + codec->forced_resume = 1; + + codec_dbg(codec, "HDMI: KAE active at suspend\n"); + } else { + codec->no_stream_clean_at_suspend = 0; + codec->forced_resume = 0; + } + + return res; +} + +static int i915_adlp_hdmi_resume(struct hda_codec *codec) +{ + struct hdmi_spec *spec = codec->spec; + int pin_idx, res; + + res = generic_hdmi_resume(codec); + + /* KAE not programmed at suspend, nothing to do here */ + if (!codec->no_stream_clean_at_suspend) + return res; + + for (pin_idx = 0; pin_idx < spec->num_pins; pin_idx++) { + struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); + + /* + * If system was in suspend with monitor connected, + * the codec setting may have been lost. Re-enable + * keep-alive. + */ + if (per_pin->silent_stream) { + unsigned int param; + + param = snd_hda_codec_read(codec, per_pin->cvt_nid, 0, + AC_VERB_GET_CONV, 0); + if (!param) { + codec_dbg(codec, "HDMI: KAE: restore stream id\n"); + silent_stream_enable_i915(codec, per_pin); + } + + param = snd_hda_codec_read(codec, per_pin->cvt_nid, 0, + AC_VERB_GET_DIGI_CONVERT_1, 0); + if (!(param & (AC_DIG3_KAE << 16))) { + codec_dbg(codec, "HDMI: KAE: restore DIG3_KAE\n"); + silent_stream_set_kae(codec, per_pin, true); + } + } + } + + return res; +} +#endif + /* precondition and allocation for Intel codecs */ static int alloc_intel_hdmi(struct hda_codec *codec) { @@ -3114,8 +3232,14 @@ if (!res) { spec = codec->spec; - if (spec->silent_stream_type) + if (spec->silent_stream_type) { spec->silent_stream_type = SILENT_STREAM_KAE; + +#ifdef CONFIG_PM + codec->patch_ops.resume = i915_adlp_hdmi_resume; + codec->patch_ops.suspend = i915_adlp_hdmi_suspend; +#endif + } } return res; @@ -3617,6 +3741,7 @@ spec->pcm_playback.rates = SUPPORTED_RATES; spec->pcm_playback.maxbps = SUPPORTED_MAXBPS; spec->pcm_playback.formats = SUPPORTED_FORMATS; + spec->nv_dp_workaround = true; return 0; } @@ -3756,6 +3881,7 @@ spec->chmap.ops.chmap_cea_alloc_validate_get_type = nvhdmi_chmap_cea_alloc_validate_get_type; spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate; + spec->nv_dp_workaround = true; codec->link_down_at_suspend = 1; @@ -3779,6 +3905,7 @@ spec->chmap.ops.chmap_cea_alloc_validate_get_type = nvhdmi_chmap_cea_alloc_validate_get_type; spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate; + spec->nv_dp_workaround = true; codec->link_down_at_suspend = 1; @@ -3984,6 +4111,7 @@ generic_hdmi_init_per_pins(codec); + codec->depop_delay = 10; codec->patch_ops.build_pcms = tegra_hdmi_build_pcms; spec->chmap.ops.chmap_cea_alloc_validate_get_type = nvhdmi_chmap_cea_alloc_validate_get_type; @@ -3992,6 +4120,7 @@ spec->chmap.ops.chmap_cea_alloc_validate_get_type = nvhdmi_chmap_cea_alloc_validate_get_type; spec->chmap.ops.chmap_validate = nvhdmi_chmap_validate; + spec->nv_dp_workaround = true; return 0; } --- linux-5.19.0.orig/sound/pci/hda/patch_realtek.c +++ linux-5.19.0/sound/pci/hda/patch_realtek.c @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -4021,15 +4022,22 @@ static int alc269_suspend(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; + int i; if (spec->has_alc5505_dsp) alc5505_dsp_suspend(codec); + + for (i = 0; i < HDA_MAX_COMPONENTS; i++) + if (spec->comps[i].suspend_hook) + spec->comps[i].suspend_hook(spec->comps[i].dev); + return alc_suspend(codec); } static int alc269_resume(struct hda_codec *codec) { struct alc_spec *spec = codec->spec; + int i; if (spec->codec_variant == ALC269_TYPE_ALC269VB) alc269vb_toggle_power_output(codec, 0); @@ -4060,6 +4068,10 @@ if (spec->has_alc5505_dsp) alc5505_dsp_resume(codec); + for (i = 0; i < HDA_MAX_COMPONENTS; i++) + if (spec->comps[i].resume_hook) + spec->comps[i].resume_hook(spec->comps[i].dev); + return 0; } #endif /* CONFIG_PM */ @@ -4689,6 +4701,48 @@ alc236_fixup_hp_micmute_led_vref(codec, fix, action); } +static inline void alc298_samsung_write_coef_pack(struct hda_codec *codec, + const unsigned short coefs[2]) +{ + alc_write_coef_idx(codec, 0x23, coefs[0]); + alc_write_coef_idx(codec, 0x25, coefs[1]); + alc_write_coef_idx(codec, 0x26, 0xb011); +} + +struct alc298_samsung_amp_desc { + unsigned char nid; + unsigned short init_seq[2][2]; +}; + +static void alc298_fixup_samsung_amp(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + int i, j; + static const unsigned short init_seq[][2] = { + { 0x19, 0x00 }, { 0x20, 0xc0 }, { 0x22, 0x44 }, { 0x23, 0x08 }, + { 0x24, 0x85 }, { 0x25, 0x41 }, { 0x35, 0x40 }, { 0x36, 0x01 }, + { 0x38, 0x81 }, { 0x3a, 0x03 }, { 0x3b, 0x81 }, { 0x40, 0x3e }, + { 0x41, 0x07 }, { 0x400, 0x1 } + }; + static const struct alc298_samsung_amp_desc amps[] = { + { 0x3a, { { 0x18, 0x1 }, { 0x26, 0x0 } } }, + { 0x39, { { 0x18, 0x2 }, { 0x26, 0x1 } } } + }; + + if (action != HDA_FIXUP_ACT_INIT) + return; + + for (i = 0; i < ARRAY_SIZE(amps); i++) { + alc_write_coef_idx(codec, 0x22, amps[i].nid); + + for (j = 0; j < ARRAY_SIZE(amps[i].init_seq); j++) + alc298_samsung_write_coef_pack(codec, amps[i].init_seq[j]); + + for (j = 0; j < ARRAY_SIZE(init_seq); j++) + alc298_samsung_write_coef_pack(codec, init_seq[j]); + } +} + #if IS_REACHABLE(CONFIG_INPUT) static void gpio2_mic_hotkey_event(struct hda_codec *codec, struct hda_jack_callback *event) @@ -6610,8 +6664,20 @@ { struct hda_codec *cdc = dev_to_hda_codec(dev); struct alc_spec *spec = cdc->spec; + int ret, i; - return component_bind_all(dev, spec->comps); + ret = component_bind_all(dev, spec->comps); + if (ret) + return ret; + + if (snd_hdac_is_power_on(&cdc->core)) { + codec_dbg(cdc, "Resuming after bind.\n"); + for (i = 0; i < HDA_MAX_COMPONENTS; i++) + if (spec->comps[i].resume_hook) + spec->comps[i].resume_hook(spec->comps[i].dev); + } + + return 0; } static void comp_unbind(struct device *dev) @@ -6639,22 +6705,51 @@ } } +struct cs35l41_dev_name { + const char *bus; + const char *hid; + int index; +}; + +/* match the device name in a slightly relaxed manner */ +static int comp_match_cs35l41_dev_name(struct device *dev, void *data) +{ + struct cs35l41_dev_name *p = data; + const char *d = dev_name(dev); + int n = strlen(p->bus); + char tmp[32]; + + /* check the bus name */ + if (strncmp(d, p->bus, n)) + return 0; + /* skip the bus number */ + if (isdigit(d[n])) + n++; + /* the rest must be exact matching */ + snprintf(tmp, sizeof(tmp), "-%s:00-cs35l41-hda.%d", p->hid, p->index); + return !strcmp(d + n, tmp); +} + static void cs35l41_generic_fixup(struct hda_codec *cdc, int action, const char *bus, const char *hid, int count) { struct device *dev = hda_codec_dev(cdc); struct alc_spec *spec = cdc->spec; - char *name; + struct cs35l41_dev_name *rec; int ret, i; switch (action) { case HDA_FIXUP_ACT_PRE_PROBE: for (i = 0; i < count; i++) { - name = devm_kasprintf(dev, GFP_KERNEL, - "%s-%s:00-cs35l41-hda.%d", bus, hid, i); - if (!name) + rec = devm_kmalloc(dev, sizeof(*rec), GFP_KERNEL); + if (!rec) return; - component_match_add(dev, &spec->match, component_compare_dev_name, name); + rec->bus = bus; + rec->hid = hid; + rec->index = i; + spec->comps[i].codec = cdc; + component_match_add(dev, &spec->match, + comp_match_cs35l41_dev_name, rec); } ret = component_master_add_with_match(dev, &comp_master_ops, spec->match); if (ret) @@ -6672,12 +6767,12 @@ static void cs35l41_fixup_spi_two(struct hda_codec *codec, const struct hda_fixup *fix, int action) { - cs35l41_generic_fixup(codec, action, "spi0", "CSC3551", 2); + cs35l41_generic_fixup(codec, action, "spi", "CSC3551", 2); } static void cs35l41_fixup_spi_four(struct hda_codec *codec, const struct hda_fixup *fix, int action) { - cs35l41_generic_fixup(codec, action, "spi0", "CSC3551", 4); + cs35l41_generic_fixup(codec, action, "spi", "CSC3551", 4); } static void alc287_fixup_legion_16achg6_speakers(struct hda_codec *cdc, const struct hda_fixup *fix, @@ -6787,6 +6882,43 @@ } } +static void alc287_fixup_yoga9_14iap7_bass_spk_pin(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + /* + * The Pin Complex 0x17 for the bass speakers is wrongly reported as + * unconnected. + */ + static const struct hda_pintbl pincfgs[] = { + { 0x17, 0x90170121 }, + { } + }; + /* + * Avoid DAC 0x06 and 0x08, as they have no volume controls. + * DAC 0x02 and 0x03 would be fine. + */ + static const hda_nid_t conn[] = { 0x02, 0x03 }; + /* + * Prefer both speakerbar (0x14) and bass speakers (0x17) connected to DAC 0x02. + * Headphones (0x21) are connected to DAC 0x03. + */ + static const hda_nid_t preferred_pairs[] = { + 0x14, 0x02, + 0x17, 0x02, + 0x21, 0x03, + 0 + }; + struct alc_spec *spec = codec->spec; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + snd_hda_apply_pincfgs(codec, pincfgs); + snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn); + spec->gen.preferred_dacs = preferred_pairs; + break; + } +} + enum { ALC269_FIXUP_GPIO2, ALC269_FIXUP_SONY_VAIO, @@ -6842,6 +6974,7 @@ ALC269_FIXUP_LIMIT_INT_MIC_BOOST, ALC269VB_FIXUP_ASUS_ZENBOOK, ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A, + ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE, ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, ALC269VB_FIXUP_ORDISSIMO_EVE2, ALC283_FIXUP_CHROME_BOOK, @@ -6957,11 +7090,14 @@ ALC294_FIXUP_ASUS_GU502_HP, ALC294_FIXUP_ASUS_GU502_PINS, ALC294_FIXUP_ASUS_GU502_VERBS, + ALC294_FIXUP_ASUS_G513_PINS, + ALC285_FIXUP_ASUS_G533Z_PINS, ALC285_FIXUP_HP_GPIO_LED, ALC285_FIXUP_HP_MUTE_LED, ALC236_FIXUP_HP_GPIO_LED, ALC236_FIXUP_HP_MUTE_LED, ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF, + ALC298_FIXUP_SAMSUNG_AMP, ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, ALC295_FIXUP_ASUS_MIC_NO_PRESENCE, @@ -7023,6 +7159,8 @@ ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED, ALC285_FIXUP_HP_SPEAKERS_MICMUTE_LED, ALC295_FIXUP_FRAMEWORK_LAPTOP_MIC_NO_PRESENCE, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, }; /* A special fixup for Lenovo C940 and Yoga Duet 7; @@ -7427,6 +7565,15 @@ .chained = true, .chain_id = ALC269VB_FIXUP_ASUS_ZENBOOK, }, + [ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, 0x01a110f0 }, /* use as headset mic */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MIC + }, [ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_limit_int_mic_boost, @@ -8283,6 +8430,26 @@ .type = HDA_FIXUP_FUNC, .v.func = alc294_fixup_gu502_hp, }, + [ALC294_FIXUP_ASUS_G513_PINS] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x19, 0x03a11050 }, /* front HP mic */ + { 0x1a, 0x03a11c30 }, /* rear external mic */ + { 0x21, 0x03211420 }, /* front HP out */ + { } + }, + }, + [ALC285_FIXUP_ASUS_G533Z_PINS] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x14, 0x90170152 }, /* Speaker Surround Playback Switch */ + { 0x19, 0x03a19020 }, /* Mic Boost Volume */ + { 0x1a, 0x03a11c30 }, /* Mic Boost Volume */ + { 0x1e, 0x90170151 }, /* Rear jack, IN OUT EAPD Detect */ + { 0x21, 0x03211420 }, + { } + }, + }, [ALC294_FIXUP_ASUS_COEF_1B] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { @@ -8316,6 +8483,12 @@ .type = HDA_FIXUP_FUNC, .v.func = alc236_fixup_hp_mute_led_micmute_vref, }, + [ALC298_FIXUP_SAMSUNG_AMP] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc298_fixup_samsung_amp, + .chained = true, + .chain_id = ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET + }, [ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET] = { .type = HDA_FIXUP_VERBS, .v.verbs = (const struct hda_verb[]) { @@ -8865,6 +9038,74 @@ .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + // enable left speaker + { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x41 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xc }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x1a }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xf }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x42 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x10 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x40 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x2 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + // enable right speaker + { 0x20, AC_VERB_SET_COEF_INDEX, 0x24 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x46 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xc }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x2a }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xf }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x46 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x10 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x44 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { 0x20, AC_VERB_SET_COEF_INDEX, 0x26 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x2 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0x0 }, + { 0x20, AC_VERB_SET_PROC_COEF, 0xb020 }, + + { }, + }, + }, + [ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc287_fixup_yoga9_14iap7_bass_spk_pin, + .chained = true, + .chain_id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -8964,6 +9205,7 @@ SND_PCI_QUIRK(0x1028, 0x0a9d, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0a9e, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0b19, "Dell XPS 15 9520", ALC289_FIXUP_DUAL_SPK), + SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), @@ -9044,6 +9286,8 @@ SND_PCI_QUIRK(0x103c, 0x861f, "HP Elite Dragonfly G1", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x869d, "HP", ALC236_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x86c7, "HP Envy AiO 32", ALC274_FIXUP_HP_ENVY_GPIO), + SND_PCI_QUIRK(0x103c, 0x86e7, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), + SND_PCI_QUIRK(0x103c, 0x86e8, "HP Spectre x360 15-eb0xxx", ALC285_FIXUP_HP_SPECTRE_X360_EB1), SND_PCI_QUIRK(0x103c, 0x8716, "HP Elite Dragonfly G2 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x8720, "HP EliteBook x360 1040 G8 Notebook PC", ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x8724, "HP EliteBook 850 G7", ALC285_FIXUP_HP_GPIO_LED), @@ -9059,6 +9303,7 @@ ALC285_FIXUP_HP_GPIO_AMP_INIT), SND_PCI_QUIRK(0x103c, 0x8783, "HP ZBook Fury 15 G7 Mobile Workstation", ALC285_FIXUP_HP_GPIO_AMP_INIT), + SND_PCI_QUIRK(0x103c, 0x8786, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8787, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8788, "HP OMEN 15", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x87c8, "HP", ALC287_FIXUP_HP_GPIO_LED), @@ -9088,6 +9333,8 @@ SND_PCI_QUIRK(0x103c, 0x8896, "HP EliteBook 855 G8 Notebook PC", ALC285_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x8898, "HP EliteBook 845 G8 Notebook PC", ALC285_FIXUP_HP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x103c, 0x88d0, "HP Pavilion 15-eh1xxx (mainboard 88D0)", ALC287_FIXUP_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8902, "HP OMEN 16", ALC285_FIXUP_HP_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x896d, "HP ZBook Firefly 16 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x896e, "HP EliteBook x360 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8971, "HP EliteBook 830 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8972, "HP EliteBook 840 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), @@ -9106,6 +9353,7 @@ SND_PCI_QUIRK(0x103c, 0x89aa, "HP EliteBook 630 G9", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ac, "HP EliteBook 640 G9", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ae, "HP EliteBook 650 G9", ALC236_FIXUP_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x89c0, "HP ZBook Power 15.6 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89c3, "Zbook Studio G9", ALC245_FIXUP_CS35L41_SPI_4_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89c6, "Zbook Fury 17 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x89ca, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), @@ -9114,6 +9362,11 @@ SND_PCI_QUIRK(0x103c, 0x8aa3, "HP ProBook 450 G9 (MB 8AA1)", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8aa8, "HP EliteBook 640 G9 (MB 8AA6)", ALC236_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x8aab, "HP EliteBook 650 G9 (MB 8AA9)", ALC236_FIXUP_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8abb, "HP ZBook Firefly 14 G9", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8ad1, "HP EliteBook 840 14 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8ad2, "HP EliteBook 860 16 inch G9 Notebook PC", ALC245_FIXUP_CS35L41_SPI_2_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x8b5d, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), + SND_PCI_QUIRK(0x103c, 0x8b5e, "HP", ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF), SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300), SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), @@ -9126,15 +9379,18 @@ SND_PCI_QUIRK(0x1043, 0x1271, "ASUS X430UN", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x1290, "ASUS X441SA", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x12a0, "ASUS X441UV", ALC233_FIXUP_EAPD_COEF_AND_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1043, 0x12af, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x12e0, "ASUS X541SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x12f0, "ASUS X541UV", ALC256_FIXUP_ASUS_MIC), + SND_PCI_QUIRK(0x1043, 0x1313, "Asus K42JZ", ALC269VB_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x13b0, "ASUS Z550SA", ALC256_FIXUP_ASUS_MIC), SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_ASUS_ZENBOOK), SND_PCI_QUIRK(0x1043, 0x1517, "Asus Zenbook UX31A", ALC269VB_FIXUP_ASUS_ZENBOOK_UX31A), + SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK), + SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1740, "ASUS UX430UA", ALC295_FIXUP_ASUS_DACS), SND_PCI_QUIRK(0x1043, 0x17d1, "ASUS UX431FL", ALC294_FIXUP_ASUS_DUAL_SPK), - SND_PCI_QUIRK(0x1043, 0x1662, "ASUS GV301QH", ALC294_FIXUP_ASUS_DUAL_SPK), SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS), SND_PCI_QUIRK(0x1043, 0x18b1, "Asus MJ401TA", ALC256_FIXUP_ASUS_HEADSET_MIC), SND_PCI_QUIRK(0x1043, 0x18f1, "Asus FX505DT", ALC256_FIXUP_ASUS_HEADSET_MIC), @@ -9145,18 +9401,24 @@ SND_PCI_QUIRK(0x1043, 0x19e1, "ASUS UX581LV", ALC295_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x1a30, "ASUS X705UD", ALC256_FIXUP_ASUS_MIC), + SND_PCI_QUIRK(0x1043, 0x1a8f, "ASUS UX582ZS", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1b11, "ASUS UX431DA", ALC294_FIXUP_ASUS_COEF_1B), SND_PCI_QUIRK(0x1043, 0x1b13, "Asus U41SV", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x1c92, "ASUS ROG Strix G15", ALC285_FIXUP_ASUS_G533Z_PINS), SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC), + SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE), + SND_PCI_QUIRK(0x1043, 0x1e02, "ASUS UX3402", ALC245_FIXUP_CS35L41_SPI_2), SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502), SND_PCI_QUIRK(0x1043, 0x1e51, "ASUS Zephyrus M15", ALC294_FIXUP_ASUS_GU502_PINS), + SND_PCI_QUIRK(0x1043, 0x1e5e, "ASUS ROG Strix G513", ALC294_FIXUP_ASUS_G513_PINS), SND_PCI_QUIRK(0x1043, 0x1e8e, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA401), + SND_PCI_QUIRK(0x1043, 0x1c52, "ASUS Zephyrus G15 2022", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401), - SND_PCI_QUIRK(0x1043, 0x1d42, "ASUS Zephyrus G14 2022", ALC289_FIXUP_ASUS_GA401), - SND_PCI_QUIRK(0x1043, 0x16b2, "ASUS GU603", ALC289_FIXUP_ASUS_GA401), + SND_PCI_QUIRK(0x1043, 0x1f12, "ASUS UM5302", ALC287_FIXUP_CS35L41_I2C_2), + SND_PCI_QUIRK(0x1043, 0x1f92, "ASUS ROG Flow X16", ALC289_FIXUP_ASUS_GA401), SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2), SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x834a, "ASUS S101", ALC269_FIXUP_STEREO_DMIC), @@ -9178,17 +9440,20 @@ SND_PCI_QUIRK(0x10ec, 0x10f2, "Intel Reference board", ALC700_FIXUP_INTEL_REFERENCE), SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE), SND_PCI_QUIRK(0x10ec, 0x1230, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), + SND_PCI_QUIRK(0x10ec, 0x124c, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0x10ec, 0x1252, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0x10ec, 0x1254, "Intel Reference board", ALC295_FIXUP_CHROME_BOOK), SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-SZ6", ALC269_FIXUP_HEADSET_MODE), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), - SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), - SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), - SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Flex Book (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), - SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), + SND_PCI_QUIRK(0x144d, 0xc169, "Samsung Notebook 9 Pen (NP930SBE-K01US)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc176, "Samsung Notebook 9 Pro (NP930MBE-K04US)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc189, "Samsung Galaxy Flex Book (NT950QCG-X716)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc18a, "Samsung Galaxy Book Ion (NP930XCJ-K01US)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc1a3, "Samsung Galaxy Book Pro (NP935XDB-KC1SE)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc1a6, "Samsung Galaxy Book Pro 360 (NP930QBD)", ALC298_FIXUP_SAMSUNG_AMP), SND_PCI_QUIRK(0x144d, 0xc740, "Samsung Ativ book 8 (NP870Z5G)", ALC269_FIXUP_ATIV_BOOK_8), - SND_PCI_QUIRK(0x144d, 0xc812, "Samsung Notebook Pen S (NT950SBE-X58)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), - SND_PCI_QUIRK(0x144d, 0xc830, "Samsung Galaxy Book Ion (NT950XCJ-X716A)", ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), + SND_PCI_QUIRK(0x144d, 0xc812, "Samsung Notebook Pen S (NT950SBE-X58)", ALC298_FIXUP_SAMSUNG_AMP), + SND_PCI_QUIRK(0x144d, 0xc830, "Samsung Galaxy Book Ion (NT950XCJ-X716A)", ALC298_FIXUP_SAMSUNG_AMP), SND_PCI_QUIRK(0x144d, 0xc832, "Samsung Galaxy Book Flex Alpha (NP730QCJ)", ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET), SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x1462, 0xb120, "MSI Cubi MS-B120", ALC283_FIXUP_HEADSET_MIC), @@ -9203,6 +9468,7 @@ SND_PCI_QUIRK(0x1558, 0x4018, "Clevo NV40M[BE]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x4019, "Clevo NV40MZ", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x4020, "Clevo NV40MB", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1558, 0x4041, "Clevo NV4[15]PZ", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x40a1, "Clevo NL40GU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x40c1, "Clevo NL40[CZ]U", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x40d1, "Clevo NL41DU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), @@ -9230,6 +9496,7 @@ SND_PCI_QUIRK(0x1558, 0x70f4, "Clevo NH77EPY", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x70f6, "Clevo NH77DPQ-Y", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x7716, "Clevo NS50PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1558, 0x7717, "Clevo NS70PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x7718, "Clevo L140PU", ALC256_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x8228, "Clevo NR40BU", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1558, 0x8520, "Clevo NH50D[CD]", ALC293_FIXUP_SYSTEM76_MIC_NO_PRESENCE), @@ -9315,6 +9582,7 @@ SND_PCI_QUIRK(0x17aa, 0x3176, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x17aa, 0x3178, "ThinkCentre Station", ALC283_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x17aa, 0x31af, "ThinkCentre Station", ALC623_FIXUP_LENOVO_THINKSTATION_P340), + SND_PCI_QUIRK(0x17aa, 0x3801, "Lenovo Yoga9 14IAP7", ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN), SND_PCI_QUIRK(0x17aa, 0x3802, "Lenovo Yoga DuetITL 2021", ALC287_FIXUP_YOGA7_14ITL_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3813, "Legion 7i 15IMHG05", ALC287_FIXUP_LEGION_15IMHG05_SPEAKERS), SND_PCI_QUIRK(0x17aa, 0x3818, "Lenovo C940 / Yoga Duet 7", ALC298_FIXUP_LENOVO_C940_DUET7), @@ -9354,7 +9622,9 @@ SND_PCI_QUIRK(0x17aa, 0x511f, "Thinkpad", ALC298_FIXUP_TPT470_DOCK), SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD), SND_PCI_QUIRK(0x1849, 0x1233, "ASRock NUC Box 1100", ALC233_FIXUP_NO_AUDIO_JACK), + SND_PCI_QUIRK(0x1849, 0xa233, "Positivo Master C6300", ALC269_FIXUP_HEADSET_MIC), SND_PCI_QUIRK(0x19e5, 0x3204, "Huawei MACH-WX9", ALC256_FIXUP_HUAWEI_MACH_WX9_PINS), + SND_PCI_QUIRK(0x19e5, 0x320f, "Huawei WRT-WX9 ", ALC256_FIXUP_ASUS_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1b35, 0x1235, "CZC B20", ALC269_FIXUP_CZC_B20), SND_PCI_QUIRK(0x1b35, 0x1236, "CZC TMI", ALC269_FIXUP_CZC_TMI), SND_PCI_QUIRK(0x1b35, 0x1237, "CZC L101", ALC269_FIXUP_CZC_L101), @@ -9551,7 +9821,7 @@ {.id = ALC299_FIXUP_PREDATOR_SPK, .name = "predator-spk"}, {.id = ALC298_FIXUP_HUAWEI_MBX_STEREO, .name = "huawei-mbx-stereo"}, {.id = ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE, .name = "alc256-medion-headset"}, - {.id = ALC298_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, .name = "alc298-samsung-headphone"}, + {.id = ALC298_FIXUP_SAMSUNG_AMP, .name = "alc298-samsung-amp"}, {.id = ALC256_FIXUP_SAMSUNG_HEADPHONE_VERY_QUIET, .name = "alc256-samsung-headphone"}, {.id = ALC255_FIXUP_XIAOMI_HEADSET_MIC, .name = "alc255-xiaomi-headset"}, {.id = ALC274_FIXUP_HP_MIC, .name = "alc274-hp-mic-detect"}, @@ -9560,6 +9830,7 @@ {.id = ALC285_FIXUP_HP_SPECTRE_X360, .name = "alc285-hp-spectre-x360"}, {.id = ALC285_FIXUP_HP_SPECTRE_X360_EB1, .name = "alc285-hp-spectre-x360-eb1"}, {.id = ALC287_FIXUP_IDEAPAD_BASS_SPK_AMP, .name = "alc287-ideapad-bass-spk-amp"}, + {.id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, .name = "alc287-yoga9-bass-spk-pin"}, {.id = ALC623_FIXUP_LENOVO_THINKSTATION_P340, .name = "alc623-lenovo-thinkstation-p340"}, {.id = ALC255_FIXUP_ACER_HEADPHONE_AND_MIC, .name = "alc255-acer-headphone-and-mic"}, {.id = ALC285_FIXUP_HP_GPIO_AMP_INIT, .name = "alc285-hp-amp-init"}, @@ -10700,6 +10971,17 @@ } } +static void alc897_fixup_lenovo_headset_mode(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct alc_spec *spec = codec->spec; + + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + spec->parse_flags |= HDA_PINCFG_HEADSET_MIC; + spec->gen.hp_automute_hook = alc897_hp_automute_hook; + } +} + static const struct coef_fw alc668_coefs[] = { WRITE_COEF(0x01, 0xbebe), WRITE_COEF(0x02, 0xaaaa), WRITE_COEF(0x03, 0x0), WRITE_COEF(0x04, 0x0180), WRITE_COEF(0x06, 0x0), WRITE_COEF(0x07, 0x0f80), @@ -10783,6 +11065,8 @@ ALC897_FIXUP_LENOVO_HEADSET_MIC, ALC897_FIXUP_HEADSET_MIC_PIN, ALC897_FIXUP_HP_HSMIC_VERB, + ALC897_FIXUP_LENOVO_HEADSET_MODE, + ALC897_FIXUP_HEADSET_MIC_PIN2, }; static const struct hda_fixup alc662_fixups[] = { @@ -11209,6 +11493,19 @@ { } }, }, + [ALC897_FIXUP_LENOVO_HEADSET_MODE] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc897_fixup_lenovo_headset_mode, + }, + [ALC897_FIXUP_HEADSET_MIC_PIN2] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1a, 0x01a11140 }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC897_FIXUP_LENOVO_HEADSET_MODE + }, }; static const struct snd_pci_quirk alc662_fixup_tbl[] = { @@ -11261,6 +11558,7 @@ SND_PCI_QUIRK(0x17aa, 0x32cb, "Lenovo ThinkCentre M70", ALC897_FIXUP_HEADSET_MIC_PIN), SND_PCI_QUIRK(0x17aa, 0x32cf, "Lenovo ThinkCentre M950", ALC897_FIXUP_HEADSET_MIC_PIN), SND_PCI_QUIRK(0x17aa, 0x32f7, "Lenovo ThinkCentre M90", ALC897_FIXUP_HEADSET_MIC_PIN), + SND_PCI_QUIRK(0x17aa, 0x3742, "Lenovo TianYi510Pro-14IOB", ALC897_FIXUP_HEADSET_MIC_PIN2), SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD), SND_PCI_QUIRK(0x1849, 0x5892, "ASRock B150M", ALC892_FIXUP_ASROCK_MOBO), --- linux-5.19.0.orig/sound/pci/hda/patch_sigmatel.c +++ linux-5.19.0/sound/pci/hda/patch_sigmatel.c @@ -209,6 +209,7 @@ /* beep widgets */ hda_nid_t anabeep_nid; + bool beep_power_on; /* SPDIF-out mux */ const char * const *spdif_labels; @@ -4310,6 +4311,8 @@ if (codec->beep) { /* IDT/STAC codecs have linear beep tone parameter */ codec->beep->linear_tone = spec->linear_tone_beep; + /* keep power up while beep is enabled */ + codec->beep->keep_power_at_enable = 1; /* if no beep switch is available, make its own one */ caps = query_amp_caps(codec, nid, HDA_OUTPUT); if (!(caps & AC_AMPCAP_MUTE)) { --- linux-5.19.0.orig/sound/pci/rme9652/hdsp.c +++ linux-5.19.0/sound/pci/rme9652/hdsp.c @@ -433,7 +433,7 @@ struct snd_rawmidi *rmidi; struct snd_rawmidi_substream *input; struct snd_rawmidi_substream *output; - char istimer; /* timer in use */ + signed char istimer; /* timer in use */ struct timer_list timer; spinlock_t lock; int pending; @@ -480,7 +480,7 @@ pid_t playback_pid; int running; int system_sample_rate; - const char *channel_map; + const signed char *channel_map; int dev; int irq; unsigned long port; @@ -502,7 +502,7 @@ where the data for that channel can be read/written from/to. */ -static const char channel_map_df_ss[HDSP_MAX_CHANNELS] = { +static const signed char channel_map_df_ss[HDSP_MAX_CHANNELS] = { 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 }; @@ -517,7 +517,7 @@ -1, -1, -1, -1, -1, -1, -1, -1 }; -static const char channel_map_ds[HDSP_MAX_CHANNELS] = { +static const signed char channel_map_ds[HDSP_MAX_CHANNELS] = { /* ADAT channels are remapped */ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, /* channels 12 and 13 are S/PDIF */ @@ -526,7 +526,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; -static const char channel_map_H9632_ss[HDSP_MAX_CHANNELS] = { +static const signed char channel_map_H9632_ss[HDSP_MAX_CHANNELS] = { /* ADAT channels */ 0, 1, 2, 3, 4, 5, 6, 7, /* SPDIF */ @@ -540,7 +540,7 @@ -1, -1 }; -static const char channel_map_H9632_ds[HDSP_MAX_CHANNELS] = { +static const signed char channel_map_H9632_ds[HDSP_MAX_CHANNELS] = { /* ADAT */ 1, 3, 5, 7, /* SPDIF */ @@ -554,7 +554,7 @@ -1, -1, -1, -1, -1, -1 }; -static const char channel_map_H9632_qs[HDSP_MAX_CHANNELS] = { +static const signed char channel_map_H9632_qs[HDSP_MAX_CHANNELS] = { /* ADAT is disabled in this mode */ /* SPDIF */ 8, 9, @@ -3939,7 +3939,7 @@ return hdsp_hw_pointer(hdsp); } -static char *hdsp_channel_buffer_location(struct hdsp *hdsp, +static signed char *hdsp_channel_buffer_location(struct hdsp *hdsp, int stream, int channel) @@ -3964,7 +3964,7 @@ void __user *src, unsigned long count) { struct hdsp *hdsp = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; if (snd_BUG_ON(pos + count > HDSP_CHANNEL_BUFFER_BYTES)) return -EINVAL; @@ -3982,7 +3982,7 @@ void *src, unsigned long count) { struct hdsp *hdsp = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = hdsp_channel_buffer_location(hdsp, substream->pstr->stream, channel); if (snd_BUG_ON(!channel_buf)) @@ -3996,7 +3996,7 @@ void __user *dst, unsigned long count) { struct hdsp *hdsp = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; if (snd_BUG_ON(pos + count > HDSP_CHANNEL_BUFFER_BYTES)) return -EINVAL; @@ -4014,7 +4014,7 @@ void *dst, unsigned long count) { struct hdsp *hdsp = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = hdsp_channel_buffer_location(hdsp, substream->pstr->stream, channel); if (snd_BUG_ON(!channel_buf)) @@ -4028,7 +4028,7 @@ unsigned long count) { struct hdsp *hdsp = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = hdsp_channel_buffer_location (hdsp, substream->pstr->stream, channel); if (snd_BUG_ON(!channel_buf)) --- linux-5.19.0.orig/sound/pci/rme9652/rme9652.c +++ linux-5.19.0/sound/pci/rme9652/rme9652.c @@ -230,7 +230,7 @@ int last_spdif_sample_rate; /* so that we can catch externally ... */ int last_adat_sample_rate; /* ... induced rate changes */ - const char *channel_map; + const signed char *channel_map; struct snd_card *card; struct snd_pcm *pcm; @@ -247,12 +247,12 @@ where the data for that channel can be read/written from/to. */ -static const char channel_map_9652_ss[26] = { +static const signed char channel_map_9652_ss[26] = { 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 }; -static const char channel_map_9636_ss[26] = { +static const signed char channel_map_9636_ss[26] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, /* channels 16 and 17 are S/PDIF */ 24, 25, @@ -260,7 +260,7 @@ -1, -1, -1, -1, -1, -1, -1, -1 }; -static const char channel_map_9652_ds[26] = { +static const signed char channel_map_9652_ds[26] = { /* ADAT channels are remapped */ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, /* channels 12 and 13 are S/PDIF */ @@ -269,7 +269,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }; -static const char channel_map_9636_ds[26] = { +static const signed char channel_map_9636_ds[26] = { /* ADAT channels are remapped */ 1, 3, 5, 7, 9, 11, 13, 15, /* channels 8 and 9 are S/PDIF */ @@ -1819,7 +1819,7 @@ return rme9652_hw_pointer(rme9652); } -static char *rme9652_channel_buffer_location(struct snd_rme9652 *rme9652, +static signed char *rme9652_channel_buffer_location(struct snd_rme9652 *rme9652, int stream, int channel) @@ -1847,7 +1847,7 @@ void __user *src, unsigned long count) { struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; if (snd_BUG_ON(pos + count > RME9652_CHANNEL_BUFFER_BYTES)) return -EINVAL; @@ -1867,7 +1867,7 @@ void *src, unsigned long count) { struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = rme9652_channel_buffer_location(rme9652, substream->pstr->stream, @@ -1883,7 +1883,7 @@ void __user *dst, unsigned long count) { struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; if (snd_BUG_ON(pos + count > RME9652_CHANNEL_BUFFER_BYTES)) return -EINVAL; @@ -1903,7 +1903,7 @@ void *dst, unsigned long count) { struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = rme9652_channel_buffer_location(rme9652, substream->pstr->stream, @@ -1919,7 +1919,7 @@ unsigned long count) { struct snd_rme9652 *rme9652 = snd_pcm_substream_chip(substream); - char *channel_buf; + signed char *channel_buf; channel_buf = rme9652_channel_buffer_location (rme9652, substream->pstr->stream, --- linux-5.19.0.orig/sound/soc/amd/Kconfig +++ linux-5.19.0/sound/soc/amd/Kconfig @@ -105,3 +105,24 @@ driver modules to use source "sound/soc/amd/acp/Kconfig" + +config SND_SOC_AMD_PS + tristate "AMD Audio Coprocessor-v6.2 Pink Sardine support" + depends on X86 && PCI && ACPI + help + This option enables Audio Coprocessor i.e ACP v6.2 support on + AMD Pink sardine platform. By enabling this flag build will be + triggered for ACP PCI driver, ACP PDM DMA driver. + Say m if you have such a device. + If unsure select "N". + +config SND_SOC_AMD_PS_MACH + tristate "AMD PINK SARDINE support for DMIC" + select SND_SOC_DMIC + depends on SND_SOC_AMD_PS + help + This option enables machine driver for Pink Sardine platform + using dmic. ACP IP has PDM Decoder block with DMA controller. + DMIC can be connected directly to ACP IP. + Say m if you have such a device. + If unsure select "N". --- linux-5.19.0.orig/sound/soc/amd/Makefile +++ linux-5.19.0/sound/soc/amd/Makefile @@ -15,3 +15,4 @@ obj-$(CONFIG_SND_SOC_AMD_ACP6x) += yc/ obj-$(CONFIG_SND_SOC_AMD_ACP_COMMON) += acp/ obj-$(CONFIG_SND_AMD_ACP_CONFIG) += snd-acp-config.o +obj-$(CONFIG_SND_SOC_AMD_PS) += ps/ --- linux-5.19.0.orig/sound/soc/amd/ps/Makefile +++ linux-5.19.0/sound/soc/amd/ps/Makefile @@ -0,0 +1,9 @@ +# SPDX-License-Identifier: GPL-2.0+ +# Pink Sardine platform Support +snd-pci-ps-objs := pci-ps.o +snd-ps-pdm-dma-objs := ps-pdm-dma.o +snd-soc-ps-mach-objs := ps-mach.o + +obj-$(CONFIG_SND_SOC_AMD_PS) += snd-pci-ps.o +obj-$(CONFIG_SND_SOC_AMD_PS) += snd-ps-pdm-dma.o +obj-$(CONFIG_SND_SOC_AMD_PS_MACH) += snd-soc-ps-mach.o --- linux-5.19.0.orig/sound/soc/amd/ps/acp62.h +++ linux-5.19.0/sound/soc/amd/ps/acp62.h @@ -0,0 +1,98 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * AMD ALSA SoC PDM Driver + * + * Copyright (C) 2022 Advanced Micro Devices, Inc. All rights reserved. + */ + +#include + +#define ACP_DEVICE_ID 0x15E2 +#define ACP6x_REG_START 0x1240000 +#define ACP6x_REG_END 0x1250200 +#define ACP6x_DEVS 3 +#define ACP6x_PDM_MODE 1 + +#define ACP_SOFT_RESET_SOFTRESET_AUDDONE_MASK 0x00010001 +#define ACP_PGFSM_CNTL_POWER_ON_MASK 1 +#define ACP_PGFSM_CNTL_POWER_OFF_MASK 0 +#define ACP_PGFSM_STATUS_MASK 3 +#define ACP_POWERED_ON 0 +#define ACP_POWER_ON_IN_PROGRESS 1 +#define ACP_POWERED_OFF 2 +#define ACP_POWER_OFF_IN_PROGRESS 3 + +#define ACP_ERROR_MASK 0x20000000 +#define ACP_EXT_INTR_STAT_CLEAR_MASK 0xFFFFFFFF +#define PDM_DMA_STAT 0x10 + +#define PDM_DMA_INTR_MASK 0x10000 +#define ACP_ERROR_STAT 29 +#define PDM_DECIMATION_FACTOR 2 +#define ACP_PDM_CLK_FREQ_MASK 7 +#define ACP_WOV_MISC_CTRL_MASK 0x10 +#define ACP_PDM_ENABLE 1 +#define ACP_PDM_DISABLE 0 +#define ACP_PDM_DMA_EN_STATUS 2 +#define TWO_CH 2 +#define DELAY_US 5 +#define ACP_COUNTER 20000 + +#define ACP_SRAM_PTE_OFFSET 0x03800000 +#define PAGE_SIZE_4K_ENABLE 2 +#define PDM_PTE_OFFSET 0 +#define PDM_MEM_WINDOW_START 0x4000000 + +#define CAPTURE_MIN_NUM_PERIODS 4 +#define CAPTURE_MAX_NUM_PERIODS 4 +#define CAPTURE_MAX_PERIOD_SIZE 8192 +#define CAPTURE_MIN_PERIOD_SIZE 4096 + +#define MAX_BUFFER (CAPTURE_MAX_PERIOD_SIZE * CAPTURE_MAX_NUM_PERIODS) +#define MIN_BUFFER MAX_BUFFER + +/* time in ms for runtime suspend delay */ +#define ACP_SUSPEND_DELAY_MS 2000 + +enum acp_config { + ACP_CONFIG_0 = 0, + ACP_CONFIG_1, + ACP_CONFIG_2, + ACP_CONFIG_3, + ACP_CONFIG_4, + ACP_CONFIG_5, + ACP_CONFIG_6, + ACP_CONFIG_7, + ACP_CONFIG_8, + ACP_CONFIG_9, + ACP_CONFIG_10, + ACP_CONFIG_11, + ACP_CONFIG_12, + ACP_CONFIG_13, + ACP_CONFIG_14, + ACP_CONFIG_15, +}; + +struct pdm_stream_instance { + u16 num_pages; + u16 channels; + dma_addr_t dma_addr; + u64 bytescount; + void __iomem *acp62_base; +}; + +struct pdm_dev_data { + u32 pdm_irq; + void __iomem *acp62_base; + struct snd_pcm_substream *capture_stream; +}; + +static inline u32 acp62_readl(void __iomem *base_addr) +{ + return readl(base_addr); +} + +static inline void acp62_writel(u32 val, void __iomem *base_addr) +{ + writel(val, base_addr); +} --- linux-5.19.0.orig/sound/soc/amd/ps/pci-ps.c +++ linux-5.19.0/sound/soc/amd/ps/pci-ps.c @@ -0,0 +1,351 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * AMD Pink Sardine ACP PCI Driver + * + * Copyright 2022 Advanced Micro Devices, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "acp62.h" + +struct acp62_dev_data { + void __iomem *acp62_base; + struct resource *res; + bool acp62_audio_mode; + struct platform_device *pdev[ACP6x_DEVS]; +}; + +static int acp62_power_on(void __iomem *acp_base) +{ + u32 val; + int timeout; + + val = acp62_readl(acp_base + ACP_PGFSM_STATUS); + + if (!val) + return val; + + if ((val & ACP_PGFSM_STATUS_MASK) != ACP_POWER_ON_IN_PROGRESS) + acp62_writel(ACP_PGFSM_CNTL_POWER_ON_MASK, acp_base + ACP_PGFSM_CONTROL); + timeout = 0; + while (++timeout < 500) { + val = acp62_readl(acp_base + ACP_PGFSM_STATUS); + if (!val) + return 0; + udelay(1); + } + return -ETIMEDOUT; +} + +static int acp62_reset(void __iomem *acp_base) +{ + u32 val; + int timeout; + + acp62_writel(1, acp_base + ACP_SOFT_RESET); + timeout = 0; + while (++timeout < 500) { + val = acp62_readl(acp_base + ACP_SOFT_RESET); + if (val & ACP_SOFT_RESET_SOFTRESET_AUDDONE_MASK) + break; + cpu_relax(); + } + acp62_writel(0, acp_base + ACP_SOFT_RESET); + timeout = 0; + while (++timeout < 500) { + val = acp62_readl(acp_base + ACP_SOFT_RESET); + if (!val) + return 0; + cpu_relax(); + } + return -ETIMEDOUT; +} + +static void acp62_enable_interrupts(void __iomem *acp_base) +{ + acp62_writel(1, acp_base + ACP_EXTERNAL_INTR_ENB); +} + +static void acp62_disable_interrupts(void __iomem *acp_base) +{ + acp62_writel(ACP_EXT_INTR_STAT_CLEAR_MASK, acp_base + + ACP_EXTERNAL_INTR_STAT); + acp62_writel(0, acp_base + ACP_EXTERNAL_INTR_CNTL); + acp62_writel(0, acp_base + ACP_EXTERNAL_INTR_ENB); +} + +static int acp62_init(void __iomem *acp_base, struct device *dev) +{ + int ret; + + ret = acp62_power_on(acp_base); + if (ret) { + dev_err(dev, "ACP power on failed\n"); + return ret; + } + acp62_writel(0x01, acp_base + ACP_CONTROL); + ret = acp62_reset(acp_base); + if (ret) { + dev_err(dev, "ACP reset failed\n"); + return ret; + } + acp62_writel(0x03, acp_base + ACP_CLKMUX_SEL); + acp62_enable_interrupts(acp_base); + return 0; +} + +static int acp62_deinit(void __iomem *acp_base, struct device *dev) +{ + int ret; + + acp62_disable_interrupts(acp_base); + ret = acp62_reset(acp_base); + if (ret) { + dev_err(dev, "ACP reset failed\n"); + return ret; + } + acp62_writel(0, acp_base + ACP_CLKMUX_SEL); + acp62_writel(0, acp_base + ACP_CONTROL); + return 0; +} + +static irqreturn_t acp62_irq_handler(int irq, void *dev_id) +{ + struct acp62_dev_data *adata; + struct pdm_dev_data *ps_pdm_data; + u32 val; + + adata = dev_id; + if (!adata) + return IRQ_NONE; + + val = acp62_readl(adata->acp62_base + ACP_EXTERNAL_INTR_STAT); + if (val & BIT(PDM_DMA_STAT)) { + ps_pdm_data = dev_get_drvdata(&adata->pdev[0]->dev); + acp62_writel(BIT(PDM_DMA_STAT), adata->acp62_base + ACP_EXTERNAL_INTR_STAT); + if (ps_pdm_data->capture_stream) + snd_pcm_period_elapsed(ps_pdm_data->capture_stream); + return IRQ_HANDLED; + } + return IRQ_NONE; +} + +static int snd_acp62_probe(struct pci_dev *pci, + const struct pci_device_id *pci_id) +{ + struct acp62_dev_data *adata; + struct platform_device_info pdevinfo[ACP6x_DEVS]; + int index, ret; + int val = 0x00; + struct acpi_device *adev; + const union acpi_object *obj; + u32 addr; + unsigned int irqflags; + + irqflags = IRQF_SHARED; + /* Pink Sardine device check */ + switch (pci->revision) { + case 0x63: + break; + default: + dev_dbg(&pci->dev, "acp62 pci device not found\n"); + return -ENODEV; + } + if (pci_enable_device(pci)) { + dev_err(&pci->dev, "pci_enable_device failed\n"); + return -ENODEV; + } + + ret = pci_request_regions(pci, "AMD ACP6.2 audio"); + if (ret < 0) { + dev_err(&pci->dev, "pci_request_regions failed\n"); + goto disable_pci; + } + adata = devm_kzalloc(&pci->dev, sizeof(struct acp62_dev_data), + GFP_KERNEL); + if (!adata) { + ret = -ENOMEM; + goto release_regions; + } + + addr = pci_resource_start(pci, 0); + adata->acp62_base = devm_ioremap(&pci->dev, addr, + pci_resource_len(pci, 0)); + if (!adata->acp62_base) { + ret = -ENOMEM; + goto release_regions; + } + pci_set_master(pci); + pci_set_drvdata(pci, adata); + ret = acp62_init(adata->acp62_base, &pci->dev); + if (ret) + goto release_regions; + val = acp62_readl(adata->acp62_base + ACP_PIN_CONFIG); + switch (val) { + case ACP_CONFIG_0: + case ACP_CONFIG_1: + case ACP_CONFIG_2: + case ACP_CONFIG_3: + case ACP_CONFIG_9: + case ACP_CONFIG_15: + dev_info(&pci->dev, "Audio Mode %d\n", val); + break; + default: + + /* Checking DMIC hardware*/ + adev = acpi_find_child_device(ACPI_COMPANION(&pci->dev), 0x02, 0); + + if (!adev) + break; + + if (!acpi_dev_get_property(adev, "acp-audio-device-type", + ACPI_TYPE_INTEGER, &obj) && + obj->integer.value == 2) { + adata->res = devm_kzalloc(&pci->dev, sizeof(struct resource), GFP_KERNEL); + if (!adata->res) { + ret = -ENOMEM; + goto de_init; + } + + adata->res->name = "acp_iomem"; + adata->res->flags = IORESOURCE_MEM; + adata->res->start = addr; + adata->res->end = addr + (ACP6x_REG_END - ACP6x_REG_START); + adata->acp62_audio_mode = ACP6x_PDM_MODE; + + memset(&pdevinfo, 0, sizeof(pdevinfo)); + pdevinfo[0].name = "acp_ps_pdm_dma"; + pdevinfo[0].id = 0; + pdevinfo[0].parent = &pci->dev; + pdevinfo[0].num_res = 1; + pdevinfo[0].res = adata->res; + + pdevinfo[1].name = "dmic-codec"; + pdevinfo[1].id = 0; + pdevinfo[1].parent = &pci->dev; + + pdevinfo[2].name = "acp_ps_mach"; + pdevinfo[2].id = 0; + pdevinfo[2].parent = &pci->dev; + + for (index = 0; index < ACP6x_DEVS; index++) { + adata->pdev[index] = + platform_device_register_full(&pdevinfo[index]); + + if (IS_ERR(adata->pdev[index])) { + dev_err(&pci->dev, + "cannot register %s device\n", + pdevinfo[index].name); + ret = PTR_ERR(adata->pdev[index]); + goto unregister_devs; + } + ret = devm_request_irq(&pci->dev, pci->irq, acp62_irq_handler, + irqflags, "ACP_PCI_IRQ", adata); + if (ret) { + dev_err(&pci->dev, "ACP PCI IRQ request failed\n"); + goto unregister_devs; + } + } + } + break; + } + pm_runtime_set_autosuspend_delay(&pci->dev, ACP_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(&pci->dev); + pm_runtime_put_noidle(&pci->dev); + pm_runtime_allow(&pci->dev); + return 0; +unregister_devs: + for (--index; index >= 0; index--) + platform_device_unregister(adata->pdev[index]); +de_init: + if (acp62_deinit(adata->acp62_base, &pci->dev)) + dev_err(&pci->dev, "ACP de-init failed\n"); +release_regions: + pci_release_regions(pci); +disable_pci: + pci_disable_device(pci); + + return ret; +} + +static int __maybe_unused snd_acp62_suspend(struct device *dev) +{ + struct acp62_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp62_deinit(adata->acp62_base, dev); + if (ret) + dev_err(dev, "ACP de-init failed\n"); + return ret; +} + +static int __maybe_unused snd_acp62_resume(struct device *dev) +{ + struct acp62_dev_data *adata; + int ret; + + adata = dev_get_drvdata(dev); + ret = acp62_init(adata->acp62_base, dev); + if (ret) + dev_err(dev, "ACP init failed\n"); + return ret; +} + +static const struct dev_pm_ops acp62_pm_ops = { + SET_RUNTIME_PM_OPS(snd_acp62_suspend, snd_acp62_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(snd_acp62_suspend, snd_acp62_resume) +}; + +static void snd_acp62_remove(struct pci_dev *pci) +{ + struct acp62_dev_data *adata; + int ret, index; + + adata = pci_get_drvdata(pci); + if (adata->acp62_audio_mode == ACP6x_PDM_MODE) { + for (index = 0; index < ACP6x_DEVS; index++) + platform_device_unregister(adata->pdev[index]); + } + ret = acp62_deinit(adata->acp62_base, &pci->dev); + if (ret) + dev_err(&pci->dev, "ACP de-init failed\n"); + pm_runtime_forbid(&pci->dev); + pm_runtime_get_noresume(&pci->dev); + pci_release_regions(pci); + pci_disable_device(pci); +} + +static const struct pci_device_id snd_acp62_ids[] = { + { PCI_DEVICE(PCI_VENDOR_ID_AMD, ACP_DEVICE_ID), + .class = PCI_CLASS_MULTIMEDIA_OTHER << 8, + .class_mask = 0xffffff }, + { 0, }, +}; +MODULE_DEVICE_TABLE(pci, snd_acp62_ids); + +static struct pci_driver ps_acp62_driver = { + .name = KBUILD_MODNAME, + .id_table = snd_acp62_ids, + .probe = snd_acp62_probe, + .remove = snd_acp62_remove, + .driver = { + .pm = &acp62_pm_ops, + } +}; + +module_pci_driver(ps_acp62_driver); + +MODULE_AUTHOR("Vijendar.Mukunda@amd.com"); +MODULE_AUTHOR("Syed.SabaKareem@amd.com"); +MODULE_DESCRIPTION("AMD ACP Pink Sardine PCI driver"); +MODULE_LICENSE("GPL v2"); --- linux-5.19.0.orig/sound/soc/amd/ps/ps-mach.c +++ linux-5.19.0/sound/soc/amd/ps/ps-mach.c @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Machine driver for AMD Pink Sardine platform using DMIC + * + * Copyright 2022 Advanced Micro Devices, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "acp62.h" + +#define DRV_NAME "acp_ps_mach" + +SND_SOC_DAILINK_DEF(acp62_pdm, + DAILINK_COMP_ARRAY(COMP_CPU("acp_ps_pdm_dma.0"))); + +SND_SOC_DAILINK_DEF(dmic_codec, + DAILINK_COMP_ARRAY(COMP_CODEC("dmic-codec.0", + "dmic-hifi"))); + +SND_SOC_DAILINK_DEF(pdm_platform, + DAILINK_COMP_ARRAY(COMP_PLATFORM("acp_ps_pdm_dma.0"))); + +static struct snd_soc_dai_link acp62_dai_pdm[] = { + { + .name = "acp62-dmic-capture", + .stream_name = "DMIC capture", + .capture_only = 1, + SND_SOC_DAILINK_REG(acp62_pdm, dmic_codec, pdm_platform), + }, +}; + +static struct snd_soc_card acp62_card = { + .name = "acp62", + .owner = THIS_MODULE, + .dai_link = acp62_dai_pdm, + .num_links = 1, +}; + +static int acp62_probe(struct platform_device *pdev) +{ + struct acp62_pdm *machine = NULL; + struct snd_soc_card *card; + int ret; + + platform_set_drvdata(pdev, &acp62_card); + card = platform_get_drvdata(pdev); + acp62_card.dev = &pdev->dev; + + snd_soc_card_set_drvdata(card, machine); + ret = devm_snd_soc_register_card(&pdev->dev, card); + if (ret) { + return dev_err_probe(&pdev->dev, ret, + "snd_soc_register_card(%s) failed\n", + card->name); + } + + return 0; +} + +static struct platform_driver acp62_mach_driver = { + .driver = { + .name = "acp_ps_mach", + .pm = &snd_soc_pm_ops, + }, + .probe = acp62_probe, +}; + +module_platform_driver(acp62_mach_driver); + +MODULE_AUTHOR("Syed.SabaKareem@amd.com"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); --- linux-5.19.0.orig/sound/soc/amd/ps/ps-pdm-dma.c +++ linux-5.19.0/sound/soc/amd/ps/ps-pdm-dma.c @@ -0,0 +1,452 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * AMD ALSA SoC Pink Sardine PDM Driver + * + * Copyright 2022 Advanced Micro Devices, Inc. + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "acp62.h" + +#define DRV_NAME "acp_ps_pdm_dma" + +static const struct snd_pcm_hardware acp62_pdm_hardware_capture = { + .info = SNDRV_PCM_INFO_INTERLEAVED | + SNDRV_PCM_INFO_BLOCK_TRANSFER | + SNDRV_PCM_INFO_MMAP | + SNDRV_PCM_INFO_MMAP_VALID | + SNDRV_PCM_INFO_PAUSE | SNDRV_PCM_INFO_RESUME, + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 2, + .channels_max = 2, + .rates = SNDRV_PCM_RATE_48000, + .rate_min = 48000, + .rate_max = 48000, + .buffer_bytes_max = CAPTURE_MAX_NUM_PERIODS * CAPTURE_MAX_PERIOD_SIZE, + .period_bytes_min = CAPTURE_MIN_PERIOD_SIZE, + .period_bytes_max = CAPTURE_MAX_PERIOD_SIZE, + .periods_min = CAPTURE_MIN_NUM_PERIODS, + .periods_max = CAPTURE_MAX_NUM_PERIODS, +}; + +static void acp62_init_pdm_ring_buffer(u32 physical_addr, u32 buffer_size, + u32 watermark_size, void __iomem *acp_base) +{ + acp62_writel(physical_addr, acp_base + ACP_WOV_RX_RINGBUFADDR); + acp62_writel(buffer_size, acp_base + ACP_WOV_RX_RINGBUFSIZE); + acp62_writel(watermark_size, acp_base + ACP_WOV_RX_INTR_WATERMARK_SIZE); + acp62_writel(0x01, acp_base + ACPAXI2AXI_ATU_CTRL); +} + +static void acp62_enable_pdm_clock(void __iomem *acp_base) +{ + u32 pdm_clk_enable, pdm_ctrl; + + pdm_clk_enable = ACP_PDM_CLK_FREQ_MASK; + pdm_ctrl = 0x00; + + acp62_writel(pdm_clk_enable, acp_base + ACP_WOV_CLK_CTRL); + pdm_ctrl = acp62_readl(acp_base + ACP_WOV_MISC_CTRL); + pdm_ctrl |= ACP_WOV_MISC_CTRL_MASK; + acp62_writel(pdm_ctrl, acp_base + ACP_WOV_MISC_CTRL); +} + +static void acp62_enable_pdm_interrupts(void __iomem *acp_base) +{ + u32 ext_int_ctrl; + + ext_int_ctrl = acp62_readl(acp_base + ACP_EXTERNAL_INTR_CNTL); + ext_int_ctrl |= PDM_DMA_INTR_MASK; + acp62_writel(ext_int_ctrl, acp_base + ACP_EXTERNAL_INTR_CNTL); +} + +static void acp62_disable_pdm_interrupts(void __iomem *acp_base) +{ + u32 ext_int_ctrl; + + ext_int_ctrl = acp62_readl(acp_base + ACP_EXTERNAL_INTR_CNTL); + ext_int_ctrl &= ~PDM_DMA_INTR_MASK; + acp62_writel(ext_int_ctrl, acp_base + ACP_EXTERNAL_INTR_CNTL); +} + +static bool acp62_check_pdm_dma_status(void __iomem *acp_base) +{ + bool pdm_dma_status; + u32 pdm_enable, pdm_dma_enable; + + pdm_dma_status = false; + pdm_enable = acp62_readl(acp_base + ACP_WOV_PDM_ENABLE); + pdm_dma_enable = acp62_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); + if ((pdm_enable & ACP_PDM_ENABLE) && (pdm_dma_enable & ACP_PDM_DMA_EN_STATUS)) + pdm_dma_status = true; + + return pdm_dma_status; +} + +static int acp62_start_pdm_dma(void __iomem *acp_base) +{ + u32 pdm_enable; + u32 pdm_dma_enable; + int timeout; + + pdm_enable = 0x01; + pdm_dma_enable = 0x01; + + acp62_enable_pdm_clock(acp_base); + acp62_writel(pdm_enable, acp_base + ACP_WOV_PDM_ENABLE); + acp62_writel(pdm_dma_enable, acp_base + ACP_WOV_PDM_DMA_ENABLE); + timeout = 0; + while (++timeout < ACP_COUNTER) { + pdm_dma_enable = acp62_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); + if ((pdm_dma_enable & 0x02) == ACP_PDM_DMA_EN_STATUS) + return 0; + udelay(DELAY_US); + } + return -ETIMEDOUT; +} + +static int acp62_stop_pdm_dma(void __iomem *acp_base) +{ + u32 pdm_enable, pdm_dma_enable; + int timeout; + + pdm_enable = 0x00; + pdm_dma_enable = 0x00; + + pdm_enable = acp62_readl(acp_base + ACP_WOV_PDM_ENABLE); + pdm_dma_enable = acp62_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); + if (pdm_dma_enable & 0x01) { + pdm_dma_enable = 0x02; + acp62_writel(pdm_dma_enable, acp_base + ACP_WOV_PDM_DMA_ENABLE); + timeout = 0; + while (++timeout < ACP_COUNTER) { + pdm_dma_enable = acp62_readl(acp_base + ACP_WOV_PDM_DMA_ENABLE); + if ((pdm_dma_enable & 0x02) == 0x00) + break; + udelay(DELAY_US); + } + if (timeout == ACP_COUNTER) + return -ETIMEDOUT; + } + if (pdm_enable == ACP_PDM_ENABLE) { + pdm_enable = ACP_PDM_DISABLE; + acp62_writel(pdm_enable, acp_base + ACP_WOV_PDM_ENABLE); + } + acp62_writel(0x01, acp_base + ACP_WOV_PDM_FIFO_FLUSH); + return 0; +} + +static void acp62_config_dma(struct pdm_stream_instance *rtd, int direction) +{ + u16 page_idx; + u32 low, high, val; + dma_addr_t addr; + + addr = rtd->dma_addr; + val = PDM_PTE_OFFSET; + + /* Group Enable */ + acp62_writel(ACP_SRAM_PTE_OFFSET | BIT(31), rtd->acp62_base + + ACPAXI2AXI_ATU_BASE_ADDR_GRP_1); + acp62_writel(PAGE_SIZE_4K_ENABLE, rtd->acp62_base + + ACPAXI2AXI_ATU_PAGE_SIZE_GRP_1); + for (page_idx = 0; page_idx < rtd->num_pages; page_idx++) { + /* Load the low address of page int ACP SRAM through SRBM */ + low = lower_32_bits(addr); + high = upper_32_bits(addr); + + acp62_writel(low, rtd->acp62_base + ACP_SCRATCH_REG_0 + val); + high |= BIT(31); + acp62_writel(high, rtd->acp62_base + ACP_SCRATCH_REG_0 + val + 4); + val += 8; + addr += PAGE_SIZE; + } +} + +static int acp62_pdm_dma_open(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + struct snd_pcm_runtime *runtime; + struct pdm_dev_data *adata; + struct pdm_stream_instance *pdm_data; + int ret; + + runtime = substream->runtime; + adata = dev_get_drvdata(component->dev); + pdm_data = kzalloc(sizeof(*pdm_data), GFP_KERNEL); + if (!pdm_data) + return -EINVAL; + + if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) + runtime->hw = acp62_pdm_hardware_capture; + + ret = snd_pcm_hw_constraint_integer(runtime, + SNDRV_PCM_HW_PARAM_PERIODS); + if (ret < 0) { + dev_err(component->dev, "set integer constraint failed\n"); + kfree(pdm_data); + return ret; + } + + acp62_enable_pdm_interrupts(adata->acp62_base); + + if (substream->stream == SNDRV_PCM_STREAM_CAPTURE) + adata->capture_stream = substream; + + pdm_data->acp62_base = adata->acp62_base; + runtime->private_data = pdm_data; + return ret; +} + +static int acp62_pdm_dma_hw_params(struct snd_soc_component *component, + struct snd_pcm_substream *substream, + struct snd_pcm_hw_params *params) +{ + struct pdm_stream_instance *rtd; + size_t size, period_bytes; + + rtd = substream->runtime->private_data; + if (!rtd) + return -EINVAL; + size = params_buffer_bytes(params); + period_bytes = params_period_bytes(params); + rtd->dma_addr = substream->runtime->dma_addr; + rtd->num_pages = (PAGE_ALIGN(size) >> PAGE_SHIFT); + acp62_config_dma(rtd, substream->stream); + acp62_init_pdm_ring_buffer(PDM_MEM_WINDOW_START, size, + period_bytes, rtd->acp62_base); + return 0; +} + +static u64 acp62_pdm_get_byte_count(struct pdm_stream_instance *rtd, + int direction) +{ + u32 high, low; + u64 byte_count; + + high = acp62_readl(rtd->acp62_base + ACP_WOV_RX_LINEARPOSITIONCNTR_HIGH); + byte_count = high; + low = acp62_readl(rtd->acp62_base + ACP_WOV_RX_LINEARPOSITIONCNTR_LOW); + byte_count = (byte_count << 32) | low; + return byte_count; +} + +static snd_pcm_uframes_t acp62_pdm_dma_pointer(struct snd_soc_component *comp, + struct snd_pcm_substream *stream) +{ + struct pdm_stream_instance *rtd; + u32 pos, buffersize; + u64 bytescount; + + rtd = stream->runtime->private_data; + buffersize = frames_to_bytes(stream->runtime, + stream->runtime->buffer_size); + bytescount = acp62_pdm_get_byte_count(rtd, stream->stream); + if (bytescount > rtd->bytescount) + bytescount -= rtd->bytescount; + pos = do_div(bytescount, buffersize); + return bytes_to_frames(stream->runtime, pos); +} + +static int acp62_pdm_dma_new(struct snd_soc_component *component, + struct snd_soc_pcm_runtime *rtd) +{ + struct device *parent = component->dev->parent; + + snd_pcm_set_managed_buffer_all(rtd->pcm, SNDRV_DMA_TYPE_DEV, + parent, MIN_BUFFER, MAX_BUFFER); + return 0; +} + +static int acp62_pdm_dma_close(struct snd_soc_component *component, + struct snd_pcm_substream *substream) +{ + struct pdm_dev_data *adata = dev_get_drvdata(component->dev); + struct snd_pcm_runtime *runtime = substream->runtime; + + acp62_disable_pdm_interrupts(adata->acp62_base); + adata->capture_stream = NULL; + kfree(runtime->private_data); + return 0; +} + +static int acp62_pdm_dai_trigger(struct snd_pcm_substream *substream, + int cmd, struct snd_soc_dai *dai) +{ + struct pdm_stream_instance *rtd; + int ret; + bool pdm_status; + unsigned int ch_mask; + + rtd = substream->runtime->private_data; + ret = 0; + switch (substream->runtime->channels) { + case TWO_CH: + ch_mask = 0x00; + break; + default: + return -EINVAL; + } + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_RESUME: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + acp62_writel(ch_mask, rtd->acp62_base + ACP_WOV_PDM_NO_OF_CHANNELS); + acp62_writel(PDM_DECIMATION_FACTOR, rtd->acp62_base + + ACP_WOV_PDM_DECIMATION_FACTOR); + rtd->bytescount = acp62_pdm_get_byte_count(rtd, substream->stream); + pdm_status = acp62_check_pdm_dma_status(rtd->acp62_base); + if (!pdm_status) + ret = acp62_start_pdm_dma(rtd->acp62_base); + break; + case SNDRV_PCM_TRIGGER_STOP: + case SNDRV_PCM_TRIGGER_SUSPEND: + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + pdm_status = acp62_check_pdm_dma_status(rtd->acp62_base); + if (pdm_status) + ret = acp62_stop_pdm_dma(rtd->acp62_base); + break; + default: + ret = -EINVAL; + break; + } + return ret; +} + +static const struct snd_soc_dai_ops acp62_pdm_dai_ops = { + .trigger = acp62_pdm_dai_trigger, +}; + +static struct snd_soc_dai_driver acp62_pdm_dai_driver = { + .name = "acp_ps_pdm_dma.0", + .capture = { + .rates = SNDRV_PCM_RATE_48000, + .formats = SNDRV_PCM_FMTBIT_S32_LE, + .channels_min = 2, + .channels_max = 2, + .rate_min = 48000, + .rate_max = 48000, + }, + .ops = &acp62_pdm_dai_ops, +}; + +static const struct snd_soc_component_driver acp62_pdm_component = { + .name = DRV_NAME, + .open = acp62_pdm_dma_open, + .close = acp62_pdm_dma_close, + .hw_params = acp62_pdm_dma_hw_params, + .pointer = acp62_pdm_dma_pointer, + .pcm_construct = acp62_pdm_dma_new, +}; + +static int acp62_pdm_audio_probe(struct platform_device *pdev) +{ + struct resource *res; + struct pdm_dev_data *adata; + int status; + + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) { + dev_err(&pdev->dev, "IORESOURCE_MEM FAILED\n"); + return -ENODEV; + } + + adata = devm_kzalloc(&pdev->dev, sizeof(*adata), GFP_KERNEL); + if (!adata) + return -ENOMEM; + + adata->acp62_base = devm_ioremap(&pdev->dev, res->start, resource_size(res)); + if (!adata->acp62_base) + return -ENOMEM; + + adata->capture_stream = NULL; + + dev_set_drvdata(&pdev->dev, adata); + status = devm_snd_soc_register_component(&pdev->dev, + &acp62_pdm_component, + &acp62_pdm_dai_driver, 1); + if (status) { + dev_err(&pdev->dev, "Fail to register acp pdm dai\n"); + + return -ENODEV; + } + pm_runtime_set_autosuspend_delay(&pdev->dev, ACP_SUSPEND_DELAY_MS); + pm_runtime_use_autosuspend(&pdev->dev); + pm_runtime_enable(&pdev->dev); + pm_runtime_allow(&pdev->dev); + return 0; +} + +static int acp62_pdm_audio_remove(struct platform_device *pdev) +{ + pm_runtime_disable(&pdev->dev); + return 0; +} + +static int __maybe_unused acp62_pdm_resume(struct device *dev) +{ + struct pdm_dev_data *adata; + struct snd_pcm_runtime *runtime; + struct pdm_stream_instance *rtd; + u32 period_bytes, buffer_len; + + adata = dev_get_drvdata(dev); + if (adata->capture_stream && adata->capture_stream->runtime) { + runtime = adata->capture_stream->runtime; + rtd = runtime->private_data; + period_bytes = frames_to_bytes(runtime, runtime->period_size); + buffer_len = frames_to_bytes(runtime, runtime->buffer_size); + acp62_config_dma(rtd, SNDRV_PCM_STREAM_CAPTURE); + acp62_init_pdm_ring_buffer(PDM_MEM_WINDOW_START, buffer_len, + period_bytes, adata->acp62_base); + } + acp62_enable_pdm_interrupts(adata->acp62_base); + return 0; +} + +static int __maybe_unused acp62_pdm_suspend(struct device *dev) +{ + struct pdm_dev_data *adata; + + adata = dev_get_drvdata(dev); + acp62_disable_pdm_interrupts(adata->acp62_base); + return 0; +} + +static int __maybe_unused acp62_pdm_runtime_resume(struct device *dev) +{ + struct pdm_dev_data *adata; + + adata = dev_get_drvdata(dev); + acp62_enable_pdm_interrupts(adata->acp62_base); + return 0; +} + +static const struct dev_pm_ops acp62_pdm_pm_ops = { + SET_RUNTIME_PM_OPS(acp62_pdm_suspend, acp62_pdm_runtime_resume, NULL) + SET_SYSTEM_SLEEP_PM_OPS(acp62_pdm_suspend, acp62_pdm_resume) +}; + +static struct platform_driver acp62_pdm_dma_driver = { + .probe = acp62_pdm_audio_probe, + .remove = acp62_pdm_audio_remove, + .driver = { + .name = "acp_ps_pdm_dma", + .pm = &acp62_pdm_pm_ops, + }, +}; + +module_platform_driver(acp62_pdm_dma_driver); + +MODULE_AUTHOR("Syed.SabaKareem@amd.com"); +MODULE_DESCRIPTION("AMD PINK SARDINE PDM Driver"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:" DRV_NAME); --- linux-5.19.0.orig/sound/soc/amd/yc/acp6x-mach.c +++ linux-5.19.0/sound/soc/amd/yc/acp6x-mach.c @@ -49,84 +49,91 @@ .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D2"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D0"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D3"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D0"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D4"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D1"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D5"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D2"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21CF"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D3"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21CG"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D4"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21CQ"), + DMI_MATCH(DMI_PRODUCT_NAME, "21D5"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21CR"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CF"), + } + }, + { + .driver_data = &acp6x_card, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CG"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21AW"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CQ"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21AX"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CR"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21BN"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CM"), } }, { .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21BQ"), + DMI_MATCH(DMI_PRODUCT_NAME, "21CN"), } }, { @@ -161,14 +168,21 @@ .driver_data = &acp6x_card, .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D8"), + DMI_MATCH(DMI_PRODUCT_NAME, "82"), } }, { .driver_data = &acp6x_card, .matches = { - DMI_MATCH(DMI_BOARD_VENDOR, "LENOVO"), - DMI_MATCH(DMI_PRODUCT_NAME, "21D9"), + DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK COMPUTER INC."), + DMI_MATCH(DMI_PRODUCT_NAME, "UM5302TA"), + } + }, + { + .driver_data = &acp6x_card, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Alienware"), + DMI_MATCH(DMI_PRODUCT_NAME, "Alienware m17 R5 AMD"), } }, {} --- linux-5.19.0.orig/sound/soc/amd/yc/pci-acp6x.c +++ linux-5.19.0/sound/soc/amd/yc/pci-acp6x.c @@ -159,7 +159,7 @@ case 0x6f: break; default: - dev_err(&pci->dev, "acp6x pci device not found\n"); + dev_dbg(&pci->dev, "acp6x pci device not found\n"); return -ENODEV; } if (pci_enable_device(pci)) { --- linux-5.19.0.orig/sound/soc/atmel/mchp-spdifrx.c +++ linux-5.19.0/sound/soc/atmel/mchp-spdifrx.c @@ -288,15 +288,17 @@ spin_unlock_irqrestore(&dev->blockend_lock, flags); } -/* called from atomic context only */ +/* called from atomic/non-atomic context */ static void mchp_spdifrx_isr_blockend_dis(struct mchp_spdifrx_dev *dev) { - spin_lock(&dev->blockend_lock); + unsigned long flags; + + spin_lock_irqsave(&dev->blockend_lock, flags); dev->blockend_refcount--; /* don't enable BLOCKEND interrupt if it's already enabled */ if (dev->blockend_refcount == 0) regmap_write(dev->regmap, SPDIFRX_IDR, SPDIFRX_IR_BLOCKEND); - spin_unlock(&dev->blockend_lock); + spin_unlock_irqrestore(&dev->blockend_lock, flags); } static irqreturn_t mchp_spdif_interrupt(int irq, void *dev_id) @@ -575,6 +577,7 @@ if (ret <= 0) { dev_dbg(dev->dev, "user data for channel %d timeout\n", channel); + mchp_spdifrx_isr_blockend_dis(dev); return ret; } --- linux-5.19.0.orig/sound/soc/atmel/mchp-spdiftx.c +++ linux-5.19.0/sound/soc/atmel/mchp-spdiftx.c @@ -196,8 +196,7 @@ struct clk *pclk; struct clk *gclk; unsigned int fmt; - const struct mchp_i2s_caps *caps; - int gclk_enabled:1; + unsigned int gclk_enabled:1; }; static inline int mchp_spdiftx_is_running(struct mchp_spdiftx_dev *dev) @@ -766,8 +765,6 @@ MODULE_DEVICE_TABLE(of, mchp_spdiftx_dt_ids); static int mchp_spdiftx_probe(struct platform_device *pdev) { - struct device_node *np = pdev->dev.of_node; - const struct of_device_id *match; struct mchp_spdiftx_dev *dev; struct resource *mem; struct regmap *regmap; @@ -781,11 +778,6 @@ if (!dev) return -ENOMEM; - /* Get hardware capabilities. */ - match = of_match_node(mchp_spdiftx_dt_ids, np); - if (match) - dev->caps = match->data; - /* Map I/O registers. */ base = devm_platform_get_and_ioremap_resource(pdev, 0, &mem); if (IS_ERR(base)) --- linux-5.19.0.orig/sound/soc/codecs/Kconfig +++ linux-5.19.0/sound/soc/codecs/Kconfig @@ -1580,6 +1580,7 @@ config SND_SOC_TLV320ADC3XXX tristate "Texas Instruments TLV320ADC3001/3101 audio ADC" depends on I2C + depends on GPIOLIB help Enable support for Texas Instruments TLV320ADC3001 and TLV320ADC3101 ADCs. --- linux-5.19.0.orig/sound/soc/codecs/cros_ec_codec.c +++ linux-5.19.0/sound/soc/codecs/cros_ec_codec.c @@ -995,6 +995,7 @@ dev_dbg(dev, "ap_shm_phys_addr=%#llx len=%#x\n", priv->ap_shm_phys_addr, priv->ap_shm_len); } + of_node_put(node); } #endif --- linux-5.19.0.orig/sound/soc/codecs/cs35l41-lib.c +++ linux-5.19.0/sound/soc/codecs/cs35l41-lib.c @@ -1308,7 +1308,8 @@ return 0; } - dev_err(dev, "Failed to set mailbox cmd %u (status %u)\n", cmd, sts); + if (cmd != CSPL_MBOX_CMD_OUT_OF_HIBERNATE) + dev_err(dev, "Failed to set mailbox cmd %u (status %u)\n", cmd, sts); return -ENOMSG; } @@ -1327,6 +1328,85 @@ } EXPORT_SYMBOL_GPL(cs35l41_write_fs_errata); +int cs35l41_enter_hibernate(struct device *dev, struct regmap *regmap, + enum cs35l41_boost_type b_type) +{ + if (!cs35l41_safe_reset(regmap, b_type)) { + dev_dbg(dev, "System does not support Suspend\n"); + return -EINVAL; + } + + dev_dbg(dev, "Enter hibernate\n"); + regmap_write(regmap, CS35L41_WAKESRC_CTL, 0x0088); + regmap_write(regmap, CS35L41_WAKESRC_CTL, 0x0188); + + // Don't wait for ACK since bus activity would wake the device + regmap_write(regmap, CS35L41_DSP_VIRT1_MBOX_1, CSPL_MBOX_CMD_HIBERNATE); + + return 0; +} +EXPORT_SYMBOL_GPL(cs35l41_enter_hibernate); + +static void cs35l41_wait_for_pwrmgt_sts(struct device *dev, struct regmap *regmap) +{ + const int pwrmgt_retries = 10; + unsigned int sts; + int i, ret; + + for (i = 0; i < pwrmgt_retries; i++) { + ret = regmap_read(regmap, CS35L41_PWRMGT_STS, &sts); + if (ret) + dev_err(dev, "Failed to read PWRMGT_STS: %d\n", ret); + else if (!(sts & CS35L41_WR_PEND_STS_MASK)) + return; + + udelay(20); + } + + dev_err(dev, "Timed out reading PWRMGT_STS\n"); +} + +int cs35l41_exit_hibernate(struct device *dev, struct regmap *regmap) +{ + const int wake_retries = 20; + const int sleep_retries = 5; + int ret, i, j; + + for (i = 0; i < sleep_retries; i++) { + dev_dbg(dev, "Exit hibernate\n"); + + for (j = 0; j < wake_retries; j++) { + ret = cs35l41_set_cspl_mbox_cmd(dev, regmap, + CSPL_MBOX_CMD_OUT_OF_HIBERNATE); + if (!ret) + break; + + usleep_range(100, 200); + } + + if (j < wake_retries) { + dev_dbg(dev, "Wake success at cycle: %d\n", j); + return 0; + } + + dev_err(dev, "Wake failed, re-enter hibernate: %d\n", ret); + + cs35l41_wait_for_pwrmgt_sts(dev, regmap); + regmap_write(regmap, CS35L41_WAKESRC_CTL, 0x0088); + + cs35l41_wait_for_pwrmgt_sts(dev, regmap); + regmap_write(regmap, CS35L41_WAKESRC_CTL, 0x0188); + + cs35l41_wait_for_pwrmgt_sts(dev, regmap); + regmap_write(regmap, CS35L41_PWRMGT_CTL, 0x3); + } + + dev_err(dev, "Timed out waking device\n"); + + return -ETIMEDOUT; +} +EXPORT_SYMBOL_GPL(cs35l41_exit_hibernate); + MODULE_DESCRIPTION("CS35L41 library"); MODULE_AUTHOR("David Rhodes, Cirrus Logic Inc, "); MODULE_AUTHOR("Lucas Tanure, Cirrus Logic Inc, "); --- linux-5.19.0.orig/sound/soc/codecs/cs35l41.c +++ linux-5.19.0/sound/soc/codecs/cs35l41.c @@ -1335,15 +1335,7 @@ if (!cs35l41->dsp.preloaded || !cs35l41->dsp.cs_dsp.running) return 0; - dev_dbg(cs35l41->dev, "Enter hibernate\n"); - - cs35l41_safe_reset(cs35l41->regmap, cs35l41->hw_cfg.bst_type); - regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0088); - regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0188); - - // Don't wait for ACK since bus activity would wake the device - regmap_write(cs35l41->regmap, CS35L41_DSP_VIRT1_MBOX_1, - CSPL_MBOX_CMD_HIBERNATE); + cs35l41_enter_hibernate(dev, cs35l41->regmap, cs35l41->hw_cfg.bst_type); regcache_cache_only(cs35l41->regmap, true); regcache_mark_dirty(cs35l41->regmap); @@ -1351,65 +1343,6 @@ return 0; } -static void cs35l41_wait_for_pwrmgt_sts(struct cs35l41_private *cs35l41) -{ - const int pwrmgt_retries = 10; - unsigned int sts; - int i, ret; - - for (i = 0; i < pwrmgt_retries; i++) { - ret = regmap_read(cs35l41->regmap, CS35L41_PWRMGT_STS, &sts); - if (ret) - dev_err(cs35l41->dev, "Failed to read PWRMGT_STS: %d\n", ret); - else if (!(sts & CS35L41_WR_PEND_STS_MASK)) - return; - - udelay(20); - } - - dev_err(cs35l41->dev, "Timed out reading PWRMGT_STS\n"); -} - -static int cs35l41_exit_hibernate(struct cs35l41_private *cs35l41) -{ - const int wake_retries = 20; - const int sleep_retries = 5; - int ret, i, j; - - for (i = 0; i < sleep_retries; i++) { - dev_dbg(cs35l41->dev, "Exit hibernate\n"); - - for (j = 0; j < wake_retries; j++) { - ret = cs35l41_set_cspl_mbox_cmd(cs35l41->dev, cs35l41->regmap, - CSPL_MBOX_CMD_OUT_OF_HIBERNATE); - if (!ret) - break; - - usleep_range(100, 200); - } - - if (j < wake_retries) { - dev_dbg(cs35l41->dev, "Wake success at cycle: %d\n", j); - return 0; - } - - dev_err(cs35l41->dev, "Wake failed, re-enter hibernate: %d\n", ret); - - cs35l41_wait_for_pwrmgt_sts(cs35l41); - regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0088); - - cs35l41_wait_for_pwrmgt_sts(cs35l41); - regmap_write(cs35l41->regmap, CS35L41_WAKESRC_CTL, 0x0188); - - cs35l41_wait_for_pwrmgt_sts(cs35l41); - regmap_write(cs35l41->regmap, CS35L41_PWRMGT_CTL, 0x3); - } - - dev_err(cs35l41->dev, "Timed out waking device\n"); - - return -ETIMEDOUT; -} - static int __maybe_unused cs35l41_runtime_resume(struct device *dev) { struct cs35l41_private *cs35l41 = dev_get_drvdata(dev); @@ -1422,7 +1355,7 @@ regcache_cache_only(cs35l41->regmap, false); - ret = cs35l41_exit_hibernate(cs35l41); + ret = cs35l41_exit_hibernate(cs35l41->dev, cs35l41->regmap); if (ret) return ret; --- linux-5.19.0.orig/sound/soc/codecs/cs35l45.c +++ linux-5.19.0/sound/soc/codecs/cs35l45.c @@ -500,6 +500,8 @@ .num_controls = ARRAY_SIZE(cs35l45_controls), .name = "cs35l45", + + .endianness = 1, }; static int __maybe_unused cs35l45_runtime_suspend(struct device *dev) --- linux-5.19.0.orig/sound/soc/codecs/cs42l42.c +++ linux-5.19.0/sound/soc/codecs/cs42l42.c @@ -1618,7 +1618,6 @@ unsigned int current_plug_status; unsigned int current_button_status; unsigned int i; - int report = 0; mutex_lock(&cs42l42->irq_lock); if (cs42l42->suspended) { @@ -1713,13 +1712,15 @@ if (current_button_status & CS42L42_M_DETECT_TF_MASK) { dev_dbg(cs42l42->dev, "Button released\n"); - report = 0; + snd_soc_jack_report(cs42l42->jack, 0, + SND_JACK_BTN_0 | SND_JACK_BTN_1 | + SND_JACK_BTN_2 | SND_JACK_BTN_3); } else if (current_button_status & CS42L42_M_DETECT_FT_MASK) { - report = cs42l42_handle_button_press(cs42l42); - + snd_soc_jack_report(cs42l42->jack, + cs42l42_handle_button_press(cs42l42), + SND_JACK_BTN_0 | SND_JACK_BTN_1 | + SND_JACK_BTN_2 | SND_JACK_BTN_3); } - snd_soc_jack_report(cs42l42->jack, report, SND_JACK_BTN_0 | SND_JACK_BTN_1 | - SND_JACK_BTN_2 | SND_JACK_BTN_3); } } --- linux-5.19.0.orig/sound/soc/codecs/cs42l51.c +++ linux-5.19.0/sound/soc/codecs/cs42l51.c @@ -143,7 +143,7 @@ 0, 0xA0, 96, adc_att_tlv), SOC_DOUBLE_R_SX_TLV("PGA Volume", CS42L51_ALC_PGA_CTL, CS42L51_ALC_PGB_CTL, - 0, 0x19, 30, pga_tlv), + 0, 0x1A, 30, pga_tlv), SOC_SINGLE("Playback Deemphasis Switch", CS42L51_DAC_CTL, 3, 1, 0), SOC_SINGLE("Auto-Mute Switch", CS42L51_DAC_CTL, 2, 1, 0), SOC_SINGLE("Soft Ramp Switch", CS42L51_DAC_CTL, 1, 1, 0), --- linux-5.19.0.orig/sound/soc/codecs/da7210.c +++ linux-5.19.0/sound/soc/codecs/da7210.c @@ -1335,6 +1335,8 @@ int ret = 0; #if IS_ENABLED(CONFIG_I2C) ret = i2c_add_driver(&da7210_i2c_driver); + if (ret) + return ret; #endif #if defined(CONFIG_SPI_MASTER) ret = spi_register_driver(&da7210_spi_driver); --- linux-5.19.0.orig/sound/soc/codecs/da7219.c +++ linux-5.19.0/sound/soc/codecs/da7219.c @@ -2196,6 +2196,7 @@ dai_clk_lookup = clkdev_hw_create(dai_clk_hw, init.name, "%s", dev_name(dev)); if (!dai_clk_lookup) { + clk_hw_unregister(dai_clk_hw); ret = -ENOMEM; goto err; } else { @@ -2217,12 +2218,12 @@ return 0; err: - do { + while (--i >= 0) { if (da7219->dai_clks_lookup[i]) clkdev_drop(da7219->dai_clks_lookup[i]); clk_hw_unregister(&da7219->dai_clks_hw[i]); - } while (i-- > 0); + } if (np) kfree(da7219->clk_hw_data); --- linux-5.19.0.orig/sound/soc/codecs/hdac_hda.h +++ linux-5.19.0/sound/soc/codecs/hdac_hda.h @@ -14,7 +14,7 @@ HDAC_HDMI_1_DAI_ID, HDAC_HDMI_2_DAI_ID, HDAC_HDMI_3_DAI_ID, - HDAC_LAST_DAI_ID = HDAC_HDMI_3_DAI_ID, + HDAC_DAI_ID_NUM }; struct hdac_hda_pcm { @@ -24,7 +24,7 @@ struct hdac_hda_priv { struct hda_codec codec; - struct hdac_hda_pcm pcm[HDAC_LAST_DAI_ID]; + struct hdac_hda_pcm pcm[HDAC_DAI_ID_NUM]; bool need_display_power; }; --- linux-5.19.0.orig/sound/soc/codecs/jz4725b.c +++ linux-5.19.0/sound/soc/codecs/jz4725b.c @@ -136,14 +136,17 @@ #define REG_CGR3_GO1L_OFFSET 0 #define REG_CGR3_GO1L_MASK (0x1f << REG_CGR3_GO1L_OFFSET) +#define REG_CGR10_GIL_OFFSET 0 +#define REG_CGR10_GIR_OFFSET 4 + struct jz_icdc { struct regmap *regmap; void __iomem *base; struct clk *clk; }; -static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(jz4725b_dac_tlv, -2250, 0); -static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(jz4725b_line_tlv, -1500, 600); +static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_adc_tlv, 0, 150, 0); +static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_dac_tlv, -2250, 150, 0); static const struct snd_kcontrol_new jz4725b_codec_controls[] = { SOC_DOUBLE_TLV("Master Playback Volume", @@ -151,11 +154,11 @@ REG_CGR1_GODL_OFFSET, REG_CGR1_GODR_OFFSET, 0xf, 1, jz4725b_dac_tlv), - SOC_DOUBLE_R_TLV("Master Capture Volume", - JZ4725B_CODEC_REG_CGR3, - JZ4725B_CODEC_REG_CGR2, - REG_CGR2_GO1R_OFFSET, - 0x1f, 1, jz4725b_line_tlv), + SOC_DOUBLE_TLV("Master Capture Volume", + JZ4725B_CODEC_REG_CGR10, + REG_CGR10_GIL_OFFSET, + REG_CGR10_GIR_OFFSET, + 0xf, 0, jz4725b_adc_tlv), SOC_SINGLE("Master Playback Switch", JZ4725B_CODEC_REG_CR1, REG_CR1_DAC_MUTE_OFFSET, 1, 1), @@ -180,7 +183,7 @@ jz4725b_codec_adc_src_texts, jz4725b_codec_adc_src_values); static const struct snd_kcontrol_new jz4725b_codec_adc_src_ctrl = - SOC_DAPM_ENUM("Route", jz4725b_codec_adc_src_enum); + SOC_DAPM_ENUM("ADC Source Capture Route", jz4725b_codec_adc_src_enum); static const struct snd_kcontrol_new jz4725b_codec_mixer_controls[] = { SOC_DAPM_SINGLE("Line In Bypass", JZ4725B_CODEC_REG_CR1, @@ -225,7 +228,7 @@ SND_SOC_DAPM_ADC("ADC", "Capture", JZ4725B_CODEC_REG_PMR1, REG_PMR1_SB_ADC_OFFSET, 1), - SND_SOC_DAPM_MUX("ADC Source", SND_SOC_NOPM, 0, 0, + SND_SOC_DAPM_MUX("ADC Source Capture Route", SND_SOC_NOPM, 0, 0, &jz4725b_codec_adc_src_ctrl), /* Mixer */ @@ -236,7 +239,8 @@ SND_SOC_DAPM_MIXER("DAC to Mixer", JZ4725B_CODEC_REG_CR1, REG_CR1_DACSEL_OFFSET, 0, NULL, 0), - SND_SOC_DAPM_MIXER("Line In", SND_SOC_NOPM, 0, 0, NULL, 0), + SND_SOC_DAPM_MIXER("Line In", JZ4725B_CODEC_REG_PMR1, + REG_PMR1_SB_LIN_OFFSET, 1, NULL, 0), SND_SOC_DAPM_MIXER("HP Out", JZ4725B_CODEC_REG_CR1, REG_CR1_HP_DIS_OFFSET, 1, NULL, 0), @@ -283,11 +287,11 @@ {"Mixer", NULL, "DAC to Mixer"}, {"Mixer to ADC", NULL, "Mixer"}, - {"ADC Source", "Mixer", "Mixer to ADC"}, - {"ADC Source", "Line In", "Line In"}, - {"ADC Source", "Mic 1", "Mic 1"}, - {"ADC Source", "Mic 2", "Mic 2"}, - {"ADC", NULL, "ADC Source"}, + {"ADC Source Capture Route", "Mixer", "Mixer to ADC"}, + {"ADC Source Capture Route", "Line In", "Line In"}, + {"ADC Source Capture Route", "Mic 1", "Mic 1"}, + {"ADC Source Capture Route", "Mic 2", "Mic 2"}, + {"ADC", NULL, "ADC Source Capture Route"}, {"Out Stage", NULL, "Mixer"}, {"HP Out", NULL, "Out Stage"}, --- linux-5.19.0.orig/sound/soc/codecs/lpass-tx-macro.c +++ linux-5.19.0/sound/soc/codecs/lpass-tx-macro.c @@ -823,17 +823,23 @@ struct tx_macro *tx = snd_soc_component_get_drvdata(component); if (enable) { + if (tx->active_decimator[dai_id] == dec_id) + return 0; + set_bit(dec_id, &tx->active_ch_mask[dai_id]); tx->active_ch_cnt[dai_id]++; tx->active_decimator[dai_id] = dec_id; } else { + if (tx->active_decimator[dai_id] == -1) + return 0; + tx->active_ch_cnt[dai_id]--; clear_bit(dec_id, &tx->active_ch_mask[dai_id]); tx->active_decimator[dai_id] = -1; } snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, enable, update); - return 0; + return 1; } static int tx_macro_enable_dec(struct snd_soc_dapm_widget *w, @@ -1019,9 +1025,12 @@ int path = e->shift_l; struct tx_macro *tx = snd_soc_component_get_drvdata(component); + if (tx->dec_mode[path] == value) + return 0; + tx->dec_mode[path] = value; - return 0; + return 1; } static int tx_macro_get_bcs(struct snd_kcontrol *kcontrol, --- linux-5.19.0.orig/sound/soc/codecs/lpass-va-macro.c +++ linux-5.19.0/sound/soc/codecs/lpass-va-macro.c @@ -199,6 +199,7 @@ struct clk *mclk; struct clk *macro; struct clk *dcodec; + struct clk *fsgen; struct clk_hw hw; struct lpass_macro *pds; @@ -467,9 +468,9 @@ switch (event) { case SND_SOC_DAPM_PRE_PMU: - return va_macro_mclk_enable(va, true); + return clk_prepare_enable(va->fsgen); case SND_SOC_DAPM_POST_PMD: - return va_macro_mclk_enable(va, false); + clk_disable_unprepare(va->fsgen); } return 0; @@ -1473,6 +1474,12 @@ if (ret) goto err_clkout; + va->fsgen = clk_hw_get_clk(&va->hw, "fsgen"); + if (IS_ERR(va->fsgen)) { + ret = PTR_ERR(va->fsgen); + goto err_clkout; + } + ret = devm_snd_soc_register_component(dev, &va_macro_component_drv, va_macro_dais, ARRAY_SIZE(va_macro_dais)); --- linux-5.19.0.orig/sound/soc/codecs/max98373-i2c.c +++ linux-5.19.0/sound/soc/codecs/max98373-i2c.c @@ -550,6 +550,10 @@ max98373->cache = devm_kcalloc(&i2c->dev, max98373->cache_num, sizeof(*max98373->cache), GFP_KERNEL); + if (!max98373->cache) { + ret = -ENOMEM; + return ret; + } for (i = 0; i < max98373->cache_num; i++) max98373->cache[i].reg = max98373_i2c_cache_reg[i]; --- linux-5.19.0.orig/sound/soc/codecs/max98390.c +++ linux-5.19.0/sound/soc/codecs/max98390.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include #include #include --- linux-5.19.0.orig/sound/soc/codecs/msm8916-wcd-digital.c +++ linux-5.19.0/sound/soc/codecs/msm8916-wcd-digital.c @@ -328,8 +328,8 @@ static const struct snd_kcontrol_new rx2_mix2_inp1_mux = SOC_DAPM_ENUM( "RX2 MIX2 INP1 Mux", rx2_mix2_inp1_chain_enum); -/* Digital Gain control -38.4 dB to +38.4 dB in 0.3 dB steps */ -static const DECLARE_TLV_DB_SCALE(digital_gain, -3840, 30, 0); +/* Digital Gain control -84 dB to +40 dB in 1 dB steps */ +static const DECLARE_TLV_DB_SCALE(digital_gain, -8400, 100, -8400); /* Cutoff Freq for High Pass Filter at -3dB */ static const char * const hpf_cutoff_text[] = { @@ -510,15 +510,15 @@ static const struct snd_kcontrol_new msm8916_wcd_digital_snd_controls[] = { SOC_SINGLE_S8_TLV("RX1 Digital Volume", LPASS_CDC_RX1_VOL_CTL_B2_CTL, - -128, 127, digital_gain), + -84, 40, digital_gain), SOC_SINGLE_S8_TLV("RX2 Digital Volume", LPASS_CDC_RX2_VOL_CTL_B2_CTL, - -128, 127, digital_gain), + -84, 40, digital_gain), SOC_SINGLE_S8_TLV("RX3 Digital Volume", LPASS_CDC_RX3_VOL_CTL_B2_CTL, - -128, 127, digital_gain), + -84, 40, digital_gain), SOC_SINGLE_S8_TLV("TX1 Digital Volume", LPASS_CDC_TX1_VOL_CTL_GAIN, - -128, 127, digital_gain), + -84, 40, digital_gain), SOC_SINGLE_S8_TLV("TX2 Digital Volume", LPASS_CDC_TX2_VOL_CTL_GAIN, - -128, 127, digital_gain), + -84, 40, digital_gain), SOC_ENUM("TX1 HPF Cutoff", tx1_hpf_cutoff_enum), SOC_ENUM("TX2 HPF Cutoff", tx2_hpf_cutoff_enum), SOC_SINGLE("TX1 HPF Switch", LPASS_CDC_TX1_MUX_CTL, 3, 1, 0), @@ -553,22 +553,22 @@ WCD_IIR_FILTER_CTL("IIR2 Band3", IIR2, BAND3), WCD_IIR_FILTER_CTL("IIR2 Band4", IIR2, BAND4), WCD_IIR_FILTER_CTL("IIR2 Band5", IIR2, BAND5), - SOC_SINGLE_SX_TLV("IIR1 INP1 Volume", LPASS_CDC_IIR1_GAIN_B1_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR1 INP2 Volume", LPASS_CDC_IIR1_GAIN_B2_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR1 INP3 Volume", LPASS_CDC_IIR1_GAIN_B3_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR1 INP4 Volume", LPASS_CDC_IIR1_GAIN_B4_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR2 INP1 Volume", LPASS_CDC_IIR2_GAIN_B1_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR2 INP2 Volume", LPASS_CDC_IIR2_GAIN_B2_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR2 INP3 Volume", LPASS_CDC_IIR2_GAIN_B3_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("IIR2 INP4 Volume", LPASS_CDC_IIR2_GAIN_B4_CTL, - 0, -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR1 INP1 Volume", LPASS_CDC_IIR1_GAIN_B1_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR1 INP2 Volume", LPASS_CDC_IIR1_GAIN_B2_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR1 INP3 Volume", LPASS_CDC_IIR1_GAIN_B3_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR1 INP4 Volume", LPASS_CDC_IIR1_GAIN_B4_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR2 INP1 Volume", LPASS_CDC_IIR2_GAIN_B1_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR2 INP2 Volume", LPASS_CDC_IIR2_GAIN_B2_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR2 INP3 Volume", LPASS_CDC_IIR2_GAIN_B3_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("IIR2 INP4 Volume", LPASS_CDC_IIR2_GAIN_B4_CTL, + -84, 40, digital_gain), }; --- linux-5.19.0.orig/sound/soc/codecs/mt6359-accdet.c +++ linux-5.19.0/sound/soc/codecs/mt6359-accdet.c @@ -675,6 +675,7 @@ sizeof(struct three_key_threshold)); } + of_node_put(node); dev_warn(priv->dev, "accdet caps=%x\n", priv->caps); return 0; @@ -964,7 +965,7 @@ mutex_init(&priv->res_lock); priv->accdet_irq = platform_get_irq(pdev, 0); - if (priv->accdet_irq) { + if (priv->accdet_irq >= 0) { ret = devm_request_threaded_irq(&pdev->dev, priv->accdet_irq, NULL, mt6359_accdet_irq, IRQF_TRIGGER_HIGH | IRQF_ONESHOT, @@ -978,7 +979,7 @@ if (priv->caps & ACCDET_PMIC_EINT0) { priv->accdet_eint0 = platform_get_irq(pdev, 1); - if (priv->accdet_eint0) { + if (priv->accdet_eint0 >= 0) { ret = devm_request_threaded_irq(&pdev->dev, priv->accdet_eint0, NULL, mt6359_accdet_irq, @@ -993,7 +994,7 @@ } } else if (priv->caps & ACCDET_PMIC_EINT1) { priv->accdet_eint1 = platform_get_irq(pdev, 2); - if (priv->accdet_eint1) { + if (priv->accdet_eint1 >= 0) { ret = devm_request_threaded_irq(&pdev->dev, priv->accdet_eint1, NULL, mt6359_accdet_irq, --- linux-5.19.0.orig/sound/soc/codecs/mt6359.c +++ linux-5.19.0/sound/soc/codecs/mt6359.c @@ -2778,6 +2778,7 @@ ret = of_property_read_u32(np, "mediatek,mic-type-2", &priv->mux_select[MUX_MIC_TYPE_2]); + of_node_put(np); if (ret) { dev_info(priv->dev, "%s() failed to read mic-type-2, use default (%d)\n", --- linux-5.19.0.orig/sound/soc/codecs/mt6660.c +++ linux-5.19.0/sound/soc/codecs/mt6660.c @@ -509,7 +509,11 @@ ret = devm_snd_soc_register_component(chip->dev, &mt6660_component_driver, &mt6660_codec_dai, 1); + if (ret) + pm_runtime_disable(chip->dev); + return ret; + probe_fail: _mt6660_chip_power_on(chip, 0); mutex_destroy(&chip->io_lock); --- linux-5.19.0.orig/sound/soc/codecs/nau8821.c +++ linux-5.19.0/sound/soc/codecs/nau8821.c @@ -1665,15 +1665,6 @@ return ret; } -static int nau8821_i2c_remove(struct i2c_client *i2c_client) -{ - struct nau8821 *nau8821 = i2c_get_clientdata(i2c_client); - - devm_free_irq(nau8821->dev, nau8821->irq, nau8821); - - return 0; -} - static const struct i2c_device_id nau8821_i2c_ids[] = { { "nau8821", 0 }, { } @@ -1703,7 +1694,6 @@ .acpi_match_table = ACPI_PTR(nau8821_acpi_match), }, .probe_new = nau8821_i2c_probe, - .remove = nau8821_i2c_remove, .id_table = nau8821_i2c_ids, }; module_i2c_driver(nau8821_driver); --- linux-5.19.0.orig/sound/soc/codecs/pcm512x.c +++ linux-5.19.0/sound/soc/codecs/pcm512x.c @@ -1635,7 +1635,7 @@ if (val > 6) { dev_err(dev, "Invalid pll-in\n"); ret = -EINVAL; - goto err_clk; + goto err_pm; } pcm512x->pll_in = val; } @@ -1644,7 +1644,7 @@ if (val > 6) { dev_err(dev, "Invalid pll-out\n"); ret = -EINVAL; - goto err_clk; + goto err_pm; } pcm512x->pll_out = val; } @@ -1653,12 +1653,12 @@ dev_err(dev, "Error: both pll-in and pll-out, or none\n"); ret = -EINVAL; - goto err_clk; + goto err_pm; } if (pcm512x->pll_in && pcm512x->pll_in == pcm512x->pll_out) { dev_err(dev, "Error: pll-in == pll-out\n"); ret = -EINVAL; - goto err_clk; + goto err_pm; } } #endif --- linux-5.19.0.orig/sound/soc/codecs/rt1019.c +++ linux-5.19.0/sound/soc/codecs/rt1019.c @@ -391,18 +391,18 @@ unsigned int rx_mask, int slots, int slot_width) { struct snd_soc_component *component = dai->component; - unsigned int val = 0, rx_slotnum; + unsigned int cn = 0, cl = 0, rx_slotnum; int ret = 0, first_bit; switch (slots) { case 4: - val |= RT1019_I2S_TX_4CH; + cn = RT1019_I2S_TX_4CH; break; case 6: - val |= RT1019_I2S_TX_6CH; + cn = RT1019_I2S_TX_6CH; break; case 8: - val |= RT1019_I2S_TX_8CH; + cn = RT1019_I2S_TX_8CH; break; case 2: break; @@ -412,16 +412,16 @@ switch (slot_width) { case 20: - val |= RT1019_I2S_DL_20; + cl = RT1019_TDM_CL_20; break; case 24: - val |= RT1019_I2S_DL_24; + cl = RT1019_TDM_CL_24; break; case 32: - val |= RT1019_I2S_DL_32; + cl = RT1019_TDM_CL_32; break; case 8: - val |= RT1019_I2S_DL_8; + cl = RT1019_TDM_CL_8; break; case 16: break; @@ -470,8 +470,10 @@ goto _set_tdm_err_; } + snd_soc_component_update_bits(component, RT1019_TDM_1, + RT1019_TDM_CL_MASK, cl); snd_soc_component_update_bits(component, RT1019_TDM_2, - RT1019_I2S_CH_TX_MASK | RT1019_I2S_DF_MASK, val); + RT1019_I2S_CH_TX_MASK, cn); _set_tdm_err_: return ret; --- linux-5.19.0.orig/sound/soc/codecs/rt1019.h +++ linux-5.19.0/sound/soc/codecs/rt1019.h @@ -95,6 +95,12 @@ #define RT1019_TDM_BCLK_MASK (0x1 << 6) #define RT1019_TDM_BCLK_NORM (0x0 << 6) #define RT1019_TDM_BCLK_INV (0x1 << 6) +#define RT1019_TDM_CL_MASK (0x7) +#define RT1019_TDM_CL_8 (0x4) +#define RT1019_TDM_CL_32 (0x3) +#define RT1019_TDM_CL_24 (0x2) +#define RT1019_TDM_CL_20 (0x1) +#define RT1019_TDM_CL_16 (0x0) /* 0x0401 TDM Control-2 */ #define RT1019_I2S_CH_TX_MASK (0x3 << 6) --- linux-5.19.0.orig/sound/soc/codecs/rt1308-sdw.h +++ linux-5.19.0/sound/soc/codecs/rt1308-sdw.h @@ -139,10 +139,12 @@ { 0x3005, 0x23 }, { 0x3008, 0x02 }, { 0x300a, 0x00 }, + { 0xc000 | (RT1308_DATA_PATH << 4), 0x00 }, { 0xc003 | (RT1308_DAC_SET << 4), 0x00 }, { 0xc000 | (RT1308_POWER << 4), 0x00 }, { 0xc001 | (RT1308_POWER << 4), 0x00 }, { 0xc002 | (RT1308_POWER << 4), 0x00 }, + { 0xc000 | (RT1308_POWER_STATUS << 4), 0x00 }, }; #define RT1308_SDW_OFFSET 0xc000 --- linux-5.19.0.orig/sound/soc/codecs/rt298.c +++ linux-5.19.0/sound/soc/codecs/rt298.c @@ -1173,6 +1173,13 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Geminilake") } }, + { + .ident = "Intel Kabylake R RVP", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Intel Corporation"), + DMI_MATCH(DMI_PRODUCT_NAME, "Kabylake Client platform") + } + }, { } }; --- linux-5.19.0.orig/sound/soc/codecs/rt5640.c +++ linux-5.19.0/sound/soc/codecs/rt5640.c @@ -1986,7 +1986,7 @@ snd_soc_component_write(component, RT5640_PWR_MIXER, 0x0000); if (rt5640->jd_src == RT5640_JD_SRC_HDA_HEADER) snd_soc_component_write(component, RT5640_PWR_ANLG1, - 0x0018); + 0x2818); else snd_soc_component_write(component, RT5640_PWR_ANLG1, 0x0000); @@ -2592,7 +2592,8 @@ snd_soc_component_update_bits(component, RT5640_DUMMY1, 0x400, 0x0); snd_soc_component_update_bits(component, RT5640_PWR_ANLG1, - RT5640_PWR_VREF2, RT5640_PWR_VREF2); + RT5640_PWR_VREF2 | RT5640_PWR_MB | RT5640_PWR_BG, + RT5640_PWR_VREF2 | RT5640_PWR_MB | RT5640_PWR_BG); usleep_range(10000, 15000); snd_soc_component_update_bits(component, RT5640_PWR_ANLG1, RT5640_PWR_FV2, RT5640_PWR_FV2); --- linux-5.19.0.orig/sound/soc/codecs/rt5670.c +++ linux-5.19.0/sound/soc/codecs/rt5670.c @@ -3312,8 +3312,6 @@ if (ret < 0) goto err; - pm_runtime_put(&i2c->dev); - return 0; err: pm_runtime_disable(&i2c->dev); --- linux-5.19.0.orig/sound/soc/codecs/rt5682s.c +++ linux-5.19.0/sound/soc/codecs/rt5682s.c @@ -1932,7 +1932,7 @@ unsigned int rx_mask, int slots, int slot_width) { struct snd_soc_component *component = dai->component; - unsigned int cl, val = 0; + unsigned int cl, val = 0, tx_slotnum; if (tx_mask || rx_mask) snd_soc_component_update_bits(component, @@ -1941,6 +1941,16 @@ snd_soc_component_update_bits(component, RT5682S_TDM_ADDA_CTRL_2, RT5682S_TDM_EN, 0); + /* Tx slot configuration */ + tx_slotnum = hweight_long(tx_mask); + if (tx_slotnum) { + if (tx_slotnum > slots) { + dev_err(component->dev, "Invalid or oversized Tx slots.\n"); + return -EINVAL; + } + val |= (tx_slotnum - 1) << RT5682S_TDM_ADC_DL_SFT; + } + switch (slots) { case 4: val |= RT5682S_TDM_TX_CH_4; @@ -1961,7 +1971,8 @@ } snd_soc_component_update_bits(component, RT5682S_TDM_CTRL, - RT5682S_TDM_TX_CH_MASK | RT5682S_TDM_RX_CH_MASK, val); + RT5682S_TDM_TX_CH_MASK | RT5682S_TDM_RX_CH_MASK | + RT5682S_TDM_ADC_DL_MASK, val); switch (slot_width) { case 8: --- linux-5.19.0.orig/sound/soc/codecs/rt5682s.h +++ linux-5.19.0/sound/soc/codecs/rt5682s.h @@ -899,6 +899,7 @@ #define RT5682S_TDM_RX_CH_8 (0x3 << 8) #define RT5682S_TDM_ADC_LCA_MASK (0x7 << 4) #define RT5682S_TDM_ADC_LCA_SFT 4 +#define RT5682S_TDM_ADC_DL_MASK (0x3 << 0) #define RT5682S_TDM_ADC_DL_SFT 0 /* TDM control 2 (0x007a) */ --- linux-5.19.0.orig/sound/soc/codecs/rt711-sdca-sdw.c +++ linux-5.19.0/sound/soc/codecs/rt711-sdca-sdw.c @@ -230,7 +230,7 @@ } /* set the timeout values */ - prop->clk_stop_timeout = 20; + prop->clk_stop_timeout = 700; /* wake-up event */ prop->wake_capable = 1; --- linux-5.19.0.orig/sound/soc/codecs/sgtl5000.c +++ linux-5.19.0/sound/soc/codecs/sgtl5000.c @@ -1795,6 +1795,7 @@ { struct sgtl5000_priv *sgtl5000 = i2c_get_clientdata(client); + regmap_write(sgtl5000->regmap, SGTL5000_CHIP_CLK_CTRL, SGTL5000_CHIP_CLK_CTRL_DEFAULT); regmap_write(sgtl5000->regmap, SGTL5000_CHIP_DIG_POWER, SGTL5000_DIG_POWER_DEFAULT); regmap_write(sgtl5000->regmap, SGTL5000_CHIP_ANA_POWER, SGTL5000_ANA_POWER_DEFAULT); --- linux-5.19.0.orig/sound/soc/codecs/tas2764.c +++ linux-5.19.0/sound/soc/codecs/tas2764.c @@ -34,6 +34,9 @@ int v_sense_slot; int i_sense_slot; + + bool dac_powered; + bool unmuted; }; static void tas2764_reset(struct tas2764_priv *tas2764) @@ -50,34 +53,22 @@ usleep_range(1000, 2000); } -static int tas2764_set_bias_level(struct snd_soc_component *component, - enum snd_soc_bias_level level) +static int tas2764_update_pwr_ctrl(struct tas2764_priv *tas2764) { - struct tas2764_priv *tas2764 = snd_soc_component_get_drvdata(component); + struct snd_soc_component *component = tas2764->component; + unsigned int val; + int ret; - switch (level) { - case SND_SOC_BIAS_ON: - snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_ACTIVE); - break; - case SND_SOC_BIAS_STANDBY: - case SND_SOC_BIAS_PREPARE: - snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_MUTE); - break; - case SND_SOC_BIAS_OFF: - snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_SHUTDOWN); - break; + if (tas2764->dac_powered) + val = tas2764->unmuted ? + TAS2764_PWR_CTRL_ACTIVE : TAS2764_PWR_CTRL_MUTE; + else + val = TAS2764_PWR_CTRL_SHUTDOWN; - default: - dev_err(tas2764->dev, - "wrong power level setting %d\n", level); - return -EINVAL; - } + ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, + TAS2764_PWR_CTRL_MASK, val); + if (ret < 0) + return ret; return 0; } @@ -114,9 +105,7 @@ usleep_range(1000, 2000); } - ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_ACTIVE); + ret = tas2764_update_pwr_ctrl(tas2764); if (ret < 0) return ret; @@ -150,14 +139,12 @@ switch (event) { case SND_SOC_DAPM_POST_PMU: - ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_MUTE); + tas2764->dac_powered = true; + ret = tas2764_update_pwr_ctrl(tas2764); break; case SND_SOC_DAPM_PRE_PMD: - ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_SHUTDOWN); + tas2764->dac_powered = false; + ret = tas2764_update_pwr_ctrl(tas2764); break; default: dev_err(tas2764->dev, "Unsupported event\n"); @@ -202,17 +189,11 @@ static int tas2764_mute(struct snd_soc_dai *dai, int mute, int direction) { - struct snd_soc_component *component = dai->component; - int ret; - - ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - mute ? TAS2764_PWR_CTRL_MUTE : 0); - - if (ret < 0) - return ret; + struct tas2764_priv *tas2764 = + snd_soc_component_get_drvdata(dai->component); - return 0; + tas2764->unmuted = !mute; + return tas2764_update_pwr_ctrl(tas2764); } static int tas2764_set_bitwidth(struct tas2764_priv *tas2764, int bitwidth) @@ -405,20 +386,13 @@ if (tx_mask == 0 || rx_mask != 0) return -EINVAL; - if (slots == 1) { - if (tx_mask != 1) - return -EINVAL; - left_slot = 0; - right_slot = 0; + left_slot = __ffs(tx_mask); + tx_mask &= ~(1 << left_slot); + if (tx_mask == 0) { + right_slot = left_slot; } else { - left_slot = __ffs(tx_mask); - tx_mask &= ~(1 << left_slot); - if (tx_mask == 0) { - right_slot = left_slot; - } else { - right_slot = __ffs(tx_mask); - tx_mask &= ~(1 << right_slot); - } + right_slot = __ffs(tx_mask); + tx_mask &= ~(1 << right_slot); } if (tx_mask != 0 || left_slot >= slots || right_slot >= slots) @@ -485,7 +459,7 @@ .id = 0, .playback = { .stream_name = "ASI1 Playback", - .channels_min = 2, + .channels_min = 1, .channels_max = 2, .rates = TAS2764_RATES, .formats = TAS2764_FORMATS, @@ -526,12 +500,6 @@ if (ret < 0) return ret; - ret = snd_soc_component_update_bits(component, TAS2764_PWR_CTRL, - TAS2764_PWR_CTRL_MASK, - TAS2764_PWR_CTRL_MUTE); - if (ret < 0) - return ret; - return 0; } @@ -549,7 +517,6 @@ .probe = tas2764_codec_probe, .suspend = tas2764_codec_suspend, .resume = tas2764_codec_resume, - .set_bias_level = tas2764_set_bias_level, .controls = tas2764_snd_controls, .num_controls = ARRAY_SIZE(tas2764_snd_controls), .dapm_widgets = tas2764_dapm_widgets, --- linux-5.19.0.orig/sound/soc/codecs/tas2770.c +++ linux-5.19.0/sound/soc/codecs/tas2770.c @@ -46,34 +46,22 @@ usleep_range(1000, 2000); } -static int tas2770_set_bias_level(struct snd_soc_component *component, - enum snd_soc_bias_level level) +static int tas2770_update_pwr_ctrl(struct tas2770_priv *tas2770) { - struct tas2770_priv *tas2770 = - snd_soc_component_get_drvdata(component); + struct snd_soc_component *component = tas2770->component; + unsigned int val; + int ret; - switch (level) { - case SND_SOC_BIAS_ON: - snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_ACTIVE); - break; - case SND_SOC_BIAS_STANDBY: - case SND_SOC_BIAS_PREPARE: - snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_MUTE); - break; - case SND_SOC_BIAS_OFF: - snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_SHUTDOWN); - break; + if (tas2770->dac_powered) + val = tas2770->unmuted ? + TAS2770_PWR_CTRL_ACTIVE : TAS2770_PWR_CTRL_MUTE; + else + val = TAS2770_PWR_CTRL_SHUTDOWN; - default: - dev_err(tas2770->dev, "wrong power level setting %d\n", level); - return -EINVAL; - } + ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, + TAS2770_PWR_CTRL_MASK, val); + if (ret < 0) + return ret; return 0; } @@ -114,9 +102,7 @@ gpiod_set_value_cansleep(tas2770->sdz_gpio, 1); usleep_range(1000, 2000); } else { - ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_ACTIVE); + ret = tas2770_update_pwr_ctrl(tas2770); if (ret < 0) return ret; } @@ -152,24 +138,19 @@ switch (event) { case SND_SOC_DAPM_POST_PMU: - ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_MUTE); + tas2770->dac_powered = 1; + ret = tas2770_update_pwr_ctrl(tas2770); break; case SND_SOC_DAPM_PRE_PMD: - ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_SHUTDOWN); + tas2770->dac_powered = 0; + ret = tas2770_update_pwr_ctrl(tas2770); break; default: dev_err(tas2770->dev, "Not supported evevt\n"); return -EINVAL; } - if (ret < 0) - return ret; - - return 0; + return ret; } static const struct snd_kcontrol_new isense_switch = @@ -203,21 +184,11 @@ static int tas2770_mute(struct snd_soc_dai *dai, int mute, int direction) { struct snd_soc_component *component = dai->component; - int ret; - - if (mute) - ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_MUTE); - else - ret = snd_soc_component_update_bits(component, TAS2770_PWR_CTRL, - TAS2770_PWR_CTRL_MASK, - TAS2770_PWR_CTRL_ACTIVE); - - if (ret < 0) - return ret; + struct tas2770_priv *tas2770 = + snd_soc_component_get_drvdata(component); - return 0; + tas2770->unmuted = !mute; + return tas2770_update_pwr_ctrl(tas2770); } static int tas2770_set_bitwidth(struct tas2770_priv *tas2770, int bitwidth) @@ -337,7 +308,7 @@ struct snd_soc_component *component = dai->component; struct tas2770_priv *tas2770 = snd_soc_component_get_drvdata(component); - u8 tdm_rx_start_slot = 0, asi_cfg_1 = 0; + u8 tdm_rx_start_slot = 0, invert_fpol = 0, fpol_preinv = 0, asi_cfg_1 = 0; int ret; switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) { @@ -349,9 +320,15 @@ } switch (fmt & SND_SOC_DAIFMT_INV_MASK) { + case SND_SOC_DAIFMT_NB_IF: + invert_fpol = 1; + fallthrough; case SND_SOC_DAIFMT_NB_NF: asi_cfg_1 |= TAS2770_TDM_CFG_REG1_RX_RSING; break; + case SND_SOC_DAIFMT_IB_IF: + invert_fpol = 1; + fallthrough; case SND_SOC_DAIFMT_IB_NF: asi_cfg_1 |= TAS2770_TDM_CFG_REG1_RX_FALING; break; @@ -369,15 +346,19 @@ switch (fmt & SND_SOC_DAIFMT_FORMAT_MASK) { case SND_SOC_DAIFMT_I2S: tdm_rx_start_slot = 1; + fpol_preinv = 0; break; case SND_SOC_DAIFMT_DSP_A: tdm_rx_start_slot = 0; + fpol_preinv = 1; break; case SND_SOC_DAIFMT_DSP_B: tdm_rx_start_slot = 1; + fpol_preinv = 1; break; case SND_SOC_DAIFMT_LEFT_J: tdm_rx_start_slot = 0; + fpol_preinv = 1; break; default: dev_err(tas2770->dev, @@ -391,6 +372,14 @@ if (ret < 0) return ret; + ret = snd_soc_component_update_bits(component, TAS2770_TDM_CFG_REG0, + TAS2770_TDM_CFG_REG0_FPOL_MASK, + (fpol_preinv ^ invert_fpol) + ? TAS2770_TDM_CFG_REG0_FPOL_RSING + : TAS2770_TDM_CFG_REG0_FPOL_FALING); + if (ret < 0) + return ret; + return 0; } @@ -406,21 +395,13 @@ if (tx_mask == 0 || rx_mask != 0) return -EINVAL; - if (slots == 1) { - if (tx_mask != 1) - return -EINVAL; - - left_slot = 0; - right_slot = 0; + left_slot = __ffs(tx_mask); + tx_mask &= ~(1 << left_slot); + if (tx_mask == 0) { + right_slot = left_slot; } else { - left_slot = __ffs(tx_mask); - tx_mask &= ~(1 << left_slot); - if (tx_mask == 0) { - right_slot = left_slot; - } else { - right_slot = __ffs(tx_mask); - tx_mask &= ~(1 << right_slot); - } + right_slot = __ffs(tx_mask); + tx_mask &= ~(1 << right_slot); } if (tx_mask != 0 || left_slot >= slots || right_slot >= slots) @@ -489,7 +470,7 @@ .id = 0, .playback = { .stream_name = "ASI1 Playback", - .channels_min = 2, + .channels_min = 1, .channels_max = 2, .rates = TAS2770_RATES, .formats = TAS2770_FORMATS, @@ -506,6 +487,8 @@ }, }; +static const struct regmap_config tas2770_i2c_regmap; + static int tas2770_codec_probe(struct snd_soc_component *component) { struct tas2770_priv *tas2770 = @@ -519,6 +502,7 @@ } tas2770_reset(tas2770); + regmap_reinit_cache(tas2770->regmap, &tas2770_i2c_regmap); return 0; } @@ -537,7 +521,6 @@ .probe = tas2770_codec_probe, .suspend = tas2770_codec_suspend, .resume = tas2770_codec_resume, - .set_bias_level = tas2770_set_bias_level, .controls = tas2770_snd_controls, .num_controls = ARRAY_SIZE(tas2770_snd_controls), .dapm_widgets = tas2770_dapm_widgets, --- linux-5.19.0.orig/sound/soc/codecs/tas2770.h +++ linux-5.19.0/sound/soc/codecs/tas2770.h @@ -41,6 +41,9 @@ #define TAS2770_TDM_CFG_REG0_31_44_1_48KHZ 0x6 #define TAS2770_TDM_CFG_REG0_31_88_2_96KHZ 0x8 #define TAS2770_TDM_CFG_REG0_31_176_4_192KHZ 0xa +#define TAS2770_TDM_CFG_REG0_FPOL_MASK BIT(0) +#define TAS2770_TDM_CFG_REG0_FPOL_RSING 0 +#define TAS2770_TDM_CFG_REG0_FPOL_FALING 1 /* TDM Configuration Reg1 */ #define TAS2770_TDM_CFG_REG1 TAS2770_REG(0X0, 0x0B) #define TAS2770_TDM_CFG_REG1_MASK GENMASK(5, 1) @@ -135,6 +138,8 @@ struct device *dev; int v_sense_slot; int i_sense_slot; + bool dac_powered; + bool unmuted; }; #endif /* __TAS2770__ */ --- linux-5.19.0.orig/sound/soc/codecs/tlv320adc3xxx.c +++ linux-5.19.0/sound/soc/codecs/tlv320adc3xxx.c @@ -14,6 +14,7 @@ #include #include +#include #include #include #include @@ -1025,7 +1026,9 @@ static void adc3xxx_free_gpio(struct adc3xxx *adc3xxx) { +#ifdef CONFIG_GPIOLIB gpiochip_remove(&adc3xxx->gpio_chip); +#endif } static void adc3xxx_init_gpio(struct adc3xxx *adc3xxx) @@ -1451,7 +1454,7 @@ .of_match_table = tlv320adc3xxx_of_match, }, .probe_new = adc3xxx_i2c_probe, - .remove = adc3xxx_i2c_remove, + .remove = __exit_p(adc3xxx_i2c_remove), .id_table = adc3xxx_i2c_id, }; --- linux-5.19.0.orig/sound/soc/codecs/tlv320aic32x4.c +++ linux-5.19.0/sound/soc/codecs/tlv320aic32x4.c @@ -49,6 +49,8 @@ struct aic32x4_setup_data *setup; struct device *dev; enum aic32x4_type type; + + unsigned int fmt; }; static int aic32x4_reset_adc(struct snd_soc_dapm_widget *w, @@ -611,6 +613,7 @@ static int aic32x4_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt) { struct snd_soc_component *component = codec_dai->component; + struct aic32x4_priv *aic32x4 = snd_soc_component_get_drvdata(component); u8 iface_reg_1 = 0; u8 iface_reg_2 = 0; u8 iface_reg_3 = 0; @@ -654,6 +657,8 @@ return -EINVAL; } + aic32x4->fmt = fmt; + snd_soc_component_update_bits(component, AIC32X4_IFACE1, AIC32X4_IFACE1_DATATYPE_MASK | AIC32X4_IFACE1_MASTER_MASK, iface_reg_1); @@ -758,6 +763,10 @@ return -EINVAL; } + /* PCM over I2S is always 2-channel */ + if ((aic32x4->fmt & SND_SOC_DAIFMT_FORMAT_MASK) == SND_SOC_DAIFMT_I2S) + channels = 2; + madc = DIV_ROUND_UP((32 * adc_resource_class), aosr); max_dosr = (AIC32X4_MAX_DOSR_FREQ / sample_rate / dosr_increment) * dosr_increment; --- linux-5.19.0.orig/sound/soc/codecs/wcd9335.c +++ linux-5.19.0/sound/soc/codecs/wcd9335.c @@ -1983,8 +1983,8 @@ case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - slim_stream_unprepare(dai_data->sruntime); slim_stream_disable(dai_data->sruntime); + slim_stream_unprepare(dai_data->sruntime); break; default: break; @@ -2264,51 +2264,42 @@ static const struct snd_kcontrol_new wcd9335_snd_controls[] = { /* -84dB min - 40dB max */ - SOC_SINGLE_SX_TLV("RX0 Digital Volume", WCD9335_CDC_RX0_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX1 Digital Volume", WCD9335_CDC_RX1_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX2 Digital Volume", WCD9335_CDC_RX2_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX3 Digital Volume", WCD9335_CDC_RX3_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX4 Digital Volume", WCD9335_CDC_RX4_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX5 Digital Volume", WCD9335_CDC_RX5_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX6 Digital Volume", WCD9335_CDC_RX6_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX7 Digital Volume", WCD9335_CDC_RX7_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX8 Digital Volume", WCD9335_CDC_RX8_RX_VOL_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX0 Mix Digital Volume", - WCD9335_CDC_RX0_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX1 Mix Digital Volume", - WCD9335_CDC_RX1_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX2 Mix Digital Volume", - WCD9335_CDC_RX2_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX3 Mix Digital Volume", - WCD9335_CDC_RX3_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX4 Mix Digital Volume", - WCD9335_CDC_RX4_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX5 Mix Digital Volume", - WCD9335_CDC_RX5_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX6 Mix Digital Volume", - WCD9335_CDC_RX6_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX7 Mix Digital Volume", - WCD9335_CDC_RX7_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), - SOC_SINGLE_SX_TLV("RX8 Mix Digital Volume", - WCD9335_CDC_RX8_RX_VOL_MIX_CTL, - 0, -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX0 Digital Volume", WCD9335_CDC_RX0_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX1 Digital Volume", WCD9335_CDC_RX1_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX2 Digital Volume", WCD9335_CDC_RX2_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX3 Digital Volume", WCD9335_CDC_RX3_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX4 Digital Volume", WCD9335_CDC_RX4_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX5 Digital Volume", WCD9335_CDC_RX5_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX6 Digital Volume", WCD9335_CDC_RX6_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX7 Digital Volume", WCD9335_CDC_RX7_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX8 Digital Volume", WCD9335_CDC_RX8_RX_VOL_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX0 Mix Digital Volume", WCD9335_CDC_RX0_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX1 Mix Digital Volume", WCD9335_CDC_RX1_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX2 Mix Digital Volume", WCD9335_CDC_RX2_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX3 Mix Digital Volume", WCD9335_CDC_RX3_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX4 Mix Digital Volume", WCD9335_CDC_RX4_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX5 Mix Digital Volume", WCD9335_CDC_RX5_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX6 Mix Digital Volume", WCD9335_CDC_RX6_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX7 Mix Digital Volume", WCD9335_CDC_RX7_RX_VOL_MIX_CTL, + -84, 40, digital_gain), + SOC_SINGLE_S8_TLV("RX8 Mix Digital Volume", WCD9335_CDC_RX8_RX_VOL_MIX_CTL, + -84, 40, digital_gain), SOC_ENUM("RX INT0_1 HPF cut off", cf_int0_1_enum), SOC_ENUM("RX INT0_2 HPF cut off", cf_int0_2_enum), SOC_ENUM("RX INT1_1 HPF cut off", cf_int1_1_enum), --- linux-5.19.0.orig/sound/soc/codecs/wcd934x.c +++ linux-5.19.0/sound/soc/codecs/wcd934x.c @@ -1913,8 +1913,8 @@ case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_SUSPEND: case SNDRV_PCM_TRIGGER_PAUSE_PUSH: - slim_stream_unprepare(dai_data->sruntime); slim_stream_disable(dai_data->sruntime); + slim_stream_unprepare(dai_data->sruntime); break; default: break; --- linux-5.19.0.orig/sound/soc/codecs/wm8962.c +++ linux-5.19.0/sound/soc/codecs/wm8962.c @@ -1840,6 +1840,49 @@ 4, 1, 0, inmix_tlv), }; +static int tp_event(struct snd_soc_dapm_widget *w, + struct snd_kcontrol *kcontrol, int event) +{ + int ret, reg, val, mask; + struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); + + ret = pm_runtime_resume_and_get(component->dev); + if (ret < 0) { + dev_err(component->dev, "Failed to resume device: %d\n", ret); + return ret; + } + + reg = WM8962_ADDITIONAL_CONTROL_4; + + if (!strcmp(w->name, "TEMP_HP")) { + mask = WM8962_TEMP_ENA_HP_MASK; + val = WM8962_TEMP_ENA_HP; + } else if (!strcmp(w->name, "TEMP_SPK")) { + mask = WM8962_TEMP_ENA_SPK_MASK; + val = WM8962_TEMP_ENA_SPK; + } else { + pm_runtime_put(component->dev); + return -EINVAL; + } + + switch (event) { + case SND_SOC_DAPM_POST_PMD: + val = 0; + fallthrough; + case SND_SOC_DAPM_POST_PMU: + ret = snd_soc_component_update_bits(component, reg, mask, val); + break; + default: + WARN(1, "Invalid event %d\n", event); + pm_runtime_put(component->dev); + return -EINVAL; + } + + pm_runtime_put(component->dev); + + return 0; +} + static int cp_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -2140,8 +2183,10 @@ SND_SOC_DAPM_SUPPLY_S("DSP2", 1, WM8962_DSP2_POWER_MANAGEMENT, WM8962_DSP2_ENA_SHIFT, 0, dsp2_event, SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD), -SND_SOC_DAPM_SUPPLY("TEMP_HP", WM8962_ADDITIONAL_CONTROL_4, 2, 0, NULL, 0), -SND_SOC_DAPM_SUPPLY("TEMP_SPK", WM8962_ADDITIONAL_CONTROL_4, 1, 0, NULL, 0), +SND_SOC_DAPM_SUPPLY("TEMP_HP", SND_SOC_NOPM, 0, 0, tp_event, + SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD), +SND_SOC_DAPM_SUPPLY("TEMP_SPK", SND_SOC_NOPM, 0, 0, tp_event, + SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD), SND_SOC_DAPM_MIXER("INPGAL", WM8962_LEFT_INPUT_PGA_CONTROL, 4, 0, inpgal, ARRAY_SIZE(inpgal)), @@ -2458,6 +2503,14 @@ snd_soc_component_update_bits(component, WM8962_CLOCKING2, WM8962_SYSCLK_ENA_MASK, WM8962_SYSCLK_ENA); + /* DSPCLK_DIV field in WM8962_CLOCKING1 register is used to generate + * correct frequency of LRCLK and BCLK. Sometimes the read-only value + * can't be updated timely after enabling SYSCLK. This results in wrong + * calculation values. Delay is introduced here to wait for newest + * value from register. The time of the delay should be at least + * 500~1000us according to test. + */ + usleep_range(500, 1000); dspclk = snd_soc_component_read(component, WM8962_CLOCKING1); if (snd_soc_component_get_bias_level(component) != SND_SOC_BIAS_ON) @@ -3764,6 +3817,11 @@ if (ret < 0) goto err_pm_runtime; + regmap_update_bits(wm8962->regmap, WM8962_ADDITIONAL_CONTROL_4, + WM8962_TEMP_ENA_HP_MASK, 0); + regmap_update_bits(wm8962->regmap, WM8962_ADDITIONAL_CONTROL_4, + WM8962_TEMP_ENA_SPK_MASK, 0); + regcache_cache_only(wm8962->regmap, true); /* The drivers should power up as needed */ --- linux-5.19.0.orig/sound/soc/codecs/wm8994.c +++ linux-5.19.0/sound/soc/codecs/wm8994.c @@ -3853,7 +3853,12 @@ } else { dev_dbg(component->dev, "Jack not detected\n"); + /* Release wm8994->accdet_lock to avoid deadlock: + * cancel_delayed_work_sync() takes wm8994->mic_work internal + * lock and wm1811_mic_work takes wm8994->accdet_lock */ + mutex_unlock(&wm8994->accdet_lock); cancel_delayed_work_sync(&wm8994->mic_work); + mutex_lock(&wm8994->accdet_lock); snd_soc_component_update_bits(component, WM8958_MICBIAS2, WM8958_MICB2_DISCH, WM8958_MICB2_DISCH); --- linux-5.19.0.orig/sound/soc/codecs/wm_adsp.c +++ linux-5.19.0/sound/soc/codecs/wm_adsp.c @@ -1617,7 +1617,9 @@ if (list_empty(&dsp->buffer_list)) { /* Fall back to legacy support */ ret = wm_adsp_buffer_parse_legacy(dsp); - if (ret) + if (ret == -ENODEV) + adsp_info(dsp, "Legacy support not available\n"); + else if (ret) adsp_warn(dsp, "Failed to parse legacy: %d\n", ret); } --- linux-5.19.0.orig/sound/soc/codecs/wsa881x.c +++ linux-5.19.0/sound/soc/codecs/wsa881x.c @@ -1175,11 +1175,17 @@ struct sdw_slave *slave = dev_to_sdw_dev(dev); struct regmap *regmap = dev_get_regmap(dev, NULL); struct wsa881x_priv *wsa881x = dev_get_drvdata(dev); + unsigned long time; gpiod_direction_output(wsa881x->sd_n, 1); - wait_for_completion_timeout(&slave->initialization_complete, - msecs_to_jiffies(WSA881X_PROBE_TIMEOUT)); + time = wait_for_completion_timeout(&slave->initialization_complete, + msecs_to_jiffies(WSA881X_PROBE_TIMEOUT)); + if (!time) { + dev_err(dev, "Initialization not complete, timed out\n"); + gpiod_direction_output(wsa881x->sd_n, 0); + return -ETIMEDOUT; + } regcache_cache_only(regmap, false); regcache_sync(regmap); --- linux-5.19.0.orig/sound/soc/fsl/eukrea-tlv320.c +++ linux-5.19.0/sound/soc/fsl/eukrea-tlv320.c @@ -86,7 +86,7 @@ int ret; int int_port = 0, ext_port; struct device_node *np = pdev->dev.of_node; - struct device_node *ssi_np = NULL, *codec_np = NULL; + struct device_node *ssi_np = NULL, *codec_np = NULL, *tmp_np = NULL; eukrea_tlv320.dev = &pdev->dev; if (np) { @@ -143,7 +143,7 @@ } if (machine_is_eukrea_cpuimx27() || - of_find_compatible_node(NULL, NULL, "fsl,imx21-audmux")) { + (tmp_np = of_find_compatible_node(NULL, NULL, "fsl,imx21-audmux"))) { imx_audmux_v1_configure_port(MX27_AUDMUX_HPCR1_SSI0, IMX_AUDMUX_V1_PCR_SYN | IMX_AUDMUX_V1_PCR_TFSDIR | @@ -158,10 +158,11 @@ IMX_AUDMUX_V1_PCR_SYN | IMX_AUDMUX_V1_PCR_RXDSEL(MX27_AUDMUX_HPCR1_SSI0) ); + of_node_put(tmp_np); } else if (machine_is_eukrea_cpuimx25sd() || machine_is_eukrea_cpuimx35sd() || machine_is_eukrea_cpuimx51sd() || - of_find_compatible_node(NULL, NULL, "fsl,imx31-audmux")) { + (tmp_np = of_find_compatible_node(NULL, NULL, "fsl,imx31-audmux"))) { if (!np) ext_port = machine_is_eukrea_cpuimx25sd() ? 4 : 3; @@ -178,6 +179,7 @@ IMX_AUDMUX_V2_PTCR_SYN, IMX_AUDMUX_V2_PDCR_RXDSEL(int_port) ); + of_node_put(tmp_np); } else { if (np) { /* The eukrea,asoc-tlv320 driver was explicitly --- linux-5.19.0.orig/sound/soc/fsl/fsl-asoc-card.c +++ linux-5.19.0/sound/soc/fsl/fsl-asoc-card.c @@ -537,6 +537,7 @@ struct device *codec_dev = NULL; const char *codec_dai_name; const char *codec_dev_name; + u32 asrc_fmt = 0; u32 width; int ret; @@ -829,8 +830,8 @@ goto asrc_fail; } - ret = of_property_read_u32(asrc_np, "fsl,asrc-format", - &priv->asrc_format); + ret = of_property_read_u32(asrc_np, "fsl,asrc-format", &asrc_fmt); + priv->asrc_format = (__force snd_pcm_format_t)asrc_fmt; if (ret) { /* Fallback to old binding; translate to asrc_format */ ret = of_property_read_u32(asrc_np, "fsl,asrc-width", --- linux-5.19.0.orig/sound/soc/fsl/fsl_asrc.c +++ linux-5.19.0/sound/soc/fsl/fsl_asrc.c @@ -1066,6 +1066,7 @@ struct resource *res; void __iomem *regs; int irq, ret, i; + u32 asrc_fmt = 0; u32 map_idx; char tmp[16]; u32 width; @@ -1174,7 +1175,8 @@ return ret; } - ret = of_property_read_u32(np, "fsl,asrc-format", &asrc->asrc_format); + ret = of_property_read_u32(np, "fsl,asrc-format", &asrc_fmt); + asrc->asrc_format = (__force snd_pcm_format_t)asrc_fmt; if (ret) { ret = of_property_read_u32(np, "fsl,asrc-width", &width); if (ret) { @@ -1197,7 +1199,7 @@ } } - if (!(FSL_ASRC_FORMATS & (1ULL << asrc->asrc_format))) { + if (!(FSL_ASRC_FORMATS & pcm_format_to_bits(asrc->asrc_format))) { dev_warn(&pdev->dev, "unsupported width, use default S24_LE\n"); asrc->asrc_format = SNDRV_PCM_FORMAT_S24_LE; } @@ -1222,7 +1224,7 @@ } ret = pm_runtime_put_sync(&pdev->dev); - if (ret < 0) + if (ret < 0 && ret != -ENOSYS) goto err_pm_get_sync; ret = devm_snd_soc_register_component(&pdev->dev, &fsl_asrc_component, --- linux-5.19.0.orig/sound/soc/fsl/fsl_easrc.c +++ linux-5.19.0/sound/soc/fsl/fsl_easrc.c @@ -476,7 +476,8 @@ struct fsl_asrc_pair *ctx; struct device *dev; u32 inrate, outrate, offset = 0; - u32 in_s_rate, out_s_rate, in_s_fmt, out_s_fmt; + u32 in_s_rate, out_s_rate; + snd_pcm_format_t in_s_fmt, out_s_fmt; int ret, i; if (!easrc) @@ -1873,6 +1874,7 @@ struct resource *res; struct device_node *np; void __iomem *regs; + u32 asrc_fmt = 0; int ret, irq; easrc = devm_kzalloc(dev, sizeof(*easrc), GFP_KERNEL); @@ -1933,13 +1935,14 @@ return ret; } - ret = of_property_read_u32(np, "fsl,asrc-format", &easrc->asrc_format); + ret = of_property_read_u32(np, "fsl,asrc-format", &asrc_fmt); + easrc->asrc_format = (__force snd_pcm_format_t)asrc_fmt; if (ret) { dev_err(dev, "failed to asrc format\n"); return ret; } - if (!(FSL_EASRC_FORMATS & (1ULL << easrc->asrc_format))) { + if (!(FSL_EASRC_FORMATS & (pcm_format_to_bits(easrc->asrc_format)))) { dev_warn(dev, "unsupported format, switching to S24_LE\n"); easrc->asrc_format = SNDRV_PCM_FORMAT_S24_LE; } --- linux-5.19.0.orig/sound/soc/fsl/fsl_easrc.h +++ linux-5.19.0/sound/soc/fsl/fsl_easrc.h @@ -569,7 +569,7 @@ unsigned int access_len; unsigned int fifo_wtmk; unsigned int sample_rate; - unsigned int sample_format; + snd_pcm_format_t sample_format; unsigned int norm_rate; }; --- linux-5.19.0.orig/sound/soc/fsl/fsl_esai.c +++ linux-5.19.0/sound/soc/fsl/fsl_esai.c @@ -1068,7 +1068,7 @@ regmap_write(esai_priv->regmap, REG_ESAI_RSMB, 0); ret = pm_runtime_put_sync(&pdev->dev); - if (ret < 0) + if (ret < 0 && ret != -ENOSYS) goto err_pm_get_sync; /* --- linux-5.19.0.orig/sound/soc/fsl/fsl_micfil.c +++ linux-5.19.0/sound/soc/fsl/fsl_micfil.c @@ -190,6 +190,25 @@ if (ret) return ret; + /* + * SRES is self-cleared bit, but REG_MICFIL_CTRL1 is defined + * as non-volatile register, so SRES still remain in regmap + * cache after set, that every update of REG_MICFIL_CTRL1, + * software reset happens. so clear it explicitly. + */ + ret = regmap_clear_bits(micfil->regmap, REG_MICFIL_CTRL1, + MICFIL_CTRL1_SRES); + if (ret) + return ret; + + /* + * Set SRES should clear CHnF flags, But even add delay here + * the CHnF may not be cleared sometimes, so clear CHnF explicitly. + */ + ret = regmap_write_bits(micfil->regmap, REG_MICFIL_STAT, 0xFF, 0xFF); + if (ret) + return ret; + return 0; } --- linux-5.19.0.orig/sound/soc/fsl/fsl_sai.c +++ linux-5.19.0/sound/soc/fsl/fsl_sai.c @@ -1004,6 +1004,7 @@ static int fsl_sai_probe(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; + struct device *dev = &pdev->dev; struct fsl_sai *sai; struct regmap *gpr; struct resource *res; @@ -1012,12 +1013,12 @@ int irq, ret, i; int index; - sai = devm_kzalloc(&pdev->dev, sizeof(*sai), GFP_KERNEL); + sai = devm_kzalloc(dev, sizeof(*sai), GFP_KERNEL); if (!sai) return -ENOMEM; sai->pdev = pdev; - sai->soc_data = of_device_get_match_data(&pdev->dev); + sai->soc_data = of_device_get_match_data(dev); sai->is_lsb_first = of_property_read_bool(np, "lsb-first"); @@ -1032,18 +1033,18 @@ ARRAY_SIZE(fsl_sai_reg_defaults_ofs8); } - sai->regmap = devm_regmap_init_mmio(&pdev->dev, base, &fsl_sai_regmap_config); + sai->regmap = devm_regmap_init_mmio(dev, base, &fsl_sai_regmap_config); if (IS_ERR(sai->regmap)) { - dev_err(&pdev->dev, "regmap init failed\n"); + dev_err(dev, "regmap init failed\n"); return PTR_ERR(sai->regmap); } - sai->bus_clk = devm_clk_get(&pdev->dev, "bus"); + sai->bus_clk = devm_clk_get(dev, "bus"); /* Compatible with old DTB cases */ if (IS_ERR(sai->bus_clk) && PTR_ERR(sai->bus_clk) != -EPROBE_DEFER) - sai->bus_clk = devm_clk_get(&pdev->dev, "sai"); + sai->bus_clk = devm_clk_get(dev, "sai"); if (IS_ERR(sai->bus_clk)) { - dev_err(&pdev->dev, "failed to get bus clock: %ld\n", + dev_err(dev, "failed to get bus clock: %ld\n", PTR_ERR(sai->bus_clk)); /* -EPROBE_DEFER */ return PTR_ERR(sai->bus_clk); @@ -1051,9 +1052,9 @@ for (i = 1; i < FSL_SAI_MCLK_MAX; i++) { sprintf(tmp, "mclk%d", i); - sai->mclk_clk[i] = devm_clk_get(&pdev->dev, tmp); + sai->mclk_clk[i] = devm_clk_get(dev, tmp); if (IS_ERR(sai->mclk_clk[i])) { - dev_err(&pdev->dev, "failed to get mclk%d clock: %ld\n", + dev_err(dev, "failed to get mclk%d clock: %ld\n", i + 1, PTR_ERR(sai->mclk_clk[i])); sai->mclk_clk[i] = NULL; } @@ -1068,10 +1069,10 @@ if (irq < 0) return irq; - ret = devm_request_irq(&pdev->dev, irq, fsl_sai_isr, IRQF_SHARED, + ret = devm_request_irq(dev, irq, fsl_sai_isr, IRQF_SHARED, np->name, sai); if (ret) { - dev_err(&pdev->dev, "failed to claim irq %u\n", irq); + dev_err(dev, "failed to claim irq %u\n", irq); return ret; } @@ -1088,7 +1089,7 @@ if (of_find_property(np, "fsl,sai-synchronous-rx", NULL) && of_find_property(np, "fsl,sai-asynchronous", NULL)) { /* error out if both synchronous and asynchronous are present */ - dev_err(&pdev->dev, "invalid binding for synchronous mode\n"); + dev_err(dev, "invalid binding for synchronous mode\n"); return -EINVAL; } @@ -1109,7 +1110,7 @@ of_device_is_compatible(np, "fsl,imx6ul-sai")) { gpr = syscon_regmap_lookup_by_compatible("fsl,imx6ul-iomuxc-gpr"); if (IS_ERR(gpr)) { - dev_err(&pdev->dev, "cannot find iomuxc registers\n"); + dev_err(dev, "cannot find iomuxc registers\n"); return PTR_ERR(gpr); } @@ -1127,23 +1128,23 @@ sai->dma_params_tx.maxburst = FSL_SAI_MAXBURST_TX; platform_set_drvdata(pdev, sai); - pm_runtime_enable(&pdev->dev); - if (!pm_runtime_enabled(&pdev->dev)) { - ret = fsl_sai_runtime_resume(&pdev->dev); + pm_runtime_enable(dev); + if (!pm_runtime_enabled(dev)) { + ret = fsl_sai_runtime_resume(dev); if (ret) goto err_pm_disable; } - ret = pm_runtime_get_sync(&pdev->dev); + ret = pm_runtime_get_sync(dev); if (ret < 0) { - pm_runtime_put_noidle(&pdev->dev); + pm_runtime_put_noidle(dev); goto err_pm_get_sync; } /* Get sai version */ - ret = fsl_sai_check_version(&pdev->dev); + ret = fsl_sai_check_version(dev); if (ret < 0) - dev_warn(&pdev->dev, "Error reading SAI version: %d\n", ret); + dev_warn(dev, "Error reading SAI version: %d\n", ret); /* Select MCLK direction */ if (of_find_property(np, "fsl,sai-mclk-direction-output", NULL) && @@ -1152,8 +1153,8 @@ FSL_SAI_MCTL_MCLK_EN, FSL_SAI_MCTL_MCLK_EN); } - ret = pm_runtime_put_sync(&pdev->dev); - if (ret < 0) + ret = pm_runtime_put_sync(dev); + if (ret < 0 && ret != -ENOSYS) goto err_pm_get_sync; /* @@ -1165,12 +1166,12 @@ if (ret) goto err_pm_get_sync; } else { - ret = devm_snd_dmaengine_pcm_register(&pdev->dev, NULL, 0); + ret = devm_snd_dmaengine_pcm_register(dev, NULL, 0); if (ret) goto err_pm_get_sync; } - ret = devm_snd_soc_register_component(&pdev->dev, &fsl_component, + ret = devm_snd_soc_register_component(dev, &fsl_component, &sai->cpu_dai_drv, 1); if (ret) goto err_pm_get_sync; @@ -1178,10 +1179,10 @@ return ret; err_pm_get_sync: - if (!pm_runtime_status_suspended(&pdev->dev)) - fsl_sai_runtime_suspend(&pdev->dev); + if (!pm_runtime_status_suspended(dev)) + fsl_sai_runtime_suspend(dev); err_pm_disable: - pm_runtime_disable(&pdev->dev); + pm_runtime_disable(dev); return ret; } --- linux-5.19.0.orig/sound/soc/fsl/imx-audmux.c +++ linux-5.19.0/sound/soc/fsl/imx-audmux.c @@ -298,7 +298,7 @@ audmux_clk = NULL; } - audmux_type = (enum imx_audmux_type)of_device_get_match_data(&pdev->dev); + audmux_type = (uintptr_t)of_device_get_match_data(&pdev->dev); switch (audmux_type) { case IMX31_AUDMUX: --- linux-5.19.0.orig/sound/soc/fsl/imx-card.c +++ linux-5.19.0/sound/soc/fsl/imx-card.c @@ -17,6 +17,9 @@ #include "fsl_sai.h" +#define IMX_CARD_MCLK_22P5792MHZ 22579200 +#define IMX_CARD_MCLK_24P576MHZ 24576000 + enum codec_type { CODEC_DUMMY = 0, CODEC_AK5558 = 1, @@ -115,7 +118,7 @@ struct snd_soc_card card; int num_dapm_routes; u32 asrc_rate; - u32 asrc_format; + snd_pcm_format_t asrc_format; }; static struct imx_akcodec_fs_mul ak4458_fs_mul[] = { @@ -353,9 +356,14 @@ mclk_freq = akcodec_get_mclk_rate(substream, params, slots, slot_width); else mclk_freq = params_rate(params) * slots * slot_width; - /* Use the maximum freq from DSD512 (512*44100 = 22579200) */ - if (format_is_dsd(params)) - mclk_freq = 22579200; + + if (format_is_dsd(params)) { + /* Use the maximum freq from DSD512 (512*44100 = 22579200) */ + if (!(params_rate(params) % 11025)) + mclk_freq = IMX_CARD_MCLK_22P5792MHZ; + else + mclk_freq = IMX_CARD_MCLK_24P576MHZ; + } ret = snd_soc_dai_set_sysclk(cpu_dai, link_data->cpu_sysclk_id, mclk_freq, SND_SOC_CLOCK_OUT); @@ -466,7 +474,7 @@ mask = hw_param_mask(params, SNDRV_PCM_HW_PARAM_FORMAT); snd_mask_none(mask); - snd_mask_set(mask, data->asrc_format); + snd_mask_set(mask, (__force unsigned int)data->asrc_format); return 0; } @@ -485,6 +493,7 @@ struct dai_link_data *link_data; struct of_phandle_args args; int ret, num_links; + u32 asrc_fmt = 0; u32 width; ret = snd_soc_of_parse_card_name(card, "model"); @@ -631,7 +640,8 @@ goto err; } - ret = of_property_read_u32(args.np, "fsl,asrc-format", &data->asrc_format); + ret = of_property_read_u32(args.np, "fsl,asrc-format", &asrc_fmt); + data->asrc_format = (__force snd_pcm_format_t)asrc_fmt; if (ret) { /* Fallback to old binding; translate to asrc_format */ ret = of_property_read_u32(args.np, "fsl,asrc-width", &width); @@ -688,6 +698,10 @@ of_node_put(cpu); of_node_put(codec); of_node_put(platform); + + cpu = NULL; + codec = NULL; + platform = NULL; } return 0; --- linux-5.19.0.orig/sound/soc/generic/audio-graph-card.c +++ linux-5.19.0/sound/soc/generic/audio-graph-card.c @@ -158,8 +158,10 @@ * if he unbinded CPU or Codec. */ ret = snd_soc_get_dai_name(&args, &dlc->dai_name); - if (ret < 0) + if (ret < 0) { + of_node_put(node); return ret; + } dlc->of_node = node; @@ -483,8 +485,10 @@ of_node_put(codec_ep); of_node_put(codec_port); - if (ret < 0) + if (ret < 0) { + of_node_put(cpu_ep); return ret; + } codec_port_old = codec_port; } --- linux-5.19.0.orig/sound/soc/generic/audio-graph-card2.c +++ linux-5.19.0/sound/soc/generic/audio-graph-card2.c @@ -229,7 +229,8 @@ static enum graph_type __graph_get_type(struct device_node *lnk) { - struct device_node *np; + struct device_node *np, *parent_np; + enum graph_type ret; /* * target { @@ -240,19 +241,33 @@ * }; */ np = of_get_parent(lnk); - if (of_node_name_eq(np, "ports")) - np = of_get_parent(np); + if (of_node_name_eq(np, "ports")) { + parent_np = of_get_parent(np); + of_node_put(np); + np = parent_np; + } + + if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) { + ret = GRAPH_MULTI; + goto out_put; + } + + if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) { + ret = GRAPH_DPCM; + goto out_put; + } - if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) - return GRAPH_MULTI; + if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) { + ret = GRAPH_C2C; + goto out_put; + } - if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) - return GRAPH_DPCM; + ret = GRAPH_NORMAL; - if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) - return GRAPH_C2C; +out_put: + of_node_put(np); + return ret; - return GRAPH_NORMAL; } static enum graph_type graph_get_type(struct asoc_simple_priv *priv, @@ -430,8 +445,10 @@ * if he unbinded CPU or Codec. */ ret = snd_soc_get_dai_name(&args, &dlc->dai_name); - if (ret < 0) + if (ret < 0) { + of_node_put(node); return ret; + } dlc->of_node = node; @@ -856,7 +873,7 @@ struct device_node *port0, *port1, *ports; struct device_node *codec0_port, *codec1_port; struct device_node *ep0, *ep1; - u32 val; + u32 val = 0; int ret = -EINVAL; /* @@ -880,7 +897,8 @@ ports = of_get_parent(port0); port1 = of_get_next_child(ports, lnk); - if (!of_get_property(ports, "rate", &val)) { + of_property_read_u32(ports, "rate", &val); + if (!val) { struct device *dev = simple_priv_to_dev(priv); dev_err(dev, "Codec2Codec needs rate settings\n"); --- linux-5.19.0.orig/sound/soc/intel/avs/core.c +++ linux-5.19.0/sound/soc/intel/avs/core.c @@ -445,6 +445,7 @@ dma_set_mask(dev, DMA_BIT_MASK(32)); dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); } + dma_set_max_seg_size(dev, UINT_MAX); ret = avs_hdac_bus_init_streams(bus); if (ret < 0) { --- linux-5.19.0.orig/sound/soc/intel/avs/ipc.c +++ linux-5.19.0/sound/soc/intel/avs/ipc.c @@ -123,7 +123,10 @@ if (!substream || !substream->runtime) continue; + /* No need for _irq() as we are in nonatomic context. */ + snd_pcm_stream_lock(substream); snd_pcm_stop(substream, SNDRV_PCM_STATE_DISCONNECTED); + snd_pcm_stream_unlock(substream); } } } @@ -192,7 +195,8 @@ /* update size in case of LARGE_CONFIG_GET */ if (msg.msg_target == AVS_MOD_MSG && msg.global_msg_type == AVS_MOD_LARGE_CONFIG_GET) - ipc->rx.size = msg.ext.large_config.data_off_size; + ipc->rx.size = min_t(u32, AVS_MAILBOX_SIZE, + msg.ext.large_config.data_off_size); memcpy_fromio(ipc->rx.data, avs_uplink_addr(adev), ipc->rx.size); trace_avs_msg_payload(ipc->rx.data, ipc->rx.size); --- linux-5.19.0.orig/sound/soc/intel/avs/path.c +++ linux-5.19.0/sound/soc/intel/avs/path.c @@ -449,35 +449,39 @@ return ret; } +static int avs_probe_create(struct avs_dev *adev, struct avs_path_module *mod) +{ + dev_err(adev->dev, "Probe module can't be instantiated by topology"); + return -EINVAL; +} + +struct avs_module_create { + guid_t *guid; + int (*create)(struct avs_dev *adev, struct avs_path_module *mod); +}; + +static struct avs_module_create avs_module_create[] = { + { &AVS_MIXIN_MOD_UUID, avs_modbase_create }, + { &AVS_MIXOUT_MOD_UUID, avs_modbase_create }, + { &AVS_KPBUFF_MOD_UUID, avs_modbase_create }, + { &AVS_COPIER_MOD_UUID, avs_copier_create }, + { &AVS_MICSEL_MOD_UUID, avs_micsel_create }, + { &AVS_MUX_MOD_UUID, avs_mux_create }, + { &AVS_UPDWMIX_MOD_UUID, avs_updown_mix_create }, + { &AVS_SRCINTC_MOD_UUID, avs_src_create }, + { &AVS_AEC_MOD_UUID, avs_aec_create }, + { &AVS_ASRC_MOD_UUID, avs_asrc_create }, + { &AVS_INTELWOV_MOD_UUID, avs_wov_create }, + { &AVS_PROBE_MOD_UUID, avs_probe_create }, +}; + static int avs_path_module_type_create(struct avs_dev *adev, struct avs_path_module *mod) { const guid_t *type = &mod->template->cfg_ext->type; - if (guid_equal(type, &AVS_MIXIN_MOD_UUID) || - guid_equal(type, &AVS_MIXOUT_MOD_UUID) || - guid_equal(type, &AVS_KPBUFF_MOD_UUID)) - return avs_modbase_create(adev, mod); - if (guid_equal(type, &AVS_COPIER_MOD_UUID)) - return avs_copier_create(adev, mod); - if (guid_equal(type, &AVS_MICSEL_MOD_UUID)) - return avs_micsel_create(adev, mod); - if (guid_equal(type, &AVS_MUX_MOD_UUID)) - return avs_mux_create(adev, mod); - if (guid_equal(type, &AVS_UPDWMIX_MOD_UUID)) - return avs_updown_mix_create(adev, mod); - if (guid_equal(type, &AVS_SRCINTC_MOD_UUID)) - return avs_src_create(adev, mod); - if (guid_equal(type, &AVS_AEC_MOD_UUID)) - return avs_aec_create(adev, mod); - if (guid_equal(type, &AVS_ASRC_MOD_UUID)) - return avs_asrc_create(adev, mod); - if (guid_equal(type, &AVS_INTELWOV_MOD_UUID)) - return avs_wov_create(adev, mod); - - if (guid_equal(type, &AVS_PROBE_MOD_UUID)) { - dev_err(adev->dev, "Probe module can't be instantiated by topology"); - return -EINVAL; - } + for (int i = 0; i < ARRAY_SIZE(avs_module_create); i++) + if (guid_equal(type, avs_module_create[i].guid)) + return avs_module_create[i].create(adev, mod); return avs_modext_create(adev, mod); } --- linux-5.19.0.orig/sound/soc/intel/avs/pcm.c +++ linux-5.19.0/sound/soc/intel/avs/pcm.c @@ -636,8 +636,8 @@ char buf[64]; size_t len; - len = snprintf(buf, sizeof(buf), "%s/%s\n", component->driver->topology_name_prefix, - mach->tplg_filename); + len = scnprintf(buf, sizeof(buf), "%s/%s\n", component->driver->topology_name_prefix, + mach->tplg_filename); return simple_read_from_buffer(user_buf, count, ppos, buf, len); } --- linux-5.19.0.orig/sound/soc/intel/boards/bytcht_es8316.c +++ linux-5.19.0/sound/soc/intel/boards/bytcht_es8316.c @@ -443,6 +443,13 @@ | BYT_CHT_ES8316_INTMIC_IN2_MAP | BYT_CHT_ES8316_JD_INVERTED), }, + { /* Nanote UMPC-01 */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "RWC CO.,LTD"), + DMI_MATCH(DMI_PRODUCT_NAME, "UMPC-01"), + }, + .driver_data = (void *)BYT_CHT_ES8316_INTMIC_IN1_MAP, + }, { /* Teclast X98 Plus II */ .matches = { DMI_MATCH(DMI_SYS_VENDOR, "TECLAST"), --- linux-5.19.0.orig/sound/soc/intel/boards/sof_es8336.c +++ linux-5.19.0/sound/soc/intel/boards/sof_es8336.c @@ -45,6 +45,7 @@ struct snd_soc_jack jack; struct list_head hdmi_pcm_list; bool speaker_en; + struct delayed_work pcm_pop_work; }; struct sof_hdmi_pcm { @@ -57,28 +58,26 @@ static const struct acpi_gpio_params enable_gpio1 = { 1, 0, true }; static const struct acpi_gpio_mapping acpi_speakers_enable_gpio0[] = { - { "speakers-enable-gpios", &enable_gpio0, 1 }, + { "speakers-enable-gpios", &enable_gpio0, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, { } }; static const struct acpi_gpio_mapping acpi_speakers_enable_gpio1[] = { - { "speakers-enable-gpios", &enable_gpio1, 1 }, + { "speakers-enable-gpios", &enable_gpio1, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, }; static const struct acpi_gpio_mapping acpi_enable_both_gpios[] = { - { "speakers-enable-gpios", &enable_gpio0, 1 }, - { "headphone-enable-gpios", &enable_gpio1, 1 }, + { "speakers-enable-gpios", &enable_gpio0, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, + { "headphone-enable-gpios", &enable_gpio1, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, { } }; static const struct acpi_gpio_mapping acpi_enable_both_gpios_rev_order[] = { - { "speakers-enable-gpios", &enable_gpio1, 1 }, - { "headphone-enable-gpios", &enable_gpio0, 1 }, + { "speakers-enable-gpios", &enable_gpio1, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, + { "headphone-enable-gpios", &enable_gpio0, 1, ACPI_GPIO_QUIRK_ONLY_GPIOIO }, { } }; -static const struct acpi_gpio_mapping *gpio_mapping = acpi_speakers_enable_gpio0; - static void log_quirks(struct device *dev) { dev_info(dev, "quirk mask %#lx\n", quirk); @@ -95,6 +94,46 @@ dev_info(dev, "quirk headset at mic1 port enabled\n"); } +static void pcm_pop_work_events(struct work_struct *work) +{ + struct sof_es8336_private *priv = + container_of(work, struct sof_es8336_private, pcm_pop_work.work); + + gpiod_set_value_cansleep(priv->gpio_speakers, priv->speaker_en); + + if (quirk & SOF_ES8336_HEADPHONE_GPIO) + gpiod_set_value_cansleep(priv->gpio_headphone, priv->speaker_en); + +} + +static int sof_8336_trigger(struct snd_pcm_substream *substream, int cmd) +{ + struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); + struct snd_soc_card *card = rtd->card; + struct sof_es8336_private *priv = snd_soc_card_get_drvdata(card); + + switch (cmd) { + case SNDRV_PCM_TRIGGER_START: + case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: + case SNDRV_PCM_TRIGGER_RESUME: + break; + + case SNDRV_PCM_TRIGGER_PAUSE_PUSH: + case SNDRV_PCM_TRIGGER_SUSPEND: + case SNDRV_PCM_TRIGGER_STOP: + if (priv->speaker_en == false) + if (substream->stream == 0) { + cancel_delayed_work(&priv->pcm_pop_work); + gpiod_set_value_cansleep(priv->gpio_speakers, true); + } + break; + default: + return -EINVAL; + } + + return 0; +} + static int sof_es8316_speaker_power_event(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) { @@ -106,19 +145,7 @@ priv->speaker_en = !SND_SOC_DAPM_EVENT_ON(event); - if (SND_SOC_DAPM_EVENT_ON(event)) - msleep(70); - - gpiod_set_value_cansleep(priv->gpio_speakers, priv->speaker_en); - - if (!(quirk & SOF_ES8336_HEADPHONE_GPIO)) - return 0; - - if (SND_SOC_DAPM_EVENT_ON(event)) - msleep(70); - - gpiod_set_value_cansleep(priv->gpio_headphone, priv->speaker_en); - + queue_delayed_work(system_wq, &priv->pcm_pop_work, msecs_to_jiffies(70)); return 0; } @@ -272,15 +299,6 @@ { quirk = (unsigned long)id->driver_data; - if (quirk & SOF_ES8336_HEADPHONE_GPIO) { - if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) - gpio_mapping = acpi_enable_both_gpios; - else - gpio_mapping = acpi_enable_both_gpios_rev_order; - } else if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) { - gpio_mapping = acpi_speakers_enable_gpio1; - } - return 1; } @@ -337,6 +355,7 @@ /* machine stream operations */ static struct snd_soc_ops sof_es8336_ops = { .hw_params = sof_es8336_hw_params, + .trigger = sof_8336_trigger, }; static struct snd_soc_dai_link_component platform_component[] = { @@ -529,6 +548,7 @@ struct acpi_device *adev; struct snd_soc_dai_link *dai_links; struct device *codec_dev; + const struct acpi_gpio_mapping *gpio_mapping; unsigned int cnt = 0; int dmic_be_num = 0; int hdmi_num = 3; @@ -635,6 +655,17 @@ } /* get speaker enable GPIO */ + if (quirk & SOF_ES8336_HEADPHONE_GPIO) { + if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) + gpio_mapping = acpi_enable_both_gpios; + else + gpio_mapping = acpi_enable_both_gpios_rev_order; + } else if (quirk & SOF_ES8336_SPEAKERS_EN_GPIO1_QUIRK) { + gpio_mapping = acpi_speakers_enable_gpio1; + } else { + gpio_mapping = acpi_speakers_enable_gpio0; + } + ret = devm_acpi_dev_add_driver_gpios(codec_dev, gpio_mapping); if (ret) dev_warn(codec_dev, "unable to add GPIO mapping table\n"); @@ -654,7 +685,8 @@ } INIT_LIST_HEAD(&priv->hdmi_pcm_list); - + INIT_DELAYED_WORK(&priv->pcm_pop_work, + pcm_pop_work_events); snd_soc_card_set_drvdata(card, priv); if (mach->mach_params.dmic_num > 0) { @@ -683,6 +715,7 @@ struct snd_soc_card *card = platform_get_drvdata(pdev); struct sof_es8336_private *priv = snd_soc_card_get_drvdata(card); + cancel_delayed_work_sync(&priv->pcm_pop_work); gpiod_put(priv->gpio_speakers); device_remove_software_node(priv->codec_dev); put_device(priv->codec_dev); --- linux-5.19.0.orig/sound/soc/intel/boards/sof_nau8825.c +++ linux-5.19.0/sound/soc/intel/boards/sof_nau8825.c @@ -177,11 +177,6 @@ struct sof_hdmi_pcm *pcm; int err; - if (list_empty(&ctx->hdmi_pcm_list)) - return -EINVAL; - - pcm = list_first_entry(&ctx->hdmi_pcm_list, struct sof_hdmi_pcm, head); - if (sof_nau8825_quirk & SOF_MAX98373_SPEAKER_AMP_PRESENT) { /* Disable Left and Right Spk pin after boot */ snd_soc_dapm_disable_pin(dapm, "Left Spk"); @@ -191,6 +186,11 @@ return err; } + if (list_empty(&ctx->hdmi_pcm_list)) + return -EINVAL; + + pcm = list_first_entry(&ctx->hdmi_pcm_list, struct sof_hdmi_pcm, head); + return hda_dsp_hdmi_build_controls(card, pcm->codec_dai->component); } --- linux-5.19.0.orig/sound/soc/intel/boards/sof_rt5682.c +++ linux-5.19.0/sound/soc/intel/boards/sof_rt5682.c @@ -225,6 +225,18 @@ SOF_RT5682_SSP_AMP(2) | SOF_RT5682_NUM_HDMIDEV(4)), }, + { + .callback = sof_rt5682_quirk_cb, + .matches = { + DMI_MATCH(DMI_PRODUCT_FAMILY, "Google_Rex"), + }, + .driver_data = (void *)(SOF_RT5682_MCLK_EN | + SOF_RT5682_SSP_CODEC(2) | + SOF_SPEAKER_AMP_PRESENT | + SOF_RT5682_SSP_AMP(0) | + SOF_RT5682_NUM_HDMIDEV(4) + ), + }, {} }; @@ -434,6 +446,15 @@ struct sof_hdmi_pcm *pcm; int err; + if (sof_rt5682_quirk & SOF_MAX98373_SPEAKER_AMP_PRESENT) { + /* Disable Left and Right Spk pin after boot */ + snd_soc_dapm_disable_pin(dapm, "Left Spk"); + snd_soc_dapm_disable_pin(dapm, "Right Spk"); + err = snd_soc_dapm_sync(dapm); + if (err < 0) + return err; + } + /* HDMI is not supported by SOF on Baytrail/CherryTrail */ if (is_legacy_cpu || !ctx->idisp_codec) return 0; @@ -463,15 +484,6 @@ if (err < 0) return err; } - - if (sof_rt5682_quirk & SOF_MAX98373_SPEAKER_AMP_PRESENT) { - /* Disable Left and Right Spk pin after boot */ - snd_soc_dapm_disable_pin(dapm, "Left Spk"); - snd_soc_dapm_disable_pin(dapm, "Right Spk"); - err = snd_soc_dapm_sync(dapm); - if (err < 0) - return err; - } return hdac_hdmi_jack_port_init(component, &card->dapm); } --- linux-5.19.0.orig/sound/soc/intel/boards/sof_sdw.c +++ linux-5.19.0/sound/soc/intel/boards/sof_sdw.c @@ -202,6 +202,17 @@ SOF_SDW_PCH_DMIC | RT711_JD1), }, + { + /* NUC15 LAPBC710 skews */ + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), + DMI_MATCH(DMI_BOARD_NAME, "LAPBC710"), + }, + .driver_data = (void *)(SOF_SDW_TGL_HDMI | + SOF_SDW_PCH_DMIC | + RT711_JD1), + }, /* TigerLake-SDCA devices */ { .callback = sof_sdw_quirk_cb, @@ -294,6 +305,45 @@ }, .driver_data = (void *)(SOF_SDW_TGL_HDMI | RT711_JD2 | + SOF_SDW_FOUR_SPK), + }, + { + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B12") + }, + .driver_data = (void *)(SOF_SDW_TGL_HDMI | + RT711_JD2 | + SOF_SDW_FOUR_SPK), + }, + { + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B13"), + }, + /* No Jack */ + .driver_data = (void *)SOF_SDW_TGL_HDMI, + }, + { + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B29"), + }, + .driver_data = (void *)(SOF_SDW_TGL_HDMI | + RT711_JD2 | + SOF_SDW_FOUR_SPK), + }, + { + .callback = sof_sdw_quirk_cb, + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), + DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0B11") + }, + .driver_data = (void *)(SOF_SDW_TGL_HDMI | + RT711_JD2 | SOF_SDW_FOUR_SPK), }, { --- linux-5.19.0.orig/sound/soc/intel/common/Makefile +++ linux-5.19.0/sound/soc/intel/common/Makefile @@ -9,6 +9,7 @@ soc-acpi-intel-cml-match.o soc-acpi-intel-icl-match.o \ soc-acpi-intel-tgl-match.o soc-acpi-intel-ehl-match.o \ soc-acpi-intel-jsl-match.o soc-acpi-intel-adl-match.o \ + soc-acpi-intel-rpl-match.o soc-acpi-intel-mtl-match.o \ soc-acpi-intel-hda-match.o \ soc-acpi-intel-sdw-mockup-match.o --- linux-5.19.0.orig/sound/soc/intel/common/soc-acpi-intel-icl-match.c +++ linux-5.19.0/sound/soc/intel/common/soc-acpi-intel-icl-match.c @@ -10,6 +10,11 @@ #include #include "../skylake/skl.h" +static const struct snd_soc_acpi_codecs essx_83x6 = { + .num_codecs = 3, + .codecs = { "ESSX8316", "ESSX8326", "ESSX8336"}, +}; + static struct skl_machine_pdata icl_pdata = { .use_tplg_pcm = true, }; @@ -27,6 +32,14 @@ .drv_name = "sof_rt5682", .sof_tplg_filename = "sof-icl-rt5682.tplg", }, + { + .comp_ids = &essx_83x6, + .drv_name = "sof-essx8336", + .sof_tplg_filename = "sof-icl-es8336", /* the tplg suffix is added at run time */ + .tplg_quirk_mask = SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER | + SND_SOC_ACPI_TPLG_INTEL_SSP_MSB | + SND_SOC_ACPI_TPLG_INTEL_DMIC_NUMBER, + }, {}, }; EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_icl_machines); --- linux-5.19.0.orig/sound/soc/intel/common/soc-acpi-intel-mtl-match.c +++ linux-5.19.0/sound/soc/intel/common/soc-acpi-intel-mtl-match.c @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * soc-acpi-intel-mtl-match.c - tables and support for MTL ACPI enumeration. + * + * Copyright (c) 2022, Intel Corporation. + * + */ + +#include +#include +#include "soc-acpi-intel-sdw-mockup-match.h" + +struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_machines[] = { + {}, +}; +EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_machines); + +/* this table is used when there is no I2S codec present */ +struct snd_soc_acpi_mach snd_soc_acpi_intel_mtl_sdw_machines[] = { + /* mockup tests need to be first */ + { + .link_mask = GENMASK(3, 0), + .links = sdw_mockup_headset_2amps_mic, + .drv_name = "sof_sdw", + .sof_tplg_filename = "sof-mtl-rt711-rt1308-rt715.tplg", + }, + { + .link_mask = BIT(0) | BIT(1) | BIT(3), + .links = sdw_mockup_headset_1amp_mic, + .drv_name = "sof_sdw", + .sof_tplg_filename = "sof-mtl-rt711-rt1308-mono-rt715.tplg", + }, + { + .link_mask = GENMASK(2, 0), + .links = sdw_mockup_mic_headset_1amp, + .drv_name = "sof_sdw", + .sof_tplg_filename = "sof-mtl-rt715-rt711-rt1308-mono.tplg", + }, + {}, +}; +EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_mtl_sdw_machines); --- linux-5.19.0.orig/sound/soc/intel/common/soc-acpi-intel-rpl-match.c +++ linux-5.19.0/sound/soc/intel/common/soc-acpi-intel-rpl-match.c @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * soc-apci-intel-rpl-match.c - tables and support for RPL ACPI enumeration. + * + * Copyright (c) 2022 Intel Corporation. + */ + +#include +#include + +static const struct snd_soc_acpi_endpoint single_endpoint = { + .num = 0, + .aggregated = 0, + .group_position = 0, + .group_id = 0, +}; + +static const struct snd_soc_acpi_adr_device rt711_0_adr[] = { + { + .adr = 0x000020025D071100ull, + .num_endpoints = 1, + .endpoints = &single_endpoint, + .name_prefix = "rt711" + } +}; + +static const struct snd_soc_acpi_link_adr rpl_rvp[] = { + { + .mask = BIT(0), + .num_adr = ARRAY_SIZE(rt711_0_adr), + .adr_d = rt711_0_adr, + }, + {} +}; + +struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_machines[] = { + {}, +}; +EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_machines); + +/* this table is used when there is no I2S codec present */ +struct snd_soc_acpi_mach snd_soc_acpi_intel_rpl_sdw_machines[] = { + { + .link_mask = 0x1, /* link0 required */ + .links = rpl_rvp, + .drv_name = "sof_sdw", + .sof_tplg_filename = "sof-rpl-rt711.tplg", + }, + {}, +}; +EXPORT_SYMBOL_GPL(snd_soc_acpi_intel_rpl_sdw_machines); --- linux-5.19.0.orig/sound/soc/intel/skylake/skl.c +++ linux-5.19.0/sound/soc/intel/skylake/skl.c @@ -1097,7 +1097,10 @@ if (!skl->init_done) return; - snd_hdac_stop_streams_and_chip(bus); + snd_hdac_stop_streams(bus); + snd_hdac_ext_bus_link_power_down_all(bus); + skl_dsp_sleep(skl->dsp); + list_for_each_entry(s, &bus->stream_list, list) { stream = stream_to_hdac_ext_stream(s); snd_hdac_ext_stream_decouple(bus, stream, false); --- linux-5.19.0.orig/sound/soc/mediatek/common/mtk-btcvsd.c +++ linux-5.19.0/sound/soc/mediatek/common/mtk-btcvsd.c @@ -1038,11 +1038,9 @@ struct mtk_btcvsd_snd *bt = snd_soc_component_get_drvdata(component); if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - mtk_btcvsd_snd_write(bt, buf, count); + return mtk_btcvsd_snd_write(bt, buf, count); else - mtk_btcvsd_snd_read(bt, buf, count); - - return 0; + return mtk_btcvsd_snd_read(bt, buf, count); } /* kcontrol */ --- linux-5.19.0.orig/sound/soc/mediatek/mt6797/mt6797-mt6351.c +++ linux-5.19.0/sound/soc/mediatek/mt6797/mt6797-mt6351.c @@ -217,7 +217,8 @@ if (!codec_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_platform_node; } for_each_card_prelinks(card, i, dai_link) { if (dai_link->codecs->name) @@ -230,6 +231,9 @@ dev_err(&pdev->dev, "%s snd_soc_register_card fail %d\n", __func__, ret); + of_node_put(codec_node); +put_platform_node: + of_node_put(platform_node); return ret; } --- linux-5.19.0.orig/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c +++ linux-5.19.0/sound/soc/mediatek/mt8173/mt8173-afe-pcm.c @@ -1072,16 +1072,6 @@ afe->dev = &pdev->dev; - irq_id = platform_get_irq(pdev, 0); - if (irq_id <= 0) - return irq_id < 0 ? irq_id : -ENXIO; - ret = devm_request_irq(afe->dev, irq_id, mt8173_afe_irq_handler, - 0, "Afe_ISR_Handle", (void *)afe); - if (ret) { - dev_err(afe->dev, "could not request_irq\n"); - return ret; - } - afe->base_addr = devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(afe->base_addr)) return PTR_ERR(afe->base_addr); @@ -1187,6 +1177,16 @@ if (ret) goto err_cleanup_components; + irq_id = platform_get_irq(pdev, 0); + if (irq_id <= 0) + return irq_id < 0 ? irq_id : -ENXIO; + ret = devm_request_irq(afe->dev, irq_id, mt8173_afe_irq_handler, + 0, "Afe_ISR_Handle", (void *)afe); + if (ret) { + dev_err(afe->dev, "could not request_irq\n"); + goto err_pm_disable; + } + dev_info(&pdev->dev, "MT8173 AFE driver initialized.\n"); return 0; --- linux-5.19.0.orig/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c +++ linux-5.19.0/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5514.c @@ -200,14 +200,16 @@ if (!mt8173_rt5650_rt5514_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto out; } mt8173_rt5650_rt5514_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node = of_parse_phandle(pdev->dev.of_node, "mediatek,audio-codec", 1); if (!mt8173_rt5650_rt5514_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto out; } mt8173_rt5650_rt5514_codec_conf[0].dlc.of_node = mt8173_rt5650_rt5514_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node; @@ -216,6 +218,7 @@ ret = devm_snd_soc_register_card(&pdev->dev, card); +out: of_node_put(platform_node); return ret; } --- linux-5.19.0.orig/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c +++ linux-5.19.0/sound/soc/mediatek/mt8173/mt8173-rt5650-rt5676.c @@ -256,14 +256,16 @@ if (!mt8173_rt5650_rt5676_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_node; } mt8173_rt5650_rt5676_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node = of_parse_phandle(pdev->dev.of_node, "mediatek,audio-codec", 1); if (!mt8173_rt5650_rt5676_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_node; } mt8173_rt5650_rt5676_codec_conf[0].dlc.of_node = mt8173_rt5650_rt5676_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node; @@ -276,13 +278,15 @@ if (!mt8173_rt5650_rt5676_dais[DAI_LINK_HDMI_I2S].codecs->of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_node; } card->dev = &pdev->dev; ret = devm_snd_soc_register_card(&pdev->dev, card); +put_node: of_node_put(platform_node); return ret; } --- linux-5.19.0.orig/sound/soc/mediatek/mt8173/mt8173-rt5650.c +++ linux-5.19.0/sound/soc/mediatek/mt8173/mt8173-rt5650.c @@ -280,7 +280,8 @@ if (!mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_platform_node; } mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[1].of_node = mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[0].of_node; @@ -293,7 +294,7 @@ dev_err(&pdev->dev, "%s codec_capture_dai name fail %d\n", __func__, ret); - return ret; + goto put_platform_node; } mt8173_rt5650_dais[DAI_LINK_CODEC_I2S].codecs[1].dai_name = codec_capture_dai; @@ -315,12 +316,14 @@ if (!mt8173_rt5650_dais[DAI_LINK_HDMI_I2S].codecs->of_node) { dev_err(&pdev->dev, "Property 'audio-codec' missing or invalid\n"); - return -EINVAL; + ret = -EINVAL; + goto put_platform_node; } card->dev = &pdev->dev; ret = devm_snd_soc_register_card(&pdev->dev, card); +put_platform_node: of_node_put(platform_node); return ret; } --- linux-5.19.0.orig/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c +++ linux-5.19.0/sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c @@ -644,8 +644,10 @@ } card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev); - if (!card) + if (!card) { + of_node_put(platform_node); return -EINVAL; + } card->dev = &pdev->dev; ec_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,ec-codec", 0); @@ -734,8 +736,10 @@ } priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); - if (!priv) - return -ENOMEM; + if (!priv) { + ret = -ENOMEM; + goto out; + } snd_soc_card_set_drvdata(card, priv); @@ -743,7 +747,8 @@ if (IS_ERR(priv->pinctrl)) { dev_err(&pdev->dev, "%s devm_pinctrl_get failed\n", __func__); - return PTR_ERR(priv->pinctrl); + ret = PTR_ERR(priv->pinctrl); + goto out; } for (i = 0; i < PIN_STATE_MAX; i++) { @@ -776,6 +781,7 @@ ret = devm_snd_soc_register_card(&pdev->dev, card); +out: of_node_put(platform_node); of_node_put(ec_codec); of_node_put(hdmi_codec); --- linux-5.19.0.orig/sound/soc/pxa/mmp-pcm.c +++ linux-5.19.0/sound/soc/pxa/mmp-pcm.c @@ -98,7 +98,7 @@ devname = kasprintf(GFP_KERNEL, "%s.%d", dma_data->dma_res->name, dma_data->ssp_id); - if ((strcmp(dev_name(chan->device->dev), devname) == 0) && + if (devname && (strcmp(dev_name(chan->device->dev), devname) == 0) && (chan->chan_id == dma_data->dma_res->start)) { found = true; } --- linux-5.19.0.orig/sound/soc/qcom/lpass-cpu.c +++ linux-5.19.0/sound/soc/qcom/lpass-cpu.c @@ -781,10 +781,20 @@ return true; if (reg == LPASS_HDMI_TX_LEGACY_ADDR(v)) return true; + if (reg == LPASS_HDMI_TX_VBIT_CTL_ADDR(v)) + return true; + if (reg == LPASS_HDMI_TX_PARITY_ADDR(v)) + return true; for (i = 0; i < v->hdmi_rdma_channels; ++i) { if (reg == LPAIF_HDMI_RDMACURR_REG(v, i)) return true; + if (reg == LPASS_HDMI_TX_DMA_ADDR(v, i)) + return true; + if (reg == LPASS_HDMI_TX_CH_LSB_ADDR(v, i)) + return true; + if (reg == LPASS_HDMI_TX_CH_MSB_ADDR(v, i)) + return true; } return false; } @@ -1090,6 +1100,7 @@ dsp_of_node = of_parse_phandle(pdev->dev.of_node, "qcom,adsp", 0); if (dsp_of_node) { dev_err(dev, "DSP exists and holds audio resources\n"); + of_node_put(dsp_of_node); return -EBUSY; } --- linux-5.19.0.orig/sound/soc/qcom/lpass-sc7180.c +++ linux-5.19.0/sound/soc/qcom/lpass-sc7180.c @@ -131,6 +131,9 @@ drvdata->clks = devm_kcalloc(dev, variant->num_clks, sizeof(*drvdata->clks), GFP_KERNEL); + if (!drvdata->clks) + return -ENOMEM; + drvdata->num_clks = variant->num_clks; for (i = 0; i < drvdata->num_clks; i++) --- linux-5.19.0.orig/sound/soc/qcom/qdsp6/q6adm.c +++ linux-5.19.0/sound/soc/qcom/qdsp6/q6adm.c @@ -217,7 +217,7 @@ idx = find_first_zero_bit(&adm->copp_bitmap[port_idx], MAX_COPPS_PER_PORT); - if (idx > MAX_COPPS_PER_PORT) + if (idx >= MAX_COPPS_PER_PORT) return ERR_PTR(-EBUSY); c = kzalloc(sizeof(*c), GFP_ATOMIC); --- linux-5.19.0.orig/sound/soc/qcom/qdsp6/q6apm-dai.c +++ linux-5.19.0/sound/soc/qcom/qdsp6/q6apm-dai.c @@ -153,6 +153,12 @@ q6apm_unmap_memory_regions(prtd->graph, substream->stream); } + if (prtd->state) { + /* clear the previous setup if any */ + q6apm_graph_stop(prtd->graph); + q6apm_unmap_memory_regions(prtd->graph, substream->stream); + } + prtd->pcm_count = snd_pcm_lib_period_bytes(substream); prtd->pos = 0; /* rate and channels are sent to audio driver */ --- linux-5.19.0.orig/sound/soc/qcom/sm8250.c +++ linux-5.19.0/sound/soc/qcom/sm8250.c @@ -270,6 +270,7 @@ if (!card) return -ENOMEM; + card->owner = THIS_MODULE; /* Allocate the private data */ data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); if (!data) --- linux-5.19.0.orig/sound/soc/rockchip/rockchip_pdm.c +++ linux-5.19.0/sound/soc/rockchip/rockchip_pdm.c @@ -430,6 +430,7 @@ ret = clk_prepare_enable(pdm->hclk); if (ret) { + clk_disable_unprepare(pdm->clk); dev_err(pdm->dev, "hclock enable failed %d\n", ret); return ret; } --- linux-5.19.0.orig/sound/soc/rockchip/rockchip_spdif.c +++ linux-5.19.0/sound/soc/rockchip/rockchip_spdif.c @@ -88,6 +88,7 @@ ret = clk_prepare_enable(spdif->hclk); if (ret) { + clk_disable_unprepare(spdif->mclk); dev_err(spdif->dev, "hclk clock enable failed %d\n", ret); return ret; } --- linux-5.19.0.orig/sound/soc/samsung/aries_wm8994.c +++ linux-5.19.0/sound/soc/samsung/aries_wm8994.c @@ -628,8 +628,10 @@ return -EINVAL; codec = of_get_child_by_name(dev->of_node, "codec"); - if (!codec) - return -EINVAL; + if (!codec) { + ret = -EINVAL; + goto out; + } for_each_card_prelinks(card, i, dai_link) { dai_link->codecs->of_node = of_parse_phandle(codec, --- linux-5.19.0.orig/sound/soc/samsung/h1940_uda1380.c +++ linux-5.19.0/sound/soc/samsung/h1940_uda1380.c @@ -8,7 +8,7 @@ // Based on version from Arnaud Patard #include -#include +#include #include #include --- linux-5.19.0.orig/sound/soc/samsung/rx1950_uda1380.c +++ linux-5.19.0/sound/soc/samsung/rx1950_uda1380.c @@ -128,7 +128,7 @@ &hw_rates); } -struct gpio_desc *gpiod_speaker_power; +static struct gpio_desc *gpiod_speaker_power; static int rx1950_spk_power(struct snd_soc_dapm_widget *w, struct snd_kcontrol *kcontrol, int event) @@ -228,7 +228,7 @@ return devm_snd_soc_register_card(dev, &rx1950_asoc); } -struct platform_driver rx1950_audio = { +static struct platform_driver rx1950_audio = { .driver = { .name = "rx1950-audio", .pm = &snd_soc_pm_ops, --- linux-5.19.0.orig/sound/soc/sh/rcar/ctu.c +++ linux-5.19.0/sound/soc/sh/rcar/ctu.c @@ -171,7 +171,11 @@ struct rsnd_dai_stream *io, struct rsnd_priv *priv) { - rsnd_mod_power_on(mod); + int ret; + + ret = rsnd_mod_power_on(mod); + if (ret < 0) + return ret; rsnd_ctu_activation(mod); --- linux-5.19.0.orig/sound/soc/sh/rcar/dvc.c +++ linux-5.19.0/sound/soc/sh/rcar/dvc.c @@ -186,7 +186,11 @@ struct rsnd_dai_stream *io, struct rsnd_priv *priv) { - rsnd_mod_power_on(mod); + int ret; + + ret = rsnd_mod_power_on(mod); + if (ret < 0) + return ret; rsnd_dvc_activation(mod); --- linux-5.19.0.orig/sound/soc/sh/rcar/mix.c +++ linux-5.19.0/sound/soc/sh/rcar/mix.c @@ -146,7 +146,11 @@ struct rsnd_dai_stream *io, struct rsnd_priv *priv) { - rsnd_mod_power_on(mod); + int ret; + + ret = rsnd_mod_power_on(mod); + if (ret < 0) + return ret; rsnd_mix_activation(mod); --- linux-5.19.0.orig/sound/soc/sh/rcar/src.c +++ linux-5.19.0/sound/soc/sh/rcar/src.c @@ -463,11 +463,14 @@ struct rsnd_priv *priv) { struct rsnd_src *src = rsnd_mod_to_src(mod); + int ret; /* reset sync convert_rate */ src->sync.val = 0; - rsnd_mod_power_on(mod); + ret = rsnd_mod_power_on(mod); + if (ret < 0) + return ret; rsnd_src_activation(mod); --- linux-5.19.0.orig/sound/soc/sh/rcar/ssi.c +++ linux-5.19.0/sound/soc/sh/rcar/ssi.c @@ -480,7 +480,9 @@ ssi->usrcnt++; - rsnd_mod_power_on(mod); + ret = rsnd_mod_power_on(mod); + if (ret < 0) + return ret; rsnd_ssi_config_init(mod, io); --- linux-5.19.0.orig/sound/soc/sh/rcar/ssiu.c +++ linux-5.19.0/sound/soc/sh/rcar/ssiu.c @@ -67,6 +67,8 @@ shift = 1; offset = 1; break; + default: + return; } for (i = 0; i < 4; i++) { --- linux-5.19.0.orig/sound/soc/sh/rz-ssi.c +++ linux-5.19.0/sound/soc/sh/rz-ssi.c @@ -1016,32 +1016,36 @@ ssi->rstc = devm_reset_control_get_exclusive(&pdev->dev, NULL); if (IS_ERR(ssi->rstc)) { - rz_ssi_release_dma_channels(ssi); - return PTR_ERR(ssi->rstc); + ret = PTR_ERR(ssi->rstc); + goto err_reset; } reset_control_deassert(ssi->rstc); pm_runtime_enable(&pdev->dev); ret = pm_runtime_resume_and_get(&pdev->dev); if (ret < 0) { - rz_ssi_release_dma_channels(ssi); - pm_runtime_disable(ssi->dev); - reset_control_assert(ssi->rstc); - return dev_err_probe(ssi->dev, ret, "pm_runtime_resume_and_get failed\n"); + dev_err(&pdev->dev, "pm_runtime_resume_and_get failed\n"); + goto err_pm; } ret = devm_snd_soc_register_component(&pdev->dev, &rz_ssi_soc_component, rz_ssi_soc_dai, ARRAY_SIZE(rz_ssi_soc_dai)); if (ret < 0) { - rz_ssi_release_dma_channels(ssi); - - pm_runtime_put(ssi->dev); - pm_runtime_disable(ssi->dev); - reset_control_assert(ssi->rstc); dev_err(&pdev->dev, "failed to register snd component\n"); + goto err_snd_soc; } + return 0; + +err_snd_soc: + pm_runtime_put(ssi->dev); +err_pm: + pm_runtime_disable(ssi->dev); + reset_control_assert(ssi->rstc); +err_reset: + rz_ssi_release_dma_channels(ssi); + return ret; } --- linux-5.19.0.orig/sound/soc/soc-compress.c +++ linux-5.19.0/sound/soc/soc-compress.c @@ -572,6 +572,11 @@ return -EINVAL; } + if (!codec_dai) { + dev_err(rtd->card->dev, "Missing codec\n"); + return -EINVAL; + } + /* check client and interface hw capabilities */ if (snd_soc_dai_stream_valid(codec_dai, SNDRV_PCM_STREAM_PLAYBACK) && snd_soc_dai_stream_valid(cpu_dai, SNDRV_PCM_STREAM_PLAYBACK)) --- linux-5.19.0.orig/sound/soc/soc-core.c +++ linux-5.19.0/sound/soc/soc-core.c @@ -3433,26 +3433,26 @@ struct of_phandle_args args; struct snd_soc_dai_link_component *component; char *name; - int index, num_codecs, ret; + int index, num_cpus, ret; - /* Count the number of CODECs */ + /* Count the number of CPUs */ name = "sound-dai"; - num_codecs = of_count_phandle_with_args(of_node, name, + num_cpus = of_count_phandle_with_args(of_node, name, "#sound-dai-cells"); - if (num_codecs <= 0) { - if (num_codecs == -ENOENT) + if (num_cpus <= 0) { + if (num_cpus == -ENOENT) dev_err(dev, "No 'sound-dai' property\n"); else dev_err(dev, "Bad phandle in 'sound-dai'\n"); - return num_codecs; + return num_cpus; } component = devm_kcalloc(dev, - num_codecs, sizeof(*component), + num_cpus, sizeof(*component), GFP_KERNEL); if (!component) return -ENOMEM; dai_link->cpus = component; - dai_link->num_cpus = num_codecs; + dai_link->num_cpus = num_cpus; /* Parse the list */ for_each_link_cpus(dai_link, index, component) { @@ -3468,7 +3468,7 @@ } return 0; err: - snd_soc_of_put_dai_link_codecs(dai_link); + snd_soc_of_put_dai_link_cpus(dai_link); dai_link->cpus = NULL; dai_link->num_cpus = 0; return ret; @@ -3477,10 +3477,23 @@ static int __init snd_soc_init(void) { + int ret; + snd_soc_debugfs_init(); - snd_soc_util_init(); + ret = snd_soc_util_init(); + if (ret) + goto err_util_init; + + ret = platform_driver_register(&soc_driver); + if (ret) + goto err_register; + return 0; - return platform_driver_register(&soc_driver); +err_register: + snd_soc_util_exit(); +err_util_init: + snd_soc_debugfs_exit(); + return ret; } module_init(snd_soc_init); --- linux-5.19.0.orig/sound/soc/soc-ops.c +++ linux-5.19.0/sound/soc/soc-ops.c @@ -435,7 +435,7 @@ val = ucontrol->value.integer.value[0]; if (mc->platform_max && val > mc->platform_max) return -EINVAL; - if (val > max - min) + if (val > max) return -EINVAL; val_mask = mask << shift; val = (val + min) & mask; @@ -447,10 +447,15 @@ ret = err; if (snd_soc_volsw_is_stereo(mc)) { - unsigned int val2; + unsigned int val2 = ucontrol->value.integer.value[1]; + + if (mc->platform_max && val2 > mc->platform_max) + return -EINVAL; + if (val2 > max) + return -EINVAL; val_mask = mask << rshift; - val2 = (ucontrol->value.integer.value[1] + min) & mask; + val2 = (val2 + min) & mask; val2 = val2 << rshift; err = snd_soc_component_update_bits(component, reg2, val_mask, --- linux-5.19.0.orig/sound/soc/soc-pcm.c +++ linux-5.19.0/sound/soc/soc-pcm.c @@ -723,7 +723,7 @@ struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream); snd_soc_dpcm_mutex_lock(rtd); - soc_pcm_clean(rtd, substream, 0); + __soc_pcm_close(rtd, substream); snd_soc_dpcm_mutex_unlock(rtd); return 0; } @@ -800,11 +800,6 @@ ret = snd_soc_dai_startup(dai, substream); if (ret < 0) goto err; - - if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) - dai->tx_mask = 0; - else - dai->rx_mask = 0; } /* Dynamic PCM DAI links compat checks use dynamic capabilities */ @@ -1248,6 +1243,8 @@ return; be_substream = snd_soc_dpcm_get_substream(be, stream); + if (!be_substream) + return; for_each_dpcm_fe(be, stream, dpcm) { if (dpcm->fe == fe) @@ -1318,6 +1315,9 @@ if (!be->dai_link->no_pcm) continue; + if (!snd_soc_dpcm_get_substream(be, stream)) + continue; + for_each_rtd_dais(be, i, dai) { w = snd_soc_dai_get_widget(dai, stream); --- linux-5.19.0.orig/sound/soc/soc-utils.c +++ linux-5.19.0/sound/soc/soc-utils.c @@ -264,7 +264,7 @@ return ret; } -void __exit snd_soc_util_exit(void) +void snd_soc_util_exit(void) { platform_driver_unregister(&soc_dummy_driver); platform_device_unregister(soc_dummy_dev); --- linux-5.19.0.orig/sound/soc/sof/Kconfig +++ linux-5.19.0/sound/soc/sof/Kconfig @@ -196,6 +196,7 @@ config SND_SOC_SOF_DEBUG_IPC_FLOOD_TEST tristate "SOF enable IPC flood test" + depends on SND_SOC_SOF select SND_SOC_SOF_CLIENT help This option enables a separate client device for IPC flood test @@ -214,6 +215,7 @@ config SND_SOC_SOF_DEBUG_IPC_MSG_INJECTOR tristate "SOF enable IPC message injector" + depends on SND_SOC_SOF select SND_SOC_SOF_CLIENT help This option enables the IPC message injector which can be used to send --- linux-5.19.0.orig/sound/soc/sof/debug.c +++ linux-5.19.0/sound/soc/sof/debug.c @@ -252,9 +252,9 @@ } for (i = 0, len = 0; i < reply->num_elems; i++) { - ret = snprintf(buf + len, buff_size - len, "zone %d.%d used %#8x free %#8x\n", - reply->elems[i].zone, reply->elems[i].id, - reply->elems[i].used, reply->elems[i].free); + ret = scnprintf(buf + len, buff_size - len, "zone %d.%d used %#8x free %#8x\n", + reply->elems[i].zone, reply->elems[i].id, + reply->elems[i].used, reply->elems[i].free); if (ret < 0) goto error; len += ret; --- linux-5.19.0.orig/sound/soc/sof/intel/Kconfig +++ linux-5.19.0/sound/soc/sof/intel/Kconfig @@ -210,6 +210,22 @@ Say Y if you have such a device. If unsure select "N". +config SND_SOC_SOF_INTEL_MTL + tristate + select SND_SOC_SOF_HDA_COMMON + select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE + select SND_SOC_SOF_INTEL_IPC4 + +config SND_SOC_SOF_METEORLAKE + tristate "SOF support for Meteorlake" + default SND_SOC_SOF_PCI + select SND_SOC_SOF_INTEL_MTL + help + This adds support for Sound Open Firmware for Intel(R) platforms + using the Meteorlake processors. + Say Y if you have such a device. + If unsure select "N". + config SND_SOC_SOF_HDA_COMMON tristate select SND_SOC_SOF_INTEL_COMMON --- linux-5.19.0.orig/sound/soc/sof/intel/Makefile +++ linux-5.19.0/sound/soc/sof/intel/Makefile @@ -6,7 +6,7 @@ snd-sof-intel-hda-common-objs := hda.o hda-loader.o hda-stream.o hda-trace.o \ hda-dsp.o hda-ipc.o hda-ctrl.o hda-pcm.o \ hda-dai.o hda-bus.o \ - apl.o cnl.o tgl.o icl.o hda-common-ops.o + apl.o cnl.o tgl.o icl.o mtl.o hda-common-ops.o snd-sof-intel-hda-common-$(CONFIG_SND_SOC_SOF_HDA_PROBES) += hda-probes.o snd-sof-intel-hda-objs := hda-codec.o @@ -24,9 +24,11 @@ snd-sof-pci-intel-cnl-objs := pci-cnl.o snd-sof-pci-intel-icl-objs := pci-icl.o snd-sof-pci-intel-tgl-objs := pci-tgl.o +snd-sof-pci-intel-mtl-objs := pci-mtl.o obj-$(CONFIG_SND_SOC_SOF_MERRIFIELD) += snd-sof-pci-intel-tng.o obj-$(CONFIG_SND_SOC_SOF_INTEL_APL) += snd-sof-pci-intel-apl.o obj-$(CONFIG_SND_SOC_SOF_INTEL_CNL) += snd-sof-pci-intel-cnl.o obj-$(CONFIG_SND_SOC_SOF_INTEL_ICL) += snd-sof-pci-intel-icl.o obj-$(CONFIG_SND_SOC_SOF_INTEL_TGL) += snd-sof-pci-intel-tgl.o +obj-$(CONFIG_SND_SOC_SOF_INTEL_MTL) += snd-sof-pci-intel-mtl.o --- linux-5.19.0.orig/sound/soc/sof/intel/apl.c +++ linux-5.19.0/sound/soc/sof/intel/apl.c @@ -101,6 +101,7 @@ .ssp_base_offset = APL_SSP_BASE_OFFSET, .quirks = SOF_INTEL_PROCEN_FMT_QUIRK, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_1_5_PLUS, }; EXPORT_SYMBOL_NS(apl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); --- linux-5.19.0.orig/sound/soc/sof/intel/cnl.c +++ linux-5.19.0/sound/soc/sof/intel/cnl.c @@ -60,17 +60,23 @@ if (primary & SOF_IPC4_MSG_DIR_MASK) { /* Reply received */ - struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data; + if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) { + struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data; - data->primary = primary; - data->extension = extension; + data->primary = primary; + data->extension = extension; - spin_lock_irq(&sdev->ipc_lock); - - snd_sof_ipc_get_reply(sdev); - snd_sof_ipc_reply(sdev, data->primary); + spin_lock_irq(&sdev->ipc_lock); - spin_unlock_irq(&sdev->ipc_lock); + snd_sof_ipc_get_reply(sdev); + snd_sof_ipc_reply(sdev, data->primary); + + spin_unlock_irq(&sdev->ipc_lock); + } else { + dev_dbg_ratelimited(sdev->dev, + "IPC reply before FW_READY: %#x|%#x\n", + primary, extension); + } } else { /* Notification received */ notification_data.primary = primary; @@ -124,15 +130,20 @@ CNL_DSP_REG_HIPCCTL, CNL_DSP_REG_HIPCCTL_DONE, 0); - spin_lock_irq(&sdev->ipc_lock); + if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) { + spin_lock_irq(&sdev->ipc_lock); - /* handle immediate reply from DSP core */ - hda_dsp_ipc_get_reply(sdev); - snd_sof_ipc_reply(sdev, msg); + /* handle immediate reply from DSP core */ + hda_dsp_ipc_get_reply(sdev); + snd_sof_ipc_reply(sdev, msg); - cnl_ipc_dsp_done(sdev); + cnl_ipc_dsp_done(sdev); - spin_unlock_irq(&sdev->ipc_lock); + spin_unlock_irq(&sdev->ipc_lock); + } else { + dev_dbg_ratelimited(sdev->dev, "IPC reply before FW_READY: %#x\n", + msg); + } ipc_irq = true; } @@ -401,6 +412,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_1_8, }; EXPORT_SYMBOL_NS(cnl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); @@ -430,6 +442,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_0, }; EXPORT_SYMBOL_NS(jsl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); --- linux-5.19.0.orig/sound/soc/sof/intel/hda-ipc.c +++ linux-5.19.0/sound/soc/sof/intel/hda-ipc.c @@ -148,17 +148,23 @@ if (primary & SOF_IPC4_MSG_DIR_MASK) { /* Reply received */ - struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data; + if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) { + struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data; - data->primary = primary; - data->extension = extension; + data->primary = primary; + data->extension = extension; - spin_lock_irq(&sdev->ipc_lock); - - snd_sof_ipc_get_reply(sdev); - snd_sof_ipc_reply(sdev, data->primary); + spin_lock_irq(&sdev->ipc_lock); - spin_unlock_irq(&sdev->ipc_lock); + snd_sof_ipc_get_reply(sdev); + snd_sof_ipc_reply(sdev, data->primary); + + spin_unlock_irq(&sdev->ipc_lock); + } else { + dev_dbg_ratelimited(sdev->dev, + "IPC reply before FW_READY: %#x|%#x\n", + primary, extension); + } } else { /* Notification received */ @@ -225,16 +231,21 @@ * place, the message might not yet be marked as expecting a * reply. */ - spin_lock_irq(&sdev->ipc_lock); + if (likely(sdev->fw_state == SOF_FW_BOOT_COMPLETE)) { + spin_lock_irq(&sdev->ipc_lock); - /* handle immediate reply from DSP core */ - hda_dsp_ipc_get_reply(sdev); - snd_sof_ipc_reply(sdev, msg); + /* handle immediate reply from DSP core */ + hda_dsp_ipc_get_reply(sdev); + snd_sof_ipc_reply(sdev, msg); - /* set the done bit */ - hda_dsp_ipc_dsp_done(sdev); + /* set the done bit */ + hda_dsp_ipc_dsp_done(sdev); - spin_unlock_irq(&sdev->ipc_lock); + spin_unlock_irq(&sdev->ipc_lock); + } else { + dev_dbg_ratelimited(sdev->dev, "IPC reply before FW_READY: %#x\n", + msg); + } ipc_irq = true; } --- linux-5.19.0.orig/sound/soc/sof/intel/hda-loader.c +++ linux-5.19.0/sound/soc/sof/intel/hda-loader.c @@ -99,7 +99,7 @@ * power on all host managed cores and only unstall/run the boot core to boot the * DSP then turn off all non boot cores (if any) is powered on. */ -static int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot) +int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot) { struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; const struct sof_intel_dsp_desc *chip = hda->desc; @@ -369,9 +369,15 @@ static int hda_dsp_boot_imr(struct snd_sof_dev *sdev) { + const struct sof_intel_dsp_desc *chip_info; int ret; - ret = cl_dsp_init(sdev, 0, true); + chip_info = get_chip_info(sdev->pdata); + if (chip_info->cl_init) + ret = chip_info->cl_init(sdev, 0, true); + else + ret = -EINVAL; + if (!ret) hda_sdw_process_wakeen(sdev); @@ -431,7 +437,10 @@ "Attempting iteration %d of Core En/ROM load...\n", i); hda->boot_iteration = i + 1; - ret = cl_dsp_init(sdev, hext_stream->hstream.stream_tag, false); + if (chip_info->cl_init) + ret = chip_info->cl_init(sdev, hext_stream->hstream.stream_tag, false); + else + ret = -EINVAL; /* don't retry anymore if successful */ if (!ret) --- linux-5.19.0.orig/sound/soc/sof/intel/hda.c +++ linux-5.19.0/sound/soc/sof/intel/hda.c @@ -376,6 +376,10 @@ module_param_named(dmic_num, dmic_num_override, int, 0444); MODULE_PARM_DESC(dmic_num, "SOF HDA DMIC number"); +static int mclk_id_override = -1; +module_param_named(mclk_id, mclk_id_override, int, 0444); +MODULE_PARM_DESC(mclk_id, "SOF SSP mclk_id"); + #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) static bool hda_codec_use_common_hdmi = IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI); module_param_named(use_common_hdmi, hda_codec_use_common_hdmi, bool, 0444); @@ -467,7 +471,7 @@ chip = get_chip_info(sdev->pdata); for (i = 0; i < HDA_EXT_ROM_STATUS_SIZE; i++) { value = snd_sof_dsp_read(sdev, HDA_DSP_BAR, chip->rom_status_reg + i * 0x4); - len += snprintf(msg + len, sizeof(msg) - len, " 0x%x", value); + len += scnprintf(msg + len, sizeof(msg) - len, " 0x%x", value); } dev_printk(level, sdev->dev, "extended rom status: %s", msg); @@ -1395,6 +1399,7 @@ if (mach->tplg_quirk_mask & SND_SOC_ACPI_TPLG_INTEL_SSP_NUMBER && mach->mach_params.i2s_link_mask) { + const struct sof_intel_dsp_desc *chip = get_chip_info(sdev->pdata); int ssp_num; if (hweight_long(mach->mach_params.i2s_link_mask) > 1 && @@ -1404,6 +1409,12 @@ /* fls returns 1-based results, SSPs indices are 0-based */ ssp_num = fls(mach->mach_params.i2s_link_mask) - 1; + if (ssp_num >= chip->ssp_count) { + dev_err(sdev->dev, "Invalid SSP %d, max on this platform is %d\n", + ssp_num, chip->ssp_count); + return NULL; + } + tplg_filename = devm_kasprintf(sdev->dev, GFP_KERNEL, "%s%s%d", sof_pdata->tplg_filename, @@ -1426,6 +1437,13 @@ sof_pdata->tplg_filename = tplg_filename; } + + /* check if mclk_id should be modified from topology defaults */ + if (mclk_id_override >= 0) { + dev_info(sdev->dev, "Overriding topology with MCLK %d from kernel_parameter\n", mclk_id_override); + sdev->mclk_id_override = true; + sdev->mclk_id_quirk = mclk_id_override; + } } /* --- linux-5.19.0.orig/sound/soc/sof/intel/hda.h +++ linux-5.19.0/sound/soc/sof/intel/hda.h @@ -605,6 +605,7 @@ int direction); int hda_cl_cleanup(struct snd_sof_dev *sdev, struct snd_dma_buffer *dmab, struct hdac_ext_stream *hext_stream); +int cl_dsp_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot); #define HDA_CL_STREAM_FORMAT 0x40 /* pre and post fw run ops */ @@ -716,6 +717,8 @@ int sof_tgl_ops_init(struct snd_sof_dev *sdev); extern struct snd_sof_dsp_ops sof_icl_ops; int sof_icl_ops_init(struct snd_sof_dev *sdev); +extern struct snd_sof_dsp_ops sof_mtl_ops; +int sof_mtl_ops_init(struct snd_sof_dev *sdev); extern const struct sof_intel_dsp_desc apl_chip_info; extern const struct sof_intel_dsp_desc cnl_chip_info; @@ -725,6 +728,7 @@ extern const struct sof_intel_dsp_desc ehl_chip_info; extern const struct sof_intel_dsp_desc jsl_chip_info; extern const struct sof_intel_dsp_desc adls_chip_info; +extern const struct sof_intel_dsp_desc mtl_chip_info; /* Probes support */ #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_PROBES) --- linux-5.19.0.orig/sound/soc/sof/intel/icl.c +++ linux-5.19.0/sound/soc/sof/intel/icl.c @@ -152,6 +152,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_0, }; EXPORT_SYMBOL_NS(icl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); --- linux-5.19.0.orig/sound/soc/sof/intel/mtl.c +++ linux-5.19.0/sound/soc/sof/intel/mtl.c @@ -0,0 +1,800 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) +// +// Copyright(c) 2022 Intel Corporation. All rights reserved. +// +// Authors: Ranjani Sridharan +// + +/* + * Hardware interface for audio DSP on Meteorlake. + */ + +#include +#include +#include "../ipc4-priv.h" +#include "../ops.h" +#include "hda.h" +#include "hda-ipc.h" +#include "../sof-audio.h" +#include "mtl.h" + +static const struct snd_sof_debugfs_map mtl_dsp_debugfs[] = { + {"hda", HDA_DSP_HDA_BAR, 0, 0x4000, SOF_DEBUGFS_ACCESS_ALWAYS}, + {"pp", HDA_DSP_PP_BAR, 0, 0x1000, SOF_DEBUGFS_ACCESS_ALWAYS}, + {"dsp", HDA_DSP_BAR, 0, 0x10000, SOF_DEBUGFS_ACCESS_ALWAYS}, +}; + +static void mtl_ipc_host_done(struct snd_sof_dev *sdev) +{ + /* + * clear busy interrupt to tell dsp controller this interrupt has been accepted, + * not trigger it again + */ + snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXTDR, + MTL_DSP_REG_HFIPCXTDR_BUSY, MTL_DSP_REG_HFIPCXTDR_BUSY); + /* + * clear busy bit to ack dsp the msg has been processed and send reply msg to dsp + */ + snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXTDA, + MTL_DSP_REG_HFIPCXTDA_BUSY, 0); +} + +static void mtl_ipc_dsp_done(struct snd_sof_dev *sdev) +{ + /* + * set DONE bit - tell DSP we have received the reply msg from DSP, and processed it, + * don't send more reply to host + */ + snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXIDA, + MTL_DSP_REG_HFIPCXIDA_DONE, MTL_DSP_REG_HFIPCXIDA_DONE); + + /* unmask Done interrupt */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXCTL, + MTL_DSP_REG_HFIPCXCTL_DONE, MTL_DSP_REG_HFIPCXCTL_DONE); +} + +/* Check if an IPC IRQ occurred */ +static bool mtl_dsp_check_ipc_irq(struct snd_sof_dev *sdev) +{ + u32 irq_status; + u32 hfintipptr; + + /* read Interrupt IP Pointer */ + hfintipptr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFINTIPPTR) & MTL_HFINTIPPTR_PTR_MASK; + irq_status = snd_sof_dsp_read(sdev, HDA_DSP_BAR, hfintipptr + MTL_DSP_IRQSTS); + + dev_vdbg(sdev->dev, "irq handler: irq_status:0x%x\n", irq_status); + + if (irq_status != U32_MAX && (irq_status & MTL_DSP_IRQSTS_IPC)) + return true; + + return false; +} + +/* Check if an SDW IRQ occurred */ +static bool mtl_dsp_check_sdw_irq(struct snd_sof_dev *sdev) +{ + u32 irq_status; + u32 hfintipptr; + + /* read Interrupt IP Pointer */ + hfintipptr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFINTIPPTR) & MTL_HFINTIPPTR_PTR_MASK; + irq_status = snd_sof_dsp_read(sdev, HDA_DSP_BAR, hfintipptr + MTL_DSP_IRQSTS); + + if (irq_status != U32_MAX && (irq_status & MTL_DSP_IRQSTS_SDW)) + return true; + + return false; +} + +static int mtl_ipc_send_msg(struct snd_sof_dev *sdev, struct snd_sof_ipc_msg *msg) +{ + struct sof_ipc4_msg *msg_data = msg->msg_data; + + /* send the message via mailbox */ + if (msg_data->data_size) + sof_mailbox_write(sdev, sdev->host_box.offset, msg_data->data_ptr, + msg_data->data_size); + + snd_sof_dsp_write(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXIDDY, + msg_data->extension); + snd_sof_dsp_write(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXIDR, + msg_data->primary | MTL_DSP_REG_HFIPCXIDR_BUSY); + + return 0; +} + +static void mtl_enable_ipc_interrupts(struct snd_sof_dev *sdev) +{ + struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; + const struct sof_intel_dsp_desc *chip = hda->desc; + + /* enable IPC DONE and BUSY interrupts */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, chip->ipc_ctl, + MTL_DSP_REG_HFIPCXCTL_BUSY | MTL_DSP_REG_HFIPCXCTL_DONE, + MTL_DSP_REG_HFIPCXCTL_BUSY | MTL_DSP_REG_HFIPCXCTL_DONE); +} + +static void mtl_disable_ipc_interrupts(struct snd_sof_dev *sdev) +{ + struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; + const struct sof_intel_dsp_desc *chip = hda->desc; + + /* disable IPC DONE and BUSY interrupts */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, chip->ipc_ctl, + MTL_DSP_REG_HFIPCXCTL_BUSY | MTL_DSP_REG_HFIPCXCTL_DONE, 0); +} + +static int mtl_enable_interrupts(struct snd_sof_dev *sdev) +{ + u32 hfintipptr; + u32 irqinten; + u32 host_ipc; + u32 hipcie; + int ret; + + /* read Interrupt IP Pointer */ + hfintipptr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFINTIPPTR) & MTL_HFINTIPPTR_PTR_MASK; + + /* Enable Host IPC and SOUNDWIRE */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, hfintipptr, + MTL_IRQ_INTEN_L_HOST_IPC_MASK | MTL_IRQ_INTEN_L_SOUNDWIRE_MASK, + MTL_IRQ_INTEN_L_HOST_IPC_MASK | MTL_IRQ_INTEN_L_SOUNDWIRE_MASK); + + /* check if operation was successful */ + host_ipc = MTL_IRQ_INTEN_L_HOST_IPC_MASK | MTL_IRQ_INTEN_L_SOUNDWIRE_MASK; + irqinten = snd_sof_dsp_read(sdev, HDA_DSP_BAR, hfintipptr); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, hfintipptr, irqinten, + (irqinten & host_ipc) == host_ipc, + HDA_DSP_REG_POLL_INTERVAL_US, HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) { + dev_err(sdev->dev, "failed to enable Host IPC and/or SOUNDWIRE\n"); + return ret; + } + + /* Set Host IPC interrupt enable */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE, + MTL_DSP_REG_HfHIPCIE_IE_MASK, MTL_DSP_REG_HfHIPCIE_IE_MASK); + + /* check if operation was successful */ + host_ipc = MTL_DSP_REG_HfHIPCIE_IE_MASK; + hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE, hipcie, + (hipcie & host_ipc) == host_ipc, + HDA_DSP_REG_POLL_INTERVAL_US, HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) { + dev_err(sdev->dev, "failed to set Host IPC interrupt enable\n"); + return ret; + } + + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE, + MTL_DSP_REG_HfSNDWIE_IE_MASK, MTL_DSP_REG_HfSNDWIE_IE_MASK); + host_ipc = MTL_DSP_REG_HfSNDWIE_IE_MASK; + hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE, hipcie, + (hipcie & host_ipc) == host_ipc, + HDA_DSP_REG_POLL_INTERVAL_US, HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) + dev_err(sdev->dev, "failed to set SoundWire IPC interrupt enable\n"); + + return ret; +} + +static int mtl_disable_interrupts(struct snd_sof_dev *sdev) +{ + u32 hfintipptr; + u32 irqinten; + u32 host_ipc; + u32 hipcie; + int ret1; + int ret; + + /* read Interrupt IP Pointer */ + hfintipptr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFINTIPPTR) & MTL_HFINTIPPTR_PTR_MASK; + + /* Disable Host IPC and SOUNDWIRE */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, hfintipptr, + MTL_IRQ_INTEN_L_HOST_IPC_MASK | MTL_IRQ_INTEN_L_SOUNDWIRE_MASK, 0); + + /* check if operation was successful */ + host_ipc = MTL_IRQ_INTEN_L_HOST_IPC_MASK | MTL_IRQ_INTEN_L_SOUNDWIRE_MASK; + irqinten = snd_sof_dsp_read(sdev, HDA_DSP_BAR, hfintipptr); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, hfintipptr, irqinten, + (irqinten & host_ipc) == 0, + HDA_DSP_REG_POLL_INTERVAL_US, HDA_DSP_RESET_TIMEOUT_US); + /* Continue to disable other interrupts when error happens */ + if (ret < 0) + dev_err(sdev->dev, "failed to disable Host IPC and SoundWire\n"); + + /* Set Host IPC interrupt disable */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE, + MTL_DSP_REG_HfHIPCIE_IE_MASK, 0); + + /* check if operation was successful */ + host_ipc = MTL_DSP_REG_HfHIPCIE_IE_MASK; + hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE); + ret1 = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfHIPCIE, hipcie, + (hipcie & host_ipc) == 0, + HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret1 < 0) { + dev_err(sdev->dev, "failed to set Host IPC interrupt disable\n"); + if (!ret) + ret = ret1; + } + + /* Set SoundWire IPC interrupt disable */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE, + MTL_DSP_REG_HfSNDWIE_IE_MASK, 0); + host_ipc = MTL_DSP_REG_HfSNDWIE_IE_MASK; + hipcie = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE); + ret1 = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP_REG_HfSNDWIE, hipcie, + (hipcie & host_ipc) == 0, + HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret1 < 0) { + dev_err(sdev->dev, "failed to set SoundWire IPC interrupt disable\n"); + if (!ret) + ret = ret1; + } + + return ret; +} + +/* pre fw run operations */ +static int mtl_dsp_pre_fw_run(struct snd_sof_dev *sdev) +{ + u32 dsphfpwrsts; + u32 dsphfdsscs; + u32 cpa; + u32 pgs; + int ret; + + /* Set the DSP subsystem power on */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFDSSCS, + MTL_HFDSSCS_SPA_MASK, MTL_HFDSSCS_SPA_MASK); + + /* Wait for unstable CPA read (1 then 0 then 1) just after setting SPA bit */ + usleep_range(1000, 1010); + + /* poll with timeout to check if operation successful */ + cpa = MTL_HFDSSCS_CPA_MASK; + dsphfdsscs = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFDSSCS); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_HFDSSCS, dsphfdsscs, + (dsphfdsscs & cpa) == cpa, HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) { + dev_err(sdev->dev, "failed to enable DSP subsystem\n"); + return ret; + } + + /* Power up gated-DSP-0 domain in order to access the DSP shim register block. */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFPWRCTL, + MTL_HFPWRCTL_WPDSPHPXPG, MTL_HFPWRCTL_WPDSPHPXPG); + + usleep_range(1000, 1010); + + /* poll with timeout to check if operation successful */ + pgs = MTL_HFPWRSTS_DSPHPXPGS_MASK; + dsphfpwrsts = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFPWRSTS); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_HFPWRSTS, dsphfpwrsts, + (dsphfpwrsts & pgs) == pgs, + HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) + dev_err(sdev->dev, "failed to power up gated DSP domain\n"); + + /* make sure SoundWire is not power-gated */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_HDA_BAR, MTL_HFPWRCTL, + MTL_HfPWRCTL_WPIOXPG(1), MTL_HfPWRCTL_WPIOXPG(1)); + return ret; +} + +static int mtl_dsp_post_fw_run(struct snd_sof_dev *sdev) +{ + int ret; + + if (sdev->first_boot) { + struct sof_intel_hda_dev *hdev = sdev->pdata->hw_pdata; + + ret = hda_sdw_startup(sdev); + if (ret < 0) { + dev_err(sdev->dev, "could not startup SoundWire links\n"); + return ret; + } + + /* Check if IMR boot is usable */ + if (!sof_debug_check_flag(SOF_DBG_IGNORE_D3_PERSISTENT)) + hdev->imrboot_supported = true; + } + + hda_sdw_int_enable(sdev, true); + return 0; +} + +static void mtl_dsp_dump(struct snd_sof_dev *sdev, u32 flags) +{ + char *level = (flags & SOF_DBG_DUMP_OPTIONAL) ? KERN_DEBUG : KERN_ERR; + u32 romdbgsts; + u32 romdbgerr; + u32 fwsts; + u32 fwlec; + + fwsts = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_ROM_STS); + fwlec = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_ROM_ERROR); + romdbgsts = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFFLGPXQWY); + romdbgerr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFFLGPXQWY_ERROR); + + dev_err(sdev->dev, "ROM status: %#x, ROM error: %#x\n", fwsts, fwlec); + dev_err(sdev->dev, "ROM debug status: %#x, ROM debug error: %#x\n", romdbgsts, + romdbgerr); + romdbgsts = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFFLGPXQWY + 0x8 * 3); + dev_printk(level, sdev->dev, "ROM feature bit%s enabled\n", + romdbgsts & BIT(24) ? "" : " not"); +} + +static bool mtl_dsp_primary_core_is_enabled(struct snd_sof_dev *sdev) +{ + int val; + + val = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE); + if (val != U32_MAX && val & MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK) + return true; + + return false; +} + +static int mtl_dsp_core_power_up(struct snd_sof_dev *sdev, int core) +{ + unsigned int cpa; + u32 dspcxctl; + int ret; + + /* Only the primary core can be powered up by the host */ + if (core != SOF_DSP_PRIMARY_CORE || mtl_dsp_primary_core_is_enabled(sdev)) + return 0; + + /* Program the owner of the IP & shim registers (10: Host CPU) */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE, + MTL_DSP2CXCTL_PRIMARY_CORE_OSEL, + 0x2 << MTL_DSP2CXCTL_PRIMARY_CORE_OSEL_SHIFT); + + /* enable SPA bit */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE, + MTL_DSP2CXCTL_PRIMARY_CORE_SPA_MASK, + MTL_DSP2CXCTL_PRIMARY_CORE_SPA_MASK); + + /* Wait for unstable CPA read (1 then 0 then 1) just after setting SPA bit */ + usleep_range(1000, 1010); + + /* poll with timeout to check if operation successful */ + cpa = MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK; + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE, dspcxctl, + (dspcxctl & cpa) == cpa, HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) { + dev_err(sdev->dev, "%s: timeout on MTL_DSP2CXCTL_PRIMARY_CORE read\n", + __func__); + return ret; + } + + /* did core power up ? */ + dspcxctl = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE); + if ((dspcxctl & MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK) + != MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK) { + dev_err(sdev->dev, "power up core failed core %d adspcs %#x\n", + core, dspcxctl); + ret = -EIO; + } + + return ret; +} + +static int mtl_dsp_core_power_down(struct snd_sof_dev *sdev, int core) +{ + u32 dspcxctl; + int ret; + + /* Only the primary core can be powered down by the host */ + if (core != SOF_DSP_PRIMARY_CORE || !mtl_dsp_primary_core_is_enabled(sdev)) + return 0; + + /* disable SPA bit */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE, + MTL_DSP2CXCTL_PRIMARY_CORE_SPA_MASK, 0); + + /* Wait for unstable CPA read (1 then 0 then 1) just after setting SPA bit */ + usleep_range(1000, 1010); + + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_DSP2CXCTL_PRIMARY_CORE, dspcxctl, + !(dspcxctl & MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK), + HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_PD_TIMEOUT * USEC_PER_MSEC); + if (ret < 0) + dev_err(sdev->dev, "failed to power down primary core\n"); + + return ret; +} + +static int mtl_dsp_cl_init(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot) +{ + struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; + const struct sof_intel_dsp_desc *chip = hda->desc; + unsigned int status; + u32 ipc_hdr; + int ret; + + /* step 1: purge FW request */ + ipc_hdr = chip->ipc_req_mask | HDA_DSP_ROM_IPC_CONTROL; + if (!imr_boot) + ipc_hdr |= HDA_DSP_ROM_IPC_PURGE_FW | ((stream_tag - 1) << 9); + + snd_sof_dsp_write(sdev, HDA_DSP_BAR, chip->ipc_req, ipc_hdr); + + /* step 2: power up primary core */ + ret = mtl_dsp_core_power_up(sdev, SOF_DSP_PRIMARY_CORE); + if (ret < 0) { + if (hda->boot_iteration == HDA_FW_BOOT_ATTEMPTS) + dev_err(sdev->dev, "dsp core 0/1 power up failed\n"); + goto err; + } + + dev_dbg(sdev->dev, "Primary core power up successful\n"); + + /* step 3: wait for IPC DONE bit from ROM */ + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, chip->ipc_ack, status, + ((status & chip->ipc_ack_mask) == chip->ipc_ack_mask), + HDA_DSP_REG_POLL_INTERVAL_US, MTL_DSP_PURGE_TIMEOUT_US); + if (ret < 0) { + if (hda->boot_iteration == HDA_FW_BOOT_ATTEMPTS) + dev_err(sdev->dev, "timeout waiting for purge IPC done\n"); + goto err; + } + + /* set DONE bit to clear the reply IPC message */ + snd_sof_dsp_update_bits_forced(sdev, HDA_DSP_BAR, chip->ipc_ack, chip->ipc_ack_mask, + chip->ipc_ack_mask); + + /* step 4: enable interrupts */ + ret = mtl_enable_interrupts(sdev); + if (ret < 0) { + if (hda->boot_iteration == HDA_FW_BOOT_ATTEMPTS) + dev_err(sdev->dev, "%s: failed to enable interrupts\n", __func__); + goto err; + } + + mtl_enable_ipc_interrupts(sdev); + + /* + * ACE workaround: don't wait for ROM INIT. + * The platform cannot catch ROM_INIT_DONE because of a very short + * timing window. Follow the recommendations and skip this part. + */ + + return 0; + +err: + snd_sof_dsp_dbg_dump(sdev, "MTL DSP init fail", 0); + mtl_dsp_core_power_down(sdev, SOF_DSP_PRIMARY_CORE); + return ret; +} + +static irqreturn_t mtl_ipc_irq_thread(int irq, void *context) +{ + struct sof_ipc4_msg notification_data = {{ 0 }}; + struct snd_sof_dev *sdev = context; + bool ipc_irq = false; + u32 hipcida; + u32 hipctdr; + + hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXIDA); + + /* reply message from DSP */ + if (hipcida & MTL_DSP_REG_HFIPCXIDA_DONE) { + /* DSP received the message */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXCTL, + MTL_DSP_REG_HFIPCXCTL_DONE, 0); + + mtl_ipc_dsp_done(sdev); + + ipc_irq = true; + } + + hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXTDR); + if (hipctdr & MTL_DSP_REG_HFIPCXTDR_BUSY) { + /* Message from DSP (reply or notification) */ + u32 extension = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXTDDY); + u32 primary = hipctdr & MTL_DSP_REG_HFIPCXTDR_MSG_MASK; + + /* + * ACE fw sends a new fw ipc message to host to + * notify the status of the last host ipc message + */ + if (primary & SOF_IPC4_MSG_DIR_MASK) { + /* Reply received */ + struct sof_ipc4_msg *data = sdev->ipc->msg.reply_data; + + data->primary = primary; + data->extension = extension; + + spin_lock_irq(&sdev->ipc_lock); + + snd_sof_ipc_get_reply(sdev); + snd_sof_ipc_reply(sdev, data->primary); + + spin_unlock_irq(&sdev->ipc_lock); + } else { + /* Notification received */ + notification_data.primary = primary; + notification_data.extension = extension; + + sdev->ipc->msg.rx_data = ¬ification_data; + snd_sof_ipc_msgs_rx(sdev); + sdev->ipc->msg.rx_data = NULL; + } + + mtl_ipc_host_done(sdev); + + ipc_irq = true; + } + + if (!ipc_irq) { + /* This interrupt is not shared so no need to return IRQ_NONE. */ + dev_dbg_ratelimited(sdev->dev, "%s nothing to do in IPC IRQ thread\n", + __func__); + } + + return IRQ_HANDLED; +} + +static int mtl_dsp_ipc_get_mailbox_offset(struct snd_sof_dev *sdev) +{ + return MTL_DSP_MBOX_UPLINK_OFFSET; +} + +static int mtl_dsp_ipc_get_window_offset(struct snd_sof_dev *sdev, u32 id) +{ + return MTL_SRAM_WINDOW_OFFSET(id); +} + +static int mtl_suspend(struct snd_sof_dev *sdev, bool runtime_suspend) +{ + struct sof_intel_hda_dev *hda = sdev->pdata->hw_pdata; + const struct sof_intel_dsp_desc *chip = hda->desc; +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) + struct hdac_bus *bus = sof_to_bus(sdev); +#endif + u32 dsphfdsscs; + u32 cpa; + int ret; + int i; + + mtl_disable_ipc_interrupts(sdev); + ret = mtl_disable_interrupts(sdev); + if (ret) + return ret; + +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) + hda_codec_jack_wake_enable(sdev, runtime_suspend); + /* power down all hda link */ + snd_hdac_ext_bus_link_power_down_all(bus); +#endif + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFPWRCTL, + MTL_HFPWRCTL_WPDSPHPXPG, 0); + + /* Set the DSP subsystem power down */ + snd_sof_dsp_update_bits(sdev, HDA_DSP_BAR, MTL_HFDSSCS, + MTL_HFDSSCS_SPA_MASK, 0); + + /* Wait for unstable CPA read (1 then 0 then 1) just after setting SPA bit */ + usleep_range(1000, 1010); + + /* poll with timeout to check if operation successful */ + cpa = MTL_HFDSSCS_CPA_MASK; + dsphfdsscs = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_HFDSSCS); + ret = snd_sof_dsp_read_poll_timeout(sdev, HDA_DSP_BAR, MTL_HFDSSCS, dsphfdsscs, + (dsphfdsscs & cpa) == 0, HDA_DSP_REG_POLL_INTERVAL_US, + HDA_DSP_RESET_TIMEOUT_US); + if (ret < 0) + dev_err(sdev->dev, "failed to disable DSP subsystem\n"); + + /* reset ref counts for all cores */ + for (i = 0; i < chip->cores_num; i++) + sdev->dsp_core_ref_count[i] = 0; + + /* TODO: need to reset controller? */ + + /* display codec can be powered off after link reset */ + hda_codec_i915_display_power(sdev, false); + + return 0; +} + +static int mtl_dsp_suspend(struct snd_sof_dev *sdev, u32 target_state) +{ + const struct sof_dsp_power_state target_dsp_state = { + .state = target_state, + .substate = target_state == SOF_DSP_PM_D0 ? + SOF_HDA_DSP_PM_D0I3 : 0, + }; + int ret; + + ret = mtl_suspend(sdev, false); + if (ret < 0) + return ret; + + return snd_sof_dsp_set_power_state(sdev, &target_dsp_state); +} + +static int mtl_dsp_runtime_suspend(struct snd_sof_dev *sdev) +{ + const struct sof_dsp_power_state target_state = { + .state = SOF_DSP_PM_D3, + }; + int ret; + + ret = mtl_suspend(sdev, true); + if (ret < 0) + return ret; + + return snd_sof_dsp_set_power_state(sdev, &target_state); +} + +static int mtl_resume(struct snd_sof_dev *sdev, bool runtime_resume) +{ +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) + struct hdac_bus *bus = sof_to_bus(sdev); + struct hdac_ext_link *hlink = NULL; +#endif + + /* display codec must be powered before link reset */ + hda_codec_i915_display_power(sdev, true); + +#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) + /* check jack status */ + if (runtime_resume) { + hda_codec_jack_wake_enable(sdev, false); + if (sdev->system_suspend_target == SOF_SUSPEND_NONE) + hda_codec_jack_check(sdev); + } + + /* turn off the links that were off before suspend */ + list_for_each_entry(hlink, &bus->hlink_list, list) { + if (!hlink->ref_count) + snd_hdac_ext_bus_link_power_down(hlink); + } + + /* check dma status and clean up CORB/RIRB buffers */ + if (!bus->cmd_dma_state) + snd_hdac_bus_stop_cmd_io(bus); +#endif + + return 0; +} + +static int mtl_dsp_resume(struct snd_sof_dev *sdev) +{ + const struct sof_dsp_power_state target_state = { + .state = SOF_DSP_PM_D0, + .substate = SOF_HDA_DSP_PM_D0I0, + }; + int ret; + + ret = mtl_resume(sdev, false); + if (ret < 0) + return ret; + + return snd_sof_dsp_set_power_state(sdev, &target_state); +} + +static int mtl_dsp_runtime_resume(struct snd_sof_dev *sdev) +{ + const struct sof_dsp_power_state target_state = { + .state = SOF_DSP_PM_D0, + }; + int ret; + + ret = mtl_resume(sdev, true); + if (ret < 0) + return ret; + + return snd_sof_dsp_set_power_state(sdev, &target_state); +} + +static void mtl_ipc_dump(struct snd_sof_dev *sdev) +{ + u32 hipcctl; + u32 hipcida; + u32 hipctdr; + + /* read IPC status */ + hipcida = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXIDA); + hipcctl = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXCTL); + hipctdr = snd_sof_dsp_read(sdev, HDA_DSP_BAR, MTL_DSP_REG_HFIPCXTDR); + + /* dump the IPC regs */ + /* TODO: parse the raw msg */ + dev_err(sdev->dev, + "error: host status 0x%8.8x dsp status 0x%8.8x mask 0x%8.8x\n", + hipcida, hipctdr, hipcctl); +} + +/* Meteorlake ops */ +struct snd_sof_dsp_ops sof_mtl_ops; +EXPORT_SYMBOL_NS(sof_mtl_ops, SND_SOC_SOF_INTEL_HDA_COMMON); + +int sof_mtl_ops_init(struct snd_sof_dev *sdev) +{ + struct sof_ipc4_fw_data *ipc4_data; + + /* common defaults */ + memcpy(&sof_mtl_ops, &sof_hda_common_ops, sizeof(struct snd_sof_dsp_ops)); + + /* shutdown */ + sof_mtl_ops.shutdown = hda_dsp_shutdown; + + /* doorbell */ + sof_mtl_ops.irq_thread = mtl_ipc_irq_thread; + + /* ipc */ + sof_mtl_ops.send_msg = mtl_ipc_send_msg; + sof_mtl_ops.get_mailbox_offset = mtl_dsp_ipc_get_mailbox_offset; + sof_mtl_ops.get_window_offset = mtl_dsp_ipc_get_window_offset; + + /* debug */ + sof_mtl_ops.debug_map = mtl_dsp_debugfs; + sof_mtl_ops.debug_map_count = ARRAY_SIZE(mtl_dsp_debugfs); + sof_mtl_ops.dbg_dump = mtl_dsp_dump; + sof_mtl_ops.ipc_dump = mtl_ipc_dump; + + /* pre/post fw run */ + sof_mtl_ops.pre_fw_run = mtl_dsp_pre_fw_run; + sof_mtl_ops.post_fw_run = mtl_dsp_post_fw_run; + + /* parse platform specific extended manifest */ + sof_mtl_ops.parse_platform_ext_manifest = NULL; + + /* dsp core get/put */ + /* TODO: add core_get and core_put */ + + /* PM */ + sof_mtl_ops.suspend = mtl_dsp_suspend; + sof_mtl_ops.resume = mtl_dsp_resume; + sof_mtl_ops.runtime_suspend = mtl_dsp_runtime_suspend; + sof_mtl_ops.runtime_resume = mtl_dsp_runtime_resume; + + sdev->private = devm_kzalloc(sdev->dev, sizeof(struct sof_ipc4_fw_data), GFP_KERNEL); + if (!sdev->private) + return -ENOMEM; + + ipc4_data = sdev->private; + ipc4_data->manifest_fw_hdr_offset = SOF_MAN4_FW_HDR_OFFSET; + + /* set DAI ops */ + hda_set_dai_drv_ops(sdev, &sof_mtl_ops); + + return 0; +}; +EXPORT_SYMBOL_NS(sof_mtl_ops_init, SND_SOC_SOF_INTEL_HDA_COMMON); + +const struct sof_intel_dsp_desc mtl_chip_info = { + .cores_num = 3, + .init_core_mask = BIT(0), + .host_managed_cores_mask = BIT(0), + .ipc_req = MTL_DSP_REG_HFIPCXIDR, + .ipc_req_mask = MTL_DSP_REG_HFIPCXIDR_BUSY, + .ipc_ack = MTL_DSP_REG_HFIPCXIDA, + .ipc_ack_mask = MTL_DSP_REG_HFIPCXIDA_DONE, + .ipc_ctl = MTL_DSP_REG_HFIPCXCTL, + .rom_status_reg = MTL_DSP_ROM_STS, + .rom_init_timeout = 300, + .ssp_count = ICL_SSP_COUNT, + .ssp_base_offset = CNL_SSP_BASE_OFFSET, + .sdw_shim_base = SDW_SHIM_BASE_ACE, + .sdw_alh_base = SDW_ALH_BASE_ACE, + .check_sdw_irq = mtl_dsp_check_sdw_irq, + .check_ipc_irq = mtl_dsp_check_ipc_irq, + .cl_init = mtl_dsp_cl_init, + .hw_ip_version = SOF_INTEL_ACE_1_0, +}; +EXPORT_SYMBOL_NS(mtl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); --- linux-5.19.0.orig/sound/soc/sof/intel/mtl.h +++ linux-5.19.0/sound/soc/sof/intel/mtl.h @@ -0,0 +1,76 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) */ +/* + * This file is provided under a dual BSD/GPLv2 license. When using or + * redistributing this file, you may do so under either license. + * + * Copyright(c) 2020-2022 Intel Corporation. All rights reserved. + */ + +/* DSP Registers */ +#define MTL_HFDSSCS 0x1000 +#define MTL_HFDSSCS_SPA_MASK BIT(16) +#define MTL_HFDSSCS_CPA_MASK BIT(24) +#define MTL_HFSNDWIE 0x114C +#define MTL_HFPWRCTL 0x1D18 +#define MTL_HfPWRCTL_WPIOXPG(x) BIT((x) + 8) +#define MTL_HFPWRCTL_WPDSPHPXPG BIT(0) +#define MTL_HFPWRSTS 0x1D1C +#define MTL_HFPWRSTS_DSPHPXPGS_MASK BIT(0) +#define MTL_HFINTIPPTR 0x1108 +#define MTL_IRQ_INTEN_L_HOST_IPC_MASK BIT(0) +#define MTL_IRQ_INTEN_L_SOUNDWIRE_MASK BIT(6) +#define MTL_HFINTIPPTR_PTR_MASK GENMASK(20, 0) + +#define MTL_DSP2CXCAP_PRIMARY_CORE 0x178D00 +#define MTL_DSP2CXCTL_PRIMARY_CORE 0x178D04 +#define MTL_DSP2CXCTL_PRIMARY_CORE_SPA_MASK BIT(0) +#define MTL_DSP2CXCTL_PRIMARY_CORE_CPA_MASK BIT(8) +#define MTL_DSP2CXCTL_PRIMARY_CORE_OSEL GENMASK(25, 24) +#define MTL_DSP2CXCTL_PRIMARY_CORE_OSEL_SHIFT 24 + +/* IPC Registers */ +#define MTL_DSP_REG_HFIPCXTDR 0x73200 +#define MTL_DSP_REG_HFIPCXTDR_BUSY BIT(31) +#define MTL_DSP_REG_HFIPCXTDR_MSG_MASK GENMASK(30, 0) +#define MTL_DSP_REG_HFIPCXTDA 0x73204 +#define MTL_DSP_REG_HFIPCXTDA_BUSY BIT(31) +#define MTL_DSP_REG_HFIPCXIDR 0x73210 +#define MTL_DSP_REG_HFIPCXIDR_BUSY BIT(31) +#define MTL_DSP_REG_HFIPCXIDR_MSG_MASK GENMASK(30, 0) +#define MTL_DSP_REG_HFIPCXIDA 0x73214 +#define MTL_DSP_REG_HFIPCXIDA_DONE BIT(31) +#define MTL_DSP_REG_HFIPCXIDA_MSG_MASK GENMASK(30, 0) +#define MTL_DSP_REG_HFIPCXCTL 0x73228 +#define MTL_DSP_REG_HFIPCXCTL_BUSY BIT(0) +#define MTL_DSP_REG_HFIPCXCTL_DONE BIT(1) +#define MTL_DSP_REG_HFIPCXTDDY 0x73300 +#define MTL_DSP_REG_HFIPCXIDDY 0x73380 +#define MTL_DSP_REG_HfHIPCIE 0x1140 +#define MTL_DSP_REG_HfHIPCIE_IE_MASK BIT(0) +#define MTL_DSP_REG_HfSNDWIE 0x114C +#define MTL_DSP_REG_HfSNDWIE_IE_MASK GENMASK(3, 0) + +#define MTL_DSP_IRQSTS 0x20 +#define MTL_DSP_IRQSTS_IPC BIT(0) +#define MTL_DSP_IRQSTS_SDW BIT(6) + +#define MTL_DSP_PURGE_TIMEOUT_US 20000000 /* 20s */ +#define MTL_DSP_REG_POLL_INTERVAL_US 10 /* 10 us */ + +/* Memory windows */ +#define MTL_SRAM_WINDOW_OFFSET(x) (0x180000 + 0x8000 * (x)) + +#define MTL_DSP_MBOX_UPLINK_OFFSET (MTL_SRAM_WINDOW_OFFSET(0) + 0x1000) +#define MTL_DSP_MBOX_UPLINK_SIZE 0x1000 +#define MTL_DSP_MBOX_DOWNLINK_OFFSET MTL_SRAM_WINDOW_OFFSET(1) +#define MTL_DSP_MBOX_DOWNLINK_SIZE 0x1000 + +/* FW registers */ +#define MTL_DSP_ROM_STS MTL_SRAM_WINDOW_OFFSET(0) /* ROM status */ +#define MTL_DSP_ROM_ERROR (MTL_SRAM_WINDOW_OFFSET(0) + 0x4) /* ROM error code */ + +#define MTL_DSP_REG_HFFLGPXQWY 0x163200 /* ROM debug status */ +#define MTL_DSP_REG_HFFLGPXQWY_ERROR 0x163204 /* ROM debug error code */ +#define MTL_DSP_REG_HfIMRIS1 0x162088 +#define MTL_DSP_REG_HfIMRIS1_IU_MASK BIT(0) + --- linux-5.19.0.orig/sound/soc/sof/intel/pci-mtl.c +++ linux-5.19.0/sound/soc/sof/intel/pci-mtl.c @@ -0,0 +1,71 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-3-Clause) +// +// This file is provided under a dual BSD/GPLv2 license. When using or +// redistributing this file, you may do so under either license. +// +// Copyright(c) 2018-2022 Intel Corporation. All rights reserved. +// +// Author: Ranjani Sridharan +// + +#include +#include +#include +#include +#include +#include "../ops.h" +#include "../sof-pci-dev.h" + +/* platform specific devices */ +#include "hda.h" +#include "mtl.h" + +static const struct sof_dev_desc mtl_desc = { + .use_acpi_target_states = true, + .machines = snd_soc_acpi_intel_mtl_machines, + .alt_machines = snd_soc_acpi_intel_mtl_sdw_machines, + .resindex_lpe_base = 0, + .resindex_pcicfg_base = -1, + .resindex_imr_base = -1, + .irqindex_host_ipc = -1, + .chip_info = &mtl_chip_info, + .ipc_supported_mask = BIT(SOF_INTEL_IPC4), + .ipc_default = SOF_INTEL_IPC4, + .default_fw_path = { + [SOF_INTEL_IPC4] = "intel/sof-ipc4/mtl", + }, + .default_tplg_path = { + [SOF_INTEL_IPC4] = "intel/sof-ace-tplg", + }, + .default_fw_filename = { + [SOF_INTEL_IPC4] = "dsp_basefw.bin", + }, + .nocodec_tplg_filename = "sof-mtl-nocodec.tplg", + .ops = &sof_mtl_ops, + .ops_init = sof_mtl_ops_init, +}; + +/* PCI IDs */ +static const struct pci_device_id sof_pci_ids[] = { + { PCI_DEVICE(0x8086, 0x7E28), /* MTL */ + .driver_data = (unsigned long)&mtl_desc}, + { 0, } +}; +MODULE_DEVICE_TABLE(pci, sof_pci_ids); + +/* pci_driver definition */ +static struct pci_driver snd_sof_pci_intel_mtl_driver = { + .name = "sof-audio-pci-intel-mtl", + .id_table = sof_pci_ids, + .probe = hda_pci_intel_probe, + .remove = sof_pci_remove, + .shutdown = sof_pci_shutdown, + .driver = { + .pm = &sof_pci_pm, + }, +}; +module_pci_driver(snd_sof_pci_intel_mtl_driver); + +MODULE_LICENSE("Dual BSD/GPL"); +MODULE_IMPORT_NS(SND_SOC_SOF_INTEL_HDA_COMMON); +MODULE_IMPORT_NS(SND_SOC_SOF_PCI_DEV); --- linux-5.19.0.orig/sound/soc/sof/intel/pci-tgl.c +++ linux-5.19.0/sound/soc/sof/intel/pci-tgl.c @@ -158,6 +158,62 @@ .ops_init = sof_tgl_ops_init, }; +static const struct sof_dev_desc rpls_desc = { + .machines = snd_soc_acpi_intel_rpl_machines, + .alt_machines = snd_soc_acpi_intel_rpl_sdw_machines, + .use_acpi_target_states = true, + .resindex_lpe_base = 0, + .resindex_pcicfg_base = -1, + .resindex_imr_base = -1, + .irqindex_host_ipc = -1, + .chip_info = &adls_chip_info, + .ipc_supported_mask = BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4), + .ipc_default = SOF_IPC, + .default_fw_path = { + [SOF_IPC] = "intel/sof", + [SOF_INTEL_IPC4] = "intel/avs/rpl-s", + }, + .default_tplg_path = { + [SOF_IPC] = "intel/sof-tplg", + [SOF_INTEL_IPC4] = "intel/avs-tplg", + }, + .default_fw_filename = { + [SOF_IPC] = "sof-rpl-s.ri", + [SOF_INTEL_IPC4] = "dsp_basefw.bin", + }, + .nocodec_tplg_filename = "sof-rpl-nocodec.tplg", + .ops = &sof_tgl_ops, + .ops_init = sof_tgl_ops_init, +}; + +static const struct sof_dev_desc rpl_desc = { + .machines = snd_soc_acpi_intel_rpl_machines, + .alt_machines = snd_soc_acpi_intel_rpl_sdw_machines, + .use_acpi_target_states = true, + .resindex_lpe_base = 0, + .resindex_pcicfg_base = -1, + .resindex_imr_base = -1, + .irqindex_host_ipc = -1, + .chip_info = &tgl_chip_info, + .ipc_supported_mask = BIT(SOF_IPC) | BIT(SOF_INTEL_IPC4), + .ipc_default = SOF_IPC, + .default_fw_path = { + [SOF_IPC] = "intel/sof", + [SOF_INTEL_IPC4] = "intel/avs/rpl", + }, + .default_tplg_path = { + [SOF_IPC] = "intel/sof-tplg", + [SOF_INTEL_IPC4] = "intel/avs-tplg", + }, + .default_fw_filename = { + [SOF_IPC] = "sof-rpl.ri", + [SOF_INTEL_IPC4] = "dsp_basefw.bin", + }, + .nocodec_tplg_filename = "sof-rpl-nocodec.tplg", + .ops = &sof_tgl_ops, + .ops_init = sof_tgl_ops_init, +}; + /* PCI IDs */ static const struct pci_device_id sof_pci_ids[] = { { PCI_DEVICE(0x8086, 0xa0c8), /* TGL-LP */ @@ -171,7 +227,7 @@ { PCI_DEVICE(0x8086, 0x7ad0), /* ADL-S */ .driver_data = (unsigned long)&adls_desc}, { PCI_DEVICE(0x8086, 0x7a50), /* RPL-S */ - .driver_data = (unsigned long)&adls_desc}, + .driver_data = (unsigned long)&rpls_desc}, { PCI_DEVICE(0x8086, 0x51c8), /* ADL-P */ .driver_data = (unsigned long)&adl_desc}, { PCI_DEVICE(0x8086, 0x51cd), /* ADL-P */ @@ -179,9 +235,9 @@ { PCI_DEVICE(0x8086, 0x51c9), /* ADL-PS */ .driver_data = (unsigned long)&adl_desc}, { PCI_DEVICE(0x8086, 0x51ca), /* RPL-P */ - .driver_data = (unsigned long)&adl_desc}, + .driver_data = (unsigned long)&rpl_desc}, { PCI_DEVICE(0x8086, 0x51cb), /* RPL-P */ - .driver_data = (unsigned long)&adl_desc}, + .driver_data = (unsigned long)&rpl_desc}, { PCI_DEVICE(0x8086, 0x51cc), /* ADL-M */ .driver_data = (unsigned long)&adl_desc}, { PCI_DEVICE(0x8086, 0x54c8), /* ADL-N */ --- linux-5.19.0.orig/sound/soc/sof/intel/shim.h +++ linux-5.19.0/sound/soc/sof/intel/shim.h @@ -20,6 +20,7 @@ SOF_INTEL_CAVS_1_8, /* CannonLake, CometLake, CoffeeLake */ SOF_INTEL_CAVS_2_0, /* IceLake, JasperLake */ SOF_INTEL_CAVS_2_5, /* TigerLake, AlderLake */ + SOF_INTEL_ACE_1_0, /* MeteorLake */ }; /* @@ -185,6 +186,7 @@ enum sof_intel_hw_ip_version hw_ip_version; bool (*check_sdw_irq)(struct snd_sof_dev *sdev); bool (*check_ipc_irq)(struct snd_sof_dev *sdev); + int (*cl_init)(struct snd_sof_dev *sdev, int stream_tag, bool imr_boot); }; extern struct snd_sof_dsp_ops sof_tng_ops; --- linux-5.19.0.orig/sound/soc/sof/intel/tgl.c +++ linux-5.19.0/sound/soc/sof/intel/tgl.c @@ -137,6 +137,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_5, }; EXPORT_SYMBOL_NS(tgl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); @@ -159,6 +160,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_5, }; EXPORT_SYMBOL_NS(tglh_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); @@ -181,6 +183,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_5, }; EXPORT_SYMBOL_NS(ehl_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); @@ -203,6 +206,7 @@ .sdw_alh_base = SDW_ALH_BASE, .check_sdw_irq = hda_common_check_sdw_irq, .check_ipc_irq = hda_dsp_check_ipc_irq, + .cl_init = cl_dsp_init, .hw_ip_version = SOF_INTEL_CAVS_2_5, }; EXPORT_SYMBOL_NS(adls_chip_info, SND_SOC_SOF_INTEL_HDA_COMMON); --- linux-5.19.0.orig/sound/soc/sof/ipc3-topology.c +++ linux-5.19.0/sound/soc/sof/ipc3-topology.c @@ -1233,6 +1233,7 @@ static int sof_link_ssp_load(struct snd_soc_component *scomp, struct snd_sof_dai_link *slink, struct sof_ipc_dai_config *config, struct snd_sof_dai *dai) { + struct snd_sof_dev *sdev = snd_soc_component_get_drvdata(scomp); struct snd_soc_tplg_hw_config *hw_config = slink->hw_configs; struct sof_dai_private_data *private = dai->private; u32 size = sizeof(*config); @@ -1257,6 +1258,12 @@ config[i].hdr.size = size; + if (sdev->mclk_id_override) { + dev_dbg(scomp->dev, "tplg: overriding topology mclk_id %d by quirk %d\n", + config[i].ssp.mclk_id, sdev->mclk_id_quirk); + config[i].ssp.mclk_id = sdev->mclk_id_quirk; + } + /* copy differentiating hw configs to ipc structs */ config[i].ssp.mclk_rate = le32_to_cpu(hw_config[i].mclk_rate); config[i].ssp.bclk_rate = le32_to_cpu(hw_config[i].bclk_rate); @@ -1628,6 +1635,7 @@ return 0; err: kfree(scontrol->ipc_control_data); + scontrol->ipc_control_data = NULL; return ret; } @@ -2218,6 +2226,7 @@ struct sof_ipc_fw_version *v = &sdev->fw_ready.version; struct snd_sof_widget *swidget; struct snd_sof_route *sroute; + bool dyn_widgets = false; int ret; /* @@ -2227,12 +2236,14 @@ * topology loading the sound card unavailable to open PCMs. */ list_for_each_entry(swidget, &sdev->widget_list, list) { - if (swidget->dynamic_pipeline_widget) + if (swidget->dynamic_pipeline_widget) { + dyn_widgets = true; continue; + } - /* Do not free widgets for static pipelines with FW ABI older than 3.19 */ + /* Do not free widgets for static pipelines with FW older than SOF2.2 */ if (!verify && !swidget->dynamic_pipeline_widget && - v->abi_version < SOF_ABI_VER(3, 19, 0)) { + SOF_FW_VER(v->major, v->minor, v->micro) < SOF_FW_VER(2, 2, 0)) { swidget->use_count = 0; swidget->complete = 0; continue; @@ -2246,9 +2257,11 @@ /* * Tear down all pipelines associated with PCMs that did not get suspended * and unset the prepare flag so that they can be set up again during resume. - * Skip this step for older firmware. + * Skip this step for older firmware unless topology has any + * dynamic pipeline (in which case the step is mandatory). */ - if (!verify && v->abi_version >= SOF_ABI_VER(3, 19, 0)) { + if (!verify && (dyn_widgets || SOF_FW_VER(v->major, v->minor, v->micro) >= + SOF_FW_VER(2, 2, 0))) { ret = sof_tear_down_left_over_pipelines(sdev); if (ret < 0) { dev_err(sdev->dev, "failed to tear down paused pipelines\n"); --- linux-5.19.0.orig/sound/soc/sof/mediatek/mt8195/mt8195-loader.c +++ linux-5.19.0/sound/soc/sof/mediatek/mt8195/mt8195-loader.c @@ -21,7 +21,7 @@ /* pull high StatVectorSel to use AltResetVec (set bit4 to 1) */ snd_sof_dsp_update_bits(sdev, DSP_REG_BAR, DSP_RESET_SW, - DSP_RESET_SW, DSP_RESET_SW); + STATVECTOR_SEL, STATVECTOR_SEL); /* toggle DReset & BReset */ /* pull high DReset & BReset */ --- linux-5.19.0.orig/sound/soc/sof/mediatek/mt8195/mt8195.c +++ linux-5.19.0/sound/soc/sof/mediatek/mt8195/mt8195.c @@ -634,4 +634,5 @@ module_platform_driver(snd_sof_of_mt8195_driver); MODULE_IMPORT_NS(SND_SOC_SOF_XTENSA); +MODULE_IMPORT_NS(SND_SOC_SOF_MTK_COMMON); MODULE_LICENSE("Dual BSD/GPL"); --- linux-5.19.0.orig/sound/soc/sof/sof-client-ipc-msg-injector.c +++ linux-5.19.0/sound/soc/sof/sof-client-ipc-msg-injector.c @@ -181,7 +181,7 @@ struct sof_client_dev *cdev = file->private_data; struct sof_msg_inject_priv *priv = cdev->data; struct sof_ipc4_msg *ipc4_msg = priv->tx_buffer; - ssize_t size; + size_t data_size; int ret; if (*ppos) @@ -191,25 +191,20 @@ return -EINVAL; /* copy the header first */ - size = simple_write_to_buffer(&ipc4_msg->header_u64, - sizeof(ipc4_msg->header_u64), - ppos, buffer, count); - if (size < 0) - return size; - if (size != sizeof(ipc4_msg->header_u64)) + if (copy_from_user(&ipc4_msg->header_u64, buffer, + sizeof(ipc4_msg->header_u64))) return -EFAULT; - count -= size; + data_size = count - sizeof(ipc4_msg->header_u64); + if (data_size > priv->max_msg_size) + return -EINVAL; + /* Copy the payload */ - size = simple_write_to_buffer(ipc4_msg->data_ptr, - priv->max_msg_size, ppos, buffer, - count); - if (size < 0) - return size; - if (size != count) + if (copy_from_user(ipc4_msg->data_ptr, + buffer + sizeof(ipc4_msg->header_u64), data_size)) return -EFAULT; - ipc4_msg->data_size = count; + ipc4_msg->data_size = data_size; /* Initialize the reply storage */ ipc4_msg = priv->rx_buffer; @@ -221,9 +216,9 @@ /* return the error code if test failed */ if (ret < 0) - size = ret; + return ret; - return size; + return count; }; static int sof_msg_inject_dfs_release(struct inode *inode, struct file *file) --- linux-5.19.0.orig/sound/soc/sof/sof-client-probes.c +++ linux-5.19.0/sound/soc/sof/sof-client-probes.c @@ -693,6 +693,10 @@ if (!sof_probes_enabled) return -ENXIO; + /* only ipc3 is supported */ + if (sof_client_get_ipc_type(cdev) != SOF_IPC) + return -ENXIO; + if (!dev->platform_data) { dev_err(dev, "missing platform data\n"); return -ENODEV; --- linux-5.19.0.orig/sound/soc/sof/sof-pci-dev.c +++ linux-5.19.0/sound/soc/sof/sof-pci-dev.c @@ -138,7 +138,7 @@ .ident = "Google Chromebooks", .callback = chromebook_use_community_key, .matches = { - DMI_MATCH(DMI_SYS_VENDOR, "Google"), + DMI_MATCH(DMI_PRODUCT_FAMILY, "Google"), } }, {}, --- linux-5.19.0.orig/sound/soc/sof/sof-priv.h +++ linux-5.19.0/sound/soc/sof/sof-priv.h @@ -378,8 +378,8 @@ /** * struct sof_ipc_pm_ops - IPC-specific PM ops - * @ctx_save: Function pointer for context save - * @ctx_restore: Function pointer for context restore + * @ctx_save: Optional function pointer for context save + * @ctx_restore: Optional function pointer for context restore */ struct sof_ipc_pm_ops { int (*ctx_save)(struct snd_sof_dev *sdev); @@ -585,6 +585,10 @@ /* to protect the ipc_rx_handler_list and dsp_state_handler_list list */ struct mutex client_event_handler_mutex; + /* quirks to override topology values */ + bool mclk_id_override; + u16 mclk_id_quirk; /* same size as in IPC3 definitions */ + void *private; /* core does not touch this */ }; --- linux-5.19.0.orig/sound/soc/sof/topology.c +++ linux-5.19.0/sound/soc/sof/topology.c @@ -1316,16 +1316,6 @@ break; } - if (sof_debug_check_flag(SOF_DBG_DISABLE_MULTICORE)) { - swidget->core = SOF_DSP_PRIMARY_CORE; - } else { - int core = sof_get_token_value(SOF_TKN_COMP_CORE_ID, swidget->tuples, - swidget->num_tuples); - - if (core >= 0) - swidget->core = core; - } - /* check token parsing reply */ if (ret < 0) { dev_err(scomp->dev, @@ -1337,6 +1327,16 @@ return ret; } + if (sof_debug_check_flag(SOF_DBG_DISABLE_MULTICORE)) { + swidget->core = SOF_DSP_PRIMARY_CORE; + } else { + int core = sof_get_token_value(SOF_TKN_COMP_CORE_ID, swidget->tuples, + swidget->num_tuples); + + if (core >= 0) + swidget->core = core; + } + /* bind widget to external event */ if (tw->event_type) { if (widget_ops[w->id].bind_event) { --- linux-5.19.0.orig/sound/soc/stm/stm32_adfsdm.c +++ linux-5.19.0/sound/soc/stm/stm32_adfsdm.c @@ -303,6 +303,11 @@ return 0; } +static void stm32_adfsdm_cleanup(void *data) +{ + iio_channel_release_all_cb(data); +} + static struct snd_soc_component_driver stm32_adfsdm_soc_platform = { .open = stm32_adfsdm_pcm_open, .close = stm32_adfsdm_pcm_close, @@ -334,8 +339,6 @@ dev_set_drvdata(&pdev->dev, priv); - pm_runtime_enable(&pdev->dev); - ret = devm_snd_soc_register_component(&pdev->dev, &stm32_adfsdm_dai_component, &priv->dai_drv, 1); @@ -351,6 +354,12 @@ if (IS_ERR(priv->iio_cb)) return PTR_ERR(priv->iio_cb); + ret = devm_add_action_or_reset(&pdev->dev, stm32_adfsdm_cleanup, priv->iio_cb); + if (ret < 0) { + dev_err(&pdev->dev, "Unable to add action\n"); + return ret; + } + component = devm_kzalloc(&pdev->dev, sizeof(*component), GFP_KERNEL); if (!component) return -ENOMEM; @@ -365,9 +374,13 @@ #endif ret = snd_soc_add_component(component, NULL, 0); - if (ret < 0) + if (ret < 0) { dev_err(&pdev->dev, "%s: Failed to register PCM platform\n", __func__); + return ret; + } + + pm_runtime_enable(&pdev->dev); return ret; } --- linux-5.19.0.orig/sound/soc/stm/stm32_i2s.c +++ linux-5.19.0/sound/soc/stm/stm32_i2s.c @@ -1135,8 +1135,6 @@ return dev_err_probe(&pdev->dev, PTR_ERR(i2s->regmap), "Regmap init error\n"); - pm_runtime_enable(&pdev->dev); - ret = snd_dmaengine_pcm_register(&pdev->dev, &stm32_i2s_pcm_config, 0); if (ret) return dev_err_probe(&pdev->dev, ret, "PCM DMA register error\n"); @@ -1179,6 +1177,8 @@ FIELD_GET(I2S_VERR_MIN_MASK, val)); } + pm_runtime_enable(&pdev->dev); + return ret; error: --- linux-5.19.0.orig/sound/soc/stm/stm32_spdifrx.c +++ linux-5.19.0/sound/soc/stm/stm32_spdifrx.c @@ -1001,8 +1001,6 @@ udelay(2); reset_control_deassert(rst); - pm_runtime_enable(&pdev->dev); - pcm_config = &stm32_spdifrx_pcm_config; ret = snd_dmaengine_pcm_register(&pdev->dev, pcm_config, 0); if (ret) @@ -1035,6 +1033,8 @@ FIELD_GET(SPDIFRX_VERR_MIN_MASK, ver)); } + pm_runtime_enable(&pdev->dev); + return ret; error: --- linux-5.19.0.orig/sound/soc/sunxi/sun4i-codec.c +++ linux-5.19.0/sound/soc/sunxi/sun4i-codec.c @@ -1253,6 +1253,9 @@ static const struct snd_soc_component_driver sun4i_codec_component = { .name = "sun4i-codec", +#ifdef CONFIG_DEBUG_FS + .debugfs_prefix = "cpu", +#endif }; #define SUN4I_CODEC_RATES SNDRV_PCM_RATE_CONTINUOUS --- linux-5.19.0.orig/sound/synth/emux/emux.c +++ linux-5.19.0/sound/synth/emux/emux.c @@ -126,15 +126,10 @@ */ int snd_emux_free(struct snd_emux *emu) { - unsigned long flags; - if (! emu) return -EINVAL; - spin_lock_irqsave(&emu->voice_lock, flags); - if (emu->timer_active) - del_timer(&emu->tlist); - spin_unlock_irqrestore(&emu->voice_lock, flags); + del_timer_sync(&emu->tlist); snd_emux_proc_free(emu); snd_emux_delete_virmidi(emu); --- linux-5.19.0.orig/sound/usb/bcd2000/bcd2000.c +++ linux-5.19.0/sound/usb/bcd2000/bcd2000.c @@ -348,7 +348,8 @@ static void bcd2000_free_usb_related_resources(struct bcd2000 *bcd2k, struct usb_interface *interface) { - /* usb_kill_urb not necessary, urb is aborted automatically */ + usb_kill_urb(bcd2k->midi_out_urb); + usb_kill_urb(bcd2k->midi_in_urb); usb_free_urb(bcd2k->midi_out_urb); usb_free_urb(bcd2k->midi_in_urb); --- linux-5.19.0.orig/sound/usb/card.c +++ linux-5.19.0/sound/usb/card.c @@ -387,6 +387,14 @@ DEVICE_NAME(0x05e1, 0x0408, "Syntek", "STK1160"), DEVICE_NAME(0x05e1, 0x0480, "Hauppauge", "Woodbury"), + /* ASUS ROG Zenith II: this machine has also two devices, one for + * the front headphone and another for the rest + */ + PROFILE_NAME(0x0b05, 0x1915, "ASUS", "Zenith II Front Headphone", + "Zenith-II-Front-Headphone"), + PROFILE_NAME(0x0b05, 0x1916, "ASUS", "Zenith II Main Audio", + "Zenith-II-Main-Audio"), + /* ASUS ROG Strix */ PROFILE_NAME(0x0b05, 0x1917, "Realtek", "ALC1220-VB-DT", "Realtek-ALC1220-VB-Desktop"), @@ -682,7 +690,7 @@ return false; } -static bool check_delayed_register_option(struct snd_usb_audio *chip, int iface) +static int check_delayed_register_option(struct snd_usb_audio *chip) { int i; unsigned int id, inum; @@ -691,14 +699,31 @@ if (delayed_register[i] && sscanf(delayed_register[i], "%x:%x", &id, &inum) == 2 && id == chip->usb_id) - return inum != iface; + return inum; } - return false; + return -1; } static const struct usb_device_id usb_audio_ids[]; /* defined below */ +/* look for the last interface that matches with our ids and remember it */ +static void find_last_interface(struct snd_usb_audio *chip) +{ + struct usb_host_config *config = chip->dev->actconfig; + struct usb_interface *intf; + int i; + + if (!config) + return; + for (i = 0; i < config->desc.bNumInterfaces; i++) { + intf = config->interface[i]; + if (usb_match_id(intf, usb_audio_ids)) + chip->last_iface = intf->altsetting[0].desc.bInterfaceNumber; + } + usb_audio_dbg(chip, "Found last interface = %d\n", chip->last_iface); +} + /* look for the corresponding quirk */ static const struct snd_usb_audio_quirk * get_alias_quirk(struct usb_device *dev, unsigned int id) @@ -717,6 +742,18 @@ return NULL; } +/* register card if we reach to the last interface or to the specified + * one given via option + */ +static int try_to_register_card(struct snd_usb_audio *chip, int ifnum) +{ + if (check_delayed_register_option(chip) == ifnum || + chip->last_iface == ifnum || + usb_interface_claimed(usb_ifnum_to_if(chip->dev, chip->last_iface))) + return snd_card_register(chip->card); + return 0; +} + /* * probe the active usb device * @@ -805,6 +842,7 @@ err = -ENODEV; goto __error; } + find_last_interface(chip); } if (chip->num_interfaces >= MAX_CARD_INTERFACES) { @@ -854,15 +892,9 @@ chip->need_delayed_register = false; /* clear again */ } - /* we are allowed to call snd_card_register() many times, but first - * check to see if a device needs to skip it or do anything special - */ - if (!snd_usb_registration_quirk(chip, ifnum) && - !check_delayed_register_option(chip, ifnum)) { - err = snd_card_register(chip->card); - if (err < 0) - goto __error; - } + err = try_to_register_card(chip, ifnum); + if (err < 0) + goto __error_no_register; if (chip->quirk_flags & QUIRK_FLAG_SHARE_MEDIA_DEVICE) { /* don't want to fail when snd_media_device_create() fails */ @@ -881,6 +913,11 @@ return 0; __error: + /* in the case of error in secondary interface, still try to register */ + if (chip) + try_to_register_card(chip, ifnum); + + __error_no_register: if (chip) { /* chip->active is inside the chip->card object, * decrement before memory is possibly returned. --- linux-5.19.0.orig/sound/usb/endpoint.c +++ linux-5.19.0/sound/usb/endpoint.c @@ -39,6 +39,7 @@ struct snd_usb_clock_ref { unsigned char clock; atomic_t locked; + int opened; int rate; struct list_head list; }; @@ -93,12 +94,13 @@ */ static void release_urb_ctx(struct snd_urb_ctx *u) { - if (u->buffer_size) + if (u->urb && u->buffer_size) usb_free_coherent(u->ep->chip->dev, u->buffer_size, u->urb->transfer_buffer, u->urb->transfer_dma); usb_free_urb(u->urb); u->urb = NULL; + u->buffer_size = 0; } static const char *usb_error_string(int err) @@ -801,6 +803,7 @@ ep = NULL; goto unlock; } + ep->clock_ref->opened++; } ep->cur_audiofmt = fp; @@ -920,10 +923,15 @@ usb_audio_dbg(chip, "Closing EP 0x%x (count %d)\n", ep->ep_num, ep->opened); - if (!--ep->iface_ref->opened) + if (!--ep->iface_ref->opened && + !(chip->quirk_flags & QUIRK_FLAG_IFACE_SKIP_CLOSE)) endpoint_set_interface(chip, ep, false); if (!--ep->opened) { + if (ep->clock_ref) { + if (!--ep->clock_ref->opened) + ep->clock_ref->rate = 0; + } ep->iface = 0; ep->altsetting = 0; ep->cur_audiofmt = NULL; @@ -1259,6 +1267,7 @@ if (!ep->syncbuf) return -ENOMEM; + ep->nurbs = SYNC_URBS; for (i = 0; i < SYNC_URBS; i++) { struct snd_urb_ctx *u = &ep->urb[i]; u->index = i; @@ -1278,8 +1287,6 @@ u->urb->complete = snd_complete_urb; } - ep->nurbs = SYNC_URBS; - return 0; out_of_memory: @@ -1631,8 +1638,7 @@ WRITE_ONCE(ep->sync_source->sync_sink, NULL); stop_urbs(ep, false, keep_pending); if (ep->clock_ref) - if (!atomic_dec_return(&ep->clock_ref->locked)) - ep->clock_ref->rate = 0; + atomic_dec(&ep->clock_ref->locked); } } --- linux-5.19.0.orig/sound/usb/implicit.c +++ linux-5.19.0/sound/usb/implicit.c @@ -47,6 +47,8 @@ static const struct snd_usb_implicit_fb_match playback_implicit_fb_quirks[] = { /* Fixed EP */ /* FIXME: check the availability of generic matching */ + IMPLICIT_FB_FIXED_DEV(0x0763, 0x2030, 0x81, 3), /* M-Audio Fast Track C400 */ + IMPLICIT_FB_FIXED_DEV(0x0763, 0x2031, 0x81, 3), /* M-Audio Fast Track C600 */ IMPLICIT_FB_FIXED_DEV(0x0763, 0x2080, 0x81, 2), /* M-Audio FastTrack Ultra */ IMPLICIT_FB_FIXED_DEV(0x0763, 0x2081, 0x81, 2), /* M-Audio FastTrack Ultra */ IMPLICIT_FB_FIXED_DEV(0x2466, 0x8010, 0x81, 2), /* Fractal Audio Axe-Fx III */ --- linux-5.19.0.orig/sound/usb/midi.c +++ linux-5.19.0/sound/usb/midi.c @@ -1133,10 +1133,8 @@ port = &umidi->endpoints[i].out->ports[j]; break; } - if (!port) { - snd_BUG(); + if (!port) return -ENXIO; - } substream->runtime->private_data = port; port->state = STATE_UNKNOWN; --- linux-5.19.0.orig/sound/usb/mixer_maps.c +++ linux-5.19.0/sound/usb/mixer_maps.c @@ -374,13 +374,28 @@ { 0 } }; -/* Some mobos shipped with a dummy HD-audio show the invalid GET_MIN/GET_MAX - * response for Input Gain Pad (id=19, control=12) and the connector status - * for SPDIF terminal (id=18). Skip them. - */ -static const struct usbmix_name_map asus_rog_map[] = { - { 18, NULL }, /* OT, connector control */ - { 19, NULL, 12 }, /* FU, Input Gain Pad */ +/* ASUS ROG Zenith II with Realtek ALC1220-VB */ +static const struct usbmix_name_map asus_zenith_ii_map[] = { + { 19, NULL, 12 }, /* FU, Input Gain Pad - broken response, disabled */ + { 16, "Speaker" }, /* OT */ + { 22, "Speaker Playback" }, /* FU */ + { 7, "Line" }, /* IT */ + { 19, "Line Capture" }, /* FU */ + { 8, "Mic" }, /* IT */ + { 20, "Mic Capture" }, /* FU */ + { 9, "Front Mic" }, /* IT */ + { 21, "Front Mic Capture" }, /* FU */ + { 17, "IEC958" }, /* OT */ + { 23, "IEC958 Playback" }, /* FU */ + {} +}; + +static const struct usbmix_connector_map asus_zenith_ii_connector_map[] = { + { 10, 16 }, /* (Back) Speaker */ + { 11, 17 }, /* SPDIF */ + { 13, 7 }, /* Line */ + { 14, 8 }, /* Mic */ + { 15, 9 }, /* Front Mic */ {} }; @@ -611,9 +626,10 @@ .map = gigabyte_b450_map, .connector_map = gigabyte_b450_connector_map, }, - { /* ASUS ROG Zenith II */ + { /* ASUS ROG Zenith II (main audio) */ .id = USB_ID(0x0b05, 0x1916), - .map = asus_rog_map, + .map = asus_zenith_ii_map, + .connector_map = asus_zenith_ii_connector_map, }, { /* ASUS ROG Strix */ .id = USB_ID(0x0b05, 0x1917), --- linux-5.19.0.orig/sound/usb/quirks-table.h +++ linux-5.19.0/sound/usb/quirks-table.h @@ -76,6 +76,8 @@ { USB_DEVICE_VENDOR_SPEC(0x041e, 0x3f0a) }, /* E-Mu 0204 USB */ { USB_DEVICE_VENDOR_SPEC(0x041e, 0x3f19) }, +/* Ktmicro Usb_audio device */ +{ USB_DEVICE_VENDOR_SPEC(0x31b2, 0x0011) }, /* * Creative Technology, Ltd Live! Cam Sync HD [VF0770] @@ -2050,6 +2052,10 @@ } }, { + /* M-Audio Micro */ + USB_DEVICE_VENDOR_SPEC(0x0763, 0x201a), +}, +{ USB_DEVICE_VENDOR_SPEC(0x0763, 0x2030), .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { /* .vendor_name = "M-Audio", */ @@ -2980,6 +2986,82 @@ } }, { + .ifnum = -1 + } + } + } +}, +/* DIGIDESIGN MBOX 3 */ +{ + USB_DEVICE(0x0dba, 0x5000), + .driver_info = (unsigned long) &(const struct snd_usb_audio_quirk) { + .vendor_name = "Digidesign", + .product_name = "Mbox 3", + .ifnum = QUIRK_ANY_INTERFACE, + .type = QUIRK_COMPOSITE, + .data = (const struct snd_usb_audio_quirk[]) { + { + .ifnum = 0, + .type = QUIRK_IGNORE_INTERFACE + }, + { + .ifnum = 1, + .type = QUIRK_IGNORE_INTERFACE + }, + { + .ifnum = 2, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = &(const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S24_3LE, + .channels = 4, + .iface = 2, + .altsetting = 1, + .altset_idx = 1, + .attributes = 0x00, + .endpoint = 0x01, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_ASYNC, + .rates = SNDRV_PCM_RATE_48000, + .rate_min = 48000, + .rate_max = 48000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { + 48000 + } + } + }, + { + .ifnum = 3, + .type = QUIRK_AUDIO_FIXED_ENDPOINT, + .data = &(const struct audioformat) { + .formats = SNDRV_PCM_FMTBIT_S24_3LE, + .channels = 4, + .iface = 3, + .altsetting = 1, + .altset_idx = 1, + .endpoint = 0x81, + .attributes = 0x00, + .ep_attr = USB_ENDPOINT_XFER_ISOC | + USB_ENDPOINT_SYNC_ASYNC, + .maxpacksize = 0x009c, + .rates = SNDRV_PCM_RATE_48000, + .rate_min = 48000, + .rate_max = 48000, + .nr_rates = 1, + .rate_table = (unsigned int[]) { + 48000 + } + } + }, + { + .ifnum = 4, + .type = QUIRK_MIDI_FIXED_ENDPOINT, + .data = &(const struct snd_usb_midi_endpoint_info) { + .out_cables = 0x0001, + .in_cables = 0x0001 + } + }, + { .ifnum = -1 } } --- linux-5.19.0.orig/sound/usb/quirks.c +++ linux-5.19.0/sound/usb/quirks.c @@ -1020,6 +1020,304 @@ return 0; } +static void mbox3_setup_48_24_magic(struct usb_device *dev) +{ + /* The Mbox 3 is "little endian" */ + /* max volume is: 0x0000. */ + /* min volume is: 0x0080 (shown in little endian form) */ + + + /* Load 48000Hz rate into buffer */ + u8 com_buff[4] = {0x80, 0xbb, 0x00, 0x00}; + + /* Set 48000Hz sample rate */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 0x01, 0x21, 0x0100, 0x0001, &com_buff, 4); //Is this really needed? + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 0x01, 0x21, 0x0100, 0x8101, &com_buff, 4); + + /* Deactivate Tuner */ + /* on = 0x01*/ + /* off = 0x00*/ + com_buff[0] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 0x01, 0x21, 0x0003, 0x2001, &com_buff, 1); + + /* Set clock source to Internal (as opposed to S/PDIF) */ + com_buff[0] = 0x01; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0100, 0x8001, &com_buff, 1); + + /* Mute the hardware loopbacks to start the device in a known state. */ + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* Analogue input 1 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0110, 0x4001, &com_buff, 2); + /* Analogue input 1 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0111, 0x4001, &com_buff, 2); + /* Analogue input 2 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0114, 0x4001, &com_buff, 2); + /* Analogue input 2 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0115, 0x4001, &com_buff, 2); + /* Analogue input 3 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0118, 0x4001, &com_buff, 2); + /* Analogue input 3 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0119, 0x4001, &com_buff, 2); + /* Analogue input 4 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011c, 0x4001, &com_buff, 2); + /* Analogue input 4 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011d, 0x4001, &com_buff, 2); + + /* Set software sends to output */ + com_buff[0] = 0x00; + com_buff[1] = 0x00; + /* Analogue software return 1 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0100, 0x4001, &com_buff, 2); + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* Analogue software return 1 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0101, 0x4001, &com_buff, 2); + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* Analogue software return 2 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0104, 0x4001, &com_buff, 2); + com_buff[0] = 0x00; + com_buff[1] = 0x00; + /* Analogue software return 2 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0105, 0x4001, &com_buff, 2); + + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* Analogue software return 3 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0108, 0x4001, &com_buff, 2); + /* Analogue software return 3 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0109, 0x4001, &com_buff, 2); + /* Analogue software return 4 left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010c, 0x4001, &com_buff, 2); + /* Analogue software return 4 right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010d, 0x4001, &com_buff, 2); + + /* Return to muting sends */ + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* Analogue fx return left channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0120, 0x4001, &com_buff, 2); + /* Analogue fx return right channel: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0121, 0x4001, &com_buff, 2); + + /* Analogue software input 1 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0100, 0x4201, &com_buff, 2); + /* Analogue software input 2 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0101, 0x4201, &com_buff, 2); + /* Analogue software input 3 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0102, 0x4201, &com_buff, 2); + /* Analogue software input 4 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0103, 0x4201, &com_buff, 2); + /* Analogue input 1 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0104, 0x4201, &com_buff, 2); + /* Analogue input 2 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0105, 0x4201, &com_buff, 2); + /* Analogue input 3 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0106, 0x4201, &com_buff, 2); + /* Analogue input 4 fx send: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0107, 0x4201, &com_buff, 2); + + /* Toggle allowing host control */ + com_buff[0] = 0x02; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 3, 0x21, 0x0000, 0x2001, &com_buff, 1); + + /* Do not dim fx returns */ + com_buff[0] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 3, 0x21, 0x0002, 0x2001, &com_buff, 1); + + /* Do not set fx returns to mono */ + com_buff[0] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 3, 0x21, 0x0001, 0x2001, &com_buff, 1); + + /* Mute the S/PDIF hardware loopback + * same odd volume logic here as above + */ + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* S/PDIF hardware input 1 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0112, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 1 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0113, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 2 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0116, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 2 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0117, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 3 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011a, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 3 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011b, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 4 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011e, 0x4001, &com_buff, 2); + /* S/PDIF hardware input 4 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x011f, 0x4001, &com_buff, 2); + /* S/PDIF software return 1 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0102, 0x4001, &com_buff, 2); + /* S/PDIF software return 1 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0103, 0x4001, &com_buff, 2); + /* S/PDIF software return 2 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0106, 0x4001, &com_buff, 2); + /* S/PDIF software return 2 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0107, 0x4001, &com_buff, 2); + + com_buff[0] = 0x00; + com_buff[1] = 0x00; + /* S/PDIF software return 3 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010a, 0x4001, &com_buff, 2); + + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* S/PDIF software return 3 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010b, 0x4001, &com_buff, 2); + /* S/PDIF software return 4 left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010e, 0x4001, &com_buff, 2); + + com_buff[0] = 0x00; + com_buff[1] = 0x00; + /* S/PDIF software return 4 right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x010f, 0x4001, &com_buff, 2); + + com_buff[0] = 0x00; + com_buff[1] = 0x80; + /* S/PDIF fx returns left channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0122, 0x4001, &com_buff, 2); + /* S/PDIF fx returns right channel */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0123, 0x4001, &com_buff, 2); + + /* Set the dropdown "Effect" to the first option */ + /* Room1 = 0x00 */ + /* Room2 = 0x01 */ + /* Room3 = 0x02 */ + /* Hall 1 = 0x03 */ + /* Hall 2 = 0x04 */ + /* Plate = 0x05 */ + /* Delay = 0x06 */ + /* Echo = 0x07 */ + com_buff[0] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0200, 0x4301, &com_buff, 1); /* max is 0xff */ + /* min is 0x00 */ + + + /* Set the effect duration to 0 */ + /* max is 0xffff */ + /* min is 0x0000 */ + com_buff[0] = 0x00; + com_buff[1] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0400, 0x4301, &com_buff, 2); + + /* Set the effect volume and feedback to 0 */ + /* max is 0xff */ + /* min is 0x00 */ + com_buff[0] = 0x00; + /* feedback: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0500, 0x4301, &com_buff, 1); + /* volume: */ + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 1, 0x21, 0x0300, 0x4301, &com_buff, 1); + + /* Set soft button hold duration */ + /* 0x03 = 250ms */ + /* 0x05 = 500ms DEFAULT */ + /* 0x08 = 750ms */ + /* 0x0a = 1sec */ + com_buff[0] = 0x05; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 3, 0x21, 0x0005, 0x2001, &com_buff, 1); + + /* Use dim LEDs for button of state */ + com_buff[0] = 0x00; + snd_usb_ctl_msg(dev, usb_sndctrlpipe(dev, 0), + 3, 0x21, 0x0004, 0x2001, &com_buff, 1); +} + +#define MBOX3_DESCRIPTOR_SIZE 464 + +static int snd_usb_mbox3_boot_quirk(struct usb_device *dev) +{ + struct usb_host_config *config = dev->actconfig; + int err; + int descriptor_size; + + descriptor_size = le16_to_cpu(get_cfg_desc(config)->wTotalLength); + + if (descriptor_size != MBOX3_DESCRIPTOR_SIZE) { + dev_err(&dev->dev, "Invalid descriptor size=%d.\n", descriptor_size); + return -ENODEV; + } + + dev_dbg(&dev->dev, "device initialised!\n"); + + err = usb_get_descriptor(dev, USB_DT_DEVICE, 0, + &dev->descriptor, sizeof(dev->descriptor)); + config = dev->actconfig; + if (err < 0) + dev_dbg(&dev->dev, "error usb_get_descriptor: %d\n", err); + + err = usb_reset_configuration(dev); + if (err < 0) + dev_dbg(&dev->dev, "error usb_reset_configuration: %d\n", err); + dev_dbg(&dev->dev, "mbox3_boot: new boot length = %d\n", + le16_to_cpu(get_cfg_desc(config)->wTotalLength)); + + mbox3_setup_48_24_magic(dev); + dev_info(&dev->dev, "Digidesign Mbox 3: 24bit 48kHz"); + + return 0; /* Successful boot */ +} #define MICROBOOK_BUF_SIZE 128 @@ -1324,6 +1622,10 @@ case USB_ID(0x0dba, 0x3000): /* Digidesign Mbox 2 */ return snd_usb_mbox2_boot_quirk(dev); + case USB_ID(0x0dba, 0x5000): + /* Digidesign Mbox 3 */ + return snd_usb_mbox3_boot_quirk(dev); + case USB_ID(0x1235, 0x0010): /* Focusrite Novation Saffire 6 USB */ case USB_ID(0x1235, 0x0018): /* Focusrite Novation Twitch */ @@ -1611,6 +1913,7 @@ /* XMOS based USB DACs */ switch (chip->usb_id) { case USB_ID(0x1511, 0x0037): /* AURALiC VEGA */ + case USB_ID(0x21ed, 0xd75a): /* Accuphase DAC-60 option card */ case USB_ID(0x2522, 0x0012): /* LH Labs VI DAC Infinity */ case USB_ID(0x2772, 0x0230): /* Pro-Ject Pre Box S2 Digital */ if (fp->altsetting == 2) @@ -1729,48 +2032,6 @@ } /* - * registration quirk: - * the registration is skipped if a device matches with the given ID, - * unless the interface reaches to the defined one. This is for delaying - * the registration until the last known interface, so that the card and - * devices appear at the same time. - */ - -struct registration_quirk { - unsigned int usb_id; /* composed via USB_ID() */ - unsigned int interface; /* the interface to trigger register */ -}; - -#define REG_QUIRK_ENTRY(vendor, product, iface) \ - { .usb_id = USB_ID(vendor, product), .interface = (iface) } - -static const struct registration_quirk registration_quirks[] = { - REG_QUIRK_ENTRY(0x0951, 0x16d8, 2), /* Kingston HyperX AMP */ - REG_QUIRK_ENTRY(0x0951, 0x16ed, 2), /* Kingston HyperX Cloud Alpha S */ - REG_QUIRK_ENTRY(0x0951, 0x16ea, 2), /* Kingston HyperX Cloud Flight S */ - REG_QUIRK_ENTRY(0x0ecb, 0x1f46, 2), /* JBL Quantum 600 */ - REG_QUIRK_ENTRY(0x0ecb, 0x1f47, 2), /* JBL Quantum 800 */ - REG_QUIRK_ENTRY(0x0ecb, 0x1f4c, 2), /* JBL Quantum 400 */ - REG_QUIRK_ENTRY(0x0ecb, 0x2039, 2), /* JBL Quantum 400 */ - REG_QUIRK_ENTRY(0x0ecb, 0x203c, 2), /* JBL Quantum 600 */ - REG_QUIRK_ENTRY(0x0ecb, 0x203e, 2), /* JBL Quantum 800 */ - { 0 } /* terminator */ -}; - -/* return true if skipping registration */ -bool snd_usb_registration_quirk(struct snd_usb_audio *chip, int iface) -{ - const struct registration_quirk *q; - - for (q = registration_quirks; q->usb_id; q++) - if (chip->usb_id == q->usb_id) - return iface != q->interface; - - /* Register as normal */ - return false; -} - -/* * driver behavior quirk flags */ struct usb_audio_quirk_flags_table { @@ -1843,6 +2104,8 @@ QUIRK_FLAG_SHARE_MEDIA_DEVICE | QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x1395, 0x740a, /* Sennheiser DECT */ QUIRK_FLAG_GET_SAMPLE_RATE), + DEVICE_FLG(0x1397, 0x0507, /* Behringer UMC202HD */ + QUIRK_FLAG_PLAYBACK_FIRST | QUIRK_FLAG_GENERIC_IMPLICIT_FB), DEVICE_FLG(0x1397, 0x0508, /* Behringer UMC204HD */ QUIRK_FLAG_PLAYBACK_FIRST | QUIRK_FLAG_GENERIC_IMPLICIT_FB), DEVICE_FLG(0x1397, 0x0509, /* Behringer UMC404HD */ @@ -1901,6 +2164,8 @@ QUIRK_FLAG_SHARE_MEDIA_DEVICE | QUIRK_FLAG_ALIGN_TRANSFER), DEVICE_FLG(0x21b4, 0x0081, /* AudioQuest DragonFly */ QUIRK_FLAG_GET_SAMPLE_RATE), + DEVICE_FLG(0x2522, 0x0007, /* LH Labs Geek Out HD Audio 1V5 */ + QUIRK_FLAG_SET_IFACE_FIRST), DEVICE_FLG(0x2708, 0x0002, /* Audient iD14 */ QUIRK_FLAG_IGNORE_CTL_ERROR), DEVICE_FLG(0x2912, 0x30c8, /* Audioengine D1 */ @@ -1921,6 +2186,8 @@ QUIRK_FLAG_GENERIC_IMPLICIT_FB), DEVICE_FLG(0x2b53, 0x0031, /* Fiero SC-01 (firmware v1.1.0) */ QUIRK_FLAG_GENERIC_IMPLICIT_FB), + DEVICE_FLG(0x0525, 0xa4ad, /* Hamedal C20 usb camero */ + QUIRK_FLAG_IFACE_SKIP_CLOSE), /* Vendor matches */ VENDOR_FLG(0x045e, /* MS Lifecam */ --- linux-5.19.0.orig/sound/usb/quirks.h +++ linux-5.19.0/sound/usb/quirks.h @@ -48,8 +48,6 @@ struct audioformat *fp, int stream); -bool snd_usb_registration_quirk(struct snd_usb_audio *chip, int iface); - void snd_usb_init_quirk_flags(struct snd_usb_audio *chip); #endif /* __USBAUDIO_QUIRKS_H */ --- linux-5.19.0.orig/sound/usb/stream.c +++ linux-5.19.0/sound/usb/stream.c @@ -495,6 +495,10 @@ return 0; } } + + if (chip->card->registered) + chip->need_delayed_register = true; + /* look for an empty stream */ list_for_each_entry(as, &chip->pcm_list, list) { if (as->fmt_type != fp->fmt_type) @@ -502,9 +506,6 @@ subs = &as->substream[stream]; if (subs->ep_num) continue; - if (snd_device_get_state(chip->card, as->pcm) != - SNDRV_DEV_BUILD) - chip->need_delayed_register = true; err = snd_pcm_new_stream(as->pcm, stream, 1); if (err < 0) return err; @@ -1105,7 +1106,7 @@ * Dallas DS4201 workaround: It presents 5 altsettings, but the last * one misses syncpipe, and does not produce any sound. */ - if (chip->usb_id == USB_ID(0x04fa, 0x4201)) + if (chip->usb_id == USB_ID(0x04fa, 0x4201) && num >= 4) num = 4; for (i = 0; i < num; i++) { --- linux-5.19.0.orig/sound/usb/usbaudio.h +++ linux-5.19.0/sound/usb/usbaudio.h @@ -37,6 +37,7 @@ unsigned int quirk_flags; unsigned int need_delayed_register:1; /* warn for delayed registration */ int num_interfaces; + int last_iface; int num_suspended_intf; int sample_rate_read_error; @@ -169,6 +170,8 @@ * Apply the generic implicit feedback sync mode (same as implicit_fb=1 option) * QUIRK_FLAG_SKIP_IMPLICIT_FB * Don't apply implicit feedback sync mode + * QUIRK_FLAG_IFACE_SKIP_CLOSE + * Don't closed interface during setting sample rate */ #define QUIRK_FLAG_GET_SAMPLE_RATE (1U << 0) @@ -190,5 +193,6 @@ #define QUIRK_FLAG_SET_IFACE_FIRST (1U << 16) #define QUIRK_FLAG_GENERIC_IMPLICIT_FB (1U << 17) #define QUIRK_FLAG_SKIP_IMPLICIT_FB (1U << 18) +#define QUIRK_FLAG_IFACE_SKIP_CLOSE (1U << 19) #endif /* __USBAUDIO_H */ --- linux-5.19.0.orig/tools/arch/x86/include/asm/cpufeatures.h +++ linux-5.19.0/tools/arch/x86/include/asm/cpufeatures.h @@ -303,6 +303,7 @@ #define X86_FEATURE_RETHUNK (11*32+14) /* "" Use REturn THUNK */ #define X86_FEATURE_UNRET (11*32+15) /* "" AMD BTB untrain return */ #define X86_FEATURE_USE_IBPB_FW (11*32+16) /* "" Use IBPB during runtime firmware calls */ +#define X86_FEATURE_RSB_VMEXIT_LITE (11*32+17) /* "" Fill RSB on VM-Exit when EIBRS is enabled */ /* Intel-defined CPU features, CPUID level 0x00000007:1 (EAX), word 12 */ #define X86_FEATURE_AVX_VNNI (12*32+ 4) /* AVX VNNI instructions */ --- linux-5.19.0.orig/tools/arch/x86/include/asm/msr-index.h +++ linux-5.19.0/tools/arch/x86/include/asm/msr-index.h @@ -150,6 +150,10 @@ * are restricted to targets in * kernel. */ +#define ARCH_CAP_PBRSB_NO BIT(24) /* + * Not susceptible to Post-Barrier + * Return Stack Buffer Predictions. + */ #define MSR_IA32_FLUSH_CMD 0x0000010b #define L1D_FLUSH BIT(0) /* @@ -519,6 +523,11 @@ #define MSR_AMD64_CPUID_FN_1 0xc0011004 #define MSR_AMD64_LS_CFG 0xc0011020 #define MSR_AMD64_DC_CFG 0xc0011022 + +#define MSR_AMD64_DE_CFG 0xc0011029 +#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1 +#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE BIT_ULL(MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT) + #define MSR_AMD64_BU_CFG2 0xc001102a #define MSR_AMD64_IBSFETCHCTL 0xc0011030 #define MSR_AMD64_IBSFETCHLINAD 0xc0011031 @@ -621,9 +630,6 @@ #define FAM10H_MMIO_CONF_BASE_MASK 0xfffffffULL #define FAM10H_MMIO_CONF_BASE_SHIFT 20 #define MSR_FAM10H_NODE_ID 0xc001100c -#define MSR_F10H_DECFG 0xc0011029 -#define MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT 1 -#define MSR_F10H_DECFG_LFENCE_SERIALIZE BIT_ULL(MSR_F10H_DECFG_LFENCE_SERIALIZE_BIT) /* K8 MSRs */ #define MSR_K8_TOP_MEM1 0xc001001a --- linux-5.19.0.orig/tools/bpf/bpftool/btf_dumper.c +++ linux-5.19.0/tools/bpf/bpftool/btf_dumper.c @@ -426,7 +426,7 @@ *(char *)data); break; case BTF_INT_BOOL: - jsonw_bool(jw, *(int *)data); + jsonw_bool(jw, *(bool *)data); break; default: /* shouldn't happen */ --- linux-5.19.0.orig/tools/bpf/bpftool/common.c +++ linux-5.19.0/tools/bpf/bpftool/common.c @@ -273,6 +273,9 @@ int err; int fd; + if (!REQ_ARGS(3)) + return -EINVAL; + fd = get_fd(&argc, &argv); if (fd < 0) return fd; @@ -468,6 +471,7 @@ if (err) { p_err("failed to append entry to hashmap for ID %u, path '%s': %s", pinned_info.id, path, strerror(errno)); + free(path); goto out_close; } --- linux-5.19.0.orig/tools/bpf/bpftool/main.c +++ linux-5.19.0/tools/bpf/bpftool/main.c @@ -435,6 +435,16 @@ setlinebuf(stdout); +#ifdef USE_LIBCAP + /* Libcap < 2.63 hooks before main() to compute the number of + * capabilities of the running kernel, and doing so it calls prctl() + * which may fail and set errno to non-zero. + * Let's reset errno to make sure this does not interfere with the + * batch mode. + */ + errno = 0; +#endif + last_do_help = do_help; pretty_output = false; json_output = false; --- linux-5.19.0.orig/tools/build/feature/test-libcrypto.c +++ linux-5.19.0/tools/build/feature/test-libcrypto.c @@ -1,16 +1,23 @@ // SPDX-License-Identifier: GPL-2.0 +#include #include #include int main(void) { - MD5_CTX context; + EVP_MD_CTX *mdctx; unsigned char md[MD5_DIGEST_LENGTH + SHA_DIGEST_LENGTH]; unsigned char dat[] = "12345"; + unsigned int digest_len; - MD5_Init(&context); - MD5_Update(&context, &dat[0], sizeof(dat)); - MD5_Final(&md[0], &context); + mdctx = EVP_MD_CTX_new(); + if (!mdctx) + return 0; + + EVP_DigestInit_ex(mdctx, EVP_md5(), NULL); + EVP_DigestUpdate(mdctx, &dat[0], sizeof(dat)); + EVP_DigestFinal_ex(mdctx, &md[0], &digest_len); + EVP_MD_CTX_free(mdctx); SHA1(&dat[0], sizeof(dat), &md[0]); --- linux-5.19.0.orig/tools/hv/hv_kvp_daemon.8 +++ linux-5.19.0/tools/hv/hv_kvp_daemon.8 @@ -0,0 +1,26 @@ +.\" This page Copyright (C) 2012 Andy Whitcroft +.\" Distributed under the GPL v2 or later. +.TH HV_KVP_DAEMON 8 +.SH NAME +hv_kvp_daemon \- Hyper-V Key Value Pair daemon +.SH SYNOPSIS +.ft B +.B hv_kvp_daemon +.br +.SH DESCRIPTION +\fBhv_kvp_daemon\fP +is the userspace component of the Hyper-V key value pair functionality, +communicating via a netlink socket with the kernel HV-KVP driver. +This pairing allows the Hyper-V host to pass configuration information +(such as IP addresses) to the guest and allows the host to obtain guest +version information. + +.SH FILES +.ta +.nf +/var/opt/hyperv/.kvp_pool_* +.fi + +.SH AUTHORS +.nf +Written by K. Y. Srinivasan --- linux-5.19.0.orig/tools/hv/lsvmbus +++ linux-5.19.0/tools/hv/lsvmbus @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # SPDX-License-Identifier: GPL-2.0 import os --- linux-5.19.0.orig/tools/hv/lsvmbus.8 +++ linux-5.19.0/tools/hv/lsvmbus.8 @@ -0,0 +1,23 @@ +.\" This page Copyright (C) 2016 Andy Whitcroft +.\" Distributed under the GPL v2 or later. +.TH LSVMBUS 8 +.SH NAME +lsvmbus \- List Hyper-V VMBus devices +.SH SYNOPSIS +.ft B +.B lsvmbus [-vv] +.br +.SH DESCRIPTION +\fBlsvmbus\fP +displays devices attached to the Hyper-V VMBus. +.SH OPTIONS +.\" +.TP +.B -v +With -v more information is printed including the VMBus Rel_ID, class ID, +Rel_ID, and which channel is bound to which virtual processor. Use -vv +for additional detail including the Device_ID and the sysfs path. +.\" +.SH AUTHORS +.nf +Written by Dexuan Cui --- linux-5.19.0.orig/tools/iio/iio_generic_buffer.c +++ linux-5.19.0/tools/iio/iio_generic_buffer.c @@ -715,12 +715,12 @@ continue; } - toread = buf_len; } else { usleep(timedelay); - toread = 64; } + toread = buf_len; + read_size = read(buf_fd, data, toread * scan_size); if (read_size < 0) { if (errno == EAGAIN) { --- linux-5.19.0.orig/tools/iio/iio_utils.c +++ linux-5.19.0/tools/iio/iio_utils.c @@ -547,6 +547,10 @@ { int count = 0; + /* It takes a digit to represent zero */ + if (!num) + return 1; + while (num != 0) { num /= 10; count++; --- linux-5.19.0.orig/tools/include/nolibc/string.h +++ linux-5.19.0/tools/include/nolibc/string.h @@ -19,9 +19,9 @@ int memcmp(const void *s1, const void *s2, size_t n) { size_t ofs = 0; - char c1 = 0; + int c1 = 0; - while (ofs < n && !(c1 = ((char *)s1)[ofs] - ((char *)s2)[ofs])) { + while (ofs < n && !(c1 = ((unsigned char *)s1)[ofs] - ((unsigned char *)s2)[ofs])) { ofs++; } return c1; @@ -125,14 +125,18 @@ } /* this function is only used with arguments that are not constants or when - * it's not known because optimizations are disabled. + * it's not known because optimizations are disabled. Note that gcc 12 + * recognizes an strlen() pattern and replaces it with a jump to strlen(), + * thus itself, hence the asm() statement below that's meant to disable this + * confusing practice. */ static __attribute__((unused)) -size_t nolibc_strlen(const char *str) +size_t strlen(const char *str) { size_t len; - for (len = 0; str[len]; len++); + for (len = 0; str[len]; len++) + asm(""); return len; } @@ -140,13 +144,12 @@ * the two branches, then will rely on an external definition of strlen(). */ #if defined(__OPTIMIZE__) +#define nolibc_strlen(x) strlen(x) #define strlen(str) ({ \ __builtin_constant_p((str)) ? \ __builtin_strlen((str)) : \ nolibc_strlen((str)); \ }) -#else -#define strlen(str) nolibc_strlen((str)) #endif static __attribute__((unused)) --- linux-5.19.0.orig/tools/include/uapi/asm/errno.h +++ linux-5.19.0/tools/include/uapi/asm/errno.h @@ -9,8 +9,8 @@ #include "../../../arch/alpha/include/uapi/asm/errno.h" #elif defined(__mips__) #include "../../../arch/mips/include/uapi/asm/errno.h" -#elif defined(__xtensa__) -#include "../../../arch/xtensa/include/uapi/asm/errno.h" +#elif defined(__hppa__) +#include "../../../arch/parisc/include/uapi/asm/errno.h" #else #include #endif --- linux-5.19.0.orig/tools/lib/bpf/bpf.h +++ linux-5.19.0/tools/lib/bpf/bpf.h @@ -450,8 +450,15 @@ __u32 *buf_len, __u32 *prog_id, __u32 *fd_type, __u64 *probe_offset, __u64 *probe_addr); +#ifdef __cplusplus +/* forward-declaring enums in C++ isn't compatible with pure C enums, so + * instead define bpf_enable_stats() as accepting int as an input + */ +LIBBPF_API int bpf_enable_stats(int type); +#else enum bpf_stats_type; /* defined in up-to-date linux/bpf.h */ LIBBPF_API int bpf_enable_stats(enum bpf_stats_type type); +#endif struct bpf_prog_bind_opts { size_t sz; /* size of this struct for forward/backward compatibility */ --- linux-5.19.0.orig/tools/lib/bpf/bpf_tracing.h +++ linux-5.19.0/tools/lib/bpf/bpf_tracing.h @@ -233,7 +233,7 @@ #define __PT_PARM5_REG a4 #define __PT_RET_REG ra #define __PT_FP_REG s0 -#define __PT_RC_REG a5 +#define __PT_RC_REG a0 #define __PT_SP_REG sp #define __PT_IP_REG pc /* riscv does not select ARCH_HAS_SYSCALL_WRAPPER. */ @@ -424,7 +424,7 @@ */ #define BPF_PROG(name, args...) \ name(unsigned long long *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(unsigned long long *ctx, ##args); \ typeof(name(0)) name(unsigned long long *ctx) \ { \ @@ -433,7 +433,7 @@ return ____##name(___bpf_ctx_cast(args)); \ _Pragma("GCC diagnostic pop") \ } \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(unsigned long long *ctx, ##args) struct pt_regs; @@ -458,7 +458,7 @@ */ #define BPF_KPROBE(name, args...) \ name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args); \ typeof(name(0)) name(struct pt_regs *ctx) \ { \ @@ -467,7 +467,7 @@ return ____##name(___bpf_kprobe_args(args)); \ _Pragma("GCC diagnostic pop") \ } \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args) #define ___bpf_kretprobe_args0() ctx @@ -482,7 +482,7 @@ */ #define BPF_KRETPROBE(name, args...) \ name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args); \ typeof(name(0)) name(struct pt_regs *ctx) \ { \ @@ -515,7 +515,7 @@ */ #define BPF_KPROBE_SYSCALL(name, args...) \ name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args); \ typeof(name(0)) name(struct pt_regs *ctx) \ { \ @@ -525,7 +525,7 @@ return ____##name(___bpf_syscall_args(args)); \ _Pragma("GCC diagnostic pop") \ } \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args) #endif --- linux-5.19.0.orig/tools/lib/bpf/btf.c +++ linux-5.19.0/tools/lib/bpf/btf.c @@ -3903,14 +3903,14 @@ } /* Check if given two types are identical ARRAY definitions */ -static int btf_dedup_identical_arrays(struct btf_dedup *d, __u32 id1, __u32 id2) +static bool btf_dedup_identical_arrays(struct btf_dedup *d, __u32 id1, __u32 id2) { struct btf_type *t1, *t2; t1 = btf_type_by_id(d->btf, id1); t2 = btf_type_by_id(d->btf, id2); if (!btf_is_array(t1) || !btf_is_array(t2)) - return 0; + return false; return btf_equal_array(t1, t2); } @@ -3934,7 +3934,9 @@ m1 = btf_members(t1); m2 = btf_members(t2); for (i = 0, n = btf_vlen(t1); i < n; i++, m1++, m2++) { - if (m1->type != m2->type) + if (m1->type != m2->type && + !btf_dedup_identical_arrays(d, m1->type, m2->type) && + !btf_dedup_identical_structs(d, m1->type, m2->type)) return false; } return true; --- linux-5.19.0.orig/tools/lib/bpf/btf_dump.c +++ linux-5.19.0/tools/lib/bpf/btf_dump.c @@ -228,6 +228,17 @@ return 0; } +static void btf_dump_free_names(struct hashmap *map) +{ + size_t bkt; + struct hashmap_entry *cur; + + hashmap__for_each_entry(map, cur, bkt) + free((void *)cur->key); + + hashmap__free(map); +} + void btf_dump__free(struct btf_dump *d) { int i; @@ -246,8 +257,8 @@ free(d->cached_names); free(d->emit_queue); free(d->decl_stack); - hashmap__free(d->type_names); - hashmap__free(d->ident_names); + btf_dump_free_names(d->type_names); + btf_dump_free_names(d->ident_names); free(d); } @@ -1481,11 +1492,23 @@ static size_t btf_dump_name_dups(struct btf_dump *d, struct hashmap *name_map, const char *orig_name) { + char *old_name, *new_name; size_t dup_cnt = 0; + int err; + + new_name = strdup(orig_name); + if (!new_name) + return 1; hashmap__find(name_map, orig_name, (void **)&dup_cnt); dup_cnt++; - hashmap__set(name_map, orig_name, (void *)dup_cnt, NULL, NULL); + + err = hashmap__set(name_map, new_name, (void *)dup_cnt, + (const void **)&old_name, NULL); + if (err) + free(new_name); + + free(old_name); return dup_cnt; } @@ -1924,7 +1947,7 @@ { const struct btf_member *m = btf_members(t); __u16 n = btf_vlen(t); - int i, err; + int i, err = 0; /* note that we increment depth before calling btf_dump_print() below; * this is intentional. btf_dump_data_newline() will not print a @@ -2325,7 +2348,7 @@ d->typed_dump->indent_lvl = OPTS_GET(opts, indent_level, 0); /* default indent string is a tab */ - if (!opts->indent_str) + if (!OPTS_GET(opts, indent_str, NULL)) d->typed_dump->indent_str[0] = '\t'; else libbpf_strlcpy(d->typed_dump->indent_str, opts->indent_str, --- linux-5.19.0.orig/tools/lib/bpf/gen_loader.c +++ linux-5.19.0/tools/lib/bpf/gen_loader.c @@ -533,7 +533,7 @@ gen->attach_kind = kind; ret = snprintf(gen->attach_target, sizeof(gen->attach_target), "%s%s", prefix, attach_name); - if (ret == sizeof(gen->attach_target)) + if (ret >= sizeof(gen->attach_target)) gen->error = -ENOSPC; } --- linux-5.19.0.orig/tools/lib/bpf/libbpf.c +++ linux-5.19.0/tools/lib/bpf/libbpf.c @@ -475,7 +475,7 @@ size_t shstrndx; /* section index for section name strings */ size_t strtabidx; struct elf_sec_desc *secs; - int sec_cnt; + size_t sec_cnt; int maps_shndx; int btf_maps_shndx; __u32 btf_maps_sec_btf_id; @@ -1350,6 +1350,10 @@ static int bpf_object__init_license(struct bpf_object *obj, void *data, size_t size) { + if (!data) { + pr_warn("invalid license section in %s\n", obj->path); + return -LIBBPF_ERRNO__FORMAT; + } /* libbpf_strlcpy() only copies first N - 1 bytes, so size + 1 won't * go over allowed ELF data section buffer */ @@ -1363,7 +1367,7 @@ { __u32 kver; - if (size != sizeof(kver)) { + if (!data || size != sizeof(kver)) { pr_warn("invalid kver section in %s\n", obj->path); return -LIBBPF_ERRNO__FORMAT; } @@ -2398,6 +2402,37 @@ return 0; } +static size_t adjust_ringbuf_sz(size_t sz) +{ + __u32 page_sz = sysconf(_SC_PAGE_SIZE); + __u32 mul; + + /* if user forgot to set any size, make sure they see error */ + if (sz == 0) + return 0; + /* Kernel expects BPF_MAP_TYPE_RINGBUF's max_entries to be + * a power-of-2 multiple of kernel's page size. If user diligently + * satisified these conditions, pass the size through. + */ + if ((sz % page_sz) == 0 && is_pow_of_2(sz / page_sz)) + return sz; + + /* Otherwise find closest (page_sz * power_of_2) product bigger than + * user-set size to satisfy both user size request and kernel + * requirements and substitute correct max_entries for map creation. + */ + for (mul = 1; mul <= UINT_MAX / page_sz; mul <<= 1) { + if (mul * page_sz > sz) + return mul * page_sz; + } + + /* if it's impossible to satisfy the conditions (i.e., user size is + * very close to UINT_MAX but is not a power-of-2 multiple of + * page_size) then just return original size and let kernel reject it + */ + return sz; +} + static void fill_map_from_def(struct bpf_map *map, const struct btf_map_def *def) { map->def.type = def->map_type; @@ -2411,6 +2446,10 @@ map->btf_key_type_id = def->key_type_id; map->btf_value_type_id = def->value_type_id; + /* auto-adjust BPF ringbuf map max_entries to be a multiple of page size */ + if (map->def.type == BPF_MAP_TYPE_RINGBUF) + map->def.max_entries = adjust_ringbuf_sz(map->def.max_entries); + if (def->parts & MAP_DEF_MAP_TYPE) pr_debug("map '%s': found type = %u.\n", map->name, def->map_type); @@ -3293,10 +3332,15 @@ Elf64_Shdr *sh; /* ELF section indices are 0-based, but sec #0 is special "invalid" - * section. e_shnum does include sec #0, so e_shnum is the necessary - * size of an array to keep all the sections. + * section. Since section count retrieved by elf_getshdrnum() does + * include sec #0, it is already the necessary size of an array to keep + * all the sections. */ - obj->efile.sec_cnt = obj->efile.ehdr->e_shnum; + if (elf_getshdrnum(obj->efile.elf, &obj->efile.sec_cnt)) { + pr_warn("elf: failed to get the number of sections for %s: %s\n", + obj->path, elf_errmsg(-1)); + return -LIBBPF_ERRNO__FORMAT; + } obj->efile.secs = calloc(obj->efile.sec_cnt, sizeof(*obj->efile.secs)); if (!obj->efile.secs) return -ENOMEM; @@ -4116,6 +4160,9 @@ int l = 0, r = obj->nr_programs - 1, m; struct bpf_program *prog; + if (!obj->nr_programs) + return NULL; + while (l < r) { m = l + (r - l + 1) / 2; prog = &obj->programs[m]; @@ -4327,7 +4374,7 @@ int bpf_map__reuse_fd(struct bpf_map *map, int fd) { struct bpf_map_info info = {}; - __u32 len = sizeof(info); + __u32 len = sizeof(info), name_len; int new_fd, err; char *new_name; @@ -4337,7 +4384,12 @@ if (err) return libbpf_err(err); - new_name = strdup(info.name); + name_len = strlen(info.name); + if (name_len == BPF_OBJ_NAME_LEN - 1 && strncmp(map->name, info.name, name_len) == 0) + new_name = strdup(map->name); + else + new_name = strdup(info.name); + if (!new_name) return libbpf_err(-errno); @@ -4396,9 +4448,15 @@ int bpf_map__set_max_entries(struct bpf_map *map, __u32 max_entries) { - if (map->fd >= 0) + if (map->obj->loaded) return libbpf_err(-EBUSY); + map->def.max_entries = max_entries; + + /* auto-adjust BPF ringbuf map max_entries to be a multiple of page size */ + if (map->def.type == BPF_MAP_TYPE_RINGBUF) + map->def.max_entries = adjust_ringbuf_sz(map->def.max_entries); + return 0; } @@ -4943,42 +5001,6 @@ static void bpf_map__destroy(struct bpf_map *map); -static bool is_pow_of_2(size_t x) -{ - return x && (x & (x - 1)); -} - -static size_t adjust_ringbuf_sz(size_t sz) -{ - __u32 page_sz = sysconf(_SC_PAGE_SIZE); - __u32 mul; - - /* if user forgot to set any size, make sure they see error */ - if (sz == 0) - return 0; - /* Kernel expects BPF_MAP_TYPE_RINGBUF's max_entries to be - * a power-of-2 multiple of kernel's page size. If user diligently - * satisified these conditions, pass the size through. - */ - if ((sz % page_sz) == 0 && is_pow_of_2(sz / page_sz)) - return sz; - - /* Otherwise find closest (page_sz * power_of_2) product bigger than - * user-set size to satisfy both user size request and kernel - * requirements and substitute correct max_entries for map creation. - */ - for (mul = 1; mul <= UINT_MAX / page_sz; mul <<= 1) { - if (mul * page_sz > sz) - return mul * page_sz; - } - - /* if it's impossible to satisfy the conditions (i.e., user size is - * very close to UINT_MAX but is not a power-of-2 multiple of - * page_size) then just return original size and let kernel reject it - */ - return sz; -} - static int bpf_object__create_map(struct bpf_object *obj, struct bpf_map *map, bool is_inner) { LIBBPF_OPTS(bpf_map_create_opts, create_attr); @@ -5017,9 +5039,6 @@ } switch (def->type) { - case BPF_MAP_TYPE_RINGBUF: - map->def.max_entries = adjust_ringbuf_sz(map->def.max_entries); - /* fallthrough */ case BPF_MAP_TYPE_PERF_EVENT_ARRAY: case BPF_MAP_TYPE_CGROUP_ARRAY: case BPF_MAP_TYPE_STACK_TRACE: @@ -9591,11 +9610,15 @@ int err = 0; /* BPF program's BTF ID */ - if (attach_prog_fd) { + if (prog->type == BPF_PROG_TYPE_EXT || attach_prog_fd) { + if (!attach_prog_fd) { + pr_warn("prog '%s': attach program FD is not set\n", prog->name); + return -EINVAL; + } err = libbpf_find_prog_btf_id(attach_name, attach_prog_fd); if (err < 0) { - pr_warn("failed to find BPF program (FD %d) BTF ID for '%s': %d\n", - attach_prog_fd, attach_name, err); + pr_warn("prog '%s': failed to find BPF program (FD %d) BTF ID for '%s': %d\n", + prog->name, attach_prog_fd, attach_name, err); return err; } *btf_obj_fd = 0; @@ -9612,7 +9635,8 @@ err = find_kernel_btf_id(prog->obj, attach_name, attach_type, btf_obj_fd, btf_type_id); } if (err) { - pr_warn("failed to find kernel BTF type ID of '%s': %d\n", attach_name, err); + pr_warn("prog '%s': failed to find kernel BTF type ID of '%s': %d\n", + prog->name, attach_name, err); return err; } return 0; @@ -10988,43 +11012,6 @@ return pfd; } -/* uprobes deal in relative offsets; subtract the base address associated with - * the mapped binary. See Documentation/trace/uprobetracer.rst for more - * details. - */ -static long elf_find_relative_offset(const char *filename, Elf *elf, long addr) -{ - size_t n; - int i; - - if (elf_getphdrnum(elf, &n)) { - pr_warn("elf: failed to find program headers for '%s': %s\n", filename, - elf_errmsg(-1)); - return -ENOENT; - } - - for (i = 0; i < n; i++) { - int seg_start, seg_end, seg_offset; - GElf_Phdr phdr; - - if (!gelf_getphdr(elf, i, &phdr)) { - pr_warn("elf: failed to get program header %d from '%s': %s\n", i, filename, - elf_errmsg(-1)); - return -ENOENT; - } - if (phdr.p_type != PT_LOAD || !(phdr.p_flags & PF_X)) - continue; - - seg_start = phdr.p_vaddr; - seg_end = seg_start + phdr.p_memsz; - seg_offset = phdr.p_offset; - if (addr >= seg_start && addr < seg_end) - return addr - seg_start + seg_offset; - } - pr_warn("elf: failed to find prog header containing 0x%lx in '%s'\n", addr, filename); - return -ENOENT; -} - /* Return next ELF section of sh_type after scn, or first of that type if scn is NULL. */ static Elf_Scn *elf_find_next_scn_by_type(Elf *elf, int sh_type, Elf_Scn *scn) { @@ -11111,6 +11098,8 @@ for (idx = 0; idx < nr_syms; idx++) { int curr_bind; GElf_Sym sym; + Elf_Scn *sym_scn; + GElf_Shdr sym_sh; if (!gelf_getsym(symbols, idx, &sym)) continue; @@ -11148,12 +11137,28 @@ continue; } } - ret = sym.st_value; + + /* Transform symbol's virtual address (absolute for + * binaries and relative for shared libs) into file + * offset, which is what kernel is expecting for + * uprobe/uretprobe attachment. + * See Documentation/trace/uprobetracer.rst for more + * details. + * This is done by looking up symbol's containing + * section's header and using it's virtual address + * (sh_addr) and corresponding file offset (sh_offset) + * to transform sym.st_value (virtual address) into + * desired final file offset. + */ + sym_scn = elf_getscn(elf, sym.st_shndx); + if (!sym_scn) + continue; + if (!gelf_getshdr(sym_scn, &sym_sh)) + continue; + + ret = sym.st_value - sym_sh.sh_addr + sym_sh.sh_offset; last_bind = curr_bind; } - /* For binaries that are not shared libraries, we need relative offset */ - if (ret > 0 && !is_shared_lib) - ret = elf_find_relative_offset(binary_path, elf, ret); if (ret > 0) break; } @@ -11218,15 +11223,17 @@ static int resolve_full_path(const char *file, char *result, size_t result_sz) { const char *search_paths[3] = {}; - int i; + int i, perm; if (str_has_sfx(file, ".so") || strstr(file, ".so.")) { search_paths[0] = getenv("LD_LIBRARY_PATH"); search_paths[1] = "/usr/lib64:/usr/lib"; search_paths[2] = arch_specific_lib_paths(); + perm = R_OK; } else { search_paths[0] = getenv("PATH"); search_paths[1] = "/usr/bin:/usr/sbin"; + perm = R_OK | X_OK; } for (i = 0; i < ARRAY_SIZE(search_paths); i++) { @@ -11245,8 +11252,8 @@ if (!seg_len) continue; snprintf(result, result_sz, "%.*s/%s", seg_len, s, file); - /* ensure it is an executable file/link */ - if (access(result, R_OK | X_OK) < 0) + /* ensure it has required permissions */ + if (access(result, perm) < 0) continue; pr_debug("resolved '%s' to '%s'\n", file, result); return 0; @@ -11688,7 +11695,7 @@ } *link = bpf_program__attach_raw_tracepoint(prog, tp_name); - return libbpf_get_error(link); + return libbpf_get_error(*link); } /* Common logic for all BPF program types that attach to a btf_id */ --- linux-5.19.0.orig/tools/lib/bpf/libbpf_internal.h +++ linux-5.19.0/tools/lib/bpf/libbpf_internal.h @@ -109,9 +109,9 @@ size_t str_len = strlen(str); size_t sfx_len = strlen(sfx); - if (sfx_len <= str_len) - return strcmp(str + str_len - sfx_len, sfx); - return false; + if (sfx_len > str_len) + return false; + return strcmp(str + str_len - sfx_len, sfx) == 0; } /* Symbol versioning is different between static and shared library. @@ -580,4 +580,9 @@ const char *usdt_provider, const char *usdt_name, __u64 usdt_cookie); +static inline bool is_pow_of_2(size_t x) +{ + return x && (x & (x - 1)) == 0; +} + #endif /* __LIBBPF_LIBBPF_INTERNAL_H */ --- linux-5.19.0.orig/tools/lib/bpf/libbpf_probes.c +++ linux-5.19.0/tools/lib/bpf/libbpf_probes.c @@ -247,7 +247,7 @@ LIBBPF_OPTS(bpf_map_create_opts, opts); int key_size, value_size, max_entries; __u32 btf_key_type_id = 0, btf_value_type_id = 0; - int fd = -1, btf_fd = -1, fd_inner = -1, exp_err = 0, err; + int fd = -1, btf_fd = -1, fd_inner = -1, exp_err = 0, err = 0; opts.map_ifindex = ifindex; @@ -289,7 +289,7 @@ case BPF_MAP_TYPE_RINGBUF: key_size = 0; value_size = 0; - max_entries = 4096; + max_entries = sysconf(_SC_PAGE_SIZE); break; case BPF_MAP_TYPE_STRUCT_OPS: /* we'll get -ENOTSUPP for invalid BTF type ID for struct_ops */ --- linux-5.19.0.orig/tools/lib/bpf/linker.c +++ linux-5.19.0/tools/lib/bpf/linker.c @@ -697,11 +697,6 @@ return err; } -static bool is_pow_of_2(size_t x) -{ - return x && (x & (x - 1)) == 0; -} - static int linker_sanity_check_elf(struct src_obj *obj) { struct src_sec *sec; --- linux-5.19.0.orig/tools/lib/bpf/nlattr.c +++ linux-5.19.0/tools/lib/bpf/nlattr.c @@ -32,7 +32,7 @@ static int nla_ok(const struct nlattr *nla, int remaining) { - return remaining >= sizeof(*nla) && + return remaining >= (int)sizeof(*nla) && nla->nla_len >= sizeof(*nla) && nla->nla_len <= remaining; } --- linux-5.19.0.orig/tools/lib/bpf/ringbuf.c +++ linux-5.19.0/tools/lib/bpf/ringbuf.c @@ -59,6 +59,7 @@ __u32 len = sizeof(info); struct epoll_event *e; struct ring *r; + __u64 mmap_sz; void *tmp; int err; @@ -97,8 +98,7 @@ r->mask = info.max_entries - 1; /* Map writable consumer page */ - tmp = mmap(NULL, rb->page_size, PROT_READ | PROT_WRITE, MAP_SHARED, - map_fd, 0); + tmp = mmap(NULL, rb->page_size, PROT_READ | PROT_WRITE, MAP_SHARED, map_fd, 0); if (tmp == MAP_FAILED) { err = -errno; pr_warn("ringbuf: failed to mmap consumer page for map fd=%d: %d\n", @@ -111,8 +111,12 @@ * data size to allow simple reading of samples that wrap around the * end of a ring buffer. See kernel implementation for details. * */ - tmp = mmap(NULL, rb->page_size + 2 * info.max_entries, PROT_READ, - MAP_SHARED, map_fd, rb->page_size); + mmap_sz = rb->page_size + 2 * (__u64)info.max_entries; + if (mmap_sz != (__u64)(size_t)mmap_sz) { + pr_warn("ringbuf: ring buffer size (%u) is too big\n", info.max_entries); + return libbpf_err(-E2BIG); + } + tmp = mmap(NULL, (size_t)mmap_sz, PROT_READ, MAP_SHARED, map_fd, rb->page_size); if (tmp == MAP_FAILED) { err = -errno; ringbuf_unmap_ring(rb, r); --- linux-5.19.0.orig/tools/lib/bpf/skel_internal.h +++ linux-5.19.0/tools/lib/bpf/skel_internal.h @@ -66,13 +66,13 @@ const char *errstr; }; -long bpf_sys_bpf(__u32 cmd, void *attr, __u32 attr_size); +long kern_sys_bpf(__u32 cmd, void *attr, __u32 attr_size); static inline int skel_sys_bpf(enum bpf_cmd cmd, union bpf_attr *attr, unsigned int size) { #ifdef __KERNEL__ - return bpf_sys_bpf(cmd, attr, size); + return kern_sys_bpf(cmd, attr, size); #else return syscall(__NR_bpf, cmd, attr, size); #endif --- linux-5.19.0.orig/tools/lib/bpf/usdt.bpf.h +++ linux-5.19.0/tools/lib/bpf/usdt.bpf.h @@ -244,7 +244,7 @@ */ #define BPF_USDT(name, args...) \ name(struct pt_regs *ctx); \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args); \ typeof(name(0)) name(struct pt_regs *ctx) \ { \ @@ -253,7 +253,7 @@ return ____##name(___bpf_usdt_args(args)); \ _Pragma("GCC diagnostic pop") \ } \ -static __attribute__((always_inline)) typeof(name(0)) \ +static __always_inline typeof(name(0)) \ ____##name(struct pt_regs *ctx, ##args) #endif /* __USDT_BPF_H__ */ --- linux-5.19.0.orig/tools/lib/bpf/usdt.c +++ linux-5.19.0/tools/lib/bpf/usdt.c @@ -441,7 +441,7 @@ return 0; } -static int parse_lib_segs(int pid, const char *lib_path, struct elf_seg **segs, size_t *seg_cnt) +static int parse_vma_segs(int pid, const char *lib_path, struct elf_seg **segs, size_t *seg_cnt) { char path[PATH_MAX], line[PATH_MAX], mode[16]; size_t seg_start, seg_end, seg_off; @@ -531,35 +531,40 @@ return err; } -static struct elf_seg *find_elf_seg(struct elf_seg *segs, size_t seg_cnt, long addr, bool relative) +static struct elf_seg *find_elf_seg(struct elf_seg *segs, size_t seg_cnt, long virtaddr) { struct elf_seg *seg; int i; - if (relative) { - /* for shared libraries, address is relative offset and thus - * should be fall within logical offset-based range of - * [offset_start, offset_end) - */ - for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { - if (seg->offset <= addr && addr < seg->offset + (seg->end - seg->start)) - return seg; - } - } else { - /* for binaries, address is absolute and thus should be within - * absolute address range of [seg_start, seg_end) - */ - for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { - if (seg->start <= addr && addr < seg->end) - return seg; - } + /* for ELF binaries (both executables and shared libraries), we are + * given virtual address (absolute for executables, relative for + * libraries) which should match address range of [seg_start, seg_end) + */ + for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { + if (seg->start <= virtaddr && virtaddr < seg->end) + return seg; } + return NULL; +} +static struct elf_seg *find_vma_seg(struct elf_seg *segs, size_t seg_cnt, long offset) +{ + struct elf_seg *seg; + int i; + + /* for VMA segments from /proc//maps file, provided "address" is + * actually a file offset, so should be fall within logical + * offset-based range of [offset_start, offset_end) + */ + for (i = 0, seg = segs; i < seg_cnt; i++, seg++) { + if (seg->offset <= offset && offset < seg->offset + (seg->end - seg->start)) + return seg; + } return NULL; } -static int parse_usdt_note(Elf *elf, const char *path, long base_addr, - GElf_Nhdr *nhdr, const char *data, size_t name_off, size_t desc_off, +static int parse_usdt_note(Elf *elf, const char *path, GElf_Nhdr *nhdr, + const char *data, size_t name_off, size_t desc_off, struct usdt_note *usdt_note); static int parse_usdt_spec(struct usdt_spec *spec, const struct usdt_note *note, __u64 usdt_cookie); @@ -568,8 +573,8 @@ const char *usdt_provider, const char *usdt_name, __u64 usdt_cookie, struct usdt_target **out_targets, size_t *out_target_cnt) { - size_t off, name_off, desc_off, seg_cnt = 0, lib_seg_cnt = 0, target_cnt = 0; - struct elf_seg *segs = NULL, *lib_segs = NULL; + size_t off, name_off, desc_off, seg_cnt = 0, vma_seg_cnt = 0, target_cnt = 0; + struct elf_seg *segs = NULL, *vma_segs = NULL; struct usdt_target *targets = NULL, *target; long base_addr = 0; Elf_Scn *notes_scn, *base_scn; @@ -613,8 +618,7 @@ struct elf_seg *seg = NULL; void *tmp; - err = parse_usdt_note(elf, path, base_addr, &nhdr, - data->d_buf, name_off, desc_off, ¬e); + err = parse_usdt_note(elf, path, &nhdr, data->d_buf, name_off, desc_off, ¬e); if (err) goto err_out; @@ -654,30 +658,29 @@ usdt_rel_ip += base_addr - note.base_addr; } - if (ehdr.e_type == ET_EXEC) { - /* When attaching uprobes (which what USDTs basically - * are) kernel expects a relative IP to be specified, - * so if we are attaching to an executable ELF binary - * (i.e., not a shared library), we need to calculate - * proper relative IP based on ELF's load address - */ - seg = find_elf_seg(segs, seg_cnt, usdt_abs_ip, false /* relative */); - if (!seg) { - err = -ESRCH; - pr_warn("usdt: failed to find ELF program segment for '%s:%s' in '%s' at IP 0x%lx\n", - usdt_provider, usdt_name, path, usdt_abs_ip); - goto err_out; - } - if (!seg->is_exec) { - err = -ESRCH; - pr_warn("usdt: matched ELF binary '%s' segment [0x%lx, 0x%lx) for '%s:%s' at IP 0x%lx is not executable\n", - path, seg->start, seg->end, usdt_provider, usdt_name, - usdt_abs_ip); - goto err_out; - } + /* When attaching uprobes (which is what USDTs basically are) + * kernel expects file offset to be specified, not a relative + * virtual address, so we need to translate virtual address to + * file offset, for both ET_EXEC and ET_DYN binaries. + */ + seg = find_elf_seg(segs, seg_cnt, usdt_abs_ip); + if (!seg) { + err = -ESRCH; + pr_warn("usdt: failed to find ELF program segment for '%s:%s' in '%s' at IP 0x%lx\n", + usdt_provider, usdt_name, path, usdt_abs_ip); + goto err_out; + } + if (!seg->is_exec) { + err = -ESRCH; + pr_warn("usdt: matched ELF binary '%s' segment [0x%lx, 0x%lx) for '%s:%s' at IP 0x%lx is not executable\n", + path, seg->start, seg->end, usdt_provider, usdt_name, + usdt_abs_ip); + goto err_out; + } + /* translate from virtual address to file offset */ + usdt_rel_ip = usdt_abs_ip - seg->start + seg->offset; - usdt_rel_ip = usdt_abs_ip - (seg->start - seg->offset); - } else if (!man->has_bpf_cookie) { /* ehdr.e_type == ET_DYN */ + if (ehdr.e_type == ET_DYN && !man->has_bpf_cookie) { /* If we don't have BPF cookie support but need to * attach to a shared library, we'll need to know and * record absolute addresses of attach points due to @@ -697,9 +700,9 @@ goto err_out; } - /* lib_segs are lazily initialized only if necessary */ - if (lib_seg_cnt == 0) { - err = parse_lib_segs(pid, path, &lib_segs, &lib_seg_cnt); + /* vma_segs are lazily initialized only if necessary */ + if (vma_seg_cnt == 0) { + err = parse_vma_segs(pid, path, &vma_segs, &vma_seg_cnt); if (err) { pr_warn("usdt: failed to get memory segments in PID %d for shared library '%s': %d\n", pid, path, err); @@ -707,7 +710,7 @@ } } - seg = find_elf_seg(lib_segs, lib_seg_cnt, usdt_rel_ip, true /* relative */); + seg = find_vma_seg(vma_segs, vma_seg_cnt, usdt_rel_ip); if (!seg) { err = -ESRCH; pr_warn("usdt: failed to find shared lib memory segment for '%s:%s' in '%s' at relative IP 0x%lx\n", @@ -715,7 +718,7 @@ goto err_out; } - usdt_abs_ip = seg->start + (usdt_rel_ip - seg->offset); + usdt_abs_ip = seg->start - seg->offset + usdt_rel_ip; } pr_debug("usdt: probe for '%s:%s' in %s '%s': addr 0x%lx base 0x%lx (resolved abs_ip 0x%lx rel_ip 0x%lx) args '%s' in segment [0x%lx, 0x%lx) at offset 0x%lx\n", @@ -723,7 +726,7 @@ note.loc_addr, note.base_addr, usdt_abs_ip, usdt_rel_ip, note.args, seg ? seg->start : 0, seg ? seg->end : 0, seg ? seg->offset : 0); - /* Adjust semaphore address to be a relative offset */ + /* Adjust semaphore address to be a file offset */ if (note.sema_addr) { if (!man->has_sema_refcnt) { pr_warn("usdt: kernel doesn't support USDT semaphore refcounting for '%s:%s' in '%s'\n", @@ -732,7 +735,7 @@ goto err_out; } - seg = find_elf_seg(segs, seg_cnt, note.sema_addr, false /* relative */); + seg = find_elf_seg(segs, seg_cnt, note.sema_addr); if (!seg) { err = -ESRCH; pr_warn("usdt: failed to find ELF loadable segment with semaphore of '%s:%s' in '%s' at 0x%lx\n", @@ -747,7 +750,7 @@ goto err_out; } - usdt_sema_off = note.sema_addr - (seg->start - seg->offset); + usdt_sema_off = note.sema_addr - seg->start + seg->offset; pr_debug("usdt: sema for '%s:%s' in %s '%s': addr 0x%lx base 0x%lx (resolved 0x%lx) in segment [0x%lx, 0x%lx] at offset 0x%lx\n", usdt_provider, usdt_name, ehdr.e_type == ET_EXEC ? "exec" : "lib ", @@ -770,7 +773,7 @@ target->rel_ip = usdt_rel_ip; target->sema_off = usdt_sema_off; - /* notes->args references strings from Elf itself, so they can + /* notes.args references strings from Elf itself, so they can * be referenced safely until elf_end() call */ target->spec_str = note.args; @@ -788,7 +791,7 @@ err_out: free(segs); - free(lib_segs); + free(vma_segs); if (err < 0) free(targets); return err; @@ -1089,8 +1092,8 @@ /* Parse out USDT ELF note from '.note.stapsdt' section. * Logic inspired by perf's code. */ -static int parse_usdt_note(Elf *elf, const char *path, long base_addr, - GElf_Nhdr *nhdr, const char *data, size_t name_off, size_t desc_off, +static int parse_usdt_note(Elf *elf, const char *path, GElf_Nhdr *nhdr, + const char *data, size_t name_off, size_t desc_off, struct usdt_note *note) { const char *provider, *name, *args; @@ -1347,25 +1350,23 @@ static int parse_usdt_arg(const char *arg_str, int arg_num, struct usdt_arg_spec *arg) { - char *reg_name = NULL; + char reg_name[16]; int arg_sz, len, reg_off; long off; - if (sscanf(arg_str, " %d @ \[ %m[a-z0-9], %ld ] %n", &arg_sz, ®_name, &off, &len) == 3) { + if (sscanf(arg_str, " %d @ \[ %15[a-z0-9], %ld ] %n", &arg_sz, reg_name, &off, &len) == 3) { /* Memory dereference case, e.g., -4@[sp, 96] */ arg->arg_type = USDT_ARG_REG_DEREF; arg->val_off = off; reg_off = calc_pt_regs_off(reg_name); - free(reg_name); if (reg_off < 0) return reg_off; arg->reg_off = reg_off; - } else if (sscanf(arg_str, " %d @ \[ %m[a-z0-9] ] %n", &arg_sz, ®_name, &len) == 2) { + } else if (sscanf(arg_str, " %d @ \[ %15[a-z0-9] ] %n", &arg_sz, reg_name, &len) == 2) { /* Memory dereference case, e.g., -4@[sp] */ arg->arg_type = USDT_ARG_REG_DEREF; arg->val_off = 0; reg_off = calc_pt_regs_off(reg_name); - free(reg_name); if (reg_off < 0) return reg_off; arg->reg_off = reg_off; @@ -1374,12 +1375,11 @@ arg->arg_type = USDT_ARG_CONST; arg->val_off = off; arg->reg_off = 0; - } else if (sscanf(arg_str, " %d @ %m[a-z0-9] %n", &arg_sz, ®_name, &len) == 2) { + } else if (sscanf(arg_str, " %d @ %15[a-z0-9] %n", &arg_sz, reg_name, &len) == 2) { /* Register read case, e.g., -8@x4 */ arg->arg_type = USDT_ARG_REG; arg->val_off = 0; reg_off = calc_pt_regs_off(reg_name); - free(reg_name); if (reg_off < 0) return reg_off; arg->reg_off = reg_off; --- linux-5.19.0.orig/tools/lib/bpf/xsk.c +++ linux-5.19.0/tools/lib/bpf/xsk.c @@ -1147,8 +1147,6 @@ goto out_mmap_tx; } - ctx->prog_fd = -1; - if (!(xsk->config.libbpf_flags & XSK_LIBBPF_FLAGS__INHIBIT_PROG_LOAD)) { err = __xsk_setup_xdp_prog(xsk, NULL); if (err) @@ -1229,13 +1227,16 @@ ctx = xsk->ctx; umem = ctx->umem; - if (ctx->prog_fd != -1) { + + if (ctx->refcount == 1) { xsk_delete_bpf_maps(xsk); close(ctx->prog_fd); if (ctx->has_bpf_link) close(ctx->link_fd); } + xsk_put_ctx(ctx, true); + err = xsk_get_mmap_offsets(xsk->fd, &off); if (!err) { if (xsk->rx) { @@ -1248,8 +1249,6 @@ } } - xsk_put_ctx(ctx, true); - umem->refcount--; /* Do not close an fd that also has an associated umem connected * to it. --- linux-5.19.0.orig/tools/lib/perf/evlist.c +++ linux-5.19.0/tools/lib/perf/evlist.c @@ -441,6 +441,7 @@ perf_evlist__for_each_entry(evlist, evsel) { bool overwrite = evsel->attr.write_backward; + enum fdarray_flags flgs; struct perf_mmap *map; int *output, fd, cpu; @@ -486,6 +487,7 @@ if (ops->idx) ops->idx(evlist, evsel, mp, idx); + pr_debug("idx %d: mmapping fd %d\n", idx, *output); if (ops->mmap(map, mp, *output, evlist_cpu) < 0) return -1; @@ -494,6 +496,7 @@ if (!idx) perf_evlist__set_mmap_first(evlist, map, overwrite); } else { + pr_debug("idx %d: set output fd %d -> %d\n", idx, fd, *output); if (ioctl(fd, PERF_EVENT_IOC_SET_OUTPUT, *output) != 0) return -1; @@ -502,8 +505,8 @@ revent = !overwrite ? POLLIN : 0; - if (!evsel->system_wide && - perf_evlist__add_pollfd(evlist, fd, map, revent, fdarray_flag__default) < 0) { + flgs = evsel->system_wide ? fdarray_flag__nonfilterable : fdarray_flag__default; + if (perf_evlist__add_pollfd(evlist, fd, map, revent, flgs) < 0) { perf_mmap__put(map); return -1; } @@ -520,6 +523,48 @@ } static int +mmap_per_thread(struct perf_evlist *evlist, struct perf_evlist_mmap_ops *ops, + struct perf_mmap_param *mp) +{ + int nr_threads = perf_thread_map__nr(evlist->threads); + int nr_cpus = perf_cpu_map__nr(evlist->all_cpus); + int cpu, thread, idx = 0; + int nr_mmaps = 0; + + pr_debug("%s: nr cpu values (may include -1) %d nr threads %d\n", + __func__, nr_cpus, nr_threads); + + /* per-thread mmaps */ + for (thread = 0; thread < nr_threads; thread++, idx++) { + int output = -1; + int output_overwrite = -1; + + if (mmap_per_evsel(evlist, ops, idx, mp, 0, thread, &output, + &output_overwrite, &nr_mmaps)) + goto out_unmap; + } + + /* system-wide mmaps i.e. per-cpu */ + for (cpu = 1; cpu < nr_cpus; cpu++, idx++) { + int output = -1; + int output_overwrite = -1; + + if (mmap_per_evsel(evlist, ops, idx, mp, cpu, 0, &output, + &output_overwrite, &nr_mmaps)) + goto out_unmap; + } + + if (nr_mmaps != evlist->nr_mmaps) + pr_err("Miscounted nr_mmaps %d vs %d\n", nr_mmaps, evlist->nr_mmaps); + + return 0; + +out_unmap: + perf_evlist__munmap(evlist); + return -1; +} + +static int mmap_per_cpu(struct perf_evlist *evlist, struct perf_evlist_mmap_ops *ops, struct perf_mmap_param *mp) { @@ -528,6 +573,8 @@ int nr_mmaps = 0; int cpu, thread; + pr_debug("%s: nr cpu values %d nr threads %d\n", __func__, nr_cpus, nr_threads); + for (cpu = 0; cpu < nr_cpus; cpu++) { int output = -1; int output_overwrite = -1; @@ -569,6 +616,7 @@ struct perf_evlist_mmap_ops *ops, struct perf_mmap_param *mp) { + const struct perf_cpu_map *cpus = evlist->all_cpus; struct perf_evsel *evsel; if (!ops || !ops->get || !ops->mmap) @@ -588,6 +636,9 @@ if (evlist->pollfd.entries == NULL && perf_evlist__alloc_pollfd(evlist) < 0) return -ENOMEM; + if (perf_cpu_map__empty(cpus)) + return mmap_per_thread(evlist, ops, mp); + return mmap_per_cpu(evlist, ops, mp); } --- linux-5.19.0.orig/tools/objtool/check.c +++ linux-5.19.0/tools/objtool/check.c @@ -162,32 +162,34 @@ /* * Unfortunately these have to be hard coded because the noreturn - * attribute isn't provided in ELF data. + * attribute isn't provided in ELF data. Keep 'em sorted. */ static const char * const global_noreturns[] = { + "__invalid_creds", + "__module_put_and_kthread_exit", + "__reiserfs_panic", "__stack_chk_fail", - "panic", + "__ubsan_handle_builtin_unreachable", + "cpu_bringup_and_idle", + "cpu_startup_entry", "do_exit", + "do_group_exit", "do_task_dead", - "kthread_exit", - "make_task_dead", - "__module_put_and_kthread_exit", + "ex_handler_msr_mce", + "fortify_panic", "kthread_complete_and_exit", - "__reiserfs_panic", + "kthread_exit", + "kunit_try_catch_throw", "lbug_with_loc", - "fortify_panic", - "usercopy_abort", "machine_real_restart", + "make_task_dead", + "panic", "rewind_stack_and_make_dead", - "kunit_try_catch_throw", - "xen_start_kernel", - "cpu_bringup_and_idle", - "do_group_exit", + "sev_es_terminate", + "snp_abort", "stop_this_cpu", - "__invalid_creds", - "cpu_startup_entry", - "__ubsan_handle_builtin_unreachable", - "ex_handler_msr_mce", + "usercopy_abort", + "xen_start_kernel", }; if (!func) @@ -997,6 +999,16 @@ "__tsan_read_write4", "__tsan_read_write8", "__tsan_read_write16", + "__tsan_volatile_read1", + "__tsan_volatile_read2", + "__tsan_volatile_read4", + "__tsan_volatile_read8", + "__tsan_volatile_read16", + "__tsan_volatile_write1", + "__tsan_volatile_write2", + "__tsan_volatile_write4", + "__tsan_volatile_write8", + "__tsan_volatile_write16", "__tsan_atomic8_load", "__tsan_atomic16_load", "__tsan_atomic32_load", @@ -4096,7 +4108,8 @@ * These sections can reference text addresses, but not with * the intent to indirect branch to them. */ - if (!strncmp(sec->name, ".discard", 8) || + if ((!strncmp(sec->name, ".discard", 8) && + strcmp(sec->name, ".discard.ibt_endbr_noseal")) || !strncmp(sec->name, ".debug", 6) || !strcmp(sec->name, ".altinstructions") || !strcmp(sec->name, ".ibt_endbr_seal") || --- linux-5.19.0.orig/tools/objtool/elf.c +++ linux-5.19.0/tools/objtool/elf.c @@ -619,6 +619,11 @@ Elf64_Xword entsize = symtab->sh.sh_entsize; int max_idx, idx = sym->idx; Elf_Scn *s, *t = NULL; + bool is_special_shndx = sym->sym.st_shndx >= SHN_LORESERVE && + sym->sym.st_shndx != SHN_XINDEX; + + if (is_special_shndx) + shndx = sym->sym.st_shndx; s = elf_getscn(elf->elf, symtab->idx); if (!s) { @@ -704,7 +709,7 @@ } /* setup extended section index magic and write the symbol */ - if (shndx >= SHN_UNDEF && shndx < SHN_LORESERVE) { + if ((shndx >= SHN_UNDEF && shndx < SHN_LORESERVE) || is_special_shndx) { sym->sym.st_shndx = shndx; if (!shndx_data) shndx = 0; --- linux-5.19.0.orig/tools/perf/Makefile.config +++ linux-5.19.0/tools/perf/Makefile.config @@ -239,33 +239,18 @@ endif # Try different combinations to accommodate systems that only have -# python[2][3]-config in weird combinations in the following order of -# priority from lowest to highest: -# * python3-config -# * python-config -# * python2-config as per pep-0394. -# * $(PYTHON)-config (If PYTHON is user supplied but PYTHON_CONFIG isn't) -# -PYTHON_AUTO := python-config -PYTHON_AUTO := $(if $(call get-executable,python3-config),python3-config,$(PYTHON_AUTO)) -PYTHON_AUTO := $(if $(call get-executable,python-config),python-config,$(PYTHON_AUTO)) -PYTHON_AUTO := $(if $(call get-executable,python2-config),python2-config,$(PYTHON_AUTO)) - -# If PYTHON is defined but PYTHON_CONFIG isn't, then take $(PYTHON)-config as if it was the user -# supplied value for PYTHON_CONFIG. Because it's "user supplied", error out if it doesn't exist. -ifdef PYTHON - ifndef PYTHON_CONFIG - PYTHON_CONFIG_AUTO := $(call get-executable,$(PYTHON)-config) - PYTHON_CONFIG := $(if $(PYTHON_CONFIG_AUTO),$(PYTHON_CONFIG_AUTO),\ - $(call $(error $(PYTHON)-config not found))) - endif -endif - -# Select either auto detected python and python-config or use user supplied values if they are -# defined. get-executable-or-default fails with an error if the first argument is supplied but -# doesn't exist. -override PYTHON_CONFIG := $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON_AUTO)) -override PYTHON := $(call get-executable-or-default,PYTHON,$(subst -config,,$(PYTHON_AUTO))) +# python[2][-config] in weird combinations but always preferring +# python2 and python2-config as per pep-0394. If python2 or python +# aren't found, then python3 is used. +PYTHON_AUTO := python +PYTHON_AUTO := $(if $(call get-executable,python3),python3,$(PYTHON_AUTO)) +PYTHON_AUTO := $(if $(call get-executable,python),python,$(PYTHON_AUTO)) +PYTHON_AUTO := $(if $(call get-executable,python2),python2,$(PYTHON_AUTO)) +override PYTHON := $(call get-executable-or-default,PYTHON,$(PYTHON_AUTO)) +PYTHON_AUTO_CONFIG := \ + $(if $(call get-executable,$(PYTHON)-config),$(PYTHON)-config,python-config) +override PYTHON_CONFIG := \ + $(call get-executable-or-default,PYTHON_CONFIG,$(PYTHON_AUTO_CONFIG)) grep-libs = $(filter -l%,$(1)) strip-libs = $(filter-out -l%,$(1)) @@ -889,6 +874,10 @@ endif endif +ifdef HAVE_NO_LIBBFD + feature-libbfd := 0 + $(info libbfd overidden OFF) +else ifndef NO_LIBBFD ifeq ($(feature-libbfd), 1) @@ -921,6 +910,8 @@ endif endif +endif + ifdef NO_DEMANGLE CFLAGS += -DNO_DEMANGLE else --- linux-5.19.0.orig/tools/perf/arch/x86/util/evlist.c +++ linux-5.19.0/tools/perf/arch/x86/util/evlist.c @@ -8,8 +8,13 @@ #define TOPDOWN_L1_EVENTS "{slots,topdown-retiring,topdown-bad-spec,topdown-fe-bound,topdown-be-bound}" #define TOPDOWN_L2_EVENTS "{slots,topdown-retiring,topdown-bad-spec,topdown-fe-bound,topdown-be-bound,topdown-heavy-ops,topdown-br-mispredict,topdown-fetch-lat,topdown-mem-bound}" -int arch_evlist__add_default_attrs(struct evlist *evlist) +int arch_evlist__add_default_attrs(struct evlist *evlist, + struct perf_event_attr *attrs, + size_t nr_attrs) { + if (nr_attrs) + return __evlist__add_default_attrs(evlist, attrs, nr_attrs); + if (!pmu_have_event("cpu", "slots")) return 0; --- linux-5.19.0.orig/tools/perf/arch/x86/util/intel-pt.c +++ linux-5.19.0/tools/perf/arch/x86/util/intel-pt.c @@ -871,7 +871,7 @@ * User space tasks can migrate between CPUs, so when tracing * selected CPUs, sideband for all CPUs is still needed. */ - need_system_wide_tracking = evlist->core.has_user_cpus && + need_system_wide_tracking = opts->target.cpu_list && !intel_pt_evsel->core.attr.exclude_user; tracking_evsel = evlist__add_aux_dummy(evlist, need_system_wide_tracking); --- linux-5.19.0.orig/tools/perf/builtin-list.c +++ linux-5.19.0/tools/perf/builtin-list.c @@ -10,7 +10,7 @@ */ #include "builtin.h" -#include "util/parse-events.h" +#include "util/print-events.h" #include "util/pmu.h" #include "util/pmu-hybrid.h" #include "util/debug.h" --- linux-5.19.0.orig/tools/perf/builtin-lock.c +++ linux-5.19.0/tools/perf/builtin-lock.c @@ -13,6 +13,7 @@ #include #include #include "util/trace-event.h" +#include "util/tracepoint.h" #include "util/debug.h" #include "util/session.h" --- linux-5.19.0.orig/tools/perf/builtin-record.c +++ linux-5.19.0/tools/perf/builtin-record.c @@ -1892,14 +1892,18 @@ err = perf_event__synthesize_bpf_events(session, process_synthesized_event, machine, opts); - if (err < 0) + if (err < 0) { pr_warning("Couldn't synthesize bpf events.\n"); + err = 0; + } if (rec->opts.synth & PERF_SYNTH_CGROUP) { err = perf_event__synthesize_cgroups(tool, process_synthesized_event, machine); - if (err < 0) + if (err < 0) { pr_warning("Couldn't synthesize cgroup events.\n"); + err = 0; + } } if (rec->opts.nr_threads_synthesize > 1) { @@ -3331,16 +3335,24 @@ struct option *record_options = __record_options; -static void record__mmap_cpu_mask_init(struct mmap_cpu_mask *mask, struct perf_cpu_map *cpus) +static int record__mmap_cpu_mask_init(struct mmap_cpu_mask *mask, struct perf_cpu_map *cpus) { struct perf_cpu cpu; int idx; if (cpu_map__is_dummy(cpus)) - return; + return 0; - perf_cpu_map__for_each_cpu(cpu, idx, cpus) + perf_cpu_map__for_each_cpu(cpu, idx, cpus) { + if (cpu.cpu == -1) + continue; + /* Return ENODEV is input cpu is greater than max cpu */ + if ((unsigned long)cpu.cpu > mask->nbits) + return -ENODEV; set_bit(cpu.cpu, mask->bits); + } + + return 0; } static int record__mmap_cpu_mask_init_spec(struct mmap_cpu_mask *mask, const char *mask_spec) @@ -3352,7 +3364,9 @@ return -ENOMEM; bitmap_zero(mask->bits, mask->nbits); - record__mmap_cpu_mask_init(mask, cpus); + if (record__mmap_cpu_mask_init(mask, cpus)) + return -ENODEV; + perf_cpu_map__put(cpus); return 0; @@ -3434,7 +3448,12 @@ pr_err("Failed to allocate CPUs mask\n"); return ret; } - record__mmap_cpu_mask_init(&cpus_mask, cpus); + + ret = record__mmap_cpu_mask_init(&cpus_mask, cpus); + if (ret) { + pr_err("Failed to init cpu mask\n"); + goto out_free_cpu_mask; + } ret = record__thread_mask_alloc(&full_mask, cpu__max_cpu().cpu); if (ret) { @@ -3675,7 +3694,8 @@ if (ret) return ret; - record__mmap_cpu_mask_init(&rec->thread_masks->maps, cpus); + if (record__mmap_cpu_mask_init(&rec->thread_masks->maps, cpus)) + return -ENODEV; rec->nr_threads = 1; --- linux-5.19.0.orig/tools/perf/builtin-script.c +++ linux-5.19.0/tools/perf/builtin-script.c @@ -441,6 +441,9 @@ struct perf_event_attr *attr = &evsel->core.attr; bool allow_user_set; + if (evsel__is_dummy_event(evsel)) + return 0; + if (perf_header__has_feat(&session->header, HEADER_STAT)) return 0; --- linux-5.19.0.orig/tools/perf/builtin-stat.c +++ linux-5.19.0/tools/perf/builtin-stat.c @@ -573,26 +573,14 @@ return err; } - if (stat_config.initial_delay < 0) { - pr_info(EVLIST_DISABLED_MSG); - return 0; - } - - if (stat_config.initial_delay > 0) { - pr_info(EVLIST_DISABLED_MSG); - usleep(stat_config.initial_delay * USEC_PER_MSEC); - } - /* * We need to enable counters only if: * - we don't have tracee (attaching to task or cpu) * - we have initial delay configured */ - if (!target__none(&target) || stat_config.initial_delay) { + if (!target__none(&target)) { if (!all_counters_use_bpf) evlist__enable(evsel_list); - if (stat_config.initial_delay > 0) - pr_info(EVLIST_ENABLED_MSG); } return 0; } @@ -826,6 +814,7 @@ } evlist__for_each_entry(evsel_list, counter) { + counter->reset_group = false; if (bpf_counter__load(counter, &target)) return -1; if (!evsel__is_bpf(counter)) @@ -966,18 +955,31 @@ return err; } - /* - * Enable counters and exec the command: - */ - if (forks) { + if (stat_config.initial_delay) { + pr_info(EVLIST_DISABLED_MSG); + } else { err = enable_counters(); if (err) return -1; + } + + /* Exec the command, if any */ + if (forks) evlist__start_workload(evsel_list); - t0 = rdclock(); - clock_gettime(CLOCK_MONOTONIC, &ref_time); + if (stat_config.initial_delay > 0) { + usleep(stat_config.initial_delay * USEC_PER_MSEC); + err = enable_counters(); + if (err) + return -1; + + pr_info(EVLIST_ENABLED_MSG); + } + + t0 = rdclock(); + clock_gettime(CLOCK_MONOTONIC, &ref_time); + if (forks) { if (interval || timeout || evlist__ctlfd_initialized(evsel_list)) status = dispatch_events(forks, timeout, interval, ×); if (child_pid != -1) { @@ -995,13 +997,6 @@ if (WIFSIGNALED(status)) psignal(WTERMSIG(status), argv[0]); } else { - err = enable_counters(); - if (err) - return -1; - - t0 = rdclock(); - clock_gettime(CLOCK_MONOTONIC, &ref_time); - status = dispatch_events(forks, timeout, interval, ×); } @@ -1686,12 +1681,6 @@ { .type = PERF_TYPE_HARDWARE, .config = PERF_COUNT_HW_BRANCH_MISSES }, }; - struct perf_event_attr default_sw_attrs[] = { - { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_TASK_CLOCK }, - { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CONTEXT_SWITCHES }, - { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_CPU_MIGRATIONS }, - { .type = PERF_TYPE_SOFTWARE, .config = PERF_COUNT_SW_PAGE_FAULTS }, -}; /* * Detailed stats (-d), covering the L1 and last level data caches: @@ -1783,6 +1772,9 @@ (PERF_COUNT_HW_CACHE_OP_PREFETCH << 8) | (PERF_COUNT_HW_CACHE_RESULT_MISS << 16) }, }; + + struct perf_event_attr default_null_attrs[] = {}; + /* Set attrs if no event is selected and !null_run: */ if (stat_config.null_run) return 0; @@ -1946,31 +1938,10 @@ free(str); } - if (!evsel_list->core.nr_entries) { - if (perf_pmu__has_hybrid()) { - struct parse_events_error errinfo; - const char *hybrid_str = "cycles,instructions,branches,branch-misses"; - - if (target__has_cpu(&target)) - default_sw_attrs[0].config = PERF_COUNT_SW_CPU_CLOCK; - - if (evlist__add_default_attrs(evsel_list, - default_sw_attrs) < 0) { - return -1; - } - - parse_events_error__init(&errinfo); - err = parse_events(evsel_list, hybrid_str, &errinfo); - if (err) { - fprintf(stderr, - "Cannot set up hybrid events %s: %d\n", - hybrid_str, err); - parse_events_error__print(&errinfo, hybrid_str); - } - parse_events_error__exit(&errinfo); - return err ? -1 : 0; - } + if (!stat_config.topdown_level) + stat_config.topdown_level = TOPDOWN_MAX_LEVEL; + if (!evsel_list->core.nr_entries) { if (target__has_cpu(&target)) default_attrs0[0].config = PERF_COUNT_SW_CPU_CLOCK; @@ -1986,9 +1957,8 @@ } if (evlist__add_default_attrs(evsel_list, default_attrs1) < 0) return -1; - - stat_config.topdown_level = TOPDOWN_MAX_LEVEL; - if (arch_evlist__add_default_attrs(evsel_list) < 0) + /* Platform specific attrs */ + if (evlist__add_default_attrs(evsel_list, default_null_attrs) < 0) return -1; } --- linux-5.19.0.orig/tools/perf/builtin-timechart.c +++ linux-5.19.0/tools/perf/builtin-timechart.c @@ -36,6 +36,7 @@ #include "util/data.h" #include "util/debug.h" #include "util/string2.h" +#include "util/tracepoint.h" #include #ifdef LACKS_OPEN_MEMSTREAM_PROTOTYPE --- linux-5.19.0.orig/tools/perf/builtin-trace.c +++ linux-5.19.0/tools/perf/builtin-trace.c @@ -53,6 +53,7 @@ #include "trace-event.h" #include "util/parse-events.h" #include "util/bpf-loader.h" +#include "util/tracepoint.h" #include "callchain.h" #include "print_binary.h" #include "string2.h" @@ -87,6 +88,8 @@ # define F_LINUX_SPECIFIC_BASE 1024 #endif +#define RAW_SYSCALL_ARGS_NUM 6 + /* * strtoul: Go from a string to a value, i.e. for msr: MSR_FS_BASE to 0xc0000100 */ @@ -107,7 +110,7 @@ const char *sys_enter, *sys_exit; } bpf_prog_name; - struct syscall_arg_fmt arg[6]; + struct syscall_arg_fmt arg[RAW_SYSCALL_ARGS_NUM]; u8 nr_args; bool errpid; bool timeout; @@ -1228,7 +1231,7 @@ */ struct bpf_map_syscall_entry { bool enabled; - u16 string_args_len[6]; + u16 string_args_len[RAW_SYSCALL_ARGS_NUM]; }; /* @@ -1660,7 +1663,7 @@ { int idx; - if (nr_args == 6 && sc->fmt && sc->fmt->nr_args != 0) + if (nr_args == RAW_SYSCALL_ARGS_NUM && sc->fmt && sc->fmt->nr_args != 0) nr_args = sc->fmt->nr_args; sc->arg_fmt = calloc(nr_args, sizeof(*sc->arg_fmt)); @@ -1793,11 +1796,11 @@ #endif sc = trace->syscalls.table + id; if (sc->nonexistent) - return 0; + return -EEXIST; if (name == NULL) { sc->nonexistent = true; - return 0; + return -EEXIST; } sc->name = name; @@ -1811,11 +1814,18 @@ sc->tp_format = trace_event__tp_format("syscalls", tp_name); } - if (syscall__alloc_arg_fmts(sc, IS_ERR(sc->tp_format) ? 6 : sc->tp_format->format.nr_fields)) - return -ENOMEM; - - if (IS_ERR(sc->tp_format)) + /* + * Fails to read trace point format via sysfs node, so the trace point + * doesn't exist. Set the 'nonexistent' flag as true. + */ + if (IS_ERR(sc->tp_format)) { + sc->nonexistent = true; return PTR_ERR(sc->tp_format); + } + + if (syscall__alloc_arg_fmts(sc, IS_ERR(sc->tp_format) ? + RAW_SYSCALL_ARGS_NUM : sc->tp_format->format.nr_fields)) + return -ENOMEM; sc->args = sc->tp_format->format.fields; /* @@ -2133,11 +2143,8 @@ (err = trace__read_syscall_info(trace, id)) != 0) goto out_cant_read; - if (trace->syscalls.table[id].name == NULL) { - if (trace->syscalls.table[id].nonexistent) - return NULL; + if (trace->syscalls.table && trace->syscalls.table[id].nonexistent) goto out_cant_read; - } return &trace->syscalls.table[id]; --- linux-5.19.0.orig/tools/perf/dlfilters/dlfilter-show-cycles.c +++ linux-5.19.0/tools/perf/dlfilters/dlfilter-show-cycles.c @@ -98,9 +98,9 @@ static void print_vals(__u64 cycles, __u64 delta) { if (delta) - printf("%10llu %10llu ", cycles, delta); + printf("%10llu %10llu ", (unsigned long long)cycles, (unsigned long long)delta); else - printf("%10llu %10s ", cycles, ""); + printf("%10llu %10s ", (unsigned long long)cycles, ""); } int filter_event(void *data, const struct perf_dlfilter_sample *sample, void *ctx) --- linux-5.19.0.orig/tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json +++ linux-5.19.0/tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json @@ -112,21 +112,21 @@ "MetricName": "indirect_branch" }, { - "MetricExpr": "(armv8_pmuv3_0@event\\=0x1014@ + armv8_pmuv3_0@event\\=0x1018@) / BR_MIS_PRED", + "MetricExpr": "(armv8_pmuv3_0@event\\=0x1013@ + armv8_pmuv3_0@event\\=0x1016@) / BR_MIS_PRED", "PublicDescription": "Push branch L3 topdown metric", "BriefDescription": "Push branch L3 topdown metric", "MetricGroup": "TopDownL3", "MetricName": "push_branch" }, { - "MetricExpr": "armv8_pmuv3_0@event\\=0x100c@ / BR_MIS_PRED", + "MetricExpr": "armv8_pmuv3_0@event\\=0x100d@ / BR_MIS_PRED", "PublicDescription": "Pop branch L3 topdown metric", "BriefDescription": "Pop branch L3 topdown metric", "MetricGroup": "TopDownL3", "MetricName": "pop_branch" }, { - "MetricExpr": "(BR_MIS_PRED - armv8_pmuv3_0@event\\=0x1010@ - armv8_pmuv3_0@event\\=0x1014@ - armv8_pmuv3_0@event\\=0x1018@ - armv8_pmuv3_0@event\\=0x100c@) / BR_MIS_PRED", + "MetricExpr": "(BR_MIS_PRED - armv8_pmuv3_0@event\\=0x1010@ - armv8_pmuv3_0@event\\=0x1013@ - armv8_pmuv3_0@event\\=0x1016@ - armv8_pmuv3_0@event\\=0x100d@) / BR_MIS_PRED", "PublicDescription": "Other branch L3 topdown metric", "BriefDescription": "Other branch L3 topdown metric", "MetricGroup": "TopDownL3", --- linux-5.19.0.orig/tools/perf/pmu-events/arch/powerpc/power10/nest_metrics.json +++ linux-5.19.0/tools/perf/pmu-events/arch/powerpc/power10/nest_metrics.json @@ -1,13 +1,13 @@ [ { "MetricName": "VEC_GROUP_PUMP_RETRY_RATIO_P01", - "MetricExpr": "(hv_24x7@PM_PB_RTY_VG_PUMP01\\,chip\\=?@ / hv_24x7@PM_PB_VG_PUMP01\\,chip\\=?@) * 100", + "MetricExpr": "(hv_24x7@PM_PB_RTY_VG_PUMP01\\,chip\\=?@ / (1 + hv_24x7@PM_PB_VG_PUMP01\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "VEC_GROUP_PUMP_RETRY_RATIO_P23", - "MetricExpr": "(hv_24x7@PM_PB_RTY_VG_PUMP23\\,chip\\=?@ / hv_24x7@PM_PB_VG_PUMP23\\,chip\\=?@) * 100", + "MetricExpr": "(hv_24x7@PM_PB_RTY_VG_PUMP23\\,chip\\=?@ / (1 + hv_24x7@PM_PB_VG_PUMP23\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, @@ -61,13 +61,13 @@ }, { "MetricName": "REMOTE_NODE_PUMPS_RETRIES_RATIO_P01", - "MetricExpr": "(hv_24x7@PM_PB_RTY_RNS_PUMP01\\,chip\\=?@ / hv_24x7@PM_PB_RNS_PUMP01\\,chip\\=?@) * 100", + "MetricExpr": "(hv_24x7@PM_PB_RTY_RNS_PUMP01\\,chip\\=?@ / (1 + hv_24x7@PM_PB_RNS_PUMP01\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "REMOTE_NODE_PUMPS_RETRIES_RATIO_P23", - "MetricExpr": "(hv_24x7@PM_PB_RTY_RNS_PUMP23\\,chip\\=?@ / hv_24x7@PM_PB_RNS_PUMP23\\,chip\\=?@) * 100", + "MetricExpr": "(hv_24x7@PM_PB_RTY_RNS_PUMP23\\,chip\\=?@ / (1 + hv_24x7@PM_PB_RNS_PUMP23\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, @@ -151,193 +151,193 @@ }, { "MetricName": "XLINK0_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK0_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK0_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK1_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK1_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK1_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK2_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK2_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK2_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK3_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK3_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK3_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK4_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK4_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK4_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK5_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK5_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK5_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK6_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK6_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK6_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK7_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK7_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_XLINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK7_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK0_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK0_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK0_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK1_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK1_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK1_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK2_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK2_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK2_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK3_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK3_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK3_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK4_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK4_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK4_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK5_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK5_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK5_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK6_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK6_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK6_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "XLINK7_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_XLINK7_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_XLINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_XLINK7_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_XLINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_XLINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK0_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK0_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK0_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK1_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK1_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK1_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK2_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK2_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK2_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK3_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK3_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK3_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK4_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK4_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK4_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK5_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK5_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK5_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK6_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK6_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK6_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK7_OUT_TOTAL_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK7_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (hv_24x7@PM_ALINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK7_OUT_ODD_TOTAL_UTIL\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_TOTAL_UTIL\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK0_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK0_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK0_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK0_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK0_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK1_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK1_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK1_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK1_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK1_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK2_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK2_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK2_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK2_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK2_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK3_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK3_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK3_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK3_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK3_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK4_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK4_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK4_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK4_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK4_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK5_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK5_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK5_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK5_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK5_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK6_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK6_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK6_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK6_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK6_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, { "MetricName": "ALINK7_OUT_DATA_UTILIZATION", - "MetricExpr": "((hv_24x7@PM_ALINK7_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_DATA\\,chip\\=?@) / (hv_24x7@PM_ALINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", + "MetricExpr": "((hv_24x7@PM_ALINK7_OUT_ODD_DATA\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_DATA\\,chip\\=?@) / (1 + hv_24x7@PM_ALINK7_OUT_ODD_AVLBL_CYCLES\\,chip\\=?@ + hv_24x7@PM_ALINK7_OUT_EVEN_AVLBL_CYCLES\\,chip\\=?@)) * 100", "ScaleUnit": "1.063%", "AggregationMode": "PerChip" }, --- linux-5.19.0.orig/tools/perf/tests/perf-record.c +++ linux-5.19.0/tools/perf/tests/perf-record.c @@ -332,7 +332,7 @@ out: if (err == -EACCES) return TEST_SKIP; - if (err < 0) + if (err < 0 || errs != 0) return TEST_FAIL; return TEST_OK; } --- linux-5.19.0.orig/tools/perf/tests/shell/record.sh +++ linux-5.19.0/tools/perf/tests/shell/record.sh @@ -61,7 +61,7 @@ echo "Register capture test [Skipped missing registers]" return fi - if ! perf record -o - --intr-regs=di,r8,dx,cx -e cpu/br_inst_retired.near_call/p \ + if ! perf record -o - --intr-regs=di,r8,dx,cx -e br_inst_retired.near_call:p \ -c 1000 --per-thread true 2> /dev/null \ | perf script -F ip,sym,iregs -i - 2> /dev/null \ | egrep -q "DI:" --- linux-5.19.0.orig/tools/perf/tests/shell/stat+csv_output.sh +++ linux-5.19.0/tools/perf/tests/shell/stat+csv_output.sh @@ -8,7 +8,8 @@ function commachecker() { - local -i cnt=0 exp=0 + local -i cnt=0 + local exp=0 case "$1" in "--no-args") exp=6 @@ -17,7 +18,7 @@ ;; "--interval") exp=7 ;; "--per-thread") exp=7 ;; "--system-wide-no-aggr") exp=7 - [ $(uname -m) = "s390x" ] && exp=6 + [ $(uname -m) = "s390x" ] && exp='^[6-7]$' ;; "--per-core") exp=8 ;; "--per-socket") exp=8 ;; "--per-node") exp=8 @@ -34,7 +35,7 @@ x=$(echo $line | tr -d -c ',') cnt="${#x}" # echo $line $cnt - [ "$cnt" -ne "$exp" ] && { + [[ ! "$cnt" =~ $exp ]] && { echo "wrong number of fields. expected $exp in $line" 1>&2 exit 1; } --- linux-5.19.0.orig/tools/perf/tests/shell/stat_all_pmu.sh +++ linux-5.19.0/tools/perf/tests/shell/stat_all_pmu.sh @@ -4,17 +4,8 @@ set -e -for p in $(perf list --raw-dump pmu); do - # In powerpc, skip the events for hv_24x7 and hv_gpci. - # These events needs input values to be filled in for - # core, chip, partition id based on system. - # Example: hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/ - # hv_gpci/event,partition_id=?/ - # Hence skip these events for ppc. - if echo "$p" |grep -Eq 'hv_24x7|hv_gpci' ; then - echo "Skipping: Event '$p' in powerpc" - continue - fi +# Test all PMU events; however exclude parametrized ones (name contains '?') +for p in $(perf list --raw-dump pmu | sed 's/[[:graph:]]\+?[[:graph:]]\+[[:space:]]//g'); do echo "Testing $p" result=$(perf stat -e "$p" true 2>&1) if ! echo "$result" | grep -q "$p" && ! echo "$result" | grep -q "" ; then --- linux-5.19.0.orig/tools/perf/tests/switch-tracking.c +++ linux-5.19.0/tools/perf/tests/switch-tracking.c @@ -324,6 +324,7 @@ static int test__switch_tracking(struct test_suite *test __maybe_unused, int subtest __maybe_unused) { const char *sched_switch = "sched:sched_switch"; + const char *cycles = "cycles:u"; struct switch_tracking switch_tracking = { .tids = NULL, }; struct record_opts opts = { .mmap_pages = UINT_MAX, @@ -372,12 +373,19 @@ cpu_clocks_evsel = evlist__last(evlist); /* Second event */ - if (perf_pmu__has_hybrid()) - err = parse_events(evlist, "cpu_core/cycles/u", NULL); - else - err = parse_events(evlist, "cycles:u", NULL); + if (perf_pmu__has_hybrid()) { + cycles = "cpu_core/cycles/u"; + err = parse_events(evlist, cycles, NULL); + if (err) { + cycles = "cpu_atom/cycles/u"; + pr_debug("Trying %s\n", cycles); + err = parse_events(evlist, cycles, NULL); + } + } else { + err = parse_events(evlist, cycles, NULL); + } if (err) { - pr_debug("Failed to parse event cycles:u\n"); + pr_debug("Failed to parse event %s\n", cycles); goto out_err; } --- linux-5.19.0.orig/tools/perf/util/Build +++ linux-5.19.0/tools/perf/util/Build @@ -26,6 +26,8 @@ perf-y += memswap.o perf-y += parse-events.o perf-y += parse-events-hybrid.o +perf-y += print-events.o +perf-y += tracepoint.o perf-y += perf_regs.o perf-y += path.o perf-y += print_binary.o --- linux-5.19.0.orig/tools/perf/util/auxtrace.c +++ linux-5.19.0/tools/perf/util/auxtrace.c @@ -2290,11 +2290,19 @@ bool near; }; +static bool kern_sym_name_match(const char *kname, const char *name) +{ + size_t n = strlen(name); + + return !strcmp(kname, name) || + (!strncmp(kname, name, n) && kname[n] == '\t'); +} + static bool kern_sym_match(struct sym_args *args, const char *name, char type) { /* A function with the same name, and global or the n'th found or any */ return kallsyms__is_function(type) && - !strcmp(name, args->name) && + kern_sym_name_match(name, args->name) && ((args->global && isupper(type)) || (args->selected && ++(args->cnt) == args->idx) || (!args->global && !args->selected)); --- linux-5.19.0.orig/tools/perf/util/bpf_counter_cgroup.c +++ linux-5.19.0/tools/perf/util/bpf_counter_cgroup.c @@ -95,7 +95,7 @@ perf_cpu_map__for_each_cpu(cpu, i, evlist->core.all_cpus) { link = bpf_program__attach_perf_event(skel->progs.on_cgrp_switch, - FD(cgrp_switch, cpu.cpu)); + FD(cgrp_switch, i)); if (IS_ERR(link)) { pr_err("Failed to attach cgroup program\n"); err = PTR_ERR(link); @@ -123,7 +123,7 @@ map_fd = bpf_map__fd(skel->maps.events); perf_cpu_map__for_each_cpu(cpu, j, evlist->core.all_cpus) { - int fd = FD(evsel, cpu.cpu); + int fd = FD(evsel, j); __u32 idx = evsel->core.idx * total_cpus + cpu.cpu; err = bpf_map_update_elem(map_fd, &idx, &fd, --- linux-5.19.0.orig/tools/perf/util/bpf_off_cpu.c +++ linux-5.19.0/tools/perf/util/bpf_off_cpu.c @@ -99,7 +99,7 @@ const struct btf_type *t1, *t2, *t3; u32 type_id; - type_id = btf__find_by_name_kind(btf, "bpf_trace_sched_switch", + type_id = btf__find_by_name_kind(btf, "btf_trace_sched_switch", BTF_KIND_TYPEDEF); if ((s32)type_id < 0) return; --- linux-5.19.0.orig/tools/perf/util/bpf_skel/bperf_cgroup.bpf.c +++ linux-5.19.0/tools/perf/util/bpf_skel/bperf_cgroup.bpf.c @@ -176,7 +176,7 @@ } // This will be attached to cgroup-switches event for each cpu -SEC("perf_events") +SEC("perf_event") int BPF_PROG(on_cgrp_switch) { return bperf_cgroup_count(); --- linux-5.19.0.orig/tools/perf/util/debug.c +++ linux-5.19.0/tools/perf/util/debug.c @@ -241,6 +241,10 @@ opt++; } + /* For debug variables that are used as bool types, set to 0. */ + redirect_to_stderr = 0; + debug_peo_args = 0; + return 0; } --- linux-5.19.0.orig/tools/perf/util/dsos.c +++ linux-5.19.0/tools/perf/util/dsos.c @@ -23,8 +23,19 @@ if (a->ino > b->ino) return -1; if (a->ino < b->ino) return 1; - if (a->ino_generation > b->ino_generation) return -1; - if (a->ino_generation < b->ino_generation) return 1; + /* + * Synthesized MMAP events have zero ino_generation, avoid comparing + * them with MMAP events with actual ino_generation. + * + * I found it harmful because the mismatch resulted in a new + * dso that did not have a build ID whereas the original dso did have a + * build ID. The build ID was essential because the object was not found + * otherwise. - Adrian + */ + if (a->ino_generation && b->ino_generation) { + if (a->ino_generation > b->ino_generation) return -1; + if (a->ino_generation < b->ino_generation) return 1; + } return 0; } --- linux-5.19.0.orig/tools/perf/util/evlist.c +++ linux-5.19.0/tools/perf/util/evlist.c @@ -342,9 +342,14 @@ return evlist__add_attrs(evlist, attrs, nr_attrs); } -__weak int arch_evlist__add_default_attrs(struct evlist *evlist __maybe_unused) +__weak int arch_evlist__add_default_attrs(struct evlist *evlist, + struct perf_event_attr *attrs, + size_t nr_attrs) { - return 0; + if (!nr_attrs) + return 0; + + return __evlist__add_default_attrs(evlist, attrs, nr_attrs); } struct evsel *evlist__find_tracepoint_by_id(struct evlist *evlist, int id) --- linux-5.19.0.orig/tools/perf/util/evlist.h +++ linux-5.19.0/tools/perf/util/evlist.h @@ -107,10 +107,13 @@ int __evlist__add_default_attrs(struct evlist *evlist, struct perf_event_attr *attrs, size_t nr_attrs); +int arch_evlist__add_default_attrs(struct evlist *evlist, + struct perf_event_attr *attrs, + size_t nr_attrs); + #define evlist__add_default_attrs(evlist, array) \ - __evlist__add_default_attrs(evlist, array, ARRAY_SIZE(array)) + arch_evlist__add_default_attrs(evlist, array, ARRAY_SIZE(array)) -int arch_evlist__add_default_attrs(struct evlist *evlist); struct evsel *arch_evlist__leader(struct list_head *list); int evlist__add_dummy(struct evlist *evlist); --- linux-5.19.0.orig/tools/perf/util/genelf.c +++ linux-5.19.0/tools/perf/util/genelf.c @@ -30,7 +30,11 @@ #define BUILD_ID_URANDOM /* different uuid for each run */ -#ifdef HAVE_LIBCRYPTO +// FIXME, remove this and fix the deprecation warnings before its removed and +// We'll break for good here... +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + +#ifdef HAVE_LIBCRYPTO_SUPPORT #define BUILD_ID_MD5 #undef BUILD_ID_SHA /* does not seem to work well when linked with Java */ @@ -247,6 +251,7 @@ Elf_Data *d; Elf_Scn *scn; Elf_Ehdr *ehdr; + Elf_Phdr *phdr; Elf_Shdr *shdr; uint64_t eh_frame_base_offset; char *strsym = NULL; @@ -282,6 +287,19 @@ ehdr->e_shstrndx= unwinding ? 4 : 2; /* shdr index for section name */ /* + * setup program header + */ + phdr = elf_newphdr(e, 1); + phdr[0].p_type = PT_LOAD; + phdr[0].p_offset = 0; + phdr[0].p_vaddr = 0; + phdr[0].p_paddr = 0; + phdr[0].p_filesz = csize; + phdr[0].p_memsz = csize; + phdr[0].p_flags = PF_X | PF_R; + phdr[0].p_align = 8; + + /* * setup text section */ scn = elf_newscn(e); --- linux-5.19.0.orig/tools/perf/util/genelf.h +++ linux-5.19.0/tools/perf/util/genelf.h @@ -53,8 +53,10 @@ #if GEN_ELF_CLASS == ELFCLASS64 #define elf_newehdr elf64_newehdr +#define elf_newphdr elf64_newphdr #define elf_getshdr elf64_getshdr #define Elf_Ehdr Elf64_Ehdr +#define Elf_Phdr Elf64_Phdr #define Elf_Shdr Elf64_Shdr #define Elf_Sym Elf64_Sym #define ELF_ST_TYPE(a) ELF64_ST_TYPE(a) @@ -62,8 +64,10 @@ #define ELF_ST_VIS(a) ELF64_ST_VISIBILITY(a) #else #define elf_newehdr elf32_newehdr +#define elf_newphdr elf32_newphdr #define elf_getshdr elf32_getshdr #define Elf_Ehdr Elf32_Ehdr +#define Elf_Phdr Elf32_Phdr #define Elf_Shdr Elf32_Shdr #define Elf_Sym Elf32_Sym #define ELF_ST_TYPE(a) ELF32_ST_TYPE(a) --- linux-5.19.0.orig/tools/perf/util/intel-pt.c +++ linux-5.19.0/tools/perf/util/intel-pt.c @@ -3878,6 +3878,7 @@ [INTEL_PT_SNAPSHOT_MODE] = " Snapshot mode %"PRId64"\n", [INTEL_PT_PER_CPU_MMAPS] = " Per-cpu maps %"PRId64"\n", [INTEL_PT_MTC_BIT] = " MTC bit %#"PRIx64"\n", + [INTEL_PT_MTC_FREQ_BITS] = " MTC freq bits %#"PRIx64"\n", [INTEL_PT_TSC_CTC_N] = " TSC:CTC numerator %"PRIu64"\n", [INTEL_PT_TSC_CTC_D] = " TSC:CTC denominator %"PRIu64"\n", [INTEL_PT_CYC_BIT] = " CYC bit %#"PRIx64"\n", @@ -3892,8 +3893,12 @@ if (!dump_trace) return; - for (i = start; i <= finish; i++) - fprintf(stdout, intel_pt_info_fmts[i], arr[i]); + for (i = start; i <= finish; i++) { + const char *fmt = intel_pt_info_fmts[i]; + + if (fmt) + fprintf(stdout, fmt, arr[i]); + } } static void intel_pt_print_info_str(const char *name, const char *str) --- linux-5.19.0.orig/tools/perf/util/parse-events-hybrid.c +++ linux-5.19.0/tools/perf/util/parse-events-hybrid.c @@ -33,7 +33,8 @@ * If the PMU type ID is 0, the PERF_TYPE_RAW will be applied. */ attr->type = type; - attr->config = attr->config | ((__u64)pmu_type << PERF_PMU_TYPE_SHIFT); + attr->config = (attr->config & PERF_HW_EVENT_MASK) | + ((__u64)pmu_type << PERF_PMU_TYPE_SHIFT); } static int create_event_hybrid(__u32 config_type, int *idx, @@ -48,13 +49,25 @@ __u64 config = attr->config; config_hybrid_attr(attr, config_type, pmu->type); + + /* + * Some hybrid hardware cache events are only available on one CPU + * PMU. For example, the 'L1-dcache-load-misses' is only available + * on cpu_core, while the 'L1-icache-loads' is only available on + * cpu_atom. We need to remove "not supported" hybrid cache events. + */ + if (attr->type == PERF_TYPE_HW_CACHE + && !is_event_supported(attr->type, attr->config)) + return 0; + evsel = parse_events__add_event_hybrid(list, idx, attr, name, metric_id, pmu, config_terms); - if (evsel) + if (evsel) { evsel->pmu_name = strdup(pmu->name); - else + if (!evsel->pmu_name) + return -ENOMEM; + } else return -ENOMEM; - attr->type = type; attr->config = config; return 0; --- linux-5.19.0.orig/tools/perf/util/parse-events.c +++ linux-5.19.0/tools/perf/util/parse-events.c @@ -5,18 +5,12 @@ #include #include #include -#include -#include -#include #include #include "term.h" -#include "build-id.h" #include "evlist.h" #include "evsel.h" -#include #include #include "parse-events.h" -#include #include "string2.h" #include "strlist.h" #include "bpf-loader.h" @@ -27,20 +21,23 @@ #define YY_EXTRA_TYPE void* #include "parse-events-flex.h" #include "pmu.h" -#include "thread_map.h" -#include "probe-file.h" #include "asm/bug.h" #include "util/parse-branch-options.h" -#include "metricgroup.h" #include "util/evsel_config.h" #include "util/event.h" -#include "util/pfm.h" +#include "perf.h" #include "util/parse-events-hybrid.h" #include "util/pmu-hybrid.h" -#include "perf.h" +#include "tracepoint.h" +#include "thread_map.h" #define MAX_NAME_LEN 100 +struct perf_pmu_event_symbol { + char *symbol; + enum perf_pmu_event_symbol_type type; +}; + #ifdef PARSER_DEBUG extern int parse_events_debug; #endif @@ -154,21 +151,6 @@ }, }; -struct event_symbol event_symbols_tool[PERF_TOOL_MAX] = { - [PERF_TOOL_DURATION_TIME] = { - .symbol = "duration_time", - .alias = "", - }, - [PERF_TOOL_USER_TIME] = { - .symbol = "user_time", - .alias = "", - }, - [PERF_TOOL_SYSTEM_TIME] = { - .symbol = "system_time", - .alias = "", - }, -}; - #define __PERF_EVENT_FIELD(config, name) \ ((config & PERF_EVENT_##name##_MASK) >> PERF_EVENT_##name##_SHIFT) @@ -177,119 +159,42 @@ #define PERF_EVENT_TYPE(config) __PERF_EVENT_FIELD(config, TYPE) #define PERF_EVENT_ID(config) __PERF_EVENT_FIELD(config, EVENT) -#define for_each_subsystem(sys_dir, sys_dirent) \ - while ((sys_dirent = readdir(sys_dir)) != NULL) \ - if (sys_dirent->d_type == DT_DIR && \ - (strcmp(sys_dirent->d_name, ".")) && \ - (strcmp(sys_dirent->d_name, ".."))) - -static int tp_event_has_id(const char *dir_path, struct dirent *evt_dir) -{ - char evt_path[MAXPATHLEN]; - int fd; - - snprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, evt_dir->d_name); - fd = open(evt_path, O_RDONLY); - if (fd < 0) - return -EINVAL; - close(fd); - - return 0; -} - -#define for_each_event(dir_path, evt_dir, evt_dirent) \ - while ((evt_dirent = readdir(evt_dir)) != NULL) \ - if (evt_dirent->d_type == DT_DIR && \ - (strcmp(evt_dirent->d_name, ".")) && \ - (strcmp(evt_dirent->d_name, "..")) && \ - (!tp_event_has_id(dir_path, evt_dirent))) - -#define MAX_EVENT_LENGTH 512 - -struct tracepoint_path *tracepoint_id_to_path(u64 config) -{ - struct tracepoint_path *path = NULL; - DIR *sys_dir, *evt_dir; - struct dirent *sys_dirent, *evt_dirent; - char id_buf[24]; - int fd; - u64 id; - char evt_path[MAXPATHLEN]; - char *dir_path; - - sys_dir = tracing_events__opendir(); - if (!sys_dir) - return NULL; - - for_each_subsystem(sys_dir, sys_dirent) { - dir_path = get_events_file(sys_dirent->d_name); - if (!dir_path) - continue; - evt_dir = opendir(dir_path); - if (!evt_dir) - goto next; - - for_each_event(dir_path, evt_dir, evt_dirent) { - - scnprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, - evt_dirent->d_name); - fd = open(evt_path, O_RDONLY); - if (fd < 0) - continue; - if (read(fd, id_buf, sizeof(id_buf)) < 0) { - close(fd); - continue; - } - close(fd); - id = atoll(id_buf); - if (id == config) { - put_events_file(dir_path); - closedir(evt_dir); - closedir(sys_dir); - path = zalloc(sizeof(*path)); - if (!path) - return NULL; - if (asprintf(&path->system, "%.*s", MAX_EVENT_LENGTH, sys_dirent->d_name) < 0) { - free(path); - return NULL; - } - if (asprintf(&path->name, "%.*s", MAX_EVENT_LENGTH, evt_dirent->d_name) < 0) { - zfree(&path->system); - free(path); - return NULL; - } - return path; - } - } - closedir(evt_dir); -next: - put_events_file(dir_path); - } - - closedir(sys_dir); - return NULL; -} - -struct tracepoint_path *tracepoint_name_to_path(const char *name) +bool is_event_supported(u8 type, u64 config) { - struct tracepoint_path *path = zalloc(sizeof(*path)); - char *str = strchr(name, ':'); + bool ret = true; + int open_return; + struct evsel *evsel; + struct perf_event_attr attr = { + .type = type, + .config = config, + .disabled = 1, + }; + struct perf_thread_map *tmap = thread_map__new_by_tid(0); - if (path == NULL || str == NULL) { - free(path); - return NULL; - } + if (tmap == NULL) + return false; - path->system = strndup(name, str - name); - path->name = strdup(str+1); + evsel = evsel__new(&attr); + if (evsel) { + open_return = evsel__open(evsel, NULL, tmap); + ret = open_return >= 0; - if (path->system == NULL || path->name == NULL) { - zfree(&path->system); - zfree(&path->name); - zfree(&path); + if (open_return == -EACCES) { + /* + * This happens if the paranoid value + * /proc/sys/kernel/perf_event_paranoid is set to 2 + * Re-run with exclude_kernel set; we don't do that + * by default as some ARM machines do not support it. + * + */ + evsel->core.attr.exclude_kernel = 1; + ret = evsel__open(evsel, NULL, tmap) >= 0; + } + evsel__delete(evsel); } - return path; + perf_thread_map__put(tmap); + return ret; } const char *event_type(int type) @@ -350,6 +255,9 @@ struct perf_cpu_map *cpus = pmu ? perf_cpu_map__get(pmu->cpus) : cpu_list ? perf_cpu_map__new(cpu_list) : NULL; + if (pmu) + perf_pmu__warn_invalid_formats(pmu); + if (pmu && attr->type == PERF_TYPE_RAW) perf_pmu__warn_invalid_config(pmu, attr->config, name); @@ -2391,9 +2299,12 @@ void parse_events_error__handle(struct parse_events_error *err, int idx, char *str, char *help) { - if (WARN(!str, "WARNING: failed to provide error string\n")) { - free(help); - return; + if (WARN(!str, "WARNING: failed to provide error string\n")) + goto out_free; + if (!err) { + /* Assume caller does not want message printed */ + pr_debug("event syntax error: %s\n", str); + goto out_free; } switch (err->num_errors) { case 0: @@ -2419,6 +2330,11 @@ break; } err->num_errors++; + return; + +out_free: + free(str); + free(help); } #define MAX_WIDTH 1000 @@ -2666,571 +2582,6 @@ NULL); } -static const char * const event_type_descriptors[] = { - "Hardware event", - "Software event", - "Tracepoint event", - "Hardware cache event", - "Raw hardware event descriptor", - "Hardware breakpoint", -}; - -static int cmp_string(const void *a, const void *b) -{ - const char * const *as = a; - const char * const *bs = b; - - return strcmp(*as, *bs); -} - -/* - * Print the events from /tracing/events - */ - -void print_tracepoint_events(const char *subsys_glob, const char *event_glob, - bool name_only) -{ - DIR *sys_dir, *evt_dir; - struct dirent *sys_dirent, *evt_dirent; - char evt_path[MAXPATHLEN]; - char *dir_path; - char **evt_list = NULL; - unsigned int evt_i = 0, evt_num = 0; - bool evt_num_known = false; - -restart: - sys_dir = tracing_events__opendir(); - if (!sys_dir) - return; - - if (evt_num_known) { - evt_list = zalloc(sizeof(char *) * evt_num); - if (!evt_list) - goto out_close_sys_dir; - } - - for_each_subsystem(sys_dir, sys_dirent) { - if (subsys_glob != NULL && - !strglobmatch(sys_dirent->d_name, subsys_glob)) - continue; - - dir_path = get_events_file(sys_dirent->d_name); - if (!dir_path) - continue; - evt_dir = opendir(dir_path); - if (!evt_dir) - goto next; - - for_each_event(dir_path, evt_dir, evt_dirent) { - if (event_glob != NULL && - !strglobmatch(evt_dirent->d_name, event_glob)) - continue; - - if (!evt_num_known) { - evt_num++; - continue; - } - - snprintf(evt_path, MAXPATHLEN, "%s:%s", - sys_dirent->d_name, evt_dirent->d_name); - - evt_list[evt_i] = strdup(evt_path); - if (evt_list[evt_i] == NULL) { - put_events_file(dir_path); - goto out_close_evt_dir; - } - evt_i++; - } - closedir(evt_dir); -next: - put_events_file(dir_path); - } - closedir(sys_dir); - - if (!evt_num_known) { - evt_num_known = true; - goto restart; - } - qsort(evt_list, evt_num, sizeof(char *), cmp_string); - evt_i = 0; - while (evt_i < evt_num) { - if (name_only) { - printf("%s ", evt_list[evt_i++]); - continue; - } - printf(" %-50s [%s]\n", evt_list[evt_i++], - event_type_descriptors[PERF_TYPE_TRACEPOINT]); - } - if (evt_num && pager_in_use()) - printf("\n"); - -out_free: - evt_num = evt_i; - for (evt_i = 0; evt_i < evt_num; evt_i++) - zfree(&evt_list[evt_i]); - zfree(&evt_list); - return; - -out_close_evt_dir: - closedir(evt_dir); -out_close_sys_dir: - closedir(sys_dir); - - printf("FATAL: not enough memory to print %s\n", - event_type_descriptors[PERF_TYPE_TRACEPOINT]); - if (evt_list) - goto out_free; -} - -/* - * Check whether event is in /tracing/events - */ - -int is_valid_tracepoint(const char *event_string) -{ - DIR *sys_dir, *evt_dir; - struct dirent *sys_dirent, *evt_dirent; - char evt_path[MAXPATHLEN]; - char *dir_path; - - sys_dir = tracing_events__opendir(); - if (!sys_dir) - return 0; - - for_each_subsystem(sys_dir, sys_dirent) { - dir_path = get_events_file(sys_dirent->d_name); - if (!dir_path) - continue; - evt_dir = opendir(dir_path); - if (!evt_dir) - goto next; - - for_each_event(dir_path, evt_dir, evt_dirent) { - snprintf(evt_path, MAXPATHLEN, "%s:%s", - sys_dirent->d_name, evt_dirent->d_name); - if (!strcmp(evt_path, event_string)) { - closedir(evt_dir); - closedir(sys_dir); - return 1; - } - } - closedir(evt_dir); -next: - put_events_file(dir_path); - } - closedir(sys_dir); - return 0; -} - -static bool is_event_supported(u8 type, u64 config) -{ - bool ret = true; - int open_return; - struct evsel *evsel; - struct perf_event_attr attr = { - .type = type, - .config = config, - .disabled = 1, - }; - struct perf_thread_map *tmap = thread_map__new_by_tid(0); - - if (tmap == NULL) - return false; - - evsel = evsel__new(&attr); - if (evsel) { - open_return = evsel__open(evsel, NULL, tmap); - ret = open_return >= 0; - - if (open_return == -EACCES) { - /* - * This happens if the paranoid value - * /proc/sys/kernel/perf_event_paranoid is set to 2 - * Re-run with exclude_kernel set; we don't do that - * by default as some ARM machines do not support it. - * - */ - evsel->core.attr.exclude_kernel = 1; - ret = evsel__open(evsel, NULL, tmap) >= 0; - } - evsel__delete(evsel); - } - - perf_thread_map__put(tmap); - return ret; -} - -void print_sdt_events(const char *subsys_glob, const char *event_glob, - bool name_only) -{ - struct probe_cache *pcache; - struct probe_cache_entry *ent; - struct strlist *bidlist, *sdtlist; - struct strlist_config cfg = {.dont_dupstr = true}; - struct str_node *nd, *nd2; - char *buf, *path, *ptr = NULL; - bool show_detail = false; - int ret; - - sdtlist = strlist__new(NULL, &cfg); - if (!sdtlist) { - pr_debug("Failed to allocate new strlist for SDT\n"); - return; - } - bidlist = build_id_cache__list_all(true); - if (!bidlist) { - pr_debug("Failed to get buildids: %d\n", errno); - return; - } - strlist__for_each_entry(nd, bidlist) { - pcache = probe_cache__new(nd->s, NULL); - if (!pcache) - continue; - list_for_each_entry(ent, &pcache->entries, node) { - if (!ent->sdt) - continue; - if (subsys_glob && - !strglobmatch(ent->pev.group, subsys_glob)) - continue; - if (event_glob && - !strglobmatch(ent->pev.event, event_glob)) - continue; - ret = asprintf(&buf, "%s:%s@%s", ent->pev.group, - ent->pev.event, nd->s); - if (ret > 0) - strlist__add(sdtlist, buf); - } - probe_cache__delete(pcache); - } - strlist__delete(bidlist); - - strlist__for_each_entry(nd, sdtlist) { - buf = strchr(nd->s, '@'); - if (buf) - *(buf++) = '\0'; - if (name_only) { - printf("%s ", nd->s); - continue; - } - nd2 = strlist__next(nd); - if (nd2) { - ptr = strchr(nd2->s, '@'); - if (ptr) - *ptr = '\0'; - if (strcmp(nd->s, nd2->s) == 0) - show_detail = true; - } - if (show_detail) { - path = build_id_cache__origname(buf); - ret = asprintf(&buf, "%s@%s(%.12s)", nd->s, path, buf); - if (ret > 0) { - printf(" %-50s [%s]\n", buf, "SDT event"); - free(buf); - } - free(path); - } else - printf(" %-50s [%s]\n", nd->s, "SDT event"); - if (nd2) { - if (strcmp(nd->s, nd2->s) != 0) - show_detail = false; - if (ptr) - *ptr = '@'; - } - } - strlist__delete(sdtlist); -} - -int print_hwcache_events(const char *event_glob, bool name_only) -{ - unsigned int type, op, i, evt_i = 0, evt_num = 0, npmus = 0; - char name[64], new_name[128]; - char **evt_list = NULL, **evt_pmus = NULL; - bool evt_num_known = false; - struct perf_pmu *pmu = NULL; - - if (perf_pmu__has_hybrid()) { - npmus = perf_pmu__hybrid_pmu_num(); - evt_pmus = zalloc(sizeof(char *) * npmus); - if (!evt_pmus) - goto out_enomem; - } - -restart: - if (evt_num_known) { - evt_list = zalloc(sizeof(char *) * evt_num); - if (!evt_list) - goto out_enomem; - } - - for (type = 0; type < PERF_COUNT_HW_CACHE_MAX; type++) { - for (op = 0; op < PERF_COUNT_HW_CACHE_OP_MAX; op++) { - /* skip invalid cache type */ - if (!evsel__is_cache_op_valid(type, op)) - continue; - - for (i = 0; i < PERF_COUNT_HW_CACHE_RESULT_MAX; i++) { - unsigned int hybrid_supported = 0, j; - bool supported; - - __evsel__hw_cache_type_op_res_name(type, op, i, name, sizeof(name)); - if (event_glob != NULL && !strglobmatch(name, event_glob)) - continue; - - if (!perf_pmu__has_hybrid()) { - if (!is_event_supported(PERF_TYPE_HW_CACHE, - type | (op << 8) | (i << 16))) { - continue; - } - } else { - perf_pmu__for_each_hybrid_pmu(pmu) { - if (!evt_num_known) { - evt_num++; - continue; - } - - supported = is_event_supported( - PERF_TYPE_HW_CACHE, - type | (op << 8) | (i << 16) | - ((__u64)pmu->type << PERF_PMU_TYPE_SHIFT)); - if (supported) { - snprintf(new_name, sizeof(new_name), "%s/%s/", - pmu->name, name); - evt_pmus[hybrid_supported] = strdup(new_name); - hybrid_supported++; - } - } - - if (hybrid_supported == 0) - continue; - } - - if (!evt_num_known) { - evt_num++; - continue; - } - - if ((hybrid_supported == 0) || - (hybrid_supported == npmus)) { - evt_list[evt_i] = strdup(name); - if (npmus > 0) { - for (j = 0; j < npmus; j++) - zfree(&evt_pmus[j]); - } - } else { - for (j = 0; j < hybrid_supported; j++) { - evt_list[evt_i++] = evt_pmus[j]; - evt_pmus[j] = NULL; - } - continue; - } - - if (evt_list[evt_i] == NULL) - goto out_enomem; - evt_i++; - } - } - } - - if (!evt_num_known) { - evt_num_known = true; - goto restart; - } - - for (evt_i = 0; evt_i < evt_num; evt_i++) { - if (!evt_list[evt_i]) - break; - } - - evt_num = evt_i; - qsort(evt_list, evt_num, sizeof(char *), cmp_string); - evt_i = 0; - while (evt_i < evt_num) { - if (name_only) { - printf("%s ", evt_list[evt_i++]); - continue; - } - printf(" %-50s [%s]\n", evt_list[evt_i++], - event_type_descriptors[PERF_TYPE_HW_CACHE]); - } - if (evt_num && pager_in_use()) - printf("\n"); - -out_free: - evt_num = evt_i; - for (evt_i = 0; evt_i < evt_num; evt_i++) - zfree(&evt_list[evt_i]); - zfree(&evt_list); - - for (evt_i = 0; evt_i < npmus; evt_i++) - zfree(&evt_pmus[evt_i]); - zfree(&evt_pmus); - return evt_num; - -out_enomem: - printf("FATAL: not enough memory to print %s\n", event_type_descriptors[PERF_TYPE_HW_CACHE]); - if (evt_list) - goto out_free; - return evt_num; -} - -static void print_tool_event(const struct event_symbol *syms, const char *event_glob, - bool name_only) -{ - if (syms->symbol == NULL) - return; - - if (event_glob && !(strglobmatch(syms->symbol, event_glob) || - (syms->alias && strglobmatch(syms->alias, event_glob)))) - return; - - if (name_only) - printf("%s ", syms->symbol); - else { - char name[MAX_NAME_LEN]; - if (syms->alias && strlen(syms->alias)) - snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); - else - strlcpy(name, syms->symbol, MAX_NAME_LEN); - printf(" %-50s [%s]\n", name, "Tool event"); - } -} - -void print_tool_events(const char *event_glob, bool name_only) -{ - // Start at 1 because the first enum entry symbols no tool event - for (int i = 1; i < PERF_TOOL_MAX; ++i) { - print_tool_event(event_symbols_tool + i, event_glob, name_only); - } - if (pager_in_use()) - printf("\n"); -} - -void print_symbol_events(const char *event_glob, unsigned type, - struct event_symbol *syms, unsigned max, - bool name_only) -{ - unsigned int i, evt_i = 0, evt_num = 0; - char name[MAX_NAME_LEN]; - char **evt_list = NULL; - bool evt_num_known = false; - -restart: - if (evt_num_known) { - evt_list = zalloc(sizeof(char *) * evt_num); - if (!evt_list) - goto out_enomem; - syms -= max; - } - - for (i = 0; i < max; i++, syms++) { - /* - * New attr.config still not supported here, the latest - * example was PERF_COUNT_SW_CGROUP_SWITCHES - */ - if (syms->symbol == NULL) - continue; - - if (event_glob != NULL && !(strglobmatch(syms->symbol, event_glob) || - (syms->alias && strglobmatch(syms->alias, event_glob)))) - continue; - - if (!is_event_supported(type, i)) - continue; - - if (!evt_num_known) { - evt_num++; - continue; - } - - if (!name_only && strlen(syms->alias)) - snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); - else - strlcpy(name, syms->symbol, MAX_NAME_LEN); - - evt_list[evt_i] = strdup(name); - if (evt_list[evt_i] == NULL) - goto out_enomem; - evt_i++; - } - - if (!evt_num_known) { - evt_num_known = true; - goto restart; - } - qsort(evt_list, evt_num, sizeof(char *), cmp_string); - evt_i = 0; - while (evt_i < evt_num) { - if (name_only) { - printf("%s ", evt_list[evt_i++]); - continue; - } - printf(" %-50s [%s]\n", evt_list[evt_i++], event_type_descriptors[type]); - } - if (evt_num && pager_in_use()) - printf("\n"); - -out_free: - evt_num = evt_i; - for (evt_i = 0; evt_i < evt_num; evt_i++) - zfree(&evt_list[evt_i]); - zfree(&evt_list); - return; - -out_enomem: - printf("FATAL: not enough memory to print %s\n", event_type_descriptors[type]); - if (evt_list) - goto out_free; -} - -/* - * Print the help text for the event symbols: - */ -void print_events(const char *event_glob, bool name_only, bool quiet_flag, - bool long_desc, bool details_flag, bool deprecated, - const char *pmu_name) -{ - print_symbol_events(event_glob, PERF_TYPE_HARDWARE, - event_symbols_hw, PERF_COUNT_HW_MAX, name_only); - - print_symbol_events(event_glob, PERF_TYPE_SOFTWARE, - event_symbols_sw, PERF_COUNT_SW_MAX, name_only); - print_tool_events(event_glob, name_only); - - print_hwcache_events(event_glob, name_only); - - print_pmu_events(event_glob, name_only, quiet_flag, long_desc, - details_flag, deprecated, pmu_name); - - if (event_glob != NULL) - return; - - if (!name_only) { - printf(" %-50s [%s]\n", - "rNNN", - event_type_descriptors[PERF_TYPE_RAW]); - printf(" %-50s [%s]\n", - "cpu/t1=v1[,t2=v2,t3 ...]/modifier", - event_type_descriptors[PERF_TYPE_RAW]); - if (pager_in_use()) - printf(" (see 'man perf-list' on how to encode it)\n\n"); - - printf(" %-50s [%s]\n", - "mem:[/len][:access]", - event_type_descriptors[PERF_TYPE_BREAKPOINT]); - if (pager_in_use()) - printf("\n"); - } - - print_tracepoint_events(NULL, NULL, name_only); - - print_sdt_events(NULL, NULL, name_only); - - metricgroup__print(true, true, NULL, name_only, details_flag, - pmu_name); - - print_libpfm_events(name_only, long_desc); -} - int parse_events__is_hardcoded_term(struct parse_events_term *term) { return term->type_term != PARSE_EVENTS__TERM_TYPE_USER; --- linux-5.19.0.orig/tools/perf/util/parse-events.h +++ linux-5.19.0/tools/perf/util/parse-events.h @@ -11,7 +11,6 @@ #include #include -struct list_head; struct evsel; struct evlist; struct parse_events_error; @@ -19,15 +18,8 @@ struct option; struct perf_pmu; -struct tracepoint_path { - char *system; - char *name; - struct tracepoint_path *next; -}; - -struct tracepoint_path *tracepoint_id_to_path(u64 config); -struct tracepoint_path *tracepoint_name_to_path(const char *name); bool have_tracepoints(struct list_head *evlist); +bool is_event_supported(u8 type, u64 config); const char *event_type(int type); @@ -46,8 +38,6 @@ int parse_filter(const struct option *opt, const char *str, int unset); int exclude_perf(const struct option *opt, const char *arg, int unset); -#define EVENTS_HELP_MAX (128*1024) - enum perf_pmu_event_symbol_type { PMU_EVENT_SYMBOL_ERR, /* not a PMU EVENT */ PMU_EVENT_SYMBOL, /* normal style PMU event */ @@ -56,11 +46,6 @@ PMU_EVENT_SYMBOL_SUFFIX2, /* suffix of pre-suf2 style event */ }; -struct perf_pmu_event_symbol { - char *symbol; - enum perf_pmu_event_symbol_type type; -}; - enum { PARSE_EVENTS__TERM_TYPE_NUM, PARSE_EVENTS__TERM_TYPE_STR, @@ -219,28 +204,13 @@ void parse_events_evlist_error(struct parse_events_state *parse_state, int idx, const char *str); -void print_events(const char *event_glob, bool name_only, bool quiet, - bool long_desc, bool details_flag, bool deprecated, - const char *pmu_name); - struct event_symbol { const char *symbol; const char *alias; }; extern struct event_symbol event_symbols_hw[]; extern struct event_symbol event_symbols_sw[]; -void print_symbol_events(const char *event_glob, unsigned type, - struct event_symbol *syms, unsigned max, - bool name_only); -void print_tool_events(const char *event_glob, bool name_only); -void print_tracepoint_events(const char *subsys_glob, const char *event_glob, - bool name_only); -int print_hwcache_events(const char *event_glob, bool name_only); -void print_sdt_events(const char *subsys_glob, const char *event_glob, - bool name_only); -int is_valid_tracepoint(const char *event_string); -int valid_event_mount(const char *eventfs); char *parse_events_formats_error_string(char *additional_terms); void parse_events_error__init(struct parse_events_error *err); --- linux-5.19.0.orig/tools/perf/util/pmu.c +++ linux-5.19.0/tools/perf/util/pmu.c @@ -1048,6 +1048,23 @@ return NULL; } +void perf_pmu__warn_invalid_formats(struct perf_pmu *pmu) +{ + struct perf_pmu_format *format; + + /* fake pmu doesn't have format list */ + if (pmu == &perf_pmu__fake) + return; + + list_for_each_entry(format, &pmu->format, list) + if (format->value >= PERF_PMU_FORMAT_VALUE_CONFIG_END) { + pr_warning("WARNING: '%s' format '%s' requires 'perf_event_attr::config%d'" + "which is not supported by this version of perf!\n", + pmu->name, format->name, format->value); + return; + } +} + static struct perf_pmu *pmu_find(const char *name) { struct perf_pmu *pmu; --- linux-5.19.0.orig/tools/perf/util/pmu.h +++ linux-5.19.0/tools/perf/util/pmu.h @@ -17,6 +17,7 @@ PERF_PMU_FORMAT_VALUE_CONFIG, PERF_PMU_FORMAT_VALUE_CONFIG1, PERF_PMU_FORMAT_VALUE_CONFIG2, + PERF_PMU_FORMAT_VALUE_CONFIG_END, }; #define PERF_PMU_FORMAT_BITS 64 @@ -139,6 +140,7 @@ void perf_pmu__warn_invalid_config(struct perf_pmu *pmu, __u64 config, const char *name); +void perf_pmu__warn_invalid_formats(struct perf_pmu *pmu); bool perf_pmu__has_hybrid(void); int perf_pmu__match(char *pattern, char *name, char *tok); --- linux-5.19.0.orig/tools/perf/util/pmu.l +++ linux-5.19.0/tools/perf/util/pmu.l @@ -27,8 +27,6 @@ {num_dec} { return value(10); } config { return PP_CONFIG; } -config1 { return PP_CONFIG1; } -config2 { return PP_CONFIG2; } - { return '-'; } : { return ':'; } , { return ','; } --- linux-5.19.0.orig/tools/perf/util/pmu.y +++ linux-5.19.0/tools/perf/util/pmu.y @@ -20,7 +20,7 @@ %} -%token PP_CONFIG PP_CONFIG1 PP_CONFIG2 +%token PP_CONFIG %token PP_VALUE PP_ERROR %type PP_VALUE %type bit_term @@ -47,18 +47,11 @@ $3)); } | -PP_CONFIG1 ':' bits +PP_CONFIG PP_VALUE ':' bits { ABORT_ON(perf_pmu__new_format(format, name, - PERF_PMU_FORMAT_VALUE_CONFIG1, - $3)); -} -| -PP_CONFIG2 ':' bits -{ - ABORT_ON(perf_pmu__new_format(format, name, - PERF_PMU_FORMAT_VALUE_CONFIG2, - $3)); + $2, + $4)); } bits: --- linux-5.19.0.orig/tools/perf/util/print-events.c +++ linux-5.19.0/tools/perf/util/print-events.c @@ -0,0 +1,533 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include "build-id.h" +#include "debug.h" +#include "evsel.h" +#include "metricgroup.h" +#include "parse-events.h" +#include "pmu.h" +#include "print-events.h" +#include "probe-file.h" +#include "string2.h" +#include "strlist.h" +#include "tracepoint.h" +#include "pfm.h" +#include "pmu-hybrid.h" + +#define MAX_NAME_LEN 100 + +static const char * const event_type_descriptors[] = { + "Hardware event", + "Software event", + "Tracepoint event", + "Hardware cache event", + "Raw hardware event descriptor", + "Hardware breakpoint", +}; + +static const struct event_symbol event_symbols_tool[PERF_TOOL_MAX] = { + [PERF_TOOL_DURATION_TIME] = { + .symbol = "duration_time", + .alias = "", + }, + [PERF_TOOL_USER_TIME] = { + .symbol = "user_time", + .alias = "", + }, + [PERF_TOOL_SYSTEM_TIME] = { + .symbol = "system_time", + .alias = "", + }, +}; + +static int cmp_string(const void *a, const void *b) +{ + const char * const *as = a; + const char * const *bs = b; + + return strcmp(*as, *bs); +} + +/* + * Print the events from /tracing/events + */ +void print_tracepoint_events(const char *subsys_glob, + const char *event_glob, bool name_only) +{ + DIR *sys_dir, *evt_dir; + struct dirent *sys_dirent, *evt_dirent; + char evt_path[MAXPATHLEN]; + char *dir_path; + char **evt_list = NULL; + unsigned int evt_i = 0, evt_num = 0; + bool evt_num_known = false; + +restart: + sys_dir = tracing_events__opendir(); + if (!sys_dir) + return; + + if (evt_num_known) { + evt_list = zalloc(sizeof(char *) * evt_num); + if (!evt_list) + goto out_close_sys_dir; + } + + for_each_subsystem(sys_dir, sys_dirent) { + if (subsys_glob != NULL && + !strglobmatch(sys_dirent->d_name, subsys_glob)) + continue; + + dir_path = get_events_file(sys_dirent->d_name); + if (!dir_path) + continue; + evt_dir = opendir(dir_path); + if (!evt_dir) + goto next; + + for_each_event(dir_path, evt_dir, evt_dirent) { + if (event_glob != NULL && + !strglobmatch(evt_dirent->d_name, event_glob)) + continue; + + if (!evt_num_known) { + evt_num++; + continue; + } + + snprintf(evt_path, MAXPATHLEN, "%s:%s", + sys_dirent->d_name, evt_dirent->d_name); + + evt_list[evt_i] = strdup(evt_path); + if (evt_list[evt_i] == NULL) { + put_events_file(dir_path); + goto out_close_evt_dir; + } + evt_i++; + } + closedir(evt_dir); +next: + put_events_file(dir_path); + } + closedir(sys_dir); + + if (!evt_num_known) { + evt_num_known = true; + goto restart; + } + qsort(evt_list, evt_num, sizeof(char *), cmp_string); + evt_i = 0; + while (evt_i < evt_num) { + if (name_only) { + printf("%s ", evt_list[evt_i++]); + continue; + } + printf(" %-50s [%s]\n", evt_list[evt_i++], + event_type_descriptors[PERF_TYPE_TRACEPOINT]); + } + if (evt_num && pager_in_use()) + printf("\n"); + +out_free: + evt_num = evt_i; + for (evt_i = 0; evt_i < evt_num; evt_i++) + zfree(&evt_list[evt_i]); + zfree(&evt_list); + return; + +out_close_evt_dir: + closedir(evt_dir); +out_close_sys_dir: + closedir(sys_dir); + + printf("FATAL: not enough memory to print %s\n", + event_type_descriptors[PERF_TYPE_TRACEPOINT]); + if (evt_list) + goto out_free; +} + +void print_sdt_events(const char *subsys_glob, const char *event_glob, + bool name_only) +{ + struct probe_cache *pcache; + struct probe_cache_entry *ent; + struct strlist *bidlist, *sdtlist; + struct strlist_config cfg = {.dont_dupstr = true}; + struct str_node *nd, *nd2; + char *buf, *path, *ptr = NULL; + bool show_detail = false; + int ret; + + sdtlist = strlist__new(NULL, &cfg); + if (!sdtlist) { + pr_debug("Failed to allocate new strlist for SDT\n"); + return; + } + bidlist = build_id_cache__list_all(true); + if (!bidlist) { + pr_debug("Failed to get buildids: %d\n", errno); + return; + } + strlist__for_each_entry(nd, bidlist) { + pcache = probe_cache__new(nd->s, NULL); + if (!pcache) + continue; + list_for_each_entry(ent, &pcache->entries, node) { + if (!ent->sdt) + continue; + if (subsys_glob && + !strglobmatch(ent->pev.group, subsys_glob)) + continue; + if (event_glob && + !strglobmatch(ent->pev.event, event_glob)) + continue; + ret = asprintf(&buf, "%s:%s@%s", ent->pev.group, + ent->pev.event, nd->s); + if (ret > 0) + strlist__add(sdtlist, buf); + } + probe_cache__delete(pcache); + } + strlist__delete(bidlist); + + strlist__for_each_entry(nd, sdtlist) { + buf = strchr(nd->s, '@'); + if (buf) + *(buf++) = '\0'; + if (name_only) { + printf("%s ", nd->s); + continue; + } + nd2 = strlist__next(nd); + if (nd2) { + ptr = strchr(nd2->s, '@'); + if (ptr) + *ptr = '\0'; + if (strcmp(nd->s, nd2->s) == 0) + show_detail = true; + } + if (show_detail) { + path = build_id_cache__origname(buf); + ret = asprintf(&buf, "%s@%s(%.12s)", nd->s, path, buf); + if (ret > 0) { + printf(" %-50s [%s]\n", buf, "SDT event"); + free(buf); + } + free(path); + } else + printf(" %-50s [%s]\n", nd->s, "SDT event"); + if (nd2) { + if (strcmp(nd->s, nd2->s) != 0) + show_detail = false; + if (ptr) + *ptr = '@'; + } + } + strlist__delete(sdtlist); +} + +int print_hwcache_events(const char *event_glob, bool name_only) +{ + unsigned int type, op, i, evt_i = 0, evt_num = 0, npmus = 0; + char name[64], new_name[128]; + char **evt_list = NULL, **evt_pmus = NULL; + bool evt_num_known = false; + struct perf_pmu *pmu = NULL; + + if (perf_pmu__has_hybrid()) { + npmus = perf_pmu__hybrid_pmu_num(); + evt_pmus = zalloc(sizeof(char *) * npmus); + if (!evt_pmus) + goto out_enomem; + } + +restart: + if (evt_num_known) { + evt_list = zalloc(sizeof(char *) * evt_num); + if (!evt_list) + goto out_enomem; + } + + for (type = 0; type < PERF_COUNT_HW_CACHE_MAX; type++) { + for (op = 0; op < PERF_COUNT_HW_CACHE_OP_MAX; op++) { + /* skip invalid cache type */ + if (!evsel__is_cache_op_valid(type, op)) + continue; + + for (i = 0; i < PERF_COUNT_HW_CACHE_RESULT_MAX; i++) { + unsigned int hybrid_supported = 0, j; + bool supported; + + __evsel__hw_cache_type_op_res_name(type, op, i, name, sizeof(name)); + if (event_glob != NULL && !strglobmatch(name, event_glob)) + continue; + + if (!perf_pmu__has_hybrid()) { + if (!is_event_supported(PERF_TYPE_HW_CACHE, + type | (op << 8) | (i << 16))) { + continue; + } + } else { + perf_pmu__for_each_hybrid_pmu(pmu) { + if (!evt_num_known) { + evt_num++; + continue; + } + + supported = is_event_supported( + PERF_TYPE_HW_CACHE, + type | (op << 8) | (i << 16) | + ((__u64)pmu->type << PERF_PMU_TYPE_SHIFT)); + if (supported) { + snprintf(new_name, sizeof(new_name), + "%s/%s/", pmu->name, name); + evt_pmus[hybrid_supported] = + strdup(new_name); + hybrid_supported++; + } + } + + if (hybrid_supported == 0) + continue; + } + + if (!evt_num_known) { + evt_num++; + continue; + } + + if ((hybrid_supported == 0) || + (hybrid_supported == npmus)) { + evt_list[evt_i] = strdup(name); + if (npmus > 0) { + for (j = 0; j < npmus; j++) + zfree(&evt_pmus[j]); + } + } else { + for (j = 0; j < hybrid_supported; j++) { + evt_list[evt_i++] = evt_pmus[j]; + evt_pmus[j] = NULL; + } + continue; + } + + if (evt_list[evt_i] == NULL) + goto out_enomem; + evt_i++; + } + } + } + + if (!evt_num_known) { + evt_num_known = true; + goto restart; + } + + for (evt_i = 0; evt_i < evt_num; evt_i++) { + if (!evt_list[evt_i]) + break; + } + + evt_num = evt_i; + qsort(evt_list, evt_num, sizeof(char *), cmp_string); + evt_i = 0; + while (evt_i < evt_num) { + if (name_only) { + printf("%s ", evt_list[evt_i++]); + continue; + } + printf(" %-50s [%s]\n", evt_list[evt_i++], + event_type_descriptors[PERF_TYPE_HW_CACHE]); + } + if (evt_num && pager_in_use()) + printf("\n"); + +out_free: + evt_num = evt_i; + for (evt_i = 0; evt_i < evt_num; evt_i++) + zfree(&evt_list[evt_i]); + zfree(&evt_list); + + for (evt_i = 0; evt_i < npmus; evt_i++) + zfree(&evt_pmus[evt_i]); + zfree(&evt_pmus); + return evt_num; + +out_enomem: + printf("FATAL: not enough memory to print %s\n", + event_type_descriptors[PERF_TYPE_HW_CACHE]); + if (evt_list) + goto out_free; + return evt_num; +} + +static void print_tool_event(const struct event_symbol *syms, const char *event_glob, + bool name_only) +{ + if (syms->symbol == NULL) + return; + + if (event_glob && !(strglobmatch(syms->symbol, event_glob) || + (syms->alias && strglobmatch(syms->alias, event_glob)))) + return; + + if (name_only) + printf("%s ", syms->symbol); + else { + char name[MAX_NAME_LEN]; + + if (syms->alias && strlen(syms->alias)) + snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); + else + strlcpy(name, syms->symbol, MAX_NAME_LEN); + printf(" %-50s [%s]\n", name, "Tool event"); + } +} + +void print_tool_events(const char *event_glob, bool name_only) +{ + // Start at 1 because the first enum entry means no tool event. + for (int i = 1; i < PERF_TOOL_MAX; ++i) + print_tool_event(event_symbols_tool + i, event_glob, name_only); + + if (pager_in_use()) + printf("\n"); +} + +void print_symbol_events(const char *event_glob, unsigned int type, + struct event_symbol *syms, unsigned int max, + bool name_only) +{ + unsigned int i, evt_i = 0, evt_num = 0; + char name[MAX_NAME_LEN]; + char **evt_list = NULL; + bool evt_num_known = false; + +restart: + if (evt_num_known) { + evt_list = zalloc(sizeof(char *) * evt_num); + if (!evt_list) + goto out_enomem; + syms -= max; + } + + for (i = 0; i < max; i++, syms++) { + /* + * New attr.config still not supported here, the latest + * example was PERF_COUNT_SW_CGROUP_SWITCHES + */ + if (syms->symbol == NULL) + continue; + + if (event_glob != NULL && !(strglobmatch(syms->symbol, event_glob) || + (syms->alias && strglobmatch(syms->alias, event_glob)))) + continue; + + if (!is_event_supported(type, i)) + continue; + + if (!evt_num_known) { + evt_num++; + continue; + } + + if (!name_only && strlen(syms->alias)) + snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); + else + strlcpy(name, syms->symbol, MAX_NAME_LEN); + + evt_list[evt_i] = strdup(name); + if (evt_list[evt_i] == NULL) + goto out_enomem; + evt_i++; + } + + if (!evt_num_known) { + evt_num_known = true; + goto restart; + } + qsort(evt_list, evt_num, sizeof(char *), cmp_string); + evt_i = 0; + while (evt_i < evt_num) { + if (name_only) { + printf("%s ", evt_list[evt_i++]); + continue; + } + printf(" %-50s [%s]\n", evt_list[evt_i++], event_type_descriptors[type]); + } + if (evt_num && pager_in_use()) + printf("\n"); + +out_free: + evt_num = evt_i; + for (evt_i = 0; evt_i < evt_num; evt_i++) + zfree(&evt_list[evt_i]); + zfree(&evt_list); + return; + +out_enomem: + printf("FATAL: not enough memory to print %s\n", event_type_descriptors[type]); + if (evt_list) + goto out_free; +} + +/* + * Print the help text for the event symbols: + */ +void print_events(const char *event_glob, bool name_only, bool quiet_flag, + bool long_desc, bool details_flag, bool deprecated, + const char *pmu_name) +{ + print_symbol_events(event_glob, PERF_TYPE_HARDWARE, + event_symbols_hw, PERF_COUNT_HW_MAX, name_only); + + print_symbol_events(event_glob, PERF_TYPE_SOFTWARE, + event_symbols_sw, PERF_COUNT_SW_MAX, name_only); + print_tool_events(event_glob, name_only); + + print_hwcache_events(event_glob, name_only); + + print_pmu_events(event_glob, name_only, quiet_flag, long_desc, + details_flag, deprecated, pmu_name); + + if (event_glob != NULL) + return; + + if (!name_only) { + printf(" %-50s [%s]\n", + "rNNN", + event_type_descriptors[PERF_TYPE_RAW]); + printf(" %-50s [%s]\n", + "cpu/t1=v1[,t2=v2,t3 ...]/modifier", + event_type_descriptors[PERF_TYPE_RAW]); + if (pager_in_use()) + printf(" (see 'man perf-list' on how to encode it)\n\n"); + + printf(" %-50s [%s]\n", + "mem:[/len][:access]", + event_type_descriptors[PERF_TYPE_BREAKPOINT]); + if (pager_in_use()) + printf("\n"); + } + + print_tracepoint_events(NULL, NULL, name_only); + + print_sdt_events(NULL, NULL, name_only); + + metricgroup__print(true, true, NULL, name_only, details_flag, + pmu_name); + + print_libpfm_events(name_only, long_desc); +} --- linux-5.19.0.orig/tools/perf/util/print-events.h +++ linux-5.19.0/tools/perf/util/print-events.h @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PERF_PRINT_EVENTS_H +#define __PERF_PRINT_EVENTS_H + +#include + +struct event_symbol; + +void print_events(const char *event_glob, bool name_only, bool quiet_flag, + bool long_desc, bool details_flag, bool deprecated, + const char *pmu_name); +int print_hwcache_events(const char *event_glob, bool name_only); +void print_sdt_events(const char *subsys_glob, const char *event_glob, + bool name_only); +void print_symbol_events(const char *event_glob, unsigned int type, + struct event_symbol *syms, unsigned int max, + bool name_only); +void print_tool_events(const char *event_glob, bool name_only); +void print_tracepoint_events(const char *subsys_glob, const char *event_glob, + bool name_only); + +#endif /* __PERF_PRINT_EVENTS_H */ --- linux-5.19.0.orig/tools/perf/util/probe-event.c +++ linux-5.19.0/tools/perf/util/probe-event.c @@ -1775,8 +1775,10 @@ if (!pev->event && pev->point.function && pev->point.line && !pev->point.lazy_line && !pev->point.offset) { if (asprintf(&pev->event, "%s_L%d", pev->point.function, - pev->point.line) < 0) - return -ENOMEM; + pev->point.line) < 0) { + ret = -ENOMEM; + goto out; + } } /* Copy arguments and ensure return probe has no C argument */ --- linux-5.19.0.orig/tools/perf/util/stat-display.c +++ linux-5.19.0/tools/perf/util/stat-display.c @@ -207,7 +207,7 @@ fputc('\n', os->fh); if (os->prefix) - fprintf(os->fh, "%s%s", os->prefix, config->csv_sep); + fprintf(os->fh, "%s", os->prefix); aggr_printout(config, os->evsel, os->id, os->nr); for (i = 0; i < os->nfields; i++) fputs(config->csv_sep, os->fh); @@ -436,6 +436,7 @@ [AGGR_SOCKET] = 2, [AGGR_DIE] = 2, [AGGR_CORE] = 2, + [AGGR_NODE] = 1, }; pm = print_metric_csv; @@ -983,6 +984,7 @@ [AGGR_SOCKET] = 12, [AGGR_NONE] = 6, [AGGR_THREAD] = 24, + [AGGR_NODE] = 6, [AGGR_GLOBAL] = 0, }; @@ -992,6 +994,7 @@ [AGGR_SOCKET] = "socket,cpus", [AGGR_NONE] = "cpu,", [AGGR_THREAD] = "comm-pid,", + [AGGR_NODE] = "node,", [AGGR_GLOBAL] = "" }; --- linux-5.19.0.orig/tools/perf/util/symbol-elf.c +++ linux-5.19.0/tools/perf/util/symbol-elf.c @@ -1303,18 +1303,31 @@ (!used_opd && syms_ss->adjust_symbols)) { GElf_Phdr phdr; - if (elf_read_program_header(syms_ss->elf, + if (elf_read_program_header(runtime_ss->elf, (u64)sym.st_value, &phdr)) { - pr_warning("%s: failed to find program header for " + pr_debug4("%s: failed to find program header for " "symbol: %s st_value: %#" PRIx64 "\n", __func__, elf_name, (u64)sym.st_value); - continue; + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " + "sh_addr: %#" PRIx64 " sh_offset: %#" PRIx64 "\n", + __func__, (u64)sym.st_value, (u64)shdr.sh_addr, + (u64)shdr.sh_offset); + /* + * Fail to find program header, let's rollback + * to use shdr.sh_addr and shdr.sh_offset to + * calibrate symbol's file address, though this + * is not necessary for normal C ELF file, we + * still need to handle java JIT symbols in this + * case. + */ + sym.st_value -= shdr.sh_addr - shdr.sh_offset; + } else { + pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " + "p_vaddr: %#" PRIx64 " p_offset: %#" PRIx64 "\n", + __func__, (u64)sym.st_value, (u64)phdr.p_vaddr, + (u64)phdr.p_offset); + sym.st_value -= phdr.p_vaddr - phdr.p_offset; } - pr_debug4("%s: adjusting symbol: st_value: %#" PRIx64 " " - "p_vaddr: %#" PRIx64 " p_offset: %#" PRIx64 "\n", - __func__, (u64)sym.st_value, (u64)phdr.p_vaddr, - (u64)phdr.p_offset); - sym.st_value -= phdr.p_vaddr - phdr.p_offset; } demangled = demangle_sym(dso, kmodule, elf_name); @@ -2089,8 +2102,8 @@ * unusual. One significant peculiarity is that the mapping (start -> pgoff) * is not the same for the kernel map and the modules map. That happens because * the data is copied adjacently whereas the original kcore has gaps. Finally, - * kallsyms and modules files are compared with their copies to check that - * modules have not been loaded or unloaded while the copies were taking place. + * kallsyms file is compared with its copy to check that modules have not been + * loaded or unloaded while the copies were taking place. * * Return: %0 on success, %-1 on failure. */ @@ -2153,9 +2166,6 @@ goto out_extract_close; } - if (kcore_copy__compare_file(from_dir, to_dir, "modules")) - goto out_extract_close; - if (kcore_copy__compare_file(from_dir, to_dir, "kallsyms")) goto out_extract_close; --- linux-5.19.0.orig/tools/perf/util/synthetic-events.c +++ linux-5.19.0/tools/perf/util/synthetic-events.c @@ -367,13 +367,24 @@ bool is_kernel) { struct build_id bid; + struct nsinfo *nsi; + struct nscookie nc; int rc; - if (is_kernel) + if (is_kernel) { rc = sysfs__read_build_id("/sys/kernel/notes", &bid); - else - rc = filename__read_build_id(event->filename, &bid) > 0 ? 0 : -1; + goto out; + } + nsi = nsinfo__new(event->pid); + nsinfo__mountns_enter(nsi, &nc); + + rc = filename__read_build_id(event->filename, &bid) > 0 ? 0 : -1; + + nsinfo__mountns_exit(&nc); + nsinfo__put(nsi); + +out: if (rc == 0) { memcpy(event->build_id, bid.data, sizeof(bid.data)); event->build_id_size = (u8) bid.size; --- linux-5.19.0.orig/tools/perf/util/trace-event-info.c +++ linux-5.19.0/tools/perf/util/trace-event-info.c @@ -19,16 +19,24 @@ #include #include #include // page_size +#include #include "trace-event.h" +#include "tracepoint.h" #include #include "evsel.h" #include "debug.h" #define VERSION "0.6" +#define MAX_EVENT_LENGTH 512 static int output_fd; +struct tracepoint_path { + char *system; + char *name; + struct tracepoint_path *next; +}; int bigendian(void) { @@ -400,6 +408,94 @@ } } +static struct tracepoint_path *tracepoint_id_to_path(u64 config) +{ + struct tracepoint_path *path = NULL; + DIR *sys_dir, *evt_dir; + struct dirent *sys_dirent, *evt_dirent; + char id_buf[24]; + int fd; + u64 id; + char evt_path[MAXPATHLEN]; + char *dir_path; + + sys_dir = tracing_events__opendir(); + if (!sys_dir) + return NULL; + + for_each_subsystem(sys_dir, sys_dirent) { + dir_path = get_events_file(sys_dirent->d_name); + if (!dir_path) + continue; + evt_dir = opendir(dir_path); + if (!evt_dir) + goto next; + + for_each_event(dir_path, evt_dir, evt_dirent) { + + scnprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, + evt_dirent->d_name); + fd = open(evt_path, O_RDONLY); + if (fd < 0) + continue; + if (read(fd, id_buf, sizeof(id_buf)) < 0) { + close(fd); + continue; + } + close(fd); + id = atoll(id_buf); + if (id == config) { + put_events_file(dir_path); + closedir(evt_dir); + closedir(sys_dir); + path = zalloc(sizeof(*path)); + if (!path) + return NULL; + if (asprintf(&path->system, "%.*s", + MAX_EVENT_LENGTH, sys_dirent->d_name) < 0) { + free(path); + return NULL; + } + if (asprintf(&path->name, "%.*s", + MAX_EVENT_LENGTH, evt_dirent->d_name) < 0) { + zfree(&path->system); + free(path); + return NULL; + } + return path; + } + } + closedir(evt_dir); +next: + put_events_file(dir_path); + } + + closedir(sys_dir); + return NULL; +} + +static struct tracepoint_path *tracepoint_name_to_path(const char *name) +{ + struct tracepoint_path *path = zalloc(sizeof(*path)); + char *str = strchr(name, ':'); + + if (path == NULL || str == NULL) { + free(path); + return NULL; + } + + path->system = strndup(name, str - name); + path->name = strdup(str+1); + + if (path->system == NULL || path->name == NULL) { + zfree(&path->system); + zfree(&path->name); + zfree(&path); + } + + return path; +} + static struct tracepoint_path * get_tracepoints_path(struct list_head *pattrs) { --- linux-5.19.0.orig/tools/perf/util/tracepoint.c +++ linux-5.19.0/tools/perf/util/tracepoint.c @@ -0,0 +1,63 @@ +// SPDX-License-Identifier: GPL-2.0 +#include "tracepoint.h" + +#include +#include +#include +#include +#include + +#include + +int tp_event_has_id(const char *dir_path, struct dirent *evt_dir) +{ + char evt_path[MAXPATHLEN]; + int fd; + + snprintf(evt_path, MAXPATHLEN, "%s/%s/id", dir_path, evt_dir->d_name); + fd = open(evt_path, O_RDONLY); + if (fd < 0) + return -EINVAL; + close(fd); + + return 0; +} + +/* + * Check whether event is in /tracing/events + */ +int is_valid_tracepoint(const char *event_string) +{ + DIR *sys_dir, *evt_dir; + struct dirent *sys_dirent, *evt_dirent; + char evt_path[MAXPATHLEN]; + char *dir_path; + + sys_dir = tracing_events__opendir(); + if (!sys_dir) + return 0; + + for_each_subsystem(sys_dir, sys_dirent) { + dir_path = get_events_file(sys_dirent->d_name); + if (!dir_path) + continue; + evt_dir = opendir(dir_path); + if (!evt_dir) + goto next; + + for_each_event(dir_path, evt_dir, evt_dirent) { + snprintf(evt_path, MAXPATHLEN, "%s:%s", + sys_dirent->d_name, evt_dirent->d_name); + if (!strcmp(evt_path, event_string)) { + closedir(evt_dir); + closedir(sys_dir); + return 1; + } + } + closedir(evt_dir); +next: + put_events_file(dir_path); + } + closedir(sys_dir); + return 0; +} --- linux-5.19.0.orig/tools/perf/util/tracepoint.h +++ linux-5.19.0/tools/perf/util/tracepoint.h @@ -0,0 +1,25 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PERF_TRACEPOINT_H +#define __PERF_TRACEPOINT_H + +#include +#include + +int tp_event_has_id(const char *dir_path, struct dirent *evt_dir); + +#define for_each_event(dir_path, evt_dir, evt_dirent) \ + while ((evt_dirent = readdir(evt_dir)) != NULL) \ + if (evt_dirent->d_type == DT_DIR && \ + (strcmp(evt_dirent->d_name, ".")) && \ + (strcmp(evt_dirent->d_name, "..")) && \ + (!tp_event_has_id(dir_path, evt_dirent))) + +#define for_each_subsystem(sys_dir, sys_dirent) \ + while ((sys_dirent = readdir(sys_dir)) != NULL) \ + if (sys_dirent->d_type == DT_DIR && \ + (strcmp(sys_dirent->d_name, ".")) && \ + (strcmp(sys_dirent->d_name, ".."))) + +int is_valid_tracepoint(const char *event_string); + +#endif /* __PERF_TRACEPOINT_H */ --- linux-5.19.0.orig/tools/power/acpi/Makefile.rules +++ linux-5.19.0/tools/power/acpi/Makefile.rules @@ -9,7 +9,7 @@ toolobjs := $(addprefix $(objdir),$(TOOL_OBJS)) $(OUTPUT)$(TOOL): $(toolobjs) FORCE $(ECHO) " LD " $(subst $(OUTPUT),,$@) - $(QUIET) $(LD) $(CFLAGS) $(toolobjs) $(LDFLAGS) -L$(OUTPUT) -o $@ + $(QUIET_LINK)$(CC) $(CFLAGS) $(toolobjs) $(LDFLAGS) -L$(OUTPUT) -o $@ $(ECHO) " STRIP " $(subst $(OUTPUT),,$@) $(QUIET) $(STRIPCMD) $@ --- linux-5.19.0.orig/tools/power/x86/intel-speed-select/isst-daemon.c +++ linux-5.19.0/tools/power/x86/intel-speed-select/isst-daemon.c @@ -41,7 +41,7 @@ time_t tm; int ret; - if (pkg_id >= MAX_PACKAGE_COUNT || die_id > MAX_DIE_PER_PACKAGE) { + if (pkg_id >= MAX_PACKAGE_COUNT || die_id >= MAX_DIE_PER_PACKAGE) { debug_printf("Invalid package/die info for cpu:%d\n", cpu); return; } --- linux-5.19.0.orig/tools/power/x86/turbostat/turbostat.c +++ linux-5.19.0/tools/power/x86/turbostat/turbostat.c @@ -2035,9 +2035,9 @@ if (!fp) return -1; ret = fscanf(fp, "%lld", &tmp); + fclose(fp); if (ret != 1) return -1; - fclose(fp); *cnt = tmp; return 0; @@ -5361,6 +5361,10 @@ case INTEL_FAM6_LAKEFIELD: case INTEL_FAM6_ALDERLAKE: case INTEL_FAM6_ALDERLAKE_L: + case INTEL_FAM6_ALDERLAKE_N: + case INTEL_FAM6_RAPTORLAKE: + case INTEL_FAM6_RAPTORLAKE_P: + case INTEL_FAM6_RAPTORLAKE_S: return INTEL_FAM6_CANNONLAKE_L; case INTEL_FAM6_ATOM_TREMONT_L: --- linux-5.19.0.orig/tools/testing/cxl/test/cxl.c +++ linux-5.19.0/tools/testing/cxl/test/cxl.c @@ -466,7 +466,6 @@ .end = -1, }; - cxld->flags = CXL_DECODER_F_ENABLE; cxld->interleave_ways = min_not_zero(target_count, 1); cxld->interleave_granularity = SZ_4K; cxld->target_type = CXL_DECODER_EXPANDER; @@ -674,7 +673,7 @@ pdev = platform_device_alloc("cxl_switch_uport", i); if (!pdev) - goto err_port; + goto err_uport; pdev->dev.parent = &root_port->dev; rc = platform_device_add(pdev); @@ -692,7 +691,7 @@ pdev = platform_device_alloc("cxl_switch_dport", i); if (!pdev) - goto err_port; + goto err_dport; pdev->dev.parent = &uport->dev; rc = platform_device_add(pdev); --- linux-5.19.0.orig/tools/testing/cxl/test/mock.c +++ linux-5.19.0/tools/testing/cxl/test/mock.c @@ -208,13 +208,15 @@ } EXPORT_SYMBOL_NS_GPL(__wrap_cxl_await_media_ready, CXL); -bool __wrap_cxl_hdm_decode_init(struct cxl_dev_state *cxlds, - struct cxl_hdm *cxlhdm) +int __wrap_cxl_hdm_decode_init(struct cxl_dev_state *cxlds, + struct cxl_hdm *cxlhdm) { int rc = 0, index; struct cxl_mock_ops *ops = get_cxl_mock_ops(&index); - if (!ops || !ops->is_mock_dev(cxlds->dev)) + if (ops && ops->is_mock_dev(cxlds->dev)) + rc = 0; + else rc = cxl_hdm_decode_init(cxlds, cxlhdm); put_cxl_mock_ops(index); --- linux-5.19.0.orig/tools/testing/selftests/Makefile +++ linux-5.19.0/tools/testing/selftests/Makefile @@ -69,6 +69,7 @@ TARGETS += syscall_user_dispatch TARGETS += sysctl TARGETS += tc-testing +TARGETS += tdx TARGETS += timens ifneq (1, $(quicktest)) TARGETS += timers --- linux-5.19.0.orig/tools/testing/selftests/arm64/signal/testcases/testcases.c +++ linux-5.19.0/tools/testing/selftests/arm64/signal/testcases/testcases.c @@ -33,7 +33,7 @@ return false; fprintf(stderr, "Validating EXTRA...\n"); - term = GET_RESV_NEXT_HEAD(extra); + term = GET_RESV_NEXT_HEAD(&extra->head); if (!term || term->magic || term->size) { *err = "Missing terminator after EXTRA context"; return false; --- linux-5.19.0.orig/tools/testing/selftests/bpf/Makefile +++ linux-5.19.0/tools/testing/selftests/bpf/Makefile @@ -168,17 +168,26 @@ $(call msg,BINARY,,$@) $(Q)$(LINK.c) $^ $(LDLIBS) -o $@ +# LLVM's ld.lld doesn't support all the architectures, so use it only on x86 +ifeq ($(SRCARCH),x86) +LLD := lld +else +LLD := ld +endif + # Filter out -static for liburandom_read.so and its dependent targets so that static builds # do not fail. Static builds leave urandom_read relying on system-wide shared libraries. $(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c $(call msg,LIB,,$@) - $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $^ $(LDLIBS) -fPIC -shared -o $@ + $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $^ $(LDLIBS) \ + -fuse-ld=$(LLD) -Wl,-znoseparate-code -fPIC -shared -o $@ $(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/liburandom_read.so $(call msg,BINARY,,$@) - $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \ - liburandom_read.so $(LDLIBS) \ - -Wl,-rpath=. -Wl,--build-id=sha1 -o $@ + $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \ + liburandom_read.so $(LDLIBS) \ + -fuse-ld=$(LLD) -Wl,-znoseparate-code \ + -Wl,-rpath=. -Wl,--build-id=sha1 -o $@ $(OUTPUT)/bpf_testmod.ko: $(VMLINUX_BTF) $(wildcard bpf_testmod/Makefile bpf_testmod/*.[ch]) $(call msg,MOD,,$@) @@ -578,6 +587,8 @@ EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) \ prog_tests/tests.h map_tests/tests.h verifier/tests.h \ feature bpftool \ - $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h *.subskel.h no_alu32 bpf_gcc bpf_testmod.ko) + $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h *.subskel.h \ + no_alu32 bpf_gcc bpf_testmod.ko \ + liburandom_read.so) .PHONY: docs docs-clean --- linux-5.19.0.orig/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c +++ linux-5.19.0/tools/testing/selftests/bpf/bpf_testmod/bpf_testmod.c @@ -88,6 +88,23 @@ } } +noinline int bpf_testmod_fentry_test1(int a) +{ + return a + 1; +} + +noinline int bpf_testmod_fentry_test2(int a, u64 b) +{ + return a + b; +} + +noinline int bpf_testmod_fentry_test3(char a, int b, u64 c) +{ + return a + b + c; +} + +int bpf_testmod_fentry_ok; + noinline ssize_t bpf_testmod_test_read(struct file *file, struct kobject *kobj, struct bin_attribute *bin_attr, @@ -119,6 +136,13 @@ return snprintf(buf, len, "%d\n", writable.val); } + if (bpf_testmod_fentry_test1(1) != 2 || + bpf_testmod_fentry_test2(2, 3) != 5 || + bpf_testmod_fentry_test3(4, 5, 6) != 15) + goto out; + + bpf_testmod_fentry_ok = 1; +out: return -EIO; /* always fail */ } EXPORT_SYMBOL(bpf_testmod_test_read); --- linux-5.19.0.orig/tools/testing/selftests/bpf/config +++ linux-5.19.0/tools/testing/selftests/bpf/config @@ -23,6 +23,7 @@ CONFIG_BPF_STREAM_PARSER=y CONFIG_XDP_SOCKETS=y CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUNCTION_ERROR_INJECTION=y CONFIG_IPV6_TUNNEL=y CONFIG_IPV6_GRE=y CONFIG_IPV6_SEG6_BPF=y --- linux-5.19.0.orig/tools/testing/selftests/bpf/map_tests/array_map_batch_ops.c +++ linux-5.19.0/tools/testing/selftests/bpf/map_tests/array_map_batch_ops.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -137,6 +138,7 @@ free(keys); free(values); free(visited); + close(map_fd); } static void array_map_batch_ops(void) --- linux-5.19.0.orig/tools/testing/selftests/bpf/map_tests/htab_map_batch_ops.c +++ linux-5.19.0/tools/testing/selftests/bpf/map_tests/htab_map_batch_ops.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include @@ -255,6 +256,7 @@ free(visited); if (!is_pcpu) free(values); + close(map_fd); } void htab_map_batch_ops(void) --- linux-5.19.0.orig/tools/testing/selftests/bpf/map_tests/lpm_trie_map_batch_ops.c +++ linux-5.19.0/tools/testing/selftests/bpf/map_tests/lpm_trie_map_batch_ops.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -150,4 +151,5 @@ free(keys); free(values); free(visited); + close(map_fd); } --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/btf.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/btf.c @@ -5324,7 +5324,7 @@ ret = snprintf(pin_path, sizeof(pin_path), "%s/%s", "/sys/fs/bpf", test->map_name); - if (CHECK(ret == sizeof(pin_path), "pin_path %s/%s is too long", + if (CHECK(ret >= sizeof(pin_path), "pin_path %s/%s is too long", "/sys/fs/bpf", test->map_name)) { err = -1; goto done; --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/fexit_stress.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/fexit_stress.c @@ -7,11 +7,9 @@ void serial_test_fexit_stress(void) { - char test_skb[128] = {}; int fexit_fd[CNT] = {}; int link_fd[CNT] = {}; - char error[4096]; - int err, i, filter_fd; + int err, i; const struct bpf_insn trace_program[] = { BPF_MOV64_IMM(BPF_REG_0, 0), @@ -20,25 +18,9 @@ LIBBPF_OPTS(bpf_prog_load_opts, trace_opts, .expected_attach_type = BPF_TRACE_FEXIT, - .log_buf = error, - .log_size = sizeof(error), ); - const struct bpf_insn skb_program[] = { - BPF_MOV64_IMM(BPF_REG_0, 0), - BPF_EXIT_INSN(), - }; - - LIBBPF_OPTS(bpf_prog_load_opts, skb_opts, - .log_buf = error, - .log_size = sizeof(error), - ); - - LIBBPF_OPTS(bpf_test_run_opts, topts, - .data_in = test_skb, - .data_size_in = sizeof(test_skb), - .repeat = 1, - ); + LIBBPF_OPTS(bpf_test_run_opts, topts); err = libbpf_find_vmlinux_btf_id("bpf_fentry_test1", trace_opts.expected_attach_type); @@ -58,15 +40,9 @@ goto out; } - filter_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, NULL, "GPL", - skb_program, sizeof(skb_program) / sizeof(struct bpf_insn), - &skb_opts); - if (!ASSERT_GE(filter_fd, 0, "test_program_loaded")) - goto out; + err = bpf_prog_test_run_opts(fexit_fd[0], &topts); + ASSERT_OK(err, "bpf_prog_test_run_opts"); - err = bpf_prog_test_run_opts(filter_fd, &topts); - close(filter_fd); - CHECK_FAIL(err); out: for (i = 0; i < CNT; i++) { if (link_fd[i]) --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c @@ -325,7 +325,7 @@ static int get_syms(char ***symsp, size_t *cntp) { size_t cap = 0, cnt = 0, i; - char *name, **syms = NULL; + char *name = NULL, **syms = NULL; struct hashmap *map; char buf[256]; FILE *f; @@ -352,6 +352,8 @@ /* skip modules */ if (strchr(buf, '[')) continue; + + free(name); if (sscanf(buf, "%ms$*[^\n]\n", &name) != 1) continue; /* @@ -367,32 +369,32 @@ if (!strncmp(name, "__ftrace_invalid_address__", sizeof("__ftrace_invalid_address__") - 1)) continue; + err = hashmap__add(map, name, NULL); - if (err) { - free(name); - if (err == -EEXIST) - continue; + if (err == -EEXIST) + continue; + if (err) goto error; - } + err = libbpf_ensure_mem((void **) &syms, &cap, sizeof(*syms), cnt + 1); - if (err) { - free(name); + if (err) goto error; - } - syms[cnt] = name; - cnt++; + + syms[cnt++] = name; + name = NULL; } *symsp = syms; *cntp = cnt; error: + free(name); fclose(f); hashmap__free(map); if (err) { for (i = 0; i < cnt; i++) - free(syms[cnt]); + free(syms[i]); free(syms); } return err; --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/kprobe_multi_testmod_test.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/kprobe_multi_testmod_test.c @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: GPL-2.0 +#include +#include "kprobe_multi.skel.h" +#include "trace_helpers.h" +#include "bpf/libbpf_internal.h" + +static void kprobe_multi_testmod_check(struct kprobe_multi *skel) +{ + ASSERT_EQ(skel->bss->kprobe_testmod_test1_result, 1, "kprobe_test1_result"); + ASSERT_EQ(skel->bss->kprobe_testmod_test2_result, 1, "kprobe_test2_result"); + ASSERT_EQ(skel->bss->kprobe_testmod_test3_result, 1, "kprobe_test3_result"); + + ASSERT_EQ(skel->bss->kretprobe_testmod_test1_result, 1, "kretprobe_test1_result"); + ASSERT_EQ(skel->bss->kretprobe_testmod_test2_result, 1, "kretprobe_test2_result"); + ASSERT_EQ(skel->bss->kretprobe_testmod_test3_result, 1, "kretprobe_test3_result"); +} + +static void test_testmod_attach_api(struct bpf_kprobe_multi_opts *opts) +{ + struct kprobe_multi *skel = NULL; + + skel = kprobe_multi__open_and_load(); + if (!ASSERT_OK_PTR(skel, "fentry_raw_skel_load")) + return; + + skel->bss->pid = getpid(); + + skel->links.test_kprobe_testmod = bpf_program__attach_kprobe_multi_opts( + skel->progs.test_kprobe_testmod, + NULL, opts); + if (!skel->links.test_kprobe_testmod) + goto cleanup; + + opts->retprobe = true; + skel->links.test_kretprobe_testmod = bpf_program__attach_kprobe_multi_opts( + skel->progs.test_kretprobe_testmod, + NULL, opts); + if (!skel->links.test_kretprobe_testmod) + goto cleanup; + + ASSERT_OK(trigger_module_test_read(1), "trigger_read"); + kprobe_multi_testmod_check(skel); + +cleanup: + kprobe_multi__destroy(skel); +} + +static void test_testmod_attach_api_addrs(void) +{ + LIBBPF_OPTS(bpf_kprobe_multi_opts, opts); + unsigned long long addrs[3]; + + addrs[0] = ksym_get_addr("bpf_testmod_fentry_test1"); + ASSERT_NEQ(addrs[0], 0, "ksym_get_addr"); + addrs[1] = ksym_get_addr("bpf_testmod_fentry_test2"); + ASSERT_NEQ(addrs[1], 0, "ksym_get_addr"); + addrs[2] = ksym_get_addr("bpf_testmod_fentry_test3"); + ASSERT_NEQ(addrs[2], 0, "ksym_get_addr"); + + opts.addrs = (const unsigned long *) addrs; + opts.cnt = ARRAY_SIZE(addrs); + + test_testmod_attach_api(&opts); +} + +static void test_testmod_attach_api_syms(void) +{ + LIBBPF_OPTS(bpf_kprobe_multi_opts, opts); + const char *syms[3] = { + "bpf_testmod_fentry_test1", + "bpf_testmod_fentry_test2", + "bpf_testmod_fentry_test3", + }; + + opts.syms = syms; + opts.cnt = ARRAY_SIZE(syms); + test_testmod_attach_api(&opts); +} + +void serial_test_kprobe_multi_testmod_test(void) +{ + if (!ASSERT_OK(load_kallsyms_refresh(), "load_kallsyms_refresh")) + return; + + if (test__start_subtest("testmod_attach_api_syms")) + test_testmod_attach_api_syms(); + if (test__start_subtest("testmod_attach_api_addrs")) + test_testmod_attach_api_addrs(); +} --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/module_attach.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/module_attach.c @@ -103,6 +103,13 @@ ASSERT_ERR(delete_module("bpf_testmod", 0), "delete_module"); bpf_link__destroy(link); + link = bpf_program__attach(skel->progs.kprobe_multi); + if (!ASSERT_OK_PTR(link, "attach_kprobe_multi")) + goto cleanup; + + ASSERT_ERR(delete_module("bpf_testmod", 0), "delete_module"); + bpf_link__destroy(link); + cleanup: test_module_attach__destroy(skel); } --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/sock_fields.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/sock_fields.c @@ -394,7 +394,6 @@ test(); done: - test_sock_fields__detach(skel); test_sock_fields__destroy(skel); if (child_cg_fd >= 0) close(child_cg_fd); --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/tc_redirect.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/tc_redirect.c @@ -646,7 +646,7 @@ __u32 *errs = skel->bss->errs[t]; skel->bss->test = t; - test_inet_dtime(AF_INET6, SOCK_STREAM, IP6_DST, 0); + test_inet_dtime(AF_INET6, SOCK_STREAM, IP6_DST, 50000 + t); ASSERT_EQ(dtimes[INGRESS_FWDNS_P100], 0, dtime_cnt_str(t, INGRESS_FWDNS_P100)); @@ -683,7 +683,7 @@ errs = skel->bss->errs[t]; skel->bss->test = t; - test_inet_dtime(family, SOCK_STREAM, addr, 0); + test_inet_dtime(family, SOCK_STREAM, addr, 50000 + t); /* fwdns_prio100 prog does not read delivery_time_type, so * kernel puts the (rcv) timetamp in __sk_buff->tstamp @@ -715,13 +715,13 @@ errs = skel->bss->errs[t]; skel->bss->test = t; - test_inet_dtime(family, SOCK_DGRAM, addr, 0); + test_inet_dtime(family, SOCK_DGRAM, addr, 50000 + t); ASSERT_EQ(dtimes[INGRESS_FWDNS_P100], 0, dtime_cnt_str(t, INGRESS_FWDNS_P100)); /* non mono delivery time is not forwarded */ ASSERT_EQ(dtimes[INGRESS_FWDNS_P101], 0, - dtime_cnt_str(t, INGRESS_FWDNS_P100)); + dtime_cnt_str(t, INGRESS_FWDNS_P101)); for (i = EGRESS_FWDNS_P100; i < SET_DTIME; i++) ASSERT_GT(dtimes[i], 0, dtime_cnt_str(t, i)); --- linux-5.19.0.orig/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c +++ linux-5.19.0/tools/testing/selftests/bpf/prog_tests/xdp_adjust_tail.c @@ -18,7 +18,7 @@ ); err = bpf_prog_test_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); - if (ASSERT_OK(err, "test_xdp_adjust_tail_shrink")) + if (!ASSERT_OK(err, "test_xdp_adjust_tail_shrink")) return; err = bpf_prog_test_run_opts(prog_fd, &topts); @@ -53,7 +53,7 @@ ); err = bpf_prog_test_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); - if (ASSERT_OK(err, "test_xdp_adjust_tail_grow")) + if (!ASSERT_OK(err, "test_xdp_adjust_tail_grow")) return; err = bpf_prog_test_run_opts(prog_fd, &topts); @@ -63,6 +63,7 @@ expect_sz = sizeof(pkt_v6) + 40; /* Test grow with 40 bytes */ topts.data_in = &pkt_v6; topts.data_size_in = sizeof(pkt_v6); + topts.data_size_out = sizeof(buf); err = bpf_prog_test_run_opts(prog_fd, &topts); ASSERT_OK(err, "ipv6"); ASSERT_EQ(topts.retval, XDP_TX, "ipv6 retval"); @@ -89,7 +90,7 @@ ); err = bpf_prog_test_load(file, BPF_PROG_TYPE_XDP, &obj, &prog_fd); - if (ASSERT_OK(err, "test_xdp_adjust_tail_grow")) + if (!ASSERT_OK(err, "test_xdp_adjust_tail_grow")) return; /* Test case-64 */ --- linux-5.19.0.orig/tools/testing/selftests/bpf/progs/kprobe_multi.c +++ linux-5.19.0/tools/testing/selftests/bpf/progs/kprobe_multi.c @@ -36,15 +36,13 @@ __u64 kretprobe_test7_result = 0; __u64 kretprobe_test8_result = 0; -extern bool CONFIG_X86_KERNEL_IBT __kconfig __weak; - static void kprobe_multi_check(void *ctx, bool is_return) { if (bpf_get_current_pid_tgid() >> 32 != pid) return; __u64 cookie = test_cookie ? bpf_get_attach_cookie(ctx) : 0; - __u64 addr = bpf_get_func_ip(ctx) - (CONFIG_X86_KERNEL_IBT ? 4 : 0); + __u64 addr = bpf_get_func_ip(ctx); #define SET(__var, __addr, __cookie) ({ \ if (((const void *) addr == __addr) && \ @@ -112,3 +110,53 @@ kprobe_multi_check(ctx, true); return 0; } + +extern const void bpf_testmod_fentry_test1 __ksym; +extern const void bpf_testmod_fentry_test2 __ksym; +extern const void bpf_testmod_fentry_test3 __ksym; + +__u64 kprobe_testmod_test1_result = 0; +__u64 kprobe_testmod_test2_result = 0; +__u64 kprobe_testmod_test3_result = 0; + +__u64 kretprobe_testmod_test1_result = 0; +__u64 kretprobe_testmod_test2_result = 0; +__u64 kretprobe_testmod_test3_result = 0; + +static void kprobe_multi_testmod_check(void *ctx, bool is_return) +{ + if (bpf_get_current_pid_tgid() >> 32 != pid) + return; + + __u64 addr = bpf_get_func_ip(ctx); + + if (is_return) { + if ((const void *) addr == &bpf_testmod_fentry_test1) + kretprobe_testmod_test1_result = 1; + if ((const void *) addr == &bpf_testmod_fentry_test2) + kretprobe_testmod_test2_result = 1; + if ((const void *) addr == &bpf_testmod_fentry_test3) + kretprobe_testmod_test3_result = 1; + } else { + if ((const void *) addr == &bpf_testmod_fentry_test1) + kprobe_testmod_test1_result = 1; + if ((const void *) addr == &bpf_testmod_fentry_test2) + kprobe_testmod_test2_result = 1; + if ((const void *) addr == &bpf_testmod_fentry_test3) + kprobe_testmod_test3_result = 1; + } +} + +SEC("kprobe.multi") +int test_kprobe_testmod(struct pt_regs *ctx) +{ + kprobe_multi_testmod_check(ctx, false); + return 0; +} + +SEC("kretprobe.multi") +int test_kretprobe_testmod(struct pt_regs *ctx) +{ + kprobe_multi_testmod_check(ctx, true); + return 0; +} --- linux-5.19.0.orig/tools/testing/selftests/bpf/progs/test_module_attach.c +++ linux-5.19.0/tools/testing/selftests/bpf/progs/test_module_attach.c @@ -110,4 +110,10 @@ return 0; /* don't override the exit code */ } +SEC("kprobe.multi/bpf_testmod_test_read") +int BPF_PROG(kprobe_multi) +{ + return 0; +} + char _license[] SEC("license") = "GPL"; --- linux-5.19.0.orig/tools/testing/selftests/bpf/progs/test_tc_dtime.c +++ linux-5.19.0/tools/testing/selftests/bpf/progs/test_tc_dtime.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -115,6 +117,19 @@ return test < TCP_IP4_RT_FWD; } +static __u8 get_proto(void) +{ + switch (test) { + case UDP_IP4: + case UDP_IP6: + case UDP_IP4_RT_FWD: + case UDP_IP6_RT_FWD: + return IPPROTO_UDP; + default: + return IPPROTO_TCP; + } +} + /* -1: parse error: TC_ACT_SHOT * 0: not testing traffic: TC_ACT_OK * >0: first byte is the inet_proto, second byte has the netns @@ -122,11 +137,16 @@ */ static int skb_get_type(struct __sk_buff *skb) { + __u16 dst_ns_port = __bpf_htons(50000 + test); void *data_end = ctx_ptr(skb->data_end); void *data = ctx_ptr(skb->data); __u8 inet_proto = 0, ns = 0; struct ipv6hdr *ip6h; + __u16 sport, dport; struct iphdr *iph; + struct tcphdr *th; + struct udphdr *uh; + void *trans; switch (skb->protocol) { case __bpf_htons(ETH_P_IP): @@ -138,6 +158,7 @@ else if (iph->saddr == ip4_dst) ns = DST_NS; inet_proto = iph->protocol; + trans = iph + 1; break; case __bpf_htons(ETH_P_IPV6): ip6h = data + sizeof(struct ethhdr); @@ -148,15 +169,43 @@ else if (v6_equal(ip6h->saddr, (struct in6_addr)ip6_dst)) ns = DST_NS; inet_proto = ip6h->nexthdr; + trans = ip6h + 1; break; default: return 0; } - if ((inet_proto != IPPROTO_TCP && inet_proto != IPPROTO_UDP) || !ns) + /* skb is not from src_ns or dst_ns. + * skb is not the testing IPPROTO. + */ + if (!ns || inet_proto != get_proto()) + return 0; + + switch (inet_proto) { + case IPPROTO_TCP: + th = trans; + if (th + 1 > data_end) + return -1; + sport = th->source; + dport = th->dest; + break; + case IPPROTO_UDP: + uh = trans; + if (uh + 1 > data_end) + return -1; + sport = uh->source; + dport = uh->dest; + break; + default: return 0; + } + + /* The skb is the testing traffic */ + if ((ns == SRC_NS && dport == dst_ns_port) || + (ns == DST_NS && sport == dst_ns_port)) + return (ns << 8 | inet_proto); - return (ns << 8 | inet_proto); + return 0; } /* format: direction@iface@netns --- linux-5.19.0.orig/tools/testing/selftests/bpf/test_maps.c +++ linux-5.19.0/tools/testing/selftests/bpf/test_maps.c @@ -658,13 +658,13 @@ { struct bpf_map *bpf_map_rx, *bpf_map_tx, *bpf_map_msg, *bpf_map_break; int map_fd_msg = 0, map_fd_rx = 0, map_fd_tx = 0, map_fd_break; + struct bpf_object *parse_obj, *verdict_obj, *msg_obj; int ports[] = {50200, 50201, 50202, 50204}; int err, i, fd, udp, sfd[6] = {0xdeadbeef}; u8 buf[20] = {0x0, 0x5, 0x3, 0x2, 0x1, 0x0}; int parse_prog, verdict_prog, msg_prog; struct sockaddr_in addr; int one = 1, s, sc, rc; - struct bpf_object *obj; struct timeval to; __u32 key, value; pid_t pid[tasks]; @@ -760,6 +760,7 @@ i, udp); goto out_sockmap; } + close(udp); /* Test update without programs */ for (i = 0; i < 6; i++) { @@ -822,27 +823,27 @@ /* Load SK_SKB program and Attach */ err = bpf_prog_test_load(SOCKMAP_PARSE_PROG, - BPF_PROG_TYPE_SK_SKB, &obj, &parse_prog); + BPF_PROG_TYPE_SK_SKB, &parse_obj, &parse_prog); if (err) { printf("Failed to load SK_SKB parse prog\n"); goto out_sockmap; } err = bpf_prog_test_load(SOCKMAP_TCP_MSG_PROG, - BPF_PROG_TYPE_SK_MSG, &obj, &msg_prog); + BPF_PROG_TYPE_SK_MSG, &msg_obj, &msg_prog); if (err) { printf("Failed to load SK_SKB msg prog\n"); goto out_sockmap; } err = bpf_prog_test_load(SOCKMAP_VERDICT_PROG, - BPF_PROG_TYPE_SK_SKB, &obj, &verdict_prog); + BPF_PROG_TYPE_SK_SKB, &verdict_obj, &verdict_prog); if (err) { printf("Failed to load SK_SKB verdict prog\n"); goto out_sockmap; } - bpf_map_rx = bpf_object__find_map_by_name(obj, "sock_map_rx"); + bpf_map_rx = bpf_object__find_map_by_name(verdict_obj, "sock_map_rx"); if (!bpf_map_rx) { printf("Failed to load map rx from verdict prog\n"); goto out_sockmap; @@ -854,7 +855,7 @@ goto out_sockmap; } - bpf_map_tx = bpf_object__find_map_by_name(obj, "sock_map_tx"); + bpf_map_tx = bpf_object__find_map_by_name(verdict_obj, "sock_map_tx"); if (!bpf_map_tx) { printf("Failed to load map tx from verdict prog\n"); goto out_sockmap; @@ -866,7 +867,7 @@ goto out_sockmap; } - bpf_map_msg = bpf_object__find_map_by_name(obj, "sock_map_msg"); + bpf_map_msg = bpf_object__find_map_by_name(verdict_obj, "sock_map_msg"); if (!bpf_map_msg) { printf("Failed to load map msg from msg_verdict prog\n"); goto out_sockmap; @@ -878,7 +879,7 @@ goto out_sockmap; } - bpf_map_break = bpf_object__find_map_by_name(obj, "sock_map_break"); + bpf_map_break = bpf_object__find_map_by_name(verdict_obj, "sock_map_break"); if (!bpf_map_break) { printf("Failed to load map tx from verdict prog\n"); goto out_sockmap; @@ -1124,7 +1125,9 @@ } close(fd); close(map_fd_rx); - bpf_object__close(obj); + bpf_object__close(parse_obj); + bpf_object__close(msg_obj); + bpf_object__close(verdict_obj); return; out: for (i = 0; i < 6; i++) @@ -1282,8 +1285,11 @@ printf("Inner map mim.inner was not destroyed\n"); goto out_map_in_map; } + + close(fd); } + bpf_object__close(obj); return; out_map_in_map: --- linux-5.19.0.orig/tools/testing/selftests/bpf/test_progs.c +++ linux-5.19.0/tools/testing/selftests/bpf/test_progs.c @@ -993,7 +993,7 @@ msg->subtest_done.have_log); break; case MSG_TEST_LOG: - sprintf(buf, "MSG_TEST_LOG (cnt: %ld, last: %d)", + sprintf(buf, "MSG_TEST_LOG (cnt: %zu, last: %d)", strlen(msg->test_log.log_buf), msg->test_log.is_last); break; --- linux-5.19.0.orig/tools/testing/selftests/bpf/trace_helpers.c +++ linux-5.19.0/tools/testing/selftests/bpf/trace_helpers.c @@ -23,7 +23,7 @@ return ((struct ksym *)p1)->addr - ((struct ksym *)p2)->addr; } -int load_kallsyms(void) +int load_kallsyms_refresh(void) { FILE *f; char func[256], buf[256]; @@ -31,12 +31,7 @@ void *addr; int i = 0; - /* - * This is called/used from multiplace places, - * load symbols just once. - */ - if (sym_cnt) - return 0; + sym_cnt = 0; f = fopen("/proc/kallsyms", "r"); if (!f) @@ -57,6 +52,17 @@ return 0; } +int load_kallsyms(void) +{ + /* + * This is called/used from multiplace places, + * load symbols just once. + */ + if (sym_cnt) + return 0; + return load_kallsyms_refresh(); +} + struct ksym *ksym_search(long key) { int start = 0, end = sym_cnt; --- linux-5.19.0.orig/tools/testing/selftests/bpf/trace_helpers.h +++ linux-5.19.0/tools/testing/selftests/bpf/trace_helpers.h @@ -10,6 +10,8 @@ }; int load_kallsyms(void); +int load_kallsyms_refresh(void); + struct ksym *ksym_search(long key); long ksym_get_addr(const char *name); --- linux-5.19.0.orig/tools/testing/selftests/bpf/verifier/ref_tracking.c +++ linux-5.19.0/tools/testing/selftests/bpf/verifier/ref_tracking.c @@ -905,3 +905,39 @@ .result_unpriv = REJECT, .errstr_unpriv = "unknown func", }, +{ + "reference tracking: try to leak released ptr reg", + .insns = { + BPF_MOV64_IMM(BPF_REG_0, 0), + BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4), + BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), + BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -4), + BPF_LD_MAP_FD(BPF_REG_1, 0), + BPF_EMIT_CALL(BPF_FUNC_map_lookup_elem), + BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 1), + BPF_EXIT_INSN(), + BPF_MOV64_REG(BPF_REG_9, BPF_REG_0), + + BPF_MOV64_IMM(BPF_REG_0, 0), + BPF_LD_MAP_FD(BPF_REG_1, 0), + BPF_MOV64_IMM(BPF_REG_2, 8), + BPF_MOV64_IMM(BPF_REG_3, 0), + BPF_EMIT_CALL(BPF_FUNC_ringbuf_reserve), + BPF_JMP_IMM(BPF_JNE, BPF_REG_0, 0, 1), + BPF_EXIT_INSN(), + BPF_MOV64_REG(BPF_REG_8, BPF_REG_0), + + BPF_MOV64_REG(BPF_REG_1, BPF_REG_8), + BPF_MOV64_IMM(BPF_REG_2, 0), + BPF_EMIT_CALL(BPF_FUNC_ringbuf_discard), + BPF_MOV64_IMM(BPF_REG_0, 0), + + BPF_STX_MEM(BPF_DW, BPF_REG_9, BPF_REG_8, 0), + BPF_EXIT_INSN() + }, + .fixup_map_array_48b = { 4 }, + .fixup_map_ringbuf = { 11 }, + .result = ACCEPT, + .result_unpriv = REJECT, + .errstr_unpriv = "R8 !read_ok" +}, --- linux-5.19.0.orig/tools/testing/selftests/bpf/xdpxceiver.c +++ linux-5.19.0/tools/testing/selftests/bpf/xdpxceiver.c @@ -1589,6 +1589,8 @@ if (!ifobj->umem) goto out_umem; + ifobj->ns_fd = -1; + return ifobj; out_umem: @@ -1600,6 +1602,8 @@ static void ifobject_delete(struct ifobject *ifobj) { + if (ifobj->ns_fd != -1) + close(ifobj->ns_fd); free(ifobj->umem); free(ifobj->xsk_arr); free(ifobj); --- linux-5.19.0.orig/tools/testing/selftests/cgroup/cgroup_util.c +++ linux-5.19.0/tools/testing/selftests/cgroup/cgroup_util.c @@ -555,6 +555,7 @@ ssize_t proc_read_text(int pid, bool thread, const char *item, char *buf, size_t size) { char path[PATH_MAX]; + ssize_t ret; if (!pid) snprintf(path, sizeof(path), "/proc/%s/%s", @@ -562,8 +563,8 @@ else snprintf(path, sizeof(path), "/proc/%d/%s", pid, item); - size = read_text(path, buf, size); - return size < 0 ? -1 : size; + ret = read_text(path, buf, size); + return ret < 0 ? -1 : ret; } int proc_read_strstr(int pid, bool thread, const char *item, const char *needle) --- linux-5.19.0.orig/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh +++ linux-5.19.0/tools/testing/selftests/cpu-hotplug/cpu-on-off-test.sh @@ -4,6 +4,7 @@ SYSFS= # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 +retval=0 prerequisite() { @@ -102,10 +103,10 @@ if ! online_cpu $cpu; then echo $FUNCNAME $cpu: unexpected fail >&2 - exit 1 + retval=1 elif ! cpu_is_online $cpu; then echo $FUNCNAME $cpu: unexpected offline >&2 - exit 1 + retval=1 fi } @@ -115,10 +116,10 @@ if online_cpu $cpu 2> /dev/null; then echo $FUNCNAME $cpu: unexpected success >&2 - exit 1 + retval=1 elif ! cpu_is_offline $cpu; then echo $FUNCNAME $cpu: unexpected online >&2 - exit 1 + retval=1 fi } @@ -128,10 +129,10 @@ if ! offline_cpu $cpu; then echo $FUNCNAME $cpu: unexpected fail >&2 - exit 1 + retval=1 elif ! cpu_is_offline $cpu; then echo $FUNCNAME $cpu: unexpected offline >&2 - exit 1 + retval=1 fi } @@ -141,16 +142,33 @@ if offline_cpu $cpu 2> /dev/null; then echo $FUNCNAME $cpu: unexpected success >&2 - exit 1 + retval=1 elif ! cpu_is_online $cpu; then echo $FUNCNAME $cpu: unexpected offline >&2 - exit 1 + retval=1 fi } -error=-12 +online_all_hot_pluggable_cpus() +{ + for cpu in `hotplaggable_offline_cpus`; do + online_cpu_expect_success $cpu + done +} + +offline_all_hot_pluggable_cpus() +{ + local reserve_cpu=$online_max + for cpu in `hotpluggable_online_cpus`; do + # Reserve one cpu oneline at least. + if [ $cpu -eq $reserve_cpu ];then + continue + fi + offline_cpu_expect_success $cpu + done +} + allcpus=0 -priority=0 online_cpus=0 online_max=0 offline_cpus=0 @@ -158,31 +176,20 @@ present_cpus=0 present_max=0 -while getopts e:ahp: opt; do +while getopts ah opt; do case $opt in - e) - error=$OPTARG - ;; a) allcpus=1 ;; h) - echo "Usage $0 [ -a ] [ -e errno ] [ -p notifier-priority ]" + echo "Usage $0 [ -a ]" echo -e "\t default offline one cpu" echo -e "\t run with -a option to offline all cpus" exit ;; - p) - priority=$OPTARG - ;; esac done -if ! [ "$error" -ge -4095 -a "$error" -lt 0 ]; then - echo "error code must be -4095 <= errno < 0" >&2 - exit 1 -fi - prerequisite # @@ -201,7 +208,7 @@ offline_cpu_expect_success $present_max online_cpu $present_max fi - exit 0 + exit $retval else echo "Full scope test: all hotplug cpus" echo -e "\t online all offline cpus" @@ -209,85 +216,10 @@ echo -e "\t online all offline cpus" fi -# -# Online all hot-pluggable CPUs -# -for cpu in `hotplaggable_offline_cpus`; do - online_cpu_expect_success $cpu -done - -# -# Offline all hot-pluggable CPUs -# -for cpu in `hotpluggable_online_cpus`; do - offline_cpu_expect_success $cpu -done - -# -# Online all hot-pluggable CPUs again -# -for cpu in `hotplaggable_offline_cpus`; do - online_cpu_expect_success $cpu -done - -# -# Test with cpu notifier error injection -# +online_all_hot_pluggable_cpus -DEBUGFS=`mount -t debugfs | head -1 | awk '{ print $3 }'` -NOTIFIER_ERR_INJECT_DIR=$DEBUGFS/notifier-error-inject/cpu +offline_all_hot_pluggable_cpus -prerequisite_extra() -{ - msg="skip extra tests:" - - /sbin/modprobe -q -r cpu-notifier-error-inject - /sbin/modprobe -q cpu-notifier-error-inject priority=$priority - - if [ ! -d "$DEBUGFS" ]; then - echo $msg debugfs is not mounted >&2 - exit $ksft_skip - fi - - if [ ! -d $NOTIFIER_ERR_INJECT_DIR ]; then - echo $msg cpu-notifier-error-inject module is not available >&2 - exit $ksft_skip - fi -} - -prerequisite_extra - -# -# Offline all hot-pluggable CPUs -# -echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_DOWN_PREPARE/error -for cpu in `hotpluggable_online_cpus`; do - offline_cpu_expect_success $cpu -done - -# -# Test CPU hot-add error handling (offline => online) -# -echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_UP_PREPARE/error -for cpu in `hotplaggable_offline_cpus`; do - online_cpu_expect_fail $cpu -done - -# -# Online all hot-pluggable CPUs -# -echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_UP_PREPARE/error -for cpu in `hotplaggable_offline_cpus`; do - online_cpu_expect_success $cpu -done - -# -# Test CPU hot-remove error handling (online => offline) -# -echo $error > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_DOWN_PREPARE/error -for cpu in `hotpluggable_online_cpus`; do - offline_cpu_expect_fail $cpu -done +online_all_hot_pluggable_cpus -echo 0 > $NOTIFIER_ERR_INJECT_DIR/actions/CPU_DOWN_PREPARE/error -/sbin/modprobe -q -r cpu-notifier-error-inject +exit $retval --- linux-5.19.0.orig/tools/testing/selftests/drivers/net/netdevsim/devlink.sh +++ linux-5.19.0/tools/testing/selftests/drivers/net/netdevsim/devlink.sh @@ -496,8 +496,8 @@ check_reporter_info dummy healthy 3 3 10 true - echo 8192> $DEBUGFS_DIR/health/binary_len - check_fail $? "Failed set dummy reporter binary len to 8192" + echo 8192 > $DEBUGFS_DIR/health/binary_len + check_err $? "Failed set dummy reporter binary len to 8192" local dump=$(devlink health dump show $DL_HANDLE reporter dummy -j) check_err $? "Failed show dump of dummy reporter" --- linux-5.19.0.orig/tools/testing/selftests/efivarfs/efivarfs.sh +++ linux-5.19.0/tools/testing/selftests/efivarfs/efivarfs.sh @@ -87,6 +87,11 @@ { local file=$efivarfs_mount/$FUNCNAME-$test_guid ./create-read $file + if [ $? -ne 0 ]; then + echo "create and read $file failed" + file_cleanup $file + exit 1 + fi file_cleanup $file } --- linux-5.19.0.orig/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc +++ linux-5.19.0/tools/testing/selftests/ftrace/test.d/ftrace/func_event_triggers.tc @@ -38,11 +38,18 @@ test_event_enabled() { val=$1 + check_times=10 # wait for 10 * SLEEP_TIME at most - e=`cat $EVENT_ENABLE` - if [ "$e" != $val ]; then - fail "Expected $val but found $e" - fi + while [ $check_times -ne 0 ]; do + e=`cat $EVENT_ENABLE` + if [ "$e" == $val ]; then + return 0 + fi + sleep $SLEEP_TIME + check_times=$((check_times - 1)) + done + + fail "Expected $val but found $e" } run_enable_disable() { --- linux-5.19.0.orig/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc +++ linux-5.19.0/tools/testing/selftests/ftrace/test.d/kprobe/kprobe_syntax_errors.tc @@ -21,7 +21,6 @@ check_error 'p:^12345678901234567890123456789012345678901234567890123456789012345/bar vfs_read' # GROUP_TOO_LONG check_error 'p:^foo.1/bar vfs_read' # BAD_GROUP_NAME -check_error 'p:foo/^ vfs_read' # NO_EVENT_NAME check_error 'p:foo/^12345678901234567890123456789012345678901234567890123456789012345 vfs_read' # EVENT_TOO_LONG check_error 'p:foo/^bar.1 vfs_read' # BAD_EVENT_NAME --- linux-5.19.0.orig/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc +++ linux-5.19.0/tools/testing/selftests/ftrace/test.d/trigger/trigger-trace-marker-snapshot.tc @@ -14,12 +14,12 @@ x=$2 cat $file | while read line; do - comment=`echo $line | sed -e 's/^#//'` + comment=`echo "$line" | sed -e 's/^#//'` if [ "$line" != "$comment" ]; then continue fi echo "testing $line for >$x<" - match=`echo $line | sed -e "s/>$x$x$x< in it" fi --- linux-5.19.0.orig/tools/testing/selftests/futex/functional/Makefile +++ linux-5.19.0/tools/testing/selftests/futex/functional/Makefile @@ -3,11 +3,11 @@ CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES) $(KHDR_INCLUDES) LDLIBS := -lpthread -lrt -HEADERS := \ +LOCAL_HDRS := \ ../include/futextest.h \ ../include/atomic.h \ ../include/logging.h -TEST_GEN_FILES := \ +TEST_GEN_PROGS := \ futex_wait_timeout \ futex_wait_wouldblock \ futex_requeue_pi \ @@ -25,5 +25,3 @@ KSFT_KHDR_INSTALL := 1 DEFAULT_INSTALL_HDR_PATH := 1 include ../../lib.mk - -$(TEST_GEN_FILES): $(HEADERS) --- linux-5.19.0.orig/tools/testing/selftests/intel_pstate/Makefile +++ linux-5.19.0/tools/testing/selftests/intel_pstate/Makefile @@ -2,10 +2,10 @@ CFLAGS := $(CFLAGS) -Wall -D_GNU_SOURCE LDLIBS += -lm -uname_M := $(shell uname -m 2>/dev/null || echo not) -ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/) +ARCH ?= $(shell uname -m 2>/dev/null || echo not) +ARCH_PROCESSED := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/) -ifeq (x86,$(ARCH)) +ifeq (x86,$(ARCH_PROCESSED)) TEST_GEN_FILES := msr aperf endif --- linux-5.19.0.orig/tools/testing/selftests/kexec/Makefile +++ linux-5.19.0/tools/testing/selftests/kexec/Makefile @@ -1,10 +1,10 @@ # SPDX-License-Identifier: GPL-2.0-only # Makefile for kexec tests -uname_M := $(shell uname -m 2>/dev/null || echo not) -ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/) +ARCH ?= $(shell uname -m 2>/dev/null || echo not) +ARCH_PROCESSED := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/) -ifeq ($(ARCH),$(filter $(ARCH),x86 ppc64le)) +ifeq ($(ARCH_PROCESSED),$(filter $(ARCH_PROCESSED),x86 ppc64le)) TEST_PROGS := test_kexec_load.sh test_kexec_file_load.sh TEST_FILES := kexec_common_lib.sh --- linux-5.19.0.orig/tools/testing/selftests/kselftest/runner.sh +++ linux-5.19.0/tools/testing/selftests/kselftest/runner.sh @@ -34,7 +34,7 @@ tap_timeout() { # Make sure tests will time out if utility is available. - if [ -x /usr/bin/timeout ] ; then + if [ -x /usr/bin/timeout ] && [ $kselftest_timeout -gt 0 ] ; then /usr/bin/timeout --foreground "$kselftest_timeout" $1 else $1 --- linux-5.19.0.orig/tools/testing/selftests/kvm/lib/s390x/diag318_test_handler.c +++ linux-5.19.0/tools/testing/selftests/kvm/lib/s390x/diag318_test_handler.c @@ -8,8 +8,6 @@ #include "test_util.h" #include "kvm_util.h" -#define VCPU_ID 6 - #define ICPT_INSTRUCTION 0x04 #define IPA0_DIAG 0x8300 @@ -27,14 +25,15 @@ */ static uint64_t diag318_handler(void) { + struct kvm_vcpu *vcpu; struct kvm_vm *vm; struct kvm_run *run; uint64_t reg; uint64_t diag318_info; - vm = vm_create_default(VCPU_ID, 0, guest_code); - vcpu_run(vm, VCPU_ID); - run = vcpu_state(vm, VCPU_ID); + vm = vm_create_with_one_vcpu(&vcpu, guest_code); + vcpu_run(vm, vcpu->id); + run = vcpu->run; TEST_ASSERT(run->exit_reason == KVM_EXIT_S390_SIEIC, "DIAGNOSE 0x0318 instruction was not intercepted"); --- linux-5.19.0.orig/tools/testing/selftests/kvm/lib/x86_64/processor.c +++ linux-5.19.0/tools/testing/selftests/kvm/lib/x86_64/processor.c @@ -1422,7 +1422,7 @@ asm volatile("vmcall" : "=a"(r) - : "b"(a0), "c"(a1), "d"(a2), "S"(a3)); + : "a"(nr), "b"(a0), "c"(a1), "d"(a2), "S"(a3)); return r; } --- linux-5.19.0.orig/tools/testing/selftests/kvm/max_guest_memory_test.c +++ linux-5.19.0/tools/testing/selftests/kvm/max_guest_memory_test.c @@ -28,8 +28,7 @@ } struct vcpu_info { - struct kvm_vm *vm; - uint32_t id; + struct kvm_vcpu *vcpu; uint64_t start_gpa; uint64_t end_gpa; }; @@ -60,12 +59,13 @@ static void *vcpu_worker(void *data) { - struct vcpu_info *vcpu = data; + struct vcpu_info *info = data; + struct kvm_vcpu *vcpu = info->vcpu; struct kvm_vm *vm = vcpu->vm; struct kvm_sregs sregs; struct kvm_regs regs; - vcpu_args_set(vm, vcpu->id, 3, vcpu->start_gpa, vcpu->end_gpa, + vcpu_args_set(vm, vcpu->id, 3, info->start_gpa, info->end_gpa, vm_get_page_size(vm)); /* Snapshot regs before the first run. */ @@ -89,8 +89,8 @@ return NULL; } -static pthread_t *spawn_workers(struct kvm_vm *vm, uint64_t start_gpa, - uint64_t end_gpa) +static pthread_t *spawn_workers(struct kvm_vm *vm, struct kvm_vcpu **vcpus, + uint64_t start_gpa, uint64_t end_gpa) { struct vcpu_info *info; uint64_t gpa, nr_bytes; @@ -108,8 +108,7 @@ TEST_ASSERT(nr_bytes, "C'mon, no way you have %d CPUs", nr_vcpus); for (i = 0, gpa = start_gpa; i < nr_vcpus; i++, gpa += nr_bytes) { - info[i].vm = vm; - info[i].id = i; + info[i].vcpu = vcpus[i]; info[i].start_gpa = gpa; info[i].end_gpa = gpa + nr_bytes; pthread_create(&threads[i], NULL, vcpu_worker, &info[i]); @@ -172,6 +171,7 @@ uint64_t max_gpa, gpa, slot_size, max_mem, i; int max_slots, slot, opt, fd; bool hugepages = false; + struct kvm_vcpu **vcpus; pthread_t *threads; struct kvm_vm *vm; void *mem; @@ -215,7 +215,10 @@ } } - vm = vm_create_default_with_vcpus(nr_vcpus, 0, 0, guest_code, NULL); + vcpus = malloc(nr_vcpus * sizeof(*vcpus)); + TEST_ASSERT(vcpus, "Failed to allocate vCPU array"); + + vm = vm_create_with_vcpus(nr_vcpus, guest_code, vcpus); max_gpa = vm_get_max_gfn(vm) << vm_get_page_shift(vm); TEST_ASSERT(max_gpa > (4 * slot_size), "MAXPHYADDR <4gb "); @@ -252,7 +255,10 @@ } atomic_set(&rendezvous, nr_vcpus + 1); - threads = spawn_workers(vm, start_gpa, gpa); + threads = spawn_workers(vm, vcpus, start_gpa, gpa); + + free(vcpus); + vcpus = NULL; pr_info("Running with %lugb of guest memory and %u vCPUs\n", (gpa - start_gpa) / size_1gb, nr_vcpus); --- linux-5.19.0.orig/tools/testing/selftests/kvm/memslot_modification_stress_test.c +++ linux-5.19.0/tools/testing/selftests/kvm/memslot_modification_stress_test.c @@ -68,7 +68,7 @@ static void add_remove_memslot(struct kvm_vm *vm, useconds_t delay, uint64_t nr_modifications) { - const uint64_t pages = 1; + uint64_t pages = max_t(int, vm_get_page_size(vm), getpagesize()) / vm_get_page_size(vm); uint64_t gpa; int i; --- linux-5.19.0.orig/tools/testing/selftests/landlock/fs_test.c +++ linux-5.19.0/tools/testing/selftests/landlock/fs_test.c @@ -4,7 +4,7 @@ * * Copyright © 2017-2020 Mickaël Salaün * Copyright © 2020 ANSSI - * Copyright © 2020-2021 Microsoft Corporation + * Copyright © 2020-2022 Microsoft Corporation */ #define _GNU_SOURCE @@ -371,6 +371,13 @@ ASSERT_EQ(EINVAL, errno); path_beneath.allowed_access &= ~LANDLOCK_ACCESS_FS_EXECUTE; + /* Tests with denied-by-default access right. */ + path_beneath.allowed_access |= LANDLOCK_ACCESS_FS_REFER; + ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, + &path_beneath, 0)); + ASSERT_EQ(EINVAL, errno); + path_beneath.allowed_access &= ~LANDLOCK_ACCESS_FS_REFER; + /* Test with unknown (64-bits) value. */ path_beneath.allowed_access |= (1ULL << 60); ASSERT_EQ(-1, landlock_add_rule(ruleset_fd, LANDLOCK_RULE_PATH_BENEATH, @@ -1826,6 +1833,20 @@ ASSERT_EQ(0, link(file1_s1d3, file2_s1d3)); } +static int test_rename(const char *const oldpath, const char *const newpath) +{ + if (rename(oldpath, newpath)) + return errno; + return 0; +} + +static int test_exchange(const char *const oldpath, const char *const newpath) +{ + if (renameat2(AT_FDCWD, oldpath, AT_FDCWD, newpath, RENAME_EXCHANGE)) + return errno; + return 0; +} + TEST_F_FORK(layout1, rename_file) { const struct rule rules[] = { @@ -1867,10 +1888,10 @@ * to a different directory (which allows file removal). */ ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); - ASSERT_EQ(EXDEV, errno); + ASSERT_EQ(EACCES, errno); ASSERT_EQ(-1, renameat2(AT_FDCWD, file1_s2d1, AT_FDCWD, file1_s1d3, RENAME_EXCHANGE)); - ASSERT_EQ(EXDEV, errno); + ASSERT_EQ(EACCES, errno); ASSERT_EQ(-1, renameat2(AT_FDCWD, dir_s2d2, AT_FDCWD, file1_s1d3, RENAME_EXCHANGE)); ASSERT_EQ(EXDEV, errno); @@ -1894,7 +1915,7 @@ ASSERT_EQ(EXDEV, errno); ASSERT_EQ(0, unlink(file1_s1d3)); ASSERT_EQ(-1, rename(file1_s2d1, file1_s1d3)); - ASSERT_EQ(EXDEV, errno); + ASSERT_EQ(EACCES, errno); /* Exchanges and renames files with same parent. */ ASSERT_EQ(0, renameat2(AT_FDCWD, file2_s2d3, AT_FDCWD, file1_s2d3, @@ -2014,6 +2035,115 @@ ASSERT_EQ(0, rename(dir_s1d3, dir_s2d3)); } +/* Checks renames beneath dir_s1d1. */ +static void refer_denied_by_default(struct __test_metadata *const _metadata, + const struct rule layer1[], + const int layer1_err, + const struct rule layer2[]) +{ + int ruleset_fd; + + ASSERT_EQ(0, unlink(file1_s1d2)); + + ruleset_fd = create_ruleset(_metadata, layer1[0].access, layer1); + ASSERT_LE(0, ruleset_fd); + enforce_ruleset(_metadata, ruleset_fd); + ASSERT_EQ(0, close(ruleset_fd)); + + /* + * If the first layer handles LANDLOCK_ACCESS_FS_REFER (according to + * layer1_err), then it allows some different-parent renames and links. + */ + ASSERT_EQ(layer1_err, test_rename(file1_s1d1, file1_s1d2)); + if (layer1_err == 0) + ASSERT_EQ(layer1_err, test_rename(file1_s1d2, file1_s1d1)); + ASSERT_EQ(layer1_err, test_exchange(file2_s1d1, file2_s1d2)); + ASSERT_EQ(layer1_err, test_exchange(file2_s1d2, file2_s1d1)); + + ruleset_fd = create_ruleset(_metadata, layer2[0].access, layer2); + ASSERT_LE(0, ruleset_fd); + enforce_ruleset(_metadata, ruleset_fd); + ASSERT_EQ(0, close(ruleset_fd)); + + /* + * Now, either the first or the second layer does not handle + * LANDLOCK_ACCESS_FS_REFER, which means that any different-parent + * renames and links are denied, thus making the layer handling + * LANDLOCK_ACCESS_FS_REFER null and void. + */ + ASSERT_EQ(EXDEV, test_rename(file1_s1d1, file1_s1d2)); + ASSERT_EQ(EXDEV, test_exchange(file2_s1d1, file2_s1d2)); + ASSERT_EQ(EXDEV, test_exchange(file2_s1d2, file2_s1d1)); +} + +const struct rule layer_dir_s1d1_refer[] = { + { + .path = dir_s1d1, + .access = LANDLOCK_ACCESS_FS_REFER, + }, + {}, +}; + +const struct rule layer_dir_s1d1_execute[] = { + { + /* Matches a parent directory. */ + .path = dir_s1d1, + .access = LANDLOCK_ACCESS_FS_EXECUTE, + }, + {}, +}; + +const struct rule layer_dir_s2d1_execute[] = { + { + /* Does not match a parent directory. */ + .path = dir_s2d1, + .access = LANDLOCK_ACCESS_FS_EXECUTE, + }, + {}, +}; + +/* + * Tests precedence over renames: denied by default for different parent + * directories, *with* a rule matching a parent directory, but not directly + * denying access (with MAKE_REG nor REMOVE). + */ +TEST_F_FORK(layout1, refer_denied_by_default1) +{ + refer_denied_by_default(_metadata, layer_dir_s1d1_refer, 0, + layer_dir_s1d1_execute); +} + +/* + * Same test but this time turning around the ABI version order: the first + * layer does not handle LANDLOCK_ACCESS_FS_REFER. + */ +TEST_F_FORK(layout1, refer_denied_by_default2) +{ + refer_denied_by_default(_metadata, layer_dir_s1d1_execute, EXDEV, + layer_dir_s1d1_refer); +} + +/* + * Tests precedence over renames: denied by default for different parent + * directories, *without* a rule matching a parent directory, but not directly + * denying access (with MAKE_REG nor REMOVE). + */ +TEST_F_FORK(layout1, refer_denied_by_default3) +{ + refer_denied_by_default(_metadata, layer_dir_s1d1_refer, 0, + layer_dir_s2d1_execute); +} + +/* + * Same test but this time turning around the ABI version order: the first + * layer does not handle LANDLOCK_ACCESS_FS_REFER. + */ +TEST_F_FORK(layout1, refer_denied_by_default4) +{ + refer_denied_by_default(_metadata, layer_dir_s2d1_execute, EXDEV, + layer_dir_s1d1_refer); +} + TEST_F_FORK(layout1, reparent_link) { const struct rule layer1[] = { @@ -2336,11 +2466,12 @@ ASSERT_EQ(EXDEV, errno); /* - * However, moving the file2_s1d3 file below dir_s2d3 is allowed - * because it cannot inherit MAKE_REG nor MAKE_DIR rights (which are - * dedicated to directories). + * Moving the file2_s1d3 file below dir_s2d3 is denied because the + * second layer does not handle REFER, which is always denied by + * default. */ - ASSERT_EQ(0, rename(file2_s1d3, file1_s2d3)); + ASSERT_EQ(-1, rename(file2_s1d3, file1_s2d3)); + ASSERT_EQ(EXDEV, errno); } TEST_F_FORK(layout1, reparent_exdev_layers_rename2) @@ -2373,8 +2504,12 @@ ASSERT_EQ(EACCES, errno); ASSERT_EQ(-1, rename(file1_s1d1, file1_s2d3)); ASSERT_EQ(EXDEV, errno); - /* Modify layout! */ - ASSERT_EQ(0, rename(file2_s1d2, file1_s2d3)); + /* + * Modifying the layout is now denied because the second layer does not + * handle REFER, which is always denied by default. + */ + ASSERT_EQ(-1, rename(file2_s1d2, file1_s2d3)); + ASSERT_EQ(EXDEV, errno); /* Without REFER source, EACCES wins over EXDEV. */ ASSERT_EQ(-1, rename(dir_s1d1, file1_s2d2)); --- linux-5.19.0.orig/tools/testing/selftests/memory-hotplug/settings +++ linux-5.19.0/tools/testing/selftests/memory-hotplug/settings @@ -0,0 +1 @@ +timeout=600 --- linux-5.19.0.orig/tools/testing/selftests/net/Makefile +++ linux-5.19.0/tools/testing/selftests/net/Makefile @@ -59,14 +59,60 @@ TEST_GEN_FILES += cmsg_sender TEST_GEN_FILES += stress_reuseport_listen TEST_PROGS += test_vxlan_vnifiltering.sh +TEST_GEN_FILES += nat6to4.o TEST_FILES := settings KSFT_KHDR_INSTALL := 1 include ../lib.mk -include bpf/Makefile - $(OUTPUT)/reuseport_bpf_numa: LDLIBS += -lnuma $(OUTPUT)/tcp_mmap: LDLIBS += -lpthread $(OUTPUT)/tcp_inq: LDLIBS += -lpthread + +# Rules to generate bpf obj nat6to4.o +CLANG ?= clang +SCRATCH_DIR := $(OUTPUT)/tools +BUILD_DIR := $(SCRATCH_DIR)/build +BPFDIR := $(abspath ../../../lib/bpf) +APIDIR := $(abspath ../../../include/uapi) + +CCINCLUDE += -I../bpf +CCINCLUDE += -I../../../../usr/include/ +CCINCLUDE += -I$(SCRATCH_DIR)/include + +BPFOBJ := $(BUILD_DIR)/libbpf/libbpf.a + +MAKE_DIRS := $(BUILD_DIR)/libbpf +$(MAKE_DIRS): + mkdir -p $@ + +# Get Clang's default includes on this system, as opposed to those seen by +# '-target bpf'. This fixes "missing" files on some architectures/distros, +# such as asm/byteorder.h, asm/socket.h, asm/sockios.h, sys/cdefs.h etc. +# +# Use '-idirafter': Don't interfere with include mechanics except where the +# build would have failed anyways. +define get_sys_includes +$(shell $(1) $(2) -v -E - &1 \ + | sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }') \ +$(shell $(1) $(2) -dM -E - /dev/null 2>&1 - sysctl -w net.ipv4.conf.all.ndisc_evict_nocarrier=1 >/dev/null 2>&1 + sysctl -w net.ipv6.conf.veth1.ndisc_evict_nocarrier=1 >/dev/null 2>&1 + sysctl -w net.ipv6.conf.all.ndisc_evict_nocarrier=1 >/dev/null 2>&1 } create_ns() @@ -61,7 +62,7 @@ if [ $? -ne 0 ]; then cleanup_v6 echo "failed" - exit + exit 1 fi # Set veth2 down, which will put veth1 in NOCARRIER state @@ -88,7 +89,7 @@ if [ $? -ne 0 ]; then cleanup_v4 echo "failed" - exit + exit 1 fi # Set veth1 down, which will put veth0 in NOCARRIER state @@ -115,6 +116,7 @@ if [ $? -eq 0 ];then echo "failed" + ret=1 else echo "ok" fi @@ -134,6 +136,7 @@ echo "ok" else echo "failed" + ret=1 fi cleanup_v4 @@ -164,6 +167,7 @@ if [ $? -eq 0 ];then echo "failed" + ret=1 else echo "ok" fi @@ -182,6 +186,7 @@ echo "ok" else echo "failed" + ret=1 fi cleanup_v6 @@ -198,6 +203,7 @@ echo "ok" else echo "failed" + ret=1 fi cleanup_v6 @@ -218,3 +224,4 @@ fi run_all_tests +exit $ret --- linux-5.19.0.orig/tools/testing/selftests/net/cmsg_ipv6.sh +++ linux-5.19.0/tools/testing/selftests/net/cmsg_ipv6.sh @@ -6,7 +6,7 @@ NS=ns IP6=2001:db8:1::1/64 TGT6=2001:db8:1::2 -TMPF=`mktemp` +TMPF=$(mktemp --suffix ".pcap") cleanup() { --- linux-5.19.0.orig/tools/testing/selftests/net/cmsg_sender.c +++ linux-5.19.0/tools/testing/selftests/net/cmsg_sender.c @@ -110,7 +110,7 @@ static void cs_parse_args(int argc, char *argv[]) { - char o; + int o; while ((o = getopt(argc, argv, "46sS:p:m:M:d:tf:F:c:C:l:L:H:")) != -1) { switch (o) { --- linux-5.19.0.orig/tools/testing/selftests/net/config +++ linux-5.19.0/tools/testing/selftests/net/config @@ -43,5 +43,5 @@ CONFIG_NET_ACT_MIRRED=m CONFIG_BAREUDP=m CONFIG_IPV6_IOAM6_LWTUNNEL=y -CONFIG_CRYPTO_SM4=y +CONFIG_CRYPTO_SM4_GENERIC=y CONFIG_AMT=m --- linux-5.19.0.orig/tools/testing/selftests/net/fcnal-test.sh +++ linux-5.19.0/tools/testing/selftests/net/fcnal-test.sh @@ -1467,6 +1467,13 @@ log_test_addr ${a} $? 0 "Client, device bind via IP_UNICAST_IF" log_start + run_cmd_nsb nettest -D -s & + sleep 1 + run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -0 ${NSA_IP} -U + log_test_addr ${a} $? 0 "Client, device bind via IP_UNICAST_IF, with connect()" + + + log_start show_hint "Should fail 'Connection refused'" run_cmd nettest -D -r ${a} log_test_addr ${a} $? 1 "No server, unbound client" @@ -1525,6 +1532,13 @@ run_cmd nettest -D -d ${NSA_DEV} -S -r ${a} log_test_addr ${a} $? 0 "Global server, device client via IP_UNICAST_IF, local connection" + log_start + run_cmd nettest -s -D & + sleep 1 + run_cmd nettest -D -d ${NSA_DEV} -S -r ${a} -U + log_test_addr ${a} $? 0 "Global server, device client via IP_UNICAST_IF, local connection, with connect()" + + # IPv4 with device bind has really weird behavior - it overrides the # fib lookup, generates an rtable and tries to send the packet. This # causes failures for local traffic at different places @@ -1550,6 +1564,15 @@ sleep 1 run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection" + + log_start + show_hint "Should fail since addresses on loopback are out of device scope" + run_cmd nettest -D -s & + sleep 1 + run_cmd nettest -D -r ${a} -d ${NSA_DEV} -S -U + log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection, with connect()" + + done a=${NSA_IP} @@ -3157,6 +3180,13 @@ sleep 1 run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection" + + log_start + show_hint "Should fail 'No route to host' since addresses on loopback are out of device scope" + run_cmd nettest -6 -D -s & + sleep 1 + run_cmd nettest -6 -D -r ${a} -d ${NSA_DEV} -S -U + log_test_addr ${a} $? 1 "Global server, device client via IP_UNICAST_IF, local connection, with connect()" done a=${NSA_IP6} @@ -4166,10 +4196,13 @@ TESTS="$TESTS_IPV6" fi -which nettest >/dev/null -if [ $? -ne 0 ]; then - echo "'nettest' command not found; skipping tests" - exit $ksft_skip +# nettest can be run from PATH or from same directory as this selftest +if ! which nettest >/dev/null; then + PATH=$PWD:$PATH + if ! which nettest >/dev/null; then + echo "'nettest' command not found; skipping tests" + exit $ksft_skip + fi fi declare -i nfail=0 --- linux-5.19.0.orig/tools/testing/selftests/net/fib_nexthops.sh +++ linux-5.19.0/tools/testing/selftests/net/fib_nexthops.sh @@ -1223,6 +1223,22 @@ log_test $rc 0 "Delete nexthop route warning" run_cmd "$IP route delete 172.16.101.1/32 nhid 12" run_cmd "$IP nexthop del id 12" + + run_cmd "$IP nexthop add id 21 via 172.16.1.6 dev veth1" + run_cmd "$IP ro add 172.16.101.0/24 nhid 21" + run_cmd "$IP ro del 172.16.101.0/24 nexthop via 172.16.1.7 dev veth1 nexthop via 172.16.1.8 dev veth1" + log_test $? 2 "Delete multipath route with only nh id based entry" + + run_cmd "$IP nexthop add id 22 via 172.16.1.6 dev veth1" + run_cmd "$IP ro add 172.16.102.0/24 nhid 22" + run_cmd "$IP ro del 172.16.102.0/24 dev veth1" + log_test $? 2 "Delete route when specifying only nexthop device" + + run_cmd "$IP ro del 172.16.102.0/24 via 172.16.1.6" + log_test $? 2 "Delete route when specifying only gateway" + + run_cmd "$IP ro del 172.16.102.0/24" + log_test $? 0 "Delete route when not specifying nexthop attributes" } ipv4_grp_fcnal() --- linux-5.19.0.orig/tools/testing/selftests/net/fib_rule_tests.sh +++ linux-5.19.0/tools/testing/selftests/net/fib_rule_tests.sh @@ -63,6 +63,8 @@ $IP address add $DEV_ADDR/24 dev dummy0 $IP -6 address add $DEV_ADDR6/64 dev dummy0 + ip netns exec testns sysctl -w net.ipv4.ip_forward=1 + set +e } @@ -303,6 +305,29 @@ log_section "IPv6 fib rule" fib_rule6_test } +################################################################################ +# usage + +usage() +{ + cat < Test(s) to run (default: all) + (options: $TESTS) +EOF +} + +################################################################################ +# main + +while getopts ":t:h" opt; do + case $opt in + t) TESTS=$OPTARG;; + h) usage; exit 0;; + *) usage; exit 1;; + esac +done if [ "$(id -u)" -ne 0 ];then echo "SKIP: Need root privileges" --- linux-5.19.0.orig/tools/testing/selftests/net/fib_tests.sh +++ linux-5.19.0/tools/testing/selftests/net/fib_tests.sh @@ -1711,13 +1711,21 @@ $IP addr add dev dummy1 172.16.104.1/24 $IP addr add dev dummy1 172.16.104.11/24 + $IP addr add dev dummy1 172.16.104.12/24 + $IP addr add dev dummy1 172.16.104.13/24 $IP addr add dev dummy2 172.16.104.1/24 $IP addr add dev dummy2 172.16.104.11/24 + $IP addr add dev dummy2 172.16.104.12/24 $IP route add 172.16.105.0/24 via 172.16.104.2 src 172.16.104.11 + $IP route add 172.16.106.0/24 dev lo src 172.16.104.12 + $IP route add table 0 172.16.107.0/24 via 172.16.104.2 src 172.16.104.13 $IP route add vrf red 172.16.105.0/24 via 172.16.104.2 src 172.16.104.11 + $IP route add vrf red 172.16.106.0/24 dev lo src 172.16.104.12 set +e # removing address from device in vrf should only remove route from vrf table + echo " Regular FIB info" + $IP addr del dev dummy2 172.16.104.11/24 $IP ro ls vrf red | grep -q 172.16.105.0/24 log_test $? 1 "Route removed from VRF when source address deleted" @@ -1735,6 +1743,35 @@ $IP ro ls vrf red | grep -q 172.16.105.0/24 log_test $? 0 "Route in VRF is not removed by address delete" + # removing address from device in vrf should only remove route from vrf + # table even when the associated fib info only differs in table ID + echo " Identical FIB info with different table ID" + + $IP addr del dev dummy2 172.16.104.12/24 + $IP ro ls vrf red | grep -q 172.16.106.0/24 + log_test $? 1 "Route removed from VRF when source address deleted" + + $IP ro ls | grep -q 172.16.106.0/24 + log_test $? 0 "Route in default VRF not removed" + + $IP addr add dev dummy2 172.16.104.12/24 + $IP route add vrf red 172.16.106.0/24 dev lo src 172.16.104.12 + + $IP addr del dev dummy1 172.16.104.12/24 + $IP ro ls | grep -q 172.16.106.0/24 + log_test $? 1 "Route removed in default VRF when source address deleted" + + $IP ro ls vrf red | grep -q 172.16.106.0/24 + log_test $? 0 "Route in VRF is not removed by address delete" + + # removing address from device in default vrf should remove route from + # the default vrf even when route was inserted with a table ID of 0. + echo " Table ID 0" + + $IP addr del dev dummy1 172.16.104.13/24 + $IP ro ls | grep -q 172.16.107.0/24 + log_test $? 1 "Route removed in default VRF when source address deleted" + $IP li del dummy1 $IP li del dummy2 cleanup --- linux-5.19.0.orig/tools/testing/selftests/net/forwarding/custom_multipath_hash.sh +++ linux-5.19.0/tools/testing/selftests/net/forwarding/custom_multipath_hash.sh @@ -181,37 +181,43 @@ send_src_ipv4() { - $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_src_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } send_src_ipv6() { - $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:4::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:4::2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:4::2-2001:db8:4::fd" \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B "2001:db8:4::2-2001:db8:4::fd" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } @@ -226,13 +232,15 @@ send_src_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:4::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:4::2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:4::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:4::2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } --- linux-5.19.0.orig/tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh +++ linux-5.19.0/tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh @@ -276,37 +276,43 @@ send_src_ipv4() { - $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_src_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } send_src_ipv6() { - $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } @@ -321,13 +327,15 @@ send_src_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:2::2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:2::2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } --- linux-5.19.0.orig/tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh +++ linux-5.19.0/tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh @@ -278,37 +278,43 @@ send_src_ipv4() { - $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_src_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp4() { - $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \ + ip vrf exec v$h1 $MZ $h1 -q -p 64 \ + -A 198.51.100.2 -B 203.0.113.2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } send_src_ipv6() { - $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } send_dst_ipv6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \ -d 1msec -c 50 -t udp "sp=20000,dp=30000" } @@ -323,13 +329,15 @@ send_src_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:2::2 \ -d 1msec -t udp "sp=0-32768,dp=30000" } send_dst_udp6() { - $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \ + ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \ + -A 2001:db8:1::2 -B 2001:db8:2::2 \ -d 1msec -t udp "sp=20000,dp=0-32768" } --- linux-5.19.0.orig/tools/testing/selftests/net/forwarding/sch_red.sh +++ linux-5.19.0/tools/testing/selftests/net/forwarding/sch_red.sh @@ -1,3 +1,4 @@ +#!/bin/bash # SPDX-License-Identifier: GPL-2.0 # This test sends one stream of traffic from H1 through a TBF shaper, to a RED --- linux-5.19.0.orig/tools/testing/selftests/net/ioam6.sh +++ linux-5.19.0/tools/testing/selftests/net/ioam6.sh @@ -117,6 +117,8 @@ # | Schema Data | | # +-----------------------------------------------------------+ +# Kselftest framework requirement - SKIP code is 4. +ksft_skip=4 ################################################################################ # # @@ -211,7 +213,7 @@ echo "SKIP: kernel version probably too old, missing ioam support" ip link del veth0 2>/dev/null || true ip netns del ioam-tmp-node || true - exit 1 + exit $ksft_skip fi ip -netns ioam-tmp-node route add db02::/64 encap ioam6 mode inline \ @@ -227,7 +229,7 @@ "without CONFIG_IPV6_IOAM6_LWTUNNEL?" ip link del veth0 2>/dev/null || true ip netns del ioam-tmp-node || true - exit 1 + exit $ksft_skip fi ip link del veth0 2>/dev/null || true @@ -752,20 +754,20 @@ if [ "$(id -u)" -ne 0 ] then echo "SKIP: Need root privileges" - exit 1 + exit $ksft_skip fi if [ ! -x "$(command -v ip)" ] then echo "SKIP: Could not run test without ip tool" - exit 1 + exit $ksft_skip fi ip ioam &>/dev/null if [ $? = 1 ] then echo "SKIP: iproute2 too old, missing ioam command" - exit 1 + exit $ksft_skip fi check_kernel_compatibility --- linux-5.19.0.orig/tools/testing/selftests/net/mptcp/mptcp_connect.c +++ linux-5.19.0/tools/testing/selftests/net/mptcp/mptcp_connect.c @@ -553,6 +553,18 @@ fcntl(fd, F_SETFL, flags & ~O_NONBLOCK); } +static void shut_wr(int fd) +{ + /* Close our write side, ev. give some time + * for address notification and/or checking + * the current status + */ + if (cfg_wait) + usleep(cfg_wait); + + shutdown(fd, SHUT_WR); +} + static int copyfd_io_poll(int infd, int peerfd, int outfd, bool *in_closed_after_out) { struct pollfd fds = { @@ -630,14 +642,7 @@ /* ... and peer also closed already */ break; - /* ... but we still receive. - * Close our write side, ev. give some time - * for address notification and/or checking - * the current status - */ - if (cfg_wait) - usleep(cfg_wait); - shutdown(peerfd, SHUT_WR); + shut_wr(peerfd); } else { if (errno == EINTR) continue; @@ -767,7 +772,7 @@ if (err) return err; - shutdown(peerfd, SHUT_WR); + shut_wr(peerfd); err = do_recvfile(peerfd, outfd); *in_closed_after_out = true; @@ -791,6 +796,9 @@ err = do_sendfile(infd, peerfd, size); if (err) return err; + + shut_wr(peerfd); + err = do_recvfile(peerfd, outfd); *in_closed_after_out = true; } --- linux-5.19.0.orig/tools/testing/selftests/net/mptcp/mptcp_join.sh +++ linux-5.19.0/tools/testing/selftests/net/mptcp/mptcp_join.sh @@ -2042,7 +2042,7 @@ pm_nl_set_limits $ns2 1 3 pm_nl_add_endpoint $ns2 10.0.3.2 flags subflow pm_nl_add_endpoint $ns2 10.0.4.2 flags subflow - run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 slow + run_tests $ns1 $ns2 10.0.1.1 0 -1 -2 speed_10 chk_join_nr 3 3 3 chk_add_nr 1 1 chk_rm_nr 2 2 @@ -2055,7 +2055,7 @@ pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.4.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 chk_join_nr 3 3 3 chk_add_nr 3 3 chk_rm_nr 3 3 invert @@ -2068,7 +2068,7 @@ pm_nl_add_endpoint $ns1 10.0.3.1 flags signal pm_nl_add_endpoint $ns1 10.0.14.1 flags signal pm_nl_set_limits $ns2 3 3 - run_tests $ns1 $ns2 10.0.1.1 0 -3 0 slow + run_tests $ns1 $ns2 10.0.1.1 0 -3 0 speed_10 chk_join_nr 1 1 1 chk_add_nr 3 3 chk_rm_nr 3 1 invert --- linux-5.19.0.orig/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh +++ linux-5.19.0/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh @@ -35,8 +35,9 @@ ns1="ns1-$rndh" ns2="ns2-$rndh" + ns_sbox="ns_sbox-$rndh" - for netns in "$ns1" "$ns2";do + for netns in "$ns1" "$ns2" "$ns_sbox";do ip netns add $netns || exit $ksft_skip ip -net $netns link set lo up ip netns exec $netns sysctl -q net.mptcp.enabled=1 @@ -73,7 +74,7 @@ cleanup() { - for netns in "$ns1" "$ns2"; do + for netns in "$ns1" "$ns2" "$ns_sbox"; do ip netns del $netns done rm -f "$cin" "$cout" @@ -243,7 +244,7 @@ { local lret=0 - ./mptcp_sockopt + ip netns exec "$ns_sbox" ./mptcp_sockopt lret=$? if [ $lret -ne 0 ]; then @@ -252,7 +253,7 @@ return fi - ./mptcp_sockopt -6 + ip netns exec "$ns_sbox" ./mptcp_sockopt -6 lret=$? if [ $lret -ne 0 ]; then --- linux-5.19.0.orig/tools/testing/selftests/net/mptcp/simult_flows.sh +++ linux-5.19.0/tools/testing/selftests/net/mptcp/simult_flows.sh @@ -235,9 +235,10 @@ tc -n $ns2 qdisc add dev ns2eth1 root netem rate ${rate1}mbit $delay1 tc -n $ns2 qdisc add dev ns2eth2 root netem rate ${rate2}mbit $delay2 - # time is measured in ms, account for transfer size, affegated link speed + # time is measured in ms, account for transfer size, aggregated link speed # and header overhead (10%) - local time=$((size * 8 * 1000 * 10 / (( $rate1 + $rate2) * 1024 *1024 * 9) )) + # ms byte -> bit 10% mbit -> kbit -> bit 10% + local time=$((1000 * size * 8 * 10 / ((rate1 + rate2) * 1000 * 1000 * 9) )) # mptcp_connect will do some sleeps to allow the mp_join handshake # completion (see mptcp_connect): 200ms on each side, add some slack --- linux-5.19.0.orig/tools/testing/selftests/net/nat6to4.c +++ linux-5.19.0/tools/testing/selftests/net/nat6to4.c @@ -0,0 +1,285 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * This code is taken from the Android Open Source Project and the author + * (Maciej Żenczykowski) has gave permission to relicense it under the + * GPLv2. Therefore 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 + + * The original headers, including the original license headers, are + * included below for completeness. + * + * Copyright (C) 2019 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +#include + +#include +#include + +#define IP_DF 0x4000 // Flag: "Don't Fragment" + +SEC("schedcls/ingress6/nat_6") +int sched_cls_ingress6_nat_6_prog(struct __sk_buff *skb) +{ + const int l2_header_size = sizeof(struct ethhdr); + void *data = (void *)(long)skb->data; + const void *data_end = (void *)(long)skb->data_end; + const struct ethhdr * const eth = data; // used iff is_ethernet + const struct ipv6hdr * const ip6 = (void *)(eth + 1); + + // Require ethernet dst mac address to be our unicast address. + if (skb->pkt_type != PACKET_HOST) + return TC_ACT_OK; + + // Must be meta-ethernet IPv6 frame + if (skb->protocol != bpf_htons(ETH_P_IPV6)) + return TC_ACT_OK; + + // Must have (ethernet and) ipv6 header + if (data + l2_header_size + sizeof(*ip6) > data_end) + return TC_ACT_OK; + + // Ethertype - if present - must be IPv6 + if (eth->h_proto != bpf_htons(ETH_P_IPV6)) + return TC_ACT_OK; + + // IP version must be 6 + if (ip6->version != 6) + return TC_ACT_OK; + // Maximum IPv6 payload length that can be translated to IPv4 + if (bpf_ntohs(ip6->payload_len) > 0xFFFF - sizeof(struct iphdr)) + return TC_ACT_OK; + switch (ip6->nexthdr) { + case IPPROTO_TCP: // For TCP & UDP the checksum neutrality of the chosen IPv6 + case IPPROTO_UDP: // address means there is no need to update their checksums. + case IPPROTO_GRE: // We do not need to bother looking at GRE/ESP headers, + case IPPROTO_ESP: // since there is never a checksum to update. + break; + default: // do not know how to handle anything else + return TC_ACT_OK; + } + + struct ethhdr eth2; // used iff is_ethernet + + eth2 = *eth; // Copy over the ethernet header (src/dst mac) + eth2.h_proto = bpf_htons(ETH_P_IP); // But replace the ethertype + + struct iphdr ip = { + .version = 4, // u4 + .ihl = sizeof(struct iphdr) / sizeof(__u32), // u4 + .tos = (ip6->priority << 4) + (ip6->flow_lbl[0] >> 4), // u8 + .tot_len = bpf_htons(bpf_ntohs(ip6->payload_len) + sizeof(struct iphdr)), // u16 + .id = 0, // u16 + .frag_off = bpf_htons(IP_DF), // u16 + .ttl = ip6->hop_limit, // u8 + .protocol = ip6->nexthdr, // u8 + .check = 0, // u16 + .saddr = 0x0201a8c0, // u32 + .daddr = 0x0101a8c0, // u32 + }; + + // Calculate the IPv4 one's complement checksum of the IPv4 header. + __wsum sum4 = 0; + + for (int i = 0; i < sizeof(ip) / sizeof(__u16); ++i) + sum4 += ((__u16 *)&ip)[i]; + + // Note that sum4 is guaranteed to be non-zero by virtue of ip.version == 4 + sum4 = (sum4 & 0xFFFF) + (sum4 >> 16); // collapse u32 into range 1 .. 0x1FFFE + sum4 = (sum4 & 0xFFFF) + (sum4 >> 16); // collapse any potential carry into u16 + ip.check = (__u16)~sum4; // sum4 cannot be zero, so this is never 0xFFFF + + // Calculate the *negative* IPv6 16-bit one's complement checksum of the IPv6 header. + __wsum sum6 = 0; + // We'll end up with a non-zero sum due to ip6->version == 6 (which has '0' bits) + for (int i = 0; i < sizeof(*ip6) / sizeof(__u16); ++i) + sum6 += ~((__u16 *)ip6)[i]; // note the bitwise negation + + // Note that there is no L4 checksum update: we are relying on the checksum neutrality + // of the ipv6 address chosen by netd's ClatdController. + + // Packet mutations begin - point of no return, but if this first modification fails + // the packet is probably still pristine, so let clatd handle it. + if (bpf_skb_change_proto(skb, bpf_htons(ETH_P_IP), 0)) + return TC_ACT_OK; + bpf_csum_update(skb, sum6); + + data = (void *)(long)skb->data; + data_end = (void *)(long)skb->data_end; + if (data + l2_header_size + sizeof(struct iphdr) > data_end) + return TC_ACT_SHOT; + + struct ethhdr *new_eth = data; + + // Copy over the updated ethernet header + *new_eth = eth2; + + // Copy over the new ipv4 header. + *(struct iphdr *)(new_eth + 1) = ip; + return bpf_redirect(skb->ifindex, BPF_F_INGRESS); +} + +SEC("schedcls/egress4/snat4") +int sched_cls_egress4_snat4_prog(struct __sk_buff *skb) +{ + const int l2_header_size = sizeof(struct ethhdr); + void *data = (void *)(long)skb->data; + const void *data_end = (void *)(long)skb->data_end; + const struct ethhdr *const eth = data; // used iff is_ethernet + const struct iphdr *const ip4 = (void *)(eth + 1); + + // Must be meta-ethernet IPv4 frame + if (skb->protocol != bpf_htons(ETH_P_IP)) + return TC_ACT_OK; + + // Must have ipv4 header + if (data + l2_header_size + sizeof(struct ipv6hdr) > data_end) + return TC_ACT_OK; + + // Ethertype - if present - must be IPv4 + if (eth->h_proto != bpf_htons(ETH_P_IP)) + return TC_ACT_OK; + + // IP version must be 4 + if (ip4->version != 4) + return TC_ACT_OK; + + // We cannot handle IP options, just standard 20 byte == 5 dword minimal IPv4 header + if (ip4->ihl != 5) + return TC_ACT_OK; + + // Maximum IPv6 payload length that can be translated to IPv4 + if (bpf_htons(ip4->tot_len) > 0xFFFF - sizeof(struct ipv6hdr)) + return TC_ACT_OK; + + // Calculate the IPv4 one's complement checksum of the IPv4 header. + __wsum sum4 = 0; + + for (int i = 0; i < sizeof(*ip4) / sizeof(__u16); ++i) + sum4 += ((__u16 *)ip4)[i]; + + // Note that sum4 is guaranteed to be non-zero by virtue of ip4->version == 4 + sum4 = (sum4 & 0xFFFF) + (sum4 >> 16); // collapse u32 into range 1 .. 0x1FFFE + sum4 = (sum4 & 0xFFFF) + (sum4 >> 16); // collapse any potential carry into u16 + // for a correct checksum we should get *a* zero, but sum4 must be positive, ie 0xFFFF + if (sum4 != 0xFFFF) + return TC_ACT_OK; + + // Minimum IPv4 total length is the size of the header + if (bpf_ntohs(ip4->tot_len) < sizeof(*ip4)) + return TC_ACT_OK; + + // We are incapable of dealing with IPv4 fragments + if (ip4->frag_off & ~bpf_htons(IP_DF)) + return TC_ACT_OK; + + switch (ip4->protocol) { + case IPPROTO_TCP: // For TCP & UDP the checksum neutrality of the chosen IPv6 + case IPPROTO_GRE: // address means there is no need to update their checksums. + case IPPROTO_ESP: // We do not need to bother looking at GRE/ESP headers, + break; // since there is never a checksum to update. + + case IPPROTO_UDP: // See above comment, but must also have UDP header... + if (data + sizeof(*ip4) + sizeof(struct udphdr) > data_end) + return TC_ACT_OK; + const struct udphdr *uh = (const struct udphdr *)(ip4 + 1); + // If IPv4/UDP checksum is 0 then fallback to clatd so it can calculate the + // checksum. Otherwise the network or more likely the NAT64 gateway might + // drop the packet because in most cases IPv6/UDP packets with a zero checksum + // are invalid. See RFC 6935. TODO: calculate checksum via bpf_csum_diff() + if (!uh->check) + return TC_ACT_OK; + break; + + default: // do not know how to handle anything else + return TC_ACT_OK; + } + struct ethhdr eth2; // used iff is_ethernet + + eth2 = *eth; // Copy over the ethernet header (src/dst mac) + eth2.h_proto = bpf_htons(ETH_P_IPV6); // But replace the ethertype + + struct ipv6hdr ip6 = { + .version = 6, // __u8:4 + .priority = ip4->tos >> 4, // __u8:4 + .flow_lbl = {(ip4->tos & 0xF) << 4, 0, 0}, // __u8[3] + .payload_len = bpf_htons(bpf_ntohs(ip4->tot_len) - 20), // __be16 + .nexthdr = ip4->protocol, // __u8 + .hop_limit = ip4->ttl, // __u8 + }; + ip6.saddr.in6_u.u6_addr32[0] = bpf_htonl(0x20010db8); + ip6.saddr.in6_u.u6_addr32[1] = 0; + ip6.saddr.in6_u.u6_addr32[2] = 0; + ip6.saddr.in6_u.u6_addr32[3] = bpf_htonl(1); + ip6.daddr.in6_u.u6_addr32[0] = bpf_htonl(0x20010db8); + ip6.daddr.in6_u.u6_addr32[1] = 0; + ip6.daddr.in6_u.u6_addr32[2] = 0; + ip6.daddr.in6_u.u6_addr32[3] = bpf_htonl(2); + + // Calculate the IPv6 16-bit one's complement checksum of the IPv6 header. + __wsum sum6 = 0; + // We'll end up with a non-zero sum due to ip6.version == 6 + for (int i = 0; i < sizeof(ip6) / sizeof(__u16); ++i) + sum6 += ((__u16 *)&ip6)[i]; + + // Packet mutations begin - point of no return, but if this first modification fails + // the packet is probably still pristine, so let clatd handle it. + if (bpf_skb_change_proto(skb, bpf_htons(ETH_P_IPV6), 0)) + return TC_ACT_OK; + + // This takes care of updating the skb->csum field for a CHECKSUM_COMPLETE packet. + // In such a case, skb->csum is a 16-bit one's complement sum of the entire payload, + // thus we need to subtract out the ipv4 header's sum, and add in the ipv6 header's sum. + // However, we've already verified the ipv4 checksum is correct and thus 0. + // Thus we only need to add the ipv6 header's sum. + // + // bpf_csum_update() always succeeds if the skb is CHECKSUM_COMPLETE and returns an error + // (-ENOTSUPP) if it isn't. So we just ignore the return code (see above for more details). + bpf_csum_update(skb, sum6); + + // bpf_skb_change_proto() invalidates all pointers - reload them. + data = (void *)(long)skb->data; + data_end = (void *)(long)skb->data_end; + + // I cannot think of any valid way for this error condition to trigger, however I do + // believe the explicit check is required to keep the in kernel ebpf verifier happy. + if (data + l2_header_size + sizeof(ip6) > data_end) + return TC_ACT_SHOT; + + struct ethhdr *new_eth = data; + + // Copy over the updated ethernet header + *new_eth = eth2; + // Copy over the new ipv4 header. + *(struct ipv6hdr *)(new_eth + 1) = ip6; + return TC_ACT_OK; +} + +char _license[] SEC("license") = ("GPL"); --- linux-5.19.0.orig/tools/testing/selftests/net/nettest.c +++ linux-5.19.0/tools/testing/selftests/net/nettest.c @@ -127,6 +127,9 @@ /* ESP in UDP encap test */ int use_xfrm; + + /* use send() and connect() instead of sendto */ + int datagram_connect; }; static int server_mode; @@ -979,6 +982,11 @@ log_err_errno("write failed sending msg to peer"); return 1; } + } else if (args->datagram_connect) { + if (send(sd, msg, msglen, 0) < 0) { + log_err_errno("send failed sending msg to peer"); + return 1; + } } else if (args->ifindex && args->use_cmsg) { if (send_msg_cmsg(sd, addr, alen, args->ifindex, args->version)) return 1; @@ -1659,7 +1667,7 @@ if (args->has_local_ip && bind_socket(sd, args)) goto err; - if (args->type != SOCK_STREAM) + if (args->type != SOCK_STREAM && !args->datagram_connect) goto out; if (args->password && tcp_md5sig(sd, addr, alen, args)) @@ -1854,7 +1862,7 @@ return client_status; } -#define GETOPT_STR "sr:l:c:p:t:g:P:DRn:M:X:m:d:I:BN:O:SCi6xL:0:1:2:3:Fbqf" +#define GETOPT_STR "sr:l:c:p:t:g:P:DRn:M:X:m:d:I:BN:O:SUCi6xL:0:1:2:3:Fbqf" #define OPT_FORCE_BIND_KEY_IFINDEX 1001 #define OPT_NO_BIND_KEY_IFINDEX 1002 @@ -1891,6 +1899,7 @@ " -I dev bind socket to given device name - server mode\n" " -S use setsockopt (IP_UNICAST_IF or IP_MULTICAST_IF)\n" " to set device binding\n" + " -U Use connect() and send() for datagram sockets\n" " -f bind socket with the IP[V6]_FREEBIND option\n" " -C use cmsg and IP_PKTINFO to specify device binding\n" "\n" @@ -2074,6 +2083,9 @@ case 'x': args.use_xfrm = 1; break; + case 'U': + args.datagram_connect = 1; + break; default: print_usage(argv[0]); return 1; --- linux-5.19.0.orig/tools/testing/selftests/net/pmtu.sh +++ linux-5.19.0/tools/testing/selftests/net/pmtu.sh @@ -686,10 +686,12 @@ } setup_nettest_xfrm() { - which nettest >/dev/null - if [ $? -ne 0 ]; then - echo "'nettest' command not found; skipping tests" - return 1 + if ! which nettest >/dev/null; then + PATH=$PWD:$PATH + if ! which nettest >/dev/null; then + echo "'nettest' command not found; skipping tests" + return 1 + fi fi [ ${1} -eq 6 ] && proto="-6" || proto="" --- linux-5.19.0.orig/tools/testing/selftests/net/reuseport_bpf.c +++ linux-5.19.0/tools/testing/selftests/net/reuseport_bpf.c @@ -328,7 +328,7 @@ if (bind(fd1, addr, sockaddr_size())) error(1, errno, "failed to bind recv socket 1"); - if (!bind(fd2, addr, sockaddr_size()) && errno != EADDRINUSE) + if (!bind(fd2, addr, sockaddr_size()) || errno != EADDRINUSE) error(1, errno, "bind socket 2 should fail with EADDRINUSE"); free(addr); --- linux-5.19.0.orig/tools/testing/selftests/net/rtnetlink.sh +++ linux-5.19.0/tools/testing/selftests/net/rtnetlink.sh @@ -782,7 +782,7 @@ tmpl proto esp src $srcip dst $dstip spi 9 \ mode transport reqid 42 check_err $? - ip x p add dir out src $dstip/24 dst $srcip/24 \ + ip x p add dir in src $dstip/24 dst $srcip/24 \ tmpl proto esp src $dstip dst $srcip spi 9 \ mode transport reqid 42 check_err $? --- linux-5.19.0.orig/tools/testing/selftests/net/settings +++ linux-5.19.0/tools/testing/selftests/net/settings @@ -1 +1 @@ -timeout=1500 +timeout=0 --- linux-5.19.0.orig/tools/testing/selftests/net/socket.c +++ linux-5.19.0/tools/testing/selftests/net/socket.c @@ -6,6 +6,7 @@ #include #include #include +#include #include "../kselftest.h" @@ -26,7 +27,10 @@ }; static struct socket_testcase tests[] = { - { AF_MAX, 0, 0, -EAFNOSUPPORT, 0 }, + /* libc might have a smaller value of AF_MAX than the kernel + * actually supports, so use INT_MAX instead. + */ + { INT_MAX, 0, 0, -EAFNOSUPPORT, 0 }, { AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 1 }, { AF_INET, SOCK_DGRAM, IPPROTO_TCP, -EPROTONOSUPPORT, 1 }, { AF_INET, SOCK_DGRAM, IPPROTO_UDP, 0, 1 }, --- linux-5.19.0.orig/tools/testing/selftests/net/tls.c +++ linux-5.19.0/tools/testing/selftests/net/tls.c @@ -354,64 +354,6 @@ EXPECT_EQ(recv(self->cfd, buf, st.st_size, MSG_WAITALL), st.st_size); } -static void chunked_sendfile(struct __test_metadata *_metadata, - struct _test_data_tls *self, - uint16_t chunk_size, - uint16_t extra_payload_size) -{ - char buf[TLS_PAYLOAD_MAX_LEN]; - uint16_t test_payload_size; - int size = 0; - int ret; - char filename[] = "/tmp/mytemp.XXXXXX"; - int fd = mkstemp(filename); - off_t offset = 0; - - unlink(filename); - ASSERT_GE(fd, 0); - EXPECT_GE(chunk_size, 1); - test_payload_size = chunk_size + extra_payload_size; - ASSERT_GE(TLS_PAYLOAD_MAX_LEN, test_payload_size); - memset(buf, 1, test_payload_size); - size = write(fd, buf, test_payload_size); - EXPECT_EQ(size, test_payload_size); - fsync(fd); - - while (size > 0) { - ret = sendfile(self->fd, fd, &offset, chunk_size); - EXPECT_GE(ret, 0); - size -= ret; - } - - EXPECT_EQ(recv(self->cfd, buf, test_payload_size, MSG_WAITALL), - test_payload_size); - - close(fd); -} - -TEST_F(tls, multi_chunk_sendfile) -{ - chunked_sendfile(_metadata, self, 4096, 4096); - chunked_sendfile(_metadata, self, 4096, 0); - chunked_sendfile(_metadata, self, 4096, 1); - chunked_sendfile(_metadata, self, 4096, 2048); - chunked_sendfile(_metadata, self, 8192, 2048); - chunked_sendfile(_metadata, self, 4096, 8192); - chunked_sendfile(_metadata, self, 8192, 4096); - chunked_sendfile(_metadata, self, 12288, 1024); - chunked_sendfile(_metadata, self, 12288, 2000); - chunked_sendfile(_metadata, self, 15360, 100); - chunked_sendfile(_metadata, self, 15360, 300); - chunked_sendfile(_metadata, self, 1, 4096); - chunked_sendfile(_metadata, self, 2048, 4096); - chunked_sendfile(_metadata, self, 2048, 8192); - chunked_sendfile(_metadata, self, 4096, 8192); - chunked_sendfile(_metadata, self, 1024, 12288); - chunked_sendfile(_metadata, self, 2000, 12288); - chunked_sendfile(_metadata, self, 100, 15360); - chunked_sendfile(_metadata, self, 300, 15360); -} - TEST_F(tls, recv_max) { unsigned int send_len = TLS_PAYLOAD_MAX_LEN; --- linux-5.19.0.orig/tools/testing/selftests/net/toeplitz.sh +++ linux-5.19.0/tools/testing/selftests/net/toeplitz.sh @@ -32,7 +32,7 @@ # This is determined by reading the RSS indirection table using ethtool. get_rss_cfg_num_rxqs() { echo $(ethtool -x "${DEV}" | - egrep [[:space:]]+[0-9]+:[[:space:]]+ | + grep -E [[:space:]]+[0-9]+:[[:space:]]+ | cut -d: -f2- | awk '{$1=$1};1' | tr ' ' '\n' | --- linux-5.19.0.orig/tools/testing/selftests/net/udpgro.sh +++ linux-5.19.0/tools/testing/selftests/net/udpgro.sh @@ -50,7 +50,7 @@ echo "failed" & # Hack: let bg programs complete the startup - sleep 0.1 + sleep 0.2 ./udpgso_bench_tx ${tx_args} ret=$? wait $(jobs -p) @@ -117,7 +117,7 @@ echo "failed" & # Hack: let bg programs complete the startup - sleep 0.1 + sleep 0.2 ./udpgso_bench_tx ${tx_args} -p 12345 sleep 0.1 # first UDP GSO socket should be closed at this point --- linux-5.19.0.orig/tools/testing/selftests/net/udpgro_bench.sh +++ linux-5.19.0/tools/testing/selftests/net/udpgro_bench.sh @@ -39,7 +39,7 @@ ip netns exec "${PEER_NS}" ./udpgso_bench_rx -t ${rx_args} -r & # Hack: let bg programs complete the startup - sleep 0.1 + sleep 0.2 ./udpgso_bench_tx ${tx_args} } --- linux-5.19.0.orig/tools/testing/selftests/net/udpgro_frglist.sh +++ linux-5.19.0/tools/testing/selftests/net/udpgro_frglist.sh @@ -38,13 +38,13 @@ ip -n "${PEER_NS}" link set veth1 xdp object ../bpf/xdp_dummy.o section xdp tc -n "${PEER_NS}" qdisc add dev veth1 clsact - tc -n "${PEER_NS}" filter add dev veth1 ingress prio 4 protocol ipv6 bpf object-file ../bpf/nat6to4.o section schedcls/ingress6/nat_6 direct-action - tc -n "${PEER_NS}" filter add dev veth1 egress prio 4 protocol ip bpf object-file ../bpf/nat6to4.o section schedcls/egress4/snat4 direct-action + tc -n "${PEER_NS}" filter add dev veth1 ingress prio 4 protocol ipv6 bpf object-file nat6to4.o section schedcls/ingress6/nat_6 direct-action + tc -n "${PEER_NS}" filter add dev veth1 egress prio 4 protocol ip bpf object-file nat6to4.o section schedcls/egress4/snat4 direct-action echo ${rx_args} ip netns exec "${PEER_NS}" ./udpgso_bench_rx ${rx_args} -r & # Hack: let bg programs complete the startup - sleep 0.1 + sleep 0.2 ./udpgso_bench_tx ${tx_args} } @@ -86,8 +86,8 @@ exit -1 fi -if [ ! -f bpf/nat6to4.o ]; then - echo "Missing nat6to4 helper. Build bpfnat6to4.o selftest first" +if [ ! -f nat6to4.o ]; then + echo "Missing nat6to4 helper. Build bpf nat6to4.o selftest first" exit -1 fi --- linux-5.19.0.orig/tools/testing/selftests/net/udpgso_bench.sh +++ linux-5.19.0/tools/testing/selftests/net/udpgso_bench.sh @@ -7,6 +7,7 @@ readonly YELLOW='\033[0;33m' readonly RED='\033[0;31m' readonly NC='\033[0m' # No Color +readonly TESTPORT=8000 readonly KSFT_PASS=0 readonly KSFT_FAIL=1 @@ -56,11 +57,26 @@ run_one() { local -r args=$@ + local nr_socks=0 + local i=0 + local -r timeout=10 + + ./udpgso_bench_rx -p "$TESTPORT" & + ./udpgso_bench_rx -p "$TESTPORT" -t & + + # Wait for the above test program to get ready to receive connections. + while [ "$i" -lt "$timeout" ]; do + nr_socks="$(ss -lnHi | grep -c "\*:${TESTPORT}")" + [ "$nr_socks" -eq 2 ] && break + i=$((i + 1)) + sleep 1 + done + if [ "$nr_socks" -ne 2 ]; then + echo "timed out while waiting for udpgso_bench_rx" + exit 1 + fi - ./udpgso_bench_rx & - ./udpgso_bench_rx -t & - - ./udpgso_bench_tx ${args} + ./udpgso_bench_tx -p "$TESTPORT" ${args} } run_in_netns() { --- linux-5.19.0.orig/tools/testing/selftests/netfilter/conntrack_icmp_related.sh +++ linux-5.19.0/tools/testing/selftests/netfilter/conntrack_icmp_related.sh @@ -35,6 +35,8 @@ for i in 1 2;do ip netns del nsrouter$i;done } +trap cleanup EXIT + ipv4() { echo -n 192.168.$1.2 } @@ -146,11 +148,17 @@ table inet filter { counter unknown { } counter related { } + counter redir4 { } + counter redir6 { } chain input { type filter hook input priority 0; policy accept; - meta l4proto { icmp, icmpv6 } ct state established,untracked accept + icmp type "redirect" ct state "related" counter name "redir4" accept + icmpv6 type "nd-redirect" ct state "related" counter name "redir6" accept + + meta l4proto { icmp, icmpv6 } ct state established,untracked accept meta l4proto { icmp, icmpv6 } ct state "related" counter name "related" accept + counter name "unknown" drop } } @@ -279,5 +287,29 @@ echo "ERROR: icmp error RELATED state test has failed" fi -cleanup +# add 'bad' route, expect icmp REDIRECT to be generated +ip netns exec nsclient1 ip route add 192.168.1.42 via 192.168.1.1 +ip netns exec nsclient1 ip route add dead:1::42 via dead:1::1 + +ip netns exec "nsclient1" ping -q -c 2 192.168.1.42 > /dev/null + +expect="packets 1 bytes 112" +check_counter nsclient1 "redir4" "$expect" +if [ $? -ne 0 ];then + ret=1 +fi + +ip netns exec "nsclient1" ping -c 1 dead:1::42 > /dev/null +expect="packets 1 bytes 192" +check_counter nsclient1 "redir6" "$expect" +if [ $? -ne 0 ];then + ret=1 +fi + +if [ $ret -eq 0 ];then + echo "PASS: icmp redirects had RELATED state" +else + echo "ERROR: icmp redirect RELATED state test has failed" +fi + exit $ret --- linux-5.19.0.orig/tools/testing/selftests/netfilter/nft_flowtable.sh +++ linux-5.19.0/tools/testing/selftests/netfilter/nft_flowtable.sh @@ -14,6 +14,11 @@ # nft_flowtable.sh -o8000 -l1500 -r2000 # +sfx=$(mktemp -u "XXXXXXXX") +ns1="ns1-$sfx" +ns2="ns2-$sfx" +nsr1="nsr1-$sfx" +nsr2="nsr2-$sfx" # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 @@ -36,18 +41,17 @@ checktool "nft --version" "run test without nft tool" checktool "ip -Version" "run test without ip tool" checktool "which nc" "run test without nc (netcat)" -checktool "ip netns add nsr1" "create net namespace" +checktool "ip netns add $nsr1" "create net namespace $nsr1" -ip netns add ns1 -ip netns add ns2 - -ip netns add nsr2 +ip netns add $ns1 +ip netns add $ns2 +ip netns add $nsr2 cleanup() { - for i in 1 2; do - ip netns del ns$i - ip netns del nsr$i - done + ip netns del $ns1 + ip netns del $ns2 + ip netns del $nsr1 + ip netns del $nsr2 rm -f "$ns1in" "$ns1out" rm -f "$ns2in" "$ns2out" @@ -59,22 +63,21 @@ sysctl -q net.netfilter.nf_log_all_netns=1 -ip link add veth0 netns nsr1 type veth peer name eth0 netns ns1 -ip link add veth1 netns nsr1 type veth peer name veth0 netns nsr2 +ip link add veth0 netns $nsr1 type veth peer name eth0 netns $ns1 +ip link add veth1 netns $nsr1 type veth peer name veth0 netns $nsr2 -ip link add veth1 netns nsr2 type veth peer name eth0 netns ns2 +ip link add veth1 netns $nsr2 type veth peer name eth0 netns $ns2 for dev in lo veth0 veth1; do - for i in 1 2; do - ip -net nsr$i link set $dev up - done + ip -net $nsr1 link set $dev up + ip -net $nsr2 link set $dev up done -ip -net nsr1 addr add 10.0.1.1/24 dev veth0 -ip -net nsr1 addr add dead:1::1/64 dev veth0 +ip -net $nsr1 addr add 10.0.1.1/24 dev veth0 +ip -net $nsr1 addr add dead:1::1/64 dev veth0 -ip -net nsr2 addr add 10.0.2.1/24 dev veth1 -ip -net nsr2 addr add dead:2::1/64 dev veth1 +ip -net $nsr2 addr add 10.0.2.1/24 dev veth1 +ip -net $nsr2 addr add dead:2::1/64 dev veth1 # set different MTUs so we need to push packets coming from ns1 (large MTU) # to ns2 (smaller MTU) to stack either to perform fragmentation (ip_no_pmtu_disc=1), @@ -106,49 +109,56 @@ esac done -if ! ip -net nsr1 link set veth0 mtu $omtu; then +if ! ip -net $nsr1 link set veth0 mtu $omtu; then exit 1 fi -ip -net ns1 link set eth0 mtu $omtu +ip -net $ns1 link set eth0 mtu $omtu -if ! ip -net nsr2 link set veth1 mtu $rmtu; then +if ! ip -net $nsr2 link set veth1 mtu $rmtu; then exit 1 fi -ip -net ns2 link set eth0 mtu $rmtu +ip -net $ns2 link set eth0 mtu $rmtu # transfer-net between nsr1 and nsr2. # these addresses are not used for connections. -ip -net nsr1 addr add 192.168.10.1/24 dev veth1 -ip -net nsr1 addr add fee1:2::1/64 dev veth1 +ip -net $nsr1 addr add 192.168.10.1/24 dev veth1 +ip -net $nsr1 addr add fee1:2::1/64 dev veth1 + +ip -net $nsr2 addr add 192.168.10.2/24 dev veth0 +ip -net $nsr2 addr add fee1:2::2/64 dev veth0 + +for i in 0 1; do + ip netns exec $nsr1 sysctl net.ipv4.conf.veth$i.forwarding=1 > /dev/null + ip netns exec $nsr2 sysctl net.ipv4.conf.veth$i.forwarding=1 > /dev/null +done -ip -net nsr2 addr add 192.168.10.2/24 dev veth0 -ip -net nsr2 addr add fee1:2::2/64 dev veth0 +for ns in $ns1 $ns2;do + ip -net $ns link set lo up + ip -net $ns link set eth0 up -for i in 1 2; do - ip netns exec nsr$i sysctl net.ipv4.conf.veth0.forwarding=1 > /dev/null - ip netns exec nsr$i sysctl net.ipv4.conf.veth1.forwarding=1 > /dev/null - - ip -net ns$i link set lo up - ip -net ns$i link set eth0 up - ip -net ns$i addr add 10.0.$i.99/24 dev eth0 - ip -net ns$i route add default via 10.0.$i.1 - ip -net ns$i addr add dead:$i::99/64 dev eth0 - ip -net ns$i route add default via dead:$i::1 - if ! ip netns exec ns$i sysctl net.ipv4.tcp_no_metrics_save=1 > /dev/null; then + if ! ip netns exec $ns sysctl net.ipv4.tcp_no_metrics_save=1 > /dev/null; then echo "ERROR: Check Originator/Responder values (problem during address addition)" exit 1 fi - # don't set ip DF bit for first two tests - ip netns exec ns$i sysctl net.ipv4.ip_no_pmtu_disc=1 > /dev/null + ip netns exec $ns sysctl net.ipv4.ip_no_pmtu_disc=1 > /dev/null done -ip -net nsr1 route add default via 192.168.10.2 -ip -net nsr2 route add default via 192.168.10.1 +ip -net $ns1 addr add 10.0.1.99/24 dev eth0 +ip -net $ns2 addr add 10.0.2.99/24 dev eth0 +ip -net $ns1 route add default via 10.0.1.1 +ip -net $ns2 route add default via 10.0.2.1 +ip -net $ns1 addr add dead:1::99/64 dev eth0 +ip -net $ns2 addr add dead:2::99/64 dev eth0 +ip -net $ns1 route add default via dead:1::1 +ip -net $ns2 route add default via dead:2::1 + +ip -net $nsr1 route add default via 192.168.10.2 +ip -net $nsr2 route add default via 192.168.10.1 -ip netns exec nsr1 nft -f - < /dev/null; then - echo "ERROR: ns1 cannot reach ns2" 1>&2 +if ! ip netns exec $ns1 ping -c 1 -q 10.0.2.99 > /dev/null; then + echo "ERROR: $ns1 cannot reach ns2" 1>&2 exit 1 fi -if ! ip netns exec ns2 ping -c 1 -q 10.0.1.99 > /dev/null; then - echo "ERROR: ns2 cannot reach ns1" 1>&2 +if ! ip netns exec $ns2 ping -c 1 -q 10.0.1.99 > /dev/null; then + echo "ERROR: $ns2 cannot reach $ns1" 1>&2 exit 1 fi if [ $ret -eq 0 ];then - echo "PASS: netns routing/connectivity: ns1 can reach ns2" + echo "PASS: netns routing/connectivity: $ns1 can reach $ns2" fi ns1in=$(mktemp) @@ -312,24 +322,24 @@ # First test: # No PMTU discovery, nsr1 is expected to fragment packets from ns1 to ns2 as needed. -if test_tcp_forwarding ns1 ns2; then +if test_tcp_forwarding $ns1 $ns2; then echo "PASS: flow offloaded for ns1/ns2" else echo "FAIL: flow offload for ns1/ns2:" 1>&2 - ip netns exec nsr1 nft list ruleset + ip netns exec $nsr1 nft list ruleset ret=1 fi # delete default route, i.e. ns2 won't be able to reach ns1 and # will depend on ns1 being masqueraded in nsr1. # expect ns1 has nsr1 address. -ip -net ns2 route del default via 10.0.2.1 -ip -net ns2 route del default via dead:2::1 -ip -net ns2 route add 192.168.10.1 via 10.0.2.1 +ip -net $ns2 route del default via 10.0.2.1 +ip -net $ns2 route del default via dead:2::1 +ip -net $ns2 route add 192.168.10.1 via 10.0.2.1 # Second test: # Same, but with NAT enabled. -ip netns exec nsr1 nft -f - <&2 - ip netns exec nsr1 nft list ruleset + ip netns exec $nsr1 nft list ruleset ret=1 fi # Third test: # Same as second test, but with PMTU discovery enabled. -handle=$(ip netns exec nsr1 nft -a list table inet filter | grep something-to-grep-for | cut -d \# -f 2) +handle=$(ip netns exec $nsr1 nft -a list table inet filter | grep something-to-grep-for | cut -d \# -f 2) -if ! ip netns exec nsr1 nft delete rule inet filter forward $handle; then +if ! ip netns exec $nsr1 nft delete rule inet filter forward $handle; then echo "FAIL: Could not delete large-packet accept rule" exit 1 fi -ip netns exec ns1 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null -ip netns exec ns2 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null +ip netns exec $ns1 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null +ip netns exec $ns2 sysctl net.ipv4.ip_no_pmtu_disc=0 > /dev/null -if test_tcp_forwarding_nat ns1 ns2; then +if test_tcp_forwarding_nat $ns1 $ns2; then echo "PASS: flow offloaded for ns1/ns2 with NAT and pmtu discovery" else echo "FAIL: flow offload for ns1/ns2 with NAT and pmtu discovery" 1>&2 - ip netns exec nsr1 nft list ruleset + ip netns exec $nsr1 nft list ruleset fi # Another test: # Add bridge interface br0 to Router1, with NAT enabled. -ip -net nsr1 link add name br0 type bridge -ip -net nsr1 addr flush dev veth0 -ip -net nsr1 link set up dev veth0 -ip -net nsr1 link set veth0 master br0 -ip -net nsr1 addr add 10.0.1.1/24 dev br0 -ip -net nsr1 addr add dead:1::1/64 dev br0 -ip -net nsr1 link set up dev br0 +ip -net $nsr1 link add name br0 type bridge +ip -net $nsr1 addr flush dev veth0 +ip -net $nsr1 link set up dev veth0 +ip -net $nsr1 link set veth0 master br0 +ip -net $nsr1 addr add 10.0.1.1/24 dev br0 +ip -net $nsr1 addr add dead:1::1/64 dev br0 +ip -net $nsr1 link set up dev br0 -ip netns exec nsr1 sysctl net.ipv4.conf.br0.forwarding=1 > /dev/null +ip netns exec $nsr1 sysctl net.ipv4.conf.br0.forwarding=1 > /dev/null # br0 with NAT enabled. -ip netns exec nsr1 nft -f - <&2 - ip netns exec nsr1 nft list ruleset + ip netns exec $nsr1 nft list ruleset ret=1 fi # Another test: # Add bridge interface br0 to Router1, with NAT and VLAN. -ip -net nsr1 link set veth0 nomaster -ip -net nsr1 link set down dev veth0 -ip -net nsr1 link add link veth0 name veth0.10 type vlan id 10 -ip -net nsr1 link set up dev veth0 -ip -net nsr1 link set up dev veth0.10 -ip -net nsr1 link set veth0.10 master br0 - -ip -net ns1 addr flush dev eth0 -ip -net ns1 link add link eth0 name eth0.10 type vlan id 10 -ip -net ns1 link set eth0 up -ip -net ns1 link set eth0.10 up -ip -net ns1 addr add 10.0.1.99/24 dev eth0.10 -ip -net ns1 route add default via 10.0.1.1 -ip -net ns1 addr add dead:1::99/64 dev eth0.10 +ip -net $nsr1 link set veth0 nomaster +ip -net $nsr1 link set down dev veth0 +ip -net $nsr1 link add link veth0 name veth0.10 type vlan id 10 +ip -net $nsr1 link set up dev veth0 +ip -net $nsr1 link set up dev veth0.10 +ip -net $nsr1 link set veth0.10 master br0 + +ip -net $ns1 addr flush dev eth0 +ip -net $ns1 link add link eth0 name eth0.10 type vlan id 10 +ip -net $ns1 link set eth0 up +ip -net $ns1 link set eth0.10 up +ip -net $ns1 addr add 10.0.1.99/24 dev eth0.10 +ip -net $ns1 route add default via 10.0.1.1 +ip -net $ns1 addr add dead:1::99/64 dev eth0.10 -if test_tcp_forwarding_nat ns1 ns2; then +if test_tcp_forwarding_nat $ns1 $ns2; then echo "PASS: flow offloaded for ns1/ns2 with bridge NAT and VLAN" else echo "FAIL: flow offload for ns1/ns2 with bridge NAT and VLAN" 1>&2 - ip netns exec nsr1 nft list ruleset + ip netns exec $nsr1 nft list ruleset ret=1 fi # restore test topology (remove bridge and VLAN) -ip -net nsr1 link set veth0 nomaster -ip -net nsr1 link set veth0 down -ip -net nsr1 link set veth0.10 down -ip -net nsr1 link delete veth0.10 type vlan -ip -net nsr1 link delete br0 type bridge -ip -net ns1 addr flush dev eth0.10 -ip -net ns1 link set eth0.10 down -ip -net ns1 link set eth0 down -ip -net ns1 link delete eth0.10 type vlan +ip -net $nsr1 link set veth0 nomaster +ip -net $nsr1 link set veth0 down +ip -net $nsr1 link set veth0.10 down +ip -net $nsr1 link delete veth0.10 type vlan +ip -net $nsr1 link delete br0 type bridge +ip -net $ns1 addr flush dev eth0.10 +ip -net $ns1 link set eth0.10 down +ip -net $ns1 link set eth0 down +ip -net $ns1 link delete eth0.10 type vlan # restore address in ns1 and nsr1 -ip -net ns1 link set eth0 up -ip -net ns1 addr add 10.0.1.99/24 dev eth0 -ip -net ns1 route add default via 10.0.1.1 -ip -net ns1 addr add dead:1::99/64 dev eth0 -ip -net ns1 route add default via dead:1::1 -ip -net nsr1 addr add 10.0.1.1/24 dev veth0 -ip -net nsr1 addr add dead:1::1/64 dev veth0 -ip -net nsr1 link set up dev veth0 +ip -net $ns1 link set eth0 up +ip -net $ns1 addr add 10.0.1.99/24 dev eth0 +ip -net $ns1 route add default via 10.0.1.1 +ip -net $ns1 addr add dead:1::99/64 dev eth0 +ip -net $ns1 route add default via dead:1::1 +ip -net $nsr1 addr add 10.0.1.1/24 dev veth0 +ip -net $nsr1 addr add dead:1::1/64 dev veth0 +ip -net $nsr1 link set up dev veth0 KEY_SHA="0x"$(ps -xaf | sha1sum | cut -d " " -f 1) KEY_AES="0x"$(ps -xaf | md5sum | cut -d " " -f 1) @@ -480,23 +490,23 @@ } -do_esp nsr1 192.168.10.1 192.168.10.2 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2 +do_esp $nsr1 192.168.10.1 192.168.10.2 10.0.1.0/24 10.0.2.0/24 $SPI1 $SPI2 -do_esp nsr2 192.168.10.2 192.168.10.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1 +do_esp $nsr2 192.168.10.2 192.168.10.1 10.0.2.0/24 10.0.1.0/24 $SPI2 $SPI1 -ip netns exec nsr1 nft delete table ip nat +ip netns exec $nsr1 nft delete table ip nat # restore default routes -ip -net ns2 route del 192.168.10.1 via 10.0.2.1 -ip -net ns2 route add default via 10.0.2.1 -ip -net ns2 route add default via dead:2::1 +ip -net $ns2 route del 192.168.10.1 via 10.0.2.1 +ip -net $ns2 route add default via 10.0.2.1 +ip -net $ns2 route add default via dead:2::1 -if test_tcp_forwarding ns1 ns2; then +if test_tcp_forwarding $ns1 $ns2; then echo "PASS: ipsec tunnel mode for ns1/ns2" else echo "FAIL: ipsec tunnel mode for ns1/ns2" - ip netns exec nsr1 nft list ruleset 1>&2 - ip netns exec nsr1 cat /proc/net/xfrm_stat 1>&2 + ip netns exec $nsr1 nft list ruleset 1>&2 + ip netns exec $nsr1 cat /proc/net/xfrm_stat 1>&2 fi exit $ret --- linux-5.19.0.orig/tools/testing/selftests/pidfd/pidfd_wait.c +++ linux-5.19.0/tools/testing/selftests/pidfd/pidfd_wait.c @@ -95,20 +95,28 @@ .flags = CLONE_PIDFD | CLONE_PARENT_SETTID, .exit_signal = SIGCHLD, }; + int pfd[2]; pid_t pid; siginfo_t info = { .si_signo = 0, }; + ASSERT_EQ(pipe(pfd), 0); pid = sys_clone3(&args); ASSERT_GE(pid, 0); if (pid == 0) { + char buf[2]; + + close(pfd[1]); kill(getpid(), SIGSTOP); + ASSERT_EQ(read(pfd[0], buf, 1), 1); + close(pfd[0]); kill(getpid(), SIGSTOP); exit(EXIT_SUCCESS); } + close(pfd[0]); ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WSTOPPED, NULL), 0); ASSERT_EQ(info.si_signo, SIGCHLD); ASSERT_EQ(info.si_code, CLD_STOPPED); @@ -117,6 +125,8 @@ ASSERT_EQ(sys_pidfd_send_signal(pidfd, SIGCONT, NULL, 0), 0); ASSERT_EQ(sys_waitid(P_PIDFD, pidfd, &info, WCONTINUED, NULL), 0); + ASSERT_EQ(write(pfd[1], "C", 1), 1); + close(pfd[1]); ASSERT_EQ(info.si_signo, SIGCHLD); ASSERT_EQ(info.si_code, CLD_CONTINUED); ASSERT_EQ(info.si_pid, parent_tid); --- linux-5.19.0.orig/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c +++ linux-5.19.0/tools/testing/selftests/powerpc/dscr/dscr_sysfs_test.c @@ -24,6 +24,7 @@ rc = read(fd, buf, sizeof(buf)); if (rc == -1) { perror("read() failed"); + close(fd); return 1; } close(fd); @@ -65,8 +66,10 @@ if (access(file, F_OK)) continue; - if (check_cpu_dscr_default(file, val)) + if (check_cpu_dscr_default(file, val)) { + closedir(sysfs); return 1; + } } closedir(sysfs); return 0; --- linux-5.19.0.orig/tools/testing/selftests/powerpc/math/mma.S +++ linux-5.19.0/tools/testing/selftests/powerpc/math/mma.S @@ -20,6 +20,9 @@ /* xvi16ger2s */ .long 0xec042958 + /* Deprime the accumulator - xxmfacc 0 */ + .long 0x7c000162 + /* Store result in image passed in r5 */ stxvw4x 0,0,5 addi 5,5,16 --- linux-5.19.0.orig/tools/testing/selftests/powerpc/papr_attributes/attr_test.c +++ linux-5.19.0/tools/testing/selftests/powerpc/papr_attributes/attr_test.c @@ -7,6 +7,7 @@ * Copyright 2022, Pratik Rajesh Sampat, IBM Corp. */ +#include #include #include #include @@ -32,7 +33,7 @@ NUM_VAL }; -int value_type(int id) +static int value_type(int id) { int val_type; @@ -54,15 +55,21 @@ return val_type; } -int verify_energy_info(void) +static int verify_energy_info(void) { const char *path = "/sys/firmware/papr/energy_scale_info"; struct dirent *entry; struct stat s; DIR *dirp; - if (stat(path, &s) || !S_ISDIR(s.st_mode)) - return -1; + errno = 0; + if (stat(path, &s)) { + SKIP_IF(errno == ENOENT); + FAIL_IF(errno); + } + + FAIL_IF(!S_ISDIR(s.st_mode)); + dirp = opendir(path); while ((entry = readdir(dirp)) != NULL) { @@ -76,25 +83,24 @@ id = atoi(entry->d_name); attr_type = value_type(id); - if (attr_type == INVALID) - return -1; + FAIL_IF(attr_type == INVALID); /* Check if the files exist and have data in them */ sprintf(file_name, "%s/%d/desc", path, id); f = fopen(file_name, "r"); - if (!f || fgetc(f) == EOF) - return -1; + FAIL_IF(!f); + FAIL_IF(fgetc(f) == EOF); sprintf(file_name, "%s/%d/value", path, id); f = fopen(file_name, "r"); - if (!f || fgetc(f) == EOF) - return -1; + FAIL_IF(!f); + FAIL_IF(fgetc(f) == EOF); if (attr_type == STR_VAL) { sprintf(file_name, "%s/%d/value_desc", path, id); f = fopen(file_name, "r"); - if (!f || fgetc(f) == EOF) - return -1; + FAIL_IF(!f); + FAIL_IF(fgetc(f) == EOF); } } --- linux-5.19.0.orig/tools/testing/selftests/powerpc/pmu/ebb/cycles_with_mmcr2_test.c +++ linux-5.19.0/tools/testing/selftests/powerpc/pmu/ebb/cycles_with_mmcr2_test.c @@ -50,6 +50,7 @@ expected[1] = MMCR2_EXPECTED_2; i = 0; bad_mmcr2 = false; + actual = 0; /* Make sure we loop until we take at least one EBB */ while ((ebb_state.stats.ebb_count < 20 && !bad_mmcr2) || --- linux-5.19.0.orig/tools/testing/selftests/powerpc/ptrace/Makefile +++ linux-5.19.0/tools/testing/selftests/powerpc/ptrace/Makefile @@ -7,7 +7,7 @@ top_srcdir = ../../../../.. include ../../lib.mk -CFLAGS += -m64 -I../../../../../usr/include -I../tm -mhtm -fno-pie +CFLAGS += -m64 -I../../../../../usr/include -I../tm -mhtm -fno-pie -Wno-error=deprecated $(OUTPUT)/ptrace-pkey $(OUTPUT)/core-pkey: child.h $(OUTPUT)/ptrace-pkey $(OUTPUT)/core-pkey: LDLIBS += -pthread --- linux-5.19.0.orig/tools/testing/selftests/proc/proc-uptime-002.c +++ linux-5.19.0/tools/testing/selftests/proc/proc-uptime-002.c @@ -17,6 +17,7 @@ // while shifting across CPUs. #undef NDEBUG #include +#include #include #include #include @@ -54,7 +55,7 @@ len += sizeof(unsigned long); free(m); m = malloc(len); - } while (sys_sched_getaffinity(0, len, m) == -EINVAL); + } while (sys_sched_getaffinity(0, len, m) == -1 && errno == EINVAL); fd = open("/proc/uptime", O_RDONLY); assert(fd >= 0); --- linux-5.19.0.orig/tools/testing/selftests/rcutorture/bin/kvm.sh +++ linux-5.19.0/tools/testing/selftests/rcutorture/bin/kvm.sh @@ -164,7 +164,7 @@ shift ;; --gdb) - TORTURE_KCONFIG_GDB_ARG="CONFIG_DEBUG_INFO=y"; export TORTURE_KCONFIG_GDB_ARG + TORTURE_KCONFIG_GDB_ARG="CONFIG_DEBUG_INFO_NONE=n CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y"; export TORTURE_KCONFIG_GDB_ARG TORTURE_BOOT_GDB_ARG="nokaslr"; export TORTURE_BOOT_GDB_ARG TORTURE_QEMU_GDB_ARG="-s -S"; export TORTURE_QEMU_GDB_ARG ;; @@ -180,7 +180,7 @@ shift ;; --kasan) - TORTURE_KCONFIG_KASAN_ARG="CONFIG_DEBUG_INFO=y CONFIG_KASAN=y"; export TORTURE_KCONFIG_KASAN_ARG + TORTURE_KCONFIG_KASAN_ARG="CONFIG_DEBUG_INFO_NONE=n CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_KASAN=y"; export TORTURE_KCONFIG_KASAN_ARG if test -n "$torture_qemu_mem_default" then TORTURE_QEMU_MEM=2G @@ -192,7 +192,7 @@ shift ;; --kcsan) - TORTURE_KCONFIG_KCSAN_ARG="CONFIG_DEBUG_INFO=y CONFIG_KCSAN=y CONFIG_KCSAN_STRICT=y CONFIG_KCSAN_REPORT_ONCE_IN_MS=100000 CONFIG_KCSAN_VERBOSE=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y"; export TORTURE_KCONFIG_KCSAN_ARG + TORTURE_KCONFIG_KCSAN_ARG="CONFIG_DEBUG_INFO_NONE=n CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y CONFIG_KCSAN=y CONFIG_KCSAN_STRICT=y CONFIG_KCSAN_REPORT_ONCE_IN_MS=100000 CONFIG_KCSAN_VERBOSE=y CONFIG_DEBUG_LOCK_ALLOC=y CONFIG_PROVE_LOCKING=y"; export TORTURE_KCONFIG_KCSAN_ARG ;; --kmake-arg|--kmake-args) checkarg --kmake-arg "(kernel make arguments)" $# "$2" '.*' '^error$' --- linux-5.19.0.orig/tools/testing/selftests/seccomp/seccomp_bpf.c +++ linux-5.19.0/tools/testing/selftests/seccomp/seccomp_bpf.c @@ -809,7 +809,7 @@ .len = (unsigned short)ARRAY_SIZE(filter_thread), .filter = filter_thread, }; - int kill = kill_how == KILL_PROCESS ? SECCOMP_RET_KILL_PROCESS : 0xAAAAAAAAA; + int kill = kill_how == KILL_PROCESS ? SECCOMP_RET_KILL_PROCESS : 0xAAAAAAAA; struct sock_filter filter_process[] = { BPF_STMT(BPF_LD|BPF_W|BPF_ABS, offsetof(struct seccomp_data, nr)), @@ -4029,18 +4029,17 @@ /* There may be arbitrary already-open fds at test start. */ memfd = memfd_create("test", 0); ASSERT_GE(memfd, 0); - nextfd = memfd + 1; ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); ASSERT_EQ(0, ret) { TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); } - /* fd: 4 */ /* Check that the basic notification machinery works */ listener = user_notif_syscall(__NR_getppid, SECCOMP_FILTER_FLAG_NEW_LISTENER); - ASSERT_EQ(listener, nextfd++); + ASSERT_GE(listener, 0); + nextfd = listener + 1; pid = fork(); ASSERT_GE(pid, 0); --- linux-5.19.0.orig/tools/testing/selftests/seccomp/settings +++ linux-5.19.0/tools/testing/selftests/seccomp/settings @@ -1 +1 @@ -timeout=120 +timeout=300 --- linux-5.19.0.orig/tools/testing/selftests/tdx/Makefile +++ linux-5.19.0/tools/testing/selftests/tdx/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0 + +CFLAGS += -O3 -Wl,-no-as-needed -Wall -static + +TEST_GEN_PROGS := tdx_guest_test + +include ../lib.mk --- linux-5.19.0.orig/tools/testing/selftests/tdx/config +++ linux-5.19.0/tools/testing/selftests/tdx/config @@ -0,0 +1 @@ +CONFIG_TDX_GUEST_DRIVER=y --- linux-5.19.0.orig/tools/testing/selftests/tdx/tdx_guest_test.c +++ linux-5.19.0/tools/testing/selftests/tdx/tdx_guest_test.c @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Test TDX guest features + * + * Copyright (C) 2022 Intel Corporation. + * + * Author: Kuppuswamy Sathyanarayanan + */ + +#include + +#include +#include + +#include "../kselftest_harness.h" +#include "../../../../include/uapi/linux/tdx-guest.h" + +#define TDX_GUEST_DEVNAME "/dev/tdx_guest" +#define HEX_DUMP_SIZE 8 +#define DEBUG 0 + +/** + * struct tdreport_type - Type header of TDREPORT_STRUCT. + * @type: Type of the TDREPORT (0 - SGX, 81 - TDX, rest are reserved) + * @sub_type: Subtype of the TDREPORT (Default value is 0). + * @version: TDREPORT version (Default value is 0). + * @reserved: Added for future extension. + * + * More details can be found in TDX v1.0 module specification, sec + * titled "REPORTTYPE". + */ +struct tdreport_type { + __u8 type; + __u8 sub_type; + __u8 version; + __u8 reserved; +}; + +/** + * struct reportmac - TDX guest report data, MAC and TEE hashes. + * @type: TDREPORT type header. + * @reserved1: Reserved for future extension. + * @cpu_svn: CPU security version. + * @tee_tcb_info_hash: SHA384 hash of TEE TCB INFO. + * @tee_td_info_hash: SHA384 hash of TDINFO_STRUCT. + * @reportdata: User defined unique data passed in TDG.MR.REPORT request. + * @reserved2: Reserved for future extension. + * @mac: CPU MAC ID. + * + * It is MAC-protected and contains hashes of the remainder of the + * report structure along with user provided report data. More details can + * be found in TDX v1.0 Module specification, sec titled "REPORTMACSTRUCT" + */ +struct reportmac { + struct tdreport_type type; + __u8 reserved1[12]; + __u8 cpu_svn[16]; + __u8 tee_tcb_info_hash[48]; + __u8 tee_td_info_hash[48]; + __u8 reportdata[64]; + __u8 reserved2[32]; + __u8 mac[32]; +}; + +/** + * struct td_info - TDX guest measurements and configuration. + * @attr: TDX Guest attributes (like debug, spet_disable, etc). + * @xfam: Extended features allowed mask. + * @mrtd: Build time measurement register. + * @mrconfigid: Software-defined ID for non-owner-defined configuration + * of the guest - e.g., run-time or OS configuration. + * @mrowner: Software-defined ID for the guest owner. + * @mrownerconfig: Software-defined ID for owner-defined configuration of + * the guest - e.g., specific to the workload. + * @rtmr: Run time measurement registers. + * @reserved: Added for future extension. + * + * It contains the measurements and initial configuration of the TDX guest + * that was locked at initialization and a set of measurement registers + * that are run-time extendable. More details can be found in TDX v1.0 + * Module specification, sec titled "TDINFO_STRUCT". + */ +struct td_info { + __u8 attr[8]; + __u64 xfam; + __u64 mrtd[6]; + __u64 mrconfigid[6]; + __u64 mrowner[6]; + __u64 mrownerconfig[6]; + __u64 rtmr[24]; + __u64 reserved[14]; +}; + +/* + * struct tdreport - Output of TDCALL[TDG.MR.REPORT]. + * @reportmac: Mac protected header of size 256 bytes. + * @tee_tcb_info: Additional attestable elements in the TCB are not + * reflected in the reportmac. + * @reserved: Added for future extension. + * @tdinfo: Measurements and configuration data of size 512 bytes. + * + * More details can be found in TDX v1.0 Module specification, sec + * titled "TDREPORT_STRUCT". + */ +struct tdreport { + struct reportmac reportmac; + __u8 tee_tcb_info[239]; + __u8 reserved[17]; + struct td_info tdinfo; +}; + +static void print_array_hex(const char *title, const char *prefix_str, + const void *buf, int len) +{ + int i, j, line_len, rowsize = HEX_DUMP_SIZE; + const __u8 *ptr = buf; + + printf("\t\t%s", title); + + for (j = 0; j < len; j += rowsize) { + line_len = rowsize < (len - j) ? rowsize : (len - j); + printf("%s%.8x:", prefix_str, j); + for (i = 0; i < line_len; i++) + printf(" %.2x", ptr[j + i]); + printf("\n"); + } + + printf("\n"); +} + +TEST(verify_report) +{ + struct tdx_report_req req; + struct tdreport *tdreport; + int devfd, i; + + devfd = open(TDX_GUEST_DEVNAME, O_RDWR | O_SYNC); + ASSERT_LT(0, devfd); + + /* Generate sample report data */ + for (i = 0; i < TDX_REPORTDATA_LEN; i++) + req.reportdata[i] = i; + + /* Get TDREPORT */ + ASSERT_EQ(0, ioctl(devfd, TDX_CMD_GET_REPORT0, &req)); + + if (DEBUG) { + print_array_hex("\n\t\tTDX report data\n", "", + req.reportdata, sizeof(req.reportdata)); + + print_array_hex("\n\t\tTDX tdreport data\n", "", + req.tdreport, sizeof(req.tdreport)); + } + + /* Make sure TDREPORT data includes the REPORTDATA passed */ + tdreport = (struct tdreport *)req.tdreport; + ASSERT_EQ(0, memcmp(&tdreport->reportmac.reportdata[0], + req.reportdata, sizeof(req.reportdata))); + + ASSERT_EQ(0, close(devfd)); +} + +TEST_HARNESS_MAIN --- linux-5.19.0.orig/tools/testing/selftests/timers/clocksource-switch.c +++ linux-5.19.0/tools/testing/selftests/timers/clocksource-switch.c @@ -110,10 +110,10 @@ sprintf(buf, "./inconsistency-check -t %i", secs); ret = system(buf); - if (ret) - return ret; + if (WIFEXITED(ret) && WEXITSTATUS(ret)) + return WEXITSTATUS(ret); ret = system("./nanosleep"); - return ret; + return WIFEXITED(ret) ? WEXITSTATUS(ret) : 0; } --- linux-5.19.0.orig/tools/testing/selftests/timers/rtcpie.c +++ linux-5.19.0/tools/testing/selftests/timers/rtcpie.c @@ -111,11 +111,11 @@ timersub(&end, &start, &diff); if (diff.tv_sec > 0 || diff.tv_usec > ((1000000L / tmp) * 1.10)) { - fprintf(stderr, "\nPIE delta error: %ld.%06ld should be close to 0.%06ld\n", + fprintf(stderr, "\nUbuntu Testing Force Pass LP #1814234: PIE delta error: %ld.%06ld should be close to 0.%06ld\n", diff.tv_sec, diff.tv_usec, (1000000L / tmp)); fflush(stdout); - exit(-1); + break; // LP: #1814234 } fprintf(stderr, " %d",i); --- linux-5.19.0.orig/tools/testing/selftests/timers/valid-adjtimex.c +++ linux-5.19.0/tools/testing/selftests/timers/valid-adjtimex.c @@ -40,7 +40,7 @@ #define ADJ_SETOFFSET 0x0100 #include -static int clock_adjtime(clockid_t id, struct timex *tx) +int clock_adjtime(clockid_t id, struct timex *tx) { return syscall(__NR_clock_adjtime, id, tx); } --- linux-5.19.0.orig/tools/testing/selftests/tpm2/tpm2.py +++ linux-5.19.0/tools/testing/selftests/tpm2/tpm2.py @@ -371,6 +371,10 @@ fcntl.fcntl(self.tpm, fcntl.F_SETFL, flags) self.tpm_poll = select.poll() + def __del__(self): + if self.tpm: + self.tpm.close() + def close(self): self.tpm.close() --- linux-5.19.0.orig/tools/testing/selftests/vm/hugepage-mremap.c +++ linux-5.19.0/tools/testing/selftests/vm/hugepage-mremap.c @@ -107,7 +107,7 @@ int main(int argc, char *argv[]) { - size_t length; + size_t length = 0; if (argc != 2 && argc != 3) { printf("Usage: %s [length_in_MB] \n", argv[0]); --- linux-5.19.0.orig/tools/testing/selftests/vm/hugetlb-madvise.c +++ linux-5.19.0/tools/testing/selftests/vm/hugetlb-madvise.c @@ -89,10 +89,11 @@ void read_fault_pages(void *addr, unsigned long nr_pages) { - unsigned long i, tmp; + unsigned long dummy = 0; + unsigned long i; for (i = 0; i < nr_pages; i++) - tmp += *((unsigned long *)(addr + (i * huge_page_size))); + dummy += *((unsigned long *)(addr + (i * huge_page_size))); } int main(int argc, char **argv) --- linux-5.19.0.orig/tools/testing/selftests/vm/mrelease_test.c +++ linux-5.19.0/tools/testing/selftests/vm/mrelease_test.c @@ -62,19 +62,22 @@ /* The process_mrelease calls in this test are expected to fail */ static void run_negative_tests(int pidfd) { + int res; /* Test invalid flags. Expect to fail with EINVAL error code. */ if (!syscall(__NR_process_mrelease, pidfd, (unsigned int)-1) || errno != EINVAL) { + res = (errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); perror("process_mrelease with wrong flags"); - exit(errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); + exit(res); } /* * Test reaping while process is alive with no pending SIGKILL. * Expect to fail with EINVAL error code. */ if (!syscall(__NR_process_mrelease, pidfd, 0) || errno != EINVAL) { + res = (errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); perror("process_mrelease on a live process"); - exit(errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); + exit(res); } } @@ -100,8 +103,9 @@ /* Test a wrong pidfd */ if (!syscall(__NR_process_mrelease, -1, 0) || errno != EBADF) { + res = (errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); perror("process_mrelease with wrong pidfd"); - exit(errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); + exit(res); } /* Start the test with 1MB child memory allocation */ @@ -156,8 +160,9 @@ run_negative_tests(pidfd); if (kill(pid, SIGKILL)) { + res = (errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); perror("kill"); - exit(errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); + exit(res); } success = (syscall(__NR_process_mrelease, pidfd, 0) == 0); @@ -172,9 +177,10 @@ if (errno == ESRCH) { retry = (size <= MAX_SIZE_MB); } else { + res = (errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); perror("process_mrelease"); waitpid(pid, NULL, 0); - exit(errno == ENOSYS ? KSFT_SKIP : KSFT_FAIL); + exit(res); } } --- linux-5.19.0.orig/tools/testing/selftests/wireguard/qemu/arch/riscv32.config +++ linux-5.19.0/tools/testing/selftests/wireguard/qemu/arch/riscv32.config @@ -1,3 +1,4 @@ +CONFIG_NONPORTABLE=y CONFIG_ARCH_RV32I=y CONFIG_MMU=y CONFIG_FPU=y --- linux-5.19.0.orig/tools/thermal/tmon/sysfs.c +++ linux-5.19.0/tools/thermal/tmon/sysfs.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -33,9 +34,9 @@ { FILE *fd; int ret = -1; - char filepath[256]; + char filepath[PATH_MAX + 2]; /* NUL and '/' */ - snprintf(filepath, 256, "%s/%s", path, filename); + snprintf(filepath, sizeof(filepath), "%s/%s", path, filename); fd = fopen(filepath, "w"); if (!fd) { @@ -57,9 +58,9 @@ { FILE *fd; int ret = -1; - char filepath[256]; + char filepath[PATH_MAX + 2]; /* NUL and '/' */ - snprintf(filepath, 256, "%s/%s", path, filename); + snprintf(filepath, sizeof(filepath), "%s/%s", path, filename); fd = fopen(filepath, "r"); if (!fd) { @@ -76,9 +77,9 @@ { FILE *fd; int ret = -1; - char filepath[256]; + char filepath[PATH_MAX + 2]; /* NUL and '/' */ - snprintf(filepath, 256, "%s/%s", path, filename); + snprintf(filepath, sizeof(filepath), "%s/%s", path, filename); fd = fopen(filepath, "r"); if (!fd) { @@ -199,8 +200,8 @@ { unsigned long trip_instance = 0; char cdev_name_linked[256]; - char cdev_name[256]; - char cdev_trip_name[256]; + char cdev_name[PATH_MAX]; + char cdev_trip_name[PATH_MAX]; int cdev_id; if (nl->d_type == DT_LNK) { @@ -213,7 +214,8 @@ return -EINVAL; } /* find the link to real cooling device record binding */ - snprintf(cdev_name, 256, "%s/%s", tz_name, nl->d_name); + snprintf(cdev_name, sizeof(cdev_name) - 2, "%s/%s", + tz_name, nl->d_name); memset(cdev_name_linked, 0, sizeof(cdev_name_linked)); if (readlink(cdev_name, cdev_name_linked, sizeof(cdev_name_linked) - 1) != -1) { @@ -226,8 +228,8 @@ /* find the trip point in which the cdev is binded to * in this tzone */ - snprintf(cdev_trip_name, 256, "%s%s", nl->d_name, - "_trip_point"); + snprintf(cdev_trip_name, sizeof(cdev_trip_name) - 1, + "%s%s", nl->d_name, "_trip_point"); sysfs_get_ulong(tz_name, cdev_trip_name, &trip_instance); /* validate trip point range, e.g. trip could return -1 --- linux-5.19.0.orig/tools/thermal/tmon/tmon.h +++ linux-5.19.0/tools/thermal/tmon/tmon.h @@ -27,6 +27,9 @@ #define NR_LINES_TZDATA 1 #define TMON_LOG_FILE "/var/tmp/tmon.log" +#include +#include + extern unsigned long ticktime; extern double time_elapsed; extern unsigned long target_temp_user; --- linux-5.19.0.orig/tools/tracing/rtla/Makefile +++ linux-5.19.0/tools/tracing/rtla/Makefile @@ -1,6 +1,6 @@ NAME := rtla # Follow the kernel version -VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion) +VERSION := $(shell cat VERSION 2> /dev/null || make -sC ../../.. kernelversion | grep -v make) # From libtracefs: # Makefiles suck: This macro sets a default value of $(2) for the @@ -108,9 +108,9 @@ $(INSTALL) rtla -m 755 $(DESTDIR)$(BINDIR) $(STRIP) $(DESTDIR)$(BINDIR)/rtla @test ! -f $(DESTDIR)$(BINDIR)/osnoise || rm $(DESTDIR)$(BINDIR)/osnoise - ln -s $(DESTDIR)$(BINDIR)/rtla $(DESTDIR)$(BINDIR)/osnoise + ln -s rtla $(DESTDIR)$(BINDIR)/osnoise @test ! -f $(DESTDIR)$(BINDIR)/timerlat || rm $(DESTDIR)$(BINDIR)/timerlat - ln -s $(DESTDIR)$(BINDIR)/rtla $(DESTDIR)$(BINDIR)/timerlat + ln -s rtla $(DESTDIR)$(BINDIR)/timerlat .PHONY: clean tarball clean: doc_clean --- linux-5.19.0.orig/tools/tracing/rtla/src/timerlat_hist.c +++ linux-5.19.0/tools/tracing/rtla/src/timerlat_hist.c @@ -892,7 +892,7 @@ return_value = 0; if (trace_is_off(&tool->trace, &record->trace)) { - printf("rtla timelat hit stop tracing\n"); + printf("rtla timerlat hit stop tracing\n"); if (params->trace_output) { printf(" Saving trace to %s\n", params->trace_output); save_trace_to_file(record->trace.inst, params->trace_output); --- linux-5.19.0.orig/tools/tracing/rtla/src/timerlat_top.c +++ linux-5.19.0/tools/tracing/rtla/src/timerlat_top.c @@ -687,7 +687,7 @@ return_value = 0; if (trace_is_off(&top->trace, &record->trace)) { - printf("rtla timelat hit stop tracing\n"); + printf("rtla timerlat hit stop tracing\n"); if (params->trace_output) { printf(" Saving trace to %s\n", params->trace_output); save_trace_to_file(record->trace.inst, params->trace_output); --- linux-5.19.0.orig/tools/tracing/rtla/src/trace.c +++ linux-5.19.0/tools/tracing/rtla/src/trace.c @@ -134,13 +134,18 @@ if (trace->inst) { disable_tracer(trace->inst); destroy_instance(trace->inst); + trace->inst = NULL; } - if (trace->seq) + if (trace->seq) { free(trace->seq); + trace->seq = NULL; + } - if (trace->tep) + if (trace->tep) { tep_free(trace->tep); + trace->tep = NULL; + } } /* --- linux-5.19.0.orig/tools/tracing/rtla/src/utils.c +++ linux-5.19.0/tools/tracing/rtla/src/utils.c @@ -106,8 +106,9 @@ nr_cpus = sysconf(_SC_NPROCESSORS_CONF); - mon_cpus = malloc(nr_cpus * sizeof(char)); - memset(mon_cpus, 0, (nr_cpus * sizeof(char))); + mon_cpus = calloc(nr_cpus, sizeof(char)); + if (!mon_cpus) + goto err; for (p = cpu_list; *p; ) { cpu = atoi(p); --- linux-5.19.0.orig/tools/usb/usbip/configure.ac +++ linux-5.19.0/tools/usb/usbip/configure.ac @@ -18,7 +18,7 @@ # Silent build for automake >= 1.11 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) -AC_SUBST([EXTRA_CFLAGS], ["-Wall -Werror -Wextra -std=gnu99"]) +AC_SUBST([EXTRA_CFLAGS], ["-Wall -Werror -Wextra -Wno-address-of-packed-member -std=gnu99"]) # Checks for programs. AC_PROG_CC --- linux-5.19.0.orig/tools/vm/slabinfo-gnuplot.sh +++ linux-5.19.0/tools/vm/slabinfo-gnuplot.sh @@ -150,7 +150,7 @@ let lines=3 out=`basename "$in"`"-slabs-by-loss" `cat "$in" | grep -A "$lines" 'Slabs sorted by loss' |\ - egrep -iv '\-\-|Name|Slabs'\ + grep -E -iv '\-\-|Name|Slabs'\ | awk '{print $1" "$4+$2*$3" "$4}' > "$out"` if [ $? -eq 0 ]; then do_slabs_plotting "$out" @@ -159,7 +159,7 @@ let lines=3 out=`basename "$in"`"-slabs-by-size" `cat "$in" | grep -A "$lines" 'Slabs sorted by size' |\ - egrep -iv '\-\-|Name|Slabs'\ + grep -E -iv '\-\-|Name|Slabs'\ | awk '{print $1" "$4" "$4-$2*$3}' > "$out"` if [ $? -eq 0 ]; then do_slabs_plotting "$out" --- linux-5.19.0.orig/tools/vm/slabinfo.c +++ linux-5.19.0/tools/vm/slabinfo.c @@ -125,7 +125,7 @@ "-n|--numa Show NUMA information\n" "-N|--lines=K Show the first K slabs\n" "-o|--ops Show kmem_cache_ops\n" - "-P|--partial Sort by number of partial slabs\n" + "-P|--partial Sort by number of partial slabs\n" "-r|--report Detailed report on single slabs\n" "-s|--shrink Shrink slabs\n" "-S|--Size Sort by size\n" @@ -233,6 +233,24 @@ return l; } +static unsigned long read_debug_slab_obj(struct slabinfo *s, const char *name) +{ + char x[128]; + FILE *f; + size_t l; + + snprintf(x, 128, "/sys/kernel/debug/slab/%s/%s", s->name, name); + f = fopen(x, "r"); + if (!f) { + buffer[0] = 0; + l = 0; + } else { + l = fread(buffer, 1, sizeof(buffer), f); + buffer[l] = 0; + fclose(f); + } + return l; +} /* * Put a size string together @@ -409,14 +427,18 @@ { printf("\n%s: Kernel object allocation\n", s->name); printf("-----------------------------------------------------------------------\n"); - if (read_slab_obj(s, "alloc_calls")) + if (read_debug_slab_obj(s, "alloc_traces")) + printf("%s", buffer); + else if (read_slab_obj(s, "alloc_calls")) printf("%s", buffer); else printf("No Data\n"); printf("\n%s: Kernel object freeing\n", s->name); printf("------------------------------------------------------------------------\n"); - if (read_slab_obj(s, "free_calls")) + if (read_debug_slab_obj(s, "free_traces")) + printf("%s", buffer); + else if (read_slab_obj(s, "free_calls")) printf("%s", buffer); else printf("No Data\n"); @@ -1045,15 +1067,27 @@ for (s2 = s1 + 1; s2 < slabinfo + slabs; s2++) { int result; - if (sort_size) - result = slab_size(s1) < slab_size(s2); - else if (sort_active) - result = slab_activity(s1) < slab_activity(s2); - else if (sort_loss) - result = slab_waste(s1) < slab_waste(s2); - else if (sort_partial) - result = s1->partial < s2->partial; - else + if (sort_size) { + if (slab_size(s1) == slab_size(s2)) + result = strcasecmp(s1->name, s2->name); + else + result = slab_size(s1) < slab_size(s2); + } else if (sort_active) { + if (slab_activity(s1) == slab_activity(s2)) + result = strcasecmp(s1->name, s2->name); + else + result = slab_activity(s1) < slab_activity(s2); + } else if (sort_loss) { + if (slab_waste(s1) == slab_waste(s2)) + result = strcasecmp(s1->name, s2->name); + else + result = slab_waste(s1) < slab_waste(s2); + } else if (sort_partial) { + if (s1->partial == s2->partial) + result = strcasecmp(s1->name, s2->name); + else + result = s1->partial < s2->partial; + } else result = strcasecmp(s1->name, s2->name); if (show_inverted) --- linux-5.19.0.orig/ubuntu/Kconfig +++ linux-5.19.0/ubuntu/Kconfig @@ -0,0 +1,27 @@ +menu "Ubuntu Supplied Third-Party Device Drivers" + + +config UBUNTU_ODM_DRIVERS + def_bool $(success,$(srctree)/debian/scripts/misc/arch-has-odm-enabled.sh $(DEB_ARCH)) + help + Turn on support for Ubuntu ODM supplied drivers + +# +# NOTE: to allow drivers to be added and removed without causing merge +# collisions you should add new entries in the middle of the six lines +# of ## at the bottom of the list. Always add three lines of ## above +# your new entry and maintain the six lines below. +# + +## +## +## +source "ubuntu/ubuntu-host/Kconfig" +## +## +## +## +## +## + +endmenu --- linux-5.19.0.orig/ubuntu/Makefile +++ linux-5.19.0/ubuntu/Makefile @@ -0,0 +1,27 @@ +# +# Makefile for the Linux kernel ubuntu supplied third-party device drivers. +# + +# +# NOTE: to allow drivers to be added and removed without causing merge +# collisions you should add new entries in the middle of the six lines +# of ## at the bottom of the list. Always add three lines of ## above +# your new entry and maintain the six lines below. +# + +## +## +## +## +## +## +obj-$(CONFIG_UBUNTU_HOST) += ubuntu-host/ +## +## +## +## +## +## + +# This is a stupid trick to get kbuild to create ubuntu/built-in.o +obj- += foo.o --- linux-5.19.0.orig/ubuntu/include/Kbuild +++ linux-5.19.0/ubuntu/include/Kbuild @@ -0,0 +1,2 @@ + + --- linux-5.19.0.orig/ubuntu/include/README +++ linux-5.19.0/ubuntu/include/README @@ -0,0 +1,4 @@ +Only use this directory for things which need to share their headers with +other parts of the kernel or other modules in ubuntu/ + +Otherwise, keep them local to the module directory. --- linux-5.19.0.orig/ubuntu/ubuntu-host/Kconfig +++ linux-5.19.0/ubuntu/ubuntu-host/Kconfig @@ -0,0 +1,5 @@ +config UBUNTU_HOST + tristate "proc dir for exporting host data to containers" + help + Creates an ubuntu-host directory in proc for providing data from + Ubuntu hosts to containers. --- linux-5.19.0.orig/ubuntu/ubuntu-host/Makefile +++ linux-5.19.0/ubuntu/ubuntu-host/Makefile @@ -0,0 +1 @@ +obj-$(CONFIG_UBUNTU_HOST) += ubuntu-host.o --- linux-5.19.0.orig/ubuntu/ubuntu-host/ubuntu-host.c +++ linux-5.19.0/ubuntu/ubuntu-host/ubuntu-host.c @@ -0,0 +1,68 @@ +#include +#include +#include +#include +#include + +#define PROC_DIR "ubuntu-host" + +#define ESM_TOKEN_FILE "esm-token" +#define ESM_TOKEN_MAX_SIZE 64 + +static struct proc_dir_entry *proc_dir; +static char esm_token_buffer[ESM_TOKEN_MAX_SIZE]; + +static ssize_t esm_token_read(struct file *f, char __user *buf, size_t len, + loff_t *off) +{ + return simple_read_from_buffer(buf, len, off, esm_token_buffer, + strlen(esm_token_buffer)); +} + +static ssize_t esm_token_write(struct file *f, const char __user *buf, + size_t len, loff_t *off) +{ + ssize_t ret; + + if (len >= ESM_TOKEN_MAX_SIZE - 1) + return -EINVAL; + + ret = simple_write_to_buffer(esm_token_buffer, ESM_TOKEN_MAX_SIZE - 1, + off, buf, len); + if (ret >= 0) + esm_token_buffer[ret] = '\0'; + + return ret; +} + +static const struct proc_ops esm_token_fops = { + .proc_read = esm_token_read, + .proc_write = esm_token_write, +}; + +static void ubuntu_host_cleanup(void) +{ + remove_proc_entry(ESM_TOKEN_FILE, proc_dir); + proc_remove(proc_dir); +} + +static int __init ubuntu_host_init(void) +{ + proc_dir = proc_mkdir(PROC_DIR, NULL); + if (!proc_dir) { + pr_err("Failed to create ubuntu-host dir\n"); + return -ENOMEM; + } + + if (!proc_create_data(ESM_TOKEN_FILE, 0644, proc_dir, &esm_token_fops, NULL)) { + pr_err("Failed to create esm-tokan file\n"); + ubuntu_host_cleanup(); + return -ENOMEM; + } + + return 0; +} + +module_init(ubuntu_host_init); +module_exit(ubuntu_host_cleanup); +MODULE_LICENSE("GPL"); --- linux-5.19.0.orig/update-dkms-versions +++ linux-5.19.0/update-dkms-versions @@ -0,0 +1,181 @@ +#!/bin/bash + +remote_repo='' +sru_cycle= +while : +do + if [ "$1" = "--remote-repo" ]; then + remote_repo="$2" + shift 2 + + elif [ "$1" = "--sru-cycle" ]; then + sru_cycle="$2" + shift 2 + + else + break + fi +done +if [ "$#" -ne 0 ]; then + { + echo "Usage: $0 []" + echo " --remote-repo " + echo " --sru-cycle " + } 1>&2 + exit 1 +fi + +default_sru_cycle() +{ + local tracking_bug + local version + + # Pick out the cycle from the tracking bug file. + if [ -f "$DEBIAN/tracking-bug" ]; then + read tracking_bug sru_cycle X <"$DEBIAN/tracking-bug" + fi + + if [ -z "$sru_cycle" ]; then + echo "$0: sru-cycle not found via debian/tracking-bug; specify --sru-cycle" 1>&2 + exit 1 + fi + + sru_cycle=$(echo "$sru_cycle" | sed -e 's/-[0-9][0-9]*$//' -e 's/^kernel-sru-cycle-//') + + #echo "default_sru_cycle: version<$version> sru_cycle<$sru_cycle>" +} + +# Determine where our changelog is. +DEBIAN=debian +[ -f 'debian/debian.env' ] && . 'debian/debian.env' + +[ -z "$sru_cycle" ] && default_sru_cycle +if [ -z "$remote_repo" ]; then + case "$sru_cycle" in + s[0-9][0-9][0-9][0-9].[0-9][0-9].[0-9][0-9]) + remote_repo='security' ;; + *) + remote_repo='main' ;; + esac +fi +case "$remote_repo" in +security) + remote_repo='ssh+git://git.launchpad.net/~canonical-kernel-security-team/canonical-kernel-private/+git/kernel-versions' + remote_name='security' + ;; +main) + remote_repo='git://git.launchpad.net/~canonical-kernel/+git/kernel-versions' + remote_name='main' + ;; +*) + remote_name='adhoc' + ;; +esac + +# +# kernel-versoins repository dkms-version mapping see below for details: +# https://git.launchpad.net/~canonical-kernel/+git/kernel-versions/plain/README +# +kv_repo="$HOME/.cache/kernel-versions-bare" +git_base="$remote_name/$sru_cycle" + +# Now we know where our repo is and what it called update it. +# We maintain "persistent" remotes for main and security, but assume +# any manually supplied entries are transient. +( + [ ! -d "$kv_repo" ] && mkdir -p "$kv_repo" + cd "$kv_repo" || exit 1 + [ ! -f config ] && git init -q --bare + current_url=$(git config "remote.$remote_name.url") + if [ -z "$current_url" ]; then + git remote add "$remote_name" "$remote_repo" + elif [ "$current_url" != "$remote_repo" ]; then + git config "remote.$remote_name.url" "$remote_repo" + fi + git fetch -q -p "$remote_name" +) || exit 1 + +cat_file() +{ + (cd "$kv_repo" && git cat-file "$@") || exit 1 +} + +# Determine if we have this cycle. +present=$(cat_file -t "$git_base" 2>/dev/null) +if [ "$present" = "" ]; then + # If we don't have the cycle in the development cycle then + # fall back to master. + case "$sru_cycle" in + d*) git_base="$remote_name/master" ;; + *) echo "$sru_cycle: cycle not found in $remote_repo" 2>&1 + exit 1 + ;; + esac +fi + +# Determine our series and mainline version from our own changelog. +our_series=$(LC_ALL=C dpkg-parsechangelog -l"$DEBIAN/changelog" -SDistribution) +if [ "$our_series" = "UNRELEASED" ]; then + our_series=$(LC_ALL=C dpkg-parsechangelog -l"$DEBIAN/changelog" -o1 -c1 -SDistribution) +fi +our_mainline=$(LC_ALL=C dpkg-parsechangelog -l"$DEBIAN/changelog" -SVersion | sed -e 's/-.*//') +our_package=$(LC_ALL=C dpkg-parsechangelog -l"$DEBIAN/changelog" -SSource) +our_source=$(echo "$our_package" | sed -e 's/-restricted-modules//') +case "$our_package" in +linux-restricted-modules*) our_type="lrm" ;; +*) our_type="main" ;; +esac + +# Update rules are complex. We update development series kernels to the +# versions in development. For stable series we update versions against +# the series in which our prime kernel was built. This is expressed +# via the map/dkms-versions namespace. Attempt to map via our series +# and then our mainline-version. + +# Try and find a package specific dkms-versions fragment. Try: +# handle+type +# series+type +# mainline+type +# series - backwards compatibility +# mainline - backwards compatibility +for versions_path_tail in \ + "$our_series:$our_source:$our_type" \ + "$our_series:$our_type" \ + "$our_mainline:$our_type" \ + "$our_series" \ + "$our_mainline" +do + echo "II: trying $versions_path_tail ..." + versions_paths=$(echo $(cat_file -p "$git_base:map/dkms-versions/$versions_path_tail" 2>/dev/null)) + [ -n "$versions_paths" ] && break +done + +if [ -z "$versions_paths" ]; then + echo "$0: unable to identify dkms-versions mapping" 1>&2 + exit 1 +fi + +echo "git_base<$git_base> versions_paths<$versions_paths>" +echo "II: grabbing dkms-versions from $sru_cycle $versions_paths" + +: ">debian/dkms-versions.new" +for versions_path in $versions_paths +do + cat_file -p "$git_base:$versions_path" >>"debian/dkms-versions.new" + if [ "$?" -ne 0 ]; then + echo "$0: unable to download an updated dkms-versions file" 1>&2 + exit 1 + fi +done +mv "debian/dkms-versions.new" "debian/dkms-versions" + +thing="debian/dkms-versions" +if ! git diff --exit-code -- "$thing" >/dev/null; then + git commit -m "UBUNTU: $thing -- update from kernel-versions ($git_base)" \ + -m "BugLink: https://bugs.launchpad.net/bugs/1786013" \ + -s -- "$thing" +else + echo "$thing: no changes from kernel-versions" +fi + +exit 0 --- linux-5.19.0.orig/update-version-dkms +++ linux-5.19.0/update-version-dkms @@ -0,0 +1,4 @@ +#!/bin/bash + +echo "EE: run update-dkms-versions after link-to-tracker" 1>&2 +exit 1 --- linux-5.19.0.orig/virt/kvm/kvm_main.c +++ linux-5.19.0/virt/kvm/kvm_main.c @@ -724,6 +724,15 @@ kvm->mn_active_invalidate_count++; spin_unlock(&kvm->mn_invalidate_lock); + /* + * Invalidate pfn caches _before_ invalidating the secondary MMUs, i.e. + * before acquiring mmu_lock, to avoid holding mmu_lock while acquiring + * each cache's lock. There are relatively few caches in existence at + * any given time, and the caches themselves can check for hva overlap, + * i.e. don't need to rely on memslot overlap checks for performance. + * Because this runs without holding mmu_lock, the pfn caches must use + * mn_active_invalidate_count (see above) instead of mmu_notifier_count. + */ gfn_to_pfn_cache_invalidate_start(kvm, range->start, range->end, hva_range.may_block); @@ -1076,6 +1085,9 @@ if (!kvm) return ERR_PTR(-ENOMEM); + /* KVM is pinned via open("/dev/kvm"), the fd passed to this ioctl(). */ + __module_get(kvm_chardev_ops.owner); + KVM_MMU_LOCK_INIT(kvm); mmgrab(current->mm); kvm->mm = current->mm; @@ -1161,16 +1173,6 @@ preempt_notifier_inc(); kvm_init_pm_notifier(kvm); - /* - * When the fd passed to this ioctl() is opened it pins the module, - * but try_module_get() also prevents getting a reference if the module - * is in MODULE_STATE_GOING (e.g. if someone ran "rmmod --wait"). - */ - if (!try_module_get(kvm_chardev_ops.owner)) { - r = -ENODEV; - goto out_err; - } - return kvm; out_err: @@ -1192,6 +1194,7 @@ out_err_no_srcu: kvm_arch_free_vm(kvm); mmdrop(current->mm); + module_put(kvm_chardev_ops.owner); return ERR_PTR(r); } @@ -2844,16 +2847,28 @@ } EXPORT_SYMBOL_GPL(kvm_release_pfn_dirty); +static bool kvm_is_ad_tracked_pfn(kvm_pfn_t pfn) +{ + if (!pfn_valid(pfn)) + return false; + + /* + * Per page-flags.h, pages tagged PG_reserved "should in general not be + * touched (e.g. set dirty) except by its owner". + */ + return !PageReserved(pfn_to_page(pfn)); +} + void kvm_set_pfn_dirty(kvm_pfn_t pfn) { - if (!kvm_is_reserved_pfn(pfn) && !kvm_is_zone_device_pfn(pfn)) + if (kvm_is_ad_tracked_pfn(pfn)) SetPageDirty(pfn_to_page(pfn)); } EXPORT_SYMBOL_GPL(kvm_set_pfn_dirty); void kvm_set_pfn_accessed(kvm_pfn_t pfn) { - if (!kvm_is_reserved_pfn(pfn) && !kvm_is_zone_device_pfn(pfn)) + if (kvm_is_ad_tracked_pfn(pfn)) mark_page_accessed(pfn_to_page(pfn)); } EXPORT_SYMBOL_GPL(kvm_set_pfn_accessed); @@ -4715,6 +4730,12 @@ }; }; +long __weak kvm_arch_vm_compat_ioctl(struct file *filp, unsigned int ioctl, + unsigned long arg) +{ + return -ENOTTY; +} + static long kvm_vm_compat_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg) { @@ -4723,6 +4744,11 @@ if (kvm->mm != current->mm || kvm->vm_dead) return -EIO; + + r = kvm_arch_vm_compat_ioctl(filp, ioctl, arg); + if (r != -ENOTTY) + return r; + switch (ioctl) { #ifdef CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT case KVM_CLEAR_DIRTY_LOG: { @@ -5280,6 +5306,7 @@ int (*get)(void *, u64 *), int (*set)(void *, u64), const char *fmt) { + int ret; struct kvm_stat_data *stat_data = (struct kvm_stat_data *) inode->i_private; @@ -5291,15 +5318,13 @@ if (!kvm_get_kvm_safe(stat_data->kvm)) return -ENOENT; - if (simple_attr_open(inode, file, get, - kvm_stats_debugfs_mode(stat_data->desc) & 0222 - ? set : NULL, - fmt)) { + ret = simple_attr_open(inode, file, get, + kvm_stats_debugfs_mode(stat_data->desc) & 0222 + ? set : NULL, fmt); + if (ret) kvm_put_kvm(stat_data->kvm); - return -ENOMEM; - } - return 0; + return ret; } static int kvm_debugfs_release(struct inode *inode, struct file *file) --- linux-5.19.0.orig/virt/kvm/pfncache.c +++ linux-5.19.0/virt/kvm/pfncache.c @@ -81,6 +81,9 @@ { struct kvm_memslots *slots = kvm_memslots(kvm); + if (!gpc->active) + return false; + if ((gpa & ~PAGE_MASK) + len > PAGE_SIZE) return false; @@ -95,7 +98,7 @@ } EXPORT_SYMBOL_GPL(kvm_gfn_to_pfn_cache_check); -static void __release_gpc(struct kvm *kvm, kvm_pfn_t pfn, void *khva, gpa_t gpa) +static void gpc_release_pfn_and_khva(struct kvm *kvm, kvm_pfn_t pfn, void *khva) { /* Unmap the old page if it was mapped before, and release it */ if (!is_error_noslot_pfn(pfn)) { @@ -112,31 +115,122 @@ } } -static kvm_pfn_t hva_to_pfn_retry(struct kvm *kvm, unsigned long uhva) +static inline bool mmu_notifier_retry_cache(struct kvm *kvm, unsigned long mmu_seq) +{ + /* + * mn_active_invalidate_count acts for all intents and purposes + * like mmu_notifier_count here; but the latter cannot be used + * here because the invalidation of caches in the mmu_notifier + * event occurs _before_ mmu_notifier_count is elevated. + * + * Note, it does not matter that mn_active_invalidate_count + * is not protected by gpc->lock. It is guaranteed to + * be elevated before the mmu_notifier acquires gpc->lock, and + * isn't dropped until after mmu_notifier_seq is updated. + */ + if (kvm->mn_active_invalidate_count) + return true; + + /* + * Ensure mn_active_invalidate_count is read before + * mmu_notifier_seq. This pairs with the smp_wmb() in + * mmu_notifier_invalidate_range_end() to guarantee either the + * old (non-zero) value of mn_active_invalidate_count or the + * new (incremented) value of mmu_notifier_seq is observed. + */ + smp_rmb(); + return kvm->mmu_notifier_seq != mmu_seq; +} + +static kvm_pfn_t hva_to_pfn_retry(struct kvm *kvm, struct gfn_to_pfn_cache *gpc) { + /* Note, the new page offset may be different than the old! */ + void *old_khva = gpc->khva - offset_in_page(gpc->khva); + kvm_pfn_t new_pfn = KVM_PFN_ERR_FAULT; + void *new_khva = NULL; unsigned long mmu_seq; - kvm_pfn_t new_pfn; - int retry; + + lockdep_assert_held(&gpc->refresh_lock); + + lockdep_assert_held_write(&gpc->lock); + + /* + * Invalidate the cache prior to dropping gpc->lock, the gpa=>uhva + * assets have already been updated and so a concurrent check() from a + * different task may not fail the gpa/uhva/generation checks. + */ + gpc->valid = false; do { mmu_seq = kvm->mmu_notifier_seq; smp_rmb(); + write_unlock_irq(&gpc->lock); + + /* + * If the previous iteration "failed" due to an mmu_notifier + * event, release the pfn and unmap the kernel virtual address + * from the previous attempt. Unmapping might sleep, so this + * needs to be done after dropping the lock. Opportunistically + * check for resched while the lock isn't held. + */ + if (new_pfn != KVM_PFN_ERR_FAULT) { + /* + * Keep the mapping if the previous iteration reused + * the existing mapping and didn't create a new one. + */ + if (new_khva == old_khva) + new_khva = NULL; + + gpc_release_pfn_and_khva(kvm, new_pfn, new_khva); + + cond_resched(); + } + /* We always request a writeable mapping */ - new_pfn = hva_to_pfn(uhva, false, NULL, true, NULL); + new_pfn = hva_to_pfn(gpc->uhva, false, NULL, true, NULL); if (is_error_noslot_pfn(new_pfn)) - break; + goto out_error; - KVM_MMU_READ_LOCK(kvm); - retry = mmu_notifier_retry_hva(kvm, mmu_seq, uhva); - KVM_MMU_READ_UNLOCK(kvm); - if (!retry) - break; + /* + * Obtain a new kernel mapping if KVM itself will access the + * pfn. Note, kmap() and memremap() can both sleep, so this + * too must be done outside of gpc->lock! + */ + if (gpc->usage & KVM_HOST_USES_PFN) { + if (new_pfn == gpc->pfn) { + new_khva = old_khva; + } else if (pfn_valid(new_pfn)) { + new_khva = kmap(pfn_to_page(new_pfn)); +#ifdef CONFIG_HAS_IOMEM + } else { + new_khva = memremap(pfn_to_hpa(new_pfn), PAGE_SIZE, MEMREMAP_WB); +#endif + } + if (!new_khva) { + kvm_release_pfn_clean(new_pfn); + goto out_error; + } + } + + write_lock_irq(&gpc->lock); + + /* + * Other tasks must wait for _this_ refresh to complete before + * attempting to refresh. + */ + WARN_ON_ONCE(gpc->valid); + } while (mmu_notifier_retry_cache(kvm, mmu_seq)); + + gpc->valid = true; + gpc->pfn = new_pfn; + gpc->khva = new_khva + (gpc->gpa & ~PAGE_MASK); + return 0; - cond_resched(); - } while (1); +out_error: + write_lock_irq(&gpc->lock); - return new_pfn; + return -EFAULT; } int kvm_gfn_to_pfn_cache_refresh(struct kvm *kvm, struct gfn_to_pfn_cache *gpc, @@ -144,12 +238,11 @@ { struct kvm_memslots *slots = kvm_memslots(kvm); unsigned long page_offset = gpa & ~PAGE_MASK; - kvm_pfn_t old_pfn, new_pfn; + bool unmap_old = false; unsigned long old_uhva; - gpa_t old_gpa; + kvm_pfn_t old_pfn; void *old_khva; - bool old_valid; - int ret = 0; + int ret; /* * If must fit within a single page. The 'len' argument is @@ -158,13 +251,23 @@ if (page_offset + len > PAGE_SIZE) return -EINVAL; + /* + * If another task is refreshing the cache, wait for it to complete. + * There is no guarantee that concurrent refreshes will see the same + * gpa, memslots generation, etc..., so they must be fully serialized. + */ + mutex_lock(&gpc->refresh_lock); + write_lock_irq(&gpc->lock); - old_gpa = gpc->gpa; + if (!gpc->active) { + ret = -EINVAL; + goto out_unlock; + } + old_pfn = gpc->pfn; old_khva = gpc->khva - offset_in_page(gpc->khva); old_uhva = gpc->uhva; - old_valid = gpc->valid; /* If the userspace HVA is invalid, refresh that first */ if (gpc->gpa != gpa || gpc->generation != slots->generation || @@ -177,74 +280,51 @@ gpc->uhva = gfn_to_hva_memslot(gpc->memslot, gfn); if (kvm_is_error_hva(gpc->uhva)) { - gpc->pfn = KVM_PFN_ERR_FAULT; ret = -EFAULT; goto out; } - - gpc->uhva += page_offset; } /* * If the userspace HVA changed or the PFN was already invalid, * drop the lock and do the HVA to PFN lookup again. */ - if (!old_valid || old_uhva != gpc->uhva) { - unsigned long uhva = gpc->uhva; - void *new_khva = NULL; - - /* Placeholders for "hva is valid but not yet mapped" */ - gpc->pfn = KVM_PFN_ERR_FAULT; - gpc->khva = NULL; - gpc->valid = true; - - write_unlock_irq(&gpc->lock); - - new_pfn = hva_to_pfn_retry(kvm, uhva); - if (is_error_noslot_pfn(new_pfn)) { - ret = -EFAULT; - goto map_done; - } - - if (gpc->usage & KVM_HOST_USES_PFN) { - if (new_pfn == old_pfn) { - new_khva = old_khva; - old_pfn = KVM_PFN_ERR_FAULT; - old_khva = NULL; - } else if (pfn_valid(new_pfn)) { - new_khva = kmap(pfn_to_page(new_pfn)); -#ifdef CONFIG_HAS_IOMEM - } else { - new_khva = memremap(pfn_to_hpa(new_pfn), PAGE_SIZE, MEMREMAP_WB); -#endif - } - if (new_khva) - new_khva += page_offset; - else - ret = -EFAULT; - } - - map_done: - write_lock_irq(&gpc->lock); - if (ret) { - gpc->valid = false; - gpc->pfn = KVM_PFN_ERR_FAULT; - gpc->khva = NULL; - } else { - /* At this point, gpc->valid may already have been cleared */ - gpc->pfn = new_pfn; - gpc->khva = new_khva; - } + if (!gpc->valid || old_uhva != gpc->uhva) { + ret = hva_to_pfn_retry(kvm, gpc); } else { - /* If the HVA→PFN mapping was already valid, don't unmap it. */ + /* + * If the HVA→PFN mapping was already valid, don't unmap it. + * But do update gpc->khva because the offset within the page + * may have changed. + */ + gpc->khva = old_khva + page_offset; old_pfn = KVM_PFN_ERR_FAULT; old_khva = NULL; + ret = 0; } out: + /* + * Invalidate the cache and purge the pfn/khva if the refresh failed. + * Some/all of the uhva, gpa, and memslot generation info may still be + * valid, leave it as is. + */ + if (ret) { + gpc->valid = false; + gpc->pfn = KVM_PFN_ERR_FAULT; + gpc->khva = NULL; + } + + /* Detect a pfn change before dropping the lock! */ + unmap_old = (old_pfn != gpc->pfn); + +out_unlock: write_unlock_irq(&gpc->lock); - __release_gpc(kvm, old_pfn, old_khva, old_gpa); + mutex_unlock(&gpc->refresh_lock); + + if (unmap_old) + gpc_release_pfn_and_khva(kvm, old_pfn, old_khva); return ret; } @@ -254,14 +334,13 @@ { void *old_khva; kvm_pfn_t old_pfn; - gpa_t old_gpa; + mutex_lock(&gpc->refresh_lock); write_lock_irq(&gpc->lock); gpc->valid = false; old_khva = gpc->khva - offset_in_page(gpc->khva); - old_gpa = gpc->gpa; old_pfn = gpc->pfn; /* @@ -272,46 +351,67 @@ gpc->pfn = KVM_PFN_ERR_FAULT; write_unlock_irq(&gpc->lock); + mutex_unlock(&gpc->refresh_lock); - __release_gpc(kvm, old_pfn, old_khva, old_gpa); + gpc_release_pfn_and_khva(kvm, old_pfn, old_khva); } EXPORT_SYMBOL_GPL(kvm_gfn_to_pfn_cache_unmap); +void kvm_gpc_init(struct gfn_to_pfn_cache *gpc) +{ + rwlock_init(&gpc->lock); + mutex_init(&gpc->refresh_lock); +} +EXPORT_SYMBOL_GPL(kvm_gpc_init); -int kvm_gfn_to_pfn_cache_init(struct kvm *kvm, struct gfn_to_pfn_cache *gpc, - struct kvm_vcpu *vcpu, enum pfn_cache_usage usage, - gpa_t gpa, unsigned long len) +int kvm_gpc_activate(struct kvm *kvm, struct gfn_to_pfn_cache *gpc, + struct kvm_vcpu *vcpu, enum pfn_cache_usage usage, + gpa_t gpa, unsigned long len) { WARN_ON_ONCE(!usage || (usage & KVM_GUEST_AND_HOST_USE_PFN) != usage); if (!gpc->active) { - rwlock_init(&gpc->lock); - gpc->khva = NULL; gpc->pfn = KVM_PFN_ERR_FAULT; gpc->uhva = KVM_HVA_ERR_BAD; gpc->vcpu = vcpu; gpc->usage = usage; gpc->valid = false; - gpc->active = true; spin_lock(&kvm->gpc_lock); list_add(&gpc->list, &kvm->gpc_list); spin_unlock(&kvm->gpc_lock); + + /* + * Activate the cache after adding it to the list, a concurrent + * refresh must not establish a mapping until the cache is + * reachable by mmu_notifier events. + */ + write_lock_irq(&gpc->lock); + gpc->active = true; + write_unlock_irq(&gpc->lock); } return kvm_gfn_to_pfn_cache_refresh(kvm, gpc, gpa, len); } -EXPORT_SYMBOL_GPL(kvm_gfn_to_pfn_cache_init); +EXPORT_SYMBOL_GPL(kvm_gpc_activate); -void kvm_gfn_to_pfn_cache_destroy(struct kvm *kvm, struct gfn_to_pfn_cache *gpc) +void kvm_gpc_deactivate(struct kvm *kvm, struct gfn_to_pfn_cache *gpc) { if (gpc->active) { + /* + * Deactivate the cache before removing it from the list, KVM + * must stall mmu_notifier events until all users go away, i.e. + * until gpc->lock is dropped and refresh is guaranteed to fail. + */ + write_lock_irq(&gpc->lock); + gpc->active = false; + write_unlock_irq(&gpc->lock); + spin_lock(&kvm->gpc_lock); list_del(&gpc->list); spin_unlock(&kvm->gpc_lock); kvm_gfn_to_pfn_cache_unmap(kvm, gpc); - gpc->active = false; } } -EXPORT_SYMBOL_GPL(kvm_gfn_to_pfn_cache_destroy); +EXPORT_SYMBOL_GPL(kvm_gpc_deactivate);